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--.gitignore2
-rw-r--r--.mailmap5
-rw-r--r--CODE_OF_CONDUCT.md2
-rw-r--r--Documentation/CodingGuidelines15
-rw-r--r--Documentation/Makefile73
-rw-r--r--Documentation/MyFirstObjectWalk.txt44
-rw-r--r--Documentation/RelNotes/2.36.0.txt429
-rw-r--r--Documentation/RelNotes/2.36.1.txt33
-rw-r--r--Documentation/RelNotes/2.37.0.txt90
-rw-r--r--Documentation/SubmittingPatches41
-rw-r--r--Documentation/config.txt39
-rw-r--r--Documentation/config/advice.txt18
-rw-r--r--Documentation/config/clone.txt5
-rw-r--r--Documentation/config/core.txt119
-rw-r--r--Documentation/config/extensions.txt31
-rw-r--r--Documentation/config/fetch.txt25
-rw-r--r--Documentation/config/gpg.txt4
-rw-r--r--Documentation/config/mergetool.txt9
-rw-r--r--Documentation/config/remote.txt6
-rw-r--r--Documentation/config/repack.txt5
-rw-r--r--Documentation/config/reset.txt2
-rw-r--r--Documentation/config/safe.txt4
-rw-r--r--Documentation/config/sparse.txt27
-rw-r--r--Documentation/config/stash.txt7
-rw-r--r--Documentation/config/submodule.txt37
-rw-r--r--Documentation/diff-options.txt21
-rw-r--r--Documentation/fetch-options.txt37
-rw-r--r--Documentation/git-branch.txt19
-rw-r--r--Documentation/git-bundle.txt7
-rw-r--r--Documentation/git-cat-file.txt52
-rw-r--r--Documentation/git-check-ignore.txt4
-rw-r--r--Documentation/git-checkout-index.txt10
-rw-r--r--Documentation/git-clone.txt7
-rw-r--r--Documentation/git-config.txt8
-rw-r--r--Documentation/git-credential-cache--daemon.txt6
-rw-r--r--Documentation/git-fetch-pack.txt4
-rw-r--r--Documentation/git-fetch.txt10
-rw-r--r--Documentation/git-fsmonitor--daemon.txt75
-rw-r--r--Documentation/git-help.txt15
-rw-r--r--Documentation/git-hook.txt45
-rw-r--r--Documentation/git-index-pack.txt8
-rw-r--r--Documentation/git-ls-files.txt2
-rw-r--r--Documentation/git-ls-tree.txt68
-rw-r--r--Documentation/git-maintenance.txt38
-rw-r--r--Documentation/git-mergetool.txt8
-rw-r--r--Documentation/git-mktree.txt2
-rw-r--r--Documentation/git-name-rev.txt30
-rw-r--r--Documentation/git-read-tree.txt16
-rw-r--r--Documentation/git-rebase.txt5
-rw-r--r--Documentation/git-remote.txt2
-rw-r--r--Documentation/git-reset.txt9
-rw-r--r--Documentation/git-sparse-checkout.txt92
-rw-r--r--Documentation/git-submodule.txt6
-rw-r--r--Documentation/git-update-index.txt65
-rw-r--r--Documentation/git-worktree.txt291
-rw-r--r--Documentation/git.txt4
-rw-r--r--Documentation/gitattributes.txt14
-rw-r--r--Documentation/gitcli.txt19
-rw-r--r--Documentation/githooks.txt4
-rw-r--r--Documentation/glossary-content.txt13
-rw-r--r--Documentation/mergetools/vimdiff.txt194
-rw-r--r--Documentation/rev-list-options.txt27
-rw-r--r--Documentation/technical/api-trace2.txt44
-rw-r--r--Documentation/technical/bundle-format.txt11
-rw-r--r--Documentation/technical/commit-graph-format.txt12
-rw-r--r--Documentation/technical/multi-pack-index.txt1
-rw-r--r--Documentation/technical/pack-format.txt13
-rw-r--r--Documentation/technical/partial-clone.txt3
-rw-r--r--Documentation/technical/reftable.txt2
-rwxr-xr-xGIT-VERSION-GEN2
-rw-r--r--Makefile194
-rw-r--r--README.md14
l---------RelNotes2
-rw-r--r--add-interactive.c8
-rw-r--r--add-patch.c20
-rw-r--r--advice.c5
-rw-r--r--advice.h5
-rw-r--r--alloc.c21
-rw-r--r--alloc.h1
-rw-r--r--apply.c66
-rw-r--r--apply.h28
-rw-r--r--archive-tar.c6
-rw-r--r--archive-zip.c7
-rw-r--r--archive.c2
-rw-r--r--attr.c3
-rw-r--r--attr.h1
-rw-r--r--banned.h5
-rw-r--r--bisect.c3
-rw-r--r--bisect.h13
-rw-r--r--blame.c5
-rw-r--r--block-sha1/sha1.c17
-rw-r--r--branch.c377
-rw-r--r--branch.h60
-rw-r--r--builtin.h2
-rw-r--r--builtin/add.c14
-rw-r--r--builtin/am.c15
-rw-r--r--builtin/apply.c1
-rw-r--r--builtin/bisect--helper.c164
-rw-r--r--builtin/blame.c14
-rw-r--r--builtin/branch.c70
-rw-r--r--builtin/bundle.c1
-rw-r--r--builtin/cat-file.c396
-rw-r--r--builtin/checkout-index.c41
-rw-r--r--builtin/checkout.c70
-rw-r--r--builtin/clean.c3
-rw-r--r--builtin/clone.c83
-rw-r--r--builtin/commit-graph.c6
-rw-r--r--builtin/commit.c54
-rw-r--r--builtin/config.c4
-rw-r--r--builtin/count-objects.c2
-rw-r--r--builtin/diff-tree.c3
-rw-r--r--builtin/diff.c6
-rw-r--r--builtin/difftool.c5
-rw-r--r--builtin/fast-export.c5
-rw-r--r--builtin/fast-import.c29
-rw-r--r--builtin/fetch-pack.c8
-rw-r--r--builtin/fetch.c347
-rw-r--r--builtin/fsmonitor--daemon.c1479
-rw-r--r--builtin/gc.c4
-rw-r--r--builtin/grep.c39
-rw-r--r--builtin/hash-object.c13
-rw-r--r--builtin/help.c67
-rw-r--r--builtin/hook.c84
-rw-r--r--builtin/index-pack.c29
-rw-r--r--builtin/log.c70
-rw-r--r--builtin/ls-files.c4
-rw-r--r--builtin/ls-remote.c3
-rw-r--r--builtin/ls-tree.c368
-rw-r--r--builtin/mailsplit.c3
-rw-r--r--builtin/merge-base.c11
-rw-r--r--builtin/merge-recursive.c2
-rw-r--r--builtin/merge.c42
-rw-r--r--builtin/mktag.c11
-rw-r--r--builtin/mktree.c4
-rw-r--r--builtin/multi-pack-index.c45
-rw-r--r--builtin/name-rev.c124
-rw-r--r--builtin/notes.c8
-rw-r--r--builtin/pack-objects.c96
-rw-r--r--builtin/patch-id.c9
-rw-r--r--builtin/prune-packed.c2
-rw-r--r--builtin/pull.c29
-rw-r--r--builtin/push.c2
-rw-r--r--builtin/read-tree.c14
-rw-r--r--builtin/rebase.c169
-rw-r--r--builtin/receive-pack.c68
-rw-r--r--builtin/reflog.c743
-rw-r--r--builtin/remote.c49
-rw-r--r--builtin/repack.c12
-rw-r--r--builtin/replace.c6
-rw-r--r--builtin/reset.c26
-rw-r--r--builtin/rev-list.c31
-rw-r--r--builtin/rev-parse.c3
-rw-r--r--builtin/send-pack.c2
-rw-r--r--builtin/shortlog.c11
-rw-r--r--builtin/show-branch.c1
-rw-r--r--builtin/sparse-checkout.c123
-rw-r--r--builtin/stash.c73
-rw-r--r--builtin/stripspace.c4
-rw-r--r--builtin/submodule--helper.c846
-rw-r--r--builtin/tag.c3
-rw-r--r--builtin/unpack-objects.c8
-rw-r--r--builtin/update-index.c35
-rw-r--r--builtin/update-server-info.c2
-rw-r--r--builtin/worktree.c164
-rw-r--r--bulk-checkin.c9
-rw-r--r--bundle.c83
-rw-r--r--bundle.h2
-rw-r--r--cache-tree.c8
-rw-r--r--cache.h128
-rwxr-xr-xci/lib.sh3
-rw-r--r--command-list.txt1
-rw-r--r--commit-graph.c55
-rw-r--r--commit-graph.h2
-rw-r--r--commit.c46
-rw-r--r--commit.h9
-rw-r--r--compat/fsmonitor/fsm-darwin-gcc.h92
-rw-r--r--compat/fsmonitor/fsm-listen-darwin.c427
-rw-r--r--compat/fsmonitor/fsm-listen-win32.c586
-rw-r--r--compat/fsmonitor/fsm-listen.h49
-rw-r--r--compat/mingw.c23
-rw-r--r--compat/mingw.h3
-rw-r--r--compat/qsort_s.c14
-rw-r--r--compat/terminal.c265
-rw-r--r--compat/terminal.h17
-rw-r--r--compat/win32/flush.c28
-rw-r--r--compat/winansi.c1
-rw-r--r--compat/zlib-uncompress2.c11
-rw-r--r--config.c295
-rw-r--r--config.h56
-rw-r--r--config.mak.dev6
-rw-r--r--config.mak.uname39
-rw-r--r--configure.ac24
-rw-r--r--connect.c4
-rw-r--r--contrib/buildsystems/CMakeLists.txt28
-rw-r--r--contrib/coccinelle/strbuf.cocci6
-rw-r--r--contrib/coccinelle/the_repository.pending.cocci15
-rw-r--r--contrib/coccinelle/xstrdup_or_null.cocci8
-rw-r--r--contrib/completion/git-completion.bash61
-rw-r--r--contrib/completion/git-prompt.sh59
-rwxr-xr-xcontrib/rerere-train.sh2
-rw-r--r--contrib/scalar/Makefile22
-rw-r--r--contrib/scalar/scalar.c23
-rw-r--r--contrib/scalar/scalar.txt10
-rw-r--r--contrib/scalar/t/Makefile3
-rwxr-xr-xcontrib/scalar/t/t9099-scalar.sh8
-rwxr-xr-xcontrib/subtree/git-subtree.sh4
-rw-r--r--contrib/vscode/README.md6
-rwxr-xr-xcontrib/vscode/init.sh1
-rw-r--r--convert.c32
-rw-r--r--credential.c1
-rw-r--r--csum-file.c5
-rw-r--r--csum-file.h3
-rw-r--r--date.c9
-rw-r--r--date.h74
-rwxr-xr-xdetect-compiler2
-rw-r--r--diff-merges.c16
-rw-r--r--diff.c243
-rw-r--r--diff.h5
-rw-r--r--diffcore-rename.c2
-rw-r--r--dir.c111
-rw-r--r--environment.c8
-rw-r--r--ewah/bitmap.c5
-rw-r--r--ewah/ewok.h1
-rw-r--r--fetch-negotiator.c7
-rw-r--r--fetch-negotiator.h8
-rw-r--r--fetch-pack.c86
-rw-r--r--fetch-pack.h1
-rw-r--r--fsmonitor--daemon.h166
-rw-r--r--fsmonitor-ipc.c171
-rw-r--r--fsmonitor-ipc.h48
-rw-r--r--fsmonitor-settings.c114
-rw-r--r--fsmonitor-settings.h21
-rw-r--r--fsmonitor.c216
-rw-r--r--fsmonitor.h15
-rw-r--r--git-compat-util.h70
-rw-r--r--git-mergetool--lib.sh10
-rwxr-xr-xgit-p4.py1197
-rwxr-xr-xgit-send-email.perl21
-rw-r--r--git-sh-setup.sh1
-rwxr-xr-xgit-submodule.sh160
-rw-r--r--git.c14
-rwxr-xr-xgitk-git/gitk17
-rwxr-xr-xgitweb/gitweb.perl4
-rw-r--r--gpg-interface.c47
-rw-r--r--graph.c12
-rw-r--r--graph.h5
-rw-r--r--grep.c185
-rw-r--r--grep.h31
-rw-r--r--help.c41
-rw-r--r--help.h2
-rw-r--r--hook.c138
-rw-r--r--hook.h69
-rw-r--r--http-backend.c1
-rw-r--r--http-push.c2
-rw-r--r--ident.c1
-rw-r--r--imap-send.c14
-rw-r--r--list-objects-filter-options.c40
-rw-r--r--list-objects-filter-options.h49
-rw-r--r--list-objects.c61
-rw-r--r--list-objects.h12
-rw-r--r--ll-merge.c40
-rw-r--r--ll-merge.h9
-rw-r--r--log-tree.c121
-rw-r--r--ls-refs.c3
-rw-r--r--mailmap.c7
-rw-r--r--match-trees.c2
-rw-r--r--mem-pool.c26
-rw-r--r--merge-blobs.c5
-rw-r--r--merge-ort.c119
-rw-r--r--merge-ort.h10
-rw-r--r--merge-recursive.c11
-rw-r--r--merge-recursive.h2
-rw-r--r--mergetools/araxis8
-rw-r--r--mergetools/bc8
-rw-r--r--mergetools/codecompare8
-rw-r--r--mergetools/deltawalker8
-rw-r--r--mergetools/diffmerge8
-rw-r--r--mergetools/diffuse8
-rw-r--r--mergetools/ecmerge8
-rw-r--r--mergetools/emerge8
-rw-r--r--mergetools/examdiff8
-rw-r--r--mergetools/guiffy8
-rw-r--r--mergetools/kdiff38
-rw-r--r--mergetools/kompare8
-rw-r--r--mergetools/meld8
-rw-r--r--mergetools/opendiff8
-rw-r--r--mergetools/p4merge8
-rw-r--r--mergetools/smerge8
-rw-r--r--mergetools/tkdiff8
-rw-r--r--mergetools/tortoisemerge8
-rw-r--r--mergetools/vimdiff607
-rw-r--r--mergetools/winmerge8
-rw-r--r--mergetools/xxdiff8
-rw-r--r--midx.c58
-rw-r--r--midx.h1
-rw-r--r--notes-cache.c2
-rw-r--r--notes-merge.c8
-rw-r--r--notes.c8
-rw-r--r--object-file.c249
-rw-r--r--object-name.c155
-rw-r--r--object-store.h28
-rw-r--r--object.c5
-rw-r--r--object.h2
-rw-r--r--pack-bitmap-write.c9
-rw-r--r--pack-bitmap.c28
-rw-r--r--pack-bitmap.h2
-rw-r--r--pack-check.c9
-rw-r--r--pack-revindex.c20
-rw-r--r--pack-write.c13
-rw-r--r--parallel-checkout.c4
-rw-r--r--parse-options.c47
-rw-r--r--parse-options.h31
-rw-r--r--path.h14
-rw-r--r--perl/Git.pm21
-rw-r--r--po/TEAMS6
-rw-r--r--po/ca.po8936
-rw-r--r--po/de.po8600
-rw-r--r--po/fr.po8748
-rw-r--r--po/git.pot8170
-rw-r--r--po/id.po9217
-rw-r--r--po/pt_PT.po15793
-rw-r--r--po/sv.po8694
-rw-r--r--po/tr.po8469
-rw-r--r--po/vi.po8689
-rw-r--r--po/zh_CN.po8403
-rw-r--r--po/zh_TW.po8722
-rw-r--r--pretty.h10
-rw-r--r--progress.c66
-rw-r--r--progress.h9
-rw-r--r--range-diff.c30
-rw-r--r--reachable.c2
-rw-r--r--read-cache.c74
-rw-r--r--ref-filter.c3
-rw-r--r--reflog-walk.h1
-rw-r--r--reflog.c434
-rw-r--r--reflog.h43
-rw-r--r--refs.c80
-rw-r--r--refs.h24
-rw-r--r--refs/debug.c81
-rw-r--r--refs/files-backend.c127
-rw-r--r--refs/iterator.c18
-rw-r--r--refs/packed-backend.c130
-rw-r--r--refs/ref-cache.c6
-rw-r--r--refs/refs-internal.h16
-rw-r--r--refspec.c14
-rw-r--r--reftable/block.c55
-rw-r--r--reftable/block_test.c27
-rw-r--r--reftable/blocksource.c15
-rw-r--r--reftable/generic.c45
-rw-r--r--reftable/iter.c4
-rw-r--r--reftable/merged.c33
-rw-r--r--reftable/pq.c3
-rw-r--r--reftable/pq_test.c27
-rw-r--r--reftable/reader.c117
-rw-r--r--reftable/readwrite_test.c170
-rw-r--r--reftable/record.c366
-rw-r--r--reftable/record.h49
-rw-r--r--reftable/record_test.c199
-rw-r--r--reftable/reftable-record.h14
-rw-r--r--reftable/reftable-writer.h2
-rw-r--r--reftable/reftable.c115
-rw-r--r--reftable/stack.c10
-rw-r--r--reftable/stack_test.c3
-rw-r--r--reftable/system.h11
-rw-r--r--reftable/writer.c58
-rw-r--r--remote-curl.c18
-rw-r--r--remote.c17
-rw-r--r--repo-settings.c10
-rw-r--r--repository.c23
-rw-r--r--repository.h19
-rw-r--r--rerere.c9
-rw-r--r--reset.c150
-rw-r--r--reset.h48
-rw-r--r--revision.c71
-rw-r--r--revision.h18
-rw-r--r--run-command.c33
-rw-r--r--run-command.h18
-rw-r--r--sequencer.c79
-rw-r--r--sequencer.h3
-rw-r--r--serve.c1
-rw-r--r--setup.c3
-rw-r--r--shallow.c3
-rw-r--r--shared.mak103
-rw-r--r--sparse-index.c88
-rw-r--r--sparse-index.h2
-rw-r--r--split-index.c3
-rw-r--r--stable-qsort.c16
-rw-r--r--strbuf.c5
-rw-r--r--string-list.h3
-rw-r--r--submodule-config.c63
-rw-r--r--submodule-config.h36
-rw-r--r--submodule.c469
-rw-r--r--submodule.h26
-rw-r--r--t/Makefile3
-rw-r--r--t/README4
-rw-r--r--t/annotate-tests.sh40
-rw-r--r--t/helper/test-chmtime.c15
-rw-r--r--t/helper/test-csprng.c29
-rw-r--r--t/helper/test-date.c5
-rw-r--r--t/helper/test-fsmonitor-client.c116
-rw-r--r--t/helper/test-progress.c50
-rw-r--r--t/helper/test-read-graph.c13
-rw-r--r--t/helper/test-ref-store.c3
-rw-r--r--t/helper/test-reftable.c9
-rw-r--r--t/helper/test-run-command.c14
-rw-r--r--t/helper/test-tool.c2
-rw-r--r--t/helper/test-tool.h2
-rw-r--r--t/interop/Makefile3
-rw-r--r--t/lib-bitmap.sh185
-rwxr-xr-xt/lib-commit-graph.sh58
-rw-r--r--t/lib-gpg.sh11
-rw-r--r--t/lib-read-tree-m-3way.sh168
-rw-r--r--t/perf/Makefile3
-rwxr-xr-xt/perf/p1006-cat-file.sh12
-rwxr-xr-xt/perf/p2000-sparse-operations.sh5
-rwxr-xr-xt/perf/p7519-fsmonitor.sh68
-rw-r--r--t/perf/perf-lib.sh2
-rwxr-xr-xt/t0000-basic.sh23
-rwxr-xr-xt/t0001-init.sh3
-rwxr-xr-xt/t0002-gitfile.sh6
-rwxr-xr-xt/t0003-attributes.sh9
-rwxr-xr-xt/t0006-date.sh2
-rwxr-xr-xt/t0012-help.sh101
-rwxr-xr-xt/t0015-hash.sh6
-rwxr-xr-xt/t0022-crlf-rename.sh4
-rwxr-xr-xt/t0025-crlf-renormalize.sh4
-rwxr-xr-xt/t0027-auto-crlf.sh26
-rwxr-xr-xt/t0029-core-unsetenvvars.sh3
-rwxr-xr-xt/t0030-stripspace.sh75
-rwxr-xr-xt/t0033-safe-directory.sh30
-rwxr-xr-xt/t0050-filesystem.sh3
-rwxr-xr-xt/t0051-windows-named-pipe.sh7
-rwxr-xr-xt/t0091-bugreport.sh26
-rw-r--r--t/t0211/scrub_perf.perl4
-rwxr-xr-xt/t0410-partial-clone.sh19
-rwxr-xr-xt/t0500-progress-display.sh109
-rwxr-xr-xt/t1001-read-tree-m-2way.sh6
-rwxr-xr-xt/t1002-read-tree-m-u-2way.sh6
-rwxr-xr-xt/t1003-read-tree-prefix.sh10
-rwxr-xr-xt/t1006-cat-file.sh227
-rwxr-xr-xt/t1007-hash-object.sh1
-rwxr-xr-xt/t1011-read-tree-sparse-checkout.sh69
-rwxr-xr-xt/t1090-sparse-checkout-scope.sh19
-rwxr-xr-xt/t1091-sparse-checkout-builtin.sh183
-rwxr-xr-xt/t1092-sparse-checkout-compatibility.sh567
-rwxr-xr-xt/t1300-config.sh118
-rwxr-xr-xt/t1350-config-hooks-path.sh4
-rwxr-xr-xt/t1405-main-ref-store.sh8
-rwxr-xr-xt/t1410-reflog.sh36
-rwxr-xr-xt/t1411-reflog-show.sh5
-rwxr-xr-xt/t1416-ref-transaction-hooks.sh23
-rwxr-xr-xt/t1418-reflog-exists.sh37
-rwxr-xr-xt/t1503-rev-parse-verify.sh5
-rwxr-xr-xt/t1512-rev-parse-disambiguation.sh81
-rwxr-xr-xt/t1800-hook.sh123
-rwxr-xr-xt/t2012-checkout-last.sh51
-rwxr-xr-xt/t2060-switch.sh11
-rwxr-xr-xt/t2108-update-index-refresh-racy.sh64
-rwxr-xr-xt/t2200-add-update.sh33
-rwxr-xr-xt/t2400-worktree-add.sh63
-rwxr-xr-xt/t2402-worktree-list.sh19
-rwxr-xr-xt/t3007-ls-files-recurse-submodules.sh18
-rwxr-xr-xt/t3101-ls-tree-dirname.sh55
-rwxr-xr-xt/t3103-ls-tree-misc.sh15
-rwxr-xr-xt/t3104-ls-tree-format.sh76
-rwxr-xr-xt/t3200-branch.sh35
-rwxr-xr-xt/t3207-branch-submodule.sh328
-rwxr-xr-xt/t3302-notes-index-expensive.sh6
-rwxr-xr-xt/t3303-notes-subtrees.sh9
-rwxr-xr-xt/t3305-notes-fanout.sh14
-rwxr-xr-xt/t3400-rebase.sh18
-rwxr-xr-xt/t3404-rebase-interactive.sh10
-rwxr-xr-xt/t3406-rebase-message.sh23
-rwxr-xr-xt/t3412-rebase-root.sh20
-rwxr-xr-xt/t3413-rebase-hook.sh18
-rwxr-xr-xt/t3416-rebase-onto-threedots.sh29
-rwxr-xr-xt/t3418-rebase-continue.sh26
-rwxr-xr-xt/t3430-rebase-merges.sh6
-rwxr-xr-xt/t3501-revert-cherry-pick.sh9
-rwxr-xr-xt/t3701-add-interactive.sh48
-rwxr-xr-xt/t3705-add-sparse-checkout.sh2
-rwxr-xr-xt/t3903-stash.sh123
-rwxr-xr-xt/t4013-diff-various.sh33
-rwxr-xr-xt/t4014-format-patch.sh33
-rwxr-xr-xt/t4015-diff-whitespace.sh12
-rw-r--r--t/t4018/kotlin-class5
-rw-r--r--t/t4018/kotlin-enum-class5
-rw-r--r--t/t4018/kotlin-fun5
-rw-r--r--t/t4018/kotlin-inheritace-class5
-rw-r--r--t/t4018/kotlin-inline-class5
-rw-r--r--t/t4018/kotlin-interface5
-rw-r--r--t/t4018/kotlin-nested-fun9
-rw-r--r--t/t4018/kotlin-public-class5
-rw-r--r--t/t4018/kotlin-sealed-class5
-rwxr-xr-xt/t4020-diff-external.sh157
-rwxr-xr-xt/t4027-diff-submodule.sh7
-rwxr-xr-xt/t4034-diff-words.sh1
-rw-r--r--t/t4034/kotlin/expect43
-rw-r--r--t/t4034/kotlin/post30
-rw-r--r--t/t4034/kotlin/pre30
-rwxr-xr-xt/t4069-remerge-diff.sh291
-rwxr-xr-xt/t4123-apply-shrink.sh18
-rwxr-xr-xt/t4128-apply-root.sh36
-rwxr-xr-xt/t4150-am.sh26
-rwxr-xr-xt/t4202-log.sh110
-rwxr-xr-xt/t4204-patch-id.sh95
-rwxr-xr-xt/t4216-log-bloom.sh1
-rwxr-xr-xt/t4217-log-limit.sh41
-rwxr-xr-xt/t5300-pack-object.sh4
-rwxr-xr-xt/t5302-pack-index.sh8
-rwxr-xr-xt/t5310-pack-bitmaps.sh28
-rwxr-xr-xt/t5312-prune-corruption.sh10
-rwxr-xr-xt/t5316-pack-delta-depth.sh6
-rwxr-xr-xt/t5318-commit-graph.sh55
-rwxr-xr-xt/t5324-split-commit-graph.sh10
-rwxr-xr-xt/t5326-multi-pack-bitmaps.sh186
-rwxr-xr-xt/t5327-multi-pack-bitmaps-rev.sh23
-rwxr-xr-xt/t5328-commit-graph-64bit-time.sh66
-rwxr-xr-xt/t5401-update-hooks.sh64
-rwxr-xr-xt/t5402-post-merge-hook.sh16
-rwxr-xr-xt/t5403-post-checkout-hook.sh70
-rwxr-xr-xt/t5406-remote-rejects.sh2
-rwxr-xr-xt/t5407-post-rewrite-hook.sh14
-rwxr-xr-xt/t5409-colorize-remote-messages.sh2
-rwxr-xr-xt/t5411-proc-receive-hook.sh4
-rw-r--r--t/t5411/once-0010-report-status-v1.sh2
-rw-r--r--t/t5411/test-0002-pre-receive-declined.sh4
-rw-r--r--t/t5411/test-0003-pre-receive-declined--porcelain.sh2
-rw-r--r--t/t5411/test-0013-bad-protocol.sh20
-rw-r--r--t/t5411/test-0014-bad-protocol--porcelain.sh18
-rw-r--r--t/t5411/test-0020-report-ng.sh4
-rw-r--r--t/t5411/test-0021-report-ng--porcelain.sh4
-rw-r--r--t/t5411/test-0022-report-unexpect-ref.sh2
-rw-r--r--t/t5411/test-0023-report-unexpect-ref--porcelain.sh2
-rw-r--r--t/t5411/test-0024-report-unknown-ref.sh2
-rw-r--r--t/t5411/test-0025-report-unknown-ref--porcelain.sh2
-rw-r--r--t/t5411/test-0026-push-options.sh6
-rw-r--r--t/t5411/test-0027-push-options--porcelain.sh6
-rw-r--r--t/t5411/test-0030-report-ok.sh2
-rw-r--r--t/t5411/test-0031-report-ok--porcelain.sh2
-rw-r--r--t/t5411/test-0032-report-with-options.sh14
-rw-r--r--t/t5411/test-0033-report-with-options--porcelain.sh14
-rw-r--r--t/t5411/test-0034-report-ft.sh2
-rw-r--r--t/t5411/test-0035-report-ft--porcelain.sh2
-rw-r--r--t/t5411/test-0036-report-multi-rewrite-for-one-ref.sh6
-rw-r--r--t/t5411/test-0037-report-multi-rewrite-for-one-ref--porcelain.sh6
-rw-r--r--t/t5411/test-0038-report-mixed-refs.sh2
-rw-r--r--t/t5411/test-0039-report-mixed-refs--porcelain.sh2
-rw-r--r--t/t5411/test-0040-process-all-refs.sh2
-rw-r--r--t/t5411/test-0041-process-all-refs--porcelain.sh2
-rw-r--r--t/t5411/test-0050-proc-receive-refs-with-modifiers.sh4
-rwxr-xr-xt/t5500-fetch-pack.sh24
-rwxr-xr-xt/t5505-remote.sh4
-rwxr-xr-xt/t5510-fetch.sh17
-rwxr-xr-xt/t5511-refspec.sh1
-rwxr-xr-xt/t5516-fetch-push.sh212
-rwxr-xr-xt/t5520-pull.sh13
-rwxr-xr-xt/t5521-pull-options.sh4
-rwxr-xr-xt/t5526-fetch-submodules.sh545
-rwxr-xr-xt/t5534-push-signed.sh26
-rwxr-xr-xt/t5537-fetch-shallow.sh9
-rwxr-xr-xt/t5540-http-push-webdav.sh4
-rwxr-xr-xt/t5541-http-push-smart.sh32
-rwxr-xr-xt/t5543-atomic-push.sh14
-rwxr-xr-xt/t5547-push-quarantine.sh4
-rwxr-xr-xt/t5548-push-porcelain.sh2
-rwxr-xr-xt/t5550-http-fetch-dumb.sh25
-rwxr-xr-xt/t5571-pre-push-hook.sh128
-rwxr-xr-xt/t5572-pull-submodule.sh26
-rwxr-xr-xt/t5601-clone.sh4
-rwxr-xr-xt/t5605-clone-local.sh9
-rwxr-xr-xt/t5616-partial-clone.sh81
-rwxr-xr-xt/t5617-clone-submodules-remote.sh41
-rwxr-xr-xt/t5700-protocol-v1.sh15
-rwxr-xr-xt/t5702-protocol-v2.sh14
-rwxr-xr-xt/t6005-rev-list-count.sh43
-rwxr-xr-xt/t6007-rev-list-cherry-pick-file.sh26
-rwxr-xr-xt/t6012-rev-list-simplify.sh30
-rwxr-xr-xt/t6020-bundle-misc.sh98
-rwxr-xr-xt/t6030-bisect-porcelain.sh73
-rwxr-xr-xt/t6102-rev-list-unexpected-objects.sh13
-rwxr-xr-xt/t6111-rev-list-treesame.sh3
-rwxr-xr-xt/t6120-describe.sh127
-rwxr-xr-xt/t6404-recursive-merge.sh9
-rwxr-xr-xt/t6406-merge-attr.sh9
-rwxr-xr-xt/t6407-merge-binary.sh22
-rwxr-xr-xt/t6423-merge-rename-directories.sh10
-rwxr-xr-xt/t6428-merge-conflicts-sparse.sh23
-rwxr-xr-xt/t6429-merge-sequence-rename-caching.sh67
-rwxr-xr-xt/t6500-gc.sh22
-rwxr-xr-xt/t7001-mv.sh19
-rwxr-xr-xt/t7012-skip-worktree-writing.sh44
-rwxr-xr-xt/t7063-status-untracked-cache.sh134
-rwxr-xr-xt/t7102-reset.sh40
-rwxr-xr-xt/t7103-reset-bare.sh7
-rwxr-xr-xt/t7113-post-index-change-hook.sh7
-rwxr-xr-xt/t7406-submodule-update.sh59
-rwxr-xr-xt/t7408-submodule-reference.sh14
-rwxr-xr-xt/t7500-commit-template-squash-signoff.sh2
-rwxr-xr-xt/t7503-pre-commit-and-pre-merge-commit-hooks.sh150
-rwxr-xr-xt/t7504-commit-msg-hook.sh43
-rwxr-xr-xt/t7505-prepare-commit-msg-hook.sh43
-rwxr-xr-xt/t7508-status.sh30
-rwxr-xr-xt/t7519-status-fsmonitor.sh27
-rwxr-xr-xt/t7520-ignored-hook-warning.sh11
-rwxr-xr-xt/t7524-commit-summary.sh31
-rwxr-xr-xt/t7527-builtin-fsmonitor.sh609
-rwxr-xr-xt/t7609-mergetool--lib.sh14
-rwxr-xr-xt/t7700-repack.sh111
-rwxr-xr-xt/t7810-grep.sh186
-rwxr-xr-xt/t7812-grep-icase-non-ascii.sh26
-rwxr-xr-xt/t7814-grep-recurse-submodules.sh41
-rwxr-xr-xt/t7817-grep-sparse-checkout.sh11
-rwxr-xr-xt/t8007-cat-file-textconv.sh42
-rwxr-xr-xt/t9001-send-email.sh8
-rwxr-xr-xt/t9102-git-svn-deep-rmdir.sh1
-rwxr-xr-xt/t9123-git-svn-rebuild-with-rewriteroot.sh1
-rwxr-xr-xt/t9128-git-svn-cmd-branch.sh1
-rwxr-xr-xt/t9167-git-svn-cmd-branch-subproject.sh1
-rwxr-xr-xt/t9350-fast-export.sh7
-rwxr-xr-xt/t9502-gitweb-standalone-parse-output.sh15
-rwxr-xr-xt/t9800-git-p4-basic.sh108
-rwxr-xr-xt/t9801-git-p4-branch.sh10
-rwxr-xr-xt/t9802-git-p4-filetype.sh34
-rwxr-xr-xt/t9902-completion.sh236
-rw-r--r--t/test-lib-functions.sh174
-rw-r--r--t/test-lib.sh88
-rw-r--r--tempfile.c63
-rw-r--r--tempfile.h13
-rw-r--r--templates/Makefile8
-rw-r--r--tmp-objdir.c5
-rw-r--r--tmp-objdir.h6
-rw-r--r--trace.c80
-rw-r--r--trace.h128
-rw-r--r--trace2.c40
-rw-r--r--trace2.h25
-rw-r--r--trace2/tr2_tgt_event.c64
-rw-r--r--trace2/tr2_tgt_normal.c64
-rw-r--r--trace2/tr2_tgt_perf.c64
-rw-r--r--transport-helper.c3
-rw-r--r--transport.c37
-rw-r--r--transport.h14
-rw-r--r--tree-walk.c6
-rw-r--r--unpack-trees.c196
-rw-r--r--upload-pack.c20
-rw-r--r--urlmatch.c5
-rw-r--r--urlmatch.h1
-rw-r--r--usage.c15
-rw-r--r--userdiff.c48
-rw-r--r--worktree.c84
-rw-r--r--worktree.h21
-rw-r--r--wrapper.c164
-rw-r--r--write-or-die.c33
-rw-r--r--wt-status.c21
-rw-r--r--xdiff/xdiffi.c33
-rw-r--r--xdiff/xhistogram.c3
-rw-r--r--xdiff/xmacros.h1
-rw-r--r--xdiff/xmerge.c42
-rw-r--r--xdiff/xpatience.c21
659 files changed, 79401 insertions, 55564 deletions
diff --git a/.gitignore b/.gitignore
index 054249b20a..e81de1063a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -72,11 +72,13 @@
/git-format-patch
/git-fsck
/git-fsck-objects
+/git-fsmonitor--daemon
/git-gc
/git-get-tar-commit-id
/git-grep
/git-hash-object
/git-help
+/git-hook
/git-http-backend
/git-http-fetch
/git-http-push
diff --git a/.mailmap b/.mailmap
index 9c6a446bdf..07db36a9bb 100644
--- a/.mailmap
+++ b/.mailmap
@@ -59,8 +59,9 @@ David Reiss <dreiss@facebook.com> <dreiss@dreiss-vmware.(none)>
David S. Miller <davem@davemloft.net>
David Turner <novalis@novalis.org> <dturner@twopensource.com>
David Turner <novalis@novalis.org> <dturner@twosigma.com>
-Derrick Stolee <dstolee@microsoft.com> <stolee@gmail.com>
-Derrick Stolee <dstolee@microsoft.com> Derrick Stolee via GitGitGadget <gitgitgadget@gmail.com>
+Derrick Stolee <derrickstolee@github.com> <stolee@gmail.com>
+Derrick Stolee <derrickstolee@github.com> Derrick Stolee via GitGitGadget <gitgitgadget@gmail.com>
+Derrick Stolee <derrickstolee@github.com> <dstolee@microsoft.com>
Deskin Miller <deskinm@umich.edu>
Äoàn Trần Công Danh <congdanhqx@gmail.com> Doan Tran Cong Danh
Dirk Süsserott <newsletter@dirk.my1.cc>
diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md
index 65651beada..0215b1fd4c 100644
--- a/CODE_OF_CONDUCT.md
+++ b/CODE_OF_CONDUCT.md
@@ -70,8 +70,8 @@ git@sfconservancy.org, or individually:
- Ævar Arnfjörð Bjarmason <avarab@gmail.com>
- Christian Couder <christian.couder@gmail.com>
- - Jeff King <peff@peff.net>
- Junio C Hamano <gitster@pobox.com>
+ - Taylor Blau <me@ttaylorr.com>
All complaints will be reviewed and investigated promptly and fairly.
diff --git a/Documentation/CodingGuidelines b/Documentation/CodingGuidelines
index 0e27b5395d..b20b2f94f1 100644
--- a/Documentation/CodingGuidelines
+++ b/Documentation/CodingGuidelines
@@ -26,6 +26,13 @@ code. For Git in general, a few rough rules are:
go and fix it up."
Cf. http://lkml.iu.edu/hypermail/linux/kernel/1001.3/01069.html
+ - Log messages to explain your changes are as important as the
+ changes themselves. Clearly written code and in-code comments
+ explain how the code works and what is assumed from the surrounding
+ context. The log messages explain what the changes wanted to
+ achieve and why the changes were necessary (more on this in the
+ accompanying SubmittingPatches document).
+
Make your code readable and sensible, and don't try to be clever.
As for more concrete guidelines, just imitate the existing code
@@ -210,6 +217,9 @@ For C programs:
. since mid 2017 with 512f41cf, we have been using designated
initializers for array (e.g. "int array[10] = { [5] = 2 }").
+ . since early 2021 with 765dc168882, we have been using variadic
+ macros, mostly for printf-like trace and debug macros.
+
These used to be forbidden, but we have not heard any breakage
report, and they are assumed to be safe.
@@ -217,7 +227,10 @@ For C programs:
the first statement (i.e. -Wdeclaration-after-statement).
- Declaring a variable in the for loop "for (int i = 0; i < 10; i++)"
- is still not allowed in this codebase.
+ is still not allowed in this codebase. We are in the process of
+ allowing it by waiting to see that 44ba10d6 (revision: use C99
+ declaration of variable in for() loop, 2021-11-14) does not get
+ complaints. Let's revisit this around November 2022.
- NULL pointers shall be written as NULL, not as 0.
diff --git a/Documentation/Makefile b/Documentation/Makefile
index ed656db2ae..adb2f1b50a 100644
--- a/Documentation/Makefile
+++ b/Documentation/Makefile
@@ -1,3 +1,6 @@
+# Import tree-wide shared Makefile behavior and libraries
+include ../shared.mak
+
# Guard against environment variables
MAN1_TXT =
MAN5_TXT =
@@ -215,38 +218,6 @@ DEFAULT_EDITOR_SQ = $(subst ','\'',$(DEFAULT_EDITOR))
ASCIIDOC_EXTRA += -a 'git-default-editor=$(DEFAULT_EDITOR_SQ)'
endif
-QUIET_SUBDIR0 = +$(MAKE) -C # space to separate -C and subdir
-QUIET_SUBDIR1 =
-
-ifneq ($(findstring $(MAKEFLAGS),w),w)
-PRINT_DIR = --no-print-directory
-else # "make -w"
-NO_SUBDIR = :
-endif
-
-ifneq ($(findstring $(MAKEFLAGS),s),s)
-ifndef V
- QUIET = @
- QUIET_ASCIIDOC = @echo ' ' ASCIIDOC $@;
- QUIET_XMLTO = @echo ' ' XMLTO $@;
- QUIET_DB2TEXI = @echo ' ' DB2TEXI $@;
- QUIET_MAKEINFO = @echo ' ' MAKEINFO $@;
- QUIET_DBLATEX = @echo ' ' DBLATEX $@;
- QUIET_XSLTPROC = @echo ' ' XSLTPROC $@;
- QUIET_GEN = @echo ' ' GEN $@;
- QUIET_STDERR = 2> /dev/null
- QUIET_SUBDIR0 = +@subdir=
- QUIET_SUBDIR1 = ;$(NO_SUBDIR) echo ' ' SUBDIR $$subdir; \
- $(MAKE) $(PRINT_DIR) -C $$subdir
-
- QUIET_LINT_GITLINK = @echo ' ' LINT GITLINK $<;
- QUIET_LINT_MANSEC = @echo ' ' LINT MAN SEC $<;
- QUIET_LINT_MANEND = @echo ' ' LINT MAN END $<;
-
- export V
-endif
-endif
-
all: html man
html: $(DOC_HTML)
@@ -331,12 +302,12 @@ $(mergetools_txt): mergetools-list.made
mergetools-list.made: ../git-mergetool--lib.sh $(wildcard ../mergetools/*)
$(QUIET_GEN) \
- $(SHELL_PATH) -c 'MERGE_TOOLS_DIR=../mergetools && \
+ $(SHELL_PATH) -c 'MERGE_TOOLS_DIR=../mergetools && TOOL_MODE=diff && \
. ../git-mergetool--lib.sh && \
- show_tool_names can_diff "* " || :' >mergetools-diff.txt && \
- $(SHELL_PATH) -c 'MERGE_TOOLS_DIR=../mergetools && \
+ show_tool_names can_diff' | sed -e "s/\([a-z0-9]*\)/\`\1\`;;/" >mergetools-diff.txt && \
+ $(SHELL_PATH) -c 'MERGE_TOOLS_DIR=../mergetools && TOOL_MODE=merge && \
. ../git-mergetool--lib.sh && \
- show_tool_names can_merge "* " || :' >mergetools-merge.txt && \
+ show_tool_names can_merge' | sed -e "s/\([a-z0-9]*\)/\`\1\`;;/" >mergetools-merge.txt && \
date >$@
TRACK_ASCIIDOCFLAGS = $(subst ','\'',$(ASCIIDOC_COMMON):$(ASCIIDOC_HTML):$(ASCIIDOC_DOCBOOK))
@@ -419,7 +390,7 @@ gitman.texi: $(MAN_XML) cat-texi.perl texi.xsl
$(RM) $@+
gitman.info: gitman.texi
- $(QUIET_MAKEINFO)$(MAKEINFO) --no-split --no-validate $*.texi
+ $(QUIET_MAKEINFO)$(MAKEINFO) --no-split --no-validate $<
$(patsubst %.txt,%.texi,$(MAN_TXT)): %.texi : %.xml
$(QUIET_DB2TEXI)$(DOCBOOK2X_TEXI) --to-stdout $*.xml >$@
@@ -463,25 +434,11 @@ quick-install-html: require-htmlrepo
print-man1:
@for i in $(MAN1_TXT); do echo $$i; done
-## Lint: Common
-.build:
- $(QUIET)mkdir $@
-.build/lint-docs: | .build
- $(QUIET)mkdir $@
-
## Lint: gitlink
-.build/lint-docs/gitlink: | .build/lint-docs
- $(QUIET)mkdir $@
-.build/lint-docs/gitlink/howto: | .build/lint-docs/gitlink
- $(QUIET)mkdir $@
-.build/lint-docs/gitlink/config: | .build/lint-docs/gitlink
- $(QUIET)mkdir $@
LINT_DOCS_GITLINK = $(patsubst %.txt,.build/lint-docs/gitlink/%.ok,$(HOWTO_TXT) $(DOC_DEP_TXT))
-$(LINT_DOCS_GITLINK): | .build/lint-docs/gitlink
-$(LINT_DOCS_GITLINK): | .build/lint-docs/gitlink/howto
-$(LINT_DOCS_GITLINK): | .build/lint-docs/gitlink/config
$(LINT_DOCS_GITLINK): lint-gitlink.perl
$(LINT_DOCS_GITLINK): .build/lint-docs/gitlink/%.ok: %.txt
+ $(call mkdir_p_parent_template)
$(QUIET_LINT_GITLINK)$(PERL_PATH) lint-gitlink.perl \
$< \
$(HOWTO_TXT) $(DOC_DEP_TXT) \
@@ -492,23 +449,18 @@ $(LINT_DOCS_GITLINK): .build/lint-docs/gitlink/%.ok: %.txt
lint-docs-gitlink: $(LINT_DOCS_GITLINK)
## Lint: man-end-blurb
-.build/lint-docs/man-end-blurb: | .build/lint-docs
- $(QUIET)mkdir $@
LINT_DOCS_MAN_END_BLURB = $(patsubst %.txt,.build/lint-docs/man-end-blurb/%.ok,$(MAN_TXT))
-$(LINT_DOCS_MAN_END_BLURB): | .build/lint-docs/man-end-blurb
$(LINT_DOCS_MAN_END_BLURB): lint-man-end-blurb.perl
$(LINT_DOCS_MAN_END_BLURB): .build/lint-docs/man-end-blurb/%.ok: %.txt
+ $(call mkdir_p_parent_template)
$(QUIET_LINT_MANEND)$(PERL_PATH) lint-man-end-blurb.perl $< >$@
.PHONY: lint-docs-man-end-blurb
-lint-docs-man-end-blurb: $(LINT_DOCS_MAN_END_BLURB)
## Lint: man-section-order
-.build/lint-docs/man-section-order: | .build/lint-docs
- $(QUIET)mkdir $@
LINT_DOCS_MAN_SECTION_ORDER = $(patsubst %.txt,.build/lint-docs/man-section-order/%.ok,$(MAN_TXT))
-$(LINT_DOCS_MAN_SECTION_ORDER): | .build/lint-docs/man-section-order
$(LINT_DOCS_MAN_SECTION_ORDER): lint-man-section-order.perl
$(LINT_DOCS_MAN_SECTION_ORDER): .build/lint-docs/man-section-order/%.ok: %.txt
+ $(call mkdir_p_parent_template)
$(QUIET_LINT_MANSEC)$(PERL_PATH) lint-man-section-order.perl $< >$@
.PHONY: lint-docs-man-section-order
lint-docs-man-section-order: $(LINT_DOCS_MAN_SECTION_ORDER)
@@ -524,7 +476,4 @@ doc-l10n install-l10n::
$(MAKE) -C po $@
endif
-# Delete the target file on error
-.DELETE_ON_ERROR:
-
.PHONY: FORCE
diff --git a/Documentation/MyFirstObjectWalk.txt b/Documentation/MyFirstObjectWalk.txt
index ca267941f3..8d9e85566e 100644
--- a/Documentation/MyFirstObjectWalk.txt
+++ b/Documentation/MyFirstObjectWalk.txt
@@ -522,24 +522,25 @@ function shows that the all-object walk is being performed by
`traverse_commit_list()` or `traverse_commit_list_filtered()`. Those two
functions reside in `list-objects.c`; examining the source shows that, despite
the name, these functions traverse all kinds of objects. Let's have a look at
-the arguments to `traverse_commit_list_filtered()`, which are a superset of the
-arguments to the unfiltered version.
+the arguments to `traverse_commit_list()`.
-- `struct list_objects_filter_options *filter_options`: This is a struct which
- stores a filter-spec as outlined in `Documentation/rev-list-options.txt`.
-- `struct rev_info *revs`: This is the `rev_info` used for the walk.
+- `struct rev_info *revs`: This is the `rev_info` used for the walk. If
+ its `filter` member is not `NULL`, then `filter` contains information for
+ how to filter the object list.
- `show_commit_fn show_commit`: A callback which will be used to handle each
individual commit object.
- `show_object_fn show_object`: A callback which will be used to handle each
non-commit object (so each blob, tree, or tag).
- `void *show_data`: A context buffer which is passed in turn to `show_commit`
and `show_object`.
+
+In addition, `traverse_commit_list_filtered()` has an additional paramter:
+
- `struct oidset *omitted`: A linked-list of object IDs which the provided
filter caused to be omitted.
-It looks like this `traverse_commit_list_filtered()` uses callbacks we provide
-instead of needing us to call it repeatedly ourselves. Cool! Let's add the
-callbacks first.
+It looks like these methods use callbacks we provide instead of needing us
+to call it repeatedly ourselves. Cool! Let's add the callbacks first.
For the sake of this tutorial, we'll simply keep track of how many of each kind
of object we find. At file scope in `builtin/walken.c` add the following
@@ -712,20 +713,9 @@ help understand. In our case, that means we omit trees and blobs not directly
referenced by `HEAD` or `HEAD`'s history, because we begin the walk with only
`HEAD` in the `pending` list.)
-First, we'll need to `#include "list-objects-filter-options.h"` and set up the
-`struct list_objects_filter_options` at the top of the function.
-
-----
-static void walken_object_walk(struct rev_info *rev)
-{
- struct list_objects_filter_options filter_options = { 0 };
-
- ...
-----
-
For now, we are not going to track the omitted objects, so we'll replace those
parameters with `NULL`. For the sake of simplicity, we'll add a simple
-build-time branch to use our filter or not. Replace the line calling
+build-time branch to use our filter or not. Preface the line calling
`traverse_commit_list()` with the following, which will remind us which kind of
walk we've just performed:
@@ -733,19 +723,17 @@ walk we've just performed:
if (0) {
/* Unfiltered: */
trace_printf(_("Unfiltered object walk.\n"));
- traverse_commit_list(rev, walken_show_commit,
- walken_show_object, NULL);
} else {
trace_printf(
_("Filtered object walk with filterspec 'tree:1'.\n"));
- parse_list_objects_filter(&filter_options, "tree:1");
-
- traverse_commit_list_filtered(&filter_options, rev,
- walken_show_commit, walken_show_object, NULL, NULL);
+ CALLOC_ARRAY(rev->filter, 1);
+ parse_list_objects_filter(rev->filter, "tree:1");
}
+ traverse_commit_list(rev, walken_show_commit,
+ walken_show_object, NULL);
----
-`struct list_objects_filter_options` is usually built directly from a command
+The `rev->filter` member is usually built directly from a command
line argument, so the module provides an easy way to build one from a string.
Even though we aren't taking user input right now, we can still build one with
a hardcoded string using `parse_list_objects_filter()`.
@@ -784,7 +772,7 @@ object:
----
...
- traverse_commit_list_filtered(&filter_options, rev,
+ traverse_commit_list_filtered(rev,
walken_show_commit, walken_show_object, NULL, &omitted);
...
diff --git a/Documentation/RelNotes/2.36.0.txt b/Documentation/RelNotes/2.36.0.txt
new file mode 100644
index 0000000000..e477fba12d
--- /dev/null
+++ b/Documentation/RelNotes/2.36.0.txt
@@ -0,0 +1,429 @@
+Git 2.36 Release Notes
+======================
+
+Updates since Git 2.35
+----------------------
+
+Backward compatibility warts
+
+ * "git name-rev --stdin" has been deprecated and issues a warning
+ when used; use "git name-rev --annotate-stdin" instead.
+
+ * "git clone --filter=... --recurse-submodules" only makes the
+ top-level a partial clone, while submodules are fully cloned. This
+ behaviour is changed to pass the same filter down to the submodules.
+
+ * With the fixes for CVE-2022-24765 that are common with versions of
+ Git 2.30.4, 2.31.3, 2.32.2, 2.33.3, 2.34.3, and 2.35.3, Git has
+ been taught not to recognise repositories owned by other users, in
+ order to avoid getting affected by their config files and hooks.
+ You can list the path to the safe/trusted repositories that may be
+ owned by others on a multi-valued configuration variable
+ `safe.directory` to override this behaviour, or use '*' to declare
+ that you trust anything.
+
+
+Note to those who build from the source
+
+ * Since Git 2.31, our source assumed that the compiler you use to
+ build Git supports variadic macros, with an easy-to-use escape
+ hatch to allow compilation without variadic macros with an request
+ to report that you had to use the escape hatch to the list.
+ Because we haven't heard from anybody who actually needed to use
+ the escape hatch, it has been removed, making support of variadic
+ macros a hard requirement.
+
+
+UI, Workflows & Features
+
+ * Assorted updates to "git cat-file", especially "-h".
+
+ * The command line completion (in contrib/) learns to complete
+ arguments to give to "git sparse-checkout" command.
+
+ * "git log --remerge-diff" shows the difference from mechanical merge
+ result and the result that is actually recorded in a merge commit.
+
+ * "git log" and friends learned an option --exclude-first-parent-only
+ to propagate UNINTERESTING bit down only along the first-parent
+ chain, just like --first-parent option shows commits that lack the
+ UNINTERESTING bit only along the first-parent chain.
+
+ * The command line completion script (in contrib/) learned to
+ complete all Git subcommands, including the ones that are normally
+ hidden, when GIT_COMPLETION_SHOW_ALL_COMMANDS is used.
+
+ * "git branch" learned the "--recurse-submodules" option.
+
+ * A user can forget to make a script file executable before giving
+ it to "git bisect run". In such a case, all tests will exit with
+ 126 or 127 error codes, even on revisions that are marked as good.
+ Try to recognize this situation and stop iteration early.
+
+ * When "index-pack" dies due to incoming data exceeding the maximum
+ allowed input size, include the value of the limit in the error
+ message.
+
+ * The error message given by "git switch HEAD~4" has been clarified
+ to suggest the "--detach" option that is required.
+
+ * In sparse-checkouts, files mis-marked as missing from the working tree
+ could lead to later problems. Such files were hard to discover, and
+ harder to correct. Automatically detecting and correcting the marking
+ of such files has been added to avoid these problems.
+
+ * "git cat-file" learns "--batch-command" mode, which is a more
+ flexible interface than the existing "--batch" or "--batch-check"
+ modes, to allow different kinds of inquiries made.
+
+ * The level of verbose output from the ort backend during inner merge
+ has been aligned to that of the recursive backend.
+
+ * "git remote rename A B", depending on the number of remote-tracking
+ refs involved, takes long time renaming them. The command has been
+ taught to show progress bar while making the user wait.
+
+ * Bundle file format gets extended to allow a partial bundle,
+ filtered by similar criteria you would give when making a
+ partial/lazy clone.
+
+ * A new built-in userdiff driver for kotlin has been added.
+
+ * "git repack" learned a new configuration to disable triggering of
+ age-old "update-server-info" command, which is rarely useful these
+ days.
+
+ * "git stash" does not allow subcommands it internally runs as its
+ implementation detail, except for "git reset", to emit messages;
+ now "git reset" part has also been squelched.
+
+ * "git ls-tree" learns "--oid-only" option, similar to "--name-only",
+ and more generalized "--format" option.
+
+ * "git fetch --refetch" learned to fetch everything without telling
+ the other side what we already have, which is useful when you
+ cannot trust what you have in the local object store.
+
+ * "git branch" gives hint when branch tracking cannot be established
+ because fetch refspecs from multiple remote repositories overlap.
+
+ * "git worktree list --porcelain" did not c-quote pathnames and lock
+ reasons with unsafe bytes correctly, which is worked around by
+ introducing NUL terminated output format with "-z".
+
+
+Performance, Internal Implementation, Development Support etc.
+
+ * "git apply" (ab)used the util pointer of the string-list to keep
+ track of how each symbolic link needs to be handled, which has been
+ simplified by using strset.
+
+ * Fix a hand-rolled alloca() imitation that may have violated
+ alignment requirement of data being sorted in compatibility
+ implementation of qsort_s() and stable qsort().
+
+ * Use the parse-options API in "git reflog" command.
+
+ * The conditional inclusion mechanism of configuration files using
+ "[includeIf <condition>]" learns to base its decision on the
+ URL of the remote repository the repository interacts with.
+ (merge 399b198489 jt/conditional-config-on-remote-url later to maint).
+
+ * "git name-rev --stdin" does not behave like usual "--stdin" at
+ all. Start the process of renaming it to "--annotate-stdin".
+ (merge a2585719b3 jc/name-rev-stdin later to maint).
+
+ * "git update-index", "git checkout-index", and "git clean" are
+ taught to work better with the sparse checkout feature.
+
+ * Use an internal call to reset_head() helper function instead of
+ spawning "git checkout" in "rebase", and update code paths that are
+ involved in the change.
+
+ * Messages "ort" merge backend prepares while dealing with conflicted
+ paths were unnecessarily confusing since it did not differentiate
+ inner merges and outer merges.
+
+ * Small modernization of the rerere-train script (in contrib/).
+
+ * Use designated initializers we started using in mid 2017 in more
+ parts of the codebase that are relatively quiescent.
+
+ * Improve failure case behaviour of xdiff library when memory
+ allocation fails.
+
+ * General clean-up in reftable implementation, including
+ clarification of the API documentation, tightening the code to
+ honor documented length limit, etc.
+
+ * Remove the escape hatch we added when we introduced the weather
+ balloon to use variadic macros unconditionally, to make it official
+ that we now have a hard dependency on the feature.
+
+ * Makefile refactoring with a bit of suffixes rule stripping to
+ optimize the runtime overhead.
+
+ * "git stash drop" is reimplemented as an internal call to
+ reflog_delete() function, instead of invoking "git reflog delete"
+ via run_command() API.
+
+ * Count string_list items in size_t, not "unsigned int".
+
+ * The single-key interactive operation used by "git add -p" has been
+ made more robust.
+
+ * Remove unneeded <meta http-equiv=content-type...> from gitweb
+ output.
+
+ * "git name-rev" learned to use the generation numbers when setting
+ the lower bound of searching commits used to explain the revision,
+ when available, instead of committer time.
+
+ * Replace core.fsyncObjectFiles with two new configuration variables,
+ core.fsync and core.fsyncMethod.
+
+ * Updates to refs traditionally weren't fsync'ed, but we can
+ configure using core.fsync variable to do so.
+
+ * "git reflog" command now uses parse-options API to parse its
+ command line options.
+
+
+Fixes since v2.35
+-----------------
+
+ * "rebase" and "stash" in secondary worktrees are broken in
+ Git 2.35.0, which has been corrected.
+
+ * "git pull --rebase" ignored the rebase.autostash configuration
+ variable when the remote history is a descendant of our history,
+ which has been corrected.
+ (merge 3013d98d7a pb/pull-rebase-autostash-fix later to maint).
+
+ * "git update-index --refresh" has been taught to deal better with
+ racy timestamps (just like "git status" already does).
+ (merge 2ede073fd2 ms/update-index-racy later to maint).
+
+ * Avoid tests that are run under GIT_TRACE2 set from failing
+ unnecessarily.
+ (merge 944d808e42 js/test-unset-trace2-parents later to maint).
+
+ * The merge-ort misbehaved when merge.renameLimit configuration is
+ set too low and failed to find all renames.
+ (merge 9ae39fef7f en/merge-ort-restart-optim-fix later to maint).
+
+ * We explain that revs come first before the pathspec among command
+ line arguments, but did not spell out that dashed options come
+ before other args, which has been corrected.
+ (merge c11f95010c tl/doc-cli-options-first later to maint).
+
+ * "git add -p" rewritten in C regressed hunk splitting in some cases,
+ which has been corrected.
+ (merge 7008ddc645 pw/add-p-hunk-split-fix later to maint).
+
+ * "git fetch --negotiate-only" is an internal command used by "git
+ push" to figure out which part of our history is missing from the
+ other side. It should never recurse into submodules even when
+ fetch.recursesubmodules configuration variable is set, nor it
+ should trigger "gc". The code has been tightened up to ensure it
+ only does common ancestry discovery and nothing else.
+ (merge de4eaae63a gc/fetch-negotiate-only-early-return later to maint).
+
+ * The code path that verifies signatures made with ssh were made to
+ work better on a system with CRLF line endings.
+ (merge caeef01ea7 fs/ssh-signing-crlf later to maint).
+
+ * "git sparse-checkout init" failed to write into $GIT_DIR/info
+ directory when the repository was created without one, which has
+ been corrected to auto-create it.
+ (merge 7f44842ac1 jt/sparse-checkout-leading-dir-fix later to maint).
+
+ * Cloning from a repository that does not yet have any branches or
+ tags but has other refs resulted in a "remote transport reported
+ error", which has been corrected.
+ (merge dccea605b6 jt/clone-not-quite-empty later to maint).
+
+ * Mark in various places in the code that the sparse index and the
+ split index features are mutually incompatible.
+ (merge 451b66c533 js/sparse-vs-split-index later to maint).
+
+ * Update the logic to compute alignment requirement for our mem-pool.
+ (merge e38bcc66d8 jc/mem-pool-alignment later to maint).
+
+ * Pick a better random number generator and use it when we prepare
+ temporary filenames.
+ (merge 47efda967c bc/csprng-mktemps later to maint).
+
+ * Update the contributor-facing documents on proposed log messages.
+ (merge cdba0295b0 jc/doc-log-messages later to maint).
+
+ * When "git fetch --prune" failed to prune the refs it wanted to
+ prune, the command issued error messages but exited with exit
+ status 0, which has been corrected.
+ (merge c9e04d905e tg/fetch-prune-exit-code-fix later to maint).
+
+ * Problems identified by Coverity in the reftable code have been
+ corrected.
+ (merge 01033de49f hn/reftable-coverity-fixes later to maint).
+
+ * A bug that made multi-pack bitmap and the object order out-of-sync,
+ making the .midx data corrupt, has been fixed.
+ (merge f8b60cf99b tb/midx-bitmap-corruption-fix later to maint).
+
+ * The build procedure has been taught to notice older version of zlib
+ and enable our replacement uncompress2() automatically.
+ (merge 07564773c2 ab/auto-detect-zlib-compress2 later to maint).
+
+ * Interaction between fetch.negotiationAlgorithm and
+ feature.experimental configuration variables has been corrected.
+ (merge 714edc620c en/fetch-negotiation-default-fix later to maint).
+
+ * "git diff --diff-filter=aR" is now parsed correctly.
+ (merge 75408ca949 js/diff-filter-negation-fix later to maint).
+
+ * When "git subtree" wants to create a merge, it used "git merge" and
+ let it be affected by end-user's "merge.ff" configuration, which
+ has been corrected.
+ (merge 9158a3564a tk/subtree-merge-not-ff-only later to maint).
+
+ * Unlike "git apply", "git patch-id" did not handle patches with
+ hunks that has only 1 line in either preimage or postimage, which
+ has been corrected.
+ (merge 757e75c81e jz/patch-id-hunk-header-parsing-fix later to maint).
+
+ * "receive-pack" checks if it will do any ref updates (various
+ conditions could reject a push) before received objects are taken
+ out of the temporary directory used for quarantine purposes, so
+ that a push that is known-to-fail will not leave crufts that a
+ future "gc" needs to clean up.
+ (merge 5407764069 cb/clear-quarantine-early-on-all-ref-update-errors later to maint).
+
+ * When there is no object to write .bitmap file for, "git
+ multi-pack-index" triggered an error, instead of just skipping,
+ which has been corrected.
+ (merge eb57277ba3 tb/midx-no-bitmap-for-no-objects later to maint).
+
+ * "git cmd -h" outside a repository should error out cleanly for many
+ commands, but instead it hit a BUG(), which has been corrected.
+ (merge 87ad07d735 js/short-help-outside-repo-fix later to maint).
+
+ * "working tree" and "per-worktree ref" were in glossary, but
+ "worktree" itself wasn't, which has been corrected.
+ (merge 2df5387ed0 jc/glossary-worktree later to maint).
+
+ * L10n support for a few error messages.
+ (merge 3d3c23b3a7 bs/forbid-i18n-of-protocol-token-in-fetch-pack later to maint).
+
+ * Test modernization.
+ (merge d4fe066e4b sy/t0001-use-path-is-helper later to maint).
+
+ * "git log --graph --graph" used to leak a graph structure, and there
+ was no way to countermand "--graph" that appear earlier on the
+ command line. A "--no-graph" option has been added and resource
+ leakage has been plugged.
+
+ * Error output given in response to an ambiguous object name has been
+ improved.
+ (merge 3a73c1dfaf ab/ambiguous-object-name later to maint).
+
+ * "git sparse-checkout" wants to work with per-worktree configuration,
+ but did not work well in a worktree attached to a bare repository.
+ (merge 3ce1138272 ds/sparse-checkout-requires-per-worktree-config later to maint).
+
+ * Setting core.untrackedCache to true failed to add the untracked
+ cache extension to the index.
+
+ * Workaround we have for versions of PCRE2 before their version 10.36
+ were in effect only for their versions newer than 10.36 by mistake,
+ which has been corrected.
+ (merge 97169fc361 rs/pcre-invalid-utf8-fix-fix later to maint).
+
+ * Document Taylor as a new member of Git PLC at SFC. Welcome.
+ (merge e8d56ca863 tb/coc-plc-update later to maint).
+
+ * "git checkout -b branch/with/multi/level/name && git stash" only
+ recorded the last level component of the branch name, which has
+ been corrected.
+
+ * Check the return value from parse_tree_indirect() to turn segfaults
+ into calls to die().
+ (merge 8d2eaf649a gc/parse-tree-indirect-errors later to maint).
+
+ * Newer version of GPGSM changed its output in a backward
+ incompatible way to break our code that parses its output. It also
+ added more processes our tests need to kill when cleaning up.
+ Adjustments have been made to accommodate these changes.
+ (merge b0b70d54c4 fs/gpgsm-update later to maint).
+
+ * The untracked cache newly computed weren't written back to the
+ on-disk index file when there is no other change to the index,
+ which has been corrected.
+
+ * "git config -h" did not describe the "--type" option correctly.
+ (merge 5445124fad mf/fix-type-in-config-h later to maint).
+
+ * The way generation number v2 in the commit-graph files are
+ (not) handled has been corrected.
+ (merge 6dbf4b8172 ds/commit-graph-gen-v2-fixes later to maint).
+
+ * The method to trigger malloc check used in our tests no longer work
+ with newer versions of glibc.
+ (merge baedc59543 ep/test-malloc-check-with-glibc-2.34 later to maint).
+
+ * When "git fetch --recurse-submodules" grabbed submodule commits
+ that would be needed to recursively check out newly fetched commits
+ in the superproject, it only paid attention to submodules that are
+ in the current checkout of the superproject. We now do so for all
+ submodules that have been run "git submodule init" on.
+
+ * "git rebase $base $non_branch_commit", when $base is an ancestor or
+ the $non_branch_commit, modified the current branch, which has been
+ corrected.
+
+ * When "shallow" information is updated, we forgot to update the
+ in-core equivalent, which has been corrected.
+
+ * When creating a loose object file, we didn't report the exact
+ filename of the file we failed to fsync, even though the
+ information was readily available, which has been corrected.
+
+ * "git am" can read from the standard input when no mailbox is given
+ on the command line, but the end-user gets no indication when it
+ happens, making Git appear stuck.
+ (merge 7b20af6a06 jc/mailsplit-warn-on-tty later to maint).
+
+ * "git mv" failed to refresh the cached stat information for the
+ entry it moved.
+ (merge b7f9130a06 vd/mv-refresh-stat later to maint).
+
+ * Other code cleanup, docfix, build fix, etc.
+ (merge cfc5cf428b jc/find-header later to maint).
+ (merge 40e7cfdd46 jh/p4-fix-use-of-process-error-exception later to maint).
+ (merge 727e6ea350 jh/p4-spawning-external-commands-cleanup later to maint).
+ (merge 0a6adc26e2 rs/grep-expr-cleanup later to maint).
+ (merge 4ed7dfa713 po/readme-mention-contributor-hints later to maint).
+ (merge 6046f7a91c en/plug-leaks-in-merge later to maint).
+ (merge 8c591dbfce bc/clarify-eol-attr later to maint).
+ (merge 518e15db74 rs/parse-options-lithelp-help later to maint).
+ (merge cbac0076ef gh/doc-typos later to maint).
+ (merge ce14de03db ab/no-errno-from-resolve-ref-unsafe later to maint).
+ (merge 2826ffad8c rc/negotiate-only-typofix later to maint).
+ (merge 0f03f04c5c en/sparse-checkout-leakfix later to maint).
+ (merge 74f3390dde sy/diff-usage-typofix later to maint).
+ (merge 45d0212a71 ll/doc-mktree-typofix later to maint).
+ (merge e9b272e4c1 js/no-more-legacy-stash later to maint).
+ (merge 6798b08e84 ab/do-not-hide-failures-in-git-dot-pm later to maint).
+ (merge 9325285df4 po/doc-check-ignore-markup-fix later to maint).
+ (merge cd26cd6c7c sy/modernize-t-lib-read-tree-m-3way later to maint).
+ (merge d17294a05e ab/hash-object-leakfix later to maint).
+ (merge b8403129d3 jd/t0015-modernize later to maint).
+ (merge 332acc248d ds/mailmap later to maint).
+ (merge 04bf052eef ab/grep-patterntype later to maint).
+ (merge 6ee36364eb ab/diff-free-more later to maint).
+ (merge 63a36017fe nj/read-tree-doc-reffix later to maint).
+ (merge eed36fce38 sm/no-git-in-upstream-of-pipe-in-tests later to maint).
+ (merge c614beb933 ep/t6423-modernize later to maint).
+ (merge 57be9c6dee ab/reflog-prep-fix later to maint).
+ (merge 5327d8982a js/in-place-reverse-in-sequencer later to maint).
+ (merge 2e2c0be51e dp/worktree-repair-in-usage later to maint).
+ (merge 6563706568 jc/coding-guidelines-decl-in-for-loop later to maint).
diff --git a/Documentation/RelNotes/2.36.1.txt b/Documentation/RelNotes/2.36.1.txt
new file mode 100644
index 0000000000..a9617095db
--- /dev/null
+++ b/Documentation/RelNotes/2.36.1.txt
@@ -0,0 +1,33 @@
+Git v2.36.1 Release Notes
+=========================
+
+Fixes since v2.36
+-----------------
+
+ * "git submodule update" without pathspec should silently skip an
+ uninitialized submodule, but it started to become noisy by mistake.
+
+ * "diff-tree --stdin" has been broken for about a year, but 2.36
+ release broke it even worse by breaking running the command with
+ <pathspec>, which in turn broke "gitk" and got noticed. This has
+ been corrected by aligning its behaviour to that of "log".
+
+ * Regression fix for 2.36 where "git name-rev" started to sometimes
+ reference strings after they are freed.
+
+ * "git show <commit1> <commit2>... -- <pathspec>" lost the pathspec
+ when showing the second and subsequent commits, which has been
+ corrected.
+
+ * "git fast-export -- <pathspec>" lost the pathspec when showing the
+ second and subsequent commits, which has been corrected.
+
+ * "git format-patch <args> -- <pathspec>" lost the pathspec when
+ showing the second and subsequent commits, which has been
+ corrected.
+
+ * Get rid of a bogus and over-eager coccinelle rule.
+
+ * Correct choices of C compilers used in various CI jobs.
+
+Also contains minor documentation updates and code clean-ups.
diff --git a/Documentation/RelNotes/2.37.0.txt b/Documentation/RelNotes/2.37.0.txt
new file mode 100644
index 0000000000..ac8fd41e52
--- /dev/null
+++ b/Documentation/RelNotes/2.37.0.txt
@@ -0,0 +1,90 @@
+Git v2.37 Release Notes
+=======================
+
+UI, Workflows & Features
+
+ * "vimdiff[123]" mergetool drivers have been reimplemented with a
+ more generic layout mechanism.
+
+
+Performance, Internal Implementation, Development Support etc.
+
+ * The performance of the "untracked cache" feature has been improved
+ when "--untracked-files=<mode>" and "status.showUntrackedFiles"
+ are combined.
+
+
+Fixes since v2.36
+-----------------
+
+ * "git submodule update" without pathspec should silently skip an
+ uninitialized submodule, but it started to become noisy by mistake.
+ (merge 4f1ccef87c gc/submodule-update-part2 later to maint).
+
+ * "diff-tree --stdin" has been broken for about a year, but 2.36
+ release broke it even worse by breaking running the command with
+ <pathspec>, which in turn broke "gitk" and got noticed. This has
+ been corrected by aligning its behaviour to that of "log".
+ (merge f8781bfda3 jc/diff-tree-stdin-fix later to maint).
+
+ * Regression fix for 2.36 where "git name-rev" started to sometimes
+ reference strings after they are freed.
+ (merge 45a14f578e rs/name-rev-fix-free-after-use later to maint).
+
+ * "git show <commit1> <commit2>... -- <pathspec>" lost the pathspec
+ when showing the second and subsequent commits, which has been
+ corrected.
+ (merge 5cdb38458e jc/show-pathspec-fix later to maint).
+
+ * "git fast-export -- <pathspec>" lost the pathspec when showing the
+ second and subsequent commits, which has been corrected.
+ (merge d1c25272f5 rs/fast-export-pathspec-fix later to maint).
+
+ * "git format-patch <args> -- <pathspec>" lost the pathspec when
+ showing the second and subsequent commits, which has been
+ corrected.
+ (merge 91f8f7e46f rs/format-patch-pathspec-fix later to maint).
+
+ * "git clone --origin X" leaked piece of memory that held value read
+ from the clone.defaultRemoteName configuration variable, which has
+ been plugged.
+ (merge 6dfadc8981 jc/clone-remote-name-leak-fix later to maint).
+
+ * Get rid of a bogus and over-eager coccinelle rule.
+ (merge 08bdd3a185 jc/cocci-xstrdup-or-null-fix later to maint).
+
+ * The path taken by "git multi-pack-index" command from the end user
+ was compared with path internally prepared by the tool withut first
+ normalizing, which lead to duplicated paths not being noticed,
+ which has been corrected.
+ (merge 11f9e8de3d ds/midx-normalize-pathname-before-comparison later to maint).
+
+ * Correct choices of C compilers used in various CI jobs.
+ (merge 3506cae04f ab/cc-package-fixes later to maint).
+
+ * Various cleanups to "git p4".
+ (merge 4ff0108d9e jh/p4-various-fixups later to maint).
+
+ * The progress meter of "git blame" was showing incorrect numbers
+ when processing only parts of the file.
+ (merge e5f5d7d42e ea/progress-partial-blame later to maint).
+
+ * "git rebase --keep-base <upstream> <branch-to-rebase>" computed the
+ commit to rebase onto incorrectly, which has been corrected.
+ (merge 9e5ebe9668 ah/rebase-keep-base-fix later to maint).
+
+ * Fix a leak of FILE * in an error codepath.
+ (merge c0befa0c03 kt/commit-graph-plug-fp-leak-on-error later to maint).
+
+ * Avoid problems from interaction between malloc_check and address
+ sanitizer.
+ (merge 067109a5e7 pw/test-malloc-with-sanitize-address later to maint).
+
+ * The commit summary shown after making a commit is matched to what
+ is given in "git status" not to use the break-rewrite heuristics.
+ (merge 84792322ed rs/commit-summary-wo-break-rewrite later to maint).
+
+ * Other code cleanup, docfix, build fix, etc.
+ (merge e6b2582da3 cm/reftable-0-length-memset later to maint).
+ (merge 0b75e5bf22 ab/misc-cleanup later to maint).
+ (merge 52e1ab8a76 ea/rebase-code-simplify later to maint).
diff --git a/Documentation/SubmittingPatches b/Documentation/SubmittingPatches
index 92b80d94d4..5bd795e5db 100644
--- a/Documentation/SubmittingPatches
+++ b/Documentation/SubmittingPatches
@@ -110,6 +110,35 @@ run `git diff --check` on your changes before you commit.
[[describe-changes]]
=== Describe your changes well.
+The log message that explains your changes is just as important as the
+changes themselves. Your code may be clearly written with in-code
+comment to sufficiently explain how it works with the surrounding
+code, but those who need to fix or enhance your code in the future
+will need to know _why_ your code does what it does, for a few
+reasons:
+
+. Your code may be doing something differently from what you wanted it
+ to do. Writing down what you actually wanted to achieve will help
+ them fix your code and make it do what it should have been doing
+ (also, you often discover your own bugs yourself, while writing the
+ log message to summarize the thought behind it).
+
+. Your code may be doing things that were only necessary for your
+ immediate needs (e.g. "do X to directories" without implementing or
+ even designing what is to be done on files). Writing down why you
+ excluded what the code does not do will help guide future developers.
+ Writing down "we do X to directories, because directories have
+ characteristic Y" would help them infer "oh, files also have the same
+ characteristic Y, so perhaps doing X to them would also make sense?".
+ Saying "we don't do the same X to files, because ..." will help them
+ decide if the reasoning is sound (in which case they do not waste
+ time extending your code to cover files), or reason differently (in
+ which case, they can explain why they extend your code to cover
+ files, too).
+
+The goal of your log message is to convey the _why_ behind your
+change to help future developers.
+
The first line of the commit message should be a short description (50
characters is the soft limit, see DISCUSSION in linkgit:git-commit[1]),
and should skip the full stop. It is also conventional in most cases to
@@ -142,6 +171,13 @@ The body should provide a meaningful commit message, which:
. alternate solutions considered but discarded, if any.
+[[present-tense]]
+The problem statement that describes the status quo is written in the
+present tense. Write "The code does X when it is given input Y",
+instead of "The code used to do Y when given input X". You do not
+have to say "Currently"---the status quo in the problem statement is
+about the code _without_ your change, by project convention.
+
[[imperative-mood]]
Describe your changes in imperative mood, e.g. "make xyzzy do frotz"
instead of "[This patch] makes xyzzy do frotz" or "[I] changed xyzzy
@@ -416,7 +452,10 @@ repositories.
- `gitk-git/` comes from Paul Mackerras's gitk project:
- git://ozlabs.org/~paulus/gitk
+ git://git.ozlabs.org/~paulus/gitk
+
+ Those who are interested in improve gitk can volunteer to help Paul
+ in maintaining it cf. <YntxL/fTplFm8lr6@cleo>.
- `po/` comes from the localization coordinator, Jiang Xin:
diff --git a/Documentation/config.txt b/Documentation/config.txt
index 8d3f518083..e284b042f2 100644
--- a/Documentation/config.txt
+++ b/Documentation/config.txt
@@ -159,6 +159,33 @@ all branches that begin with `foo/`. This is useful if your branches are
organized hierarchically and you would like to apply a configuration to
all the branches in that hierarchy.
+`hasconfig:remote.*.url:`::
+ The data that follows this keyword is taken to
+ be a pattern with standard globbing wildcards and two
+ additional ones, `**/` and `/**`, that can match multiple
+ components. The first time this keyword is seen, the rest of
+ the config files will be scanned for remote URLs (without
+ applying any values). If there exists at least one remote URL
+ that matches this pattern, the include condition is met.
++
+Files included by this option (directly or indirectly) are not allowed
+to contain remote URLs.
++
+Note that unlike other includeIf conditions, resolving this condition
+relies on information that is not yet known at the point of reading the
+condition. A typical use case is this option being present as a
+system-level or global-level config, and the remote URL being in a
+local-level config; hence the need to scan ahead when resolving this
+condition. In order to avoid the chicken-and-egg problem in which
+potentially-included files can affect whether such files are potentially
+included, Git breaks the cycle by prohibiting these files from affecting
+the resolution of these conditions (thus, prohibiting them from
+declaring remote URLs).
++
+As for the naming of this keyword, it is for forwards compatibiliy with
+a naming scheme that supports more variable-based include conditions,
+but currently Git only supports the exact keyword described above.
+
A few more notes on matching via `gitdir` and `gitdir/i`:
* Symlinks in `$GIT_DIR` are not resolved before matching.
@@ -226,6 +253,14 @@ Example
; currently checked out
[includeIf "onbranch:foo-branch"]
path = foo.inc
+
+; include only if a remote with the given URL exists (note
+; that such a URL may be provided later in a file or in a
+; file read after this file is read, as seen in this example)
+[includeIf "hasconfig:remote.*.url:https://example.com/**"]
+ path = foo.inc
+[remote "origin"]
+ url = https://example.com/git
----
Values
@@ -460,8 +495,6 @@ include::config/repack.txt[]
include::config/rerere.txt[]
-include::config/reset.txt[]
-
include::config/safe.txt[]
include::config/sendemail.txt[]
@@ -470,6 +503,8 @@ include::config/sequencer.txt[]
include::config/showbranch.txt[]
+include::config/sparse.txt[]
+
include::config/splitindex.txt[]
include::config/ssh.txt[]
diff --git a/Documentation/config/advice.txt b/Documentation/config/advice.txt
index 063eec2511..a00d0100a8 100644
--- a/Documentation/config/advice.txt
+++ b/Documentation/config/advice.txt
@@ -4,6 +4,10 @@ advice.*::
can tell Git that you do not need help by setting these to 'false':
+
--
+ ambiguousFetchRefspec::
+ Advice shown when fetch refspec for multiple remotes map to
+ the same remote-tracking branch namespace and causes branch
+ tracking set-up to fail.
fetchShowForcedUpdates::
Advice shown when linkgit:git-fetch[1] takes a long time
to calculate forced updates after ref updates, or to warn
@@ -67,10 +71,10 @@ advice.*::
commitBeforeMerge::
Advice shown when linkgit:git-merge[1] refuses to
merge to avoid overwriting local changes.
- resetQuiet::
- Advice to consider using the `--quiet` option to linkgit:git-reset[1]
- when the command takes more than 2 seconds to enumerate unstaged
- changes after reset.
+ resetNoRefresh::
+ Advice to consider using the `--no-refresh` option to
+ linkgit:git-reset[1] when the command takes more than 2 seconds
+ to refresh the index after reset.
resolveConflict::
Advice shown by various commands when conflicts
prevent the operation from being performed.
@@ -85,6 +89,9 @@ advice.*::
linkgit:git-switch[1] or linkgit:git-checkout[1]
to move to the detach HEAD state, to instruct how to
create a local branch after the fact.
+ suggestDetachingHead::
+ Advice shown when linkgit:git-switch[1] refuses to detach HEAD
+ without the explicit `--detach` option.
checkoutAmbiguousRemoteBranchName::
Advice shown when the argument to
linkgit:git-checkout[1] and linkgit:git-switch[1]
@@ -116,6 +123,9 @@ advice.*::
submoduleAlternateErrorStrategyDie::
Advice shown when a submodule.alternateErrorStrategy option
configured to "die" causes a fatal error.
+ submodulesNotUpdated::
+ Advice shown when a user runs a submodule command that fails
+ because `git submodule update --init` was not run.
addIgnoredFile::
Advice shown if a user attempts to add an ignored file to
the index.
diff --git a/Documentation/config/clone.txt b/Documentation/config/clone.txt
index 7bcfbd18a5..26f4fb137a 100644
--- a/Documentation/config/clone.txt
+++ b/Documentation/config/clone.txt
@@ -6,3 +6,8 @@ clone.defaultRemoteName::
clone.rejectShallow::
Reject to clone a repository if it is a shallow one, can be overridden by
passing option `--reject-shallow` in command line. See linkgit:git-clone[1]
+
+clone.filterSubmodules::
+ If a partial clone filter is provided (see `--filter` in
+ linkgit:git-rev-list[1]) and `--recurse-submodules` is used, also apply
+ the filter to submodules.
diff --git a/Documentation/config/core.txt b/Documentation/config/core.txt
index c04f62a54a..e67392cc83 100644
--- a/Documentation/config/core.txt
+++ b/Documentation/config/core.txt
@@ -62,22 +62,54 @@ core.protectNTFS::
Defaults to `true` on Windows, and `false` elsewhere.
core.fsmonitor::
- If set, the value of this variable is used as a command which
- will identify all files that may have changed since the
- requested date/time. This information is used to speed up git by
- avoiding unnecessary processing of files that have not changed.
- See the "fsmonitor-watchman" section of linkgit:githooks[5].
+ If set to true, enable the built-in file system monitor
+ daemon for this working directory (linkgit:git-fsmonitor{litdd}daemon[1]).
++
+Like hook-based file system monitors, the built-in file system monitor
+can speed up Git commands that need to refresh the Git index
+(e.g. `git status`) in a working directory with many files. The
+built-in monitor eliminates the need to install and maintain an
+external third-party tool.
++
+The built-in file system monitor is currently available only on a
+limited set of supported platforms. Currently, this includes Windows
+and MacOS.
++
+ Otherwise, this variable contains the pathname of the "fsmonitor"
+ hook command.
++
+This hook command is used to identify all files that may have changed
+since the requested date/time. This information is used to speed up
+git by avoiding unnecessary scanning of files that have not changed.
++
+See the "fsmonitor-watchman" section of linkgit:githooks[5].
++
+Note that if you concurrently use multiple versions of Git, such
+as one version on the command line and another version in an IDE
+tool, that the definition of `core.fsmonitor` was extended to
+allow boolean values in addition to hook pathnames. Git versions
+2.35.1 and prior will not understand the boolean values and will
+consider the "true" or "false" values as hook pathnames to be
+invoked. Git versions 2.26 thru 2.35.1 default to hook protocol
+V2 and will fall back to no fsmonitor (full scan). Git versions
+prior to 2.26 default to hook protocol V1 and will silently
+assume there were no changes to report (no scan), so status
+commands may report incomplete results. For this reason, it is
+best to upgrade all of your Git versions before using the built-in
+file system monitor.
core.fsmonitorHookVersion::
- Sets the version of hook that is to be used when calling fsmonitor.
- There are currently versions 1 and 2. When this is not set,
- version 2 will be tried first and if it fails then version 1
- will be tried. Version 1 uses a timestamp as input to determine
- which files have changes since that time but some monitors
- like watchman have race conditions when used with a timestamp.
- Version 2 uses an opaque string so that the monitor can return
- something that can be used to determine what files have changed
- without race conditions.
+ Sets the protocol version to be used when invoking the
+ "fsmonitor" hook.
++
+There are currently versions 1 and 2. When this is not set,
+version 2 will be tried first and if it fails then version 1
+will be tried. Version 1 uses a timestamp as input to determine
+which files have changes since that time but some monitors
+like Watchman have race conditions when used with a timestamp.
+Version 2 uses an opaque string so that the monitor can return
+something that can be used to determine what files have changed
+without race conditions.
core.trustctime::
If false, the ctime differences between the index and the
@@ -547,13 +579,64 @@ core.whitespace::
is relevant for `indent-with-non-tab` and when Git fixes `tab-in-indent`
errors. The default tab width is 8. Allowed values are 1 to 63.
+core.fsync::
+ A comma-separated list of components of the repository that
+ should be hardened via the core.fsyncMethod when created or
+ modified. You can disable hardening of any component by
+ prefixing it with a '-'. Items that are not hardened may be
+ lost in the event of an unclean system shutdown. Unless you
+ have special requirements, it is recommended that you leave
+ this option empty or pick one of `committed`, `added`,
+ or `all`.
++
+When this configuration is encountered, the set of components starts with
+the platform default value, disabled components are removed, and additional
+components are added. `none` resets the state so that the platform default
+is ignored.
++
+The empty string resets the fsync configuration to the platform
+default. The default on most platforms is equivalent to
+`core.fsync=committed,-loose-object`, which has good performance,
+but risks losing recent work in the event of an unclean system shutdown.
++
+* `none` clears the set of fsynced components.
+* `loose-object` hardens objects added to the repo in loose-object form.
+* `pack` hardens objects added to the repo in packfile form.
+* `pack-metadata` hardens packfile bitmaps and indexes.
+* `commit-graph` hardens the commit graph file.
+* `index` hardens the index when it is modified.
+* `objects` is an aggregate option that is equivalent to
+ `loose-object,pack`.
+* `reference` hardens references modified in the repo.
+* `derived-metadata` is an aggregate option that is equivalent to
+ `pack-metadata,commit-graph`.
+* `committed` is an aggregate option that is currently equivalent to
+ `objects`. This mode sacrifices some performance to ensure that work
+ that is committed to the repository with `git commit` or similar commands
+ is hardened.
+* `added` is an aggregate option that is currently equivalent to
+ `committed,index`. This mode sacrifices additional performance to
+ ensure that the results of commands like `git add` and similar operations
+ are hardened.
+* `all` is an aggregate option that syncs all individual components above.
+
+core.fsyncMethod::
+ A value indicating the strategy Git will use to harden repository data
+ using fsync and related primitives.
++
+* `fsync` uses the fsync() system call or platform equivalents.
+* `writeout-only` issues pagecache writeback requests, but depending on the
+ filesystem and storage hardware, data added to the repository may not be
+ durable in the event of a system crash. This is the default mode on macOS.
+
core.fsyncObjectFiles::
This boolean will enable 'fsync()' when writing object files.
+ This setting is deprecated. Use core.fsync instead.
+
-This is a total waste of time and effort on a filesystem that orders
-data writes properly, but can be useful for filesystems that do not use
-journalling (traditional UNIX filesystems) or that only journal metadata
-and not file contents (OS X's HFS+, or Linux ext3 with "data=writeback").
+This setting affects data added to the Git repository in loose-object
+form. When set to true, Git will issue an fsync or similar system call
+to flush caches so that loose-objects remain consistent in the face
+of a unclean system shutdown.
core.preloadIndex::
Enable parallel index preload for operations like 'git diff'
diff --git a/Documentation/config/extensions.txt b/Documentation/config/extensions.txt
index 4e23d73cdc..bccaec7a96 100644
--- a/Documentation/config/extensions.txt
+++ b/Documentation/config/extensions.txt
@@ -6,3 +6,34 @@ extensions.objectFormat::
Note that this setting should only be set by linkgit:git-init[1] or
linkgit:git-clone[1]. Trying to change it after initialization will not
work and will produce hard-to-diagnose issues.
+
+extensions.worktreeConfig::
+ If enabled, then worktrees will load config settings from the
+ `$GIT_DIR/config.worktree` file in addition to the
+ `$GIT_COMMON_DIR/config` file. Note that `$GIT_COMMON_DIR` and
+ `$GIT_DIR` are the same for the main working tree, while other
+ working trees have `$GIT_DIR` equal to
+ `$GIT_COMMON_DIR/worktrees/<id>/`. The settings in the
+ `config.worktree` file will override settings from any other
+ config files.
++
+When enabling `extensions.worktreeConfig`, you must be careful to move
+certain values from the common config file to the main working tree's
+`config.worktree` file, if present:
++
+* `core.worktree` must be moved from `$GIT_COMMON_DIR/config` to
+ `$GIT_COMMON_DIR/config.worktree`.
+* If `core.bare` is true, then it must be moved from `$GIT_COMMON_DIR/config`
+ to `$GIT_COMMON_DIR/config.worktree`.
++
+It may also be beneficial to adjust the locations of `core.sparseCheckout`
+and `core.sparseCheckoutCone` depending on your desire for customizable
+sparse-checkout settings for each worktree. By default, the `git
+sparse-checkout` builtin enables `extensions.worktreeConfig`, assigns
+these config values on a per-worktree basis, and uses the
+`$GIT_DIR/info/sparse-checkout` file to specify the sparsity for each
+worktree independently. See linkgit:git-sparse-checkout[1] for more
+details.
++
+For historical reasons, `extensions.worktreeConfig` is respected
+regardless of the `core.repositoryFormatVersion` setting.
diff --git a/Documentation/config/fetch.txt b/Documentation/config/fetch.txt
index 63748c02b7..cd65d236b4 100644
--- a/Documentation/config/fetch.txt
+++ b/Documentation/config/fetch.txt
@@ -56,18 +56,19 @@ fetch.output::
OUTPUT in linkgit:git-fetch[1] for detail.
fetch.negotiationAlgorithm::
- Control how information about the commits in the local repository is
- sent when negotiating the contents of the packfile to be sent by the
- server. Set to "skipping" to use an algorithm that skips commits in an
- effort to converge faster, but may result in a larger-than-necessary
- packfile; or set to "noop" to not send any information at all, which
- will almost certainly result in a larger-than-necessary packfile, but
- will skip the negotiation step.
- The default is "default" which instructs Git to use the default algorithm
- that never skips commits (unless the server has acknowledged it or one
- of its descendants). If `feature.experimental` is enabled, then this
- setting defaults to "skipping".
- Unknown values will cause 'git fetch' to error out.
+ Control how information about the commits in the local repository
+ is sent when negotiating the contents of the packfile to be sent by
+ the server. Set to "consecutive" to use an algorithm that walks
+ over consecutive commits checking each one. Set to "skipping" to
+ use an algorithm that skips commits in an effort to converge
+ faster, but may result in a larger-than-necessary packfile; or set
+ to "noop" to not send any information at all, which will almost
+ certainly result in a larger-than-necessary packfile, but will skip
+ the negotiation step. Set to "default" to override settings made
+ previously and use the default behaviour. The default is normally
+ "consecutive", but if `feature.experimental` is true, then the
+ default is "skipping". Unknown values will cause 'git fetch' to
+ error out.
+
See also the `--negotiate-only` and `--negotiation-tip` options to
linkgit:git-fetch[1].
diff --git a/Documentation/config/gpg.txt b/Documentation/config/gpg.txt
index 0cb189a077..86892ada77 100644
--- a/Documentation/config/gpg.txt
+++ b/Documentation/config/gpg.txt
@@ -37,7 +37,7 @@ gpg.minTrustLevel::
gpg.ssh.defaultKeyCommand::
This command that will be run when user.signingkey is not set and a ssh
signature is requested. On successful exit a valid ssh public key is
- expected in the first line of its output. To automatically use the first
+ expected in the first line of its output. To automatically use the first
available key from your ssh-agent set this to "ssh-add -L".
gpg.ssh.allowedSignersFile::
@@ -66,7 +66,7 @@ This way only committers with an already valid key can add or change keys in the
+
Since OpensSSH 8.8 this file allows specifying a key lifetime using valid-after &
valid-before options. Git will mark signatures as valid if the signing key was
-valid at the time of the signatures creation. This allows users to change a
+valid at the time of the signature's creation. This allows users to change a
signing key without invalidating all previously made signatures.
+
Using a SSH CA key with the cert-authority option
diff --git a/Documentation/config/mergetool.txt b/Documentation/config/mergetool.txt
index cafbbef46a..90b3809700 100644
--- a/Documentation/config/mergetool.txt
+++ b/Documentation/config/mergetool.txt
@@ -45,6 +45,15 @@ mergetool.meld.useAutoMerge::
value of `false` avoids using `--auto-merge` altogether, and is the
default value.
+mergetool.vimdiff.layout::
+ The vimdiff backend uses this variable to control how its split
+ windows look like. Applies even if you are using Neovim (`nvim`) or
+ gVim (`gvim`) as the merge tool. See BACKEND SPECIFIC HINTS section
+ifndef::git-mergetool[]
+ in linkgit:git-mergetool[1].
+endif::[]
+ for details.
+
mergetool.hideResolved::
During a merge Git will automatically resolve as many conflicts as
possible and write the 'MERGED' file containing conflict markers around
diff --git a/Documentation/config/remote.txt b/Documentation/config/remote.txt
index a8e6437a90..0678b4bcfe 100644
--- a/Documentation/config/remote.txt
+++ b/Documentation/config/remote.txt
@@ -82,5 +82,7 @@ remote.<name>.promisor::
objects.
remote.<name>.partialclonefilter::
- The filter that will be applied when fetching from this
- promisor remote.
+ The filter that will be applied when fetching from this promisor remote.
+ Changing or clearing this value will only affect fetches for new commits.
+ To fetch associated objects for commits already present in the local object
+ database, use the `--refetch` option of linkgit:git-fetch[1].
diff --git a/Documentation/config/repack.txt b/Documentation/config/repack.txt
index 9c413e177e..41ac6953c8 100644
--- a/Documentation/config/repack.txt
+++ b/Documentation/config/repack.txt
@@ -25,3 +25,8 @@ repack.writeBitmaps::
space and extra time spent on the initial repack. This has
no effect if multiple packfiles are created.
Defaults to true on bare repos, false otherwise.
+
+repack.updateServerInfo::
+ If set to false, linkgit:git-repack[1] will not run
+ linkgit:git-update-server-info[1]. Defaults to true. Can be overridden
+ when true by the `-n` option of linkgit:git-repack[1].
diff --git a/Documentation/config/reset.txt b/Documentation/config/reset.txt
deleted file mode 100644
index 63b7c45aac..0000000000
--- a/Documentation/config/reset.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-reset.quiet::
- When set to true, 'git reset' will default to the '--quiet' option.
diff --git a/Documentation/config/safe.txt b/Documentation/config/safe.txt
index 6d764fe0cc..ae0e2e3bdb 100644
--- a/Documentation/config/safe.txt
+++ b/Documentation/config/safe.txt
@@ -13,8 +13,8 @@ override any such directories specified in the system config), add a
`safe.directory` entry with an empty value.
+
This config setting is only respected when specified in a system or global
-config, not when it is specified in a repository config or via the command
-line option `-c safe.directory=<path>`.
+config, not when it is specified in a repository config, via the command
+line option `-c safe.directory=<path>`, or in environment variables.
+
The value of this setting is interpolated, i.e. `~/<path>` expands to a
path relative to the home directory and `%(prefix)/<path>` expands to a
diff --git a/Documentation/config/sparse.txt b/Documentation/config/sparse.txt
new file mode 100644
index 0000000000..aff49a8d3a
--- /dev/null
+++ b/Documentation/config/sparse.txt
@@ -0,0 +1,27 @@
+sparse.expectFilesOutsideOfPatterns::
+ Typically with sparse checkouts, files not matching any
+ sparsity patterns are marked with a SKIP_WORKTREE bit in the
+ index and are missing from the working tree. Accordingly, Git
+ will ordinarily check whether files with the SKIP_WORKTREE bit
+ are in fact present in the working tree contrary to
+ expectations. If Git finds any, it marks those paths as
+ present by clearing the relevant SKIP_WORKTREE bits. This
+ option can be used to tell Git that such
+ present-despite-skipped files are expected and to stop
+ checking for them.
++
+The default is `false`, which allows Git to automatically recover
+from the list of files in the index and working tree falling out of
+sync.
++
+Set this to `true` if you are in a setup where some external factor
+relieves Git of the responsibility for maintaining the consistency
+between the presence of working tree files and sparsity patterns. For
+example, if you have a Git-aware virtual file system that has a robust
+mechanism for keeping the working tree and the sparsity patterns up to
+date based on access patterns.
++
+Regardless of this setting, Git does not check for
+present-despite-skipped files unless sparse checkout is enabled, so
+this config option has no effect unless `core.sparseCheckout` is
+`true`.
diff --git a/Documentation/config/stash.txt b/Documentation/config/stash.txt
index 9ed775281f..b9f609ed76 100644
--- a/Documentation/config/stash.txt
+++ b/Documentation/config/stash.txt
@@ -1,10 +1,3 @@
-stash.useBuiltin::
- Unused configuration variable. Used in Git versions 2.22 to
- 2.26 as an escape hatch to enable the legacy shellscript
- implementation of stash. Now the built-in rewrite of it in C
- is always used. Setting this will emit a warning, to alert any
- remaining users that setting this now does nothing.
-
stash.showIncludeUntracked::
If this is set to true, the `git stash show` command will show
the untracked files of a stash entry. Defaults to false. See
diff --git a/Documentation/config/submodule.txt b/Documentation/config/submodule.txt
index ee454f8126..6490527b45 100644
--- a/Documentation/config/submodule.txt
+++ b/Documentation/config/submodule.txt
@@ -59,18 +59,33 @@ submodule.active::
submodule.recurse::
A boolean indicating if commands should enable the `--recurse-submodules`
- option by default.
- Applies to all commands that support this option
- (`checkout`, `fetch`, `grep`, `pull`, `push`, `read-tree`, `reset`,
- `restore` and `switch`) except `clone` and `ls-files`.
+ option by default. Defaults to false.
++
+When set to true, it can be deactivated via the
+`--no-recurse-submodules` option. Note that some Git commands
+lacking this option may call some of the above commands affected by
+`submodule.recurse`; for instance `git remote update` will call
+`git fetch` but does not have a `--no-recurse-submodules` option.
+For these commands a workaround is to temporarily change the
+configuration value by using `git -c submodule.recurse=0`.
++
+The following list shows the commands that accept
+`--recurse-submodules` and whether they are supported by this
+setting.
+
+* `checkout`, `fetch`, `grep`, `pull`, `push`, `read-tree`,
+`reset`, `restore` and `switch` are always supported.
+* `clone` and `ls-files` are not supported.
+* `branch` is supported only if `submodule.propagateBranches` is
+enabled
+
+submodule.propagateBranches::
+ [EXPERIMENTAL] A boolean that enables branching support when
+ using `--recurse-submodules` or `submodule.recurse=true`.
+ Enabling this will allow certain commands to accept
+ `--recurse-submodules` and certain commands that already accept
+ `--recurse-submodules` will now consider branches.
Defaults to false.
- When set to true, it can be deactivated via the
- `--no-recurse-submodules` option. Note that some Git commands
- lacking this option may call some of the above commands affected by
- `submodule.recurse`; for instance `git remote update` will call
- `git fetch` but does not have a `--no-recurse-submodules` option.
- For these commands a workaround is to temporarily change the
- configuration value by using `git -c submodule.recurse=0`.
submodule.fetchJobs::
Specifies how many submodules are fetched/cloned at the same time.
diff --git a/Documentation/diff-options.txt b/Documentation/diff-options.txt
index c89d530d3d..3674ac48e9 100644
--- a/Documentation/diff-options.txt
+++ b/Documentation/diff-options.txt
@@ -34,7 +34,7 @@ endif::git-diff[]
endif::git-format-patch[]
ifdef::git-log[]
---diff-merges=(off|none|on|first-parent|1|separate|m|combined|c|dense-combined|cc)::
+--diff-merges=(off|none|on|first-parent|1|separate|m|combined|c|dense-combined|cc|remerge|r)::
--no-diff-merges::
Specify diff format to be used for merge commits. Default is
{diff-merges-default} unless `--first-parent` is in use, in which case
@@ -64,6 +64,18 @@ ifdef::git-log[]
each of the parents. Separate log entry and diff is generated
for each parent.
+
+--diff-merges=remerge:::
+--diff-merges=r:::
+--remerge-diff:::
+ With this option, two-parent merge commits are remerged to
+ create a temporary tree object -- potentially containing files
+ with conflict markers and such. A diff is then shown between
+ that temporary tree and the actual merge commit.
++
+The output emitted when this option is used is subject to change, and
+so is its interaction with other options (unless explicitly
+documented).
++
--diff-merges=combined:::
--diff-merges=c:::
-c:::
@@ -616,11 +628,8 @@ ifndef::git-format-patch[]
Also, these upper-case letters can be downcased to exclude. E.g.
`--diff-filter=ad` excludes added and deleted paths.
+
-Note that not all diffs can feature all types. For instance, diffs
-from the index to the working tree can never have Added entries
-(because the set of paths included in the diff is limited by what is in
-the index). Similarly, copied and renamed entries cannot appear if
-detection for those types is disabled.
+Note that not all diffs can feature all types. For instance, copied and
+renamed entries cannot appear if detection for those types is disabled.
-S<string>::
Look for differences that change the number of occurrences of
diff --git a/Documentation/fetch-options.txt b/Documentation/fetch-options.txt
index e967ff1874..622bd84768 100644
--- a/Documentation/fetch-options.txt
+++ b/Documentation/fetch-options.txt
@@ -71,6 +71,7 @@ configuration variables documented in linkgit:git-config[1], and the
ancestors of the provided `--negotiation-tip=*` arguments,
which we have in common with the server.
+
+This is incompatible with `--recurse-submodules=[yes|on-demand]`.
Internally this is used to implement the `push.negotiate` option, see
linkgit:git-config[1].
@@ -162,6 +163,16 @@ endif::git-pull[]
behavior for a remote may be specified with the remote.<name>.tagOpt
setting. See linkgit:git-config[1].
+ifndef::git-pull[]
+--refetch::
+ Instead of negotiating with the server to avoid transferring commits and
+ associated objects that are already present locally, this option fetches
+ all objects as a fresh clone would. Use this to reapply a partial clone
+ filter from configuration or using `--filter=` when the filter
+ definition has changed. Automatic post-fetch maintenance will perform
+ object database pack consolidation to remove any duplicate objects.
+endif::git-pull[]
+
--refmap=<refspec>::
When fetching refs listed on the command line, use the
specified refspec (can be given more than once) to map the
@@ -185,15 +196,23 @@ endif::git-pull[]
ifndef::git-pull[]
--recurse-submodules[=yes|on-demand|no]::
This option controls if and under what conditions new commits of
- populated submodules should be fetched too. It can be used as a
- boolean option to completely disable recursion when set to 'no' or to
- unconditionally recurse into all populated submodules when set to
- 'yes', which is the default when this option is used without any
- value. Use 'on-demand' to only recurse into a populated submodule
- when the superproject retrieves a commit that updates the submodule's
- reference to a commit that isn't already in the local submodule
- clone. By default, 'on-demand' is used, unless
- `fetch.recurseSubmodules` is set (see linkgit:git-config[1]).
+ submodules should be fetched too. When recursing through submodules,
+ `git fetch` always attempts to fetch "changed" submodules, that is, a
+ submodule that has commits that are referenced by a newly fetched
+ superproject commit but are missing in the local submodule clone. A
+ changed submodule can be fetched as long as it is present locally e.g.
+ in `$GIT_DIR/modules/` (see linkgit:gitsubmodules[7]); if the upstream
+ adds a new submodule, that submodule cannot be fetched until it is
+ cloned e.g. by `git submodule update`.
++
+When set to 'on-demand', only changed submodules are fetched. When set
+to 'yes', all populated submodules are fetched and submodules that are
+both unpopulated and changed are fetched. When set to 'no', submodules
+are never fetched.
++
+When unspecified, this uses the value of `fetch.recurseSubmodules` if it
+is set (see linkgit:git-config[1]), defaulting to 'on-demand' if unset.
+When this option is used without any value, it defaults to 'yes'.
endif::git-pull[]
-j::
diff --git a/Documentation/git-branch.txt b/Documentation/git-branch.txt
index 731e340cbc..c8b4f9ce3c 100644
--- a/Documentation/git-branch.txt
+++ b/Documentation/git-branch.txt
@@ -16,7 +16,8 @@ SYNOPSIS
[--points-at <object>] [--format=<format>]
[(-r | --remotes) | (-a | --all)]
[--list] [<pattern>...]
-'git branch' [--track[=(direct|inherit)] | --no-track] [-f] <branchname> [<start-point>]
+'git branch' [--track[=(direct|inherit)] | --no-track] [-f]
+ [--recurse-submodules] <branchname> [<start-point>]
'git branch' (--set-upstream-to=<upstream> | -u <upstream>) [<branchname>]
'git branch' --unset-upstream [<branchname>]
'git branch' (-m | -M) [<oldbranch>] <newbranch>
@@ -235,6 +236,22 @@ how the `branch.<name>.remote` and `branch.<name>.merge` options are used.
Do not set up "upstream" configuration, even if the
branch.autoSetupMerge configuration variable is set.
+--recurse-submodules::
+ THIS OPTION IS EXPERIMENTAL! Causes the current command to
+ recurse into submodules if `submodule.propagateBranches` is
+ enabled. See `submodule.propagateBranches` in
+ linkgit:git-config[1]. Currently, only branch creation is
+ supported.
++
+When used in branch creation, a new branch <branchname> will be created
+in the superproject and all of the submodules in the superproject's
+<start-point>. In submodules, the branch will point to the submodule
+commit in the superproject's <start-point> but the branch's tracking
+information will be set up based on the submodule's branches and remotes
+e.g. `git branch --recurse-submodules topic origin/main` will create the
+submodule branch "topic" that points to the submodule commit in the
+superproject's "origin/main", but tracks the submodule's "origin/main".
+
--set-upstream::
As this option had confusing syntax, it is no longer supported.
Please use `--track` or `--set-upstream-to` instead.
diff --git a/Documentation/git-bundle.txt b/Documentation/git-bundle.txt
index 72ab813905..7685b57045 100644
--- a/Documentation/git-bundle.txt
+++ b/Documentation/git-bundle.txt
@@ -75,8 +75,11 @@ verify <file>::
cleanly to the current repository. This includes checks on the
bundle format itself as well as checking that the prerequisite
commits exist and are fully linked in the current repository.
- 'git bundle' prints a list of missing commits, if any, and exits
- with a non-zero status.
+ Then, 'git bundle' prints a list of missing commits, if any.
+ Finally, information about additional capabilities, such as "object
+ filter", is printed. See "Capabilities" in link:technical/bundle-format.html
+ for more information. The exit code is zero for success, but will
+ be nonzero if the bundle file is invalid.
list-heads <file>::
Lists the references defined in the bundle. If followed by a
diff --git a/Documentation/git-cat-file.txt b/Documentation/git-cat-file.txt
index 27b27e2b30..24a811f0ef 100644
--- a/Documentation/git-cat-file.txt
+++ b/Documentation/git-cat-file.txt
@@ -9,8 +9,14 @@ git-cat-file - Provide content or type and size information for repository objec
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[=<format>] | --batch-check[=<format>]) [ --textconv | --filters ] [--follow-symlinks]
+'git cat-file' <type> <object>
+'git cat-file' (-e | -p) <object>
+'git cat-file' (-t | -s) [--allow-unknown-type] <object>
+'git cat-file' (--batch | --batch-check | --batch-command) [--batch-all-objects]
+ [--buffer] [--follow-symlinks] [--unordered]
+ [--textconv | --filters]
+'git cat-file' (--textconv | --filters)
+ [<rev>:<path|tree-ish> | --path=<path|tree-ish> <rev>]
DESCRIPTION
-----------
@@ -90,6 +96,33 @@ OPTIONS
need to specify the path, separated by whitespace. See the
section `BATCH OUTPUT` below for details.
+--batch-command::
+--batch-command=<format>::
+ Enter a command mode that reads commands and arguments from stdin. May
+ only be combined with `--buffer`, `--textconv` or `--filters`. In the
+ case of `--textconv` or `--filters`, the input lines also need to specify
+ the path, separated by whitespace. See the section `BATCH OUTPUT` below
+ for details.
++
+`--batch-command` recognizes the following commands:
++
+--
+contents <object>::
+ Print object contents for object reference `<object>`. This corresponds to
+ the output of `--batch`.
+
+info <object>::
+ Print object info for object reference `<object>`. This corresponds to the
+ output of `--batch-check`.
+
+flush::
+ Used with `--buffer` to execute all preceding commands that were issued
+ since the beginning or since the last flush was issued. When `--buffer`
+ is used, no output will come until a `flush` is issued. When `--buffer`
+ is not used, commands are flushed each time without issuing `flush`.
+--
++
+
--batch-all-objects::
Instead of reading a list of objects on stdin, perform the
requested batch operation on all objects in the repository and
@@ -104,7 +137,7 @@ OPTIONS
that a process can interactively read and write from
`cat-file`. With this option, the output uses normal stdio
buffering; this is much more efficient when invoking
- `--batch-check` on a large number of objects.
+ `--batch-check` or `--batch-command` on a large number of objects.
--unordered::
When `--batch-all-objects` is in use, visit objects in an
@@ -196,6 +229,13 @@ from stdin, one per line, and print information about them. By default,
the whole line is considered as an object, as if it were fed to
linkgit:git-rev-parse[1].
+When `--batch-command` is given, `cat-file` will read commands from stdin,
+one per line, and print information based on the command given. With
+`--batch-command`, the `info` command followed by an object will print
+information about the object the same way `--batch-check` would, and the
+`contents` command followed by an object prints contents in the same way
+`--batch` would.
+
You can specify the information shown for each object by using a custom
`<format>`. The `<format>` is copied literally to stdout for each
object, with placeholders of the form `%(atom)` expanded, followed by a
@@ -231,9 +271,9 @@ newline. The available atoms are:
If no format is specified, the default format is `%(objectname)
%(objecttype) %(objectsize)`.
-If `--batch` is specified, the object information is followed by the
-object contents (consisting of `%(objectsize)` bytes), followed by a
-newline.
+If `--batch` is specified, or if `--batch-command` is used with the `contents`
+command, the object information is followed by the object contents (consisting
+of `%(objectsize)` bytes), followed by a newline.
For example, `--batch` without a custom format would produce:
diff --git a/Documentation/git-check-ignore.txt b/Documentation/git-check-ignore.txt
index 0c3924a63d..2892799e32 100644
--- a/Documentation/git-check-ignore.txt
+++ b/Documentation/git-check-ignore.txt
@@ -33,7 +33,7 @@ OPTIONS
Instead of printing the paths that are excluded, for each path
that matches an exclude pattern, print the exclude pattern
together with the path. (Matching an exclude pattern usually
- means the path is excluded, but if the pattern begins with '!'
+ means the path is excluded, but if the pattern begins with "`!`"
then it is a negated pattern and matching it means the path is
NOT excluded.)
+
@@ -77,7 +77,7 @@ If `--verbose` is specified, the output is a series of lines of the form:
<pathname> is the path of a file being queried, <pattern> is the
matching pattern, <source> is the pattern's source file, and <linenum>
is the line number of the pattern within that source. If the pattern
-contained a `!` prefix or `/` suffix, it will be preserved in the
+contained a "`!`" prefix or "`/`" suffix, it will be preserved in the
output. <source> will be an absolute path when referring to the file
configured by `core.excludesFile`, or relative to the repository root
when referring to `.git/info/exclude` or a per-directory exclude file.
diff --git a/Documentation/git-checkout-index.txt b/Documentation/git-checkout-index.txt
index 4d33e7be0f..01dbd5cbf5 100644
--- a/Documentation/git-checkout-index.txt
+++ b/Documentation/git-checkout-index.txt
@@ -12,6 +12,7 @@ SYNOPSIS
'git checkout-index' [-u] [-q] [-a] [-f] [-n] [--prefix=<string>]
[--stage=<number>|all]
[--temp]
+ [--ignore-skip-worktree-bits]
[-z] [--stdin]
[--] [<file>...]
@@ -37,8 +38,9 @@ OPTIONS
-a::
--all::
- checks out all files in the index. Cannot be used
- together with explicit filenames.
+ checks out all files in the index except for those with the
+ skip-worktree bit set (see `--ignore-skip-worktree-bits`).
+ Cannot be used together with explicit filenames.
-n::
--no-create::
@@ -59,6 +61,10 @@ OPTIONS
write the content to temporary files. The temporary name
associations will be written to stdout.
+--ignore-skip-worktree-bits::
+ Check out all files, including those with the skip-worktree bit
+ set.
+
--stdin::
Instead of taking list of paths from the command line,
read list of paths from the standard input. Paths are
diff --git a/Documentation/git-clone.txt b/Documentation/git-clone.txt
index 984d194934..632bd1348e 100644
--- a/Documentation/git-clone.txt
+++ b/Documentation/git-clone.txt
@@ -16,7 +16,7 @@ SYNOPSIS
[--depth <depth>] [--[no-]single-branch] [--no-tags]
[--recurse-submodules[=<pathspec>]] [--[no-]shallow-submodules]
[--[no-]remote-submodules] [--jobs <n>] [--sparse] [--[no-]reject-shallow]
- [--filter=<filter>] [--] <repository>
+ [--filter=<filter> [--also-filter-submodules]] [--] <repository>
[<directory>]
DESCRIPTION
@@ -182,6 +182,11 @@ objects from the source repository into a pack in the cloned repository.
at least `<size>`. For more details on filter specifications, see
the `--filter` option in linkgit:git-rev-list[1].
+--also-filter-submodules::
+ Also apply the partial clone filter to any submodules in the repository.
+ Requires `--filter` and `--recurse-submodules`. This can be turned on by
+ default by setting the `clone.filterSubmodules` config option.
+
--mirror::
Set up a mirror of the source repository. This implies `--bare`.
Compared to `--bare`, `--mirror` not only maps local branches of the
diff --git a/Documentation/git-config.txt b/Documentation/git-config.txt
index 2285effb36..bdcfd94b64 100644
--- a/Documentation/git-config.txt
+++ b/Documentation/git-config.txt
@@ -141,9 +141,13 @@ from all available files.
See also <<FILES>>.
--worktree::
- Similar to `--local` except that `.git/config.worktree` is
+ Similar to `--local` except that `$GIT_DIR/config.worktree` is
read from or written to if `extensions.worktreeConfig` is
- present. If not it's the same as `--local`.
+ enabled. If not it's the same as `--local`. Note that `$GIT_DIR`
+ is equal to `$GIT_COMMON_DIR` for the main working tree, but is of
+ the form `$GIT_DIR/worktrees/<id>/` for other working trees. See
+ linkgit:git-worktree[1] to learn how to enable
+ `extensions.worktreeConfig`.
-f <config-file>::
--file <config-file>::
diff --git a/Documentation/git-credential-cache--daemon.txt b/Documentation/git-credential-cache--daemon.txt
index 7051c6bdf8..01e1c214dd 100644
--- a/Documentation/git-credential-cache--daemon.txt
+++ b/Documentation/git-credential-cache--daemon.txt
@@ -1,5 +1,5 @@
-git-credential-cache--daemon(1)
-===============================
+git-credential-cache{litdd}daemon(1)
+====================================
NAME
----
@@ -8,7 +8,7 @@ git-credential-cache--daemon - Temporarily store user credentials in memory
SYNOPSIS
--------
[verse]
-git credential-cache--daemon [--debug] <socket>
+'git credential-cache{litdd}daemon' [--debug] <socket>
DESCRIPTION
-----------
diff --git a/Documentation/git-fetch-pack.txt b/Documentation/git-fetch-pack.txt
index c975884793..46747d5f42 100644
--- a/Documentation/git-fetch-pack.txt
+++ b/Documentation/git-fetch-pack.txt
@@ -101,6 +101,10 @@ be in a separate packet, and the list must end with a flush packet.
current shallow boundary instead of from the tip of each
remote branch history.
+--refetch::
+ Skips negotiating commits with the server in order to fetch all matching
+ objects. Use to reapply a new partial clone blob/tree filter.
+
--no-progress::
Do not show the progress.
diff --git a/Documentation/git-fetch.txt b/Documentation/git-fetch.txt
index 550c16ca61..e9d364669a 100644
--- a/Documentation/git-fetch.txt
+++ b/Documentation/git-fetch.txt
@@ -287,12 +287,10 @@ include::transfer-data-leaks.txt[]
BUGS
----
-Using --recurse-submodules can only fetch new commits in already checked
-out submodules right now. When e.g. upstream added a new submodule in the
-just fetched commits of the superproject the submodule itself cannot be
-fetched, making it impossible to check out that submodule later without
-having to do a fetch again. This is expected to be fixed in a future Git
-version.
+Using --recurse-submodules can only fetch new commits in submodules that are
+present locally e.g. in `$GIT_DIR/modules/`. If the upstream adds a new
+submodule, that submodule cannot be fetched until it is cloned e.g. by `git
+submodule update`. This is expected to be fixed in a future Git version.
SEE ALSO
--------
diff --git a/Documentation/git-fsmonitor--daemon.txt b/Documentation/git-fsmonitor--daemon.txt
new file mode 100644
index 0000000000..cc142fb861
--- /dev/null
+++ b/Documentation/git-fsmonitor--daemon.txt
@@ -0,0 +1,75 @@
+git-fsmonitor{litdd}daemon(1)
+=============================
+
+NAME
+----
+git-fsmonitor--daemon - A Built-in File System Monitor
+
+SYNOPSIS
+--------
+[verse]
+'git fsmonitor{litdd}daemon' start
+'git fsmonitor{litdd}daemon' run
+'git fsmonitor{litdd}daemon' stop
+'git fsmonitor{litdd}daemon' status
+
+DESCRIPTION
+-----------
+
+A daemon to watch the working directory for file and directory
+changes using platform-specific file system notification facilities.
+
+This daemon communicates directly with commands like `git status`
+using the link:technical/api-simple-ipc.html[simple IPC] interface
+instead of the slower linkgit:githooks[5] interface.
+
+This daemon is built into Git so that no third-party tools are
+required.
+
+OPTIONS
+-------
+
+start::
+ Starts a daemon in the background.
+
+run::
+ Runs a daemon in the foreground.
+
+stop::
+ Stops the daemon running in the current working
+ directory, if present.
+
+status::
+ Exits with zero status if a daemon is watching the
+ current working directory.
+
+REMARKS
+-------
+
+This daemon is a long running process used to watch a single working
+directory and maintain a list of the recently changed files and
+directories. Performance of commands such as `git status` can be
+increased if they just ask for a summary of changes to the working
+directory and can avoid scanning the disk.
+
+When `core.fsmonitor` is set to `true` (see linkgit:git-config[1])
+commands, such as `git status`, will ask the daemon for changes and
+automatically start it (if necessary).
+
+For more information see the "File System Monitor" section in
+linkgit:git-update-index[1].
+
+CAVEATS
+-------
+
+The fsmonitor daemon does not currently know about submodules and does
+not know to filter out file system events that happen within a
+submodule. If fsmonitor daemon is watching a super repo and a file is
+modified within the working directory of a submodule, it will report
+the change (as happening against the super repo). However, the client
+will properly ignore these extra events, so performance may be affected
+but it will not cause an incorrect result.
+
+GIT
+---
+Part of the linkgit:git[1] suite
diff --git a/Documentation/git-help.txt b/Documentation/git-help.txt
index 44ea63cc6d..239c68db45 100644
--- a/Documentation/git-help.txt
+++ b/Documentation/git-help.txt
@@ -8,8 +8,8 @@ git-help - Display help information about Git
SYNOPSIS
--------
[verse]
-'git help' [-a|--all [--[no-]verbose]]
- [[-i|--info] [-m|--man] [-w|--web]] [<command>|<guide>]
+'git help' [-a|--all] [--[no-]verbose] [--[no-]external-commands] [--[no-]aliases]
+'git help' [[-i|--info] [-m|--man] [-w|--web]] [<command>|<guide>]
'git help' [-g|--guides]
'git help' [-c|--config]
@@ -46,8 +46,15 @@ OPTIONS
-------
-a::
--all::
- Prints all the available commands on the standard output. This
- option overrides any given command or guide name.
+ Prints all the available commands on the standard output.
+
+--no-external-commands::
+ When used with `--all`, exclude the listing of external "git-*"
+ commands found in the `$PATH`.
+
+--no-aliases::
+ When used with `--all`, exclude the listing of configured
+ aliases.
--verbose::
When used with `--all` print description for all recognized
diff --git a/Documentation/git-hook.txt b/Documentation/git-hook.txt
new file mode 100644
index 0000000000..77c3a8ad90
--- /dev/null
+++ b/Documentation/git-hook.txt
@@ -0,0 +1,45 @@
+git-hook(1)
+===========
+
+NAME
+----
+git-hook - Run git hooks
+
+SYNOPSIS
+--------
+[verse]
+'git hook' run [--ignore-missing] <hook-name> [-- <hook-args>]
+
+DESCRIPTION
+-----------
+
+A command interface to running git hooks (see linkgit:githooks[5]),
+for use by other scripted git commands.
+
+SUBCOMMANDS
+-----------
+
+run::
+ Run the `<hook-name>` hook. See linkgit:githooks[5] for
+ supported hook names.
++
+
+Any positional arguments to the hook should be passed after a
+mandatory `--` (or `--end-of-options`, see linkgit:gitcli[7]). See
+linkgit:githooks[5] for arguments hooks might expect (if any).
+
+OPTIONS
+-------
+
+--ignore-missing::
+ Ignore any missing hook by quietly returning zero. Used for
+ tools that want to do a blind one-shot run of a hook that may
+ or may not be present.
+
+SEE ALSO
+--------
+linkgit:githooks[5]
+
+GIT
+---
+Part of the linkgit:git[1] suite
diff --git a/Documentation/git-index-pack.txt b/Documentation/git-index-pack.txt
index 1f1e359225..4e71c256ec 100644
--- a/Documentation/git-index-pack.txt
+++ b/Documentation/git-index-pack.txt
@@ -122,6 +122,14 @@ This option cannot be used with --stdin.
+
include::object-format-disclaimer.txt[]
+--promisor[=<message>]::
+ Before committing the pack-index, create a .promisor file for this
+ pack. Particularly helpful when writing a promisor pack with --fix-thin
+ since the name of the pack is not final until the pack has been fully
+ written. If a `<message>` is provided, then that content will be
+ written to the .promisor file for future reference. See
+ link:technical/partial-clone.html[partial clone] for more information.
+
NOTES
-----
diff --git a/Documentation/git-ls-files.txt b/Documentation/git-ls-files.txt
index 48cc7c0b6f..0dabf3f0dd 100644
--- a/Documentation/git-ls-files.txt
+++ b/Documentation/git-ls-files.txt
@@ -156,7 +156,7 @@ a space) at the start of each line:
--recurse-submodules::
Recursively calls ls-files on each active submodule in the repository.
- Currently there is only support for the --cached mode.
+ Currently there is only support for the --cached and --stage modes.
--abbrev[=<n>]::
Instead of showing the full 40-byte hexadecimal object
diff --git a/Documentation/git-ls-tree.txt b/Documentation/git-ls-tree.txt
index db02d6d79a..0240adb8ee 100644
--- a/Documentation/git-ls-tree.txt
+++ b/Documentation/git-ls-tree.txt
@@ -10,7 +10,7 @@ SYNOPSIS
--------
[verse]
'git ls-tree' [-d] [-r] [-t] [-l] [-z]
- [--name-only] [--name-status] [--full-name] [--full-tree] [--abbrev[=<n>]]
+ [--name-only] [--name-status] [--object-only] [--full-name] [--full-tree] [--abbrev[=<n>]] [--format=<format>]
<tree-ish> [<path>...]
DESCRIPTION
@@ -59,6 +59,15 @@ OPTIONS
--name-only::
--name-status::
List only filenames (instead of the "long" output), one per line.
+ Cannot be combined with `--object-only`.
+
+--object-only::
+ List only names of the objects, one per line. Cannot be combined
+ with `--name-only` or `--name-status`.
+ This is equivalent to specifying `--format='%(objectname)'`, but
+ for both this option and that exact format the command takes a
+ hand-optimized codepath instead of going through the generic
+ formatting mechanism.
--abbrev[=<n>]::
Instead of showing the full 40-byte hexadecimal object
@@ -74,6 +83,16 @@ OPTIONS
Do not limit the listing to the current working directory.
Implies --full-name.
+--format=<format>::
+ A string that interpolates `%(fieldname)` from the result
+ being shown. It also interpolates `%%` to `%`, and
+ `%xx` where `xx` are hex digits interpolates to character
+ with hex code `xx`; for example `%00` interpolates to
+ `\0` (NUL), `%09` to `\t` (TAB) and `%0a` to `\n` (LF).
+ When specified, `--format` cannot be combined with other
+ format-altering options, including `--long`, `--name-only`
+ and `--object-only`.
+
[<path>...]::
When paths are given, show them (note that this isn't really raw
pathnames, but rather a list of patterns to match). Otherwise
@@ -82,16 +101,29 @@ OPTIONS
Output Format
-------------
- <mode> SP <type> SP <object> TAB <file>
+
+The output format of `ls-tree` is determined by either the `--format`
+option, or other format-altering options such as `--name-only` etc.
+(see `--format` above).
+
+The use of certain `--format` directives is equivalent to using those
+options, but invoking the full formatting machinery can be slower than
+using an appropriate formatting option.
+
+In cases where the `--format` would exactly map to an existing option
+`ls-tree` will use the appropriate faster path. Thus the default format
+is equivalent to:
+
+ %(objectmode) %(objecttype) %(objectname)%x09%(path)
This output format is compatible with what `--index-info --stdin` of
'git update-index' expects.
When the `-l` option is used, format changes to
- <mode> SP <type> SP <object> SP <object size> TAB <file>
+ %(objectmode) %(objecttype) %(objectname) %(objectsize:padded)%x09%(path)
-Object size identified by <object> is given in bytes, and right-justified
+Object size identified by <objectname> is given in bytes, and right-justified
with minimum width of 7 characters. Object size is given only for blobs
(file) entries; for other entries `-` character is used in place of size.
@@ -100,6 +132,34 @@ quoted as explained for the configuration variable `core.quotePath`
(see linkgit:git-config[1]). Using `-z` the filename is output
verbatim and the line is terminated by a NUL byte.
+Customized format:
+
+It is possible to print in a custom format by using the `--format` option,
+which is able to interpolate different fields using a `%(fieldname)` notation.
+For example, if you only care about the "objectname" and "path" fields, you
+can execute with a specific "--format" like
+
+ git ls-tree --format='%(objectname) %(path)' <tree-ish>
+
+FIELD NAMES
+-----------
+
+Various values from structured fields can be used to interpolate
+into the resulting output. For each outputing line, the following
+names can be used:
+
+objectmode::
+ The mode of the object.
+objecttype::
+ The type of the object (`commit`, `blob` or `tree`).
+objectname::
+ The name of the object.
+objectsize[:padded]::
+ The size of a `blob` object ("-" if it's a `commit` or `tree`).
+ It also supports a padded format of size with "%(objectsize:padded)".
+path::
+ The pathname of the object.
+
GIT
---
Part of the linkgit:git[1] suite
diff --git a/Documentation/git-maintenance.txt b/Documentation/git-maintenance.txt
index e2cfb68ab5..e56bad28c6 100644
--- a/Documentation/git-maintenance.txt
+++ b/Documentation/git-maintenance.txt
@@ -10,6 +10,8 @@ SYNOPSIS
--------
[verse]
'git maintenance' run [<options>]
+'git maintenance' start [--scheduler=<scheduler>]
+'git maintenance' (stop|register|unregister)
DESCRIPTION
@@ -29,6 +31,24 @@ Git repository.
SUBCOMMANDS
-----------
+run::
+ Run one or more maintenance tasks. If one or more `--task` options
+ are specified, then those tasks are run in that order. Otherwise,
+ the tasks are determined by which `maintenance.<task>.enabled`
+ config options are true. By default, only `maintenance.gc.enabled`
+ is true.
+
+start::
+ Start running maintenance on the current repository. This performs
+ the same config updates as the `register` subcommand, then updates
+ the background scheduler to run `git maintenance run --scheduled`
+ on an hourly basis.
+
+stop::
+ Halt the background maintenance schedule. The current repository
+ is not removed from the list of maintained repositories, in case
+ the background maintenance is restarted later.
+
register::
Initialize Git config values so any scheduled maintenance will
start running on this repository. This adds the repository to the
@@ -55,24 +75,6 @@ task:
setting `maintenance.auto = false` in the current repository. This config
setting will remain after a `git maintenance unregister` command.
-run::
- Run one or more maintenance tasks. If one or more `--task` options
- are specified, then those tasks are run in that order. Otherwise,
- the tasks are determined by which `maintenance.<task>.enabled`
- config options are true. By default, only `maintenance.gc.enabled`
- is true.
-
-start::
- Start running maintenance on the current repository. This performs
- the same config updates as the `register` subcommand, then updates
- the background scheduler to run `git maintenance run --scheduled`
- on an hourly basis.
-
-stop::
- Halt the background maintenance schedule. The current repository
- is not removed from the list of maintained repositories, in case
- the background maintenance is restarted later.
-
unregister::
Remove the current repository from background maintenance. This
only removes the repository from the configured list. It does not
diff --git a/Documentation/git-mergetool.txt b/Documentation/git-mergetool.txt
index e587c7763a..f784027bc1 100644
--- a/Documentation/git-mergetool.txt
+++ b/Documentation/git-mergetool.txt
@@ -101,6 +101,7 @@ success of the resolution after the custom tool has exited.
CONFIGURATION
-------------
+:git-mergetool: 1
include::config/mergetool.txt[]
TEMPORARY FILES
@@ -113,6 +114,13 @@ Setting the `mergetool.keepBackup` configuration variable to `false`
causes `git mergetool` to automatically remove the backup as files
are successfully merged.
+BACKEND SPECIFIC HINTS
+----------------------
+
+vimdiff
+~~~~~~~
+include::mergetools/vimdiff.txt[]
+
GIT
---
Part of the linkgit:git[1] suite
diff --git a/Documentation/git-mktree.txt b/Documentation/git-mktree.txt
index 27fe2b32e1..76b44f4da1 100644
--- a/Documentation/git-mktree.txt
+++ b/Documentation/git-mktree.txt
@@ -31,7 +31,7 @@ OPTIONS
--batch::
Allow building of more than one tree object before exiting. Each
- tree is separated by as single blank line. The final new-line is
+ tree is separated by a single blank line. The final new-line is
optional. Note - if the `-z` option is used, lines are terminated
with NUL.
diff --git a/Documentation/git-name-rev.txt b/Documentation/git-name-rev.txt
index 5cb0eb0855..ec8a27ce8b 100644
--- a/Documentation/git-name-rev.txt
+++ b/Documentation/git-name-rev.txt
@@ -42,11 +42,37 @@ OPTIONS
--all::
List all commits reachable from all refs
---stdin::
+--annotate-stdin::
Transform stdin by substituting all the 40-character SHA-1
hexes (say $hex) with "$hex ($rev_name)". When used with
--name-only, substitute with "$rev_name", omitting $hex
- altogether. Intended for the scripter's use.
+ altogether.
++
+For example:
++
+-----------
+$ cat sample.txt
+
+An abbreviated revision 2ae0a9cb82 will not be substituted.
+The full name after substitution is 2ae0a9cb8298185a94e5998086f380a355dd8907,
+while its tree object is 70d105cc79e63b81cfdcb08a15297c23e60b07ad
+
+$ git name-rev --annotate-stdin <sample.txt
+
+An abbreviated revision 2ae0a9cb82 will not be substituted.
+The full name after substitution is 2ae0a9cb8298185a94e5998086f380a355dd8907 (master),
+while its tree object is 70d105cc79e63b81cfdcb08a15297c23e60b07ad
+
+$ git name-rev --name-only --annotate-stdin <sample.txt
+
+An abbreviated revision 2ae0a9cb82 will not be substituted.
+The full name after substitution is master,
+while its tree object is 70d105cc79e63b81cfdcb08a15297c23e60b07ad
+-----------
+
+--stdin::
+ This option is deprecated in favor of 'git name-rev --annotate-stdin'.
+ They are functionally equivalent.
--name-only::
Instead of printing both the SHA-1 and the name, print only
diff --git a/Documentation/git-read-tree.txt b/Documentation/git-read-tree.txt
index 8c3aceb832..a5356a230b 100644
--- a/Documentation/git-read-tree.txt
+++ b/Documentation/git-read-tree.txt
@@ -375,9 +375,14 @@ have finished your work-in-progress), attempt the merge again.
SPARSE CHECKOUT
---------------
+Note: The `update-index` and `read-tree` primitives for supporting the
+skip-worktree bit predated the introduction of
+linkgit:git-sparse-checkout[1]. Users are encouraged to use
+`sparse-checkout` in preference to these low-level primitives.
+
"Sparse checkout" allows populating the working directory sparsely.
-It uses the skip-worktree bit (see linkgit:git-update-index[1]) to tell
-Git whether a file in the working directory is worth looking at.
+It uses the skip-worktree bit (see linkgit:git-update-index[1]) to
+tell Git whether a file in the working directory is worth looking at.
'git read-tree' and other merge-based commands ('git merge', 'git
checkout'...) can help maintaining the skip-worktree bitmap and working
@@ -385,7 +390,8 @@ directory update. `$GIT_DIR/info/sparse-checkout` is used to
define the skip-worktree reference bitmap. When 'git read-tree' needs
to update the working directory, it resets the skip-worktree bit in the index
based on this file, which uses the same syntax as .gitignore files.
-If an entry matches a pattern in this file, skip-worktree will not be
+If an entry matches a pattern in this file, or the entry corresponds to
+a file present in the working tree, then skip-worktree will not be
set on that entry. Otherwise, skip-worktree will be set.
Then it compares the new skip-worktree value with the previous one. If
@@ -420,8 +426,8 @@ support.
SEE ALSO
--------
-linkgit:git-write-tree[1]; linkgit:git-ls-files[1];
-linkgit:gitignore[5]; linkgit:git-sparse-checkout[1];
+linkgit:git-write-tree[1], linkgit:git-ls-files[1],
+linkgit:gitignore[5], linkgit:git-sparse-checkout[1]
GIT
---
diff --git a/Documentation/git-rebase.txt b/Documentation/git-rebase.txt
index 9da4647061..262fb01aec 100644
--- a/Documentation/git-rebase.txt
+++ b/Documentation/git-rebase.txt
@@ -215,9 +215,10 @@ leave out at most one of A and B, in which case it defaults to HEAD.
--keep-base::
Set the starting point at which to create the new commits to the
- merge base of <upstream> <branch>. Running
+ merge base of <upstream> and <branch>. Running
'git rebase --keep-base <upstream> <branch>' is equivalent to
- running 'git rebase --onto <upstream>... <upstream>'.
+ running
+ 'git rebase --onto <upstream>...<branch> <upstream> <branch>'.
+
This option is useful in the case where one is developing a feature on
top of an upstream branch. While the feature is being worked on, the
diff --git a/Documentation/git-remote.txt b/Documentation/git-remote.txt
index 2bebc32566..cde9614e36 100644
--- a/Documentation/git-remote.txt
+++ b/Documentation/git-remote.txt
@@ -11,7 +11,7 @@ SYNOPSIS
[verse]
'git remote' [-v | --verbose]
'git remote add' [-t <branch>] [-m <master>] [-f] [--[no-]tags] [--mirror=(fetch|push)] <name> <URL>
-'git remote rename' <old> <new>
+'git remote rename' [--[no-]progress] <old> <new>
'git remote remove' <name>
'git remote set-head' <name> (-a | --auto | -d | --delete | <branch>)
'git remote set-branches' [--add] <name> <branch>...
diff --git a/Documentation/git-reset.txt b/Documentation/git-reset.txt
index 6f7685f53d..01cb4c9b9c 100644
--- a/Documentation/git-reset.txt
+++ b/Documentation/git-reset.txt
@@ -105,10 +105,11 @@ OPTIONS
-q::
--quiet::
---no-quiet::
- Be quiet, only report errors. The default behavior is set by the
- `reset.quiet` config option. `--quiet` and `--no-quiet` will
- override the default behavior.
+ Be quiet, only report errors.
+
+--refresh::
+--no-refresh::
+ Refresh the index after a mixed reset. Enabled by default.
--pathspec-from-file=<file>::
Pathspec is passed in `<file>` instead of commandline args. If
diff --git a/Documentation/git-sparse-checkout.txt b/Documentation/git-sparse-checkout.txt
index b81dbe0654..88e55f432f 100644
--- a/Documentation/git-sparse-checkout.txt
+++ b/Documentation/git-sparse-checkout.txt
@@ -3,9 +3,7 @@ git-sparse-checkout(1)
NAME
----
-git-sparse-checkout - Initialize and modify the sparse-checkout
-configuration, which reduces the checkout to a set of paths
-given by a list of patterns.
+git-sparse-checkout - Reduce your working tree to a subset of tracked files
SYNOPSIS
@@ -17,8 +15,20 @@ SYNOPSIS
DESCRIPTION
-----------
-Initialize and modify the sparse-checkout configuration, which reduces
-the checkout to a set of paths given by a list of patterns.
+This command is used to create sparse checkouts, which means that it
+changes the working tree from having all tracked files present, to only
+have a subset of them. It can also switch which subset of files are
+present, or undo and go back to having all tracked files present in the
+working copy.
+
+The subset of files is chosen by providing a list of directories in
+cone mode (which is recommended), or by providing a list of patterns
+in non-cone mode.
+
+When in a sparse-checkout, other Git commands behave a bit differently.
+For example, switching branches will not update paths outside the
+sparse-checkout directories/patterns, and `git commit -a` will not record
+paths outside the sparse-checkout directories/patterns as deleted.
THIS COMMAND IS EXPERIMENTAL. ITS BEHAVIOR, AND THE BEHAVIOR OF OTHER
COMMANDS IN THE PRESENCE OF SPARSE-CHECKOUTS, WILL LIKELY CHANGE IN
@@ -28,30 +38,44 @@ THE FUTURE.
COMMANDS
--------
'list'::
- Describe the patterns in the sparse-checkout file.
+ Describe the directories or patterns in the sparse-checkout file.
'set'::
- Enable the necessary config settings
- (extensions.worktreeConfig, core.sparseCheckout,
- core.sparseCheckoutCone) if they are not already enabled, and
- write a set of patterns to the sparse-checkout file from the
+ Enable the necessary sparse-checkout config settings
+ (`core.sparseCheckout`, `core.sparseCheckoutCone`, and
+ `index.sparse`) if they are not already set to the desired values,
+ and write a set of patterns to the sparse-checkout file from the
list of arguments following the 'set' subcommand. Update the
working directory to match the new patterns.
+
-When the `--stdin` option is provided, the patterns are read from
-standard in as a newline-delimited list instead of from the arguments.
+To ensure that adjusting the sparse-checkout settings within a worktree
+does not alter the sparse-checkout settings in other worktrees, the 'set'
+subcommand will upgrade your repository config to use worktree-specific
+config if not already present. The sparsity defined by the arguments to
+the 'set' subcommand are stored in the worktree-specific sparse-checkout
+file. See linkgit:git-worktree[1] and the documentation of
+`extensions.worktreeConfig` in linkgit:git-config[1] for more details.
++
+When the `--stdin` option is provided, the directories or patterns are
+read from standard in as a newline-delimited list instead of from the
+arguments.
+
When `--cone` is passed or `core.sparseCheckoutCone` is enabled, the
-input list is considered a list of directories instead of
-sparse-checkout patterns. This allows for better performance with a
-limited set of patterns (see 'CONE PATTERN SET' below). Note that the
-set command will write patterns to the sparse-checkout file to include
-all files contained in those directories (recursively) as well as
-files that are siblings of ancestor directories. The input format
-matches the output of `git ls-tree --name-only`. This includes
-interpreting pathnames that begin with a double quote (") as C-style
-quoted strings. This may become the default in the future; --no-cone
-can be passed to request non-cone mode.
+input list is considered a list of directories. This allows for
+better performance with a limited set of patterns (see 'CONE PATTERN
+SET' below). The input format matches the output of `git ls-tree
+--name-only`. This includes interpreting pathnames that begin with a
+double quote (") as C-style quoted strings. Note that the set command
+will write patterns to the sparse-checkout file to include all files
+contained in those directories (recursively) as well as files that are
+siblings of ancestor directories. This may become the default in the
+future; --no-cone can be passed to request non-cone mode.
++
+When `--no-cone` is passed or `core.sparseCheckoutCone` is not enabled,
+the input list is considered a list of patterns. This mode is harder
+to use and less performant, and is thus not recommended. See the
+"Sparse Checkout" section of linkgit:git-read-tree[1] and the "Pattern
+Set" sections below for more details.
+
Use the `--[no-]sparse-index` option to use a sparse index (the
default is to not use it). A sparse index reduces the size of the
@@ -69,11 +93,10 @@ understand the sparse directory entries index extension and may fail to
interact with your repository until it is disabled.
'add'::
- Update the sparse-checkout file to include additional patterns.
- By default, these patterns are read from the command-line arguments,
- but they can be read from stdin using the `--stdin` option. When
- `core.sparseCheckoutCone` is enabled, the given patterns are interpreted
- as directory names as in the 'set' subcommand.
+ Update the sparse-checkout file to include additional directories
+ (in cone mode) or patterns (in non-cone mode). By default, these
+ directories or patterns are read from the command-line arguments,
+ but they can be read from stdin using the `--stdin` option.
'reapply'::
Reapply the sparsity pattern rules to paths in the working tree.
@@ -117,13 +140,14 @@ decreased in utility.
SPARSE CHECKOUT
---------------
-"Sparse checkout" allows populating the working directory sparsely.
-It uses the skip-worktree bit (see linkgit:git-update-index[1]) to tell
-Git whether a file in the working directory is worth looking at. If
-the skip-worktree bit is set, then the file is ignored in the working
-directory. Git will avoid populating the contents of those files, which
-makes a sparse checkout helpful when working in a repository with many
-files, but only a few are important to the current user.
+"Sparse checkout" allows populating the working directory sparsely. It
+uses the skip-worktree bit (see linkgit:git-update-index[1]) to tell Git
+whether a file in the working directory is worth looking at. If the
+skip-worktree bit is set, and the file is not present in the working tree,
+then its absence is ignored. Git will avoid populating the contents of
+those files, which makes a sparse checkout helpful when working in a
+repository with many files, but only a few are important to the current
+user.
The `$GIT_DIR/info/sparse-checkout` file is used to define the
skip-worktree reference bitmap. When Git updates the working
diff --git a/Documentation/git-submodule.txt b/Documentation/git-submodule.txt
index 7e5f995f77..4d3ab6b9f9 100644
--- a/Documentation/git-submodule.txt
+++ b/Documentation/git-submodule.txt
@@ -133,7 +133,7 @@ If you really want to remove a submodule from the repository and commit
that use linkgit:git-rm[1] instead. See linkgit:gitsubmodules[7] for removal
options.
-update [--init] [--remote] [-N|--no-fetch] [--[no-]recommend-shallow] [-f|--force] [--checkout|--rebase|--merge] [--reference <repository>] [--depth <depth>] [--recursive] [--jobs <n>] [--[no-]single-branch] [--] [<path>...]::
+update [--init] [--remote] [-N|--no-fetch] [--[no-]recommend-shallow] [-f|--force] [--checkout|--rebase|--merge] [--reference <repository>] [--depth <depth>] [--recursive] [--jobs <n>] [--[no-]single-branch] [--filter <filter spec>] [--] [<path>...]::
+
--
Update the registered submodules to match what the superproject
@@ -177,6 +177,10 @@ submodule with the `--init` option.
If `--recursive` is specified, this command will recurse into the
registered submodules, and update any nested submodules within.
+
+If `--filter <filter spec>` is specified, the given partial clone filter will be
+applied to the submodule. See linkgit:git-rev-list[1] for details on filter
+specifications.
--
set-branch (-b|--branch) <branch> [--] <path>::
set-branch (-d|--default) [--] <path>::
diff --git a/Documentation/git-update-index.txt b/Documentation/git-update-index.txt
index 2853f168d9..5ea2f2c60e 100644
--- a/Documentation/git-update-index.txt
+++ b/Documentation/git-update-index.txt
@@ -351,6 +351,10 @@ unchanged". Note that "assume unchanged" bit is *not* set if
the index (use `git update-index --really-refresh` if you want
to mark them as "assume unchanged").
+Sometimes users confuse the assume-unchanged bit with the
+skip-worktree bit. See the final paragraph in the "Skip-worktree bit"
+section below for an explanation of the differences.
+
EXAMPLES
--------
@@ -392,22 +396,47 @@ M foo.c
SKIP-WORKTREE BIT
-----------------
-Skip-worktree bit can be defined in one (long) sentence: When reading
-an entry, if it is marked as skip-worktree, then Git pretends its
-working directory version is up to date and read the index version
-instead.
-
-To elaborate, "reading" means checking for file existence, reading
-file attributes or file content. The working directory version may be
-present or absent. If present, its content may match against the index
-version or not. Writing is not affected by this bit, content safety
-is still first priority. Note that Git _can_ update working directory
-file, that is marked skip-worktree, if it is safe to do so (i.e.
-working directory version matches index version)
+Skip-worktree bit can be defined in one (long) sentence: Tell git to
+avoid writing the file to the working directory when reasonably
+possible, and treat the file as unchanged when it is not
+present in the working directory.
+
+Note that not all git commands will pay attention to this bit, and
+some only partially support it.
+
+The update-index flags and the read-tree capabilities relating to the
+skip-worktree bit predated the introduction of the
+linkgit:git-sparse-checkout[1] command, which provides a much easier
+way to configure and handle the skip-worktree bits. If you want to
+reduce your working tree to only deal with a subset of the files in
+the repository, we strongly encourage the use of
+linkgit:git-sparse-checkout[1] in preference to the low-level
+update-index and read-tree primitives.
+
+The primary purpose of the skip-worktree bit is to enable sparse
+checkouts, i.e. to have working directories with only a subset of
+paths present. When the skip-worktree bit is set, Git commands (such
+as `switch`, `pull`, `merge`) will avoid writing these files.
+However, these commands will sometimes write these files anyway in
+important cases such as conflicts during a merge or rebase. Git
+commands will also avoid treating the lack of such files as an
+intentional deletion; for example `git add -u` will not not stage a
+deletion for these files and `git commit -a` will not make a commit
+deleting them either.
Although this bit looks similar to assume-unchanged bit, its goal is
-different from assume-unchanged bit's. Skip-worktree also takes
-precedence over assume-unchanged bit when both are set.
+different. The assume-unchanged bit is for leaving the file in the
+working tree but having Git omit checking it for changes and presuming
+that the file has not been changed (though if it can determine without
+stat'ing the file that it has changed, it is free to record the
+changes). skip-worktree tells Git to ignore the absence of the file,
+avoid updating it when possible with commands that normally update
+much of the working directory (e.g. `checkout`, `switch`, `pull`,
+etc.), and not have its absence be recorded in commits. Note that in
+sparse checkouts (setup by `git sparse-checkout` or by configuring
+core.sparseCheckout to true), if a file is marked as skip-worktree in
+the index but is found in the working tree, Git will clear the
+skip-worktree bit for that file.
SPLIT INDEX
-----------
@@ -498,7 +527,9 @@ FILE SYSTEM MONITOR
This feature is intended to speed up git operations for repos that have
large working directories.
-It enables git to work together with a file system monitor (see the
+It enables git to work together with a file system monitor (see
+linkgit:git-fsmonitor{litdd}daemon[1]
+and the
"fsmonitor-watchman" section of linkgit:githooks[5]) that can
inform it as to what files have been modified. This enables git to avoid
having to lstat() every file to find modified files.
@@ -509,8 +540,8 @@ looking for new files.
If you want to enable (or disable) this feature, it is easier to use
the `core.fsmonitor` configuration variable (see
-linkgit:git-config[1]) than using the `--fsmonitor` option to
-`git update-index` in each repository, especially if you want to do so
+linkgit:git-config[1]) than using the `--fsmonitor` option to `git
+update-index` in each repository, especially if you want to do so
across all repositories you use, because you can set the configuration
variable in your `$HOME/.gitconfig` just once and have it affect all
repositories you touch.
diff --git a/Documentation/git-worktree.txt b/Documentation/git-worktree.txt
index 9e862fbcf7..ada30c86a7 100644
--- a/Documentation/git-worktree.txt
+++ b/Documentation/git-worktree.txt
@@ -10,7 +10,7 @@ SYNOPSIS
--------
[verse]
'git worktree add' [-f] [--detach] [--checkout] [--lock [--reason <string>]] [-b <new-branch>] <path> [<commit-ish>]
-'git worktree list' [-v | --porcelain]
+'git worktree list' [-v | --porcelain [-z]]
'git worktree lock' [--reason <string>] <worktree>
'git worktree move' <worktree> <new-path>
'git worktree prune' [-n] [-v] [--expire <expire>]
@@ -25,45 +25,49 @@ Manage multiple working trees attached to the same repository.
A git repository can support multiple working trees, allowing you to check
out more than one branch at a time. With `git worktree add` a new working
-tree is associated with the repository. This new working tree is called a
-"linked working tree" as opposed to the "main working tree" prepared by
-linkgit:git-init[1] or linkgit:git-clone[1].
-A repository has one main working tree (if it's not a
-bare repository) and zero or more linked working trees. When you are done
-with a linked working tree, remove it with `git worktree remove`.
+tree is associated with the repository, along with additional metadata
+that differentiates that working tree from others in the same repository.
+The working tree, along with this metadata, is called a "worktree".
+
+This new worktree is called a "linked worktree" as opposed to the "main
+worktree" prepared by linkgit:git-init[1] or linkgit:git-clone[1].
+A repository has one main worktree (if it's not a bare repository) and
+zero or more linked worktrees. When you are done with a linked worktree,
+remove it with `git worktree remove`.
In its simplest form, `git worktree add <path>` automatically creates a
new branch whose name is the final component of `<path>`, which is
convenient if you plan to work on a new topic. For instance, `git
worktree add ../hotfix` creates new branch `hotfix` and checks it out at
-path `../hotfix`. To instead work on an existing branch in a new working
-tree, use `git worktree add <path> <branch>`. On the other hand, if you
-just plan to make some experimental changes or do testing without
-disturbing existing development, it is often convenient to create a
-'throwaway' working tree not associated with any branch. For instance,
-`git worktree add -d <path>` creates a new working tree with a detached
-`HEAD` at the same commit as the current branch.
+path `../hotfix`. To instead work on an existing branch in a new worktree,
+use `git worktree add <path> <branch>`. On the other hand, if you just
+plan to make some experimental changes or do testing without disturbing
+existing development, it is often convenient to create a 'throwaway'
+worktree not associated with any branch. For instance,
+`git worktree add -d <path>` creates a new worktree with a detached `HEAD`
+at the same commit as the current branch.
If a working tree is deleted without using `git worktree remove`, then
its associated administrative files, which reside in the repository
(see "DETAILS" below), will eventually be removed automatically (see
`gc.worktreePruneExpire` in linkgit:git-config[1]), or you can run
-`git worktree prune` in the main or any linked working tree to
-clean up any stale administrative files.
+`git worktree prune` in the main or any linked worktree to clean up any
+stale administrative files.
-If a linked working tree is stored on a portable device or network share
-which is not always mounted, you can prevent its administrative files from
-being pruned by issuing the `git worktree lock` command, optionally
-specifying `--reason` to explain why the working tree is locked.
+If the working tree for a linked worktree is stored on a portable device
+or network share which is not always mounted, you can prevent its
+administrative files from being pruned by issuing the `git worktree lock`
+command, optionally specifying `--reason` to explain why the worktree is
+locked.
COMMANDS
--------
add <path> [<commit-ish>]::
-Create `<path>` and checkout `<commit-ish>` into it. The new working directory
-is linked to the current repository, sharing everything except working
-directory specific files such as `HEAD`, `index`, etc. As a convenience,
-`<commit-ish>` may be a bare "`-`", which is synonymous with `@{-1}`.
+Create a worktree at `<path>` and checkout `<commit-ish>` into it. The new worktree
+is linked to the current repository, sharing everything except per-worktree
+files such as `HEAD`, `index`, etc. As a convenience, `<commit-ish>` may
+be a bare "`-`", which is synonymous with `@{-1}`.
+
If `<commit-ish>` is a branch name (call it `<branch>`) and is not found,
and neither `-b` nor `-B` nor `--detach` are used, but there does
@@ -84,100 +88,97 @@ branches from there if `<branch>` is ambiguous but exists on the
linkgit:git-config[1].
+
If `<commit-ish>` is omitted and neither `-b` nor `-B` nor `--detach` used,
-then, as a convenience, the new working tree is associated with a branch
-(call it `<branch>`) named after `$(basename <path>)`. If `<branch>`
-doesn't exist, a new branch based on `HEAD` is automatically created as
-if `-b <branch>` was given. If `<branch>` does exist, it will be
-checked out in the new working tree, if it's not checked out anywhere
-else, otherwise the command will refuse to create the working tree (unless
-`--force` is used).
+then, as a convenience, the new worktree is associated with a branch (call
+it `<branch>`) named after `$(basename <path>)`. If `<branch>` doesn't
+exist, a new branch based on `HEAD` is automatically created as if
+`-b <branch>` was given. If `<branch>` does exist, it will be checked out
+in the new worktree, if it's not checked out anywhere else, otherwise the
+command will refuse to create the worktree (unless `--force` is used).
list::
-List details of each working tree. The main working tree is listed first,
-followed by each of the linked working trees. The output details include
-whether the working tree is bare, the revision currently checked out, the
+List details of each worktree. The main worktree is listed first,
+followed by each of the linked worktrees. The output details include
+whether the worktree is bare, the revision currently checked out, the
branch currently checked out (or "detached HEAD" if none), "locked" if
-the worktree is locked, "prunable" if the worktree can be pruned by `prune`
-command.
+the worktree is locked, "prunable" if the worktree can be pruned by the
+`prune` command.
lock::
-If a working tree is on a portable device or network share which
-is not always mounted, lock it to prevent its administrative
-files from being pruned automatically. This also prevents it from
-being moved or deleted. Optionally, specify a reason for the lock
-with `--reason`.
+If a worktree is on a portable device or network share which is not always
+mounted, lock it to prevent its administrative files from being pruned
+automatically. This also prevents it from being moved or deleted.
+Optionally, specify a reason for the lock with `--reason`.
move::
-Move a working tree to a new location. Note that the main working tree
-or linked working trees containing submodules cannot be moved with this
-command. (The `git worktree repair` command, however, can reestablish
-the connection with linked working trees if you move the main working
-tree manually.)
+Move a worktree to a new location. Note that the main worktree or linked
+worktrees containing submodules cannot be moved with this command. (The
+`git worktree repair` command, however, can reestablish the connection
+with linked worktrees if you move the main worktree manually.)
prune::
-Prune working tree information in `$GIT_DIR/worktrees`.
+Prune worktree information in `$GIT_DIR/worktrees`.
remove::
-Remove a working tree. Only clean working trees (no untracked files
-and no modification in tracked files) can be removed. Unclean working
-trees or ones with submodules can be removed with `--force`. The main
-working tree cannot be removed.
+Remove a worktree. Only clean worktrees (no untracked files and no
+modification in tracked files) can be removed. Unclean worktrees or ones
+with submodules can be removed with `--force`. The main worktree cannot be
+removed.
repair [<path>...]::
-Repair working tree administrative files, if possible, if they have
-become corrupted or outdated due to external factors.
+Repair worktree administrative files, if possible, if they have become
+corrupted or outdated due to external factors.
+
-For instance, if the main working tree (or bare repository) is moved,
-linked working trees will be unable to locate it. Running `repair` in
-the main working tree will reestablish the connection from linked
-working trees back to the main working tree.
+For instance, if the main worktree (or bare repository) is moved, linked
+worktrees will be unable to locate it. Running `repair` in the main
+worktree will reestablish the connection from linked worktrees back to the
+main worktree.
+
-Similarly, if a linked working tree is moved without using `git worktree
-move`, the main working tree (or bare repository) will be unable to
-locate it. Running `repair` within the recently-moved working tree will
-reestablish the connection. If multiple linked working trees are moved,
-running `repair` from any working tree with each tree's new `<path>` as
-an argument, will reestablish the connection to all the specified paths.
+Similarly, if the working tree for a linked worktree is moved without
+using `git worktree move`, the main worktree (or bare repository) will be
+unable to locate it. Running `repair` within the recently-moved worktree
+will reestablish the connection. If multiple linked worktrees are moved,
+running `repair` from any worktree with each tree's new `<path>` as an
+argument, will reestablish the connection to all the specified paths.
+
-If both the main working tree and linked working trees have been moved
-manually, then running `repair` in the main working tree and specifying the
-new `<path>` of each linked working tree will reestablish all connections
-in both directions.
+If both the main worktree and linked worktrees have been moved manually,
+then running `repair` in the main worktree and specifying the new `<path>`
+of each linked worktree will reestablish all connections in both
+directions.
unlock::
-Unlock a working tree, allowing it to be pruned, moved or deleted.
+Unlock a worktree, allowing it to be pruned, moved or deleted.
OPTIONS
-------
-f::
--force::
- By default, `add` refuses to create a new working tree when
+ By default, `add` refuses to create a new worktree when
`<commit-ish>` is a branch name and is already checked out by
- another working tree, or if `<path>` is already assigned to some
- working tree but is missing (for instance, if `<path>` was deleted
+ another worktree, or if `<path>` is already assigned to some
+ worktree but is missing (for instance, if `<path>` was deleted
manually). This option overrides these safeguards. To add a missing but
- locked working tree path, specify `--force` twice.
+ locked worktree path, specify `--force` twice.
+
-`move` refuses to move a locked working tree unless `--force` is specified
-twice. If the destination is already assigned to some other working tree but is
+`move` refuses to move a locked worktree unless `--force` is specified
+twice. If the destination is already assigned to some other worktree 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.
+`remove` refuses to remove an unclean worktree unless `--force` is used.
+To remove a locked worktree, specify `--force` twice.
-b <new-branch>::
-B <new-branch>::
With `add`, create a new branch named `<new-branch>` starting at
- `<commit-ish>`, and check out `<new-branch>` into the new working tree.
+ `<commit-ish>`, and check out `<new-branch>` into the new worktree.
If `<commit-ish>` is omitted, it defaults to `HEAD`.
By default, `-b` refuses to create a new branch if it already
exists. `-B` overrides this safeguard, resetting `<new-branch>` to
@@ -185,7 +186,7 @@ To remove a locked working tree, specify `--force` twice.
-d::
--detach::
- With `add`, detach `HEAD` in the new working tree. See "DETACHED HEAD"
+ With `add`, detach `HEAD` in the new worktree. See "DETACHED HEAD"
in linkgit:git-checkout[1].
--[no-]checkout::
@@ -211,7 +212,7 @@ This can also be set up as the default behaviour by using the
`--track` in linkgit:git-branch[1] for details.
--lock::
- Keep the working tree locked after creation. This is the
+ Keep the worktree locked after creation. This is the
equivalent of `git worktree lock` after `git worktree add`,
but without a race condition.
@@ -223,7 +224,14 @@ This can also be set up as the default behaviour by using the
--porcelain::
With `list`, output in an easy-to-parse format for scripts.
This format will remain stable across Git versions and regardless of user
- configuration. See below for details.
+ configuration. It is recommended to combine this with `-z`.
+ See below for details.
+
+-z::
+ Terminate each line with a NUL rather than a newline when
+ `--porcelain` is specified with `list`. This makes it possible
+ to parse the output when a worktree path contains a newline
+ character.
-q::
--quiet::
@@ -236,43 +244,42 @@ This can also be set up as the default behaviour by using the
With `list`, output additional information about worktrees (see below).
--expire <time>::
- With `prune`, only expire unused working trees older than `<time>`.
+ With `prune`, only expire unused worktrees older than `<time>`.
+
-With `list`, annotate missing working trees as prunable if they are
-older than `<time>`.
+With `list`, annotate missing worktrees as prunable if they are older than
+`<time>`.
--reason <string>::
- With `lock` or with `add --lock`, an explanation why the working tree is locked.
+ With `lock` or with `add --lock`, an explanation why the worktree
+ is locked.
<worktree>::
- Working trees can be identified by path, either relative or
- absolute.
+ Worktrees can be identified by path, either relative or absolute.
+
-If the last path components in the working tree's path is unique among
-working trees, it can be used to identify a working tree. For example if
-you only have two working trees, at `/abc/def/ghi` and `/abc/def/ggg`,
-then `ghi` or `def/ghi` is enough to point to the former working tree.
+If the last path components in the worktree's path is unique among
+worktrees, it can be used to identify a worktree. For example if you only
+have two worktrees, at `/abc/def/ghi` and `/abc/def/ggg`, then `ghi` or
+`def/ghi` is enough to point to the former worktree.
REFS
----
-In multiple working trees, some refs may be shared between all working
-trees and some refs are local. One example is `HEAD` which is different for each
-working tree. This section is about the sharing rules and how to access
-refs of one working tree from another.
-
-In general, all pseudo refs are per working tree and all refs starting
-with `refs/` are shared. Pseudo refs are ones like `HEAD` which are
-directly under `$GIT_DIR` instead of inside `$GIT_DIR/refs`. There are
-exceptions, however: refs inside `refs/bisect` and `refs/worktree` are not
-shared.
-
-Refs that are per working tree can still be accessed from another
-working tree via two special paths, `main-worktree` and `worktrees`. The
-former gives access to per-working tree refs of the main working tree,
-while the latter to all linked working trees.
+When using multiple worktrees, some refs are shared between all worktrees,
+but others are specific to an individual worktree. One example is `HEAD`,
+which is different for each worktree. This section is about the sharing
+rules and how to access refs of one worktree from another.
+
+In general, all pseudo refs are per-worktree and all refs starting with
+`refs/` are shared. Pseudo refs are ones like `HEAD` which are directly
+under `$GIT_DIR` instead of inside `$GIT_DIR/refs`. There are exceptions,
+however: refs inside `refs/bisect` and `refs/worktree` are not shared.
+
+Refs that are per-worktree can still be accessed from another worktree via
+two special paths, `main-worktree` and `worktrees`. The former gives
+access to per-worktree refs of the main worktree, while the latter to all
+linked worktrees.
For example, `main-worktree/HEAD` or `main-worktree/refs/bisect/good`
-resolve to the same value as the main working tree's `HEAD` and
+resolve to the same value as the main worktree's `HEAD` and
`refs/bisect/good` respectively. Similarly, `worktrees/foo/HEAD` or
`worktrees/bar/refs/bisect/bad` are the same as
`$GIT_COMMON_DIR/worktrees/foo/HEAD` and
@@ -284,13 +291,13 @@ which will handle refs correctly.
CONFIGURATION FILE
------------------
-By default, the repository `config` file is shared across all working
-trees. If the config variables `core.bare` or `core.worktree` are
-already present in the config file, they will be applied to the main
-working trees only.
+By default, the repository `config` file is shared across all worktrees.
+If the config variables `core.bare` or `core.worktree` are present in the
+common config file and `extensions.worktreeConfig` is disabled, then they
+will be applied to the main worktree only.
-In order to have configuration specific to working trees, you can turn
-on the `worktreeConfig` extension, e.g.:
+In order to have worktree-specific configuration, you can turn on the
+`worktreeConfig` extension, e.g.:
------------
$ git config extensions.worktreeConfig true
@@ -303,40 +310,45 @@ versions will refuse to access repositories with this extension.
Note that in this file, the exception for `core.bare` and `core.worktree`
is gone. If they exist in `$GIT_DIR/config`, you must move
-them to the `config.worktree` of the main working tree. You may also
-take this opportunity to review and move other configuration that you
-do not want to share to all working trees:
+them to the `config.worktree` of the main worktree. You may also take this
+opportunity to review and move other configuration that you do not want to
+share to all worktrees:
+
+ - `core.worktree` should never be shared.
+
+ - `core.bare` should not be shared if the value is `core.bare=true`.
- - `core.worktree` and `core.bare` should never be shared
+ - `core.sparseCheckout` should not be shared, unless you are sure you
+ always use sparse checkout for all worktrees.
- - `core.sparseCheckout` is recommended per working tree, unless you
- are sure you always use sparse checkout for all working trees.
+See the documentation of `extensions.worktreeConfig` in
+linkgit:git-config[1] for more details.
DETAILS
-------
-Each linked working tree has a private sub-directory in the repository's
+Each linked worktree has a private sub-directory in the repository's
`$GIT_DIR/worktrees` directory. The private sub-directory's name is usually
-the base name of the linked working tree's path, possibly appended with a
+the base name of the linked worktree's path, possibly appended with a
number to make it unique. For example, when `$GIT_DIR=/path/main/.git` the
command `git worktree add /path/other/test-next next` creates the linked
-working tree in `/path/other/test-next` and also creates a
+worktree in `/path/other/test-next` and also creates a
`$GIT_DIR/worktrees/test-next` directory (or `$GIT_DIR/worktrees/test-next1`
if `test-next` is already taken).
-Within a linked working tree, `$GIT_DIR` is set to point to this private
+Within a linked worktree, `$GIT_DIR` is set to point to this private
directory (e.g. `/path/main/.git/worktrees/test-next` in the example) and
-`$GIT_COMMON_DIR` is set to point back to the main working tree's `$GIT_DIR`
+`$GIT_COMMON_DIR` is set to point back to the main worktree's `$GIT_DIR`
(e.g. `/path/main/.git`). These settings are made in a `.git` file located at
-the top directory of the linked working tree.
+the top directory of the linked worktree.
Path resolution via `git rev-parse --git-path` uses either
`$GIT_DIR` or `$GIT_COMMON_DIR` depending on the path. For example, in the
-linked working tree `git rev-parse --git-path HEAD` returns
+linked worktree `git rev-parse --git-path HEAD` returns
`/path/main/.git/worktrees/test-next/HEAD` (not
`/path/other/test-next/.git/HEAD` or `/path/main/.git/HEAD`) while `git
rev-parse --git-path refs/heads/master` uses
`$GIT_COMMON_DIR` and returns `/path/main/.git/refs/heads/master`,
-since refs are shared across all working trees, except `refs/bisect` and
+since refs are shared across all worktrees, except `refs/bisect` and
`refs/worktree`.
See linkgit:gitrepository-layout[5] for more information. The rule of
@@ -344,8 +356,8 @@ thumb is do not make any assumption about whether a path belongs to
`$GIT_DIR` or `$GIT_COMMON_DIR` when you need to directly access something
inside `$GIT_DIR`. Use `git rev-parse --git-path` to get the final path.
-If you manually move a linked working tree, you need to update the `gitdir` file
-in the entry's directory. For example, if a linked working tree is moved
+If you manually move a linked worktree, you need to update the `gitdir` file
+in the entry's directory. For example, if a linked worktree is moved
to `/newpath/test-next` and its `.git` file points to
`/path/main/.git/worktrees/test-next`, then update
`/path/main/.git/worktrees/test-next/gitdir` to reference `/newpath/test-next`
@@ -354,10 +366,10 @@ automatically.
To prevent a `$GIT_DIR/worktrees` entry from being pruned (which
can be useful in some situations, such as when the
-entry's working tree is stored on a portable device), use the
+entry's worktree is stored on a portable device), use the
`git worktree lock` command, which adds a file named
`locked` to the entry's directory. The file contains the reason in
-plain text. For example, if a linked working tree's `.git` file points
+plain text. For example, if a linked worktree's `.git` file points
to `/path/main/.git/worktrees/test-next` then a file named
`/path/main/.git/worktrees/test-next/locked` will prevent the
`test-next` entry from being pruned. See
@@ -378,11 +390,11 @@ $ git worktree list
/path/to/other-linked-worktree 1234abc (detached HEAD)
------------
-The command also shows annotations for each working tree, according to its state.
+The command also shows annotations for each worktree, according to its state.
These annotations are:
- * `locked`, if the working tree is locked.
- * `prunable`, if the working tree can be pruned via `git worktree prune`.
+ * `locked`, if the worktree is locked.
+ * `prunable`, if the worktree can be pruned via `git worktree prune`.
------------
$ git worktree list
@@ -400,23 +412,24 @@ $ git worktree list --verbose
/path/to/linked-worktree abcd1234 [master]
/path/to/locked-worktree-no-reason abcd5678 (detached HEAD) locked
/path/to/locked-worktree-with-reason 1234abcd (brancha)
- locked: working tree path is mounted on a portable device
+ locked: worktree path is mounted on a portable device
/path/to/prunable-worktree 5678abc1 (detached HEAD)
prunable: gitdir file points to non-existent location
------------
Note that the annotation is moved to the next line if the additional
information is available, otherwise it stays on the same line as the
-working tree itself.
+worktree itself.
Porcelain Format
~~~~~~~~~~~~~~~~
-The porcelain format has a line per attribute. Attributes are listed with a
+The porcelain format has a line per attribute. If `-z` is given then the lines
+are terminated with NUL rather than a newline. Attributes are listed with a
label and value separated by a single space. Boolean attributes (like `bare`
and `detached`) are listed as a label only, and are present only
if the value is true. Some attributes (like `locked`) can be listed as a label
only or with a value depending upon whether a reason is available. The first
-attribute of a working tree is always `worktree`, an empty line indicates the
+attribute of a worktree is always `worktree`, an empty line indicates the
end of the record. For example:
------------
@@ -449,7 +462,7 @@ prunable gitdir file points to non-existent location
------------
-If the lock reason contains "unusual" characters such as newline, they
+Unless `-z` is used any "unusual" characters in the lock reason such as newlines
are escaped and the entire reason is quoted as explained for the
configuration variable `core.quotePath` (see linkgit:git-config[1]).
For Example:
@@ -468,7 +481,7 @@ demands that you fix something immediately. You might typically use
linkgit:git-stash[1] to store your changes away temporarily, however, your
working tree is in such a state of disarray (with new, moved, and removed
files, and other bits and pieces strewn around) that you don't want to risk
-disturbing any of it. Instead, you create a temporary linked working tree to
+disturbing any of it. Instead, you create a temporary linked worktree to
make the emergency fix, remove it when done, and then resume your earlier
refactoring session.
diff --git a/Documentation/git.txt b/Documentation/git.txt
index 13f83a2a3a..302607a496 100644
--- a/Documentation/git.txt
+++ b/Documentation/git.txt
@@ -9,7 +9,7 @@ git - the stupid content tracker
SYNOPSIS
--------
[verse]
-'git' [--version] [--help] [-C <path>] [-c <name>=<value>]
+'git' [-v | --version] [-h | --help] [-C <path>] [-c <name>=<value>]
[--exec-path[=<path>]] [--html-path] [--man-path] [--info-path]
[-p|--paginate|-P|--no-pager] [--no-replace-objects] [--bare]
[--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>]
@@ -39,6 +39,7 @@ or https://git-scm.com/docs.
OPTIONS
-------
+-v::
--version::
Prints the Git suite version that the 'git' program came from.
+
@@ -46,6 +47,7 @@ This option is internally converted to `git version ...` and accepts
the same options as the linkgit:git-version[1] command. If `--help` is
also given, it takes precedence over `--version`.
+-h::
--help::
Prints the synopsis and a list of the most commonly used
commands. If the option `--all` or `-a` is given then all
diff --git a/Documentation/gitattributes.txt b/Documentation/gitattributes.txt
index 83fd4e19a4..4b36d51beb 100644
--- a/Documentation/gitattributes.txt
+++ b/Documentation/gitattributes.txt
@@ -160,11 +160,13 @@ unspecified.
^^^^^
This attribute sets a specific line-ending style to be used in the
-working directory. It enables end-of-line conversion without any
-content checks, effectively setting the `text` attribute. Note that
-setting this attribute on paths which are in the index with CRLF line
-endings may make the paths to be considered dirty. Adding the path to
-the index again will normalize the line endings in the index.
+working directory. This attribute has effect only if the `text`
+attribute is set or unspecified, or if it is set to `auto`, the file is
+detected as text, and it is stored with LF endings in the index. Note
+that setting this attribute on paths which are in the index with CRLF
+line endings may make the paths to be considered dirty unless
+`text=auto` is set. Adding the path to the index again will normalize
+the line endings in the index.
Set to string value "crlf"::
@@ -827,6 +829,8 @@ patterns are available:
- `java` suitable for source code in the Java language.
+- `kotlin` suitable for source code in the Kotlin language.
+
- `markdown` suitable for Markdown documents.
- `matlab` suitable for source code in the MATLAB and Octave languages.
diff --git a/Documentation/gitcli.txt b/Documentation/gitcli.txt
index 92e4ba6a2f..1819a5a185 100644
--- a/Documentation/gitcli.txt
+++ b/Documentation/gitcli.txt
@@ -19,6 +19,15 @@ Many commands take revisions (most often "commits", but sometimes
"tree-ish", depending on the context and command) and paths as their
arguments. Here are the rules:
+ * Options come first and then args.
+ A subcommand may take dashed options (which may take their own
+ arguments, e.g. "--max-parents 2") and arguments. You SHOULD
+ give dashed options first and then arguments. Some commands may
+ accept dashed options after you have already gave non-option
+ arguments (which may make the command ambiguous), but you should
+ not rely on it (because eventually we may find a way to fix
+ these ambiguity by enforcing the "options then args" rule).
+
* Revisions come first and then paths.
E.g. in `git diff v1.0 v2.0 arch/x86 include/asm-x86`,
`v1.0` and `v2.0` are revisions and `arch/x86` and `include/asm-x86`
@@ -72,24 +81,24 @@ you will.
Here are the rules regarding the "flags" that you should follow when you are
scripting Git:
- * it's preferred to use the non-dashed form of Git commands, which means that
+ * It's preferred to use the non-dashed form of Git commands, which means that
you should prefer `git foo` to `git-foo`.
- * splitting short options to separate words (prefer `git foo -a -b`
+ * Splitting short options to separate words (prefer `git foo -a -b`
to `git foo -ab`, the latter may not even work).
- * when a command-line option takes an argument, use the 'stuck' form. In
+ * When a command-line option takes an argument, use the 'stuck' form. In
other words, write `git foo -oArg` instead of `git foo -o Arg` for short
options, and `git foo --long-opt=Arg` instead of `git foo --long-opt Arg`
for long options. An option that takes optional option-argument must be
written in the 'stuck' form.
- * when you give a revision parameter to a command, make sure the parameter is
+ * When you give a revision parameter to a command, make sure the parameter is
not ambiguous with a name of a file in the work tree. E.g. do not write
`git log -1 HEAD` but write `git log -1 HEAD --`; the former will not work
if you happen to have a file called `HEAD` in the work tree.
- * many commands allow a long option `--option` to be abbreviated
+ * Many commands allow a long option `--option` to be abbreviated
only to their unique prefix (e.g. if there is no other option
whose name begins with `opt`, you may be able to spell `--opt` to
invoke the `--option` flag), but you should fully spell them out
diff --git a/Documentation/githooks.txt b/Documentation/githooks.txt
index b51959ff94..a16e62bc8c 100644
--- a/Documentation/githooks.txt
+++ b/Documentation/githooks.txt
@@ -698,6 +698,10 @@ and "0" meaning they were not.
Only one parameter should be set to "1" when the hook runs. The hook
running passing "1", "1" should not be possible.
+SEE ALSO
+--------
+linkgit:git-hook[1]
+
GIT
---
Part of the linkgit:git[1] suite
diff --git a/Documentation/glossary-content.txt b/Documentation/glossary-content.txt
index c077971335..aa2f41f5e7 100644
--- a/Documentation/glossary-content.txt
+++ b/Documentation/glossary-content.txt
@@ -312,7 +312,7 @@ Pathspecs are used on the command line of "git ls-files", "git
ls-tree", "git add", "git grep", "git diff", "git checkout",
and many other commands to
limit the scope of operations to some subset of the tree or
-worktree. See the documentation of each command for whether
+working tree. See the documentation of each command for whether
paths are relative to the current directory or toplevel. The
pathspec syntax is as follows:
+
@@ -446,7 +446,7 @@ exclude;;
interface than the <<def_plumbing,plumbing>>.
[[def_per_worktree_ref]]per-worktree ref::
- Refs that are per-<<def_working_tree,worktree>>, rather than
+ Refs that are per-<<def_worktree,worktree>>, rather than
global. This is presently only <<def_HEAD,HEAD>> and any refs
that start with `refs/bisect/`, but might later include other
unusual refs.
@@ -669,3 +669,12 @@ The most notable example is `HEAD`.
The tree of actual checked out files. The working tree normally
contains the contents of the <<def_HEAD,HEAD>> commit's tree,
plus any local changes that you have made but not yet committed.
+
+[[def_worktree]]worktree::
+ A repository can have zero (i.e. bare repository) or one or
+ more worktrees attached to it. One "worktree" consists of a
+ "working tree" and repository metadata, most of which are
+ shared among other worktrees of a single repository, and
+ some of which are maintained separately per worktree
+ (e.g. the index, HEAD and pseudorefs like MERGE_HEAD,
+ per-worktree refs and per-worktree configuration file).
diff --git a/Documentation/mergetools/vimdiff.txt b/Documentation/mergetools/vimdiff.txt
new file mode 100644
index 0000000000..2d631e9b1f
--- /dev/null
+++ b/Documentation/mergetools/vimdiff.txt
@@ -0,0 +1,194 @@
+Description
+^^^^^^^^^^^
+
+When specifying `--tool=vimdiff` in `git mergetool` Git will open Vim with a 4
+windows layout distributed in the following way:
+....
+------------------------------------------
+| | | |
+| LOCAL | BASE | REMOTE |
+| | | |
+------------------------------------------
+| |
+| MERGED |
+| |
+------------------------------------------
+....
+`LOCAL`, `BASE` and `REMOTE` are read-only buffers showing the contents of the
+conflicting file in specific commits ("commit you are merging into", "common
+ancestor commit" and "commit you are merging from" respectively)
+
+`MERGED` is a writable buffer where you have to resolve the conflicts (using the
+other read-only buffers as a reference). Once you are done, save and exit Vim as
+usual (`:wq`) or, if you want to abort, exit using `:cq`.
+
+Layout configuration
+^^^^^^^^^^^^^^^^^^^^
+
+You can change the windows layout used by Vim by setting configuration variable
+`mergetool.vimdiff.layout` which accepts a string where the following separators
+have special meaning:
+
+ - `+` is used to "open a new tab"
+ - `,` is used to "open a new vertical split"
+ - `/` is used to "open a new horizontal split"
+ - `@` is used to indicate which is the file containing the final version after
+ solving the conflicts. If not present, `MERGED` will be used by default.
+
+The precedence of the operators is this one (you can use parentheses to change
+it):
+
+ `@` > `+` > `/` > `,`
+
+Let's see some examples to understand how it works:
+
+* `layout = "(LOCAL,BASE,REMOTE)/MERGED"`
++
+--
+This is exactly the same as the default layout we have already seen.
+
+Note that `/` has precedence over `,` and thus the parenthesis are not
+needed in this case. The next layout definition is equivalent:
+
+ layout = "LOCAL,BASE,REMOTE / MERGED"
+--
+* `layout = "LOCAL,MERGED,REMOTE"`
++
+--
+If, for some reason, we are not interested in the `BASE` buffer.
+....
+------------------------------------------
+| | | |
+| | | |
+| LOCAL | MERGED | REMOTE |
+| | | |
+| | | |
+------------------------------------------
+....
+--
+* `layout = "MERGED"`
++
+--
+Only the `MERGED` buffer will be shown. Note, however, that all the other
+ones are still loaded in vim, and you can access them with the "buffers"
+command.
+....
+------------------------------------------
+| |
+| |
+| MERGED |
+| |
+| |
+------------------------------------------
+....
+--
+* `layout = "@LOCAL,REMOTE"`
++
+--
+When `MERGED` is not present in the layout, you must "mark" one of the
+buffers with an asterisk. That will become the buffer you need to edit and
+save after resolving the conflicts.
+....
+------------------------------------------
+| | |
+| | |
+| | |
+| LOCAL | REMOTE |
+| | |
+| | |
+| | |
+------------------------------------------
+....
+--
+* `layout = "LOCAL,BASE,REMOTE / MERGED + BASE,LOCAL + BASE,REMOTE"`
++
+--
+Three tabs will open: the first one is a copy of the default layout, while
+the other two only show the differences between (`BASE` and `LOCAL`) and
+(`BASE` and `REMOTE`) respectively.
+....
+------------------------------------------
+| <TAB #1> | TAB #2 | TAB #3 | |
+------------------------------------------
+| | | |
+| LOCAL | BASE | REMOTE |
+| | | |
+------------------------------------------
+| |
+| MERGED |
+| |
+------------------------------------------
+....
+....
+------------------------------------------
+| TAB #1 | <TAB #2> | TAB #3 | |
+------------------------------------------
+| | |
+| | |
+| | |
+| BASE | LOCAL |
+| | |
+| | |
+| | |
+------------------------------------------
+....
+....
+------------------------------------------
+| TAB #1 | TAB #2 | <TAB #3> | |
+------------------------------------------
+| | |
+| | |
+| | |
+| BASE | REMOTE |
+| | |
+| | |
+| | |
+------------------------------------------
+....
+--
+* `layout = "LOCAL,BASE,REMOTE / MERGED + BASE,LOCAL + BASE,REMOTE + (LOCAL/BASE/REMOTE),MERGED"`
++
+--
+Same as the previous example, but adds a fourth tab with the same
+information as the first tab, with a different layout.
+....
+---------------------------------------------
+| TAB #1 | TAB #2 | TAB #3 | <TAB #4> |
+---------------------------------------------
+| LOCAL | |
+|---------------------| |
+| BASE | MERGED |
+|---------------------| |
+| REMOTE | |
+---------------------------------------------
+....
+Note how in the third tab definition we need to use parenthesis to make `,`
+have precedence over `/`.
+--
+
+Variants
+^^^^^^^^
+
+Instead of `--tool=vimdiff`, you can also use one of these other variants:
+
+ * `--tool=gvimdiff`, to open gVim instead of Vim.
+
+ * `--tool=nvimdiff`, to open Neovim instead of Vim.
+
+When using these variants, in order to specify a custom layout you will have to
+set configuration variables `mergetool.gvimdiff.layout` and
+`mergetool.nvimdiff.layout` instead of `mergetool.vimdiff.layout`
+
+In addition, for backwards compatibility with previous Git versions, you can
+also append `1`, `2` or `3` to either `vimdiff` or any of the variants (ex:
+`vimdiff3`, `nvimdiff1`, etc...) to use a predefined layout.
+In other words, using `--tool=[g,n,]vimdiffx` is the same as using
+`--tool=[g,n,]vimdiff` and setting configuration variable
+`mergetool.[g,n,]vimdiff.layout` to...
+
+ * `x=1`: `"@LOCAL, REMOTE"`
+ * `x=2`: `"LOCAL, MERGED, REMOTE"`
+ * `x=3`: `"MERGED"`
+
+Example: using `--tool=gvimdiff2` will open `gvim` with three columns (LOCAL,
+MERGED and REMOTE).
diff --git a/Documentation/rev-list-options.txt b/Documentation/rev-list-options.txt
index 43a86fa562..195e74eec6 100644
--- a/Documentation/rev-list-options.txt
+++ b/Documentation/rev-list-options.txt
@@ -25,6 +25,11 @@ ordering and formatting options, such as `--reverse`.
--after=<date>::
Show commits more recent than a specific date.
+--since-as-filter=<date>::
+ Show all commits more recent than a specific date. This visits
+ all commits in the range, rather than stopping at the first commit which
+ is older than a specific date.
+
--until=<date>::
--before=<date>::
Show commits older than a specific date.
@@ -122,19 +127,27 @@ again. Equivalent forms are `--min-parents=0` (any commit has 0 or more
parents) and `--max-parents=-1` (negative numbers denote no upper limit).
--first-parent::
- Follow only the first parent commit upon seeing a merge
- commit. This option can give a better overview when
- viewing the evolution of a particular topic branch,
- because merges into a topic branch tend to be only about
- adjusting to updated upstream from time to time, and
- this option allows you to ignore the individual commits
- brought in to your history by such a merge.
+ When finding commits to include, follow only the first
+ parent commit upon seeing a merge commit. This option
+ can give a better overview when viewing the evolution of
+ a particular topic branch, because merges into a topic
+ branch tend to be only about adjusting to updated upstream
+ from time to time, and this option allows you to ignore
+ the individual commits brought in to your history by such
+ a merge.
ifdef::git-log[]
+
This option also changes default diff format for merge commits
to `first-parent`, see `--diff-merges=first-parent` for details.
endif::git-log[]
+--exclude-first-parent-only::
+ When finding commits to exclude (with a '{caret}'), follow only
+ the first parent commit upon seeing a merge commit.
+ This can be used to find the set of changes in a topic branch
+ from the point where it diverged from the remote branch, given
+ that arbitrary merges can be valid topic branch changes.
+
--not::
Reverses the meaning of the '{caret}' prefix (or lack thereof)
for all following revision specifiers, up to the next `--not`.
diff --git a/Documentation/technical/api-trace2.txt b/Documentation/technical/api-trace2.txt
index bb13ca3db8..f4a8a69087 100644
--- a/Documentation/technical/api-trace2.txt
+++ b/Documentation/technical/api-trace2.txt
@@ -5,7 +5,7 @@ information to stderr or a file. The Trace2 feature is inactive unless
explicitly enabled by enabling one or more Trace2 Targets.
The Trace2 API is intended to replace the existing (Trace1)
-printf-style tracing provided by the existing `GIT_TRACE` and
+`printf()`-style tracing provided by the existing `GIT_TRACE` and
`GIT_TRACE_PERFORMANCE` facilities. During initial implementation,
Trace2 and Trace1 may operate in parallel.
@@ -24,8 +24,8 @@ for example.
Trace2 is controlled using `trace2.*` config values in the system and
global config files and `GIT_TRACE2*` environment variables. Trace2 does
-not read from repo local or worktree config files or respect `-c`
-command line config settings.
+not read from repo local or worktree config files, nor does it respect
+`-c` command line config settings.
== Trace2 Targets
@@ -34,8 +34,8 @@ Format details are given in a later section.
=== The Normal Format Target
-The normal format target is a tradition printf format and similar
-to GIT_TRACE format. This format is enabled with the `GIT_TRACE2`
+The normal format target is a traditional `printf()` format and similar
+to the `GIT_TRACE` format. This format is enabled with the `GIT_TRACE2`
environment variable or the `trace2.normalTarget` system or global
config setting.
@@ -69,8 +69,8 @@ $ cat ~/log.normal
=== The Performance Format Target
The performance format target (PERF) is a column-based format to
-replace GIT_TRACE_PERFORMANCE and is suitable for development and
-testing, possibly to complement tools like gprof. This format is
+replace `GIT_TRACE_PERFORMANCE` and is suitable for development and
+testing, possibly to complement tools like `gprof`. This format is
enabled with the `GIT_TRACE2_PERF` environment variable or the
`trace2.perfTarget` system or global config setting.
@@ -128,7 +128,7 @@ yields
------------
$ cat ~/log.event
-{"event":"version","sid":"sid":"20190408T191610.507018Z-H9b68c35f-P000059a8","thread":"main","time":"2019-01-16T17:28:42.620713Z","file":"common-main.c","line":38,"evt":"3","exe":"2.20.1.155.g426c96fcdb"}
+{"event":"version","sid":"20190408T191610.507018Z-H9b68c35f-P000059a8","thread":"main","time":"2019-01-16T17:28:42.620713Z","file":"common-main.c","line":38,"evt":"3","exe":"2.20.1.155.g426c96fcdb"}
{"event":"start","sid":"20190408T191610.507018Z-H9b68c35f-P000059a8","thread":"main","time":"2019-01-16T17:28:42.621027Z","file":"common-main.c","line":39,"t_abs":0.001173,"argv":["git","version"]}
{"event":"cmd_name","sid":"20190408T191610.507018Z-H9b68c35f-P000059a8","thread":"main","time":"2019-01-16T17:28:42.621122Z","file":"git.c","line":432,"name":"version","hierarchy":"version"}
{"event":"exit","sid":"20190408T191610.507018Z-H9b68c35f-P000059a8","thread":"main","time":"2019-01-16T17:28:42.621236Z","file":"git.c","line":662,"t_abs":0.001227,"code":0}
@@ -170,9 +170,9 @@ Some functions have a `_va_fl()` suffix to indicate that they also
take a `va_list` argument.
Some functions have a `_printf_fl()` suffix to indicate that they also
-take a varargs argument.
+take a `printf()` style format with a variable number of arguments.
-There are CPP wrapper macros and ifdefs to hide most of these details.
+There are CPP wrapper macros and `#ifdef`s to hide most of these details.
See `trace2.h` for more details. The following discussion will only
describe the simplified forms.
@@ -234,7 +234,7 @@ Events are written as lines of the form:
is the event name.
`<event-message>`::
- is a free-form printf message intended for human consumption.
+ is a free-form `printf()` message intended for human consumption.
+
Note that this may contain embedded LF or CRLF characters that are
not escaped, so the event may spill across multiple lines.
@@ -300,7 +300,7 @@ This field is in anticipation of in-proc submodules in the future.
indicate a broad category, such as "index" or "status".
`<perf-event-message>`::
- is a free-form printf message intended for human consumption.
+ is a free-form `printf()` message intended for human consumption.
------------
15:33:33.532712 wt-status.c:2310 | d0 | main | region_enter | r1 | 0.126064 | | status | label:print
@@ -533,7 +533,7 @@ these special values are used:
------------
`"cmd_mode"`::
- This event, when present, describes the command variant This
+ This event, when present, describes the command variant. This
event may be emitted more than once.
+
------------
@@ -588,7 +588,7 @@ with "?".
`"child_exit"`::
This event is generated after the current process has returned
- from the waitpid() and collected the exit information from the
+ from the `waitpid()` and collected the exit information from the
child.
+
------------
@@ -609,7 +609,7 @@ process may be a shell script which doesn't have a session-id.)
+
Note that the `t_rel` field contains the observed run time in seconds
for the child process (starting before the fork/exec/spawn and
-stopping after the waitpid() and includes OS process creation overhead).
+stopping after the `waitpid()` and includes OS process creation overhead).
So this time will be slightly larger than the atexit time reported by
the child process itself.
@@ -635,7 +635,7 @@ process may be a shell script which doesn't have a session-id.)
+
This event is generated after the child is started in the background
and given a little time to boot up and start working. If the child
-startups normally and while the parent is still waiting, the "ready"
+starts up normally while the parent is still waiting, the "ready"
field will have the value "ready".
If the child is too slow to start and the parent times out, the field
will have the value "timeout".
@@ -949,7 +949,7 @@ atexit elapsed:3.868970 code:0
Regions::
- Regions can be use to time an interesting section of code.
+ Regions can be used to time an interesting section of code.
+
----------------
void wt_status_collect(struct wt_status *s)
@@ -1103,9 +1103,9 @@ Thread Events::
Thread messages added to a thread-proc.
+
-For example, the multithreaded preload-index code can be
+For example, the multi-threaded preload-index code can be
instrumented with a region around the thread pool and then
-per-thread start and exit events within the threadproc.
+per-thread start and exit events within the thread-proc.
+
----------------
static void *preload_thread(void *_data)
@@ -1214,11 +1214,11 @@ as each thread starts and allocates TLS storage.
There are a few issues to resolve before we can completely
switch to Trace2.
-* Updating existing tests that assume GIT_TRACE format messages.
+* Updating existing tests that assume `GIT_TRACE` format messages.
-* How to best handle custom GIT_TRACE_<key> messages?
+* How to best handle custom `GIT_TRACE_<key>` messages?
-** The GIT_TRACE_<key> mechanism allows each <key> to write to a
+** The `GIT_TRACE_<key>` mechanism allows each <key> to write to a
different file (in addition to just stderr).
** Do we want to maintain that ability or simply write to the existing
diff --git a/Documentation/technical/bundle-format.txt b/Documentation/technical/bundle-format.txt
index bac558d049..b9be8644cf 100644
--- a/Documentation/technical/bundle-format.txt
+++ b/Documentation/technical/bundle-format.txt
@@ -71,6 +71,11 @@ and the Git bundle v2 format cannot represent a shallow clone repository.
== Capabilities
Because there is no opportunity for negotiation, unknown capabilities cause 'git
-bundle' to abort. The only known capability is `object-format`, which specifies
-the hash algorithm in use, and can take the same values as the
-`extensions.objectFormat` configuration value.
+bundle' to abort.
+
+* `object-format` specifies the hash algorithm in use, and can take the same
+ values as the `extensions.objectFormat` configuration value.
+
+* `filter` specifies an object filter as in the `--filter` option in
+ linkgit:git-rev-list[1]. The resulting pack-file must be marked as a
+ `.promisor` pack-file after it is unbundled.
diff --git a/Documentation/technical/commit-graph-format.txt b/Documentation/technical/commit-graph-format.txt
index 87971c27dd..484b185ba9 100644
--- a/Documentation/technical/commit-graph-format.txt
+++ b/Documentation/technical/commit-graph-format.txt
@@ -93,7 +93,7 @@ CHUNK DATA:
2 bits of the lowest byte, storing the 33rd and 34th bit of the
commit time.
- Generation Data (ID: {'G', 'D', 'A', 'T' }) (N * 4 bytes) [Optional]
+ Generation Data (ID: {'G', 'D', 'A', '2' }) (N * 4 bytes) [Optional]
* This list of 4-byte values store corrected commit date offsets for the
commits, arranged in the same order as commit data chunk.
* If the corrected commit date offset cannot be stored within 31 bits,
@@ -104,7 +104,7 @@ CHUNK DATA:
by compatible versions of Git and in case of split commit-graph chains,
the topmost layer also has Generation Data chunk.
- Generation Data Overflow (ID: {'G', 'D', 'O', 'V' }) [Optional]
+ Generation Data Overflow (ID: {'G', 'D', 'O', '2' }) [Optional]
* This list of 8-byte values stores the corrected commit date offsets
for commits with corrected commit date offsets that cannot be
stored within 31 bits.
@@ -156,3 +156,11 @@ CHUNK DATA:
TRAILER:
H-byte HASH-checksum of all of the above.
+
+== Historical Notes:
+
+The Generation Data (GDA2) and Generation Data Overflow (GDO2) chunks have
+the number '2' in their chunk IDs because a previous version of Git wrote
+possibly erroneous data in these chunks with the IDs "GDAT" and "GDOV". By
+changing the IDs, newer versions of Git will silently ignore those older
+chunks and write the new information without trusting the incorrect data.
diff --git a/Documentation/technical/multi-pack-index.txt b/Documentation/technical/multi-pack-index.txt
index b39c69da8c..f2221d2b44 100644
--- a/Documentation/technical/multi-pack-index.txt
+++ b/Documentation/technical/multi-pack-index.txt
@@ -24,6 +24,7 @@ and their offsets into multiple packfiles. It contains:
** An offset within the jth packfile for the object.
* If large offsets are required, we use another list of large
offsets similar to version 2 pack-indexes.
+- An optional list of objects in pseudo-pack order (used with MIDX bitmaps).
Thus, we can provide O(log N) lookup time for any number
of packfiles.
diff --git a/Documentation/technical/pack-format.txt b/Documentation/technical/pack-format.txt
index 8d2f42f29e..6d3efb7d16 100644
--- a/Documentation/technical/pack-format.txt
+++ b/Documentation/technical/pack-format.txt
@@ -376,6 +376,11 @@ CHUNK DATA:
[Optional] Object Large Offsets (ID: {'L', 'O', 'F', 'F'})
8-byte offsets into large packfiles.
+ [Optional] Bitmap pack order (ID: {'R', 'I', 'D', 'X'})
+ A list of MIDX positions (one per object in the MIDX, num_objects in
+ total, each a 4-byte unsigned integer in network byte order), sorted
+ according to their relative bitmap/pseudo-pack positions.
+
TRAILER:
Index checksum of the above contents.
@@ -456,9 +461,5 @@ In short, a MIDX's pseudo-pack is the de-duplicated concatenation of
objects in packs stored by the MIDX, laid out in pack order, and the
packs arranged in MIDX order (with the preferred pack coming first).
-Finally, note that the MIDX's reverse index is not stored as a chunk in
-the multi-pack-index itself. This is done because the reverse index
-includes the checksum of the pack or MIDX to which it belongs, which
-makes it impossible to write in the MIDX. To avoid races when rewriting
-the MIDX, a MIDX reverse index includes the MIDX's checksum in its
-filename (e.g., `multi-pack-index-xyz.rev`).
+The MIDX's reverse index is stored in the optional 'RIDX' chunk within
+the MIDX itself.
diff --git a/Documentation/technical/partial-clone.txt b/Documentation/technical/partial-clone.txt
index a0dd7c66f2..99f0eb3040 100644
--- a/Documentation/technical/partial-clone.txt
+++ b/Documentation/technical/partial-clone.txt
@@ -181,6 +181,9 @@ Fetching Missing Objects
currently fetches all objects referred to by the requested objects, even
though they are not necessary.
+- Fetching with `--refetch` will request a complete new filtered packfile from
+ the remote, which can be used to change a filter without needing to
+ dynamically fetch missing objects.
Using many promisor remotes
---------------------------
diff --git a/Documentation/technical/reftable.txt b/Documentation/technical/reftable.txt
index d7c3b645cf..6a67cc4174 100644
--- a/Documentation/technical/reftable.txt
+++ b/Documentation/technical/reftable.txt
@@ -443,7 +443,7 @@ 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
+Object blocks use unique, abbreviated 2-31 byte 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 abbreviation length is available in
diff --git a/GIT-VERSION-GEN b/GIT-VERSION-GEN
index 002b1d7af4..1d667699e1 100755
--- a/GIT-VERSION-GEN
+++ b/GIT-VERSION-GEN
@@ -1,7 +1,7 @@
#!/bin/sh
GVF=GIT-VERSION-FILE
-DEF_VER=v2.35.3
+DEF_VER=v2.36.GIT
LF='
'
diff --git a/Makefile b/Makefile
index 5580859afd..61aadf3ce8 100644
--- a/Makefile
+++ b/Makefile
@@ -1,6 +1,9 @@
# The default target of this Makefile is...
all::
+# Import tree-wide shared Makefile behavior and libraries
+include shared.mak
+
# Define V=1 to have a more verbose compile.
#
# Define SHELL_PATH to a POSIX shell if your /bin/sh is broken.
@@ -234,6 +237,14 @@ all::
# Define NO_TRUSTABLE_FILEMODE if your filesystem may claim to support
# the executable mode bit, but doesn't really do so.
#
+# Define CSPRNG_METHOD to "arc4random" if your system has arc4random and
+# arc4random_buf, "libbsd" if your system has those functions from libbsd,
+# "getrandom" if your system has getrandom, "getentropy" if your system has
+# getentropy, "rtlgenrandom" for RtlGenRandom (Windows only), or "openssl" if
+# you'd want to use the OpenSSL CSPRNG. You may set multiple options with
+# spaces, in which case a suitable option will be chosen. If unset or set to
+# anything else, defaults to using "/dev/urandom".
+#
# Define NEEDS_MODE_TRANSLATION if your OS strays from the typical file type
# bits in mode values (e.g. z/OS defines I_SFMT to 0xFF000000 as opposed to the
# usual 0xF000).
@@ -256,8 +267,6 @@ all::
#
# Define NO_DEFLATE_BOUND if your zlib does not have deflateBound.
#
-# Define NO_UNCOMPRESS2 if your zlib does not have uncompress2.
-#
# Define NO_NORETURN if using buggy versions of gcc 4.6+ and profile feedback,
# as the compiler can crash (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49299)
#
@@ -405,6 +414,8 @@ all::
#
# Define HAVE_CLOCK_MONOTONIC if your platform has CLOCK_MONOTONIC.
#
+# Define HAVE_SYNC_FILE_RANGE if your platform has sync_file_range.
+#
# Define NEEDS_LIBRT if your platform requires linking with librt (glibc version
# before 2.17) for clock_gettime and CLOCK_MONOTONIC.
#
@@ -464,6 +475,11 @@ all::
# directory, and the JSON compilation database 'compile_commands.json' will be
# created at the root of the repository.
#
+# If your platform supports a built-in fsmonitor backend, set
+# FSMONITOR_DAEMON_BACKEND to the "<name>" of the corresponding
+# `compat/fsmonitor/fsm-listen-<name>.c` that implements the
+# `fsm_listen__*()` routines.
+#
# Define DEVELOPER to enable more compiler warnings. Compiler version
# and family are auto detected, but could be overridden by defining
# COMPILER_FEATURES (see config.mak.dev). You can still set
@@ -693,6 +709,7 @@ TEST_BUILTINS_OBJS += test-bloom.o
TEST_BUILTINS_OBJS += test-chmtime.o
TEST_BUILTINS_OBJS += test-config.o
TEST_BUILTINS_OBJS += test-crontab.o
+TEST_BUILTINS_OBJS += test-csprng.o
TEST_BUILTINS_OBJS += test-ctype.o
TEST_BUILTINS_OBJS += test-date.o
TEST_BUILTINS_OBJS += test-delta.o
@@ -704,6 +721,7 @@ TEST_BUILTINS_OBJS += test-dump-split-index.o
TEST_BUILTINS_OBJS += test-dump-untracked-cache.o
TEST_BUILTINS_OBJS += test-example-decorate.o
TEST_BUILTINS_OBJS += test-fast-rebase.o
+TEST_BUILTINS_OBJS += test-fsmonitor-client.o
TEST_BUILTINS_OBJS += test-genrandom.o
TEST_BUILTINS_OBJS += test-genzeros.o
TEST_BUILTINS_OBJS += test-getcwd.o
@@ -823,12 +841,33 @@ GENERATED_H += hook-list.h
.PHONY: generated-hdrs
generated-hdrs: $(GENERATED_H)
-LIB_H := $(sort $(patsubst ./%,%,$(shell git ls-files '*.h' ':!t/' ':!Documentation/' 2>/dev/null || \
+## Exhaustive lists of our source files, either dynamically generated,
+## or hardcoded.
+SOURCES_CMD = ( \
+ git ls-files \
+ '*.[hcS]' \
+ '*.sh' \
+ ':!*[tp][0-9][0-9][0-9][0-9]*' \
+ ':!contrib' \
+ 2>/dev/null || \
$(FIND) . \
- -name .git -prune -o \
- -name t -prune -o \
- -name Documentation -prune -o \
- -name '*.h' -print)))
+ \( -name .git -type d -prune \) \
+ -o \( -name '[tp][0-9][0-9][0-9][0-9]*' -prune \) \
+ -o \( -name contrib -type d -prune \) \
+ -o \( -name build -type d -prune \) \
+ -o \( -name 'trash*' -type d -prune \) \
+ -o \( -name '*.[hcS]' -type f -print \) \
+ -o \( -name '*.sh' -type f -print \) \
+ | sed -e 's|^\./||' \
+ )
+FOUND_SOURCE_FILES := $(shell $(SOURCES_CMD))
+
+FOUND_C_SOURCES = $(filter %.c,$(FOUND_SOURCE_FILES))
+FOUND_H_SOURCES = $(filter %.h,$(FOUND_SOURCE_FILES))
+
+COCCI_SOURCES = $(filter-out $(THIRD_PARTY_SOURCES),$(FOUND_C_SOURCES))
+
+LIB_H = $(FOUND_H_SOURCES)
LIB_OBJS += abspath.o
LIB_OBJS += add-interactive.o
@@ -862,6 +901,7 @@ LIB_OBJS += commit-reach.o
LIB_OBJS += commit.o
LIB_OBJS += compat/obstack.o
LIB_OBJS += compat/terminal.o
+LIB_OBJS += compat/zlib-uncompress2.o
LIB_OBJS += config.o
LIB_OBJS += connect.o
LIB_OBJS += connected.o
@@ -899,6 +939,8 @@ LIB_OBJS += fetch-pack.o
LIB_OBJS += fmt-merge-msg.o
LIB_OBJS += fsck.o
LIB_OBJS += fsmonitor.o
+LIB_OBJS += fsmonitor-ipc.o
+LIB_OBJS += fsmonitor-settings.o
LIB_OBJS += gettext.o
LIB_OBJS += gpg-interface.o
LIB_OBJS += graph.o
@@ -981,6 +1023,7 @@ LIB_OBJS += rebase-interactive.o
LIB_OBJS += rebase.o
LIB_OBJS += ref-filter.o
LIB_OBJS += reflog-walk.o
+LIB_OBJS += reflog.o
LIB_OBJS += refs.o
LIB_OBJS += refs/debug.o
LIB_OBJS += refs/files-backend.o
@@ -1104,11 +1147,13 @@ BUILTIN_OBJS += builtin/fmt-merge-msg.o
BUILTIN_OBJS += builtin/for-each-ref.o
BUILTIN_OBJS += builtin/for-each-repo.o
BUILTIN_OBJS += builtin/fsck.o
+BUILTIN_OBJS += builtin/fsmonitor--daemon.o
BUILTIN_OBJS += builtin/gc.o
BUILTIN_OBJS += builtin/get-tar-commit-id.o
BUILTIN_OBJS += builtin/grep.o
BUILTIN_OBJS += builtin/hash-object.o
BUILTIN_OBJS += builtin/help.o
+BUILTIN_OBJS += builtin/hook.o
BUILTIN_OBJS += builtin/index-pack.o
BUILTIN_OBJS += builtin/init-db.o
BUILTIN_OBJS += builtin/interpret-trailers.o
@@ -1194,7 +1239,8 @@ THIRD_PARTY_SOURCES += compat/regex/%
THIRD_PARTY_SOURCES += sha1collisiondetection/%
THIRD_PARTY_SOURCES += sha1dc/%
-GITLIBS = common-main.o $(LIB_FILE) $(XDIFF_LIB) $(REFTABLE_LIB)
+# xdiff and reftable libs may in turn depend on what is in libgit.a
+GITLIBS = common-main.o $(LIB_FILE) $(XDIFF_LIB) $(REFTABLE_LIB) $(LIB_FILE)
EXTLIBS =
GIT_USER_AGENT = git/$(GIT_VERSION)
@@ -1221,8 +1267,9 @@ PTHREAD_CFLAGS =
SPARSE_FLAGS ?= -std=gnu99
SP_EXTRA_FLAGS = -Wno-universal-initializer
-# For informing GIT-BUILD-OPTIONS of the SANITIZE=leak target
+# For informing GIT-BUILD-OPTIONS of the SANITIZE=leak,address targets
SANITIZE_LEAK =
+SANITIZE_ADDRESS =
# For the 'coccicheck' target; setting SPATCH_BATCH_SIZE higher will
# usually result in less CPU usage at the cost of higher peak memory.
@@ -1255,10 +1302,6 @@ endif
ALL_CFLAGS = $(DEVELOPER_CFLAGS) $(CPPFLAGS) $(CFLAGS)
ALL_LDFLAGS = $(LDFLAGS)
-comma := ,
-empty :=
-space := $(empty) $(empty)
-
ifdef SANITIZE
SANITIZERS := $(foreach flag,$(subst $(comma),$(space),$(SANITIZE)),$(flag))
BASIC_CFLAGS += -fsanitize=$(SANITIZE) -fno-sanitize-recover=$(SANITIZE)
@@ -1272,6 +1315,7 @@ SANITIZE_LEAK = YesCompiledWithIt
endif
ifneq ($(filter address,$(SANITIZERS)),)
NO_REGEX = NeededForASAN
+SANITIZE_ADDRESS = YesCompiledWithIt
endif
endif
@@ -1726,11 +1770,6 @@ ifdef NO_DEFLATE_BOUND
BASIC_CFLAGS += -DNO_DEFLATE_BOUND
endif
-ifdef NO_UNCOMPRESS2
- BASIC_CFLAGS += -DNO_UNCOMPRESS2
- REFTABLE_OBJS += compat/zlib-uncompress2.o
-endif
-
ifdef NO_POSIX_GOODIES
BASIC_CFLAGS += -DNO_POSIX_GOODIES
endif
@@ -1892,6 +1931,10 @@ ifdef HAVE_CLOCK_MONOTONIC
BASIC_CFLAGS += -DHAVE_CLOCK_MONOTONIC
endif
+ifdef HAVE_SYNC_FILE_RANGE
+ BASIC_CFLAGS += -DHAVE_SYNC_FILE_RANGE
+endif
+
ifdef NEEDS_LIBRT
EXTLIBS += -lrt
endif
@@ -1908,6 +1951,32 @@ ifdef HAVE_GETDELIM
BASIC_CFLAGS += -DHAVE_GETDELIM
endif
+ifneq ($(findstring arc4random,$(CSPRNG_METHOD)),)
+ BASIC_CFLAGS += -DHAVE_ARC4RANDOM
+endif
+
+ifneq ($(findstring libbsd,$(CSPRNG_METHOD)),)
+ BASIC_CFLAGS += -DHAVE_ARC4RANDOM_LIBBSD
+ EXTLIBS += -lbsd
+endif
+
+ifneq ($(findstring getrandom,$(CSPRNG_METHOD)),)
+ BASIC_CFLAGS += -DHAVE_GETRANDOM
+endif
+
+ifneq ($(findstring getentropy,$(CSPRNG_METHOD)),)
+ BASIC_CFLAGS += -DHAVE_GETENTROPY
+endif
+
+ifneq ($(findstring rtlgenrandom,$(CSPRNG_METHOD)),)
+ BASIC_CFLAGS += -DHAVE_RTLGENRANDOM
+endif
+
+ifneq ($(findstring openssl,$(CSPRNG_METHOD)),)
+ BASIC_CFLAGS += -DHAVE_OPENSSL_CSPRNG
+ EXTLIBS += -lcrypto -lssl
+endif
+
ifneq ($(PROCFS_EXECUTABLE_PATH),)
procfs_executable_path_SQ = $(subst ','\'',$(PROCFS_EXECUTABLE_PATH))
BASIC_CFLAGS += '-DPROCFS_EXECUTABLE_PATH="$(procfs_executable_path_SQ)"'
@@ -1935,6 +2004,11 @@ ifdef NEED_ACCESS_ROOT_HANDLER
COMPAT_OBJS += compat/access.o
endif
+ifdef FSMONITOR_DAEMON_BACKEND
+ COMPAT_CFLAGS += -DHAVE_FSMONITOR_DAEMON_BACKEND
+ COMPAT_OBJS += compat/fsmonitor/fsm-listen-$(FSMONITOR_DAEMON_BACKEND).o
+endif
+
ifeq ($(TCLTK_PATH),)
NO_TCLTK = NoThanks
endif
@@ -1951,39 +2025,6 @@ ifndef PAGER_ENV
PAGER_ENV = LESS=FRX LV=-c
endif
-QUIET_SUBDIR0 = +$(MAKE) -C # space to separate -C and subdir
-QUIET_SUBDIR1 =
-
-ifneq ($(findstring w,$(MAKEFLAGS)),w)
-PRINT_DIR = --no-print-directory
-else # "make -w"
-NO_SUBDIR = :
-endif
-
-ifneq ($(findstring s,$(MAKEFLAGS)),s)
-ifndef V
- QUIET_CC = @echo ' ' CC $@;
- QUIET_AR = @echo ' ' AR $@;
- QUIET_LINK = @echo ' ' LINK $@;
- QUIET_BUILT_IN = @echo ' ' BUILTIN $@;
- QUIET_GEN = @echo ' ' GEN $@;
- QUIET_LNCP = @echo ' ' LN/CP $@;
- QUIET_XGETTEXT = @echo ' ' XGETTEXT $@;
- QUIET_MSGFMT = @echo ' ' MSGFMT $@;
- QUIET_GCOV = @echo ' ' GCOV $@;
- QUIET_SP = @echo ' ' SP $<;
- QUIET_HDR = @echo ' ' HDR $(<:hcc=h);
- QUIET_RC = @echo ' ' RC $@;
- QUIET_SPATCH = @echo ' ' SPATCH $<;
- QUIET_SUBDIR0 = +@subdir=
- QUIET_SUBDIR1 = ;$(NO_SUBDIR) echo ' ' SUBDIR $$subdir; \
- $(MAKE) $(PRINT_DIR) -C $$subdir
- export V
- export QUIET_GEN
- export QUIET_BUILT_IN
-endif
-endif
-
ifdef NO_INSTALL_HARDLINKS
export NO_INSTALL_HARDLINKS
endif
@@ -2164,16 +2205,6 @@ shell_compatibility_test: please_set_SHELL_PATH_to_a_more_modern_shell
strip: $(PROGRAMS) git$X
$(STRIP) $(STRIP_OPTS) $^
-### Flags affecting all rules
-
-# A GNU make extension since gmake 3.72 (released in late 1994) to
-# remove the target of rules if commands in those rules fail. The
-# default is to only do that if make itself receives a signal. Affects
-# all targets, see:
-#
-# info make --index-search=.DELETE_ON_ERROR
-.DELETE_ON_ERROR:
-
### Target-specific flags and dependencies
# The generic compilation pattern rule and automatically
@@ -2536,8 +2567,6 @@ ASM_SRC := $(wildcard $(OBJECTS:o=S))
ASM_OBJ := $(ASM_SRC:S=o)
C_OBJ := $(filter-out $(ASM_OBJ),$(OBJECTS))
-.SUFFIXES:
-
$(C_OBJ): %.o: %.c GIT-CFLAGS $(missing_dep_dirs) $(missing_compdb_dir)
$(QUIET_CC)$(CC) -o $*.o -c $(dep_args) $(compdb_args) $(ALL_CFLAGS) $(EXTRA_CPPFLAGS) $<
$(ASM_OBJ): %.o: %.S GIT-CFLAGS $(missing_dep_dirs) $(missing_compdb_dir)
@@ -2740,7 +2769,8 @@ all:: $(MOFILES)
endif
po/build/locale/%/LC_MESSAGES/git.mo: po/%.po
- $(QUIET_MSGFMT)mkdir -p $(dir $@) && $(MSGFMT) -o $@ $<
+ $(call mkdir_p_parent_template)
+ $(QUIET_MSGFMT)$(MSGFMT) -o $@ $<
LIB_PERL := $(wildcard perl/Git.pm perl/Git/*.pm perl/Git/*/*.pm perl/Git/*/*/*.pm)
LIB_PERL_GEN := $(patsubst perl/%.pm,perl/build/lib/%.pm,$(LIB_PERL))
@@ -2756,35 +2786,16 @@ NO_PERL_CPAN_FALLBACKS_SQ = $(subst ','\'',$(NO_PERL_CPAN_FALLBACKS))
endif
perl/build/lib/%.pm: perl/%.pm GIT-PERL-DEFINES
- $(QUIET_GEN)mkdir -p $(dir $@) && \
+ $(call mkdir_p_parent_template)
+ $(QUIET_GEN) \
sed -e 's|@@LOCALEDIR@@|$(perl_localedir_SQ)|g' \
-e 's|@@NO_GETTEXT@@|$(NO_GETTEXT_SQ)|g' \
-e 's|@@NO_PERL_CPAN_FALLBACKS@@|$(NO_PERL_CPAN_FALLBACKS_SQ)|g' \
< $< > $@
perl/build/man/man3/Git.3pm: perl/Git.pm
- $(QUIET_GEN)mkdir -p $(dir $@) && \
- pod2man $< $@
-
-FIND_SOURCE_FILES = ( \
- git ls-files \
- '*.[hcS]' \
- '*.sh' \
- ':!*[tp][0-9][0-9][0-9][0-9]*' \
- ':!contrib' \
- 2>/dev/null || \
- $(FIND) . \
- \( -name .git -type d -prune \) \
- -o \( -name '[tp][0-9][0-9][0-9][0-9]*' -prune \) \
- -o \( -name contrib -type d -prune \) \
- -o \( -name build -type d -prune \) \
- -o \( -name 'trash*' -type d -prune \) \
- -o \( -name '*.[hcS]' -type f -print \) \
- -o \( -name '*.sh' -type f -print \) \
- | sed -e 's|^\./||' \
- )
-
-FOUND_SOURCE_FILES = $(shell $(FIND_SOURCE_FILES))
+ $(call mkdir_p_parent_template)
+ $(QUIET_GEN)pod2man $< $@
$(ETAGS_TARGET): $(FOUND_SOURCE_FILES)
$(QUIET_GEN)$(RM) $@+ && \
@@ -2853,7 +2864,11 @@ GIT-BUILD-OPTIONS: FORCE
@echo PAGER_ENV=\''$(subst ','\'',$(subst ','\'',$(PAGER_ENV)))'\' >>$@+
@echo DC_SHA1=\''$(subst ','\'',$(subst ','\'',$(DC_SHA1)))'\' >>$@+
@echo SANITIZE_LEAK=\''$(subst ','\'',$(subst ','\'',$(SANITIZE_LEAK)))'\' >>$@+
+ @echo SANITIZE_ADDRESS=\''$(subst ','\'',$(subst ','\'',$(SANITIZE_ADDRESS)))'\' >>$@+
@echo X=\'$(X)\' >>$@+
+ifdef FSMONITOR_DAEMON_BACKEND
+ @echo FSMONITOR_DAEMON_BACKEND=\''$(subst ','\'',$(subst ','\'',$(FSMONITOR_DAEMON_BACKEND)))'\' >>$@+
+endif
ifdef TEST_OUTPUT_DIRECTORY
@echo TEST_OUTPUT_DIRECTORY=\''$(subst ','\'',$(subst ','\'',$(TEST_OUTPUT_DIRECTORY)))'\' >>$@+
endif
@@ -2918,7 +2933,7 @@ test_bindir_programs := $(patsubst %,bin-wrappers/%,$(BINDIR_PROGRAMS_NEED_X) $(
all:: $(TEST_PROGRAMS) $(test_bindir_programs)
bin-wrappers/%: wrap-for-bin.sh
- @mkdir -p bin-wrappers
+ $(call mkdir_p_parent_template)
$(QUIET_GEN)sed -e '1s|#!.*/sh|#!$(SHELL_PATH_SQ)|' \
-e 's|@@BUILD_DIR@@|$(shell pwd)|' \
-e 's|@@PROG@@|$(patsubst test-%,t/helper/test-%$(X),$(@F))$(patsubst git%,$(X),$(filter $(@F),$(BINDIR_PROGRAMS_NEED_X)))|' < $< > $@ && \
@@ -2995,9 +3010,6 @@ check: $(GENERATED_H)
exit 1; \
fi
-FOUND_C_SOURCES = $(filter %.c,$(FOUND_SOURCE_FILES))
-COCCI_SOURCES = $(filter-out $(THIRD_PARTY_SOURCES),$(FOUND_C_SOURCES))
-
%.cocci.patch: %.cocci $(COCCI_SOURCES)
$(QUIET_SPATCH) \
if test $(SPATCH_BATCH_SIZE) = 0; then \
diff --git a/README.md b/README.md
index f6f43e78de..7ce4f05bae 100644
--- a/README.md
+++ b/README.md
@@ -32,10 +32,16 @@ installed).
The user discussion and development of Git take place on the Git
mailing list -- everyone is welcome to post bug reports, feature
requests, comments and patches to git@vger.kernel.org (read
-[Documentation/SubmittingPatches][] for instructions on patch submission).
+[Documentation/SubmittingPatches][] for instructions on patch submission
+and [Documentation/CodingGuidelines][]).
+
+Those wishing to help with error message, usage and informational message
+string translations (localization l10) should see [po/README.md][]
+(a `po` file is a Portable Object file that holds the translations).
+
To subscribe to the list, send an email with just "subscribe git" in
-the body to majordomo@vger.kernel.org. The mailing list archives are
-available at <https://lore.kernel.org/git/>,
+the body to majordomo@vger.kernel.org (not the Git list). The mailing
+list archives are available at <https://lore.kernel.org/git/>,
<http://marc.info/?l=git> and other archival sites.
Issues which are security relevant should be disclosed privately to
@@ -64,3 +70,5 @@ and the name as (depending on your mood):
[Documentation/giteveryday.txt]: Documentation/giteveryday.txt
[Documentation/gitcvs-migration.txt]: Documentation/gitcvs-migration.txt
[Documentation/SubmittingPatches]: Documentation/SubmittingPatches
+[Documentation/CodingGuidelines]: Documentation/CodingGuidelines
+[po/README.md]: po/README.md
diff --git a/RelNotes b/RelNotes
index e271ea5958..51144b6e83 120000
--- a/RelNotes
+++ b/RelNotes
@@ -1 +1 @@
-Documentation/RelNotes/2.35.3.txt \ No newline at end of file
+Documentation/RelNotes/2.37.0.txt \ No newline at end of file
diff --git a/add-interactive.c b/add-interactive.c
index 6498ae196f..7247210301 100644
--- a/add-interactive.c
+++ b/add-interactive.c
@@ -70,6 +70,8 @@ void init_add_i_state(struct add_i_state *s, struct repository *r)
&s->interactive_diff_algorithm);
git_config_get_bool("interactive.singlekey", &s->use_single_key);
+ if (s->use_single_key)
+ setbuf(stdin, NULL);
}
void clear_add_i_state(struct add_i_state *s)
@@ -797,14 +799,14 @@ static int run_revert(struct add_i_state *s, const struct pathspec *ps,
diffopt.flags.override_submodule_config = 1;
diffopt.repo = s->r;
- if (do_diff_cache(&oid, &diffopt))
+ if (do_diff_cache(&oid, &diffopt)) {
+ diff_free(&diffopt);
res = -1;
- else {
+ } else {
diffcore_std(&diffopt);
diff_flush(&diffopt);
}
free(paths);
- clear_pathspec(&diffopt.pathspec);
if (!res && write_locked_index(s->r->index, &index_lock,
COMMIT_LOCK) < 0)
diff --git a/add-patch.c b/add-patch.c
index 573eef0cc4..55d719f784 100644
--- a/add-patch.c
+++ b/add-patch.c
@@ -383,6 +383,17 @@ static int is_octal(const char *p, size_t len)
return 1;
}
+static void complete_file(char marker, struct hunk *hunk)
+{
+ if (marker == '-' || marker == '+')
+ /*
+ * Last hunk ended in non-context line (i.e. it
+ * appended lines to the file, so there are no
+ * trailing context lines).
+ */
+ hunk->splittable_into++;
+}
+
static int parse_diff(struct add_p_state *s, const struct pathspec *ps)
{
struct strvec args = STRVEC_INIT;
@@ -472,6 +483,7 @@ static int parse_diff(struct add_p_state *s, const struct pathspec *ps)
eol = pend;
if (starts_with(p, "diff ")) {
+ complete_file(marker, hunk);
ALLOC_GROW_BY(s->file_diff, s->file_diff_nr, 1,
file_diff_alloc);
file_diff = s->file_diff + s->file_diff_nr - 1;
@@ -598,13 +610,7 @@ static int parse_diff(struct add_p_state *s, const struct pathspec *ps)
file_diff->hunk->colored_end = hunk->colored_end;
}
}
-
- if (marker == '-' || marker == '+')
- /*
- * Last hunk ended in non-context line (i.e. it appended lines
- * to the file, so there are no trailing context lines).
- */
- hunk->splittable_into++;
+ complete_file(marker, hunk);
/* non-colored shorter than colored? */
if (colored_p != colored_pend) {
diff --git a/advice.c b/advice.c
index 1dfc91d176..6fda9edbc2 100644
--- a/advice.c
+++ b/advice.c
@@ -39,9 +39,11 @@ static struct {
[ADVICE_ADD_EMPTY_PATHSPEC] = { "addEmptyPathspec", 1 },
[ADVICE_ADD_IGNORED_FILE] = { "addIgnoredFile", 1 },
[ADVICE_AM_WORK_DIR] = { "amWorkDir", 1 },
+ [ADVICE_AMBIGUOUS_FETCH_REFSPEC] = { "ambiguousFetchRefspec", 1 },
[ADVICE_CHECKOUT_AMBIGUOUS_REMOTE_BRANCH_NAME] = { "checkoutAmbiguousRemoteBranchName", 1 },
[ADVICE_COMMIT_BEFORE_MERGE] = { "commitBeforeMerge", 1 },
[ADVICE_DETACHED_HEAD] = { "detachedHead", 1 },
+ [ADVICE_SUGGEST_DETACHING_HEAD] = { "suggestDetachingHead", 1 },
[ADVICE_FETCH_SHOW_FORCED_UPDATES] = { "fetchShowForcedUpdates", 1 },
[ADVICE_GRAFT_FILE_DEPRECATED] = { "graftFileDeprecated", 1 },
[ADVICE_IGNORED_HOOK] = { "ignoredHook", 1 },
@@ -60,7 +62,7 @@ static struct {
[ADVICE_PUSH_NON_FF_MATCHING] = { "pushNonFFMatching", 1 },
[ADVICE_PUSH_UNQUALIFIED_REF_NAME] = { "pushUnqualifiedRefName", 1 },
[ADVICE_PUSH_UPDATE_REJECTED] = { "pushUpdateRejected", 1 },
- [ADVICE_RESET_QUIET_WARNING] = { "resetQuiet", 1 },
+ [ADVICE_RESET_NO_REFRESH_WARNING] = { "resetNoRefresh", 1 },
[ADVICE_RESOLVE_CONFLICT] = { "resolveConflict", 1 },
[ADVICE_RM_HINTS] = { "rmHints", 1 },
[ADVICE_SEQUENCER_IN_USE] = { "sequencerInUse", 1 },
@@ -70,6 +72,7 @@ static struct {
[ADVICE_STATUS_HINTS] = { "statusHints", 1 },
[ADVICE_STATUS_U_OPTION] = { "statusUoption", 1 },
[ADVICE_SUBMODULE_ALTERNATE_ERROR_STRATEGY_DIE] = { "submoduleAlternateErrorStrategyDie", 1 },
+ [ADVICE_SUBMODULES_NOT_UPDATED] = { "submodulesNotUpdated", 1 },
[ADVICE_UPDATE_SPARSE_PATH] = { "updateSparsePath", 1 },
[ADVICE_WAITING_FOR_EDITOR] = { "waitingForEditor", 1 },
};
diff --git a/advice.h b/advice.h
index 601265fd10..7ddc6cbc1a 100644
--- a/advice.h
+++ b/advice.h
@@ -17,9 +17,11 @@ struct string_list;
ADVICE_ADD_EMPTY_PATHSPEC,
ADVICE_ADD_IGNORED_FILE,
ADVICE_AM_WORK_DIR,
+ ADVICE_AMBIGUOUS_FETCH_REFSPEC,
ADVICE_CHECKOUT_AMBIGUOUS_REMOTE_BRANCH_NAME,
ADVICE_COMMIT_BEFORE_MERGE,
ADVICE_DETACHED_HEAD,
+ ADVICE_SUGGEST_DETACHING_HEAD,
ADVICE_FETCH_SHOW_FORCED_UPDATES,
ADVICE_GRAFT_FILE_DEPRECATED,
ADVICE_IGNORED_HOOK,
@@ -35,7 +37,7 @@ struct string_list;
ADVICE_PUSH_UPDATE_REJECTED_ALIAS,
ADVICE_PUSH_UPDATE_REJECTED,
ADVICE_PUSH_REF_NEEDS_UPDATE,
- ADVICE_RESET_QUIET_WARNING,
+ ADVICE_RESET_NO_REFRESH_WARNING,
ADVICE_RESOLVE_CONFLICT,
ADVICE_RM_HINTS,
ADVICE_SEQUENCER_IN_USE,
@@ -44,6 +46,7 @@ struct string_list;
ADVICE_STATUS_HINTS,
ADVICE_STATUS_U_OPTION,
ADVICE_SUBMODULE_ALTERNATE_ERROR_STRATEGY_DIE,
+ ADVICE_SUBMODULES_NOT_UPDATED,
ADVICE_UPDATE_SPARSE_PATH,
ADVICE_WAITING_FOR_EDITOR,
ADVICE_SKIPPED_CHERRY_PICKS,
diff --git a/alloc.c b/alloc.c
index 957a0af362..27f697e4c8 100644
--- a/alloc.c
+++ b/alloc.c
@@ -27,7 +27,6 @@ union any_object {
};
struct alloc_state {
- int count; /* total number of nodes allocated */
int nr; /* number of nodes left in current allocation */
void *p; /* first free node in current allocation */
@@ -63,7 +62,6 @@ static inline void *alloc_node(struct alloc_state *s, size_t node_size)
s->slabs[s->slab_nr++] = s->p;
}
s->nr--;
- s->count++;
ret = s->p;
s->p = (char *)s->p + node_size;
memset(ret, 0, node_size);
@@ -122,22 +120,3 @@ void *alloc_commit_node(struct repository *r)
init_commit_node(c);
return c;
}
-
-static void report(const char *name, unsigned int count, size_t size)
-{
- fprintf(stderr, "%10s: %8u (%"PRIuMAX" kB)\n",
- name, count, (uintmax_t) size);
-}
-
-#define REPORT(name, type) \
- report(#name, r->parsed_objects->name##_state->count, \
- r->parsed_objects->name##_state->count * sizeof(type) >> 10)
-
-void alloc_report(struct repository *r)
-{
- REPORT(blob, struct blob);
- REPORT(tree, struct tree);
- REPORT(commit, struct commit);
- REPORT(tag, struct tag);
- REPORT(object, union any_object);
-}
diff --git a/alloc.h b/alloc.h
index 371d388b55..3f4a0ad310 100644
--- a/alloc.h
+++ b/alloc.h
@@ -13,7 +13,6 @@ 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);
-void alloc_report(struct repository *r);
struct alloc_state *allocate_alloc_state(void);
void clear_alloc_state(struct alloc_state *s);
diff --git a/apply.c b/apply.c
index 267126132d..2b7cd930ef 100644
--- a/apply.c
+++ b/apply.c
@@ -103,7 +103,8 @@ int init_apply_state(struct apply_state *state,
state->linenr = 1;
string_list_init_nodup(&state->fn_table);
string_list_init_nodup(&state->limit_by_name);
- string_list_init_nodup(&state->symlink_changes);
+ strset_init(&state->removed_symlinks);
+ strset_init(&state->kept_symlinks);
strbuf_init(&state->root, 0);
git_apply_config();
@@ -117,7 +118,8 @@ int init_apply_state(struct apply_state *state,
void clear_apply_state(struct apply_state *state)
{
string_list_clear(&state->limit_by_name, 0);
- string_list_clear(&state->symlink_changes, 0);
+ strset_clear(&state->removed_symlinks);
+ strset_clear(&state->kept_symlinks);
strbuf_release(&state->root);
/* &state->fn_table is cleared at the end of apply_patch() */
@@ -217,13 +219,18 @@ static void free_fragment_list(struct fragment *list)
}
}
-static void free_patch(struct patch *patch)
+void release_patch(struct patch *patch)
{
free_fragment_list(patch->fragments);
free(patch->def_name);
free(patch->old_name);
free(patch->new_name);
free(patch->result);
+}
+
+static void free_patch(struct patch *patch)
+{
+ release_patch(patch);
free(patch);
}
@@ -3157,7 +3164,7 @@ static int apply_binary(struct apply_state *state,
* See if the old one matches what the patch
* applies to.
*/
- hash_object_file(the_hash_algo, img->buf, img->len, blob_type,
+ hash_object_file(the_hash_algo, img->buf, img->len, OBJ_BLOB,
&oid);
if (strcmp(oid_to_hex(&oid), patch->old_oid_prefix))
return error(_("the patch applies to '%s' (%s), "
@@ -3203,7 +3210,7 @@ static int apply_binary(struct apply_state *state,
name);
/* verify that the result matches */
- hash_object_file(the_hash_algo, img->buf, img->len, blob_type,
+ hash_object_file(the_hash_algo, img->buf, img->len, OBJ_BLOB,
&oid);
if (strcmp(oid_to_hex(&oid), patch->new_oid_prefix))
return error(_("binary patch to '%s' creates incorrect result (expecting %s, got %s)"),
@@ -3492,7 +3499,7 @@ static int three_way_merge(struct apply_state *state,
{
mmfile_t base_file, our_file, their_file;
mmbuffer_t result = { NULL };
- int status;
+ enum ll_merge_result status;
/* resolve trivial cases first */
if (oideq(base, ours))
@@ -3509,6 +3516,9 @@ static int three_way_merge(struct apply_state *state,
&their_file, "theirs",
state->repo->index,
NULL);
+ if (status == LL_MERGE_BINARY_CONFLICT)
+ warning("Cannot merge binary files: %s (%s vs. %s)",
+ path, "ours", "theirs");
free(base_file.ptr);
free(our_file.ptr);
free(their_file.ptr);
@@ -3589,7 +3599,7 @@ static int try_threeway(struct apply_state *state,
/* Preimage the patch was prepared for */
if (patch->is_new)
- write_object_file("", 0, blob_type, &pre_oid);
+ write_object_file("", 0, OBJ_BLOB, &pre_oid);
else if (get_oid(patch->old_oid_prefix, &pre_oid) ||
read_blob_object(&buf, &pre_oid, patch->old_mode))
return error(_("repository lacks the necessary blob to perform 3-way merge."));
@@ -3605,7 +3615,7 @@ static int try_threeway(struct apply_state *state,
return -1;
}
/* post_oid is theirs */
- write_object_file(tmp_image.buf, tmp_image.len, blob_type, &post_oid);
+ write_object_file(tmp_image.buf, tmp_image.len, OBJ_BLOB, &post_oid);
clear_image(&tmp_image);
/* our_oid is ours */
@@ -3618,7 +3628,7 @@ static int try_threeway(struct apply_state *state,
return error(_("cannot read the current contents of '%s'"),
patch->old_name);
}
- write_object_file(tmp_image.buf, tmp_image.len, blob_type, &our_oid);
+ write_object_file(tmp_image.buf, tmp_image.len, OBJ_BLOB, &our_oid);
clear_image(&tmp_image);
/* in-core three-way merge between post and our using pre as base */
@@ -3814,59 +3824,31 @@ static int check_to_create(struct apply_state *state,
return 0;
}
-static uintptr_t register_symlink_changes(struct apply_state *state,
- const char *path,
- uintptr_t what)
-{
- struct string_list_item *ent;
-
- ent = string_list_lookup(&state->symlink_changes, path);
- if (!ent) {
- ent = string_list_insert(&state->symlink_changes, path);
- ent->util = (void *)0;
- }
- ent->util = (void *)(what | ((uintptr_t)ent->util));
- return (uintptr_t)ent->util;
-}
-
-static uintptr_t check_symlink_changes(struct apply_state *state, const char *path)
-{
- struct string_list_item *ent;
-
- ent = string_list_lookup(&state->symlink_changes, path);
- if (!ent)
- return 0;
- return (uintptr_t)ent->util;
-}
-
static void prepare_symlink_changes(struct apply_state *state, struct patch *patch)
{
for ( ; patch; patch = patch->next) {
if ((patch->old_name && S_ISLNK(patch->old_mode)) &&
(patch->is_rename || patch->is_delete))
/* the symlink at patch->old_name is removed */
- register_symlink_changes(state, patch->old_name, APPLY_SYMLINK_GOES_AWAY);
+ strset_add(&state->removed_symlinks, patch->old_name);
if (patch->new_name && S_ISLNK(patch->new_mode))
/* the symlink at patch->new_name is created or remains */
- register_symlink_changes(state, patch->new_name, APPLY_SYMLINK_IN_RESULT);
+ strset_add(&state->kept_symlinks, patch->new_name);
}
}
static int path_is_beyond_symlink_1(struct apply_state *state, struct strbuf *name)
{
do {
- unsigned int change;
-
while (--name->len && name->buf[name->len] != '/')
; /* scan backwards */
if (!name->len)
break;
name->buf[name->len] = '\0';
- change = check_symlink_changes(state, name->buf);
- if (change & APPLY_SYMLINK_IN_RESULT)
+ if (strset_contains(&state->kept_symlinks, name->buf))
return 1;
- if (change & APPLY_SYMLINK_GOES_AWAY)
+ if (strset_contains(&state->removed_symlinks, name->buf))
/*
* This cannot be "return 0", because we may
* see a new one created at a higher level.
@@ -4346,7 +4328,7 @@ static int add_index_file(struct apply_state *state,
}
fill_stat_cache_info(state->repo->index, ce, &st);
}
- if (write_object_file(buf, size, blob_type, &ce->oid) < 0) {
+ if (write_object_file(buf, size, OBJ_BLOB, &ce->oid) < 0) {
discard_cache_entry(ce);
return error(_("unable to create backing store "
"for newly created file %s"), path);
diff --git a/apply.h b/apply.h
index 16202da160..b9f18ce87d 100644
--- a/apply.h
+++ b/apply.h
@@ -4,6 +4,7 @@
#include "hash.h"
#include "lockfile.h"
#include "string-list.h"
+#include "strmap.h"
struct repository;
@@ -25,20 +26,6 @@ enum apply_verbosity {
verbosity_verbose = 1
};
-/*
- * We need to keep track of how symlinks in the preimage are
- * manipulated by the patches. A patch to add a/b/c where a/b
- * is a symlink should not be allowed to affect the directory
- * the symlink points at, but if the same patch removes a/b,
- * it is perfectly fine, as the patch removes a/b to make room
- * to create a directory a/b so that a/b/c can be created.
- *
- * See also "struct string_list symlink_changes" in "struct
- * apply_state".
- */
-#define APPLY_SYMLINK_GOES_AWAY 01
-#define APPLY_SYMLINK_IN_RESULT 02
-
struct apply_state {
const char *prefix;
@@ -86,7 +73,16 @@ struct apply_state {
/* Various "current state" */
int linenr; /* current line number */
- struct string_list symlink_changes; /* we have to track symlinks */
+ /*
+ * We need to keep track of how symlinks in the preimage are
+ * manipulated by the patches. A patch to add a/b/c where a/b
+ * is a symlink should not be allowed to affect the directory
+ * the symlink points at, but if the same patch removes a/b,
+ * it is perfectly fine, as the patch removes a/b to make room
+ * to create a directory a/b so that a/b/c can be created.
+ */
+ struct strset removed_symlinks;
+ struct strset kept_symlinks;
/*
* For "diff-stat" like behaviour, we keep track of the biggest change
@@ -177,6 +173,8 @@ int parse_git_diff_header(struct strbuf *root,
unsigned int size,
struct patch *patch);
+void release_patch(struct patch *patch);
+
/*
* Some aspects of the apply behavior are controlled by the following
* bits in the "options" parameter passed to apply_all_patches().
diff --git a/archive-tar.c b/archive-tar.c
index 3c74db1746..042feb66d2 100644
--- a/archive-tar.c
+++ b/archive-tar.c
@@ -461,9 +461,9 @@ static int write_tar_filter_archive(const struct archiver *ar,
}
static struct archiver tar_archiver = {
- "tar",
- write_tar_archive,
- ARCHIVER_REMOTE
+ .name = "tar",
+ .write_archive = write_tar_archive,
+ .flags = ARCHIVER_REMOTE,
};
void init_tar_archiver(void)
diff --git a/archive-zip.c b/archive-zip.c
index 2961e01c75..9fe43d740d 100644
--- a/archive-zip.c
+++ b/archive-zip.c
@@ -9,6 +9,7 @@
#include "object-store.h"
#include "userdiff.h"
#include "xdiff-interface.h"
+#include "date.h"
static int zip_date;
static int zip_time;
@@ -637,9 +638,9 @@ static int write_zip_archive(const struct archiver *ar,
}
static struct archiver zip_archiver = {
- "zip",
- write_zip_archive,
- ARCHIVER_WANT_COMPRESSION_LEVELS|ARCHIVER_REMOTE
+ .name = "zip",
+ .write_archive = write_zip_archive,
+ .flags = ARCHIVER_WANT_COMPRESSION_LEVELS|ARCHIVER_REMOTE,
};
void init_zip_archiver(void)
diff --git a/archive.c b/archive.c
index 5068fa8dcc..654ea2a6ed 100644
--- a/archive.c
+++ b/archive.c
@@ -12,7 +12,7 @@
static char const * const archive_usage[] = {
N_("git archive [<options>] <tree-ish> [<path>...]"),
- N_("git archive --list"),
+ "git archive --list",
N_("git archive --remote <repo> [--exec <cmd>] [<options>] <tree-ish> [<path>...]"),
N_("git archive --remote <repo> [--exec <cmd>] --list"),
NULL
diff --git a/attr.c b/attr.c
index 79adaa50ea..21e4ad25ad 100644
--- a/attr.c
+++ b/attr.c
@@ -14,7 +14,6 @@
#include "utf8.h"
#include "quote.h"
#include "thread-utils.h"
-#include "dir.h"
const char git_attr__true[] = "(builtin)true";
const char git_attr__false[] = "\0(builtin)false";
@@ -80,7 +79,7 @@ static int attr_hash_entry_cmp(const void *unused_cmp_data,
* Access to this dictionary must be surrounded with a mutex.
*/
static struct attr_hashmap g_attr_hashmap = {
- HASHMAP_INIT(attr_hash_entry_cmp, NULL)
+ .map = HASHMAP_INIT(attr_hash_entry_cmp, NULL),
};
/*
diff --git a/attr.h b/attr.h
index 3732505eda..3fb40cced0 100644
--- a/attr.h
+++ b/attr.h
@@ -121,7 +121,6 @@ struct git_attr;
/* opaque structures used internally for attribute collection */
struct all_attrs_item;
struct attr_stack;
-struct index_state;
/*
* Given a string, return the gitattribute object that
diff --git a/banned.h b/banned.h
index 7ab4f2e492..6ccf46bc19 100644
--- a/banned.h
+++ b/banned.h
@@ -21,13 +21,8 @@
#undef sprintf
#undef vsprintf
-#ifdef HAVE_VARIADIC_MACROS
#define sprintf(...) BANNED(sprintf)
#define vsprintf(...) BANNED(vsprintf)
-#else
-#define sprintf(buf,fmt,arg) BANNED(sprintf)
-#define vsprintf(buf,fmt,arg) BANNED(vsprintf)
-#endif
#undef gmtime
#define gmtime(t) BANNED(gmtime)
diff --git a/bisect.c b/bisect.c
index 888949fba6..9e6a2b7f20 100644
--- a/bisect.c
+++ b/bisect.c
@@ -724,7 +724,8 @@ static int is_expected_rev(const struct object_id *oid)
return res;
}
-static enum bisect_error bisect_checkout(const struct object_id *bisect_rev, int no_checkout)
+enum bisect_error bisect_checkout(const struct object_id *bisect_rev,
+ int no_checkout)
{
char bisect_rev_hex[GIT_MAX_HEXSZ + 1];
struct commit *commit;
diff --git a/bisect.h b/bisect.h
index ec24ac2d7e..ee3fd65f3b 100644
--- a/bisect.h
+++ b/bisect.h
@@ -3,6 +3,7 @@
struct commit_list;
struct repository;
+struct object_id;
/*
* Find bisection. If something is found, `reaches` will be the number of
@@ -61,6 +62,15 @@ enum bisect_error {
BISECT_INTERNAL_SUCCESS_MERGE_BASE = -11
};
+/*
+ * Stores how many good/bad commits we have stored for a bisect. nr_bad can
+ * only be 0 or 1.
+ */
+struct bisect_state {
+ unsigned int nr_good;
+ unsigned int nr_bad;
+};
+
enum bisect_error bisect_next_all(struct repository *r, const char *prefix);
int estimate_bisect_steps(int all);
@@ -69,4 +79,7 @@ void read_bisect_terms(const char **bad, const char **good);
int bisect_clean_state(void);
+enum bisect_error bisect_checkout(const struct object_id *bisect_rev,
+ int no_checkout);
+
#endif
diff --git a/blame.c b/blame.c
index f9714cc941..da1052ac94 100644
--- a/blame.c
+++ b/blame.c
@@ -1403,7 +1403,6 @@ static struct blame_origin *find_origin(struct repository *r,
}
}
diff_flush(&diff_opts);
- clear_pathspec(&diff_opts.pathspec);
return porigin;
}
@@ -1447,7 +1446,6 @@ static struct blame_origin *find_rename(struct repository *r,
}
}
diff_flush(&diff_opts);
- clear_pathspec(&diff_opts.pathspec);
return porigin;
}
@@ -2328,7 +2326,6 @@ static void find_copy_in_parent(struct blame_scoreboard *sb,
} while (unblamed);
target->suspects = reverse_blame(leftover, NULL);
diff_flush(&diff_opts);
- clear_pathspec(&diff_opts.pathspec);
}
/*
@@ -2615,7 +2612,7 @@ void assign_blame(struct blame_scoreboard *sb, int opt)
else {
commit->object.flags |= UNINTERESTING;
if (commit->object.parsed)
- mark_parents_uninteresting(commit);
+ mark_parents_uninteresting(sb->revs, commit);
}
/* treat root commit as boundary */
if (!commit->parents && !sb->show_root)
diff --git a/block-sha1/sha1.c b/block-sha1/sha1.c
index 1bb6e7c069..5974cd7dd3 100644
--- a/block-sha1/sha1.c
+++ b/block-sha1/sha1.c
@@ -11,27 +11,10 @@
#include "sha1.h"
-#if defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__))
-
-/*
- * Force usage of rol or ror by selecting the one with the smaller constant.
- * It _can_ generate slightly smaller code (a constant of 1 is special), but
- * perhaps more importantly it's possibly faster on any uarch that does a
- * rotate with a loop.
- */
-
-#define SHA_ASM(op, x, n) ({ unsigned int __res; __asm__(op " %1,%0":"=r" (__res):"i" (n), "0" (x)); __res; })
-#define SHA_ROL(x,n) SHA_ASM("rol", x, n)
-#define SHA_ROR(x,n) SHA_ASM("ror", x, n)
-
-#else
-
#define SHA_ROT(X,l,r) (((X) << (l)) | ((X) >> (r)))
#define SHA_ROL(X,n) SHA_ROT(X,n,32-(n))
#define SHA_ROR(X,n) SHA_ROT(X,32-(n),n)
-#endif
-
/*
* If you have 32 registers or more, the compiler can (and should)
* try to change the array[] accesses into registers. However, on
diff --git a/branch.c b/branch.c
index bc46adfa25..d0ca2b76d2 100644
--- a/branch.c
+++ b/branch.c
@@ -8,6 +8,8 @@
#include "sequencer.h"
#include "commit.h"
#include "worktree.h"
+#include "submodule-config.h"
+#include "run-command.h"
struct tracking {
struct refspec_item spec;
@@ -16,17 +18,31 @@ struct tracking {
int matches;
};
+struct find_tracked_branch_cb {
+ struct tracking *tracking;
+ struct string_list ambiguous_remotes;
+};
+
static int find_tracked_branch(struct remote *remote, void *priv)
{
- struct tracking *tracking = priv;
+ struct find_tracked_branch_cb *ftb = priv;
+ struct tracking *tracking = ftb->tracking;
if (!remote_find_tracking(remote, &tracking->spec)) {
- if (++tracking->matches == 1) {
+ switch (++tracking->matches) {
+ case 1:
string_list_append(tracking->srcs, tracking->spec.src);
tracking->remote = remote->name;
- } else {
+ break;
+ case 2:
+ /* there are at least two remotes; backfill the first one */
+ string_list_append(&ftb->ambiguous_remotes, tracking->remote);
+ /* fall through */
+ default:
+ string_list_append(&ftb->ambiguous_remotes, remote->name);
free(tracking->spec.src);
string_list_clear(tracking->srcs, 0);
+ break;
}
tracking->spec.src = NULL;
}
@@ -218,9 +234,11 @@ static int inherit_tracking(struct tracking *tracking, const char *orig_ref)
}
/*
- * This is called when new_ref is branched off of orig_ref, and tries
- * to infer the settings for branch.<new_ref>.{remote,merge} from the
- * config.
+ * Used internally to set the branch.<new_ref>.{remote,merge} config
+ * settings so that branch 'new_ref' tracks 'orig_ref'. Unlike
+ * dwim_and_setup_tracking(), this does not do DWIM, i.e. "origin/main"
+ * will not be expanded to "refs/remotes/origin/main", so it is not safe
+ * for 'orig_ref' to be raw user input.
*/
static void setup_tracking(const char *new_ref, const char *orig_ref,
enum branch_track track, int quiet)
@@ -228,14 +246,21 @@ static void setup_tracking(const char *new_ref, const char *orig_ref,
struct tracking tracking;
struct string_list tracking_srcs = STRING_LIST_INIT_DUP;
int config_flags = quiet ? 0 : BRANCH_CONFIG_VERBOSE;
+ struct find_tracked_branch_cb ftb_cb = {
+ .tracking = &tracking,
+ .ambiguous_remotes = STRING_LIST_INIT_DUP,
+ };
+
+ if (!track)
+ BUG("asked to set up tracking, but tracking is disallowed");
memset(&tracking, 0, sizeof(tracking));
tracking.spec.dst = (char *)orig_ref;
tracking.srcs = &tracking_srcs;
if (track != BRANCH_TRACK_INHERIT)
- for_each_remote(find_tracked_branch, &tracking);
+ for_each_remote(find_tracked_branch, &ftb_cb);
else if (inherit_tracking(&tracking, orig_ref))
- return;
+ goto cleanup;
if (!tracking.matches)
switch (track) {
@@ -245,20 +270,52 @@ static void setup_tracking(const char *new_ref, const char *orig_ref,
case BRANCH_TRACK_INHERIT:
break;
default:
- return;
+ goto cleanup;
}
- if (tracking.matches > 1)
- die(_("not tracking: ambiguous information for ref %s"),
- orig_ref);
+ if (tracking.matches > 1) {
+ int status = die_message(_("not tracking: ambiguous information for ref '%s'"),
+ orig_ref);
+ if (advice_enabled(ADVICE_AMBIGUOUS_FETCH_REFSPEC)) {
+ struct strbuf remotes_advice = STRBUF_INIT;
+ struct string_list_item *item;
+
+ for_each_string_list_item(item, &ftb_cb.ambiguous_remotes)
+ /*
+ * TRANSLATORS: This is a line listing a remote with duplicate
+ * refspecs in the advice message below. For RTL languages you'll
+ * probably want to swap the "%s" and leading " " space around.
+ */
+ strbuf_addf(&remotes_advice, _(" %s\n"), item->string);
+
+ /*
+ * TRANSLATORS: The second argument is a \n-delimited list of
+ * duplicate refspecs, composed above.
+ */
+ advise(_("There are multiple remotes whose fetch refspecs map to the remote\n"
+ "tracking ref '%s':\n"
+ "%s"
+ "\n"
+ "This is typically a configuration error.\n"
+ "\n"
+ "To support setting up tracking branches, ensure that\n"
+ "different remotes' fetch refspecs map into different\n"
+ "tracking namespaces."), orig_ref,
+ remotes_advice.buf);
+ strbuf_release(&remotes_advice);
+ }
+ exit(status);
+ }
if (tracking.srcs->nr < 1)
string_list_append(tracking.srcs, orig_ref);
if (install_branch_config_multiple_remotes(config_flags, new_ref,
tracking.remote, tracking.srcs) < 0)
- exit(-1);
+ exit(1);
- string_list_clear(tracking.srcs, 0);
+cleanup:
+ string_list_clear(&tracking_srcs, 0);
+ string_list_clear(&ftb_cb.ambiguous_remotes, 0);
}
int read_branch_desc(struct strbuf *buf, const char *branch_name)
@@ -346,40 +403,44 @@ N_("\n"
"will track its remote counterpart, you may want to use\n"
"\"git push -u\" to set the upstream config as you push.");
-void create_branch(struct repository *r,
- const char *name, const char *start_name,
- int force, int clobber_head_ok, int reflog,
- int quiet, enum branch_track track)
+/**
+ * DWIMs a user-provided ref to determine the starting point for a
+ * branch and validates it, where:
+ *
+ * - r is the repository to validate the branch for
+ *
+ * - start_name is the ref that we would like to test. This is
+ * expanded with DWIM and assigned to out_real_ref.
+ *
+ * - track is the tracking mode of the new branch. If tracking is
+ * explicitly requested, start_name must be a branch (because
+ * otherwise start_name cannot be tracked)
+ *
+ * - out_oid is an out parameter containing the object_id of start_name
+ *
+ * - out_real_ref is an out parameter containing the full, 'real' form
+ * of start_name e.g. refs/heads/main instead of main
+ *
+ */
+static void dwim_branch_start(struct repository *r, const char *start_name,
+ enum branch_track track, char **out_real_ref,
+ struct object_id *out_oid)
{
struct commit *commit;
struct object_id oid;
char *real_ref;
- struct strbuf ref = STRBUF_INIT;
- int forcing = 0;
- int dont_change_ref = 0;
int explicit_tracking = 0;
if (track == BRANCH_TRACK_EXPLICIT || track == BRANCH_TRACK_OVERRIDE)
explicit_tracking = 1;
- if ((track == BRANCH_TRACK_OVERRIDE || clobber_head_ok)
- ? validate_branchname(name, &ref)
- : validate_new_branchname(name, &ref, force)) {
- if (!force)
- dont_change_ref = 1;
- else
- forcing = 1;
- }
-
real_ref = NULL;
if (get_oid_mb(start_name, &oid)) {
if (explicit_tracking) {
- if (advice_enabled(ADVICE_SET_UPSTREAM_FAILURE)) {
- error(_(upstream_missing), start_name);
- advise(_(upstream_advice));
- exit(1);
- }
- die(_(upstream_missing), start_name);
+ int code = die_message(_(upstream_missing), start_name);
+ advise_if_enabled(ADVICE_SET_UPSTREAM_FAILURE,
+ _(upstream_advice));
+ exit(code);
}
die(_("not a valid object name: '%s'"), start_name);
}
@@ -407,40 +468,240 @@ void create_branch(struct repository *r,
if (!(commit = lookup_commit_reference(r, &oid)))
die(_("not a valid branch point: '%s'"), start_name);
- oidcpy(&oid, &commit->object.oid);
+ if (out_real_ref) {
+ *out_real_ref = real_ref;
+ real_ref = NULL;
+ }
+ if (out_oid)
+ oidcpy(out_oid, &commit->object.oid);
+
+ FREE_AND_NULL(real_ref);
+}
+
+void create_branch(struct repository *r,
+ const char *name, const char *start_name,
+ int force, int clobber_head_ok, int reflog,
+ int quiet, enum branch_track track, int dry_run)
+{
+ struct object_id oid;
+ char *real_ref;
+ struct strbuf ref = STRBUF_INIT;
+ int forcing = 0;
+ struct ref_transaction *transaction;
+ struct strbuf err = STRBUF_INIT;
+ char *msg;
+
+ if (track == BRANCH_TRACK_OVERRIDE)
+ BUG("'track' cannot be BRANCH_TRACK_OVERRIDE. Did you mean to call dwim_and_setup_tracking()?");
+ if (clobber_head_ok && !force)
+ BUG("'clobber_head_ok' can only be used with 'force'");
+
+ if (clobber_head_ok ?
+ validate_branchname(name, &ref) :
+ validate_new_branchname(name, &ref, force)) {
+ forcing = 1;
+ }
+
+ dwim_branch_start(r, start_name, track, &real_ref, &oid);
+ if (dry_run)
+ goto cleanup;
if (reflog)
log_all_ref_updates = LOG_REFS_NORMAL;
- if (!dont_change_ref) {
- struct ref_transaction *transaction;
- struct strbuf err = STRBUF_INIT;
- char *msg;
-
- if (forcing)
- msg = xstrfmt("branch: Reset to %s", start_name);
- else
- msg = xstrfmt("branch: Created from %s", start_name);
-
- transaction = ref_transaction_begin(&err);
- if (!transaction ||
- ref_transaction_update(transaction, ref.buf,
- &oid, forcing ? NULL : null_oid(),
- 0, msg, &err) ||
- ref_transaction_commit(transaction, &err))
- die("%s", err.buf);
- ref_transaction_free(transaction);
- strbuf_release(&err);
- free(msg);
- }
+ if (forcing)
+ msg = xstrfmt("branch: Reset to %s", start_name);
+ else
+ msg = xstrfmt("branch: Created from %s", start_name);
+ transaction = ref_transaction_begin(&err);
+ if (!transaction ||
+ ref_transaction_update(transaction, ref.buf,
+ &oid, forcing ? NULL : null_oid(),
+ 0, msg, &err) ||
+ ref_transaction_commit(transaction, &err))
+ die("%s", err.buf);
+ ref_transaction_free(transaction);
+ strbuf_release(&err);
+ free(msg);
if (real_ref && track)
setup_tracking(ref.buf + 11, real_ref, track, quiet);
+cleanup:
strbuf_release(&ref);
free(real_ref);
}
+void dwim_and_setup_tracking(struct repository *r, const char *new_ref,
+ const char *orig_ref, enum branch_track track,
+ int quiet)
+{
+ char *real_orig_ref;
+ dwim_branch_start(r, orig_ref, track, &real_orig_ref, NULL);
+ setup_tracking(new_ref, real_orig_ref, track, quiet);
+}
+
+/**
+ * Creates a branch in a submodule by calling
+ * create_branches_recursively() in a child process. The child process
+ * is necessary because install_branch_config_multiple_remotes() (which
+ * is called by setup_tracking()) does not support writing configs to
+ * submodules.
+ */
+static int submodule_create_branch(struct repository *r,
+ const struct submodule *submodule,
+ const char *name, const char *start_oid,
+ const char *tracking_name, int force,
+ int reflog, int quiet,
+ enum branch_track track, int dry_run)
+{
+ int ret = 0;
+ struct child_process child = CHILD_PROCESS_INIT;
+ struct strbuf child_err = STRBUF_INIT;
+ struct strbuf out_buf = STRBUF_INIT;
+ char *out_prefix = xstrfmt("submodule '%s': ", submodule->name);
+ child.git_cmd = 1;
+ child.err = -1;
+ child.stdout_to_stderr = 1;
+
+ prepare_other_repo_env(&child.env_array, r->gitdir);
+ /*
+ * submodule_create_branch() is indirectly invoked by "git
+ * branch", but we cannot invoke "git branch" in the child
+ * process. "git branch" accepts a branch name and start point,
+ * where the start point is assumed to provide both the OID
+ * (start_oid) and the branch to use for tracking
+ * (tracking_name). But when recursing through submodules,
+ * start_oid and tracking name need to be specified separately
+ * (see create_branches_recursively()).
+ */
+ strvec_pushl(&child.args, "submodule--helper", "create-branch", NULL);
+ if (dry_run)
+ strvec_push(&child.args, "--dry-run");
+ if (force)
+ strvec_push(&child.args, "--force");
+ if (quiet)
+ strvec_push(&child.args, "--quiet");
+ if (reflog)
+ strvec_push(&child.args, "--create-reflog");
+
+ switch (track) {
+ case BRANCH_TRACK_NEVER:
+ strvec_push(&child.args, "--no-track");
+ break;
+ case BRANCH_TRACK_ALWAYS:
+ case BRANCH_TRACK_EXPLICIT:
+ strvec_push(&child.args, "--track=direct");
+ break;
+ case BRANCH_TRACK_OVERRIDE:
+ BUG("BRANCH_TRACK_OVERRIDE cannot be used when creating a branch.");
+ break;
+ case BRANCH_TRACK_INHERIT:
+ strvec_push(&child.args, "--track=inherit");
+ break;
+ case BRANCH_TRACK_UNSPECIFIED:
+ /* Default for "git checkout". Do not pass --track. */
+ case BRANCH_TRACK_REMOTE:
+ /* Default for "git branch". Do not pass --track. */
+ break;
+ }
+
+ strvec_pushl(&child.args, name, start_oid, tracking_name, NULL);
+
+ if ((ret = start_command(&child)))
+ return ret;
+ ret = finish_command(&child);
+ strbuf_read(&child_err, child.err, 0);
+ strbuf_add_lines(&out_buf, out_prefix, child_err.buf, child_err.len);
+
+ if (ret)
+ fprintf(stderr, "%s", out_buf.buf);
+ else
+ printf("%s", out_buf.buf);
+
+ strbuf_release(&child_err);
+ strbuf_release(&out_buf);
+ return ret;
+}
+
+void create_branches_recursively(struct repository *r, const char *name,
+ const char *start_commitish,
+ const char *tracking_name, int force,
+ int reflog, int quiet, enum branch_track track,
+ int dry_run)
+{
+ int i = 0;
+ char *branch_point = NULL;
+ struct object_id super_oid;
+ struct submodule_entry_list submodule_entry_list;
+
+ /* Perform dwim on start_commitish to get super_oid and branch_point. */
+ dwim_branch_start(r, start_commitish, BRANCH_TRACK_NEVER,
+ &branch_point, &super_oid);
+
+ /*
+ * If we were not given an explicit name to track, then assume we are at
+ * the top level and, just like the non-recursive case, the tracking
+ * name is the branch point.
+ */
+ if (!tracking_name)
+ tracking_name = branch_point;
+
+ submodules_of_tree(r, &super_oid, &submodule_entry_list);
+ /*
+ * Before creating any branches, first check that the branch can
+ * be created in every submodule.
+ */
+ for (i = 0; i < submodule_entry_list.entry_nr; i++) {
+ if (submodule_entry_list.entries[i].repo == NULL) {
+ int code = die_message(
+ _("submodule '%s': unable to find submodule"),
+ submodule_entry_list.entries[i].submodule->name);
+ if (advice_enabled(ADVICE_SUBMODULES_NOT_UPDATED))
+ advise(_("You may try updating the submodules using 'git checkout %s && git submodule update --init'"),
+ start_commitish);
+ exit(code);
+ }
+
+ if (submodule_create_branch(
+ submodule_entry_list.entries[i].repo,
+ submodule_entry_list.entries[i].submodule, name,
+ oid_to_hex(&submodule_entry_list.entries[i]
+ .name_entry->oid),
+ tracking_name, force, reflog, quiet, track, 1))
+ die(_("submodule '%s': cannot create branch '%s'"),
+ submodule_entry_list.entries[i].submodule->name,
+ name);
+ }
+
+ create_branch(the_repository, name, start_commitish, force, 0, reflog, quiet,
+ BRANCH_TRACK_NEVER, dry_run);
+ if (dry_run)
+ return;
+ /*
+ * NEEDSWORK If tracking was set up in the superproject but not the
+ * submodule, users might expect "git branch --recurse-submodules" to
+ * fail or give a warning, but this is not yet implemented because it is
+ * tedious to determine whether or not tracking was set up in the
+ * superproject.
+ */
+ if (track)
+ setup_tracking(name, tracking_name, track, quiet);
+
+ for (i = 0; i < submodule_entry_list.entry_nr; i++) {
+ if (submodule_create_branch(
+ submodule_entry_list.entries[i].repo,
+ submodule_entry_list.entries[i].submodule, name,
+ oid_to_hex(&submodule_entry_list.entries[i]
+ .name_entry->oid),
+ tracking_name, force, reflog, quiet, track, 0))
+ die(_("submodule '%s': cannot create branch '%s'"),
+ submodule_entry_list.entries[i].submodule->name,
+ name);
+ repo_clear(submodule_entry_list.entries[i].repo);
+ }
+}
+
void remove_merge_branch_state(struct repository *r)
{
unlink(git_path_merge_head(r));
diff --git a/branch.h b/branch.h
index 815dcd40c0..04df2aa5b5 100644
--- a/branch.h
+++ b/branch.h
@@ -18,6 +18,28 @@ extern enum branch_track git_branch_track;
/* Functions for acting on the information about branches. */
+/**
+ * Sets branch.<new_ref>.{remote,merge} config settings such that
+ * new_ref tracks orig_ref according to the specified tracking mode.
+ *
+ * - new_ref is the name of the branch that we are setting tracking
+ * for.
+ *
+ * - orig_ref is the name of the ref that is 'upstream' of new_ref.
+ * orig_ref will be expanded with DWIM so that the config settings
+ * are in the correct format e.g. "refs/remotes/origin/main" instead
+ * of "origin/main".
+ *
+ * - track is the tracking mode e.g. BRANCH_TRACK_REMOTE causes
+ * new_ref to track orig_ref directly, whereas BRANCH_TRACK_INHERIT
+ * causes new_ref to track whatever orig_ref tracks.
+ *
+ * - quiet suppresses tracking information.
+ */
+void dwim_and_setup_tracking(struct repository *r, const char *new_ref,
+ const char *orig_ref, enum branch_track track,
+ int quiet);
+
/*
* Creates a new branch, where:
*
@@ -30,8 +52,8 @@ extern enum branch_track git_branch_track;
*
* - force enables overwriting an existing (non-head) branch
*
- * - clobber_head_ok allows the currently checked out (hence existing)
- * branch to be overwritten; without 'force', it has no effect.
+ * - clobber_head_ok, when enabled with 'force', allows the currently
+ * checked out (head) branch to be overwritten
*
* - reflog creates a reflog for the branch
*
@@ -40,13 +62,45 @@ extern enum branch_track git_branch_track;
* - track causes the new branch to be configured to merge the remote branch
* that start_name is a tracking branch for (if any).
*
+ * - dry_run causes the branch to be validated but not created.
+ *
*/
void create_branch(struct repository *r,
const char *name, const char *start_name,
int force, int clobber_head_ok,
- int reflog, int quiet, enum branch_track track);
+ int reflog, int quiet, enum branch_track track,
+ int dry_run);
/*
+ * Creates a new branch in a repository and its submodules (and its
+ * submodules, recursively). The parameters are mostly analogous to
+ * those of create_branch() except for start_name, which is represented
+ * by two different parameters:
+ *
+ * - start_commitish is the commit-ish, in repository r, that determines
+ * which commits the branches will point to. The superproject branch
+ * will point to the commit of start_commitish and the submodule
+ * branches will point to the gitlink commit oids in start_commitish's
+ * tree.
+ *
+ * - tracking_name is the name of the ref, in repository r, that will be
+ * used to set up tracking information. This value is propagated to
+ * all submodules, which will evaluate the ref using their own ref
+ * stores. If NULL, this defaults to start_commitish.
+ *
+ * When this function is called on the superproject, start_commitish
+ * can be any user-provided ref and tracking_name can be NULL (similar
+ * to create_branches()). But when recursing through submodules,
+ * start_commitish is the plain gitlink commit oid. Since the oid cannot
+ * be used for tracking information, tracking_name is propagated and
+ * used for tracking instead.
+ */
+void create_branches_recursively(struct repository *r, const char *name,
+ const char *start_commitish,
+ const char *tracking_name, int force,
+ int reflog, int quiet, enum branch_track track,
+ int dry_run);
+/*
* Check if 'name' can be a valid name for a branch; die otherwise.
* Return 1 if the named branch already exists; return 0 otherwise.
* Fill ref with the full refname for the branch.
diff --git a/builtin.h b/builtin.h
index 8a58743ed6..40e9ecc848 100644
--- a/builtin.h
+++ b/builtin.h
@@ -159,11 +159,13 @@ int cmd_for_each_ref(int argc, const char **argv, const char *prefix);
int cmd_for_each_repo(int argc, const char **argv, const char *prefix);
int cmd_format_patch(int argc, const char **argv, const char *prefix);
int cmd_fsck(int argc, const char **argv, const char *prefix);
+int cmd_fsmonitor__daemon(int argc, const char **argv, const char *prefix);
int cmd_gc(int argc, const char **argv, const char *prefix);
int cmd_get_tar_commit_id(int argc, const char **argv, const char *prefix);
int cmd_grep(int argc, const char **argv, const char *prefix);
int cmd_hash_object(int argc, const char **argv, const char *prefix);
int cmd_help(int argc, const char **argv, const char *prefix);
+int cmd_hook(int argc, const char **argv, const char *prefix);
int cmd_index_pack(int argc, const char **argv, const char *prefix);
int cmd_init_db(int argc, const char **argv, const char *prefix);
int cmd_interpret_trailers(int argc, const char **argv, const char *prefix);
diff --git a/builtin/add.c b/builtin/add.c
index 84dff3e796..3ffb86a433 100644
--- a/builtin/add.c
+++ b/builtin/add.c
@@ -32,7 +32,6 @@ static int add_renormalize;
static int pathspec_file_nul;
static int include_sparse;
static const char *pathspec_from_file;
-static int legacy_stash_p; /* support for the scripted `git stash` */
struct update_callback_data {
int flags;
@@ -388,8 +387,6 @@ static struct option builtin_add_options[] = {
N_("override the executable bit of the listed files")),
OPT_HIDDEN_BOOL(0, "warn-embedded-repo", &warn_on_embedded_repo,
N_("warn when adding an embedded repository")),
- OPT_HIDDEN_BOOL(0, "legacy-stash-p", &legacy_stash_p,
- N_("backend for `git stash -p`")),
OPT_PATHSPEC_FROM_FILE(&pathspec_from_file),
OPT_PATHSPEC_FILE_NUL(&pathspec_file_nul),
OPT_END(),
@@ -512,17 +509,6 @@ int cmd_add(int argc, const char **argv, const char *prefix)
die(_("options '%s' and '%s' cannot be used together"), "--pathspec-from-file", "--interactive/--patch");
exit(interactive_add(argv + 1, prefix, patch_interactive));
}
- if (legacy_stash_p) {
- struct pathspec pathspec;
-
- parse_pathspec(&pathspec, 0,
- PATHSPEC_PREFER_FULL |
- PATHSPEC_SYMLINK_LEADING_PATH |
- PATHSPEC_PREFIX_ORIGIN,
- prefix, argv);
-
- return run_add_interactive(NULL, "--patch=stash", &pathspec);
- }
if (edit_interactive) {
if (pathspec_from_file)
diff --git a/builtin/am.c b/builtin/am.c
index b6be1f1cb1..0f4111bafa 100644
--- a/builtin/am.c
+++ b/builtin/am.c
@@ -34,6 +34,7 @@
#include "string-list.h"
#include "packfile.h"
#include "repository.h"
+#include "pretty.h"
/**
* Returns the length of the first line of msg.
@@ -199,7 +200,7 @@ static int am_option_parse_empty(const struct option *opt,
else if (!strcmp(arg, "keep"))
*opt_value = KEEP_EMPTY_COMMIT;
else
- return error(_("Invalid value for --empty: %s"), arg);
+ return error(_("invalid value for '%s': '%s'"), "--empty", arg);
return 0;
}
@@ -474,7 +475,7 @@ static int run_applypatch_msg_hook(struct am_state *state)
int ret;
assert(state->msg);
- ret = run_hook_le(NULL, "applypatch-msg", am_path(state, "final-commit"), NULL);
+ ret = run_hooks_l("applypatch-msg", am_path(state, "final-commit"), NULL);
if (!ret) {
FREE_AND_NULL(state->msg);
@@ -1636,7 +1637,7 @@ static void do_commit(const struct am_state *state)
const char *reflog_msg, *author, *committer = NULL;
struct strbuf sb = STRBUF_INIT;
- if (run_hook_le(NULL, "pre-applypatch", NULL))
+ if (run_hooks("pre-applypatch"))
exit(1);
if (write_cache_as_tree(&tree, 0, NULL))
@@ -1688,7 +1689,7 @@ static void do_commit(const struct am_state *state)
fclose(fp);
}
- run_hook_le(NULL, "post-applypatch", NULL);
+ run_hooks("post-applypatch");
strbuf_release(&sb);
}
@@ -2239,7 +2240,8 @@ static int parse_opt_patchformat(const struct option *opt, const char *arg, int
* when you add new options
*/
else
- return error(_("Invalid value for --patch-format: %s"), arg);
+ return error(_("invalid value for '%s': '%s'"),
+ "--patch-format", arg);
return 0;
}
@@ -2282,7 +2284,8 @@ static int parse_opt_show_current_patch(const struct option *opt, const char *ar
break;
}
if (new_value >= ARRAY_SIZE(valid_modes))
- return error(_("Invalid value for --show-current-patch: %s"), arg);
+ return error(_("invalid value for '%s': '%s'"),
+ "--show-current-patch", arg);
}
if (resume->mode == RESUME_SHOW_PATCH && new_value != resume->sub_mode)
diff --git a/builtin/apply.c b/builtin/apply.c
index 3f099b9605..555219de40 100644
--- a/builtin/apply.c
+++ b/builtin/apply.c
@@ -1,7 +1,6 @@
#include "cache.h"
#include "builtin.h"
#include "parse-options.h"
-#include "lockfile.h"
#include "apply.h"
static const char * const apply_usage[] = {
diff --git a/builtin/bisect--helper.c b/builtin/bisect--helper.c
index f1a8ec38ac..d4eaaa345e 100644
--- a/builtin/bisect--helper.c
+++ b/builtin/bisect--helper.c
@@ -22,15 +22,15 @@ static GIT_PATH_FUNC(git_path_bisect_run, "BISECT_RUN")
static const char * const git_bisect_helper_usage[] = {
N_("git bisect--helper --bisect-reset [<commit>]"),
- N_("git bisect--helper --bisect-terms [--term-good | --term-old | --term-bad | --term-new]"),
+ "git bisect--helper --bisect-terms [--term-good | --term-old | --term-bad | --term-new]",
N_("git bisect--helper --bisect-start [--term-{new,bad}=<term> --term-{old,good}=<term>]"
" [--no-checkout] [--first-parent] [<bad> [<good>...]] [--] [<paths>...]"),
- N_("git bisect--helper --bisect-next"),
+ "git bisect--helper --bisect-next",
N_("git bisect--helper --bisect-state (bad|new) [<rev>]"),
N_("git bisect--helper --bisect-state (good|old) [<rev>...]"),
N_("git bisect--helper --bisect-replay <filename>"),
N_("git bisect--helper --bisect-skip [(<rev>|<range>)...]"),
- N_("git bisect--helper --bisect-visualize"),
+ "git bisect--helper --bisect-visualize",
N_("git bisect--helper --bisect-run <cmd>..."),
NULL
};
@@ -329,12 +329,12 @@ static int check_and_set_terms(struct bisect_terms *terms, const char *cmd)
return 0;
}
-static int mark_good(const char *refname, const struct object_id *oid,
- int flag, void *cb_data)
+static int inc_nr(const char *refname, const struct object_id *oid,
+ int flag, void *cb_data)
{
- int *m_good = (int *)cb_data;
- *m_good = 0;
- return 1;
+ unsigned int *nr = (unsigned int *)cb_data;
+ (*nr)++;
+ return 0;
}
static const char need_bad_and_good_revision_warning[] =
@@ -384,23 +384,64 @@ static int decide_next(const struct bisect_terms *terms,
vocab_good, vocab_bad, vocab_good, vocab_bad);
}
-static int bisect_next_check(const struct bisect_terms *terms,
- const char *current_term)
+static void bisect_status(struct bisect_state *state,
+ const struct bisect_terms *terms)
{
- int missing_good = 1, missing_bad = 1;
char *bad_ref = xstrfmt("refs/bisect/%s", terms->term_bad);
char *good_glob = xstrfmt("%s-*", terms->term_good);
if (ref_exists(bad_ref))
- missing_bad = 0;
+ state->nr_bad = 1;
- for_each_glob_ref_in(mark_good, good_glob, "refs/bisect/",
- (void *) &missing_good);
+ for_each_glob_ref_in(inc_nr, good_glob, "refs/bisect/",
+ (void *) &state->nr_good);
free(good_glob);
free(bad_ref);
+}
+
+__attribute__((format (printf, 1, 2)))
+static void bisect_log_printf(const char *fmt, ...)
+{
+ struct strbuf buf = STRBUF_INIT;
+ va_list ap;
+
+ va_start(ap, fmt);
+ strbuf_vaddf(&buf, fmt, ap);
+ va_end(ap);
+
+ printf("%s", buf.buf);
+ append_to_file(git_path_bisect_log(), "# %s", buf.buf);
+
+ strbuf_release(&buf);
+}
+
+static void bisect_print_status(const struct bisect_terms *terms)
+{
+ struct bisect_state state = { 0 };
- return decide_next(terms, current_term, missing_good, missing_bad);
+ bisect_status(&state, terms);
+
+ /* If we had both, we'd already be started, and shouldn't get here. */
+ if (state.nr_good && state.nr_bad)
+ return;
+
+ if (!state.nr_good && !state.nr_bad)
+ bisect_log_printf(_("status: waiting for both good and bad commits\n"));
+ else if (state.nr_good)
+ bisect_log_printf(Q_("status: waiting for bad commit, %d good commit known\n",
+ "status: waiting for bad commit, %d good commits known\n",
+ state.nr_good), state.nr_good);
+ else
+ bisect_log_printf(_("status: waiting for good commit(s), bad commit known\n"));
+}
+
+static int bisect_next_check(const struct bisect_terms *terms,
+ const char *current_term)
+{
+ struct bisect_state state = { 0 };
+ bisect_status(&state, terms);
+ return decide_next(terms, current_term, !state.nr_good, !state.nr_bad);
}
static int get_terms(struct bisect_terms *terms)
@@ -606,8 +647,10 @@ static enum bisect_error bisect_next(struct bisect_terms *terms, const char *pre
static enum bisect_error bisect_auto_next(struct bisect_terms *terms, const char *prefix)
{
- if (bisect_next_check(terms, NULL))
+ if (bisect_next_check(terms, NULL)) {
+ bisect_print_status(terms);
return BISECT_OK;
+ }
return bisect_next(terms, prefix);
}
@@ -1089,14 +1132,52 @@ static int bisect_visualize(struct bisect_terms *terms, const char **argv, int a
return res;
}
+static int get_first_good(const char *refname, const struct object_id *oid,
+ int flag, void *cb_data)
+{
+ oidcpy(cb_data, oid);
+ return 1;
+}
+
+static int verify_good(const struct bisect_terms *terms,
+ const char **quoted_argv)
+{
+ int rc;
+ enum bisect_error res;
+ struct object_id good_rev;
+ struct object_id current_rev;
+ char *good_glob = xstrfmt("%s-*", terms->term_good);
+ int no_checkout = ref_exists("BISECT_HEAD");
+
+ for_each_glob_ref_in(get_first_good, good_glob, "refs/bisect/",
+ &good_rev);
+ free(good_glob);
+
+ if (read_ref(no_checkout ? "BISECT_HEAD" : "HEAD", &current_rev))
+ return -1;
+
+ res = bisect_checkout(&good_rev, no_checkout);
+ if (res != BISECT_OK)
+ return -1;
+
+ printf(_("running %s\n"), quoted_argv[0]);
+ rc = run_command_v_opt(quoted_argv, RUN_USING_SHELL);
+
+ res = bisect_checkout(&current_rev, no_checkout);
+ if (res != BISECT_OK)
+ return -1;
+
+ return rc;
+}
+
static int bisect_run(struct bisect_terms *terms, const char **argv, int argc)
{
int res = BISECT_OK;
struct strbuf command = STRBUF_INIT;
- struct strvec args = STRVEC_INIT;
struct strvec run_args = STRVEC_INIT;
const char *new_state;
int temporary_stdout_fd, saved_stdout;
+ int is_first_run = 1;
if (bisect_next_check(terms, NULL))
return BISECT_FAILED;
@@ -1111,16 +1192,37 @@ static int bisect_run(struct bisect_terms *terms, const char **argv, int argc)
strvec_push(&run_args, command.buf);
while (1) {
- strvec_clear(&args);
-
printf(_("running %s\n"), command.buf);
res = run_command_v_opt(run_args.v, RUN_USING_SHELL);
+ /*
+ * Exit code 126 and 127 can either come from the shell
+ * if it was unable to execute or even find the script,
+ * or from the script itself. Check with a known-good
+ * revision to avoid trashing the bisect run due to a
+ * missing or non-executable script.
+ */
+ if (is_first_run && (res == 126 || res == 127)) {
+ int rc = verify_good(terms, run_args.v);
+ is_first_run = 0;
+ if (rc < 0) {
+ error(_("unable to verify '%s' on good"
+ " revision"), command.buf);
+ res = BISECT_FAILED;
+ break;
+ }
+ if (rc == res) {
+ error(_("bogus exit code %d for good revision"),
+ rc);
+ res = BISECT_FAILED;
+ break;
+ }
+ }
+
if (res < 0 || 128 <= res) {
error(_("bisect run failed: exit code %d from"
" '%s' is < 0 or >= 128"), res, command.buf);
- strbuf_release(&command);
- return res;
+ break;
}
if (res == 125)
@@ -1132,8 +1234,10 @@ static int bisect_run(struct bisect_terms *terms, const char **argv, int argc)
temporary_stdout_fd = open(git_path_bisect_run(), O_CREAT | O_WRONLY | O_TRUNC, 0666);
- if (temporary_stdout_fd < 0)
- return error_errno(_("cannot open file '%s' for writing"), git_path_bisect_run());
+ if (temporary_stdout_fd < 0) {
+ res = error_errno(_("cannot open file '%s' for writing"), git_path_bisect_run());
+ break;
+ }
fflush(stdout);
saved_stdout = dup(1);
@@ -1158,16 +1262,16 @@ static int bisect_run(struct bisect_terms *terms, const char **argv, int argc)
res = BISECT_OK;
} else if (res) {
error(_("bisect run failed: 'git bisect--helper --bisect-state"
- " %s' exited with error code %d"), args.v[0], res);
+ " %s' exited with error code %d"), new_state, res);
} else {
continue;
}
-
- strbuf_release(&command);
- strvec_clear(&args);
- strvec_clear(&run_args);
- return res;
+ break;
}
+
+ strbuf_release(&command);
+ strvec_clear(&run_args);
+ return res;
}
int cmd_bisect__helper(int argc, const char **argv, const char *prefix)
@@ -1209,7 +1313,7 @@ int cmd_bisect__helper(int argc, const char **argv, const char *prefix)
OPT_CMDMODE(0, "bisect-visualize", &cmdmode,
N_("visualize the bisection"), BISECT_VISUALIZE),
OPT_CMDMODE(0, "bisect-run", &cmdmode,
- N_("use <cmd>... to automatically bisect."), BISECT_RUN),
+ N_("use <cmd>... to automatically bisect"), BISECT_RUN),
OPT_BOOL(0, "no-log", &nolog,
N_("no log for BISECT_WRITE")),
OPT_END()
diff --git a/builtin/blame.c b/builtin/blame.c
index 7fafeac408..e33372c56b 100644
--- a/builtin/blame.c
+++ b/builtin/blame.c
@@ -721,8 +721,8 @@ static int git_blame_config(const char *var, const char *value, void *cb)
}
if (!strcmp(var, "color.blame.repeatedlines")) {
if (color_parse_mem(value, strlen(value), repeated_meta_color))
- warning(_("invalid color '%s' in color.blame.repeatedLines"),
- value);
+ warning(_("invalid value for '%s': '%s'"),
+ "color.blame.repeatedLines", value);
return 0;
}
if (!strcmp(var, "color.blame.highlightrecent")) {
@@ -739,7 +739,8 @@ static int git_blame_config(const char *var, const char *value, void *cb)
coloring_mode &= ~(OUTPUT_COLOR_LINE |
OUTPUT_SHOW_AGE_WITH_COLOR);
} else {
- warning(_("invalid value for blame.coloring"));
+ warning(_("invalid value for '%s': '%s'"),
+ "blame.coloring", value);
return 0;
}
}
@@ -897,6 +898,7 @@ int cmd_blame(int argc, const char **argv, const char *prefix)
unsigned int range_i;
long anchor;
const int hexsz = the_hash_algo->hexsz;
+ long num_lines = 0;
setup_default_color_by_age();
git_config(git_blame_config, &output_option);
@@ -934,6 +936,7 @@ int cmd_blame(int argc, const char **argv, const char *prefix)
parse_revision_opt(&revs, &ctx, options, blame_opt_usage);
}
parse_done:
+ revision_opts_finish(&revs);
no_whole_file_rename = !revs.diffopt.flags.follow_renames;
xdl_opts |= revs.diffopt.xdl_opts & XDF_INDENT_HEURISTIC;
revs.diffopt.flags.follow_renames = 0;
@@ -1127,7 +1130,10 @@ parse_done:
for (range_i = ranges.nr; range_i > 0; --range_i) {
const struct range *r = &ranges.ranges[range_i - 1];
ent = blame_entry_prepend(ent, r->start, r->end, o);
+ num_lines += (r->end - r->start);
}
+ if (!num_lines)
+ num_lines = sb.num_lines;
o->suspects = ent;
prio_queue_put(&sb.commits, o->commit);
@@ -1156,7 +1162,7 @@ parse_done:
sb.found_guilty_entry = &found_guilty_entry;
sb.found_guilty_entry_data = &pi;
if (show_progress)
- pi.progress = start_delayed_progress(_("Blaming lines"), sb.num_lines);
+ pi.progress = start_delayed_progress(_("Blaming lines"), num_lines);
assign_blame(&sb, opt);
diff --git a/builtin/branch.c b/builtin/branch.c
index 4ce2a24754..5d00d0b8d3 100644
--- a/builtin/branch.c
+++ b/builtin/branch.c
@@ -27,7 +27,8 @@
static const char * const builtin_branch_usage[] = {
N_("git branch [<options>] [-r | -a] [--merged] [--no-merged]"),
- N_("git branch [<options>] [-l] [-f] <branch-name> [<start-point>]"),
+ N_("git branch [<options>] [-f] [--recurse-submodules] <branch-name> [<start-point>]"),
+ N_("git branch [<options>] [-l] [<pattern>...]"),
N_("git branch [<options>] [-r] (-d | -D) <branch-name>..."),
N_("git branch [<options>] (-m | -M) [<old-branch>] <new-branch>"),
N_("git branch [<options>] (-c | -C) [<old-branch>] <new-branch>"),
@@ -38,6 +39,8 @@ static const char * const builtin_branch_usage[] = {
static const char *head;
static struct object_id head_oid;
+static int recurse_submodules = 0;
+static int submodule_propagate_branches = 0;
static int branch_use_color = -1;
static char branch_colors[][COLOR_MAXLEN] = {
@@ -99,6 +102,15 @@ static int git_branch_config(const char *var, const char *value, void *cb)
return config_error_nonbool(var);
return color_parse(value, branch_colors[slot]);
}
+ if (!strcmp(var, "submodule.recurse")) {
+ recurse_submodules = git_config_bool(var, value);
+ return 0;
+ }
+ if (!strcasecmp(var, "submodule.propagateBranches")) {
+ submodule_propagate_branches = git_config_bool(var, value);
+ return 0;
+ }
+
return git_color_default_config(var, value, cb);
}
@@ -621,14 +633,16 @@ static int edit_branch_description(const char *branch_name)
int cmd_branch(int argc, const char **argv, const char *prefix)
{
- int delete = 0, rename = 0, copy = 0, force = 0, list = 0;
- int show_current = 0;
- int reflog = 0, edit_description = 0;
- int quiet = 0, unset_upstream = 0;
+ /* possible actions */
+ int delete = 0, rename = 0, copy = 0, list = 0,
+ unset_upstream = 0, show_current = 0, edit_description = 0;
const char *new_upstream = NULL;
+ int noncreate_actions = 0;
+ /* possible options */
+ int reflog = 0, quiet = 0, icase = 0, force = 0,
+ recurse_submodules_explicit = 0;
enum branch_track track;
struct ref_filter filter;
- int icase = 0;
static struct ref_sorting *sorting;
struct string_list sorting_options = STRING_LIST_INIT_DUP;
struct ref_format format = REF_FORMAT_INIT;
@@ -677,6 +691,7 @@ int cmd_branch(int argc, const char **argv, const char *prefix)
OPT_CALLBACK(0, "points-at", &filter.points_at, N_("object"),
N_("print only branches of the object"), parse_opt_object_name),
OPT_BOOL('i', "ignore-case", &icase, N_("sorting and filtering are case insensitive")),
+ OPT_BOOL(0, "recurse-submodules", &recurse_submodules_explicit, N_("recurse through submodules")),
OPT_STRING( 0 , "format", &format.format, N_("format"), N_("format to use for the output")),
OPT_END(),
};
@@ -713,10 +728,23 @@ int cmd_branch(int argc, const char **argv, const char *prefix)
filter.reachable_from || filter.unreachable_from || filter.points_at.nr)
list = 1;
- if (!!delete + !!rename + !!copy + !!new_upstream + !!show_current +
- list + edit_description + unset_upstream > 1)
+ noncreate_actions = !!delete + !!rename + !!copy + !!new_upstream +
+ !!show_current + !!list + !!edit_description +
+ !!unset_upstream;
+ if (noncreate_actions > 1)
usage_with_options(builtin_branch_usage, options);
+ if (recurse_submodules_explicit) {
+ if (!submodule_propagate_branches)
+ die(_("branch with --recurse-submodules can only be used if submodule.propagateBranches is enabled"));
+ if (noncreate_actions)
+ die(_("--recurse-submodules can only be used to create branches"));
+ }
+
+ recurse_submodules =
+ (recurse_submodules || recurse_submodules_explicit) &&
+ submodule_propagate_branches;
+
if (filter.abbrev == -1)
filter.abbrev = DEFAULT_ABBREV;
filter.ignore_case = icase;
@@ -828,12 +856,9 @@ int cmd_branch(int argc, const char **argv, const char *prefix)
if (!ref_exists(branch->refname))
die(_("branch '%s' does not exist"), branch->name);
- /*
- * create_branch takes care of setting up the tracking
- * info and making sure new_upstream is correct
- */
- create_branch(the_repository, branch->name, new_upstream,
- 0, 0, 0, quiet, BRANCH_TRACK_OVERRIDE);
+ dwim_and_setup_tracking(the_repository, branch->name,
+ new_upstream, BRANCH_TRACK_OVERRIDE,
+ quiet);
} else if (unset_upstream) {
struct branch *branch = branch_get(argv[0]);
struct strbuf buf = STRBUF_INIT;
@@ -857,7 +882,10 @@ int cmd_branch(int argc, const char **argv, const char *prefix)
strbuf_addf(&buf, "branch.%s.merge", branch->name);
git_config_set_multivar(buf.buf, NULL, NULL, CONFIG_FLAGS_MULTI_REPLACE);
strbuf_release(&buf);
- } else if (argc > 0 && argc <= 2) {
+ } else if (!noncreate_actions && argc > 0 && argc <= 2) {
+ const char *branch_name = argv[0];
+ const char *start_name = argc == 2 ? argv[1] : head;
+
if (filter.kind != FILTER_REFS_BRANCHES)
die(_("The -a, and -r, options to 'git branch' do not take a branch name.\n"
"Did you mean to use: -a|-r --list <pattern>?"));
@@ -865,10 +893,14 @@ int cmd_branch(int argc, const char **argv, const char *prefix)
if (track == BRANCH_TRACK_OVERRIDE)
die(_("the '--set-upstream' option is no longer supported. Please use '--track' or '--set-upstream-to' instead."));
- create_branch(the_repository,
- argv[0], (argc == 2) ? argv[1] : head,
- force, 0, reflog, quiet, track);
-
+ if (recurse_submodules) {
+ create_branches_recursively(the_repository, branch_name,
+ start_name, NULL, force,
+ reflog, quiet, track, 0);
+ return 0;
+ }
+ create_branch(the_repository, branch_name, start_name, force, 0,
+ reflog, quiet, track, 0);
} else
usage_with_options(builtin_branch_usage, options);
diff --git a/builtin/bundle.c b/builtin/bundle.c
index 5a85d7cd0f..2adad545a2 100644
--- a/builtin/bundle.c
+++ b/builtin/bundle.c
@@ -93,6 +93,7 @@ static int cmd_bundle_create(int argc, const char **argv, const char *prefix) {
if (!startup_info->have_repository)
die(_("Need a repository to create a bundle."));
ret = !!create_bundle(the_repository, bundle_file, argc, argv, &pack_opts, version);
+ strvec_clear(&pack_opts);
free(bundle_file);
return ret;
}
diff --git a/builtin/cat-file.c b/builtin/cat-file.c
index d94050e6c1..50cf38999d 100644
--- a/builtin/cat-file.c
+++ b/builtin/cat-file.c
@@ -17,14 +17,20 @@
#include "object-store.h"
#include "promisor-remote.h"
+enum batch_mode {
+ BATCH_MODE_CONTENTS,
+ BATCH_MODE_INFO,
+ BATCH_MODE_QUEUE_AND_DISPATCH,
+};
+
struct batch_options {
int enabled;
int follow_symlinks;
- int print_contents;
+ enum batch_mode batch_mode;
int buffer_output;
int all_objects;
int unordered;
- int cmdmode; /* may be 'w' or 'c' for --filters or --textconv */
+ int transform_mode; /* may be 'w' or 'c' for --filters or --textconv */
const char *format;
};
@@ -73,14 +79,17 @@ static int cat_one_file(int opt, const char *exp_type, const char *obj_name,
struct object_info oi = OBJECT_INFO_INIT;
struct strbuf sb = STRBUF_INIT;
unsigned flags = OBJECT_INFO_LOOKUP_REPLACE;
+ unsigned get_oid_flags = GET_OID_RECORD_PATH | GET_OID_ONLY_TO_DIE;
const char *path = force_path;
+ const int opt_cw = (opt == 'c' || opt == 'w');
+ if (!path && opt_cw)
+ get_oid_flags |= GET_OID_REQUIRE_PATH;
if (unknown_type)
flags |= OBJECT_INFO_ALLOW_UNKNOWN_TYPE;
- if (get_oid_with_context(the_repository, obj_name,
- GET_OID_RECORD_PATH,
- &oid, &obj_context))
+ if (get_oid_with_context(the_repository, obj_name, get_oid_flags, &oid,
+ &obj_context))
die("Not a valid object name %s", obj_name);
if (!path)
@@ -112,9 +121,6 @@ static int cat_one_file(int opt, const char *exp_type, const char *obj_name,
return !has_object_file(&oid);
case 'w':
- if (!path)
- die("git cat-file --filters %s: <object> must be "
- "<sha1:path>", obj_name);
if (filter_object(path, obj_context.mode,
&oid, &buf, &size))
@@ -122,10 +128,6 @@ static int cat_one_file(int opt, const char *exp_type, const char *obj_name,
break;
case 'c':
- if (!path)
- die("git cat-file --textconv %s: <object> must be <sha1:path>",
- obj_name);
-
if (textconv_object(the_repository, path, obj_context.mode,
&oid, 1, &buf, &size))
break;
@@ -154,7 +156,10 @@ static int cat_one_file(int opt, const char *exp_type, const char *obj_name,
break;
case 0:
- if (type_from_string(exp_type) == OBJ_BLOB) {
+ {
+ enum object_type exp_type_id = type_from_string(exp_type);
+
+ if (exp_type_id == OBJ_BLOB) {
struct object_id blob_oid;
if (oid_object_info(the_repository, &oid, NULL) == OBJ_TAG) {
char *buffer = read_object_file(&oid, &type,
@@ -176,10 +181,10 @@ static int cat_one_file(int opt, const char *exp_type, const char *obj_name,
* fall-back to the usual case.
*/
}
- buf = read_object_with_reference(the_repository,
- &oid, exp_type, &size, NULL);
+ buf = read_object_with_reference(the_repository, &oid,
+ exp_type_id, &size, NULL);
break;
-
+ }
default:
die("git cat-file: unknown option: %s", exp_type);
}
@@ -306,19 +311,19 @@ static void print_object_or_die(struct batch_options *opt, struct expand_data *d
if (data->type == OBJ_BLOB) {
if (opt->buffer_output)
fflush(stdout);
- if (opt->cmdmode) {
+ if (opt->transform_mode) {
char *contents;
unsigned long size;
if (!data->rest)
die("missing path for '%s'", oid_to_hex(oid));
- if (opt->cmdmode == 'w') {
+ if (opt->transform_mode == 'w') {
if (filter_object(data->rest, 0100644, oid,
&contents, &size))
die("could not convert '%s' %s",
oid_to_hex(oid), data->rest);
- } else if (opt->cmdmode == 'c') {
+ } else if (opt->transform_mode == 'c') {
enum object_type type;
if (!textconv_object(the_repository,
data->rest, 0100644, oid,
@@ -330,7 +335,7 @@ static void print_object_or_die(struct batch_options *opt, struct expand_data *d
die("could not convert '%s' %s",
oid_to_hex(oid), data->rest);
} else
- BUG("invalid cmdmode: %c", opt->cmdmode);
+ BUG("invalid transform_mode: %c", opt->transform_mode);
batch_write(opt, contents, size);
free(contents);
} else {
@@ -355,6 +360,13 @@ static void print_object_or_die(struct batch_options *opt, struct expand_data *d
}
}
+static void print_default_format(struct strbuf *scratch, struct expand_data *data)
+{
+ strbuf_addf(scratch, "%s %s %"PRIuMAX"\n", oid_to_hex(&data->oid),
+ type_name(data->type),
+ (uintmax_t)data->size);
+}
+
/*
* If "pack" is non-NULL, then "offset" is the byte offset within the pack from
* which the object may be accessed (though note that we may also rely on
@@ -386,11 +398,17 @@ static void batch_object_write(const char *obj_name,
}
strbuf_reset(scratch);
- strbuf_expand(scratch, opt->format, expand_format, data);
- strbuf_addch(scratch, '\n');
+
+ if (!opt->format) {
+ print_default_format(scratch, data);
+ } else {
+ strbuf_expand(scratch, opt->format, expand_format, data);
+ strbuf_addch(scratch, '\n');
+ }
+
batch_write(opt, scratch->buf, scratch->len);
- if (opt->print_contents) {
+ if (opt->batch_mode == BATCH_MODE_CONTENTS) {
print_object_or_die(opt, data);
batch_write(opt, "\n", 1);
}
@@ -512,6 +530,137 @@ static int batch_unordered_packed(const struct object_id *oid,
data);
}
+typedef void (*parse_cmd_fn_t)(struct batch_options *, const char *,
+ struct strbuf *, struct expand_data *);
+
+struct queued_cmd {
+ parse_cmd_fn_t fn;
+ char *line;
+};
+
+static void parse_cmd_contents(struct batch_options *opt,
+ const char *line,
+ struct strbuf *output,
+ struct expand_data *data)
+{
+ opt->batch_mode = BATCH_MODE_CONTENTS;
+ batch_one_object(line, output, opt, data);
+}
+
+static void parse_cmd_info(struct batch_options *opt,
+ const char *line,
+ struct strbuf *output,
+ struct expand_data *data)
+{
+ opt->batch_mode = BATCH_MODE_INFO;
+ batch_one_object(line, output, opt, data);
+}
+
+static void dispatch_calls(struct batch_options *opt,
+ struct strbuf *output,
+ struct expand_data *data,
+ struct queued_cmd *cmd,
+ int nr)
+{
+ int i;
+
+ if (!opt->buffer_output)
+ die(_("flush is only for --buffer mode"));
+
+ for (i = 0; i < nr; i++)
+ cmd[i].fn(opt, cmd[i].line, output, data);
+
+ fflush(stdout);
+}
+
+static void free_cmds(struct queued_cmd *cmd, size_t *nr)
+{
+ size_t i;
+
+ for (i = 0; i < *nr; i++)
+ FREE_AND_NULL(cmd[i].line);
+
+ *nr = 0;
+}
+
+
+static const struct parse_cmd {
+ const char *name;
+ parse_cmd_fn_t fn;
+ unsigned takes_args;
+} commands[] = {
+ { "contents", parse_cmd_contents, 1},
+ { "info", parse_cmd_info, 1},
+ { "flush", NULL, 0},
+};
+
+static void batch_objects_command(struct batch_options *opt,
+ struct strbuf *output,
+ struct expand_data *data)
+{
+ struct strbuf input = STRBUF_INIT;
+ struct queued_cmd *queued_cmd = NULL;
+ size_t alloc = 0, nr = 0;
+
+ while (!strbuf_getline(&input, stdin)) {
+ int i;
+ const struct parse_cmd *cmd = NULL;
+ const char *p = NULL, *cmd_end;
+ struct queued_cmd call = {0};
+
+ if (!input.len)
+ die(_("empty command in input"));
+ if (isspace(*input.buf))
+ die(_("whitespace before command: '%s'"), input.buf);
+
+ for (i = 0; i < ARRAY_SIZE(commands); i++) {
+ if (!skip_prefix(input.buf, commands[i].name, &cmd_end))
+ continue;
+
+ cmd = &commands[i];
+ if (cmd->takes_args) {
+ if (*cmd_end != ' ')
+ die(_("%s requires arguments"),
+ commands[i].name);
+
+ p = cmd_end + 1;
+ } else if (*cmd_end) {
+ die(_("%s takes no arguments"),
+ commands[i].name);
+ }
+
+ break;
+ }
+
+ if (!cmd)
+ die(_("unknown command: '%s'"), input.buf);
+
+ if (!strcmp(cmd->name, "flush")) {
+ dispatch_calls(opt, output, data, queued_cmd, nr);
+ free_cmds(queued_cmd, &nr);
+ } else if (!opt->buffer_output) {
+ cmd->fn(opt, p, output, data);
+ } else {
+ ALLOC_GROW(queued_cmd, nr + 1, alloc);
+ call.fn = cmd->fn;
+ call.line = xstrdup_or_null(p);
+ queued_cmd[nr++] = call;
+ }
+ }
+
+ if (opt->buffer_output &&
+ nr &&
+ !git_env_bool("GIT_TEST_CAT_FILE_NO_FLUSH_ON_EXIT", 0)) {
+ dispatch_calls(opt, output, data, queued_cmd, nr);
+ free_cmds(queued_cmd, &nr);
+ }
+
+ free(queued_cmd);
+ strbuf_release(&input);
+}
+
+#define DEFAULT_FORMAT "%(objectname) %(objecttype) %(objectsize)"
+
static int batch_objects(struct batch_options *opt)
{
struct strbuf input = STRBUF_INIT;
@@ -520,9 +669,6 @@ static int batch_objects(struct batch_options *opt)
int save_warning;
int retval = 0;
- if (!opt->format)
- opt->format = "%(objectname) %(objecttype) %(objectsize)";
-
/*
* Expand once with our special mark_query flag, which will prime the
* object_info to be handed to oid_object_info_extended for each
@@ -530,17 +676,22 @@ static int batch_objects(struct batch_options *opt)
*/
memset(&data, 0, sizeof(data));
data.mark_query = 1;
- strbuf_expand(&output, opt->format, expand_format, &data);
+ strbuf_expand(&output,
+ opt->format ? opt->format : DEFAULT_FORMAT,
+ expand_format,
+ &data);
data.mark_query = 0;
strbuf_release(&output);
- if (opt->cmdmode)
+ if (opt->transform_mode)
data.split_on_whitespace = 1;
+ if (opt->format && !strcmp(opt->format, DEFAULT_FORMAT))
+ opt->format = NULL;
/*
* If we are printing out the object, then always fill in the type,
* since we will want to decide whether or not to stream.
*/
- if (opt->print_contents)
+ if (opt->batch_mode == BATCH_MODE_CONTENTS)
data.info.typep = &data.type;
if (opt->all_objects) {
@@ -594,6 +745,11 @@ static int batch_objects(struct batch_options *opt)
save_warning = warn_on_object_refname_ambiguity;
warn_on_object_refname_ambiguity = 0;
+ if (opt->batch_mode == BATCH_MODE_QUEUE_AND_DISPATCH) {
+ batch_objects_command(opt, &output, &data);
+ goto cleanup;
+ }
+
while (strbuf_getline(&input, stdin) != EOF) {
if (data.split_on_whitespace) {
/*
@@ -612,18 +768,13 @@ static int batch_objects(struct batch_options *opt)
batch_one_object(input.buf, &output, opt, &data);
}
+ cleanup:
strbuf_release(&input);
strbuf_release(&output);
warn_on_object_refname_ambiguity = save_warning;
return retval;
}
-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[=<format>] | --batch-check[=<format>]) [--follow-symlinks] [--textconv | --filters]"),
- NULL
-};
-
static int git_cat_file_config(const char *var, const char *value, void *cb)
{
if (userdiff_config(var, value) < 0)
@@ -645,7 +796,16 @@ static int batch_option_callback(const struct option *opt,
}
bo->enabled = 1;
- bo->print_contents = !strcmp(opt->long_name, "batch");
+
+ if (!strcmp(opt->long_name, "batch"))
+ bo->batch_mode = BATCH_MODE_CONTENTS;
+ else if (!strcmp(opt->long_name, "batch-check"))
+ bo->batch_mode = BATCH_MODE_INFO;
+ else if (!strcmp(opt->long_name, "batch-command"))
+ bo->batch_mode = BATCH_MODE_QUEUE_AND_DISPATCH;
+ else
+ BUG("%s given to batch-option-callback", opt->long_name);
+
bo->format = arg;
return 0;
@@ -654,90 +814,142 @@ static int batch_option_callback(const struct option *opt,
int cmd_cat_file(int argc, const char **argv, const char *prefix)
{
int opt = 0;
+ int opt_cw = 0;
+ int opt_epts = 0;
const char *exp_type = NULL, *obj_name = NULL;
struct batch_options batch = {0};
int unknown_type = 0;
+ const char * const usage[] = {
+ N_("git cat-file <type> <object>"),
+ N_("git cat-file (-e | -p) <object>"),
+ N_("git cat-file (-t | -s) [--allow-unknown-type] <object>"),
+ N_("git cat-file (--batch | --batch-check | --batch-command) [--batch-all-objects]\n"
+ " [--buffer] [--follow-symlinks] [--unordered]\n"
+ " [--textconv | --filters]"),
+ N_("git cat-file (--textconv | --filters)\n"
+ " [<rev>:<path|tree-ish> | --path=<path|tree-ish> <rev>]"),
+ NULL
+ };
const struct option options[] = {
- OPT_GROUP(N_("<type> can be one of: blob, tree, commit, tag")),
- OPT_CMDMODE('t', NULL, &opt, N_("show object type"), 't'),
- OPT_CMDMODE('s', NULL, &opt, N_("show object size"), 's'),
+ /* Simple queries */
+ OPT_GROUP(N_("Check object existence or emit object contents")),
OPT_CMDMODE('e', NULL, &opt,
- N_("exit with zero when there's no error"), 'e'),
- OPT_CMDMODE('p', NULL, &opt, N_("pretty-print object's content"), 'p'),
- OPT_CMDMODE(0, "textconv", &opt,
- N_("for blob objects, run textconv on object's content"), 'c'),
- OPT_CMDMODE(0, "filters", &opt,
- N_("for blob objects, run filters on object's content"), 'w'),
- OPT_STRING(0, "path", &force_path, N_("blob"),
- N_("use a specific path for --textconv/--filters")),
+ N_("check if <object> exists"), 'e'),
+ OPT_CMDMODE('p', NULL, &opt, N_("pretty-print <object> content"), 'p'),
+
+ OPT_GROUP(N_("Emit [broken] object attributes")),
+ OPT_CMDMODE('t', NULL, &opt, N_("show object type (one of 'blob', 'tree', 'commit', 'tag', ...)"), 't'),
+ OPT_CMDMODE('s', NULL, &opt, N_("show object size"), 's'),
OPT_BOOL(0, "allow-unknown-type", &unknown_type,
N_("allow -s and -t to work with broken/corrupt objects")),
- OPT_BOOL(0, "buffer", &batch.buffer_output, N_("buffer --batch output")),
- OPT_CALLBACK_F(0, "batch", &batch, "format",
- N_("show info and content of objects fed from the standard input"),
+ /* Batch mode */
+ OPT_GROUP(N_("Batch objects requested on stdin (or --batch-all-objects)")),
+ OPT_CALLBACK_F(0, "batch", &batch, N_("format"),
+ N_("show full <object> or <rev> contents"),
+ PARSE_OPT_OPTARG | PARSE_OPT_NONEG,
+ batch_option_callback),
+ OPT_CALLBACK_F(0, "batch-check", &batch, N_("format"),
+ N_("like --batch, but don't emit <contents>"),
PARSE_OPT_OPTARG | PARSE_OPT_NONEG,
batch_option_callback),
- OPT_CALLBACK_F(0, "batch-check", &batch, "format",
- N_("show info about objects fed from the standard input"),
+ OPT_CALLBACK_F(0, "batch-command", &batch, N_("format"),
+ N_("read commands from stdin"),
PARSE_OPT_OPTARG | PARSE_OPT_NONEG,
batch_option_callback),
+ OPT_CMDMODE(0, "batch-all-objects", &opt,
+ N_("with --batch[-check]: ignores stdin, batches all known objects"), 'b'),
+ /* Batch-specific options */
+ OPT_GROUP(N_("Change or optimize batch output")),
+ OPT_BOOL(0, "buffer", &batch.buffer_output, N_("buffer --batch output")),
OPT_BOOL(0, "follow-symlinks", &batch.follow_symlinks,
- N_("follow in-tree symlinks (used with --batch or --batch-check)")),
- OPT_BOOL(0, "batch-all-objects", &batch.all_objects,
- N_("show all objects with --batch or --batch-check")),
+ N_("follow in-tree symlinks")),
OPT_BOOL(0, "unordered", &batch.unordered,
- N_("do not order --batch-all-objects output")),
+ N_("do not order objects before emitting them")),
+ /* Textconv options, stand-ole*/
+ OPT_GROUP(N_("Emit object (blob or tree) with conversion or filter (stand-alone, or with batch)")),
+ OPT_CMDMODE(0, "textconv", &opt,
+ N_("run textconv on object's content"), 'c'),
+ OPT_CMDMODE(0, "filters", &opt,
+ N_("run filters on object's content"), 'w'),
+ OPT_STRING(0, "path", &force_path, N_("blob|tree"),
+ N_("use a <path> for (--textconv | --filters); Not with 'batch'")),
OPT_END()
};
git_config(git_cat_file_config, NULL);
batch.buffer_output = -1;
- argc = parse_options(argc, argv, prefix, options, cat_file_usage, 0);
-
- if (opt) {
- if (batch.enabled && (opt == 'c' || opt == 'w'))
- batch.cmdmode = opt;
- else if (argc == 1)
- obj_name = argv[0];
- else
- usage_with_options(cat_file_usage, options);
- }
- if (!opt && !batch.enabled) {
- if (argc == 2) {
- exp_type = argv[0];
- obj_name = argv[1];
- } else
- usage_with_options(cat_file_usage, options);
- }
- if (batch.enabled) {
- if (batch.cmdmode != opt || argc)
- usage_with_options(cat_file_usage, options);
- if (batch.cmdmode && batch.all_objects)
- die("--batch-all-objects cannot be combined with "
- "--textconv nor with --filters");
- }
- if ((batch.follow_symlinks || batch.all_objects) && !batch.enabled) {
- usage_with_options(cat_file_usage, options);
- }
+ argc = parse_options(argc, argv, prefix, options, usage, 0);
+ opt_cw = (opt == 'c' || opt == 'w');
+ opt_epts = (opt == 'e' || opt == 'p' || opt == 't' || opt == 's');
- if (force_path && opt != 'c' && opt != 'w') {
- error("--path=<path> needs --textconv or --filters");
- usage_with_options(cat_file_usage, options);
- }
+ /* --batch-all-objects? */
+ if (opt == 'b')
+ batch.all_objects = 1;
- if (force_path && batch.enabled) {
- error("options '--path=<path>' and '--batch' cannot be used together");
- usage_with_options(cat_file_usage, options);
- }
+ /* Option compatibility */
+ if (force_path && !opt_cw)
+ usage_msg_optf(_("'%s=<%s>' needs '%s' or '%s'"),
+ usage, options,
+ "--path", _("path|tree-ish"), "--filters",
+ "--textconv");
+ /* Option compatibility with batch mode */
+ if (batch.enabled)
+ ;
+ else if (batch.follow_symlinks)
+ usage_msg_optf(_("'%s' requires a batch mode"), usage, options,
+ "--follow-symlinks");
+ else if (batch.buffer_output >= 0)
+ usage_msg_optf(_("'%s' requires a batch mode"), usage, options,
+ "--buffer");
+ else if (batch.all_objects)
+ usage_msg_optf(_("'%s' requires a batch mode"), usage, options,
+ "--batch-all-objects");
+
+ /* Batch defaults */
if (batch.buffer_output < 0)
batch.buffer_output = batch.all_objects;
- if (batch.enabled)
+ /* Return early if we're in batch mode? */
+ if (batch.enabled) {
+ if (opt_cw)
+ batch.transform_mode = opt;
+ else if (opt && opt != 'b')
+ usage_msg_optf(_("'-%c' is incompatible with batch mode"),
+ usage, options, opt);
+ else if (argc)
+ usage_msg_opt(_("batch modes take no arguments"), usage,
+ options);
+
return batch_objects(&batch);
+ }
+
+ if (opt) {
+ if (!argc && opt == 'c')
+ usage_msg_optf(_("<rev> required with '%s'"),
+ usage, options, "--textconv");
+ else if (!argc && opt == 'w')
+ usage_msg_optf(_("<rev> required with '%s'"),
+ usage, options, "--filters");
+ else if (!argc && opt_epts)
+ usage_msg_optf(_("<object> required with '-%c'"),
+ usage, options, opt);
+ else if (argc == 1)
+ obj_name = argv[0];
+ else
+ usage_msg_opt(_("too many arguments"), usage, options);
+ } else if (!argc) {
+ usage_with_options(usage, options);
+ } else if (argc != 2) {
+ usage_msg_optf(_("only two arguments allowed in <type> <object> mode, not %d"),
+ usage, options, argc);
+ } else if (argc) {
+ exp_type = argv[0];
+ obj_name = argv[1];
+ }
if (unknown_type && opt != 't' && opt != 's')
die("git cat-file --allow-unknown-type: use with -s or -t");
diff --git a/builtin/checkout-index.c b/builtin/checkout-index.c
index e21620d964..97e06e8c52 100644
--- a/builtin/checkout-index.c
+++ b/builtin/checkout-index.c
@@ -7,6 +7,7 @@
#define USE_THE_INDEX_COMPATIBILITY_MACROS
#include "builtin.h"
#include "config.h"
+#include "dir.h"
#include "lockfile.h"
#include "quote.h"
#include "cache-tree.h"
@@ -17,6 +18,7 @@
#define CHECKOUT_ALL 4
static int nul_term_line;
static int checkout_stage; /* default to checkout stage0 */
+static int ignore_skip_worktree; /* default to 0 */
static int to_tempfile;
static char topath[4][TEMPORARY_FILENAME_LENGTH + 1];
@@ -65,6 +67,8 @@ static int checkout_file(const char *name, const char *prefix)
int namelen = strlen(name);
int pos = cache_name_pos(name, namelen);
int has_same_name = 0;
+ int is_file = 0;
+ int is_skipped = 1;
int did_checkout = 0;
int errs = 0;
@@ -78,6 +82,12 @@ static int checkout_file(const char *name, const char *prefix)
break;
has_same_name = 1;
pos++;
+ if (S_ISSPARSEDIR(ce->ce_mode))
+ break;
+ is_file = 1;
+ if (!ignore_skip_worktree && ce_skip_worktree(ce))
+ break;
+ is_skipped = 0;
if (ce_stage(ce) != checkout_stage
&& (CHECKOUT_ALL != checkout_stage || !ce_stage(ce)))
continue;
@@ -106,6 +116,11 @@ static int checkout_file(const char *name, const char *prefix)
fprintf(stderr, "git checkout-index: %s ", name);
if (!has_same_name)
fprintf(stderr, "is not in the cache");
+ else if (!is_file)
+ fprintf(stderr, "is a sparse directory");
+ else if (is_skipped)
+ fprintf(stderr, "has skip-worktree enabled; "
+ "use '--ignore-skip-worktree-bits' to checkout");
else if (checkout_stage)
fprintf(stderr, "does not exist at stage %d",
checkout_stage);
@@ -121,10 +136,27 @@ static int checkout_all(const char *prefix, int prefix_length)
int i, errs = 0;
struct cache_entry *last_ce = NULL;
- /* TODO: audit for interaction with sparse-index. */
- ensure_full_index(&the_index);
for (i = 0; i < active_nr ; i++) {
struct cache_entry *ce = active_cache[i];
+
+ if (S_ISSPARSEDIR(ce->ce_mode)) {
+ if (!ce_skip_worktree(ce))
+ BUG("sparse directory '%s' does not have skip-worktree set", ce->name);
+
+ /*
+ * If the current entry is a sparse directory and skip-worktree
+ * entries are being checked out, expand the index and continue
+ * the loop on the current index position (now pointing to the
+ * first entry inside the expanded sparse directory).
+ */
+ if (ignore_skip_worktree) {
+ ensure_full_index(&the_index);
+ ce = active_cache[i];
+ }
+ }
+
+ if (!ignore_skip_worktree && ce_skip_worktree(ce))
+ continue;
if (ce_stage(ce) != checkout_stage
&& (CHECKOUT_ALL != checkout_stage || !ce_stage(ce)))
continue;
@@ -185,6 +217,8 @@ int cmd_checkout_index(int argc, const char **argv, const char *prefix)
struct option builtin_checkout_index_options[] = {
OPT_BOOL('a', "all", &all,
N_("check out all files in the index")),
+ OPT_BOOL(0, "ignore-skip-worktree-bits", &ignore_skip_worktree,
+ N_("do not skip files with skip-worktree set")),
OPT__FORCE(&force, N_("force overwrite of existing files"), 0),
OPT__QUIET(&quiet,
N_("no warning for existing files and files not in index")),
@@ -212,6 +246,9 @@ int cmd_checkout_index(int argc, const char **argv, const char *prefix)
git_config(git_default_config, NULL);
prefix_length = prefix ? strlen(prefix) : 0;
+ prepare_repo_settings(the_repository);
+ the_repository->settings.command_requires_full_index = 0;
+
if (read_cache() < 0) {
die("invalid cache");
}
diff --git a/builtin/checkout.c b/builtin/checkout.c
index 300766e590..f988936ddf 100644
--- a/builtin/checkout.c
+++ b/builtin/checkout.c
@@ -9,6 +9,7 @@
#include "config.h"
#include "diff.h"
#include "dir.h"
+#include "hook.h"
#include "ll-merge.h"
#include "lockfile.h"
#include "merge-recursive.h"
@@ -114,7 +115,7 @@ static void branch_info_release(struct branch_info *info)
static int post_checkout_hook(struct commit *old_commit, struct commit *new_commit,
int changed)
{
- return run_hook_le(NULL, "post-checkout",
+ return run_hooks_l("post-checkout",
oid_to_hex(old_commit ? &old_commit->object.oid : null_oid()),
oid_to_hex(new_commit ? &new_commit->object.oid : null_oid()),
changed ? "1" : "0", NULL);
@@ -245,6 +246,7 @@ static int checkout_merged(int pos, const struct checkout *state,
struct cache_entry *ce = active_cache[pos];
const char *path = ce->name;
mmfile_t ancestor, ours, theirs;
+ enum ll_merge_result merge_status;
int status;
struct object_id oid;
mmbuffer_t result_buf;
@@ -275,13 +277,16 @@ static int checkout_merged(int pos, const struct checkout *state,
memset(&ll_opts, 0, sizeof(ll_opts));
git_config_get_bool("merge.renormalize", &renormalize);
ll_opts.renormalize = renormalize;
- status = ll_merge(&result_buf, path, &ancestor, "base",
- &ours, "ours", &theirs, "theirs",
- state->istate, &ll_opts);
+ merge_status = ll_merge(&result_buf, path, &ancestor, "base",
+ &ours, "ours", &theirs, "theirs",
+ state->istate, &ll_opts);
free(ancestor.ptr);
free(ours.ptr);
free(theirs.ptr);
- if (status < 0 || !result_buf.ptr) {
+ if (merge_status == LL_MERGE_BINARY_CONFLICT)
+ warning("Cannot merge binary files: %s (%s vs. %s)",
+ path, "ours", "theirs");
+ if (merge_status < 0 || !result_buf.ptr) {
free(result_buf.ptr);
return error(_("path '%s': cannot merge"), path);
}
@@ -298,7 +303,7 @@ static int checkout_merged(int pos, const struct checkout *state,
* (it also writes the merge result to the object database even
* when it may contain conflicts).
*/
- if (write_object_file(result_buf.ptr, result_buf.size, blob_type, &oid))
+ if (write_object_file(result_buf.ptr, result_buf.size, OBJ_BLOB, &oid))
die(_("Unable to add merge result for '%s'"), path);
free(result_buf.ptr);
ce = make_transient_cache_entry(mode, &oid, path, 2, ce_mem_pool);
@@ -733,6 +738,7 @@ static int merge_working_tree(const struct checkout_opts *opts,
struct tree_desc trees[2];
struct tree *tree;
struct unpack_trees_options topts;
+ const struct object_id *old_commit_oid;
memset(&topts, 0, sizeof(topts));
topts.head_idx = -1;
@@ -760,9 +766,15 @@ static int merge_working_tree(const struct checkout_opts *opts,
&new_branch_info->commit->object.oid :
&new_branch_info->oid, NULL);
topts.preserve_ignored = !opts->overwrite_ignore;
- tree = parse_tree_indirect(old_branch_info->commit ?
- &old_branch_info->commit->object.oid :
- the_hash_algo->empty_tree);
+
+ old_commit_oid = old_branch_info->commit ?
+ &old_branch_info->commit->object.oid :
+ the_hash_algo->empty_tree;
+ tree = parse_tree_indirect(old_commit_oid);
+ if (!tree)
+ die(_("unable to parse commit %s"),
+ oid_to_hex(old_commit_oid));
+
init_tree_desc(&trees[0], tree->buffer, tree->size);
parse_tree(new_tree);
tree = new_tree;
@@ -904,7 +916,8 @@ static void update_refs_for_switch(const struct checkout_opts *opts,
opts->new_branch_force ? 1 : 0,
opts->new_branch_log,
opts->quiet,
- opts->track);
+ opts->track,
+ 0);
free(new_branch_info->name);
free(new_branch_info->refname);
new_branch_info->name = xstrdup(opts->new_branch);
@@ -1391,23 +1404,31 @@ static void die_expecting_a_branch(const struct branch_info *branch_info)
{
struct object_id oid;
char *to_free;
+ int code;
if (dwim_ref(branch_info->name, strlen(branch_info->name), &oid, &to_free, 0) == 1) {
const char *ref = to_free;
if (skip_prefix(ref, "refs/tags/", &ref))
- die(_("a branch is expected, got tag '%s'"), ref);
- if (skip_prefix(ref, "refs/remotes/", &ref))
- die(_("a branch is expected, got remote branch '%s'"), ref);
- die(_("a branch is expected, got '%s'"), ref);
+ code = die_message(_("a branch is expected, got tag '%s'"), ref);
+ else if (skip_prefix(ref, "refs/remotes/", &ref))
+ code = die_message(_("a branch is expected, got remote branch '%s'"), ref);
+ else
+ code = die_message(_("a branch is expected, got '%s'"), ref);
}
- if (branch_info->commit)
- die(_("a branch is expected, got commit '%s'"), branch_info->name);
- /*
- * This case should never happen because we already die() on
- * non-commit, but just in case.
- */
- die(_("a branch is expected, got '%s'"), branch_info->name);
+ else if (branch_info->commit)
+ code = die_message(_("a branch is expected, got commit '%s'"), branch_info->name);
+ else
+ /*
+ * This case should never happen because we already die() on
+ * non-commit, but just in case.
+ */
+ code = die_message(_("a branch is expected, got '%s'"), branch_info->name);
+
+ if (advice_enabled(ADVICE_SUGGEST_DETACHING_HEAD))
+ advise(_("If you want to detach HEAD at the commit, try again with the --detach option."));
+
+ exit(code);
}
static void die_if_some_operation_in_progress(void)
@@ -1602,9 +1623,10 @@ static int checkout_main(int argc, const char **argv, const char *prefix,
opts->show_progress = -1;
git_config(git_checkout_config, opts);
-
- prepare_repo_settings(the_repository);
- the_repository->settings.command_requires_full_index = 0;
+ if (the_repository->gitdir) {
+ prepare_repo_settings(the_repository);
+ the_repository->settings.command_requires_full_index = 0;
+ }
opts->track = BRANCH_TRACK_UNSPECIFIED;
diff --git a/builtin/clean.c b/builtin/clean.c
index 3ff02bbbff..5466636e66 100644
--- a/builtin/clean.c
+++ b/builtin/clean.c
@@ -1009,6 +1009,9 @@ int cmd_clean(int argc, const char **argv, const char *prefix)
dir.flags |= DIR_KEEP_UNTRACKED_CONTENTS;
}
+ prepare_repo_settings(the_repository);
+ the_repository->settings.command_requires_full_index = 0;
+
if (read_cache() < 0)
die(_("index file corrupt"));
diff --git a/builtin/clone.c b/builtin/clone.c
index 2cf389403c..89a91b0017 100644
--- a/builtin/clone.c
+++ b/builtin/clone.c
@@ -32,6 +32,8 @@
#include "connected.h"
#include "packfile.h"
#include "list-objects-filter-options.h"
+#include "hook.h"
+#include "bundle.h"
/*
* Overall FIXMEs:
@@ -71,6 +73,8 @@ static int option_dissociate;
static int max_jobs = -1;
static struct string_list option_recurse_submodules = STRING_LIST_INIT_NODUP;
static struct list_objects_filter_options filter_options;
+static int option_filter_submodules = -1; /* unspecified */
+static int config_filter_submodules = -1; /* unspecified */
static struct string_list server_options = STRING_LIST_INIT_NODUP;
static int option_remote_submodules;
@@ -150,6 +154,8 @@ static struct option builtin_clone_options[] = {
OPT_SET_INT('6', "ipv6", &family, N_("use IPv6 addresses only"),
TRANSPORT_FAMILY_IPV6),
OPT_PARSE_LIST_OBJECTS_FILTER(&filter_options),
+ OPT_BOOL(0, "also-filter-submodules", &option_filter_submodules,
+ N_("apply partial clone filters to submodules")),
OPT_BOOL(0, "remote-submodules", &option_remote_submodules,
N_("any cloned submodules will use their remote-tracking branch")),
OPT_BOOL(0, "sparse", &option_sparse_checkout,
@@ -650,7 +656,7 @@ static int git_sparse_checkout_init(const char *repo)
return result;
}
-static int checkout(int submodule_progress)
+static int checkout(int submodule_progress, int filter_submodules)
{
struct object_id oid;
char *head;
@@ -695,6 +701,8 @@ static int checkout(int submodule_progress)
init_checkout_metadata(&opts.meta, head, &oid, NULL);
tree = parse_tree_indirect(&oid);
+ if (!tree)
+ die(_("unable to parse commit %s"), oid_to_hex(&oid));
parse_tree(tree);
init_tree_desc(&t, tree->buffer, tree->size);
if (unpack_trees(1, &t, &opts) < 0)
@@ -705,7 +713,7 @@ static int checkout(int submodule_progress)
if (write_locked_index(&the_index, &lock_file, COMMIT_LOCK))
die(_("unable to write new index file"));
- err |= run_hook_le(NULL, "post-checkout", oid_to_hex(null_oid()),
+ err |= run_hooks_l("post-checkout", oid_to_hex(null_oid()),
oid_to_hex(&oid), "1", NULL);
if (!err && (option_recurse_submodules.nr > 0)) {
@@ -729,6 +737,10 @@ static int checkout(int submodule_progress)
strvec_push(&args, "--no-fetch");
}
+ if (filter_submodules && filter_options.choice)
+ strvec_pushf(&args, "--filter=%s",
+ expand_list_objects_filter_spec(&filter_options));
+
if (option_single_branch >= 0)
strvec_push(&args, option_single_branch ?
"--single-branch" :
@@ -749,6 +761,8 @@ static int git_clone_config(const char *k, const char *v, void *cb)
}
if (!strcmp(k, "clone.rejectshallow"))
config_reject_shallow = git_config_bool(k, v);
+ if (!strcmp(k, "clone.filtersubmodules"))
+ config_filter_submodules = git_config_bool(k, v);
return git_default_config(k, v, cb);
}
@@ -862,7 +876,7 @@ int cmd_clone(int argc, const char **argv, const char *prefix)
const struct ref *refs, *remote_head;
struct ref *remote_head_points_at = NULL;
const struct ref *our_head_points_at;
- struct ref *mapped_refs;
+ struct ref *mapped_refs = NULL;
const struct ref *ref;
struct strbuf key = STRBUF_INIT;
struct strbuf branch_top = STRBUF_INIT, reflog_msg = STRBUF_INIT;
@@ -871,6 +885,7 @@ int cmd_clone(int argc, const char **argv, const char *prefix)
struct remote *remote;
int err = 0, complete_refs_before_fetch = 1;
int submodule_progress;
+ int filter_submodules = 0;
struct transport_ls_refs_options transport_ls_refs_options =
TRANSPORT_LS_REFS_OPTIONS_INIT;
@@ -1067,11 +1082,34 @@ int cmd_clone(int argc, const char **argv, const char *prefix)
reject_shallow = option_reject_shallow;
/*
+ * If option_filter_submodules is specified from CLI option,
+ * ignore config_filter_submodules from git_clone_config.
+ */
+ if (config_filter_submodules != -1)
+ filter_submodules = config_filter_submodules;
+ if (option_filter_submodules != -1)
+ filter_submodules = option_filter_submodules;
+
+ /*
+ * Exit if the user seems to be doing something silly with submodule
+ * filter flags (but not with filter configs, as those should be
+ * set-and-forget).
+ */
+ if (option_filter_submodules > 0 && !filter_options.choice)
+ die(_("the option '%s' requires '%s'"),
+ "--also-filter-submodules", "--filter");
+ if (option_filter_submodules > 0 && !option_recurse_submodules.nr)
+ die(_("the option '%s' requires '%s'"),
+ "--also-filter-submodules", "--recurse-submodules");
+
+ /*
* apply the remote name provided by --origin only after this second
* call to git_config, to ensure it overrides all config-based values.
*/
- if (option_origin)
+ if (option_origin) {
+ free(remote_name);
remote_name = xstrdup(option_origin);
+ }
if (!remote_name)
remote_name = xstrdup("origin");
@@ -1137,6 +1175,18 @@ int cmd_clone(int argc, const char **argv, const char *prefix)
warning(_("--local is ignored"));
transport->cloning = 1;
+ if (is_bundle) {
+ struct bundle_header header = BUNDLE_HEADER_INIT;
+ int fd = read_bundle_header(path, &header);
+ int has_filter = header.filter.choice != LOFC_DISABLED;
+
+ if (fd > 0)
+ close(fd);
+ bundle_header_release(&header);
+ if (has_filter)
+ die(_("cannot clone from filtered bundle"));
+ }
+
transport_set_option(transport, TRANS_OPT_KEEP, "yes");
if (reject_shallow)
@@ -1184,7 +1234,10 @@ int cmd_clone(int argc, const char **argv, const char *prefix)
refs = transport_get_remote_refs(transport, &transport_ls_refs_options);
- if (refs) {
+ if (refs)
+ mapped_refs = wanted_peer_refs(refs, &remote->fetch);
+
+ if (mapped_refs) {
int hash_algo = hash_algo_by_ptr(transport_get_hash_algo(transport));
/*
@@ -1193,8 +1246,6 @@ int cmd_clone(int argc, const char **argv, const char *prefix)
*/
initialize_repository_version(hash_algo, 1);
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
* in mapped_refs (see struct transport->get_refs_list
@@ -1233,14 +1284,14 @@ int cmd_clone(int argc, const char **argv, const char *prefix)
}
else {
const char *branch;
- char *ref;
+ const char *ref;
+ char *ref_free = NULL;
if (option_branch)
die(_("Remote branch %s not found in upstream %s"),
option_branch, remote_name);
warning(_("You appear to have cloned an empty repository."));
- mapped_refs = NULL;
our_head_points_at = NULL;
remote_head_points_at = NULL;
remote_head = NULL;
@@ -1250,17 +1301,16 @@ int cmd_clone(int argc, const char **argv, const char *prefix)
skip_prefix(transport_ls_refs_options.unborn_head_target,
"refs/heads/", &branch)) {
ref = transport_ls_refs_options.unborn_head_target;
- transport_ls_refs_options.unborn_head_target = NULL;
create_symref("HEAD", ref, reflog_msg.buf);
} else {
branch = git_default_branch_name(0);
- ref = xstrfmt("refs/heads/%s", branch);
+ ref_free = xstrfmt("refs/heads/%s", branch);
+ ref = ref_free;
}
if (!option_bare)
install_branch_config(0, branch, remote_name, ref);
-
- free(ref);
+ free(ref_free);
}
write_refspec_config(src_ref_prefix, our_head_points_at,
@@ -1271,7 +1321,7 @@ int cmd_clone(int argc, const char **argv, const char *prefix)
if (is_local)
clone_local(path, git_dir);
- else if (refs && complete_refs_before_fetch) {
+ else if (mapped_refs && complete_refs_before_fetch) {
if (transport_fetch_refs(transport, mapped_refs))
die(_("remote transport reported error"));
}
@@ -1299,7 +1349,7 @@ int cmd_clone(int argc, const char **argv, const char *prefix)
}
junk_mode = JUNK_LEAVE_REPO;
- err = checkout(submodule_progress);
+ err = checkout(submodule_progress, filter_submodules);
free(remote_name);
strbuf_release(&reflog_msg);
@@ -1312,7 +1362,6 @@ int cmd_clone(int argc, const char **argv, const char *prefix)
UNLEAK(repo);
junk_mode = JUNK_LEAVE_ALL;
- strvec_clear(&transport_ls_refs_options.ref_prefixes);
- free(transport_ls_refs_options.unborn_head_target);
+ transport_ls_refs_options_release(&transport_ls_refs_options);
return err;
}
diff --git a/builtin/commit-graph.c b/builtin/commit-graph.c
index 4247fbde95..51c4040ea6 100644
--- a/builtin/commit-graph.c
+++ b/builtin/commit-graph.c
@@ -192,7 +192,7 @@ static int git_commit_graph_write_config(const char *var, const char *value,
static int graph_write(int argc, const char **argv)
{
- struct string_list pack_indexes = STRING_LIST_INIT_NODUP;
+ struct string_list pack_indexes = STRING_LIST_INIT_DUP;
struct strbuf buf = STRBUF_INIT;
struct oidset commits = OIDSET_INIT;
struct object_directory *odb = NULL;
@@ -273,8 +273,8 @@ static int graph_write(int argc, const char **argv)
if (opts.stdin_packs) {
while (strbuf_getline(&buf, stdin) != EOF)
- string_list_append(&pack_indexes,
- strbuf_detach(&buf, NULL));
+ string_list_append_nodup(&pack_indexes,
+ strbuf_detach(&buf, NULL));
} else if (opts.stdin_commits) {
oidset_init(&commits, 0);
if (opts.progress)
diff --git a/builtin/commit.c b/builtin/commit.c
index a50c555648..7316fbba1d 100644
--- a/builtin/commit.c
+++ b/builtin/commit.c
@@ -37,6 +37,7 @@
#include "help.h"
#include "commit-reach.h"
#include "commit-graph.h"
+#include "pretty.h"
static const char * const builtin_commit_usage[] = {
N_("git commit [<options>] [--] <pathspec>..."),
@@ -725,11 +726,13 @@ static int prepare_to_commit(const char *index_file, const char *prefix,
int clean_message_contents = (cleanup_mode != COMMIT_MSG_CLEANUP_NONE);
int old_display_comment_prefix;
int merge_contains_scissors = 0;
+ int invoked_hook;
/* This checks and barfs if author is badly specified */
determine_author_info(author_ident);
- if (!no_verify && run_commit_hook(use_editor, index_file, "pre-commit", NULL))
+ if (!no_verify && run_commit_hook(use_editor, index_file, &invoked_hook,
+ "pre-commit", NULL))
return 0;
if (squash_message) {
@@ -1052,10 +1055,10 @@ static int prepare_to_commit(const char *index_file, const char *prefix,
return 0;
}
- if (!no_verify && hook_exists("pre-commit")) {
+ if (!no_verify && invoked_hook) {
/*
- * Re-read the index as pre-commit hook could have updated it,
- * and write it out as a tree. We must do this before we invoke
+ * Re-read the index as the pre-commit-commit hook was invoked
+ * and could have updated it. We must do this before we invoke
* the editor and after we invoke run_status above.
*/
discard_cache();
@@ -1067,7 +1070,7 @@ static int prepare_to_commit(const char *index_file, const char *prefix,
return 0;
}
- if (run_commit_hook(use_editor, index_file, "prepare-commit-msg",
+ if (run_commit_hook(use_editor, index_file, NULL, "prepare-commit-msg",
git_path_commit_editmsg(), hook_arg1, hook_arg2, NULL))
return 0;
@@ -1084,7 +1087,8 @@ static int prepare_to_commit(const char *index_file, const char *prefix,
}
if (!no_verify &&
- run_commit_hook(use_editor, index_file, "commit-msg", git_path_commit_editmsg(), NULL)) {
+ run_commit_hook(use_editor, index_file, NULL, "commit-msg",
+ git_path_commit_editmsg(), NULL)) {
return 0;
}
@@ -1242,8 +1246,6 @@ static int parse_and_validate_options(int argc, const char *argv[],
struct commit *current_head,
struct wt_status *s)
{
- int f = 0;
-
argc = parse_options(argc, argv, prefix, options, usage, 0);
finalize_deferred_config(s);
@@ -1251,7 +1253,7 @@ static int parse_and_validate_options(int argc, const char *argv[],
force_author = find_author_by_nickname(force_author);
if (force_author && renew_authorship)
- die(_("Using both --reset-author and --author does not make sense"));
+ die(_("options '%s' and '%s' cannot be used together"), "--reset-author", "--author");
if (logfile || have_option_m || use_message)
use_editor = 0;
@@ -1268,20 +1270,16 @@ static int parse_and_validate_options(int argc, const char *argv[],
die(_("You are in the middle of a rebase -- cannot amend."));
}
if (fixup_message && squash_message)
- die(_("Options --squash and --fixup cannot be used together"));
- if (use_message)
- f++;
- if (edit_message)
- f++;
- if (fixup_message)
- f++;
- if (logfile)
- f++;
- if (f > 1)
- die(_("Only one of -c/-C/-F/--fixup can be used."));
- if (have_option_m && (edit_message || use_message || logfile))
- die((_("Option -m cannot be combined with -c/-C/-F.")));
- if (f || have_option_m)
+ die(_("options '%s' and '%s' cannot be used together"), "--squash", "--fixup");
+ die_for_incompatible_opt4(!!use_message, "-C",
+ !!edit_message, "-c",
+ !!logfile, "-F",
+ !!fixup_message, "--fixup");
+ die_for_incompatible_opt4(have_option_m, "-m",
+ !!edit_message, "-c",
+ !!use_message, "-C",
+ !!logfile, "-F");
+ if (use_message || edit_message || logfile ||fixup_message || have_option_m)
template_file = NULL;
if (edit_message)
use_message = edit_message;
@@ -1306,9 +1304,10 @@ static int parse_and_validate_options(int argc, const char *argv[],
if (patch_interactive)
interactive = 1;
- if (also + only + all + interactive > 1)
- die(_("Only one of --include/--only/--all/--interactive/--patch can be used."));
-
+ die_for_incompatible_opt4(also, "-i/--include",
+ only, "-o/--only",
+ all, "-a/--all",
+ interactive, "--interactive/-p/--patch");
if (fixup_message) {
/*
* We limit --fixup's suboptions to only alpha characters.
@@ -1845,7 +1844,8 @@ int cmd_commit(int argc, const char **argv, const char *prefix)
repo_rerere(the_repository, 0);
run_auto_maintenance(quiet);
- run_commit_hook(use_editor, get_index_file(), "post-commit", NULL);
+ run_commit_hook(use_editor, get_index_file(), NULL, "post-commit",
+ NULL);
if (amend && !no_post_rewrite) {
commit_post_rewrite(the_repository, current_head, &oid);
}
diff --git a/builtin/config.c b/builtin/config.c
index 542d8d02b2..e7b88a9c08 100644
--- a/builtin/config.c
+++ b/builtin/config.c
@@ -151,7 +151,7 @@ static struct option builtin_config_options[] = {
OPT_BIT(0, "get-color", &actions, N_("find the color configured: slot [default]"), ACTION_GET_COLOR),
OPT_BIT(0, "get-colorbool", &actions, N_("find the color setting: slot [stdout-is-tty]"), ACTION_GET_COLORBOOL),
OPT_GROUP(N_("Type")),
- OPT_CALLBACK('t', "type", &type, "", N_("value is given this type"), option_parse_type),
+ OPT_CALLBACK('t', "type", &type, N_("type"), N_("value is given this type"), option_parse_type),
OPT_CALLBACK_VALUE(0, "bool", &type, N_("value is \"true\" or \"false\""), TYPE_BOOL),
OPT_CALLBACK_VALUE(0, "int", &type, N_("value is decimal number"), TYPE_INT),
OPT_CALLBACK_VALUE(0, "bool-or-int", &type, N_("value is --bool or --int"), TYPE_BOOL_OR_INT),
@@ -612,7 +612,7 @@ static int get_urlmatch(const char *var, const char *url)
strbuf_release(&matched->value);
}
- string_list_clear(&config.vars, 1);
+ urlmatch_config_release(&config);
string_list_clear(&values, 1);
free(config.url.url);
diff --git a/builtin/count-objects.c b/builtin/count-objects.c
index 3fae474f6f..07b9419596 100644
--- a/builtin/count-objects.c
+++ b/builtin/count-objects.c
@@ -87,7 +87,7 @@ static int print_alternate(struct object_directory *odb, void *data)
}
static char const * const count_objects_usage[] = {
- N_("git count-objects [-v] [-H | --human-readable]"),
+ "git count-objects [-v] [-H | --human-readable]",
NULL
};
diff --git a/builtin/diff-tree.c b/builtin/diff-tree.c
index 0e0ac1f167..116097a404 100644
--- a/builtin/diff-tree.c
+++ b/builtin/diff-tree.c
@@ -195,6 +195,7 @@ int cmd_diff_tree(int argc, const char **argv, const char *prefix)
int saved_dcctc = 0;
opt->diffopt.rotate_to_strict = 0;
+ opt->diffopt.no_free = 1;
if (opt->diffopt.detect_rename) {
if (!the_index.cache)
repo_read_index(the_repository);
@@ -217,6 +218,8 @@ int cmd_diff_tree(int argc, const char **argv, const char *prefix)
}
opt->diffopt.degraded_cc_to_c = saved_dcctc;
opt->diffopt.needed_rename_limit = saved_nrl;
+ opt->diffopt.no_free = 0;
+ diff_free(&opt->diffopt);
}
return diff_result_code(&opt->diffopt, 0);
diff --git a/builtin/diff.c b/builtin/diff.c
index 8dd4909b97..3397f44d5a 100644
--- a/builtin/diff.c
+++ b/builtin/diff.c
@@ -28,9 +28,9 @@ static const char builtin_diff_usage[] =
"git diff [<options>] [<commit>] [--] [<path>...]\n"
" or: git diff [<options>] --cached [--merge-base] [<commit>] [--] [<path>...]\n"
" or: git diff [<options>] [--merge-base] <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"
+" 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)
diff --git a/builtin/difftool.c b/builtin/difftool.c
index c79fbbf67e..faa3507369 100644
--- a/builtin/difftool.c
+++ b/builtin/difftool.c
@@ -732,8 +732,9 @@ int cmd_difftool(int argc, const char **argv, const char *prefix)
} else if (dir_diff)
die(_("options '%s' and '%s' cannot be used together"), "--dir-diff", "--no-index");
- if (use_gui_tool + !!difftool_cmd + !!extcmd > 1)
- die(_("options '%s', '%s', and '%s' cannot be used together"), "--gui", "--tool", "--extcmd");
+ die_for_incompatible_opt3(use_gui_tool, "--gui",
+ !!difftool_cmd, "--tool",
+ !!extcmd, "--extcmd");
if (use_gui_tool)
setenv("GIT_MERGETOOL_GUI", "true", 1);
diff --git a/builtin/fast-export.c b/builtin/fast-export.c
index 9f1c730e58..1355b5a96d 100644
--- a/builtin/fast-export.c
+++ b/builtin/fast-export.c
@@ -26,7 +26,7 @@
#include "commit-slab.h"
static const char *fast_export_usage[] = {
- N_("git fast-export [rev-list-opts]"),
+ N_("git fast-export [<rev-list-opts>]"),
NULL
};
@@ -300,7 +300,7 @@ static void export_blob(const struct object_id *oid)
if (!buf)
die("could not read blob %s", oid_to_hex(oid));
if (check_object_signature(the_repository, oid, buf, size,
- type_name(type), NULL) < 0)
+ type) < 0)
die("oid mismatch in blob %s", oid_to_hex(oid));
object = parse_object_buffer(the_repository, oid, type,
size, buf, &eaten);
@@ -1261,6 +1261,7 @@ int cmd_fast_export(int argc, const char **argv, const char *prefix)
revs.diffopt.format_callback = show_filemodify;
revs.diffopt.format_callback_data = &paths_of_changed_objects;
revs.diffopt.flags.recursive = 1;
+ revs.diffopt.no_free = 1;
while ((commit = get_revision(&revs)))
handle_commit(commit, &revs, &paths_of_changed_objects);
diff --git a/builtin/fast-import.c b/builtin/fast-import.c
index 2b2e28bad7..28d3193c38 100644
--- a/builtin/fast-import.c
+++ b/builtin/fast-import.c
@@ -19,6 +19,7 @@
#include "mem-pool.h"
#include "commit-reach.h"
#include "khash.h"
+#include "date.h"
#define PACK_ID_BITS 16
#define MAX_PACK_ID ((1<<PACK_ID_BITS)-1)
@@ -176,8 +177,9 @@ static int global_argc;
static const char **global_argv;
/* Memory pools */
-static struct mem_pool fi_mem_pool = {NULL, 2*1024*1024 -
- sizeof(struct mp_block), 0 };
+static struct mem_pool fi_mem_pool = {
+ .block_alloc = 2*1024*1024 - sizeof(struct mp_block),
+};
/* Atom management */
static unsigned int atom_table_sz = 4451;
@@ -205,7 +207,9 @@ static int import_marks_file_done;
static int relative_marks_paths;
/* Our last blob */
-static struct last_object last_blob = { STRBUF_INIT, 0, 0, 0 };
+static struct last_object last_blob = {
+ .data = STRBUF_INIT,
+ };
/* Tree management */
static unsigned int tree_entry_alloc = 1000;
@@ -231,7 +235,10 @@ static struct tag *last_tag;
static whenspec_type whenspec = WHENSPEC_RAW;
static struct strbuf command_buf = STRBUF_INIT;
static int unread_command_buf;
-static struct recent_command cmd_hist = {&cmd_hist, &cmd_hist, NULL};
+static struct recent_command cmd_hist = {
+ .prev = &cmd_hist,
+ .next = &cmd_hist,
+};
static struct recent_command *cmd_tail = &cmd_hist;
static struct recent_command *rc_free;
static unsigned int cmd_save = 100;
@@ -858,7 +865,7 @@ static void end_packfile(void)
struct tag *t;
close_pack_windows(pack_data);
- finalize_hashfile(pack_file, cur_pack_oid.hash, 0);
+ finalize_hashfile(pack_file, cur_pack_oid.hash, FSYNC_COMPONENT_PACK, 0);
fixup_pack_header_footer(pack_data->pack_fd, pack_data->hash,
pack_data->pack_name, object_count,
cur_pack_oid.hash, pack_size);
@@ -937,8 +944,8 @@ static int store_object(
git_hash_ctx c;
git_zstream s;
- hdrlen = xsnprintf((char *)hdr, sizeof(hdr), "%s %lu",
- type_name(type), (unsigned long)dat->len) + 1;
+ hdrlen = format_object_header((char *)hdr, sizeof(hdr), type,
+ dat->len);
the_hash_algo->init_fn(&c);
the_hash_algo->update_fn(&c, hdr, hdrlen);
the_hash_algo->update_fn(&c, dat->buf, dat->len);
@@ -1091,7 +1098,7 @@ static void stream_blob(uintmax_t len, struct object_id *oidout, uintmax_t mark)
hashfile_checkpoint(pack_file, &checkpoint);
offset = checkpoint.offset;
- hdrlen = xsnprintf((char *)out_buf, out_sz, "blob %" PRIuMAX, len) + 1;
+ hdrlen = format_object_header((char *)out_buf, out_sz, OBJ_BLOB, len);
the_hash_algo->init_fn(&c);
the_hash_algo->update_fn(&c, out_buf, hdrlen);
@@ -2483,7 +2490,7 @@ static void note_change_n(const char *p, struct branch *b, unsigned char *old_fa
unsigned long size;
char *buf = read_object_with_reference(the_repository,
&commit_oid,
- commit_type, &size,
+ OBJ_COMMIT, &size,
&commit_oid);
if (!buf || size < the_hash_algo->hexsz + 6)
die("Not a valid commit: %s", p);
@@ -2555,7 +2562,7 @@ static void parse_from_existing(struct branch *b)
char *buf;
buf = read_object_with_reference(the_repository,
- &b->oid, commit_type, &size,
+ &b->oid, OBJ_COMMIT, &size,
&b->oid);
parse_from_commit(b, buf, size);
free(buf);
@@ -2651,7 +2658,7 @@ static struct hash_list *parse_merge(unsigned int *count)
unsigned long size;
char *buf = read_object_with_reference(the_repository,
&n->oid,
- commit_type,
+ OBJ_COMMIT,
&size, &n->oid);
if (!buf || size < the_hash_algo->hexsz + 6)
die("Not a valid commit: %s", from);
diff --git a/builtin/fetch-pack.c b/builtin/fetch-pack.c
index c2d96f4c89..f045bbbe94 100644
--- a/builtin/fetch-pack.c
+++ b/builtin/fetch-pack.c
@@ -153,11 +153,15 @@ int cmd_fetch_pack(int argc, const char **argv, const char *prefix)
args.from_promisor = 1;
continue;
}
- if (skip_prefix(arg, ("--" CL_ARG__FILTER "="), &arg)) {
+ if (!strcmp("--refetch", arg)) {
+ args.refetch = 1;
+ continue;
+ }
+ if (skip_prefix(arg, ("--filter="), &arg)) {
parse_list_objects_filter(&args.filter_options, arg);
continue;
}
- if (!strcmp(arg, ("--no-" CL_ARG__FILTER))) {
+ if (!strcmp(arg, ("--no-filter"))) {
list_objects_filter_set_no_filter(&args.filter_options);
continue;
}
diff --git a/builtin/fetch.c b/builtin/fetch.c
index 5f06b21f8e..e3791f09ed 100644
--- a/builtin/fetch.c
+++ b/builtin/fetch.c
@@ -59,7 +59,7 @@ static int prune_tags = -1; /* unspecified */
static int all, append, dry_run, force, keep, multiple, update_head_ok;
static int write_fetch_head = 1;
-static int verbosity, deepen_relative, set_upstream;
+static int verbosity, deepen_relative, set_upstream, refetch;
static int progress = -1;
static int enable_auto_gc = 1;
static int tags = TAGS_DEFAULT, unshallow, update_shallow, deepen;
@@ -76,6 +76,7 @@ static struct transport *gtransport;
static struct transport *gsecondary;
static const char *submodule_prefix = "";
static int recurse_submodules = RECURSE_SUBMODULES_DEFAULT;
+static int recurse_submodules_cli = RECURSE_SUBMODULES_DEFAULT;
static int recurse_submodules_default = RECURSE_SUBMODULES_ON_DEMAND;
static int shown_url = 0;
static struct refspec refmap = REFSPEC_INIT_FETCH;
@@ -167,7 +168,7 @@ static struct option builtin_fetch_options[] = {
N_("prune remote-tracking branches no longer on remote")),
OPT_BOOL('P', "prune-tags", &prune_tags,
N_("prune local tags no longer on remote and clobber changed tags")),
- OPT_CALLBACK_F(0, "recurse-submodules", &recurse_submodules, N_("on-demand"),
+ OPT_CALLBACK_F(0, "recurse-submodules", &recurse_submodules_cli, N_("on-demand"),
N_("control recursive fetching of submodules"),
PARSE_OPT_OPTARG, option_fetch_parse_recurse_submodules),
OPT_BOOL(0, "dry-run", &dry_run,
@@ -189,6 +190,9 @@ static struct option builtin_fetch_options[] = {
OPT_SET_INT_F(0, "unshallow", &unshallow,
N_("convert to a complete repository"),
1, PARSE_OPT_NONEG),
+ OPT_SET_INT_F(0, "refetch", &refetch,
+ N_("re-fetch without negotiating common commits"),
+ 1, PARSE_OPT_NONEG),
{ OPTION_STRING, 0, "submodule-prefix", &submodule_prefix, N_("dir"),
N_("prepend this to submodule path output"), PARSE_OPT_HIDDEN },
OPT_CALLBACK_F(0, "recurse-submodules-default",
@@ -348,7 +352,19 @@ static void clear_item(struct refname_hash_entry *item)
item->ignore = 1;
}
+
+static void add_already_queued_tags(const char *refname,
+ const struct object_id *old_oid,
+ const struct object_id *new_oid,
+ void *cb_data)
+{
+ struct hashmap *queued_tags = cb_data;
+ if (starts_with(refname, "refs/tags/") && new_oid)
+ (void) refname_hash_add(queued_tags, refname, new_oid);
+}
+
static void find_non_local_tags(const struct ref *refs,
+ struct ref_transaction *transaction,
struct ref **head,
struct ref ***tail)
{
@@ -366,6 +382,16 @@ static void find_non_local_tags(const struct ref *refs,
create_fetch_oidset(head, &fetch_oids);
for_each_ref(add_one_refname, &existing_refs);
+
+ /*
+ * If we already have a transaction, then we need to filter out all
+ * tags which have already been queued up.
+ */
+ if (transaction)
+ ref_transaction_for_each_queued_update(transaction,
+ add_already_queued_tags,
+ &existing_refs);
+
for (ref = refs; ref; ref = ref->next) {
if (!starts_with(ref->name, "refs/tags/"))
continue;
@@ -599,7 +625,7 @@ static struct ref *get_ref_map(struct remote *remote,
/* also fetch all tags */
get_fetch_map(remote_refs, tag_refspec, &tail, 0);
else if (tags == TAGS_DEFAULT && *autotags)
- find_non_local_tags(remote_refs, &ref_map, &tail);
+ find_non_local_tags(remote_refs, NULL, &ref_map, &tail);
/* Now append any refs to be updated opportunistically: */
*tail = orefs;
@@ -763,8 +789,8 @@ static void prepare_format_display(struct ref *ref_map)
else if (!strcasecmp(format, "compact"))
compact_format = 1;
else
- die(_("configuration fetch.output contains invalid value %s"),
- format);
+ die(_("invalid value for '%s': '%s'"),
+ "fetch.output", format);
for (rm = ref_map; rm; rm = rm->next) {
if (rm->status == REF_STATUS_REJECT_SHALLOW ||
@@ -1082,22 +1108,20 @@ N_("it took %.2f seconds to check forced updates; you can use\n"
"to avoid this check\n");
static int store_updated_refs(const char *raw_url, const char *remote_name,
- int connectivity_checked, struct ref *ref_map,
- struct worktree **worktrees)
+ int connectivity_checked,
+ struct ref_transaction *transaction, struct ref *ref_map,
+ struct fetch_head *fetch_head, struct worktree **worktrees)
{
- struct fetch_head fetch_head;
int url_len, i, rc = 0;
struct strbuf note = STRBUF_INIT, err = STRBUF_INIT;
- struct ref_transaction *transaction = NULL;
const char *what, *kind;
struct ref *rm;
char *url;
int want_status;
- int summary_width = transport_summary_width(ref_map);
+ int summary_width = 0;
- rc = open_fetch_head(&fetch_head);
- if (rc)
- return -1;
+ if (verbosity >= 0)
+ summary_width = transport_summary_width(ref_map);
if (raw_url)
url = transport_anonymize_url(raw_url);
@@ -1114,14 +1138,6 @@ static int store_updated_refs(const char *raw_url, const char *remote_name,
}
}
- if (atomic_fetch) {
- transaction = ref_transaction_begin(&err);
- if (!transaction) {
- error("%s", err.buf);
- goto abort;
- }
- }
-
prepare_format_display(ref_map);
/*
@@ -1133,7 +1149,6 @@ static int store_updated_refs(const char *raw_url, const char *remote_name,
want_status <= FETCH_HEAD_IGNORE;
want_status++) {
for (rm = ref_map; rm; rm = rm->next) {
- struct commit *commit = NULL;
struct ref *ref = NULL;
if (rm->status == REF_STATUS_REJECT_SHALLOW) {
@@ -1144,21 +1159,34 @@ static int store_updated_refs(const char *raw_url, const char *remote_name,
}
/*
- * References in "refs/tags/" are often going to point
- * to annotated tags, which are not part of the
- * commit-graph. We thus only try to look up refs in
- * the graph which are not in that namespace to not
- * regress performance in repositories with many
- * annotated tags.
+ * When writing FETCH_HEAD we need to determine whether
+ * we already have the commit or not. If not, then the
+ * reference is not for merge and needs to be written
+ * to the reflog after other commits which we already
+ * have. We're not interested in this property though
+ * in case FETCH_HEAD is not to be updated, so we can
+ * skip the classification in that case.
*/
- if (!starts_with(rm->name, "refs/tags/"))
- commit = lookup_commit_in_graph(the_repository, &rm->old_oid);
- if (!commit) {
- commit = lookup_commit_reference_gently(the_repository,
- &rm->old_oid,
- 1);
- if (!commit)
- rm->fetch_head_status = FETCH_HEAD_NOT_FOR_MERGE;
+ if (fetch_head->fp) {
+ struct commit *commit = NULL;
+
+ /*
+ * References in "refs/tags/" are often going to point
+ * to annotated tags, which are not part of the
+ * commit-graph. We thus only try to look up refs in
+ * the graph which are not in that namespace to not
+ * regress performance in repositories with many
+ * annotated tags.
+ */
+ if (!starts_with(rm->name, "refs/tags/"))
+ commit = lookup_commit_in_graph(the_repository, &rm->old_oid);
+ if (!commit) {
+ commit = lookup_commit_reference_gently(the_repository,
+ &rm->old_oid,
+ 1);
+ if (!commit)
+ rm->fetch_head_status = FETCH_HEAD_NOT_FOR_MERGE;
+ }
}
if (rm->fetch_head_status != want_status)
@@ -1205,7 +1233,7 @@ static int store_updated_refs(const char *raw_url, const char *remote_name,
strbuf_addf(&note, "'%s' of ", what);
}
- append_fetch_head(&fetch_head, &rm->old_oid,
+ append_fetch_head(fetch_head, &rm->old_oid,
rm->fetch_head_status,
note.buf, url, url_len);
@@ -1237,17 +1265,6 @@ static int store_updated_refs(const char *raw_url, const char *remote_name,
}
}
- if (!rc && transaction) {
- rc = ref_transaction_commit(transaction, &err);
- if (rc) {
- error("%s", err.buf);
- goto abort;
- }
- }
-
- if (!rc)
- commit_fetch_head(&fetch_head);
-
if (rc & STORE_REF_ERROR_DF_CONFLICT)
error(_("some local refs could not be updated; try running\n"
" 'git remote prune %s' to remove any old, conflicting "
@@ -1265,9 +1282,7 @@ static int store_updated_refs(const char *raw_url, const char *remote_name,
abort:
strbuf_release(&note);
strbuf_release(&err);
- ref_transaction_free(transaction);
free(url);
- close_fetch_head(&fetch_head);
return rc;
}
@@ -1293,6 +1308,14 @@ static int check_exist_and_connected(struct ref *ref_map)
return -1;
/*
+ * Similarly, if we need to refetch, we always want to perform a full
+ * fetch ignoring existing objects.
+ */
+ if (refetch)
+ return -1;
+
+
+ /*
* check_connected() allows objects to merely be promised, but
* we need all direct targets to exist.
*/
@@ -1307,7 +1330,9 @@ static int check_exist_and_connected(struct ref *ref_map)
}
static int fetch_and_consume_refs(struct transport *transport,
+ struct ref_transaction *transaction,
struct ref *ref_map,
+ struct fetch_head *fetch_head,
struct worktree **worktrees)
{
int connectivity_checked = 1;
@@ -1330,7 +1355,8 @@ static int fetch_and_consume_refs(struct transport *transport,
trace2_region_enter("fetch", "consume_refs", the_repository);
ret = store_updated_refs(transport->url, transport->remote->name,
- connectivity_checked, ref_map, worktrees);
+ connectivity_checked, transaction, ref_map,
+ fetch_head, worktrees);
trace2_region_leave("fetch", "consume_refs", the_repository);
out:
@@ -1338,13 +1364,15 @@ out:
return ret;
}
-static int prune_refs(struct refspec *rs, struct ref *ref_map,
+static int prune_refs(struct refspec *rs,
+ struct ref_transaction *transaction,
+ struct ref *ref_map,
const char *raw_url)
{
int url_len, i, result = 0;
struct ref *ref, *stale_refs = get_stale_heads(rs, ref_map);
+ struct strbuf err = STRBUF_INIT;
char *url;
- int summary_width = transport_summary_width(stale_refs);
const char *dangling_msg = dry_run
? _(" (%s will become dangling)")
: _(" (%s has become dangling)");
@@ -1363,16 +1391,27 @@ static int prune_refs(struct refspec *rs, struct ref *ref_map,
url_len = i - 3;
if (!dry_run) {
- struct string_list refnames = STRING_LIST_INIT_NODUP;
+ if (transaction) {
+ for (ref = stale_refs; ref; ref = ref->next) {
+ result = ref_transaction_delete(transaction, ref->name, NULL, 0,
+ "fetch: prune", &err);
+ if (result)
+ goto cleanup;
+ }
+ } else {
+ struct string_list refnames = STRING_LIST_INIT_NODUP;
- for (ref = stale_refs; ref; ref = ref->next)
- string_list_append(&refnames, ref->name);
+ for (ref = stale_refs; ref; ref = ref->next)
+ string_list_append(&refnames, ref->name);
- result = delete_refs("fetch: prune", &refnames, 0);
- string_list_clear(&refnames, 0);
+ result = delete_refs("fetch: prune", &refnames, 0);
+ string_list_clear(&refnames, 0);
+ }
}
if (verbosity >= 0) {
+ int summary_width = transport_summary_width(stale_refs);
+
for (ref = stale_refs; ref; ref = ref->next) {
struct strbuf sb = STRBUF_INIT;
if (!shown_url) {
@@ -1388,6 +1427,8 @@ static int prune_refs(struct refspec *rs, struct ref *ref_map,
}
}
+cleanup:
+ strbuf_release(&err);
free(url);
free_refs(stale_refs);
return result;
@@ -1487,6 +1528,8 @@ static struct transport *prepare_transport(struct remote *remote, int deepen)
set_option(transport, TRANS_OPT_DEEPEN_RELATIVE, "yes");
if (update_shallow)
set_option(transport, TRANS_OPT_UPDATE_SHALLOW, "yes");
+ if (refetch)
+ set_option(transport, TRANS_OPT_REFETCH, "yes");
if (filter_options.choice) {
const char *spec =
expand_list_objects_filter_spec(&filter_options);
@@ -1502,10 +1545,13 @@ static struct transport *prepare_transport(struct remote *remote, int deepen)
return transport;
}
-static void backfill_tags(struct transport *transport, struct ref *ref_map,
- struct worktree **worktrees)
+static int backfill_tags(struct transport *transport,
+ struct ref_transaction *transaction,
+ struct ref *ref_map,
+ struct fetch_head *fetch_head,
+ struct worktree **worktrees)
{
- int cannot_reuse;
+ int retcode, cannot_reuse;
/*
* Once we have set TRANS_OPT_DEEPEN_SINCE, we can't unset it
@@ -1524,18 +1570,21 @@ static void backfill_tags(struct transport *transport, struct ref *ref_map,
transport_set_option(transport, TRANS_OPT_FOLLOWTAGS, NULL);
transport_set_option(transport, TRANS_OPT_DEPTH, "0");
transport_set_option(transport, TRANS_OPT_DEEPEN_RELATIVE, NULL);
- fetch_and_consume_refs(transport, ref_map, worktrees);
+ retcode = fetch_and_consume_refs(transport, transaction, ref_map, fetch_head, worktrees);
if (gsecondary) {
transport_disconnect(gsecondary);
gsecondary = NULL;
}
+
+ return retcode;
}
static int do_fetch(struct transport *transport,
struct refspec *rs)
{
- struct ref *ref_map;
+ struct ref_transaction *transaction = NULL;
+ struct ref *ref_map = NULL;
int autotags = (transport->remote->fetch_tags == 1);
int retcode = 0;
const struct ref *remote_refs;
@@ -1543,6 +1592,8 @@ static int do_fetch(struct transport *transport,
TRANSPORT_LS_REFS_OPTIONS_INIT;
int must_list_refs = 1;
struct worktree **worktrees = get_worktrees();
+ struct fetch_head fetch_head = { 0 };
+ struct strbuf err = STRBUF_INIT;
if (tags == TAGS_DEFAULT) {
if (transport->remote->fetch_tags == 2)
@@ -1593,13 +1644,25 @@ static int do_fetch(struct transport *transport,
} else
remote_refs = NULL;
- strvec_clear(&transport_ls_refs_options.ref_prefixes);
+ transport_ls_refs_options_release(&transport_ls_refs_options);
ref_map = get_ref_map(transport->remote, remote_refs, rs,
tags, &autotags);
if (!update_head_ok)
check_not_current_branch(ref_map, worktrees);
+ retcode = open_fetch_head(&fetch_head);
+ if (retcode)
+ goto cleanup;
+
+ if (atomic_fetch) {
+ transaction = ref_transaction_begin(&err);
+ if (!transaction) {
+ retcode = error("%s", err.buf);
+ goto cleanup;
+ }
+ }
+
if (tags == TAGS_DEFAULT && autotags)
transport_set_option(transport, TRANS_OPT_FOLLOWTAGS, "1");
if (prune) {
@@ -1609,19 +1672,61 @@ static int do_fetch(struct transport *transport,
* don't care whether --tags was specified.
*/
if (rs->nr) {
- prune_refs(rs, ref_map, transport->url);
+ retcode = prune_refs(rs, transaction, ref_map, transport->url);
} else {
- prune_refs(&transport->remote->fetch,
- ref_map,
- transport->url);
+ retcode = prune_refs(&transport->remote->fetch,
+ transaction, ref_map,
+ transport->url);
}
+ if (retcode != 0)
+ retcode = 1;
}
- if (fetch_and_consume_refs(transport, ref_map, worktrees)) {
- free_refs(ref_map);
+
+ if (fetch_and_consume_refs(transport, transaction, ref_map, &fetch_head, worktrees)) {
retcode = 1;
goto cleanup;
}
+ /*
+ * If neither --no-tags nor --tags was specified, do automated tag
+ * following.
+ */
+ if (tags == TAGS_DEFAULT && autotags) {
+ struct ref *tags_ref_map = NULL, **tail = &tags_ref_map;
+
+ find_non_local_tags(remote_refs, transaction, &tags_ref_map, &tail);
+ if (tags_ref_map) {
+ /*
+ * If backfilling of tags fails then we want to tell
+ * the user so, but we have to continue regardless to
+ * populate upstream information of the references we
+ * have already fetched above. The exception though is
+ * when `--atomic` is passed: in that case we'll abort
+ * the transaction and don't commit anything.
+ */
+ if (backfill_tags(transport, transaction, tags_ref_map,
+ &fetch_head, worktrees))
+ retcode = 1;
+ }
+
+ free_refs(tags_ref_map);
+ }
+
+ if (transaction) {
+ if (retcode)
+ goto cleanup;
+
+ retcode = ref_transaction_commit(transaction, &err);
+ if (retcode) {
+ error("%s", err.buf);
+ ref_transaction_free(transaction);
+ transaction = NULL;
+ goto cleanup;
+ }
+ }
+
+ commit_fetch_head(&fetch_head);
+
if (set_upstream) {
struct branch *branch = branch_get("HEAD");
struct ref *rm;
@@ -1641,7 +1746,7 @@ static int do_fetch(struct transport *transport,
if (!rm->peer_ref) {
if (source_ref) {
warning(_("multiple branches detected, incompatible with --set-upstream"));
- goto skip;
+ goto cleanup;
} else {
source_ref = rm;
}
@@ -1655,7 +1760,7 @@ static int do_fetch(struct transport *transport,
warning(_("could not set upstream of HEAD to '%s' from '%s' when "
"it does not point to any branch."),
shortname, transport->remote->name);
- goto skip;
+ goto cleanup;
}
if (!strcmp(source_ref->name, "HEAD") ||
@@ -1675,21 +1780,16 @@ static int do_fetch(struct transport *transport,
"you need to specify exactly one branch with the --set-upstream option"));
}
}
-skip:
- free_refs(ref_map);
- /* if neither --no-tags nor --tags was specified, do automated tag
- * following ... */
- if (tags == TAGS_DEFAULT && autotags) {
- struct ref **tail = &ref_map;
- ref_map = NULL;
- find_non_local_tags(remote_refs, &ref_map, &tail);
- if (ref_map)
- backfill_tags(transport, ref_map, worktrees);
- free_refs(ref_map);
+cleanup:
+ if (retcode && transaction) {
+ ref_transaction_abort(transaction, &err);
+ error("%s", err.buf);
}
-cleanup:
+ close_fetch_head(&fetch_head);
+ strbuf_release(&err);
+ free_refs(ref_map);
free_worktrees(worktrees);
return retcode;
}
@@ -2014,11 +2114,35 @@ int cmd_fetch(int argc, const char **argv, const char *prefix)
}
git_config(git_fetch_config, NULL);
- prepare_repo_settings(the_repository);
- the_repository->settings.command_requires_full_index = 0;
+ if (the_repository->gitdir) {
+ prepare_repo_settings(the_repository);
+ the_repository->settings.command_requires_full_index = 0;
+ }
argc = parse_options(argc, argv, prefix,
builtin_fetch_options, builtin_fetch_usage, 0);
+
+ if (recurse_submodules_cli != RECURSE_SUBMODULES_DEFAULT)
+ recurse_submodules = recurse_submodules_cli;
+
+ if (negotiate_only) {
+ switch (recurse_submodules_cli) {
+ case RECURSE_SUBMODULES_OFF:
+ case RECURSE_SUBMODULES_DEFAULT:
+ /*
+ * --negotiate-only should never recurse into
+ * submodules. Skip it by setting recurse_submodules to
+ * RECURSE_SUBMODULES_OFF.
+ */
+ recurse_submodules = RECURSE_SUBMODULES_OFF;
+ break;
+
+ default:
+ die(_("options '%s' and '%s' cannot be used together"),
+ "--negotiate-only", "--recurse-submodules");
+ }
+ }
+
if (recurse_submodules != RECURSE_SUBMODULES_OFF) {
int *sfjc = submodule_fetch_jobs_config == -1
? &submodule_fetch_jobs_config : NULL;
@@ -2029,7 +2153,7 @@ int cmd_fetch(int argc, const char **argv, const char *prefix)
}
if (negotiate_only && !negotiation_tip.nr)
- die(_("--negotiate-only needs one or more --negotiate-tip=*"));
+ die(_("--negotiate-only needs one or more --negotiation-tip=*"));
if (deepen_relative) {
if (deepen_relative < 0)
@@ -2100,7 +2224,8 @@ int cmd_fetch(int argc, const char **argv, const char *prefix)
gtransport->smart_options->acked_commits = &acked_commits;
} else {
warning(_("protocol does not support --negotiate-only, exiting"));
- return 1;
+ result = 1;
+ goto cleanup;
}
if (server_options.nr)
gtransport->server_options = &server_options;
@@ -2146,17 +2271,26 @@ int cmd_fetch(int argc, const char **argv, const char *prefix)
max_children = fetch_parallel_config;
add_options_to_argv(&options);
- result = fetch_populated_submodules(the_repository,
- &options,
- submodule_prefix,
- recurse_submodules,
- recurse_submodules_default,
- verbosity < 0,
- max_children);
+ result = fetch_submodules(the_repository,
+ &options,
+ submodule_prefix,
+ recurse_submodules,
+ recurse_submodules_default,
+ verbosity < 0,
+ max_children);
strvec_clear(&options);
}
- string_list_clear(&list, 0);
+ /*
+ * Skip irrelevant tasks because we know objects were not
+ * fetched.
+ *
+ * NEEDSWORK: as a future optimization, we can return early
+ * whenever objects were not fetched e.g. if we already have all
+ * of them.
+ */
+ if (negotiate_only)
+ goto cleanup;
prepare_repo_settings(the_repository);
if (fetch_write_commit_graph > 0 ||
@@ -2172,8 +2306,27 @@ int cmd_fetch(int argc, const char **argv, const char *prefix)
NULL);
}
- if (enable_auto_gc)
+ if (enable_auto_gc) {
+ if (refetch) {
+ /*
+ * Hint auto-maintenance strongly to encourage repacking,
+ * but respect config settings disabling it.
+ */
+ int opt_val;
+ if (git_config_get_int("gc.autopacklimit", &opt_val))
+ opt_val = -1;
+ if (opt_val != 0)
+ git_config_push_parameter("gc.autoPackLimit=1");
+
+ if (git_config_get_int("maintenance.incremental-repack.auto", &opt_val))
+ opt_val = -1;
+ if (opt_val != 0)
+ git_config_push_parameter("maintenance.incremental-repack.auto=-1");
+ }
run_auto_maintenance(verbosity < 0);
+ }
+ cleanup:
+ string_list_clear(&list, 0);
return result;
}
diff --git a/builtin/fsmonitor--daemon.c b/builtin/fsmonitor--daemon.c
new file mode 100644
index 0000000000..46be55a461
--- /dev/null
+++ b/builtin/fsmonitor--daemon.c
@@ -0,0 +1,1479 @@
+#include "builtin.h"
+#include "config.h"
+#include "parse-options.h"
+#include "fsmonitor.h"
+#include "fsmonitor-ipc.h"
+#include "compat/fsmonitor/fsm-listen.h"
+#include "fsmonitor--daemon.h"
+#include "simple-ipc.h"
+#include "khash.h"
+#include "pkt-line.h"
+
+static const char * const builtin_fsmonitor__daemon_usage[] = {
+ N_("git fsmonitor--daemon start [<options>]"),
+ N_("git fsmonitor--daemon run [<options>]"),
+ N_("git fsmonitor--daemon stop"),
+ N_("git fsmonitor--daemon status"),
+ NULL
+};
+
+#ifdef HAVE_FSMONITOR_DAEMON_BACKEND
+/*
+ * Global state loaded from config.
+ */
+#define FSMONITOR__IPC_THREADS "fsmonitor.ipcthreads"
+static int fsmonitor__ipc_threads = 8;
+
+#define FSMONITOR__START_TIMEOUT "fsmonitor.starttimeout"
+static int fsmonitor__start_timeout_sec = 60;
+
+#define FSMONITOR__ANNOUNCE_STARTUP "fsmonitor.announcestartup"
+static int fsmonitor__announce_startup = 0;
+
+static int fsmonitor_config(const char *var, const char *value, void *cb)
+{
+ if (!strcmp(var, FSMONITOR__IPC_THREADS)) {
+ int i = git_config_int(var, value);
+ if (i < 1)
+ return error(_("value of '%s' out of range: %d"),
+ FSMONITOR__IPC_THREADS, i);
+ fsmonitor__ipc_threads = i;
+ return 0;
+ }
+
+ if (!strcmp(var, FSMONITOR__START_TIMEOUT)) {
+ int i = git_config_int(var, value);
+ if (i < 0)
+ return error(_("value of '%s' out of range: %d"),
+ FSMONITOR__START_TIMEOUT, i);
+ fsmonitor__start_timeout_sec = i;
+ return 0;
+ }
+
+ if (!strcmp(var, FSMONITOR__ANNOUNCE_STARTUP)) {
+ int is_bool;
+ int i = git_config_bool_or_int(var, value, &is_bool);
+ if (i < 0)
+ return error(_("value of '%s' not bool or int: %d"),
+ var, i);
+ fsmonitor__announce_startup = i;
+ return 0;
+ }
+
+ return git_default_config(var, value, cb);
+}
+
+/*
+ * Acting as a CLIENT.
+ *
+ * Send a "quit" command to the `git-fsmonitor--daemon` (if running)
+ * and wait for it to shutdown.
+ */
+static int do_as_client__send_stop(void)
+{
+ struct strbuf answer = STRBUF_INIT;
+ int ret;
+
+ ret = fsmonitor_ipc__send_command("quit", &answer);
+
+ /* The quit command does not return any response data. */
+ strbuf_release(&answer);
+
+ if (ret)
+ return ret;
+
+ trace2_region_enter("fsm_client", "polling-for-daemon-exit", NULL);
+ while (fsmonitor_ipc__get_state() == IPC_STATE__LISTENING)
+ sleep_millisec(50);
+ trace2_region_leave("fsm_client", "polling-for-daemon-exit", NULL);
+
+ return 0;
+}
+
+static int do_as_client__status(void)
+{
+ enum ipc_active_state state = fsmonitor_ipc__get_state();
+
+ switch (state) {
+ case IPC_STATE__LISTENING:
+ printf(_("fsmonitor-daemon is watching '%s'\n"),
+ the_repository->worktree);
+ return 0;
+
+ default:
+ printf(_("fsmonitor-daemon is not watching '%s'\n"),
+ the_repository->worktree);
+ return 1;
+ }
+}
+
+enum fsmonitor_cookie_item_result {
+ FCIR_ERROR = -1, /* could not create cookie file ? */
+ FCIR_INIT,
+ FCIR_SEEN,
+ FCIR_ABORT,
+};
+
+struct fsmonitor_cookie_item {
+ struct hashmap_entry entry;
+ char *name;
+ enum fsmonitor_cookie_item_result result;
+};
+
+static int cookies_cmp(const void *data, const struct hashmap_entry *he1,
+ const struct hashmap_entry *he2, const void *keydata)
+{
+ const struct fsmonitor_cookie_item *a =
+ container_of(he1, const struct fsmonitor_cookie_item, entry);
+ const struct fsmonitor_cookie_item *b =
+ container_of(he2, const struct fsmonitor_cookie_item, entry);
+
+ return strcmp(a->name, keydata ? keydata : b->name);
+}
+
+static enum fsmonitor_cookie_item_result with_lock__wait_for_cookie(
+ struct fsmonitor_daemon_state *state)
+{
+ /* assert current thread holding state->main_lock */
+
+ int fd;
+ struct fsmonitor_cookie_item *cookie;
+ struct strbuf cookie_pathname = STRBUF_INIT;
+ struct strbuf cookie_filename = STRBUF_INIT;
+ enum fsmonitor_cookie_item_result result;
+ int my_cookie_seq;
+
+ CALLOC_ARRAY(cookie, 1);
+
+ my_cookie_seq = state->cookie_seq++;
+
+ strbuf_addf(&cookie_filename, "%i-%i", getpid(), my_cookie_seq);
+
+ strbuf_addbuf(&cookie_pathname, &state->path_cookie_prefix);
+ strbuf_addbuf(&cookie_pathname, &cookie_filename);
+
+ cookie->name = strbuf_detach(&cookie_filename, NULL);
+ cookie->result = FCIR_INIT;
+ hashmap_entry_init(&cookie->entry, strhash(cookie->name));
+
+ hashmap_add(&state->cookies, &cookie->entry);
+
+ trace_printf_key(&trace_fsmonitor, "cookie-wait: '%s' '%s'",
+ cookie->name, cookie_pathname.buf);
+
+ /*
+ * Create the cookie file on disk and then wait for a notification
+ * that the listener thread has seen it.
+ */
+ fd = open(cookie_pathname.buf, O_WRONLY | O_CREAT | O_EXCL, 0600);
+ if (fd < 0) {
+ error_errno(_("could not create fsmonitor cookie '%s'"),
+ cookie->name);
+
+ cookie->result = FCIR_ERROR;
+ goto done;
+ }
+
+ /*
+ * Technically, close() and unlink() can fail, but we don't
+ * care here. We only created the file to trigger a watch
+ * event from the FS to know that when we're up to date.
+ */
+ close(fd);
+ unlink(cookie_pathname.buf);
+
+ /*
+ * Technically, this is an infinite wait (well, unless another
+ * thread sends us an abort). I'd like to change this to
+ * use `pthread_cond_timedwait()` and return an error/timeout
+ * and let the caller do the trivial response thing, but we
+ * don't have that routine in our thread-utils.
+ *
+ * After extensive beta testing I'm not really worried about
+ * this. Also note that the above open() and unlink() calls
+ * will cause at least two FS events on that path, so the odds
+ * of getting stuck are pretty slim.
+ */
+ while (cookie->result == FCIR_INIT)
+ pthread_cond_wait(&state->cookies_cond,
+ &state->main_lock);
+
+done:
+ hashmap_remove(&state->cookies, &cookie->entry, NULL);
+
+ result = cookie->result;
+
+ free(cookie->name);
+ free(cookie);
+ strbuf_release(&cookie_pathname);
+
+ return result;
+}
+
+/*
+ * Mark these cookies as _SEEN and wake up the corresponding client threads.
+ */
+static void with_lock__mark_cookies_seen(struct fsmonitor_daemon_state *state,
+ const struct string_list *cookie_names)
+{
+ /* assert current thread holding state->main_lock */
+
+ int k;
+ int nr_seen = 0;
+
+ for (k = 0; k < cookie_names->nr; k++) {
+ struct fsmonitor_cookie_item key;
+ struct fsmonitor_cookie_item *cookie;
+
+ key.name = cookie_names->items[k].string;
+ hashmap_entry_init(&key.entry, strhash(key.name));
+
+ cookie = hashmap_get_entry(&state->cookies, &key, entry, NULL);
+ if (cookie) {
+ trace_printf_key(&trace_fsmonitor, "cookie-seen: '%s'",
+ cookie->name);
+ cookie->result = FCIR_SEEN;
+ nr_seen++;
+ }
+ }
+
+ if (nr_seen)
+ pthread_cond_broadcast(&state->cookies_cond);
+}
+
+/*
+ * Set _ABORT on all pending cookies and wake up all client threads.
+ */
+static void with_lock__abort_all_cookies(struct fsmonitor_daemon_state *state)
+{
+ /* assert current thread holding state->main_lock */
+
+ struct hashmap_iter iter;
+ struct fsmonitor_cookie_item *cookie;
+ int nr_aborted = 0;
+
+ hashmap_for_each_entry(&state->cookies, &iter, cookie, entry) {
+ trace_printf_key(&trace_fsmonitor, "cookie-abort: '%s'",
+ cookie->name);
+ cookie->result = FCIR_ABORT;
+ nr_aborted++;
+ }
+
+ if (nr_aborted)
+ pthread_cond_broadcast(&state->cookies_cond);
+}
+
+/*
+ * Requests to and from a FSMonitor Protocol V2 provider use an opaque
+ * "token" as a virtual timestamp. Clients can request a summary of all
+ * created/deleted/modified files relative to a token. In the response,
+ * clients receive a new token for the next (relative) request.
+ *
+ *
+ * Token Format
+ * ============
+ *
+ * The contents of the token are private and provider-specific.
+ *
+ * For the built-in fsmonitor--daemon, we define a token as follows:
+ *
+ * "builtin" ":" <token_id> ":" <sequence_nr>
+ *
+ * The "builtin" prefix is used as a namespace to avoid conflicts
+ * with other providers (such as Watchman).
+ *
+ * The <token_id> is an arbitrary OPAQUE string, such as a GUID,
+ * UUID, or {timestamp,pid}. It is used to group all filesystem
+ * events that happened while the daemon was monitoring (and in-sync
+ * with the filesystem).
+ *
+ * Unlike FSMonitor Protocol V1, it is not defined as a timestamp
+ * and does not define less-than/greater-than relationships.
+ * (There are too many race conditions to rely on file system
+ * event timestamps.)
+ *
+ * The <sequence_nr> is a simple integer incremented whenever the
+ * daemon needs to make its state public. For example, if 1000 file
+ * system events come in, but no clients have requested the data,
+ * the daemon can continue to accumulate file changes in the same
+ * bin and does not need to advance the sequence number. However,
+ * as soon as a client does arrive, the daemon needs to start a new
+ * bin and increment the sequence number.
+ *
+ * The sequence number serves as the boundary between 2 sets
+ * of bins -- the older ones that the client has already seen
+ * and the newer ones that it hasn't.
+ *
+ * When a new <token_id> is created, the <sequence_nr> is reset to
+ * zero.
+ *
+ *
+ * About Token Ids
+ * ===============
+ *
+ * A new token_id is created:
+ *
+ * [1] each time the daemon is started.
+ *
+ * [2] any time that the daemon must re-sync with the filesystem
+ * (such as when the kernel drops or we miss events on a very
+ * active volume).
+ *
+ * [3] in response to a client "flush" command (for dropped event
+ * testing).
+ *
+ * When a new token_id is created, the daemon is free to discard all
+ * cached filesystem events associated with any previous token_ids.
+ * Events associated with a non-current token_id will never be sent
+ * to a client. A token_id change implicitly means that the daemon
+ * has gap in its event history.
+ *
+ * Therefore, clients that present a token with a stale (non-current)
+ * token_id will always be given a trivial response.
+ */
+struct fsmonitor_token_data {
+ struct strbuf token_id;
+ struct fsmonitor_batch *batch_head;
+ struct fsmonitor_batch *batch_tail;
+ uint64_t client_ref_count;
+};
+
+struct fsmonitor_batch {
+ struct fsmonitor_batch *next;
+ uint64_t batch_seq_nr;
+ const char **interned_paths;
+ size_t nr, alloc;
+ time_t pinned_time;
+};
+
+static struct fsmonitor_token_data *fsmonitor_new_token_data(void)
+{
+ static int test_env_value = -1;
+ static uint64_t flush_count = 0;
+ struct fsmonitor_token_data *token;
+ struct fsmonitor_batch *batch;
+
+ CALLOC_ARRAY(token, 1);
+ batch = fsmonitor_batch__new();
+
+ strbuf_init(&token->token_id, 0);
+ token->batch_head = batch;
+ token->batch_tail = batch;
+ token->client_ref_count = 0;
+
+ if (test_env_value < 0)
+ test_env_value = git_env_bool("GIT_TEST_FSMONITOR_TOKEN", 0);
+
+ if (!test_env_value) {
+ struct timeval tv;
+ struct tm tm;
+ time_t secs;
+
+ gettimeofday(&tv, NULL);
+ secs = tv.tv_sec;
+ gmtime_r(&secs, &tm);
+
+ strbuf_addf(&token->token_id,
+ "%"PRIu64".%d.%4d%02d%02dT%02d%02d%02d.%06ldZ",
+ flush_count++,
+ getpid(),
+ tm.tm_year + 1900, tm.tm_mon + 1, tm.tm_mday,
+ tm.tm_hour, tm.tm_min, tm.tm_sec,
+ (long)tv.tv_usec);
+ } else {
+ strbuf_addf(&token->token_id, "test_%08x", test_env_value++);
+ }
+
+ /*
+ * We created a new <token_id> and are starting a new series
+ * of tokens with a zero <seq_nr>.
+ *
+ * Since clients cannot guess our new (non test) <token_id>
+ * they will always receive a trivial response (because of the
+ * mismatch on the <token_id>). The trivial response will
+ * tell them our new <token_id> so that subsequent requests
+ * will be relative to our new series. (And when sending that
+ * response, we pin the current head of the batch list.)
+ *
+ * Even if the client correctly guesses the <token_id>, their
+ * request of "builtin:<token_id>:0" asks for all changes MORE
+ * RECENT than batch/bin 0.
+ *
+ * This implies that it is a waste to accumulate paths in the
+ * initial batch/bin (because they will never be transmitted).
+ *
+ * So the daemon could be running for days and watching the
+ * file system, but doesn't need to actually accumulate any
+ * paths UNTIL we need to set a reference point for a later
+ * relative request.
+ *
+ * However, it is very useful for testing to always have a
+ * reference point set. Pin batch 0 to force early file system
+ * events to accumulate.
+ */
+ if (test_env_value)
+ batch->pinned_time = time(NULL);
+
+ return token;
+}
+
+struct fsmonitor_batch *fsmonitor_batch__new(void)
+{
+ struct fsmonitor_batch *batch;
+
+ CALLOC_ARRAY(batch, 1);
+
+ return batch;
+}
+
+void fsmonitor_batch__free_list(struct fsmonitor_batch *batch)
+{
+ while (batch) {
+ struct fsmonitor_batch *next = batch->next;
+
+ /*
+ * The actual strings within the array of this batch
+ * are interned, so we don't own them. We only own
+ * the array.
+ */
+ free(batch->interned_paths);
+ free(batch);
+
+ batch = next;
+ }
+}
+
+void fsmonitor_batch__add_path(struct fsmonitor_batch *batch,
+ const char *path)
+{
+ const char *interned_path = strintern(path);
+
+ trace_printf_key(&trace_fsmonitor, "event: %s", interned_path);
+
+ ALLOC_GROW(batch->interned_paths, batch->nr + 1, batch->alloc);
+ batch->interned_paths[batch->nr++] = interned_path;
+}
+
+static void fsmonitor_batch__combine(struct fsmonitor_batch *batch_dest,
+ const struct fsmonitor_batch *batch_src)
+{
+ size_t k;
+
+ ALLOC_GROW(batch_dest->interned_paths,
+ batch_dest->nr + batch_src->nr + 1,
+ batch_dest->alloc);
+
+ for (k = 0; k < batch_src->nr; k++)
+ batch_dest->interned_paths[batch_dest->nr++] =
+ batch_src->interned_paths[k];
+}
+
+/*
+ * To keep the batch list from growing unbounded in response to filesystem
+ * activity, we try to truncate old batches from the end of the list as
+ * they become irrelevant.
+ *
+ * We assume that the .git/index will be updated with the most recent token
+ * any time the index is updated. And future commands will only ask for
+ * recent changes *since* that new token. So as tokens advance into the
+ * future, older batch items will never be requested/needed. So we can
+ * truncate them without loss of functionality.
+ *
+ * However, multiple commands may be talking to the daemon concurrently
+ * or perform a slow command, so a little "token skew" is possible.
+ * Therefore, we want this to be a little bit lazy and have a generous
+ * delay.
+ *
+ * The current reader thread walked backwards in time from `token->batch_head`
+ * back to `batch_marker` somewhere in the middle of the batch list.
+ *
+ * Let's walk backwards in time from that marker an arbitrary delay
+ * and truncate the list there. Note that these timestamps are completely
+ * artificial (based on when we pinned the batch item) and not on any
+ * filesystem activity.
+ *
+ * Return the obsolete portion of the list after we have removed it from
+ * the official list so that the caller can free it after leaving the lock.
+ */
+#define MY_TIME_DELAY_SECONDS (5 * 60) /* seconds */
+
+static struct fsmonitor_batch *with_lock__truncate_old_batches(
+ struct fsmonitor_daemon_state *state,
+ const struct fsmonitor_batch *batch_marker)
+{
+ /* assert current thread holding state->main_lock */
+
+ const struct fsmonitor_batch *batch;
+ struct fsmonitor_batch *remainder;
+
+ if (!batch_marker)
+ return NULL;
+
+ trace_printf_key(&trace_fsmonitor, "Truncate: mark (%"PRIu64",%"PRIu64")",
+ batch_marker->batch_seq_nr,
+ (uint64_t)batch_marker->pinned_time);
+
+ for (batch = batch_marker; batch; batch = batch->next) {
+ time_t t;
+
+ if (!batch->pinned_time) /* an overflow batch */
+ continue;
+
+ t = batch->pinned_time + MY_TIME_DELAY_SECONDS;
+ if (t > batch_marker->pinned_time) /* too close to marker */
+ continue;
+
+ goto truncate_past_here;
+ }
+
+ return NULL;
+
+truncate_past_here:
+ state->current_token_data->batch_tail = (struct fsmonitor_batch *)batch;
+
+ remainder = ((struct fsmonitor_batch *)batch)->next;
+ ((struct fsmonitor_batch *)batch)->next = NULL;
+
+ return remainder;
+}
+
+static void fsmonitor_free_token_data(struct fsmonitor_token_data *token)
+{
+ if (!token)
+ return;
+
+ assert(token->client_ref_count == 0);
+
+ strbuf_release(&token->token_id);
+
+ fsmonitor_batch__free_list(token->batch_head);
+
+ free(token);
+}
+
+/*
+ * Flush all of our cached data about the filesystem. Call this if we
+ * lose sync with the filesystem and miss some notification events.
+ *
+ * [1] If we are missing events, then we no longer have a complete
+ * history of the directory (relative to our current start token).
+ * We should create a new token and start fresh (as if we just
+ * booted up).
+ *
+ * [2] Some of those lost events may have been for cookie files. We
+ * should assume the worst and abort them rather letting them starve.
+ *
+ * If there are no concurrent threads reading the current token data
+ * series, we can free it now. Otherwise, let the last reader free
+ * it.
+ *
+ * Either way, the old token data series is no longer associated with
+ * our state data.
+ */
+static void with_lock__do_force_resync(struct fsmonitor_daemon_state *state)
+{
+ /* assert current thread holding state->main_lock */
+
+ struct fsmonitor_token_data *free_me = NULL;
+ struct fsmonitor_token_data *new_one = NULL;
+
+ new_one = fsmonitor_new_token_data();
+
+ if (state->current_token_data->client_ref_count == 0)
+ free_me = state->current_token_data;
+ state->current_token_data = new_one;
+
+ fsmonitor_free_token_data(free_me);
+
+ with_lock__abort_all_cookies(state);
+}
+
+void fsmonitor_force_resync(struct fsmonitor_daemon_state *state)
+{
+ pthread_mutex_lock(&state->main_lock);
+ with_lock__do_force_resync(state);
+ pthread_mutex_unlock(&state->main_lock);
+}
+
+/*
+ * Format an opaque token string to send to the client.
+ */
+static void with_lock__format_response_token(
+ struct strbuf *response_token,
+ const struct strbuf *response_token_id,
+ const struct fsmonitor_batch *batch)
+{
+ /* assert current thread holding state->main_lock */
+
+ strbuf_reset(response_token);
+ strbuf_addf(response_token, "builtin:%s:%"PRIu64,
+ response_token_id->buf, batch->batch_seq_nr);
+}
+
+/*
+ * Parse an opaque token from the client.
+ * Returns -1 on error.
+ */
+static int fsmonitor_parse_client_token(const char *buf_token,
+ struct strbuf *requested_token_id,
+ uint64_t *seq_nr)
+{
+ const char *p;
+ char *p_end;
+
+ strbuf_reset(requested_token_id);
+ *seq_nr = 0;
+
+ if (!skip_prefix(buf_token, "builtin:", &p))
+ return -1;
+
+ while (*p && *p != ':')
+ strbuf_addch(requested_token_id, *p++);
+ if (!*p++)
+ return -1;
+
+ *seq_nr = (uint64_t)strtoumax(p, &p_end, 10);
+ if (*p_end)
+ return -1;
+
+ return 0;
+}
+
+KHASH_INIT(str, const char *, int, 0, kh_str_hash_func, kh_str_hash_equal)
+
+static int do_handle_client(struct fsmonitor_daemon_state *state,
+ const char *command,
+ ipc_server_reply_cb *reply,
+ struct ipc_server_reply_data *reply_data)
+{
+ struct fsmonitor_token_data *token_data = NULL;
+ struct strbuf response_token = STRBUF_INIT;
+ struct strbuf requested_token_id = STRBUF_INIT;
+ struct strbuf payload = STRBUF_INIT;
+ uint64_t requested_oldest_seq_nr = 0;
+ uint64_t total_response_len = 0;
+ const char *p;
+ const struct fsmonitor_batch *batch_head;
+ const struct fsmonitor_batch *batch;
+ struct fsmonitor_batch *remainder = NULL;
+ intmax_t count = 0, duplicates = 0;
+ kh_str_t *shown;
+ int hash_ret;
+ int do_trivial = 0;
+ int do_flush = 0;
+ int do_cookie = 0;
+ enum fsmonitor_cookie_item_result cookie_result;
+
+ /*
+ * We expect `command` to be of the form:
+ *
+ * <command> := quit NUL
+ * | flush NUL
+ * | <V1-time-since-epoch-ns> NUL
+ * | <V2-opaque-fsmonitor-token> NUL
+ */
+
+ if (!strcmp(command, "quit")) {
+ /*
+ * A client has requested over the socket/pipe that the
+ * daemon shutdown.
+ *
+ * Tell the IPC thread pool to shutdown (which completes
+ * the await in the main thread (which can stop the
+ * fsmonitor listener thread)).
+ *
+ * There is no reply to the client.
+ */
+ return SIMPLE_IPC_QUIT;
+
+ } else if (!strcmp(command, "flush")) {
+ /*
+ * Flush all of our cached data and generate a new token
+ * just like if we lost sync with the filesystem.
+ *
+ * Then send a trivial response using the new token.
+ */
+ do_flush = 1;
+ do_trivial = 1;
+
+ } else if (!skip_prefix(command, "builtin:", &p)) {
+ /* assume V1 timestamp or garbage */
+
+ char *p_end;
+
+ strtoumax(command, &p_end, 10);
+ trace_printf_key(&trace_fsmonitor,
+ ((*p_end) ?
+ "fsmonitor: invalid command line '%s'" :
+ "fsmonitor: unsupported V1 protocol '%s'"),
+ command);
+ do_trivial = 1;
+
+ } else {
+ /* We have "builtin:*" */
+ if (fsmonitor_parse_client_token(command, &requested_token_id,
+ &requested_oldest_seq_nr)) {
+ trace_printf_key(&trace_fsmonitor,
+ "fsmonitor: invalid V2 protocol token '%s'",
+ command);
+ do_trivial = 1;
+
+ } else {
+ /*
+ * We have a V2 valid token:
+ * "builtin:<token_id>:<seq_nr>"
+ */
+ do_cookie = 1;
+ }
+ }
+
+ pthread_mutex_lock(&state->main_lock);
+
+ if (!state->current_token_data)
+ BUG("fsmonitor state does not have a current token");
+
+ /*
+ * Write a cookie file inside the directory being watched in
+ * an effort to flush out existing filesystem events that we
+ * actually care about. Suspend this client thread until we
+ * see the filesystem events for this cookie file.
+ *
+ * Creating the cookie lets us guarantee that our FS listener
+ * thread has drained the kernel queue and we are caught up
+ * with the kernel.
+ *
+ * If we cannot create the cookie (or otherwise guarantee that
+ * we are caught up), we send a trivial response. We have to
+ * assume that there might be some very, very recent activity
+ * on the FS still in flight.
+ */
+ if (do_cookie) {
+ cookie_result = with_lock__wait_for_cookie(state);
+ if (cookie_result != FCIR_SEEN) {
+ error(_("fsmonitor: cookie_result '%d' != SEEN"),
+ cookie_result);
+ do_trivial = 1;
+ }
+ }
+
+ if (do_flush)
+ with_lock__do_force_resync(state);
+
+ /*
+ * We mark the current head of the batch list as "pinned" so
+ * that the listener thread will treat this item as read-only
+ * (and prevent any more paths from being added to it) from
+ * now on.
+ */
+ token_data = state->current_token_data;
+ batch_head = token_data->batch_head;
+ ((struct fsmonitor_batch *)batch_head)->pinned_time = time(NULL);
+
+ /*
+ * FSMonitor Protocol V2 requires that we send a response header
+ * with a "new current token" and then all of the paths that changed
+ * since the "requested token". We send the seq_nr of the just-pinned
+ * head batch so that future requests from a client will be relative
+ * to it.
+ */
+ with_lock__format_response_token(&response_token,
+ &token_data->token_id, batch_head);
+
+ reply(reply_data, response_token.buf, response_token.len + 1);
+ total_response_len += response_token.len + 1;
+
+ trace2_data_string("fsmonitor", the_repository, "response/token",
+ response_token.buf);
+ trace_printf_key(&trace_fsmonitor, "response token: %s",
+ response_token.buf);
+
+ if (!do_trivial) {
+ if (strcmp(requested_token_id.buf, token_data->token_id.buf)) {
+ /*
+ * The client last spoke to a different daemon
+ * instance -OR- the daemon had to resync with
+ * the filesystem (and lost events), so reject.
+ */
+ trace2_data_string("fsmonitor", the_repository,
+ "response/token", "different");
+ do_trivial = 1;
+
+ } else if (requested_oldest_seq_nr <
+ token_data->batch_tail->batch_seq_nr) {
+ /*
+ * The client wants older events than we have for
+ * this token_id. This means that the end of our
+ * batch list was truncated and we cannot give the
+ * client a complete snapshot relative to their
+ * request.
+ */
+ trace_printf_key(&trace_fsmonitor,
+ "client requested truncated data");
+ do_trivial = 1;
+ }
+ }
+
+ if (do_trivial) {
+ pthread_mutex_unlock(&state->main_lock);
+
+ reply(reply_data, "/", 2);
+
+ trace2_data_intmax("fsmonitor", the_repository,
+ "response/trivial", 1);
+
+ goto cleanup;
+ }
+
+ /*
+ * We're going to hold onto a pointer to the current
+ * token-data while we walk the list of batches of files.
+ * During this time, we will NOT be under the lock.
+ * So we ref-count it.
+ *
+ * This allows the listener thread to continue prepending
+ * new batches of items to the token-data (which we'll ignore).
+ *
+ * AND it allows the listener thread to do a token-reset
+ * (and install a new `current_token_data`).
+ */
+ token_data->client_ref_count++;
+
+ pthread_mutex_unlock(&state->main_lock);
+
+ /*
+ * The client request is relative to the token that they sent,
+ * so walk the batch list backwards from the current head back
+ * to the batch (sequence number) they named.
+ *
+ * We use khash to de-dup the list of pathnames.
+ *
+ * NEEDSWORK: each batch contains a list of interned strings,
+ * so we only need to do pointer comparisons here to build the
+ * hash table. Currently, we're still comparing the string
+ * values.
+ */
+ shown = kh_init_str();
+ for (batch = batch_head;
+ batch && batch->batch_seq_nr > requested_oldest_seq_nr;
+ batch = batch->next) {
+ size_t k;
+
+ for (k = 0; k < batch->nr; k++) {
+ const char *s = batch->interned_paths[k];
+ size_t s_len;
+
+ if (kh_get_str(shown, s) != kh_end(shown))
+ duplicates++;
+ else {
+ kh_put_str(shown, s, &hash_ret);
+
+ trace_printf_key(&trace_fsmonitor,
+ "send[%"PRIuMAX"]: %s",
+ count, s);
+
+ /* Each path gets written with a trailing NUL */
+ s_len = strlen(s) + 1;
+
+ if (payload.len + s_len >=
+ LARGE_PACKET_DATA_MAX) {
+ reply(reply_data, payload.buf,
+ payload.len);
+ total_response_len += payload.len;
+ strbuf_reset(&payload);
+ }
+
+ strbuf_add(&payload, s, s_len);
+ count++;
+ }
+ }
+ }
+
+ if (payload.len) {
+ reply(reply_data, payload.buf, payload.len);
+ total_response_len += payload.len;
+ }
+
+ kh_release_str(shown);
+
+ pthread_mutex_lock(&state->main_lock);
+
+ if (token_data->client_ref_count > 0)
+ token_data->client_ref_count--;
+
+ if (token_data->client_ref_count == 0) {
+ if (token_data != state->current_token_data) {
+ /*
+ * The listener thread did a token-reset while we were
+ * walking the batch list. Therefore, this token is
+ * stale and can be discarded completely. If we are
+ * the last reader thread using this token, we own
+ * that work.
+ */
+ fsmonitor_free_token_data(token_data);
+ } else if (batch) {
+ /*
+ * We are holding the lock and are the only
+ * reader of the ref-counted portion of the
+ * list, so we get the honor of seeing if the
+ * list can be truncated to save memory.
+ *
+ * The main loop did not walk to the end of the
+ * list, so this batch is the first item in the
+ * batch-list that is older than the requested
+ * end-point sequence number. See if the tail
+ * end of the list is obsolete.
+ */
+ remainder = with_lock__truncate_old_batches(state,
+ batch);
+ }
+ }
+
+ pthread_mutex_unlock(&state->main_lock);
+
+ if (remainder)
+ fsmonitor_batch__free_list(remainder);
+
+ trace2_data_intmax("fsmonitor", the_repository, "response/length", total_response_len);
+ trace2_data_intmax("fsmonitor", the_repository, "response/count/files", count);
+ trace2_data_intmax("fsmonitor", the_repository, "response/count/duplicates", duplicates);
+
+cleanup:
+ strbuf_release(&response_token);
+ strbuf_release(&requested_token_id);
+ strbuf_release(&payload);
+
+ return 0;
+}
+
+static ipc_server_application_cb handle_client;
+
+static int handle_client(void *data,
+ const char *command, size_t command_len,
+ ipc_server_reply_cb *reply,
+ struct ipc_server_reply_data *reply_data)
+{
+ struct fsmonitor_daemon_state *state = data;
+ int result;
+
+ /*
+ * The Simple IPC API now supports {char*, len} arguments, but
+ * FSMonitor always uses proper null-terminated strings, so
+ * we can ignore the command_len argument. (Trust, but verify.)
+ */
+ if (command_len != strlen(command))
+ BUG("FSMonitor assumes text messages");
+
+ trace_printf_key(&trace_fsmonitor, "requested token: %s", command);
+
+ trace2_region_enter("fsmonitor", "handle_client", the_repository);
+ trace2_data_string("fsmonitor", the_repository, "request", command);
+
+ result = do_handle_client(state, command, reply, reply_data);
+
+ trace2_region_leave("fsmonitor", "handle_client", the_repository);
+
+ return result;
+}
+
+#define FSMONITOR_DIR "fsmonitor--daemon"
+#define FSMONITOR_COOKIE_DIR "cookies"
+#define FSMONITOR_COOKIE_PREFIX (FSMONITOR_DIR "/" FSMONITOR_COOKIE_DIR "/")
+
+enum fsmonitor_path_type fsmonitor_classify_path_workdir_relative(
+ const char *rel)
+{
+ if (fspathncmp(rel, ".git", 4))
+ return IS_WORKDIR_PATH;
+ rel += 4;
+
+ if (!*rel)
+ return IS_DOT_GIT;
+ if (*rel != '/')
+ return IS_WORKDIR_PATH; /* e.g. .gitignore */
+ rel++;
+
+ if (!fspathncmp(rel, FSMONITOR_COOKIE_PREFIX,
+ strlen(FSMONITOR_COOKIE_PREFIX)))
+ return IS_INSIDE_DOT_GIT_WITH_COOKIE_PREFIX;
+
+ return IS_INSIDE_DOT_GIT;
+}
+
+enum fsmonitor_path_type fsmonitor_classify_path_gitdir_relative(
+ const char *rel)
+{
+ if (!fspathncmp(rel, FSMONITOR_COOKIE_PREFIX,
+ strlen(FSMONITOR_COOKIE_PREFIX)))
+ return IS_INSIDE_GITDIR_WITH_COOKIE_PREFIX;
+
+ return IS_INSIDE_GITDIR;
+}
+
+static enum fsmonitor_path_type try_classify_workdir_abs_path(
+ struct fsmonitor_daemon_state *state,
+ const char *path)
+{
+ const char *rel;
+
+ if (fspathncmp(path, state->path_worktree_watch.buf,
+ state->path_worktree_watch.len))
+ return IS_OUTSIDE_CONE;
+
+ rel = path + state->path_worktree_watch.len;
+
+ if (!*rel)
+ return IS_WORKDIR_PATH; /* it is the root dir exactly */
+ if (*rel != '/')
+ return IS_OUTSIDE_CONE;
+ rel++;
+
+ return fsmonitor_classify_path_workdir_relative(rel);
+}
+
+enum fsmonitor_path_type fsmonitor_classify_path_absolute(
+ struct fsmonitor_daemon_state *state,
+ const char *path)
+{
+ const char *rel;
+ enum fsmonitor_path_type t;
+
+ t = try_classify_workdir_abs_path(state, path);
+ if (state->nr_paths_watching == 1)
+ return t;
+ if (t != IS_OUTSIDE_CONE)
+ return t;
+
+ if (fspathncmp(path, state->path_gitdir_watch.buf,
+ state->path_gitdir_watch.len))
+ return IS_OUTSIDE_CONE;
+
+ rel = path + state->path_gitdir_watch.len;
+
+ if (!*rel)
+ return IS_GITDIR; /* it is the <gitdir> exactly */
+ if (*rel != '/')
+ return IS_OUTSIDE_CONE;
+ rel++;
+
+ return fsmonitor_classify_path_gitdir_relative(rel);
+}
+
+/*
+ * We try to combine small batches at the front of the batch-list to avoid
+ * having a long list. This hopefully makes it a little easier when we want
+ * to truncate and maintain the list. However, we don't want the paths array
+ * to just keep growing and growing with realloc, so we insert an arbitrary
+ * limit.
+ */
+#define MY_COMBINE_LIMIT (1024)
+
+void fsmonitor_publish(struct fsmonitor_daemon_state *state,
+ struct fsmonitor_batch *batch,
+ const struct string_list *cookie_names)
+{
+ if (!batch && !cookie_names->nr)
+ return;
+
+ pthread_mutex_lock(&state->main_lock);
+
+ if (batch) {
+ struct fsmonitor_batch *head;
+
+ head = state->current_token_data->batch_head;
+ if (!head) {
+ BUG("token does not have batch");
+ } else if (head->pinned_time) {
+ /*
+ * We cannot alter the current batch list
+ * because:
+ *
+ * [a] it is being transmitted to at least one
+ * client and the handle_client() thread has a
+ * ref-count, but not a lock on the batch list
+ * starting with this item.
+ *
+ * [b] it has been transmitted in the past to
+ * at least one client such that future
+ * requests are relative to this head batch.
+ *
+ * So, we can only prepend a new batch onto
+ * the front of the list.
+ */
+ batch->batch_seq_nr = head->batch_seq_nr + 1;
+ batch->next = head;
+ state->current_token_data->batch_head = batch;
+ } else if (!head->batch_seq_nr) {
+ /*
+ * Batch 0 is unpinned. See the note in
+ * `fsmonitor_new_token_data()` about why we
+ * don't need to accumulate these paths.
+ */
+ fsmonitor_batch__free_list(batch);
+ } else if (head->nr + batch->nr > MY_COMBINE_LIMIT) {
+ /*
+ * The head batch in the list has never been
+ * transmitted to a client, but folding the
+ * contents of the new batch onto it would
+ * exceed our arbitrary limit, so just prepend
+ * the new batch onto the list.
+ */
+ batch->batch_seq_nr = head->batch_seq_nr + 1;
+ batch->next = head;
+ state->current_token_data->batch_head = batch;
+ } else {
+ /*
+ * We are free to add the paths in the given
+ * batch onto the end of the current head batch.
+ */
+ fsmonitor_batch__combine(head, batch);
+ fsmonitor_batch__free_list(batch);
+ }
+ }
+
+ if (cookie_names->nr)
+ with_lock__mark_cookies_seen(state, cookie_names);
+
+ pthread_mutex_unlock(&state->main_lock);
+}
+
+static void *fsm_listen__thread_proc(void *_state)
+{
+ struct fsmonitor_daemon_state *state = _state;
+
+ trace2_thread_start("fsm-listen");
+
+ trace_printf_key(&trace_fsmonitor, "Watching: worktree '%s'",
+ state->path_worktree_watch.buf);
+ if (state->nr_paths_watching > 1)
+ trace_printf_key(&trace_fsmonitor, "Watching: gitdir '%s'",
+ state->path_gitdir_watch.buf);
+
+ fsm_listen__loop(state);
+
+ pthread_mutex_lock(&state->main_lock);
+ if (state->current_token_data &&
+ state->current_token_data->client_ref_count == 0)
+ fsmonitor_free_token_data(state->current_token_data);
+ state->current_token_data = NULL;
+ pthread_mutex_unlock(&state->main_lock);
+
+ trace2_thread_exit();
+ return NULL;
+}
+
+static int fsmonitor_run_daemon_1(struct fsmonitor_daemon_state *state)
+{
+ struct ipc_server_opts ipc_opts = {
+ .nr_threads = fsmonitor__ipc_threads,
+
+ /*
+ * We know that there are no other active threads yet,
+ * so we can let the IPC layer temporarily chdir() if
+ * it needs to when creating the server side of the
+ * Unix domain socket.
+ */
+ .uds_disallow_chdir = 0
+ };
+
+ /*
+ * Start the IPC thread pool before the we've started the file
+ * system event listener thread so that we have the IPC handle
+ * before we need it.
+ */
+ if (ipc_server_run_async(&state->ipc_server_data,
+ fsmonitor_ipc__get_path(), &ipc_opts,
+ handle_client, state))
+ return error_errno(
+ _("could not start IPC thread pool on '%s'"),
+ fsmonitor_ipc__get_path());
+
+ /*
+ * Start the fsmonitor listener thread to collect filesystem
+ * events.
+ */
+ if (pthread_create(&state->listener_thread, NULL,
+ fsm_listen__thread_proc, state) < 0) {
+ ipc_server_stop_async(state->ipc_server_data);
+ ipc_server_await(state->ipc_server_data);
+
+ return error(_("could not start fsmonitor listener thread"));
+ }
+
+ /*
+ * The daemon is now fully functional in background threads.
+ * Wait for the IPC thread pool to shutdown (whether by client
+ * request or from filesystem activity).
+ */
+ ipc_server_await(state->ipc_server_data);
+
+ /*
+ * The fsmonitor listener thread may have received a shutdown
+ * event from the IPC thread pool, but it doesn't hurt to tell
+ * it again. And wait for it to shutdown.
+ */
+ fsm_listen__stop_async(state);
+ pthread_join(state->listener_thread, NULL);
+
+ return state->error_code;
+}
+
+static int fsmonitor_run_daemon(void)
+{
+ struct fsmonitor_daemon_state state;
+ int err;
+
+ memset(&state, 0, sizeof(state));
+
+ hashmap_init(&state.cookies, cookies_cmp, NULL, 0);
+ pthread_mutex_init(&state.main_lock, NULL);
+ pthread_cond_init(&state.cookies_cond, NULL);
+ state.error_code = 0;
+ state.current_token_data = fsmonitor_new_token_data();
+
+ /* Prepare to (recursively) watch the <worktree-root> directory. */
+ strbuf_init(&state.path_worktree_watch, 0);
+ strbuf_addstr(&state.path_worktree_watch, absolute_path(get_git_work_tree()));
+ state.nr_paths_watching = 1;
+
+ /*
+ * We create and delete cookie files somewhere inside the .git
+ * directory to help us keep sync with the file system. If
+ * ".git" is not a directory, then <gitdir> is not inside the
+ * cone of <worktree-root>, so set up a second watch to watch
+ * the <gitdir> so that we get events for the cookie files.
+ */
+ strbuf_init(&state.path_gitdir_watch, 0);
+ strbuf_addbuf(&state.path_gitdir_watch, &state.path_worktree_watch);
+ strbuf_addstr(&state.path_gitdir_watch, "/.git");
+ if (!is_directory(state.path_gitdir_watch.buf)) {
+ strbuf_reset(&state.path_gitdir_watch);
+ strbuf_addstr(&state.path_gitdir_watch, absolute_path(get_git_dir()));
+ state.nr_paths_watching = 2;
+ }
+
+ /*
+ * We will write filesystem syncing cookie files into
+ * <gitdir>/<fsmonitor-dir>/<cookie-dir>/<pid>-<seq>.
+ *
+ * The extra layers of subdirectories here keep us from
+ * changing the mtime on ".git/" or ".git/foo/" when we create
+ * or delete cookie files.
+ *
+ * There have been problems with some IDEs that do a
+ * non-recursive watch of the ".git/" directory and run a
+ * series of commands any time something happens.
+ *
+ * For example, if we place our cookie files directly in
+ * ".git/" or ".git/foo/" then a `git status` (or similar
+ * command) from the IDE will cause a cookie file to be
+ * created in one of those dirs. This causes the mtime of
+ * those dirs to change. This triggers the IDE's watch
+ * notification. This triggers the IDE to run those commands
+ * again. And the process repeats and the machine never goes
+ * idle.
+ *
+ * Adding the extra layers of subdirectories prevents the
+ * mtime of ".git/" and ".git/foo" from changing when a
+ * cookie file is created.
+ */
+ strbuf_init(&state.path_cookie_prefix, 0);
+ strbuf_addbuf(&state.path_cookie_prefix, &state.path_gitdir_watch);
+
+ strbuf_addch(&state.path_cookie_prefix, '/');
+ strbuf_addstr(&state.path_cookie_prefix, FSMONITOR_DIR);
+ mkdir(state.path_cookie_prefix.buf, 0777);
+
+ strbuf_addch(&state.path_cookie_prefix, '/');
+ strbuf_addstr(&state.path_cookie_prefix, FSMONITOR_COOKIE_DIR);
+ mkdir(state.path_cookie_prefix.buf, 0777);
+
+ strbuf_addch(&state.path_cookie_prefix, '/');
+
+ /*
+ * Confirm that we can create platform-specific resources for the
+ * filesystem listener before we bother starting all the threads.
+ */
+ if (fsm_listen__ctor(&state)) {
+ err = error(_("could not initialize listener thread"));
+ goto done;
+ }
+
+ err = fsmonitor_run_daemon_1(&state);
+
+done:
+ pthread_cond_destroy(&state.cookies_cond);
+ pthread_mutex_destroy(&state.main_lock);
+ fsm_listen__dtor(&state);
+
+ ipc_server_free(state.ipc_server_data);
+
+ strbuf_release(&state.path_worktree_watch);
+ strbuf_release(&state.path_gitdir_watch);
+ strbuf_release(&state.path_cookie_prefix);
+
+ return err;
+}
+
+static int try_to_run_foreground_daemon(int detach_console)
+{
+ /*
+ * Technically, we don't need to probe for an existing daemon
+ * process, since we could just call `fsmonitor_run_daemon()`
+ * and let it fail if the pipe/socket is busy.
+ *
+ * However, this method gives us a nicer error message for a
+ * common error case.
+ */
+ if (fsmonitor_ipc__get_state() == IPC_STATE__LISTENING)
+ die(_("fsmonitor--daemon is already running '%s'"),
+ the_repository->worktree);
+
+ if (fsmonitor__announce_startup) {
+ fprintf(stderr, _("running fsmonitor-daemon in '%s'\n"),
+ the_repository->worktree);
+ fflush(stderr);
+ }
+
+#ifdef GIT_WINDOWS_NATIVE
+ if (detach_console)
+ FreeConsole();
+#endif
+
+ return !!fsmonitor_run_daemon();
+}
+
+static start_bg_wait_cb bg_wait_cb;
+
+static int bg_wait_cb(const struct child_process *cp, void *cb_data)
+{
+ enum ipc_active_state s = fsmonitor_ipc__get_state();
+
+ switch (s) {
+ case IPC_STATE__LISTENING:
+ /* child is "ready" */
+ return 0;
+
+ case IPC_STATE__NOT_LISTENING:
+ case IPC_STATE__PATH_NOT_FOUND:
+ /* give child more time */
+ return 1;
+
+ default:
+ case IPC_STATE__INVALID_PATH:
+ case IPC_STATE__OTHER_ERROR:
+ /* all the time in world won't help */
+ return -1;
+ }
+}
+
+static int try_to_start_background_daemon(void)
+{
+ struct child_process cp = CHILD_PROCESS_INIT;
+ enum start_bg_result sbgr;
+
+ /*
+ * Before we try to create a background daemon process, see
+ * if a daemon process is already listening. This makes it
+ * easier for us to report an already-listening error to the
+ * console, since our spawn/daemon can only report the success
+ * of creating the background process (and not whether it
+ * immediately exited).
+ */
+ if (fsmonitor_ipc__get_state() == IPC_STATE__LISTENING)
+ die(_("fsmonitor--daemon is already running '%s'"),
+ the_repository->worktree);
+
+ if (fsmonitor__announce_startup) {
+ fprintf(stderr, _("starting fsmonitor-daemon in '%s'\n"),
+ the_repository->worktree);
+ fflush(stderr);
+ }
+
+ cp.git_cmd = 1;
+
+ strvec_push(&cp.args, "fsmonitor--daemon");
+ strvec_push(&cp.args, "run");
+ strvec_push(&cp.args, "--detach");
+ strvec_pushf(&cp.args, "--ipc-threads=%d", fsmonitor__ipc_threads);
+
+ cp.no_stdin = 1;
+ cp.no_stdout = 1;
+ cp.no_stderr = 1;
+
+ sbgr = start_bg_command(&cp, bg_wait_cb, NULL,
+ fsmonitor__start_timeout_sec);
+
+ switch (sbgr) {
+ case SBGR_READY:
+ return 0;
+
+ default:
+ case SBGR_ERROR:
+ case SBGR_CB_ERROR:
+ return error(_("daemon failed to start"));
+
+ case SBGR_TIMEOUT:
+ return error(_("daemon not online yet"));
+
+ case SBGR_DIED:
+ return error(_("daemon terminated"));
+ }
+}
+
+int cmd_fsmonitor__daemon(int argc, const char **argv, const char *prefix)
+{
+ const char *subcmd;
+ int detach_console = 0;
+
+ struct option options[] = {
+ OPT_BOOL(0, "detach", &detach_console, N_("detach from console")),
+ OPT_INTEGER(0, "ipc-threads",
+ &fsmonitor__ipc_threads,
+ N_("use <n> ipc worker threads")),
+ OPT_INTEGER(0, "start-timeout",
+ &fsmonitor__start_timeout_sec,
+ N_("max seconds to wait for background daemon startup")),
+
+ OPT_END()
+ };
+
+ git_config(fsmonitor_config, NULL);
+
+ argc = parse_options(argc, argv, prefix, options,
+ builtin_fsmonitor__daemon_usage, 0);
+ if (argc != 1)
+ usage_with_options(builtin_fsmonitor__daemon_usage, options);
+ subcmd = argv[0];
+
+ if (fsmonitor__ipc_threads < 1)
+ die(_("invalid 'ipc-threads' value (%d)"),
+ fsmonitor__ipc_threads);
+
+ if (!strcmp(subcmd, "start"))
+ return !!try_to_start_background_daemon();
+
+ if (!strcmp(subcmd, "run"))
+ return !!try_to_run_foreground_daemon(detach_console);
+
+ if (!strcmp(subcmd, "stop"))
+ return !!do_as_client__send_stop();
+
+ if (!strcmp(subcmd, "status"))
+ return !!do_as_client__status();
+
+ die(_("Unhandled subcommand '%s'"), subcmd);
+}
+
+#else
+int cmd_fsmonitor__daemon(int argc, const char **argv, const char *prefix)
+{
+ struct option options[] = {
+ OPT_END()
+ };
+
+ if (argc == 2 && !strcmp(argv[1], "-h"))
+ usage_with_options(builtin_fsmonitor__daemon_usage, options);
+
+ die(_("fsmonitor--daemon not supported on this platform"));
+}
+#endif
diff --git a/builtin/gc.c b/builtin/gc.c
index 3531d667cb..daa4535f1c 100644
--- a/builtin/gc.c
+++ b/builtin/gc.c
@@ -30,8 +30,8 @@
#include "promisor-remote.h"
#include "refs.h"
#include "remote.h"
-#include "object-store.h"
#include "exec-cmd.h"
+#include "hook.h"
#define FAILED_RUN "failed to run %s"
@@ -394,7 +394,7 @@ static int need_to_gc(void)
else
return 0;
- if (run_hook_le(NULL, "pre-auto-gc", NULL))
+ if (run_hooks("pre-auto-gc"))
return 0;
return 1;
}
diff --git a/builtin/grep.c b/builtin/grep.c
index 9e34a820ad..bcb07ea7f7 100644
--- a/builtin/grep.c
+++ b/builtin/grep.c
@@ -26,6 +26,8 @@
#include "object-store.h"
#include "packfile.h"
+static const char *grep_prefix;
+
static char const * const grep_usage[] = {
N_("git grep [<options>] [-e] <pattern> [<rev>...] [[--] <path>...]"),
NULL
@@ -284,7 +286,7 @@ static int wait_all(void)
static int grep_cmd_config(const char *var, const char *value, void *cb)
{
int st = grep_config(var, value, cb);
- if (git_color_default_config(var, value, cb) < 0)
+ if (git_color_default_config(var, value, NULL) < 0)
st = -1;
if (!strcmp(var, "grep.threads")) {
@@ -315,11 +317,11 @@ static void grep_source_name(struct grep_opt *opt, const char *filename,
strbuf_reset(out);
if (opt->null_following_name) {
- if (opt->relative && opt->prefix_length) {
+ if (opt->relative && grep_prefix) {
struct strbuf rel_buf = STRBUF_INIT;
const char *rel_name =
relative_path(filename + tree_name_len,
- opt->prefix, &rel_buf);
+ grep_prefix, &rel_buf);
if (tree_name_len)
strbuf_add(out, filename, tree_name_len);
@@ -332,8 +334,8 @@ static void grep_source_name(struct grep_opt *opt, const char *filename,
return;
}
- if (opt->relative && opt->prefix_length)
- quote_path(filename + tree_name_len, opt->prefix, out, 0);
+ if (opt->relative && grep_prefix)
+ quote_path(filename + tree_name_len, grep_prefix, out, 0);
else
quote_c_style(filename + tree_name_len, out, NULL, 0);
@@ -482,7 +484,7 @@ static int grep_submodule(struct grep_opt *opt,
object_type = oid_object_info(subrepo, oid, NULL);
obj_read_unlock();
data = read_object_with_reference(subrepo,
- oid, tree_type,
+ oid, OBJ_TREE,
&size, NULL);
if (!data)
die(_("unable to read tree (%s)"), oid_to_hex(oid));
@@ -651,7 +653,7 @@ static int grep_object(struct grep_opt *opt, const struct pathspec *pathspec,
int hit, len;
data = read_object_with_reference(opt->repo,
- &obj->oid, tree_type,
+ &obj->oid, OBJ_TREE,
&size, NULL);
if (!data)
die(_("unable to read tree (%s)"), oid_to_hex(&obj->oid));
@@ -843,7 +845,6 @@ int cmd_grep(int argc, const char **argv, const char *prefix)
int i;
int dummy;
int use_index = 1;
- int pattern_type_arg = GREP_PATTERN_TYPE_UNSPECIFIED;
int allow_revs;
struct option options[] = {
@@ -877,16 +878,16 @@ int cmd_grep(int argc, const char **argv, const char *prefix)
N_("descend at most <depth> levels"), PARSE_OPT_NONEG,
NULL, 1 },
OPT_GROUP(""),
- OPT_SET_INT('E', "extended-regexp", &pattern_type_arg,
+ OPT_SET_INT('E', "extended-regexp", &opt.pattern_type_option,
N_("use extended POSIX regular expressions"),
GREP_PATTERN_TYPE_ERE),
- OPT_SET_INT('G', "basic-regexp", &pattern_type_arg,
+ OPT_SET_INT('G', "basic-regexp", &opt.pattern_type_option,
N_("use basic POSIX regular expressions (default)"),
GREP_PATTERN_TYPE_BRE),
- OPT_SET_INT('F', "fixed-strings", &pattern_type_arg,
+ OPT_SET_INT('F', "fixed-strings", &opt.pattern_type_option,
N_("interpret patterns as fixed strings"),
GREP_PATTERN_TYPE_FIXED),
- OPT_SET_INT('P', "perl-regexp", &pattern_type_arg,
+ OPT_SET_INT('P', "perl-regexp", &opt.pattern_type_option,
N_("use Perl-compatible regular expressions"),
GREP_PATTERN_TYPE_PCRE),
OPT_GROUP(""),
@@ -962,9 +963,10 @@ int cmd_grep(int argc, const char **argv, const char *prefix)
PARSE_OPT_NOCOMPLETE),
OPT_END()
};
+ grep_prefix = prefix;
- git_config(grep_cmd_config, NULL);
- grep_init(&opt, the_repository, prefix);
+ grep_init(&opt, the_repository);
+ git_config(grep_cmd_config, &opt);
/*
* If there is no -- then the paths must exist in the working
@@ -979,7 +981,6 @@ int cmd_grep(int argc, const char **argv, const char *prefix)
argc = parse_options(argc, argv, prefix, options, grep_usage,
PARSE_OPT_KEEP_DASHDASH |
PARSE_OPT_STOP_AT_NON_OPTION);
- grep_commit_pattern_type(pattern_type_arg, &opt);
if (use_index && !startup_info->have_repository) {
int fallback = 0;
@@ -1167,11 +1168,9 @@ int cmd_grep(int argc, const char **argv, const char *prefix)
if (!show_in_pager && !opt.status_only)
setup_pager();
- if (!use_index && (untracked || cached))
- die(_("--cached or --untracked cannot be used with --no-index"));
-
- if (untracked && cached)
- die(_("--untracked cannot be used with --cached"));
+ die_for_incompatible_opt3(!use_index, "--no-index",
+ untracked, "--untracked",
+ cached, "--cached");
if (!use_index || untracked) {
int use_exclude = (opt_exclude < 0) ? use_index : !!opt_exclude;
diff --git a/builtin/hash-object.c b/builtin/hash-object.c
index c7b3ad74c6..fbae878c2b 100644
--- a/builtin/hash-object.c
+++ b/builtin/hash-object.c
@@ -25,7 +25,7 @@ static int hash_literally(struct object_id *oid, int fd, const char *type, unsig
if (strbuf_read(&buf, fd, 4096) < 0)
ret = -1;
else
- ret = hash_object_file_literally(buf.buf, buf.len, type, oid,
+ ret = write_object_file_literally(buf.buf, buf.len, type, oid,
flags);
strbuf_release(&buf);
return ret;
@@ -81,7 +81,7 @@ int cmd_hash_object(int argc, const char **argv, const char *prefix)
{
static const char * const hash_object_usage[] = {
N_("git hash-object [-t <type>] [-w] [--path=<file> | --no-filters] [--stdin] [--] <file>..."),
- N_("git hash-object --stdin-paths"),
+ "git hash-object --stdin-paths",
NULL
};
const char *type = blob_type;
@@ -92,6 +92,7 @@ int cmd_hash_object(int argc, const char **argv, const char *prefix)
int nongit = 0;
unsigned flags = HASH_FORMAT_CHECK;
const char *vpath = NULL;
+ char *vpath_free = NULL;
const struct option hash_object_options[] = {
OPT_STRING('t', NULL, &type, N_("type"), N_("object type")),
OPT_BIT('w', NULL, &flags, N_("write the object into the object database"),
@@ -114,8 +115,10 @@ int cmd_hash_object(int argc, const char **argv, const char *prefix)
else
prefix = setup_git_directory_gently(&nongit);
- if (vpath && prefix)
- vpath = prefix_filename(prefix, vpath);
+ if (vpath && prefix) {
+ vpath_free = prefix_filename(prefix, vpath);
+ vpath = vpath_free;
+ }
git_config(git_default_config, NULL);
@@ -156,5 +159,7 @@ int cmd_hash_object(int argc, const char **argv, const char *prefix)
if (stdin_paths)
hash_stdin_paths(type, no_filters, flags, literally);
+ free(vpath_free);
+
return 0;
}
diff --git a/builtin/help.c b/builtin/help.c
index d387131dd8..222f994f86 100644
--- a/builtin/help.c
+++ b/builtin/help.c
@@ -51,9 +51,14 @@ static const char *html_path;
static int verbose = 1;
static enum help_format help_format = HELP_FORMAT_NONE;
static int exclude_guides;
+static int show_external_commands = -1;
+static int show_aliases = -1;
static struct option builtin_help_options[] = {
OPT_CMDMODE('a', "all", &cmd_mode, N_("print all available commands"),
HELP_ACTION_ALL),
+ OPT_BOOL(0, "external-commands", &show_external_commands,
+ N_("show external commands in --all")),
+ OPT_BOOL(0, "aliases", &show_aliases, N_("show aliases in --all")),
OPT_HIDDEN_BOOL(0, "exclude-guides", &exclude_guides, N_("exclude guides")),
OPT_SET_INT('m', "man", &help_format, N_("show man page"), HELP_FORMAT_MAN),
OPT_SET_INT('w', "web", &help_format, N_("show manual in web browser"),
@@ -75,10 +80,10 @@ static struct option builtin_help_options[] = {
};
static const char * const builtin_help_usage[] = {
- N_("git help [-a|--all] [--[no-]verbose]]\n"
- " [[-i|--info] [-m|--man] [-w|--web]] [<command>]"),
- N_("git help [-g|--guides]"),
- N_("git help [-c|--config]"),
+ "git help [-a|--all] [--[no-]verbose]] [--[no-]external-commands] [--[no-]aliases]",
+ N_("git help [[-i|--info] [-m|--man] [-w|--web]] [<command>]"),
+ "git help [-g|--guides]",
+ "git help [-c|--config]",
NULL
};
@@ -574,11 +579,40 @@ static const char *check_git_cmd(const char* cmd)
return cmd;
}
-static void no_extra_argc(int argc)
+static void no_help_format(const char *opt_mode, enum help_format fmt)
+{
+ const char *opt_fmt;
+
+ switch (fmt) {
+ case HELP_FORMAT_NONE:
+ return;
+ case HELP_FORMAT_MAN:
+ opt_fmt = "--man";
+ break;
+ case HELP_FORMAT_INFO:
+ opt_fmt = "--info";
+ break;
+ case HELP_FORMAT_WEB:
+ opt_fmt = "--web";
+ break;
+ default:
+ BUG("unreachable");
+ }
+
+ usage_msg_optf(_("options '%s' and '%s' cannot be used together"),
+ builtin_help_usage, builtin_help_options, opt_mode,
+ opt_fmt);
+}
+
+static void opt_mode_usage(int argc, const char *opt_mode,
+ enum help_format fmt)
{
if (argc)
- usage_msg_opt(_("this option doesn't take any other arguments"),
- builtin_help_usage, builtin_help_options);
+ usage_msg_optf(_("the '%s' option doesn't take any non-option arguments"),
+ builtin_help_usage, builtin_help_options,
+ opt_mode);
+
+ no_help_format(opt_mode, fmt);
}
int cmd_help(int argc, const char **argv, const char *prefix)
@@ -591,11 +625,19 @@ int cmd_help(int argc, const char **argv, const char *prefix)
builtin_help_usage, 0);
parsed_help_format = help_format;
+ if (cmd_mode != HELP_ACTION_ALL &&
+ (show_external_commands >= 0 ||
+ show_aliases >= 0))
+ usage_msg_opt(_("the '--no-[external-commands|aliases]' options can only be used with '--all'"),
+ builtin_help_usage, builtin_help_options);
+
switch (cmd_mode) {
case HELP_ACTION_ALL:
+ opt_mode_usage(argc, "--all", help_format);
if (verbose) {
setup_pager();
- list_all_cmds_help();
+ list_all_cmds_help(show_external_commands,
+ show_aliases);
return 0;
}
printf(_("usage: %s%s"), _(git_usage_string), "\n\n");
@@ -604,20 +646,21 @@ int cmd_help(int argc, const char **argv, const char *prefix)
printf("%s\n", _(git_more_info_string));
break;
case HELP_ACTION_GUIDES:
- no_extra_argc(argc);
+ opt_mode_usage(argc, "--guides", help_format);
list_guides_help();
printf("%s\n", _(git_more_info_string));
return 0;
case HELP_ACTION_CONFIG_FOR_COMPLETION:
- no_extra_argc(argc);
+ opt_mode_usage(argc, "--config-for-completion", help_format);
list_config_help(SHOW_CONFIG_VARS);
return 0;
case HELP_ACTION_CONFIG_SECTIONS_FOR_COMPLETION:
- no_extra_argc(argc);
+ opt_mode_usage(argc, "--config-sections-for-completion",
+ help_format);
list_config_help(SHOW_CONFIG_SECTIONS);
return 0;
case HELP_ACTION_CONFIG:
- no_extra_argc(argc);
+ opt_mode_usage(argc, "--config", help_format);
setup_pager();
list_config_help(SHOW_CONFIG_HUMAN);
printf("\n%s\n", _("'git help config' for more information"));
diff --git a/builtin/hook.c b/builtin/hook.c
new file mode 100644
index 0000000000..54e5c6ec93
--- /dev/null
+++ b/builtin/hook.c
@@ -0,0 +1,84 @@
+#include "cache.h"
+#include "builtin.h"
+#include "config.h"
+#include "hook.h"
+#include "parse-options.h"
+#include "strbuf.h"
+#include "strvec.h"
+
+#define BUILTIN_HOOK_RUN_USAGE \
+ N_("git hook run [--ignore-missing] <hook-name> [-- <hook-args>]")
+
+static const char * const builtin_hook_usage[] = {
+ BUILTIN_HOOK_RUN_USAGE,
+ NULL
+};
+
+static const char * const builtin_hook_run_usage[] = {
+ BUILTIN_HOOK_RUN_USAGE,
+ NULL
+};
+
+static int run(int argc, const char **argv, const char *prefix)
+{
+ int i;
+ struct run_hooks_opt opt = RUN_HOOKS_OPT_INIT;
+ int ignore_missing = 0;
+ const char *hook_name;
+ struct option run_options[] = {
+ OPT_BOOL(0, "ignore-missing", &ignore_missing,
+ N_("silently ignore missing requested <hook-name>")),
+ OPT_END(),
+ };
+ int ret;
+
+ argc = parse_options(argc, argv, prefix, run_options,
+ builtin_hook_run_usage,
+ PARSE_OPT_KEEP_DASHDASH);
+
+ if (!argc)
+ goto usage;
+
+ /*
+ * Having a -- for "run" when providing <hook-args> is
+ * mandatory.
+ */
+ if (argc > 1 && strcmp(argv[1], "--") &&
+ strcmp(argv[1], "--end-of-options"))
+ goto usage;
+
+ /* Add our arguments, start after -- */
+ for (i = 2 ; i < argc; i++)
+ strvec_push(&opt.args, argv[i]);
+
+ /* Need to take into account core.hooksPath */
+ git_config(git_default_config, NULL);
+
+ hook_name = argv[0];
+ if (!ignore_missing)
+ opt.error_if_missing = 1;
+ ret = run_hooks_opt(hook_name, &opt);
+ if (ret < 0) /* error() return */
+ ret = 1;
+ return ret;
+usage:
+ usage_with_options(builtin_hook_run_usage, run_options);
+}
+
+int cmd_hook(int argc, const char **argv, const char *prefix)
+{
+ struct option builtin_hook_options[] = {
+ OPT_END(),
+ };
+
+ argc = parse_options(argc, argv, NULL, builtin_hook_options,
+ builtin_hook_usage, PARSE_OPT_STOP_AT_NON_OPTION);
+ if (!argc)
+ goto usage;
+
+ if (!strcmp(argv[0], "run"))
+ return run(argc, argv, prefix);
+
+usage:
+ usage_with_options(builtin_hook_usage, builtin_hook_options);
+}
diff --git a/builtin/index-pack.c b/builtin/index-pack.c
index ec59e8dd70..3e385b4800 100644
--- a/builtin/index-pack.c
+++ b/builtin/index-pack.c
@@ -323,8 +323,12 @@ static void use(int bytes)
if (signed_add_overflows(consumed_bytes, bytes))
die(_("pack too large for current definition of off_t"));
consumed_bytes += bytes;
- if (max_input_size && consumed_bytes > max_input_size)
- die(_("pack exceeds maximum allowed size"));
+ if (max_input_size && consumed_bytes > max_input_size) {
+ struct strbuf size_limit = STRBUF_INIT;
+ strbuf_humanise_bytes(&size_limit, max_input_size);
+ die(_("pack exceeds maximum allowed size (%s)"),
+ size_limit.buf);
+ }
}
static const char *open_pack_file(const char *pack_name)
@@ -449,8 +453,7 @@ static void *unpack_entry_data(off_t offset, unsigned long size,
int hdrlen;
if (!is_delta_type(type)) {
- hdrlen = xsnprintf(hdr, sizeof(hdr), "%s %"PRIuMAX,
- type_name(type),(uintmax_t)size) + 1;
+ hdrlen = format_object_header(hdr, sizeof(hdr), type, size);
the_hash_algo->init_fn(&c);
the_hash_algo->update_fn(&c, hdr, hdrlen);
} else
@@ -579,7 +582,7 @@ static void *unpack_data(struct object_entry *obj,
if (!n)
die(Q_("premature end of pack file, %"PRIuMAX" byte missing",
"premature end of pack file, %"PRIuMAX" bytes missing",
- (unsigned int)len),
+ len),
(uintmax_t)len);
from += n;
len -= n;
@@ -971,7 +974,7 @@ static struct base_data *resolve_delta(struct object_entry *delta_obj,
if (!result_data)
bad_object(delta_obj->idx.offset, _("failed to apply delta"));
hash_object_file(the_hash_algo, result_data, result_size,
- type_name(delta_obj->real_type), &delta_obj->idx.oid);
+ delta_obj->real_type, &delta_obj->idx.oid);
sha1_object(result_data, NULL, result_size, delta_obj->real_type,
&delta_obj->idx.oid);
@@ -1109,6 +1112,7 @@ static void *threaded_second_pass(void *data)
list_add(&child->list, &work_head);
base_cache_used += child->size;
prune_base_data(NULL);
+ free_base_data(child);
} else {
/*
* This child does not have its own children. It may be
@@ -1131,6 +1135,7 @@ static void *threaded_second_pass(void *data)
p = next_p;
}
+ FREE_AND_NULL(child);
}
work_unlock();
}
@@ -1286,7 +1291,7 @@ static void conclude_pack(int fix_thin_pack, const char *curr_pack, unsigned cha
nr_objects - nr_objects_initial);
stop_progress_msg(&progress, msg.buf);
strbuf_release(&msg);
- finalize_hashfile(f, tail_hash, 0);
+ finalize_hashfile(f, tail_hash, FSYNC_COMPONENT_PACK, 0);
hashcpy(read_hash, pack_hash);
fixup_pack_header_footer(output_fd, pack_hash,
curr_pack, nr_objects,
@@ -1413,9 +1418,8 @@ static void fix_unresolved_deltas(struct hashfile *f)
if (!data)
continue;
- if (check_object_signature(the_repository, &d->oid,
- data, size,
- type_name(type), NULL))
+ if (check_object_signature(the_repository, &d->oid, data, size,
+ type) < 0)
die(_("local object %s is corrupt"), oid_to_hex(&d->oid));
/*
@@ -1424,6 +1428,7 @@ static void fix_unresolved_deltas(struct hashfile *f)
* object).
*/
append_obj_to_pack(f, d->oid.hash, data, size, type);
+ free(data);
threaded_second_pass(NULL);
display_progress(progress, nr_resolved_deltas);
@@ -1508,7 +1513,7 @@ static void final(const char *final_pack_name, const char *curr_pack_name,
if (!from_stdin) {
close(input_fd);
} else {
- fsync_or_die(output_fd, curr_pack_name);
+ fsync_component_or_die(FSYNC_COMPONENT_PACK, output_fd, curr_pack_name);
err = close(output_fd);
if (err)
die_errno(_("error while closing pack file"));
@@ -1703,6 +1708,7 @@ static void show_pack_info(int stat_only)
i + 1,
chain_histogram[i]);
}
+ free(chain_histogram);
}
int cmd_index_pack(int argc, const char **argv, const char *prefix)
@@ -1932,6 +1938,7 @@ int cmd_index_pack(int argc, const char **argv, const char *prefix)
if (do_fsck_object && fsck_finish(&fsck_options))
die(_("fsck error in pack objects"));
+ free(opts.anomaly);
free(objects);
strbuf_release(&index_name_buf);
strbuf_release(&rev_index_name_buf);
diff --git a/builtin/log.c b/builtin/log.c
index afbf0bd5bd..2eb0063cc1 100644
--- a/builtin/log.c
+++ b/builtin/log.c
@@ -35,6 +35,7 @@
#include "repository.h"
#include "commit-reach.h"
#include "range-diff.h"
+#include "tmp-objdir.h"
#define MAIL_DEFAULT_WRAP 72
#define COVER_FROM_AUTO_MAX_SUBJECT_LEN 100
@@ -416,12 +417,19 @@ static void finish_early_output(struct rev_info *rev)
show_early_header(rev, "done", n);
}
-static int cmd_log_walk(struct rev_info *rev)
+static int cmd_log_walk_no_free(struct rev_info *rev)
{
struct commit *commit;
int saved_nrl = 0;
int saved_dcctc = 0;
+ if (rev->remerge_diff) {
+ rev->remerge_objdir = tmp_objdir_create("remerge-diff");
+ if (!rev->remerge_objdir)
+ die(_("unable to create temporary object directory"));
+ tmp_objdir_replace_primary_odb(rev->remerge_objdir, 1);
+ }
+
if (rev->early_output)
setup_early_output();
@@ -436,7 +444,6 @@ static int cmd_log_walk(struct rev_info *rev)
* and HAS_CHANGES being accumulated in rev->diffopt, so be careful to
* retain that state information if replacing rev->diffopt in this loop
*/
- rev->diffopt.no_free = 1;
while ((commit = get_revision(rev)) != NULL) {
if (!log_tree_commit(rev, commit) && rev->max_count >= 0)
/*
@@ -461,8 +468,11 @@ static int cmd_log_walk(struct rev_info *rev)
}
rev->diffopt.degraded_cc_to_c = saved_dcctc;
rev->diffopt.needed_rename_limit = saved_nrl;
- rev->diffopt.no_free = 0;
- diff_free(&rev->diffopt);
+
+ if (rev->remerge_diff) {
+ tmp_objdir_destroy(rev->remerge_objdir);
+ rev->remerge_objdir = NULL;
+ }
if (rev->diffopt.output_format & DIFF_FORMAT_CHECKDIFF &&
rev->diffopt.flags.check_failed) {
@@ -471,6 +481,17 @@ static int cmd_log_walk(struct rev_info *rev)
return diff_result_code(&rev->diffopt, 0);
}
+static int cmd_log_walk(struct rev_info *rev)
+{
+ int retval;
+
+ rev->diffopt.no_free = 1;
+ retval = cmd_log_walk_no_free(rev);
+ rev->diffopt.no_free = 0;
+ diff_free(&rev->diffopt);
+ return retval;
+}
+
static int git_log_config(const char *var, const char *value, void *cb)
{
const char *slot_name;
@@ -520,8 +541,6 @@ static int git_log_config(const char *var, const char *value, void *cb)
return 0;
}
- if (grep_config(var, value, cb) < 0)
- return -1;
if (git_gpg_config(var, value, cb) < 0)
return -1;
return git_diff_ui_config(var, value, cb);
@@ -536,6 +555,8 @@ int cmd_whatchanged(int argc, const char **argv, const char *prefix)
git_config(git_log_config, NULL);
repo_init_revisions(the_repository, &rev, prefix);
+ git_config(grep_config, &rev.grep_filter);
+
rev.diff = 1;
rev.simplify_history = 0;
memset(&opt, 0, sizeof(opt));
@@ -648,8 +669,15 @@ int cmd_show(int argc, const char **argv, const char *prefix)
init_log_defaults();
git_config(git_log_config, NULL);
+ if (the_repository->gitdir) {
+ prepare_repo_settings(the_repository);
+ the_repository->settings.command_requires_full_index = 0;
+ }
+
memset(&match_all, 0, sizeof(match_all));
repo_init_revisions(the_repository, &rev, prefix);
+ git_config(grep_config, &rev.grep_filter);
+
rev.diff = 1;
rev.always_show_header = 1;
rev.no_walk = 1;
@@ -665,6 +693,7 @@ int cmd_show(int argc, const char **argv, const char *prefix)
count = rev.pending.nr;
objects = rev.pending.objects;
+ rev.diffopt.no_free = 1;
for (i = 0; i < count && !ret; i++) {
struct object *o = objects[i].item;
const char *name = objects[i].name;
@@ -710,12 +739,16 @@ int cmd_show(int argc, const char **argv, const char *prefix)
rev.pending.nr = rev.pending.alloc = 0;
rev.pending.objects = NULL;
add_object_array(o, name, &rev.pending);
- ret = cmd_log_walk(&rev);
+ ret = cmd_log_walk_no_free(&rev);
break;
default:
ret = error(_("unknown type: %d"), o->type);
}
}
+
+ rev.diffopt.no_free = 0;
+ diff_free(&rev.diffopt);
+
free(objects);
return ret;
}
@@ -733,6 +766,8 @@ int cmd_log_reflog(int argc, const char **argv, const char *prefix)
repo_init_revisions(the_repository, &rev, prefix);
init_reflog_walk(&rev.reflog_info);
+ git_config(grep_config, &rev.grep_filter);
+
rev.verbose_header = 1;
memset(&opt, 0, sizeof(opt));
opt.def = "HEAD";
@@ -766,6 +801,8 @@ int cmd_log(int argc, const char **argv, const char *prefix)
git_config(git_log_config, NULL);
repo_init_revisions(the_repository, &rev, prefix);
+ git_config(grep_config, &rev.grep_filter);
+
rev.always_show_header = 1;
memset(&opt, 0, sizeof(opt));
opt.def = "HEAD";
@@ -1848,10 +1885,13 @@ int cmd_format_patch(int argc, const char **argv, const char *prefix)
extra_hdr.strdup_strings = 1;
extra_to.strdup_strings = 1;
extra_cc.strdup_strings = 1;
+
init_log_defaults();
init_display_notes(&notes_opt);
git_config(git_format_config, NULL);
repo_init_revisions(the_repository, &rev, prefix);
+ git_config(grep_config, &rev.grep_filter);
+
rev.show_notes = show_notes;
memcpy(&rev.notes_opt, &notes_opt, sizeof(notes_opt));
rev.commit_format = CMIT_FMT_EMAIL;
@@ -1861,6 +1901,7 @@ int cmd_format_patch(int argc, const char **argv, const char *prefix)
rev.diff = 1;
rev.max_parents = 1;
rev.diffopt.flags.recursive = 1;
+ rev.diffopt.no_free = 1;
rev.subject_prefix = fmt_patch_subject_prefix;
memset(&s_r_opt, 0, sizeof(s_r_opt));
s_r_opt.def = "HEAD";
@@ -1958,6 +1999,8 @@ int cmd_format_patch(int argc, const char **argv, const char *prefix)
die(_("--name-status does not make sense"));
if (rev.diffopt.output_format & DIFF_FORMAT_CHECKDIFF)
die(_("--check does not make sense"));
+ if (rev.remerge_diff)
+ die(_("--remerge-diff does not make sense"));
if (!use_patch_format &&
(!rev.diffopt.output_format ||
@@ -1978,18 +2021,13 @@ int cmd_format_patch(int argc, const char **argv, const char *prefix)
if (rev.show_notes)
load_display_notes(&rev.notes_opt);
- if (use_stdout + rev.diffopt.close_file + !!output_directory > 1)
- die(_("options '%s', '%s', and '%s' cannot be used together"), "--stdout", "--output", "--output-directory");
+ die_for_incompatible_opt3(use_stdout, "--stdout",
+ rev.diffopt.close_file, "--output",
+ !!output_directory, "--output-directory");
if (use_stdout) {
setup_pager();
- } else if (rev.diffopt.close_file) {
- /*
- * The diff code parsed --output; it has already opened the
- * file, but we must instruct it not to close after each diff.
- */
- rev.diffopt.no_free = 1;
- } else {
+ } else if (!rev.diffopt.close_file) {
int saved;
if (!output_directory)
diff --git a/builtin/ls-files.c b/builtin/ls-files.c
index f7ea56cc63..e791b65e7e 100644
--- a/builtin/ls-files.c
+++ b/builtin/ls-files.c
@@ -244,7 +244,7 @@ static void show_ce(struct repository *repo, struct dir_struct *dir,
printf("%s%06o %s %d\t",
tag,
ce->ce_mode,
- find_unique_abbrev(&ce->oid, abbrev),
+ repo_find_unique_abbrev(repo, &ce->oid, abbrev),
ce_stage(ce));
}
write_eolinfo(repo->index, ce, fullname);
@@ -726,7 +726,7 @@ int cmd_ls_files(int argc, const char **argv, const char *cmd_prefix)
setup_work_tree();
if (recurse_submodules &&
- (show_stage || show_deleted || show_others || show_unmerged ||
+ (show_deleted || show_others || show_unmerged ||
show_killed || show_modified || show_resolve_undo || with_tree))
die("ls-files --recurse-submodules unsupported mode");
diff --git a/builtin/ls-remote.c b/builtin/ls-remote.c
index 87c192f7c0..df44e5cc0d 100644
--- a/builtin/ls-remote.c
+++ b/builtin/ls-remote.c
@@ -155,6 +155,7 @@ int cmd_ls_remote(int argc, const char **argv, const char *prefix)
ref_array_clear(&ref_array);
if (transport_disconnect(transport))
- return 1;
+ status = 1;
+ transport_ls_refs_options_release(&transport_options);
return status;
}
diff --git a/builtin/ls-tree.c b/builtin/ls-tree.c
index 3a442631c7..e279be8bb6 100644
--- a/builtin/ls-tree.c
+++ b/builtin/ls-tree.c
@@ -16,22 +16,102 @@
static int line_termination = '\n';
#define LS_RECURSIVE 1
-#define LS_TREE_ONLY 2
-#define LS_SHOW_TREES 4
-#define LS_NAME_ONLY 8
-#define LS_SHOW_SIZE 16
+#define LS_TREE_ONLY (1 << 1)
+#define LS_SHOW_TREES (1 << 2)
static int abbrev;
static int ls_options;
static struct pathspec pathspec;
static int chomp_prefix;
static const char *ls_tree_prefix;
+static const char *format;
+struct show_tree_data {
+ unsigned mode;
+ enum object_type type;
+ const struct object_id *oid;
+ const char *pathname;
+ struct strbuf *base;
+};
static const char * const ls_tree_usage[] = {
N_("git ls-tree [<options>] <tree-ish> [<path>...]"),
NULL
};
-static int show_recursive(const char *base, int baselen, const char *pathname)
+static enum ls_tree_cmdmode {
+ MODE_DEFAULT = 0,
+ MODE_LONG,
+ MODE_NAME_ONLY,
+ MODE_NAME_STATUS,
+ MODE_OBJECT_ONLY,
+} cmdmode;
+
+static void expand_objectsize(struct strbuf *line, const struct object_id *oid,
+ const enum object_type type, unsigned int padded)
+{
+ if (type == OBJ_BLOB) {
+ unsigned long size;
+ if (oid_object_info(the_repository, oid, &size) < 0)
+ die(_("could not get object info about '%s'"),
+ oid_to_hex(oid));
+ if (padded)
+ strbuf_addf(line, "%7"PRIuMAX, (uintmax_t)size);
+ else
+ strbuf_addf(line, "%"PRIuMAX, (uintmax_t)size);
+ } else if (padded) {
+ strbuf_addf(line, "%7s", "-");
+ } else {
+ strbuf_addstr(line, "-");
+ }
+}
+
+static size_t expand_show_tree(struct strbuf *sb, const char *start,
+ void *context)
+{
+ struct show_tree_data *data = context;
+ const char *end;
+ const char *p;
+ unsigned int errlen;
+ size_t len = strbuf_expand_literal_cb(sb, start, NULL);
+
+ if (len)
+ return len;
+ if (*start != '(')
+ die(_("bad ls-tree format: element '%s' does not start with '('"), start);
+
+ end = strchr(start + 1, ')');
+ if (!end)
+ die(_("bad ls-tree format: element '%s' does not end in ')'"), start);
+
+ len = end - start + 1;
+ if (skip_prefix(start, "(objectmode)", &p)) {
+ strbuf_addf(sb, "%06o", data->mode);
+ } else if (skip_prefix(start, "(objecttype)", &p)) {
+ strbuf_addstr(sb, type_name(data->type));
+ } else if (skip_prefix(start, "(objectsize:padded)", &p)) {
+ expand_objectsize(sb, data->oid, data->type, 1);
+ } else if (skip_prefix(start, "(objectsize)", &p)) {
+ expand_objectsize(sb, data->oid, data->type, 0);
+ } else if (skip_prefix(start, "(objectname)", &p)) {
+ strbuf_add_unique_abbrev(sb, data->oid, abbrev);
+ } else if (skip_prefix(start, "(path)", &p)) {
+ const char *name = data->base->buf;
+ const char *prefix = chomp_prefix ? ls_tree_prefix : NULL;
+ struct strbuf quoted = STRBUF_INIT;
+ struct strbuf sbuf = STRBUF_INIT;
+ strbuf_addstr(data->base, data->pathname);
+ name = relative_path(data->base->buf, prefix, &sbuf);
+ quote_c_style(name, &quoted, NULL, 0);
+ strbuf_addbuf(sb, &quoted);
+ strbuf_release(&sbuf);
+ strbuf_release(&quoted);
+ } else {
+ errlen = (unsigned long)len;
+ die(_("bad ls-tree format: %%%.*s"), errlen, start);
+ }
+ return len;
+}
+
+static int show_recursive(const char *base, size_t baselen, const char *pathname)
{
int i;
@@ -43,7 +123,7 @@ static int show_recursive(const char *base, int baselen, const char *pathname)
for (i = 0; i < pathspec.nr; i++) {
const char *spec = pathspec.items[i].match;
- int len, speclen;
+ size_t len, speclen;
if (strncmp(base, spec, baselen))
continue;
@@ -61,69 +141,197 @@ static int show_recursive(const char *base, int baselen, const char *pathname)
return 0;
}
-static int show_tree(const struct object_id *oid, struct strbuf *base,
- const char *pathname, unsigned mode, void *context)
+static int show_tree_fmt(const struct object_id *oid, struct strbuf *base,
+ const char *pathname, unsigned mode, void *context)
{
- int retval = 0;
- int baselen;
- const char *type = blob_type;
-
- if (S_ISGITLINK(mode)) {
- /*
- * Maybe we want to have some recursive version here?
- *
- * Something similar to this incomplete example:
- *
- if (show_subprojects(base, baselen, pathname))
- retval = READ_TREE_RECURSIVE;
- *
- */
- type = commit_type;
- } else if (S_ISDIR(mode)) {
- if (show_recursive(base->buf, base->len, pathname)) {
- retval = READ_TREE_RECURSIVE;
- if (!(ls_options & LS_SHOW_TREES))
- return retval;
- }
- type = tree_type;
- }
- else if (ls_options & LS_TREE_ONLY)
+ size_t baselen;
+ int recurse = 0;
+ struct strbuf sb = STRBUF_INIT;
+ enum object_type type = object_type(mode);
+
+ struct show_tree_data data = {
+ .mode = mode,
+ .type = type,
+ .oid = oid,
+ .pathname = pathname,
+ .base = base,
+ };
+
+ if (type == OBJ_TREE && show_recursive(base->buf, base->len, pathname))
+ recurse = READ_TREE_RECURSIVE;
+ if (type == OBJ_TREE && recurse && !(ls_options & LS_SHOW_TREES))
+ return recurse;
+ if (type == OBJ_BLOB && (ls_options & LS_TREE_ONLY))
return 0;
- if (!(ls_options & LS_NAME_ONLY)) {
- if (ls_options & LS_SHOW_SIZE) {
- char size_text[24];
- if (!strcmp(type, blob_type)) {
- unsigned long size;
- if (oid_object_info(the_repository, oid, &size) == OBJ_BAD)
- xsnprintf(size_text, sizeof(size_text),
- "BAD");
- else
- xsnprintf(size_text, sizeof(size_text),
- "%"PRIuMAX, (uintmax_t)size);
- } else
- xsnprintf(size_text, sizeof(size_text), "-");
- printf("%06o %s %s %7s\t", mode, type,
- find_unique_abbrev(oid, abbrev),
- size_text);
- } else
- printf("%06o %s %s\t", mode, type,
- find_unique_abbrev(oid, abbrev));
- }
baselen = base->len;
+ strbuf_expand(&sb, format, expand_show_tree, &data);
+ strbuf_addch(&sb, line_termination);
+ fwrite(sb.buf, sb.len, 1, stdout);
+ strbuf_release(&sb);
+ strbuf_setlen(base, baselen);
+ return recurse;
+}
+
+static int show_tree_common(struct show_tree_data *data, int *recurse,
+ const struct object_id *oid, struct strbuf *base,
+ const char *pathname, unsigned mode)
+{
+ enum object_type type = object_type(mode);
+ int ret = -1;
+
+ *recurse = 0;
+ data->mode = mode;
+ data->type = type;
+ data->oid = oid;
+ data->pathname = pathname;
+ data->base = base;
+
+ if (type == OBJ_BLOB) {
+ if (ls_options & LS_TREE_ONLY)
+ ret = 0;
+ } else if (type == OBJ_TREE &&
+ show_recursive(base->buf, base->len, pathname)) {
+ *recurse = READ_TREE_RECURSIVE;
+ if (!(ls_options & LS_SHOW_TREES))
+ ret = *recurse;
+ }
+
+ return ret;
+}
+
+static void show_tree_common_default_long(struct strbuf *base,
+ const char *pathname,
+ const size_t baselen)
+{
+ strbuf_addstr(base, pathname);
+ write_name_quoted_relative(base->buf,
+ chomp_prefix ? ls_tree_prefix : NULL, stdout,
+ line_termination);
+ strbuf_setlen(base, baselen);
+}
+
+static int show_tree_default(const struct object_id *oid, struct strbuf *base,
+ const char *pathname, unsigned mode,
+ void *context)
+{
+ int early;
+ int recurse;
+ struct show_tree_data data = { 0 };
+
+ early = show_tree_common(&data, &recurse, oid, base, pathname, mode);
+ if (early >= 0)
+ return early;
+
+ printf("%06o %s %s\t", data.mode, type_name(data.type),
+ find_unique_abbrev(data.oid, abbrev));
+ show_tree_common_default_long(base, pathname, data.base->len);
+ return recurse;
+}
+
+static int show_tree_long(const struct object_id *oid, struct strbuf *base,
+ const char *pathname, unsigned mode, void *context)
+{
+ int early;
+ int recurse;
+ struct show_tree_data data = { 0 };
+ char size_text[24];
+
+ early = show_tree_common(&data, &recurse, oid, base, pathname, mode);
+ if (early >= 0)
+ return early;
+
+ if (data.type == OBJ_BLOB) {
+ unsigned long size;
+ if (oid_object_info(the_repository, data.oid, &size) == OBJ_BAD)
+ xsnprintf(size_text, sizeof(size_text), "BAD");
+ else
+ xsnprintf(size_text, sizeof(size_text),
+ "%" PRIuMAX, (uintmax_t)size);
+ } else {
+ xsnprintf(size_text, sizeof(size_text), "-");
+ }
+
+ printf("%06o %s %s %7s\t", data.mode, type_name(data.type),
+ find_unique_abbrev(data.oid, abbrev), size_text);
+ show_tree_common_default_long(base, pathname, data.base->len);
+ return recurse;
+}
+
+static int show_tree_name_only(const struct object_id *oid, struct strbuf *base,
+ const char *pathname, unsigned mode, void *context)
+{
+ int early;
+ int recurse;
+ const size_t baselen = base->len;
+ struct show_tree_data data = { 0 };
+
+ early = show_tree_common(&data, &recurse, oid, base, pathname, mode);
+ if (early >= 0)
+ return early;
+
strbuf_addstr(base, pathname);
write_name_quoted_relative(base->buf,
chomp_prefix ? ls_tree_prefix : NULL,
stdout, line_termination);
strbuf_setlen(base, baselen);
- return retval;
+ return recurse;
+}
+
+static int show_tree_object(const struct object_id *oid, struct strbuf *base,
+ const char *pathname, unsigned mode, void *context)
+{
+ int early;
+ int recurse;
+ struct show_tree_data data = { 0 };
+
+ early = show_tree_common(&data, &recurse, oid, base, pathname, mode);
+ if (early >= 0)
+ return early;
+
+ printf("%s%c", find_unique_abbrev(oid, abbrev), line_termination);
+ return recurse;
}
+struct ls_tree_cmdmode_to_fmt {
+ enum ls_tree_cmdmode mode;
+ const char *const fmt;
+ read_tree_fn_t fn;
+};
+
+static struct ls_tree_cmdmode_to_fmt ls_tree_cmdmode_format[] = {
+ {
+ .mode = MODE_DEFAULT,
+ .fmt = "%(objectmode) %(objecttype) %(objectname)%x09%(path)",
+ .fn = show_tree_default,
+ },
+ {
+ .mode = MODE_LONG,
+ .fmt = "%(objectmode) %(objecttype) %(objectname) %(objectsize:padded)%x09%(path)",
+ .fn = show_tree_long,
+ },
+ {
+ .mode = MODE_NAME_ONLY, /* And MODE_NAME_STATUS */
+ .fmt = "%(path)",
+ .fn = show_tree_name_only,
+ },
+ {
+ .mode = MODE_OBJECT_ONLY,
+ .fmt = "%(objectname)",
+ .fn = show_tree_object
+ },
+ {
+ /* fallback */
+ .fn = show_tree_default,
+ },
+};
+
int cmd_ls_tree(int argc, const char **argv, const char *prefix)
{
struct object_id oid;
struct tree *tree;
int i, full_tree = 0;
+ read_tree_fn_t fn = NULL;
const struct option ls_tree_options[] = {
OPT_BIT('d', NULL, &ls_options, N_("only show trees"),
LS_TREE_ONLY),
@@ -133,24 +341,30 @@ int cmd_ls_tree(int argc, const char **argv, const char *prefix)
LS_SHOW_TREES),
OPT_SET_INT('z', NULL, &line_termination,
N_("terminate entries with NUL byte"), 0),
- OPT_BIT('l', "long", &ls_options, N_("include object size"),
- LS_SHOW_SIZE),
- OPT_BIT(0, "name-only", &ls_options, N_("list only filenames"),
- LS_NAME_ONLY),
- OPT_BIT(0, "name-status", &ls_options, N_("list only filenames"),
- LS_NAME_ONLY),
+ OPT_CMDMODE('l', "long", &cmdmode, N_("include object size"),
+ MODE_LONG),
+ OPT_CMDMODE(0, "name-only", &cmdmode, N_("list only filenames"),
+ MODE_NAME_ONLY),
+ OPT_CMDMODE(0, "name-status", &cmdmode, N_("list only filenames"),
+ MODE_NAME_STATUS),
+ OPT_CMDMODE(0, "object-only", &cmdmode, N_("list only objects"),
+ MODE_OBJECT_ONLY),
OPT_SET_INT(0, "full-name", &chomp_prefix,
N_("use full path names"), 0),
OPT_BOOL(0, "full-tree", &full_tree,
N_("list entire tree; not just current directory "
"(implies --full-name)")),
+ OPT_STRING_F(0, "format", &format, N_("format"),
+ N_("format to use for the output"),
+ PARSE_OPT_NONEG),
OPT__ABBREV(&abbrev),
OPT_END()
};
+ struct ls_tree_cmdmode_to_fmt *m2f = ls_tree_cmdmode_format;
git_config(git_default_config, NULL);
ls_tree_prefix = prefix;
- if (prefix && *prefix)
+ if (prefix)
chomp_prefix = strlen(prefix);
argc = parse_options(argc, argv, prefix, ls_tree_options,
@@ -159,11 +373,23 @@ int cmd_ls_tree(int argc, const char **argv, const char *prefix)
ls_tree_prefix = prefix = NULL;
chomp_prefix = 0;
}
+ /*
+ * We wanted to detect conflicts between --name-only and
+ * --name-status, but once we're done with that subsequent
+ * code should only need to check the primary name.
+ */
+ if (cmdmode == MODE_NAME_STATUS)
+ cmdmode = MODE_NAME_ONLY;
+
/* -d -r should imply -t, but -d by itself should not have to. */
if ( (LS_TREE_ONLY|LS_RECURSIVE) ==
((LS_TREE_ONLY|LS_RECURSIVE) & ls_options))
ls_options |= LS_SHOW_TREES;
+ if (format && cmdmode)
+ usage_msg_opt(
+ _("--format can't be combined with other format-altering options"),
+ ls_tree_usage, ls_tree_options);
if (argc < 1)
usage_with_options(ls_tree_usage, ls_tree_options);
if (get_oid(argv[0], &oid))
@@ -185,6 +411,24 @@ int cmd_ls_tree(int argc, const char **argv, const char *prefix)
tree = parse_tree_indirect(&oid);
if (!tree)
die("not a tree object");
- return !!read_tree(the_repository, tree,
- &pathspec, show_tree, NULL);
+ /*
+ * The generic show_tree_fmt() is slower than show_tree(), so
+ * take the fast path if possible.
+ */
+ while (m2f) {
+ if (!m2f->fmt) {
+ fn = format ? show_tree_fmt : show_tree_default;
+ } else if (format && !strcmp(format, m2f->fmt)) {
+ cmdmode = m2f->mode;
+ fn = m2f->fn;
+ } else if (!format && cmdmode == m2f->mode) {
+ fn = m2f->fn;
+ } else {
+ m2f++;
+ continue;
+ }
+ break;
+ }
+
+ return !!read_tree(the_repository, tree, &pathspec, fn, NULL);
}
diff --git a/builtin/mailsplit.c b/builtin/mailsplit.c
index 2b30609d17..73509f651b 100644
--- a/builtin/mailsplit.c
+++ b/builtin/mailsplit.c
@@ -223,6 +223,9 @@ static int split_mbox(const char *file, const char *dir, int allow_bare,
FILE *f = !strcmp(file, "-") ? stdin : fopen(file, "r");
int file_done = 0;
+ if (isatty(fileno(f)))
+ warning(_("reading patches from stdin/tty..."));
+
if (!f) {
error_errno("cannot open mbox %s", file);
goto out;
diff --git a/builtin/merge-base.c b/builtin/merge-base.c
index 6719ac198d..a11f8c6e4b 100644
--- a/builtin/merge-base.c
+++ b/builtin/merge-base.c
@@ -138,6 +138,7 @@ int cmd_merge_base(int argc, const char **argv, const char *prefix)
int rev_nr = 0;
int show_all = 0;
int cmdmode = 0;
+ int ret;
struct option options[] = {
OPT_BOOL('a', "all", &show_all, N_("output all common ancestors")),
@@ -159,12 +160,14 @@ int cmd_merge_base(int argc, const char **argv, const char *prefix)
if (argc < 2)
usage_with_options(merge_base_usage, options);
if (show_all)
- die("--is-ancestor cannot be used with --all");
+ die(_("options '%s' and '%s' cannot be used together"),
+ "--is-ancestor", "--all");
return handle_is_ancestor(argc, argv);
}
if (cmdmode == 'r' && show_all)
- die("--independent cannot be used with --all");
+ die(_("options '%s' and '%s' cannot be used together"),
+ "--independent", "--all");
if (cmdmode == 'o')
return handle_octopus(argc, argv, show_all);
@@ -184,5 +187,7 @@ int cmd_merge_base(int argc, const char **argv, const char *prefix)
ALLOC_ARRAY(rev, argc);
while (argc-- > 0)
rev[rev_nr++] = get_commit_reference(*argv++);
- return show_merge_base(rev, rev_nr, show_all);
+ ret = show_merge_base(rev, rev_nr, show_all);
+ free(rev);
+ return ret;
}
diff --git a/builtin/merge-recursive.c b/builtin/merge-recursive.c
index a4bfd8fc51..b9acbf5d34 100644
--- a/builtin/merge-recursive.c
+++ b/builtin/merge-recursive.c
@@ -58,7 +58,7 @@ int cmd_merge_recursive(int argc, const char **argv, const char *prefix)
"Ignoring %s.",
"cannot handle more than %d bases. "
"Ignoring %s.",
- (int)ARRAY_SIZE(bases)-1),
+ ARRAY_SIZE(bases)-1),
(int)ARRAY_SIZE(bases)-1, argv[i]);
}
if (argc - i != 3) /* "--" "<head>" "<remote>" */
diff --git a/builtin/merge.c b/builtin/merge.c
index 74e53cf20a..f178f5a3ee 100644
--- a/builtin/merge.c
+++ b/builtin/merge.c
@@ -490,7 +490,7 @@ static void finish(struct commit *head_commit,
}
/* Run a post-merge hook */
- run_hook_le(NULL, "post-merge", squash ? "1" : "0", NULL);
+ run_hooks_l("post-merge", squash ? "1" : "0", NULL);
apply_autostash(git_path_merge_autostash(the_repository));
strbuf_release(&reflog_message);
@@ -845,15 +845,20 @@ static void prepare_to_commit(struct commit_list *remoteheads)
struct strbuf msg = STRBUF_INIT;
const char *index_file = get_index_file();
- if (!no_verify && run_commit_hook(0 < option_edit, index_file, "pre-merge-commit", NULL))
- abort_commit(remoteheads, NULL);
- /*
- * Re-read the index as pre-merge-commit hook could have updated it,
- * and write it out as a tree. We must do this before we invoke
- * the editor and after we invoke run_status above.
- */
- if (hook_exists("pre-merge-commit"))
- discard_cache();
+ if (!no_verify) {
+ int invoked_hook;
+
+ if (run_commit_hook(0 < option_edit, index_file, &invoked_hook,
+ "pre-merge-commit", NULL))
+ abort_commit(remoteheads, NULL);
+ /*
+ * Re-read the index as pre-merge-commit hook could have updated it,
+ * and write it out as a tree. We must do this before we invoke
+ * the editor and after we invoke run_status above.
+ */
+ if (invoked_hook)
+ discard_cache();
+ }
read_cache_from(index_file);
strbuf_addbuf(&msg, &merge_msg);
if (squash)
@@ -875,7 +880,8 @@ static void prepare_to_commit(struct commit_list *remoteheads)
append_signoff(&msg, ignore_non_trailer(msg.buf, msg.len), 0);
write_merge_heads(remoteheads);
write_file_buf(git_path_merge_msg(the_repository), msg.buf, msg.len);
- if (run_commit_hook(0 < option_edit, get_index_file(), "prepare-commit-msg",
+ if (run_commit_hook(0 < option_edit, get_index_file(), NULL,
+ "prepare-commit-msg",
git_path_merge_msg(the_repository), "merge", NULL))
abort_commit(remoteheads, NULL);
if (0 < option_edit) {
@@ -884,7 +890,7 @@ static void prepare_to_commit(struct commit_list *remoteheads)
}
if (!no_verify && run_commit_hook(0 < option_edit, get_index_file(),
- "commit-msg",
+ NULL, "commit-msg",
git_path_merge_msg(the_repository), NULL))
abort_commit(remoteheads, NULL);
@@ -1273,7 +1279,7 @@ int cmd_merge(int argc, const char **argv, const char *prefix)
int best_cnt = -1, merge_was_ok = 0, automerge_was_ok = 0;
struct commit_list *common = NULL;
const char *best_strategy = NULL, *wt_strategy = NULL;
- struct commit_list *remoteheads, *p;
+ struct commit_list *remoteheads = NULL, *p;
void *branch_to_free;
int orig_argc = argc;
@@ -1568,8 +1574,7 @@ int cmd_merge(int argc, const char **argv, const char *prefix)
if (autostash)
create_autostash(the_repository,
- git_path_merge_autostash(the_repository),
- "merge");
+ git_path_merge_autostash(the_repository));
if (checkout_fast_forward(the_repository,
&head_commit->object.oid,
&commit->object.oid,
@@ -1640,8 +1645,7 @@ int cmd_merge(int argc, const char **argv, const char *prefix)
if (autostash)
create_autostash(the_repository,
- git_path_merge_autostash(the_repository),
- "merge");
+ git_path_merge_autostash(the_repository));
/* We are going to make a new commit. */
git_committer_info(IDENT_STRICT);
@@ -1752,6 +1756,10 @@ int cmd_merge(int argc, const char **argv, const char *prefix)
ret = suggest_conflicts();
done:
+ if (!automerge_was_ok) {
+ free_commit_list(common);
+ free_commit_list(remoteheads);
+ }
strbuf_release(&buf);
free(branch_to_free);
return ret;
diff --git a/builtin/mktag.c b/builtin/mktag.c
index 3b2dbbb37e..5d22909122 100644
--- a/builtin/mktag.c
+++ b/builtin/mktag.c
@@ -7,7 +7,7 @@
#include "config.h"
static char const * const builtin_mktag_usage[] = {
- N_("git mktag"),
+ "git mktag",
NULL
};
static int option_strict = 1;
@@ -61,9 +61,8 @@ static int verify_object_in_tag(struct object_id *tagged_oid, int *tagged_type)
type_name(*tagged_type), type_name(type));
repl = lookup_replace_object(the_repository, tagged_oid);
- ret = check_object_signature(the_repository, repl,
- buffer, size, type_name(*tagged_type),
- NULL);
+ ret = check_object_signature(the_repository, repl, buffer, size,
+ *tagged_type);
free(buffer);
return ret;
@@ -97,10 +96,10 @@ int cmd_mktag(int argc, const char **argv, const char *prefix)
&tagged_oid, &tagged_type))
die(_("tag on stdin did not pass our strict fsck check"));
- if (verify_object_in_tag(&tagged_oid, &tagged_type))
+ if (verify_object_in_tag(&tagged_oid, &tagged_type) < 0)
die(_("tag on stdin did not refer to a valid object"));
- if (write_object_file(buf.buf, buf.len, tag_type, &result) < 0)
+ if (write_object_file(buf.buf, buf.len, OBJ_TAG, &result) < 0)
die(_("unable to write tag file"));
strbuf_release(&buf);
diff --git a/builtin/mktree.c b/builtin/mktree.c
index ae78ca1c02..902edba6d2 100644
--- a/builtin/mktree.c
+++ b/builtin/mktree.c
@@ -58,12 +58,12 @@ static void write_tree(struct object_id *oid)
strbuf_add(&buf, ent->oid.hash, the_hash_algo->rawsz);
}
- write_object_file(buf.buf, buf.len, tree_type, oid);
+ write_object_file(buf.buf, buf.len, OBJ_TREE, oid);
strbuf_release(&buf);
}
static const char *mktree_usage[] = {
- N_("git mktree [-z] [--missing] [--batch]"),
+ "git mktree [-z] [--missing] [--batch]",
NULL
};
diff --git a/builtin/multi-pack-index.c b/builtin/multi-pack-index.c
index 4480ba3982..5edbb7fe86 100644
--- a/builtin/multi-pack-index.c
+++ b/builtin/multi-pack-index.c
@@ -44,7 +44,7 @@ static char const * const builtin_multi_pack_index_usage[] = {
};
static struct opts_multi_pack_index {
- const char *object_dir;
+ char *object_dir;
const char *preferred_pack;
const char *refs_snapshot;
unsigned long batch_size;
@@ -52,9 +52,23 @@ static struct opts_multi_pack_index {
int stdin_packs;
} opts;
+
+static int parse_object_dir(const struct option *opt, const char *arg,
+ int unset)
+{
+ free(opts.object_dir);
+ if (unset)
+ opts.object_dir = xstrdup(get_object_directory());
+ else
+ opts.object_dir = real_pathdup(arg, 1);
+ return 0;
+}
+
static struct option common_opts[] = {
- OPT_FILENAME(0, "object-dir", &opts.object_dir,
- N_("object directory containing set of packfile and pack-index pairs")),
+ OPT_CALLBACK(0, "object-dir", &opts.object_dir,
+ N_("directory"),
+ N_("object directory containing set of packfile and pack-index pairs"),
+ parse_object_dir),
OPT_END(),
};
@@ -232,31 +246,40 @@ static int cmd_multi_pack_index_repack(int argc, const char **argv)
int cmd_multi_pack_index(int argc, const char **argv,
const char *prefix)
{
+ int res;
struct option *builtin_multi_pack_index_options = common_opts;
git_config(git_default_config, NULL);
+ if (the_repository &&
+ the_repository->objects &&
+ the_repository->objects->odb)
+ opts.object_dir = xstrdup(the_repository->objects->odb->path);
+
argc = parse_options(argc, argv, prefix,
builtin_multi_pack_index_options,
builtin_multi_pack_index_usage,
PARSE_OPT_STOP_AT_NON_OPTION);
- if (!opts.object_dir)
- opts.object_dir = get_object_directory();
-
if (!argc)
goto usage;
if (!strcmp(argv[0], "repack"))
- return cmd_multi_pack_index_repack(argc, argv);
+ res = cmd_multi_pack_index_repack(argc, argv);
else if (!strcmp(argv[0], "write"))
- return cmd_multi_pack_index_write(argc, argv);
+ res = cmd_multi_pack_index_write(argc, argv);
else if (!strcmp(argv[0], "verify"))
- return cmd_multi_pack_index_verify(argc, argv);
+ res = cmd_multi_pack_index_verify(argc, argv);
else if (!strcmp(argv[0], "expire"))
- return cmd_multi_pack_index_expire(argc, argv);
+ res = cmd_multi_pack_index_expire(argc, argv);
+ else {
+ error(_("unrecognized subcommand: %s"), argv[0]);
+ goto usage;
+ }
+
+ free(opts.object_dir);
+ return res;
- error(_("unrecognized subcommand: %s"), argv[0]);
usage:
usage_with_options(builtin_multi_pack_index_usage,
builtin_multi_pack_index_options);
diff --git a/builtin/name-rev.c b/builtin/name-rev.c
index 27f60153a6..02ea9d1633 100644
--- a/builtin/name-rev.c
+++ b/builtin/name-rev.c
@@ -9,6 +9,7 @@
#include "prio-queue.h"
#include "hash-lookup.h"
#include "commit-slab.h"
+#include "commit-graph.h"
/*
* One day. See the 'name a rev shortly after epoch' test in t6120 when
@@ -17,7 +18,7 @@
#define CUTOFF_DATE_SLOP 86400
struct rev_name {
- char *tip_name;
+ const char *tip_name;
timestamp_t taggerdate;
int generation;
int distance;
@@ -26,15 +27,64 @@ struct rev_name {
define_commit_slab(commit_rev_name, struct rev_name);
+static timestamp_t generation_cutoff = GENERATION_NUMBER_INFINITY;
static timestamp_t cutoff = TIME_MAX;
static struct commit_rev_name rev_names;
+/* Disable the cutoff checks entirely */
+static void disable_cutoff(void)
+{
+ generation_cutoff = 0;
+ cutoff = 0;
+}
+
+/* Cutoff searching any commits older than this one */
+static void set_commit_cutoff(struct commit *commit)
+{
+
+ if (cutoff > commit->date)
+ cutoff = commit->date;
+
+ if (generation_cutoff) {
+ timestamp_t generation = commit_graph_generation(commit);
+
+ if (generation_cutoff > generation)
+ generation_cutoff = generation;
+ }
+}
+
+/* adjust the commit date cutoff with a slop to allow for slightly incorrect
+ * commit timestamps in case of clock skew.
+ */
+static void adjust_cutoff_timestamp_for_slop(void)
+{
+ if (cutoff) {
+ /* check for undeflow */
+ if (cutoff > TIME_MIN + CUTOFF_DATE_SLOP)
+ cutoff = cutoff - CUTOFF_DATE_SLOP;
+ else
+ cutoff = TIME_MIN;
+ }
+}
+
+/* Check if a commit is before the cutoff. Prioritize generation numbers
+ * first, but use the commit timestamp if we lack generation data.
+ */
+static int commit_is_before_cutoff(struct commit *commit)
+{
+ if (generation_cutoff < GENERATION_NUMBER_INFINITY)
+ return generation_cutoff &&
+ commit_graph_generation(commit) < generation_cutoff;
+
+ return commit->date < cutoff;
+}
+
/* How many generations are maximally preferred over _one_ merge traversal? */
#define MERGE_TRAVERSAL_WEIGHT 65535
static int is_valid_rev_name(const struct rev_name *name)
{
- return name && (name->generation || name->tip_name);
+ return name && name->tip_name;
}
static struct rev_name *get_commit_rev_name(const struct commit *commit)
@@ -96,20 +146,9 @@ static struct rev_name *create_or_update_name(struct commit *commit,
{
struct rev_name *name = commit_rev_name_at(&rev_names, commit);
- if (is_valid_rev_name(name)) {
- if (!is_better_name(name, taggerdate, generation, distance, from_tag))
- return NULL;
-
- /*
- * This string might still be shared with ancestors
- * (generation > 0). We can release it here regardless,
- * because the new name that has just won will be better
- * for them as well, so name_rev() will replace these
- * stale pointers when it processes the parents.
- */
- if (!name->generation)
- free(name->tip_name);
- }
+ if (is_valid_rev_name(name) &&
+ !is_better_name(name, taggerdate, generation, distance, from_tag))
+ return NULL;
name->taggerdate = taggerdate;
name->generation = generation;
@@ -151,7 +190,7 @@ static void name_rev(struct commit *start_commit,
struct rev_name *start_name;
parse_commit(start_commit);
- if (start_commit->date < cutoff)
+ if (commit_is_before_cutoff(start_commit))
return;
start_name = create_or_update_name(start_commit, taggerdate, 0, 0,
@@ -181,7 +220,7 @@ static void name_rev(struct commit *start_commit,
int generation, distance;
parse_commit(parent);
- if (parent->date < cutoff)
+ if (commit_is_before_cutoff(parent))
continue;
if (parent_number > 1) {
@@ -473,7 +512,7 @@ static void show_name(const struct object *obj,
static char const * const name_rev_usage[] = {
N_("git name-rev [<options>] <commit>..."),
N_("git name-rev [<options>] --all"),
- N_("git name-rev [<options>] --stdin"),
+ N_("git name-rev [<options>] --annotate-stdin"),
NULL
};
@@ -527,7 +566,7 @@ static void name_rev_line(char *p, struct name_ref_data *data)
int cmd_name_rev(int argc, const char **argv, const char *prefix)
{
struct object_array revs = OBJECT_ARRAY_INIT;
- int all = 0, transform_stdin = 0, allow_undefined = 1, always = 0, peel_tag = 0;
+ int all = 0, annotate_stdin = 0, transform_stdin = 0, allow_undefined = 1, always = 0, peel_tag = 0;
struct name_ref_data data = { 0, 0, STRING_LIST_INIT_NODUP, STRING_LIST_INIT_NODUP };
struct option opts[] = {
OPT_BOOL(0, "name-only", &data.name_only, N_("print only ref-based names (no object names)")),
@@ -538,7 +577,8 @@ int cmd_name_rev(int argc, const char **argv, const char *prefix)
N_("ignore refs matching <pattern>")),
OPT_GROUP(""),
OPT_BOOL(0, "all", &all, N_("list all commits reachable from all refs")),
- OPT_BOOL(0, "stdin", &transform_stdin, N_("read from stdin")),
+ OPT_BOOL(0, "stdin", &transform_stdin, N_("deprecated: use annotate-stdin instead")),
+ OPT_BOOL(0, "annotate-stdin", &annotate_stdin, N_("annotate text from stdin")),
OPT_BOOL(0, "undefined", &allow_undefined, N_("allow to print `undefined` names (default)")),
OPT_BOOL(0, "always", &always,
N_("show abbreviated commit object as fallback")),
@@ -554,12 +594,20 @@ int cmd_name_rev(int argc, const char **argv, const char *prefix)
init_commit_rev_name(&rev_names);
git_config(git_default_config, NULL);
argc = parse_options(argc, argv, prefix, opts, name_rev_usage, 0);
- if (all + transform_stdin + !!argc > 1) {
+
+ if (transform_stdin) {
+ warning("--stdin is deprecated. Please use --annotate-stdin instead, "
+ "which is functionally equivalent.\n"
+ "This option will be removed in a future release.");
+ annotate_stdin = 1;
+ }
+
+ if (all + annotate_stdin + !!argc > 1) {
error("Specify either a list, or --all, not both!");
usage_with_options(name_rev_usage, opts);
}
- if (all || transform_stdin)
- cutoff = 0;
+ if (all || annotate_stdin)
+ disable_cutoff();
for (; argc; argc--, argv++) {
struct object_id oid;
@@ -587,10 +635,8 @@ int cmd_name_rev(int argc, const char **argv, const char *prefix)
continue;
}
- if (commit) {
- if (cutoff > commit->date)
- cutoff = commit->date;
- }
+ if (commit)
+ set_commit_cutoff(commit);
if (peel_tag) {
if (!commit) {
@@ -603,25 +649,19 @@ int cmd_name_rev(int argc, const char **argv, const char *prefix)
add_object_array(object, *argv, &revs);
}
- if (cutoff) {
- /* check for undeflow */
- if (cutoff > TIME_MIN + CUTOFF_DATE_SLOP)
- cutoff = cutoff - CUTOFF_DATE_SLOP;
- else
- cutoff = TIME_MIN;
- }
+ adjust_cutoff_timestamp_for_slop();
+
for_each_ref(name_ref, &data);
name_tips();
- if (transform_stdin) {
- char buffer[2048];
+ if (annotate_stdin) {
+ struct strbuf sb = STRBUF_INIT;
- while (!feof(stdin)) {
- char *p = fgets(buffer, sizeof(buffer), stdin);
- if (!p)
- break;
- name_rev_line(p, &data);
+ while (strbuf_getline(&sb, stdin) != EOF) {
+ strbuf_addch(&sb, '\n');
+ name_rev_line(sb.buf, &data);
}
+ strbuf_release(&sb);
} else if (all) {
int i, max;
diff --git a/builtin/notes.c b/builtin/notes.c
index 05d60483e8..a3d0d15a22 100644
--- a/builtin/notes.c
+++ b/builtin/notes.c
@@ -32,8 +32,8 @@ static const char * const git_notes_usage[] = {
N_("git notes [--ref <notes-ref>] edit [--allow-empty] [<object>]"),
N_("git notes [--ref <notes-ref>] show [<object>]"),
N_("git notes [--ref <notes-ref>] merge [-v | -q] [-s <strategy>] <notes-ref>"),
- N_("git notes merge --commit [-v | -q]"),
- N_("git notes merge --abort [-v | -q]"),
+ "git notes merge --commit [-v | -q]",
+ "git notes merge --abort [-v | -q]",
N_("git notes [--ref <notes-ref>] remove [<object>...]"),
N_("git notes [--ref <notes-ref>] prune [-n] [-v]"),
N_("git notes [--ref <notes-ref>] get-ref"),
@@ -89,7 +89,7 @@ static const char * const git_notes_prune_usage[] = {
};
static const char * const git_notes_get_ref_usage[] = {
- N_("git notes get-ref"),
+ "git notes get-ref",
NULL
};
@@ -199,7 +199,7 @@ static void prepare_note_data(const struct object_id *object, struct note_data *
static void write_note_data(struct note_data *d, struct object_id *oid)
{
- if (write_object_file(d->buf.buf, d->buf.len, blob_type, oid)) {
+ if (write_object_file(d->buf.buf, d->buf.len, OBJ_BLOB, oid)) {
int status = die_message(_("unable to write note object"));
if (d->edit_path)
diff --git a/builtin/pack-objects.c b/builtin/pack-objects.c
index ba2006f221..014dcd4bc9 100644
--- a/builtin/pack-objects.c
+++ b/builtin/pack-objects.c
@@ -237,8 +237,6 @@ static unsigned long cache_max_small_delta_size = 1000;
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 {
@@ -1199,16 +1197,26 @@ static void write_pack_file(void)
display_progress(progress_state, written);
}
- /*
- * Did we write the wrong # entries in the header?
- * If so, rewrite it like in fast-import
- */
if (pack_to_stdout) {
- finalize_hashfile(f, hash, CSUM_HASH_IN_STREAM | CSUM_CLOSE);
+ /*
+ * We never fsync when writing to stdout since we may
+ * not be writing to an actual pack file. For instance,
+ * the upload-pack code passes a pipe here. Calling
+ * fsync on a pipe results in unnecessary
+ * synchronization with the reader on some platforms.
+ */
+ finalize_hashfile(f, hash, FSYNC_COMPONENT_NONE,
+ CSUM_HASH_IN_STREAM | CSUM_CLOSE);
} else if (nr_written == nr_remaining) {
- finalize_hashfile(f, hash, CSUM_HASH_IN_STREAM | CSUM_FSYNC | CSUM_CLOSE);
+ finalize_hashfile(f, hash, FSYNC_COMPONENT_PACK,
+ CSUM_HASH_IN_STREAM | CSUM_FSYNC | CSUM_CLOSE);
} else {
- int fd = finalize_hashfile(f, hash, 0);
+ /*
+ * If we wrote the wrong number of entries in the
+ * header, rewrite it like in fast-import.
+ */
+
+ int fd = finalize_hashfile(f, hash, FSYNC_COMPONENT_PACK, 0);
fixup_pack_header_footer(fd, hash, pack_tmp_name,
nr_written, hash, offset);
close(fd);
@@ -1802,7 +1810,7 @@ static void add_preferred_base(struct object_id *oid)
return;
data = read_object_with_reference(the_repository, oid,
- tree_type, &size, &tree_oid);
+ OBJ_TREE, &size, &tree_oid);
if (!data)
return;
@@ -3504,7 +3512,7 @@ static int option_parse_missing_action(const struct option *opt,
return 0;
}
- die(_("invalid value for --missing"));
+ die(_("invalid value for '%s': '%s'"), "--missing", arg);
return 0;
}
@@ -3651,7 +3659,7 @@ static int pack_options_allow_reuse(void)
static int get_object_list_from_bitmap(struct rev_info *revs)
{
- if (!(bitmap_git = prepare_bitmap_walk(revs, &filter_options, 0)))
+ if (!(bitmap_git = prepare_bitmap_walk(revs, 0)))
return -1;
if (pack_options_allow_reuse() &&
@@ -3714,9 +3722,8 @@ static void mark_bitmap_preferred_tips(void)
}
}
-static void get_object_list(int ac, const char **av)
+static void get_object_list(struct rev_info *revs, int ac, const char **av)
{
- struct rev_info revs;
struct setup_revision_opt s_r_opt = {
.allow_exclude_promisor_objects = 1,
};
@@ -3724,9 +3731,8 @@ static void get_object_list(int ac, const char **av)
int flags = 0;
int save_warning;
- repo_init_revisions(the_repository, &revs, NULL);
save_commit_buffer = 0;
- setup_revisions(ac, av, &revs, &s_r_opt);
+ setup_revisions(ac, av, revs, &s_r_opt);
/* make sure shallows are read */
is_repository_shallow(the_repository);
@@ -3756,13 +3762,13 @@ static void get_object_list(int ac, const char **av)
}
die(_("not a rev '%s'"), line);
}
- if (handle_revision_arg(line, &revs, flags, REVARG_CANNOT_BE_FILENAME))
+ if (handle_revision_arg(line, revs, flags, REVARG_CANNOT_BE_FILENAME))
die(_("bad revision '%s'"), line);
}
warn_on_object_refname_ambiguity = save_warning;
- if (use_bitmap_index && !get_object_list_from_bitmap(&revs))
+ if (use_bitmap_index && !get_object_list_from_bitmap(revs))
return;
if (use_delta_islands)
@@ -3771,24 +3777,24 @@ static void get_object_list(int ac, const char **av)
if (write_bitmap_index)
mark_bitmap_preferred_tips();
- if (prepare_revision_walk(&revs))
+ if (prepare_revision_walk(revs))
die(_("revision walk setup failed"));
- mark_edges_uninteresting(&revs, show_edge, sparse);
+ mark_edges_uninteresting(revs, show_edge, sparse);
if (!fn_show_object)
fn_show_object = show_object;
- traverse_commit_list_filtered(&filter_options, &revs,
- show_commit, fn_show_object, NULL,
- NULL);
+ traverse_commit_list(revs,
+ show_commit, fn_show_object,
+ NULL);
if (unpack_unreachable_expiration) {
- revs.ignore_missing_links = 1;
- if (add_unseen_recent_objects_to_traversal(&revs,
+ revs->ignore_missing_links = 1;
+ if (add_unseen_recent_objects_to_traversal(revs,
unpack_unreachable_expiration))
die(_("unable to add recent objects"));
- if (prepare_revision_walk(&revs))
+ if (prepare_revision_walk(revs))
die(_("revision walk setup failed"));
- traverse_commit_list(&revs, record_recent_commit,
+ traverse_commit_list(revs, record_recent_commit,
record_recent_object, NULL);
}
@@ -3861,6 +3867,21 @@ static int option_parse_unpack_unreachable(const struct option *opt,
return 0;
}
+struct po_filter_data {
+ unsigned have_revs:1;
+ struct rev_info revs;
+};
+
+static struct list_objects_filter_options *po_filter_revs_init(void *value)
+{
+ struct po_filter_data *data = value;
+
+ repo_init_revisions(the_repository, &data->revs, NULL);
+ data->have_revs = 1;
+
+ return &data->revs.filter;
+}
+
int cmd_pack_objects(int argc, const char **argv, const char *prefix)
{
int use_internal_rev_list = 0;
@@ -3871,6 +3892,8 @@ int cmd_pack_objects(int argc, const char **argv, const char *prefix)
int rev_list_index = 0;
int stdin_packs = 0;
struct string_list keep_pack_list = STRING_LIST_INIT_NODUP;
+ struct po_filter_data pfd = { .have_revs = 0 };
+
struct option pack_objects_options[] = {
OPT_SET_INT('q', "quiet", &progress,
N_("do not show progress meter"), 0),
@@ -3956,7 +3979,7 @@ int cmd_pack_objects(int argc, const char **argv, const char *prefix)
&write_bitmap_index,
N_("write a bitmap index if possible"),
WRITE_BITMAP_QUIET, PARSE_OPT_HIDDEN),
- OPT_PARSE_LIST_OBJECTS_FILTER(&filter_options),
+ OPT_PARSE_LIST_OBJECTS_FILTER_INIT(&pfd, po_filter_revs_init),
OPT_CALLBACK_F(0, "missing", NULL, N_("action"),
N_("handling for missing objects"), PARSE_OPT_NONEG,
option_parse_missing_action),
@@ -3976,9 +3999,11 @@ int cmd_pack_objects(int argc, const char **argv, const char *prefix)
read_replace_refs = 0;
sparse = git_env_bool("GIT_TEST_PACK_SPARSE", -1);
- prepare_repo_settings(the_repository);
- if (sparse < 0)
- sparse = the_repository->settings.pack_use_sparse;
+ if (the_repository->gitdir) {
+ prepare_repo_settings(the_repository);
+ if (sparse < 0)
+ sparse = the_repository->settings.pack_use_sparse;
+ }
reset_pack_idx_option(&pack_idx_opts);
git_config(git_pack_config, NULL);
@@ -4074,7 +4099,7 @@ int cmd_pack_objects(int argc, const char **argv, const char *prefix)
if (!rev_list_all || !rev_list_reflog || !rev_list_index)
unpack_unreachable_expiration = 0;
- if (filter_options.choice) {
+ if (pfd.have_revs && pfd.revs.filter.choice) {
if (!pack_to_stdout)
die(_("cannot use --filter without --stdout"));
if (stdin_packs)
@@ -4150,8 +4175,13 @@ int cmd_pack_objects(int argc, const char **argv, const char *prefix)
add_unreachable_loose_objects();
} else if (!use_internal_rev_list) {
read_object_list_from_stdin();
+ } else if (pfd.have_revs) {
+ get_object_list(&pfd.revs, rp.nr, rp.v);
} else {
- get_object_list(rp.nr, rp.v);
+ struct rev_info revs;
+
+ repo_init_revisions(the_repository, &revs, NULL);
+ get_object_list(&revs, rp.nr, rp.v);
}
cleanup_preferred_base();
if (include_tag && nr_result)
diff --git a/builtin/patch-id.c b/builtin/patch-id.c
index 822ffff51f..881fcf3273 100644
--- a/builtin/patch-id.c
+++ b/builtin/patch-id.c
@@ -32,8 +32,12 @@ static int scan_hunk_header(const char *p, int *p_before, int *p_after)
n = strspn(q, digits);
if (q[n] == ',') {
q += n + 1;
+ *p_before = atoi(q);
n = strspn(q, digits);
+ } else {
+ *p_before = 1;
}
+
if (n == 0 || q[n] != ' ' || q[n+1] != '+')
return 0;
@@ -41,13 +45,14 @@ static int scan_hunk_header(const char *p, int *p_before, int *p_after)
n = strspn(r, digits);
if (r[n] == ',') {
r += n + 1;
+ *p_after = atoi(r);
n = strspn(r, digits);
+ } else {
+ *p_after = 1;
}
if (n == 0)
return 0;
- *p_before = atoi(q);
- *p_after = atoi(r);
return 1;
}
diff --git a/builtin/prune-packed.c b/builtin/prune-packed.c
index b7b9281a8c..da3273a268 100644
--- a/builtin/prune-packed.c
+++ b/builtin/prune-packed.c
@@ -3,7 +3,7 @@
#include "prune-packed.h"
static const char * const prune_packed_usage[] = {
- N_("git prune-packed [-n | --dry-run] [-q | --quiet]"),
+ "git prune-packed [-n | --dry-run] [-q | --quiet]",
NULL
};
diff --git a/builtin/pull.c b/builtin/pull.c
index 100cbf9fb8..01155ba67b 100644
--- a/builtin/pull.c
+++ b/builtin/pull.c
@@ -42,9 +42,9 @@ static enum rebase_type parse_config_rebase(const char *key, const char *value,
return v;
if (fatal)
- die(_("Invalid value for %s: %s"), key, value);
+ die(_("invalid value for '%s': '%s'"), key, value);
else
- error(_("Invalid value for %s: %s"), key, value);
+ error(_("invalid value for '%s': '%s'"), key, value);
return REBASE_INVALID;
}
@@ -72,6 +72,7 @@ static const char * const pull_usage[] = {
static int opt_verbosity;
static char *opt_progress;
static int recurse_submodules = RECURSE_SUBMODULES_DEFAULT;
+static int recurse_submodules_cli = RECURSE_SUBMODULES_DEFAULT;
/* Options passed to git-merge or git-rebase */
static enum rebase_type opt_rebase = -1;
@@ -120,7 +121,7 @@ static struct option pull_options[] = {
N_("force progress reporting"),
PARSE_OPT_NOARG),
OPT_CALLBACK_F(0, "recurse-submodules",
- &recurse_submodules, N_("on-demand"),
+ &recurse_submodules_cli, N_("on-demand"),
N_("control for recursive fetching of submodules"),
PARSE_OPT_OPTARG, option_fetch_parse_recurse_submodules),
@@ -318,7 +319,7 @@ static const char *config_get_ff(void)
if (!strcmp(value, "only"))
return "--ff-only";
- die(_("Invalid value for pull.ff: %s"), value);
+ die(_("invalid value for '%s': '%s'"), "pull.ff", value);
}
/**
@@ -536,8 +537,8 @@ static int run_fetch(const char *repo, const char **refspecs)
strvec_push(&args, opt_tags);
if (opt_prune)
strvec_push(&args, opt_prune);
- if (recurse_submodules != RECURSE_SUBMODULES_DEFAULT)
- switch (recurse_submodules) {
+ if (recurse_submodules_cli != RECURSE_SUBMODULES_DEFAULT)
+ switch (recurse_submodules_cli) {
case RECURSE_SUBMODULES_ON:
strvec_push(&args, "--recurse-submodules=on");
break;
@@ -994,11 +995,16 @@ int cmd_pull(int argc, const char **argv, const char *prefix)
set_reflog_message(argc, argv);
git_config(git_pull_config, NULL);
- prepare_repo_settings(the_repository);
- the_repository->settings.command_requires_full_index = 0;
+ if (the_repository->gitdir) {
+ prepare_repo_settings(the_repository);
+ the_repository->settings.command_requires_full_index = 0;
+ }
argc = parse_options(argc, argv, prefix, pull_options, pull_usage, 0);
+ if (recurse_submodules_cli != RECURSE_SUBMODULES_DEFAULT)
+ recurse_submodules = recurse_submodules_cli;
+
if (cleanup_arg)
/*
* this only checks the validity of cleanup_arg; we don't need
@@ -1038,14 +1044,13 @@ int cmd_pull(int argc, const char **argv, const char *prefix)
oidclr(&orig_head);
if (opt_rebase) {
- int autostash = config_autostash;
- if (opt_autostash != -1)
- autostash = opt_autostash;
+ if (opt_autostash == -1)
+ opt_autostash = config_autostash;
if (is_null_oid(&orig_head) && !is_cache_unborn())
die(_("Updating an unborn branch with changes added to the index."));
- if (!autostash)
+ if (!opt_autostash)
require_clean_work_tree(the_repository,
N_("pull with rebase"),
_("please commit or stash them."), 1, 0);
diff --git a/builtin/push.c b/builtin/push.c
index 359db90321..cad997965a 100644
--- a/builtin/push.c
+++ b/builtin/push.c
@@ -486,7 +486,7 @@ static int git_push_config(const char *k, const char *v, void *cb)
if (value && !strcasecmp(value, "if-asked"))
set_push_cert_flags(flags, SEND_PACK_PUSH_CERT_IF_ASKED);
else
- return error("Invalid value for '%s'", k);
+ return error(_("invalid value for '%s'"), k);
}
}
} else if (!strcmp(k, "push.recursesubmodules")) {
diff --git a/builtin/read-tree.c b/builtin/read-tree.c
index 2109c4c9e5..9f1f33e954 100644
--- a/builtin/read-tree.c
+++ b/builtin/read-tree.c
@@ -160,15 +160,22 @@ int cmd_read_tree(int argc, const char **argv, const char *cmd_prefix)
argc = parse_options(argc, argv, cmd_prefix, read_tree_options,
read_tree_usage, 0);
- hold_locked_index(&lock_file, LOCK_DIE_ON_ERROR);
-
prefix_set = opts.prefix ? 1 : 0;
if (1 < opts.merge + opts.reset + prefix_set)
die("Which one? -m, --reset, or --prefix?");
+ /* Prefix should not start with a directory separator */
+ if (opts.prefix && opts.prefix[0] == '/')
+ die("Invalid prefix, prefix cannot start with '/'");
+
if (opts.reset)
opts.reset = UNPACK_RESET_OVERWRITE_UNTRACKED;
+ prepare_repo_settings(the_repository);
+ the_repository->settings.command_requires_full_index = 0;
+
+ hold_locked_index(&lock_file, LOCK_DIE_ON_ERROR);
+
/*
* NEEDSWORK
*
@@ -210,6 +217,9 @@ int cmd_read_tree(int argc, const char **argv, const char *cmd_prefix)
if (opts.merge && !opts.index_only)
setup_work_tree();
+ if (opts.skip_sparse_checkout)
+ ensure_full_index(&the_index);
+
if (opts.merge) {
switch (stage - 1) {
case 0:
diff --git a/builtin/rebase.c b/builtin/rebase.c
index 36490d06c8..7ab50cda2a 100644
--- a/builtin/rebase.c
+++ b/builtin/rebase.c
@@ -28,6 +28,7 @@
#include "sequencer.h"
#include "rebase-interactive.h"
#include "reset.h"
+#include "hook.h"
#define DEFAULT_REFLOG_ACTION "rebase"
@@ -36,7 +37,7 @@ static char const * const builtin_rebase_usage[] = {
"[--onto <newbase> | --keep-base] [<upstream> [<branch>]]"),
N_("git rebase [-i] [options] [--exec <cmd>] [--onto <newbase>] "
"--root [<branch>]"),
- N_("git rebase --continue | --abort | --skip | --edit-todo"),
+ "git rebase --continue | --abort | --skip | --edit-todo",
NULL
};
@@ -570,7 +571,8 @@ static int finish_rebase(struct rebase_options *opts)
static int move_to_original_branch(struct rebase_options *opts)
{
- struct strbuf orig_head_reflog = STRBUF_INIT, head_reflog = STRBUF_INIT;
+ struct strbuf branch_reflog = STRBUF_INIT, head_reflog = STRBUF_INIT;
+ struct reset_head_opts ropts = { 0 };
int ret;
if (!opts->head_name)
@@ -579,16 +581,17 @@ static int move_to_original_branch(struct rebase_options *opts)
if (!opts->onto)
BUG("move_to_original_branch without onto");
- strbuf_addf(&orig_head_reflog, "rebase finished: %s onto %s",
+ strbuf_addf(&branch_reflog, "rebase finished: %s onto %s",
opts->head_name, oid_to_hex(&opts->onto->object.oid));
strbuf_addf(&head_reflog, "rebase finished: returning to %s",
opts->head_name);
- ret = reset_head(the_repository, NULL, "", opts->head_name,
- RESET_HEAD_REFS_ONLY,
- orig_head_reflog.buf, head_reflog.buf,
- DEFAULT_REFLOG_ACTION);
+ ropts.branch = opts->head_name;
+ ropts.flags = RESET_HEAD_REFS_ONLY;
+ ropts.branch_msg = branch_reflog.buf;
+ ropts.head_msg = head_reflog.buf;
+ ret = reset_head(the_repository, &ropts);
- strbuf_release(&orig_head_reflog);
+ strbuf_release(&branch_reflog);
strbuf_release(&head_reflog);
return ret;
}
@@ -670,13 +673,15 @@ static int run_am(struct rebase_options *opts)
status = run_command(&format_patch);
if (status) {
+ struct reset_head_opts ropts = { 0 };
unlink(rebased_patches);
free(rebased_patches);
strvec_clear(&am.args);
- reset_head(the_repository, &opts->orig_head, "checkout",
- opts->head_name, 0,
- "HEAD", NULL, DEFAULT_REFLOG_ACTION);
+ ropts.oid = &opts->orig_head;
+ ropts.branch = opts->head_name;
+ ropts.default_reflog_action = DEFAULT_REFLOG_ACTION;
+ reset_head(the_repository, &ropts);
error(_("\ngit encountered an error while preparing the "
"patches to replay\n"
"these revisions:\n"
@@ -812,6 +817,28 @@ static int rebase_config(const char *var, const char *value, void *data)
return git_default_config(var, value, data);
}
+static int checkout_up_to_date(struct rebase_options *options)
+{
+ struct strbuf buf = STRBUF_INIT;
+ struct reset_head_opts ropts = { 0 };
+ int ret = 0;
+
+ strbuf_addf(&buf, "%s: checkout %s",
+ getenv(GIT_REFLOG_ACTION_ENVIRONMENT),
+ options->switch_to);
+ ropts.oid = &options->orig_head;
+ ropts.branch = options->head_name;
+ ropts.flags = RESET_HEAD_RUN_POST_CHECKOUT_HOOK;
+ if (!ropts.branch)
+ ropts.flags |= RESET_HEAD_DETACH;
+ ropts.head_msg = buf.buf;
+ if (reset_head(the_repository, &ropts) < 0)
+ ret = error(_("could not switch to %s"), options->switch_to);
+ strbuf_release(&buf);
+
+ return ret;
+}
+
/*
* Determines whether the commits in from..to are linear, i.e. contain
* no merge commits. This function *expects* `from` to be an ancestor of
@@ -1017,6 +1044,7 @@ int cmd_rebase(int argc, const char **argv, const char *prefix)
int reschedule_failed_exec = -1;
int allow_preemptive_ff = 1;
int preserve_merges_selected = 0;
+ struct reset_head_opts ropts = { 0 };
struct option builtin_rebase_options[] = {
OPT_STRING(0, "onto", &options.onto_name,
N_("revision"),
@@ -1159,11 +1187,9 @@ int cmd_rebase(int argc, const char **argv, const char *prefix)
} else {
strbuf_reset(&buf);
strbuf_addf(&buf, "%s/interactive", merge_dir());
- if(file_exists(buf.buf)) {
- options.type = REBASE_MERGE;
+ options.type = REBASE_MERGE;
+ if (file_exists(buf.buf))
options.flags |= REBASE_INTERACTIVE_EXPLICIT;
- } else
- options.type = REBASE_MERGE;
}
options.state_dir = merge_dir();
}
@@ -1254,9 +1280,8 @@ int cmd_rebase(int argc, const char **argv, const char *prefix)
rerere_clear(the_repository, &merge_rr);
string_list_clear(&merge_rr, 1);
-
- if (reset_head(the_repository, NULL, "reset", NULL, RESET_HEAD_HARD,
- NULL, NULL, DEFAULT_REFLOG_ACTION) < 0)
+ ropts.flags = RESET_HEAD_HARD;
+ if (reset_head(the_repository, &ropts) < 0)
die(_("could not discard worktree changes"));
remove_branch_state(the_repository, 0);
if (read_basic_state(&options))
@@ -1273,9 +1298,11 @@ int cmd_rebase(int argc, const char **argv, const char *prefix)
if (read_basic_state(&options))
exit(1);
- if (reset_head(the_repository, &options.orig_head, "reset",
- options.head_name, RESET_HEAD_HARD,
- NULL, NULL, DEFAULT_REFLOG_ACTION) < 0)
+ ropts.oid = &options.orig_head;
+ ropts.branch = options.head_name;
+ ropts.flags = RESET_HEAD_HARD;
+ ropts.default_reflog_action = DEFAULT_REFLOG_ACTION;
+ if (reset_head(the_repository, &ropts) < 0)
die(_("could not move back to %s"),
oid_to_hex(&options.orig_head));
remove_branch_state(the_repository, 0);
@@ -1554,33 +1581,6 @@ int cmd_rebase(int argc, const char **argv, const char *prefix)
options.upstream_arg = "--root";
}
- /* Make sure the branch to rebase onto is valid. */
- if (keep_base) {
- strbuf_reset(&buf);
- strbuf_addstr(&buf, options.upstream_name);
- strbuf_addstr(&buf, "...");
- options.onto_name = xstrdup(buf.buf);
- } else if (!options.onto_name)
- options.onto_name = options.upstream_name;
- if (strstr(options.onto_name, "...")) {
- if (get_oid_mb(options.onto_name, &merge_base) < 0) {
- if (keep_base)
- die(_("'%s': need exactly one merge base with branch"),
- options.upstream_name);
- else
- die(_("'%s': need exactly one merge base"),
- options.onto_name);
- }
- options.onto = lookup_commit_or_die(&merge_base,
- options.onto_name);
- } else {
- options.onto =
- lookup_commit_reference_by_name(options.onto_name);
- if (!options.onto)
- die(_("Does not point to a valid commit '%s'"),
- options.onto_name);
- }
-
/*
* If the branch to rebase is given, that is the branch we will rebase
* branch_name -- branch/commit being rebased, or
@@ -1630,6 +1630,34 @@ int cmd_rebase(int argc, const char **argv, const char *prefix)
} else
BUG("unexpected number of arguments left to parse");
+ /* Make sure the branch to rebase onto is valid. */
+ if (keep_base) {
+ strbuf_reset(&buf);
+ strbuf_addstr(&buf, options.upstream_name);
+ strbuf_addstr(&buf, "...");
+ strbuf_addstr(&buf, branch_name);
+ options.onto_name = xstrdup(buf.buf);
+ } else if (!options.onto_name)
+ options.onto_name = options.upstream_name;
+ if (strstr(options.onto_name, "...")) {
+ if (get_oid_mb(options.onto_name, &merge_base) < 0) {
+ if (keep_base)
+ die(_("'%s': need exactly one merge base with branch"),
+ options.upstream_name);
+ else
+ die(_("'%s': need exactly one merge base"),
+ options.onto_name);
+ }
+ options.onto = lookup_commit_or_die(&merge_base,
+ options.onto_name);
+ } else {
+ options.onto =
+ lookup_commit_reference_by_name(options.onto_name);
+ if (!options.onto)
+ die(_("Does not point to a valid commit '%s'"),
+ options.onto_name);
+ }
+
if (options.fork_point > 0) {
struct commit *head =
lookup_commit_reference(the_repository,
@@ -1641,10 +1669,10 @@ int cmd_rebase(int argc, const char **argv, const char *prefix)
if (repo_read_index(the_repository) < 0)
die(_("could not read index"));
- if (options.autostash) {
- create_autostash(the_repository, state_dir_path("autostash", &options),
- DEFAULT_REFLOG_ACTION);
- }
+ if (options.autostash)
+ create_autostash(the_repository,
+ state_dir_path("autostash", &options));
+
if (require_clean_work_tree(the_repository, "rebase",
_("Please commit or stash them."), 1, 1)) {
@@ -1673,21 +1701,9 @@ int cmd_rebase(int argc, const char **argv, const char *prefix)
if (!(options.flags & REBASE_FORCE)) {
/* Lazily switch to the target branch if needed... */
if (options.switch_to) {
- strbuf_reset(&buf);
- strbuf_addf(&buf, "%s: checkout %s",
- getenv(GIT_REFLOG_ACTION_ENVIRONMENT),
- options.switch_to);
- if (reset_head(the_repository,
- &options.orig_head, "checkout",
- options.head_name,
- RESET_HEAD_RUN_POST_CHECKOUT_HOOK,
- NULL, buf.buf,
- DEFAULT_REFLOG_ACTION) < 0) {
- ret = error(_("could not switch to "
- "%s"),
- options.switch_to);
+ ret = checkout_up_to_date(&options);
+ if (ret)
goto cleanup;
- }
}
if (!(options.flags & REBASE_NO_QUIET))
@@ -1712,7 +1728,7 @@ int cmd_rebase(int argc, const char **argv, const char *prefix)
/* If a hook exists, give it a chance to interrupt*/
if (!ok_to_skip_pre_rebase &&
- run_hook_le(NULL, "pre-rebase", options.upstream_arg,
+ run_hooks_l("pre-rebase", options.upstream_arg,
argc ? argv[0] : NULL, NULL))
die(_("The pre-rebase hook refused to rebase."));
@@ -1754,10 +1770,13 @@ int cmd_rebase(int argc, const char **argv, const char *prefix)
strbuf_addf(&msg, "%s: checkout %s",
getenv(GIT_REFLOG_ACTION_ENVIRONMENT), options.onto_name);
- if (reset_head(the_repository, &options.onto->object.oid, "checkout", NULL,
- RESET_HEAD_DETACH | RESET_ORIG_HEAD |
- RESET_HEAD_RUN_POST_CHECKOUT_HOOK,
- NULL, msg.buf, DEFAULT_REFLOG_ACTION))
+ ropts.oid = &options.onto->object.oid;
+ ropts.orig_head = &options.orig_head,
+ ropts.flags = RESET_HEAD_DETACH | RESET_ORIG_HEAD |
+ RESET_HEAD_RUN_POST_CHECKOUT_HOOK;
+ ropts.head_msg = msg.buf;
+ ropts.default_reflog_action = DEFAULT_REFLOG_ACTION;
+ if (reset_head(the_repository, &ropts))
die(_("Could not detach HEAD"));
strbuf_release(&msg);
@@ -1772,9 +1791,11 @@ int cmd_rebase(int argc, const char **argv, const char *prefix)
strbuf_addf(&msg, "rebase finished: %s onto %s",
options.head_name ? options.head_name : "detached HEAD",
oid_to_hex(&options.onto->object.oid));
- reset_head(the_repository, NULL, "Fast-forwarded", options.head_name,
- RESET_HEAD_REFS_ONLY, "HEAD", msg.buf,
- DEFAULT_REFLOG_ACTION);
+ memset(&ropts, 0, sizeof(ropts));
+ ropts.branch = options.head_name;
+ ropts.flags = RESET_HEAD_REFS_ONLY;
+ ropts.head_msg = msg.buf;
+ reset_head(the_repository, &ropts);
strbuf_release(&msg);
ret = finish_rebase(&options);
goto cleanup;
diff --git a/builtin/receive-pack.c b/builtin/receive-pack.c
index 23e77b241c..ad20b41e3c 100644
--- a/builtin/receive-pack.c
+++ b/builtin/receive-pack.c
@@ -581,32 +581,19 @@ static char *prepare_push_cert_nonce(const char *path, timestamp_t stamp)
return strbuf_detach(&buf, NULL);
}
-/*
- * NEEDSWORK: reuse find_commit_header() from jk/commit-author-parsing
- * after dropping "_commit" from its name and possibly moving it out
- * of commit.c
- */
static char *find_header(const char *msg, size_t len, const char *key,
const char **next_line)
{
- int key_len = strlen(key);
- const char *line = msg;
-
- while (line && line < msg + len) {
- const char *eol = strchrnul(line, '\n');
-
- if ((msg + len <= eol) || line == eol)
- return NULL;
- if (line + key_len < eol &&
- !memcmp(line, key, key_len) && line[key_len] == ' ') {
- int offset = key_len + 1;
- if (next_line)
- *next_line = *eol ? eol + 1 : eol;
- return xmemdupz(line + offset, (eol - line) - offset);
- }
- line = *eol ? eol + 1 : NULL;
- }
- return NULL;
+ size_t out_len;
+ const char *val = find_header_mem(msg, len, key, &out_len);
+
+ if (!val)
+ return NULL;
+
+ if (next_line)
+ *next_line = val + out_len + 1;
+
+ return xmemdupz(val, out_len);
}
/*
@@ -762,7 +749,7 @@ static void prepare_push_cert_sha1(struct child_process *proc)
int bogs /* beginning_of_gpg_sig */;
already_done = 1;
- if (write_object_file(push_cert.buf, push_cert.len, "blob",
+ if (write_object_file(push_cert.buf, push_cert.len, OBJ_BLOB,
&push_cert_oid))
oidclr(&push_cert_oid);
@@ -826,13 +813,14 @@ static int run_and_feed_hook(const char *hook_name, feed_fn feed,
proc.trace2_hook_name = hook_name;
if (feed_state->push_options) {
- int i;
+ size_t i;
for (i = 0; i < feed_state->push_options->nr; i++)
strvec_pushf(&proc.env_array,
- "GIT_PUSH_OPTION_%d=%s", i,
+ "GIT_PUSH_OPTION_%"PRIuMAX"=%s",
+ (uintmax_t)i,
feed_state->push_options->items[i].string);
- strvec_pushf(&proc.env_array, "GIT_PUSH_OPTION_COUNT=%d",
- feed_state->push_options->nr);
+ strvec_pushf(&proc.env_array, "GIT_PUSH_OPTION_COUNT=%"PRIuMAX"",
+ (uintmax_t)feed_state->push_options->nr);
} else
strvec_pushf(&proc.env_array, "GIT_PUSH_OPTION_COUNT");
@@ -1421,12 +1409,17 @@ static const char *push_to_deploy(unsigned char *sha1,
static const char *push_to_checkout_hook = "push-to-checkout";
static const char *push_to_checkout(unsigned char *hash,
+ int *invoked_hook,
struct strvec *env,
const char *work_tree)
{
+ struct run_hooks_opt opt = RUN_HOOKS_OPT_INIT;
+ opt.invoked_hook = invoked_hook;
+
strvec_pushf(env, "GIT_WORK_TREE=%s", absolute_path(work_tree));
- if (run_hook_le(env->v, push_to_checkout_hook,
- hash_to_hex(hash), NULL))
+ strvec_pushv(&opt.env, env->v);
+ strvec_push(&opt.args, hash_to_hex(hash));
+ if (run_hooks_opt(push_to_checkout_hook, &opt))
return "push-to-checkout hook declined";
else
return NULL;
@@ -1436,6 +1429,7 @@ static const char *update_worktree(unsigned char *sha1, const struct worktree *w
{
const char *retval, *git_dir;
struct strvec env = STRVEC_INIT;
+ int invoked_hook;
if (!worktree || !worktree->path)
BUG("worktree->path must be non-NULL");
@@ -1446,10 +1440,9 @@ static const char *update_worktree(unsigned char *sha1, const struct worktree *w
strvec_pushf(&env, "GIT_DIR=%s", absolute_path(git_dir));
- if (!hook_exists(push_to_checkout_hook))
+ retval = push_to_checkout(sha1, &invoked_hook, &env, worktree->path);
+ if (!invoked_hook)
retval = push_to_deploy(sha1, &env, worktree->path);
- else
- retval = push_to_checkout(sha1, &env, worktree->path);
strvec_clear(&env);
return retval;
@@ -1972,6 +1965,15 @@ static void execute_commands(struct command *commands,
}
/*
+ * If there is no command ready to run, should return directly to destroy
+ * temporary data in the quarantine area.
+ */
+ for (cmd = commands; cmd && cmd->error_string; cmd = cmd->next)
+ ; /* nothing */
+ if (!cmd)
+ return;
+
+ /*
* Now we'll start writing out refs, which means the objects need
* to be in their final positions so that other processes can see them.
*/
diff --git a/builtin/reflog.c b/builtin/reflog.c
index a4b1dd27e1..c943c2aabe 100644
--- a/builtin/reflog.c
+++ b/builtin/reflog.c
@@ -1,428 +1,60 @@
#include "builtin.h"
#include "config.h"
-#include "lockfile.h"
-#include "object-store.h"
-#include "repository.h"
-#include "commit.h"
-#include "refs.h"
-#include "dir.h"
-#include "tree-walk.h"
-#include "diff.h"
#include "revision.h"
#include "reachable.h"
#include "worktree.h"
+#include "reflog.h"
-/* NEEDSWORK: switch to using parse_options */
-static const char reflog_expire_usage[] =
-N_("git reflog expire [--expire=<time>] "
- "[--expire-unreachable=<time>] "
- "[--rewrite] [--updateref] [--stale-fix] [--dry-run | -n] "
- "[--verbose] [--all] <refs>...");
-static const char reflog_delete_usage[] =
-N_("git reflog delete [--rewrite] [--updateref] "
- "[--dry-run | -n] [--verbose] <refs>...");
-static const char reflog_exists_usage[] =
-N_("git reflog exists <ref>");
+#define BUILTIN_REFLOG_SHOW_USAGE \
+ N_("git reflog [show] [<log-options>] [<ref>]")
-static timestamp_t default_reflog_expire;
-static timestamp_t default_reflog_expire_unreachable;
+#define BUILTIN_REFLOG_EXPIRE_USAGE \
+ N_("git reflog expire [--expire=<time>] [--expire-unreachable=<time>]\n" \
+ " [--rewrite] [--updateref] [--stale-fix]\n" \
+ " [--dry-run | -n] [--verbose] [--all [--single-worktree] | <refs>...]")
-struct cmd_reflog_expire_cb {
- int stalefix;
- timestamp_t expire_total;
- timestamp_t expire_unreachable;
- int recno;
-};
+#define BUILTIN_REFLOG_DELETE_USAGE \
+ N_("git reflog delete [--rewrite] [--updateref]\n" \
+ " [--dry-run | -n] [--verbose] <ref>@{<specifier>}...")
-struct expire_reflog_policy_cb {
- enum {
- UE_NORMAL,
- UE_ALWAYS,
- UE_HEAD
- } unreachable_expire_kind;
- struct commit_list *mark_list;
- unsigned long mark_limit;
- struct cmd_reflog_expire_cb cmd;
- struct commit *tip_commit;
- struct commit_list *tips;
- unsigned int dry_run:1;
-};
+#define BUILTIN_REFLOG_EXISTS_USAGE \
+ N_("git reflog exists <ref>")
-struct worktree_reflogs {
- struct worktree *worktree;
- struct string_list reflogs;
+static const char *const reflog_show_usage[] = {
+ BUILTIN_REFLOG_SHOW_USAGE,
+ NULL,
};
-/* Remember to update object flag allocation in object.h */
-#define INCOMPLETE (1u<<10)
-#define STUDYING (1u<<11)
-#define REACHABLE (1u<<12)
-
-static int tree_is_complete(const struct object_id *oid)
-{
- struct tree_desc desc;
- struct name_entry entry;
- int complete;
- struct tree *tree;
-
- tree = lookup_tree(the_repository, oid);
- if (!tree)
- return 0;
- if (tree->object.flags & SEEN)
- return 1;
- if (tree->object.flags & INCOMPLETE)
- return 0;
-
- if (!tree->buffer) {
- enum object_type type;
- unsigned long size;
- void *data = read_object_file(oid, &type, &size);
- if (!data) {
- tree->object.flags |= INCOMPLETE;
- return 0;
- }
- tree->buffer = data;
- tree->size = size;
- }
- init_tree_desc(&desc, tree->buffer, tree->size);
- complete = 1;
- while (tree_entry(&desc, &entry)) {
- if (!has_object_file(&entry.oid) ||
- (S_ISDIR(entry.mode) && !tree_is_complete(&entry.oid))) {
- tree->object.flags |= INCOMPLETE;
- complete = 0;
- }
- }
- free_tree_buffer(tree);
-
- if (complete)
- tree->object.flags |= SEEN;
- return complete;
-}
-
-static int commit_is_complete(struct commit *commit)
-{
- struct object_array study;
- struct object_array found;
- int is_incomplete = 0;
- int i;
-
- /* early return */
- if (commit->object.flags & SEEN)
- return 1;
- if (commit->object.flags & INCOMPLETE)
- return 0;
- /*
- * Find all commits that are reachable and are not marked as
- * SEEN. Then make sure the trees and blobs contained are
- * complete. After that, mark these commits also as SEEN.
- * If some of the objects that are needed to complete this
- * commit are missing, mark this commit as INCOMPLETE.
- */
- memset(&study, 0, sizeof(study));
- memset(&found, 0, sizeof(found));
- add_object_array(&commit->object, NULL, &study);
- add_object_array(&commit->object, NULL, &found);
- commit->object.flags |= STUDYING;
- while (study.nr) {
- struct commit *c;
- struct commit_list *parent;
-
- c = (struct commit *)object_array_pop(&study);
- if (!c->object.parsed && !parse_object(the_repository, &c->object.oid))
- c->object.flags |= INCOMPLETE;
-
- if (c->object.flags & INCOMPLETE) {
- is_incomplete = 1;
- break;
- }
- else if (c->object.flags & SEEN)
- continue;
- for (parent = c->parents; parent; parent = parent->next) {
- struct commit *p = parent->item;
- if (p->object.flags & STUDYING)
- continue;
- p->object.flags |= STUDYING;
- add_object_array(&p->object, NULL, &study);
- add_object_array(&p->object, NULL, &found);
- }
- }
- if (!is_incomplete) {
- /*
- * make sure all commits in "found" array have all the
- * necessary objects.
- */
- for (i = 0; i < found.nr; i++) {
- struct commit *c =
- (struct commit *)found.objects[i].item;
- if (!tree_is_complete(get_commit_tree_oid(c))) {
- is_incomplete = 1;
- c->object.flags |= INCOMPLETE;
- }
- }
- if (!is_incomplete) {
- /* mark all found commits as complete, iow SEEN */
- for (i = 0; i < found.nr; i++)
- found.objects[i].item->flags |= SEEN;
- }
- }
- /* clear flags from the objects we traversed */
- for (i = 0; i < found.nr; i++)
- found.objects[i].item->flags &= ~STUDYING;
- if (is_incomplete)
- commit->object.flags |= INCOMPLETE;
- else {
- /*
- * If we come here, we have (1) traversed the ancestry chain
- * from the "commit" until we reach SEEN commits (which are
- * known to be complete), and (2) made sure that the commits
- * encountered during the above traversal refer to trees that
- * are complete. Which means that we know *all* the commits
- * we have seen during this process are complete.
- */
- for (i = 0; i < found.nr; i++)
- found.objects[i].item->flags |= SEEN;
- }
- /* free object arrays */
- object_array_clear(&study);
- object_array_clear(&found);
- return !is_incomplete;
-}
-
-static int keep_entry(struct commit **it, struct object_id *oid)
-{
- struct commit *commit;
-
- if (is_null_oid(oid))
- return 1;
- commit = lookup_commit_reference_gently(the_repository, oid, 1);
- if (!commit)
- return 0;
-
- /*
- * Make sure everything in this commit exists.
- *
- * We have walked all the objects reachable from the refs
- * and cache earlier. The commits reachable by this commit
- * must meet SEEN commits -- and then we should mark them as
- * SEEN as well.
- */
- if (!commit_is_complete(commit))
- return 0;
- *it = commit;
- return 1;
-}
-
-/*
- * Starting from commits in the cb->mark_list, mark commits that are
- * reachable from them. Stop the traversal at commits older than
- * the expire_limit and queue them back, so that the caller can call
- * us again to restart the traversal with longer expire_limit.
- */
-static void mark_reachable(struct expire_reflog_policy_cb *cb)
-{
- struct commit_list *pending;
- timestamp_t expire_limit = cb->mark_limit;
- struct commit_list *leftover = NULL;
-
- for (pending = cb->mark_list; pending; pending = pending->next)
- pending->item->object.flags &= ~REACHABLE;
-
- pending = cb->mark_list;
- while (pending) {
- struct commit_list *parent;
- struct commit *commit = pop_commit(&pending);
- if (commit->object.flags & REACHABLE)
- continue;
- if (parse_commit(commit))
- continue;
- commit->object.flags |= REACHABLE;
- if (commit->date < expire_limit) {
- commit_list_insert(commit, &leftover);
- continue;
- }
- commit->object.flags |= REACHABLE;
- parent = commit->parents;
- while (parent) {
- commit = parent->item;
- parent = parent->next;
- if (commit->object.flags & REACHABLE)
- continue;
- commit_list_insert(commit, &pending);
- }
- }
- cb->mark_list = leftover;
-}
-
-static int unreachable(struct expire_reflog_policy_cb *cb, struct commit *commit, struct object_id *oid)
-{
- /*
- * We may or may not have the commit yet - if not, look it
- * up using the supplied sha1.
- */
- if (!commit) {
- if (is_null_oid(oid))
- return 0;
-
- commit = lookup_commit_reference_gently(the_repository, oid,
- 1);
-
- /* Not a commit -- keep it */
- if (!commit)
- return 0;
- }
-
- /* Reachable from the current ref? Don't prune. */
- if (commit->object.flags & REACHABLE)
- return 0;
-
- if (cb->mark_list && cb->mark_limit) {
- cb->mark_limit = 0; /* dig down to the root */
- mark_reachable(cb);
- }
-
- return !(commit->object.flags & REACHABLE);
-}
-
-/*
- * Return true iff the specified reflog entry should be expired.
- */
-static int should_expire_reflog_ent(struct object_id *ooid, struct object_id *noid,
- const char *email, timestamp_t timestamp, int tz,
- const char *message, void *cb_data)
-{
- struct expire_reflog_policy_cb *cb = cb_data;
- struct commit *old_commit, *new_commit;
-
- if (timestamp < cb->cmd.expire_total)
- return 1;
-
- old_commit = new_commit = NULL;
- if (cb->cmd.stalefix &&
- (!keep_entry(&old_commit, ooid) || !keep_entry(&new_commit, noid)))
- return 1;
-
- if (timestamp < cb->cmd.expire_unreachable) {
- switch (cb->unreachable_expire_kind) {
- case UE_ALWAYS:
- return 1;
- case UE_NORMAL:
- case UE_HEAD:
- if (unreachable(cb, old_commit, ooid) || unreachable(cb, new_commit, noid))
- return 1;
- break;
- }
- }
-
- if (cb->cmd.recno && --(cb->cmd.recno) == 0)
- return 1;
-
- return 0;
-}
-
-static int should_expire_reflog_ent_verbose(struct object_id *ooid,
- struct object_id *noid,
- const char *email,
- timestamp_t timestamp, int tz,
- const char *message, void *cb_data)
-{
- struct expire_reflog_policy_cb *cb = cb_data;
- int expire;
-
- expire = should_expire_reflog_ent(ooid, noid, email, timestamp, tz,
- message, cb);
-
- if (!expire)
- printf("keep %s", message);
- else if (cb->dry_run)
- printf("would prune %s", message);
- else
- printf("prune %s", message);
-
- return expire;
-}
-
-static int push_tip_to_list(const char *refname, const struct object_id *oid,
- int flags, void *cb_data)
-{
- struct commit_list **list = cb_data;
- struct commit *tip_commit;
- if (flags & REF_ISSYMREF)
- return 0;
- tip_commit = lookup_commit_reference_gently(the_repository, oid, 1);
- if (!tip_commit)
- return 0;
- commit_list_insert(tip_commit, list);
- return 0;
-}
-
-static int is_head(const char *refname)
-{
- switch (ref_type(refname)) {
- case REF_TYPE_OTHER_PSEUDOREF:
- case REF_TYPE_MAIN_PSEUDOREF:
- if (parse_worktree_ref(refname, NULL, NULL, &refname))
- BUG("not a worktree ref: %s", refname);
- break;
- default:
- break;
- }
- return !strcmp(refname, "HEAD");
-}
+static const char *const reflog_expire_usage[] = {
+ BUILTIN_REFLOG_EXPIRE_USAGE,
+ NULL
+};
-static void reflog_expiry_prepare(const char *refname,
- const struct object_id *oid,
- void *cb_data)
-{
- struct expire_reflog_policy_cb *cb = cb_data;
- struct commit_list *elem;
- struct commit *commit = NULL;
-
- if (!cb->cmd.expire_unreachable || is_head(refname)) {
- cb->unreachable_expire_kind = UE_HEAD;
- } else {
- commit = lookup_commit(the_repository, oid);
- cb->unreachable_expire_kind = commit ? UE_NORMAL : UE_ALWAYS;
- }
+static const char *const reflog_delete_usage[] = {
+ BUILTIN_REFLOG_DELETE_USAGE,
+ NULL
+};
- if (cb->cmd.expire_unreachable <= cb->cmd.expire_total)
- cb->unreachable_expire_kind = UE_ALWAYS;
+static const char *const reflog_exists_usage[] = {
+ BUILTIN_REFLOG_EXISTS_USAGE,
+ NULL,
+};
- switch (cb->unreachable_expire_kind) {
- case UE_ALWAYS:
- return;
- case UE_HEAD:
- for_each_ref(push_tip_to_list, &cb->tips);
- for (elem = cb->tips; elem; elem = elem->next)
- commit_list_insert(elem->item, &cb->mark_list);
- break;
- case UE_NORMAL:
- commit_list_insert(commit, &cb->mark_list);
- /* For reflog_expiry_cleanup() below */
- cb->tip_commit = commit;
- }
- cb->mark_limit = cb->cmd.expire_total;
- mark_reachable(cb);
-}
+static const char *const reflog_usage[] = {
+ BUILTIN_REFLOG_SHOW_USAGE,
+ BUILTIN_REFLOG_EXPIRE_USAGE,
+ BUILTIN_REFLOG_DELETE_USAGE,
+ BUILTIN_REFLOG_EXISTS_USAGE,
+ NULL
+};
-static void reflog_expiry_cleanup(void *cb_data)
-{
- struct expire_reflog_policy_cb *cb = cb_data;
- struct commit_list *elem;
+static timestamp_t default_reflog_expire;
+static timestamp_t default_reflog_expire_unreachable;
- switch (cb->unreachable_expire_kind) {
- case UE_ALWAYS:
- return;
- case UE_HEAD:
- for (elem = cb->tips; elem; elem = elem->next)
- clear_commit_marks(elem->item, REACHABLE);
- free_commit_list(cb->tips);
- break;
- case UE_NORMAL:
- clear_commit_marks(cb->tip_commit, REACHABLE);
- break;
- }
-}
+struct worktree_reflogs {
+ struct worktree *worktree;
+ struct string_list reflogs;
+};
static int collect_reflog(const char *ref, const struct object_id *oid, int unused, void *cb_data)
{
@@ -520,18 +152,18 @@ static int reflog_expire_config(const char *var, const char *value, void *cb)
return 0;
}
-static void set_reflog_expiry_param(struct cmd_reflog_expire_cb *cb, int slot, const char *ref)
+static void set_reflog_expiry_param(struct cmd_reflog_expire_cb *cb, const char *ref)
{
struct reflog_expire_cfg *ent;
- if (slot == (EXPIRE_TOTAL|EXPIRE_UNREACH))
+ if (cb->explicit_expiry == (EXPIRE_TOTAL|EXPIRE_UNREACH))
return; /* both given explicitly -- nothing to tweak */
for (ent = reflog_expire_cfg; ent; ent = ent->next) {
if (!wildmatch(ent->pattern, ref, 0)) {
- if (!(slot & EXPIRE_TOTAL))
+ if (!(cb->explicit_expiry & EXPIRE_TOTAL))
cb->expire_total = ent->expire_total;
- if (!(slot & EXPIRE_UNREACH))
+ if (!(cb->explicit_expiry & EXPIRE_UNREACH))
cb->expire_unreachable = ent->expire_unreachable;
return;
}
@@ -541,29 +173,94 @@ static void set_reflog_expiry_param(struct cmd_reflog_expire_cb *cb, int slot, c
* If unconfigured, make stash never expire
*/
if (!strcmp(ref, "refs/stash")) {
- if (!(slot & EXPIRE_TOTAL))
+ if (!(cb->explicit_expiry & EXPIRE_TOTAL))
cb->expire_total = 0;
- if (!(slot & EXPIRE_UNREACH))
+ if (!(cb->explicit_expiry & EXPIRE_UNREACH))
cb->expire_unreachable = 0;
return;
}
/* Nothing matched -- use the default value */
- if (!(slot & EXPIRE_TOTAL))
+ if (!(cb->explicit_expiry & EXPIRE_TOTAL))
cb->expire_total = default_reflog_expire;
- if (!(slot & EXPIRE_UNREACH))
+ if (!(cb->explicit_expiry & EXPIRE_UNREACH))
cb->expire_unreachable = default_reflog_expire_unreachable;
}
+static int expire_unreachable_callback(const struct option *opt,
+ const char *arg,
+ int unset)
+{
+ struct cmd_reflog_expire_cb *cmd = opt->value;
+
+ if (parse_expiry_date(arg, &cmd->expire_unreachable))
+ die(_("invalid timestamp '%s' given to '--%s'"),
+ arg, opt->long_name);
+
+ cmd->explicit_expiry |= EXPIRE_UNREACH;
+ return 0;
+}
+
+static int expire_total_callback(const struct option *opt,
+ const char *arg,
+ int unset)
+{
+ struct cmd_reflog_expire_cb *cmd = opt->value;
+
+ if (parse_expiry_date(arg, &cmd->expire_total))
+ die(_("invalid timestamp '%s' given to '--%s'"),
+ arg, opt->long_name);
+
+ cmd->explicit_expiry |= EXPIRE_TOTAL;
+ return 0;
+}
+
+static int cmd_reflog_show(int argc, const char **argv, const char *prefix)
+{
+ struct option options[] = {
+ OPT_END()
+ };
+
+ parse_options(argc, argv, prefix, options, reflog_show_usage,
+ PARSE_OPT_KEEP_DASHDASH | PARSE_OPT_KEEP_ARGV0 |
+ PARSE_OPT_KEEP_UNKNOWN);
+
+ return cmd_log_reflog(argc, argv, prefix);
+}
+
static int cmd_reflog_expire(int argc, const char **argv, const char *prefix)
{
struct cmd_reflog_expire_cb cmd = { 0 };
timestamp_t now = time(NULL);
int i, status, do_all, all_worktrees = 1;
- int explicit_expiry = 0;
unsigned int flags = 0;
int verbose = 0;
reflog_expiry_should_prune_fn *should_prune_fn = should_expire_reflog_ent;
+ const struct option options[] = {
+ OPT_BIT(0, "dry-run", &flags, N_("do not actually prune any entries"),
+ EXPIRE_REFLOGS_DRY_RUN),
+ OPT_BIT(0, "rewrite", &flags,
+ N_("rewrite the old SHA1 with the new SHA1 of the entry that now precedes it"),
+ EXPIRE_REFLOGS_REWRITE),
+ OPT_BIT(0, "updateref", &flags,
+ N_("update the reference to the value of the top reflog entry"),
+ EXPIRE_REFLOGS_UPDATE_REF),
+ OPT_BOOL(0, "verbose", &verbose, N_("print extra information on screen")),
+ OPT_CALLBACK_F(0, "expire", &cmd, N_("timestamp"),
+ N_("prune entries older than the specified time"),
+ PARSE_OPT_NONEG,
+ expire_total_callback),
+ OPT_CALLBACK_F(0, "expire-unreachable", &cmd, N_("timestamp"),
+ N_("prune entries older than <time> that are not reachable from the current tip of the branch"),
+ PARSE_OPT_NONEG,
+ expire_unreachable_callback),
+ OPT_BOOL(0, "stale-fix", &cmd.stalefix,
+ N_("prune any reflog entries that point to broken commits")),
+ OPT_BOOL(0, "all", &do_all, N_("process the reflogs of all references")),
+ OPT_BOOL(1, "single-worktree", &all_worktrees,
+ N_("limits processing to reflogs from the current worktree only")),
+ OPT_END()
+ };
default_reflog_expire_unreachable = now - 30 * 24 * 3600;
default_reflog_expire = now - 90 * 24 * 3600;
@@ -572,45 +269,11 @@ static int cmd_reflog_expire(int argc, const char **argv, const char *prefix)
save_commit_buffer = 0;
do_all = status = 0;
+ cmd.explicit_expiry = 0;
cmd.expire_total = default_reflog_expire;
cmd.expire_unreachable = default_reflog_expire_unreachable;
- for (i = 1; i < argc; i++) {
- const char *arg = argv[i];
-
- if (!strcmp(arg, "--dry-run") || !strcmp(arg, "-n"))
- flags |= EXPIRE_REFLOGS_DRY_RUN;
- else if (skip_prefix(arg, "--expire=", &arg)) {
- if (parse_expiry_date(arg, &cmd.expire_total))
- die(_("'%s' is not a valid timestamp"), arg);
- explicit_expiry |= EXPIRE_TOTAL;
- }
- else if (skip_prefix(arg, "--expire-unreachable=", &arg)) {
- if (parse_expiry_date(arg, &cmd.expire_unreachable))
- die(_("'%s' is not a valid timestamp"), arg);
- explicit_expiry |= EXPIRE_UNREACH;
- }
- else if (!strcmp(arg, "--stale-fix"))
- cmd.stalefix = 1;
- else if (!strcmp(arg, "--rewrite"))
- flags |= EXPIRE_REFLOGS_REWRITE;
- else if (!strcmp(arg, "--updateref"))
- flags |= EXPIRE_REFLOGS_UPDATE_REF;
- else if (!strcmp(arg, "--all"))
- do_all = 1;
- else if (!strcmp(arg, "--single-worktree"))
- all_worktrees = 0;
- else if (!strcmp(arg, "--verbose"))
- verbose = 1;
- else if (!strcmp(arg, "--")) {
- i++;
- break;
- }
- else if (arg[0] == '-')
- usage(_(reflog_expire_usage));
- else
- break;
- }
+ argc = parse_options(argc, argv, prefix, options, reflog_expire_usage, 0);
if (verbose)
should_prune_fn = should_expire_reflog_ent_verbose;
@@ -657,7 +320,7 @@ static int cmd_reflog_expire(int argc, const char **argv, const char *prefix)
.dry_run = !!(flags & EXPIRE_REFLOGS_DRY_RUN),
};
- set_reflog_expiry_param(&cb.cmd, explicit_expiry, item->string);
+ set_reflog_expiry_param(&cb.cmd, item->string);
status |= reflog_expire(item->string, flags,
reflog_expiry_prepare,
should_prune_fn,
@@ -667,7 +330,7 @@ static int cmd_reflog_expire(int argc, const char **argv, const char *prefix)
string_list_clear(&collected.reflogs, 0);
}
- for (; i < argc; i++) {
+ for (i = 0; i < argc; i++) {
char *ref;
struct expire_reflog_policy_cb cb = { .cmd = cmd };
@@ -675,7 +338,7 @@ static int cmd_reflog_expire(int argc, const char **argv, const char *prefix)
status |= error(_("%s points nowhere!"), argv[i]);
continue;
}
- set_reflog_expiry_param(&cb.cmd, explicit_expiry, ref);
+ set_reflog_expiry_param(&cb.cmd, ref);
status |= reflog_expire(ref, flags,
reflog_expiry_prepare,
should_prune_fn,
@@ -686,142 +349,94 @@ static int cmd_reflog_expire(int argc, const char **argv, const char *prefix)
return status;
}
-static int count_reflog_ent(struct object_id *ooid, struct object_id *noid,
- const char *email, timestamp_t timestamp, int tz,
- const char *message, void *cb_data)
-{
- struct cmd_reflog_expire_cb *cb = cb_data;
- if (!cb->expire_total || timestamp < cb->expire_total)
- cb->recno++;
- return 0;
-}
-
static int cmd_reflog_delete(int argc, const char **argv, const char *prefix)
{
- struct cmd_reflog_expire_cb cmd = { 0 };
int i, status = 0;
unsigned int flags = 0;
int verbose = 0;
- reflog_expiry_should_prune_fn *should_prune_fn = should_expire_reflog_ent;
-
- for (i = 1; i < argc; i++) {
- const char *arg = argv[i];
- if (!strcmp(arg, "--dry-run") || !strcmp(arg, "-n"))
- flags |= EXPIRE_REFLOGS_DRY_RUN;
- else if (!strcmp(arg, "--rewrite"))
- flags |= EXPIRE_REFLOGS_REWRITE;
- else if (!strcmp(arg, "--updateref"))
- flags |= EXPIRE_REFLOGS_UPDATE_REF;
- else if (!strcmp(arg, "--verbose"))
- verbose = 1;
- else if (!strcmp(arg, "--")) {
- i++;
- break;
- }
- else if (arg[0] == '-')
- usage(_(reflog_delete_usage));
- else
- break;
- }
-
- if (verbose)
- should_prune_fn = should_expire_reflog_ent_verbose;
- if (argc - i < 1)
+ const struct option options[] = {
+ OPT_BIT(0, "dry-run", &flags, N_("do not actually prune any entries"),
+ EXPIRE_REFLOGS_DRY_RUN),
+ OPT_BIT(0, "rewrite", &flags,
+ N_("rewrite the old SHA1 with the new SHA1 of the entry that now precedes it"),
+ EXPIRE_REFLOGS_REWRITE),
+ OPT_BIT(0, "updateref", &flags,
+ N_("update the reference to the value of the top reflog entry"),
+ EXPIRE_REFLOGS_UPDATE_REF),
+ OPT_BOOL(0, "verbose", &verbose, N_("print extra information on screen")),
+ OPT_END()
+ };
+
+ argc = parse_options(argc, argv, prefix, options, reflog_delete_usage, 0);
+
+ if (argc < 1)
return error(_("no reflog specified to delete"));
- for ( ; i < argc; i++) {
- const char *spec = strstr(argv[i], "@{");
- char *ep, *ref;
- int recno;
- struct expire_reflog_policy_cb cb = {
- .dry_run = !!(flags & EXPIRE_REFLOGS_DRY_RUN),
- };
-
- if (!spec) {
- status |= error(_("not a reflog: %s"), argv[i]);
- continue;
- }
-
- if (!dwim_log(argv[i], spec - argv[i], NULL, &ref)) {
- status |= error(_("no reflog for '%s'"), argv[i]);
- continue;
- }
-
- recno = strtoul(spec + 2, &ep, 10);
- if (*ep == '}') {
- cmd.recno = -recno;
- for_each_reflog_ent(ref, count_reflog_ent, &cmd);
- } else {
- cmd.expire_total = approxidate(spec + 2);
- for_each_reflog_ent(ref, count_reflog_ent, &cmd);
- cmd.expire_total = 0;
- }
+ for (i = 0; i < argc; i++)
+ status |= reflog_delete(argv[i], flags, verbose);
- cb.cmd = cmd;
- status |= reflog_expire(ref, flags,
- reflog_expiry_prepare,
- should_prune_fn,
- reflog_expiry_cleanup,
- &cb);
- free(ref);
- }
return status;
}
static int cmd_reflog_exists(int argc, const char **argv, const char *prefix)
{
- int i, start = 0;
-
- for (i = 1; i < argc; i++) {
- const char *arg = argv[i];
- if (!strcmp(arg, "--")) {
- i++;
- break;
- }
- else if (arg[0] == '-')
- usage(_(reflog_exists_usage));
- else
- break;
- }
-
- start = i;
-
- if (argc - start != 1)
- usage(_(reflog_exists_usage));
-
- if (check_refname_format(argv[start], REFNAME_ALLOW_ONELEVEL))
- die(_("invalid ref format: %s"), argv[start]);
- return !reflog_exists(argv[start]);
+ struct option options[] = {
+ OPT_END()
+ };
+ const char *refname;
+
+ argc = parse_options(argc, argv, prefix, options, reflog_exists_usage,
+ 0);
+ if (!argc)
+ usage_with_options(reflog_exists_usage, options);
+
+ refname = argv[0];
+ if (check_refname_format(refname, REFNAME_ALLOW_ONELEVEL))
+ die(_("invalid ref format: %s"), refname);
+ return !reflog_exists(refname);
}
/*
* main "reflog"
*/
-static const char reflog_usage[] =
-N_("git reflog [ show | expire | delete | exists ]");
-
int cmd_reflog(int argc, const char **argv, const char *prefix)
{
- if (argc > 1 && !strcmp(argv[1], "-h"))
- usage(_(reflog_usage));
+ struct option options[] = {
+ OPT_END()
+ };
- /* With no command, we default to showing it. */
- if (argc < 2 || *argv[1] == '-')
- return cmd_log_reflog(argc, argv, prefix);
+ argc = parse_options(argc, argv, prefix, options, reflog_usage,
+ PARSE_OPT_KEEP_DASHDASH | PARSE_OPT_KEEP_ARGV0 |
+ PARSE_OPT_KEEP_UNKNOWN |
+ PARSE_OPT_NO_INTERNAL_HELP);
- if (!strcmp(argv[1], "show"))
- return cmd_log_reflog(argc - 1, argv + 1, prefix);
+ /*
+ * With "git reflog" we default to showing it. !argc is
+ * impossible with PARSE_OPT_KEEP_ARGV0.
+ */
+ if (argc == 1)
+ goto log_reflog;
- if (!strcmp(argv[1], "expire"))
- return cmd_reflog_expire(argc - 1, argv + 1, prefix);
+ if (!strcmp(argv[1], "-h"))
+ usage_with_options(reflog_usage, options);
+ else if (*argv[1] == '-')
+ goto log_reflog;
- if (!strcmp(argv[1], "delete"))
+ if (!strcmp(argv[1], "show"))
+ return cmd_reflog_show(argc - 1, argv + 1, prefix);
+ else if (!strcmp(argv[1], "expire"))
+ return cmd_reflog_expire(argc - 1, argv + 1, prefix);
+ else if (!strcmp(argv[1], "delete"))
return cmd_reflog_delete(argc - 1, argv + 1, prefix);
-
- if (!strcmp(argv[1], "exists"))
+ else if (!strcmp(argv[1], "exists"))
return cmd_reflog_exists(argc - 1, argv + 1, prefix);
+ /*
+ * Fall-through for e.g. "git reflog -1", "git reflog master",
+ * as well as the plain "git reflog" above goto above.
+ */
+log_reflog:
return cmd_log_reflog(argc, argv, prefix);
}
diff --git a/builtin/remote.c b/builtin/remote.c
index 299c466116..5f4cde9d78 100644
--- a/builtin/remote.c
+++ b/builtin/remote.c
@@ -12,11 +12,12 @@
#include "object-store.h"
#include "strvec.h"
#include "commit-reach.h"
+#include "progress.h"
static const char * const builtin_remote_usage[] = {
- N_("git remote [-v | --verbose]"),
+ "git remote [-v | --verbose]",
N_("git remote add [-t <branch>] [-m <master>] [-f] [--tags | --no-tags] [--mirror=<fetch|push>] <name> <url>"),
- N_("git remote rename <old> <new>"),
+ N_("git remote rename [--[no-]progress] <old> <new>"),
N_("git remote remove <name>"),
N_("git remote set-head <name> (-a | --auto | -d | --delete | <branch>)"),
N_("git remote [-v | --verbose] show [-n] <name>"),
@@ -36,7 +37,7 @@ static const char * const builtin_remote_add_usage[] = {
};
static const char * const builtin_remote_rename_usage[] = {
- N_("git remote rename <old> <new>"),
+ N_("git remote rename [--[no-]progress] <old> <new>"),
NULL
};
@@ -571,6 +572,7 @@ struct rename_info {
const char *old_name;
const char *new_name;
struct string_list *remote_branches;
+ uint32_t symrefs_nr;
};
static int read_remote_branches(const char *refname,
@@ -587,10 +589,12 @@ static int read_remote_branches(const char *refname,
item = string_list_append(rename->remote_branches, refname);
symref = resolve_ref_unsafe(refname, RESOLVE_REF_READING,
NULL, &flag);
- if (symref && (flag & REF_ISSYMREF))
+ if (symref && (flag & REF_ISSYMREF)) {
item->util = xstrdup(symref);
- else
+ rename->symrefs_nr++;
+ } else {
item->util = NULL;
+ }
}
strbuf_release(&buf);
@@ -674,7 +678,9 @@ static void handle_push_default(const char* old_name, const char* new_name)
static int mv(int argc, const char **argv)
{
+ int show_progress = isatty(2);
struct option options[] = {
+ OPT_BOOL(0, "progress", &show_progress, N_("force progress reporting")),
OPT_END()
};
struct remote *oldremote, *newremote;
@@ -682,14 +688,19 @@ static int mv(int argc, const char **argv)
old_remote_context = STRBUF_INIT;
struct string_list remote_branches = STRING_LIST_INIT_DUP;
struct rename_info rename;
- int i, refspec_updated = 0;
+ int i, refs_renamed_nr = 0, refspec_updated = 0;
+ struct progress *progress = NULL;
+
+ argc = parse_options(argc, argv, NULL, options,
+ builtin_remote_rename_usage, 0);
- if (argc != 3)
+ if (argc != 2)
usage_with_options(builtin_remote_rename_usage, options);
- rename.old_name = argv[1];
- rename.new_name = argv[2];
+ rename.old_name = argv[0];
+ rename.new_name = argv[1];
rename.remote_branches = &remote_branches;
+ rename.symrefs_nr = 0;
oldremote = remote_get(rename.old_name);
if (!remote_is_configured(oldremote, 1)) {
@@ -764,15 +775,26 @@ static int mv(int argc, const char **argv)
* the new symrefs.
*/
for_each_ref(read_remote_branches, &rename);
+ if (show_progress) {
+ /*
+ * Count symrefs twice, since "renaming" them is done by
+ * deleting and recreating them in two separate passes.
+ */
+ progress = start_progress(_("Renaming remote references"),
+ rename.remote_branches->nr + rename.symrefs_nr);
+ }
for (i = 0; i < remote_branches.nr; i++) {
struct string_list_item *item = remote_branches.items + i;
- int flag = 0;
+ struct strbuf referent = STRBUF_INIT;
- read_ref_full(item->string, RESOLVE_REF_READING, NULL, &flag);
- if (!(flag & REF_ISSYMREF))
+ if (refs_read_symbolic_ref(get_main_ref_store(the_repository), item->string,
+ &referent))
continue;
if (delete_ref(NULL, item->string, NULL, REF_NO_DEREF))
die(_("deleting '%s' failed"), item->string);
+
+ strbuf_release(&referent);
+ display_progress(progress, ++refs_renamed_nr);
}
for (i = 0; i < remote_branches.nr; i++) {
struct string_list_item *item = remote_branches.items + i;
@@ -788,6 +810,7 @@ static int mv(int argc, const char **argv)
item->string, buf.buf);
if (rename_ref(item->string, buf.buf, buf2.buf))
die(_("renaming '%s' failed"), item->string);
+ display_progress(progress, ++refs_renamed_nr);
}
for (i = 0; i < remote_branches.nr; i++) {
struct string_list_item *item = remote_branches.items + i;
@@ -807,7 +830,9 @@ static int mv(int argc, const char **argv)
item->string, buf.buf);
if (create_symref(buf.buf, buf2.buf, buf3.buf))
die(_("creating '%s' failed"), buf.buf);
+ display_progress(progress, ++refs_renamed_nr);
}
+ stop_progress(&progress);
string_list_clear(&remote_branches, 1);
handle_push_default(rename.old_name, rename.new_name);
diff --git a/builtin/repack.c b/builtin/repack.c
index da1e364a75..d1a563d5b6 100644
--- a/builtin/repack.c
+++ b/builtin/repack.c
@@ -22,6 +22,7 @@ static int delta_base_offset = 1;
static int pack_kept_objects = -1;
static int write_bitmaps = -1;
static int use_delta_islands;
+static int run_update_server_info = 1;
static char *packdir, *packtmp_name, *packtmp;
static const char *const git_repack_usage[] = {
@@ -54,6 +55,10 @@ static int repack_config(const char *var, const char *value, void *cb)
use_delta_islands = git_config_bool(var, value);
return 0;
}
+ if (strcmp(var, "repack.updateserverinfo") == 0) {
+ run_update_server_info = git_config_bool(var, value);
+ return 0;
+ }
return git_default_config(var, value, cb);
}
@@ -620,7 +625,6 @@ int cmd_repack(int argc, const char **argv, const char *prefix)
const char *unpack_unreachable = NULL;
int keep_unreachable = 0;
struct string_list keep_pack_list = STRING_LIST_INIT_NODUP;
- int no_update_server_info = 0;
struct pack_objects_args po_args = {NULL};
int geometric_factor = 0;
int write_midx = 0;
@@ -637,8 +641,8 @@ int cmd_repack(int argc, const char **argv, const char *prefix)
N_("pass --no-reuse-delta to git-pack-objects")),
OPT_BOOL('F', NULL, &po_args.no_reuse_object,
N_("pass --no-reuse-object to git-pack-objects")),
- OPT_BOOL('n', NULL, &no_update_server_info,
- N_("do not run git-update-server-info")),
+ OPT_NEGBIT('n', NULL, &run_update_server_info,
+ N_("do not run git-update-server-info"), 1),
OPT__QUIET(&po_args.quiet, N_("be quiet")),
OPT_BOOL('l', "local", &po_args.local,
N_("pass --local to git-pack-objects")),
@@ -939,7 +943,7 @@ int cmd_repack(int argc, const char **argv, const char *prefix)
prune_shallow(PRUNE_QUICK);
}
- if (!no_update_server_info)
+ if (run_update_server_info)
update_server_info(0);
remove_temporary_files();
diff --git a/builtin/replace.c b/builtin/replace.c
index a306c37c21..583702a098 100644
--- a/builtin/replace.c
+++ b/builtin/replace.c
@@ -22,7 +22,7 @@ static const char * const git_replace_usage[] = {
N_("git replace [-f] <object> <replacement>"),
N_("git replace [-f] --edit <object>"),
N_("git replace [-f] --graft <commit> [<parent>...]"),
- N_("git replace [-f] --convert-graft-file"),
+ "git replace [-f] --convert-graft-file",
N_("git replace -d <object>..."),
N_("git replace [--format=<format>] [-l [<pattern>]]"),
NULL
@@ -409,7 +409,7 @@ static int check_one_mergetag(struct commit *commit,
int i;
hash_object_file(the_hash_algo, extra->value, extra->len,
- type_name(OBJ_TAG), &tag_oid);
+ OBJ_TAG, &tag_oid);
tag = lookup_tag(the_repository, &tag_oid);
if (!tag)
return error(_("bad mergetag in commit '%s'"), ref);
@@ -474,7 +474,7 @@ static int create_graft(int argc, const char **argv, int force, int gentle)
return -1;
}
- if (write_object_file(buf.buf, buf.len, commit_type, &new_oid)) {
+ if (write_object_file(buf.buf, buf.len, OBJ_COMMIT, &new_oid)) {
strbuf_release(&buf);
return error(_("could not write replacement commit for: '%s'"),
old_ref);
diff --git a/builtin/reset.c b/builtin/reset.c
index b97745ee94..344fff8f3a 100644
--- a/builtin/reset.c
+++ b/builtin/reset.c
@@ -204,10 +204,16 @@ static int pathspec_needs_expanded_index(const struct pathspec *pathspec)
/*
* Special case: if the pattern is a path inside the cone
* followed by only wildcards, the pattern cannot match
- * partial sparse directories, so we don't expand the index.
+ * partial sparse directories, so we know we don't need to
+ * expand the index.
+ *
+ * Examples:
+ * - in-cone/foo***: doesn't need expanded index
+ * - not-in-cone/bar*: may need expanded index
+ * - **.c: may need expanded index
*/
- if (path_in_cone_mode_sparse_checkout(item.original, &the_index) &&
- strspn(item.original + item.nowildcard_len, "*") == item.len - item.nowildcard_len)
+ if (strspn(item.original + item.nowildcard_len, "*") == item.len - item.nowildcard_len &&
+ path_in_cone_mode_sparse_checkout(item.original, &the_index))
continue;
for (pos = 0; pos < active_nr; pos++) {
@@ -274,7 +280,6 @@ static int read_from_tree(const struct pathspec *pathspec,
return 1;
diffcore_std(&opt);
diff_flush(&opt);
- clear_pathspec(&opt.pathspec);
return 0;
}
@@ -387,6 +392,7 @@ static int git_reset_config(const char *var, const char *value, void *cb)
int cmd_reset(int argc, const char **argv, const char *prefix)
{
int reset_type = NONE, update_ref_status = 0, quiet = 0;
+ int no_refresh = 0;
int patch_mode = 0, pathspec_file_nul = 0, unborn;
const char *rev, *pathspec_from_file = NULL;
struct object_id oid;
@@ -394,6 +400,8 @@ int cmd_reset(int argc, const char **argv, const char *prefix)
int intent_to_add = 0;
const struct option options[] = {
OPT__QUIET(&quiet, N_("be quiet, only report errors")),
+ OPT_BOOL(0, "no-refresh", &no_refresh,
+ N_("skip refreshing the index after reset")),
OPT_SET_INT(0, "mixed", &reset_type,
N_("reset HEAD and index"), MIXED),
OPT_SET_INT(0, "soft", &reset_type, N_("reset only HEAD"), SOFT),
@@ -415,7 +423,6 @@ int cmd_reset(int argc, const char **argv, const char *prefix)
};
git_config(git_reset_config, NULL);
- git_config_get_bool("reset.quiet", &quiet);
argc = parse_options(argc, argv, prefix, options, git_reset_usage,
PARSE_OPT_KEEP_DASHDASH);
@@ -512,17 +519,16 @@ int cmd_reset(int argc, const char **argv, const char *prefix)
if (read_from_tree(&pathspec, &oid, intent_to_add))
return 1;
the_index.updated_skipworktree = 1;
- if (!quiet && get_git_work_tree()) {
+ if (!no_refresh && get_git_work_tree()) {
uint64_t t_begin, t_delta_in_ms;
t_begin = getnanotime();
refresh_index(&the_index, flags, NULL, NULL,
_("Unstaged changes after reset:"));
t_delta_in_ms = (getnanotime() - t_begin) / 1000000;
- if (advice_enabled(ADVICE_RESET_QUIET_WARNING) && t_delta_in_ms > REFRESH_INDEX_DELAY_WARNING_IN_MS) {
- printf(_("\nIt took %.2f seconds to enumerate unstaged changes after reset. You can\n"
- "use '--quiet' to avoid this. Set the config setting reset.quiet to true\n"
- "to make this the default.\n"), t_delta_in_ms / 1000.0);
+ if (!quiet && advice_enabled(ADVICE_RESET_NO_REFRESH_WARNING) && t_delta_in_ms > REFRESH_INDEX_DELAY_WARNING_IN_MS) {
+ advise(_("It took %.2f seconds to refresh the index after reset. You can use\n"
+ "'--no-refresh' to avoid this."), t_delta_in_ms / 1000.0);
}
}
} else {
diff --git a/builtin/rev-list.c b/builtin/rev-list.c
index 777558e9b0..572da1472e 100644
--- a/builtin/rev-list.c
+++ b/builtin/rev-list.c
@@ -20,7 +20,7 @@
#include "packfile.h"
static const char rev_list_usage[] =
-"git rev-list [OPTION] <commit-id>... [ -- paths... ]\n"
+"git rev-list [<options>] <commit-id>... [-- <path>...]\n"
" limiting output:\n"
" --max-count=<n>\n"
" --max-age=<epoch>\n"
@@ -62,7 +62,6 @@ static const char rev_list_usage[] =
static struct progress *progress;
static unsigned progress_counter;
-static struct list_objects_filter_options filter_options;
static struct oidset omitted_objects;
static int arg_print_omitted; /* print objects omitted by filter */
@@ -400,7 +399,6 @@ static inline int parse_missing_action_value(const char *value)
}
static int try_bitmap_count(struct rev_info *revs,
- struct list_objects_filter_options *filter,
int filter_provided_objects)
{
uint32_t commit_count = 0,
@@ -436,7 +434,7 @@ static int try_bitmap_count(struct rev_info *revs,
*/
max_count = revs->max_count;
- bitmap_git = prepare_bitmap_walk(revs, filter, filter_provided_objects);
+ bitmap_git = prepare_bitmap_walk(revs, filter_provided_objects);
if (!bitmap_git)
return -1;
@@ -453,7 +451,6 @@ static int try_bitmap_count(struct rev_info *revs,
}
static int try_bitmap_traversal(struct rev_info *revs,
- struct list_objects_filter_options *filter,
int filter_provided_objects)
{
struct bitmap_index *bitmap_git;
@@ -465,7 +462,7 @@ static int try_bitmap_traversal(struct rev_info *revs,
if (revs->max_count >= 0)
return -1;
- bitmap_git = prepare_bitmap_walk(revs, filter, filter_provided_objects);
+ bitmap_git = prepare_bitmap_walk(revs, filter_provided_objects);
if (!bitmap_git)
return -1;
@@ -475,7 +472,6 @@ static int try_bitmap_traversal(struct rev_info *revs,
}
static int try_bitmap_disk_usage(struct rev_info *revs,
- struct list_objects_filter_options *filter,
int filter_provided_objects)
{
struct bitmap_index *bitmap_git;
@@ -483,7 +479,7 @@ static int try_bitmap_disk_usage(struct rev_info *revs,
if (!show_disk_usage)
return -1;
- bitmap_git = prepare_bitmap_walk(revs, filter, filter_provided_objects);
+ bitmap_git = prepare_bitmap_walk(revs, filter_provided_objects);
if (!bitmap_git)
return -1;
@@ -595,17 +591,6 @@ int cmd_rev_list(int argc, const char **argv, const char *prefix)
show_progress = arg;
continue;
}
-
- if (skip_prefix(arg, ("--" CL_ARG__FILTER "="), &arg)) {
- parse_list_objects_filter(&filter_options, arg);
- if (filter_options.choice && !revs.blob_objects)
- die(_("object filtering requires --objects"));
- continue;
- }
- if (!strcmp(arg, ("--no-" CL_ARG__FILTER))) {
- list_objects_filter_set_no_filter(&filter_options);
- continue;
- }
if (!strcmp(arg, "--filter-provided-objects")) {
filter_provided_objects = 1;
continue;
@@ -688,11 +673,11 @@ int cmd_rev_list(int argc, const char **argv, const char *prefix)
progress = start_delayed_progress(show_progress, 0);
if (use_bitmap_index) {
- if (!try_bitmap_count(&revs, &filter_options, filter_provided_objects))
+ if (!try_bitmap_count(&revs, filter_provided_objects))
return 0;
- if (!try_bitmap_disk_usage(&revs, &filter_options, filter_provided_objects))
+ if (!try_bitmap_disk_usage(&revs, filter_provided_objects))
return 0;
- if (!try_bitmap_traversal(&revs, &filter_options, filter_provided_objects))
+ if (!try_bitmap_traversal(&revs, filter_provided_objects))
return 0;
}
@@ -733,7 +718,7 @@ int cmd_rev_list(int argc, const char **argv, const char *prefix)
oidset_init(&missing_objects, DEFAULT_OIDSET_SIZE);
traverse_commit_list_filtered(
- &filter_options, &revs, show_commit, show_object, &info,
+ &revs, show_commit, show_object, &info,
(arg_print_omitted ? &omitted_objects : NULL));
if (arg_print_omitted) {
diff --git a/builtin/rev-parse.c b/builtin/rev-parse.c
index 660a6a749b..b259d8990a 100644
--- a/builtin/rev-parse.c
+++ b/builtin/rev-parse.c
@@ -723,6 +723,9 @@ int cmd_rev_parse(int argc, const char **argv, const char *prefix)
prefix = setup_git_directory();
git_config(git_default_config, NULL);
did_repo_setup = 1;
+
+ prepare_repo_settings(the_repository);
+ the_repository->settings.command_requires_full_index = 0;
}
if (!strcmp(arg, "--")) {
diff --git a/builtin/send-pack.c b/builtin/send-pack.c
index 69c432ef1a..64962be016 100644
--- a/builtin/send-pack.c
+++ b/builtin/send-pack.c
@@ -145,7 +145,7 @@ static int send_pack_config(const char *k, const char *v, void *cb)
if (value && !strcasecmp(value, "if-asked"))
args.push_cert = SEND_PACK_PUSH_CERT_IF_ASKED;
else
- return error("Invalid value for '%s'", k);
+ return error(_("invalid value for '%s'"), k);
}
}
}
diff --git a/builtin/shortlog.c b/builtin/shortlog.c
index 16a66d8cf4..62c4a4eaba 100644
--- a/builtin/shortlog.c
+++ b/builtin/shortlog.c
@@ -388,6 +388,7 @@ int cmd_shortlog(int argc, const char **argv, const char *prefix)
parse_revision_opt(&rev, &ctx, options, shortlog_usage);
}
parse_done:
+ revision_opts_finish(&rev);
argc = parse_options_end(&ctx);
if (nongit && argc > 1) {
@@ -434,7 +435,7 @@ static void add_wrapped_shortlog_msg(struct strbuf *sb, const char *s,
void shortlog_output(struct shortlog *log)
{
- int i, j;
+ size_t i, j;
struct strbuf sb = STRBUF_INIT;
if (log->sort_by_number)
@@ -447,10 +448,10 @@ void shortlog_output(struct shortlog *log)
(int)UTIL_TO_INT(item), item->string);
} else {
struct string_list *onelines = item->util;
- fprintf(log->file, "%s (%d):\n",
- item->string, onelines->nr);
- for (j = onelines->nr - 1; j >= 0; j--) {
- const char *msg = onelines->items[j].string;
+ fprintf(log->file, "%s (%"PRIuMAX"):\n",
+ item->string, (uintmax_t)onelines->nr);
+ for (j = onelines->nr; j >= 1; j--) {
+ const char *msg = onelines->items[j - 1].string;
if (log->wrap_lines) {
strbuf_reset(&sb);
diff --git a/builtin/show-branch.c b/builtin/show-branch.c
index e12c5e80e3..330b0553b9 100644
--- a/builtin/show-branch.c
+++ b/builtin/show-branch.c
@@ -8,6 +8,7 @@
#include "parse-options.h"
#include "dir.h"
#include "commit-slab.h"
+#include "date.h"
static const char* show_branch_usage[] = {
N_("git show-branch [-a | --all] [-r | --remotes] [--topo-order | --date-order]\n"
diff --git a/builtin/sparse-checkout.c b/builtin/sparse-checkout.c
index 679c107036..0217d44c5b 100644
--- a/builtin/sparse-checkout.c
+++ b/builtin/sparse-checkout.c
@@ -1,4 +1,5 @@
#include "builtin.h"
+#include "cache.h"
#include "config.h"
#include "dir.h"
#include "parse-options.h"
@@ -7,7 +8,6 @@
#include "run-command.h"
#include "strbuf.h"
#include "string-list.h"
-#include "cache.h"
#include "cache-tree.h"
#include "lockfile.h"
#include "resolve-undo.h"
@@ -15,6 +15,7 @@
#include "wt-status.h"
#include "quote.h"
#include "sparse-index.h"
+#include "worktree.h"
static const char *empty_base = "";
@@ -43,7 +44,7 @@ static void write_patterns_to_file(FILE *fp, struct pattern_list *pl)
}
static char const * const builtin_sparse_checkout_list_usage[] = {
- N_("git sparse-checkout list"),
+ "git sparse-checkout list",
NULL
};
@@ -185,6 +186,8 @@ static void clean_tracked_sparse_directories(struct repository *r)
item->string);
}
+ strvec_clear(&s);
+ clear_pathspec(&p);
dir_clear(&dir);
}
@@ -325,11 +328,11 @@ static int write_patterns_and_update(struct pattern_list *pl)
fd = hold_lock_file_for_update(&lk, sparse_filename,
LOCK_DIE_ON_ERROR);
+ free(sparse_filename);
result = update_working_directory(pl);
if (result) {
rollback_lock_file(&lk);
- free(sparse_filename);
clear_pattern_list(pl);
update_working_directory(NULL);
return result;
@@ -345,7 +348,6 @@ static int write_patterns_and_update(struct pattern_list *pl)
fflush(fp);
commit_lock_file(&lk);
- free(sparse_filename);
clear_pattern_list(pl);
return 0;
@@ -359,26 +361,23 @@ enum sparse_checkout_mode {
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"));
+ /* Update to use worktree config, if not already. */
+ if (init_worktree_config(the_repository)) {
+ error(_("failed to initialize worktree config"));
return 1;
}
- config_path = git_path("config.worktree");
- git_config_set_in_file_gently(config_path,
- "core.sparseCheckout",
- mode ? "true" : NULL);
-
- git_config_set_in_file_gently(config_path,
- "core.sparseCheckoutCone",
- mode == MODE_CONE_PATTERNS ? "true" : NULL);
+ if (repo_config_set_worktree_gently(the_repository,
+ "core.sparseCheckout",
+ mode ? "true" : "false") ||
+ repo_config_set_worktree_gently(the_repository,
+ "core.sparseCheckoutCone",
+ mode == MODE_CONE_PATTERNS ?
+ "true" : "false"))
+ return 1;
if (mode == MODE_NO_PATTERNS)
- set_sparse_index_config(the_repository, 0);
+ return set_sparse_index_config(the_repository, 0);
return 0;
}
@@ -401,6 +400,7 @@ static int update_modes(int *cone_mode, int *sparse_index)
core_sparse_checkout_cone = 1;
} else {
mode = MODE_ALL_PATTERNS;
+ core_sparse_checkout_cone = 0;
}
if (record_mode && set_config(mode))
return 1;
@@ -419,7 +419,7 @@ static int update_modes(int *cone_mode, int *sparse_index)
}
static char const * const builtin_sparse_checkout_init_usage[] = {
- N_("git sparse-checkout init [--cone] [--[no-]sparse-index]"),
+ "git sparse-checkout init [--cone] [--[no-]sparse-index]",
NULL
};
@@ -471,6 +471,9 @@ static int sparse_checkout_init(int argc, const char **argv)
FILE *fp;
/* assume we are in a fresh repo, but update the sparse-checkout file */
+ if (safe_create_leading_directories(sparse_filename))
+ die(_("unable to create leading directories of %s"),
+ sparse_filename);
fp = xfopen(sparse_filename, "w");
if (!fp)
die(_("failed to open '%s'"), sparse_filename);
@@ -678,18 +681,76 @@ static int modify_pattern_list(int argc, const char **argv, int use_stdin,
return result;
}
+static void sanitize_paths(int argc, const char **argv,
+ const char *prefix, int skip_checks)
+{
+ int i;
+
+ if (!argc)
+ return;
+
+ if (prefix && *prefix && core_sparse_checkout_cone) {
+ /*
+ * The args are not pathspecs, so unfortunately we
+ * cannot imitate how cmd_add() uses parse_pathspec().
+ */
+ int prefix_len = strlen(prefix);
+
+ for (i = 0; i < argc; i++)
+ argv[i] = prefix_path(prefix, prefix_len, argv[i]);
+ }
+
+ if (skip_checks)
+ return;
+
+ if (prefix && *prefix && !core_sparse_checkout_cone)
+ die(_("please run from the toplevel directory in non-cone mode"));
+
+ if (core_sparse_checkout_cone) {
+ for (i = 0; i < argc; i++) {
+ if (argv[i][0] == '/')
+ die(_("specify directories rather than patterns (no leading slash)"));
+ if (argv[i][0] == '!')
+ die(_("specify directories rather than patterns. If your directory starts with a '!', pass --skip-checks"));
+ if (strpbrk(argv[i], "*?[]"))
+ die(_("specify directories rather than patterns. If your directory really has any of '*?[]\\' in it, pass --skip-checks"));
+ }
+ }
+
+ for (i = 0; i < argc; i++) {
+ struct cache_entry *ce;
+ struct index_state *index = the_repository->index;
+ int pos = index_name_pos(index, argv[i], strlen(argv[i]));
+
+ if (pos < 0)
+ continue;
+ ce = index->cache[pos];
+ if (S_ISSPARSEDIR(ce->ce_mode))
+ continue;
+
+ if (core_sparse_checkout_cone)
+ die(_("'%s' is not a directory; to treat it as a directory anyway, rerun with --skip-checks"), argv[i]);
+ else
+ warning(_("pass a leading slash before paths such as '%s' if you want a single file (see NON-CONE PROBLEMS in the git-sparse-checkout manual)."), argv[i]);
+ }
+}
+
static char const * const builtin_sparse_checkout_add_usage[] = {
- N_("git sparse-checkout add (--stdin | <patterns>)"),
+ N_("git sparse-checkout add [--skip-checks] (--stdin | <patterns>)"),
NULL
};
static struct sparse_checkout_add_opts {
+ int skip_checks;
int use_stdin;
} add_opts;
static int sparse_checkout_add(int argc, const char **argv, const char *prefix)
{
static struct option builtin_sparse_checkout_add_options[] = {
+ OPT_BOOL_F(0, "skip-checks", &add_opts.skip_checks,
+ N_("skip some sanity checks on the given paths that might give false positives"),
+ PARSE_OPT_NONEG),
OPT_BOOL(0, "stdin", &add_opts.use_stdin,
N_("read patterns from standard in")),
OPT_END(),
@@ -705,17 +766,20 @@ static int sparse_checkout_add(int argc, const char **argv, const char *prefix)
builtin_sparse_checkout_add_usage,
PARSE_OPT_KEEP_UNKNOWN);
+ sanitize_paths(argc, argv, prefix, add_opts.skip_checks);
+
return modify_pattern_list(argc, argv, add_opts.use_stdin, ADD);
}
static char const * const builtin_sparse_checkout_set_usage[] = {
- N_("git sparse-checkout set [--[no-]cone] [--[no-]sparse-index] (--stdin | <patterns>)"),
+ N_("git sparse-checkout set [--[no-]cone] [--[no-]sparse-index] [--skip-checks] (--stdin | <patterns>)"),
NULL
};
static struct sparse_checkout_set_opts {
int cone_mode;
int sparse_index;
+ int skip_checks;
int use_stdin;
} set_opts;
@@ -729,6 +793,9 @@ static int sparse_checkout_set(int argc, const char **argv, const char *prefix)
N_("initialize the sparse-checkout in cone mode")),
OPT_BOOL(0, "sparse-index", &set_opts.sparse_index,
N_("toggle the use of a sparse index")),
+ OPT_BOOL_F(0, "skip-checks", &set_opts.skip_checks,
+ N_("skip some sanity checks on the given paths that might give false positives"),
+ PARSE_OPT_NONEG),
OPT_BOOL_F(0, "stdin", &set_opts.use_stdin,
N_("read patterns from standard in"),
PARSE_OPT_NONEG),
@@ -756,13 +823,15 @@ static int sparse_checkout_set(int argc, const char **argv, const char *prefix)
if (!core_sparse_checkout_cone && argc == 0) {
argv = default_patterns;
argc = default_patterns_nr;
+ } else {
+ sanitize_paths(argc, argv, prefix, set_opts.skip_checks);
}
return modify_pattern_list(argc, argv, set_opts.use_stdin, REPLACE);
}
static char const * const builtin_sparse_checkout_reapply_usage[] = {
- N_("git sparse-checkout reapply [--[no-]cone] [--[no-]sparse-index]"),
+ "git sparse-checkout reapply [--[no-]cone] [--[no-]sparse-index]",
NULL
};
@@ -784,15 +853,15 @@ static int sparse_checkout_reapply(int argc, const char **argv)
if (!core_apply_sparse_checkout)
die(_("must be in a sparse-checkout to reapply sparsity patterns"));
+ reapply_opts.cone_mode = -1;
+ reapply_opts.sparse_index = -1;
+
argc = parse_options(argc, argv, NULL,
builtin_sparse_checkout_reapply_options,
builtin_sparse_checkout_reapply_usage, 0);
repo_read_index(the_repository);
- reapply_opts.cone_mode = -1;
- reapply_opts.sparse_index = -1;
-
if (update_modes(&reapply_opts.cone_mode, &reapply_opts.sparse_index))
return 1;
@@ -800,7 +869,7 @@ static int sparse_checkout_reapply(int argc, const char **argv)
}
static char const * const builtin_sparse_checkout_disable_usage[] = {
- N_("git sparse-checkout disable"),
+ "git sparse-checkout disable",
NULL
};
diff --git a/builtin/stash.c b/builtin/stash.c
index 86cd0b456e..3fe549f7d3 100644
--- a/builtin/stash.c
+++ b/builtin/stash.c
@@ -7,6 +7,7 @@
#include "cache-tree.h"
#include "unpack-trees.h"
#include "merge-recursive.h"
+#include "merge-ort-wrappers.h"
#include "strvec.h"
#include "run-command.h"
#include "dir.h"
@@ -16,7 +17,7 @@
#include "log-tree.h"
#include "diffcore.h"
#include "exec-cmd.h"
-#include "entry.h"
+#include "reflog.h"
#define INCLUDE_ALL_FILES 2
@@ -310,7 +311,7 @@ static int reset_head(void)
* API for resetting.
*/
cp.git_cmd = 1;
- strvec_push(&cp.args, "reset");
+ strvec_pushl(&cp.args, "reset", "--quiet", "--refresh", NULL);
return run_command(&cp);
}
@@ -492,13 +493,13 @@ static void unstage_changes_unless_new(struct object_id *orig_tree)
static int do_apply_stash(const char *prefix, struct stash_info *info,
int index, int quiet)
{
- int ret;
+ int clean, ret;
int has_index = index;
struct merge_options o;
struct object_id c_tree;
struct object_id index_tree;
- struct commit *result;
- const struct object_id *bases[1];
+ struct tree *head, *merge, *merge_base;
+ struct lock_file lock = LOCK_INIT;
read_cache_preload(NULL);
if (refresh_and_write_cache(REFRESH_QUIET, 0, 0))
@@ -541,6 +542,7 @@ static int do_apply_stash(const char *prefix, struct stash_info *info,
o.branch1 = "Updated upstream";
o.branch2 = "Stashed changes";
+ o.ancestor = "Stash base";
if (oideq(&info->b_tree, &c_tree))
o.branch1 = "Version stash was based on";
@@ -551,10 +553,26 @@ static int do_apply_stash(const char *prefix, struct stash_info *info,
if (o.verbosity >= 3)
printf_ln(_("Merging %s with %s"), o.branch1, o.branch2);
- bases[0] = &info->b_tree;
+ head = lookup_tree(o.repo, &c_tree);
+ merge = lookup_tree(o.repo, &info->w_tree);
+ merge_base = lookup_tree(o.repo, &info->b_tree);
+
+ repo_hold_locked_index(o.repo, &lock, LOCK_DIE_ON_ERROR);
+ clean = merge_ort_nonrecursive(&o, head, merge, merge_base);
+
+ /*
+ * If 'clean' >= 0, reverse the value for 'ret' so 'ret' is 0 when the
+ * merge was clean, and nonzero if the merge was unclean or encountered
+ * an error.
+ */
+ ret = clean >= 0 ? !clean : clean;
+
+ if (ret < 0)
+ rollback_lock_file(&lock);
+ else if (write_locked_index(o.repo->index, &lock,
+ COMMIT_LOCK | SKIP_IF_UNCHANGED))
+ ret = error(_("could not write index"));
- ret = merge_recursive_generic(&o, &c_tree, &info->w_tree, 1, bases,
- &result);
if (ret) {
rerere(0);
@@ -634,20 +652,9 @@ static int reflog_is_empty(const char *refname)
static int do_drop_stash(struct stash_info *info, int quiet)
{
- int ret;
- struct child_process cp_reflog = CHILD_PROCESS_INIT;
-
- /*
- * reflog does not provide a simple function for deleting refs. One will
- * need to be added to avoid implementing too much reflog code here
- */
-
- cp_reflog.git_cmd = 1;
- strvec_pushl(&cp_reflog.args, "reflog", "delete", "--updateref",
- "--rewrite", NULL);
- strvec_push(&cp_reflog.args, info->revision.buf);
- ret = run_command(&cp_reflog);
- if (!ret) {
+ if (!reflog_delete(info->revision.buf,
+ EXPIRE_REFLOGS_REWRITE | EXPIRE_REFLOGS_UPDATE_REF,
+ 0)) {
if (!quiet)
printf_ln(_("Dropped %s (%s)"), info->revision.buf,
oid_to_hex(&info->w_commit));
@@ -788,7 +795,6 @@ static int list_stash(int argc, const char **argv, const char *prefix)
static int show_stat = 1;
static int show_patch;
static int show_include_untracked;
-static int use_legacy_stash;
static int git_stash_config(const char *var, const char *value, void *cb)
{
@@ -804,10 +810,6 @@ static int git_stash_config(const char *var, const char *value, void *cb)
show_include_untracked = git_config_bool(var, value);
return 0;
}
- if (!strcmp(var, "stash.usebuiltin")) {
- use_legacy_stash = !git_config_bool(var, value);
- return 0;
- }
return git_diff_basic_config(var, value, cb);
}
@@ -1332,7 +1334,7 @@ static int do_create_stash(const struct pathspec *ps, struct strbuf *stash_msg_b
branch_ref = resolve_ref_unsafe("HEAD", 0, NULL, &flags);
if (flags & REF_ISSYMREF)
- branch_name = strrchr(branch_ref, '/') + 1;
+ skip_prefix(branch_ref, "refs/heads/", &branch_name);
head_short_sha1 = find_unique_abbrev(&head_commit->object.oid,
DEFAULT_ABBREV);
strbuf_addf(&msg, "%s: %s ", branch_name, head_short_sha1);
@@ -1638,7 +1640,8 @@ static int do_push_stash(const struct pathspec *ps, const char *stash_msg, int q
struct child_process cp = CHILD_PROCESS_INIT;
cp.git_cmd = 1;
- strvec_pushl(&cp.args, "reset", "-q", "--", NULL);
+ strvec_pushl(&cp.args, "reset", "-q", "--refresh", "--",
+ NULL);
add_pathspecs(&cp.args, ps);
if (run_command(&cp)) {
ret = -1;
@@ -1782,14 +1785,12 @@ int cmd_stash(int argc, const char **argv, const char *prefix)
git_config(git_stash_config, NULL);
- if (use_legacy_stash ||
- !git_env_bool("GIT_TEST_STASH_USE_BUILTIN", -1))
- warning(_("the stash.useBuiltin support has been removed!\n"
- "See its entry in 'git help config' for details."));
-
argc = parse_options(argc, argv, prefix, options, git_stash_usage,
PARSE_OPT_KEEP_UNKNOWN | PARSE_OPT_KEEP_DASHDASH);
+ prepare_repo_settings(the_repository);
+ the_repository->settings.command_requires_full_index = 0;
+
index_file = get_index_file();
strbuf_addf(&stash_index_path, "%s.stash.%" PRIuMAX, index_file,
(uintmax_t)pid);
@@ -1819,8 +1820,8 @@ int cmd_stash(int argc, const char **argv, const char *prefix)
else if (!strcmp(argv[0], "save"))
return !!save_stash(argc, argv, prefix);
else if (*argv[0] != '-')
- usage_msg_opt(xstrfmt(_("unknown subcommand: %s"), argv[0]),
- git_stash_usage, options);
+ usage_msg_optf(_("unknown subcommand: %s"),
+ git_stash_usage, options, argv[0]);
/* Assume 'stash push' */
strvec_push(&args, "push");
diff --git a/builtin/stripspace.c b/builtin/stripspace.c
index be33eb83c1..1e34cf2beb 100644
--- a/builtin/stripspace.c
+++ b/builtin/stripspace.c
@@ -15,8 +15,8 @@ static void comment_lines(struct strbuf *buf)
}
static const char * const stripspace_usage[] = {
- N_("git stripspace [-s | --strip-comments]"),
- N_("git stripspace [-c | --comment-lines]"),
+ "git stripspace [-s | --strip-comments]",
+ "git stripspace [-c | --comment-lines]",
NULL
};
diff --git a/builtin/submodule--helper.c b/builtin/submodule--helper.c
index c5d3fc3817..1a8e5d0621 100644
--- a/builtin/submodule--helper.c
+++ b/builtin/submodule--helper.c
@@ -20,6 +20,8 @@
#include "diff.h"
#include "object-store.h"
#include "advice.h"
+#include "branch.h"
+#include "list-objects-filter-options.h"
#define OPT_QUIET (1 << 0)
#define OPT_CACHED (1 << 1)
@@ -29,11 +31,13 @@
typedef void (*each_submodule_fn)(const struct cache_entry *list_item,
void *cb_data);
-static char *get_default_remote(void)
+static char *repo_get_default_remote(struct repository *repo)
{
char *dest = NULL, *ret;
struct strbuf sb = STRBUF_INIT;
- const char *refname = resolve_ref_unsafe("HEAD", 0, NULL, NULL);
+ struct ref_store *store = get_main_ref_store(repo);
+ const char *refname = refs_resolve_ref_unsafe(store, "HEAD", 0, NULL,
+ NULL);
if (!refname)
die(_("No such ref: %s"), "HEAD");
@@ -46,7 +50,7 @@ static char *get_default_remote(void)
die(_("Expecting a full ref name, got %s"), refname);
strbuf_addf(&sb, "branch.%s.remote", refname);
- if (git_config_get_string(sb.buf, &dest))
+ if (repo_config_get_string(repo, sb.buf, &dest))
ret = xstrdup("origin");
else
ret = dest;
@@ -55,19 +59,17 @@ static char *get_default_remote(void)
return ret;
}
-static int print_default_remote(int argc, const char **argv, const char *prefix)
+static char *get_default_remote_submodule(const char *module_path)
{
- char *remote;
-
- if (argc != 1)
- die(_("submodule--helper print-default-remote takes no arguments"));
+ struct repository subrepo;
- remote = get_default_remote();
- if (remote)
- printf("%s\n", remote);
+ repo_submodule_init(&subrepo, the_repository, module_path, null_oid());
+ return repo_get_default_remote(&subrepo);
+}
- free(remote);
- return 0;
+static char *get_default_remote(void)
+{
+ return repo_get_default_remote(the_repository);
}
static int starts_with_dot_slash(const char *str)
@@ -245,11 +247,10 @@ static int resolve_relative_url_test(int argc, const char **argv, const char *pr
return 0;
}
-/* the result should be freed by the caller. */
-static char *get_submodule_displaypath(const char *path, const char *prefix)
+static char *do_get_submodule_displaypath(const char *path,
+ const char *prefix,
+ const char *super_prefix)
{
- const char *super_prefix = get_super_prefix();
-
if (prefix && super_prefix) {
BUG("cannot have prefix '%s' and superprefix '%s'",
prefix, super_prefix);
@@ -265,6 +266,13 @@ static char *get_submodule_displaypath(const char *path, const char *prefix)
}
}
+/* the result should be freed by the caller. */
+static char *get_submodule_displaypath(const char *path, const char *prefix)
+{
+ const char *super_prefix = get_super_prefix();
+ return do_get_submodule_displaypath(path, prefix, super_prefix);
+}
+
static char *compute_rev_name(const char *sub_path, const char* object_id)
{
struct strbuf sb = STRBUF_INIT;
@@ -586,18 +594,22 @@ static int module_foreach(int argc, const char **argv, const char *prefix)
struct init_cb {
const char *prefix;
+ const char *superprefix;
unsigned int flags;
};
#define INIT_CB_INIT { 0 }
static void init_submodule(const char *path, const char *prefix,
- unsigned int flags)
+ const char *superprefix, unsigned int flags)
{
const struct submodule *sub;
struct strbuf sb = STRBUF_INIT;
char *upd = NULL, *url = NULL, *displaypath;
- displaypath = get_submodule_displaypath(path, prefix);
+ /* try superprefix from the environment, if it is not passed explicitly */
+ if (!superprefix)
+ superprefix = get_super_prefix();
+ displaypath = do_get_submodule_displaypath(path, prefix, superprefix);
sub = submodule_from_path(the_repository, null_oid(), path);
@@ -671,7 +683,7 @@ static void init_submodule(const char *path, const char *prefix,
static void init_submodule_cb(const struct cache_entry *list_item, void *cb_data)
{
struct init_cb *info = cb_data;
- init_submodule(list_item->name, info->prefix, info->flags);
+ init_submodule(list_item->name, info->prefix, info->superprefix, info->flags);
}
static int module_init(int argc, const char **argv, const char *prefix)
@@ -1341,9 +1353,8 @@ static void sync_submodule(const char *path, const char *prefix,
{
const struct submodule *sub;
char *remote_key = NULL;
- char *sub_origin_url, *super_config_url, *displaypath;
+ char *sub_origin_url, *super_config_url, *displaypath, *default_remote;
struct strbuf sb = STRBUF_INIT;
- struct child_process cp = CHILD_PROCESS_INIT;
char *sub_config_path = NULL;
if (!is_submodule_active(the_repository, path))
@@ -1382,21 +1393,15 @@ static void sync_submodule(const char *path, const char *prefix,
if (!is_submodule_populated_gently(path, NULL))
goto cleanup;
- prepare_submodule_repo_env(&cp.env_array);
- cp.git_cmd = 1;
- cp.dir = path;
- strvec_pushl(&cp.args, "submodule--helper",
- "print-default-remote", NULL);
-
strbuf_reset(&sb);
- if (capture_command(&cp, &sb, 0))
+ default_remote = get_default_remote_submodule(path);
+ if (!default_remote)
die(_("failed to get the default remote for submodule '%s'"),
path);
- strbuf_strip_suffix(&sb, "\n");
- remote_key = xstrfmt("remote.%s.url", sb.buf);
+ remote_key = xstrfmt("remote.%s.url", default_remote);
+ free(default_remote);
- strbuf_reset(&sb);
submodule_to_gitdir(&sb, path);
strbuf_addstr(&sb, "/config");
@@ -1630,6 +1635,7 @@ struct module_clone_data {
const char *name;
const char *url;
const char *depth;
+ struct list_objects_filter_options *filter_options;
struct string_list reference;
unsigned int quiet: 1;
unsigned int progress: 1;
@@ -1637,7 +1643,10 @@ struct module_clone_data {
unsigned int require_init: 1;
int single_branch;
};
-#define MODULE_CLONE_DATA_INIT { .reference = STRING_LIST_INIT_NODUP, .single_branch = -1 }
+#define MODULE_CLONE_DATA_INIT { \
+ .reference = STRING_LIST_INIT_NODUP, \
+ .single_branch = -1, \
+}
struct submodule_alternate_setup {
const char *submodule_name;
@@ -1796,6 +1805,10 @@ static int clone_submodule(struct module_clone_data *clone_data)
strvec_push(&cp.args, "--dissociate");
if (sm_gitdir && *sm_gitdir)
strvec_pushl(&cp.args, "--separate-git-dir", sm_gitdir, NULL);
+ if (clone_data->filter_options && clone_data->filter_options->choice)
+ strvec_pushf(&cp.args, "--filter=%s",
+ expand_list_objects_filter_spec(
+ clone_data->filter_options));
if (clone_data->single_branch >= 0)
strvec_push(&cp.args, clone_data->single_branch ?
"--single-branch" :
@@ -1852,6 +1865,7 @@ static int module_clone(int argc, const char **argv, const char *prefix)
{
int dissociate = 0, quiet = 0, progress = 0, require_init = 0;
struct module_clone_data clone_data = MODULE_CLONE_DATA_INIT;
+ struct list_objects_filter_options filter_options;
struct option module_clone_options[] = {
OPT_STRING(0, "prefix", &clone_data.prefix,
@@ -1874,24 +1888,26 @@ static int module_clone(int argc, const char **argv, const char *prefix)
OPT_STRING(0, "depth", &clone_data.depth,
N_("string"),
N_("depth for shallow clones")),
- OPT__QUIET(&quiet, "Suppress output for cloning a submodule"),
+ OPT__QUIET(&quiet, "suppress output for cloning a submodule"),
OPT_BOOL(0, "progress", &progress,
N_("force cloning progress")),
OPT_BOOL(0, "require-init", &require_init,
N_("disallow cloning into non-empty directory")),
OPT_BOOL(0, "single-branch", &clone_data.single_branch,
N_("clone only one branch, HEAD or --branch")),
+ OPT_PARSE_LIST_OBJECTS_FILTER(&filter_options),
OPT_END()
};
const char *const git_submodule_helper_usage[] = {
N_("git submodule--helper clone [--prefix=<path>] [--quiet] "
"[--reference <repository>] [--name <name>] [--depth <depth>] "
- "[--single-branch] "
+ "[--single-branch] [--filter <filter-spec>] "
"--url <url> --path <path>"),
NULL
};
+ memset(&filter_options, 0, sizeof(filter_options));
argc = parse_options(argc, argv, prefix, module_clone_options,
git_submodule_helper_usage, 0);
@@ -1899,12 +1915,14 @@ static int module_clone(int argc, const char **argv, const char *prefix)
clone_data.quiet = !!quiet;
clone_data.progress = !!progress;
clone_data.require_init = !!require_init;
+ clone_data.filter_options = &filter_options;
if (argc || !clone_data.url || !clone_data.path || !*(clone_data.path))
usage_with_options(git_submodule_helper_usage,
module_clone_options);
clone_submodule(&clone_data);
+ list_objects_filter_release(&filter_options);
return 0;
}
@@ -1945,29 +1963,6 @@ static void determine_submodule_update_strategy(struct repository *r,
free(key);
}
-static int module_update_module_mode(int argc, const char **argv, const char *prefix)
-{
- const char *path, *update = NULL;
- int just_cloned;
- struct submodule_update_strategy update_strategy = { .type = SM_UPDATE_CHECKOUT };
-
- if (argc < 3 || argc > 4)
- die("submodule--helper update-module-clone expects <just-cloned> <path> [<update>]");
-
- just_cloned = git_config_int("just_cloned", argv[1]);
- path = argv[2];
-
- if (argc == 4)
- update = argv[3];
-
- determine_submodule_update_strategy(the_repository,
- just_cloned, path, update,
- &update_strategy);
- fputs(submodule_strategy_to_string(&update_strategy), stdout);
-
- return 0;
-}
-
struct update_clone_data {
const struct submodule *sub;
struct object_id oid;
@@ -1975,27 +1970,13 @@ struct update_clone_data {
};
struct submodule_update_clone {
- /* index into 'list', the list of submodules to look into for cloning */
+ /* index into 'update_data.list', the list of submodules to look into for cloning */
int current;
- struct module_list list;
- unsigned warn_if_uninitialized : 1;
-
- /* update parameter passed via commandline */
- struct submodule_update_strategy update;
/* configuration parameters which are passed on to the children */
- int progress;
- int quiet;
- int recommend_shallow;
- struct string_list references;
- int dissociate;
- unsigned require_init;
- const char *depth;
- const char *recursive_prefix;
- const char *prefix;
- int single_branch;
+ struct update_data *update_data;
- /* to be consumed by git-submodule.sh */
+ /* to be consumed by update_submodule() */
struct update_clone_data *update_clone;
int update_clone_nr; int update_clone_alloc;
@@ -2005,32 +1986,47 @@ struct submodule_update_clone {
/* failed clones to be retried again */
const struct cache_entry **failed_clones;
int failed_clones_nr, failed_clones_alloc;
-
- int max_jobs;
};
-#define SUBMODULE_UPDATE_CLONE_INIT { \
- .list = MODULE_LIST_INIT, \
- .update = SUBMODULE_UPDATE_STRATEGY_INIT, \
- .recommend_shallow = -1, \
- .references = STRING_LIST_INIT_DUP, \
- .single_branch = -1, \
- .max_jobs = 1, \
-}
+#define SUBMODULE_UPDATE_CLONE_INIT { 0 }
struct update_data {
+ const char *prefix;
const char *recursive_prefix;
- const char *sm_path;
const char *displaypath;
- struct object_id oid;
+ const char *update_default;
struct object_id suboid;
+ struct string_list references;
struct submodule_update_strategy update_strategy;
+ struct list_objects_filter_options *filter_options;
+ struct module_list list;
int depth;
- unsigned int force: 1;
- unsigned int quiet: 1;
- unsigned int nofetch: 1;
- unsigned int just_cloned: 1;
+ int max_jobs;
+ int single_branch;
+ int recommend_shallow;
+ unsigned int require_init;
+ unsigned int force;
+ unsigned int quiet;
+ unsigned int nofetch;
+ unsigned int remote;
+ unsigned int progress;
+ unsigned int dissociate;
+ unsigned int init;
+ unsigned int warn_if_uninitialized;
+ unsigned int recursive;
+
+ /* copied over from update_clone_data */
+ struct object_id oid;
+ unsigned int just_cloned;
+ const char *sm_path;
};
-#define UPDATE_DATA_INIT { .update_strategy = SUBMODULE_UPDATE_STRATEGY_INIT }
+#define UPDATE_DATA_INIT { \
+ .update_strategy = SUBMODULE_UPDATE_STRATEGY_INIT, \
+ .list = MODULE_LIST_INIT, \
+ .recommend_shallow = -1, \
+ .references = STRING_LIST_INIT_DUP, \
+ .single_branch = -1, \
+ .max_jobs = 1, \
+}
static void next_submodule_warn_missing(struct submodule_update_clone *suc,
struct strbuf *out, const char *displaypath)
@@ -2039,7 +2035,7 @@ static void next_submodule_warn_missing(struct submodule_update_clone *suc,
* Only mention uninitialized submodules when their
* paths have been specified.
*/
- if (suc->warn_if_uninitialized) {
+ if (suc->update_data->warn_if_uninitialized) {
strbuf_addf(out,
_("Submodule path '%s' not initialized"),
displaypath);
@@ -2071,8 +2067,8 @@ static int prepare_to_clone_next_submodule(const struct cache_entry *ce,
int need_free_url = 0;
if (ce_stage(ce)) {
- if (suc->recursive_prefix)
- strbuf_addf(&sb, "%s/%s", suc->recursive_prefix, ce->name);
+ if (suc->update_data->recursive_prefix)
+ strbuf_addf(&sb, "%s/%s", suc->update_data->recursive_prefix, ce->name);
else
strbuf_addstr(&sb, ce->name);
strbuf_addf(out, _("Skipping unmerged submodule %s"), sb.buf);
@@ -2082,8 +2078,8 @@ static int prepare_to_clone_next_submodule(const struct cache_entry *ce,
sub = submodule_from_path(the_repository, null_oid(), ce->name);
- if (suc->recursive_prefix)
- displaypath = relative_path(suc->recursive_prefix,
+ if (suc->update_data->recursive_prefix)
+ displaypath = relative_path(suc->update_data->recursive_prefix,
ce->name, &displaypath_sb);
else
displaypath = ce->name;
@@ -2101,8 +2097,8 @@ static int prepare_to_clone_next_submodule(const struct cache_entry *ce,
}
free(key);
- if (suc->update.type == SM_UPDATE_NONE
- || (suc->update.type == SM_UPDATE_UNSPECIFIED
+ if (suc->update_data->update_strategy.type == SM_UPDATE_NONE
+ || (suc->update_data->update_strategy.type == SM_UPDATE_UNSPECIFIED
&& update_type == SM_UPDATE_NONE)) {
strbuf_addf(out, _("Skipping submodule '%s'"), displaypath);
strbuf_addch(out, '\n');
@@ -2146,30 +2142,33 @@ static int prepare_to_clone_next_submodule(const struct cache_entry *ce,
child->err = -1;
strvec_push(&child->args, "submodule--helper");
strvec_push(&child->args, "clone");
- if (suc->progress)
+ if (suc->update_data->progress)
strvec_push(&child->args, "--progress");
- if (suc->quiet)
+ if (suc->update_data->quiet)
strvec_push(&child->args, "--quiet");
- if (suc->prefix)
- strvec_pushl(&child->args, "--prefix", suc->prefix, NULL);
- if (suc->recommend_shallow && sub->recommend_shallow == 1)
+ if (suc->update_data->prefix)
+ strvec_pushl(&child->args, "--prefix", suc->update_data->prefix, NULL);
+ if (suc->update_data->recommend_shallow && sub->recommend_shallow == 1)
strvec_push(&child->args, "--depth=1");
- if (suc->require_init)
+ else if (suc->update_data->depth)
+ strvec_pushf(&child->args, "--depth=%d", suc->update_data->depth);
+ if (suc->update_data->filter_options && suc->update_data->filter_options->choice)
+ strvec_pushf(&child->args, "--filter=%s",
+ expand_list_objects_filter_spec(suc->update_data->filter_options));
+ if (suc->update_data->require_init)
strvec_push(&child->args, "--require-init");
strvec_pushl(&child->args, "--path", sub->path, NULL);
strvec_pushl(&child->args, "--name", sub->name, NULL);
strvec_pushl(&child->args, "--url", url, NULL);
- if (suc->references.nr) {
+ if (suc->update_data->references.nr) {
struct string_list_item *item;
- for_each_string_list_item(item, &suc->references)
+ for_each_string_list_item(item, &suc->update_data->references)
strvec_pushl(&child->args, "--reference", item->string, NULL);
}
- if (suc->dissociate)
+ if (suc->update_data->dissociate)
strvec_push(&child->args, "--dissociate");
- if (suc->depth)
- strvec_push(&child->args, suc->depth);
- if (suc->single_branch >= 0)
- strvec_push(&child->args, suc->single_branch ?
+ if (suc->update_data->single_branch >= 0)
+ strvec_push(&child->args, suc->update_data->single_branch ?
"--single-branch" :
"--no-single-branch");
@@ -2191,8 +2190,8 @@ static int update_clone_get_next_task(struct child_process *child,
const struct cache_entry *ce;
int index;
- for (; suc->current < suc->list.nr; suc->current++) {
- ce = suc->list.entries[suc->current];
+ for (; suc->current < suc->update_data->list.nr; suc->current++) {
+ ce = suc->update_data->list.entries[suc->current];
if (prepare_to_clone_next_submodule(ce, child, suc, err)) {
int *p = xmalloc(sizeof(*p));
*p = suc->current;
@@ -2207,7 +2206,7 @@ static int update_clone_get_next_task(struct child_process *child,
* stragglers again, which we can imagine as an extension of the
* entry list.
*/
- index = suc->current - suc->list.nr;
+ index = suc->current - suc->update_data->list.nr;
if (index < suc->failed_clones_nr) {
int *p;
ce = suc->failed_clones[index];
@@ -2252,8 +2251,8 @@ static int update_clone_task_finished(int result,
if (!result)
return 0;
- if (idx < suc->list.nr) {
- ce = suc->list.entries[idx];
+ if (idx < suc->update_data->list.nr) {
+ ce = suc->update_data->list.entries[idx];
strbuf_addf(err, _("Failed to clone '%s'. Retry scheduled"),
ce->name);
strbuf_addch(err, '\n');
@@ -2263,7 +2262,7 @@ static int update_clone_task_finished(int result,
suc->failed_clones[suc->failed_clones_nr++] = ce;
return 0;
} else {
- idx -= suc->list.nr;
+ idx -= suc->update_data->list.nr;
ce = suc->failed_clones[idx];
strbuf_addf(err, _("Failed to clone '%s' a second time, aborting"),
ce->name);
@@ -2327,83 +2326,76 @@ static int fetch_in_submodule(const char *module_path, int depth, int quiet, str
static int run_update_command(struct update_data *ud, int subforce)
{
- struct strvec args = STRVEC_INIT;
- struct strvec child_env = STRVEC_INIT;
+ struct child_process cp = CHILD_PROCESS_INIT;
char *oid = oid_to_hex(&ud->oid);
int must_die_on_failure = 0;
- int git_cmd;
switch (ud->update_strategy.type) {
case SM_UPDATE_CHECKOUT:
- git_cmd = 1;
- strvec_pushl(&args, "checkout", "-q", NULL);
+ cp.git_cmd = 1;
+ strvec_pushl(&cp.args, "checkout", "-q", NULL);
if (subforce)
- strvec_push(&args, "-f");
+ strvec_push(&cp.args, "-f");
break;
case SM_UPDATE_REBASE:
- git_cmd = 1;
- strvec_push(&args, "rebase");
+ cp.git_cmd = 1;
+ strvec_push(&cp.args, "rebase");
if (ud->quiet)
- strvec_push(&args, "--quiet");
+ strvec_push(&cp.args, "--quiet");
must_die_on_failure = 1;
break;
case SM_UPDATE_MERGE:
- git_cmd = 1;
- strvec_push(&args, "merge");
+ cp.git_cmd = 1;
+ strvec_push(&cp.args, "merge");
if (ud->quiet)
- strvec_push(&args, "--quiet");
+ strvec_push(&cp.args, "--quiet");
must_die_on_failure = 1;
break;
case SM_UPDATE_COMMAND:
- git_cmd = 0;
- strvec_push(&args, ud->update_strategy.command);
+ cp.use_shell = 1;
+ strvec_push(&cp.args, ud->update_strategy.command);
must_die_on_failure = 1;
break;
default:
BUG("unexpected update strategy type: %s",
submodule_strategy_to_string(&ud->update_strategy));
}
- strvec_push(&args, oid);
+ strvec_push(&cp.args, oid);
- prepare_submodule_repo_env(&child_env);
- if (run_command_v_opt_cd_env(args.v, git_cmd ? RUN_GIT_CMD : RUN_USING_SHELL,
- ud->sm_path, child_env.v)) {
+ cp.dir = xstrdup(ud->sm_path);
+ prepare_submodule_repo_env(&cp.env_array);
+ if (run_command(&cp)) {
switch (ud->update_strategy.type) {
case SM_UPDATE_CHECKOUT:
- printf(_("Unable to checkout '%s' in submodule path '%s'"),
- oid, ud->displaypath);
+ die_message(_("Unable to checkout '%s' in submodule path '%s'"),
+ oid, ud->displaypath);
break;
case SM_UPDATE_REBASE:
- printf(_("Unable to rebase '%s' in submodule path '%s'"),
- oid, ud->displaypath);
+ die_message(_("Unable to rebase '%s' in submodule path '%s'"),
+ oid, ud->displaypath);
break;
case SM_UPDATE_MERGE:
- printf(_("Unable to merge '%s' in submodule path '%s'"),
- oid, ud->displaypath);
+ die_message(_("Unable to merge '%s' in submodule path '%s'"),
+ oid, ud->displaypath);
break;
case SM_UPDATE_COMMAND:
- printf(_("Execution of '%s %s' failed in submodule path '%s'"),
- ud->update_strategy.command, oid, ud->displaypath);
+ die_message(_("Execution of '%s %s' failed in submodule path '%s'"),
+ ud->update_strategy.command, oid, ud->displaypath);
break;
default:
BUG("unexpected update strategy type: %s",
submodule_strategy_to_string(&ud->update_strategy));
}
- /*
- * NEEDSWORK: We are currently printing to stdout with error
- * return so that the shell caller handles the error output
- * properly. Once we start handling the error messages within
- * C, we should use die() instead.
- */
if (must_die_on_failure)
- return 2;
- /*
- * This signifies to the caller in shell that the command
- * failed without dying
- */
+ exit(128);
+
+ /* the command failed, but update must continue */
return 1;
}
+ if (ud->quiet)
+ return 0;
+
switch (ud->update_strategy.type) {
case SM_UPDATE_CHECKOUT:
printf(_("Submodule path '%s': checked out '%s'\n"),
@@ -2429,7 +2421,7 @@ static int run_update_command(struct update_data *ud, int subforce)
return 0;
}
-static int do_run_update_procedure(struct update_data *ud)
+static int run_update_procedure(struct update_data *ud)
{
int subforce = is_null_oid(&ud->suboid) || ud->force;
@@ -2459,21 +2451,211 @@ static int do_run_update_procedure(struct update_data *ud)
return run_update_command(ud, subforce);
}
-static void update_submodule(struct update_clone_data *ucd)
+static const char *remote_submodule_branch(const char *path)
{
- fprintf(stdout, "dummy %s %d\t%s\n",
- oid_to_hex(&ucd->oid),
- ucd->just_cloned,
- ucd->sub->path);
+ const struct submodule *sub;
+ const char *branch = NULL;
+ char *key;
+
+ sub = submodule_from_path(the_repository, null_oid(), path);
+ if (!sub)
+ return NULL;
+
+ key = xstrfmt("submodule.%s.branch", sub->name);
+ if (repo_config_get_string_tmp(the_repository, key, &branch))
+ branch = sub->branch;
+ free(key);
+
+ if (!branch)
+ return "HEAD";
+
+ if (!strcmp(branch, ".")) {
+ const char *refname = resolve_ref_unsafe("HEAD", 0, NULL, NULL);
+
+ if (!refname)
+ die(_("No such ref: %s"), "HEAD");
+
+ /* detached HEAD */
+ if (!strcmp(refname, "HEAD"))
+ die(_("Submodule (%s) branch configured to inherit "
+ "branch from superproject, but the superproject "
+ "is not on any branch"), sub->name);
+
+ if (!skip_prefix(refname, "refs/heads/", &refname))
+ die(_("Expecting a full ref name, got %s"), refname);
+ return refname;
+ }
+
+ return branch;
}
-static int update_submodules(struct submodule_update_clone *suc)
+static void ensure_core_worktree(const char *path)
{
- int i;
+ const char *cw;
+ struct repository subrepo;
+
+ if (repo_submodule_init(&subrepo, the_repository, path, null_oid()))
+ die(_("could not get a repository handle for submodule '%s'"), path);
+
+ if (!repo_config_get_string_tmp(&subrepo, "core.worktree", &cw)) {
+ char *cfg_file, *abs_path;
+ const char *rel_path;
+ struct strbuf sb = STRBUF_INIT;
+
+ cfg_file = repo_git_path(&subrepo, "config");
+
+ abs_path = absolute_pathdup(path);
+ rel_path = relative_path(abs_path, subrepo.gitdir, &sb);
+
+ git_config_set_in_file(cfg_file, "core.worktree", rel_path);
+
+ free(cfg_file);
+ free(abs_path);
+ strbuf_release(&sb);
+ }
+}
+
+static void update_data_to_args(struct update_data *update_data, struct strvec *args)
+{
+ strvec_pushl(args, "submodule--helper", "update", "--recursive", NULL);
+ strvec_pushf(args, "--jobs=%d", update_data->max_jobs);
+ if (update_data->recursive_prefix)
+ strvec_pushl(args, "--recursive-prefix",
+ update_data->recursive_prefix, NULL);
+ if (update_data->quiet)
+ strvec_push(args, "--quiet");
+ if (update_data->force)
+ strvec_push(args, "--force");
+ if (update_data->init)
+ strvec_push(args, "--init");
+ if (update_data->remote)
+ strvec_push(args, "--remote");
+ if (update_data->nofetch)
+ strvec_push(args, "--no-fetch");
+ if (update_data->dissociate)
+ strvec_push(args, "--dissociate");
+ if (update_data->progress)
+ strvec_push(args, "--progress");
+ if (update_data->require_init)
+ strvec_push(args, "--require-init");
+ if (update_data->depth)
+ strvec_pushf(args, "--depth=%d", update_data->depth);
+ if (update_data->update_default)
+ strvec_pushl(args, "--update", update_data->update_default, NULL);
+ if (update_data->references.nr) {
+ struct string_list_item *item;
+ for_each_string_list_item(item, &update_data->references)
+ strvec_pushl(args, "--reference", item->string, NULL);
+ }
+ if (update_data->filter_options && update_data->filter_options->choice)
+ strvec_pushf(args, "--filter=%s",
+ expand_list_objects_filter_spec(
+ update_data->filter_options));
+ if (update_data->recommend_shallow == 0)
+ strvec_push(args, "--no-recommend-shallow");
+ else if (update_data->recommend_shallow == 1)
+ strvec_push(args, "--recommend-shallow");
+ if (update_data->single_branch >= 0)
+ strvec_push(args, update_data->single_branch ?
+ "--single-branch" :
+ "--no-single-branch");
+}
+
+static int update_submodule(struct update_data *update_data)
+{
+ char *prefixed_path;
+
+ ensure_core_worktree(update_data->sm_path);
+
+ if (update_data->recursive_prefix)
+ prefixed_path = xstrfmt("%s%s", update_data->recursive_prefix,
+ update_data->sm_path);
+ else
+ prefixed_path = xstrdup(update_data->sm_path);
+
+ update_data->displaypath = get_submodule_displaypath(prefixed_path,
+ update_data->prefix);
+ free(prefixed_path);
+
+ determine_submodule_update_strategy(the_repository, update_data->just_cloned,
+ update_data->sm_path, update_data->update_default,
+ &update_data->update_strategy);
+
+ if (update_data->just_cloned)
+ oidcpy(&update_data->suboid, null_oid());
+ else if (resolve_gitlink_ref(update_data->sm_path, "HEAD", &update_data->suboid))
+ die(_("Unable to find current revision in submodule path '%s'"),
+ update_data->displaypath);
+
+ if (update_data->remote) {
+ char *remote_name = get_default_remote_submodule(update_data->sm_path);
+ const char *branch = remote_submodule_branch(update_data->sm_path);
+ char *remote_ref = xstrfmt("refs/remotes/%s/%s", remote_name, branch);
+
+ if (!update_data->nofetch) {
+ if (fetch_in_submodule(update_data->sm_path, update_data->depth,
+ 0, NULL))
+ die(_("Unable to fetch in submodule path '%s'"),
+ update_data->sm_path);
+ }
+
+ if (resolve_gitlink_ref(update_data->sm_path, remote_ref, &update_data->oid))
+ die(_("Unable to find %s revision in submodule path '%s'"),
+ remote_ref, update_data->sm_path);
+
+ free(remote_ref);
+ }
+
+ if (!oideq(&update_data->oid, &update_data->suboid) || update_data->force)
+ if (run_update_procedure(update_data))
+ return 1;
+
+ if (update_data->recursive) {
+ struct child_process cp = CHILD_PROCESS_INIT;
+ struct update_data next = *update_data;
+ int res;
+
+ if (update_data->recursive_prefix)
+ prefixed_path = xstrfmt("%s%s/", update_data->recursive_prefix,
+ update_data->sm_path);
+ else
+ prefixed_path = xstrfmt("%s/", update_data->sm_path);
+
+ next.recursive_prefix = get_submodule_displaypath(prefixed_path,
+ update_data->prefix);
+ next.prefix = NULL;
+ oidcpy(&next.oid, null_oid());
+ oidcpy(&next.suboid, null_oid());
+
+ cp.dir = update_data->sm_path;
+ cp.git_cmd = 1;
+ prepare_submodule_repo_env(&cp.env_array);
+ update_data_to_args(&next, &cp.args);
- run_processes_parallel_tr2(suc->max_jobs, update_clone_get_next_task,
+ /* die() if child process die()'d */
+ res = run_command(&cp);
+ if (!res)
+ return 0;
+ die_message(_("Failed to recurse into submodule path '%s'"),
+ update_data->displaypath);
+ if (res == 128)
+ exit(res);
+ else if (res)
+ return 1;
+ }
+
+ return 0;
+}
+
+static int update_submodules(struct update_data *update_data)
+{
+ int i, res = 0;
+ struct submodule_update_clone suc = SUBMODULE_UPDATE_CLONE_INIT;
+
+ suc.update_data = update_data;
+ run_processes_parallel_tr2(suc.update_data->max_jobs, update_clone_get_next_task,
update_clone_start_failure,
- update_clone_task_finished, suc, "submodule",
+ update_clone_task_finished, &suc, "submodule",
"parallel/update");
/*
@@ -2484,209 +2666,139 @@ static int update_submodules(struct submodule_update_clone *suc)
* checkout involve more straightforward sequential I/O.
* - the listener can avoid doing any work if fetching failed.
*/
- if (suc->quickstop)
- return 1;
+ if (suc.quickstop) {
+ res = 1;
+ goto cleanup;
+ }
- for (i = 0; i < suc->update_clone_nr; i++)
- update_submodule(&suc->update_clone[i]);
+ for (i = 0; i < suc.update_clone_nr; i++) {
+ struct update_clone_data ucd = suc.update_clone[i];
- return 0;
+ oidcpy(&update_data->oid, &ucd.oid);
+ update_data->just_cloned = ucd.just_cloned;
+ update_data->sm_path = ucd.sub->path;
+
+ if (update_submodule(update_data))
+ res = 1;
+ }
+
+cleanup:
+ string_list_clear(&update_data->references, 0);
+ return res;
}
-static int update_clone(int argc, const char **argv, const char *prefix)
+static int module_update(int argc, const char **argv, const char *prefix)
{
- const char *update = NULL;
struct pathspec pathspec;
- struct submodule_update_clone suc = SUBMODULE_UPDATE_CLONE_INIT;
+ struct update_data opt = UPDATE_DATA_INIT;
+ struct list_objects_filter_options filter_options;
+ int ret;
- struct option module_update_clone_options[] = {
- OPT_STRING(0, "prefix", &prefix,
+ struct option module_update_options[] = {
+ OPT__FORCE(&opt.force, N_("force checkout updates"), 0),
+ OPT_BOOL(0, "init", &opt.init,
+ N_("initialize uninitialized submodules before update")),
+ OPT_BOOL(0, "remote", &opt.remote,
+ N_("use SHA-1 of submodule's remote tracking branch")),
+ OPT_BOOL(0, "recursive", &opt.recursive,
+ N_("traverse submodules recursively")),
+ OPT_BOOL('N', "no-fetch", &opt.nofetch,
+ N_("don't fetch new objects from the remote site")),
+ OPT_STRING(0, "prefix", &opt.prefix,
N_("path"),
N_("path into the working tree")),
- OPT_STRING(0, "recursive-prefix", &suc.recursive_prefix,
+ OPT_STRING(0, "recursive-prefix", &opt.recursive_prefix,
N_("path"),
N_("path into the working tree, across nested "
"submodule boundaries")),
- OPT_STRING(0, "update", &update,
+ OPT_STRING(0, "update", &opt.update_default,
N_("string"),
N_("rebase, merge, checkout or none")),
- OPT_STRING_LIST(0, "reference", &suc.references, N_("repo"),
+ OPT_STRING_LIST(0, "reference", &opt.references, N_("repo"),
N_("reference repository")),
- OPT_BOOL(0, "dissociate", &suc.dissociate,
+ OPT_BOOL(0, "dissociate", &opt.dissociate,
N_("use --reference only while cloning")),
- OPT_STRING(0, "depth", &suc.depth, "<depth>",
+ OPT_INTEGER(0, "depth", &opt.depth,
N_("create a shallow clone truncated to the "
"specified number of revisions")),
- OPT_INTEGER('j', "jobs", &suc.max_jobs,
+ OPT_INTEGER('j', "jobs", &opt.max_jobs,
N_("parallel jobs")),
- OPT_BOOL(0, "recommend-shallow", &suc.recommend_shallow,
+ OPT_BOOL(0, "recommend-shallow", &opt.recommend_shallow,
N_("whether the initial clone should follow the shallow recommendation")),
- OPT__QUIET(&suc.quiet, N_("don't print cloning progress")),
- OPT_BOOL(0, "progress", &suc.progress,
+ OPT__QUIET(&opt.quiet, N_("don't print cloning progress")),
+ OPT_BOOL(0, "progress", &opt.progress,
N_("force cloning progress")),
- OPT_BOOL(0, "require-init", &suc.require_init,
+ OPT_BOOL(0, "require-init", &opt.require_init,
N_("disallow cloning into non-empty directory")),
- OPT_BOOL(0, "single-branch", &suc.single_branch,
+ OPT_BOOL(0, "single-branch", &opt.single_branch,
N_("clone only one branch, HEAD or --branch")),
+ OPT_PARSE_LIST_OBJECTS_FILTER(&filter_options),
OPT_END()
};
const char *const git_submodule_helper_usage[] = {
- N_("git submodule--helper update-clone [--prefix=<path>] [<path>...]"),
+ N_("git submodule [--quiet] update"
+ " [--init [--filter=<filter-spec>]] [--remote]"
+ " [-N|--no-fetch] [-f|--force]"
+ " [--checkout|--merge|--rebase]"
+ " [--[no-]recommend-shallow] [--reference <repository>]"
+ " [--recursive] [--[no-]single-branch] [--] [<path>...]"),
NULL
};
- suc.prefix = prefix;
- update_clone_config_from_gitmodules(&suc.max_jobs);
- git_config(git_update_clone_config, &suc.max_jobs);
+ update_clone_config_from_gitmodules(&opt.max_jobs);
+ git_config(git_update_clone_config, &opt.max_jobs);
- argc = parse_options(argc, argv, prefix, module_update_clone_options,
+ memset(&filter_options, 0, sizeof(filter_options));
+ argc = parse_options(argc, argv, prefix, module_update_options,
git_submodule_helper_usage, 0);
- if (update)
- if (parse_submodule_update_strategy(update, &suc.update) < 0)
+ if (filter_options.choice && !opt.init) {
+ usage_with_options(git_submodule_helper_usage,
+ module_update_options);
+ }
+
+ opt.filter_options = &filter_options;
+
+ if (opt.update_default)
+ if (parse_submodule_update_strategy(opt.update_default,
+ &opt.update_strategy) < 0)
die(_("bad value for update parameter"));
- if (module_list_compute(argc, argv, prefix, &pathspec, &suc.list) < 0)
+ if (module_list_compute(argc, argv, prefix, &pathspec, &opt.list) < 0) {
+ list_objects_filter_release(&filter_options);
return 1;
+ }
if (pathspec.nr)
- suc.warn_if_uninitialized = 1;
-
- return update_submodules(&suc);
-}
-
-static int run_update_procedure(int argc, const char **argv, const char *prefix)
-{
- int force = 0, quiet = 0, nofetch = 0, just_cloned = 0;
- char *prefixed_path, *update = NULL;
- struct update_data update_data = UPDATE_DATA_INIT;
-
- struct option options[] = {
- OPT__QUIET(&quiet, N_("suppress output for update by rebase or merge")),
- OPT__FORCE(&force, N_("force checkout updates"), 0),
- OPT_BOOL('N', "no-fetch", &nofetch,
- N_("don't fetch new objects from the remote site")),
- OPT_BOOL(0, "just-cloned", &just_cloned,
- N_("overrides update mode in case the repository is a fresh clone")),
- OPT_INTEGER(0, "depth", &update_data.depth, N_("depth for shallow fetch")),
- OPT_STRING(0, "prefix", &prefix,
- N_("path"),
- N_("path into the working tree")),
- OPT_STRING(0, "update", &update,
- N_("string"),
- N_("rebase, merge, checkout or none")),
- OPT_STRING(0, "recursive-prefix", &update_data.recursive_prefix, N_("path"),
- N_("path into the working tree, across nested "
- "submodule boundaries")),
- OPT_CALLBACK_F(0, "oid", &update_data.oid, N_("sha1"),
- N_("SHA1 expected by superproject"), PARSE_OPT_NONEG,
- parse_opt_object_id),
- OPT_CALLBACK_F(0, "suboid", &update_data.suboid, N_("subsha1"),
- N_("SHA1 of submodule's HEAD"), PARSE_OPT_NONEG,
- parse_opt_object_id),
- OPT_END()
- };
-
- const char *const usage[] = {
- N_("git submodule--helper run-update-procedure [<options>] <path>"),
- NULL
- };
-
- argc = parse_options(argc, argv, prefix, options, usage, 0);
-
- if (argc != 1)
- usage_with_options(usage, options);
-
- update_data.force = !!force;
- update_data.quiet = !!quiet;
- update_data.nofetch = !!nofetch;
- update_data.just_cloned = !!just_cloned;
- update_data.sm_path = argv[0];
-
- if (update_data.recursive_prefix)
- prefixed_path = xstrfmt("%s%s", update_data.recursive_prefix, update_data.sm_path);
- else
- prefixed_path = xstrdup(update_data.sm_path);
-
- update_data.displaypath = get_submodule_displaypath(prefixed_path, prefix);
-
- determine_submodule_update_strategy(the_repository, update_data.just_cloned,
- update_data.sm_path, update,
- &update_data.update_strategy);
-
- free(prefixed_path);
+ opt.warn_if_uninitialized = 1;
- if (!oideq(&update_data.oid, &update_data.suboid) || update_data.force)
- return do_run_update_procedure(&update_data);
+ if (opt.init) {
+ struct module_list list = MODULE_LIST_INIT;
+ struct init_cb info = INIT_CB_INIT;
- return 3;
-}
-
-static int resolve_relative_path(int argc, const char **argv, const char *prefix)
-{
- struct strbuf sb = STRBUF_INIT;
- if (argc != 3)
- die("submodule--helper relative-path takes exactly 2 arguments, got %d", argc);
-
- printf("%s", relative_path(argv[1], argv[2], &sb));
- strbuf_release(&sb);
- return 0;
-}
-
-static const char *remote_submodule_branch(const char *path)
-{
- const struct submodule *sub;
- const char *branch = NULL;
- char *key;
-
- sub = submodule_from_path(the_repository, null_oid(), path);
- if (!sub)
- return NULL;
-
- key = xstrfmt("submodule.%s.branch", sub->name);
- if (repo_config_get_string_tmp(the_repository, key, &branch))
- branch = sub->branch;
- free(key);
-
- if (!branch)
- return "HEAD";
-
- if (!strcmp(branch, ".")) {
- const char *refname = resolve_ref_unsafe("HEAD", 0, NULL, NULL);
+ if (module_list_compute(argc, argv, opt.prefix,
+ &pathspec, &list) < 0)
+ return 1;
- if (!refname)
- die(_("No such ref: %s"), "HEAD");
+ /*
+ * If there are no path args and submodule.active is set then,
+ * by default, only initialize 'active' modules.
+ */
+ if (!argc && git_config_get_value_multi("submodule.active"))
+ module_list_active(&list);
- /* detached HEAD */
- if (!strcmp(refname, "HEAD"))
- die(_("Submodule (%s) branch configured to inherit "
- "branch from superproject, but the superproject "
- "is not on any branch"), sub->name);
+ info.prefix = opt.prefix;
+ info.superprefix = opt.recursive_prefix;
+ if (opt.quiet)
+ info.flags |= OPT_QUIET;
- if (!skip_prefix(refname, "refs/heads/", &refname))
- die(_("Expecting a full ref name, got %s"), refname);
- return refname;
+ for_each_listed_submodule(&list, init_submodule_cb, &info);
}
- return branch;
-}
-
-static int resolve_remote_submodule_branch(int argc, const char **argv,
- const char *prefix)
-{
- const char *ret;
- struct strbuf sb = STRBUF_INIT;
- if (argc != 2)
- die("submodule--helper remote-branch takes exactly one arguments, got %d", argc);
-
- ret = remote_submodule_branch(argv[1]);
- if (!ret)
- die("submodule %s doesn't exist", argv[1]);
-
- printf("%s", ret);
- strbuf_release(&sb);
- return 0;
+ ret = update_submodules(&opt);
+ list_objects_filter_release(&filter_options);
+ return ret;
}
static int push_check(int argc, const char **argv, const char *prefix)
@@ -2766,40 +2878,6 @@ static int push_check(int argc, const char **argv, const char *prefix)
return 0;
}
-static int ensure_core_worktree(int argc, const char **argv, const char *prefix)
-{
- const char *path;
- const char *cw;
- struct repository subrepo;
-
- if (argc != 2)
- BUG("submodule--helper ensure-core-worktree <path>");
-
- path = argv[1];
-
- if (repo_submodule_init(&subrepo, the_repository, path, null_oid()))
- die(_("could not get a repository handle for submodule '%s'"), path);
-
- if (!repo_config_get_string_tmp(&subrepo, "core.worktree", &cw)) {
- char *cfg_file, *abs_path;
- const char *rel_path;
- struct strbuf sb = STRBUF_INIT;
-
- cfg_file = repo_git_path(&subrepo, "config");
-
- abs_path = absolute_pathdup(path);
- rel_path = relative_path(abs_path, subrepo.gitdir, &sb);
-
- git_config_set_in_file(cfg_file, "core.worktree", rel_path);
-
- free(cfg_file);
- free(abs_path);
- strbuf_release(&sb);
- }
-
- return 0;
-}
-
static int absorb_git_dirs(int argc, const char **argv, const char *prefix)
{
int i;
@@ -2883,7 +2961,7 @@ static int module_config(int argc, const char **argv, const char *prefix)
const char *const git_submodule_helper_usage[] = {
N_("git submodule--helper config <name> [<value>]"),
N_("git submodule--helper config --unset <name>"),
- N_("git submodule--helper config --check-writeable"),
+ "git submodule--helper config --check-writeable",
NULL
};
@@ -2984,6 +3062,44 @@ static int module_set_branch(int argc, const char **argv, const char *prefix)
return !!ret;
}
+static int module_create_branch(int argc, const char **argv, const char *prefix)
+{
+ enum branch_track track;
+ int quiet = 0, force = 0, reflog = 0, dry_run = 0;
+
+ struct option options[] = {
+ OPT__QUIET(&quiet, N_("print only error messages")),
+ OPT__FORCE(&force, N_("force creation"), 0),
+ OPT_BOOL(0, "create-reflog", &reflog,
+ N_("create the branch's reflog")),
+ OPT_CALLBACK_F('t', "track", &track, "(direct|inherit)",
+ N_("set branch tracking configuration"),
+ PARSE_OPT_OPTARG,
+ parse_opt_tracking_mode),
+ OPT__DRY_RUN(&dry_run,
+ N_("show whether the branch would be created")),
+ OPT_END()
+ };
+ const char *const usage[] = {
+ N_("git submodule--helper create-branch [-f|--force] [--create-reflog] [-q|--quiet] [-t|--track] [-n|--dry-run] <name> <start-oid> <start-name>"),
+ NULL
+ };
+
+ git_config(git_default_config, NULL);
+ track = git_branch_track;
+ argc = parse_options(argc, argv, prefix, options, usage, 0);
+
+ if (argc != 3)
+ usage_with_options(usage, options);
+
+ if (!quiet && !dry_run)
+ printf_ln(_("creating branch '%s'"), argv[0]);
+
+ create_branches_recursively(the_repository, argv[0], argv[1], argv[2],
+ force, reflog, quiet, track, dry_run);
+ return 0;
+}
+
struct add_data {
const char *prefix;
const char *branch;
@@ -3248,6 +3364,7 @@ static int module_add(int argc, const char **argv, const char *prefix)
{
int force = 0, quiet = 0, progress = 0, dissociate = 0;
struct add_data add_data = ADD_DATA_INIT;
+ char *to_free = NULL;
struct option options[] = {
OPT_STRING('b', "branch", &add_data.branch, N_("branch"),
@@ -3299,7 +3416,8 @@ static int module_add(int argc, const char **argv, const char *prefix)
"of the working tree"));
/* dereference source url relative to parent's url */
- add_data.realrepo = resolve_relative_url(add_data.repo, NULL, 1);
+ to_free = resolve_relative_url(add_data.repo, NULL, 1);
+ add_data.realrepo = to_free;
} else if (is_dir_sep(add_data.repo[0]) || strchr(add_data.repo, ':')) {
add_data.realrepo = add_data.repo;
} else {
@@ -3352,6 +3470,7 @@ static int module_add(int argc, const char **argv, const char *prefix)
}
configure_added_submodule(&add_data);
free(add_data.sm_path);
+ free(to_free);
return 0;
}
@@ -3369,20 +3488,14 @@ static struct cmd_struct commands[] = {
{"name", module_name, 0},
{"clone", module_clone, 0},
{"add", module_add, SUPPORT_SUPER_PREFIX},
- {"update-module-mode", module_update_module_mode, 0},
- {"update-clone", update_clone, 0},
- {"run-update-procedure", run_update_procedure, 0},
- {"ensure-core-worktree", ensure_core_worktree, 0},
- {"relative-path", resolve_relative_path, 0},
+ {"update", module_update, 0},
{"resolve-relative-url-test", resolve_relative_url_test, 0},
{"foreach", module_foreach, SUPPORT_SUPER_PREFIX},
{"init", module_init, SUPPORT_SUPER_PREFIX},
{"status", module_status, SUPPORT_SUPER_PREFIX},
- {"print-default-remote", print_default_remote, 0},
{"sync", module_sync, SUPPORT_SUPER_PREFIX},
{"deinit", module_deinit, 0},
{"summary", module_summary, SUPPORT_SUPER_PREFIX},
- {"remote-branch", resolve_remote_submodule_branch, 0},
{"push-check", push_check, 0},
{"absorb-git-dirs", absorb_git_dirs, SUPPORT_SUPER_PREFIX},
{"is-active", is_active, 0},
@@ -3390,6 +3503,7 @@ static struct cmd_struct commands[] = {
{"config", module_config, 0},
{"set-url", module_set_url, 0},
{"set-branch", module_set_branch, 0},
+ {"create-branch", module_create_branch, 0},
};
int cmd_submodule__helper(int argc, const char **argv, const char *prefix)
diff --git a/builtin/tag.c b/builtin/tag.c
index 47838f942e..75dece0e4f 100644
--- a/builtin/tag.c
+++ b/builtin/tag.c
@@ -20,6 +20,7 @@
#include "oid-array.h"
#include "column.h"
#include "ref-filter.h"
+#include "date.h"
static const char * const git_tag_usage[] = {
N_("git tag [-a | -s | -u <key-id>] [-f] [-m <msg> | -F <file>]\n"
@@ -238,7 +239,7 @@ static int build_tag_object(struct strbuf *buf, int sign, struct object_id *resu
{
if (sign && do_sign(buf) < 0)
return error(_("unable to sign the tag"));
- if (write_object_file(buf->buf, buf->len, tag_type, result) < 0)
+ if (write_object_file(buf->buf, buf->len, OBJ_TAG, result) < 0)
return error(_("unable to write tag file"));
return 0;
}
diff --git a/builtin/unpack-objects.c b/builtin/unpack-objects.c
index 4a9466295b..dbeb0680a5 100644
--- a/builtin/unpack-objects.c
+++ b/builtin/unpack-objects.c
@@ -177,7 +177,7 @@ static void write_cached_object(struct object *obj, struct obj_buffer *obj_buf)
struct object_id oid;
if (write_object_file(obj_buf->buffer, obj_buf->size,
- type_name(obj->type), &oid) < 0)
+ obj->type, &oid) < 0)
die("failed to write object %s", oid_to_hex(&obj->oid));
obj->flags |= FLAG_WRITTEN;
}
@@ -243,7 +243,7 @@ static void write_object(unsigned nr, enum object_type type,
void *buf, unsigned long size)
{
if (!strict) {
- if (write_object_file(buf, size, type_name(type),
+ if (write_object_file(buf, size, type,
&obj_list[nr].oid) < 0)
die("failed to write object");
added_object(nr, type, buf, size);
@@ -251,7 +251,7 @@ static void write_object(unsigned nr, enum object_type type,
obj_list[nr].obj = NULL;
} else if (type == OBJ_BLOB) {
struct blob *blob;
- if (write_object_file(buf, size, type_name(type),
+ if (write_object_file(buf, size, type,
&obj_list[nr].oid) < 0)
die("failed to write object");
added_object(nr, type, buf, size);
@@ -266,7 +266,7 @@ static void write_object(unsigned nr, enum object_type type,
} else {
struct object *obj;
int eaten;
- hash_object_file(the_hash_algo, buf, size, type_name(type),
+ hash_object_file(the_hash_algo, buf, size, type,
&obj_list[nr].oid);
added_object(nr, type, buf, size);
obj = parse_object_buffer(the_repository, &obj_list[nr].oid,
diff --git a/builtin/update-index.c b/builtin/update-index.c
index 187203e8bb..876112abb2 100644
--- a/builtin/update-index.c
+++ b/builtin/update-index.c
@@ -606,7 +606,7 @@ static struct cache_entry *read_one_ent(const char *which,
error("%s: not in %s branch.", path, which);
return NULL;
}
- if (mode == S_IFDIR) {
+ if (!the_index.sparse_index && mode == S_IFDIR) {
if (which)
error("%s: not a blob in %s branch.", path, which);
return NULL;
@@ -743,8 +743,6 @@ static int do_reupdate(int ac, const char **av,
*/
has_head = 0;
redo:
- /* TODO: audit for interaction with sparse-index. */
- ensure_full_index(&the_index);
for (pos = 0; pos < active_nr; pos++) {
const struct cache_entry *ce = active_cache[pos];
struct cache_entry *old = NULL;
@@ -761,6 +759,16 @@ static int do_reupdate(int ac, const char **av,
discard_cache_entry(old);
continue; /* unchanged */
}
+
+ /* At this point, we know the contents of the sparse directory are
+ * modified with respect to HEAD, so we expand the index and restart
+ * to process each path individually
+ */
+ if (S_ISSPARSEDIR(ce->ce_mode)) {
+ ensure_full_index(&the_index);
+ goto redo;
+ }
+
/* Be careful. The working tree may not have the
* path anymore, in which case, under 'allow_remove',
* or worse yet 'allow_replace', active_nr may decrease.
@@ -787,6 +795,17 @@ static int refresh(struct refresh_params *o, unsigned int flag)
setup_work_tree();
read_cache();
*o->has_errors |= refresh_cache(o->flags | flag);
+ if (has_racy_timestamp(&the_index)) {
+ /*
+ * Even if nothing else has changed, updating the file
+ * increases the chance that racy timestamps become
+ * non-racy, helping future run-time performance.
+ * We do that even in case of "errors" returned by
+ * refresh_cache() as these are no actual errors.
+ * cmd_status() does the same.
+ */
+ active_cache_changed |= SOMETHING_CHANGED;
+ }
return 0;
}
@@ -1077,6 +1096,9 @@ int cmd_update_index(int argc, const char **argv, const char *prefix)
git_config(git_default_config, NULL);
+ prepare_repo_settings(r);
+ the_repository->settings.command_requires_full_index = 0;
+
/* we will diagnose later if it turns out that we need to update it */
newfd = hold_locked_index(&lock_file, 0);
if (newfd < 0)
@@ -1214,14 +1236,17 @@ int cmd_update_index(int argc, const char **argv, const char *prefix)
}
if (fsmonitor > 0) {
- if (git_config_get_fsmonitor() == 0)
+ enum fsmonitor_mode fsm_mode = fsm_settings__get_mode(r);
+ if (fsm_mode == FSMONITOR_MODE_DISABLED) {
warning(_("core.fsmonitor is unset; "
"set it if you really want to "
"enable fsmonitor"));
+ }
add_fsmonitor(&the_index);
report(_("fsmonitor enabled"));
} else if (!fsmonitor) {
- if (git_config_get_fsmonitor() == 1)
+ enum fsmonitor_mode fsm_mode = fsm_settings__get_mode(r);
+ if (fsm_mode > FSMONITOR_MODE_DISABLED)
warning(_("core.fsmonitor is set; "
"remove it if you really want to "
"disable fsmonitor"));
diff --git a/builtin/update-server-info.c b/builtin/update-server-info.c
index 4321a34456..880fffec58 100644
--- a/builtin/update-server-info.c
+++ b/builtin/update-server-info.c
@@ -4,7 +4,7 @@
#include "parse-options.h"
static const char * const update_server_info_usage[] = {
- N_("git update-server-info [--force]"),
+ "git update-server-info [--force]",
NULL
};
diff --git a/builtin/worktree.c b/builtin/worktree.c
index 2838254f7f..8b32cd1651 100644
--- a/builtin/worktree.c
+++ b/builtin/worktree.c
@@ -22,6 +22,7 @@ static const char * const worktree_usage[] = {
N_("git worktree move <worktree> <new-path>"),
N_("git worktree prune [<options>]"),
N_("git worktree remove [<options>] <worktree>"),
+ N_("git worktree repair [<path>...]"),
N_("git worktree unlock <path>"),
NULL
};
@@ -236,6 +237,74 @@ static void check_candidate_path(const char *path,
die(_("'%s' is a missing but already registered worktree;\nuse '%s -f' to override, or 'prune' or 'remove' to clear"), path, cmd);
}
+static void copy_sparse_checkout(const char *worktree_git_dir)
+{
+ char *from_file = git_pathdup("info/sparse-checkout");
+ char *to_file = xstrfmt("%s/info/sparse-checkout", worktree_git_dir);
+
+ if (file_exists(from_file)) {
+ if (safe_create_leading_directories(to_file) ||
+ copy_file(to_file, from_file, 0666))
+ error(_("failed to copy '%s' to '%s'; sparse-checkout may not work correctly"),
+ from_file, to_file);
+ }
+
+ free(from_file);
+ free(to_file);
+}
+
+static void copy_filtered_worktree_config(const char *worktree_git_dir)
+{
+ char *from_file = git_pathdup("config.worktree");
+ char *to_file = xstrfmt("%s/config.worktree", worktree_git_dir);
+
+ if (file_exists(from_file)) {
+ struct config_set cs = { { 0 } };
+ const char *core_worktree;
+ int bare;
+
+ if (safe_create_leading_directories(to_file) ||
+ copy_file(to_file, from_file, 0666)) {
+ error(_("failed to copy worktree config from '%s' to '%s'"),
+ from_file, to_file);
+ goto worktree_copy_cleanup;
+ }
+
+ git_configset_init(&cs);
+ git_configset_add_file(&cs, from_file);
+
+ if (!git_configset_get_bool(&cs, "core.bare", &bare) &&
+ bare &&
+ git_config_set_multivar_in_file_gently(
+ to_file, "core.bare", NULL, "true", 0))
+ error(_("failed to unset '%s' in '%s'"),
+ "core.bare", to_file);
+ if (!git_configset_get_value(&cs, "core.worktree", &core_worktree) &&
+ git_config_set_in_file_gently(to_file,
+ "core.worktree", NULL))
+ error(_("failed to unset '%s' in '%s'"),
+ "core.worktree", to_file);
+
+ git_configset_clear(&cs);
+ }
+
+worktree_copy_cleanup:
+ free(from_file);
+ free(to_file);
+}
+
+static int checkout_worktree(const struct add_opts *opts,
+ struct strvec *child_env)
+{
+ struct child_process cp = CHILD_PROCESS_INIT;
+ cp.git_cmd = 1;
+ strvec_pushl(&cp.args, "reset", "--hard", "--no-recurse-submodules", NULL);
+ if (opts->quiet)
+ strvec_push(&cp.args, "--quiet");
+ strvec_pushv(&cp.env_array, child_env->v);
+ return run_command(&cp);
+}
+
static int add_worktree(const char *path, const char *refname,
const struct add_opts *opts)
{
@@ -335,6 +404,21 @@ static int add_worktree(const char *path, const char *refname,
strbuf_addf(&sb, "%s/commondir", sb_repo.buf);
write_file(sb.buf, "../..");
+ /*
+ * If the current worktree has sparse-checkout enabled, then copy
+ * the sparse-checkout patterns from the current worktree.
+ */
+ if (core_apply_sparse_checkout)
+ copy_sparse_checkout(sb_repo.buf);
+
+ /*
+ * If we are using worktree config, then copy all current config
+ * values from the current worktree into the new one, that way the
+ * new worktree behaves the same as this one.
+ */
+ if (repository_format_worktree_config)
+ copy_filtered_worktree_config(sb_repo.buf);
+
strvec_pushf(&child_env, "%s=%s", GIT_DIR_ENVIRONMENT, sb_git.buf);
strvec_pushf(&child_env, "%s=%s", GIT_WORK_TREE_ENVIRONMENT, path);
cp.git_cmd = 1;
@@ -354,17 +438,9 @@ static int add_worktree(const char *path, const char *refname,
if (ret)
goto done;
- if (opts->checkout) {
- struct child_process cp = CHILD_PROCESS_INIT;
- cp.git_cmd = 1;
- strvec_pushl(&cp.args, "reset", "--hard", "--no-recurse-submodules", NULL);
- if (opts->quiet)
- strvec_push(&cp.args, "--quiet");
- strvec_pushv(&cp.env_array, child_env.v);
- ret = run_command(&cp);
- if (ret)
- goto done;
- }
+ if (opts->checkout &&
+ (ret = checkout_worktree(opts, &child_env)))
+ goto done;
is_junk = 0;
FREE_AND_NULL(junk_work_tree);
@@ -382,21 +458,17 @@ done:
* is_junk is cleared, but do return appropriate code when hook fails.
*/
if (!ret && opts->checkout) {
- const char *hook = find_hook("post-checkout");
- if (hook) {
- const char *env[] = { "GIT_DIR", "GIT_WORK_TREE", NULL };
- struct child_process cp = CHILD_PROCESS_INIT;
- cp.no_stdin = 1;
- cp.stdout_to_stderr = 1;
- cp.dir = path;
- strvec_pushv(&cp.env_array, env);
- cp.trace2_hook_name = "post-checkout";
- strvec_pushl(&cp.args, absolute_path(hook),
- oid_to_hex(null_oid()),
- oid_to_hex(&commit->object.oid),
- "1", NULL);
- ret = run_command(&cp);
- }
+ struct run_hooks_opt opt = RUN_HOOKS_OPT_INIT;
+
+ strvec_pushl(&opt.env, "GIT_DIR", "GIT_WORK_TREE", NULL);
+ strvec_pushl(&opt.args,
+ oid_to_hex(null_oid()),
+ oid_to_hex(&commit->object.oid),
+ "1",
+ NULL);
+ opt.dir = path;
+
+ ret = run_hooks_opt("post-checkout", &opt);
}
strvec_clear(&child_env);
@@ -579,35 +651,37 @@ static int add(int ac, const char **av, const char *prefix)
return add_worktree(path, branch, &opts);
}
-static void show_worktree_porcelain(struct worktree *wt)
+static void show_worktree_porcelain(struct worktree *wt, int line_terminator)
{
const char *reason;
- printf("worktree %s\n", wt->path);
+ printf("worktree %s%c", wt->path, line_terminator);
if (wt->is_bare)
- printf("bare\n");
+ printf("bare%c", line_terminator);
else {
- printf("HEAD %s\n", oid_to_hex(&wt->head_oid));
+ printf("HEAD %s%c", oid_to_hex(&wt->head_oid), line_terminator);
if (wt->is_detached)
- printf("detached\n");
+ printf("detached%c", line_terminator);
else if (wt->head_ref)
- printf("branch %s\n", wt->head_ref);
+ printf("branch %s%c", wt->head_ref, line_terminator);
}
reason = worktree_lock_reason(wt);
- if (reason && *reason) {
- struct strbuf sb = STRBUF_INIT;
- quote_c_style(reason, &sb, NULL, 0);
- printf("locked %s\n", sb.buf);
- strbuf_release(&sb);
- } else if (reason)
- printf("locked\n");
+ if (reason) {
+ fputs("locked", stdout);
+ if (*reason) {
+ fputc(' ', stdout);
+ write_name_quoted(reason, stdout, line_terminator);
+ } else {
+ fputc(line_terminator, stdout);
+ }
+ }
reason = worktree_prune_reason(wt, expire);
if (reason)
- printf("prunable %s\n", reason);
+ printf("prunable %s%c", reason, line_terminator);
- printf("\n");
+ fputc(line_terminator, stdout);
}
static void show_worktree(struct worktree *wt, int path_maxlen, int abbrev_len)
@@ -685,12 +759,15 @@ static void pathsort(struct worktree **wt)
static int list(int ac, const char **av, const char *prefix)
{
int porcelain = 0;
+ int line_terminator = '\n';
struct option options[] = {
OPT_BOOL(0, "porcelain", &porcelain, N_("machine-readable output")),
OPT__VERBOSE(&verbose, N_("show extended annotations and reasons, if available")),
OPT_EXPIRY_DATE(0, "expire", &expire,
N_("add 'prunable' annotation to worktrees older than <time>")),
+ OPT_SET_INT('z', NULL, &line_terminator,
+ N_("terminate records with a NUL character"), '\0'),
OPT_END()
};
@@ -700,6 +777,8 @@ static int list(int ac, const char **av, const char *prefix)
usage_with_options(worktree_usage, options);
else if (verbose && porcelain)
die(_("options '%s' and '%s' cannot be used together"), "--verbose", "--porcelain");
+ else if (!line_terminator && !porcelain)
+ die(_("the option '%s' requires '%s'"), "-z", "--porcelain");
else {
struct worktree **worktrees = get_worktrees();
int path_maxlen = 0, abbrev = DEFAULT_ABBREV, i;
@@ -712,7 +791,8 @@ static int list(int ac, const char **av, const char *prefix)
for (i = 0; worktrees[i]; i++) {
if (porcelain)
- show_worktree_porcelain(worktrees[i]);
+ show_worktree_porcelain(worktrees[i],
+ line_terminator);
else
show_worktree(worktrees[i], path_maxlen, abbrev);
}
diff --git a/bulk-checkin.c b/bulk-checkin.c
index 8785b2ac80..6d6c37171c 100644
--- a/bulk-checkin.c
+++ b/bulk-checkin.c
@@ -53,9 +53,10 @@ static void finish_bulk_checkin(struct bulk_checkin_state *state)
unlink(state->pack_tmp_name);
goto clear_exit;
} else if (state->nr_written == 1) {
- finalize_hashfile(state->f, hash, CSUM_HASH_IN_STREAM | CSUM_FSYNC | CSUM_CLOSE);
+ finalize_hashfile(state->f, hash, FSYNC_COMPONENT_PACK,
+ CSUM_HASH_IN_STREAM | CSUM_FSYNC | CSUM_CLOSE);
} else {
- int fd = finalize_hashfile(state->f, hash, 0);
+ int fd = finalize_hashfile(state->f, hash, FSYNC_COMPONENT_PACK, 0);
fixup_pack_header_footer(fd, hash, state->pack_tmp_name,
state->nr_written, hash,
state->offset);
@@ -220,8 +221,8 @@ static int deflate_to_pack(struct bulk_checkin_state *state,
if (seekback == (off_t) -1)
return error("cannot find the current offset");
- header_len = xsnprintf((char *)obuf, sizeof(obuf), "%s %" PRIuMAX,
- type_name(type), (uintmax_t)size) + 1;
+ header_len = format_object_header((char *)obuf, sizeof(obuf),
+ type, size);
the_hash_algo->init_fn(&ctx);
the_hash_algo->update_fn(&ctx, obuf, header_len);
diff --git a/bundle.c b/bundle.c
index a0bb687b0f..d50cfb5aa7 100644
--- a/bundle.c
+++ b/bundle.c
@@ -11,7 +11,7 @@
#include "run-command.h"
#include "refs.h"
#include "strvec.h"
-
+#include "list-objects-filter-options.h"
static const char v2_bundle_signature[] = "# v2 git bundle\n";
static const char v3_bundle_signature[] = "# v3 git bundle\n";
@@ -33,6 +33,7 @@ void bundle_header_release(struct bundle_header *header)
{
string_list_clear(&header->prerequisites, 1);
string_list_clear(&header->references, 1);
+ list_objects_filter_release(&header->filter);
}
static int parse_capability(struct bundle_header *header, const char *capability)
@@ -45,6 +46,10 @@ static int parse_capability(struct bundle_header *header, const char *capability
header->hash_algo = &hash_algos[algo];
return 0;
}
+ if (skip_prefix(capability, "filter=", &arg)) {
+ parse_list_objects_filter(&header->filter, arg);
+ return 0;
+ }
return error(_("unknown capability '%s'"), capability);
}
@@ -220,6 +225,8 @@ int verify_bundle(struct repository *r,
req_nr = revs.pending.nr;
setup_revisions(2, argv, &revs, NULL);
+ list_objects_filter_copy(&revs.filter, &header->filter);
+
if (prepare_revision_walk(&revs))
die(_("revision walk setup failed"));
@@ -255,20 +262,27 @@ int verify_bundle(struct repository *r,
r = &header->references;
printf_ln(Q_("The bundle contains this ref:",
- "The bundle contains these %d refs:",
+ "The bundle contains these %"PRIuMAX" refs:",
r->nr),
- r->nr);
+ (uintmax_t)r->nr);
list_refs(r, 0, NULL);
+
r = &header->prerequisites;
if (!r->nr) {
printf_ln(_("The bundle records a complete history."));
} else {
printf_ln(Q_("The bundle requires this ref:",
- "The bundle requires these %d refs:",
+ "The bundle requires these %"PRIuMAX" refs:",
r->nr),
- r->nr);
+ (uintmax_t)r->nr);
list_refs(r, 0, NULL);
}
+
+ printf_ln("The bundle uses this hash algorithm: %s",
+ header->hash_algo->name);
+ if (header->filter.choice)
+ printf_ln("The bundle uses this filter: %s",
+ list_objects_filter_spec(&header->filter));
}
return ret;
}
@@ -319,6 +333,9 @@ static int write_pack_data(int bundle_fd, struct rev_info *revs, struct strvec *
"--stdout", "--thin", "--delta-base-offset",
NULL);
strvec_pushv(&pack_objects.args, pack_options->v);
+ if (revs->filter.choice)
+ strvec_pushf(&pack_objects.args, "--filter=%s",
+ list_objects_filter_spec(&revs->filter));
pack_objects.in = -1;
pack_objects.out = bundle_fd;
pack_objects.git_cmd = 1;
@@ -486,10 +503,37 @@ int create_bundle(struct repository *r, const char *path,
int bundle_to_stdout;
int ref_count = 0;
struct rev_info revs, revs_copy;
- int min_version = the_hash_algo == &hash_algos[GIT_HASH_SHA1] ? 2 : 3;
+ int min_version = 2;
struct bundle_prerequisites_info bpi;
int i;
+ /* init revs to list objects for pack-objects later */
+ save_commit_buffer = 0;
+ repo_init_revisions(r, &revs, NULL);
+
+ /*
+ * Pre-initialize the '--objects' flag so we can parse a
+ * --filter option successfully.
+ */
+ revs.tree_objects = revs.blob_objects = 1;
+
+ argc = setup_revisions(argc, argv, &revs, NULL);
+
+ /*
+ * Reasons to require version 3:
+ *
+ * 1. @object-format is required because our hash algorithm is not
+ * SHA1.
+ * 2. @filter is required because we parsed an object filter.
+ */
+ if (the_hash_algo != &hash_algos[GIT_HASH_SHA1] || revs.filter.choice)
+ min_version = 3;
+
+ if (argc > 1) {
+ error(_("unrecognized argument: %s"), argv[1]);
+ goto err;
+ }
+
bundle_to_stdout = !strcmp(path, "-");
if (bundle_to_stdout)
bundle_fd = 1;
@@ -512,17 +556,14 @@ int create_bundle(struct repository *r, const char *path,
write_or_die(bundle_fd, capability, strlen(capability));
write_or_die(bundle_fd, the_hash_algo->name, strlen(the_hash_algo->name));
write_or_die(bundle_fd, "\n", 1);
- }
- /* init revs to list objects for pack-objects later */
- save_commit_buffer = 0;
- repo_init_revisions(r, &revs, NULL);
-
- argc = setup_revisions(argc, argv, &revs, NULL);
-
- if (argc > 1) {
- error(_("unrecognized argument: %s"), argv[1]);
- goto err;
+ if (revs.filter.choice) {
+ const char *value = expand_list_objects_filter_spec(&revs.filter);
+ capability = "@filter=";
+ write_or_die(bundle_fd, capability, strlen(capability));
+ write_or_die(bundle_fd, value, strlen(value));
+ write_or_die(bundle_fd, "\n", 1);
+ }
}
/* save revs.pending in revs_copy for later use */
@@ -544,6 +585,12 @@ int create_bundle(struct repository *r, const char *path,
die("revision walk setup failed");
bpi.fd = bundle_fd;
bpi.pending = &revs_copy.pending;
+
+ /*
+ * Remove any object walking here. We only care about commits and
+ * tags here. The revs_copy has the right instances of these values.
+ */
+ revs.blob_objects = revs.tree_objects = 0;
traverse_commit_list(&revs, write_bundle_prerequisites, NULL, &bpi);
object_array_remove_duplicates(&revs_copy.pending);
@@ -574,6 +621,10 @@ int unbundle(struct repository *r, struct bundle_header *header,
struct child_process ip = CHILD_PROCESS_INIT;
strvec_pushl(&ip.args, "index-pack", "--fix-thin", "--stdin", NULL);
+ /* If there is a filter, then we need to create the promisor pack. */
+ if (header->filter.choice)
+ strvec_push(&ip.args, "--promisor=from-bundle");
+
if (extra_index_pack_args) {
strvec_pushv(&ip.args, extra_index_pack_args->v);
strvec_clear(extra_index_pack_args);
diff --git a/bundle.h b/bundle.h
index 06009fe6b1..7fef2108f4 100644
--- a/bundle.h
+++ b/bundle.h
@@ -4,12 +4,14 @@
#include "strvec.h"
#include "cache.h"
#include "string-list.h"
+#include "list-objects-filter-options.h"
struct bundle_header {
unsigned version;
struct string_list prerequisites;
struct string_list references;
const struct git_hash_algo *hash_algo;
+ struct list_objects_filter_options filter;
};
#define BUNDLE_HEADER_INIT \
diff --git a/cache-tree.c b/cache-tree.c
index 65ca993361..6752f69d51 100644
--- a/cache-tree.c
+++ b/cache-tree.c
@@ -432,15 +432,15 @@ static int update_one(struct cache_tree *it,
if (repair) {
struct object_id oid;
hash_object_file(the_hash_algo, buffer.buf, buffer.len,
- tree_type, &oid);
+ OBJ_TREE, &oid);
if (has_object_file_with_flags(&oid, OBJECT_INFO_SKIP_FETCH_OBJECT))
oidcpy(&it->oid, &oid);
else
to_invalidate = 1;
} else if (dryrun) {
hash_object_file(the_hash_algo, buffer.buf, buffer.len,
- tree_type, &it->oid);
- } else if (write_object_file_flags(buffer.buf, buffer.len, tree_type,
+ OBJ_TREE, &it->oid);
+ } else if (write_object_file_flags(buffer.buf, buffer.len, OBJ_TREE,
&it->oid, flags & WRITE_TREE_SILENT
? HASH_SILENT : 0)) {
strbuf_release(&buffer);
@@ -948,7 +948,7 @@ static int verify_one(struct repository *r,
strbuf_addf(&tree_buf, "%o %.*s%c", mode, entlen, name, '\0');
strbuf_add(&tree_buf, oid->hash, r->hash_algo->rawsz);
}
- hash_object_file(r->hash_algo, tree_buf.buf, tree_buf.len, tree_type,
+ hash_object_file(r->hash_algo, tree_buf.buf, tree_buf.len, OBJ_TREE,
&new_oid);
if (!oideq(&new_oid, &it->oid))
BUG("cache-tree for path %.*s does not match. "
diff --git a/cache.h b/cache.h
index 281f00ab1b..595582becc 100644
--- a/cache.h
+++ b/cache.h
@@ -18,7 +18,6 @@
#include "repository.h"
#include "mem-pool.h"
-#include <zlib.h>
typedef struct git_zstream {
z_stream z;
unsigned long avail_in;
@@ -567,7 +566,7 @@ extern char *git_work_tree_cfg;
int is_inside_work_tree(void);
const char *get_git_dir(void);
const char *get_git_common_dir(void);
-char *get_object_directory(void);
+const char *get_object_directory(void);
char *get_index_file(void);
char *get_graft_file(struct repository *r);
void set_git_dir(const char *path, int make_realpath);
@@ -889,6 +888,7 @@ void *read_blob_data_from_index(struct index_state *, const char *, unsigned lon
#define CE_MATCH_IGNORE_FSMONITOR 0X20
int is_racy_timestamp(const struct index_state *istate,
const struct cache_entry *ce);
+int has_racy_timestamp(struct index_state *istate);
int ie_match_stat(struct index_state *, const struct cache_entry *, struct stat *, unsigned int);
int ie_modified(struct index_state *, const struct cache_entry *, struct stat *, unsigned int);
@@ -993,16 +993,65 @@ void reset_shared_repository(void);
extern int read_replace_refs;
extern char *git_replace_ref_base;
+/*
+ * These values are used to help identify parts of a repository to fsync.
+ * FSYNC_COMPONENT_NONE identifies data that will not be a persistent part of the
+ * repository and so shouldn't be fsynced.
+ */
+enum fsync_component {
+ FSYNC_COMPONENT_NONE,
+ FSYNC_COMPONENT_LOOSE_OBJECT = 1 << 0,
+ FSYNC_COMPONENT_PACK = 1 << 1,
+ FSYNC_COMPONENT_PACK_METADATA = 1 << 2,
+ FSYNC_COMPONENT_COMMIT_GRAPH = 1 << 3,
+ FSYNC_COMPONENT_INDEX = 1 << 4,
+ FSYNC_COMPONENT_REFERENCE = 1 << 5,
+};
+
+#define FSYNC_COMPONENTS_OBJECTS (FSYNC_COMPONENT_LOOSE_OBJECT | \
+ FSYNC_COMPONENT_PACK)
+
+#define FSYNC_COMPONENTS_DERIVED_METADATA (FSYNC_COMPONENT_PACK_METADATA | \
+ FSYNC_COMPONENT_COMMIT_GRAPH)
+
+#define FSYNC_COMPONENTS_DEFAULT ((FSYNC_COMPONENTS_OBJECTS | \
+ FSYNC_COMPONENTS_DERIVED_METADATA) & \
+ ~FSYNC_COMPONENT_LOOSE_OBJECT)
+
+#define FSYNC_COMPONENTS_COMMITTED (FSYNC_COMPONENTS_OBJECTS | \
+ FSYNC_COMPONENT_REFERENCE)
+
+#define FSYNC_COMPONENTS_ADDED (FSYNC_COMPONENTS_COMMITTED | \
+ FSYNC_COMPONENT_INDEX)
+
+#define FSYNC_COMPONENTS_ALL (FSYNC_COMPONENT_LOOSE_OBJECT | \
+ FSYNC_COMPONENT_PACK | \
+ FSYNC_COMPONENT_PACK_METADATA | \
+ FSYNC_COMPONENT_COMMIT_GRAPH | \
+ FSYNC_COMPONENT_INDEX | \
+ FSYNC_COMPONENT_REFERENCE)
+
+/*
+ * A bitmask indicating which components of the repo should be fsynced.
+ */
+extern enum fsync_component fsync_components;
extern int fsync_object_files;
extern int use_fsync;
+
+enum fsync_method {
+ FSYNC_METHOD_FSYNC,
+ FSYNC_METHOD_WRITEOUT_ONLY
+};
+
+extern enum fsync_method fsync_method;
extern int core_preload_index;
extern int precomposed_unicode;
extern int protect_hfs;
extern int protect_ntfs;
-extern const char *core_fsmonitor;
extern int core_apply_sparse_checkout;
extern int core_sparse_checkout_cone;
+extern int sparse_expect_files_outside_of_patterns;
/*
* Returns the boolean value of $GIT_OPTIONAL_LOCKS (or the default value).
@@ -1319,9 +1368,23 @@ enum unpack_loose_header_result unpack_loose_header(git_zstream *stream,
struct object_info;
int parse_loose_header(const char *hdr, struct object_info *oi);
+/**
+ * With in-core object data in "buf", rehash it to make sure the
+ * object name actually matches "oid" to detect object corruption.
+ *
+ * A negative value indicates an error, usually that the OID is not
+ * what we expected, but it might also indicate another error.
+ */
int check_object_signature(struct repository *r, const struct object_id *oid,
- void *buf, unsigned long size, const char *type,
- struct object_id *real_oidp);
+ void *map, unsigned long size,
+ enum object_type type);
+
+/**
+ * A streaming version of check_object_signature().
+ * Try reading the object named with "oid" using
+ * the streaming interface and rehash it to do the same.
+ */
+int stream_object_signature(struct repository *r, const struct object_id *oid);
int finalize_object_file(const char *tmpfile, const char *filename);
@@ -1375,6 +1438,7 @@ struct object_context {
#define GET_OID_FOLLOW_SYMLINKS 0100
#define GET_OID_RECORD_PATH 0200
#define GET_OID_ONLY_TO_DIE 04000
+#define GET_OID_REQUIRE_PATH 010000
#define GET_OID_DISAMBIGUATORS \
(GET_OID_COMMIT | GET_OID_COMMITTISH | \
@@ -1547,7 +1611,7 @@ int cache_name_stage_compare(const char *name1, int len1, int stage1, const char
void *read_object_with_reference(struct repository *r,
const struct object_id *oid,
- const char *required_type,
+ enum object_type required_type,
unsigned long *size,
struct object_id *oid_ret);
@@ -1557,48 +1621,6 @@ struct object *repo_peel_to_type(struct repository *r,
#define peel_to_type(name, namelen, obj, type) \
repo_peel_to_type(the_repository, name, namelen, obj, type)
-enum date_mode_type {
- DATE_NORMAL = 0,
- DATE_HUMAN,
- DATE_RELATIVE,
- DATE_SHORT,
- DATE_ISO8601,
- DATE_ISO8601_STRICT,
- DATE_RFC2822,
- DATE_STRFTIME,
- DATE_RAW,
- DATE_UNIX
-};
-
-struct date_mode {
- enum date_mode_type type;
- const char *strftime_fmt;
- int local;
-};
-
-/*
- * Convenience helper for passing a constant type, like:
- *
- * show_date(t, tz, DATE_MODE(NORMAL));
- */
-#define DATE_MODE(t) date_mode_from_type(DATE_##t)
-struct date_mode *date_mode_from_type(enum date_mode_type type);
-
-const char *show_date(timestamp_t time, int timezone, const struct date_mode *mode);
-void show_date_relative(timestamp_t time, struct strbuf *timebuf);
-void show_date_human(timestamp_t time, int tz, const struct timeval *now,
- struct strbuf *timebuf);
-int parse_date(const char *date, struct strbuf *out);
-int parse_date_basic(const char *date, timestamp_t *timestamp, int *offset);
-int parse_expiry_date(const char *date, timestamp_t *timestamp);
-void datestamp(struct strbuf *out);
-#define approxidate(s) approxidate_careful((s), NULL)
-timestamp_t approxidate_careful(const char *, int *);
-timestamp_t approxidate_relative(const char *date);
-void parse_date_format(const char *format, struct date_mode *mode);
-int date_overflows(timestamp_t date);
-time_t tm_to_time_t(const struct tm *tm);
-
#define IDENT_STRICT 1
#define IDENT_NO_DATE 2
#define IDENT_NO_NAME 4
@@ -1645,14 +1667,6 @@ struct ident_split {
int split_ident_line(struct ident_split *, const char *, int);
/*
- * Like show_date, but pull the timestamp and tz parameters from
- * the ident_split. It will also sanity-check the values and produce
- * a well-known sentinel date if they appear bogus.
- */
-const char *show_ident_date(const struct ident_split *id,
- const struct date_mode *mode);
-
-/*
* Compare split idents for equality or strict ordering. Note that we
* compare only the ident part of the line, ignoring any timestamp.
*
@@ -1749,6 +1763,8 @@ int copy_file_with_time(const char *dst, const char *src, int mode);
void write_or_die(int fd, const void *buf, size_t count);
void fsync_or_die(int fd, const char *);
+int fsync_component(enum fsync_component component, int fd);
+void fsync_component_or_die(enum fsync_component component, int fd, const char *msg);
ssize_t read_in_full(int fd, void *buf, size_t count);
ssize_t write_in_full(int fd, const void *buf, size_t count);
diff --git a/ci/lib.sh b/ci/lib.sh
index 9d28ab50fb..86e37da9bc 100755
--- a/ci/lib.sh
+++ b/ci/lib.sh
@@ -122,7 +122,7 @@ then
test macos != "$CI_OS_NAME" || CI_OS_NAME=osx
CI_REPO_SLUG="$GITHUB_REPOSITORY"
CI_JOB_ID="$GITHUB_RUN_ID"
- CC="${CC:-gcc}"
+ CC="${CC_PACKAGE:-${CC:-gcc}}"
DONT_SKIP_TAGS=t
cache_dir="$HOME/none"
@@ -197,7 +197,6 @@ esac
case "$jobname" in
linux32)
CC=gcc
- MAKEFLAGS="$MAKEFLAGS NO_UNCOMPRESS2=1"
;;
linux-musl)
CC=gcc
diff --git a/command-list.txt b/command-list.txt
index 675c28f0bd..9bd6f3c48f 100644
--- a/command-list.txt
+++ b/command-list.txt
@@ -103,6 +103,7 @@ git-grep mainporcelain info
git-gui mainporcelain
git-hash-object plumbingmanipulators
git-help ancillaryinterrogators complete
+git-hook purehelpers
git-http-backend synchingrepositories
git-http-fetch synchelpers
git-http-push synchelpers
diff --git a/commit-graph.c b/commit-graph.c
index 9630e842a7..fd395e699d 100644
--- a/commit-graph.c
+++ b/commit-graph.c
@@ -39,8 +39,8 @@ void git_test_write_commit_graph_or_die(void)
#define GRAPH_CHUNKID_OIDFANOUT 0x4f494446 /* "OIDF" */
#define GRAPH_CHUNKID_OIDLOOKUP 0x4f49444c /* "OIDL" */
#define GRAPH_CHUNKID_DATA 0x43444154 /* "CDAT" */
-#define GRAPH_CHUNKID_GENERATION_DATA 0x47444154 /* "GDAT" */
-#define GRAPH_CHUNKID_GENERATION_DATA_OVERFLOW 0x47444f56 /* "GDOV" */
+#define GRAPH_CHUNKID_GENERATION_DATA 0x47444132 /* "GDA2" */
+#define GRAPH_CHUNKID_GENERATION_DATA_OVERFLOW 0x47444f32 /* "GDO2" */
#define GRAPH_CHUNKID_EXTRAEDGES 0x45444745 /* "EDGE" */
#define GRAPH_CHUNKID_BLOOMINDEXES 0x42494458 /* "BIDX" */
#define GRAPH_CHUNKID_BLOOMDATA 0x42444154 /* "BDAT" */
@@ -407,6 +407,9 @@ struct commit_graph *parse_commit_graph(struct repository *r,
&graph->chunk_generation_data);
pair_chunk(cf, GRAPH_CHUNKID_GENERATION_DATA_OVERFLOW,
&graph->chunk_generation_data_overflow);
+
+ if (graph->chunk_generation_data)
+ graph->read_generation_data = 1;
}
if (r->settings.commit_graph_read_changed_paths) {
@@ -520,10 +523,13 @@ static struct commit_graph *load_commit_graph_chain(struct repository *r,
stat_res = stat(chain_name, &st);
free(chain_name);
- if (!fp ||
- stat_res ||
- st.st_size <= the_hash_algo->hexsz)
+ if (!fp)
+ return NULL;
+ if (stat_res ||
+ st.st_size <= the_hash_algo->hexsz) {
+ fclose(fp);
return NULL;
+ }
count = st.st_size / (the_hash_algo->hexsz + 1);
CALLOC_ARRAY(oids, count);
@@ -803,7 +809,7 @@ static void fill_commit_graph_info(struct commit *item, struct commit_graph *g,
die(_("commit-graph requires overflow generation data but has none"));
offset_pos = offset ^ CORRECTED_COMMIT_DATE_OFFSET_OVERFLOW;
- graph_data->generation = get_be64(g->chunk_generation_data_overflow + 8 * offset_pos);
+ graph_data->generation = item->date + get_be64(g->chunk_generation_data_overflow + 8 * offset_pos);
} else
graph_data->generation = item->date + offset;
} else
@@ -1556,12 +1562,16 @@ static void compute_generation_numbers(struct write_commit_graph_context *ctx)
if (current->date && current->date > max_corrected_commit_date)
max_corrected_commit_date = current->date - 1;
commit_graph_data_at(current)->generation = max_corrected_commit_date + 1;
-
- if (commit_graph_data_at(current)->generation - current->date > GENERATION_NUMBER_V2_OFFSET_MAX)
- ctx->num_generation_data_overflows++;
}
}
}
+
+ for (i = 0; i < ctx->commits.nr; i++) {
+ struct commit *c = ctx->commits.list[i];
+ timestamp_t offset = commit_graph_data_at(c)->generation - c->date;
+ if (offset > GENERATION_NUMBER_V2_OFFSET_MAX)
+ ctx->num_generation_data_overflows++;
+ }
stop_progress(&ctx->progress);
}
@@ -1679,21 +1689,22 @@ int write_commit_graph_reachable(struct object_directory *odb,
}
static int fill_oids_from_packs(struct write_commit_graph_context *ctx,
- struct string_list *pack_indexes)
+ const struct string_list *pack_indexes)
{
uint32_t i;
struct strbuf progress_title = STRBUF_INIT;
struct strbuf packname = STRBUF_INIT;
int dirlen;
+ int ret = 0;
strbuf_addf(&packname, "%s/pack/", ctx->odb->path);
dirlen = packname.len;
if (ctx->report_progress) {
strbuf_addf(&progress_title,
- Q_("Finding commits for commit graph in %d pack",
- "Finding commits for commit graph in %d packs",
+ Q_("Finding commits for commit graph in %"PRIuMAX" pack",
+ "Finding commits for commit graph in %"PRIuMAX" packs",
pack_indexes->nr),
- pack_indexes->nr);
+ (uintmax_t)pack_indexes->nr);
ctx->progress = start_delayed_progress(progress_title.buf, 0);
ctx->progress_done = 0;
}
@@ -1703,12 +1714,12 @@ static int fill_oids_from_packs(struct write_commit_graph_context *ctx,
strbuf_addstr(&packname, pack_indexes->items[i].string);
p = add_packed_git(packname.buf, packname.len, 1);
if (!p) {
- error(_("error adding pack %s"), packname.buf);
- return -1;
+ ret = error(_("error adding pack %s"), packname.buf);
+ goto cleanup;
}
if (open_pack_index(p)) {
- error(_("error opening index for %s"), packname.buf);
- return -1;
+ ret = error(_("error opening index for %s"), packname.buf);
+ goto cleanup;
}
for_each_object_in_pack(p, add_packed_commits, ctx,
FOR_EACH_OBJECT_PACK_ORDER);
@@ -1716,11 +1727,12 @@ static int fill_oids_from_packs(struct write_commit_graph_context *ctx,
free(p);
}
+cleanup:
stop_progress(&ctx->progress);
strbuf_release(&progress_title);
strbuf_release(&packname);
- return 0;
+ return ret;
}
static int fill_oids_from_commits(struct write_commit_graph_context *ctx,
@@ -1852,6 +1864,7 @@ static int write_commit_graph_file(struct write_commit_graph_context *ctx)
hold_lock_file_for_update_mode(&lk, lock_name,
LOCK_DIE_ON_ERROR, 0444);
+ free(lock_name);
fd = git_mkstemp_mode(ctx->graph_name, 0444);
if (fd < 0) {
@@ -1942,7 +1955,8 @@ static int write_commit_graph_file(struct write_commit_graph_context *ctx)
}
close_commit_graph(ctx->r->objects);
- finalize_hashfile(f, file_hash, CSUM_HASH_IN_STREAM | CSUM_FSYNC);
+ finalize_hashfile(f, file_hash, FSYNC_COMPONENT_COMMIT_GRAPH,
+ CSUM_HASH_IN_STREAM | CSUM_FSYNC);
free_chunkfile(cf);
if (ctx->split) {
@@ -1976,6 +1990,7 @@ static int write_commit_graph_file(struct write_commit_graph_context *ctx)
} else {
char *graph_name = get_commit_graph_filename(ctx->odb);
unlink(graph_name);
+ free(graph_name);
}
ctx->commit_graph_hash_after[ctx->num_commit_graphs_after - 1] = xstrdup(hash_to_hex(file_hash));
@@ -2259,7 +2274,7 @@ out:
}
int write_commit_graph(struct object_directory *odb,
- struct string_list *pack_indexes,
+ const struct string_list *const pack_indexes,
struct oidset *commits,
enum commit_graph_write_flags flags,
const struct commit_graph_opts *opts)
diff --git a/commit-graph.h b/commit-graph.h
index 04a94e1830..2e3ac35237 100644
--- a/commit-graph.h
+++ b/commit-graph.h
@@ -142,7 +142,7 @@ int write_commit_graph_reachable(struct object_directory *odb,
enum commit_graph_write_flags flags,
const struct commit_graph_opts *opts);
int write_commit_graph(struct object_directory *odb,
- struct string_list *pack_indexes,
+ const struct string_list *pack_indexes,
struct oidset *commits,
enum commit_graph_write_flags flags,
const struct commit_graph_opts *opts);
diff --git a/commit.c b/commit.c
index a348f085b2..59b6c3e455 100644
--- a/commit.c
+++ b/commit.c
@@ -21,6 +21,7 @@
#include "commit-reach.h"
#include "run-command.h"
#include "shallow.h"
+#include "hook.h"
static struct commit_extra_header *read_commit_extra_header_lines(const char *buf, size_t len, const char **);
@@ -248,6 +249,16 @@ int for_each_commit_graft(each_commit_graft_fn fn, void *cb_data)
return ret;
}
+void reset_commit_grafts(struct repository *r)
+{
+ int i;
+
+ for (i = 0; i < r->parsed_objects->grafts_nr; i++)
+ free(r->parsed_objects->grafts[i]);
+ r->parsed_objects->grafts_nr = 0;
+ r->parsed_objects->commit_graft_prepared = 0;
+}
+
struct commit_buffer {
void *buffer;
unsigned long size;
@@ -1567,7 +1578,7 @@ int commit_tree_extended(const char *msg, size_t msg_len,
goto out;
}
- result = write_object_file(buffer.buf, buffer.len, commit_type, ret);
+ result = write_object_file(buffer.buf, buffer.len, OBJ_COMMIT, ret);
out:
strbuf_release(&buffer);
return result;
@@ -1631,12 +1642,20 @@ struct commit_list **commit_list_append(struct commit *commit,
return &new_commit->next;
}
-const char *find_commit_header(const char *msg, const char *key, size_t *out_len)
+const char *find_header_mem(const char *msg, size_t len,
+ const char *key, size_t *out_len)
{
int key_len = strlen(key);
const char *line = msg;
- while (line) {
+ /*
+ * NEEDSWORK: It's possible for strchrnul() to scan beyond the range
+ * given by len. However, current callers are safe because they compute
+ * len by scanning a NUL-terminated block of memory starting at msg.
+ * Nonetheless, it would be better to ensure the function does not look
+ * at msg beyond the len provided by the caller.
+ */
+ while (line && line < msg + len) {
const char *eol = strchrnul(line, '\n');
if (line == eol)
@@ -1653,6 +1672,10 @@ const char *find_commit_header(const char *msg, const char *key, size_t *out_len
return NULL;
}
+const char *find_commit_header(const char *msg, const char *key, size_t *out_len)
+{
+ return find_header_mem(msg, strlen(msg), key, out_len);
+}
/*
* Inspect the given string and determine the true "end" of the log message, in
* order to find where to put a new Signed-off-by trailer. Ignored are
@@ -1700,24 +1723,25 @@ size_t ignore_non_trailer(const char *buf, size_t len)
}
int run_commit_hook(int editor_is_used, const char *index_file,
- const char *name, ...)
+ int *invoked_hook, const char *name, ...)
{
- struct strvec hook_env = STRVEC_INIT;
+ struct run_hooks_opt opt = RUN_HOOKS_OPT_INIT;
va_list args;
- int ret;
+ const char *arg;
- strvec_pushf(&hook_env, "GIT_INDEX_FILE=%s", index_file);
+ strvec_pushf(&opt.env, "GIT_INDEX_FILE=%s", index_file);
/*
* Let the hook know that no editor will be launched.
*/
if (!editor_is_used)
- strvec_push(&hook_env, "GIT_EDITOR=:");
+ strvec_push(&opt.env, "GIT_EDITOR=:");
va_start(args, name);
- ret = run_hook_ve(hook_env.v, name, args);
+ while ((arg = va_arg(args, const char *)))
+ strvec_push(&opt.args, arg);
va_end(args);
- strvec_clear(&hook_env);
- return ret;
+ opt.invoked_hook = invoked_hook;
+ return run_hooks_opt(name, &opt);
}
diff --git a/commit.h b/commit.h
index 3ea32766bc..21e4d25ce7 100644
--- a/commit.h
+++ b/commit.h
@@ -249,6 +249,7 @@ int commit_graft_pos(struct repository *r, const struct object_id *oid);
int register_commit_graft(struct repository *r, struct commit_graft *, int);
void prepare_commit_graft(struct repository *r);
struct commit_graft *lookup_commit_graft(struct repository *r, const struct object_id *oid);
+void reset_commit_grafts(struct repository *r);
struct commit *get_fork_point(const char *refname, struct commit *commit);
@@ -290,12 +291,17 @@ void free_commit_extra_headers(struct commit_extra_header *extra);
/*
* Search the commit object contents given by "msg" for the header "key".
+ * Reads up to "len" bytes of "msg".
* Returns a pointer to the start of the header contents, or NULL. The length
* of the header, up to the first newline, is returned via out_len.
*
* Note that some headers (like mergetag) may be multi-line. It is the caller's
* responsibility to parse further in this case!
*/
+const char *find_header_mem(const char *msg, size_t len,
+ const char *key,
+ size_t *out_len);
+
const char *find_commit_header(const char *msg, const char *key,
size_t *out_len);
@@ -364,7 +370,8 @@ int compare_commits_by_commit_date(const void *a_, const void *b_, void *unused)
int compare_commits_by_gen_then_commit_date(const void *a_, const void *b_, void *unused);
LAST_ARG_MUST_BE_NULL
-int run_commit_hook(int editor_is_used, const char *index_file, const char *name, ...);
+int run_commit_hook(int editor_is_used, const char *index_file,
+ int *invoked_hook, const char *name, ...);
/* Sign a commit or tag buffer, storing the result in a header. */
int sign_with_header(struct strbuf *buf, const char *keyid);
diff --git a/compat/fsmonitor/fsm-darwin-gcc.h b/compat/fsmonitor/fsm-darwin-gcc.h
new file mode 100644
index 0000000000..1c75c3d48e
--- /dev/null
+++ b/compat/fsmonitor/fsm-darwin-gcc.h
@@ -0,0 +1,92 @@
+#ifndef FSM_DARWIN_GCC_H
+#define FSM_DARWIN_GCC_H
+
+#ifndef __clang__
+/*
+ * It is possible to #include CoreFoundation/CoreFoundation.h when compiling
+ * with clang, but not with GCC as of time of writing.
+ *
+ * See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93082 for details.
+ */
+typedef unsigned int FSEventStreamCreateFlags;
+#define kFSEventStreamEventFlagNone 0x00000000
+#define kFSEventStreamEventFlagMustScanSubDirs 0x00000001
+#define kFSEventStreamEventFlagUserDropped 0x00000002
+#define kFSEventStreamEventFlagKernelDropped 0x00000004
+#define kFSEventStreamEventFlagEventIdsWrapped 0x00000008
+#define kFSEventStreamEventFlagHistoryDone 0x00000010
+#define kFSEventStreamEventFlagRootChanged 0x00000020
+#define kFSEventStreamEventFlagMount 0x00000040
+#define kFSEventStreamEventFlagUnmount 0x00000080
+#define kFSEventStreamEventFlagItemCreated 0x00000100
+#define kFSEventStreamEventFlagItemRemoved 0x00000200
+#define kFSEventStreamEventFlagItemInodeMetaMod 0x00000400
+#define kFSEventStreamEventFlagItemRenamed 0x00000800
+#define kFSEventStreamEventFlagItemModified 0x00001000
+#define kFSEventStreamEventFlagItemFinderInfoMod 0x00002000
+#define kFSEventStreamEventFlagItemChangeOwner 0x00004000
+#define kFSEventStreamEventFlagItemXattrMod 0x00008000
+#define kFSEventStreamEventFlagItemIsFile 0x00010000
+#define kFSEventStreamEventFlagItemIsDir 0x00020000
+#define kFSEventStreamEventFlagItemIsSymlink 0x00040000
+#define kFSEventStreamEventFlagOwnEvent 0x00080000
+#define kFSEventStreamEventFlagItemIsHardlink 0x00100000
+#define kFSEventStreamEventFlagItemIsLastHardlink 0x00200000
+#define kFSEventStreamEventFlagItemCloned 0x00400000
+
+typedef struct __FSEventStream *FSEventStreamRef;
+typedef const FSEventStreamRef ConstFSEventStreamRef;
+
+typedef unsigned int CFStringEncoding;
+#define kCFStringEncodingUTF8 0x08000100
+
+typedef const struct __CFString *CFStringRef;
+typedef const struct __CFArray *CFArrayRef;
+typedef const struct __CFRunLoop *CFRunLoopRef;
+
+struct FSEventStreamContext {
+ long long version;
+ void *cb_data, *retain, *release, *copy_description;
+};
+
+typedef struct FSEventStreamContext FSEventStreamContext;
+typedef unsigned int FSEventStreamEventFlags;
+#define kFSEventStreamCreateFlagNoDefer 0x02
+#define kFSEventStreamCreateFlagWatchRoot 0x04
+#define kFSEventStreamCreateFlagFileEvents 0x10
+
+typedef unsigned long long FSEventStreamEventId;
+#define kFSEventStreamEventIdSinceNow 0xFFFFFFFFFFFFFFFFULL
+
+typedef void (*FSEventStreamCallback)(ConstFSEventStreamRef streamRef,
+ void *context,
+ __SIZE_TYPE__ num_of_events,
+ void *event_paths,
+ const FSEventStreamEventFlags event_flags[],
+ const FSEventStreamEventId event_ids[]);
+typedef double CFTimeInterval;
+FSEventStreamRef FSEventStreamCreate(void *allocator,
+ FSEventStreamCallback callback,
+ FSEventStreamContext *context,
+ CFArrayRef paths_to_watch,
+ FSEventStreamEventId since_when,
+ CFTimeInterval latency,
+ FSEventStreamCreateFlags flags);
+CFStringRef CFStringCreateWithCString(void *allocator, const char *string,
+ CFStringEncoding encoding);
+CFArrayRef CFArrayCreate(void *allocator, const void **items, long long count,
+ void *callbacks);
+void CFRunLoopRun(void);
+void CFRunLoopStop(CFRunLoopRef run_loop);
+CFRunLoopRef CFRunLoopGetCurrent(void);
+extern CFStringRef kCFRunLoopDefaultMode;
+void FSEventStreamScheduleWithRunLoop(FSEventStreamRef stream,
+ CFRunLoopRef run_loop,
+ CFStringRef run_loop_mode);
+unsigned char FSEventStreamStart(FSEventStreamRef stream);
+void FSEventStreamStop(FSEventStreamRef stream);
+void FSEventStreamInvalidate(FSEventStreamRef stream);
+void FSEventStreamRelease(FSEventStreamRef stream);
+
+#endif /* !clang */
+#endif /* FSM_DARWIN_GCC_H */
diff --git a/compat/fsmonitor/fsm-listen-darwin.c b/compat/fsmonitor/fsm-listen-darwin.c
new file mode 100644
index 0000000000..0741fe834c
--- /dev/null
+++ b/compat/fsmonitor/fsm-listen-darwin.c
@@ -0,0 +1,427 @@
+#ifndef __clang__
+#include "fsm-darwin-gcc.h"
+#else
+#include <CoreFoundation/CoreFoundation.h>
+#include <CoreServices/CoreServices.h>
+
+#ifndef AVAILABLE_MAC_OS_X_VERSION_10_13_AND_LATER
+/*
+ * This enum value was added in 10.13 to:
+ *
+ * /Applications/Xcode.app/Contents/Developer/Platforms/ \
+ * MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/ \
+ * Library/Frameworks/CoreServices.framework/Frameworks/ \
+ * FSEvents.framework/Versions/Current/Headers/FSEvents.h
+ *
+ * If we're compiling against an older SDK, this symbol won't be
+ * present. Silently define it here so that we don't have to ifdef
+ * the logging or masking below. This should be harmless since older
+ * versions of macOS won't ever emit this FS event anyway.
+ */
+#define kFSEventStreamEventFlagItemCloned 0x00400000
+#endif
+#endif
+
+#include "cache.h"
+#include "fsmonitor.h"
+#include "fsm-listen.h"
+#include "fsmonitor--daemon.h"
+
+struct fsmonitor_daemon_backend_data
+{
+ CFStringRef cfsr_worktree_path;
+ CFStringRef cfsr_gitdir_path;
+
+ CFArrayRef cfar_paths_to_watch;
+ int nr_paths_watching;
+
+ FSEventStreamRef stream;
+
+ CFRunLoopRef rl;
+
+ enum shutdown_style {
+ SHUTDOWN_EVENT = 0,
+ FORCE_SHUTDOWN,
+ FORCE_ERROR_STOP,
+ } shutdown_style;
+
+ unsigned int stream_scheduled:1;
+ unsigned int stream_started:1;
+};
+
+static void log_flags_set(const char *path, const FSEventStreamEventFlags flag)
+{
+ struct strbuf msg = STRBUF_INIT;
+
+ if (flag & kFSEventStreamEventFlagMustScanSubDirs)
+ strbuf_addstr(&msg, "MustScanSubDirs|");
+ if (flag & kFSEventStreamEventFlagUserDropped)
+ strbuf_addstr(&msg, "UserDropped|");
+ if (flag & kFSEventStreamEventFlagKernelDropped)
+ strbuf_addstr(&msg, "KernelDropped|");
+ if (flag & kFSEventStreamEventFlagEventIdsWrapped)
+ strbuf_addstr(&msg, "EventIdsWrapped|");
+ if (flag & kFSEventStreamEventFlagHistoryDone)
+ strbuf_addstr(&msg, "HistoryDone|");
+ if (flag & kFSEventStreamEventFlagRootChanged)
+ strbuf_addstr(&msg, "RootChanged|");
+ if (flag & kFSEventStreamEventFlagMount)
+ strbuf_addstr(&msg, "Mount|");
+ if (flag & kFSEventStreamEventFlagUnmount)
+ strbuf_addstr(&msg, "Unmount|");
+ if (flag & kFSEventStreamEventFlagItemChangeOwner)
+ strbuf_addstr(&msg, "ItemChangeOwner|");
+ if (flag & kFSEventStreamEventFlagItemCreated)
+ strbuf_addstr(&msg, "ItemCreated|");
+ if (flag & kFSEventStreamEventFlagItemFinderInfoMod)
+ strbuf_addstr(&msg, "ItemFinderInfoMod|");
+ if (flag & kFSEventStreamEventFlagItemInodeMetaMod)
+ strbuf_addstr(&msg, "ItemInodeMetaMod|");
+ if (flag & kFSEventStreamEventFlagItemIsDir)
+ strbuf_addstr(&msg, "ItemIsDir|");
+ if (flag & kFSEventStreamEventFlagItemIsFile)
+ strbuf_addstr(&msg, "ItemIsFile|");
+ if (flag & kFSEventStreamEventFlagItemIsHardlink)
+ strbuf_addstr(&msg, "ItemIsHardlink|");
+ if (flag & kFSEventStreamEventFlagItemIsLastHardlink)
+ strbuf_addstr(&msg, "ItemIsLastHardlink|");
+ if (flag & kFSEventStreamEventFlagItemIsSymlink)
+ strbuf_addstr(&msg, "ItemIsSymlink|");
+ if (flag & kFSEventStreamEventFlagItemModified)
+ strbuf_addstr(&msg, "ItemModified|");
+ if (flag & kFSEventStreamEventFlagItemRemoved)
+ strbuf_addstr(&msg, "ItemRemoved|");
+ if (flag & kFSEventStreamEventFlagItemRenamed)
+ strbuf_addstr(&msg, "ItemRenamed|");
+ if (flag & kFSEventStreamEventFlagItemXattrMod)
+ strbuf_addstr(&msg, "ItemXattrMod|");
+ if (flag & kFSEventStreamEventFlagOwnEvent)
+ strbuf_addstr(&msg, "OwnEvent|");
+ if (flag & kFSEventStreamEventFlagItemCloned)
+ strbuf_addstr(&msg, "ItemCloned|");
+
+ trace_printf_key(&trace_fsmonitor, "fsevent: '%s', flags=%u %s",
+ path, flag, msg.buf);
+
+ strbuf_release(&msg);
+}
+
+static int ef_is_root_delete(const FSEventStreamEventFlags ef)
+{
+ return (ef & kFSEventStreamEventFlagItemIsDir &&
+ ef & kFSEventStreamEventFlagItemRemoved);
+}
+
+static int ef_is_root_renamed(const FSEventStreamEventFlags ef)
+{
+ return (ef & kFSEventStreamEventFlagItemIsDir &&
+ ef & kFSEventStreamEventFlagItemRenamed);
+}
+
+static int ef_is_dropped(const FSEventStreamEventFlags ef)
+{
+ return (ef & kFSEventStreamEventFlagMustScanSubDirs ||
+ ef & kFSEventStreamEventFlagKernelDropped ||
+ ef & kFSEventStreamEventFlagUserDropped);
+}
+
+static void fsevent_callback(ConstFSEventStreamRef streamRef,
+ void *ctx,
+ size_t num_of_events,
+ void *event_paths,
+ const FSEventStreamEventFlags event_flags[],
+ const FSEventStreamEventId event_ids[])
+{
+ struct fsmonitor_daemon_state *state = ctx;
+ struct fsmonitor_daemon_backend_data *data = state->backend_data;
+ char **paths = (char **)event_paths;
+ struct fsmonitor_batch *batch = NULL;
+ struct string_list cookie_list = STRING_LIST_INIT_DUP;
+ const char *path_k;
+ const char *slash;
+ int k;
+ struct strbuf tmp = STRBUF_INIT;
+
+ /*
+ * Build a list of all filesystem changes into a private/local
+ * list and without holding any locks.
+ */
+ for (k = 0; k < num_of_events; k++) {
+ /*
+ * On Mac, we receive an array of absolute paths.
+ */
+ path_k = paths[k];
+
+ /*
+ * If you want to debug FSEvents, log them to GIT_TRACE_FSMONITOR.
+ * Please don't log them to Trace2.
+ *
+ * trace_printf_key(&trace_fsmonitor, "Path: '%s'", path_k);
+ */
+
+ /*
+ * If event[k] is marked as dropped, we assume that we have
+ * lost sync with the filesystem and should flush our cached
+ * data. We need to:
+ *
+ * [1] Abort/wake any client threads waiting for a cookie and
+ * flush the cached state data (the current token), and
+ * create a new token.
+ *
+ * [2] Discard the batch that we were locally building (since
+ * they are conceptually relative to the just flushed
+ * token).
+ */
+ if (ef_is_dropped(event_flags[k])) {
+ if (trace_pass_fl(&trace_fsmonitor))
+ log_flags_set(path_k, event_flags[k]);
+
+ fsmonitor_force_resync(state);
+ fsmonitor_batch__free_list(batch);
+ string_list_clear(&cookie_list, 0);
+
+ /*
+ * We assume that any events that we received
+ * in this callback after this dropped event
+ * may still be valid, so we continue rather
+ * than break. (And just in case there is a
+ * delete of ".git" hiding in there.)
+ */
+ continue;
+ }
+
+ switch (fsmonitor_classify_path_absolute(state, path_k)) {
+
+ case IS_INSIDE_DOT_GIT_WITH_COOKIE_PREFIX:
+ case IS_INSIDE_GITDIR_WITH_COOKIE_PREFIX:
+ /* special case cookie files within .git or gitdir */
+
+ /* Use just the filename of the cookie file. */
+ slash = find_last_dir_sep(path_k);
+ string_list_append(&cookie_list,
+ slash ? slash + 1 : path_k);
+ break;
+
+ case IS_INSIDE_DOT_GIT:
+ case IS_INSIDE_GITDIR:
+ /* ignore all other paths inside of .git or gitdir */
+ break;
+
+ case IS_DOT_GIT:
+ case IS_GITDIR:
+ /*
+ * If .git directory is deleted or renamed away,
+ * we have to quit.
+ */
+ if (ef_is_root_delete(event_flags[k])) {
+ trace_printf_key(&trace_fsmonitor,
+ "event: gitdir removed");
+ goto force_shutdown;
+ }
+ if (ef_is_root_renamed(event_flags[k])) {
+ trace_printf_key(&trace_fsmonitor,
+ "event: gitdir renamed");
+ goto force_shutdown;
+ }
+ break;
+
+ case IS_WORKDIR_PATH:
+ /* try to queue normal pathnames */
+
+ if (trace_pass_fl(&trace_fsmonitor))
+ log_flags_set(path_k, event_flags[k]);
+
+ /*
+ * Because of the implicit "binning" (the
+ * kernel calls us at a given frequency) and
+ * de-duping (the kernel is free to combine
+ * multiple events for a given pathname), an
+ * individual fsevent could be marked as both
+ * a file and directory. Add it to the queue
+ * with both spellings so that the client will
+ * know how much to invalidate/refresh.
+ */
+
+ if (event_flags[k] & kFSEventStreamEventFlagItemIsFile) {
+ const char *rel = path_k +
+ state->path_worktree_watch.len + 1;
+
+ if (!batch)
+ batch = fsmonitor_batch__new();
+ fsmonitor_batch__add_path(batch, rel);
+ }
+
+ if (event_flags[k] & kFSEventStreamEventFlagItemIsDir) {
+ const char *rel = path_k +
+ state->path_worktree_watch.len + 1;
+
+ strbuf_reset(&tmp);
+ strbuf_addstr(&tmp, rel);
+ strbuf_addch(&tmp, '/');
+
+ if (!batch)
+ batch = fsmonitor_batch__new();
+ fsmonitor_batch__add_path(batch, tmp.buf);
+ }
+
+ break;
+
+ case IS_OUTSIDE_CONE:
+ default:
+ trace_printf_key(&trace_fsmonitor,
+ "ignoring '%s'", path_k);
+ break;
+ }
+ }
+
+ fsmonitor_publish(state, batch, &cookie_list);
+ string_list_clear(&cookie_list, 0);
+ strbuf_release(&tmp);
+ return;
+
+force_shutdown:
+ fsmonitor_batch__free_list(batch);
+ string_list_clear(&cookie_list, 0);
+
+ data->shutdown_style = FORCE_SHUTDOWN;
+ CFRunLoopStop(data->rl);
+ strbuf_release(&tmp);
+ return;
+}
+
+/*
+ * In the call to `FSEventStreamCreate()` to setup our watch, the
+ * `latency` argument determines the frequency of calls to our callback
+ * with new FS events. Too slow and events get dropped; too fast and
+ * we burn CPU unnecessarily. Since it is rather obscure, I don't
+ * think this needs to be a config setting. I've done extensive
+ * testing on my systems and chosen the value below. It gives good
+ * results and I've not seen any dropped events.
+ *
+ * With a latency of 0.1, I was seeing lots of dropped events during
+ * the "touch 100000" files test within t/perf/p7519, but with a
+ * latency of 0.001 I did not see any dropped events. So I'm going
+ * to assume that this is the "correct" value.
+ *
+ * https://developer.apple.com/documentation/coreservices/1443980-fseventstreamcreate
+ */
+
+int fsm_listen__ctor(struct fsmonitor_daemon_state *state)
+{
+ FSEventStreamCreateFlags flags = kFSEventStreamCreateFlagNoDefer |
+ kFSEventStreamCreateFlagWatchRoot |
+ kFSEventStreamCreateFlagFileEvents;
+ FSEventStreamContext ctx = {
+ 0,
+ state,
+ NULL,
+ NULL,
+ NULL
+ };
+ struct fsmonitor_daemon_backend_data *data;
+ const void *dir_array[2];
+
+ CALLOC_ARRAY(data, 1);
+ state->backend_data = data;
+
+ data->cfsr_worktree_path = CFStringCreateWithCString(
+ NULL, state->path_worktree_watch.buf, kCFStringEncodingUTF8);
+ dir_array[data->nr_paths_watching++] = data->cfsr_worktree_path;
+
+ if (state->nr_paths_watching > 1) {
+ data->cfsr_gitdir_path = CFStringCreateWithCString(
+ NULL, state->path_gitdir_watch.buf,
+ kCFStringEncodingUTF8);
+ dir_array[data->nr_paths_watching++] = data->cfsr_gitdir_path;
+ }
+
+ data->cfar_paths_to_watch = CFArrayCreate(NULL, dir_array,
+ data->nr_paths_watching,
+ NULL);
+ data->stream = FSEventStreamCreate(NULL, fsevent_callback, &ctx,
+ data->cfar_paths_to_watch,
+ kFSEventStreamEventIdSinceNow,
+ 0.001, flags);
+ if (data->stream == NULL)
+ goto failed;
+
+ /*
+ * `data->rl` needs to be set inside the listener thread.
+ */
+
+ return 0;
+
+failed:
+ error(_("Unable to create FSEventStream."));
+
+ FREE_AND_NULL(state->backend_data);
+ return -1;
+}
+
+void fsm_listen__dtor(struct fsmonitor_daemon_state *state)
+{
+ struct fsmonitor_daemon_backend_data *data;
+
+ if (!state || !state->backend_data)
+ return;
+
+ data = state->backend_data;
+
+ if (data->stream) {
+ if (data->stream_started)
+ FSEventStreamStop(data->stream);
+ if (data->stream_scheduled)
+ FSEventStreamInvalidate(data->stream);
+ FSEventStreamRelease(data->stream);
+ }
+
+ FREE_AND_NULL(state->backend_data);
+}
+
+void fsm_listen__stop_async(struct fsmonitor_daemon_state *state)
+{
+ struct fsmonitor_daemon_backend_data *data;
+
+ data = state->backend_data;
+ data->shutdown_style = SHUTDOWN_EVENT;
+
+ CFRunLoopStop(data->rl);
+}
+
+void fsm_listen__loop(struct fsmonitor_daemon_state *state)
+{
+ struct fsmonitor_daemon_backend_data *data;
+
+ data = state->backend_data;
+
+ data->rl = CFRunLoopGetCurrent();
+
+ FSEventStreamScheduleWithRunLoop(data->stream, data->rl, kCFRunLoopDefaultMode);
+ data->stream_scheduled = 1;
+
+ if (!FSEventStreamStart(data->stream)) {
+ error(_("Failed to start the FSEventStream"));
+ goto force_error_stop_without_loop;
+ }
+ data->stream_started = 1;
+
+ CFRunLoopRun();
+
+ switch (data->shutdown_style) {
+ case FORCE_ERROR_STOP:
+ state->error_code = -1;
+ /* fall thru */
+ case FORCE_SHUTDOWN:
+ ipc_server_stop_async(state->ipc_server_data);
+ /* fall thru */
+ case SHUTDOWN_EVENT:
+ default:
+ break;
+ }
+ return;
+
+force_error_stop_without_loop:
+ state->error_code = -1;
+ ipc_server_stop_async(state->ipc_server_data);
+ return;
+}
diff --git a/compat/fsmonitor/fsm-listen-win32.c b/compat/fsmonitor/fsm-listen-win32.c
new file mode 100644
index 0000000000..5b928ab66e
--- /dev/null
+++ b/compat/fsmonitor/fsm-listen-win32.c
@@ -0,0 +1,586 @@
+#include "cache.h"
+#include "config.h"
+#include "fsmonitor.h"
+#include "fsm-listen.h"
+#include "fsmonitor--daemon.h"
+
+/*
+ * The documentation of ReadDirectoryChangesW() states that the maximum
+ * buffer size is 64K when the monitored directory is remote.
+ *
+ * Larger buffers may be used when the monitored directory is local and
+ * will help us receive events faster from the kernel and avoid dropped
+ * events.
+ *
+ * So we try to use a very large buffer and silently fallback to 64K if
+ * we get an error.
+ */
+#define MAX_RDCW_BUF_FALLBACK (65536)
+#define MAX_RDCW_BUF (65536 * 8)
+
+struct one_watch
+{
+ char buffer[MAX_RDCW_BUF];
+ DWORD buf_len;
+ DWORD count;
+
+ struct strbuf path;
+ HANDLE hDir;
+ HANDLE hEvent;
+ OVERLAPPED overlapped;
+
+ /*
+ * Is there an active ReadDirectoryChangesW() call pending. If so, we
+ * need to later call GetOverlappedResult() and possibly CancelIoEx().
+ */
+ BOOL is_active;
+};
+
+struct fsmonitor_daemon_backend_data
+{
+ struct one_watch *watch_worktree;
+ struct one_watch *watch_gitdir;
+
+ HANDLE hEventShutdown;
+
+ HANDLE hListener[3]; /* we don't own these handles */
+#define LISTENER_SHUTDOWN 0
+#define LISTENER_HAVE_DATA_WORKTREE 1
+#define LISTENER_HAVE_DATA_GITDIR 2
+ int nr_listener_handles;
+};
+
+/*
+ * Convert the WCHAR path from the notification into UTF8 and
+ * then normalize it.
+ */
+static int normalize_path_in_utf8(FILE_NOTIFY_INFORMATION *info,
+ struct strbuf *normalized_path)
+{
+ int reserve;
+ int len = 0;
+
+ strbuf_reset(normalized_path);
+ if (!info->FileNameLength)
+ goto normalize;
+
+ /*
+ * Pre-reserve enough space in the UTF8 buffer for
+ * each Unicode WCHAR character to be mapped into a
+ * sequence of 2 UTF8 characters. That should let us
+ * avoid ERROR_INSUFFICIENT_BUFFER 99.9+% of the time.
+ */
+ reserve = info->FileNameLength + 1;
+ strbuf_grow(normalized_path, reserve);
+
+ for (;;) {
+ len = WideCharToMultiByte(CP_UTF8, 0, info->FileName,
+ info->FileNameLength / sizeof(WCHAR),
+ normalized_path->buf,
+ strbuf_avail(normalized_path) - 1,
+ NULL, NULL);
+ if (len > 0)
+ goto normalize;
+ if (GetLastError() != ERROR_INSUFFICIENT_BUFFER) {
+ error(_("[GLE %ld] could not convert path to UTF-8: '%.*ls'"),
+ GetLastError(),
+ (int)(info->FileNameLength / sizeof(WCHAR)),
+ info->FileName);
+ return -1;
+ }
+
+ strbuf_grow(normalized_path,
+ strbuf_avail(normalized_path) + reserve);
+ }
+
+normalize:
+ strbuf_setlen(normalized_path, len);
+ return strbuf_normalize_path(normalized_path);
+}
+
+void fsm_listen__stop_async(struct fsmonitor_daemon_state *state)
+{
+ SetEvent(state->backend_data->hListener[LISTENER_SHUTDOWN]);
+}
+
+static struct one_watch *create_watch(struct fsmonitor_daemon_state *state,
+ const char *path)
+{
+ struct one_watch *watch = NULL;
+ DWORD desired_access = FILE_LIST_DIRECTORY;
+ DWORD share_mode =
+ FILE_SHARE_WRITE | FILE_SHARE_READ | FILE_SHARE_DELETE;
+ HANDLE hDir;
+ wchar_t wpath[MAX_PATH];
+
+ if (xutftowcs_path(wpath, path) < 0) {
+ error(_("could not convert to wide characters: '%s'"), path);
+ return NULL;
+ }
+
+ hDir = CreateFileW(wpath,
+ desired_access, share_mode, NULL, OPEN_EXISTING,
+ FILE_FLAG_BACKUP_SEMANTICS | FILE_FLAG_OVERLAPPED,
+ NULL);
+ if (hDir == INVALID_HANDLE_VALUE) {
+ error(_("[GLE %ld] could not watch '%s'"),
+ GetLastError(), path);
+ return NULL;
+ }
+
+ CALLOC_ARRAY(watch, 1);
+
+ watch->buf_len = sizeof(watch->buffer); /* assume full MAX_RDCW_BUF */
+
+ strbuf_init(&watch->path, 0);
+ strbuf_addstr(&watch->path, path);
+
+ watch->hDir = hDir;
+ watch->hEvent = CreateEvent(NULL, TRUE, FALSE, NULL);
+
+ return watch;
+}
+
+static void destroy_watch(struct one_watch *watch)
+{
+ if (!watch)
+ return;
+
+ strbuf_release(&watch->path);
+ if (watch->hDir != INVALID_HANDLE_VALUE)
+ CloseHandle(watch->hDir);
+ if (watch->hEvent != INVALID_HANDLE_VALUE)
+ CloseHandle(watch->hEvent);
+
+ free(watch);
+}
+
+static int start_rdcw_watch(struct fsmonitor_daemon_backend_data *data,
+ struct one_watch *watch)
+{
+ DWORD dwNotifyFilter =
+ FILE_NOTIFY_CHANGE_FILE_NAME |
+ FILE_NOTIFY_CHANGE_DIR_NAME |
+ FILE_NOTIFY_CHANGE_ATTRIBUTES |
+ FILE_NOTIFY_CHANGE_SIZE |
+ FILE_NOTIFY_CHANGE_LAST_WRITE |
+ FILE_NOTIFY_CHANGE_CREATION;
+
+ ResetEvent(watch->hEvent);
+
+ memset(&watch->overlapped, 0, sizeof(watch->overlapped));
+ watch->overlapped.hEvent = watch->hEvent;
+
+ /*
+ * Queue an async call using Overlapped IO. This returns immediately.
+ * Our event handle will be signalled when the real result is available.
+ *
+ * The return value here just means that we successfully queued it.
+ * We won't know if the Read...() actually produces data until later.
+ */
+ watch->is_active = ReadDirectoryChangesW(
+ watch->hDir, watch->buffer, watch->buf_len, TRUE,
+ dwNotifyFilter, &watch->count, &watch->overlapped, NULL);
+
+ if (watch->is_active)
+ return 0;
+
+ error(_("ReadDirectoryChangedW failed on '%s' [GLE %ld]"),
+ watch->path.buf, GetLastError());
+ return -1;
+}
+
+static int recv_rdcw_watch(struct one_watch *watch)
+{
+ DWORD gle;
+
+ watch->is_active = FALSE;
+
+ /*
+ * The overlapped result is ready. If the Read...() was successful
+ * we finally receive the actual result into our buffer.
+ */
+ if (GetOverlappedResult(watch->hDir, &watch->overlapped, &watch->count,
+ TRUE))
+ return 0;
+
+ gle = GetLastError();
+ if (gle == ERROR_INVALID_PARAMETER &&
+ /*
+ * The kernel throws an invalid parameter error when our
+ * buffer is too big and we are pointed at a remote
+ * directory (and possibly for other reasons). Quietly
+ * set it down and try again.
+ *
+ * See note about MAX_RDCW_BUF at the top.
+ */
+ watch->buf_len > MAX_RDCW_BUF_FALLBACK) {
+ watch->buf_len = MAX_RDCW_BUF_FALLBACK;
+ return -2;
+ }
+
+ /*
+ * NEEDSWORK: If an external <gitdir> is deleted, the above
+ * returns an error. I'm not sure that there's anything that
+ * we can do here other than failing -- the <worktree>/.git
+ * link file would be broken anyway. We might try to check
+ * for that and return a better error message, but I'm not
+ * sure it is worth it.
+ */
+
+ error(_("GetOverlappedResult failed on '%s' [GLE %ld]"),
+ watch->path.buf, gle);
+ return -1;
+}
+
+static void cancel_rdcw_watch(struct one_watch *watch)
+{
+ DWORD count;
+
+ if (!watch || !watch->is_active)
+ return;
+
+ /*
+ * The calls to ReadDirectoryChangesW() and GetOverlappedResult()
+ * form a "pair" (my term) where we queue an IO and promise to
+ * hang around and wait for the kernel to give us the result.
+ *
+ * If for some reason after we queue the IO, we have to quit
+ * or otherwise not stick around for the second half, we must
+ * tell the kernel to abort the IO. This prevents the kernel
+ * from writing to our buffer and/or signalling our event
+ * after we free them.
+ *
+ * (Ask me how much fun it was to track that one down).
+ */
+ CancelIoEx(watch->hDir, &watch->overlapped);
+ GetOverlappedResult(watch->hDir, &watch->overlapped, &count, TRUE);
+ watch->is_active = FALSE;
+}
+
+/*
+ * Process filesystem events that happen anywhere (recursively) under the
+ * <worktree> root directory. For a normal working directory, this includes
+ * both version controlled files and the contents of the .git/ directory.
+ *
+ * If <worktree>/.git is a file, then we only see events for the file
+ * itself.
+ */
+static int process_worktree_events(struct fsmonitor_daemon_state *state)
+{
+ struct fsmonitor_daemon_backend_data *data = state->backend_data;
+ struct one_watch *watch = data->watch_worktree;
+ struct strbuf path = STRBUF_INIT;
+ struct string_list cookie_list = STRING_LIST_INIT_DUP;
+ struct fsmonitor_batch *batch = NULL;
+ const char *p = watch->buffer;
+
+ /*
+ * If the kernel gets more events than will fit in the kernel
+ * buffer associated with our RDCW handle, it drops them and
+ * returns a count of zero.
+ *
+ * Yes, the call returns WITHOUT error and with length zero.
+ * This is the documented behavior. (My testing has confirmed
+ * that it also sets the last error to ERROR_NOTIFY_ENUM_DIR,
+ * but we do not rely on that since the function did not
+ * return an error and it is not documented.)
+ *
+ * (The "overflow" case is not ambiguous with the "no data" case
+ * because we did an INFINITE wait.)
+ *
+ * This means we have a gap in coverage. Tell the daemon layer
+ * to resync.
+ */
+ if (!watch->count) {
+ trace2_data_string("fsmonitor", NULL, "fsm-listen/kernel",
+ "overflow");
+ fsmonitor_force_resync(state);
+ return LISTENER_HAVE_DATA_WORKTREE;
+ }
+
+ /*
+ * On Windows, `info` contains an "array" of paths that are
+ * relative to the root of whichever directory handle received
+ * the event.
+ */
+ for (;;) {
+ FILE_NOTIFY_INFORMATION *info = (void *)p;
+ const char *slash;
+ enum fsmonitor_path_type t;
+
+ strbuf_reset(&path);
+ if (normalize_path_in_utf8(info, &path) == -1)
+ goto skip_this_path;
+
+ t = fsmonitor_classify_path_workdir_relative(path.buf);
+
+ switch (t) {
+ case IS_INSIDE_DOT_GIT_WITH_COOKIE_PREFIX:
+ /* special case cookie files within .git */
+
+ /* Use just the filename of the cookie file. */
+ slash = find_last_dir_sep(path.buf);
+ string_list_append(&cookie_list,
+ slash ? slash + 1 : path.buf);
+ break;
+
+ case IS_INSIDE_DOT_GIT:
+ /* ignore everything inside of "<worktree>/.git/" */
+ break;
+
+ case IS_DOT_GIT:
+ /* "<worktree>/.git" was deleted (or renamed away) */
+ if ((info->Action == FILE_ACTION_REMOVED) ||
+ (info->Action == FILE_ACTION_RENAMED_OLD_NAME)) {
+ trace2_data_string("fsmonitor", NULL,
+ "fsm-listen/dotgit",
+ "removed");
+ goto force_shutdown;
+ }
+ break;
+
+ case IS_WORKDIR_PATH:
+ /* queue normal pathname */
+ if (!batch)
+ batch = fsmonitor_batch__new();
+ fsmonitor_batch__add_path(batch, path.buf);
+ break;
+
+ case IS_GITDIR:
+ case IS_INSIDE_GITDIR:
+ case IS_INSIDE_GITDIR_WITH_COOKIE_PREFIX:
+ default:
+ BUG("unexpected path classification '%d' for '%s'",
+ t, path.buf);
+ }
+
+skip_this_path:
+ if (!info->NextEntryOffset)
+ break;
+ p += info->NextEntryOffset;
+ }
+
+ fsmonitor_publish(state, batch, &cookie_list);
+ batch = NULL;
+ string_list_clear(&cookie_list, 0);
+ strbuf_release(&path);
+ return LISTENER_HAVE_DATA_WORKTREE;
+
+force_shutdown:
+ fsmonitor_batch__free_list(batch);
+ string_list_clear(&cookie_list, 0);
+ strbuf_release(&path);
+ return LISTENER_SHUTDOWN;
+}
+
+/*
+ * Process filesystem events that happened anywhere (recursively) under the
+ * external <gitdir> (such as non-primary worktrees or submodules).
+ * We only care about cookie files that our client threads created here.
+ *
+ * Note that we DO NOT get filesystem events on the external <gitdir>
+ * itself (it is not inside something that we are watching). In particular,
+ * we do not get an event if the external <gitdir> is deleted.
+ */
+static int process_gitdir_events(struct fsmonitor_daemon_state *state)
+{
+ struct fsmonitor_daemon_backend_data *data = state->backend_data;
+ struct one_watch *watch = data->watch_gitdir;
+ struct strbuf path = STRBUF_INIT;
+ struct string_list cookie_list = STRING_LIST_INIT_DUP;
+ const char *p = watch->buffer;
+
+ if (!watch->count) {
+ trace2_data_string("fsmonitor", NULL, "fsm-listen/kernel",
+ "overflow");
+ fsmonitor_force_resync(state);
+ return LISTENER_HAVE_DATA_GITDIR;
+ }
+
+ for (;;) {
+ FILE_NOTIFY_INFORMATION *info = (void *)p;
+ const char *slash;
+ enum fsmonitor_path_type t;
+
+ strbuf_reset(&path);
+ if (normalize_path_in_utf8(info, &path) == -1)
+ goto skip_this_path;
+
+ t = fsmonitor_classify_path_gitdir_relative(path.buf);
+
+ switch (t) {
+ case IS_INSIDE_GITDIR_WITH_COOKIE_PREFIX:
+ /* special case cookie files within gitdir */
+
+ /* Use just the filename of the cookie file. */
+ slash = find_last_dir_sep(path.buf);
+ string_list_append(&cookie_list,
+ slash ? slash + 1 : path.buf);
+ break;
+
+ case IS_INSIDE_GITDIR:
+ goto skip_this_path;
+
+ default:
+ BUG("unexpected path classification '%d' for '%s'",
+ t, path.buf);
+ }
+
+skip_this_path:
+ if (!info->NextEntryOffset)
+ break;
+ p += info->NextEntryOffset;
+ }
+
+ fsmonitor_publish(state, NULL, &cookie_list);
+ string_list_clear(&cookie_list, 0);
+ strbuf_release(&path);
+ return LISTENER_HAVE_DATA_GITDIR;
+}
+
+void fsm_listen__loop(struct fsmonitor_daemon_state *state)
+{
+ struct fsmonitor_daemon_backend_data *data = state->backend_data;
+ DWORD dwWait;
+ int result;
+
+ state->error_code = 0;
+
+ if (start_rdcw_watch(data, data->watch_worktree) == -1)
+ goto force_error_stop;
+
+ if (data->watch_gitdir &&
+ start_rdcw_watch(data, data->watch_gitdir) == -1)
+ goto force_error_stop;
+
+ for (;;) {
+ dwWait = WaitForMultipleObjects(data->nr_listener_handles,
+ data->hListener,
+ FALSE, INFINITE);
+
+ if (dwWait == WAIT_OBJECT_0 + LISTENER_HAVE_DATA_WORKTREE) {
+ result = recv_rdcw_watch(data->watch_worktree);
+ if (result == -1) {
+ /* hard error */
+ goto force_error_stop;
+ }
+ if (result == -2) {
+ /* retryable error */
+ if (start_rdcw_watch(data, data->watch_worktree) == -1)
+ goto force_error_stop;
+ continue;
+ }
+
+ /* have data */
+ if (process_worktree_events(state) == LISTENER_SHUTDOWN)
+ goto force_shutdown;
+ if (start_rdcw_watch(data, data->watch_worktree) == -1)
+ goto force_error_stop;
+ continue;
+ }
+
+ if (dwWait == WAIT_OBJECT_0 + LISTENER_HAVE_DATA_GITDIR) {
+ result = recv_rdcw_watch(data->watch_gitdir);
+ if (result == -1) {
+ /* hard error */
+ goto force_error_stop;
+ }
+ if (result == -2) {
+ /* retryable error */
+ if (start_rdcw_watch(data, data->watch_gitdir) == -1)
+ goto force_error_stop;
+ continue;
+ }
+
+ /* have data */
+ if (process_gitdir_events(state) == LISTENER_SHUTDOWN)
+ goto force_shutdown;
+ if (start_rdcw_watch(data, data->watch_gitdir) == -1)
+ goto force_error_stop;
+ continue;
+ }
+
+ if (dwWait == WAIT_OBJECT_0 + LISTENER_SHUTDOWN)
+ goto clean_shutdown;
+
+ error(_("could not read directory changes [GLE %ld]"),
+ GetLastError());
+ goto force_error_stop;
+ }
+
+force_error_stop:
+ state->error_code = -1;
+
+force_shutdown:
+ /*
+ * Tell the IPC thead pool to stop (which completes the await
+ * in the main thread (which will also signal this thread (if
+ * we are still alive))).
+ */
+ ipc_server_stop_async(state->ipc_server_data);
+
+clean_shutdown:
+ cancel_rdcw_watch(data->watch_worktree);
+ cancel_rdcw_watch(data->watch_gitdir);
+}
+
+int fsm_listen__ctor(struct fsmonitor_daemon_state *state)
+{
+ struct fsmonitor_daemon_backend_data *data;
+
+ CALLOC_ARRAY(data, 1);
+
+ data->hEventShutdown = CreateEvent(NULL, TRUE, FALSE, NULL);
+
+ data->watch_worktree = create_watch(state,
+ state->path_worktree_watch.buf);
+ if (!data->watch_worktree)
+ goto failed;
+
+ if (state->nr_paths_watching > 1) {
+ data->watch_gitdir = create_watch(state,
+ state->path_gitdir_watch.buf);
+ if (!data->watch_gitdir)
+ goto failed;
+ }
+
+ data->hListener[LISTENER_SHUTDOWN] = data->hEventShutdown;
+ data->nr_listener_handles++;
+
+ data->hListener[LISTENER_HAVE_DATA_WORKTREE] =
+ data->watch_worktree->hEvent;
+ data->nr_listener_handles++;
+
+ if (data->watch_gitdir) {
+ data->hListener[LISTENER_HAVE_DATA_GITDIR] =
+ data->watch_gitdir->hEvent;
+ data->nr_listener_handles++;
+ }
+
+ state->backend_data = data;
+ return 0;
+
+failed:
+ CloseHandle(data->hEventShutdown);
+ destroy_watch(data->watch_worktree);
+ destroy_watch(data->watch_gitdir);
+
+ return -1;
+}
+
+void fsm_listen__dtor(struct fsmonitor_daemon_state *state)
+{
+ struct fsmonitor_daemon_backend_data *data;
+
+ if (!state || !state->backend_data)
+ return;
+
+ data = state->backend_data;
+
+ CloseHandle(data->hEventShutdown);
+ destroy_watch(data->watch_worktree);
+ destroy_watch(data->watch_gitdir);
+
+ FREE_AND_NULL(state->backend_data);
+}
diff --git a/compat/fsmonitor/fsm-listen.h b/compat/fsmonitor/fsm-listen.h
new file mode 100644
index 0000000000..f0539349ba
--- /dev/null
+++ b/compat/fsmonitor/fsm-listen.h
@@ -0,0 +1,49 @@
+#ifndef FSM_LISTEN_H
+#define FSM_LISTEN_H
+
+/* This needs to be implemented by each backend */
+
+#ifdef HAVE_FSMONITOR_DAEMON_BACKEND
+
+struct fsmonitor_daemon_state;
+
+/*
+ * Initialize platform-specific data for the fsmonitor listener thread.
+ * This will be called from the main thread PRIOR to staring the
+ * fsmonitor_fs_listener thread.
+ *
+ * Returns 0 if successful.
+ * Returns -1 otherwise.
+ */
+int fsm_listen__ctor(struct fsmonitor_daemon_state *state);
+
+/*
+ * Cleanup platform-specific data for the fsmonitor listener thread.
+ * This will be called from the main thread AFTER joining the listener.
+ */
+void fsm_listen__dtor(struct fsmonitor_daemon_state *state);
+
+/*
+ * The main body of the platform-specific event loop to watch for
+ * filesystem events. This will run in the fsmonitor_fs_listen thread.
+ *
+ * It should call `ipc_server_stop_async()` if the listener thread
+ * prematurely terminates (because of a filesystem error or if it
+ * detects that the .git directory has been deleted). (It should NOT
+ * do so if the listener thread receives a normal shutdown signal from
+ * the IPC layer.)
+ *
+ * It should set `state->error_code` to -1 if the daemon should exit
+ * with an error.
+ */
+void fsm_listen__loop(struct fsmonitor_daemon_state *state);
+
+/*
+ * Gently request that the fsmonitor listener thread shutdown.
+ * It does not wait for it to stop. The caller should do a JOIN
+ * to wait for it.
+ */
+void fsm_listen__stop_async(struct fsmonitor_daemon_state *state);
+
+#endif /* HAVE_FSMONITOR_DAEMON_BACKEND */
+#endif /* FSM_LISTEN_H */
diff --git a/compat/mingw.c b/compat/mingw.c
index 3b8adf8ed5..5772692a0a 100644
--- a/compat/mingw.c
+++ b/compat/mingw.c
@@ -962,9 +962,11 @@ static inline void time_t_to_filetime(time_t t, FILETIME *ft)
int mingw_utime (const char *file_name, const struct utimbuf *times)
{
FILETIME mft, aft;
- int fh, rc;
+ int rc;
DWORD attrs;
wchar_t wfilename[MAX_PATH];
+ HANDLE osfilehandle;
+
if (xutftowcs_path(wfilename, file_name) < 0)
return -1;
@@ -976,7 +978,17 @@ int mingw_utime (const char *file_name, const struct utimbuf *times)
SetFileAttributesW(wfilename, attrs & ~FILE_ATTRIBUTE_READONLY);
}
- if ((fh = _wopen(wfilename, O_RDWR | O_BINARY)) < 0) {
+ osfilehandle = CreateFileW(wfilename,
+ FILE_WRITE_ATTRIBUTES,
+ 0 /*FileShare.None*/,
+ NULL,
+ OPEN_EXISTING,
+ (attrs != INVALID_FILE_ATTRIBUTES &&
+ (attrs & FILE_ATTRIBUTE_DIRECTORY)) ?
+ FILE_FLAG_BACKUP_SEMANTICS : 0,
+ NULL);
+ if (osfilehandle == INVALID_HANDLE_VALUE) {
+ errno = err_win_to_posix(GetLastError());
rc = -1;
goto revert_attrs;
}
@@ -988,12 +1000,15 @@ int mingw_utime (const char *file_name, const struct utimbuf *times)
GetSystemTimeAsFileTime(&mft);
aft = mft;
}
- if (!SetFileTime((HANDLE)_get_osfhandle(fh), NULL, &aft, &mft)) {
+
+ if (!SetFileTime(osfilehandle, NULL, &aft, &mft)) {
errno = EINVAL;
rc = -1;
} else
rc = 0;
- close(fh);
+
+ if (osfilehandle != INVALID_HANDLE_VALUE)
+ CloseHandle(osfilehandle);
revert_attrs:
if (attrs != INVALID_FILE_ATTRIBUTES &&
diff --git a/compat/mingw.h b/compat/mingw.h
index ffa53a44b0..494cc8de92 100644
--- a/compat/mingw.h
+++ b/compat/mingw.h
@@ -329,6 +329,9 @@ int mingw_getpagesize(void);
#define getpagesize mingw_getpagesize
#endif
+int win32_fsync_no_flush(int fd);
+#define fsync_no_flush win32_fsync_no_flush
+
struct rlimit {
unsigned int rlim_cur;
};
diff --git a/compat/qsort_s.c b/compat/qsort_s.c
index 52d1f0a73d..0f7ff30f5f 100644
--- a/compat/qsort_s.c
+++ b/compat/qsort_s.c
@@ -49,21 +49,15 @@ int git_qsort_s(void *b, size_t n, size_t s,
int (*cmp)(const void *, const void *, void *), void *ctx)
{
const size_t size = st_mult(n, s);
- char buf[1024];
+ char *tmp;
if (!n)
return 0;
if (!b || !cmp)
return -1;
- if (size < sizeof(buf)) {
- /* The temporary array fits on the small on-stack buffer. */
- msort_with_tmp(b, n, s, cmp, buf, ctx);
- } else {
- /* It's somewhat large, so malloc it. */
- char *tmp = xmalloc(size);
- msort_with_tmp(b, n, s, cmp, tmp, ctx);
- free(tmp);
- }
+ tmp = xmalloc(size);
+ msort_with_tmp(b, n, s, cmp, tmp, ctx);
+ free(tmp);
return 0;
}
diff --git a/compat/terminal.c b/compat/terminal.c
index 5b903e7c7e..7db330c52d 100644
--- a/compat/terminal.c
+++ b/compat/terminal.c
@@ -1,4 +1,4 @@
-#include "git-compat-util.h"
+#include "cache.h"
#include "compat/terminal.h"
#include "sigchain.h"
#include "strbuf.h"
@@ -11,7 +11,7 @@
static void restore_term_on_signal(int sig)
{
restore_term();
- sigchain_pop(sig);
+ /* restore_term calls sigchain_pop_common */
raise(sig);
}
@@ -20,55 +20,227 @@ static void restore_term_on_signal(int sig)
#define INPUT_PATH "/dev/tty"
#define OUTPUT_PATH "/dev/tty"
+static volatile sig_atomic_t term_fd_needs_closing;
static int term_fd = -1;
static struct termios old_term;
+static const char *background_resume_msg;
+static const char *restore_error_msg;
+static volatile sig_atomic_t ttou_received;
+
+/* async safe error function for use by signal handlers. */
+static void write_err(const char *msg)
+{
+ write_in_full(2, "error: ", strlen("error: "));
+ write_in_full(2, msg, strlen(msg));
+ write_in_full(2, "\n", 1);
+}
+
+static void print_background_resume_msg(int signo)
+{
+ int saved_errno = errno;
+ sigset_t mask;
+ struct sigaction old_sa;
+ struct sigaction sa = { .sa_handler = SIG_DFL };
+
+ ttou_received = 1;
+ write_err(background_resume_msg);
+ sigaction(signo, &sa, &old_sa);
+ raise(signo);
+ sigemptyset(&mask);
+ sigaddset(&mask, signo);
+ sigprocmask(SIG_UNBLOCK, &mask, NULL);
+ /* Stopped here */
+ sigprocmask(SIG_BLOCK, &mask, NULL);
+ sigaction(signo, &old_sa, NULL);
+ errno = saved_errno;
+}
+
+static void restore_terminal_on_suspend(int signo)
+{
+ int saved_errno = errno;
+ int res;
+ struct termios t;
+ sigset_t mask;
+ struct sigaction old_sa;
+ struct sigaction sa = { .sa_handler = SIG_DFL };
+ int can_restore = 1;
+
+ if (tcgetattr(term_fd, &t) < 0)
+ can_restore = 0;
+
+ if (tcsetattr(term_fd, TCSAFLUSH, &old_term) < 0)
+ write_err(restore_error_msg);
+
+ sigaction(signo, &sa, &old_sa);
+ raise(signo);
+ sigemptyset(&mask);
+ sigaddset(&mask, signo);
+ sigprocmask(SIG_UNBLOCK, &mask, NULL);
+ /* Stopped here */
+ sigprocmask(SIG_BLOCK, &mask, NULL);
+ sigaction(signo, &old_sa, NULL);
+ if (!can_restore) {
+ write_err(restore_error_msg);
+ goto out;
+ }
+ /*
+ * If we resume in the background then we receive SIGTTOU when calling
+ * tcsetattr() below. Set up a handler to print an error message in that
+ * case.
+ */
+ sigemptyset(&mask);
+ sigaddset(&mask, SIGTTOU);
+ sa.sa_mask = old_sa.sa_mask;
+ sa.sa_handler = print_background_resume_msg;
+ sa.sa_flags = SA_RESTART;
+ sigaction(SIGTTOU, &sa, &old_sa);
+ again:
+ ttou_received = 0;
+ sigprocmask(SIG_UNBLOCK, &mask, NULL);
+ res = tcsetattr(term_fd, TCSAFLUSH, &t);
+ sigprocmask(SIG_BLOCK, &mask, NULL);
+ if (ttou_received)
+ goto again;
+ else if (res < 0)
+ write_err(restore_error_msg);
+ sigaction(SIGTTOU, &old_sa, NULL);
+ out:
+ errno = saved_errno;
+}
+
+static void reset_job_signals(void)
+{
+ if (restore_error_msg) {
+ signal(SIGTTIN, SIG_DFL);
+ signal(SIGTTOU, SIG_DFL);
+ signal(SIGTSTP, SIG_DFL);
+ restore_error_msg = NULL;
+ background_resume_msg = NULL;
+ }
+}
+
+static void close_term_fd(void)
+{
+ if (term_fd_needs_closing)
+ close(term_fd);
+ term_fd_needs_closing = 0;
+ term_fd = -1;
+}
+
void restore_term(void)
{
if (term_fd < 0)
return;
tcsetattr(term_fd, TCSAFLUSH, &old_term);
- close(term_fd);
- term_fd = -1;
+ close_term_fd();
+ sigchain_pop_common();
+ reset_job_signals();
}
-int save_term(int full_duplex)
+int save_term(enum save_term_flags flags)
{
+ struct sigaction sa;
+
if (term_fd < 0)
- term_fd = open("/dev/tty", O_RDWR);
+ term_fd = ((flags & SAVE_TERM_STDIN)
+ ? 0
+ : open("/dev/tty", O_RDWR));
+ if (term_fd < 0)
+ return -1;
+ term_fd_needs_closing = !(flags & SAVE_TERM_STDIN);
+ if (tcgetattr(term_fd, &old_term) < 0) {
+ close_term_fd();
+ return -1;
+ }
+ sigchain_push_common(restore_term_on_signal);
+ /*
+ * If job control is disabled then the shell will have set the
+ * disposition of SIGTSTP to SIG_IGN.
+ */
+ sigaction(SIGTSTP, NULL, &sa);
+ if (sa.sa_handler == SIG_IGN)
+ return 0;
+
+ /* avoid calling gettext() from signal handler */
+ background_resume_msg = _("cannot resume in the background, please use 'fg' to resume");
+ restore_error_msg = _("cannot restore terminal settings");
+ sa.sa_handler = restore_terminal_on_suspend;
+ sa.sa_flags = SA_RESTART;
+ sigemptyset(&sa.sa_mask);
+ sigaddset(&sa.sa_mask, SIGTSTP);
+ sigaddset(&sa.sa_mask, SIGTTIN);
+ sigaddset(&sa.sa_mask, SIGTTOU);
+ sigaction(SIGTSTP, &sa, NULL);
+ sigaction(SIGTTIN, &sa, NULL);
+ sigaction(SIGTTOU, &sa, NULL);
- return (term_fd < 0) ? -1 : tcgetattr(term_fd, &old_term);
+ return 0;
}
-static int disable_bits(tcflag_t bits)
+static int disable_bits(enum save_term_flags flags, tcflag_t bits)
{
struct termios t;
- if (save_term(0) < 0)
- goto error;
+ if (save_term(flags) < 0)
+ return -1;
t = old_term;
- sigchain_push_common(restore_term_on_signal);
t.c_lflag &= ~bits;
+ if (bits & ICANON) {
+ t.c_cc[VMIN] = 1;
+ t.c_cc[VTIME] = 0;
+ }
if (!tcsetattr(term_fd, TCSAFLUSH, &t))
return 0;
-error:
- close(term_fd);
- term_fd = -1;
+ sigchain_pop_common();
+ reset_job_signals();
+ close_term_fd();
return -1;
}
-static int disable_echo(void)
+static int disable_echo(enum save_term_flags flags)
{
- return disable_bits(ECHO);
+ return disable_bits(flags, ECHO);
}
-static int enable_non_canonical(void)
+static int enable_non_canonical(enum save_term_flags flags)
{
- return disable_bits(ICANON | ECHO);
+ return disable_bits(flags, ICANON | ECHO);
+}
+
+/*
+ * On macos it is not possible to use poll() with a terminal so use select
+ * instead.
+ */
+static int getchar_with_timeout(int timeout)
+{
+ struct timeval tv, *tvp = NULL;
+ fd_set readfds;
+ int res;
+
+ again:
+ if (timeout >= 0) {
+ tv.tv_sec = timeout / 1000;
+ tv.tv_usec = (timeout % 1000) * 1000;
+ tvp = &tv;
+ }
+
+ FD_ZERO(&readfds);
+ FD_SET(0, &readfds);
+ res = select(1, &readfds, NULL, NULL, tvp);
+ if (!res)
+ return EOF;
+ if (res < 0) {
+ if (errno == EINTR)
+ goto again;
+ else
+ return EOF;
+ }
+ return getchar();
}
#elif defined(GIT_WINDOWS_NATIVE)
@@ -100,6 +272,8 @@ void restore_term(void)
return;
}
+ sigchain_pop_common();
+
if (hconin == INVALID_HANDLE_VALUE)
return;
@@ -114,7 +288,7 @@ void restore_term(void)
hconin = hconout = INVALID_HANDLE_VALUE;
}
-int save_term(int full_duplex)
+int save_term(enum save_term_flags flags)
{
hconin = CreateFileA("CONIN$", GENERIC_READ | GENERIC_WRITE,
FILE_SHARE_READ, NULL, OPEN_EXISTING,
@@ -122,7 +296,7 @@ int save_term(int full_duplex)
if (hconin == INVALID_HANDLE_VALUE)
return -1;
- if (full_duplex) {
+ if (flags & SAVE_TERM_DUPLEX) {
hconout = CreateFileA("CONOUT$", GENERIC_READ | GENERIC_WRITE,
FILE_SHARE_WRITE, NULL, OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL, NULL);
@@ -134,6 +308,7 @@ int save_term(int full_duplex)
GetConsoleMode(hconin, &cmode_in);
use_stty = 0;
+ sigchain_push_common(restore_term_on_signal);
return 0;
error:
CloseHandle(hconin);
@@ -141,7 +316,7 @@ error:
return -1;
}
-static int disable_bits(DWORD bits)
+static int disable_bits(enum save_term_flags flags, DWORD bits)
{
if (use_stty) {
struct child_process cp = CHILD_PROCESS_INIT;
@@ -150,7 +325,11 @@ static int disable_bits(DWORD bits)
if (bits & ENABLE_LINE_INPUT) {
string_list_append(&stty_restore, "icanon");
- strvec_push(&cp.args, "-icanon");
+ /*
+ * POSIX allows VMIN and VTIME to overlap with VEOF and
+ * VEOL - let's hope that is not the case on windows.
+ */
+ strvec_pushl(&cp.args, "-icanon", "min", "1", "time", "0", NULL);
}
if (bits & ENABLE_ECHO_INPUT) {
@@ -174,27 +353,28 @@ static int disable_bits(DWORD bits)
use_stty = 0;
}
- if (save_term(0) < 0)
+ if (save_term(flags) < 0)
return -1;
- sigchain_push_common(restore_term_on_signal);
if (!SetConsoleMode(hconin, cmode_in & ~bits)) {
CloseHandle(hconin);
hconin = INVALID_HANDLE_VALUE;
+ sigchain_pop_common();
return -1;
}
return 0;
}
-static int disable_echo(void)
+static int disable_echo(enum save_term_flags flags)
{
- return disable_bits(ENABLE_ECHO_INPUT);
+ return disable_bits(flags, ENABLE_ECHO_INPUT);
}
-static int enable_non_canonical(void)
+static int enable_non_canonical(enum save_term_flags flags)
{
- return disable_bits(ENABLE_ECHO_INPUT | ENABLE_LINE_INPUT | ENABLE_PROCESSED_INPUT);
+ return disable_bits(flags,
+ ENABLE_ECHO_INPUT | ENABLE_LINE_INPUT | ENABLE_PROCESSED_INPUT);
}
/*
@@ -228,6 +408,16 @@ static int mingw_getchar(void)
}
#define getchar mingw_getchar
+static int getchar_with_timeout(int timeout)
+{
+ struct pollfd pfd = { .fd = 0, .events = POLLIN };
+
+ if (poll(&pfd, 1, timeout) < 1)
+ return EOF;
+
+ return getchar();
+}
+
#endif
#ifndef FORCE_TEXT
@@ -250,7 +440,7 @@ char *git_terminal_prompt(const char *prompt, int echo)
return NULL;
}
- if (!echo && disable_echo()) {
+ if (!echo && disable_echo(0)) {
fclose(input_fh);
fclose(output_fh);
return NULL;
@@ -344,7 +534,7 @@ int read_key_without_echo(struct strbuf *buf)
static int warning_displayed;
int ch;
- if (warning_displayed || enable_non_canonical() < 0) {
+ if (warning_displayed || enable_non_canonical(SAVE_TERM_STDIN) < 0) {
if (!warning_displayed) {
warning("reading single keystrokes not supported on "
"this platform; reading line instead");
@@ -378,14 +568,9 @@ int read_key_without_echo(struct strbuf *buf)
* half a second when we know that the sequence is complete.
*/
while (!is_known_escape_sequence(buf->buf)) {
- struct pollfd pfd = { .fd = 0, .events = POLLIN };
-
- if (poll(&pfd, 1, 500) < 1)
- break;
-
- ch = getchar();
+ ch = getchar_with_timeout(500);
if (ch == EOF)
- return 0;
+ break;
strbuf_addch(buf, ch);
}
}
@@ -396,10 +581,10 @@ int read_key_without_echo(struct strbuf *buf)
#else
-int save_term(int full_duplex)
+int save_term(enum save_term_flags flags)
{
- /* full_duplex == 1, but no support available */
- return -full_duplex;
+ /* no duplex support available */
+ return -!!(flags & SAVE_TERM_DUPLEX);
}
void restore_term(void)
diff --git a/compat/terminal.h b/compat/terminal.h
index e1770c575b..79ed00cf61 100644
--- a/compat/terminal.h
+++ b/compat/terminal.h
@@ -1,7 +1,22 @@
#ifndef COMPAT_TERMINAL_H
#define COMPAT_TERMINAL_H
-int save_term(int full_duplex);
+enum save_term_flags {
+ /* Save input and output settings */
+ SAVE_TERM_DUPLEX = 1 << 0,
+ /* Save stdin rather than /dev/tty (fails if stdin is not a terminal) */
+ SAVE_TERM_STDIN = 1 << 1,
+};
+
+/*
+ * Save the terminal attributes so they can be restored later by a
+ * call to restore_term(). Note that every successful call to
+ * save_term() must be matched by a call to restore_term() even if the
+ * attributes have not been changed. Returns 0 on success, -1 on
+ * failure.
+ */
+int save_term(enum save_term_flags flags);
+/* Restore the terminal attributes that were saved with save_term() */
void restore_term(void);
char *git_terminal_prompt(const char *prompt, int echo);
diff --git a/compat/win32/flush.c b/compat/win32/flush.c
new file mode 100644
index 0000000000..291f90ea94
--- /dev/null
+++ b/compat/win32/flush.c
@@ -0,0 +1,28 @@
+#include "git-compat-util.h"
+#include <winternl.h>
+#include "lazyload.h"
+
+int win32_fsync_no_flush(int fd)
+{
+ IO_STATUS_BLOCK io_status;
+
+#define FLUSH_FLAGS_FILE_DATA_ONLY 1
+
+ DECLARE_PROC_ADDR(ntdll.dll, NTSTATUS, NTAPI, NtFlushBuffersFileEx,
+ HANDLE FileHandle, ULONG Flags, PVOID Parameters, ULONG ParameterSize,
+ PIO_STATUS_BLOCK IoStatusBlock);
+
+ if (!INIT_PROC_ADDR(NtFlushBuffersFileEx)) {
+ errno = ENOSYS;
+ return -1;
+ }
+
+ memset(&io_status, 0, sizeof(io_status));
+ if (NtFlushBuffersFileEx((HANDLE)_get_osfhandle(fd), FLUSH_FLAGS_FILE_DATA_ONLY,
+ NULL, 0, &io_status)) {
+ errno = EINVAL;
+ return -1;
+ }
+
+ return 0;
+}
diff --git a/compat/winansi.c b/compat/winansi.c
index 4fceecf14c..3abe8dd5a2 100644
--- a/compat/winansi.c
+++ b/compat/winansi.c
@@ -3,6 +3,7 @@
*/
#undef NOGDI
+
#include "../git-compat-util.h"
#include <wingdi.h>
#include <winreg.h>
diff --git a/compat/zlib-uncompress2.c b/compat/zlib-uncompress2.c
index 722610b971..77a1b08048 100644
--- a/compat/zlib-uncompress2.c
+++ b/compat/zlib-uncompress2.c
@@ -1,3 +1,6 @@
+#include "git-compat-util.h"
+
+#if ZLIB_VERNUM < 0x1290
/* taken from zlib's uncompr.c
commit cacf7f1d4e3d44d871b605da3b647f07d718623f
@@ -8,16 +11,11 @@
*/
-#include "../reftable/system.h"
-#define z_const
-
/*
* Copyright (C) 1995-2003, 2010, 2014, 2016 Jean-loup Gailly, Mark Adler
* For conditions of distribution and use, see copyright notice in zlib.h
*/
-#include <zlib.h>
-
/* clang-format off */
/* ===========================================================================
@@ -93,3 +91,6 @@ int ZEXPORT uncompress2 (
err == Z_BUF_ERROR && left + stream.avail_out ? Z_DATA_ERROR :
err;
}
+#else
+static void *dummy_variable = &dummy_variable;
+#endif
diff --git a/config.c b/config.c
index e9e0acb87c..fa471dbdb8 100644
--- a/config.c
+++ b/config.c
@@ -6,6 +6,7 @@
*
*/
#include "cache.h"
+#include "date.h"
#include "branch.h"
#include "config.h"
#include "environment.h"
@@ -21,6 +22,7 @@
#include "dir.h"
#include "color.h"
#include "refs.h"
+#include "worktree.h"
struct config_source {
struct config_source *prev;
@@ -120,6 +122,22 @@ static long config_buf_ftell(struct config_source *conf)
return conf->u.buf.pos;
}
+struct config_include_data {
+ int depth;
+ config_fn_t fn;
+ void *data;
+ const struct config_options *opts;
+ struct git_config_source *config_source;
+
+ /*
+ * All remote URLs discovered when reading all config files.
+ */
+ struct string_list *remote_urls;
+};
+#define CONFIG_INCLUDE_INIT { 0 }
+
+static int git_config_include(const char *var, const char *value, void *data);
+
#define MAX_INCLUDE_DEPTH 10
static const char include_depth_advice[] = N_(
"exceeded maximum include depth (%d) while including\n"
@@ -294,9 +312,92 @@ static int include_by_branch(const char *cond, size_t cond_len)
return ret;
}
-static int include_condition_is_true(const struct config_options *opts,
+static int add_remote_url(const char *var, const char *value, void *data)
+{
+ struct string_list *remote_urls = data;
+ const char *remote_name;
+ size_t remote_name_len;
+ const char *key;
+
+ if (!parse_config_key(var, "remote", &remote_name, &remote_name_len,
+ &key) &&
+ remote_name &&
+ !strcmp(key, "url"))
+ string_list_append(remote_urls, value);
+ return 0;
+}
+
+static void populate_remote_urls(struct config_include_data *inc)
+{
+ struct config_options opts;
+
+ struct config_source *store_cf = cf;
+ struct key_value_info *store_kvi = current_config_kvi;
+ enum config_scope store_scope = current_parsing_scope;
+
+ opts = *inc->opts;
+ opts.unconditional_remote_url = 1;
+
+ cf = NULL;
+ current_config_kvi = NULL;
+ current_parsing_scope = 0;
+
+ inc->remote_urls = xmalloc(sizeof(*inc->remote_urls));
+ string_list_init_dup(inc->remote_urls);
+ config_with_options(add_remote_url, inc->remote_urls, inc->config_source, &opts);
+
+ cf = store_cf;
+ current_config_kvi = store_kvi;
+ current_parsing_scope = store_scope;
+}
+
+static int forbid_remote_url(const char *var, const char *value, void *data)
+{
+ const char *remote_name;
+ size_t remote_name_len;
+ const char *key;
+
+ if (!parse_config_key(var, "remote", &remote_name, &remote_name_len,
+ &key) &&
+ remote_name &&
+ !strcmp(key, "url"))
+ die(_("remote URLs cannot be configured in file directly or indirectly included by includeIf.hasconfig:remote.*.url"));
+ return 0;
+}
+
+static int at_least_one_url_matches_glob(const char *glob, int glob_len,
+ struct string_list *remote_urls)
+{
+ struct strbuf pattern = STRBUF_INIT;
+ struct string_list_item *url_item;
+ int found = 0;
+
+ strbuf_add(&pattern, glob, glob_len);
+ for_each_string_list_item(url_item, remote_urls) {
+ if (!wildmatch(pattern.buf, url_item->string, WM_PATHNAME)) {
+ found = 1;
+ break;
+ }
+ }
+ strbuf_release(&pattern);
+ return found;
+}
+
+static int include_by_remote_url(struct config_include_data *inc,
+ const char *cond, size_t cond_len)
+{
+ if (inc->opts->unconditional_remote_url)
+ return 1;
+ if (!inc->remote_urls)
+ populate_remote_urls(inc);
+ return at_least_one_url_matches_glob(cond, cond_len,
+ inc->remote_urls);
+}
+
+static int include_condition_is_true(struct config_include_data *inc,
const char *cond, size_t cond_len)
{
+ const struct config_options *opts = inc->opts;
if (skip_prefix_mem(cond, cond_len, "gitdir:", &cond, &cond_len))
return include_by_gitdir(opts, cond, cond_len, 0);
@@ -304,12 +405,15 @@ static int include_condition_is_true(const struct config_options *opts,
return include_by_gitdir(opts, cond, cond_len, 1);
else if (skip_prefix_mem(cond, cond_len, "onbranch:", &cond, &cond_len))
return include_by_branch(cond, cond_len);
+ else if (skip_prefix_mem(cond, cond_len, "hasconfig:remote.*.url:", &cond,
+ &cond_len))
+ return include_by_remote_url(inc, cond, cond_len);
/* unknown conditionals are always false */
return 0;
}
-int git_config_include(const char *var, const char *value, void *data)
+static int git_config_include(const char *var, const char *value, void *data)
{
struct config_include_data *inc = data;
const char *cond, *key;
@@ -328,9 +432,15 @@ int git_config_include(const char *var, const char *value, void *data)
ret = handle_path_include(value, inc);
if (!parse_config_key(var, "includeif", &cond, &cond_len, &key) &&
- (cond && include_condition_is_true(inc->opts, cond, cond_len)) &&
- !strcmp(key, "path"))
+ cond && include_condition_is_true(inc, cond, cond_len) &&
+ !strcmp(key, "path")) {
+ config_fn_t old_fn = inc->fn;
+
+ if (inc->opts->unconditional_remote_url)
+ inc->fn = forbid_remote_url;
ret = handle_path_include(value, inc);
+ inc->fn = old_fn;
+ }
return ret;
}
@@ -1213,6 +1323,80 @@ static int git_parse_maybe_bool_text(const char *value)
return -1;
}
+static const struct fsync_component_name {
+ const char *name;
+ enum fsync_component component_bits;
+} fsync_component_names[] = {
+ { "loose-object", FSYNC_COMPONENT_LOOSE_OBJECT },
+ { "pack", FSYNC_COMPONENT_PACK },
+ { "pack-metadata", FSYNC_COMPONENT_PACK_METADATA },
+ { "commit-graph", FSYNC_COMPONENT_COMMIT_GRAPH },
+ { "index", FSYNC_COMPONENT_INDEX },
+ { "objects", FSYNC_COMPONENTS_OBJECTS },
+ { "reference", FSYNC_COMPONENT_REFERENCE },
+ { "derived-metadata", FSYNC_COMPONENTS_DERIVED_METADATA },
+ { "committed", FSYNC_COMPONENTS_COMMITTED },
+ { "added", FSYNC_COMPONENTS_ADDED },
+ { "all", FSYNC_COMPONENTS_ALL },
+};
+
+static enum fsync_component parse_fsync_components(const char *var, const char *string)
+{
+ enum fsync_component current = FSYNC_COMPONENTS_DEFAULT;
+ enum fsync_component positive = 0, negative = 0;
+
+ while (string) {
+ int i;
+ size_t len;
+ const char *ep;
+ int negated = 0;
+ int found = 0;
+
+ string = string + strspn(string, ", \t\n\r");
+ ep = strchrnul(string, ',');
+ len = ep - string;
+ if (!strcmp(string, "none")) {
+ current = FSYNC_COMPONENT_NONE;
+ goto next_name;
+ }
+
+ if (*string == '-') {
+ negated = 1;
+ string++;
+ len--;
+ if (!len)
+ warning(_("invalid value for variable %s"), var);
+ }
+
+ if (!len)
+ break;
+
+ for (i = 0; i < ARRAY_SIZE(fsync_component_names); ++i) {
+ const struct fsync_component_name *n = &fsync_component_names[i];
+
+ if (strncmp(n->name, string, len))
+ continue;
+
+ found = 1;
+ if (negated)
+ negative |= n->component_bits;
+ else
+ positive |= n->component_bits;
+ }
+
+ if (!found) {
+ char *component = xstrndup(string, len);
+ warning(_("ignoring unknown core.fsync component '%s'"), component);
+ free(component);
+ }
+
+next_name:
+ string = ep;
+ }
+
+ return (current & ~negative) | positive;
+}
+
int git_parse_maybe_bool(const char *value)
{
int v = git_parse_maybe_bool_text(value);
@@ -1490,7 +1674,28 @@ static int git_default_core_config(const char *var, const char *value, void *cb)
return 0;
}
+ if (!strcmp(var, "core.fsync")) {
+ if (!value)
+ return config_error_nonbool(var);
+ fsync_components = parse_fsync_components(var, value);
+ return 0;
+ }
+
+ if (!strcmp(var, "core.fsyncmethod")) {
+ if (!value)
+ return config_error_nonbool(var);
+ if (!strcmp(value, "fsync"))
+ fsync_method = FSYNC_METHOD_FSYNC;
+ else if (!strcmp(value, "writeout-only"))
+ fsync_method = FSYNC_METHOD_WRITEOUT_ONLY;
+ else
+ warning(_("ignoring unknown core.fsyncMethod value '%s'"), value);
+
+ }
+
if (!strcmp(var, "core.fsyncobjectfiles")) {
+ if (fsync_object_files < 0)
+ warning(_("core.fsyncObjectFiles is deprecated; use core.fsync instead"));
fsync_object_files = git_config_bool(var, value);
return 0;
}
@@ -1544,6 +1749,17 @@ static int git_default_core_config(const char *var, const char *value, void *cb)
return platform_core_config(var, value, cb);
}
+static int git_default_sparse_config(const char *var, const char *value)
+{
+ if (!strcmp(var, "sparse.expectfilesoutsideofpatterns")) {
+ sparse_expect_files_outside_of_patterns = git_config_bool(var, value);
+ return 0;
+ }
+
+ /* Add other config variables here and to Documentation/config/sparse.txt. */
+ return 0;
+}
+
static int git_default_i18n_config(const char *var, const char *value)
{
if (!strcmp(var, "i18n.commitencoding"))
@@ -1675,6 +1891,9 @@ int git_default_config(const char *var, const char *value, void *cb)
return 0;
}
+ if (starts_with(var, "sparse."))
+ return git_default_sparse_config(var, value);
+
/* Add other config variables here and to Documentation/config.txt. */
return 0;
}
@@ -1929,11 +2148,13 @@ int config_with_options(config_fn_t fn, void *data,
const struct config_options *opts)
{
struct config_include_data inc = CONFIG_INCLUDE_INIT;
+ int ret;
if (opts->respect_includes) {
inc.fn = fn;
inc.data = data;
inc.opts = opts;
+ inc.config_source = config_source;
fn = git_config_include;
data = &inc;
}
@@ -1946,17 +2167,23 @@ int config_with_options(config_fn_t fn, void *data,
* regular lookup sequence.
*/
if (config_source && config_source->use_stdin) {
- return git_config_from_stdin(fn, data);
+ ret = git_config_from_stdin(fn, data);
} else if (config_source && config_source->file) {
- return git_config_from_file(fn, config_source->file, data);
+ ret = git_config_from_file(fn, config_source->file, data);
} else if (config_source && config_source->blob) {
struct repository *repo = config_source->repo ?
config_source->repo : the_repository;
- return git_config_from_blob_ref(fn, repo, config_source->blob,
+ ret = git_config_from_blob_ref(fn, repo, config_source->blob,
data);
+ } else {
+ ret = do_git_config_sequence(opts, fn, data);
}
- return do_git_config_sequence(opts, fn, data);
+ if (inc.remote_urls) {
+ string_list_clear(inc.remote_urls, 0);
+ FREE_AND_NULL(inc.remote_urls);
+ }
+ return ret;
}
static void configset_iter(struct config_set *cs, config_fn_t fn, void *data)
@@ -2178,8 +2405,8 @@ int git_configset_get_string(struct config_set *cs, const char *key, char **dest
return 1;
}
-int git_configset_get_string_tmp(struct config_set *cs, const char *key,
- const char **dest)
+static int git_configset_get_string_tmp(struct config_set *cs, const char *key,
+ const char **dest)
{
const char *value;
if (!git_configset_get_value(cs, key, &value)) {
@@ -2508,20 +2735,6 @@ int git_config_get_max_percent_split_change(void)
return -1; /* default value */
}
-int git_config_get_fsmonitor(void)
-{
- if (git_config_get_pathname("core.fsmonitor", &core_fsmonitor))
- core_fsmonitor = getenv("GIT_TEST_FSMONITOR");
-
- if (core_fsmonitor && !*core_fsmonitor)
- core_fsmonitor = NULL;
-
- if (core_fsmonitor)
- return 1;
-
- return 0;
-}
-
int git_config_get_index_threads(int *dest)
{
int is_bool, val;
@@ -2884,6 +3097,20 @@ int git_config_set_gently(const char *key, const char *value)
return git_config_set_multivar_gently(key, value, NULL, 0);
}
+int repo_config_set_worktree_gently(struct repository *r,
+ const char *key, const char *value)
+{
+ /* Only use worktree-specific config if it is is already enabled. */
+ if (repository_format_worktree_config) {
+ char *file = repo_git_path(r, "config.worktree");
+ int ret = git_config_set_multivar_in_file_gently(
+ file, key, value, NULL, 0);
+ free(file);
+ return ret;
+ }
+ return repo_config_set_multivar_gently(r, key, value, NULL, 0);
+}
+
void git_config_set(const char *key, const char *value)
{
git_config_set_multivar(key, value, NULL, 0);
@@ -3181,14 +3408,28 @@ void git_config_set_multivar_in_file(const char *config_filename,
int git_config_set_multivar_gently(const char *key, const char *value,
const char *value_pattern, unsigned flags)
{
- return git_config_set_multivar_in_file_gently(NULL, key, value, value_pattern,
- flags);
+ return repo_config_set_multivar_gently(the_repository, key, value,
+ value_pattern, flags);
+}
+
+int repo_config_set_multivar_gently(struct repository *r, const char *key,
+ const char *value,
+ const char *value_pattern, unsigned flags)
+{
+ char *file = repo_git_path(r, "config");
+ int res = git_config_set_multivar_in_file_gently(file,
+ key, value,
+ value_pattern,
+ flags);
+ free(file);
+ return res;
}
void git_config_set_multivar(const char *key, const char *value,
const char *value_pattern, unsigned flags)
{
- git_config_set_multivar_in_file(NULL, key, value, value_pattern,
+ git_config_set_multivar_in_file(git_path("config"),
+ key, value, value_pattern,
flags);
}
diff --git a/config.h b/config.h
index f119de0130..7654f61c63 100644
--- a/config.h
+++ b/config.h
@@ -89,6 +89,15 @@ struct config_options {
unsigned int ignore_worktree : 1;
unsigned int ignore_cmdline : 1;
unsigned int system_gently : 1;
+
+ /*
+ * For internal use. Include all includeif.hasremoteurl paths without
+ * checking if the repo has that remote URL, and when doing so, verify
+ * that files included in this way do not configure any remote URLs
+ * themselves.
+ */
+ unsigned int unconditional_remote_url : 1;
+
const char *commondir;
const char *git_dir;
config_parser_event_fn_t event_fn;
@@ -126,6 +135,8 @@ int git_default_config(const char *, const char *, void *);
/**
* Read a specific file in git-config format.
* This function takes the same callback and data parameters as `git_config`.
+ *
+ * Unlike git_config(), this function does not respect includes.
*/
int git_config_from_file(config_fn_t fn, const char *, void *);
@@ -158,6 +169,8 @@ void read_very_early_config(config_fn_t cb, void *data);
* will first feed the user-wide one to the callback, and then the
* repo-specific one; by overwriting, the higher-priority repo-specific
* value is left at the end).
+ *
+ * Unlike git_config_from_file(), this function respects includes.
*/
void git_config(config_fn_t fn, void *);
@@ -254,6 +267,13 @@ void git_config_set_in_file(const char *, const char *, const char *);
int git_config_set_gently(const char *, const char *);
/**
+ * Write a config value that should apply to the current worktree. If
+ * extensions.worktreeConfig is enabled, then the write will happen in the
+ * current worktree's config. Otherwise, write to the common config file.
+ */
+int repo_config_set_worktree_gently(struct repository *, const char *, const char *);
+
+/**
* write config values to `.git/config`, takes a key/value pair as parameter.
*/
void git_config_set(const char *, const char *);
@@ -281,6 +301,7 @@ int git_config_parse_key(const char *, char **, size_t *);
int git_config_set_multivar_gently(const char *, const char *, const char *, unsigned);
void git_config_set_multivar(const char *, const char *, const char *, unsigned);
+int repo_config_set_multivar_gently(struct repository *, const char *, const char *, const char *, unsigned);
int git_config_set_multivar_in_file_gently(const char *, const char *, const char *, const char *, unsigned);
/**
@@ -338,39 +359,6 @@ const char *current_config_origin_type(void);
const char *current_config_name(void);
int current_config_line(void);
-/**
- * Include Directives
- * ------------------
- *
- * By default, the config parser does not respect include directives.
- * However, a caller can use the special `git_config_include` wrapper
- * callback to support them. To do so, you simply wrap your "real" callback
- * function and data pointer in a `struct config_include_data`, and pass
- * the wrapper to the regular config-reading functions. For example:
- *
- * -------------------------------------------
- * int read_file_with_include(const char *file, config_fn_t fn, void *data)
- * {
- * struct config_include_data inc = CONFIG_INCLUDE_INIT;
- * inc.fn = fn;
- * inc.data = data;
- * return git_config_from_file(git_config_include, file, &inc);
- * }
- * -------------------------------------------
- *
- * `git_config` respects includes automatically. The lower-level
- * `git_config_from_file` does not.
- *
- */
-struct config_include_data {
- int depth;
- config_fn_t fn;
- void *data;
- const struct config_options *opts;
-};
-#define CONFIG_INCLUDE_INIT { 0 }
-int git_config_include(const char *name, const char *value, void *data);
-
/*
* Match and parse a config key of the form:
*
@@ -486,7 +474,6 @@ void git_configset_clear(struct config_set *cs);
int git_configset_get_value(struct config_set *cs, const char *key, const char **dest);
int git_configset_get_string(struct config_set *cs, const char *key, char **dest);
-int git_configset_get_string_tmp(struct config_set *cs, const char *key, const char **dest);
int git_configset_get_int(struct config_set *cs, const char *key, int *dest);
int git_configset_get_ulong(struct config_set *cs, const char *key, unsigned long *dest);
int git_configset_get_bool(struct config_set *cs, const char *key, int *dest);
@@ -610,7 +597,6 @@ int git_config_get_pathname(const char *key, const char **dest);
int git_config_get_index_threads(int *dest);
int git_config_get_split_index(void);
int git_config_get_max_percent_split_change(void);
-int git_config_get_fsmonitor(void);
/* This dies if the configured or default date is in the future */
int git_config_get_expiry(const char *key, const char **output);
diff --git a/config.mak.dev b/config.mak.dev
index 3deb076d5e..c3104f400b 100644
--- a/config.mak.dev
+++ b/config.mak.dev
@@ -65,4 +65,10 @@ DEVELOPER_CFLAGS += -Wno-uninitialized
endif
endif
+# https://bugzilla.redhat.com/show_bug.cgi?id=2075786
+ifneq ($(filter gcc12,$(COMPILER_FEATURES)),)
+DEVELOPER_CFLAGS += -Wno-error=stringop-overread
+DEVELOPER_CFLAGS += -Wno-error=dangling-pointer
+endif
+
GIT_TEST_PERL_FATAL_WARNINGS = YesPlease
diff --git a/config.mak.uname b/config.mak.uname
index c48db45106..259d1511ca 100644
--- a/config.mak.uname
+++ b/config.mak.uname
@@ -57,6 +57,7 @@ ifeq ($(uname_S),Linux)
HAVE_CLOCK_MONOTONIC = YesPlease
# -lrt is needed for clock_gettime on glibc <= 2.16
NEEDS_LIBRT = YesPlease
+ HAVE_SYNC_FILE_RANGE = YesPlease
HAVE_GETDELIM = YesPlease
FREAD_READS_DIRECTORIES = UnfortunatelyYes
BASIC_CFLAGS += -DHAVE_SYSINFO
@@ -66,7 +67,6 @@ ifeq ($(uname_S),Linux)
# centos7/rhel7 provides gcc 4.8.5 and zlib 1.2.7.
ifneq ($(findstring .el7.,$(uname_R)),)
BASIC_CFLAGS += -std=c99
- NO_UNCOMPRESS2 = YesPlease
endif
endif
ifeq ($(uname_S),GNU/kFreeBSD)
@@ -146,6 +146,7 @@ ifeq ($(uname_S),Darwin)
HAVE_BSD_SYSCTL = YesPlease
FREAD_READS_DIRECTORIES = UnfortunatelyYes
HAVE_NS_GET_EXECUTABLE_PATH = YesPlease
+ CSPRNG_METHOD = arc4random
# Workaround for `gettext` being keg-only and not even being linked via
# `brew link --force gettext`, should be obsolete as of
@@ -157,6 +158,16 @@ ifeq ($(uname_S),Darwin)
MSGFMT = /usr/local/opt/gettext/bin/msgfmt
endif
endif
+
+ # The builtin FSMonitor on MacOS builds upon Simple-IPC. Both require
+ # Unix domain sockets and PThreads.
+ ifndef NO_PTHREADS
+ ifndef NO_UNIX_SOCKETS
+ FSMONITOR_DAEMON_BACKEND = darwin
+ endif
+ endif
+
+ BASIC_LDFLAGS += -framework CoreServices
endif
ifeq ($(uname_S),SunOS)
NEEDS_SOCKET = YesPlease
@@ -261,15 +272,12 @@ ifeq ($(uname_S),FreeBSD)
HAVE_PATHS_H = YesPlease
HAVE_BSD_SYSCTL = YesPlease
HAVE_BSD_KERN_PROC_SYSCTL = YesPlease
+ CSPRNG_METHOD = arc4random
PAGER_ENV = LESS=FRX LV=-c MORE=FRX
FREAD_READS_DIRECTORIES = UnfortunatelyYes
FILENO_IS_A_MACRO = UnfortunatelyYes
endif
ifeq ($(uname_S),OpenBSD)
- # Versions < 7.0 need compatibility layer
- ifeq ($(shell expr "$(uname_R)" : "[1-6]\."),2)
- NO_UNCOMPRESS2 = UnfortunatelyYes
- endif
NO_STRCASESTR = YesPlease
NO_MEMMEM = YesPlease
USE_ST_TIMESPEC = YesPlease
@@ -279,6 +287,7 @@ ifeq ($(uname_S),OpenBSD)
HAVE_PATHS_H = YesPlease
HAVE_BSD_SYSCTL = YesPlease
HAVE_BSD_KERN_PROC_SYSCTL = YesPlease
+ CSPRNG_METHOD = arc4random
PROCFS_EXECUTABLE_PATH = /proc/curproc/file
FREAD_READS_DIRECTORIES = UnfortunatelyYes
FILENO_IS_A_MACRO = UnfortunatelyYes
@@ -290,6 +299,7 @@ ifeq ($(uname_S),MirBSD)
NEEDS_LIBICONV = YesPlease
HAVE_PATHS_H = YesPlease
HAVE_BSD_SYSCTL = YesPlease
+ CSPRNG_METHOD = arc4random
endif
ifeq ($(uname_S),NetBSD)
ifeq ($(shell expr "$(uname_R)" : '[01]\.'),2)
@@ -301,6 +311,7 @@ ifeq ($(uname_S),NetBSD)
HAVE_PATHS_H = YesPlease
HAVE_BSD_SYSCTL = YesPlease
HAVE_BSD_KERN_PROC_SYSCTL = YesPlease
+ CSPRNG_METHOD = arc4random
PROCFS_EXECUTABLE_PATH = /proc/curproc/exe
endif
ifeq ($(uname_S),AIX)
@@ -430,10 +441,16 @@ ifeq ($(uname_S),Windows)
NO_STRTOUMAX = YesPlease
NO_MKDTEMP = YesPlease
NO_INTTYPES_H = YesPlease
+ CSPRNG_METHOD = rtlgenrandom
# VS2015 with UCRT claims that snprintf and friends are C99 compliant,
# so we don't need this:
#
# SNPRINTF_RETURNS_BOGUS = YesPlease
+
+ # The builtin FSMonitor requires Named Pipes and Threads on Windows.
+ # These are always available, so we do not have to conditionally
+ # support it.
+ FSMONITOR_DAEMON_BACKEND = win32
NO_SVN_TESTS = YesPlease
RUNTIME_PREFIX = YesPlease
HAVE_WPGMPTR = YesWeDo
@@ -462,6 +479,7 @@ endif
CFLAGS =
BASIC_CFLAGS = -nologo -I. -Icompat/vcbuild/include -DWIN32 -D_CONSOLE -DHAVE_STRING_H -D_CRT_SECURE_NO_WARNINGS -D_CRT_NONSTDC_NO_DEPRECATE
COMPAT_OBJS = compat/msvc.o compat/winansi.o \
+ compat/win32/flush.o \
compat/win32/path-utils.o \
compat/win32/pthread.o compat/win32/syslog.o \
compat/win32/trace2_win32_process_info.o \
@@ -525,7 +543,6 @@ ifeq ($(uname_S),Interix)
endif
endif
ifeq ($(uname_S),Minix)
- NO_UNCOMPRESS2 = YesPlease
NO_IPV6 = YesPlease
NO_ST_BLOCKS_IN_STRUCT_STAT = YesPlease
NO_NSEC = YesPlease
@@ -581,7 +598,6 @@ ifeq ($(uname_S),NONSTOP_KERNEL)
NO_SETENV = YesPlease
NO_UNSETENV = YesPlease
NO_MKDTEMP = YesPlease
- NO_UNCOMPRESS2 = YesPlease
# Currently libiconv-1.9.1.
OLD_ICONV = UnfortunatelyYes
NO_REGEX = NeedsStartEnd
@@ -599,6 +615,7 @@ ifeq ($(uname_S),NONSTOP_KERNEL)
NO_MMAP = YesPlease
NO_POLL = YesPlease
NO_INTPTR_T = UnfortunatelyYes
+ CSPRNG_METHOD = openssl
SANE_TOOL_PATH = /usr/coreutils/bin:/usr/local/bin
SHELL_PATH = /usr/coreutils/bin/bash
endif
@@ -619,6 +636,11 @@ ifeq ($(uname_S),MINGW)
NO_STRTOUMAX = YesPlease
NO_MKDTEMP = YesPlease
NO_SVN_TESTS = YesPlease
+
+ # The builtin FSMonitor requires Named Pipes and Threads on Windows.
+ # These are always available, so we do not have to conditionally
+ # support it.
+ FSMONITOR_DAEMON_BACKEND = win32
RUNTIME_PREFIX = YesPlease
HAVE_WPGMPTR = YesWeDo
NO_ST_BLOCKS_IN_STRUCT_STAT = YesPlease
@@ -634,11 +656,13 @@ ifeq ($(uname_S),MINGW)
NO_POSIX_GOODIES = UnfortunatelyYes
DEFAULT_HELP_FORMAT = html
HAVE_PLATFORM_PROCINFO = YesPlease
+ CSPRNG_METHOD = rtlgenrandom
BASIC_LDFLAGS += -municode
COMPAT_CFLAGS += -DNOGDI -Icompat -Icompat/win32
COMPAT_CFLAGS += -DSTRIP_EXTENSION=\".exe\"
COMPAT_OBJS += compat/mingw.o compat/winansi.o \
compat/win32/trace2_win32_process_info.o \
+ compat/win32/flush.o \
compat/win32/path-utils.o \
compat/win32/pthread.o compat/win32/syslog.o \
compat/win32/dirent.o
@@ -726,7 +750,6 @@ vcxproj:
git diff-index --cached --quiet HEAD --
# Make .vcxproj files and add them
- unset QUIET_GEN QUIET_BUILT_IN; \
perl contrib/buildsystems/generate -g Vcxproj
git add -f git.sln {*,*/lib,t/helper/*}/*.vcxproj
diff --git a/configure.ac b/configure.ac
index d60d494ee4..7dcd048204 100644
--- a/configure.ac
+++ b/configure.ac
@@ -664,22 +664,9 @@ AC_LINK_IFELSE([ZLIBTEST_SRC],
NO_DEFLATE_BOUND=yes])
LIBS="$old_LIBS"
-AC_DEFUN([ZLIBTEST_UNCOMPRESS2_SRC], [
-AC_LANG_PROGRAM([#include <zlib.h>],
- [uncompress2(NULL,NULL,NULL,NULL);])])
-AC_MSG_CHECKING([for uncompress2 in -lz])
-old_LIBS="$LIBS"
-LIBS="$LIBS -lz"
-AC_LINK_IFELSE([ZLIBTEST_UNCOMPRESS2_SRC],
- [AC_MSG_RESULT([yes])],
- [AC_MSG_RESULT([no])
- NO_UNCOMPRESS2=yes])
-LIBS="$old_LIBS"
-
GIT_UNSTASH_FLAGS($ZLIB_PATH)
GIT_CONF_SUBST([NO_DEFLATE_BOUND])
-GIT_CONF_SUBST([NO_UNCOMPRESS2])
#
# Define NEEDS_SOCKET if linking with libc is not enough (SunOS,
@@ -1095,6 +1082,14 @@ AC_COMPILE_IFELSE([CLOCK_MONOTONIC_SRC],
[AC_MSG_RESULT([no])
HAVE_CLOCK_MONOTONIC=])
GIT_CONF_SUBST([HAVE_CLOCK_MONOTONIC])
+
+#
+# Define HAVE_SYNC_FILE_RANGE=YesPlease if sync_file_range is available.
+GIT_CHECK_FUNC(sync_file_range,
+ [HAVE_SYNC_FILE_RANGE=YesPlease],
+ [HAVE_SYNC_FILE_RANGE=])
+GIT_CONF_SUBST([HAVE_SYNC_FILE_RANGE])
+
#
# Define NO_SETITIMER if you don't have setitimer.
GIT_CHECK_FUNC(setitimer,
@@ -1194,9 +1189,6 @@ AC_COMPILE_IFELSE([BSD_SYSCTL_SRC],
GIT_CONF_SUBST([HAVE_BSD_SYSCTL])
## Other checks.
-# Define USE_PIC if you need the main git objects to be built with -fPIC
-# in order to build and link perl/Git.so. x86-64 seems to need this.
-#
# Define NO_SYMLINK_HEAD if you never want .git/HEAD to be a symbolic link.
# Enable it on Windows. By default, symrefs are still used.
#
diff --git a/connect.c b/connect.c
index eaf7d6d261..afc79a6236 100644
--- a/connect.c
+++ b/connect.c
@@ -379,7 +379,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(struct packet_reader *reader, struct ref ***list,
- char **unborn_head_target)
+ const char **unborn_head_target)
{
int ret = 1;
int i = 0;
@@ -483,7 +483,7 @@ struct ref **get_remote_refs(int fd_out, struct packet_reader *reader,
const char *hash_name;
struct strvec *ref_prefixes = transport_options ?
&transport_options->ref_prefixes : NULL;
- char **unborn_head_target = transport_options ?
+ const char **unborn_head_target = transport_options ?
&transport_options->unborn_head_target : NULL;
*list = NULL;
diff --git a/contrib/buildsystems/CMakeLists.txt b/contrib/buildsystems/CMakeLists.txt
index 5100f56bb3..185f56f414 100644
--- a/contrib/buildsystems/CMakeLists.txt
+++ b/contrib/buildsystems/CMakeLists.txt
@@ -260,11 +260,19 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Windows")
_CONSOLE DETECT_MSYS_TTY STRIP_EXTENSION=".exe" NO_SYMLINK_HEAD UNRELIABLE_FSTAT
NOGDI OBJECT_CREATION_MODE=1 __USE_MINGW_ANSI_STDIO=0
USE_NED_ALLOCATOR OVERRIDE_STRDUP MMAP_PREVENTS_DELETE USE_WIN32_MMAP
- UNICODE _UNICODE HAVE_WPGMPTR ENSURE_MSYSTEM_IS_SET)
- list(APPEND compat_SOURCES compat/mingw.c compat/winansi.c compat/win32/path-utils.c
- compat/win32/pthread.c compat/win32mmap.c compat/win32/syslog.c
- compat/win32/trace2_win32_process_info.c compat/win32/dirent.c
- compat/nedmalloc/nedmalloc.c compat/strdup.c)
+ UNICODE _UNICODE HAVE_WPGMPTR ENSURE_MSYSTEM_IS_SET HAVE_RTLGENRANDOM)
+ list(APPEND compat_SOURCES
+ compat/mingw.c
+ compat/winansi.c
+ compat/win32/flush.c
+ compat/win32/path-utils.c
+ compat/win32/pthread.c
+ compat/win32mmap.c
+ compat/win32/syslog.c
+ compat/win32/trace2_win32_process_info.c
+ compat/win32/dirent.c
+ compat/nedmalloc/nedmalloc.c
+ compat/strdup.c)
set(NO_UNIX_SOCKETS 1)
elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux")
@@ -285,6 +293,16 @@ else()
endif()
endif()
+if(SUPPORTS_SIMPLE_IPC)
+ if(CMAKE_SYSTEM_NAME STREQUAL "Windows")
+ add_compile_definitions(HAVE_FSMONITOR_DAEMON_BACKEND)
+ list(APPEND compat_SOURCES compat/fsmonitor/fsm-listen-win32.c)
+ elseif(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
+ add_compile_definitions(HAVE_FSMONITOR_DAEMON_BACKEND)
+ list(APPEND compat_SOURCES compat/fsmonitor/fsm-listen-darwin.c)
+ endif()
+endif()
+
set(EXE_EXTENSION ${CMAKE_EXECUTABLE_SUFFIX})
#header checks
diff --git a/contrib/coccinelle/strbuf.cocci b/contrib/coccinelle/strbuf.cocci
index d9ada69b43..0970d98ad7 100644
--- a/contrib/coccinelle/strbuf.cocci
+++ b/contrib/coccinelle/strbuf.cocci
@@ -15,7 +15,7 @@ constant fmt !~ "%";
@@
expression E;
struct strbuf SB;
-format F =~ "s";
+format F =~ "^s$";
@@
- strbuf_addf(E, "%@F@", SB.buf);
+ strbuf_addbuf(E, &SB);
@@ -23,7 +23,7 @@ format F =~ "s";
@@
expression E;
struct strbuf *SBP;
-format F =~ "s";
+format F =~ "^s$";
@@
- strbuf_addf(E, "%@F@", SBP->buf);
+ strbuf_addbuf(E, SBP);
@@ -44,7 +44,7 @@ struct strbuf *SBP;
@@
expression E1, E2;
-format F =~ "s";
+format F =~ "^s$";
@@
- strbuf_addf(E1, "%@F@", E2);
+ strbuf_addstr(E1, E2);
diff --git a/contrib/coccinelle/the_repository.pending.cocci b/contrib/coccinelle/the_repository.pending.cocci
index 2ee702ecf7..072ea0d922 100644
--- a/contrib/coccinelle/the_repository.pending.cocci
+++ b/contrib/coccinelle/the_repository.pending.cocci
@@ -14,21 +14,6 @@ expression G;
@@
expression E;
@@
-- has_sha1_file(
-+ repo_has_sha1_file(the_repository,
- E)
-
-@@
-expression E;
-expression F;
-@@
-- has_sha1_file_with_flags(
-+ repo_has_sha1_file_with_flags(the_repository,
- E)
-
-@@
-expression E;
-@@
- has_object_file(
+ repo_has_object_file(the_repository,
E)
diff --git a/contrib/coccinelle/xstrdup_or_null.cocci b/contrib/coccinelle/xstrdup_or_null.cocci
index 8e05d1ca4b..9c1d2939b6 100644
--- a/contrib/coccinelle/xstrdup_or_null.cocci
+++ b/contrib/coccinelle/xstrdup_or_null.cocci
@@ -1,13 +1,5 @@
@@
expression E;
-expression V;
-@@
-- if (E)
-- V = xstrdup(E);
-+ V = xstrdup_or_null(E);
-
-@@
-expression E;
@@
- xstrdup(absolute_path(E))
+ absolute_pathdup(E)
diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index 377d6c5494..ba5c395d2d 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -49,6 +49,11 @@
# and git-switch completion (e.g., completing "foo" when "origin/foo"
# exists).
#
+# GIT_COMPLETION_SHOW_ALL_COMMANDS
+#
+# When set to "1" suggest all commands, including plumbing commands
+# which are hidden by default (e.g. "cat-file" on "git ca<TAB>").
+#
# GIT_COMPLETION_SHOW_ALL
#
# When set to "1" suggest all options, including options which are
@@ -2885,6 +2890,10 @@ _git_restore ()
--*)
__gitcomp_builtin restore
;;
+ *)
+ if __git rev-parse --verify --quiet HEAD >/dev/null; then
+ __git_complete_index_file "--modified"
+ fi
esac
}
@@ -2986,9 +2995,37 @@ _git_show_branch ()
__git_complete_revlist
}
+__gitcomp_directories ()
+{
+ local _tmp_dir _tmp_completions _found=0
+
+ # Get the directory of the current token; this differs from dirname
+ # in that it keeps up to the final trailing slash. If no slash found
+ # that's fine too.
+ [[ "$cur" =~ .*/ ]]
+ _tmp_dir=$BASH_REMATCH
+
+ # Find possible directory completions, adding trailing '/' characters,
+ # de-quoting, and handling unusual characters.
+ while IFS= read -r -d $'\0' c ; do
+ # If there are directory completions, find ones that start
+ # with "$cur", the current token, and put those in COMPREPLY
+ if [[ $c == "$cur"* ]]; then
+ COMPREPLY+=("$c/")
+ _found=1
+ fi
+ done < <(git ls-tree -z -d --name-only HEAD $_tmp_dir)
+
+ if [[ $_found == 0 ]] && [[ "$cur" =~ /$ ]]; then
+ # No possible further completions any deeper, so assume we're at
+ # a leaf directory and just consider it complete
+ __gitcomp_direct_append "$cur "
+ fi
+}
+
_git_sparse_checkout ()
{
- local subcommands="list init set disable"
+ local subcommands="list init set disable add reapply"
local subcommand="$(__git_find_on_cmdline "$subcommands")"
if [ -z "$subcommand" ]; then
__gitcomp "$subcommands"
@@ -2996,14 +3033,14 @@ _git_sparse_checkout ()
fi
case "$subcommand,$cur" in
- init,--*)
- __gitcomp "--cone"
- ;;
- set,--*)
- __gitcomp "--stdin"
- ;;
- *)
+ *,--*)
+ __gitcomp_builtin sparse-checkout_$subcommand "" "--"
;;
+ set,*|add,*)
+ if [ "$(__git config core.sparseCheckoutCone)" == "true" ] ||
+ [ -n "$(__git_find_on_cmdline --cone)" ]; then
+ __gitcomp_directories
+ fi
esac
}
@@ -3455,7 +3492,13 @@ __git_main ()
then
__gitcomp "$GIT_TESTING_PORCELAIN_COMMAND_LIST"
else
- __gitcomp "$(__git --list-cmds=list-mainporcelain,others,nohelpers,alias,list-complete,config)"
+ local list_cmds=list-mainporcelain,others,nohelpers,alias,list-complete,config
+
+ if test "${GIT_COMPLETION_SHOW_ALL_COMMANDS-}" = "1"
+ then
+ list_cmds=builtins,$list_cmds
+ fi
+ __gitcomp "$(__git --list-cmds=$list_cmds)"
fi
;;
esac
diff --git a/contrib/completion/git-prompt.sh b/contrib/completion/git-prompt.sh
index db7c0068fb..87b2b916c0 100644
--- a/contrib/completion/git-prompt.sh
+++ b/contrib/completion/git-prompt.sh
@@ -66,6 +66,11 @@
# git always compare HEAD to @{upstream}
# svn always compare HEAD to your SVN upstream
#
+# 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
+# setting the bash.showUpstream config variable.
+#
# You can change the separator between the branch name and the above
# state symbols by setting GIT_PS1_STATESEPARATOR. The default separator
# is SP.
@@ -79,11 +84,6 @@
# 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
-# setting the bash.showUpstream config variable.
-#
# If you would like to see more information about the identity of
# commits checked out as a detached HEAD, set GIT_PS1_DESCRIBE_STYLE
# to one of these values:
@@ -115,7 +115,7 @@ __git_ps1_show_upstream ()
{
local key value
local svn_remote svn_url_pattern count n
- local upstream=git legacy="" verbose="" name=""
+ local upstream_type=git legacy="" verbose="" name=""
svn_remote=()
# get some config options from git-config
@@ -132,7 +132,7 @@ __git_ps1_show_upstream ()
svn-remote.*.url)
svn_remote[$((${#svn_remote[@]} + 1))]="$value"
svn_url_pattern="$svn_url_pattern\\|$value"
- upstream=svn+git # default upstream is SVN if available, else git
+ upstream_type=svn+git # default upstream type is SVN if available, else git
;;
esac
done <<< "$output"
@@ -141,16 +141,16 @@ __git_ps1_show_upstream ()
local option
for option in ${GIT_PS1_SHOWUPSTREAM}; do
case "$option" in
- git|svn) upstream="$option" ;;
+ git|svn) upstream_type="$option" ;;
verbose) verbose=1 ;;
legacy) legacy=1 ;;
name) name=1 ;;
esac
done
- # Find our upstream
- case "$upstream" in
- git) upstream="@{upstream}" ;;
+ # Find our upstream type
+ case "$upstream_type" in
+ git) upstream_type="@{upstream}" ;;
svn*)
# get the upstream from the "git-svn-id: ..." in a commit message
# (git-svn uses essentially the same procedure internally)
@@ -167,12 +167,12 @@ __git_ps1_show_upstream ()
if [[ -z "$svn_upstream" ]]; then
# default branch name for checkouts with no layout:
- upstream=${GIT_SVN_ID:-git-svn}
+ upstream_type=${GIT_SVN_ID:-git-svn}
else
- upstream=${svn_upstream#/}
+ upstream_type=${svn_upstream#/}
fi
- elif [[ "svn+git" = "$upstream" ]]; then
- upstream="@{upstream}"
+ elif [[ "svn+git" = "$upstream_type" ]]; then
+ upstream_type="@{upstream}"
fi
;;
esac
@@ -180,11 +180,11 @@ __git_ps1_show_upstream ()
# Find how many commits we are ahead/behind our upstream
if [[ -z "$legacy" ]]; then
count="$(git rev-list --count --left-right \
- "$upstream"...HEAD 2>/dev/null)"
+ "$upstream_type"...HEAD 2>/dev/null)"
else
# produce equivalent output to --count for older versions of git
local commits
- if commits="$(git rev-list --left-right "$upstream"...HEAD 2>/dev/null)"
+ if commits="$(git rev-list --left-right "$upstream_type"...HEAD 2>/dev/null)"
then
local commit behind=0 ahead=0
for commit in $commits
@@ -214,26 +214,26 @@ __git_ps1_show_upstream ()
*) # diverged from upstream
p="<>" ;;
esac
- else
+ else # verbose, set upstream instead of p
case "$count" in
"") # no upstream
- p="" ;;
+ upstream="" ;;
"0 0") # equal to upstream
- p=" u=" ;;
+ upstream="|u=" ;;
"0 "*) # ahead of upstream
- p=" u+${count#0 }" ;;
+ upstream="|u+${count#0 }" ;;
*" 0") # behind upstream
- p=" u-${count% 0}" ;;
+ upstream="|u-${count% 0}" ;;
*) # diverged from upstream
- p=" u+${count#* }-${count% *}" ;;
+ upstream="|u+${count#* }-${count% *}" ;;
esac
if [[ -n "$count" && -n "$name" ]]; then
__git_ps1_upstream_name=$(git rev-parse \
- --abbrev-ref "$upstream" 2>/dev/null)
+ --abbrev-ref "$upstream_type" 2>/dev/null)
if [ $pcmode = yes ] && [ $ps1_expanded = yes ]; then
- p="$p \${__git_ps1_upstream_name}"
+ upstream="$upstream \${__git_ps1_upstream_name}"
else
- p="$p ${__git_ps1_upstream_name}"
+ upstream="$upstream ${__git_ps1_upstream_name}"
# not needed anymore; keep user's
# environment clean
unset __git_ps1_upstream_name
@@ -512,7 +512,8 @@ __git_ps1 ()
local u=""
local h=""
local c=""
- local p=""
+ local p="" # short version of upstream state indicator
+ local upstream="" # verbose version of upstream state indicator
if [ "true" = "$inside_gitdir" ]; then
if [ "true" = "$bare_repo" ]; then
@@ -568,8 +569,8 @@ __git_ps1 ()
b="\${__git_ps1_branch_name}"
fi
- local f="$h$w$i$s$u"
- local gitstring="$c$b${f:+$z$f}${sparse}$r$p"
+ local f="$h$w$i$s$u$p"
+ local gitstring="$c$b${f:+$z$f}${sparse}$r${upstream}"
if [ $pcmode = yes ]; then
if [ "${__git_printf_supports_v-}" != yes ]; then
diff --git a/contrib/rerere-train.sh b/contrib/rerere-train.sh
index 75125d6ae0..26b724c8c6 100755
--- a/contrib/rerere-train.sh
+++ b/contrib/rerere-train.sh
@@ -86,7 +86,7 @@ do
fi
if test -s "$GIT_DIR/MERGE_RR"
then
- git show -s --pretty=format:"Learning from %h %s" "$commit"
+ git --no-pager show -s --format="Learning from %h %s" "$commit"
git rerere
git checkout -q $commit -- .
git rerere
diff --git a/contrib/scalar/Makefile b/contrib/scalar/Makefile
index 231b1ee179..37f283f35d 100644
--- a/contrib/scalar/Makefile
+++ b/contrib/scalar/Makefile
@@ -1,18 +1,8 @@
-QUIET_SUBDIR0 = +$(MAKE) -C # space to separate -C and subdir
-QUIET_SUBDIR1 =
-
-ifneq ($(findstring s,$(MAKEFLAGS)),s)
-ifndef V
- QUIET_GEN = @echo ' ' GEN $@;
- QUIET_SUBDIR0 = +@subdir=
- QUIET_SUBDIR1 = ;$(NO_SUBDIR) echo ' ' SUBDIR $$subdir; \
- $(MAKE) $(PRINT_DIR) -C $$subdir
-else
- export V
-endif
-endif
-
-all:
+# The default target of this Makefile is...
+all::
+
+# Import tree-wide shared Makefile behavior and libraries
+include ../../shared.mak
include ../../config.mak.uname
-include ../../config.mak.autogen
@@ -21,7 +11,7 @@ include ../../config.mak.uname
TARGETS = scalar$(X) scalar.o
GITLIBS = ../../common-main.o ../../libgit.a ../../xdiff/lib.a
-all: scalar$(X) ../../bin-wrappers/scalar
+all:: scalar$(X) ../../bin-wrappers/scalar
$(GITLIBS):
$(QUIET_SUBDIR0)../.. $(QUIET_SUBDIR1) $(subst ../../,,$@)
diff --git a/contrib/scalar/scalar.c b/contrib/scalar/scalar.c
index 1ce9c2b00e..58ca0e56f1 100644
--- a/contrib/scalar/scalar.c
+++ b/contrib/scalar/scalar.c
@@ -152,7 +152,6 @@ static int set_recommended_config(int reconfigure)
{ "pack.useBitmaps", "false", 1 },
{ "pack.useSparse", "true", 1 },
{ "receive.autoGC", "false", 1 },
- { "reset.quiet", "true", 1 },
{ "feature.manyFiles", "false", 1 },
{ "feature.experimental", "false", 1 },
{ "fetch.unpackLimit", "1", 1 },
@@ -808,6 +807,25 @@ int cmd_main(int argc, const char **argv)
struct strbuf scalar_usage = STRBUF_INIT;
int i;
+ while (argc > 1 && *argv[1] == '-') {
+ if (!strcmp(argv[1], "-C")) {
+ if (argc < 3)
+ die(_("-C requires a <directory>"));
+ if (chdir(argv[2]) < 0)
+ die_errno(_("could not change to '%s'"),
+ argv[2]);
+ argc -= 2;
+ argv += 2;
+ } else if (!strcmp(argv[1], "-c")) {
+ if (argc < 3)
+ die(_("-c requires a <key>=<value> argument"));
+ git_config_push_parameter(argv[2]);
+ argc -= 2;
+ argv += 2;
+ } else
+ break;
+ }
+
if (argc > 1) {
argv++;
argc--;
@@ -818,7 +836,8 @@ int cmd_main(int argc, const char **argv)
}
strbuf_addstr(&scalar_usage,
- N_("scalar <command> [<options>]\n\nCommands:\n"));
+ N_("scalar [-C <directory>] [-c <key>=<value>] "
+ "<command> [<options>]\n\nCommands:\n"));
for (i = 0; builtins[i].name; i++)
strbuf_addf(&scalar_usage, "\t%s\n", builtins[i].name);
diff --git a/contrib/scalar/scalar.txt b/contrib/scalar/scalar.txt
index f416d63728..cf4e5b889c 100644
--- a/contrib/scalar/scalar.txt
+++ b/contrib/scalar/scalar.txt
@@ -36,6 +36,16 @@ The `scalar` command implements various subcommands, and different options
depending on the subcommand. With the exception of `clone`, `list` and
`reconfigure --all`, all subcommands expect to be run in an enlistment.
+The following options can be specified _before_ the subcommand:
+
+-C <directory>::
+ Before running the subcommand, change the working directory. This
+ option imitates the same option of linkgit:git[1].
+
+-c <key>=<value>::
+ For the duration of running the specified subcommand, configure this
+ setting. This option imitates the same option of linkgit:git[1].
+
COMMANDS
--------
diff --git a/contrib/scalar/t/Makefile b/contrib/scalar/t/Makefile
index 6170672bb3..01e82e56d1 100644
--- a/contrib/scalar/t/Makefile
+++ b/contrib/scalar/t/Makefile
@@ -1,3 +1,6 @@
+# Import tree-wide shared Makefile behavior and libraries
+include ../../../shared.mak
+
# Run scalar tests
#
# Copyright (c) 2005,2021 Junio C Hamano, Johannes Schindelin
diff --git a/contrib/scalar/t/t9099-scalar.sh b/contrib/scalar/t/t9099-scalar.sh
index 2e1502ad45..89781568f4 100755
--- a/contrib/scalar/t/t9099-scalar.sh
+++ b/contrib/scalar/t/t9099-scalar.sh
@@ -85,4 +85,12 @@ test_expect_success 'scalar delete with enlistment' '
test_path_is_missing cloned
'
+test_expect_success 'scalar supports -c/-C' '
+ test_when_finished "scalar delete sub" &&
+ git init sub &&
+ scalar -C sub -c status.aheadBehind=bogus register &&
+ test -z "$(git -C sub config --local status.aheadBehind)" &&
+ test true = "$(git -C sub config core.preloadIndex)"
+'
+
test_done
diff --git a/contrib/subtree/git-subtree.sh b/contrib/subtree/git-subtree.sh
index 71f1fd94bd..1af1d9653e 100755
--- a/contrib/subtree/git-subtree.sh
+++ b/contrib/subtree/git-subtree.sh
@@ -975,10 +975,10 @@ cmd_merge () {
if test -n "$arg_addmerge_message"
then
- git merge -Xsubtree="$arg_prefix" \
+ git merge --no-ff -Xsubtree="$arg_prefix" \
--message="$arg_addmerge_message" "$rev"
else
- git merge -Xsubtree="$arg_prefix" $rev
+ git merge --no-ff -Xsubtree="$arg_prefix" $rev
fi
}
diff --git a/contrib/vscode/README.md b/contrib/vscode/README.md
index 8202d62035..f383c95e1f 100644
--- a/contrib/vscode/README.md
+++ b/contrib/vscode/README.md
@@ -6,7 +6,11 @@ code editor which runs on your desktop and is available for
[Windows](https://code.visualstudio.com/docs/setup/windows),
[macOS](https://code.visualstudio.com/docs/setup/mac) and
[Linux](https://code.visualstudio.com/docs/setup/linux). Among other languages,
-it has [support for C/C++ via an extension](https://github.com/Microsoft/vscode-cpptools).
+it has [support for C/C++ via an extension](https://github.com/Microsoft/vscode-cpptools) with
+[debugging support](https://code.visualstudio.com/docs/editor/debugging)
+
+To get help about "how to personalize your settings" read:
+[How to set up your settings](https://code.visualstudio.com/docs/getstarted/settings)
To start developing Git with VS Code, simply run the Unix shell script called
`init.sh` in this directory, which creates the configuration files in
diff --git a/contrib/vscode/init.sh b/contrib/vscode/init.sh
index 27de94994b..f139fd8644 100755
--- a/contrib/vscode/init.sh
+++ b/contrib/vscode/init.sh
@@ -271,7 +271,6 @@ cat >.vscode/launch.json.new <<EOF ||
"stopAtEntry": false,
"cwd": "\${workspaceFolder}",
"environment": [],
- "externalConsole": true,
"MIMode": "gdb",
"miDebuggerPath": "$GDBPATH",
"setupCommands": [
diff --git a/convert.c b/convert.c
index df7186bd81..4d153729da 100644
--- a/convert.c
+++ b/convert.c
@@ -195,9 +195,9 @@ static void check_global_conv_flags_eol(const char *path,
if (conv_flags & CONV_EOL_RNDTRP_DIE)
die(_("CRLF would be replaced by LF in %s"), path);
else if (conv_flags & CONV_EOL_RNDTRP_WARN)
- warning(_("CRLF will be replaced by LF in %s.\n"
- "The file will have its original line"
- " endings in your working directory"), path);
+ warning(_("in the working copy of '%s', CRLF will be"
+ " replaced by LF the next time Git touches"
+ " it"), path);
} else if (old_stats->lonelf && !new_stats->lonelf ) {
/*
* CRLFs would be added by checkout
@@ -205,9 +205,9 @@ static void check_global_conv_flags_eol(const char *path,
if (conv_flags & CONV_EOL_RNDTRP_DIE)
die(_("LF would be replaced by CRLF in %s"), path);
else if (conv_flags & CONV_EOL_RNDTRP_WARN)
- warning(_("LF will be replaced by CRLF in %s.\n"
- "The file will have its original line"
- " endings in your working directory"), path);
+ warning(_("in the working copy of '%s', LF will be"
+ " replaced by CRLF the next time Git touches"
+ " it"), path);
}
}
@@ -1159,7 +1159,7 @@ static int ident_to_worktree(const char *src, size_t len,
/* are we "faking" in place editing ? */
if (src == buf->buf)
to_free = strbuf_detach(buf, NULL);
- hash_object_file(the_hash_algo, src, len, "blob", &oid);
+ hash_object_file(the_hash_algo, src, len, OBJ_BLOB, &oid);
strbuf_grow(buf, len + cnt * (the_hash_algo->hexsz + 3));
for (;;) {
@@ -1574,12 +1574,12 @@ static void null_free_fn(struct stream_filter *filter)
}
static struct stream_filter_vtbl null_vtbl = {
- null_filter_fn,
- null_free_fn,
+ .filter = null_filter_fn,
+ .free = null_free_fn,
};
static struct stream_filter null_filter_singleton = {
- &null_vtbl,
+ .vtbl = &null_vtbl,
};
int is_null_stream_filter(struct stream_filter *filter)
@@ -1683,8 +1683,8 @@ static void lf_to_crlf_free_fn(struct stream_filter *filter)
}
static struct stream_filter_vtbl lf_to_crlf_vtbl = {
- lf_to_crlf_filter_fn,
- lf_to_crlf_free_fn,
+ .filter = lf_to_crlf_filter_fn,
+ .free = lf_to_crlf_free_fn,
};
static struct stream_filter *lf_to_crlf_filter(void)
@@ -1779,8 +1779,8 @@ static void cascade_free_fn(struct stream_filter *filter)
}
static struct stream_filter_vtbl cascade_vtbl = {
- cascade_filter_fn,
- cascade_free_fn,
+ .filter = cascade_filter_fn,
+ .free = cascade_free_fn,
};
static struct stream_filter *cascade_filter(struct stream_filter *one,
@@ -1931,8 +1931,8 @@ static void ident_free_fn(struct stream_filter *filter)
}
static struct stream_filter_vtbl ident_vtbl = {
- ident_filter_fn,
- ident_free_fn,
+ .filter = ident_filter_fn,
+ .free = ident_free_fn,
};
static struct stream_filter *ident_filter(const struct object_id *oid)
diff --git a/credential.c b/credential.c
index e7240f3f63..f6389a5068 100644
--- a/credential.c
+++ b/credential.c
@@ -130,6 +130,7 @@ static void credential_apply_config(struct credential *c)
git_config(urlmatch_config_entry, &config);
string_list_clear(&config.vars, 1);
free(normalized_url);
+ urlmatch_config_release(&config);
strbuf_release(&url);
c->configured = 1;
diff --git a/csum-file.c b/csum-file.c
index 26e8a6df44..59ef3398ca 100644
--- a/csum-file.c
+++ b/csum-file.c
@@ -58,7 +58,8 @@ static void free_hashfile(struct hashfile *f)
free(f);
}
-int finalize_hashfile(struct hashfile *f, unsigned char *result, unsigned int flags)
+int finalize_hashfile(struct hashfile *f, unsigned char *result,
+ enum fsync_component component, unsigned int flags)
{
int fd;
@@ -69,7 +70,7 @@ int finalize_hashfile(struct hashfile *f, unsigned char *result, unsigned int fl
if (flags & CSUM_HASH_IN_STREAM)
flush(f, f->buffer, the_hash_algo->rawsz);
if (flags & CSUM_FSYNC)
- fsync_or_die(f->fd, f->name);
+ fsync_component_or_die(component, f->fd, f->name);
if (flags & CSUM_CLOSE) {
if (close(f->fd))
die_errno("%s: sha1 file error on close", f->name);
diff --git a/csum-file.h b/csum-file.h
index 291215b34e..0d29f528fb 100644
--- a/csum-file.h
+++ b/csum-file.h
@@ -1,6 +1,7 @@
#ifndef CSUM_FILE_H
#define CSUM_FILE_H
+#include "cache.h"
#include "hash.h"
struct progress;
@@ -38,7 +39,7 @@ int hashfile_truncate(struct hashfile *, struct hashfile_checkpoint *);
struct hashfile *hashfd(int fd, const char *name);
struct hashfile *hashfd_check(const char *name);
struct hashfile *hashfd_throughput(int fd, const char *name, struct progress *tp);
-int finalize_hashfile(struct hashfile *, unsigned char *, unsigned int);
+int finalize_hashfile(struct hashfile *, unsigned char *, enum fsync_component, unsigned int);
void hashwrite(struct hashfile *, const void *, unsigned int);
void hashflush(struct hashfile *f);
void crc32_begin(struct hashfile *);
diff --git a/date.c b/date.c
index 84bb4451c1..68a260c214 100644
--- a/date.c
+++ b/date.c
@@ -5,6 +5,7 @@
*/
#include "cache.h"
+#include "date.h"
/*
* This is like mktime, but without normalization of tm_wday and tm_yday.
@@ -205,11 +206,10 @@ void show_date_relative(timestamp_t time, struct strbuf *timebuf)
struct date_mode *date_mode_from_type(enum date_mode_type type)
{
- static struct date_mode mode;
+ static struct date_mode mode = DATE_MODE_INIT;
if (type == DATE_STRFTIME)
BUG("cannot create anonymous strftime date_mode struct");
mode.type = type;
- mode.local = 0;
return &mode;
}
@@ -993,6 +993,11 @@ void parse_date_format(const char *format, struct date_mode *mode)
die("unknown date format %s", format);
}
+void date_mode_release(struct date_mode *mode)
+{
+ free((char *)mode->strftime_fmt);
+}
+
void datestamp(struct strbuf *out)
{
time_t now;
diff --git a/date.h b/date.h
new file mode 100644
index 0000000000..5d4eaba0a9
--- /dev/null
+++ b/date.h
@@ -0,0 +1,74 @@
+#ifndef DATE_H
+#define DATE_H
+
+/**
+ * The date mode type. This has DATE_NORMAL at an explicit "= 0" to
+ * accommodate a memset([...], 0, [...]) initialization when "struct
+ * date_mode" is used as an embedded struct member, as in the case of
+ * e.g. "struct pretty_print_context" and "struct rev_info".
+ */
+enum date_mode_type {
+ DATE_NORMAL = 0,
+ DATE_HUMAN,
+ DATE_RELATIVE,
+ DATE_SHORT,
+ DATE_ISO8601,
+ DATE_ISO8601_STRICT,
+ DATE_RFC2822,
+ DATE_STRFTIME,
+ DATE_RAW,
+ DATE_UNIX
+};
+
+struct date_mode {
+ enum date_mode_type type;
+ const char *strftime_fmt;
+ int local;
+};
+
+#define DATE_MODE_INIT { \
+ .type = DATE_NORMAL, \
+}
+
+/**
+ * Convenience helper for passing a constant type, like:
+ *
+ * show_date(t, tz, DATE_MODE(NORMAL));
+ */
+#define DATE_MODE(t) date_mode_from_type(DATE_##t)
+struct date_mode *date_mode_from_type(enum date_mode_type type);
+
+/**
+ * Format <'time', 'timezone'> into static memory according to 'mode'
+ * and return it. The mode is an initialized "struct date_mode"
+ * (usually from the DATE_MODE() macro).
+ */
+const char *show_date(timestamp_t time, int timezone, const struct date_mode *mode);
+
+/**
+ * Parse a date format for later use with show_date().
+ *
+ * When the "date_mode_type" is DATE_STRFTIME the "strftime_fmt"
+ * member of "struct date_mode" will be a malloc()'d format string to
+ * be used with strbuf_addftime(), in which case you'll need to call
+ * date_mode_release() later.
+ */
+void parse_date_format(const char *format, struct date_mode *mode);
+
+/**
+ * Release a "struct date_mode", currently only required if
+ * parse_date_format() has parsed a "DATE_STRFTIME" format.
+ */
+void date_mode_release(struct date_mode *mode);
+
+void show_date_relative(timestamp_t time, struct strbuf *timebuf);
+int parse_date(const char *date, struct strbuf *out);
+int parse_date_basic(const char *date, timestamp_t *timestamp, int *offset);
+int parse_expiry_date(const char *date, timestamp_t *timestamp);
+void datestamp(struct strbuf *out);
+#define approxidate(s) approxidate_careful((s), NULL)
+timestamp_t approxidate_careful(const char *, int *);
+timestamp_t approxidate_relative(const char *date);
+int date_overflows(timestamp_t date);
+time_t tm_to_time_t(const struct tm *tm);
+#endif
diff --git a/detect-compiler b/detect-compiler
index 11d60da5b7..50087f5670 100755
--- a/detect-compiler
+++ b/detect-compiler
@@ -9,7 +9,7 @@ CC="$*"
#
# FreeBSD clang version 3.4.1 (tags/RELEASE...)
get_version_line() {
- $CC -v 2>&1 | grep ' version '
+ LANG=C LC_ALL=C $CC -v 2>&1 | grep ' version '
}
get_family() {
diff --git a/diff-merges.c b/diff-merges.c
index 5060ccd890..7f64156b8b 100644
--- a/diff-merges.c
+++ b/diff-merges.c
@@ -17,12 +17,14 @@ static void suppress(struct rev_info *revs)
revs->combined_all_paths = 0;
revs->merges_imply_patch = 0;
revs->merges_need_diff = 0;
+ revs->remerge_diff = 0;
}
static void set_separate(struct rev_info *revs)
{
suppress(revs);
revs->separate_merges = 1;
+ revs->simplify_history = 0;
}
static void set_first_parent(struct rev_info *revs)
@@ -45,6 +47,13 @@ static void set_dense_combined(struct rev_info *revs)
revs->dense_combined_merges = 1;
}
+static void set_remerge_diff(struct rev_info *revs)
+{
+ suppress(revs);
+ revs->remerge_diff = 1;
+ revs->simplify_history = 0;
+}
+
static diff_merges_setup_func_t func_by_opt(const char *optarg)
{
if (!strcmp(optarg, "off") || !strcmp(optarg, "none"))
@@ -57,6 +66,8 @@ static diff_merges_setup_func_t func_by_opt(const char *optarg)
return set_combined;
else if (!strcmp(optarg, "cc") || !strcmp(optarg, "dense-combined"))
return set_dense_combined;
+ else if (!strcmp(optarg, "r") || !strcmp(optarg, "remerge"))
+ return set_remerge_diff;
else if (!strcmp(optarg, "m") || !strcmp(optarg, "on"))
return set_to_default;
return NULL;
@@ -67,7 +78,7 @@ static void set_diff_merges(struct rev_info *revs, const char *optarg)
diff_merges_setup_func_t func = func_by_opt(optarg);
if (!func)
- die(_("unknown value for --diff-merges: %s"), optarg);
+ die(_("invalid value for '%s': '%s'"), "--diff-merges", optarg);
func(revs);
@@ -110,6 +121,9 @@ int diff_merges_parse_opts(struct rev_info *revs, const char **argv)
} else if (!strcmp(arg, "--cc")) {
set_dense_combined(revs);
revs->merges_imply_patch = 1;
+ } else if (!strcmp(arg, "--remerge-diff")) {
+ set_remerge_diff(revs);
+ revs->merges_imply_patch = 1;
} else if (!strcmp(arg, "--no-diff-merges")) {
suppress(revs);
} else if (!strcmp(arg, "--combined-all-paths")) {
diff --git a/diff.c b/diff.c
index c862771a58..e71cf75886 100644
--- a/diff.c
+++ b/diff.c
@@ -28,6 +28,7 @@
#include "help.h"
#include "promisor-remote.h"
#include "dir.h"
+#include "strmap.h"
#ifdef NO_FAST_WORKING_DIRECTORY
#define FAST_WORKING_DIRECTORY 0
@@ -799,6 +800,14 @@ static void append_emitted_diff_symbol(struct diff_options *o,
f->line = e->line ? xmemdupz(e->line, e->len) : NULL;
}
+static void free_emitted_diff_symbols(struct emitted_diff_symbols *e)
+{
+ if (!e)
+ return;
+ free(e->buf);
+ free(e);
+}
+
struct moved_entry {
const struct emitted_diff_symbol *es;
struct moved_entry *next_line;
@@ -2226,7 +2235,7 @@ static void free_diff_words_data(struct emit_callback *ecbdata)
{
if (ecbdata->diff_words) {
diff_words_flush(ecbdata);
- free (ecbdata->diff_words->opt->emitted_symbols);
+ free_emitted_diff_symbols(ecbdata->diff_words->opt->emitted_symbols);
free (ecbdata->diff_words->opt);
free (ecbdata->diff_words->minus.text.ptr);
free (ecbdata->diff_words->minus.orig);
@@ -3353,6 +3362,31 @@ struct userdiff_driver *get_textconv(struct repository *r,
return userdiff_get_textconv(r, one->driver);
}
+static struct strbuf *additional_headers(struct diff_options *o,
+ const char *path)
+{
+ if (!o->additional_path_headers)
+ return NULL;
+ return strmap_get(o->additional_path_headers, path);
+}
+
+static void add_formatted_headers(struct strbuf *msg,
+ struct strbuf *more_headers,
+ const char *line_prefix,
+ const char *meta,
+ const char *reset)
+{
+ char *next, *newline;
+
+ for (next = more_headers->buf; *next; next = newline) {
+ newline = strchrnul(next, '\n');
+ strbuf_addf(msg, "%s%s%.*s%s\n", line_prefix, meta,
+ (int)(newline - next), next, reset);
+ if (*newline)
+ newline++;
+ }
+}
+
static void builtin_diff(const char *name_a,
const char *name_b,
struct diff_filespec *one,
@@ -3411,6 +3445,17 @@ static void builtin_diff(const char *name_a,
b_two = quote_two(b_prefix, name_b + (*name_b == '/'));
lbl[0] = DIFF_FILE_VALID(one) ? a_one : "/dev/null";
lbl[1] = DIFF_FILE_VALID(two) ? b_two : "/dev/null";
+ if (!DIFF_FILE_VALID(one) && !DIFF_FILE_VALID(two)) {
+ /*
+ * We should only reach this point for pairs from
+ * create_filepairs_for_header_only_notifications(). For
+ * these, we should avoid the "/dev/null" special casing
+ * above, meaning we avoid showing such pairs as either
+ * "new file" or "deleted file" below.
+ */
+ lbl[0] = a_one;
+ lbl[1] = b_two;
+ }
strbuf_addf(&header, "%s%sdiff --git %s %s%s\n", line_prefix, meta, a_one, b_two, reset);
if (lbl[0][0] == '/') {
/* /dev/null */
@@ -4091,18 +4136,13 @@ static void prep_temp_blob(struct index_state *istate,
int mode)
{
struct strbuf buf = STRBUF_INIT;
- struct strbuf tempfile = STRBUF_INIT;
char *path_dup = xstrdup(path);
const char *base = basename(path_dup);
struct checkout_metadata meta;
init_checkout_metadata(&meta, NULL, NULL, oid);
- /* Generate "XXXXXX_basename.ext" */
- strbuf_addstr(&tempfile, "XXXXXX_");
- strbuf_addstr(&tempfile, base);
-
- temp->tempfile = mks_tempfile_ts(tempfile.buf, strlen(base) + 1);
+ temp->tempfile = mks_tempfile_dt("git-blob-XXXXXX", base);
if (!temp->tempfile)
die_errno("unable to create temp-file");
if (convert_to_working_tree(istate, path,
@@ -4117,7 +4157,6 @@ static void prep_temp_blob(struct index_state *istate,
oid_to_hex_r(temp->hex, oid);
xsnprintf(temp->mode, sizeof(temp->mode), "%06o", mode);
strbuf_release(&buf);
- strbuf_release(&tempfile);
free(path_dup);
}
@@ -4275,6 +4314,7 @@ static void fill_metainfo(struct strbuf *msg,
const char *set = diff_get_color(use_color, DIFF_METAINFO);
const char *reset = diff_get_color(use_color, DIFF_RESET);
const char *line_prefix = diff_line_prefix(o);
+ struct strbuf *more_headers = NULL;
*must_show_header = 1;
strbuf_init(msg, PATH_MAX * 2 + 300);
@@ -4311,6 +4351,11 @@ static void fill_metainfo(struct strbuf *msg,
default:
*must_show_header = 0;
}
+ if ((more_headers = additional_headers(o, name))) {
+ add_formatted_headers(msg, more_headers,
+ line_prefix, set, reset);
+ *must_show_header = 1;
+ }
if (one && two && !oideq(&one->oid, &two->oid)) {
const unsigned hexsz = the_hash_algo->hexsz;
int abbrev = o->abbrev ? o->abbrev : DEFAULT_ABBREV;
@@ -4570,6 +4615,43 @@ void repo_diff_setup(struct repository *r, struct diff_options *options)
prep_parse_options(options);
}
+static const char diff_status_letters[] = {
+ DIFF_STATUS_ADDED,
+ DIFF_STATUS_COPIED,
+ DIFF_STATUS_DELETED,
+ DIFF_STATUS_MODIFIED,
+ DIFF_STATUS_RENAMED,
+ DIFF_STATUS_TYPE_CHANGED,
+ DIFF_STATUS_UNKNOWN,
+ DIFF_STATUS_UNMERGED,
+ DIFF_STATUS_FILTER_AON,
+ DIFF_STATUS_FILTER_BROKEN,
+ '\0',
+};
+
+static unsigned int filter_bit['Z' + 1];
+
+static void prepare_filter_bits(void)
+{
+ int i;
+
+ if (!filter_bit[DIFF_STATUS_ADDED]) {
+ for (i = 0; diff_status_letters[i]; i++)
+ filter_bit[(int) diff_status_letters[i]] = (1 << i);
+ }
+}
+
+static unsigned filter_bit_tst(char status, const struct diff_options *opt)
+{
+ return opt->filter & filter_bit[(int) status];
+}
+
+unsigned diff_filter_bit(char status)
+{
+ prepare_filter_bits();
+ return filter_bit[(int) status];
+}
+
void diff_setup_done(struct diff_options *options)
{
unsigned check_mask = DIFF_FORMAT_NAME |
@@ -4683,6 +4765,12 @@ void diff_setup_done(struct diff_options *options)
if (!options->use_color || external_diff())
options->color_moved = 0;
+ if (options->filter_not) {
+ if (!options->filter)
+ options->filter = ~filter_bit[DIFF_STATUS_FILTER_AON];
+ options->filter &= ~options->filter_not;
+ }
+
FREE_AND_NULL(options->parseopts);
}
@@ -4774,43 +4862,6 @@ static int parse_dirstat_opt(struct diff_options *options, const char *params)
return 1;
}
-static const char diff_status_letters[] = {
- DIFF_STATUS_ADDED,
- DIFF_STATUS_COPIED,
- DIFF_STATUS_DELETED,
- DIFF_STATUS_MODIFIED,
- DIFF_STATUS_RENAMED,
- DIFF_STATUS_TYPE_CHANGED,
- DIFF_STATUS_UNKNOWN,
- DIFF_STATUS_UNMERGED,
- DIFF_STATUS_FILTER_AON,
- DIFF_STATUS_FILTER_BROKEN,
- '\0',
-};
-
-static unsigned int filter_bit['Z' + 1];
-
-static void prepare_filter_bits(void)
-{
- int i;
-
- if (!filter_bit[DIFF_STATUS_ADDED]) {
- for (i = 0; diff_status_letters[i]; i++)
- filter_bit[(int) diff_status_letters[i]] = (1 << i);
- }
-}
-
-static unsigned filter_bit_tst(char status, const struct diff_options *opt)
-{
- return opt->filter & filter_bit[(int) status];
-}
-
-unsigned diff_filter_bit(char status)
-{
- prepare_filter_bits();
- return filter_bit[(int) status];
-}
-
static int diff_opt_diff_filter(const struct option *option,
const char *optarg, int unset)
{
@@ -4820,21 +4871,6 @@ static int diff_opt_diff_filter(const struct option *option,
BUG_ON_OPT_NEG(unset);
prepare_filter_bits();
- /*
- * If there is a negation e.g. 'd' in the input, and we haven't
- * initialized the filter field with another --diff-filter, start
- * from full set of bits, except for AON.
- */
- if (!opt->filter) {
- for (i = 0; (optch = optarg[i]) != '\0'; i++) {
- if (optch < 'a' || 'z' < optch)
- continue;
- opt->filter = (1 << (ARRAY_SIZE(diff_status_letters) - 1)) - 1;
- opt->filter &= ~filter_bit[DIFF_STATUS_FILTER_AON];
- break;
- }
- }
-
for (i = 0; (optch = optarg[i]) != '\0'; i++) {
unsigned int bit;
int negate;
@@ -4851,7 +4887,7 @@ static int diff_opt_diff_filter(const struct option *option,
return error(_("unknown change class '%c' in --diff-filter=%s"),
optarg[i], optarg);
if (negate)
- opt->filter &= ~bit;
+ opt->filter_not |= bit;
else
opt->filter |= bit;
}
@@ -5596,7 +5632,7 @@ static void prep_parse_options(struct diff_options *options)
N_("select files by diff type"),
PARSE_OPT_NONEG, diff_opt_diff_filter),
{ OPTION_CALLBACK, 0, "output", options, N_("<file>"),
- N_("Output to a specific file"),
+ N_("output to a specific file"),
PARSE_OPT_NONEG, NULL, 0, diff_opt_output },
OPT_END()
@@ -5803,12 +5839,27 @@ int diff_unmodified_pair(struct diff_filepair *p)
static void diff_flush_patch(struct diff_filepair *p, struct diff_options *o)
{
- if (diff_unmodified_pair(p))
+ int include_conflict_headers =
+ (additional_headers(o, p->one->path) &&
+ (!o->filter || filter_bit_tst(DIFF_STATUS_UNMERGED, o)));
+
+ /*
+ * Check if we can return early without showing a diff. Note that
+ * diff_filepair only stores {oid, path, mode, is_valid}
+ * information for each path, and thus diff_unmodified_pair() only
+ * considers those bits of info. However, we do not want pairs
+ * created by create_filepairs_for_header_only_notifications()
+ * (which always look like unmodified pairs) to be ignored, so
+ * return early if both p is unmodified AND we don't want to
+ * include_conflict_headers.
+ */
+ if (diff_unmodified_pair(p) && !include_conflict_headers)
return;
+ /* Actually, we can also return early to avoid showing tree diffs */
if ((DIFF_FILE_VALID(p->one) && S_ISDIR(p->one->mode)) ||
(DIFF_FILE_VALID(p->two) && S_ISDIR(p->two->mode)))
- return; /* no tree diffs in patch format */
+ return;
run_diff(p, o);
}
@@ -5839,10 +5890,17 @@ static void diff_flush_checkdiff(struct diff_filepair *p,
run_checkdiff(p, o);
}
-int diff_queue_is_empty(void)
+int diff_queue_is_empty(struct diff_options *o)
{
struct diff_queue_struct *q = &diff_queued_diff;
int i;
+ int include_conflict_headers =
+ (o->additional_path_headers &&
+ (!o->filter || filter_bit_tst(DIFF_STATUS_UNMERGED, o)));
+
+ if (include_conflict_headers)
+ return 0;
+
for (i = 0; i < q->nr; i++)
if (!diff_unmodified_pair(q->queue[i]))
return 0;
@@ -6276,6 +6334,54 @@ void diff_warn_rename_limit(const char *varname, int needed, int degraded_cc)
warning(_(rename_limit_advice), varname, needed);
}
+static void create_filepairs_for_header_only_notifications(struct diff_options *o)
+{
+ struct strset present;
+ struct diff_queue_struct *q = &diff_queued_diff;
+ struct hashmap_iter iter;
+ struct strmap_entry *e;
+ int i;
+
+ strset_init_with_options(&present, /*pool*/ NULL, /*strdup*/ 0);
+
+ /*
+ * Find out which paths exist in diff_queued_diff, preferring
+ * one->path for any pair that has multiple paths.
+ */
+ for (i = 0; i < q->nr; i++) {
+ struct diff_filepair *p = q->queue[i];
+ char *path = p->one->path ? p->one->path : p->two->path;
+
+ if (strmap_contains(o->additional_path_headers, path))
+ strset_add(&present, path);
+ }
+
+ /*
+ * Loop over paths in additional_path_headers; for each NOT already
+ * in diff_queued_diff, create a synthetic filepair and insert that
+ * into diff_queued_diff.
+ */
+ strmap_for_each_entry(o->additional_path_headers, &iter, e) {
+ if (!strset_contains(&present, e->key)) {
+ struct diff_filespec *one, *two;
+ struct diff_filepair *p;
+
+ one = alloc_filespec(e->key);
+ two = alloc_filespec(e->key);
+ fill_filespec(one, null_oid(), 0, 0);
+ fill_filespec(two, null_oid(), 0, 0);
+ p = diff_queue(q, one, two);
+ p->status = DIFF_STATUS_MODIFIED;
+ }
+ }
+
+ /* Re-sort the filepairs */
+ diffcore_fix_diff_index();
+
+ /* Cleanup */
+ strset_clear(&present);
+}
+
static void diff_flush_patch_all_file_pairs(struct diff_options *o)
{
int i;
@@ -6288,6 +6394,9 @@ static void diff_flush_patch_all_file_pairs(struct diff_options *o)
if (o->color_moved)
o->emitted_symbols = &esm;
+ if (o->additional_path_headers)
+ create_filepairs_for_header_only_notifications(o);
+
for (i = 0; i < q->nr; i++) {
struct diff_filepair *p = q->queue[i];
if (check_pair_status(p))
@@ -6345,6 +6454,8 @@ void diff_free(struct diff_options *options)
diff_free_file(options);
diff_free_ignore_regex(options);
+ clear_pathspec(&options->pathspec);
+ FREE_AND_NULL(options->parseopts);
}
void diff_flush(struct diff_options *options)
@@ -6358,7 +6469,7 @@ void diff_flush(struct diff_options *options)
* Order: raw, stat, summary, patch
* or: name/name-status/checkdiff (other bits clear)
*/
- if (!q->nr)
+ if (!q->nr && !options->additional_path_headers)
goto free_queue;
if (output_format & (DIFF_FORMAT_RAW |
diff --git a/diff.h b/diff.h
index 8ba85c5e60..8ae18e5ab1 100644
--- a/diff.h
+++ b/diff.h
@@ -283,7 +283,7 @@ struct diff_options {
struct diff_flags flags;
/* diff-filter bits */
- unsigned int filter;
+ unsigned int filter, filter_not;
int use_color;
@@ -395,6 +395,7 @@ struct diff_options {
struct repository *repo;
struct option *parseopts;
+ struct strmap *additional_path_headers;
int no_free;
};
@@ -593,7 +594,7 @@ void diffcore_fix_diff_index(void);
" show all files diff when -S is used and hit is found.\n" \
" -a --text treat all files as text.\n"
-int diff_queue_is_empty(void);
+int diff_queue_is_empty(struct diff_options *o);
void diff_flush(struct diff_options*);
void diff_free(struct diff_options*);
void diff_warn_rename_limit(const char *varname, int needed, int degraded_cc);
diff --git a/diffcore-rename.c b/diffcore-rename.c
index bebd4ed6a4..c0422d9e70 100644
--- a/diffcore-rename.c
+++ b/diffcore-rename.c
@@ -261,7 +261,7 @@ static unsigned int hash_filespec(struct repository *r,
if (diff_populate_filespec(r, filespec, NULL))
return 0;
hash_object_file(r->hash_algo, filespec->data, filespec->size,
- "blob", &filespec->oid);
+ OBJ_BLOB, &filespec->oid);
}
return oidhash(&filespec->oid);
}
diff --git a/dir.c b/dir.c
index fc2874aa43..6b030be2ec 100644
--- a/dir.c
+++ b/dir.c
@@ -1113,7 +1113,7 @@ static int add_patterns(const char *fname, const char *base, int baselen,
&istate->cache[pos]->oid);
else
hash_object_file(the_hash_algo, buf, size,
- "blob", &oid_stat->oid);
+ OBJ_BLOB, &oid_stat->oid);
fill_stat_data(&oid_stat->stat, &st);
oid_stat->valid = 1;
}
@@ -1463,10 +1463,11 @@ static int path_in_sparse_checkout_1(const char *path,
const char *end, *slash;
/*
- * We default to accepting a path if there are no patterns or
- * they are of the wrong type.
+ * We default to accepting a path if the path is empty, there are no
+ * patterns, or the patterns are of the wrong type.
*/
- if (init_sparse_checkout_patterns(istate) ||
+ if (!*path ||
+ init_sparse_checkout_patterns(istate) ||
(require_cone_mode &&
!istate->sparse_checkout_patterns->use_cone_patterns))
return 1;
@@ -2746,13 +2747,33 @@ static void set_untracked_ident(struct untracked_cache *uc)
strbuf_addch(&uc->ident, 0);
}
-static void new_untracked_cache(struct index_state *istate)
+static unsigned new_untracked_cache_flags(struct index_state *istate)
+{
+ struct repository *repo = istate->repo;
+ char *val;
+
+ /*
+ * This logic is coordinated with the setting of these flags in
+ * wt-status.c#wt_status_collect_untracked(), and the evaluation
+ * of the config setting in commit.c#git_status_config()
+ */
+ if (!repo_config_get_string(repo, "status.showuntrackedfiles", &val) &&
+ !strcmp(val, "all"))
+ return 0;
+
+ /*
+ * The default, if "all" is not set, is "normal" - leading us here.
+ * If the value is "none" then it really doesn't matter.
+ */
+ return DIR_SHOW_OTHER_DIRECTORIES | DIR_HIDE_EMPTY_DIRECTORIES;
+}
+
+static void new_untracked_cache(struct index_state *istate, int flags)
{
struct untracked_cache *uc = xcalloc(1, sizeof(*uc));
strbuf_init(&uc->ident, 100);
uc->exclude_per_dir = ".gitignore";
- /* should be the same flags used by git-status */
- uc->dir_flags = DIR_SHOW_OTHER_DIRECTORIES | DIR_HIDE_EMPTY_DIRECTORIES;
+ uc->dir_flags = flags >= 0 ? flags : new_untracked_cache_flags(istate);
set_untracked_ident(uc);
istate->untracked = uc;
istate->cache_changed |= UNTRACKED_CHANGED;
@@ -2761,11 +2782,11 @@ static void new_untracked_cache(struct index_state *istate)
void add_untracked_cache(struct index_state *istate)
{
if (!istate->untracked) {
- new_untracked_cache(istate);
+ new_untracked_cache(istate, -1);
} else {
if (!ident_in_untracked(istate->untracked)) {
free_untracked_cache(istate->untracked);
- new_untracked_cache(istate);
+ new_untracked_cache(istate, -1);
}
}
}
@@ -2781,7 +2802,8 @@ void remove_untracked_cache(struct index_state *istate)
static struct untracked_cache_dir *validate_untracked_cache(struct dir_struct *dir,
int base_len,
- const struct pathspec *pathspec)
+ const struct pathspec *pathspec,
+ struct index_state *istate)
{
struct untracked_cache_dir *root;
static int untracked_cache_disabled = -1;
@@ -2812,17 +2834,9 @@ static struct untracked_cache_dir *validate_untracked_cache(struct dir_struct *d
if (base_len || (pathspec && pathspec->nr))
return NULL;
- /* Different set of flags may produce different results */
- if (dir->flags != dir->untracked->dir_flags ||
- /*
- * See treat_directory(), case index_nonexistent. Without
- * this flag, we may need to also cache .git file content
- * for the resolve_gitlink_ref() call, which we don't.
- */
- !(dir->flags & DIR_SHOW_OTHER_DIRECTORIES) ||
- /* We don't support collecting ignore files */
- (dir->flags & (DIR_SHOW_IGNORED | DIR_SHOW_IGNORED_TOO |
- DIR_COLLECT_IGNORED)))
+ /* We don't support collecting ignore files */
+ if (dir->flags & (DIR_SHOW_IGNORED | DIR_SHOW_IGNORED_TOO |
+ DIR_COLLECT_IGNORED))
return NULL;
/*
@@ -2845,8 +2859,55 @@ static struct untracked_cache_dir *validate_untracked_cache(struct dir_struct *d
return NULL;
}
- if (!dir->untracked->root)
+ /*
+ * If the untracked structure we received does not have the same flags
+ * as requested in this run, we're going to need to either discard the
+ * existing structure (and potentially later recreate), or bypass the
+ * untracked cache mechanism for this run.
+ */
+ if (dir->flags != dir->untracked->dir_flags) {
+ /*
+ * If the untracked structure we received does not have the same flags
+ * as configured, then we need to reset / create a new "untracked"
+ * structure to match the new config.
+ *
+ * Keeping the saved and used untracked cache consistent with the
+ * configuration provides an opportunity for frequent users of
+ * "git status -uall" to leverage the untracked cache by aligning their
+ * configuration - setting "status.showuntrackedfiles" to "all" or
+ * "normal" as appropriate.
+ *
+ * Previously using -uall (or setting "status.showuntrackedfiles" to
+ * "all") was incompatible with untracked cache and *consistently*
+ * caused surprisingly bad performance (with fscache and fsmonitor
+ * enabled) on Windows.
+ *
+ * IMPROVEMENT OPPORTUNITY: If we reworked the untracked cache storage
+ * to not be as bound up with the desired output in a given run,
+ * and instead iterated through and stored enough information to
+ * correctly serve both "modes", then users could get peak performance
+ * with or without '-uall' regardless of their
+ * "status.showuntrackedfiles" config.
+ */
+ if (dir->untracked->dir_flags != new_untracked_cache_flags(istate)) {
+ free_untracked_cache(istate->untracked);
+ new_untracked_cache(istate, dir->flags);
+ dir->untracked = istate->untracked;
+ }
+ else {
+ /*
+ * Current untracked cache data is consistent with config, but not
+ * usable in this request/run; just bypass untracked cache.
+ */
+ return NULL;
+ }
+ }
+
+ if (!dir->untracked->root) {
+ /* Untracked cache existed but is not initialized; fix that */
FLEX_ALLOC_STR(dir->untracked->root, name, "");
+ istate->cache_changed |= UNTRACKED_CHANGED;
+ }
/* Validate $GIT_DIR/info/exclude and core.excludesfile */
root = dir->untracked->root;
@@ -2916,7 +2977,7 @@ int read_directory(struct dir_struct *dir, struct index_state *istate,
return dir->nr;
}
- untracked = validate_untracked_cache(dir, len, pathspec);
+ untracked = validate_untracked_cache(dir, len, pathspec, istate);
if (!untracked)
/*
* make sure untracked cache code path is disabled,
@@ -2936,7 +2997,9 @@ int read_directory(struct dir_struct *dir, struct index_state *istate,
if (force_untracked_cache < 0)
force_untracked_cache =
- git_env_bool("GIT_FORCE_UNTRACKED_CACHE", 0);
+ git_env_bool("GIT_FORCE_UNTRACKED_CACHE", -1);
+ if (force_untracked_cache < 0)
+ force_untracked_cache = (istate->repo->settings.core_untracked_cache == UNTRACKED_CACHE_WRITE);
if (force_untracked_cache &&
dir->untracked == istate->untracked &&
(dir->untracked->dir_opened ||
diff --git a/environment.c b/environment.c
index fd0501e77a..b3296ce7d1 100644
--- a/environment.c
+++ b/environment.c
@@ -42,8 +42,10 @@ const char *git_attributes_file;
const char *git_hooks_path;
int zlib_compression_level = Z_BEST_SPEED;
int pack_compression_level = Z_DEFAULT_COMPRESSION;
-int fsync_object_files;
+int fsync_object_files = -1;
int use_fsync = -1;
+enum fsync_method fsync_method = FSYNC_METHOD_DEFAULT;
+enum fsync_component fsync_components = FSYNC_COMPONENTS_DEFAULT;
size_t packed_git_window_size = DEFAULT_PACKED_GIT_WINDOW_SIZE;
size_t packed_git_limit = DEFAULT_PACKED_GIT_LIMIT;
size_t delta_base_cache_limit = 96 * 1024 * 1024;
@@ -70,6 +72,7 @@ char *notes_ref_name;
int grafts_replace_parents = 1;
int core_apply_sparse_checkout;
int core_sparse_checkout_cone;
+int sparse_expect_files_outside_of_patterns;
int merge_log_config = -1;
int precomposed_unicode = -1; /* see probe_utf8_pathname_composition() */
unsigned long pack_size_limit_cfg;
@@ -84,7 +87,6 @@ int protect_hfs = PROTECT_HFS_DEFAULT;
#define PROTECT_NTFS_DEFAULT 1
#endif
int protect_ntfs = PROTECT_NTFS_DEFAULT;
-const char *core_fsmonitor;
/*
* The character that begins a commented line in user-editable file
@@ -271,7 +273,7 @@ const char *get_git_work_tree(void)
return the_repository->worktree;
}
-char *get_object_directory(void)
+const char *get_object_directory(void)
{
if (!the_repository->objects->odb)
BUG("git environment hasn't been setup");
diff --git a/ewah/bitmap.c b/ewah/bitmap.c
index a4f9fcd1c1..ac61864163 100644
--- a/ewah/bitmap.c
+++ b/ewah/bitmap.c
@@ -216,11 +216,6 @@ int bitmap_is_subset(struct bitmap *self, struct bitmap *other)
return 0;
}
-void bitmap_reset(struct bitmap *bitmap)
-{
- memset(bitmap->words, 0x0, bitmap->word_alloc * sizeof(eword_t));
-}
-
void bitmap_free(struct bitmap *bitmap)
{
if (!bitmap)
diff --git a/ewah/ewok.h b/ewah/ewok.h
index 66920965da..7eb8b9b630 100644
--- a/ewah/ewok.h
+++ b/ewah/ewok.h
@@ -177,7 +177,6 @@ struct bitmap *bitmap_dup(const struct bitmap *src);
void bitmap_set(struct bitmap *self, size_t pos);
void bitmap_unset(struct bitmap *self, size_t pos);
int bitmap_get(struct bitmap *self, size_t pos);
-void bitmap_reset(struct bitmap *self);
void bitmap_free(struct bitmap *self);
int bitmap_equals(struct bitmap *self, struct bitmap *other);
int bitmap_is_subset(struct bitmap *self, struct bitmap *other);
diff --git a/fetch-negotiator.c b/fetch-negotiator.c
index 273390229f..be383367f5 100644
--- a/fetch-negotiator.c
+++ b/fetch-negotiator.c
@@ -18,8 +18,13 @@ void fetch_negotiator_init(struct repository *r,
noop_negotiator_init(negotiator);
return;
- case FETCH_NEGOTIATION_DEFAULT:
+ case FETCH_NEGOTIATION_CONSECUTIVE:
default_negotiator_init(negotiator);
return;
}
}
+
+void fetch_negotiator_init_noop(struct fetch_negotiator *negotiator)
+{
+ noop_negotiator_init(negotiator);
+}
diff --git a/fetch-negotiator.h b/fetch-negotiator.h
index ea78868504..e348905a1f 100644
--- a/fetch-negotiator.h
+++ b/fetch-negotiator.h
@@ -53,7 +53,15 @@ struct fetch_negotiator {
void *data;
};
+/*
+ * Initialize a negotiator based on the repository settings.
+ */
void fetch_negotiator_init(struct repository *r,
struct fetch_negotiator *negotiator);
+/*
+ * Initialize a noop negotiator.
+ */
+void fetch_negotiator_init_noop(struct fetch_negotiator *negotiator);
+
#endif
diff --git a/fetch-pack.c b/fetch-pack.c
index dd6ec449f2..4e1e88eea0 100644
--- a/fetch-pack.c
+++ b/fetch-pack.c
@@ -312,19 +312,21 @@ static int find_common(struct fetch_negotiator *negotiator,
const char *remote_hex;
struct object *o;
- /*
- * If that object is complete (i.e. it is an ancestor of a
- * local ref), we tell them we have it but do not have to
- * tell them about its ancestors, which they already know
- * about.
- *
- * We use lookup_object here because we are only
- * interested in the case we *know* the object is
- * reachable and we have already scanned it.
- */
- if (((o = lookup_object(the_repository, remote)) != NULL) &&
- (o->flags & COMPLETE)) {
- continue;
+ if (!args->refetch) {
+ /*
+ * If that object is complete (i.e. it is an ancestor of a
+ * local ref), we tell them we have it but do not have to
+ * tell them about its ancestors, which they already know
+ * about.
+ *
+ * We use lookup_object here because we are only
+ * interested in the case we *know* the object is
+ * reachable and we have already scanned it.
+ */
+ if (((o = lookup_object(the_repository, remote)) != NULL) &&
+ (o->flags & COMPLETE)) {
+ continue;
+ }
}
remote_hex = oid_to_hex(remote);
@@ -692,30 +694,37 @@ static void mark_complete_and_common_ref(struct fetch_negotiator *negotiator,
int old_save_commit_buffer = save_commit_buffer;
timestamp_t cutoff = 0;
+ if (args->refetch)
+ return;
+
save_commit_buffer = 0;
trace2_region_enter("fetch-pack", "parse_remote_refs_and_find_cutoff", NULL);
for (ref = *refs; ref; ref = ref->next) {
- struct object *o;
+ struct commit *commit;
+
+ commit = lookup_commit_in_graph(the_repository, &ref->old_oid);
+ if (!commit) {
+ struct object *o;
- if (!has_object_file_with_flags(&ref->old_oid,
+ if (!has_object_file_with_flags(&ref->old_oid,
OBJECT_INFO_QUICK |
- OBJECT_INFO_SKIP_FETCH_OBJECT))
- continue;
- o = parse_object(the_repository, &ref->old_oid);
- if (!o)
- continue;
+ OBJECT_INFO_SKIP_FETCH_OBJECT))
+ continue;
+ o = parse_object(the_repository, &ref->old_oid);
+ if (!o || o->type != OBJ_COMMIT)
+ continue;
+
+ commit = (struct commit *)o;
+ }
/*
* We already have it -- which may mean that we were
* in sync with the other side at some time after
* that (it is OK if we guess wrong here).
*/
- if (o->type == OBJ_COMMIT) {
- struct commit *commit = (struct commit *)o;
- if (!cutoff || cutoff < commit->date)
- cutoff = commit->date;
- }
+ if (!cutoff || cutoff < commit->date)
+ cutoff = commit->date;
}
trace2_region_leave("fetch-pack", "parse_remote_refs_and_find_cutoff", NULL);
@@ -1024,7 +1033,11 @@ static struct ref *do_fetch_pack(struct fetch_pack_args *args,
struct fetch_negotiator *negotiator;
negotiator = &negotiator_alloc;
- fetch_negotiator_init(r, negotiator);
+ if (args->refetch) {
+ fetch_negotiator_init_noop(negotiator);
+ } else {
+ fetch_negotiator_init(r, negotiator);
+ }
sort_ref_list(&ref, ref_compare_name);
QSORT(sought, nr_sought, cmp_ref_by_name);
@@ -1117,7 +1130,7 @@ static struct ref *do_fetch_pack(struct fetch_pack_args *args,
mark_complete_and_common_ref(negotiator, args, &ref);
filter_refs(args, &ref, sought, nr_sought);
- if (everything_local(args, &ref)) {
+ if (!args->refetch && everything_local(args, &ref)) {
packet_flush(fd[1]);
goto all_done;
}
@@ -1415,9 +1428,17 @@ static int process_ack(struct fetch_negotiator *negotiator,
* otherwise.
*/
if (*received_ready && reader->status != PACKET_READ_DELIM)
- die(_("expected packfile to be sent after 'ready'"));
+ /*
+ * TRANSLATORS: The parameter will be 'ready', a protocol
+ * keyword.
+ */
+ die(_("expected packfile to be sent after '%s'"), "ready");
if (!*received_ready && reader->status != PACKET_READ_FLUSH)
- die(_("expected no other sections to be sent after no 'ready'"));
+ /*
+ * TRANSLATORS: The parameter will be 'ready', a protocol
+ * keyword.
+ */
+ die(_("expected no other sections to be sent after no '%s'"), "ready");
return 0;
}
@@ -1575,7 +1596,10 @@ static struct ref *do_fetch_pack_v2(struct fetch_pack_args *args,
struct strvec index_pack_args = STRVEC_INIT;
negotiator = &negotiator_alloc;
- fetch_negotiator_init(r, negotiator);
+ if (args->refetch)
+ fetch_negotiator_init_noop(negotiator);
+ else
+ fetch_negotiator_init(r, negotiator);
packet_reader_init(&reader, fd[0], NULL, 0,
PACKET_READ_CHOMP_NEWLINE |
@@ -1601,7 +1625,7 @@ static struct ref *do_fetch_pack_v2(struct fetch_pack_args *args,
/* Filter 'ref' by 'sought' and those that aren't local */
mark_complete_and_common_ref(negotiator, args, &ref);
filter_refs(args, &ref, sought, nr_sought);
- if (everything_local(args, &ref))
+ if (!args->refetch && everything_local(args, &ref))
state = FETCH_DONE;
else
state = FETCH_SEND_REQUEST;
diff --git a/fetch-pack.h b/fetch-pack.h
index 7f94a2a583..8c7752fc82 100644
--- a/fetch-pack.h
+++ b/fetch-pack.h
@@ -42,6 +42,7 @@ struct fetch_pack_args {
unsigned update_shallow:1;
unsigned reject_shallow_remote:1;
unsigned deepen:1;
+ unsigned refetch:1;
/*
* Indicate that the remote of this request is a promisor remote. The
diff --git a/fsmonitor--daemon.h b/fsmonitor--daemon.h
new file mode 100644
index 0000000000..bd09fffc17
--- /dev/null
+++ b/fsmonitor--daemon.h
@@ -0,0 +1,166 @@
+#ifndef FSMONITOR_DAEMON_H
+#define FSMONITOR_DAEMON_H
+
+#ifdef HAVE_FSMONITOR_DAEMON_BACKEND
+
+#include "cache.h"
+#include "dir.h"
+#include "run-command.h"
+#include "simple-ipc.h"
+#include "thread-utils.h"
+
+struct fsmonitor_batch;
+struct fsmonitor_token_data;
+
+/*
+ * Create a new batch of path(s). The returned batch is considered
+ * private and not linked into the fsmonitor daemon state. The caller
+ * should fill this batch with one or more paths and then publish it.
+ */
+struct fsmonitor_batch *fsmonitor_batch__new(void);
+
+/*
+ * Free the list of batches starting with this one.
+ */
+void fsmonitor_batch__free_list(struct fsmonitor_batch *batch);
+
+/*
+ * Add this path to this batch of modified files.
+ *
+ * The batch should be private and NOT (yet) linked into the fsmonitor
+ * daemon state and therefore not yet visible to worker threads and so
+ * no locking is required.
+ */
+void fsmonitor_batch__add_path(struct fsmonitor_batch *batch, const char *path);
+
+struct fsmonitor_daemon_backend_data; /* opaque platform-specific data */
+
+struct fsmonitor_daemon_state {
+ pthread_t listener_thread;
+ pthread_mutex_t main_lock;
+
+ struct strbuf path_worktree_watch;
+ struct strbuf path_gitdir_watch;
+ int nr_paths_watching;
+
+ struct fsmonitor_token_data *current_token_data;
+
+ struct strbuf path_cookie_prefix;
+ pthread_cond_t cookies_cond;
+ int cookie_seq;
+ struct hashmap cookies;
+
+ int error_code;
+ struct fsmonitor_daemon_backend_data *backend_data;
+
+ struct ipc_server_data *ipc_server_data;
+};
+
+/*
+ * Pathname classifications.
+ *
+ * The daemon classifies the pathnames that it receives from file
+ * system notification events into the following categories and uses
+ * that to decide whether clients are told about them. (And to watch
+ * for file system synchronization events.)
+ *
+ * The daemon only collects and reports on the set of modified paths
+ * within the working directory (proper).
+ *
+ * The client should only care about paths within the working
+ * directory proper (inside the working directory and not ".git" nor
+ * inside of ".git/"). That is, the client has read the index and is
+ * asking for a list of any paths in the working directory that have
+ * been modified since the last token. The client does not care about
+ * file system changes within the ".git/" directory (such as new loose
+ * objects or packfiles). So the client will only receive paths that
+ * are classified as IS_WORKDIR_PATH.
+ *
+ * Note that ".git" is usually a directory and is therefore inside
+ * the cone of the FS watch that we have on the working directory root,
+ * so we will also get FS events for disk activity on and within ".git/"
+ * that we need to respond to or filter from the client.
+ *
+ * But Git also allows ".git" to be a *file* that points to a GITDIR
+ * outside of the working directory. When this happens, we need to
+ * create FS watches on both the working directory root *and* on the
+ * (external) GITDIR root. (The latter is required because we put
+ * cookie files inside it and use them to sync with the FS event
+ * stream.)
+ *
+ * Note that in the context of this discussion, I'm using "GITDIR"
+ * to only mean an external GITDIR referenced by a ".git" file.
+ *
+ * The platform FS event backends will receive watch-specific
+ * relative paths (except for those OS's that always emit absolute
+ * paths). We use the following enum and routines to classify each
+ * path so that we know how to handle it. There is a slight asymmetry
+ * here because ".git/" is inside the working directory and the
+ * (external) GITDIR is not, and therefore how we handle events may
+ * vary slightly, so I have different enums for "IS...DOT_GIT..." and
+ * "IS...GITDIR...".
+ *
+ * The daemon uses the IS_DOT_GIT and IS_GITDIR internally to mean the
+ * exact ".git" file/directory or GITDIR directory. If the daemon
+ * receives a delete event for either of these paths, it will
+ * automatically shutdown, for example.
+ *
+ * Note that the daemon DOES NOT explicitly watch nor special case the
+ * index. The daemon does not read the index nor have any internal
+ * index-relative state, so there are no "IS...INDEX..." enum values.
+ */
+enum fsmonitor_path_type {
+ IS_WORKDIR_PATH = 0,
+
+ IS_DOT_GIT,
+ IS_INSIDE_DOT_GIT,
+ IS_INSIDE_DOT_GIT_WITH_COOKIE_PREFIX,
+
+ IS_GITDIR,
+ IS_INSIDE_GITDIR,
+ IS_INSIDE_GITDIR_WITH_COOKIE_PREFIX,
+
+ IS_OUTSIDE_CONE,
+};
+
+/*
+ * Classify a pathname relative to the root of the working directory.
+ */
+enum fsmonitor_path_type fsmonitor_classify_path_workdir_relative(
+ const char *relative_path);
+
+/*
+ * Classify a pathname relative to a <gitdir> that is external to the
+ * worktree directory.
+ */
+enum fsmonitor_path_type fsmonitor_classify_path_gitdir_relative(
+ const char *relative_path);
+
+/*
+ * Classify an absolute pathname received from a filesystem event.
+ */
+enum fsmonitor_path_type fsmonitor_classify_path_absolute(
+ struct fsmonitor_daemon_state *state,
+ const char *path);
+
+/*
+ * Prepend the this batch of path(s) onto the list of batches associated
+ * with the current token. This makes the batch visible to worker threads.
+ *
+ * The caller no longer owns the batch and must not free it.
+ *
+ * Wake up the client threads waiting on these cookies.
+ */
+void fsmonitor_publish(struct fsmonitor_daemon_state *state,
+ struct fsmonitor_batch *batch,
+ const struct string_list *cookie_names);
+
+/*
+ * If the platform-specific layer loses sync with the filesystem,
+ * it should call this to invalidate cached data and abort waiting
+ * threads.
+ */
+void fsmonitor_force_resync(struct fsmonitor_daemon_state *state);
+
+#endif /* HAVE_FSMONITOR_DAEMON_BACKEND */
+#endif /* FSMONITOR_DAEMON_H */
diff --git a/fsmonitor-ipc.c b/fsmonitor-ipc.c
new file mode 100644
index 0000000000..789e7397ba
--- /dev/null
+++ b/fsmonitor-ipc.c
@@ -0,0 +1,171 @@
+#include "cache.h"
+#include "fsmonitor.h"
+#include "simple-ipc.h"
+#include "fsmonitor-ipc.h"
+#include "run-command.h"
+#include "strbuf.h"
+#include "trace2.h"
+
+#ifndef HAVE_FSMONITOR_DAEMON_BACKEND
+
+/*
+ * A trivial implementation of the fsmonitor_ipc__ API for unsupported
+ * platforms.
+ */
+
+int fsmonitor_ipc__is_supported(void)
+{
+ return 0;
+}
+
+const char *fsmonitor_ipc__get_path(void)
+{
+ return NULL;
+}
+
+enum ipc_active_state fsmonitor_ipc__get_state(void)
+{
+ return IPC_STATE__OTHER_ERROR;
+}
+
+int fsmonitor_ipc__send_query(const char *since_token,
+ struct strbuf *answer)
+{
+ return -1;
+}
+
+int fsmonitor_ipc__send_command(const char *command,
+ struct strbuf *answer)
+{
+ return -1;
+}
+
+#else
+
+int fsmonitor_ipc__is_supported(void)
+{
+ return 1;
+}
+
+GIT_PATH_FUNC(fsmonitor_ipc__get_path, "fsmonitor--daemon.ipc")
+
+enum ipc_active_state fsmonitor_ipc__get_state(void)
+{
+ return ipc_get_active_state(fsmonitor_ipc__get_path());
+}
+
+static int spawn_daemon(void)
+{
+ const char *args[] = { "fsmonitor--daemon", "start", NULL };
+
+ return run_command_v_opt_tr2(args, RUN_COMMAND_NO_STDIN | RUN_GIT_CMD,
+ "fsmonitor");
+}
+
+int fsmonitor_ipc__send_query(const char *since_token,
+ struct strbuf *answer)
+{
+ int ret = -1;
+ int tried_to_spawn = 0;
+ enum ipc_active_state state = IPC_STATE__OTHER_ERROR;
+ struct ipc_client_connection *connection = NULL;
+ struct ipc_client_connect_options options
+ = IPC_CLIENT_CONNECT_OPTIONS_INIT;
+ const char *tok = since_token ? since_token : "";
+ size_t tok_len = since_token ? strlen(since_token) : 0;
+
+ options.wait_if_busy = 1;
+ options.wait_if_not_found = 0;
+
+ trace2_region_enter("fsm_client", "query", NULL);
+ trace2_data_string("fsm_client", NULL, "query/command", tok);
+
+try_again:
+ state = ipc_client_try_connect(fsmonitor_ipc__get_path(), &options,
+ &connection);
+
+ switch (state) {
+ case IPC_STATE__LISTENING:
+ ret = ipc_client_send_command_to_connection(
+ connection, tok, tok_len, answer);
+ ipc_client_close_connection(connection);
+
+ trace2_data_intmax("fsm_client", NULL,
+ "query/response-length", answer->len);
+ goto done;
+
+ case IPC_STATE__NOT_LISTENING:
+ case IPC_STATE__PATH_NOT_FOUND:
+ if (tried_to_spawn)
+ goto done;
+
+ tried_to_spawn++;
+ if (spawn_daemon())
+ goto done;
+
+ /*
+ * Try again, but this time give the daemon a chance to
+ * actually create the pipe/socket.
+ *
+ * Granted, the daemon just started so it can't possibly have
+ * any FS cached yet, so we'll always get a trivial answer.
+ * BUT the answer should include a new token that can serve
+ * as the basis for subsequent requests.
+ */
+ options.wait_if_not_found = 1;
+ goto try_again;
+
+ case IPC_STATE__INVALID_PATH:
+ ret = error(_("fsmonitor_ipc__send_query: invalid path '%s'"),
+ fsmonitor_ipc__get_path());
+ goto done;
+
+ case IPC_STATE__OTHER_ERROR:
+ default:
+ ret = error(_("fsmonitor_ipc__send_query: unspecified error on '%s'"),
+ fsmonitor_ipc__get_path());
+ goto done;
+ }
+
+done:
+ trace2_region_leave("fsm_client", "query", NULL);
+
+ return ret;
+}
+
+int fsmonitor_ipc__send_command(const char *command,
+ struct strbuf *answer)
+{
+ struct ipc_client_connection *connection = NULL;
+ struct ipc_client_connect_options options
+ = IPC_CLIENT_CONNECT_OPTIONS_INIT;
+ int ret;
+ enum ipc_active_state state;
+ const char *c = command ? command : "";
+ size_t c_len = command ? strlen(command) : 0;
+
+ strbuf_reset(answer);
+
+ options.wait_if_busy = 1;
+ options.wait_if_not_found = 0;
+
+ state = ipc_client_try_connect(fsmonitor_ipc__get_path(), &options,
+ &connection);
+ if (state != IPC_STATE__LISTENING) {
+ die(_("fsmonitor--daemon is not running"));
+ return -1;
+ }
+
+ ret = ipc_client_send_command_to_connection(connection, c, c_len,
+ answer);
+ ipc_client_close_connection(connection);
+
+ if (ret == -1) {
+ die(_("could not send '%s' command to fsmonitor--daemon"), c);
+ return -1;
+ }
+
+ return 0;
+}
+
+#endif
diff --git a/fsmonitor-ipc.h b/fsmonitor-ipc.h
new file mode 100644
index 0000000000..b6a7067c3a
--- /dev/null
+++ b/fsmonitor-ipc.h
@@ -0,0 +1,48 @@
+#ifndef FSMONITOR_IPC_H
+#define FSMONITOR_IPC_H
+
+#include "simple-ipc.h"
+
+/*
+ * Returns true if built-in file system monitor daemon is defined
+ * for this platform.
+ */
+int fsmonitor_ipc__is_supported(void);
+
+/*
+ * Returns the pathname to the IPC named pipe or Unix domain socket
+ * where a `git-fsmonitor--daemon` process will listen. This is a
+ * per-worktree value.
+ *
+ * Returns NULL if the daemon is not supported on this platform.
+ */
+const char *fsmonitor_ipc__get_path(void);
+
+/*
+ * Try to determine whether there is a `git-fsmonitor--daemon` process
+ * listening on the IPC pipe/socket.
+ */
+enum ipc_active_state fsmonitor_ipc__get_state(void);
+
+/*
+ * Connect to a `git-fsmonitor--daemon` process via simple-ipc
+ * and ask for the set of changed files since the given token.
+ *
+ * Spawn a daemon process in the background if necessary.
+ *
+ * Returns -1 on error; 0 on success.
+ */
+int fsmonitor_ipc__send_query(const char *since_token,
+ struct strbuf *answer);
+
+/*
+ * Connect to a `git-fsmonitor--daemon` process via simple-ipc and
+ * send a command verb. If no daemon is available, we DO NOT try to
+ * start one.
+ *
+ * Returns -1 on error; 0 on success.
+ */
+int fsmonitor_ipc__send_command(const char *command,
+ struct strbuf *answer);
+
+#endif /* FSMONITOR_IPC_H */
diff --git a/fsmonitor-settings.c b/fsmonitor-settings.c
new file mode 100644
index 0000000000..757d230d53
--- /dev/null
+++ b/fsmonitor-settings.c
@@ -0,0 +1,114 @@
+#include "cache.h"
+#include "config.h"
+#include "repository.h"
+#include "fsmonitor-settings.h"
+
+/*
+ * We keep this structure defintion private and have getters
+ * for all fields so that we can lazy load it as needed.
+ */
+struct fsmonitor_settings {
+ enum fsmonitor_mode mode;
+ char *hook_path;
+};
+
+static void lookup_fsmonitor_settings(struct repository *r)
+{
+ struct fsmonitor_settings *s;
+ const char *const_str;
+ int bool_value;
+
+ if (r->settings.fsmonitor)
+ return;
+
+ CALLOC_ARRAY(s, 1);
+ s->mode = FSMONITOR_MODE_DISABLED;
+
+ r->settings.fsmonitor = s;
+
+ /*
+ * Overload the existing "core.fsmonitor" config setting (which
+ * has historically been either unset or a hook pathname) to
+ * now allow a boolean value to enable the builtin FSMonitor
+ * or to turn everything off. (This does imply that you can't
+ * use a hook script named "true" or "false", but that's OK.)
+ */
+ switch (repo_config_get_maybe_bool(r, "core.fsmonitor", &bool_value)) {
+
+ case 0: /* config value was set to <bool> */
+ if (bool_value)
+ fsm_settings__set_ipc(r);
+ return;
+
+ case 1: /* config value was unset */
+ const_str = getenv("GIT_TEST_FSMONITOR");
+ break;
+
+ case -1: /* config value set to an arbitrary string */
+ if (repo_config_get_pathname(r, "core.fsmonitor", &const_str))
+ return; /* should not happen */
+ break;
+
+ default: /* should not happen */
+ return;
+ }
+
+ if (!const_str || !*const_str)
+ return;
+
+ fsm_settings__set_hook(r, const_str);
+}
+
+enum fsmonitor_mode fsm_settings__get_mode(struct repository *r)
+{
+ if (!r)
+ r = the_repository;
+
+ lookup_fsmonitor_settings(r);
+
+ return r->settings.fsmonitor->mode;
+}
+
+const char *fsm_settings__get_hook_path(struct repository *r)
+{
+ if (!r)
+ r = the_repository;
+
+ lookup_fsmonitor_settings(r);
+
+ return r->settings.fsmonitor->hook_path;
+}
+
+void fsm_settings__set_ipc(struct repository *r)
+{
+ if (!r)
+ r = the_repository;
+
+ lookup_fsmonitor_settings(r);
+
+ r->settings.fsmonitor->mode = FSMONITOR_MODE_IPC;
+ FREE_AND_NULL(r->settings.fsmonitor->hook_path);
+}
+
+void fsm_settings__set_hook(struct repository *r, const char *path)
+{
+ if (!r)
+ r = the_repository;
+
+ lookup_fsmonitor_settings(r);
+
+ r->settings.fsmonitor->mode = FSMONITOR_MODE_HOOK;
+ FREE_AND_NULL(r->settings.fsmonitor->hook_path);
+ r->settings.fsmonitor->hook_path = strdup(path);
+}
+
+void fsm_settings__set_disabled(struct repository *r)
+{
+ if (!r)
+ r = the_repository;
+
+ lookup_fsmonitor_settings(r);
+
+ r->settings.fsmonitor->mode = FSMONITOR_MODE_DISABLED;
+ FREE_AND_NULL(r->settings.fsmonitor->hook_path);
+}
diff --git a/fsmonitor-settings.h b/fsmonitor-settings.h
new file mode 100644
index 0000000000..a4c5d7b488
--- /dev/null
+++ b/fsmonitor-settings.h
@@ -0,0 +1,21 @@
+#ifndef FSMONITOR_SETTINGS_H
+#define FSMONITOR_SETTINGS_H
+
+struct repository;
+
+enum fsmonitor_mode {
+ FSMONITOR_MODE_DISABLED = 0,
+ FSMONITOR_MODE_HOOK = 1, /* core.fsmonitor=<hook_path> */
+ FSMONITOR_MODE_IPC = 2, /* core.fsmonitor=<true> */
+};
+
+void fsm_settings__set_ipc(struct repository *r);
+void fsm_settings__set_hook(struct repository *r, const char *path);
+void fsm_settings__set_disabled(struct repository *r);
+
+enum fsmonitor_mode fsm_settings__get_mode(struct repository *r);
+const char *fsm_settings__get_hook_path(struct repository *r);
+
+struct fsmonitor_settings;
+
+#endif /* FSMONITOR_SETTINGS_H */
diff --git a/fsmonitor.c b/fsmonitor.c
index ab9bfc60b3..292a6742b4 100644
--- a/fsmonitor.c
+++ b/fsmonitor.c
@@ -3,6 +3,7 @@
#include "dir.h"
#include "ewah/ewok.h"
#include "fsmonitor.h"
+#include "fsmonitor-ipc.h"
#include "run-command.h"
#include "strbuf.h"
@@ -148,15 +149,18 @@ void write_fsmonitor_extension(struct strbuf *sb, struct index_state *istate)
/*
* Call the query-fsmonitor hook passing the last update token of the saved results.
*/
-static int query_fsmonitor(int version, const char *last_update, struct strbuf *query_result)
+static int query_fsmonitor_hook(struct repository *r,
+ int version,
+ const char *last_update,
+ struct strbuf *query_result)
{
struct child_process cp = CHILD_PROCESS_INIT;
int result;
- if (!core_fsmonitor)
+ if (fsm_settings__get_mode(r) != FSMONITOR_MODE_HOOK)
return -1;
- strvec_push(&cp.args, core_fsmonitor);
+ strvec_push(&cp.args, fsm_settings__get_hook_path(r));
strvec_pushf(&cp.args, "%d", version);
strvec_pushf(&cp.args, "%s", last_update);
cp.use_shell = 1;
@@ -168,29 +172,15 @@ static int query_fsmonitor(int version, const char *last_update, struct strbuf *
if (result)
trace2_data_intmax("fsm_hook", NULL, "query/failed", result);
- else {
+ else
trace2_data_intmax("fsm_hook", NULL, "query/response-length",
query_result->len);
- if (fsmonitor_is_trivial_response(query_result))
- trace2_data_intmax("fsm_hook", NULL,
- "query/trivial-response", 1);
- }
-
trace2_region_leave("fsm_hook", "query", NULL);
return result;
}
-int fsmonitor_is_trivial_response(const struct strbuf *query_result)
-{
- static char trivial_response[3] = { '\0', '/', '\0' };
-
- return query_result->len >= 3 &&
- !memcmp(trivial_response,
- &query_result->buf[query_result->len - 3], 3);
-}
-
static void fsmonitor_refresh_callback(struct index_state *istate, char *name)
{
int i, len = strlen(name);
@@ -229,6 +219,43 @@ static void fsmonitor_refresh_callback(struct index_state *istate, char *name)
untracked_cache_invalidate_path(istate, name, 0);
}
+/*
+ * The number of pathnames that we need to receive from FSMonitor
+ * before we force the index to be updated.
+ *
+ * Note that any pathname within the set of received paths MAY cause
+ * cache-entry or istate flag bits to be updated and thus cause the
+ * index to be updated on disk.
+ *
+ * However, the response may contain many paths (such as ignored
+ * paths) that will not update any flag bits. And thus not force the
+ * index to be updated. (This is fine and normal.) It also means
+ * that the token will not be updated in the FSMonitor index
+ * extension. So the next Git command will find the same token in the
+ * index, make the same token-relative request, and receive the same
+ * response (plus any newly changed paths). If this response is large
+ * (and continues to grow), performance could be impacted.
+ *
+ * For example, if the user runs a build and it writes 100K object
+ * files but doesn't modify any source files, the index would not need
+ * to be updated. The FSMonitor response (after the build and
+ * relative to a pre-build token) might be 5MB. Each subsequent Git
+ * command will receive that same 100K/5MB response until something
+ * causes the index to be updated. And `refresh_fsmonitor()` will
+ * have to iterate over those 100K paths each time.
+ *
+ * Performance could be improved if we optionally force update the
+ * index after a very large response and get an updated token into
+ * the FSMonitor index extension. This should allow subsequent
+ * commands to get smaller and more current responses.
+ *
+ * The value chosen here does not need to be precise. The index
+ * will be updated automatically the first time the user touches
+ * a tracked file and causes a command like `git status` to
+ * update an mtime to be updated and/or set a flag bit.
+ */
+static int fsmonitor_force_update_threshold = 100;
+
void refresh_fsmonitor(struct index_state *istate)
{
struct strbuf query_result = STRBUF_INIT;
@@ -238,17 +265,62 @@ void refresh_fsmonitor(struct index_state *istate)
struct strbuf last_update_token = STRBUF_INIT;
char *buf;
unsigned int i;
+ int is_trivial = 0;
+ struct repository *r = istate->repo ? istate->repo : the_repository;
+ enum fsmonitor_mode fsm_mode = fsm_settings__get_mode(r);
- if (!core_fsmonitor || istate->fsmonitor_has_run_once)
+ if (fsm_mode <= FSMONITOR_MODE_DISABLED ||
+ istate->fsmonitor_has_run_once)
return;
- hook_version = fsmonitor_hook_version();
-
istate->fsmonitor_has_run_once = 1;
trace_printf_key(&trace_fsmonitor, "refresh fsmonitor");
+
+ if (fsm_mode == FSMONITOR_MODE_IPC) {
+ query_success = !fsmonitor_ipc__send_query(
+ istate->fsmonitor_last_update ?
+ istate->fsmonitor_last_update : "builtin:fake",
+ &query_result);
+ if (query_success) {
+ /*
+ * The response contains a series of nul terminated
+ * strings. The first is the new token.
+ *
+ * Use `char *buf` as an interlude to trick the CI
+ * static analysis to let us use `strbuf_addstr()`
+ * here (and only copy the token) rather than
+ * `strbuf_addbuf()`.
+ */
+ buf = query_result.buf;
+ strbuf_addstr(&last_update_token, buf);
+ bol = last_update_token.len + 1;
+ is_trivial = query_result.buf[bol] == '/';
+ if (is_trivial)
+ trace2_data_intmax("fsm_client", NULL,
+ "query/trivial-response", 1);
+ } else {
+ /*
+ * The builtin daemon is not available on this
+ * platform -OR- we failed to get a response.
+ *
+ * Generate a fake token (rather than a V1
+ * timestamp) for the index extension. (If
+ * they switch back to the hook API, we don't
+ * want ambiguous state.)
+ */
+ strbuf_addstr(&last_update_token, "builtin:fake");
+ }
+
+ goto apply_results;
+ }
+
+ assert(fsm_mode == FSMONITOR_MODE_HOOK);
+
+ hook_version = fsmonitor_hook_version();
+
/*
- * This could be racy so save the date/time now and query_fsmonitor
+ * This could be racy so save the date/time now and query_fsmonitor_hook
* should be inclusive to ensure we don't miss potential changes.
*/
last_update = getnanotime();
@@ -256,13 +328,14 @@ void refresh_fsmonitor(struct index_state *istate)
strbuf_addf(&last_update_token, "%"PRIu64"", last_update);
/*
- * If we have a last update token, call query_fsmonitor for the set of
+ * If we have a last update token, call query_fsmonitor_hook for the set of
* changes since that token, else assume everything is possibly dirty
* and check it all.
*/
if (istate->fsmonitor_last_update) {
if (hook_version == -1 || hook_version == HOOK_INTERFACE_VERSION2) {
- query_success = !query_fsmonitor(HOOK_INTERFACE_VERSION2,
+ query_success = !query_fsmonitor_hook(
+ r, HOOK_INTERFACE_VERSION2,
istate->fsmonitor_last_update, &query_result);
if (query_success) {
@@ -283,6 +356,7 @@ void refresh_fsmonitor(struct index_state *istate)
query_success = 0;
} else {
bol = last_update_token.len + 1;
+ is_trivial = query_result.buf[bol] == '/';
}
} else if (hook_version < 0) {
hook_version = HOOK_INTERFACE_VERSION1;
@@ -292,37 +366,83 @@ void refresh_fsmonitor(struct index_state *istate)
}
if (hook_version == HOOK_INTERFACE_VERSION1) {
- query_success = !query_fsmonitor(HOOK_INTERFACE_VERSION1,
+ query_success = !query_fsmonitor_hook(
+ r, HOOK_INTERFACE_VERSION1,
istate->fsmonitor_last_update, &query_result);
+ if (query_success)
+ is_trivial = query_result.buf[0] == '/';
}
- trace_performance_since(last_update, "fsmonitor process '%s'", core_fsmonitor);
- trace_printf_key(&trace_fsmonitor, "fsmonitor process '%s' returned %s",
- core_fsmonitor, query_success ? "success" : "failure");
+ if (is_trivial)
+ trace2_data_intmax("fsm_hook", NULL,
+ "query/trivial-response", 1);
+
+ trace_performance_since(last_update, "fsmonitor process '%s'",
+ fsm_settings__get_hook_path(r));
+ trace_printf_key(&trace_fsmonitor,
+ "fsmonitor process '%s' returned %s",
+ fsm_settings__get_hook_path(r),
+ query_success ? "success" : "failure");
}
- /* a fsmonitor process can return '/' to indicate all entries are invalid */
- if (query_success && query_result.buf[bol] != '/') {
- /* Mark all entries returned by the monitor as dirty */
+apply_results:
+ /*
+ * The response from FSMonitor (excluding the header token) is
+ * either:
+ *
+ * [a] a (possibly empty) list of NUL delimited relative
+ * pathnames of changed paths. This list can contain
+ * files and directories. Directories have a trailing
+ * slash.
+ *
+ * [b] a single '/' to indicate the provider had no
+ * information and that we should consider everything
+ * invalid. We call this a trivial response.
+ */
+ trace2_region_enter("fsmonitor", "apply_results", istate->repo);
+
+ if (query_success && !is_trivial) {
+ /*
+ * Mark all pathnames returned by the monitor as dirty.
+ *
+ * This updates both the cache-entries and the untracked-cache.
+ */
+ int count = 0;
+
buf = query_result.buf;
for (i = bol; i < query_result.len; i++) {
if (buf[i] != '\0')
continue;
fsmonitor_refresh_callback(istate, buf + bol);
bol = i + 1;
+ count++;
}
- if (bol < query_result.len)
+ if (bol < query_result.len) {
fsmonitor_refresh_callback(istate, buf + bol);
+ count++;
+ }
/* Now mark the untracked cache for fsmonitor usage */
if (istate->untracked)
istate->untracked->use_fsmonitor = 1;
- } else {
- /* We only want to run the post index changed hook if we've actually changed entries, so keep track
- * if we actually changed entries or not */
+ if (count > fsmonitor_force_update_threshold)
+ istate->cache_changed |= FSMONITOR_CHANGED;
+
+ trace2_data_intmax("fsmonitor", istate->repo, "apply_count",
+ count);
+
+ } else {
+ /*
+ * We failed to get a response or received a trivial response,
+ * so invalidate everything.
+ *
+ * We only want to run the post index changed hook if
+ * we've actually changed entries, so keep track if we
+ * actually changed entries or not.
+ */
int is_cache_changed = 0;
- /* Mark all entries invalid */
+
for (i = 0; i < istate->cache_nr; i++) {
if (istate->cache[i]->ce_flags & CE_FSMONITOR_VALID) {
is_cache_changed = 1;
@@ -330,13 +450,18 @@ void refresh_fsmonitor(struct index_state *istate)
}
}
- /* If we're going to check every file, ensure we save the results */
+ /*
+ * If we're going to check every file, ensure we save
+ * the results.
+ */
if (is_cache_changed)
istate->cache_changed |= FSMONITOR_CHANGED;
if (istate->untracked)
istate->untracked->use_fsmonitor = 0;
}
+ trace2_region_leave("fsmonitor", "apply_results", istate->repo);
+
strbuf_release(&query_result);
/* Now that we've updated istate, save the last_update_token */
@@ -411,7 +536,8 @@ void remove_fsmonitor(struct index_state *istate)
void tweak_fsmonitor(struct index_state *istate)
{
unsigned int i;
- int fsmonitor_enabled = git_config_get_fsmonitor();
+ int fsmonitor_enabled = (fsm_settings__get_mode(istate->repo)
+ > FSMONITOR_MODE_DISABLED);
if (istate->fsmonitor_dirty) {
if (fsmonitor_enabled) {
@@ -431,16 +557,8 @@ void tweak_fsmonitor(struct index_state *istate)
istate->fsmonitor_dirty = NULL;
}
- switch (fsmonitor_enabled) {
- case -1: /* keep: do nothing */
- break;
- case 0: /* false */
- remove_fsmonitor(istate);
- break;
- case 1: /* true */
+ if (fsmonitor_enabled)
add_fsmonitor(istate);
- break;
- default: /* unknown value: do nothing */
- break;
- }
+ else
+ remove_fsmonitor(istate);
}
diff --git a/fsmonitor.h b/fsmonitor.h
index f20d72631d..3f41f65369 100644
--- a/fsmonitor.h
+++ b/fsmonitor.h
@@ -3,6 +3,7 @@
#include "cache.h"
#include "dir.h"
+#include "fsmonitor-settings.h"
extern struct trace_key trace_fsmonitor;
@@ -57,7 +58,10 @@ int fsmonitor_is_trivial_response(const struct strbuf *query_result);
*/
static inline int is_fsmonitor_refreshed(const struct index_state *istate)
{
- return !core_fsmonitor || istate->fsmonitor_has_run_once;
+ enum fsmonitor_mode fsm_mode = fsm_settings__get_mode(istate->repo);
+
+ return fsm_mode <= FSMONITOR_MODE_DISABLED ||
+ istate->fsmonitor_has_run_once;
}
/*
@@ -67,7 +71,10 @@ static inline int is_fsmonitor_refreshed(const struct index_state *istate)
*/
static inline void mark_fsmonitor_valid(struct index_state *istate, struct cache_entry *ce)
{
- if (core_fsmonitor && !(ce->ce_flags & CE_FSMONITOR_VALID)) {
+ enum fsmonitor_mode fsm_mode = fsm_settings__get_mode(istate->repo);
+
+ if (fsm_mode > FSMONITOR_MODE_DISABLED &&
+ !(ce->ce_flags & CE_FSMONITOR_VALID)) {
istate->cache_changed = 1;
ce->ce_flags |= CE_FSMONITOR_VALID;
trace_printf_key(&trace_fsmonitor, "mark_fsmonitor_clean '%s'", ce->name);
@@ -83,7 +90,9 @@ static inline void mark_fsmonitor_valid(struct index_state *istate, struct cache
*/
static inline void mark_fsmonitor_invalid(struct index_state *istate, struct cache_entry *ce)
{
- if (core_fsmonitor) {
+ enum fsmonitor_mode fsm_mode = fsm_settings__get_mode(istate->repo);
+
+ if (fsm_mode > FSMONITOR_MODE_DISABLED) {
ce->ce_flags &= ~CE_FSMONITOR_VALID;
untracked_cache_invalidate_path(istate, ce->name, 1);
trace_printf_key(&trace_fsmonitor, "mark_fsmonitor_invalid '%s'", ce->name);
diff --git a/git-compat-util.h b/git-compat-util.h
index e30a374a84..58fd813bd0 100644
--- a/git-compat-util.h
+++ b/git-compat-util.h
@@ -267,6 +267,12 @@
#else
#include <stdint.h>
#endif
+#ifdef HAVE_ARC4RANDOM_LIBBSD
+#include <bsd/stdlib.h>
+#endif
+#ifdef HAVE_GETRANDOM
+#include <sys/random.h>
+#endif
#ifdef NO_INTPTR_T
/*
* On I16LP32, ILP32 and LP64 "long" is the safe bet, however
@@ -531,12 +537,14 @@ void warning_errno(const char *err, ...) __attribute__((format (printf, 1, 2)));
#include <openssl/x509v3.h>
#endif /* NO_OPENSSL */
+#ifdef HAVE_OPENSSL_CSPRNG
+#include <openssl/rand.h>
+#endif
+
/*
* Let callers be aware of the constant return value; this can help
* gcc with -Wuninitialized analysis. We restrict this trick to gcc, though,
- * because some compilers may not support variadic macros. Since we're only
- * trying to help gcc, anyway, it's OK; other compilers will fall back to
- * using the function as usual.
+ * because other compilers may be confused by this.
*/
#if defined(__GNUC__)
static inline int const_error(void)
@@ -1258,25 +1266,42 @@ static inline int regexec_buf(const regex_t *preg, const char *buf, size_t size,
#endif
#endif
-/*
- * This is always defined as a first step towards making the use of variadic
- * macros unconditional. If it causes compilation problems on your platform,
- * please report it to the Git mailing list at git@vger.kernel.org.
- */
-#define HAVE_VARIADIC_MACROS 1
-
/* usage.c: only to be used for testing BUG() implementation (see test-tool) */
extern int BUG_exit_code;
-#ifdef HAVE_VARIADIC_MACROS
__attribute__((format (printf, 3, 4))) NORETURN
void BUG_fl(const char *file, int line, const char *fmt, ...);
#define BUG(...) BUG_fl(__FILE__, __LINE__, __VA_ARGS__)
+
+#ifdef __APPLE__
+#define FSYNC_METHOD_DEFAULT FSYNC_METHOD_WRITEOUT_ONLY
#else
-__attribute__((format (printf, 1, 2))) NORETURN
-void BUG(const char *fmt, ...);
+#define FSYNC_METHOD_DEFAULT FSYNC_METHOD_FSYNC
#endif
+enum fsync_action {
+ FSYNC_WRITEOUT_ONLY,
+ FSYNC_HARDWARE_FLUSH
+};
+
+/*
+ * Issues an fsync against the specified file according to the specified mode.
+ *
+ * FSYNC_WRITEOUT_ONLY attempts to use interfaces available on some operating
+ * systems to flush the OS cache without issuing a flush command to the storage
+ * controller. If those interfaces are unavailable, the function fails with
+ * ENOSYS.
+ *
+ * FSYNC_HARDWARE_FLUSH does an OS writeout and hardware flush to ensure that
+ * changes are durable. It is not expected to fail.
+ */
+int git_fsync(int fd, enum fsync_action action);
+
+/*
+ * Writes out trace statistics for fsync using the trace2 API.
+ */
+void trace_git_fsync_stats(void);
+
/*
* Preserves errno, prints a message, but gives no warning for ENOENT.
* Returns 0 on success, which includes trying to unlink an object that does
@@ -1398,6 +1423,18 @@ void unleak_memory(const void *ptr, size_t len);
#define UNLEAK(var) do {} while (0)
#endif
+#define z_const
+#include <zlib.h>
+
+#if ZLIB_VERNUM < 0x1290
+/*
+ * This is uncompress2, which is only available in zlib >= 1.2.9
+ * (released as of early 2017). See compat/zlib-uncompress2.c.
+ */
+int uncompress2(Bytef *dest, uLongf *destLen, const Bytef *source,
+ uLong *sourceLen);
+#endif
+
/*
* This include must come after system headers, since it introduces macros that
* replace system names.
@@ -1444,4 +1481,11 @@ static inline void *container_of_or_null_offset(void *ptr, size_t offset)
void sleep_millisec(int millisec);
+/*
+ * Generate len bytes from the system cryptographically secure PRNG.
+ * Returns 0 on success and -1 on error, setting errno. The inability to
+ * satisfy the full request is an error.
+ */
+int csprng_bytes(void *buf, size_t len);
+
#endif
diff --git a/git-mergetool--lib.sh b/git-mergetool--lib.sh
index 542a6a75eb..9f99201bcc 100644
--- a/git-mergetool--lib.sh
+++ b/git-mergetool--lib.sh
@@ -63,7 +63,7 @@ $(list_tool_variants)"
preamble=
fi
shown_any=yes
- printf "%s%s\n" "$per_line_prefix" "$toolname"
+ printf "%s%-15s %s\n" "$per_line_prefix" "$toolname" $(diff_mode && diff_cmd_help "$toolname" || merge_cmd_help "$toolname")
fi
done
@@ -162,10 +162,18 @@ setup_tool () {
return 1
}
+ diff_cmd_help () {
+ return 0
+ }
+
merge_cmd () {
return 1
}
+ merge_cmd_help () {
+ return 0
+ }
+
hide_resolved_enabled () {
return 0
}
diff --git a/git-p4.py b/git-p4.py
index cb37545455..c47abb4bff 100755
--- a/git-p4.py
+++ b/git-p4.py
@@ -7,34 +7,51 @@
# 2007 Trolltech ASA
# License: MIT <http://www.opensource.org/licenses/mit-license.php>
#
-# pylint: disable=invalid-name,missing-docstring,too-many-arguments,broad-except
-# pylint: disable=no-self-use,wrong-import-position,consider-iterating-dictionary
-# pylint: disable=wrong-import-order,unused-import,too-few-public-methods
-# pylint: disable=too-many-lines,ungrouped-imports,fixme,too-many-locals
-# pylint: disable=line-too-long,bad-whitespace,superfluous-parens
-# pylint: disable=too-many-statements,too-many-instance-attributes
-# pylint: disable=too-many-branches,too-many-nested-blocks
+# pylint: disable=bad-whitespace
+# pylint: disable=broad-except
+# pylint: disable=consider-iterating-dictionary
+# pylint: disable=disable
+# pylint: disable=fixme
+# pylint: disable=invalid-name
+# pylint: disable=line-too-long
+# pylint: disable=missing-docstring
+# pylint: disable=no-self-use
+# pylint: disable=superfluous-parens
+# pylint: disable=too-few-public-methods
+# pylint: disable=too-many-arguments
+# pylint: disable=too-many-branches
+# pylint: disable=too-many-instance-attributes
+# pylint: disable=too-many-lines
+# pylint: disable=too-many-locals
+# pylint: disable=too-many-nested-blocks
+# pylint: disable=too-many-statements
+# pylint: disable=ungrouped-imports
+# pylint: disable=unused-import
+# pylint: disable=wrong-import-order
+# pylint: disable=wrong-import-position
#
+
import sys
if sys.version_info.major < 3 and sys.version_info.minor < 7:
sys.stderr.write("git-p4: requires Python 2.7 or later.\n")
sys.exit(1)
-import os
-import optparse
+
+import ctypes
+import errno
import functools
+import glob
import marshal
-import subprocess
-import tempfile
-import time
+import optparse
+import os
import platform
import re
import shutil
import stat
+import subprocess
+import tempfile
+import time
import zipfile
import zlib
-import ctypes
-import errno
-import glob
# On python2.7 where raw_input() and input() are both availble,
# we want raw_input's semantics, but aliased to input for python3
@@ -52,17 +69,18 @@ verbose = False
defaultLabelRegexp = r'[a-zA-Z0-9_\-.]+$'
# The block size is reduced automatically if required
-defaultBlockSize = 1<<20
+defaultBlockSize = 1 << 20
p4_access_checked = False
re_ko_keywords = re.compile(br'\$(Id|Header)(:[^$\n]+)?\$')
re_k_keywords = re.compile(br'\$(Id|Header|Author|Date|DateTime|Change|File|Revision)(:[^$\n]+)?\$')
+
def format_size_human_readable(num):
- """ Returns a number of units (typically bytes) formatted as a human-readable
- string.
- """
+ """Returns a number of units (typically bytes) formatted as a
+ human-readable string.
+ """
if num < 1024:
return '{:d} B'.format(num)
for unit in ["Ki", "Mi", "Gi", "Ti", "Pi", "Ei", "Zi"]:
@@ -71,18 +89,19 @@ def format_size_human_readable(num):
return "{:3.1f} {}B".format(num, unit)
return "{:.1f} YiB".format(num)
+
def p4_build_cmd(cmd):
"""Build a suitable p4 command line.
- This consolidates building and returning a p4 command line into one
- location. It means that hooking into the environment, or other configuration
- can be done more easily.
- """
+ This consolidates building and returning a p4 command line into one
+ location. It means that hooking into the environment, or other
+ configuration can be done more easily.
+ """
real_cmd = ["p4"]
user = gitConfig("git-p4.user")
if len(user) > 0:
- real_cmd += ["-u",user]
+ real_cmd += ["-u", user]
password = gitConfig("git-p4.password")
if len(password) > 0:
@@ -108,10 +127,7 @@ def p4_build_cmd(cmd):
# Provide a way to not pass this option by setting git-p4.retries to 0
real_cmd += ["-r", str(retries)]
- if not isinstance(cmd, list):
- real_cmd = ' '.join(real_cmd) + ' ' + cmd
- else:
- real_cmd += cmd
+ real_cmd += cmd
# now check that we can actually talk to the server
global p4_access_checked
@@ -121,31 +137,31 @@ def p4_build_cmd(cmd):
return real_cmd
+
def git_dir(path):
- """ Return TRUE if the given path is a git directory (/path/to/dir/.git).
- This won't automatically add ".git" to a directory.
- """
+ """Return TRUE if the given path is a git directory (/path/to/dir/.git).
+ This won't automatically add ".git" to a directory.
+ """
d = read_pipe(["git", "--git-dir", path, "rev-parse", "--git-dir"], True).strip()
if not d or len(d) == 0:
return None
else:
return d
+
def chdir(path, is_client_path=False):
- """Do chdir to the given path, and set the PWD environment
- variable for use by P4. It does not look at getcwd() output.
- Since we're not using the shell, it is necessary to set the
- PWD environment variable explicitly.
-
- Normally, expand the path to force it to be absolute. This
- addresses the use of relative path names inside P4 settings,
- e.g. P4CONFIG=.p4config. P4 does not simply open the filename
- as given; it looks for .p4config using PWD.
-
- If is_client_path, the path was handed to us directly by p4,
- and may be a symbolic link. Do not call os.getcwd() in this
- case, because it will cause p4 to think that PWD is not inside
- the client path.
+ """Do chdir to the given path, and set the PWD environment variable for use
+ by P4. It does not look at getcwd() output. Since we're not using the
+ shell, it is necessary to set the PWD environment variable explicitly.
+
+ Normally, expand the path to force it to be absolute. This addresses
+ the use of relative path names inside P4 settings, e.g.
+ P4CONFIG=.p4config. P4 does not simply open the filename as given; it
+ looks for .p4config using PWD.
+
+ If is_client_path, the path was handed to us directly by p4, and may be
+ a symbolic link. Do not call os.getcwd() in this case, because it will
+ cause p4 to think that PWD is not inside the client path.
"""
os.chdir(path)
@@ -153,6 +169,7 @@ def chdir(path, is_client_path=False):
path = os.getcwd()
os.environ['PWD'] = path
+
def calcDiskFree():
"""Return free space in bytes on the disk of the given dirname."""
if platform.system() == 'Windows':
@@ -163,52 +180,60 @@ def calcDiskFree():
st = os.statvfs(os.getcwd())
return st.f_bavail * st.f_frsize
+
def die(msg):
- """ Terminate execution. Make sure that any running child processes have been wait()ed for before
- calling this.
- """
+ """Terminate execution. Make sure that any running child processes have
+ been wait()ed for before calling this.
+ """
if verbose:
raise Exception(msg)
else:
sys.stderr.write(msg + "\n")
sys.exit(1)
+
def prompt(prompt_text):
- """ Prompt the user to choose one of the choices
+ """Prompt the user to choose one of the choices.
- Choices are identified in the prompt_text by square brackets around
- a single letter option.
- """
+ Choices are identified in the prompt_text by square brackets around a
+ single letter option.
+ """
choices = set(m.group(1) for m in re.finditer(r"\[(.)\]", prompt_text))
while True:
sys.stderr.flush()
sys.stdout.write(prompt_text)
sys.stdout.flush()
- response=sys.stdin.readline().strip().lower()
+ response = sys.stdin.readline().strip().lower()
if not response:
continue
response = response[0]
if response in choices:
return response
+
# We need different encoding/decoding strategies for text data being passed
# around in pipes depending on python version
if bytes is not str:
# For python3, always encode and decode as appropriate
def decode_text_stream(s):
return s.decode() if isinstance(s, bytes) else s
+
def encode_text_stream(s):
return s.encode() if isinstance(s, str) else s
else:
# For python2.7, pass read strings as-is, but also allow writing unicode
def decode_text_stream(s):
return s
+
def encode_text_stream(s):
return s.encode('utf_8') if isinstance(s, unicode) else s
+
def decode_path(path):
- """Decode a given string (bytes or otherwise) using configured path encoding options
- """
+ """Decode a given string (bytes or otherwise) using configured path
+ encoding options.
+ """
+
encoding = gitConfig('git-p4.pathEncoding') or 'utf_8'
if bytes is not str:
return path.decode(encoding, errors='replace') if isinstance(path, bytes) else path
@@ -221,176 +246,128 @@ def decode_path(path):
print('Path with non-ASCII characters detected. Used {} to decode: {}'.format(encoding, path))
return path
+
def run_git_hook(cmd, param=[]):
"""Execute a hook if the hook exists."""
- if verbose:
- sys.stderr.write("Looking for hook: %s\n" % cmd)
- sys.stderr.flush()
-
- hooks_path = gitConfig("core.hooksPath")
- if len(hooks_path) <= 0:
- hooks_path = os.path.join(os.environ["GIT_DIR"], "hooks")
+ args = ['git', 'hook', 'run', '--ignore-missing', cmd]
+ if param:
+ args.append("--")
+ for p in param:
+ args.append(p)
+ return subprocess.call(args) == 0
- if not isinstance(param, list):
- param=[param]
-
- # resolve hook file name, OS depdenent
- hook_file = os.path.join(hooks_path, cmd)
- if platform.system() == 'Windows':
- if not os.path.isfile(hook_file):
- # look for the file with an extension
- files = glob.glob(hook_file + ".*")
- if not files:
- return True
- files.sort()
- hook_file = files.pop()
- while hook_file.upper().endswith(".SAMPLE"):
- # The file is a sample hook. We don't want it
- if len(files) > 0:
- hook_file = files.pop()
- else:
- return True
- if not os.path.isfile(hook_file) or not os.access(hook_file, os.X_OK):
- return True
-
- return run_hook_command(hook_file, param) == 0
-
-def run_hook_command(cmd, param):
- """Executes a git hook command
- cmd = the command line file to be executed. This can be
- a file that is run by OS association.
-
- param = a list of parameters to pass to the cmd command
-
- On windows, the extension is checked to see if it should
- be run with the Git for Windows Bash shell. If there
- is no file extension, the file is deemed a bash shell
- and will be handed off to sh.exe. Otherwise, Windows
- will be called with the shell to handle the file assocation.
-
- For non Windows operating systems, the file is called
- as an executable.
- """
- cli = [cmd] + param
- use_shell = False
- if platform.system() == 'Windows':
- (root,ext) = os.path.splitext(cmd)
- if ext == "":
- exe_path = os.environ.get("EXEPATH")
- if exe_path is None:
- exe_path = ""
- else:
- exe_path = os.path.join(exe_path, "bin")
- cli = [os.path.join(exe_path, "SH.EXE")] + cli
- else:
- use_shell = True
- return subprocess.call(cli, shell=use_shell)
-
-
-def write_pipe(c, stdin):
+def write_pipe(c, stdin, *k, **kw):
if verbose:
- sys.stderr.write('Writing pipe: %s\n' % str(c))
+ sys.stderr.write('Writing pipe: {}\n'.format(' '.join(c)))
- expand = not isinstance(c, list)
- p = subprocess.Popen(c, stdin=subprocess.PIPE, shell=expand)
+ p = subprocess.Popen(c, stdin=subprocess.PIPE, *k, **kw)
pipe = p.stdin
val = pipe.write(stdin)
pipe.close()
if p.wait():
- die('Command failed: %s' % str(c))
+ die('Command failed: {}'.format(' '.join(c)))
return val
-def p4_write_pipe(c, stdin):
+
+def p4_write_pipe(c, stdin, *k, **kw):
real_cmd = p4_build_cmd(c)
if bytes is not str and isinstance(stdin, str):
stdin = encode_text_stream(stdin)
- return write_pipe(real_cmd, stdin)
+ return write_pipe(real_cmd, stdin, *k, **kw)
-def read_pipe_full(c):
- """ Read output from command. Returns a tuple
- of the return status, stdout text and stderr
- text.
- """
+
+def read_pipe_full(c, *k, **kw):
+ """Read output from command. Returns a tuple of the return status, stdout
+ text and stderr text.
+ """
if verbose:
- sys.stderr.write('Reading pipe: %s\n' % str(c))
+ sys.stderr.write('Reading pipe: {}\n'.format(' '.join(c)))
- expand = not isinstance(c, list)
- p = subprocess.Popen(c, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=expand)
- (out, err) = p.communicate()
+ p = subprocess.Popen(
+ c, stdout=subprocess.PIPE, stderr=subprocess.PIPE, *k, **kw)
+ out, err = p.communicate()
return (p.returncode, out, decode_text_stream(err))
-def read_pipe(c, ignore_error=False, raw=False):
- """ Read output from command. Returns the output text on
- success. On failure, terminates execution, unless
- ignore_error is True, when it returns an empty string.
- If raw is True, do not attempt to decode output text.
- """
- (retcode, out, err) = read_pipe_full(c)
+def read_pipe(c, ignore_error=False, raw=False, *k, **kw):
+ """Read output from command. Returns the output text on success. On
+ failure, terminates execution, unless ignore_error is True, when it
+ returns an empty string.
+
+ If raw is True, do not attempt to decode output text.
+ """
+ retcode, out, err = read_pipe_full(c, *k, **kw)
if retcode != 0:
if ignore_error:
out = ""
else:
- die('Command failed: %s\nError: %s' % (str(c), err))
+ die('Command failed: {}\nError: {}'.format(' '.join(c), err))
if not raw:
out = decode_text_stream(out)
return out
-def read_pipe_text(c):
- """ Read output from a command with trailing whitespace stripped.
- On error, returns None.
- """
- (retcode, out, err) = read_pipe_full(c)
+
+def read_pipe_text(c, *k, **kw):
+ """Read output from a command with trailing whitespace stripped. On error,
+ returns None.
+ """
+ retcode, out, err = read_pipe_full(c, *k, **kw)
if retcode != 0:
return None
else:
return decode_text_stream(out).rstrip()
-def p4_read_pipe(c, ignore_error=False, raw=False):
+
+def p4_read_pipe(c, ignore_error=False, raw=False, *k, **kw):
real_cmd = p4_build_cmd(c)
- return read_pipe(real_cmd, ignore_error, raw=raw)
+ return read_pipe(real_cmd, ignore_error, raw=raw, *k, **kw)
-def read_pipe_lines(c, raw=False):
+
+def read_pipe_lines(c, raw=False, *k, **kw):
if verbose:
- sys.stderr.write('Reading pipe: %s\n' % str(c))
+ sys.stderr.write('Reading pipe: {}\n'.format(' '.join(c)))
- expand = not isinstance(c, list)
- p = subprocess.Popen(c, stdout=subprocess.PIPE, shell=expand)
+ p = subprocess.Popen(c, stdout=subprocess.PIPE, *k, **kw)
pipe = p.stdout
lines = pipe.readlines()
if not raw:
lines = [decode_text_stream(line) for line in lines]
if pipe.close() or p.wait():
- die('Command failed: %s' % str(c))
+ die('Command failed: {}'.format(' '.join(c)))
return lines
-def p4_read_pipe_lines(c):
- """Specifically invoke p4 on the command supplied. """
+
+def p4_read_pipe_lines(c, *k, **kw):
+ """Specifically invoke p4 on the command supplied."""
real_cmd = p4_build_cmd(c)
- return read_pipe_lines(real_cmd)
+ return read_pipe_lines(real_cmd, *k, **kw)
+
def p4_has_command(cmd):
- """Ask p4 for help on this command. If it returns an error, the
- command does not exist in this version of p4."""
+ """Ask p4 for help on this command. If it returns an error, the command
+ does not exist in this version of p4.
+ """
real_cmd = p4_build_cmd(["help", cmd])
p = subprocess.Popen(real_cmd, stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
p.communicate()
return p.returncode == 0
+
def p4_has_move_command():
- """See if the move command exists, that it supports -k, and that
- it has not been administratively disabled. The arguments
- must be correct, but the filenames do not have to exist. Use
- ones with wildcards so even if they exist, it will fail."""
+ """See if the move command exists, that it supports -k, and that it has not
+ been administratively disabled. The arguments must be correct, but the
+ filenames do not have to exist. Use ones with wildcards so even if they
+ exist, it will fail.
+ """
if not p4_has_command("move"):
return False
cmd = p4_build_cmd(["move", "-k", "@from", "@to"])
p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
- (out, err) = p.communicate()
+ out, err = p.communicate()
err = decode_text_stream(err)
# return code will be 1 in either case
if err.find("Invalid option") >= 0:
@@ -400,30 +377,33 @@ def p4_has_move_command():
# assume it failed because @... was invalid changelist
return True
-def system(cmd, ignore_error=False):
- expand = not isinstance(cmd, list)
+
+def system(cmd, ignore_error=False, *k, **kw):
if verbose:
- sys.stderr.write("executing %s\n" % str(cmd))
- retcode = subprocess.call(cmd, shell=expand)
+ sys.stderr.write("executing {}\n".format(
+ ' '.join(cmd) if isinstance(cmd, list) else cmd))
+ retcode = subprocess.call(cmd, *k, **kw)
if retcode and not ignore_error:
- raise CalledProcessError(retcode, cmd)
+ raise subprocess.CalledProcessError(retcode, cmd)
return retcode
-def p4_system(cmd):
- """Specifically invoke p4 as the system command. """
+
+def p4_system(cmd, *k, **kw):
+ """Specifically invoke p4 as the system command."""
real_cmd = p4_build_cmd(cmd)
- expand = not isinstance(real_cmd, list)
- retcode = subprocess.call(real_cmd, shell=expand)
+ retcode = subprocess.call(real_cmd, *k, **kw)
if retcode:
- raise CalledProcessError(retcode, real_cmd)
+ raise subprocess.CalledProcessError(retcode, real_cmd)
+
def die_bad_access(s):
die("failure accessing depot: {0}".format(s.rstrip()))
+
def p4_check_access(min_expiration=1):
- """ Check if we can access Perforce - account still logged in
- """
+ """Check if we can access Perforce - account still logged in."""
+
results = p4CmdList(["login", "-s"])
if len(results) == 0:
@@ -466,62 +446,78 @@ def p4_check_access(min_expiration=1):
else:
die_bad_access("unknown error code {0}".format(code))
+
_p4_version_string = None
+
+
def p4_version_string():
- """Read the version string, showing just the last line, which
- hopefully is the interesting version bit.
+ """Read the version string, showing just the last line, which hopefully is
+ the interesting version bit.
$ p4 -V
Perforce - The Fast Software Configuration Management System.
Copyright 1995-2011 Perforce Software. All rights reserved.
Rev. P4/NTX86/2011.1/393975 (2011/12/16).
- """
+ """
global _p4_version_string
if not _p4_version_string:
a = p4_read_pipe_lines(["-V"])
_p4_version_string = a[-1].rstrip()
return _p4_version_string
+
def p4_integrate(src, dest):
p4_system(["integrate", "-Dt", wildcard_encode(src), wildcard_encode(dest)])
+
def p4_sync(f, *options):
p4_system(["sync"] + list(options) + [wildcard_encode(f)])
+
def p4_add(f):
- # forcibly add file names with wildcards
+ """Forcibly add file names with wildcards."""
if wildcard_present(f):
p4_system(["add", "-f", f])
else:
p4_system(["add", f])
+
def p4_delete(f):
p4_system(["delete", wildcard_encode(f)])
+
def p4_edit(f, *options):
p4_system(["edit"] + list(options) + [wildcard_encode(f)])
+
def p4_revert(f):
p4_system(["revert", wildcard_encode(f)])
+
def p4_reopen(type, f):
p4_system(["reopen", "-t", type, wildcard_encode(f)])
+
def p4_reopen_in_change(changelist, files):
cmd = ["reopen", "-c", str(changelist)] + files
p4_system(cmd)
+
def p4_move(src, dest):
p4_system(["move", "-k", wildcard_encode(src), wildcard_encode(dest)])
+
def p4_last_change():
results = p4CmdList(["changes", "-m", "1"], skip_info=True)
return int(results[0]['change'])
+
def p4_describe(change, shelved=False):
- """Make sure it returns a valid result by checking for
- the presence of field "time". Return a dict of the
- results."""
+ """Make sure it returns a valid result by checking for the presence of
+ field "time".
+
+ Return a dict of the results.
+ """
cmd = ["describe", "-s"]
if shelved:
@@ -546,12 +542,11 @@ def p4_describe(change, shelved=False):
return d
-#
-# Canonicalize the p4 type and return a tuple of the
-# base type, plus any modifiers. See "p4 help filetypes"
-# for a list and explanation.
-#
+
def split_p4_type(p4type):
+ """Canonicalize the p4 type and return a tuple of the base type, plus any
+ modifiers. See "p4 help filetypes" for a list and explanation.
+ """
p4_filetypes_historical = {
"ctempobj": "binary+Sw",
@@ -581,18 +576,19 @@ def split_p4_type(p4type):
mods = s[1]
return (base, mods)
-#
-# return the raw p4 type of a file (text, text+ko, etc)
-#
+
def p4_type(f):
+ """Return the raw p4 type of a file (text, text+ko, etc)."""
+
results = p4CmdList(["fstat", "-T", "headType", wildcard_encode(f)])
return results[0]['headType']
-#
-# Given a type base and modifier, return a regexp matching
-# the keywords that can be expanded in the file
-#
+
def p4_keywords_regexp_for_type(base, type_mods):
+ """Given a type base and modifier, return a regexp matching the keywords
+ that can be expanded in the file.
+ """
+
if base in ("text", "unicode", "binary"):
if "ko" in type_mods:
return re_ko_keywords
@@ -603,21 +599,23 @@ def p4_keywords_regexp_for_type(base, type_mods):
else:
return None
-#
-# Given a file, return a regexp matching the possible
-# RCS keywords that will be expanded, or None for files
-# with kw expansion turned off.
-#
+
def p4_keywords_regexp_for_file(file):
+ """Given a file, return a regexp matching the possible RCS keywords that
+ will be expanded, or None for files with kw expansion turned off.
+ """
+
if not os.path.exists(file):
return None
else:
- (type_base, type_mods) = split_p4_type(p4_type(file))
+ type_base, type_mods = split_p4_type(p4_type(file))
return p4_keywords_regexp_for_type(type_base, type_mods)
+
def setP4ExecBit(file, mode):
- # Reopens an already open file and changes the execute bit to match
- # the execute bit setting in the passed in mode.
+ """Reopens an already open file and changes the execute bit to match the
+ execute bit setting in the passed in mode.
+ """
p4Type = "+x"
@@ -630,8 +628,9 @@ def setP4ExecBit(file, mode):
p4_reopen(p4Type, file)
+
def getP4OpenedType(file):
- # Returns the perforce file type for the given file.
+ """Returns the perforce file type for the given file."""
result = p4_read_pipe(["opened", wildcard_encode(file)])
match = re.match(".*\((.+)\)( \*exclusive\*)?\r?$", result)
@@ -640,8 +639,10 @@ def getP4OpenedType(file):
else:
die("Could not determine file type for %s (result: '%s')" % (file, result))
-# Return the set of all p4 labels
+
def getP4Labels(depotPaths):
+ """Return the set of all p4 labels."""
+
labels = set()
if not isinstance(depotPaths, list):
depotPaths = [depotPaths]
@@ -652,34 +653,39 @@ def getP4Labels(depotPaths):
return labels
-# Return the set of all git tags
+
def getGitTags():
+ """Return the set of all git tags."""
+
gitTags = set()
for line in read_pipe_lines(["git", "tag"]):
tag = line.strip()
gitTags.add(tag)
return gitTags
+
_diff_tree_pattern = None
+
def parseDiffTreeEntry(entry):
"""Parses a single diff tree entry into its component elements.
- See git-diff-tree(1) manpage for details about the format of the diff
- output. This method returns a dictionary with the following elements:
-
- src_mode - The mode of the source file
- dst_mode - The mode of the destination file
- src_sha1 - The sha1 for the source file
- dst_sha1 - The sha1 fr the destination file
- status - The one letter status of the diff (i.e. 'A', 'M', 'D', etc)
- status_score - The score for the status (applicable for 'C' and 'R'
- statuses). This is None if there is no score.
- src - The path for the source file.
- dst - The path for the destination file. This is only present for
- copy or renames. If it is not present, this is None.
-
- If the pattern is not matched, None is returned."""
+ See git-diff-tree(1) manpage for details about the format of the diff
+ output. This method returns a dictionary with the following elements:
+
+ src_mode - The mode of the source file
+ dst_mode - The mode of the destination file
+ src_sha1 - The sha1 for the source file
+ dst_sha1 - The sha1 fr the destination file
+ status - The one letter status of the diff (i.e. 'A', 'M', 'D', etc)
+ status_score - The score for the status (applicable for 'C' and 'R'
+ statuses). This is None if there is no score.
+ src - The path for the source file.
+ dst - The path for the destination file. This is only present for
+ copy or renames. If it is not present, this is None.
+
+ If the pattern is not matched, None is returned.
+ """
global _diff_tree_pattern
if not _diff_tree_pattern:
@@ -699,54 +705,61 @@ def parseDiffTreeEntry(entry):
}
return None
+
def isModeExec(mode):
- # Returns True if the given git mode represents an executable file,
- # otherwise False.
+ """Returns True if the given git mode represents an executable file,
+ otherwise False.
+ """
return mode[-3:] == "755"
+
class P4Exception(Exception):
- """ Base class for exceptions from the p4 client """
+ """Base class for exceptions from the p4 client."""
+
def __init__(self, exit_code):
self.p4ExitCode = exit_code
+
class P4ServerException(P4Exception):
- """ Base class for exceptions where we get some kind of marshalled up result from the server """
+ """Base class for exceptions where we get some kind of marshalled up result
+ from the server.
+ """
+
def __init__(self, exit_code, p4_result):
super(P4ServerException, self).__init__(exit_code)
self.p4_result = p4_result
self.code = p4_result[0]['code']
self.data = p4_result[0]['data']
+
class P4RequestSizeException(P4ServerException):
- """ One of the maxresults or maxscanrows errors """
+ """One of the maxresults or maxscanrows errors."""
+
def __init__(self, exit_code, p4_result, limit):
super(P4RequestSizeException, self).__init__(exit_code, p4_result)
self.limit = limit
+
class P4CommandException(P4Exception):
- """ Something went wrong calling p4 which means we have to give up """
+ """Something went wrong calling p4 which means we have to give up."""
+
def __init__(self, msg):
self.msg = msg
def __str__(self):
return self.msg
+
def isModeExecChanged(src_mode, dst_mode):
return isModeExec(src_mode) != isModeExec(dst_mode)
-def p4CmdList(cmd, stdin=None, stdin_mode='w+b', cb=None, skip_info=False,
- errors_as_exceptions=False):
- if not isinstance(cmd, list):
- cmd = "-G " + cmd
- expand = True
- else:
- cmd = ["-G"] + cmd
- expand = False
+def p4CmdList(cmd, stdin=None, stdin_mode='w+b', cb=None, skip_info=False,
+ errors_as_exceptions=False, *k, **kw):
- cmd = p4_build_cmd(cmd)
+ cmd = p4_build_cmd(["-G"] + cmd)
if verbose:
- sys.stderr.write("Opening pipe: %s\n" % str(cmd))
+ sys.stderr.write("Opening pipe: {}\n".format(' '.join(cmd)))
# Use a temporary file to avoid deadlocks without
# subprocess.communicate(), which would put another copy
@@ -763,10 +776,8 @@ def p4CmdList(cmd, stdin=None, stdin_mode='w+b', cb=None, skip_info=False,
stdin_file.flush()
stdin_file.seek(0)
- p4 = subprocess.Popen(cmd,
- shell=expand,
- stdin=stdin_file,
- stdout=subprocess.PIPE)
+ p4 = subprocess.Popen(
+ cmd, stdin=stdin_file, stdout=subprocess.PIPE, *k, **kw)
result = []
try:
@@ -819,12 +830,14 @@ def p4CmdList(cmd, stdin=None, stdin_mode='w+b', cb=None, skip_info=False,
return result
-def p4Cmd(cmd):
- list = p4CmdList(cmd)
+
+def p4Cmd(cmd, *k, **kw):
+ list = p4CmdList(cmd, *k, **kw)
result = {}
for entry in list:
result.update(entry)
- return result;
+ return result
+
def p4Where(depotPath):
if not depotPath.endswith("/"):
@@ -846,7 +859,7 @@ def p4Where(depotPath):
if data[:space] == depotPath:
output = entry
break
- if output == None:
+ if output is None:
return ""
if output["code"] == "error":
return ""
@@ -862,48 +875,54 @@ def p4Where(depotPath):
clientPath = clientPath[:-3]
return clientPath
+
def currentGitBranch():
return read_pipe_text(["git", "symbolic-ref", "--short", "-q", "HEAD"])
+
def isValidGitDir(path):
- return git_dir(path) != None
+ return git_dir(path) is not None
+
def parseRevision(ref):
- return read_pipe("git rev-parse %s" % ref).strip()
+ return read_pipe(["git", "rev-parse", ref]).strip()
+
def branchExists(ref):
rev = read_pipe(["git", "rev-parse", "-q", "--verify", ref],
ignore_error=True)
return len(rev) > 0
+
def extractLogMessageFromGitCommit(commit):
logMessage = ""
- ## fixme: title is first line of commit, not 1st paragraph.
+ # fixme: title is first line of commit, not 1st paragraph.
foundTitle = False
for log in read_pipe_lines(["git", "cat-file", "commit", commit]):
- if not foundTitle:
- if len(log) == 1:
- foundTitle = True
- continue
+ if not foundTitle:
+ if len(log) == 1:
+ foundTitle = True
+ continue
- logMessage += log
+ logMessage += log
return logMessage
+
def extractSettingsGitLog(log):
values = {}
for line in log.split("\n"):
line = line.strip()
- m = re.search (r"^ *\[git-p4: (.*)\]$", line)
+ m = re.search(r"^ *\[git-p4: (.*)\]$", line)
if not m:
continue
- assignments = m.group(1).split (':')
+ assignments = m.group(1).split(':')
for a in assignments:
- vals = a.split ('=')
+ vals = a.split('=')
key = vals[0].strip()
- val = ('='.join (vals[1:])).strip()
- if val.endswith ('\"') and val.startswith('"'):
+ val = ('='.join(vals[1:])).strip()
+ if val.endswith('\"') and val.startswith('"'):
val = val[1:-1]
values[key] = val
@@ -915,41 +934,49 @@ def extractSettingsGitLog(log):
values['depot-paths'] = paths.split(',')
return values
+
def gitBranchExists(branch):
proc = subprocess.Popen(["git", "rev-parse", branch],
- stderr=subprocess.PIPE, stdout=subprocess.PIPE);
- return proc.wait() == 0;
+ stderr=subprocess.PIPE, stdout=subprocess.PIPE)
+ return proc.wait() == 0
+
def gitUpdateRef(ref, newvalue):
subprocess.check_call(["git", "update-ref", ref, newvalue])
+
def gitDeleteRef(ref):
subprocess.check_call(["git", "update-ref", "-d", ref])
+
_gitConfig = {}
+
def gitConfig(key, typeSpecifier=None):
if key not in _gitConfig:
- cmd = [ "git", "config" ]
+ cmd = ["git", "config"]
if typeSpecifier:
- cmd += [ typeSpecifier ]
- cmd += [ key ]
+ cmd += [typeSpecifier]
+ cmd += [key]
s = read_pipe(cmd, ignore_error=True)
_gitConfig[key] = s.strip()
return _gitConfig[key]
+
def gitConfigBool(key):
"""Return a bool, using git config --bool. It is True only if the
variable is set to true, and False if set to false or not present
- in the config."""
+ in the config.
+ """
if key not in _gitConfig:
_gitConfig[key] = gitConfig(key, '--bool') == "true"
return _gitConfig[key]
+
def gitConfigInt(key):
if key not in _gitConfig:
- cmd = [ "git", "config", "--int", key ]
+ cmd = ["git", "config", "--int", key]
s = read_pipe(cmd, ignore_error=True)
v = s.strip()
try:
@@ -958,6 +985,7 @@ def gitConfigInt(key):
_gitConfig[key] = None
return _gitConfig[key]
+
def gitConfigList(key):
if key not in _gitConfig:
s = read_pipe(["git", "config", "--get-all", key], ignore_error=True)
@@ -966,20 +994,51 @@ def gitConfigList(key):
_gitConfig[key] = []
return _gitConfig[key]
+def fullP4Ref(incomingRef, importIntoRemotes=True):
+ """Standardize a given provided p4 ref value to a full git ref:
+ refs/foo/bar/branch -> use it exactly
+ p4/branch -> prepend refs/remotes/ or refs/heads/
+ branch -> prepend refs/remotes/p4/ or refs/heads/p4/"""
+ if incomingRef.startswith("refs/"):
+ return incomingRef
+ if importIntoRemotes:
+ prepend = "refs/remotes/"
+ else:
+ prepend = "refs/heads/"
+ if not incomingRef.startswith("p4/"):
+ prepend += "p4/"
+ return prepend + incomingRef
+
+def shortP4Ref(incomingRef, importIntoRemotes=True):
+ """Standardize to a "short ref" if possible:
+ refs/foo/bar/branch -> ignore
+ refs/remotes/p4/branch or refs/heads/p4/branch -> shorten
+ p4/branch -> shorten"""
+ if importIntoRemotes:
+ longprefix = "refs/remotes/p4/"
+ else:
+ longprefix = "refs/heads/p4/"
+ if incomingRef.startswith(longprefix):
+ return incomingRef[len(longprefix):]
+ if incomingRef.startswith("p4/"):
+ return incomingRef[3:]
+ return incomingRef
+
def p4BranchesInGit(branchesAreInRemotes=True):
"""Find all the branches whose names start with "p4/", looking
in remotes or heads as specified by the argument. Return
a dictionary of { branch: revision } for each one found.
The branch names are the short names, without any
- "p4/" prefix."""
+ "p4/" prefix.
+ """
branches = {}
- cmdline = "git rev-parse --symbolic "
+ cmdline = ["git", "rev-parse", "--symbolic"]
if branchesAreInRemotes:
- cmdline += "--remotes"
+ cmdline.append("--remotes")
else:
- cmdline += "--branches"
+ cmdline.append("--branches")
for line in read_pipe_lines(cmdline):
line = line.strip()
@@ -998,10 +1057,11 @@ def p4BranchesInGit(branchesAreInRemotes=True):
return branches
+
def branch_exists(branch):
"""Make sure that the given ref name really exists."""
- cmd = [ "git", "rev-parse", "--symbolic", "--verify", branch ]
+ cmd = ["git", "rev-parse", "--symbolic", "--verify", branch]
p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
out, _ = p.communicate()
out = decode_text_stream(out)
@@ -1010,7 +1070,8 @@ def branch_exists(branch):
# expect exactly one line of output: the branch name
return out.rstrip() == branch
-def findUpstreamBranchPoint(head = "HEAD"):
+
+def findUpstreamBranchPoint(head="HEAD"):
branches = p4BranchesInGit()
# map from depot-path to branch name
branchByDepotPath = {}
@@ -1019,8 +1080,12 @@ def findUpstreamBranchPoint(head = "HEAD"):
log = extractLogMessageFromGitCommit(tip)
settings = extractSettingsGitLog(log)
if "depot-paths" in settings:
+ git_branch = "remotes/p4/" + branch
paths = ",".join(settings["depot-paths"])
- branchByDepotPath[paths] = "remotes/p4/" + branch
+ branchByDepotPath[paths] = git_branch
+ if "change" in settings:
+ paths = paths + ";" + settings["change"]
+ branchByDepotPath[paths] = git_branch
settings = None
parent = 0
@@ -1030,6 +1095,10 @@ def findUpstreamBranchPoint(head = "HEAD"):
settings = extractSettingsGitLog(log)
if "depot-paths" in settings:
paths = ",".join(settings["depot-paths"])
+ if "change" in settings:
+ expaths = paths + ";" + settings["change"]
+ if expaths in branchByDepotPath:
+ return [branchByDepotPath[expaths], settings]
if paths in branchByDepotPath:
return [branchByDepotPath[paths], settings]
@@ -1037,14 +1106,15 @@ def findUpstreamBranchPoint(head = "HEAD"):
return ["", settings]
-def createOrUpdateBranchesFromOrigin(localRefPrefix = "refs/remotes/p4/", silent=True):
+
+def createOrUpdateBranchesFromOrigin(localRefPrefix="refs/remotes/p4/", silent=True):
if not silent:
print("Creating/updating branch(es) in %s based on origin branch(es)"
% localRefPrefix)
originPrefix = "origin/p4/"
- for line in read_pipe_lines("git rev-parse --symbolic --remotes"):
+ for line in read_pipe_lines(["git", "rev-parse", "--symbolic", "--remotes"]):
line = line.strip()
if (not line.startswith(originPrefix)) or line.endswith("HEAD"):
continue
@@ -1054,8 +1124,7 @@ def createOrUpdateBranchesFromOrigin(localRefPrefix = "refs/remotes/p4/", silent
originHead = line
original = extractSettingsGitLog(extractLogMessageFromGitCommit(originHead))
- if ('depot-paths' not in original
- or 'change' not in original):
+ if 'depot-paths' not in original or 'change' not in original:
continue
update = False
@@ -1082,10 +1151,11 @@ def createOrUpdateBranchesFromOrigin(localRefPrefix = "refs/remotes/p4/", silent
remoteHead, ','.join(settings['depot-paths'])))
if update:
- system("git update-ref %s %s" % (remoteHead, originHead))
+ system(["git", "update-ref", remoteHead, originHead])
+
def originP4BranchesExist():
- return gitBranchExists("origin") or gitBranchExists("origin/p4") or gitBranchExists("origin/p4/master")
+ return gitBranchExists("origin") or gitBranchExists("origin/p4") or gitBranchExists("origin/p4/master")
def p4ParseNumericChangeRange(parts):
@@ -1097,12 +1167,14 @@ def p4ParseNumericChangeRange(parts):
return (changeStart, changeEnd)
+
def chooseBlockSize(blockSize):
if blockSize:
return blockSize
else:
return defaultBlockSize
+
def p4ChangesForPaths(depotPaths, changeRange, requestedBlockSize):
assert depotPaths
@@ -1120,7 +1192,7 @@ def p4ChangesForPaths(depotPaths, changeRange, requestedBlockSize):
parts = changeRange.split(',')
assert len(parts) == 2
try:
- (changeStart, changeEnd) = p4ParseNumericChangeRange(parts)
+ changeStart, changeEnd = p4ParseNumericChangeRange(parts)
block_size = chooseBlockSize(requestedBlockSize)
except ValueError:
changeStart = parts[0][1:]
@@ -1158,7 +1230,8 @@ def p4ChangesForPaths(depotPaths, changeRange, requestedBlockSize):
else:
block_size = max(2, block_size // 2)
- if verbose: print("block size error, retrying with block size {0}".format(block_size))
+ if verbose:
+ print("block size error, retrying with block size {0}".format(block_size))
continue
except P4Exception as e:
die('Error retrieving changes description ({0})'.format(e.p4ExitCode))
@@ -1180,23 +1253,27 @@ def p4ChangesForPaths(depotPaths, changeRange, requestedBlockSize):
changes = sorted(changes)
return changes
+
def p4PathStartsWith(path, prefix):
- # This method tries to remedy a potential mixed-case issue:
- #
- # If UserA adds //depot/DirA/file1
- # and UserB adds //depot/dira/file2
- #
- # we may or may not have a problem. If you have core.ignorecase=true,
- # we treat DirA and dira as the same directory
+ """This method tries to remedy a potential mixed-case issue:
+
+ If UserA adds //depot/DirA/file1
+ and UserB adds //depot/dira/file2
+
+ we may or may not have a problem. If you have core.ignorecase=true,
+ we treat DirA and dira as the same directory.
+ """
if gitConfigBool("core.ignorecase"):
return path.lower().startswith(prefix.lower())
return path.startswith(prefix)
+
def getClientSpec():
"""Look at the p4 client spec, create a View() object that contains
- all the mappings, and return it."""
+ all the mappings, and return it.
+ """
- specList = p4CmdList("client -o")
+ specList = p4CmdList(["client", "-o"])
if len(specList) != 1:
die('Output from "client -o" is %d lines, expecting 1' %
len(specList))
@@ -1208,7 +1285,7 @@ def getClientSpec():
client_name = entry["Client"]
# just the keys that start with "View"
- view_keys = [ k for k in entry.keys() if k.startswith("View") ]
+ view_keys = [k for k in entry.keys() if k.startswith("View")]
# hold this new View
view = View(client_name)
@@ -1222,10 +1299,11 @@ def getClientSpec():
return view
+
def getClientRoot():
"""Grab the client directory."""
- output = p4CmdList("client -o")
+ output = p4CmdList(["client", "-o"])
if len(output) != 1:
die('Output from "client -o" is %d lines, expecting 1' % len(output))
@@ -1235,12 +1313,15 @@ def getClientRoot():
return entry["Root"]
-#
-# P4 wildcards are not allowed in filenames. P4 complains
-# if you simply add them, but you can force it with "-f", in
-# which case it translates them into %xx encoding internally.
-#
+
def wildcard_decode(path):
+ """Decode P4 wildcards into %xx encoding
+
+ P4 wildcards are not allowed in filenames. P4 complains if you simply
+ add them, but you can force it with "-f", in which case it translates
+ them into %xx encoding internally.
+ """
+
# Search for and fix just these four characters. Do % last so
# that fixing it does not inadvertently create new %-escapes.
# Cannot have * in a filename in windows; untested as to
@@ -1252,7 +1333,10 @@ def wildcard_decode(path):
.replace("%25", "%")
return path
+
def wildcard_encode(path):
+ """Encode %xx coded wildcards into P4 coding."""
+
# do % first to avoid double-encoding the %s introduced here
path = path.replace("%", "%25") \
.replace("*", "%2A") \
@@ -1260,10 +1344,12 @@ def wildcard_encode(path):
.replace("@", "%40")
return path
+
def wildcard_present(path):
m = re.search("[*#@%]", path)
return m is not None
+
class LargeFileSystem(object):
"""Base class for large file system support."""
@@ -1272,13 +1358,15 @@ class LargeFileSystem(object):
self.writeToGitStream = writeToGitStream
def generatePointer(self, cloneDestination, contentFile):
- """Return the content of a pointer file that is stored in Git instead of
- the actual content."""
+ """Return the content of a pointer file that is stored in Git instead
+ of the actual content.
+ """
assert False, "Method 'generatePointer' required in " + self.__class__.__name__
def pushFile(self, localLargeFile):
"""Push the actual content which is not stored in the Git repository to
- a server."""
+ a server.
+ """
assert False, "Method 'pushFile' required in " + self.__class__.__name__
def hasLargeFileExtension(self, relPath):
@@ -1326,10 +1414,11 @@ class LargeFileSystem(object):
def processContent(self, git_mode, relPath, contents):
"""Processes the content of git fast import. This method decides if a
file is stored in the large file system and handles all necessary
- steps."""
+ steps.
+ """
if self.exceedsLargeFileThreshold(relPath, contents) or self.hasLargeFileExtension(relPath):
contentTempFile = self.generateTempFile(contents)
- (pointer_git_mode, contents, localLargeFile) = self.generatePointer(contentTempFile)
+ pointer_git_mode, contents, localLargeFile = self.generatePointer(contentTempFile)
if pointer_git_mode:
git_mode = pointer_git_mode
if localLargeFile:
@@ -1345,12 +1434,14 @@ class LargeFileSystem(object):
sys.stderr.write("%s moved to large file system (%s)\n" % (relPath, localLargeFile))
return (git_mode, contents)
+
class MockLFS(LargeFileSystem):
"""Mock large file system for testing."""
def generatePointer(self, contentFile):
"""The pointer content is the original content prefixed with "pointer-".
- The local filename of the large file storage is derived from the file content.
+ The local filename of the large file storage is derived from the
+ file content.
"""
with open(contentFile, 'r') as f:
content = next(f)
@@ -1360,17 +1451,19 @@ class MockLFS(LargeFileSystem):
return (gitMode, pointerContents, localLargeFile)
def pushFile(self, localLargeFile):
- """The remote filename of the large file storage is the same as the local
- one but in a different directory.
+ """The remote filename of the large file storage is the same as the
+ local one but in a different directory.
"""
remotePath = os.path.join(os.path.dirname(localLargeFile), '..', 'remote')
if not os.path.exists(remotePath):
os.makedirs(remotePath)
shutil.copyfile(localLargeFile, os.path.join(remotePath, os.path.basename(localLargeFile)))
+
class GitLFS(LargeFileSystem):
"""Git LFS as backend for the git-p4 large file system.
- See https://git-lfs.github.com/ for details."""
+ See https://git-lfs.github.com/ for details.
+ """
def __init__(self, *args):
LargeFileSystem.__init__(self, *args)
@@ -1456,9 +1549,10 @@ class GitLFS(LargeFileSystem):
else:
return LargeFileSystem.processContent(self, git_mode, relPath, contents)
+
class Command:
- delete_actions = ( "delete", "move/delete", "purge" )
- add_actions = ( "add", "branch", "move/add" )
+ delete_actions = ("delete", "move/delete", "purge")
+ add_actions = ("add", "branch", "move/add")
def __init__(self):
self.usage = "usage: %prog [options]"
@@ -1471,6 +1565,7 @@ class Command:
setattr(self, attr, value)
return getattr(self, attr)
+
class P4UserMap:
def __init__(self):
self.userMapFromPerforceServer = False
@@ -1480,7 +1575,7 @@ class P4UserMap:
if self.myP4UserId:
return self.myP4UserId
- results = p4CmdList("user -o")
+ results = p4CmdList(["user", "-o"])
for r in results:
if 'User' in r:
self.myP4UserId = r['User']
@@ -1488,7 +1583,7 @@ class P4UserMap:
die("Could not find your p4 user id")
def p4UserIsMe(self, p4User):
- # return True if the given p4 user is actually me
+ """Return True if the given p4 user is actually me."""
me = self.p4UserId()
if not p4User or p4User != me:
return False
@@ -1505,7 +1600,7 @@ class P4UserMap:
self.users = {}
self.emails = {}
- for output in p4CmdList("users"):
+ for output in p4CmdList(["users"]):
if "User" not in output:
continue
self.users[output["User"]] = output["FullName"] + " <" + output["Email"] + ">"
@@ -1541,6 +1636,7 @@ class P4UserMap:
except IOError:
self.getUserMapFromPerforceServer()
+
class P4Submit(Command, P4UserMap):
conflict_behavior_choices = ("ask", "skip", "quit")
@@ -1629,24 +1725,24 @@ class P4Submit(Command, P4UserMap):
die("Large file system not supported for git-p4 submit command. Please remove it from config.")
def check(self):
- if len(p4CmdList("opened ...")) > 0:
+ if len(p4CmdList(["opened", "..."])) > 0:
die("You have files opened with perforce! Close them before starting the sync.")
def separate_jobs_from_description(self, message):
- """Extract and return a possible Jobs field in the commit
- message. It goes into a separate section in the p4 change
- specification.
+ """Extract and return a possible Jobs field in the commit message. It
+ goes into a separate section in the p4 change specification.
- A jobs line starts with "Jobs:" and looks like a new field
- in a form. Values are white-space separated on the same
- line or on following lines that start with a tab.
+ A jobs line starts with "Jobs:" and looks like a new field in a
+ form. Values are white-space separated on the same line or on
+ following lines that start with a tab.
- This does not parse and extract the full git commit message
- like a p4 form. It just sees the Jobs: line as a marker
- to pass everything from then on directly into the p4 form,
- but outside the description section.
+ This does not parse and extract the full git commit message like a
+ p4 form. It just sees the Jobs: line as a marker to pass everything
+ from then on directly into the p4 form, but outside the description
+ section.
- Return a tuple (stripped log message, jobs string)."""
+ Return a tuple (stripped log message, jobs string).
+ """
m = re.search(r'^Jobs:', message, re.MULTILINE)
if m is None:
@@ -1657,9 +1753,10 @@ class P4Submit(Command, P4UserMap):
return (stripped_message, jobtext)
def prepareLogMessage(self, template, message, jobs):
- """Edits the template returned from "p4 change -o" to insert
- the message in the Description field, and the jobs text in
- the Jobs field."""
+ """Edits the template returned from "p4 change -o" to insert the
+ message in the Description field, and the jobs text in the Jobs
+ field.
+ """
result = ""
inDescriptionSection = False
@@ -1689,8 +1786,10 @@ class P4Submit(Command, P4UserMap):
return result
def patchRCSKeywords(self, file, regexp):
- # Attempt to zap the RCS keywords in a p4 controlled file matching the given regex
- (handle, outFileName) = tempfile.mkstemp(dir='.')
+ """Attempt to zap the RCS keywords in a p4 controlled file matching the
+ given regex.
+ """
+ handle, outFileName = tempfile.mkstemp(dir='.')
try:
with os.fdopen(handle, "wb") as outFile, open(file, "rb") as inFile:
for line in inFile.readlines():
@@ -1706,21 +1805,23 @@ class P4Submit(Command, P4UserMap):
print("Patched up RCS keywords in %s" % file)
- def p4UserForCommit(self,id):
- # Return the tuple (perforce user,git email) for a given git commit id
+ def p4UserForCommit(self, id):
+ """Return the tuple (perforce user,git email) for a given git commit
+ id.
+ """
self.getUserMapFromPerforceServer()
gitEmail = read_pipe(["git", "log", "--max-count=1",
"--format=%ae", id])
gitEmail = gitEmail.strip()
if gitEmail not in self.emails:
- return (None,gitEmail)
+ return (None, gitEmail)
else:
- return (self.emails[gitEmail],gitEmail)
+ return (self.emails[gitEmail], gitEmail)
- def checkValidP4Users(self,commits):
- # check if any git authors cannot be mapped to p4 users
+ def checkValidP4Users(self, commits):
+ """Check if any git authors cannot be mapped to p4 users."""
for id in commits:
- (user,email) = self.p4UserForCommit(id)
+ user, email = self.p4UserForCommit(id)
if not user:
msg = "Cannot find p4 user for email %s in commit %s." % (email, id)
if gitConfigBool("git-p4.allowMissingP4Users"):
@@ -1729,11 +1830,13 @@ class P4Submit(Command, P4UserMap):
die("Error: %s\nSet git-p4.allowMissingP4Users to true to allow this." % msg)
def lastP4Changelist(self):
- # Get back the last changelist number submitted in this client spec. This
- # then gets used to patch up the username in the change. If the same
- # client spec is being used by multiple processes then this might go
- # wrong.
- results = p4CmdList("client -o") # find the current client
+ """Get back the last changelist number submitted in this client spec.
+
+ This then gets used to patch up the username in the change. If the
+ same client spec is being used by multiple processes then this might
+ go wrong.
+ """
+ results = p4CmdList(["client", "-o"]) # find the current client
client = None
for r in results:
if 'Client' in r:
@@ -1748,19 +1851,21 @@ class P4Submit(Command, P4UserMap):
die("Could not get changelist number for last submit - cannot patch up user details")
def modifyChangelistUser(self, changelist, newUser):
- # fixup the user field of a changelist after it has been submitted.
- changes = p4CmdList("change -o %s" % changelist)
+ """Fixup the user field of a changelist after it has been submitted."""
+ changes = p4CmdList(["change", "-o", changelist])
if len(changes) != 1:
die("Bad output from p4 change modifying %s to user %s" %
(changelist, newUser))
c = changes[0]
- if c['User'] == newUser: return # nothing to do
+ if c['User'] == newUser:
+ # Nothing to do
+ return
c['User'] = newUser
# p4 does not understand format version 3 and above
input = marshal.dumps(c, 2)
- result = p4CmdList("change -f -i", stdin=input)
+ result = p4CmdList(["change", "-f", "-i"], stdin=input)
for r in result:
if 'code' in r:
if r['code'] == 'error':
@@ -1771,8 +1876,9 @@ class P4Submit(Command, P4UserMap):
die("Could not modify user field of changelist %s to %s" % (changelist, newUser))
def canChangeChangelists(self):
- # check to see if we have p4 admin or super-user permissions, either of
- # which are required to modify changelists.
+ """Check to see if we have p4 admin or super-user permissions, either
+ of which are required to modify changelists.
+ """
results = p4CmdList(["protects", self.depotPath])
for r in results:
if 'perm' in r:
@@ -1784,13 +1890,15 @@ class P4Submit(Command, P4UserMap):
def prepareSubmitTemplate(self, changelist=None):
"""Run "p4 change -o" to grab a change specification template.
+
This does not use "p4 -G", as it is nice to keep the submission
template in original order, since a human might edit it.
Remove lines in the Files section that show changes to files
- outside the depot path we're committing into."""
+ outside the depot path we're committing into.
+ """
- [upstream, settings] = findUpstreamBranchPoint()
+ upstream, settings = findUpstreamBranchPoint()
template = """\
# A Perforce Change Specification.
@@ -1851,8 +1959,10 @@ class P4Submit(Command, P4UserMap):
return template
def edit_template(self, template_file):
- """Invoke the editor to let the user change the submission
- message. Return true if okay to continue with the submit."""
+ """Invoke the editor to let the user change the submission message.
+
+ Return true if okay to continue with the submit.
+ """
# if configured to skip the editing part, just submit
if gitConfigBool("git-p4.skipSubmitEdit"):
@@ -1866,7 +1976,7 @@ class P4Submit(Command, P4UserMap):
if "P4EDITOR" in os.environ and (os.environ.get("P4EDITOR") != ""):
editor = os.environ.get("P4EDITOR")
else:
- editor = read_pipe("git var GIT_EDITOR").strip()
+ editor = read_pipe(["git", "var", "GIT_EDITOR"]).strip()
system(["sh", "-c", ('%s "$@"' % editor), editor, template_file])
# If the file was not saved, prompt to see if this patch should
@@ -1911,7 +2021,9 @@ class P4Submit(Command, P4UserMap):
for line in f.readlines():
newdiff += "+" + line
except UnicodeDecodeError:
- pass # Found non-text data and skip, since diff description should only include text
+ # Found non-text data and skip, since diff description
+ # should only include text
+ pass
f.close()
return (diff + newdiff).replace('\r\n', '\n')
@@ -1922,9 +2034,10 @@ class P4Submit(Command, P4UserMap):
print("Applying", read_pipe(["git", "show", "-s",
"--format=format:%h %s", id]))
- (p4User, gitEmail) = self.p4UserForCommit(id)
+ p4User, gitEmail = self.p4UserForCommit(id)
- diff = read_pipe_lines("git diff-tree -r %s \"%s^\" \"%s\"" % (self.diffOpts, id, id))
+ diff = read_pipe_lines(
+ ["git", "diff-tree", "-r"] + self.diffOpts + ["{}^".format(id), id])
filesToAdd = set()
filesToChangeType = set()
filesToDelete = set()
@@ -2028,8 +2141,8 @@ class P4Submit(Command, P4UserMap):
if regexp:
# this file is a possibility...look for RCS keywords.
for line in read_pipe_lines(
- ["git", "diff", "%s^..%s" % (id, id), file],
- raw=True):
+ ["git", "diff", "%s^..%s" % (id, id), file],
+ raw=True):
if regexp.search(line):
if verbose:
print("got keyword match on %s in %s in %s" % (regex.pattern, line, file))
@@ -2060,7 +2173,7 @@ class P4Submit(Command, P4UserMap):
#
# Apply the patch for real, and do add/delete/+x handling.
#
- system(applyPatchCmd)
+ system(applyPatchCmd, shell=True)
for f in filesToChangeType:
p4_edit(f, "-t", "auto")
@@ -2086,13 +2199,13 @@ class P4Submit(Command, P4UserMap):
#
logMessage = extractLogMessageFromGitCommit(id)
logMessage = logMessage.strip()
- (logMessage, jobs) = self.separate_jobs_from_description(logMessage)
+ logMessage, jobs = self.separate_jobs_from_description(logMessage)
template = self.prepareSubmitTemplate(update_shelve)
submitTemplate = self.prepareLogMessage(template, logMessage, jobs)
if self.preserveUser:
- submitTemplate += "\n######## Actual user %s, modified after commit\n" % p4User
+ submitTemplate += "\n######## Actual user %s, modified after commit\n" % p4User
if self.checkAuthorship and not self.p4UserIsMe(p4User):
submitTemplate += "######## git author %s does not match your p4 account.\n" % gitEmail
@@ -2104,7 +2217,7 @@ class P4Submit(Command, P4UserMap):
submitTemplate += separatorLine
submitTemplate += self.get_diff_description(editedFiles, filesToAdd, symlinks)
- (handle, fileName) = tempfile.mkstemp()
+ handle, fileName = tempfile.mkstemp()
tmpFile = os.fdopen(handle, "w+b")
if self.isWindows:
submitTemplate = submitTemplate.replace("\n", "\r\n")
@@ -2131,13 +2244,13 @@ class P4Submit(Command, P4UserMap):
print(" " + self.clientPath)
print("")
print("To submit, use \"p4 submit\" to write a new description,")
- print("or \"p4 submit -i <%s\" to use the one prepared by" \
+ print("or \"p4 submit -i <%s\" to use the one prepared by"
" \"git p4\"." % fileName)
print("You can delete the file \"%s\" when finished." % fileName)
if self.preserveUser and p4User and not self.p4UserIsMe(p4User):
- print("To preserve change ownership by user %s, you must\n" \
- "do \"p4 change -f <change>\" after submitting and\n" \
+ print("To preserve change ownership by user %s, you must\n"
+ "do \"p4 change -f <change>\" after submitting and\n"
"edit the User field.")
if pureRenameCopy:
print("After submitting, renamed files must be re-synced.")
@@ -2205,9 +2318,9 @@ class P4Submit(Command, P4UserMap):
# Revert changes if we skip this patch
if not submitted or self.shelve:
if self.shelve:
- print ("Reverting shelved files.")
+ print("Reverting shelved files.")
else:
- print ("Submission cancelled, undoing p4 changes.")
+ print("Submission cancelled, undoing p4 changes.")
sys.stdout.flush()
for f in editedFiles | filesToDelete:
p4_revert(f)
@@ -2219,9 +2332,11 @@ class P4Submit(Command, P4UserMap):
os.remove(fileName)
return submitted
- # Export git tags as p4 labels. Create a p4 label and then tag
- # with that.
def exportGitTags(self, gitTags):
+ """Export git tags as p4 labels. Create a p4 label and then tag with
+ that.
+ """
+
validLabelRegexp = gitConfig("git-p4.labelExportRegexp")
if len(validLabelRegexp) == 0:
validLabelRegexp = defaultLabelRegexp
@@ -2267,7 +2382,7 @@ class P4Submit(Command, P4UserMap):
# Create the label - use the same view as the client spec we are using
clientSpec = getClientSpec()
- labelTemplate = "Label: %s\n" % name
+ labelTemplate = "Label: %s\n" % name
labelTemplate += "Description:\n"
for b in body:
labelTemplate += "\t" + b + "\n"
@@ -2278,7 +2393,7 @@ class P4Submit(Command, P4UserMap):
if self.dry_run:
print("Would create p4 label %s for tag" % name)
elif self.prepare_p4_only:
- print("Not creating p4 label %s for tag due to option" \
+ print("Not creating p4 label %s for tag due to option"
" --prepare-p4-only" % name)
else:
p4_write_pipe(["label", "-i"], labelTemplate)
@@ -2309,7 +2424,7 @@ class P4Submit(Command, P4UserMap):
if len(allowSubmit) > 0 and not self.master in allowSubmit.split(","):
die("%s is not in git-p4.allowSubmit" % self.master)
- [upstream, settings] = findUpstreamBranchPoint()
+ upstream, settings = findUpstreamBranchPoint()
self.depotPath = settings['depot-paths'][0]
if len(self.origin) == 0:
self.origin = upstream
@@ -2410,17 +2525,17 @@ class P4Submit(Command, P4UserMap):
#
if self.detectRenames:
# command-line -M arg
- self.diffOpts = "-M"
+ self.diffOpts = ["-M"]
else:
# If not explicitly set check the config variable
detectRenames = gitConfig("git-p4.detectRenames")
if detectRenames.lower() == "false" or detectRenames == "":
- self.diffOpts = ""
+ self.diffOpts = []
elif detectRenames.lower() == "true":
- self.diffOpts = "-M"
+ self.diffOpts = ["-M"]
else:
- self.diffOpts = "-M%s" % detectRenames
+ self.diffOpts = ["-M{}".format(detectRenames)]
# no command-line arg for -C or --find-copies-harder, just
# config variables
@@ -2428,12 +2543,12 @@ class P4Submit(Command, P4UserMap):
if detectCopies.lower() == "false" or detectCopies == "":
pass
elif detectCopies.lower() == "true":
- self.diffOpts += " -C"
+ self.diffOpts.append("-C")
else:
- self.diffOpts += " -C%s" % detectCopies
+ self.diffOpts.append("-C{}".format(detectCopies))
if gitConfigBool("git-p4.detectCopiesHarder"):
- self.diffOpts += " --find-copies-harder"
+ self.diffOpts.append("--find-copies-harder")
num_shelves = len(self.update_shelve)
if num_shelves > 0 and num_shelves != len(commits):
@@ -2443,13 +2558,13 @@ class P4Submit(Command, P4UserMap):
if not self.no_verify:
try:
if not run_git_hook("p4-pre-submit"):
- print("\nThe p4-pre-submit hook failed, aborting the submit.\n\nYou can skip " \
- "this pre-submission check by adding\nthe command line option '--no-verify', " \
+ print("\nThe p4-pre-submit hook failed, aborting the submit.\n\nYou can skip "
+ "this pre-submission check by adding\nthe command line option '--no-verify', "
"however,\nthis will also skip the p4-changelist hook as well.")
sys.exit(1)
except Exception as e:
- print("\nThe p4-pre-submit hook failed, aborting the submit.\n\nThe hook failed "\
- "with the error '{0}'".format(e.message) )
+ print("\nThe p4-pre-submit hook failed, aborting the submit.\n\nThe hook failed "
+ "with the error '{0}'".format(e.message))
sys.exit(1)
#
@@ -2471,7 +2586,7 @@ class P4Submit(Command, P4UserMap):
applied.append(commit)
if self.prepare_p4_only:
if i < last:
- print("Processing only the first commit due to option" \
+ print("Processing only the first commit due to option"
" --prepare-p4-only")
break
else:
@@ -2541,13 +2656,15 @@ class P4Submit(Command, P4UserMap):
# exit with error unless everything applied perfectly
if len(commits) != len(applied):
- sys.exit(1)
+ sys.exit(1)
return True
+
class View(object):
- """Represent a p4 view ("p4 help views"), and map files in a
- repo according to the view."""
+ """Represent a p4 view ("p4 help views"), and map files in a repo according
+ to the view.
+ """
def __init__(self, client_name):
self.mappings = []
@@ -2556,9 +2673,10 @@ class View(object):
self.client_spec_path_cache = {}
def append(self, view_line):
- """Parse a view line, splitting it into depot and client
- sides. Append to self.mappings, preserving order. This
- is only needed for tag creation."""
+ """Parse a view line, splitting it into depot and client sides. Append
+ to self.mappings, preserving order. This is only needed for tag
+ creation.
+ """
# Split the view line into exactly two words. P4 enforces
# structure on these lines that simplifies this quite a bit.
@@ -2607,7 +2725,7 @@ class View(object):
return clientFile[len(self.client_prefix):]
def update_client_spec_path_cache(self, files):
- """ Caching file paths by "p4 where" batch query """
+ """Caching file paths by "p4 where" batch query."""
# List depot file paths exclude that already cached
fileArgs = [f['path'] for f in files if decode_path(f['path']) not in self.client_spec_path_cache]
@@ -2639,9 +2757,11 @@ class View(object):
self.client_spec_path_cache[depotFile] = b''
def map_in_client(self, depot_path):
- """Return the relative location in the client where this
- depot file should live. Returns "" if the file should
- not be mapped in the client."""
+ """Return the relative location in the client where this depot file
+ should live.
+
+ Returns "" if the file should not be mapped in the client.
+ """
if gitConfigBool("core.ignorecase"):
depot_path = depot_path.lower()
@@ -2649,14 +2769,16 @@ class View(object):
if depot_path in self.client_spec_path_cache:
return self.client_spec_path_cache[depot_path]
- die( "Error: %s is not found in client spec path" % depot_path )
+ die("Error: %s is not found in client spec path" % depot_path)
return ""
+
def cloneExcludeCallback(option, opt_str, value, parser):
# prepend "/" because the first "/" was consumed as part of the option itself.
# ("-//depot/A/..." becomes "/depot/A/..." after option parsing)
parser.values.cloneExclude += ["/" + re.sub(r"\.\.\.$", "", value)]
+
class P4Sync(Command, P4UserMap):
def __init__(self):
@@ -2737,8 +2859,8 @@ class P4Sync(Command, P4UserMap):
self.tz = "%+03d%02d" % (- time.timezone / 3600, ((- time.timezone % 3600) / 60))
self.labels = {}
- # Force a checkpoint in fast-import and wait for it to finish
def checkpoint(self):
+ """Force a checkpoint in fast-import and wait for it to finish."""
self.gitStream.write("checkpoint\n\n")
self.gitStream.write("progress checkpoint\n\n")
self.gitStream.flush()
@@ -2759,11 +2881,11 @@ class P4Sync(Command, P4UserMap):
return True
return False
- def extractFilesFromCommit(self, commit, shelved=False, shelved_cl = 0):
+ def extractFilesFromCommit(self, commit, shelved=False, shelved_cl=0):
files = []
fnum = 0
while "depotFile%s" % fnum in commit:
- path = commit["depotFile%s" % fnum]
+ path = commit["depotFile%s" % fnum]
found = self.isPathWanted(decode_path(path))
if not found:
fnum = fnum + 1
@@ -2790,10 +2912,10 @@ class P4Sync(Command, P4UserMap):
return jobs
def stripRepoPath(self, path, prefixes):
- """When streaming files, this is called to map a p4 depot path
- to where it should go in git. The prefixes are either
- self.depotPaths, or self.branchPrefixes in the case of
- branch detection."""
+ """When streaming files, this is called to map a p4 depot path to where
+ it should go in git. The prefixes are either self.depotPaths, or
+ self.branchPrefixes in the case of branch detection.
+ """
if self.useClientSpec:
# branch detection moves files up a level (the branch name)
@@ -2822,8 +2944,9 @@ class P4Sync(Command, P4UserMap):
return path
def splitFilesIntoBranches(self, commit):
- """Look at each depotFile in the commit to figure out to what
- branch it belongs."""
+ """Look at each depotFile in the commit to figure out to what branch it
+ belongs.
+ """
if self.clientSpecDirs:
files = self.extractFilesFromCommit(commit)
@@ -2883,10 +3006,12 @@ class P4Sync(Command, P4UserMap):
print('Path with non-ASCII characters detected. Used %s to encode: %s ' % (encoding, path))
return path
- # output one file from the P4 stream
- # - helper for streamP4Files
-
def streamOneP4File(self, file, contents):
+ """Output one file from the P4 stream.
+
+ This is a helper for streamP4Files().
+ """
+
file_path = file['depotFile']
relPath = self.stripRepoPath(decode_path(file_path), self.branchPrefixes)
@@ -2894,12 +3019,13 @@ class P4Sync(Command, P4UserMap):
if 'fileSize' in self.stream_file:
size = int(self.stream_file['fileSize'])
else:
- size = 0 # deleted files don't get a fileSize apparently
+ # Deleted files don't get a fileSize apparently
+ size = 0
sys.stdout.write('\r%s --> %s (%s)\n' % (
file_path, relPath, format_size_human_readable(size)))
sys.stdout.flush()
- (type_base, type_mods) = split_p4_type(file["type"])
+ type_base, type_mods = split_p4_type(file["type"])
git_mode = "100644"
if "x" in type_mods:
@@ -2942,7 +3068,7 @@ class P4Sync(Command, P4UserMap):
else:
if p4_version_string().find('/NT') >= 0:
text = text.replace(b'\r\n', b'\n')
- contents = [ text ]
+ contents = [text]
if type_base == "apple":
# Apple filetype files will be streamed as a concatenation of
@@ -2957,6 +3083,16 @@ class P4Sync(Command, P4UserMap):
print("\nIgnoring apple filetype file %s" % file['depotFile'])
return
+ if type_base == "utf8":
+ # The type utf8 explicitly means utf8 *with BOM*. These are
+ # streamed just like regular text files, however, without
+ # the BOM in the stream.
+ # Therefore, to accurately import these files into git, we
+ # need to explicitly re-add the BOM before writing.
+ # 'contents' is a set of bytes in this case, so create the
+ # BOM prefix as a b'' literal.
+ contents = [b'\xef\xbb\xbf' + contents[0]] + contents[1:]
+
# Note that we do not try to de-mangle keywords on utf16 files,
# even though in theory somebody may want that.
regexp = p4_keywords_regexp_for_type(type_base, type_mods)
@@ -2964,7 +3100,7 @@ class P4Sync(Command, P4UserMap):
contents = [regexp.sub(br'$\1$', c) for c in contents]
if self.largeFileSystem:
- (git_mode, contents) = self.largeFileSystem.processContent(git_mode, relPath, contents)
+ git_mode, contents = self.largeFileSystem.processContent(git_mode, relPath, contents)
self.writeToGitStream(git_mode, relPath, contents)
@@ -2978,8 +3114,8 @@ class P4Sync(Command, P4UserMap):
if self.largeFileSystem and self.largeFileSystem.isLargeFile(relPath):
self.largeFileSystem.removeLargeFile(relPath)
- # handle another chunk of streaming data
def streamP4FilesCb(self, marshalled):
+ """Handle another chunk of streaming data."""
# catch p4 errors and complain
err = None
@@ -3030,9 +3166,9 @@ class P4Sync(Command, P4UserMap):
self.stream_file[k] = marshalled[k]
if (verbose and
- 'streamContentSize' in self.stream_file and
- 'fileSize' in self.stream_file and
- 'depotFile' in self.stream_file):
+ 'streamContentSize' in self.stream_file and
+ 'fileSize' in self.stream_file and
+ 'depotFile' in self.stream_file):
size = int(self.stream_file["fileSize"])
if size > 0:
progress = 100*self.stream_file['streamContentSize']/size
@@ -3043,8 +3179,9 @@ class P4Sync(Command, P4UserMap):
self.stream_have_file_info = True
- # Stream directly from "p4 files" into "git fast-import"
def streamP4Files(self, files):
+ """Stream directly from "p4 files" into "git fast-import."""
+
filesForCommit = []
filesToRead = []
filesToDelete = []
@@ -3095,9 +3232,10 @@ class P4Sync(Command, P4UserMap):
return "%s <a@b>" % userid
def streamTag(self, gitStream, labelName, labelDetails, commit, epoch):
- """ Stream a p4 tag.
- commit is either a git commit, or a fast-import mark, ":<p4commit>"
- """
+ """Stream a p4 tag.
+
+ Commit is either a git commit, or a fast-import mark, ":<p4commit>".
+ """
if verbose:
print("writing tag %s for commit %s" % (labelName, commit))
@@ -3119,7 +3257,7 @@ class P4Sync(Command, P4UserMap):
gitStream.write("tagger %s\n" % tagger)
- print("labelDetails=",labelDetails)
+ print("labelDetails=", labelDetails)
if 'Description' in labelDetails:
description = labelDetails['Description']
else:
@@ -3147,15 +3285,18 @@ class P4Sync(Command, P4UserMap):
return hasPrefix
def findShadowedFiles(self, files, change):
- # Perforce allows you commit files and directories with the same name,
- # so you could have files //depot/foo and //depot/foo/bar both checked
- # in. A p4 sync of a repository in this state fails. Deleting one of
- # the files recovers the repository.
- #
- # Git will not allow the broken state to exist and only the most recent
- # of the conflicting names is left in the repository. When one of the
- # conflicting files is deleted we need to re-add the other one to make
- # sure the git repository recovers in the same way as perforce.
+ """Perforce allows you commit files and directories with the same name,
+ so you could have files //depot/foo and //depot/foo/bar both checked
+ in. A p4 sync of a repository in this state fails. Deleting one of
+ the files recovers the repository.
+
+ Git will not allow the broken state to exist and only the most
+ recent of the conflicting names is left in the repository. When one
+ of the conflicting files is deleted we need to re-add the other one
+ to make sure the git repository recovers in the same way as
+ perforce.
+ """
+
deleted = [f for f in files if f['action'] in self.delete_actions]
to_check = set()
for f in deleted:
@@ -3182,7 +3323,7 @@ class P4Sync(Command, P4UserMap):
'rev': record['headRev'],
'type': record['headType']})
- def commit(self, details, files, branch, parent = "", allow_empty=False):
+ def commit(self, details, files, branch, parent="", allow_empty=False):
epoch = details["time"]
author = details["user"]
jobs = self.extractJobsFromCommit(details)
@@ -3272,8 +3413,11 @@ class P4Sync(Command, P4UserMap):
print("Tag %s does not match with change %s: file count is different."
% (labelDetails["label"], change))
- # Build a dictionary of changelists and labels, for "detect-labels" option.
def getLabels(self):
+ """Build a dictionary of changelists and labels, for "detect-labels"
+ option.
+ """
+
self.labels = {}
l = p4CmdList(["labels"] + ["%s..." % p for p in self.depotPaths])
@@ -3299,11 +3443,12 @@ class P4Sync(Command, P4UserMap):
if self.verbose:
print("Label changes: %s" % self.labels.keys())
- # Import p4 labels as git tags. A direct mapping does not
- # exist, so assume that if all the files are at the same revision
- # then we can use that, or it's something more complicated we should
- # just ignore.
def importP4Labels(self, stream, p4Labels):
+ """Import p4 labels as git tags. A direct mapping does not exist, so
+ assume that if all the files are at the same revision then we can
+ use that, or it's something more complicated we should just ignore.
+ """
+
if verbose:
print("import p4 labels: " + ' '.join(p4Labels))
@@ -3318,7 +3463,7 @@ class P4Sync(Command, P4UserMap):
if not m.match(name):
if verbose:
- print("label %s does not match regexp %s" % (name,validLabelRegexp))
+ print("label %s does not match regexp %s" % (name, validLabelRegexp))
continue
if name in ignoredP4Labels:
@@ -3374,19 +3519,16 @@ class P4Sync(Command, P4UserMap):
p = p[:-1]
p = p[p.strip().rfind("/") + 1:]
if not p.endswith("/"):
- p += "/"
+ p += "/"
return p
def getBranchMapping(self):
lostAndFoundBranches = set()
user = gitConfig("git-p4.branchUser")
- if len(user) > 0:
- command = "branches -u %s" % user
- else:
- command = "branches"
- for info in p4CmdList(command):
+ for info in p4CmdList(
+ ["branches"] + (["-u", user] if len(user) > 0 else [])):
details = p4Cmd(["branch", "-o", info["branch"]])
viewIdx = 0
while "View%s" % viewIdx in details:
@@ -3397,7 +3539,7 @@ class P4Sync(Command, P4UserMap):
continue
source = paths[0]
destination = paths[1]
- ## HACK
+ # HACK
if p4PathStartsWith(source, self.depotPaths[0]) and p4PathStartsWith(destination, self.depotPaths[0]):
source = source[len(self.depotPaths[0]):-4]
destination = destination[len(self.depotPaths[0]):-4]
@@ -3426,7 +3568,7 @@ class P4Sync(Command, P4UserMap):
configBranches = gitConfigList("git-p4.branchList")
for branch in configBranches:
if branch:
- (source, destination) = branch.split(":")
+ source, destination = branch.split(":")
self.knownBranches[destination] = source
lostAndFoundBranches.discard(destination)
@@ -3434,7 +3576,6 @@ class P4Sync(Command, P4UserMap):
if source not in self.knownBranches:
lostAndFoundBranches.add(source)
-
for branch in lostAndFoundBranches:
self.knownBranches[branch] = branch
@@ -3477,7 +3618,8 @@ class P4Sync(Command, P4UserMap):
while True:
if self.verbose:
print("trying: earliest %s latest %s" % (earliestCommit, latestCommit))
- next = read_pipe("git rev-list --bisect %s %s" % (latestCommit, earliestCommit)).strip()
+ next = read_pipe(["git", "rev-list", "--bisect",
+ latestCommit, earliestCommit]).strip()
if len(next) == 0:
if self.verbose:
print("argh")
@@ -3505,27 +3647,22 @@ class P4Sync(Command, P4UserMap):
def importNewBranch(self, branch, maxChange):
# make fast-import flush all changes to disk and update the refs using the checkpoint
# command so that we can try to find the branch parent in the git history
- self.gitStream.write("checkpoint\n\n");
- self.gitStream.flush();
+ self.gitStream.write("checkpoint\n\n")
+ self.gitStream.flush()
branchPrefix = self.depotPaths[0] + branch + "/"
range = "@1,%s" % maxChange
- #print "prefix" + branchPrefix
changes = p4ChangesForPaths([branchPrefix], range, self.changes_block_size)
if len(changes) <= 0:
return False
firstChange = changes[0]
- #print "first change in branch: %s" % firstChange
sourceBranch = self.knownBranches[branch]
sourceDepotPath = self.depotPaths[0] + sourceBranch
sourceRef = self.gitRefForBranch(sourceBranch)
- #print "source " + sourceBranch
branchParentChange = int(p4Cmd(["changes", "-m", "1", "%s...@1,%s" % (sourceDepotPath, firstChange)])["change"])
- #print "branch parent: %s" % branchParentChange
gitParent = self.gitCommitByP4Change(sourceRef, branchParentChange)
if len(gitParent) > 0:
self.initialParents[self.gitRefForBranch(branch)] = gitParent
- #print "parent git commit: %s" % gitParent
self.importChanges(changes)
return True
@@ -3560,9 +3697,9 @@ class P4Sync(Command, P4UserMap):
if self.detectBranches:
branches = self.splitFilesIntoBranches(description)
for branch in branches.keys():
- ## HACK --hwn
+ # HACK --hwn
branchPrefix = self.depotPaths[0] + branch + "/"
- self.branchPrefixes = [ branchPrefix ]
+ self.branchPrefixes = [branchPrefix]
parent = ""
@@ -3582,12 +3719,12 @@ class P4Sync(Command, P4UserMap):
fullBranch = self.projectName + branch
if fullBranch not in self.p4BranchesInGit:
if not self.silent:
- print("\n Importing new branch %s" % fullBranch);
+ print("\n Importing new branch %s" % fullBranch)
if self.importNewBranch(branch, change - 1):
parent = ""
self.p4BranchesInGit.append(fullBranch)
if not self.silent:
- print("\n Resuming with change %s" % change);
+ print("\n Resuming with change %s" % change)
if self.verbose:
print("parent determined through known branches: %s" % parent)
@@ -3633,7 +3770,7 @@ class P4Sync(Command, P4UserMap):
if self.hasOrigin:
if not self.silent:
print('Syncing with origin first, using "git fetch origin"')
- system("git fetch origin")
+ system(["git", "fetch", "origin"])
def importHeadRevision(self, revision):
print("Doing initial import of %s from revision %s into %s" % (' '.join(self.depotPaths), revision, self.branch))
@@ -3646,7 +3783,7 @@ class P4Sync(Command, P4UserMap):
newestRevision = 0
fileCnt = 0
- fileArgs = ["%s...%s" % (p,revision) for p in self.depotPaths]
+ fileArgs = ["%s...%s" % (p, revision) for p in self.depotPaths]
for info in p4CmdList(["files"] + fileArgs):
@@ -3655,24 +3792,21 @@ class P4Sync(Command, P4UserMap):
% info['data'])
if info['data'].find("must refer to client") >= 0:
sys.stderr.write("This particular p4 error is misleading.\n")
- sys.stderr.write("Perhaps the depot path was misspelled.\n");
+ sys.stderr.write("Perhaps the depot path was misspelled.\n")
sys.stderr.write("Depot path: %s\n" % " ".join(self.depotPaths))
sys.exit(1)
if 'p4ExitCode' in info:
sys.stderr.write("p4 exitcode: %s\n" % info['p4ExitCode'])
sys.exit(1)
-
change = int(info["change"])
if change > newestRevision:
newestRevision = change
if info["action"] in self.delete_actions:
- # don't increase the file cnt, otherwise details["depotFile123"] will have gaps!
- #fileCnt = fileCnt + 1
continue
- for prop in ["depotFile", "rev", "action", "type" ]:
+ for prop in ["depotFile", "rev", "action", "type"]:
details["%s%s" % (prop, fileCnt)] = info[prop]
fileCnt = fileCnt + 1
@@ -3692,7 +3826,6 @@ class P4Sync(Command, P4UserMap):
print("IO error details: {}".format(err))
print(self.gitError.read())
-
def importRevisions(self, args, branch_arg_given):
changes = []
@@ -3764,7 +3897,7 @@ class P4Sync(Command, P4UserMap):
self.importProcess = subprocess.Popen(["git", "fast-import"],
stdin=subprocess.PIPE,
stdout=subprocess.PIPE,
- stderr=subprocess.PIPE);
+ stderr=subprocess.PIPE)
self.gitOutput = self.importProcess.stdout
self.gitStream = self.importProcess.stdin
self.gitError = self.importProcess.stderr
@@ -3800,8 +3933,8 @@ class P4Sync(Command, P4UserMap):
if len(self.branch) == 0:
self.branch = self.refPrefix + "master"
if gitBranchExists("refs/heads/p4") and self.importIntoRemotes:
- system("git update-ref %s refs/heads/p4" % self.branch)
- system("git branch -D p4")
+ system(["git", "update-ref", self.branch, "refs/heads/p4"])
+ system(["git", "branch", "-D", "p4"])
# accept either the command-line option, or the configuration variable
if self.useClientSpec:
@@ -3824,9 +3957,13 @@ class P4Sync(Command, P4UserMap):
# restrict to just this one, disabling detect-branches
if branch_arg_given:
- short = self.branch.split("/")[-1]
+ short = shortP4Ref(self.branch, self.importIntoRemotes)
if short in branches:
- self.p4BranchesInGit = [ short ]
+ self.p4BranchesInGit = [short]
+ elif self.branch.startswith('refs/') and \
+ branchExists(self.branch) and \
+ '[git-p4:' in extractLogMessageFromGitCommit(self.branch):
+ self.p4BranchesInGit = [self.branch]
else:
self.p4BranchesInGit = branches.keys()
@@ -3843,13 +3980,13 @@ class P4Sync(Command, P4UserMap):
p4Change = 0
for branch in self.p4BranchesInGit:
- logMsg = extractLogMessageFromGitCommit(self.refPrefix + branch)
+ logMsg = extractLogMessageFromGitCommit(fullP4Ref(branch,
+ self.importIntoRemotes))
settings = extractSettingsGitLog(logMsg)
self.readOptions(settings)
- if ('depot-paths' in settings
- and 'change' in settings):
+ if 'depot-paths' in settings and 'change' in settings:
change = int(settings['change']) + 1
p4Change = max(p4Change, change)
@@ -3866,7 +4003,7 @@ class P4Sync(Command, P4UserMap):
i = i - 1
break
- paths.append ("/".join(cur_list[:i + 1]))
+ paths.append("/".join(cur_list[:i + 1]))
self.previousDepotPaths = paths
@@ -3876,18 +4013,7 @@ class P4Sync(Command, P4UserMap):
if not self.silent and not self.detectBranches:
print("Performing incremental import into %s git branch" % self.branch)
- # accept multiple ref name abbreviations:
- # refs/foo/bar/branch -> use it exactly
- # p4/branch -> prepend refs/remotes/ or refs/heads/
- # branch -> prepend refs/remotes/p4/ or refs/heads/p4/
- if not self.branch.startswith("refs/"):
- if self.importIntoRemotes:
- prepend = "refs/remotes/"
- else:
- prepend = "refs/heads/"
- if not self.branch.startswith("p4/"):
- prepend += "p4/"
- self.branch = prepend + self.branch
+ self.branch = fullP4Ref(self.branch, self.importIntoRemotes)
if len(args) == 0 and self.depotPaths:
if not self.silent:
@@ -3895,8 +4021,8 @@ class P4Sync(Command, P4UserMap):
else:
if self.depotPaths and self.depotPaths != args:
print("previous import used depot path %s and now %s was specified. "
- "This doesn't work!" % (' '.join (self.depotPaths),
- ' '.join (args)))
+ "This doesn't work!" % (' '.join(self.depotPaths),
+ ' '.join(args)))
sys.exit(1)
self.depotPaths = sorted(args)
@@ -3936,7 +4062,7 @@ class P4Sync(Command, P4UserMap):
if len(self.changesFile) == 0:
revision = "#head"
- p = re.sub ("\.\.\.$", "", p)
+ p = re.sub("\.\.\.$", "", p)
if not p.endswith("/"):
p += "/"
@@ -3950,10 +4076,10 @@ class P4Sync(Command, P4UserMap):
self.loadUserMapFromCache()
self.labels = {}
if self.detectLabels:
- self.getLabels();
+ self.getLabels()
if self.detectBranches:
- ## FIXME - what's a P4 projectName ?
+ # FIXME - what's a P4 projectName ?
self.projectName = self.guessProjectName()
if self.hasOrigin:
@@ -3966,7 +4092,7 @@ class P4Sync(Command, P4UserMap):
for b in self.p4BranchesInGit:
if b != "master":
- ## FIXME
+ # FIXME
b = b[len(self.projectName):]
self.createdBranches.add(b)
@@ -4004,7 +4130,7 @@ class P4Sync(Command, P4UserMap):
# Cleanup temporary branches created during import
if self.tempBranches != []:
for branch in self.tempBranches:
- read_pipe("git update-ref -d %s" % branch)
+ read_pipe(["git", "update-ref", "-d", branch])
os.rmdir(os.path.join(os.environ.get("GIT_DIR", ".git"), self.tempBranchLocation))
# Create a symbolic ref p4/HEAD pointing to p4/<branch> to allow
@@ -4016,6 +4142,7 @@ class P4Sync(Command, P4UserMap):
return True
+
class P4Rebase(Command):
def __init__(self):
Command.__init__(self)
@@ -4035,11 +4162,11 @@ class P4Rebase(Command):
def rebase(self):
if os.system("git update-index --refresh") != 0:
- die("Some files in your working directory are modified and different than what is in your index. You can use git update-index <filename> to bring the index up to date or stash away all your changes with git stash.");
- if len(read_pipe("git diff-index HEAD --")) > 0:
- die("You have uncommitted changes. Please commit them before rebasing or stash them away with git stash.");
+ die("Some files in your working directory are modified and different than what is in your index. You can use git update-index <filename> to bring the index up to date or stash away all your changes with git stash.")
+ if len(read_pipe(["git", "diff-index", "HEAD", "--"])) > 0:
+ die("You have uncommitted changes. Please commit them before rebasing or stash them away with git stash.")
- [upstream, settings] = findUpstreamBranchPoint()
+ upstream, settings = findUpstreamBranchPoint()
if len(upstream) == 0:
die("Cannot find upstream branchpoint for rebase")
@@ -4047,11 +4174,13 @@ class P4Rebase(Command):
upstream = re.sub("~[0-9]+$", "", upstream)
print("Rebasing the current branch onto %s" % upstream)
- oldHead = read_pipe("git rev-parse HEAD").strip()
- system("git rebase %s" % upstream)
- system("git diff-tree --stat --summary -M %s HEAD --" % oldHead)
+ oldHead = read_pipe(["git", "rev-parse", "HEAD"]).strip()
+ system(["git", "rebase", upstream])
+ system(["git", "diff-tree", "--stat", "--summary", "-M", oldHead,
+ "HEAD", "--"])
return True
+
class P4Clone(P4Sync):
def __init__(self):
P4Sync.__init__(self)
@@ -4069,7 +4198,7 @@ class P4Clone(P4Sync):
self.cloneBare = False
def defaultDestination(self, args):
- ## TODO: use common prefix of args?
+ # TODO: use common prefix of args?
depotPath = args[0]
depotDir = re.sub("(@[^@]*)$", "", depotPath)
depotDir = re.sub("(#[^#]*)$", "", depotDir)
@@ -4105,31 +4234,32 @@ class P4Clone(P4Sync):
os.makedirs(self.cloneDestination)
chdir(self.cloneDestination)
- init_cmd = [ "git", "init" ]
+ init_cmd = ["git", "init"]
if self.cloneBare:
init_cmd.append("--bare")
retcode = subprocess.call(init_cmd)
if retcode:
- raise CalledProcessError(retcode, init_cmd)
+ raise subprocess.CalledProcessError(retcode, init_cmd)
if not P4Sync.run(self, depotPaths):
return False
# create a master branch and check out a work tree
if gitBranchExists(self.branch):
- system([ "git", "branch", currentGitBranch(), self.branch ])
+ system(["git", "branch", currentGitBranch(), self.branch])
if not self.cloneBare:
- system([ "git", "checkout", "-f" ])
+ system(["git", "checkout", "-f"])
else:
- print('Not checking out any branch, use ' \
+ print('Not checking out any branch, use '
'"git checkout -q -b master <branch>"')
# auto-set this variable if invoked with --use-client-spec
if self.useClientSpec_from_options:
- system("git config --bool git-p4.useclientspec true")
+ system(["git", "config", "--bool", "git-p4.useclientspec", "true"])
return True
+
class P4Unshelve(Command):
def __init__(self):
Command.__init__(self)
@@ -4146,14 +4276,14 @@ class P4Unshelve(Command):
self.destbranch = "refs/remotes/p4-unshelved"
def renameBranch(self, branch_name):
- """ Rename the existing branch to branch_name.N
- """
+ """Rename the existing branch to branch_name.N ."""
found = True
- for i in range(0,1000):
+ for i in range(0, 1000):
backup_branch_name = "{0}.{1}".format(branch_name, i)
if not gitBranchExists(backup_branch_name):
- gitUpdateRef(backup_branch_name, branch_name) # copy ref to backup
+ # Copy ref to backup
+ gitUpdateRef(backup_branch_name, branch_name)
gitDeleteRef(branch_name)
found = True
print("renamed old unshelve branch to {0}".format(backup_branch_name))
@@ -4163,9 +4293,9 @@ class P4Unshelve(Command):
sys.exit("gave up trying to rename existing branch {0}".format(sync.branch))
def findLastP4Revision(self, starting_point):
- """ Look back from starting_point for the first commit created by git-p4
- to find the P4 commit we are based on, and the depot-paths.
- """
+ """Look back from starting_point for the first commit created by git-p4
+ to find the P4 commit we are based on, and the depot-paths.
+ """
for parent in (range(65535)):
log = extractLogMessageFromGitCommit("{0}~{1}".format(starting_point, parent))
@@ -4176,8 +4306,9 @@ class P4Unshelve(Command):
sys.exit("could not find git-p4 commits in {0}".format(self.origin))
def createShelveParent(self, change, branch_name, sync, origin):
- """ Create a commit matching the parent of the shelved changelist 'change'
- """
+ """Create a commit matching the parent of the shelved changelist
+ 'change'.
+ """
parent_description = p4_describe(change, shelved=True)
parent_description['desc'] = 'parent for shelved changelist {}\n'.format(change)
files = sync.extractFilesFromCommit(parent_description, shelved=False, shelved_cl=change)
@@ -4245,10 +4376,11 @@ class P4Unshelve(Command):
return True
+
class P4Branches(Command):
def __init__(self):
Command.__init__(self)
- self.options = [ ]
+ self.options = []
self.description = ("Shows the git branches that hold imports and their "
+ "corresponding perforce depot paths")
self.verbose = False
@@ -4257,10 +4389,7 @@ class P4Branches(Command):
if originP4BranchesExist():
createOrUpdateBranchesFromOrigin()
- cmdline = "git rev-parse --symbolic "
- cmdline += " --remotes"
-
- for line in read_pipe_lines(cmdline):
+ for line in read_pipe_lines(["git", "rev-parse", "--symbolic", "--remotes"]):
line = line.strip()
if not line.startswith('p4/') or line == "p4/HEAD":
@@ -4273,6 +4402,7 @@ class P4Branches(Command):
print("%s <= %s (%s)" % (branch, ",".join(settings["depot-paths"]), settings["change"]))
return True
+
class HelpFormatter(optparse.IndentedHelpFormatter):
def __init__(self):
optparse.IndentedHelpFormatter.__init__(self)
@@ -4283,6 +4413,7 @@ class HelpFormatter(optparse.IndentedHelpFormatter):
else:
return ""
+
def printUsage(commands):
print("usage: %s <command> [options]" % sys.argv[0])
print("")
@@ -4291,16 +4422,18 @@ def printUsage(commands):
print("Try %s <command> --help for command specific help." % sys.argv[0])
print("")
+
commands = {
- "submit" : P4Submit,
- "commit" : P4Submit,
- "sync" : P4Sync,
- "rebase" : P4Rebase,
- "clone" : P4Clone,
- "branches" : P4Branches,
- "unshelve" : P4Unshelve,
+ "submit": P4Submit,
+ "commit": P4Submit,
+ "sync": P4Sync,
+ "rebase": P4Rebase,
+ "clone": P4Clone,
+ "branches": P4Branches,
+ "unshelve": P4Unshelve,
}
+
def main():
if len(sys.argv[1:]) == 0:
printUsage(commands.keys())
@@ -4327,11 +4460,11 @@ def main():
parser = optparse.OptionParser(cmd.usage.replace("%prog", "%prog " + cmdName),
options,
- description = cmd.description,
- formatter = HelpFormatter())
+ description=cmd.description,
+ formatter=HelpFormatter())
try:
- (cmd, args) = parser.parse_args(sys.argv[2:], cmd);
+ cmd, args = parser.parse_args(sys.argv[2:], cmd)
except:
parser.print_help()
raise
@@ -4339,15 +4472,15 @@ def main():
global verbose
verbose = cmd.verbose
if cmd.needsGit:
- if cmd.gitdir == None:
+ if cmd.gitdir is None:
cmd.gitdir = os.path.abspath(".git")
if not isValidGitDir(cmd.gitdir):
# "rev-parse --git-dir" without arguments will try $PWD/.git
- cmd.gitdir = read_pipe("git rev-parse --git-dir").strip()
+ cmd.gitdir = read_pipe(["git", "rev-parse", "--git-dir"]).strip()
if os.path.exists(cmd.gitdir):
- cdup = read_pipe("git rev-parse --show-cdup").strip()
+ cdup = read_pipe(["git", "rev-parse", "--show-cdup"]).strip()
if len(cdup) > 0:
- chdir(cdup);
+ chdir(cdup)
if not isValidGitDir(cmd.gitdir):
if isValidGitDir(cmd.gitdir + "/.git"):
diff --git a/git-send-email.perl b/git-send-email.perl
index 04087221aa..5861e99a6e 100755
--- a/git-send-email.perl
+++ b/git-send-email.perl
@@ -225,13 +225,13 @@ my $multiedit;
my $editor;
sub system_or_msg {
- my ($args, $msg) = @_;
+ my ($args, $msg, $cmd_name) = @_;
system(@$args);
my $signalled = $? & 127;
my $exit_code = $? >> 8;
return unless $signalled or $exit_code;
- my @sprintf_args = ($args->[0], $exit_code);
+ my @sprintf_args = ($cmd_name ? $cmd_name : $args->[0], $exit_code);
if (defined $msg) {
# Quiet the 'redundant' warning category, except we
# need to support down to Perl 5.8, so we can't do a
@@ -2075,10 +2075,10 @@ sub validate_patch {
my ($fn, $xfer_encoding) = @_;
if ($repo) {
+ my $hook_name = 'sendemail-validate';
my $hooks_path = $repo->command_oneline('rev-parse', '--git-path', 'hooks');
require File::Spec;
- my $validate_hook = File::Spec->catfile($hooks_path,
- 'sendemail-validate');
+ my $validate_hook = File::Spec->catfile($hooks_path, $hook_name);
my $hook_error;
if (-x $validate_hook) {
require Cwd;
@@ -2088,13 +2088,18 @@ sub validate_patch {
chdir($repo->wc_path() or $repo->repo_path())
or die("chdir: $!");
local $ENV{"GIT_DIR"} = $repo->repo_path();
- $hook_error = system_or_msg([$validate_hook, $target]);
+ my @cmd = ("git", "hook", "run", "--ignore-missing",
+ $hook_name, "--");
+ my @cmd_msg = (@cmd, "<patch>");
+ my @cmd_run = (@cmd, $target);
+ $hook_error = system_or_msg(\@cmd_run, undef, "@cmd_msg");
chdir($cwd_save) or die("chdir: $!");
}
if ($hook_error) {
- die sprintf(__("fatal: %s: rejected by sendemail-validate hook\n" .
- "%s\n" .
- "warning: no patches were sent\n"), $fn, $hook_error);
+ $hook_error = sprintf(
+ __("fatal: %s: rejected by %s hook\n%s\nwarning: no patches were sent\n"),
+ $fn, $hook_name, $hook_error);
+ die $hook_error;
}
}
diff --git a/git-sh-setup.sh b/git-sh-setup.sh
index b93f39288c..d92df37e99 100644
--- a/git-sh-setup.sh
+++ b/git-sh-setup.sh
@@ -101,7 +101,6 @@ $LONG_USAGE")"
case "$1" in
-h)
echo "$LONG_USAGE"
- case "$0" in *git-legacy-stash) exit 129;; esac
exit
esac
fi
diff --git a/git-submodule.sh b/git-submodule.sh
index 652861aa66..fd0b4a2c94 100755
--- a/git-submodule.sh
+++ b/git-submodule.sh
@@ -10,7 +10,7 @@ USAGE="[--quiet] [--cached]
or: $dashless [--quiet] status [--cached] [--recursive] [--] [<path>...]
or: $dashless [--quiet] init [--] [<path>...]
or: $dashless [--quiet] deinit [-f|--force] (--all| [--] <path>...)
- or: $dashless [--quiet] update [--init] [--remote] [-N|--no-fetch] [-f|--force] [--checkout|--merge|--rebase] [--[no-]recommend-shallow] [--reference <repository>] [--recursive] [--[no-]single-branch] [--] [<path>...]
+ or: $dashless [--quiet] update [--init [--filter=<filter-spec>]] [--remote] [-N|--no-fetch] [-f|--force] [--checkout|--merge|--rebase] [--[no-]recommend-shallow] [--reference <repository>] [--recursive] [--[no-]single-branch] [--] [<path>...]
or: $dashless [--quiet] set-branch (--default|--branch <branch>) [--] <path>
or: $dashless [--quiet] set-url [--] <path> <newurl>
or: $dashless [--quiet] summary [--cached|--files] [--summary-limit <n>] [commit] [--] [<path>...]
@@ -49,14 +49,7 @@ dissociate=
single_branch=
jobs=
recommend_shallow=
-
-die_if_unmatched ()
-{
- if test "$1" = "#unmatched"
- then
- exit ${2:-1}
- fi
-}
+filter=
isnumber()
{
@@ -246,20 +239,6 @@ cmd_deinit()
git ${wt_prefix:+-C "$wt_prefix"} submodule--helper deinit ${GIT_QUIET:+--quiet} ${force:+--force} ${deinit_all:+--all} -- "$@"
}
-# usage: fetch_in_submodule <module_path> [<depth>] [<sha1>]
-# Because arguments are positional, use an empty string to omit <depth>
-# but include <sha1>.
-fetch_in_submodule () (
- sanitize_submodule_env &&
- cd "$1" &&
- if test $# -eq 3
- then
- echo "$3" | git fetch ${GIT_QUIET:+--quiet} --stdin ${2:+"$2"}
- else
- git fetch ${GIT_QUIET:+--quiet} ${2:+"$2"}
- fi
-)
-
#
# Update each submodule path to correct revision, using clone and checkout as needed
#
@@ -347,6 +326,14 @@ cmd_update()
--no-single-branch)
single_branch="--no-single-branch"
;;
+ --filter)
+ case "$2" in '') usage ;; esac
+ filter="--filter=$2"
+ shift
+ ;;
+ --filter=*)
+ filter="$1"
+ ;;
--)
shift
break
@@ -361,133 +348,28 @@ cmd_update()
shift
done
- if test -n "$init"
- then
- cmd_init "--" "$@" || return
- fi
-
- {
- git submodule--helper update-clone ${GIT_QUIET:+--quiet} \
+ git ${wt_prefix:+-C "$wt_prefix"} submodule--helper update \
+ ${GIT_QUIET:+--quiet} \
+ ${force:+--force} \
${progress:+"--progress"} \
+ ${remote:+--remote} \
+ ${recursive:+--recursive} \
+ ${init:+--init} \
+ ${nofetch:+--no-fetch} \
${wt_prefix:+--prefix "$wt_prefix"} \
${prefix:+--recursive-prefix "$prefix"} \
${update:+--update "$update"} \
${reference:+"$reference"} \
${dissociate:+"--dissociate"} \
- ${depth:+--depth "$depth"} \
+ ${depth:+"$depth"} \
${require_init:+--require-init} \
+ ${dissociate:+"--dissociate"} \
$single_branch \
$recommend_shallow \
$jobs \
+ $filter \
-- \
- "$@" || echo "#unmatched" $?
- } | {
- err=
- while read -r quickabort sha1 just_cloned sm_path
- do
- die_if_unmatched "$quickabort" "$sha1"
-
- git submodule--helper ensure-core-worktree "$sm_path" || exit 1
-
- displaypath=$(git submodule--helper relative-path "$prefix$sm_path" "$wt_prefix")
-
- if test $just_cloned -eq 1
- then
- subsha1=
- else
- just_cloned=
- subsha1=$(sanitize_submodule_env; cd "$sm_path" &&
- git rev-parse --verify HEAD) ||
- die "fatal: $(eval_gettext "Unable to find current revision in submodule path '\$displaypath'")"
- fi
-
- if test -n "$remote"
- then
- branch=$(git submodule--helper remote-branch "$sm_path")
- if test -z "$nofetch"
- then
- # Fetch remote before determining tracking $sha1
- fetch_in_submodule "$sm_path" $depth ||
- die "fatal: $(eval_gettext "Unable to fetch in submodule path '\$sm_path'")"
- fi
- remote_name=$(sanitize_submodule_env; cd "$sm_path" && git submodule--helper print-default-remote)
- sha1=$(sanitize_submodule_env; cd "$sm_path" &&
- git rev-parse --verify "${remote_name}/${branch}") ||
- die "fatal: $(eval_gettext "Unable to find current \${remote_name}/\${branch} revision in submodule path '\$sm_path'")"
- fi
-
- out=$(git submodule--helper run-update-procedure \
- ${wt_prefix:+--prefix "$wt_prefix"} \
- ${GIT_QUIET:+--quiet} \
- ${force:+--force} \
- ${just_cloned:+--just-cloned} \
- ${nofetch:+--no-fetch} \
- ${depth:+"$depth"} \
- ${update:+--update "$update"} \
- ${prefix:+--recursive-prefix "$prefix"} \
- ${sha1:+--oid "$sha1"} \
- ${subsha1:+--suboid "$subsha1"} \
- "--" \
- "$sm_path")
-
- # exit codes for run-update-procedure:
- # 0: update was successful, say command output
- # 1: update procedure failed, but should not die
- # 2 or 128: subcommand died during execution
- # 3: no update procedure was run
- res="$?"
- case $res in
- 0)
- say "$out"
- ;;
- 1)
- err="${err};fatal: $out"
- continue
- ;;
- 2|128)
- die_with_status $res "fatal: $out"
- ;;
- esac
-
- if test -n "$recursive"
- then
- (
- prefix=$(git submodule--helper relative-path "$prefix$sm_path/" "$wt_prefix")
- wt_prefix=
- sanitize_submodule_env
- cd "$sm_path" &&
- eval cmd_update
- )
- res=$?
- if test $res -gt 0
- then
- die_msg="fatal: $(eval_gettext "Failed to recurse into submodule path '\$displaypath'")"
- if test $res -ne 2
- then
- err="${err};$die_msg"
- continue
- else
- die_with_status $res "$die_msg"
- fi
- fi
- fi
- done
-
- if test -n "$err"
- then
- OIFS=$IFS
- IFS=';'
- for e in $err
- do
- if test -n "$e"
- then
- echo >&2 "$e"
- fi
- done
- IFS=$OIFS
- exit 1
- fi
- }
+ "$@"
}
#
diff --git a/git.c b/git.c
index edda922ce6..5ff4f3e25b 100644
--- a/git.c
+++ b/git.c
@@ -25,7 +25,7 @@ struct cmd_struct {
};
const char git_usage_string[] =
- N_("git [--version] [--help] [-C <path>] [-c <name>=<value>]\n"
+ N_("git [-v | --version] [-h | --help] [-C <path>] [-c <name>=<value>]\n"
" [--exec-path[=<path>]] [--html-path] [--man-path] [--info-path]\n"
" [-p | --paginate | -P | --no-pager] [--no-replace-objects] [--bare]\n"
" [--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>]\n"
@@ -146,7 +146,8 @@ static int handle_options(const char ***argv, int *argc, int *envchanged)
* commands can be written with "--" prepended
* to make them look like flags.
*/
- if (!strcmp(cmd, "--help") || !strcmp(cmd, "--version"))
+ if (!strcmp(cmd, "--help") || !strcmp(cmd, "-h") ||
+ !strcmp(cmd, "--version") || !strcmp(cmd, "-v"))
break;
/*
@@ -436,6 +437,7 @@ static int run_builtin(struct cmd_struct *p, int argc, const char **argv)
} else {
prefix = NULL;
}
+ assert(!prefix || *prefix);
precompose_argv_prefix(argc, argv, NULL);
if (use_pager == -1 && run_setup &&
!(p->option & DELAY_PAGER_CONFIG))
@@ -536,11 +538,13 @@ static struct cmd_struct commands[] = {
{ "format-patch", cmd_format_patch, RUN_SETUP },
{ "fsck", cmd_fsck, RUN_SETUP },
{ "fsck-objects", cmd_fsck, RUN_SETUP },
+ { "fsmonitor--daemon", cmd_fsmonitor__daemon, RUN_SETUP },
{ "gc", cmd_gc, RUN_SETUP },
{ "get-tar-commit-id", cmd_get_tar_commit_id, NO_PARSEOPT },
{ "grep", cmd_grep, RUN_SETUP_GENTLY },
{ "hash-object", cmd_hash_object },
{ "help", cmd_help },
+ { "hook", cmd_hook, RUN_SETUP },
{ "index-pack", cmd_index_pack, RUN_SETUP_GENTLY | NO_PARSEOPT },
{ "init", cmd_init_db },
{ "init-db", cmd_init_db },
@@ -890,8 +894,10 @@ int cmd_main(int argc, const char **argv)
argc--;
handle_options(&argv, &argc, NULL);
if (argc > 0) {
- /* translate --help and --version into commands */
- skip_prefix(argv[0], "--", &argv[0]);
+ if (!strcmp("--version", argv[0]) || !strcmp("-v", argv[0]))
+ argv[0] = "version";
+ else if (!strcmp("--help", argv[0]) || !strcmp("-h", argv[0]))
+ argv[0] = "help";
} else {
/* The user didn't specify a command; give them help */
commit_pager_choice();
diff --git a/gitk-git/gitk b/gitk-git/gitk
index 23d9dd1fe0..0ae7d68590 100755
--- a/gitk-git/gitk
+++ b/gitk-git/gitk
@@ -2955,9 +2955,9 @@ proc savestuff {w} {
proc resizeclistpanes {win w} {
global oldwidth oldsash use_ttk
if {[info exists oldwidth($win)]} {
- if {[info exists oldsash($win)]} {
- set s0 [lindex $oldsash($win) 0]
- set s1 [lindex $oldsash($win) 1]
+ if {[info exists oldsash($win)]} {
+ set s0 [lindex $oldsash($win) 0]
+ set s1 [lindex $oldsash($win) 1]
} elseif {$use_ttk} {
set s0 [$win sashpos 0]
set s1 [$win sashpos 1]
@@ -2991,8 +2991,10 @@ proc resizeclistpanes {win w} {
} else {
$win sash place 0 $sash0 [lindex $s0 1]
$win sash place 1 $sash1 [lindex $s1 1]
+ set sash0 [list $sash0 [lindex $s0 1]]
+ set sash1 [list $sash1 [lindex $s1 1]]
}
- set oldsash($win) [list $sash0 $sash1]
+ set oldsash($win) [list $sash0 $sash1]
}
set oldwidth($win) $w
}
@@ -3000,8 +3002,8 @@ proc resizeclistpanes {win w} {
proc resizecdetpanes {win w} {
global oldwidth oldsash use_ttk
if {[info exists oldwidth($win)]} {
- if {[info exists oldsash($win)]} {
- set s0 $oldsash($win)
+ if {[info exists oldsash($win)]} {
+ set s0 $oldsash($win)
} elseif {$use_ttk} {
set s0 [$win sashpos 0]
} else {
@@ -3023,8 +3025,9 @@ proc resizecdetpanes {win w} {
$win sashpos 0 $sash0
} else {
$win sash place 0 $sash0 [lindex $s0 1]
+ set sash0 [list $sash0 [lindex $s0 1]]
}
- set oldsash($win) $sash0
+ set oldsash($win) $sash0
}
set oldwidth($win) $w
}
diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl
index fbd1c20a23..606b50104c 100755
--- a/gitweb/gitweb.perl
+++ b/gitweb/gitweb.perl
@@ -4213,8 +4213,7 @@ sub git_header_html {
my %opts = @_;
my $title = get_page_title();
- my $content_type = get_content_type_html();
- print $cgi->header(-type=>$content_type, -charset => 'utf-8',
+ print $cgi->header(-type=>get_content_type_html(), -charset => 'utf-8',
-status=> $status, -expires => $expires)
unless ($opts{'-no_http_header'});
my $mod_perl_version = $ENV{'MOD_PERL'} ? " $ENV{'MOD_PERL'}" : '';
@@ -4225,7 +4224,6 @@ sub git_header_html {
<!-- git web interface version $version, (C) 2005-2006, Kay Sievers <kay.sievers\@vrfy.org>, Christian Gierke -->
<!-- git core binaries version $git_version -->
<head>
-<meta http-equiv="content-type" content="$content_type; charset=utf-8"/>
<meta name="generator" content="gitweb/$version git/$git_version$mod_perl_version"/>
<meta name="robots" content="index, nofollow"/>
<title>$title</title>
diff --git a/gpg-interface.c b/gpg-interface.c
index b52eb0e2e0..280f1fa1a5 100644
--- a/gpg-interface.c
+++ b/gpg-interface.c
@@ -433,7 +433,6 @@ static int verify_ssh_signed_buffer(struct signature_check *sigc,
struct tempfile *buffer_file;
int ret = -1;
const char *line;
- size_t trust_size;
char *principal;
struct strbuf ssh_principals_out = STRBUF_INIT;
struct strbuf ssh_principals_err = STRBUF_INIT;
@@ -502,15 +501,30 @@ static int verify_ssh_signed_buffer(struct signature_check *sigc,
ret = -1;
} else {
/* Check every principal we found (one per line) */
- for (line = ssh_principals_out.buf; *line;
- line = strchrnul(line + 1, '\n')) {
- while (*line == '\n')
- line++;
- if (!*line)
- break;
+ const char *next;
+ for (line = ssh_principals_out.buf;
+ *line;
+ line = next) {
+ const char *end_of_text;
+
+ next = end_of_text = strchrnul(line, '\n');
+
+ /* Did we find a LF, and did we have CR before it? */
+ if (*end_of_text &&
+ line < end_of_text &&
+ end_of_text[-1] == '\r')
+ end_of_text--;
+
+ /* Unless we hit NUL, skip over the LF we found */
+ if (*next)
+ next++;
- trust_size = strcspn(line, "\n");
- principal = xmemdupz(line, trust_size);
+ /* Not all lines are data. Skip empty ones */
+ if (line == end_of_text)
+ continue;
+
+ /* We now know we have an non-empty line. Process it */
+ principal = xmemdupz(line, end_of_text - line);
child_process_init(&ssh_keygen);
strbuf_release(&ssh_keygen_out);
@@ -702,7 +716,7 @@ int git_gpg_config(const char *var, const char *value, void *cb)
return config_error_nonbool(var);
fmt = get_format_by_name(value);
if (!fmt)
- return error("unsupported value for %s: %s",
+ return error(_("invalid value for '%s': '%s'"),
var, value);
use_format = fmt;
return 0;
@@ -717,8 +731,8 @@ int git_gpg_config(const char *var, const char *value, void *cb)
free(trust);
if (ret)
- return error("unsupported value for %s: %s", var,
- value);
+ return error(_("invalid value for '%s': '%s'"),
+ var, value);
return 0;
}
@@ -920,6 +934,7 @@ static int sign_buffer_gpg(struct strbuf *buffer, struct strbuf *signature,
struct child_process gpg = CHILD_PROCESS_INIT;
int ret;
size_t bottom;
+ const char *cp;
struct strbuf gpg_status = STRBUF_INIT;
strvec_pushl(&gpg.args,
@@ -939,7 +954,13 @@ static int sign_buffer_gpg(struct strbuf *buffer, struct strbuf *signature,
signature, 1024, &gpg_status, 0);
sigchain_pop(SIGPIPE);
- ret |= !strstr(gpg_status.buf, "\n[GNUPG:] SIG_CREATED ");
+ for (cp = gpg_status.buf;
+ cp && (cp = strstr(cp, "[GNUPG:] SIG_CREATED "));
+ cp++) {
+ if (cp == gpg_status.buf || cp[-1] == '\n')
+ break; /* found */
+ }
+ ret |= !cp;
strbuf_release(&gpg_status);
if (ret)
return error(_("gpg failed to sign the data"));
diff --git a/graph.c b/graph.c
index e3828eb8f2..568b6e7cd4 100644
--- a/graph.c
+++ b/graph.c
@@ -401,6 +401,18 @@ struct git_graph *graph_init(struct rev_info *opt)
return graph;
}
+void graph_clear(struct git_graph *graph)
+{
+ if (!graph)
+ return;
+
+ free(graph->columns);
+ free(graph->new_columns);
+ free(graph->mapping);
+ free(graph->old_mapping);
+ free(graph);
+}
+
static void graph_update_state(struct git_graph *graph, enum graph_state s)
{
graph->prev_state = graph->state;
diff --git a/graph.h b/graph.h
index 8313e293c7..e88632a014 100644
--- a/graph.h
+++ b/graph.h
@@ -140,6 +140,11 @@ void graph_set_column_colors(const char **colors, unsigned short colors_max);
struct git_graph *graph_init(struct rev_info *opt);
/*
+ * Free a struct git_graph.
+ */
+void graph_clear(struct git_graph *graph);
+
+/*
* Update a git_graph with a new commit.
* This will cause the graph to begin outputting lines for the new commit
* the next time graph_next_line() is called.
diff --git a/grep.c b/grep.c
index 7bb0360869..82eb7da102 100644
--- a/grep.c
+++ b/grep.c
@@ -19,27 +19,6 @@ static void std_output(struct grep_opt *opt, const void *buf, size_t size)
fwrite(buf, size, 1, stdout);
}
-static struct grep_opt grep_defaults = {
- .relative = 1,
- .pathname = 1,
- .max_depth = -1,
- .pattern_type_option = GREP_PATTERN_TYPE_UNSPECIFIED,
- .colors = {
- [GREP_COLOR_CONTEXT] = "",
- [GREP_COLOR_FILENAME] = GIT_COLOR_MAGENTA,
- [GREP_COLOR_FUNCTION] = "",
- [GREP_COLOR_LINENO] = GIT_COLOR_GREEN,
- [GREP_COLOR_COLUMNNO] = GIT_COLOR_GREEN,
- [GREP_COLOR_MATCH_CONTEXT] = GIT_COLOR_BOLD_RED,
- [GREP_COLOR_MATCH_SELECTED] = GIT_COLOR_BOLD_RED,
- [GREP_COLOR_SELECTED] = "",
- [GREP_COLOR_SEP] = GIT_COLOR_CYAN,
- },
- .only_matching = 0,
- .color = -1,
- .output = std_output,
-};
-
static const char *color_grep_slots[] = {
[GREP_COLOR_CONTEXT] = "context",
[GREP_COLOR_FILENAME] = "filename",
@@ -75,20 +54,12 @@ define_list_config_array_extra(color_grep_slots, {"match"});
*/
int grep_config(const char *var, const char *value, void *cb)
{
- struct grep_opt *opt = &grep_defaults;
+ struct grep_opt *opt = cb;
const char *slot;
if (userdiff_config(var, value) < 0)
return -1;
- /*
- * The instance of grep_opt that we set up here is copied by
- * grep_init() to be used by each individual invocation.
- * When populating a new field of this structure here, be
- * sure to think about ownership -- e.g., you might need to
- * override the shallow copy in grep_init() with a deep copy.
- */
-
if (!strcmp(var, "grep.extendedregexp")) {
opt->extended_regexp_option = git_config_bool(var, value);
return 0;
@@ -134,78 +105,16 @@ int grep_config(const char *var, const char *value, void *cb)
return 0;
}
-/*
- * Initialize one instance of grep_opt and copy the
- * default values from the template we read the configuration
- * information in an earlier call to git_config(grep_config).
- */
-void grep_init(struct grep_opt *opt, struct repository *repo, const char *prefix)
+void grep_init(struct grep_opt *opt, struct repository *repo)
{
- *opt = grep_defaults;
+ struct grep_opt blank = GREP_OPT_INIT;
+ memcpy(opt, &blank, sizeof(*opt));
opt->repo = repo;
- opt->prefix = prefix;
- opt->prefix_length = (prefix && *prefix) ? strlen(prefix) : 0;
opt->pattern_tail = &opt->pattern_list;
opt->header_tail = &opt->header_list;
}
-static void grep_set_pattern_type_option(enum grep_pattern_type pattern_type, struct grep_opt *opt)
-{
- /*
- * When committing to the pattern type by setting the relevant
- * fields in grep_opt it's generally not necessary to zero out
- * the fields we're not choosing, since they won't have been
- * set by anything. The extended_regexp_option field is the
- * only exception to this.
- *
- * This is because in the process of parsing grep.patternType
- * & grep.extendedRegexp we set opt->pattern_type_option and
- * opt->extended_regexp_option, respectively. We then
- * internally use opt->extended_regexp_option to see if we're
- * compiling an ERE. It must be unset if that's not actually
- * the case.
- */
- if (pattern_type != GREP_PATTERN_TYPE_ERE &&
- opt->extended_regexp_option)
- opt->extended_regexp_option = 0;
-
- switch (pattern_type) {
- case GREP_PATTERN_TYPE_UNSPECIFIED:
- /* fall through */
-
- case GREP_PATTERN_TYPE_BRE:
- break;
-
- case GREP_PATTERN_TYPE_ERE:
- opt->extended_regexp_option = 1;
- break;
-
- case GREP_PATTERN_TYPE_FIXED:
- opt->fixed = 1;
- break;
-
- case GREP_PATTERN_TYPE_PCRE:
- opt->pcre2 = 1;
- break;
- }
-}
-
-void grep_commit_pattern_type(enum grep_pattern_type pattern_type, struct grep_opt *opt)
-{
- if (pattern_type != GREP_PATTERN_TYPE_UNSPECIFIED)
- grep_set_pattern_type_option(pattern_type, opt);
- else if (opt->pattern_type_option != GREP_PATTERN_TYPE_UNSPECIFIED)
- grep_set_pattern_type_option(opt->pattern_type_option, opt);
- else if (opt->extended_regexp_option)
- /*
- * This branch *must* happen after setting from the
- * opt->pattern_type_option above, we don't want
- * grep.extendedRegexp to override grep.patternType!
- */
- grep_set_pattern_type_option(GREP_PATTERN_TYPE_ERE, opt);
-}
-
static struct grep_pat *create_grep_pat(const char *pat, size_t patlen,
const char *origin, int no,
enum grep_pat_token t,
@@ -386,7 +295,7 @@ static void compile_pcre2_pattern(struct grep_pat *p, const struct grep_opt *opt
if (!opt->ignore_locale && is_utf8_locale() && !literal)
options |= (PCRE2_UTF | PCRE2_MATCH_INVALID_UTF);
-#ifdef GIT_PCRE2_VERSION_10_36_OR_HIGHER
+#ifndef GIT_PCRE2_VERSION_10_36_OR_HIGHER
/* Work around https://bugs.exim.org/show_bug.cgi?id=2642 fixed in 10.36 */
if (PCRE2_MATCH_INVALID_UTF && options & (PCRE2_UTF | PCRE2_CASELESS))
options |= PCRE2_NO_START_OPTIMIZE;
@@ -523,11 +432,17 @@ static void compile_regexp(struct grep_pat *p, struct grep_opt *opt)
int err;
int regflags = REG_NEWLINE;
+ if (opt->pattern_type_option == GREP_PATTERN_TYPE_UNSPECIFIED)
+ opt->pattern_type_option = (opt->extended_regexp_option
+ ? GREP_PATTERN_TYPE_ERE
+ : GREP_PATTERN_TYPE_BRE);
+
p->word_regexp = opt->word_regexp;
p->ignore_case = opt->ignore_case;
- p->fixed = opt->fixed;
+ p->fixed = opt->pattern_type_option == GREP_PATTERN_TYPE_FIXED;
- if (memchr(p->pattern, 0, p->patternlen) && !opt->pcre2)
+ if (opt->pattern_type_option != GREP_PATTERN_TYPE_PCRE &&
+ memchr(p->pattern, 0, p->patternlen))
die(_("given pattern contains NULL byte (via -f <file>). This is only supported with -P under PCRE v2"));
p->is_fixed = is_fixed(p->pattern, p->patternlen);
@@ -578,14 +493,14 @@ static void compile_regexp(struct grep_pat *p, struct grep_opt *opt)
return;
}
- if (opt->pcre2) {
+ if (opt->pattern_type_option == GREP_PATTERN_TYPE_PCRE) {
compile_pcre2_pattern(p, opt);
return;
}
if (p->ignore_case)
regflags |= REG_ICASE;
- if (opt->extended_regexp_option)
+ if (opt->pattern_type_option == GREP_PATTERN_TYPE_ERE)
regflags |= REG_EXTENDED;
err = regcomp(&p->regexp, p->pattern, regflags);
if (err) {
@@ -595,6 +510,35 @@ static void compile_regexp(struct grep_pat *p, struct grep_opt *opt)
}
}
+static struct grep_expr *grep_not_expr(struct grep_expr *expr)
+{
+ struct grep_expr *z = xcalloc(1, sizeof(*z));
+ z->node = GREP_NODE_NOT;
+ z->u.unary = expr;
+ return z;
+}
+
+static struct grep_expr *grep_binexp(enum grep_expr_node kind,
+ struct grep_expr *left,
+ struct grep_expr *right)
+{
+ struct grep_expr *z = xcalloc(1, sizeof(*z));
+ z->node = kind;
+ z->u.binary.left = left;
+ z->u.binary.right = right;
+ return z;
+}
+
+static struct grep_expr *grep_or_expr(struct grep_expr *left, struct grep_expr *right)
+{
+ return grep_binexp(GREP_NODE_OR, left, right);
+}
+
+static struct grep_expr *grep_and_expr(struct grep_expr *left, struct grep_expr *right)
+{
+ return grep_binexp(GREP_NODE_AND, left, right);
+}
+
static struct grep_expr *compile_pattern_or(struct grep_pat **);
static struct grep_expr *compile_pattern_atom(struct grep_pat **list)
{
@@ -638,12 +582,10 @@ static struct grep_expr *compile_pattern_not(struct grep_pat **list)
if (!p->next)
die("--not not followed by pattern expression");
*list = p->next;
- CALLOC_ARRAY(x, 1);
- x->node = GREP_NODE_NOT;
- x->u.unary = compile_pattern_not(list);
- if (!x->u.unary)
+ x = compile_pattern_not(list);
+ if (!x)
die("--not followed by non pattern expression");
- return x;
+ return grep_not_expr(x);
default:
return compile_pattern_atom(list);
}
@@ -652,7 +594,7 @@ static struct grep_expr *compile_pattern_not(struct grep_pat **list)
static struct grep_expr *compile_pattern_and(struct grep_pat **list)
{
struct grep_pat *p;
- struct grep_expr *x, *y, *z;
+ struct grep_expr *x, *y;
x = compile_pattern_not(list);
p = *list;
@@ -665,11 +607,7 @@ static struct grep_expr *compile_pattern_and(struct grep_pat **list)
y = compile_pattern_and(list);
if (!y)
die("--and not followed by pattern expression");
- CALLOC_ARRAY(z, 1);
- z->node = GREP_NODE_AND;
- z->u.binary.left = x;
- z->u.binary.right = y;
- return z;
+ return grep_and_expr(x, y);
}
return x;
}
@@ -677,7 +615,7 @@ static struct grep_expr *compile_pattern_and(struct grep_pat **list)
static struct grep_expr *compile_pattern_or(struct grep_pat **list)
{
struct grep_pat *p;
- struct grep_expr *x, *y, *z;
+ struct grep_expr *x, *y;
x = compile_pattern_and(list);
p = *list;
@@ -685,11 +623,7 @@ static struct grep_expr *compile_pattern_or(struct grep_pat **list)
y = compile_pattern_or(list);
if (!y)
die("not a pattern expression %s", p->pattern);
- CALLOC_ARRAY(z, 1);
- z->node = GREP_NODE_OR;
- z->u.binary.left = x;
- z->u.binary.right = y;
- return z;
+ return grep_or_expr(x, y);
}
return x;
}
@@ -699,14 +633,6 @@ static struct grep_expr *compile_pattern_expr(struct grep_pat **list)
return compile_pattern_or(list);
}
-static struct grep_expr *grep_not_expr(struct grep_expr *expr)
-{
- struct grep_expr *z = xcalloc(1, sizeof(*z));
- z->node = GREP_NODE_NOT;
- z->u.unary = expr;
- return z;
-}
-
static struct grep_expr *grep_true_expr(void)
{
struct grep_expr *z = xcalloc(1, sizeof(*z));
@@ -714,15 +640,6 @@ static struct grep_expr *grep_true_expr(void)
return z;
}
-static struct grep_expr *grep_or_expr(struct grep_expr *left, struct grep_expr *right)
-{
- struct grep_expr *z = xcalloc(1, sizeof(*z));
- z->node = GREP_NODE_OR;
- z->u.binary.left = left;
- z->u.binary.right = right;
- return z;
-}
-
static struct grep_expr *prep_header_patterns(struct grep_opt *opt)
{
struct grep_pat *p;
diff --git a/grep.h b/grep.h
index 6a1f0ab017..c722d25ed9 100644
--- a/grep.h
+++ b/grep.h
@@ -134,9 +134,6 @@ struct grep_opt {
*/
struct repository *repo;
- const char *prefix;
- int prefix_length;
- regex_t regexp;
int linenum;
int columnnum;
int invert;
@@ -146,7 +143,6 @@ struct grep_opt {
int unmatch_name_only;
int count;
int word_regexp;
- int fixed;
int all_match;
int no_body_match;
int body_hit;
@@ -157,7 +153,6 @@ struct grep_opt {
int allow_textconv;
int extended;
int use_reflog_filter;
- int pcre2;
int relative;
int pathname;
int null_following_name;
@@ -167,7 +162,7 @@ struct grep_opt {
int funcname;
int funcbody;
int extended_regexp_option;
- int pattern_type_option;
+ enum grep_pattern_type pattern_type_option;
int ignore_locale;
char colors[NR_GREP_COLORS][COLOR_MAXLEN];
unsigned pre_context;
@@ -182,9 +177,29 @@ struct grep_opt {
void *output_priv;
};
+#define GREP_OPT_INIT { \
+ .relative = 1, \
+ .pathname = 1, \
+ .max_depth = -1, \
+ .pattern_type_option = GREP_PATTERN_TYPE_UNSPECIFIED, \
+ .colors = { \
+ [GREP_COLOR_CONTEXT] = "", \
+ [GREP_COLOR_FILENAME] = GIT_COLOR_MAGENTA, \
+ [GREP_COLOR_FUNCTION] = "", \
+ [GREP_COLOR_LINENO] = GIT_COLOR_GREEN, \
+ [GREP_COLOR_COLUMNNO] = GIT_COLOR_GREEN, \
+ [GREP_COLOR_MATCH_CONTEXT] = GIT_COLOR_BOLD_RED, \
+ [GREP_COLOR_MATCH_SELECTED] = GIT_COLOR_BOLD_RED, \
+ [GREP_COLOR_SELECTED] = "", \
+ [GREP_COLOR_SEP] = GIT_COLOR_CYAN, \
+ }, \
+ .only_matching = 0, \
+ .color = -1, \
+ .output = std_output, \
+}
+
int grep_config(const char *var, const char *value, void *);
-void grep_init(struct grep_opt *, struct repository *repo, const char *prefix);
-void grep_commit_pattern_type(enum grep_pattern_type, struct grep_opt *opt);
+void grep_init(struct grep_opt *, struct repository *repo);
void append_grep_pat(struct grep_opt *opt, const char *pat, size_t patlen, const char *origin, int no, enum grep_pat_token t);
void append_grep_pattern(struct grep_opt *opt, const char *pat, const char *origin, int no, enum grep_pat_token t);
diff --git a/help.c b/help.c
index 71444906dd..41c41c2aa1 100644
--- a/help.c
+++ b/help.c
@@ -12,6 +12,7 @@
#include "refs.h"
#include "parse-options.h"
#include "prompt.h"
+#include "fsmonitor-ipc.h"
struct category_description {
uint32_t category;
@@ -124,7 +125,9 @@ static void print_cmd_by_category(const struct category_description *catdesc,
uint32_t mask = catdesc[i].category;
const char *desc = catdesc[i].desc;
- printf("\n%s\n", _(desc));
+ if (i)
+ putchar('\n');
+ puts(_(desc));
print_command_list(cmds, mask, longest);
}
free(cmds);
@@ -317,7 +320,7 @@ void list_commands(struct cmdnames *main_cmds, struct cmdnames *other_cmds)
}
if (other_cmds->cnt) {
- printf_ln(_("git commands available from elsewhere on your $PATH"));
+ puts(_("git commands available from elsewhere on your $PATH"));
putchar('\n');
pretty_print_cmdnames(other_cmds, colopts);
putchar('\n');
@@ -327,6 +330,7 @@ void list_commands(struct cmdnames *main_cmds, struct cmdnames *other_cmds)
void list_common_cmds_help(void)
{
puts(_("These are common Git commands used in various situations:"));
+ putchar('\n');
print_cmd_by_category(common_categories, NULL);
}
@@ -432,15 +436,10 @@ static int get_alias(const char *var, const char *value, void *data)
return 0;
}
-void list_all_cmds_help(void)
+static void list_all_cmds_help_external_commands(void)
{
struct string_list others = STRING_LIST_INIT_DUP;
- struct string_list alias_list = STRING_LIST_INIT_DUP;
- struct cmdname_help *aliases;
- int i, longest;
-
- printf_ln(_("See 'git help <command>' to read about a specific subcommand"));
- print_cmd_by_category(main_categories, &longest);
+ int i;
list_all_other_cmds(&others);
if (others.nr)
@@ -448,6 +447,13 @@ void list_all_cmds_help(void)
for (i = 0; i < others.nr; i++)
printf(" %s\n", others.items[i].string);
string_list_clear(&others, 0);
+}
+
+static void list_all_cmds_help_aliases(int longest)
+{
+ struct string_list alias_list = STRING_LIST_INIT_DUP;
+ struct cmdname_help *aliases;
+ int i;
git_config(get_alias, &alias_list);
string_list_sort(&alias_list);
@@ -473,6 +479,20 @@ void list_all_cmds_help(void)
string_list_clear(&alias_list, 1);
}
+void list_all_cmds_help(int show_external_commands, int show_aliases)
+{
+ int longest;
+
+ puts(_("See 'git help <command>' to read about a specific subcommand"));
+ putchar('\n');
+ print_cmd_by_category(main_categories, &longest);
+
+ if (show_external_commands)
+ list_all_cmds_help_external_commands();
+ if (show_aliases)
+ list_all_cmds_help_aliases(longest);
+}
+
int is_in_cmdlist(struct cmdnames *c, const char *s)
{
int i;
@@ -695,6 +715,9 @@ void get_version_info(struct strbuf *buf, int show_build_options)
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? */
+
+ if (fsmonitor_ipc__is_supported())
+ strbuf_addstr(buf, "feature: fsmonitor--daemon\n");
}
}
diff --git a/help.h b/help.h
index 9d383f1a0b..971a3ad855 100644
--- a/help.h
+++ b/help.h
@@ -20,7 +20,7 @@ static inline void mput_char(char c, unsigned int num)
}
void list_common_cmds_help(void);
-void list_all_cmds_help(void);
+void list_all_cmds_help(int show_external_commands, int show_aliases);
void list_guides_help(void);
void list_all_main_cmds(struct string_list *list);
diff --git a/hook.c b/hook.c
index 55e1145a4b..1d51be3b77 100644
--- a/hook.c
+++ b/hook.c
@@ -1,6 +1,7 @@
#include "cache.h"
#include "hook.h"
#include "run-command.h"
+#include "config.h"
const char *find_hook(const char *name)
{
@@ -40,3 +41,140 @@ int hook_exists(const char *name)
{
return !!find_hook(name);
}
+
+static int pick_next_hook(struct child_process *cp,
+ struct strbuf *out,
+ void *pp_cb,
+ void **pp_task_cb)
+{
+ struct hook_cb_data *hook_cb = pp_cb;
+ const char *hook_path = hook_cb->hook_path;
+
+ if (!hook_path)
+ return 0;
+
+ cp->no_stdin = 1;
+ strvec_pushv(&cp->env_array, hook_cb->options->env.v);
+ cp->stdout_to_stderr = 1;
+ cp->trace2_hook_name = hook_cb->hook_name;
+ cp->dir = hook_cb->options->dir;
+
+ strvec_push(&cp->args, hook_path);
+ strvec_pushv(&cp->args, hook_cb->options->args.v);
+
+ /* Provide context for errors if necessary */
+ *pp_task_cb = (char *)hook_path;
+
+ /*
+ * This pick_next_hook() will be called again, we're only
+ * running one hook, so indicate that no more work will be
+ * done.
+ */
+ hook_cb->hook_path = NULL;
+
+ return 1;
+}
+
+static int notify_start_failure(struct strbuf *out,
+ void *pp_cb,
+ void *pp_task_cp)
+{
+ struct hook_cb_data *hook_cb = pp_cb;
+ const char *hook_path = pp_task_cp;
+
+ hook_cb->rc |= 1;
+
+ strbuf_addf(out, _("Couldn't start hook '%s'\n"),
+ hook_path);
+
+ return 1;
+}
+
+static int notify_hook_finished(int result,
+ struct strbuf *out,
+ void *pp_cb,
+ void *pp_task_cb)
+{
+ struct hook_cb_data *hook_cb = pp_cb;
+ struct run_hooks_opt *opt = hook_cb->options;
+
+ hook_cb->rc |= result;
+
+ if (opt->invoked_hook)
+ *opt->invoked_hook = 1;
+
+ return 0;
+}
+
+static void run_hooks_opt_clear(struct run_hooks_opt *options)
+{
+ strvec_clear(&options->env);
+ strvec_clear(&options->args);
+}
+
+int run_hooks_opt(const char *hook_name, struct run_hooks_opt *options)
+{
+ struct strbuf abs_path = STRBUF_INIT;
+ struct hook_cb_data cb_data = {
+ .rc = 0,
+ .hook_name = hook_name,
+ .options = options,
+ };
+ const char *const hook_path = find_hook(hook_name);
+ int jobs = 1;
+ int ret = 0;
+
+ if (!options)
+ BUG("a struct run_hooks_opt must be provided to run_hooks");
+
+ if (options->invoked_hook)
+ *options->invoked_hook = 0;
+
+ if (!hook_path && !options->error_if_missing)
+ goto cleanup;
+
+ if (!hook_path) {
+ ret = error("cannot find a hook named %s", hook_name);
+ goto cleanup;
+ }
+
+ cb_data.hook_path = hook_path;
+ if (options->dir) {
+ strbuf_add_absolute_path(&abs_path, hook_path);
+ cb_data.hook_path = abs_path.buf;
+ }
+
+ run_processes_parallel_tr2(jobs,
+ pick_next_hook,
+ notify_start_failure,
+ notify_hook_finished,
+ &cb_data,
+ "hook",
+ hook_name);
+ ret = cb_data.rc;
+cleanup:
+ strbuf_release(&abs_path);
+ run_hooks_opt_clear(options);
+ return ret;
+}
+
+int run_hooks(const char *hook_name)
+{
+ struct run_hooks_opt opt = RUN_HOOKS_OPT_INIT;
+
+ return run_hooks_opt(hook_name, &opt);
+}
+
+int run_hooks_l(const char *hook_name, ...)
+{
+ struct run_hooks_opt opt = RUN_HOOKS_OPT_INIT;
+ va_list ap;
+ const char *arg;
+
+ va_start(ap, hook_name);
+ while ((arg = va_arg(ap, const char *)))
+ strvec_push(&opt.args, arg);
+ va_end(ap);
+
+ return run_hooks_opt(hook_name, &opt);
+}
diff --git a/hook.h b/hook.h
index 6aa36fc7ff..4258b13da0 100644
--- a/hook.h
+++ b/hook.h
@@ -1,5 +1,49 @@
#ifndef HOOK_H
#define HOOK_H
+#include "strvec.h"
+
+struct run_hooks_opt
+{
+ /* Environment vars to be set for each hook */
+ struct strvec env;
+
+ /* Args to be passed to each hook */
+ struct strvec args;
+
+ /* Emit an error if the hook is missing */
+ unsigned int error_if_missing:1;
+
+ /**
+ * An optional initial working directory for the hook,
+ * translates to "struct child_process"'s "dir" member.
+ */
+ const char *dir;
+
+ /**
+ * A pointer which if provided will be set to 1 or 0 depending
+ * on if a hook was started, regardless of whether or not that
+ * was successful. I.e. if the underlying start_command() was
+ * successful this will be set to 1.
+ *
+ * Used for avoiding TOCTOU races in code that would otherwise
+ * call hook_exist() after a "maybe hook run" to see if a hook
+ * was invoked.
+ */
+ int *invoked_hook;
+};
+
+#define RUN_HOOKS_OPT_INIT { \
+ .env = STRVEC_INIT, \
+ .args = STRVEC_INIT, \
+}
+
+struct hook_cb_data {
+ /* rc reflects the cumulative failure state */
+ int rc;
+ const char *hook_name;
+ const char *hook_path;
+ struct run_hooks_opt *options;
+};
/*
* Returns the path to the hook file, or NULL if the hook is missing
@@ -13,4 +57,29 @@ const char *find_hook(const char *name);
*/
int hook_exists(const char *hookname);
+/**
+ * Takes a `hook_name`, resolves it to a path with find_hook(), and
+ * runs the hook for you with the options specified in "struct
+ * run_hooks opt". Will free memory associated with the "struct run_hooks_opt".
+ *
+ * Returns the status code of the run hook, or a negative value on
+ * error().
+ */
+int run_hooks_opt(const char *hook_name, struct run_hooks_opt *options);
+
+/**
+ * A wrapper for run_hooks_opt() which provides a dummy "struct
+ * run_hooks_opt" initialized with "RUN_HOOKS_OPT_INIT".
+ */
+int run_hooks(const char *hook_name);
+
+/**
+ * Like run_hooks(), a wrapper for run_hooks_opt().
+ *
+ * In addition to the wrapping behavior provided by run_hooks(), this
+ * wrapper takes a list of strings terminated by a NULL
+ * argument. These things will be used as positional arguments to the
+ * hook. This function behaves like the old run_hook_le() API.
+ */
+int run_hooks_l(const char *hook_name, ...);
#endif
diff --git a/http-backend.c b/http-backend.c
index 807fb8839e..81a7229ece 100644
--- a/http-backend.c
+++ b/http-backend.c
@@ -13,6 +13,7 @@
#include "packfile.h"
#include "object-store.h"
#include "protocol.h"
+#include "date.h"
static const char content_type[] = "Content-Type";
static const char content_length[] = "Content-Length";
diff --git a/http-push.c b/http-push.c
index 28ffed7bc4..7dafb1331a 100644
--- a/http-push.c
+++ b/http-push.c
@@ -363,7 +363,7 @@ static void start_put(struct transfer_request *request)
git_zstream stream;
unpacked = read_object_file(&request->obj->oid, &type, &len);
- hdrlen = xsnprintf(hdr, sizeof(hdr), "%s %"PRIuMAX , type_name(type), (uintmax_t)len) + 1;
+ hdrlen = format_object_header(hdr, sizeof(hdr), type, len);
/* Set it up */
git_deflate_init(&stream, zlib_compression_level);
diff --git a/ident.c b/ident.c
index 6aba4b5cb6..89ca5b4700 100644
--- a/ident.c
+++ b/ident.c
@@ -7,6 +7,7 @@
*/
#include "cache.h"
#include "config.h"
+#include "date.h"
static struct strbuf git_default_name = STRBUF_INIT;
static struct strbuf git_default_email = STRBUF_INIT;
diff --git a/imap-send.c b/imap-send.c
index e6090a0346..a50af56b82 100644
--- a/imap-send.c
+++ b/imap-send.c
@@ -27,7 +27,7 @@
#include "exec-cmd.h"
#include "run-command.h"
#include "parse-options.h"
-#ifdef NO_OPENSSL
+#if defined(NO_OPENSSL) && !defined(HAVE_OPENSSL_CSPRNG)
typedef void *SSL;
#endif
#ifdef USE_CURL_FOR_IMAP_SEND
@@ -98,17 +98,7 @@ struct imap_server_conf {
};
static struct imap_server_conf server = {
- NULL, /* name */
- NULL, /* tunnel */
- NULL, /* host */
- 0, /* port */
- NULL, /* folder */
- NULL, /* user */
- NULL, /* pass */
- 0, /* use_ssl */
- 1, /* ssl_verify */
- 0, /* use_html */
- NULL, /* auth_method */
+ .ssl_verify = 1,
};
struct imap_socket {
diff --git a/list-objects-filter-options.c b/list-objects-filter-options.c
index fd8d59f653..4b25287886 100644
--- a/list-objects-filter-options.c
+++ b/list-objects-filter-options.c
@@ -40,22 +40,7 @@ const char *list_object_filter_config_name(enum list_objects_filter_choice c)
BUG("list_object_filter_config_name: invalid argument '%d'", c);
}
-/*
- * Parse value of the argument to the "filter" keyword.
- * On the command line this looks like:
- * --filter=<arg>
- * and in the pack protocol as:
- * "filter" SP <arg>
- *
- * The filter keyword will be used by many commands.
- * See Documentation/rev-list-options.txt for allowed values for <arg>.
- *
- * Capture the given arg as the "filter_spec". This can be forwarded to
- * subordinate commands when necessary (although it's better to pass it through
- * expand_list_objects_filter_spec() first). We also "intern" the arg for the
- * convenience of the current command.
- */
-static int gently_parse_list_objects_filter(
+int gently_parse_list_objects_filter(
struct list_objects_filter_options *filter_options,
const char *arg,
struct strbuf *errbuf)
@@ -300,6 +285,10 @@ int opt_parse_list_objects_filter(const struct option *opt,
const char *arg, int unset)
{
struct list_objects_filter_options *filter_options = opt->value;
+ opt_lof_init init = (opt_lof_init)opt->defval;
+
+ if (init)
+ filter_options = init(opt->value);
if (unset || !arg)
list_objects_filter_set_no_filter(filter_options);
@@ -415,3 +404,22 @@ void partial_clone_get_default_filter_spec(
&errbuf);
strbuf_release(&errbuf);
}
+
+void list_objects_filter_copy(
+ struct list_objects_filter_options *dest,
+ const struct list_objects_filter_options *src)
+{
+ int i;
+ struct string_list_item *item;
+
+ /* Copy everything. We will overwrite the pointers shortly. */
+ memcpy(dest, src, sizeof(struct list_objects_filter_options));
+
+ string_list_init_dup(&dest->filter_spec);
+ for_each_string_list_item(item, &src->filter_spec)
+ string_list_append(&dest->filter_spec, item->string);
+
+ ALLOC_ARRAY(dest->sub, dest->sub_alloc);
+ for (i = 0; i < src->sub_nr; i++)
+ list_objects_filter_copy(&dest->sub[i], &src->sub[i]);
+}
diff --git a/list-objects-filter-options.h b/list-objects-filter-options.h
index da5b6737e2..ffc02d77e7 100644
--- a/list-objects-filter-options.h
+++ b/list-objects-filter-options.h
@@ -69,8 +69,25 @@ struct list_objects_filter_options {
*/
};
-/* Normalized command line arguments */
-#define CL_ARG__FILTER "filter"
+/*
+ * Parse value of the argument to the "filter" keyword.
+ * On the command line this looks like:
+ * --filter=<arg>
+ * and in the pack protocol as:
+ * "filter" SP <arg>
+ *
+ * The filter keyword will be used by many commands.
+ * See Documentation/rev-list-options.txt for allowed values for <arg>.
+ *
+ * Capture the given arg as the "filter_spec". This can be forwarded to
+ * subordinate commands when necessary (although it's better to pass it through
+ * expand_list_objects_filter_spec() first). We also "intern" the arg for the
+ * convenience of the current command.
+ */
+int gently_parse_list_objects_filter(
+ struct list_objects_filter_options *filter_options,
+ const char *arg,
+ struct strbuf *errbuf);
void list_objects_filter_die_if_populated(
struct list_objects_filter_options *filter_options);
@@ -87,13 +104,31 @@ void parse_list_objects_filter(
struct list_objects_filter_options *filter_options,
const char *arg);
+/**
+ * The opt->value to opt_parse_list_objects_filter() is either a
+ * "struct list_objects_filter_option *" when using
+ * OPT_PARSE_LIST_OBJECTS_FILTER().
+ *
+ * Or, if using no "struct option" field is used by the callback,
+ * except the "defval" which is expected to be an "opt_lof_init"
+ * function, which is called with the "opt->value" and must return a
+ * pointer to the ""struct list_objects_filter_option *" to be used.
+ *
+ * The OPT_PARSE_LIST_OBJECTS_FILTER_INIT() can be used e.g. the
+ * "struct list_objects_filter_option" is embedded in a "struct
+ * rev_info", which the "defval" could be tasked with lazily
+ * initializing. See cmd_pack_objects() for an example.
+ */
int opt_parse_list_objects_filter(const struct option *opt,
const char *arg, int unset);
+typedef struct list_objects_filter_options *(*opt_lof_init)(void *);
+#define OPT_PARSE_LIST_OBJECTS_FILTER_INIT(fo, init) \
+ { OPTION_CALLBACK, 0, "filter", (fo), N_("args"), \
+ N_("object filtering"), 0, opt_parse_list_objects_filter, \
+ (intptr_t)(init) }
#define OPT_PARSE_LIST_OBJECTS_FILTER(fo) \
- OPT_CALLBACK(0, CL_ARG__FILTER, fo, N_("args"), \
- N_("object filtering"), \
- opt_parse_list_objects_filter)
+ OPT_PARSE_LIST_OBJECTS_FILTER_INIT((fo), NULL)
/*
* Translates abbreviated numbers in the filter's filter_spec into their
@@ -132,4 +167,8 @@ void partial_clone_get_default_filter_spec(
struct list_objects_filter_options *filter_options,
const char *remote);
+void list_objects_filter_copy(
+ struct list_objects_filter_options *dest,
+ const struct list_objects_filter_options *src);
+
#endif /* LIST_OBJECTS_FILTER_OPTIONS_H */
diff --git a/list-objects.c b/list-objects.c
index 2f623f8211..250d9de41c 100644
--- a/list-objects.c
+++ b/list-objects.c
@@ -21,6 +21,23 @@ struct traversal_context {
struct filter *filter;
};
+static void show_commit(struct traversal_context *ctx,
+ struct commit *commit)
+{
+ if (!ctx->show_commit)
+ return;
+ ctx->show_commit(commit, ctx->show_data);
+}
+
+static void show_object(struct traversal_context *ctx,
+ struct object *object,
+ const char *name)
+{
+ if (!ctx->show_object)
+ return;
+ ctx->show_object(object, name, ctx->show_data);
+}
+
static void process_blob(struct traversal_context *ctx,
struct blob *blob,
struct strbuf *path,
@@ -60,7 +77,7 @@ static void process_blob(struct traversal_context *ctx,
if (r & LOFR_MARK_SEEN)
obj->flags |= SEEN;
if (r & LOFR_DO_SHOW)
- ctx->show_object(obj, path->buf, ctx->show_data);
+ show_object(ctx, obj, path->buf);
strbuf_setlen(path, pathlen);
}
@@ -194,7 +211,7 @@ static void process_tree(struct traversal_context *ctx,
if (r & LOFR_MARK_SEEN)
obj->flags |= SEEN;
if (r & LOFR_DO_SHOW)
- ctx->show_object(obj, base->buf, ctx->show_data);
+ show_object(ctx, obj, base->buf);
if (base->len)
strbuf_addch(base, '/');
@@ -210,7 +227,7 @@ static void process_tree(struct traversal_context *ctx,
if (r & LOFR_MARK_SEEN)
obj->flags |= SEEN;
if (r & LOFR_DO_SHOW)
- ctx->show_object(obj, base->buf, ctx->show_data);
+ show_object(ctx, obj, base->buf);
strbuf_setlen(base, baselen);
free_tree_buffer(tree);
@@ -228,7 +245,7 @@ static void process_tag(struct traversal_context *ctx,
if (r & LOFR_MARK_SEEN)
tag->object.flags |= SEEN;
if (r & LOFR_DO_SHOW)
- ctx->show_object(&tag->object, name, ctx->show_data);
+ show_object(ctx, &tag->object, name);
}
static void mark_edge_parents_uninteresting(struct commit *commit,
@@ -402,7 +419,7 @@ static void do_traverse(struct traversal_context *ctx)
if (r & LOFR_MARK_SEEN)
commit->object.flags |= SEEN;
if (r & LOFR_DO_SHOW)
- ctx->show_commit(commit, ctx->show_data);
+ show_commit(ctx, commit);
if (ctx->revs->tree_blobs_in_commit_order)
/*
@@ -416,35 +433,25 @@ static void do_traverse(struct traversal_context *ctx)
strbuf_release(&csp);
}
-void traverse_commit_list(struct rev_info *revs,
- show_commit_fn show_commit,
- show_object_fn show_object,
- void *show_data)
-{
- struct traversal_context ctx;
- ctx.revs = revs;
- ctx.show_commit = show_commit;
- ctx.show_object = show_object;
- ctx.show_data = show_data;
- ctx.filter = NULL;
- do_traverse(&ctx);
-}
-
void traverse_commit_list_filtered(
- struct list_objects_filter_options *filter_options,
struct rev_info *revs,
show_commit_fn show_commit,
show_object_fn show_object,
void *show_data,
struct oidset *omitted)
{
- struct traversal_context ctx;
+ struct traversal_context ctx = {
+ .revs = revs,
+ .show_object = show_object,
+ .show_commit = show_commit,
+ .show_data = show_data,
+ };
+
+ if (revs->filter.choice)
+ ctx.filter = list_objects_filter__init(omitted, &revs->filter);
- ctx.revs = revs;
- ctx.show_object = show_object;
- ctx.show_commit = show_commit;
- ctx.show_data = show_data;
- ctx.filter = list_objects_filter__init(omitted, filter_options);
do_traverse(&ctx);
- list_objects_filter__free(ctx.filter);
+
+ if (ctx.filter)
+ list_objects_filter__free(ctx.filter);
}
diff --git a/list-objects.h b/list-objects.h
index a952680e46..9eaf4de844 100644
--- a/list-objects.h
+++ b/list-objects.h
@@ -7,7 +7,6 @@ struct rev_info;
typedef void (*show_commit_fn)(struct commit *, void *);
typedef void (*show_object_fn)(struct object *, const char *, void *);
-void traverse_commit_list(struct rev_info *, show_commit_fn, show_object_fn, void *);
typedef void (*show_edge_fn)(struct commit *);
void mark_edges_uninteresting(struct rev_info *revs,
@@ -18,11 +17,20 @@ struct oidset;
struct list_objects_filter_options;
void traverse_commit_list_filtered(
- struct list_objects_filter_options *filter_options,
struct rev_info *revs,
show_commit_fn show_commit,
show_object_fn show_object,
void *show_data,
struct oidset *omitted);
+static inline void traverse_commit_list(
+ struct rev_info *revs,
+ show_commit_fn show_commit,
+ show_object_fn show_object,
+ void *show_data)
+{
+ traverse_commit_list_filtered(revs, show_commit,
+ show_object, show_data, NULL);
+}
+
#endif /* LIST_OBJECTS_H */
diff --git a/ll-merge.c b/ll-merge.c
index d964b534c9..14b8362019 100644
--- a/ll-merge.c
+++ b/ll-merge.c
@@ -14,7 +14,7 @@
struct ll_merge_driver;
-typedef int (*ll_merge_fn)(const struct ll_merge_driver *,
+typedef enum ll_merge_result (*ll_merge_fn)(const struct ll_merge_driver *,
mmbuffer_t *result,
const char *path,
mmfile_t *orig, const char *orig_name,
@@ -49,7 +49,7 @@ void reset_merge_attributes(void)
/*
* Built-in low-levels
*/
-static int ll_binary_merge(const struct ll_merge_driver *drv_unused,
+static enum ll_merge_result ll_binary_merge(const struct ll_merge_driver *drv_unused,
mmbuffer_t *result,
const char *path,
mmfile_t *orig, const char *orig_name,
@@ -58,6 +58,7 @@ static int ll_binary_merge(const struct ll_merge_driver *drv_unused,
const struct ll_merge_options *opts,
int marker_size)
{
+ enum ll_merge_result ret;
mmfile_t *stolen;
assert(opts);
@@ -68,16 +69,19 @@ static int ll_binary_merge(const struct ll_merge_driver *drv_unused,
*/
if (opts->virtual_ancestor) {
stolen = orig;
+ ret = LL_MERGE_OK;
} else {
switch (opts->variant) {
default:
- warning("Cannot merge binary files: %s (%s vs. %s)",
- path, name1, name2);
- /* fallthru */
+ ret = LL_MERGE_BINARY_CONFLICT;
+ stolen = src1;
+ break;
case XDL_MERGE_FAVOR_OURS:
+ ret = LL_MERGE_OK;
stolen = src1;
break;
case XDL_MERGE_FAVOR_THEIRS:
+ ret = LL_MERGE_OK;
stolen = src2;
break;
}
@@ -87,16 +91,10 @@ static int ll_binary_merge(const struct ll_merge_driver *drv_unused,
result->size = stolen->size;
stolen->ptr = NULL;
- /*
- * With -Xtheirs or -Xours, we have cleanly merged;
- * otherwise we got a conflict.
- */
- return opts->variant == XDL_MERGE_FAVOR_OURS ||
- opts->variant == XDL_MERGE_FAVOR_THEIRS ?
- 0 : 1;
+ return ret;
}
-static int ll_xdl_merge(const struct ll_merge_driver *drv_unused,
+static enum ll_merge_result ll_xdl_merge(const struct ll_merge_driver *drv_unused,
mmbuffer_t *result,
const char *path,
mmfile_t *orig, const char *orig_name,
@@ -105,7 +103,9 @@ static int ll_xdl_merge(const struct ll_merge_driver *drv_unused,
const struct ll_merge_options *opts,
int marker_size)
{
+ enum ll_merge_result ret;
xmparam_t xmp;
+ int status;
assert(opts);
if (orig->size > MAX_XDIFF_SIZE ||
@@ -133,10 +133,12 @@ static int ll_xdl_merge(const struct ll_merge_driver *drv_unused,
xmp.ancestor = orig_name;
xmp.file1 = name1;
xmp.file2 = name2;
- return xdl_merge(orig, src1, src2, &xmp, result);
+ status = xdl_merge(orig, src1, src2, &xmp, result);
+ ret = (status > 0) ? LL_MERGE_CONFLICT : status;
+ return ret;
}
-static int ll_union_merge(const struct ll_merge_driver *drv_unused,
+static enum ll_merge_result ll_union_merge(const struct ll_merge_driver *drv_unused,
mmbuffer_t *result,
const char *path,
mmfile_t *orig, const char *orig_name,
@@ -178,7 +180,7 @@ static void create_temp(mmfile_t *src, char *path, size_t len)
/*
* User defined low-level merge driver support.
*/
-static int ll_ext_merge(const struct ll_merge_driver *fn,
+static enum ll_merge_result ll_ext_merge(const struct ll_merge_driver *fn,
mmbuffer_t *result,
const char *path,
mmfile_t *orig, const char *orig_name,
@@ -194,6 +196,7 @@ static int ll_ext_merge(const struct ll_merge_driver *fn,
const char *args[] = { NULL, NULL };
int status, fd, i;
struct stat st;
+ enum ll_merge_result ret;
assert(opts);
sq_quote_buf(&path_sq, path);
@@ -236,7 +239,8 @@ static int ll_ext_merge(const struct ll_merge_driver *fn,
unlink_or_warn(temp[i]);
strbuf_release(&cmd);
strbuf_release(&path_sq);
- return status;
+ ret = (status > 0) ? LL_MERGE_CONFLICT : status;
+ return ret;
}
/*
@@ -362,7 +366,7 @@ static void normalize_file(mmfile_t *mm, const char *path, struct index_state *i
}
}
-int ll_merge(mmbuffer_t *result_buf,
+enum ll_merge_result ll_merge(mmbuffer_t *result_buf,
const char *path,
mmfile_t *ancestor, const char *ancestor_label,
mmfile_t *ours, const char *our_label,
diff --git a/ll-merge.h b/ll-merge.h
index aceb1b2413..e4a20e81a3 100644
--- a/ll-merge.h
+++ b/ll-merge.h
@@ -82,13 +82,20 @@ struct ll_merge_options {
long xdl_opts;
};
+enum ll_merge_result {
+ LL_MERGE_ERROR = -1,
+ LL_MERGE_OK = 0,
+ LL_MERGE_CONFLICT,
+ LL_MERGE_BINARY_CONFLICT,
+};
+
/**
* Perform a three-way single-file merge in core. This is a thin wrapper
* around `xdl_merge` that takes the path and any merge backend specified in
* `.gitattributes` or `.git/info/attributes` into account.
* Returns 0 for a clean merge.
*/
-int ll_merge(mmbuffer_t *result_buf,
+enum ll_merge_result ll_merge(mmbuffer_t *result_buf,
const char *path,
mmfile_t *ancestor, const char *ancestor_label,
mmfile_t *ours, const char *our_label,
diff --git a/log-tree.c b/log-tree.c
index 1ea8af0a83..d0ac0a6327 100644
--- a/log-tree.c
+++ b/log-tree.c
@@ -1,12 +1,15 @@
#include "cache.h"
+#include "commit-reach.h"
#include "config.h"
#include "diff.h"
#include "object-store.h"
#include "repository.h"
+#include "tmp-objdir.h"
#include "commit.h"
#include "tag.h"
#include "graph.h"
#include "log-tree.h"
+#include "merge-ort.h"
#include "reflog-walk.h"
#include "refs.h"
#include "string-list.h"
@@ -16,6 +19,7 @@
#include "line-log.h"
#include "help.h"
#include "range-diff.h"
+#include "strmap.h"
static struct decoration name_decoration = { "object names" };
static int decoration_loaded;
@@ -561,7 +565,7 @@ static int show_one_mergetag(struct commit *commit,
struct strbuf signature = STRBUF_INIT;
hash_object_file(the_hash_algo, extra->value, extra->len,
- type_name(OBJ_TAG), &oid);
+ OBJ_TAG, &oid);
tag = lookup_tag(the_repository, &oid);
if (!tag)
return -1; /* error message already given */
@@ -849,7 +853,7 @@ int log_tree_diff_flush(struct rev_info *opt)
opt->shown_dashes = 0;
diffcore_std(&opt->diffopt);
- if (diff_queue_is_empty()) {
+ if (diff_queue_is_empty(&opt->diffopt)) {
int saved_fmt = opt->diffopt.output_format;
opt->diffopt.output_format = DIFF_FORMAT_NO_OUTPUT;
diff_flush(&opt->diffopt);
@@ -904,6 +908,106 @@ static int do_diff_combined(struct rev_info *opt, struct commit *commit)
return !opt->loginfo;
}
+static void setup_additional_headers(struct diff_options *o,
+ struct strmap *all_headers)
+{
+ struct hashmap_iter iter;
+ struct strmap_entry *entry;
+
+ /*
+ * Make o->additional_path_headers contain the subset of all_headers
+ * that match o->pathspec. If there aren't any that match o->pathspec,
+ * then make o->additional_path_headers be NULL.
+ */
+
+ if (!o->pathspec.nr) {
+ o->additional_path_headers = all_headers;
+ return;
+ }
+
+ o->additional_path_headers = xmalloc(sizeof(struct strmap));
+ strmap_init_with_options(o->additional_path_headers, NULL, 0);
+ strmap_for_each_entry(all_headers, &iter, entry) {
+ if (match_pathspec(the_repository->index, &o->pathspec,
+ entry->key, strlen(entry->key),
+ 0 /* prefix */, NULL /* seen */,
+ 0 /* is_dir */))
+ strmap_put(o->additional_path_headers,
+ entry->key, entry->value);
+ }
+ if (!strmap_get_size(o->additional_path_headers)) {
+ strmap_clear(o->additional_path_headers, 0);
+ FREE_AND_NULL(o->additional_path_headers);
+ }
+}
+
+static void cleanup_additional_headers(struct diff_options *o)
+{
+ if (!o->pathspec.nr) {
+ o->additional_path_headers = NULL;
+ return;
+ }
+ if (!o->additional_path_headers)
+ return;
+
+ strmap_clear(o->additional_path_headers, 0);
+ FREE_AND_NULL(o->additional_path_headers);
+}
+
+static int do_remerge_diff(struct rev_info *opt,
+ struct commit_list *parents,
+ struct object_id *oid,
+ struct commit *commit)
+{
+ struct merge_options o;
+ struct commit_list *bases;
+ struct merge_result res = {0};
+ struct pretty_print_context ctx = {0};
+ struct commit *parent1 = parents->item;
+ struct commit *parent2 = parents->next->item;
+ struct strbuf parent1_desc = STRBUF_INIT;
+ struct strbuf parent2_desc = STRBUF_INIT;
+
+ /* Setup merge options */
+ init_merge_options(&o, the_repository);
+ o.show_rename_progress = 0;
+ o.record_conflict_msgs_as_headers = 1;
+ o.msg_header_prefix = "remerge";
+
+ ctx.abbrev = DEFAULT_ABBREV;
+ format_commit_message(parent1, "%h (%s)", &parent1_desc, &ctx);
+ format_commit_message(parent2, "%h (%s)", &parent2_desc, &ctx);
+ o.branch1 = parent1_desc.buf;
+ o.branch2 = parent2_desc.buf;
+
+ /* Parse the relevant commits and get the merge bases */
+ parse_commit_or_die(parent1);
+ parse_commit_or_die(parent2);
+ bases = get_merge_bases(parent1, parent2);
+
+ /* Re-merge the parents */
+ merge_incore_recursive(&o, bases, parent1, parent2, &res);
+
+ /* Show the diff */
+ setup_additional_headers(&opt->diffopt, res.path_messages);
+ diff_tree_oid(&res.tree->object.oid, oid, "", &opt->diffopt);
+ log_tree_diff_flush(opt);
+
+ /* Cleanup */
+ cleanup_additional_headers(&opt->diffopt);
+ strbuf_release(&parent1_desc);
+ strbuf_release(&parent2_desc);
+ merge_finalize(&o, &res);
+
+ /* Clean up the contents of the temporary object directory */
+ if (opt->remerge_objdir)
+ tmp_objdir_discard_objects(opt->remerge_objdir);
+ else
+ BUG("did a remerge diff without remerge_objdir?!?");
+
+ return !opt->loginfo;
+}
+
/*
* Show the diff of a commit.
*
@@ -938,6 +1042,18 @@ static int log_tree_diff(struct rev_info *opt, struct commit *commit, struct log
}
if (is_merge) {
+ int octopus = (parents->next->next != NULL);
+
+ if (opt->remerge_diff) {
+ if (octopus) {
+ show_log(opt);
+ fprintf(opt->diffopt.file,
+ "diff: warning: Skipping remerge-diff "
+ "for octopus merges.\n");
+ return 1;
+ }
+ return do_remerge_diff(opt, parents, oid, commit);
+ }
if (opt->combine_merges)
return do_diff_combined(opt, commit);
if (opt->separate_merges) {
@@ -982,6 +1098,7 @@ int log_tree_commit(struct rev_info *opt, struct commit *commit)
opt->loginfo = &log;
opt->diffopt.no_free = 1;
+ /* NEEDSWORK: no restoring of no_free? Why? */
if (opt->line_level_traverse)
return line_log_print(opt, commit);
diff --git a/ls-refs.c b/ls-refs.c
index 54078323dc..98e69373c8 100644
--- a/ls-refs.c
+++ b/ls-refs.c
@@ -34,7 +34,8 @@ static void ensure_config_read(void)
} else if (!strcmp(str, "ignore")) {
/* do nothing */
} else {
- die(_("invalid value '%s' for lsrefs.unborn"), str);
+ die(_("invalid value for '%s': '%s'"),
+ "lsrefs.unborn", str);
}
}
config_read = 1;
diff --git a/mailmap.c b/mailmap.c
index 10173f2d95..da2589b082 100644
--- a/mailmap.c
+++ b/mailmap.c
@@ -43,8 +43,8 @@ static void free_mailmap_info(void *p, const char *s)
static void free_mailmap_entry(void *p, const char *s)
{
struct mailmap_entry *me = (struct mailmap_entry *)p;
- debug_mm("mailmap: removing entries for <%s>, with %d sub-entries\n",
- s, me->namemap.nr);
+ debug_mm("mailmap: removing entries for <%s>, with %"PRIuMAX" sub-entries\n",
+ s, (uintmax_t)me->namemap.nr);
debug_mm("mailmap: - simple: '%s' <%s>\n",
debug_str(me->name), debug_str(me->email));
@@ -250,7 +250,8 @@ int read_mailmap(struct string_list *map)
void clear_mailmap(struct string_list *map)
{
- debug_mm("mailmap: clearing %d entries...\n", map->nr);
+ debug_mm("mailmap: clearing %"PRIuMAX" entries...\n",
+ (uintmax_t)map->nr);
map->strdup_strings = 1;
string_list_clear_func(map, free_mailmap_entry);
debug_mm("mailmap: cleared\n");
diff --git a/match-trees.c b/match-trees.c
index df413989fa..49398e599f 100644
--- a/match-trees.c
+++ b/match-trees.c
@@ -235,7 +235,7 @@ static int splice_tree(const struct object_id *oid1, const char *prefix,
rewrite_with = oid2;
}
hashcpy(rewrite_here, rewrite_with->hash);
- status = write_object_file(buf, sz, tree_type, result);
+ status = write_object_file(buf, sz, OBJ_TREE, result);
free(buf);
return status;
}
diff --git a/mem-pool.c b/mem-pool.c
index ccdcad2e3d..599d8e895f 100644
--- a/mem-pool.c
+++ b/mem-pool.c
@@ -8,6 +8,26 @@
#define BLOCK_GROWTH_SIZE (1024 * 1024 - sizeof(struct mp_block))
/*
+ * The inner union is an approximation for C11's max_align_t, and the
+ * struct + offsetof computes _Alignof. This can all just be replaced
+ * with _Alignof(max_align_t) if/when C11 is part of the baseline.
+ * Note that _Alignof(X) need not be the same as sizeof(X); it's only
+ * required to be a (possibly trivial) factor. They are the same for
+ * most architectures, but m68k for example has only 2-byte alignment
+ * for its 4-byte and 8-byte types, so using sizeof would waste space.
+ *
+ * Add more types to the union if the current set is insufficient.
+ */
+struct git_max_alignment {
+ char unalign;
+ union {
+ uintmax_t max_align_uintmax;
+ void *max_align_pointer;
+ } aligned;
+};
+#define GIT_MAX_ALIGNMENT offsetof(struct git_max_alignment, aligned)
+
+/*
* Allocate a new mp_block and insert it after the block specified in
* `insert_after`. If `insert_after` is NULL, then insert block at the
* head of the linked list.
@@ -69,9 +89,9 @@ void *mem_pool_alloc(struct mem_pool *pool, size_t len)
struct mp_block *p = NULL;
void *r;
- /* round up to a 'uintmax_t' alignment */
- if (len & (sizeof(uintmax_t) - 1))
- len += sizeof(uintmax_t) - (len & (sizeof(uintmax_t) - 1));
+ /* round up to a 'GIT_MAX_ALIGNMENT' alignment */
+ if (len & (GIT_MAX_ALIGNMENT - 1))
+ len += GIT_MAX_ALIGNMENT - (len & (GIT_MAX_ALIGNMENT - 1));
if (pool->mp_block &&
pool->mp_block->end - pool->mp_block->next_free >= len)
diff --git a/merge-blobs.c b/merge-blobs.c
index ee0a0e90c9..8138090f81 100644
--- a/merge-blobs.c
+++ b/merge-blobs.c
@@ -36,7 +36,7 @@ static void *three_way_filemerge(struct index_state *istate,
mmfile_t *their,
unsigned long *size)
{
- int merge_status;
+ enum ll_merge_result merge_status;
mmbuffer_t res;
/*
@@ -50,6 +50,9 @@ static void *three_way_filemerge(struct index_state *istate,
istate, NULL);
if (merge_status < 0)
return NULL;
+ if (merge_status == LL_MERGE_BINARY_CONFLICT)
+ warning("Cannot merge binary files: %s (%s vs. %s)",
+ path, ".our", ".their");
*size = res.size;
return res.ptr;
diff --git a/merge-ort.c b/merge-ort.c
index 5f6f6776b6..0d3f42592f 100644
--- a/merge-ort.c
+++ b/merge-ort.c
@@ -634,17 +634,57 @@ static void path_msg(struct merge_options *opt,
const char *fmt, ...)
{
va_list ap;
- struct strbuf *sb = strmap_get(&opt->priv->output, path);
+ struct strbuf *sb, *dest;
+ struct strbuf tmp = STRBUF_INIT;
+
+ if (opt->record_conflict_msgs_as_headers && omittable_hint)
+ return; /* Do not record mere hints in headers */
+ if (opt->priv->call_depth && opt->verbosity < 5)
+ return; /* Ignore messages from inner merges */
+
+ sb = strmap_get(&opt->priv->output, path);
if (!sb) {
sb = xmalloc(sizeof(*sb));
strbuf_init(sb, 0);
strmap_put(&opt->priv->output, path, sb);
}
+ dest = (opt->record_conflict_msgs_as_headers ? &tmp : sb);
+
va_start(ap, fmt);
- strbuf_vaddf(sb, fmt, ap);
+ if (opt->priv->call_depth) {
+ strbuf_addchars(dest, ' ', 2);
+ strbuf_addstr(dest, "From inner merge:");
+ strbuf_addchars(dest, ' ', opt->priv->call_depth * 2);
+ }
+ strbuf_vaddf(dest, fmt, ap);
va_end(ap);
+ if (opt->record_conflict_msgs_as_headers) {
+ int i_sb = 0, i_tmp = 0;
+
+ /* Start with the specified prefix */
+ if (opt->msg_header_prefix)
+ strbuf_addf(sb, "%s ", opt->msg_header_prefix);
+
+ /* Copy tmp to sb, adding spaces after newlines */
+ strbuf_grow(sb, sb->len + 2*tmp.len); /* more than sufficient */
+ for (; i_tmp < tmp.len; i_tmp++, i_sb++) {
+ /* Copy next character from tmp to sb */
+ sb->buf[sb->len + i_sb] = tmp.buf[i_tmp];
+
+ /* If we copied a newline, add a space */
+ if (tmp.buf[i_tmp] == '\n')
+ sb->buf[++i_sb] = ' ';
+ }
+ /* Update length and ensure it's NUL-terminated */
+ sb->len += i_sb;
+ sb->buf[sb->len] = '\0';
+
+ strbuf_release(&tmp);
+ }
+
+ /* Add final newline character to sb */
strbuf_addch(sb, '\n');
}
@@ -688,13 +728,15 @@ static void add_flattened_path(struct strbuf *out, const char *s)
out->buf[i] = '_';
}
-static char *unique_path(struct strmap *existing_paths,
+static char *unique_path(struct merge_options *opt,
const char *path,
const char *branch)
{
+ char *ret = NULL;
struct strbuf newpath = STRBUF_INIT;
int suffix = 0;
size_t base_len;
+ struct strmap *existing_paths = &opt->priv->paths;
strbuf_addf(&newpath, "%s~", path);
add_flattened_path(&newpath, branch);
@@ -705,7 +747,11 @@ static char *unique_path(struct strmap *existing_paths,
strbuf_addf(&newpath, "_%d", suffix++);
}
- return strbuf_detach(&newpath, NULL);
+ /* Track the new path in our memory pool */
+ ret = mem_pool_alloc(&opt->priv->pool, newpath.len + 1);
+ memcpy(ret, newpath.buf, newpath.len + 1);
+ strbuf_release(&newpath);
+ return ret;
}
/*** Function Grouping: functions related to collect_merge_info() ***/
@@ -1743,7 +1789,7 @@ static int merge_3way(struct merge_options *opt,
mmfile_t orig, src1, src2;
struct ll_merge_options ll_opts = {0};
char *base, *name1, *name2;
- int merge_status;
+ enum ll_merge_result merge_status;
if (!opt->priv->attr_index.initialized)
initialize_attr_index(opt);
@@ -1787,6 +1833,10 @@ static int merge_3way(struct merge_options *opt,
merge_status = ll_merge(result_buf, path, &orig, base,
&src1, name1, &src2, name2,
&opt->priv->attr_index, &ll_opts);
+ if (merge_status == LL_MERGE_BINARY_CONFLICT)
+ path_msg(opt, path, 0,
+ "warning: Cannot merge binary files: %s (%s vs. %s)",
+ path, name1, name2);
free(base);
free(name1);
@@ -1888,7 +1938,7 @@ static int handle_content_merge(struct merge_options *opt,
if (!ret &&
write_object_file(result_buf.ptr, result_buf.size,
- blob_type, &result->oid))
+ OBJ_BLOB, &result->oid))
ret = err(opt, _("Unable to add %s to database"),
path);
@@ -2416,7 +2466,7 @@ static void apply_directory_rename_modifications(struct merge_options *opt,
*/
ci->path_conflict = 1;
if (pair->status == 'A')
- path_msg(opt, new_path, 0,
+ path_msg(opt, new_path, 1,
_("CONFLICT (file location): %s added in %s "
"inside a directory that was renamed in %s, "
"suggesting it should perhaps be moved to "
@@ -2424,7 +2474,7 @@ static void apply_directory_rename_modifications(struct merge_options *opt,
old_path, branch_with_new_path,
branch_with_dir_rename, new_path);
else
- path_msg(opt, new_path, 0,
+ path_msg(opt, new_path, 1,
_("CONFLICT (file location): %s renamed to %s "
"in %s, inside a directory that was renamed "
"in %s, suggesting it should perhaps be "
@@ -3048,18 +3098,21 @@ static int detect_and_process_renames(struct merge_options *opt,
struct tree *side1,
struct tree *side2)
{
- struct diff_queue_struct combined;
+ struct diff_queue_struct combined = { 0 };
struct rename_info *renames = &opt->priv->renames;
- int need_dir_renames, s, clean = 1;
+ int need_dir_renames, s, i, clean = 1;
unsigned detection_run = 0;
- memset(&combined, 0, sizeof(combined));
if (!possible_renames(renames))
goto cleanup;
trace2_region_enter("merge", "regular renames", opt->repo);
detection_run |= detect_regular_renames(opt, MERGE_SIDE1);
detection_run |= detect_regular_renames(opt, MERGE_SIDE2);
+ if (renames->needed_limit) {
+ renames->cached_pairs_valid_side = 0;
+ renames->redo_after_renames = 0;
+ }
if (renames->redo_after_renames && detection_run) {
int i, side;
struct diff_filepair *p;
@@ -3133,13 +3186,9 @@ simple_cleanup:
free(renames->pairs[s].queue);
DIFF_QUEUE_CLEAR(&renames->pairs[s]);
}
- if (combined.nr) {
- int i;
- for (i = 0; i < combined.nr; i++)
- pool_diff_free_filepair(&opt->priv->pool,
- combined.queue[i]);
- free(combined.queue);
- }
+ for (i = 0; i < combined.nr; i++)
+ pool_diff_free_filepair(&opt->priv->pool, combined.queue[i]);
+ free(combined.queue);
return clean;
}
@@ -3343,7 +3392,7 @@ static void write_tree(struct object_id *result_oid,
}
/* Write this object file out, and record in result_oid */
- write_object_file(buf.buf, buf.len, tree_type, result_oid);
+ write_object_file(buf.buf, buf.len, OBJ_TREE, result_oid);
strbuf_release(&buf);
}
@@ -3637,7 +3686,7 @@ static void process_entry(struct merge_options *opt,
*/
df_file_index = (ci->dirmask & (1 << 1)) ? 2 : 1;
branch = (df_file_index == 1) ? opt->branch1 : opt->branch2;
- path = unique_path(&opt->priv->paths, path, branch);
+ path = unique_path(opt, path, branch);
strmap_put(&opt->priv->paths, path, new_ci);
path_msg(opt, path, 0,
@@ -3762,14 +3811,12 @@ static void process_entry(struct merge_options *opt,
/* Insert entries into opt->priv_paths */
assert(rename_a || rename_b);
if (rename_a) {
- a_path = unique_path(&opt->priv->paths,
- path, opt->branch1);
+ a_path = unique_path(opt, path, opt->branch1);
strmap_put(&opt->priv->paths, a_path, ci);
}
if (rename_b)
- b_path = unique_path(&opt->priv->paths,
- path, opt->branch2);
+ b_path = unique_path(opt, path, opt->branch2);
else
b_path = path;
strmap_put(&opt->priv->paths, b_path, new_ci);
@@ -4017,8 +4064,8 @@ static void process_entries(struct merge_options *opt,
trace2_region_enter("merge", "process_entries cleanup", opt->repo);
if (dir_metadata.offsets.nr != 1 ||
(uintptr_t)dir_metadata.offsets.items[0].util != 0) {
- printf("dir_metadata.offsets.nr = %d (should be 1)\n",
- dir_metadata.offsets.nr);
+ printf("dir_metadata.offsets.nr = %"PRIuMAX" (should be 1)\n",
+ (uintmax_t)dir_metadata.offsets.nr);
printf("dir_metadata.offsets.items[0].util = %u (should be 0)\n",
(unsigned)(uintptr_t)dir_metadata.offsets.items[0].util);
fflush(stdout);
@@ -4157,7 +4204,7 @@ static int record_conflicted_index_entries(struct merge_options *opt)
struct stat st;
if (!lstat(path, &st)) {
- char *new_name = unique_path(&opt->priv->paths,
+ char *new_name = unique_path(opt,
path,
"cruft");
@@ -4165,7 +4212,6 @@ static int record_conflicted_index_entries(struct merge_options *opt)
_("Note: %s not up to date and in way of checking out conflicted version; old copy renamed to %s"),
path, new_name);
errs |= rename(path, new_name);
- free(new_name);
}
errs |= checkout_entry(ce, &state, NULL, NULL);
}
@@ -4255,6 +4301,9 @@ void merge_switch_to_result(struct merge_options *opt,
struct string_list olist = STRING_LIST_INIT_NODUP;
int i;
+ if (opt->record_conflict_msgs_as_headers)
+ BUG("Either display conflict messages or record them as headers, not both");
+
trace2_region_enter("merge", "display messages", opt->repo);
/* Hack to pre-allocate olist to the desired size */
@@ -4356,6 +4405,9 @@ static void merge_start(struct merge_options *opt, struct merge_result *result)
assert(opt->recursive_variant >= MERGE_VARIANT_NORMAL &&
opt->recursive_variant <= MERGE_VARIANT_THEIRS);
+ if (opt->msg_header_prefix)
+ assert(opt->record_conflict_msgs_as_headers);
+
/*
* detect_renames, verbosity, buffer_output, and obuf are ignored
* fields that were used by "recursive" rather than "ort" -- but
@@ -4556,6 +4608,7 @@ redo:
trace2_region_leave("merge", "process_entries", opt->repo);
/* Set return values */
+ result->path_messages = &opt->priv->output;
result->tree = parse_tree_indirect(&working_tree_oid);
/* existence of conflicted entries implies unclean */
result->clean &= strmap_empty(&opt->priv->conflicted);
@@ -4575,7 +4628,7 @@ static void merge_ort_internal(struct merge_options *opt,
struct commit *h2,
struct merge_result *result)
{
- struct commit_list *iter;
+ struct commit *next;
struct commit *merged_merge_bases;
const char *ancestor_name;
struct strbuf merge_base_abbrev = STRBUF_INIT;
@@ -4604,7 +4657,8 @@ static void merge_ort_internal(struct merge_options *opt,
ancestor_name = merge_base_abbrev.buf;
}
- for (iter = merge_bases; iter; iter = iter->next) {
+ for (next = pop_commit(&merge_bases); next;
+ next = pop_commit(&merge_bases)) {
const char *saved_b1, *saved_b2;
struct commit *prev = merged_merge_bases;
@@ -4621,7 +4675,7 @@ static void merge_ort_internal(struct merge_options *opt,
saved_b2 = opt->branch2;
opt->branch1 = "Temporary merge branch 1";
opt->branch2 = "Temporary merge branch 2";
- merge_ort_internal(opt, NULL, prev, iter->item, result);
+ merge_ort_internal(opt, NULL, prev, next, result);
if (result->clean < 0)
return;
opt->branch1 = saved_b1;
@@ -4632,8 +4686,7 @@ static void merge_ort_internal(struct merge_options *opt,
result->tree,
"merged tree");
commit_list_insert(prev, &merged_merge_bases->parents);
- commit_list_insert(iter->item,
- &merged_merge_bases->parents->next);
+ commit_list_insert(next, &merged_merge_bases->parents->next);
clear_or_reinit_internal_opts(opt->priv, 1);
}
diff --git a/merge-ort.h b/merge-ort.h
index c011864ffe..fe599b8786 100644
--- a/merge-ort.h
+++ b/merge-ort.h
@@ -5,6 +5,7 @@
struct commit;
struct tree;
+struct strmap;
struct merge_result {
/*
@@ -24,6 +25,15 @@ struct merge_result {
struct tree *tree;
/*
+ * Special messages and conflict notices for various paths
+ *
+ * This is a map of pathnames to strbufs. It contains various
+ * warning/conflict/notice messages (possibly multiple per path)
+ * that callers may want to use.
+ */
+ struct strmap *path_messages;
+
+ /*
* Additional metadata used by merge_switch_to_result() or future calls
* to merge_incore_*(). Includes data needed to update the index (if
* !clean) and to print "CONFLICT" messages. Not for external use.
diff --git a/merge-recursive.c b/merge-recursive.c
index 543a7caa15..fd1bbde061 100644
--- a/merge-recursive.c
+++ b/merge-recursive.c
@@ -1044,7 +1044,7 @@ static int merge_3way(struct merge_options *opt,
mmfile_t orig, src1, src2;
struct ll_merge_options ll_opts = {0};
char *base, *name1, *name2;
- int merge_status;
+ enum ll_merge_result merge_status;
ll_opts.renormalize = opt->renormalize;
ll_opts.extra_marker_size = extra_marker_size;
@@ -1090,6 +1090,9 @@ static int merge_3way(struct merge_options *opt,
merge_status = ll_merge(result_buf, a->path, &orig, base,
&src1, name1, &src2, name2,
opt->repo->index, &ll_opts);
+ if (merge_status == LL_MERGE_BINARY_CONFLICT)
+ warning("Cannot merge binary files: %s (%s vs. %s)",
+ a->path, name1, name2);
free(base);
free(name1);
@@ -1373,7 +1376,7 @@ static int merge_mode_and_contents(struct merge_options *opt,
if (!ret &&
write_object_file(result_buf.ptr, result_buf.size,
- blob_type, &result->blob.oid))
+ OBJ_BLOB, &result->blob.oid))
ret = err(opt, _("Unable to add %s to database"),
a->path);
@@ -3711,6 +3714,10 @@ static int merge_start(struct merge_options *opt, struct tree *head)
assert(opt->priv == NULL);
+ /* Not supported; option specific to merge-ort */
+ assert(!opt->record_conflict_msgs_as_headers);
+ assert(!opt->msg_header_prefix);
+
/* Sanity check on repo state; index must match head */
if (repo_index_has_changes(opt->repo, head, &sb)) {
err(opt, _("Your local changes to the following files would be overwritten by merge:\n %s"),
diff --git a/merge-recursive.h b/merge-recursive.h
index 0795a1d3ec..b88000e3c2 100644
--- a/merge-recursive.h
+++ b/merge-recursive.h
@@ -46,6 +46,8 @@ struct merge_options {
/* miscellaneous control options */
const char *subtree_shift;
unsigned renormalize : 1;
+ unsigned record_conflict_msgs_as_headers : 1;
+ const char *msg_header_prefix;
/* internal fields used by the implementation */
struct merge_options_internal *priv;
diff --git a/mergetools/araxis b/mergetools/araxis
index e2407b65b7..eb32a7da95 100644
--- a/mergetools/araxis
+++ b/mergetools/araxis
@@ -2,6 +2,10 @@ diff_cmd () {
"$merge_tool_path" -wait -2 "$LOCAL" "$REMOTE" >/dev/null 2>&1
}
+diff_cmd_help () {
+ echo "Use Araxis Merge (requires a graphical session)"
+}
+
merge_cmd () {
if $base_present
then
@@ -13,6 +17,10 @@ merge_cmd () {
fi
}
+merge_cmd_help () {
+ echo "Use Araxis Merge (requires a graphical session)"
+}
+
translate_merge_tool_path() {
echo compare
}
diff --git a/mergetools/bc b/mergetools/bc
index 26c19d46a5..2922667ddd 100644
--- a/mergetools/bc
+++ b/mergetools/bc
@@ -2,6 +2,10 @@ diff_cmd () {
"$merge_tool_path" "$LOCAL" "$REMOTE"
}
+diff_cmd_help () {
+ echo "Use Beyond Compare (requires a graphical session)"
+}
+
merge_cmd () {
if $base_present
then
@@ -13,6 +17,10 @@ merge_cmd () {
fi
}
+merge_cmd_help () {
+ echo "Use Beyond Compare (requires a graphical session)"
+}
+
translate_merge_tool_path() {
if type bcomp >/dev/null 2>/dev/null
then
diff --git a/mergetools/codecompare b/mergetools/codecompare
index 9f60e8da65..610963d377 100644
--- a/mergetools/codecompare
+++ b/mergetools/codecompare
@@ -2,6 +2,10 @@ diff_cmd () {
"$merge_tool_path" "$LOCAL" "$REMOTE"
}
+diff_cmd_help () {
+ echo "Use Code Compare (requires a graphical session)"
+}
+
merge_cmd () {
if $base_present
then
@@ -13,6 +17,10 @@ merge_cmd () {
fi
}
+merge_cmd_help () {
+ echo "Use Code Compare (requires a graphical session)"
+}
+
translate_merge_tool_path() {
if merge_mode
then
diff --git a/mergetools/deltawalker b/mergetools/deltawalker
index ee6f374bce..efae4c285c 100644
--- a/mergetools/deltawalker
+++ b/mergetools/deltawalker
@@ -2,6 +2,10 @@ diff_cmd () {
"$merge_tool_path" "$LOCAL" "$REMOTE" >/dev/null 2>&1
}
+diff_cmd_help () {
+ echo "Use DeltaWalker (requires a graphical session)"
+}
+
merge_cmd () {
# Adding $(pwd)/ in front of $MERGED should not be necessary.
# However without it, DeltaWalker (at least v1.9.8 on Windows)
@@ -16,6 +20,10 @@ merge_cmd () {
fi >/dev/null 2>&1
}
+merge_cmd_help () {
+ echo "Use DeltaWalker (requires a graphical session)"
+}
+
translate_merge_tool_path () {
echo DeltaWalker
}
diff --git a/mergetools/diffmerge b/mergetools/diffmerge
index 9b6355b98a..9b5b62d1ca 100644
--- a/mergetools/diffmerge
+++ b/mergetools/diffmerge
@@ -2,6 +2,10 @@ diff_cmd () {
"$merge_tool_path" "$LOCAL" "$REMOTE" >/dev/null 2>&1
}
+diff_cmd_help () {
+ echo "Use DiffMerge (requires a graphical session)"
+}
+
merge_cmd () {
if $base_present
then
@@ -13,6 +17,10 @@ merge_cmd () {
fi
}
+merge_cmd_help () {
+ echo "Use DiffMerge (requires a graphical session)"
+}
+
exit_code_trustable () {
true
}
diff --git a/mergetools/diffuse b/mergetools/diffuse
index 5a3ae8b569..ebfaba5172 100644
--- a/mergetools/diffuse
+++ b/mergetools/diffuse
@@ -2,6 +2,10 @@ diff_cmd () {
"$merge_tool_path" "$LOCAL" "$REMOTE" | cat
}
+diff_cmd_help () {
+ echo "Use Diffuse (requires a graphical session)"
+}
+
merge_cmd () {
if $base_present
then
@@ -13,3 +17,7 @@ merge_cmd () {
"$LOCAL" "$MERGED" "$REMOTE" | cat
fi
}
+
+merge_cmd_help () {
+ echo "Use Diffuse (requires a graphical session)"
+}
diff --git a/mergetools/ecmerge b/mergetools/ecmerge
index 6c5101c4f7..0d4d609874 100644
--- a/mergetools/ecmerge
+++ b/mergetools/ecmerge
@@ -2,6 +2,10 @@ diff_cmd () {
"$merge_tool_path" --default --mode=diff2 "$LOCAL" "$REMOTE"
}
+diff_cmd_help () {
+ echo "Use ECMerge (requires a graphical session)"
+}
+
merge_cmd () {
if $base_present
then
@@ -12,3 +16,7 @@ merge_cmd () {
--default --mode=merge2 --to="$MERGED"
fi
}
+
+merge_cmd_help () {
+ echo "Use ECMerge (requires a graphical session)"
+}
diff --git a/mergetools/emerge b/mergetools/emerge
index d1ce513ff5..fc6892cc95 100644
--- a/mergetools/emerge
+++ b/mergetools/emerge
@@ -2,6 +2,10 @@ diff_cmd () {
"$merge_tool_path" -f emerge-files-command "$LOCAL" "$REMOTE"
}
+diff_cmd_help () {
+ echo "Use Emacs' Emerge"
+}
+
merge_cmd () {
if $base_present
then
@@ -17,6 +21,10 @@ merge_cmd () {
fi
}
+merge_cmd_help () {
+ echo "Use Emacs' Emerge"
+}
+
translate_merge_tool_path() {
echo emacs
}
diff --git a/mergetools/examdiff b/mergetools/examdiff
index e72b06fc4d..6f53ca9161 100644
--- a/mergetools/examdiff
+++ b/mergetools/examdiff
@@ -2,6 +2,10 @@ diff_cmd () {
"$merge_tool_path" "$LOCAL" "$REMOTE" -nh
}
+diff_cmd_help () {
+ echo "Use ExamDiff Pro (requires a graphical session)"
+}
+
merge_cmd () {
if $base_present
then
@@ -11,6 +15,10 @@ merge_cmd () {
fi
}
+merge_cmd_help () {
+ echo "Use ExamDiff Pro (requires a graphical session)"
+}
+
translate_merge_tool_path() {
mergetool_find_win32_cmd "ExamDiff.com" "ExamDiff Pro"
}
diff --git a/mergetools/guiffy b/mergetools/guiffy
index 8b23a13c41..3ed07efd16 100644
--- a/mergetools/guiffy
+++ b/mergetools/guiffy
@@ -2,6 +2,10 @@ diff_cmd () {
"$merge_tool_path" "$LOCAL" "$REMOTE"
}
+diff_cmd_help () {
+ echo "Use Guiffy's Diff Tool (requires a graphical session)"
+}
+
merge_cmd () {
if $base_present
then
@@ -13,6 +17,10 @@ merge_cmd () {
fi
}
+merge_cmd_help () {
+ echo "Use Guiffy's Diff Tool (requires a graphical session)"
+}
+
exit_code_trustable () {
true
}
diff --git a/mergetools/kdiff3 b/mergetools/kdiff3
index 520cb914a1..ee8b3a0570 100644
--- a/mergetools/kdiff3
+++ b/mergetools/kdiff3
@@ -4,6 +4,10 @@ diff_cmd () {
"$LOCAL" "$REMOTE" >/dev/null 2>&1
}
+diff_cmd_help () {
+ echo "Use KDiff3 (requires a graphical session)"
+}
+
merge_cmd () {
if $base_present
then
@@ -22,6 +26,10 @@ merge_cmd () {
fi
}
+merge_cmd_help () {
+ echo "Use KDiff3 (requires a graphical session)"
+}
+
exit_code_trustable () {
true
}
diff --git a/mergetools/kompare b/mergetools/kompare
index e8c0bfa678..4ce23dbe8b 100644
--- a/mergetools/kompare
+++ b/mergetools/kompare
@@ -2,10 +2,18 @@ can_merge () {
return 1
}
+diff_cmd_help () {
+ echo "Use Kompare (requires a graphical session)"
+}
+
diff_cmd () {
"$merge_tool_path" "$LOCAL" "$REMOTE"
}
+merge_cmd_help () {
+ echo "Use Kompare (requires a graphical session)"
+}
+
exit_code_trustable () {
true
}
diff --git a/mergetools/meld b/mergetools/meld
index aab4ebb935..8ec0867e03 100644
--- a/mergetools/meld
+++ b/mergetools/meld
@@ -2,6 +2,10 @@ diff_cmd () {
"$merge_tool_path" "$LOCAL" "$REMOTE"
}
+diff_cmd_help () {
+ echo "Use Meld (requires a graphical session)"
+}
+
merge_cmd () {
check_meld_for_features
@@ -20,6 +24,10 @@ merge_cmd () {
fi
}
+merge_cmd_help () {
+ echo "Use Meld (requires a graphical session) with optional \`auto merge\` (see \`git help mergetool\`'s \`CONFIGURATION\` section)"
+}
+
# Get meld help message
init_meld_help_msg () {
if test -z "$meld_help_msg"
diff --git a/mergetools/opendiff b/mergetools/opendiff
index b608dd6de3..44adf8f951 100644
--- a/mergetools/opendiff
+++ b/mergetools/opendiff
@@ -2,6 +2,10 @@ diff_cmd () {
"$merge_tool_path" "$LOCAL" "$REMOTE" | cat
}
+diff_cmd_help () {
+ echo "Use FileMerge (requires a graphical session)"
+}
+
merge_cmd () {
if $base_present
then
@@ -12,3 +16,7 @@ merge_cmd () {
-merge "$MERGED" | cat
fi
}
+
+merge_cmd_help () {
+ echo "Use FileMerge (requires a graphical session)"
+}
diff --git a/mergetools/p4merge b/mergetools/p4merge
index 7a5b291dd2..f3cb197e58 100644
--- a/mergetools/p4merge
+++ b/mergetools/p4merge
@@ -19,6 +19,10 @@ diff_cmd () {
fi
}
+diff_cmd_help () {
+ echo "Use HelixCore P4Merge (requires a graphical session)"
+}
+
merge_cmd () {
if ! $base_present
then
@@ -34,3 +38,7 @@ create_empty_file () {
printf "%s" "$empty_file"
}
+
+merge_cmd_help () {
+ echo "Use HelixCore P4Merge (requires a graphical session)"
+}
diff --git a/mergetools/smerge b/mergetools/smerge
index 9c2e6f6fd7..5410835a6b 100644
--- a/mergetools/smerge
+++ b/mergetools/smerge
@@ -2,6 +2,10 @@ diff_cmd () {
"$merge_tool_path" mergetool "$LOCAL" "$REMOTE" -o "$MERGED"
}
+diff_cmd_help () {
+ echo "Use Sublime Merge (requires a graphical session)"
+}
+
merge_cmd () {
if $base_present
then
@@ -10,3 +14,7 @@ merge_cmd () {
"$merge_tool_path" mergetool "$LOCAL" "$REMOTE" -o "$MERGED"
fi
}
+
+merge_cmd_help () {
+ echo "Use Sublime Merge (requires a graphical session)"
+}
diff --git a/mergetools/tkdiff b/mergetools/tkdiff
index eee5cb57e3..66906a720d 100644
--- a/mergetools/tkdiff
+++ b/mergetools/tkdiff
@@ -2,6 +2,10 @@ diff_cmd () {
"$merge_tool_path" "$LOCAL" "$REMOTE"
}
+diff_cmd_help () {
+ echo "Use TkDiff (requires a graphical session)"
+}
+
merge_cmd () {
if $base_present
then
@@ -14,3 +18,7 @@ merge_cmd () {
exit_code_trustable () {
true
}
+
+merge_cmd_help () {
+ echo "Use TkDiff (requires a graphical session)"
+}
diff --git a/mergetools/tortoisemerge b/mergetools/tortoisemerge
index d7ab666a59..507edcd444 100644
--- a/mergetools/tortoisemerge
+++ b/mergetools/tortoisemerge
@@ -2,6 +2,10 @@ can_diff () {
return 1
}
+diff_cmd_help () {
+ echo "Use TortoiseMerge (requires a graphical session)"
+}
+
merge_cmd () {
if $base_present
then
@@ -30,3 +34,7 @@ translate_merge_tool_path() {
echo tortoisemerge
fi
}
+
+merge_cmd_help () {
+ echo "Use TortoiseMerge (requires a graphical session)"
+}
diff --git a/mergetools/vimdiff b/mergetools/vimdiff
index 96f6209a04..461a89b6f9 100644
--- a/mergetools/vimdiff
+++ b/mergetools/vimdiff
@@ -1,49 +1,495 @@
+# This script can be run in two different contexts:
+#
+# - From git, when the user invokes the "vimdiff" merge tool. In this context
+# this script expects the following environment variables (among others) to
+# be defined (which is something "git" takes care of):
+#
+# - $BASE
+# - $LOCAL
+# - $REMOTE
+# - $MERGED
+#
+# In this mode, all this script does is to run the next command:
+#
+# vim -f -c ... $LOCAL $BASE $REMOTE $MERGED
+#
+# ...where the "..." string depends on the value of the
+# "mergetool.vimdiff.layout" configuration variable and is used to open vim
+# with a certain layout of buffers, windows and tabs.
+#
+# - From a script inside the unit tests framework folder ("t" folder) by
+# sourcing this script and then manually calling "run_unit_tests", which
+# will run a battery of unit tests to make sure nothing breaks.
+# In this context this script does not expect any particular environment
+# variable to be set.
+
+
+################################################################################
+## Internal functions (not meant to be used outside this script)
+################################################################################
+
+debug_print () {
+ # Send message to stderr if global variable GIT_MERGETOOL_VIMDIFF is set
+ # to "true"
+
+ if test -n "$GIT_MERGETOOL_VIMDIFF_DEBUG"
+ then
+ >&2 echo "$@"
+ fi
+}
+
+substring () {
+ # Return a substring of $1 containing $3 characters starting at
+ # zero-based offset $2.
+ #
+ # Examples:
+ #
+ # substring "Hello world" 0 4 --> "Hell"
+ # substring "Hello world" 3 4 --> "lo w"
+ # substring "Hello world" 3 10 --> "lo world"
+
+ STRING=$1
+ START=$2
+ LEN=$3
+
+ echo "$STRING" | cut -c$(( START + 1 ))-$(( START + $LEN ))
+}
+
+gen_cmd_aux () {
+ # Auxiliary function used from "gen_cmd()".
+ # Read that other function documentation for more details.
+
+ LAYOUT=$1
+ CMD=$2 # This is a second (hidden) argument used for recursion
+
+ debug_print
+ debug_print "LAYOUT : $LAYOUT"
+ debug_print "CMD : $CMD"
+
+ if test -z "$CMD"
+ then
+ CMD="echo" # vim "nop" operator
+ fi
+
+ start=0
+ end=${#LAYOUT}
+
+ nested=0
+ nested_min=100
+
+
+ # Step 1:
+ #
+ # Increase/decrease "start"/"end" indices respectively to get rid of
+ # outer parenthesis.
+ #
+ # Example:
+ #
+ # - BEFORE: (( LOCAL , BASE ) / MERGED )
+ # - AFTER : ( LOCAL , BASE ) / MERGED
+
+ oldIFS=$IFS
+ IFS=#
+ for c in $(echo "$LAYOUT" | sed 's:.:&#:g')
+ do
+ if test "$c" = " "
+ then
+ continue
+ fi
+
+ if test "$c" = "("
+ then
+ nested=$(( nested + 1 ))
+ continue
+ fi
+
+ if test "$c" = ")"
+ then
+ nested=$(( nested - 1 ))
+ continue
+ fi
+
+ if test "$nested" -lt "$nested_min"
+ then
+ nested_min=$nested
+ fi
+ done
+ IFS=$oldIFS
+
+ debug_print "NESTED MIN: $nested_min"
+
+ while test "$nested_min" -gt "0"
+ do
+ start=$(( start + 1 ))
+ end=$(( end - 1 ))
+
+ start_minus_one=$(( start - 1 ))
+
+ while ! test "$(substring "$LAYOUT" "$start_minus_one" 1)" = "("
+ do
+ start=$(( start + 1 ))
+ start_minus_one=$(( start_minus_one + 1 ))
+ done
+
+ while ! test "$(substring "$LAYOUT" "$end" 1)" = ")"
+ do
+ end=$(( end - 1 ))
+ done
+
+ nested_min=$(( nested_min - 1 ))
+ done
+
+ debug_print "CLEAN : $(substring "$LAYOUT" "$start" "$(( end - start ))")"
+
+
+ # Step 2:
+ #
+ # Search for all valid separators ("+", "/" or ",") which are *not*
+ # inside parenthesis. Save the index at which each of them makes the
+ # first appearance.
+
+ index_new_tab=""
+ index_horizontal_split=""
+ index_vertical_split=""
+
+ nested=0
+ i=$(( start - 1 ))
+
+ oldIFS=$IFS
+ IFS=#
+ for c in $(substring "$LAYOUT" "$start" "$(( end - start ))" | sed 's:.:&#:g');
+ do
+ i=$(( i + 1 ))
+
+ if test "$c" = " "
+ then
+ continue
+ fi
+
+ if test "$c" = "("
+ then
+ nested=$(( nested + 1 ))
+ continue
+ fi
+
+ if test "$c" = ")"
+ then
+ nested=$(( nested - 1 ))
+ continue
+ fi
+
+ if test "$nested" = 0
+ then
+ current=$c
+
+ if test "$current" = "+"
+ then
+ if test -z "$index_new_tab"
+ then
+ index_new_tab=$i
+ fi
+
+ elif test "$current" = "/"
+ then
+ if test -z "$index_horizontal_split"
+ then
+ index_horizontal_split=$i
+ fi
+
+ elif test "$current" = ","
+ then
+ if test -z "$index_vertical_split"
+ then
+ index_vertical_split=$i
+ fi
+ fi
+ fi
+ done
+ IFS=$oldIFS
+
+
+ # Step 3:
+ #
+ # Process the separator with the highest order of precedence
+ # (";" has the highest precedence and "|" the lowest one).
+ #
+ # By "process" I mean recursively call this function twice: the first
+ # one with the substring at the left of the separator and the second one
+ # with the one at its right.
+
+ terminate="false"
+
+ if ! test -z "$index_new_tab"
+ then
+ before="-tabnew"
+ after="tabnext"
+ index=$index_new_tab
+ terminate="true"
+
+ elif ! test -z "$index_horizontal_split"
+ then
+ before="split"
+ after="wincmd j"
+ index=$index_horizontal_split
+ terminate="true"
+
+ elif ! test -z "$index_vertical_split"
+ then
+ before="vertical split"
+ after="wincmd l"
+ index=$index_vertical_split
+ terminate="true"
+ fi
+
+ if test "$terminate" = "true"
+ then
+ CMD="$CMD | $before"
+ CMD=$(gen_cmd_aux "$(substring "$LAYOUT" "$start" "$(( index - start ))")" "$CMD")
+ CMD="$CMD | $after"
+ CMD=$(gen_cmd_aux "$(substring "$LAYOUT" "$(( index + 1 ))" "$(( ${#LAYOUT} - index ))")" "$CMD")
+ echo "$CMD"
+ return
+ fi
+
+
+ # Step 4:
+ #
+ # If we reach this point, it means there are no separators and we just
+ # need to print the command to display the specified buffer
+
+ target=$(substring "$LAYOUT" "$start" "$(( end - start ))" | sed 's:[ @();|-]::g')
+
+ if test "$target" = "LOCAL"
+ then
+ CMD="$CMD | 1b"
+
+ elif test "$target" = "BASE"
+ then
+ CMD="$CMD | 2b"
+
+ elif test "$target" = "REMOTE"
+ then
+ CMD="$CMD | 3b"
+
+ elif test "$target" = "MERGED"
+ then
+ CMD="$CMD | 4b"
+
+ else
+ CMD="$CMD | ERROR: >$target<"
+ fi
+
+ echo "$CMD"
+ return
+}
+
+
+gen_cmd () {
+ # This function returns (in global variable FINAL_CMD) the string that
+ # you can use when invoking "vim" (as shown next) to obtain a given
+ # layout:
+ #
+ # $ vim -f $FINAL_CMD "$LOCAL" "$BASE" "$REMOTE" "$MERGED"
+ #
+ # It takes one single argument: a string containing the desired layout
+ # definition.
+ #
+ # The syntax of the "layout definitions" is explained in "Documentation/
+ # mergetools/vimdiff.txt" but you can already intuitively understand how
+ # it works by knowing that...
+ #
+ # * "+" means "a new vim tab"
+ # * "/" means "a new vim horizontal split"
+ # * "," means "a new vim vertical split"
+ #
+ # It also returns (in global variable FINAL_TARGET) the name ("LOCAL",
+ # "BASE", "REMOTE" or "MERGED") of the file that is marked with an "@",
+ # or "MERGED" if none of them is.
+ #
+ # Example:
+ #
+ # gen_cmd "@LOCAL , REMOTE"
+ # |
+ # `-> FINAL_CMD == "-c \"echo | vertical split | 1b | wincmd l | 3b | tabdo windo diffthis\" -c \"tabfirst\""
+ # FINAL_TARGET == "LOCAL"
+
+ LAYOUT=$1
+
+
+ # Search for a "@" in one of the files identifiers ("LOCAL", "BASE",
+ # "REMOTE", "MERGED"). If not found, use "MERGE" as the default file
+ # where changes will be saved.
+
+ if echo "$LAYOUT" | grep @LOCAL >/dev/null
+ then
+ FINAL_TARGET="LOCAL"
+ elif echo "$LAYOUT" | grep @BASE >/dev/null
+ then
+ FINAL_TARGET="BASE"
+ else
+ FINAL_TARGET="MERGED"
+ fi
+
+
+ # Obtain the first part of vim "-c" option to obtain the desired layout
+
+ CMD=$(gen_cmd_aux "$LAYOUT")
+
+
+ # Adjust the just obtained script depending on whether more than one
+ # windows are visible or not
+
+ if echo "$LAYOUT" | grep ",\|/" >/dev/null
+ then
+ CMD="$CMD | tabdo windo diffthis"
+ else
+ CMD="$CMD | bufdo diffthis"
+ fi
+
+
+ # Add an extra "-c" option to move to the first tab (notice that we
+ # can't simply append the command to the previous "-c" string as
+ # explained here: https://github.com/vim/vim/issues/9076
+
+ FINAL_CMD="-c \"$CMD\" -c \"tabfirst\""
+}
+
+
+################################################################################
+## API functions (called from "git-mergetool--lib.sh")
+################################################################################
+
diff_cmd () {
"$merge_tool_path" -R -f -d \
-c 'wincmd l' -c 'cd $GIT_PREFIX' "$LOCAL" "$REMOTE"
}
+
+diff_cmd_help () {
+ TOOL=$1
+
+ case "$TOOL" in
+ nvimdiff*)
+ printf "Use Neovim"
+ ;;
+ gvimdiff*)
+ printf "Use gVim (requires a graphical session)"
+ ;;
+ vimdiff*)
+ printf "Use Vim"
+ ;;
+ esac
+
+ return 0
+}
+
+
merge_cmd () {
+ layout=$(git config mergetool.vimdiff.layout)
+
case "$1" in
*vimdiff)
- if $base_present
+ if test -z "$layout"
then
- "$merge_tool_path" -f -d -c '4wincmd w | wincmd J' \
- "$LOCAL" "$BASE" "$REMOTE" "$MERGED"
- else
- "$merge_tool_path" -f -d -c 'wincmd l' \
- "$LOCAL" "$MERGED" "$REMOTE"
+ # Default layout when none is specified
+ layout="(LOCAL,BASE,REMOTE)/MERGED"
fi
;;
*vimdiff1)
- "$merge_tool_path" -f -d \
- -c 'echon "Resolve conflicts leftward then save. Use :cq to abort."' \
- "$LOCAL" "$REMOTE"
- ret="$?"
- if test "$ret" -eq 0
- then
- cp -- "$LOCAL" "$MERGED"
- fi
- return "$ret"
+ layout="@LOCAL,REMOTE"
;;
*vimdiff2)
- "$merge_tool_path" -f -d -c 'wincmd l' \
- "$LOCAL" "$MERGED" "$REMOTE"
+ layout="LOCAL,MERGED,REMOTE"
;;
*vimdiff3)
- if $base_present
+ layout="MERGED"
+ ;;
+ esac
+
+ gen_cmd "$layout"
+
+ debug_print ""
+ debug_print "FINAL CMD : $FINAL_CMD"
+ debug_print "FINAL TAR : $FINAL_TARGET"
+
+ if $base_present
+ then
+ eval "$merge_tool_path" \
+ -f "$FINAL_CMD" "$LOCAL" "$BASE" "$REMOTE" "$MERGED"
+ else
+ # If there is no BASE (example: a merge conflict in a new file
+ # with the same name created in both braches which didn't exist
+ # before), close all BASE windows using vim's "quit" command
+
+ FINAL_CMD=$(echo "$FINAL_CMD" | \
+ sed -e 's:2b:quit:g' -e 's:3b:2b:g' -e 's:4b:3b:g')
+
+ eval "$merge_tool_path" \
+ -f "$FINAL_CMD" "$LOCAL" "$REMOTE" "$MERGED"
+ fi
+
+ ret="$?"
+
+ if test "$ret" -eq 0
+ then
+ case "$FINAL_TARGET" in
+ LOCAL)
+ source_path="$LOCAL"
+ ;;
+ REMOTE)
+ source_path="$REMOTE"
+ ;;
+ MERGED|*)
+ # Do nothing
+ source_path=
+ ;;
+ esac
+
+ if test -n "$source_path"
then
- "$merge_tool_path" -f -d -c 'hid | hid | hid' \
- "$LOCAL" "$REMOTE" "$BASE" "$MERGED"
- else
- "$merge_tool_path" -f -d -c 'hid | hid' \
- "$LOCAL" "$REMOTE" "$MERGED"
+ cp "$source_path" "$MERGED"
fi
+ fi
+
+ return "$ret"
+}
+
+
+merge_cmd_help () {
+ TOOL=$1
+
+ case "$TOOL" in
+ nvimdiff*)
+ printf "Use Neovim "
+ ;;
+ gvimdiff*)
+ printf "Use gVim (requires a graphical session) "
+ ;;
+ vimdiff*)
+ printf "Use Vim "
+ ;;
+ esac
+
+ case "$TOOL" in
+ *1)
+ echo "with a 2 panes layout (LOCAL and REMOTE)"
+ ;;
+ *2)
+ echo "with a 3 panes layout (LOCAL, MERGED and REMOTE)"
+ ;;
+ *3)
+ echo "where only the MERGED file is shown"
+ ;;
+ *)
+ echo "with a custom layout (see \`git help mergetool\`'s \`BACKEND SPECIFIC HINTS\` section)"
;;
esac
+
+ return 0
}
-translate_merge_tool_path() {
+
+translate_merge_tool_path () {
case "$1" in
nvimdiff*)
echo nvim
@@ -57,14 +503,121 @@ translate_merge_tool_path() {
esac
}
+
exit_code_trustable () {
true
}
+
list_tool_variants () {
- for prefix in '' g n; do
- for suffix in '' 1 2 3; do
- echo "${prefix}vimdiff${suffix}"
+ if test "$TOOL_MODE" = "diff"
+ then
+ for prefix in '' g n
+ do
+ echo "${prefix}vimdiff"
+ done
+ else
+ for prefix in '' g n
+ do
+ for suffix in '' 1 2 3
+ do
+ echo "${prefix}vimdiff${suffix}"
+ done
done
+ fi
+}
+
+
+################################################################################
+## Unit tests (called from scripts inside the "t" folder)
+################################################################################
+
+run_unit_tests () {
+ # Function to make sure that we don't break anything when modifying this
+ # script.
+
+ NUMBER_OF_TEST_CASES=16
+
+ TEST_CASE_01="(LOCAL,BASE,REMOTE)/MERGED" # default behaviour
+ TEST_CASE_02="@LOCAL,REMOTE" # when using vimdiff1
+ TEST_CASE_03="LOCAL,MERGED,REMOTE" # when using vimdiff2
+ TEST_CASE_04="MERGED" # when using vimdiff3
+ TEST_CASE_05="LOCAL/MERGED/REMOTE"
+ TEST_CASE_06="(LOCAL/REMOTE),MERGED"
+ TEST_CASE_07="MERGED,(LOCAL/REMOTE)"
+ TEST_CASE_08="(LOCAL,REMOTE)/MERGED"
+ TEST_CASE_09="MERGED/(LOCAL,REMOTE)"
+ TEST_CASE_10="(LOCAL/BASE/REMOTE),MERGED"
+ TEST_CASE_11="(LOCAL,BASE,REMOTE)/MERGED+BASE,LOCAL+BASE,REMOTE+(LOCAL/BASE/REMOTE),MERGED"
+ TEST_CASE_12="((LOCAL,REMOTE)/BASE),MERGED"
+ TEST_CASE_13="((LOCAL,REMOTE)/BASE),((LOCAL/REMOTE),MERGED)"
+ TEST_CASE_14="BASE,REMOTE+BASE,LOCAL"
+ TEST_CASE_15=" (( (LOCAL , BASE , REMOTE) / MERGED)) +(BASE) , LOCAL+ BASE , REMOTE+ (((LOCAL / BASE / REMOTE)) , MERGED ) "
+ TEST_CASE_16="LOCAL,BASE,REMOTE / MERGED + BASE,LOCAL + BASE,REMOTE + (LOCAL / BASE / REMOTE),MERGED"
+
+ EXPECTED_CMD_01="-c \"echo | split | vertical split | 1b | wincmd l | vertical split | 2b | wincmd l | 3b | wincmd j | 4b | tabdo windo diffthis\" -c \"tabfirst\""
+ EXPECTED_CMD_02="-c \"echo | vertical split | 1b | wincmd l | 3b | tabdo windo diffthis\" -c \"tabfirst\""
+ EXPECTED_CMD_03="-c \"echo | vertical split | 1b | wincmd l | vertical split | 4b | wincmd l | 3b | tabdo windo diffthis\" -c \"tabfirst\""
+ EXPECTED_CMD_04="-c \"echo | 4b | bufdo diffthis\" -c \"tabfirst\""
+ EXPECTED_CMD_05="-c \"echo | split | 1b | wincmd j | split | 4b | wincmd j | 3b | tabdo windo diffthis\" -c \"tabfirst\""
+ EXPECTED_CMD_06="-c \"echo | vertical split | split | 1b | wincmd j | 3b | wincmd l | 4b | tabdo windo diffthis\" -c \"tabfirst\""
+ EXPECTED_CMD_07="-c \"echo | vertical split | 4b | wincmd l | split | 1b | wincmd j | 3b | tabdo windo diffthis\" -c \"tabfirst\""
+ EXPECTED_CMD_08="-c \"echo | split | vertical split | 1b | wincmd l | 3b | wincmd j | 4b | tabdo windo diffthis\" -c \"tabfirst\""
+ EXPECTED_CMD_09="-c \"echo | split | 4b | wincmd j | vertical split | 1b | wincmd l | 3b | tabdo windo diffthis\" -c \"tabfirst\""
+ EXPECTED_CMD_10="-c \"echo | vertical split | split | 1b | wincmd j | split | 2b | wincmd j | 3b | wincmd l | 4b | tabdo windo diffthis\" -c \"tabfirst\""
+ EXPECTED_CMD_11="-c \"echo | -tabnew | split | vertical split | 1b | wincmd l | vertical split | 2b | wincmd l | 3b | wincmd j | 4b | tabnext | -tabnew | vertical split | 2b | wincmd l | 1b | tabnext | -tabnew | vertical split | 2b | wincmd l | 3b | tabnext | vertical split | split | 1b | wincmd j | split | 2b | wincmd j | 3b | wincmd l | 4b | tabdo windo diffthis\" -c \"tabfirst\""
+ EXPECTED_CMD_12="-c \"echo | vertical split | split | vertical split | 1b | wincmd l | 3b | wincmd j | 2b | wincmd l | 4b | tabdo windo diffthis\" -c \"tabfirst\""
+ EXPECTED_CMD_13="-c \"echo | vertical split | split | vertical split | 1b | wincmd l | 3b | wincmd j | 2b | wincmd l | vertical split | split | 1b | wincmd j | 3b | wincmd l | 4b | tabdo windo diffthis\" -c \"tabfirst\""
+ EXPECTED_CMD_14="-c \"echo | -tabnew | vertical split | 2b | wincmd l | 3b | tabnext | vertical split | 2b | wincmd l | 1b | tabdo windo diffthis\" -c \"tabfirst\""
+ EXPECTED_CMD_15="-c \"echo | -tabnew | split | vertical split | 1b | wincmd l | vertical split | 2b | wincmd l | 3b | wincmd j | 4b | tabnext | -tabnew | vertical split | 2b | wincmd l | 1b | tabnext | -tabnew | vertical split | 2b | wincmd l | 3b | tabnext | vertical split | split | 1b | wincmd j | split | 2b | wincmd j | 3b | wincmd l | 4b | tabdo windo diffthis\" -c \"tabfirst\""
+ EXPECTED_CMD_16="-c \"echo | -tabnew | split | vertical split | 1b | wincmd l | vertical split | 2b | wincmd l | 3b | wincmd j | 4b | tabnext | -tabnew | vertical split | 2b | wincmd l | 1b | tabnext | -tabnew | vertical split | 2b | wincmd l | 3b | tabnext | vertical split | split | 1b | wincmd j | split | 2b | wincmd j | 3b | wincmd l | 4b | tabdo windo diffthis\" -c \"tabfirst\""
+
+ EXPECTED_TARGET_01="MERGED"
+ EXPECTED_TARGET_02="LOCAL"
+ EXPECTED_TARGET_03="MERGED"
+ EXPECTED_TARGET_04="MERGED"
+ EXPECTED_TARGET_05="MERGED"
+ EXPECTED_TARGET_06="MERGED"
+ EXPECTED_TARGET_07="MERGED"
+ EXPECTED_TARGET_08="MERGED"
+ EXPECTED_TARGET_09="MERGED"
+ EXPECTED_TARGET_10="MERGED"
+ EXPECTED_TARGET_11="MERGED"
+ EXPECTED_TARGET_12="MERGED"
+ EXPECTED_TARGET_13="MERGED"
+ EXPECTED_TARGET_14="MERGED"
+ EXPECTED_TARGET_15="MERGED"
+ EXPECTED_TARGET_16="MERGED"
+
+ at_least_one_ko="false"
+
+ for i in $(seq -w 1 99)
+ do
+ if test "$i" -gt $NUMBER_OF_TEST_CASES
+ then
+ break
+ fi
+
+ gen_cmd "$(eval echo \${TEST_CASE_"$i"})"
+
+ if test "$FINAL_CMD" = "$(eval echo \${EXPECTED_CMD_"$i"})" \
+ && test "$FINAL_TARGET" = "$(eval echo \${EXPECTED_TARGET_"$i"})"
+ then
+ printf "Test Case #%02d: OK\n" "$(echo "$i" | sed 's/^0*//')"
+ else
+ printf "Test Case #%02d: KO !!!!\n" "$(echo "$i" | sed 's/^0*//')"
+ echo " FINAL_CMD : $FINAL_CMD"
+ echo " FINAL_CMD (expected) : $(eval echo \${EXPECTED_CMD_"$i"})"
+ echo " FINAL_TARGET : $FINAL_TARGET"
+ echo " FINAL_TARGET (expected): $(eval echo \${EXPECTED_TARGET_"$i"})"
+ at_least_one_ko="true"
+ fi
done
+
+ if test "$at_least_one_ko" = "true"
+ then
+ return 255
+ else
+ return 0
+ fi
}
diff --git a/mergetools/winmerge b/mergetools/winmerge
index 74d03259fd..36c72dde6e 100644
--- a/mergetools/winmerge
+++ b/mergetools/winmerge
@@ -3,6 +3,10 @@ diff_cmd () {
return 0
}
+diff_cmd_help () {
+ echo "Use WinMerge (requires a graphical session)"
+}
+
merge_cmd () {
# mergetool.winmerge.trustExitCode is implicitly false.
# touch $BACKUP so that we can check_unchanged.
@@ -13,3 +17,7 @@ merge_cmd () {
translate_merge_tool_path() {
mergetool_find_win32_cmd "WinMergeU.exe" "WinMerge"
}
+
+merge_cmd_help () {
+ echo "Use WinMerge (requires a graphical session)"
+}
diff --git a/mergetools/xxdiff b/mergetools/xxdiff
index d5ce467995..cd205f9842 100644
--- a/mergetools/xxdiff
+++ b/mergetools/xxdiff
@@ -12,6 +12,10 @@ diff_cmd () {
fi
}
+diff_cmd_help () {
+ echo "Use xxdiff (requires a graphical session)"
+}
+
merge_cmd () {
if $base_present
then
@@ -28,3 +32,7 @@ merge_cmd () {
--merged-file "$MERGED" "$LOCAL" "$REMOTE"
fi
}
+
+merge_cmd_help () {
+ echo "Use xxdiff (requires a graphical session)"
+}
diff --git a/midx.c b/midx.c
index 837b46b2af..3db0e47735 100644
--- a/midx.c
+++ b/midx.c
@@ -33,6 +33,7 @@
#define MIDX_CHUNKID_OIDLOOKUP 0x4f49444c /* "OIDL" */
#define MIDX_CHUNKID_OBJECTOFFSETS 0x4f4f4646 /* "OOFF" */
#define MIDX_CHUNKID_LARGEOFFSETS 0x4c4f4646 /* "LOFF" */
+#define MIDX_CHUNKID_REVINDEX 0x52494458 /* "RIDX" */
#define MIDX_CHUNK_FANOUT_SIZE (sizeof(uint32_t) * 256)
#define MIDX_CHUNK_OFFSET_WIDTH (2 * sizeof(uint32_t))
#define MIDX_CHUNK_LARGE_OFFSET_WIDTH (sizeof(uint64_t))
@@ -161,6 +162,9 @@ struct multi_pack_index *load_multi_pack_index(const char *object_dir, int local
pair_chunk(cf, MIDX_CHUNKID_LARGEOFFSETS, &m->chunk_large_offsets);
+ if (git_env_bool("GIT_TEST_MIDX_READ_RIDX", 1))
+ pair_chunk(cf, MIDX_CHUNKID_REVINDEX, &m->chunk_revindex);
+
m->num_objects = ntohl(m->chunk_oid_fanout[255]);
CALLOC_ARRAY(m->pack_names, m->num_packs);
@@ -833,6 +837,18 @@ static int write_midx_large_offsets(struct hashfile *f,
return 0;
}
+static int write_midx_revindex(struct hashfile *f,
+ void *data)
+{
+ struct write_midx_context *ctx = data;
+ uint32_t i;
+
+ for (i = 0; i < ctx->entries_nr; i++)
+ hashwrite_be32(f, ctx->pack_order[i]);
+
+ return 0;
+}
+
struct midx_pack_order_data {
uint32_t nr;
uint32_t pack;
@@ -1061,6 +1077,9 @@ static int write_midx_bitmap(char *midx_name, unsigned char *midx_hash,
char *bitmap_name = xstrfmt("%s-%s.bitmap", midx_name, hash_to_hex(midx_hash));
int ret;
+ if (!ctx->entries_nr)
+ BUG("cannot write a bitmap without any objects");
+
if (flags & MIDX_WRITE_BITMAP_HASH_CACHE)
options |= BITMAP_OPT_HASH_CACHE;
@@ -1113,17 +1132,26 @@ cleanup:
static struct multi_pack_index *lookup_multi_pack_index(struct repository *r,
const char *object_dir)
{
+ struct multi_pack_index *result = NULL;
struct multi_pack_index *cur;
+ char *obj_dir_real = real_pathdup(object_dir, 1);
+ struct strbuf cur_path_real = STRBUF_INIT;
/* Ensure the given object_dir is local, or a known alternate. */
- find_odb(r, object_dir);
+ find_odb(r, obj_dir_real);
for (cur = get_multi_pack_index(r); cur; cur = cur->next) {
- if (!strcmp(object_dir, cur->object_dir))
- return cur;
+ strbuf_realpath(&cur_path_real, cur->object_dir, 1);
+ if (!strcmp(obj_dir_real, cur_path_real.buf)) {
+ result = cur;
+ goto cleanup;
+ }
}
- return NULL;
+cleanup:
+ free(obj_dir_real);
+ strbuf_release(&cur_path_real);
+ return result;
}
static int write_midx_internal(const char *object_dir,
@@ -1385,6 +1413,12 @@ static int write_midx_internal(const char *object_dir,
goto cleanup;
}
+ if (!ctx.entries_nr) {
+ if (flags & MIDX_WRITE_BITMAP)
+ warning(_("refusing to write multi-pack .bitmap without any objects"));
+ flags &= ~(MIDX_WRITE_REV_INDEX | MIDX_WRITE_BITMAP);
+ }
+
cf = init_chunkfile(f);
add_chunk(cf, MIDX_CHUNKID_PACKNAMES, pack_name_concat_len,
@@ -1403,16 +1437,22 @@ static int write_midx_internal(const char *object_dir,
(size_t)ctx.num_large_offsets * MIDX_CHUNK_LARGE_OFFSET_WIDTH,
write_midx_large_offsets);
+ if (flags & (MIDX_WRITE_REV_INDEX | MIDX_WRITE_BITMAP)) {
+ ctx.pack_order = midx_pack_order(&ctx);
+ add_chunk(cf, MIDX_CHUNKID_REVINDEX,
+ ctx.entries_nr * sizeof(uint32_t),
+ write_midx_revindex);
+ }
+
write_midx_header(f, get_num_chunks(cf), ctx.nr - dropped_packs);
write_chunkfile(cf, &ctx);
- finalize_hashfile(f, midx_hash, CSUM_FSYNC | CSUM_HASH_IN_STREAM);
+ finalize_hashfile(f, midx_hash, FSYNC_COMPONENT_PACK_METADATA,
+ CSUM_FSYNC | CSUM_HASH_IN_STREAM);
free_chunkfile(cf);
- if (flags & (MIDX_WRITE_REV_INDEX | MIDX_WRITE_BITMAP))
- ctx.pack_order = midx_pack_order(&ctx);
-
- if (flags & MIDX_WRITE_REV_INDEX)
+ if (flags & MIDX_WRITE_REV_INDEX &&
+ git_env_bool("GIT_TEST_MIDX_WRITE_REV", 0))
write_midx_reverse_index(midx_name.buf, midx_hash, &ctx);
if (flags & MIDX_WRITE_BITMAP) {
if (write_midx_bitmap(midx_name.buf, midx_hash, &ctx,
diff --git a/midx.h b/midx.h
index b7d79a515c..22e8e53288 100644
--- a/midx.h
+++ b/midx.h
@@ -36,6 +36,7 @@ struct multi_pack_index {
const unsigned char *chunk_oid_lookup;
const unsigned char *chunk_object_offsets;
const unsigned char *chunk_large_offsets;
+ const unsigned char *chunk_revindex;
const char **pack_names;
struct packed_git **packs;
diff --git a/notes-cache.c b/notes-cache.c
index 2473314d68..9dfd251a81 100644
--- a/notes-cache.c
+++ b/notes-cache.c
@@ -92,7 +92,7 @@ int notes_cache_put(struct notes_cache *c, struct object_id *key_oid,
{
struct object_id value_oid;
- if (write_object_file(data, size, "blob", &value_oid) < 0)
+ if (write_object_file(data, size, OBJ_BLOB, &value_oid) < 0)
return -1;
return add_note(&c->tree, key_oid, &value_oid, NULL);
}
diff --git a/notes-merge.c b/notes-merge.c
index b4a3a903e8..b4cc594a79 100644
--- a/notes-merge.c
+++ b/notes-merge.c
@@ -113,6 +113,7 @@ static struct notes_merge_pair *find_notes_merge_pair_pos(
}
static struct object_id uninitialized = {
+ .hash =
"\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff" \
"\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
};
@@ -175,7 +176,6 @@ static struct notes_merge_pair *diff_tree_remote(struct notes_merge_options *o,
oid_to_hex(&mp->remote));
}
diff_flush(&opt);
- clear_pathspec(&opt.pathspec);
*num_changes = len;
return changes;
@@ -261,7 +261,6 @@ static void diff_tree_local(struct notes_merge_options *o,
oid_to_hex(&mp->local));
}
diff_flush(&opt);
- clear_pathspec(&opt.pathspec);
}
static void check_notes_merge_worktree(struct notes_merge_options *o)
@@ -344,7 +343,7 @@ static int ll_merge_in_worktree(struct notes_merge_options *o,
{
mmbuffer_t result_buf;
mmfile_t base, local, remote;
- int status;
+ enum ll_merge_result status;
read_mmblob(&base, &p->base);
read_mmblob(&local, &p->local);
@@ -358,6 +357,9 @@ static int ll_merge_in_worktree(struct notes_merge_options *o,
free(local.ptr);
free(remote.ptr);
+ if (status == LL_MERGE_BINARY_CONFLICT)
+ warning("Cannot merge binary files: %s (%s vs. %s)",
+ oid_to_hex(&p->obj), o->local_ref, o->remote_ref);
if ((status < 0) || !result_buf.ptr)
die("Failed to execute internal merge");
diff --git a/notes.c b/notes.c
index f87dac4068..7452e71cc8 100644
--- a/notes.c
+++ b/notes.c
@@ -675,7 +675,7 @@ static int tree_write_stack_finish_subtree(struct tree_write_stack *tws)
ret = tree_write_stack_finish_subtree(n);
if (ret)
return ret;
- ret = write_object_file(n->buf.buf, n->buf.len, tree_type, &s);
+ ret = write_object_file(n->buf.buf, n->buf.len, OBJ_TREE, &s);
if (ret)
return ret;
strbuf_release(&n->buf);
@@ -836,7 +836,7 @@ int combine_notes_concatenate(struct object_id *cur_oid,
free(new_msg);
/* create a new blob object from buf */
- ret = write_object_file(buf, buf_len, blob_type, cur_oid);
+ ret = write_object_file(buf, buf_len, OBJ_BLOB, cur_oid);
free(buf);
return ret;
}
@@ -916,7 +916,7 @@ int combine_notes_cat_sort_uniq(struct object_id *cur_oid,
string_list_join_lines_helper, &buf))
goto out;
- ret = write_object_file(buf.buf, buf.len, blob_type, cur_oid);
+ ret = write_object_file(buf.buf, buf.len, OBJ_BLOB, cur_oid);
out:
strbuf_release(&buf);
@@ -1192,7 +1192,7 @@ int write_notes_tree(struct notes_tree *t, struct object_id *result)
ret = for_each_note(t, flags, write_each_note, &cb_data) ||
write_each_non_note_until(NULL, &cb_data) ||
tree_write_stack_finish_subtree(&root) ||
- write_object_file(root.buf.buf, root.buf.len, tree_type, result);
+ write_object_file(root.buf.buf, root.buf.len, OBJ_TREE, result);
strbuf_release(&root.buf);
return ret;
}
diff --git a/object-file.c b/object-file.c
index 00f3e8d0b3..a81d84132d 100644
--- a/object-file.c
+++ b/object-file.c
@@ -167,49 +167,49 @@ static void git_hash_unknown_final_oid(struct object_id *oid, git_hash_ctx *ctx)
const struct git_hash_algo hash_algos[GIT_HASH_NALGOS] = {
{
- NULL,
- 0x00000000,
- 0,
- 0,
- 0,
- git_hash_unknown_init,
- git_hash_unknown_clone,
- git_hash_unknown_update,
- git_hash_unknown_final,
- git_hash_unknown_final_oid,
- NULL,
- NULL,
- NULL,
+ .name = NULL,
+ .format_id = 0x00000000,
+ .rawsz = 0,
+ .hexsz = 0,
+ .blksz = 0,
+ .init_fn = git_hash_unknown_init,
+ .clone_fn = git_hash_unknown_clone,
+ .update_fn = git_hash_unknown_update,
+ .final_fn = git_hash_unknown_final,
+ .final_oid_fn = git_hash_unknown_final_oid,
+ .empty_tree = NULL,
+ .empty_blob = NULL,
+ .null_oid = NULL,
},
{
- "sha1",
- GIT_SHA1_FORMAT_ID,
- GIT_SHA1_RAWSZ,
- GIT_SHA1_HEXSZ,
- GIT_SHA1_BLKSZ,
- git_hash_sha1_init,
- git_hash_sha1_clone,
- git_hash_sha1_update,
- git_hash_sha1_final,
- git_hash_sha1_final_oid,
- &empty_tree_oid,
- &empty_blob_oid,
- &null_oid_sha1,
+ .name = "sha1",
+ .format_id = GIT_SHA1_FORMAT_ID,
+ .rawsz = GIT_SHA1_RAWSZ,
+ .hexsz = GIT_SHA1_HEXSZ,
+ .blksz = GIT_SHA1_BLKSZ,
+ .init_fn = git_hash_sha1_init,
+ .clone_fn = git_hash_sha1_clone,
+ .update_fn = git_hash_sha1_update,
+ .final_fn = git_hash_sha1_final,
+ .final_oid_fn = git_hash_sha1_final_oid,
+ .empty_tree = &empty_tree_oid,
+ .empty_blob = &empty_blob_oid,
+ .null_oid = &null_oid_sha1,
},
{
- "sha256",
- GIT_SHA256_FORMAT_ID,
- GIT_SHA256_RAWSZ,
- GIT_SHA256_HEXSZ,
- GIT_SHA256_BLKSZ,
- git_hash_sha256_init,
- git_hash_sha256_clone,
- git_hash_sha256_update,
- git_hash_sha256_final,
- git_hash_sha256_final_oid,
- &empty_tree_oid_sha256,
- &empty_blob_oid_sha256,
- &null_oid_sha256,
+ .name = "sha256",
+ .format_id = GIT_SHA256_FORMAT_ID,
+ .rawsz = GIT_SHA256_RAWSZ,
+ .hexsz = GIT_SHA256_HEXSZ,
+ .blksz = GIT_SHA256_BLKSZ,
+ .init_fn = git_hash_sha256_init,
+ .clone_fn = git_hash_sha256_clone,
+ .update_fn = git_hash_sha256_update,
+ .final_fn = git_hash_sha256_final,
+ .final_oid_fn = git_hash_sha256_final_oid,
+ .empty_tree = &empty_tree_oid_sha256,
+ .empty_blob = &empty_blob_oid_sha256,
+ .null_oid = &null_oid_sha256,
}
};
@@ -274,10 +274,11 @@ static struct cached_object {
static int cached_object_nr, cached_object_alloc;
static struct cached_object empty_tree = {
- { EMPTY_TREE_SHA1_BIN_LITERAL },
- OBJ_TREE,
- "",
- 0
+ .oid = {
+ .hash = EMPTY_TREE_SHA1_BIN_LITERAL,
+ },
+ .type = OBJ_TREE,
+ .buf = "",
};
static struct cached_object *find_cached_object(const struct object_id *oid)
@@ -1049,35 +1050,50 @@ void *xmmap(void *start, size_t length,
return ret;
}
-/*
- * With an in-core object data in "map", rehash it to make sure the
- * object name actually matches "oid" to detect object corruption.
- * With "map" == NULL, try reading the object named with "oid" using
- * the streaming interface and rehash it to do the same.
- */
+static int format_object_header_literally(char *str, size_t size,
+ const char *type, size_t objsize)
+{
+ return xsnprintf(str, size, "%s %"PRIuMAX, type, (uintmax_t)objsize) + 1;
+}
+
+int format_object_header(char *str, size_t size, enum object_type type,
+ size_t objsize)
+{
+ const char *name = type_name(type);
+
+ if (!name)
+ BUG("could not get a type name for 'enum object_type' value %d", type);
+
+ return format_object_header_literally(str, size, name, objsize);
+}
+
int check_object_signature(struct repository *r, const struct object_id *oid,
- void *map, unsigned long size, const char *type,
- struct object_id *real_oidp)
+ void *buf, unsigned long size,
+ enum object_type type)
{
- struct object_id tmp;
- struct object_id *real_oid = real_oidp ? real_oidp : &tmp;
+ struct object_id real_oid;
+
+ hash_object_file(r->hash_algo, buf, size, type, &real_oid);
+
+ return !oideq(oid, &real_oid) ? -1 : 0;
+}
+
+int stream_object_signature(struct repository *r, const struct object_id *oid)
+{
+ struct object_id real_oid;
+ unsigned long size;
enum object_type obj_type;
struct git_istream *st;
git_hash_ctx c;
char hdr[MAX_HEADER_LEN];
int hdrlen;
- if (map) {
- hash_object_file(r->hash_algo, map, size, type, real_oid);
- return !oideq(oid, real_oid) ? -1 : 0;
- }
-
st = open_istream(r, oid, &obj_type, &size, NULL);
if (!st)
return -1;
/* Generate the header */
- hdrlen = xsnprintf(hdr, sizeof(hdr), "%s %"PRIuMAX , type_name(obj_type), (uintmax_t)size) + 1;
+ hdrlen = format_object_header(hdr, sizeof(hdr), obj_type, size);
/* Sha1.. */
r->hash_algo->init_fn(&c);
@@ -1094,9 +1110,9 @@ int check_object_signature(struct repository *r, const struct object_id *oid,
break;
r->hash_algo->update_fn(&c, buf, readlen);
}
- r->hash_algo->final_oid_fn(real_oid, &c);
+ r->hash_algo->final_oid_fn(&real_oid, &c);
close_istream(st);
- return !oideq(oid, real_oid) ? -1 : 0;
+ return !oideq(oid, &real_oid) ? -1 : 0;
}
int git_open_cloexec(const char *name, int flags)
@@ -1662,7 +1678,7 @@ int pretend_object_file(void *buf, unsigned long len, enum object_type type,
{
struct cached_object *co;
- hash_object_file(the_hash_algo, buf, len, type_name(type), oid);
+ hash_object_file(the_hash_algo, buf, len, type, oid);
if (has_object_file_with_flags(oid, OBJECT_INFO_QUICK | OBJECT_INFO_SKIP_FETCH_OBJECT) ||
find_cached_object(oid))
return 0;
@@ -1722,16 +1738,15 @@ void *read_object_file_extended(struct repository *r,
void *read_object_with_reference(struct repository *r,
const struct object_id *oid,
- const char *required_type_name,
+ enum object_type required_type,
unsigned long *size,
struct object_id *actual_oid_return)
{
- enum object_type type, required_type;
+ enum object_type type;
void *buffer;
unsigned long isize;
struct object_id actual_oid;
- required_type = type_from_string(required_type_name);
oidcpy(&actual_oid, oid);
while (1) {
int ref_length = -1;
@@ -1769,21 +1784,40 @@ void *read_object_with_reference(struct repository *r,
}
}
+static void hash_object_body(const struct git_hash_algo *algo, git_hash_ctx *c,
+ const void *buf, unsigned long len,
+ struct object_id *oid,
+ char *hdr, int *hdrlen)
+{
+ algo->init_fn(c);
+ algo->update_fn(c, hdr, *hdrlen);
+ algo->update_fn(c, buf, len);
+ algo->final_oid_fn(oid, c);
+}
+
static void write_object_file_prepare(const struct git_hash_algo *algo,
const void *buf, unsigned long len,
- const char *type, struct object_id *oid,
+ enum object_type type, struct object_id *oid,
char *hdr, int *hdrlen)
{
git_hash_ctx c;
/* Generate the header */
- *hdrlen = xsnprintf(hdr, *hdrlen, "%s %"PRIuMAX , type, (uintmax_t)len)+1;
+ *hdrlen = format_object_header(hdr, *hdrlen, type, len);
/* Sha1.. */
- algo->init_fn(&c);
- algo->update_fn(&c, hdr, *hdrlen);
- algo->update_fn(&c, buf, len);
- algo->final_oid_fn(oid, &c);
+ hash_object_body(algo, &c, buf, len, oid, hdr, hdrlen);
+}
+
+static void write_object_file_prepare_literally(const struct git_hash_algo *algo,
+ const void *buf, unsigned long len,
+ const char *type, struct object_id *oid,
+ char *hdr, int *hdrlen)
+{
+ git_hash_ctx c;
+
+ *hdrlen = format_object_header_literally(hdr, *hdrlen, type, len);
+ hash_object_body(algo, &c, buf, len, oid, hdr, hdrlen);
}
/*
@@ -1836,24 +1870,36 @@ static int write_buffer(int fd, const void *buf, size_t len)
return 0;
}
-int hash_object_file(const struct git_hash_algo *algo, const void *buf,
- unsigned long len, const char *type,
- struct object_id *oid)
+static void hash_object_file_literally(const struct git_hash_algo *algo,
+ const void *buf, unsigned long len,
+ const char *type, struct object_id *oid)
{
char hdr[MAX_HEADER_LEN];
int hdrlen = sizeof(hdr);
- write_object_file_prepare(algo, buf, len, type, oid, hdr, &hdrlen);
- return 0;
+
+ write_object_file_prepare_literally(algo, buf, len, type, oid, hdr, &hdrlen);
+}
+
+void hash_object_file(const struct git_hash_algo *algo, const void *buf,
+ unsigned long len, enum object_type type,
+ struct object_id *oid)
+{
+ hash_object_file_literally(algo, buf, len, type_name(type), oid);
}
/* Finalize a file on disk, and close it. */
-static void close_loose_object(int fd)
+static void close_loose_object(int fd, const char *filename)
{
- if (!the_repository->objects->odb->will_destroy) {
- if (fsync_object_files)
- fsync_or_die(fd, "loose object file");
- }
+ if (the_repository->objects->odb->will_destroy)
+ goto out;
+
+ if (fsync_object_files > 0)
+ fsync_or_die(fd, filename);
+ else
+ fsync_component_or_die(FSYNC_COMPONENT_LOOSE_OBJECT, fd,
+ filename);
+out:
if (close(fd) != 0)
die_errno(_("error when closing loose object file"));
}
@@ -1965,7 +2011,7 @@ static int write_loose_object(const struct object_id *oid, char *hdr,
die(_("confused by unstable object source data for %s"),
oid_to_hex(oid));
- close_loose_object(fd);
+ close_loose_object(fd, tmp_file.buf);
if (mtime) {
struct utimbuf utb;
@@ -1998,7 +2044,7 @@ static int freshen_packed_object(const struct object_id *oid)
}
int write_object_file_flags(const void *buf, unsigned long len,
- const char *type, struct object_id *oid,
+ enum object_type type, struct object_id *oid,
unsigned flags)
{
char hdr[MAX_HEADER_LEN];
@@ -2014,9 +2060,9 @@ int write_object_file_flags(const void *buf, unsigned long len,
return write_loose_object(oid, hdr, hdrlen, buf, len, 0, flags);
}
-int hash_object_file_literally(const void *buf, unsigned long len,
- const char *type, struct object_id *oid,
- unsigned flags)
+int write_object_file_literally(const void *buf, unsigned long len,
+ const char *type, struct object_id *oid,
+ unsigned flags)
{
char *header;
int hdrlen, status = 0;
@@ -2024,8 +2070,8 @@ int hash_object_file_literally(const void *buf, unsigned long len,
/* type string, SP, %lu of the length plus NUL must fit this */
hdrlen = strlen(type) + MAX_HEADER_LEN;
header = xmalloc(hdrlen);
- write_object_file_prepare(the_hash_algo, buf, len, type, oid, header,
- &hdrlen);
+ write_object_file_prepare_literally(the_hash_algo, buf, len, type,
+ oid, header, &hdrlen);
if (!(flags & HASH_WRITE_OBJECT))
goto cleanup;
@@ -2052,7 +2098,7 @@ int force_object_loose(const struct object_id *oid, time_t mtime)
buf = read_object(the_repository, oid, &type, &len);
if (!buf)
return error(_("cannot read object for %s"), oid_to_hex(oid));
- hdrlen = xsnprintf(hdr, sizeof(hdr), "%s %"PRIuMAX , type_name(type), (uintmax_t)len) + 1;
+ hdrlen = format_object_header(hdr, sizeof(hdr), type, len);
ret = write_loose_object(oid, hdr, hdrlen, buf, len, mtime, 0);
free(buf);
@@ -2118,7 +2164,8 @@ static int index_mem(struct index_state *istate,
enum object_type type,
const char *path, unsigned flags)
{
- int ret, re_allocated = 0;
+ int ret = 0;
+ int re_allocated = 0;
int write_object = flags & HASH_WRITE_OBJECT;
if (!type)
@@ -2145,10 +2192,9 @@ static int index_mem(struct index_state *istate,
}
if (write_object)
- ret = write_object_file(buf, size, type_name(type), oid);
+ ret = write_object_file(buf, size, type, oid);
else
- ret = hash_object_file(the_hash_algo, buf, size,
- type_name(type), oid);
+ hash_object_file(the_hash_algo, buf, size, type, oid);
if (re_allocated)
free(buf);
return ret;
@@ -2160,7 +2206,7 @@ static int index_stream_convert_blob(struct index_state *istate,
const char *path,
unsigned flags)
{
- int ret;
+ int ret = 0;
const int write_object = flags & HASH_WRITE_OBJECT;
struct strbuf sbuf = STRBUF_INIT;
@@ -2171,11 +2217,11 @@ static int index_stream_convert_blob(struct index_state *istate,
get_conv_flags(flags));
if (write_object)
- ret = write_object_file(sbuf.buf, sbuf.len, type_name(OBJ_BLOB),
+ ret = write_object_file(sbuf.buf, sbuf.len, OBJ_BLOB,
oid);
else
- ret = hash_object_file(the_hash_algo, sbuf.buf, sbuf.len,
- type_name(OBJ_BLOB), oid);
+ hash_object_file(the_hash_algo, sbuf.buf, sbuf.len, OBJ_BLOB,
+ oid);
strbuf_release(&sbuf);
return ret;
}
@@ -2294,8 +2340,8 @@ int index_path(struct index_state *istate, struct object_id *oid,
return error_errno("readlink(\"%s\")", path);
if (!(flags & HASH_WRITE_OBJECT))
hash_object_file(the_hash_algo, sb.buf, sb.len,
- blob_type, oid);
- else if (write_object_file(sb.buf, sb.len, blob_type, oid))
+ OBJ_BLOB, oid);
+ else if (write_object_file(sb.buf, sb.len, OBJ_BLOB, oid))
rc = error(_("%s: failed to insert into database"), path);
strbuf_release(&sb);
break;
@@ -2599,9 +2645,10 @@ int read_loose_object(const char *path,
git_inflate_end(&stream);
goto out;
}
- if (check_object_signature(the_repository, expected_oid,
+ hash_object_file_literally(the_repository->hash_algo,
*contents, *size,
- oi->type_name->buf, real_oid))
+ oi->type_name->buf, real_oid);
+ if (!oideq(expected_oid, real_oid))
goto out;
}
diff --git a/object-name.c b/object-name.c
index fdff4601b2..4d2746574c 100644
--- a/object-name.c
+++ b/object-name.c
@@ -15,6 +15,7 @@
#include "submodule.h"
#include "midx.h"
#include "commit-reach.h"
+#include "date.h"
static int get_oid_oneline(struct repository *r, const char *, struct object_id *, struct commit_list *);
@@ -351,35 +352,118 @@ static int init_object_disambiguation(struct repository *r,
return 0;
}
+struct ambiguous_output {
+ const struct disambiguate_state *ds;
+ struct strbuf advice;
+ struct strbuf sb;
+};
+
static int show_ambiguous_object(const struct object_id *oid, void *data)
{
- const struct disambiguate_state *ds = data;
- struct strbuf desc = STRBUF_INIT;
+ struct ambiguous_output *state = data;
+ const struct disambiguate_state *ds = state->ds;
+ struct strbuf *advice = &state->advice;
+ struct strbuf *sb = &state->sb;
int type;
+ const char *hash;
if (ds->fn && !ds->fn(ds->repo, oid, ds->cb_data))
return 0;
+ hash = repo_find_unique_abbrev(ds->repo, oid, DEFAULT_ABBREV);
type = oid_object_info(ds->repo, oid, NULL);
+
+ if (type < 0) {
+ /*
+ * TRANSLATORS: This is a line of ambiguous object
+ * output shown when we cannot look up or parse the
+ * object in question. E.g. "deadbeef [bad object]".
+ */
+ strbuf_addf(sb, _("%s [bad object]"), hash);
+ goto out;
+ }
+
+ assert(type == OBJ_TREE || type == OBJ_COMMIT ||
+ type == OBJ_BLOB || type == OBJ_TAG);
+
if (type == OBJ_COMMIT) {
+ struct strbuf date = STRBUF_INIT;
+ struct strbuf msg = STRBUF_INIT;
struct commit *commit = lookup_commit(ds->repo, oid);
+
if (commit) {
struct pretty_print_context pp = {0};
pp.date_mode.type = DATE_SHORT;
- format_commit_message(commit, " %ad - %s", &desc, &pp);
+ format_commit_message(commit, "%ad", &date, &pp);
+ format_commit_message(commit, "%s", &msg, &pp);
}
+
+ /*
+ * TRANSLATORS: This is a line of ambiguous commit
+ * object output. E.g.:
+ *
+ * "deadbeef commit 2021-01-01 - Some Commit Message"
+ */
+ strbuf_addf(sb, _("%s commit %s - %s"), hash, date.buf,
+ msg.buf);
+
+ strbuf_release(&date);
+ strbuf_release(&msg);
} else if (type == OBJ_TAG) {
struct tag *tag = lookup_tag(ds->repo, oid);
- if (!parse_tag(tag) && tag->tag)
- strbuf_addf(&desc, " %s", tag->tag);
+
+ if (!parse_tag(tag) && tag->tag) {
+ /*
+ * TRANSLATORS: This is a line of ambiguous
+ * tag object output. E.g.:
+ *
+ * "deadbeef tag 2022-01-01 - Some Tag Message"
+ *
+ * The second argument is the YYYY-MM-DD found
+ * in the tag.
+ *
+ * The third argument is the "tag" string
+ * from object.c.
+ */
+ strbuf_addf(sb, _("%s tag %s - %s"), hash,
+ show_date(tag->date, 0, DATE_MODE(SHORT)),
+ tag->tag);
+ } else {
+ /*
+ * TRANSLATORS: This is a line of ambiguous
+ * tag object output where we couldn't parse
+ * the tag itself. E.g.:
+ *
+ * "deadbeef [bad tag, could not parse it]"
+ */
+ strbuf_addf(sb, _("%s [bad tag, could not parse it]"),
+ hash);
+ }
+ } else if (type == OBJ_TREE) {
+ /*
+ * TRANSLATORS: This is a line of ambiguous <type>
+ * object output. E.g. "deadbeef tree".
+ */
+ strbuf_addf(sb, _("%s tree"), hash);
+ } else if (type == OBJ_BLOB) {
+ /*
+ * TRANSLATORS: This is a line of ambiguous <type>
+ * object output. E.g. "deadbeef blob".
+ */
+ strbuf_addf(sb, _("%s blob"), hash);
}
- advise(" %s %s%s",
- repo_find_unique_abbrev(ds->repo, oid, DEFAULT_ABBREV),
- type_name(type) ? type_name(type) : "unknown type",
- desc.buf);
- strbuf_release(&desc);
+out:
+ /*
+ * TRANSLATORS: This is line item of ambiguous object output
+ * from describe_ambiguous_object() above. For RTL languages
+ * you'll probably want to swap the "%s" and leading " " space
+ * around.
+ */
+ strbuf_addf(advice, _(" %s\n"), sb->buf);
+
+ strbuf_reset(sb);
return 0;
}
@@ -476,6 +560,11 @@ static enum get_oid_result get_short_oid(struct repository *r,
if (!quietly && (status == SHORT_NAME_AMBIGUOUS)) {
struct oid_array collect = OID_ARRAY_INIT;
+ struct ambiguous_output out = {
+ .ds = &ds,
+ .sb = STRBUF_INIT,
+ .advice = STRBUF_INIT,
+ };
error(_("short object ID %s is ambiguous"), ds.hex_pfx);
@@ -488,13 +577,22 @@ static enum get_oid_result get_short_oid(struct repository *r,
if (!ds.ambiguous)
ds.fn = NULL;
- advise(_("The candidates are:"));
repo_for_each_abbrev(r, ds.hex_pfx, collect_ambiguous, &collect);
sort_ambiguous_oid_array(r, &collect);
- if (oid_array_for_each(&collect, show_ambiguous_object, &ds))
+ if (oid_array_for_each(&collect, show_ambiguous_object, &out))
BUG("show_ambiguous_object shouldn't return non-zero");
+
+ /*
+ * TRANSLATORS: The argument is the list of ambiguous
+ * objects composed in show_ambiguous_object(). See
+ * its "TRANSLATORS" comments for details.
+ */
+ advise(_("The candidates are:\n%s"), out.advice.buf);
+
oid_array_clear(&collect);
+ strbuf_release(&out.advice);
+ strbuf_release(&out.sb);
}
return status;
@@ -1734,7 +1832,8 @@ static void diagnose_invalid_index_path(struct repository *r,
pos = -pos - 1;
if (pos < istate->cache_nr) {
ce = istate->cache[pos];
- if (ce_namelen(ce) == namelen &&
+ if (!S_ISSPARSEDIR(ce->ce_mode) &&
+ ce_namelen(ce) == namelen &&
!memcmp(ce->name, filename, namelen))
die(_("path '%s' is in the index, but not at stage %d\n"
"hint: Did you mean ':%d:%s'?"),
@@ -1750,7 +1849,8 @@ static void diagnose_invalid_index_path(struct repository *r,
pos = -pos - 1;
if (pos < istate->cache_nr) {
ce = istate->cache[pos];
- if (ce_namelen(ce) == fullname.len &&
+ if (!S_ISSPARSEDIR(ce->ce_mode) &&
+ ce_namelen(ce) == fullname.len &&
!memcmp(ce->name, fullname.buf, fullname.len))
die(_("path '%s' is in the index, but not '%s'\n"
"hint: Did you mean ':%d:%s' aka ':%d:./%s'?"),
@@ -1783,6 +1883,20 @@ static char *resolve_relative_path(struct repository *r, const char *rel)
rel);
}
+static int reject_tree_in_index(struct repository *repo,
+ int only_to_die,
+ const struct cache_entry *ce,
+ int stage,
+ const char *prefix,
+ const char *cp)
+{
+ if (!S_ISSPARSEDIR(ce->ce_mode))
+ return 0;
+ if (only_to_die)
+ diagnose_invalid_index_path(repo, stage, prefix, cp);
+ return -1;
+}
+
static enum get_oid_result get_oid_with_context_1(struct repository *repo,
const char *name,
unsigned flags,
@@ -1795,13 +1909,13 @@ static enum get_oid_result get_oid_with_context_1(struct repository *repo,
const char *cp;
int only_to_die = flags & GET_OID_ONLY_TO_DIE;
- if (only_to_die)
- flags |= GET_OID_QUIETLY;
-
memset(oc, 0, sizeof(*oc));
oc->mode = S_IFINVALID;
strbuf_init(&oc->symlink_path, 0);
ret = get_oid_1(repo, name, namelen, oid, flags);
+ if (!ret && flags & GET_OID_REQUIRE_PATH)
+ die(_("<object>:<path> required, only <object> '%s' given"),
+ name);
if (!ret)
return ret;
/*
@@ -1857,9 +1971,12 @@ static enum get_oid_result get_oid_with_context_1(struct repository *repo,
memcmp(ce->name, cp, namelen))
break;
if (ce_stage(ce) == stage) {
+ free(new_path);
+ if (reject_tree_in_index(repo, only_to_die, ce,
+ stage, prefix, cp))
+ return -1;
oidcpy(oid, &ce->oid);
oc->mode = ce->ce_mode;
- free(new_path);
return 0;
}
pos++;
@@ -1932,7 +2049,7 @@ void maybe_die_on_misspelt_object_name(struct repository *r,
{
struct object_context oc;
struct object_id oid;
- get_oid_with_context_1(r, name, GET_OID_ONLY_TO_DIE,
+ get_oid_with_context_1(r, name, GET_OID_ONLY_TO_DIE | GET_OID_QUIETLY,
prefix, &oid, &oc);
}
diff --git a/object-store.h b/object-store.h
index 6f89482df0..53996018c1 100644
--- a/object-store.h
+++ b/object-store.h
@@ -245,22 +245,22 @@ static inline void *repo_read_object_file(struct repository *r,
/* Read and unpack an object file into memory, write memory to an object file */
int oid_object_info(struct repository *r, const struct object_id *, unsigned long *);
-int hash_object_file(const struct git_hash_algo *algo, const void *buf,
- unsigned long len, const char *type,
- struct object_id *oid);
+void hash_object_file(const struct git_hash_algo *algo, const void *buf,
+ unsigned long len, enum object_type type,
+ struct object_id *oid);
int write_object_file_flags(const void *buf, unsigned long len,
- const char *type, struct object_id *oid,
+ enum object_type type, struct object_id *oid,
unsigned flags);
static inline int write_object_file(const void *buf, unsigned long len,
- const char *type, struct object_id *oid)
+ enum object_type type, struct object_id *oid)
{
return write_object_file_flags(buf, len, type, oid, 0);
}
-int hash_object_file_literally(const void *buf, unsigned long len,
- const char *type, struct object_id *oid,
- unsigned flags);
+int write_object_file_literally(const void *buf, unsigned long len,
+ const char *type, struct object_id *oid,
+ unsigned flags);
/*
* Add an object file to the in-memory object store, without writing it
@@ -312,10 +312,6 @@ int has_object(struct repository *r, const struct object_id *oid,
* These functions can be removed once all callers have migrated to
* has_object() and/or oid_object_info_extended().
*/
-#ifndef NO_THE_REPOSITORY_COMPATIBILITY_MACROS
-#define has_sha1_file_with_flags(sha1, flags) repo_has_sha1_file_with_flags(the_repository, sha1, flags)
-#define has_sha1_file(sha1) repo_has_sha1_file(the_repository, sha1)
-#endif
int repo_has_object_file(struct repository *r, const struct object_id *oid);
int repo_has_object_file_with_flags(struct repository *r,
const struct object_id *oid, int flags);
@@ -331,6 +327,14 @@ int repo_has_object_file_with_flags(struct repository *r,
*/
int has_loose_object_nonlocal(const struct object_id *);
+/**
+ * format_object_header() is a thin wrapper around s xsnprintf() that
+ * writes the initial "<type> <obj-len>" part of the loose object
+ * header. It returns the size that snprintf() returns + 1.
+ */
+int format_object_header(char *str, size_t size, enum object_type type,
+ size_t objsize);
+
void assert_oid_type(const struct object_id *oid, enum object_type expect);
/*
diff --git a/object.c b/object.c
index c37501fc12..588b8156f1 100644
--- a/object.c
+++ b/object.c
@@ -279,7 +279,7 @@ struct object *parse_object(struct repository *r, const struct object_id *oid)
if ((obj && obj->type == OBJ_BLOB && repo_has_object_file(r, oid)) ||
(!obj && repo_has_object_file(r, oid) &&
oid_object_info(r, oid, NULL) == OBJ_BLOB)) {
- if (check_object_signature(r, repl, NULL, 0, NULL, NULL) < 0) {
+ if (stream_object_signature(r, repl) < 0) {
error(_("hash mismatch %s"), oid_to_hex(oid));
return NULL;
}
@@ -289,8 +289,7 @@ struct object *parse_object(struct repository *r, const struct object_id *oid)
buffer = repo_read_object_file(r, oid, &type, &size);
if (buffer) {
- if (check_object_signature(r, repl, buffer, size,
- type_name(type), NULL) < 0) {
+ if (check_object_signature(r, repl, buffer, size, type) < 0) {
free(buffer);
error(_("hash mismatch %s"), oid_to_hex(repl));
return NULL;
diff --git a/object.h b/object.h
index cb556ab775..a2219464c2 100644
--- a/object.h
+++ b/object.h
@@ -75,7 +75,7 @@ struct object_array {
* builtin/fsck.c: 0--3
* builtin/gc.c: 0
* builtin/index-pack.c: 2021
- * builtin/reflog.c: 10--12
+ * reflog.c: 10--12
* builtin/show-branch.c: 0-------------------------------------------26
* builtin/unpack-objects.c: 2021
*/
diff --git a/pack-bitmap-write.c b/pack-bitmap-write.c
index 9c55c1531e..cf681547f2 100644
--- a/pack-bitmap-write.c
+++ b/pack-bitmap-write.c
@@ -575,15 +575,15 @@ void bitmap_writer_select_commits(struct commit **indexed_commits,
QSORT(indexed_commits, indexed_commits_nr, date_compare);
- if (writer.show_progress)
- writer.progress = start_progress("Selecting bitmap commits", 0);
-
if (indexed_commits_nr < 100) {
for (i = 0; i < indexed_commits_nr; ++i)
push_bitmapped_commit(indexed_commits[i]);
return;
}
+ if (writer.show_progress)
+ writer.progress = start_progress("Selecting bitmap commits", 0);
+
for (;;) {
struct commit *chosen = NULL;
@@ -719,7 +719,8 @@ void bitmap_writer_finish(struct pack_idx_entry **index,
if (options & BITMAP_OPT_HASH_CACHE)
write_hash_cache(f, index, index_nr);
- finalize_hashfile(f, NULL, CSUM_HASH_IN_STREAM | CSUM_FSYNC | CSUM_CLOSE);
+ finalize_hashfile(f, NULL, FSYNC_COMPONENT_PACK_METADATA,
+ CSUM_HASH_IN_STREAM | CSUM_FSYNC | CSUM_CLOSE);
if (adjust_shared_perm(tmp_file.buf))
die_errno("unable to make temporary bitmap file readable");
diff --git a/pack-bitmap.c b/pack-bitmap.c
index 1a99984d5a..6a7cdca231 100644
--- a/pack-bitmap.c
+++ b/pack-bitmap.c
@@ -358,7 +358,9 @@ static int open_midx_bitmap_1(struct bitmap_index *bitmap_git,
cleanup:
munmap(bitmap_git->map, bitmap_git->map_size);
bitmap_git->map_size = 0;
+ bitmap_git->map_pos = 0;
bitmap_git->map = NULL;
+ bitmap_git->midx = NULL;
return -1;
}
@@ -405,6 +407,8 @@ static int open_pack_bitmap_1(struct bitmap_index *bitmap_git, struct packed_git
munmap(bitmap_git->map, bitmap_git->map_size);
bitmap_git->map = NULL;
bitmap_git->map_size = 0;
+ bitmap_git->map_pos = 0;
+ bitmap_git->pack = NULL;
return -1;
}
@@ -735,8 +739,7 @@ static int add_commit_to_bitmap(struct bitmap_index *bitmap_git,
static struct bitmap *find_objects(struct bitmap_index *bitmap_git,
struct rev_info *revs,
struct object_list *roots,
- struct bitmap *seen,
- struct list_objects_filter_options *filter)
+ struct bitmap *seen)
{
struct bitmap *base = NULL;
int needs_walk = 0;
@@ -819,9 +822,9 @@ static struct bitmap *find_objects(struct bitmap_index *bitmap_git,
show_data.bitmap_git = bitmap_git;
show_data.base = base;
- traverse_commit_list_filtered(filter, revs,
- show_commit, show_object,
- &show_data, NULL);
+ traverse_commit_list(revs,
+ show_commit, show_object,
+ &show_data);
revs->include_check = NULL;
revs->include_check_obj = NULL;
@@ -1215,7 +1218,6 @@ static int can_filter_bitmap(struct list_objects_filter_options *filter)
}
struct bitmap_index *prepare_bitmap_walk(struct rev_info *revs,
- struct list_objects_filter_options *filter,
int filter_provided_objects)
{
unsigned int i;
@@ -1236,7 +1238,7 @@ struct bitmap_index *prepare_bitmap_walk(struct rev_info *revs,
if (revs->prune)
return NULL;
- if (!can_filter_bitmap(filter))
+ if (!can_filter_bitmap(&revs->filter))
return NULL;
/* try to open a bitmapped pack, but don't parse it yet
@@ -1293,8 +1295,7 @@ struct bitmap_index *prepare_bitmap_walk(struct rev_info *revs,
if (haves) {
revs->ignore_missing_links = 1;
- haves_bitmap = find_objects(bitmap_git, revs, haves, NULL,
- filter);
+ haves_bitmap = find_objects(bitmap_git, revs, haves, NULL);
reset_revision_walk();
revs->ignore_missing_links = 0;
@@ -1302,8 +1303,7 @@ struct bitmap_index *prepare_bitmap_walk(struct rev_info *revs,
BUG("failed to perform bitmap walk");
}
- wants_bitmap = find_objects(bitmap_git, revs, wants, haves_bitmap,
- filter);
+ wants_bitmap = find_objects(bitmap_git, revs, wants, haves_bitmap);
if (!wants_bitmap)
BUG("failed to perform bitmap walk");
@@ -1311,8 +1311,10 @@ struct bitmap_index *prepare_bitmap_walk(struct rev_info *revs,
if (haves_bitmap)
bitmap_and_not(wants_bitmap, haves_bitmap);
- filter_bitmap(bitmap_git, (filter && filter_provided_objects) ? NULL : wants,
- wants_bitmap, filter);
+ filter_bitmap(bitmap_git,
+ (revs->filter.choice && filter_provided_objects) ? NULL : wants,
+ wants_bitmap,
+ &revs->filter);
bitmap_git->result = wants_bitmap;
bitmap_git->haves = haves_bitmap;
diff --git a/pack-bitmap.h b/pack-bitmap.h
index 19a63fa1ab..3d3ddd7734 100644
--- a/pack-bitmap.h
+++ b/pack-bitmap.h
@@ -10,7 +10,6 @@
struct commit;
struct repository;
struct rev_info;
-struct list_objects_filter_options;
static const char BITMAP_IDX_SIGNATURE[] = {'B', 'I', 'T', 'M'};
@@ -54,7 +53,6 @@ void test_bitmap_walk(struct rev_info *revs);
int test_bitmap_commits(struct repository *r);
int test_bitmap_hashes(struct repository *r);
struct bitmap_index *prepare_bitmap_walk(struct rev_info *revs,
- struct list_objects_filter_options *filter,
int filter_provided_objects);
uint32_t midx_preferred_pack(struct bitmap_index *bitmap_git);
int reuse_partial_packfile_from_bitmap(struct bitmap_index *,
diff --git a/pack-check.c b/pack-check.c
index 3f418e3a6a..bfb593ba72 100644
--- a/pack-check.c
+++ b/pack-check.c
@@ -127,7 +127,7 @@ static int verify_packfile(struct repository *r,
if (type == OBJ_BLOB && big_file_threshold <= size) {
/*
- * Let check_object_signature() check it with
+ * Let stream_object_signature() check it with
* the streaming interface; no point slurping
* the data in-core only to discard.
*/
@@ -142,8 +142,11 @@ static int verify_packfile(struct repository *r,
err = error("cannot unpack %s from %s at offset %"PRIuMAX"",
oid_to_hex(&oid), p->pack_name,
(uintmax_t)entries[i].offset);
- else if (check_object_signature(r, &oid, data, size,
- type_name(type), NULL))
+ else if (data && check_object_signature(r, &oid, data, size,
+ type) < 0)
+ err = error("packed %s from %s is corrupt",
+ oid_to_hex(&oid), p->pack_name);
+ else if (!data && stream_object_signature(r, &oid) < 0)
err = error("packed %s from %s is corrupt",
oid_to_hex(&oid), p->pack_name);
else if (fn) {
diff --git a/pack-revindex.c b/pack-revindex.c
index 70d0fbafcb..08dc160167 100644
--- a/pack-revindex.c
+++ b/pack-revindex.c
@@ -298,9 +298,29 @@ int load_midx_revindex(struct multi_pack_index *m)
{
struct strbuf revindex_name = STRBUF_INIT;
int ret;
+
if (m->revindex_data)
return 0;
+ if (m->chunk_revindex) {
+ /*
+ * If the MIDX `m` has a `RIDX` chunk, then use its contents for
+ * the reverse index instead of trying to load a separate `.rev`
+ * file.
+ *
+ * Note that we do *not* set `m->revindex_map` here, since we do
+ * not want to accidentally call munmap() in the middle of the
+ * MIDX.
+ */
+ trace2_data_string("load_midx_revindex", the_repository,
+ "source", "midx");
+ m->revindex_data = (const uint32_t *)m->chunk_revindex;
+ return 0;
+ }
+
+ trace2_data_string("load_midx_revindex", the_repository,
+ "source", "rev");
+
get_midx_rev_filename(&revindex_name, m);
ret = load_revindex_from_disk(revindex_name.buf,
diff --git a/pack-write.c b/pack-write.c
index a5846f3a34..51812cb129 100644
--- a/pack-write.c
+++ b/pack-write.c
@@ -159,9 +159,9 @@ const char *write_idx_file(const char *index_name, struct pack_idx_entry **objec
}
hashwrite(f, sha1, the_hash_algo->rawsz);
- finalize_hashfile(f, NULL, CSUM_HASH_IN_STREAM | CSUM_CLOSE |
- ((opts->flags & WRITE_IDX_VERIFY)
- ? 0 : CSUM_FSYNC));
+ finalize_hashfile(f, NULL, FSYNC_COMPONENT_PACK_METADATA,
+ CSUM_HASH_IN_STREAM | CSUM_CLOSE |
+ ((opts->flags & WRITE_IDX_VERIFY) ? 0 : CSUM_FSYNC));
return index_name;
}
@@ -281,8 +281,9 @@ const char *write_rev_file_order(const char *rev_name,
if (rev_name && adjust_shared_perm(rev_name) < 0)
die(_("failed to make %s readable"), rev_name);
- finalize_hashfile(f, NULL, CSUM_HASH_IN_STREAM | CSUM_CLOSE |
- ((flags & WRITE_IDX_VERIFY) ? 0 : CSUM_FSYNC));
+ finalize_hashfile(f, NULL, FSYNC_COMPONENT_PACK_METADATA,
+ CSUM_HASH_IN_STREAM | CSUM_CLOSE |
+ ((flags & WRITE_IDX_VERIFY) ? 0 : CSUM_FSYNC));
return rev_name;
}
@@ -390,7 +391,7 @@ void fixup_pack_header_footer(int pack_fd,
the_hash_algo->final_fn(partial_pack_hash, &old_hash_ctx);
the_hash_algo->final_fn(new_pack_hash, &new_hash_ctx);
write_or_die(pack_fd, new_pack_hash, the_hash_algo->rawsz);
- fsync_or_die(pack_fd, pack_name);
+ fsync_component_or_die(FSYNC_COMPONENT_PACK, pack_fd, pack_name);
}
char *index_pack_lockfile(int ip_out, int *is_well_formed)
diff --git a/parallel-checkout.c b/parallel-checkout.c
index 8dd7e7bad4..31a3d0ee1b 100644
--- a/parallel-checkout.c
+++ b/parallel-checkout.c
@@ -39,8 +39,8 @@ void get_parallel_checkout_configs(int *num_workers, int *threshold)
if (env_workers && *env_workers) {
if (strtol_i(env_workers, 10, num_workers)) {
- die("invalid value for GIT_TEST_CHECKOUT_WORKERS: '%s'",
- env_workers);
+ die(_("invalid value for '%s': '%s'"),
+ "GIT_TEST_CHECKOUT_WORKERS", env_workers);
}
if (*num_workers < 1)
*num_workers = online_cpus();
diff --git a/parse-options.c b/parse-options.c
index a8283037be..6e57744fd2 100644
--- a/parse-options.c
+++ b/parse-options.c
@@ -1079,3 +1079,50 @@ void NORETURN usage_msg_opt(const char *msg,
die_message("%s\n", msg); /* The extra \n is intentional */
usage_with_options(usagestr, options);
}
+
+void NORETURN usage_msg_optf(const char * const fmt,
+ const char * const *usagestr,
+ const struct option *options, ...)
+{
+ struct strbuf msg = STRBUF_INIT;
+ va_list ap;
+ va_start(ap, options);
+ strbuf_vaddf(&msg, fmt, ap);
+ va_end(ap);
+
+ usage_msg_opt(msg.buf, usagestr, options);
+}
+
+void die_for_incompatible_opt4(int opt1, const char *opt1_name,
+ int opt2, const char *opt2_name,
+ int opt3, const char *opt3_name,
+ int opt4, const char *opt4_name)
+{
+ int count = 0;
+ const char *options[4];
+
+ if (opt1)
+ options[count++] = opt1_name;
+ if (opt2)
+ options[count++] = opt2_name;
+ if (opt3)
+ options[count++] = opt3_name;
+ if (opt4)
+ options[count++] = opt4_name;
+ switch (count) {
+ case 4:
+ die(_("options '%s', '%s', '%s', and '%s' cannot be used together"),
+ opt1_name, opt2_name, opt3_name, opt4_name);
+ break;
+ case 3:
+ die(_("options '%s', '%s', and '%s' cannot be used together"),
+ options[0], options[1], options[2]);
+ break;
+ case 2:
+ die(_("options '%s' and '%s' cannot be used together"),
+ options[0], options[1]);
+ break;
+ default:
+ break;
+ }
+}
diff --git a/parse-options.h b/parse-options.h
index e22846d3b7..685fccac13 100644
--- a/parse-options.h
+++ b/parse-options.h
@@ -85,6 +85,11 @@ typedef enum parse_opt_result parse_opt_ll_cb(struct parse_opt_ctx_t *ctx,
* token to explain the kind of argument this option wants. Does not
* begin in capital letter, and does not end with a full stop.
* Should be wrapped by N_() for translation.
+ * Is automatically enclosed in brackets when printed, unless it
+ * contains any of the following characters: ()<>[]|
+ * E.g. "name" is shown as "<name>" to indicate that a name value
+ * needs to be supplied, not the literal string "name", but
+ * "<start>,<end>" and "(this|that)" are printed verbatim.
*
* `help`::
* the short help associated to what the option does.
@@ -225,6 +230,32 @@ NORETURN void usage_msg_opt(const char *msg,
const char * const *usagestr,
const struct option *options);
+/**
+ * usage_msg_optf() is like usage_msg_opt() except that the first
+ * argument is a format string, and optional format arguments follow
+ * after the 3rd option.
+ */
+__attribute__((format (printf,1,4)))
+void NORETURN usage_msg_optf(const char *fmt,
+ const char * const *usagestr,
+ const struct option *options, ...);
+
+void die_for_incompatible_opt4(int opt1, const char *opt1_name,
+ int opt2, const char *opt2_name,
+ int opt3, const char *opt3_name,
+ int opt4, const char *opt4_name);
+
+
+static inline void die_for_incompatible_opt3(int opt1, const char *opt1_name,
+ int opt2, const char *opt2_name,
+ int opt3, const char *opt3_name)
+{
+ die_for_incompatible_opt4(opt1, opt1_name,
+ opt2, opt2_name,
+ opt3, opt3_name,
+ 0, "");
+}
+
/*
* Use these assertions for callbacks that expect to be called with NONEG and
* NOARG respectively, and do not otherwise handle the "unset" and "arg"
diff --git a/path.h b/path.h
index b68691a86b..0a59c85a62 100644
--- a/path.h
+++ b/path.h
@@ -169,20 +169,6 @@ void report_linked_checkout_garbage(void);
return r->cached_paths.var; \
}
-struct path_cache {
- const char *squash_msg;
- const char *merge_msg;
- const char *merge_rr;
- const char *merge_mode;
- const char *merge_head;
- const char *merge_autostash;
- const char *auto_merge;
- const char *fetch_head;
- const char *shallow;
-};
-
-#define PATH_CACHE_INIT { 0 }
-
const char *git_path_squash_msg(struct repository *r);
const char *git_path_merge_msg(struct repository *r);
const char *git_path_merge_rr(struct repository *r);
diff --git a/perl/Git.pm b/perl/Git.pm
index 090a7df63f..080cdc2a21 100644
--- a/perl/Git.pm
+++ b/perl/Git.pm
@@ -1686,6 +1686,16 @@ sub _setup_git_cmd_env {
# by searching for it at proper places.
sub _execv_git_cmd { exec('git', @_); }
+sub _is_sig {
+ my ($v, $n) = @_;
+
+ # We are avoiding a "use POSIX qw(SIGPIPE SIGABRT)" in the hot
+ # Git.pm codepath.
+ require POSIX;
+ no strict 'refs';
+ $v == *{"POSIX::$n"}->();
+}
+
# Close pipe to a subprocess.
sub _cmd_close {
my $ctx = shift @_;
@@ -1698,9 +1708,16 @@ sub _cmd_close {
} elsif ($? >> 8) {
# The caller should pepper this.
throw Git::Error::Command($ctx, $? >> 8);
+ } elsif ($? & 127 && _is_sig($? & 127, "SIGPIPE")) {
+ # we might e.g. closed a live stream; the command
+ # dying of SIGPIPE would drive us here.
+ } elsif ($? & 127 && _is_sig($? & 127, "SIGABRT")) {
+ die sprintf('BUG?: got SIGABRT ($? = %d, $? & 127 = %d) when closing pipe',
+ $?, $? & 127);
+ } elsif ($? & 127) {
+ die sprintf('got signal ($? = %d, $? & 127 = %d) when closing pipe',
+ $?, $? & 127);
}
- # else we might e.g. closed a live stream; the command
- # dying of SIGPIPE would drive us here.
}
}
diff --git a/po/TEAMS b/po/TEAMS
index 3dd51fc159..2e407267c8 100644
--- a/po/TEAMS
+++ b/po/TEAMS
@@ -51,8 +51,8 @@ Repository: https://github.com/Arusekk/git-po
Leader: Arusekk <arek_koz@o2.pl>
Language: pt_PT (Portuguese - Portugal)
-Repository: https://github.com/git-l10n-pt-PT/git-po/
-Leader: Daniel Santos <daniel@brilhante.top>
+Repository: https://codeberg.org/git-pt/Git-PO-pt_PT/
+Leader: Daniel Santos <dacs.git@brilhante.top>
Language: ru (Russian)
Repository: https://github.com/DJm00n/git-po-ru/
@@ -73,7 +73,7 @@ Leader: Trần Ngá»c Quân <vnwildman AT gmail.com>
Members: Nguyá»…n Thái Ngá»c Duy <pclouds AT gmail.com>
Language: zh_CN (Simplified Chinese)
-Repository: https://github.com/fangyi-zhou/git/
+Repository: https://github.com/fangyi-zhou/git-po/
Leader: Fangyi Zhou <me AT fangyi.io>
Members: Ray Chen <oldsharp AT gmail.com>
ä¾äº‘ <lilydjwg AT gmail.com>
diff --git a/po/ca.po b/po/ca.po
index afcffad474..524330a561 100644
--- a/po/ca.po
+++ b/po/ca.po
@@ -24,6 +24,7 @@
# hook | lligam
# hunk | tros
# not supported | no està admès
+# pull | baixar
# push | pujar
# repository | repositori
# setting | paràmetre
@@ -56,12 +57,15 @@
# squash | «squash»
# trailer | «trailer»
# unstage | «unstage»
+#
+# Vegeu també https://git.github.io/htmldocs/gitglossary.html
+#
msgid ""
msgstr ""
"Project-Id-Version: Git\n"
"Report-Msgid-Bugs-To: Git Mailing List <git@vger.kernel.org>\n"
-"POT-Creation-Date: 2022-01-17 08:31+0800\n"
-"PO-Revision-Date: 2022-01-23 19:00-0600\n"
+"POT-Creation-Date: 2022-04-06 14:40+0800\n"
+"PO-Revision-Date: 2022-04-13 19:00-0600\n"
"Last-Translator: Jordi Mas i Hernàndez <jmas@softcatala.org>\n"
"Language-Team: Catalan\n"
"Language: ca\n"
@@ -71,213 +75,212 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 2.3.1\n"
-#: add-interactive.c:380
+#: add-interactive.c:382
#, c-format
msgid "Huh (%s)?"
msgstr "Perdó (%s)?"
-#: add-interactive.c:533 add-interactive.c:834 reset.c:65 sequencer.c:3509
-#: sequencer.c:3974 sequencer.c:4136 builtin/rebase.c:1233
-#: builtin/rebase.c:1642
+#: add-interactive.c:535 add-interactive.c:836 reset.c:136 sequencer.c:3505
+#: sequencer.c:3970 sequencer.c:4127 builtin/rebase.c:1261
+#: builtin/rebase.c:1671
msgid "could not read index"
msgstr "no s'ha pogut llegir l'índex"
-#: add-interactive.c:588 git-add--interactive.perl:269
+#: add-interactive.c:590 git-add--interactive.perl:269
#: git-add--interactive.perl:294
msgid "binary"
msgstr "binari"
-#: add-interactive.c:646 git-add--interactive.perl:278
+#: add-interactive.c:648 git-add--interactive.perl:278
#: git-add--interactive.perl:332
msgid "nothing"
msgstr "res"
-#: add-interactive.c:647 git-add--interactive.perl:314
+#: add-interactive.c:649 git-add--interactive.perl:314
#: git-add--interactive.perl:329
msgid "unchanged"
msgstr "sense canvis"
-#: add-interactive.c:684 git-add--interactive.perl:641
+#: add-interactive.c:686 git-add--interactive.perl:641
msgid "Update"
msgstr "Actualitza"
-#: add-interactive.c:701 add-interactive.c:889
+#: add-interactive.c:703 add-interactive.c:891
#, c-format
msgid "could not stage '%s'"
msgstr "no s'ha pogut fer «stage» «%s»"
-#: add-interactive.c:707 add-interactive.c:896 reset.c:89 sequencer.c:3713
+#: add-interactive.c:709 add-interactive.c:898 reset.c:160 sequencer.c:3709
msgid "could not write index"
msgstr "no s'ha pogut escriure l'índex"
-#: add-interactive.c:710 git-add--interactive.perl:626
+#: add-interactive.c:712 git-add--interactive.perl:626
#, c-format, perl-format
msgid "updated %d path\n"
msgid_plural "updated %d paths\n"
msgstr[0] "actualitzat %d camí\n"
msgstr[1] "actualitzats %d camins\n"
-#: add-interactive.c:728 git-add--interactive.perl:676
+#: add-interactive.c:730 git-add--interactive.perl:676
#, c-format, perl-format
msgid "note: %s is untracked now.\n"
msgstr "nota: %s està ara sense seguiment.\n"
-#: add-interactive.c:733 apply.c:4151 builtin/checkout.c:306
+#: add-interactive.c:735 apply.c:4133 builtin/checkout.c:311
#: builtin/reset.c:167
#, c-format
msgid "make_cache_entry failed for path '%s'"
msgstr "make_cache_entry ha fallat per al camí «%s»"
-#: add-interactive.c:763 git-add--interactive.perl:653
+#: add-interactive.c:765 git-add--interactive.perl:653
msgid "Revert"
msgstr "Reverteix"
-#: add-interactive.c:779
+#: add-interactive.c:781
msgid "Could not parse HEAD^{tree}"
msgstr "No s'ha pogut analitzar HEAD^{tree}"
-#: add-interactive.c:817 git-add--interactive.perl:629
+#: add-interactive.c:819 git-add--interactive.perl:629
#, c-format, perl-format
msgid "reverted %d path\n"
msgid_plural "reverted %d paths\n"
msgstr[0] "revertit %d camí\n"
msgstr[1] "revertits %d camins\n"
-#: add-interactive.c:868 git-add--interactive.perl:693
+#: add-interactive.c:870 git-add--interactive.perl:693
#, c-format
msgid "No untracked files.\n"
msgstr "Sense fitxers no seguits.\n"
-#: add-interactive.c:872 git-add--interactive.perl:687
+#: add-interactive.c:874 git-add--interactive.perl:687
msgid "Add untracked"
msgstr "Afegeix sense seguiment"
-#: add-interactive.c:899 git-add--interactive.perl:623
+#: add-interactive.c:901 git-add--interactive.perl:623
#, c-format, perl-format
msgid "added %d path\n"
msgid_plural "added %d paths\n"
msgstr[0] "afegit %d camí\n"
msgstr[1] "afegits %d camins\n"
-#: add-interactive.c:929
+#: add-interactive.c:931
#, c-format
msgid "ignoring unmerged: %s"
msgstr "s'està ignorant allò no fusionat: %s"
-#: add-interactive.c:941 add-patch.c:1752 git-add--interactive.perl:1371
+#: add-interactive.c:943 add-patch.c:1758 git-add--interactive.perl:1371
#, c-format
msgid "Only binary files changed.\n"
-msgstr "Només s'han canviat els fitxers binaris.\n"
+msgstr "Només han canviat fitxers binaris.\n"
-#: add-interactive.c:943 add-patch.c:1750 git-add--interactive.perl:1373
+#: add-interactive.c:945 add-patch.c:1756 git-add--interactive.perl:1373
#, c-format
msgid "No changes.\n"
msgstr "Sense canvis.\n"
-#: add-interactive.c:947 git-add--interactive.perl:1381
+#: add-interactive.c:949 git-add--interactive.perl:1381
msgid "Patch update"
msgstr "Actualització del pedaç"
-#: add-interactive.c:986 git-add--interactive.perl:1794
+#: add-interactive.c:988 git-add--interactive.perl:1794
msgid "Review diff"
msgstr "Reviseu les diferències"
-#: add-interactive.c:1014
+#: add-interactive.c:1016
msgid "show paths with changes"
msgstr "mostra els camins amb canvis"
-#: add-interactive.c:1016
+#: add-interactive.c:1018
msgid "add working tree state to the staged set of changes"
msgstr "afegeix l'estat de l'arbre de treball al conjunt de canvis «staged»"
-#: add-interactive.c:1018
+#: add-interactive.c:1020
msgid "revert staged set of changes back to the HEAD version"
msgstr "reverteix el conjunt de canvis «staged» a la versió HEAD"
-#: add-interactive.c:1020
+#: add-interactive.c:1022
msgid "pick hunks and update selectively"
msgstr "selecciona els trossos i actualitza selectivament"
-#: add-interactive.c:1022
+#: add-interactive.c:1024
msgid "view diff between HEAD and index"
msgstr "visualitza les diferències entre HEAD i l'índex"
-#: add-interactive.c:1024
+#: add-interactive.c:1026
msgid "add contents of untracked files to the staged set of changes"
msgstr "afegeix contingut de fitxers no seguits al conjunt de canvis «staged»"
-#: add-interactive.c:1032 add-interactive.c:1081
+#: add-interactive.c:1034 add-interactive.c:1083
msgid "Prompt help:"
msgstr "Mostra ajuda:"
-#: add-interactive.c:1034
+#: add-interactive.c:1036
msgid "select a single item"
msgstr "seleccioneu un únic ítem"
-#: add-interactive.c:1036
+#: add-interactive.c:1038
msgid "select a range of items"
msgstr "seleccioneu un rang d'ítems"
-#: add-interactive.c:1038
+#: add-interactive.c:1040
msgid "select multiple ranges"
msgstr "seleccioneu rangs múltiples"
-#: add-interactive.c:1040 add-interactive.c:1085
+#: add-interactive.c:1042 add-interactive.c:1087
msgid "select item based on unique prefix"
msgstr "seleccioneu un ítem basant-se en un prefix únic"
-#: add-interactive.c:1042
+#: add-interactive.c:1044
msgid "unselect specified items"
msgstr "desselecciona els ítems especificats"
-#: add-interactive.c:1044
+#: add-interactive.c:1046
msgid "choose all items"
msgstr "trieu tots els ítems"
-#: add-interactive.c:1046
+#: add-interactive.c:1048
msgid "(empty) finish selecting"
msgstr "(buit) finalitza la selecció"
-#: add-interactive.c:1083
+#: add-interactive.c:1085
msgid "select a numbered item"
msgstr "seleccioneu un ítem numerat"
-#: add-interactive.c:1087
+#: add-interactive.c:1089
msgid "(empty) select nothing"
msgstr "(buit) no seleccionis res"
-#: add-interactive.c:1095 builtin/clean.c:839 git-add--interactive.perl:1898
+#: add-interactive.c:1097 builtin/clean.c:839 git-add--interactive.perl:1898
msgid "*** Commands ***"
msgstr "*** Ordres ***"
-#: add-interactive.c:1096 builtin/clean.c:840 git-add--interactive.perl:1895
+#: add-interactive.c:1098 builtin/clean.c:840 git-add--interactive.perl:1895
msgid "What now"
msgstr "I ara què"
-#: add-interactive.c:1148 git-add--interactive.perl:213
+#: add-interactive.c:1150 git-add--interactive.perl:213
msgid "staged"
msgstr "staged"
-#: add-interactive.c:1148 git-add--interactive.perl:213
+#: add-interactive.c:1150 git-add--interactive.perl:213
msgid "unstaged"
msgstr "unstaged"
-#: add-interactive.c:1148 apply.c:5020 apply.c:5023 builtin/am.c:2367
-#: builtin/am.c:2370 builtin/bugreport.c:107 builtin/clone.c:128
-#: builtin/fetch.c:153 builtin/merge.c:287 builtin/pull.c:194
-#: builtin/submodule--helper.c:404 builtin/submodule--helper.c:1858
-#: builtin/submodule--helper.c:1861 builtin/submodule--helper.c:2504
-#: builtin/submodule--helper.c:2507 builtin/submodule--helper.c:2574
-#: builtin/submodule--helper.c:2579 builtin/submodule--helper.c:2812
+#: add-interactive.c:1150 apply.c:5002 apply.c:5005 builtin/am.c:2370
+#: builtin/am.c:2373 builtin/bugreport.c:107 builtin/clone.c:132
+#: builtin/fetch.c:154 builtin/merge.c:287 builtin/pull.c:194
+#: builtin/submodule--helper.c:412 builtin/submodule--helper.c:1872
+#: builtin/submodule--helper.c:1875 builtin/submodule--helper.c:2709
+#: builtin/submodule--helper.c:2712 builtin/submodule--helper.c:2891
#: git-add--interactive.perl:213
msgid "path"
msgstr "camí"
-#: add-interactive.c:1155
+#: add-interactive.c:1157
msgid "could not refresh index"
msgstr "no s'ha pogut actualitzar l'índex"
-#: add-interactive.c:1169 builtin/clean.c:804 git-add--interactive.perl:1805
+#: add-interactive.c:1171 builtin/clean.c:804 git-add--interactive.perl:1805
#, c-format
msgid "Bye.\n"
msgstr "Adeu.\n"
@@ -433,8 +436,8 @@ msgid ""
"If the patch applies cleanly, the edited hunk will immediately be marked for"
" applying."
msgstr ""
-"Si el pedaç s'aplica netament, el tros editat es marcarà immediatament per a "
-"aplicar-lo."
+"Si el pedaç s'aplica netament, el tros editat es marcarà immediatament per a"
+" aplicar-lo."
#: add-patch.c:111
msgid ""
@@ -595,24 +598,24 @@ msgstr "no s'ha pogut analitzar la capçalera del tros «%.*s»"
msgid "could not parse colored hunk header '%.*s'"
msgstr "no s'ha pogut analitzar la capçalera del tros acolorida «%.*s»"
-#: add-patch.c:420
+#: add-patch.c:431
msgid "could not parse diff"
msgstr "no s'ha pogut analitzar el diff"
-#: add-patch.c:439
+#: add-patch.c:450
msgid "could not parse colored diff"
msgstr "no s'ha pogut analitzar el diff acolorit"
-#: add-patch.c:453
+#: add-patch.c:464
#, c-format
msgid "failed to run '%s'"
msgstr "no s'ha pogut executar «%s»"
-#: add-patch.c:612
+#: add-patch.c:618
msgid "mismatched output from interactive.diffFilter"
msgstr "sortida no coincident des d'interactive.diffFilter"
-#: add-patch.c:613
+#: add-patch.c:619
msgid ""
"Your filter must maintain a one-to-one correspondence\n"
"between its input and output lines."
@@ -620,7 +623,7 @@ msgstr ""
"El filtre ha de mantenir una correspondència d'un a un\n"
"entre les línies d'entrada i sortida."
-#: add-patch.c:791
+#: add-patch.c:797
#, c-format
msgid ""
"expected context line #%d in\n"
@@ -629,7 +632,7 @@ msgstr ""
"s'esperava la línia amb contingut #%d a\n"
"%.*s"
-#: add-patch.c:806
+#: add-patch.c:812
#, c-format
msgid ""
"hunks do not overlap:\n"
@@ -642,12 +645,12 @@ msgstr ""
"\tno acaben amb:\n"
"%.*s"
-#: add-patch.c:1082 git-add--interactive.perl:1115
+#: add-patch.c:1088 git-add--interactive.perl:1115
msgid "Manual hunk edit mode -- see bottom for a quick guide.\n"
msgstr ""
-"Mode d'edició de trossos manual - vegeu més avall per una guia ràpida.\n"
+"Mode d'edició de trossos manual - vegeu més avall per a una guia ràpida.\n"
-#: add-patch.c:1086
+#: add-patch.c:1092
#, c-format
msgid ""
"---\n"
@@ -661,7 +664,7 @@ msgstr ""
"Les línies que comencin per %c s'eliminaran.\n"
#. TRANSLATORS: 'it' refers to the patch mentioned in the previous messages.
-#: add-patch.c:1100 git-add--interactive.perl:1129
+#: add-patch.c:1106 git-add--interactive.perl:1129
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"
@@ -671,11 +674,11 @@ msgstr ""
"de nou. Si s'eliminen totes les línies del tros, llavors l'edició s'avorta\n"
"i el tros es deixa sense cap canvi.\n"
-#: add-patch.c:1133
+#: add-patch.c:1139
msgid "could not parse hunk header"
msgstr "no s'ha pogut analitzar la capçalera del tros"
-#: add-patch.c:1178
+#: add-patch.c:1184
msgid "'git apply --cached' failed"
msgstr "«git apply --cached» ha fallat"
@@ -690,7 +693,7 @@ msgstr "«git apply --cached» ha fallat"
#. 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:1247 git-add--interactive.perl:1244
+#: add-patch.c:1253 git-add--interactive.perl:1244
msgid ""
"Your edited hunk does not apply. Edit again (saying \"no\" discards!) [y/n]?"
" "
@@ -698,19 +701,19 @@ msgstr ""
"El tros editat no s'aplica. Editeu-lo de nou (si responeu «no» es "
"descartarà) [y/n]? "
-#: add-patch.c:1290
+#: add-patch.c:1296
msgid "The selected hunks do not apply to the index!"
msgstr "Els trossos seleccionats no s'apliquen a l'índex!"
-#: add-patch.c:1291 git-add--interactive.perl:1348
+#: add-patch.c:1297 git-add--interactive.perl:1348
msgid "Apply them to the worktree anyway? "
msgstr "Voleu aplicar-los igualment a l'arbre de treball? "
-#: add-patch.c:1298 git-add--interactive.perl:1351
+#: add-patch.c:1304 git-add--interactive.perl:1351
msgid "Nothing was applied.\n"
msgstr "No s'ha aplicat res.\n"
-#: add-patch.c:1355
+#: add-patch.c:1361
msgid ""
"j - leave this hunk undecided, see next undecided hunk\n"
"J - leave this hunk undecided, see next hunk\n"
@@ -732,73 +735,73 @@ msgstr ""
"e - edita manualment el tros actual\n"
"? - mostra l'ajuda\n"
-#: add-patch.c:1517 add-patch.c:1527
+#: add-patch.c:1523 add-patch.c:1533
msgid "No previous hunk"
msgstr "Sense tros previ"
-#: add-patch.c:1522 add-patch.c:1532
+#: add-patch.c:1528 add-patch.c:1538
msgid "No next hunk"
msgstr "No hi ha tros següent"
-#: add-patch.c:1538
+#: add-patch.c:1544
msgid "No other hunks to goto"
msgstr "No hi ha altres trossos on anar-hi"
-#: add-patch.c:1549 git-add--interactive.perl:1608
+#: add-patch.c:1555 git-add--interactive.perl:1608
msgid "go to which hunk (<ret> to see more)? "
msgstr "ves a quin tros (<ret> per a veure'n més)? "
-#: add-patch.c:1550 git-add--interactive.perl:1610
+#: add-patch.c:1556 git-add--interactive.perl:1610
msgid "go to which hunk? "
msgstr "ves a quin tros? "
-#: add-patch.c:1561
+#: add-patch.c:1567
#, c-format
msgid "Invalid number: '%s'"
msgstr "Número no vàlid: «%s»"
-#: add-patch.c:1566
+#: add-patch.c:1572
#, c-format
msgid "Sorry, only %d hunk available."
msgid_plural "Sorry, only %d hunks available."
msgstr[0] "Només %d tros disponible."
msgstr[1] "Només %d trossos disponibles."
-#: add-patch.c:1575
+#: add-patch.c:1581
msgid "No other hunks to search"
msgstr "No hi ha cap altre tros a cercar"
-#: add-patch.c:1581 git-add--interactive.perl:1663
+#: add-patch.c:1587 git-add--interactive.perl:1663
msgid "search for regex? "
msgstr "cerca per expressió regular? "
-#: add-patch.c:1596
+#: add-patch.c:1602
#, c-format
msgid "Malformed search regexp %s: %s"
msgstr "Expressió regular de cerca mal formada %s: %s"
-#: add-patch.c:1613
+#: add-patch.c:1619
msgid "No hunk matches the given pattern"
msgstr "No hi ha trossos que coincideixin amb el patró donat"
-#: add-patch.c:1620
+#: add-patch.c:1626
msgid "Sorry, cannot split this hunk"
msgstr "No es pot dividir aquest tros"
-#: add-patch.c:1624
+#: add-patch.c:1630
#, c-format
msgid "Split into %d hunks."
msgstr "Divideix en %d trossos."
-#: add-patch.c:1628
+#: add-patch.c:1634
msgid "Sorry, cannot edit this hunk"
msgstr "No es pot editar aquest tros"
-#: add-patch.c:1680
+#: add-patch.c:1686
msgid "'git apply' failed"
msgstr "«git apply» ha fallat"
-#: advice.c:78
+#: advice.c:81
#, c-format
msgid ""
"\n"
@@ -807,66 +810,66 @@ msgstr ""
"\n"
"Desactiva aquest missatge amb «git config advice.%s false»"
-#: advice.c:94
+#: advice.c:97
#, c-format
msgid "%shint: %.*s%s\n"
msgstr "%sconsell: %.*s%s\n"
-#: advice.c:178
+#: advice.c:181
msgid "Cherry-picking is not possible because you have unmerged files."
msgstr "Fer «cherry pick» no és possible perquè teniu fitxers sense fusionar."
-#: advice.c:180
+#: advice.c:183
msgid "Committing is not possible because you have unmerged files."
msgstr "Cometre no és possible perquè teniu fitxers sense fusionar."
-#: advice.c:182
+#: advice.c:185
msgid "Merging is not possible because you have unmerged files."
msgstr "Fusionar no és possible perquè teniu fitxers sense fusionar."
-#: advice.c:184
+#: advice.c:187
msgid "Pulling is not possible because you have unmerged files."
msgstr "Baixar no és possible perquè teniu fitxers sense fusionar."
-#: advice.c:186
+#: advice.c:189
msgid "Reverting is not possible because you have unmerged files."
msgstr "Revertir no és possible perquè teniu fitxers sense fusionar."
-#: advice.c:188
+#: advice.c:191
#, c-format
msgid "It is not possible to %s because you have unmerged files."
msgstr "No és possible %s perquè teniu fitxers sense fusionar."
-#: advice.c:196
+#: advice.c:199
msgid ""
"Fix them up in the work tree, and then use 'git add/rm <file>'\n"
"as appropriate to mark resolution and make a commit."
msgstr ""
"Arregleu-los en l'arbre de treball, i després useu\n"
-"«git add/rm <fitxer>» segons sigui apropiat per a marcar la\n"
-"resolució i feu una comissió."
+"«git add/rm <fitxer>» segons sigui apropiat per a\n"
+"marcar la resolució i feu una comissió."
-#: advice.c:204
+#: advice.c:207
msgid "Exiting because of an unresolved conflict."
msgstr "S'està sortint a causa d'un conflicte no resolt."
-#: advice.c:209 builtin/merge.c:1382
+#: advice.c:212 builtin/merge.c:1388
msgid "You have not concluded your merge (MERGE_HEAD exists)."
msgstr "No heu conclòs la vostra fusió (MERGE_HEAD existeix)."
-#: advice.c:211
+#: advice.c:214
msgid "Please, commit your changes before merging."
msgstr "Cometeu els vostres canvis abans de fusionar."
-#: advice.c:212
+#: advice.c:215
msgid "Exiting because of unfinished merge."
msgstr "S'està sortint a causa d'una fusió no terminada."
-#: advice.c:217
+#: advice.c:220
msgid "Not possible to fast-forward, aborting."
msgstr "No és possible avançar ràpidament, s'està avortant."
-#: advice.c:227
+#: advice.c:230
#, c-format
msgid ""
"The following paths and/or pathspecs matched paths that exist\n"
@@ -877,7 +880,7 @@ msgstr ""
"amb camins que existeixen fora de la vostra definició de\n"
"«sparse-checkout», així que no serà actualitzaran en l'índex:\n"
-#: advice.c:234
+#: advice.c:237
msgid ""
"If you intend to update such entries, try one of the following:\n"
"* Use the --sparse option.\n"
@@ -887,7 +890,7 @@ msgstr ""
"* Utilitzeu l'opció --sparse.\n"
"* Inhabiliteu o modifiqueu les regles de dispersió."
-#: advice.c:242
+#: advice.c:245
#, c-format
msgid ""
"Note: switching to '%s'.\n"
@@ -944,86 +947,89 @@ msgstr "opció d'espai en blanc «%s» no reconeguda"
msgid "unrecognized whitespace ignore option '%s'"
msgstr "opció ignora l'espai en blanc «%s» no reconeguda"
-#: apply.c:136 archive.c:584 range-diff.c:559 revision.c:2303 revision.c:2307
-#: revision.c:2316 revision.c:2321 revision.c:2527 revision.c:2870
-#: revision.c:2874 revision.c:2880 revision.c:2883 revision.c:2885
-#: builtin/add.c:510 builtin/add.c:512 builtin/add.c:529 builtin/add.c:541
-#: builtin/branch.c:727 builtin/checkout.c:467 builtin/checkout.c:470
-#: builtin/checkout.c:1644 builtin/checkout.c:1754 builtin/checkout.c:1757
-#: builtin/clone.c:906 builtin/commit.c:358 builtin/commit.c:361
-#: builtin/commit.c:1196 builtin/describe.c:593 builtin/diff-tree.c:155
-#: builtin/difftool.c:733 builtin/fast-export.c:1245 builtin/fetch.c:2038
-#: builtin/fetch.c:2043 builtin/index-pack.c:1852 builtin/init-db.c:560
-#: builtin/log.c:1946 builtin/log.c:1948 builtin/ls-files.c:778
-#: builtin/merge.c:1403 builtin/merge.c:1405 builtin/pack-objects.c:4073
-#: builtin/push.c:592 builtin/push.c:630 builtin/push.c:636 builtin/push.c:641
-#: builtin/rebase.c:1193 builtin/rebase.c:1195 builtin/rebase.c:1199
-#: builtin/repack.c:684 builtin/repack.c:715 builtin/reset.c:426
-#: builtin/reset.c:462 builtin/rev-list.c:541 builtin/show-branch.c:710
-#: builtin/stash.c:1707 builtin/stash.c:1710 builtin/submodule--helper.c:1316
-#: builtin/submodule--helper.c:2975 builtin/tag.c:526 builtin/tag.c:572
-#: builtin/worktree.c:702
+#: apply.c:138 archive.c:584 parse-options.c:1122 range-diff.c:555
+#: revision.c:2314 revision.c:2318 revision.c:2327 revision.c:2332
+#: revision.c:2560 revision.c:2895 revision.c:2899 revision.c:2907
+#: revision.c:2910 revision.c:2912 builtin/add.c:507 builtin/add.c:509
+#: builtin/add.c:515 builtin/add.c:527 builtin/branch.c:755
+#: builtin/checkout.c:472 builtin/checkout.c:475 builtin/checkout.c:1663
+#: builtin/checkout.c:1773 builtin/checkout.c:1776 builtin/clone.c:921
+#: builtin/commit.c:359 builtin/commit.c:362 builtin/commit.c:1200
+#: builtin/commit.c:1256 builtin/commit.c:1273 builtin/describe.c:593
+#: builtin/diff-tree.c:155 builtin/difftool.c:733 builtin/fast-export.c:1245
+#: builtin/fetch.c:2141 builtin/fetch.c:2162 builtin/fetch.c:2167
+#: builtin/help.c:602 builtin/index-pack.c:1858 builtin/init-db.c:560
+#: builtin/log.c:1968 builtin/log.c:1970 builtin/ls-files.c:778
+#: builtin/merge-base.c:163 builtin/merge-base.c:169 builtin/merge.c:1409
+#: builtin/merge.c:1411 builtin/pack-objects.c:4098 builtin/push.c:592
+#: builtin/push.c:630 builtin/push.c:636 builtin/push.c:641
+#: builtin/rebase.c:1221 builtin/rebase.c:1223 builtin/rebase.c:1227
+#: builtin/repack.c:688 builtin/repack.c:719 builtin/reset.c:433
+#: builtin/reset.c:469 builtin/rev-list.c:537 builtin/show-branch.c:711
+#: builtin/stash.c:1696 builtin/stash.c:1699 builtin/submodule--helper.c:1328
+#: builtin/submodule--helper.c:3054 builtin/tag.c:527 builtin/tag.c:573
+#: builtin/worktree.c:779
#, c-format
msgid "options '%s' and '%s' cannot be used together"
msgstr "les opcions «%s» i «%s» no es poden usar juntes"
-#: apply.c:139 apply.c:150 apply.c:153
+#: apply.c:141 apply.c:152 apply.c:155
#, c-format
msgid "'%s' outside a repository"
msgstr "«%s» fora d'un repositori"
-#: apply.c:800
+#: apply.c:807
#, c-format
msgid "Cannot prepare timestamp regexp %s"
msgstr "No es pot preparar l'expressió regular de marca de temps %s"
-#: apply.c:809
+#: apply.c:816
#, c-format
msgid "regexec returned %d for input: %s"
-msgstr "regexec ha retornat %d per l'entrada: %s"
+msgstr "regexec ha retornat %d per a l'entrada: %s"
-#: apply.c:883
+#: apply.c:890
#, c-format
msgid "unable to find filename in patch at line %d"
msgstr "no s'ha pogut trobar el nom de fitxer en el pedaç a la línia %d"
-#: apply.c:921
+#: apply.c:928
#, c-format
msgid "git apply: bad git-diff - expected /dev/null, got %s on line %d"
msgstr ""
"git apply: git-diff incorrecte - s'esperava /dev/null, s'ha rebut %s en la "
"línia %d"
-#: apply.c:927
+#: apply.c:934
#, c-format
msgid "git apply: bad git-diff - inconsistent new filename on line %d"
msgstr ""
"git apply: git-diff incorrecte - nom de fitxer nou inconsistent en la línia "
"%d"
-#: apply.c:928
+#: apply.c:935
#, c-format
msgid "git apply: bad git-diff - inconsistent old filename on line %d"
msgstr ""
"git apply: git-diff incorrecte - nom de fitxer antic inconsistent en la "
"línia %d"
-#: apply.c:933
+#: apply.c:940
#, c-format
msgid "git apply: bad git-diff - expected /dev/null on line %d"
msgstr "git apply: git-diff incorrecte - s'esperava /dev/null en la línia %d"
-#: apply.c:962
+#: apply.c:969
#, c-format
msgid "invalid mode on line %d: %s"
msgstr "mode no vàlid en la línia %d: %s"
-#: apply.c:1281
+#: apply.c:1288
#, c-format
msgid "inconsistent header lines %d and %d"
msgstr "línies de capçalera %d i %d inconsistents"
-#: apply.c:1371
+#: apply.c:1378
#, c-format
msgid ""
"git diff header lacks filename information when removing %d leading pathname"
@@ -1038,93 +1044,93 @@ msgstr[1] ""
"a la capçalera de git diff li manca informació de nom de fitxer en eliminar "
"%d components de nom de camí inicial (línia %d)"
-#: apply.c:1384
+#: apply.c:1391
#, c-format
msgid "git diff header lacks filename information (line %d)"
msgstr ""
"a la capçalera de git diff li manca informació de nom de fitxer (línia %d)"
-#: apply.c:1480
+#: apply.c:1487
#, c-format
msgid "recount: unexpected line: %.*s"
msgstr "recompte: línia inesperada: %.*s"
-#: apply.c:1549
+#: apply.c:1556
#, c-format
msgid "patch fragment without header at line %d: %.*s"
msgstr "fragment de pedaç sense capçalera a la línia %d: %.*s"
-#: apply.c:1752
+#: apply.c:1759
msgid "new file depends on old contents"
msgstr "el fitxer nou depèn dels continguts antics"
-#: apply.c:1754
+#: apply.c:1761
msgid "deleted file still has contents"
msgstr "el fitxer suprimit encara té continguts"
-#: apply.c:1788
+#: apply.c:1795
#, c-format
msgid "corrupt patch at line %d"
msgstr "pedaç malmès a la línia %d"
-#: apply.c:1825
+#: apply.c:1832
#, c-format
msgid "new file %s depends on old contents"
msgstr "el fitxer nou %s depèn dels continguts antics"
-#: apply.c:1827
+#: apply.c:1834
#, c-format
msgid "deleted file %s still has contents"
msgstr "el fitxer suprimit %s encara té continguts"
-#: apply.c:1830
+#: apply.c:1837
#, c-format
msgid "** warning: file %s becomes empty but is not deleted"
msgstr "** advertència: el fitxer %s queda buit però no se suprimeix"
-#: apply.c:1978
+#: apply.c:1985
#, c-format
msgid "corrupt binary patch at line %d: %.*s"
msgstr "pedaç binari malmès a la línia %d: %.*s"
-#: apply.c:2015
+#: apply.c:2022
#, c-format
msgid "unrecognized binary patch at line %d"
msgstr "pedaç binari no reconegut a la línia %d"
-#: apply.c:2177
+#: apply.c:2184
#, c-format
msgid "patch with only garbage at line %d"
msgstr "pedaç amb només escombraries a la línia %d"
-#: apply.c:2263
+#: apply.c:2270
#, c-format
msgid "unable to read symlink %s"
msgstr "no s'ha pogut llegir l'enllaç simbòlic %s"
-#: apply.c:2267
+#: apply.c:2274
#, c-format
msgid "unable to open or read %s"
msgstr "no s'ha pogut obrir o llegir %s"
-#: apply.c:2936
+#: apply.c:2943
#, c-format
msgid "invalid start of line: '%c'"
msgstr "inici de línia no vàlid: «%c»"
-#: apply.c:3057
+#: apply.c:3064
#, c-format
msgid "Hunk #%d succeeded at %d (offset %d line)."
msgid_plural "Hunk #%d succeeded at %d (offset %d lines)."
msgstr[0] "El tros #%d ha tingut èxit a %d (desplaçament d'%d línia)."
msgstr[1] "El tros #%d ha tingut èxit a %d (desplaçament de %d línies)."
-#: apply.c:3069
+#: apply.c:3076
#, c-format
msgid "Context reduced to (%ld/%ld) to apply fragment at %d"
msgstr "El context s'ha reduït a (%ld/%ld) per a aplicar el fragment a %d"
-#: apply.c:3075
+#: apply.c:3082
#, c-format
msgid ""
"while searching for:\n"
@@ -1133,23 +1139,23 @@ msgstr ""
"tot cercant:\n"
"%.*s"
-#: apply.c:3097
+#: apply.c:3104
#, c-format
msgid "missing binary patch data for '%s'"
msgstr "manquen les dades de pedaç binari de «%s»"
-#: apply.c:3105
+#: apply.c:3112
#, c-format
msgid "cannot reverse-apply a binary patch without the reverse hunk to '%s'"
msgstr "no es pot aplicar al revés un pedaç binari sense el tros revés a «%s»"
-#: apply.c:3152
+#: apply.c:3159
#, c-format
msgid "cannot apply binary patch to '%s' without full index line"
msgstr ""
"no es pot aplicar un pedaç binari a «%s» sense la línia d'índex completa"
-#: apply.c:3163
+#: apply.c:3170
#, c-format
msgid ""
"the patch applies to '%s' (%s), which does not match the current contents."
@@ -1157,290 +1163,291 @@ msgstr ""
"el pedaç s'aplica a «%s» (%s), el qual no coincideix amb els continguts "
"actuals."
-#: apply.c:3171
+#: apply.c:3178
#, c-format
msgid "the patch applies to an empty '%s' but it is not empty"
msgstr "el pedaç s'aplica a un «%s» buit però no és buit"
-#: apply.c:3189
+#: apply.c:3196
#, c-format
msgid "the necessary postimage %s for '%s' cannot be read"
msgstr "no es pot llegir la postimatge %s necessària per a «%s»"
-#: apply.c:3202
+#: apply.c:3209
#, c-format
msgid "binary patch does not apply to '%s'"
msgstr "el pedaç binari no s'aplica a «%s»"
-#: apply.c:3209
+#: apply.c:3216
#, c-format
msgid "binary patch to '%s' creates incorrect result (expecting %s, got %s)"
msgstr ""
"el pedaç binari a «%s» crea un resultat incorrecte (s'esperava %s, s'ha "
"rebut %s)"
-#: apply.c:3230
+#: apply.c:3237
#, c-format
msgid "patch failed: %s:%ld"
msgstr "el pedaç ha fallat: %s:%ld"
-#: apply.c:3353
+#: apply.c:3360
#, c-format
msgid "cannot checkout %s"
msgstr "no es pot agafar %s"
-#: apply.c:3405 apply.c:3416 apply.c:3462 midx.c:104 pack-revindex.c:214
+#: apply.c:3412 apply.c:3423 apply.c:3469 midx.c:105 pack-revindex.c:214
#: setup.c:309
#, c-format
msgid "failed to read %s"
msgstr "s'ha produït un error en llegir %s"
-#: apply.c:3413
+#: apply.c:3420
#, c-format
msgid "reading from '%s' beyond a symbolic link"
msgstr "s'està llegint de «%s» més enllà d'un enllaç simbòlic"
-#: apply.c:3442 apply.c:3711
+#: apply.c:3449 apply.c:3721
#, c-format
msgid "path %s has been renamed/deleted"
msgstr "el camí %s s'ha canviat de nom / s'ha suprimit"
-#: apply.c:3549 apply.c:3726
+#: apply.c:3559 apply.c:3736
#, c-format
msgid "%s: does not exist in index"
msgstr "%s: no existeix en l'índex"
-#: apply.c:3558 apply.c:3734 apply.c:3978
+#: apply.c:3568 apply.c:3744 apply.c:3960
#, c-format
msgid "%s: does not match index"
msgstr "%s: no coincideix amb l'índex"
-#: apply.c:3595
+#: apply.c:3605
msgid "repository lacks the necessary blob to perform 3-way merge."
msgstr ""
"al repositori li manca el blob necessari per a fer a una fusió de 3 vies."
-#: apply.c:3598
+#: apply.c:3608
#, c-format
msgid "Performing three-way merge...\n"
msgstr "S'està fent una fusió de 3 vies...\n"
-#: apply.c:3614 apply.c:3618
+#: apply.c:3624 apply.c:3628
#, c-format
msgid "cannot read the current contents of '%s'"
msgstr "no es poden llegir els continguts actuals de «%s»"
-#: apply.c:3630
+#: apply.c:3640
#, c-format
msgid "Failed to perform three-way merge...\n"
msgstr "S'ha produït un error en fer una fusió de tres vies...\n"
-#: apply.c:3644
+#: apply.c:3654
#, c-format
msgid "Applied patch to '%s' with conflicts.\n"
msgstr "S'ha aplicat el pedaç a «%s» amb conflictes.\n"
-#: apply.c:3649
+#: apply.c:3659
#, c-format
msgid "Applied patch to '%s' cleanly.\n"
msgstr "S'ha aplicat el pedaç a «%s» netament.\n"
-#: apply.c:3666
+#: apply.c:3676
#, c-format
msgid "Falling back to direct application...\n"
msgstr "S'està usant alternativament l'aplicació directa...\n"
-#: apply.c:3678
+#: apply.c:3688
msgid "removal patch leaves file contents"
msgstr "el pedaç d'eliminació deixa els continguts dels fitxers"
-#: apply.c:3751
+#: apply.c:3761
#, c-format
msgid "%s: wrong type"
msgstr "%s: tipus erroni"
-#: apply.c:3753
+#: apply.c:3763
#, c-format
msgid "%s has type %o, expected %o"
msgstr "%s és del tipus %o, s'esperava %o"
-#: apply.c:3918 apply.c:3920 read-cache.c:889 read-cache.c:918
-#: read-cache.c:1381
+#: apply.c:3900 apply.c:3902 read-cache.c:903 read-cache.c:932
+#: read-cache.c:1399
#, c-format
msgid "invalid path '%s'"
msgstr "camí no vàlid: «%s»"
-#: apply.c:3976
+#: apply.c:3958
#, c-format
msgid "%s: already exists in index"
msgstr "%s: ja existeix en l'índex"
-#: apply.c:3980
+#: apply.c:3962
#, c-format
msgid "%s: already exists in working directory"
msgstr "%s: ja existeix en el directori de treball"
-#: apply.c:4000
+#: apply.c:3982
#, c-format
msgid "new mode (%o) of %s does not match old mode (%o)"
msgstr "el mode nou (%o) de %s no coincideix amb el mode antic (%o)"
-#: apply.c:4005
+#: apply.c:3987
#, c-format
msgid "new mode (%o) of %s does not match old mode (%o) of %s"
msgstr "el mode nou (%o) de %s no coincideix amb el mode antic (%o) de %s"
-#: apply.c:4025
+#: apply.c:4007
#, c-format
msgid "affected file '%s' is beyond a symbolic link"
msgstr "el fitxer afectat «%s» és més enllà d'un enllaç simbòlic"
-#: apply.c:4029
+#: apply.c:4011
#, c-format
msgid "%s: patch does not apply"
msgstr "%s: el pedaç no s'aplica"
-#: apply.c:4044
+#: apply.c:4026
#, c-format
msgid "Checking patch %s..."
msgstr "S'està comprovant el pedaç %s..."
-#: apply.c:4136
+#: apply.c:4118
#, c-format
msgid "sha1 information is lacking or useless for submodule %s"
msgstr "falta la informació sha1 o és inútil per al submòdul %s"
-#: apply.c:4143
+#: apply.c:4125
#, c-format
msgid "mode change for %s, which is not in current HEAD"
msgstr "canvi de mode per a %s, el qual no està en la HEAD actual"
-#: apply.c:4146
+#: apply.c:4128
#, c-format
msgid "sha1 information is lacking or useless (%s)."
msgstr "falta informació sha1 o és inútil (%s)."
-#: apply.c:4155
+#: apply.c:4137
#, c-format
msgid "could not add %s to temporary index"
msgstr "no s'ha pogut afegir %s a l'índex temporal"
-#: apply.c:4165
+#: apply.c:4147
#, c-format
msgid "could not write temporary index to %s"
msgstr "no s'ha pogut escriure l'índex temporal a %s"
-#: apply.c:4303
+#: apply.c:4285
#, c-format
msgid "unable to remove %s from index"
msgstr "no s'ha pogut eliminar %s de l'índex"
-#: apply.c:4337
+#: apply.c:4319
#, c-format
msgid "corrupt patch for submodule %s"
msgstr "pedaç malmès per al submòdul %s"
-#: apply.c:4343
+#: apply.c:4325
#, c-format
msgid "unable to stat newly created file '%s'"
msgstr "no s'ha pogut fer stat al fitxer novament creat «%s»"
-#: apply.c:4351
+#: apply.c:4333
#, c-format
msgid "unable to create backing store for newly created file %s"
msgstr ""
"no s'ha pogut crear un magatzem de suport per al fitxer novament creat %s"
-#: apply.c:4357 apply.c:4502
+#: apply.c:4339 apply.c:4484
#, c-format
msgid "unable to add cache entry for %s"
msgstr "no s'ha pogut afegir una entrada de cau per a %s"
-#: apply.c:4400 builtin/bisect--helper.c:540 builtin/gc.c:2258
+#: apply.c:4382 builtin/bisect--helper.c:540 builtin/gc.c:2258
#: builtin/gc.c:2293
#, c-format
msgid "failed to write to '%s'"
msgstr "no s'ha pogut escriure a «%s»"
-#: apply.c:4404
+#: apply.c:4386
#, c-format
msgid "closing file '%s'"
msgstr "s'està tancant el fitxer «%s»"
-#: apply.c:4474
+#: apply.c:4456
#, c-format
msgid "unable to write file '%s' mode %o"
msgstr "no s'ha pogut escriure el fitxer «%s» mode %o"
-#: apply.c:4572
+#: apply.c:4554
#, c-format
msgid "Applied patch %s cleanly."
msgstr "El pedaç %s s'ha aplicat netament."
-#: apply.c:4580
+#: apply.c:4562
msgid "internal error"
msgstr "error intern"
-#: apply.c:4583
+#: apply.c:4565
#, c-format
msgid "Applying patch %%s with %d reject..."
msgid_plural "Applying patch %%s with %d rejects..."
msgstr[0] "S'està aplicant el pedaç %%s amb %d rebuig..."
msgstr[1] "S'està aplicant el pedaç %%s amb %d rebutjos..."
-#: apply.c:4594
+#: apply.c:4576
#, c-format
msgid "truncating .rej filename to %.*s.rej"
msgstr "s'està truncant el nom del fitxer .rej a %.*s.rej"
-#: apply.c:4602
+#: apply.c:4584
#, c-format
msgid "cannot open %s"
msgstr "no es pot obrir %s"
-#: apply.c:4616
+#: apply.c:4598
#, c-format
msgid "Hunk #%d applied cleanly."
msgstr "El tros #%d s'ha aplicat netament."
-#: apply.c:4620
+#: apply.c:4602
#, c-format
msgid "Rejected hunk #%d."
msgstr "S'ha rebutjat el tros #%d."
-#: apply.c:4749
+#: apply.c:4731
#, c-format
msgid "Skipped patch '%s'."
msgstr "S'ha omès el pedaç «%s»."
-#: apply.c:4758
+#: apply.c:4740
msgid "No valid patches in input (allow with \"--allow-empty\")"
-msgstr "No hi ha pedaços vàlids a l'entrada (permeteu-los amb «--allow-empty»)"
+msgstr ""
+"No hi ha pedaços vàlids a l'entrada (permeteu-los amb «--allow-empty»)"
-#: apply.c:4779
+#: apply.c:4761
msgid "unable to read index file"
msgstr "no es pot llegir el fitxer d'índex"
-#: apply.c:4936
+#: apply.c:4918
#, c-format
msgid "can't open patch '%s': %s"
msgstr "no es pot obrir el pedaç «%s»: %s"
-#: apply.c:4963
+#: apply.c:4945
#, c-format
msgid "squelched %d whitespace error"
msgid_plural "squelched %d whitespace errors"
msgstr[0] "s'ha silenciat %d error d'espai en blanc"
msgstr[1] "s'han silenciat %d errors d'espai en blanc"
-#: apply.c:4969 apply.c:4984
+#: apply.c:4951 apply.c:4966
#, c-format
msgid "%d line adds whitespace errors."
msgid_plural "%d lines add whitespace errors."
msgstr[0] "%d línia afegeix errors d'espai en blanc."
msgstr[1] "%d línies afegeixen errors d'espai en blanc."
-#: apply.c:4977
+#: apply.c:4959
#, c-format
msgid "%d line applied after fixing whitespace errors."
msgid_plural "%d lines applied after fixing whitespace errors."
@@ -1449,146 +1456,146 @@ msgstr[0] ""
msgstr[1] ""
"S'han aplicat %d línies després d'arreglar els errors d'espai en blanc."
-#: apply.c:4993 builtin/add.c:704 builtin/mv.c:338 builtin/rm.c:430
+#: apply.c:4975 builtin/add.c:690 builtin/mv.c:338 builtin/rm.c:430
msgid "Unable to write new index file"
msgstr "No s'ha pogut escriure un fitxer d'índex nou"
-#: apply.c:5021
+#: apply.c:5003
msgid "don't apply changes matching the given path"
msgstr "no apliquis els canvis que coincideixin amb el camí donat"
-#: apply.c:5024
+#: apply.c:5006
msgid "apply changes matching the given path"
msgstr "aplica els canvis que coincideixin amb el camí donat"
-#: apply.c:5026 builtin/am.c:2376
+#: apply.c:5008 builtin/am.c:2379
msgid "num"
msgstr "nombre"
-#: apply.c:5027
+#: apply.c:5009
msgid "remove <num> leading slashes from traditional diff paths"
msgstr ""
"elimina <nombre> barres obliqües inicials dels camins de diferència "
"tradicionals"
-#: apply.c:5030
+#: apply.c:5012
msgid "ignore additions made by the patch"
msgstr "ignora afegiments fets pel pedaç"
-#: apply.c:5032
+#: apply.c:5014
msgid "instead of applying the patch, output diffstat for the input"
msgstr ""
"en lloc d'aplicar el pedaç, emet les estadístiques de diferència de "
"l'entrada"
-#: apply.c:5036
+#: apply.c:5018
msgid "show number of added and deleted lines in decimal notation"
msgstr "mostra el nombre de línies afegides i suprimides en notació decimal"
-#: apply.c:5038
+#: apply.c:5020
msgid "instead of applying the patch, output a summary for the input"
msgstr "en lloc d'aplicar el pedaç, emet un resum de l'entrada"
-#: apply.c:5040
+#: apply.c:5022
msgid "instead of applying the patch, see if the patch is applicable"
msgstr "en lloc d'aplicar el pedaç, veges si el pedaç és aplicable"
-#: apply.c:5042
+#: apply.c:5024
msgid "make sure the patch is applicable to the current index"
msgstr "assegura que el pedaç sigui aplicable a l'índex actual"
-#: apply.c:5044
+#: apply.c:5026
msgid "mark new files with `git add --intent-to-add`"
msgstr "marca els fitxers nous amb «git add --intent-to-add»"
-#: apply.c:5046
+#: apply.c:5028
msgid "apply a patch without touching the working tree"
msgstr "aplica un pedaç sense tocar l'arbre de treball"
-#: apply.c:5048
+#: apply.c:5030
msgid "accept a patch that touches outside the working area"
msgstr "accepta un pedaç que toqui fora de l'àrea de treball"
-#: apply.c:5051
+#: apply.c:5033
msgid "also apply the patch (use with --stat/--summary/--check)"
msgstr "aplica el pedaç també (useu amb --stat/--summary/--check)"
-#: apply.c:5053
+#: apply.c:5035
msgid "attempt three-way merge, fall back on normal patch if that fails"
msgstr ""
"intenta una fusió de tres vies, si falla intenta llavors un pedaç normal"
-#: apply.c:5055
+#: apply.c:5037
msgid "build a temporary index based on embedded index information"
msgstr ""
"construeix un índex temporal basat en la informació d'índex incrustada"
-#: apply.c:5058 builtin/checkout-index.c:196
+#: apply.c:5040 builtin/checkout-index.c:230
msgid "paths are separated with NUL character"
msgstr "els camins se separen amb el caràcter NUL"
-#: apply.c:5060
+#: apply.c:5042
msgid "ensure at least <n> lines of context match"
msgstr "assegura't que almenys <n> línies de context coincideixin"
-#: apply.c:5061 builtin/am.c:2352 builtin/am.c:2355
+#: apply.c:5043 builtin/am.c:2355 builtin/am.c:2358
#: builtin/interpret-trailers.c:98 builtin/interpret-trailers.c:100
-#: builtin/interpret-trailers.c:102 builtin/pack-objects.c:3960
-#: builtin/rebase.c:1051
+#: builtin/interpret-trailers.c:102 builtin/pack-objects.c:3983
+#: builtin/rebase.c:1079
msgid "action"
msgstr "acció"
-#: apply.c:5062
+#: apply.c:5044
msgid "detect new or modified lines that have whitespace errors"
msgstr ""
"detecta les línies noves o modificades que tinguin errors d'espai en blanc"
-#: apply.c:5065 apply.c:5068
+#: apply.c:5047 apply.c:5050
msgid "ignore changes in whitespace when finding context"
msgstr "ignora els canvis d'espai en blanc en cercar context"
-#: apply.c:5071
+#: apply.c:5053
msgid "apply the patch in reverse"
msgstr "aplica el pedaç al revés"
-#: apply.c:5073
+#: apply.c:5055
msgid "don't expect at least one line of context"
msgstr "no esperis almenys una línia de context"
-#: apply.c:5075
+#: apply.c:5057
msgid "leave the rejected hunks in corresponding *.rej files"
msgstr "deixa els trossos rebutjats en fitxers *.rej corresponents"
-#: apply.c:5077
+#: apply.c:5059
msgid "allow overlapping hunks"
msgstr "permet trossos superposats"
-#: apply.c:5080
+#: apply.c:5062
msgid "tolerate incorrectly detected missing new-line at the end of file"
msgstr "tolera una línia nova incorrectament detectada al final del fitxer"
-#: apply.c:5083
+#: apply.c:5065
msgid "do not trust the line counts in the hunk headers"
msgstr "no confiïs en els recomptes de línia en les capçaleres dels trossos"
-#: apply.c:5085 builtin/am.c:2364
+#: apply.c:5067 builtin/am.c:2367
msgid "root"
msgstr "arrel"
-#: apply.c:5086
+#: apply.c:5068
msgid "prepend <root> to all filenames"
msgstr "anteposa <arrel> a tots els noms de fitxer"
-#: apply.c:5089
+#: apply.c:5071
msgid "don't return error for empty patches"
msgstr "no retornis l'error per als pedaços buits"
-#: archive-tar.c:125 archive-zip.c:345
+#: archive-tar.c:125 archive-zip.c:346
#, c-format
msgid "cannot stream blob %s"
msgstr "no es pot transmetre el blob %s"
-#: archive-tar.c:265 archive-zip.c:358
+#: archive-tar.c:265 archive-zip.c:359
#, c-format
msgid "unsupported file mode: 0%o (SHA1: %s)"
msgstr "mode de fitxer no compatible: 0%o (SHA1: %s)"
@@ -1607,22 +1614,22 @@ msgstr "no s'ha pogut redirigir el descriptor"
msgid "'%s' filter reported error"
msgstr "«%s» error reportat pel filtre"
-#: archive-zip.c:318
+#: archive-zip.c:319
#, c-format
msgid "path is not valid UTF-8: %s"
msgstr "el camí no és vàlid en UTF-8: %s"
-#: archive-zip.c:322
+#: archive-zip.c:323
#, c-format
msgid "path too long (%d chars, SHA1: %s): %s"
msgstr "el camí és massa llarg (%d caràcters, SHA1: %s): %s"
-#: archive-zip.c:469 builtin/pack-objects.c:365 builtin/pack-objects.c:368
+#: archive-zip.c:470 builtin/pack-objects.c:363 builtin/pack-objects.c:366
#, c-format
msgid "deflate error (%d)"
msgstr "error de deflació (%d)"
-#: archive-zip.c:603
+#: archive-zip.c:604
#, c-format
msgid "timestamp too large for this system: %<PRIuMAX>"
msgstr "marca de temps massa gran per a aquest sistema: %<PRIuMAX>"
@@ -1631,10 +1638,6 @@ msgstr "marca de temps massa gran per a aquest sistema: %<PRIuMAX>"
msgid "git archive [<options>] <tree-ish> [<path>...]"
msgstr "git archive [<opcions>] <arbre> [<camí>...]"
-#: archive.c:15
-msgid "git archive --list"
-msgstr "git archive --list"
-
#: archive.c:16
msgid ""
"git archive --remote <repo> [--exec <cmd>] [<options>] <tree-ish> "
@@ -1648,12 +1651,12 @@ msgid "git archive --remote <repo> [--exec <cmd>] --list"
msgstr "git archive --remote <repositori> [--exec <ordre>] --list"
#: archive.c:188 archive.c:341 builtin/gc.c:497 builtin/notes.c:238
-#: builtin/tag.c:578
+#: builtin/tag.c:579
#, c-format
msgid "cannot read '%s'"
msgstr "no es pot llegir «%s»"
-#: archive.c:426 builtin/add.c:215 builtin/add.c:671 builtin/rm.c:334
+#: archive.c:426 builtin/add.c:214 builtin/add.c:657 builtin/rm.c:334
#, c-format
msgid "pathspec '%s' did not match any files"
msgstr "l'especificació de camí «%s» no ha coincidit amb cap fitxer"
@@ -1695,7 +1698,7 @@ msgstr "format"
msgid "archive format"
msgstr "format d'arxiu"
-#: archive.c:552 builtin/log.c:1790
+#: archive.c:552 builtin/log.c:1809
msgid "prefix"
msgstr "prefix"
@@ -1703,12 +1706,12 @@ msgstr "prefix"
msgid "prepend prefix to each pathname in the archive"
msgstr "anteposa el prefix a cada nom de camí en l'arxiu"
-#: archive.c:554 archive.c:557 builtin/blame.c:880 builtin/blame.c:884
-#: builtin/blame.c:885 builtin/commit-tree.c:115 builtin/config.c:135
+#: archive.c:554 archive.c:557 builtin/blame.c:881 builtin/blame.c:885
+#: builtin/blame.c:886 builtin/commit-tree.c:115 builtin/config.c:135
#: builtin/fast-export.c:1181 builtin/fast-export.c:1183
-#: builtin/fast-export.c:1187 builtin/grep.c:935 builtin/hash-object.c:103
+#: builtin/fast-export.c:1187 builtin/grep.c:936 builtin/hash-object.c:104
#: builtin/ls-files.c:654 builtin/ls-files.c:657 builtin/notes.c:410
-#: builtin/notes.c:576 builtin/read-tree.c:115 parse-options.h:190
+#: builtin/notes.c:576 builtin/read-tree.c:115 parse-options.h:195
msgid "file"
msgstr "fitxer"
@@ -1736,8 +1739,8 @@ msgstr "estableix el nivell de compressió"
msgid "list supported archive formats"
msgstr "llista els formats d'arxiu admesos"
-#: archive.c:568 builtin/archive.c:89 builtin/clone.c:118 builtin/clone.c:121
-#: builtin/submodule--helper.c:1870 builtin/submodule--helper.c:2513
+#: archive.c:568 builtin/archive.c:89 builtin/clone.c:122 builtin/clone.c:125
+#: builtin/submodule--helper.c:1884 builtin/submodule--helper.c:2718
msgid "repo"
msgstr "repositori"
@@ -1758,11 +1761,12 @@ msgstr "camí a l'ordre git-upload-archive remota"
msgid "Unexpected option --remote"
msgstr "Opció inesperada --remote"
-#: archive.c:580 fetch-pack.c:300 revision.c:2887 builtin/add.c:544
-#: builtin/add.c:576 builtin/checkout.c:1763 builtin/commit.c:370
-#: builtin/fast-export.c:1230 builtin/index-pack.c:1848 builtin/log.c:2115
-#: builtin/reset.c:435 builtin/reset.c:493 builtin/rm.c:281
-#: builtin/stash.c:1719 builtin/worktree.c:508 http-fetch.c:144
+#: archive.c:580 fetch-pack.c:300 revision.c:2914 builtin/add.c:530
+#: builtin/add.c:562 builtin/checkout.c:1782 builtin/clone.c:1099
+#: builtin/clone.c:1102 builtin/commit.c:371 builtin/fast-export.c:1230
+#: builtin/index-pack.c:1854 builtin/log.c:2140 builtin/reset.c:442
+#: builtin/reset.c:500 builtin/rm.c:281 builtin/stash.c:1708
+#: builtin/worktree.c:580 builtin/worktree.c:781 http-fetch.c:144
#: http-fetch.c:153
#, c-format
msgid "the option '%s' requires '%s'"
@@ -1782,17 +1786,17 @@ msgstr "Format d'arxiu desconegut «%s»"
msgid "Argument not supported for format '%s': -%d"
msgstr "Argument no admès per al format «%s»: -%d"
-#: attr.c:203
+#: attr.c:202
#, c-format
msgid "%.*s is not a valid attribute name"
msgstr "%.*s no és un nom d'atribut vàlid"
-#: attr.c:364
+#: attr.c:363
#, c-format
msgid "%s not allowed: %s:%d"
msgstr "%s no està permès: %s:%d"
-#: attr.c:404
+#: attr.c:403
msgid ""
"Negative patterns are ignored in git attributes\n"
"Use '\\!' for literal leading exclamation."
@@ -1810,12 +1814,12 @@ msgstr "Comentari amb cometes errònies en el fitxer «%s»: %s"
msgid "We cannot bisect more!\n"
msgstr "No podem bisecar més!\n"
-#: bisect.c:764
+#: bisect.c:765
#, c-format
msgid "Not a valid commit name %s"
msgstr "No és un nom de comissió vàlid %s"
-#: bisect.c:789
+#: bisect.c:790
#, c-format
msgid ""
"The merge base %s is bad.\n"
@@ -1824,7 +1828,7 @@ msgstr ""
"La base de fusió %s és errònia.\n"
"Això vol dir que el defecte s'ha arreglat entre %s i [%s].\n"
-#: bisect.c:794
+#: bisect.c:795
#, c-format
msgid ""
"The merge base %s is new.\n"
@@ -1833,7 +1837,7 @@ msgstr ""
"La base de fusió %s és nova.\n"
"La propietat s'ha canviat entre %s i [%s].\n"
-#: bisect.c:799
+#: bisect.c:800
#, c-format
msgid ""
"The merge base %s is %s.\n"
@@ -1842,7 +1846,7 @@ msgstr ""
"La base de fusió %s és %s.\n"
"Això vol dir que la primera comissió «%s» és entre %s i [%s].\n"
-#: bisect.c:807
+#: bisect.c:808
#, c-format
msgid ""
"Some %s revs are not ancestors of the %s rev.\n"
@@ -1853,7 +1857,7 @@ msgstr ""
"git bisect no pot funcionar correctament en aquest cas.\n"
"Potser heu confós les revisions %s i %s?\n"
-#: bisect.c:820
+#: bisect.c:821
#, c-format
msgid ""
"the merge base between %s and [%s] must be skipped.\n"
@@ -1864,36 +1868,36 @@ msgstr ""
"Llavors, no podem estar segurs que la primera comissió %s sigui entre %s i %s.\n"
"Continuem de totes maneres."
-#: bisect.c:859
+#: bisect.c:860
#, c-format
msgid "Bisecting: a merge base must be tested\n"
msgstr "Bisecant: s'ha de provar una base de fusió\n"
-#: bisect.c:909
+#: bisect.c:910
#, c-format
msgid "a %s revision is needed"
msgstr "es necessita una revisió %s"
-#: bisect.c:939
+#: bisect.c:940
#, c-format
msgid "could not create file '%s'"
msgstr "no s'ha pogut crear el fitxer «%s»"
-#: bisect.c:985 builtin/merge.c:155
+#: bisect.c:986 builtin/merge.c:155
#, c-format
msgid "could not read file '%s'"
msgstr "no s'ha pogut llegir el fitxer «%s»"
-#: bisect.c:1025
+#: bisect.c:1026
msgid "reading bisect refs failed"
msgstr "la lectura de les referències de bisecció ha fallat"
-#: bisect.c:1055
+#: bisect.c:1056
#, c-format
msgid "%s was both %s and %s\n"
msgstr "%s era ambdós %s i %s\n"
-#: bisect.c:1064
+#: bisect.c:1065
#, c-format
msgid ""
"No testable commit found.\n"
@@ -1902,7 +1906,7 @@ msgstr ""
"No s'ha trobat cap comissió comprovable.\n"
"Potser heu començat amb paràmetres de camí incorrectes?\n"
-#: bisect.c:1093
+#: bisect.c:1094
#, c-format
msgid "(roughly %d step)"
msgid_plural "(roughly %d steps)"
@@ -1911,54 +1915,54 @@ msgstr[1] "(aproximadament %d passos)"
#. TRANSLATORS: the last %s will be replaced with "(roughly %d
#. steps)" translation.
-#: bisect.c:1099
+#: bisect.c:1100
#, c-format
msgid "Bisecting: %d revision left to test after this %s\n"
msgid_plural "Bisecting: %d revisions left to test after this %s\n"
msgstr[0] "Bisecant: manca %d revisió a provar després d'aquesta %s\n"
msgstr[1] "Bisecant: manquen %d revisions a provar després d'aquesta %s\n"
-#: blame.c:2776
+#: blame.c:2773
msgid "--contents and --reverse do not blend well."
msgstr "--contents i --reverse no funcionen bé juntes."
-#: blame.c:2790
+#: blame.c:2787
msgid "cannot use --contents with final commit object name"
msgstr "no es pot usar --contents amb el nom d'objecte de la comissió final"
-#: blame.c:2811
+#: blame.c:2808
msgid "--reverse and --first-parent together require specified latest commit"
msgstr ""
"--reverse i --first-parent junts requereixen una última comissió "
"especificada"
-#: blame.c:2820 bundle.c:224 midx.c:1042 ref-filter.c:2370 remote.c:2158
-#: sequencer.c:2352 sequencer.c:4899 submodule.c:883 builtin/commit.c:1114
-#: builtin/log.c:429 builtin/log.c:1036 builtin/log.c:1644 builtin/log.c:2071
-#: builtin/log.c:2362 builtin/merge.c:431 builtin/pack-objects.c:3373
-#: builtin/pack-objects.c:3775 builtin/pack-objects.c:3790
+#: blame.c:2817 bundle.c:231 midx.c:1058 ref-filter.c:2371 remote.c:2157
+#: sequencer.c:2348 sequencer.c:4872 submodule.c:913 builtin/commit.c:1118
+#: builtin/log.c:437 builtin/log.c:1055 builtin/log.c:1663 builtin/log.c:2096
+#: builtin/log.c:2387 builtin/merge.c:431 builtin/pack-objects.c:3381
+#: builtin/pack-objects.c:3781 builtin/pack-objects.c:3796
#: builtin/shortlog.c:255
msgid "revision walk setup failed"
msgstr "la configuració del recorregut de revisions ha fallat"
-#: blame.c:2838
+#: blame.c:2835
msgid ""
"--reverse --first-parent together require range along first-parent chain"
msgstr ""
"--reverse --first-parent junts requereixen un rang de la cadena de pares "
"primers"
-#: blame.c:2849
+#: blame.c:2846
#, c-format
msgid "no such path %s in %s"
msgstr "no hi ha tal camí %s en %s"
-#: blame.c:2860
+#: blame.c:2857
#, c-format
msgid "cannot read blob %s for path %s"
msgstr "no es pot llegir el blob %s per al camí %s"
-#: branch.c:77
+#: branch.c:93
msgid ""
"cannot inherit upstream tracking configuration of multiple refs when "
"rebasing is requested"
@@ -1966,34 +1970,31 @@ msgstr ""
"no es pot heretar la configuració del seguiment de la font de múltiples "
"referències quan es demana fer «rebase»"
-#: branch.c:88
+#: branch.c:104
#, c-format
msgid "not setting branch '%s' as its own upstream"
msgstr "no s'està establert la branca «%s» com a la seva pròpia font"
-#: branch.c:144
+#: branch.c:160
#, c-format
msgid "branch '%s' set up to track '%s' by rebasing."
-msgstr ""
-"la branca «%s» està configurada per a seguir «%s» fent "
-"«rebase»."
+msgstr "la branca «%s» està configurada per a seguir «%s» fent «rebase»."
-#: branch.c:145
+#: branch.c:161
#, c-format
msgid "branch '%s' set up to track '%s'."
-msgstr ""
-"la branca «%s» està configurada per a seguir «%s»."
+msgstr "la branca «%s» està configurada per a seguir «%s»."
-#: branch.c:148
+#: branch.c:164
#, c-format
msgid "branch '%s' set up to track:"
msgstr "la branca «%s» està configurada per a seguir:"
-#: branch.c:160
+#: branch.c:176
msgid "unable to write upstream branch configuration"
msgstr "no es pot escriure la configuració de la branca font"
-#: branch.c:162
+#: branch.c:178
msgid ""
"\n"
"After fixing the error cause you may try to fix up\n"
@@ -2003,41 +2004,76 @@ msgstr ""
"Després de corregir la causa de l'error, podeu intentar\n"
"corregir la informació de seguiment remot executant:"
-#: branch.c:203
+#: branch.c:219
#, c-format
msgid "asked to inherit tracking from '%s', but no remote is set"
msgstr ""
-"s'ha demanat que hereti el seguiment de «%s», però no s'ha establert cap"
-" remot"
+"s'ha demanat que hereti el seguiment de «%s», però no s'ha establert cap "
+"remot"
-#: branch.c:209
+#: branch.c:225
#, c-format
msgid "asked to inherit tracking from '%s', but no merge configuration is set"
msgstr ""
-"s'ha demanat que hereti el seguiment de «%s», però no s'ha establert cap"
-" configuració de fusionat"
+"s'ha demanat que hereti el seguiment de «%s», però no s'ha establert cap "
+"configuració de fusionat"
+
+#: branch.c:277
+#, c-format
+msgid "not tracking: ambiguous information for ref '%s'"
+msgstr "no s'està seguint: informació ambigua per a la referència «%s»"
+
+#. TRANSLATORS: This is a line listing a remote with duplicate
+#. refspecs in the advice message below. For RTL languages you'll
+#. probably want to swap the "%s" and leading " " space around.
+#. TRANSLATORS: This is line item of ambiguous object output
+#. from describe_ambiguous_object() above. For RTL languages
+#. you'll probably want to swap the "%s" and leading " " space
+#. around.
+#: branch.c:289 object-name.c:464
+#, c-format
+msgid " %s\n"
+msgstr " %s\n"
-#: branch.c:252
+#. TRANSLATORS: The second argument is a \n-delimited list of
+#. duplicate refspecs, composed above.
+#: branch.c:295
#, c-format
-msgid "not tracking: ambiguous information for ref %s"
-msgstr "no s'està seguint: informació ambigua per a la referència %s"
+msgid ""
+"There are multiple remotes whose fetch refspecs map to the remote\n"
+"tracking ref '%s':\n"
+"%s\n"
+"This is typically a configuration error.\n"
+"\n"
+"To support setting up tracking branches, ensure that\n"
+"different remotes' fetch refspecs map into different\n"
+"tracking namespaces."
+msgstr ""
+"Hi ha diversos remots pels quals les refspecs coincideixen amb la ref\n"
+"de seguiment remot «%s»:\n"
+"%s\n"
+"Normalment es tracta d'un error de configuració.\n"
+"\n"
+"Per a donar suport a la creació de branques de seguiment, assegureu-vos que\n"
+"els diferents refspecs remots s'assignen a diferents espais de noms\n"
+"de seguiment."
-#: branch.c:287
+#: branch.c:344
#, c-format
msgid "'%s' is not a valid branch name"
msgstr "«%s» no és un nom de branca vàlid"
-#: branch.c:307
+#: branch.c:364
#, c-format
msgid "a branch named '%s' already exists"
msgstr "ja existeix una branca amb nom «%s»"
-#: branch.c:313
+#: branch.c:370
#, c-format
msgid "cannot force update the branch '%s' checked out at '%s'"
msgstr "no es pot forçar l'actualització de la branca «%s», agafada a «%s»"
-#: branch.c:336
+#: branch.c:393
#, c-format
msgid ""
"cannot set up tracking information; starting point '%s' is not a branch"
@@ -2045,12 +2081,12 @@ msgstr ""
"no es pot configurar la informació de seguiment; el punt inicial «%s» no és "
"una branca"
-#: branch.c:338
+#: branch.c:395
#, c-format
msgid "the requested upstream branch '%s' does not exist"
msgstr "la branca font demanada «%s» no existeix"
-#: branch.c:340
+#: branch.c:397
msgid ""
"\n"
"If you are planning on basing your work on an upstream\n"
@@ -2071,126 +2107,144 @@ msgstr ""
"«git push -u» per a establir la configuració font\n"
"mentre pugeu."
-#: branch.c:384 builtin/replace.c:321 builtin/replace.c:377
+#: branch.c:445 builtin/replace.c:321 builtin/replace.c:377
#: builtin/replace.c:423 builtin/replace.c:453
#, c-format
msgid "not a valid object name: '%s'"
msgstr "no és un nom d'objecte vàlid: «%s»"
-#: branch.c:404
+#: branch.c:465
#, c-format
msgid "ambiguous object name: '%s'"
msgstr "nom d'objecte ambigu: «%s»"
-#: branch.c:409
+#: branch.c:470
#, c-format
msgid "not a valid branch point: '%s'"
msgstr "no és un punt de ramificació vàlid: «%s»"
-#: branch.c:469
+#: branch.c:658
+#, c-format
+msgid "submodule '%s': unable to find submodule"
+msgstr "submòdul «%s»: no es pot trobar el submòdul"
+
+#: branch.c:661
+#, c-format
+msgid ""
+"You may try updating the submodules using 'git checkout %s && git submodule "
+"update --init'"
+msgstr ""
+"Podeu provar d'actualitzar els submòduls utilitzant «git checkout %s && git submodule update --init»"
+
+#: branch.c:672 branch.c:698
+#, c-format
+msgid "submodule '%s': cannot create branch '%s'"
+msgstr "submòdul «%s»: no es pot crear la branca: «%s»"
+
+#: branch.c:730
#, c-format
msgid "'%s' is already checked out at '%s'"
msgstr "«%s» ja s'ha agafat a «%s»"
-#: branch.c:494
+#: branch.c:755
#, c-format
msgid "HEAD of working tree %s is not updated"
msgstr "HEAD de l'arbre de treball %s no està actualitzat"
-#: bundle.c:44
+#: bundle.c:45
#, c-format
msgid "unrecognized bundle hash algorithm: %s"
msgstr "algoritme de hash del farcell desconegut: %s"
-#: bundle.c:48
+#: bundle.c:53
#, c-format
msgid "unknown capability '%s'"
msgstr "funcionalitat «%s» desconeguda"
-#: bundle.c:74
+#: bundle.c:79
#, c-format
msgid "'%s' does not look like a v2 or v3 bundle file"
msgstr "«%s» no sembla un fitxer de farcell v2 o v3"
-#: bundle.c:113
+#: bundle.c:118
#, c-format
msgid "unrecognized header: %s%s (%d)"
msgstr "capçalera no reconeguda: %s%s (%d)"
-#: bundle.c:140 rerere.c:464 rerere.c:674 sequencer.c:2620 sequencer.c:3406
-#: builtin/commit.c:862
+#: bundle.c:145 rerere.c:464 rerere.c:675 sequencer.c:2616 sequencer.c:3402
+#: builtin/commit.c:865
#, c-format
msgid "could not open '%s'"
msgstr "no s'ha pogut obrir «%s»"
-#: bundle.c:198
+#: bundle.c:203
msgid "Repository lacks these prerequisite commits:"
msgstr "Al repositori li manquen aquestes comissions prerequerides:"
-#: bundle.c:201
+#: bundle.c:206
msgid "need a repository to verify a bundle"
msgstr "cal un repositori per a verificar un farcell"
-#: bundle.c:257
+#: bundle.c:264
#, c-format
msgid "The bundle contains this ref:"
-msgid_plural "The bundle contains these %d refs:"
+msgid_plural "The bundle contains these %<PRIuMAX> refs:"
msgstr[0] "El farcell conté aquesta referència:"
-msgstr[1] "El farcell conté aquestes %d referències:"
+msgstr[1] "El farcell conté aquestes %<PRIuMAX> referències:"
-#: bundle.c:264
+#: bundle.c:272
msgid "The bundle records a complete history."
msgstr "El farcell registra una història completa."
-#: bundle.c:266
+#: bundle.c:274
#, c-format
msgid "The bundle requires this ref:"
-msgid_plural "The bundle requires these %d refs:"
+msgid_plural "The bundle requires these %<PRIuMAX> refs:"
msgstr[0] "El farcell requereix aquesta referència:"
-msgstr[1] "El farcell requereix aquestes %d referències:"
+msgstr[1] "El farcell requereix aquestes %<PRIuMAX> referències:"
-#: bundle.c:333
+#: bundle.c:350
msgid "unable to dup bundle descriptor"
msgstr "no s'ha pogut duplicar el descriptor del farcell"
-#: bundle.c:340
+#: bundle.c:357
msgid "Could not spawn pack-objects"
msgstr "No s'ha pogut engendrar el pack-objects"
-#: bundle.c:351
+#: bundle.c:368
msgid "pack-objects died"
msgstr "el pack-objects s'ha mort"
-#: bundle.c:400
+#: bundle.c:417
#, c-format
msgid "ref '%s' is excluded by the rev-list options"
msgstr "les opcions de la llista de revisions exclouen la referència «%s»"
-#: bundle.c:504
+#: bundle.c:533 builtin/log.c:211 builtin/log.c:1975 builtin/shortlog.c:400
+#, c-format
+msgid "unrecognized argument: %s"
+msgstr "argument no reconegut: %s"
+
+#: bundle.c:548
#, c-format
msgid "unsupported bundle version %d"
msgstr "versió del farcell no compatible %d"
-#: bundle.c:506
+#: bundle.c:550
#, c-format
msgid "cannot write bundle version %d with algorithm %s"
-msgstr "no es pot escriure la versió %d amb l'algorisme %s"
+msgstr "no es pot escriure la versió del farcell %d amb l'algorisme %s"
-#: bundle.c:524 builtin/log.c:210 builtin/log.c:1953 builtin/shortlog.c:399
-#, c-format
-msgid "unrecognized argument: %s"
-msgstr "argument no reconegut: %s"
-
-#: bundle.c:553
+#: bundle.c:600
msgid "Refusing to create empty bundle."
msgstr "S'està refusant crear un farcell buit."
-#: bundle.c:563
+#: bundle.c:610
#, c-format
msgid "cannot create '%s'"
msgstr "no es pot crear «%s»"
-#: bundle.c:588
+#: bundle.c:639
msgid "index-pack died"
msgstr "l'index-pack s'ha mort"
@@ -2219,7 +2273,7 @@ msgstr "el fragment final té un id %<PRIx32> que no és zero"
msgid "invalid color value: %.*s"
msgstr "valor de color no vàlid: %.*s"
-#: commit-graph.c:204 midx.c:51
+#: commit-graph.c:204 midx.c:52
msgid "invalid hash version"
msgstr "especificació de hash no vàlida"
@@ -2250,225 +2304,227 @@ msgid "commit-graph file is too small to hold %u chunks"
msgstr ""
"el fitxer del graf de comissions és massa petit per a guardar %u fragments"
-#: commit-graph.c:482
+#: commit-graph.c:485
msgid "commit-graph has no base graphs chunk"
msgstr "el fragment del graf de comissions no té grafs de base"
-#: commit-graph.c:492
+#: commit-graph.c:495
msgid "commit-graph chain does not match"
msgstr "la cadena del graf de comissions no coincideix"
-#: commit-graph.c:540
+#: commit-graph.c:543
#, c-format
msgid "invalid commit-graph chain: line '%s' not a hash"
msgstr ""
"la cadena del graf de comissions no és vàlida: la línia «%s» no és un hash"
-#: commit-graph.c:564
+#: commit-graph.c:567
msgid "unable to find all commit-graph files"
msgstr "no es poden trobar tots els fitxers del graf de comissions"
-#: commit-graph.c:749 commit-graph.c:786
+#: commit-graph.c:752 commit-graph.c:789
msgid "invalid commit position. commit-graph is likely corrupt"
msgstr ""
"posició de la comissió no vàlida. Probablement el graf de comissions està "
"malmès"
-#: commit-graph.c:770
+#: commit-graph.c:773
#, c-format
msgid "could not find commit %s"
msgstr "no s'ha pogut trobar la comissió %s"
-#: commit-graph.c:803
+#: commit-graph.c:806
msgid "commit-graph requires overflow generation data but has none"
msgstr ""
"el graf de comissions requereix dades de generació de desbordaments però no "
"en té cap"
-#: commit-graph.c:1108 builtin/am.c:1369
+#: commit-graph.c:1111 builtin/am.c:1370 builtin/checkout.c:775
+#: builtin/clone.c:705
#, c-format
msgid "unable to parse commit %s"
msgstr "no s'ha pogut analitzar la comissió %s"
-#: commit-graph.c:1370 builtin/pack-objects.c:3070
+#: commit-graph.c:1373 builtin/pack-objects.c:3078
#, c-format
msgid "unable to get type of object %s"
msgstr "no s'ha pogut obtenir el tipus de l'objecte: %s"
-#: commit-graph.c:1401
+#: commit-graph.c:1404
msgid "Loading known commits in commit graph"
msgstr "S'estan carregant comissions conegudes al graf de comissions"
-#: commit-graph.c:1418
+#: commit-graph.c:1421
msgid "Expanding reachable commits in commit graph"
msgstr "S'estan expandint les comissions abastables al graf de comissions"
-#: commit-graph.c:1438
+#: commit-graph.c:1441
msgid "Clearing commit marks in commit graph"
msgstr "S'estan esborrant les marques de comissions al graf de comissions"
-#: commit-graph.c:1457
+#: commit-graph.c:1460
msgid "Computing commit graph topological levels"
msgstr "S'estan calculant els nivells topològics del graf de comissions"
-#: commit-graph.c:1510
+#: commit-graph.c:1513
msgid "Computing commit graph generation numbers"
msgstr "S'estan calculant els nombres de generació del graf de comissions"
-#: commit-graph.c:1591
+#: commit-graph.c:1598
msgid "Computing commit changed paths Bloom filters"
msgstr ""
"S'estan calculant els canvis les rutes de la comissió en els filtres Bloom"
-#: commit-graph.c:1668
+#: commit-graph.c:1675
msgid "Collecting referenced commits"
msgstr "S'estan recollint els objectes referenciats"
-#: commit-graph.c:1693
+#: commit-graph.c:1701
#, c-format
-msgid "Finding commits for commit graph in %d pack"
-msgid_plural "Finding commits for commit graph in %d packs"
-msgstr[0] "S'estan cercant les comissions pel graf de comissions en %d paquet"
+msgid "Finding commits for commit graph in %<PRIuMAX> pack"
+msgid_plural "Finding commits for commit graph in %<PRIuMAX> packs"
+msgstr[0] ""
+"S'estan cercant les comissions pel graf de comissions en %<PRIuMAX> paquet"
msgstr[1] ""
-"S'estan cercant les comissions pel graf de comissions en %d paquets"
+"S'estan cercant les comissions pel graf de comissions en %<PRIuMAX> paquets"
-#: commit-graph.c:1706
+#: commit-graph.c:1714
#, c-format
msgid "error adding pack %s"
msgstr "error en afegir paquet %s"
-#: commit-graph.c:1710
+#: commit-graph.c:1718
#, c-format
msgid "error opening index for %s"
msgstr "s'ha produït un error en obrir l'índex per «%s»"
-#: commit-graph.c:1747
+#: commit-graph.c:1756
msgid "Finding commits for commit graph among packed objects"
msgstr ""
"S'estan cercant les comissions pel graf de comissions entre els objectes "
"empaquetats"
-#: commit-graph.c:1765
+#: commit-graph.c:1774
msgid "Finding extra edges in commit graph"
msgstr "S'estan cercant les vores addicionals al graf de comissions"
-#: commit-graph.c:1814
+#: commit-graph.c:1823
msgid "failed to write correct number of base graph ids"
msgstr ""
"s'ha produït un error en escriure el nombre correcte d'ids base del graf"
-#: commit-graph.c:1845 midx.c:1149
+#: commit-graph.c:1854 midx.c:1168 builtin/sparse-checkout.c:475
#, c-format
msgid "unable to create leading directories of %s"
msgstr "no s'han pogut crear els directoris inicials de «%s»"
-#: commit-graph.c:1858
+#: commit-graph.c:1868
msgid "unable to create temporary graph layer"
msgstr "no s'ha pogut crear una capa de graf temporal"
-#: commit-graph.c:1863
+#: commit-graph.c:1873
#, c-format
msgid "unable to adjust shared permissions for '%s'"
msgstr "no s'han pogut ajustar els permisos compartits per a «%s»"
-#: commit-graph.c:1920
+#: commit-graph.c:1930
#, c-format
msgid "Writing out commit graph in %d pass"
msgid_plural "Writing out commit graph in %d passes"
msgstr[0] "S'està escrivint el graf de comissions en %d pas"
msgstr[1] "S'està escrivint el graf de comissions en %d passos"
-#: commit-graph.c:1956
+#: commit-graph.c:1967
msgid "unable to open commit-graph chain file"
msgstr "no s'ha pogut obrir el fitxer d'encadenament del graf de comissions"
-#: commit-graph.c:1972
+#: commit-graph.c:1983
msgid "failed to rename base commit-graph file"
msgstr "no s'ha pogut canviar el nom del fitxer base del graf de comissions"
-#: commit-graph.c:1992
+#: commit-graph.c:2004
msgid "failed to rename temporary commit-graph file"
msgstr ""
"no s'ha pogut canviar el nom del fitxer temporal del graf de comissions"
-#: commit-graph.c:2125
+#: commit-graph.c:2137
msgid "Scanning merged commits"
msgstr "S'estan escanejant les comissions fusionades"
-#: commit-graph.c:2169
+#: commit-graph.c:2181
msgid "Merging commit-graph"
msgstr "S'està fusionant el graf de comissions"
-#: commit-graph.c:2277
+#: commit-graph.c:2289
msgid "attempting to write a commit-graph, but 'core.commitGraph' is disabled"
msgstr ""
"s'està intentant escriure un graf de comissions, però «core.commitGraph» "
"està desactivat"
-#: commit-graph.c:2384
+#: commit-graph.c:2396
msgid "too many commits to write graph"
msgstr "massa comissions per a escriure un graf"
-#: commit-graph.c:2482
+#: commit-graph.c:2494
msgid "the commit-graph file has incorrect checksum and is likely corrupt"
msgstr ""
"el fitxer commit-graph (graf de comissions) té una suma de verificació "
"incorrecta i probablement és corrupte"
-#: commit-graph.c:2492
+#: commit-graph.c:2504
#, c-format
msgid "commit-graph has incorrect OID order: %s then %s"
msgstr "el gràfic de comissions té una ordre OID incorrecta; %s llavors %s"
-#: commit-graph.c:2502 commit-graph.c:2517
+#: commit-graph.c:2514 commit-graph.c:2529
#, c-format
msgid "commit-graph has incorrect fanout value: fanout[%d] = %u != %u"
msgstr ""
"el graf de comissions té un valor de «fanout» incorrecte: fanout[%d] = %u !="
" %u"
-#: commit-graph.c:2509
+#: commit-graph.c:2521
#, c-format
msgid "failed to parse commit %s from commit-graph"
msgstr ""
"s'ha produït un error en analitzar la comissió %s del graf de comissions"
-#: commit-graph.c:2527
+#: commit-graph.c:2539
msgid "Verifying commits in commit graph"
msgstr "S'estan verificant les comissions al graf de comissions"
-#: commit-graph.c:2542
+#: commit-graph.c:2554
#, c-format
msgid "failed to parse commit %s from object database for commit-graph"
msgstr ""
"no s'han pogut analitzar la comissió %s de la base de dades d'objectes per "
"al graf de comissions"
-#: commit-graph.c:2549
+#: commit-graph.c:2561
#, c-format
msgid "root tree OID for commit %s in commit-graph is %s != %s"
msgstr ""
"OID de l'arbre arrel per a comissions %s en el graf de comissions és %s != "
"%s"
-#: commit-graph.c:2559
+#: commit-graph.c:2571
#, c-format
msgid "commit-graph parent list for commit %s is too long"
msgstr ""
"la llista de pares del graf de comissions per a la comissió %s és massa "
"llarga"
-#: commit-graph.c:2568
+#: commit-graph.c:2580
#, c-format
msgid "commit-graph parent for %s is %s != %s"
msgstr "el pare pel graf de comissions %s és %s != %s"
-#: commit-graph.c:2582
+#: commit-graph.c:2594
#, c-format
msgid "commit-graph parent list for commit %s terminates early"
msgstr "la llista pare del graf de comissions per %s acaba aviat"
-#: commit-graph.c:2587
+#: commit-graph.c:2599
#, c-format
msgid ""
"commit-graph has generation number zero for commit %s, but non-zero "
@@ -2477,7 +2533,7 @@ msgstr ""
"el graf de comissions té nombre de generació zero per a la comissió %s, però"
" té no zero en altres llocs"
-#: commit-graph.c:2591
+#: commit-graph.c:2603
#, c-format
msgid ""
"commit-graph has non-zero generation number for commit %s, but zero "
@@ -2486,32 +2542,32 @@ msgstr ""
"el graf de comissions té un nombre de generació diferent de zero per a "
"comissió %s però té zero en altres llocs"
-#: commit-graph.c:2608
+#: commit-graph.c:2620
#, c-format
msgid "commit-graph generation for commit %s is %<PRIuMAX> < %<PRIuMAX>"
msgstr ""
"generació del graf de comissions per a la comissió %s és %<PRIuMAX> < "
"%<PRIuMAX>"
-#: commit-graph.c:2614
+#: commit-graph.c:2626
#, c-format
msgid "commit date for commit %s in commit-graph is %<PRIuMAX> != %<PRIuMAX>"
msgstr ""
"la data d'enviament per a la comissió %s en el graf de comissions és "
"%<PRIuMAX> != %<PRIuMAX>"
-#: commit.c:53 sequencer.c:3109 builtin/am.c:399 builtin/am.c:444
-#: builtin/am.c:449 builtin/am.c:1448 builtin/am.c:2123 builtin/replace.c:456
+#: commit.c:54 sequencer.c:3105 builtin/am.c:400 builtin/am.c:445
+#: builtin/am.c:450 builtin/am.c:1449 builtin/am.c:2124 builtin/replace.c:456
#, c-format
msgid "could not parse %s"
msgstr "no s'ha pogut analitzar %s"
-#: commit.c:55
+#: commit.c:56
#, c-format
msgid "%s %s is not a commit!"
msgstr "%s %s no és una comissió!"
-#: commit.c:196
+#: commit.c:197
msgid ""
"Support for <GIT_DIR>/info/grafts is deprecated\n"
"and will be removed in a future Git version.\n"
@@ -2531,27 +2587,27 @@ msgstr ""
"Desactiveu aquest missatge executant\n"
"«git config advice.graftFileDeprecated false»"
-#: commit.c:1241
+#: commit.c:1252
#, c-format
msgid "Commit %s has an untrusted GPG signature, allegedly by %s."
msgstr "La comissió %s té una signatura GPG no fiable, suposadament de %s."
-#: commit.c:1245
+#: commit.c:1256
#, c-format
msgid "Commit %s has a bad GPG signature allegedly by %s."
msgstr "La comissió %s té una signatura GPG incorrecta suposadament de %s."
-#: commit.c:1248
+#: commit.c:1259
#, c-format
msgid "Commit %s does not have a GPG signature."
msgstr "La comissió %s no té signatura GPG."
-#: commit.c:1251
+#: commit.c:1262
#, c-format
msgid "Commit %s has a good GPG signature by %s\n"
msgstr "La comissió %s té una signatura GPG bona de %s\n"
-#: commit.c:1505
+#: commit.c:1516
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"
@@ -2566,7 +2622,15 @@ msgstr ""
msgid "memory exhausted"
msgstr "memòria esgotada"
-#: config.c:125
+#: compat/terminal.c:167
+msgid "cannot resume in the background, please use 'fg' to resume"
+msgstr "no es pot reprendre en segon pla, si us plau useu «fg» per a reprendre"
+
+#: compat/terminal.c:168
+msgid "cannot restore terminal settings"
+msgstr "no es poden restaurar els paràmetres del terminal"
+
+#: config.c:143
#, c-format
msgid ""
"exceeded maximum include depth (%d) while including\n"
@@ -2581,345 +2645,372 @@ msgstr ""
"\t%s\n"
"Això pot ser degut a inclusions circulars."
-#: config.c:141
+#: config.c:159
#, c-format
msgid "could not expand include path '%s'"
msgstr "no s'ha pogut expandir el camí d'inclusió «%s»"
-#: config.c:152
+#: config.c:170
msgid "relative config includes must come from files"
msgstr "les inclusions de configuració relatives han de venir de fitxers"
-#: config.c:201
+#: config.c:219
msgid "relative config include conditionals must come from files"
msgstr ""
"els condicionals d'inclusió de configuració relatius han de venir de fitxers"
-#: config.c:398
+#: config.c:364
+msgid ""
+"remote URLs cannot be configured in file directly or indirectly included by "
+"includeIf.hasconfig:remote.*.url"
+msgstr ""
+"URL remots no es poden configurar en un fitxer directament o indirectament "
+"inclòs per «includeIf.hasconfig:remote.*.url»"
+
+#: config.c:508
#, c-format
msgid "invalid config format: %s"
msgstr "format de configuració no vàlid: %s"
-#: config.c:402
+#: config.c:512
#, c-format
msgid "missing environment variable name for configuration '%.*s'"
msgstr "falta el nom de la variable d'entorn per a la configuració «%.*s»"
-#: config.c:407
+#: config.c:517
#, c-format
msgid "missing environment variable '%s' for configuration '%.*s'"
msgstr "falta la variable d'entorn «%s» per a la configuració «%.*s»"
-#: config.c:443
+#: config.c:553
#, c-format
msgid "key does not contain a section: %s"
msgstr "la clau no conté una secció: «%s»"
-#: config.c:448
+#: config.c:558
#, c-format
msgid "key does not contain variable name: %s"
msgstr "la clau no conté un nom de variable: «%s»"
-#: config.c:470 sequencer.c:2806
+#: config.c:580 sequencer.c:2802
#, c-format
msgid "invalid key: %s"
msgstr "clau no vàlida: %s"
-#: config.c:475
+#: config.c:585
#, c-format
msgid "invalid key (newline): %s"
msgstr "clau no vàlida (línia nova): %s"
-#: config.c:495
+#: config.c:605
msgid "empty config key"
msgstr "clau de configuració buida"
-#: config.c:513 config.c:525
+#: config.c:623 config.c:635
#, c-format
msgid "bogus config parameter: %s"
msgstr "paràmetre de configuració erroni: %s"
-#: config.c:539 config.c:556 config.c:563 config.c:572
+#: config.c:649 config.c:666 config.c:673 config.c:682
#, c-format
msgid "bogus format in %s"
msgstr "format erroni a %s"
-#: config.c:606
+#: config.c:716
#, c-format
msgid "bogus count in %s"
msgstr "comptatge erroni a %s"
-#: config.c:610
+#: config.c:720
#, c-format
msgid "too many entries in %s"
msgstr "hi ha massa arguments a %s"
-#: config.c:620
+#: config.c:730
#, c-format
msgid "missing config key %s"
msgstr "falta la clau de configuració %s"
-#: config.c:628
+#: config.c:738
#, c-format
msgid "missing config value %s"
msgstr "falta el valor de configuració %s"
-#: config.c:979
+#: config.c:1089
#, c-format
msgid "bad config line %d in blob %s"
msgstr "línia de configuració %d errònia en el blob %s"
-#: config.c:983
+#: config.c:1093
#, c-format
msgid "bad config line %d in file %s"
msgstr "línia de configuració %d errònia en el fitxer %s"
-#: config.c:987
+#: config.c:1097
#, c-format
msgid "bad config line %d in standard input"
msgstr "línia de configuració %d errònia en l'entrada estàndard"
-#: config.c:991
+#: config.c:1101
#, c-format
msgid "bad config line %d in submodule-blob %s"
msgstr "línia de configuració %d errònia en el blob de submòdul %s"
-#: config.c:995
+#: config.c:1105
#, c-format
msgid "bad config line %d in command line %s"
msgstr "línia de configuració %d errònia en la línia d'ordres %s"
-#: config.c:999
+#: config.c:1109
#, c-format
msgid "bad config line %d in %s"
msgstr "línia de configuració %d errònia en %s"
-#: config.c:1136
+#: config.c:1246
msgid "out of range"
msgstr "fora de rang"
-#: config.c:1136
+#: config.c:1246
msgid "invalid unit"
msgstr "unitat no vàlida"
-#: config.c:1137
+#: config.c:1247
#, c-format
msgid "bad numeric config value '%s' for '%s': %s"
msgstr "valor de configuració numèric erroni «%s» per «%s»: %s"
-#: config.c:1147
+#: config.c:1257
#, c-format
msgid "bad numeric config value '%s' for '%s' in blob %s: %s"
msgstr "valor de configuració numèric erroni «%s» per «%s» en el blob %s: %s"
-#: config.c:1150
+#: config.c:1260
#, c-format
msgid "bad numeric config value '%s' for '%s' in file %s: %s"
msgstr ""
"valor de configuració numèric «%s» erroni per «%s» en el fitxer %s: %s"
-#: config.c:1153
+#: config.c:1263
#, c-format
msgid "bad numeric config value '%s' for '%s' in standard input: %s"
msgstr ""
"valor de configuració numèric «%s» erroni per «%s» en l'entrada estàndard: "
"%s"
-#: config.c:1156
+#: config.c:1266
#, c-format
msgid "bad numeric config value '%s' for '%s' in submodule-blob %s: %s"
msgstr ""
"valor de configuració numèric «%s» erroni per «%s» en el blob de submòdul "
"%s: %s"
-#: config.c:1159
+#: config.c:1269
#, c-format
msgid "bad numeric config value '%s' for '%s' in command line %s: %s"
msgstr ""
"valor de configuració numèric «%s» erroni per «%s» en la línia d'ordres %s: "
"%s"
-#: config.c:1162
+#: config.c:1272
#, c-format
msgid "bad numeric config value '%s' for '%s' in %s: %s"
msgstr "valor de configuració numèric incorrecte «%s» per «%s» en %s: %s"
-#: config.c:1241
+#: config.c:1368
+#, c-format
+msgid "invalid value for variable %s"
+msgstr "valor no vàlid per a la variable %s"
+
+#: config.c:1389
+#, c-format
+msgid "ignoring unknown core.fsync component '%s'"
+msgstr "s'ignora el component core.fsync «%s» desconegut"
+
+#: config.c:1425
#, c-format
msgid "bad boolean config value '%s' for '%s'"
msgstr "valor de configuració booleà erroni «%s» per a «%s»"
-#: config.c:1259
+#: config.c:1443
#, c-format
msgid "failed to expand user dir in: '%s'"
msgstr "s'ha produït un error en expandir el directori d'usuari en: «%s»"
-#: config.c:1268
+#: config.c:1452
#, c-format
msgid "'%s' for '%s' is not a valid timestamp"
msgstr "«%s» per a «%s» no és una marca de temps vàlida"
-#: config.c:1361
+#: config.c:1545
#, c-format
msgid "abbrev length out of range: %d"
msgstr "la longitud d'«abbrev» està fora de rang: %d"
-#: config.c:1375 config.c:1386
+#: config.c:1559 config.c:1570
#, c-format
msgid "bad zlib compression level %d"
msgstr "nivell de compressió de zlib incorrecte %d"
-#: config.c:1476
+#: config.c:1660
msgid "core.commentChar should only be one character"
msgstr "core.commentChar només hauria de ser un caràcter"
-#: config.c:1509
+#: config.c:1692
+#, c-format
+msgid "ignoring unknown core.fsyncMethod value '%s'"
+msgstr "s'ignora el valor desconegut «%s» de core.fsyncMethod"
+
+#: config.c:1698
+msgid "core.fsyncObjectFiles is deprecated; use core.fsync instead"
+msgstr "core.fsyncObjectFiles és obsolet; useu core.fsync"
+
+#: config.c:1714
#, c-format
msgid "invalid mode for object creation: %s"
msgstr "mode de creació d'objecte no vàlid: %s"
-#: config.c:1584
+#: config.c:1800
#, c-format
msgid "malformed value for %s"
msgstr "valor no vàlid per a %s"
-#: config.c:1610
+#: config.c:1826
#, c-format
msgid "malformed value for %s: %s"
msgstr "valor no vàlid per a %s: %s"
-#: config.c:1611
+#: config.c:1827
msgid "must be one of nothing, matching, simple, upstream or current"
msgstr ""
"ha de ser un dels elements següents: nothing, matching, simple, upstream o "
"current"
-#: config.c:1672 builtin/pack-objects.c:4053
+#: config.c:1888 builtin/pack-objects.c:4078
#, c-format
msgid "bad pack compression level %d"
msgstr "nivell de compressió de paquet %d erroni"
-#: config.c:1795
+#: config.c:2014
#, c-format
msgid "unable to load config blob object '%s'"
msgstr "no s'ha pogut carregar l'objecte blob de configuració «%s»"
-#: config.c:1798
+#: config.c:2017
#, c-format
msgid "reference '%s' does not point to a blob"
msgstr "la referència «%s» no assenyala a un blob"
-#: config.c:1816
+#: config.c:2035
#, c-format
msgid "unable to resolve config blob '%s'"
msgstr "no s'ha pogut resoldre el blob de configuració: «%s»"
-#: config.c:1861
+#: config.c:2080
#, c-format
msgid "failed to parse %s"
msgstr "s'ha produït un error en analitzar %s"
-#: config.c:1917
+#: config.c:2136
msgid "unable to parse command-line config"
msgstr "no s'ha pogut analitzar la configuració de la línia d'ordres"
-#: config.c:2285
+#: config.c:2512
msgid "unknown error occurred while reading the configuration files"
msgstr ""
"un error desconegut ha ocorregut en llegir els fitxers de configuració"
-#: config.c:2459
+#: config.c:2686
#, c-format
msgid "Invalid %s: '%s'"
msgstr "%s no vàlid: «%s»"
-#: config.c:2504
+#: config.c:2731
#, c-format
msgid "splitIndex.maxPercentChange value '%d' should be between 0 and 100"
msgstr "valor «%d» a splitIndex.maxPercentChange ha d'estar entre 0 i 100"
-#: config.c:2550
+#: config.c:2763
#, c-format
msgid "unable to parse '%s' from command-line config"
msgstr "no s'ha pogut analitzar «%s» de la configuració de la línia d'ordres"
-#: config.c:2552
+#: config.c:2765
#, c-format
msgid "bad config variable '%s' in file '%s' at line %d"
msgstr "variable de configuració «%s» errònia en el fitxer «%s» a la línia %d"
-#: config.c:2637
+#: config.c:2850
#, c-format
msgid "invalid section name '%s'"
msgstr "nom de secció no vàlid «%s»"
-#: config.c:2669
+#: config.c:2882
#, c-format
msgid "%s has multiple values"
msgstr "%s té múltiples valors"
-#: config.c:2698
+#: config.c:2911
#, c-format
msgid "failed to write new configuration file %s"
msgstr "no es pot escriure un nou fitxer de configuració %s"
-#: config.c:2950 config.c:3277
+#: config.c:3177 config.c:3518
#, c-format
msgid "could not lock config file %s"
msgstr "no s'ha pogut blocar el fitxer de configuració %s"
-#: config.c:2961
+#: config.c:3188
#, c-format
msgid "opening %s"
msgstr "s'està obrint %s"
-#: config.c:2998 builtin/config.c:361
+#: config.c:3225 builtin/config.c:361
#, c-format
msgid "invalid pattern: %s"
msgstr "patró no vàlid: %s"
-#: config.c:3023
+#: config.c:3250
#, c-format
msgid "invalid config file %s"
msgstr "fitxer de configuració no vàlid %s"
-#: config.c:3036 config.c:3290
+#: config.c:3263 config.c:3531
#, c-format
msgid "fstat on %s failed"
msgstr "ha fallat «fstat» a %s"
-#: config.c:3047
+#: config.c:3274
#, c-format
msgid "unable to mmap '%s'%s"
msgstr "no s'ha pogut fer «mmap» «%s»%s"
-#: config.c:3057 config.c:3295
+#: config.c:3284 config.c:3536
#, c-format
msgid "chmod on %s failed"
msgstr "ha fallat chmod a %s"
-#: config.c:3142 config.c:3392
+#: config.c:3369 config.c:3633
#, c-format
msgid "could not write config file %s"
msgstr "no s'ha pogut escriure el fitxer de configuració «%s»"
-#: config.c:3176
+#: config.c:3403
#, c-format
msgid "could not set '%s' to '%s'"
msgstr "no s'ha pogut establir «%s» a «%s»"
-#: config.c:3178 builtin/remote.c:662 builtin/remote.c:860
-#: builtin/remote.c:868
+#: config.c:3405 builtin/remote.c:666 builtin/remote.c:885
+#: builtin/remote.c:893
#, c-format
msgid "could not unset '%s'"
msgstr "no s'ha pogut desassignar «%s»"
-#: config.c:3268
+#: config.c:3509
#, c-format
msgid "invalid section name: %s"
msgstr "nom de secció no vàlida: %s"
-#: config.c:3435
+#: config.c:3676
#, c-format
msgid "missing value for '%s'"
msgstr "falta el valor per «%s»"
@@ -3261,68 +3352,68 @@ msgid "refusing to work with credential missing protocol field"
msgstr ""
"s'ha rebutjat treballar amb credencials que no tenen el camp de protocol"
-#: credential.c:395
+#: credential.c:396
#, c-format
msgid "url contains a newline in its %s component: %s"
msgstr "url conté una línia nova en %s component: %s"
-#: credential.c:439
+#: credential.c:440
#, c-format
msgid "url has no scheme: %s"
msgstr "l'url no té esquema: %s"
-#: credential.c:512
+#: credential.c:513
#, c-format
msgid "credential url cannot be parsed: %s"
msgstr "no s'ha pogut analitzar l'URL de credencials: %s"
-#: date.c:138
+#: date.c:139
msgid "in the future"
msgstr "en el futur"
-#: date.c:144
+#: date.c:145
#, c-format
msgid "%<PRIuMAX> second ago"
msgid_plural "%<PRIuMAX> seconds ago"
msgstr[0] "fa %<PRIuMAX> segon"
msgstr[1] "fa %<PRIuMAX> segons"
-#: date.c:151
+#: date.c:152
#, c-format
msgid "%<PRIuMAX> minute ago"
msgid_plural "%<PRIuMAX> minutes ago"
msgstr[0] "fa %<PRIuMAX> minut"
msgstr[1] "fa %<PRIuMAX> minuts"
-#: date.c:158
+#: date.c:159
#, c-format
msgid "%<PRIuMAX> hour ago"
msgid_plural "%<PRIuMAX> hours ago"
msgstr[0] "fa %<PRIuMAX> hora"
msgstr[1] "fa %<PRIuMAX> hores"
-#: date.c:165
+#: date.c:166
#, c-format
msgid "%<PRIuMAX> day ago"
msgid_plural "%<PRIuMAX> days ago"
msgstr[0] "fa %<PRIuMAX> dia"
msgstr[1] "fa %<PRIuMAX> dies"
-#: date.c:171
+#: date.c:172
#, c-format
msgid "%<PRIuMAX> week ago"
msgid_plural "%<PRIuMAX> weeks ago"
msgstr[0] "fa %<PRIuMAX> setmana"
msgstr[1] "fa %<PRIuMAX> setmanes"
-#: date.c:178
+#: date.c:179
#, c-format
msgid "%<PRIuMAX> month ago"
msgid_plural "%<PRIuMAX> months ago"
msgstr[0] "fa %<PRIuMAX> mes"
msgstr[1] "fa %<PRIuMAX> mesos"
-#: date.c:189
+#: date.c:190
#, c-format
msgid "%<PRIuMAX> year"
msgid_plural "%<PRIuMAX> years"
@@ -3330,14 +3421,14 @@ msgstr[0] "%<PRIuMAX> any"
msgstr[1] "%<PRIuMAX> anys"
#. TRANSLATORS: "%s" is "<n> years"
-#: date.c:192
+#: date.c:193
#, c-format
msgid "%s, %<PRIuMAX> month ago"
msgid_plural "%s, %<PRIuMAX> months ago"
msgstr[0] "fa %s i %<PRIuMAX> mes"
msgstr[1] "fa %s i %<PRIuMAX> mesos"
-#: date.c:197 date.c:202
+#: date.c:198 date.c:203
#, c-format
msgid "%<PRIuMAX> year ago"
msgid_plural "%<PRIuMAX> years ago"
@@ -3371,10 +3462,14 @@ msgstr ""
msgid "Marked %d islands, done.\n"
msgstr "Marcades %d illes, fet.\n"
-#: diff-merges.c:70
+#: diff-merges.c:81 gpg-interface.c:719 gpg-interface.c:734 ls-refs.c:37
+#: parallel-checkout.c:42 sequencer.c:2805 setup.c:562 builtin/am.c:203
+#: builtin/am.c:2243 builtin/am.c:2287 builtin/blame.c:724 builtin/blame.c:742
+#: builtin/fetch.c:792 builtin/pack-objects.c:3515 builtin/pull.c:45
+#: builtin/pull.c:47 builtin/pull.c:321
#, c-format
-msgid "unknown value for --diff-merges: %s"
-msgstr "valor desconegut per a --diff-merges: %s"
+msgid "invalid value for '%s': '%s'"
+msgstr "valor no vàlid per a «%s»: «%s»"
#: diff-lib.c:561
msgid "--merge-base does not work with ranges"
@@ -3408,19 +3503,19 @@ msgstr ""
"No és un repositori Git. Useu --no-index per a comparar dos camins fora del "
"directori de treball"
-#: diff.c:158
+#: diff.c:159
#, c-format
msgid " Failed to parse dirstat cut-off percentage '%s'\n"
msgstr ""
" S'ha produït un error en analitzar el percentatge limitant de dirstat "
"«%s»\n"
-#: diff.c:163
+#: diff.c:164
#, c-format
msgid " Unknown dirstat parameter '%s'\n"
msgstr " Paràmetre de dirstat desconegut «%s»\n"
-#: diff.c:299
+#: diff.c:300
msgid ""
"color moved setting must be one of 'no', 'default', 'blocks', 'zebra', "
"'dimmed-zebra', 'plain'"
@@ -3428,7 +3523,7 @@ msgstr ""
"el paràmetre de color en moviment ha de ser «no», «default», «blocks», "
"«zebra», «dimmed-zebra» o «plain»"
-#: diff.c:327
+#: diff.c:328
#, c-format
msgid ""
"unknown color-moved-ws mode '%s', possible values are 'ignore-space-change',"
@@ -3438,7 +3533,7 @@ msgstr ""
"«ignore-space-change», «ignore-space-at-eol», «ignore-all-space», «allow-"
"indentation-change»"
-#: diff.c:335
+#: diff.c:336
msgid ""
"color-moved-ws: allow-indentation-change cannot be combined with other "
"whitespace modes"
@@ -3446,13 +3541,13 @@ msgstr ""
"color-moved-ws: allow-indentation-change no es pot combinar amb altres modes"
" d'espai en blanc"
-#: diff.c:412
+#: diff.c:413
#, c-format
msgid "Unknown value for 'diff.submodule' config variable: '%s'"
msgstr ""
"Valor desconegut de la variable de configuració de «diff.submodule»: «%s»"
-#: diff.c:472
+#: diff.c:473
#, c-format
msgid ""
"Found errors in 'diff.dirstat' config variable:\n"
@@ -3461,49 +3556,49 @@ msgstr ""
"S'han trobat errors en la variable de configuració «diff.dirstat»:\n"
"%s"
-#: diff.c:4237
+#: diff.c:4282
#, c-format
msgid "external diff died, stopping at %s"
msgstr "el diff external s'ha mort, s'està aturant a %s"
-#: diff.c:4589
+#: diff.c:4677 parse-options.c:1114
#, c-format
msgid "options '%s', '%s', '%s', and '%s' cannot be used together"
msgstr "les opcions «%s», «%s», «%s», i «%s» no es poden usar juntes"
-#: diff.c:4593 builtin/difftool.c:736 builtin/log.c:1982
-#: builtin/worktree.c:506
+#: diff.c:4681 parse-options.c:1118 builtin/worktree.c:578
#, c-format
msgid "options '%s', '%s', and '%s' cannot be used together"
msgstr "les opcions «%s», «%s», i «%s» no es poden usar juntes"
-#: diff.c:4597
+#: diff.c:4685
#, c-format
msgid "options '%s' and '%s' cannot be used together, use '%s' with '%s'"
msgstr "les opcions «%s» i «%s» no es poden usar juntes, useu «%s» amb «%s»"
-#: diff.c:4601
+#: diff.c:4689
#, c-format
msgid ""
"options '%s' and '%s' cannot be used together, use '%s' with '%s' and '%s'"
-msgstr "les opcions «%s» i «%s» no es poden usar juntes, useu «%s» amb «%s» i «%s»"
+msgstr ""
+"les opcions «%s» i «%s» no es poden usar juntes, useu «%s» amb «%s» i «%s»"
-#: diff.c:4681
+#: diff.c:4769
msgid "--follow requires exactly one pathspec"
msgstr "--follow requereix exactament una especificació de camí"
-#: diff.c:4729
+#: diff.c:4823
#, c-format
msgid "invalid --stat value: %s"
msgstr "valor --stat no vàlid: %s"
-#: diff.c:4734 diff.c:4739 diff.c:4744 diff.c:4749 diff.c:5277
+#: diff.c:4828 diff.c:4833 diff.c:4838 diff.c:4843 diff.c:5319
#: parse-options.c:217 parse-options.c:221
#, c-format
msgid "%s expects a numerical value"
msgstr "%s espera un valor numèric"
-#: diff.c:4766
+#: diff.c:4860
#, c-format
msgid ""
"Failed to parse --dirstat/-X option parameter:\n"
@@ -3512,199 +3607,199 @@ msgstr ""
"S'ha produït un error en analitzar el paràmetre d'opció de --dirstat/-X:\n"
"%s"
-#: diff.c:4851
+#: diff.c:4893
#, c-format
msgid "unknown change class '%c' in --diff-filter=%s"
msgstr "classe de canvi «%c» desconeguda a --diff-filter=%s"
-#: diff.c:4875
+#: diff.c:4917
#, c-format
msgid "unknown value after ws-error-highlight=%.*s"
msgstr "valor desconegut després de ws-error-highlight=%.*s"
-#: diff.c:4889
+#: diff.c:4931
#, c-format
msgid "unable to resolve '%s'"
msgstr "no s'ha pogut resoldre «%s»"
-#: diff.c:4939 diff.c:4945
+#: diff.c:4981 diff.c:4987
#, c-format
msgid "%s expects <n>/<m> form"
msgstr "%s espera una forma <n>/<m>"
-#: diff.c:4957
+#: diff.c:4999
#, c-format
msgid "%s expects a character, got '%s'"
msgstr "%s esperava un caràcter, s'ha rebut «%s»"
-#: diff.c:4978
+#: diff.c:5020
#, c-format
msgid "bad --color-moved argument: %s"
msgstr "argument --color-moved incorrecte: %s"
-#: diff.c:4997
+#: diff.c:5039
#, c-format
msgid "invalid mode '%s' in --color-moved-ws"
msgstr "mode «%s» no vàlid en --color-moved-ws"
-#: diff.c:5037
+#: diff.c:5079
msgid "option diff-algorithm accepts \"myers\", \"minimal\", \"patience\" and \"histogram\""
msgstr ""
"l'opció diff-algorithm accepta «myers», «minimal», «patience» i «histogram»"
-#: diff.c:5073 diff.c:5093
+#: diff.c:5115 diff.c:5135
#, c-format
msgid "invalid argument to %s"
msgstr "argument no vàlid a %s"
-#: diff.c:5197
+#: diff.c:5239
#, c-format
msgid "invalid regex given to -I: '%s'"
msgstr "expressió regular donada a -I: no vàlida: «%s»"
-#: diff.c:5246
+#: diff.c:5288
#, c-format
msgid "failed to parse --submodule option parameter: '%s'"
msgstr ""
"s'ha produït un error en analitzar el paràmetre d'opció de --submodule: «%s»"
-#: diff.c:5302
+#: diff.c:5344
#, c-format
msgid "bad --word-diff argument: %s"
msgstr "argument --word-diff incorrecte: %s"
-#: diff.c:5338
+#: diff.c:5380
msgid "Diff output format options"
msgstr "Opcions del format de sortida del diff"
-#: diff.c:5340 diff.c:5346
+#: diff.c:5382 diff.c:5388
msgid "generate patch"
msgstr "genera el pedaç"
-#: diff.c:5343 builtin/log.c:179
+#: diff.c:5385 builtin/log.c:180
msgid "suppress diff output"
msgstr "omet la sortida de diferències"
-#: diff.c:5348 diff.c:5462 diff.c:5469
+#: diff.c:5390 diff.c:5504 diff.c:5511
msgid "<n>"
msgstr "<n>"
-#: diff.c:5349 diff.c:5352
+#: diff.c:5391 diff.c:5394
msgid "generate diffs with <n> lines context"
msgstr "genera diffs amb <n> línies de context"
-#: diff.c:5354
+#: diff.c:5396
msgid "generate the diff in raw format"
msgstr "genera el diff en format cru"
-#: diff.c:5357
+#: diff.c:5399
msgid "synonym for '-p --raw'"
msgstr "sinònim de «-p --raw»"
-#: diff.c:5361
+#: diff.c:5403
msgid "synonym for '-p --stat'"
msgstr "sinònim de «-p --stat»"
-#: diff.c:5365
+#: diff.c:5407
msgid "machine friendly --stat"
msgstr "llegible per màquina --stat"
-#: diff.c:5368
+#: diff.c:5410
msgid "output only the last line of --stat"
msgstr "mostra només l'última línia de --stat"
-#: diff.c:5370 diff.c:5378
+#: diff.c:5412 diff.c:5420
msgid "<param1,param2>..."
msgstr "<param1,param2>..."
-#: diff.c:5371
+#: diff.c:5413
msgid ""
"output the distribution of relative amount of changes for each sub-directory"
msgstr ""
"genera la distribució de la quantitat relativa de canvis per a cada "
"subdirectori"
-#: diff.c:5375
+#: diff.c:5417
msgid "synonym for --dirstat=cumulative"
msgstr "sinònim de --dirstat=cumulative"
-#: diff.c:5379
+#: diff.c:5421
msgid "synonym for --dirstat=files,param1,param2..."
msgstr "sinònim de --dirstat=files,param1,param2..."
-#: diff.c:5383
+#: diff.c:5425
msgid "warn if changes introduce conflict markers or whitespace errors"
msgstr ""
"avisa si els canvis introdueixen marcadors en conflicte o errors d'espai en "
"blanc"
-#: diff.c:5386
+#: diff.c:5428
msgid "condensed summary such as creations, renames and mode changes"
msgstr "resum condensat com ara creacions, canvis de nom i mode"
-#: diff.c:5389
+#: diff.c:5431
msgid "show only names of changed files"
msgstr "mostra només els noms de fitxers canviats"
-#: diff.c:5392
+#: diff.c:5434
msgid "show only names and status of changed files"
msgstr "mostra només els noms i l'estat dels fitxers canviats"
-#: diff.c:5394
+#: diff.c:5436
msgid "<width>[,<name-width>[,<count>]]"
msgstr "<amplada>[<amplada-nom>[,<recompte>]]"
-#: diff.c:5395
+#: diff.c:5437
msgid "generate diffstat"
msgstr "genera diffstat"
-#: diff.c:5397 diff.c:5400 diff.c:5403
+#: diff.c:5439 diff.c:5442 diff.c:5445
msgid "<width>"
msgstr "<amplada>"
-#: diff.c:5398
+#: diff.c:5440
msgid "generate diffstat with a given width"
msgstr "genera diffstat amb una amplada donada"
-#: diff.c:5401
+#: diff.c:5443
msgid "generate diffstat with a given name width"
msgstr "genera diffstat amb un nom d'amplada donat"
-#: diff.c:5404
+#: diff.c:5446
msgid "generate diffstat with a given graph width"
msgstr "genera diffstat amb una amplada de graf donada"
-#: diff.c:5406
+#: diff.c:5448
msgid "<count>"
msgstr "<comptador>"
-#: diff.c:5407
+#: diff.c:5449
msgid "generate diffstat with limited lines"
msgstr "genera diffstat amb línies limitades"
-#: diff.c:5410
+#: diff.c:5452
msgid "generate compact summary in diffstat"
msgstr "genera un resum compacte a diffstat"
-#: diff.c:5413
+#: diff.c:5455
msgid "output a binary diff that can be applied"
msgstr "diff amb sortida binària que pot ser aplicada"
-#: diff.c:5416
+#: diff.c:5458
msgid "show full pre- and post-image object names on the \"index\" lines"
msgstr ""
"mostra els noms complets dels objectes pre i post-imatge a les línies "
"«index»"
-#: diff.c:5418
+#: diff.c:5460
msgid "show colored diff"
msgstr "mostra un diff amb colors"
-#: diff.c:5419
+#: diff.c:5461
msgid "<kind>"
msgstr "<kind>"
-#: diff.c:5420
+#: diff.c:5462
msgid ""
"highlight whitespace errors in the 'context', 'old' or 'new' lines in the "
"diff"
@@ -3712,7 +3807,7 @@ msgstr ""
"ressalta els errors d'espai en blanc a les línies «context», «old» o «new» "
"al diff"
-#: diff.c:5423
+#: diff.c:5465
msgid ""
"do not munge pathnames and use NULs as output field terminators in --raw or "
"--numstat"
@@ -3720,92 +3815,92 @@ msgstr ""
"no consolidis els noms de camí i utilitza NULs com a terminadors de camp de "
"sortida en --raw o --numstat"
-#: diff.c:5426 diff.c:5429 diff.c:5432 diff.c:5541
+#: diff.c:5468 diff.c:5471 diff.c:5474 diff.c:5583
msgid "<prefix>"
msgstr "<prefix>"
-#: diff.c:5427
+#: diff.c:5469
msgid "show the given source prefix instead of \"a/\""
msgstr "mostra el prefix d'origen donat en lloc de «a/»"
-#: diff.c:5430
+#: diff.c:5472
msgid "show the given destination prefix instead of \"b/\""
msgstr "mostra el prefix de destinació indicat en lloc de «b/»"
-#: diff.c:5433
+#: diff.c:5475
msgid "prepend an additional prefix to every line of output"
msgstr "afegir un prefix addicional per a cada línia de sortida"
-#: diff.c:5436
+#: diff.c:5478
msgid "do not show any source or destination prefix"
msgstr "no mostris cap prefix d'origen o destí"
-#: diff.c:5439
+#: diff.c:5481
msgid "show context between diff hunks up to the specified number of lines"
msgstr ""
"mostra el context entre trossos de diferència fins al nombre especificat de "
"línies"
-#: diff.c:5443 diff.c:5448 diff.c:5453
+#: diff.c:5485 diff.c:5490 diff.c:5495
msgid "<char>"
msgstr "<char>"
-#: diff.c:5444
+#: diff.c:5486
msgid "specify the character to indicate a new line instead of '+'"
msgstr ""
"especifiqueu el caràcter per a indicar una línia nova en comptes de «+»"
-#: diff.c:5449
+#: diff.c:5491
msgid "specify the character to indicate an old line instead of '-'"
msgstr ""
"especifiqueu el caràcter per a indicar una línia antiga en comptes de «-»"
-#: diff.c:5454
+#: diff.c:5496
msgid "specify the character to indicate a context instead of ' '"
msgstr "especifiqueu el caràcter per a indicar context en comptes de « »"
-#: diff.c:5457
+#: diff.c:5499
msgid "Diff rename options"
msgstr "Opcions de canvi de nom del diff"
-#: diff.c:5458
+#: diff.c:5500
msgid "<n>[/<m>]"
msgstr "<n>[/<m>]"
-#: diff.c:5459
+#: diff.c:5501
msgid "break complete rewrite changes into pairs of delete and create"
msgstr ""
"divideix els canvis de reescriptura completa en parells de suprimir i crear"
-#: diff.c:5463
+#: diff.c:5505
msgid "detect renames"
msgstr "detecta els canvis de noms"
-#: diff.c:5467
+#: diff.c:5509
msgid "omit the preimage for deletes"
msgstr "omet les preimatges per les supressions"
-#: diff.c:5470
+#: diff.c:5512
msgid "detect copies"
msgstr "detecta còpies"
-#: diff.c:5474
+#: diff.c:5516
msgid "use unmodified files as source to find copies"
msgstr "usa els fitxers no modificats com a font per a trobar còpies"
-#: diff.c:5476
+#: diff.c:5518
msgid "disable rename detection"
msgstr "inhabilita la detecció de canvis de nom"
-#: diff.c:5479
+#: diff.c:5521
msgid "use empty blobs as rename source"
msgstr "usa els blobs buits com a font de canvi de nom"
-#: diff.c:5481
+#: diff.c:5523
msgid "continue listing the history of a file beyond renames"
msgstr "continua llistant l'històric d'un fitxer més enllà dels canvis de nom"
-#: diff.c:5484
+#: diff.c:5526
msgid ""
"prevent rename/copy detection if the number of rename/copy targets exceeds "
"given limit"
@@ -3813,162 +3908,162 @@ msgstr ""
"evita la detecció de canvi de nom/còpia si el nombre d'objectius de canvi de"
" nom/còpia supera el límit indicat"
-#: diff.c:5486
+#: diff.c:5528
msgid "Diff algorithm options"
msgstr "Opcions de l'algorisme Diff"
-#: diff.c:5488
+#: diff.c:5530
msgid "produce the smallest possible diff"
msgstr "produeix el diff més petit possible"
-#: diff.c:5491
+#: diff.c:5533
msgid "ignore whitespace when comparing lines"
msgstr "ignora els espais en blanc en comparar línies"
-#: diff.c:5494
+#: diff.c:5536
msgid "ignore changes in amount of whitespace"
msgstr "ignora els canvis en la quantitat d'espai en blanc"
-#: diff.c:5497
+#: diff.c:5539
msgid "ignore changes in whitespace at EOL"
msgstr "ignora els canvis d'espai en blanc al final de la línia"
-#: diff.c:5500
+#: diff.c:5542
msgid "ignore carrier-return at the end of line"
msgstr "ignora els retorns de línia al final de la línia"
-#: diff.c:5503
+#: diff.c:5545
msgid "ignore changes whose lines are all blank"
msgstr "ignora els canvis en línies que estan en blanc"
-#: diff.c:5505 diff.c:5527 diff.c:5530 diff.c:5575
+#: diff.c:5547 diff.c:5569 diff.c:5572 diff.c:5617
msgid "<regex>"
msgstr "<regex>"
-#: diff.c:5506
+#: diff.c:5548
msgid "ignore changes whose all lines match <regex>"
msgstr "ignora els canvis en les línies que coincideixen amb <regex>"
-#: diff.c:5509
+#: diff.c:5551
msgid "heuristic to shift diff hunk boundaries for easy reading"
msgstr ""
"heurística per a desplaçar els límits del tros de diferència per a una "
"lectura fàcil"
-#: diff.c:5512
+#: diff.c:5554
msgid "generate diff using the \"patience diff\" algorithm"
msgstr "genera diff usant l'algorisme «patience diff»"
-#: diff.c:5516
+#: diff.c:5558
msgid "generate diff using the \"histogram diff\" algorithm"
msgstr "genera diff usant l'algorisme «histogram diff»"
-#: diff.c:5518
+#: diff.c:5560
msgid "<algorithm>"
msgstr "<algorisme>"
-#: diff.c:5519
+#: diff.c:5561
msgid "choose a diff algorithm"
msgstr "trieu un algorisme per al diff"
-#: diff.c:5521
+#: diff.c:5563
msgid "<text>"
msgstr "<text>"
-#: diff.c:5522
+#: diff.c:5564
msgid "generate diff using the \"anchored diff\" algorithm"
msgstr "genera diff usant l'algorisme «anchored diff»"
-#: diff.c:5524 diff.c:5533 diff.c:5536
+#: diff.c:5566 diff.c:5575 diff.c:5578
msgid "<mode>"
msgstr "<mode>"
-#: diff.c:5525
+#: diff.c:5567
msgid "show word diff, using <mode> to delimit changed words"
msgstr ""
"mostra el diff de paraules usant <mode> per a delimitar les paraules "
"modificades"
-#: diff.c:5528
+#: diff.c:5570
msgid "use <regex> to decide what a word is"
msgstr "utilitza <regex> per a decidir què és una paraula"
-#: diff.c:5531
+#: diff.c:5573
msgid "equivalent to --word-diff=color --word-diff-regex=<regex>"
msgstr "equivalent a --word-diff=color --word-diff-regex=<regex>"
-#: diff.c:5534
+#: diff.c:5576
msgid "moved lines of code are colored differently"
msgstr "les línies de codi que s'ha mogut s'acoloreixen diferent"
-#: diff.c:5537
+#: diff.c:5579
msgid "how white spaces are ignored in --color-moved"
msgstr "com s'ignoren els espais en blanc a --color-moved"
-#: diff.c:5540
+#: diff.c:5582
msgid "Other diff options"
msgstr "Altres opcions diff"
-#: diff.c:5542
+#: diff.c:5584
msgid "when run from subdir, exclude changes outside and show relative paths"
msgstr ""
"quan s'executa des d'un subdirectori, exclou els canvis de fora i mostra els"
" camins relatius"
-#: diff.c:5546
+#: diff.c:5588
msgid "treat all files as text"
msgstr "tracta tots els fitxers com a text"
-#: diff.c:5548
+#: diff.c:5590
msgid "swap two inputs, reverse the diff"
msgstr "intercanvia les dues entrades, inverteix el diff"
-#: diff.c:5550
+#: diff.c:5592
msgid "exit with 1 if there were differences, 0 otherwise"
msgstr "surt amb 1 si hi ha diferències, 0 en cas contrari"
-#: diff.c:5552
+#: diff.c:5594
msgid "disable all output of the program"
msgstr "inhabilita totes les sortides del programa"
-#: diff.c:5554
+#: diff.c:5596
msgid "allow an external diff helper to be executed"
msgstr "permet executar un ajudant de diff extern"
-#: diff.c:5556
+#: diff.c:5598
msgid "run external text conversion filters when comparing binary files"
msgstr ""
"executa els filtres externs de conversió de text en comparar fitxers binaris"
-#: diff.c:5558
+#: diff.c:5600
msgid "<when>"
msgstr "<quan>"
-#: diff.c:5559
+#: diff.c:5601
msgid "ignore changes to submodules in the diff generation"
msgstr "ignora els canvis als submòduls en la generació del diff"
-#: diff.c:5562
+#: diff.c:5604
msgid "<format>"
msgstr "<format>"
-#: diff.c:5563
+#: diff.c:5605
msgid "specify how differences in submodules are shown"
msgstr "especifiqueu com es mostren els canvis als submòduls"
-#: diff.c:5567
+#: diff.c:5609
msgid "hide 'git add -N' entries from the index"
msgstr "amaga les entrades «git add -N» de l'índex"
-#: diff.c:5570
+#: diff.c:5612
msgid "treat 'git add -N' entries as real in the index"
msgstr "tracta les entrades «git add -N» com a reals a l'índex"
-#: diff.c:5572
+#: diff.c:5614
msgid "<string>"
msgstr "<cadena>"
-#: diff.c:5573
+#: diff.c:5615
msgid ""
"look for differences that change the number of occurrences of the specified "
"string"
@@ -3976,7 +4071,7 @@ msgstr ""
"cerca les diferències que canvien el nombre d'ocurrències de la cadena "
"especificada"
-#: diff.c:5576
+#: diff.c:5618
msgid ""
"look for differences that change the number of occurrences of the specified "
"regex"
@@ -3984,35 +4079,35 @@ msgstr ""
"cerca les diferències que canvien el nombre d'ocurrències de l'expressió "
"regular especificada"
-#: diff.c:5579
+#: diff.c:5621
msgid "show all changes in the changeset with -S or -G"
msgstr "mostra tots els canvis amb el conjunt de canvis amb -S o -G"
-#: diff.c:5582
+#: diff.c:5624
msgid "treat <string> in -S as extended POSIX regular expression"
msgstr "tracta <cadena> a -S com a expressió regular POSIX ampliada"
-#: diff.c:5585
+#: diff.c:5627
msgid "control the order in which files appear in the output"
msgstr "controla l'ordre amb el qual els fitxers apareixen en la sortida"
-#: diff.c:5586 diff.c:5589
+#: diff.c:5628 diff.c:5631
msgid "<path>"
msgstr "<camí>"
-#: diff.c:5587
+#: diff.c:5629
msgid "show the change in the specified path first"
msgstr "mostra el canvi primer al camí especificat"
-#: diff.c:5590
+#: diff.c:5632
msgid "skip the output to the specified path"
msgstr "omet la sortida al camí especificat"
-#: diff.c:5592
+#: diff.c:5634
msgid "<object-id>"
msgstr "<id de l'objecte>"
-#: diff.c:5593
+#: diff.c:5635
msgid ""
"look for differences that change the number of occurrences of the specified "
"object"
@@ -4020,33 +4115,33 @@ msgstr ""
"cerca les diferències que canvien el nombre d'ocurrències de l'objecte "
"especificat"
-#: diff.c:5595
+#: diff.c:5637
msgid "[(A|C|D|M|R|T|U|X|B)...[*]]"
msgstr "[(A|C|D|M|R|T|U|X|B)...[*]]"
-#: diff.c:5596
+#: diff.c:5638
msgid "select files by diff type"
msgstr "seleccioneu els fitxers per tipus de diff"
-#: diff.c:5598
+#: diff.c:5640
msgid "<file>"
msgstr "<fitxer>"
-#: diff.c:5599
-msgid "Output to a specific file"
-msgstr "Sortida a un fitxer específic"
+#: diff.c:5641
+msgid "output to a specific file"
+msgstr "sortida a un fitxer específic"
-#: diff.c:6257
+#: diff.c:6321
msgid "exhaustive rename detection was skipped due to too many files."
msgstr ""
"s'ha omès la detecció de canvi de nom exhaustiva perquè hi ha massa fitxers."
-#: diff.c:6260
+#: diff.c:6324
msgid "only found copies from modified paths due to too many files."
msgstr ""
"només s'han trobat còpies des de camins modificats perquè de massa fitxers."
-#: diff.c:6263
+#: diff.c:6327
#, c-format
msgid ""
"you may want to set your %s variable to at least %d and retry the command."
@@ -4100,39 +4195,39 @@ msgstr "inhabilita la coincidència de patrons «cone»"
msgid "cannot use %s as an exclude file"
msgstr "no es pot usar %s com a fitxer d'exclusió"
-#: dir.c:2418
+#: dir.c:2419
#, c-format
msgid "could not open directory '%s'"
msgstr "no s'ha pogut obrir el directori «%s»"
-#: dir.c:2720
+#: dir.c:2721
msgid "failed to get kernel name and information"
msgstr "s'ha produït un error en obtenir el nombre i la informació del nucli"
-#: dir.c:2844
+#: dir.c:2846
msgid "untracked cache is disabled on this system or location"
msgstr ""
"la memòria cau no seguida està inhabilitada en aquest sistema o ubicació"
-#: dir.c:3112
+#: dir.c:3119
msgid ""
"No directory name could be guessed.\n"
"Please specify a directory on the command line"
msgstr ""
-"No s'ha pogut endevinar cap nom de directori.\n"
+"No s'ha pogut deduir cap nom de directori.\n"
"Especifiqueu un directori en la línia d'ordres"
-#: dir.c:3800
+#: dir.c:3807
#, c-format
msgid "index file corrupt in repo %s"
msgstr "el fitxer d'índex al repositori %s és malmès"
-#: dir.c:3847 dir.c:3852
+#: dir.c:3854 dir.c:3859
#, c-format
msgid "could not create directories for %s"
msgstr "no s'han pogut crear directoris per %s"
-#: dir.c:3881
+#: dir.c:3888
#, c-format
msgid "could not migrate git directory from '%s' to '%s'"
msgstr "no s'ha pogut migrar el directori de «%s» a «%s»"
@@ -4151,7 +4246,7 @@ msgstr "S'està filtrant el contingut"
msgid "could not stat file '%s'"
msgstr "no s'ha pogut fer «stat» sobre el fitxer «%s»"
-#: environment.c:145
+#: environment.c:147
#, c-format
msgid "bad git namespace path \"%s\""
msgstr "camí d'espai de noms git incorrecte «%s»"
@@ -4184,250 +4279,275 @@ msgstr "git fetch-pack: s'esperava ACK/NAK, s'ha rebut «%s»"
msgid "unable to write to remote"
msgstr "no s'ha pogut escriure al remot"
-#: fetch-pack.c:395 fetch-pack.c:1439
+#: fetch-pack.c:397 fetch-pack.c:1460
#, c-format
msgid "invalid shallow line: %s"
msgstr "línia de shallow no vàlida: %s"
-#: fetch-pack.c:401 fetch-pack.c:1445
+#: fetch-pack.c:403 fetch-pack.c:1466
#, c-format
msgid "invalid unshallow line: %s"
msgstr "línia d'unshallow no vàlida: %s"
-#: fetch-pack.c:403 fetch-pack.c:1447
+#: fetch-pack.c:405 fetch-pack.c:1468
#, c-format
msgid "object not found: %s"
msgstr "objecte no trobat: %s"
-#: fetch-pack.c:406 fetch-pack.c:1450
+#: fetch-pack.c:408 fetch-pack.c:1471
#, c-format
msgid "error in object: %s"
msgstr "error en objecte: %s"
-#: fetch-pack.c:408 fetch-pack.c:1452
+#: fetch-pack.c:410 fetch-pack.c:1473
#, c-format
msgid "no shallow found: %s"
msgstr "no s'ha trobat cap shallow: %s"
-#: fetch-pack.c:411 fetch-pack.c:1456
+#: fetch-pack.c:413 fetch-pack.c:1477
#, c-format
msgid "expected shallow/unshallow, got %s"
msgstr "s'esperava shallow/unshallow, s'ha rebut %s"
-#: fetch-pack.c:451
+#: fetch-pack.c:453
#, c-format
msgid "got %s %d %s"
msgstr "s'ha rebut %s %d %s"
-#: fetch-pack.c:468
+#: fetch-pack.c:470
#, c-format
msgid "invalid commit %s"
msgstr "comissió no vàlida %s"
-#: fetch-pack.c:499
+#: fetch-pack.c:501
msgid "giving up"
msgstr "s'abandona"
-#: fetch-pack.c:512 progress.c:339
+#: fetch-pack.c:514 progress.h:25
msgid "done"
msgstr "fet"
-#: fetch-pack.c:524
+#: fetch-pack.c:526
#, c-format
msgid "got %s (%d) %s"
msgstr "s'ha rebut %s (%d) %s"
-#: fetch-pack.c:560
+#: fetch-pack.c:562
#, c-format
msgid "Marking %s as complete"
msgstr "S'està marcant %s com a complet"
-#: fetch-pack.c:775
+#: fetch-pack.c:784
#, c-format
msgid "already have %s (%s)"
msgstr "ja es té %s (%s)"
-#: fetch-pack.c:861
+#: fetch-pack.c:870
msgid "fetch-pack: unable to fork off sideband demultiplexer"
msgstr ""
"fetch-pack: no s'ha pogut bifurcar del desmultiplexor de banda lateral"
-#: fetch-pack.c:869
+#: fetch-pack.c:878
msgid "protocol error: bad pack header"
msgstr "error de protocol: capçalera de paquet errònia"
-#: fetch-pack.c:965
+#: fetch-pack.c:974
#, c-format
msgid "fetch-pack: unable to fork off %s"
msgstr "fetch-pack: no es pot bifurcar de %s"
-#: fetch-pack.c:971
+#: fetch-pack.c:980
msgid "fetch-pack: invalid index-pack output"
msgstr "fetch-pack: sortida d'index-pack no vàlida"
-#: fetch-pack.c:988
+#: fetch-pack.c:997
#, c-format
msgid "%s failed"
msgstr "%s ha fallat"
-#: fetch-pack.c:990
+#: fetch-pack.c:999
msgid "error in sideband demultiplexer"
msgstr "error en desmultiplexor de banda lateral"
-#: fetch-pack.c:1035
+#: fetch-pack.c:1048
#, c-format
msgid "Server version is %.*s"
msgstr "La versió del servidor és %.*s"
-#: fetch-pack.c:1043 fetch-pack.c:1049 fetch-pack.c:1052 fetch-pack.c:1058
-#: fetch-pack.c:1062 fetch-pack.c:1066 fetch-pack.c:1070 fetch-pack.c:1074
-#: fetch-pack.c:1078 fetch-pack.c:1082 fetch-pack.c:1086 fetch-pack.c:1090
-#: fetch-pack.c:1096 fetch-pack.c:1102 fetch-pack.c:1107 fetch-pack.c:1112
+#: fetch-pack.c:1056 fetch-pack.c:1062 fetch-pack.c:1065 fetch-pack.c:1071
+#: fetch-pack.c:1075 fetch-pack.c:1079 fetch-pack.c:1083 fetch-pack.c:1087
+#: fetch-pack.c:1091 fetch-pack.c:1095 fetch-pack.c:1099 fetch-pack.c:1103
+#: fetch-pack.c:1109 fetch-pack.c:1115 fetch-pack.c:1120 fetch-pack.c:1125
#, c-format
msgid "Server supports %s"
msgstr "El servidor accepta %s"
-#: fetch-pack.c:1045
+#: fetch-pack.c:1058
msgid "Server does not support shallow clients"
msgstr "El servidor no permet clients superficials"
-#: fetch-pack.c:1105
+#: fetch-pack.c:1118
msgid "Server does not support --shallow-since"
msgstr "El servidor no admet --shallow-since"
-#: fetch-pack.c:1110
+#: fetch-pack.c:1123
msgid "Server does not support --shallow-exclude"
msgstr "El servidor no admet --shallow-exclude"
-#: fetch-pack.c:1114
+#: fetch-pack.c:1127
msgid "Server does not support --deepen"
msgstr "El servidor no admet --deepen"
-#: fetch-pack.c:1116
+#: fetch-pack.c:1129
msgid "Server does not support this repository's object format"
msgstr ""
"El servidor no és compatible amb el format d'objecte d'aquest repositori"
-#: fetch-pack.c:1129
+#: fetch-pack.c:1142
msgid "no common commits"
msgstr "cap comissió en comú"
-#: fetch-pack.c:1138 fetch-pack.c:1485 builtin/clone.c:1130
+#: fetch-pack.c:1151 fetch-pack.c:1506 builtin/clone.c:1166
msgid "source repository is shallow, reject to clone."
msgstr "el repositori font és superficial, es rebutja clonar-ho."
-#: fetch-pack.c:1144 fetch-pack.c:1681
+#: fetch-pack.c:1157 fetch-pack.c:1705
msgid "git fetch-pack: fetch failed."
msgstr "git fetch-pack: l'obtenció ha fallat."
-#: fetch-pack.c:1258
+#: fetch-pack.c:1271
#, c-format
msgid "mismatched algorithms: client %s; server %s"
msgstr "algoritmes no coincidents: client %s; servidor %s"
-#: fetch-pack.c:1262
+#: fetch-pack.c:1275
#, c-format
msgid "the server does not support algorithm '%s'"
msgstr "el servidor no és compatible amb l'algorisme «%s»"
-#: fetch-pack.c:1295
+#: fetch-pack.c:1308
msgid "Server does not support shallow requests"
msgstr "El servidor no permet sol·licituds superficials"
-#: fetch-pack.c:1302
+#: fetch-pack.c:1315
msgid "Server supports filter"
msgstr "El servidor accepta filtratge"
-#: fetch-pack.c:1345 fetch-pack.c:2063
+#: fetch-pack.c:1358 fetch-pack.c:2087
msgid "unable to write request to remote"
msgstr "no s'ha pogut escriure la sol·licitud al remot"
-#: fetch-pack.c:1363
+#: fetch-pack.c:1376
#, c-format
msgid "error reading section header '%s'"
msgstr "error en llegir la capçalera de la secció «%s»"
-#: fetch-pack.c:1369
+#: fetch-pack.c:1382
#, c-format
msgid "expected '%s', received '%s'"
msgstr "s'esperava «%s», s'ha rebut «%s»"
-#: fetch-pack.c:1403
+#: fetch-pack.c:1416
#, c-format
msgid "unexpected acknowledgment line: '%s'"
msgstr "línia de confirmació inesperada: «%s»"
-#: fetch-pack.c:1408
+#: fetch-pack.c:1421
#, c-format
msgid "error processing acks: %d"
msgstr "s'ha produït un error en processar els acks: %d"
-#: fetch-pack.c:1418
-msgid "expected packfile to be sent after 'ready'"
-msgstr "s'esperava l'enviament del fitxer de paquet després de «ready»"
+#. TRANSLATORS: The parameter will be 'ready', a protocol
+#. keyword.
+#: fetch-pack.c:1435
+#, c-format
+msgid "expected packfile to be sent after '%s'"
+msgstr "s'esperava que el fitxer de paquet s'enviés després de «%s»"
-#: fetch-pack.c:1420
-msgid "expected no other sections to be sent after no 'ready'"
-msgstr "s'esperava que no s'enviés cap altra secció després de no «ready»"
+#. TRANSLATORS: The parameter will be 'ready', a protocol
+#. keyword.
+#: fetch-pack.c:1441
+#, c-format
+msgid "expected no other sections to be sent after no '%s'"
+msgstr "no s'esperava que cap altra secció s'enviés després de «%s»"
-#: fetch-pack.c:1461
+#: fetch-pack.c:1482
#, c-format
msgid "error processing shallow info: %d"
msgstr "s'ha produït un error en processar la informació superficial: %d"
-#: fetch-pack.c:1510
+#: fetch-pack.c:1531
#, c-format
msgid "expected wanted-ref, got '%s'"
msgstr "s'esperava wanted-ref, s'ha rebut «%s»"
-#: fetch-pack.c:1515
+#: fetch-pack.c:1536
#, c-format
msgid "unexpected wanted-ref: '%s'"
msgstr "wanted-ref inesperat: «%s»"
-#: fetch-pack.c:1520
+#: fetch-pack.c:1541
#, c-format
msgid "error processing wanted refs: %d"
msgstr "s'ha produït un error en processar les referències desitjades: %d"
-#: fetch-pack.c:1550
+#: fetch-pack.c:1571
msgid "git fetch-pack: expected response end packet"
msgstr "git fetch-pack: s'esperava un paquet de final de resposta"
-#: fetch-pack.c:1959
+#: fetch-pack.c:1983
msgid "no matching remote head"
msgstr "no hi ha cap HEAD remot coincident"
-#: fetch-pack.c:1982 builtin/clone.c:581
+#: fetch-pack.c:2006 builtin/clone.c:587
msgid "remote did not send all necessary objects"
msgstr "el remot no ha enviat tots els objectes necessaris"
-#: fetch-pack.c:2085
+#: fetch-pack.c:2109
msgid "unexpected 'ready' from remote"
msgstr "«ready» no esperat des del remot"
-#: fetch-pack.c:2108
+#: fetch-pack.c:2132
#, c-format
msgid "no such remote ref %s"
msgstr "no existeix la referència remota %s"
-#: fetch-pack.c:2111
+#: fetch-pack.c:2135
#, c-format
msgid "Server does not allow request for unadvertised object %s"
msgstr "El servidor no permet sol·licitar objectes no anunciats %s"
-#: gpg-interface.c:329 gpg-interface.c:457 gpg-interface.c:974
-#: gpg-interface.c:990
+#: fsmonitor-ipc.c:119
+#, c-format
+msgid "fsmonitor_ipc__send_query: invalid path '%s'"
+msgstr "fsmonitor_ipc__send_query: camí no vàlid «%s»"
+
+#: fsmonitor-ipc.c:125
+#, c-format
+msgid "fsmonitor_ipc__send_query: unspecified error on '%s'"
+msgstr "fsmonitor_ipc__send_query: error no especificat en «%s»"
+
+#: fsmonitor-ipc.c:155
+msgid "fsmonitor--daemon is not running"
+msgstr "fsmonitor--daemon no s'està executant"
+
+#: fsmonitor-ipc.c:164
+#, c-format
+msgid "could not send '%s' command to fsmonitor--daemon"
+msgstr "no s'ha pogut enviar l'ordre «%s» a fsmonitor--daemon"
+
+#: gpg-interface.c:329 gpg-interface.c:456 gpg-interface.c:995
+#: gpg-interface.c:1011
msgid "could not create temporary file"
msgstr "no s'ha pogut crear el fitxer temporal"
-#: gpg-interface.c:332 gpg-interface.c:460
+#: gpg-interface.c:332 gpg-interface.c:459
#, c-format
msgid "failed writing detached signature to '%s'"
msgstr ""
"s'ha produït un error en escriure la clau de signatura separada a «%s»"
-#: gpg-interface.c:451
+#: gpg-interface.c:450
msgid ""
"gpg.ssh.allowedSignersFile needs to be configured and exist for ssh "
"signature verification"
@@ -4435,7 +4555,7 @@ msgstr ""
"gpg.ssh.allowedSignersFile s'ha de configurar i existeix per a la "
"verificació de la signatura ssh"
-#: gpg-interface.c:480
+#: gpg-interface.c:479
msgid ""
"ssh-keygen -Y find-principals/verify is needed for ssh signature "
"verification (available in openssh version 8.2p1+)"
@@ -4443,65 +4563,65 @@ msgstr ""
"ssh-keygen -Y find-principals/verify és necessari per a la verificació de la"
" signatura ssh (disponible a opensh versió 8.2p1+)"
-#: gpg-interface.c:536
+#: gpg-interface.c:550
#, c-format
msgid "ssh signing revocation file configured but not found: %s"
msgstr "fitxer de revocació de la signatura ssh configurat però no trobat: %s"
-#: gpg-interface.c:624
+#: gpg-interface.c:638
#, c-format
msgid "bad/incompatible signature '%s'"
msgstr "la signatura «%s» és incompatible o està malmesa"
-#: gpg-interface.c:801 gpg-interface.c:806
+#: gpg-interface.c:815 gpg-interface.c:820
#, c-format
msgid "failed to get the ssh fingerprint for key '%s'"
msgstr "no s'ha pogut obtenir l'empremta ssh de la clau «%s»"
-#: gpg-interface.c:829
+#: gpg-interface.c:843
msgid ""
"either user.signingkey or gpg.ssh.defaultKeyCommand needs to be configured"
msgstr ""
"o bé user.signingkey o gpg.ssh.defaultKeyCommand han de ser configurats"
-#: gpg-interface.c:851
+#: gpg-interface.c:865
#, c-format
msgid "gpg.ssh.defaultKeyCommand succeeded but returned no keys: %s %s"
msgstr ""
"gpg.ssh.defaultKeyCommand ha tingut èxit però no ha retornat cap clau: %s %s"
-#: gpg-interface.c:857
+#: gpg-interface.c:871
#, c-format
msgid "gpg.ssh.defaultKeyCommand failed: %s %s"
msgstr "gpg.ssh.defaultKeyCommand ha fallat: %s %s"
-#: gpg-interface.c:945
+#: gpg-interface.c:966
msgid "gpg failed to sign the data"
msgstr "gpg ha fallat en signar les dades"
-#: gpg-interface.c:967
+#: gpg-interface.c:988
msgid "user.signingkey needs to be set for ssh signing"
msgstr "user.signingkey s'ha d'establir per a signar amb ssh"
-#: gpg-interface.c:978
+#: gpg-interface.c:999
#, c-format
msgid "failed writing ssh signing key to '%s'"
msgstr "s'ha produït un error en escriure la clau de signatura ssh a «%s»"
-#: gpg-interface.c:996
+#: gpg-interface.c:1017
#, c-format
msgid "failed writing ssh signing key buffer to '%s'"
msgstr "s'ha produït un error en escriure la clau de signatura ssh a «%s»"
-#: gpg-interface.c:1014
+#: gpg-interface.c:1035
msgid ""
"ssh-keygen -Y sign is needed for ssh signing (available in openssh version "
"8.2p1+)"
msgstr ""
-"ssh-keygen -Y sign és necessari per a signar amb ssh (disponible a openssh versió "
-"8.2p1+)"
+"ssh-keygen -Y sign és necessari per a signar amb ssh (disponible a openssh "
+"versió 8.2p1+)"
-#: gpg-interface.c:1026
+#: gpg-interface.c:1047
#, c-format
msgid "failed reading ssh signing data buffer from '%s'"
msgstr "s'ha produït un error en llegir la signatura ssh des de «%s»"
@@ -4511,7 +4631,7 @@ msgstr "s'ha produït un error en llegir la signatura ssh des de «%s»"
msgid "ignored invalid color '%.*s' in log.graphColors"
msgstr "ignora el color no vàlid «%.*s» a log.graphColors"
-#: grep.c:531
+#: grep.c:446
msgid ""
"given pattern contains NULL byte (via -f <file>). This is only supported "
"with -P under PCRE v2"
@@ -4519,109 +4639,109 @@ msgstr ""
"el patró indicat conté byte NULL (via -f <fitxer>). Això només és compatible"
" amb -P sota PCRE v2"
-#: grep.c:1942
+#: grep.c:1859
#, c-format
msgid "'%s': unable to read %s"
msgstr "«%s»: no s'ha pogut llegir %s"
-#: grep.c:1959 setup.c:177 builtin/clone.c:302 builtin/diff.c:90
+#: grep.c:1876 setup.c:177 builtin/clone.c:308 builtin/diff.c:90
#: builtin/rm.c:136
#, c-format
msgid "failed to stat '%s'"
msgstr "s'ha produït un error en fer stat a «%s»"
-#: grep.c:1970
+#: grep.c:1887
#, c-format
msgid "'%s': short read"
msgstr "«%s»: lectura curta"
-#: help.c:24
+#: help.c:25
msgid "start a working area (see also: git help tutorial)"
msgstr "començar una àrea de treball (vegeu també: git help tutorial)"
-#: help.c:25
+#: help.c:26
msgid "work on the current change (see also: git help everyday)"
msgstr "treballar en el canvi actual (vegeu també: git help everyday)"
-#: help.c:26
+#: help.c:27
msgid "examine the history and state (see also: git help revisions)"
msgstr "examinar la història i l'estat (vegeu també: git help revisions)"
-#: help.c:27
+#: help.c:28
msgid "grow, mark and tweak your common history"
msgstr "fer créixer, marcar i ajustar la vostra història comuna"
-#: help.c:28
+#: help.c:29
msgid "collaborate (see also: git help workflows)"
msgstr "col·laborar (vegeu també: git help workflow)"
-#: help.c:32
+#: help.c:33
msgid "Main Porcelain Commands"
msgstr "Ordres principals de porcellana"
-#: help.c:33
+#: help.c:34
msgid "Ancillary Commands / Manipulators"
msgstr "Ordres auxiliars / manipuladors"
-#: help.c:34
+#: help.c:35
msgid "Ancillary Commands / Interrogators"
msgstr "Ordres auxiliars / interrogadors"
-#: help.c:35
+#: help.c:36
msgid "Interacting with Others"
msgstr "Interaccionar amb altres"
-#: help.c:36
+#: help.c:37
msgid "Low-level Commands / Manipulators"
msgstr "Ordres de baix nivell / Manipuladors"
-#: help.c:37
+#: help.c:38
msgid "Low-level Commands / Interrogators"
msgstr "Ordres de baix nivell / Interrogadors"
-#: help.c:38
+#: help.c:39
msgid "Low-level Commands / Syncing Repositories"
msgstr "Ordres de baix nivell / Sincronització de repositoris"
-#: help.c:39
+#: help.c:40
msgid "Low-level Commands / Internal Helpers"
msgstr "Ordres de baix nivell / Ajudants interns"
-#: help.c:313
+#: help.c:316
#, c-format
msgid "available git commands in '%s'"
msgstr "ordres de git disponibles en «%s»"
-#: help.c:320
+#: help.c:323
msgid "git commands available from elsewhere on your $PATH"
msgstr "ordres de git disponibles d'altres llocs en el vostre $PATH"
-#: help.c:329
+#: help.c:332
msgid "These are common Git commands used in various situations:"
msgstr "Aquestes són ordres habituals del Git usades en diverses situacions:"
-#: help.c:378 git.c:100
+#: help.c:382 git.c:100
#, c-format
msgid "unsupported command listing type '%s'"
msgstr "tipus de llistat de l'ordre no compatible «%s»"
-#: help.c:418
+#: help.c:422
msgid "The Git concept guides are:"
msgstr "Les guies de Git de conceptes són:"
-#: help.c:442
-msgid "See 'git help <command>' to read about a specific subcommand"
-msgstr "Vegeu «git help <ordre>» per a llegir sobre una subordre específica"
-
-#: help.c:447
+#: help.c:446
msgid "External commands"
msgstr "Ordres externes"
-#: help.c:462
+#: help.c:468
msgid "Command aliases"
msgstr "Àlies d'ordres"
-#: help.c:543
+#: help.c:486
+msgid "See 'git help <command>' to read about a specific subcommand"
+msgstr "Vegeu «git help <ordre>» per a llegir sobre una subordre específica"
+
+#: help.c:563
#, c-format
msgid ""
"'%s' appears to be a git command, but we were not\n"
@@ -4630,38 +4750,38 @@ msgstr ""
"«%s» sembla una ordre de git, però no hem pogut\n"
"executar-la. Pot ser que git-%s estigui malmès?"
-#: help.c:565 help.c:662
+#: help.c:585 help.c:682
#, c-format
msgid "git: '%s' is not a git command. See 'git --help'."
msgstr "git: «%s» no és una ordre de git. Vegeu «git --help»."
-#: help.c:613
+#: help.c:633
msgid "Uh oh. Your system reports no Git commands at all."
msgstr "Ai. El vostre sistema no informa de cap ordre de Git."
-#: help.c:635
+#: help.c:655
#, c-format
msgid "WARNING: You called a Git command named '%s', which does not exist."
msgstr ""
"ADVERTÈNCIA: Heu invocat una ordre de Git amb nom «%s», la qual no existeix."
-#: help.c:640
+#: help.c:660
#, c-format
msgid "Continuing under the assumption that you meant '%s'."
msgstr "El procés continuarà, pressuposant que volíeu dir «%s»."
-#: help.c:646
+#: help.c:666
#, c-format
msgid "Run '%s' instead [y/N]? "
msgstr "Voleu executar «%s» en el seu lloc? [y/N]? "
-#: help.c:654
+#: help.c:674
#, c-format
msgid "Continuing in %0.1f seconds, assuming that you meant '%s'."
msgstr ""
"El procés continuarà en %0.1f segons, pressuposant que volíeu dir «%s»."
-#: help.c:666
+#: help.c:686
msgid ""
"\n"
"The most similar command is"
@@ -4675,16 +4795,16 @@ msgstr[1] ""
"\n"
"Les ordres més similars són"
-#: help.c:706
+#: help.c:729
msgid "git version [<options>]"
msgstr "git version [<opcions>]"
-#: help.c:761
+#: help.c:784
#, c-format
msgid "%s: %s - %s"
msgstr "%s: %s - %s"
-#: help.c:765
+#: help.c:788
msgid ""
"\n"
"Did you mean this?"
@@ -4698,7 +4818,7 @@ msgstr[1] ""
"\n"
"Volíeu dir un d'aquests?"
-#: hook.c:27
+#: hook.c:28
#, c-format
msgid ""
"The '%s' hook was ignored because it's not set as executable.\n"
@@ -4707,15 +4827,20 @@ msgstr ""
"El lligam «%s» s'ha ignorat perquè no s'ha establert com a executable.\n"
"Podeu desactivar aquest avís amb «git config advice.ignoredHook false»."
-#: ident.c:353
+#: hook.c:87
+#, c-format
+msgid "Couldn't start hook '%s'\n"
+msgstr "No s'ha pogut iniciar el lligam «%s»'\n"
+
+#: ident.c:354
msgid "Author identity unknown\n"
msgstr "Identitat de l'autor desconeguda\n"
-#: ident.c:356
+#: ident.c:357
msgid "Committer identity unknown\n"
msgstr "Es desconeix la identitat del comitent\n"
-#: ident.c:362
+#: ident.c:363
msgid ""
"\n"
"*** Please tell me who you are.\n"
@@ -4740,76 +4865,76 @@ msgstr ""
"per a establir la identitat predeterminada del vostre compte.\n"
"Ometeu --global per a establir la identitat només en aquest repositori.\n"
-#: ident.c:397
+#: ident.c:398
msgid "no email was given and auto-detection is disabled"
msgstr ""
"no s'ha proporcionat cap adreça electrònica i la detecció automàtica està "
"inhabilitada"
-#: ident.c:402
+#: ident.c:403
#, c-format
msgid "unable to auto-detect email address (got '%s')"
msgstr ""
"no s'ha pogut detectar automàticament una adreça electrònica vàlida (s'ha "
"rebut «%s»)"
-#: ident.c:419
+#: ident.c:420
msgid "no name was given and auto-detection is disabled"
msgstr ""
"no s'ha proporcionat cap nom i la detecció automàtica està inhabilitada"
-#: ident.c:425
+#: ident.c:426
#, c-format
msgid "unable to auto-detect name (got '%s')"
msgstr "no s'ha pogut detectar automàticament el nom (s'ha rebut «%s»)"
-#: ident.c:433
+#: ident.c:434
#, c-format
msgid "empty ident name (for <%s>) not allowed"
msgstr "nom d'identitat buit (per <%s>) no és permès"
-#: ident.c:439
+#: ident.c:440
#, c-format
msgid "name consists only of disallowed characters: %s"
msgstr "el nom conté només caràcters no permesos: %s"
-#: ident.c:454 builtin/commit.c:648
+#: ident.c:455 builtin/commit.c:649
#, c-format
msgid "invalid date format: %s"
msgstr "format de data no vàlid: %s"
-#: list-objects-filter-options.c:83
+#: list-objects-filter-options.c:68
msgid "expected 'tree:<depth>'"
msgstr "s'esperava «tree:<profunditat>»"
-#: list-objects-filter-options.c:98
+#: list-objects-filter-options.c:83
msgid "sparse:path filters support has been dropped"
msgstr "sparse: s'ha eliminat la implementació de filtres de camí sparse"
-#: list-objects-filter-options.c:105
+#: list-objects-filter-options.c:90
#, c-format
msgid "'%s' for 'object:type=<type>' is not a valid object type"
msgstr "«%s» per a «object:type=<type>» no és un tipus d'objecte vàlid"
-#: list-objects-filter-options.c:124
+#: list-objects-filter-options.c:109
#, c-format
msgid "invalid filter-spec '%s'"
msgstr "filtre d'especificació no vàlid: «%s»"
-#: list-objects-filter-options.c:140
+#: list-objects-filter-options.c:125
#, c-format
msgid "must escape char in sub-filter-spec: '%c'"
msgstr "cal escapar el caràcter en el sub-filter-spec «%c»"
-#: list-objects-filter-options.c:182
+#: list-objects-filter-options.c:167
msgid "expected something after combine:"
msgstr "s'esperava alguna cosa després de combinar:"
-#: list-objects-filter-options.c:264
+#: list-objects-filter-options.c:249
msgid "multiple filter-specs cannot be combined"
msgstr "no es poden combinar múltiples especificacions de filtratge"
-#: list-objects-filter-options.c:376
+#: list-objects-filter-options.c:365
msgid "unable to upgrade repository format to support partial clone"
msgstr ""
"no s'ha pogut actualitzar el format del repositori perquè sigui compatible "
@@ -4825,17 +4950,17 @@ msgstr "no s'ha pogut accedir a un blob dispers en «%s»"
msgid "unable to parse sparse filter data in %s"
msgstr "no s'han pogut analitzar les dades disperses filtrades %s"
-#: list-objects.c:127
+#: list-objects.c:144
#, c-format
msgid "entry '%s' in tree %s has tree mode, but is not a tree"
msgstr "l'entrada «%s» a l'arbre %s té mode d'arbre, però no és un arbre"
-#: list-objects.c:140
+#: list-objects.c:157
#, c-format
msgid "entry '%s' in tree %s has blob mode, but is not a blob"
msgstr "l'entrada «%s» a l'arbre %s té mode blob, però no és un blob"
-#: list-objects.c:398
+#: list-objects.c:415
#, c-format
msgid "unable to load root tree for commit %s"
msgstr "no s'ha pogut carregar l'arrel de l'arbre per la comissió %s"
@@ -4865,17 +4990,12 @@ msgstr ""
msgid "Unable to create '%s.lock': %s"
msgstr "No s'ha pogut crear «%s.lock»: %s"
-#: ls-refs.c:37
-#, c-format
-msgid "invalid value '%s' for lsrefs.unborn"
-msgstr "valor «%s» no vàlid per a «lsrefs.unborn»"
-
-#: ls-refs.c:174
+#: ls-refs.c:175
#, c-format
msgid "unexpected line: '%s'"
msgstr "línia inesperada: «%s»"
-#: ls-refs.c:178
+#: ls-refs.c:179
msgid "expected flush after ls-refs arguments"
msgstr "s'esperava una neteja després dels arguments ls-refs"
@@ -4883,40 +5003,40 @@ msgstr "s'esperava una neteja després dels arguments ls-refs"
msgid "quoted CRLF detected"
msgstr "CRLF citat detectat"
-#: mailinfo.c:1254 builtin/am.c:184 builtin/mailinfo.c:46
+#: mailinfo.c:1254 builtin/am.c:185 builtin/mailinfo.c:46
#, c-format
msgid "bad action '%s' for '%s'"
msgstr "acció «%s» incorrecta per a «%s»"
-#: merge-ort.c:1584 merge-recursive.c:1211
+#: merge-ort.c:1630 merge-recursive.c:1214
#, c-format
msgid "Failed to merge submodule %s (not checked out)"
msgstr "S'ha produït un error en fusionar el submòdul %s (no està agafat)"
-#: merge-ort.c:1593 merge-recursive.c:1218
+#: merge-ort.c:1639 merge-recursive.c:1221
#, c-format
msgid "Failed to merge submodule %s (commits not present)"
msgstr ""
"S'ha produït un error en fusionar el submòdul %s (no hi ha comissions)"
-#: merge-ort.c:1602 merge-recursive.c:1225
+#: merge-ort.c:1648 merge-recursive.c:1228
#, c-format
msgid "Failed to merge submodule %s (commits don't follow merge-base)"
msgstr ""
"S'ha produït un error en fusionar el submòdul %s (les comissions no "
"segueixen merge-base)"
-#: merge-ort.c:1612 merge-ort.c:1620
+#: merge-ort.c:1658 merge-ort.c:1666
#, c-format
msgid "Note: Fast-forwarding submodule %s to %s"
msgstr "Nota: avançament ràpid del submòdul %s a %s"
-#: merge-ort.c:1642
+#: merge-ort.c:1688
#, c-format
msgid "Failed to merge submodule %s"
msgstr "S'ha produït un error en fusionar el submòdul «%s»"
-#: merge-ort.c:1649
+#: merge-ort.c:1695
#, c-format
msgid ""
"Failed to merge submodule %s, but a possible merge resolution exists:\n"
@@ -4925,7 +5045,7 @@ msgstr ""
"S'ha produït un error en fusionar el submòdul %s, però existeix una solució possible:\n"
"%s\n"
-#: merge-ort.c:1653 merge-recursive.c:1281
+#: merge-ort.c:1699 merge-recursive.c:1284
#, c-format
msgid ""
"If this is correct simply add it to the index for example\n"
@@ -4942,7 +5062,7 @@ msgstr ""
"\n"
"que acceptarà aquest suggeriment.\n"
-#: merge-ort.c:1666
+#: merge-ort.c:1712
#, c-format
msgid ""
"Failed to merge submodule %s, but multiple possible merges exist:\n"
@@ -4951,21 +5071,21 @@ msgstr ""
"S'ha produït un error en fusionar el submòdul %s, però existeixen múltiples solucions possibles:\n"
"%s"
-#: merge-ort.c:1887 merge-recursive.c:1372
+#: merge-ort.c:1937 merge-recursive.c:1375
msgid "Failed to execute internal merge"
msgstr "S'ha produït un error en executar la fusió interna"
-#: merge-ort.c:1892 merge-recursive.c:1377
+#: merge-ort.c:1942 merge-recursive.c:1380
#, c-format
msgid "Unable to add %s to database"
msgstr "No s'ha pogut afegir %s a la base de dades"
-#: merge-ort.c:1899 merge-recursive.c:1410
+#: merge-ort.c:1949 merge-recursive.c:1413
#, c-format
msgid "Auto-merging %s"
msgstr "S'està autofusionant %s"
-#: merge-ort.c:2038 merge-recursive.c:2132
+#: merge-ort.c:2088 merge-recursive.c:2135
#, c-format
msgid ""
"CONFLICT (implicit dir rename): Existing file/dir at %s in the way of "
@@ -4975,7 +5095,7 @@ msgstr ""
"existent a %s en forma de canvi del nom del directori implícit, posant-hi "
"els camins següents a: %s."
-#: merge-ort.c:2048 merge-recursive.c:2142
+#: merge-ort.c:2098 merge-recursive.c:2145
#, c-format
msgid ""
"CONFLICT (implicit dir rename): Cannot map more than one path to %s; "
@@ -4985,7 +5105,7 @@ msgstr ""
"camí a %s; els canvis del nom del directori implícits han intentat posar "
"aquests camins a: %s segons"
-#: merge-ort.c:2106
+#: merge-ort.c:2156
#, c-format
msgid ""
"CONFLICT (directory rename split): Unclear where to rename %s to; it was "
@@ -4996,7 +5116,7 @@ msgstr ""
"%s; s'han canviat de nom a múltiples altres directoris, sense una destinació"
" per a la majoria dels fitxers."
-#: merge-ort.c:2260 merge-recursive.c:2478
+#: merge-ort.c:2310 merge-recursive.c:2481
#, c-format
msgid ""
"WARNING: Avoiding applying %s -> %s rename to %s, because %s itself was "
@@ -5005,7 +5125,7 @@ msgstr ""
"AVÃS: S'està evitant aplicar el canvi de nom %s -> %s a %s, perquè %s ell "
"mateix ja havia canviat de nom."
-#: merge-ort.c:2400 merge-recursive.c:3261
+#: merge-ort.c:2450 merge-recursive.c:3264
#, c-format
msgid ""
"Path updated: %s added in %s inside a directory that was renamed in %s; "
@@ -5014,7 +5134,7 @@ msgstr ""
"Pedaç actualitzat: %s afegit a %s dins d'un directori que va canviar de nom "
"a %s; movent-lo a %s."
-#: merge-ort.c:2407 merge-recursive.c:3268
+#: merge-ort.c:2457 merge-recursive.c:3271
#, c-format
msgid ""
"Path updated: %s renamed to %s in %s, inside a directory that was renamed in"
@@ -5023,7 +5143,7 @@ msgstr ""
"Pedaç actualitzat: %s canviat al nom %s a %s, dins d'un directori que va "
"canviar de nom a %s; movent-lo a %s."
-#: merge-ort.c:2420 merge-recursive.c:3264
+#: merge-ort.c:2470 merge-recursive.c:3267
#, c-format
msgid ""
"CONFLICT (file location): %s added in %s inside a directory that was renamed"
@@ -5032,7 +5152,7 @@ msgstr ""
"CONFLICTE (ubicació del fitxer): %s afegit a %s dins d'un directori que va "
"canviar de nom a %s suggerint que potser hauria de moure's a %s."
-#: merge-ort.c:2428 merge-recursive.c:3271
+#: merge-ort.c:2478 merge-recursive.c:3274
#, c-format
msgid ""
"CONFLICT (file location): %s renamed to %s in %s, inside a directory that "
@@ -5042,13 +5162,13 @@ msgstr ""
"directori que va canviar de nom a %s, suggerint que potser hauria de moure's"
" a %s."
-#: merge-ort.c:2584
+#: merge-ort.c:2634
#, c-format
msgid "CONFLICT (rename/rename): %s renamed to %s in %s and to %s in %s."
msgstr ""
"CONFLICTE (canvi de nom/canvi de nom): %s ara té el nom %s a %s i %s a %s."
-#: merge-ort.c:2679
+#: merge-ort.c:2729
#, c-format
msgid ""
"CONFLICT (rename involved in collision): rename of %s -> %s has content "
@@ -5059,24 +5179,24 @@ msgstr ""
"%s té conflictes de contingut i col·lisiona amb un altre camí; això pot "
"donar lloc a marcadors de conflicte imbricats."
-#: merge-ort.c:2698 merge-ort.c:2722
+#: merge-ort.c:2748 merge-ort.c:2772
#, c-format
msgid "CONFLICT (rename/delete): %s renamed to %s in %s, but deleted in %s."
msgstr ""
"CONFLICTE (canvi de nom/supressió): %s ara té el nom %s a %s, però s'ha "
"suprimit a %s."
-#: merge-ort.c:3212 merge-recursive.c:3022
+#: merge-ort.c:3261 merge-recursive.c:3025
#, c-format
msgid "cannot read object %s"
msgstr "no es pot llegir l'objecte %s"
-#: merge-ort.c:3215 merge-recursive.c:3025
+#: merge-ort.c:3264 merge-recursive.c:3028
#, c-format
msgid "object %s is not a blob"
msgstr "l'objecte %s no és un blob"
-#: merge-ort.c:3644
+#: merge-ort.c:3693
#, c-format
msgid ""
"CONFLICT (file/directory): directory in the way of %s from %s; moving it to "
@@ -5085,7 +5205,7 @@ msgstr ""
"CONFLICTE (fitxer/directori): directori en el camí de %s des de %s; en "
"comptes es mou a %s."
-#: merge-ort.c:3721
+#: merge-ort.c:3770
#, c-format
msgid ""
"CONFLICT (distinct types): %s had different types on each side; renamed both"
@@ -5094,7 +5214,7 @@ msgstr ""
"CONFLICTE (tipus diferents): %s tenia diferents tipus a cada costat; se'ls "
"ha canviat el nom per tal que cadascun pugui ser registrat en algun lloc."
-#: merge-ort.c:3728
+#: merge-ort.c:3777
#, c-format
msgid ""
"CONFLICT (distinct types): %s had different types on each side; renamed one "
@@ -5104,24 +5224,24 @@ msgstr ""
"canviat el nom d'un d'ells per tal que cadascun pugui ser registrat en algun"
" lloc."
-#: merge-ort.c:3819 merge-recursive.c:3101
+#: merge-ort.c:3866 merge-recursive.c:3104
msgid "content"
msgstr "contingut"
-#: merge-ort.c:3821 merge-recursive.c:3105
+#: merge-ort.c:3868 merge-recursive.c:3108
msgid "add/add"
msgstr "afegiment/afegiment"
-#: merge-ort.c:3823 merge-recursive.c:3150
+#: merge-ort.c:3870 merge-recursive.c:3153
msgid "submodule"
msgstr "submòdul"
-#: merge-ort.c:3825 merge-recursive.c:3151
+#: merge-ort.c:3872 merge-recursive.c:3154
#, c-format
msgid "CONFLICT (%s): Merge conflict in %s"
msgstr "CONFLICTE (%s): Conflicte de fusió en %s"
-#: merge-ort.c:3869
+#: merge-ort.c:3916
#, c-format
msgid ""
"CONFLICT (modify/delete): %s deleted in %s and modified in %s. Version %s "
@@ -5130,7 +5250,7 @@ msgstr ""
"CONFLICTE: (modificació/supressió): %s suprimit a %s i modificat a %s. La "
"versió %s de %s s'ha deixat en l'arbre."
-#: merge-ort.c:4165
+#: merge-ort.c:4212
#, c-format
msgid ""
"Note: %s not up to date and in way of checking out conflicted version; old "
@@ -5141,13 +5261,13 @@ msgstr ""
#. TRANSLATORS: The %s arguments are: 1) tree hash of a merge
#. base, and 2-3) the trees for the two trees we're merging.
-#: merge-ort.c:4534
+#: merge-ort.c:4586
#, c-format
msgid "collecting merge info failed for trees %s, %s, %s"
msgstr ""
"ha fallat la recollida de la informació de fusió per als arbres %s, %s, %s"
-#: merge-ort-wrappers.c:13 merge-recursive.c:3716
+#: merge-ort-wrappers.c:13 merge-recursive.c:3723
#, c-format
msgid ""
"Your local changes to the following files would be overwritten by merge:\n"
@@ -5156,7 +5276,7 @@ msgstr ""
"Els canvis locals als fitxers següents se sobreescriuran per la fusió:\n"
" %s"
-#: merge-ort-wrappers.c:33 merge-recursive.c:3482 builtin/merge.c:405
+#: merge-ort-wrappers.c:33 merge-recursive.c:3485 builtin/merge.c:405
msgid "Already up to date."
msgstr "Ja està al dia."
@@ -5194,7 +5314,7 @@ msgstr ": potser un conflicte D/F?"
msgid "refusing to lose untracked file at '%s'"
msgstr "s'està refusant perdre el fitxer no seguit a «%s»"
-#: merge-recursive.c:956 builtin/cat-file.c:41
+#: merge-recursive.c:956 builtin/cat-file.c:47
#, c-format
msgid "cannot read object %s '%s'"
msgstr "no es pot llegir l'objecte %s «%s»"
@@ -5219,48 +5339,48 @@ msgstr "s'ha produït un error en fer l'enllaç simbòlic «%s»: %s"
msgid "do not know what to do with %06o %s '%s'"
msgstr "no se sap què fer amb %06o %s «%s»"
-#: merge-recursive.c:1233 merge-recursive.c:1246
+#: merge-recursive.c:1236 merge-recursive.c:1249
#, c-format
msgid "Fast-forwarding submodule %s to the following commit:"
msgstr "Avançament ràpid del submòdul %s a la següent comissió:"
-#: merge-recursive.c:1236 merge-recursive.c:1249
+#: merge-recursive.c:1239 merge-recursive.c:1252
#, c-format
msgid "Fast-forwarding submodule %s"
msgstr "Avançament ràpid al submòdul %s"
-#: merge-recursive.c:1273
+#: merge-recursive.c:1276
#, c-format
msgid "Failed to merge submodule %s (merge following commits not found)"
msgstr ""
"Ha fallat en fusionar el submòdul %s (no s'ha trobat les comissions "
"següents)"
-#: merge-recursive.c:1277
+#: merge-recursive.c:1280
#, c-format
msgid "Failed to merge submodule %s (not fast-forward)"
msgstr ""
"S'ha produït un error en fusionar el submòdul %s (sense avançament ràpid)"
-#: merge-recursive.c:1278
+#: merge-recursive.c:1281
msgid "Found a possible merge resolution for the submodule:\n"
msgstr "S'ha trobat una possible resolució de fusió pel submòdul:\n"
-#: merge-recursive.c:1290
+#: merge-recursive.c:1293
#, c-format
msgid "Failed to merge submodule %s (multiple merges found)"
msgstr ""
"S'ha produït un error en fusionar el submòdul %s (s'han trobat múltiples "
"fusions)"
-#: merge-recursive.c:1434
+#: merge-recursive.c:1437
#, c-format
msgid "Error: Refusing to lose untracked file at %s; writing to %s instead."
msgstr ""
"Error: s'està refusant perdre el fitxer no seguit a %s; en comptes s'ha "
"escrit a %s."
-#: merge-recursive.c:1506
+#: merge-recursive.c:1509
#, c-format
msgid ""
"CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left "
@@ -5269,7 +5389,7 @@ msgstr ""
"CONFLICTE: (%s/supressió): %s suprimit en %s i %s en %s. La versió %s de %s "
"s'ha deixat en l'arbre."
-#: merge-recursive.c:1511
+#: merge-recursive.c:1514
#, c-format
msgid ""
"CONFLICT (%s/delete): %s deleted in %s and %s to %s in %s. Version %s of %s "
@@ -5278,7 +5398,7 @@ msgstr ""
"CONFLICTE: (%s/supressió): %s suprimit en %s i %s a %s en %s. La versió %s "
"de %s s'ha deixat en l'arbre."
-#: merge-recursive.c:1518
+#: merge-recursive.c:1521
#, c-format
msgid ""
"CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left "
@@ -5287,7 +5407,7 @@ msgstr ""
"CONFLICTE: (%s/supressió): %s suprimit en %s i %s en %s. La versió %s de %s "
"s'ha deixat en l'arbre a %s."
-#: merge-recursive.c:1523
+#: merge-recursive.c:1526
#, c-format
msgid ""
"CONFLICT (%s/delete): %s deleted in %s and %s to %s in %s. Version %s of %s "
@@ -5296,46 +5416,46 @@ msgstr ""
"CONFLICTE: (%s/supressió): %s suprimit en %s i %s a %s en %s. La versió %s "
"de %s s'ha deixat en l'arbre a %s."
-#: merge-recursive.c:1558
+#: merge-recursive.c:1561
msgid "rename"
msgstr "canvi de nom"
-#: merge-recursive.c:1558
+#: merge-recursive.c:1561
msgid "renamed"
msgstr "canviat de nom"
-#: merge-recursive.c:1609 merge-recursive.c:2515 merge-recursive.c:3178
+#: merge-recursive.c:1612 merge-recursive.c:2518 merge-recursive.c:3181
#, c-format
msgid "Refusing to lose dirty file at %s"
msgstr "S'està refusant a perdre el fitxer brut a %s"
-#: merge-recursive.c:1619
+#: merge-recursive.c:1622
#, c-format
msgid "Refusing to lose untracked file at %s, even though it's in the way."
msgstr ""
"S'està refusant perdre el fitxer no seguit a «%s», malgrat que està en mig "
"de l'operació."
-#: merge-recursive.c:1677
+#: merge-recursive.c:1680
#, c-format
msgid "CONFLICT (rename/add): Rename %s->%s in %s. Added %s in %s"
msgstr ""
"CONFLICTE (canvi de nom/afegiment): Canvi de nom %s->%s a %s. S'ha afegit "
"%s a %s"
-#: merge-recursive.c:1708
+#: merge-recursive.c:1711
#, c-format
msgid "%s is a directory in %s adding as %s instead"
msgstr "%s és un directori en %s; s'està afegint com a %s en lloc d'això"
-#: merge-recursive.c:1713
+#: merge-recursive.c:1716
#, c-format
msgid "Refusing to lose untracked file at %s; adding as %s instead"
msgstr ""
"S'està refusant perdre el fitxer no seguit a %s; en comptes, s'està afegint "
"com a %s"
-#: merge-recursive.c:1740
+#: merge-recursive.c:1743
#, c-format
msgid ""
"CONFLICT (rename/rename): Rename \"%s\"->\"%s\" in branch \"%s\" rename "
@@ -5344,18 +5464,18 @@ msgstr ""
"CONFLICTE (canvi de nom/canvi de nom): Canvi de nom «%s»->«%s» en la branca "
"«%s» canvi de nom «%s»->«%s» en «%s»%s"
-#: merge-recursive.c:1745
+#: merge-recursive.c:1748
msgid " (left unresolved)"
msgstr " (deixat sense resolució)"
-#: merge-recursive.c:1837
+#: merge-recursive.c:1840
#, c-format
msgid "CONFLICT (rename/rename): Rename %s->%s in %s. Rename %s->%s in %s"
msgstr ""
"CONFLICTE (canvi de nom/canvi de nom): Canvi de nom %s->%s en %s. Canvi de "
"nom %s->%s en %s"
-#: merge-recursive.c:2100
+#: merge-recursive.c:2103
#, c-format
msgid ""
"CONFLICT (directory rename split): Unclear where to place %s because "
@@ -5366,7 +5486,7 @@ msgstr ""
"%s perquè el directori %s s'han canviat de nom a múltiples altres "
"directoris, sense una destinació per a la majoria dels fitxers."
-#: merge-recursive.c:2234
+#: merge-recursive.c:2237
#, c-format
msgid ""
"CONFLICT (rename/rename): Rename directory %s->%s in %s. Rename directory "
@@ -5375,38 +5495,38 @@ msgstr ""
"CONFLICTE (canvi de nom/canvi de nom): canvi de nom %s->%s en %s. Canvi de "
"nom de directori %s->%s en %s"
-#: merge-recursive.c:3089
+#: merge-recursive.c:3092
msgid "modify"
msgstr "modificació"
-#: merge-recursive.c:3089
+#: merge-recursive.c:3092
msgid "modified"
msgstr "modificat"
-#: merge-recursive.c:3128
+#: merge-recursive.c:3131
#, c-format
msgid "Skipped %s (merged same as existing)"
msgstr "S'ha omès %s (el fusionat és igual a l'existent)"
-#: merge-recursive.c:3181
+#: merge-recursive.c:3184
#, c-format
msgid "Adding as %s instead"
msgstr "S'està afegint com a %s en lloc d'això"
-#: merge-recursive.c:3385
+#: merge-recursive.c:3388
#, c-format
msgid "Removing %s"
msgstr "S'està eliminant %s"
-#: merge-recursive.c:3408
+#: merge-recursive.c:3411
msgid "file/directory"
msgstr "fitxer/directori"
-#: merge-recursive.c:3413
+#: merge-recursive.c:3416
msgid "directory/file"
msgstr "directori/fitxer"
-#: merge-recursive.c:3420
+#: merge-recursive.c:3423
#, c-format
msgid ""
"CONFLICT (%s): There is a directory with name %s in %s. Adding %s as %s"
@@ -5414,42 +5534,42 @@ msgstr ""
"CONFLICTE (%s): Hi ha un directori amb nom %s en %s. S'està afegint %s com a"
" %s"
-#: merge-recursive.c:3429
+#: merge-recursive.c:3432
#, c-format
msgid "Adding %s"
msgstr "S'està afegint %s"
-#: merge-recursive.c:3438
+#: merge-recursive.c:3441
#, c-format
msgid "CONFLICT (add/add): Merge conflict in %s"
msgstr "CONFLICTE (afegiment/afegiment): Conflicte de fusió en %s"
-#: merge-recursive.c:3491
+#: merge-recursive.c:3494
#, c-format
msgid "merging of trees %s and %s failed"
msgstr "la fusió dels arbres %s i %s ha fallat"
-#: merge-recursive.c:3585
+#: merge-recursive.c:3588
msgid "Merging:"
msgstr "S'està fusionant:"
-#: merge-recursive.c:3598
+#: merge-recursive.c:3601
#, c-format
msgid "found %u common ancestor:"
msgid_plural "found %u common ancestors:"
msgstr[0] "s'ha trobat %u avantpassat en comú:"
msgstr[1] "s'han trobat %u avantpassats en comú:"
-#: merge-recursive.c:3648
+#: merge-recursive.c:3651
msgid "merge returned no commit"
msgstr "la fusió no ha retornat cap comissió"
-#: merge-recursive.c:3816
+#: merge-recursive.c:3823
#, c-format
msgid "Could not parse object '%s'"
msgstr "No s'ha pogut analitzar l'objecte «%s»"
-#: merge-recursive.c:3834 builtin/merge.c:720 builtin/merge.c:906
+#: merge-recursive.c:3841 builtin/merge.c:720 builtin/merge.c:912
#: builtin/stash.c:489
msgid "Unable to write index."
msgstr "No s'ha pogut escriure l'índex."
@@ -5458,234 +5578,239 @@ msgstr "No s'ha pogut escriure l'índex."
msgid "failed to read the cache"
msgstr "s'ha produït un error en llegir la memòria cau"
-#: merge.c:102 rerere.c:704 builtin/am.c:1988 builtin/am.c:2022
-#: builtin/checkout.c:598 builtin/checkout.c:853 builtin/clone.c:706
+#: merge.c:102 rerere.c:705 builtin/am.c:1989 builtin/am.c:2023
+#: builtin/checkout.c:603 builtin/checkout.c:865 builtin/clone.c:714
#: builtin/stash.c:269
msgid "unable to write new index file"
msgstr "no s'ha pogut escriure un fitxer d'índex nou"
-#: midx.c:78
+#: midx.c:79
msgid "multi-pack-index OID fanout is of the wrong size"
msgstr "l'OID de l'índex multipaquet és d'una mida incorrecta"
-#: midx.c:111
+#: midx.c:112
#, c-format
msgid "multi-pack-index file %s is too small"
msgstr "el fitxer de l'índex multipaquet %s és massa petit"
-#: midx.c:127
+#: midx.c:128
#, c-format
msgid "multi-pack-index signature 0x%08x does not match signature 0x%08x"
msgstr ""
"la signatura de l'índex multipaquet 0x%08x no coincideix amb la signatura "
"0x%08x"
-#: midx.c:132
+#: midx.c:133
#, c-format
msgid "multi-pack-index version %d not recognized"
msgstr "no es reconeix la versió %d de l'índex multipaquet"
-#: midx.c:137
+#: midx.c:138
#, c-format
msgid "multi-pack-index hash version %u does not match version %u"
msgstr ""
"la versió del hash índex multipaquet %u no coincideix amb la versió %u"
-#: midx.c:154
+#: midx.c:155
msgid "multi-pack-index missing required pack-name chunk"
msgstr "falta un fragment de nom de paquet necessari al multi-index"
-#: midx.c:156
+#: midx.c:157
msgid "multi-pack-index missing required OID fanout chunk"
msgstr "falta un fragment «fanout» OID necessari al multi-pack-index"
-#: midx.c:158
+#: midx.c:159
msgid "multi-pack-index missing required OID lookup chunk"
msgstr "falta un fragment de cerca «fanout» OID necessari al multi-pack-index"
-#: midx.c:160
+#: midx.c:161
msgid "multi-pack-index missing required object offsets chunk"
msgstr "falta un fragment necessari dels desplaçaments al multi-pack-index"
-#: midx.c:176
+#: midx.c:180
#, c-format
msgid "multi-pack-index pack names out of order: '%s' before '%s'"
msgstr ""
"els noms de paquet de l'índex multipaquet estan desordenats «%s» abans de "
"«%s»"
-#: midx.c:224
+#: midx.c:228
#, c-format
msgid "bad pack-int-id: %u (%u total packs)"
msgstr "pack-int-id: %u incorrecte (%u paquets en total)"
-#: midx.c:274
+#: midx.c:278
msgid "multi-pack-index stores a 64-bit offset, but off_t is too small"
msgstr ""
"l'índex multipaquet emmagatzema un desplaçament de 64 bits, però off_t és "
"massa petit"
-#: midx.c:505
+#: midx.c:509
#, c-format
msgid "failed to add packfile '%s'"
msgstr "no s'ha pogut afegir el fitxer de paquet «%s»"
-#: midx.c:511
+#: midx.c:515
#, c-format
msgid "failed to open pack-index '%s'"
msgstr "no s'ha pogut obrir l'índex del paquet «%s»"
-#: midx.c:579
+#: midx.c:583
#, c-format
msgid "failed to locate object %d in packfile"
msgstr "no s'ha pogut localitzar l'objecte %d en el fitxer de paquet"
-#: midx.c:895
+#: midx.c:911
msgid "cannot store reverse index file"
msgstr "no es pot emmagatzemar el fitxer d'índex invers"
-#: midx.c:993
+#: midx.c:1009
#, c-format
msgid "could not parse line: %s"
msgstr "no s'ha pogut analitzar la línia: %s"
-#: midx.c:995
+#: midx.c:1011
#, c-format
msgid "malformed line: %s"
msgstr "línia mal formada: %s"
-#: midx.c:1162
+#: midx.c:1181
msgid "ignoring existing multi-pack-index; checksum mismatch"
msgstr ""
"s'està ignorant l'índex multipaquet existent; la suma de verificació no "
"coincideix"
-#: midx.c:1187
+#: midx.c:1206
msgid "could not load pack"
msgstr "no s'ha pogut carregar el paquet"
-#: midx.c:1193
+#: midx.c:1212
#, c-format
msgid "could not open index for %s"
msgstr "s'ha produït un error en obrir l'índex per «%s»"
-#: midx.c:1204
+#: midx.c:1223
msgid "Adding packfiles to multi-pack-index"
msgstr "S'estan afegint fitxers empaquetats a l'índex multipaquet"
-#: midx.c:1247
+#: midx.c:1266
#, c-format
msgid "unknown preferred pack: '%s'"
msgstr "paquet preferit desconegut: «%s»"
-#: midx.c:1292
+#: midx.c:1311
#, c-format
msgid "cannot select preferred pack %s with no objects"
-msgstr "no es pot selecionar un paquet preferit %s sense objectes"
+msgstr "no es pot seleccionar un paquet preferit %s sense objectes"
-#: midx.c:1324
+#: midx.c:1343
#, c-format
msgid "did not see pack-file %s to drop"
msgstr "no s'ha vist caure el fitxer empaquetat %s"
-#: midx.c:1370
+#: midx.c:1389
#, c-format
msgid "preferred pack '%s' is expired"
msgstr "el paquet preferit «%s» ha caducat"
-#: midx.c:1383
+#: midx.c:1402
msgid "no pack files to index."
msgstr "no hi ha fitxers empaquetats a indexar."
-#: midx.c:1420
+#: midx.c:1409
+#, fuzzy
+msgid "refusing to write multi-pack .bitmap without any objects"
+msgstr "es nega a escriure el .bitmap multi-paquet sense cap objecte"
+
+#: midx.c:1451
msgid "could not write multi-pack bitmap"
msgstr "no s'han pogut escriure els mapes de bits dels multipaquets"
-#: midx.c:1430
+#: midx.c:1461
msgid "could not write multi-pack-index"
msgstr "no s'ha pogut escriure l'índex multipaquet"
-#: midx.c:1489 builtin/clean.c:37
+#: midx.c:1520 builtin/clean.c:37
#, c-format
msgid "failed to remove %s"
msgstr "s'ha produït un error en eliminar %s"
-#: midx.c:1522
+#: midx.c:1553
#, c-format
msgid "failed to clear multi-pack-index at %s"
msgstr "no s'ha pogut netejar l'índex multipaquet a %s"
-#: midx.c:1585
+#: midx.c:1616
msgid "multi-pack-index file exists, but failed to parse"
msgstr ""
"el fitxer de l'índex multipaquet existeix, però no s'ha pogut analitzar"
-#: midx.c:1593
+#: midx.c:1624
msgid "incorrect checksum"
msgstr "suma de verificació incorrecta"
-#: midx.c:1596
+#: midx.c:1627
msgid "Looking for referenced packfiles"
msgstr "S'estan cercant fitxers empaquetats referenciats"
-#: midx.c:1611
+#: midx.c:1642
#, c-format
msgid ""
"oid fanout out of order: fanout[%d] = %<PRIx32> > %<PRIx32> = fanout[%d]"
msgstr ""
"oid fanout desordenat: fanout[%d] = %<PRIx32> > %<PRIx32> = fanout[%d]"
-#: midx.c:1616
+#: midx.c:1647
msgid "the midx contains no oid"
msgstr "el midx no conté cap oid"
-#: midx.c:1625
+#: midx.c:1656
msgid "Verifying OID order in multi-pack-index"
msgstr "S'està verificant l'ordre OID a l'índex multipaquet"
-#: midx.c:1634
+#: midx.c:1665
#, c-format
msgid "oid lookup out of order: oid[%d] = %s >= %s = oid[%d]"
msgstr "oid lookup desordenat: oid[%d] = %s >= %s = oid[%d]"
-#: midx.c:1654
+#: midx.c:1685
msgid "Sorting objects by packfile"
msgstr "S'estan ordenant els objectes per fitxer empaquetats"
-#: midx.c:1661
+#: midx.c:1692
msgid "Verifying object offsets"
msgstr "S'estan verificant els desplaçaments dels objectes"
-#: midx.c:1677
+#: midx.c:1708
#, c-format
msgid "failed to load pack entry for oid[%d] = %s"
msgstr "no s'ha pogut carregar l'entrada del paquet per a oid[%d] = %s"
-#: midx.c:1683
+#: midx.c:1714
#, c-format
msgid "failed to load pack-index for packfile %s"
msgstr "no s'ha pogut carregar l'índex del paquet per al fitxer empaquetat %s"
-#: midx.c:1692
+#: midx.c:1723
#, c-format
msgid "incorrect object offset for oid[%d] = %s: %<PRIx64> != %<PRIx64>"
msgstr ""
"desplaçament incorrecte de l'objecte per a oid[%d] = %s: %<PRIx64> != "
"%<PRIx64>"
-#: midx.c:1719
+#: midx.c:1750
msgid "Counting referenced objects"
msgstr "S'estan comptant els objectes referenciats"
-#: midx.c:1729
+#: midx.c:1760
msgid "Finding and deleting unreferenced packfiles"
msgstr "S'estan cercant i suprimint els fitxers de paquets no referenciats"
-#: midx.c:1921
+#: midx.c:1952
msgid "could not start pack-objects"
msgstr "no s'ha pogut iniciar el pack-objects"
-#: midx.c:1941
+#: midx.c:1972
msgid "could not finish pack-objects"
msgstr "no s'ha pogut finalitzar el pack-objects"
@@ -5704,7 +5829,7 @@ msgstr "no s'ha pogut crear un fil «lazy_name»: %s"
msgid "unable to join lazy_name thread: %s"
msgstr "no s'ha pogut unir el fil «lazy_name»: %s"
-#: notes-merge.c:277
+#: notes-merge.c:276
#, c-format
msgid ""
"You have not concluded your previous notes merge (%s exists).\n"
@@ -5713,7 +5838,7 @@ msgstr ""
"No heu acabat la vostra fusió de notes prèvia (%s existeix).\n"
"Useu «git notes merge --commit» o «git notes merge --abort» per a cometre/avortar la fusió prèvia abans de començar una fusió de notes nova."
-#: notes-merge.c:284
+#: notes-merge.c:283
#, c-format
msgid "You have not concluded your notes merge (%s exists)."
msgstr "No heu conclòs la vostra fusió de notes (%s existeix)."
@@ -5740,279 +5865,343 @@ msgstr "S'està refusant reescriure les notes en %s (fora de refs/notes/)"
msgid "Bad %s value: '%s'"
msgstr "Valor erroni de %s: «%s»"
-#: object-file.c:456
+#: object-file.c:457
#, c-format
msgid "object directory %s does not exist; check .git/objects/info/alternates"
msgstr ""
"no existeix el directori d'objecte %s; comproveu "
".git/objects/info/alternates"
-#: object-file.c:514
+#: object-file.c:515
#, c-format
msgid "unable to normalize alternate object path: %s"
msgstr "no s'ha pogut normalitzar el camí a l'objecte alternatiu: %s"
-#: object-file.c:588
+#: object-file.c:589
#, c-format
msgid "%s: ignoring alternate object stores, nesting too deep"
msgstr ""
"%s: s'estan ignorant els emmagatzematges alternatius d'objectes, imbricació "
"massa profunda"
-#: object-file.c:595
+#: object-file.c:596
#, c-format
msgid "unable to normalize object directory: %s"
msgstr "no s'ha pogut normalitzar el directori de l'objecte: %s"
-#: object-file.c:638
+#: object-file.c:639
msgid "unable to fdopen alternates lockfile"
msgstr "no s'ha pogut fer «fdopen» al fitxer de bloqueig alternatiu"
-#: object-file.c:656
+#: object-file.c:657
msgid "unable to read alternates file"
msgstr "no es pot llegir el fitxer «alternates»"
-#: object-file.c:663
+#: object-file.c:664
msgid "unable to move new alternates file into place"
msgstr "no s'ha pogut moure el nou fitxer «alternates» al lloc"
-#: object-file.c:741
+#: object-file.c:742
#, c-format
msgid "path '%s' does not exist"
msgstr "el camí «%s» no existeix"
-#: object-file.c:762
+#: object-file.c:763
#, c-format
msgid "reference repository '%s' as a linked checkout is not supported yet."
msgstr ""
"encara no s'admet el repositori de referència «%s» com a agafament enllaçat."
-#: object-file.c:768
+#: object-file.c:769
#, c-format
msgid "reference repository '%s' is not a local repository."
msgstr "el repositori de referència «%s» no és un repositori local."
-#: object-file.c:774
+#: object-file.c:775
#, c-format
msgid "reference repository '%s' is shallow"
msgstr "el repositori de referència «%s» és superficial"
-#: object-file.c:782
+#: object-file.c:783
#, c-format
msgid "reference repository '%s' is grafted"
msgstr "el repositori de referència «%s» és empeltat"
-#: object-file.c:813
+#: object-file.c:814
#, c-format
msgid "could not find object directory matching %s"
msgstr "no s'ha pogut trobar el directori de l'objecte que coincideixi amb %s"
-#: object-file.c:863
+#: object-file.c:864
#, c-format
msgid "invalid line while parsing alternate refs: %s"
msgstr ""
"línia no vàlida quan s'analitzaven les referències de l'«alternate»: %s"
-#: object-file.c:1013
+#: object-file.c:1014
#, c-format
msgid "attempting to mmap %<PRIuMAX> over limit %<PRIuMAX>"
msgstr "s'està intentant fer mmap %<PRIuMAX> per sobre del límit %<PRIuMAX>"
-#: object-file.c:1048
+#: object-file.c:1049
#, c-format
msgid "mmap failed%s"
msgstr "mmap ha fallat%s"
-#: object-file.c:1214
+#: object-file.c:1230
#, c-format
msgid "object file %s is empty"
msgstr "el tipus d'objecte %s és buit"
-#: object-file.c:1333 object-file.c:2542
+#: object-file.c:1349 object-file.c:2588
#, c-format
msgid "corrupt loose object '%s'"
msgstr "objecte solt corrupte «%s»"
-#: object-file.c:1335 object-file.c:2546
+#: object-file.c:1351 object-file.c:2592
#, c-format
msgid "garbage at end of loose object '%s'"
msgstr "brossa al final de l'objecte solt «%s»"
-#: object-file.c:1457
+#: object-file.c:1473
#, c-format
msgid "unable to parse %s header"
msgstr "no s'ha pogut analitzar la capçalera %s"
-#: object-file.c:1459
+#: object-file.c:1475
msgid "invalid object type"
msgstr "tipus d'objecte és incorrecte"
-#: object-file.c:1470
+#: object-file.c:1486
#, c-format
msgid "unable to unpack %s header"
msgstr "no s'ha pogut desempaquetar la capçalera %s"
-#: object-file.c:1474
+#: object-file.c:1490
#, c-format
msgid "header for %s too long, exceeds %d bytes"
msgstr "la capçalera per a %s és massa llarga, supera els %d bytes"
-#: object-file.c:1704
+#: object-file.c:1720
#, c-format
msgid "failed to read object %s"
msgstr "s'ha produït un error en llegir l'objecte %s"
-#: object-file.c:1708
+#: object-file.c:1724
#, c-format
msgid "replacement %s not found for %s"
msgstr "no s'ha trobat el reemplaçament %s per a %s"
-#: object-file.c:1712
+#: object-file.c:1728
#, c-format
msgid "loose object %s (stored in %s) is corrupt"
msgstr "l'objecte solt %s (emmagatzemat a %s) és corrupte"
-#: object-file.c:1716
+#: object-file.c:1732
#, c-format
msgid "packed object %s (stored in %s) is corrupt"
msgstr "l'objecte empaquetat %s (emmagatzemat a %s) és corrupte"
-#: object-file.c:1821
+#: object-file.c:1855
#, c-format
msgid "unable to write file %s"
msgstr "no s'ha pogut escriure al fitxer %s"
-#: object-file.c:1828
+#: object-file.c:1862
#, c-format
msgid "unable to set permission to '%s'"
msgstr "no s'ha pogut establir el permís a «%s»"
-#: object-file.c:1835
+#: object-file.c:1869
msgid "file write error"
msgstr "s'ha produït un error en escriure al fitxer"
-#: object-file.c:1858
+#: object-file.c:1904
msgid "error when closing loose object file"
msgstr "error en tancar el fitxer d'objecte solt"
-#: object-file.c:1925
+#: object-file.c:1971
#, c-format
msgid "insufficient permission for adding an object to repository database %s"
msgstr ""
"permisos insuficients per a afegir un objecte a la base de dades del "
"repositori %s"
-#: object-file.c:1927
+#: object-file.c:1973
msgid "unable to create temporary file"
msgstr "no s'ha pogut crear un fitxer temporal"
-#: object-file.c:1951
+#: object-file.c:1997
msgid "unable to write loose object file"
msgstr "no s'ha pogut escriure el fitxer d'objecte solt"
-#: object-file.c:1957
+#: object-file.c:2003
#, c-format
msgid "unable to deflate new object %s (%d)"
msgstr "no s'ha pogut desinflar l'object nou %s (%d)"
-#: object-file.c:1961
+#: object-file.c:2007
#, c-format
msgid "deflateEnd on object %s failed (%d)"
msgstr "ha fallat deflateEnd a l'objecte %s(%d)"
-#: object-file.c:1965
+#: object-file.c:2011
#, c-format
msgid "confused by unstable object source data for %s"
msgstr "confós per la font de dades inestable de l'objecte per a %s"
-#: object-file.c:1976 builtin/pack-objects.c:1243
+#: object-file.c:2022 builtin/pack-objects.c:1251
#, c-format
msgid "failed utime() on %s"
msgstr "ha fallat utime() a %s"
-#: object-file.c:2054
+#: object-file.c:2100
#, c-format
msgid "cannot read object for %s"
msgstr "no es pot llegir l'objecte per a %s"
-#: object-file.c:2105
+#: object-file.c:2151
msgid "corrupt commit"
msgstr "comissió corrupta"
-#: object-file.c:2113
+#: object-file.c:2159
msgid "corrupt tag"
msgstr "etiqueta corrupta"
-#: object-file.c:2213
+#: object-file.c:2259
#, c-format
msgid "read error while indexing %s"
msgstr "error de lectura mentre s'indexava %s"
-#: object-file.c:2216
+#: object-file.c:2262
#, c-format
msgid "short read while indexing %s"
msgstr "lectura curta mentre s'indexa %s"
-#: object-file.c:2289 object-file.c:2299
+#: object-file.c:2335 object-file.c:2345
#, c-format
msgid "%s: failed to insert into database"
msgstr "%s: no s'han pogut inserir a la base de dades"
-#: object-file.c:2305
+#: object-file.c:2351
#, c-format
msgid "%s: unsupported file type"
msgstr "%s: tipus de fitxer no suportat"
-#: object-file.c:2329 builtin/fetch.c:1453
+#: object-file.c:2375 builtin/fetch.c:1494
#, c-format
msgid "%s is not a valid object"
msgstr "%s no és un objecte vàlid"
-#: object-file.c:2331
+#: object-file.c:2377
#, c-format
msgid "%s is not a valid '%s' object"
msgstr "%s no és un objecte de «%s» vàlid"
-#: object-file.c:2358
+#: object-file.c:2404
#, c-format
msgid "unable to open %s"
msgstr "no s'ha pogut obrir %s"
-#: object-file.c:2553
+#: object-file.c:2599
#, c-format
msgid "hash mismatch for %s (expected %s)"
msgstr "no coincideix la suma per a %s (s'esperava %s)"
-#: object-file.c:2576
+#: object-file.c:2622
#, c-format
msgid "unable to mmap %s"
msgstr "no s'ha pogut fer «mmap» %s"
-#: object-file.c:2582
+#: object-file.c:2628
#, c-format
msgid "unable to unpack header of %s"
msgstr "no s'ha pogut desempaquetar la capçalera de %s"
-#: object-file.c:2587
+#: object-file.c:2633
#, c-format
msgid "unable to parse header of %s"
msgstr "no s'ha pogut analitzar la capçalera de %s"
-#: object-file.c:2598
+#: object-file.c:2644
#, c-format
msgid "unable to unpack contents of %s"
msgstr "no s'han pogut desempaquetar els continguts de %s"
-#: object-name.c:480
+#. TRANSLATORS: This is a line of ambiguous object
+#. output shown when we cannot look up or parse the
+#. object in question. E.g. "deadbeef [bad object]".
+#: object-name.c:382
+#, c-format
+msgid "%s [bad object]"
+msgstr "%s [objecte incorrecte]"
+
+#. TRANSLATORS: This is a line of ambiguous commit
+#. object output. E.g.:
+#. *
+#. "deadbeef commit 2021-01-01 - Some Commit Message"
+#: object-name.c:407
+#, c-format
+msgid "%s commit %s - %s"
+msgstr "%s comissió %s - %s"
+
+#. TRANSLATORS: This is a line of ambiguous
+#. tag object output. E.g.:
+#. *
+#. "deadbeef tag 2022-01-01 - Some Tag Message"
+#. *
+#. The second argument is the YYYY-MM-DD found
+#. in the tag.
+#. *
+#. The third argument is the "tag" string
+#. from object.c.
+#: object-name.c:428
+#, c-format
+msgid "%s tag %s - %s"
+msgstr "%s etiqueta %s - %s"
+
+#. TRANSLATORS: This is a line of ambiguous
+#. tag object output where we couldn't parse
+#. the tag itself. E.g.:
+#. *
+#. "deadbeef [bad tag, could not parse it]"
+#: object-name.c:439
+#, c-format, fuzzy
+msgid "%s [bad tag, could not parse it]"
+msgstr "tagetiqueta dolenta, no s'ha pogut analitzar]"
+
+#. TRANSLATORS: This is a line of ambiguous <type>
+#. object output. E.g. "deadbeef tree".
+#: object-name.c:447
+#, c-format, fuzzy
+msgid "%s tree"
+msgstr "arbre del 0%"
+
+#. TRANSLATORS: This is a line of ambiguous <type>
+#. object output. E.g. "deadbeef blob".
+#: object-name.c:453
+#, c-format, fuzzy
+msgid "%s blob"
+msgstr "blob"
+
+#: object-name.c:569
#, c-format
msgid "short object ID %s is ambiguous"
msgstr "l'id d'objecte curt %s és ambigu"
-#: object-name.c:491
-msgid "The candidates are:"
-msgstr "Els candidats són:"
+#. TRANSLATORS: The argument is the list of ambiguous
+#. objects composed in show_ambiguous_object(). See
+#. its "TRANSLATORS" comments for details.
+#: object-name.c:591
+#, c-format
+msgid ""
+"The candidates are:\n"
+"%s"
+msgstr ""
+"Els candidats són:\n"
+"%s"
-#: object-name.c:790
+#: object-name.c:888
msgid ""
"Git normally never creates a ref that ends with 40 hex characters\n"
"because it will be ignored when you just specify 40-hex. These refs\n"
@@ -6036,22 +6225,22 @@ msgstr ""
"suprimiu-les. Desactiveu aquest missatge executant\n"
"«git config advice.objectNameWarning false»"
-#: object-name.c:910
+#: object-name.c:1008
#, c-format
msgid "log for '%.*s' only goes back to %s"
msgstr "registre per a «%.*s» només retorna a %s"
-#: object-name.c:918
+#: object-name.c:1016
#, c-format
msgid "log for '%.*s' only has %d entries"
msgstr "registre per a «%.*s» només té %d entrades"
-#: object-name.c:1696
+#: object-name.c:1794
#, c-format
msgid "path '%s' exists on disk, but not in '%.*s'"
msgstr "el camí «%s» existeix al disc, però no a «%.*s»"
-#: object-name.c:1702
+#: object-name.c:1800
#, c-format
msgid ""
"path '%s' exists, but not '%s'\n"
@@ -6060,12 +6249,12 @@ msgstr ""
"el camí «%s» existeix, però no «%s»\n"
"consell: volíeu dir «%.*s:%s» conegut com a «%.*s:./%s»?"
-#: object-name.c:1711
+#: object-name.c:1809
#, c-format
msgid "path '%s' does not exist in '%.*s'"
msgstr "el camí «%s» no existeix en «%.*s»"
-#: object-name.c:1739
+#: object-name.c:1837
#, c-format
msgid ""
"path '%s' is in the index, but not at stage %d\n"
@@ -6074,7 +6263,7 @@ msgstr ""
"el camí «%s» està a l'índex, però no a «stage» %d\n"
".consell: volíeu dir «:%d:%s»?"
-#: object-name.c:1755
+#: object-name.c:1853
#, c-format
msgid ""
"path '%s' is in the index, but not '%s'\n"
@@ -6083,22 +6272,27 @@ msgstr ""
"el camí «%s» està a l'índex, però no a «%s»\n"
".consell: volíeu dir «:%d:%s» conegut com a «:%d:./%s»?"
-#: object-name.c:1763
+#: object-name.c:1861
#, c-format
msgid "path '%s' exists on disk, but not in the index"
msgstr "el camí «%s» existeix al disc, però no a l'índex"
-#: object-name.c:1765
+#: object-name.c:1863
#, c-format
msgid "path '%s' does not exist (neither on disk nor in the index)"
msgstr "el camí «%s» no existeix (ni al disc ni a l'índex)"
-#: object-name.c:1778
+#: object-name.c:1876
msgid "relative path syntax can't be used outside working tree"
msgstr ""
"la sintaxi de camí relatiu no es pot utilitzar fora de l'arbre de treball"
-#: object-name.c:1916
+#: object-name.c:1901
+#, c-format, fuzzy
+msgid "<object>:<path> required, only <object> '%s' given"
+msgstr "<object>:<path> requerit, només <object>'%s' donat"
+
+#: object-name.c:2014
#, c-format
msgid "invalid object name '%.*s'."
msgstr "nom d'objecte no vàlid «%.*s»."
@@ -6123,7 +6317,7 @@ msgstr "l'objecte %s té un identificador de tipus %d desconegut"
msgid "unable to parse object: %s"
msgstr "no s'ha pogut analitzar l'objecte: %s"
-#: object.c:283 object.c:295
+#: object.c:283 object.c:294
#, c-format
msgid "hash mismatch %s"
msgstr "el resum no coincideix %s"
@@ -6132,21 +6326,21 @@ msgstr "el resum no coincideix %s"
msgid "multi-pack bitmap is missing required reverse index"
msgstr "falta l'índex invers necessari al mapa de bits multipaquet"
-#: pack-bitmap.c:429
+#: pack-bitmap.c:433
msgid "load_reverse_index: could not open pack"
msgstr "load_reverse_index: no s'ha pogut obrir el paquet"
-#: pack-bitmap.c:1069 pack-bitmap.c:1075 builtin/pack-objects.c:2424
+#: pack-bitmap.c:1072 pack-bitmap.c:1078 builtin/pack-objects.c:2432
#, c-format
msgid "unable to get size of %s"
msgstr "no s'ha pogut obtenir la mida de %s"
-#: pack-bitmap.c:1935
+#: pack-bitmap.c:1937
#, c-format
msgid "could not find %s in pack %s at offset %<PRIuMAX>"
msgstr "no s'ha pogut trobar %s al paquet %s al desplaçament %<PRIuMAX>"
-#: pack-bitmap.c:1971 builtin/rev-list.c:92
+#: pack-bitmap.c:1973 builtin/rev-list.c:91
#, c-format
msgid "unable to get disk usage of %s"
msgstr "no s'ha pogut obtenir l'ús del disc de %s"
@@ -6190,7 +6384,7 @@ msgstr "no s'ha pogut fer stat a: %s"
msgid "failed to make %s readable"
msgstr "s'ha produït un error en fer %s llegible"
-#: pack-write.c:520
+#: pack-write.c:521
#, c-format
msgid "could not write '%s' promisor file"
msgstr "no s'ha pogut escriure «%s» al fitxer «promisor»"
@@ -6237,7 +6431,7 @@ msgid "malformed object name '%s'"
msgstr "nom d'objecte «%s» mal format"
#: parse-options-cb.c:307
-#, c-format
+#, c-format
msgid "option `%s' expects \"%s\" or \"%s\""
msgstr "l'opció «%s» espera «%s» o «%s»"
@@ -6510,15 +6704,15 @@ msgstr "no s'ha pogut analitzar el format --pretty"
#: promisor-remote.c:31
msgid "promisor-remote: unable to fork off fetch subprocess"
-msgstr "promisor-remote: no es pot bifurcar obtenint el subprocés"
+msgstr "promisor-remote: no es pot bifurcar el subprocés d'obtenció"
#: promisor-remote.c:38 promisor-remote.c:40
msgid "promisor-remote: could not write to fetch subprocess"
-msgstr "promisor-remote: no s'ha pogut escriure per a obtenir el subprocés"
+msgstr "promisor-remote: no s'ha pogut escriure per al subprocés d'obtenció"
#: promisor-remote.c:44
msgid "promisor-remote: could not close stdin to fetch subprocess"
-msgstr "promisor-remote: no s'ha pogut tancar stdin per a obtenir el subprocés"
+msgstr "promisor-remote: no s'ha pogut tancar stdin al subprocés d'obtenció"
#: promisor-remote.c:54
#, c-format
@@ -6533,20 +6727,20 @@ msgstr "object-info: s'esperava una neteja després dels arguments"
msgid "Removing duplicate objects"
msgstr "S'estan eliminant els objectes duplicats"
-#: range-diff.c:67
+#: range-diff.c:68
msgid "could not start `log`"
msgstr "no s'ha pogut iniciar «log»"
-#: range-diff.c:69
+#: range-diff.c:70
msgid "could not read `log` output"
msgstr "no s'ha pogut llegir la sortida de «log»"
-#: range-diff.c:97 sequencer.c:5602
+#: range-diff.c:98 sequencer.c:5575
#, c-format
msgid "could not parse commit '%s'"
msgstr "no s'ha pogut analitzar la comissió «%s»"
-#: range-diff.c:111
+#: range-diff.c:109
#, c-format
msgid ""
"could not parse first line of `log` output: did not start with 'commit ': "
@@ -6555,65 +6749,65 @@ msgstr ""
"no s'ha pogut analitzar la primera línia de la sortida «log»: no començava "
"amb «commit»: «%s»"
-#: range-diff.c:137
+#: range-diff.c:132
#, c-format
msgid "could not parse git header '%.*s'"
msgstr "no s'ha pogut llegir la capçalera de la gif «%.*s»"
-#: range-diff.c:304
+#: range-diff.c:300
msgid "failed to generate diff"
msgstr "s'ha produït un error en generar el diff"
-#: range-diff.c:562 range-diff.c:564
+#: range-diff.c:558 range-diff.c:560
#, c-format
msgid "could not parse log for '%s'"
msgstr "no s'ha pogut llegir el fitxer de registre per a «%s»"
-#: read-cache.c:723
+#: read-cache.c:737
#, c-format
msgid "will not add file alias '%s' ('%s' already exists in index)"
msgstr "no s'afegirà l'àlies «%s»: («%s» ja existeix en l'índex)"
-#: read-cache.c:739
+#: read-cache.c:753
msgid "cannot create an empty blob in the object database"
msgstr "no es pot crear un blob buit a la base de dades d'objectes"
-#: read-cache.c:761
+#: read-cache.c:775
#, c-format
msgid "%s: can only add regular files, symbolic links or git-directories"
msgstr ""
"%s: només pot afegir fitxers normals, enllaços simbòlics o directoris git"
-#: read-cache.c:766 builtin/submodule--helper.c:3242
+#: read-cache.c:780 builtin/submodule--helper.c:3359
#, c-format
msgid "'%s' does not have a commit checked out"
msgstr "«%s» no té una comissió comprovada"
-#: read-cache.c:818
+#: read-cache.c:832
#, c-format
msgid "unable to index file '%s'"
msgstr "no es pot llegir indexar el fitxer «%s»"
-#: read-cache.c:837
+#: read-cache.c:851
#, c-format
msgid "unable to add '%s' to index"
msgstr "no s'ha pogut afegir «%s» a l'índex"
-#: read-cache.c:848
+#: read-cache.c:862
#, c-format
msgid "unable to stat '%s'"
msgstr "no s'ha pogut fer «stat» a «%s»"
-#: read-cache.c:1386
+#: read-cache.c:1404
#, c-format
msgid "'%s' appears as both a file and as a directory"
msgstr "«%s» apareix com a fitxer i com a directori"
-#: read-cache.c:1601
+#: read-cache.c:1619
msgid "Refresh index"
msgstr "Actualitza l'índex"
-#: read-cache.c:1733
+#: read-cache.c:1751
#, c-format
msgid ""
"index.version set, but the value is invalid.\n"
@@ -6622,7 +6816,7 @@ msgstr ""
"index.version està establerta, però el valor no és vàlid.\n"
"S'està usant la versió %i"
-#: read-cache.c:1743
+#: read-cache.c:1761
#, c-format
msgid ""
"GIT_INDEX_VERSION set, but the value is invalid.\n"
@@ -6631,143 +6825,148 @@ msgstr ""
"GIT_INDEX_VERSION està establerta, però el valor no és vàlid.\n"
"S'està usant la versió %i"
-#: read-cache.c:1799
+#: read-cache.c:1817
#, c-format
msgid "bad signature 0x%08x"
msgstr "signatura malmesa 0x%08x"
-#: read-cache.c:1802
+#: read-cache.c:1820
#, c-format
msgid "bad index version %d"
msgstr "versió d'índex incorrecta %d"
-#: read-cache.c:1811
+#: read-cache.c:1829
msgid "bad index file sha1 signature"
msgstr "signatura sha1 malmesa al fitxer d'índex"
-#: read-cache.c:1845
+#: read-cache.c:1863
#, c-format
msgid "index uses %.4s extension, which we do not understand"
msgstr "l'índex usa l'extensió %.4s, que no es pot entendre"
-#: read-cache.c:1847
+#: read-cache.c:1865
#, c-format
msgid "ignoring %.4s extension"
msgstr "s'està ignorant l'extensió %.4s"
-#: read-cache.c:1884
+#: read-cache.c:1902
#, c-format
msgid "unknown index entry format 0x%08x"
msgstr "format d'entrada d'índex desconeguda «0x%08x»"
-#: read-cache.c:1900
+#: read-cache.c:1918
#, c-format
msgid "malformed name field in the index, near path '%s'"
msgstr "camp del nom mal formatat l'índex, camí a prop «%s»"
-#: read-cache.c:1957
+#: read-cache.c:1975
msgid "unordered stage entries in index"
msgstr "entrades «stage» no ordenades en l'índex"
-#: read-cache.c:1960
+#: read-cache.c:1978
#, c-format
msgid "multiple stage entries for merged file '%s'"
msgstr "múltiples entrades «stage» per al fitxer fusionat «%s»"
-#: read-cache.c:1963
+#: read-cache.c:1981
#, c-format
msgid "unordered stage entries for '%s'"
msgstr "entrades «stage» no ordenades per a «%s»"
-#: read-cache.c:2078 read-cache.c:2384 rerere.c:549 rerere.c:583 rerere.c:1095
-#: submodule.c:1662 builtin/add.c:600 builtin/check-ignore.c:183
-#: builtin/checkout.c:527 builtin/checkout.c:719 builtin/clean.c:1013
-#: builtin/commit.c:378 builtin/diff-tree.c:122 builtin/grep.c:519
-#: builtin/mv.c:148 builtin/reset.c:499 builtin/rm.c:293
-#: builtin/submodule--helper.c:327 builtin/submodule--helper.c:3202
+#: read-cache.c:2096 read-cache.c:2402 rerere.c:549 rerere.c:583 rerere.c:1096
+#: submodule.c:1831 builtin/add.c:586 builtin/check-ignore.c:183
+#: builtin/checkout.c:532 builtin/checkout.c:724 builtin/clean.c:1016
+#: builtin/commit.c:379 builtin/diff-tree.c:122 builtin/grep.c:521
+#: builtin/mv.c:148 builtin/reset.c:506 builtin/rm.c:293
+#: builtin/submodule--helper.c:335 builtin/submodule--helper.c:3319
msgid "index file corrupt"
msgstr "fitxer d'índex malmès"
-#: read-cache.c:2222
+#: read-cache.c:2240
#, c-format
msgid "unable to create load_cache_entries thread: %s"
msgstr "no s'ha pogut crear fil «load_cache_entries»: %s"
-#: read-cache.c:2235
+#: read-cache.c:2253
#, c-format
msgid "unable to join load_cache_entries thread: %s"
msgstr "no s'ha pogut unir al fil «load_cache_entries»: %s"
-#: read-cache.c:2268
+#: read-cache.c:2286
#, c-format
msgid "%s: index file open failed"
msgstr "%s: ha fallat l'obertura del fitxer d'índex"
-#: read-cache.c:2272
+#: read-cache.c:2290
#, c-format
msgid "%s: cannot stat the open index"
msgstr "%s: no es pot fer «stat» a l'índex obert"
-#: read-cache.c:2276
+#: read-cache.c:2294
#, c-format
msgid "%s: index file smaller than expected"
msgstr "%s: fitxer d'índex més petit que s'esperava"
-#: read-cache.c:2280
+#: read-cache.c:2298
#, c-format
msgid "%s: unable to map index file%s"
msgstr "%s: no es pot mapar el fitxer d'índex%s"
-#: read-cache.c:2323
+#: read-cache.c:2341
#, c-format
msgid "unable to create load_index_extensions thread: %s"
msgstr "no s'ha pogut crear un fil «load_index_extensions»: %s"
-#: read-cache.c:2350
+#: read-cache.c:2368
#, c-format
msgid "unable to join load_index_extensions thread: %s"
msgstr "no s'ha pogut unir un fil «load_index_extensions»: %s"
-#: read-cache.c:2396
+#: read-cache.c:2414
#, c-format
msgid "could not freshen shared index '%s'"
msgstr "no s'ha pogut refrescar l'índex compartit «%s»"
-#: read-cache.c:2455
+#: read-cache.c:2473
#, c-format
msgid "broken index, expect %s in %s, got %s"
msgstr "índex malmès, s'esperava %s a %s, s'ha rebut %s"
-#: read-cache.c:3086 strbuf.c:1191 wrapper.c:641 builtin/merge.c:1150
+#: read-cache.c:3032
+#, fuzzy
+msgid "cannot write split index for a sparse index"
+msgstr "no es pot escriure l'índex de divisió per a un índex dispers"
+
+#: read-cache.c:3114 strbuf.c:1192 wrapper.c:717 builtin/merge.c:1156
#, c-format
msgid "could not close '%s'"
msgstr "no s'ha pogut tancar «%s»"
-#: read-cache.c:3129
+#: read-cache.c:3157
msgid "failed to convert to a sparse-index"
msgstr "s'ha produït un error en convertir a un índex dispers"
-#: read-cache.c:3200
+#: read-cache.c:3228
#, c-format
msgid "could not stat '%s'"
msgstr "no s'ha pogut fer stat a «%s»"
-#: read-cache.c:3213
+#: read-cache.c:3241
#, c-format
msgid "unable to open git dir: %s"
msgstr "no s'ha pogut obrir el directori git: %s"
-#: read-cache.c:3225
+#: read-cache.c:3253
#, c-format
msgid "unable to unlink: %s"
msgstr "no s'ha pogut desenllaçar: %s"
-#: read-cache.c:3254
+#: read-cache.c:3282
#, c-format
msgid "cannot fix permission bits on '%s'"
msgstr "no s'han pogut corregir els bits de permisos en «%s»"
-#: read-cache.c:3411
+#: read-cache.c:3439
#, c-format
msgid "%s: cannot drop to stage #0"
msgstr "%s: no es pot baixar fins al «stage» #0"
@@ -6881,9 +7080,9 @@ msgstr ""
"No obstant, si elimineu tot, s'avortarà el «rebase».\n"
"\n"
-#: rebase-interactive.c:113 rerere.c:469 rerere.c:676 sequencer.c:3883
-#: sequencer.c:3909 sequencer.c:5708 builtin/fsck.c:328 builtin/gc.c:1791
-#: builtin/rebase.c:190
+#: rebase-interactive.c:113 rerere.c:469 rerere.c:677 sequencer.c:3879
+#: sequencer.c:3905 sequencer.c:5681 builtin/fsck.c:328 builtin/gc.c:1791
+#: builtin/rebase.c:191
#, c-format
msgid "could not write '%s'"
msgstr "no s'ha pogut escriure «%s»"
@@ -6921,7 +7120,7 @@ msgstr ""
msgid "%s: 'preserve' superseded by 'merges'"
msgstr "%s: «conserva» substituït per «fusiona»"
-#: ref-filter.c:42 wt-status.c:2048
+#: ref-filter.c:42 wt-status.c:2057
msgid "gone"
msgstr "no hi és"
@@ -7089,81 +7288,91 @@ msgstr "aquesta ordre rebutja l'àtom %%(%.*s)"
msgid "--format=%.*s cannot be used with --python, --shell, --tcl"
msgstr "no es pot usar --format=%.*s amb --python, --shell, --tcl"
-#: ref-filter.c:1706
+#: ref-filter.c:1707
#, c-format
msgid "(no branch, rebasing %s)"
msgstr "(sense branca, s'està fent «rebase» %s)"
-#: ref-filter.c:1709
+#: ref-filter.c:1710
#, c-format
msgid "(no branch, rebasing detached HEAD %s)"
msgstr "(sense branca, s'està fent «rebase» d'un «HEAD» separat %s)"
-#: ref-filter.c:1712
+#: ref-filter.c:1713
#, c-format
msgid "(no branch, bisect started on %s)"
msgstr "(sense branca, bisecció començada en %s)"
-#: ref-filter.c:1716
+#: ref-filter.c:1717
#, c-format
msgid "(HEAD detached at %s)"
msgstr "(HEAD separat a %s)"
-#: ref-filter.c:1719
+#: ref-filter.c:1720
#, c-format
msgid "(HEAD detached from %s)"
msgstr "(HEAD separat des de %s)"
-#: ref-filter.c:1722
+#: ref-filter.c:1723
msgid "(no branch)"
msgstr "(sense branca)"
-#: ref-filter.c:1754 ref-filter.c:1972
+#: ref-filter.c:1755 ref-filter.c:1973
#, c-format
msgid "missing object %s for %s"
msgstr "manca l'objecte %s per a %s"
-#: ref-filter.c:1764
+#: ref-filter.c:1765
#, c-format
msgid "parse_object_buffer failed on %s for %s"
msgstr "parse_object_buffer ha fallat en %s per a %s"
-#: ref-filter.c:2155
+#: ref-filter.c:2156
#, c-format
msgid "malformed object at '%s'"
msgstr "objecte mal format a «%s»"
-#: ref-filter.c:2245
+#: ref-filter.c:2246
#, c-format
msgid "ignoring ref with broken name %s"
msgstr "s'està ignorant la referència amb nom malmès %s"
-#: ref-filter.c:2250 refs.c:676
+#: ref-filter.c:2251 refs.c:672
#, c-format
msgid "ignoring broken ref %s"
-msgstr "s'està ignorant la referència trencada %s"
+msgstr "s'està ignorant la referència malmesa %s"
-#: ref-filter.c:2629
+#: ref-filter.c:2630
#, c-format
msgid "format: %%(end) atom missing"
msgstr "format: manca l'àtom %%(end)"
-#: ref-filter.c:2740
+#: ref-filter.c:2741
#, c-format
msgid "malformed object name %s"
msgstr "nom d'objecte %s mal format"
-#: ref-filter.c:2745
+#: ref-filter.c:2746
#, c-format
msgid "option `%s' must point to a commit"
msgstr "l'opció «%s» ha d'apuntar a una comissió"
-#: refs.c:261
+#: reflog.c:407
+#, c-format
+msgid "not a reflog: %s"
+msgstr "no és un registre de referència: %s"
+
+#: reflog.c:410
+#, c-format
+msgid "no reflog for '%s'"
+msgstr "cap registre de referència per a «%s»"
+
+#: refs.c:262
#, c-format
msgid "%s does not point to a valid object!"
msgstr "%s no apunta a un objecte vàlid"
-#: refs.c:563
+#: refs.c:561
#, c-format
msgid ""
"Using '%s' as the name for the initial branch. This default branch name\n"
@@ -7188,81 +7397,81 @@ msgstr ""
"\n"
"\tgit branch -m <nom>\n"
-#: refs.c:585
+#: refs.c:583
#, c-format
msgid "could not retrieve `%s`"
msgstr "no s'ha pogut recuperar «%s»"
-#: refs.c:595
+#: refs.c:593
#, c-format
msgid "invalid branch name: %s = %s"
msgstr "nom de branca no vàlida: %s = %s"
-#: refs.c:674
+#: refs.c:670
#, c-format
msgid "ignoring dangling symref %s"
msgstr "s'està ignorant symref penjant %s"
-#: refs.c:925
+#: refs.c:919
#, c-format
msgid "log for ref %s has gap after %s"
msgstr "registre per a ref %s té un buit després de %s"
-#: refs.c:932
+#: refs.c:926
#, c-format
msgid "log for ref %s unexpectedly ended on %s"
msgstr "registre per als ref %s ha acabat inesperadament a %s"
-#: refs.c:997
+#: refs.c:991
#, c-format
msgid "log for %s is empty"
msgstr "el registre per a %s és buit"
-#: refs.c:1090
+#: refs.c:1086
#, c-format
msgid "refusing to update ref with bad name '%s'"
msgstr "s'està refusant la referència amb nom malmès «%s»"
-#: refs.c:1168
+#: refs.c:1164
#, c-format
msgid "update_ref failed for ref '%s': %s"
msgstr "ha fallat update_ref per a la ref «%s»: %s"
-#: refs.c:2067
+#: refs.c:2059
#, c-format
msgid "multiple updates for ref '%s' not allowed"
msgstr "no es permeten múltiples actualitzacions per a la referència «%s»"
-#: refs.c:2150
+#: refs.c:2145
msgid "ref updates forbidden inside quarantine environment"
msgstr "no està permès actualitzar les referències en un entorn de quarantena"
-#: refs.c:2161
+#: refs.c:2156
msgid "ref updates aborted by hook"
msgstr "les actualitzacions de referències s'han avortat per un lligam"
-#: refs.c:2269 refs.c:2299
+#: refs.c:2264 refs.c:2294
#, c-format
msgid "'%s' exists; cannot create '%s'"
msgstr "«%s» existeix; no es pot crear «%s»"
-#: refs.c:2275 refs.c:2310
+#: refs.c:2270 refs.c:2305
#, c-format
msgid "cannot process '%s' and '%s' at the same time"
msgstr "no es poden processar «%s» i «%s» a la vegada"
-#: refs/files-backend.c:1267
+#: refs/files-backend.c:1295
#, c-format
msgid "could not remove reference %s"
msgstr "no s'ha pogut eliminar la referència %s"
-#: refs/files-backend.c:1281 refs/packed-backend.c:1549
-#: refs/packed-backend.c:1559
+#: refs/files-backend.c:1310 refs/packed-backend.c:1565
+#: refs/packed-backend.c:1575
#, c-format
msgid "could not delete reference %s: %s"
msgstr "no s'ha pogut suprimir la referència %s: %s"
-#: refs/files-backend.c:1284 refs/packed-backend.c:1562
+#: refs/files-backend.c:1313 refs/packed-backend.c:1578
#, c-format
msgid "could not delete references: %s"
msgstr "no s'han pogut suprimir les referències: %s"
@@ -7286,37 +7495,37 @@ msgstr "més d'un paquet de recepció donat, usant el primer"
msgid "more than one uploadpack given, using the first"
msgstr "més d'un paquet de càrrega donat, usant el primer"
-#: remote.c:699
+#: remote.c:698
#, c-format
msgid "Cannot fetch both %s and %s to %s"
msgstr "No es poden obtenir ambdós %s i %s a %s"
-#: remote.c:703
+#: remote.c:702
#, c-format
msgid "%s usually tracks %s, not %s"
msgstr "%s generalment segueix %s, no %s"
-#: remote.c:707
+#: remote.c:706
#, c-format
msgid "%s tracks both %s and %s"
msgstr "%s segueix ambdós %s i %s"
-#: remote.c:775
+#: remote.c:774
#, c-format
msgid "key '%s' of pattern had no '*'"
msgstr "la clau «%s» del patró no té «*»"
-#: remote.c:785
+#: remote.c:784
#, c-format
msgid "value '%s' of pattern has no '*'"
msgstr "el valor «%s» del patró no té «*»"
-#: remote.c:1192
+#: remote.c:1191
#, c-format
msgid "src refspec %s does not match any"
msgstr "l'especificació de referència src %s no coincideix amb cap referència"
-#: remote.c:1197
+#: remote.c:1196
#, c-format
msgid "src refspec %s matches more than one"
msgstr ""
@@ -7325,7 +7534,7 @@ msgstr ""
#. TRANSLATORS: "matches '%s'%" is the <dst> part of "git push
#. <remote> <src>:<dst>" push, and "being pushed ('%s')" is
#. the <src>.
-#: remote.c:1212
+#: remote.c:1211
#, c-format
msgid ""
"The destination you provided is not a full refname (i.e.,\n"
@@ -7348,7 +7557,7 @@ msgstr ""
"\n"
"Res d'això ha funcionat. Cal que proporcioneu una referència completa."
-#: remote.c:1232
+#: remote.c:1231
#, c-format
msgid ""
"The <src> part of the refspec is a commit object.\n"
@@ -7359,7 +7568,7 @@ msgstr ""
"Voleu crear una branca nova empenyent a\n"
"«%s:refs/heads/%s»?"
-#: remote.c:1237
+#: remote.c:1236
#, c-format
msgid ""
"The <src> part of the refspec is a tag object.\n"
@@ -7369,7 +7578,7 @@ msgstr ""
"La part <src> de l'especificació de la referència és un objecte d'etiqueta.\n"
"Voleu crear una etiqueta pujant-la a «%srefs/tags/%s»?"
-#: remote.c:1242
+#: remote.c:1241
#, c-format
msgid ""
"The <src> part of the refspec is a tree object.\n"
@@ -7379,7 +7588,7 @@ msgstr ""
"La part <src> de l'especificació de la referència és un objecte d'arbre.\n"
"Voleu crear una etiqueta pujant-la a «%srefs/tags/%s»?"
-#: remote.c:1247
+#: remote.c:1246
#, c-format
msgid ""
"The <src> part of the refspec is a blob object.\n"
@@ -7390,118 +7599,118 @@ msgstr ""
"Voleu posar una etiqueta al blob nou mitjançant la pujada a\n"
"?«%s:refs/tags/%s»?"
-#: remote.c:1283
+#: remote.c:1282
#, c-format
msgid "%s cannot be resolved to branch"
msgstr "«%s» no es pot resoldre a una branca"
-#: remote.c:1294
+#: remote.c:1293
#, c-format
msgid "unable to delete '%s': remote ref does not exist"
msgstr "no s'ha pogut suprimir «%s»: la referència remota no existeix"
-#: remote.c:1306
+#: remote.c:1305
#, c-format
msgid "dst refspec %s matches more than one"
msgstr ""
"l'especificació de la referència dst %s coincideixen amb més d'una "
"referència"
-#: remote.c:1313
+#: remote.c:1312
#, c-format
msgid "dst ref %s receives from more than one src"
msgstr "l'especificació de la referència dst %s rep més d'una referència src"
-#: remote.c:1834 remote.c:1941
+#: remote.c:1833 remote.c:1940
msgid "HEAD does not point to a branch"
msgstr "HEAD no assenyala cap branca"
-#: remote.c:1843
+#: remote.c:1842
#, c-format
msgid "no such branch: '%s'"
msgstr "no existeix la branca: «%s»"
-#: remote.c:1846
+#: remote.c:1845
#, c-format
msgid "no upstream configured for branch '%s'"
msgstr "cap font configurada per a la branca «%s»"
-#: remote.c:1852
+#: remote.c:1851
#, c-format
msgid "upstream branch '%s' not stored as a remote-tracking branch"
msgstr "la branca font «%s» no s'emmagatzema com a branca amb seguiment remot"
-#: remote.c:1867
+#: remote.c:1866
#, c-format
msgid "push destination '%s' on remote '%s' has no local tracking branch"
msgstr ""
"el destí de pujada «%s» en el remot «%s» no té cap branca amb seguiment "
"remot"
-#: remote.c:1882
+#: remote.c:1881
#, c-format
msgid "branch '%s' has no remote for pushing"
msgstr "la branca «%s» no té cap remot al qual pujar"
-#: remote.c:1892
+#: remote.c:1891
#, c-format
msgid "push refspecs for '%s' do not include '%s'"
-msgstr "les especificacions de referència de «%s» no inclouen «%s»"
+msgstr "les especificacions de referència de pujada «%s» no inclouen «%s»"
-#: remote.c:1905
+#: remote.c:1904
msgid "push has no destination (push.default is 'nothing')"
msgstr "push no té destí (push.default és «nothing»)"
-#: remote.c:1927
+#: remote.c:1926
msgid "cannot resolve 'simple' push to a single destination"
msgstr "no es pot resoldre una pujada «simple» a un sol destí"
-#: remote.c:2060
+#: remote.c:2059
#, c-format
msgid "couldn't find remote ref %s"
msgstr "no s'ha pogut trobar la referència remota %s"
-#: remote.c:2073
+#: remote.c:2072
#, c-format
msgid "* Ignoring funny ref '%s' locally"
msgstr "* S'estan ignorant les referències «%s» localment"
-#: remote.c:2236
+#: remote.c:2235
#, c-format
msgid "Your branch is based on '%s', but the upstream is gone.\n"
msgstr "La vostra branca està basada en «%s», però la font no hi és.\n"
-#: remote.c:2240
+#: remote.c:2239
msgid " (use \"git branch --unset-upstream\" to fixup)\n"
msgstr " (useu «git branch --unset-upstream» per a arreglar-ho)\n"
-#: remote.c:2243
+#: remote.c:2242
#, c-format
msgid "Your branch is up to date with '%s'.\n"
msgstr "La vostra branca està al dia amb «%s».\n"
-#: remote.c:2247
+#: remote.c:2246
#, c-format
msgid "Your branch and '%s' refer to different commits.\n"
msgstr "La vostra branca i «%s» es refereixen a diferents comissions.\n"
-#: remote.c:2250
+#: remote.c:2249
#, c-format
msgid " (use \"%s\" for details)\n"
msgstr " (useu «%s» per a detalls)\n"
-#: remote.c:2254
+#: remote.c:2253
#, c-format
msgid "Your branch is ahead of '%s' by %d commit.\n"
msgid_plural "Your branch is ahead of '%s' by %d commits.\n"
msgstr[0] "La vostra branca està %2$d comissió per davant de «%1$s».\n"
msgstr[1] "La vostra branca està %2$d comissions per davant de «%1$s».\n"
-#: remote.c:2260
+#: remote.c:2259
msgid " (use \"git push\" to publish your local commits)\n"
msgstr " (useu «git push» per a publicar les vostres comissions locals)\n"
-#: remote.c:2263
+#: remote.c:2262
#, c-format
msgid "Your branch is behind '%s' by %d commit, and can be fast-forwarded.\n"
msgid_plural ""
@@ -7513,11 +7722,11 @@ msgstr[1] ""
"La vostra branca està %2$d comissions per darrere de «%1$s», i pot avançar-"
"se ràpidament.\n"
-#: remote.c:2271
+#: remote.c:2270
msgid " (use \"git pull\" to update your local branch)\n"
msgstr " (useu «git pull» per a actualitzar la vostra branca local)\n"
-#: remote.c:2274
+#: remote.c:2273
#, c-format
msgid ""
"Your branch and '%s' have diverged,\n"
@@ -7532,11 +7741,11 @@ msgstr[1] ""
"La vostra branca i «%s» han divergit,\n"
"i tenen %d i %d comissions distintes cada una, respectivament.\n"
-#: remote.c:2284
+#: remote.c:2283
msgid " (use \"git pull\" to merge the remote branch into yours)\n"
msgstr " (useu «git pull» per a fusionar la branca remota amb la vostra)\n"
-#: remote.c:2476
+#: remote.c:2475
#, c-format
msgid "cannot parse expected object name '%s'"
msgstr "no es pot analitzar el nom de l'objecte esperat «%s»"
@@ -7574,104 +7783,108 @@ msgstr "s'han produït errors en escriure «%s» (%s)"
msgid "failed to flush '%s'"
msgstr "no s'ha pogut buidar «%s»"
-#: rerere.c:487 rerere.c:1023
+#: rerere.c:487 rerere.c:1024
#, c-format
msgid "could not parse conflict hunks in '%s'"
msgstr "no s'han pogut analitzar els pedaços en conflicte a «%s»"
-#: rerere.c:668
+#: rerere.c:669
#, c-format
msgid "failed utime() on '%s'"
msgstr "s'ha produït un error en fer «failed utime()» a «%s»"
-#: rerere.c:678
+#: rerere.c:679
#, c-format
msgid "writing '%s' failed"
msgstr "s'ha produït un error en escriure «%s»"
-#: rerere.c:698
+#: rerere.c:699
#, c-format
msgid "Staged '%s' using previous resolution."
msgstr "«Staged» «%s» utilitzant una resolució anterior."
-#: rerere.c:737
+#: rerere.c:738
#, c-format
msgid "Recorded resolution for '%s'."
msgstr "Es recorda la resolució per a «%s»."
-#: rerere.c:772
+#: rerere.c:773
#, c-format
msgid "Resolved '%s' using previous resolution."
msgstr "S'ha resolt «%s» usant una resolució anterior."
-#: rerere.c:787
+#: rerere.c:788
#, c-format
msgid "cannot unlink stray '%s'"
msgstr "no es pot desenllaçar «%s» (extraviat)"
-#: rerere.c:791
+#: rerere.c:792
#, c-format
msgid "Recorded preimage for '%s'"
msgstr "Imatge prèvia registrada per a «%s»"
-#: rerere.c:865 submodule.c:2121 builtin/log.c:2017
-#: builtin/submodule--helper.c:1777 builtin/submodule--helper.c:1820
+#: rerere.c:866 submodule.c:2290 builtin/log.c:2042
+#: builtin/submodule--helper.c:1786 builtin/submodule--helper.c:1833
#, c-format
msgid "could not create directory '%s'"
msgstr "no s'ha pogut crear el directori «%s»"
-#: rerere.c:1041
+#: rerere.c:1042
#, c-format
msgid "failed to update conflicted state in '%s'"
msgstr "ha fallat en actualitzar l'estat en conflicte a «%s»"
-#: rerere.c:1052 rerere.c:1059
+#: rerere.c:1053 rerere.c:1060
#, c-format
msgid "no remembered resolution for '%s'"
msgstr "no hi ha cap resolució recordada per a «%s»"
-#: rerere.c:1061
+#: rerere.c:1062
#, c-format
msgid "cannot unlink '%s'"
msgstr "no es pot fer «unlink» de «%s»"
-#: rerere.c:1071
+#: rerere.c:1072
#, c-format
msgid "Updated preimage for '%s'"
msgstr "Imatge prèvia actualitzada per a «%s»"
-#: rerere.c:1080
+#: rerere.c:1081
#, c-format
msgid "Forgot resolution for '%s'\n"
msgstr "S'ha oblidat la resolució per a «%s»\n"
-#: rerere.c:1191
+#: rerere.c:1192
msgid "unable to open rr-cache directory"
msgstr "no s'ha pogut obrir el directori rr-cache"
-#: reset.c:42
+#: reset.c:112
msgid "could not determine HEAD revision"
msgstr "no s'ha pogut determinar la revisió de HEAD"
-#: reset.c:70 reset.c:76 sequencer.c:3700
+#: reset.c:141 reset.c:147 sequencer.c:3696
#, c-format
msgid "failed to find tree of %s"
msgstr "s'ha produït un error en cercar l'arbre de %s"
-#: revision.c:2347
+#: revision.c:2358
msgid "--unpacked=<packfile> no longer supported"
msgstr "--unpacked=<packfile> ja no s'admet"
-#: revision.c:2686
+#: revision.c:2712
msgid "your current branch appears to be broken"
msgstr "la vostra branca actual sembla malmesa"
-#: revision.c:2689
+#: revision.c:2715
#, c-format
msgid "your current branch '%s' does not have any commits yet"
msgstr "la branca actual «%s» encara no té cap comissió"
-#: revision.c:2891
+#: revision.c:2901
+msgid "object filtering requires --objects"
+msgstr "el filtratge d'objectes requereix --objects"
+
+#: revision.c:2918
msgid "-L does not yet support diff formats besides -p and -s"
msgstr "-L no és encara compatible amb formats que no siguin «-p» o «-s»"
@@ -7707,7 +7920,7 @@ msgstr "send-pack: no es pot bifurcar obtenint un subprocés"
#: send-pack.c:457
msgid "push negotiation failed; proceeding anyway with push"
msgstr ""
-"ha fallat la negociació de l'empenta; s'està procedint igualment amb "
+"ha fallat la negociació de la pujada; s'està procedint igualment amb "
"l'empenta"
#: send-pack.c:528
@@ -7732,7 +7945,7 @@ msgstr "el destí receptor no admet pujar --atomic"
#: send-pack.c:551
msgid "the receiving end does not support push options"
-msgstr "el destí receptor no admet opcions de pujada"
+msgstr "el receptor al destí no admet opcions de pujada"
#: sequencer.c:197
#, c-format
@@ -7744,7 +7957,7 @@ msgstr "mode de neteja «%s» no vàlid en la comissió del missatge"
msgid "could not delete '%s'"
msgstr "no s'ha pogut suprimir «%s»"
-#: sequencer.c:345 sequencer.c:4751 builtin/rebase.c:563 builtin/rebase.c:1297
+#: sequencer.c:345 sequencer.c:4724 builtin/rebase.c:564 builtin/rebase.c:1326
#: builtin/rm.c:409
#, c-format
msgid "could not remove '%s'"
@@ -7807,13 +8020,13 @@ msgstr ""
"Per a interrompre i tornar a l'estat anterior abans de «git revert»,\n"
"executeu «git revert --abort»."
-#: sequencer.c:448 sequencer.c:3292
+#: sequencer.c:448 sequencer.c:3288
#, c-format
msgid "could not lock '%s'"
msgstr "no s'ha pogut bloquejar «%s»"
-#: sequencer.c:450 sequencer.c:3091 sequencer.c:3296 sequencer.c:3310
-#: sequencer.c:3561 sequencer.c:5618 strbuf.c:1188 wrapper.c:639
+#: sequencer.c:450 sequencer.c:3087 sequencer.c:3292 sequencer.c:3306
+#: sequencer.c:3557 sequencer.c:5591 strbuf.c:1189 wrapper.c:715
#, c-format
msgid "could not write to '%s'"
msgstr "no s'ha pogut escriure a «%s»"
@@ -7823,14 +8036,14 @@ msgstr "no s'ha pogut escriure a «%s»"
msgid "could not write eol to '%s'"
msgstr "no s'ha pogut escriure el terminador de línia a «%s»"
-#: sequencer.c:460 sequencer.c:3096 sequencer.c:3298 sequencer.c:3312
-#: sequencer.c:3569
+#: sequencer.c:460 sequencer.c:3092 sequencer.c:3294 sequencer.c:3308
+#: sequencer.c:3565
#, c-format
msgid "failed to finalize '%s'"
msgstr "s'ha produït un error en finalitzar «%s»"
-#: sequencer.c:473 sequencer.c:1934 sequencer.c:3116 sequencer.c:3551
-#: sequencer.c:3679 builtin/am.c:289 builtin/commit.c:834 builtin/merge.c:1148
+#: sequencer.c:473 sequencer.c:1930 sequencer.c:3112 sequencer.c:3547
+#: sequencer.c:3675 builtin/am.c:290 builtin/commit.c:837 builtin/merge.c:1154
#, c-format
msgid "could not read '%s'"
msgstr "no s'ha pogut llegir «%s»"
@@ -7849,7 +8062,7 @@ msgstr "cometeu els vostres canvis o feu un «stash» per a procedir."
msgid "%s: fast-forward"
msgstr "%s: avanç ràpid"
-#: sequencer.c:574 builtin/tag.c:614
+#: sequencer.c:574 builtin/tag.c:615
#, c-format
msgid "Invalid cleanup mode %s"
msgstr "Mode de neteja no vàlid %s"
@@ -7879,8 +8092,8 @@ msgstr "no hi ha una clau a «%.*s»"
msgid "unable to dequote value of '%s'"
msgstr "no s'han pogut treure les cometes del valor de «%s»"
-#: sequencer.c:841 wrapper.c:209 wrapper.c:379 builtin/am.c:756
-#: builtin/am.c:848 builtin/rebase.c:694
+#: sequencer.c:841 wrapper.c:219 wrapper.c:389 builtin/am.c:757
+#: builtin/am.c:849 builtin/rebase.c:699
#, c-format
msgid "could not open '%s' for reading"
msgstr "no s'ha pogut obrir «%s» per a lectura"
@@ -8000,349 +8213,344 @@ msgstr ""
"\n"
" git commit --amend --reset-author\n"
-#: sequencer.c:1288
+#: sequencer.c:1287
msgid "couldn't look up newly created commit"
msgstr "no s'ha pogut trobar la comissió novament creada"
-#: sequencer.c:1290
+#: sequencer.c:1289
msgid "could not parse newly created commit"
msgstr "no s'ha pogut analitzar la comissió novament creada"
-#: sequencer.c:1339
+#: sequencer.c:1336
msgid "unable to resolve HEAD after creating commit"
msgstr "no s'ha pogut resoldre HEAD després de crear la comissió"
-#: sequencer.c:1342
+#: sequencer.c:1338
msgid "detached HEAD"
msgstr "HEAD separat"
-#: sequencer.c:1346
+#: sequencer.c:1342
msgid " (root-commit)"
msgstr " (comissió arrel)"
-#: sequencer.c:1367
+#: sequencer.c:1363
msgid "could not parse HEAD"
msgstr "no s'ha pogut analitzar HEAD"
-#: sequencer.c:1369
+#: sequencer.c:1365
#, c-format
msgid "HEAD %s is not a commit!"
msgstr "HEAD %s no és una comissió!"
-#: sequencer.c:1373 sequencer.c:1451 builtin/commit.c:1708
+#: sequencer.c:1369 sequencer.c:1447 builtin/commit.c:1707
msgid "could not parse HEAD commit"
msgstr "no s'ha pogut analitzar la comissió HEAD"
-#: sequencer.c:1429 sequencer.c:2314
+#: sequencer.c:1425 sequencer.c:2310
msgid "unable to parse commit author"
msgstr "no s'ha pogut analitzar l'autor de la comissió"
-#: sequencer.c:1440 builtin/am.c:1643 builtin/merge.c:710
+#: sequencer.c:1436 builtin/am.c:1644 builtin/merge.c:710
msgid "git write-tree failed to write a tree"
msgstr "git write-tree ha fallat en escriure un arbre"
-#: sequencer.c:1473 sequencer.c:1593
+#: sequencer.c:1469 sequencer.c:1589
#, c-format
msgid "unable to read commit message from '%s'"
msgstr "no s'ha pogut llegir el missatge de comissió des de «%s»"
-#: sequencer.c:1504 sequencer.c:1536
+#: sequencer.c:1500 sequencer.c:1532
#, c-format
msgid "invalid author identity '%s'"
msgstr "identitat d'autor no vàlida: «%s»"
-#: sequencer.c:1510
+#: sequencer.c:1506
msgid "corrupt author: missing date information"
msgstr "autor malmès: falta la informació de la data"
-#: sequencer.c:1549 builtin/am.c:1670 builtin/commit.c:1822
-#: builtin/merge.c:915 builtin/merge.c:940 t/helper/test-fast-rebase.c:78
+#: sequencer.c:1545 builtin/am.c:1671 builtin/commit.c:1821
+#: builtin/merge.c:921 builtin/merge.c:946 t/helper/test-fast-rebase.c:78
msgid "failed to write commit object"
msgstr "s'ha produït un error en escriure l'objecte de comissió"
-#: sequencer.c:1576 sequencer.c:4523 t/helper/test-fast-rebase.c:199
+#: sequencer.c:1572 sequencer.c:4496 t/helper/test-fast-rebase.c:199
#: t/helper/test-fast-rebase.c:217
#, c-format
msgid "could not update %s"
msgstr "no s'ha pogut actualitzar %s"
-#: sequencer.c:1625
+#: sequencer.c:1621
#, c-format
msgid "could not parse commit %s"
msgstr "no s'ha pogut analitzar la comissió %s"
-#: sequencer.c:1630
+#: sequencer.c:1626
#, c-format
msgid "could not parse parent commit %s"
msgstr "no s'ha pogut analitzar la comissió pare %s"
-#: sequencer.c:1713 sequencer.c:1994
+#: sequencer.c:1709 sequencer.c:1990
#, c-format
msgid "unknown command: %d"
msgstr "ordre desconeguda: %d"
-#: sequencer.c:1755
+#: sequencer.c:1751
msgid "This is the 1st commit message:"
msgstr "Aquest és el 1r missatge de comissió:"
-#: sequencer.c:1756
+#: sequencer.c:1752
#, c-format
msgid "This is the commit message #%d:"
msgstr "Aquest és el missatge de comissió #%d:"
-#: sequencer.c:1757
+#: sequencer.c:1753
msgid "The 1st commit message will be skipped:"
msgstr "El primer missatge de comissió s'ometrà:"
-#: sequencer.c:1758
+#: sequencer.c:1754
#, c-format
msgid "The commit message #%d will be skipped:"
msgstr "El missatge de comissió núm. #%d s'ometrà:"
-#: sequencer.c:1759
+#: sequencer.c:1755
#, c-format
msgid "This is a combination of %d commits."
msgstr "Això és una combinació de %d comissions."
-#: sequencer.c:1906 sequencer.c:1963
+#: sequencer.c:1902 sequencer.c:1959
#, c-format
msgid "cannot write '%s'"
msgstr "no es pot escriure «%s»"
-#: sequencer.c:1953
+#: sequencer.c:1949
msgid "need a HEAD to fixup"
msgstr "cal un HEAD per a reparar-ho"
-#: sequencer.c:1955 sequencer.c:3596
+#: sequencer.c:1951 sequencer.c:3592
msgid "could not read HEAD"
msgstr "no s'ha pogut llegir HEAD"
-#: sequencer.c:1957
+#: sequencer.c:1953
msgid "could not read HEAD's commit message"
msgstr "no s'ha pogut llegir el missatge de comissió de HEAD"
-#: sequencer.c:1981
+#: sequencer.c:1977
#, c-format
msgid "could not read commit message of %s"
msgstr "no s'ha pogut llegir el missatge de comissió: %s"
-#: sequencer.c:2091
+#: sequencer.c:2087
msgid "your index file is unmerged."
msgstr "el vostre fitxer d'índex està sense fusionar."
-#: sequencer.c:2098
+#: sequencer.c:2094
msgid "cannot fixup root commit"
msgstr "no es pot arreglar la comissió arrel"
-#: sequencer.c:2117
+#: sequencer.c:2113
#, c-format
msgid "commit %s is a merge but no -m option was given."
msgstr "la comissió %s és una fusió però no s'ha donat cap opció -m."
-#: sequencer.c:2125 sequencer.c:2133
+#: sequencer.c:2121 sequencer.c:2129
#, c-format
msgid "commit %s does not have parent %d"
msgstr "la comissió %s no té pare %d"
-#: sequencer.c:2139
+#: sequencer.c:2135
#, c-format
msgid "cannot get commit message for %s"
msgstr "no es pot obtenir el missatge de comissió de %s"
#. TRANSLATORS: The first %s will be a "todo" command like
#. "revert" or "pick", the second %s a SHA1.
-#: sequencer.c:2158
+#: sequencer.c:2154
#, c-format
msgid "%s: cannot parse parent commit %s"
msgstr "%s: no es pot analitzar la comissió pare %s"
-#: sequencer.c:2224
+#: sequencer.c:2220
#, c-format
msgid "could not rename '%s' to '%s'"
msgstr "no s'ha pogut canviar el nom «%s» a «%s»"
-#: sequencer.c:2284
+#: sequencer.c:2280
#, c-format
msgid "could not revert %s... %s"
msgstr "no s'ha pogut revertir %s... %s"
-#: sequencer.c:2285
+#: sequencer.c:2281
#, c-format
msgid "could not apply %s... %s"
msgstr "no s'ha pogut aplicar %s... %s"
-#: sequencer.c:2306
+#: sequencer.c:2302
#, c-format
msgid "dropping %s %s -- patch contents already upstream\n"
msgstr "descartant %s %s -- el contingut del pedaç ja està a la font\n"
-#: sequencer.c:2364
+#: sequencer.c:2360
#, c-format
msgid "git %s: failed to read the index"
msgstr "git %s: s'ha produït un error en llegir l'índex"
-#: sequencer.c:2372
+#: sequencer.c:2368
#, c-format
msgid "git %s: failed to refresh the index"
msgstr "git %s: s'ha produït un error en actualitzar l'índex"
-#: sequencer.c:2452
+#: sequencer.c:2448
#, c-format
msgid "%s does not accept arguments: '%s'"
msgstr "%s no accepta arguments: «%s»"
-#: sequencer.c:2461
+#: sequencer.c:2457
#, c-format
msgid "missing arguments for %s"
msgstr "falten els arguments per a %s"
-#: sequencer.c:2504
+#: sequencer.c:2500
#, c-format
msgid "could not parse '%s'"
msgstr "no s'ha pogut analitzar «%s»"
-#: sequencer.c:2565
+#: sequencer.c:2561
#, c-format
msgid "invalid line %d: %.*s"
msgstr "línia no vàlida %d: %.*s"
-#: sequencer.c:2576
+#: sequencer.c:2572
#, c-format
msgid "cannot '%s' without a previous commit"
msgstr "no es pot «%s» sense una comissió prèvia"
-#: sequencer.c:2624 builtin/rebase.c:184
+#: sequencer.c:2620 builtin/rebase.c:185
#, c-format
msgid "could not read '%s'."
msgstr "no s'ha pogut llegir «%s»."
-#: sequencer.c:2662
+#: sequencer.c:2658
msgid "cancelling a cherry picking in progress"
msgstr "s'està cancel·lant un «cherry pick» en curs"
-#: sequencer.c:2671
+#: sequencer.c:2667
msgid "cancelling a revert in progress"
msgstr "s'està cancel·lant la reversió en curs"
-#: sequencer.c:2711
+#: sequencer.c:2707
msgid "please fix this using 'git rebase --edit-todo'."
msgstr "corregiu-ho usant «git rebase --edit-todo»."
-#: sequencer.c:2713
+#: sequencer.c:2709
#, c-format
msgid "unusable instruction sheet: '%s'"
msgstr "full d'instruccions inusable: «%s»"
-#: sequencer.c:2718
+#: sequencer.c:2714
msgid "no commits parsed."
msgstr "no s'ha analitzat cap comissió."
-#: sequencer.c:2729
+#: sequencer.c:2725
msgid "cannot cherry-pick during a revert."
msgstr "no es pot fer «cherry pick» durant una reversió."
-#: sequencer.c:2731
+#: sequencer.c:2727
msgid "cannot revert during a cherry-pick."
msgstr "no es pot revertir durant un «cherry pick»."
-#: sequencer.c:2809
-#, c-format
-msgid "invalid value for %s: %s"
-msgstr "valor no vàlid per a %s: %s"
-
-#: sequencer.c:2918
+#: sequencer.c:2914
msgid "unusable squash-onto"
msgstr "«squash-onto» no usable"
-#: sequencer.c:2938
+#: sequencer.c:2934
#, c-format
msgid "malformed options sheet: '%s'"
msgstr "full d'opcions mal format: «%s»"
-#: sequencer.c:3033 sequencer.c:4902
+#: sequencer.c:3029 sequencer.c:4875
msgid "empty commit set passed"
msgstr "conjunt de comissions buit passat"
-#: sequencer.c:3050
+#: sequencer.c:3046
msgid "revert is already in progress"
msgstr "una reversió ja està en curs"
-#: sequencer.c:3052
+#: sequencer.c:3048
#, c-format
msgid "try \"git revert (--continue | %s--abort | --quit)\""
msgstr "intenteu «git revert (--continue | %s--abort | --quit)»"
-#: sequencer.c:3055
+#: sequencer.c:3051
msgid "cherry-pick is already in progress"
msgstr "un «cherry pick» ja està en curs"
-#: sequencer.c:3057
+#: sequencer.c:3053
#, c-format
msgid "try \"git cherry-pick (--continue | %s--abort | --quit)\""
msgstr "intenteu «git cherry-pick (--continue | %s--abort | --quit)»"
-#: sequencer.c:3071
+#: sequencer.c:3067
#, c-format
msgid "could not create sequencer directory '%s'"
msgstr "no s'ha pogut crear el directori de seqüenciador «%s»"
-#: sequencer.c:3086
+#: sequencer.c:3082
msgid "could not lock HEAD"
msgstr "no s'ha pogut bloquejar HEAD"
-#: sequencer.c:3146 sequencer.c:4612
+#: sequencer.c:3142 sequencer.c:4585
msgid "no cherry-pick or revert in progress"
msgstr "ni hi ha cap «cherry pick» ni cap reversió en curs"
-#: sequencer.c:3148 sequencer.c:3159
+#: sequencer.c:3144 sequencer.c:3155
msgid "cannot resolve HEAD"
msgstr "no es pot resoldre HEAD"
-#: sequencer.c:3150 sequencer.c:3194
+#: sequencer.c:3146 sequencer.c:3190
msgid "cannot abort from a branch yet to be born"
msgstr "no es pot avortar des d'una branca que encara ha de nàixer"
-#: sequencer.c:3180 builtin/fetch.c:1004 builtin/fetch.c:1416
-#: builtin/grep.c:772
+#: sequencer.c:3176 builtin/fetch.c:1030 builtin/fetch.c:1457
+#: builtin/grep.c:774
#, c-format
msgid "cannot open '%s'"
msgstr "no es pot obrir «%s»"
-#: sequencer.c:3182
+#: sequencer.c:3178
#, c-format
msgid "cannot read '%s': %s"
msgstr "no es pot llegir «%s»: %s"
-#: sequencer.c:3183
+#: sequencer.c:3179
msgid "unexpected end of file"
msgstr "final de fitxer inesperat"
-#: sequencer.c:3189
+#: sequencer.c:3185
#, c-format
msgid "stored pre-cherry-pick HEAD file '%s' is corrupt"
msgstr "el fitxer HEAD emmagatzemat abans de fer «cherry pick» «%s» és malmès"
-#: sequencer.c:3200
+#: sequencer.c:3196
msgid "You seem to have moved HEAD. Not rewinding, check your HEAD!"
msgstr "Sembla que heu mogut HEAD sense rebobinar, comproveu-ho HEAD"
-#: sequencer.c:3241
+#: sequencer.c:3237
msgid "no revert in progress"
msgstr "no hi ha cap reversió en curs"
-#: sequencer.c:3250
+#: sequencer.c:3246
msgid "no cherry-pick in progress"
msgstr "ni hi ha cap «cherry pick» en curs"
-#: sequencer.c:3260
+#: sequencer.c:3256
msgid "failed to skip the commit"
msgstr "s'ha produït un error en ometre la comissió"
-#: sequencer.c:3267
+#: sequencer.c:3263
msgid "there is nothing to skip"
msgstr "no hi ha res a ometre"
-#: sequencer.c:3270
+#: sequencer.c:3266
#, c-format
msgid ""
"have you committed already?\n"
@@ -8351,16 +8559,16 @@ msgstr ""
"heu fet ja una comissió?\n"
"proveu «git %s --continue»"
-#: sequencer.c:3432 sequencer.c:4503
+#: sequencer.c:3428 sequencer.c:4476
msgid "cannot read HEAD"
msgstr "no es pot llegir HEAD"
-#: sequencer.c:3449
+#: sequencer.c:3445
#, c-format
msgid "unable to copy '%s' to '%s'"
msgstr "no s'ha pogut copiar «%s» a «%s»"
-#: sequencer.c:3457
+#: sequencer.c:3453
#, c-format
msgid ""
"You can amend the commit now, with\n"
@@ -8379,27 +8587,27 @@ msgstr ""
"\n"
" git rebase --continue\n"
-#: sequencer.c:3467
+#: sequencer.c:3463
#, c-format
msgid "Could not apply %s... %.*s"
msgstr "No s'ha pogut aplicar %s... %.*s"
-#: sequencer.c:3474
+#: sequencer.c:3470
#, c-format
msgid "Could not merge %.*s"
msgstr "No s'ha pogut fusionar %.*s"
-#: sequencer.c:3488 sequencer.c:3492 builtin/difftool.c:633
+#: sequencer.c:3484 sequencer.c:3488 builtin/difftool.c:633
#, c-format
msgid "could not copy '%s' to '%s'"
msgstr "no s'ha pogut copiar «%s» a «%s»"
-#: sequencer.c:3503
+#: sequencer.c:3499
#, c-format
msgid "Executing: %s\n"
msgstr "S'està executant: %s\n"
-#: sequencer.c:3514
+#: sequencer.c:3510
#, c-format
msgid ""
"execution failed: %s\n"
@@ -8414,11 +8622,11 @@ msgstr ""
" git rebase --continue\n"
"\n"
-#: sequencer.c:3520
+#: sequencer.c:3516
msgid "and made changes to the index and/or the working tree\n"
msgstr "i ha fet canvis a l'índex i/o l'arbre de treball\n"
-#: sequencer.c:3526
+#: sequencer.c:3522
#, c-format
msgid ""
"execution succeeded: %s\n"
@@ -8434,91 +8642,91 @@ msgstr ""
"\n"
" git rebase --continue\n"
-#: sequencer.c:3586
+#: sequencer.c:3582
#, c-format
msgid "illegal label name: '%.*s'"
msgstr "nom d'etiqueta no permès: «%.*s»"
-#: sequencer.c:3659
+#: sequencer.c:3655
msgid "writing fake root commit"
msgstr "s'està escrivint una comissió arrel falsa"
-#: sequencer.c:3664
+#: sequencer.c:3660
msgid "writing squash-onto"
msgstr "s'està escrivint «squash-onto»"
-#: sequencer.c:3743
+#: sequencer.c:3739
#, c-format
msgid "could not resolve '%s'"
msgstr "no s'ha pogut resoldre «%s»"
-#: sequencer.c:3775
+#: sequencer.c:3771
msgid "cannot merge without a current revision"
msgstr "no es pot fusionar sense una revisió actual"
-#: sequencer.c:3797
+#: sequencer.c:3793
#, c-format
msgid "unable to parse '%.*s'"
msgstr "no s'ha pogut analitzar «%.*s»"
-#: sequencer.c:3806
+#: sequencer.c:3802
#, c-format
msgid "nothing to merge: '%.*s'"
msgstr "no hi ha res per a fusionar «%.*s»"
-#: sequencer.c:3818
+#: sequencer.c:3814
msgid "octopus merge cannot be executed on top of a [new root]"
msgstr ""
"no es pot executar la fusió «octopus» a la part superior d'una [arrel nova]"
-#: sequencer.c:3873
+#: sequencer.c:3869
#, c-format
msgid "could not get commit message of '%s'"
msgstr "no s'ha pogut llegir el missatge de comissió de «%s»"
-#: sequencer.c:4019
+#: sequencer.c:4013
#, c-format
msgid "could not even attempt to merge '%.*s'"
msgstr "no s'ha pogut fusionar «%.*s»"
-#: sequencer.c:4035
+#: sequencer.c:4029
msgid "merge: Unable to write new index file"
msgstr "fusió: no s'ha pogut escriure un fitxer d'índex nou"
-#: sequencer.c:4116
+#: sequencer.c:4110
msgid "Cannot autostash"
msgstr "No es pot fer un «stash» automàticament"
-#: sequencer.c:4119
+#: sequencer.c:4113
#, c-format
msgid "Unexpected stash response: '%s'"
msgstr "Resposta de «stash» inesperada: «%s»"
-#: sequencer.c:4125
+#: sequencer.c:4119
#, c-format
msgid "Could not create directory for '%s'"
msgstr "No s'ha pogut crear el directori per a «%s»"
-#: sequencer.c:4128
+#: sequencer.c:4122
#, c-format
msgid "Created autostash: %s\n"
msgstr "S'ha creat un «stash» automàticament: %s\n"
-#: sequencer.c:4132
+#: sequencer.c:4124
msgid "could not reset --hard"
msgstr "no s'ha pogut fer reset --hard"
-#: sequencer.c:4157
+#: sequencer.c:4148
#, c-format
msgid "Applied autostash.\n"
msgstr "S'ha aplicat el «stash» automàticament.\n"
-#: sequencer.c:4169
+#: sequencer.c:4160
#, c-format
msgid "cannot store %s"
msgstr "no es pot emmagatzemar %s"
-#: sequencer.c:4172
+#: sequencer.c:4163
#, c-format
msgid ""
"%s\n"
@@ -8529,30 +8737,30 @@ msgstr ""
"Els vostres canvis estan segurs en el «stash».\n"
"Podeu executar «git stash pop» o «git stash drop» en qualsevol moment.\n"
-#: sequencer.c:4177
+#: sequencer.c:4168
msgid "Applying autostash resulted in conflicts."
msgstr "L'aplicació del «stash» automàticament ha donat conflictes."
-#: sequencer.c:4178
+#: sequencer.c:4169
msgid "Autostash exists; creating a new stash entry."
msgstr ""
"El «stash» automàtic ja existeix; s'està creant una entrada «stash» nova."
-#: sequencer.c:4252
+#: sequencer.c:4225
msgid "could not detach HEAD"
msgstr "no s'ha pogut separar HEAD"
-#: sequencer.c:4267
+#: sequencer.c:4240
#, c-format
msgid "Stopped at HEAD\n"
msgstr "Aturat a HEAD\n"
-#: sequencer.c:4269
+#: sequencer.c:4242
#, c-format
msgid "Stopped at %s\n"
msgstr "Aturat a %s\n"
-#: sequencer.c:4301
+#: sequencer.c:4274
#, c-format
msgid ""
"Could not execute the todo command\n"
@@ -8573,58 +8781,58 @@ msgstr ""
" git rebase --edit-todo\n"
" git rebase --continue\n"
-#: sequencer.c:4347
+#: sequencer.c:4320
#, c-format
msgid "Rebasing (%d/%d)%s"
msgstr "S'està fent «rebase» (%d/%d)%s"
-#: sequencer.c:4393
+#: sequencer.c:4366
#, c-format
msgid "Stopped at %s... %.*s\n"
msgstr "Aturat a %s... %.*s\n"
-#: sequencer.c:4463
+#: sequencer.c:4436
#, c-format
msgid "unknown command %d"
msgstr "ordre %d desconeguda"
-#: sequencer.c:4511
+#: sequencer.c:4484
msgid "could not read orig-head"
msgstr "no s'ha pogut llegir orig-head"
-#: sequencer.c:4516
+#: sequencer.c:4489
msgid "could not read 'onto'"
msgstr "no s'ha pogut llegir «onto»"
-#: sequencer.c:4530
+#: sequencer.c:4503
#, c-format
msgid "could not update HEAD to %s"
msgstr "no s'ha pogut actualitzar HEAD a %s"
-#: sequencer.c:4590
+#: sequencer.c:4563
#, c-format
msgid "Successfully rebased and updated %s.\n"
msgstr "S'ha fet «rebase» i actualitzat %s amb èxit.\n"
-#: sequencer.c:4642
+#: sequencer.c:4615
msgid "cannot rebase: You have unstaged changes."
msgstr "no es pot fer «rebase»: teniu canvis «unstaged»."
-#: sequencer.c:4651
+#: sequencer.c:4624
msgid "cannot amend non-existing commit"
msgstr "no es pot esmenar una comissió no existent"
-#: sequencer.c:4653
+#: sequencer.c:4626
#, c-format
msgid "invalid file: '%s'"
msgstr "fitxer no vàlid: «%s»"
-#: sequencer.c:4655
+#: sequencer.c:4628
#, c-format
msgid "invalid contents: '%s'"
msgstr "contingut no vàlid: «%s»"
-#: sequencer.c:4658
+#: sequencer.c:4631
msgid ""
"\n"
"You have uncommitted changes in your working tree. Please, commit them\n"
@@ -8634,59 +8842,59 @@ msgstr ""
"Teniu canvis no comesos en el vostre arbre de treball. \n"
"Cometeu-los primer i després executeu «git rebase --continue» de nou."
-#: sequencer.c:4694 sequencer.c:4733
+#: sequencer.c:4667 sequencer.c:4706
#, c-format
msgid "could not write file: '%s'"
msgstr "no s'ha pogut escriure el fitxer: «%s»"
-#: sequencer.c:4749
+#: sequencer.c:4722
msgid "could not remove CHERRY_PICK_HEAD"
msgstr "no s'ha pogut eliminar CHERRY_PICK_HEAD"
-#: sequencer.c:4759
+#: sequencer.c:4732
msgid "could not commit staged changes."
msgstr "no s'han pogut cometre els canvis «staged»."
-#: sequencer.c:4879
+#: sequencer.c:4852
#, c-format
msgid "%s: can't cherry-pick a %s"
msgstr "%s: no es pot fer «cherry pick» a %s"
-#: sequencer.c:4883
+#: sequencer.c:4856
#, c-format
msgid "%s: bad revision"
msgstr "%s: revisió incorrecta"
-#: sequencer.c:4918
+#: sequencer.c:4891
msgid "can't revert as initial commit"
msgstr "no es pot revertir com a comissió inicial"
-#: sequencer.c:5189 sequencer.c:5418
+#: sequencer.c:5162 sequencer.c:5391
#, c-format
msgid "skipped previously applied commit %s"
msgstr "omet les comissions aplicades anteriorment %s"
-#: sequencer.c:5259 sequencer.c:5434
+#: sequencer.c:5232 sequencer.c:5407
msgid "use --reapply-cherry-picks to include skipped commits"
msgstr "useu --reapply-cherry-picks per a incloure les comissions omeses"
-#: sequencer.c:5405
+#: sequencer.c:5378
msgid "make_script: unhandled options"
msgstr "make_script: opcions no gestionades"
-#: sequencer.c:5408
+#: sequencer.c:5381
msgid "make_script: error preparing revisions"
msgstr "make_script: s'ha produït un error en preparar les revisions"
-#: sequencer.c:5666 sequencer.c:5683
+#: sequencer.c:5639 sequencer.c:5656
msgid "nothing to do"
msgstr "res a fer"
-#: sequencer.c:5702
+#: sequencer.c:5675
msgid "could not skip unnecessary pick commands"
msgstr "no s'han pogut ometre les ordres «picks» no necessàries"
-#: sequencer.c:5802
+#: sequencer.c:5775
msgid "the script was already rearranged."
msgstr "l'script ja estava endreçat."
@@ -8741,93 +8949,93 @@ msgstr ""
msgid "this operation must be run in a work tree"
msgstr "aquesta operació s'ha d'executar en un arbre de treball"
-#: setup.c:722
+#: setup.c:723
#, c-format
msgid "Expected git repo version <= %d, found %d"
msgstr "S'esperava una versió de repositori de git <= %d, s'ha trobat %d"
-#: setup.c:730
+#: setup.c:731
msgid "unknown repository extension found:"
msgid_plural "unknown repository extensions found:"
msgstr[0] "s'ha trobat una extensió de repositori desconeguda:"
msgstr[1] "s'han trobat extensions de repositori desconegudes:"
-#: setup.c:744
+#: setup.c:745
msgid "repo version is 0, but v1-only extension found:"
msgid_plural "repo version is 0, but v1-only extensions found:"
msgstr[0] ""
"el repositori és versió 0, però només s'han trobat una extensió v1:"
msgstr[1] "el repositori és versió 0, però només s'han trobat extensions v1:"
-#: setup.c:765
+#: setup.c:766
#, c-format
msgid "error opening '%s'"
msgstr "s'ha produït un error en obrir «%s»"
-#: setup.c:767
+#: setup.c:768
#, c-format
msgid "too large to be a .git file: '%s'"
msgstr "massa gran per a ser un fitxer .git: «%s»"
-#: setup.c:769
+#: setup.c:770
#, c-format
msgid "error reading %s"
msgstr "error en llegir %s"
-#: setup.c:771
+#: setup.c:772
#, c-format
msgid "invalid gitfile format: %s"
msgstr "format gitfile no vàlid: %s"
-#: setup.c:773
+#: setup.c:774
#, c-format
msgid "no path in gitfile: %s"
msgstr "sense camí al gitfile: %s"
-#: setup.c:775
+#: setup.c:776
#, c-format
msgid "not a git repository: %s"
msgstr "no és un repositori de git: %s"
-#: setup.c:877
+#: setup.c:878
#, c-format
msgid "'$%s' too big"
msgstr "«$%s» massa gran"
-#: setup.c:891
+#: setup.c:892
#, c-format
msgid "not a git repository: '%s'"
msgstr "no és un repositori de git: «%s»"
-#: setup.c:920 setup.c:922 setup.c:953
+#: setup.c:921 setup.c:923 setup.c:954
#, c-format
msgid "cannot chdir to '%s'"
msgstr "no es pot canviar de directori a «%s»"
-#: setup.c:925 setup.c:981 setup.c:991 setup.c:1030 setup.c:1038
+#: setup.c:926 setup.c:982 setup.c:992 setup.c:1031 setup.c:1039
msgid "cannot come back to cwd"
msgstr "no es pot tornar al directori de treball actual"
-#: setup.c:1052
+#: setup.c:1053
#, c-format
msgid "failed to stat '%*s%s%s'"
msgstr "s'ha produït un error en fer stat a «%*s%s%s»"
-#: setup.c:1295
+#: setup.c:1296
msgid "Unable to read current working directory"
msgstr "No s'ha pogut llegir el directori de treball actual"
-#: setup.c:1304 setup.c:1310
+#: setup.c:1305 setup.c:1311
#, c-format
msgid "cannot change to '%s'"
msgstr "no es pot canviar a «%s»"
-#: setup.c:1315
+#: setup.c:1316
#, c-format
msgid "not a git repository (or any of the parent directories): %s"
msgstr "no és un repositori de git (ni cap dels directoris pares): %s"
-#: setup.c:1321
+#: setup.c:1322
#, c-format
msgid ""
"not a git repository (or any parent up to mount point %s)\n"
@@ -8836,7 +9044,7 @@ msgstr ""
"no és un repositori de git (ni cap pare fins al punt de muntatge %s)\n"
"S'atura a la frontera de sistema de fitxers (GIT_DISCOVERY_ACROSS_FILESYSTEM no està establert)."
-#: setup.c:1446
+#: setup.c:1447
#, c-format
msgid ""
"problem with core.sharedRepository filemode value (0%.3o).\n"
@@ -8845,57 +9053,62 @@ msgstr ""
"hi ha un problema amb el valor de mode de fitxer core.sharedRepository (0%.3o).\n"
"El propietari dels fitxers sempre ha de tenir permisos de lectura i escriptura."
-#: setup.c:1508
+#: setup.c:1509
msgid "fork failed"
msgstr "el «fork» ha fallat"
-#: setup.c:1513
+#: setup.c:1514
msgid "setsid failed"
msgstr "«setsid» ha fallat"
-#: sparse-index.c:289
+#: sparse-index.c:285
#, c-format
msgid "index entry is a directory, but not sparse (%08x)"
msgstr "l'entrada d'índex és un directori, però no dispers (%08x)"
+#: split-index.c:9
+#, fuzzy
+msgid "cannot use split index with a sparse index"
+msgstr "no es pot utilitzar l'índex de divisió amb un índex dispers"
+
#. TRANSLATORS: IEC 80000-13:2008 gibibyte
-#: strbuf.c:850
+#: strbuf.c:851
#, c-format
msgid "%u.%2.2u GiB"
msgstr "%u.%2.2u GiB"
#. TRANSLATORS: IEC 80000-13:2008 gibibyte/second
-#: strbuf.c:852
+#: strbuf.c:853
#, c-format
msgid "%u.%2.2u GiB/s"
msgstr "%u.%2.2u GiB/s"
#. TRANSLATORS: IEC 80000-13:2008 mebibyte
-#: strbuf.c:860
+#: strbuf.c:861
#, c-format
msgid "%u.%2.2u MiB"
msgstr "%u.%2.2u MiB"
#. TRANSLATORS: IEC 80000-13:2008 mebibyte/second
-#: strbuf.c:862
+#: strbuf.c:863
#, c-format
msgid "%u.%2.2u MiB/s"
msgstr "%u.%2.2u MiB/s"
#. TRANSLATORS: IEC 80000-13:2008 kibibyte
-#: strbuf.c:869
+#: strbuf.c:870
#, c-format
msgid "%u.%2.2u KiB"
msgstr "%u.%2.2u KiB"
#. TRANSLATORS: IEC 80000-13:2008 kibibyte/second
-#: strbuf.c:871
+#: strbuf.c:872
#, c-format
msgid "%u.%2.2u KiB/s"
msgstr "%u.%2.2u KiB/s"
#. TRANSLATORS: IEC 80000-13:2008 byte
-#: strbuf.c:877
+#: strbuf.c:878
#, c-format
msgid "%u byte"
msgid_plural "%u bytes"
@@ -8903,86 +9116,86 @@ msgstr[0] "%u byte"
msgstr[1] "%u bytes"
#. TRANSLATORS: IEC 80000-13:2008 byte/second
-#: strbuf.c:879
+#: strbuf.c:880
#, c-format
msgid "%u byte/s"
msgid_plural "%u bytes/s"
msgstr[0] "%u byte/s"
msgstr[1] "%u bytes/s"
-#: strbuf.c:1186 wrapper.c:207 wrapper.c:377 builtin/am.c:765
-#: builtin/rebase.c:650
+#: strbuf.c:1187 wrapper.c:217 wrapper.c:387 builtin/am.c:766
+#: builtin/rebase.c:653
#, c-format
msgid "could not open '%s' for writing"
msgstr "no s'ha pogut obrir «%s» per a escriptura"
-#: strbuf.c:1195
+#: strbuf.c:1196
#, c-format
msgid "could not edit '%s'"
msgstr "no s'ha pogut editar «%s»"
-#: submodule-config.c:237
+#: submodule-config.c:238
#, c-format
msgid "ignoring suspicious submodule name: %s"
msgstr "s'està ignorant el nom de submòdul sospitós %s"
-#: submodule-config.c:304
+#: submodule-config.c:305
msgid "negative values not allowed for submodule.fetchjobs"
msgstr "no es permeten els valors negatius a submodule.fetchjobs"
-#: submodule-config.c:402
+#: submodule-config.c:403
#, c-format
msgid "ignoring '%s' which may be interpreted as a command-line option: %s"
msgstr ""
"s'està ignorant «%s» que pot interpretar-se com a una opció de línia "
"d'ordres: %s"
-#: submodule-config.c:499
+#: submodule-config.c:500 builtin/push.c:489 builtin/send-pack.c:148
#, c-format
-msgid "invalid value for %s"
-msgstr "valor no vàlid per a %s"
+msgid "invalid value for '%s'"
+msgstr "valor no vàlid per a «%s»"
-#: submodule-config.c:767
+#: submodule-config.c:828
#, c-format
msgid "Could not update .gitmodules entry %s"
msgstr "No s'ha pogut actualitzar l'entrada de .gitmodules %s"
-#: submodule.c:114 submodule.c:143
+#: submodule.c:115 submodule.c:144
msgid "Cannot change unmerged .gitmodules, resolve merge conflicts first"
msgstr ""
"No es pot canviar un .gitmodules no fusionat, primer resoleu els conflictes "
"de fusió"
-#: submodule.c:118 submodule.c:147
+#: submodule.c:119 submodule.c:148
#, c-format
msgid "Could not find section in .gitmodules where path=%s"
msgstr "No s'ha pogut trobar la secció en .gitmodules on path=%s"
-#: submodule.c:154
+#: submodule.c:155
#, c-format
msgid "Could not remove .gitmodules entry for %s"
msgstr "No s'ha pogut eliminar l'entrada de .gitmodules per a %s"
-#: submodule.c:165
+#: submodule.c:166
msgid "staging updated .gitmodules failed"
msgstr "l'allistament del .gitmodules actualitzat ha fallat"
-#: submodule.c:358
+#: submodule.c:346
#, c-format
msgid "in unpopulated submodule '%s'"
msgstr "al submòdul sense popular «%s»"
-#: submodule.c:389
+#: submodule.c:377
#, c-format
msgid "Pathspec '%s' is in submodule '%.*s'"
msgstr "L'especificació «%s» és en el submòdul «%.*s»"
-#: submodule.c:466
+#: submodule.c:454
#, c-format
msgid "bad --ignore-submodules argument: %s"
msgstr "argument incorrecte --ignore-submodules: %s"
-#: submodule.c:844
+#: submodule.c:866
#, c-format
msgid ""
"Submodule in commit %s at path: '%s' collides with a submodule named the "
@@ -8991,12 +9204,12 @@ msgstr ""
"El submòdul en la comissió %s al camí: «%s» col·lideix amb un submòdul amb "
"el mateix nom. Ometent-lo."
-#: submodule.c:954
+#: submodule.c:987
#, c-format
msgid "submodule entry '%s' (%s) is a %s, not a commit"
msgstr "l'entrada del submòdul «%s» (%s) és a %s, no és una comissió"
-#: submodule.c:1042
+#: submodule.c:1069
#, c-format
msgid ""
"Could not run 'git rev-list <commits> --not --remotes -n 1' command in "
@@ -9005,36 +9218,48 @@ msgstr ""
"No s'ha pogut executar l'ordre «git rev-list <commits> --not --remotes -n 1»"
" en el submòdul %s"
-#: submodule.c:1165
+#: submodule.c:1192
#, c-format
msgid "process for submodule '%s' failed"
msgstr "ha fallat el procés per al submòdul «%s»"
-#: submodule.c:1194 builtin/branch.c:699 builtin/submodule--helper.c:2714
+#: submodule.c:1221 builtin/branch.c:714 builtin/submodule--helper.c:2827
msgid "Failed to resolve HEAD as a valid ref."
msgstr "S'ha produït un error en resoldre HEAD com a referència vàlida."
-#: submodule.c:1205
+#: submodule.c:1232
#, c-format
msgid "Pushing submodule '%s'\n"
msgstr "S'està pujant el submòdul «%s»\n"
-#: submodule.c:1208
+#: submodule.c:1235
#, c-format
msgid "Unable to push submodule '%s'\n"
msgstr "No s'ha pogut pujar el submòdul «%s»\n"
-#: submodule.c:1491
+#: submodule.c:1567
#, c-format
msgid "Fetching submodule %s%s\n"
msgstr "S'està obtenint el submòdul %s%s\n"
-#: submodule.c:1525
+#: submodule.c:1589
#, c-format
msgid "Could not access submodule '%s'\n"
msgstr "No s'ha pogut accedir al submòdul «%s»\n"
-#: submodule.c:1680
+#: submodule.c:1618
+#, c-format, fuzzy
+msgid "Could not access submodule '%s' at commit %s\n"
+msgstr "No s'ha pogut accedir al submòdul «%s» en els percentatges"
+
+#: submodule.c:1629
+#, c-format, fuzzy
+msgid "Fetching submodule %s%s at commit %s\n"
+msgstr ""
+"S'estan recollint els submòduls un percentatge de percentatges a les "
+"comissions"
+
+#: submodule.c:1849
#, c-format
msgid ""
"Errors during submodule fetch:\n"
@@ -9043,63 +9268,63 @@ msgstr ""
"Errors durant l'obtenció de submòduls:\n"
"%s"
-#: submodule.c:1705
+#: submodule.c:1874
#, c-format
msgid "'%s' not recognized as a git repository"
msgstr "«%s» no reconegut com un repositori git"
-#: submodule.c:1722
+#: submodule.c:1891
#, c-format
msgid "Could not run 'git status --porcelain=2' in submodule %s"
msgstr "No s'ha pogut executar «git status --porcelain=2» en el submòdul %s"
-#: submodule.c:1763
+#: submodule.c:1932
#, c-format
msgid "'git status --porcelain=2' failed in submodule %s"
msgstr "«git status --porcelain=2» ha fallat en el submòdul %s"
-#: submodule.c:1838
+#: submodule.c:2007
#, c-format
msgid "could not start 'git status' in submodule '%s'"
msgstr "no s'ha pogut iniciar «git status» al submòdul «%s»"
-#: submodule.c:1851
+#: submodule.c:2020
#, c-format
msgid "could not run 'git status' in submodule '%s'"
msgstr "no s'ha pogut executar «git status» al submòdul «%s»"
-#: submodule.c:1868
+#: submodule.c:2037
#, c-format
msgid "Could not unset core.worktree setting in submodule '%s'"
msgstr ""
"No s'ha pogut desassignar el paràmetre «core.worktree» al submòdul «%s»"
-#: submodule.c:1895 submodule.c:2210
+#: submodule.c:2064 submodule.c:2379
#, c-format
msgid "could not recurse into submodule '%s'"
msgstr ""
"s'ha produït un error en cercar recursivament al camí del submòdul «%s»"
-#: submodule.c:1917
+#: submodule.c:2086
msgid "could not reset submodule index"
msgstr "no s'ha pogut restablir l'índex del submòdul"
-#: submodule.c:1959
+#: submodule.c:2128
#, c-format
msgid "submodule '%s' has dirty index"
msgstr "el submòdul «%s» té l'índex brut"
-#: submodule.c:2013
+#: submodule.c:2182
#, c-format
msgid "Submodule '%s' could not be updated."
msgstr "No s'ha pogut actualitzar el submòdul «%s»."
-#: submodule.c:2081
+#: submodule.c:2250
#, c-format
msgid "submodule git dir '%s' is inside git dir '%.*s'"
msgstr "submodule git dir «%s» està dins git dir «%.*s»"
-#: submodule.c:2102
+#: submodule.c:2271
#, c-format
msgid ""
"relocate_gitdir for submodule '%s' with more than one worktree not supported"
@@ -9107,17 +9332,17 @@ msgstr ""
"no està admès relocate_gitdir per al submòdul «%s» amb més d'un arbre de "
"treball"
-#: submodule.c:2114 submodule.c:2174
+#: submodule.c:2283 submodule.c:2343
#, c-format
msgid "could not lookup name for submodule '%s'"
msgstr "no s'ha trobat el nom pel submòdul «%s»"
-#: submodule.c:2118
+#: submodule.c:2287
#, c-format
msgid "refusing to move '%s' into an existing git dir"
msgstr "s'ha refusat moure «%s» a un directori git existent"
-#: submodule.c:2124
+#: submodule.c:2293
#, c-format
msgid ""
"Migrating git directory of '%s%s' from\n"
@@ -9128,11 +9353,11 @@ msgstr ""
"«%s» a\n"
"«%s»\n"
-#: submodule.c:2255
+#: submodule.c:2424
msgid "could not start ls-files in .."
msgstr "no s'ha pogut iniciar ls-files a .."
-#: submodule.c:2295
+#: submodule.c:2464
#, c-format
msgid "ls-tree returned unexpected return code %d"
msgstr "ls-tree ha retornat un codi de retorn %d no esperat"
@@ -9153,8 +9378,8 @@ msgstr "l'execució de l'ordre «trailer» «%s» ha fallat"
msgid "unknown value '%s' for key '%s'"
msgstr "valor desconegut «%s» per a la clau «%s»"
-#: trailer.c:547 trailer.c:552 trailer.c:557 builtin/remote.c:299
-#: builtin/remote.c:327
+#: trailer.c:547 trailer.c:552 trailer.c:557 builtin/remote.c:300
+#: builtin/remote.c:328
#, c-format
msgid "more than one %s"
msgstr "més d'un %s"
@@ -9169,11 +9394,11 @@ msgstr "testimoni de «trailer» buit en el «trailer» «%.*s»"
msgid "could not read input file '%s'"
msgstr "no s'ha pogut llegir el fitxer d'entrada «%s»"
-#: trailer.c:766 builtin/mktag.c:89 imap-send.c:1573
+#: trailer.c:766 builtin/mktag.c:88 imap-send.c:1563
msgid "could not read from stdin"
msgstr "no s'ha pogut llegir des de stdin"
-#: trailer.c:1024 wrapper.c:684
+#: trailer.c:1024 wrapper.c:760
#, c-format
msgid "could not stat %s"
msgstr "no s'ha pogut fer stat a %s"
@@ -9241,7 +9466,7 @@ msgstr "no s'ha pogut executar «fast-import»"
msgid "error while running fast-import"
msgstr "error en executar la importació ràpida"
-#: transport-helper.c:549 transport-helper.c:1251
+#: transport-helper.c:549 transport-helper.c:1254
#, c-format
msgid "could not read ref %s"
msgstr "no s'ha pogut llegir la referència %s"
@@ -9259,7 +9484,7 @@ msgstr "el protocol no permet establir el camí del servei remot"
msgid "invalid remote service path"
msgstr "el camí del servei remot no és vàlid"
-#: transport-helper.c:661 transport.c:1479
+#: transport-helper.c:661 transport.c:1496
msgid "operation not supported by protocol"
msgstr "opció no admesa pel protocol"
@@ -9268,73 +9493,73 @@ msgstr "opció no admesa pel protocol"
msgid "can't connect to subservice %s"
msgstr "no es pot connectar al subservei %s"
-#: transport-helper.c:693 transport.c:404
+#: transport-helper.c:693 transport.c:415
msgid "--negotiate-only requires protocol v2"
msgstr "--negotiate-only requereix el protocol v2"
-#: transport-helper.c:755
+#: transport-helper.c:758
msgid "'option' without a matching 'ok/error' directive"
msgstr "«option» sense una directiva «ok/error» coincident"
-#: transport-helper.c:798
+#: transport-helper.c:801
#, c-format
msgid "expected ok/error, helper said '%s'"
msgstr "s'esperava error/OK, l'ajudant ha dit «%s»"
-#: transport-helper.c:859
+#: transport-helper.c:862
#, c-format
msgid "helper reported unexpected status of %s"
msgstr "l'ajudant ha informat d'un estat inesperat de %s"
-#: transport-helper.c:942
+#: transport-helper.c:945
#, c-format
msgid "helper %s does not support dry-run"
msgstr "l'ajudant %s no admet dry-run"
-#: transport-helper.c:945
+#: transport-helper.c:948
#, c-format
msgid "helper %s does not support --signed"
msgstr "l'ajudant %s no admet --signed"
-#: transport-helper.c:948
+#: transport-helper.c:951
#, c-format
msgid "helper %s does not support --signed=if-asked"
msgstr "l'ajudant %s no admet --signed=if-asked"
-#: transport-helper.c:953
+#: transport-helper.c:956
#, c-format
msgid "helper %s does not support --atomic"
msgstr "l'ajudant %s no admet --atomic"
-#: transport-helper.c:957
+#: transport-helper.c:960
#, c-format
msgid "helper %s does not support --%s"
msgstr "l'ajudant %s no admet --%s"
-#: transport-helper.c:964
+#: transport-helper.c:967
#, c-format
msgid "helper %s does not support 'push-option'"
msgstr "l'ajudant %s no admet «push-option»"
-#: transport-helper.c:1064
+#: transport-helper.c:1067
msgid "remote-helper doesn't support push; refspec needed"
msgstr ""
"remot-helper no permet pujar; es necessiten especificacions de referència"
-#: transport-helper.c:1069
+#: transport-helper.c:1072
#, c-format
msgid "helper %s does not support 'force'"
msgstr "l'ajudant %s no admet «force»"
-#: transport-helper.c:1116
+#: transport-helper.c:1119
msgid "couldn't run fast-export"
msgstr "no s'ha pogut executar l'exportació ràpida"
-#: transport-helper.c:1121
+#: transport-helper.c:1124
msgid "error while running fast-export"
msgstr "error en executar l'exportació ràpida"
-#: transport-helper.c:1146
+#: transport-helper.c:1149
#, c-format
msgid ""
"No refs in common and none specified; doing nothing.\n"
@@ -9343,52 +9568,52 @@ msgstr ""
"No hi ha referències en comú i no n'hi ha cap d'especificada.\n"
"No es farà res. Potser hauríeu d'especificar una branca.\n"
-#: transport-helper.c:1228
+#: transport-helper.c:1231
#, c-format
msgid "unsupported object format '%s'"
msgstr "format d'objecte no suportat «%s»"
-#: transport-helper.c:1237
+#: transport-helper.c:1240
#, c-format
msgid "malformed response in ref list: %s"
msgstr "resposta mal formada al llistat de referències: %s"
-#: transport-helper.c:1389
+#: transport-helper.c:1392
#, c-format
msgid "read(%s) failed"
msgstr "ha fallat la lectura(%s)"
-#: transport-helper.c:1416
+#: transport-helper.c:1419
#, c-format
msgid "write(%s) failed"
msgstr "ha fallat l'escriptura(%s)"
-#: transport-helper.c:1465
+#: transport-helper.c:1468
#, c-format
msgid "%s thread failed"
msgstr "%s ha fallat el fil"
-#: transport-helper.c:1469
+#: transport-helper.c:1472
#, c-format
msgid "%s thread failed to join: %s"
msgstr "el fil %s no s'ha pogut unir: %s"
-#: transport-helper.c:1488 transport-helper.c:1492
+#: transport-helper.c:1491 transport-helper.c:1495
#, c-format
msgid "can't start thread for copying data: %s"
msgstr "no es pot iniciar el fil per a copiar les dades: %s"
-#: transport-helper.c:1529
+#: transport-helper.c:1532
#, c-format
msgid "%s process failed to wait"
msgstr "el procés %s no ha pogut esperar"
-#: transport-helper.c:1533
+#: transport-helper.c:1536
#, c-format
msgid "%s process failed"
msgstr "el procés %s ha fallat"
-#: transport-helper.c:1551 transport-helper.c:1560
+#: transport-helper.c:1554 transport-helper.c:1563
msgid "can't start thread for copying data"
msgstr "no es pot iniciar el fil per a copiar dades"
@@ -9397,52 +9622,52 @@ msgstr "no es pot iniciar el fil per a copiar dades"
msgid "Would set upstream of '%s' to '%s' of '%s'\n"
msgstr "Canviaria la font de «%s» a «%s» de «%s»\n"
-#: transport.c:145
+#: transport.c:138
#, c-format
msgid "could not read bundle '%s'"
-msgstr "no s'ha pogut llegir el paquet «%s»"
+msgstr "no s'ha pogut llegir el farcell «%s»"
-#: transport.c:227
+#: transport.c:234
#, c-format
msgid "transport: invalid depth option '%s'"
msgstr "transport: opció de profunditat no vàlida «%s»"
-#: transport.c:279
+#: transport.c:289
msgid "see protocol.version in 'git help config' for more details"
msgstr "vegeu «protocol.version» a «git help config» per a més detalls"
-#: transport.c:280
+#: transport.c:290
msgid "server options require protocol version 2 or later"
msgstr "les opcions del servidor requereixen el protocol versió 2 o posterior"
-#: transport.c:407
+#: transport.c:418
msgid "server does not support wait-for-done"
msgstr "el servidor no admet «wait-for-done»"
-#: transport.c:759
+#: transport.c:770
msgid "could not parse transport.color.* config"
msgstr "no s'ha pogut analitzar la configuració de transport.color.*"
-#: transport.c:834
+#: transport.c:845
msgid "support for protocol v2 not implemented yet"
msgstr ""
"encara no s'ha implementat la compatibilitat amb la versió v2 del protocol"
-#: transport.c:967
+#: transport.c:978
#, c-format
msgid "unknown value for config '%s': %s"
msgstr "valor desconegut per al config «%s»': %s"
-#: transport.c:1033
+#: transport.c:1044
#, c-format
msgid "transport '%s' not allowed"
msgstr "no es permet el transport «%s»"
-#: transport.c:1082
+#: transport.c:1093
msgid "git-over-rsync is no longer supported"
msgstr "git-over-rsync ja no s'admet"
-#: transport.c:1185
+#: transport.c:1196
#, c-format
msgid ""
"The following submodule paths contain changes that can\n"
@@ -9451,7 +9676,7 @@ msgstr ""
"Els camins de submòdul següents contenen canvis que no\n"
"es poden trobar en cap remot:\n"
-#: transport.c:1189
+#: transport.c:1200
#, c-format
msgid ""
"\n"
@@ -9471,17 +9696,17 @@ msgstr ""
"\n"
"\tgit push --recurse-submodules=on-demand\n"
"\n"
-"o canviar de directori al camí i useu\n"
+"o feu cd al camí i useu\n"
"\n"
"\tgit push\n"
"\n"
"per a pujar-los a un remot.\n"
-#: transport.c:1197
+#: transport.c:1208
msgid "Aborting."
msgstr "S'està avortant."
-#: transport.c:1343
+#: transport.c:1354
msgid "failed to push all needed submodules"
msgstr "no s'han pogut pujar tots els submòduls necessaris"
@@ -9569,7 +9794,8 @@ msgstr ""
msgid ""
"Refusing to remove the current working directory:\n"
"%s"
-msgstr "S'ha rebutjat suprimir el directori de treball actual:\n"
+msgstr ""
+"S'ha rebutjat suprimir el directori de treball actual:\n"
"%s"
#: unpack-trees.c:142
@@ -9733,7 +9959,7 @@ msgid ""
"reapply`.\n"
msgstr ""
"Després de corregir els camins anteriors és possible que vulgueu executar "
-"`git sparse-checkout reapply`.\n"
+"«git sparse-checkout reapply».\n"
#: unpack-trees.c:358
msgid "Updating files"
@@ -9750,17 +9976,17 @@ msgstr ""
"minúscules). Només un camí del mateix grup de col·lisió es troba a l'arbre\n"
"de treball:\n"
-#: unpack-trees.c:1636
+#: unpack-trees.c:1664
msgid "Updating index flags"
msgstr "Actualitzant els indicadors d'índex"
-#: unpack-trees.c:2803
+#: unpack-trees.c:2925
#, c-format
msgid "worktree and untracked commit have duplicate entries: %s"
msgstr ""
"l'arbre de treball i la comissió no seguida tenen entrades duplicades: %s"
-#: upload-pack.c:1565
+#: upload-pack.c:1579
msgid "expected flush after fetch arguments"
msgstr "s'esperava una neteja després dels arguments del «fetch»"
@@ -9797,126 +10023,140 @@ msgstr "segment de camí «..» no vàlid"
msgid "Fetching objects"
msgstr "S'estan obtenint objectes"
-#: worktree.c:238 builtin/am.c:2209 builtin/bisect--helper.c:156
+#: worktree.c:237 builtin/am.c:2210 builtin/bisect--helper.c:156
#, c-format
msgid "failed to read '%s'"
msgstr "s'ha produït un error en llegir «%s»"
-#: worktree.c:305
+#: worktree.c:304
#, c-format
msgid "'%s' at main working tree is not the repository directory"
msgstr "«%s» a l'arbre de treball principal no és al directori del repositori"
-#: worktree.c:316
+#: worktree.c:315
#, c-format
msgid "'%s' file does not contain absolute path to the working tree location"
msgstr ""
"El fitxer «%s» no conté el camí absolut a la ubicació de l'arbre de treball"
-#: worktree.c:328
+#: worktree.c:327
#, c-format
msgid "'%s' does not exist"
msgstr "«%s» no existeix"
-#: worktree.c:334
+#: worktree.c:333
#, c-format
msgid "'%s' is not a .git file, error code %d"
msgstr "«%s» no és un fitxer .git, codi d'error %d"
-#: worktree.c:343
+#: worktree.c:342
#, c-format
msgid "'%s' does not point back to '%s'"
msgstr "«%s» no assenyala de tornada a «%s»"
-#: worktree.c:604
+#: worktree.c:600
msgid "not a directory"
msgstr "no és en un directori"
-#: worktree.c:613
+#: worktree.c:609
msgid ".git is not a file"
msgstr ".git no és un fitxer"
-#: worktree.c:615
+#: worktree.c:611
msgid ".git file broken"
msgstr "fitxer .git malmès"
-#: worktree.c:617
+#: worktree.c:613
msgid ".git file incorrect"
msgstr "fitxer .git malmès"
-#: worktree.c:723
+#: worktree.c:719
msgid "not a valid path"
msgstr "no és un camí vàlid"
-#: worktree.c:729
+#: worktree.c:725
msgid "unable to locate repository; .git is not a file"
msgstr "no s'ha pogut trobar el repositori; .git no és un fitxer"
-#: worktree.c:733
+#: worktree.c:729
msgid "unable to locate repository; .git file does not reference a repository"
msgstr ""
"no s'ha pogut trobar el repositori; el fitxer .git no fa referència a un "
"repositori"
-#: worktree.c:737
+#: worktree.c:733
msgid "unable to locate repository; .git file broken"
msgstr "no s'ha pogut trobar el repositori; el fitxer .git està malmès"
-#: worktree.c:743
+#: worktree.c:739
msgid "gitdir unreadable"
msgstr "gitdir illegible"
-#: worktree.c:747
+#: worktree.c:743
msgid "gitdir incorrect"
msgstr "gitdir incorrecte"
-#: worktree.c:772
+#: worktree.c:768
msgid "not a valid directory"
msgstr "no és en un directori vàlid"
-#: worktree.c:778
+#: worktree.c:774
msgid "gitdir file does not exist"
msgstr "el fitxer gitdir no existeix"
-#: worktree.c:783 worktree.c:792
+#: worktree.c:779 worktree.c:788
#, c-format
msgid "unable to read gitdir file (%s)"
msgstr "no s'ha pogut llegir el fitxer gitdir (%s)"
-#: worktree.c:802
+#: worktree.c:798
#, c-format
msgid "short read (expected %<PRIuMAX> bytes, read %<PRIuMAX>)"
msgstr "lectura curta (s'esperaven %<PRIuMAX> bytes, llegits %<PRIuMAX>)"
-#: worktree.c:810
+#: worktree.c:806
msgid "invalid gitdir file"
msgstr "fitxer gitdir no vàlid"
-#: worktree.c:818
+#: worktree.c:814
msgid "gitdir file points to non-existent location"
msgstr "el fitxer gitdir indica una ubicació no existent"
-#: wrapper.c:151
+#: worktree.c:830
+#, c-format, fuzzy
+msgid "unable to set %s in '%s'"
+msgstr "no s'han pogut establir els percentatges en «%s»"
+
+#: worktree.c:832
+#, c-format, fuzzy
+msgid "unable to unset %s in '%s'"
+msgstr "no s'han pogut establir els percentatges en '%s'"
+
+#: worktree.c:852
+msgid "failed to set extensions.worktreeConfig setting"
+msgstr "no s'ha pogut establir el paràmetre extensions.worktreeConfig"
+
+#: wrapper.c:161
#, c-format
msgid "could not setenv '%s'"
msgstr "no s'ha pogut fer setenv «%s»"
-#: wrapper.c:203
+#: wrapper.c:213
#, c-format
msgid "unable to create '%s'"
msgstr "no s'ha pogut crear «%s»"
-#: wrapper.c:205 wrapper.c:375
+#: wrapper.c:215 wrapper.c:385
#, c-format
msgid "could not open '%s' for reading and writing"
msgstr "no s'ha pogut obrir «%s» per a lectura i escriptura"
-#: wrapper.c:406 wrapper.c:607
+#: wrapper.c:416 wrapper.c:683
#, c-format
msgid "unable to access '%s'"
msgstr "no s'ha pogut accedir a «%s»"
-#: wrapper.c:615
+#: wrapper.c:691
msgid "unable to get current working directory"
msgstr "no s'ha pogut obtenir el directori de treball actual"
@@ -9952,11 +10192,11 @@ msgstr ""
msgid " (use \"git rm <file>...\" to mark resolution)"
msgstr " (useu «git rm <fitxer>...» per a senyalar resolució)"
-#: wt-status.c:211 wt-status.c:1131
+#: wt-status.c:211 wt-status.c:1140
msgid "Changes to be committed:"
msgstr "Canvis a cometre:"
-#: wt-status.c:234 wt-status.c:1140
+#: wt-status.c:234 wt-status.c:1149
msgid "Changes not staged for commit:"
msgstr "Canvis no «staged» per a cometre:"
@@ -9982,7 +10222,7 @@ msgstr ""
#: wt-status.c:254
#, c-format
msgid " (use \"git %s <file>...\" to include in what will be committed)"
-msgstr " (useu «git %s <fitxer>...» per a incloure-ho en la comissió)"
+msgstr " (useu «git %s <fitxer>...» per a incloure'ls en la comissió)"
#: wt-status.c:266
msgid "both deleted:"
@@ -10056,22 +10296,22 @@ msgstr "contingut modificat, "
msgid "untracked content, "
msgstr "contingut no seguit, "
-#: wt-status.c:964
+#: wt-status.c:973
#, c-format
msgid "Your stash currently has %d entry"
msgid_plural "Your stash currently has %d entries"
msgstr[0] "L'«stash» té actualment %d entrada"
msgstr[1] "L'«stash» té actualment %d entrades"
-#: wt-status.c:995
+#: wt-status.c:1004
msgid "Submodules changed but not updated:"
msgstr "Submòduls canviats però no actualitzats:"
-#: wt-status.c:997
+#: wt-status.c:1006
msgid "Submodule changes to be committed:"
msgstr "Canvis de submòdul a cometre:"
-#: wt-status.c:1079
+#: wt-status.c:1088
msgid ""
"Do not modify or remove the line above.\n"
"Everything below it will be ignored."
@@ -10079,7 +10319,7 @@ msgstr ""
"No modifiqueu ni elimineu la línia de dalt.\n"
"Tot el que hi ha a sota s'ignorarà."
-#: wt-status.c:1171
+#: wt-status.c:1180
#, c-format
msgid ""
"\n"
@@ -10090,113 +10330,115 @@ msgstr ""
"S'ha trigat un %.2f segons a calcular els valors de la branca d'endavant i darrere.\n"
"Podeu utilitzar «--no-ahead-behind» per a evitar-ho.\n"
-#: wt-status.c:1201
+#: wt-status.c:1210
msgid "You have unmerged paths."
msgstr "Teniu camins sense fusionar."
-#: wt-status.c:1204
+#: wt-status.c:1213
msgid " (fix conflicts and run \"git commit\")"
msgstr " (arregleu els conflictes i executeu «git commit»)"
-#: wt-status.c:1206
+#: wt-status.c:1215
msgid " (use \"git merge --abort\" to abort the merge)"
msgstr " (useu «git merge --abort» per a avortar la fusió)"
-#: wt-status.c:1210
+#: wt-status.c:1219
msgid "All conflicts fixed but you are still merging."
msgstr "Tots els conflictes estan arreglats però encara esteu fusionant."
-#: wt-status.c:1213
+#: wt-status.c:1222
msgid " (use \"git commit\" to conclude merge)"
msgstr " (useu «git commit» per a concloure la fusió)"
-#: wt-status.c:1224
+#: wt-status.c:1233
msgid "You are in the middle of an am session."
msgstr "Esteu enmig d'una sessió am."
-#: wt-status.c:1227
+#: wt-status.c:1236
msgid "The current patch is empty."
msgstr "El pedaç actual està buit."
-#: wt-status.c:1232
+#: wt-status.c:1241
msgid " (fix conflicts and then run \"git am --continue\")"
msgstr " (arregleu els conflictes i després executeu «git am --continue»)"
-#: wt-status.c:1234
+#: wt-status.c:1243
msgid " (use \"git am --skip\" to skip this patch)"
msgstr " (useu «git am --skip» per a ometre aquest pedaç)"
-#: wt-status.c:1237
+#: wt-status.c:1246
msgid " (use \"git am --allow-empty\" to record this patch as an empty commit)"
-msgstr " (useu «git am --allow-empty» per a enregistrar aquest pedaç com una comissió buida)"
+msgstr ""
+" (useu «git am --allow-empty» per a enregistrar aquest pedaç com una "
+"comissió buida)"
-#: wt-status.c:1239
+#: wt-status.c:1248
msgid " (use \"git am --abort\" to restore the original branch)"
msgstr " (useu «git am --abort» per a restaurar la branca original)"
-#: wt-status.c:1372
+#: wt-status.c:1381
msgid "git-rebase-todo is missing."
msgstr "Manca git-rebase-todo."
-#: wt-status.c:1374
+#: wt-status.c:1383
msgid "No commands done."
msgstr "No s'ha fet cap ordre."
-#: wt-status.c:1377
-#, c-format
-msgid "Last command done (%d command done):"
-msgid_plural "Last commands done (%d commands done):"
-msgstr[0] "Última ordre feta (%d ordre feta):"
-msgstr[1] "Últimes ordres fetes (%d ordres fetes):"
+#: wt-status.c:1386
+#, c-format, fuzzy
+msgid "Last command done (%<PRIuMAX> command done):"
+msgid_plural "Last commands done (%<PRIuMAX> commands done):"
+msgstr[0] "Darrera ordre feta (%<PRIuMAX> ordre feta):"
+msgstr[1] "Darrer ordre feta (%<PRIuMAX> ordres fetes):"
-#: wt-status.c:1388
+#: wt-status.c:1397
#, c-format
msgid " (see more in file %s)"
msgstr " (vegeu més en el fitxer %s)"
-#: wt-status.c:1393
+#: wt-status.c:1402
msgid "No commands remaining."
msgstr "No manca cap ordre."
-#: wt-status.c:1396
-#, c-format
-msgid "Next command to do (%d remaining command):"
-msgid_plural "Next commands to do (%d remaining commands):"
-msgstr[0] "Ordre següent a fer (manca %d ordre):"
-msgstr[1] "Ordres següents a fer (manquen %d ordres):"
+#: wt-status.c:1405
+#, c-format, fuzzy
+msgid "Next command to do (%<PRIuMAX> remaining command):"
+msgid_plural "Next commands to do (%<PRIuMAX> remaining commands):"
+msgstr[0] "Següent ordre a fer (%<PRIuMAX> restant ordre):"
+msgstr[1] "Següent ordre a fer (%<PRIuMAX> ordres restants):"
-#: wt-status.c:1404
+#: wt-status.c:1413
msgid " (use \"git rebase --edit-todo\" to view and edit)"
msgstr " (useu «git rebase --edit-todo» per a veure i editar)"
-#: wt-status.c:1416
+#: wt-status.c:1425
#, c-format
msgid "You are currently rebasing branch '%s' on '%s'."
msgstr "Actualment esteu fent «rebase» de la branca «%s» en «%s»."
-#: wt-status.c:1421
+#: wt-status.c:1430
msgid "You are currently rebasing."
msgstr "Actualment esteu fent «rebase»."
-#: wt-status.c:1434
+#: wt-status.c:1443
msgid " (fix conflicts and then run \"git rebase --continue\")"
msgstr ""
" (arregleu els conflictes i després executeu «git rebase --continue»)"
-#: wt-status.c:1436
+#: wt-status.c:1445
msgid " (use \"git rebase --skip\" to skip this patch)"
msgstr " (useu «git rebase --skip» per a ometre aquest pedaç)"
-#: wt-status.c:1438
+#: wt-status.c:1447
msgid " (use \"git rebase --abort\" to check out the original branch)"
msgstr " (useu «git rebase --abort» per a agafar la branca original)"
-#: wt-status.c:1445
+#: wt-status.c:1454
msgid " (all conflicts fixed: run \"git rebase --continue\")"
msgstr ""
" (tots els conflictes estan arreglats: executeu «git rebase --continue»)"
-#: wt-status.c:1449
+#: wt-status.c:1458
#, c-format
msgid ""
"You are currently splitting a commit while rebasing branch '%s' on '%s'."
@@ -10204,164 +10446,164 @@ msgstr ""
"Actualment esteu dividint una comissió mentre es fa «rebase» de la branca "
"«%s» en «%s»."
-#: wt-status.c:1454
+#: wt-status.c:1463
msgid "You are currently splitting a commit during a rebase."
msgstr "Actualment esteu dividint una comissió durant un «rebase»."
-#: wt-status.c:1457
+#: wt-status.c:1466
msgid " (Once your working directory is clean, run \"git rebase --continue\")"
msgstr ""
" (Una vegada que el vostre directori de treball sigui net, executeu «git "
"rebase --continue»)"
-#: wt-status.c:1461
+#: wt-status.c:1470
#, c-format
msgid "You are currently editing a commit while rebasing branch '%s' on '%s'."
msgstr ""
"Actualment esteu editant una comissió mentre es fa «rebase» de la branca "
"«%s» en «%s»."
-#: wt-status.c:1466
+#: wt-status.c:1475
msgid "You are currently editing a commit during a rebase."
msgstr "Actualment esteu editant una comissió durant un «rebase»."
-#: wt-status.c:1469
+#: wt-status.c:1478
msgid " (use \"git commit --amend\" to amend the current commit)"
msgstr " (useu «git commit --amend» per a esmenar la comissió actual)"
-#: wt-status.c:1471
+#: wt-status.c:1480
msgid " (use \"git rebase --continue\" once you are satisfied with your changes)"
msgstr ""
" (useu «git rebase --continue» una vegada que estigueu satisfet amb els "
"vostres canvis)"
-#: wt-status.c:1482
+#: wt-status.c:1491
msgid "Cherry-pick currently in progress."
msgstr "Hi ha «cherry pick» actualment en curs."
-#: wt-status.c:1485
+#: wt-status.c:1494
#, c-format
msgid "You are currently cherry-picking commit %s."
msgstr "Actualment esteu fent «cherry pick» a la comissió %s."
-#: wt-status.c:1492
+#: wt-status.c:1501
msgid " (fix conflicts and run \"git cherry-pick --continue\")"
msgstr " (arregleu els conflictes i executeu «git cherry-pick --continue»)"
-#: wt-status.c:1495
+#: wt-status.c:1504
msgid " (run \"git cherry-pick --continue\" to continue)"
msgstr " (executeu «git cherry-pick --continue» per a continuar)"
-#: wt-status.c:1498
+#: wt-status.c:1507
msgid " (all conflicts fixed: run \"git cherry-pick --continue\")"
msgstr ""
" (tots els conflictes estan arreglats: executeu «git cherry-pick "
"--continue»)"
-#: wt-status.c:1500
+#: wt-status.c:1509
msgid " (use \"git cherry-pick --skip\" to skip this patch)"
msgstr " (useu «git cherry-pick --skip» per a ometre aquest pedaç)"
-#: wt-status.c:1502
+#: wt-status.c:1511
msgid " (use \"git cherry-pick --abort\" to cancel the cherry-pick operation)"
msgstr ""
" (useu «git cherry-pick --abort» per a cancel·lar l'operació de «cherry "
"pick»)"
-#: wt-status.c:1512
+#: wt-status.c:1521
msgid "Revert currently in progress."
msgstr "Una reversió està actualment en curs."
-#: wt-status.c:1515
+#: wt-status.c:1524
#, c-format
msgid "You are currently reverting commit %s."
msgstr "Actualment esteu revertint la comissió %s."
-#: wt-status.c:1521
+#: wt-status.c:1530
msgid " (fix conflicts and run \"git revert --continue\")"
msgstr " (arregleu els conflictes i executeu «git revert --continue»)"
-#: wt-status.c:1524
+#: wt-status.c:1533
msgid " (run \"git revert --continue\" to continue)"
msgstr " (executeu «git revert --continue» per a continuar)"
-#: wt-status.c:1527
+#: wt-status.c:1536
msgid " (all conflicts fixed: run \"git revert --continue\")"
msgstr ""
" (tots els conflictes estan arreglats: executeu «git revert --continue»)"
-#: wt-status.c:1529
+#: wt-status.c:1538
msgid " (use \"git revert --skip\" to skip this patch)"
msgstr " (useu «git revert --skip» per a ometre aquest pedaç)"
-#: wt-status.c:1531
+#: wt-status.c:1540
msgid " (use \"git revert --abort\" to cancel the revert operation)"
msgstr " (useu «git revert --abort» per a cancel·lar l'operació de reversió)"
-#: wt-status.c:1541
+#: wt-status.c:1550
#, c-format
msgid "You are currently bisecting, started from branch '%s'."
msgstr "Actualment esteu bisecant, heu començat des de la branca «%s»."
-#: wt-status.c:1545
+#: wt-status.c:1554
msgid "You are currently bisecting."
msgstr "Actualment esteu bisecant."
-#: wt-status.c:1548
+#: wt-status.c:1557
msgid " (use \"git bisect reset\" to get back to the original branch)"
msgstr " (useu «git bisect reset» per a tornar a la branca original)"
-#: wt-status.c:1559
+#: wt-status.c:1568
msgid "You are in a sparse checkout."
msgstr "Esteu en un «sparse-checkout»."
-#: wt-status.c:1562
+#: wt-status.c:1571
#, c-format
msgid "You are in a sparse checkout with %d%% of tracked files present."
msgstr ""
"Esteu en un «sparse-checkout» amb un %d%% de fitxers seguits presents."
-#: wt-status.c:1806
+#: wt-status.c:1815
msgid "On branch "
msgstr "En la branca "
-#: wt-status.c:1813
+#: wt-status.c:1822
msgid "interactive rebase in progress; onto "
msgstr "«rebase» interactiu en curs; sobre "
-#: wt-status.c:1815
+#: wt-status.c:1824
msgid "rebase in progress; onto "
msgstr "«rebase» en curs; sobre "
-#: wt-status.c:1820
+#: wt-status.c:1829
msgid "HEAD detached at "
msgstr "HEAD separat a "
-#: wt-status.c:1822
+#: wt-status.c:1831
msgid "HEAD detached from "
msgstr "HEAD separat des de "
-#: wt-status.c:1825
+#: wt-status.c:1834
msgid "Not currently on any branch."
msgstr "Actualment no s'és en cap branca."
-#: wt-status.c:1842
+#: wt-status.c:1851
msgid "Initial commit"
msgstr "Comissió inicial"
-#: wt-status.c:1843
+#: wt-status.c:1852
msgid "No commits yet"
msgstr "No s'ha fet cap comissió encara"
-#: wt-status.c:1857
+#: wt-status.c:1866
msgid "Untracked files"
msgstr "Fitxers no seguits"
-#: wt-status.c:1859
+#: wt-status.c:1868
msgid "Ignored files"
msgstr "Fitxers ignorats"
-#: wt-status.c:1863
+#: wt-status.c:1872
#, c-format
msgid ""
"It took %.2f seconds to enumerate untracked files. 'status -uno'\n"
@@ -10373,30 +10615,30 @@ msgstr ""
"oblidar-vos d'afegir fitxers nous vosaltres mateixos (vegeu\n"
"«git help status»)."
-#: wt-status.c:1869
+#: wt-status.c:1878
#, c-format
msgid "Untracked files not listed%s"
msgstr "Els fitxers no seguits no estan llistats%s"
-#: wt-status.c:1871
+#: wt-status.c:1880
msgid " (use -u option to show untracked files)"
msgstr " (useu l'opció -u per a mostrar els fitxers no seguits)"
-#: wt-status.c:1877
+#: wt-status.c:1886
msgid "No changes"
msgstr "Sense canvis"
-#: wt-status.c:1882
+#: wt-status.c:1891
#, c-format
msgid "no changes added to commit (use \"git add\" and/or \"git commit -a\")\n"
msgstr "no hi ha canvis afegits a cometre (useu «git add» o «git commit -a»)\n"
-#: wt-status.c:1886
+#: wt-status.c:1895
#, c-format
msgid "no changes added to commit\n"
msgstr "no hi ha canvis afegits a cometre\n"
-#: wt-status.c:1890
+#: wt-status.c:1899
#, c-format
msgid ""
"nothing added to commit but untracked files present (use \"git add\" to "
@@ -10405,64 +10647,64 @@ msgstr ""
"no hi ha res afegit a cometre però hi ha fitxers no seguits (useu «git add» "
"per a seguir-los)\n"
-#: wt-status.c:1894
+#: wt-status.c:1903
#, c-format
msgid "nothing added to commit but untracked files present\n"
msgstr "no hi ha res afegit a cometre però hi ha fitxers no seguits\n"
-#: wt-status.c:1898
+#: wt-status.c:1907
#, c-format
msgid "nothing to commit (create/copy files and use \"git add\" to track)\n"
msgstr ""
"no hi ha res a cometre (creeu/copieu fitxers i useu «git add» per a seguir-"
"los)\n"
-#: wt-status.c:1902 wt-status.c:1908
+#: wt-status.c:1911 wt-status.c:1917
#, c-format
msgid "nothing to commit\n"
msgstr "no hi ha res a cometre\n"
-#: wt-status.c:1905
+#: wt-status.c:1914
#, c-format
msgid "nothing to commit (use -u to show untracked files)\n"
msgstr "no hi ha res a cometre (useu -u per a mostrar els fitxers no seguits)\n"
-#: wt-status.c:1910
+#: wt-status.c:1919
#, c-format
msgid "nothing to commit, working tree clean\n"
msgstr "no hi ha res a cometre, l'arbre de treball està net\n"
-#: wt-status.c:2015
+#: wt-status.c:2024
msgid "No commits yet on "
msgstr "No s'ha fet cap comissió encara a "
-#: wt-status.c:2019
+#: wt-status.c:2028
msgid "HEAD (no branch)"
msgstr "HEAD (sense branca)"
-#: wt-status.c:2050
+#: wt-status.c:2059
msgid "different"
msgstr "diferent"
-#: wt-status.c:2052 wt-status.c:2060
+#: wt-status.c:2061 wt-status.c:2069
msgid "behind "
msgstr "darrere "
-#: wt-status.c:2055 wt-status.c:2058
+#: wt-status.c:2064 wt-status.c:2067
msgid "ahead "
msgstr "davant per "
#. TRANSLATORS: the action is e.g. "pull with rebase"
-#: wt-status.c:2596
+#: wt-status.c:2605
#, c-format
msgid "cannot %s: You have unstaged changes."
msgstr "no es pot %s: Teniu canvis «unstaged»."
-#: wt-status.c:2602
+#: wt-status.c:2611
msgid "additionally, your index contains uncommitted changes."
msgstr "addicionalment, el vostre índex conté canvis sense cometre."
-#: wt-status.c:2604
+#: wt-status.c:2613
#, c-format
msgid "cannot %s: Your index contains uncommitted changes."
msgstr "no es pot %s: El vostre índex conté canvis sense cometre."
@@ -10485,147 +10727,153 @@ msgstr "no s'ha pogut començar un fil «accept_thread» «%s»"
msgid "could not start worker[0] for '%s'"
msgstr "no s'ha pogut iniciar el fil[0] per a «%s»"
-#: compat/precompose_utf8.c:58 builtin/clone.c:347
+#: compat/precompose_utf8.c:58 builtin/clone.c:353
#, c-format
msgid "failed to unlink '%s'"
msgstr "s'ha produït un error en desenllaçar «%s»"
+#: compat/fsmonitor/fsm-listen-darwin.c:355
+#, fuzzy
+msgid "Unable to create FSEventStream."
+msgstr "No s'ha pogut crear el FSEventStream."
+
+#: compat/fsmonitor/fsm-listen-darwin.c:403
+#, fuzzy
+msgid "Failed to start the FSEventStream"
+msgstr "No s'ha pogut iniciar el FSEventStream"
+
#: builtin/add.c:26
msgid "git add [<options>] [--] <pathspec>..."
msgstr "git add [<opcions>] [--] <especificació-de-camí>..."
-#: builtin/add.c:64
+#: builtin/add.c:63
#, c-format
msgid "cannot chmod %cx '%s'"
msgstr "no es pot fer chmod %cx «%s»"
-#: builtin/add.c:106
+#: builtin/add.c:105
#, c-format
msgid "unexpected diff status %c"
msgstr "estat de diff inesperat %c"
-#: builtin/add.c:111 builtin/commit.c:298
+#: builtin/add.c:110 builtin/commit.c:299
msgid "updating files failed"
msgstr "s'ha produït un error en actualitzar els fitxers"
-#: builtin/add.c:121
+#: builtin/add.c:120
#, c-format
msgid "remove '%s'\n"
msgstr "elimina «%s»\n"
-#: builtin/add.c:205
+#: builtin/add.c:204
msgid "Unstaged changes after refreshing the index:"
msgstr "Canvis «unstaged» després d'actualitzar l'índex:"
-#: builtin/add.c:313 builtin/rev-parse.c:993
+#: builtin/add.c:312 builtin/rev-parse.c:993
msgid "Could not read the index"
msgstr "No s'ha pogut llegir l'índex"
-#: builtin/add.c:326
+#: builtin/add.c:325
msgid "Could not write patch"
msgstr "No s'ha pogut escriure el pedaç"
-#: builtin/add.c:329
+#: builtin/add.c:328
msgid "editing patch failed"
msgstr "l'edició del pedaç ha fallat"
-#: builtin/add.c:332
+#: builtin/add.c:331
#, c-format
msgid "Could not stat '%s'"
msgstr "No s'ha pogut fer stat a «%s»"
-#: builtin/add.c:334
+#: builtin/add.c:333
msgid "Empty patch. Aborted."
msgstr "El pedaç és buit. S'ha avortat."
-#: builtin/add.c:340
+#: builtin/add.c:339
#, c-format
msgid "Could not apply '%s'"
msgstr "No s'ha pogut aplicar «%s»"
-#: builtin/add.c:348
+#: builtin/add.c:347
msgid "The following paths are ignored by one of your .gitignore files:\n"
msgstr "Els camins següents s'ignoren per un dels vostres fitxers .gitignore:\n"
-#: builtin/add.c:368 builtin/clean.c:927 builtin/fetch.c:174 builtin/mv.c:124
+#: builtin/add.c:367 builtin/clean.c:927 builtin/fetch.c:175 builtin/mv.c:124
#: builtin/prune-packed.c:14 builtin/pull.c:208 builtin/push.c:550
-#: builtin/remote.c:1429 builtin/rm.c:244 builtin/send-pack.c:194
+#: builtin/remote.c:1454 builtin/rm.c:244 builtin/send-pack.c:194
msgid "dry run"
msgstr "fes una prova"
-#: builtin/add.c:369 builtin/check-ignore.c:22 builtin/commit.c:1484
-#: builtin/count-objects.c:98 builtin/fsck.c:789 builtin/log.c:2313
+#: builtin/add.c:368 builtin/check-ignore.c:22 builtin/commit.c:1483
+#: builtin/count-objects.c:98 builtin/fsck.c:789 builtin/log.c:2338
#: builtin/mv.c:123 builtin/read-tree.c:120
msgid "be verbose"
msgstr "sigues detallat"
-#: builtin/add.c:371
+#: builtin/add.c:370
msgid "interactive picking"
msgstr "selecció interactiva"
-#: builtin/add.c:372 builtin/checkout.c:1581 builtin/reset.c:409
+#: builtin/add.c:371 builtin/checkout.c:1599 builtin/reset.c:417
msgid "select hunks interactively"
msgstr "selecciona els trossos interactivament"
-#: builtin/add.c:373
+#: builtin/add.c:372
msgid "edit current diff and apply"
msgstr "edita la diferència actual i aplica-la"
-#: builtin/add.c:374
+#: builtin/add.c:373
msgid "allow adding otherwise ignored files"
msgstr "permet afegir fitxers que d'altra manera s'ignoren"
-#: builtin/add.c:375
+#: builtin/add.c:374
msgid "update tracked files"
msgstr "actualitza els fitxers seguits"
-#: builtin/add.c:376
+#: builtin/add.c:375
msgid "renormalize EOL of tracked files (implies -u)"
msgstr "torna a normalitzar EOL dels fitxers seguits (implica -u)"
-#: builtin/add.c:377
+#: builtin/add.c:376
msgid "record only the fact that the path will be added later"
msgstr "registra només el fet que el camí s'afegirà més tard"
-#: builtin/add.c:378
+#: builtin/add.c:377
msgid "add changes from all tracked and untracked files"
msgstr "afegeix els canvis de tots els fitxers seguits i no seguits"
-#: builtin/add.c:381
+#: builtin/add.c:380
msgid "ignore paths removed in the working tree (same as --no-all)"
msgstr ""
"ignora els camins eliminats en l'arbre de treball (el mateix que --no-all)"
-#: builtin/add.c:383
+#: builtin/add.c:382
msgid "don't add, only refresh the index"
msgstr "no afegeixis, només actualitza l'índex"
-#: builtin/add.c:384
+#: builtin/add.c:383
msgid "just skip files which cannot be added because of errors"
msgstr "només omet els fitxers que no es poden afegir a causa d'errors"
-#: builtin/add.c:385
+#: builtin/add.c:384
msgid "check if - even missing - files are ignored in dry run"
msgstr ""
"comprova si els fitxers, fins i tot els absents, s'ignoren en fer una prova"
-#: builtin/add.c:386 builtin/mv.c:128 builtin/rm.c:251
+#: builtin/add.c:385 builtin/mv.c:128 builtin/rm.c:251
msgid "allow updating entries outside of the sparse-checkout cone"
msgstr "permet actualitzar entrada fora del con del «sparse-checkout»"
-#: builtin/add.c:388 builtin/update-index.c:1004
+#: builtin/add.c:387 builtin/update-index.c:1023
msgid "override the executable bit of the listed files"
msgstr "sobreescriu el bit executable dels fitxers llistats"
-#: builtin/add.c:390
+#: builtin/add.c:389
msgid "warn when adding an embedded repository"
msgstr "avisa'm quan s'afegeixi un repositori incrustat"
-#: builtin/add.c:392
-msgid "backend for `git stash -p`"
-msgstr "rerefons per a «git stash -p»"
-
-#: builtin/add.c:410
+#: builtin/add.c:407
#, c-format
msgid ""
"You've added another git repository inside your current repository.\n"
@@ -10656,12 +10904,12 @@ msgstr ""
"\n"
"Vegeu «git help submodule» per a més informació."
-#: builtin/add.c:439
+#: builtin/add.c:436
#, c-format
msgid "adding embedded git repository: %s"
msgstr "s'està afegint un repositori incrustat: %s"
-#: builtin/add.c:459
+#: builtin/add.c:456
msgid ""
"Use -f if you really want to add them.\n"
"Turn this message off by running\n"
@@ -10671,27 +10919,27 @@ msgstr ""
"Desactiveu aquest missatge executant\n"
"«git config advice.addIgnoredFile false»"
-#: builtin/add.c:474
+#: builtin/add.c:471
msgid "adding files failed"
msgstr "l'afegiment de fitxers ha fallat"
-#: builtin/add.c:548
+#: builtin/add.c:534
#, c-format
msgid "--chmod param '%s' must be either -x or +x"
msgstr "el paràmetre --chmod «%s» ha de ser o -x o +x"
-#: builtin/add.c:569 builtin/checkout.c:1751 builtin/commit.c:364
-#: builtin/reset.c:429 builtin/rm.c:275 builtin/stash.c:1713
+#: builtin/add.c:555 builtin/checkout.c:1770 builtin/commit.c:365
+#: builtin/reset.c:436 builtin/rm.c:275 builtin/stash.c:1702
#, c-format
msgid "'%s' and pathspec arguments cannot be used together"
msgstr "«%s» i l'especificació de camí no es poden usar juntes"
-#: builtin/add.c:580
+#: builtin/add.c:566
#, c-format
msgid "Nothing specified, nothing added.\n"
msgstr "No s'ha especificat res, no s'ha afegit res.\n"
-#: builtin/add.c:582
+#: builtin/add.c:568
msgid ""
"Maybe you wanted to say 'git add .'?\n"
"Turn this message off by running\n"
@@ -10701,119 +10949,115 @@ msgstr ""
"Desactiveu aquest missatge executant\n"
"«git config advice.addEmptyPathspec false»"
-#: builtin/am.c:202
-#, c-format
-msgid "Invalid value for --empty: %s"
-msgstr "Valor no vàlid per a --empty: %s"
-
-#: builtin/am.c:392
+#: builtin/am.c:393
msgid "could not parse author script"
msgstr "no s'ha pogut analitzar l'script d'autor"
-#: builtin/am.c:482
+#: builtin/am.c:483
#, c-format
msgid "'%s' was deleted by the applypatch-msg hook"
msgstr "s'ha suprimit «%s» pel lligam applypatch-msg"
-#: builtin/am.c:524
+#: builtin/am.c:525
#, c-format
msgid "Malformed input line: '%s'."
msgstr "Línia d'entrada mal formada: «%s»."
-#: builtin/am.c:562
+#: builtin/am.c:563
#, c-format
msgid "Failed to copy notes from '%s' to '%s'"
msgstr "S'ha produït un error en copiar les notes de «%s» a «%s»"
-#: builtin/am.c:588
+#: builtin/am.c:589
msgid "fseek failed"
msgstr "fseek ha fallat"
-#: builtin/am.c:776
+#: builtin/am.c:777
#, c-format
msgid "could not parse patch '%s'"
msgstr "no s'ha pogut analitzar el pedaç «%s»"
-#: builtin/am.c:841
+#: builtin/am.c:842
msgid "Only one StGIT patch series can be applied at once"
msgstr "Només una sèrie de pedaços StGIT es pot aplicar a la vegada"
-#: builtin/am.c:889
+#: builtin/am.c:890
msgid "invalid timestamp"
msgstr "marca de temps no vàlida"
-#: builtin/am.c:894 builtin/am.c:906
+#: builtin/am.c:895 builtin/am.c:907
msgid "invalid Date line"
msgstr "línia Date no vàlida"
-#: builtin/am.c:901
+#: builtin/am.c:902
msgid "invalid timezone offset"
msgstr "desplaçament del fus horari no vàlid"
-#: builtin/am.c:994
+#: builtin/am.c:995
msgid "Patch format detection failed."
msgstr "La detecció de format de pedaç ha fallat."
-#: builtin/am.c:999 builtin/clone.c:300
+#: builtin/am.c:1000 builtin/clone.c:306
#, c-format
msgid "failed to create directory '%s'"
msgstr "s'ha produït un error en crear el directori «%s»"
-#: builtin/am.c:1004
+#: builtin/am.c:1005
msgid "Failed to split patches."
msgstr "S'ha produït un error en dividir els pedaços."
-#: builtin/am.c:1153
+#: builtin/am.c:1154
#, c-format
msgid "When you have resolved this problem, run \"%s --continue\"."
msgstr "Quan hàgiu resolt aquest problema, executeu «%s --continue»."
-#: builtin/am.c:1154
+#: builtin/am.c:1155
#, c-format
msgid "If you prefer to skip this patch, run \"%s --skip\" instead."
msgstr "Si preferiu ometre aquest pedaç, executeu «%s --skip» en lloc d'això."
-#: builtin/am.c:1159
+#: builtin/am.c:1160
#, c-format
msgid "To record the empty patch as an empty commit, run \"%s --allow-empty\"."
msgstr ""
-"Per a enregistrar un pedaç buit com a comissió buida, executeu «%s --allow-empty»."
+"Per a enregistrar un pedaç buit com a comissió buida, executeu «%s --allow-"
+"empty»."
-#: builtin/am.c:1161
+#: builtin/am.c:1162
#, c-format
msgid "To restore the original branch and stop patching, run \"%s --abort\"."
msgstr ""
"Per a restaurar la branca original i deixar d'apedaçar, executeu «%s "
"--abort»."
-#: builtin/am.c:1256
+#: builtin/am.c:1257
msgid ""
"Patch sent with format=flowed; space at the end of lines might be lost."
msgstr ""
"Pedaç enviat amb format=flowed; es pot perdre l'espai al final de les "
"línies."
-#: builtin/am.c:1344
+#: builtin/am.c:1345
#, c-format
msgid "missing author line in commit %s"
msgstr "manca la línia d'autor en la comissió %s"
-#: builtin/am.c:1347
+#: builtin/am.c:1348
#, c-format
msgid "invalid ident line: %.*s"
msgstr "línia d'identitat no vàlida: %.*s"
-#: builtin/am.c:1566
+#: builtin/am.c:1567
msgid "Repository lacks necessary blobs to fall back on 3-way merge."
msgstr ""
"Al repositori li manquen els blobs necessaris per a retrocedir a una fusió "
"de 3 vies."
-#: builtin/am.c:1568
+#: builtin/am.c:1569
msgid "Using index info to reconstruct a base tree..."
msgstr "S'està usant la informació d'índex per a reconstruir un arbre base..."
-#: builtin/am.c:1587
+#: builtin/am.c:1588
msgid ""
"Did you hand edit your patch?\n"
"It does not apply to blobs recorded in its index."
@@ -10821,84 +11065,84 @@ msgstr ""
"Heu editat el vostre pedaç a mà?\n"
"No s'aplica als blobs recordats en el seu índex."
-#: builtin/am.c:1593
+#: builtin/am.c:1594
msgid "Falling back to patching base and 3-way merge..."
msgstr "S'està retrocedint a apedaçar la base i una fusió de 3 vies..."
-#: builtin/am.c:1619
+#: builtin/am.c:1620
msgid "Failed to merge in the changes."
msgstr "S'ha produït un error en fusionar els canvis."
-#: builtin/am.c:1651
+#: builtin/am.c:1652
msgid "applying to an empty history"
msgstr "s'està aplicant a una història buida"
-#: builtin/am.c:1703 builtin/am.c:1707
+#: builtin/am.c:1704 builtin/am.c:1708
#, c-format
msgid "cannot resume: %s does not exist."
msgstr "no es pot reprendre: %s no existeix."
-#: builtin/am.c:1725
+#: builtin/am.c:1726
msgid "Commit Body is:"
msgstr "El cos de la comissió és:"
#. TRANSLATORS: Make sure to include [y], [n], [e], [v] and [a]
#. in your translation. The program will only accept English
#. input at this point.
-#: builtin/am.c:1735
+#: builtin/am.c:1736
#, c-format
msgid "Apply? [y]es/[n]o/[e]dit/[v]iew patch/[a]ccept all: "
msgstr ""
"Voleu aplicar-lo? [y]es/[n]o/[e]dita/[v]isualitza el pedaç/[a]ccepta'ls "
"tots: "
-#: builtin/am.c:1781 builtin/commit.c:409
+#: builtin/am.c:1782 builtin/commit.c:410
msgid "unable to write index file"
msgstr "no s'ha pogut escriure el fitxer d'índex"
-#: builtin/am.c:1785
+#: builtin/am.c:1786
#, c-format
msgid "Dirty index: cannot apply patches (dirty: %s)"
msgstr "Ãndex brut: no es poden aplicar pedaços (bruts: %s)"
-#: builtin/am.c:1827
+#: builtin/am.c:1828
#, c-format
msgid "Skipping: %.*s"
msgstr "S'està ometent: %.*s"
-#: builtin/am.c:1832
+#: builtin/am.c:1833
#, c-format
msgid "Creating an empty commit: %.*s"
msgstr "S'està creant una comissió buida: %.*s"
-#: builtin/am.c:1836
+#: builtin/am.c:1837
msgid "Patch is empty."
msgstr "El pedaç està buit."
-#: builtin/am.c:1847 builtin/am.c:1916
+#: builtin/am.c:1848 builtin/am.c:1917
#, c-format
msgid "Applying: %.*s"
msgstr "S'està aplicant: %.*s"
-#: builtin/am.c:1864
+#: builtin/am.c:1865
msgid "No changes -- Patch already applied."
msgstr "Sense canvis -- El pedaç ja s'ha aplicat."
-#: builtin/am.c:1870
+#: builtin/am.c:1871
#, c-format
msgid "Patch failed at %s %.*s"
msgstr "El pedaç ha fallat a %s %.*s"
-#: builtin/am.c:1874
+#: builtin/am.c:1875
msgid "Use 'git am --show-current-patch=diff' to see the failed patch"
msgstr ""
"Useu «git am --show-current-patch=diff» per a veure el pedaç que ha fallat"
-#: builtin/am.c:1920
+#: builtin/am.c:1921
msgid "No changes - recorded it as an empty commit."
msgstr "No hi ha canvis - enregistrat com una comissió buida."
-#: builtin/am.c:1922
+#: builtin/am.c:1923
msgid ""
"No changes - did you forget to use 'git add'?\n"
"If there is nothing left to stage, chances are that something else\n"
@@ -10908,7 +11152,7 @@ msgstr ""
"Si no hi ha res per a fer «stage», probablement alguna altra cosa ja ha\n"
"introduït els mateixos canvis; potser voleu ometre aquest pedaç."
-#: builtin/am.c:1930
+#: builtin/am.c:1931
msgid ""
"You still have unmerged paths in your index.\n"
"You should 'git add' each file with resolved conflicts to mark them as such.\n"
@@ -10918,17 +11162,17 @@ msgstr ""
"Heu de fer «git add» a cada fitxer amb conflictes resolts per a marcar-los com a tal.\n"
"Podeu executar «git rm» en un fitxer per a acceptar «suprimit per ells» pel fitxer."
-#: builtin/am.c:2038 builtin/am.c:2042 builtin/am.c:2054 builtin/reset.c:448
-#: builtin/reset.c:456
+#: builtin/am.c:2039 builtin/am.c:2043 builtin/am.c:2055 builtin/reset.c:455
+#: builtin/reset.c:463
#, c-format
msgid "Could not parse object '%s'."
msgstr "No s'ha pogut analitzar l'objecte «%s»."
-#: builtin/am.c:2090 builtin/am.c:2166
+#: builtin/am.c:2091 builtin/am.c:2167
msgid "failed to clean index"
msgstr "s'ha produït un error en netejar l'índex"
-#: builtin/am.c:2134
+#: builtin/am.c:2135
msgid ""
"You seem to have moved HEAD since the last 'am' failure.\n"
"Not rewinding to ORIG_HEAD"
@@ -10936,168 +11180,159 @@ msgstr ""
"Sembla que heu mogut HEAD després de l'última fallada de «am».\n"
"No s'està rebobinant a ORIG_HEAD"
-#: builtin/am.c:2242
-#, c-format
-msgid "Invalid value for --patch-format: %s"
-msgstr "Valor no vàlid per a --patch-format: %s"
-
-#: builtin/am.c:2285
-#, c-format
-msgid "Invalid value for --show-current-patch: %s"
-msgstr "Valor no vàlid per --show-current-patch: %s"
-
-#: builtin/am.c:2289
+#: builtin/am.c:2292
#, c-format
msgid "options '%s=%s' and '%s=%s' cannot be used together"
msgstr "les opcions «%s=%s» i «%s=%s» no es poden usar juntes"
-#: builtin/am.c:2320
+#: builtin/am.c:2323
msgid "git am [<options>] [(<mbox> | <Maildir>)...]"
msgstr "git am [<opcions>] [(<bústia> | <directori-de-correu>)...]"
-#: builtin/am.c:2321
+#: builtin/am.c:2324
msgid "git am [<options>] (--continue | --skip | --abort)"
msgstr "git am [<opcions>] (--continue | --skip | --abort)"
-#: builtin/am.c:2327
+#: builtin/am.c:2330
msgid "run interactively"
msgstr "executa interactivament"
-#: builtin/am.c:2329
+#: builtin/am.c:2332
msgid "historical option -- no-op"
msgstr "opció històrica -- no-op"
-#: builtin/am.c:2331
+#: builtin/am.c:2334
msgid "allow fall back on 3way merging if needed"
msgstr "permet retrocedir a una fusió de 3 vies si és necessari"
-#: builtin/am.c:2332 builtin/init-db.c:547 builtin/prune-packed.c:16
-#: builtin/repack.c:642 builtin/stash.c:962
+#: builtin/am.c:2335 builtin/init-db.c:547 builtin/prune-packed.c:16
+#: builtin/repack.c:646 builtin/stash.c:946
msgid "be quiet"
msgstr "silenciós"
-#: builtin/am.c:2334
+#: builtin/am.c:2337
msgid "add a Signed-off-by trailer to the commit message"
msgstr "afegeix un «trailer» tipus «Signed-off-by» al missatge de comissió"
-#: builtin/am.c:2337
+#: builtin/am.c:2340
msgid "recode into utf8 (default)"
msgstr "recodifica en utf8 (per defecte)"
-#: builtin/am.c:2339
+#: builtin/am.c:2342
msgid "pass -k flag to git-mailinfo"
msgstr "passa l'indicador -k a git-mailinfo"
-#: builtin/am.c:2341
+#: builtin/am.c:2344
msgid "pass -b flag to git-mailinfo"
msgstr "passa l'indicador -b a git-mailinfo"
-#: builtin/am.c:2343
+#: builtin/am.c:2346
msgid "pass -m flag to git-mailinfo"
msgstr "passa l'indicador -m a git-mailinfo"
-#: builtin/am.c:2345
+#: builtin/am.c:2348
msgid "pass --keep-cr flag to git-mailsplit for mbox format"
msgstr "passa l'indicador --keep-cr a git-mailsplit per al format mbox"
-#: builtin/am.c:2348
+#: builtin/am.c:2351
msgid "do not pass --keep-cr flag to git-mailsplit independent of am.keepcr"
msgstr ""
"no passis l'indicador --keep-cr a git-mailsplit independentment d'am.keepcr"
-#: builtin/am.c:2351
+#: builtin/am.c:2354
msgid "strip everything before a scissors line"
msgstr "elimina tot abans d'una línia de tisores"
-#: builtin/am.c:2353
+#: builtin/am.c:2356
msgid "pass it through git-mailinfo"
msgstr "passa-ho a través del git-mailinfo"
-#: builtin/am.c:2356 builtin/am.c:2359 builtin/am.c:2362 builtin/am.c:2365
-#: builtin/am.c:2368 builtin/am.c:2371 builtin/am.c:2374 builtin/am.c:2377
-#: builtin/am.c:2383
+#: builtin/am.c:2359 builtin/am.c:2362 builtin/am.c:2365 builtin/am.c:2368
+#: builtin/am.c:2371 builtin/am.c:2374 builtin/am.c:2377 builtin/am.c:2380
+#: builtin/am.c:2386
msgid "pass it through git-apply"
msgstr "passa-ho a través de git-apply"
-#: builtin/am.c:2373 builtin/commit.c:1515 builtin/fmt-merge-msg.c:18
-#: builtin/fmt-merge-msg.c:21 builtin/grep.c:919 builtin/merge.c:263
+#: builtin/am.c:2376 builtin/commit.c:1514 builtin/fmt-merge-msg.c:18
+#: builtin/fmt-merge-msg.c:21 builtin/grep.c:920 builtin/merge.c:263
#: builtin/pull.c:142 builtin/pull.c:204 builtin/pull.c:221
-#: builtin/rebase.c:1046 builtin/repack.c:653 builtin/repack.c:657
-#: builtin/repack.c:659 builtin/show-branch.c:649 builtin/show-ref.c:172
-#: builtin/tag.c:445 parse-options.h:154 parse-options.h:175
-#: parse-options.h:317
+#: builtin/rebase.c:1074 builtin/repack.c:657 builtin/repack.c:661
+#: builtin/repack.c:663 builtin/show-branch.c:650 builtin/show-ref.c:172
+#: builtin/tag.c:446 parse-options.h:159 parse-options.h:180
+#: parse-options.h:348
msgid "n"
msgstr "n"
-#: builtin/am.c:2379 builtin/branch.c:680 builtin/bugreport.c:109
-#: builtin/for-each-ref.c:41 builtin/replace.c:555 builtin/tag.c:479
-#: builtin/verify-tag.c:38
+#: builtin/am.c:2382 builtin/branch.c:695 builtin/bugreport.c:109
+#: builtin/cat-file.c:848 builtin/cat-file.c:852 builtin/cat-file.c:856
+#: builtin/for-each-ref.c:41 builtin/ls-tree.c:357 builtin/replace.c:555
+#: builtin/tag.c:480 builtin/verify-tag.c:38
msgid "format"
msgstr "format"
-#: builtin/am.c:2380
+#: builtin/am.c:2383
msgid "format the patch(es) are in"
msgstr "el format en el qual estan els pedaços"
-#: builtin/am.c:2386
+#: builtin/am.c:2389
msgid "override error message when patch failure occurs"
msgstr "sobreescriu el missatge d'error si falla l'aplicació del pedaç"
-#: builtin/am.c:2388
+#: builtin/am.c:2391
msgid "continue applying patches after resolving a conflict"
msgstr "segueix aplicant pedaços després de resoldre un conflicte"
-#: builtin/am.c:2391
+#: builtin/am.c:2394
msgid "synonyms for --continue"
msgstr "sinònims de --continue"
-#: builtin/am.c:2394
+#: builtin/am.c:2397
msgid "skip the current patch"
msgstr "omet el pedaç actual"
-#: builtin/am.c:2397
+#: builtin/am.c:2400
msgid "restore the original branch and abort the patching operation"
msgstr "restaura la branca original i interromp l'operació d'apedaçament"
-#: builtin/am.c:2400
+#: builtin/am.c:2403
msgid "abort the patching operation but keep HEAD where it is"
msgstr "interromp l'operació d'apedaçament però manté HEAD on és"
-#: builtin/am.c:2404
+#: builtin/am.c:2407
msgid "show the patch being applied"
msgstr "mostra el pedaç que s'està aplicant"
-#: builtin/am.c:2408
+#: builtin/am.c:2411
msgid "record the empty patch as an empty commit"
msgstr "registra el pedaç buit com una comissió buida"
-#: builtin/am.c:2412
+#: builtin/am.c:2415
msgid "lie about committer date"
msgstr "menteix sobre la data del comitent"
-#: builtin/am.c:2414
+#: builtin/am.c:2417
msgid "use current timestamp for author date"
msgstr "usa la marca de temps actual per a la data d'autor"
-#: builtin/am.c:2416 builtin/commit-tree.c:118 builtin/commit.c:1643
-#: builtin/merge.c:302 builtin/pull.c:179 builtin/rebase.c:1099
-#: builtin/revert.c:117 builtin/tag.c:460
+#: builtin/am.c:2419 builtin/commit-tree.c:118 builtin/commit.c:1642
+#: builtin/merge.c:302 builtin/pull.c:179 builtin/rebase.c:1127
+#: builtin/revert.c:117 builtin/tag.c:461
msgid "key-id"
msgstr "ID de clau"
-#: builtin/am.c:2417 builtin/rebase.c:1100
+#: builtin/am.c:2420 builtin/rebase.c:1128
msgid "GPG-sign commits"
msgstr "signa les comissions amb GPG"
-#: builtin/am.c:2420
+#: builtin/am.c:2423
msgid "how to handle empty patches"
msgstr "com gestionar les comissions buides"
-#: builtin/am.c:2423
+#: builtin/am.c:2426
msgid "(internal use for git-rebase)"
msgstr "(ús intern per a git-rebase)"
-#: builtin/am.c:2441
+#: builtin/am.c:2444
msgid ""
"The -b/--binary option has been a no-op for long time, and\n"
"it will be removed. Please do not use it anymore."
@@ -11105,18 +11340,18 @@ msgstr ""
"Fa molt que l'opció -b/--binary no fa res, i\n"
"s'eliminarà. No l'useu més."
-#: builtin/am.c:2448
+#: builtin/am.c:2451
msgid "failed to read the index"
msgstr "s'ha produït un error en llegir l'índex"
-#: builtin/am.c:2463
+#: builtin/am.c:2466
#, c-format
msgid "previous rebase directory %s still exists but mbox given."
msgstr ""
"un directori de «rebase» anterior %s encara existeix però s'ha donat una "
"bústia."
-#: builtin/am.c:2487
+#: builtin/am.c:2490
#, c-format
msgid ""
"Stray %s directory found.\n"
@@ -11125,11 +11360,11 @@ msgstr ""
"S'ha trobat un directori %s extraviat.\n"
"Useu «git am --abort» per a eliminar-lo."
-#: builtin/am.c:2493
+#: builtin/am.c:2496
msgid "Resolve operation not in progress, we are not resuming."
msgstr "Una operació de resolució no està en curs; no reprenem."
-#: builtin/am.c:2503
+#: builtin/am.c:2506
msgid "interactive mode requires patches on the command line"
msgstr "el mode interactiu requereix pedaços a la línia d'ordres"
@@ -11166,14 +11401,6 @@ msgstr "git archive: s'esperava una neteja"
msgid "git bisect--helper --bisect-reset [<commit>]"
msgstr "git bisect--helper --bisect-reset [<comissió>]"
-#: builtin/bisect--helper.c:25
-msgid ""
-"git bisect--helper --bisect-terms [--term-good | --term-old | --term-bad | "
-"--term-new]"
-msgstr ""
-"git bisect--helper --bisect-terms [--term-good | --term-old | --term-bad | "
-"--term-new]"
-
#: builtin/bisect--helper.c:26
msgid ""
"git bisect--helper --bisect-start [--term-{new,bad}=<term> "
@@ -11184,10 +11411,6 @@ msgstr ""
"--term-{old,good}=<term>] [--no-checkout] [--first-parent] [<bad> "
"[<good>...]] [--] [<paths>...]"
-#: builtin/bisect--helper.c:28
-msgid "git bisect--helper --bisect-next"
-msgstr "git bisect--helper --bisect-next"
-
#: builtin/bisect--helper.c:29
msgid "git bisect--helper --bisect-state (bad|new) [<rev>]"
msgstr "git bisect--helper --bisect-state (bad|new) [<rev>]"
@@ -11204,10 +11427,6 @@ msgstr "git bisect--helper --bisect-replay <filename>"
msgid "git bisect--helper --bisect-skip [(<rev>|<range>)...]"
msgstr "git bisect--helper --bisect-skip [(<rev>|<range>)...]"
-#: builtin/bisect--helper.c:33
-msgid "git bisect--helper --bisect-visualize"
-msgstr "git bisect--helper --bisect-visualize"
-
#: builtin/bisect--helper.c:34
msgid "git bisect--helper --bisect-run <cmd>..."
msgstr "git bisect--helper --bisect-run <ordre>..."
@@ -11428,42 +11647,52 @@ msgstr "«%s»? Què voleu dir?"
msgid "cannot read file '%s' for replaying"
msgstr "no es pot llegir «%s» per a reproducció"
-#: builtin/bisect--helper.c:1107 builtin/bisect--helper.c:1274
+#: builtin/bisect--helper.c:1120 builtin/bisect--helper.c:1152
+#, c-format
+msgid "running %s\n"
+msgstr "s'està executant %s\n"
+
+#: builtin/bisect--helper.c:1145 builtin/bisect--helper.c:1335
msgid "bisect run failed: no command provided."
msgstr "ha fallat l'execució de bisect: no s'ha proporcionat cap ordre."
-#: builtin/bisect--helper.c:1116
+#: builtin/bisect--helper.c:1166
#, c-format
-msgid "running %s\n"
-msgstr "s'està executant %s\n"
+msgid "unable to verify '%s' on good revision"
+msgstr "no s'ha pogut verificar «%s» en una bona revisió"
+
+#: builtin/bisect--helper.c:1172
+#, c-format
+msgid "bogus exit code %d for good revision"
+msgstr "codi d'error de sortida %d per a una bona revisió"
-#: builtin/bisect--helper.c:1120
+#: builtin/bisect--helper.c:1180
#, c-format
msgid "bisect run failed: exit code %d from '%s' is < 0 or >= 128"
msgstr ""
"l'execució de la de bisecció ha fallat: codi de sortida %d de «%s» és < 0 o "
">= 128"
-#: builtin/bisect--helper.c:1136
+#: builtin/bisect--helper.c:1195
#, c-format
msgid "cannot open file '%s' for writing"
msgstr "no es pot obrir «%s» per a escriptura"
-#: builtin/bisect--helper.c:1152
+#: builtin/bisect--helper.c:1213
msgid "bisect run cannot continue any more"
msgstr "l'execució de la bisecció no pot continuar més"
-#: builtin/bisect--helper.c:1154
+#: builtin/bisect--helper.c:1215
#, c-format
msgid "bisect run success"
msgstr "execució de bisecció amb èxit"
-#: builtin/bisect--helper.c:1157
+#: builtin/bisect--helper.c:1218
#, c-format
msgid "bisect found first bad commit"
msgstr "la bisecció ha trobat una primera comissió errònia"
-#: builtin/bisect--helper.c:1160
+#: builtin/bisect--helper.c:1221
#, c-format
msgid ""
"bisect run failed: 'git bisect--helper --bisect-state %s' exited with error "
@@ -11472,71 +11701,71 @@ msgstr ""
"l'execució de la bisecció ha fallat: «git bisect--helper --bisect-state %s» "
"ha sortit amb el codi d'error %d"
-#: builtin/bisect--helper.c:1192
+#: builtin/bisect--helper.c:1253
msgid "reset the bisection state"
msgstr "restableix l'estat de la bisecció"
-#: builtin/bisect--helper.c:1194
+#: builtin/bisect--helper.c:1255
msgid "check whether bad or good terms exist"
msgstr "comprova si existeixen termes correctes o incorrectes"
-#: builtin/bisect--helper.c:1196
+#: builtin/bisect--helper.c:1257
msgid "print out the bisect terms"
msgstr "imprimeix els termes de la bisecció"
-#: builtin/bisect--helper.c:1198
+#: builtin/bisect--helper.c:1259
msgid "start the bisect session"
msgstr "inicia la sessió bisecció"
-#: builtin/bisect--helper.c:1200
+#: builtin/bisect--helper.c:1261
msgid "find the next bisection commit"
msgstr "troba la comissió de bisecció següent"
-#: builtin/bisect--helper.c:1202
+#: builtin/bisect--helper.c:1263
msgid "mark the state of ref (or refs)"
msgstr "marca l'estat de la referència o referències"
-#: builtin/bisect--helper.c:1204
+#: builtin/bisect--helper.c:1265
msgid "list the bisection steps so far"
msgstr "mostra les passes de la bisecció fins ara"
-#: builtin/bisect--helper.c:1206
+#: builtin/bisect--helper.c:1267
msgid "replay the bisection process from the given file"
msgstr "torna a reproduir el procés de bisecció des del fitxer donat"
-#: builtin/bisect--helper.c:1208
+#: builtin/bisect--helper.c:1269
msgid "skip some commits for checkout"
msgstr "omet algunes comissions en agafar"
-#: builtin/bisect--helper.c:1210
+#: builtin/bisect--helper.c:1271
msgid "visualize the bisection"
msgstr "visualitza la bisecció"
-#: builtin/bisect--helper.c:1212
-msgid "use <cmd>... to automatically bisect."
-msgstr "useu <cmd>... per a fer una bisecció automàticament."
+#: builtin/bisect--helper.c:1273
+msgid "use <cmd>... to automatically bisect"
+msgstr "useu <cmd>... per a fer una bisecció automàticament"
-#: builtin/bisect--helper.c:1214
+#: builtin/bisect--helper.c:1275
msgid "no log for BISECT_WRITE"
msgstr "no hi ha registre per a BISECT_WRITE"
-#: builtin/bisect--helper.c:1229
+#: builtin/bisect--helper.c:1290
msgid "--bisect-reset requires either no argument or a commit"
msgstr "--bisect-reset no requereix cap argument ni comissió"
-#: builtin/bisect--helper.c:1234
+#: builtin/bisect--helper.c:1295
msgid "--bisect-terms requires 0 or 1 argument"
msgstr "--bisect-terms requereix 0 o 1 argument"
-#: builtin/bisect--helper.c:1243
+#: builtin/bisect--helper.c:1304
msgid "--bisect-next requires 0 arguments"
msgstr "--bisect-next no requereix cap argument"
-#: builtin/bisect--helper.c:1254
+#: builtin/bisect--helper.c:1315
msgid "--bisect-log requires 0 arguments"
msgstr "--bisect-log no requereix cap argument"
-#: builtin/bisect--helper.c:1259
+#: builtin/bisect--helper.c:1320
msgid "no logfile given"
msgstr "no s'ha donat cap fitxer de registre"
@@ -11557,149 +11786,140 @@ msgstr "s'esperava un color: %s"
msgid "must end with a color"
msgstr "ha d'acabar amb un color"
-#: builtin/blame.c:724
-#, c-format
-msgid "invalid color '%s' in color.blame.repeatedLines"
-msgstr "color «%s» no vàlid en «color.blame.repeatedLines»"
-
-#: builtin/blame.c:742
-msgid "invalid value for blame.coloring"
-msgstr "valor no vàlid per a «blame.coloring»"
-
-#: builtin/blame.c:841
+#: builtin/blame.c:842
#, c-format
msgid "cannot find revision %s to ignore"
msgstr "no s'ha pogut trobar la revisió %s a ignorar"
-#: builtin/blame.c:863
+#: builtin/blame.c:864
msgid "show blame entries as we find them, incrementally"
msgstr "mostra les entrades «blame» mentre les trobem, incrementalment"
-#: builtin/blame.c:864
+#: builtin/blame.c:865
msgid "do not show object names of boundary commits (Default: off)"
msgstr ""
"no mostris els noms d'objectes de les comissions de frontera (per defecte: "
"desactivat)"
-#: builtin/blame.c:865
+#: builtin/blame.c:866
msgid "do not treat root commits as boundaries (Default: off)"
msgstr ""
"no tractis les comissions arrel com de frontera (per defecte: desactivat)"
-#: builtin/blame.c:866
+#: builtin/blame.c:867
msgid "show work cost statistics"
msgstr "mostra les estadístiques de preu de treball"
-#: builtin/blame.c:867 builtin/checkout.c:1536 builtin/clone.c:94
-#: builtin/commit-graph.c:75 builtin/commit-graph.c:228 builtin/fetch.c:180
+#: builtin/blame.c:868 builtin/checkout.c:1554 builtin/clone.c:98
+#: builtin/commit-graph.c:75 builtin/commit-graph.c:228 builtin/fetch.c:181
#: builtin/merge.c:301 builtin/multi-pack-index.c:103
#: builtin/multi-pack-index.c:154 builtin/multi-pack-index.c:180
#: builtin/multi-pack-index.c:208 builtin/pull.c:120 builtin/push.c:566
-#: builtin/send-pack.c:202
+#: builtin/remote.c:683 builtin/send-pack.c:202
msgid "force progress reporting"
msgstr "força l'informe de progrés"
-#: builtin/blame.c:868
+#: builtin/blame.c:869
msgid "show output score for blame entries"
msgstr "mostra la puntuació de sortida de les entrades «blame»"
-#: builtin/blame.c:869
+#: builtin/blame.c:870
msgid "show original filename (Default: auto)"
msgstr "mostra el nom de fitxer original (per defecte: automàtic)"
-#: builtin/blame.c:870
+#: builtin/blame.c:871
msgid "show original linenumber (Default: off)"
msgstr "mostra el número de línia original (per defecte: desactivat)"
-#: builtin/blame.c:871
+#: builtin/blame.c:872
msgid "show in a format designed for machine consumption"
msgstr "presenta en un format dissenyat per a ser consumit per una màquina"
-#: builtin/blame.c:872
+#: builtin/blame.c:873
msgid "show porcelain format with per-line commit information"
msgstr "mostra en format de porcellana amb informació de comissió per línia"
-#: builtin/blame.c:873
+#: builtin/blame.c:874
msgid "use the same output mode as git-annotate (Default: off)"
msgstr ""
"usa el mateix mode de sortida que git-annotate (per defecte: desactivat)"
-#: builtin/blame.c:874
+#: builtin/blame.c:875
msgid "show raw timestamp (Default: off)"
msgstr "mostra la marca de temps en cru (per defecte: desactivat)"
-#: builtin/blame.c:875
+#: builtin/blame.c:876
msgid "show long commit SHA1 (Default: off)"
msgstr "mostra l'SHA1 de comissió llarg (per defecte: desactivat)"
-#: builtin/blame.c:876
+#: builtin/blame.c:877
msgid "suppress author name and timestamp (Default: off)"
msgstr "omet el nom d'autor i la marca de temps (per defecte: desactivat)"
-#: builtin/blame.c:877
+#: builtin/blame.c:878
msgid "show author email instead of name (Default: off)"
msgstr ""
"mostra el correu electrònic de l'autor en comptes del nom (per defecte: "
"desactivat)"
-#: builtin/blame.c:878
+#: builtin/blame.c:879
msgid "ignore whitespace differences"
msgstr "ignora les diferències d'espai en blanc"
-#: builtin/blame.c:879 builtin/log.c:1838
+#: builtin/blame.c:880 builtin/log.c:1857
msgid "rev"
msgstr "rev"
-#: builtin/blame.c:879
+#: builtin/blame.c:880
msgid "ignore <rev> when blaming"
msgstr "ignora <rev> en fer «blame»"
-#: builtin/blame.c:880
+#: builtin/blame.c:881
msgid "ignore revisions from <file>"
msgstr "ignora les revisions de <fitxer>"
-#: builtin/blame.c:881
+#: builtin/blame.c:882
msgid "color redundant metadata from previous line differently"
msgstr ""
"acoloreix les metadades redundants de la línia anterior de manera diferent"
-#: builtin/blame.c:882
+#: builtin/blame.c:883
msgid "color lines by age"
msgstr "acoloreix les línies per antiguitat"
-#: builtin/blame.c:883
+#: builtin/blame.c:884
msgid "spend extra cycles to find better match"
msgstr "gasta cicles extres per a trobar una coincidència millor"
-#: builtin/blame.c:884
+#: builtin/blame.c:885
msgid "use revisions from <file> instead of calling git-rev-list"
msgstr "usa les revisions de <fitxer> en lloc d'invocar git-rev-list"
-#: builtin/blame.c:885
+#: builtin/blame.c:886
msgid "use <file>'s contents as the final image"
msgstr "usa els continguts de <fitxer> com a la imatge final"
-#: builtin/blame.c:886 builtin/blame.c:887
+#: builtin/blame.c:887 builtin/blame.c:888
msgid "score"
msgstr "puntuació"
-#: builtin/blame.c:886
+#: builtin/blame.c:887
msgid "find line copies within and across files"
msgstr "troba còpies de línia dins i a través dels fitxers"
-#: builtin/blame.c:887
+#: builtin/blame.c:888
msgid "find line movements within and across files"
msgstr "troba moviments de línia dins i a través dels fitxers"
-#: builtin/blame.c:888
+#: builtin/blame.c:889
msgid "range"
msgstr "rang"
-#: builtin/blame.c:889
+#: builtin/blame.c:890
msgid "process only line range <start>,<end> or function :<funcname>"
msgstr "processa només el rang <start>,<end> o la funció :<funcname>"
-#: builtin/blame.c:947
+#: builtin/blame.c:949
msgid "--progress can't be used with --incremental or porcelain formats"
msgstr ""
"no es pot usar --progress amb els formats --incremental o de porcellana"
@@ -11711,18 +11931,18 @@ msgstr ""
#. among various forms of relative timestamps, but
#. your language may need more or fewer display
#. columns.
-#: builtin/blame.c:998
+#: builtin/blame.c:1000
msgid "4 years, 11 months ago"
msgstr "fa 4 anys i 11 mesos"
-#: builtin/blame.c:1114
+#: builtin/blame.c:1116
#, c-format
msgid "file %s has only %lu line"
msgid_plural "file %s has only %lu lines"
msgstr[0] "el fitxer %s té només %lu línia"
msgstr[1] "el fitxer %s té només %lu línies"
-#: builtin/blame.c:1159
+#: builtin/blame.c:1161
msgid "Blaming lines"
msgstr "S'està fent un «blame»"
@@ -11731,30 +11951,38 @@ msgid "git branch [<options>] [-r | -a] [--merged] [--no-merged]"
msgstr "git branch [<opcions>] [-r | -a] [--merged | --no-merged]"
#: builtin/branch.c:30
-msgid "git branch [<options>] [-l] [-f] <branch-name> [<start-point>]"
-msgstr "git branch [<opcions>] [-l] [-f] <nom-de-branca> [<punt-inicial>]"
+msgid ""
+"git branch [<options>] [-f] [--recurse-submodules] <branch-name> [<start-"
+"point>]"
+msgstr ""
+"git branch [<options>] [-f] [--recurse-submodules] <branch-name> [<start-"
+"point>]"
#: builtin/branch.c:31
+msgid "git branch [<options>] [-l] [<pattern>...]"
+msgstr "git branch [<options>] [-l] [<pattern>...]"
+
+#: builtin/branch.c:32
msgid "git branch [<options>] [-r] (-d | -D) <branch-name>..."
msgstr "git branch [<opcions>] [-r] (-d | -D) <nom-de-branca>..."
-#: builtin/branch.c:32
+#: builtin/branch.c:33
msgid "git branch [<options>] (-m | -M) [<old-branch>] <new-branch>"
msgstr "git branch [<opcions>] (-m | -M) [<branca-antiga>] <branca-nova>"
-#: builtin/branch.c:33
+#: builtin/branch.c:34
msgid "git branch [<options>] (-c | -C) [<old-branch>] <new-branch>"
msgstr "git branch [<opcions>] (-c | -C) [<branca-antiga>] <branca-nova>"
-#: builtin/branch.c:34
+#: builtin/branch.c:35
msgid "git branch [<options>] [-r | -a] [--points-at]"
msgstr "git branch [<opcions>] [-r | -a] [--points-at]"
-#: builtin/branch.c:35
+#: builtin/branch.c:36
msgid "git branch [<options>] [-r | -a] [--format]"
msgstr "git branch [<opcions>] [-r | -a] [--format]"
-#: builtin/branch.c:153
+#: builtin/branch.c:165
#, c-format
msgid ""
"deleting branch '%s' that has been merged to\n"
@@ -11764,7 +11992,7 @@ msgstr ""
" fusionat a «%s», però encara no\n"
" s'ha fusionat a HEAD."
-#: builtin/branch.c:157
+#: builtin/branch.c:169
#, c-format
msgid ""
"not deleting branch '%s' that is not yet merged to\n"
@@ -11774,12 +12002,12 @@ msgstr ""
" s'ha fusionat a «%s», encara que està\n"
" fusionada a HEAD."
-#: builtin/branch.c:171
+#: builtin/branch.c:183
#, c-format
msgid "Couldn't look up commit object for '%s'"
msgstr "No s'ha pogut trobar l'objecte de comissió de «%s»"
-#: builtin/branch.c:175
+#: builtin/branch.c:187
#, c-format
msgid ""
"The branch '%s' is not fully merged.\n"
@@ -11788,115 +12016,115 @@ msgstr ""
"La branca «%s» no està totalment fusionada.\n"
"Si esteu segur que la voleu suprimir, executeu «git branch -D %s»."
-#: builtin/branch.c:188
+#: builtin/branch.c:200
msgid "Update of config-file failed"
msgstr "L'actualització del fitxer de configuració ha fallat"
-#: builtin/branch.c:223
+#: builtin/branch.c:235
msgid "cannot use -a with -d"
msgstr "no es pot usar -a amb -d"
-#: builtin/branch.c:230
+#: builtin/branch.c:242
msgid "Couldn't look up commit object for HEAD"
msgstr "No s'ha pogut trobar l'objecte de comissió de HEAD"
-#: builtin/branch.c:247
+#: builtin/branch.c:259
#, c-format
msgid "Cannot delete branch '%s' checked out at '%s'"
msgstr "No es pot suprimir la branca «%s» agafada a «%s»"
-#: builtin/branch.c:262
+#: builtin/branch.c:274
#, c-format
msgid "remote-tracking branch '%s' not found."
msgstr "no s'ha trobat la branca amb seguiment remot «%s»."
-#: builtin/branch.c:263
+#: builtin/branch.c:275
#, c-format
msgid "branch '%s' not found."
msgstr "no s'ha trobat la branca «%s»."
-#: builtin/branch.c:294
+#: builtin/branch.c:306
#, c-format
msgid "Deleted remote-tracking branch %s (was %s).\n"
msgstr "S'ha suprimit la branca amb seguiment remot %s (era %s).\n"
-#: builtin/branch.c:295
+#: builtin/branch.c:307
#, c-format
msgid "Deleted branch %s (was %s).\n"
msgstr "S'ha suprimit la branca %s (era %s).\n"
-#: builtin/branch.c:445 builtin/tag.c:63
+#: builtin/branch.c:457 builtin/tag.c:64
msgid "unable to parse format string"
msgstr "no s'ha pogut analitzar la cadena de format"
-#: builtin/branch.c:476
+#: builtin/branch.c:488
msgid "could not resolve HEAD"
msgstr "no s'ha pogut resoldre HEAD"
-#: builtin/branch.c:482
+#: builtin/branch.c:494
#, c-format
msgid "HEAD (%s) points outside of refs/heads/"
msgstr "HEAD (%s) apunta fora de refs/heads/"
-#: builtin/branch.c:497
+#: builtin/branch.c:509
#, c-format
msgid "Branch %s is being rebased at %s"
msgstr "S'està fent «rebase» en la branca %s a %s"
-#: builtin/branch.c:501
+#: builtin/branch.c:513
#, c-format
msgid "Branch %s is being bisected at %s"
msgstr "La branca %s s'està bisecant a %s"
-#: builtin/branch.c:518
+#: builtin/branch.c:530
msgid "cannot copy the current branch while not on any."
msgstr "no es pot copiar branca actual mentre no s'és a cap."
-#: builtin/branch.c:520
+#: builtin/branch.c:532
msgid "cannot rename the current branch while not on any."
msgstr "no es pot canviar el nom de la branca actual mentre no s'és a cap."
-#: builtin/branch.c:531
+#: builtin/branch.c:543
#, c-format
msgid "Invalid branch name: '%s'"
msgstr "Nom de branca no vàlid: «%s»"
-#: builtin/branch.c:560
+#: builtin/branch.c:572
msgid "Branch rename failed"
msgstr "El canvi de nom de branca ha fallat"
-#: builtin/branch.c:562
+#: builtin/branch.c:574
msgid "Branch copy failed"
msgstr "La còpia de la branca ha fallat"
-#: builtin/branch.c:566
+#: builtin/branch.c:578
#, c-format
msgid "Created a copy of a misnamed branch '%s'"
msgstr "S'ha creat una còpia d'una branca mal anomenada «%s»"
-#: builtin/branch.c:569
+#: builtin/branch.c:581
#, c-format
msgid "Renamed a misnamed branch '%s' away"
msgstr "S'ha canviat el nom de la branca mal anomenada «%s»"
-#: builtin/branch.c:575
+#: builtin/branch.c:587
#, c-format
msgid "Branch renamed to %s, but HEAD is not updated!"
msgstr "S'ha canviat el nom de la branca a %s, però HEAD no està actualitzat!"
-#: builtin/branch.c:584
+#: builtin/branch.c:596
msgid "Branch is renamed, but update of config-file failed"
msgstr ""
"La branca està canviada de nom, però l'actualització del fitxer de "
"configuració ha fallat"
-#: builtin/branch.c:586
+#: builtin/branch.c:598
msgid "Branch is copied, but update of config-file failed"
msgstr ""
"La branca està copiada, però l'actualització del fitxer de configuració ha "
"fallat"
-#: builtin/branch.c:602
+#: builtin/branch.c:614
#, c-format
msgid ""
"Please edit the description for the branch\n"
@@ -11907,176 +12135,193 @@ msgstr ""
" %s\n"
"S'eliminaran les línies que comencin amb «%c».\n"
-#: builtin/branch.c:637
+#: builtin/branch.c:651
msgid "Generic options"
msgstr "Opcions genèriques"
-#: builtin/branch.c:639
+#: builtin/branch.c:653
msgid "show hash and subject, give twice for upstream branch"
msgstr "mostra el hash i l'assumpte, doneu dues vegades per a la branca font"
-#: builtin/branch.c:640
+#: builtin/branch.c:654
msgid "suppress informational messages"
msgstr "omet els missatges informatius"
-#: builtin/branch.c:642
+#: builtin/branch.c:656 builtin/checkout.c:1571
+#: builtin/submodule--helper.c:3077
msgid "set branch tracking configuration"
msgstr "estableix la configuració del seguiment de la branca"
-#: builtin/branch.c:645
+#: builtin/branch.c:659
msgid "do not use"
msgstr "no usar"
-#: builtin/branch.c:647
+#: builtin/branch.c:661
msgid "upstream"
msgstr "font"
-#: builtin/branch.c:647
+#: builtin/branch.c:661
msgid "change the upstream info"
msgstr "canvia la informació de font"
-#: builtin/branch.c:648
+#: builtin/branch.c:662
msgid "unset the upstream info"
msgstr "treu la informació de la font"
-#: builtin/branch.c:649
+#: builtin/branch.c:663
msgid "use colored output"
msgstr "usa sortida amb colors"
-#: builtin/branch.c:650
+#: builtin/branch.c:664
msgid "act on remote-tracking branches"
msgstr "actua en branques amb seguiment remot"
-#: builtin/branch.c:652 builtin/branch.c:654
+#: builtin/branch.c:666 builtin/branch.c:668
msgid "print only branches that contain the commit"
msgstr "imprimeix només les branques que continguin la comissió"
-#: builtin/branch.c:653 builtin/branch.c:655
+#: builtin/branch.c:667 builtin/branch.c:669
msgid "print only branches that don't contain the commit"
msgstr "imprimeix només les branques que no continguin la comissió"
-#: builtin/branch.c:658
+#: builtin/branch.c:672
msgid "Specific git-branch actions:"
msgstr "Accions de git-branch específiques:"
-#: builtin/branch.c:659
+#: builtin/branch.c:673
msgid "list both remote-tracking and local branches"
msgstr "llista les branques amb seguiment remot i les locals"
-#: builtin/branch.c:661
+#: builtin/branch.c:675
msgid "delete fully merged branch"
msgstr "suprimeix la branca si està completament fusionada"
-#: builtin/branch.c:662
+#: builtin/branch.c:676
msgid "delete branch (even if not merged)"
msgstr "suprimeix la branca (encara que no estigui fusionada)"
-#: builtin/branch.c:663
+#: builtin/branch.c:677
msgid "move/rename a branch and its reflog"
msgstr "mou/canvia de nom una branca i el seu registre de referència"
-#: builtin/branch.c:664
+#: builtin/branch.c:678
msgid "move/rename a branch, even if target exists"
msgstr "mou/canvia de nom una branca, encara que el destí existeixi"
-#: builtin/branch.c:665
+#: builtin/branch.c:679
msgid "copy a branch and its reflog"
msgstr "copia una branca i el seu registre de referència"
-#: builtin/branch.c:666
+#: builtin/branch.c:680
msgid "copy a branch, even if target exists"
msgstr "copia una branca, encara que el destí existeixi"
-#: builtin/branch.c:667
+#: builtin/branch.c:681
msgid "list branch names"
msgstr "llista els noms de branca"
-#: builtin/branch.c:668
+#: builtin/branch.c:682
msgid "show current branch name"
msgstr "mostra el nom de la branca actual"
-#: builtin/branch.c:669
+#: builtin/branch.c:683 builtin/submodule--helper.c:3075
msgid "create the branch's reflog"
msgstr "crea el registre de referència de la branca"
-#: builtin/branch.c:671
+#: builtin/branch.c:685
msgid "edit the description for the branch"
msgstr "edita la descripció de la branca"
-#: builtin/branch.c:672
+#: builtin/branch.c:686
msgid "force creation, move/rename, deletion"
msgstr "força creació, moviment/canvi de nom, supressió"
-#: builtin/branch.c:673
+#: builtin/branch.c:687
msgid "print only branches that are merged"
msgstr "imprimeix només les branques que s'han fusionat"
-#: builtin/branch.c:674
+#: builtin/branch.c:688
msgid "print only branches that are not merged"
msgstr "imprimeix només les branques que no s'han fusionat"
-#: builtin/branch.c:675
+#: builtin/branch.c:689
msgid "list branches in columns"
msgstr "llista les branques en columnes"
-#: builtin/branch.c:677 builtin/for-each-ref.c:45 builtin/notes.c:413
+#: builtin/branch.c:691 builtin/for-each-ref.c:45 builtin/notes.c:413
#: builtin/notes.c:416 builtin/notes.c:579 builtin/notes.c:582
-#: builtin/tag.c:475
+#: builtin/tag.c:476
msgid "object"
msgstr "objecte"
-#: builtin/branch.c:678
+#: builtin/branch.c:692
msgid "print only branches of the object"
msgstr "imprimeix només les branques de l'objecte"
-#: builtin/branch.c:679 builtin/for-each-ref.c:51 builtin/tag.c:482
+#: builtin/branch.c:693 builtin/for-each-ref.c:51 builtin/tag.c:483
msgid "sorting and filtering are case insensitive"
msgstr "l'ordenació i el filtratge distingeixen entre majúscules i minúscules"
-#: builtin/branch.c:680 builtin/for-each-ref.c:41 builtin/tag.c:480
-#: builtin/verify-tag.c:38
+#: builtin/branch.c:694 builtin/ls-files.c:667
+msgid "recurse through submodules"
+msgstr "inclou recursivament als submòduls"
+
+#: builtin/branch.c:695 builtin/for-each-ref.c:41 builtin/ls-tree.c:358
+#: builtin/tag.c:481 builtin/verify-tag.c:38
msgid "format to use for the output"
msgstr "format a usar en la sortida"
-#: builtin/branch.c:703 builtin/clone.c:678
+#: builtin/branch.c:718 builtin/clone.c:684
msgid "HEAD not found below refs/heads!"
msgstr "HEAD no trobat sota refs/heads!"
-#: builtin/branch.c:742 builtin/branch.c:798 builtin/branch.c:807
+#: builtin/branch.c:739
+msgid ""
+"branch with --recurse-submodules can only be used if "
+"submodule.propagateBranches is enabled"
+msgstr ""
+"la branca amb --recurse-submodules només es pot utilitzar si "
+"submodule.propagateBranches està habilitat"
+
+#: builtin/branch.c:741
+msgid "--recurse-submodules can only be used to create branches"
+msgstr "--recurse-submodules només es pot utilitzar per a crear branques"
+
+#: builtin/branch.c:770 builtin/branch.c:826 builtin/branch.c:835
msgid "branch name required"
msgstr "cal el nom de branca"
-#: builtin/branch.c:774
+#: builtin/branch.c:802
msgid "Cannot give description to detached HEAD"
msgstr "No es pot donar descripció a un HEAD separat"
-#: builtin/branch.c:779
+#: builtin/branch.c:807
msgid "cannot edit description of more than one branch"
msgstr "no es pot editar la descripció de més d'una branca"
-#: builtin/branch.c:786
+#: builtin/branch.c:814
#, c-format
msgid "No commit on branch '%s' yet."
msgstr "Encara no hi ha cap comissió en la branca «%s»."
-#: builtin/branch.c:789
+#: builtin/branch.c:817
#, c-format
msgid "No branch named '%s'."
msgstr "No hi ha cap branca amb nom «%s»."
-#: builtin/branch.c:804
+#: builtin/branch.c:832
msgid "too many branches for a copy operation"
msgstr "hi ha massa branques per a una operació de còpia"
-#: builtin/branch.c:813
+#: builtin/branch.c:841
msgid "too many arguments for a rename operation"
msgstr "hi ha massa arguments per a una operació de canvi de nom"
-#: builtin/branch.c:818
+#: builtin/branch.c:846
msgid "too many arguments to set new upstream"
msgstr "hi ha massa arguments per a establir una nova font"
-#: builtin/branch.c:822
+#: builtin/branch.c:850
#, c-format
msgid ""
"could not set upstream of HEAD to %s when it does not point to any branch."
@@ -12084,31 +12329,31 @@ msgstr ""
"no s'ha pogut establir la font de HEAD com a %s quan no assenyala cap "
"branca."
-#: builtin/branch.c:825 builtin/branch.c:848
+#: builtin/branch.c:853 builtin/branch.c:873
#, c-format
msgid "no such branch '%s'"
msgstr "no existeix la branca «%s»"
-#: builtin/branch.c:829
+#: builtin/branch.c:857
#, c-format
msgid "branch '%s' does not exist"
msgstr "la branca «%s» no existeix"
-#: builtin/branch.c:842
+#: builtin/branch.c:867
msgid "too many arguments to unset upstream"
msgstr "hi ha massa arguments per a desassignar la font"
-#: builtin/branch.c:846
+#: builtin/branch.c:871
msgid "could not unset upstream of HEAD when it does not point to any branch."
msgstr ""
"no s'ha pogut desassignar la font de HEAD perquè no assenyala cap branca."
-#: builtin/branch.c:852
+#: builtin/branch.c:877
#, c-format
msgid "Branch '%s' has no upstream information"
msgstr "La branca «%s» no té informació de font"
-#: builtin/branch.c:862
+#: builtin/branch.c:890
msgid ""
"The -a, and -r, options to 'git branch' do not take a branch name.\n"
"Did you mean to use: -a|-r --list <pattern>?"
@@ -12116,7 +12361,7 @@ msgstr ""
"Les opcions -a i -r a «git branch» no prenen un nom de branca.\n"
"Volíeu usar -a|-r --list <pattern>?"
-#: builtin/branch.c:866
+#: builtin/branch.c:894
msgid ""
"the '--set-upstream' option is no longer supported. Please use '--track' or "
"'--set-upstream-to' instead."
@@ -12231,19 +12476,19 @@ msgstr "git bundle list-heads <fitxer> [<refname>...]"
msgid "git bundle unbundle <file> [<refname>...]"
msgstr "git bundle unbundle <fitxer> [<refname>...]"
-#: builtin/bundle.c:65 builtin/pack-objects.c:3876
+#: builtin/bundle.c:65 builtin/pack-objects.c:3899
msgid "do not show progress meter"
msgstr "no mostris l'indicador de progrés"
-#: builtin/bundle.c:67 builtin/bundle.c:167 builtin/pack-objects.c:3878
+#: builtin/bundle.c:67 builtin/bundle.c:168 builtin/pack-objects.c:3901
msgid "show progress meter"
msgstr "mostra l'indicador de progrés"
-#: builtin/bundle.c:69 builtin/pack-objects.c:3880
+#: builtin/bundle.c:69 builtin/pack-objects.c:3903
msgid "show progress meter during object writing phase"
msgstr "mostra l'indicador de progrés durant la fase d'escriptura d'objectes"
-#: builtin/bundle.c:72 builtin/pack-objects.c:3883
+#: builtin/bundle.c:72 builtin/pack-objects.c:3906
msgid "similar to --all-progress when progress meter is shown"
msgstr "similar a --all-progress quan l'indicador de progrés es mostra"
@@ -12255,116 +12500,243 @@ msgstr "especifica la versió del format del farcell"
msgid "Need a repository to create a bundle."
msgstr "Cal un repositori per a crear un farcell."
-#: builtin/bundle.c:107
+#: builtin/bundle.c:108
msgid "do not show bundle details"
msgstr "no mostris els detalls del farcell"
-#: builtin/bundle.c:126
+#: builtin/bundle.c:127
#, c-format
msgid "%s is okay\n"
msgstr "%s està bé\n"
-#: builtin/bundle.c:182
+#: builtin/bundle.c:183
msgid "Need a repository to unbundle."
msgstr "Cal un repositori per a desfer un farcell."
-#: builtin/bundle.c:185
+#: builtin/bundle.c:186
msgid "Unbundling objects"
msgstr "S'estan desagrupant objectes"
-#: builtin/bundle.c:219 builtin/remote.c:1733
+#: builtin/bundle.c:220 builtin/remote.c:1758
#, c-format
msgid "Unknown subcommand: %s"
msgstr "Subordre desconeguda: %s"
-#: builtin/cat-file.c:622
-msgid ""
-"git cat-file (-t [--allow-unknown-type] | -s [--allow-unknown-type] | -e | "
-"-p | <type> | --textconv | --filters) [--path=<path>] <object>"
-msgstr ""
-"git cat-file (-t [--allow-unknown-type] | -s [--allow-unknown-type] | -e | "
-"-p | <tipus> | --textconv | --filters [--path=<camí>]) <objecte>"
+#: builtin/cat-file.c:568
+msgid "flush is only for --buffer mode"
+msgstr "flush només és per al mode --buffer"
+
+#: builtin/cat-file.c:612
+msgid "empty command in input"
+msgstr "ordre buida en l'entrada"
+
+#: builtin/cat-file.c:614
+#, c-format, fuzzy
+msgid "whitespace before command: '%s'"
+msgstr "espai en blanc abans de l'ordre: '%s'"
#: builtin/cat-file.c:623
-msgid ""
-"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]"
+#, c-format
+msgid "%s requires arguments"
+msgstr "%s requereix arguments"
-#: builtin/cat-file.c:644
-msgid "only one batch option may be specified"
-msgstr "només es pot especificar una opció per lots"
+#: builtin/cat-file.c:628
+#, c-format
+msgid "%s takes no arguments"
+msgstr "%s no accepta cap valor"
-#: builtin/cat-file.c:662
-msgid "<type> can be one of: blob, tree, commit, tag"
-msgstr "<tipus> pot ser un de: blob, tree, commit, tag"
+#: builtin/cat-file.c:636
+#, c-format
+msgid "unknown command: '%s'"
+msgstr "ordre desconeguda: «%s»"
-#: builtin/cat-file.c:663
-msgid "show object type"
-msgstr "mostra el tipus de l'objecte"
+#: builtin/cat-file.c:795
+msgid "only one batch option may be specified"
+msgstr "només es pot especificar una opció per lots"
-#: builtin/cat-file.c:664
-msgid "show object size"
-msgstr "mostra la mida de l'objecte"
+#: builtin/cat-file.c:824
+msgid "git cat-file <type> <object>"
+msgstr "git cat-file <type> <object>"
-#: builtin/cat-file.c:666
-msgid "exit with zero when there's no error"
-msgstr "surt amb zero quan no hi ha error"
+#: builtin/cat-file.c:825
+msgid "git cat-file (-e | -p) <object>"
+msgstr "git cat-file (-e | -p) <object>"
-#: builtin/cat-file.c:667
-msgid "pretty-print object's content"
-msgstr "imprimeix bellament el contingut de l'objecte"
+#: builtin/cat-file.c:826
+msgid "git cat-file (-t | -s) [--allow-unknown-type] <object>"
+msgstr "git cat-file (-t | -s) [--allow-unknown-type] <object>"
-#: builtin/cat-file.c:669
-msgid "for blob objects, run textconv on object's content"
+#: builtin/cat-file.c:827
+msgid ""
+"git cat-file (--batch | --batch-check | --batch-command) [--batch-all-objects]\n"
+" [--buffer] [--follow-symlinks] [--unordered]\n"
+" [--textconv | --filters]"
msgstr ""
-"en els objectes de blob, executa textconv en el contingut de l'objecte"
+"git cat-file (--batch | --batch-check | --batch-command) [--batch-all-objects]\n"
+" [--buffer] [--follow-symlinks] [--unordered]\n"
+" [--textconv | --filters]"
-#: builtin/cat-file.c:671
-msgid "for blob objects, run filters on object's content"
+#: builtin/cat-file.c:830
+msgid ""
+"git cat-file (--textconv | --filters)\n"
+" [<rev>:<path|tree-ish> | --path=<path|tree-ish> <rev>]"
msgstr ""
-"en els objectes de blob, executa els filtres en el contingut de l'objecte"
+"git cat-file (--textconv | --filters)\n"
+" [<rev>:<path|tree-ish> | --path=<path|tree-ish> <rev>]"
-#: builtin/cat-file.c:672
-msgid "blob"
-msgstr "blob"
+#: builtin/cat-file.c:836
+#, fuzzy
+msgid "Check object existence or emit object contents"
+msgstr "Comprova l'existència de l'objecte o emet el contingut de l'objecte"
+
+#: builtin/cat-file.c:838
+#, fuzzy
+msgid "check if <object> exists"
+msgstr "comprova si <object> existeix"
+
+#: builtin/cat-file.c:839
+#, fuzzy
+msgid "pretty-print <object> content"
+msgstr "empremta de <object> contingut"
+
+#: builtin/cat-file.c:841
+#, fuzzy
+msgid "Emit [broken] object attributes"
+msgstr "Emet els atributs de l'objecte objectbroken]"
-#: builtin/cat-file.c:673
-msgid "use a specific path for --textconv/--filters"
-msgstr "usa un camí específic per a --textconv/--filters"
+#: builtin/cat-file.c:842
+#, fuzzy
+msgid "show object type (one of 'blob', 'tree', 'commit', 'tag', ...)"
+msgstr ""
+"mostra el tipus d'objecte (un de 'blob', 'tree', 'commit', 'tag', ...)"
+
+#: builtin/cat-file.c:843
+msgid "show object size"
+msgstr "mostra la mida de l'objecte"
-#: builtin/cat-file.c:675
+#: builtin/cat-file.c:845
msgid "allow -s and -t to work with broken/corrupt objects"
msgstr "permet que -s i -t funcionin amb objectes trencats/malmesos"
-#: builtin/cat-file.c:676
+#: builtin/cat-file.c:847
+#, fuzzy
+msgid "Batch objects requested on stdin (or --batch-all-objects)"
+msgstr "Objectes lots sol·licitats a stdin (o --batch-all-objects)"
+
+#: builtin/cat-file.c:849
+#, fuzzy
+msgid "show full <object> or <rev> contents"
+msgstr "mostra el contingut complet de <object> o <rev>"
+
+#: builtin/cat-file.c:853
+#, fuzzy
+msgid "like --batch, but don't emit <contents>"
+msgstr "com --batch, però no emeti <contents>"
+
+#: builtin/cat-file.c:857
+#, fuzzy
+msgid "read commands from stdin"
+msgstr "llegeix les ordres de stdin"
+
+#: builtin/cat-file.c:861
+#, fuzzy
+msgid "with --batch[-check]: ignores stdin, batches all known objects"
+msgstr "amb --batch--check:: ignora stdin, bateja tots els objectes coneguts"
+
+#: builtin/cat-file.c:863
+#, fuzzy
+msgid "Change or optimize batch output"
+msgstr "Canvia o optimitza la sortida per lots"
+
+#: builtin/cat-file.c:864
msgid "buffer --batch output"
msgstr "posa la sortida de --batch en memòria intermèdia"
-#: builtin/cat-file.c:678
-msgid "show info and content of objects fed from the standard input"
-msgstr ""
-"mostra la informació i contingut dels objectes rebuts de l'entrada estàndard"
+#: builtin/cat-file.c:866
+#, fuzzy
+msgid "follow in-tree symlinks"
+msgstr "segueix els enllaços simbòlics en l'arbre"
-#: builtin/cat-file.c:682
-msgid "show info about objects fed from the standard input"
-msgstr "mostra informació sobre els objectes rebuts de l'entrada estàndard"
+#: builtin/cat-file.c:868
+#, fuzzy
+msgid "do not order objects before emitting them"
+msgstr "no ordena objectes abans d'emetre'ls"
-#: builtin/cat-file.c:686
-msgid "follow in-tree symlinks (used with --batch or --batch-check)"
+#: builtin/cat-file.c:870
+#, fuzzy
+msgid ""
+"Emit object (blob or tree) with conversion or filter (stand-alone, or with "
+"batch)"
msgstr ""
-"segueix els enllaços simbòlics en l'arbre (s'usa amb --batch o --batch-"
-"check)"
+"Emet l'objecte (blob o arbre) amb conversió o filtre (stand-alone, o amb "
+"lot)"
+
+#: builtin/cat-file.c:872
+#, fuzzy
+msgid "run textconv on object's content"
+msgstr "executar textconv al contingut de l'objecte"
+
+#: builtin/cat-file.c:874
+#, fuzzy
+msgid "run filters on object's content"
+msgstr "executa els filtres al contingut de l'objecte"
+
+#: builtin/cat-file.c:875
+msgid "blob|tree"
+msgstr "blob|tree"
+
+#: builtin/cat-file.c:876
+#, fuzzy
+msgid "use a <path> for (--textconv | --filters); Not with 'batch'"
+msgstr "useu un <path> per a (--textconv | --filters); No amb 'batch'"
+
+#: builtin/cat-file.c:894
+#, c-format
+msgid "'%s=<%s>' needs '%s' or '%s'"
+msgstr "«%s=<%s>» necessita «%s» o «%s»"
+
+#: builtin/cat-file.c:896
+msgid "path|tree-ish"
+msgstr "path|tree-ish"
+
+#: builtin/cat-file.c:903 builtin/cat-file.c:906 builtin/cat-file.c:909
+#, c-format
+msgid "'%s' requires a batch mode"
+msgstr "%s requereix un mode batch"
-#: builtin/cat-file.c:688
-msgid "show all objects with --batch or --batch-check"
-msgstr "mostra tots els objectes amb --batch o --batch-check"
+#: builtin/cat-file.c:921
+#, c-format
+msgid "'-%c' is incompatible with batch mode"
+msgstr "«-%c» és incompatible amb el model batch"
-#: builtin/cat-file.c:690
-msgid "do not order --batch-all-objects output"
-msgstr "no ordenar la sortida de --batch-all-objects"
+#: builtin/cat-file.c:924
+msgid "batch modes take no arguments"
+msgstr "el mode batch no accepta cap argument"
+
+#: builtin/cat-file.c:932 builtin/cat-file.c:935
+#, c-format
+msgid "<rev> required with '%s'"
+msgstr "<rev> requerida amb «%s»"
+
+#: builtin/cat-file.c:938
+#, c-format
+msgid "<object> required with '-%c'"
+msgstr "<object> requerit amb «-%c»"
+
+#: builtin/cat-file.c:943 builtin/notes.c:374 builtin/notes.c:429
+#: builtin/notes.c:507 builtin/notes.c:519 builtin/notes.c:596
+#: builtin/notes.c:663 builtin/notes.c:813 builtin/notes.c:965
+#: builtin/notes.c:987 builtin/prune-packed.c:25 builtin/receive-pack.c:2489
+#: builtin/tag.c:592
+msgid "too many arguments"
+msgstr "hi ha massa arguments"
+
+#: builtin/cat-file.c:947
+#, c-format, fuzzy
+msgid "only two arguments allowed in <type> <object> mode, not %d"
+msgstr ""
+"només es permeten dos arguments en el mode <type> <object>, no en un "
+"percentatge"
#: builtin/check-attr.c:13
msgid "git check-attr [-a | --all | <attr>...] [--] <pathname>..."
@@ -12382,7 +12754,7 @@ msgstr "informa de tots els atributs establerts en el fitxer"
msgid "use .gitattributes only from the index"
msgstr "usa .gitattributes només des de l'índex"
-#: builtin/check-attr.c:23 builtin/check-ignore.c:25 builtin/hash-object.c:100
+#: builtin/check-attr.c:23 builtin/check-ignore.c:25 builtin/hash-object.c:101
msgid "read file names from stdin"
msgstr "llegeix els noms de fitxer de stdin"
@@ -12390,8 +12762,8 @@ msgstr "llegeix els noms de fitxer de stdin"
msgid "terminate input and output records by a NUL character"
msgstr "acaba els registres d'entrada i de sortida amb un caràcter NUL"
-#: builtin/check-ignore.c:21 builtin/checkout.c:1532 builtin/gc.c:550
-#: builtin/worktree.c:493
+#: builtin/check-ignore.c:21 builtin/checkout.c:1550 builtin/gc.c:550
+#: builtin/worktree.c:565
msgid "suppress progress reporting"
msgstr "omet els informes de progrés"
@@ -12448,163 +12820,168 @@ msgstr "no hi ha contactes especificats"
msgid "git checkout--worker [<options>]"
msgstr "git checkout--worker [<opcions>]"
-#: builtin/checkout--worker.c:118 builtin/checkout-index.c:201
-#: builtin/column.c:31 builtin/column.c:32 builtin/submodule--helper.c:1864
-#: builtin/submodule--helper.c:1867 builtin/submodule--helper.c:1875
-#: builtin/submodule--helper.c:2511 builtin/submodule--helper.c:2577
-#: builtin/worktree.c:491 builtin/worktree.c:728
+#: builtin/checkout--worker.c:118 builtin/checkout-index.c:235
+#: builtin/column.c:31 builtin/column.c:32 builtin/submodule--helper.c:1878
+#: builtin/submodule--helper.c:1881 builtin/submodule--helper.c:1889
+#: builtin/submodule--helper.c:2716 builtin/worktree.c:563
+#: builtin/worktree.c:808
msgid "string"
msgstr "cadena"
-#: builtin/checkout--worker.c:119 builtin/checkout-index.c:202
+#: builtin/checkout--worker.c:119 builtin/checkout-index.c:236
msgid "when creating files, prepend <string>"
msgstr "en crear fitxers, anteposa <cadena>"
-#: builtin/checkout-index.c:152
+#: builtin/checkout-index.c:184
msgid "git checkout-index [<options>] [--] [<file>...]"
msgstr "git checkout-index [<opcions>] [--] [<fitxer>...]"
-#: builtin/checkout-index.c:169
+#: builtin/checkout-index.c:201
msgid "stage should be between 1 and 3 or all"
msgstr "«stage» ha de ser entre 1 i 3 o all"
-#: builtin/checkout-index.c:187
+#: builtin/checkout-index.c:219
msgid "check out all files in the index"
msgstr "agafa tots els fitxers en l'índex"
-#: builtin/checkout-index.c:188
+#: builtin/checkout-index.c:221
+#, fuzzy
+msgid "do not skip files with skip-worktree set"
+msgstr "no ometis els fitxers amb el conjunt d'arbres de salt"
+
+#: builtin/checkout-index.c:222
msgid "force overwrite of existing files"
msgstr "força la sobreescriptura de fitxers existents"
-#: builtin/checkout-index.c:190
+#: builtin/checkout-index.c:224
msgid "no warning for existing files and files not in index"
msgstr ""
"cap advertència per a fitxers existents i fitxers que no siguin a l'índex"
-#: builtin/checkout-index.c:192
+#: builtin/checkout-index.c:226
msgid "don't checkout new files"
msgstr "no agafis fitxers nous"
-#: builtin/checkout-index.c:194
+#: builtin/checkout-index.c:228
msgid "update stat information in the index file"
msgstr "actualitza la informació d'estadístiques en el fitxer d'índex"
-#: builtin/checkout-index.c:198
+#: builtin/checkout-index.c:232
msgid "read list of paths from the standard input"
msgstr "llegeix la llista de camins des de l'entrada estàndard"
-#: builtin/checkout-index.c:200
+#: builtin/checkout-index.c:234
msgid "write the content to temporary files"
msgstr "escriu el contingut a fitxers temporals"
-#: builtin/checkout-index.c:204
+#: builtin/checkout-index.c:238
msgid "copy out the files from named stage"
msgstr "copia els fitxers des de «stage» amb nom"
-#: builtin/checkout.c:33
+#: builtin/checkout.c:34
msgid "git checkout [<options>] <branch>"
msgstr "git checkout [<opcions>] <branca>"
-#: builtin/checkout.c:34
+#: builtin/checkout.c:35
msgid "git checkout [<options>] [<branch>] -- <file>..."
msgstr "git checkout [<opcions>] [<branca>] -- <fitxer>..."
-#: builtin/checkout.c:39
+#: builtin/checkout.c:40
msgid "git switch [<options>] [<branch>]"
msgstr "git switch [<options>] [<branch>]"
-#: builtin/checkout.c:44
+#: builtin/checkout.c:45
msgid "git restore [<options>] [--source=<branch>] <file>..."
msgstr "git restore [<opcions>] [--source=<branca>] <fitxer>..."
-#: builtin/checkout.c:198 builtin/checkout.c:237
+#: builtin/checkout.c:199 builtin/checkout.c:238
#, c-format
msgid "path '%s' does not have our version"
msgstr "el camí «%s» no té la nostra versió"
-#: builtin/checkout.c:200 builtin/checkout.c:239
+#: builtin/checkout.c:201 builtin/checkout.c:240
#, c-format
msgid "path '%s' does not have their version"
msgstr "el camí «%s» no té la seva versió"
-#: builtin/checkout.c:216
+#: builtin/checkout.c:217
#, c-format
msgid "path '%s' does not have all necessary versions"
msgstr "el camí «%s» no té totes les versions necessàries"
-#: builtin/checkout.c:269
+#: builtin/checkout.c:271
#, c-format
msgid "path '%s' does not have necessary versions"
msgstr "el camí «%s» no té les versions necessàries"
-#: builtin/checkout.c:286
+#: builtin/checkout.c:291
#, c-format
msgid "path '%s': cannot merge"
msgstr "camí «%s»: no es pot fusionar"
-#: builtin/checkout.c:302
+#: builtin/checkout.c:307
#, c-format
msgid "Unable to add merge result for '%s'"
msgstr "No s'ha pogut afegir el resultat de fusió per a «%s»"
-#: builtin/checkout.c:419
+#: builtin/checkout.c:424
#, c-format
msgid "Recreated %d merge conflict"
msgid_plural "Recreated %d merge conflicts"
msgstr[0] "Recreat un conflicte de fusió"
msgstr[1] "Recreats %d conflictes de fusió"
-#: builtin/checkout.c:424
+#: builtin/checkout.c:429
#, c-format
msgid "Updated %d path from %s"
msgid_plural "Updated %d paths from %s"
msgstr[0] "S'ha actualitzat %d camí des de %s"
msgstr[1] "S'han actualitzat %d camins des de %s"
-#: builtin/checkout.c:431
+#: builtin/checkout.c:436
#, c-format
msgid "Updated %d path from the index"
msgid_plural "Updated %d paths from the index"
msgstr[0] "S'ha actualitzat un camí des de l'índex"
msgstr[1] "S'ha actualitzat %d camins des de l'índex"
-#: builtin/checkout.c:454 builtin/checkout.c:457 builtin/checkout.c:460
-#: builtin/checkout.c:464
+#: builtin/checkout.c:459 builtin/checkout.c:462 builtin/checkout.c:465
+#: builtin/checkout.c:469
#, c-format
msgid "'%s' cannot be used with updating paths"
msgstr "«%s» no es pot usar amb actualització de camins"
-#: builtin/checkout.c:474
+#: builtin/checkout.c:479
#, c-format
msgid "Cannot update paths and switch to branch '%s' at the same time."
msgstr ""
"No es poden actualitzar els camins i canviar a la branca «%s» a la vegada."
-#: builtin/checkout.c:478
+#: builtin/checkout.c:483
#, c-format
msgid "neither '%s' or '%s' is specified"
msgstr "no s'ha especificat ni «%s» ni «%s»"
-#: builtin/checkout.c:482
+#: builtin/checkout.c:487
#, c-format
msgid "'%s' must be used when '%s' is not specified"
msgstr "«%s» s'ha d'utilitzar quan no s'especifica «%s»"
-#: builtin/checkout.c:487 builtin/checkout.c:492
+#: builtin/checkout.c:492 builtin/checkout.c:497
#, c-format
msgid "'%s' or '%s' cannot be used with %s"
msgstr "«%s» o «%s» no poden utilitzar-se amb %s"
-#: builtin/checkout.c:566 builtin/checkout.c:573
+#: builtin/checkout.c:571 builtin/checkout.c:578
#, c-format
msgid "path '%s' is unmerged"
msgstr "el camí «%s» està sense fusionar"
-#: builtin/checkout.c:747
+#: builtin/checkout.c:753
msgid "you need to resolve your current index first"
msgstr "heu de primer resoldre el vostre índex actual"
-#: builtin/checkout.c:797
+#: builtin/checkout.c:809
#, c-format
msgid ""
"cannot continue with staged changes in the following files:\n"
@@ -12613,50 +12990,50 @@ msgstr ""
"no es pot continuar amb els canvis «staged» als fitxers següents:\n"
"%s"
-#: builtin/checkout.c:890
+#: builtin/checkout.c:902
#, c-format
msgid "Can not do reflog for '%s': %s\n"
msgstr "No es pot fer reflog per a «%s»: %s\n"
-#: builtin/checkout.c:934
+#: builtin/checkout.c:947
msgid "HEAD is now at"
msgstr "HEAD ara és a"
-#: builtin/checkout.c:938 builtin/clone.c:609 t/helper/test-fast-rebase.c:203
+#: builtin/checkout.c:951 builtin/clone.c:615 t/helper/test-fast-rebase.c:203
msgid "unable to update HEAD"
msgstr "no s'ha pogut actualitzar HEAD"
-#: builtin/checkout.c:942
+#: builtin/checkout.c:955
#, c-format
msgid "Reset branch '%s'\n"
msgstr "Restableix la branca «%s»\n"
-#: builtin/checkout.c:945
+#: builtin/checkout.c:958
#, c-format
msgid "Already on '%s'\n"
msgstr "Ja esteu en «%s»\n"
-#: builtin/checkout.c:949
+#: builtin/checkout.c:962
#, c-format
msgid "Switched to and reset branch '%s'\n"
msgstr "S'ha canviat i restablert a la branca «%s»\n"
-#: builtin/checkout.c:951 builtin/checkout.c:1388
+#: builtin/checkout.c:964 builtin/checkout.c:1398
#, c-format
msgid "Switched to a new branch '%s'\n"
msgstr "S'ha canviat a la branca nova «%s»\n"
-#: builtin/checkout.c:953
+#: builtin/checkout.c:966
#, c-format
msgid "Switched to branch '%s'\n"
msgstr "S'ha canviat a la branca «%s»\n"
-#: builtin/checkout.c:1004
+#: builtin/checkout.c:1017
#, c-format
msgid " ... and %d more.\n"
msgstr " ... i %d més.\n"
-#: builtin/checkout.c:1010
+#: builtin/checkout.c:1023
#, c-format
msgid ""
"Warning: you are leaving %d commit behind, not connected to\n"
@@ -12679,7 +13056,7 @@ msgstr[1] ""
"\n"
"%s\n"
-#: builtin/checkout.c:1029
+#: builtin/checkout.c:1042
#, c-format
msgid ""
"If you want to keep it by creating a new branch, this may be a good time\n"
@@ -12706,19 +13083,19 @@ msgstr[1] ""
" git branch <nom-de-branca-nova> %s\n"
"\n"
-#: builtin/checkout.c:1064
+#: builtin/checkout.c:1077
msgid "internal error in revision walk"
msgstr "error intern en el passeig per revisions"
-#: builtin/checkout.c:1068
+#: builtin/checkout.c:1081
msgid "Previous HEAD position was"
msgstr "La posició de HEAD anterior era"
-#: builtin/checkout.c:1114 builtin/checkout.c:1383
+#: builtin/checkout.c:1124 builtin/checkout.c:1393
msgid "You are on a branch yet to be born"
msgstr "Sou en una branca que encara ha de néixer"
-#: builtin/checkout.c:1196
+#: builtin/checkout.c:1206
#, c-format
msgid ""
"'%s' could be both a local file and a tracking branch.\n"
@@ -12727,7 +13104,7 @@ msgstr ""
"«%s» podria ser tant un fitxer local com una branca de seguiment.\n"
"Useu -- (i opcionalment --no-guess) per a desambiguar-ho"
-#: builtin/checkout.c:1203
+#: builtin/checkout.c:1213
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"
@@ -12747,51 +13124,59 @@ msgstr ""
"remota, p. ex. «origin» al remot, considereu configurar l'opció\n"
"checkout.defaultRemote=origin en la vostra configuració."
-#: builtin/checkout.c:1213
+#: builtin/checkout.c:1223
#, c-format
msgid "'%s' matched multiple (%d) remote tracking branches"
msgstr "«%s» coincideixen múltiples (%d) branques de seguiment remotes"
-#: builtin/checkout.c:1279
+#: builtin/checkout.c:1289
msgid "only one reference expected"
msgstr "només s'esperava una referència"
-#: builtin/checkout.c:1296
+#: builtin/checkout.c:1306
#, c-format
msgid "only one reference expected, %d given."
msgstr "s'esperava només una referència, s'han donat %d."
-#: builtin/checkout.c:1342 builtin/worktree.c:269 builtin/worktree.c:436
+#: builtin/checkout.c:1352 builtin/worktree.c:338 builtin/worktree.c:508
#, c-format
msgid "invalid reference: %s"
msgstr "referència no vàlida: %s"
-#: builtin/checkout.c:1355 builtin/checkout.c:1725
+#: builtin/checkout.c:1365 builtin/checkout.c:1744
#, c-format
msgid "reference is not a tree: %s"
msgstr "la referència no és un arbre: %s"
-#: builtin/checkout.c:1402
+#: builtin/checkout.c:1413
#, c-format
msgid "a branch is expected, got tag '%s'"
msgstr "s'espera una branca, s'ha obtingut l'etiqueta «%s»"
-#: builtin/checkout.c:1404
+#: builtin/checkout.c:1415
#, c-format
msgid "a branch is expected, got remote branch '%s'"
msgstr "s'espera una branca, s'ha obtingut la branca remota «%s»"
-#: builtin/checkout.c:1405 builtin/checkout.c:1413
+#: builtin/checkout.c:1417 builtin/checkout.c:1426
#, c-format
msgid "a branch is expected, got '%s'"
msgstr "s'espera una branca, s'ha obtingut «%s»"
-#: builtin/checkout.c:1408
+#: builtin/checkout.c:1420
#, c-format
msgid "a branch is expected, got commit '%s'"
msgstr "s'espera una branca, s'ha obtingut la comissió «%s»"
-#: builtin/checkout.c:1424
+#: builtin/checkout.c:1429
+msgid ""
+"If you want to detach HEAD at the commit, try again with the --detach "
+"option."
+msgstr ""
+"Si voleu desacoblar HEAD a la comissió, torneu-ho a provar amb l'opció "
+"--detach."
+
+#: builtin/checkout.c:1442
msgid ""
"cannot switch branch while merging\n"
"Consider \"git merge --quit\" or \"git worktree add\"."
@@ -12799,7 +13184,7 @@ msgstr ""
"no es pot canviar de branca mentre es fusiona\n"
"Considereu usar «git merge --quit» o «git worktree add»."
-#: builtin/checkout.c:1428
+#: builtin/checkout.c:1446
msgid ""
"cannot switch branch in the middle of an am session\n"
"Consider \"git am --quit\" or \"git worktree add\"."
@@ -12807,7 +13192,7 @@ msgstr ""
"no es pot canviar de branca en mig d'una sessió «am»\n"
"Considereu usar «git am --quit» o «git worktree add»."
-#: builtin/checkout.c:1432
+#: builtin/checkout.c:1450
msgid ""
"cannot switch branch while rebasing\n"
"Consider \"git rebase --quit\" or \"git worktree add\"."
@@ -12815,7 +13200,7 @@ msgstr ""
"no es pot canviar de branca mentre es fa «rebase»\n"
"Considereu usar «git rebase --quit» o «git worktree add»."
-#: builtin/checkout.c:1436
+#: builtin/checkout.c:1454
msgid ""
"cannot switch branch while cherry-picking\n"
"Consider \"git cherry-pick --quit\" or \"git worktree add\"."
@@ -12823,7 +13208,7 @@ msgstr ""
"no es pot canviar de branca mentre es fa «cherry-pick»\n"
"Considereu usar «git cherry-pick --quit» o «git worktree add»."
-#: builtin/checkout.c:1440
+#: builtin/checkout.c:1458
msgid ""
"cannot switch branch while reverting\n"
"Consider \"git revert --quit\" or \"git worktree add\"."
@@ -12831,127 +13216,123 @@ msgstr ""
"no es pot canviar de branca mentre s'està revertint\n"
"Considereu «git revert --quit» o «git worktree add»."
-#: builtin/checkout.c:1444
+#: builtin/checkout.c:1462
msgid "you are switching branch while bisecting"
msgstr "s'està canviant la branca mentre es fa una bisecció"
-#: builtin/checkout.c:1451
+#: builtin/checkout.c:1469
msgid "paths cannot be used with switching branches"
msgstr "els camins no es poden usar amb canvi de branca"
-#: builtin/checkout.c:1454 builtin/checkout.c:1458 builtin/checkout.c:1462
+#: builtin/checkout.c:1472 builtin/checkout.c:1476 builtin/checkout.c:1480
#, c-format
msgid "'%s' cannot be used with switching branches"
msgstr "«%s» no es pot usar amb canvi de branca"
-#: builtin/checkout.c:1466 builtin/checkout.c:1469 builtin/checkout.c:1472
-#: builtin/checkout.c:1477 builtin/checkout.c:1482
+#: builtin/checkout.c:1484 builtin/checkout.c:1487 builtin/checkout.c:1490
+#: builtin/checkout.c:1495 builtin/checkout.c:1500
#, c-format
msgid "'%s' cannot be used with '%s'"
msgstr "«%s» no es pot usar amb «%s»"
-#: builtin/checkout.c:1479
+#: builtin/checkout.c:1497
#, c-format
msgid "'%s' cannot take <start-point>"
msgstr "«%s» no pot prendre <start-point>"
-#: builtin/checkout.c:1487
+#: builtin/checkout.c:1505
#, c-format
msgid "Cannot switch branch to a non-commit '%s'"
msgstr "No es pot canviar la branca a la no comissió «%s»"
-#: builtin/checkout.c:1494
+#: builtin/checkout.c:1512
msgid "missing branch or commit argument"
msgstr "manca branca o argument de comissió"
-#: builtin/checkout.c:1537
+#: builtin/checkout.c:1555
msgid "perform a 3-way merge with the new branch"
msgstr "realitza una fusió de 3 vies amb la branca nova"
-#: builtin/checkout.c:1538 builtin/log.c:1825 parse-options.h:323
+#: builtin/checkout.c:1556 builtin/log.c:1844 parse-options.h:354
msgid "style"
msgstr "estil"
-#: builtin/checkout.c:1539
+#: builtin/checkout.c:1557
msgid "conflict style (merge, diff3, or zdiff3)"
msgstr "estil de conflicte (merge, diff3, o zdiff3)"
-#: builtin/checkout.c:1551 builtin/worktree.c:488
+#: builtin/checkout.c:1569 builtin/worktree.c:560
msgid "detach HEAD at named commit"
msgstr "separa HEAD a la comissió anomenada"
-#: builtin/checkout.c:1553
-msgid "set up tracking mode (see git-pull(1))"
-msgstr "configura el mode de seguiment (vegeu git-pull(1))"
-
-#: builtin/checkout.c:1556
+#: builtin/checkout.c:1574
msgid "force checkout (throw away local modifications)"
msgstr "agafa a la força (descarta qualsevol modificació local)"
-#: builtin/checkout.c:1558
+#: builtin/checkout.c:1576
msgid "new-branch"
msgstr "branca-nova"
-#: builtin/checkout.c:1558
+#: builtin/checkout.c:1576
msgid "new unparented branch"
msgstr "branca òrfena nova"
-#: builtin/checkout.c:1560 builtin/merge.c:305
+#: builtin/checkout.c:1578 builtin/merge.c:305
msgid "update ignored files (default)"
msgstr "actualitza els fitxers ignorats (per defecte)"
-#: builtin/checkout.c:1563
+#: builtin/checkout.c:1581
msgid "do not check if another worktree is holding the given ref"
-msgstr "no comprovis si altre arbre de treball té la referència donada"
+msgstr "no comprovis si un altre arbre de treball té la referència donada"
-#: builtin/checkout.c:1576
+#: builtin/checkout.c:1594
msgid "checkout our version for unmerged files"
msgstr "agafa la versió nostra dels fitxers sense fusionar"
-#: builtin/checkout.c:1579
+#: builtin/checkout.c:1597
msgid "checkout their version for unmerged files"
msgstr "agafa la versió seva dels fitxers sense fusionar"
-#: builtin/checkout.c:1583
+#: builtin/checkout.c:1601
msgid "do not limit pathspecs to sparse entries only"
msgstr "no limitis les especificacions de camí només a entrades disperses"
-#: builtin/checkout.c:1640
+#: builtin/checkout.c:1659
#, c-format
msgid "options '-%c', '-%c', and '%s' cannot be used together"
msgstr "les opcions «-%c», «-%c», i «%s» no es poden usar juntes"
-#: builtin/checkout.c:1681
+#: builtin/checkout.c:1700
msgid "--track needs a branch name"
msgstr "--track necessita un nom de branca"
-#: builtin/checkout.c:1686
+#: builtin/checkout.c:1705
#, c-format
msgid "missing branch name; try -%c"
msgstr "falta el nom de la branca; proveu -%c"
-#: builtin/checkout.c:1718
+#: builtin/checkout.c:1737
#, c-format
msgid "could not resolve %s"
msgstr "no es pot resoldre %s"
-#: builtin/checkout.c:1734
+#: builtin/checkout.c:1753
msgid "invalid path specification"
msgstr "especificació de camí no vàlida"
-#: builtin/checkout.c:1741
+#: builtin/checkout.c:1760
#, c-format
msgid "'%s' is not a commit and a branch '%s' cannot be created from it"
msgstr ""
"«%s» no és una comissió i la branca «%s» no es pot crear a partir d'aquesta "
"comissió"
-#: builtin/checkout.c:1745
+#: builtin/checkout.c:1764
#, c-format
msgid "git checkout: --detach does not take a path argument '%s'"
msgstr "git checkout: --detach no accepta un argument de camí «%s»"
-#: builtin/checkout.c:1770
+#: builtin/checkout.c:1789
msgid ""
"git checkout: --ours/--theirs, --force and --merge are incompatible when\n"
"checking out of the index."
@@ -12959,71 +13340,71 @@ msgstr ""
"git checkout: --ours/--theirs, --force i --merge són incompatibles en\n"
"agafar de l'índex."
-#: builtin/checkout.c:1775
+#: builtin/checkout.c:1794
msgid "you must specify path(s) to restore"
msgstr "heu d'especificar el camí o camins a restaurar"
-#: builtin/checkout.c:1800 builtin/checkout.c:1802 builtin/checkout.c:1854
-#: builtin/checkout.c:1856 builtin/clone.c:126 builtin/remote.c:170
-#: builtin/remote.c:172 builtin/submodule--helper.c:2959
-#: builtin/submodule--helper.c:3253 builtin/worktree.c:484
-#: builtin/worktree.c:486
+#: builtin/checkout.c:1819 builtin/checkout.c:1821 builtin/checkout.c:1873
+#: builtin/checkout.c:1875 builtin/clone.c:130 builtin/remote.c:171
+#: builtin/remote.c:173 builtin/submodule--helper.c:3038
+#: builtin/submodule--helper.c:3371 builtin/worktree.c:556
+#: builtin/worktree.c:558
msgid "branch"
msgstr "branca"
-#: builtin/checkout.c:1801
+#: builtin/checkout.c:1820
msgid "create and checkout a new branch"
msgstr "crea i agafa una branca nova"
-#: builtin/checkout.c:1803
+#: builtin/checkout.c:1822
msgid "create/reset and checkout a branch"
msgstr "crea/restableix i agafa una branca"
-#: builtin/checkout.c:1804
+#: builtin/checkout.c:1823
msgid "create reflog for new branch"
msgstr "crea un registre de referència per a la branca nova"
-#: builtin/checkout.c:1806
+#: builtin/checkout.c:1825
msgid "second guess 'git checkout <no-such-branch>' (default)"
-msgstr "segona suposició «git checkout <no-such-branch>» (per defecte)"
+msgstr "segona deducció «git checkout <no-such-branch>» (per defecte)"
-#: builtin/checkout.c:1807
+#: builtin/checkout.c:1826
msgid "use overlay mode (default)"
msgstr "utilitza el mode de superposició (per defecte)"
-#: builtin/checkout.c:1855
+#: builtin/checkout.c:1874
msgid "create and switch to a new branch"
msgstr "crea i canvia a una branca nova"
-#: builtin/checkout.c:1857
+#: builtin/checkout.c:1876
msgid "create/reset and switch to a branch"
msgstr "crea/restableix i canvia a una branca"
-#: builtin/checkout.c:1859
+#: builtin/checkout.c:1878
msgid "second guess 'git switch <no-such-branch>'"
-msgstr "segona suposició «git switch <no-such-branch>»"
+msgstr "segona deducció «git switch <no-such-branch>»"
-#: builtin/checkout.c:1861
+#: builtin/checkout.c:1880
msgid "throw away local modifications"
msgstr "descarta les modificacions locals"
-#: builtin/checkout.c:1897
+#: builtin/checkout.c:1916
msgid "which tree-ish to checkout from"
msgstr "des de quin arbre agafar"
-#: builtin/checkout.c:1899
+#: builtin/checkout.c:1918
msgid "restore the index"
msgstr "restaura l'índex"
-#: builtin/checkout.c:1901
+#: builtin/checkout.c:1920
msgid "restore the working tree (default)"
msgstr "restaura l'arbre de treball (per defecte)"
-#: builtin/checkout.c:1903
+#: builtin/checkout.c:1922
msgid "ignore unmerged entries"
msgstr "ignora les entrades sense fusionar"
-#: builtin/checkout.c:1904
+#: builtin/checkout.c:1923
msgid "use overlay mode"
msgstr "utilitza el mode de superposició"
@@ -13171,8 +13552,8 @@ msgid "remove whole directories"
msgstr "elimina directoris sencers"
#: builtin/clean.c:932 builtin/describe.c:565 builtin/describe.c:567
-#: builtin/grep.c:937 builtin/log.c:184 builtin/log.c:186
-#: builtin/ls-files.c:651 builtin/name-rev.c:535 builtin/name-rev.c:537
+#: builtin/grep.c:938 builtin/log.c:185 builtin/log.c:187
+#: builtin/ls-files.c:651 builtin/name-rev.c:585 builtin/name-rev.c:587
#: builtin/show-ref.c:179
msgid "pattern"
msgstr "patró"
@@ -13209,212 +13590,217 @@ msgstr ""
msgid "-x and -X cannot be used together"
msgstr "-x i -X no es poden usar junts"
-#: builtin/clone.c:45
+#: builtin/clone.c:47
msgid "git clone [<options>] [--] <repo> [<dir>]"
msgstr "git clone [<opcions>] [--] <repositori> [<directori>]"
-#: builtin/clone.c:96
+#: builtin/clone.c:100
msgid "don't clone shallow repository"
msgstr "no clonis un repositori superficial"
-#: builtin/clone.c:98
+#: builtin/clone.c:102
msgid "don't create a checkout"
msgstr "no facis cap agafament"
-#: builtin/clone.c:99 builtin/clone.c:101 builtin/init-db.c:542
+#: builtin/clone.c:103 builtin/clone.c:105 builtin/init-db.c:542
msgid "create a bare repository"
msgstr "crea un repositori nu"
-#: builtin/clone.c:103
+#: builtin/clone.c:107
msgid "create a mirror repository (implies bare)"
msgstr "crea un repositori mirall (implica bare)"
-#: builtin/clone.c:105
+#: builtin/clone.c:109
msgid "to clone from a local repository"
msgstr "per a clonar des d'un repositori local"
-#: builtin/clone.c:107
+#: builtin/clone.c:111
msgid "don't use local hardlinks, always copy"
msgstr "no usis enllaços durs locals, sempre copia"
-#: builtin/clone.c:109
+#: builtin/clone.c:113
msgid "setup as shared repository"
msgstr "configura com a repositori compartit"
-#: builtin/clone.c:111
+#: builtin/clone.c:115
msgid "pathspec"
msgstr "especificació de camí"
-#: builtin/clone.c:111
+#: builtin/clone.c:115
msgid "initialize submodules in the clone"
msgstr "inicialitza els submòduls en el clon"
-#: builtin/clone.c:115
+#: builtin/clone.c:119
msgid "number of submodules cloned in parallel"
msgstr "nombre de submòduls clonats en paral·lel"
-#: builtin/clone.c:116 builtin/init-db.c:539
+#: builtin/clone.c:120 builtin/init-db.c:539
msgid "template-directory"
msgstr "directori-de-plantilla"
-#: builtin/clone.c:117 builtin/init-db.c:540
+#: builtin/clone.c:121 builtin/init-db.c:540
msgid "directory from which templates will be used"
msgstr "directori des del qual s'usaran les plantilles"
-#: builtin/clone.c:119 builtin/clone.c:121 builtin/submodule--helper.c:1871
-#: builtin/submodule--helper.c:2514 builtin/submodule--helper.c:3260
+#: builtin/clone.c:123 builtin/clone.c:125 builtin/submodule--helper.c:1885
+#: builtin/submodule--helper.c:2719 builtin/submodule--helper.c:3378
msgid "reference repository"
msgstr "repositori de referència"
-#: builtin/clone.c:123 builtin/submodule--helper.c:1873
-#: builtin/submodule--helper.c:2516
+#: builtin/clone.c:127 builtin/submodule--helper.c:1887
+#: builtin/submodule--helper.c:2721
msgid "use --reference only while cloning"
msgstr "usa --reference només en clonar"
-#: builtin/clone.c:124 builtin/column.c:27 builtin/fmt-merge-msg.c:27
+#: builtin/clone.c:128 builtin/column.c:27 builtin/fmt-merge-msg.c:27
#: builtin/init-db.c:550 builtin/merge-file.c:48 builtin/merge.c:290
-#: builtin/pack-objects.c:3944 builtin/repack.c:665
-#: builtin/submodule--helper.c:3262 t/helper/test-simple-ipc.c:595
+#: builtin/pack-objects.c:3967 builtin/repack.c:669
+#: builtin/submodule--helper.c:3380 t/helper/test-simple-ipc.c:595
#: t/helper/test-simple-ipc.c:597
msgid "name"
msgstr "nom"
-#: builtin/clone.c:125
+#: builtin/clone.c:129
msgid "use <name> instead of 'origin' to track upstream"
msgstr "usa <nom> en lloc d'«origin» per a seguir la font"
-#: builtin/clone.c:127
+#: builtin/clone.c:131
msgid "checkout <branch> instead of the remote's HEAD"
msgstr "agafa <branca> en lloc de la HEAD del remot"
-#: builtin/clone.c:129
+#: builtin/clone.c:133
msgid "path to git-upload-pack on the remote"
msgstr "camí a git-upload-pack en el remot"
-#: builtin/clone.c:130 builtin/fetch.c:181 builtin/grep.c:876
+#: builtin/clone.c:134 builtin/fetch.c:182 builtin/grep.c:877
#: builtin/pull.c:212
msgid "depth"
msgstr "profunditat"
-#: builtin/clone.c:131
+#: builtin/clone.c:135
msgid "create a shallow clone of that depth"
-msgstr "crea un clon superficial de tal profunditat"
+msgstr "crea un clon superficial d'aquesta profunditat"
-#: builtin/clone.c:132 builtin/fetch.c:183 builtin/pack-objects.c:3933
+#: builtin/clone.c:136 builtin/fetch.c:184 builtin/pack-objects.c:3956
#: builtin/pull.c:215
msgid "time"
msgstr "data"
-#: builtin/clone.c:133
+#: builtin/clone.c:137
msgid "create a shallow clone since a specific time"
msgstr "crea un clon superficial des d'una data específica"
-#: builtin/clone.c:134 builtin/fetch.c:185 builtin/fetch.c:208
-#: builtin/pull.c:218 builtin/pull.c:243 builtin/rebase.c:1022
+#: builtin/clone.c:138 builtin/fetch.c:186 builtin/fetch.c:212
+#: builtin/pull.c:218 builtin/pull.c:243 builtin/rebase.c:1050
msgid "revision"
msgstr "revisió"
-#: builtin/clone.c:135 builtin/fetch.c:186 builtin/pull.c:219
+#: builtin/clone.c:139 builtin/fetch.c:187 builtin/pull.c:219
msgid "deepen history of shallow clone, excluding rev"
msgstr "aprofundeix la història d'un clon superficial, excloent una revisió"
-#: builtin/clone.c:137 builtin/submodule--helper.c:1883
-#: builtin/submodule--helper.c:2530
+#: builtin/clone.c:141 builtin/submodule--helper.c:1897
+#: builtin/submodule--helper.c:2735
msgid "clone only one branch, HEAD or --branch"
msgstr "clona només una branca, HEAD o --branch"
-#: builtin/clone.c:139
+#: builtin/clone.c:143
msgid "don't clone any tags, and make later fetches not to follow them"
msgstr ""
-"no cloneu cap etiqueta, i feu que els «fetch» següents no els segueixen"
+"no cloneu cap etiqueta, i feu que els «fetch» següents no les segueixin"
-#: builtin/clone.c:141
+#: builtin/clone.c:145
msgid "any cloned submodules will be shallow"
msgstr "qualsevol submòdul clonat serà superficial"
-#: builtin/clone.c:142 builtin/init-db.c:548
+#: builtin/clone.c:146 builtin/init-db.c:548
msgid "gitdir"
msgstr "directori de git"
-#: builtin/clone.c:143 builtin/init-db.c:549
+#: builtin/clone.c:147 builtin/init-db.c:549
msgid "separate git dir from working tree"
msgstr "separa el directori de git de l'arbre de treball"
-#: builtin/clone.c:144
+#: builtin/clone.c:148
msgid "key=value"
msgstr "clau=valor"
-#: builtin/clone.c:145
+#: builtin/clone.c:149
msgid "set config inside the new repository"
msgstr "estableix la configuració dins del repositori nou"
-#: builtin/clone.c:147 builtin/fetch.c:203 builtin/ls-remote.c:77
+#: builtin/clone.c:151 builtin/fetch.c:207 builtin/ls-remote.c:77
#: builtin/pull.c:234 builtin/push.c:575 builtin/send-pack.c:200
msgid "server-specific"
msgstr "específic al servidor"
-#: builtin/clone.c:147 builtin/fetch.c:203 builtin/ls-remote.c:77
+#: builtin/clone.c:151 builtin/fetch.c:207 builtin/ls-remote.c:77
#: builtin/pull.c:235 builtin/push.c:575 builtin/send-pack.c:201
msgid "option to transmit"
msgstr "opció a transmetre"
-#: builtin/clone.c:148 builtin/fetch.c:204 builtin/pull.c:238
+#: builtin/clone.c:152 builtin/fetch.c:208 builtin/pull.c:238
#: builtin/push.c:576
msgid "use IPv4 addresses only"
msgstr "usa només adreces IPv4"
-#: builtin/clone.c:150 builtin/fetch.c:206 builtin/pull.c:241
+#: builtin/clone.c:154 builtin/fetch.c:210 builtin/pull.c:241
#: builtin/push.c:578
msgid "use IPv6 addresses only"
msgstr "usa només adreces IPv6"
-#: builtin/clone.c:154
+#: builtin/clone.c:158
+#, fuzzy
+msgid "apply partial clone filters to submodules"
+msgstr "Aplica els filtres de clonatge parcial als submòduls"
+
+#: builtin/clone.c:160
msgid "any cloned submodules will use their remote-tracking branch"
msgstr ""
"qualsevol submòdul clonat utilitzarà la seva branca de seguiment remot"
-#: builtin/clone.c:156
+#: builtin/clone.c:162
msgid "initialize sparse-checkout file to include only files at root"
msgstr ""
"inicialitza el fitxer «sparse-checkout» per a incloure només els fitxers a "
"l'arrel"
-#: builtin/clone.c:231
+#: builtin/clone.c:237
#, c-format
msgid "info: Could not add alternate for '%s': %s\n"
msgstr "info: No s'ha pogut afegir un alternatiu per a «%s»: %s\n"
-#: builtin/clone.c:304
+#: builtin/clone.c:310
#, c-format
msgid "%s exists and is not a directory"
msgstr "%s existeix i no és directori"
-#: builtin/clone.c:322
+#: builtin/clone.c:328
#, c-format
msgid "failed to start iterator over '%s'"
msgstr "no s'ha pogut iniciar l'iterador sobre «%s»"
-#: builtin/clone.c:353
+#: builtin/clone.c:359
#, c-format
msgid "failed to create link '%s'"
msgstr "s'ha produït un error en crear l'enllaç «%s»"
-#: builtin/clone.c:357
+#: builtin/clone.c:363
#, c-format
msgid "failed to copy file to '%s'"
msgstr "s'ha produït un error en copiar el fitxer a «%s»"
-#: builtin/clone.c:362
+#: builtin/clone.c:368
#, c-format
msgid "failed to iterate over '%s'"
msgstr "no s'ha pogut iterar sobre «%s»"
-#: builtin/clone.c:389
+#: builtin/clone.c:395
#, c-format
msgid "done.\n"
msgstr "fet.\n"
-#: builtin/clone.c:403
+#: builtin/clone.c:409
msgid ""
"Clone succeeded, but checkout failed.\n"
"You can inspect what was checked out with 'git status'\n"
@@ -13424,102 +13810,102 @@ msgstr ""
"Podeu inspeccionar el que s'ha agafat amb «git status»\n"
"i tornar-ho a provar amb «git restore --source=HEAD :/»\n"
-#: builtin/clone.c:480
+#: builtin/clone.c:486
#, c-format
msgid "Could not find remote branch %s to clone."
msgstr "No s'ha pogut trobar la branca remota %s per a clonar."
-#: builtin/clone.c:597
+#: builtin/clone.c:603
#, c-format
msgid "unable to update %s"
msgstr "no s'ha pogut actualitzar %s"
-#: builtin/clone.c:645
+#: builtin/clone.c:651
msgid "failed to initialize sparse-checkout"
msgstr "no s'ha pogut inicialitzar «sparse-checkout»"
-#: builtin/clone.c:668
+#: builtin/clone.c:674
msgid "remote HEAD refers to nonexistent ref, unable to checkout.\n"
msgstr ""
"la HEAD remot es refereix a una referència que no existeix; no s'ha pogut "
"agafar.\n"
-#: builtin/clone.c:701
+#: builtin/clone.c:709
msgid "unable to checkout working tree"
msgstr "no s'ha pogut agafar l'arbre de treball"
-#: builtin/clone.c:779
+#: builtin/clone.c:793
msgid "unable to write parameters to config file"
msgstr "no s'han pogut escriure els paràmetres al fitxer de configuració"
-#: builtin/clone.c:842
+#: builtin/clone.c:856
msgid "cannot repack to clean up"
msgstr "no es pot reempaquetar per a netejar"
-#: builtin/clone.c:844
+#: builtin/clone.c:858
msgid "cannot unlink temporary alternates file"
msgstr "no es pot desenllaçar el fitxer d'alternatives temporal"
-#: builtin/clone.c:886
+#: builtin/clone.c:901
msgid "Too many arguments."
msgstr "Hi ha massa arguments."
-#: builtin/clone.c:890 contrib/scalar/scalar.c:414
+#: builtin/clone.c:905 contrib/scalar/scalar.c:413
msgid "You must specify a repository to clone."
msgstr "Heu d'especificar un repositori per a clonar."
-#: builtin/clone.c:903
+#: builtin/clone.c:918
#, c-format
msgid "options '%s' and '%s %s' cannot be used together"
msgstr "les opcions «%s» i «%s %s» no es poden usar juntes"
-#: builtin/clone.c:920
+#: builtin/clone.c:935
#, c-format
msgid "repository '%s' does not exist"
msgstr "el repositori «%s» no existeix"
-#: builtin/clone.c:924 builtin/fetch.c:2052
+#: builtin/clone.c:939 builtin/fetch.c:2176
#, c-format
msgid "depth %s is not a positive number"
msgstr "la profunditat %s no és un nombre positiu"
-#: builtin/clone.c:934
+#: builtin/clone.c:949
#, c-format
msgid "destination path '%s' already exists and is not an empty directory."
msgstr "el camí destí «%s» ja existeix i no és un directori buit."
-#: builtin/clone.c:940
+#: builtin/clone.c:955
#, c-format
msgid "repository path '%s' already exists and is not an empty directory."
msgstr "el camí destí «%s» ja existeix i no és un directori buit."
-#: builtin/clone.c:954
+#: builtin/clone.c:969
#, c-format
msgid "working tree '%s' already exists."
msgstr "l'arbre de treball «%s» ja existeix."
-#: builtin/clone.c:969 builtin/clone.c:990 builtin/difftool.c:256
-#: builtin/log.c:2012 builtin/worktree.c:281 builtin/worktree.c:313
+#: builtin/clone.c:984 builtin/clone.c:1005 builtin/difftool.c:256
+#: builtin/log.c:2037 builtin/worktree.c:350 builtin/worktree.c:382
#, c-format
msgid "could not create leading directories of '%s'"
msgstr "no s'han pogut crear els directoris inicials de «%s»"
-#: builtin/clone.c:974
+#: builtin/clone.c:989
#, c-format
msgid "could not create work tree dir '%s'"
msgstr "no s'ha pogut crear el directori d'arbre de treball «%s»"
-#: builtin/clone.c:994
+#: builtin/clone.c:1009
#, c-format
msgid "Cloning into bare repository '%s'...\n"
msgstr "S'està clonant al repositori nu «%s»...\n"
-#: builtin/clone.c:996
+#: builtin/clone.c:1011
#, c-format
msgid "Cloning into '%s'...\n"
msgstr "S'està clonant a «%s»...\n"
-#: builtin/clone.c:1025
+#: builtin/clone.c:1040
msgid ""
"clone --recursive is not compatible with both --reference and --reference-"
"if-able"
@@ -13527,47 +13913,51 @@ msgstr ""
"clone --recursive no és compatible amb ambdós --reference i --reference-if-"
"able"
-#: builtin/clone.c:1080 builtin/remote.c:200 builtin/remote.c:710
+#: builtin/clone.c:1116 builtin/remote.c:201 builtin/remote.c:721
#, c-format
msgid "'%s' is not a valid remote name"
msgstr "«%s» no és un nom de remot vàlid"
-#: builtin/clone.c:1121
+#: builtin/clone.c:1157
msgid "--depth is ignored in local clones; use file:// instead."
msgstr "--depth s'ignora en els clons locals; useu file:// en lloc d'això."
-#: builtin/clone.c:1123
+#: builtin/clone.c:1159
msgid "--shallow-since is ignored in local clones; use file:// instead."
msgstr ""
"--shallow-since s'ignora en els clons locals; useu file:// en lloc d'això."
-#: builtin/clone.c:1125
+#: builtin/clone.c:1161
msgid "--shallow-exclude is ignored in local clones; use file:// instead."
msgstr ""
"--shallow-exclude s'ignora en els clons locals; useu file:// en lloc d'això."
-#: builtin/clone.c:1127
+#: builtin/clone.c:1163
msgid "--filter is ignored in local clones; use file:// instead."
msgstr "--filter s'ignora en els clons locals; useu file:// en lloc d'això."
-#: builtin/clone.c:1132
+#: builtin/clone.c:1168
msgid "source repository is shallow, ignoring --local"
msgstr "el repositori font és superficial, s'està ignorant --local"
-#: builtin/clone.c:1137
+#: builtin/clone.c:1173
msgid "--local is ignored"
msgstr "--local s'ignora"
-#: builtin/clone.c:1216 builtin/clone.c:1276
+#: builtin/clone.c:1185
+msgid "cannot clone from filtered bundle"
+msgstr "no es pot clonar des del farell filtrat"
+
+#: builtin/clone.c:1265 builtin/clone.c:1324
msgid "remote transport reported error"
msgstr "el transport remot ha informat d'un error"
-#: builtin/clone.c:1228 builtin/clone.c:1239
+#: builtin/clone.c:1277 builtin/clone.c:1289
#, c-format
msgid "Remote branch %s not found in upstream %s"
msgstr "La branca remota %s no es troba en la font %s"
-#: builtin/clone.c:1242
+#: builtin/clone.c:1292
msgid "You appear to have cloned an empty repository."
msgstr "Sembla que heu clonat un repositori buit."
@@ -13623,7 +14013,7 @@ msgstr ""
"[--changed-paths] [--[no-]max-new-filters <n>] [--[no-]progress] <split "
"options>"
-#: builtin/commit-graph.c:51 builtin/fetch.c:192 builtin/log.c:1794
+#: builtin/commit-graph.c:51 builtin/fetch.c:196 builtin/log.c:1813
msgid "dir"
msgstr "directori"
@@ -13723,7 +14113,7 @@ msgstr ""
msgid "duplicate parent %s ignored"
msgstr "s'han ignorat el pare %s duplicat"
-#: builtin/commit-tree.c:56 builtin/commit-tree.c:134 builtin/log.c:577
+#: builtin/commit-tree.c:56 builtin/commit-tree.c:134 builtin/log.c:590
#, c-format
msgid "not a valid object name %s"
msgstr "no és un nom d'objecte vàlid %s"
@@ -13746,13 +14136,13 @@ msgstr "pare"
msgid "id of a parent commit object"
msgstr "id d'un objecte de comissió pare"
-#: builtin/commit-tree.c:112 builtin/commit.c:1627 builtin/merge.c:284
-#: builtin/notes.c:407 builtin/notes.c:573 builtin/stash.c:1677
-#: builtin/tag.c:454
+#: builtin/commit-tree.c:112 builtin/commit.c:1626 builtin/merge.c:284
+#: builtin/notes.c:407 builtin/notes.c:573 builtin/stash.c:1666
+#: builtin/tag.c:455
msgid "message"
msgstr "missatge"
-#: builtin/commit-tree.c:113 builtin/commit.c:1627
+#: builtin/commit-tree.c:113 builtin/commit.c:1626
msgid "commit message"
msgstr "missatge de comissió"
@@ -13760,7 +14150,7 @@ msgstr "missatge de comissió"
msgid "read commit log message from file"
msgstr "llegeix el missatge de registre de comissió des d'un fitxer"
-#: builtin/commit-tree.c:119 builtin/commit.c:1644 builtin/merge.c:303
+#: builtin/commit-tree.c:119 builtin/commit.c:1643 builtin/merge.c:303
#: builtin/pull.c:180 builtin/revert.c:118
msgid "GPG sign commit"
msgstr "signa la comissió amb GPG"
@@ -13773,15 +14163,15 @@ msgstr "ha de donar exactament un arbre"
msgid "git commit-tree: failed to read"
msgstr "git commit-tree: ha fallat en llegir"
-#: builtin/commit.c:42
+#: builtin/commit.c:43
msgid "git commit [<options>] [--] <pathspec>..."
msgstr "git commit [<opcions>] [--] <especificació-de-camí>..."
-#: builtin/commit.c:47
+#: builtin/commit.c:48
msgid "git status [<options>] [--] <pathspec>..."
msgstr "git status [<opcions>] [--] <especificació-de-camí>..."
-#: builtin/commit.c:52
+#: builtin/commit.c:53
msgid ""
"You asked to amend the most recent commit, but doing so would make\n"
"it empty. You can repeat your command with --allow-empty, or you can\n"
@@ -13791,7 +14181,7 @@ msgstr ""
"deixaria buida. Podeu repetir la vostra ordre amb --allow-empty, o\n"
"podeu eliminar la comissió per complet amb «git reset HEAD^».\n"
-#: builtin/commit.c:57
+#: builtin/commit.c:58
msgid ""
"The previous cherry-pick is now empty, possibly due to conflict resolution.\n"
"If you wish to commit it anyway, use:\n"
@@ -13805,15 +14195,15 @@ msgstr ""
" git commit --allow-empty\n"
"\n"
-#: builtin/commit.c:64
+#: builtin/commit.c:65
msgid "Otherwise, please use 'git rebase --skip'\n"
msgstr "Altrament, si us plau useu «git rebase --skip»\n"
-#: builtin/commit.c:67
+#: builtin/commit.c:68
msgid "Otherwise, please use 'git cherry-pick --skip'\n"
msgstr "Altrament, si us plau useu «git cherry-pick --skip»\n"
-#: builtin/commit.c:70
+#: builtin/commit.c:71
msgid ""
"and then use:\n"
"\n"
@@ -13835,69 +14225,69 @@ msgstr ""
" git cherry-pick --skip\n"
"\n"
-#: builtin/commit.c:325
+#: builtin/commit.c:326
msgid "failed to unpack HEAD tree object"
msgstr "s'ha produït un error en desempaquetar l'objecte d'arbre HEAD"
-#: builtin/commit.c:375
+#: builtin/commit.c:376
msgid "No paths with --include/--only does not make sense."
msgstr "--include/--only no té sentit sense camí."
-#: builtin/commit.c:387
+#: builtin/commit.c:388
msgid "unable to create temporary index"
msgstr "no s'ha pogut crear un índex temporal"
-#: builtin/commit.c:396
+#: builtin/commit.c:397
msgid "interactive add failed"
msgstr "l'afegiment interactiu ha fallat"
-#: builtin/commit.c:411
+#: builtin/commit.c:412
msgid "unable to update temporary index"
msgstr "no s'ha pogut actualitzar l'índex temporal"
-#: builtin/commit.c:413
+#: builtin/commit.c:414
msgid "Failed to update main cache tree"
msgstr "S'ha produït un error en actualitzar l'arbre principal de memòria cau"
-#: builtin/commit.c:438 builtin/commit.c:461 builtin/commit.c:509
+#: builtin/commit.c:439 builtin/commit.c:462 builtin/commit.c:510
msgid "unable to write new_index file"
msgstr "no s'ha pogut escriure el fitxer new_index"
-#: builtin/commit.c:490
+#: builtin/commit.c:491
msgid "cannot do a partial commit during a merge."
msgstr "no es pot fer una comissió parcial durant una fusió."
-#: builtin/commit.c:492
+#: builtin/commit.c:493
msgid "cannot do a partial commit during a cherry-pick."
msgstr "no es pot fer una comissió parcial durant un «cherry pick»."
-#: builtin/commit.c:494
+#: builtin/commit.c:495
msgid "cannot do a partial commit during a rebase."
msgstr "no es pot fer una comissió parcial durant un «rebase»."
-#: builtin/commit.c:502
+#: builtin/commit.c:503
msgid "cannot read the index"
msgstr "no es pot llegir l'índex"
-#: builtin/commit.c:521
+#: builtin/commit.c:522
msgid "unable to write temporary index file"
msgstr "no s'ha pogut escriure un fitxer d'índex temporal"
-#: builtin/commit.c:619
+#: builtin/commit.c:620
#, c-format
msgid "commit '%s' lacks author header"
msgstr "a la comissió «%s» li manca la capçalera d'autor"
-#: builtin/commit.c:621
+#: builtin/commit.c:622
#, c-format
msgid "commit '%s' has malformed author line"
msgstr "la comissió «%s» té una línia d'autor mal formada"
-#: builtin/commit.c:640
+#: builtin/commit.c:641
msgid "malformed --author parameter"
msgstr "paràmetre --author mal format"
-#: builtin/commit.c:693
+#: builtin/commit.c:694
msgid ""
"unable to select a comment character that is not used\n"
"in the current commit message"
@@ -13905,43 +14295,43 @@ msgstr ""
"no es pot seleccionar un caràcter de comentari que\n"
"no sigui usat en el missatge de comissió actual"
-#: builtin/commit.c:747 builtin/commit.c:781 builtin/commit.c:1166
+#: builtin/commit.c:750 builtin/commit.c:784 builtin/commit.c:1170
#, c-format
msgid "could not lookup commit %s"
msgstr "no s'ha pogut cercar la comissió %s"
-#: builtin/commit.c:759 builtin/shortlog.c:416
+#: builtin/commit.c:762 builtin/shortlog.c:417
#, c-format
msgid "(reading log message from standard input)\n"
msgstr "(s'està llegint el missatge de registre des de l'entrada estàndard)\n"
-#: builtin/commit.c:761
+#: builtin/commit.c:764
msgid "could not read log from standard input"
msgstr "no s'ha pogut llegir el registre des de l'entrada estàndard"
-#: builtin/commit.c:765
+#: builtin/commit.c:768
#, c-format
msgid "could not read log file '%s'"
msgstr "no s'ha pogut llegir el fitxer de registre «%s»"
-#: builtin/commit.c:802
+#: builtin/commit.c:805
#, c-format
msgid "options '%s' and '%s:%s' cannot be used together"
msgstr "les opcions «%s» i «%s:%s» no es poden usar juntes"
-#: builtin/commit.c:814 builtin/commit.c:830
+#: builtin/commit.c:817 builtin/commit.c:833
msgid "could not read SQUASH_MSG"
msgstr "no s'ha pogut llegir SQUASH_MSG"
-#: builtin/commit.c:821
+#: builtin/commit.c:824
msgid "could not read MERGE_MSG"
msgstr "no s'ha pogut llegir MERGE_MSG"
-#: builtin/commit.c:881
+#: builtin/commit.c:884
msgid "could not write commit template"
msgstr "no s'ha pogut escriure la plantilla de comissió"
-#: builtin/commit.c:894
+#: builtin/commit.c:897
#, c-format
msgid ""
"Please enter the commit message for your changes. Lines starting\n"
@@ -13950,7 +14340,7 @@ msgstr ""
"Introduïu el missatge de comissió per als vostres canvis.\n"
"S'ignoraran les línies que comencin amb «%c».\n"
-#: builtin/commit.c:896
+#: builtin/commit.c:899
#, c-format
msgid ""
"Please enter the commit message for your changes. Lines starting\n"
@@ -13960,7 +14350,7 @@ msgstr ""
"S'ignoraran les línies que comencin amb «%c». Un missatge de\n"
"comissió buit avorta la comissió.\n"
-#: builtin/commit.c:900
+#: builtin/commit.c:903
#, c-format
msgid ""
"Please enter the commit message for your changes. Lines starting\n"
@@ -13969,7 +14359,7 @@ msgstr ""
"Introduïu el missatge de comissió pels vostres canvis. Es mantindran\n"
"les línies que comencin amb «%c»; podeu eliminar-les si voleu.\n"
-#: builtin/commit.c:904
+#: builtin/commit.c:907
#, c-format
msgid ""
"Please enter the commit message for your changes. Lines starting\n"
@@ -13980,7 +14370,7 @@ msgstr ""
"Es mantindran les línies que comencin amb «%c»; podeu eliminar-les vosaltres\n"
"mateixos si voleu. Un missatge buit avorta la comissió.\n"
-#: builtin/commit.c:916
+#: builtin/commit.c:919
msgid ""
"\n"
"It looks like you may be committing a merge.\n"
@@ -13994,7 +14384,7 @@ msgstr ""
"\tgit update-ref -d MERGE_HEAD\n"
"i intenteu-ho de nou.\n"
-#: builtin/commit.c:921
+#: builtin/commit.c:924
msgid ""
"\n"
"It looks like you may be committing a cherry-pick.\n"
@@ -14008,169 +14398,149 @@ msgstr ""
"\tgit update-ref -d CHERRY_PICK_HEAD\n"
"i intenteu-ho de nou.\n"
-#: builtin/commit.c:948
+#: builtin/commit.c:951
#, c-format
msgid "%sAuthor: %.*s <%.*s>"
msgstr "%sAutor: %.*s <%.*s>"
-#: builtin/commit.c:956
+#: builtin/commit.c:959
#, c-format
msgid "%sDate: %s"
msgstr "%sData: %s"
-#: builtin/commit.c:963
+#: builtin/commit.c:966
#, c-format
msgid "%sCommitter: %.*s <%.*s>"
msgstr "%sComitent: %.*s <%.*s>"
-#: builtin/commit.c:981
+#: builtin/commit.c:984
msgid "Cannot read index"
msgstr "No es pot llegir l'índex"
-#: builtin/commit.c:1026
+#: builtin/commit.c:1029
msgid "unable to pass trailers to --trailers"
msgstr "no s'han pogut passar els «trailers» a --trailers"
-#: builtin/commit.c:1066
+#: builtin/commit.c:1069
msgid "Error building trees"
msgstr "Error en construir els arbres"
-#: builtin/commit.c:1080 builtin/tag.c:316
+#: builtin/commit.c:1083 builtin/tag.c:317
#, c-format
msgid "Please supply the message using either -m or -F option.\n"
msgstr "Especifiqueu el missatge usant l'opció -m o l'opció -F.\n"
-#: builtin/commit.c:1124
+#: builtin/commit.c:1128
#, c-format
msgid "--author '%s' is not 'Name <email>' and matches no existing author"
msgstr ""
"--author «%s» no és «Nom <adreça-electrònica>» i no coincideix amb\n"
"cap autor existent"
-#: builtin/commit.c:1138
+#: builtin/commit.c:1142
#, c-format
msgid "Invalid ignored mode '%s'"
msgstr "Mode d'ignorància no vàlid «%s»"
-#: builtin/commit.c:1156 builtin/commit.c:1451
+#: builtin/commit.c:1160 builtin/commit.c:1450
#, c-format
msgid "Invalid untracked files mode '%s'"
msgstr "Mode de fitxers no seguits no vàlid «%s»"
-#: builtin/commit.c:1227
+#: builtin/commit.c:1231
msgid "You are in the middle of a merge -- cannot reword."
msgstr "Esteu enmig d'una fusió -- no es pot fer «reword»."
-#: builtin/commit.c:1229
+#: builtin/commit.c:1233
msgid "You are in the middle of a cherry-pick -- cannot reword."
msgstr "Esteu enmig d'un «cherry pick» -- no es pot fer «reword»."
-#: builtin/commit.c:1232
+#: builtin/commit.c:1236
#, c-format
msgid "reword option of '%s' and path '%s' cannot be used together"
msgstr "les opcions de «reword» «%s» i camí «%s» no es poden usar juntes"
-#: builtin/commit.c:1234
+#: builtin/commit.c:1238
#, c-format
msgid "reword option of '%s' and '%s' cannot be used together"
msgstr "les opcions de «reword» «%s» i «%s» no es poden usar juntes"
-#: builtin/commit.c:1254
-msgid "Using both --reset-author and --author does not make sense"
-msgstr "Usar ambdós --reset-author i --author no té sentit"
-
-#: builtin/commit.c:1261
+#: builtin/commit.c:1263
msgid "You have nothing to amend."
msgstr "No teniu res a esmenar."
-#: builtin/commit.c:1264
+#: builtin/commit.c:1266
msgid "You are in the middle of a merge -- cannot amend."
msgstr "Esteu enmig d'una fusió -- no es pot esmenar."
-#: builtin/commit.c:1266
+#: builtin/commit.c:1268
msgid "You are in the middle of a cherry-pick -- cannot amend."
msgstr "Esteu enmig d'un «cherry pick» -- no es pot esmenar."
-#: builtin/commit.c:1268
+#: builtin/commit.c:1270
msgid "You are in the middle of a rebase -- cannot amend."
msgstr "Esteu enmig d'un «rebase» -- no es pot esmenar."
-#: builtin/commit.c:1271
-msgid "Options --squash and --fixup cannot be used together"
-msgstr "Les opcions --squash i --fixup no es poden usar juntes"
-
-#: builtin/commit.c:1281
-msgid "Only one of -c/-C/-F/--fixup can be used."
-msgstr "Només un de -c/-C/-F/--fixup es pot usar."
-
-#: builtin/commit.c:1283
-msgid "Option -m cannot be combined with -c/-C/-F."
-msgstr "l'opció -m no es pot combinar amb -c/-C/-F/."
-
-#: builtin/commit.c:1292
+#: builtin/commit.c:1290
msgid "--reset-author can be used only with -C, -c or --amend."
msgstr "--reset-author només es pot usar amb -C, -c o --amend."
-#: builtin/commit.c:1310
-msgid "Only one of --include/--only/--all/--interactive/--patch can be used."
-msgstr "Només un de --include/--only/--all/--interactive/--patch es pot usar."
-
-#: builtin/commit.c:1338
+#: builtin/commit.c:1337
#, c-format
msgid "unknown option: --fixup=%s:%s"
msgstr "opció desconeguda: --fixup=%s:%s"
-#: builtin/commit.c:1355
+#: builtin/commit.c:1354
#, c-format
msgid "paths '%s ...' with -a does not make sense"
msgstr "els camins «%s ...» amb -a no tenen sentit"
-#: builtin/commit.c:1486 builtin/commit.c:1655
+#: builtin/commit.c:1485 builtin/commit.c:1654
msgid "show status concisely"
msgstr "mostra l'estat concisament"
-#: builtin/commit.c:1488 builtin/commit.c:1657
+#: builtin/commit.c:1487 builtin/commit.c:1656
msgid "show branch information"
msgstr "mostra la informació de branca"
-#: builtin/commit.c:1490
+#: builtin/commit.c:1489
msgid "show stash information"
msgstr "mostra la informació de «stash»"
-#: builtin/commit.c:1492 builtin/commit.c:1659
+#: builtin/commit.c:1491 builtin/commit.c:1658
msgid "compute full ahead/behind values"
msgstr "calcula els valors complets endavant/darrere"
-#: builtin/commit.c:1494
+#: builtin/commit.c:1493
msgid "version"
msgstr "versió"
-#: builtin/commit.c:1494 builtin/commit.c:1661 builtin/push.c:551
-#: builtin/worktree.c:690
+#: builtin/commit.c:1493 builtin/commit.c:1660 builtin/push.c:551
+#: builtin/worktree.c:765
msgid "machine-readable output"
msgstr "sortida llegible per una màquina"
-#: builtin/commit.c:1497 builtin/commit.c:1663
+#: builtin/commit.c:1496 builtin/commit.c:1662
msgid "show status in long format (default)"
msgstr "mostra l'estat en format llarg (per defecte)"
-#: builtin/commit.c:1500 builtin/commit.c:1666
+#: builtin/commit.c:1499 builtin/commit.c:1665
msgid "terminate entries with NUL"
msgstr "acaba les entrades amb NUL"
-#: builtin/commit.c:1502 builtin/commit.c:1506 builtin/commit.c:1669
+#: builtin/commit.c:1501 builtin/commit.c:1505 builtin/commit.c:1668
#: builtin/fast-export.c:1172 builtin/fast-export.c:1175
-#: builtin/fast-export.c:1178 builtin/rebase.c:1111 parse-options.h:337
+#: builtin/fast-export.c:1178 builtin/rebase.c:1139 parse-options.h:368
msgid "mode"
msgstr "mode"
-#: builtin/commit.c:1503 builtin/commit.c:1669
+#: builtin/commit.c:1502 builtin/commit.c:1668
msgid "show untracked files, optional modes: all, normal, no. (Default: all)"
msgstr ""
"mostra els fitxers no seguits, modes opcionals: all, normal, no. (Per "
"defecte: all)"
-#: builtin/commit.c:1507
+#: builtin/commit.c:1506
msgid ""
"show ignored files, optional modes: traditional, matching, no. (Default: "
"traditional)"
@@ -14178,11 +14548,11 @@ msgstr ""
"mostra els fitxers ignorats, modes opcionals: traditional, matching, no. "
"(Per defecte: traditional, matching, no.)"
-#: builtin/commit.c:1509 parse-options.h:192
+#: builtin/commit.c:1508 parse-options.h:197
msgid "when"
msgstr "quan"
-#: builtin/commit.c:1510
+#: builtin/commit.c:1509
msgid ""
"ignore changes to submodules, optional when: all, dirty, untracked. "
"(Default: all)"
@@ -14190,196 +14560,196 @@ msgstr ""
"ignora els canvis als submòduls, opcional quan: all, dirty, untracked. (Per "
"defecte: all)"
-#: builtin/commit.c:1512
+#: builtin/commit.c:1511
msgid "list untracked files in columns"
msgstr "mostra els fitxers no seguits en columnes"
-#: builtin/commit.c:1513
+#: builtin/commit.c:1512
msgid "do not detect renames"
msgstr "no detectis canvis de noms"
-#: builtin/commit.c:1515
+#: builtin/commit.c:1514
msgid "detect renames, optionally set similarity index"
msgstr ""
"detecta canvis de noms, i opcionalment estableix un índex de semblança"
-#: builtin/commit.c:1538
+#: builtin/commit.c:1537
msgid "Unsupported combination of ignored and untracked-files arguments"
msgstr ""
"No s'admet la combinació d'arguments d'ignorància i de fitxers no seguits"
-#: builtin/commit.c:1620
+#: builtin/commit.c:1619
msgid "suppress summary after successful commit"
msgstr "omet el resum després d'una comissió reeixida"
-#: builtin/commit.c:1621
+#: builtin/commit.c:1620
msgid "show diff in commit message template"
msgstr "mostra la diferència en la plantilla de missatge de comissió"
-#: builtin/commit.c:1623
+#: builtin/commit.c:1622
msgid "Commit message options"
msgstr "Opcions de missatge de comissió"
-#: builtin/commit.c:1624 builtin/merge.c:288 builtin/tag.c:456
+#: builtin/commit.c:1623 builtin/merge.c:288 builtin/tag.c:457
msgid "read message from file"
msgstr "llegiu el missatge des d'un fitxer"
-#: builtin/commit.c:1625
+#: builtin/commit.c:1624
msgid "author"
msgstr "autor"
-#: builtin/commit.c:1625
+#: builtin/commit.c:1624
msgid "override author for commit"
msgstr "sobreescriu l'autor de la comissió"
-#: builtin/commit.c:1626 builtin/gc.c:551
+#: builtin/commit.c:1625 builtin/gc.c:551
msgid "date"
msgstr "data"
-#: builtin/commit.c:1626
+#: builtin/commit.c:1625
msgid "override date for commit"
msgstr "sobreescriu la data de la comissió"
-#: builtin/commit.c:1628 builtin/commit.c:1629 builtin/commit.c:1635
-#: parse-options.h:329 ref-filter.h:89
+#: builtin/commit.c:1627 builtin/commit.c:1628 builtin/commit.c:1634
+#: parse-options.h:360 ref-filter.h:89
msgid "commit"
msgstr "comissió"
-#: builtin/commit.c:1628
+#: builtin/commit.c:1627
msgid "reuse and edit message from specified commit"
msgstr "reusa i edita el missatge de la comissió especificada"
-#: builtin/commit.c:1629
+#: builtin/commit.c:1628
msgid "reuse message from specified commit"
msgstr "reusa el missatge de la comissió especificada"
#. TRANSLATORS: Leave "[(amend|reword):]" as-is,
#. and only translate <commit>.
-#: builtin/commit.c:1634
+#: builtin/commit.c:1633
msgid "[(amend|reword):]commit"
msgstr "[(amend|reword):]commit"
-#: builtin/commit.c:1634
+#: builtin/commit.c:1633
msgid ""
"use autosquash formatted message to fixup or amend/reword specified commit"
msgstr ""
"usa un missatge amb format de «squash» automàtic per a esmenar la comissió "
"especificada"
-#: builtin/commit.c:1635
+#: builtin/commit.c:1634
msgid "use autosquash formatted message to squash specified commit"
msgstr ""
"usa un missatge amb format de «squash» automàtic per a fer «squash» de la "
"comissió especificada"
-#: builtin/commit.c:1636
+#: builtin/commit.c:1635
msgid "the commit is authored by me now (used with -C/-c/--amend)"
msgstr "l'autor de la comissió soc jo ara (s'usa amb -C/-c/--amend)"
-#: builtin/commit.c:1637 builtin/interpret-trailers.c:111
+#: builtin/commit.c:1636 builtin/interpret-trailers.c:111
msgid "trailer"
msgstr "remolc"
-#: builtin/commit.c:1637
+#: builtin/commit.c:1636
msgid "add custom trailer(s)"
msgstr "afegeix un «trailer» personalitzat"
-#: builtin/commit.c:1638 builtin/log.c:1769 builtin/merge.c:306
+#: builtin/commit.c:1637 builtin/log.c:1788 builtin/merge.c:306
#: builtin/pull.c:146 builtin/revert.c:110
msgid "add a Signed-off-by trailer"
msgstr "afegeix un «trailer» tipus «Signed-off-by»"
-#: builtin/commit.c:1639
+#: builtin/commit.c:1638
msgid "use specified template file"
msgstr "usa el fitxer de plantilla especificat"
-#: builtin/commit.c:1640
+#: builtin/commit.c:1639
msgid "force edit of commit"
msgstr "força l'edició de la comissió"
-#: builtin/commit.c:1642
+#: builtin/commit.c:1641
msgid "include status in commit message template"
msgstr "inclou l'estat en la plantilla de missatge de comissió"
-#: builtin/commit.c:1647
+#: builtin/commit.c:1646
msgid "Commit contents options"
msgstr "Opcions per al contingut de les comissions"
-#: builtin/commit.c:1648
+#: builtin/commit.c:1647
msgid "commit all changed files"
msgstr "comet tots els fitxers canviats"
-#: builtin/commit.c:1649
+#: builtin/commit.c:1648
msgid "add specified files to index for commit"
msgstr "afegeix els fitxers especificats a l'índex per a cometre"
-#: builtin/commit.c:1650
+#: builtin/commit.c:1649
msgid "interactively add files"
msgstr "afegeix els fitxers interactivament"
-#: builtin/commit.c:1651
+#: builtin/commit.c:1650
msgid "interactively add changes"
msgstr "afegeix els canvis interactivament"
-#: builtin/commit.c:1652
+#: builtin/commit.c:1651
msgid "commit only specified files"
msgstr "comet només els fitxers especificats"
-#: builtin/commit.c:1653
+#: builtin/commit.c:1652
msgid "bypass pre-commit and commit-msg hooks"
msgstr "evita els lligams de precomissió i missatge de comissió"
-#: builtin/commit.c:1654
+#: builtin/commit.c:1653
msgid "show what would be committed"
msgstr "mostra què es cometria"
-#: builtin/commit.c:1667
+#: builtin/commit.c:1666
msgid "amend previous commit"
msgstr "esmena la comissió anterior"
-#: builtin/commit.c:1668
+#: builtin/commit.c:1667
msgid "bypass post-rewrite hook"
msgstr "evita el lligam de post escriptura"
-#: builtin/commit.c:1675
+#: builtin/commit.c:1674
msgid "ok to record an empty change"
msgstr "està bé registrar un canvi buit"
-#: builtin/commit.c:1677
+#: builtin/commit.c:1676
msgid "ok to record a change with an empty message"
msgstr "està bé registrar un canvi amb missatge buit"
-#: builtin/commit.c:1753
+#: builtin/commit.c:1752
#, c-format
msgid "Corrupt MERGE_HEAD file (%s)"
msgstr "Fitxer MERGE_HEAD malmès (%s)"
-#: builtin/commit.c:1760
+#: builtin/commit.c:1759
msgid "could not read MERGE_MODE"
msgstr "no s'ha pogut llegir MERGE_MODE"
-#: builtin/commit.c:1781
+#: builtin/commit.c:1780
#, c-format
msgid "could not read commit message: %s"
msgstr "no s'ha pogut llegir el missatge de comissió: %s"
-#: builtin/commit.c:1788
+#: builtin/commit.c:1787
#, c-format
msgid "Aborting commit due to empty commit message.\n"
msgstr "S'està avortant la comissió a causa d'un missatge de comissió buit.\n"
-#: builtin/commit.c:1793
+#: builtin/commit.c:1792
#, c-format
msgid "Aborting commit; you did not edit the message.\n"
msgstr "S'està avortant la comissió; no heu editat el missatge.\n"
-#: builtin/commit.c:1804
+#: builtin/commit.c:1803
#, c-format
msgid "Aborting commit due to empty commit message body.\n"
msgstr ""
"S'està interrompent la comissió a causa d'un missatge de comissió buit.\n"
-#: builtin/commit.c:1840
+#: builtin/commit.c:1839
msgid ""
"repository has been updated, but unable to write\n"
"new_index file. Check that disk is not full and quota is\n"
@@ -14506,6 +14876,10 @@ msgstr "troba el paràmetre de color: ranura [stdout-és-tty]"
msgid "Type"
msgstr "Tipus"
+#: builtin/config.c:154 builtin/env--helper.c:42 builtin/hash-object.c:97
+msgid "type"
+msgstr "tipus"
+
#: builtin/config.c:154 builtin/env--helper.c:43
msgid "value is given this type"
msgstr "el valor té donat aquest tipus"
@@ -14720,10 +15094,6 @@ msgstr ""
msgid "no such section: %s"
msgstr "no existeix la secció: %s"
-#: builtin/count-objects.c:90
-msgid "git count-objects [-v] [-H | --human-readable]"
-msgstr "git count-objects [-v] [-H | --human-readable]"
-
#: builtin/count-objects.c:100
msgid "print sizes in human readable format"
msgstr "imprimeix les mides en un format llegible pels humans"
@@ -14899,7 +15269,7 @@ msgstr "només considera les etiquetes que coincideixen amb <patró>"
msgid "do not consider tags matching <pattern>"
msgstr "no consideris les etiquetes que no coincideixen amb <patró>"
-#: builtin/describe.c:570 builtin/name-rev.c:544
+#: builtin/describe.c:570 builtin/name-rev.c:595
msgid "show abbreviated commit object as fallback"
msgstr "mostra l'objecte de comissió abreviat com a sistema alternatiu"
@@ -14947,7 +15317,7 @@ msgstr "%s...%s: sense una base de fusió"
msgid "Not a git repository"
msgstr "No és un repositori de git"
-#: builtin/diff.c:537 builtin/grep.c:698
+#: builtin/diff.c:537 builtin/grep.c:700
#, c-format
msgid "invalid object '%s' given."
msgstr "s'ha donat un objecte no vàlid «%s»."
@@ -15066,11 +15436,11 @@ msgstr "passa-ho a «diff»"
msgid "difftool requires worktree or --no-index"
msgstr "difftool requereix worktree o --no-index"
-#: builtin/difftool.c:744
+#: builtin/difftool.c:745
msgid "no <tool> given for --tool=<tool>"
msgstr "no s'ha proporcionat l'<eina> per a --tool=<eina>"
-#: builtin/difftool.c:751
+#: builtin/difftool.c:752
msgid "no <cmd> given for --extcmd=<cmd>"
msgstr "no s'ha proporcionat l'<ordre> per a --extcmd=<ordre>"
@@ -15078,10 +15448,6 @@ msgstr "no s'ha proporcionat l'<ordre> per a --extcmd=<ordre>"
msgid "git env--helper --type=[bool|ulong] <options> <env-var>"
msgstr "git env--helper --type=[bool|ulong] <opcions> <env-var>"
-#: builtin/env--helper.c:42 builtin/hash-object.c:96
-msgid "type"
-msgstr "tipus"
-
#: builtin/env--helper.c:46
msgid "default for git_env_*(...) to fall back on"
msgstr "valor per defecte per a git_env_*(...) en cas d'absència"
@@ -15103,11 +15469,11 @@ msgid ""
"`%s`"
msgstr ""
"l'opció «--default» espera un valor llarg sense signe amb «--type=ulong», no"
-" `%s`"
+" «%s»"
#: builtin/fast-export.c:29
-msgid "git fast-export [rev-list-opts]"
-msgstr "git fast-export [opcions-de-llista-de-revisions]"
+msgid "git fast-export [<rev-list-opts>]"
+msgstr "git fast-export [<rev-list-opts>]"
#: builtin/fast-export.c:843
msgid "Error: Cannot export nested tags unless --mark-tags is specified."
@@ -15165,7 +15531,7 @@ msgstr "usa la característica fet per a acabar el flux"
msgid "skip output of blob data"
msgstr "omet la sortida de dades de blob"
-#: builtin/fast-export.c:1196 builtin/log.c:1841
+#: builtin/fast-export.c:1196 builtin/log.c:1860
msgid "refspec"
msgstr "especificació de referència"
@@ -15199,39 +15565,39 @@ msgstr "mostra els ID dels objectes originals dels blobs i comissions"
msgid "label tags with mark ids"
msgstr "marca les etiquetes amb els identificadors de marca"
-#: builtin/fast-import.c:3090
+#: builtin/fast-import.c:3097
#, c-format
msgid "Missing from marks for submodule '%s'"
msgstr "Falten les marques «from» per al submòdul «%s»"
-#: builtin/fast-import.c:3092
+#: builtin/fast-import.c:3099
#, c-format
msgid "Missing to marks for submodule '%s'"
msgstr "Falten les marques per al submòdul «%s»"
-#: builtin/fast-import.c:3227
+#: builtin/fast-import.c:3234
#, c-format
msgid "Expected 'mark' command, got %s"
msgstr "S'esperava l'ordre «mark», s'ha rebut %s"
-#: builtin/fast-import.c:3232
+#: builtin/fast-import.c:3239
#, c-format
msgid "Expected 'to' command, got %s"
msgstr "S'esperava l'ordre «to», s'ha rebut «%s»"
-#: builtin/fast-import.c:3324
+#: builtin/fast-import.c:3331
msgid "Expected format name:filename for submodule rewrite option"
msgstr ""
"S'esperava el format «nom:nom de fitxer» per a l'opció de reescriptura de "
"submòdul"
-#: builtin/fast-import.c:3379
+#: builtin/fast-import.c:3386
#, c-format
msgid "feature '%s' forbidden in input without --allow-unsafe-features"
msgstr ""
"característica «%s» prohibida a l'entrada sense --allow-unsafe-features"
-#: builtin/fetch-pack.c:242
+#: builtin/fetch-pack.c:246
#, c-format
msgid "Lockfile created but not reported: %s"
msgstr "S'ha creat el fitxer de bloqueig però no s'ha informat: %s"
@@ -15253,104 +15619,109 @@ msgstr "git fetch --multiple [<opcions>] [(<repositori> | <grup>)...]"
msgid "git fetch --all [<options>]"
msgstr "git fetch --all [<opcions>]"
-#: builtin/fetch.c:123
+#: builtin/fetch.c:124
msgid "fetch.parallel cannot be negative"
msgstr "fetch.parallel no pot ser negatiu"
-#: builtin/fetch.c:146 builtin/pull.c:189
+#: builtin/fetch.c:147 builtin/pull.c:189
msgid "fetch from all remotes"
msgstr "obtén de tots els remots"
-#: builtin/fetch.c:148 builtin/pull.c:249
+#: builtin/fetch.c:149 builtin/pull.c:249
msgid "set upstream for git pull/fetch"
msgstr "estableix la font per a git pull/fetch"
-#: builtin/fetch.c:150 builtin/pull.c:192
+#: builtin/fetch.c:151 builtin/pull.c:192
msgid "append to .git/FETCH_HEAD instead of overwriting"
msgstr "annexa a .git/FETCH_HEAD en lloc de sobreescriure"
-#: builtin/fetch.c:152
+#: builtin/fetch.c:153
msgid "use atomic transaction to update references"
msgstr "usa una transacció atòmica per a actualitzar les referències"
-#: builtin/fetch.c:154 builtin/pull.c:195
+#: builtin/fetch.c:155 builtin/pull.c:195
msgid "path to upload pack on remote end"
msgstr "camí al qual pujar el paquet al costat remot"
-#: builtin/fetch.c:155
+#: builtin/fetch.c:156
msgid "force overwrite of local reference"
msgstr "força la sobreescriptura de la referència local"
-#: builtin/fetch.c:157
+#: builtin/fetch.c:158
msgid "fetch from multiple remotes"
msgstr "obtén de múltiples remots"
-#: builtin/fetch.c:159 builtin/pull.c:199
+#: builtin/fetch.c:160 builtin/pull.c:199
msgid "fetch all tags and associated objects"
msgstr "obtén totes les etiquetes i tots els objectes associats"
-#: builtin/fetch.c:161
+#: builtin/fetch.c:162
msgid "do not fetch all tags (--no-tags)"
msgstr "no obtinguis les etiquetes (--no-tags)"
-#: builtin/fetch.c:163
+#: builtin/fetch.c:164
msgid "number of submodules fetched in parallel"
msgstr "nombre de submòduls obtinguts en paral·lel"
-#: builtin/fetch.c:165
+#: builtin/fetch.c:166
msgid "modify the refspec to place all refs within refs/prefetch/"
msgstr ""
-"modifica l'especificació de referència per a col·locar totes les referències "
-"dins de refs/prefetch/"
+"modifica l'especificació de referència per a col·locar totes les referències"
+" dins de refs/prefetch/"
-#: builtin/fetch.c:167 builtin/pull.c:202
+#: builtin/fetch.c:168 builtin/pull.c:202
msgid "prune remote-tracking branches no longer on remote"
msgstr "poda les branques amb seguiment remot que ja no estiguin en el remot"
-#: builtin/fetch.c:169
+#: builtin/fetch.c:170
msgid "prune local tags no longer on remote and clobber changed tags"
msgstr ""
"poda les etiquetes locals que ja no existeixen al remot i adjunta les "
"etiquetes que han canviat"
-#: builtin/fetch.c:170 builtin/fetch.c:195 builtin/pull.c:123
+#: builtin/fetch.c:171 builtin/fetch.c:199 builtin/pull.c:123
msgid "on-demand"
msgstr "sota demanda"
-#: builtin/fetch.c:171
+#: builtin/fetch.c:172
msgid "control recursive fetching of submodules"
msgstr "controla l'obtenció recursiva de submòduls"
-#: builtin/fetch.c:176
+#: builtin/fetch.c:177
msgid "write fetched references to the FETCH_HEAD file"
msgstr "escriu les referències obtingudes al fitxer FETCH_HEAD"
-#: builtin/fetch.c:177 builtin/pull.c:210
+#: builtin/fetch.c:178 builtin/pull.c:210
msgid "keep downloaded pack"
msgstr "retén el paquet baixat"
-#: builtin/fetch.c:179
+#: builtin/fetch.c:180
msgid "allow updating of HEAD ref"
msgstr "permet l'actualització de la referència HEAD"
-#: builtin/fetch.c:182 builtin/fetch.c:188 builtin/pull.c:213
+#: builtin/fetch.c:183 builtin/fetch.c:189 builtin/pull.c:213
#: builtin/pull.c:222
msgid "deepen history of shallow clone"
msgstr "aprofundeix la història d'un clon superficial"
-#: builtin/fetch.c:184 builtin/pull.c:216
+#: builtin/fetch.c:185 builtin/pull.c:216
msgid "deepen history of shallow repository based on time"
msgstr "aprofundeix la història d'un clon superficial basat en una data"
-#: builtin/fetch.c:190 builtin/pull.c:225
+#: builtin/fetch.c:191 builtin/pull.c:225
msgid "convert to a complete repository"
msgstr "converteix en un repositori complet"
-#: builtin/fetch.c:193
+#: builtin/fetch.c:194
+#, fuzzy
+msgid "re-fetch without negotiating common commits"
+msgstr "tornar a capturar sense negociar comissions comunes"
+
+#: builtin/fetch.c:197
msgid "prepend this to submodule path output"
msgstr "anteposa això a la sortida de camí del submòdul"
-#: builtin/fetch.c:196
+#: builtin/fetch.c:200
msgid ""
"default for recursive fetching of submodules (lower priority than config "
"files)"
@@ -15358,110 +15729,105 @@ msgstr ""
"per defecte per a l'obtenció recursiva de submòduls (prioritat més baixa que"
" els fitxers de configuració)"
-#: builtin/fetch.c:200 builtin/pull.c:228
+#: builtin/fetch.c:204 builtin/pull.c:228
msgid "accept refs that update .git/shallow"
msgstr "accepta les referències que actualitzin .git/shallow"
-#: builtin/fetch.c:201 builtin/pull.c:230
+#: builtin/fetch.c:205 builtin/pull.c:230
msgid "refmap"
msgstr "mapa de referències"
-#: builtin/fetch.c:202 builtin/pull.c:231
+#: builtin/fetch.c:206 builtin/pull.c:231
msgid "specify fetch refmap"
msgstr "específica l'obtenció del mapa de referències"
-#: builtin/fetch.c:209 builtin/pull.c:244
+#: builtin/fetch.c:213 builtin/pull.c:244
msgid "report that we have only objects reachable from this object"
msgstr "informa que només hi ha objectes abastables des d'aquest objecte"
-#: builtin/fetch.c:211
+#: builtin/fetch.c:215
msgid "do not fetch a packfile; instead, print ancestors of negotiation tips"
msgstr ""
"no obtinguis un fitxer de paquet; en canvi, mostra els avantpassats dels "
"consells de negociació"
-#: builtin/fetch.c:214 builtin/fetch.c:216
+#: builtin/fetch.c:218 builtin/fetch.c:220
msgid "run 'maintenance --auto' after fetching"
msgstr "executa «maintenance --auto» després d'obtenir"
-#: builtin/fetch.c:218 builtin/pull.c:247
+#: builtin/fetch.c:222 builtin/pull.c:247
msgid "check for forced-updates on all updated branches"
msgstr ""
"comprova si hi ha actualitzacions forçades a totes les branques "
"actualitzades"
-#: builtin/fetch.c:220
+#: builtin/fetch.c:224
msgid "write the commit-graph after fetching"
msgstr "escriu el graf de comissions després de recollir"
-#: builtin/fetch.c:222
+#: builtin/fetch.c:226
msgid "accept refspecs from stdin"
msgstr "llegeix les especificacions de referència des de stdin"
-#: builtin/fetch.c:592
+#: builtin/fetch.c:618
msgid "couldn't find remote ref HEAD"
msgstr "no s'ha pogut trobar la referència HEAD remota"
-#: builtin/fetch.c:766
-#, c-format
-msgid "configuration fetch.output contains invalid value %s"
-msgstr "la configuració fetch.output conté un valor no vàlid %s"
-
-#: builtin/fetch.c:867
+#: builtin/fetch.c:893
#, c-format
msgid "object %s not found"
msgstr "objecte %s no trobat"
-#: builtin/fetch.c:871
+#: builtin/fetch.c:897
msgid "[up to date]"
msgstr "[al dia]"
-#: builtin/fetch.c:883 builtin/fetch.c:901 builtin/fetch.c:973
+#: builtin/fetch.c:909 builtin/fetch.c:927 builtin/fetch.c:999
msgid "[rejected]"
msgstr "[rebutjat]"
-#: builtin/fetch.c:885
+#: builtin/fetch.c:911
msgid "can't fetch in current branch"
msgstr "no es pot obtenir en la branca actual"
-#: builtin/fetch.c:886
+#: builtin/fetch.c:912
msgid "checked out in another worktree"
msgstr "s'ha agafat en un altre arbre de treball"
-#: builtin/fetch.c:896
+#: builtin/fetch.c:922
msgid "[tag update]"
msgstr "[actualització d'etiqueta]"
-#: builtin/fetch.c:897 builtin/fetch.c:934 builtin/fetch.c:956
-#: builtin/fetch.c:968
+#: builtin/fetch.c:923 builtin/fetch.c:960 builtin/fetch.c:982
+#: builtin/fetch.c:994
msgid "unable to update local ref"
msgstr "no s'ha pogut actualitzar la referència local"
-#: builtin/fetch.c:901
+#: builtin/fetch.c:927
msgid "would clobber existing tag"
msgstr "s'adjuntaria l'etiqueta existent"
-#: builtin/fetch.c:923
+#: builtin/fetch.c:949
msgid "[new tag]"
msgstr "[etiqueta nova]"
-#: builtin/fetch.c:926
+#: builtin/fetch.c:952
msgid "[new branch]"
msgstr "[branca nova]"
-#: builtin/fetch.c:929
+#: builtin/fetch.c:955
msgid "[new ref]"
msgstr "[referència nova]"
-#: builtin/fetch.c:968
+#: builtin/fetch.c:994
msgid "forced update"
msgstr "actualització forçada"
-#: builtin/fetch.c:973
+#: builtin/fetch.c:999
msgid "non-fast-forward"
msgstr "sense avanç ràpid"
-#: builtin/fetch.c:1076
+#: builtin/fetch.c:1102
msgid ""
"fetch normally indicates which branches had a forced update,\n"
"but that check has been disabled; to re-enable, use '--show-forced-updates'\n"
@@ -15471,7 +15837,7 @@ msgstr ""
"però aquesta comprovació s'ha desactivat. Per a tornar a habilitar-la, utilitzeu\n"
"«--show-forced-updates» o executeu «git config fetch.showForcedUpdates true»"
-#: builtin/fetch.c:1080
+#: builtin/fetch.c:1106
#, c-format
msgid ""
"it took %.2f seconds to check forced updates; you can use\n"
@@ -15482,23 +15848,23 @@ msgstr ""
"utilitzar «--no-show-forced-updates» o executar «git config \n"
"fetch.showForcedUpdates false» per a evitar aquesta comprovació.\n"
-#: builtin/fetch.c:1112
+#: builtin/fetch.c:1136
#, c-format
msgid "%s did not send all necessary objects\n"
msgstr "%s no ha enviat tots els objectes necessaris\n"
-#: builtin/fetch.c:1141
+#: builtin/fetch.c:1156
#, c-format
msgid "rejected %s because shallow roots are not allowed to be updated"
msgstr ""
"s'ha rebutjat %s perquè no es permeten actualitzar les arrels superficials"
-#: builtin/fetch.c:1231 builtin/fetch.c:1379
+#: builtin/fetch.c:1259 builtin/fetch.c:1418
#, c-format
msgid "From %.*s\n"
msgstr "De %.*s\n"
-#: builtin/fetch.c:1252
+#: builtin/fetch.c:1269
#, c-format
msgid ""
"some local refs could not be updated; try running\n"
@@ -15508,71 +15874,71 @@ msgstr ""
" intenteu executar «git remote prune %s» per a eliminar\n"
" qualsevol branca antiga o conflictiva"
-#: builtin/fetch.c:1349
+#: builtin/fetch.c:1377
#, c-format
msgid " (%s will become dangling)"
msgstr " (%s es tornarà penjant)"
-#: builtin/fetch.c:1350
+#: builtin/fetch.c:1378
#, c-format
msgid " (%s has become dangling)"
msgstr " (%s s'ha tornat penjant)"
-#: builtin/fetch.c:1382
+#: builtin/fetch.c:1421
msgid "[deleted]"
msgstr "[suprimit]"
-#: builtin/fetch.c:1383 builtin/remote.c:1128
+#: builtin/fetch.c:1422 builtin/remote.c:1153
msgid "(none)"
msgstr "(cap)"
-#: builtin/fetch.c:1405
+#: builtin/fetch.c:1446
#, c-format
msgid "refusing to fetch into branch '%s' checked out at '%s'"
msgstr "s'ha rebutjat l'obtenció en la branca «%s» agafada a «%s»"
-#: builtin/fetch.c:1425
+#: builtin/fetch.c:1466
#, c-format
msgid "option \"%s\" value \"%s\" is not valid for %s"
msgstr "l'opció «%s» amb valor «%s» no és vàlida per a %s"
-#: builtin/fetch.c:1428
+#: builtin/fetch.c:1469
#, c-format
msgid "option \"%s\" is ignored for %s\n"
msgstr "s'ignora l'opció «%s» per a %s\n"
-#: builtin/fetch.c:1455
+#: builtin/fetch.c:1496
#, c-format
msgid "the object %s does not exist"
msgstr "l'objecte %s no existeix"
-#: builtin/fetch.c:1643
+#: builtin/fetch.c:1748
msgid "multiple branches detected, incompatible with --set-upstream"
msgstr "s'han detectat múltiples branques, incompatible amb --set-upstream"
-#: builtin/fetch.c:1655
+#: builtin/fetch.c:1760
#, c-format
msgid ""
"could not set upstream of HEAD to '%s' from '%s' when it does not point to "
"any branch."
msgstr ""
-"no s'ha pogut establir la font de HEAD a «%s» des de «%s» quan no assenyala cap "
-"branca."
+"no s'ha pogut establir la font de HEAD a «%s» des de «%s» quan no assenyala "
+"cap branca."
-#: builtin/fetch.c:1668
+#: builtin/fetch.c:1773
msgid "not setting upstream for a remote remote-tracking branch"
msgstr ""
"no s'està configurant la font per a una branca remota amb seguiment remot"
-#: builtin/fetch.c:1670
+#: builtin/fetch.c:1775
msgid "not setting upstream for a remote tag"
msgstr "no s'està configurant la font d'una etiqueta remota"
-#: builtin/fetch.c:1672
+#: builtin/fetch.c:1777
msgid "unknown branch type"
msgstr "tipus de branca desconegut"
-#: builtin/fetch.c:1674
+#: builtin/fetch.c:1779
msgid ""
"no source branch found;\n"
"you need to specify exactly one branch with the --set-upstream option"
@@ -15580,22 +15946,22 @@ msgstr ""
"no s'ha trobat cap branca d'origen.\n"
"heu d'especificar exactament una branca amb l'opció --set-upstream"
-#: builtin/fetch.c:1804 builtin/fetch.c:1867
+#: builtin/fetch.c:1904 builtin/fetch.c:1967
#, c-format
msgid "Fetching %s\n"
msgstr "S'està obtenint %s\n"
-#: builtin/fetch.c:1814 builtin/fetch.c:1869
+#: builtin/fetch.c:1914 builtin/fetch.c:1969
#, c-format
msgid "could not fetch %s"
msgstr "no s'ha pogut obtenir %s"
-#: builtin/fetch.c:1826
+#: builtin/fetch.c:1926
#, c-format
msgid "could not fetch '%s' (exit code: %d)\n"
msgstr "no s'ha pogut obtenir «%s» (codi de sortida: %d)\n"
-#: builtin/fetch.c:1930
+#: builtin/fetch.c:2030
msgid ""
"no remote repository specified; please specify either a URL or a\n"
"remote name from which new revisions should be fetched"
@@ -15603,48 +15969,49 @@ msgstr ""
"no s'ha especificat cap repositori remot. Especifiqueu un URL o\n"
"un nom remot del qual s'han d'obtenir les revisions noves"
-#: builtin/fetch.c:1966
+#: builtin/fetch.c:2066
msgid "you need to specify a tag name"
msgstr "necessiteu especificar un nom d'etiqueta"
-#: builtin/fetch.c:2032
-msgid "--negotiate-only needs one or more --negotiate-tip=*"
-msgstr "--negotiate-only necessita un o més --negotiate-tip=*"
+#: builtin/fetch.c:2156
+#, fuzzy
+msgid "--negotiate-only needs one or more --negotiation-tip=*"
+msgstr "--negotiate-only necessita un o més --negotiation-tip=*"
-#: builtin/fetch.c:2036
+#: builtin/fetch.c:2160
msgid "negative depth in --deepen is not supported"
msgstr "no s'admet una profunditat negativa en --deepen"
-#: builtin/fetch.c:2045
+#: builtin/fetch.c:2169
msgid "--unshallow on a complete repository does not make sense"
msgstr "--unshallow en un repositori complet no té sentit"
-#: builtin/fetch.c:2062
+#: builtin/fetch.c:2186
msgid "fetch --all does not take a repository argument"
msgstr "fetch --all no accepta un argument de repositori"
-#: builtin/fetch.c:2064
+#: builtin/fetch.c:2188
msgid "fetch --all does not make sense with refspecs"
msgstr "fetch --all no té sentit amb especificacions de referència"
-#: builtin/fetch.c:2073
+#: builtin/fetch.c:2197
#, c-format
msgid "no such remote or remote group: %s"
msgstr "no existeix un remot ni un grup remot: %s"
-#: builtin/fetch.c:2081
+#: builtin/fetch.c:2205
msgid "fetching a group and specifying refspecs does not make sense"
msgstr "obtenir un grup i especificar referències no té sentit"
-#: builtin/fetch.c:2097
+#: builtin/fetch.c:2221
msgid "must supply remote when using --negotiate-only"
msgstr "s'ha de subministrar el remot en usar --negotiate-only"
-#: builtin/fetch.c:2102
+#: builtin/fetch.c:2226
msgid "protocol does not support --negotiate-only, exiting"
msgstr "el protocol no admet --negotiate-only, se surt"
-#: builtin/fetch.c:2121
+#: builtin/fetch.c:2246
msgid ""
"--filter can only be used with the remote configured in "
"extensions.partialclone"
@@ -15652,11 +16019,11 @@ msgstr ""
"--filter només es pot utilitzar amb el remot configurat en "
"extensions.partialclone"
-#: builtin/fetch.c:2125
+#: builtin/fetch.c:2250
msgid "--atomic can only be used when fetching from one remote"
msgstr "l'opció --atomic només es pot usar quan s'obté des d'un remot"
-#: builtin/fetch.c:2129
+#: builtin/fetch.c:2254
msgid "--stdin can only be used when fetching from one remote"
msgstr "l'opció --stdin només es pot usar quan s'obté des d'un remot"
@@ -15728,7 +16095,7 @@ msgstr "posa els marcadors de posició entre cometes adequades per al Tcl"
msgid "show only <n> matched refs"
msgstr "mostra només <n> referències coincidents"
-#: builtin/for-each-ref.c:42 builtin/tag.c:481
+#: builtin/for-each-ref.c:42 builtin/tag.c:482
msgid "respect format colors"
msgstr "respecta els colors del format"
@@ -15922,7 +16289,7 @@ msgstr "S'estan comprovant els directoris d'objecte"
msgid "Checking %s link"
msgstr "S'està comprovant l'enllaç %s"
-#: builtin/fsck.c:710 builtin/index-pack.c:859
+#: builtin/fsck.c:710 builtin/index-pack.c:862
#, c-format
msgid "invalid %s"
msgstr "%s no vàlid"
@@ -15981,8 +16348,7 @@ msgstr "fes dels objectes d'índex nodes cap"
#: builtin/fsck.c:795
msgid "make reflogs head nodes (default)"
-msgstr ""
-"fes que els registres de referències siguin nodes cap (per defecte)"
+msgstr "fes que els registres de referències siguin nodes cap (per defecte)"
#: builtin/fsck.c:796
msgid "also consider packs and alternate objects"
@@ -15992,7 +16358,7 @@ msgstr "també considera els paquets i els objectes alternatius"
msgid "check only connectivity"
msgstr "comprova només la connectivitat"
-#: builtin/fsck.c:798 builtin/mktag.c:76
+#: builtin/fsck.c:798 builtin/mktag.c:75
msgid "enable more strict checking"
msgstr "habilita la comprovació més estricta"
@@ -16022,6 +16388,124 @@ msgstr "%s: falta l'objecte"
msgid "invalid parameter: expected sha1, got '%s'"
msgstr "paràmetre no vàlid: s'esperava sha1, s'ha obtingut «%s»"
+#: builtin/fsmonitor--daemon.c:13
+msgid "git fsmonitor--daemon start [<options>]"
+msgstr "git fsmonitor--daemon start [<options>]"
+
+#: builtin/fsmonitor--daemon.c:14
+msgid "git fsmonitor--daemon run [<options>]"
+msgstr "git fsmonitor--daemon run [<options>]"
+
+#: builtin/fsmonitor--daemon.c:15
+msgid "git fsmonitor--daemon stop"
+msgstr "git fsmonitor--daemon stop"
+
+#: builtin/fsmonitor--daemon.c:16
+msgid "git fsmonitor--daemon status"
+msgstr "git fsmonitor--daemon status"
+
+#: builtin/fsmonitor--daemon.c:38 builtin/fsmonitor--daemon.c:47
+#, c-format
+msgid "value of '%s' out of range: %d"
+msgstr "el valor de «%s» està fora de rang: %d"
+
+#: builtin/fsmonitor--daemon.c:57
+#, c-format, fuzzy
+msgid "value of '%s' not bool or int: %d"
+msgstr "valor de \"%s\" no bool ni int: el percentatge"
+
+#: builtin/fsmonitor--daemon.c:99
+#, c-format
+msgid "fsmonitor-daemon is watching '%s'\n"
+msgstr "fsmonitor-daemon està veient '%s'\n"
+
+#: builtin/fsmonitor--daemon.c:104
+#, c-format
+msgid "fsmonitor-daemon is not watching '%s'\n"
+msgstr "fsmonitor-daemon no està vigilant «%s»\n"
+
+#: builtin/fsmonitor--daemon.c:170
+#, c-format, fuzzy
+msgid "could not create fsmonitor cookie '%s'"
+msgstr "no s'ha pogut crear la galeta fsmonitor '%s'"
+
+#: builtin/fsmonitor--daemon.c:753
+#, c-format
+msgid "fsmonitor: cookie_result '%d' != SEEN"
+msgstr "fsmonitor: cookie_result '%d' != SEEN"
+
+#: builtin/fsmonitor--daemon.c:1187
+#, c-format, fuzzy
+msgid "could not start IPC thread pool on '%s'"
+msgstr "no s'ha pogut iniciar el grup de fils IPC a «%s»"
+
+#: builtin/fsmonitor--daemon.c:1199
+#, fuzzy
+msgid "could not start fsmonitor listener thread"
+msgstr "no s'ha pogut iniciar el fil d'oient del fsmonitor"
+
+#: builtin/fsmonitor--daemon.c:1297
+#, fuzzy
+msgid "could not initialize listener thread"
+msgstr "no s'ha pogut inicialitzar el fil d'oient"
+
+#: builtin/fsmonitor--daemon.c:1328 builtin/fsmonitor--daemon.c:1383
+#, c-format
+msgid "fsmonitor--daemon is already running '%s'"
+msgstr "fsmonitor--daemon is already running «%s»"
+
+#: builtin/fsmonitor--daemon.c:1332
+#, c-format
+msgid "running fsmonitor-daemon in '%s'\n"
+msgstr "s'està executant fsmonitor-daemon en «%s»\n"
+
+#: builtin/fsmonitor--daemon.c:1387
+#, c-format, fuzzy
+msgid "starting fsmonitor-daemon in '%s'\n"
+msgstr "s'està iniciant fsmonitor-daemon a «%s»"
+
+#: builtin/fsmonitor--daemon.c:1413
+#, fuzzy
+msgid "daemon failed to start"
+msgstr "el dimoni ha fallat en iniciar"
+
+#: builtin/fsmonitor--daemon.c:1416
+#, fuzzy
+msgid "daemon not online yet"
+msgstr "el dimoni encara no està en línia"
+
+#: builtin/fsmonitor--daemon.c:1419
+msgid "daemon terminated"
+msgstr "s'ha finalitzat el dimoni"
+
+#: builtin/fsmonitor--daemon.c:1429
+msgid "detach from console"
+msgstr "separat de la consola"
+
+#: builtin/fsmonitor--daemon.c:1432
+msgid "use <n> ipc worker threads"
+msgstr "usa <n> fils de treball ipc"
+
+#: builtin/fsmonitor--daemon.c:1435
+#, fuzzy
+msgid "max seconds to wait for background daemon startup"
+msgstr "màxim de segons a esperar a l'inici del dimoni de fons"
+
+#: builtin/fsmonitor--daemon.c:1449
+#, c-format, fuzzy
+msgid "invalid 'ipc-threads' value (%d)"
+msgstr "valor «ipc-threads» no vàlid (%)"
+
+#: builtin/fsmonitor--daemon.c:1464
+#, c-format, fuzzy
+msgid "Unhandled subcommand '%s'"
+msgstr "Subordre no gestionada '%s'"
+
+#: builtin/fsmonitor--daemon.c:1477
+#, fuzzy
+msgid "fsmonitor--daemon not supported on this platform"
+msgstr "fsmonitor--daemon no és compatible amb aquesta plataforma"
+
#: builtin/gc.c:39
msgid "git gc [<options>]"
msgstr "git gc [<opcions>]"
@@ -16277,8 +16761,8 @@ msgstr "s'ha produït un error en iniciar systemctl"
msgid "failed to run systemctl"
msgstr "s'ha produït un error en executar systemctl"
-#: builtin/gc.c:2210 builtin/gc.c:2215 builtin/worktree.c:62
-#: builtin/worktree.c:944
+#: builtin/gc.c:2210 builtin/gc.c:2215 builtin/worktree.c:63
+#: builtin/worktree.c:1024
#, c-format
msgid "failed to delete '%s'"
msgstr "s'ha produït un error en suprimir «%s»"
@@ -16326,16 +16810,16 @@ msgstr "git maintenance <subcommand> [<options>]"
msgid "invalid subcommand: %s"
msgstr "subordre no vàlida: %s"
-#: builtin/grep.c:30
+#: builtin/grep.c:32
msgid "git grep [<options>] [-e] <pattern> [<rev>...] [[--] <path>...]"
msgstr "git grep [<opcions>] [-e] <patró> [<revisió>...] [[--] <camí>...]"
-#: builtin/grep.c:239
+#: builtin/grep.c:241
#, c-format
msgid "grep: failed to create thread: %s"
msgstr "grep: s'ha produït un error en crear fil: %s"
-#: builtin/grep.c:293
+#: builtin/grep.c:295
#, c-format
msgid "invalid number of threads specified (%d) for %s"
msgstr "s'ha especificat un nombre de fils no vàlid (%d) per a %s"
@@ -16343,263 +16827,255 @@ msgstr "s'ha especificat un nombre de fils no vàlid (%d) per a %s"
#. TRANSLATORS: %s is the configuration
#. variable for tweaking threads, currently
#. grep.threads
-#: builtin/grep.c:301 builtin/index-pack.c:1582 builtin/index-pack.c:1785
-#: builtin/pack-objects.c:3142
+#: builtin/grep.c:303 builtin/index-pack.c:1587 builtin/index-pack.c:1791
+#: builtin/pack-objects.c:3150
#, c-format
msgid "no threads support, ignoring %s"
msgstr "no s'admeten fils, s'ignorarà %s"
-#: builtin/grep.c:488 builtin/grep.c:617 builtin/grep.c:657
+#: builtin/grep.c:490 builtin/grep.c:619 builtin/grep.c:659
#, c-format
msgid "unable to read tree (%s)"
msgstr "no s'ha pogut llegir l'arbre (%s)"
-#: builtin/grep.c:672
+#: builtin/grep.c:674
#, c-format
msgid "unable to grep from object of type %s"
msgstr "no es pot fer grep des d'un objecte de tipus %s"
-#: builtin/grep.c:752
+#: builtin/grep.c:754
#, c-format
msgid "switch `%c' expects a numerical value"
msgstr "l'opció «%c» espera un valor numèric"
-#: builtin/grep.c:851
+#: builtin/grep.c:852
msgid "search in index instead of in the work tree"
msgstr "cerca en l'índex en lloc de l'arbre de treball"
-#: builtin/grep.c:853
+#: builtin/grep.c:854
msgid "find in contents not managed by git"
msgstr "cerca en continguts no gestionats per git"
-#: builtin/grep.c:855
+#: builtin/grep.c:856
msgid "search in both tracked and untracked files"
msgstr "cerca tant en fitxers seguits com en no seguits"
-#: builtin/grep.c:857
+#: builtin/grep.c:858
msgid "ignore files specified via '.gitignore'"
msgstr "ignora els fitxers especificats mitjançant «.gitignore»"
-#: builtin/grep.c:859
+#: builtin/grep.c:860
msgid "recursively search in each submodule"
msgstr "cerca recursivament a cada submòdul"
-#: builtin/grep.c:862
+#: builtin/grep.c:863
msgid "show non-matching lines"
msgstr "mostra les línies no coincidents"
-#: builtin/grep.c:864
+#: builtin/grep.c:865
msgid "case insensitive matching"
msgstr "coincidència no distingeix entre majúscules i minúscules"
-#: builtin/grep.c:866
+#: builtin/grep.c:867
msgid "match patterns only at word boundaries"
msgstr "coincideix amb els patrons només als límits de paraula"
-#: builtin/grep.c:868
+#: builtin/grep.c:869
msgid "process binary files as text"
msgstr "processa els fitxers binaris com a text"
-#: builtin/grep.c:870
+#: builtin/grep.c:871
msgid "don't match patterns in binary files"
msgstr "no coincideixis amb els patrons en els fitxers binaris"
-#: builtin/grep.c:873
+#: builtin/grep.c:874
msgid "process binary files with textconv filters"
msgstr "processa els fitxers binaris amb filtres de textconv"
-#: builtin/grep.c:875
+#: builtin/grep.c:876
msgid "search in subdirectories (default)"
msgstr "cerca als subdirectoris (per defecte)"
-#: builtin/grep.c:877
+#: builtin/grep.c:878
msgid "descend at most <depth> levels"
msgstr "descendeix com a màxim <profunditat> nivells"
-#: builtin/grep.c:881
+#: builtin/grep.c:882
msgid "use extended POSIX regular expressions"
msgstr "usa les expressions regulars POSIX ampliades"
-#: builtin/grep.c:884
+#: builtin/grep.c:885
msgid "use basic POSIX regular expressions (default)"
msgstr "usa les expressions regulars POSIX bàsiques (per defecte)"
-#: builtin/grep.c:887
+#: builtin/grep.c:888
msgid "interpret patterns as fixed strings"
msgstr "interpreta els patrons com a cadenes fixes"
-#: builtin/grep.c:890
+#: builtin/grep.c:891
msgid "use Perl-compatible regular expressions"
msgstr "usa les expressions regulars compatibles amb Perl"
-#: builtin/grep.c:893
+#: builtin/grep.c:894
msgid "show line numbers"
msgstr "mostra els números de línia"
-#: builtin/grep.c:894
+#: builtin/grep.c:895
msgid "show column number of first match"
msgstr "mostra el nombre de columna de la primera coincidència"
-#: builtin/grep.c:895
+#: builtin/grep.c:896
msgid "don't show filenames"
msgstr "no mostris els noms de fitxer"
-#: builtin/grep.c:896
+#: builtin/grep.c:897
msgid "show filenames"
msgstr "mostra els noms de fitxer"
-#: builtin/grep.c:898
+#: builtin/grep.c:899
msgid "show filenames relative to top directory"
msgstr "mostra els noms de fitxer relatius al directori superior"
-#: builtin/grep.c:900
+#: builtin/grep.c:901
msgid "show only filenames instead of matching lines"
msgstr "mostra només els noms de fitxer en lloc de les línies coincidents"
-#: builtin/grep.c:902
+#: builtin/grep.c:903
msgid "synonym for --files-with-matches"
msgstr "sinònim de --files-with-matches"
-#: builtin/grep.c:905
+#: builtin/grep.c:906
msgid "show only the names of files without match"
msgstr "mostra només els noms dels fitxers sense coincidència"
-#: builtin/grep.c:907
+#: builtin/grep.c:908
msgid "print NUL after filenames"
msgstr "imprimeix NUL després dels noms de fitxer"
-#: builtin/grep.c:910
+#: builtin/grep.c:911
msgid "show only matching parts of a line"
msgstr "mostra només les parts de coincidents de la línia"
-#: builtin/grep.c:912
+#: builtin/grep.c:913
msgid "show the number of matches instead of matching lines"
msgstr "mostra el nombre de coincidències en lloc de les línies coincidents"
-#: builtin/grep.c:913
+#: builtin/grep.c:914
msgid "highlight matches"
msgstr "ressalta les coincidències"
-#: builtin/grep.c:915
+#: builtin/grep.c:916
msgid "print empty line between matches from different files"
msgstr "imprimeix una línia buida entre coincidències de fitxers distints"
-#: builtin/grep.c:917
+#: builtin/grep.c:918
msgid "show filename only once above matches from same file"
msgstr ""
"mostra el nom de fitxer només una vegada a dalt de les coincidències del "
"mateix fitxer"
-#: builtin/grep.c:920
+#: builtin/grep.c:921
msgid "show <n> context lines before and after matches"
msgstr "mostra <n> línies de context abans i després d'una coincidència"
-#: builtin/grep.c:923
+#: builtin/grep.c:924
msgid "show <n> context lines before matches"
msgstr "mostra <n> línies de context abans d'una coincidència"
-#: builtin/grep.c:925
+#: builtin/grep.c:926
msgid "show <n> context lines after matches"
msgstr "mostra <n> línies de context després d'una coincidència"
-#: builtin/grep.c:927
+#: builtin/grep.c:928
msgid "use <n> worker threads"
msgstr "usa <n> fils de treball"
-#: builtin/grep.c:928
+#: builtin/grep.c:929
msgid "shortcut for -C NUM"
msgstr "drecera per a -C NUM"
-#: builtin/grep.c:931
+#: builtin/grep.c:932
msgid "show a line with the function name before matches"
msgstr "mostra una línia amb el nom de funció abans de les coincidències"
-#: builtin/grep.c:933
+#: builtin/grep.c:934
msgid "show the surrounding function"
msgstr "mostra la funció circumdant"
-#: builtin/grep.c:936
+#: builtin/grep.c:937
msgid "read patterns from file"
msgstr "llegeix els patrons des d'un fitxer"
-#: builtin/grep.c:938
+#: builtin/grep.c:939
msgid "match <pattern>"
msgstr "coincideix amb <patró>"
-#: builtin/grep.c:940
+#: builtin/grep.c:941
msgid "combine patterns specified with -e"
msgstr "combina els patrons especificats amb -e"
-#: builtin/grep.c:952
+#: builtin/grep.c:953
msgid "indicate hit with exit status without output"
msgstr "indica coincidència amb estat de sortida sense sortida textual"
-#: builtin/grep.c:954
+#: builtin/grep.c:955
msgid "show only matches from files that match all patterns"
msgstr ""
"mostra només les coincidències dels fitxers que coincideixin amb tots els "
"patrons"
-#: builtin/grep.c:957
+#: builtin/grep.c:958
msgid "pager"
msgstr "paginador"
-#: builtin/grep.c:957
+#: builtin/grep.c:958
msgid "show matching files in the pager"
msgstr "mostra els fitxers coincidents en el paginador"
-#: builtin/grep.c:961
+#: builtin/grep.c:962
msgid "allow calling of grep(1) (ignored by this build)"
msgstr "permet la invocació de grep(1) (ignorat per aquesta compilació)"
-#: builtin/grep.c:1027
+#: builtin/grep.c:1028
msgid "no pattern given"
msgstr "no s'ha donat cap patró"
-#: builtin/grep.c:1063
+#: builtin/grep.c:1064
msgid "--no-index or --untracked cannot be used with revs"
msgstr "--no-index o --untracked no es pot usar amb revisions"
-#: builtin/grep.c:1071
+#: builtin/grep.c:1072
#, c-format
msgid "unable to resolve revision: %s"
msgstr "no s'ha pogut resoldre la revisió: %s"
-#: builtin/grep.c:1101
+#: builtin/grep.c:1102
msgid "--untracked not supported with --recurse-submodules"
msgstr "--untracked no s'admet amb --recurse-submodules"
-#: builtin/grep.c:1105
+#: builtin/grep.c:1106
msgid "invalid option combination, ignoring --threads"
msgstr "combinació d'opcions no vàlida, s'està ignorant --threads"
-#: builtin/grep.c:1108 builtin/pack-objects.c:4059
+#: builtin/grep.c:1109 builtin/pack-objects.c:4084
msgid "no threads support, ignoring --threads"
msgstr "no s'admeten fils, s'ignorarà --threads"
-#: builtin/grep.c:1111 builtin/index-pack.c:1579 builtin/pack-objects.c:3139
+#: builtin/grep.c:1112 builtin/index-pack.c:1584 builtin/pack-objects.c:3147
#, c-format
msgid "invalid number of threads specified (%d)"
msgstr "s'ha especificat un nombre de fils no vàlid (%d)"
-#: builtin/grep.c:1145
+#: builtin/grep.c:1146
msgid "--open-files-in-pager only works on the worktree"
msgstr "--open-files-in-pager només funciona en l'arbre de treball"
-#: builtin/grep.c:1171
-msgid "--cached or --untracked cannot be used with --no-index"
-msgstr "--cached o --untracked no es pot usar amb --no-index"
-
-#: builtin/grep.c:1174
-msgid "--untracked cannot be used with --cached"
-msgstr "--untracked no es pot usar amb --cached"
-
-#: builtin/grep.c:1180
+#: builtin/grep.c:1179
msgid "--[no-]exclude-standard cannot be used for tracked contents"
msgstr ""
"--[no-]exclude-standard no es pot utilitzar per als continguts seguits"
-#: builtin/grep.c:1188
+#: builtin/grep.c:1187
msgid "both --cached and trees are given"
msgstr "ambdós --cached i arbres venen donats"
@@ -16611,109 +17087,103 @@ msgstr ""
"git hash-object [-t <tipus>] [-w] [--path=<fitxer> | --no-filters] [--stdin]"
" [--] <fitxer>..."
-#: builtin/hash-object.c:84
-msgid "git hash-object --stdin-paths"
-msgstr "git hash-object --stdin-paths"
-
-#: builtin/hash-object.c:96
+#: builtin/hash-object.c:97
msgid "object type"
msgstr "tipus d'objecte"
-#: builtin/hash-object.c:97
+#: builtin/hash-object.c:98
msgid "write the object into the object database"
msgstr "escriu l'objecte a la base de dades d'objectes"
-#: builtin/hash-object.c:99
+#: builtin/hash-object.c:100
msgid "read the object from stdin"
msgstr "llegeix l'objecte des de stdin"
-#: builtin/hash-object.c:101
+#: builtin/hash-object.c:102
msgid "store file as is without filters"
msgstr "emmagatzema el fitxer tal com és sense filtres"
-#: builtin/hash-object.c:102
+#: builtin/hash-object.c:103
msgid ""
"just hash any random garbage to create corrupt objects for debugging Git"
msgstr ""
"només suma qualsevol brossa aleatòria per a crear objectes malmesos per a "
"depurar al Git"
-#: builtin/hash-object.c:103
+#: builtin/hash-object.c:104
msgid "process file as it were from this path"
msgstr "processa el fitxer com si fos d'aquest camí"
-#: builtin/help.c:55
+#: builtin/help.c:57
msgid "print all available commands"
msgstr "imprimeix totes les ordres disponibles"
-#: builtin/help.c:57
+#: builtin/help.c:60
+#, fuzzy
+msgid "show external commands in --all"
+msgstr "mostra les ordres externes a --all"
+
+#: builtin/help.c:61
+#, fuzzy
+msgid "show aliases in --all"
+msgstr "mostra els àlies a --all"
+
+#: builtin/help.c:62
msgid "exclude guides"
msgstr "exclou guies"
-#: builtin/help.c:58
+#: builtin/help.c:63
msgid "show man page"
msgstr "mostra la pàgina de manual"
-#: builtin/help.c:59
+#: builtin/help.c:64
msgid "show manual in web browser"
msgstr "mostra la pàgina de manual en el navegador web"
-#: builtin/help.c:61
+#: builtin/help.c:66
msgid "show info page"
msgstr "mostra la pàgina d'informació"
-#: builtin/help.c:63
+#: builtin/help.c:68
msgid "print command description"
msgstr "imprimeix la descripció de l'ordre"
-#: builtin/help.c:65
+#: builtin/help.c:70
msgid "print list of useful guides"
msgstr "imprimeix la llista de guies útils"
-#: builtin/help.c:67
+#: builtin/help.c:72
msgid "print all configuration variable names"
msgstr "imprimeix tots els noms de les variables de configuració"
-#: builtin/help.c:78
-msgid ""
-"git help [-a|--all] [--[no-]verbose]]\n"
-" [[-i|--info] [-m|--man] [-w|--web]] [<command>]"
-msgstr ""
-"git help [-a|--all] [--[no-]verbose]]\n"
-" [[-i|--info] [-m|--man] [-w|--web]] [<command>]"
-
-#: builtin/help.c:80
-msgid "git help [-g|--guides]"
-msgstr "git help [-g|--guides]"
-
-#: builtin/help.c:81
-msgid "git help [-c|--config]"
-msgstr "git help [-c|--config]"
+#: builtin/help.c:84
+msgid "git help [[-i|--info] [-m|--man] [-w|--web]] [<command>]"
+msgstr "git help [[-i|--info] [-m|--man] [-w|--web]] [<command>]"
-#: builtin/help.c:196
+#: builtin/help.c:201
#, c-format
msgid "unrecognized help format '%s'"
msgstr "format d'ajuda no reconegut «%s»"
-#: builtin/help.c:222
+#: builtin/help.c:227
msgid "Failed to start emacsclient."
msgstr "S'ha produït un error en iniciar emacsclient."
-#: builtin/help.c:235
+#: builtin/help.c:240
msgid "Failed to parse emacsclient version."
msgstr "S'ha produït un error en analitzar la versió d'emacsclient."
-#: builtin/help.c:243
+#: builtin/help.c:248
#, c-format
msgid "emacsclient version '%d' too old (< 22)."
msgstr "la versió d'emacsclient «%d» és massa vella (< 22)."
-#: builtin/help.c:261 builtin/help.c:283 builtin/help.c:293 builtin/help.c:301
+#: builtin/help.c:266 builtin/help.c:288 builtin/help.c:298 builtin/help.c:306
#, c-format
msgid "failed to exec '%s'"
msgstr "s'ha produït un error en executar «%s»"
-#: builtin/help.c:339
+#: builtin/help.c:344
#, c-format
msgid ""
"'%s': path for unsupported man viewer.\n"
@@ -16722,7 +17192,7 @@ msgstr ""
"«%s»: camí a un visualitzador de manuals no compatible.\n"
"Considereu usar «man.<eina>.cmd» en lloc d'això."
-#: builtin/help.c:351
+#: builtin/help.c:356
#, c-format
msgid ""
"'%s': cmd for supported man viewer.\n"
@@ -16731,42 +17201,59 @@ msgstr ""
"«%s»: ordre per a un visualitzador de manuals compatible.\n"
"Considereu usar «man.<eina>.path» en lloc d'això."
-#: builtin/help.c:466
+#: builtin/help.c:471
#, c-format
msgid "'%s': unknown man viewer."
msgstr "«%s»: visualitzador de manuals desconegut."
-#: builtin/help.c:482
+#: builtin/help.c:487
msgid "no man viewer handled the request"
msgstr "cap visualitzador de manuals ha gestionat la sol·licitud"
-#: builtin/help.c:489
+#: builtin/help.c:494
msgid "no info viewer handled the request"
msgstr "cap visualitzador d'informació ha gestionat la sol·licitud"
-#: builtin/help.c:550 builtin/help.c:561 git.c:348
+#: builtin/help.c:555 builtin/help.c:566 git.c:348
#, c-format
msgid "'%s' is aliased to '%s'"
msgstr "«%s» és un àlies de «%s»"
-#: builtin/help.c:564 git.c:380
+#: builtin/help.c:569 git.c:380
#, c-format
msgid "bad alias.%s string: %s"
msgstr "cadena «alias.%s» incorrecte: %s"
-#: builtin/help.c:580
-msgid "this option doesn't take any other arguments"
-msgstr "aquesta opció no accepta cap altre argument"
+#: builtin/help.c:611
+#, c-format, fuzzy
+msgid "the '%s' option doesn't take any non-option arguments"
+msgstr "l'opció «%s» no pren cap argument que no sigui una opció"
-#: builtin/help.c:601 builtin/help.c:628
+#: builtin/help.c:631
+#, fuzzy
+msgid ""
+"the '--no-[external-commands|aliases]' options can only be used with '--all'"
+msgstr ""
+"les opcions «--no-exexternal-commands|aliases with» només es poden utilitzar"
+" amb «--all»"
+
+#: builtin/help.c:643 builtin/help.c:671
#, c-format
msgid "usage: %s%s"
msgstr "ús: %s%s"
-#: builtin/help.c:623
+#: builtin/help.c:666
msgid "'git help config' for more information"
msgstr "«git help config» per a més informació"
+#: builtin/hook.c:10
+msgid "git hook run [--ignore-missing] <hook-name> [-- <hook-args>]"
+msgstr "git hook run [--ignore-missing] <hook-name> [-- <hook-args>]"
+
+#: builtin/hook.c:30
+msgid "silently ignore missing requested <hook-name>"
+msgstr "ignora silenciosament la sol·licitud <hook-name> perduda"
+
#: builtin/index-pack.c:221
#, c-format
msgid "object type mismatch at %s"
@@ -16801,52 +17288,53 @@ msgstr "error de lectura d'entrada"
msgid "used more bytes than were available"
msgstr "s'han usat més octets que hi havia disponibles"
-#: builtin/index-pack.c:324 builtin/pack-objects.c:756
+#: builtin/index-pack.c:324 builtin/pack-objects.c:754
msgid "pack too large for current definition of off_t"
msgstr "paquet massa gran per a la definició actual d'off_t"
-#: builtin/index-pack.c:327 builtin/unpack-objects.c:95
-msgid "pack exceeds maximum allowed size"
-msgstr "el paquet supera la mida màxima permesa"
+#: builtin/index-pack.c:329
+#, c-format
+msgid "pack exceeds maximum allowed size (%s)"
+msgstr "el paquet supera la mida màxima permesa (%s)"
-#: builtin/index-pack.c:358
+#: builtin/index-pack.c:362
msgid "pack signature mismatch"
msgstr "hi ha una discordança de signatura de paquet"
-#: builtin/index-pack.c:360
+#: builtin/index-pack.c:364
#, c-format
msgid "pack version %<PRIu32> unsupported"
msgstr "la versió de paquet %<PRIu32> no és compatible"
-#: builtin/index-pack.c:376
+#: builtin/index-pack.c:380
#, c-format
msgid "pack has bad object at offset %<PRIuMAX>: %s"
msgstr "el paquet té un objecte incorrecte a la posició %<PRIuMAX>: %s"
-#: builtin/index-pack.c:482
+#: builtin/index-pack.c:485
#, c-format
msgid "inflate returned %d"
msgstr "la inflació ha retornat %d"
-#: builtin/index-pack.c:531
+#: builtin/index-pack.c:534
msgid "offset value overflow for delta base object"
msgstr ""
"desbordament de valor de desplaçament per a l'objecte base de diferències"
-#: builtin/index-pack.c:539
+#: builtin/index-pack.c:542
msgid "delta base offset is out of bound"
msgstr "el desplaçament de base de diferències està fora de límits"
-#: builtin/index-pack.c:547
+#: builtin/index-pack.c:550
#, c-format
msgid "unknown object type %d"
msgstr "tipus d'objecte desconegut %d"
-#: builtin/index-pack.c:578
+#: builtin/index-pack.c:581
msgid "cannot pread pack file"
msgstr "no es pot fer pread en el fitxer empaquetat"
-#: builtin/index-pack.c:580
+#: builtin/index-pack.c:583
#, c-format
msgid "premature end of pack file, %<PRIuMAX> byte missing"
msgid_plural "premature end of pack file, %<PRIuMAX> bytes missing"
@@ -16854,193 +17342,193 @@ msgstr[0] "el final del fitxer empaquetat és prematur, manca %<PRIuMAX> octet"
msgstr[1] ""
"el final del fitxer empaquetat és prematur, manquen %<PRIuMAX> octets"
-#: builtin/index-pack.c:606
+#: builtin/index-pack.c:609
msgid "serious inflate inconsistency"
msgstr "hi ha una inconsistència seriosa d'inflació"
-#: builtin/index-pack.c:751 builtin/index-pack.c:757 builtin/index-pack.c:781
-#: builtin/index-pack.c:820 builtin/index-pack.c:829
+#: builtin/index-pack.c:754 builtin/index-pack.c:760 builtin/index-pack.c:784
+#: builtin/index-pack.c:823 builtin/index-pack.c:832
#, c-format
msgid "SHA1 COLLISION FOUND WITH %s !"
msgstr "S'HA TROBAT UNA COL·LISIÓ SHA1 AMB %s !"
-#: builtin/index-pack.c:754 builtin/pack-objects.c:292
-#: builtin/pack-objects.c:352 builtin/pack-objects.c:458
+#: builtin/index-pack.c:757 builtin/pack-objects.c:290
+#: builtin/pack-objects.c:350 builtin/pack-objects.c:456
#, c-format
msgid "unable to read %s"
msgstr "no s'ha pogut llegir %s"
-#: builtin/index-pack.c:818
+#: builtin/index-pack.c:821
#, c-format
msgid "cannot read existing object info %s"
msgstr "no es pot llegir la informació d'objecte existent %s"
-#: builtin/index-pack.c:826
+#: builtin/index-pack.c:829
#, c-format
msgid "cannot read existing object %s"
msgstr "no es pot llegir l'objecte existent %s"
-#: builtin/index-pack.c:840
+#: builtin/index-pack.c:843
#, c-format
msgid "invalid blob object %s"
msgstr "objecte de blob no vàlid %s"
-#: builtin/index-pack.c:843 builtin/index-pack.c:862
+#: builtin/index-pack.c:846 builtin/index-pack.c:865
msgid "fsck error in packed object"
msgstr "fsck error en un objecte empaquetat"
-#: builtin/index-pack.c:864
+#: builtin/index-pack.c:867
#, c-format
msgid "Not all child objects of %s are reachable"
msgstr "No tots els objectes fills de %s són abastables"
-#: builtin/index-pack.c:925 builtin/index-pack.c:972
+#: builtin/index-pack.c:928 builtin/index-pack.c:975
msgid "failed to apply delta"
msgstr "s'ha produït un error en aplicar la diferència"
-#: builtin/index-pack.c:1156
+#: builtin/index-pack.c:1161
msgid "Receiving objects"
msgstr "S'estan rebent objectes"
-#: builtin/index-pack.c:1156
+#: builtin/index-pack.c:1161
msgid "Indexing objects"
msgstr "S'estan indexant objectes"
-#: builtin/index-pack.c:1190
+#: builtin/index-pack.c:1195
msgid "pack is corrupted (SHA1 mismatch)"
msgstr "el paquet és malmès (discordança SHA1)"
-#: builtin/index-pack.c:1195
+#: builtin/index-pack.c:1200
msgid "cannot fstat packfile"
msgstr "no es pot fer fstat en el fitxer de paquet"
-#: builtin/index-pack.c:1198
+#: builtin/index-pack.c:1203
msgid "pack has junk at the end"
msgstr "el paquet té brossa al seu final"
-#: builtin/index-pack.c:1210
+#: builtin/index-pack.c:1215
msgid "confusion beyond insanity in parse_pack_objects()"
msgstr "confusió més enllà de la bogeria en parse_pack_objects()"
-#: builtin/index-pack.c:1233
+#: builtin/index-pack.c:1238
msgid "Resolving deltas"
msgstr "S'estan resolent les diferències"
-#: builtin/index-pack.c:1244 builtin/pack-objects.c:2905
+#: builtin/index-pack.c:1249 builtin/pack-objects.c:2913
#, c-format
msgid "unable to create thread: %s"
msgstr "no s'ha pogut crear fil: %s"
-#: builtin/index-pack.c:1277
+#: builtin/index-pack.c:1282
msgid "confusion beyond insanity"
msgstr "confusió més enllà de la bogeria"
-#: builtin/index-pack.c:1283
+#: builtin/index-pack.c:1288
#, c-format
msgid "completed with %d local object"
msgid_plural "completed with %d local objects"
msgstr[0] "s'ha completat amb %d objecte local"
msgstr[1] "s'ha completat amb %d objectes locals"
-#: builtin/index-pack.c:1295
+#: builtin/index-pack.c:1300
#, c-format
msgid "Unexpected tail checksum for %s (disk corruption?)"
msgstr "Suma de verificació final no esperada per a %s (corrupció de disc?)"
-#: builtin/index-pack.c:1299
+#: builtin/index-pack.c:1304
#, c-format
msgid "pack has %d unresolved delta"
msgid_plural "pack has %d unresolved deltas"
msgstr[0] "El paquet té %d diferència no resolta"
msgstr[1] "El paquet té %d diferències no resoltes"
-#: builtin/index-pack.c:1323
+#: builtin/index-pack.c:1328
#, c-format
msgid "unable to deflate appended object (%d)"
msgstr "no s'ha pogut desinflar l'objecte annexat (%d)"
-#: builtin/index-pack.c:1419
+#: builtin/index-pack.c:1423
#, c-format
msgid "local object %s is corrupt"
msgstr "l'objecte local %s és malmès"
-#: builtin/index-pack.c:1440
+#: builtin/index-pack.c:1445
#, c-format
msgid "packfile name '%s' does not end with '.%s'"
msgstr "el nom del fitxer de paquet «%s» no acaba amb «.%s»"
-#: builtin/index-pack.c:1464
+#: builtin/index-pack.c:1469
#, c-format
msgid "cannot write %s file '%s'"
msgstr "no es pot escriure «%s» al fitxer «%s»"
-#: builtin/index-pack.c:1472
+#: builtin/index-pack.c:1477
#, c-format
msgid "cannot close written %s file '%s'"
msgstr "no s'ha pogut tancar el fitxer %s escrit «%s»"
-#: builtin/index-pack.c:1489
+#: builtin/index-pack.c:1494
#, c-format
msgid "unable to rename temporary '*.%s' file to '%s'"
msgstr "no s'ha pogut canviar el nom del fitxer temporal «*.%s» a «%s»"
-#: builtin/index-pack.c:1514
+#: builtin/index-pack.c:1519
msgid "error while closing pack file"
msgstr "error en tancar el fitxer empaquetat"
-#: builtin/index-pack.c:1573 builtin/pack-objects.c:3150
+#: builtin/index-pack.c:1578 builtin/pack-objects.c:3158
#, c-format
msgid "bad pack.indexversion=%<PRIu32>"
msgstr "pack.indexversion=%<PRIu32> incorrecte"
-#: builtin/index-pack.c:1643
+#: builtin/index-pack.c:1648
#, c-format
msgid "Cannot open existing pack file '%s'"
msgstr "No es pot obrir el fitxer empaquetat existent «%s»"
-#: builtin/index-pack.c:1645
+#: builtin/index-pack.c:1650
#, c-format
msgid "Cannot open existing pack idx file for '%s'"
msgstr "No es pot obrir el fitxer d'índex de paquets existent de «%s»"
-#: builtin/index-pack.c:1693
+#: builtin/index-pack.c:1698
#, c-format
msgid "non delta: %d object"
msgid_plural "non delta: %d objects"
msgstr[0] "sense diferències: %d objecte"
msgstr[1] "sense diferències: %d objectes"
-#: builtin/index-pack.c:1700
+#: builtin/index-pack.c:1705
#, c-format
msgid "chain length = %d: %lu object"
msgid_plural "chain length = %d: %lu objects"
msgstr[0] "longitud de cadena = %d: %lu objecte"
msgstr[1] "longitud de cadena = %d: %lu objectes"
-#: builtin/index-pack.c:1742
+#: builtin/index-pack.c:1748
msgid "Cannot come back to cwd"
msgstr "No es pot tornar al directori de treball actual"
-#: builtin/index-pack.c:1796 builtin/index-pack.c:1799
-#: builtin/index-pack.c:1819 builtin/index-pack.c:1823
+#: builtin/index-pack.c:1802 builtin/index-pack.c:1805
+#: builtin/index-pack.c:1825 builtin/index-pack.c:1829
#, c-format
msgid "bad %s"
msgstr "%s incorrecte"
-#: builtin/index-pack.c:1829 builtin/init-db.c:379 builtin/init-db.c:614
+#: builtin/index-pack.c:1835 builtin/init-db.c:379 builtin/init-db.c:614
#, c-format
msgid "unknown hash algorithm '%s'"
msgstr "algorisme hash desconegut «%s»"
-#: builtin/index-pack.c:1850
+#: builtin/index-pack.c:1856
msgid "--stdin requires a git repository"
msgstr "--stdin requereix un repositori git"
-#: builtin/index-pack.c:1867
+#: builtin/index-pack.c:1873
msgid "--verify with no packfile name given"
msgstr "s'ha donat --verify sense nom de fitxer de paquet"
-#: builtin/index-pack.c:1933 builtin/unpack-objects.c:584
+#: builtin/index-pack.c:1939 builtin/unpack-objects.c:584
msgid "fsck error in pack objects"
msgstr "error fsck als objectes del paquet"
@@ -17250,40 +17738,40 @@ msgstr "--trailer amb --only-input no té sentit"
msgid "no input file given for in-place editing"
msgstr "no s'ha donat cap fitxer d'entrada per a edició in situ"
-#: builtin/log.c:59
+#: builtin/log.c:60
msgid "git log [<options>] [<revision-range>] [[--] <path>...]"
msgstr "git log [<opcions>] [<rang-de-revisions>] [[--] <camí>...]"
-#: builtin/log.c:60
+#: builtin/log.c:61
msgid "git show [<options>] <object>..."
msgstr "git show [<opcions>] <objecte>..."
-#: builtin/log.c:113
+#: builtin/log.c:114
#, c-format
msgid "invalid --decorate option: %s"
msgstr "opció --decorate no vàlida: %s"
-#: builtin/log.c:180
+#: builtin/log.c:181
msgid "show source"
msgstr "mostra la font"
-#: builtin/log.c:181
+#: builtin/log.c:182
msgid "use mail map file"
msgstr "usa el fitxer de mapa de correu"
-#: builtin/log.c:184
+#: builtin/log.c:185
msgid "only decorate refs that match <pattern>"
msgstr "només decora les referències que coincideixin amb <patró>"
-#: builtin/log.c:186
+#: builtin/log.c:187
msgid "do not decorate refs that match <pattern>"
msgstr "no decoris les referències que coincideixen amb <patró>"
-#: builtin/log.c:187
+#: builtin/log.c:188
msgid "decorate options"
msgstr "opcions de decoració"
-#: builtin/log.c:190
+#: builtin/log.c:191
msgid ""
"trace the evolution of line range <start>,<end> or function :<funcname> in "
"<file>"
@@ -17291,89 +17779,94 @@ msgstr ""
"traça l'evolució del rang de línia <start>,<end> o funcions :<funcname> a "
"<file>"
-#: builtin/log.c:213
+#: builtin/log.c:214
msgid "-L<range>:<file> cannot be used with pathspec"
msgstr "-L<range>:<file> no es pot usar amb una especificació de camí"
-#: builtin/log.c:321
+#: builtin/log.c:322
#, c-format
msgid "Final output: %d %s\n"
msgstr "Sortida final: %d %s\n"
-#: builtin/log.c:586
+#: builtin/log.c:429
+#, fuzzy
+msgid "unable to create temporary object directory"
+msgstr "no s'ha pogut crear el directori temporal de l'objecte"
+
+#: builtin/log.c:599
#, c-format
msgid "git show %s: bad file"
msgstr "git show %s: fitxer incorrecte"
-#: builtin/log.c:601 builtin/log.c:691
+#: builtin/log.c:614 builtin/log.c:706
#, c-format
msgid "could not read object %s"
msgstr "no s'ha pogut llegir l'objecte %s"
-#: builtin/log.c:716
+#: builtin/log.c:731
#, c-format
msgid "unknown type: %d"
msgstr "tipus desconegut: %d"
-#: builtin/log.c:861
+#: builtin/log.c:880
#, c-format
msgid "%s: invalid cover from description mode"
msgstr "%s: cobertura no vàlida des del mode descripció"
-#: builtin/log.c:868
+#: builtin/log.c:887
msgid "format.headers without value"
msgstr "format.headers sense valor"
-#: builtin/log.c:997
+#: builtin/log.c:1016
#, c-format
msgid "cannot open patch file %s"
msgstr "no s'ha pogut obrir el fitxer de pedaç %s"
-#: builtin/log.c:1014
+#: builtin/log.c:1033
msgid "need exactly one range"
msgstr "necessita exactament un interval"
-#: builtin/log.c:1024
+#: builtin/log.c:1043
msgid "not a range"
msgstr "no és un interval"
-#: builtin/log.c:1188
+#: builtin/log.c:1207
msgid "cover letter needs email format"
msgstr "la carta de presentació necessita un format de correu electrònic"
-#: builtin/log.c:1194
+#: builtin/log.c:1213
msgid "failed to create cover-letter file"
msgstr "s'ha produït un error en crear el fitxer de carta de presentació"
-#: builtin/log.c:1281
+#: builtin/log.c:1300
#, c-format
msgid "insane in-reply-to: %s"
msgstr "in-reply-to boig: %s"
-#: builtin/log.c:1308
+#: builtin/log.c:1327
msgid "git format-patch [<options>] [<since> | <revision-range>]"
msgstr "git format-patch [<opcions>] [<des-de> | <rang-de-revisions>]"
-#: builtin/log.c:1366
+#: builtin/log.c:1385
msgid "two output directories?"
msgstr "dos directoris de sortida?"
-#: builtin/log.c:1517 builtin/log.c:2344 builtin/log.c:2346 builtin/log.c:2358
+#: builtin/log.c:1536 builtin/log.c:2369 builtin/log.c:2371 builtin/log.c:2383
#, c-format
msgid "unknown commit %s"
msgstr "comissió desconeguda %s"
-#: builtin/log.c:1528 builtin/replace.c:58 builtin/replace.c:207
+#: builtin/log.c:1547 builtin/replace.c:58 builtin/replace.c:207
#: builtin/replace.c:210
#, c-format
msgid "failed to resolve '%s' as a valid ref"
msgstr "s'ha produït un error en resoldre «%s» com a referència vàlida"
-#: builtin/log.c:1537
+#: builtin/log.c:1556
msgid "could not find exact merge base"
msgstr "no s'ha pogut trobar la base exacta de la fusió"
-#: builtin/log.c:1547
+#: builtin/log.c:1566
msgid ""
"failed to get upstream, if you want to record base commit automatically,\n"
"please use git branch --set-upstream-to to track a remote branch.\n"
@@ -17381,284 +17874,287 @@ msgid ""
msgstr ""
"no s'ha pogut obtenir la font, si voleu registrar la comissió base\n"
"automàticament, useu git branch --set-upstream-to per a seguir una\n"
-"una branca remota. També podeu especificar la comissió base amb "
-"--base=<base-commit-id> manualment"
+"una branca remota. També podeu especificar la comissió base amb --base=<base-commit-id> manualment"
-#: builtin/log.c:1570
+#: builtin/log.c:1589
msgid "failed to find exact merge base"
msgstr "no s'ha pogut trobar la base exacta de la fusió"
-#: builtin/log.c:1587
+#: builtin/log.c:1606
msgid "base commit should be the ancestor of revision list"
msgstr "la comissió base ha de ser l'avantpassat de la llista de revisions"
-#: builtin/log.c:1597
+#: builtin/log.c:1616
msgid "base commit shouldn't be in revision list"
msgstr "la comissió base no ha de ser en la llista de revisions"
-#: builtin/log.c:1655
+#: builtin/log.c:1674
msgid "cannot get patch id"
msgstr "no es pot obtenir l'id del pedaç"
-#: builtin/log.c:1718
+#: builtin/log.c:1737
msgid "failed to infer range-diff origin of current series"
msgstr ""
"no s'ha pogut inferir el rang de diferències d'origen de les sèries actuals"
-#: builtin/log.c:1720
+#: builtin/log.c:1739
#, c-format
msgid "using '%s' as range-diff origin of current series"
msgstr ""
"utilitzant «%s» com a origen de rang de diferències de la sèrie actual"
-#: builtin/log.c:1764
+#: builtin/log.c:1783
msgid "use [PATCH n/m] even with a single patch"
msgstr "usa [PATCH n/m] fins i tot amb un sol pedaç"
-#: builtin/log.c:1767
+#: builtin/log.c:1786
msgid "use [PATCH] even with multiple patches"
msgstr "usa [PATCH] fins i tot amb múltiples pedaços"
-#: builtin/log.c:1771
+#: builtin/log.c:1790
msgid "print patches to standard out"
msgstr "imprimeix els pedaços a la sortida estàndard"
-#: builtin/log.c:1773
+#: builtin/log.c:1792
msgid "generate a cover letter"
msgstr "genera una carta de presentació"
-#: builtin/log.c:1775
+#: builtin/log.c:1794
msgid "use simple number sequence for output file names"
msgstr "usa una seqüència de números per als noms dels fitxers de sortida"
-#: builtin/log.c:1776
+#: builtin/log.c:1795
msgid "sfx"
msgstr "sufix"
-#: builtin/log.c:1777
+#: builtin/log.c:1796
msgid "use <sfx> instead of '.patch'"
msgstr "usa <sufix> en lloc de «.patch»"
-#: builtin/log.c:1779
+#: builtin/log.c:1798
msgid "start numbering patches at <n> instead of 1"
msgstr "comença numerant els pedaços a <n> en lloc d'1"
-#: builtin/log.c:1780
+#: builtin/log.c:1799
msgid "reroll-count"
msgstr "reroll-count"
-#: builtin/log.c:1781
+#: builtin/log.c:1800
msgid "mark the series as Nth re-roll"
msgstr "marca la sèrie com a l'enèsima llançada"
-#: builtin/log.c:1783
+#: builtin/log.c:1802
msgid "max length of output filename"
msgstr "mida màxima del nom del fitxer de sortida"
-#: builtin/log.c:1785
+#: builtin/log.c:1804
msgid "use [RFC PATCH] instead of [PATCH]"
msgstr "useu [RFC PATCH] en comptes de [PATCH]"
-#: builtin/log.c:1788
+#: builtin/log.c:1807
msgid "cover-from-description-mode"
msgstr "cover-from-description-mode"
-#: builtin/log.c:1789
+#: builtin/log.c:1808
msgid "generate parts of a cover letter based on a branch's description"
msgstr ""
"genera parts d'una carta de presentació basant-se en la descripció d'una "
"branca"
-#: builtin/log.c:1791
+#: builtin/log.c:1810
msgid "use [<prefix>] instead of [PATCH]"
msgstr "useu [<prefix>] en comptes de [PATCH]"
-#: builtin/log.c:1794
+#: builtin/log.c:1813
msgid "store resulting files in <dir>"
msgstr "emmagatzema els fitxers resultants a <directori>"
-#: builtin/log.c:1797
+#: builtin/log.c:1816
msgid "don't strip/add [PATCH]"
msgstr "no despullis/afegeixis [PATCH]"
-#: builtin/log.c:1800
+#: builtin/log.c:1819
msgid "don't output binary diffs"
msgstr "no emetis diferències binàries"
-#: builtin/log.c:1802
+#: builtin/log.c:1821
msgid "output all-zero hash in From header"
msgstr "emet un hash de tots zeros en la capçalera From"
-#: builtin/log.c:1804
+#: builtin/log.c:1823
msgid "don't include a patch matching a commit upstream"
msgstr "no incloguis pedaços que coincideixin amb comissions a la font"
-#: builtin/log.c:1806
+#: builtin/log.c:1825
msgid "show patch format instead of default (patch + stat)"
msgstr ""
"mostra el format de pedaç en lloc del per defecte (pedaç + estadístiques)"
-#: builtin/log.c:1808
+#: builtin/log.c:1827
msgid "Messaging"
msgstr "Missatgeria"
-#: builtin/log.c:1809
+#: builtin/log.c:1828
msgid "header"
msgstr "capçalera"
-#: builtin/log.c:1810
+#: builtin/log.c:1829
msgid "add email header"
msgstr "afegeix una capçalera de correu electrònic"
-#: builtin/log.c:1811 builtin/log.c:1812
+#: builtin/log.c:1830 builtin/log.c:1831
msgid "email"
msgstr "correu electrònic"
-#: builtin/log.c:1811
+#: builtin/log.c:1830
msgid "add To: header"
msgstr "afegeix la capçalera To:"
-#: builtin/log.c:1812
+#: builtin/log.c:1831
msgid "add Cc: header"
msgstr "afegeix la capçalera Cc:"
-#: builtin/log.c:1813
+#: builtin/log.c:1832
msgid "ident"
msgstr "identitat"
-#: builtin/log.c:1814
+#: builtin/log.c:1833
msgid "set From address to <ident> (or committer ident if absent)"
msgstr ""
"estableix l'adreça From a <identitat> (o la identitat del comitent si manca)"
-#: builtin/log.c:1816
+#: builtin/log.c:1835
msgid "message-id"
msgstr "ID de missatge"
-#: builtin/log.c:1817
+#: builtin/log.c:1836
msgid "make first mail a reply to <message-id>"
msgstr "fes que el primer missatge sigui una resposta a <ID de missatge>"
-#: builtin/log.c:1818 builtin/log.c:1821
+#: builtin/log.c:1837 builtin/log.c:1840
msgid "boundary"
msgstr "límit"
-#: builtin/log.c:1819
+#: builtin/log.c:1838
msgid "attach the patch"
msgstr "adjunta el pedaç"
-#: builtin/log.c:1822
+#: builtin/log.c:1841
msgid "inline the patch"
msgstr "posa el pedaç en el cos"
-#: builtin/log.c:1826
+#: builtin/log.c:1845
msgid "enable message threading, styles: shallow, deep"
msgstr "habilita l'enfilada de missatges, estils: shallow, deep"
-#: builtin/log.c:1828
+#: builtin/log.c:1847
msgid "signature"
msgstr "signatura"
-#: builtin/log.c:1829
+#: builtin/log.c:1848
msgid "add a signature"
msgstr "afegeix una signatura"
-#: builtin/log.c:1830
+#: builtin/log.c:1849
msgid "base-commit"
msgstr "comissió base"
-#: builtin/log.c:1831
+#: builtin/log.c:1850
msgid "add prerequisite tree info to the patch series"
msgstr "afegeix la informació d'arbre requerida a la sèrie de pedaços"
-#: builtin/log.c:1834
+#: builtin/log.c:1853
msgid "add a signature from a file"
msgstr "afegeix una signatura des d'un fitxer"
-#: builtin/log.c:1835
+#: builtin/log.c:1854
msgid "don't print the patch filenames"
msgstr "no imprimeixis els noms de fitxer del pedaç"
-#: builtin/log.c:1837
+#: builtin/log.c:1856
msgid "show progress while generating patches"
msgstr "mostra el progrés durant la generació de pedaços"
-#: builtin/log.c:1839
+#: builtin/log.c:1858
msgid "show changes against <rev> in cover letter or single patch"
msgstr ""
"mostra els canvis contra <rev> a la carta de presentació o a un sol pedaç"
-#: builtin/log.c:1842
+#: builtin/log.c:1861
msgid "show changes against <refspec> in cover letter or single patch"
msgstr ""
"mostra els canvis contra <refspec> a la carta de presentació o a un sol "
"pedaç"
-#: builtin/log.c:1844 builtin/range-diff.c:28
+#: builtin/log.c:1863 builtin/range-diff.c:28
msgid "percentage by which creation is weighted"
msgstr "percentatge pel qual la creació és ponderada"
-#: builtin/log.c:1931
+#: builtin/log.c:1953
#, c-format
msgid "invalid ident line: %s"
msgstr "línia d'identitat no vàlida: %s"
-#: builtin/log.c:1956
+#: builtin/log.c:1978
msgid "--name-only does not make sense"
msgstr "--name-only no té sentit"
-#: builtin/log.c:1958
+#: builtin/log.c:1980
msgid "--name-status does not make sense"
msgstr "--name-status no té sentit"
-#: builtin/log.c:1960
+#: builtin/log.c:1982
msgid "--check does not make sense"
msgstr "--check no té sentit"
-#: builtin/log.c:2104
+#: builtin/log.c:1984
+msgid "--remerge-diff does not make sense"
+msgstr "--remerge-diff no té sentit"
+
+#: builtin/log.c:2129
msgid "--interdiff requires --cover-letter or single patch"
msgstr "--interdiff requereix --cover-letter o un sol pedaç"
-#: builtin/log.c:2108
+#: builtin/log.c:2133
msgid "Interdiff:"
msgstr "Interdiff:"
-#: builtin/log.c:2109
+#: builtin/log.c:2134
#, c-format
msgid "Interdiff against v%d:"
msgstr "Interdiff contra v%d:"
-#: builtin/log.c:2119
+#: builtin/log.c:2144
msgid "--range-diff requires --cover-letter or single patch"
msgstr "--range-diff requereix --cover-letter o un sol pedaç"
-#: builtin/log.c:2127
+#: builtin/log.c:2152
msgid "Range-diff:"
msgstr "Diferència de l'interval:"
-#: builtin/log.c:2128
+#: builtin/log.c:2153
#, c-format
msgid "Range-diff against v%d:"
msgstr "Diferència de l'interval contra el v%d:"
-#: builtin/log.c:2139
+#: builtin/log.c:2164
#, c-format
msgid "unable to read signature file '%s'"
msgstr "no s'ha pogut llegir el fitxer de signatura «%s»"
-#: builtin/log.c:2175
+#: builtin/log.c:2200
msgid "Generating patches"
msgstr "S'estan generant els pedaços"
-#: builtin/log.c:2219
+#: builtin/log.c:2244
msgid "failed to create output files"
msgstr "no s'han pogut crear els fitxers de sortida"
-#: builtin/log.c:2279
+#: builtin/log.c:2304
msgid "git cherry [-v] [<upstream> [<head> [<limit>]]]"
msgstr "git cherry [-v] [<font> [<cap> [<límit>]]]"
-#: builtin/log.c:2333
+#: builtin/log.c:2358
#, c-format
msgid ""
"Could not find a tracked remote branch, please specify <upstream> "
@@ -17756,10 +18252,6 @@ msgstr "afegeix les exclusions estàndards de git"
msgid "make the output relative to the project top directory"
msgstr "fes que la sortida sigui relativa al directori superior del projecte"
-#: builtin/ls-files.c:667
-msgid "recurse through submodules"
-msgstr "inclou recursivament als submòduls"
-
#: builtin/ls-files.c:669
msgid "if any <file> is not in the index, treat this as an error"
msgstr "si qualsevol <fitxer> no és en l'índex, tracta-ho com a error"
@@ -17799,7 +18291,7 @@ msgstr ""
msgid "do not print remote URL"
msgstr "no imprimeixis l'URL remot"
-#: builtin/ls-remote.c:61 builtin/ls-remote.c:63 builtin/rebase.c:1103
+#: builtin/ls-remote.c:61 builtin/ls-remote.c:63 builtin/rebase.c:1131
msgid "exec"
msgstr "executable"
@@ -17831,43 +18323,73 @@ msgstr "surt amb codi de sortida 2 si no es troba cap referència coincident"
msgid "show underlying ref in addition to the object pointed by it"
msgstr "mostra la referència subjacent a més de l'objecte que assenyali"
-#: builtin/ls-tree.c:30
+#: builtin/ls-tree.c:36
msgid "git ls-tree [<options>] <tree-ish> [<path>...]"
msgstr "git ls-tree [<opcions>] <arbre> [<camí>...]"
-#: builtin/ls-tree.c:128
+#: builtin/ls-tree.c:54
+#, c-format, fuzzy
+msgid "could not get object info about '%s'"
+msgstr "no s'ha pogut obtenir la informació de l'objecte sobre «%s»"
+
+#: builtin/ls-tree.c:79
+#, c-format, fuzzy
+msgid "bad ls-tree format: element '%s' does not start with '('"
+msgstr "format ls-tree dolent: l'element '%s' no comença amb '('"
+
+#: builtin/ls-tree.c:83
+#, c-format, fuzzy
+msgid "bad ls-tree format: element '%s' does not end in ')'"
+msgstr "format ls-tree dolent: l'element '%s' no acaba en ')'"
+
+#: builtin/ls-tree.c:109
+#, c-format, fuzzy
+msgid "bad ls-tree format: %%%.*s"
+msgstr "format incorrecte de ls-tree:%%.*s"
+
+#: builtin/ls-tree.c:336
msgid "only show trees"
msgstr "mostra només els arbres"
-#: builtin/ls-tree.c:130
+#: builtin/ls-tree.c:338
msgid "recurse into subtrees"
msgstr "inclou recursivament als subarbres"
-#: builtin/ls-tree.c:132
+#: builtin/ls-tree.c:340
msgid "show trees when recursing"
msgstr "mostra els arbres quan es treballa recursivament"
-#: builtin/ls-tree.c:135
+#: builtin/ls-tree.c:343
msgid "terminate entries with NUL byte"
msgstr "acaba les entrades amb un octet NUL"
-#: builtin/ls-tree.c:136
+#: builtin/ls-tree.c:344
msgid "include object size"
msgstr "mida de l'objecte d'inclusió"
-#: builtin/ls-tree.c:138 builtin/ls-tree.c:140
+#: builtin/ls-tree.c:346 builtin/ls-tree.c:348
msgid "list only filenames"
msgstr "llista només els noms de fitxer"
-#: builtin/ls-tree.c:143
+#: builtin/ls-tree.c:350
+#, fuzzy
+msgid "list only objects"
+msgstr "llista només els objectes"
+
+#: builtin/ls-tree.c:353
msgid "use full path names"
msgstr "usa els noms de camí complets"
-#: builtin/ls-tree.c:145
+#: builtin/ls-tree.c:355
msgid "list entire tree; not just current directory (implies --full-name)"
msgstr ""
"llista l'arbre sencer; no només el directori actual (implica --full-name)"
+#: builtin/ls-tree.c:391
+#, fuzzy
+msgid "--format can't be combined with other format-altering options"
+msgstr "--format no es pot combinar amb altres opcions d'alteració de format"
+
#. TRANSLATORS: keep <> in "<" mail ">" info.
#: builtin/mailinfo.c:14
msgid "git mailinfo [<options>] <msg> <patch> < mail >info"
@@ -17917,7 +18439,12 @@ msgstr "acció quan es troba un CR en una cita"
msgid "use headers in message's body"
msgstr "utilitza les capçaleres en el cos del missatge"
-#: builtin/mailsplit.c:239
+#: builtin/mailsplit.c:227
+#, fuzzy
+msgid "reading patches from stdin/tty..."
+msgstr "llegir pedaços de stdin/tty..."
+
+#: builtin/mailsplit.c:242
#, c-format
msgid "empty mbox: '%s'"
msgstr "mbox buit: «%s»"
@@ -17942,23 +18469,23 @@ msgstr "git merge-base --is-ancestor <comissió> <comissió>"
msgid "git merge-base --fork-point <ref> [<commit>]"
msgstr "git merge-base --fork-point <referència> [<comissió>]"
-#: builtin/merge-base.c:143
+#: builtin/merge-base.c:144
msgid "output all common ancestors"
msgstr "emet tots els avantpassats comuns"
-#: builtin/merge-base.c:145
+#: builtin/merge-base.c:146
msgid "find ancestors for a single n-way merge"
msgstr "troba els avantpassats per a una sola fusió d'n vies"
-#: builtin/merge-base.c:147
+#: builtin/merge-base.c:148
msgid "list revs not reachable from others"
msgstr "llista les revisions no abastables d'altres"
-#: builtin/merge-base.c:149
+#: builtin/merge-base.c:150
msgid "is the first one ancestor of the other?"
msgstr "és la primera un avantpassat de l'altre?"
-#: builtin/merge-base.c:151
+#: builtin/merge-base.c:152
msgid "find where <commit> forked from reflog of <ref>"
msgstr ""
"troba on <comissió> s'ha bifurcat del registre de referències de "
@@ -18110,7 +18637,7 @@ msgid "verify that the named commit has a valid GPG signature"
msgstr "verifica que la comissió anomenada tingui una signatura GPG vàlida"
#: builtin/merge.c:280 builtin/notes.c:785 builtin/pull.c:172
-#: builtin/rebase.c:1117 builtin/revert.c:114
+#: builtin/rebase.c:1145 builtin/revert.c:114
msgid "strategy"
msgstr "estratègia"
@@ -18227,8 +18754,8 @@ msgid ""
"\n"
msgstr ""
"Introduïu un missatge de comissió per a explicar per què aquesta fusió és\n"
-"necessària, especialment si es fusiona una branca amb funcionalitat\n"
-"nova.\n"
+"necessària, especialment si es fusiona una branca amb funcionalitat nova.\n"
+"\n"
#: builtin/merge.c:836
msgid "An empty message aborts the commit.\n"
@@ -18243,74 +18770,74 @@ msgstr ""
"Les línies que comencen amb «%c» seran ignorades i un missatge buit "
"interromp la comissió.\n"
-#: builtin/merge.c:894
+#: builtin/merge.c:900
msgid "Empty commit message."
msgstr "El missatge de comissió és buit."
-#: builtin/merge.c:909
+#: builtin/merge.c:915
#, c-format
msgid "Wonderful.\n"
msgstr "Meravellós.\n"
-#: builtin/merge.c:970
+#: builtin/merge.c:976
#, c-format
msgid "Automatic merge failed; fix conflicts and then commit the result.\n"
msgstr ""
"La fusió automàtica ha fallat; arregleu els conflictes i després cometeu el "
"resultat.\n"
-#: builtin/merge.c:1009
+#: builtin/merge.c:1015
msgid "No current branch."
msgstr "No hi ha cap branca actual."
-#: builtin/merge.c:1011
+#: builtin/merge.c:1017
msgid "No remote for the current branch."
msgstr "No hi ha cap remot per a la branca actual."
-#: builtin/merge.c:1013
+#: builtin/merge.c:1019
msgid "No default upstream defined for the current branch."
msgstr "No hi ha cap font per defecte definida per a la branca actual."
-#: builtin/merge.c:1018
+#: builtin/merge.c:1024
#, c-format
msgid "No remote-tracking branch for %s from %s"
msgstr "No hi ha cap branca amb seguiment remot per a %s de %s"
-#: builtin/merge.c:1075
+#: builtin/merge.c:1081
#, c-format
msgid "Bad value '%s' in environment '%s'"
msgstr "Valor incorrecte «%s» en l'entorn «%s»"
-#: builtin/merge.c:1177
+#: builtin/merge.c:1183
#, c-format
msgid "not something we can merge in %s: %s"
msgstr "no és quelcom que puguem fusionar en %s: %s"
-#: builtin/merge.c:1211
+#: builtin/merge.c:1217
msgid "not something we can merge"
msgstr "no és quelcom que puguem fusionar"
-#: builtin/merge.c:1324
+#: builtin/merge.c:1330
msgid "--abort expects no arguments"
msgstr "--abort no espera cap argument"
-#: builtin/merge.c:1328
+#: builtin/merge.c:1334
msgid "There is no merge to abort (MERGE_HEAD missing)."
msgstr "No hi ha fusió a avortar (manca MERGE_HEAD)."
-#: builtin/merge.c:1346
+#: builtin/merge.c:1352
msgid "--quit expects no arguments"
msgstr "--quit no espera cap argument"
-#: builtin/merge.c:1359
+#: builtin/merge.c:1365
msgid "--continue expects no arguments"
msgstr "--continue no espera cap argument"
-#: builtin/merge.c:1363
+#: builtin/merge.c:1369
msgid "There is no merge in progress (MERGE_HEAD missing)."
msgstr "No hi ha cap fusió en curs (manca MERGE_HEAD)."
-#: builtin/merge.c:1379
+#: builtin/merge.c:1385
msgid ""
"You have not concluded your merge (MERGE_HEAD exists).\n"
"Please, commit your changes before you merge."
@@ -18318,7 +18845,7 @@ msgstr ""
"No heu conclòs la vostra fusió (MERGE_HEAD existeix).\n"
"Cometeu els vostres canvis abans de fusionar."
-#: builtin/merge.c:1386
+#: builtin/merge.c:1392
msgid ""
"You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists).\n"
"Please, commit your changes before you merge."
@@ -18326,88 +18853,84 @@ msgstr ""
"No heu conclòs el vostre «cherry pick» (CHERRY_PICK_HEAD existeix).\n"
"Cometeu els vostres canvis abans de fusionar."
-#: builtin/merge.c:1389
+#: builtin/merge.c:1395
msgid "You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists)."
msgstr "No heu conclòs el vostre «cherry pick» (CHERRY_PICK_HEAD existeix)."
-#: builtin/merge.c:1421
+#: builtin/merge.c:1427
msgid "No commit specified and merge.defaultToUpstream not set."
msgstr ""
"No hi ha una comissió especificada i merge.defaultToUpstream no està "
"establert."
-#: builtin/merge.c:1438
+#: builtin/merge.c:1444
msgid "Squash commit into empty head not supported yet"
msgstr "Una comissió «squash» a un HEAD buit encara no es permet"
-#: builtin/merge.c:1440
+#: builtin/merge.c:1446
msgid "Non-fast-forward commit does not make sense into an empty head"
msgstr "Una comissió no d'avanç ràpid no té sentit a un HEAD buit"
-#: builtin/merge.c:1445
+#: builtin/merge.c:1451
#, c-format
msgid "%s - not something we can merge"
msgstr "%s - no és una cosa que puguem fusionar"
-#: builtin/merge.c:1447
+#: builtin/merge.c:1453
msgid "Can merge only exactly one commit into empty head"
msgstr "Es pot fusionar només una comissió a un HEAD buit"
-#: builtin/merge.c:1534
+#: builtin/merge.c:1540
msgid "refusing to merge unrelated histories"
msgstr "s'està refusant fusionar històries no relacionades"
-#: builtin/merge.c:1553
+#: builtin/merge.c:1559
#, c-format
msgid "Updating %s..%s\n"
msgstr "S'estan actualitzant %s..%s\n"
-#: builtin/merge.c:1601
+#: builtin/merge.c:1606
#, c-format
msgid "Trying really trivial in-index merge...\n"
msgstr "S'està intentant una fusió molt trivial en l'índex...\n"
-#: builtin/merge.c:1608
+#: builtin/merge.c:1613
#, c-format
msgid "Nope.\n"
msgstr "No.\n"
-#: builtin/merge.c:1667 builtin/merge.c:1733
+#: builtin/merge.c:1671 builtin/merge.c:1737
#, c-format
msgid "Rewinding the tree to pristine...\n"
msgstr "S'està rebobinant l'arbre a la pristina...\n"
-#: builtin/merge.c:1671
+#: builtin/merge.c:1675
#, c-format
msgid "Trying merge strategy %s...\n"
msgstr "S'està intentant l'estratègia de fusió %s...\n"
-#: builtin/merge.c:1723
+#: builtin/merge.c:1727
#, c-format
msgid "No merge strategy handled the merge.\n"
msgstr "Cap estratègia de fusió ha gestionat la fusió.\n"
-#: builtin/merge.c:1725
+#: builtin/merge.c:1729
#, c-format
msgid "Merge with strategy %s failed.\n"
msgstr "L'estratègia de fusió %s ha fallat.\n"
-#: builtin/merge.c:1735
+#: builtin/merge.c:1739
#, c-format
msgid "Using the %s strategy to prepare resolving by hand.\n"
msgstr "S'està usant l'estratègia %s per a preparar la resolució a mà.\n"
-#: builtin/merge.c:1749
+#: builtin/merge.c:1753
#, c-format
msgid "Automatic merge went well; stopped before committing as requested\n"
msgstr ""
"La fusió automàtica ha sortit bé; s'ha aturat abans de cometre com s'havia "
"demanat\n"
-#: builtin/mktag.c:10
-msgid "git mktag"
-msgstr "git mktag"
-
#: builtin/mktag.c:27
#, c-format
msgid "warning: tag input does not pass fsck: %s"
@@ -18433,22 +18956,18 @@ msgstr "no s'ha pogut llegir l'objecte etiquetat «%s»"
msgid "object '%s' tagged as '%s', but is a '%s' type"
msgstr "l'objecte «%s» s'ha etiquetat com a «%s», però és del tipus «%s»"
-#: builtin/mktag.c:98
+#: builtin/mktag.c:97
msgid "tag on stdin did not pass our strict fsck check"
msgstr "l'etiqueta a stdin no ha passat la comprovació estricta del fsck"
-#: builtin/mktag.c:101
+#: builtin/mktag.c:100
msgid "tag on stdin did not refer to a valid object"
msgstr "l'etiqueta a stdin no apunta a un objecte vàlid"
-#: builtin/mktag.c:104 builtin/tag.c:242
+#: builtin/mktag.c:103 builtin/tag.c:243
msgid "unable to write tag file"
msgstr "no s'ha pogut escriure el fitxer d'etiqueta"
-#: builtin/mktree.c:66
-msgid "git mktree [-z] [--missing] [--batch]"
-msgstr "git mktree [-z] [--missing] [--batch]"
-
#: builtin/mktree.c:154
msgid "input is NUL terminated"
msgstr "l'entrada és acabada amb NUL"
@@ -18502,20 +19021,20 @@ msgstr "escriu un map de bits multipaquet"
#: builtin/multi-pack-index.c:105
msgid "write multi-pack index containing only given indexes"
-msgstr ""
-"escriu un índex multipaquet que contingui només els índexs donats"
+msgstr "escriu un índex multipaquet que contingui només els índexs donats"
#: builtin/multi-pack-index.c:107
msgid "refs snapshot for selecting bitmap commits"
-msgstr "instantània de referències per a seleccionar les comissions de mapa de bits"
+msgstr ""
+"instantània de referències per a seleccionar les comissions de mapa de bits"
#: builtin/multi-pack-index.c:206
msgid ""
"during repack, collect pack-files of smaller size into a batch that is "
"larger than this size"
msgstr ""
-"durant el reempaquetament, recull els fitxers de paquets de mida més "
-"petita en un lot que és més gran que aquesta mida"
+"durant el reempaquetament, recull els fitxers de paquets de mida més petita "
+"en un lot que és més gran que aquesta mida"
#: builtin/mv.c:18
msgid "git mv [<options>] <source>... <destination>"
@@ -18610,53 +19129,58 @@ msgstr "%s, origen=%s, destí=%s"
msgid "Renaming %s to %s\n"
msgstr "S'està canviant el nom de %s a %s\n"
-#: builtin/mv.c:314 builtin/remote.c:790 builtin/repack.c:857
+#: builtin/mv.c:314 builtin/remote.c:812 builtin/repack.c:861
#, c-format
msgid "renaming '%s' failed"
msgstr "el canvi del nom de «%s» ha fallat"
-#: builtin/name-rev.c:474
+#: builtin/name-rev.c:524
msgid "git name-rev [<options>] <commit>..."
msgstr "git name-rev [<opcions>] <comissió>..."
-#: builtin/name-rev.c:475
+#: builtin/name-rev.c:525
msgid "git name-rev [<options>] --all"
msgstr "git name-rev [<opcions>] --all"
-#: builtin/name-rev.c:476
-msgid "git name-rev [<options>] --stdin"
-msgstr "git name-rev [<opcions>] --stdin"
+#: builtin/name-rev.c:526
+msgid "git name-rev [<options>] --annotate-stdin"
+msgstr "git name-rev [<options>] --annotate-stdin"
-#: builtin/name-rev.c:533
+#: builtin/name-rev.c:583
msgid "print only ref-based names (no object names)"
msgstr ""
"imprimeix només els noms basats en referències (no els noms d'objecte)"
-#: builtin/name-rev.c:534
+#: builtin/name-rev.c:584
msgid "only use tags to name the commits"
msgstr "només usa les etiquetes per a anomenar les comissions"
-#: builtin/name-rev.c:536
+#: builtin/name-rev.c:586
msgid "only use refs matching <pattern>"
msgstr "només usa les referències que coincideixin amb <patró>"
-#: builtin/name-rev.c:538
+#: builtin/name-rev.c:588
msgid "ignore refs matching <pattern>"
msgstr "ignora les referències que coincideixin amb <patró>"
-#: builtin/name-rev.c:540
+#: builtin/name-rev.c:590
msgid "list all commits reachable from all refs"
msgstr "llista totes les comissions abastables de totes les referències"
-#: builtin/name-rev.c:541
-msgid "read from stdin"
-msgstr "llegeix de stdin"
+#: builtin/name-rev.c:591
+msgid "deprecated: use annotate-stdin instead"
+msgstr "obsolet: useu annotate-stdin"
-#: builtin/name-rev.c:542
+#: builtin/name-rev.c:592
+#, fuzzy
+msgid "annotate text from stdin"
+msgstr "anota el text de stdin"
+
+#: builtin/name-rev.c:593
msgid "allow to print `undefined` names (default)"
msgstr "permet imprimir els noms «undefined» (per defecte)"
-#: builtin/name-rev.c:548
+#: builtin/name-rev.c:599
msgid "dereference tags in the input (internal use)"
msgstr "desreferencia les etiquetes en l'entrada (ús intern)"
@@ -18701,14 +19225,6 @@ msgstr ""
"git notes [--ref <referència-de-notes>] merge [-v | -q] [-s <estratègia>] "
"<referència-de-notes>"
-#: builtin/notes.c:35
-msgid "git notes merge --commit [-v | -q]"
-msgstr "git notes merge --commit [-v | -q]"
-
-#: builtin/notes.c:36
-msgid "git notes merge --abort [-v | -q]"
-msgstr "git notes merge --abort [-v | -q]"
-
#: builtin/notes.c:37
msgid "git notes [--ref <notes-ref>] remove [<object>...]"
msgstr "git notes [--ref <referència-de-notes>] remove [<objecte>...]"
@@ -18769,10 +19285,6 @@ msgstr "git notes remove [<objecte>]"
msgid "git notes prune [<options>]"
msgstr "git notes prune [<opcions>]"
-#: builtin/notes.c:92
-msgid "git notes get-ref"
-msgstr "git notes get-ref"
-
#: builtin/notes.c:97
msgid "Write/edit the notes for the following object:"
msgstr "Escriviu/editeu les notes per l'objecte següent:"
@@ -18805,7 +19317,7 @@ msgstr "no s'ha pogut escriure l'objecte de nota"
msgid "the note contents have been left in %s"
msgstr "s'han deixat els continguts de la nota en %s"
-#: builtin/notes.c:240 builtin/tag.c:581
+#: builtin/notes.c:240 builtin/tag.c:582
#, c-format
msgid "could not open or read '%s'"
msgstr "no s'ha pogut obrir o llegir «%s»"
@@ -18844,13 +19356,6 @@ msgstr "s'ha produït un error en copiar les notes de «%s» a «%s»"
msgid "refusing to %s notes in %s (outside of refs/notes/)"
msgstr "s'està refusant %s les notes en %s (fora de refs/notes/)"
-#: builtin/notes.c:374 builtin/notes.c:429 builtin/notes.c:507
-#: builtin/notes.c:519 builtin/notes.c:596 builtin/notes.c:663
-#: builtin/notes.c:813 builtin/notes.c:965 builtin/notes.c:987
-#: builtin/prune-packed.c:25 builtin/receive-pack.c:2487 builtin/tag.c:591
-msgid "too many arguments"
-msgstr "hi ha massa arguments"
-
#: builtin/notes.c:387 builtin/notes.c:676
#, c-format
msgid "no note found for object %s."
@@ -19041,7 +19546,7 @@ msgstr ""
"cometeu el resultat amb «git notes merge --commit», o avorteu la fusió amb "
"«git notes merge --abort».\n"
-#: builtin/notes.c:899 builtin/tag.c:594
+#: builtin/notes.c:899 builtin/tag.c:595
#, c-format
msgid "Failed to resolve '%s' as a valid ref."
msgstr "S'ha produït un error en resoldre «%s» com a referència vàlida."
@@ -19059,7 +19564,7 @@ msgstr "l'intent d'eliminar una nota no existent no és un error"
msgid "read object names from the standard input"
msgstr "llegeix els noms d'objecte des de l'entrada estàndard"
-#: builtin/notes.c:956 builtin/prune.c:144 builtin/worktree.c:147
+#: builtin/notes.c:956 builtin/prune.c:144 builtin/worktree.c:148
msgid "do not remove, show only"
msgstr "no eliminis, només mostra"
@@ -19075,7 +19580,7 @@ msgstr "referència de notes"
msgid "use notes from <notes-ref>"
msgstr "usa les notes de <referència-de-notes>"
-#: builtin/notes.c:1036 builtin/stash.c:1818
+#: builtin/notes.c:1036 builtin/stash.c:1802
#, c-format
msgid "unknown subcommand: %s"
msgstr "subordre desconeguda: %s"
@@ -19094,7 +19599,7 @@ msgstr ""
"git pack-objects [<opcions>...] <nom-base> [< <llista-de-referències> | < "
"<llista-de-objectes>]"
-#: builtin/pack-objects.c:572
+#: builtin/pack-objects.c:570
#, c-format
msgid ""
"write_reuse_object: could not locate %s, expected at offset %<PRIuMAX> in "
@@ -19103,117 +19608,117 @@ msgstr ""
"write_reuse_object: no s'ha pogut localitzar %s, s'esperava a la posició "
"%<PRIuMAX> al paquet %s"
-#: builtin/pack-objects.c:580
+#: builtin/pack-objects.c:578
#, c-format
msgid "bad packed object CRC for %s"
msgstr "CRC de l'objecte empaquetat malmès per a %s"
-#: builtin/pack-objects.c:591
+#: builtin/pack-objects.c:589
#, c-format
msgid "corrupt packed object for %s"
msgstr "objecte empaquetat corrupte per a %s"
-#: builtin/pack-objects.c:722
+#: builtin/pack-objects.c:720
#, c-format
msgid "recursive delta detected for object %s"
msgstr "diferència recursiva detectada per a l'objecte %s"
-#: builtin/pack-objects.c:941
+#: builtin/pack-objects.c:939
#, c-format
msgid "ordered %u objects, expected %<PRIu32>"
msgstr "ordenats %u objectes, s'esperaven %<PRIu32>"
-#: builtin/pack-objects.c:1036
+#: builtin/pack-objects.c:1034
#, c-format
msgid "expected object at offset %<PRIuMAX> in pack %s"
msgstr "objecte esperat a la posició %<PRIuMAX> al paquet %s"
-#: builtin/pack-objects.c:1160
+#: builtin/pack-objects.c:1158
msgid "disabling bitmap writing, packs are split due to pack.packSizeLimit"
msgstr ""
"s'està inhabilitant l'escriptura de mapes de bits, es divideixen els paquets"
" a causa de pack.packSizeLimit"
-#: builtin/pack-objects.c:1173
+#: builtin/pack-objects.c:1171
msgid "Writing objects"
msgstr "S'estan escrivint els objectes"
-#: builtin/pack-objects.c:1235 builtin/update-index.c:90
+#: builtin/pack-objects.c:1243 builtin/update-index.c:90
#, c-format
msgid "failed to stat %s"
msgstr "s'ha produït un error en fer stat a %s"
-#: builtin/pack-objects.c:1268
+#: builtin/pack-objects.c:1276
msgid "failed to write bitmap index"
msgstr "s'ha produït un error en escriure l'índex de mapa de bits"
-#: builtin/pack-objects.c:1294
+#: builtin/pack-objects.c:1302
#, c-format
msgid "wrote %<PRIu32> objects while expecting %<PRIu32>"
msgstr "escrits %<PRIu32> objectes mentre s'esperaven %<PRIu32>"
-#: builtin/pack-objects.c:1536
+#: builtin/pack-objects.c:1544
msgid "disabling bitmap writing, as some objects are not being packed"
msgstr ""
"s'està inhabilitant l'escriptura de mapes de bits, perquè alguns objectes no"
" s'empaqueten"
-#: builtin/pack-objects.c:1984
+#: builtin/pack-objects.c:1992
#, c-format
msgid "delta base offset overflow in pack for %s"
msgstr "desbordament del desplaçament base de diferències en paquet per a %s"
-#: builtin/pack-objects.c:1993
+#: builtin/pack-objects.c:2001
#, c-format
msgid "delta base offset out of bound for %s"
msgstr "desplaçament base de diferències fora dels límits per a %s"
-#: builtin/pack-objects.c:2274
+#: builtin/pack-objects.c:2282
msgid "Counting objects"
msgstr "S'estan comptant els objectes"
-#: builtin/pack-objects.c:2439
+#: builtin/pack-objects.c:2447
#, c-format
msgid "unable to parse object header of %s"
msgstr "no s'ha pogut analitzar la capçalera de l'objecte de %s"
-#: builtin/pack-objects.c:2509 builtin/pack-objects.c:2525
-#: builtin/pack-objects.c:2535
+#: builtin/pack-objects.c:2517 builtin/pack-objects.c:2533
+#: builtin/pack-objects.c:2543
#, c-format
msgid "object %s cannot be read"
msgstr "no es pot llegir l'objecte %s"
-#: builtin/pack-objects.c:2512 builtin/pack-objects.c:2539
+#: builtin/pack-objects.c:2520 builtin/pack-objects.c:2547
#, c-format
msgid "object %s inconsistent object length (%<PRIuMAX> vs %<PRIuMAX>)"
msgstr ""
"l'objecte %s té una longitud d'objecte inconsistent (%<PRIuMAX> vs "
"%<PRIuMAX>)"
-#: builtin/pack-objects.c:2549
+#: builtin/pack-objects.c:2557
msgid "suboptimal pack - out of memory"
msgstr "paquet subòptim - sense memòria"
-#: builtin/pack-objects.c:2864
+#: builtin/pack-objects.c:2872
#, c-format
msgid "Delta compression using up to %d threads"
msgstr "Compressió de diferències usant fins a %d fils"
-#: builtin/pack-objects.c:3003
+#: builtin/pack-objects.c:3011
#, c-format
msgid "unable to pack objects reachable from tag %s"
msgstr ""
"no s'han pogut empaquetar els objectes abastables des de l'etiqueta %s"
-#: builtin/pack-objects.c:3089
+#: builtin/pack-objects.c:3097
msgid "Compressing objects"
msgstr "S'estan comprimint els objectes"
-#: builtin/pack-objects.c:3095
+#: builtin/pack-objects.c:3103
msgid "inconsistency with delta count"
msgstr "inconsistència amb el comptador de diferències"
-#: builtin/pack-objects.c:3174
+#: builtin/pack-objects.c:3182
#, c-format
msgid ""
"value of uploadpack.blobpackfileuri must be of the form '<object-hash> "
@@ -19222,26 +19727,26 @@ msgstr ""
"el valor de uploadpack.blobpackfileuri ha de tenir la forma «<object-hash> "
"<pack-hash> <uri>» (s'ha rebut «%s»)"
-#: builtin/pack-objects.c:3177
+#: builtin/pack-objects.c:3185
#, c-format
msgid ""
"object already configured in another uploadpack.blobpackfileuri (got '%s')"
msgstr ""
-"l'objecte ja està configurat en un altre uploadpack.blobpackfileuri (s'ha rebut "
-"«%s»)"
+"l'objecte ja està configurat en un altre uploadpack.blobpackfileuri (s'ha "
+"rebut «%s»)"
-#: builtin/pack-objects.c:3212
+#: builtin/pack-objects.c:3220
#, c-format
msgid "could not get type of object %s in pack %s"
msgstr "no s'ha pogut obtenir el tipus de l'objecte %s al paquet %s"
-#: builtin/pack-objects.c:3340 builtin/pack-objects.c:3351
-#: builtin/pack-objects.c:3365
+#: builtin/pack-objects.c:3348 builtin/pack-objects.c:3359
+#: builtin/pack-objects.c:3373
#, c-format
msgid "could not find pack '%s'"
msgstr "no s'ha pogut trobar el paquet «%s»"
-#: builtin/pack-objects.c:3408
+#: builtin/pack-objects.c:3416
#, c-format
msgid ""
"expected edge object ID, got garbage:\n"
@@ -19250,7 +19755,7 @@ msgstr ""
"s'esperava un identificador vora de l'objecte, s'ha rebut brossa:\n"
" %s"
-#: builtin/pack-objects.c:3414
+#: builtin/pack-objects.c:3422
#, c-format
msgid ""
"expected object ID, got garbage:\n"
@@ -19259,256 +19764,252 @@ msgstr ""
"s'esperava un identificador d'objecte, s'ha rebut brossa:\n"
" %s"
-#: builtin/pack-objects.c:3507
-msgid "invalid value for --missing"
-msgstr "valor no vàlid per a --missing"
-
-#: builtin/pack-objects.c:3532 builtin/pack-objects.c:3619
+#: builtin/pack-objects.c:3540 builtin/pack-objects.c:3627
msgid "cannot open pack index"
msgstr "no s'ha pogut obrir l'índex del paquet"
-#: builtin/pack-objects.c:3541
+#: builtin/pack-objects.c:3549
#, c-format
msgid "loose object at %s could not be examined"
msgstr "no s'ha pogut examinar l'objecte solt a %s"
-#: builtin/pack-objects.c:3627
+#: builtin/pack-objects.c:3635
msgid "unable to force loose object"
msgstr "no s'ha pogut forçar l'objecte solt"
-#: builtin/pack-objects.c:3757
+#: builtin/pack-objects.c:3763
#, c-format
msgid "not a rev '%s'"
msgstr "«%s» no és una revisió"
-#: builtin/pack-objects.c:3760 builtin/rev-parse.c:1061
+#: builtin/pack-objects.c:3766 builtin/rev-parse.c:1061
#, c-format
msgid "bad revision '%s'"
-msgstr "revisió incorrecte «%s»"
+msgstr "revisió incorrecta «%s»"
-#: builtin/pack-objects.c:3788
+#: builtin/pack-objects.c:3794
msgid "unable to add recent objects"
msgstr "no s'han pogut afegir els objectes recents"
-#: builtin/pack-objects.c:3841
+#: builtin/pack-objects.c:3847
#, c-format
msgid "unsupported index version %s"
msgstr "versió d'índex no compatible %s"
-#: builtin/pack-objects.c:3845
+#: builtin/pack-objects.c:3851
#, c-format
msgid "bad index version '%s'"
msgstr "versió d'índex incorrecta «%s»"
-#: builtin/pack-objects.c:3884
+#: builtin/pack-objects.c:3907
msgid "<version>[,<offset>]"
msgstr "<versió>[,<desplaçament>]"
-#: builtin/pack-objects.c:3885
+#: builtin/pack-objects.c:3908
msgid "write the pack index file in the specified idx format version"
msgstr ""
"escriu el fitxer d'índex de paquet en la versió de format d'índex "
"especificada"
-#: builtin/pack-objects.c:3888
+#: builtin/pack-objects.c:3911
msgid "maximum size of each output pack file"
msgstr "mida màxima de cada fitxer empaquetat de sortida"
-#: builtin/pack-objects.c:3890
+#: builtin/pack-objects.c:3913
msgid "ignore borrowed objects from alternate object store"
msgstr ""
"ignora els objectes manllevats d'un emmagatzematge d'objectes alternatiu"
-#: builtin/pack-objects.c:3892
+#: builtin/pack-objects.c:3915
msgid "ignore packed objects"
msgstr "ignora els objectes empaquetats"
-#: builtin/pack-objects.c:3894
+#: builtin/pack-objects.c:3917
msgid "limit pack window by objects"
msgstr "limita la finestra d'empaquetament per objectes"
-#: builtin/pack-objects.c:3896
+#: builtin/pack-objects.c:3919
msgid "limit pack window by memory in addition to object limit"
msgstr ""
"limita la finestra d'empaquetament per memòria a més del límit d'objectes"
-#: builtin/pack-objects.c:3898
+#: builtin/pack-objects.c:3921
msgid "maximum length of delta chain allowed in the resulting pack"
msgstr ""
"longitud màxima de la cadena de diferències permesa en el paquet resultant"
-#: builtin/pack-objects.c:3900
+#: builtin/pack-objects.c:3923
msgid "reuse existing deltas"
msgstr "reusa les diferències existents"
-#: builtin/pack-objects.c:3902
+#: builtin/pack-objects.c:3925
msgid "reuse existing objects"
msgstr "reusa els objectes existents"
-#: builtin/pack-objects.c:3904
+#: builtin/pack-objects.c:3927
msgid "use OFS_DELTA objects"
msgstr "usa objectes OFS_DELTA"
-#: builtin/pack-objects.c:3906
+#: builtin/pack-objects.c:3929
msgid "use threads when searching for best delta matches"
msgstr "usa fils en cercar les millores coincidències de diferències"
-#: builtin/pack-objects.c:3908
+#: builtin/pack-objects.c:3931
msgid "do not create an empty pack output"
msgstr "no creïs una emissió de paquet buida"
-#: builtin/pack-objects.c:3910
+#: builtin/pack-objects.c:3933
msgid "read revision arguments from standard input"
msgstr "llegeix els arguments de revisió des de l'entrada estàndard"
-#: builtin/pack-objects.c:3912
+#: builtin/pack-objects.c:3935
msgid "limit the objects to those that are not yet packed"
msgstr "limita els objectes als quals encara no s'hagin empaquetat"
-#: builtin/pack-objects.c:3915
+#: builtin/pack-objects.c:3938
msgid "include objects reachable from any reference"
msgstr "inclou els objectes abastables de qualsevol referència"
-#: builtin/pack-objects.c:3918
+#: builtin/pack-objects.c:3941
msgid "include objects referred by reflog entries"
msgstr ""
"inclou els objectes als quals facin referència les entrades del registre de "
"referències"
-#: builtin/pack-objects.c:3921
+#: builtin/pack-objects.c:3944
msgid "include objects referred to by the index"
msgstr "inclou els objectes als quals faci referència l'índex"
-#: builtin/pack-objects.c:3924
+#: builtin/pack-objects.c:3947
msgid "read packs from stdin"
msgstr "llegeix els paquets des de stdin"
-#: builtin/pack-objects.c:3926
+#: builtin/pack-objects.c:3949
msgid "output pack to stdout"
msgstr "emet el paquet a stdout"
-#: builtin/pack-objects.c:3928
+#: builtin/pack-objects.c:3951
msgid "include tag objects that refer to objects to be packed"
msgstr ""
"inclou els objectes d'etiqueta que facin referència als objectes a "
"empaquetar"
-#: builtin/pack-objects.c:3930
+#: builtin/pack-objects.c:3953
msgid "keep unreachable objects"
msgstr "retén els objectes inabastables"
-#: builtin/pack-objects.c:3932
+#: builtin/pack-objects.c:3955
msgid "pack loose unreachable objects"
msgstr "empaqueta els objectes inabastables solts"
-#: builtin/pack-objects.c:3934
+#: builtin/pack-objects.c:3957
msgid "unpack unreachable objects newer than <time>"
msgstr "desempaqueta els objectes inabastables més nous que <data>"
-#: builtin/pack-objects.c:3937
+#: builtin/pack-objects.c:3960
msgid "use the sparse reachability algorithm"
msgstr "utilitza l'algorisme d'accessibilitat dispers"
-#: builtin/pack-objects.c:3939
+#: builtin/pack-objects.c:3962
msgid "create thin packs"
msgstr "crea paquets prims"
-#: builtin/pack-objects.c:3941
+#: builtin/pack-objects.c:3964
msgid "create packs suitable for shallow fetches"
msgstr "crea paquets adequats per a les obtencions superficials"
-#: builtin/pack-objects.c:3943
+#: builtin/pack-objects.c:3966
msgid "ignore packs that have companion .keep file"
msgstr "ignora els paquets que tinguin un fitxer .keep corresponent"
-#: builtin/pack-objects.c:3945
+#: builtin/pack-objects.c:3968
msgid "ignore this pack"
msgstr "ignora aquest paquet"
-#: builtin/pack-objects.c:3947
+#: builtin/pack-objects.c:3970
msgid "pack compression level"
msgstr "nivell de compressió de paquet"
-#: builtin/pack-objects.c:3949
+#: builtin/pack-objects.c:3972
msgid "do not hide commits by grafts"
msgstr "no amaguis les comissions per empelt"
-#: builtin/pack-objects.c:3951
+#: builtin/pack-objects.c:3974
msgid "use a bitmap index if available to speed up counting objects"
msgstr ""
"usa un índex de mapa de bits, si està disponible, per a accelerar el "
"recompte d'objectes"
-#: builtin/pack-objects.c:3953
+#: builtin/pack-objects.c:3976
msgid "write a bitmap index together with the pack index"
msgstr "escriu un índex de mapa de bits juntament amb l'índex de paquet"
-#: builtin/pack-objects.c:3957
+#: builtin/pack-objects.c:3980
msgid "write a bitmap index if possible"
msgstr "escriu un índex de mapa de bits si és possible"
-#: builtin/pack-objects.c:3961
+#: builtin/pack-objects.c:3984
msgid "handling for missing objects"
msgstr "gestió dels objectes absents"
-#: builtin/pack-objects.c:3964
+#: builtin/pack-objects.c:3987
msgid "do not pack objects in promisor packfiles"
msgstr "empaquetis els objectes als fitxers de paquet «promisor»"
-#: builtin/pack-objects.c:3966
+#: builtin/pack-objects.c:3989
msgid "respect islands during delta compression"
msgstr "respecta les illes durant la compressió delta"
-#: builtin/pack-objects.c:3968
+#: builtin/pack-objects.c:3991
msgid "protocol"
msgstr "protocol"
-#: builtin/pack-objects.c:3969
+#: builtin/pack-objects.c:3992
msgid "exclude any configured uploadpack.blobpackfileuri with this protocol"
msgstr ""
"exclou qualsevol uploadpack.blobpackfileuri configurat amb aquest protocol"
-#: builtin/pack-objects.c:4002
+#: builtin/pack-objects.c:4027
#, c-format
msgid "delta chain depth %d is too deep, forcing %d"
msgstr "la profunditat de la cadena delta %d és massa profunda, forçant %d"
-#: builtin/pack-objects.c:4007
+#: builtin/pack-objects.c:4032
#, c-format
msgid "pack.deltaCacheLimit is too high, forcing %d"
msgstr "pack.deltaCacheLimit és massa alt, forçant %d"
-#: builtin/pack-objects.c:4063
+#: builtin/pack-objects.c:4088
msgid "--max-pack-size cannot be used to build a pack for transfer"
msgstr ""
"--max-pack-size no es pot utilitzar per a construir un paquet per a la "
"transferència"
-#: builtin/pack-objects.c:4065
+#: builtin/pack-objects.c:4090
msgid "minimum pack size limit is 1 MiB"
msgstr "el límit mínim de mida del paquet és 1 MiB"
-#: builtin/pack-objects.c:4070
+#: builtin/pack-objects.c:4095
msgid "--thin cannot be used to build an indexable pack"
msgstr "--thin no es pot utilitzar per a construir un paquet indexable"
-#: builtin/pack-objects.c:4079
+#: builtin/pack-objects.c:4104
msgid "cannot use --filter without --stdout"
msgstr "no es pot utilitzar --filter sense --stdout"
-#: builtin/pack-objects.c:4081
+#: builtin/pack-objects.c:4106
msgid "cannot use --filter with --stdin-packs"
msgstr "no es pot utilitzar --filter sense --stdin-packs"
-#: builtin/pack-objects.c:4085
+#: builtin/pack-objects.c:4110
msgid "cannot use internal rev list with --stdin-packs"
msgstr "no es pot utilitzar la llista de revisió interna amb --stdin-packs"
-#: builtin/pack-objects.c:4144
+#: builtin/pack-objects.c:4169
msgid "Enumerating objects"
msgstr "S'estan enumerant els objectes"
-#: builtin/pack-objects.c:4180
+#: builtin/pack-objects.c:4210
#, c-format
msgid ""
"Total %<PRIu32> (delta %<PRIu32>), reused %<PRIu32> (delta %<PRIu32>), pack-"
@@ -19543,10 +20044,6 @@ msgstr "empaqueta-ho tot"
msgid "prune loose refs (default)"
msgstr "poda les referències soltes (per defecte)"
-#: builtin/prune-packed.c:6
-msgid "git prune-packed [-n | --dry-run] [-q | --quiet]"
-msgstr "git prune-packed [-n | --dry-run] [-q | --quiet]"
-
#: builtin/prune.c:14
msgid "git prune [-n] [-v] [--progress] [--expire <time>] [--] [<head>...]"
msgstr "git prune [-n] [-v] [--progress] [--expire <data>] [--] [<head>...]"
@@ -19561,17 +20058,13 @@ msgstr "fes caducar els objectes més antics que <data>"
#: builtin/prune.c:150
msgid "limit traversal to objects outside promisor packfiles"
-msgstr "limita el recorregut als objectes fora dels fitxers de paquet «promisor»"
+msgstr ""
+"limita el recorregut als objectes fora dels fitxers de paquet «promisor»"
#: builtin/prune.c:163
msgid "cannot prune in a precious-objects repo"
msgstr "no es pot podar en un repositori d'objectes preciosos"
-#: builtin/pull.c:45 builtin/pull.c:47
-#, c-format
-msgid "Invalid value for %s: %s"
-msgstr "Valor no vàlid per a %s: %s"
-
#: builtin/pull.c:67
msgid "git pull [<options>] [<repository> [<refspec>...]]"
msgstr ""
@@ -19597,7 +20090,7 @@ msgstr "permet l'avanç ràpid"
msgid "control use of pre-merge-commit and commit-msg hooks"
msgstr "controla l'ús dels lligams pre-merge-commit i commit-msg"
-#: builtin/pull.c:171 parse-options.h:340
+#: builtin/pull.c:171 parse-options.h:371
msgid "automatically stash/stash pop before and after"
msgstr "fes «stash» i «stash pop» automàticament abans i després"
@@ -19613,11 +20106,6 @@ msgstr "força la sobreescriptura de la branca local"
msgid "number of submodules pulled in parallel"
msgstr "nombre de submòduls baixats en paral·lel"
-#: builtin/pull.c:321
-#, c-format
-msgid "Invalid value for pull.ff: %s"
-msgstr "Valor no vàlid per a pull.ff: %s"
-
#: builtin/pull.c:449
msgid ""
"There is no candidate for rebasing against among the refs that you just "
@@ -19652,7 +20140,7 @@ msgstr ""
"Perquè aquest no és el remot configurat per defecte per a la vostra\n"
"branca actual, heu d'especificar una branca en la línia d'ordres."
-#: builtin/pull.c:460 builtin/rebase.c:951
+#: builtin/pull.c:460 builtin/rebase.c:978
msgid "You are not currently on a branch."
msgstr "Actualment no sou en cap branca."
@@ -19669,16 +20157,16 @@ msgid "See git-pull(1) for details."
msgstr "Vegeu git-pull(1) per a més informació."
#: builtin/pull.c:467 builtin/pull.c:473 builtin/pull.c:482
-#: builtin/rebase.c:957
+#: builtin/rebase.c:984
msgid "<remote>"
msgstr "<remot>"
#: builtin/pull.c:467 builtin/pull.c:482 builtin/pull.c:487
-#: contrib/scalar/scalar.c:375
+#: contrib/scalar/scalar.c:374
msgid "<branch>"
msgstr "<branca>"
-#: builtin/pull.c:475 builtin/rebase.c:949
+#: builtin/pull.c:475 builtin/rebase.c:976
msgid "There is no tracking information for the current branch."
msgstr "No hi ha cap informació de seguiment per a la branca actual."
@@ -19686,8 +20174,8 @@ msgstr "No hi ha cap informació de seguiment per a la branca actual."
msgid ""
"If you wish to set tracking information for this branch you can do so with:"
msgstr ""
-"Si voleu establir la informació de seguiment per a aquesta branca, podeu fer-ho"
-" amb:"
+"Si voleu establir la informació de seguiment per a aquesta branca, podeu "
+"fer-ho amb:"
#: builtin/pull.c:489
#, c-format
@@ -19735,20 +20223,20 @@ msgstr ""
"--no-rebase o --ff-only en la línia d'ordres per a sobreescriure el valor\n"
"per defecte configuració en aquesta execució.\n"
-#: builtin/pull.c:1046
+#: builtin/pull.c:1047
msgid "Updating an unborn branch with changes added to the index."
msgstr ""
"S'està actualitzant una branca no nascuda amb canvis afegits a l'índex."
-#: builtin/pull.c:1050
+#: builtin/pull.c:1051
msgid "pull with rebase"
msgstr "baixar fent «rebase»"
-#: builtin/pull.c:1051
+#: builtin/pull.c:1052
msgid "please commit or stash them."
msgstr "cometeu-los o emmagatzemeu-los."
-#: builtin/pull.c:1076
+#: builtin/pull.c:1077
#, c-format
msgid ""
"fetch updated the current branch head.\n"
@@ -19759,7 +20247,7 @@ msgstr ""
"s'està avançant ràpidament el vostre arbre de treball des de\n"
"la comissió %s."
-#: builtin/pull.c:1082
+#: builtin/pull.c:1083
#, c-format
msgid ""
"Cannot fast-forward your working tree.\n"
@@ -19776,23 +20264,23 @@ msgstr ""
"$ git reset --hard\n"
"per a recuperar."
-#: builtin/pull.c:1097
+#: builtin/pull.c:1098
msgid "Cannot merge multiple branches into empty head."
msgstr "No es poden fusionar múltiples branques a un HEAD buit."
-#: builtin/pull.c:1102
+#: builtin/pull.c:1103
msgid "Cannot rebase onto multiple branches."
msgstr "No es pot fer «rebase» sobre múltiples branques."
-#: builtin/pull.c:1104
+#: builtin/pull.c:1105
msgid "Cannot fast-forward to multiple branches."
msgstr "No es pot fer un avançament ràpid a branques múltiples."
-#: builtin/pull.c:1119
+#: builtin/pull.c:1120
msgid "Need to specify how to reconcile divergent branches."
msgstr "Cal especificar com reconciliar les branques divergents."
-#: builtin/pull.c:1133
+#: builtin/pull.c:1134
msgid "cannot rebase with locally recorded submodule modifications"
msgstr ""
"no es pot fer «rebase» amb modificacions als submòduls enregistrades "
@@ -19975,7 +20463,7 @@ msgstr "S'està pujant a %s\n"
msgid "failed to push some refs to '%s'"
msgstr "s'ha produït un error en pujar algunes referències a «%s»"
-#: builtin/push.c:544 builtin/submodule--helper.c:3259
+#: builtin/push.c:544 builtin/submodule--helper.c:3377
msgid "repository"
msgstr "repositori"
@@ -20213,11 +20701,11 @@ msgstr "depura unpack-trees"
msgid "suppress feedback messages"
msgstr "suprimeix els missatges de retroacció"
-#: builtin/read-tree.c:183
+#: builtin/read-tree.c:190
msgid "You need to resolve your current index first"
msgstr "Primer heu de resoldre el vostre índex actual"
-#: builtin/rebase.c:35
+#: builtin/rebase.c:36
msgid ""
"git rebase [-i] [options] [--exec <cmd>] [--onto <newbase> | --keep-base] "
"[<upstream> [<branch>]]"
@@ -20225,7 +20713,7 @@ msgstr ""
"git rebase [-i] [options] [--exec <cmd>] [--onto <newbase> | --keep-base] "
"[<upstream> [<branch>]]"
-#: builtin/rebase.c:37
+#: builtin/rebase.c:38
msgid ""
"git rebase [-i] [options] [--exec <cmd>] [--onto <newbase>] --root "
"[<branch>]"
@@ -20233,48 +20721,44 @@ msgstr ""
"git rebase [-i] [options] [--exec <cmd>] [--onto <newbase>] --root "
"[<branch>]"
-#: builtin/rebase.c:39
-msgid "git rebase --continue | --abort | --skip | --edit-todo"
-msgstr "git rebase --continue | --abort | --skip | --edit-todo"
-
-#: builtin/rebase.c:230
+#: builtin/rebase.c:231
#, c-format
msgid "could not create temporary %s"
msgstr "no s'ha pogut crear el fitxer temporal %s"
-#: builtin/rebase.c:236
+#: builtin/rebase.c:237
msgid "could not mark as interactive"
msgstr "no s'ha pogut marcar com a interactiu"
-#: builtin/rebase.c:289
+#: builtin/rebase.c:290
msgid "could not generate todo list"
msgstr "no s'ha pogut generar la llista per a fer"
-#: builtin/rebase.c:331
+#: builtin/rebase.c:332
msgid "a base commit must be provided with --upstream or --onto"
msgstr "s'ha de proporcionar una comissió base amb --upstream o --onto"
-#: builtin/rebase.c:390
+#: builtin/rebase.c:391
#, c-format
msgid "%s requires the merge backend"
msgstr "%s requereix un rerefons de fusió"
-#: builtin/rebase.c:432
+#: builtin/rebase.c:433
#, c-format
msgid "could not get 'onto': '%s'"
msgstr "no s'ha pogut obtenir «onto»: «%s»"
-#: builtin/rebase.c:449
+#: builtin/rebase.c:450
#, c-format
msgid "invalid orig-head: '%s'"
msgstr "orig-head no és vàlid: «%s»"
-#: builtin/rebase.c:474
+#: builtin/rebase.c:475
#, c-format
msgid "ignoring invalid allow_rerere_autoupdate: '%s'"
msgstr "s'ignora allow_rerere_autoupdate no vàlid: «%s»"
-#: builtin/rebase.c:597
+#: builtin/rebase.c:600
msgid ""
"Resolve all conflicts manually, mark them as resolved with\n"
"\"git add/rm <conflicted_files>\", then run \"git rebase --continue\".\n"
@@ -20286,7 +20770,7 @@ msgstr ""
"Alternativament podeu ometre aquesta comissió: executeu «git rebase --skip».\n"
"Per a avortar i tornar a l'estat anterior abans de l'ordre «git rebase», executeu «git rebase --abort»."
-#: builtin/rebase.c:680
+#: builtin/rebase.c:685
#, c-format
msgid ""
"\n"
@@ -20305,13 +20789,18 @@ msgstr ""
"\n"
"Com a resultat, git no pot fer un «rebase» d'elles."
-#: builtin/rebase.c:925
+#: builtin/rebase.c:836
+#, c-format
+msgid "could not switch to %s"
+msgstr "no s'ha pogut commutar a %s"
+
+#: builtin/rebase.c:952
#, c-format
msgid "unrecognized empty type '%s'; valid values are \"drop\", \"keep\", and \"ask\"."
msgstr ""
"tipus buit no reconegut «%s»; els valors vàlids són «drop», «keep» i «ask»."
-#: builtin/rebase.c:943
+#: builtin/rebase.c:970
#, c-format
msgid ""
"%s\n"
@@ -20328,7 +20817,7 @@ msgstr ""
" git rebase '<branca>'\n"
"\n"
-#: builtin/rebase.c:959
+#: builtin/rebase.c:986
#, c-format
msgid ""
"If you wish to set tracking information for this branch you can do so with:\n"
@@ -20341,179 +20830,179 @@ msgstr ""
" git branch --set-upstream-to=%s/<branca> %s\n"
"\n"
-#: builtin/rebase.c:989
+#: builtin/rebase.c:1016
msgid "exec commands cannot contain newlines"
msgstr "les ordres exec no poden contenir línies noves"
-#: builtin/rebase.c:993
+#: builtin/rebase.c:1020
msgid "empty exec command"
msgstr "ordre exec buida"
-#: builtin/rebase.c:1023
+#: builtin/rebase.c:1051
msgid "rebase onto given branch instead of upstream"
msgstr "fes un «rebase» en la branca donada en comptes de la font"
-#: builtin/rebase.c:1025
+#: builtin/rebase.c:1053
msgid "use the merge-base of upstream and branch as the current base"
msgstr "utilitza la base de fusió de la font i la branca com a base actual"
-#: builtin/rebase.c:1027
+#: builtin/rebase.c:1055
msgid "allow pre-rebase hook to run"
msgstr "permet al lligam pre-rebase executar-se"
-#: builtin/rebase.c:1029
+#: builtin/rebase.c:1057
msgid "be quiet. implies --no-stat"
msgstr "silenciós. Implica --no-stat"
-#: builtin/rebase.c:1032
+#: builtin/rebase.c:1060
msgid "display a diffstat of what changed upstream"
msgstr "mostra un «diffstat» del que ha canviat a la font"
-#: builtin/rebase.c:1035
+#: builtin/rebase.c:1063
msgid "do not show diffstat of what changed upstream"
msgstr "no mostris «diffstat» del que ha canviat a la font"
-#: builtin/rebase.c:1038
+#: builtin/rebase.c:1066
msgid "add a Signed-off-by trailer to each commit"
msgstr "afegeix un «trailer» tipus «Signed-off-by» a cada comissió"
-#: builtin/rebase.c:1041
+#: builtin/rebase.c:1069
msgid "make committer date match author date"
msgstr "fes que la data del «comitter» coincideixi amb la data de l'autor"
-#: builtin/rebase.c:1043
+#: builtin/rebase.c:1071
msgid "ignore author date and use current date"
msgstr "ignora la data de l'autor i utilitza la data actual"
-#: builtin/rebase.c:1045
+#: builtin/rebase.c:1073
msgid "synonym of --reset-author-date"
msgstr "sinònim de --reset-author-date"
-#: builtin/rebase.c:1047 builtin/rebase.c:1051
+#: builtin/rebase.c:1075 builtin/rebase.c:1079
msgid "passed to 'git apply'"
msgstr "passa-ho a «git apply»"
-#: builtin/rebase.c:1049
+#: builtin/rebase.c:1077
msgid "ignore changes in whitespace"
msgstr "ignora els canvis d'espais en blanc"
-#: builtin/rebase.c:1053 builtin/rebase.c:1056
+#: builtin/rebase.c:1081 builtin/rebase.c:1084
msgid "cherry-pick all commits, even if unchanged"
msgstr "«cherry pick» totes les comissions, inclús les no canviades"
-#: builtin/rebase.c:1058
+#: builtin/rebase.c:1086
msgid "continue"
msgstr "continua"
-#: builtin/rebase.c:1061
+#: builtin/rebase.c:1089
msgid "skip current patch and continue"
msgstr "omet el pedaç actual i continua"
-#: builtin/rebase.c:1063
+#: builtin/rebase.c:1091
msgid "abort and check out the original branch"
msgstr "interromp i agafa la branca original"
-#: builtin/rebase.c:1066
+#: builtin/rebase.c:1094
msgid "abort but keep HEAD where it is"
msgstr "interromp però manté HEAD on és"
-#: builtin/rebase.c:1067
+#: builtin/rebase.c:1095
msgid "edit the todo list during an interactive rebase"
msgstr "edita la llista de coses a fer durant un «rebase» interactiu"
-#: builtin/rebase.c:1070
+#: builtin/rebase.c:1098
msgid "show the patch file being applied or merged"
msgstr "mostra el pedaç que s'està aplicant o fusionant"
-#: builtin/rebase.c:1073
+#: builtin/rebase.c:1101
msgid "use apply strategies to rebase"
msgstr "utilitza estratègies d'aplicació per a fer «rebase»"
-#: builtin/rebase.c:1077
+#: builtin/rebase.c:1105
msgid "use merging strategies to rebase"
msgstr "utilitza estratègies de fusió per a fer «rebase»"
-#: builtin/rebase.c:1081
+#: builtin/rebase.c:1109
msgid "let the user edit the list of commits to rebase"
msgstr "permet a l'usuari editar la llista de comissions a fer «rebase»"
-#: builtin/rebase.c:1085
+#: builtin/rebase.c:1113
msgid "(DEPRECATED) try to recreate merges instead of ignoring them"
msgstr "(EN DESÚS) intenta recrear fusions en lloc d'ignorar-les"
-#: builtin/rebase.c:1090
+#: builtin/rebase.c:1118
msgid "how to handle commits that become empty"
msgstr "com gestionar les comissions que queden buides"
-#: builtin/rebase.c:1093
+#: builtin/rebase.c:1121
msgid "keep commits which start empty"
msgstr "manté les comissions que comencen en blanc"
-#: builtin/rebase.c:1097
+#: builtin/rebase.c:1125
msgid "move commits that begin with squash!/fixup! under -i"
msgstr "mou les comissions que comencen amb squash!/fixup! sota -i"
-#: builtin/rebase.c:1104
+#: builtin/rebase.c:1132
msgid "add exec lines after each commit of the editable list"
msgstr "afegeix línies d'exec després de cada comissió de la llista editable"
-#: builtin/rebase.c:1108
+#: builtin/rebase.c:1136
msgid "allow rebasing commits with empty messages"
msgstr "permet fer «rebase» de les comissions amb missatges buits"
-#: builtin/rebase.c:1112
+#: builtin/rebase.c:1140
msgid "try to rebase merges instead of skipping them"
msgstr "intenta fer «rebase» de les fusions en comptes d'ometre-les"
-#: builtin/rebase.c:1115
+#: builtin/rebase.c:1143
msgid "use 'merge-base --fork-point' to refine upstream"
msgstr "usa «merge-base --fork-point» per a refinar la font"
-#: builtin/rebase.c:1117
+#: builtin/rebase.c:1145
msgid "use the given merge strategy"
msgstr "utilitza l'estratègia de fusió donada"
-#: builtin/rebase.c:1119 builtin/revert.c:115
+#: builtin/rebase.c:1147 builtin/revert.c:115
msgid "option"
msgstr "opció"
-#: builtin/rebase.c:1120
+#: builtin/rebase.c:1148
msgid "pass the argument through to the merge strategy"
msgstr "passa l'argument a l'estratègia de fusió"
-#: builtin/rebase.c:1123
+#: builtin/rebase.c:1151
msgid "rebase all reachable commits up to the root(s)"
msgstr "fes «rebase» de totes les comissions accessibles fins a l'arrel"
-#: builtin/rebase.c:1126
+#: builtin/rebase.c:1154
msgid "automatically re-schedule any `exec` that fails"
msgstr "torna a planificar automàticament qualsevol «exec» que falli"
-#: builtin/rebase.c:1128
+#: builtin/rebase.c:1156
msgid "apply all changes, even those already present upstream"
msgstr "aplica tots els canvis, fins i tot els que ja estan a la font"
-#: builtin/rebase.c:1149
+#: builtin/rebase.c:1177
msgid "It looks like 'git am' is in progress. Cannot rebase."
msgstr "Sembla que «git am» està en curs. No es pot fer «rebase»."
-#: builtin/rebase.c:1180
+#: builtin/rebase.c:1208
msgid "--preserve-merges was replaced by --rebase-merges"
msgstr "--preserve-merges ha estat substituït per --rebase-merges"
-#: builtin/rebase.c:1202
+#: builtin/rebase.c:1230
msgid "No rebase in progress?"
msgstr "No hi ha un «rebase» en curs?"
-#: builtin/rebase.c:1206
+#: builtin/rebase.c:1234
msgid "The --edit-todo action can only be used during interactive rebase."
msgstr "L'acció --edit-todo només es pot usar durant un «rebase» interactiu."
-#: builtin/rebase.c:1229 t/helper/test-fast-rebase.c:122
+#: builtin/rebase.c:1257 t/helper/test-fast-rebase.c:122
msgid "Cannot read HEAD"
msgstr "No es pot llegir HEAD"
-#: builtin/rebase.c:1241
+#: builtin/rebase.c:1269
msgid ""
"You must edit all merge conflicts and then\n"
"mark them as resolved using git add"
@@ -20521,16 +21010,16 @@ msgstr ""
"Heu d'editar tots els conflictes de fusió i després\n"
"marcar-los com a resolts fent servir git add"
-#: builtin/rebase.c:1260
+#: builtin/rebase.c:1287
msgid "could not discard worktree changes"
msgstr "no s'han pogut descartar els canvis de l'arbre de treball"
-#: builtin/rebase.c:1279
+#: builtin/rebase.c:1308
#, c-format
msgid "could not move back to %s"
msgstr "no s'ha pogut tornar a %s"
-#: builtin/rebase.c:1325
+#: builtin/rebase.c:1354
#, c-format
msgid ""
"It seems that there is already a %s directory, and\n"
@@ -20550,124 +21039,119 @@ msgstr ""
"i executeu aquesta ordre de nou. S'atura l'operació en cas que\n"
"tingueu quelcom valuós.\n"
-#: builtin/rebase.c:1353
+#: builtin/rebase.c:1382
msgid "switch `C' expects a numerical value"
msgstr "«switch» «c» espera un valor numèric"
-#: builtin/rebase.c:1395
+#: builtin/rebase.c:1424
#, c-format
msgid "Unknown mode: %s"
msgstr "Mode desconegut: %s"
-#: builtin/rebase.c:1434
+#: builtin/rebase.c:1463
msgid "--strategy requires --merge or --interactive"
msgstr "--strategy requereix --merge o --interactive"
-#: builtin/rebase.c:1463
+#: builtin/rebase.c:1492
msgid "apply options and merge options cannot be used together"
msgstr "les opcions apply i merge no es poden usar juntes"
-#: builtin/rebase.c:1476
+#: builtin/rebase.c:1505
#, c-format
msgid "Unknown rebase backend: %s"
msgstr "Rerefons de «rebase» desconegut: %s"
-#: builtin/rebase.c:1505
+#: builtin/rebase.c:1534
msgid "--reschedule-failed-exec requires --exec or --interactive"
msgstr "--reschedule-failed-exec requereix --exec o --interactive"
-#: builtin/rebase.c:1536
+#: builtin/rebase.c:1565
#, c-format
msgid "invalid upstream '%s'"
msgstr "font no vàlida: «%s»"
-#: builtin/rebase.c:1542
+#: builtin/rebase.c:1571
msgid "Could not create new root commit"
msgstr "No s'ha pogut crear una comissió arrel nova"
-#: builtin/rebase.c:1568
+#: builtin/rebase.c:1597
#, c-format
msgid "'%s': need exactly one merge base with branch"
msgstr "«%s»: necessita exactament una base de fusió amb branca"
-#: builtin/rebase.c:1571
+#: builtin/rebase.c:1600
#, c-format
msgid "'%s': need exactly one merge base"
msgstr "«%s»: necessita exactament una base de fusió"
-#: builtin/rebase.c:1580
+#: builtin/rebase.c:1609
#, c-format
msgid "Does not point to a valid commit '%s'"
msgstr "No apunta a una comissió vàlida «%s»"
-#: builtin/rebase.c:1607
+#: builtin/rebase.c:1636
#, c-format
msgid "no such branch/commit '%s'"
msgstr "no existeix aquesta branca o comissió «%s»"
-#: builtin/rebase.c:1618 builtin/submodule--helper.c:39
-#: builtin/submodule--helper.c:2659
+#: builtin/rebase.c:1647 builtin/submodule--helper.c:43
+#: builtin/submodule--helper.c:2477
#, c-format
msgid "No such ref: %s"
msgstr "No hi ha tal referència: %s"
-#: builtin/rebase.c:1629
+#: builtin/rebase.c:1658
msgid "Could not resolve HEAD to a revision"
msgstr "No s'ha pogut resoldre HEAD a una revisió"
-#: builtin/rebase.c:1650
+#: builtin/rebase.c:1679
msgid "Please commit or stash them."
msgstr "Cometeu-los o emmagatzemeu-los."
-#: builtin/rebase.c:1686
-#, c-format
-msgid "could not switch to %s"
-msgstr "no s'ha pogut commutar a %s"
-
-#: builtin/rebase.c:1697
+#: builtin/rebase.c:1714
msgid "HEAD is up to date."
msgstr "HEAD està al dia."
-#: builtin/rebase.c:1699
+#: builtin/rebase.c:1716
#, c-format
msgid "Current branch %s is up to date.\n"
msgstr "La branca actual %s està al dia.\n"
-#: builtin/rebase.c:1707
+#: builtin/rebase.c:1724
msgid "HEAD is up to date, rebase forced."
msgstr "La branca actual està al dia, «rebase» forçat."
-#: builtin/rebase.c:1709
+#: builtin/rebase.c:1726
#, c-format
msgid "Current branch %s is up to date, rebase forced.\n"
msgstr "La branca actual %s està al dia; «rebase» forçat.\n"
-#: builtin/rebase.c:1717
+#: builtin/rebase.c:1734
msgid "The pre-rebase hook refused to rebase."
msgstr "El lligam pre-«rebase» ha refusat a fer «rebase»."
-#: builtin/rebase.c:1724
+#: builtin/rebase.c:1741
#, c-format
msgid "Changes to %s:\n"
msgstr "Canvis a %s:\n"
-#: builtin/rebase.c:1727
+#: builtin/rebase.c:1744
#, c-format
msgid "Changes from %s to %s:\n"
msgstr "Canvis de %s a %s:\n"
-#: builtin/rebase.c:1752
+#: builtin/rebase.c:1769
#, c-format
msgid "First, rewinding head to replay your work on top of it...\n"
msgstr ""
"Primer, s'està rebobinant HEAD per a reproduir el vostre treball al "
"damunt...\n"
-#: builtin/rebase.c:1761
+#: builtin/rebase.c:1781
msgid "Could not detach HEAD"
msgstr "No s'ha pogut separar HEAD"
-#: builtin/rebase.c:1770
+#: builtin/rebase.c:1790
#, c-format
msgid "Fast-forwarded %s to %s.\n"
msgstr "Avanç ràpid %s a %s.\n"
@@ -20676,7 +21160,7 @@ msgstr "Avanç ràpid %s a %s.\n"
msgid "git receive-pack <git-dir>"
msgstr "git receive-pack <git-dir>"
-#: builtin/receive-pack.c:1275
+#: builtin/receive-pack.c:1263
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"
@@ -20707,7 +21191,7 @@ msgstr ""
"per defecte, establiu la variable de configuració\n"
"«receive.denyCurrentBranch» a «refuse»."
-#: builtin/receive-pack.c:1295
+#: builtin/receive-pack.c:1283
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"
@@ -20729,79 +21213,117 @@ msgstr ""
"\n"
"Per a silenciar aquest missatge, podeu establir-la a «refuse»."
-#: builtin/receive-pack.c:2474
+#: builtin/receive-pack.c:2476
msgid "quiet"
msgstr "silenciós"
-#: builtin/receive-pack.c:2489
+#: builtin/receive-pack.c:2491
msgid "you must specify a directory"
msgstr "heu d'especificar un directori"
-#: builtin/reflog.c:17
+#: builtin/reflog.c:9
+msgid "git reflog [show] [<log-options>] [<ref>]"
+msgstr "git reflog [show] [<log-options>] [<ref>]"
+
+#: builtin/reflog.c:12
msgid ""
-"git reflog expire [--expire=<time>] [--expire-unreachable=<time>] "
-"[--rewrite] [--updateref] [--stale-fix] [--dry-run | -n] [--verbose] [--all]"
-" <refs>..."
+"git reflog expire [--expire=<time>] [--expire-unreachable=<time>]\n"
+" [--rewrite] [--updateref] [--stale-fix]\n"
+" [--dry-run | -n] [--verbose] [--all [--single-worktree] | <refs>...]"
msgstr ""
-"git reflog expire [--expire=<data>] [--expire-unreachable=<data>] "
-"[--rewrite] [--updateref] [--stale-fix] [--dry-run | -n] [--verbose] [--all]"
-" <referències>..."
+"git reflog expire [--expire=<time>] [--expire-unreachable=<time>]\n"
+" [--rewrite] [--updateref] [--stale-fix]\n"
+" [--dry-run | -n] [--verbose] [--all [--single-worktree] | <refs>...]"
-#: builtin/reflog.c:22
+#: builtin/reflog.c:17
msgid ""
-"git reflog delete [--rewrite] [--updateref] [--dry-run | -n] [--verbose] "
-"<refs>..."
+"git reflog delete [--rewrite] [--updateref]\n"
+" [--dry-run | -n] [--verbose] <ref>@{<specifier>}..."
msgstr ""
-"git reflog delete [--rewrite] [--updateref] [--dry-run | -n] [--verbose] "
-"<referències>..."
+"git reflog delete [--rewrite] [--updateref]\n"
+" [--dry-run | -n] [--verbose] <ref>@{<specifier>}..."
-#: builtin/reflog.c:25
+#: builtin/reflog.c:21
msgid "git reflog exists <ref>"
msgstr "git reflog exists <referència>"
-#: builtin/reflog.c:585 builtin/reflog.c:590
-#, c-format
-msgid "'%s' is not a valid timestamp"
-msgstr "«%s» no és una marca de temps vàlida"
+#: builtin/reflog.c:197 builtin/reflog.c:211
+#, c-format, fuzzy
+msgid "invalid timestamp '%s' given to '--%s'"
+msgstr "el codi de temps «%s» no és vàlid donat a «--%s»"
+
+#: builtin/reflog.c:240 builtin/reflog.c:359
+#, fuzzy
+msgid "do not actually prune any entries"
+msgstr "no practiquis cap entrada"
+
+#: builtin/reflog.c:243 builtin/reflog.c:362
+msgid ""
+"rewrite the old SHA1 with the new SHA1 of the entry that now precedes it"
+msgstr "reescriu l'antic SHA1 amb el nou SHA1 de l'entrada que ara precedeix"
+
+#: builtin/reflog.c:246 builtin/reflog.c:365
+msgid "update the reference to the value of the top reflog entry"
+msgstr "actualitza la referència al valor de l'entrada de reflog superior"
+
+#: builtin/reflog.c:248 builtin/reflog.c:367
+#, fuzzy
+msgid "print extra information on screen"
+msgstr "imprimeix informació extra a la pantalla"
+
+#: builtin/reflog.c:249 builtin/reflog.c:253
+msgid "timestamp"
+msgstr "marca de temps"
+
+#: builtin/reflog.c:250
+#, fuzzy
+msgid "prune entries older than the specified time"
+msgstr "poda les entrades més antigues que el temps especificat"
+
+#: builtin/reflog.c:254
+#, fuzzy
+msgid ""
+"prune entries older than <time> that are not reachable from the current tip "
+"of the branch"
+msgstr ""
+"poda les entrades més antigues de <time> que no es poden accedir des de la "
+"punta actual de la branca"
+
+#: builtin/reflog.c:258
+#, fuzzy
+msgid "prune any reflog entries that point to broken commits"
+msgstr "poda qualsevol entrada de reflog que apunti a comissions trencades"
+
+#: builtin/reflog.c:259
+#, fuzzy
+msgid "process the reflogs of all references"
+msgstr "processa els reflogs de totes les referències"
-#: builtin/reflog.c:631
+#: builtin/reflog.c:261
+#, fuzzy
+msgid "limits processing to reflogs from the current worktree only"
+msgstr "limita el processament a reflogs només de l'arbre de treball actual"
+
+#: builtin/reflog.c:294
#, c-format
msgid "Marking reachable objects..."
msgstr "S'estan marcant els objectes abastables..."
-#: builtin/reflog.c:675
+#: builtin/reflog.c:338
#, c-format
msgid "%s points nowhere!"
msgstr "%s no apunta a enlloc"
-#: builtin/reflog.c:731
+#: builtin/reflog.c:374
msgid "no reflog specified to delete"
msgstr "no s'ha especificat cap registre de referència per a suprimir"
-#: builtin/reflog.c:742
-#, c-format
-msgid "not a reflog: %s"
-msgstr "no és un registre de referència: %s"
-
-#: builtin/reflog.c:747
-#, c-format
-msgid "no reflog for '%s'"
-msgstr "cap registre de referència per a «%s»"
-
-#: builtin/reflog.c:794
+#: builtin/reflog.c:396
#, c-format
msgid "invalid ref format: %s"
msgstr "format de referència no vàlid: %s"
-#: builtin/reflog.c:803
-msgid "git reflog [ show | expire | delete | exists ]"
-msgstr "git reflog [ show | expire | delete | exists ]"
-
-#: builtin/remote.c:17
-msgid "git remote [-v | --verbose]"
-msgstr "git remote [-v | --verbose]"
-
-#: builtin/remote.c:18
+#: builtin/remote.c:19
msgid ""
"git remote add [-t <branch>] [-m <master>] [-f] [--tags | --no-tags] "
"[--mirror=<fetch|push>] <name> <url>"
@@ -20809,87 +21331,87 @@ msgstr ""
"git remote add [-t <branca>] [-m <mestra>] [-f] [--tags | --no-tags] "
"[--mirror=<fetch|push>] <nom> <url>"
-#: builtin/remote.c:19 builtin/remote.c:39
-msgid "git remote rename <old> <new>"
-msgstr "git remote rename <antic> <nou>"
+#: builtin/remote.c:20 builtin/remote.c:40
+msgid "git remote rename [--[no-]progress] <old> <new>"
+msgstr "git remote rename [--[no-]progress] <old> <new>"
-#: builtin/remote.c:20 builtin/remote.c:44
+#: builtin/remote.c:21 builtin/remote.c:45
msgid "git remote remove <name>"
msgstr "git remote remove <nom>"
-#: builtin/remote.c:21 builtin/remote.c:49
+#: builtin/remote.c:22 builtin/remote.c:50
msgid "git remote set-head <name> (-a | --auto | -d | --delete | <branch>)"
msgstr "git remote set-head <nom> (-a | --auto | -d | --delete | <branca>)"
-#: builtin/remote.c:22
+#: builtin/remote.c:23
msgid "git remote [-v | --verbose] show [-n] <name>"
msgstr "git remote [-v | --verbose] show [-n] <nom>"
-#: builtin/remote.c:23
+#: builtin/remote.c:24
msgid "git remote prune [-n | --dry-run] <name>"
msgstr "git remote prune [-n | --dry-run] <nom>"
-#: builtin/remote.c:24
+#: builtin/remote.c:25
msgid ""
"git remote [-v | --verbose] update [-p | --prune] [(<group> | <remote>)...]"
msgstr ""
"git remote [-v | --verbose] update [-p | --prune] [(<grup> | <remot>)...]"
-#: builtin/remote.c:25
+#: builtin/remote.c:26
msgid "git remote set-branches [--add] <name> <branch>..."
msgstr "git remote set-branches [--add] <nom> <branca>..."
-#: builtin/remote.c:26 builtin/remote.c:75
+#: builtin/remote.c:27 builtin/remote.c:76
msgid "git remote get-url [--push] [--all] <name>"
msgstr "git remote get-url [--push] [--all] <nom>"
-#: builtin/remote.c:27 builtin/remote.c:80
+#: builtin/remote.c:28 builtin/remote.c:81
msgid "git remote set-url [--push] <name> <newurl> [<oldurl>]"
msgstr "git remote set-url [--push] <nom> <url-nou> [<url-antic>]"
-#: builtin/remote.c:28 builtin/remote.c:81
+#: builtin/remote.c:29 builtin/remote.c:82
msgid "git remote set-url --add <name> <newurl>"
msgstr "git remote set-url --add <nom> <url-nou>"
-#: builtin/remote.c:29 builtin/remote.c:82
+#: builtin/remote.c:30 builtin/remote.c:83
msgid "git remote set-url --delete <name> <url>"
msgstr "git remote set-url --delete <nom> <url>"
-#: builtin/remote.c:34
+#: builtin/remote.c:35
msgid "git remote add [<options>] <name> <url>"
msgstr "git remote add [<opcions>] <nom> <url>"
-#: builtin/remote.c:54
+#: builtin/remote.c:55
msgid "git remote set-branches <name> <branch>..."
msgstr "git remote set-branches <nom> <branca>..."
-#: builtin/remote.c:55
+#: builtin/remote.c:56
msgid "git remote set-branches --add <name> <branch>..."
msgstr "git remote set-branches --add <nom> <branca>..."
-#: builtin/remote.c:60
+#: builtin/remote.c:61
msgid "git remote show [<options>] <name>"
msgstr "git remote show [<opcions>] <nom>"
-#: builtin/remote.c:65
+#: builtin/remote.c:66
msgid "git remote prune [<options>] <name>"
msgstr "git remote prune [<opcions>] <nom>"
-#: builtin/remote.c:70
+#: builtin/remote.c:71
msgid "git remote update [<options>] [<group> | <remote>]..."
msgstr "git remote update [<opcions>] [<grup> | <remot>]..."
-#: builtin/remote.c:99
+#: builtin/remote.c:100
#, c-format
msgid "Updating %s"
msgstr "S'està actualitzant %s"
-#: builtin/remote.c:101
+#: builtin/remote.c:102
#, c-format
msgid "Could not fetch %s"
msgstr "No s'ha pogut obtenir %s"
-#: builtin/remote.c:131
+#: builtin/remote.c:132
msgid ""
"--mirror is dangerous and deprecated; please\n"
"\t use --mirror=fetch or --mirror=push instead"
@@ -20898,79 +21420,79 @@ msgstr ""
"\t useu --mirror=fetch o\n"
"\t --mirror=push en lloc d'això"
-#: builtin/remote.c:148
+#: builtin/remote.c:149
#, c-format
msgid "unknown mirror argument: %s"
msgstr "argument de «mirror» desconegut: %s"
-#: builtin/remote.c:164
+#: builtin/remote.c:165
msgid "fetch the remote branches"
msgstr "obtén les branques remotes"
-#: builtin/remote.c:166
+#: builtin/remote.c:167
msgid "import all tags and associated objects when fetching"
msgstr "en obtenir, importa totes les etiquetes i tots els objectes"
-#: builtin/remote.c:169
+#: builtin/remote.c:170
msgid "or do not fetch any tag at all (--no-tags)"
msgstr "o no obtinguis cap etiqueta (--no-tags)"
-#: builtin/remote.c:171
+#: builtin/remote.c:172
msgid "branch(es) to track"
msgstr "branques a seguir"
-#: builtin/remote.c:172
+#: builtin/remote.c:173
msgid "master branch"
msgstr "branca mestra"
-#: builtin/remote.c:174
+#: builtin/remote.c:175
msgid "set up remote as a mirror to push to or fetch from"
msgstr "estableix el remot com a mirall al qual pujar o del qual obtenir"
-#: builtin/remote.c:186
+#: builtin/remote.c:187
msgid "specifying a master branch makes no sense with --mirror"
msgstr "especificar una branca mestra no té sentit amb --mirror"
-#: builtin/remote.c:188
+#: builtin/remote.c:189
msgid "specifying branches to track makes sense only with fetch mirrors"
msgstr ""
"especificar les branques a seguir té sentit només amb miralls d'obtenció"
-#: builtin/remote.c:195 builtin/remote.c:705
+#: builtin/remote.c:196 builtin/remote.c:716
#, c-format
msgid "remote %s already exists."
msgstr "el remot %s ja existeix."
-#: builtin/remote.c:240
+#: builtin/remote.c:241
#, c-format
msgid "Could not setup master '%s'"
msgstr "No s'ha pogut configurar la mestra «%s»"
-#: builtin/remote.c:322
+#: builtin/remote.c:323
#, c-format
msgid "unhandled branch.%s.rebase=%s; assuming 'true'"
msgstr "no s'ha gestionat branch.%s.rebase=%s; assumint «true»"
-#: builtin/remote.c:366
+#: builtin/remote.c:367
#, c-format
msgid "Could not get fetch map for refspec %s"
msgstr ""
"No s'ha pogut obtenir el mapa d'obtenció de l'especificació de referència %s"
-#: builtin/remote.c:460 builtin/remote.c:468
+#: builtin/remote.c:461 builtin/remote.c:469
msgid "(matching)"
msgstr "(coincident)"
-#: builtin/remote.c:472
+#: builtin/remote.c:473
msgid "(delete)"
msgstr "(suprimir)"
-#: builtin/remote.c:660
+#: builtin/remote.c:664
#, c-format
msgid "could not set '%s'"
msgstr "no s'ha pogut establir «%s»"
-#: builtin/remote.c:665
+#: builtin/remote.c:669
#, c-format
msgid ""
"The %s configuration remote.pushDefault in:\n"
@@ -20981,17 +21503,17 @@ msgstr ""
"\t%s:%d\n"
"ara anomena un remot no existent «%s»"
-#: builtin/remote.c:696 builtin/remote.c:841 builtin/remote.c:948
+#: builtin/remote.c:707 builtin/remote.c:866 builtin/remote.c:973
#, c-format
msgid "No such remote: '%s'"
msgstr "No existeix el remot «%s»"
-#: builtin/remote.c:715
+#: builtin/remote.c:726
#, c-format
msgid "Could not rename config section '%s' to '%s'"
msgstr "No s'ha pogut canviar el nom de la secció de configuració «%s» a «%s»"
-#: builtin/remote.c:735
+#: builtin/remote.c:746
#, c-format
msgid ""
"Not updating non-default fetch refspec\n"
@@ -21002,17 +21524,22 @@ msgstr ""
"\t%s\n"
"\tActualitzeu la configuració manualment si és necessari."
-#: builtin/remote.c:775
+#: builtin/remote.c:783
+#, fuzzy
+msgid "Renaming remote references"
+msgstr "Canviant el nom de les referències remotes"
+
+#: builtin/remote.c:794
#, c-format
msgid "deleting '%s' failed"
msgstr "la supressió de «%s» ha fallat"
-#: builtin/remote.c:809
+#: builtin/remote.c:832
#, c-format
msgid "creating '%s' failed"
msgstr "la creació de «%s» ha fallat"
-#: builtin/remote.c:887
+#: builtin/remote.c:912
msgid ""
"Note: A branch outside the refs/remotes/ hierarchy was not removed;\n"
"to delete it, use:"
@@ -21026,306 +21553,306 @@ msgstr[1] ""
"Nota: Algunes branques fora de la jerarquia refs/remotes/ no s'han eliminat;\n"
"per a suprimir-les, useu:"
-#: builtin/remote.c:901
+#: builtin/remote.c:926
#, c-format
msgid "Could not remove config section '%s'"
msgstr "No s'ha pogut eliminar la secció de configuració «%s»"
-#: builtin/remote.c:1009
+#: builtin/remote.c:1034
#, c-format
msgid " new (next fetch will store in remotes/%s)"
msgstr " nou (la pròxima obtenció emmagatzemarà a remotes/%s)"
-#: builtin/remote.c:1012
+#: builtin/remote.c:1037
msgid " tracked"
msgstr " seguit"
-#: builtin/remote.c:1014
+#: builtin/remote.c:1039
msgid " stale (use 'git remote prune' to remove)"
msgstr " estancat (useu «git remote prune» per a eliminar)"
-#: builtin/remote.c:1016
+#: builtin/remote.c:1041
msgid " ???"
msgstr " ???"
-#: builtin/remote.c:1057
+#: builtin/remote.c:1082
#, c-format
msgid "invalid branch.%s.merge; cannot rebase onto > 1 branch"
msgstr "branch.%s.merge no vàlid; no es pot fer «rebase» sobre > 1 branca"
-#: builtin/remote.c:1066
+#: builtin/remote.c:1091
#, c-format
msgid "rebases interactively onto remote %s"
msgstr "es fa «rebase» interactivament sobre el remot %s"
-#: builtin/remote.c:1068
+#: builtin/remote.c:1093
#, c-format
msgid "rebases interactively (with merges) onto remote %s"
msgstr "es fa «rebase» interactivament (amb fusions) sobre el remot %s"
-#: builtin/remote.c:1071
+#: builtin/remote.c:1096
#, c-format
msgid "rebases onto remote %s"
msgstr "es fa «rebase» sobre el remot %s"
-#: builtin/remote.c:1075
+#: builtin/remote.c:1100
#, c-format
msgid " merges with remote %s"
msgstr " es fusiona amb el remot %s"
-#: builtin/remote.c:1078
+#: builtin/remote.c:1103
#, c-format
msgid "merges with remote %s"
msgstr "es fusiona amb el remot %s"
-#: builtin/remote.c:1081
+#: builtin/remote.c:1106
#, c-format
msgid "%-*s and with remote %s\n"
msgstr "%-*s i amb el remot %s\n"
-#: builtin/remote.c:1124
+#: builtin/remote.c:1149
msgid "create"
msgstr "crea"
-#: builtin/remote.c:1127
+#: builtin/remote.c:1152
msgid "delete"
msgstr "suprimeix"
-#: builtin/remote.c:1131
+#: builtin/remote.c:1156
msgid "up to date"
msgstr "al dia"
-#: builtin/remote.c:1134
+#: builtin/remote.c:1159
msgid "fast-forwardable"
msgstr "avanç ràpid possible"
-#: builtin/remote.c:1137
+#: builtin/remote.c:1162
msgid "local out of date"
msgstr "local no actualitzat"
-#: builtin/remote.c:1144
+#: builtin/remote.c:1169
#, c-format
msgid " %-*s forces to %-*s (%s)"
msgstr " %-*s força a %-*s (%s)"
-#: builtin/remote.c:1147
+#: builtin/remote.c:1172
#, c-format
msgid " %-*s pushes to %-*s (%s)"
msgstr " %-*s puja a %-*s (%s)"
-#: builtin/remote.c:1151
+#: builtin/remote.c:1176
#, c-format
msgid " %-*s forces to %s"
msgstr " %-*s força a %s"
-#: builtin/remote.c:1154
+#: builtin/remote.c:1179
#, c-format
msgid " %-*s pushes to %s"
msgstr " %-*s puja a %s"
-#: builtin/remote.c:1222
+#: builtin/remote.c:1247
msgid "do not query remotes"
msgstr "no consultis els remots"
-#: builtin/remote.c:1243
+#: builtin/remote.c:1268
#, c-format
msgid "* remote %s"
msgstr "* remot %s"
-#: builtin/remote.c:1244
+#: builtin/remote.c:1269
#, c-format
msgid " Fetch URL: %s"
msgstr " URL d'obtenció: %s"
-#: builtin/remote.c:1245 builtin/remote.c:1261 builtin/remote.c:1398
+#: builtin/remote.c:1270 builtin/remote.c:1286 builtin/remote.c:1423
msgid "(no URL)"
msgstr "(sense URL)"
#. TRANSLATORS: the colon ':' should align
#. with the one in " Fetch URL: %s"
#. translation.
-#: builtin/remote.c:1259 builtin/remote.c:1261
+#: builtin/remote.c:1284 builtin/remote.c:1286
#, c-format
msgid " Push URL: %s"
msgstr " URL de pujada: %s"
-#: builtin/remote.c:1263 builtin/remote.c:1265 builtin/remote.c:1267
+#: builtin/remote.c:1288 builtin/remote.c:1290 builtin/remote.c:1292
#, c-format
msgid " HEAD branch: %s"
msgstr " Branca de HEAD: %s"
-#: builtin/remote.c:1263
+#: builtin/remote.c:1288
msgid "(not queried)"
msgstr "(no consultat)"
-#: builtin/remote.c:1265
+#: builtin/remote.c:1290
msgid "(unknown)"
msgstr "(desconegut)"
-#: builtin/remote.c:1269
+#: builtin/remote.c:1294
#, c-format
msgid " HEAD branch (remote HEAD is ambiguous, may be one of the following):\n"
msgstr ""
" Branca de HEAD (la HEAD remot és ambigua, pot ser un dels següents):\n"
-#: builtin/remote.c:1281
+#: builtin/remote.c:1306
#, c-format
msgid " Remote branch:%s"
msgid_plural " Remote branches:%s"
msgstr[0] " Branca remota:%s"
msgstr[1] " Branques remotes:%s"
-#: builtin/remote.c:1284 builtin/remote.c:1310
+#: builtin/remote.c:1309 builtin/remote.c:1335
msgid " (status not queried)"
msgstr " (estat no consultat)"
-#: builtin/remote.c:1293
+#: builtin/remote.c:1318
msgid " Local branch configured for 'git pull':"
msgid_plural " Local branches configured for 'git pull':"
msgstr[0] " Branca local configurada per a «git pull»:"
msgstr[1] " Branques locals configurades per a «git pull»:"
-#: builtin/remote.c:1301
+#: builtin/remote.c:1326
msgid " Local refs will be mirrored by 'git push'"
msgstr " «git push» reflectirà les referències locals"
-#: builtin/remote.c:1307
+#: builtin/remote.c:1332
#, c-format
msgid " Local ref configured for 'git push'%s:"
msgid_plural " Local refs configured for 'git push'%s:"
msgstr[0] " Referència local configurada per a «git push»%s:"
msgstr[1] " Referències locals configurades per a «git push»%s:"
-#: builtin/remote.c:1328
+#: builtin/remote.c:1353
msgid "set refs/remotes/<name>/HEAD according to remote"
msgstr "estableix refs/remotes/<nom>/HEAD segons el remot"
-#: builtin/remote.c:1330
+#: builtin/remote.c:1355
msgid "delete refs/remotes/<name>/HEAD"
msgstr "suprimeix refs/remotes/<nom>/HEAD"
-#: builtin/remote.c:1344
+#: builtin/remote.c:1369
msgid "Cannot determine remote HEAD"
msgstr "No es pot determinar la HEAD remota"
-#: builtin/remote.c:1346
+#: builtin/remote.c:1371
msgid "Multiple remote HEAD branches. Please choose one explicitly with:"
msgstr "Múltiples branques de HEAD remotes. Trieu-ne una explícitament amb:"
-#: builtin/remote.c:1356
+#: builtin/remote.c:1381
#, c-format
msgid "Could not delete %s"
msgstr "No s'ha pogut suprimir %s"
-#: builtin/remote.c:1364
+#: builtin/remote.c:1389
#, c-format
msgid "Not a valid ref: %s"
msgstr "No és una referència vàlida: %s"
-#: builtin/remote.c:1366
+#: builtin/remote.c:1391
#, c-format
msgid "Could not setup %s"
msgstr "No s'ha pogut configurar %s"
-#: builtin/remote.c:1384
+#: builtin/remote.c:1409
#, c-format
msgid " %s will become dangling!"
msgstr " %s es tornarà penjant!"
-#: builtin/remote.c:1385
+#: builtin/remote.c:1410
#, c-format
msgid " %s has become dangling!"
msgstr " %s s'ha tornat penjant!"
-#: builtin/remote.c:1394
+#: builtin/remote.c:1419
#, c-format
msgid "Pruning %s"
msgstr "S'està podant %s"
-#: builtin/remote.c:1395
+#: builtin/remote.c:1420
#, c-format
msgid "URL: %s"
msgstr "URL: %s"
-#: builtin/remote.c:1411
+#: builtin/remote.c:1436
#, c-format
msgid " * [would prune] %s"
msgstr " * [podaria] %s"
-#: builtin/remote.c:1414
+#: builtin/remote.c:1439
#, c-format
msgid " * [pruned] %s"
msgstr " * [podat] %s"
-#: builtin/remote.c:1459
+#: builtin/remote.c:1484
msgid "prune remotes after fetching"
msgstr "poda els remots després d'obtenir-los"
-#: builtin/remote.c:1523 builtin/remote.c:1579 builtin/remote.c:1649
+#: builtin/remote.c:1548 builtin/remote.c:1604 builtin/remote.c:1674
#, c-format
msgid "No such remote '%s'"
msgstr "No hi ha tal remot «%s»"
-#: builtin/remote.c:1541
+#: builtin/remote.c:1566
msgid "add branch"
msgstr "afegeix branca"
-#: builtin/remote.c:1548
+#: builtin/remote.c:1573
msgid "no remote specified"
msgstr "cap remot especificat"
-#: builtin/remote.c:1565
+#: builtin/remote.c:1590
msgid "query push URLs rather than fetch URLs"
msgstr "consulta els URL de pujada en lloc dels URL d'obtenció"
-#: builtin/remote.c:1567
+#: builtin/remote.c:1592
msgid "return all URLs"
msgstr "retorna tots els URL"
-#: builtin/remote.c:1597
+#: builtin/remote.c:1622
#, c-format
msgid "no URLs configured for remote '%s'"
msgstr "cap URL configurat per al remot «%s»"
-#: builtin/remote.c:1623
+#: builtin/remote.c:1648
msgid "manipulate push URLs"
msgstr "manipula els URL de pujada"
-#: builtin/remote.c:1625
+#: builtin/remote.c:1650
msgid "add URL"
msgstr "afegeix URL"
-#: builtin/remote.c:1627
+#: builtin/remote.c:1652
msgid "delete URLs"
msgstr "suprimeix els URL"
-#: builtin/remote.c:1634
+#: builtin/remote.c:1659
msgid "--add --delete doesn't make sense"
msgstr "--add --delete no té sentit"
-#: builtin/remote.c:1675
+#: builtin/remote.c:1700
#, c-format
msgid "Invalid old URL pattern: %s"
msgstr "Patró d'URL antic no vàlid: %s"
-#: builtin/remote.c:1683
+#: builtin/remote.c:1708
#, c-format
msgid "No such URL found: %s"
msgstr "No s'ha trobat tal URL: %s"
-#: builtin/remote.c:1685
+#: builtin/remote.c:1710
msgid "Will not delete all non-push URLs"
msgstr "No se suprimiran tots els URL no de pujada"
-#: builtin/remote.c:1702
+#: builtin/remote.c:1727
msgid "be verbose; must be placed before a subcommand"
msgstr "sigues detallat; s'ha de col·locar abans d'una subordre"
-#: builtin/repack.c:28
+#: builtin/repack.c:29
msgid "git repack [<options>]"
msgstr "git repack [<opcions>]"
-#: builtin/repack.c:33
+#: builtin/repack.c:34
msgid ""
"Incremental repacks are incompatible with bitmap indexes. Use\n"
"--no-write-bitmap-index or disable the pack.writebitmaps configuration."
@@ -21333,152 +21860,154 @@ msgstr ""
"Els reempaquetaments incrementals són incompatibles amb els índexs de mapes de bits. Useu\n"
"--no-write-bitmap-index o inhabiliteu el paràmetre de configuració pack.writebitmaps."
-#: builtin/repack.c:201
+#: builtin/repack.c:206
msgid "could not start pack-objects to repack promisor objects"
msgstr ""
"no s'ha pogut iniciar pack-objects per a tornar a empaquetar els objectes "
"«promisor»"
-#: builtin/repack.c:275 builtin/repack.c:820
+#: builtin/repack.c:280 builtin/repack.c:824
msgid "repack: Expecting full hex object ID lines only from pack-objects."
msgstr ""
-"repack: s'esperen només línies amb l'id d'objecte hexadecimal complet "
-"des de pack-objects."
+"repack: s'esperen només línies amb l'id d'objecte hexadecimal complet des de"
+" pack-objects."
-#: builtin/repack.c:299
+#: builtin/repack.c:304
msgid "could not finish pack-objects to repack promisor objects"
msgstr ""
-"no s'ha pogut finalitzar pack-objects per a tornar a empaquetar els objectes "
-"«promisor»"
+"no s'ha pogut finalitzar pack-objects per a tornar a empaquetar els objectes"
+" «promisor»"
-#: builtin/repack.c:314
+#: builtin/repack.c:319
#, c-format
msgid "cannot open index for %s"
msgstr "no s'ha pogut obrir l'índex per a %s"
-#: builtin/repack.c:373
+#: builtin/repack.c:378
#, c-format
msgid "pack %s too large to consider in geometric progression"
-msgstr "el paquet %s és massa gran per a considerar-ho en progressió geomètrica"
+msgstr ""
+"el paquet %s és massa gran per a considerar-ho en progressió geomètrica"
-#: builtin/repack.c:406 builtin/repack.c:413 builtin/repack.c:418
+#: builtin/repack.c:411 builtin/repack.c:418 builtin/repack.c:423
#, c-format
msgid "pack %s too large to roll up"
msgstr "el paquet %s és massa gran per a enrotllar-lo"
-#: builtin/repack.c:498
+#: builtin/repack.c:503
#, c-format
msgid "could not open tempfile %s for writing"
msgstr "no s'ha pogut obrir el fitxer temporal «%s» per a escriptura"
-#: builtin/repack.c:516
+#: builtin/repack.c:521
msgid "could not close refs snapshot tempfile"
-msgstr "no s'ha pogut tancar el fitxer temporal amb la instantània de referències"
+msgstr ""
+"no s'ha pogut tancar el fitxer temporal amb la instantània de referències"
-#: builtin/repack.c:630
+#: builtin/repack.c:634
msgid "pack everything in a single pack"
msgstr "empaqueta-ho tot en un únic paquet"
-#: builtin/repack.c:632
+#: builtin/repack.c:636
msgid "same as -a, and turn unreachable objects loose"
msgstr "el mateix que -a, i solta els objectes inabastables"
-#: builtin/repack.c:635
+#: builtin/repack.c:639
msgid "remove redundant packs, and run git-prune-packed"
msgstr "elimina els paquets redundants, i executeu git-prune-packed"
-#: builtin/repack.c:637
+#: builtin/repack.c:641
msgid "pass --no-reuse-delta to git-pack-objects"
msgstr "passa --no-reuse-delta a git-pack-objects"
-#: builtin/repack.c:639
+#: builtin/repack.c:643
msgid "pass --no-reuse-object to git-pack-objects"
msgstr "passa --no-reuse-object a git-pack-objects"
-#: builtin/repack.c:641
+#: builtin/repack.c:645
msgid "do not run git-update-server-info"
msgstr "no executis git-update-server-info"
-#: builtin/repack.c:644
+#: builtin/repack.c:648
msgid "pass --local to git-pack-objects"
msgstr "passa --local a git-pack-objects"
-#: builtin/repack.c:646
+#: builtin/repack.c:650
msgid "write bitmap index"
msgstr "escriu índex de mapa de bits"
-#: builtin/repack.c:648
+#: builtin/repack.c:652
msgid "pass --delta-islands to git-pack-objects"
msgstr "passa --delta-islands a git-pack-objects"
-#: builtin/repack.c:649
+#: builtin/repack.c:653
msgid "approxidate"
msgstr "data aproximada"
-#: builtin/repack.c:650
+#: builtin/repack.c:654
msgid "with -A, do not loosen objects older than this"
msgstr "amb -A, no soltis els objectes més antics que aquest"
-#: builtin/repack.c:652
+#: builtin/repack.c:656
msgid "with -a, repack unreachable objects"
msgstr "amb -a, reempaqueta els objectes inabastables"
-#: builtin/repack.c:654
+#: builtin/repack.c:658
msgid "size of the window used for delta compression"
msgstr "mida de la finestra que s'usa per a compressió de diferències"
-#: builtin/repack.c:655 builtin/repack.c:661
+#: builtin/repack.c:659 builtin/repack.c:665
msgid "bytes"
msgstr "octets"
-#: builtin/repack.c:656
+#: builtin/repack.c:660
msgid "same as the above, but limit memory size instead of entries count"
msgstr ""
"el mateix que l'anterior, però limita la mida de memòria en lloc del nombre "
"d'entrades"
-#: builtin/repack.c:658
+#: builtin/repack.c:662
msgid "limits the maximum delta depth"
msgstr "limita la profunditat màxima de les diferències"
-#: builtin/repack.c:660
+#: builtin/repack.c:664
msgid "limits the maximum number of threads"
msgstr "limita el nombre màxim de fils"
-#: builtin/repack.c:662
+#: builtin/repack.c:666
msgid "maximum size of each packfile"
msgstr "mida màxima de cada fitxer de paquet"
-#: builtin/repack.c:664
+#: builtin/repack.c:668
msgid "repack objects in packs marked with .keep"
msgstr "reempaqueta els objectes en paquets marcats amb .keep"
-#: builtin/repack.c:666
+#: builtin/repack.c:670
msgid "do not repack this pack"
msgstr "no reempaquetis aquest paquet"
-#: builtin/repack.c:668
+#: builtin/repack.c:672
msgid "find a geometric progression with factor <N>"
msgstr "troba una progressió geomètrica amb el factor <N>"
-#: builtin/repack.c:670
+#: builtin/repack.c:674
msgid "write a multi-pack index of the resulting packs"
msgstr "escriu un índex multipaquet dels paquets resultants"
-#: builtin/repack.c:680
+#: builtin/repack.c:684
msgid "cannot delete packs in a precious-objects repo"
msgstr "no es poden suprimir paquets en un repositori d'objectes preciosos"
-#: builtin/repack.c:829
+#: builtin/repack.c:833
msgid "Nothing new to pack."
msgstr "Res nou a empaquetar."
-#: builtin/repack.c:859
+#: builtin/repack.c:863
#, c-format
msgid "missing required file: %s"
msgstr "falta el fitxer requerit: %s"
-#: builtin/repack.c:861
+#: builtin/repack.c:865
#, c-format
msgid "could not unlink: %s"
msgstr "no s'ha pogut desenllaçar: «%s»"
@@ -21495,10 +22024,6 @@ msgstr "git replace [-f] --edit <objecte>"
msgid "git replace [-f] --graft <commit> [<parent>...]"
msgstr "git replace [-f] --graft <comissió> [<parent>...]"
-#: builtin/replace.c:25
-msgid "git replace [-f] --convert-graft-file"
-msgstr "git replace [-f] --convert-graft-file"
-
#: builtin/replace.c:26
msgid "git replace -d <object>..."
msgstr "git replace -d <objecte>..."
@@ -21653,7 +22178,8 @@ msgstr "la comissió nova és la mateixa que l'antiga: «%s»"
msgid ""
"could not convert the following graft(s):\n"
"%s"
-msgstr "no s'han pogut convertir els següents «grafts»:\n"
+msgstr ""
+"no s'han pogut convertir els següents «grafts»:\n"
"%s"
#: builtin/replace.c:547
@@ -21800,97 +22326,93 @@ msgstr "S'ha produït un error en cercar l'arbre de %s."
msgid "HEAD is now at %s"
msgstr "HEAD ara és a %s"
-#: builtin/reset.c:299
+#: builtin/reset.c:304
#, c-format
msgid "Cannot do a %s reset in the middle of a merge."
msgstr "No es pot fer un restabliment de %s enmig d'una fusió."
-#: builtin/reset.c:396 builtin/stash.c:606 builtin/stash.c:680
-#: builtin/stash.c:704
+#: builtin/reset.c:402 builtin/stash.c:606 builtin/stash.c:669
+#: builtin/stash.c:693
msgid "be quiet, only report errors"
msgstr "sigues silenciós, només informa d'errors"
-#: builtin/reset.c:398
+#: builtin/reset.c:404
+msgid "skip refreshing the index after reset"
+msgstr "omet l'actualització de l'índex després de reiniciar"
+
+#: builtin/reset.c:406
msgid "reset HEAD and index"
msgstr "restableix HEAD i l'índex"
-#: builtin/reset.c:399
+#: builtin/reset.c:407
msgid "reset only HEAD"
msgstr "restableix només HEAD"
-#: builtin/reset.c:401 builtin/reset.c:403
+#: builtin/reset.c:409 builtin/reset.c:411
msgid "reset HEAD, index and working tree"
msgstr "restableix HEAD, l'índex i l'arbre de treball"
-#: builtin/reset.c:405
+#: builtin/reset.c:413
msgid "reset HEAD but keep local changes"
msgstr "restableix HEAD però retén els canvis locals"
-#: builtin/reset.c:411
+#: builtin/reset.c:419
msgid "record only the fact that removed paths will be added later"
msgstr "registra només el fet que els camins eliminats s'afegiran després"
-#: builtin/reset.c:445
+#: builtin/reset.c:452
#, c-format
msgid "Failed to resolve '%s' as a valid revision."
msgstr "S'ha produït un error en resoldre «%s» com a revisió vàlida."
-#: builtin/reset.c:453
+#: builtin/reset.c:460
#, c-format
msgid "Failed to resolve '%s' as a valid tree."
msgstr "S'ha produït un error en resoldre «%s» com a arbre vàlid."
-#: builtin/reset.c:472
+#: builtin/reset.c:479
msgid "--mixed with paths is deprecated; use 'git reset -- <paths>' instead."
msgstr ""
"--mixed amb camins està en desús; useu «git reset -- <camins>» en lloc "
"d'això."
-#: builtin/reset.c:474
+#: builtin/reset.c:481
#, c-format
msgid "Cannot do %s reset with paths."
msgstr "No es pot restablir de %s amb camins."
-#: builtin/reset.c:489
+#: builtin/reset.c:496
#, c-format
msgid "%s reset is not allowed in a bare repository"
msgstr "el restabliment de %s no es permet en un repositori nu"
-#: builtin/reset.c:520
+#: builtin/reset.c:527
msgid "Unstaged changes after reset:"
msgstr "Canvis «unstaged» després del restabliment:"
-#: builtin/reset.c:523
-#, c-format
+#: builtin/reset.c:530
+#, c-format, fuzzy
msgid ""
-"\n"
-"It took %.2f seconds to enumerate unstaged changes after reset. You can\n"
-"use '--quiet' to avoid this. Set the config setting reset.quiet to true\n"
-"to make this the default.\n"
+"It took %.2f seconds to refresh the index after reset. You can use\n"
+"'--no-refresh' to avoid this."
msgstr ""
-"\n"
-"S'ha trigat %.2f segons a enumerar els canvis «unstaged» després del reinici.\n"
-"Podeu utilitzar «--quiet» per a evitar-ho. Establiu el paràmetre de configuració\n"
-"reset.quiet a true per a fer que aquesta configuració sigui predeterminada.\n"
+"Es van trigar un temps de,2f segons a actualitzar l'índex després de reiniciar. Pots utilitzar\n"
+".--no-refresh' per evitar això."
-#: builtin/reset.c:541
+#: builtin/reset.c:547
#, c-format
msgid "Could not reset index file to revision '%s'."
msgstr "No s'ha pogut restablir el fitxer d'índex a la revisió «%s»."
-#: builtin/reset.c:546
+#: builtin/reset.c:552
msgid "Could not write new index file."
msgstr "No s'ha pogut escriure el fitxer d'índex nou."
-#: builtin/rev-list.c:602
-msgid "object filtering requires --objects"
-msgstr "el filtratge d'objectes requereix --objects"
-
-#: builtin/rev-list.c:674
+#: builtin/rev-list.c:659
msgid "rev-list does not support display of notes"
msgstr "el rev-list no permet mostrar notes"
-#: builtin/rev-list.c:679
+#: builtin/rev-list.c:664
#, c-format
msgid "marked counting and '%s' cannot be used together"
msgstr "«marked counting» i «%s» no es poden usar junts"
@@ -22217,7 +22739,8 @@ msgstr "ordena la sortida segons el nombre de comissions per autor"
#: builtin/shortlog.c:356
msgid "suppress commit descriptions, only provides commit count"
msgstr ""
-"omet les descripcions de les comissions, només proveeix el recompte de comissions"
+"omet les descripcions de les comissions, només proveeix el recompte de "
+"comissions"
#: builtin/shortlog.c:358
msgid "show the email address of each author"
@@ -22239,11 +22762,11 @@ msgstr "camp"
msgid "group by field"
msgstr "agrupa per camp"
-#: builtin/shortlog.c:394
+#: builtin/shortlog.c:395
msgid "too many arguments given outside repository"
msgstr "hi ha massa arguments donats fora del repositori"
-#: builtin/show-branch.c:13
+#: builtin/show-branch.c:14
msgid ""
"git show-branch [-a | --all] [-r | --remotes] [--topo-order | --date-order]\n"
" [--current] [--color[=<when>] | --no-color] [--sparse]\n"
@@ -22255,120 +22778,120 @@ msgstr ""
" [--more=<n> | --list | --independent | --merge-base]\n"
" [--no-name | --sha1-name] [--topics] [(<rev> | <glob>)...]"
-#: builtin/show-branch.c:17
+#: builtin/show-branch.c:18
msgid "git show-branch (-g | --reflog)[=<n>[,<base>]] [--list] [<ref>]"
msgstr ""
"git show-branch (-g | --reflog)[=<n>[,<base>]] [--list] [<referència>]"
-#: builtin/show-branch.c:395
+#: builtin/show-branch.c:396
#, c-format
msgid "ignoring %s; cannot handle more than %d ref"
msgid_plural "ignoring %s; cannot handle more than %d refs"
msgstr[0] "s'està ignorant %s; no es pot gestionar més de %d referència"
msgstr[1] "s'està ignorant %s; no es poden gestionar més de %d referències"
-#: builtin/show-branch.c:547
+#: builtin/show-branch.c:548
#, c-format
msgid "no matching refs with %s"
msgstr "no hi ha referències coincidents amb %s"
-#: builtin/show-branch.c:644
+#: builtin/show-branch.c:645
msgid "show remote-tracking and local branches"
msgstr "mostra les branques amb seguiment remot i les locals"
-#: builtin/show-branch.c:646
+#: builtin/show-branch.c:647
msgid "show remote-tracking branches"
msgstr "mostra les branques amb seguiment remot"
-#: builtin/show-branch.c:648
+#: builtin/show-branch.c:649
msgid "color '*!+-' corresponding to the branch"
msgstr "colora «*!+-» corresponent a la branca"
-#: builtin/show-branch.c:650
+#: builtin/show-branch.c:651
msgid "show <n> more commits after the common ancestor"
msgstr "mostra <n> comissions després de l'avantpassat comú"
-#: builtin/show-branch.c:652
+#: builtin/show-branch.c:653
msgid "synonym to more=-1"
msgstr "sinònim de more=-1"
-#: builtin/show-branch.c:653
+#: builtin/show-branch.c:654
msgid "suppress naming strings"
msgstr "omet anomenar cadenes"
-#: builtin/show-branch.c:655
+#: builtin/show-branch.c:656
msgid "include the current branch"
msgstr "inclou la branca actual"
-#: builtin/show-branch.c:657
+#: builtin/show-branch.c:658
msgid "name commits with their object names"
msgstr "anomena les comissions amb els seus noms d'objecte"
-#: builtin/show-branch.c:659
+#: builtin/show-branch.c:660
msgid "show possible merge bases"
msgstr "mostra les bases de fusió possibles"
-#: builtin/show-branch.c:661
+#: builtin/show-branch.c:662
msgid "show refs unreachable from any other ref"
msgstr "mostra les referències inabastables de qualsevol altra referència"
-#: builtin/show-branch.c:663
+#: builtin/show-branch.c:664
msgid "show commits in topological order"
msgstr "mostra les comissions en ordre topològic"
-#: builtin/show-branch.c:666
+#: builtin/show-branch.c:667
msgid "show only commits not on the first branch"
msgstr "mostra només les comissions que no siguin en la primera branca"
-#: builtin/show-branch.c:668
+#: builtin/show-branch.c:669
msgid "show merges reachable from only one tip"
msgstr "mostra les fusions abastables de només una punta"
-#: builtin/show-branch.c:670
+#: builtin/show-branch.c:671
msgid "topologically sort, maintaining date order where possible"
msgstr "ordena topològicament, mantenint l'ordre de dates on sigui possible"
-#: builtin/show-branch.c:673
+#: builtin/show-branch.c:674
msgid "<n>[,<base>]"
msgstr "<n>[,<base>]"
-#: builtin/show-branch.c:674
+#: builtin/show-branch.c:675
msgid "show <n> most recent ref-log entries starting at base"
msgstr "mostra les <n> entrades més recents començant a la base"
-#: builtin/show-branch.c:734
+#: builtin/show-branch.c:735
msgid "no branches given, and HEAD is not valid"
msgstr "no s'ha donat cap branca, i HEAD no és vàlid"
-#: builtin/show-branch.c:737
+#: builtin/show-branch.c:738
msgid "--reflog option needs one branch name"
msgstr "l'opció --reflog necessita un nom de branca"
-#: builtin/show-branch.c:740
+#: builtin/show-branch.c:741
#, c-format
msgid "only %d entry can be shown at one time."
msgid_plural "only %d entries can be shown at one time."
msgstr[0] "es pot mostrar només %d entrada a la vegada."
msgstr[1] "es poden mostrar només %d entrades a la vegada."
-#: builtin/show-branch.c:744
+#: builtin/show-branch.c:745
#, c-format
msgid "no such ref %s"
msgstr "no hi ha tal referència %s"
-#: builtin/show-branch.c:830
+#: builtin/show-branch.c:831
#, c-format
msgid "cannot handle more than %d rev."
msgid_plural "cannot handle more than %d revs."
msgstr[0] "no es pot gestionar més d'%d revisió."
msgstr[1] "no es poden gestionar més de %d revisions."
-#: builtin/show-branch.c:834
+#: builtin/show-branch.c:835
#, c-format
msgid "'%s' is not a valid ref."
msgstr "«%s» no és una referència vàlida."
-#: builtin/show-branch.c:837
+#: builtin/show-branch.c:838
#, c-format
msgid "cannot find commit %s (%s)"
msgstr "no es pot trobar la comissió %s (%s)"
@@ -22427,25 +22950,21 @@ msgstr "no imprimeixis els resultats a stdout (útil amb --verify)"
msgid "show refs from stdin that aren't in local repository"
msgstr "mostra les referències de stdin que no siguin en el repositori local"
-#: builtin/sparse-checkout.c:22
+#: builtin/sparse-checkout.c:23
msgid "git sparse-checkout (init|list|set|add|reapply|disable) <options>"
msgstr "git sparse-checkout (init|list|set|add|reapply|disable) <opcions>"
-#: builtin/sparse-checkout.c:46
-msgid "git sparse-checkout list"
-msgstr "git sparse-checkout list"
-
-#: builtin/sparse-checkout.c:60
+#: builtin/sparse-checkout.c:61
msgid "this worktree is not sparse"
msgstr "aquest arbre de treball no és dispers"
-#: builtin/sparse-checkout.c:75
+#: builtin/sparse-checkout.c:76
msgid "this worktree is not sparse (sparse-checkout file may not exist)"
msgstr ""
"aquest arbre de treball no és dispers (pot ser que el fitxer sparse-checkout"
" no existeixi)"
-#: builtin/sparse-checkout.c:176
+#: builtin/sparse-checkout.c:177
#, c-format
msgid ""
"directory '%s' contains untracked files, but is not in the sparse-checkout "
@@ -22454,101 +22973,140 @@ msgstr ""
"el directori «%s» conté fitxers no seguits, però no està en el con de "
"sparse-checkout"
-#: builtin/sparse-checkout.c:184
+#: builtin/sparse-checkout.c:185
#, c-format
msgid "failed to remove directory '%s'"
msgstr "s'ha produït un error en suprimir el directori «%s»"
-#: builtin/sparse-checkout.c:324
+#: builtin/sparse-checkout.c:327
msgid "failed to create directory for sparse-checkout file"
msgstr "no s'ha pogut crear el directori per al fitxer sparse-checkout"
-#: builtin/sparse-checkout.c:365
-msgid "unable to upgrade repository format to enable worktreeConfig"
-msgstr ""
-"no s'ha pogut actualitzar el format del repositori per a habilitar "
-"worktreeConfig"
-
-#: builtin/sparse-checkout.c:367
-msgid "failed to set extensions.worktreeConfig setting"
-msgstr "no s'ha pogut establir el paràmetre extensions.worktreeConfig"
+#: builtin/sparse-checkout.c:366
+#, fuzzy
+msgid "failed to initialize worktree config"
+msgstr "no s'ha pogut inicialitzar l'arbre de treball to"
#: builtin/sparse-checkout.c:411
msgid "failed to modify sparse-index config"
msgstr "no s'ha pogut modificar la configuració de l'índex dispers"
-#: builtin/sparse-checkout.c:422
-msgid "git sparse-checkout init [--cone] [--[no-]sparse-index]"
-msgstr "git sparse-checkout init [--cone] [--[no-]sparse-index]"
-
-#: builtin/sparse-checkout.c:441 builtin/sparse-checkout.c:729
-#: builtin/sparse-checkout.c:778
+#: builtin/sparse-checkout.c:441 builtin/sparse-checkout.c:793
+#: builtin/sparse-checkout.c:847
msgid "initialize the sparse-checkout in cone mode"
msgstr "inicialitza el «sparse-checkout» en mode con"
-#: builtin/sparse-checkout.c:443 builtin/sparse-checkout.c:731
-#: builtin/sparse-checkout.c:780
+#: builtin/sparse-checkout.c:443 builtin/sparse-checkout.c:795
+#: builtin/sparse-checkout.c:849
msgid "toggle the use of a sparse index"
msgstr "commuta l'ús d'un índex dispers"
-#: builtin/sparse-checkout.c:476
+#: builtin/sparse-checkout.c:479
#, c-format
msgid "failed to open '%s'"
msgstr "s'ha produït un error en obrir «%s»"
-#: builtin/sparse-checkout.c:528
+#: builtin/sparse-checkout.c:531
#, c-format
msgid "could not normalize path %s"
msgstr "no s'ha pogut normalitzar el camí %s"
-#: builtin/sparse-checkout.c:557
+#: builtin/sparse-checkout.c:560
#, c-format
msgid "unable to unquote C-style string '%s'"
msgstr "no s'ha pogut treure la cita a la cadena amb estil C «%s»"
-#: builtin/sparse-checkout.c:612 builtin/sparse-checkout.c:640
+#: builtin/sparse-checkout.c:615 builtin/sparse-checkout.c:643
msgid "unable to load existing sparse-checkout patterns"
msgstr "no s'han pogut carregar els patrons de «sparse-checkout» existents"
-#: builtin/sparse-checkout.c:616
+#: builtin/sparse-checkout.c:619
msgid "existing sparse-checkout patterns do not use cone mode"
msgstr "els patrons de «sparse-checkout» existents no usen el mode con"
-#: builtin/sparse-checkout.c:682
-msgid "git sparse-checkout add (--stdin | <patterns>)"
-msgstr "git sparse-checkout add (--stdin | <patrons>)"
+#: builtin/sparse-checkout.c:707
+#, fuzzy
+msgid "please run from the toplevel directory in non-cone mode"
+msgstr ""
+"executeu des del directori de nivell superior en mode que no sigui "
+"compatible"
+
+#: builtin/sparse-checkout.c:712
+#, fuzzy
+msgid "specify directories rather than patterns (no leading slash)"
+msgstr ""
+"especifica els directoris en lloc dels patrons (sense barra inclinada)"
+
+#: builtin/sparse-checkout.c:714
+#, fuzzy
+msgid ""
+"specify directories rather than patterns. If your directory starts with a "
+"'!', pass --skip-checks"
+msgstr ""
+"especifica els directoris en lloc dels patrons. Si el vostre directori "
+"comença amb un '!', passeu --skip-checks"
+
+#: builtin/sparse-checkout.c:716
+#, fuzzy
+msgid ""
+"specify directories rather than patterns. If your directory really has any "
+"of '*?[]\\' in it, pass --skip-checks"
+msgstr ""
+"especifica els directoris en lloc dels patrons. Si el vostre directori "
+"realment té alguna de '*?\\\\', passeu --skip-checks"
+
+#: builtin/sparse-checkout.c:732
+#, c-format, fuzzy
+msgid ""
+"'%s' is not a directory; to treat it as a directory anyway, rerun with "
+"--skip-checks"
+msgstr ""
+"%%s' no és un directori; per tractar-lo com un directori de totes maneres, "
+"torneu a executar amb --skip-checks"
+
+#: builtin/sparse-checkout.c:734
+#, c-format, fuzzy
+msgid ""
+"pass a leading slash before paths such as '%s' if you want a single file "
+"(see NON-CONE PROBLEMS in the git-sparse-checkout manual)."
+msgstr ""
+"passa una barra d'inici abans dels camins com ara «%s» si voleu un sol "
+"fitxer (vegeu els problemes NO CONE al manual de git-sparse-checkout)."
+
+#: builtin/sparse-checkout.c:739
+msgid "git sparse-checkout add [--skip-checks] (--stdin | <patterns>)"
+msgstr "git sparse-checkout add [--skip-checks] (--stdin | <patterns>)"
+
+#: builtin/sparse-checkout.c:752 builtin/sparse-checkout.c:797
+#, fuzzy
+msgid ""
+"skip some sanity checks on the given paths that might give false positives"
+msgstr ""
+"omet alguns controls de sanitat en els camins donats que podrien donar "
+"falsos positius"
-#: builtin/sparse-checkout.c:694 builtin/sparse-checkout.c:733
+#: builtin/sparse-checkout.c:755 builtin/sparse-checkout.c:800
msgid "read patterns from standard in"
msgstr "llegeix els patrons de l'entrada estàndard"
-#: builtin/sparse-checkout.c:699
+#: builtin/sparse-checkout.c:760
msgid "no sparse-checkout to add to"
msgstr "no hi ha un sparse-checkout a afegir"
-#: builtin/sparse-checkout.c:712
+#: builtin/sparse-checkout.c:775
msgid ""
-"git sparse-checkout set [--[no-]cone] [--[no-]sparse-index] (--stdin | "
-"<patterns>)"
+"git sparse-checkout set [--[no-]cone] [--[no-]sparse-index] [--skip-checks] "
+"(--stdin | <patterns>)"
msgstr ""
-"git sparse-checkout set [--[no-]cone] [--[no-]sparse-index] (--stdin | "
-"<patrons>)"
-
-#: builtin/sparse-checkout.c:765
-msgid "git sparse-checkout reapply [--[no-]cone] [--[no-]sparse-index]"
-msgstr "git sparse-checkout reapply [--[no-]cone] [--[no-]sparse-index]"
+"git sparse-checkout set [--[no-]cone] [--[no-]sparse-index] [--skip-checks] "
+"(--stdin | <patterns>)"
-#: builtin/sparse-checkout.c:785
+#: builtin/sparse-checkout.c:854
msgid "must be in a sparse-checkout to reapply sparsity patterns"
msgstr ""
-"ha d'estar en un sparse-checkout per a tornar a aplicar patrons "
-"de dispersió"
+"ha d'estar en un sparse-checkout per a tornar a aplicar patrons de dispersió"
-#: builtin/sparse-checkout.c:803
-msgid "git sparse-checkout disable"
-msgstr "git sparse-checkout disable"
-
-#: builtin/sparse-checkout.c:845
+#: builtin/sparse-checkout.c:914
msgid "error while refreshing working directory"
msgstr "s'ha produït un error en actualitzar el directori de treball"
@@ -22686,167 +23244,151 @@ msgstr "L'índex no estava «unstashed»."
msgid "could not restore untracked files from stash"
msgstr "no s'han pogut restaurar els fitxers no seguits des del «stash»"
-#: builtin/stash.c:608 builtin/stash.c:706
+#: builtin/stash.c:608 builtin/stash.c:695
msgid "attempt to recreate the index"
msgstr "intenta tornar a crear l'índex"
-#: builtin/stash.c:652
+#: builtin/stash.c:641
#, c-format
msgid "Dropped %s (%s)"
msgstr "Descartada %s (%s)"
-#: builtin/stash.c:655
+#: builtin/stash.c:644
#, c-format
msgid "%s: Could not drop stash entry"
msgstr "%s: no s'ha pogut descartar l'entrada «stash»"
-#: builtin/stash.c:668
+#: builtin/stash.c:657
#, c-format
msgid "'%s' is not a stash reference"
msgstr "«%s» no és una referència «stash»"
-#: builtin/stash.c:718
+#: builtin/stash.c:707
msgid "The stash entry is kept in case you need it again."
msgstr "Es conserva l'entrada «stash» en cas que la necessiteu altra vegada."
-#: builtin/stash.c:741
+#: builtin/stash.c:730
msgid "No branch name specified"
msgstr "Cap nom de branca especificat"
-#: builtin/stash.c:825
+#: builtin/stash.c:809
msgid "failed to parse tree"
msgstr "s'ha produït un error en analitzar l'arbre"
-#: builtin/stash.c:836
+#: builtin/stash.c:820
msgid "failed to unpack trees"
msgstr "s'ha produït un error en desempaquetar els arbres"
-#: builtin/stash.c:856
+#: builtin/stash.c:840
msgid "include untracked files in the stash"
msgstr "inclou els fitxers no seguits a «stash»"
-#: builtin/stash.c:859
+#: builtin/stash.c:843
msgid "only show untracked files in the stash"
msgstr "mostra només els fitxers no seguits a «stash»"
-#: builtin/stash.c:946 builtin/stash.c:983
+#: builtin/stash.c:930 builtin/stash.c:967
#, c-format
msgid "Cannot update %s with %s"
msgstr "No es pot actualitzar %s amb %s"
-#: builtin/stash.c:964 builtin/stash.c:1678 builtin/stash.c:1750
+#: builtin/stash.c:948 builtin/stash.c:1667 builtin/stash.c:1739
msgid "stash message"
msgstr "missatge «stash»"
-#: builtin/stash.c:974
+#: builtin/stash.c:958
msgid "\"git stash store\" requires one <commit> argument"
msgstr "«git stash store» requereix un argument <comissió>"
-#: builtin/stash.c:1159
+#: builtin/stash.c:1143
msgid "No staged changes"
msgstr "No hi ha canvis a «stage»"
-#: builtin/stash.c:1220
+#: builtin/stash.c:1204
msgid "No changes selected"
msgstr "No hi ha canvis seleccionats"
-#: builtin/stash.c:1320
+#: builtin/stash.c:1304
msgid "You do not have the initial commit yet"
msgstr "Encara no teniu la comissió inicial"
-#: builtin/stash.c:1347
+#: builtin/stash.c:1331
msgid "Cannot save the current index state"
msgstr "No es pot desar l'estat d'índex actual"
-#: builtin/stash.c:1356
+#: builtin/stash.c:1340
msgid "Cannot save the untracked files"
msgstr "No es poden desar els fitxers no seguits"
-#: builtin/stash.c:1367 builtin/stash.c:1386
+#: builtin/stash.c:1351 builtin/stash.c:1370
msgid "Cannot save the current worktree state"
msgstr "No es pot desar l'estat d'arbre de treball actual"
-#: builtin/stash.c:1377
+#: builtin/stash.c:1361
msgid "Cannot save the current staged state"
msgstr "No es pot desar l'estat «stage» actual"
-#: builtin/stash.c:1414
+#: builtin/stash.c:1398
msgid "Cannot record working tree state"
msgstr "No es pot registrar l'estat de l'arbre de treball"
-#: builtin/stash.c:1463
+#: builtin/stash.c:1447
msgid "Can't use --patch and --include-untracked or --all at the same time"
msgstr "No es poden usar --patch i --include-untracked o --all a la vegada"
-#: builtin/stash.c:1474
+#: builtin/stash.c:1458
msgid "Can't use --staged and --include-untracked or --all at the same time"
msgstr "No es poden usar --staged i --include-untracked o --all a la vegada"
-#: builtin/stash.c:1492
+#: builtin/stash.c:1476
msgid "Did you forget to 'git add'?"
msgstr "Heu oblidat de fer «git add»?"
-#: builtin/stash.c:1507
+#: builtin/stash.c:1491
msgid "No local changes to save"
msgstr "No hi ha canvis locals a desar"
-#: builtin/stash.c:1514
+#: builtin/stash.c:1498
msgid "Cannot initialize stash"
msgstr "No es pot inicialitzar el magatzem"
-#: builtin/stash.c:1529
+#: builtin/stash.c:1513
msgid "Cannot save the current status"
msgstr "No es pot desar l'estat actual"
-#: builtin/stash.c:1534
+#: builtin/stash.c:1518
#, c-format
msgid "Saved working directory and index state %s"
msgstr "S'han desat el directori de treball i l'estat d'índex %s"
-#: builtin/stash.c:1627
+#: builtin/stash.c:1615
msgid "Cannot remove worktree changes"
msgstr "No es poden eliminar els canvis de l'arbre de treball"
-#: builtin/stash.c:1667 builtin/stash.c:1739
+#: builtin/stash.c:1656 builtin/stash.c:1728
msgid "keep index"
msgstr "mantén l'índex"
-#: builtin/stash.c:1669 builtin/stash.c:1741
+#: builtin/stash.c:1658 builtin/stash.c:1730
msgid "stash staged changes only"
msgstr "fes «stash» només dels canvis «staged»"
-#: builtin/stash.c:1671 builtin/stash.c:1743
+#: builtin/stash.c:1660 builtin/stash.c:1732
msgid "stash in patch mode"
msgstr "fes «stash» en mode pedaç"
-#: builtin/stash.c:1672 builtin/stash.c:1744
+#: builtin/stash.c:1661 builtin/stash.c:1733
msgid "quiet mode"
msgstr "mode silenciós"
-#: builtin/stash.c:1674 builtin/stash.c:1746
+#: builtin/stash.c:1663 builtin/stash.c:1735
msgid "include untracked files in stash"
msgstr "inclou els fitxers no seguits a «stash»"
-#: builtin/stash.c:1676 builtin/stash.c:1748
+#: builtin/stash.c:1665 builtin/stash.c:1737
msgid "include ignore files"
msgstr "inclou els fitxers ignorats"
-#: builtin/stash.c:1783
-msgid ""
-"the stash.useBuiltin support has been removed!\n"
-"See its entry in 'git help config' for details."
-msgstr ""
-"s'ha eliminat l'opció stash.useBuiltin.\n"
-"Per a més detalls vegeu la seva entrada a «git help config»."
-
-#: builtin/stripspace.c:18
-msgid "git stripspace [-s | --strip-comments]"
-msgstr "git stripspace [-s | --strip-comments]"
-
-#: builtin/stripspace.c:19
-msgid "git stripspace [-c | --comment-lines]"
-msgstr "git stripspace [-c | --comment-lines]"
-
#: builtin/stripspace.c:37
msgid "skip and remove all lines starting with comment character"
msgstr ""
@@ -22856,21 +23398,17 @@ msgstr ""
msgid "prepend comment character and space to each line"
msgstr "anteposa el caràcter de comentari i un espai a cada línia"
-#: builtin/submodule--helper.c:46 builtin/submodule--helper.c:2668
+#: builtin/submodule--helper.c:50 builtin/submodule--helper.c:2486
#, c-format
msgid "Expecting a full ref name, got %s"
msgstr "S'espera un nom de referència ple, s'ha rebut %s"
-#: builtin/submodule--helper.c:63
-msgid "submodule--helper print-default-remote takes no arguments"
-msgstr "submodule--helper print-default-remote no pren cap argument"
-
-#: builtin/submodule--helper.c:101
+#: builtin/submodule--helper.c:103
#, c-format
msgid "cannot strip one component off url '%s'"
msgstr "no es pot despullar un component de l'url «%s»"
-#: builtin/submodule--helper.c:211
+#: builtin/submodule--helper.c:213
#, c-format
msgid ""
"could not look up configuration '%s'. Assuming this repository is its own "
@@ -22879,26 +23417,26 @@ msgstr ""
"no s'ha pogut trobar la configuració «%s». S'assumeix que aquest repositori "
"és el seu repositori font autoritzat."
-#: builtin/submodule--helper.c:405 builtin/submodule--helper.c:1859
+#: builtin/submodule--helper.c:413 builtin/submodule--helper.c:1873
msgid "alternative anchor for relative paths"
msgstr "àncora alternativa per als camins relatius"
-#: builtin/submodule--helper.c:410
+#: builtin/submodule--helper.c:418
msgid "git submodule--helper list [--prefix=<path>] [<path>...]"
msgstr "git submodule--helper list [--prefix=<camí>] [<camí>...]"
-#: builtin/submodule--helper.c:468 builtin/submodule--helper.c:605
-#: builtin/submodule--helper.c:628
+#: builtin/submodule--helper.c:476 builtin/submodule--helper.c:617
+#: builtin/submodule--helper.c:640
#, c-format
msgid "No url found for submodule path '%s' in .gitmodules"
msgstr "No s'ha trobat cap url per al camí de submòdul «%s» a .gitmodules"
-#: builtin/submodule--helper.c:520
+#: builtin/submodule--helper.c:528
#, c-format
msgid "Entering '%s'\n"
msgstr "S'està entrant a «%s»\n"
-#: builtin/submodule--helper.c:523
+#: builtin/submodule--helper.c:531
#, c-format
msgid ""
"run_command returned non-zero status for %s\n"
@@ -22907,81 +23445,80 @@ msgstr ""
"run_command ha retornat un estat diferent de zero per a %s\n"
"."
-#: builtin/submodule--helper.c:545
+#: builtin/submodule--helper.c:553
#, c-format
msgid ""
"run_command returned non-zero status while recursing in the nested submodules of %s\n"
"."
msgstr ""
-"run_command ha retornat un estat diferent de zero mentre es treballava recursivament als "
-"submòduls imbricats de %s\n"
+"run_command ha retornat un estat diferent de zero mentre es treballava recursivament als submòduls imbricats de %s\n"
"."
-#: builtin/submodule--helper.c:561
+#: builtin/submodule--helper.c:569
msgid "suppress output of entering each submodule command"
msgstr "omet la sortida en entrar a cada ordre del submòdul"
-#: builtin/submodule--helper.c:563 builtin/submodule--helper.c:864
-#: builtin/submodule--helper.c:1453
+#: builtin/submodule--helper.c:571 builtin/submodule--helper.c:876
+#: builtin/submodule--helper.c:1458
msgid "recurse into nested submodules"
msgstr "inclou recursivament els submòduls imbricats"
-#: builtin/submodule--helper.c:568
+#: builtin/submodule--helper.c:576
msgid "git submodule--helper foreach [--quiet] [--recursive] [--] <command>"
msgstr "git submodule--helper foreach [--quiet] [--recursive] [--] <ordre>"
-#: builtin/submodule--helper.c:642
+#: builtin/submodule--helper.c:654
#, c-format
msgid "Failed to register url for submodule path '%s'"
msgstr "S'ha produït un error en registrar l'url per al camí de submòdul «%s»"
-#: builtin/submodule--helper.c:646
+#: builtin/submodule--helper.c:658
#, c-format
msgid "Submodule '%s' (%s) registered for path '%s'\n"
msgstr "S'ha registrat el submòdul «%s» (%s) per al camí «%s»\n"
-#: builtin/submodule--helper.c:656
+#: builtin/submodule--helper.c:668
#, c-format
msgid "warning: command update mode suggested for submodule '%s'\n"
msgstr ""
"advertència: se suggereix el mode d'actualització per ordre per al submòdul "
"«%s»\n"
-#: builtin/submodule--helper.c:663
+#: builtin/submodule--helper.c:675
#, c-format
msgid "Failed to register update mode for submodule path '%s'"
msgstr ""
"S'ha produït un error en registrar el mode d'actualització per al camí de "
"submòdul «%s»"
-#: builtin/submodule--helper.c:685
+#: builtin/submodule--helper.c:697
msgid "suppress output for initializing a submodule"
msgstr "omet la sortida en inicialitzar un submòdul"
-#: builtin/submodule--helper.c:690
+#: builtin/submodule--helper.c:702
msgid "git submodule--helper init [<options>] [<path>]"
msgstr "git submodule--helper init [<opcions>] [<camí>]"
-#: builtin/submodule--helper.c:763 builtin/submodule--helper.c:898
+#: builtin/submodule--helper.c:775 builtin/submodule--helper.c:910
#, c-format
msgid "no submodule mapping found in .gitmodules for path '%s'"
msgstr "no s'ha trobat cap mapatge de submòdul a .gitmodules per al camí «%s»"
-#: builtin/submodule--helper.c:811
+#: builtin/submodule--helper.c:823
#, c-format
msgid "could not resolve HEAD ref inside the submodule '%s'"
msgstr "no s'ha pogut resoldre la referència a HEAD dins del submòdul «%s»"
-#: builtin/submodule--helper.c:838 builtin/submodule--helper.c:1423
+#: builtin/submodule--helper.c:850 builtin/submodule--helper.c:1428
#, c-format
msgid "failed to recurse into submodule '%s'"
msgstr "s'ha produït un error en cercar recursivament al submòdul «%s»"
-#: builtin/submodule--helper.c:862 builtin/submodule--helper.c:1590
+#: builtin/submodule--helper.c:874 builtin/submodule--helper.c:1595
msgid "suppress submodule status output"
msgstr "suprimeix la sortida de l'estat del submòdul"
-#: builtin/submodule--helper.c:863
+#: builtin/submodule--helper.c:875
msgid ""
"use commit stored in the index instead of the one stored in the submodule "
"HEAD"
@@ -22989,98 +23526,98 @@ msgstr ""
"utilitza la comissió emmagatzemada a l'índex en lloc de l'emmagatzemada al "
"HEAD del submòdul"
-#: builtin/submodule--helper.c:869
+#: builtin/submodule--helper.c:881
msgid "git submodule status [--quiet] [--cached] [--recursive] [<path>...]"
msgstr "git submodule status [--quiet] [--cached] [--recursive] [<camí>...]"
-#: builtin/submodule--helper.c:893
+#: builtin/submodule--helper.c:905
msgid "git submodule--helper name <path>"
msgstr "git submodule--helper name <camí>"
-#: builtin/submodule--helper.c:965
+#: builtin/submodule--helper.c:977
#, c-format
msgid "* %s %s(blob)->%s(submodule)"
msgstr "* %s %s(blob)->%s(submòdul)"
-#: builtin/submodule--helper.c:968
+#: builtin/submodule--helper.c:980
#, c-format
msgid "* %s %s(submodule)->%s(blob)"
msgstr "* %s %s(submòdul)->%s(blob)"
-#: builtin/submodule--helper.c:981
+#: builtin/submodule--helper.c:993
#, c-format
msgid "%s"
msgstr "%s"
-#: builtin/submodule--helper.c:1031
+#: builtin/submodule--helper.c:1043
#, c-format
msgid "couldn't hash object from '%s'"
msgstr "no s'ha pogut fer el resum de l'objecte de «%s»"
-#: builtin/submodule--helper.c:1035
+#: builtin/submodule--helper.c:1047
#, c-format
msgid "unexpected mode %o\n"
msgstr "mode inesperat %o\n"
-#: builtin/submodule--helper.c:1276
+#: builtin/submodule--helper.c:1288
msgid "use the commit stored in the index instead of the submodule HEAD"
msgstr ""
"utilitza la comissió emmagatzemada a l'índex en lloc de l'emmagatzemada al "
"HEAD del submòdul"
-#: builtin/submodule--helper.c:1278
+#: builtin/submodule--helper.c:1290
msgid "compare the commit in the index with that in the submodule HEAD"
msgstr ""
"compara la comissió emmagatzemada a l'índex en lloc de l'emmagatzemada al "
"HEAD del submòdul"
-#: builtin/submodule--helper.c:1280
+#: builtin/submodule--helper.c:1292
msgid "skip submodules with 'ignore_config' value set to 'all'"
msgstr "omet els submòduls amb el valor «ignore_config» establert a «all»"
-#: builtin/submodule--helper.c:1282
+#: builtin/submodule--helper.c:1294
msgid "limit the summary size"
msgstr "limita la mida del resum"
-#: builtin/submodule--helper.c:1287
+#: builtin/submodule--helper.c:1299
msgid "git submodule--helper summary [<options>] [<commit>] [--] [<path>]"
msgstr "git submodule--helper summary [<options>] [<commit>] [--] [<path>]"
-#: builtin/submodule--helper.c:1311
+#: builtin/submodule--helper.c:1323
msgid "could not fetch a revision for HEAD"
msgstr "no s'ha pogut obtenir una revisió per a HEAD"
-#: builtin/submodule--helper.c:1373
+#: builtin/submodule--helper.c:1384
#, c-format
msgid "Synchronizing submodule url for '%s'\n"
msgstr "S'està sincronitzant l'url del submòdul per a «%s»\n"
-#: builtin/submodule--helper.c:1379
+#: builtin/submodule--helper.c:1390
#, c-format
msgid "failed to register url for submodule path '%s'"
msgstr ""
"s'ha produït un error en registrar l'url per al camí del submòdul «%s»"
-#: builtin/submodule--helper.c:1393
+#: builtin/submodule--helper.c:1399
#, c-format
msgid "failed to get the default remote for submodule '%s'"
msgstr ""
"s'ha produït un error en obtenir el remot per defecte pel submòdul «%s»"
-#: builtin/submodule--helper.c:1404
+#: builtin/submodule--helper.c:1409
#, c-format
msgid "failed to update remote for submodule '%s'"
msgstr "s'ha produït un error en actualitzar el remot pel submòdul «%s»"
-#: builtin/submodule--helper.c:1451
+#: builtin/submodule--helper.c:1456
msgid "suppress output of synchronizing submodule url"
msgstr "omet la sortida de la sincronització de l'URL del submòdul"
-#: builtin/submodule--helper.c:1458
+#: builtin/submodule--helper.c:1463
msgid "git submodule--helper sync [--quiet] [--recursive] [<path>]"
msgstr "git submodule--helper sync [--quiet] [--recursive] [<camí>]"
-#: builtin/submodule--helper.c:1508
+#: builtin/submodule--helper.c:1513
#, c-format
msgid ""
"Submodule work tree '%s' contains a .git directory. This will be replaced "
@@ -23089,7 +23626,7 @@ msgstr ""
"L'arbre de treball del submòdul «%s» conté un directori .git. Aquest es "
"reemplaçarà amb un fitxer a .git mitjançant l'ús d'«absorbgitdirs»."
-#: builtin/submodule--helper.c:1525
+#: builtin/submodule--helper.c:1530
#, c-format
msgid ""
"Submodule work tree '%s' contains local modifications; use '-f' to discard "
@@ -23098,47 +23635,47 @@ msgstr ""
"L'arbre de treball del submòdul «%s» conté modificacions locals; useu «-f» "
"per a descartar-les"
-#: builtin/submodule--helper.c:1533
+#: builtin/submodule--helper.c:1538
#, c-format
msgid "Cleared directory '%s'\n"
msgstr "S'ha esborrat el directori «%s»\n"
-#: builtin/submodule--helper.c:1535
+#: builtin/submodule--helper.c:1540
#, c-format
msgid "Could not remove submodule work tree '%s'\n"
msgstr "No s'ha pogut eliminar l'arbre de treball de submòdul «%s»\n"
-#: builtin/submodule--helper.c:1546
+#: builtin/submodule--helper.c:1551
#, c-format
msgid "could not create empty submodule directory %s"
msgstr "no s'ha pogut crear el directori de submòdul buit %s"
-#: builtin/submodule--helper.c:1562
+#: builtin/submodule--helper.c:1567
#, c-format
msgid "Submodule '%s' (%s) unregistered for path '%s'\n"
msgstr "S'ha desregistrat el submòdul «%s» (%s) per al camí «%s»\n"
-#: builtin/submodule--helper.c:1591
+#: builtin/submodule--helper.c:1596
msgid "remove submodule working trees even if they contain local changes"
msgstr ""
"elimina els arbres de treball dels submòduls fins i tot si contenen canvis "
"locals"
-#: builtin/submodule--helper.c:1592
+#: builtin/submodule--helper.c:1597
msgid "unregister all submodules"
msgstr "desregistra tots els submòduls"
-#: builtin/submodule--helper.c:1597
+#: builtin/submodule--helper.c:1602
msgid ""
"git submodule deinit [--quiet] [-f | --force] [--all | [--] [<path>...]]"
msgstr ""
"git submodule deinit [--quiet] [-f | --force] [--all | [--] [<camí>...]]"
-#: builtin/submodule--helper.c:1611
+#: builtin/submodule--helper.c:1616
msgid "Use '--all' if you really want to deinitialize all submodules"
msgstr "Useu «--all» si realment voleu desinicialitzar tots els submòduls"
-#: builtin/submodule--helper.c:1656
+#: builtin/submodule--helper.c:1665
msgid ""
"An alternate computed from a superproject's alternate is invalid.\n"
"To allow Git to clone without an alternate in such a case, set\n"
@@ -23150,102 +23687,102 @@ msgstr ""
"submodule.alternateErrorStrategy a «info» o bé cloneu amb\n"
"«--reference-if-able' en comptes de «--reference»."
-#: builtin/submodule--helper.c:1701 builtin/submodule--helper.c:1704
+#: builtin/submodule--helper.c:1710 builtin/submodule--helper.c:1713
#, c-format
msgid "submodule '%s' cannot add alternate: %s"
msgstr "el submòdul «%s» no pot afegir un alternatiu: %s"
-#: builtin/submodule--helper.c:1740
+#: builtin/submodule--helper.c:1749
#, c-format
msgid "Value '%s' for submodule.alternateErrorStrategy is not recognized"
msgstr "No es reconeix el valor «%s» per a submodule.alternateErrorStrategy"
-#: builtin/submodule--helper.c:1747
+#: builtin/submodule--helper.c:1756
#, c-format
msgid "Value '%s' for submodule.alternateLocation is not recognized"
msgstr "No es reconeix el valor «%s» per a submodule.alternateLocation"
-#: builtin/submodule--helper.c:1772
+#: builtin/submodule--helper.c:1781
#, c-format
msgid "refusing to create/use '%s' in another submodule's git dir"
msgstr "s'ha rebutjat crear/usar «%s» en el directori git d'un altre submòdul"
-#: builtin/submodule--helper.c:1813
+#: builtin/submodule--helper.c:1826
#, c-format
msgid "clone of '%s' into submodule path '%s' failed"
msgstr "el clonatge de «%s» al camí de submòdul «%s» ha fallat"
-#: builtin/submodule--helper.c:1818
+#: builtin/submodule--helper.c:1831
#, c-format
msgid "directory not empty: '%s'"
msgstr "directori no buit: «%s»"
-#: builtin/submodule--helper.c:1830
+#: builtin/submodule--helper.c:1843
#, c-format
msgid "could not get submodule directory for '%s'"
msgstr "no s'ha pogut obtenir el directori de submòdul per a «%s»"
-#: builtin/submodule--helper.c:1862
+#: builtin/submodule--helper.c:1876
msgid "where the new submodule will be cloned to"
msgstr "a on es clonarà el submòdul nou"
-#: builtin/submodule--helper.c:1865
+#: builtin/submodule--helper.c:1879
msgid "name of the new submodule"
msgstr "nom del submòdul nou"
-#: builtin/submodule--helper.c:1868
+#: builtin/submodule--helper.c:1882
msgid "url where to clone the submodule from"
msgstr "url del qual clonar el submòdul"
-#: builtin/submodule--helper.c:1876 builtin/submodule--helper.c:3265
+#: builtin/submodule--helper.c:1890 builtin/submodule--helper.c:3383
msgid "depth for shallow clones"
msgstr "profunditat dels clons superficials"
-#: builtin/submodule--helper.c:1879 builtin/submodule--helper.c:2526
-#: builtin/submodule--helper.c:3258
+#: builtin/submodule--helper.c:1893 builtin/submodule--helper.c:2731
+#: builtin/submodule--helper.c:3376
msgid "force cloning progress"
msgstr "força el progrés del clonatge"
-#: builtin/submodule--helper.c:1881 builtin/submodule--helper.c:2528
+#: builtin/submodule--helper.c:1895 builtin/submodule--helper.c:2733
msgid "disallow cloning into non-empty directory"
msgstr "no permetis clonar en un directori no buit"
-#: builtin/submodule--helper.c:1888
+#: builtin/submodule--helper.c:1903
msgid ""
"git submodule--helper clone [--prefix=<path>] [--quiet] [--reference "
-"<repository>] [--name <name>] [--depth <depth>] [--single-branch] --url "
-"<url> --path <path>"
+"<repository>] [--name <name>] [--depth <depth>] [--single-branch] [--filter "
+"<filter-spec>]--url <url> --path <path>"
msgstr ""
"git submodule--helper clone [--prefix=<path>] [--quiet] [--reference "
-"<repository>] [--name <name>] [--depth <depth>] [--single-branch] --url "
-"<url> --path <path>"
+"<repository>] [--name <name>] [--depth <depth>] [--single-branch] [--filter "
+"<filter-spec>]--url <url> --path <path>"
-#: builtin/submodule--helper.c:1925
+#: builtin/submodule--helper.c:1943
#, c-format
msgid "Invalid update mode '%s' for submodule path '%s'"
msgstr "Mode d'actualització «%s» no vàlid per al camí de submòdul «%s»"
-#: builtin/submodule--helper.c:1929
+#: builtin/submodule--helper.c:1947
#, c-format
msgid "Invalid update mode '%s' configured for submodule path '%s'"
msgstr ""
"Mode d'actualització «%s» configurat no vàlid per al camí de submòdul «%s»"
-#: builtin/submodule--helper.c:2044
+#: builtin/submodule--helper.c:2041
#, c-format
msgid "Submodule path '%s' not initialized"
msgstr "El camí de submòdul «%s» no està inicialitzat"
-#: builtin/submodule--helper.c:2048
+#: builtin/submodule--helper.c:2045
msgid "Maybe you want to use 'update --init'?"
msgstr "Potser voleu usar «update --init»?"
-#: builtin/submodule--helper.c:2078
+#: builtin/submodule--helper.c:2075
#, c-format
msgid "Skipping unmerged submodule %s"
msgstr "S'està ometent el submòdul no fusionat %s"
-#: builtin/submodule--helper.c:2107
+#: builtin/submodule--helper.c:2104
#, c-format
msgid "Skipping submodule '%s'"
msgstr "S'està ometent el submòdul «%s»"
@@ -23260,234 +23797,264 @@ msgstr "S'ha produït un error en clonar «%s». S'ha programat un reintent"
msgid "Failed to clone '%s' a second time, aborting"
msgstr "S'ha produït un error per segon cop en clonar «%s», s'està avortant"
-#: builtin/submodule--helper.c:2373
+#: builtin/submodule--helper.c:2371
#, c-format
msgid "Unable to checkout '%s' in submodule path '%s'"
msgstr "No s'ha pogut agafar «%s» en el camí de submòdul «%s»"
-#: builtin/submodule--helper.c:2377
+#: builtin/submodule--helper.c:2375
#, c-format
msgid "Unable to rebase '%s' in submodule path '%s'"
msgstr "No s'ha pogut fer «rebase» «%s» en el camí de submòdul «%s»"
-#: builtin/submodule--helper.c:2381
+#: builtin/submodule--helper.c:2379
#, c-format
msgid "Unable to merge '%s' in submodule path '%s'"
msgstr "No s'ha pogut fusionar «%s» en el camí de submòdul «%s»"
-#: builtin/submodule--helper.c:2385
+#: builtin/submodule--helper.c:2383
#, c-format
msgid "Execution of '%s %s' failed in submodule path '%s'"
msgstr "L'execució de «%s %s» ha fallat en el camí de submòdul «%s»"
-#: builtin/submodule--helper.c:2409
+#: builtin/submodule--helper.c:2402
#, c-format
msgid "Submodule path '%s': checked out '%s'\n"
msgstr "Camí de submòdul «%s»: s'ha agafat «%s»\n"
-#: builtin/submodule--helper.c:2413
+#: builtin/submodule--helper.c:2406
#, c-format
msgid "Submodule path '%s': rebased into '%s'\n"
msgstr "Camí de submòdul «%s»: s'ha fet «rebase» en «%s»\n"
-#: builtin/submodule--helper.c:2417
+#: builtin/submodule--helper.c:2410
#, c-format
msgid "Submodule path '%s': merged in '%s'\n"
msgstr "Camí de submòdul «%s»: s'ha fusionat en «%s»\n"
-#: builtin/submodule--helper.c:2421
+#: builtin/submodule--helper.c:2414
#, c-format
msgid "Submodule path '%s': '%s %s'\n"
msgstr "El camí de submòdul «%s»: '%s %s'\n"
-#: builtin/submodule--helper.c:2445
+#: builtin/submodule--helper.c:2438
#, c-format
msgid "Unable to fetch in submodule path '%s'; trying to directly fetch %s:"
msgstr ""
"No s'ha pogut obtenir en el camí de submòdul «$%s»; s'està intentant obtenir"
" directament %s:"
-#: builtin/submodule--helper.c:2454
+#: builtin/submodule--helper.c:2447
#, c-format
msgid ""
"Fetched in submodule path '%s', but it did not contain %s. Direct fetching "
"of that commit failed."
msgstr ""
-"S'ha obtingut en un camí de submòdul «%s», però no contenia %s. "
-"L'obtenció directa d'aquesta comissió ha fallat."
+"S'ha obtingut en un camí de submòdul «%s», però no contenia %s. L'obtenció "
+"directa d'aquesta comissió ha fallat."
+
+#: builtin/submodule--helper.c:2481
+#, c-format
+msgid ""
+"Submodule (%s) branch configured to inherit branch from superproject, but "
+"the superproject is not on any branch"
+msgstr ""
+"La branca de submòdul (%s) està configurada per a heretar la branca del "
+"superprojecte, però el superprojecte no és en cap branca"
+
+#: builtin/submodule--helper.c:2499
+#, c-format
+msgid "could not get a repository handle for submodule '%s'"
+msgstr "no s'ha pogut obtenir el gestor del repositori pel submòdul «%s»"
+
+#: builtin/submodule--helper.c:2588
+#, c-format, fuzzy
+msgid "Unable to find current revision in submodule path '%s'"
+msgstr "No s'ha pogut trobar la revisió actual al camí del submòdul «%s»"
+
+#: builtin/submodule--helper.c:2599
+#, c-format, fuzzy
+msgid "Unable to fetch in submodule path '%s'"
+msgstr "No s'ha pogut recuperar el camí del submòdul «%s»"
+
+#: builtin/submodule--helper.c:2604
+#, c-format, fuzzy
+msgid "Unable to find %s revision in submodule path '%s'"
+msgstr ""
+"No s'ha pogut trobar la revisió de percentatges en el camí del submòdul «%s»"
+
+#: builtin/submodule--helper.c:2640
+#, c-format, fuzzy
+msgid "Failed to recurse into submodule path '%s'"
+msgstr "No s'ha pogut tornar a repetir al camí del submòdul «%s»"
-#: builtin/submodule--helper.c:2505 builtin/submodule--helper.c:2575
-#: builtin/submodule--helper.c:2813
+#: builtin/submodule--helper.c:2699
+msgid "force checkout updates"
+msgstr "força les actualitzacions"
+
+#: builtin/submodule--helper.c:2701
+msgid "initialize uninitialized submodules before update"
+msgstr "inicialitza els submòduls sense inicialitzar abans d'actualitzar"
+
+#: builtin/submodule--helper.c:2703
+#, fuzzy
+msgid "use SHA-1 of submodule's remote tracking branch"
+msgstr "utilitza SHA-1 de la branca de seguiment remota del submòdul"
+
+#: builtin/submodule--helper.c:2705
+#, fuzzy
+msgid "traverse submodules recursively"
+msgstr "traverteix els submòduls recursivament"
+
+#: builtin/submodule--helper.c:2707
+msgid "don't fetch new objects from the remote site"
+msgstr "no obtinguis els objectes nous del lloc remot"
+
+#: builtin/submodule--helper.c:2710 builtin/submodule--helper.c:2892
msgid "path into the working tree"
msgstr "camí a l'arbre de treball"
-#: builtin/submodule--helper.c:2508 builtin/submodule--helper.c:2580
+#: builtin/submodule--helper.c:2713
msgid "path into the working tree, across nested submodule boundaries"
msgstr "camí a l'arbre de treball, a través de fronteres de submòduls niats"
-#: builtin/submodule--helper.c:2512 builtin/submodule--helper.c:2578
+#: builtin/submodule--helper.c:2717
msgid "rebase, merge, checkout or none"
msgstr "rebase, merge, checkout o none"
-#: builtin/submodule--helper.c:2518
+#: builtin/submodule--helper.c:2723
msgid "create a shallow clone truncated to the specified number of revisions"
msgstr "crea un clon superficial truncat al nombre de revisions especificat"
-#: builtin/submodule--helper.c:2521
+#: builtin/submodule--helper.c:2726
msgid "parallel jobs"
msgstr "tasques paral·leles"
-#: builtin/submodule--helper.c:2523
+#: builtin/submodule--helper.c:2728
msgid "whether the initial clone should follow the shallow recommendation"
msgstr "si el clonatge inicial ha de seguir la recomanació de superficialitat"
-#: builtin/submodule--helper.c:2524
+#: builtin/submodule--helper.c:2729
msgid "don't print cloning progress"
msgstr "no imprimeixis el progrés del clonatge"
-#: builtin/submodule--helper.c:2535
-msgid "git submodule--helper update-clone [--prefix=<path>] [<path>...]"
-msgstr "git submodule--helper update-clone [--prefix=<camí>] [<camí>...]"
-
-#: builtin/submodule--helper.c:2548
-msgid "bad value for update parameter"
-msgstr "valor incorrecte per al paràmetre update"
-
-#: builtin/submodule--helper.c:2566
-msgid "suppress output for update by rebase or merge"
-msgstr "omet la sortida per les actualitzacions per «rebase» o fusió"
-
-#: builtin/submodule--helper.c:2567
-msgid "force checkout updates"
-msgstr "força les actualitzacions"
-
-#: builtin/submodule--helper.c:2569
-msgid "don't fetch new objects from the remote site"
-msgstr "no obtinguis els objectes nous del lloc remot"
-
-#: builtin/submodule--helper.c:2571
-msgid "overrides update mode in case the repository is a fresh clone"
-msgstr ""
-"sobreescriu el mode d'actualització en cas que el repositori sigui un clon "
-"nou"
-
-#: builtin/submodule--helper.c:2572
-msgid "depth for shallow fetch"
-msgstr "profunditat dels clons superficials"
-
-#: builtin/submodule--helper.c:2582
-msgid "sha1"
-msgstr "sha1"
-
-#: builtin/submodule--helper.c:2583
-msgid "SHA1 expected by superproject"
-msgstr "SHA1 esperat per superproject"
-
-#: builtin/submodule--helper.c:2585
-msgid "subsha1"
-msgstr "subsha1"
-
-#: builtin/submodule--helper.c:2586
-msgid "SHA1 of submodule's HEAD"
-msgstr "SHA1 del HEAD del submòdul"
-
-#: builtin/submodule--helper.c:2592
-msgid "git submodule--helper run-update-procedure [<options>] <path>"
-msgstr "git submodule--helper run-update-procedure [<options>] <path>"
-
-#: builtin/submodule--helper.c:2663
-#, c-format
+#: builtin/submodule--helper.c:2741
msgid ""
-"Submodule (%s) branch configured to inherit branch from superproject, but "
-"the superproject is not on any branch"
+"git submodule [--quiet] update [--init [--filter=<filter-spec>]] [--remote] "
+"[-N|--no-fetch] [-f|--force] [--checkout|--merge|--rebase] "
+"[--[no-]recommend-shallow] [--reference <repository>] [--recursive] "
+"[--[no-]single-branch] [--] [<path>...]"
msgstr ""
-"La branca de submòdul (%s) està configurada per a heretar la branca del "
-"superprojecte, però el superprojecte no és en cap branca"
+"git submodule [--quiet] update [--init [--filter=<filter-spec>]] [--remote] "
+"[-N|--no-fetch] [-f|--force] [--checkout|--merge|--rebase] "
+"[--[no-]recommend-shallow] [--reference <repository>] [--recursive] "
+"[--[no-]single-branch] [--] [<path>...]"
-#: builtin/submodule--helper.c:2781
-#, c-format
-msgid "could not get a repository handle for submodule '%s'"
-msgstr "no s'ha pogut obtenir el gestor del repositori pel submòdul «%s»"
+#: builtin/submodule--helper.c:2767
+msgid "bad value for update parameter"
+msgstr "valor incorrecte per al paràmetre update"
-#: builtin/submodule--helper.c:2814
+#: builtin/submodule--helper.c:2893
msgid "recurse into submodules"
msgstr "inclou recursivament als submòduls"
-#: builtin/submodule--helper.c:2820
+#: builtin/submodule--helper.c:2899
msgid "git submodule--helper absorb-git-dirs [<options>] [<path>...]"
msgstr "git submodule--helper absorb-git-dirs [<opcions>] [<camí>...]"
-#: builtin/submodule--helper.c:2876
+#: builtin/submodule--helper.c:2955
msgid "check if it is safe to write to the .gitmodules file"
msgstr "comprova si és segur escriure al fitxer .gitmodules"
-#: builtin/submodule--helper.c:2879
+#: builtin/submodule--helper.c:2958
msgid "unset the config in the .gitmodules file"
msgstr "desconfigura l'opció de configuració al fitxer .gitmodules"
-#: builtin/submodule--helper.c:2884
+#: builtin/submodule--helper.c:2963
msgid "git submodule--helper config <name> [<value>]"
msgstr "git submodule--helper config <nom> [<valor>]"
-#: builtin/submodule--helper.c:2885
+#: builtin/submodule--helper.c:2964
msgid "git submodule--helper config --unset <name>"
msgstr "git submodule--helper config --unset <nom>"
-#: builtin/submodule--helper.c:2886
-msgid "git submodule--helper config --check-writeable"
-msgstr "git submodule--helper config --check-writeable"
-
-#: builtin/submodule--helper.c:2905 builtin/submodule--helper.c:3121
-#: builtin/submodule--helper.c:3277
+#: builtin/submodule--helper.c:2984 builtin/submodule--helper.c:3238
+#: builtin/submodule--helper.c:3395
msgid "please make sure that the .gitmodules file is in the working tree"
msgstr "assegureu-vos que el fitxer .gitmodules és a l'arbre de treball"
-#: builtin/submodule--helper.c:2921
+#: builtin/submodule--helper.c:3000
msgid "suppress output for setting url of a submodule"
msgstr "omet la sortida en configurar un URL d'un submòdul"
-#: builtin/submodule--helper.c:2925
+#: builtin/submodule--helper.c:3004
msgid "git submodule--helper set-url [--quiet] <path> <newurl>"
msgstr "git submodule--helper set-url [--quiet] <path> <newurl>"
-#: builtin/submodule--helper.c:2958
+#: builtin/submodule--helper.c:3037
msgid "set the default tracking branch to master"
msgstr "estableix la branca de seguiment per defecte a «master»"
-#: builtin/submodule--helper.c:2960
+#: builtin/submodule--helper.c:3039
msgid "set the default tracking branch"
msgstr "estableix la branca de seguiment per defecte"
-#: builtin/submodule--helper.c:2964
+#: builtin/submodule--helper.c:3043
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:2965
+#: builtin/submodule--helper.c:3044
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:2972
+#: builtin/submodule--helper.c:3051
msgid "--branch or --default required"
msgstr "cal --branch o --default"
-#: builtin/submodule--helper.c:3038
+#: builtin/submodule--helper.c:3072 builtin/submodule--helper.c:3375
+msgid "print only error messages"
+msgstr "mostra només els missatges d'error"
+
+#: builtin/submodule--helper.c:3073
+msgid "force creation"
+msgstr "força la creació"
+
+#: builtin/submodule--helper.c:3081
+#, fuzzy
+msgid "show whether the branch would be created"
+msgstr "mostra si es crearà la branca"
+
+#: builtin/submodule--helper.c:3085
+msgid ""
+"git submodule--helper create-branch [-f|--force] [--create-reflog] "
+"[-q|--quiet] [-t|--track] [-n|--dry-run] <name> <start_oid> <start_name>"
+msgstr ""
+"git submodule--helper create-branch [-f|--force] [--create-reflog] "
+"[-q|--quiet] [-t|--track] [-n|--dry-run] <name> <start_oid> <start_name>"
+
+#: builtin/submodule--helper.c:3097
+#, c-format
+msgid "creating branch '%s'"
+msgstr "s'està creant la branca «%s»"
+
+#: builtin/submodule--helper.c:3155
#, c-format
msgid "Adding existing repo at '%s' to the index\n"
msgstr "S'està afegint el repositori existent a «%s» a l'índex\n"
-#: builtin/submodule--helper.c:3041
+#: builtin/submodule--helper.c:3158
#, c-format
msgid "'%s' already exists and is not a valid git repo"
msgstr "«%s» ja existeix i no és un repositori de git vàlid"
-#: builtin/submodule--helper.c:3054
+#: builtin/submodule--helper.c:3171
#, c-format
msgid "A git directory for '%s' is found locally with remote(s):\n"
msgstr "S'ha trobat un directori de git per a «%s» localment amb els remots:\n"
-#: builtin/submodule--helper.c:3061
+#: builtin/submodule--helper.c:3178
#, c-format
msgid ""
"If you want to reuse this local git directory instead of cloning again from\n"
@@ -23500,56 +24067,50 @@ msgstr ""
"useu l'opció «--force». Si el directori de git local no és el repositori correcte\n"
"o no esteu segur de què vol dir això, trieu un altre nom amb l'opció «--name»."
-#: builtin/submodule--helper.c:3073
+#: builtin/submodule--helper.c:3190
#, c-format
msgid "Reactivating local git directory for submodule '%s'\n"
-msgstr ""
-"S'està reactivant el directori de git local per al submòdul «%s»\n"
+msgstr "S'està reactivant el directori de git local per al submòdul «%s»\n"
-#: builtin/submodule--helper.c:3110
+#: builtin/submodule--helper.c:3227
#, c-format
msgid "unable to checkout submodule '%s'"
msgstr "no s'ha pogut agafar el submòdul «%s»"
-#: builtin/submodule--helper.c:3149
+#: builtin/submodule--helper.c:3266
#, c-format
msgid "Failed to add submodule '%s'"
msgstr "S'ha produït un error en afegir el submòdul «%s»"
-#: builtin/submodule--helper.c:3153 builtin/submodule--helper.c:3158
-#: builtin/submodule--helper.c:3166
+#: builtin/submodule--helper.c:3270 builtin/submodule--helper.c:3275
+#: builtin/submodule--helper.c:3283
#, c-format
msgid "Failed to register submodule '%s'"
msgstr "S'ha produït un error en registrar el submòdul «%s»"
-#: builtin/submodule--helper.c:3222
+#: builtin/submodule--helper.c:3339
#, c-format
msgid "'%s' already exists in the index"
msgstr "«%s» ja existeix en l'índex"
-#: builtin/submodule--helper.c:3225
+#: builtin/submodule--helper.c:3342
#, c-format
msgid "'%s' already exists in the index and is not a submodule"
msgstr "«%s» ja existeix en l'índex i no és submòdul"
-#: builtin/submodule--helper.c:3254
+#: builtin/submodule--helper.c:3372
msgid "branch of repository to add as submodule"
msgstr "la branca del repositori a afegir com a submòdul"
-#: builtin/submodule--helper.c:3255
+#: builtin/submodule--helper.c:3373
msgid "allow adding an otherwise ignored submodule path"
msgstr "permet afegir un camí de submòdul que si no s'hagués ignorat"
-#: builtin/submodule--helper.c:3257
-msgid "print only error messages"
-msgstr "mostra només els missatges d'error"
-
-#: builtin/submodule--helper.c:3261
+#: builtin/submodule--helper.c:3379
msgid "borrow the objects from reference repositories"
-msgstr ""
-"manlleva els objectes dels repositoris de referències"
+msgstr "manlleva els objectes dels repositoris de referències"
-#: builtin/submodule--helper.c:3263
+#: builtin/submodule--helper.c:3381
msgid ""
"sets the submodule’s name to the given string instead of defaulting to its "
"path"
@@ -23557,32 +24118,32 @@ msgstr ""
"estableix el nom del submòdul a la cadena donada en lloc de per defecte al "
"seu camí"
-#: builtin/submodule--helper.c:3270
+#: builtin/submodule--helper.c:3388
msgid "git submodule--helper add [<options>] [--] <repository> [<path>]"
msgstr "git submodule--helper add [<opcions>] [--] <repositori> [<camí>]"
-#: builtin/submodule--helper.c:3298
+#: builtin/submodule--helper.c:3416
msgid "Relative path can only be used from the toplevel of the working tree"
msgstr ""
"El camí relatiu només es pot usar des del nivell superior de l'arbre de "
"treball"
-#: builtin/submodule--helper.c:3306
+#: builtin/submodule--helper.c:3425
#, c-format
msgid "repo URL: '%s' must be absolute or begin with ./|../"
msgstr "URL de repositori: «%s» ha de ser absolut o començar amb ./|../"
-#: builtin/submodule--helper.c:3341
+#: builtin/submodule--helper.c:3460
#, c-format
msgid "'%s' is not a valid submodule name"
msgstr "«%s» no és un nom de submòdul vàlid"
-#: builtin/submodule--helper.c:3405 git.c:452 git.c:726
+#: builtin/submodule--helper.c:3520 git.c:453 git.c:729
#, c-format
msgid "%s doesn't support --super-prefix"
msgstr "%s no admet --super-prefix"
-#: builtin/submodule--helper.c:3411
+#: builtin/submodule--helper.c:3526
#, c-format
msgid "'%s' is not a valid submodule--helper subcommand"
msgstr "«%s» no és una subordre vàlida de submodule--helper"
@@ -23615,7 +24176,7 @@ msgstr "raó"
msgid "reason of the update"
msgstr "raó de l'actualització"
-#: builtin/tag.c:25
+#: builtin/tag.c:26
msgid ""
"git tag [-a | -s | -u <key-id>] [-f] [-m <msg> | -F <file>]\n"
" <tagname> [<head>]"
@@ -23623,11 +24184,11 @@ msgstr ""
"git tag [-a | -s | -u <key-id>] [-f] [-m <msg> | -F <fitxer>]\n"
" <tagname> [<head>]"
-#: builtin/tag.c:27
+#: builtin/tag.c:28
msgid "git tag -d <tagname>..."
msgstr "git tag -d <nom-d'etiqueta>..."
-#: builtin/tag.c:28
+#: builtin/tag.c:29
msgid ""
"git tag -l [-n[<num>]] [--contains <commit>] [--no-contains <commit>] [--points-at <object>]\n"
" [--format=<format>] [--merged <commit>] [--no-merged <commit>] [<pattern>...]"
@@ -23635,21 +24196,21 @@ msgstr ""
"git tag -l [-n[<num>]] [--contains <commit>] [--no-contains <commit>] [--points-at <object>]\n"
" [--format=<format>] [--merged <comissió>] [--no-merged <comissió>] [<patró>...]"
-#: builtin/tag.c:30
+#: builtin/tag.c:31
msgid "git tag -v [--format=<format>] <tagname>..."
msgstr "git tag -v [--format=<format>] <nom-d'etiqueta>..."
-#: builtin/tag.c:100
+#: builtin/tag.c:101
#, c-format
msgid "tag '%s' not found."
msgstr "no s'ha trobat l'etiqueta «%s»."
-#: builtin/tag.c:135
+#: builtin/tag.c:136
#, c-format
msgid "Deleted tag '%s' (was %s)\n"
msgstr "S'ha suprimit l'etiqueta «%s» (era %s)\n"
-#: builtin/tag.c:170
+#: builtin/tag.c:171
#, c-format
msgid ""
"\n"
@@ -23662,7 +24223,7 @@ msgstr ""
" %s\n"
"Les línies que comencin amb «%c» s'ignoraran.\n"
-#: builtin/tag.c:174
+#: builtin/tag.c:175
#, c-format
msgid ""
"\n"
@@ -23675,11 +24236,11 @@ msgstr ""
" %s\n"
"Les línies que comencin amb «%c» es retindran; podeu eliminar-les per vós mateix si voleu.\n"
-#: builtin/tag.c:240
+#: builtin/tag.c:241
msgid "unable to sign the tag"
msgstr "no s'ha pogut signar l'etiqueta"
-#: builtin/tag.c:258
+#: builtin/tag.c:259
#, c-format
msgid ""
"You have created a nested tag. The object referred to by your new tag is\n"
@@ -23692,115 +24253,119 @@ msgstr ""
"\n"
"\tgit tag -f %s %s^{}"
-#: builtin/tag.c:274
+#: builtin/tag.c:275
msgid "bad object type."
msgstr "el tipus d'objecte és incorrecte."
-#: builtin/tag.c:325
+#: builtin/tag.c:326
msgid "no tag message?"
msgstr "no hi ha cap missatge d'etiqueta?"
-#: builtin/tag.c:332
+#: builtin/tag.c:333
#, c-format
msgid "The tag message has been left in %s\n"
msgstr "S'ha deixat el missatge de l'etiqueta en %s\n"
-#: builtin/tag.c:444
+#: builtin/tag.c:445
msgid "list tag names"
msgstr "llista els noms d'etiqueta"
-#: builtin/tag.c:446
+#: builtin/tag.c:447
msgid "print <n> lines of each tag message"
msgstr "imprimeix <n> línies de cada missatge d'etiqueta"
-#: builtin/tag.c:448
+#: builtin/tag.c:449
msgid "delete tags"
msgstr "suprimeix les etiquetes"
-#: builtin/tag.c:449
+#: builtin/tag.c:450
msgid "verify tags"
msgstr "verifica les etiquetes"
-#: builtin/tag.c:451
+#: builtin/tag.c:452
msgid "Tag creation options"
msgstr "Opcions de creació d'etiquetes"
-#: builtin/tag.c:453
+#: builtin/tag.c:454
msgid "annotated tag, needs a message"
msgstr "etiqueta anotada, necessita un missatge"
-#: builtin/tag.c:455
+#: builtin/tag.c:456
msgid "tag message"
msgstr "missatge d'etiqueta"
-#: builtin/tag.c:457
+#: builtin/tag.c:458
msgid "force edit of tag message"
msgstr "força l'edició del missatge de l'etiqueta"
-#: builtin/tag.c:458
+#: builtin/tag.c:459
msgid "annotated and GPG-signed tag"
msgstr "etiqueta anotada i signada per GPG"
-#: builtin/tag.c:461
+#: builtin/tag.c:462
msgid "use another key to sign the tag"
msgstr "usa una altra clau per a signar l'etiqueta"
-#: builtin/tag.c:462
+#: builtin/tag.c:463
msgid "replace the tag if exists"
msgstr "reemplaça l'etiqueta si existeix"
-#: builtin/tag.c:463 builtin/update-ref.c:511
+#: builtin/tag.c:464 builtin/update-ref.c:511
msgid "create a reflog"
msgstr "crea un registre de referències"
-#: builtin/tag.c:465
+#: builtin/tag.c:466
msgid "Tag listing options"
msgstr "Opcions de llistat d'etiquetes"
-#: builtin/tag.c:466
+#: builtin/tag.c:467
msgid "show tag list in columns"
msgstr "mostra la llista d'etiquetes en columnes"
-#: builtin/tag.c:467 builtin/tag.c:469
+#: builtin/tag.c:468 builtin/tag.c:470
msgid "print only tags that contain the commit"
msgstr "imprimeix només les etiquetes que continguin la comissió"
-#: builtin/tag.c:468 builtin/tag.c:470
+#: builtin/tag.c:469 builtin/tag.c:471
msgid "print only tags that don't contain the commit"
msgstr "imprimeix només les etiquetes que no continguin la comissió"
-#: builtin/tag.c:471
+#: builtin/tag.c:472
msgid "print only tags that are merged"
msgstr "imprimeix només les etiquetes que s'han fusionat"
-#: builtin/tag.c:472
+#: builtin/tag.c:473
msgid "print only tags that are not merged"
msgstr "imprimeix només les etiquetes que no s'han fusionat"
-#: builtin/tag.c:476
+#: builtin/tag.c:477
msgid "print only tags of the object"
msgstr "imprimeix només les etiquetes de l'objecte"
-#: builtin/tag.c:558
+#: builtin/tag.c:559
#, c-format
msgid "the '%s' option is only allowed in list mode"
msgstr "l'opció «%s» només està permesa en mode de llista"
-#: builtin/tag.c:597
+#: builtin/tag.c:598
#, c-format
msgid "'%s' is not a valid tag name."
msgstr "«%s» no és un nom d'etiqueta vàlid."
-#: builtin/tag.c:602
+#: builtin/tag.c:603
#, c-format
msgid "tag '%s' already exists"
msgstr "l'etiqueta «%s» ja existeix"
-#: builtin/tag.c:633
+#: builtin/tag.c:634
#, c-format
msgid "Updated tag '%s' (was %s)\n"
msgstr "Etiqueta «%s» actualitzada (era %s)\n"
+#: builtin/unpack-objects.c:95
+msgid "pack exceeds maximum allowed size"
+msgstr "el paquet supera la mida màxima permesa"
+
#: builtin/unpack-objects.c:504
msgid "Unpacking objects"
msgstr "S'estan desempaquetant els objectes"
@@ -23866,148 +24431,148 @@ msgstr " D'acord"
msgid "git update-index [<options>] [--] [<file>...]"
msgstr "git update-index [<opcions>] [--] [<fitxer>...]"
-#: builtin/update-index.c:974
+#: builtin/update-index.c:993
msgid "continue refresh even when index needs update"
msgstr ""
"continua l'actualització encara que l'índex necessiti una actualització"
-#: builtin/update-index.c:977
+#: builtin/update-index.c:996
msgid "refresh: ignore submodules"
msgstr "actualitza: ignora els submòduls"
-#: builtin/update-index.c:980
+#: builtin/update-index.c:999
msgid "do not ignore new files"
msgstr "no ignoris els fitxers nous"
-#: builtin/update-index.c:982
+#: builtin/update-index.c:1001
msgid "let files replace directories and vice-versa"
msgstr "deixa que els fitxers reemplacin els directoris i viceversa"
-#: builtin/update-index.c:984
+#: builtin/update-index.c:1003
msgid "notice files missing from worktree"
msgstr "tingues en compte els fitxers absents de l'arbre de treball"
-#: builtin/update-index.c:986
+#: builtin/update-index.c:1005
msgid "refresh even if index contains unmerged entries"
msgstr "actualitza encara que l'índex contingui entrades no fusionades"
-#: builtin/update-index.c:989
+#: builtin/update-index.c:1008
msgid "refresh stat information"
msgstr "actualitza la informació d'estadístiques"
-#: builtin/update-index.c:993
+#: builtin/update-index.c:1012
msgid "like --refresh, but ignore assume-unchanged setting"
msgstr "com --refresh, però ignora el paràmetre assume-unchanged"
-#: builtin/update-index.c:997
+#: builtin/update-index.c:1016
msgid "<mode>,<object>,<path>"
msgstr "<mode>,<objecte>,<camí>"
-#: builtin/update-index.c:998
+#: builtin/update-index.c:1017
msgid "add the specified entry to the index"
msgstr "afegeix l'entrada especificada a l'índex"
-#: builtin/update-index.c:1008
+#: builtin/update-index.c:1027
msgid "mark files as \"not changing\""
msgstr "marca els fitxers com a «no canviant»"
-#: builtin/update-index.c:1011
+#: builtin/update-index.c:1030
msgid "clear assumed-unchanged bit"
msgstr "esborra el bit assumed-unchanged"
-#: builtin/update-index.c:1014
+#: builtin/update-index.c:1033
msgid "mark files as \"index-only\""
msgstr "marca els fitxers com a «només índex»"
-#: builtin/update-index.c:1017
+#: builtin/update-index.c:1036
msgid "clear skip-worktree bit"
msgstr "esborra el bit skip-worktree"
-#: builtin/update-index.c:1020
+#: builtin/update-index.c:1039
msgid "do not touch index-only entries"
msgstr "no toquis les entrades de només índex"
-#: builtin/update-index.c:1022
+#: builtin/update-index.c:1041
msgid "add to index only; do not add content to object database"
msgstr ""
"només afegeix a l'índex; no afegeixis el contingut a la base de dades "
"d'objectes"
-#: builtin/update-index.c:1024
+#: builtin/update-index.c:1043
msgid "remove named paths even if present in worktree"
msgstr ""
"elimina els camins anomenats encara que estiguin presents en l'arbre de "
"treball"
-#: builtin/update-index.c:1026
+#: builtin/update-index.c:1045
msgid "with --stdin: input lines are terminated by null bytes"
msgstr "amb --stdin: les línies d'entrada acaben amb octets nuls"
-#: builtin/update-index.c:1028
+#: builtin/update-index.c:1047
msgid "read list of paths to be updated from standard input"
msgstr "llegeix la llista de camins a actualitzar des de l'entrada estàndard"
-#: builtin/update-index.c:1032
+#: builtin/update-index.c:1051
msgid "add entries from standard input to the index"
msgstr "afegeix les entrades de l'entrada estàndard a l'índex"
-#: builtin/update-index.c:1036
+#: builtin/update-index.c:1055
msgid "repopulate stages #2 and #3 for the listed paths"
msgstr "reemplena les «stage» #2 i #3 per als camins llistats"
-#: builtin/update-index.c:1040
+#: builtin/update-index.c:1059
msgid "only update entries that differ from HEAD"
msgstr "només actualitza les entrades que difereixin de HEAD"
-#: builtin/update-index.c:1044
+#: builtin/update-index.c:1063
msgid "ignore files missing from worktree"
msgstr "ignora els fitxers absents de l'arbre de treball"
-#: builtin/update-index.c:1047
+#: builtin/update-index.c:1066
msgid "report actions to standard output"
msgstr "informa de les accions en la sortida estàndard"
-#: builtin/update-index.c:1049
+#: builtin/update-index.c:1068
msgid "(for porcelains) forget saved unresolved conflicts"
msgstr "(per a porcellanes) oblida't dels conflictes no resolts ni desats"
-#: builtin/update-index.c:1053
+#: builtin/update-index.c:1072
msgid "write index in this format"
msgstr "escriu l'índex en aquest format"
-#: builtin/update-index.c:1055
+#: builtin/update-index.c:1074
msgid "enable or disable split index"
msgstr "habilita o inhabilita l'índex dividit"
-#: builtin/update-index.c:1057
+#: builtin/update-index.c:1076
msgid "enable/disable untracked cache"
msgstr "habilita/inhabilita la memòria cau no seguida"
-#: builtin/update-index.c:1059
+#: builtin/update-index.c:1078
msgid "test if the filesystem supports untracked cache"
msgstr "prova si el sistema de fitxers admet la memòria cau no seguida"
-#: builtin/update-index.c:1061
+#: builtin/update-index.c:1080
msgid "enable untracked cache without testing the filesystem"
msgstr "habilita la memòria cau no seguida sense provar el sistema de fitxers"
-#: builtin/update-index.c:1063
+#: builtin/update-index.c:1082
msgid "write out the index even if is not flagged as changed"
msgstr "escriu l'índex encara que no estigui marcat com a canviat"
-#: builtin/update-index.c:1065
+#: builtin/update-index.c:1084
msgid "enable or disable file system monitor"
msgstr "habilita o inhabilita el monitor del sistema de fitxers"
-#: builtin/update-index.c:1067
+#: builtin/update-index.c:1086
msgid "mark files as fsmonitor valid"
msgstr "marca els fitxers com a vàlids pel fsmonitor"
-#: builtin/update-index.c:1070
+#: builtin/update-index.c:1089
msgid "clear fsmonitor valid bit"
msgstr "esborra el bit de validesa del fsmonitor"
-#: builtin/update-index.c:1173
+#: builtin/update-index.c:1195
msgid ""
"core.splitIndex is set to false; remove or change it, if you really want to "
"enable split index"
@@ -24015,7 +24580,7 @@ msgstr ""
"core.splitIndex està establert a fals; elimineu-lo o canviar-lo, si realment"
" voleu habilitar l'índex dividit"
-#: builtin/update-index.c:1182
+#: builtin/update-index.c:1204
msgid ""
"core.splitIndex is set to true; remove or change it, if you really want to "
"disable split index"
@@ -24023,7 +24588,7 @@ msgstr ""
"core.splitIndex està establert a cert; elimineu-lo o canvieu-lo, si realment"
" voleu inhabilitar l'índex dividit"
-#: builtin/update-index.c:1194
+#: builtin/update-index.c:1216
msgid ""
"core.untrackedCache is set to true; remove or change it, if you really want "
"to disable the untracked cache"
@@ -24031,11 +24596,11 @@ msgstr ""
"core.untrackedCache està establert a cert; elimineu-lo o canvieu-lo, si "
"realment voleu inhabilitar el cau no seguit"
-#: builtin/update-index.c:1198
+#: builtin/update-index.c:1220
msgid "Untracked cache disabled"
msgstr "La memòria cau no seguida està inhabilitada"
-#: builtin/update-index.c:1206
+#: builtin/update-index.c:1228
msgid ""
"core.untrackedCache is set to false; remove or change it, if you really want"
" to enable the untracked cache"
@@ -24043,29 +24608,29 @@ msgstr ""
"core.untrackedCache està establert a fals; elimineu-lo o canviar-lo, si "
"realment voleu habilitar el cau no seguit"
-#: builtin/update-index.c:1210
+#: builtin/update-index.c:1232
#, c-format
msgid "Untracked cache enabled for '%s'"
msgstr "La memòria cau no seguida està habilitada per a «%s»"
-#: builtin/update-index.c:1218
+#: builtin/update-index.c:1241
msgid "core.fsmonitor is unset; set it if you really want to enable fsmonitor"
msgstr ""
"core.fsmonitor està establert a fals; establiu-lo a cert si realment voleu "
"habilitar fsmonitor"
-#: builtin/update-index.c:1222
+#: builtin/update-index.c:1246
msgid "fsmonitor enabled"
msgstr "fsmonitor habilitat"
-#: builtin/update-index.c:1225
+#: builtin/update-index.c:1250
msgid ""
"core.fsmonitor is set; remove it if you really want to disable fsmonitor"
msgstr ""
"core.fsmonitor està establert a cert; elimineu-lo si realment voleu "
"inhabilitar fsmonitor"
-#: builtin/update-index.c:1229
+#: builtin/update-index.c:1254
msgid "fsmonitor disabled"
msgstr "fsmonitor inhabilitat"
@@ -24099,10 +24664,6 @@ msgstr "stdin té arguments acabats amb NUL"
msgid "read updates from stdin"
msgstr "llegeix les actualitzacions des de stdin"
-#: builtin/update-server-info.c:7
-msgid "git update-server-info [--force]"
-msgstr "git update-server-info [--force]"
-
#: builtin/update-server-info.c:15
msgid "update the info files from scratch"
msgstr "actualitza els fitxers d'informació des de zero"
@@ -24185,33 +24746,37 @@ msgid "git worktree remove [<options>] <worktree>"
msgstr "git worktree remove [<opcions>] <arbre de treball>"
#: builtin/worktree.c:25
+msgid "git worktree repair [<path>...]"
+msgstr "git worktree repair [<path>...]"
+
+#: builtin/worktree.c:26
msgid "git worktree unlock <path>"
msgstr "git worktree unlock <camí>"
-#: builtin/worktree.c:75
+#: builtin/worktree.c:76
#, c-format
msgid "Removing %s/%s: %s"
msgstr "S'està eliminant %s/%s: %s"
-#: builtin/worktree.c:148
+#: builtin/worktree.c:149
msgid "report pruned working trees"
msgstr "informa dels arbres de treball podats"
-#: builtin/worktree.c:150
+#: builtin/worktree.c:151
msgid "expire working trees older than <time>"
msgstr "fes caducar els arbres de treball més antics que <data>"
-#: builtin/worktree.c:220
+#: builtin/worktree.c:221
#, c-format
msgid "'%s' already exists"
msgstr "«%s» ja existeix"
-#: builtin/worktree.c:229
+#: builtin/worktree.c:230
#, c-format
msgid "unusable worktree destination '%s'"
msgstr "destinació de l'arbre de treball no utilitzable «%s»"
-#: builtin/worktree.c:234
+#: builtin/worktree.c:235
#, c-format
msgid ""
"'%s' is a missing but locked worktree;\n"
@@ -24220,7 +24785,7 @@ msgstr ""
"«%s» és un arbre de treball que manca però que està bloquejat;\n"
"useu «%s -f -f» per a sobreescriure-ho, o «unlock» i «prune» o «remove» per a netejar"
-#: builtin/worktree.c:236
+#: builtin/worktree.c:237
#, c-format
msgid ""
"'%s' is a missing but already registered worktree;\n"
@@ -24229,131 +24794,157 @@ msgstr ""
"manca «%s» però ja està registrat a l'arbre de treball;\n"
"useu «%s» per a sobreescriure-ho, o «prune» o «remove» per a netejar"
-#: builtin/worktree.c:287
+#: builtin/worktree.c:248
+#, c-format, fuzzy
+msgid "failed to copy '%s' to '%s'; sparse-checkout may not work correctly"
+msgstr ""
+"no s'ha pogut copiar '%s' a '%s'; la comprovació de la dispersió pot no "
+"funcionar correctament"
+
+#: builtin/worktree.c:268
+#, c-format, fuzzy
+msgid "failed to copy worktree config from '%s' to '%s'"
+msgstr ""
+"no s'ha pogut copiar la configuració de l'arbre de treball de «%s» a «%s»"
+
+#: builtin/worktree.c:280 builtin/worktree.c:285
+#, c-format, fuzzy
+msgid "failed to unset '%s' in '%s'"
+msgstr "no s'ha pogut desassignar «%s» a «%s»"
+
+#: builtin/worktree.c:356
#, c-format
msgid "could not create directory of '%s'"
msgstr "no s'ha pogut crear directori de «%s»"
-#: builtin/worktree.c:309
+#: builtin/worktree.c:378
msgid "initializing"
msgstr "s'està inicialitzant"
-#: builtin/worktree.c:420 builtin/worktree.c:426
+#: builtin/worktree.c:492 builtin/worktree.c:498
#, c-format
msgid "Preparing worktree (new branch '%s')"
msgstr "S'està preparant l'arbre de treball (branca nova «%s»)"
-#: builtin/worktree.c:422
+#: builtin/worktree.c:494
#, c-format
msgid "Preparing worktree (resetting branch '%s'; was at %s)"
-msgstr "S'està preparant l'arbre de treball (s'està reiniciant la branca «%s»; estava a %s)"
+msgstr ""
+"S'està preparant l'arbre de treball (s'està reiniciant la branca «%s»; "
+"estava a %s)"
-#: builtin/worktree.c:431
+#: builtin/worktree.c:503
#, c-format
msgid "Preparing worktree (checking out '%s')"
msgstr "S'està preparant l'arbre de treball (s'està agafant «%s»)"
-#: builtin/worktree.c:437
+#: builtin/worktree.c:509
#, c-format
msgid "Preparing worktree (detached HEAD %s)"
msgstr "S'està preparant l'arbre de treball (HEAD %s separat)"
-#: builtin/worktree.c:482
+#: builtin/worktree.c:554
msgid "checkout <branch> even if already checked out in other worktree"
msgstr "agafa <branca> encara que sigui agafada en altre arbre de treball"
-#: builtin/worktree.c:485
+#: builtin/worktree.c:557
msgid "create a new branch"
msgstr "crea una branca nova"
-#: builtin/worktree.c:487
+#: builtin/worktree.c:559
msgid "create or reset a branch"
msgstr "crea o restableix una branca"
-#: builtin/worktree.c:489
+#: builtin/worktree.c:561
msgid "populate the new working tree"
msgstr "emplena l'arbre de treball nou"
-#: builtin/worktree.c:490
+#: builtin/worktree.c:562
msgid "keep the new working tree locked"
msgstr "mantén l'arbre de treball nou bloquejat"
-#: builtin/worktree.c:492 builtin/worktree.c:729
+#: builtin/worktree.c:564 builtin/worktree.c:809
msgid "reason for locking"
msgstr "raó per a bloquejar"
-#: builtin/worktree.c:495
+#: builtin/worktree.c:567
msgid "set up tracking mode (see git-branch(1))"
msgstr "configura el mode de seguiment (vegeu git-branch(1))"
-#: builtin/worktree.c:498
+#: builtin/worktree.c:570
msgid "try to match the new branch name with a remote-tracking branch"
msgstr ""
"prova de fer coincidir el nom de la branca nova amb una branca amb seguiment"
" remot"
-#: builtin/worktree.c:512
+#: builtin/worktree.c:584
msgid "added with --lock"
msgstr "afegit amb --lock"
-#: builtin/worktree.c:574
+#: builtin/worktree.c:646
msgid "--[no-]track can only be used if a new branch is created"
msgstr "--[no-]track només es pot usar si es crea una branca nova"
-#: builtin/worktree.c:691
+#: builtin/worktree.c:766
msgid "show extended annotations and reasons, if available"
msgstr "mostra les anotacions esteses i les raons, si estan disponibles"
-#: builtin/worktree.c:693
+#: builtin/worktree.c:768
msgid "add 'prunable' annotation to worktrees older than <time>"
-msgstr "afegeix l'anotació «prunable» als arbres de treball més antics que <data>"
+msgstr ""
+"afegeix l'anotació «prunable» als arbres de treball més antics que <data>"
-#: builtin/worktree.c:741 builtin/worktree.c:774 builtin/worktree.c:848
-#: builtin/worktree.c:972
+#: builtin/worktree.c:770
+#, fuzzy
+msgid "terminate records with a NUL character"
+msgstr "finalitza els registres amb un caràcter NUL"
+
+#: builtin/worktree.c:821 builtin/worktree.c:854 builtin/worktree.c:928
+#: builtin/worktree.c:1052
#, c-format
msgid "'%s' is not a working tree"
msgstr "«%s» no és un arbre de treball"
-#: builtin/worktree.c:743 builtin/worktree.c:776
+#: builtin/worktree.c:823 builtin/worktree.c:856
msgid "The main working tree cannot be locked or unlocked"
msgstr "No es pot bloquejar ni desbloquejar l'arbre de treball principal"
-#: builtin/worktree.c:748
+#: builtin/worktree.c:828
#, c-format
msgid "'%s' is already locked, reason: %s"
msgstr "«%s» ja està bloquejat, raó: «%s»"
-#: builtin/worktree.c:750
+#: builtin/worktree.c:830
#, c-format
msgid "'%s' is already locked"
msgstr "«%s» ja està bloquejat"
-#: builtin/worktree.c:778
+#: builtin/worktree.c:858
#, c-format
msgid "'%s' is not locked"
msgstr "«%s» no està bloquejat"
-#: builtin/worktree.c:819
+#: builtin/worktree.c:899
msgid "working trees containing submodules cannot be moved or removed"
msgstr ""
"els arbres de treball que contenen submòduls no es poden moure ni eliminar"
-#: builtin/worktree.c:827
+#: builtin/worktree.c:907
msgid "force move even if worktree is dirty or locked"
msgstr ""
"força el moviment encara que l'arbre de treball estigui brut o bloquejat"
-#: builtin/worktree.c:850 builtin/worktree.c:974
+#: builtin/worktree.c:930 builtin/worktree.c:1054
#, c-format
msgid "'%s' is a main working tree"
msgstr "«%s» és un arbre de treball principal"
-#: builtin/worktree.c:855
+#: builtin/worktree.c:935
#, c-format
msgid "could not figure out destination name from '%s'"
msgstr "no s'ha pogut deduir el nom de destí des de «%s»"
-#: builtin/worktree.c:868
+#: builtin/worktree.c:948
#, c-format
msgid ""
"cannot move a locked working tree, lock reason: %s\n"
@@ -24362,7 +24953,7 @@ msgstr ""
"no es pot moure un arbre de treball bloquejat, raó del bloqueig: %s\n"
"useu primer «move -f -f» per a sobreescriure'l o desbloquejar-lo primer"
-#: builtin/worktree.c:870
+#: builtin/worktree.c:950
msgid ""
"cannot move a locked working tree;\n"
"use 'move -f -f' to override or unlock first"
@@ -24370,38 +24961,38 @@ msgstr ""
"no es pot moure un arbre de treball bloquejat;\n"
"useu primer «move -f -f» per a sobreescriure'l o desbloquejar-lo primer"
-#: builtin/worktree.c:873
+#: builtin/worktree.c:953
#, c-format
msgid "validation failed, cannot move working tree: %s"
msgstr "la validació ha fallat, no es pot moure l'arbre de treball: %s"
-#: builtin/worktree.c:878
+#: builtin/worktree.c:958
#, c-format
msgid "failed to move '%s' to '%s'"
msgstr "s'ha produït un error en moure «%s» a «%s»"
-#: builtin/worktree.c:924
+#: builtin/worktree.c:1004
#, c-format
msgid "failed to run 'git status' on '%s'"
msgstr "no s'ha pogut executar «git status» a «%s»"
-#: builtin/worktree.c:928
+#: builtin/worktree.c:1008
#, c-format
msgid "'%s' contains modified or untracked files, use --force to delete it"
msgstr ""
"«%s» conté fitxers modificats o no seguits, useu --force per a suprimir-los"
-#: builtin/worktree.c:933
+#: builtin/worktree.c:1013
#, c-format
msgid "failed to run 'git status' on '%s', code %d"
msgstr "no s'ha pogut executar «git status» a «%s», codi %d"
-#: builtin/worktree.c:956
+#: builtin/worktree.c:1036
msgid "force removal even if worktree is dirty or locked"
msgstr ""
"força l'eliminació encara que l'arbre de treball estigui brut o bloquejat"
-#: builtin/worktree.c:979
+#: builtin/worktree.c:1059
#, c-format
msgid ""
"cannot remove a locked working tree, lock reason: %s\n"
@@ -24410,7 +25001,7 @@ msgstr ""
"no es pot suprimir un arbre de treball bloquejat, raó del bloqueig: %s\n"
"useu primer «remove -f -f» per a sobreescriure'l o desbloquejar-lo"
-#: builtin/worktree.c:981
+#: builtin/worktree.c:1061
msgid ""
"cannot remove a locked working tree;\n"
"use 'remove -f -f' to override or unlock first"
@@ -24418,17 +25009,17 @@ msgstr ""
"no es pot suprimir un arbre de treball bloquejat;\n"
"useu primer «remove -f -f» per a sobreescriure'l o desbloquejar-lo"
-#: builtin/worktree.c:984
+#: builtin/worktree.c:1064
#, c-format
msgid "validation failed, cannot remove working tree: %s"
msgstr "la validació ha fallat, no es pot suprmir l'arbre de treball: %s"
-#: builtin/worktree.c:1008
+#: builtin/worktree.c:1088
#, c-format
msgid "repair: %s: %s"
msgstr "repara: %s: %s"
-#: builtin/worktree.c:1011
+#: builtin/worktree.c:1091
#, c-format
msgid "error: %s: %s"
msgstr "error: %s: %s"
@@ -24531,29 +25122,29 @@ msgstr "àlies buit per a %s"
msgid "recursive alias: %s"
msgstr "àlies recursiu: %s"
-#: git.c:479
+#: git.c:480
msgid "write failure on standard output"
msgstr "fallada d'escriptura en la sortida estàndard"
-#: git.c:481
+#: git.c:482
msgid "unknown write failure on standard output"
msgstr "fallada d'escriptura desconeguda en la sortida estàndard"
-#: git.c:483
+#: git.c:484
msgid "close failed on standard output"
msgstr "ha fallat el tancament en la sortida estàndard"
-#: git.c:835
+#: git.c:838
#, c-format
msgid "alias loop detected: expansion of '%s' does not terminate:%s"
msgstr "bucle d'àlies detectat expansió de «%s» no acaba:%s"
-#: git.c:885
+#: git.c:888
#, c-format
msgid "cannot handle %s as a builtin"
msgstr "no es pot gestionar %s com a integrat"
-#: git.c:898
+#: git.c:901
#, c-format
msgid ""
"usage: %s\n"
@@ -24562,12 +25153,12 @@ msgstr ""
"ús: %s\n"
"\n"
-#: git.c:918
+#: git.c:921
#, c-format
msgid "expansion of alias '%s' failed; '%s' is not a git command\n"
msgstr "ha fallat l'expansió de l'àlies «%s»; «%s» no és una ordre git\n"
-#: git.c:930
+#: git.c:933
#, c-format
msgid "failed to run command '%s': %s\n"
msgstr "s'ha produït un error en executar l'ordre «%s»: %s\n"
@@ -24723,143 +25314,144 @@ msgstr ""
" petició: %s\n"
" redirecció: %s"
-#: remote-curl.c:183
+#: remote-curl.c:184
#, c-format
msgid "invalid quoting in push-option value: '%s'"
msgstr "citació no vàlida en el valor de l'opció de pujada: «%s»"
-#: remote-curl.c:304
+#: remote-curl.c:308
#, c-format
msgid "%sinfo/refs not valid: is this a git repository?"
msgstr "%sinfo/refs no vàlides: és un repositori git?"
-#: remote-curl.c:405
+#: remote-curl.c:409
msgid "invalid server response; expected service, got flush packet"
msgstr ""
-"resposta del servidor no és vàlida; el servei esperat, ha rebut in paquet "
-"de neteja"
+"resposta del servidor no és vàlida; el servei esperat, ha rebut in paquet de"
+" neteja"
-#: remote-curl.c:436
+#: remote-curl.c:440
#, c-format
msgid "invalid server response; got '%s'"
msgstr "resposta del servidor no vàlida; s'ha obtingut «%s»"
-#: remote-curl.c:496
+#: remote-curl.c:500
#, c-format
msgid "repository '%s' not found"
msgstr "no s'ha trobat el repositori «%s»"
-#: remote-curl.c:500
+#: remote-curl.c:504
#, c-format
msgid "Authentication failed for '%s'"
msgstr "S'ha produït un error en autenticar per «%s»"
-#: remote-curl.c:504
+#: remote-curl.c:508
#, c-format
msgid "unable to access '%s' with http.pinnedPubkey configuration: %s"
msgstr "no es pot accedir a «%s» la configuració de http.pinnedPubkey :%s"
-#: remote-curl.c:508
+#: remote-curl.c:512
#, c-format
msgid "unable to access '%s': %s"
msgstr "no s'ha pogut accedir a «%s»: %s"
-#: remote-curl.c:514
+#: remote-curl.c:518
#, c-format
msgid "redirecting to %s"
msgstr "s'està redirigint a %s"
-#: remote-curl.c:645
+#: remote-curl.c:649
msgid "shouldn't have EOF when not gentle on EOF"
msgstr "no hauria de tenir EOF quan s'és lax amb els EOF"
-#: remote-curl.c:657
+#: remote-curl.c:661
msgid "remote server sent unexpected response end packet"
msgstr "el servidor remot ha enviat un paquet de final de resposta inesperat"
-#: remote-curl.c:726
+#: remote-curl.c:730
msgid "unable to rewind rpc post data - try increasing http.postBuffer"
msgstr ""
"no s'han pogut rebobinar les dades de publicació rpc - proveu d'augmentar "
"http.postBuffer"
-#: remote-curl.c:755
+#: remote-curl.c:759
#, c-format
msgid "remote-curl: bad line length character: %.4s"
msgstr "remote-curl: caràcter de longitud de línia erroni: %.4s"
-#: remote-curl.c:757
+#: remote-curl.c:761
msgid "remote-curl: unexpected response end packet"
msgstr "remote-curl: paquet final de resposta inesperat"
-#: remote-curl.c:833
+#: remote-curl.c:837
#, c-format
msgid "RPC failed; %s"
msgstr "RPC ha fallat; %s"
-#: remote-curl.c:873
+#: remote-curl.c:877
msgid "cannot handle pushes this big"
msgstr "no es pot gestionar pujades tan grans"
-#: remote-curl.c:986
+#: remote-curl.c:990
#, c-format
msgid "cannot deflate request; zlib deflate error %d"
msgstr "no es pot descomprimir la sol·licitud; error de deflate zlib %d"
-#: remote-curl.c:990
+#: remote-curl.c:994
#, c-format
msgid "cannot deflate request; zlib end error %d"
-msgstr "no es pot descomprimir la sol·licitud; error de finalització de zlib %d"
+msgstr ""
+"no es pot descomprimir la sol·licitud; error de finalització de zlib %d"
-#: remote-curl.c:1040
+#: remote-curl.c:1044
#, c-format
msgid "%d bytes of length header were received"
msgstr "s'han rebut %d bytes de longitud de capçalera"
-#: remote-curl.c:1042
+#: remote-curl.c:1046
#, c-format
msgid "%d bytes of body are still expected"
msgstr "encara s'esperen %d bytes del cos"
-#: remote-curl.c:1131
+#: remote-curl.c:1135
msgid "dumb http transport does not support shallow capabilities"
msgstr "el transport ximple http no admet capacitats superficials"
-#: remote-curl.c:1146
+#: remote-curl.c:1150
msgid "fetch failed."
msgstr "l'obtenció ha fallat."
-#: remote-curl.c:1192
+#: remote-curl.c:1198
msgid "cannot fetch by sha1 over smart http"
msgstr "no s'ha pogut obtenir per sha1 a través de l'http intel·ligent"
-#: remote-curl.c:1236 remote-curl.c:1242
+#: remote-curl.c:1242 remote-curl.c:1248
#, c-format
msgid "protocol error: expected sha/ref, got '%s'"
msgstr "error de protocol: s'esperava sha/ref, s'ha obtingut «%s»"
-#: remote-curl.c:1254 remote-curl.c:1372
+#: remote-curl.c:1260 remote-curl.c:1378
#, c-format
msgid "http transport does not support %s"
msgstr "El transport http no admet %s"
-#: remote-curl.c:1290
+#: remote-curl.c:1296
msgid "git-http-push failed"
msgstr "git-http-push ha fallat"
-#: remote-curl.c:1478
+#: remote-curl.c:1485
msgid "remote-curl: usage: git remote-curl <remote> [<url>]"
msgstr "remote-curl: ús: git remote-curl <remote> [<url>]"
-#: remote-curl.c:1510
+#: remote-curl.c:1517
msgid "remote-curl: error reading command stream from git"
msgstr "remote-curl: error en llegir el flux d'ordres del git"
-#: remote-curl.c:1517
+#: remote-curl.c:1524
msgid "remote-curl: fetch attempted without a local repo"
msgstr "remote-curl: s'ha intentat l'obtenció sense un dipòsit local"
-#: remote-curl.c:1558
+#: remote-curl.c:1565
#, c-format
msgid "remote-curl: unknown command '%s' from git"
msgstr "remote-curl: ordre «%s» desconeguda del git"
@@ -24872,125 +25464,123 @@ msgstr "cal un directori de treball"
msgid "could not find enlistment root"
msgstr "no s'ha pogut trobar un arrel d'allistament"
-#: contrib/scalar/scalar.c:89 contrib/scalar/scalar.c:351
-#: contrib/scalar/scalar.c:436 contrib/scalar/scalar.c:579
+#: contrib/scalar/scalar.c:89 contrib/scalar/scalar.c:350
+#: contrib/scalar/scalar.c:435 contrib/scalar/scalar.c:578
#, c-format
msgid "could not switch to '%s'"
msgstr "no s'ha pogut commutar a «%s»"
-#: contrib/scalar/scalar.c:180
+#: contrib/scalar/scalar.c:179
#, c-format
msgid "could not configure %s=%s"
msgstr "no s'ha pogut configurar %s=%s"
-#: contrib/scalar/scalar.c:198
+#: contrib/scalar/scalar.c:197
msgid "could not configure log.excludeDecoration"
msgstr "no s'ha pogut configurar log.excludeDecoration"
-#: contrib/scalar/scalar.c:219
+#: contrib/scalar/scalar.c:218
msgid "Scalar enlistments require a worktree"
msgstr "Els allistaments escalars requereixen un arbre de treball"
-#: contrib/scalar/scalar.c:311
+#: contrib/scalar/scalar.c:310
#, c-format
msgid "remote HEAD is not a branch: '%.*s'"
msgstr "el HEAD remot no és una branca: «%.*s»"
-#: contrib/scalar/scalar.c:317
+#: contrib/scalar/scalar.c:316
msgid "failed to get default branch name from remote; using local default"
msgstr ""
-"no s'ha pogut obtenir el nom de la branca per defecte del remot; s'usa "
-"ela predeterminada localment"
+"no s'ha pogut obtenir el nom de la branca per defecte del remot; s'usa ela "
+"predeterminada localment"
-#: contrib/scalar/scalar.c:330
+#: contrib/scalar/scalar.c:329
msgid "failed to get default branch name"
-msgstr ""
-"s'ha produït un error en obtenir el nom de branca predeterminada"
+msgstr "s'ha produït un error en obtenir el nom de branca predeterminada"
-#: contrib/scalar/scalar.c:341
+#: contrib/scalar/scalar.c:340
msgid "failed to unregister repository"
msgstr "s'ha produït un error en desregistrar el repositori"
-#: contrib/scalar/scalar.c:356
+#: contrib/scalar/scalar.c:355
msgid "failed to delete enlistment directory"
msgstr "s'ha produït un error en suprimir l'allistament del directori"
-#: contrib/scalar/scalar.c:376
+#: contrib/scalar/scalar.c:375
msgid "branch to checkout after clone"
msgstr "branca a agafar després de clonar"
-#: contrib/scalar/scalar.c:378
+#: contrib/scalar/scalar.c:377
msgid "when cloning, create full working directory"
msgstr "quan es clona, crear un directori de treball complet"
-#: contrib/scalar/scalar.c:380
+#: contrib/scalar/scalar.c:379
msgid "only download metadata for the branch that will be checked out"
msgstr "només baixa les metadades per a la branca que s'agafarà"
-#: contrib/scalar/scalar.c:385
+#: contrib/scalar/scalar.c:384
msgid "scalar clone [<options>] [--] <repo> [<dir>]"
msgstr "scalar clone [<opcions>] [--] <repo> [<dir>]"
-#: contrib/scalar/scalar.c:410
+#: contrib/scalar/scalar.c:409
#, c-format
msgid "cannot deduce worktree name from '%s'"
msgstr "no es pot deduir el nom de l'arbre de treball de «%s»"
-#: contrib/scalar/scalar.c:419
+#: contrib/scalar/scalar.c:418
#, c-format
msgid "directory '%s' exists already"
msgstr "el directori «%s» ja existeix"
-#: contrib/scalar/scalar.c:446
+#: contrib/scalar/scalar.c:445
#, c-format
msgid "failed to get default branch for '%s'"
-msgstr ""
-"s'ha produït un error en obtenir la branca per defecte per a «%s»"
+msgstr "s'ha produït un error en obtenir la branca per defecte per a «%s»"
-#: contrib/scalar/scalar.c:457
+#: contrib/scalar/scalar.c:456
#, c-format
msgid "could not configure remote in '%s'"
msgstr "no s'ha pogut configurar el remot a «%s»"
-#: contrib/scalar/scalar.c:466
+#: contrib/scalar/scalar.c:465
#, c-format
msgid "could not configure '%s'"
msgstr "no s'ha pogut configurar «%s»"
-#: contrib/scalar/scalar.c:469
+#: contrib/scalar/scalar.c:468
msgid "partial clone failed; attempting full clone"
msgstr "ha fallat la clonació parcial; s'està intentant la clonació completa"
-#: contrib/scalar/scalar.c:473
+#: contrib/scalar/scalar.c:472
msgid "could not configure for full clone"
msgstr "no s'ha pogut configurar per a una clonació completa"
-#: contrib/scalar/scalar.c:505
+#: contrib/scalar/scalar.c:504
msgid "`scalar list` does not take arguments"
msgstr "«scalar list» no accepta arguments"
-#: contrib/scalar/scalar.c:518
+#: contrib/scalar/scalar.c:517
msgid "scalar register [<enlistment>]"
msgstr "scalar register [<enlistment>]"
-#: contrib/scalar/scalar.c:545
+#: contrib/scalar/scalar.c:544
msgid "reconfigure all registered enlistments"
msgstr "reconfigura tots els allistaments registrats"
-#: contrib/scalar/scalar.c:549
+#: contrib/scalar/scalar.c:548
msgid "scalar reconfigure [--all | <enlistment>]"
msgstr "scalar reconfigure [--all | <enlistment>]"
-#: contrib/scalar/scalar.c:567
+#: contrib/scalar/scalar.c:566
msgid "--all or <enlistment>, but not both"
msgstr "--all o <enlistment>, però no ambdós"
-#: contrib/scalar/scalar.c:582
+#: contrib/scalar/scalar.c:581
#, c-format
msgid "git repository gone in '%s'"
msgstr "no existeix un repositori de git a: «%s»"
-#: contrib/scalar/scalar.c:622
+#: contrib/scalar/scalar.c:621
msgid ""
"scalar run <task> [<enlistment>]\n"
"Tasks:\n"
@@ -24998,42 +25588,55 @@ msgstr ""
"scalar run <task> {<enlistment>]\n"
"Tasques:\n"
-#: contrib/scalar/scalar.c:640
+#: contrib/scalar/scalar.c:639
#, c-format
msgid "no such task: '%s'"
msgstr "no existeix la tasca: «%s»"
-#: contrib/scalar/scalar.c:690
+#: contrib/scalar/scalar.c:689
msgid "scalar unregister [<enlistment>]"
msgstr "scalar unregister [<enlistment>]"
-#: contrib/scalar/scalar.c:737
+#: contrib/scalar/scalar.c:736
msgid "scalar delete <enlistment>"
msgstr "supressió de l'escalar <enlistment>"
-#: contrib/scalar/scalar.c:752
+#: contrib/scalar/scalar.c:751
msgid "refusing to delete current working directory"
msgstr "s'ha rebutjat suprimir el directori de treball actual"
-#: contrib/scalar/scalar.c:767
+#: contrib/scalar/scalar.c:766
msgid "include Git version"
msgstr "inclou la versió del Git"
-#: contrib/scalar/scalar.c:769
+#: contrib/scalar/scalar.c:768
msgid "include Git's build options"
msgstr "inclou les opcions de construcció del Git"
-#: contrib/scalar/scalar.c:773
+#: contrib/scalar/scalar.c:772
msgid "scalar verbose [-v | --verbose] [--build-options]"
msgstr "scalar verbose [-v | --verbose] [--build-options]"
+#: contrib/scalar/scalar.c:813
+msgid "-C requires a <directory>"
+msgstr "-C requereix un <directory>"
+
+#: contrib/scalar/scalar.c:815
+#, c-format
+msgid "could not change to '%s'"
+msgstr "no s'ha pogut canviar a «%s»"
+
#: contrib/scalar/scalar.c:821
+msgid "-c requires a <key>=<value> argument"
+msgstr "-c requereix un argument <key>=<value>"
+
+#: contrib/scalar/scalar.c:839
msgid ""
-"scalar <command> [<options>]\n"
+"scalar [-C <directory>] [-c <key>=<value>] <command> [<options>]\n"
"\n"
"Commands:\n"
msgstr ""
-"scalar <ordre> [<opcions>]\n"
+"scalar [-C <directory>] [-c <key>=<value>] <command> [<options>]\n"
"\n"
"Ordres:\n"
@@ -25045,43 +25648,43 @@ msgstr "no hi ha informació disponible del compilador\n"
msgid "no libc information available\n"
msgstr "no hi ha informació disponible de libc\n"
-#: list-objects-filter-options.h:94
+#: list-objects-filter-options.h:126
msgid "args"
msgstr "arguments"
-#: list-objects-filter-options.h:95
+#: list-objects-filter-options.h:127
msgid "object filtering"
msgstr "filtratge d'objecte"
-#: parse-options.h:183
+#: parse-options.h:188
msgid "expiry-date"
msgstr "data-de-caducitat"
-#: parse-options.h:197
+#: parse-options.h:202
msgid "no-op (backward compatibility)"
msgstr "operació nul·la (per a compatibilitat amb versions anteriors)"
-#: parse-options.h:310
+#: parse-options.h:341
msgid "be more verbose"
msgstr "sigues més detallat"
-#: parse-options.h:312
+#: parse-options.h:343
msgid "be more quiet"
msgstr "sigues més discret"
-#: parse-options.h:318
+#: parse-options.h:349
msgid "use <n> digits to display object names"
msgstr "usa <n> xifres per a mostrar els noms d'objecte"
-#: parse-options.h:337
+#: parse-options.h:368
msgid "how to strip spaces and #comments from message"
msgstr "com suprimir els espais i #comentaris del missatge"
-#: parse-options.h:338
+#: parse-options.h:369
msgid "read pathspec from file"
msgstr "llegeix l'especificació del camí del fitxer"
-#: parse-options.h:339
+#: parse-options.h:370
msgid ""
"with --pathspec-from-file, pathspec elements are separated with NUL "
"character"
@@ -25344,459 +25947,465 @@ msgid "Display help information about Git"
msgstr "Mostra informació d'ajuda del Git"
#: command-list.h:108
+#, fuzzy
+msgid "Run git hooks"
+msgstr "Executa els ganxos del git"
+
+#: command-list.h:109
msgid "Server side implementation of Git over HTTP"
msgstr "Implementació al servidor del Git sobre HTTP"
-#: command-list.h:109
+#: command-list.h:110
msgid "Download from a remote Git repository via HTTP"
msgstr "Baixa des d'un repositori Git remot via HTTP"
-#: command-list.h:110
+#: command-list.h:111
msgid "Push objects over HTTP/DAV to another repository"
msgstr "Pujar objectes sobre HTTP/DAV a un altre repositori"
-#: command-list.h:111
+#: command-list.h:112
msgid "Send a collection of patches from stdin to an IMAP folder"
msgstr ""
"Envia una col·lecció de pedaços des de l'entrada estàndard a una carpeta "
"IMAP"
-#: command-list.h:112
+#: command-list.h:113
msgid "Build pack index file for an existing packed archive"
msgstr ""
"Construeix el fitxer d'índex del paquet per a un arxiu empaquetat existent"
-#: command-list.h:113
+#: command-list.h:114
msgid "Create an empty Git repository or reinitialize an existing one"
msgstr "Crea un repositori de Git buit o reinicialitza un existent"
-#: command-list.h:114
+#: command-list.h:115
msgid "Instantly browse your working repository in gitweb"
msgstr "Navegueu instantàniament pel vostre repositori de treball a gitweb"
-#: command-list.h:115
+#: command-list.h:116
msgid "Add or parse structured information in commit messages"
msgstr ""
"Afegeix o analitza la informació estructurada en els missatges de comissió"
-#: command-list.h:116
+#: command-list.h:117
msgid "Show commit logs"
msgstr "Mostra els registres de comissió"
-#: command-list.h:117
+#: command-list.h:118
msgid "Show information about files in the index and the working tree"
msgstr "Mostra informació sobre els fitxers a l'índex i a l'arbre de treball"
-#: command-list.h:118
+#: command-list.h:119
msgid "List references in a remote repository"
msgstr "Mostra les referències d'un repositori remot"
-#: command-list.h:119
+#: command-list.h:120
msgid "List the contents of a tree object"
msgstr "Mostra els continguts d'un objecte de l'arbre"
-#: command-list.h:120
+#: command-list.h:121
msgid "Extracts patch and authorship from a single e-mail message"
msgstr "Extreu el pedaç i l'autoria d'un sol missatge de correu electrònic"
-#: command-list.h:121
+#: command-list.h:122
msgid "Simple UNIX mbox splitter program"
msgstr "Programa de divisió mbox simple per a UNIX"
-#: command-list.h:122
+#: command-list.h:123
msgid "Run tasks to optimize Git repository data"
msgstr "Executa tasques per a optimitzar les dades del repositori Git"
-#: command-list.h:123
+#: command-list.h:124
msgid "Join two or more development histories together"
msgstr "Uneix dues o més històries de desenvolupament"
-#: command-list.h:124
+#: command-list.h:125
msgid "Find as good common ancestors as possible for a merge"
msgstr "Troba els millors avantpassats comuns possibles per a una fusió"
-#: command-list.h:125
+#: command-list.h:126
msgid "Run a three-way file merge"
msgstr "Executa una fusió de fitxers de tres vies"
-#: command-list.h:126
+#: command-list.h:127
msgid "Run a merge for files needing merging"
msgstr "Executa una fusió per als fitxers que cal fusionar"
-#: command-list.h:127
+#: command-list.h:128
msgid "The standard helper program to use with git-merge-index"
msgstr "El programa d'ajuda estàndard a utilitzar amb git-merge-index"
-#: command-list.h:128
+#: command-list.h:129
msgid "Show three-way merge without touching index"
msgstr "Mostra la fusió de tres vies sense tocar l'índex"
-#: command-list.h:129
+#: command-list.h:130
msgid "Run merge conflict resolution tools to resolve merge conflicts"
msgstr ""
"Executa eines de resolució de conflictes per a resoldre conflictes de fusió"
-#: command-list.h:130
+#: command-list.h:131
msgid "Creates a tag object with extra validation"
msgstr "Crea un objecte etiqueta amb validació addicional"
-#: command-list.h:131
+#: command-list.h:132
msgid "Build a tree-object from ls-tree formatted text"
msgstr "Construeix un objecte en arbre a partir de text formatat amb ls-tree"
-#: command-list.h:132
+#: command-list.h:133
msgid "Write and verify multi-pack-indexes"
msgstr "Escriu i verifica els índexs dels paquets multipaquet"
-#: command-list.h:133
+#: command-list.h:134
msgid "Move or rename a file, a directory, or a symlink"
msgstr "Mou o canvia de nom a un fitxer, directori o enllaç simbòlic"
-#: command-list.h:134
+#: command-list.h:135
msgid "Find symbolic names for given revs"
msgstr "Cerca noms simbòlics per a les revisions donades"
-#: command-list.h:135
+#: command-list.h:136
msgid "Add or inspect object notes"
msgstr "Afegeix o inspecciona notes de l'objecte"
-#: command-list.h:136
+#: command-list.h:137
msgid "Import from and submit to Perforce repositories"
msgstr "Importa des de i envia a repositoris Perforce"
-#: command-list.h:137
+#: command-list.h:138
msgid "Create a packed archive of objects"
msgstr "Crea un arxiu empaquetat d'objectes"
-#: command-list.h:138
+#: command-list.h:139
msgid "Find redundant pack files"
msgstr "Troba fitxers empaquetats redundants"
-#: command-list.h:139
+#: command-list.h:140
msgid "Pack heads and tags for efficient repository access"
msgstr ""
"Empaqueta els caps i les etiquetes per a un accés eficient al repositori"
-#: command-list.h:140
+#: command-list.h:141
msgid "Compute unique ID for a patch"
msgstr "Calcula un identificador únic per a cada pedaç"
-#: command-list.h:141
+#: command-list.h:142
msgid "Prune all unreachable objects from the object database"
msgstr "Poda tots els objectes no accessibles de la base de dades d'objectes"
-#: command-list.h:142
+#: command-list.h:143
msgid "Remove extra objects that are already in pack files"
msgstr "Elimina els objectes extres que ja estan en fitxers empaquetats"
-#: command-list.h:143
+#: command-list.h:144
msgid "Fetch from and integrate with another repository or a local branch"
msgstr "Obtén i integra amb un altre repositori o una branca local"
-#: command-list.h:144
+#: command-list.h:145
msgid "Update remote refs along with associated objects"
msgstr ""
"Actualitza les referències remotes juntament amb els objectes associats"
-#: command-list.h:145
+#: command-list.h:146
msgid "Applies a quilt patchset onto the current branch"
msgstr "Aplica un conjunt de pedaços a la branca actual"
-#: command-list.h:146
+#: command-list.h:147
msgid "Compare two commit ranges (e.g. two versions of a branch)"
msgstr "Compara dos rangs de comissions (p. ex. dues versions d'una branca)"
-#: command-list.h:147
+#: command-list.h:148
msgid "Reads tree information into the index"
msgstr "Llegeix la informació de l'arbre a l'índex"
-#: command-list.h:148
+#: command-list.h:149
msgid "Reapply commits on top of another base tip"
msgstr "Torna a aplicar les comissions sobre un altre punt de basament"
-#: command-list.h:149
+#: command-list.h:150
msgid "Receive what is pushed into the repository"
msgstr "Rep el que s'envia al repositori"
-#: command-list.h:150
+#: command-list.h:151
msgid "Manage reflog information"
msgstr "Gestiona la informació del registre de referències"
-#: command-list.h:151
+#: command-list.h:152
msgid "Manage set of tracked repositories"
msgstr "Gestiona el conjunt de repositoris seguits"
-#: command-list.h:152
+#: command-list.h:153
msgid "Pack unpacked objects in a repository"
msgstr "Empaqueta els objectes desempaquetats en un repositori"
-#: command-list.h:153
+#: command-list.h:154
msgid "Create, list, delete refs to replace objects"
msgstr "Crea, llista i esborra referències per a substituir objectes"
-#: command-list.h:154
+#: command-list.h:155
msgid "Generates a summary of pending changes"
msgstr "Genera un resum dels canvis pendents"
-#: command-list.h:155
+#: command-list.h:156
msgid "Reuse recorded resolution of conflicted merges"
msgstr "Reutilitza la resolució registrada dels conflictes de fusió"
-#: command-list.h:156
+#: command-list.h:157
msgid "Reset current HEAD to the specified state"
msgstr "Restableix la HEAD actual a l'estat especificat"
-#: command-list.h:157
+#: command-list.h:158
msgid "Restore working tree files"
msgstr "Restaura els fitxers de l'arbre de treball"
-#: command-list.h:158
+#: command-list.h:159
msgid "Lists commit objects in reverse chronological order"
msgstr "Mostra les comissions en ordre topològic invers"
-#: command-list.h:159
+#: command-list.h:160
msgid "Pick out and massage parameters"
msgstr "Trieu i personalitzeu els paràmetres"
-#: command-list.h:160
+#: command-list.h:161
msgid "Revert some existing commits"
msgstr "Reverteix comissions existents"
-#: command-list.h:161
+#: command-list.h:162
msgid "Remove files from the working tree and from the index"
msgstr "Elimina fitxers de l'arbre de treball i de l'índex"
-#: command-list.h:162
+#: command-list.h:163
msgid "Send a collection of patches as emails"
msgstr "Envia una col·lecció de pedaços com a correus electrònics"
-#: command-list.h:163
+#: command-list.h:164
msgid "Push objects over Git protocol to another repository"
msgstr "Puja objectes sobre el protocol Git a un altre repositori"
-#: command-list.h:164
+#: command-list.h:165
msgid "Git's i18n setup code for shell scripts"
msgstr ""
"Codi de configuració i18n del Git per als scripts de l'intèrpret d'ordres"
-#: command-list.h:165
+#: command-list.h:166
msgid "Common Git shell script setup code"
msgstr "Codi de scripts de configuració comuns pel Git shell"
-#: command-list.h:166
+#: command-list.h:167
msgid "Restricted login shell for Git-only SSH access"
msgstr "Intèrpret d'ordres d'entrada restringit només per a accés SSH al Git"
-#: command-list.h:167
+#: command-list.h:168
msgid "Summarize 'git log' output"
msgstr "Resumeix la sortida «git log»"
-#: command-list.h:168
+#: command-list.h:169
msgid "Show various types of objects"
msgstr "Mostra diversos tipus d'objectes"
-#: command-list.h:169
+#: command-list.h:170
msgid "Show branches and their commits"
msgstr "Mostra les branques i les seves comissions"
-#: command-list.h:170
+#: command-list.h:171
msgid "Show packed archive index"
msgstr "Mostra l'índex d'arxius empaquetat"
-#: command-list.h:171
+#: command-list.h:172
msgid "List references in a local repository"
msgstr "Llista les referències en un repositori local"
-#: command-list.h:172
-msgid "Initialize and modify the sparse-checkout"
-msgstr "Inicialitza i modifica el «sparse-checkout»"
-
#: command-list.h:173
+#, fuzzy
+msgid "Reduce your working tree to a subset of tracked files"
+msgstr "Redueix l'arbre de treball a un subconjunt de fitxers seguits"
+
+#: command-list.h:174
msgid "Add file contents to the staging area"
msgstr "Afegeix el contingut del fitxer a l'àrea de «staging»"
-#: command-list.h:174
+#: command-list.h:175
msgid "Stash the changes in a dirty working directory away"
msgstr "Fes «stash» dels canvis en un directori de treball brut"
-#: command-list.h:175
+#: command-list.h:176
msgid "Show the working tree status"
msgstr "Mostra l'estat de l'arbre de treball"
-#: command-list.h:176
+#: command-list.h:177
msgid "Remove unnecessary whitespace"
msgstr "Elimina l'espai en blanc innecessari"
-#: command-list.h:177
+#: command-list.h:178
msgid "Initialize, update or inspect submodules"
msgstr "Inicialitza, actualitza o inspecciona submòduls"
-#: command-list.h:178
+#: command-list.h:179
msgid "Bidirectional operation between a Subversion repository and Git"
msgstr "Operació bidireccional entre un repositori a Subversion i Git"
-#: command-list.h:179
+#: command-list.h:180
msgid "Switch branches"
msgstr "Commuta entre branques"
-#: command-list.h:180
+#: command-list.h:181
msgid "Read, modify and delete symbolic refs"
msgstr "Llegeix, modifica i suprimeix referències simbòliques"
-#: command-list.h:181
+#: command-list.h:182
msgid "Create, list, delete or verify a tag object signed with GPG"
msgstr ""
"Crea, llista, suprimeix o verifica un objecte d'etiqueta signat amb GPG"
-#: command-list.h:182
+#: command-list.h:183
msgid "Creates a temporary file with a blob's contents"
msgstr "Crea un fitxer temporal amb els continguts dels blobs"
-#: command-list.h:183
+#: command-list.h:184
msgid "Unpack objects from a packed archive"
msgstr "Desempaqueta objectes d'un arxiu empaquetat"
-#: command-list.h:184
+#: command-list.h:185
msgid "Register file contents in the working tree to the index"
msgstr "Registra els continguts del fitxer en l'arbre de treball a l'índex"
-#: command-list.h:185
+#: command-list.h:186
msgid "Update the object name stored in a ref safely"
msgstr ""
"Actualitza el nom de l'objecte emmagatzemat en una referència de forma "
"segura"
-#: command-list.h:186
+#: command-list.h:187
msgid "Update auxiliary info file to help dumb servers"
msgstr ""
"Actualitza el fitxer d'informació auxiliar per a ajudar als servidors "
"ximples"
-#: command-list.h:187
+#: command-list.h:188
msgid "Send archive back to git-archive"
msgstr "Envia l'arxiu de tornada al git-archive"
-#: command-list.h:188
+#: command-list.h:189
msgid "Send objects packed back to git-fetch-pack"
msgstr "Envia els objectes empaquetats de tornada al git-fetch-pack"
-#: command-list.h:189
+#: command-list.h:190
msgid "Show a Git logical variable"
msgstr "Mostra una variable lògica del Git"
-#: command-list.h:190
+#: command-list.h:191
msgid "Check the GPG signature of commits"
msgstr "Verifica la signatura GPG de les comissions"
-#: command-list.h:191
+#: command-list.h:192
msgid "Validate packed Git archive files"
msgstr "Valida els fitxers d'arxius Git empaquetats"
-#: command-list.h:192
+#: command-list.h:193
msgid "Check the GPG signature of tags"
msgstr "Verifica la signatura GPG de les etiquetes"
-#: command-list.h:193
+#: command-list.h:194
msgid "Show logs with difference each commit introduces"
msgstr "Mostra registres amb la diferència introduïda per cada comissió"
-#: command-list.h:194
+#: command-list.h:195
msgid "Manage multiple working trees"
msgstr "Gestiona múltiples arbres de treball"
-#: command-list.h:195
+#: command-list.h:196
msgid "Create a tree object from the current index"
msgstr "Crea un objecte arbre des de l'índex actual"
-#: command-list.h:196
+#: command-list.h:197
msgid "Defining attributes per path"
msgstr "La definició d'atributs per camí"
-#: command-list.h:197
+#: command-list.h:198
msgid "Git command-line interface and conventions"
msgstr "Interfície i convencions de la línia d'ordres del Git"
-#: command-list.h:198
+#: command-list.h:199
msgid "A Git core tutorial for developers"
msgstr "Un tutorial bàsic del Git per a desenvolupadors"
-#: command-list.h:199
+#: command-list.h:200
msgid "Providing usernames and passwords to Git"
msgstr "Proporcionar noms d'usuari i contrasenyes a Git"
-#: command-list.h:200
+#: command-list.h:201
msgid "Git for CVS users"
msgstr "Git per a usuaris del CVS"
-#: command-list.h:201
+#: command-list.h:202
msgid "Tweaking diff output"
msgstr "Ajustament de la sortida de diferències"
-#: command-list.h:202
+#: command-list.h:203
msgid "A useful minimum set of commands for Everyday Git"
msgstr "Un conjunt mínim útil d'ordres diàries del Git"
-#: command-list.h:203
+#: command-list.h:204
msgid "Frequently asked questions about using Git"
msgstr "Preguntes freqüents sobre l'ús del Git"
-#: command-list.h:204
+#: command-list.h:205
msgid "A Git Glossary"
msgstr "Un glossari de Git"
-#: command-list.h:205
+#: command-list.h:206
msgid "Hooks used by Git"
msgstr "Lligams utilitzats pel Git"
-#: command-list.h:206
+#: command-list.h:207
msgid "Specifies intentionally untracked files to ignore"
msgstr "Especifica els fitxers intencionalment no seguits a ignorar"
-#: command-list.h:207
+#: command-list.h:208
msgid "The Git repository browser"
msgstr "El navegador de repositoris Git"
-#: command-list.h:208
+#: command-list.h:209
msgid "Map author/committer names and/or E-Mail addresses"
msgstr "Assigna noms d'autor i comitent i/o adreces de correu electrònic"
-#: command-list.h:209
+#: command-list.h:210
msgid "Defining submodule properties"
msgstr "La definició de les propietats de submòduls"
-#: command-list.h:210
+#: command-list.h:211
msgid "Git namespaces"
msgstr "Espais de noms del Git"
-#: command-list.h:211
+#: command-list.h:212
msgid "Helper programs to interact with remote repositories"
msgstr "Programes d'ajuda per a interactuar amb repositoris remots"
-#: command-list.h:212
+#: command-list.h:213
msgid "Git Repository Layout"
msgstr "Disposició del repositori del Git"
-#: command-list.h:213
+#: command-list.h:214
msgid "Specifying revisions and ranges for Git"
msgstr "L'especificació de revisions i rangs per al Git"
-#: command-list.h:214
+#: command-list.h:215
msgid "Mounting one repository inside another"
msgstr "Muntant un repositori dins un altre"
-#: command-list.h:215
+#: command-list.h:216
msgid "A tutorial introduction to Git"
msgstr "Un tutorial d'introducció al Git"
-#: command-list.h:216
+#: command-list.h:217
msgid "A tutorial introduction to Git: part two"
msgstr "Un tutorial d'introducció al Git: segona part"
-#: command-list.h:217
+#: command-list.h:218
msgid "Git web interface (web frontend to Git repositories)"
msgstr "Interfície web del Git (interfície web pels repositoris Git)"
-#: command-list.h:218
+#: command-list.h:219
msgid "An overview of recommended workflows with Git"
msgstr "Una visió de conjunt de fluxos de treball recomanats amb Git"
@@ -25805,8 +26414,8 @@ msgid ""
"Error: Your local changes to the following files would be overwritten by "
"merge"
msgstr ""
-"Error: Els vostres canvis locals als fitxers següents se sobreescriurien per "
-"a fusionar"
+"Error: Els vostres canvis locals als fitxers següents se sobreescriurien per"
+" a fusionar"
#: git-merge-octopus.sh:61
msgid "Automated merge did not work."
@@ -25841,74 +26450,47 @@ msgid "Simple merge did not work, trying automatic merge."
msgstr ""
"La fusió simple no ha funcionat, s'està intentant una fusió automàtica."
-#: git-submodule.sh:401
-#, sh-format
-msgid "Unable to find current revision in submodule path '$displaypath'"
-msgstr ""
-"No s'ha pogut trobar la revisió actual en el camí de submòdul «$displaypath»"
-
-#: git-submodule.sh:411
-#, sh-format
-msgid "Unable to fetch in submodule path '$sm_path'"
-msgstr "No s'ha pogut obtenir en el camí de submòdul «$sm_path»"
-
-#: git-submodule.sh:416
-#, sh-format
-msgid ""
-"Unable to find current ${remote_name}/${branch} revision in submodule path "
-"'$sm_path'"
-msgstr ""
-"No s'ha pogut trobar la revisió actual de ${remote_name}/${branch} en el "
-"camí de submòdul «$sm_path»"
-
-#: git-submodule.sh:464
-#, sh-format
-msgid "Failed to recurse into submodule path '$displaypath'"
-msgstr ""
-"S'ha produït un error en recórrer recursivament dins del camí de submòdul "
-"«$displaypath»"
-
#: git-sh-setup.sh:89 git-sh-setup.sh:94
#, sh-format
msgid "usage: $dashless $USAGE"
msgstr "ús: $dashless $USAGE"
-#: git-sh-setup.sh:183
+#: git-sh-setup.sh:182
#, sh-format
msgid "Cannot chdir to $cdup, the toplevel of the working tree"
msgstr ""
"No es pot canviar de directori a $cdup, el nivell superior de l'arbre de "
"treball"
-#: git-sh-setup.sh:192 git-sh-setup.sh:199
+#: git-sh-setup.sh:191 git-sh-setup.sh:198
#, sh-format
msgid "fatal: $program_name cannot be used without a working tree."
msgstr "fatal: no es pot usar $program_name sense un arbre de treball."
-#: git-sh-setup.sh:213
+#: git-sh-setup.sh:212
msgid "Cannot rewrite branches: You have unstaged changes."
msgstr "No es poden reescriure branques: Teniu canvis «unstaged»."
-#: git-sh-setup.sh:216
+#: git-sh-setup.sh:215
#, sh-format
msgid "Cannot $action: You have unstaged changes."
msgstr "No es pot $action: Teniu canvis «unstaged»."
-#: git-sh-setup.sh:227
+#: git-sh-setup.sh:226
#, sh-format
msgid "Cannot $action: Your index contains uncommitted changes."
msgstr "No es pot $action: El vostre índex conté canvis sense cometre."
-#: git-sh-setup.sh:229
+#: git-sh-setup.sh:228
msgid "Additionally, your index contains uncommitted changes."
msgstr "Addicionalment, el vostre índex conté canvis sense cometre."
-#: git-sh-setup.sh:349
+#: git-sh-setup.sh:348
msgid "You need to run this command from the toplevel of the working tree."
msgstr ""
"Heu d'executar aquesta ordre des del nivell superior de l'arbre de treball."
-#: git-sh-setup.sh:354
+#: git-sh-setup.sh:353
msgid "Unable to determine absolute path of git directory"
msgstr "No s'ha pogut determinar el camí absolut del directori de git"
@@ -26589,23 +27171,17 @@ msgstr "no es pot enviar el missatge en 7 bits"
msgid "invalid transfer encoding"
msgstr "codificació de transferència no vàlida"
-#: git-send-email.perl:2095
-#, perl-format
-msgid ""
-"fatal: %s: rejected by sendemail-validate hook\n"
-"%s\n"
-"warning: no patches were sent\n"
-msgstr ""
-"fatal: %s: rebutjat pel lligam sendemail-validate\n"
-"%s\n"
-"avís: no s'ha enviat cap pedaç\n"
+#: git-send-email.perl:2099
+#, perl-format, fuzzy
+msgid "fatal: %s: rejected by %s hook\n"
+msgstr "fatal: percentatges: rebutjats per cents fatal"
-#: git-send-email.perl:2105 git-send-email.perl:2158 git-send-email.perl:2168
+#: git-send-email.perl:2111 git-send-email.perl:2164 git-send-email.perl:2174
#, perl-format
msgid "unable to open %s: %s\n"
msgstr "no s'ha pogut obrir %s: %s\n"
-#: git-send-email.perl:2108
+#: git-send-email.perl:2114
#, perl-format
msgid ""
"fatal: %s:%d is longer than 998 characters\n"
@@ -26614,13 +27190,285 @@ msgstr ""
"fatal: %s:%d té més de 998 caràcters\n"
"avís: no s'ha enviat cap pedaç\n"
-#: git-send-email.perl:2126
+#: git-send-email.perl:2132
#, perl-format
msgid "Skipping %s with backup suffix '%s'.\n"
msgstr "S'està ometent %s amb el sufix de còpia de seguretat «%s».\n"
#. TRANSLATORS: please keep "[y|N]" as is.
-#: git-send-email.perl:2130
+#: git-send-email.perl:2136
#, perl-format
msgid "Do you really want to send %s? [y|N]: "
msgstr "Esteu segur que voleu enviar %s? [y|N]: "
+
+#~ msgid "git archive --list"
+#~ msgstr "git archive --list"
+
+#, c-format
+#~ msgid "unknown value for --diff-merges: %s"
+#~ msgstr "valor desconegut per a --diff-merges: %s"
+
+#, c-format
+#~ msgid "invalid value '%s' for lsrefs.unborn"
+#~ msgstr "valor «%s» no vàlid per a «lsrefs.unborn»"
+
+#~ msgid "backend for `git stash -p`"
+#~ msgstr "rerefons per a «git stash -p»"
+
+#, c-format
+#~ msgid "Invalid value for --empty: %s"
+#~ msgstr "Valor no vàlid per a --empty: %s"
+
+#, c-format
+#~ msgid "Invalid value for --patch-format: %s"
+#~ msgstr "Valor no vàlid per a --patch-format: %s"
+
+#, c-format
+#~ msgid "Invalid value for --show-current-patch: %s"
+#~ msgstr "Valor no vàlid per --show-current-patch: %s"
+
+#~ msgid ""
+#~ "git bisect--helper --bisect-terms [--term-good | --term-old | --term-bad | "
+#~ "--term-new]"
+#~ msgstr ""
+#~ "git bisect--helper --bisect-terms [--term-good | --term-old | --term-bad | "
+#~ "--term-new]"
+
+#~ msgid "git bisect--helper --bisect-next"
+#~ msgstr "git bisect--helper --bisect-next"
+
+#~ msgid "git bisect--helper --bisect-visualize"
+#~ msgstr "git bisect--helper --bisect-visualize"
+
+#, c-format
+#~ msgid "invalid color '%s' in color.blame.repeatedLines"
+#~ msgstr "color «%s» no vàlid en «color.blame.repeatedLines»"
+
+#~ msgid "invalid value for blame.coloring"
+#~ msgstr "valor no vàlid per a «blame.coloring»"
+
+#~ msgid ""
+#~ "git cat-file (-t [--allow-unknown-type] | -s [--allow-unknown-type] | -e | "
+#~ "-p | <type> | --textconv | --filters) [--path=<path>] <object>"
+#~ msgstr ""
+#~ "git cat-file (-t [--allow-unknown-type] | -s [--allow-unknown-type] | -e | "
+#~ "-p | <tipus> | --textconv | --filters [--path=<camí>]) <objecte>"
+
+#~ msgid "show object type"
+#~ msgstr "mostra el tipus de l'objecte"
+
+#~ msgid "exit with zero when there's no error"
+#~ msgstr "surt amb zero quan no hi ha error"
+
+#~ msgid "show info and content of objects fed from the standard input"
+#~ msgstr ""
+#~ "mostra la informació i contingut dels objectes rebuts de l'entrada estàndard"
+
+#~ msgid "show info about objects fed from the standard input"
+#~ msgstr "mostra informació sobre els objectes rebuts de l'entrada estàndard"
+
+#~ msgid "follow in-tree symlinks (used with --batch or --batch-check)"
+#~ msgstr ""
+#~ "segueix els enllaços simbòlics en l'arbre (s'usa amb --batch o --batch-"
+#~ "check)"
+
+#~ msgid "show all objects with --batch or --batch-check"
+#~ msgstr "mostra tots els objectes amb --batch o --batch-check"
+
+#~ msgid "do not order --batch-all-objects output"
+#~ msgstr "no ordenar la sortida de --batch-all-objects"
+
+#~ msgid "set up tracking mode (see git-pull(1))"
+#~ msgstr "configura el mode de seguiment (vegeu git-pull(1))"
+
+#~ msgid "Using both --reset-author and --author does not make sense"
+#~ msgstr "Usar ambdós --reset-author i --author no té sentit"
+
+#~ msgid "Options --squash and --fixup cannot be used together"
+#~ msgstr "Les opcions --squash i --fixup no es poden usar juntes"
+
+#~ msgid "Only one of -c/-C/-F/--fixup can be used."
+#~ msgstr "Només un de -c/-C/-F/--fixup es pot usar."
+
+#~ msgid "Option -m cannot be combined with -c/-C/-F."
+#~ msgstr "l'opció -m no es pot combinar amb -c/-C/-F/."
+
+#~ msgid "Only one of --include/--only/--all/--interactive/--patch can be used."
+#~ msgstr "Només un de --include/--only/--all/--interactive/--patch es pot usar."
+
+#~ msgid "git count-objects [-v] [-H | --human-readable]"
+#~ msgstr "git count-objects [-v] [-H | --human-readable]"
+
+#, c-format
+#~ msgid "configuration fetch.output contains invalid value %s"
+#~ msgstr "la configuració fetch.output conté un valor no vàlid %s"
+
+#~ msgid "--cached or --untracked cannot be used with --no-index"
+#~ msgstr "--cached o --untracked no es pot usar amb --no-index"
+
+#~ msgid "--untracked cannot be used with --cached"
+#~ msgstr "--untracked no es pot usar amb --cached"
+
+#~ msgid "git hash-object --stdin-paths"
+#~ msgstr "git hash-object --stdin-paths"
+
+#~ msgid "git help [-g|--guides]"
+#~ msgstr "git help [-g|--guides]"
+
+#~ msgid "git help [-c|--config]"
+#~ msgstr "git help [-c|--config]"
+
+#~ msgid "git mktag"
+#~ msgstr "git mktag"
+
+#~ msgid "git mktree [-z] [--missing] [--batch]"
+#~ msgstr "git mktree [-z] [--missing] [--batch]"
+
+#~ msgid "read from stdin"
+#~ msgstr "llegeix de stdin"
+
+#~ msgid "git notes merge --commit [-v | -q]"
+#~ msgstr "git notes merge --commit [-v | -q]"
+
+#~ msgid "git notes merge --abort [-v | -q]"
+#~ msgstr "git notes merge --abort [-v | -q]"
+
+#~ msgid "git notes get-ref"
+#~ msgstr "git notes get-ref"
+
+#~ msgid "invalid value for --missing"
+#~ msgstr "valor no vàlid per a --missing"
+
+#~ msgid "git prune-packed [-n | --dry-run] [-q | --quiet]"
+#~ msgstr "git prune-packed [-n | --dry-run] [-q | --quiet]"
+
+#, c-format
+#~ msgid "Invalid value for %s: %s"
+#~ msgstr "Valor no vàlid per a %s: %s"
+
+#, c-format
+#~ msgid "Invalid value for pull.ff: %s"
+#~ msgstr "Valor no vàlid per a pull.ff: %s"
+
+#~ msgid "git rebase --continue | --abort | --skip | --edit-todo"
+#~ msgstr "git rebase --continue | --abort | --skip | --edit-todo"
+
+#, c-format
+#~ msgid "'%s' is not a valid timestamp"
+#~ msgstr "«%s» no és una marca de temps vàlida"
+
+#~ msgid "git reflog [ show | expire | delete | exists ]"
+#~ msgstr "git reflog [ show | expire | delete | exists ]"
+
+#~ msgid "git remote [-v | --verbose]"
+#~ msgstr "git remote [-v | --verbose]"
+
+#~ msgid "git replace [-f] --convert-graft-file"
+#~ msgstr "git replace [-f] --convert-graft-file"
+
+#, c-format
+#~ msgid ""
+#~ "\n"
+#~ "It took %.2f seconds to enumerate unstaged changes after reset. You can\n"
+#~ "use '--quiet' to avoid this. Set the config setting reset.quiet to true\n"
+#~ "to make this the default.\n"
+#~ msgstr ""
+#~ "\n"
+#~ "S'ha trigat %.2f segons a enumerar els canvis «unstaged» després del reinici.\n"
+#~ "Podeu utilitzar «--quiet» per a evitar-ho. Establiu el paràmetre de configuració\n"
+#~ "reset.quiet a true per a fer que aquesta configuració sigui predeterminada.\n"
+
+#~ msgid "git sparse-checkout list"
+#~ msgstr "git sparse-checkout list"
+
+#~ msgid "unable to upgrade repository format to enable worktreeConfig"
+#~ msgstr ""
+#~ "no s'ha pogut actualitzar el format del repositori per a habilitar "
+#~ "worktreeConfig"
+
+#~ msgid "git sparse-checkout init [--cone] [--[no-]sparse-index]"
+#~ msgstr "git sparse-checkout init [--cone] [--[no-]sparse-index]"
+
+#~ msgid "git sparse-checkout reapply [--[no-]cone] [--[no-]sparse-index]"
+#~ msgstr "git sparse-checkout reapply [--[no-]cone] [--[no-]sparse-index]"
+
+#~ msgid "git sparse-checkout disable"
+#~ msgstr "git sparse-checkout disable"
+
+#~ msgid ""
+#~ "the stash.useBuiltin support has been removed!\n"
+#~ "See its entry in 'git help config' for details."
+#~ msgstr ""
+#~ "s'ha eliminat l'opció stash.useBuiltin.\n"
+#~ "Per a més detalls vegeu la seva entrada a «git help config»."
+
+#~ msgid "git stripspace [-s | --strip-comments]"
+#~ msgstr "git stripspace [-s | --strip-comments]"
+
+#~ msgid "git stripspace [-c | --comment-lines]"
+#~ msgstr "git stripspace [-c | --comment-lines]"
+
+#~ msgid "submodule--helper print-default-remote takes no arguments"
+#~ msgstr "submodule--helper print-default-remote no pren cap argument"
+
+#~ msgid "git submodule--helper update-clone [--prefix=<path>] [<path>...]"
+#~ msgstr "git submodule--helper update-clone [--prefix=<camí>] [<camí>...]"
+
+#~ msgid "suppress output for update by rebase or merge"
+#~ msgstr "omet la sortida per les actualitzacions per «rebase» o fusió"
+
+#~ msgid "overrides update mode in case the repository is a fresh clone"
+#~ msgstr ""
+#~ "sobreescriu el mode d'actualització en cas que el repositori sigui un clon "
+#~ "nou"
+
+#~ msgid "depth for shallow fetch"
+#~ msgstr "profunditat per a les obtencions superficials"
+
+#~ msgid "sha1"
+#~ msgstr "sha1"
+
+#~ msgid "SHA1 expected by superproject"
+#~ msgstr "SHA1 esperat per superproject"
+
+#~ msgid "subsha1"
+#~ msgstr "subsha1"
+
+#~ msgid "SHA1 of submodule's HEAD"
+#~ msgstr "SHA1 del HEAD del submòdul"
+
+#~ msgid "git submodule--helper run-update-procedure [<options>] <path>"
+#~ msgstr "git submodule--helper run-update-procedure [<options>] <path>"
+
+#~ msgid "git submodule--helper config --check-writeable"
+#~ msgstr "git submodule--helper config --check-writeable"
+
+#~ msgid "git update-server-info [--force]"
+#~ msgstr "git update-server-info [--force]"
+
+#~ msgid "Initialize and modify the sparse-checkout"
+#~ msgstr "Inicialitza i modifica el «sparse-checkout»"
+
+#, sh-format
+#~ msgid ""
+#~ "Unable to find current ${remote_name}/${branch} revision in submodule path "
+#~ "'$sm_path'"
+#~ msgstr ""
+#~ "No s'ha pogut trobar la revisió actual de ${remote_name}/${branch} en el "
+#~ "camí de submòdul «$sm_path»"
+
+#, sh-format
+#~ msgid "Failed to recurse into submodule path '$displaypath'"
+#~ msgstr ""
+#~ "S'ha produït un error en recórrer recursivament dins del camí de submòdul "
+#~ "«$displaypath»"
+
+#, perl-format
+#~ msgid ""
+#~ "fatal: %s: rejected by sendemail-validate hook\n"
+#~ "%s\n"
+#~ "warning: no patches were sent\n"
+#~ msgstr ""
+#~ "fatal: %s: rebutjat pel lligam sendemail-validate\n"
+#~ "%s\n"
+#~ "avís: no s'ha enviat cap pedaç\n"
diff --git a/po/de.po b/po/de.po
index 19ffd9a5ad..ef04b54370 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: 2022-01-17 08:31+0800\n"
-"PO-Revision-Date: 2022-01-15 18:20+0100\n"
+"POT-Creation-Date: 2022-04-13 14:52+0800\n"
+"PO-Revision-Date: 2022-04-10 15:07+0200\n"
"Last-Translator: Matthias Rüster <matthias.ruester@gmail.com>\n"
"Language-Team: Matthias Rüster <matthias.ruester@gmail.com>\n"
"Language: de\n"
@@ -17,215 +17,214 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n!=1);\n"
-"X-Generator: Poedit 3.0\n"
+"X-Generator: Poedit 3.0.1\n"
-#: add-interactive.c:380
+#: add-interactive.c:382
#, c-format
msgid "Huh (%s)?"
msgstr "Wie bitte (%s)?"
-#: add-interactive.c:533 add-interactive.c:834 reset.c:65 sequencer.c:3509
-#: sequencer.c:3974 sequencer.c:4136 builtin/rebase.c:1233
-#: builtin/rebase.c:1642
+#: add-interactive.c:535 add-interactive.c:836 reset.c:136 sequencer.c:3505
+#: sequencer.c:3970 sequencer.c:4127 builtin/rebase.c:1261
+#: builtin/rebase.c:1671
msgid "could not read index"
msgstr "Index konnte nicht gelesen werden"
-#: add-interactive.c:588 git-add--interactive.perl:269
+#: add-interactive.c:590 git-add--interactive.perl:269
#: git-add--interactive.perl:294
msgid "binary"
msgstr "Binär"
-#: add-interactive.c:646 git-add--interactive.perl:278
+#: add-interactive.c:648 git-add--interactive.perl:278
#: git-add--interactive.perl:332
msgid "nothing"
msgstr "Nichts"
-#: add-interactive.c:647 git-add--interactive.perl:314
+#: add-interactive.c:649 git-add--interactive.perl:314
#: git-add--interactive.perl:329
msgid "unchanged"
msgstr "unverändert"
-#: add-interactive.c:684 git-add--interactive.perl:641
+#: add-interactive.c:686 git-add--interactive.perl:641
msgid "Update"
msgstr "Aktualisieren"
-#: add-interactive.c:701 add-interactive.c:889
+#: add-interactive.c:703 add-interactive.c:891
#, c-format
msgid "could not stage '%s'"
msgstr "Konnte '%s' nicht zum Commit vormerken."
-#: add-interactive.c:707 add-interactive.c:896 reset.c:89 sequencer.c:3713
+#: add-interactive.c:709 add-interactive.c:898 reset.c:160 sequencer.c:3709
msgid "could not write index"
msgstr "konnte Index nicht schreiben"
-#: add-interactive.c:710 git-add--interactive.perl:626
+#: add-interactive.c:712 git-add--interactive.perl:626
#, c-format, perl-format
msgid "updated %d path\n"
msgid_plural "updated %d paths\n"
msgstr[0] "%d Pfad aktualisiert\n"
msgstr[1] "%d Pfade aktualisiert\n"
-#: add-interactive.c:728 git-add--interactive.perl:676
+#: add-interactive.c:730 git-add--interactive.perl:676
#, c-format, perl-format
msgid "note: %s is untracked now.\n"
msgstr "Hinweis: %s ist nun unversioniert.\n"
-#: add-interactive.c:733 apply.c:4151 builtin/checkout.c:306
+#: add-interactive.c:735 apply.c:4133 builtin/checkout.c:311
#: builtin/reset.c:167
#, c-format
msgid "make_cache_entry failed for path '%s'"
msgstr "make_cache_entry für Pfad '%s' fehlgeschlagen"
-#: add-interactive.c:763 git-add--interactive.perl:653
+#: add-interactive.c:765 git-add--interactive.perl:653
msgid "Revert"
msgstr "Revert"
-#: add-interactive.c:779
+#: add-interactive.c:781
msgid "Could not parse HEAD^{tree}"
msgstr "Konnte HEAD^{tree} nicht parsen."
-#: add-interactive.c:817 git-add--interactive.perl:629
+#: add-interactive.c:819 git-add--interactive.perl:629
#, c-format, perl-format
msgid "reverted %d path\n"
msgid_plural "reverted %d paths\n"
msgstr[0] "%d Pfad wiederhergestellt\n"
msgstr[1] "%d Pfade wiederhergestellt\n"
-#: add-interactive.c:868 git-add--interactive.perl:693
+#: add-interactive.c:870 git-add--interactive.perl:693
#, c-format
msgid "No untracked files.\n"
msgstr "Keine unversionierten Dateien.\n"
-#: add-interactive.c:872 git-add--interactive.perl:687
+#: add-interactive.c:874 git-add--interactive.perl:687
msgid "Add untracked"
msgstr "Unversionierte Dateien hinzufügen"
-#: add-interactive.c:899 git-add--interactive.perl:623
+#: add-interactive.c:901 git-add--interactive.perl:623
#, c-format, perl-format
msgid "added %d path\n"
msgid_plural "added %d paths\n"
msgstr[0] "%d Pfad hinzugefügt\n"
msgstr[1] "%d Pfade hinzugefügt\n"
-#: add-interactive.c:929
+#: add-interactive.c:931
#, c-format
msgid "ignoring unmerged: %s"
msgstr "Ignoriere nicht zusammengeführte Datei: %s"
-#: add-interactive.c:941 add-patch.c:1752 git-add--interactive.perl:1371
+#: add-interactive.c:943 add-patch.c:1758 git-add--interactive.perl:1371
#, c-format
msgid "Only binary files changed.\n"
msgstr "Nur Binärdateien geändert.\n"
-#: add-interactive.c:943 add-patch.c:1750 git-add--interactive.perl:1373
+#: add-interactive.c:945 add-patch.c:1756 git-add--interactive.perl:1373
#, c-format
msgid "No changes.\n"
msgstr "Keine Änderungen.\n"
-#: add-interactive.c:947 git-add--interactive.perl:1381
+#: add-interactive.c:949 git-add--interactive.perl:1381
msgid "Patch update"
msgstr "Patch Aktualisierung"
-#: add-interactive.c:986 git-add--interactive.perl:1794
+#: add-interactive.c:988 git-add--interactive.perl:1794
msgid "Review diff"
msgstr "Diff überprüfen"
-#: add-interactive.c:1014
+#: add-interactive.c:1016
msgid "show paths with changes"
msgstr "Zeige Pfade mit Änderungen"
-#: add-interactive.c:1016
+#: add-interactive.c:1018
msgid "add working tree state to the staged set of changes"
msgstr "Zustand des Arbeitsverzeichnisses zum Commit vormerken"
-#: add-interactive.c:1018
+#: add-interactive.c:1020
msgid "revert staged set of changes back to the HEAD version"
msgstr "Zum Commit vorgemerkte Änderungen auf HEAD-Version zurücksetzen"
-#: add-interactive.c:1020
+#: add-interactive.c:1022
msgid "pick hunks and update selectively"
msgstr "Blöcke und Änderung gezielt auswählen"
-#: add-interactive.c:1022
+#: add-interactive.c:1024
msgid "view diff between HEAD and index"
msgstr "Differenz zwischen HEAD und Index ansehen"
-#: add-interactive.c:1024
+#: add-interactive.c:1026
msgid "add contents of untracked files to the staged set of changes"
msgstr "Inhalte von unversionierten Dateien zum Commit vormerken"
-#: add-interactive.c:1032 add-interactive.c:1081
+#: add-interactive.c:1034 add-interactive.c:1083
msgid "Prompt help:"
msgstr "Hilfe für Eingaben:"
-#: add-interactive.c:1034
+#: add-interactive.c:1036
msgid "select a single item"
msgstr "Ein einzelnes Element auswählen"
-#: add-interactive.c:1036
+#: add-interactive.c:1038
msgid "select a range of items"
msgstr "Eine Reihe von Elementen auswählen"
-#: add-interactive.c:1038
+#: add-interactive.c:1040
msgid "select multiple ranges"
msgstr "Mehrere Reihen auswählen"
-#: add-interactive.c:1040 add-interactive.c:1085
+#: add-interactive.c:1042 add-interactive.c:1087
msgid "select item based on unique prefix"
msgstr "Element basierend auf eindeutigen Präfix auswählen"
-#: add-interactive.c:1042
+#: add-interactive.c:1044
msgid "unselect specified items"
msgstr "Angegebene Elemente abwählen"
-#: add-interactive.c:1044
+#: add-interactive.c:1046
msgid "choose all items"
msgstr "Alle Elemente auswählen"
-#: add-interactive.c:1046
+#: add-interactive.c:1048
msgid "(empty) finish selecting"
msgstr "(leer) Auswählen beenden"
-#: add-interactive.c:1083
+#: add-interactive.c:1085
msgid "select a numbered item"
msgstr "Ein nummeriertes Element auswählen"
-#: add-interactive.c:1087
+#: add-interactive.c:1089
msgid "(empty) select nothing"
msgstr "(leer) nichts auswählen"
-#: add-interactive.c:1095 builtin/clean.c:839 git-add--interactive.perl:1898
+#: add-interactive.c:1097 builtin/clean.c:839 git-add--interactive.perl:1898
msgid "*** Commands ***"
msgstr "*** Befehle ***"
-#: add-interactive.c:1096 builtin/clean.c:840 git-add--interactive.perl:1895
+#: add-interactive.c:1098 builtin/clean.c:840 git-add--interactive.perl:1895
msgid "What now"
msgstr "Was nun"
-#: add-interactive.c:1148 git-add--interactive.perl:213
+#: add-interactive.c:1150 git-add--interactive.perl:213
msgid "staged"
msgstr "zur Staging-Area hinzugefügt"
-#: add-interactive.c:1148 git-add--interactive.perl:213
+#: add-interactive.c:1150 git-add--interactive.perl:213
msgid "unstaged"
msgstr "aus Staging-Area entfernt"
-#: add-interactive.c:1148 apply.c:5020 apply.c:5023 builtin/am.c:2367
-#: builtin/am.c:2370 builtin/bugreport.c:107 builtin/clone.c:128
-#: builtin/fetch.c:153 builtin/merge.c:287 builtin/pull.c:194
-#: builtin/submodule--helper.c:404 builtin/submodule--helper.c:1858
-#: builtin/submodule--helper.c:1861 builtin/submodule--helper.c:2504
-#: builtin/submodule--helper.c:2507 builtin/submodule--helper.c:2574
-#: builtin/submodule--helper.c:2579 builtin/submodule--helper.c:2812
+#: add-interactive.c:1150 apply.c:5002 apply.c:5005 builtin/am.c:2370
+#: builtin/am.c:2373 builtin/bugreport.c:107 builtin/clone.c:132
+#: builtin/fetch.c:154 builtin/merge.c:287 builtin/pull.c:194
+#: builtin/submodule--helper.c:412 builtin/submodule--helper.c:1872
+#: builtin/submodule--helper.c:1875 builtin/submodule--helper.c:2709
+#: builtin/submodule--helper.c:2712 builtin/submodule--helper.c:2891
#: git-add--interactive.perl:213
msgid "path"
msgstr "Pfad"
-#: add-interactive.c:1155
+#: add-interactive.c:1157
msgid "could not refresh index"
msgstr "Index konnte nicht aktualisiert werden"
-#: add-interactive.c:1169 builtin/clean.c:804 git-add--interactive.perl:1805
+#: add-interactive.c:1171 builtin/clean.c:804 git-add--interactive.perl:1805
#, c-format
msgid "Bye.\n"
msgstr "Tschüss.\n"
@@ -554,24 +553,24 @@ msgstr "Konnte Block-Header '%.*s' nicht parsen."
msgid "could not parse colored hunk header '%.*s'"
msgstr "Konnte farbigen Block-Header '%.*s' nicht parsen."
-#: add-patch.c:420
+#: add-patch.c:431
msgid "could not parse diff"
-msgstr "Konnte Differenz nicht parsen."
+msgstr "konnte Diff nicht parsen"
-#: add-patch.c:439
+#: add-patch.c:450
msgid "could not parse colored diff"
-msgstr "Konnte farbige Differenz nicht parsen."
+msgstr "konnte farbigen Diff nicht parsen"
-#: add-patch.c:453
+#: add-patch.c:464
#, c-format
msgid "failed to run '%s'"
msgstr "'%s' konnte nicht ausgeführt werden"
-#: add-patch.c:612
+#: add-patch.c:618
msgid "mismatched output from interactive.diffFilter"
msgstr "nicht übereinstimmende Ausgabe von interactive.diffFilter"
-#: add-patch.c:613
+#: add-patch.c:619
msgid ""
"Your filter must maintain a one-to-one correspondence\n"
"between its input and output lines."
@@ -579,7 +578,7 @@ msgstr ""
"Der Filter muss eine Eins-zu-Eins-Beziehung\n"
"zwischen den Ein- und Ausgabe-Zeilen einhalten."
-#: add-patch.c:791
+#: add-patch.c:797
#, c-format
msgid ""
"expected context line #%d in\n"
@@ -588,7 +587,7 @@ msgstr ""
"Erwartete Kontextzeile #%d in\n"
"%.*s"
-#: add-patch.c:806
+#: add-patch.c:812
#, c-format
msgid ""
"hunks do not overlap:\n"
@@ -601,13 +600,13 @@ msgstr ""
"\tendet nicht mit:\n"
"%.*s"
-#: add-patch.c:1082 git-add--interactive.perl:1115
+#: add-patch.c:1088 git-add--interactive.perl:1115
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:1086
+#: add-patch.c:1092
#, c-format
msgid ""
"---\n"
@@ -621,7 +620,7 @@ msgstr ""
"Zeilen, die mit %c beginnen, werden entfernt.\n"
#. TRANSLATORS: 'it' refers to the patch mentioned in the previous messages.
-#: add-patch.c:1100 git-add--interactive.perl:1129
+#: add-patch.c:1106 git-add--interactive.perl:1129
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"
@@ -632,13 +631,13 @@ msgstr ""
"werden,\n"
"wird die Bearbeitung abgebrochen und der Patch-Block bleibt unverändert.\n"
-#: add-patch.c:1133
+#: add-patch.c:1139
msgid "could not parse hunk header"
-msgstr "Konnte Block-Header nicht parsen."
+msgstr "konnte Block-Header nicht parsen"
-#: add-patch.c:1178
+#: add-patch.c:1184
msgid "'git apply --cached' failed"
-msgstr "'git apply --cached' schlug fehl."
+msgstr "'git apply --cached' schlug fehl"
#. TRANSLATORS: do not translate [y/n]
#. The program will only accept that input at this point.
@@ -652,27 +651,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:1247 git-add--interactive.perl:1244
+#: add-patch.c:1253 git-add--interactive.perl:1244
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:1290
+#: add-patch.c:1296
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:1291 git-add--interactive.perl:1348
+#: add-patch.c:1297 git-add--interactive.perl:1348
msgid "Apply them to the worktree anyway? "
msgstr "Trotzdem auf Arbeitsverzeichnis anwenden? "
-#: add-patch.c:1298 git-add--interactive.perl:1351
+#: add-patch.c:1304 git-add--interactive.perl:1351
msgid "Nothing was applied.\n"
msgstr "Nichts angewendet.\n"
-#: add-patch.c:1355
+#: add-patch.c:1361
msgid ""
"j - leave this hunk undecided, see next undecided hunk\n"
"J - leave this hunk undecided, see next hunk\n"
@@ -696,73 +695,73 @@ msgstr ""
"e - aktuellen Patch-Block manuell editieren\n"
"? - Hilfe anzeigen\n"
-#: add-patch.c:1517 add-patch.c:1527
+#: add-patch.c:1523 add-patch.c:1533
msgid "No previous hunk"
msgstr "Kein vorheriger Patch-Block"
-#: add-patch.c:1522 add-patch.c:1532
+#: add-patch.c:1528 add-patch.c:1538
msgid "No next hunk"
msgstr "Kein folgender Patch-Block"
-#: add-patch.c:1538
+#: add-patch.c:1544
msgid "No other hunks to goto"
msgstr "Keine anderen Patch-Blöcke verbleibend"
-#: add-patch.c:1549 git-add--interactive.perl:1608
+#: add-patch.c:1555 git-add--interactive.perl:1608
msgid "go to which hunk (<ret> to see more)? "
msgstr "zu welchem Patch-Block springen (<Enter> für mehr Informationen)? "
-#: add-patch.c:1550 git-add--interactive.perl:1610
+#: add-patch.c:1556 git-add--interactive.perl:1610
msgid "go to which hunk? "
msgstr "zu welchem Patch-Block springen? "
-#: add-patch.c:1561
+#: add-patch.c:1567
#, c-format
msgid "Invalid number: '%s'"
msgstr "Ungültige Nummer: '%s'"
-#: add-patch.c:1566
+#: add-patch.c:1572
#, 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:1575
+#: add-patch.c:1581
msgid "No other hunks to search"
msgstr "Keine anderen Patch-Blöcke zum Durchsuchen"
-#: add-patch.c:1581 git-add--interactive.perl:1663
+#: add-patch.c:1587 git-add--interactive.perl:1663
msgid "search for regex? "
msgstr "Suche nach regulärem Ausdruck? "
-#: add-patch.c:1596
+#: add-patch.c:1602
#, c-format
msgid "Malformed search regexp %s: %s"
msgstr "Fehlerhafter regulärer Ausdruck für Suche %s: %s"
-#: add-patch.c:1613
+#: add-patch.c:1619
msgid "No hunk matches the given pattern"
msgstr "Kein Patch-Block entspricht dem angegebenen Muster"
-#: add-patch.c:1620
+#: add-patch.c:1626
msgid "Sorry, cannot split this hunk"
msgstr "Entschuldigung, kann diesen Patch-Block nicht aufteilen"
-#: add-patch.c:1624
+#: add-patch.c:1630
#, c-format
msgid "Split into %d hunks."
msgstr "In %d Patch-Block aufgeteilt."
-#: add-patch.c:1628
+#: add-patch.c:1634
msgid "Sorry, cannot edit this hunk"
msgstr "Entschuldigung, kann diesen Patch-Block nicht bearbeiten"
-#: add-patch.c:1680
+#: add-patch.c:1686
msgid "'git apply' failed"
msgstr "'git apply' schlug fehl"
-#: advice.c:78
+#: advice.c:81
#, c-format
msgid ""
"\n"
@@ -771,43 +770,43 @@ msgstr ""
"\n"
"Deaktivieren Sie diese Nachricht mit \"git config advice.%s false\""
-#: advice.c:94
+#: advice.c:97
#, c-format
msgid "%shint: %.*s%s\n"
msgstr "%sHinweis: %.*s%s\n"
-#: advice.c:178
+#: advice.c:181
msgid "Cherry-picking is not possible because you have unmerged files."
msgstr ""
"Cherry-Picken ist nicht möglich, weil Sie nicht zusammengeführte Dateien "
"haben."
-#: advice.c:180
+#: advice.c:183
msgid "Committing is not possible because you have unmerged files."
msgstr ""
"Committen ist nicht möglich, weil Sie nicht zusammengeführte Dateien haben."
-#: advice.c:182
+#: advice.c:185
msgid "Merging is not possible because you have unmerged files."
msgstr ""
"Mergen ist nicht möglich, weil Sie nicht zusammengeführte Dateien haben."
-#: advice.c:184
+#: advice.c:187
msgid "Pulling is not possible because you have unmerged files."
msgstr ""
"Pullen ist nicht möglich, weil Sie nicht zusammengeführte Dateien haben."
-#: advice.c:186
+#: advice.c:189
msgid "Reverting is not possible because you have unmerged files."
msgstr ""
"Reverten ist nicht möglich, weil Sie nicht zusammengeführte Dateien haben."
-#: advice.c:188
+#: advice.c:191
#, c-format
msgid "It is not possible to %s because you have unmerged files."
msgstr "%s ist nicht möglich, weil Sie nicht zusammengeführte Dateien haben."
-#: advice.c:196
+#: advice.c:199
msgid ""
"Fix them up in the work tree, and then use 'git add/rm <file>'\n"
"as appropriate to mark resolution and make a commit."
@@ -816,27 +815,27 @@ msgstr ""
"dann 'git add/rm <Datei>', um die Auflösung entsprechend zu markieren\n"
"und zu committen."
-#: advice.c:204
+#: advice.c:207
msgid "Exiting because of an unresolved conflict."
msgstr "Beende wegen unaufgelöstem Konflikt."
-#: advice.c:209 builtin/merge.c:1382
+#: advice.c:212 builtin/merge.c:1388
msgid "You have not concluded your merge (MERGE_HEAD exists)."
msgstr "Sie haben Ihren Merge nicht abgeschlossen (MERGE_HEAD existiert)."
-#: advice.c:211
+#: advice.c:214
msgid "Please, commit your changes before merging."
msgstr "Bitte committen Sie Ihre Änderungen, bevor Sie mergen."
-#: advice.c:212
+#: advice.c:215
msgid "Exiting because of unfinished merge."
msgstr "Beende wegen nicht abgeschlossenem Merge."
-#: advice.c:217
+#: advice.c:220
msgid "Not possible to fast-forward, aborting."
msgstr "Vorspulen nicht möglich, breche ab."
-#: advice.c:227
+#: advice.c:230
#, c-format
msgid ""
"The following paths and/or pathspecs matched paths that exist\n"
@@ -847,7 +846,7 @@ msgstr ""
"der außerhalb Ihrer partiellen Checkout-Definition existierte, weshalb\n"
"diese nicht im Index aktualisiert werden:\n"
-#: advice.c:234
+#: advice.c:237
msgid ""
"If you intend to update such entries, try one of the following:\n"
"* Use the --sparse option.\n"
@@ -858,7 +857,7 @@ msgstr ""
"* Verwenden Sie die Option --sparse.\n"
"* Deaktivieren oder ändern Sie die Regeln für partielle Checkouts."
-#: advice.c:242
+#: advice.c:245
#, c-format
msgid ""
"Note: switching to '%s'.\n"
@@ -907,7 +906,7 @@ msgstr "Befehlszeile endet mit \\"
#: alias.c:51
msgid "unclosed quote"
-msgstr "Nicht geschlossene Anführungszeichen."
+msgstr "nicht geschlossene Anführungszeichen"
#: apply.c:70
#, c-format
@@ -919,84 +918,87 @@ msgstr "Nicht erkannte Whitespace-Option: '%s'"
msgid "unrecognized whitespace ignore option '%s'"
msgstr "nicht erkannte Option zum Ignorieren von Whitespace: '%s'"
-#: apply.c:136 archive.c:584 range-diff.c:559 revision.c:2303 revision.c:2307
-#: revision.c:2316 revision.c:2321 revision.c:2527 revision.c:2870
-#: revision.c:2874 revision.c:2880 revision.c:2883 revision.c:2885
-#: builtin/add.c:510 builtin/add.c:512 builtin/add.c:529 builtin/add.c:541
-#: builtin/branch.c:727 builtin/checkout.c:467 builtin/checkout.c:470
-#: builtin/checkout.c:1644 builtin/checkout.c:1754 builtin/checkout.c:1757
-#: builtin/clone.c:906 builtin/commit.c:358 builtin/commit.c:361
-#: builtin/commit.c:1196 builtin/describe.c:593 builtin/diff-tree.c:155
-#: builtin/difftool.c:733 builtin/fast-export.c:1245 builtin/fetch.c:2038
-#: builtin/fetch.c:2043 builtin/index-pack.c:1852 builtin/init-db.c:560
-#: builtin/log.c:1946 builtin/log.c:1948 builtin/ls-files.c:778
-#: builtin/merge.c:1403 builtin/merge.c:1405 builtin/pack-objects.c:4073
-#: builtin/push.c:592 builtin/push.c:630 builtin/push.c:636 builtin/push.c:641
-#: builtin/rebase.c:1193 builtin/rebase.c:1195 builtin/rebase.c:1199
-#: builtin/repack.c:684 builtin/repack.c:715 builtin/reset.c:426
-#: builtin/reset.c:462 builtin/rev-list.c:541 builtin/show-branch.c:710
-#: builtin/stash.c:1707 builtin/stash.c:1710 builtin/submodule--helper.c:1316
-#: builtin/submodule--helper.c:2975 builtin/tag.c:526 builtin/tag.c:572
-#: builtin/worktree.c:702
+#: apply.c:138 archive.c:584 parse-options.c:1122 range-diff.c:555
+#: revision.c:2314 revision.c:2318 revision.c:2327 revision.c:2332
+#: revision.c:2560 revision.c:2895 revision.c:2899 revision.c:2907
+#: revision.c:2910 revision.c:2912 builtin/add.c:507 builtin/add.c:509
+#: builtin/add.c:515 builtin/add.c:527 builtin/branch.c:755
+#: builtin/checkout.c:472 builtin/checkout.c:475 builtin/checkout.c:1663
+#: builtin/checkout.c:1773 builtin/checkout.c:1776 builtin/clone.c:921
+#: builtin/commit.c:359 builtin/commit.c:362 builtin/commit.c:1200
+#: builtin/commit.c:1256 builtin/commit.c:1273 builtin/describe.c:593
+#: builtin/diff-tree.c:155 builtin/difftool.c:733 builtin/fast-export.c:1245
+#: builtin/fetch.c:2141 builtin/fetch.c:2162 builtin/fetch.c:2167
+#: builtin/help.c:602 builtin/index-pack.c:1858 builtin/init-db.c:560
+#: builtin/log.c:1968 builtin/log.c:1970 builtin/ls-files.c:778
+#: builtin/merge-base.c:163 builtin/merge-base.c:169 builtin/merge.c:1409
+#: builtin/merge.c:1411 builtin/pack-objects.c:4098 builtin/push.c:592
+#: builtin/push.c:630 builtin/push.c:636 builtin/push.c:641
+#: builtin/rebase.c:1221 builtin/rebase.c:1223 builtin/rebase.c:1227
+#: builtin/repack.c:688 builtin/repack.c:719 builtin/reset.c:433
+#: builtin/reset.c:469 builtin/rev-list.c:537 builtin/show-branch.c:711
+#: builtin/stash.c:1696 builtin/stash.c:1699 builtin/submodule--helper.c:1328
+#: builtin/submodule--helper.c:3054 builtin/tag.c:527 builtin/tag.c:573
+#: builtin/worktree.c:779
#, c-format
msgid "options '%s' and '%s' cannot be used together"
msgstr "die Optionen '%s' und '%s' können nicht gemeinsam verwendet werden"
-#: apply.c:139 apply.c:150 apply.c:153
+#: apply.c:141 apply.c:152 apply.c:155
#, c-format
msgid "'%s' outside a repository"
msgstr "'%s' außerhalb eines Repositories"
-#: apply.c:800
+#: apply.c:807
#, c-format
msgid "Cannot prepare timestamp regexp %s"
msgstr "Kann regulären Ausdruck für Zeitstempel %s nicht verarbeiten"
-#: apply.c:809
+#: apply.c:816
#, c-format
msgid "regexec returned %d for input: %s"
msgstr "Ausführung des regulären Ausdrucks gab %d zurück. Eingabe: %s"
-#: apply.c:883
+#: apply.c:890
#, c-format
msgid "unable to find filename in patch at line %d"
msgstr "konnte keinen Dateinamen in Zeile %d des Patches finden"
-#: apply.c:921
+#: apply.c:928
#, c-format
msgid "git apply: bad git-diff - expected /dev/null, got %s on line %d"
msgstr ""
"git apply: ungültiges 'git-diff' - erwartete /dev/null, erhielt %s in Zeile "
"%d"
-#: apply.c:927
+#: apply.c:934
#, c-format
msgid "git apply: bad git-diff - inconsistent new filename on line %d"
msgstr ""
"git apply: ungültiges 'git-diff' - Inkonsistenter neuer Dateiname in Zeile %d"
-#: apply.c:928
+#: apply.c:935
#, c-format
msgid "git apply: bad git-diff - inconsistent old filename on line %d"
msgstr ""
"git apply: ungültiges 'git-diff' - Inkonsistenter alter Dateiname in Zeile %d"
-#: apply.c:933
+#: apply.c:940
#, c-format
msgid "git apply: bad git-diff - expected /dev/null on line %d"
msgstr "git apply: ungültiges 'git-diff' - erwartete /dev/null in Zeile %d"
-#: apply.c:962
+#: apply.c:969
#, c-format
msgid "invalid mode on line %d: %s"
msgstr "Ungültiger Modus in Zeile %d: %s"
-#: apply.c:1281
+#: apply.c:1288
#, c-format
msgid "inconsistent header lines %d and %d"
-msgstr "Inkonsistente Kopfzeilen %d und %d."
+msgstr "inkonsistente Kopfzeilen %d und %d"
-#: apply.c:1371
+#: apply.c:1378
#, c-format
msgid ""
"git diff header lacks filename information when removing %d leading pathname "
@@ -1011,82 +1013,82 @@ msgstr[1] ""
"Dem Kopfbereich von \"git diff\" fehlen Informationen zum Dateinamen, wenn "
"%d vorangestellte Teile des Pfades entfernt werden (Zeile %d)"
-#: apply.c:1384
+#: apply.c:1391
#, c-format
msgid "git diff header lacks filename information (line %d)"
msgstr ""
"Dem Kopfbereich von \"git diff\" fehlen Informationen zum Dateinamen (Zeile "
"%d)"
-#: apply.c:1480
+#: apply.c:1487
#, c-format
msgid "recount: unexpected line: %.*s"
msgstr "recount: unerwartete Zeile: %.*s"
-#: apply.c:1549
+#: apply.c:1556
#, c-format
msgid "patch fragment without header at line %d: %.*s"
msgstr "Patch-Fragment ohne Kopfbereich bei Zeile %d: %.*s"
-#: apply.c:1752
+#: apply.c:1759
msgid "new file depends on old contents"
msgstr "neue Datei hängt von alten Inhalten ab"
-#: apply.c:1754
+#: apply.c:1761
msgid "deleted file still has contents"
msgstr "entfernte Datei hat noch Inhalte"
-#: apply.c:1788
+#: apply.c:1795
#, c-format
msgid "corrupt patch at line %d"
msgstr "fehlerhafter Patch bei Zeile %d"
-#: apply.c:1825
+#: apply.c:1832
#, c-format
msgid "new file %s depends on old contents"
msgstr "neue Datei %s hängt von alten Inhalten ab"
-#: apply.c:1827
+#: apply.c:1834
#, c-format
msgid "deleted file %s still has contents"
msgstr "entfernte Datei %s hat noch Inhalte"
-#: apply.c:1830
+#: apply.c:1837
#, c-format
msgid "** warning: file %s becomes empty but is not deleted"
-msgstr "** Warnung: Datei %s wird leer, aber nicht entfernt."
+msgstr "** Warnung: Datei %s wird leer, aber ist nicht entfernt"
-#: apply.c:1978
+#: apply.c:1985
#, c-format
msgid "corrupt binary patch at line %d: %.*s"
msgstr "fehlerhafter Binär-Patch bei Zeile %d: %.*s"
-#: apply.c:2015
+#: apply.c:2022
#, c-format
msgid "unrecognized binary patch at line %d"
msgstr "nicht erkannter Binär-Patch bei Zeile %d"
-#: apply.c:2177
+#: apply.c:2184
#, c-format
msgid "patch with only garbage at line %d"
msgstr "Patch mit nutzlosen Informationen bei Zeile %d"
-#: apply.c:2263
+#: apply.c:2270
#, c-format
msgid "unable to read symlink %s"
msgstr "konnte symbolische Verknüpfung %s nicht lesen"
-#: apply.c:2267
+#: apply.c:2274
#, c-format
msgid "unable to open or read %s"
msgstr "konnte %s nicht öffnen oder lesen"
-#: apply.c:2936
+#: apply.c:2943
#, c-format
msgid "invalid start of line: '%c'"
msgstr "Ungültiger Zeilenanfang: '%c'"
-#: apply.c:3057
+#: apply.c:3064
#, c-format
msgid "Hunk #%d succeeded at %d (offset %d line)."
msgid_plural "Hunk #%d succeeded at %d (offset %d lines)."
@@ -1094,12 +1096,12 @@ msgstr[0] "Patch-Bereich #%d erfolgreich angewendet bei %d (%d Zeile versetzt)"
msgstr[1] ""
"Patch-Bereich #%d erfolgreich angewendet bei %d (%d Zeilen versetzt)"
-#: apply.c:3069
+#: apply.c:3076
#, c-format
msgid "Context reduced to (%ld/%ld) to apply fragment at %d"
msgstr "Kontext reduziert zu (%ld/%ld), um Patch-Bereich bei %d anzuwenden"
-#: apply.c:3075
+#: apply.c:3082
#, c-format
msgid ""
"while searching for:\n"
@@ -1108,467 +1110,467 @@ msgstr ""
"bei der Suche nach:\n"
"%.*s"
-#: apply.c:3097
+#: apply.c:3104
#, c-format
msgid "missing binary patch data for '%s'"
msgstr "keine Daten in Binär-Patch für '%s'"
-#: apply.c:3105
+#: apply.c:3112
#, c-format
msgid "cannot reverse-apply a binary patch without the reverse hunk to '%s'"
msgstr ""
"kann binären Patch nicht in umgekehrter Reihenfolge anwenden ohne einen\n"
"umgekehrten Patch-Block auf '%s'"
-#: apply.c:3152
+#: apply.c:3159
#, c-format
msgid "cannot apply binary patch to '%s' without full index line"
msgstr ""
"kann binären Patch auf '%s' nicht ohne eine vollständige Index-Zeile anwenden"
-#: apply.c:3163
+#: apply.c:3170
#, c-format
msgid ""
"the patch applies to '%s' (%s), which does not match the current contents."
msgstr ""
"der Patch wird angewendet auf '%s' (%s), was nicht den aktuellen Inhalten\n"
-"entspricht"
+"entspricht."
-#: apply.c:3171
+#: apply.c:3178
#, c-format
msgid "the patch applies to an empty '%s' but it is not empty"
msgstr "der Patch wird auf ein leeres '%s' angewendet, was aber nicht leer ist"
-#: apply.c:3189
+#: apply.c:3196
#, c-format
msgid "the necessary postimage %s for '%s' cannot be read"
msgstr "das erforderliche Postimage %s für '%s' kann nicht gelesen werden"
-#: apply.c:3202
+#: apply.c:3209
#, c-format
msgid "binary patch does not apply to '%s'"
msgstr "Konnte Binär-Patch nicht auf '%s' anwenden"
-#: apply.c:3209
+#: apply.c:3216
#, c-format
msgid "binary patch to '%s' creates incorrect result (expecting %s, got %s)"
msgstr ""
"Binär-Patch für '%s' erzeugt falsches Ergebnis (erwartete %s, bekam %s)"
-#: apply.c:3230
+#: apply.c:3237
#, c-format
msgid "patch failed: %s:%ld"
msgstr "Anwendung des Patches fehlgeschlagen: %s:%ld"
-#: apply.c:3353
+#: apply.c:3360
#, c-format
msgid "cannot checkout %s"
msgstr "kann %s nicht auschecken"
-#: apply.c:3405 apply.c:3416 apply.c:3462 midx.c:104 pack-revindex.c:214
-#: setup.c:309
+#: apply.c:3412 apply.c:3423 apply.c:3469 midx.c:105 pack-revindex.c:214
+#: setup.c:310
#, c-format
msgid "failed to read %s"
msgstr "Fehler beim Lesen von %s"
-#: apply.c:3413
+#: apply.c:3420
#, c-format
msgid "reading from '%s' beyond a symbolic link"
msgstr "'%s' ist hinter einer symbolischen Verknüpfung"
-#: apply.c:3442 apply.c:3711
+#: apply.c:3449 apply.c:3721
#, c-format
msgid "path %s has been renamed/deleted"
msgstr "Pfad %s wurde umbenannt/gelöscht"
-#: apply.c:3549 apply.c:3726
+#: apply.c:3559 apply.c:3736
#, c-format
msgid "%s: does not exist in index"
msgstr "%s ist nicht im Index"
-#: apply.c:3558 apply.c:3734 apply.c:3978
+#: apply.c:3568 apply.c:3744 apply.c:3960
#, c-format
msgid "%s: does not match index"
msgstr "%s entspricht nicht der Version im Index"
-#: apply.c:3595
+#: apply.c:3605
msgid "repository lacks the necessary blob to perform 3-way merge."
msgstr ""
"Dem Repository fehlt der notwendige Blob, um einen 3-Wege-Merge "
"durchzuführen."
-#: apply.c:3598
+#: apply.c:3608
#, c-format
msgid "Performing three-way merge...\n"
msgstr "Führe 3-Wege-Merge durch...\n"
-#: apply.c:3614 apply.c:3618
+#: apply.c:3624 apply.c:3628
#, c-format
msgid "cannot read the current contents of '%s'"
msgstr "kann aktuelle Inhalte von '%s' nicht lesen"
-#: apply.c:3630
+#: apply.c:3640
#, c-format
msgid "Failed to perform three-way merge...\n"
msgstr "Fehler beim Durchführen des 3-Wege-Merges...\n"
-#: apply.c:3644
+#: apply.c:3654
#, c-format
msgid "Applied patch to '%s' with conflicts.\n"
msgstr "Patch auf '%s' mit Konflikten angewendet.\n"
-#: apply.c:3649
+#: apply.c:3659
#, c-format
msgid "Applied patch to '%s' cleanly.\n"
msgstr "Patch auf '%s' sauber angewendet.\n"
-#: apply.c:3666
+#: apply.c:3676
#, c-format
msgid "Falling back to direct application...\n"
msgstr "Ausweichen auf direkte Anwendung...\n"
-#: apply.c:3678
+#: apply.c:3688
msgid "removal patch leaves file contents"
msgstr "Lösch-Patch hinterlässt Dateiinhalte"
-#: apply.c:3751
+#: apply.c:3761
#, c-format
msgid "%s: wrong type"
msgstr "%s: falscher Typ"
-#: apply.c:3753
+#: apply.c:3763
#, c-format
msgid "%s has type %o, expected %o"
msgstr "%s ist vom Typ %o, erwartete %o"
-#: apply.c:3918 apply.c:3920 read-cache.c:889 read-cache.c:918
-#: read-cache.c:1381
+#: apply.c:3900 apply.c:3902 read-cache.c:903 read-cache.c:932
+#: read-cache.c:1399
#, c-format
msgid "invalid path '%s'"
msgstr "Ungültiger Pfad '%s'"
-#: apply.c:3976
+#: apply.c:3958
#, c-format
msgid "%s: already exists in index"
msgstr "%s ist bereits bereitgestellt"
-#: apply.c:3980
+#: apply.c:3962
#, c-format
msgid "%s: already exists in working directory"
msgstr "%s existiert bereits im Arbeitsverzeichnis"
-#: apply.c:4000
+#: apply.c:3982
#, c-format
msgid "new mode (%o) of %s does not match old mode (%o)"
msgstr "neuer Modus (%o) von %s entspricht nicht dem alten Modus (%o)"
-#: apply.c:4005
+#: apply.c:3987
#, c-format
msgid "new mode (%o) of %s does not match old mode (%o) of %s"
msgstr "neuer Modus (%o) von %s entspricht nicht dem alten Modus (%o) von %s"
-#: apply.c:4025
+#: apply.c:4007
#, c-format
msgid "affected file '%s' is beyond a symbolic link"
msgstr "betroffene Datei '%s' ist hinter einer symbolischen Verknüpfung"
-#: apply.c:4029
+#: apply.c:4011
#, c-format
msgid "%s: patch does not apply"
msgstr "%s: Patch konnte nicht angewendet werden"
-#: apply.c:4044
+#: apply.c:4026
#, c-format
msgid "Checking patch %s..."
msgstr "Prüfe Patch %s..."
-#: apply.c:4136
+#: apply.c:4118
#, c-format
msgid "sha1 information is lacking or useless for submodule %s"
msgstr "SHA-1 Information fehlt oder ist unbrauchbar für Submodul %s"
-#: apply.c:4143
+#: apply.c:4125
#, c-format
msgid "mode change for %s, which is not in current HEAD"
msgstr "Modusänderung für %s, was sich nicht im aktuellen HEAD befindet"
-#: apply.c:4146
+#: apply.c:4128
#, c-format
msgid "sha1 information is lacking or useless (%s)."
msgstr "SHA-1 Information fehlt oder ist unbrauchbar (%s)."
-#: apply.c:4155
+#: apply.c:4137
#, c-format
msgid "could not add %s to temporary index"
msgstr "konnte %s nicht zum temporären Index hinzufügen"
-#: apply.c:4165
+#: apply.c:4147
#, c-format
msgid "could not write temporary index to %s"
msgstr "konnte temporären Index nicht nach %s schreiben"
-#: apply.c:4303
+#: apply.c:4285
#, c-format
msgid "unable to remove %s from index"
msgstr "konnte %s nicht aus dem Index entfernen"
-#: apply.c:4337
+#: apply.c:4319
#, c-format
msgid "corrupt patch for submodule %s"
msgstr "fehlerhafter Patch für Submodul %s"
-#: apply.c:4343
+#: apply.c:4325
#, c-format
msgid "unable to stat newly created file '%s'"
msgstr "konnte neu erstellte Datei '%s' nicht lesen"
-#: apply.c:4351
+#: apply.c:4333
#, c-format
msgid "unable to create backing store for newly created file %s"
msgstr "kann internen Speicher für eben erstellte Datei %s nicht erzeugen"
-#: apply.c:4357 apply.c:4502
+#: apply.c:4339 apply.c:4484
#, c-format
msgid "unable to add cache entry for %s"
msgstr "kann für %s keinen Eintrag in den Zwischenspeicher hinzufügen"
-#: apply.c:4400 builtin/bisect--helper.c:540 builtin/gc.c:2258
+#: apply.c:4382 builtin/bisect--helper.c:540 builtin/gc.c:2258
#: builtin/gc.c:2293
#, c-format
msgid "failed to write to '%s'"
msgstr "Fehler beim Schreiben nach '%s'"
-#: apply.c:4404
+#: apply.c:4386
#, c-format
msgid "closing file '%s'"
msgstr "schließe Datei '%s'"
-#: apply.c:4474
+#: apply.c:4456
#, c-format
msgid "unable to write file '%s' mode %o"
msgstr "konnte Datei '%s' mit Modus %o nicht schreiben"
-#: apply.c:4572
+#: apply.c:4554
#, c-format
msgid "Applied patch %s cleanly."
-msgstr "Patch %s sauber angewendet"
+msgstr "Patch %s sauber angewendet."
-#: apply.c:4580
+#: apply.c:4562
msgid "internal error"
msgstr "interner Fehler"
-#: apply.c:4583
+#: apply.c:4565
#, c-format
msgid "Applying patch %%s with %d reject..."
msgid_plural "Applying patch %%s with %d rejects..."
msgstr[0] "Wende Patch %%s mit %d Zurückweisung an..."
msgstr[1] "Wende Patch %%s mit %d Zurückweisungen an..."
-#: apply.c:4594
+#: apply.c:4576
#, c-format
msgid "truncating .rej filename to %.*s.rej"
msgstr "Verkürze Name von .rej Datei zu %.*s.rej"
-#: apply.c:4602
+#: apply.c:4584
#, c-format
msgid "cannot open %s"
msgstr "kann '%s' nicht öffnen"
-#: apply.c:4616
+#: apply.c:4598
#, c-format
msgid "Hunk #%d applied cleanly."
msgstr "Patch-Bereich #%d sauber angewendet."
-#: apply.c:4620
+#: apply.c:4602
#, c-format
msgid "Rejected hunk #%d."
msgstr "Patch-Block #%d zurückgewiesen."
-#: apply.c:4749
+#: apply.c:4731
#, c-format
msgid "Skipped patch '%s'."
msgstr "Patch '%s' ausgelassen."
-#: apply.c:4758
+#: apply.c:4740
msgid "No valid patches in input (allow with \"--allow-empty\")"
msgstr "Keine gültigen Patches in der Eingabe (erlauben mit \"--allow-empty\")"
-#: apply.c:4779
+#: apply.c:4761
msgid "unable to read index file"
msgstr "Konnte Index-Datei nicht lesen"
-#: apply.c:4936
+#: apply.c:4918
#, c-format
msgid "can't open patch '%s': %s"
msgstr "kann Patch '%s' nicht öffnen: %s"
-#: apply.c:4963
+#: apply.c:4945
#, c-format
msgid "squelched %d whitespace error"
msgid_plural "squelched %d whitespace errors"
msgstr[0] "unterdrückte %d Whitespace-Fehler"
msgstr[1] "unterdrückte %d Whitespace-Fehler"
-#: apply.c:4969 apply.c:4984
+#: apply.c:4951 apply.c:4966
#, c-format
msgid "%d line adds whitespace errors."
msgid_plural "%d lines add whitespace errors."
msgstr[0] "%d Zeile fügt Whitespace-Fehler hinzu."
msgstr[1] "%d Zeilen fügen Whitespace-Fehler hinzu."
-#: apply.c:4977
+#: apply.c:4959
#, c-format
msgid "%d line applied after fixing whitespace errors."
msgid_plural "%d lines applied after fixing whitespace errors."
msgstr[0] "%d Zeile nach Behebung von Whitespace-Fehlern angewendet."
msgstr[1] "%d Zeilen nach Behebung von Whitespace-Fehlern angewendet."
-#: apply.c:4993 builtin/add.c:704 builtin/mv.c:338 builtin/rm.c:430
+#: apply.c:4975 builtin/add.c:690 builtin/mv.c:338 builtin/rm.c:430
msgid "Unable to write new index file"
-msgstr "Konnte neue Index-Datei nicht schreiben."
+msgstr "Konnte neue Index-Datei nicht schreiben"
-#: apply.c:5021
+#: apply.c:5003
msgid "don't apply changes matching the given path"
msgstr "keine Änderungen im angegebenen Pfad anwenden"
-#: apply.c:5024
+#: apply.c:5006
msgid "apply changes matching the given path"
msgstr "Änderungen nur im angegebenen Pfad anwenden"
-#: apply.c:5026 builtin/am.c:2376
+#: apply.c:5008 builtin/am.c:2379
msgid "num"
msgstr "Anzahl"
-#: apply.c:5027
+#: apply.c:5009
msgid "remove <num> leading slashes from traditional diff paths"
msgstr ""
"<Anzahl> vorangestellte Schrägstriche von herkömmlichen Differenzpfaden "
"entfernen"
-#: apply.c:5030
+#: apply.c:5012
msgid "ignore additions made by the patch"
msgstr "hinzugefügte Zeilen des Patches ignorieren"
-#: apply.c:5032
+#: apply.c:5014
msgid "instead of applying the patch, output diffstat for the input"
msgstr ""
"statt den Patch anzuwenden, den \"diffstat\" für die Eingabe ausgegeben"
-#: apply.c:5036
+#: apply.c:5018
msgid "show number of added and deleted lines in decimal notation"
msgstr ""
"die Anzahl von hinzugefügten/entfernten Zeilen in Dezimalnotation anzeigen"
-#: apply.c:5038
+#: apply.c:5020
msgid "instead of applying the patch, output a summary for the input"
msgstr ""
"statt den Patch anzuwenden, eine Zusammenfassung für die Eingabe ausgeben"
-#: apply.c:5040
+#: apply.c:5022
msgid "instead of applying the patch, see if the patch is applicable"
msgstr ""
"statt den Patch anzuwenden, anzeigen ob der Patch angewendet werden kann"
-#: apply.c:5042
+#: apply.c:5024
msgid "make sure the patch is applicable to the current index"
msgstr ""
"sicherstellen, dass der Patch mit dem aktuellen Index angewendet werden kann"
-#: apply.c:5044
+#: apply.c:5026
msgid "mark new files with `git add --intent-to-add`"
msgstr "neue Dateien mit `git add --intent-to-add` markieren"
-#: apply.c:5046
+#: apply.c:5028
msgid "apply a patch without touching the working tree"
msgstr "Patch anwenden, ohne Änderungen im Arbeitsverzeichnis vorzunehmen"
-#: apply.c:5048
+#: apply.c:5030
msgid "accept a patch that touches outside the working area"
msgstr ""
"Patch anwenden, der Änderungen außerhalb des Arbeitsverzeichnisses vornimmt"
-#: apply.c:5051
+#: apply.c:5033
msgid "also apply the patch (use with --stat/--summary/--check)"
msgstr "Patch anwenden (Benutzung mit --stat/--summary/--check)"
-#: apply.c:5053
+#: apply.c:5035
msgid "attempt three-way merge, fall back on normal patch if that fails"
msgstr ""
"versuche 3-Wege-Merge, weiche auf normalen Patch aus, wenn dies fehlschlägt"
-#: apply.c:5055
+#: apply.c:5037
msgid "build a temporary index based on embedded index information"
msgstr ""
"einen temporären Index, basierend auf den integrierten Index-Informationen, "
"erstellen"
-#: apply.c:5058 builtin/checkout-index.c:196
+#: apply.c:5040 builtin/checkout-index.c:230
msgid "paths are separated with NUL character"
msgstr "Pfade sind getrennt durch NUL Zeichen"
-#: apply.c:5060
+#: apply.c:5042
msgid "ensure at least <n> lines of context match"
msgstr ""
"sicher stellen, dass mindestens <n> Zeilen des Kontextes übereinstimmen"
-#: apply.c:5061 builtin/am.c:2352 builtin/am.c:2355
+#: apply.c:5043 builtin/am.c:2355 builtin/am.c:2358
#: builtin/interpret-trailers.c:98 builtin/interpret-trailers.c:100
-#: builtin/interpret-trailers.c:102 builtin/pack-objects.c:3960
-#: builtin/rebase.c:1051
+#: builtin/interpret-trailers.c:102 builtin/pack-objects.c:3983
+#: builtin/rebase.c:1079
msgid "action"
msgstr "Aktion"
-#: apply.c:5062
+#: apply.c:5044
msgid "detect new or modified lines that have whitespace errors"
msgstr "neue oder geänderte Zeilen, die Whitespace-Fehler haben, ermitteln"
-#: apply.c:5065 apply.c:5068
+#: apply.c:5047 apply.c:5050
msgid "ignore changes in whitespace when finding context"
msgstr "Änderungen im Whitespace bei der Suche des Kontextes ignorieren"
-#: apply.c:5071
+#: apply.c:5053
msgid "apply the patch in reverse"
msgstr "den Patch in umgekehrter Reihenfolge anwenden"
-#: apply.c:5073
+#: apply.c:5055
msgid "don't expect at least one line of context"
msgstr "keinen Kontext erwarten"
-#: apply.c:5075
+#: apply.c:5057
msgid "leave the rejected hunks in corresponding *.rej files"
msgstr ""
"zurückgewiesene Patch-Blöcke in entsprechenden *.rej Dateien hinterlassen"
-#: apply.c:5077
+#: apply.c:5059
msgid "allow overlapping hunks"
msgstr "sich überlappende Patch-Blöcke erlauben"
-#: apply.c:5080
+#: apply.c:5062
msgid "tolerate incorrectly detected missing new-line at the end of file"
msgstr "fehlerhaft erkannten fehlenden Zeilenumbruch am Dateiende tolerieren"
-#: apply.c:5083
+#: apply.c:5065
msgid "do not trust the line counts in the hunk headers"
msgstr "den Zeilennummern im Kopf des Patch-Blocks nicht vertrauen"
-#: apply.c:5085 builtin/am.c:2364
+#: apply.c:5067 builtin/am.c:2367
msgid "root"
msgstr "Wurzelverzeichnis"
-#: apply.c:5086
+#: apply.c:5068
msgid "prepend <root> to all filenames"
msgstr "<Wurzelverzeichnis> vor alle Dateinamen stellen"
-#: apply.c:5089
+#: apply.c:5071
msgid "don't return error for empty patches"
msgstr "keinen Fehler für leere Patches zurückgeben"
-#: archive-tar.c:125 archive-zip.c:345
+#: archive-tar.c:125 archive-zip.c:346
#, c-format
msgid "cannot stream blob %s"
-msgstr "Kann Blob %s nicht streamen."
+msgstr "kann Blob %s nicht streamen"
-#: archive-tar.c:265 archive-zip.c:358
+#: archive-tar.c:265 archive-zip.c:359
#, c-format
msgid "unsupported file mode: 0%o (SHA1: %s)"
msgstr "Nicht unterstützter Dateimodus: 0%o (SHA1: %s)"
@@ -1576,33 +1578,33 @@ msgstr "Nicht unterstützter Dateimodus: 0%o (SHA1: %s)"
#: archive-tar.c:447
#, c-format
msgid "unable to start '%s' filter"
-msgstr "Konnte '%s' Filter nicht starten."
+msgstr "konnte '%s' Filter nicht starten"
#: archive-tar.c:450
msgid "unable to redirect descriptor"
-msgstr "Konnte Descriptor nicht umleiten."
+msgstr "konnte Descriptor nicht umleiten"
#: archive-tar.c:457
#, c-format
msgid "'%s' filter reported error"
-msgstr "'%s' Filter meldete Fehler."
+msgstr "'%s' Filter meldete Fehler"
-#: archive-zip.c:318
+#: archive-zip.c:319
#, c-format
msgid "path is not valid UTF-8: %s"
msgstr "Pfad ist kein gültiges UTF-8: %s"
-#: archive-zip.c:322
+#: archive-zip.c:323
#, c-format
msgid "path too long (%d chars, SHA1: %s): %s"
msgstr "Pfad zu lang (%d Zeichen, SHA1: %s): %s"
-#: archive-zip.c:469 builtin/pack-objects.c:365 builtin/pack-objects.c:368
+#: archive-zip.c:470 builtin/pack-objects.c:363 builtin/pack-objects.c:366
#, c-format
msgid "deflate error (%d)"
msgstr "Fehler beim Komprimieren (%d)"
-#: archive-zip.c:603
+#: archive-zip.c:604
#, c-format
msgid "timestamp too large for this system: %<PRIuMAX>"
msgstr "Timestamp zu groß für dieses System: %<PRIuMAX>"
@@ -1611,10 +1613,6 @@ msgstr "Timestamp zu groß für dieses System: %<PRIuMAX>"
msgid "git archive [<options>] <tree-ish> [<path>...]"
msgstr "git archive [<Optionen>] <Commit-Referenz> [<Pfad>...]"
-#: archive.c:15
-msgid "git archive --list"
-msgstr "git archive --list"
-
#: archive.c:16
msgid ""
"git archive --remote <repo> [--exec <cmd>] [<options>] <tree-ish> [<path>...]"
@@ -1627,12 +1625,12 @@ msgid "git archive --remote <repo> [--exec <cmd>] --list"
msgstr "git archive --remote <Repository> [--exec <Programm>] --list"
#: archive.c:188 archive.c:341 builtin/gc.c:497 builtin/notes.c:238
-#: builtin/tag.c:578
+#: builtin/tag.c:579
#, c-format
msgid "cannot read '%s'"
msgstr "kann '%s' nicht lesen"
-#: archive.c:426 builtin/add.c:215 builtin/add.c:671 builtin/rm.c:334
+#: archive.c:426 builtin/add.c:214 builtin/add.c:657 builtin/rm.c:334
#, c-format
msgid "pathspec '%s' did not match any files"
msgstr "Pfadspezifikation '%s' stimmt mit keinen Dateien überein"
@@ -1654,7 +1652,7 @@ msgstr "Kein Tree-Objekt: %s"
#: archive.c:481
msgid "current working directory is untracked"
-msgstr "Aktuelles Arbeitsverzeichnis ist unversioniert."
+msgstr "aktuelles Arbeitsverzeichnis ist unversioniert"
#: archive.c:522
#, c-format
@@ -1674,7 +1672,7 @@ msgstr "Format"
msgid "archive format"
msgstr "Archivformat"
-#: archive.c:552 builtin/log.c:1790
+#: archive.c:552 builtin/log.c:1809
msgid "prefix"
msgstr "Präfix"
@@ -1682,12 +1680,12 @@ msgstr "Präfix"
msgid "prepend prefix to each pathname in the archive"
msgstr "einen Präfix vor jeden Pfadnamen in dem Archiv stellen"
-#: archive.c:554 archive.c:557 builtin/blame.c:880 builtin/blame.c:884
-#: builtin/blame.c:885 builtin/commit-tree.c:115 builtin/config.c:135
+#: archive.c:554 archive.c:557 builtin/blame.c:881 builtin/blame.c:885
+#: builtin/blame.c:886 builtin/commit-tree.c:115 builtin/config.c:135
#: builtin/fast-export.c:1181 builtin/fast-export.c:1183
-#: builtin/fast-export.c:1187 builtin/grep.c:935 builtin/hash-object.c:103
+#: builtin/fast-export.c:1187 builtin/grep.c:936 builtin/hash-object.c:104
#: builtin/ls-files.c:654 builtin/ls-files.c:657 builtin/notes.c:410
-#: builtin/notes.c:576 builtin/read-tree.c:115 parse-options.h:190
+#: builtin/notes.c:576 builtin/read-tree.c:115 parse-options.h:195
msgid "file"
msgstr "Datei"
@@ -1715,8 +1713,8 @@ msgstr "Komprimierungsgrad setzen"
msgid "list supported archive formats"
msgstr "unterstützte Archivformate auflisten"
-#: archive.c:568 builtin/archive.c:89 builtin/clone.c:118 builtin/clone.c:121
-#: builtin/submodule--helper.c:1870 builtin/submodule--helper.c:2513
+#: archive.c:568 builtin/archive.c:89 builtin/clone.c:122 builtin/clone.c:125
+#: builtin/submodule--helper.c:1884 builtin/submodule--helper.c:2718
msgid "repo"
msgstr "Repository"
@@ -1737,11 +1735,12 @@ msgstr "Pfad zum externen \"git-upload-archive\"-Programm"
msgid "Unexpected option --remote"
msgstr "Unerwartete Option --remote"
-#: archive.c:580 fetch-pack.c:300 revision.c:2887 builtin/add.c:544
-#: builtin/add.c:576 builtin/checkout.c:1763 builtin/commit.c:370
-#: builtin/fast-export.c:1230 builtin/index-pack.c:1848 builtin/log.c:2115
-#: builtin/reset.c:435 builtin/reset.c:493 builtin/rm.c:281
-#: builtin/stash.c:1719 builtin/worktree.c:508 http-fetch.c:144
+#: archive.c:580 fetch-pack.c:300 revision.c:2914 builtin/add.c:530
+#: builtin/add.c:562 builtin/checkout.c:1782 builtin/clone.c:1099
+#: builtin/clone.c:1102 builtin/commit.c:371 builtin/fast-export.c:1230
+#: builtin/index-pack.c:1854 builtin/log.c:2140 builtin/reset.c:442
+#: builtin/reset.c:500 builtin/rm.c:281 builtin/stash.c:1708
+#: builtin/worktree.c:580 builtin/worktree.c:781 http-fetch.c:144
#: http-fetch.c:153
#, c-format
msgid "the option '%s' requires '%s'"
@@ -1761,17 +1760,17 @@ msgstr "Unbekanntes Archivformat '%s'"
msgid "Argument not supported for format '%s': -%d"
msgstr "Argument für Format '%s' nicht unterstützt: -%d"
-#: attr.c:203
+#: attr.c:202
#, c-format
msgid "%.*s is not a valid attribute name"
msgstr "%.*s ist kein gültiger Attributname"
-#: attr.c:364
+#: attr.c:363
#, c-format
msgid "%s not allowed: %s:%d"
msgstr "%s nicht erlaubt: %s:%d"
-#: attr.c:404
+#: attr.c:403
msgid ""
"Negative patterns are ignored in git attributes\n"
"Use '\\!' for literal leading exclamation."
@@ -1789,12 +1788,12 @@ msgstr "Ungültiger Inhalt bzgl. Anführungszeichen in Datei '%s': %s"
msgid "We cannot bisect more!\n"
msgstr "Keine binäre Suche mehr möglich!\n"
-#: bisect.c:764
+#: bisect.c:765
#, c-format
msgid "Not a valid commit name %s"
msgstr "%s ist kein gültiger Commit-Name"
-#: bisect.c:789
+#: bisect.c:790
#, c-format
msgid ""
"The merge base %s is bad.\n"
@@ -1803,7 +1802,7 @@ msgstr ""
"Die Merge-Basis %s ist fehlerhaft.\n"
"Das bedeutet, der Fehler wurde zwischen %s und [%s] behoben.\n"
-#: bisect.c:794
+#: bisect.c:795
#, c-format
msgid ""
"The merge base %s is new.\n"
@@ -1812,7 +1811,7 @@ msgstr ""
"Die Merge-Basis %s ist neu.\n"
"Das bedeutet, die Eigenschaft hat sich zwischen %s und [%s] geändert.\n"
-#: bisect.c:799
+#: bisect.c:800
#, c-format
msgid ""
"The merge base %s is %s.\n"
@@ -1821,7 +1820,7 @@ msgstr ""
"Die Merge-Basis %s ist %s.\n"
"Das bedeutet, der erste '%s' Commit befindet sich zwischen %s und [%s].\n"
-#: bisect.c:807
+#: bisect.c:808
#, c-format
msgid ""
"Some %s revs are not ancestors of the %s rev.\n"
@@ -1832,7 +1831,7 @@ msgstr ""
"git bisect kann in diesem Fall nicht richtig arbeiten.\n"
"Vielleicht verwechselten Sie %s und %s Commits?\n"
-#: bisect.c:820
+#: bisect.c:821
#, c-format
msgid ""
"the merge base between %s and [%s] must be skipped.\n"
@@ -1844,36 +1843,36 @@ msgstr ""
"erste %s Commit zwischen %s und %s befindet.\n"
"Es wird dennoch fortgesetzt."
-#: bisect.c:859
+#: bisect.c:860
#, c-format
msgid "Bisecting: a merge base must be tested\n"
-msgstr "binäre Suche: eine Merge-Basis muss geprüft werden\n"
+msgstr "Binäre Suche: eine Merge-Basis muss geprüft werden\n"
-#: bisect.c:909
+#: bisect.c:910
#, c-format
msgid "a %s revision is needed"
msgstr "ein %s Commit wird benötigt"
-#: bisect.c:939
+#: bisect.c:940
#, c-format
msgid "could not create file '%s'"
msgstr "konnte Datei '%s' nicht erstellen"
-#: bisect.c:985 builtin/merge.c:155
+#: bisect.c:986 builtin/merge.c:155
#, c-format
msgid "could not read file '%s'"
msgstr "Konnte Datei '%s' nicht lesen"
-#: bisect.c:1025
+#: bisect.c:1026
msgid "reading bisect refs failed"
msgstr "Lesen von Referenzen für binäre Suche fehlgeschlagen"
-#: bisect.c:1055
+#: bisect.c:1056
#, c-format
msgid "%s was both %s and %s\n"
msgstr "%s war sowohl %s als auch %s\n"
-#: bisect.c:1064
+#: bisect.c:1065
#, c-format
msgid ""
"No testable commit found.\n"
@@ -1882,7 +1881,7 @@ msgstr ""
"Kein testbarer Commit gefunden.\n"
"Vielleicht starteten Sie mit schlechten Pfad-Argumenten?\n"
-#: bisect.c:1093
+#: bisect.c:1094
#, c-format
msgid "(roughly %d step)"
msgid_plural "(roughly %d steps)"
@@ -1892,56 +1891,56 @@ msgstr[1] "(ungefähr %d Schritte)"
#. TRANSLATORS: the last %s will be replaced with "(roughly %d
#. steps)" translation.
#.
-#: bisect.c:1099
+#: bisect.c:1100
#, c-format
msgid "Bisecting: %d revision left to test after this %s\n"
msgid_plural "Bisecting: %d revisions left to test after this %s\n"
-msgstr[0] "binäre Suche: danach noch %d Commit zum Testen übrig %s\n"
-msgstr[1] "binäre Suche: danach noch %d Commits zum Testen übrig %s\n"
+msgstr[0] "Binäre Suche: danach noch %d Commit zum Testen übrig %s\n"
+msgstr[1] "Binäre Suche: danach noch %d Commits zum Testen übrig %s\n"
-#: blame.c:2776
+#: blame.c:2773
msgid "--contents and --reverse do not blend well."
msgstr "--contents und --reverse funktionieren gemeinsam nicht."
-#: blame.c:2790
+#: blame.c:2787
msgid "cannot use --contents with final commit object name"
msgstr ""
"kann --contents nicht mit endgültigem Namen des Commit-Objektes benutzen"
-#: blame.c:2811
+#: blame.c:2808
msgid "--reverse and --first-parent together require specified latest commit"
msgstr ""
"--reverse und --first-parent zusammen erfordern die Angabe eines "
"endgültigen\n"
"Commits"
-#: blame.c:2820 bundle.c:224 midx.c:1042 ref-filter.c:2370 remote.c:2158
-#: sequencer.c:2352 sequencer.c:4899 submodule.c:883 builtin/commit.c:1114
-#: builtin/log.c:429 builtin/log.c:1036 builtin/log.c:1644 builtin/log.c:2071
-#: builtin/log.c:2362 builtin/merge.c:431 builtin/pack-objects.c:3373
-#: builtin/pack-objects.c:3775 builtin/pack-objects.c:3790
+#: blame.c:2817 bundle.c:231 midx.c:1058 ref-filter.c:2371 remote.c:2157
+#: sequencer.c:2348 sequencer.c:4872 submodule.c:913 builtin/commit.c:1118
+#: builtin/log.c:437 builtin/log.c:1055 builtin/log.c:1663 builtin/log.c:2096
+#: builtin/log.c:2387 builtin/merge.c:431 builtin/pack-objects.c:3381
+#: builtin/pack-objects.c:3781 builtin/pack-objects.c:3796
#: builtin/shortlog.c:255
msgid "revision walk setup failed"
msgstr "Einrichtung des Revisionsgangs fehlgeschlagen"
-#: blame.c:2838
+#: blame.c:2835
msgid ""
"--reverse --first-parent together require range along first-parent chain"
msgstr ""
"--reverse und --first-parent zusammen erfordern einen Bereich entlang der\n"
"\"first-parent\"-Kette"
-#: blame.c:2849
+#: blame.c:2846
#, c-format
msgid "no such path %s in %s"
msgstr "Pfad %s nicht in %s gefunden"
-#: blame.c:2860
+#: blame.c:2857
#, c-format
msgid "cannot read blob %s for path %s"
msgstr "kann Blob %s für Pfad '%s' nicht lesen"
-#: branch.c:77
+#: branch.c:93
msgid ""
"cannot inherit upstream tracking configuration of multiple refs when "
"rebasing is requested"
@@ -1949,31 +1948,31 @@ msgstr ""
"Upstream-Tracking-Konfiguration von mehreren Referenzen kann nicht vererbt "
"werden, wenn ein Rebase angefordert wird"
-#: branch.c:88
+#: branch.c:104
#, c-format
msgid "not setting branch '%s' as its own upstream"
msgstr "Branch %s nicht als sein eigener Upstream-Branch gesetzt"
-#: branch.c:144
+#: branch.c:160
#, c-format
msgid "branch '%s' set up to track '%s' by rebasing."
msgstr "Branch '%s' folgt nun '%s' durch Rebase."
-#: branch.c:145
+#: branch.c:161
#, c-format
msgid "branch '%s' set up to track '%s'."
msgstr "Branch '%s' folgt nun '%s'."
-#: branch.c:148
+#: branch.c:164
#, c-format
msgid "branch '%s' set up to track:"
msgstr "Branch '%s' folgt nun:"
-#: branch.c:160
+#: branch.c:176
msgid "unable to write upstream branch configuration"
msgstr "konnte Konfiguration zu Upstream-Branch nicht schreiben"
-#: branch.c:162
+#: branch.c:178
msgid ""
"\n"
"After fixing the error cause you may try to fix up\n"
@@ -1983,53 +1982,92 @@ msgstr ""
"Nachdem Sie die Fehlerursache behoben haben, können Sie\n"
"die Tracking-Informationen erneut setzen mit:"
-#: branch.c:203
+#: branch.c:219
#, c-format
msgid "asked to inherit tracking from '%s', but no remote is set"
msgstr ""
"Vererbung des Tracking von '%s' angefragt, aber es ist kein Remote-"
"Repository gesetzt"
-#: branch.c:209
+#: branch.c:225
#, c-format
msgid "asked to inherit tracking from '%s', but no merge configuration is set"
msgstr ""
"Vererbung des Tracking von '%s' angefragt, aber es ist keine Merge-"
"Konfiguration gesetzt"
-#: branch.c:252
+#: branch.c:277
#, c-format
-msgid "not tracking: ambiguous information for ref %s"
-msgstr "kein Tracking: mehrdeutige Informationen für Referenz %s"
+msgid "not tracking: ambiguous information for ref '%s'"
+msgstr "kein Tracking: mehrdeutige Informationen für Referenz '%s'"
-#: branch.c:287
+#. TRANSLATORS: This is a line listing a remote with duplicate
+#. refspecs in the advice message below. For RTL languages you'll
+#. probably want to swap the "%s" and leading " " space around.
+#.
+#. TRANSLATORS: This is line item of ambiguous object output
+#. from describe_ambiguous_object() above. For RTL languages
+#. you'll probably want to swap the "%s" and leading " " space
+#. around.
+#.
+#: branch.c:289 object-name.c:464
+#, c-format
+msgid " %s\n"
+msgstr " %s\n"
+
+#. TRANSLATORS: The second argument is a \n-delimited list of
+#. duplicate refspecs, composed above.
+#.
+#: branch.c:295
+#, c-format
+msgid ""
+"There are multiple remotes whose fetch refspecs map to the remote\n"
+"tracking ref '%s':\n"
+"%s\n"
+"This is typically a configuration error.\n"
+"\n"
+"To support setting up tracking branches, ensure that\n"
+"different remotes' fetch refspecs map into different\n"
+"tracking namespaces."
+msgstr ""
+"Es gibt mehrere Remote-Repositories, deren Fetch-Refspecs der\n"
+"Remote-Tracking-Referenz '%s' zugeordnet sind:\n"
+"%s\n"
+"Das ist in der Regel ein Konfigurationsfehler.\n"
+"\n"
+"Um das Setzen von Tracking-Branches zu unterstützen,\n"
+"stellen Sie sicher, dass verschiedene Fetch-Refspecs der\n"
+"Remote-Repositories zu verschiedenen Tracking-Namensräumen\n"
+"zugeordnet werden."
+
+#: branch.c:344
#, c-format
msgid "'%s' is not a valid branch name"
msgstr "'%s' ist kein gültiger Branchname"
-#: branch.c:307
+#: branch.c:364
#, c-format
msgid "a branch named '%s' already exists"
msgstr "Branch '%s' existiert bereits"
-#: branch.c:313
+#: branch.c:370
#, c-format
msgid "cannot force update the branch '%s' checked out at '%s'"
msgstr ""
"kann Aktualisierung des Branches '%s' nicht erzwingen, ausgecheckt in '%s'"
-#: branch.c:336
+#: branch.c:393
#, c-format
msgid "cannot set up tracking information; starting point '%s' is not a branch"
msgstr ""
"kann Tracking-Informationen nicht einrichten; Startpunkt '%s' ist kein Branch"
-#: branch.c:338
+#: branch.c:395
#, c-format
msgid "the requested upstream branch '%s' does not exist"
msgstr "der angeforderte Upstream-Branch '%s' existiert nicht"
-#: branch.c:340
+#: branch.c:397
msgid ""
"\n"
"If you are planning on basing your work on an upstream\n"
@@ -2050,126 +2088,145 @@ msgstr ""
"\"git push -u\" verwenden, um den Upstream-Branch beim \"push\"\n"
"zu konfigurieren."
-#: branch.c:384 builtin/replace.c:321 builtin/replace.c:377
+#: branch.c:445 builtin/replace.c:321 builtin/replace.c:377
#: builtin/replace.c:423 builtin/replace.c:453
#, c-format
msgid "not a valid object name: '%s'"
msgstr "kein gültiger Objektname: '%s'"
-#: branch.c:404
+#: branch.c:465
#, c-format
msgid "ambiguous object name: '%s'"
msgstr "mehrdeutiger Objekt-Name: '%s'"
-#: branch.c:409
+#: branch.c:470
#, c-format
msgid "not a valid branch point: '%s'"
msgstr "ungültiger Branchpunkt: '%s'"
-#: branch.c:469
+#: branch.c:658
+#, c-format
+msgid "submodule '%s': unable to find submodule"
+msgstr "Submodul '%s': Submodul konnte nicht gefunden werden"
+
+#: branch.c:661
+#, c-format
+msgid ""
+"You may try updating the submodules using 'git checkout %s && git submodule "
+"update --init'"
+msgstr ""
+"Sie können versuchen die Submodule mit 'git checkout %s && git submodule "
+"update --init' zu aktualisieren"
+
+#: branch.c:672 branch.c:698
+#, c-format
+msgid "submodule '%s': cannot create branch '%s'"
+msgstr "Submodul '%s': kann Branch nicht erzeugen: '%s'"
+
+#: branch.c:730
#, c-format
msgid "'%s' is already checked out at '%s'"
msgstr "'%s' ist bereits in '%s' ausgecheckt"
-#: branch.c:494
+#: branch.c:755
#, c-format
msgid "HEAD of working tree %s is not updated"
-msgstr "HEAD des Arbeitsverzeichnisses %s ist nicht aktualisiert."
+msgstr "HEAD des Arbeitsverzeichnisses %s ist nicht aktualisiert"
-#: bundle.c:44
+#: bundle.c:45
#, c-format
msgid "unrecognized bundle hash algorithm: %s"
msgstr "unbekannter Paket-Hash-Algorithmus: %s"
-#: bundle.c:48
+#: bundle.c:53
#, c-format
msgid "unknown capability '%s'"
msgstr "unbekannte Fähigkeit '%s'"
-#: bundle.c:74
+#: bundle.c:79
#, c-format
msgid "'%s' does not look like a v2 or v3 bundle file"
msgstr "'%s' sieht nicht wie eine v2 oder v3 Paketdatei aus"
-#: bundle.c:113
+#: bundle.c:118
#, c-format
msgid "unrecognized header: %s%s (%d)"
msgstr "nicht erkannter Kopfbereich: %s%s (%d)"
-#: bundle.c:140 rerere.c:464 rerere.c:674 sequencer.c:2620 sequencer.c:3406
-#: builtin/commit.c:862
+#: bundle.c:145 rerere.c:464 rerere.c:675 sequencer.c:2616 sequencer.c:3402
+#: builtin/commit.c:865
#, c-format
msgid "could not open '%s'"
msgstr "Konnte '%s' nicht öffnen"
-#: bundle.c:198
+#: bundle.c:203
msgid "Repository lacks these prerequisite commits:"
msgstr "Dem Repository fehlen folgende vorausgesetzte Commits:"
-#: bundle.c:201
+#: bundle.c:206
msgid "need a repository to verify a bundle"
-msgstr "Um ein Paket zu überprüfen wird ein Repository benötigt."
+msgstr "um ein Paket zu überprüfen wird ein Repository benötigt"
-#: bundle.c:257
+#: bundle.c:264
#, c-format
msgid "The bundle contains this ref:"
-msgid_plural "The bundle contains these %d refs:"
+msgid_plural "The bundle contains these %<PRIuMAX> refs:"
msgstr[0] "Das Paket enthält diese Referenz:"
-msgstr[1] "Das Paket enthält diese %d Referenzen:"
+msgstr[1] "Das Paket enthält diese %<PRIuMAX> Referenzen:"
-#: bundle.c:264
+#: bundle.c:272
msgid "The bundle records a complete history."
msgstr "Das Paket speichert eine komplette Historie."
-#: bundle.c:266
+#: bundle.c:274
#, c-format
msgid "The bundle requires this ref:"
-msgid_plural "The bundle requires these %d refs:"
+msgid_plural "The bundle requires these %<PRIuMAX> refs:"
msgstr[0] "Das Paket benötigt diese Referenz:"
-msgstr[1] "Das Paket benötigt diese %d Referenzen:"
+msgstr[1] "Das Paket benötigt diese %<PRIuMAX> Referenzen:"
-#: bundle.c:333
+#: bundle.c:350
msgid "unable to dup bundle descriptor"
-msgstr "Konnte dup für Descriptor des Pakets nicht ausführen."
+msgstr "konnte dup für Descriptor des Pakets nicht ausführen"
-#: bundle.c:340
+#: bundle.c:357
msgid "Could not spawn pack-objects"
msgstr "Konnte Paketobjekte nicht erstellen"
-#: bundle.c:351
+#: bundle.c:368
msgid "pack-objects died"
msgstr "Erstellung der Paketobjekte abgebrochen"
-#: bundle.c:400
+#: bundle.c:417
#, c-format
msgid "ref '%s' is excluded by the rev-list options"
msgstr "Referenz '%s' wird durch \"rev-list\" Optionen ausgeschlossen"
-#: bundle.c:504
+#: bundle.c:533 builtin/log.c:211 builtin/log.c:1975 builtin/shortlog.c:400
+#, c-format
+msgid "unrecognized argument: %s"
+msgstr "nicht erkanntes Argument: %s"
+
+#: bundle.c:548
#, c-format
msgid "unsupported bundle version %d"
msgstr "nicht unterstützte Paket-Version %d"
-#: bundle.c:506
+#: bundle.c:550
#, c-format
msgid "cannot write bundle version %d with algorithm %s"
msgstr "kann Paket-Version %d nicht mit Algorithmus %s schreiben"
-#: bundle.c:524 builtin/log.c:210 builtin/log.c:1953 builtin/shortlog.c:399
-#, c-format
-msgid "unrecognized argument: %s"
-msgstr "nicht erkanntes Argument: %s"
-
-#: bundle.c:553
+#: bundle.c:600
msgid "Refusing to create empty bundle."
msgstr "Erstellung eines leeren Pakets zurückgewiesen."
-#: bundle.c:563
+#: bundle.c:610
#, c-format
msgid "cannot create '%s'"
msgstr "kann '%s' nicht erstellen"
-#: bundle.c:588
+#: bundle.c:639
msgid "index-pack died"
msgstr "Erstellung der Paketindexdatei abgebrochen"
@@ -2197,7 +2254,7 @@ msgstr "letzter Chunk hat nicht-Null ID %<PRIx32>"
msgid "invalid color value: %.*s"
msgstr "Ungültiger Farbwert: %.*s"
-#: commit-graph.c:204 midx.c:51
+#: commit-graph.c:204 midx.c:52
msgid "invalid hash version"
msgstr "ungültige Hash-Version"
@@ -2208,224 +2265,225 @@ msgstr "Commit-Graph-Datei ist zu klein"
#: commit-graph.c:355
#, c-format
msgid "commit-graph signature %X does not match signature %X"
-msgstr "Commit-Graph-Signatur %X stimmt nicht mit Signatur %X überein."
+msgstr "Commit-Graph-Signatur %X stimmt nicht mit Signatur %X überein"
#: commit-graph.c:362
#, c-format
msgid "commit-graph version %X does not match version %X"
-msgstr "Commit-Graph-Version %X stimmt nicht mit Version %X überein."
+msgstr "Commit-Graph-Version %X stimmt nicht mit Version %X überein"
#: commit-graph.c:369
#, 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."
+msgstr "Hash-Version des Commit-Graph %X stimmt nicht mit Version %X überein"
#: commit-graph.c:386
#, c-format
msgid "commit-graph file is too small to hold %u chunks"
msgstr "Commit-Graph-Datei ist zu klein, um %u Chunks zu enthalten"
-#: commit-graph.c:482
+#: commit-graph.c:485
msgid "commit-graph has no base graphs chunk"
msgstr "Commit-Graph hat keinen Basis-Graph-Chunk"
-#: commit-graph.c:492
+#: commit-graph.c:495
msgid "commit-graph chain does not match"
-msgstr "Commit-Graph Verkettung stimmt nicht überein."
+msgstr "Commit-Graph Verkettung stimmt nicht überein"
-#: commit-graph.c:540
+#: commit-graph.c:543
#, 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:564
+#: commit-graph.c:567
msgid "unable to find all commit-graph files"
-msgstr "Konnte nicht alle Commit-Graph-Dateien finden."
+msgstr "konnte nicht alle Commit-Graph-Dateien finden"
-#: commit-graph.c:749 commit-graph.c:786
+#: commit-graph.c:752 commit-graph.c:789
msgid "invalid commit position. commit-graph is likely corrupt"
-msgstr "Ungültige Commit-Position. Commit-Graph ist wahrscheinlich beschädigt."
+msgstr "ungültige Commit-Position. Commit-Graph ist wahrscheinlich beschädigt"
-#: commit-graph.c:770
+#: commit-graph.c:773
#, c-format
msgid "could not find commit %s"
-msgstr "Konnte Commit %s nicht finden."
+msgstr "konnte Commit %s nicht finden"
-#: commit-graph.c:803
+#: commit-graph.c:806
msgid "commit-graph requires overflow generation data but has none"
msgstr "Commit-Graph erfordert Ãœberlaufgenerierungsdaten, aber hat keine"
-#: commit-graph.c:1108 builtin/am.c:1369
+#: commit-graph.c:1111 builtin/am.c:1370 builtin/checkout.c:775
+#: builtin/clone.c:705
#, c-format
msgid "unable to parse commit %s"
-msgstr "Konnte Commit '%s' nicht parsen."
+msgstr "konnte Commit '%s' nicht parsen"
-#: commit-graph.c:1370 builtin/pack-objects.c:3070
+#: commit-graph.c:1373 builtin/pack-objects.c:3078
#, c-format
msgid "unable to get type of object %s"
-msgstr "Konnte Art von Objekt '%s' nicht bestimmen."
+msgstr "konnte Art von Objekt '%s' nicht bestimmen"
-#: commit-graph.c:1401
+#: commit-graph.c:1404
msgid "Loading known commits in commit graph"
msgstr "Lade bekannte Commits in Commit-Graph"
-#: commit-graph.c:1418
+#: commit-graph.c:1421
msgid "Expanding reachable commits in commit graph"
msgstr "Erweitere erreichbare Commits in Commit-Graph"
-#: commit-graph.c:1438
+#: commit-graph.c:1441
msgid "Clearing commit marks in commit graph"
msgstr "Lösche Commit-Markierungen in Commit-Graph"
-#: commit-graph.c:1457
+#: commit-graph.c:1460
msgid "Computing commit graph topological levels"
msgstr "Topologische Ebenen des Commit-Graph werden berechnet"
-#: commit-graph.c:1510
+#: commit-graph.c:1513
msgid "Computing commit graph generation numbers"
msgstr "Commit-Graph Generationsnummern berechnen"
-#: commit-graph.c:1591
+#: commit-graph.c:1598
msgid "Computing commit changed paths Bloom filters"
msgstr "Berechnung der Bloom-Filter für veränderte Pfade des Commits"
-#: commit-graph.c:1668
+#: commit-graph.c:1675
msgid "Collecting referenced commits"
msgstr "Sammle referenzierte Commits"
-#: commit-graph.c:1693
+#: commit-graph.c:1701
#, 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"
+msgid "Finding commits for commit graph in %<PRIuMAX> pack"
+msgid_plural "Finding commits for commit graph in %<PRIuMAX> packs"
+msgstr[0] "Suche Commits für Commit-Graph in %<PRIuMAX> Paket"
+msgstr[1] "Suche Commits für Commit-Graph in %<PRIuMAX> Paketen"
-#: commit-graph.c:1706
+#: commit-graph.c:1714
#, c-format
msgid "error adding pack %s"
-msgstr "Fehler beim Hinzufügen von Paket %s."
+msgstr "Fehler beim Hinzufügen von Paket %s"
-#: commit-graph.c:1710
+#: commit-graph.c:1718
#, c-format
msgid "error opening index for %s"
-msgstr "Fehler beim Öffnen des Index für %s."
+msgstr "Fehler beim Öffnen des Index für %s"
-#: commit-graph.c:1747
+#: commit-graph.c:1756
msgid "Finding commits for commit graph among packed objects"
msgstr "Suche Commits für Commit-Graph in gepackten Objekten"
-#: commit-graph.c:1765
+#: commit-graph.c:1774
msgid "Finding extra edges in commit graph"
msgstr "Suche zusätzliche Ränder in Commit-Graph"
-#: commit-graph.c:1814
+#: commit-graph.c:1823
msgid "failed to write correct number of base graph ids"
-msgstr "Fehler beim Schreiben der korrekten Anzahl von Basis-Graph-IDs."
+msgstr "Fehler beim Schreiben der korrekten Anzahl von Basis-Graph-IDs"
-#: commit-graph.c:1845 midx.c:1149
+#: commit-graph.c:1854 midx.c:1168 builtin/sparse-checkout.c:475
#, c-format
msgid "unable to create leading directories of %s"
-msgstr "Konnte führende Verzeichnisse von '%s' nicht erstellen."
+msgstr "konnte führende Verzeichnisse von '%s' nicht erstellen"
-#: commit-graph.c:1858
+#: commit-graph.c:1868
msgid "unable to create temporary graph layer"
msgstr "konnte temporäre Graphen-Schicht nicht erstellen"
-#: commit-graph.c:1863
+#: commit-graph.c:1873
#, c-format
msgid "unable to adjust shared permissions for '%s'"
msgstr "konnte geteilte Zugriffsberechtigungen für '%s' nicht ändern"
-#: commit-graph.c:1920
+#: commit-graph.c:1930
#, 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:1956
+#: commit-graph.c:1967
msgid "unable to open commit-graph chain file"
msgstr "konnte Commit-Graph Chain-Datei nicht öffnen"
-#: commit-graph.c:1972
+#: commit-graph.c:1983
msgid "failed to rename base commit-graph file"
msgstr "konnte Basis-Commit-Graph-Datei nicht umbenennen"
-#: commit-graph.c:1992
+#: commit-graph.c:2004
msgid "failed to rename temporary commit-graph file"
msgstr "konnte temporäre Commit-Graph-Datei nicht umbenennen"
-#: commit-graph.c:2125
+#: commit-graph.c:2137
msgid "Scanning merged commits"
msgstr "Durchsuche zusammengeführte Commits"
-#: commit-graph.c:2169
+#: commit-graph.c:2181
msgid "Merging commit-graph"
msgstr "Zusammenführen von Commit-Graph"
-#: commit-graph.c:2277
+#: commit-graph.c:2289
msgid "attempting to write a commit-graph, but 'core.commitGraph' is disabled"
msgstr ""
"versuche einen Commit-Graph zu schreiben, aber 'core.commitGraph' ist "
"deaktiviert"
-#: commit-graph.c:2384
+#: commit-graph.c:2396
msgid "too many commits to write graph"
msgstr "zu viele Commits zum Schreiben des Graphen"
-#: commit-graph.c:2482
+#: commit-graph.c:2494
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:2492
+#: commit-graph.c:2504
#, 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:2502 commit-graph.c:2517
+#: commit-graph.c:2514 commit-graph.c:2529
#, 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:2509
+#: commit-graph.c:2521
#, c-format
msgid "failed to parse commit %s from commit-graph"
msgstr "konnte Commit %s von Commit-Graph nicht parsen"
-#: commit-graph.c:2527
+#: commit-graph.c:2539
msgid "Verifying commits in commit graph"
msgstr "Commit in Commit-Graph überprüfen"
-#: commit-graph.c:2542
+#: commit-graph.c:2554
#, 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:2549
+#: commit-graph.c:2561
#, 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:2559
+#: commit-graph.c:2571
#, 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:2568
+#: commit-graph.c:2580
#, 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:2582
+#: commit-graph.c:2594
#, 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:2587
+#: commit-graph.c:2599
#, c-format
msgid ""
"commit-graph has generation number zero for commit %s, but non-zero elsewhere"
@@ -2433,7 +2491,7 @@ msgstr ""
"Commit-Graph hat Generationsnummer null für Commit %s, aber sonst ungleich "
"null"
-#: commit-graph.c:2591
+#: commit-graph.c:2603
#, c-format
msgid ""
"commit-graph has non-zero generation number for commit %s, but zero elsewhere"
@@ -2441,29 +2499,29 @@ msgstr ""
"Commit-Graph hat Generationsnummer ungleich null für Commit %s, aber sonst "
"null"
-#: commit-graph.c:2608
+#: commit-graph.c:2620
#, c-format
msgid "commit-graph generation for commit %s is %<PRIuMAX> < %<PRIuMAX>"
msgstr "Commit-Graph Erstellung für Commit %s ist %<PRIuMAX> < %<PRIuMAX>"
-#: commit-graph.c:2614
+#: commit-graph.c:2626
#, c-format
msgid "commit date for commit %s in commit-graph is %<PRIuMAX> != %<PRIuMAX>"
msgstr ""
"Commit-Datum für Commit %s in Commit-Graph ist %<PRIuMAX> != %<PRIuMAX>"
-#: commit.c:53 sequencer.c:3109 builtin/am.c:399 builtin/am.c:444
-#: builtin/am.c:449 builtin/am.c:1448 builtin/am.c:2123 builtin/replace.c:456
+#: commit.c:54 sequencer.c:3105 builtin/am.c:400 builtin/am.c:445
+#: builtin/am.c:450 builtin/am.c:1449 builtin/am.c:2124 builtin/replace.c:456
#, c-format
msgid "could not parse %s"
msgstr "konnte %s nicht parsen"
-#: commit.c:55
+#: commit.c:56
#, c-format
msgid "%s %s is not a commit!"
msgstr "%s %s ist kein Commit!"
-#: commit.c:196
+#: commit.c:197
msgid ""
"Support for <GIT_DIR>/info/grafts is deprecated\n"
"and will be removed in a future Git version.\n"
@@ -2484,28 +2542,28 @@ msgstr ""
"Sie können diese Meldung unterdrücken, indem Sie\n"
"\"git config advice.graftFileDeprecated false\" ausführen."
-#: commit.c:1241
+#: commit.c:1252
#, 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:1245
+#: commit.c:1256
#, 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:1248
+#: commit.c:1259
#, c-format
msgid "Commit %s does not have a GPG signature."
msgstr "Commit %s hat keine GPG-Signatur."
-#: commit.c:1251
+#: commit.c:1262
#, 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:1505
+#: commit.c:1516
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"
@@ -2521,7 +2579,17 @@ msgstr ""
msgid "memory exhausted"
msgstr "Speicher verbraucht"
-#: config.c:125
+#: compat/terminal.c:167
+msgid "cannot resume in the background, please use 'fg' to resume"
+msgstr ""
+"kann nicht im Hintergrund fortgesetzt werden, bitte verwenden Sie 'fg', um "
+"fortzufahren"
+
+#: compat/terminal.c:168
+msgid "cannot restore terminal settings"
+msgstr "kann Terminaleinstellungen nicht wiederherstellen"
+
+#: config.c:143
#, c-format
msgid ""
"exceeded maximum include depth (%d) while including\n"
@@ -2537,350 +2605,377 @@ msgstr ""
"überschritten.\n"
"Das könnte durch zirkulare Includes entstanden sein."
-#: config.c:141
+#: config.c:159
#, c-format
msgid "could not expand include path '%s'"
msgstr "Konnte Include-Pfad '%s' nicht erweitern."
-#: config.c:152
+#: config.c:170
msgid "relative config includes must come from files"
-msgstr "Relative Includes von Konfigurationen müssen aus Dateien kommen."
+msgstr "relative Includes von Konfigurationen müssen aus Dateien kommen"
-#: config.c:201
+#: config.c:219
msgid "relative config include conditionals must come from files"
msgstr ""
"Bedingungen für das Einbinden von Konfigurationen aus relativen Pfaden "
"müssen\n"
-"aus Dateien kommen."
+"aus Dateien kommen"
+
+#: config.c:364
+msgid ""
+"remote URLs cannot be configured in file directly or indirectly included by "
+"includeIf.hasconfig:remote.*.url"
+msgstr ""
+"Remote-URLs können nicht in der Datei direkt oder indirekt einbezogen durch "
+"includeIf.hasconfig:remote.*.url konfiguriert werden"
-#: config.c:398
+#: config.c:508
#, c-format
msgid "invalid config format: %s"
msgstr "ungültiges Konfigurationsformat: %s"
-#: config.c:402
+#: config.c:512
#, c-format
msgid "missing environment variable name for configuration '%.*s'"
msgstr "fehlender Name der Umgebungsvariable für Konfiguration '%.*s'"
-#: config.c:407
+#: config.c:517
#, c-format
msgid "missing environment variable '%s' for configuration '%.*s'"
msgstr "fehlende Umgebungsvariable '%s' für Konfiguration '%.*s'"
-#: config.c:443
+#: config.c:553
#, c-format
msgid "key does not contain a section: %s"
msgstr "Schlüssel enthält keine Sektion: %s"
-#: config.c:448
+#: config.c:558
#, c-format
msgid "key does not contain variable name: %s"
msgstr "Schlüssel enthält keinen Variablennamen: %s"
-#: config.c:470 sequencer.c:2806
+#: config.c:580 sequencer.c:2802
#, c-format
msgid "invalid key: %s"
msgstr "Ungültiger Schlüssel: %s"
-#: config.c:475
+#: config.c:585
#, c-format
msgid "invalid key (newline): %s"
msgstr "Ungültiger Schlüssel (neue Zeile): %s"
-#: config.c:495
+#: config.c:605
msgid "empty config key"
msgstr "leerer Konfigurationsschlüssel"
-#: config.c:513 config.c:525
+#: config.c:623 config.c:635
#, c-format
msgid "bogus config parameter: %s"
msgstr "Fehlerhafter Konfigurationsparameter: %s"
-#: config.c:539 config.c:556 config.c:563 config.c:572
+#: config.c:649 config.c:666 config.c:673 config.c:682
#, c-format
msgid "bogus format in %s"
msgstr "Fehlerhaftes Format in %s"
-#: config.c:606
+#: config.c:716
#, c-format
msgid "bogus count in %s"
msgstr "falsche Zählung in %s"
-#: config.c:610
+#: config.c:720
#, c-format
msgid "too many entries in %s"
msgstr "zu viele Einträge in %s"
-#: config.c:620
+#: config.c:730
#, c-format
msgid "missing config key %s"
msgstr "fehlender Konfigurationsschlüssel %s"
-#: config.c:628
+#: config.c:738
#, c-format
msgid "missing config value %s"
msgstr "fehlender Konfigurationswert %s"
-#: config.c:979
+#: config.c:1089
#, c-format
msgid "bad config line %d in blob %s"
msgstr "Ungültige Konfigurationszeile %d in Blob %s"
-#: config.c:983
+#: config.c:1093
#, c-format
msgid "bad config line %d in file %s"
msgstr "Ungültige Konfigurationszeile %d in Datei %s"
-#: config.c:987
+#: config.c:1097
#, c-format
msgid "bad config line %d in standard input"
msgstr "Ungültige Konfigurationszeile %d in Standard-Eingabe"
-#: config.c:991
+#: config.c:1101
#, c-format
msgid "bad config line %d in submodule-blob %s"
msgstr "Ungültige Konfigurationszeile %d in Submodul-Blob %s"
-#: config.c:995
+#: config.c:1105
#, c-format
msgid "bad config line %d in command line %s"
msgstr "Ungültige Konfigurationszeile %d in Kommandozeile %s"
-#: config.c:999
+#: config.c:1109
#, c-format
msgid "bad config line %d in %s"
msgstr "Ungültige Konfigurationszeile %d in %s"
-#: config.c:1136
+#: config.c:1246
msgid "out of range"
msgstr "Außerhalb des Bereichs"
-#: config.c:1136
+#: config.c:1246
msgid "invalid unit"
msgstr "Ungültige Einheit"
-#: config.c:1137
+#: config.c:1247
#, c-format
msgid "bad numeric config value '%s' for '%s': %s"
msgstr "Ungültiger numerischer Wert '%s' für Konfiguration '%s': %s"
-#: config.c:1147
+#: config.c:1257
#, c-format
msgid "bad numeric config value '%s' for '%s' in blob %s: %s"
msgstr "Ungültiger numerischer Wert '%s' für Konfiguration '%s' in Blob %s: %s"
-#: config.c:1150
+#: config.c:1260
#, c-format
msgid "bad numeric config value '%s' for '%s' in file %s: %s"
msgstr ""
"Ungültiger numerischer Wert '%s' für Konfiguration '%s' in Datei %s: %s"
-#: config.c:1153
+#: config.c:1263
#, c-format
msgid "bad numeric config value '%s' for '%s' in standard input: %s"
msgstr ""
"Ungültiger numerischer Wert '%s' für Konfiguration '%s' in Standard-Eingabe: "
"%s"
-#: config.c:1156
+#: config.c:1266
#, c-format
msgid "bad numeric config value '%s' for '%s' in submodule-blob %s: %s"
msgstr ""
"Ungültiger numerischer Wert '%s' für Konfiguration '%s' in Submodul-Blob %s: "
"%s"
-#: config.c:1159
+#: config.c:1269
#, c-format
msgid "bad numeric config value '%s' for '%s' in command line %s: %s"
msgstr ""
"Ungültiger numerischer Wert '%s' für Konfiguration '%s' in Befehlszeile %s: "
"%s"
-#: config.c:1162
+#: config.c:1272
#, c-format
msgid "bad numeric config value '%s' for '%s' in %s: %s"
msgstr "Ungültiger numerischer Wert '%s' für Konfiguration '%s' in %s: %s"
-#: config.c:1241
+#: config.c:1368
+#, c-format
+msgid "invalid value for variable %s"
+msgstr "ungültiger Wert für Variable %s"
+
+#: config.c:1389
+#, c-format
+msgid "ignoring unknown core.fsync component '%s'"
+msgstr "ignoriere unbekannte Komponente '%s' für core.fsync"
+
+#: config.c:1425
#, c-format
msgid "bad boolean config value '%s' for '%s'"
msgstr "ungültiger boolescher Konfigurationswert '%s' für '%s'"
-#: config.c:1259
+#: config.c:1443
#, c-format
msgid "failed to expand user dir in: '%s'"
msgstr "Fehler beim Erweitern des Nutzerverzeichnisses in: '%s'"
-#: config.c:1268
+#: config.c:1452
#, c-format
msgid "'%s' for '%s' is not a valid timestamp"
msgstr "'%s' ist kein gültiger Zeitstempel für '%s'"
-#: config.c:1361
+#: config.c:1545
#, c-format
msgid "abbrev length out of range: %d"
msgstr "Länge für Abkürzung von Commit-IDs außerhalb des Bereichs: %d"
-#: config.c:1375 config.c:1386
+#: config.c:1559 config.c:1570
#, c-format
msgid "bad zlib compression level %d"
msgstr "ungültiger zlib Komprimierungsgrad %d"
-#: config.c:1476
+#: config.c:1660
msgid "core.commentChar should only be one character"
msgstr "core.commentChar sollte nur ein Zeichen sein"
-#: config.c:1509
+#: config.c:1692
+#, c-format
+msgid "ignoring unknown core.fsyncMethod value '%s'"
+msgstr "ignoriere unbekannten Wert '%s' für core.fsyncMethod"
+
+#: config.c:1698
+msgid "core.fsyncObjectFiles is deprecated; use core.fsync instead"
+msgstr "core.fsyncObjectFiles is veraltet; nutzen Sie stattdessen core.fsync"
+
+#: config.c:1714
#, c-format
msgid "invalid mode for object creation: %s"
msgstr "Ungültiger Modus für Objekterstellung: %s"
-#: config.c:1584
+#: config.c:1800
#, c-format
msgid "malformed value for %s"
-msgstr "Ungültiger Wert für %s."
+msgstr "ungültiger Wert für %s"
-#: config.c:1610
+#: config.c:1826
#, c-format
msgid "malformed value for %s: %s"
msgstr "Ungültiger Wert für %s: %s"
-#: config.c:1611
+#: config.c:1827
msgid "must be one of nothing, matching, simple, upstream or current"
msgstr ""
"Muss einer von diesen sein: nothing, matching, simple, upstream, current"
-#: config.c:1672 builtin/pack-objects.c:4053
+#: config.c:1888 builtin/pack-objects.c:4078
#, c-format
msgid "bad pack compression level %d"
msgstr "ungültiger Komprimierungsgrad (%d) für Paketierung"
-#: config.c:1795
+#: config.c:2014
#, c-format
msgid "unable to load config blob object '%s'"
msgstr "Konnte Blob-Objekt '%s' für Konfiguration nicht laden."
-#: config.c:1798
+#: config.c:2017
#, c-format
msgid "reference '%s' does not point to a blob"
msgstr "Referenz '%s' zeigt auf keinen Blob."
-#: config.c:1816
+#: config.c:2035
#, c-format
msgid "unable to resolve config blob '%s'"
msgstr "Konnte Blob '%s' für Konfiguration nicht auflösen."
-#: config.c:1861
+#: config.c:2080
#, c-format
msgid "failed to parse %s"
msgstr "Fehler beim Parsen von %s."
-#: config.c:1917
+#: config.c:2136
msgid "unable to parse command-line config"
msgstr ""
"Konnte die über die Befehlszeile angegebene Konfiguration nicht parsen."
-#: config.c:2285
+#: config.c:2512
msgid "unknown error occurred while reading the configuration files"
msgstr ""
"Es trat ein unbekannter Fehler beim Lesen der Konfigurationsdateien auf."
-#: config.c:2459
+#: config.c:2686
#, c-format
msgid "Invalid %s: '%s'"
msgstr "Ungültiger %s: '%s'"
-#: config.c:2504
+#: config.c:2731
#, c-format
msgid "splitIndex.maxPercentChange value '%d' should be between 0 and 100"
msgstr ""
"Der Wert '%d' von splitIndex.maxPercentChange sollte zwischen 0 und 100 "
"liegen."
-#: config.c:2550
+#: config.c:2763
#, c-format
msgid "unable to parse '%s' from command-line config"
msgstr ""
"Konnte Wert '%s' aus der über die Befehlszeile angegebenen Konfiguration\n"
"nicht parsen."
-#: config.c:2552
+#: config.c:2765
#, c-format
msgid "bad config variable '%s' in file '%s' at line %d"
msgstr "ungültige Konfigurationsvariable '%s' in Datei '%s' bei Zeile %d"
-#: config.c:2637
+#: config.c:2850
#, c-format
msgid "invalid section name '%s'"
msgstr "Ungültiger Sektionsname '%s'"
-#: config.c:2669
+#: config.c:2882
#, c-format
msgid "%s has multiple values"
msgstr "%s hat mehrere Werte"
-#: config.c:2698
+#: config.c:2911
#, c-format
msgid "failed to write new configuration file %s"
msgstr "Konnte neue Konfigurationsdatei '%s' nicht schreiben."
-#: config.c:2950 config.c:3277
+#: config.c:3177 config.c:3518
#, c-format
msgid "could not lock config file %s"
msgstr "Konnte Konfigurationsdatei '%s' nicht sperren."
-#: config.c:2961
+#: config.c:3188
#, c-format
msgid "opening %s"
msgstr "Öffne %s"
-#: config.c:2998 builtin/config.c:361
+#: config.c:3225 builtin/config.c:361
#, c-format
msgid "invalid pattern: %s"
msgstr "Ungültiges Muster: %s"
-#: config.c:3023
+#: config.c:3250
#, c-format
msgid "invalid config file %s"
msgstr "Ungültige Konfigurationsdatei %s"
-#: config.c:3036 config.c:3290
+#: config.c:3263 config.c:3531
#, c-format
msgid "fstat on %s failed"
msgstr "fstat auf %s fehlgeschlagen"
-#: config.c:3047
+#: config.c:3274
#, c-format
msgid "unable to mmap '%s'%s"
msgstr "mmap für '%s'(%s) fehlgeschlagen"
-#: config.c:3057 config.c:3295
+#: config.c:3284 config.c:3536
#, c-format
msgid "chmod on %s failed"
msgstr "chmod auf %s fehlgeschlagen"
-#: config.c:3142 config.c:3392
+#: config.c:3369 config.c:3633
#, c-format
msgid "could not write config file %s"
msgstr "Konnte Konfigurationsdatei %s nicht schreiben."
-#: config.c:3176
+#: config.c:3403
#, c-format
msgid "could not set '%s' to '%s'"
msgstr "Konnte '%s' nicht zu '%s' setzen."
-#: config.c:3178 builtin/remote.c:662 builtin/remote.c:860 builtin/remote.c:868
+#: config.c:3405 builtin/remote.c:666 builtin/remote.c:885 builtin/remote.c:893
#, c-format
msgid "could not unset '%s'"
msgstr "Konnte '%s' nicht aufheben."
-#: config.c:3268
+#: config.c:3509
#, c-format
msgid "invalid section name: %s"
msgstr "Ungültiger Sektionsname: %s"
-#: config.c:3435
+#: config.c:3676
#, c-format
msgid "missing value for '%s'"
msgstr "Fehlender Wert für '%s'"
@@ -3219,68 +3314,68 @@ msgstr "Weigerung, mit fehlendem Hostnamen in Zugangsdaten zu arbeiten"
msgid "refusing to work with credential missing protocol field"
msgstr "Weigerung, mit fehlendem Protokoll in Zugangsdaten zu arbeiten"
-#: credential.c:395
+#: credential.c:396
#, c-format
msgid "url contains a newline in its %s component: %s"
msgstr "URL enthält Zeilenumbruch in der %s Komponente: %s"
-#: credential.c:439
+#: credential.c:440
#, c-format
msgid "url has no scheme: %s"
msgstr "URL hat kein Schema: %s"
-#: credential.c:512
+#: credential.c:513
#, c-format
msgid "credential url cannot be parsed: %s"
msgstr "URL mit Zugangsdaten konnte nicht geparst werden: %s"
-#: date.c:138
+#: date.c:139
msgid "in the future"
msgstr "in der Zukunft"
-#: date.c:144
+#: date.c:145
#, c-format
msgid "%<PRIuMAX> second ago"
msgid_plural "%<PRIuMAX> seconds ago"
msgstr[0] "vor %<PRIuMAX> Sekunde"
msgstr[1] "vor %<PRIuMAX> Sekunden"
-#: date.c:151
+#: date.c:152
#, c-format
msgid "%<PRIuMAX> minute ago"
msgid_plural "%<PRIuMAX> minutes ago"
msgstr[0] "vor %<PRIuMAX> Minute"
msgstr[1] "vor %<PRIuMAX> Minuten"
-#: date.c:158
+#: date.c:159
#, c-format
msgid "%<PRIuMAX> hour ago"
msgid_plural "%<PRIuMAX> hours ago"
msgstr[0] "vor %<PRIuMAX> Stunde"
msgstr[1] "vor %<PRIuMAX> Stunden"
-#: date.c:165
+#: date.c:166
#, c-format
msgid "%<PRIuMAX> day ago"
msgid_plural "%<PRIuMAX> days ago"
msgstr[0] "vor %<PRIuMAX> Tag"
msgstr[1] "vor %<PRIuMAX> Tagen"
-#: date.c:171
+#: date.c:172
#, c-format
msgid "%<PRIuMAX> week ago"
msgid_plural "%<PRIuMAX> weeks ago"
msgstr[0] "vor %<PRIuMAX> Woche"
msgstr[1] "vor %<PRIuMAX> Wochen"
-#: date.c:178
+#: date.c:179
#, c-format
msgid "%<PRIuMAX> month ago"
msgid_plural "%<PRIuMAX> months ago"
msgstr[0] "vor %<PRIuMAX> Monat"
msgstr[1] "vor %<PRIuMAX> Monaten"
-#: date.c:189
+#: date.c:190
#, c-format
msgid "%<PRIuMAX> year"
msgid_plural "%<PRIuMAX> years"
@@ -3288,14 +3383,14 @@ msgstr[0] "vor %<PRIuMAX> Jahr"
msgstr[1] "vor %<PRIuMAX> Jahren"
#. TRANSLATORS: "%s" is "<n> years"
-#: date.c:192
+#: date.c:193
#, c-format
msgid "%s, %<PRIuMAX> month ago"
msgid_plural "%s, %<PRIuMAX> months ago"
msgstr[0] "%s, und %<PRIuMAX> Monat"
msgstr[1] "%s, und %<PRIuMAX> Monaten"
-#: date.c:197 date.c:202
+#: date.c:198 date.c:203
#, c-format
msgid "%<PRIuMAX> year ago"
msgid_plural "%<PRIuMAX> years ago"
@@ -3329,10 +3424,14 @@ msgstr ""
msgid "Marked %d islands, done.\n"
msgstr "%d Delta-Islands markiert, fertig.\n"
-#: diff-merges.c:70
+#: diff-merges.c:81 gpg-interface.c:719 gpg-interface.c:734 ls-refs.c:37
+#: parallel-checkout.c:42 sequencer.c:2805 setup.c:563 builtin/am.c:203
+#: builtin/am.c:2243 builtin/am.c:2287 builtin/blame.c:724 builtin/blame.c:742
+#: builtin/fetch.c:792 builtin/pack-objects.c:3515 builtin/pull.c:45
+#: builtin/pull.c:47 builtin/pull.c:321
#, c-format
-msgid "unknown value for --diff-merges: %s"
-msgstr "unbekannter Wert für --diff-merges: %s"
+msgid "invalid value for '%s': '%s'"
+msgstr "ungültiger Wert für '%s': '%s'"
#: diff-lib.c:561
msgid "--merge-base does not work with ranges"
@@ -3366,18 +3465,18 @@ msgstr ""
"Kein Git-Repository. Nutzen Sie --no-index, um zwei Pfade außerhalb des "
"Arbeitsverzeichnisses zu vergleichen."
-#: diff.c:158
+#: diff.c:159
#, c-format
msgid " Failed to parse dirstat cut-off percentage '%s'\n"
msgstr ""
" Fehler beim Parsen des abgeschnittenen \"dirstat\" Prozentsatzes '%s'\n"
-#: diff.c:163
+#: diff.c:164
#, c-format
msgid " Unknown dirstat parameter '%s'\n"
msgstr " Unbekannter \"dirstat\" Parameter '%s'\n"
-#: diff.c:299
+#: diff.c:300
msgid ""
"color moved setting must be one of 'no', 'default', 'blocks', 'zebra', "
"'dimmed-zebra', 'plain'"
@@ -3385,7 +3484,7 @@ msgstr ""
"\"color moved\"-Einstellung muss eines von diesen sein: 'no', 'default', "
"'blocks', 'zebra', 'dimmed-zebra', 'plain'"
-#: diff.c:327
+#: diff.c:328
#, c-format
msgid ""
"unknown color-moved-ws mode '%s', possible values are 'ignore-space-change', "
@@ -3394,7 +3493,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:335
+#: diff.c:336
msgid ""
"color-moved-ws: allow-indentation-change cannot be combined with other "
"whitespace modes"
@@ -3402,12 +3501,12 @@ msgstr ""
"color-moved-ws: allow-indentation-change kann nicht mit anderen\n"
"Whitespace-Modi kombiniert werden."
-#: diff.c:412
+#: diff.c:413
#, c-format
msgid "Unknown value for 'diff.submodule' config variable: '%s'"
msgstr "Unbekannter Wert in Konfigurationsvariable 'diff.submodule': '%s'"
-#: diff.c:472
+#: diff.c:473
#, c-format
msgid ""
"Found errors in 'diff.dirstat' config variable:\n"
@@ -3416,32 +3515,32 @@ msgstr ""
"Fehler in 'diff.dirstat' Konfigurationsvariable gefunden:\n"
"%s"
-#: diff.c:4237
+#: diff.c:4282
#, c-format
msgid "external diff died, stopping at %s"
msgstr "externes Diff-Programm unerwartet beendet, angehalten bei %s"
-#: diff.c:4589
+#: diff.c:4677 parse-options.c:1114
#, c-format
msgid "options '%s', '%s', '%s', and '%s' cannot be used together"
msgstr ""
"die Optionen '%s', '%s', '%s' und '%s' können nicht gemeinsam verwendet "
"werden"
-#: diff.c:4593 builtin/difftool.c:736 builtin/log.c:1982 builtin/worktree.c:506
+#: diff.c:4681 parse-options.c:1118 builtin/worktree.c:578
#, c-format
msgid "options '%s', '%s', and '%s' cannot be used together"
msgstr ""
"die Optionen '%s', '%s' und '%s' können nicht gemeinsam verwendet werden"
-#: diff.c:4597
+#: diff.c:4685
#, c-format
msgid "options '%s' and '%s' cannot be used together, use '%s' with '%s'"
msgstr ""
"die Optionen '%s' und '%s' können nicht gemeinsam verwendet werden, nutzen "
"Sie '%s' mit '%s'"
-#: diff.c:4601
+#: diff.c:4689
#, c-format
msgid ""
"options '%s' and '%s' cannot be used together, use '%s' with '%s' and '%s'"
@@ -3449,22 +3548,22 @@ msgstr ""
"die Optionen '%s' und '%s' können nicht gemeinsam verwendet werden, nutzen "
"Sie '%s' mit '%s' und '%s'"
-#: diff.c:4681
+#: diff.c:4769
msgid "--follow requires exactly one pathspec"
msgstr "--follow erfordert genau eine Pfadspezifikation"
-#: diff.c:4729
+#: diff.c:4823
#, c-format
msgid "invalid --stat value: %s"
msgstr "Ungültiger --stat Wert: %s"
-#: diff.c:4734 diff.c:4739 diff.c:4744 diff.c:4749 diff.c:5277
+#: diff.c:4828 diff.c:4833 diff.c:4838 diff.c:4843 diff.c:5319
#: parse-options.c:217 parse-options.c:221
#, c-format
msgid "%s expects a numerical value"
msgstr "%s erwartet einen numerischen Wert."
-#: diff.c:4766
+#: diff.c:4860
#, c-format
msgid ""
"Failed to parse --dirstat/-X option parameter:\n"
@@ -3473,42 +3572,42 @@ msgstr ""
"Fehler beim Parsen des --dirstat/-X Optionsparameters:\n"
"%s"
-#: diff.c:4851
+#: diff.c:4893
#, c-format
msgid "unknown change class '%c' in --diff-filter=%s"
msgstr "unbekannte Änderungsklasse '%c' in --diff-filter=%s"
-#: diff.c:4875
+#: diff.c:4917
#, c-format
msgid "unknown value after ws-error-highlight=%.*s"
msgstr "unbekannter Wert nach ws-error-highlight=%.*s"
-#: diff.c:4889
+#: diff.c:4931
#, c-format
msgid "unable to resolve '%s'"
msgstr "konnte '%s' nicht auflösen"
-#: diff.c:4939 diff.c:4945
+#: diff.c:4981 diff.c:4987
#, c-format
msgid "%s expects <n>/<m> form"
msgstr "%s erwartet die Form <n>/<m>"
-#: diff.c:4957
+#: diff.c:4999
#, c-format
msgid "%s expects a character, got '%s'"
msgstr "%s erwartet ein Zeichen, '%s' bekommen"
-#: diff.c:4978
+#: diff.c:5020
#, c-format
msgid "bad --color-moved argument: %s"
msgstr "ungültiges --color-moved Argument: %s"
-#: diff.c:4997
+#: diff.c:5039
#, c-format
msgid "invalid mode '%s' in --color-moved-ws"
msgstr "ungültiger Modus '%s' in --color-moved-ws"
-#: diff.c:5037
+#: diff.c:5079
msgid ""
"option diff-algorithm accepts \"myers\", \"minimal\", \"patience\" and "
"\"histogram\""
@@ -3516,157 +3615,157 @@ msgstr ""
"Option diff-algorithm akzeptiert: \"myers\", \"minimal\", \"patience\" and "
"\"histogram\""
-#: diff.c:5073 diff.c:5093
+#: diff.c:5115 diff.c:5135
#, c-format
msgid "invalid argument to %s"
msgstr "ungültiges Argument für %s"
-#: diff.c:5197
+#: diff.c:5239
#, c-format
msgid "invalid regex given to -I: '%s'"
msgstr "ungültiger regulärer Ausdruck für -I gegeben: '%s'"
-#: diff.c:5246
+#: diff.c:5288
#, c-format
msgid "failed to parse --submodule option parameter: '%s'"
msgstr "Fehler beim Parsen des --submodule Optionsparameters: '%s'"
-#: diff.c:5302
+#: diff.c:5344
#, c-format
msgid "bad --word-diff argument: %s"
msgstr "ungültiges --word-diff Argument: %s"
-#: diff.c:5338
+#: diff.c:5380
msgid "Diff output format options"
msgstr "Diff-Optionen zu Ausgabeformaten"
-#: diff.c:5340 diff.c:5346
+#: diff.c:5382 diff.c:5388
msgid "generate patch"
msgstr "Patch erzeugen"
-#: diff.c:5343 builtin/log.c:179
+#: diff.c:5385 builtin/log.c:180
msgid "suppress diff output"
msgstr "Ausgabe der Unterschiede unterdrücken"
-#: diff.c:5348 diff.c:5462 diff.c:5469
+#: diff.c:5390 diff.c:5504 diff.c:5511
msgid "<n>"
msgstr "<n>"
-#: diff.c:5349 diff.c:5352
+#: diff.c:5391 diff.c:5394
msgid "generate diffs with <n> lines context"
msgstr "Unterschiede mit <n> Zeilen des Kontextes erstellen"
-#: diff.c:5354
+#: diff.c:5396
msgid "generate the diff in raw format"
msgstr "Unterschiede im Rohformat erstellen"
-#: diff.c:5357
+#: diff.c:5399
msgid "synonym for '-p --raw'"
msgstr "Synonym für '-p --raw'"
-#: diff.c:5361
+#: diff.c:5403
msgid "synonym for '-p --stat'"
msgstr "Synonym für '-p --stat'"
-#: diff.c:5365
+#: diff.c:5407
msgid "machine friendly --stat"
msgstr "maschinenlesbare Ausgabe von --stat"
-#: diff.c:5368
+#: diff.c:5410
msgid "output only the last line of --stat"
msgstr "nur die letzte Zeile von --stat ausgeben"
-#: diff.c:5370 diff.c:5378
+#: diff.c:5412 diff.c:5420
msgid "<param1,param2>..."
msgstr "<Parameter1,Parameter2>..."
-#: diff.c:5371
+#: diff.c:5413
msgid ""
"output the distribution of relative amount of changes for each sub-directory"
msgstr ""
"die Verteilung des relativen Umfangs der Änderungen für jedes "
"Unterverzeichnis ausgeben"
-#: diff.c:5375
+#: diff.c:5417
msgid "synonym for --dirstat=cumulative"
msgstr "Synonym für --dirstat=cumulative"
-#: diff.c:5379
+#: diff.c:5421
msgid "synonym for --dirstat=files,param1,param2..."
msgstr "Synonym für --dirstat=files,Parameter1,Parameter2..."
-#: diff.c:5383
+#: diff.c:5425
msgid "warn if changes introduce conflict markers or whitespace errors"
msgstr ""
"warnen, wenn Änderungen Konfliktmarker oder Whitespace-Fehler einbringen"
-#: diff.c:5386
+#: diff.c:5428
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:5389
+#: diff.c:5431
msgid "show only names of changed files"
msgstr "nur Dateinamen der geänderten Dateien anzeigen"
-#: diff.c:5392
+#: diff.c:5434
msgid "show only names and status of changed files"
msgstr "nur Dateinamen und Status der geänderten Dateien anzeigen"
-#: diff.c:5394
+#: diff.c:5436
msgid "<width>[,<name-width>[,<count>]]"
msgstr "<Breite>[,<Namens-Breite>[,<Anzahl>]]"
-#: diff.c:5395
+#: diff.c:5437
msgid "generate diffstat"
msgstr "Zusammenfassung der Unterschiede erzeugen"
-#: diff.c:5397 diff.c:5400 diff.c:5403
+#: diff.c:5439 diff.c:5442 diff.c:5445
msgid "<width>"
msgstr "<Breite>"
-#: diff.c:5398
+#: diff.c:5440
msgid "generate diffstat with a given width"
msgstr "Zusammenfassung der Unterschiede mit gegebener Breite erzeugen"
-#: diff.c:5401
+#: diff.c:5443
msgid "generate diffstat with a given name width"
msgstr "Zusammenfassung der Unterschiede mit gegebener Namens-Breite erzeugen"
-#: diff.c:5404
+#: diff.c:5446
msgid "generate diffstat with a given graph width"
msgstr "Zusammenfassung der Unterschiede mit gegebener Graph-Breite erzeugen"
-#: diff.c:5406
+#: diff.c:5448
msgid "<count>"
msgstr "<Anzahl>"
-#: diff.c:5407
+#: diff.c:5449
msgid "generate diffstat with limited lines"
msgstr "Zusammenfassung der Unterschiede mit begrenzten Zeilen erzeugen"
-#: diff.c:5410
+#: diff.c:5452
msgid "generate compact summary in diffstat"
msgstr "kompakte Zusammenstellung in Zusammenfassung der Unterschiede erzeugen"
-#: diff.c:5413
+#: diff.c:5455
msgid "output a binary diff that can be applied"
msgstr "eine binäre Differenz ausgeben, dass angewendet werden kann"
-#: diff.c:5416
+#: diff.c:5458
msgid "show full pre- and post-image object names on the \"index\" lines"
msgstr "vollständige Objekt-Namen in den \"index\"-Zeilen anzeigen"
-#: diff.c:5418
+#: diff.c:5460
msgid "show colored diff"
msgstr "farbige Unterschiede anzeigen"
-#: diff.c:5419
+#: diff.c:5461
msgid "<kind>"
msgstr "<Art>"
-#: diff.c:5420
+#: diff.c:5462
msgid ""
"highlight whitespace errors in the 'context', 'old' or 'new' lines in the "
"diff"
@@ -3674,7 +3773,7 @@ msgstr ""
"Whitespace-Fehler in den Zeilen 'context', 'old' oder 'new' bei den "
"Unterschieden hervorheben"
-#: diff.c:5423
+#: diff.c:5465
msgid ""
"do not munge pathnames and use NULs as output field terminators in --raw or "
"--numstat"
@@ -3682,91 +3781,91 @@ msgstr ""
"die Pfadnamen nicht verschleiern und NUL-Zeichen als Schlusszeichen in "
"Ausgabefeldern bei --raw oder --numstat nutzen"
-#: diff.c:5426 diff.c:5429 diff.c:5432 diff.c:5541
+#: diff.c:5468 diff.c:5471 diff.c:5474 diff.c:5583
msgid "<prefix>"
msgstr "<Präfix>"
-#: diff.c:5427
+#: diff.c:5469
msgid "show the given source prefix instead of \"a/\""
msgstr "den gegebenen Quell-Präfix statt \"a/\" anzeigen"
-#: diff.c:5430
+#: diff.c:5472
msgid "show the given destination prefix instead of \"b/\""
msgstr "den gegebenen Ziel-Präfix statt \"b/\" anzeigen"
-#: diff.c:5433
+#: diff.c:5475
msgid "prepend an additional prefix to every line of output"
msgstr "einen zusätzlichen Präfix bei jeder Ausgabezeile voranstellen"
-#: diff.c:5436
+#: diff.c:5478
msgid "do not show any source or destination prefix"
msgstr "keine Quell- oder Ziel-Präfixe anzeigen"
-#: diff.c:5439
+#: diff.c:5481
msgid "show context between diff hunks up to the specified number of lines"
msgstr ""
"Kontext zwischen Unterschied-Blöcken bis zur angegebenen Anzahl von Zeilen "
"anzeigen"
-#: diff.c:5443 diff.c:5448 diff.c:5453
+#: diff.c:5485 diff.c:5490 diff.c:5495
msgid "<char>"
msgstr "<Zeichen>"
-#: diff.c:5444
+#: diff.c:5486
msgid "specify the character to indicate a new line instead of '+'"
msgstr "das Zeichen festlegen, das eine neue Zeile kennzeichnet (statt '+')"
-#: diff.c:5449
+#: diff.c:5491
msgid "specify the character to indicate an old line instead of '-'"
msgstr "das Zeichen festlegen, das eine alte Zeile kennzeichnet (statt '-')"
-#: diff.c:5454
+#: diff.c:5496
msgid "specify the character to indicate a context instead of ' '"
msgstr "das Zeichen festlegen, das den Kontext kennzeichnet (statt ' ')"
-#: diff.c:5457
+#: diff.c:5499
msgid "Diff rename options"
msgstr "Diff-Optionen zur Umbenennung"
-#: diff.c:5458
+#: diff.c:5500
msgid "<n>[/<m>]"
msgstr "<n>[/<m>]"
-#: diff.c:5459
+#: diff.c:5501
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:5463
+#: diff.c:5505
msgid "detect renames"
msgstr "Umbenennungen erkennen"
-#: diff.c:5467
+#: diff.c:5509
msgid "omit the preimage for deletes"
msgstr "Preimage für Löschungen weglassen"
-#: diff.c:5470
+#: diff.c:5512
msgid "detect copies"
msgstr "Kopien erkennen"
-#: diff.c:5474
+#: diff.c:5516
msgid "use unmodified files as source to find copies"
msgstr "ungeänderte Dateien als Quelle zum Finden von Kopien nutzen"
-#: diff.c:5476
+#: diff.c:5518
msgid "disable rename detection"
msgstr "Erkennung von Umbenennungen deaktivieren"
-#: diff.c:5479
+#: diff.c:5521
msgid "use empty blobs as rename source"
msgstr "leere Blobs als Quelle von Umbenennungen nutzen"
-#: diff.c:5481
+#: diff.c:5523
msgid "continue listing the history of a file beyond renames"
msgstr "Auflistung der Historie einer Datei nach Umbenennung fortführen"
-#: diff.c:5484
+#: diff.c:5526
msgid ""
"prevent rename/copy detection if the number of rename/copy targets exceeds "
"given limit"
@@ -3774,164 +3873,164 @@ msgstr ""
"Erkennung von Umbenennungen und Kopien verhindern, wenn die Anzahl der Ziele "
"für Umbenennungen und Kopien das gegebene Limit überschreitet"
-#: diff.c:5486
+#: diff.c:5528
msgid "Diff algorithm options"
msgstr "Diff Algorithmus-Optionen"
-#: diff.c:5488
+#: diff.c:5530
msgid "produce the smallest possible diff"
msgstr "die kleinstmöglichen Änderungen erzeugen"
-#: diff.c:5491
+#: diff.c:5533
msgid "ignore whitespace when comparing lines"
msgstr "Whitespace-Änderungen beim Vergleich von Zeilen ignorieren"
-#: diff.c:5494
+#: diff.c:5536
msgid "ignore changes in amount of whitespace"
msgstr "Änderungen bei der Anzahl von Whitespace ignorieren"
-#: diff.c:5497
+#: diff.c:5539
msgid "ignore changes in whitespace at EOL"
msgstr "Whitespace-Änderungen am Zeilenende ignorieren"
-#: diff.c:5500
+#: diff.c:5542
msgid "ignore carrier-return at the end of line"
msgstr "den Zeilenumbruch am Ende der Zeile ignorieren"
-#: diff.c:5503
+#: diff.c:5545
msgid "ignore changes whose lines are all blank"
msgstr "Änderungen in leeren Zeilen ignorieren"
-#: diff.c:5505 diff.c:5527 diff.c:5530 diff.c:5575
+#: diff.c:5547 diff.c:5569 diff.c:5572 diff.c:5617
msgid "<regex>"
msgstr "<Regex>"
-#: diff.c:5506
+#: diff.c:5548
msgid "ignore changes whose all lines match <regex>"
msgstr ""
"Änderungen ignorieren, bei denen alle Zeilen mit <Regex> übereinstimmen"
-#: diff.c:5509
+#: diff.c:5551
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:5512
+#: diff.c:5554
msgid "generate diff using the \"patience diff\" algorithm"
msgstr "Änderungen durch Nutzung des Algorithmus \"Patience Diff\" erzeugen"
-#: diff.c:5516
+#: diff.c:5558
msgid "generate diff using the \"histogram diff\" algorithm"
msgstr "Änderungen durch Nutzung des Algorithmus \"Histogram Diff\" erzeugen"
-#: diff.c:5518
+#: diff.c:5560
msgid "<algorithm>"
msgstr "<Algorithmus>"
-#: diff.c:5519
+#: diff.c:5561
msgid "choose a diff algorithm"
msgstr "einen Algorithmus für Änderungen wählen"
-#: diff.c:5521
+#: diff.c:5563
msgid "<text>"
msgstr "<Text>"
-#: diff.c:5522
+#: diff.c:5564
msgid "generate diff using the \"anchored diff\" algorithm"
msgstr "Änderungen durch Nutzung des Algorithmus \"Anchored Diff\" erzeugen"
-#: diff.c:5524 diff.c:5533 diff.c:5536
+#: diff.c:5566 diff.c:5575 diff.c:5578
msgid "<mode>"
msgstr "<Modus>"
-#: diff.c:5525
+#: diff.c:5567
msgid "show word diff, using <mode> to delimit changed words"
msgstr "Wort-Änderungen zeigen, nutze <Modus>, um Wörter abzugrenzen"
-#: diff.c:5528
+#: diff.c:5570
msgid "use <regex> to decide what a word is"
msgstr "<Regex> nutzen, um zu entscheiden, was ein Wort ist"
-#: diff.c:5531
+#: diff.c:5573
msgid "equivalent to --word-diff=color --word-diff-regex=<regex>"
msgstr "entsprechend wie --word-diff=color --word-diff-regex=<Regex>"
-#: diff.c:5534
+#: diff.c:5576
msgid "moved lines of code are colored differently"
msgstr "verschobene Codezeilen sind andersfarbig"
-#: diff.c:5537
+#: diff.c:5579
msgid "how white spaces are ignored in --color-moved"
msgstr "wie Whitespaces in --color-moved ignoriert werden"
-#: diff.c:5540
+#: diff.c:5582
msgid "Other diff options"
msgstr "Andere Diff-Optionen"
-#: diff.c:5542
+#: diff.c:5584
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:5546
+#: diff.c:5588
msgid "treat all files as text"
msgstr "alle Dateien als Text behandeln"
-#: diff.c:5548
+#: diff.c:5590
msgid "swap two inputs, reverse the diff"
msgstr "die beiden Eingaben vertauschen und die Änderungen umkehren"
-#: diff.c:5550
+#: diff.c:5592
msgid "exit with 1 if there were differences, 0 otherwise"
msgstr ""
"mit Exit-Status 1 beenden, wenn Änderungen vorhanden sind, andernfalls mit 0"
-#: diff.c:5552
+#: diff.c:5594
msgid "disable all output of the program"
msgstr "alle Ausgaben vom Programm deaktivieren"
-#: diff.c:5554
+#: diff.c:5596
msgid "allow an external diff helper to be executed"
msgstr "erlaube die Ausführung eines externes Programms für Änderungen"
-#: diff.c:5556
+#: diff.c:5598
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:5558
+#: diff.c:5600
msgid "<when>"
msgstr "<wann>"
-#: diff.c:5559
+#: diff.c:5601
msgid "ignore changes to submodules in the diff generation"
msgstr ""
"Änderungen in Submodulen während der Erstellung der Unterschiede ignorieren"
-#: diff.c:5562
+#: diff.c:5604
msgid "<format>"
msgstr "<Format>"
-#: diff.c:5563
+#: diff.c:5605
msgid "specify how differences in submodules are shown"
msgstr "angeben, wie Unterschiede in Submodulen gezeigt werden"
-#: diff.c:5567
+#: diff.c:5609
msgid "hide 'git add -N' entries from the index"
msgstr "'git add -N' Einträge vom Index verstecken"
-#: diff.c:5570
+#: diff.c:5612
msgid "treat 'git add -N' entries as real in the index"
msgstr "'git add -N' Einträge im Index als echt behandeln"
-#: diff.c:5572
+#: diff.c:5614
msgid "<string>"
msgstr "<Zeichenkette>"
-#: diff.c:5573
+#: diff.c:5615
msgid ""
"look for differences that change the number of occurrences of the specified "
"string"
@@ -3939,7 +4038,7 @@ msgstr ""
"nach Unterschieden suchen, welche die Anzahl des Vorkommens der angegebenen "
"Zeichenkette verändern"
-#: diff.c:5576
+#: diff.c:5618
msgid ""
"look for differences that change the number of occurrences of the specified "
"regex"
@@ -3947,37 +4046,37 @@ msgstr ""
"nach Unterschieden suchen, welche die Anzahl des Vorkommens des angegebenen "
"regulären Ausdrucks verändern"
-#: diff.c:5579
+#: diff.c:5621
msgid "show all changes in the changeset with -S or -G"
msgstr "alle Änderungen im Changeset mit -S oder -G anzeigen"
-#: diff.c:5582
+#: diff.c:5624
msgid "treat <string> in -S as extended POSIX regular expression"
msgstr ""
"<Zeichenkette> bei -S als erweiterten POSIX regulären Ausdruck behandeln"
-#: diff.c:5585
+#: diff.c:5627
msgid "control the order in which files appear in the output"
msgstr ""
"die Reihenfolge kontrollieren, in der die Dateien in der Ausgabe erscheinen"
-#: diff.c:5586 diff.c:5589
+#: diff.c:5628 diff.c:5631
msgid "<path>"
msgstr "<Pfad>"
-#: diff.c:5587
+#: diff.c:5629
msgid "show the change in the specified path first"
msgstr "die Änderung des angegebenen Pfades zuerst anzeigen"
-#: diff.c:5590
+#: diff.c:5632
msgid "skip the output to the specified path"
msgstr "überspringe die Ausgabe bis zum angegebenen Pfad"
-#: diff.c:5592
+#: diff.c:5634
msgid "<object-id>"
msgstr "<Objekt-ID>"
-#: diff.c:5593
+#: diff.c:5635
msgid ""
"look for differences that change the number of occurrences of the specified "
"object"
@@ -3985,33 +4084,33 @@ msgstr ""
"nach Unterschieden suchen, welche die Anzahl des Vorkommens des angegebenen "
"Objektes verändern"
-#: diff.c:5595
+#: diff.c:5637
msgid "[(A|C|D|M|R|T|U|X|B)...[*]]"
msgstr "[(A|C|D|M|R|T|U|X|B)...[*]]"
-#: diff.c:5596
+#: diff.c:5638
msgid "select files by diff type"
msgstr "Dateien anhand der Art der Änderung wählen"
-#: diff.c:5598
+#: diff.c:5640
msgid "<file>"
msgstr "<Datei>"
-#: diff.c:5599
-msgid "Output to a specific file"
+#: diff.c:5641
+msgid "output to a specific file"
msgstr "Ausgabe zu einer bestimmten Datei"
-#: diff.c:6257
+#: diff.c:6321
msgid "exhaustive rename detection was skipped due to too many files."
msgstr ""
"genaue Erkennung für Umbenennungen wurde aufgrund zu vieler Dateien\n"
"übersprungen."
-#: diff.c:6260
+#: diff.c:6324
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:6263
+#: diff.c:6327
#, c-format
msgid ""
"you may want to set your %s variable to at least %d and retry the command."
@@ -4064,22 +4163,22 @@ msgstr "deaktiviere Cone-Muster-Ãœbereinstimmung"
msgid "cannot use %s as an exclude file"
msgstr "kann %s nicht als exclude-Filter benutzen"
-#: dir.c:2418
+#: dir.c:2419
#, c-format
msgid "could not open directory '%s'"
msgstr "konnte Verzeichnis '%s' nicht öffnen"
-#: dir.c:2720
+#: dir.c:2721
msgid "failed to get kernel name and information"
msgstr "Fehler beim Sammeln von Namen und Informationen zum Kernel"
-#: dir.c:2844
+#: dir.c:2846
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:3112
+#: dir.c:3119
msgid ""
"No directory name could be guessed.\n"
"Please specify a directory on the command line"
@@ -4087,17 +4186,17 @@ msgstr ""
"Konnte keinen Verzeichnisnamen erraten.\n"
"Bitte geben Sie ein Verzeichnis auf der Befehlszeile an."
-#: dir.c:3800
+#: dir.c:3807
#, c-format
msgid "index file corrupt in repo %s"
msgstr "Index-Datei in Repository %s beschädigt"
-#: dir.c:3847 dir.c:3852
+#: dir.c:3854 dir.c:3859
#, c-format
msgid "could not create directories for %s"
msgstr "Konnte Verzeichnisse für '%s' nicht erstellen"
-#: dir.c:3881
+#: dir.c:3888
#, c-format
msgid "could not migrate git directory from '%s' to '%s'"
msgstr "Konnte Git-Verzeichnis nicht von '%s' nach '%s' migrieren"
@@ -4116,7 +4215,7 @@ msgstr "Filtere Inhalt"
msgid "could not stat file '%s'"
msgstr "konnte Datei '%s' nicht lesen"
-#: environment.c:145
+#: environment.c:147
#, c-format
msgid "bad git namespace path \"%s\""
msgstr "ungültiger Git-Namespace-Pfad \"%s\""
@@ -4147,249 +4246,276 @@ msgstr "git fetch-pack: ACK/NAK erwartet, '%s' bekommen"
msgid "unable to write to remote"
msgstr "konnte nicht zum Remote schreiben"
-#: fetch-pack.c:395 fetch-pack.c:1439
+#: fetch-pack.c:397 fetch-pack.c:1460
#, c-format
msgid "invalid shallow line: %s"
msgstr "ungültige shallow-Zeile: %s"
-#: fetch-pack.c:401 fetch-pack.c:1445
+#: fetch-pack.c:403 fetch-pack.c:1466
#, c-format
msgid "invalid unshallow line: %s"
msgstr "ungültige unshallow-Zeile: %s"
-#: fetch-pack.c:403 fetch-pack.c:1447
+#: fetch-pack.c:405 fetch-pack.c:1468
#, c-format
msgid "object not found: %s"
msgstr "Objekt nicht gefunden: %s"
-#: fetch-pack.c:406 fetch-pack.c:1450
+#: fetch-pack.c:408 fetch-pack.c:1471
#, c-format
msgid "error in object: %s"
msgstr "Fehler in Objekt: %s"
-#: fetch-pack.c:408 fetch-pack.c:1452
+#: fetch-pack.c:410 fetch-pack.c:1473
#, c-format
msgid "no shallow found: %s"
msgstr "kein shallow-Objekt gefunden: %s"
-#: fetch-pack.c:411 fetch-pack.c:1456
+#: fetch-pack.c:413 fetch-pack.c:1477
#, c-format
msgid "expected shallow/unshallow, got %s"
msgstr "shallow/unshallow erwartet, %s bekommen"
-#: fetch-pack.c:451
+#: fetch-pack.c:453
#, c-format
msgid "got %s %d %s"
msgstr "%s %d %s bekommen"
-#: fetch-pack.c:468
+#: fetch-pack.c:470
#, c-format
msgid "invalid commit %s"
msgstr "ungültiger Commit %s"
-#: fetch-pack.c:499
+#: fetch-pack.c:501
msgid "giving up"
msgstr "gebe auf"
-#: fetch-pack.c:512 progress.c:339
+#: fetch-pack.c:514 progress.h:25
msgid "done"
msgstr "fertig"
-#: fetch-pack.c:524
+#: fetch-pack.c:526
#, c-format
msgid "got %s (%d) %s"
msgstr "%s (%d) %s bekommen"
-#: fetch-pack.c:560
+#: fetch-pack.c:562
#, c-format
msgid "Marking %s as complete"
msgstr "Markiere %s als vollständig"
-#: fetch-pack.c:775
+#: fetch-pack.c:784
#, c-format
msgid "already have %s (%s)"
msgstr "habe %s (%s) bereits"
-#: fetch-pack.c:861
+#: fetch-pack.c:870
msgid "fetch-pack: unable to fork off sideband demultiplexer"
msgstr "fetch-pack: Fehler beim Starten des sideband demultiplexer"
-#: fetch-pack.c:869
+#: fetch-pack.c:878
msgid "protocol error: bad pack header"
msgstr "Protokollfehler: ungültiger Pack-Header"
-#: fetch-pack.c:965
+#: fetch-pack.c:974
#, c-format
msgid "fetch-pack: unable to fork off %s"
msgstr "fetch-pack: konnte %s nicht starten"
-#: fetch-pack.c:971
+#: fetch-pack.c:980
msgid "fetch-pack: invalid index-pack output"
msgstr "fetch-pack: ungültige index-pack Ausgabe"
-#: fetch-pack.c:988
+#: fetch-pack.c:997
#, c-format
msgid "%s failed"
msgstr "%s fehlgeschlagen"
-#: fetch-pack.c:990
+#: fetch-pack.c:999
msgid "error in sideband demultiplexer"
msgstr "Fehler in sideband demultiplexer"
-#: fetch-pack.c:1035
+#: fetch-pack.c:1048
#, c-format
msgid "Server version is %.*s"
msgstr "Server-Version ist %.*s"
-#: fetch-pack.c:1043 fetch-pack.c:1049 fetch-pack.c:1052 fetch-pack.c:1058
-#: fetch-pack.c:1062 fetch-pack.c:1066 fetch-pack.c:1070 fetch-pack.c:1074
-#: fetch-pack.c:1078 fetch-pack.c:1082 fetch-pack.c:1086 fetch-pack.c:1090
-#: fetch-pack.c:1096 fetch-pack.c:1102 fetch-pack.c:1107 fetch-pack.c:1112
+#: fetch-pack.c:1056 fetch-pack.c:1062 fetch-pack.c:1065 fetch-pack.c:1071
+#: fetch-pack.c:1075 fetch-pack.c:1079 fetch-pack.c:1083 fetch-pack.c:1087
+#: fetch-pack.c:1091 fetch-pack.c:1095 fetch-pack.c:1099 fetch-pack.c:1103
+#: fetch-pack.c:1109 fetch-pack.c:1115 fetch-pack.c:1120 fetch-pack.c:1125
#, c-format
msgid "Server supports %s"
msgstr "Server unterstützt %s"
-#: fetch-pack.c:1045
+#: fetch-pack.c:1058
msgid "Server does not support shallow clients"
msgstr "Server unterstützt keine shallow-Clients"
-#: fetch-pack.c:1105
+#: fetch-pack.c:1118
msgid "Server does not support --shallow-since"
msgstr "Server unterstützt kein --shallow-since"
-#: fetch-pack.c:1110
+#: fetch-pack.c:1123
msgid "Server does not support --shallow-exclude"
msgstr "Server unterstützt kein --shallow-exclude"
-#: fetch-pack.c:1114
+#: fetch-pack.c:1127
msgid "Server does not support --deepen"
msgstr "Server unterstützt kein --deepen"
-#: fetch-pack.c:1116
+#: fetch-pack.c:1129
msgid "Server does not support this repository's object format"
msgstr "Server unterstützt das Objekt-Format dieses Repositories nicht"
-#: fetch-pack.c:1129
+#: fetch-pack.c:1142
msgid "no common commits"
msgstr "keine gemeinsamen Commits"
-#: fetch-pack.c:1138 fetch-pack.c:1485 builtin/clone.c:1130
+#: fetch-pack.c:1151 fetch-pack.c:1506 builtin/clone.c:1166
msgid "source repository is shallow, reject to clone."
msgstr ""
"Quelle ist ein Repository mit unvollständiger Historie (shallow), Klonen "
"zurückgewiesen."
-#: fetch-pack.c:1144 fetch-pack.c:1681
+#: fetch-pack.c:1157 fetch-pack.c:1705
msgid "git fetch-pack: fetch failed."
msgstr "git fetch-pack: Abholen fehlgeschlagen."
-#: fetch-pack.c:1258
+#: fetch-pack.c:1271
#, c-format
msgid "mismatched algorithms: client %s; server %s"
msgstr "Algorithmen stimmen nicht überein: Client %s; Server %s"
-#: fetch-pack.c:1262
+#: fetch-pack.c:1275
#, c-format
msgid "the server does not support algorithm '%s'"
msgstr "der Server unterstützt Algorithmus '%s' nicht"
-#: fetch-pack.c:1295
+#: fetch-pack.c:1308
msgid "Server does not support shallow requests"
msgstr "Server unterstützt keine shallow-Anfragen"
-#: fetch-pack.c:1302
+#: fetch-pack.c:1315
msgid "Server supports filter"
msgstr "Server unterstützt Filter"
-#: fetch-pack.c:1345 fetch-pack.c:2063
+#: fetch-pack.c:1358 fetch-pack.c:2087
msgid "unable to write request to remote"
msgstr "konnte Anfrage nicht zum Remote schreiben"
-#: fetch-pack.c:1363
+#: fetch-pack.c:1376
#, c-format
msgid "error reading section header '%s'"
msgstr "Fehler beim Lesen von Sektionskopf '%s'."
-#: fetch-pack.c:1369
+#: fetch-pack.c:1382
#, c-format
msgid "expected '%s', received '%s'"
msgstr "'%s' erwartet, '%s' empfangen"
-#: fetch-pack.c:1403
+#: fetch-pack.c:1416
#, c-format
msgid "unexpected acknowledgment line: '%s'"
msgstr "Unerwartete Acknowledgment-Zeile: '%s'"
-#: fetch-pack.c:1408
+#: fetch-pack.c:1421
#, c-format
msgid "error processing acks: %d"
msgstr "Fehler beim Verarbeiten von ACKS: %d"
-#: fetch-pack.c:1418
-msgid "expected packfile to be sent after 'ready'"
-msgstr "Erwartete Versand einer Packdatei nach 'ready'."
+#. TRANSLATORS: The parameter will be 'ready', a protocol
+#. keyword.
+#.
+#: fetch-pack.c:1435
+#, c-format
+msgid "expected packfile to be sent after '%s'"
+msgstr "erwartete Versand einer Packdatei nach '%s'"
-#: fetch-pack.c:1420
-msgid "expected no other sections to be sent after no 'ready'"
-msgstr "Erwartete keinen Versand einer anderen Sektion ohne 'ready'."
+#. TRANSLATORS: The parameter will be 'ready', a protocol
+#. keyword.
+#.
+#: fetch-pack.c:1441
+#, c-format
+msgid "expected no other sections to be sent after no '%s'"
+msgstr "erwartete keinen Versand anderer Sektionen nach keinem '%s'"
-#: fetch-pack.c:1461
+#: fetch-pack.c:1482
#, c-format
msgid "error processing shallow info: %d"
msgstr "Fehler beim Verarbeiten von Shallow-Informationen: %d"
-#: fetch-pack.c:1510
+#: fetch-pack.c:1531
#, c-format
msgid "expected wanted-ref, got '%s'"
msgstr "wanted-ref erwartet, '%s' bekommen"
-#: fetch-pack.c:1515
+#: fetch-pack.c:1536
#, c-format
msgid "unexpected wanted-ref: '%s'"
msgstr "unerwartetes wanted-ref: '%s'"
-#: fetch-pack.c:1520
+#: fetch-pack.c:1541
#, c-format
msgid "error processing wanted refs: %d"
msgstr "Fehler beim Verarbeiten von wanted-refs: %d"
-#: fetch-pack.c:1550
+#: fetch-pack.c:1571
msgid "git fetch-pack: expected response end packet"
msgstr "git fetch-pack: Antwort-Endpaket erwartet"
-#: fetch-pack.c:1959
+#: fetch-pack.c:1983
msgid "no matching remote head"
msgstr "kein übereinstimmender Remote-Branch"
-#: fetch-pack.c:1982 builtin/clone.c:581
+#: fetch-pack.c:2006 builtin/clone.c:587
msgid "remote did not send all necessary objects"
msgstr "Remote-Repository hat nicht alle erforderlichen Objekte gesendet"
-#: fetch-pack.c:2085
+#: fetch-pack.c:2109
msgid "unexpected 'ready' from remote"
msgstr "unerwartetes 'ready' von Remote-Repository"
-#: fetch-pack.c:2108
+#: fetch-pack.c:2132
#, c-format
msgid "no such remote ref %s"
msgstr "Remote-Referenz %s nicht gefunden"
-#: fetch-pack.c:2111
+#: fetch-pack.c:2135
#, c-format
msgid "Server does not allow request for unadvertised object %s"
msgstr "Der Server lehnt Anfrage nach nicht angebotenem Objekt %s ab."
-#: gpg-interface.c:329 gpg-interface.c:457 gpg-interface.c:974
-#: gpg-interface.c:990
+#: fsmonitor-ipc.c:119
+#, c-format
+msgid "fsmonitor_ipc__send_query: invalid path '%s'"
+msgstr "fsmonitor_ipc__send_query: ungültiger Pfad '%s'"
+
+#: fsmonitor-ipc.c:125
+#, c-format
+msgid "fsmonitor_ipc__send_query: unspecified error on '%s'"
+msgstr "fsmonitor_ipc__send_query: nicht spezifizierter Fehler bei '%s'"
+
+#: fsmonitor-ipc.c:155
+msgid "fsmonitor--daemon is not running"
+msgstr "fsmonitor--daemon läuft nicht"
+
+#: fsmonitor-ipc.c:164
+#, c-format
+msgid "could not send '%s' command to fsmonitor--daemon"
+msgstr "konnte '%s' Befehl nicht an fsmonitor--daemon senden"
+
+#: gpg-interface.c:329 gpg-interface.c:456 gpg-interface.c:995
+#: gpg-interface.c:1011
msgid "could not create temporary file"
msgstr "konnte temporäre Datei nicht erstellen"
-#: gpg-interface.c:332 gpg-interface.c:460
+#: gpg-interface.c:332 gpg-interface.c:459
#, c-format
msgid "failed writing detached signature to '%s'"
msgstr "Fehler beim Schreiben der losgelösten Signatur nach '%s'"
-#: gpg-interface.c:451
+#: gpg-interface.c:450
msgid ""
"gpg.ssh.allowedSignersFile needs to be configured and exist for ssh "
"signature verification"
@@ -4397,7 +4523,7 @@ msgstr ""
"gpg.ssh.allowedSignersFile muss konfiguriert sein und für die Überprüfung "
"der SSH-Signatur vorhanden sein"
-#: gpg-interface.c:480
+#: gpg-interface.c:479
msgid ""
"ssh-keygen -Y find-principals/verify is needed for ssh signature "
"verification (available in openssh version 8.2p1+)"
@@ -4405,59 +4531,59 @@ msgstr ""
"ssh-keygen -Y find-principals/verify wird für die Verifizierung der SSH-"
"Signatur benötigt (verfügbar in openssh Version 8.2p1+)"
-#: gpg-interface.c:536
+#: gpg-interface.c:550
#, c-format
msgid "ssh signing revocation file configured but not found: %s"
msgstr "SSH-Signatursperrdatei konfiguriert, aber nicht gefunden: %s"
-#: gpg-interface.c:624
+#: gpg-interface.c:638
#, c-format
msgid "bad/incompatible signature '%s'"
msgstr "fehlerhafte/inkompatible Signatur '%s'"
-#: gpg-interface.c:801 gpg-interface.c:806
+#: gpg-interface.c:815 gpg-interface.c:820
#, c-format
msgid "failed to get the ssh fingerprint for key '%s'"
msgstr "konnte SSH-Fingerabdruck für Schlüssel '%s' nicht bekommen"
-#: gpg-interface.c:829
+#: gpg-interface.c:843
msgid ""
"either user.signingkey or gpg.ssh.defaultKeyCommand needs to be configured"
msgstr ""
"entweder user.signingkey oder gpg.ssh.defaultKeyCommand muss konfiguriert "
"sein"
-#: gpg-interface.c:851
+#: gpg-interface.c:865
#, c-format
msgid "gpg.ssh.defaultKeyCommand succeeded but returned no keys: %s %s"
msgstr ""
"gpg.ssh.defaultKeyCommand war erfolgreich, gab aber keine Schlüssel zurück: "
"%s %s"
-#: gpg-interface.c:857
+#: gpg-interface.c:871
#, c-format
msgid "gpg.ssh.defaultKeyCommand failed: %s %s"
msgstr "gpg.ssh.defaultKeyCommand fehlgeschlagen: %s %s"
-#: gpg-interface.c:945
+#: gpg-interface.c:966
msgid "gpg failed to sign the data"
msgstr "gpg beim Signieren der Daten fehlgeschlagen"
-#: gpg-interface.c:967
+#: gpg-interface.c:988
msgid "user.signingkey needs to be set for ssh signing"
msgstr "user.signingkey muss für die SSH-Signatur gesetzt sein"
-#: gpg-interface.c:978
+#: gpg-interface.c:999
#, c-format
msgid "failed writing ssh signing key to '%s'"
msgstr "Fehler beim Schreiben des SSH-Signaturschlüssels nach '%s'"
-#: gpg-interface.c:996
+#: gpg-interface.c:1017
#, c-format
msgid "failed writing ssh signing key buffer to '%s'"
msgstr "Fehler beim Schreiben des SSH-Signaturschlüsselpuffers nach '%s'"
-#: gpg-interface.c:1014
+#: gpg-interface.c:1035
msgid ""
"ssh-keygen -Y sign is needed for ssh signing (available in openssh version "
"8.2p1+)"
@@ -4465,7 +4591,7 @@ msgstr ""
"\"ssh-keygen -Y sign\" wird für die SSH-Signatur benötigt (verfügbar in "
"openssh Version 8.2p1+)"
-#: gpg-interface.c:1026
+#: gpg-interface.c:1047
#, c-format
msgid "failed reading ssh signing data buffer from '%s'"
msgstr "Fehler beim Lesen des SSH-Signaturdatenpuffers von '%s'"
@@ -4475,7 +4601,7 @@ msgstr "Fehler beim Lesen des SSH-Signaturdatenpuffers von '%s'"
msgid "ignored invalid color '%.*s' in log.graphColors"
msgstr "ungültige Farbe '%.*s' in log.graphColors ignoriert"
-#: grep.c:531
+#: grep.c:446
msgid ""
"given pattern contains NULL byte (via -f <file>). This is only supported "
"with -P under PCRE v2"
@@ -4483,111 +4609,111 @@ msgstr ""
"Angegebenes Muster enthält NULL Byte (über -f <Datei>). Das wird nur mit -"
"Punter PCRE v2 unterstützt."
-#: grep.c:1942
+#: grep.c:1859
#, c-format
msgid "'%s': unable to read %s"
msgstr "'%s': konnte %s nicht lesen"
-#: grep.c:1959 setup.c:177 builtin/clone.c:302 builtin/diff.c:90
+#: grep.c:1876 setup.c:178 builtin/clone.c:308 builtin/diff.c:90
#: builtin/rm.c:136
#, c-format
msgid "failed to stat '%s'"
msgstr "Konnte '%s' nicht lesen"
-#: grep.c:1970
+#: grep.c:1887
#, c-format
msgid "'%s': short read"
msgstr "'%s': read() zu kurz"
-#: help.c:24
+#: help.c:25
msgid "start a working area (see also: git help tutorial)"
msgstr "Arbeitsverzeichnis anlegen (siehe auch: git help tutorial)"
-#: help.c:25
+#: help.c:26
msgid "work on the current change (see also: git help everyday)"
msgstr "an aktuellen Änderungen arbeiten (siehe auch: git help everyday)"
-#: help.c:26
+#: help.c:27
msgid "examine the history and state (see also: git help revisions)"
msgstr "Historie und Status untersuchen (siehe auch: git help revisions)"
-#: help.c:27
+#: help.c:28
msgid "grow, mark and tweak your common history"
msgstr "Historie erweitern und bearbeiten"
-#: help.c:28
+#: help.c:29
msgid "collaborate (see also: git help workflows)"
msgstr "mit anderen zusammenarbeiten (siehe auch: git help workflows)"
-#: help.c:32
+#: help.c:33
msgid "Main Porcelain Commands"
msgstr "Hauptbefehle"
-#: help.c:33
+#: help.c:34
msgid "Ancillary Commands / Manipulators"
msgstr "Nebenbefehle / Manipulationen"
-#: help.c:34
+#: help.c:35
msgid "Ancillary Commands / Interrogators"
msgstr "Nebenbefehle / Abfragen"
-#: help.c:35
+#: help.c:36
msgid "Interacting with Others"
msgstr "mit anderen interagieren"
-#: help.c:36
+#: help.c:37
msgid "Low-level Commands / Manipulators"
msgstr "Systembefehle / Manipulationen"
-#: help.c:37
+#: help.c:38
msgid "Low-level Commands / Interrogators"
msgstr "Systembefehle / Abfragen"
-#: help.c:38
+#: help.c:39
msgid "Low-level Commands / Syncing Repositories"
msgstr "Systembefehle / Repositories synchronisieren"
-#: help.c:39
+#: help.c:40
msgid "Low-level Commands / Internal Helpers"
msgstr "Systembefehle / Interne Hilfsbefehle"
-#: help.c:313
+#: help.c:316
#, c-format
msgid "available git commands in '%s'"
msgstr "Vorhandene Git-Befehle in '%s'"
-#: help.c:320
+#: help.c:323
msgid "git commands available from elsewhere on your $PATH"
msgstr "Vorhandene Git-Befehle anderswo in Ihrem $PATH"
-#: help.c:329
+#: help.c:332
msgid "These are common Git commands used in various situations:"
msgstr "Allgemeine Git-Befehle, verwendet in verschiedenen Situationen:"
-#: help.c:378 git.c:100
+#: help.c:382 git.c:100
#, c-format
msgid "unsupported command listing type '%s'"
msgstr "Nicht unterstützte Art zur Befehlsauflistung '%s'."
-#: help.c:418
+#: help.c:422
msgid "The Git concept guides are:"
msgstr "Die Git-Konzeptanleitungen sind:"
-#: help.c:442
-msgid "See 'git help <command>' to read about a specific subcommand"
-msgstr ""
-"Siehe 'git help <Befehl>', um mehr über einen spezifischen Unterbefehl zu "
-"lesen."
-
-#: help.c:447
+#: help.c:446
msgid "External commands"
msgstr "Externe Befehle"
-#: help.c:462
+#: help.c:468
msgid "Command aliases"
msgstr "Alias-Befehle"
-#: help.c:543
+#: help.c:486
+msgid "See 'git help <command>' to read about a specific subcommand"
+msgstr ""
+"Siehe 'git help <Befehl>', um mehr über einen spezifischen Unterbefehl zu "
+"lesen."
+
+#: help.c:563
#, c-format
msgid ""
"'%s' appears to be a git command, but we were not\n"
@@ -4596,37 +4722,37 @@ msgstr ""
"'%s' scheint ein git-Befehl zu sein, konnte aber\n"
"nicht ausgeführt werden. Vielleicht ist git-%s fehlerhaft?"
-#: help.c:565 help.c:662
+#: help.c:585 help.c:682
#, c-format
msgid "git: '%s' is not a git command. See 'git --help'."
msgstr "git: '%s' ist kein Git-Befehl. Siehe 'git --help'."
-#: help.c:613
+#: help.c:633
msgid "Uh oh. Your system reports no Git commands at all."
msgstr "Uh oh. Keine Git-Befehle auf Ihrem System vorhanden."
-#: help.c:635
+#: help.c:655
#, c-format
msgid "WARNING: You called a Git command named '%s', which does not exist."
msgstr ""
"WARNUNG: Sie haben Git-Befehl '%s' ausgeführt, welcher nicht existiert."
-#: help.c:640
+#: help.c:660
#, c-format
msgid "Continuing under the assumption that you meant '%s'."
msgstr "Setze fort unter der Annahme, dass Sie '%s' meinten."
-#: help.c:646
+#: help.c:666
#, c-format
msgid "Run '%s' instead [y/N]? "
msgstr "Stattdessen '%s' ausführen (y/N)? "
-#: help.c:654
+#: help.c:674
#, c-format
msgid "Continuing in %0.1f seconds, assuming that you meant '%s'."
msgstr "Setze in %0.1f Sekunden fort unter der Annahme, dass Sie '%s' meinten."
-#: help.c:666
+#: help.c:686
msgid ""
"\n"
"The most similar command is"
@@ -4640,16 +4766,16 @@ msgstr[1] ""
"\n"
"Die ähnlichsten Befehle sind"
-#: help.c:706
+#: help.c:729
msgid "git version [<options>]"
msgstr "git version [<Optionen>]"
-#: help.c:761
+#: help.c:784
#, c-format
msgid "%s: %s - %s"
msgstr "%s: %s - %s"
-#: help.c:765
+#: help.c:788
msgid ""
"\n"
"Did you mean this?"
@@ -4663,7 +4789,7 @@ msgstr[1] ""
"\n"
"Haben Sie eines von diesen gemeint?"
-#: hook.c:27
+#: hook.c:28
#, c-format
msgid ""
"The '%s' hook was ignored because it's not set as executable.\n"
@@ -4673,15 +4799,20 @@ msgstr ""
"Sie können diese Warnung mit `git config advice.ignoredHook false` "
"deaktivieren."
-#: ident.c:353
+#: hook.c:87
+#, c-format
+msgid "Couldn't start hook '%s'\n"
+msgstr "Konnte Hook '%s' nicht starten\n"
+
+#: ident.c:354
msgid "Author identity unknown\n"
msgstr "Identität des Autors unbekannt\n"
-#: ident.c:356
+#: ident.c:357
msgid "Committer identity unknown\n"
msgstr "Identität des Commit-Erstellers unbekannt\n"
-#: ident.c:362
+#: ident.c:363
msgid ""
"\n"
"*** Please tell me who you are.\n"
@@ -4707,71 +4838,71 @@ msgstr ""
"Lassen Sie die Option \"--global\" weg, um die Identität nur\n"
"für dieses Repository zu setzen.\n"
-#: ident.c:397
+#: ident.c:398
msgid "no email was given and auto-detection is disabled"
msgstr "keine E-Mail angegeben und automatische Erkennung ist deaktiviert"
-#: ident.c:402
+#: ident.c:403
#, c-format
msgid "unable to auto-detect email address (got '%s')"
msgstr "Konnte die E-Mail-Adresse nicht automatisch erkennen ('%s' erhalten)"
-#: ident.c:419
+#: ident.c:420
msgid "no name was given and auto-detection is disabled"
msgstr "kein Name angegeben und automatische Erkennung ist deaktiviert"
-#: ident.c:425
+#: ident.c:426
#, c-format
msgid "unable to auto-detect name (got '%s')"
msgstr "konnte Namen nicht automatisch erkennen ('%s' erhalten)"
-#: ident.c:433
+#: ident.c:434
#, c-format
msgid "empty ident name (for <%s>) not allowed"
msgstr "Leerer Name in Identifikation (für <%s>) nicht erlaubt."
-#: ident.c:439
+#: ident.c:440
#, c-format
msgid "name consists only of disallowed characters: %s"
msgstr "Name besteht nur aus nicht erlaubten Zeichen: %s"
-#: ident.c:454 builtin/commit.c:648
+#: ident.c:455 builtin/commit.c:649
#, c-format
msgid "invalid date format: %s"
msgstr "Ungültiges Datumsformat: %s"
-#: list-objects-filter-options.c:83
+#: list-objects-filter-options.c:68
msgid "expected 'tree:<depth>'"
msgstr "'tree:<Tiefe>' erwartet"
-#: list-objects-filter-options.c:98
+#: list-objects-filter-options.c:83
msgid "sparse:path filters support has been dropped"
msgstr "Keine Unterstützung für sparse:path Filter mehr"
-#: list-objects-filter-options.c:105
+#: list-objects-filter-options.c:90
#, c-format
msgid "'%s' for 'object:type=<type>' is not a valid object type"
msgstr "'%s' für 'object:type=<Typ>' ist kein gültiger Objekttyp"
-#: list-objects-filter-options.c:124
+#: list-objects-filter-options.c:109
#, c-format
msgid "invalid filter-spec '%s'"
msgstr "Ungültige filter-spec '%s'"
-#: list-objects-filter-options.c:140
+#: list-objects-filter-options.c:125
#, c-format
msgid "must escape char in sub-filter-spec: '%c'"
msgstr "Zeichen in sub-filter-spec muss maskiert werden: '%c'"
-#: list-objects-filter-options.c:182
+#: list-objects-filter-options.c:167
msgid "expected something after combine:"
msgstr "erwartete etwas nach 'combine:'"
-#: list-objects-filter-options.c:264
+#: list-objects-filter-options.c:249
msgid "multiple filter-specs cannot be combined"
msgstr "mehrere filter-specs können nicht kombiniert werden"
-#: list-objects-filter-options.c:376
+#: list-objects-filter-options.c:365
msgid "unable to upgrade repository format to support partial clone"
msgstr ""
"Repository-Format konnte nicht erweitert werden, um partielles Klonen zu "
@@ -4787,18 +4918,18 @@ msgstr "konnte nicht auf partiellen Blob '%s' zugreifen"
msgid "unable to parse sparse filter data in %s"
msgstr "konnte partielle Filter-Daten in %s nicht parsen"
-#: list-objects.c:127
+#: list-objects.c:144
#, c-format
msgid "entry '%s' in tree %s has tree mode, but is not a tree"
msgstr ""
"Eintrag '%s' im Tree-Objekt %s hat Tree-Modus, aber ist kein Tree-Objekt"
-#: list-objects.c:140
+#: list-objects.c:157
#, c-format
msgid "entry '%s' in tree %s has blob mode, but is not a blob"
msgstr "Eintrag '%s' im Tree-Objekt %s hat Blob-Modus, aber ist kein Blob"
-#: list-objects.c:398
+#: list-objects.c:415
#, c-format
msgid "unable to load root tree for commit %s"
msgstr "Konnte Root-Tree-Objekt für Commit %s nicht laden."
@@ -4828,17 +4959,12 @@ msgstr ""
msgid "Unable to create '%s.lock': %s"
msgstr "Konnte '%s.lock' nicht erstellen: %s"
-#: ls-refs.c:37
-#, c-format
-msgid "invalid value '%s' for lsrefs.unborn"
-msgstr "ungültiger Wert '%s' für lsrefs.unborn"
-
-#: ls-refs.c:174
+#: ls-refs.c:175
#, c-format
msgid "unexpected line: '%s'"
msgstr "unerwartete Zeile: '%s'"
-#: ls-refs.c:178
+#: ls-refs.c:179
msgid "expected flush after ls-refs arguments"
msgstr "erwartete Flush nach Argumenten für die Auflistung der Referenzen"
@@ -4846,37 +4972,37 @@ msgstr "erwartete Flush nach Argumenten für die Auflistung der Referenzen"
msgid "quoted CRLF detected"
msgstr "angeführtes CRLF entdeckt"
-#: mailinfo.c:1254 builtin/am.c:184 builtin/mailinfo.c:46
+#: mailinfo.c:1254 builtin/am.c:185 builtin/mailinfo.c:46
#, c-format
msgid "bad action '%s' for '%s'"
msgstr "ungültige Aktion '%s' für '%s'"
-#: merge-ort.c:1584 merge-recursive.c:1211
+#: merge-ort.c:1630 merge-recursive.c:1214
#, c-format
msgid "Failed to merge submodule %s (not checked out)"
msgstr "Fehler beim Merge von Submodul %s (nicht ausgecheckt)."
-#: merge-ort.c:1593 merge-recursive.c:1218
+#: merge-ort.c:1639 merge-recursive.c:1221
#, c-format
msgid "Failed to merge submodule %s (commits not present)"
msgstr "Fehler beim Merge von Submodul %s (Commits nicht vorhanden)."
-#: merge-ort.c:1602 merge-recursive.c:1225
+#: merge-ort.c:1648 merge-recursive.c:1228
#, c-format
msgid "Failed to merge submodule %s (commits don't follow merge-base)"
msgstr "Fehler beim Merge von Submodul %s (Commits folgen keiner Merge-Basis)"
-#: merge-ort.c:1612 merge-ort.c:1620
+#: merge-ort.c:1658 merge-ort.c:1666
#, c-format
msgid "Note: Fast-forwarding submodule %s to %s"
msgstr "Hinweis: Spule Submodul %s vor zu %s"
-#: merge-ort.c:1642
+#: merge-ort.c:1688
#, c-format
msgid "Failed to merge submodule %s"
msgstr "Fehler beim Zusammenführen von Submodul %s"
-#: merge-ort.c:1649
+#: merge-ort.c:1695
#, c-format
msgid ""
"Failed to merge submodule %s, but a possible merge resolution exists:\n"
@@ -4886,7 +5012,7 @@ msgstr ""
"Auflösung des Merges vorhanden:\n"
"%s\n"
-#: merge-ort.c:1653 merge-recursive.c:1281
+#: merge-ort.c:1699 merge-recursive.c:1284
#, c-format
msgid ""
"If this is correct simply add it to the index for example\n"
@@ -4903,7 +5029,7 @@ msgstr ""
"\n"
"hinzu, um diesen Vorschlag zu akzeptieren.\n"
-#: merge-ort.c:1666
+#: merge-ort.c:1712
#, c-format
msgid ""
"Failed to merge submodule %s, but multiple possible merges exist:\n"
@@ -4913,21 +5039,21 @@ msgstr ""
"sind vorhanden:\n"
"%s"
-#: merge-ort.c:1887 merge-recursive.c:1372
+#: merge-ort.c:1937 merge-recursive.c:1375
msgid "Failed to execute internal merge"
msgstr "Fehler bei Ausführung des internen Merges"
-#: merge-ort.c:1892 merge-recursive.c:1377
+#: merge-ort.c:1942 merge-recursive.c:1380
#, c-format
msgid "Unable to add %s to database"
msgstr "Konnte %s nicht zur Datenbank hinzufügen"
-#: merge-ort.c:1899 merge-recursive.c:1410
+#: merge-ort.c:1949 merge-recursive.c:1413
#, c-format
msgid "Auto-merging %s"
msgstr "automatischer Merge von %s"
-#: merge-ort.c:2038 merge-recursive.c:2132
+#: merge-ort.c:2088 merge-recursive.c:2135
#, c-format
msgid ""
"CONFLICT (implicit dir rename): Existing file/dir at %s in the way of "
@@ -4938,7 +5064,7 @@ msgstr ""
"Weg von impliziter Verzeichnisumbenennung, die versucht, einen oder mehrere\n"
"Pfade dahin zu setzen: %s."
-#: merge-ort.c:2048 merge-recursive.c:2142
+#: merge-ort.c:2098 merge-recursive.c:2145
#, c-format
msgid ""
"CONFLICT (implicit dir rename): Cannot map more than one path to %s; "
@@ -4949,7 +5075,7 @@ msgstr ""
"%s mappen; implizite Verzeichnisumbenennungen versuchten diese Pfade dahin\n"
"zu setzen: %s"
-#: merge-ort.c:2106
+#: merge-ort.c:2156
#, c-format
msgid ""
"CONFLICT (directory rename split): Unclear where to rename %s to; it was "
@@ -4960,7 +5086,7 @@ msgstr ""
"ist; es wurde zu mehreren anderen Verzeichnissen umbenannt, ohne dass ein "
"Ziel die Mehrheit der Dateien erhält."
-#: merge-ort.c:2260 merge-recursive.c:2478
+#: merge-ort.c:2310 merge-recursive.c:2481
#, c-format
msgid ""
"WARNING: Avoiding applying %s -> %s rename to %s, because %s itself was "
@@ -4969,7 +5095,7 @@ msgstr ""
"WARNUNG: Vermeide Umbenennung %s -> %s von %s, weil %s selbst umbenannt "
"wurde."
-#: merge-ort.c:2400 merge-recursive.c:3261
+#: merge-ort.c:2450 merge-recursive.c:3264
#, c-format
msgid ""
"Path updated: %s added in %s inside a directory that was renamed in %s; "
@@ -4978,7 +5104,7 @@ msgstr ""
"Pfad aktualisiert: %s hinzugefügt in %s innerhalb eines Verzeichnisses, das "
"umbenannt wurde in %s; verschiebe es nach %s."
-#: merge-ort.c:2407 merge-recursive.c:3268
+#: merge-ort.c:2457 merge-recursive.c:3271
#, c-format
msgid ""
"Path updated: %s renamed to %s in %s, inside a directory that was renamed in "
@@ -4987,7 +5113,7 @@ msgstr ""
"Pfad aktualisiert: %s umbenannt nach %s in %s, innerhalb eines "
"Verzeichnisses, das umbenannt wurde in %s; verschiebe es nach %s."
-#: merge-ort.c:2420 merge-recursive.c:3264
+#: merge-ort.c:2470 merge-recursive.c:3267
#, c-format
msgid ""
"CONFLICT (file location): %s added in %s inside a directory that was renamed "
@@ -4996,7 +5122,7 @@ msgstr ""
"KONFLIKT (Speicherort): %s hinzugefügt in %s innerhalb eines Verzeichnisses, "
"das umbenannt wurde in %s, es sollte vielleicht nach %s verschoben werden."
-#: merge-ort.c:2428 merge-recursive.c:3271
+#: merge-ort.c:2478 merge-recursive.c:3274
#, c-format
msgid ""
"CONFLICT (file location): %s renamed to %s in %s, inside a directory that "
@@ -5006,13 +5132,13 @@ msgstr ""
"Verzeichnisses, das umbenannt wurde in %s, es sollte vielleicht nach %s "
"verschoben werden."
-#: merge-ort.c:2584
+#: merge-ort.c:2634
#, c-format
msgid "CONFLICT (rename/rename): %s renamed to %s in %s and to %s in %s."
msgstr ""
"KONFLIKT (umbenennen/umbenennen): %s zu %s in %s umbenannt und zu %s in %s."
-#: merge-ort.c:2679
+#: merge-ort.c:2729
#, c-format
msgid ""
"CONFLICT (rename involved in collision): rename of %s -> %s has content "
@@ -5023,23 +5149,23 @@ msgstr ""
"Inhaltskonflikte UND kollidiert mit einem anderen Pfad; dies kann zu "
"verschachtelten Konfliktmarkierungen führen."
-#: merge-ort.c:2698 merge-ort.c:2722
+#: merge-ort.c:2748 merge-ort.c:2772
#, c-format
msgid "CONFLICT (rename/delete): %s renamed to %s in %s, but deleted in %s."
msgstr ""
"KONFLIKT (umbenennen/löschen): %s zu %s in %s umbenannt, aber in %s gelöscht."
-#: merge-ort.c:3212 merge-recursive.c:3022
+#: merge-ort.c:3261 merge-recursive.c:3025
#, c-format
msgid "cannot read object %s"
msgstr "kann Objekt %s nicht lesen"
-#: merge-ort.c:3215 merge-recursive.c:3025
+#: merge-ort.c:3264 merge-recursive.c:3028
#, c-format
msgid "object %s is not a blob"
msgstr "Objekt %s ist kein Blob"
-#: merge-ort.c:3644
+#: merge-ort.c:3693
#, c-format
msgid ""
"CONFLICT (file/directory): directory in the way of %s from %s; moving it to "
@@ -5048,7 +5174,7 @@ msgstr ""
"KONFLIKT (Datei/Verzeichnis): Verzeichnis im Weg von %s aus %s; stattdessen "
"nach %s verschieben."
-#: merge-ort.c:3721
+#: merge-ort.c:3770
#, c-format
msgid ""
"CONFLICT (distinct types): %s had different types on each side; renamed both "
@@ -5058,7 +5184,7 @@ msgstr ""
"Seite; beide wurden umbenannt, damit jeder irgendwo aufgezeichnet werden "
"kann."
-#: merge-ort.c:3728
+#: merge-ort.c:3777
#, c-format
msgid ""
"CONFLICT (distinct types): %s had different types on each side; renamed one "
@@ -5068,24 +5194,24 @@ msgstr ""
"Seite; eines der beiden wurde umbenannt, damit jeder irgendwo aufgezeichnet "
"werden kann."
-#: merge-ort.c:3819 merge-recursive.c:3101
+#: merge-ort.c:3866 merge-recursive.c:3104
msgid "content"
msgstr "Inhalt"
-#: merge-ort.c:3821 merge-recursive.c:3105
+#: merge-ort.c:3868 merge-recursive.c:3108
msgid "add/add"
msgstr "hinzufügen/hinzufügen"
-#: merge-ort.c:3823 merge-recursive.c:3150
+#: merge-ort.c:3870 merge-recursive.c:3153
msgid "submodule"
msgstr "Submodul"
-#: merge-ort.c:3825 merge-recursive.c:3151
+#: merge-ort.c:3872 merge-recursive.c:3154
#, c-format
msgid "CONFLICT (%s): Merge conflict in %s"
msgstr "KONFLIKT (%s): Merge-Konflikt in %s"
-#: merge-ort.c:3869
+#: merge-ort.c:3916
#, c-format
msgid ""
"CONFLICT (modify/delete): %s deleted in %s and modified in %s. Version %s "
@@ -5094,7 +5220,7 @@ msgstr ""
"KONFLIKT (ändern/löschen): %s gelöscht in %s und geändert in %s. Stand %s "
"von %s wurde im Arbeitsbereich gelassen."
-#: merge-ort.c:4165
+#: merge-ort.c:4212
#, c-format
msgid ""
"Note: %s not up to date and in way of checking out conflicted version; old "
@@ -5106,13 +5232,13 @@ msgstr ""
#. TRANSLATORS: The %s arguments are: 1) tree hash of a merge
#. base, and 2-3) the trees for the two trees we're merging.
#.
-#: merge-ort.c:4534
+#: merge-ort.c:4586
#, c-format
msgid "collecting merge info failed for trees %s, %s, %s"
msgstr ""
"Sammeln von Merge-Informationen für die Referenzen %s, %s, %s fehlgeschlagen"
-#: merge-ort-wrappers.c:13 merge-recursive.c:3716
+#: merge-ort-wrappers.c:13 merge-recursive.c:3723
#, c-format
msgid ""
"Your local changes to the following files would be overwritten by merge:\n"
@@ -5122,7 +5248,7 @@ msgstr ""
"überschrieben werden:\n"
" %s"
-#: merge-ort-wrappers.c:33 merge-recursive.c:3482 builtin/merge.c:405
+#: merge-ort-wrappers.c:33 merge-recursive.c:3485 builtin/merge.c:405
msgid "Already up to date."
msgstr "Bereits aktuell."
@@ -5161,7 +5287,7 @@ msgstr ": vielleicht ein Verzeichnis/Datei-Konflikt?"
msgid "refusing to lose untracked file at '%s'"
msgstr "verweigere, da unversionierte Dateien in '%s' verloren gehen würden"
-#: merge-recursive.c:956 builtin/cat-file.c:41
+#: merge-recursive.c:956 builtin/cat-file.c:47
#, c-format
msgid "cannot read object %s '%s'"
msgstr "kann Objekt %s '%s' nicht lesen"
@@ -5186,45 +5312,45 @@ msgstr "Fehler beim Erstellen einer symbolischen Verknüpfung für '%s': %s"
msgid "do not know what to do with %06o %s '%s'"
msgstr "weiß nicht was mit %06o %s '%s' zu machen ist"
-#: merge-recursive.c:1233 merge-recursive.c:1246
+#: merge-recursive.c:1236 merge-recursive.c:1249
#, c-format
msgid "Fast-forwarding submodule %s to the following commit:"
msgstr "Spule Submodul %s zu dem folgenden Commit vor:"
-#: merge-recursive.c:1236 merge-recursive.c:1249
+#: merge-recursive.c:1239 merge-recursive.c:1252
#, c-format
msgid "Fast-forwarding submodule %s"
msgstr "Spule Submodul %s vor"
-#: merge-recursive.c:1273
+#: merge-recursive.c:1276
#, c-format
msgid "Failed to merge submodule %s (merge following commits not found)"
msgstr ""
"Fehler beim Merge von Submodule %s (dem Merge nachfolgende Commits nicht "
"gefunden)"
-#: merge-recursive.c:1277
+#: merge-recursive.c:1280
#, c-format
msgid "Failed to merge submodule %s (not fast-forward)"
msgstr "Fehler beim Merge von Submodul %s (kein Vorspulen)"
-#: merge-recursive.c:1278
+#: merge-recursive.c:1281
msgid "Found a possible merge resolution for the submodule:\n"
msgstr "Mögliche Auflösung des Merges für Submodul gefunden:\n"
-#: merge-recursive.c:1290
+#: merge-recursive.c:1293
#, c-format
msgid "Failed to merge submodule %s (multiple merges found)"
msgstr "Fehler beim Merge von Submodul %s (mehrere Merges gefunden)"
-#: merge-recursive.c:1434
+#: merge-recursive.c:1437
#, c-format
msgid "Error: Refusing to lose untracked file at %s; writing to %s instead."
msgstr ""
"Fehler: Verweigere unversionierte Datei bei %s zu verlieren;\n"
"schreibe stattdessen nach %s."
-#: merge-recursive.c:1506
+#: merge-recursive.c:1509
#, c-format
msgid ""
"CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left "
@@ -5233,7 +5359,7 @@ msgstr ""
"KONFLIKT (%s/löschen): %s gelöscht in %s und %s in %s. Stand %s von %s wurde "
"im Arbeitsbereich gelassen."
-#: merge-recursive.c:1511
+#: merge-recursive.c:1514
#, c-format
msgid ""
"CONFLICT (%s/delete): %s deleted in %s and %s to %s in %s. Version %s of %s "
@@ -5242,7 +5368,7 @@ msgstr ""
"KONFLIKT (%s/löschen): %s gelöscht in %s und %s nach %s in %s. Stand %s von "
"%s wurde im Arbeitsbereich gelassen."
-#: merge-recursive.c:1518
+#: merge-recursive.c:1521
#, c-format
msgid ""
"CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left "
@@ -5251,7 +5377,7 @@ msgstr ""
"KONFLIKT (%s/löschen): %s gelöscht in %s und %s in %s. Stand %s von %s wurde "
"im Arbeitsbereich bei %s gelassen."
-#: merge-recursive.c:1523
+#: merge-recursive.c:1526
#, c-format
msgid ""
"CONFLICT (%s/delete): %s deleted in %s and %s to %s in %s. Version %s of %s "
@@ -5260,46 +5386,46 @@ msgstr ""
"KONFLIKT (%s/löschen): %s gelöscht in %s und %s nach %s in %s. Stand %s von "
"%s wurde im Arbeitsbereich bei %s gelassen."
-#: merge-recursive.c:1558
+#: merge-recursive.c:1561
msgid "rename"
msgstr "umbenennen"
-#: merge-recursive.c:1558
+#: merge-recursive.c:1561
msgid "renamed"
msgstr "umbenannt"
-#: merge-recursive.c:1609 merge-recursive.c:2515 merge-recursive.c:3178
+#: merge-recursive.c:1612 merge-recursive.c:2518 merge-recursive.c:3181
#, c-format
msgid "Refusing to lose dirty file at %s"
msgstr "Verweigere geänderte Datei bei %s zu verlieren."
-#: merge-recursive.c:1619
+#: merge-recursive.c:1622
#, c-format
msgid "Refusing to lose untracked file at %s, even though it's in the way."
msgstr ""
"Verweigere unversionierte Datei bei %s zu verlieren, auch wenn diese im Weg "
"ist."
-#: merge-recursive.c:1677
+#: merge-recursive.c:1680
#, c-format
msgid "CONFLICT (rename/add): Rename %s->%s in %s. Added %s in %s"
msgstr ""
"KONFLIKT (umbenennen/hinzufügen): Benenne um %s->%s in %s. %s hinzugefügt in "
"%s"
-#: merge-recursive.c:1708
+#: merge-recursive.c:1711
#, c-format
msgid "%s is a directory in %s adding as %s instead"
msgstr "%s ist ein Verzeichnis in %s, füge es stattdessen als %s hinzu"
-#: merge-recursive.c:1713
+#: merge-recursive.c:1716
#, c-format
msgid "Refusing to lose untracked file at %s; adding as %s instead"
msgstr ""
"Verweigere unversionierte Datei bei %s zu verlieren; füge stattdessen %s "
"hinzu"
-#: merge-recursive.c:1740
+#: merge-recursive.c:1743
#, c-format
msgid ""
"CONFLICT (rename/rename): Rename \"%s\"->\"%s\" in branch \"%s\" rename \"%s"
@@ -5308,18 +5434,18 @@ msgstr ""
"KONFLIKT (umbenennen/umbenennen): Benenne um \"%s\"->\"%s\" in Branch \"%s\" "
"und \"%s\"->\"%s\" in Branch \"%s\"%s"
-#: merge-recursive.c:1745
+#: merge-recursive.c:1748
msgid " (left unresolved)"
msgstr " (bleibt unaufgelöst)"
-#: merge-recursive.c:1837
+#: merge-recursive.c:1840
#, c-format
msgid "CONFLICT (rename/rename): Rename %s->%s in %s. Rename %s->%s in %s"
msgstr ""
"KONFLIKT (umbenennen/umbenennen): Benenne um %s->%s in %s. Benenne um %s->%s "
"in %s"
-#: merge-recursive.c:2100
+#: merge-recursive.c:2103
#, c-format
msgid ""
"CONFLICT (directory rename split): Unclear where to place %s because "
@@ -5332,7 +5458,7 @@ msgstr ""
"wobei\n"
"keines dieser Ziele die Mehrheit der Dateien erhielt."
-#: merge-recursive.c:2234
+#: merge-recursive.c:2237
#, c-format
msgid ""
"CONFLICT (rename/rename): Rename directory %s->%s in %s. Rename directory %s-"
@@ -5341,80 +5467,80 @@ msgstr ""
"KONFLIKT (umbenennen/umbenennen): Benenne Verzeichnis um %s->%s in %s.\n"
"Benenne Verzeichnis um %s->%s in %s"
-#: merge-recursive.c:3089
+#: merge-recursive.c:3092
msgid "modify"
msgstr "ändern"
-#: merge-recursive.c:3089
+#: merge-recursive.c:3092
msgid "modified"
msgstr "geändert"
-#: merge-recursive.c:3128
+#: merge-recursive.c:3131
#, c-format
msgid "Skipped %s (merged same as existing)"
msgstr "%s ausgelassen (Ergebnis des Merges existiert bereits)"
-#: merge-recursive.c:3181
+#: merge-recursive.c:3184
#, c-format
msgid "Adding as %s instead"
msgstr "Füge stattdessen als %s hinzu"
-#: merge-recursive.c:3385
+#: merge-recursive.c:3388
#, c-format
msgid "Removing %s"
msgstr "Entferne %s"
-#: merge-recursive.c:3408
+#: merge-recursive.c:3411
msgid "file/directory"
msgstr "Datei/Verzeichnis"
-#: merge-recursive.c:3413
+#: merge-recursive.c:3416
msgid "directory/file"
msgstr "Verzeichnis/Datei"
-#: merge-recursive.c:3420
+#: merge-recursive.c:3423
#, c-format
msgid "CONFLICT (%s): There is a directory with name %s in %s. Adding %s as %s"
msgstr ""
"KONFLIKT (%s): Es existiert bereits ein Verzeichnis %s in %s. Füge %s als %s "
"hinzu."
-#: merge-recursive.c:3429
+#: merge-recursive.c:3432
#, c-format
msgid "Adding %s"
msgstr "Füge %s hinzu"
-#: merge-recursive.c:3438
+#: merge-recursive.c:3441
#, c-format
msgid "CONFLICT (add/add): Merge conflict in %s"
msgstr "KONFLIKT (hinzufügen/hinzufügen): Merge-Konflikt in %s"
-#: merge-recursive.c:3491
+#: merge-recursive.c:3494
#, c-format
msgid "merging of trees %s and %s failed"
msgstr "Zusammenführen der \"Tree\"-Objekte %s und %s fehlgeschlagen"
-#: merge-recursive.c:3585
+#: merge-recursive.c:3588
msgid "Merging:"
msgstr "Merge:"
-#: merge-recursive.c:3598
+#: merge-recursive.c:3601
#, c-format
msgid "found %u common ancestor:"
msgid_plural "found %u common ancestors:"
msgstr[0] "%u gemeinsamen Vorgänger-Commit gefunden"
msgstr[1] "%u gemeinsame Vorgänger-Commits gefunden"
-#: merge-recursive.c:3648
+#: merge-recursive.c:3651
msgid "merge returned no commit"
msgstr "Merge hat keinen Commit zurückgegeben"
-#: merge-recursive.c:3816
+#: merge-recursive.c:3823
#, c-format
msgid "Could not parse object '%s'"
msgstr "Konnte Objekt '%s' nicht parsen."
-#: merge-recursive.c:3834 builtin/merge.c:720 builtin/merge.c:906
+#: merge-recursive.c:3841 builtin/merge.c:720 builtin/merge.c:912
#: builtin/stash.c:489
msgid "Unable to write index."
msgstr "Konnte Index nicht schreiben."
@@ -5423,170 +5549,174 @@ msgstr "Konnte Index nicht schreiben."
msgid "failed to read the cache"
msgstr "Lesen des Zwischenspeichers fehlgeschlagen"
-#: merge.c:102 rerere.c:704 builtin/am.c:1988 builtin/am.c:2022
-#: builtin/checkout.c:598 builtin/checkout.c:853 builtin/clone.c:706
+#: merge.c:102 rerere.c:705 builtin/am.c:1989 builtin/am.c:2023
+#: builtin/checkout.c:603 builtin/checkout.c:865 builtin/clone.c:714
#: builtin/stash.c:269
msgid "unable to write new index file"
msgstr "Konnte neue Index-Datei nicht schreiben."
-#: midx.c:78
+#: midx.c:79
msgid "multi-pack-index OID fanout is of the wrong size"
-msgstr "multi-pack-index OID fanout hat die falsche Größe"
+msgstr "Multi-Pack-Index OID fanout hat die falsche Größe"
-#: midx.c:111
+#: midx.c:112
#, c-format
msgid "multi-pack-index file %s is too small"
-msgstr "multi-pack-index-Datei %s ist zu klein."
+msgstr "Multi-Pack-Index-Datei %s ist zu klein."
-#: midx.c:127
+#: midx.c:128
#, c-format
msgid "multi-pack-index signature 0x%08x does not match signature 0x%08x"
msgstr ""
-"multi-pack-index-Signatur 0x%08x stimmt nicht mit Signatur 0x%08x überein."
+"Multi-Pack-Index-Signatur 0x%08x stimmt nicht mit Signatur 0x%08x überein."
-#: midx.c:132
+#: midx.c:133
#, c-format
msgid "multi-pack-index version %d not recognized"
-msgstr "multi-pack-index-Version %d nicht erkannt."
+msgstr "Multi-Pack-Index-Version %d nicht erkannt."
-#: midx.c:137
+#: midx.c:138
#, c-format
msgid "multi-pack-index hash version %u does not match version %u"
-msgstr "multi-pack-index Hash-Version %u stimmt nicht mit Version %u überein"
+msgstr "Multi-Pack-Index Hash-Version %u stimmt nicht mit Version %u überein"
-#: midx.c:154
+#: midx.c:155
msgid "multi-pack-index missing required pack-name chunk"
-msgstr "multi-pack-index fehlt erforderlicher Pack-Namen Chunk"
+msgstr "Multi-Pack-Index fehlt erforderlicher Pack-Namen Chunk"
-#: midx.c:156
+#: midx.c:157
msgid "multi-pack-index missing required OID fanout chunk"
-msgstr "multi-pack-index fehlt erforderlicher OID fanout Chunk"
+msgstr "Multi-Pack-Index fehlt erforderlicher OID fanout Chunk"
-#: midx.c:158
+#: midx.c:159
msgid "multi-pack-index missing required OID lookup chunk"
-msgstr "multi-pack-index fehlt erforderlicher OID lookup Chunk"
+msgstr "Multi-Pack-Index fehlt erforderlicher OID lookup Chunk"
-#: midx.c:160
+#: midx.c:161
msgid "multi-pack-index missing required object offsets chunk"
-msgstr "multi-pack-index fehlt erforderlicher Objekt offset Chunk"
+msgstr "Multi-Pack-Index fehlt erforderlicher Objekt offset Chunk"
-#: midx.c:176
+#: midx.c:180
#, c-format
msgid "multi-pack-index pack names out of order: '%s' before '%s'"
-msgstr "Falsche Reihenfolge bei multi-pack-index Pack-Namen: '%s' vor '%s'"
+msgstr "Falsche Reihenfolge bei Multi-Pack-Index Pack-Namen: '%s' vor '%s'"
-#: midx.c:224
+#: midx.c:228
#, c-format
msgid "bad pack-int-id: %u (%u total packs)"
msgstr "Ungültige pack-int-id: %u (%u Pakete insgesamt)"
-#: midx.c:274
+#: midx.c:278
msgid "multi-pack-index stores a 64-bit offset, but off_t is too small"
msgstr ""
-"multi-pack-index speichert einen 64-Bit Offset, aber off_t ist zu klein"
+"Multi-Pack-Index speichert einen 64-Bit Offset, aber off_t ist zu klein"
-#: midx.c:505
+#: midx.c:509
#, c-format
msgid "failed to add packfile '%s'"
msgstr "Fehler beim Hinzufügen von Packdatei '%s'"
-#: midx.c:511
+#: midx.c:515
#, c-format
msgid "failed to open pack-index '%s'"
msgstr "Fehler beim Öffnen von pack-index '%s'"
-#: midx.c:579
+#: midx.c:583
#, c-format
msgid "failed to locate object %d in packfile"
msgstr "Fehler beim Lokalisieren von Objekt %d in Packdatei"
-#: midx.c:895
+#: midx.c:911
msgid "cannot store reverse index file"
msgstr "kann Reverse-Index-Datei nicht speichern"
-#: midx.c:993
+#: midx.c:1009
#, c-format
msgid "could not parse line: %s"
msgstr "Zeile konnte nicht geparst werden: %s"
-#: midx.c:995
+#: midx.c:1011
#, c-format
msgid "malformed line: %s"
msgstr "fehlerhafte Zeile: %s"
-#: midx.c:1162
+#: midx.c:1181
msgid "ignoring existing multi-pack-index; checksum mismatch"
msgstr ""
-"ignoriere existierenden multi-pack-index; Prüfsumme stimmt nicht überein"
+"ignoriere existierenden Multi-Pack-Index; Prüfsumme stimmt nicht überein"
-#: midx.c:1187
+#: midx.c:1206
msgid "could not load pack"
msgstr "Paket konnte nicht geladen werden"
-#: midx.c:1193
+#: midx.c:1212
#, c-format
msgid "could not open index for %s"
msgstr "konnte Index für %s nicht öffnen"
-#: midx.c:1204
+#: midx.c:1223
msgid "Adding packfiles to multi-pack-index"
-msgstr "Packdateien zum multi-pack-index hinzufügen"
+msgstr "Packdateien zum Multi-Pack-Index hinzufügen"
-#: midx.c:1247
+#: midx.c:1266
#, c-format
msgid "unknown preferred pack: '%s'"
msgstr "unbekanntes bevorzugtes Paket: '%s'"
-#: midx.c:1292
+#: midx.c:1311
#, c-format
msgid "cannot select preferred pack %s with no objects"
msgstr "bevorzugtes Paket %s ohne Objekte kann nicht ausgewählt werden"
-#: midx.c:1324
+#: midx.c:1343
#, c-format
msgid "did not see pack-file %s to drop"
msgstr "Pack-Datei %s zum Weglassen nicht gefunden"
-#: midx.c:1370
+#: midx.c:1389
#, c-format
msgid "preferred pack '%s' is expired"
msgstr "bevorzugtes Paket '%s' ist abgelaufen"
-#: midx.c:1383
+#: midx.c:1402
msgid "no pack files to index."
msgstr "keine Packdateien zum Indizieren."
-#: midx.c:1420
+#: midx.c:1409
+msgid "refusing to write multi-pack .bitmap without any objects"
+msgstr "Schreiben der Multi-Pack-Bitmap ohne Objekte abgelehnt"
+
+#: midx.c:1451
msgid "could not write multi-pack bitmap"
-msgstr "Multipack-Bitmap konnte nicht geschrieben werden"
+msgstr "Multi-Pack-Bitmap konnte nicht geschrieben werden"
-#: midx.c:1430
+#: midx.c:1461
msgid "could not write multi-pack-index"
msgstr "Multi-Pack-Index konnte nicht geschrieben werden"
-#: midx.c:1489 builtin/clean.c:37
+#: midx.c:1520 builtin/clean.c:37
#, c-format
msgid "failed to remove %s"
msgstr "Fehler beim Löschen von %s"
-#: midx.c:1522
+#: midx.c:1553
#, c-format
msgid "failed to clear multi-pack-index at %s"
-msgstr "Fehler beim Löschen des multi-pack-index bei %s"
+msgstr "Fehler beim Löschen des Multi-Pack-Index bei %s"
-#: midx.c:1585
+#: midx.c:1616
msgid "multi-pack-index file exists, but failed to parse"
-msgstr "multi-pack-index-Datei existiert, aber das Parsen schlug fehl"
+msgstr "Multi-Pack-Index-Datei existiert, aber das Parsen schlug fehl"
-#: midx.c:1593
+#: midx.c:1624
msgid "incorrect checksum"
msgstr "Prüfsumme nicht korrekt"
-#: midx.c:1596
+#: midx.c:1627
msgid "Looking for referenced packfiles"
msgstr "Suche nach referenzierten Pack-Dateien"
-#: midx.c:1611
+#: midx.c:1642
#, c-format
msgid ""
"oid fanout out of order: fanout[%d] = %<PRIx32> > %<PRIx32> = fanout[%d]"
@@ -5594,55 +5724,55 @@ msgstr ""
"Ungültige oid fanout Reihenfolge: fanout[%d] = %<PRIx32> > %<PRIx32> = "
"fanout[%d]"
-#: midx.c:1616
+#: midx.c:1647
msgid "the midx contains no oid"
msgstr "das midx enthält keine oid"
-#: midx.c:1625
+#: midx.c:1656
msgid "Verifying OID order in multi-pack-index"
-msgstr "Verifiziere OID-Reihenfolge im multi-pack-index"
+msgstr "Verifiziere OID-Reihenfolge im Multi-Pack-Index"
-#: midx.c:1634
+#: midx.c:1665
#, c-format
msgid "oid lookup out of order: oid[%d] = %s >= %s = oid[%d]"
msgstr "Ungültige oid lookup Reihenfolge: oid[%d] = %s >= %s = oid[%d]"
-#: midx.c:1654
+#: midx.c:1685
msgid "Sorting objects by packfile"
msgstr "Sortiere Objekte nach Pack-Datei"
-#: midx.c:1661
+#: midx.c:1692
msgid "Verifying object offsets"
msgstr "Überprüfe Objekt-Offsets"
-#: midx.c:1677
+#: midx.c:1708
#, c-format
msgid "failed to load pack entry for oid[%d] = %s"
msgstr "Fehler beim Laden des Pack-Eintrags für oid[%d] = %s"
-#: midx.c:1683
+#: midx.c:1714
#, c-format
msgid "failed to load pack-index for packfile %s"
msgstr "Fehler beim Laden des Pack-Index für Packdatei %s"
-#: midx.c:1692
+#: midx.c:1723
#, c-format
msgid "incorrect object offset for oid[%d] = %s: %<PRIx64> != %<PRIx64>"
msgstr "Falscher Objekt-Offset für oid[%d] = %s: %<PRIx64> != %<PRIx64>"
-#: midx.c:1719
+#: midx.c:1750
msgid "Counting referenced objects"
msgstr "Referenzierte Objekte zählen"
-#: midx.c:1729
+#: midx.c:1760
msgid "Finding and deleting unreferenced packfiles"
msgstr "Suchen und Löschen von unreferenzierten Pack-Dateien"
-#: midx.c:1921
+#: midx.c:1952
msgid "could not start pack-objects"
msgstr "Konnte 'pack-objects' nicht ausführen"
-#: midx.c:1941
+#: midx.c:1972
msgid "could not finish pack-objects"
msgstr "Konnte 'pack-objects' nicht beenden"
@@ -5661,7 +5791,7 @@ msgstr "Kann lazy_name Thread nicht erzeugen: %s"
msgid "unable to join lazy_name thread: %s"
msgstr "Kann lazy_name Thread nicht beitreten: %s"
-#: notes-merge.c:277
+#: notes-merge.c:276
#, c-format
msgid ""
"You have not concluded your previous notes merge (%s exists).\n"
@@ -5676,7 +5806,7 @@ msgstr ""
"Merge\n"
"von Notizen beginnen."
-#: notes-merge.c:284
+#: notes-merge.c:283
#, c-format
msgid "You have not concluded your notes merge (%s exists)."
msgstr "Sie haben Ihren Merge von Notizen nicht abgeschlossen (%s existiert)."
@@ -5706,279 +5836,350 @@ msgstr ""
msgid "Bad %s value: '%s'"
msgstr "Ungültiger %s Wert: '%s'"
-#: object-file.c:456
+#: object-file.c:457
#, c-format
msgid "object directory %s does not exist; check .git/objects/info/alternates"
msgstr ""
"Objektverzeichnis %s existiert nicht; prüfe .git/objects/info/alternates"
-#: object-file.c:514
+#: object-file.c:515
#, c-format
msgid "unable to normalize alternate object path: %s"
msgstr "Konnte alternativen Objektpfad '%s' nicht normalisieren."
-#: object-file.c:588
+#: object-file.c:589
#, c-format
msgid "%s: ignoring alternate object stores, nesting too deep"
msgstr "%s: ignoriere alternative Objektspeicher - Verschachtelung zu tief"
-#: object-file.c:595
+#: object-file.c:596
#, c-format
msgid "unable to normalize object directory: %s"
msgstr "Konnte Objektverzeichnis '%s' nicht normalisieren."
-#: object-file.c:638
+#: object-file.c:639
msgid "unable to fdopen alternates lockfile"
msgstr "Konnte fdopen nicht auf Lock-Datei für \"alternates\" aufrufen."
-#: object-file.c:656
+#: object-file.c:657
msgid "unable to read alternates file"
msgstr "Konnte \"alternates\"-Datei nicht lesen."
-#: object-file.c:663
+#: object-file.c:664
msgid "unable to move new alternates file into place"
msgstr "Konnte neue \"alternates\"-Datei nicht übernehmen."
-#: object-file.c:741
+#: object-file.c:742
#, c-format
msgid "path '%s' does not exist"
msgstr "Pfad '%s' existiert nicht"
-#: object-file.c:762
+#: object-file.c:763
#, c-format
msgid "reference repository '%s' as a linked checkout is not supported yet."
msgstr ""
"Referenziertes Repository '%s' wird noch nicht als verknüpftes\n"
"Arbeitsverzeichnis unterstützt."
-#: object-file.c:768
+#: object-file.c:769
#, c-format
msgid "reference repository '%s' is not a local repository."
msgstr "Referenziertes Repository '%s' ist kein lokales Repository."
-#: object-file.c:774
+#: object-file.c:775
#, c-format
msgid "reference repository '%s' is shallow"
msgstr ""
"Referenziertes Repository '%s' hat eine unvollständige Historie (shallow)."
-#: object-file.c:782
+#: object-file.c:783
#, c-format
msgid "reference repository '%s' is grafted"
msgstr ""
"Referenziertes Repository '%s' ist mit künstlichen Vorgängern (\"grafts\") "
"eingehängt."
-#: object-file.c:813
+#: object-file.c:814
#, c-format
msgid "could not find object directory matching %s"
msgstr "konnte Objekt-Verzeichnis nicht finden, dass '%s' entsprechen soll"
-#: object-file.c:863
+#: object-file.c:864
#, c-format
msgid "invalid line while parsing alternate refs: %s"
msgstr "Ungültige Zeile beim Parsen alternativer Referenzen: %s"
-#: object-file.c:1013
+#: object-file.c:1014
#, c-format
msgid "attempting to mmap %<PRIuMAX> over limit %<PRIuMAX>"
msgstr "Versuche mmap %<PRIuMAX> über Limit %<PRIuMAX>."
-#: object-file.c:1048
+#: object-file.c:1049
#, c-format
msgid "mmap failed%s"
msgstr "mmap fehlgeschlagen%s"
-#: object-file.c:1214
+#: object-file.c:1230
#, c-format
msgid "object file %s is empty"
msgstr "Objektdatei %s ist leer."
-#: object-file.c:1333 object-file.c:2542
+#: object-file.c:1349 object-file.c:2588
#, c-format
msgid "corrupt loose object '%s'"
msgstr "Fehlerhaftes loses Objekt '%s'."
-#: object-file.c:1335 object-file.c:2546
+#: object-file.c:1351 object-file.c:2592
#, c-format
msgid "garbage at end of loose object '%s'"
msgstr "Nutzlose Daten am Ende von losem Objekt '%s'."
-#: object-file.c:1457
+#: object-file.c:1473
#, c-format
msgid "unable to parse %s header"
msgstr "Konnte %s Kopfbereich nicht parsen."
-#: object-file.c:1459
+#: object-file.c:1475
msgid "invalid object type"
msgstr "ungültiger Objekt-Typ"
-#: object-file.c:1470
+#: object-file.c:1486
#, c-format
msgid "unable to unpack %s header"
msgstr "Konnte %s Kopfbereich nicht entpacken."
-#: object-file.c:1474
+#: object-file.c:1490
#, c-format
msgid "header for %s too long, exceeds %d bytes"
msgstr "Header für %s zu lang, überschreitet %d Bytes"
-#: object-file.c:1704
+#: object-file.c:1720
#, c-format
msgid "failed to read object %s"
msgstr "Konnte Objekt %s nicht lesen."
-#: object-file.c:1708
+#: object-file.c:1724
#, c-format
msgid "replacement %s not found for %s"
msgstr "Ersetzung %s für %s nicht gefunden."
-#: object-file.c:1712
+#: object-file.c:1728
#, c-format
msgid "loose object %s (stored in %s) is corrupt"
msgstr "Loses Objekt %s (gespeichert in %s) ist beschädigt."
-#: object-file.c:1716
+#: object-file.c:1732
#, c-format
msgid "packed object %s (stored in %s) is corrupt"
msgstr "Gepacktes Objekt %s (gespeichert in %s) ist beschädigt."
-#: object-file.c:1821
+#: object-file.c:1855
#, c-format
msgid "unable to write file %s"
msgstr "Konnte Datei %s nicht schreiben."
-#: object-file.c:1828
+#: object-file.c:1862
#, c-format
msgid "unable to set permission to '%s'"
msgstr "Konnte Zugriffsberechtigung auf '%s' nicht setzen."
-#: object-file.c:1835
+#: object-file.c:1869
msgid "file write error"
msgstr "Fehler beim Schreiben einer Datei."
-#: object-file.c:1858
+#: object-file.c:1904
msgid "error when closing loose object file"
msgstr "Fehler beim Schließen der Datei für lose Objekte."
-#: object-file.c:1925
+#: object-file.c:1971
#, c-format
msgid "insufficient permission for adding an object to repository database %s"
msgstr ""
"Unzureichende Berechtigung zum Hinzufügen eines Objektes zur Repository-"
"Datenbank %s"
-#: object-file.c:1927
+#: object-file.c:1973
msgid "unable to create temporary file"
msgstr "Konnte temporäre Datei nicht erstellen."
-#: object-file.c:1951
+#: object-file.c:1997
msgid "unable to write loose object file"
msgstr "Fehler beim Schreiben der Datei für lose Objekte."
-#: object-file.c:1957
+#: object-file.c:2003
#, c-format
msgid "unable to deflate new object %s (%d)"
msgstr "Konnte neues Objekt %s (%d) nicht komprimieren."
-#: object-file.c:1961
+#: object-file.c:2007
#, c-format
msgid "deflateEnd on object %s failed (%d)"
msgstr "deflateEnd auf Objekt %s fehlgeschlagen (%d)"
-#: object-file.c:1965
+#: object-file.c:2011
#, c-format
msgid "confused by unstable object source data for %s"
msgstr "Fehler wegen instabilen Objektquelldaten für %s"
-#: object-file.c:1976 builtin/pack-objects.c:1243
+#: object-file.c:2022 builtin/pack-objects.c:1251
#, c-format
msgid "failed utime() on %s"
msgstr "Fehler beim Aufruf von utime() auf '%s'."
-#: object-file.c:2054
+#: object-file.c:2100
#, c-format
msgid "cannot read object for %s"
msgstr "Kann Objekt für %s nicht lesen."
-#: object-file.c:2105
+#: object-file.c:2151
msgid "corrupt commit"
msgstr "fehlerhafter Commit"
-#: object-file.c:2113
+#: object-file.c:2159
msgid "corrupt tag"
msgstr "fehlerhaftes Tag"
-#: object-file.c:2213
+#: object-file.c:2259
#, c-format
msgid "read error while indexing %s"
msgstr "Lesefehler beim Indizieren von '%s'."
-#: object-file.c:2216
+#: object-file.c:2262
#, c-format
msgid "short read while indexing %s"
msgstr "read() zu kurz beim Indizieren von '%s'."
-#: object-file.c:2289 object-file.c:2299
+#: object-file.c:2335 object-file.c:2345
#, c-format
msgid "%s: failed to insert into database"
msgstr "%s: Fehler beim Einfügen in die Datenbank"
-#: object-file.c:2305
+#: object-file.c:2351
#, c-format
msgid "%s: unsupported file type"
msgstr "%s: nicht unterstützte Dateiart"
-#: object-file.c:2329 builtin/fetch.c:1453
+#: object-file.c:2375 builtin/fetch.c:1494
#, c-format
msgid "%s is not a valid object"
msgstr "%s ist kein gültiges Objekt"
-#: object-file.c:2331
+#: object-file.c:2377
#, c-format
msgid "%s is not a valid '%s' object"
msgstr "%s ist kein gültiges '%s' Objekt"
-#: object-file.c:2358
+#: object-file.c:2404
#, c-format
msgid "unable to open %s"
msgstr "kann %s nicht öffnen"
-#: object-file.c:2553
+#: object-file.c:2599
#, c-format
msgid "hash mismatch for %s (expected %s)"
msgstr "Hash für %s stimmt nicht überein (%s erwartet)."
-#: object-file.c:2576
+#: object-file.c:2622
#, c-format
msgid "unable to mmap %s"
msgstr "Konnte mmap nicht auf %s ausführen."
-#: object-file.c:2582
+#: object-file.c:2628
#, c-format
msgid "unable to unpack header of %s"
msgstr "Konnte Kopfbereich von %s nicht entpacken."
-#: object-file.c:2587
+#: object-file.c:2633
#, c-format
msgid "unable to parse header of %s"
msgstr "Konnte Kopfbereich von %s nicht parsen."
-#: object-file.c:2598
+#: object-file.c:2644
#, c-format
msgid "unable to unpack contents of %s"
msgstr "Konnte Inhalt von %s nicht entpacken."
-#: object-name.c:480
+#. TRANSLATORS: This is a line of ambiguous object
+#. output shown when we cannot look up or parse the
+#. object in question. E.g. "deadbeef [bad object]".
+#.
+#: object-name.c:382
+#, c-format
+msgid "%s [bad object]"
+msgstr "%s [ungültiges Objekt]"
+
+#. TRANSLATORS: This is a line of ambiguous commit
+#. object output. E.g.:
+#. *
+#. "deadbeef commit 2021-01-01 - Some Commit Message"
+#.
+#: object-name.c:407
+#, c-format
+msgid "%s commit %s - %s"
+msgstr "%s Commit %s - %s"
+
+#. TRANSLATORS: This is a line of ambiguous
+#. tag object output. E.g.:
+#. *
+#. "deadbeef tag 2022-01-01 - Some Tag Message"
+#. *
+#. The second argument is the YYYY-MM-DD found
+#. in the tag.
+#. *
+#. The third argument is the "tag" string
+#. from object.c.
+#.
+#: object-name.c:428
+#, c-format
+msgid "%s tag %s - %s"
+msgstr "%s Tag %s - %s"
+
+#. TRANSLATORS: This is a line of ambiguous
+#. tag object output where we couldn't parse
+#. the tag itself. E.g.:
+#. *
+#. "deadbeef [bad tag, could not parse it]"
+#.
+#: object-name.c:439
+#, c-format
+msgid "%s [bad tag, could not parse it]"
+msgstr "%s [ungültiger Tag, konnte es nicht parsen]"
+
+#. TRANSLATORS: This is a line of ambiguous <type>
+#. object output. E.g. "deadbeef tree".
+#.
+#: object-name.c:447
+#, c-format
+msgid "%s tree"
+msgstr "%s Tree"
+
+#. TRANSLATORS: This is a line of ambiguous <type>
+#. object output. E.g. "deadbeef blob".
+#.
+#: object-name.c:453
+#, c-format
+msgid "%s blob"
+msgstr "%s Blob"
+
+#: object-name.c:569
#, c-format
msgid "short object ID %s is ambiguous"
msgstr "kurze Objekt-ID %s ist mehrdeutig"
-#: object-name.c:491
-msgid "The candidates are:"
-msgstr "Die Kandidaten sind:"
+#. TRANSLATORS: The argument is the list of ambiguous
+#. objects composed in show_ambiguous_object(). See
+#. its "TRANSLATORS" comments for details.
+#.
+#: object-name.c:591
+#, c-format
+msgid ""
+"The candidates are:\n"
+"%s"
+msgstr ""
+"Die Kandidaten sind:\n"
+"%s"
-#: object-name.c:790
+#: object-name.c:888
msgid ""
"Git normally never creates a ref that ends with 40 hex characters\n"
"because it will be ignored when you just specify 40-hex. These refs\n"
@@ -6003,22 +6204,22 @@ msgstr ""
"indem Sie \"git config advice.objectNameWarning false\"\n"
"ausführen."
-#: object-name.c:910
+#: object-name.c:1008
#, c-format
msgid "log for '%.*s' only goes back to %s"
msgstr "Log für '%.*s' geht nur bis %s zurück"
-#: object-name.c:918
+#: object-name.c:1016
#, c-format
msgid "log for '%.*s' only has %d entries"
msgstr "Log für '%.*s' hat nur %d Einträge"
-#: object-name.c:1696
+#: object-name.c:1794
#, c-format
msgid "path '%s' exists on disk, but not in '%.*s'"
msgstr "Pfad '%s' befindet sich im Dateisystem, aber nicht in '%.*s'"
-#: object-name.c:1702
+#: object-name.c:1800
#, c-format
msgid ""
"path '%s' exists, but not '%s'\n"
@@ -6027,12 +6228,12 @@ msgstr ""
"Pfad '%s' existiert, aber nicht '%s'\n"
"Hinweis: Meinten Sie '%.*s:%s' auch bekannt als '%.*s:./%s'?"
-#: object-name.c:1711
+#: object-name.c:1809
#, c-format
msgid "path '%s' does not exist in '%.*s'"
msgstr "Pfad '%s' existiert nicht in '%.*s'"
-#: object-name.c:1739
+#: object-name.c:1837
#, c-format
msgid ""
"path '%s' is in the index, but not at stage %d\n"
@@ -6041,7 +6242,7 @@ msgstr ""
"Pfad '%s' ist im Index, aber nicht in Stufe %d\n"
"Hinweis: Meinten Sie ':%d:%s'?"
-#: object-name.c:1755
+#: object-name.c:1853
#, c-format
msgid ""
"path '%s' is in the index, but not '%s'\n"
@@ -6050,23 +6251,28 @@ msgstr ""
"Pfad '%s' ist im Index, aber nicht '%s'\n"
"Hinweis: Meinten Sie ':%d:%s' auch bekannt als ':%d:./%s'?"
-#: object-name.c:1763
+#: object-name.c:1861
#, c-format
msgid "path '%s' exists on disk, but not in the index"
msgstr "Pfad '%s' existiert im Dateisystem, aber nicht im Index"
-#: object-name.c:1765
+#: object-name.c:1863
#, c-format
msgid "path '%s' does not exist (neither on disk nor in the index)"
msgstr "Pfad '%s' existiert nicht (weder im Dateisystem noch im Index)"
-#: object-name.c:1778
+#: object-name.c:1876
msgid "relative path syntax can't be used outside working tree"
msgstr ""
"Die Syntax für relative Pfade kann nicht außerhalb des Arbeitsverzeichnisses "
"benutzt werden."
-#: object-name.c:1916
+#: object-name.c:1901
+#, c-format
+msgid "<object>:<path> required, only <object> '%s' given"
+msgstr "<Objekt>:<Pfad> benötigt, nur <Objekt> '%s' angegeben"
+
+#: object-name.c:2014
#, c-format
msgid "invalid object name '%.*s'."
msgstr "ungültiger Objektname '%.*s'."
@@ -6091,30 +6297,30 @@ msgstr "Objekt %s hat eine unbekannte Typ-Identifikation %d"
msgid "unable to parse object: %s"
msgstr "Konnte Objekt '%s' nicht parsen."
-#: object.c:283 object.c:295
+#: object.c:283 object.c:294
#, c-format
msgid "hash mismatch %s"
msgstr "Hash stimmt nicht mit %s überein."
#: pack-bitmap.c:353
msgid "multi-pack bitmap is missing required reverse index"
-msgstr "Multipack-Bitmap fehlt erforderlicher Reverse-Index"
+msgstr "Multi-Pack-Bitmap fehlt erforderlicher Reverse-Index"
-#: pack-bitmap.c:429
+#: pack-bitmap.c:433
msgid "load_reverse_index: could not open pack"
msgstr "load_reverse_index: Paket konnte nicht geöffnet werden"
-#: pack-bitmap.c:1069 pack-bitmap.c:1075 builtin/pack-objects.c:2424
+#: pack-bitmap.c:1072 pack-bitmap.c:1078 builtin/pack-objects.c:2432
#, c-format
msgid "unable to get size of %s"
msgstr "Konnte Größe von %s nicht bestimmen."
-#: pack-bitmap.c:1935
+#: pack-bitmap.c:1937
#, c-format
msgid "could not find %s in pack %s at offset %<PRIuMAX>"
msgstr "konnte %s nicht in Paket %s bei Offset %<PRIuMAX> finden"
-#: pack-bitmap.c:1971 builtin/rev-list.c:92
+#: pack-bitmap.c:1973 builtin/rev-list.c:91
#, c-format
msgid "unable to get disk usage of %s"
msgstr "konnte Festplattennutzung von %s nicht bekommen"
@@ -6159,7 +6365,7 @@ msgstr "konnte nicht lesen: %s"
msgid "failed to make %s readable"
msgstr "Fehler beim lesbar machen von %s"
-#: pack-write.c:520
+#: pack-write.c:521
#, c-format
msgid "could not write '%s' promisor file"
msgstr "konnte Promisor-Datei '%s' nicht schreiben"
@@ -6503,20 +6709,20 @@ msgstr "object-info: erwartete Flush nach Argumenten"
msgid "Removing duplicate objects"
msgstr "Lösche doppelte Objekte"
-#: range-diff.c:67
+#: range-diff.c:68
msgid "could not start `log`"
msgstr "Konnte `log` nicht starten."
-#: range-diff.c:69
+#: range-diff.c:70
msgid "could not read `log` output"
msgstr "Konnte Ausgabe von `log` nicht lesen."
-#: range-diff.c:97 sequencer.c:5602
+#: range-diff.c:98 sequencer.c:5575
#, c-format
msgid "could not parse commit '%s'"
msgstr "Konnte Commit '%s' nicht parsen."
-#: range-diff.c:111
+#: range-diff.c:109
#, c-format
msgid ""
"could not parse first line of `log` output: did not start with 'commit ': "
@@ -6525,67 +6731,67 @@ msgstr ""
"konnte erste Zeile der Ausgabe von `log` nicht parsen: fängt nicht mit "
"'commit ' an: '%s'"
-#: range-diff.c:137
+#: range-diff.c:132
#, c-format
msgid "could not parse git header '%.*s'"
msgstr "Konnte Git-Header '%.*s' nicht parsen."
-#: range-diff.c:304
+#: range-diff.c:300
msgid "failed to generate diff"
msgstr "Fehler beim Generieren des Diffs."
-#: range-diff.c:562 range-diff.c:564
+#: range-diff.c:558 range-diff.c:560
#, c-format
msgid "could not parse log for '%s'"
msgstr "Konnte Log für '%s' nicht parsen."
-#: read-cache.c:723
+#: read-cache.c:737
#, c-format
msgid "will not add file alias '%s' ('%s' already exists in index)"
msgstr ""
"Dateialias '%s' wird nicht hinzugefügt ('%s' existiert bereits im Index)."
-#: read-cache.c:739
+#: read-cache.c:753
msgid "cannot create an empty blob in the object database"
msgstr "Kann keinen leeren Blob in die Objektdatenbank schreiben."
-#: read-cache.c:761
+#: read-cache.c:775
#, c-format
msgid "%s: can only add regular files, symbolic links or git-directories"
msgstr ""
"%s: Kann nur reguläre Dateien, symbolische Links oder Git-Verzeichnisse "
"hinzufügen."
-#: read-cache.c:766 builtin/submodule--helper.c:3242
+#: read-cache.c:780 builtin/submodule--helper.c:3359
#, c-format
msgid "'%s' does not have a commit checked out"
msgstr "'%s' hat keinen Commit ausgecheckt"
-#: read-cache.c:818
+#: read-cache.c:832
#, c-format
msgid "unable to index file '%s'"
msgstr "Konnte Datei '%s' nicht indizieren."
-#: read-cache.c:837
+#: read-cache.c:851
#, c-format
msgid "unable to add '%s' to index"
msgstr "Konnte '%s' nicht dem Index hinzufügen."
-#: read-cache.c:848
+#: read-cache.c:862
#, c-format
msgid "unable to stat '%s'"
msgstr "konnte '%s' nicht lesen"
-#: read-cache.c:1386
+#: read-cache.c:1404
#, c-format
msgid "'%s' appears as both a file and as a directory"
msgstr "'%s' scheint eine Datei und ein Verzeichnis zu sein"
-#: read-cache.c:1601
+#: read-cache.c:1619
msgid "Refresh index"
msgstr "Aktualisiere Index"
-#: read-cache.c:1733
+#: read-cache.c:1751
#, c-format
msgid ""
"index.version set, but the value is invalid.\n"
@@ -6594,7 +6800,7 @@ msgstr ""
"index.version gesetzt, aber Wert ungültig.\n"
"Verwende Version %i"
-#: read-cache.c:1743
+#: read-cache.c:1761
#, c-format
msgid ""
"GIT_INDEX_VERSION set, but the value is invalid.\n"
@@ -6603,143 +6809,147 @@ msgstr ""
"GIT_INDEX_VERSION gesetzt, aber Wert ungültig.\n"
"Verwende Version %i"
-#: read-cache.c:1799
+#: read-cache.c:1817
#, c-format
msgid "bad signature 0x%08x"
msgstr "Ungültige Signatur 0x%08x"
-#: read-cache.c:1802
+#: read-cache.c:1820
#, c-format
msgid "bad index version %d"
msgstr "Ungültige Index-Version %d"
-#: read-cache.c:1811
+#: read-cache.c:1829
msgid "bad index file sha1 signature"
msgstr "Ungültige SHA1-Signatur der Index-Datei."
-#: read-cache.c:1845
+#: read-cache.c:1863
#, c-format
msgid "index uses %.4s extension, which we do not understand"
msgstr "Index verwendet Erweiterung %.4s, welche wir nicht unterstützen."
-#: read-cache.c:1847
+#: read-cache.c:1865
#, c-format
msgid "ignoring %.4s extension"
msgstr "Ignoriere Erweiterung %.4s"
-#: read-cache.c:1884
+#: read-cache.c:1902
#, c-format
msgid "unknown index entry format 0x%08x"
msgstr "Unbekanntes Format für Index-Eintrag 0x%08x"
-#: read-cache.c:1900
+#: read-cache.c:1918
#, c-format
msgid "malformed name field in the index, near path '%s'"
msgstr "Ungültiges Namensfeld im Index, in der Nähe von Pfad '%s'."
-#: read-cache.c:1957
+#: read-cache.c:1975
msgid "unordered stage entries in index"
msgstr "Ungeordnete Stage-Einträge im Index."
-#: read-cache.c:1960
+#: read-cache.c:1978
#, c-format
msgid "multiple stage entries for merged file '%s'"
msgstr "Mehrere Stage-Einträge für zusammengeführte Datei '%s'."
-#: read-cache.c:1963
+#: read-cache.c:1981
#, c-format
msgid "unordered stage entries for '%s'"
msgstr "Ungeordnete Stage-Einträge für '%s'."
-#: read-cache.c:2078 read-cache.c:2384 rerere.c:549 rerere.c:583 rerere.c:1095
-#: submodule.c:1662 builtin/add.c:600 builtin/check-ignore.c:183
-#: builtin/checkout.c:527 builtin/checkout.c:719 builtin/clean.c:1013
-#: builtin/commit.c:378 builtin/diff-tree.c:122 builtin/grep.c:519
-#: builtin/mv.c:148 builtin/reset.c:499 builtin/rm.c:293
-#: builtin/submodule--helper.c:327 builtin/submodule--helper.c:3202
+#: read-cache.c:2096 read-cache.c:2402 rerere.c:549 rerere.c:583 rerere.c:1096
+#: submodule.c:1831 builtin/add.c:586 builtin/check-ignore.c:183
+#: builtin/checkout.c:532 builtin/checkout.c:724 builtin/clean.c:1016
+#: builtin/commit.c:379 builtin/diff-tree.c:122 builtin/grep.c:521
+#: builtin/mv.c:148 builtin/reset.c:506 builtin/rm.c:293
+#: builtin/submodule--helper.c:335 builtin/submodule--helper.c:3319
msgid "index file corrupt"
msgstr "Index-Datei beschädigt"
-#: read-cache.c:2222
+#: read-cache.c:2240
#, c-format
msgid "unable to create load_cache_entries thread: %s"
msgstr "Kann Thread für load_cache_entries nicht erzeugen: %s"
-#: read-cache.c:2235
+#: read-cache.c:2253
#, c-format
msgid "unable to join load_cache_entries thread: %s"
msgstr "Kann Thread für load_cache_entries nicht erzeugen: %s"
-#: read-cache.c:2268
+#: read-cache.c:2286
#, c-format
msgid "%s: index file open failed"
msgstr "%s: Öffnen der Index-Datei fehlgeschlagen."
-#: read-cache.c:2272
+#: read-cache.c:2290
#, c-format
msgid "%s: cannot stat the open index"
msgstr "%s: Kann geöffneten Index nicht lesen."
-#: read-cache.c:2276
+#: read-cache.c:2294
#, c-format
msgid "%s: index file smaller than expected"
msgstr "%s: Index-Datei ist kleiner als erwartet."
-#: read-cache.c:2280
+#: read-cache.c:2298
#, c-format
msgid "%s: unable to map index file%s"
msgstr "%s: Konnte Index-Datei nicht mappen%s"
-#: read-cache.c:2323
+#: read-cache.c:2341
#, c-format
msgid "unable to create load_index_extensions thread: %s"
msgstr "Kann Thread für load_index_extensions nicht erzeugen: %s"
-#: read-cache.c:2350
+#: read-cache.c:2368
#, c-format
msgid "unable to join load_index_extensions thread: %s"
msgstr "Kann Thread für load_index_extensions nicht beitreten: %s"
-#: read-cache.c:2396
+#: read-cache.c:2414
#, c-format
msgid "could not freshen shared index '%s'"
msgstr "Konnte geteilten Index '%s' nicht aktualisieren."
-#: read-cache.c:2455
+#: read-cache.c:2473
#, c-format
msgid "broken index, expect %s in %s, got %s"
msgstr "Fehlerhafter Index. Erwartete %s in %s, erhielt %s."
-#: read-cache.c:3086 strbuf.c:1191 wrapper.c:641 builtin/merge.c:1150
+#: read-cache.c:3032
+msgid "cannot write split index for a sparse index"
+msgstr "kann aufgeteilten Index nicht für ein Sparse-Index schreiben"
+
+#: read-cache.c:3114 strbuf.c:1192 wrapper.c:717 builtin/merge.c:1156
#, c-format
msgid "could not close '%s'"
msgstr "Konnte '%s' nicht schließen."
-#: read-cache.c:3129
+#: read-cache.c:3157
msgid "failed to convert to a sparse-index"
msgstr "Konvertierung zu einem Sparse-Index fehlgeschlagen"
-#: read-cache.c:3200
+#: read-cache.c:3228
#, c-format
msgid "could not stat '%s'"
msgstr "Konnte '%s' nicht lesen."
-#: read-cache.c:3213
+#: read-cache.c:3241
#, c-format
msgid "unable to open git dir: %s"
msgstr "konnte Git-Verzeichnis nicht öffnen: %s"
-#: read-cache.c:3225
+#: read-cache.c:3253
#, c-format
msgid "unable to unlink: %s"
msgstr "Konnte '%s' nicht entfernen."
-#: read-cache.c:3254
+#: read-cache.c:3282
#, c-format
msgid "cannot fix permission bits on '%s'"
msgstr "Konnte Zugriffsberechtigung auf '%s' nicht setzen."
-#: read-cache.c:3411
+#: read-cache.c:3439
#, c-format
msgid "%s: cannot drop to stage #0"
msgstr "%s: Kann nicht auf Stufe #0 wechseln."
@@ -6861,9 +7071,9 @@ msgstr ""
"Wenn Sie jedoch alles löschen, wird der Rebase abgebrochen.\n"
"\n"
-#: rebase-interactive.c:113 rerere.c:469 rerere.c:676 sequencer.c:3883
-#: sequencer.c:3909 sequencer.c:5708 builtin/fsck.c:328 builtin/gc.c:1791
-#: builtin/rebase.c:190
+#: rebase-interactive.c:113 rerere.c:469 rerere.c:677 sequencer.c:3879
+#: sequencer.c:3905 sequencer.c:5681 builtin/fsck.c:328 builtin/gc.c:1791
+#: builtin/rebase.c:191
#, c-format
msgid "could not write '%s'"
msgstr "Konnte '%s' nicht schreiben."
@@ -6904,7 +7114,7 @@ msgstr ""
msgid "%s: 'preserve' superseded by 'merges'"
msgstr "%s: 'preserve' wurde durch 'merges' ersetzt"
-#: ref-filter.c:42 wt-status.c:2048
+#: ref-filter.c:42 wt-status.c:2057
msgid "gone"
msgstr "entfernt"
@@ -7071,81 +7281,91 @@ msgstr "dieser Befehl lehnt Atom ab %%(%.*s)"
msgid "--format=%.*s cannot be used with --python, --shell, --tcl"
msgstr "--format=%.*s kann nicht mit --python, --shell, --tcl verwendet werden"
-#: ref-filter.c:1706
+#: ref-filter.c:1707
#, c-format
msgid "(no branch, rebasing %s)"
msgstr "(kein Branch, Rebase von %s)"
-#: ref-filter.c:1709
+#: ref-filter.c:1710
#, c-format
msgid "(no branch, rebasing detached HEAD %s)"
msgstr "(kein Branch, Rebase von losgelöstem HEAD %s)"
-#: ref-filter.c:1712
+#: ref-filter.c:1713
#, c-format
msgid "(no branch, bisect started on %s)"
msgstr "(kein Branch, binäre Suche begonnen bei %s)"
-#: ref-filter.c:1716
+#: ref-filter.c:1717
#, c-format
msgid "(HEAD detached at %s)"
msgstr "(HEAD losgelöst bei %s)"
-#: ref-filter.c:1719
+#: ref-filter.c:1720
#, c-format
msgid "(HEAD detached from %s)"
msgstr "(HEAD losgelöst von %s)"
-#: ref-filter.c:1722
+#: ref-filter.c:1723
msgid "(no branch)"
msgstr "(kein Branch)"
-#: ref-filter.c:1754 ref-filter.c:1972
+#: ref-filter.c:1755 ref-filter.c:1973
#, c-format
msgid "missing object %s for %s"
msgstr "Objekt %s fehlt für %s"
-#: ref-filter.c:1764
+#: ref-filter.c:1765
#, c-format
msgid "parse_object_buffer failed on %s for %s"
msgstr "parse_object_buffer bei %s für %s fehlgeschlagen"
-#: ref-filter.c:2155
+#: ref-filter.c:2156
#, c-format
msgid "malformed object at '%s'"
msgstr "fehlerhaftes Objekt bei '%s'"
-#: ref-filter.c:2245
+#: ref-filter.c:2246
#, c-format
msgid "ignoring ref with broken name %s"
msgstr "Ignoriere Referenz mit fehlerhaftem Namen %s"
-#: ref-filter.c:2250 refs.c:676
+#: ref-filter.c:2251 refs.c:672
#, c-format
msgid "ignoring broken ref %s"
msgstr "Ignoriere fehlerhafte Referenz %s"
-#: ref-filter.c:2629
+#: ref-filter.c:2630
#, c-format
msgid "format: %%(end) atom missing"
msgstr "Format: %%(end) Atom fehlt"
-#: ref-filter.c:2740
+#: ref-filter.c:2741
#, c-format
msgid "malformed object name %s"
msgstr "missgebildeter Objektname %s"
-#: ref-filter.c:2745
+#: ref-filter.c:2746
#, c-format
msgid "option `%s' must point to a commit"
msgstr "die Option `%s' muss auf einen Commit zeigen"
-#: refs.c:261
+#: reflog.c:407
+#, c-format
+msgid "not a reflog: %s"
+msgstr "Kein Reflog: %s"
+
+#: reflog.c:410
+#, c-format
+msgid "no reflog for '%s'"
+msgstr "Kein Reflog für '%s'."
+
+#: refs.c:262
#, c-format
msgid "%s does not point to a valid object!"
msgstr "%s zeigt auf kein gültiges Objekt!"
-#: refs.c:563
+#: refs.c:561
#, c-format
msgid ""
"Using '%s' as the name for the initial branch. This default branch name\n"
@@ -7172,83 +7392,83 @@ msgstr ""
"\n"
"\tgit branch -m <Name>\n"
-#: refs.c:585
+#: refs.c:583
#, c-format
msgid "could not retrieve `%s`"
msgstr "konnte `%s` nicht abrufen"
-#: refs.c:595
+#: refs.c:593
#, c-format
msgid "invalid branch name: %s = %s"
msgstr "ungültiger Branchname: %s = %s"
-#: refs.c:674
+#: refs.c:670
#, c-format
msgid "ignoring dangling symref %s"
msgstr "Ignoriere unreferenzierte symbolische Referenz %s"
-#: refs.c:925
+#: refs.c:919
#, 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:932
+#: refs.c:926
#, c-format
msgid "log for ref %s unexpectedly ended on %s"
msgstr "Log für Referenz %s unerwartet bei %s beendet."
-#: refs.c:997
+#: refs.c:991
#, c-format
msgid "log for %s is empty"
msgstr "Log für %s ist leer."
-#: refs.c:1090
+#: refs.c:1086
#, c-format
msgid "refusing to update ref with bad name '%s'"
msgstr "verweigere Aktualisierung einer Referenz mit fehlerhaftem Namen '%s'"
-#: refs.c:1168
+#: refs.c:1164
#, c-format
msgid "update_ref failed for ref '%s': %s"
msgstr "update_ref für Referenz '%s' fehlgeschlagen: %s"
-#: refs.c:2067
+#: refs.c:2059
#, c-format
msgid "multiple updates for ref '%s' not allowed"
msgstr "mehrere Aktualisierungen für Referenz '%s' nicht erlaubt"
-#: refs.c:2150
+#: refs.c:2145
msgid "ref updates forbidden inside quarantine environment"
msgstr ""
"Aktualisierungen von Referenzen ist innerhalb der Quarantäne-Umgebung "
"verboten"
-#: refs.c:2161
+#: refs.c:2156
msgid "ref updates aborted by hook"
msgstr "Aktualisierungen von Referenzen durch Hook abgebrochen"
-#: refs.c:2269 refs.c:2299
+#: refs.c:2264 refs.c:2294
#, c-format
msgid "'%s' exists; cannot create '%s'"
msgstr "'%s' existiert; kann '%s' nicht erstellen"
-#: refs.c:2275 refs.c:2310
+#: refs.c:2270 refs.c:2305
#, c-format
msgid "cannot process '%s' and '%s' at the same time"
msgstr "kann '%s' und '%s' nicht zur selben Zeit verarbeiten"
-#: refs/files-backend.c:1267
+#: refs/files-backend.c:1295
#, c-format
msgid "could not remove reference %s"
msgstr "konnte Referenz %s nicht löschen"
-#: refs/files-backend.c:1281 refs/packed-backend.c:1549
-#: refs/packed-backend.c:1559
+#: refs/files-backend.c:1310 refs/packed-backend.c:1565
+#: refs/packed-backend.c:1575
#, c-format
msgid "could not delete reference %s: %s"
msgstr "konnte Referenz %s nicht entfernen: %s"
-#: refs/files-backend.c:1284 refs/packed-backend.c:1562
+#: refs/files-backend.c:1313 refs/packed-backend.c:1578
#, c-format
msgid "could not delete references: %s"
msgstr "konnte Referenzen nicht entfernen: %s"
@@ -7273,37 +7493,37 @@ msgstr "Mehr als ein receivepack-Befehl angegeben, benutze den ersten."
msgid "more than one uploadpack given, using the first"
msgstr "Mehr als ein uploadpack-Befehl angegeben, benutze den ersten."
-#: remote.c:699
+#: remote.c:698
#, c-format
msgid "Cannot fetch both %s and %s to %s"
msgstr "Kann 'fetch' nicht für sowohl %s als auch %s nach %s ausführen."
-#: remote.c:703
+#: remote.c:702
#, c-format
msgid "%s usually tracks %s, not %s"
msgstr "%s folgt üblicherweise %s, nicht %s"
-#: remote.c:707
+#: remote.c:706
#, c-format
msgid "%s tracks both %s and %s"
msgstr "%s folgt sowohl %s als auch %s"
-#: remote.c:775
+#: remote.c:774
#, c-format
msgid "key '%s' of pattern had no '*'"
msgstr "Schlüssel '%s' des Musters hatte kein '*'."
-#: remote.c:785
+#: remote.c:784
#, c-format
msgid "value '%s' of pattern has no '*'"
msgstr "Wert '%s' des Musters hat kein '*'."
-#: remote.c:1192
+#: remote.c:1191
#, c-format
msgid "src refspec %s does not match any"
msgstr "Src-Refspec %s entspricht keiner Referenz."
-#: remote.c:1197
+#: remote.c:1196
#, c-format
msgid "src refspec %s matches more than one"
msgstr "Src-Refspec %s entspricht mehr als einer Referenz."
@@ -7312,7 +7532,7 @@ msgstr "Src-Refspec %s entspricht mehr als einer Referenz."
#. <remote> <src>:<dst>" push, and "being pushed ('%s')" is
#. the <src>.
#.
-#: remote.c:1212
+#: remote.c:1211
#, c-format
msgid ""
"The destination you provided is not a full refname (i.e.,\n"
@@ -7339,7 +7559,7 @@ msgstr ""
"Keines hat funktioniert, sodass wir aufgegeben haben. Sie müssen die\n"
"Referenz mit vollqualifizierten Namen angeben."
-#: remote.c:1232
+#: remote.c:1231
#, c-format
msgid ""
"The <src> part of the refspec is a commit object.\n"
@@ -7350,7 +7570,7 @@ msgstr ""
"Meinten Sie, einen neuen Branch mittels Push nach\n"
"'%s:refs/heads/%s' zu erstellen?"
-#: remote.c:1237
+#: remote.c:1236
#, c-format
msgid ""
"The <src> part of the refspec is a tag object.\n"
@@ -7361,7 +7581,7 @@ msgstr ""
"Meinten Sie, einen neuen Tag mittels Push nach\n"
"'%s:refs/tags/%s' zu erstellen?"
-#: remote.c:1242
+#: remote.c:1241
#, c-format
msgid ""
"The <src> part of the refspec is a tree object.\n"
@@ -7372,7 +7592,7 @@ msgstr ""
"Meinten Sie, einen Tag für ein neues Tree-Objekt\n"
"mittels Push nach '%s:refs/tags/'%s' zu erstellen?"
-#: remote.c:1247
+#: remote.c:1246
#, c-format
msgid ""
"The <src> part of the refspec is a blob object.\n"
@@ -7383,117 +7603,117 @@ msgstr ""
"Meinten Sie, einen Tag für ein neues Blob-Objekt\n"
"mittels Push nach '%s:refs/tags/%s' zu erstellen?"
-#: remote.c:1283
+#: remote.c:1282
#, c-format
msgid "%s cannot be resolved to branch"
msgstr "%s kann nicht zu Branch aufgelöst werden."
-#: remote.c:1294
+#: remote.c:1293
#, c-format
msgid "unable to delete '%s': remote ref does not exist"
msgstr "Konnte '%s' nicht löschen: Remote-Referenz existiert nicht."
-#: remote.c:1306
+#: remote.c:1305
#, c-format
msgid "dst refspec %s matches more than one"
msgstr "Dst-Refspec %s entspricht mehr als einer Referenz."
-#: remote.c:1313
+#: remote.c:1312
#, c-format
msgid "dst ref %s receives from more than one src"
msgstr "Dst-Referenz %s empfängt von mehr als einer Quelle"
-#: remote.c:1834 remote.c:1941
+#: remote.c:1833 remote.c:1940
msgid "HEAD does not point to a branch"
msgstr "HEAD zeigt auf keinen Branch"
-#: remote.c:1843
+#: remote.c:1842
#, c-format
msgid "no such branch: '%s'"
msgstr "Branch nicht gefunden: '%s'"
-#: remote.c:1846
+#: remote.c:1845
#, c-format
msgid "no upstream configured for branch '%s'"
msgstr "Kein Upstream-Branch für Branch '%s' konfiguriert."
-#: remote.c:1852
+#: remote.c:1851
#, c-format
msgid "upstream branch '%s' not stored as a remote-tracking branch"
msgstr "Upstream-Branch '%s' nicht als Remote-Tracking-Branch gespeichert"
-#: remote.c:1867
+#: remote.c:1866
#, c-format
msgid "push destination '%s' on remote '%s' has no local tracking branch"
msgstr ""
"Ziel für \"push\" '%s' auf Remote-Repository '%s' hat keinen lokal gefolgten "
"Branch"
-#: remote.c:1882
+#: remote.c:1881
#, c-format
msgid "branch '%s' has no remote for pushing"
msgstr "Branch '%s' hat keinen Upstream-Branch gesetzt"
-#: remote.c:1892
+#: remote.c:1891
#, c-format
msgid "push refspecs for '%s' do not include '%s'"
msgstr "Push-Refspecs für '%s' beinhalten nicht '%s'"
-#: remote.c:1905
+#: remote.c:1904
msgid "push has no destination (push.default is 'nothing')"
msgstr "kein Ziel für \"push\" (push.default ist 'nothing')"
-#: remote.c:1927
+#: remote.c:1926
msgid "cannot resolve 'simple' push to a single destination"
msgstr "kann einzelnes Ziel für \"push\" im Modus 'simple' nicht auflösen"
-#: remote.c:2060
+#: remote.c:2059
#, c-format
msgid "couldn't find remote ref %s"
msgstr "Konnte Remote-Referenz %s nicht finden."
-#: remote.c:2073
+#: remote.c:2072
#, c-format
msgid "* Ignoring funny ref '%s' locally"
msgstr "* Ignoriere sonderbare Referenz '%s' lokal"
-#: remote.c:2236
+#: remote.c:2235
#, c-format
msgid "Your branch is based on '%s', but the upstream is gone.\n"
msgstr ""
"Ihr Branch basiert auf '%s', aber der Upstream-Branch wurde entfernt.\n"
-#: remote.c:2240
+#: remote.c:2239
msgid " (use \"git branch --unset-upstream\" to fixup)\n"
msgstr " (benutzen Sie \"git branch --unset-upstream\" zum Beheben)\n"
-#: remote.c:2243
+#: remote.c:2242
#, c-format
msgid "Your branch is up to date with '%s'.\n"
msgstr "Ihr Branch ist auf demselben Stand wie '%s'.\n"
-#: remote.c:2247
+#: remote.c:2246
#, c-format
msgid "Your branch and '%s' refer to different commits.\n"
msgstr "Ihr Branch und '%s' zeigen auf unterschiedliche Commits.\n"
-#: remote.c:2250
+#: remote.c:2249
#, c-format
msgid " (use \"%s\" for details)\n"
msgstr " (benutzen Sie \"%s\" für Details)\n"
-#: remote.c:2254
+#: remote.c:2253
#, c-format
msgid "Your branch is ahead of '%s' by %d commit.\n"
msgid_plural "Your branch is ahead of '%s' by %d commits.\n"
msgstr[0] "Ihr Branch ist %2$d Commit vor '%1$s'.\n"
msgstr[1] "Ihr Branch ist %2$d Commits vor '%1$s'.\n"
-#: remote.c:2260
+#: remote.c:2259
msgid " (use \"git push\" to publish your local commits)\n"
msgstr " (benutzen Sie \"git push\", um lokale Commits zu publizieren)\n"
-#: remote.c:2263
+#: remote.c:2262
#, c-format
msgid "Your branch is behind '%s' by %d commit, and can be fast-forwarded.\n"
msgid_plural ""
@@ -7503,12 +7723,12 @@ msgstr[0] ""
msgstr[1] ""
"Ihr Branch ist %2$d Commits hinter '%1$s', und kann vorgespult werden.\n"
-#: remote.c:2271
+#: remote.c:2270
msgid " (use \"git pull\" to update your local branch)\n"
msgstr ""
" (benutzen Sie \"git pull\", um Ihren lokalen Branch zu aktualisieren)\n"
-#: remote.c:2274
+#: remote.c:2273
#, c-format
msgid ""
"Your branch and '%s' have diverged,\n"
@@ -7523,13 +7743,13 @@ msgstr[1] ""
"Ihr Branch und '%s' sind divergiert,\n"
"und haben jeweils %d und %d unterschiedliche Commits.\n"
-#: remote.c:2284
+#: remote.c:2283
msgid " (use \"git pull\" to merge the remote branch into yours)\n"
msgstr ""
" (benutzen Sie \"git pull\", um Ihren Branch mit dem Remote-Branch "
"zusammenzuführen)\n"
-#: remote.c:2476
+#: remote.c:2475
#, c-format
msgid "cannot parse expected object name '%s'"
msgstr "Kann erwarteten Objektnamen '%s' nicht parsen."
@@ -7567,104 +7787,108 @@ msgstr "Fehler beim Schreiben von '%s' (%s)."
msgid "failed to flush '%s'"
msgstr "Flush bei '%s' fehlgeschlagen."
-#: rerere.c:487 rerere.c:1023
+#: rerere.c:487 rerere.c:1024
#, c-format
msgid "could not parse conflict hunks in '%s'"
msgstr "Konnte Konflikt-Blöcke in '%s' nicht parsen."
-#: rerere.c:668
+#: rerere.c:669
#, c-format
msgid "failed utime() on '%s'"
msgstr "Fehler beim Aufruf von utime() auf '%s'."
-#: rerere.c:678
+#: rerere.c:679
#, c-format
msgid "writing '%s' failed"
msgstr "Schreiben von '%s' fehlgeschlagen."
-#: rerere.c:698
+#: rerere.c:699
#, c-format
msgid "Staged '%s' using previous resolution."
msgstr "'%s' mit vorheriger Konfliktauflösung zum Commit vorgemerkt."
-#: rerere.c:737
+#: rerere.c:738
#, c-format
msgid "Recorded resolution for '%s'."
msgstr "Konfliktauflösung für '%s' aufgezeichnet."
-#: rerere.c:772
+#: rerere.c:773
#, c-format
msgid "Resolved '%s' using previous resolution."
msgstr "Konflikte in '%s' mit vorheriger Konfliktauflösung beseitigt."
-#: rerere.c:787
+#: rerere.c:788
#, c-format
msgid "cannot unlink stray '%s'"
msgstr "Kann '%s' nicht löschen."
-#: rerere.c:791
+#: rerere.c:792
#, c-format
msgid "Recorded preimage for '%s'"
msgstr "Preimage für '%s' aufgezeichnet."
-#: rerere.c:865 submodule.c:2121 builtin/log.c:2017
-#: builtin/submodule--helper.c:1777 builtin/submodule--helper.c:1820
+#: rerere.c:866 submodule.c:2290 builtin/log.c:2042
+#: builtin/submodule--helper.c:1786 builtin/submodule--helper.c:1833
#, c-format
msgid "could not create directory '%s'"
msgstr "Konnte Verzeichnis '%s' nicht erstellen."
-#: rerere.c:1041
+#: rerere.c:1042
#, c-format
msgid "failed to update conflicted state in '%s'"
msgstr "Fehler beim Aktualisieren des Konflikt-Status in '%s'."
-#: rerere.c:1052 rerere.c:1059
+#: rerere.c:1053 rerere.c:1060
#, c-format
msgid "no remembered resolution for '%s'"
msgstr "Keine aufgezeichnete Konfliktauflösung für '%s'."
-#: rerere.c:1061
+#: rerere.c:1062
#, c-format
msgid "cannot unlink '%s'"
msgstr "Kann '%s' nicht löschen."
-#: rerere.c:1071
+#: rerere.c:1072
#, c-format
msgid "Updated preimage for '%s'"
msgstr "Preimage für '%s' aktualisiert."
-#: rerere.c:1080
+#: rerere.c:1081
#, c-format
msgid "Forgot resolution for '%s'\n"
msgstr "Aufgezeichnete Konfliktauflösung für '%s' gelöscht.\n"
-#: rerere.c:1191
+#: rerere.c:1192
msgid "unable to open rr-cache directory"
msgstr "Konnte rr-cache Verzeichnis nicht öffnen."
-#: reset.c:42
+#: reset.c:112
msgid "could not determine HEAD revision"
msgstr "Konnte HEAD-Commit nicht bestimmen."
-#: reset.c:70 reset.c:76 sequencer.c:3700
+#: reset.c:141 reset.c:147 sequencer.c:3696
#, c-format
msgid "failed to find tree of %s"
msgstr "Fehler beim Finden des \"Tree\"-Objektes von %s."
-#: revision.c:2347
+#: revision.c:2358
msgid "--unpacked=<packfile> no longer supported"
msgstr "--unpacked=<Pack-Datei> wird nicht länger unterstützt"
-#: revision.c:2686
+#: revision.c:2712
msgid "your current branch appears to be broken"
msgstr "Ihr aktueller Branch scheint fehlerhaft zu sein."
-#: revision.c:2689
+#: revision.c:2715
#, c-format
msgid "your current branch '%s' does not have any commits yet"
msgstr "Ihr aktueller Branch '%s' hat noch keine Commits."
-#: revision.c:2891
+#: revision.c:2901
+msgid "object filtering requires --objects"
+msgstr "Das Filtern von Objekten erfordert --objects."
+
+#: revision.c:2918
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"
@@ -7735,7 +7959,7 @@ msgstr "Ungültiger \"cleanup\"-Modus '%s' für Commit-Beschreibungen."
msgid "could not delete '%s'"
msgstr "Konnte '%s' nicht löschen."
-#: sequencer.c:345 sequencer.c:4751 builtin/rebase.c:563 builtin/rebase.c:1297
+#: sequencer.c:345 sequencer.c:4724 builtin/rebase.c:564 builtin/rebase.c:1326
#: builtin/rm.c:409
#, c-format
msgid "could not remove '%s'"
@@ -7800,13 +8024,13 @@ msgstr ""
"Um abzubrechen und zurück zum Zustand vor \"git revert\" zu gelangen,\n"
"führen Sie \"git revert --abort\" aus."
-#: sequencer.c:448 sequencer.c:3292
+#: sequencer.c:448 sequencer.c:3288
#, c-format
msgid "could not lock '%s'"
msgstr "Konnte '%s' nicht sperren"
-#: sequencer.c:450 sequencer.c:3091 sequencer.c:3296 sequencer.c:3310
-#: sequencer.c:3561 sequencer.c:5618 strbuf.c:1188 wrapper.c:639
+#: sequencer.c:450 sequencer.c:3087 sequencer.c:3292 sequencer.c:3306
+#: sequencer.c:3557 sequencer.c:5591 strbuf.c:1189 wrapper.c:715
#, c-format
msgid "could not write to '%s'"
msgstr "Konnte nicht nach '%s' schreiben."
@@ -7816,14 +8040,14 @@ msgstr "Konnte nicht nach '%s' schreiben."
msgid "could not write eol to '%s'"
msgstr "Konnte EOL nicht nach '%s' schreiben."
-#: sequencer.c:460 sequencer.c:3096 sequencer.c:3298 sequencer.c:3312
-#: sequencer.c:3569
+#: sequencer.c:460 sequencer.c:3092 sequencer.c:3294 sequencer.c:3308
+#: sequencer.c:3565
#, c-format
msgid "failed to finalize '%s'"
msgstr "Fehler beim Fertigstellen von '%s'."
-#: sequencer.c:473 sequencer.c:1934 sequencer.c:3116 sequencer.c:3551
-#: sequencer.c:3679 builtin/am.c:289 builtin/commit.c:834 builtin/merge.c:1148
+#: sequencer.c:473 sequencer.c:1930 sequencer.c:3112 sequencer.c:3547
+#: sequencer.c:3675 builtin/am.c:290 builtin/commit.c:837 builtin/merge.c:1154
#, c-format
msgid "could not read '%s'"
msgstr "Konnte '%s' nicht lesen"
@@ -7843,7 +8067,7 @@ msgstr ""
msgid "%s: fast-forward"
msgstr "%s: Vorspulen"
-#: sequencer.c:574 builtin/tag.c:614
+#: sequencer.c:574 builtin/tag.c:615
#, c-format
msgid "Invalid cleanup mode %s"
msgstr "Ungültiger \"cleanup\" Modus %s"
@@ -7874,8 +8098,8 @@ msgstr "Kein Schlüssel in '%.*s' vorhanden."
msgid "unable to dequote value of '%s'"
msgstr "Konnte Anführungszeichen von '%s' nicht entfernen."
-#: sequencer.c:841 wrapper.c:209 wrapper.c:379 builtin/am.c:756
-#: builtin/am.c:848 builtin/rebase.c:694
+#: sequencer.c:841 wrapper.c:219 wrapper.c:389 builtin/am.c:757
+#: builtin/am.c:849 builtin/rebase.c:699
#, c-format
msgid "could not open '%s' for reading"
msgstr "Konnte '%s' nicht zum Lesen öffnen."
@@ -7998,351 +8222,346 @@ msgstr ""
"\n"
" git commit --amend --reset-author\n"
-#: sequencer.c:1288
+#: sequencer.c:1287
msgid "couldn't look up newly created commit"
msgstr "Konnte neu erstellten Commit nicht nachschlagen."
-#: sequencer.c:1290
+#: sequencer.c:1289
msgid "could not parse newly created commit"
msgstr "Konnte neu erstellten Commit nicht analysieren."
-#: sequencer.c:1339
+#: sequencer.c:1336
msgid "unable to resolve HEAD after creating commit"
msgstr "Konnte HEAD nicht auflösen, nachdem der Commit erstellt wurde."
-#: sequencer.c:1342
+#: sequencer.c:1338
msgid "detached HEAD"
msgstr "losgelöster HEAD"
-#: sequencer.c:1346
+#: sequencer.c:1342
msgid " (root-commit)"
msgstr " (Root-Commit)"
-#: sequencer.c:1367
+#: sequencer.c:1363
msgid "could not parse HEAD"
msgstr "Konnte HEAD nicht parsen."
-#: sequencer.c:1369
+#: sequencer.c:1365
#, c-format
msgid "HEAD %s is not a commit!"
msgstr "HEAD %s ist kein Commit!"
-#: sequencer.c:1373 sequencer.c:1451 builtin/commit.c:1708
+#: sequencer.c:1369 sequencer.c:1447 builtin/commit.c:1707
msgid "could not parse HEAD commit"
msgstr "Konnte Commit von HEAD nicht analysieren."
-#: sequencer.c:1429 sequencer.c:2314
+#: sequencer.c:1425 sequencer.c:2310
msgid "unable to parse commit author"
msgstr "Konnte Commit-Autor nicht parsen."
-#: sequencer.c:1440 builtin/am.c:1643 builtin/merge.c:710
+#: sequencer.c:1436 builtin/am.c:1644 builtin/merge.c:710
msgid "git write-tree failed to write a tree"
msgstr "\"git write-tree\" schlug beim Schreiben eines \"Tree\"-Objektes fehl"
-#: sequencer.c:1473 sequencer.c:1593
+#: sequencer.c:1469 sequencer.c:1589
#, c-format
msgid "unable to read commit message from '%s'"
msgstr "Konnte Commit-Beschreibung von '%s' nicht lesen."
-#: sequencer.c:1504 sequencer.c:1536
+#: sequencer.c:1500 sequencer.c:1532
#, c-format
msgid "invalid author identity '%s'"
msgstr "ungültige Autor-Identität '%s'"
-#: sequencer.c:1510
+#: sequencer.c:1506
msgid "corrupt author: missing date information"
msgstr "unbrauchbarer Autor: Datumsinformationen fehlen"
-#: sequencer.c:1549 builtin/am.c:1670 builtin/commit.c:1822 builtin/merge.c:915
-#: builtin/merge.c:940 t/helper/test-fast-rebase.c:78
+#: sequencer.c:1545 builtin/am.c:1671 builtin/commit.c:1821 builtin/merge.c:921
+#: builtin/merge.c:946 t/helper/test-fast-rebase.c:78
msgid "failed to write commit object"
msgstr "Fehler beim Schreiben des Commit-Objektes."
-#: sequencer.c:1576 sequencer.c:4523 t/helper/test-fast-rebase.c:199
+#: sequencer.c:1572 sequencer.c:4496 t/helper/test-fast-rebase.c:199
#: t/helper/test-fast-rebase.c:217
#, c-format
msgid "could not update %s"
msgstr "Konnte %s nicht aktualisieren."
-#: sequencer.c:1625
+#: sequencer.c:1621
#, c-format
msgid "could not parse commit %s"
msgstr "Konnte Commit %s nicht parsen."
-#: sequencer.c:1630
+#: sequencer.c:1626
#, c-format
msgid "could not parse parent commit %s"
msgstr "Konnte Eltern-Commit %s nicht parsen."
-#: sequencer.c:1713 sequencer.c:1994
+#: sequencer.c:1709 sequencer.c:1990
#, c-format
msgid "unknown command: %d"
msgstr "Unbekannter Befehl: %d"
-#: sequencer.c:1755
+#: sequencer.c:1751
msgid "This is the 1st commit message:"
msgstr "Das ist die erste Commit-Beschreibung:"
-#: sequencer.c:1756
+#: sequencer.c:1752
#, c-format
msgid "This is the commit message #%d:"
msgstr "Das ist Commit-Beschreibung #%d:"
-#: sequencer.c:1757
+#: sequencer.c:1753
msgid "The 1st commit message will be skipped:"
msgstr "Die erste Commit-Beschreibung wird übersprungen:"
-#: sequencer.c:1758
+#: sequencer.c:1754
#, c-format
msgid "The commit message #%d will be skipped:"
msgstr "Die Commit-Beschreibung #%d wird ausgelassen:"
-#: sequencer.c:1759
+#: sequencer.c:1755
#, c-format
msgid "This is a combination of %d commits."
msgstr "Das ist eine Kombination aus %d Commits."
-#: sequencer.c:1906 sequencer.c:1963
+#: sequencer.c:1902 sequencer.c:1959
#, c-format
msgid "cannot write '%s'"
msgstr "kann '%s' nicht schreiben"
-#: sequencer.c:1953
+#: sequencer.c:1949
msgid "need a HEAD to fixup"
msgstr "benötige HEAD für fixup"
-#: sequencer.c:1955 sequencer.c:3596
+#: sequencer.c:1951 sequencer.c:3592
msgid "could not read HEAD"
msgstr "Konnte HEAD nicht lesen"
-#: sequencer.c:1957
+#: sequencer.c:1953
msgid "could not read HEAD's commit message"
msgstr "Konnte Commit-Beschreibung von HEAD nicht lesen"
-#: sequencer.c:1981
+#: sequencer.c:1977
#, c-format
msgid "could not read commit message of %s"
msgstr "Konnte Commit-Beschreibung von %s nicht lesen."
-#: sequencer.c:2091
+#: sequencer.c:2087
msgid "your index file is unmerged."
msgstr "Ihre Index-Datei ist nicht zusammengeführt."
-#: sequencer.c:2098
+#: sequencer.c:2094
msgid "cannot fixup root commit"
msgstr "kann fixup nicht auf Root-Commit anwenden"
-#: sequencer.c:2117
+#: sequencer.c:2113
#, c-format
msgid "commit %s is a merge but no -m option was given."
msgstr "Commit %s ist ein Merge, aber die Option -m wurde nicht angegeben."
-#: sequencer.c:2125 sequencer.c:2133
+#: sequencer.c:2121 sequencer.c:2129
#, c-format
msgid "commit %s does not have parent %d"
msgstr "Commit %s hat keinen Eltern-Commit %d"
-#: sequencer.c:2139
+#: sequencer.c:2135
#, c-format
msgid "cannot get commit message for %s"
msgstr "Kann keine Commit-Beschreibung für %s bekommen."
#. TRANSLATORS: The first %s will be a "todo" command like
#. "revert" or "pick", the second %s a SHA1.
-#: sequencer.c:2158
+#: sequencer.c:2154
#, c-format
msgid "%s: cannot parse parent commit %s"
msgstr "%s: kann Eltern-Commit %s nicht parsen"
-#: sequencer.c:2224
+#: sequencer.c:2220
#, c-format
msgid "could not rename '%s' to '%s'"
msgstr "Konnte '%s' nicht zu '%s' umbenennen."
-#: sequencer.c:2284
+#: sequencer.c:2280
#, c-format
msgid "could not revert %s... %s"
msgstr "Konnte \"revert\" nicht auf %s... (%s) ausführen"
-#: sequencer.c:2285
+#: sequencer.c:2281
#, c-format
msgid "could not apply %s... %s"
msgstr "Konnte %s... (%s) nicht anwenden"
-#: sequencer.c:2306
+#: sequencer.c:2302
#, c-format
msgid "dropping %s %s -- patch contents already upstream\n"
msgstr "Weglassen von %s %s -- Patch-Inhalte sind bereits im Upstream-Branch\n"
-#: sequencer.c:2364
+#: sequencer.c:2360
#, c-format
msgid "git %s: failed to read the index"
msgstr "git %s: Fehler beim Lesen des Index"
-#: sequencer.c:2372
+#: sequencer.c:2368
#, c-format
msgid "git %s: failed to refresh the index"
msgstr "git %s: Fehler beim Aktualisieren des Index"
-#: sequencer.c:2452
+#: sequencer.c:2448
#, c-format
msgid "%s does not accept arguments: '%s'"
msgstr "%s akzeptiert keine Argumente: '%s'"
-#: sequencer.c:2461
+#: sequencer.c:2457
#, c-format
msgid "missing arguments for %s"
msgstr "Fehlende Argumente für %s."
-#: sequencer.c:2504
+#: sequencer.c:2500
#, c-format
msgid "could not parse '%s'"
msgstr "Konnte '%s' nicht parsen."
-#: sequencer.c:2565
+#: sequencer.c:2561
#, c-format
msgid "invalid line %d: %.*s"
msgstr "Ungültige Zeile %d: %.*s"
-#: sequencer.c:2576
+#: sequencer.c:2572
#, c-format
msgid "cannot '%s' without a previous commit"
msgstr "Kann '%s' nicht ohne vorherigen Commit ausführen"
-#: sequencer.c:2624 builtin/rebase.c:184
+#: sequencer.c:2620 builtin/rebase.c:185
#, c-format
msgid "could not read '%s'."
msgstr "Konnte '%s' nicht lesen."
-#: sequencer.c:2662
+#: sequencer.c:2658
msgid "cancelling a cherry picking in progress"
msgstr "Abbrechen eines laufenden \"cherry-pick\""
-#: sequencer.c:2671
+#: sequencer.c:2667
msgid "cancelling a revert in progress"
msgstr "Abbrechen eines laufenden \"revert\""
-#: sequencer.c:2711
+#: sequencer.c:2707
msgid "please fix this using 'git rebase --edit-todo'."
msgstr ""
"Bitte beheben Sie dieses, indem Sie 'git rebase --edit-todo' ausführen."
-#: sequencer.c:2713
+#: sequencer.c:2709
#, c-format
msgid "unusable instruction sheet: '%s'"
msgstr "Unbenutzbares Instruktionsblatt: '%s'"
-#: sequencer.c:2718
+#: sequencer.c:2714
msgid "no commits parsed."
msgstr "Keine Commits geparst."
-#: sequencer.c:2729
+#: sequencer.c:2725
msgid "cannot cherry-pick during a revert."
msgstr "Kann Cherry-Pick nicht während eines Reverts ausführen."
-#: sequencer.c:2731
+#: sequencer.c:2727
msgid "cannot revert during a cherry-pick."
msgstr "Kann Revert nicht während eines Cherry-Picks ausführen."
-#: sequencer.c:2809
-#, c-format
-msgid "invalid value for %s: %s"
-msgstr "ungültiger Wert für %s: %s"
-
-#: sequencer.c:2918
+#: sequencer.c:2914
msgid "unusable squash-onto"
msgstr "unbenutzbares squash-onto"
-#: sequencer.c:2938
+#: sequencer.c:2934
#, c-format
msgid "malformed options sheet: '%s'"
msgstr "fehlerhaftes Optionsblatt: '%s'"
-#: sequencer.c:3033 sequencer.c:4902
+#: sequencer.c:3029 sequencer.c:4875
msgid "empty commit set passed"
msgstr "leere Menge von Commits übergeben"
-#: sequencer.c:3050
+#: sequencer.c:3046
msgid "revert is already in progress"
msgstr "\"revert\" ist bereits im Gange"
-#: sequencer.c:3052
+#: sequencer.c:3048
#, c-format
msgid "try \"git revert (--continue | %s--abort | --quit)\""
msgstr "versuchen Sie \"git revert (--continue | %s--abort | --quit)\""
-#: sequencer.c:3055
+#: sequencer.c:3051
msgid "cherry-pick is already in progress"
msgstr "\"cherry-pick\" wird bereits durchgeführt"
-#: sequencer.c:3057
+#: sequencer.c:3053
#, c-format
msgid "try \"git cherry-pick (--continue | %s--abort | --quit)\""
msgstr "versuchen Sie \"git cherry-pick (--continue | %s--abort | --quit)\""
-#: sequencer.c:3071
+#: sequencer.c:3067
#, c-format
msgid "could not create sequencer directory '%s'"
msgstr "konnte \"sequencer\"-Verzeichnis '%s' nicht erstellen"
-#: sequencer.c:3086
+#: sequencer.c:3082
msgid "could not lock HEAD"
msgstr "konnte HEAD nicht sperren"
-#: sequencer.c:3146 sequencer.c:4612
+#: sequencer.c:3142 sequencer.c:4585
msgid "no cherry-pick or revert in progress"
msgstr "kein \"cherry-pick\" oder \"revert\" im Gange"
-#: sequencer.c:3148 sequencer.c:3159
+#: sequencer.c:3144 sequencer.c:3155
msgid "cannot resolve HEAD"
msgstr "kann HEAD nicht auflösen"
-#: sequencer.c:3150 sequencer.c:3194
+#: sequencer.c:3146 sequencer.c:3190
msgid "cannot abort from a branch yet to be born"
msgstr "kann nicht abbrechen: bin auf einem Branch, der noch nicht geboren ist"
-#: sequencer.c:3180 builtin/fetch.c:1004 builtin/fetch.c:1416
-#: builtin/grep.c:772
+#: sequencer.c:3176 builtin/fetch.c:1030 builtin/fetch.c:1457
+#: builtin/grep.c:774
#, c-format
msgid "cannot open '%s'"
msgstr "kann '%s' nicht öffnen"
-#: sequencer.c:3182
+#: sequencer.c:3178
#, c-format
msgid "cannot read '%s': %s"
msgstr "kann '%s' nicht lesen: %s"
-#: sequencer.c:3183
+#: sequencer.c:3179
msgid "unexpected end of file"
msgstr "unerwartetes Dateiende"
-#: sequencer.c:3189
+#: sequencer.c:3185
#, c-format
msgid "stored pre-cherry-pick HEAD file '%s' is corrupt"
msgstr "gespeicherte \"pre-cherry-pick\" HEAD Datei '%s' ist beschädigt"
-#: sequencer.c:3200
+#: sequencer.c:3196
msgid "You seem to have moved HEAD. Not rewinding, check your HEAD!"
msgstr ""
"Sie scheinen HEAD verändert zu haben. Keine Rückspulung, prüfen Sie HEAD."
-#: sequencer.c:3241
+#: sequencer.c:3237
msgid "no revert in progress"
msgstr "kein Revert im Gange"
-#: sequencer.c:3250
+#: sequencer.c:3246
msgid "no cherry-pick in progress"
msgstr "kein \"cherry-pick\" im Gange"
-#: sequencer.c:3260
+#: sequencer.c:3256
msgid "failed to skip the commit"
msgstr "Ãœberspringen des Commits fehlgeschlagen"
-#: sequencer.c:3267
+#: sequencer.c:3263
msgid "there is nothing to skip"
msgstr "nichts zum Ãœberspringen vorhanden"
-#: sequencer.c:3270
+#: sequencer.c:3266
#, c-format
msgid ""
"have you committed already?\n"
@@ -8351,16 +8570,16 @@ msgstr ""
"Haben Sie bereits committet?\n"
"Versuchen Sie \"git %s --continue\""
-#: sequencer.c:3432 sequencer.c:4503
+#: sequencer.c:3428 sequencer.c:4476
msgid "cannot read HEAD"
msgstr "kann HEAD nicht lesen"
-#: sequencer.c:3449
+#: sequencer.c:3445
#, c-format
msgid "unable to copy '%s' to '%s'"
msgstr "konnte '%s' nicht nach '%s' kopieren"
-#: sequencer.c:3457
+#: sequencer.c:3453
#, c-format
msgid ""
"You can amend the commit now, with\n"
@@ -8379,27 +8598,27 @@ msgstr ""
"\n"
" git rebase --continue\n"
-#: sequencer.c:3467
+#: sequencer.c:3463
#, c-format
msgid "Could not apply %s... %.*s"
msgstr "Konnte %s... (%.*s) nicht anwenden"
-#: sequencer.c:3474
+#: sequencer.c:3470
#, c-format
msgid "Could not merge %.*s"
msgstr "Konnte \"%.*s\" nicht zusammenführen"
-#: sequencer.c:3488 sequencer.c:3492 builtin/difftool.c:633
+#: sequencer.c:3484 sequencer.c:3488 builtin/difftool.c:633
#, c-format
msgid "could not copy '%s' to '%s'"
msgstr "konnte '%s' nicht nach '%s' kopieren"
-#: sequencer.c:3503
+#: sequencer.c:3499
#, c-format
msgid "Executing: %s\n"
msgstr "Führe aus: %s\n"
-#: sequencer.c:3514
+#: sequencer.c:3510
#, c-format
msgid ""
"execution failed: %s\n"
@@ -8415,11 +8634,11 @@ msgstr ""
"\n"
"ausführen.\n"
-#: sequencer.c:3520
+#: sequencer.c:3516
msgid "and made changes to the index and/or the working tree\n"
msgstr "Der Index und/oder das Arbeitsverzeichnis wurde geändert.\n"
-#: sequencer.c:3526
+#: sequencer.c:3522
#, c-format
msgid ""
"execution succeeded: %s\n"
@@ -8437,91 +8656,91 @@ msgstr ""
" git rebase --continue\n"
"\n"
-#: sequencer.c:3586
+#: sequencer.c:3582
#, c-format
msgid "illegal label name: '%.*s'"
msgstr "unerlaubter Beschriftungsname: '%.*s'"
-#: sequencer.c:3659
+#: sequencer.c:3655
msgid "writing fake root commit"
msgstr "unechten Root-Commit schreiben"
-#: sequencer.c:3664
+#: sequencer.c:3660
msgid "writing squash-onto"
msgstr "squash-onto schreiben"
-#: sequencer.c:3743
+#: sequencer.c:3739
#, c-format
msgid "could not resolve '%s'"
msgstr "konnte '%s' nicht auflösen"
-#: sequencer.c:3775
+#: sequencer.c:3771
msgid "cannot merge without a current revision"
msgstr "kann nicht ohne einen aktuellen Commit mergen"
-#: sequencer.c:3797
+#: sequencer.c:3793
#, c-format
msgid "unable to parse '%.*s'"
msgstr "konnte '%.*s' nicht parsen"
-#: sequencer.c:3806
+#: sequencer.c:3802
#, c-format
msgid "nothing to merge: '%.*s'"
msgstr "nichts zum Zusammenführen: '%.*s'"
-#: sequencer.c:3818
+#: sequencer.c:3814
msgid "octopus merge cannot be executed on top of a [new root]"
msgstr ""
"Oktopus-Merge kann nicht auf Basis von [neuem Root-Commit] ausgeführt werden"
-#: sequencer.c:3873
+#: sequencer.c:3869
#, c-format
msgid "could not get commit message of '%s'"
msgstr "konnte keine Commit-Beschreibung von '%s' bekommen"
-#: sequencer.c:4019
+#: sequencer.c:4013
#, c-format
msgid "could not even attempt to merge '%.*s'"
msgstr "konnte nicht einmal versuchen '%.*s' zu mergen"
-#: sequencer.c:4035
+#: sequencer.c:4029
msgid "merge: Unable to write new index file"
msgstr "merge: Konnte neue Index-Datei nicht schreiben."
-#: sequencer.c:4116
+#: sequencer.c:4110
msgid "Cannot autostash"
msgstr "Kann automatischen Stash nicht erzeugen"
-#: sequencer.c:4119
+#: sequencer.c:4113
#, c-format
msgid "Unexpected stash response: '%s'"
msgstr "Unerwartete 'stash'-Antwort: '%s'"
-#: sequencer.c:4125
+#: sequencer.c:4119
#, c-format
msgid "Could not create directory for '%s'"
msgstr "Konnte Verzeichnis für '%s' nicht erstellen"
-#: sequencer.c:4128
+#: sequencer.c:4122
#, c-format
msgid "Created autostash: %s\n"
msgstr "Automatischen Stash erzeugt: %s\n"
-#: sequencer.c:4132
+#: sequencer.c:4124
msgid "could not reset --hard"
msgstr "konnte 'reset --hard' nicht ausführen"
-#: sequencer.c:4157
+#: sequencer.c:4148
#, c-format
msgid "Applied autostash.\n"
msgstr "Automatischen Stash angewendet.\n"
-#: sequencer.c:4169
+#: sequencer.c:4160
#, c-format
msgid "cannot store %s"
msgstr "kann %s nicht speichern"
-#: sequencer.c:4172
+#: sequencer.c:4163
#, c-format
msgid ""
"%s\n"
@@ -8532,29 +8751,29 @@ msgstr ""
"Ihre Änderungen sind im Stash sicher.\n"
"Sie können jederzeit \"git stash pop\" oder \"git stash drop\" ausführen.\n"
-#: sequencer.c:4177
+#: sequencer.c:4168
msgid "Applying autostash resulted in conflicts."
msgstr "Beim Anwenden des automatischen Stash traten Konflikte auf."
-#: sequencer.c:4178
+#: sequencer.c:4169
msgid "Autostash exists; creating a new stash entry."
msgstr "Automatischer Stash existiert; ein neuer Stash-Eintrag wird erstellt."
-#: sequencer.c:4252
+#: sequencer.c:4225
msgid "could not detach HEAD"
msgstr "konnte HEAD nicht loslösen"
-#: sequencer.c:4267
+#: sequencer.c:4240
#, c-format
msgid "Stopped at HEAD\n"
msgstr "Angehalten bei HEAD\n"
-#: sequencer.c:4269
+#: sequencer.c:4242
#, c-format
msgid "Stopped at %s\n"
msgstr "Angehalten bei %s\n"
-#: sequencer.c:4301
+#: sequencer.c:4274
#, c-format
msgid ""
"Could not execute the todo command\n"
@@ -8576,60 +8795,60 @@ msgstr ""
" git rebase --edit-todo\n"
" git rebase --continue\n"
-#: sequencer.c:4347
+#: sequencer.c:4320
#, c-format
msgid "Rebasing (%d/%d)%s"
msgstr "Rebase (%d/%d)%s"
-#: sequencer.c:4393
+#: sequencer.c:4366
#, c-format
msgid "Stopped at %s... %.*s\n"
msgstr "Angehalten bei %s... %.*s\n"
-#: sequencer.c:4463
+#: sequencer.c:4436
#, c-format
msgid "unknown command %d"
msgstr "Unbekannter Befehl %d"
-#: sequencer.c:4511
+#: sequencer.c:4484
msgid "could not read orig-head"
msgstr "Konnte orig-head nicht lesen."
-#: sequencer.c:4516
+#: sequencer.c:4489
msgid "could not read 'onto'"
msgstr "Konnte 'onto' nicht lesen."
-#: sequencer.c:4530
+#: sequencer.c:4503
#, c-format
msgid "could not update HEAD to %s"
msgstr "Konnte HEAD nicht auf %s aktualisieren."
-#: sequencer.c:4590
+#: sequencer.c:4563
#, c-format
msgid "Successfully rebased and updated %s.\n"
msgstr "Erfolgreich Rebase ausgeführt und %s aktualisiert.\n"
-#: sequencer.c:4642
+#: sequencer.c:4615
msgid "cannot rebase: You have unstaged changes."
msgstr ""
"Rebase nicht möglich: Sie haben Änderungen, die nicht zum Commit\n"
"vorgemerkt sind."
-#: sequencer.c:4651
+#: sequencer.c:4624
msgid "cannot amend non-existing commit"
msgstr "Kann nicht existierenden Commit nicht nachbessern."
-#: sequencer.c:4653
+#: sequencer.c:4626
#, c-format
msgid "invalid file: '%s'"
msgstr "Ungültige Datei: '%s'"
-#: sequencer.c:4655
+#: sequencer.c:4628
#, c-format
msgid "invalid contents: '%s'"
msgstr "Ungültige Inhalte: '%s'"
-#: sequencer.c:4658
+#: sequencer.c:4631
msgid ""
"\n"
"You have uncommitted changes in your working tree. Please, commit them\n"
@@ -8640,69 +8859,69 @@ msgstr ""
"committen Sie diese zuerst und führen Sie dann 'git rebase --continue'\n"
"erneut aus."
-#: sequencer.c:4694 sequencer.c:4733
+#: sequencer.c:4667 sequencer.c:4706
#, c-format
msgid "could not write file: '%s'"
msgstr "Konnte Datei nicht schreiben: '%s'"
-#: sequencer.c:4749
+#: sequencer.c:4722
msgid "could not remove CHERRY_PICK_HEAD"
msgstr "Konnte CHERRY_PICK_HEAD nicht löschen."
-#: sequencer.c:4759
+#: sequencer.c:4732
msgid "could not commit staged changes."
msgstr "Konnte Änderungen aus der Staging-Area nicht committen."
-#: sequencer.c:4879
+#: sequencer.c:4852
#, c-format
msgid "%s: can't cherry-pick a %s"
msgstr "%s: %s kann nicht in \"cherry-pick\" benutzt werden"
-#: sequencer.c:4883
+#: sequencer.c:4856
#, c-format
msgid "%s: bad revision"
msgstr "%s: ungültiger Commit"
-#: sequencer.c:4918
+#: sequencer.c:4891
msgid "can't revert as initial commit"
msgstr "Kann nicht als allerersten Commit einen Revert ausführen."
-#: sequencer.c:5189 sequencer.c:5418
+#: sequencer.c:5162 sequencer.c:5391
#, c-format
msgid "skipped previously applied commit %s"
msgstr "zuvor angewendeten Commit %s übersprungen"
-#: sequencer.c:5259 sequencer.c:5434
+#: sequencer.c:5232 sequencer.c:5407
msgid "use --reapply-cherry-picks to include skipped commits"
msgstr ""
"verwenden Sie --reapply-cherry-picks, um übersprungene Commits einzubeziehen"
-#: sequencer.c:5405
+#: sequencer.c:5378
msgid "make_script: unhandled options"
msgstr "make_script: unbehandelte Optionen"
-#: sequencer.c:5408
+#: sequencer.c:5381
msgid "make_script: error preparing revisions"
msgstr "make_script: Fehler beim Vorbereiten der Commits"
-#: sequencer.c:5666 sequencer.c:5683
+#: sequencer.c:5639 sequencer.c:5656
msgid "nothing to do"
msgstr "Nichts zu tun."
-#: sequencer.c:5702
+#: sequencer.c:5675
msgid "could not skip unnecessary pick commands"
msgstr "Konnte unnötige \"pick\"-Befehle nicht auslassen."
-#: sequencer.c:5802
+#: sequencer.c:5775
msgid "the script was already rearranged."
msgstr "Das Script wurde bereits umgeordnet."
-#: setup.c:134
+#: setup.c:135
#, c-format
msgid "'%s' is outside repository at '%s'"
msgstr "'%s' liegt außerhalb des Repositories von '%s'"
-#: setup.c:186
+#: setup.c:187
#, c-format
msgid ""
"%s: no such path in the working tree.\n"
@@ -8712,7 +8931,7 @@ msgstr ""
"Benutzen Sie 'git <Befehl> -- <Pfad>...' zur Angabe von Pfaden, die lokal\n"
"nicht existieren."
-#: setup.c:199
+#: setup.c:200
#, c-format
msgid ""
"ambiguous argument '%s': unknown revision or path not in the working tree.\n"
@@ -8724,13 +8943,13 @@ msgstr ""
"Benutzen Sie '--', um Pfade und Commits zu trennen, ähnlich wie:\n"
"'git <Befehl> [<Commit>...] -- [<Datei>...]'"
-#: setup.c:265
+#: setup.c:266
#, c-format
msgid "option '%s' must come before non-option arguments"
msgstr ""
"die Option '%s' muss vor den Argumenten kommen, die keine Optionen sind"
-#: setup.c:284
+#: setup.c:285
#, c-format
msgid ""
"ambiguous argument '%s': both revision and filename\n"
@@ -8741,101 +8960,101 @@ msgstr ""
"Benutzen Sie '--', um Pfade und Commits zu trennen, ähnlich wie:\n"
"'git <Befehl> [<Commit>...] -- [<Datei>...]'"
-#: setup.c:420
+#: setup.c:421
msgid "unable to set up work tree using invalid config"
msgstr ""
"Konnte Arbeitsverzeichnis mit ungültiger Konfiguration nicht einrichten."
-#: setup.c:424 builtin/rev-parse.c:895
+#: setup.c:425 builtin/rev-parse.c:895
msgid "this operation must be run in a work tree"
msgstr "Diese Operation muss in einem Arbeitsverzeichnis ausgeführt werden."
-#: setup.c:722
+#: setup.c:724
#, c-format
msgid "Expected git repo version <= %d, found %d"
msgstr "Erwartete Git-Repository-Version <= %d, %d gefunden"
-#: setup.c:730
+#: setup.c:732
msgid "unknown repository extension found:"
msgid_plural "unknown repository extensions found:"
msgstr[0] "Unbekannte Repository-Erweiterung gefunden:"
msgstr[1] "Unbekannte Repository-Erweiterungen gefunden:"
-#: setup.c:744
+#: setup.c:746
msgid "repo version is 0, but v1-only extension found:"
msgid_plural "repo version is 0, but v1-only extensions found:"
msgstr[0] "Repository-Version ist 0, aber Erweiterung nur für v1 gefunden:"
msgstr[1] "Repository-Version ist 0, aber Erweiterungen nur für v1 gefunden:"
-#: setup.c:765
+#: setup.c:767
#, c-format
msgid "error opening '%s'"
msgstr "Fehler beim Öffnen von '%s'."
-#: setup.c:767
+#: setup.c:769
#, c-format
msgid "too large to be a .git file: '%s'"
msgstr "Zu groß, um eine .git-Datei zu sein: '%s'"
-#: setup.c:769
+#: setup.c:771
#, c-format
msgid "error reading %s"
msgstr "Fehler beim Lesen von '%s'."
-#: setup.c:771
+#: setup.c:773
#, c-format
msgid "invalid gitfile format: %s"
msgstr "Ungültiges gitfile-Format: %s"
-#: setup.c:773
+#: setup.c:775
#, c-format
msgid "no path in gitfile: %s"
msgstr "Kein Pfad in gitfile: %s"
-#: setup.c:775
+#: setup.c:777
#, c-format
msgid "not a git repository: %s"
msgstr "Kein Git-Repository: %s"
-#: setup.c:877
+#: setup.c:879
#, c-format
msgid "'$%s' too big"
msgstr "'$%s' zu groß"
-#: setup.c:891
+#: setup.c:893
#, c-format
msgid "not a git repository: '%s'"
msgstr "Kein Git-Repository: '%s'"
-#: setup.c:920 setup.c:922 setup.c:953
+#: setup.c:922 setup.c:924 setup.c:955
#, c-format
msgid "cannot chdir to '%s'"
msgstr "Kann nicht in Verzeichnis '%s' wechseln."
-#: setup.c:925 setup.c:981 setup.c:991 setup.c:1030 setup.c:1038
+#: setup.c:927 setup.c:983 setup.c:993 setup.c:1032 setup.c:1040
msgid "cannot come back to cwd"
msgstr "Kann nicht zum aktuellen Arbeitsverzeichnis zurückwechseln."
-#: setup.c:1052
+#: setup.c:1054
#, c-format
msgid "failed to stat '%*s%s%s'"
msgstr "Konnte '%*s%s%s' nicht lesen."
-#: setup.c:1295
+#: setup.c:1338
msgid "Unable to read current working directory"
msgstr "Konnte aktuelles Arbeitsverzeichnis nicht lesen."
-#: setup.c:1304 setup.c:1310
+#: setup.c:1347 setup.c:1353
#, c-format
msgid "cannot change to '%s'"
msgstr "Kann nicht nach '%s' wechseln."
-#: setup.c:1315
+#: setup.c:1358
#, 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:1321
+#: setup.c:1364
#, c-format
msgid ""
"not a git repository (or any parent up to mount point %s)\n"
@@ -8845,7 +9064,20 @@ msgstr ""
"%s)\n"
"Stoppe bei Dateisystemgrenze (GIT_DISCOVERY_ACROSS_FILESYSTEM nicht gesetzt)."
-#: setup.c:1446
+#: setup.c:1374
+#, c-format
+msgid ""
+"unsafe repository ('%s' is owned by someone else)\n"
+"To add an exception for this directory, call:\n"
+"\n"
+"\tgit config --global --add safe.directory %s"
+msgstr ""
+"unsicheres Repository ('%s' gehört jemand anderem)\n"
+"Um eine Ausnahme für dieses Repository hinzuzufügen, führen Sie aus:\n"
+"\n"
+"\tgit config --global --add safe.directory %s"
+
+#: setup.c:1502
#, c-format
msgid ""
"problem with core.sharedRepository filemode value (0%.3o).\n"
@@ -8854,57 +9086,61 @@ 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:1508
+#: setup.c:1564
msgid "fork failed"
msgstr "fork fehlgeschlagen"
-#: setup.c:1513
+#: setup.c:1569
msgid "setsid failed"
msgstr "setsid fehlgeschlagen"
-#: sparse-index.c:289
+#: sparse-index.c:285
#, c-format
msgid "index entry is a directory, but not sparse (%08x)"
msgstr "Index-Eintrag ist ein Verzeichnis, aber nicht partiell (%08x)"
+#: split-index.c:9
+msgid "cannot use split index with a sparse index"
+msgstr "kann aufgeteilten Index nicht mit einem Sparse-Index benutzen"
+
#. TRANSLATORS: IEC 80000-13:2008 gibibyte
-#: strbuf.c:850
+#: strbuf.c:851
#, c-format
msgid "%u.%2.2u GiB"
msgstr "%u.%2.2u GiB"
#. TRANSLATORS: IEC 80000-13:2008 gibibyte/second
-#: strbuf.c:852
+#: strbuf.c:853
#, c-format
msgid "%u.%2.2u GiB/s"
msgstr "%u.%2.2u GiB/s"
#. TRANSLATORS: IEC 80000-13:2008 mebibyte
-#: strbuf.c:860
+#: strbuf.c:861
#, c-format
msgid "%u.%2.2u MiB"
msgstr "%u.%2.2u MiB"
#. TRANSLATORS: IEC 80000-13:2008 mebibyte/second
-#: strbuf.c:862
+#: strbuf.c:863
#, c-format
msgid "%u.%2.2u MiB/s"
msgstr "%u.%2.2u MiB/s"
#. TRANSLATORS: IEC 80000-13:2008 kibibyte
-#: strbuf.c:869
+#: strbuf.c:870
#, c-format
msgid "%u.%2.2u KiB"
msgstr "%u.%2.2u KiB"
#. TRANSLATORS: IEC 80000-13:2008 kibibyte/second
-#: strbuf.c:871
+#: strbuf.c:872
#, c-format
msgid "%u.%2.2u KiB/s"
msgstr "%u.%2.2u KiB/s"
#. TRANSLATORS: IEC 80000-13:2008 byte
-#: strbuf.c:877
+#: strbuf.c:878
#, c-format
msgid "%u byte"
msgid_plural "%u bytes"
@@ -8912,86 +9148,86 @@ msgstr[0] "%u Byte"
msgstr[1] "%u Bytes"
#. TRANSLATORS: IEC 80000-13:2008 byte/second
-#: strbuf.c:879
+#: strbuf.c:880
#, c-format
msgid "%u byte/s"
msgid_plural "%u bytes/s"
msgstr[0] "%u Byte/s"
msgstr[1] "%u Bytes/s"
-#: strbuf.c:1186 wrapper.c:207 wrapper.c:377 builtin/am.c:765
-#: builtin/rebase.c:650
+#: strbuf.c:1187 wrapper.c:217 wrapper.c:387 builtin/am.c:766
+#: builtin/rebase.c:653
#, c-format
msgid "could not open '%s' for writing"
msgstr "Konnte '%s' nicht zum Schreiben öffnen."
-#: strbuf.c:1195
+#: strbuf.c:1196
#, c-format
msgid "could not edit '%s'"
msgstr "Konnte '%s' nicht editieren."
-#: submodule-config.c:237
+#: submodule-config.c:238
#, c-format
msgid "ignoring suspicious submodule name: %s"
msgstr "Ignoriere verdächtigen Submodulnamen: %s"
-#: submodule-config.c:304
+#: submodule-config.c:305
msgid "negative values not allowed for submodule.fetchjobs"
msgstr "Negative Werte für submodule.fetchjobs nicht erlaubt."
-#: submodule-config.c:402
+#: submodule-config.c:403
#, c-format
msgid "ignoring '%s' which may be interpreted as a command-line option: %s"
msgstr ""
"Ignoriere '%s', was als eine Befehlszeilenoption '%s' interpretiert werden "
"würde."
-#: submodule-config.c:499
+#: submodule-config.c:500 builtin/push.c:489 builtin/send-pack.c:148
#, c-format
-msgid "invalid value for %s"
-msgstr "Ungültiger Wert für %s"
+msgid "invalid value for '%s'"
+msgstr "ungültiger Wert für '%s'"
-#: submodule-config.c:767
+#: submodule-config.c:828
#, c-format
msgid "Could not update .gitmodules entry %s"
msgstr "Konnte Eintrag '%s' in .gitmodules nicht aktualisieren"
-#: submodule.c:114 submodule.c:143
+#: submodule.c:115 submodule.c:144
msgid "Cannot change unmerged .gitmodules, resolve merge conflicts first"
msgstr ""
"Kann nicht zusammengeführte .gitmodules-Datei nicht ändern, lösen\n"
"Sie zuerst die Konflikte auf"
-#: submodule.c:118 submodule.c:147
+#: submodule.c:119 submodule.c:148
#, c-format
msgid "Could not find section in .gitmodules where path=%s"
msgstr "Konnte keine Sektion in .gitmodules mit Pfad \"%s\" finden"
-#: submodule.c:154
+#: submodule.c:155
#, c-format
msgid "Could not remove .gitmodules entry for %s"
msgstr "Konnte Eintrag '%s' nicht aus .gitmodules entfernen"
-#: submodule.c:165
+#: submodule.c:166
msgid "staging updated .gitmodules failed"
msgstr "Konnte aktualisierte .gitmodules-Datei nicht zum Commit vormerken"
-#: submodule.c:358
+#: submodule.c:346
#, c-format
msgid "in unpopulated submodule '%s'"
msgstr "In nicht ausgechecktem Submodul '%s'."
-#: submodule.c:389
+#: submodule.c:377
#, c-format
msgid "Pathspec '%s' is in submodule '%.*s'"
msgstr "Pfadspezifikation '%s' befindet sich in Submodul '%.*s'"
-#: submodule.c:466
+#: submodule.c:454
#, c-format
msgid "bad --ignore-submodules argument: %s"
msgstr "ungültiges --ignore-submodules Argument: %s"
-#: submodule.c:844
+#: submodule.c:866
#, c-format
msgid ""
"Submodule in commit %s at path: '%s' collides with a submodule named the "
@@ -9000,12 +9236,12 @@ msgstr ""
"Submodul in Commit %s beim Pfad: '%s' hat den gleichen Namen wie ein "
"Submodul. Wird übersprungen."
-#: submodule.c:954
+#: submodule.c:987
#, c-format
msgid "submodule entry '%s' (%s) is a %s, not a commit"
msgstr "Submodul-Eintrag '%s' (%s) ist ein %s, kein Commit."
-#: submodule.c:1042
+#: submodule.c:1069
#, c-format
msgid ""
"Could not run 'git rev-list <commits> --not --remotes -n 1' command in "
@@ -9014,36 +9250,46 @@ msgstr ""
"Konnte 'git rev-list <Commits> --not --remotes -n 1' nicht in Submodul '%s' "
"ausführen."
-#: submodule.c:1165
+#: submodule.c:1192
#, c-format
msgid "process for submodule '%s' failed"
msgstr "Prozess für Submodul '%s' fehlgeschlagen"
-#: submodule.c:1194 builtin/branch.c:699 builtin/submodule--helper.c:2714
+#: submodule.c:1221 builtin/branch.c:714 builtin/submodule--helper.c:2827
msgid "Failed to resolve HEAD as a valid ref."
msgstr "Konnte HEAD nicht als gültige Referenz auflösen."
-#: submodule.c:1205
+#: submodule.c:1232
#, c-format
msgid "Pushing submodule '%s'\n"
msgstr "Pushe Submodul '%s'\n"
-#: submodule.c:1208
+#: submodule.c:1235
#, c-format
msgid "Unable to push submodule '%s'\n"
msgstr "Kann Push für Submodul '%s' nicht ausführen\n"
-#: submodule.c:1491
+#: submodule.c:1567
#, c-format
msgid "Fetching submodule %s%s\n"
msgstr "Anfordern des Submoduls %s%s\n"
-#: submodule.c:1525
+#: submodule.c:1589
#, c-format
msgid "Could not access submodule '%s'\n"
msgstr "Konnte nicht auf Submodul '%s' zugreifen\n"
-#: submodule.c:1680
+#: submodule.c:1618
+#, c-format
+msgid "Could not access submodule '%s' at commit %s\n"
+msgstr "Konnte nicht auf Submodul '%s' beim Commit %s zugreifen\n"
+
+#: submodule.c:1629
+#, c-format
+msgid "Fetching submodule %s%s at commit %s\n"
+msgstr "Anfordern des Submoduls %s%s beim Commit %s\n"
+
+#: submodule.c:1849
#, c-format
msgid ""
"Errors during submodule fetch:\n"
@@ -9052,62 +9298,62 @@ msgstr ""
"Fehler während des Anforderns der Submodule:\n"
"%s"
-#: submodule.c:1705
+#: submodule.c:1874
#, c-format
msgid "'%s' not recognized as a git repository"
msgstr "'%s' nicht als Git-Repository erkannt"
-#: submodule.c:1722
+#: submodule.c:1891
#, c-format
msgid "Could not run 'git status --porcelain=2' in submodule %s"
msgstr "Konnte 'git status --porcelain=2' nicht in Submodul %s ausführen"
-#: submodule.c:1763
+#: submodule.c:1932
#, c-format
msgid "'git status --porcelain=2' failed in submodule %s"
msgstr "'git status --porcelain=2' ist in Submodul %s fehlgeschlagen"
-#: submodule.c:1838
+#: submodule.c:2007
#, c-format
msgid "could not start 'git status' in submodule '%s'"
msgstr "Konnte 'git status' in Submodul '%s' nicht starten."
-#: submodule.c:1851
+#: submodule.c:2020
#, c-format
msgid "could not run 'git status' in submodule '%s'"
msgstr "Konnte 'git status' in Submodul '%s' nicht ausführen."
-#: submodule.c:1868
+#: submodule.c:2037
#, c-format
msgid "Could not unset core.worktree setting in submodule '%s'"
msgstr "Konnte core.worktree Einstellung in Submodul '%s' nicht aufheben."
-#: submodule.c:1895 submodule.c:2210
+#: submodule.c:2064 submodule.c:2379
#, c-format
msgid "could not recurse into submodule '%s'"
msgstr "Fehler bei Rekursion in Submodul-Pfad '%s'"
-#: submodule.c:1917
+#: submodule.c:2086
msgid "could not reset submodule index"
msgstr "konnte Index des Submoduls nicht zurücksetzen"
-#: submodule.c:1959
+#: submodule.c:2128
#, c-format
msgid "submodule '%s' has dirty index"
msgstr "Submodul '%s' hat einen geänderten Index."
-#: submodule.c:2013
+#: submodule.c:2182
#, c-format
msgid "Submodule '%s' could not be updated."
msgstr "Submodule '%s' konnte nicht aktualisiert werden."
-#: submodule.c:2081
+#: submodule.c:2250
#, c-format
msgid "submodule git dir '%s' is inside git dir '%.*s'"
msgstr ""
"Git-Verzeichnis des Submoduls '%s' ist im Git-Verzeichnis '%.*s' enthalten."
-#: submodule.c:2102
+#: submodule.c:2271
#, c-format
msgid ""
"relocate_gitdir for submodule '%s' with more than one worktree not supported"
@@ -9115,17 +9361,17 @@ msgstr ""
"relocate_gitdir für Submodul '%s' mit mehr als einem Arbeitsverzeichnis\n"
"wird nicht unterstützt"
-#: submodule.c:2114 submodule.c:2174
+#: submodule.c:2283 submodule.c:2343
#, c-format
msgid "could not lookup name for submodule '%s'"
msgstr "Konnte Name für Submodul '%s' nicht nachschlagen."
-#: submodule.c:2118
+#: submodule.c:2287
#, c-format
msgid "refusing to move '%s' into an existing git dir"
msgstr "Verschieben von '%s' in ein existierendes Git-Verzeichnis verweigert."
-#: submodule.c:2124
+#: submodule.c:2293
#, c-format
msgid ""
"Migrating git directory of '%s%s' from\n"
@@ -9136,11 +9382,11 @@ msgstr ""
"'%s' nach\n"
"'%s'\n"
-#: submodule.c:2255
+#: submodule.c:2424
msgid "could not start ls-files in .."
msgstr "Konnte 'ls-files' nicht in .. starten"
-#: submodule.c:2295
+#: submodule.c:2464
#, c-format
msgid "ls-tree returned unexpected return code %d"
msgstr "ls-tree mit unerwartetem Rückgabewert %d beendet"
@@ -9161,8 +9407,8 @@ msgstr "Ausführen des Anhang-Befehls '%s' fehlgeschlagen"
msgid "unknown value '%s' for key '%s'"
msgstr "unbekannter Wert '%s' für Schlüssel %s"
-#: trailer.c:547 trailer.c:552 trailer.c:557 builtin/remote.c:299
-#: builtin/remote.c:327
+#: trailer.c:547 trailer.c:552 trailer.c:557 builtin/remote.c:300
+#: builtin/remote.c:328
#, c-format
msgid "more than one %s"
msgstr "mehr als ein %s"
@@ -9177,11 +9423,11 @@ msgstr "leerer Anhang-Token in Anhang '%.*s'"
msgid "could not read input file '%s'"
msgstr "Konnte Eingabe-Datei '%s' nicht lesen"
-#: trailer.c:766 builtin/mktag.c:89 imap-send.c:1573
+#: trailer.c:766 builtin/mktag.c:88 imap-send.c:1563
msgid "could not read from stdin"
msgstr "konnte nicht von der Standard-Eingabe lesen"
-#: trailer.c:1024 wrapper.c:684
+#: trailer.c:1024 wrapper.c:760
#, c-format
msgid "could not stat %s"
msgstr "Konnte '%s' nicht lesen"
@@ -9251,7 +9497,7 @@ msgstr "konnte \"fast-import\" nicht ausführen"
msgid "error while running fast-import"
msgstr "Fehler beim Ausführen von 'fast-import'"
-#: transport-helper.c:549 transport-helper.c:1251
+#: transport-helper.c:549 transport-helper.c:1254
#, c-format
msgid "could not read ref %s"
msgstr "konnte Referenz %s nicht lesen"
@@ -9270,7 +9516,7 @@ msgstr ""
msgid "invalid remote service path"
msgstr "ungültiger Remote-Service Pfad."
-#: transport-helper.c:661 transport.c:1479
+#: transport-helper.c:661 transport.c:1496
msgid "operation not supported by protocol"
msgstr "die Operation wird von dem Protokoll nicht unterstützt"
@@ -9279,72 +9525,72 @@ msgstr "die Operation wird von dem Protokoll nicht unterstützt"
msgid "can't connect to subservice %s"
msgstr "kann keine Verbindung zu Subservice %s herstellen"
-#: transport-helper.c:693 transport.c:404
+#: transport-helper.c:693 transport.c:415
msgid "--negotiate-only requires protocol v2"
msgstr "--negotiate-only benötigt Protokoll v2"
-#: transport-helper.c:755
+#: transport-helper.c:758
msgid "'option' without a matching 'ok/error' directive"
msgstr "'option' ohne passende 'ok/error' Direktive"
-#: transport-helper.c:798
+#: transport-helper.c:801
#, c-format
msgid "expected ok/error, helper said '%s'"
msgstr "erwartete ok/error, Remote-Helper gab '%s' aus"
-#: transport-helper.c:859
+#: transport-helper.c:862
#, c-format
msgid "helper reported unexpected status of %s"
msgstr "Remote-Helper meldete unerwarteten Status von %s"
-#: transport-helper.c:942
+#: transport-helper.c:945
#, c-format
msgid "helper %s does not support dry-run"
msgstr "Remote-Helper %s unterstützt kein Trockenlauf"
-#: transport-helper.c:945
+#: transport-helper.c:948
#, c-format
msgid "helper %s does not support --signed"
msgstr "Remote-Helper %s unterstützt kein --signed"
-#: transport-helper.c:948
+#: transport-helper.c:951
#, c-format
msgid "helper %s does not support --signed=if-asked"
msgstr "Remote-Helper %s unterstützt kein --signed=if-asked"
-#: transport-helper.c:953
+#: transport-helper.c:956
#, c-format
msgid "helper %s does not support --atomic"
msgstr "Remote-Helper %s unterstützt kein --atomic"
-#: transport-helper.c:957
+#: transport-helper.c:960
#, c-format
msgid "helper %s does not support --%s"
msgstr "Remote-Helper %s unterstützt kein --%s"
-#: transport-helper.c:964
+#: transport-helper.c:967
#, c-format
msgid "helper %s does not support 'push-option'"
msgstr "Remote-Helper %s unterstützt nicht 'push-option'"
-#: transport-helper.c:1064
+#: transport-helper.c:1067
msgid "remote-helper doesn't support push; refspec needed"
msgstr "Remote-Helper unterstützt kein Push; Refspec benötigt"
-#: transport-helper.c:1069
+#: transport-helper.c:1072
#, c-format
msgid "helper %s does not support 'force'"
msgstr "Remote-Helper %s unterstützt kein 'force'."
-#: transport-helper.c:1116
+#: transport-helper.c:1119
msgid "couldn't run fast-export"
msgstr "Konnte \"fast-export\" nicht ausführen."
-#: transport-helper.c:1121
+#: transport-helper.c:1124
msgid "error while running fast-export"
msgstr "Fehler beim Ausführen von \"fast-export\"."
-#: transport-helper.c:1146
+#: transport-helper.c:1149
#, c-format
msgid ""
"No refs in common and none specified; doing nothing.\n"
@@ -9353,52 +9599,52 @@ msgstr ""
"Keine gemeinsamen Referenzen und nichts spezifiziert; keine Ausführung.\n"
"Vielleicht sollten Sie einen Branch angeben.\n"
-#: transport-helper.c:1228
+#: transport-helper.c:1231
#, c-format
msgid "unsupported object format '%s'"
msgstr "nicht unterstütztes Objekt-Format '%s'"
-#: transport-helper.c:1237
+#: transport-helper.c:1240
#, c-format
msgid "malformed response in ref list: %s"
msgstr "Ungültige Antwort in Referenzliste: %s"
-#: transport-helper.c:1389
+#: transport-helper.c:1392
#, c-format
msgid "read(%s) failed"
msgstr "Lesen von %s fehlgeschlagen."
-#: transport-helper.c:1416
+#: transport-helper.c:1419
#, c-format
msgid "write(%s) failed"
msgstr "Schreiben von %s fehlgeschlagen."
-#: transport-helper.c:1465
+#: transport-helper.c:1468
#, c-format
msgid "%s thread failed"
msgstr "Thread %s fehlgeschlagen."
-#: transport-helper.c:1469
+#: transport-helper.c:1472
#, c-format
msgid "%s thread failed to join: %s"
msgstr "Fehler beim Beitreten zu Thread %s: %s"
-#: transport-helper.c:1488 transport-helper.c:1492
+#: transport-helper.c:1491 transport-helper.c:1495
#, c-format
msgid "can't start thread for copying data: %s"
msgstr "Kann Thread zum Kopieren von Daten nicht starten: %s"
-#: transport-helper.c:1529
+#: transport-helper.c:1532
#, c-format
msgid "%s process failed to wait"
msgstr "Fehler beim Warten von Prozess %s."
-#: transport-helper.c:1533
+#: transport-helper.c:1536
#, c-format
msgid "%s process failed"
msgstr "Prozess %s fehlgeschlagen"
-#: transport-helper.c:1551 transport-helper.c:1560
+#: transport-helper.c:1554 transport-helper.c:1563
msgid "can't start thread for copying data"
msgstr "Kann Thread zum Kopieren von Daten nicht starten."
@@ -9407,51 +9653,51 @@ msgstr "Kann Thread zum Kopieren von Daten nicht starten."
msgid "Would set upstream of '%s' to '%s' of '%s'\n"
msgstr "Würde Upstream-Branch von '%s' zu '%s' von '%s' setzen\n"
-#: transport.c:145
+#: transport.c:138
#, c-format
msgid "could not read bundle '%s'"
msgstr "Konnte Paket '%s' nicht lesen."
-#: transport.c:227
+#: transport.c:234
#, c-format
msgid "transport: invalid depth option '%s'"
msgstr "transport: ungültige depth Option '%s'"
-#: transport.c:279
+#: transport.c:289
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:280
+#: transport.c:290
msgid "server options require protocol version 2 or later"
msgstr "Server-Optionen benötigen Protokoll-Version 2 oder höher"
-#: transport.c:407
+#: transport.c:418
msgid "server does not support wait-for-done"
msgstr "Server unterstützt nicht 'wait-for-done'"
-#: transport.c:759
+#: transport.c:770
msgid "could not parse transport.color.* config"
msgstr "Konnte transport.color.* Konfiguration nicht parsen."
-#: transport.c:834
+#: transport.c:845
msgid "support for protocol v2 not implemented yet"
msgstr "Unterstützung für Protokoll v2 noch nicht implementiert."
-#: transport.c:967
+#: transport.c:978
#, c-format
msgid "unknown value for config '%s': %s"
msgstr "Unbekannter Wert für Konfiguration '%s': %s"
-#: transport.c:1033
+#: transport.c:1044
#, c-format
msgid "transport '%s' not allowed"
msgstr "Ãœbertragungsart '%s' nicht erlaubt."
-#: transport.c:1082
+#: transport.c:1093
msgid "git-over-rsync is no longer supported"
msgstr "git-over-rsync wird nicht länger unterstützt."
-#: transport.c:1185
+#: transport.c:1196
#, c-format
msgid ""
"The following submodule paths contain changes that can\n"
@@ -9460,7 +9706,7 @@ msgstr ""
"Die folgenden Submodul-Pfade enthalten Änderungen, die in keinem\n"
"Remote-Repository gefunden wurden:\n"
-#: transport.c:1189
+#: transport.c:1200
#, c-format
msgid ""
"\n"
@@ -9487,11 +9733,11 @@ msgstr ""
"zum Versenden zu einem Remote-Repository.\n"
"\n"
-#: transport.c:1197
+#: transport.c:1208
msgid "Aborting."
msgstr "Abbruch."
-#: transport.c:1343
+#: transport.c:1354
msgid "failed to push all needed submodules"
msgstr "Fehler beim Versand aller erforderlichen Submodule."
@@ -9790,17 +10036,17 @@ msgstr ""
"auf einem case-insensitiven Dateisystem) und nur einer von der\n"
"selben Kollissionsgruppe ist im Arbeitsverzeichnis:\n"
-#: unpack-trees.c:1636
+#: unpack-trees.c:1664
msgid "Updating index flags"
msgstr "Aktualisiere Index-Markierungen"
-#: unpack-trees.c:2803
+#: unpack-trees.c:2925
#, c-format
msgid "worktree and untracked commit have duplicate entries: %s"
msgstr ""
"Arbeitsverzeichnis und unversionierter Commit haben doppelte Einträge: %s"
-#: upload-pack.c:1565
+#: upload-pack.c:1579
msgid "expected flush after fetch arguments"
msgstr "erwartete Flush nach Abrufen der Argumente"
@@ -9837,124 +10083,138 @@ msgstr "ungültiges '..' Pfadsegment"
msgid "Fetching objects"
msgstr "Anfordern der Objekte"
-#: worktree.c:238 builtin/am.c:2209 builtin/bisect--helper.c:156
+#: worktree.c:237 builtin/am.c:2210 builtin/bisect--helper.c:156
#, c-format
msgid "failed to read '%s'"
msgstr "Fehler beim Lesen von '%s'"
-#: worktree.c:305
+#: worktree.c:304
#, c-format
msgid "'%s' at main working tree is not the repository directory"
msgstr "'%s' im Hauptarbeitsverzeichnis ist nicht das Repository-Verzeichnis."
-#: worktree.c:316
+#: worktree.c:315
#, 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:328
+#: worktree.c:327
#, c-format
msgid "'%s' does not exist"
msgstr "'%s' existiert nicht."
-#: worktree.c:334
+#: worktree.c:333
#, c-format
msgid "'%s' is not a .git file, error code %d"
msgstr "'%s' ist keine .git-Datei, Fehlercode %d"
-#: worktree.c:343
+#: worktree.c:342
#, c-format
msgid "'%s' does not point back to '%s'"
msgstr "'%s' zeigt nicht zurück auf '%s'"
-#: worktree.c:604
+#: worktree.c:600
msgid "not a directory"
msgstr "kein Verzeichnis"
-#: worktree.c:613
+#: worktree.c:609
msgid ".git is not a file"
msgstr ".git ist keine Datei"
-#: worktree.c:615
+#: worktree.c:611
msgid ".git file broken"
msgstr ".git-Datei kaputt"
-#: worktree.c:617
+#: worktree.c:613
msgid ".git file incorrect"
msgstr ".git-Datei fehlerhaft"
-#: worktree.c:723
+#: worktree.c:719
msgid "not a valid path"
msgstr "kein gültiger Pfad"
-#: worktree.c:729
+#: worktree.c:725
msgid "unable to locate repository; .git is not a file"
msgstr "konnte Repository nicht finden; .git ist keine Datei"
-#: worktree.c:733
+#: worktree.c:729
msgid "unable to locate repository; .git file does not reference a repository"
msgstr ""
"konnte Repository nicht finden; .git-Datei referenziert kein Repository"
-#: worktree.c:737
+#: worktree.c:733
msgid "unable to locate repository; .git file broken"
msgstr "Konnte Repository nicht finden; .git-Datei ist kaputt"
-#: worktree.c:743
+#: worktree.c:739
msgid "gitdir unreadable"
msgstr "gitdir nicht lesbar"
-#: worktree.c:747
+#: worktree.c:743
msgid "gitdir incorrect"
msgstr "gitdir fehlerhaft"
-#: worktree.c:772
+#: worktree.c:768
msgid "not a valid directory"
msgstr "kein gültiges Verzeichnis"
-#: worktree.c:778
+#: worktree.c:774
msgid "gitdir file does not exist"
msgstr "gitdir-Datei existiert nicht"
-#: worktree.c:783 worktree.c:792
+#: worktree.c:779 worktree.c:788
#, c-format
msgid "unable to read gitdir file (%s)"
msgstr "konnte gitdir-Datei nicht lesen (%s)"
-#: worktree.c:802
+#: worktree.c:798
#, c-format
msgid "short read (expected %<PRIuMAX> bytes, read %<PRIuMAX>)"
msgstr "read() zu kurz (%<PRIuMAX> Bytes erwartet, %<PRIuMAX> gelesen)"
-#: worktree.c:810
+#: worktree.c:806
msgid "invalid gitdir file"
msgstr "ungültige gitdir-Datei"
-#: worktree.c:818
+#: worktree.c:814
msgid "gitdir file points to non-existent location"
msgstr "gitdir-Datei verweist auf nicht existierenden Ort"
-#: wrapper.c:151
+#: worktree.c:830
+#, c-format
+msgid "unable to set %s in '%s'"
+msgstr "konnte %s nicht in '%s' setzen"
+
+#: worktree.c:832
+#, c-format
+msgid "unable to unset %s in '%s'"
+msgstr "konnte %s nicht in '%s' aufheben"
+
+#: worktree.c:852
+msgid "failed to set extensions.worktreeConfig setting"
+msgstr "Einstellung für extensions.worktreeConfig konnte nicht gesetzt werden"
+
+#: wrapper.c:161
#, c-format
msgid "could not setenv '%s'"
msgstr "konnte '%s' nicht setzen"
-#: wrapper.c:203
+#: wrapper.c:213
#, c-format
msgid "unable to create '%s'"
msgstr "konnte '%s' nicht erstellen"
-#: wrapper.c:205 wrapper.c:375
+#: wrapper.c:215 wrapper.c:385
#, c-format
msgid "could not open '%s' for reading and writing"
msgstr "konnte '%s' nicht zum Lesen und Schreiben öffnen"
-#: wrapper.c:406 wrapper.c:607
+#: wrapper.c:416 wrapper.c:683
#, c-format
msgid "unable to access '%s'"
msgstr "konnte nicht auf '%s' zugreifen"
-#: wrapper.c:615
+#: wrapper.c:691
msgid "unable to get current working directory"
msgstr "konnte aktuelles Arbeitsverzeichnis nicht bekommen"
@@ -9997,11 +10257,11 @@ msgid " (use \"git rm <file>...\" to mark resolution)"
msgstr ""
" (benutzen Sie \"git add/rm <Datei>...\", um die Auflösung zu markieren)"
-#: wt-status.c:211 wt-status.c:1131
+#: wt-status.c:211 wt-status.c:1140
msgid "Changes to be committed:"
msgstr "Zum Commit vorgemerkte Änderungen:"
-#: wt-status.c:234 wt-status.c:1140
+#: wt-status.c:234 wt-status.c:1149
msgid "Changes not staged for commit:"
msgstr "Änderungen, die nicht zum Commit vorgemerkt sind:"
@@ -10109,22 +10369,22 @@ msgstr "geänderter Inhalt, "
msgid "untracked content, "
msgstr "unversionierter Inhalt, "
-#: wt-status.c:964
+#: wt-status.c:973
#, c-format
msgid "Your stash currently has %d entry"
msgid_plural "Your stash currently has %d entries"
msgstr[0] "Ihr Stash hat gerade %d Eintrag"
msgstr[1] "Ihr Stash hat gerade %d Einträge"
-#: wt-status.c:995
+#: wt-status.c:1004
msgid "Submodules changed but not updated:"
msgstr "Submodule geändert, aber nicht aktualisiert:"
-#: wt-status.c:997
+#: wt-status.c:1006
msgid "Submodule changes to be committed:"
msgstr "Änderungen in Submodul zum Committen:"
-#: wt-status.c:1079
+#: wt-status.c:1088
msgid ""
"Do not modify or remove the line above.\n"
"Everything below it will be ignored."
@@ -10132,7 +10392,7 @@ msgstr ""
"Ändern oder entfernen Sie nicht die obige Zeile.\n"
"Alles unterhalb von ihr wird ignoriert."
-#: wt-status.c:1171
+#: wt-status.c:1180
#, c-format
msgid ""
"\n"
@@ -10144,121 +10404,121 @@ msgstr ""
"berechnen.\n"
"Sie können '--no-ahead-behind' benutzen, um das zu verhindern.\n"
-#: wt-status.c:1201
+#: wt-status.c:1210
msgid "You have unmerged paths."
msgstr "Sie haben nicht zusammengeführte Pfade."
-#: wt-status.c:1204
+#: wt-status.c:1213
msgid " (fix conflicts and run \"git commit\")"
msgstr " (beheben Sie die Konflikte und führen Sie \"git commit\" aus)"
-#: wt-status.c:1206
+#: wt-status.c:1215
msgid " (use \"git merge --abort\" to abort the merge)"
msgstr " (benutzen Sie \"git merge --abort\", um den Merge abzubrechen)"
-#: wt-status.c:1210
+#: wt-status.c:1219
msgid "All conflicts fixed but you are still merging."
msgstr "Alle Konflikte sind behoben, aber Sie sind immer noch beim Merge."
-#: wt-status.c:1213
+#: wt-status.c:1222
msgid " (use \"git commit\" to conclude merge)"
msgstr " (benutzen Sie \"git commit\", um den Merge abzuschließen)"
-#: wt-status.c:1224
+#: wt-status.c:1233
msgid "You are in the middle of an am session."
msgstr "Eine \"am\"-Sitzung ist im Gange."
-#: wt-status.c:1227
+#: wt-status.c:1236
msgid "The current patch is empty."
msgstr "Der aktuelle Patch ist leer."
-#: wt-status.c:1232
+#: wt-status.c:1241
msgid " (fix conflicts and then run \"git am --continue\")"
msgstr ""
" (beheben Sie die Konflikte und führen Sie dann \"git am --continue\" aus)"
-#: wt-status.c:1234
+#: wt-status.c:1243
msgid " (use \"git am --skip\" to skip this patch)"
msgstr " (benutzen Sie \"git am --skip\", um diesen Patch auszulassen)"
-#: wt-status.c:1237
+#: wt-status.c:1246
msgid ""
" (use \"git am --allow-empty\" to record this patch as an empty commit)"
msgstr ""
" (benutzen Sie \"git am --allow-empty\", um den aktuellen Patch als leeren "
"Commit zu speichern)"
-#: wt-status.c:1239
+#: wt-status.c:1248
msgid " (use \"git am --abort\" to restore the original branch)"
msgstr ""
" (benutzen Sie \"git am --abort\", um den ursprünglichen Branch "
"wiederherzustellen)"
-#: wt-status.c:1372
+#: wt-status.c:1381
msgid "git-rebase-todo is missing."
msgstr "git-rebase-todo fehlt."
-#: wt-status.c:1374
+#: wt-status.c:1383
msgid "No commands done."
msgstr "Keine Befehle ausgeführt."
-#: wt-status.c:1377
+#: wt-status.c:1386
#, c-format
-msgid "Last command done (%d command done):"
-msgid_plural "Last commands done (%d commands done):"
-msgstr[0] "Zuletzt ausgeführter Befehl (%d Befehl ausgeführt):"
-msgstr[1] "Zuletzt ausgeführte Befehle (%d Befehle ausgeführt):"
+msgid "Last command done (%<PRIuMAX> command done):"
+msgid_plural "Last commands done (%<PRIuMAX> commands done):"
+msgstr[0] "Letzter Befehl erledigt (%<PRIuMAX> Befehl erledigt):"
+msgstr[1] "Letzte Befehle erledigt (%<PRIuMAX> Befehle erledigt):"
-#: wt-status.c:1388
+#: wt-status.c:1397
#, c-format
msgid " (see more in file %s)"
msgstr " (mehr Informationen in Datei %s)"
-#: wt-status.c:1393
+#: wt-status.c:1402
msgid "No commands remaining."
msgstr "Keine Befehle verbleibend."
-#: wt-status.c:1396
+#: wt-status.c:1405
#, c-format
-msgid "Next command to do (%d remaining command):"
-msgid_plural "Next commands to do (%d remaining commands):"
-msgstr[0] "Nächster auszuführender Befehl (%d Befehle verbleibend):"
-msgstr[1] "Nächste auszuführende Befehle (%d Befehle verbleibend):"
+msgid "Next command to do (%<PRIuMAX> remaining command):"
+msgid_plural "Next commands to do (%<PRIuMAX> remaining commands):"
+msgstr[0] "Nächster auszuführender Befehl (%<PRIuMAX> Befehle verbleibend):"
+msgstr[1] "Nächste auszuführende Befehle (%<PRIuMAX> Befehle verbleibend):"
-#: wt-status.c:1404
+#: wt-status.c:1413
msgid " (use \"git rebase --edit-todo\" to view and edit)"
msgstr " (benutzen Sie \"git rebase --edit-todo\" zum Ansehen und Bearbeiten)"
-#: wt-status.c:1416
+#: wt-status.c:1425
#, c-format
msgid "You are currently rebasing branch '%s' on '%s'."
msgstr "Sie sind gerade beim Rebase von Branch '%s' auf '%s'."
-#: wt-status.c:1421
+#: wt-status.c:1430
msgid "You are currently rebasing."
msgstr "Sie sind gerade beim Rebase."
-#: wt-status.c:1434
+#: wt-status.c:1443
msgid " (fix conflicts and then run \"git rebase --continue\")"
msgstr ""
" (beheben Sie die Konflikte und führen Sie dann \"git rebase --continue\" "
"aus)"
-#: wt-status.c:1436
+#: wt-status.c:1445
msgid " (use \"git rebase --skip\" to skip this patch)"
msgstr " (benutzen Sie \"git rebase --skip\", um diesen Patch auszulassen)"
-#: wt-status.c:1438
+#: wt-status.c:1447
msgid " (use \"git rebase --abort\" to check out the original branch)"
msgstr ""
" (benutzen Sie \"git rebase --abort\", um den ursprünglichen Branch "
"auszuchecken)"
-#: wt-status.c:1445
+#: wt-status.c:1454
msgid " (all conflicts fixed: run \"git rebase --continue\")"
msgstr " (alle Konflikte behoben: führen Sie \"git rebase --continue\" aus)"
-#: wt-status.c:1449
+#: wt-status.c:1458
#, c-format
msgid ""
"You are currently splitting a commit while rebasing branch '%s' on '%s'."
@@ -10266,174 +10526,174 @@ msgstr ""
"Sie teilen gerade einen Commit auf, während ein Rebase von Branch '%s' auf "
"'%s' im Gange ist."
-#: wt-status.c:1454
+#: wt-status.c:1463
msgid "You are currently splitting a commit during a rebase."
msgstr "Sie teilen gerade einen Commit während eines Rebase auf."
-#: wt-status.c:1457
+#: wt-status.c:1466
msgid " (Once your working directory is clean, run \"git rebase --continue\")"
msgstr ""
" (Sobald Ihr Arbeitsverzeichnis unverändert ist, führen Sie \"git rebase --"
"continue\" aus)"
-#: wt-status.c:1461
+#: wt-status.c:1470
#, c-format
msgid "You are currently editing a commit while rebasing branch '%s' on '%s'."
msgstr ""
"Sie editieren gerade einen Commit während eines Rebase von Branch '%s' auf "
"'%s'."
-#: wt-status.c:1466
+#: wt-status.c:1475
msgid "You are currently editing a commit during a rebase."
msgstr "Sie editieren gerade einen Commit während eines Rebase."
-#: wt-status.c:1469
+#: wt-status.c:1478
msgid " (use \"git commit --amend\" to amend the current commit)"
msgstr ""
" (benutzen Sie \"git commit --amend\", um den aktuellen Commit "
"nachzubessern)"
-#: wt-status.c:1471
+#: wt-status.c:1480
msgid ""
" (use \"git rebase --continue\" once you are satisfied with your changes)"
msgstr ""
" (benutzen Sie \"git rebase --continue\" sobald Ihre Änderungen "
"abgeschlossen sind)"
-#: wt-status.c:1482
+#: wt-status.c:1491
msgid "Cherry-pick currently in progress."
msgstr "Cherry-pick zurzeit im Gange."
-#: wt-status.c:1485
+#: wt-status.c:1494
#, c-format
msgid "You are currently cherry-picking commit %s."
msgstr "Sie führen gerade \"cherry-pick\" von Commit %s aus."
-#: wt-status.c:1492
+#: wt-status.c:1501
msgid " (fix conflicts and run \"git cherry-pick --continue\")"
msgstr ""
" (beheben Sie die Konflikte und führen Sie dann \"git cherry-pick --continue"
"\" aus)"
-#: wt-status.c:1495
+#: wt-status.c:1504
msgid " (run \"git cherry-pick --continue\" to continue)"
msgstr " (Führen Sie \"git cherry-pick --continue\" aus, um weiterzumachen)"
-#: wt-status.c:1498
+#: wt-status.c:1507
msgid " (all conflicts fixed: run \"git cherry-pick --continue\")"
msgstr ""
" (alle Konflikte behoben: führen Sie \"git cherry-pick --continue\" aus)"
-#: wt-status.c:1500
+#: wt-status.c:1509
msgid " (use \"git cherry-pick --skip\" to skip this patch)"
msgstr ""
" (benutzen Sie \"git cherry-pick --skip\", um diesen Patch auszulassen)"
-#: wt-status.c:1502
+#: wt-status.c:1511
msgid " (use \"git cherry-pick --abort\" to cancel the cherry-pick operation)"
msgstr ""
" (benutzen Sie \"git cherry-pick --abort\", um die Cherry-Pick-Operation "
"abzubrechen)"
-#: wt-status.c:1512
+#: wt-status.c:1521
msgid "Revert currently in progress."
msgstr "Revert zurzeit im Gange."
-#: wt-status.c:1515
+#: wt-status.c:1524
#, c-format
msgid "You are currently reverting commit %s."
msgstr "Sie sind gerade beim Revert von Commit '%s'."
-#: wt-status.c:1521
+#: wt-status.c:1530
msgid " (fix conflicts and run \"git revert --continue\")"
msgstr ""
" (beheben Sie die Konflikte und führen Sie dann \"git revert --continue\" "
"aus)"
-#: wt-status.c:1524
+#: wt-status.c:1533
msgid " (run \"git revert --continue\" to continue)"
msgstr " (Führen Sie \"git revert --continue\", um weiterzumachen)"
-#: wt-status.c:1527
+#: wt-status.c:1536
msgid " (all conflicts fixed: run \"git revert --continue\")"
msgstr " (alle Konflikte behoben: führen Sie \"git revert --continue\" aus)"
-#: wt-status.c:1529
+#: wt-status.c:1538
msgid " (use \"git revert --skip\" to skip this patch)"
msgstr " (benutzen Sie \"git revert --skip\", um diesen Patch auszulassen)"
-#: wt-status.c:1531
+#: wt-status.c:1540
msgid " (use \"git revert --abort\" to cancel the revert operation)"
msgstr ""
" (benutzen Sie \"git revert --abort\", um die Revert-Operation abzubrechen)"
-#: wt-status.c:1541
+#: wt-status.c:1550
#, c-format
msgid "You are currently bisecting, started from branch '%s'."
msgstr "Sie sind gerade bei einer binären Suche, gestartet von Branch '%s'."
-#: wt-status.c:1545
+#: wt-status.c:1554
msgid "You are currently bisecting."
msgstr "Sie sind gerade bei einer binären Suche."
-#: wt-status.c:1548
+#: wt-status.c:1557
msgid " (use \"git bisect reset\" to get back to the original branch)"
msgstr ""
" (benutzen Sie \"git bisect reset\", um zum ursprünglichen Branch "
"zurückzukehren)"
-#: wt-status.c:1559
+#: wt-status.c:1568
msgid "You are in a sparse checkout."
msgstr "Sie befinden sich in einem partiellen Checkout."
-#: wt-status.c:1562
+#: wt-status.c:1571
#, 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:1806
+#: wt-status.c:1815
msgid "On branch "
msgstr "Auf Branch "
-#: wt-status.c:1813
+#: wt-status.c:1822
msgid "interactive rebase in progress; onto "
msgstr "interaktives Rebase im Gange; auf "
-#: wt-status.c:1815
+#: wt-status.c:1824
msgid "rebase in progress; onto "
msgstr "Rebase im Gange; auf "
-#: wt-status.c:1820
+#: wt-status.c:1829
msgid "HEAD detached at "
msgstr "HEAD losgelöst bei "
-#: wt-status.c:1822
+#: wt-status.c:1831
msgid "HEAD detached from "
msgstr "HEAD losgelöst von "
-#: wt-status.c:1825
+#: wt-status.c:1834
msgid "Not currently on any branch."
msgstr "Im Moment auf keinem Branch."
-#: wt-status.c:1842
+#: wt-status.c:1851
msgid "Initial commit"
msgstr "Initialer Commit"
-#: wt-status.c:1843
+#: wt-status.c:1852
msgid "No commits yet"
msgstr "Noch keine Commits"
-#: wt-status.c:1857
+#: wt-status.c:1866
msgid "Untracked files"
msgstr "Unversionierte Dateien"
-#: wt-status.c:1859
+#: wt-status.c:1868
msgid "Ignored files"
msgstr "Ignorierte Dateien"
-#: wt-status.c:1863
+#: wt-status.c:1872
#, c-format
msgid ""
"It took %.2f seconds to enumerate untracked files. 'status -uno'\n"
@@ -10444,32 +10704,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:1869
+#: wt-status.c:1878
#, c-format
msgid "Untracked files not listed%s"
msgstr "Unversionierte Dateien nicht aufgelistet%s"
-#: wt-status.c:1871
+#: wt-status.c:1880
msgid " (use -u option to show untracked files)"
msgstr " (benutzen Sie die Option -u, um unversionierte Dateien anzuzeigen)"
-#: wt-status.c:1877
+#: wt-status.c:1886
msgid "No changes"
msgstr "Keine Änderungen"
-#: wt-status.c:1882
+#: wt-status.c:1891
#, 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:1886
+#: wt-status.c:1895
#, c-format
msgid "no changes added to commit\n"
msgstr "keine Änderungen zum Commit vorgemerkt\n"
-#: wt-status.c:1890
+#: wt-status.c:1899
#, c-format
msgid ""
"nothing added to commit but untracked files present (use \"git add\" to "
@@ -10478,67 +10738,67 @@ msgstr ""
"nichts zum Commit vorgemerkt, aber es gibt unversionierte Dateien\n"
"(benutzen Sie \"git add\" zum Versionieren)\n"
-#: wt-status.c:1894
+#: wt-status.c:1903
#, 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:1898
+#: wt-status.c:1907
#, 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:1902 wt-status.c:1908
+#: wt-status.c:1911 wt-status.c:1917
#, c-format
msgid "nothing to commit\n"
msgstr "nichts zu committen\n"
-#: wt-status.c:1905
+#: wt-status.c:1914
#, 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:1910
+#: wt-status.c:1919
#, c-format
msgid "nothing to commit, working tree clean\n"
msgstr "nichts zu committen, Arbeitsverzeichnis unverändert\n"
-#: wt-status.c:2015
+#: wt-status.c:2024
msgid "No commits yet on "
msgstr "Noch keine Commits in "
-#: wt-status.c:2019
+#: wt-status.c:2028
msgid "HEAD (no branch)"
msgstr "HEAD (kein Branch)"
-#: wt-status.c:2050
+#: wt-status.c:2059
msgid "different"
msgstr "unterschiedlich"
-#: wt-status.c:2052 wt-status.c:2060
+#: wt-status.c:2061 wt-status.c:2069
msgid "behind "
msgstr "hinterher "
-#: wt-status.c:2055 wt-status.c:2058
+#: wt-status.c:2064 wt-status.c:2067
msgid "ahead "
msgstr "voraus "
#. TRANSLATORS: the action is e.g. "pull with rebase"
-#: wt-status.c:2596
+#: wt-status.c:2605
#, 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:2602
+#: wt-status.c:2611
msgid "additionally, your index contains uncommitted changes."
msgstr "Zusätzlich enthält die Staging-Area nicht committete Änderungen."
-#: wt-status.c:2604
+#: wt-status.c:2613
#, c-format
msgid "cannot %s: Your index contains uncommitted changes."
msgstr ""
@@ -10562,155 +10822,159 @@ msgstr "konnte accept_thread nicht für '%s' starten"
msgid "could not start worker[0] for '%s'"
msgstr "konnte worker[0] nicht für '%s' starten"
-#: compat/precompose_utf8.c:58 builtin/clone.c:347
+#: compat/precompose_utf8.c:58 builtin/clone.c:353
#, c-format
msgid "failed to unlink '%s'"
msgstr "Konnte '%s' nicht entfernen."
+#: compat/fsmonitor/fsm-listen-darwin.c:355
+msgid "Unable to create FSEventStream."
+msgstr "Konnte FSEventStream nicht erstellen."
+
+#: compat/fsmonitor/fsm-listen-darwin.c:403
+msgid "Failed to start the FSEventStream"
+msgstr "Konnte FSEventStream nicht starten."
+
#: builtin/add.c:26
msgid "git add [<options>] [--] <pathspec>..."
msgstr "git add [<Optionen>] [--] <Pfadspezifikation>..."
-#: builtin/add.c:64
+#: builtin/add.c:63
#, c-format
msgid "cannot chmod %cx '%s'"
msgstr "kann chmod %cx '%s' nicht ausführen"
-#: builtin/add.c:106
+#: builtin/add.c:105
#, c-format
msgid "unexpected diff status %c"
msgstr "unerwarteter Differenz-Status %c"
-#: builtin/add.c:111 builtin/commit.c:298
+#: builtin/add.c:110 builtin/commit.c:299
msgid "updating files failed"
msgstr "Aktualisierung der Dateien fehlgeschlagen"
-#: builtin/add.c:121
+#: builtin/add.c:120
#, c-format
msgid "remove '%s'\n"
msgstr "lösche '%s'\n"
-#: builtin/add.c:205
+#: builtin/add.c:204
msgid "Unstaged changes after refreshing the index:"
msgstr ""
"Nicht zum Commit vorgemerkte Änderungen nach Aktualisierung der Staging-Area:"
-#: builtin/add.c:313 builtin/rev-parse.c:993
+#: builtin/add.c:312 builtin/rev-parse.c:993
msgid "Could not read the index"
msgstr "Konnte den Index nicht lesen"
-#: builtin/add.c:326
+#: builtin/add.c:325
msgid "Could not write patch"
msgstr "Konnte Patch nicht schreiben"
-#: builtin/add.c:329
+#: builtin/add.c:328
msgid "editing patch failed"
msgstr "Bearbeitung des Patches fehlgeschlagen"
-#: builtin/add.c:332
+#: builtin/add.c:331
#, c-format
msgid "Could not stat '%s'"
msgstr "Konnte Verzeichnis '%s' nicht lesen"
-#: builtin/add.c:334
+#: builtin/add.c:333
msgid "Empty patch. Aborted."
msgstr "Leerer Patch. Abgebrochen."
-#: builtin/add.c:340
+#: builtin/add.c:339
#, c-format
msgid "Could not apply '%s'"
msgstr "Konnte '%s' nicht anwenden."
-#: builtin/add.c:348
+#: builtin/add.c:347
msgid "The following paths are ignored by one of your .gitignore files:\n"
msgstr ""
"Die folgenden Pfade werden durch eine Ihrer \".gitignore\" Dateien "
"ignoriert:\n"
-#: builtin/add.c:368 builtin/clean.c:927 builtin/fetch.c:174 builtin/mv.c:124
+#: builtin/add.c:367 builtin/clean.c:927 builtin/fetch.c:175 builtin/mv.c:124
#: builtin/prune-packed.c:14 builtin/pull.c:208 builtin/push.c:550
-#: builtin/remote.c:1429 builtin/rm.c:244 builtin/send-pack.c:194
+#: builtin/remote.c:1454 builtin/rm.c:244 builtin/send-pack.c:194
msgid "dry run"
msgstr "Probelauf"
-#: builtin/add.c:369 builtin/check-ignore.c:22 builtin/commit.c:1484
-#: builtin/count-objects.c:98 builtin/fsck.c:789 builtin/log.c:2313
+#: builtin/add.c:368 builtin/check-ignore.c:22 builtin/commit.c:1483
+#: builtin/count-objects.c:98 builtin/fsck.c:789 builtin/log.c:2338
#: builtin/mv.c:123 builtin/read-tree.c:120
msgid "be verbose"
msgstr "erweiterte Ausgaben"
-#: builtin/add.c:371
+#: builtin/add.c:370
msgid "interactive picking"
msgstr "interaktives Auswählen"
-#: builtin/add.c:372 builtin/checkout.c:1581 builtin/reset.c:409
+#: builtin/add.c:371 builtin/checkout.c:1599 builtin/reset.c:417
msgid "select hunks interactively"
msgstr "Blöcke interaktiv auswählen"
-#: builtin/add.c:373
+#: builtin/add.c:372
msgid "edit current diff and apply"
msgstr "aktuelle Unterschiede editieren und anwenden"
-#: builtin/add.c:374
+#: builtin/add.c:373
msgid "allow adding otherwise ignored files"
msgstr "das Hinzufügen andernfalls ignorierter Dateien erlauben"
-#: builtin/add.c:375
+#: builtin/add.c:374
msgid "update tracked files"
msgstr "versionierte Dateien aktualisieren"
-#: builtin/add.c:376
+#: builtin/add.c:375
msgid "renormalize EOL of tracked files (implies -u)"
msgstr ""
"erneutes Normalisieren der Zeilenenden von versionierten Dateien (impliziert "
"-u)"
-#: builtin/add.c:377
+#: builtin/add.c:376
msgid "record only the fact that the path will be added later"
msgstr "nur speichern, dass der Pfad später hinzugefügt werden soll"
-#: builtin/add.c:378
+#: builtin/add.c:377
msgid "add changes from all tracked and untracked files"
msgstr ""
"Änderungen von allen versionierten und unversionierten Dateien hinzufügen"
-#: builtin/add.c:381
+#: builtin/add.c:380
msgid "ignore paths removed in the working tree (same as --no-all)"
msgstr "gelöschte Pfade im Arbeitsverzeichnis ignorieren (genau wie --no-all)"
-#: builtin/add.c:383
+#: builtin/add.c:382
msgid "don't add, only refresh the index"
msgstr "nichts hinzufügen, nur den Index aktualisieren"
-#: builtin/add.c:384
+#: builtin/add.c:383
msgid "just skip files which cannot be added because of errors"
msgstr ""
"Dateien überspringen, die aufgrund von Fehlern nicht hinzugefügt werden "
"konnten"
-#: builtin/add.c:385
+#: builtin/add.c:384
msgid "check if - even missing - files are ignored in dry run"
msgstr "prüfen ob - auch fehlende - Dateien im Probelauf ignoriert werden"
-#: builtin/add.c:386 builtin/mv.c:128 builtin/rm.c:251
+#: builtin/add.c:385 builtin/mv.c:128 builtin/rm.c:251
msgid "allow updating entries outside of the sparse-checkout cone"
msgstr ""
"erlaube das Aktualisieren von Einträgen außerhalb des partiellen Checkouts "
"im Cone-Modus"
-#: builtin/add.c:388 builtin/update-index.c:1004
+#: builtin/add.c:387 builtin/update-index.c:1023
msgid "override the executable bit of the listed files"
msgstr "das \"ausführbar\"-Bit der aufgelisteten Dateien überschreiben"
-#: builtin/add.c:390
+#: builtin/add.c:389
msgid "warn when adding an embedded repository"
msgstr "warnen wenn eingebettetes Repository hinzugefügt wird"
-#: builtin/add.c:392
-msgid "backend for `git stash -p`"
-msgstr "Backend für `git stash -p`"
-
-#: builtin/add.c:410
+#: builtin/add.c:407
#, c-format
msgid ""
"You've added another git repository inside your current repository.\n"
@@ -10744,12 +11008,12 @@ msgstr ""
"\n"
"Siehe \"git help submodule\" für weitere Informationen."
-#: builtin/add.c:439
+#: builtin/add.c:436
#, c-format
msgid "adding embedded git repository: %s"
msgstr "Füge eingebettetes Repository hinzu: %s"
-#: builtin/add.c:459
+#: builtin/add.c:456
msgid ""
"Use -f if you really want to add them.\n"
"Turn this message off by running\n"
@@ -10759,28 +11023,28 @@ msgstr ""
"Um diese Meldung abzuschalten, führen Sie folgenden Befehl aus:\n"
"\"git config advice.addIgnoredFile false\""
-#: builtin/add.c:474
+#: builtin/add.c:471
msgid "adding files failed"
msgstr "Hinzufügen von Dateien fehlgeschlagen"
-#: builtin/add.c:548
+#: builtin/add.c:534
#, c-format
msgid "--chmod param '%s' must be either -x or +x"
msgstr "--chmod Parameter '%s' muss entweder -x oder +x sein"
-#: builtin/add.c:569 builtin/checkout.c:1751 builtin/commit.c:364
-#: builtin/reset.c:429 builtin/rm.c:275 builtin/stash.c:1713
+#: builtin/add.c:555 builtin/checkout.c:1770 builtin/commit.c:365
+#: builtin/reset.c:436 builtin/rm.c:275 builtin/stash.c:1702
#, c-format
msgid "'%s' and pathspec arguments cannot be used together"
msgstr ""
"'%s' und Pfadspezifikation-Argumente können nicht gemeinsam verwendet werden"
-#: builtin/add.c:580
+#: builtin/add.c:566
#, c-format
msgid "Nothing specified, nothing added.\n"
msgstr "Nichts spezifiziert, nichts hinzugefügt.\n"
-#: builtin/add.c:582
+#: builtin/add.c:568
msgid ""
"Maybe you wanted to say 'git add .'?\n"
"Turn this message off by running\n"
@@ -10790,124 +11054,119 @@ msgstr ""
"Um diese Meldung abzuschalten, führen Sie folgenden Befehl aus:\n"
"\"git config advice.addEmptyPathspec false\""
-#: builtin/am.c:202
-#, c-format
-msgid "Invalid value for --empty: %s"
-msgstr "Ungültiger Wert für --empty: %s"
-
-#: builtin/am.c:392
+#: builtin/am.c:393
msgid "could not parse author script"
msgstr "konnte Autor-Skript nicht parsen"
-#: builtin/am.c:482
+#: builtin/am.c:483
#, c-format
msgid "'%s' was deleted by the applypatch-msg hook"
msgstr "'%s' wurde durch den applypatch-msg Hook entfernt"
-#: builtin/am.c:524
+#: builtin/am.c:525
#, c-format
msgid "Malformed input line: '%s'."
msgstr "Fehlerhafte Eingabezeile: '%s'."
-#: builtin/am.c:562
+#: builtin/am.c:563
#, c-format
msgid "Failed to copy notes from '%s' to '%s'"
msgstr "Fehler beim Kopieren der Notizen von '%s' nach '%s'"
-#: builtin/am.c:588
+#: builtin/am.c:589
msgid "fseek failed"
msgstr "\"fseek\" fehlgeschlagen"
-#: builtin/am.c:776
+#: builtin/am.c:777
#, c-format
msgid "could not parse patch '%s'"
msgstr "konnte Patch '%s' nicht parsen"
-#: builtin/am.c:841
+#: builtin/am.c:842
msgid "Only one StGIT patch series can be applied at once"
msgstr "Es kann nur eine StGIT Patch-Serie auf einmal angewendet werden."
-#: builtin/am.c:889
+#: builtin/am.c:890
msgid "invalid timestamp"
msgstr "ungültiger Zeitstempel"
-#: builtin/am.c:894 builtin/am.c:906
+#: builtin/am.c:895 builtin/am.c:907
msgid "invalid Date line"
msgstr "Ungültige \"Date\"-Zeile"
-#: builtin/am.c:901
+#: builtin/am.c:902
msgid "invalid timezone offset"
msgstr "Ungültiger Offset in der Zeitzone"
-#: builtin/am.c:994
+#: builtin/am.c:995
msgid "Patch format detection failed."
msgstr "Patch-Formaterkennung fehlgeschlagen."
-#: builtin/am.c:999 builtin/clone.c:300
+#: builtin/am.c:1000 builtin/clone.c:306
#, c-format
msgid "failed to create directory '%s'"
msgstr "Fehler beim Erstellen von Verzeichnis '%s'"
-#: builtin/am.c:1004
+#: builtin/am.c:1005
msgid "Failed to split patches."
msgstr "Fehler beim Aufteilen der Patches."
-#: builtin/am.c:1153
+#: builtin/am.c:1154
#, c-format
msgid "When you have resolved this problem, run \"%s --continue\"."
msgstr ""
"Wenn Sie das Problem aufgelöst haben, führen Sie \"%s --continue\" aus."
-#: builtin/am.c:1154
+#: builtin/am.c:1155
#, c-format
msgid "If you prefer to skip this patch, run \"%s --skip\" instead."
msgstr ""
"Falls Sie diesen Patch auslassen möchten, führen Sie stattdessen \"%s --skip"
"\" aus."
-#: builtin/am.c:1159
+#: builtin/am.c:1160
#, c-format
msgid "To record the empty patch as an empty commit, run \"%s --allow-empty\"."
msgstr ""
"Um den leeren Patch als einen leeren Commit zu speichern, führen Sie \"%s --"
"allow-empty\" aus."
-#: builtin/am.c:1161
+#: builtin/am.c:1162
#, c-format
msgid "To restore the original branch and stop patching, run \"%s --abort\"."
msgstr ""
"Um den ursprünglichen Branch wiederherzustellen und die Anwendung der "
"Patches abzubrechen, führen Sie \"%s --abort\" aus."
-#: builtin/am.c:1256
+#: builtin/am.c:1257
msgid "Patch sent with format=flowed; space at the end of lines might be lost."
msgstr ""
"Patch mit format=flowed versendet; Leerzeichen am Ende von Zeilen könnte "
"verloren gehen."
-#: builtin/am.c:1344
+#: builtin/am.c:1345
#, c-format
msgid "missing author line in commit %s"
msgstr "Autor-Zeile fehlt in Commit %s"
-#: builtin/am.c:1347
+#: builtin/am.c:1348
#, c-format
msgid "invalid ident line: %.*s"
msgstr "Ungültige Identifikationszeile: %.*s"
-#: builtin/am.c:1566
+#: builtin/am.c:1567
msgid "Repository lacks necessary blobs to fall back on 3-way merge."
msgstr ""
"Dem Repository fehlen notwendige Blobs um auf einen 3-Wege-Merge "
"zurückzufallen."
-#: builtin/am.c:1568
+#: builtin/am.c:1569
msgid "Using index info to reconstruct a base tree..."
msgstr ""
"Verwende Informationen aus der Staging-Area, um ein Basisverzeichnis "
"nachzustellen..."
-#: builtin/am.c:1587
+#: builtin/am.c:1588
msgid ""
"Did you hand edit your patch?\n"
"It does not apply to blobs recorded in its index."
@@ -10915,24 +11174,24 @@ msgstr ""
"Haben Sie den Patch per Hand editiert?\n"
"Er kann nicht auf die Blobs in seiner 'index' Zeile angewendet werden."
-#: builtin/am.c:1593
+#: builtin/am.c:1594
msgid "Falling back to patching base and 3-way merge..."
msgstr "Falle zurück zum Patchen der Basis und zum 3-Wege-Merge..."
-#: builtin/am.c:1619
+#: builtin/am.c:1620
msgid "Failed to merge in the changes."
msgstr "Merge der Änderungen fehlgeschlagen."
-#: builtin/am.c:1651
+#: builtin/am.c:1652
msgid "applying to an empty history"
msgstr "auf leere Historie anwenden"
-#: builtin/am.c:1703 builtin/am.c:1707
+#: builtin/am.c:1704 builtin/am.c:1708
#, c-format
msgid "cannot resume: %s does not exist."
msgstr "Kann nicht fortsetzen: %s existiert nicht"
-#: builtin/am.c:1725
+#: builtin/am.c:1726
msgid "Commit Body is:"
msgstr "Commit-Beschreibung ist:"
@@ -10940,59 +11199,59 @@ msgstr "Commit-Beschreibung ist:"
#. in your translation. The program will only accept English
#. input at this point.
#.
-#: builtin/am.c:1735
+#: builtin/am.c:1736
#, c-format
msgid "Apply? [y]es/[n]o/[e]dit/[v]iew patch/[a]ccept all: "
msgstr "Anwenden? [y]es/[n]o/[e]dit/[v]iew patch/[a]ccept all: "
-#: builtin/am.c:1781 builtin/commit.c:409
+#: builtin/am.c:1782 builtin/commit.c:410
msgid "unable to write index file"
-msgstr "Konnte Index-Datei nicht schreiben."
+msgstr "konnte Index-Datei nicht schreiben"
-#: builtin/am.c:1785
+#: builtin/am.c:1786
#, c-format
msgid "Dirty index: cannot apply patches (dirty: %s)"
msgstr "Geänderter Index: kann Patches nicht anwenden (geändert: %s)"
-#: builtin/am.c:1827
+#: builtin/am.c:1828
#, c-format
msgid "Skipping: %.*s"
msgstr "Ãœberspringe: %.*s"
-#: builtin/am.c:1832
+#: builtin/am.c:1833
#, c-format
msgid "Creating an empty commit: %.*s"
msgstr "Erzeuge leeren Commit: %.*s"
-#: builtin/am.c:1836
+#: builtin/am.c:1837
msgid "Patch is empty."
msgstr "Patch ist leer."
-#: builtin/am.c:1847 builtin/am.c:1916
+#: builtin/am.c:1848 builtin/am.c:1917
#, c-format
msgid "Applying: %.*s"
msgstr "Wende an: %.*s"
-#: builtin/am.c:1864
+#: builtin/am.c:1865
msgid "No changes -- Patch already applied."
msgstr "Keine Änderungen -- Patches bereits angewendet."
-#: builtin/am.c:1870
+#: builtin/am.c:1871
#, c-format
msgid "Patch failed at %s %.*s"
msgstr "Anwendung des Patches fehlgeschlagen bei %s %.*s"
-#: builtin/am.c:1874
+#: builtin/am.c:1875
msgid "Use 'git am --show-current-patch=diff' to see the failed patch"
msgstr ""
"Benutzen Sie 'git am --show-current-patch=diff', um den\n"
"fehlgeschlagenen Patch zu sehen"
-#: builtin/am.c:1920
+#: builtin/am.c:1921
msgid "No changes - recorded it as an empty commit."
msgstr "Keine Änderungen - wurde als leerer Commit gespeichert."
-#: builtin/am.c:1922
+#: builtin/am.c:1923
msgid ""
"No changes - did you forget to use 'git add'?\n"
"If there is nothing left to stage, chances are that something else\n"
@@ -11003,7 +11262,7 @@ msgstr ""
"diese bereits anderweitig eingefügt worden sein; Sie könnten diesen Patch\n"
"auslassen."
-#: builtin/am.c:1930
+#: builtin/am.c:1931
msgid ""
"You still have unmerged paths in your index.\n"
"You should 'git add' each file with resolved conflicts to mark them as "
@@ -11016,17 +11275,17 @@ msgstr ""
"Sie können `git rm` auf Dateien ausführen, um \"von denen gelöscht\" für\n"
"diese zu akzeptieren."
-#: builtin/am.c:2038 builtin/am.c:2042 builtin/am.c:2054 builtin/reset.c:448
-#: builtin/reset.c:456
+#: builtin/am.c:2039 builtin/am.c:2043 builtin/am.c:2055 builtin/reset.c:455
+#: builtin/reset.c:463
#, c-format
msgid "Could not parse object '%s'."
msgstr "Konnte Objekt '%s' nicht parsen."
-#: builtin/am.c:2090 builtin/am.c:2166
+#: builtin/am.c:2091 builtin/am.c:2167
msgid "failed to clean index"
msgstr "Fehler beim Bereinigen des Index"
-#: builtin/am.c:2134
+#: builtin/am.c:2135
msgid ""
"You seem to have moved HEAD since the last 'am' failure.\n"
"Not rewinding to ORIG_HEAD"
@@ -11034,169 +11293,160 @@ msgstr ""
"Sie scheinen seit dem letzten gescheiterten 'am' HEAD geändert zu haben.\n"
"Keine Zurücksetzung zu ORIG_HEAD."
-#: builtin/am.c:2242
-#, c-format
-msgid "Invalid value for --patch-format: %s"
-msgstr "Ungültiger Wert für --patch-format: %s"
-
-#: builtin/am.c:2285
-#, c-format
-msgid "Invalid value for --show-current-patch: %s"
-msgstr "Ungültiger Wert für --show-current-patch: %s"
-
-#: builtin/am.c:2289
+#: builtin/am.c:2292
#, c-format
msgid "options '%s=%s' and '%s=%s' cannot be used together"
msgstr ""
"die Optionen '%s=%s' und '%s=%s' können nicht gemeinsam verwendet werden"
-#: builtin/am.c:2320
+#: builtin/am.c:2323
msgid "git am [<options>] [(<mbox> | <Maildir>)...]"
msgstr "git am [<Optionen>] [(<mbox> | <E-Mail-Verzeichnis>)...]"
-#: builtin/am.c:2321
+#: builtin/am.c:2324
msgid "git am [<options>] (--continue | --skip | --abort)"
msgstr "git am [<Optionen>] (--continue | --skip | --abort)"
-#: builtin/am.c:2327
+#: builtin/am.c:2330
msgid "run interactively"
msgstr "interaktiv ausführen"
-#: builtin/am.c:2329
+#: builtin/am.c:2332
msgid "historical option -- no-op"
msgstr "historische Option -- kein Effekt"
-#: builtin/am.c:2331
+#: builtin/am.c:2334
msgid "allow fall back on 3way merging if needed"
msgstr "erlaube, falls notwendig, das Zurückfallen auf einen 3-Wege-Merge"
-#: builtin/am.c:2332 builtin/init-db.c:547 builtin/prune-packed.c:16
-#: builtin/repack.c:642 builtin/stash.c:962
+#: builtin/am.c:2335 builtin/init-db.c:547 builtin/prune-packed.c:16
+#: builtin/repack.c:646 builtin/stash.c:946
msgid "be quiet"
msgstr "weniger Ausgaben"
-#: builtin/am.c:2334
+#: builtin/am.c:2337
msgid "add a Signed-off-by trailer to the commit message"
msgstr "eine Signed-off-by Zeile der Commit-Beschreibung hinzufügen"
-#: builtin/am.c:2337
+#: builtin/am.c:2340
msgid "recode into utf8 (default)"
msgstr "nach UTF-8 umkodieren (Standard)"
-#: builtin/am.c:2339
+#: builtin/am.c:2342
msgid "pass -k flag to git-mailinfo"
msgstr "-k an git-mailinfo übergeben"
-#: builtin/am.c:2341
+#: builtin/am.c:2344
msgid "pass -b flag to git-mailinfo"
msgstr "-b an git-mailinfo übergeben"
-#: builtin/am.c:2343
+#: builtin/am.c:2346
msgid "pass -m flag to git-mailinfo"
msgstr "-m an git-mailinfo übergeben"
-#: builtin/am.c:2345
+#: builtin/am.c:2348
msgid "pass --keep-cr flag to git-mailsplit for mbox format"
msgstr "--keep-cr an git-mailsplit für mbox-Format übergeben"
-#: builtin/am.c:2348
+#: builtin/am.c:2351
msgid "do not pass --keep-cr flag to git-mailsplit independent of am.keepcr"
msgstr "kein --keep-cr an git-mailsplit übergeben, unabhängig von am.keepcr"
-#: builtin/am.c:2351
+#: builtin/am.c:2354
msgid "strip everything before a scissors line"
msgstr "alles vor einer Scheren-Zeile entfernen"
-#: builtin/am.c:2353
+#: builtin/am.c:2356
msgid "pass it through git-mailinfo"
msgstr "an git-mailinfo weitergeben"
-#: builtin/am.c:2356 builtin/am.c:2359 builtin/am.c:2362 builtin/am.c:2365
-#: builtin/am.c:2368 builtin/am.c:2371 builtin/am.c:2374 builtin/am.c:2377
-#: builtin/am.c:2383
+#: builtin/am.c:2359 builtin/am.c:2362 builtin/am.c:2365 builtin/am.c:2368
+#: builtin/am.c:2371 builtin/am.c:2374 builtin/am.c:2377 builtin/am.c:2380
+#: builtin/am.c:2386
msgid "pass it through git-apply"
msgstr "an git-apply übergeben"
-#: builtin/am.c:2373 builtin/commit.c:1515 builtin/fmt-merge-msg.c:18
-#: builtin/fmt-merge-msg.c:21 builtin/grep.c:919 builtin/merge.c:263
+#: builtin/am.c:2376 builtin/commit.c:1514 builtin/fmt-merge-msg.c:18
+#: builtin/fmt-merge-msg.c:21 builtin/grep.c:920 builtin/merge.c:263
#: builtin/pull.c:142 builtin/pull.c:204 builtin/pull.c:221
-#: builtin/rebase.c:1046 builtin/repack.c:653 builtin/repack.c:657
-#: builtin/repack.c:659 builtin/show-branch.c:649 builtin/show-ref.c:172
-#: builtin/tag.c:445 parse-options.h:154 parse-options.h:175
-#: parse-options.h:317
+#: builtin/rebase.c:1074 builtin/repack.c:657 builtin/repack.c:661
+#: builtin/repack.c:663 builtin/show-branch.c:650 builtin/show-ref.c:172
+#: builtin/tag.c:446 parse-options.h:159 parse-options.h:180
+#: parse-options.h:348
msgid "n"
msgstr "Anzahl"
-#: builtin/am.c:2379 builtin/branch.c:680 builtin/bugreport.c:109
-#: builtin/for-each-ref.c:41 builtin/replace.c:555 builtin/tag.c:479
-#: builtin/verify-tag.c:38
+#: builtin/am.c:2382 builtin/branch.c:695 builtin/bugreport.c:109
+#: builtin/cat-file.c:848 builtin/cat-file.c:852 builtin/cat-file.c:856
+#: builtin/for-each-ref.c:41 builtin/ls-tree.c:357 builtin/replace.c:555
+#: builtin/tag.c:480 builtin/verify-tag.c:38
msgid "format"
msgstr "Format"
-#: builtin/am.c:2380
+#: builtin/am.c:2383
msgid "format the patch(es) are in"
msgstr "Patch-Format"
-#: builtin/am.c:2386
+#: builtin/am.c:2389
msgid "override error message when patch failure occurs"
msgstr "Meldung bei fehlerhafter Patch-Anwendung überschreiben"
-#: builtin/am.c:2388
+#: builtin/am.c:2391
msgid "continue applying patches after resolving a conflict"
msgstr "Anwendung der Patches nach Auflösung eines Konfliktes fortsetzen"
-#: builtin/am.c:2391
+#: builtin/am.c:2394
msgid "synonyms for --continue"
msgstr "Synonyme für --continue"
-#: builtin/am.c:2394
+#: builtin/am.c:2397
msgid "skip the current patch"
msgstr "den aktuellen Patch auslassen"
-#: builtin/am.c:2397
+#: builtin/am.c:2400
msgid "restore the original branch and abort the patching operation"
msgstr ""
"ursprünglichen Branch wiederherstellen und Anwendung der Patches abbrechen"
-#: builtin/am.c:2400
+#: builtin/am.c:2403
msgid "abort the patching operation but keep HEAD where it is"
msgstr "Patch-Operation abbrechen, aber HEAD an aktueller Stelle belassen"
-#: builtin/am.c:2404
+#: builtin/am.c:2407
msgid "show the patch being applied"
msgstr "den Patch, der gerade angewendet wird, anzeigen"
-#: builtin/am.c:2408
+#: builtin/am.c:2411
msgid "record the empty patch as an empty commit"
msgstr "leerer Patch als leeren Commit gespeichert"
-#: builtin/am.c:2412
+#: builtin/am.c:2415
msgid "lie about committer date"
msgstr "Autor-Datum als Commit-Datum verwenden"
-#: builtin/am.c:2414
+#: builtin/am.c:2417
msgid "use current timestamp for author date"
msgstr "aktuellen Zeitstempel als Autor-Datum verwenden"
-#: builtin/am.c:2416 builtin/commit-tree.c:118 builtin/commit.c:1643
-#: builtin/merge.c:302 builtin/pull.c:179 builtin/rebase.c:1099
-#: builtin/revert.c:117 builtin/tag.c:460
+#: builtin/am.c:2419 builtin/commit-tree.c:118 builtin/commit.c:1642
+#: builtin/merge.c:302 builtin/pull.c:179 builtin/rebase.c:1127
+#: builtin/revert.c:117 builtin/tag.c:461
msgid "key-id"
msgstr "GPG-Schlüsselkennung"
-#: builtin/am.c:2417 builtin/rebase.c:1100
+#: builtin/am.c:2420 builtin/rebase.c:1128
msgid "GPG-sign commits"
msgstr "Commits mit GPG signieren"
-#: builtin/am.c:2420
+#: builtin/am.c:2423
msgid "how to handle empty patches"
msgstr "wie leere Patches behandelt werden sollen"
-#: builtin/am.c:2423
+#: builtin/am.c:2426
msgid "(internal use for git-rebase)"
msgstr "(intern für git-rebase verwendet)"
-#: builtin/am.c:2441
+#: builtin/am.c:2444
msgid ""
"The -b/--binary option has been a no-op for long time, and\n"
"it will be removed. Please do not use it anymore."
@@ -11204,16 +11454,16 @@ msgstr ""
"Die -b/--binary Option hat seit Langem keinen Effekt und wird\n"
"entfernt. Bitte verwenden Sie diese nicht mehr."
-#: builtin/am.c:2448
+#: builtin/am.c:2451
msgid "failed to read the index"
msgstr "Fehler beim Lesen des Index"
-#: builtin/am.c:2463
+#: builtin/am.c:2466
#, c-format
msgid "previous rebase directory %s still exists but mbox given."
msgstr "Vorheriges Rebase-Verzeichnis %s existiert noch, aber mbox gegeben."
-#: builtin/am.c:2487
+#: builtin/am.c:2490
#, c-format
msgid ""
"Stray %s directory found.\n"
@@ -11222,11 +11472,11 @@ msgstr ""
"Stray %s Verzeichnis gefunden.\n"
"Benutzen Sie \"git am --abort\", um es zu entfernen."
-#: builtin/am.c:2493
+#: builtin/am.c:2496
msgid "Resolve operation not in progress, we are not resuming."
msgstr "Es ist keine Auflösung im Gange, es wird nicht fortgesetzt."
-#: builtin/am.c:2503
+#: builtin/am.c:2506
msgid "interactive mode requires patches on the command line"
msgstr "Interaktiver Modus benötigt Patches über die Kommandozeile"
@@ -11236,7 +11486,7 @@ msgstr "git apply [<Optionen>] [<Patch>...]"
#: builtin/archive.c:18
msgid "could not redirect output"
-msgstr "Konnte Ausgabe nicht umleiten."
+msgstr "konnte Ausgabe nicht umleiten"
#: builtin/archive.c:35
msgid "git archive: Remote with no URL"
@@ -11263,14 +11513,6 @@ msgstr "git archive: erwartete eine Spülung (flush)"
msgid "git bisect--helper --bisect-reset [<commit>]"
msgstr "git bisect--helper --bisect-reset [<Commit>]"
-#: builtin/bisect--helper.c:25
-msgid ""
-"git bisect--helper --bisect-terms [--term-good | --term-old | --term-bad | --"
-"term-new]"
-msgstr ""
-"git bisect--helper --bisect-terms [--term-good | --term-old | --term-bad | --"
-"term-new]"
-
#: builtin/bisect--helper.c:26
msgid ""
"git bisect--helper --bisect-start [--term-{new,bad}=<term> --term-{old,good}"
@@ -11281,10 +11523,6 @@ msgstr ""
"good}=<Begriff>] [--no-checkout] [--first-parent] [<schlecht> [<gut>...]] "
"[--] [<Pfade>...]"
-#: builtin/bisect--helper.c:28
-msgid "git bisect--helper --bisect-next"
-msgstr "git bisect--helper --bisect-next"
-
#: builtin/bisect--helper.c:29
msgid "git bisect--helper --bisect-state (bad|new) [<rev>]"
msgstr "git bisect--helper --bisect-state (bad|new) [<Commit>]"
@@ -11301,10 +11539,6 @@ msgstr "git bisect--helper --bisect-replay <Dateiname>"
msgid "git bisect--helper --bisect-skip [(<rev>|<range>)...]"
msgstr "git bisect--helper --bisect-skip [(<Commit>|<Bereich>)...]"
-#: builtin/bisect--helper.c:33
-msgid "git bisect--helper --bisect-visualize"
-msgstr "git bisect--helper --bisect-visualize"
-
#: builtin/bisect--helper.c:34
msgid "git bisect--helper --bisect-run <cmd>..."
msgstr "git bisect--helper --bisect-run <Programm>..."
@@ -11529,40 +11763,50 @@ msgstr "'%s'?? Was reden Sie da?"
msgid "cannot read file '%s' for replaying"
msgstr "kann Datei '%s' nicht für die Wiederholung lesen"
-#: builtin/bisect--helper.c:1107 builtin/bisect--helper.c:1274
+#: builtin/bisect--helper.c:1120 builtin/bisect--helper.c:1152
+#, c-format
+msgid "running %s\n"
+msgstr "Ausführen von %s\n"
+
+#: builtin/bisect--helper.c:1145 builtin/bisect--helper.c:1335
msgid "bisect run failed: no command provided."
msgstr "'bisect run' fehlgeschlagen: kein Befehl angegeben."
-#: builtin/bisect--helper.c:1116
+#: builtin/bisect--helper.c:1166
#, c-format
-msgid "running %s\n"
-msgstr "Ausführen von %s\n"
+msgid "unable to verify '%s' on good revision"
+msgstr "konnte '%s' nicht für guten Commit überprüfen"
-#: builtin/bisect--helper.c:1120
+#: builtin/bisect--helper.c:1172
+#, c-format
+msgid "bogus exit code %d for good revision"
+msgstr "fehlerhafter Exit-Code %d für guten Commit"
+
+#: builtin/bisect--helper.c:1180
#, c-format
msgid "bisect run failed: exit code %d from '%s' is < 0 or >= 128"
msgstr "'bisect run' fehlgeschlagen: Exit-Code %d von '%s' ist < 0 oder >= 128"
-#: builtin/bisect--helper.c:1136
+#: builtin/bisect--helper.c:1195
#, c-format
msgid "cannot open file '%s' for writing"
msgstr "Datei '%s' kann nicht zum Schreiben geöffnet werden"
-#: builtin/bisect--helper.c:1152
+#: builtin/bisect--helper.c:1213
msgid "bisect run cannot continue any more"
msgstr "'bisect run' kann nicht mehr fortgesetzt werden"
-#: builtin/bisect--helper.c:1154
+#: builtin/bisect--helper.c:1215
#, c-format
msgid "bisect run success"
msgstr "'bisect run' erfolgreich ausgeführt"
-#: builtin/bisect--helper.c:1157
+#: builtin/bisect--helper.c:1218
#, c-format
msgid "bisect found first bad commit"
msgstr "binäre Suche fand ersten schlechten Commit"
-#: builtin/bisect--helper.c:1160
+#: builtin/bisect--helper.c:1221
#, c-format
msgid ""
"bisect run failed: 'git bisect--helper --bisect-state %s' exited with error "
@@ -11571,71 +11815,71 @@ msgstr ""
"'bisect run' fehlgeschlagen: 'git bisect--helper --bisect-state %s' mit "
"Fehlercode %d beendet"
-#: builtin/bisect--helper.c:1192
+#: builtin/bisect--helper.c:1253
msgid "reset the bisection state"
msgstr "den Zustand der binären Suche zurücksetzen"
-#: builtin/bisect--helper.c:1194
+#: builtin/bisect--helper.c:1255
msgid "check whether bad or good terms exist"
msgstr "prüfen, ob Begriffe für gute und schlechte Commits existieren"
-#: builtin/bisect--helper.c:1196
+#: builtin/bisect--helper.c:1257
msgid "print out the bisect terms"
msgstr "die Begriffe für die binäre Suche ausgeben"
-#: builtin/bisect--helper.c:1198
+#: builtin/bisect--helper.c:1259
msgid "start the bisect session"
msgstr "Sitzung für binäre Suche starten"
-#: builtin/bisect--helper.c:1200
+#: builtin/bisect--helper.c:1261
msgid "find the next bisection commit"
msgstr "nächsten Commit für die binäre Suche finden"
-#: builtin/bisect--helper.c:1202
+#: builtin/bisect--helper.c:1263
msgid "mark the state of ref (or refs)"
msgstr "den Status der Referenz(en) markieren"
-#: builtin/bisect--helper.c:1204
+#: builtin/bisect--helper.c:1265
msgid "list the bisection steps so far"
msgstr "die bisherigen Schritte der binären Suche auflisten"
-#: builtin/bisect--helper.c:1206
+#: builtin/bisect--helper.c:1267
msgid "replay the bisection process from the given file"
msgstr "binäre Suche aus der angegebenen Datei wiederholen"
-#: builtin/bisect--helper.c:1208
+#: builtin/bisect--helper.c:1269
msgid "skip some commits for checkout"
msgstr "einige Commits für das Auschecken überspringen"
-#: builtin/bisect--helper.c:1210
+#: builtin/bisect--helper.c:1271
msgid "visualize the bisection"
msgstr "binäre Suche visualisieren"
-#: builtin/bisect--helper.c:1212
-msgid "use <cmd>... to automatically bisect."
-msgstr "verwende <Programm>... für die automatische binäre Suche."
+#: builtin/bisect--helper.c:1273
+msgid "use <cmd>... to automatically bisect"
+msgstr "verwende <Programm>... für die automatische binäre Suche"
-#: builtin/bisect--helper.c:1214
+#: builtin/bisect--helper.c:1275
msgid "no log for BISECT_WRITE"
msgstr "kein Log für BISECT_WRITE"
-#: builtin/bisect--helper.c:1229
+#: builtin/bisect--helper.c:1290
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:1234
+#: builtin/bisect--helper.c:1295
msgid "--bisect-terms requires 0 or 1 argument"
msgstr "--bisect-terms benötigt 0 oder 1 Argument"
-#: builtin/bisect--helper.c:1243
+#: builtin/bisect--helper.c:1304
msgid "--bisect-next requires 0 arguments"
msgstr "--bisect-next benötigt 0 Argumente"
-#: builtin/bisect--helper.c:1254
+#: builtin/bisect--helper.c:1315
msgid "--bisect-log requires 0 arguments"
msgstr "--bisect-log benötigt 0 Argumente"
-#: builtin/bisect--helper.c:1259
+#: builtin/bisect--helper.c:1320
msgid "no logfile given"
msgstr "keine Log-Datei angegeben"
@@ -11656,148 +11900,139 @@ msgstr "erwarte eine Farbe: %s"
msgid "must end with a color"
msgstr "muss mit einer Farbe enden"
-#: builtin/blame.c:724
-#, c-format
-msgid "invalid color '%s' in color.blame.repeatedLines"
-msgstr "ungültige Farbe '%s' in color.blame.repeatedLines"
-
-#: builtin/blame.c:742
-msgid "invalid value for blame.coloring"
-msgstr "ungültiger Wert für blame.coloring"
-
-#: builtin/blame.c:841
+#: builtin/blame.c:842
#, c-format
msgid "cannot find revision %s to ignore"
msgstr "konnte Commit %s zum Ignorieren nicht finden"
-#: builtin/blame.c:863
+#: builtin/blame.c:864
msgid "show blame entries as we find them, incrementally"
msgstr "\"blame\"-Einträge schrittweise anzeigen, während wir sie finden"
-#: builtin/blame.c:864
+#: builtin/blame.c:865
msgid "do not show object names of boundary commits (Default: off)"
msgstr "keine Objektnamen für Grenz-Commits anzeigen (Standard: aus)"
-#: builtin/blame.c:865
+#: builtin/blame.c:866
msgid "do not treat root commits as boundaries (Default: off)"
msgstr "Root-Commits nicht als Grenzen behandeln (Standard: aus)"
-#: builtin/blame.c:866
+#: builtin/blame.c:867
msgid "show work cost statistics"
msgstr "Statistiken zum Arbeitsaufwand anzeigen"
-#: builtin/blame.c:867 builtin/checkout.c:1536 builtin/clone.c:94
-#: builtin/commit-graph.c:75 builtin/commit-graph.c:228 builtin/fetch.c:180
+#: builtin/blame.c:868 builtin/checkout.c:1554 builtin/clone.c:98
+#: builtin/commit-graph.c:75 builtin/commit-graph.c:228 builtin/fetch.c:181
#: builtin/merge.c:301 builtin/multi-pack-index.c:103
#: builtin/multi-pack-index.c:154 builtin/multi-pack-index.c:180
#: builtin/multi-pack-index.c:208 builtin/pull.c:120 builtin/push.c:566
-#: builtin/send-pack.c:202
+#: builtin/remote.c:683 builtin/send-pack.c:202
msgid "force progress reporting"
msgstr "Fortschrittsanzeige erzwingen"
-#: builtin/blame.c:868
+#: builtin/blame.c:869
msgid "show output score for blame entries"
msgstr "Ausgabebewertung für \"blame\"-Einträge anzeigen"
-#: builtin/blame.c:869
+#: builtin/blame.c:870
msgid "show original filename (Default: auto)"
msgstr "ursprünglichen Dateinamen anzeigen (Standard: auto)"
-#: builtin/blame.c:870
+#: builtin/blame.c:871
msgid "show original linenumber (Default: off)"
msgstr "ursprüngliche Zeilennummer anzeigen (Standard: aus)"
-#: builtin/blame.c:871
+#: builtin/blame.c:872
msgid "show in a format designed for machine consumption"
msgstr "Anzeige in einem Format für maschinelle Auswertung"
-#: builtin/blame.c:872
+#: builtin/blame.c:873
msgid "show porcelain format with per-line commit information"
msgstr ""
"Anzeige in Format für Fremdprogramme mit Commit-Informationen pro Zeile"
-#: builtin/blame.c:873
+#: builtin/blame.c:874
msgid "use the same output mode as git-annotate (Default: off)"
msgstr ""
"den gleichen Ausgabemodus benutzen wie \"git-annotate\" (Standard: aus)"
-#: builtin/blame.c:874
+#: builtin/blame.c:875
msgid "show raw timestamp (Default: off)"
msgstr "unbearbeiteten Zeitstempel anzeigen (Standard: aus)"
-#: builtin/blame.c:875
+#: builtin/blame.c:876
msgid "show long commit SHA1 (Default: off)"
msgstr "langen Commit-SHA1 anzeigen (Standard: aus)"
-#: builtin/blame.c:876
+#: builtin/blame.c:877
msgid "suppress author name and timestamp (Default: off)"
msgstr "den Namen des Autors und den Zeitstempel unterdrücken (Standard: aus)"
-#: builtin/blame.c:877
+#: builtin/blame.c:878
msgid "show author email instead of name (Default: off)"
msgstr ""
"statt des Namens die E-Mail-Adresse des Autors anzeigen (Standard: aus)"
-#: builtin/blame.c:878
+#: builtin/blame.c:879
msgid "ignore whitespace differences"
msgstr "Whitespace-Unterschiede ignorieren"
-#: builtin/blame.c:879 builtin/log.c:1838
+#: builtin/blame.c:880 builtin/log.c:1857
msgid "rev"
msgstr "Commit"
-#: builtin/blame.c:879
+#: builtin/blame.c:880
msgid "ignore <rev> when blaming"
msgstr "ignoriere <Commit> beim Ausführen von 'blame'"
-#: builtin/blame.c:880
+#: builtin/blame.c:881
msgid "ignore revisions from <file>"
msgstr "ignoriere Commits aus <Datei>"
-#: builtin/blame.c:881
+#: builtin/blame.c:882
msgid "color redundant metadata from previous line differently"
msgstr "redundante Metadaten der vorherigen Zeile unterschiedlich einfärben"
-#: builtin/blame.c:882
+#: builtin/blame.c:883
msgid "color lines by age"
msgstr "Zeilen nach Alter einfärben"
-#: builtin/blame.c:883
+#: builtin/blame.c:884
msgid "spend extra cycles to find better match"
msgstr ""
"mehr Arbeitsschritte ausführen, um eine bessere Übereinstimmung zu finden"
-#: builtin/blame.c:884
+#: builtin/blame.c:885
msgid "use revisions from <file> instead of calling git-rev-list"
msgstr "Commits von <Datei> benutzen, statt \"git-rev-list\" aufzurufen"
-#: builtin/blame.c:885
+#: builtin/blame.c:886
msgid "use <file>'s contents as the final image"
msgstr "Inhalte der <Datei>en als endgültiges Abbild benutzen"
-#: builtin/blame.c:886 builtin/blame.c:887
+#: builtin/blame.c:887 builtin/blame.c:888
msgid "score"
msgstr "Bewertung"
-#: builtin/blame.c:886
+#: builtin/blame.c:887
msgid "find line copies within and across files"
msgstr "kopierte Zeilen innerhalb oder zwischen Dateien finden"
-#: builtin/blame.c:887
+#: builtin/blame.c:888
msgid "find line movements within and across files"
msgstr "verschobene Zeilen innerhalb oder zwischen Dateien finden"
-#: builtin/blame.c:888
+#: builtin/blame.c:889
msgid "range"
msgstr "Bereich"
-#: builtin/blame.c:889
+#: builtin/blame.c:890
msgid "process only line range <start>,<end> or function :<funcname>"
msgstr ""
"nur Zeilen im Bereich <Start>,<Ende> oder Funktion :<Funktionsname> "
"verarbeiten"
-#: builtin/blame.c:947
+#: builtin/blame.c:949
msgid "--progress can't be used with --incremental or porcelain formats"
msgstr ""
"--progress kann nicht mit --incremental oder Formaten für Fremdprogramme\n"
@@ -11811,18 +12046,18 @@ msgstr ""
#. your language may need more or fewer display
#. columns.
#.
-#: builtin/blame.c:998
+#: builtin/blame.c:1000
msgid "4 years, 11 months ago"
msgstr "vor 4 Jahren und 11 Monaten"
-#: builtin/blame.c:1114
+#: builtin/blame.c:1116
#, c-format
msgid "file %s has only %lu line"
msgid_plural "file %s has only %lu lines"
msgstr[0] "Datei %s hat nur %lu Zeile"
msgstr[1] "Datei %s hat nur %lu Zeilen"
-#: builtin/blame.c:1159
+#: builtin/blame.c:1161
msgid "Blaming lines"
msgstr "Verarbeite Zeilen"
@@ -11831,30 +12066,38 @@ msgid "git branch [<options>] [-r | -a] [--merged] [--no-merged]"
msgstr "git branch [<Optionen>] [-r | -a] [--merged] [--no-merged]"
#: builtin/branch.c:30
-msgid "git branch [<options>] [-l] [-f] <branch-name> [<start-point>]"
-msgstr "git branch [<Optionen>] [-l] [-f] <Branchname> [<Startpunkt>]"
+msgid ""
+"git branch [<options>] [-f] [--recurse-submodules] <branch-name> [<start-"
+"point>]"
+msgstr ""
+"git branch [<Optionen>] [-f] [--recurse-submodules] <Branchname> "
+"[<Startpunkt>]"
#: builtin/branch.c:31
+msgid "git branch [<options>] [-l] [<pattern>...]"
+msgstr "git branch [<Optionen>] [-l] [<Muster>...]"
+
+#: builtin/branch.c:32
msgid "git branch [<options>] [-r] (-d | -D) <branch-name>..."
msgstr "git branch [<Optionen>] [-r] (-d | -D) <Branchname>..."
-#: builtin/branch.c:32
+#: builtin/branch.c:33
msgid "git branch [<options>] (-m | -M) [<old-branch>] <new-branch>"
msgstr "git branch [<Optionen>] (-m | -M) [<alter-Branch>] <neuer-Branch>"
-#: builtin/branch.c:33
+#: builtin/branch.c:34
msgid "git branch [<options>] (-c | -C) [<old-branch>] <new-branch>"
msgstr "git branch [<Optionen>] (-c | -C) [<alter-Branch>] <neuer-Branch>"
-#: builtin/branch.c:34
+#: builtin/branch.c:35
msgid "git branch [<options>] [-r | -a] [--points-at]"
msgstr "git branch [<Optionen>] [-r | -a] [--points-at]"
-#: builtin/branch.c:35
+#: builtin/branch.c:36
msgid "git branch [<options>] [-r | -a] [--format]"
msgstr "git branch [<Optionen>] [-r | -a] [--format]"
-#: builtin/branch.c:153
+#: builtin/branch.c:165
#, c-format
msgid ""
"deleting branch '%s' that has been merged to\n"
@@ -11863,7 +12106,7 @@ msgstr ""
"entferne Branch '%s', der zusammengeführt wurde mit\n"
" '%s', aber noch nicht mit HEAD zusammengeführt wurde."
-#: builtin/branch.c:157
+#: builtin/branch.c:169
#, c-format
msgid ""
"not deleting branch '%s' that is not yet merged to\n"
@@ -11872,12 +12115,12 @@ msgstr ""
"entferne Branch '%s' nicht, der noch nicht zusammengeführt wurde mit\n"
" '%s', obwohl er mit HEAD zusammengeführt wurde."
-#: builtin/branch.c:171
+#: builtin/branch.c:183
#, c-format
msgid "Couldn't look up commit object for '%s'"
msgstr "Konnte Commit-Objekt für '%s' nicht nachschlagen."
-#: builtin/branch.c:175
+#: builtin/branch.c:187
#, c-format
msgid ""
"The branch '%s' is not fully merged.\n"
@@ -11887,118 +12130,118 @@ msgstr ""
"Wenn Sie sicher sind diesen Branch zu entfernen, führen Sie 'git branch -D "
"%s' aus."
-#: builtin/branch.c:188
+#: builtin/branch.c:200
msgid "Update of config-file failed"
msgstr "Aktualisierung der Konfigurationsdatei fehlgeschlagen."
-#: builtin/branch.c:223
+#: builtin/branch.c:235
msgid "cannot use -a with -d"
msgstr "kann -a nicht mit -d benutzen"
-#: builtin/branch.c:230
+#: builtin/branch.c:242
msgid "Couldn't look up commit object for HEAD"
msgstr "Konnte Commit-Objekt für HEAD nicht nachschlagen."
-#: builtin/branch.c:247
+#: builtin/branch.c:259
#, c-format
msgid "Cannot delete branch '%s' checked out at '%s'"
msgstr "Kann Branch '%s' nicht entfernen, ausgecheckt in '%s'."
-#: builtin/branch.c:262
+#: builtin/branch.c:274
#, c-format
msgid "remote-tracking branch '%s' not found."
msgstr "Remote-Tracking-Branch '%s' nicht gefunden"
-#: builtin/branch.c:263
+#: builtin/branch.c:275
#, c-format
msgid "branch '%s' not found."
msgstr "Branch '%s' nicht gefunden."
-#: builtin/branch.c:294
+#: builtin/branch.c:306
#, c-format
msgid "Deleted remote-tracking branch %s (was %s).\n"
msgstr "Remote-Tracking-Branch %s entfernt (war %s).\n"
-#: builtin/branch.c:295
+#: builtin/branch.c:307
#, c-format
msgid "Deleted branch %s (was %s).\n"
msgstr "Branch %s entfernt (war %s).\n"
-#: builtin/branch.c:445 builtin/tag.c:63
+#: builtin/branch.c:457 builtin/tag.c:64
msgid "unable to parse format string"
msgstr "Konnte Formatierungsstring nicht parsen."
-#: builtin/branch.c:476
+#: builtin/branch.c:488
msgid "could not resolve HEAD"
-msgstr "Konnte HEAD-Commit nicht auflösen."
+msgstr "konnte HEAD-Commit nicht auflösen"
-#: builtin/branch.c:482
+#: builtin/branch.c:494
#, c-format
msgid "HEAD (%s) points outside of refs/heads/"
msgstr "HEAD (%s) wurde nicht unter \"refs/heads/\" gefunden!"
-#: builtin/branch.c:497
+#: builtin/branch.c:509
#, c-format
msgid "Branch %s is being rebased at %s"
msgstr "Branch %s wird auf %s umgesetzt"
-#: builtin/branch.c:501
+#: builtin/branch.c:513
#, c-format
msgid "Branch %s is being bisected at %s"
msgstr "Binäre Suche von Branch %s zu %s im Gange"
-#: builtin/branch.c:518
+#: builtin/branch.c:530
msgid "cannot copy the current branch while not on any."
msgstr ""
"Kann den aktuellen Branch nicht kopieren, solange Sie sich auf keinem "
"befinden."
-#: builtin/branch.c:520
+#: builtin/branch.c:532
msgid "cannot rename the current branch while not on any."
msgstr ""
"Kann aktuellen Branch nicht umbenennen, solange Sie sich auf keinem befinden."
-#: builtin/branch.c:531
+#: builtin/branch.c:543
#, c-format
msgid "Invalid branch name: '%s'"
msgstr "Ungültiger Branchname: '%s'"
-#: builtin/branch.c:560
+#: builtin/branch.c:572
msgid "Branch rename failed"
msgstr "Umbenennung des Branches fehlgeschlagen"
-#: builtin/branch.c:562
+#: builtin/branch.c:574
msgid "Branch copy failed"
msgstr "Kopie des Branches fehlgeschlagen"
-#: builtin/branch.c:566
+#: builtin/branch.c:578
#, c-format
msgid "Created a copy of a misnamed branch '%s'"
msgstr "Kopie eines falsch benannten Branches '%s' erstellt."
-#: builtin/branch.c:569
+#: builtin/branch.c:581
#, c-format
msgid "Renamed a misnamed branch '%s' away"
msgstr "falsch benannten Branch '%s' umbenannt"
-#: builtin/branch.c:575
+#: builtin/branch.c:587
#, c-format
msgid "Branch renamed to %s, but HEAD is not updated!"
msgstr "Branch umbenannt zu %s, aber HEAD ist nicht aktualisiert!"
-#: builtin/branch.c:584
+#: builtin/branch.c:596
msgid "Branch is renamed, but update of config-file failed"
msgstr ""
"Branch ist umbenannt, aber die Aktualisierung der Konfigurationsdatei ist "
"fehlgeschlagen."
-#: builtin/branch.c:586
+#: builtin/branch.c:598
msgid "Branch is copied, but update of config-file failed"
msgstr ""
"Branch wurde kopiert, aber die Aktualisierung der Konfigurationsdatei ist\n"
"fehlgeschlagen."
-#: builtin/branch.c:602
+#: builtin/branch.c:614
#, c-format
msgid ""
"Please edit the description for the branch\n"
@@ -12009,177 +12252,194 @@ msgstr ""
" %s\n"
"Zeilen, die mit '%c' beginnen, werden entfernt.\n"
-#: builtin/branch.c:637
+#: builtin/branch.c:651
msgid "Generic options"
msgstr "Allgemeine Optionen"
-#: builtin/branch.c:639
+#: builtin/branch.c:653
msgid "show hash and subject, give twice for upstream branch"
msgstr "Hash und Betreff anzeigen; -vv: zusätzlich Upstream-Branch"
-#: builtin/branch.c:640
+#: builtin/branch.c:654
msgid "suppress informational messages"
msgstr "Informationsmeldungen unterdrücken"
-#: builtin/branch.c:642
+#: builtin/branch.c:656 builtin/checkout.c:1571
+#: builtin/submodule--helper.c:3077
msgid "set branch tracking configuration"
msgstr "Branch-Tracking-Konfiguration setzen"
-#: builtin/branch.c:645
+#: builtin/branch.c:659
msgid "do not use"
msgstr "nicht verwenden"
-#: builtin/branch.c:647
+#: builtin/branch.c:661
msgid "upstream"
msgstr "Upstream"
-#: builtin/branch.c:647
+#: builtin/branch.c:661
msgid "change the upstream info"
msgstr "Informationen zum Upstream-Branch ändern"
-#: builtin/branch.c:648
+#: builtin/branch.c:662
msgid "unset the upstream info"
msgstr "Informationen zum Upstream-Branch entfernen"
-#: builtin/branch.c:649
+#: builtin/branch.c:663
msgid "use colored output"
msgstr "farbige Ausgaben verwenden"
-#: builtin/branch.c:650
+#: builtin/branch.c:664
msgid "act on remote-tracking branches"
msgstr "auf Remote-Tracking-Branches wirken"
-#: builtin/branch.c:652 builtin/branch.c:654
+#: builtin/branch.c:666 builtin/branch.c:668
msgid "print only branches that contain the commit"
msgstr "nur Branches ausgeben, die diesen Commit enthalten"
-#: builtin/branch.c:653 builtin/branch.c:655
+#: builtin/branch.c:667 builtin/branch.c:669
msgid "print only branches that don't contain the commit"
msgstr "nur Branches ausgeben, die diesen Commit nicht enthalten"
-#: builtin/branch.c:658
+#: builtin/branch.c:672
msgid "Specific git-branch actions:"
msgstr "spezifische Aktionen für \"git-branch\":"
-#: builtin/branch.c:659
+#: builtin/branch.c:673
msgid "list both remote-tracking and local branches"
msgstr "Remote-Tracking und lokale Branches auflisten"
-#: builtin/branch.c:661
+#: builtin/branch.c:675
msgid "delete fully merged branch"
msgstr "vollständig zusammengeführten Branch entfernen"
-#: builtin/branch.c:662
+#: builtin/branch.c:676
msgid "delete branch (even if not merged)"
msgstr "Branch löschen (auch wenn nicht zusammengeführt)"
-#: builtin/branch.c:663
+#: builtin/branch.c:677
msgid "move/rename a branch and its reflog"
msgstr "einen Branch und dessen Reflog verschieben/umbenennen"
-#: builtin/branch.c:664
+#: builtin/branch.c:678
msgid "move/rename a branch, even if target exists"
msgstr ""
"einen Branch verschieben/umbenennen, auch wenn das Ziel bereits existiert"
-#: builtin/branch.c:665
+#: builtin/branch.c:679
msgid "copy a branch and its reflog"
msgstr "einen Branch und dessen Reflog kopieren"
-#: builtin/branch.c:666
+#: builtin/branch.c:680
msgid "copy a branch, even if target exists"
msgstr "einen Branch kopieren, auch wenn das Ziel bereits existiert"
-#: builtin/branch.c:667
+#: builtin/branch.c:681
msgid "list branch names"
msgstr "Branchnamen auflisten"
-#: builtin/branch.c:668
+#: builtin/branch.c:682
msgid "show current branch name"
msgstr "Zeige aktuellen Branchnamen."
-#: builtin/branch.c:669
+#: builtin/branch.c:683 builtin/submodule--helper.c:3075
msgid "create the branch's reflog"
msgstr "das Reflog des Branches erzeugen"
-#: builtin/branch.c:671
+#: builtin/branch.c:685
msgid "edit the description for the branch"
msgstr "die Beschreibung für den Branch bearbeiten"
-#: builtin/branch.c:672
+#: builtin/branch.c:686
msgid "force creation, move/rename, deletion"
msgstr "Erstellung, Verschiebung/Umbenennung oder Löschung erzwingen"
-#: builtin/branch.c:673
+#: builtin/branch.c:687
msgid "print only branches that are merged"
msgstr "nur zusammengeführte Branches ausgeben"
-#: builtin/branch.c:674
+#: builtin/branch.c:688
msgid "print only branches that are not merged"
msgstr "nur nicht zusammengeführte Branches ausgeben"
-#: builtin/branch.c:675
+#: builtin/branch.c:689
msgid "list branches in columns"
msgstr "Branches in Spalten auflisten"
-#: builtin/branch.c:677 builtin/for-each-ref.c:45 builtin/notes.c:413
+#: builtin/branch.c:691 builtin/for-each-ref.c:45 builtin/notes.c:413
#: builtin/notes.c:416 builtin/notes.c:579 builtin/notes.c:582
-#: builtin/tag.c:475
+#: builtin/tag.c:476
msgid "object"
msgstr "Objekt"
-#: builtin/branch.c:678
+#: builtin/branch.c:692
msgid "print only branches of the object"
msgstr "nur Branches von diesem Objekt ausgeben"
-#: builtin/branch.c:679 builtin/for-each-ref.c:51 builtin/tag.c:482
+#: builtin/branch.c:693 builtin/for-each-ref.c:51 builtin/tag.c:483
msgid "sorting and filtering are case insensitive"
msgstr "Sortierung und Filterung sind unabhängig von Groß- und Kleinschreibung"
-#: builtin/branch.c:680 builtin/for-each-ref.c:41 builtin/tag.c:480
-#: builtin/verify-tag.c:38
+#: builtin/branch.c:694 builtin/ls-files.c:667
+msgid "recurse through submodules"
+msgstr "Rekursion in Submodulen durchführen"
+
+#: builtin/branch.c:695 builtin/for-each-ref.c:41 builtin/ls-tree.c:358
+#: builtin/tag.c:481 builtin/verify-tag.c:38
msgid "format to use for the output"
msgstr "für die Ausgabe zu verwendendes Format"
-#: builtin/branch.c:703 builtin/clone.c:678
+#: builtin/branch.c:718 builtin/clone.c:684
msgid "HEAD not found below refs/heads!"
msgstr "HEAD wurde nicht unter \"refs/heads\" gefunden!"
-#: builtin/branch.c:742 builtin/branch.c:798 builtin/branch.c:807
+#: builtin/branch.c:739
+msgid ""
+"branch with --recurse-submodules can only be used if submodule."
+"propagateBranches is enabled"
+msgstr ""
+"Branch mit --recurse-submodules kann nur genutzt werden, wenn submodule."
+"propagateBranches aktiviert ist"
+
+#: builtin/branch.c:741
+msgid "--recurse-submodules can only be used to create branches"
+msgstr "--recurse-submodules kann nur genutzt werden, um Branches zu erstellen"
+
+#: builtin/branch.c:770 builtin/branch.c:826 builtin/branch.c:835
msgid "branch name required"
msgstr "Branchname erforderlich"
-#: builtin/branch.c:774
+#: builtin/branch.c:802
msgid "Cannot give description to detached HEAD"
msgstr "zu losgelöstem HEAD kann keine Beschreibung hinterlegt werden"
-#: builtin/branch.c:779
+#: builtin/branch.c:807
msgid "cannot edit description of more than one branch"
msgstr "Beschreibung von mehr als einem Branch kann nicht bearbeitet werden"
-#: builtin/branch.c:786
+#: builtin/branch.c:814
#, c-format
msgid "No commit on branch '%s' yet."
msgstr "Noch kein Commit in Branch '%s'."
-#: builtin/branch.c:789
+#: builtin/branch.c:817
#, c-format
msgid "No branch named '%s'."
msgstr "Branch '%s' nicht vorhanden."
-#: builtin/branch.c:804
+#: builtin/branch.c:832
msgid "too many branches for a copy operation"
msgstr "zu viele Branches für eine Kopieroperation angegeben"
-#: builtin/branch.c:813
+#: builtin/branch.c:841
msgid "too many arguments for a rename operation"
msgstr "zu viele Argumente für eine Umbenennen-Operation angegeben"
-#: builtin/branch.c:818
+#: builtin/branch.c:846
msgid "too many arguments to set new upstream"
msgstr "zu viele Argumente angegeben, um Upstream-Branch zu setzen"
-#: builtin/branch.c:822
+#: builtin/branch.c:850
#, c-format
msgid ""
"could not set upstream of HEAD to %s when it does not point to any branch."
@@ -12187,34 +12447,34 @@ msgstr ""
"Konnte keinen neuen Upstream-Branch von HEAD zu %s setzen, da dieser auf\n"
"keinen Branch zeigt."
-#: builtin/branch.c:825 builtin/branch.c:848
+#: builtin/branch.c:853 builtin/branch.c:873
#, c-format
msgid "no such branch '%s'"
msgstr "Branch '%s' nicht gefunden"
-#: builtin/branch.c:829
+#: builtin/branch.c:857
#, c-format
msgid "branch '%s' does not exist"
msgstr "Branch '%s' existiert nicht"
-#: builtin/branch.c:842
+#: builtin/branch.c:867
msgid "too many arguments to unset upstream"
msgstr ""
"zu viele Argumente angegeben, um Konfiguration zu Upstream-Branch zu "
"entfernen"
-#: builtin/branch.c:846
+#: builtin/branch.c:871
msgid "could not unset upstream of HEAD when it does not point to any branch."
msgstr ""
"Konnte Konfiguration zu Upstream-Branch von HEAD nicht entfernen, da dieser\n"
"auf keinen Branch zeigt."
-#: builtin/branch.c:852
+#: builtin/branch.c:877
#, c-format
msgid "Branch '%s' has no upstream information"
msgstr "Branch '%s' hat keinen Upstream-Branch gesetzt"
-#: builtin/branch.c:862
+#: builtin/branch.c:890
msgid ""
"The -a, and -r, options to 'git branch' do not take a branch name.\n"
"Did you mean to use: -a|-r --list <pattern>?"
@@ -12223,7 +12483,7 @@ msgstr ""
"verwendet werden.\n"
"Wollten Sie -a|-r --list <Muster> benutzen?"
-#: builtin/branch.c:866
+#: builtin/branch.c:894
msgid ""
"the '--set-upstream' option is no longer supported. Please use '--track' or "
"'--set-upstream-to' instead."
@@ -12340,19 +12600,19 @@ msgstr "git bundle list-heads <Datei> [<Referenzname>...]"
msgid "git bundle unbundle <file> [<refname>...]"
msgstr "git bundle unbundle <Datei> [<Referenzname>...]"
-#: builtin/bundle.c:65 builtin/pack-objects.c:3876
+#: builtin/bundle.c:65 builtin/pack-objects.c:3899
msgid "do not show progress meter"
msgstr "keine Fortschrittsanzeige anzeigen"
-#: builtin/bundle.c:67 builtin/bundle.c:167 builtin/pack-objects.c:3878
+#: builtin/bundle.c:67 builtin/bundle.c:168 builtin/pack-objects.c:3901
msgid "show progress meter"
msgstr "Fortschrittsanzeige anzeigen"
-#: builtin/bundle.c:69 builtin/pack-objects.c:3880
+#: builtin/bundle.c:69 builtin/pack-objects.c:3903
msgid "show progress meter during object writing phase"
msgstr "Forschrittsanzeige während des Schreibens von Objekten anzeigen"
-#: builtin/bundle.c:72 builtin/pack-objects.c:3883
+#: builtin/bundle.c:72 builtin/pack-objects.c:3906
msgid "similar to --all-progress when progress meter is shown"
msgstr "ähnlich zu --all-progress wenn Fortschrittsanzeige darstellt wird"
@@ -12364,116 +12624,230 @@ msgstr "Version des Paket-Formats angeben"
msgid "Need a repository to create a bundle."
msgstr "Um ein Paket zu erstellen wird ein Repository benötigt."
-#: builtin/bundle.c:107
+#: builtin/bundle.c:108
msgid "do not show bundle details"
msgstr "Keine Bundle-Details anzeigen"
-#: builtin/bundle.c:126
+#: builtin/bundle.c:127
#, c-format
msgid "%s is okay\n"
msgstr "%s ist in Ordnung\n"
-#: builtin/bundle.c:182
+#: builtin/bundle.c:183
msgid "Need a repository to unbundle."
msgstr "Zum Entpacken wird ein Repository benötigt."
-#: builtin/bundle.c:185
+#: builtin/bundle.c:186
msgid "Unbundling objects"
msgstr "Entpacken von Objekten"
-#: builtin/bundle.c:219 builtin/remote.c:1733
+#: builtin/bundle.c:220 builtin/remote.c:1758
#, c-format
msgid "Unknown subcommand: %s"
msgstr "Unbekannter Unterbefehl: %s"
-#: builtin/cat-file.c:622
+#: builtin/cat-file.c:568
+msgid "flush is only for --buffer mode"
+msgstr "Flush ist nur für --buffer Modus"
+
+#: builtin/cat-file.c:612
+msgid "empty command in input"
+msgstr "leerer Befehl in der Eingabe"
+
+#: builtin/cat-file.c:614
+#, c-format
+msgid "whitespace before command: '%s'"
+msgstr "Whitespace vor Befehl: '%s'"
+
+#: builtin/cat-file.c:623
+#, c-format
+msgid "%s requires arguments"
+msgstr "%s benötigt Argumente"
+
+#: builtin/cat-file.c:628
+#, c-format
+msgid "%s takes no arguments"
+msgstr "%s braucht kein Argument"
+
+#: builtin/cat-file.c:636
+#, c-format
+msgid "unknown command: '%s'"
+msgstr "unbekannter Befehl: '%s'"
+
+#: builtin/cat-file.c:795
+msgid "only one batch option may be specified"
+msgstr "Nur eine Batch-Option erlaubt."
+
+#: builtin/cat-file.c:824
+msgid "git cat-file <type> <object>"
+msgstr "git cat-file <Typ> <Objekt>"
+
+#: builtin/cat-file.c:825
+msgid "git cat-file (-e | -p) <object>"
+msgstr "git cat-file (-e | -p) <Objekt>"
+
+#: builtin/cat-file.c:826
+msgid "git cat-file (-t | -s) [--allow-unknown-type] <object>"
+msgstr "git cat-file (-t | -s) [--allow-unknown-type] <Objekt>"
+
+#: builtin/cat-file.c:827
msgid ""
-"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 | --batch-command) [--batch-all-"
+"objects]\n"
+" [--buffer] [--follow-symlinks] [--unordered]\n"
+" [--textconv | --filters]"
msgstr ""
-"git cat-file (-t [--allow-unknown-type] | -s [--allow-unknown-type] | -e | -"
-"p | <Art> | --textconv | --filters) [--path=<Pfad>] <Objekt>"
+"git cat-file (--batch | --batch-check | --batch-command) [--batch-all-"
+"objects]\n"
+" [--buffer] [--follow-symlinks] [--unordered]\n"
+" [--textconv | --filters]"
-#: builtin/cat-file.c:623
+#: builtin/cat-file.c:830
msgid ""
-"git cat-file (--batch[=<format>] | --batch-check[=<format>]) [--follow-"
-"symlinks] [--textconv | --filters]"
+"git cat-file (--textconv | --filters)\n"
+" [<rev>:<path|tree-ish> | --path=<path|tree-ish> <rev>]"
msgstr ""
-"git cat-file (--batch[=<Format>] | --batch-check[=<Format>]) [--follow-"
-"symlinks] [--textconv | --filters]"
+"git cat-file (--textconv | --filters)\n"
+" [<Commit>:<Pfad|Commit-Referenz> | --path=<Pfad|Commit-"
+"Referenz> <Commit>]"
-#: builtin/cat-file.c:644
-msgid "only one batch option may be specified"
-msgstr "Nur eine Batch-Option erlaubt."
+#: builtin/cat-file.c:836
+msgid "Check object existence or emit object contents"
+msgstr "Überprüfen von Objektexistenz oder Ausgeben von Objekt-Inhalten"
+
+#: builtin/cat-file.c:838
+msgid "check if <object> exists"
+msgstr "prüfe, ob <Objekt> vorhanden ist"
-#: builtin/cat-file.c:662
-msgid "<type> can be one of: blob, tree, commit, tag"
-msgstr "<Art> kann sein: blob, tree, commit, tag"
+#: builtin/cat-file.c:839
+msgid "pretty-print <object> content"
+msgstr "ansprechende Anzeige für <Objekt> Inhalt"
-#: builtin/cat-file.c:663
-msgid "show object type"
-msgstr "Objektart anzeigen"
+#: builtin/cat-file.c:841
+msgid "Emit [broken] object attributes"
+msgstr "Ausgabe von [fehlerhaften] Objekt-Attributen"
-#: builtin/cat-file.c:664
+#: builtin/cat-file.c:842
+msgid "show object type (one of 'blob', 'tree', 'commit', 'tag', ...)"
+msgstr "zeige Objekt-Typ (eines von 'blob', 'tree', 'commit', 'tag', ...)"
+
+#: builtin/cat-file.c:843
msgid "show object size"
msgstr "Objektgröße anzeigen"
-#: builtin/cat-file.c:666
-msgid "exit with zero when there's no error"
-msgstr "mit Rückgabewert 0 beenden, wenn kein Fehler aufgetreten ist"
+#: builtin/cat-file.c:845
+msgid "allow -s and -t to work with broken/corrupt objects"
+msgstr "-s und -t mit beschädigten Objekten erlauben"
-#: builtin/cat-file.c:667
-msgid "pretty-print object's content"
-msgstr "ansprechende Anzeige des Objektinhaltes"
+#: builtin/cat-file.c:847
+msgid "Batch objects requested on stdin (or --batch-all-objects)"
+msgstr ""
+"Batch-Objekte von Standard-Eingabe (oder --batch-all-objects) angefordert"
-#: builtin/cat-file.c:669
-msgid "for blob objects, run textconv on object's content"
-msgstr "eine Textkonvertierung auf den Inhalt von Blob-Objekten ausführen"
+#: builtin/cat-file.c:849
+msgid "show full <object> or <rev> contents"
+msgstr "vollständige Inhalte von <Objekt> oder <Commit> anzeigen"
-#: builtin/cat-file.c:671
-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:853
+msgid "like --batch, but don't emit <contents>"
+msgstr "wie --batch, aber keine Ausgabe von <Inhalten>"
-#: builtin/cat-file.c:672
-msgid "blob"
-msgstr "Blob"
+#: builtin/cat-file.c:857
+msgid "read commands from stdin"
+msgstr "Befehle von der Standard-Eingabe lesen"
-#: builtin/cat-file.c:673
-msgid "use a specific path for --textconv/--filters"
-msgstr "einen bestimmten Pfad für --textconv/--filters verwenden"
+#: builtin/cat-file.c:861
+msgid "with --batch[-check]: ignores stdin, batches all known objects"
+msgstr ""
+"mit --batch[-check]: ignoriert Standard-Eingabe, Stapelverarbeitung aller "
+"bekannten Objekte"
-#: builtin/cat-file.c:675
-msgid "allow -s and -t to work with broken/corrupt objects"
-msgstr "-s und -t mit beschädigten Objekten erlauben"
+#: builtin/cat-file.c:863
+msgid "Change or optimize batch output"
+msgstr "Ändern oder Optimieren der Batch-Ausgabe"
-#: builtin/cat-file.c:676
+#: builtin/cat-file.c:864
msgid "buffer --batch output"
msgstr "Ausgabe von --batch puffern"
-#: builtin/cat-file.c:678
-msgid "show info and content of objects fed from the standard input"
-msgstr ""
-"Anzeige von Informationen und Inhalt von Objekten, gelesen von der Standard-"
-"Eingabe"
+#: builtin/cat-file.c:866
+msgid "follow in-tree symlinks"
+msgstr "folge symbolische Verknüpfungen in Verzeichnissen"
-#: builtin/cat-file.c:682
-msgid "show info about objects fed from the standard input"
+#: builtin/cat-file.c:868
+msgid "do not order objects before emitting them"
+msgstr "Objekte nicht ordnen, bevor sie ausgegeben werden"
+
+#: builtin/cat-file.c:870
+msgid ""
+"Emit object (blob or tree) with conversion or filter (stand-alone, or with "
+"batch)"
msgstr ""
-"Anzeige von Informationen über Objekte, gelesen von der Standard-Eingabe"
+"Objekt (Blob oder Verzeichnis) mit Konvertierung oder Filter (eigenständig "
+"oder mit Batch) ausgeben"
-#: builtin/cat-file.c:686
-msgid "follow in-tree symlinks (used with --batch or --batch-check)"
+#: builtin/cat-file.c:872
+msgid "run textconv on object's content"
+msgstr "eine Textkonvertierung auf Objekt-Inhalte ausführen"
+
+#: builtin/cat-file.c:874
+msgid "run filters on object's content"
+msgstr "Filter auf Objekt-Inhalte ausführen"
+
+#: builtin/cat-file.c:875
+msgid "blob|tree"
+msgstr "Blob|Verzeichnis"
+
+#: builtin/cat-file.c:876
+msgid "use a <path> for (--textconv | --filters); Not with 'batch'"
msgstr ""
-"symbolischen Verknüpfungen innerhalb des Repositories folgen (verwendet mit "
-"--batch oder --batch-check)"
+"nutzen Sie einen <Pfad> für (--textconv | --filters); Nicht mit 'batch'"
+
+#: builtin/cat-file.c:894
+#, c-format
+msgid "'%s=<%s>' needs '%s' or '%s'"
+msgstr "'%s=<%s>' benötigt '%s' oder '%s'"
-#: builtin/cat-file.c:688
-msgid "show all objects with --batch or --batch-check"
-msgstr "alle Objekte mit --batch oder --batch-check anzeigen"
+#: builtin/cat-file.c:896
+msgid "path|tree-ish"
+msgstr "Pfad|Commit-Referenz"
-#: builtin/cat-file.c:690
-msgid "do not order --batch-all-objects output"
-msgstr "Ausgabe von --batch-all-objects nicht ordnen"
+#: builtin/cat-file.c:903 builtin/cat-file.c:906 builtin/cat-file.c:909
+#, c-format
+msgid "'%s' requires a batch mode"
+msgstr "'%s' erfordert einen Batch-Modus"
+
+#: builtin/cat-file.c:921
+#, c-format
+msgid "'-%c' is incompatible with batch mode"
+msgstr "'%c' ist inkompatibel mit dem Batch-Modus"
+
+#: builtin/cat-file.c:924
+msgid "batch modes take no arguments"
+msgstr "Batch-Modi erwarten keine Argumente"
+
+#: builtin/cat-file.c:932 builtin/cat-file.c:935
+#, c-format
+msgid "<rev> required with '%s'"
+msgstr "<Commit> benötigt mit '%s'"
+
+#: builtin/cat-file.c:938
+#, c-format
+msgid "<object> required with '-%c'"
+msgstr "<Objekt> benötigt mit '-%c'"
+
+#: builtin/cat-file.c:943 builtin/notes.c:374 builtin/notes.c:429
+#: builtin/notes.c:507 builtin/notes.c:519 builtin/notes.c:596
+#: builtin/notes.c:663 builtin/notes.c:813 builtin/notes.c:965
+#: builtin/notes.c:987 builtin/prune-packed.c:25 builtin/receive-pack.c:2489
+#: builtin/tag.c:592
+msgid "too many arguments"
+msgstr "zu viele Argumente"
+
+#: builtin/cat-file.c:947
+#, c-format
+msgid "only two arguments allowed in <type> <object> mode, not %d"
+msgstr "nur zwei Argumente im <Typ> <Objekt> Modus erlaubt, nicht %d"
#: builtin/check-attr.c:13
msgid "git check-attr [-a | --all | <attr>...] [--] <pathname>..."
@@ -12491,7 +12865,7 @@ msgstr "alle Attribute einer Datei ausgeben"
msgid "use .gitattributes only from the index"
msgstr "nur .gitattributes vom Index verwenden"
-#: builtin/check-attr.c:23 builtin/check-ignore.c:25 builtin/hash-object.c:100
+#: builtin/check-attr.c:23 builtin/check-ignore.c:25 builtin/hash-object.c:101
msgid "read file names from stdin"
msgstr "Dateinamen von der Standard-Eingabe lesen"
@@ -12499,8 +12873,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:1532 builtin/gc.c:550
-#: builtin/worktree.c:493
+#: builtin/check-ignore.c:21 builtin/checkout.c:1550 builtin/gc.c:550
+#: builtin/worktree.c:565
msgid "suppress progress reporting"
msgstr "Fortschrittsanzeige unterdrücken"
@@ -12547,7 +12921,7 @@ msgstr "ebenfalls Kontakte von der Standard-Eingabe lesen"
#: builtin/check-mailmap.c:25
#, c-format
msgid "unable to parse contact: %s"
-msgstr "Konnte Kontakt '%s' nicht parsen."
+msgstr "konnte Kontakt nicht parsen: %s"
#: builtin/check-mailmap.c:48
msgid "no contacts specified"
@@ -12557,165 +12931,169 @@ msgstr "keine Kontakte angegeben"
msgid "git checkout--worker [<options>]"
msgstr "git checkout--worker [<Optionen>]"
-#: builtin/checkout--worker.c:118 builtin/checkout-index.c:201
-#: builtin/column.c:31 builtin/column.c:32 builtin/submodule--helper.c:1864
-#: builtin/submodule--helper.c:1867 builtin/submodule--helper.c:1875
-#: builtin/submodule--helper.c:2511 builtin/submodule--helper.c:2577
-#: builtin/worktree.c:491 builtin/worktree.c:728
+#: builtin/checkout--worker.c:118 builtin/checkout-index.c:235
+#: builtin/column.c:31 builtin/column.c:32 builtin/submodule--helper.c:1878
+#: builtin/submodule--helper.c:1881 builtin/submodule--helper.c:1889
+#: builtin/submodule--helper.c:2716 builtin/worktree.c:563
+#: builtin/worktree.c:808
msgid "string"
msgstr "Zeichenkette"
-#: builtin/checkout--worker.c:119 builtin/checkout-index.c:202
+#: builtin/checkout--worker.c:119 builtin/checkout-index.c:236
msgid "when creating files, prepend <string>"
msgstr ""
"wenn Dateien erzeugt werden, stelle <Zeichenkette> dem Dateinamen voran"
-#: builtin/checkout-index.c:152
+#: builtin/checkout-index.c:184
msgid "git checkout-index [<options>] [--] [<file>...]"
msgstr "git checkout-index [<Optionen>] [--] [<Datei>...]"
-#: builtin/checkout-index.c:169
+#: builtin/checkout-index.c:201
msgid "stage should be between 1 and 3 or all"
msgstr "stage sollte zwischen 1 und 3 oder 'all' sein"
-#: builtin/checkout-index.c:187
+#: builtin/checkout-index.c:219
msgid "check out all files in the index"
msgstr "alle Dateien im Index auschecken"
-#: builtin/checkout-index.c:188
+#: builtin/checkout-index.c:221
+msgid "do not skip files with skip-worktree set"
+msgstr "Dateien mit gesetztem skip-worktree nicht überspringen"
+
+#: builtin/checkout-index.c:222
msgid "force overwrite of existing files"
msgstr "das Ãœberschreiben bereits existierender Dateien erzwingen"
-#: builtin/checkout-index.c:190
+#: builtin/checkout-index.c:224
msgid "no warning for existing files and files not in index"
msgstr ""
"keine Warnung für existierende Dateien, und Dateien, die sich nicht im Index "
"befinden"
-#: builtin/checkout-index.c:192
+#: builtin/checkout-index.c:226
msgid "don't checkout new files"
msgstr "keine neuen Dateien auschecken"
-#: builtin/checkout-index.c:194
+#: builtin/checkout-index.c:228
msgid "update stat information in the index file"
msgstr "Dateiinformationen in der Index-Datei aktualisieren"
-#: builtin/checkout-index.c:198
+#: builtin/checkout-index.c:232
msgid "read list of paths from the standard input"
msgstr "eine Liste von Pfaden von der Standard-Eingabe lesen"
-#: builtin/checkout-index.c:200
+#: builtin/checkout-index.c:234
msgid "write the content to temporary files"
msgstr "den Inhalt in temporäre Dateien schreiben"
-#: builtin/checkout-index.c:204
+#: builtin/checkout-index.c:238
msgid "copy out the files from named stage"
msgstr "Dateien von dem benannten Stand kopieren"
-#: builtin/checkout.c:33
+#: builtin/checkout.c:34
msgid "git checkout [<options>] <branch>"
msgstr "git checkout [<Optionen>] <Branch>"
-#: builtin/checkout.c:34
+#: builtin/checkout.c:35
msgid "git checkout [<options>] [<branch>] -- <file>..."
msgstr "git checkout [<Optionen>] [<Branch>] -- <Datei>..."
-#: builtin/checkout.c:39
+#: builtin/checkout.c:40
msgid "git switch [<options>] [<branch>]"
msgstr "git switch [<Optionen>] [<Branch>]"
-#: builtin/checkout.c:44
+#: builtin/checkout.c:45
msgid "git restore [<options>] [--source=<branch>] <file>..."
msgstr "git restore [<Optionen>] [--source=<Branch>] <Datei>..."
-#: builtin/checkout.c:198 builtin/checkout.c:237
+#: builtin/checkout.c:199 builtin/checkout.c:238
#, c-format
msgid "path '%s' does not have our version"
-msgstr "Pfad '%s' hat nicht unsere Version."
+msgstr "Pfad '%s' hat nicht unsere Version"
-#: builtin/checkout.c:200 builtin/checkout.c:239
+#: builtin/checkout.c:201 builtin/checkout.c:240
#, c-format
msgid "path '%s' does not have their version"
-msgstr "Pfad '%s' hat nicht deren Version."
+msgstr "Pfad '%s' hat nicht deren Version"
-#: builtin/checkout.c:216
+#: builtin/checkout.c:217
#, c-format
msgid "path '%s' does not have all necessary versions"
-msgstr "Pfad '%s' hat nicht alle notwendigen Versionen."
+msgstr "Pfad '%s' hat nicht alle notwendigen Versionen"
-#: builtin/checkout.c:269
+#: builtin/checkout.c:271
#, c-format
msgid "path '%s' does not have necessary versions"
-msgstr "Pfad '%s' hat nicht die notwendigen Versionen."
+msgstr "Pfad '%s' hat nicht die notwendigen Versionen"
-#: builtin/checkout.c:286
+#: builtin/checkout.c:291
#, c-format
msgid "path '%s': cannot merge"
msgstr "Pfad '%s': kann nicht zusammenführen"
-#: builtin/checkout.c:302
+#: builtin/checkout.c:307
#, c-format
msgid "Unable to add merge result for '%s'"
msgstr "Konnte Merge-Ergebnis von '%s' nicht hinzufügen."
-#: builtin/checkout.c:419
+#: builtin/checkout.c:424
#, c-format
msgid "Recreated %d merge conflict"
msgid_plural "Recreated %d merge conflicts"
msgstr[0] "%d Merge-Konflikt wieder erstellt"
msgstr[1] "%d Merge-Konflikte wieder erstellt"
-#: builtin/checkout.c:424
+#: builtin/checkout.c:429
#, c-format
msgid "Updated %d path from %s"
msgid_plural "Updated %d paths from %s"
msgstr[0] "%d Pfad von %s aktualisiert"
msgstr[1] "%d Pfade von %s aktualisiert"
-#: builtin/checkout.c:431
+#: builtin/checkout.c:436
#, c-format
msgid "Updated %d path from the index"
msgid_plural "Updated %d paths from the index"
msgstr[0] "%d Pfad vom Index aktualisiert"
msgstr[1] "%d Pfade vom Index aktualisiert"
-#: builtin/checkout.c:454 builtin/checkout.c:457 builtin/checkout.c:460
-#: builtin/checkout.c:464
+#: builtin/checkout.c:459 builtin/checkout.c:462 builtin/checkout.c:465
+#: builtin/checkout.c:469
#, c-format
msgid "'%s' cannot be used with updating paths"
msgstr "'%s' kann nicht mit der Aktualisierung von Pfaden verwendet werden"
-#: builtin/checkout.c:474
+#: builtin/checkout.c:479
#, c-format
msgid "Cannot update paths and switch to branch '%s' at the same time."
msgstr ""
"Kann nicht gleichzeitig Pfade aktualisieren und zu Branch '%s' wechseln"
-#: builtin/checkout.c:478
+#: builtin/checkout.c:483
#, c-format
msgid "neither '%s' or '%s' is specified"
msgstr "Weder '%s' noch '%s' ist angegeben"
-#: builtin/checkout.c:482
+#: builtin/checkout.c:487
#, c-format
msgid "'%s' must be used when '%s' is not specified"
msgstr "'%s' kann nur genutzt werden, wenn '%s' nicht verwendet wird"
-#: builtin/checkout.c:487 builtin/checkout.c:492
+#: builtin/checkout.c:492 builtin/checkout.c:497
#, c-format
msgid "'%s' or '%s' cannot be used with %s"
msgstr "'%s' oder '%s' kann nicht mit %s verwendet werden"
-#: builtin/checkout.c:566 builtin/checkout.c:573
+#: builtin/checkout.c:571 builtin/checkout.c:578
#, c-format
msgid "path '%s' is unmerged"
-msgstr "Pfad '%s' ist nicht zusammengeführt."
+msgstr "Pfad '%s' ist nicht zusammengeführt"
-#: builtin/checkout.c:747
+#: builtin/checkout.c:753
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:797
+#: builtin/checkout.c:809
#, c-format
msgid ""
"cannot continue with staged changes in the following files:\n"
@@ -12724,50 +13102,50 @@ msgstr ""
"Kann nicht mit vorgemerkten Änderungen in folgenden Dateien fortsetzen:\n"
"%s"
-#: builtin/checkout.c:890
+#: builtin/checkout.c:902
#, 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:934
+#: builtin/checkout.c:947
msgid "HEAD is now at"
msgstr "HEAD ist jetzt bei"
-#: builtin/checkout.c:938 builtin/clone.c:609 t/helper/test-fast-rebase.c:203
+#: builtin/checkout.c:951 builtin/clone.c:615 t/helper/test-fast-rebase.c:203
msgid "unable to update HEAD"
msgstr "Konnte HEAD nicht aktualisieren."
-#: builtin/checkout.c:942
+#: builtin/checkout.c:955
#, c-format
msgid "Reset branch '%s'\n"
msgstr "Setze Branch '%s' neu\n"
-#: builtin/checkout.c:945
+#: builtin/checkout.c:958
#, c-format
msgid "Already on '%s'\n"
msgstr "Bereits auf '%s'\n"
-#: builtin/checkout.c:949
+#: builtin/checkout.c:962
#, c-format
msgid "Switched to and reset branch '%s'\n"
msgstr "Zu umgesetztem Branch '%s' gewechselt\n"
-#: builtin/checkout.c:951 builtin/checkout.c:1388
+#: builtin/checkout.c:964 builtin/checkout.c:1398
#, c-format
msgid "Switched to a new branch '%s'\n"
msgstr "Zu neuem Branch '%s' gewechselt\n"
-#: builtin/checkout.c:953
+#: builtin/checkout.c:966
#, c-format
msgid "Switched to branch '%s'\n"
msgstr "Zu Branch '%s' gewechselt\n"
-#: builtin/checkout.c:1004
+#: builtin/checkout.c:1017
#, c-format
msgid " ... and %d more.\n"
msgstr " ... und %d weitere.\n"
-#: builtin/checkout.c:1010
+#: builtin/checkout.c:1023
#, c-format
msgid ""
"Warning: you are leaving %d commit behind, not connected to\n"
@@ -12790,7 +13168,7 @@ msgstr[1] ""
"\n"
"%s\n"
-#: builtin/checkout.c:1029
+#: builtin/checkout.c:1042
#, c-format
msgid ""
"If you want to keep it by creating a new branch, this may be a good time\n"
@@ -12817,19 +13195,19 @@ msgstr[1] ""
" git branch <neuer-Branchname> %s\n"
"\n"
-#: builtin/checkout.c:1064
+#: builtin/checkout.c:1077
msgid "internal error in revision walk"
msgstr "interner Fehler im Revisionsgang"
-#: builtin/checkout.c:1068
+#: builtin/checkout.c:1081
msgid "Previous HEAD position was"
msgstr "Vorherige Position von HEAD war"
-#: builtin/checkout.c:1114 builtin/checkout.c:1383
+#: builtin/checkout.c:1124 builtin/checkout.c:1393
msgid "You are on a branch yet to be born"
msgstr "Sie sind auf einem Branch, der noch nicht geboren ist"
-#: builtin/checkout.c:1196
+#: builtin/checkout.c:1206
#, c-format
msgid ""
"'%s' could be both a local file and a tracking branch.\n"
@@ -12839,7 +13217,7 @@ msgstr ""
"Bitte benutzen Sie -- (und optional --no-guess), um diese\n"
"eindeutig voneinander zu unterscheiden."
-#: builtin/checkout.c:1203
+#: builtin/checkout.c:1213
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"
@@ -12862,51 +13240,58 @@ msgstr ""
"bevorzugen möchten, z.B. 'origin', können Sie die Einstellung\n"
"checkout.defaultRemote=origin in Ihrer Konfiguration setzen."
-#: builtin/checkout.c:1213
+#: builtin/checkout.c:1223
#, c-format
msgid "'%s' matched multiple (%d) remote tracking branches"
msgstr "'%s' entspricht mehreren (%d) Remote-Tracking-Branches"
-#: builtin/checkout.c:1279
+#: builtin/checkout.c:1289
msgid "only one reference expected"
msgstr "nur eine Referenz erwartet"
-#: builtin/checkout.c:1296
+#: builtin/checkout.c:1306
#, c-format
msgid "only one reference expected, %d given."
msgstr "nur eine Referenz erwartet, %d gegeben."
-#: builtin/checkout.c:1342 builtin/worktree.c:269 builtin/worktree.c:436
+#: builtin/checkout.c:1352 builtin/worktree.c:338 builtin/worktree.c:508
#, c-format
msgid "invalid reference: %s"
msgstr "Ungültige Referenz: %s"
-#: builtin/checkout.c:1355 builtin/checkout.c:1725
+#: builtin/checkout.c:1365 builtin/checkout.c:1744
#, c-format
msgid "reference is not a tree: %s"
msgstr "Referenz ist kein \"Tree\"-Objekt: %s"
-#: builtin/checkout.c:1402
+#: builtin/checkout.c:1413
#, c-format
msgid "a branch is expected, got tag '%s'"
msgstr "Ein Branch wird erwartet, Tag '%s' bekommen"
-#: builtin/checkout.c:1404
+#: builtin/checkout.c:1415
#, c-format
msgid "a branch is expected, got remote branch '%s'"
msgstr "Ein Branch wird erwartet, Remote-Branch '%s' bekommen"
-#: builtin/checkout.c:1405 builtin/checkout.c:1413
+#: builtin/checkout.c:1417 builtin/checkout.c:1426
#, c-format
msgid "a branch is expected, got '%s'"
msgstr "Ein Branch wird erwartet, '%s' bekommen"
-#: builtin/checkout.c:1408
+#: builtin/checkout.c:1420
#, c-format
msgid "a branch is expected, got commit '%s'"
msgstr "Ein Branch wird erwartet, Commit '%s' bekommen"
-#: builtin/checkout.c:1424
+#: builtin/checkout.c:1429
+msgid ""
+"If you want to detach HEAD at the commit, try again with the --detach option."
+msgstr ""
+"Wenn Sie HEAD bei dem Commit loslösen möchten, versuchen Sie es erneut mit "
+"der --detach Option."
+
+#: builtin/checkout.c:1442
msgid ""
"cannot switch branch while merging\n"
"Consider \"git merge --quit\" or \"git worktree add\"."
@@ -12914,7 +13299,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:1428
+#: builtin/checkout.c:1446
msgid ""
"cannot switch branch in the middle of an am session\n"
"Consider \"git am --quit\" or \"git worktree add\"."
@@ -12923,7 +13308,7 @@ msgstr ""
"werden.\n"
"Ziehen Sie \"git am --quit\" oder \"git worktree add\" in Betracht."
-#: builtin/checkout.c:1432
+#: builtin/checkout.c:1450
msgid ""
"cannot switch branch while rebasing\n"
"Consider \"git rebase --quit\" or \"git worktree add\"."
@@ -12932,7 +13317,7 @@ msgstr ""
"werden.\n"
"Ziehen Sie \"git rebase --quit\" oder \"git worktree add\" in Betracht."
-#: builtin/checkout.c:1436
+#: builtin/checkout.c:1454
msgid ""
"cannot switch branch while cherry-picking\n"
"Consider \"git cherry-pick --quit\" or \"git worktree add\"."
@@ -12941,7 +13326,7 @@ msgstr ""
"gewechselt werden.\n"
"Ziehen Sie \"git cherry-pick --quit\" oder \"git worktree add\" in Betracht."
-#: builtin/checkout.c:1440
+#: builtin/checkout.c:1458
msgid ""
"cannot switch branch while reverting\n"
"Consider \"git revert --quit\" or \"git worktree add\"."
@@ -12950,129 +13335,125 @@ msgstr ""
"werden.\n"
"Ziehen Sie \"git revert --quit\" oder \"git worktree add\" in Betracht."
-#: builtin/checkout.c:1444
+#: builtin/checkout.c:1462
msgid "you are switching branch while bisecting"
msgstr "Sie wechseln den Branch während einer binären Suche"
-#: builtin/checkout.c:1451
+#: builtin/checkout.c:1469
msgid "paths cannot be used with switching branches"
msgstr "Pfade können nicht beim Wechseln von Branches verwendet werden"
-#: builtin/checkout.c:1454 builtin/checkout.c:1458 builtin/checkout.c:1462
+#: builtin/checkout.c:1472 builtin/checkout.c:1476 builtin/checkout.c:1480
#, c-format
msgid "'%s' cannot be used with switching branches"
msgstr "'%s' kann nicht beim Wechseln von Branches verwendet werden"
-#: builtin/checkout.c:1466 builtin/checkout.c:1469 builtin/checkout.c:1472
-#: builtin/checkout.c:1477 builtin/checkout.c:1482
+#: builtin/checkout.c:1484 builtin/checkout.c:1487 builtin/checkout.c:1490
+#: builtin/checkout.c:1495 builtin/checkout.c:1500
#, c-format
msgid "'%s' cannot be used with '%s'"
msgstr "'%s' kann nicht mit '%s' verwendet werden"
-#: builtin/checkout.c:1479
+#: builtin/checkout.c:1497
#, c-format
msgid "'%s' cannot take <start-point>"
msgstr "'%s' kann nicht <Startpunkt> bekommen"
-#: builtin/checkout.c:1487
+#: builtin/checkout.c:1505
#, c-format
msgid "Cannot switch branch to a non-commit '%s'"
msgstr "Kann Branch nicht zu Nicht-Commit '%s' wechseln"
-#: builtin/checkout.c:1494
+#: builtin/checkout.c:1512
msgid "missing branch or commit argument"
msgstr "Branch- oder Commit-Argument fehlt"
-#: builtin/checkout.c:1537
+#: builtin/checkout.c:1555
msgid "perform a 3-way merge with the new branch"
msgstr "einen 3-Wege-Merge mit dem neuen Branch ausführen"
-#: builtin/checkout.c:1538 builtin/log.c:1825 parse-options.h:323
+#: builtin/checkout.c:1556 builtin/log.c:1844 parse-options.h:354
msgid "style"
msgstr "Stil"
-#: builtin/checkout.c:1539
+#: builtin/checkout.c:1557
msgid "conflict style (merge, diff3, or zdiff3)"
msgstr "Konfliktstil (merge, diff3 oder zdiff3)"
-#: builtin/checkout.c:1551 builtin/worktree.c:488
+#: builtin/checkout.c:1569 builtin/worktree.c:560
msgid "detach HEAD at named commit"
msgstr "HEAD bei benanntem Commit loslösen"
-#: builtin/checkout.c:1553
-msgid "set up tracking mode (see git-pull(1))"
-msgstr "Modus zum Folgen von Branches einstellen (siehe git-pull(1))"
-
-#: builtin/checkout.c:1556
+#: builtin/checkout.c:1574
msgid "force checkout (throw away local modifications)"
msgstr "Auschecken erzwingen (verwirft lokale Änderungen)"
-#: builtin/checkout.c:1558
+#: builtin/checkout.c:1576
msgid "new-branch"
msgstr "neuer Branch"
-#: builtin/checkout.c:1558
+#: builtin/checkout.c:1576
msgid "new unparented branch"
msgstr "neuer Branch ohne Eltern-Commit"
-#: builtin/checkout.c:1560 builtin/merge.c:305
+#: builtin/checkout.c:1578 builtin/merge.c:305
msgid "update ignored files (default)"
msgstr "ignorierte Dateien aktualisieren (Standard)"
-#: builtin/checkout.c:1563
+#: builtin/checkout.c:1581
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:1576
+#: builtin/checkout.c:1594
msgid "checkout our version for unmerged files"
msgstr "unsere Variante für nicht zusammengeführte Dateien auschecken"
-#: builtin/checkout.c:1579
+#: builtin/checkout.c:1597
msgid "checkout their version for unmerged files"
msgstr "ihre Variante für nicht zusammengeführte Dateien auschecken"
-#: builtin/checkout.c:1583
+#: builtin/checkout.c:1601
msgid "do not limit pathspecs to sparse entries only"
msgstr "keine Einschränkung bei Pfadspezifikationen zum partiellen Auschecken"
-#: builtin/checkout.c:1640
+#: builtin/checkout.c:1659
#, c-format
msgid "options '-%c', '-%c', and '%s' cannot be used together"
msgstr ""
"die Optionen '-%c', '-%c' und '%s' können nicht gemeinsam verwendet werden"
-#: builtin/checkout.c:1681
+#: builtin/checkout.c:1700
msgid "--track needs a branch name"
msgstr "--track benötigt ein Branchname"
-#: builtin/checkout.c:1686
+#: builtin/checkout.c:1705
#, c-format
msgid "missing branch name; try -%c"
msgstr "kein Branchname; versuchen Sie -%c"
-#: builtin/checkout.c:1718
+#: builtin/checkout.c:1737
#, c-format
msgid "could not resolve %s"
msgstr "konnte %s nicht auflösen"
-#: builtin/checkout.c:1734
+#: builtin/checkout.c:1753
msgid "invalid path specification"
msgstr "ungültige Pfadspezifikation"
-#: builtin/checkout.c:1741
+#: builtin/checkout.c:1760
#, 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:1745
+#: builtin/checkout.c:1764
#, 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:1770
+#: builtin/checkout.c:1789
msgid ""
"git checkout: --ours/--theirs, --force and --merge are incompatible when\n"
"checking out of the index."
@@ -13080,71 +13461,71 @@ msgstr ""
"git checkout: --ours/--theirs, --force und --merge sind inkompatibel wenn\n"
"Sie aus dem Index auschecken."
-#: builtin/checkout.c:1775
+#: builtin/checkout.c:1794
msgid "you must specify path(s) to restore"
msgstr "Sie müssen Pfad(e) zur Wiederherstellung angeben."
-#: builtin/checkout.c:1800 builtin/checkout.c:1802 builtin/checkout.c:1854
-#: builtin/checkout.c:1856 builtin/clone.c:126 builtin/remote.c:170
-#: builtin/remote.c:172 builtin/submodule--helper.c:2959
-#: builtin/submodule--helper.c:3253 builtin/worktree.c:484
-#: builtin/worktree.c:486
+#: builtin/checkout.c:1819 builtin/checkout.c:1821 builtin/checkout.c:1873
+#: builtin/checkout.c:1875 builtin/clone.c:130 builtin/remote.c:171
+#: builtin/remote.c:173 builtin/submodule--helper.c:3038
+#: builtin/submodule--helper.c:3371 builtin/worktree.c:556
+#: builtin/worktree.c:558
msgid "branch"
msgstr "Branch"
-#: builtin/checkout.c:1801
+#: builtin/checkout.c:1820
msgid "create and checkout a new branch"
msgstr "einen neuen Branch erzeugen und auschecken"
-#: builtin/checkout.c:1803
+#: builtin/checkout.c:1822
msgid "create/reset and checkout a branch"
msgstr "einen Branch erstellen/umsetzen und auschecken"
-#: builtin/checkout.c:1804
+#: builtin/checkout.c:1823
msgid "create reflog for new branch"
msgstr "das Reflog für den neuen Branch erzeugen"
-#: builtin/checkout.c:1806
+#: builtin/checkout.c:1825
msgid "second guess 'git checkout <no-such-branch>' (default)"
msgstr "Zweite Vermutung 'git checkout <kein-solcher-Branch>' (Standard)"
-#: builtin/checkout.c:1807
+#: builtin/checkout.c:1826
msgid "use overlay mode (default)"
msgstr "benutze Overlay-Modus (Standard)"
-#: builtin/checkout.c:1855
+#: builtin/checkout.c:1874
msgid "create and switch to a new branch"
msgstr "einen neuen Branch erzeugen und dahin wechseln"
-#: builtin/checkout.c:1857
+#: builtin/checkout.c:1876
msgid "create/reset and switch to a branch"
msgstr "einen Branch erstellen/umsetzen und dahin wechseln"
-#: builtin/checkout.c:1859
+#: builtin/checkout.c:1878
msgid "second guess 'git switch <no-such-branch>'"
msgstr "Zweite Vermutung 'git switch <kein-solcher-Branch>'"
-#: builtin/checkout.c:1861
+#: builtin/checkout.c:1880
msgid "throw away local modifications"
msgstr "lokale Änderungen verwerfen"
-#: builtin/checkout.c:1897
+#: builtin/checkout.c:1916
msgid "which tree-ish to checkout from"
msgstr "Von welcher Commit-Referenz ausgecheckt werden soll"
-#: builtin/checkout.c:1899
+#: builtin/checkout.c:1918
msgid "restore the index"
msgstr "Index wiederherstellen"
-#: builtin/checkout.c:1901
+#: builtin/checkout.c:1920
msgid "restore the working tree (default)"
msgstr "das Arbeitsverzeichnis wiederherstellen (Standard)"
-#: builtin/checkout.c:1903
+#: builtin/checkout.c:1922
msgid "ignore unmerged entries"
msgstr "ignoriere nicht zusammengeführte Einträge"
-#: builtin/checkout.c:1904
+#: builtin/checkout.c:1923
msgid "use overlay mode"
msgstr "benutze Overlay-Modus"
@@ -13292,8 +13673,8 @@ msgid "remove whole directories"
msgstr "ganze Verzeichnisse löschen"
#: builtin/clean.c:932 builtin/describe.c:565 builtin/describe.c:567
-#: builtin/grep.c:937 builtin/log.c:184 builtin/log.c:186
-#: builtin/ls-files.c:651 builtin/name-rev.c:535 builtin/name-rev.c:537
+#: builtin/grep.c:938 builtin/log.c:185 builtin/log.c:187
+#: builtin/ls-files.c:651 builtin/name-rev.c:585 builtin/name-rev.c:587
#: builtin/show-ref.c:179
msgid "pattern"
msgstr "Muster"
@@ -13330,216 +13711,220 @@ msgstr ""
msgid "-x and -X cannot be used together"
msgstr "-x und -X können nicht gemeinsam verwendet werden"
-#: builtin/clone.c:45
+#: builtin/clone.c:47
msgid "git clone [<options>] [--] <repo> [<dir>]"
msgstr "git clone [<Optionen>] [--] <Repository> [<Verzeichnis>]"
-#: builtin/clone.c:96
+#: builtin/clone.c:100
msgid "don't clone shallow repository"
msgstr "Repository mit unvollständiger Historie nicht klonen"
-#: builtin/clone.c:98
+#: builtin/clone.c:102
msgid "don't create a checkout"
msgstr "kein Auschecken"
-#: builtin/clone.c:99 builtin/clone.c:101 builtin/init-db.c:542
+#: builtin/clone.c:103 builtin/clone.c:105 builtin/init-db.c:542
msgid "create a bare repository"
msgstr "ein Bare-Repository erstellen"
-#: builtin/clone.c:103
+#: builtin/clone.c:107
msgid "create a mirror repository (implies bare)"
msgstr "ein Spiegelarchiv erstellen (impliziert bare)"
-#: builtin/clone.c:105
+#: builtin/clone.c:109
msgid "to clone from a local repository"
msgstr "von einem lokalen Repository klonen"
-#: builtin/clone.c:107
+#: builtin/clone.c:111
msgid "don't use local hardlinks, always copy"
msgstr "lokal keine harten Verweise verwenden, immer Kopien"
-#: builtin/clone.c:109
+#: builtin/clone.c:113
msgid "setup as shared repository"
msgstr "als verteiltes Repository einrichten"
-#: builtin/clone.c:111
+#: builtin/clone.c:115
msgid "pathspec"
msgstr "Pfadspezifikation"
-#: builtin/clone.c:111
+#: builtin/clone.c:115
msgid "initialize submodules in the clone"
msgstr "Submodule im Klon initialisieren"
-#: builtin/clone.c:115
+#: builtin/clone.c:119
msgid "number of submodules cloned in parallel"
msgstr "Anzahl der parallel zu klonenden Submodule"
-#: builtin/clone.c:116 builtin/init-db.c:539
+#: builtin/clone.c:120 builtin/init-db.c:539
msgid "template-directory"
msgstr "Vorlagenverzeichnis"
-#: builtin/clone.c:117 builtin/init-db.c:540
+#: builtin/clone.c:121 builtin/init-db.c:540
msgid "directory from which templates will be used"
msgstr "Verzeichnis, von welchem die Vorlagen verwendet werden"
-#: builtin/clone.c:119 builtin/clone.c:121 builtin/submodule--helper.c:1871
-#: builtin/submodule--helper.c:2514 builtin/submodule--helper.c:3260
+#: builtin/clone.c:123 builtin/clone.c:125 builtin/submodule--helper.c:1885
+#: builtin/submodule--helper.c:2719 builtin/submodule--helper.c:3378
msgid "reference repository"
msgstr "Repository referenzieren"
-#: builtin/clone.c:123 builtin/submodule--helper.c:1873
-#: builtin/submodule--helper.c:2516
+#: builtin/clone.c:127 builtin/submodule--helper.c:1887
+#: builtin/submodule--helper.c:2721
msgid "use --reference only while cloning"
msgstr "--reference nur während des Klonens benutzen"
-#: builtin/clone.c:124 builtin/column.c:27 builtin/fmt-merge-msg.c:27
+#: builtin/clone.c:128 builtin/column.c:27 builtin/fmt-merge-msg.c:27
#: builtin/init-db.c:550 builtin/merge-file.c:48 builtin/merge.c:290
-#: builtin/pack-objects.c:3944 builtin/repack.c:665
-#: builtin/submodule--helper.c:3262 t/helper/test-simple-ipc.c:595
+#: builtin/pack-objects.c:3967 builtin/repack.c:669
+#: builtin/submodule--helper.c:3380 t/helper/test-simple-ipc.c:595
#: t/helper/test-simple-ipc.c:597
msgid "name"
msgstr "Name"
-#: builtin/clone.c:125
+#: builtin/clone.c:129
msgid "use <name> instead of 'origin' to track upstream"
msgstr "<Name> statt 'origin' für Upstream-Repository verwenden"
-#: builtin/clone.c:127
+#: builtin/clone.c:131
msgid "checkout <branch> instead of the remote's HEAD"
msgstr "<Branch> auschecken, anstatt HEAD des Remote-Repositories"
-#: builtin/clone.c:129
+#: builtin/clone.c:133
msgid "path to git-upload-pack on the remote"
msgstr "Pfad zu \"git-upload-pack\" auf der Gegenseite"
-#: builtin/clone.c:130 builtin/fetch.c:181 builtin/grep.c:876
+#: builtin/clone.c:134 builtin/fetch.c:182 builtin/grep.c:877
#: builtin/pull.c:212
msgid "depth"
msgstr "Tiefe"
-#: builtin/clone.c:131
+#: builtin/clone.c:135
msgid "create a shallow clone of that depth"
msgstr ""
"einen Klon mit unvollständiger Historie (shallow) in dieser Tiefe erstellen"
-#: builtin/clone.c:132 builtin/fetch.c:183 builtin/pack-objects.c:3933
+#: builtin/clone.c:136 builtin/fetch.c:184 builtin/pack-objects.c:3956
#: builtin/pull.c:215
msgid "time"
msgstr "Zeit"
-#: builtin/clone.c:133
+#: builtin/clone.c:137
msgid "create a shallow clone since a specific time"
msgstr ""
"einen Klon mit unvollständiger Historie (shallow) seit einer bestimmten "
"Zeit\n"
"erstellen"
-#: builtin/clone.c:134 builtin/fetch.c:185 builtin/fetch.c:208
-#: builtin/pull.c:218 builtin/pull.c:243 builtin/rebase.c:1022
+#: builtin/clone.c:138 builtin/fetch.c:186 builtin/fetch.c:212
+#: builtin/pull.c:218 builtin/pull.c:243 builtin/rebase.c:1050
msgid "revision"
msgstr "Commit"
-#: builtin/clone.c:135 builtin/fetch.c:186 builtin/pull.c:219
+#: builtin/clone.c:139 builtin/fetch.c:187 builtin/pull.c:219
msgid "deepen history of shallow clone, excluding rev"
msgstr ""
"die Historie eines Klons mit unvollständiger Historie (shallow) mittels\n"
"Ausschluss eines Commits vertiefen"
-#: builtin/clone.c:137 builtin/submodule--helper.c:1883
-#: builtin/submodule--helper.c:2530
+#: builtin/clone.c:141 builtin/submodule--helper.c:1897
+#: builtin/submodule--helper.c:2735
msgid "clone only one branch, HEAD or --branch"
msgstr "nur einen Branch klonen, HEAD oder --branch"
-#: builtin/clone.c:139
+#: builtin/clone.c:143
msgid "don't clone any tags, and make later fetches not to follow them"
msgstr "keine Tags klonen, und auch bei späteren Abrufen nicht beachten"
-#: builtin/clone.c:141
+#: builtin/clone.c:145
msgid "any cloned submodules will be shallow"
msgstr "jedes geklonte Submodul mit unvollständiger Historie (shallow)"
-#: builtin/clone.c:142 builtin/init-db.c:548
+#: builtin/clone.c:146 builtin/init-db.c:548
msgid "gitdir"
msgstr ".git-Verzeichnis"
-#: builtin/clone.c:143 builtin/init-db.c:549
+#: builtin/clone.c:147 builtin/init-db.c:549
msgid "separate git dir from working tree"
msgstr "Git-Verzeichnis vom Arbeitsverzeichnis separieren"
-#: builtin/clone.c:144
+#: builtin/clone.c:148
msgid "key=value"
msgstr "Schlüssel=Wert"
-#: builtin/clone.c:145
+#: builtin/clone.c:149
msgid "set config inside the new repository"
msgstr "Konfiguration innerhalb des neuen Repositories setzen"
-#: builtin/clone.c:147 builtin/fetch.c:203 builtin/ls-remote.c:77
+#: builtin/clone.c:151 builtin/fetch.c:207 builtin/ls-remote.c:77
#: builtin/pull.c:234 builtin/push.c:575 builtin/send-pack.c:200
msgid "server-specific"
msgstr "serverspezifisch"
-#: builtin/clone.c:147 builtin/fetch.c:203 builtin/ls-remote.c:77
+#: builtin/clone.c:151 builtin/fetch.c:207 builtin/ls-remote.c:77
#: builtin/pull.c:235 builtin/push.c:575 builtin/send-pack.c:201
msgid "option to transmit"
msgstr "Option übertragen"
-#: builtin/clone.c:148 builtin/fetch.c:204 builtin/pull.c:238
+#: builtin/clone.c:152 builtin/fetch.c:208 builtin/pull.c:238
#: builtin/push.c:576
msgid "use IPv4 addresses only"
msgstr "nur IPv4-Adressen benutzen"
-#: builtin/clone.c:150 builtin/fetch.c:206 builtin/pull.c:241
+#: builtin/clone.c:154 builtin/fetch.c:210 builtin/pull.c:241
#: builtin/push.c:578
msgid "use IPv6 addresses only"
msgstr "nur IPv6-Adressen benutzen"
-#: builtin/clone.c:154
+#: builtin/clone.c:158
+msgid "apply partial clone filters to submodules"
+msgstr "partielle Klonfilter auf Submodule anwenden"
+
+#: builtin/clone.c:160
msgid "any cloned submodules will use their remote-tracking branch"
msgstr "jedes geklonte Submodul nutzt seinen Remote-Tracking-Branch"
-#: builtin/clone.c:156
+#: builtin/clone.c:162
msgid "initialize sparse-checkout file to include only files at root"
msgstr ""
"Initialisiere Datei für partiellen Checkout, um nur Dateien im\n"
"Root-Verzeichnis einzubeziehen"
-#: builtin/clone.c:231
+#: builtin/clone.c:237
#, c-format
msgid "info: Could not add alternate for '%s': %s\n"
msgstr "info: Konnte Alternative für '%s' nicht hinzufügen: %s\n"
-#: builtin/clone.c:304
+#: builtin/clone.c:310
#, c-format
msgid "%s exists and is not a directory"
msgstr "%s existiert und ist kein Verzeichnis"
-#: builtin/clone.c:322
+#: builtin/clone.c:328
#, c-format
msgid "failed to start iterator over '%s'"
msgstr "Fehler beim Starten der Iteration über '%s'"
-#: builtin/clone.c:353
+#: builtin/clone.c:359
#, c-format
msgid "failed to create link '%s'"
msgstr "Konnte Verweis '%s' nicht erstellen"
-#: builtin/clone.c:357
+#: builtin/clone.c:363
#, c-format
msgid "failed to copy file to '%s'"
msgstr "Konnte Datei nicht nach '%s' kopieren"
-#: builtin/clone.c:362
+#: builtin/clone.c:368
#, c-format
msgid "failed to iterate over '%s'"
msgstr "Fehler beim Iterieren über '%s'"
-#: builtin/clone.c:389
+#: builtin/clone.c:395
#, c-format
msgid "done.\n"
msgstr "Fertig.\n"
-#: builtin/clone.c:403
+#: builtin/clone.c:409
msgid ""
"Clone succeeded, but checkout failed.\n"
"You can inspect what was checked out with 'git status'\n"
@@ -13549,103 +13934,103 @@ msgstr ""
"Sie können mit 'git status' prüfen, was ausgecheckt worden ist\n"
"und das Auschecken mit 'git restore --source=HEAD :/' erneut versuchen.\n"
-#: builtin/clone.c:480
+#: builtin/clone.c:486
#, c-format
msgid "Could not find remote branch %s to clone."
msgstr "Konnte zu klonenden Remote-Branch %s nicht finden."
-#: builtin/clone.c:597
+#: builtin/clone.c:603
#, c-format
msgid "unable to update %s"
msgstr "kann %s nicht aktualisieren"
-#: builtin/clone.c:645
+#: builtin/clone.c:651
msgid "failed to initialize sparse-checkout"
msgstr "Fehler beim Initialisieren vom partiellen Checkout."
-#: builtin/clone.c:668
+#: builtin/clone.c:674
msgid "remote HEAD refers to nonexistent ref, unable to checkout.\n"
msgstr ""
"Externer HEAD bezieht sich auf eine nicht existierende Referenz und kann "
"nicht ausgecheckt werden.\n"
-#: builtin/clone.c:701
+#: builtin/clone.c:709
msgid "unable to checkout working tree"
msgstr "Arbeitsverzeichnis konnte nicht ausgecheckt werden"
-#: builtin/clone.c:779
+#: builtin/clone.c:793
msgid "unable to write parameters to config file"
msgstr "konnte Parameter nicht in Konfigurationsdatei schreiben"
-#: builtin/clone.c:842
+#: builtin/clone.c:856
msgid "cannot repack to clean up"
msgstr "Kann \"repack\" zum Aufräumen nicht aufrufen"
-#: builtin/clone.c:844
+#: builtin/clone.c:858
msgid "cannot unlink temporary alternates file"
msgstr "Kann temporäre \"alternates\"-Datei nicht entfernen"
-#: builtin/clone.c:886
+#: builtin/clone.c:901
msgid "Too many arguments."
msgstr "Zu viele Argumente."
-#: builtin/clone.c:890 contrib/scalar/scalar.c:414
+#: builtin/clone.c:905 contrib/scalar/scalar.c:413
msgid "You must specify a repository to clone."
msgstr "Sie müssen ein Repository zum Klonen angeben."
-#: builtin/clone.c:903
+#: builtin/clone.c:918
#, c-format
msgid "options '%s' and '%s %s' cannot be used together"
msgstr "die Optionen '%s' und '%s %s' können nicht gemeinsam verwendet werden"
-#: builtin/clone.c:920
+#: builtin/clone.c:935
#, c-format
msgid "repository '%s' does not exist"
msgstr "Repository '%s' existiert nicht"
-#: builtin/clone.c:924 builtin/fetch.c:2052
+#: builtin/clone.c:939 builtin/fetch.c:2176
#, c-format
msgid "depth %s is not a positive number"
msgstr "Tiefe %s ist keine positive Zahl"
-#: builtin/clone.c:934
+#: builtin/clone.c:949
#, 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:940
+#: builtin/clone.c:955
#, c-format
msgid "repository path '%s' already exists and is not an empty directory."
msgstr ""
"Pfad des Repositories '%s' existiert bereits und ist kein leeres Verzeichnis."
-#: builtin/clone.c:954
+#: builtin/clone.c:969
#, c-format
msgid "working tree '%s' already exists."
msgstr "Arbeitsverzeichnis '%s' existiert bereits."
-#: builtin/clone.c:969 builtin/clone.c:990 builtin/difftool.c:256
-#: builtin/log.c:2012 builtin/worktree.c:281 builtin/worktree.c:313
+#: builtin/clone.c:984 builtin/clone.c:1005 builtin/difftool.c:256
+#: builtin/log.c:2037 builtin/worktree.c:350 builtin/worktree.c:382
#, c-format
msgid "could not create leading directories of '%s'"
msgstr "Konnte führende Verzeichnisse von '%s' nicht erstellen."
-#: builtin/clone.c:974
+#: builtin/clone.c:989
#, c-format
msgid "could not create work tree dir '%s'"
msgstr "Konnte Arbeitsverzeichnis '%s' nicht erstellen"
-#: builtin/clone.c:994
+#: builtin/clone.c:1009
#, c-format
msgid "Cloning into bare repository '%s'...\n"
msgstr "Klone in Bare-Repository '%s' ...\n"
-#: builtin/clone.c:996
+#: builtin/clone.c:1011
#, c-format
msgid "Cloning into '%s'...\n"
msgstr "Klone nach '%s'...\n"
-#: builtin/clone.c:1025
+#: builtin/clone.c:1040
msgid ""
"clone --recursive is not compatible with both --reference and --reference-if-"
"able"
@@ -13653,55 +14038,59 @@ msgstr ""
"'clone --recursive' ist nicht kompatibel mit --reference und --reference-if-"
"able"
-#: builtin/clone.c:1080 builtin/remote.c:200 builtin/remote.c:710
+#: builtin/clone.c:1116 builtin/remote.c:201 builtin/remote.c:721
#, c-format
msgid "'%s' is not a valid remote name"
msgstr "'%s' ist kein gültiger Name für ein Remote-Repository"
-#: builtin/clone.c:1121
+#: builtin/clone.c:1157
msgid "--depth is ignored in local clones; use file:// instead."
msgstr ""
"--depth wird in lokalen Klonen ignoriert; benutzen Sie stattdessen \"file://"
"\"."
-#: builtin/clone.c:1123
+#: builtin/clone.c:1159
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:1125
+#: builtin/clone.c:1161
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:1127
+#: builtin/clone.c:1163
msgid "--filter is ignored in local clones; use file:// instead."
msgstr ""
"--filter wird in lokalen Klonen ignoriert; benutzen Sie stattdessen \"file://"
"\"."
-#: builtin/clone.c:1132
+#: builtin/clone.c:1168
msgid "source repository is shallow, ignoring --local"
msgstr ""
"Quelle ist ein Repository mit unvollständiger Historie (shallow),\n"
"ignoriere --local"
-#: builtin/clone.c:1137
+#: builtin/clone.c:1173
msgid "--local is ignored"
msgstr "--local wird ignoriert"
-#: builtin/clone.c:1216 builtin/clone.c:1276
+#: builtin/clone.c:1185
+msgid "cannot clone from filtered bundle"
+msgstr "kann nicht von gefiltertem Bundle klonen"
+
+#: builtin/clone.c:1265 builtin/clone.c:1324
msgid "remote transport reported error"
msgstr "Remoteübertragung meldete Fehler"
-#: builtin/clone.c:1228 builtin/clone.c:1239
+#: builtin/clone.c:1277 builtin/clone.c:1289
#, c-format
msgid "Remote branch %s not found in upstream %s"
msgstr "Remote-Branch %s nicht im Upstream-Repository %s gefunden"
-#: builtin/clone.c:1242
+#: builtin/clone.c:1292
msgid "You appear to have cloned an empty repository."
msgstr "Sie scheinen ein leeres Repository geklont zu haben."
@@ -13754,7 +14143,7 @@ msgstr ""
"split[=<Strategie>]] [--reachable|--stdin-packs|--stdin-commits] [--changed-"
"paths] [--[no-]max-new-filters <Anzahl>] [--[no-]progress] <Split-Optionen>"
-#: builtin/commit-graph.c:51 builtin/fetch.c:192 builtin/log.c:1794
+#: builtin/commit-graph.c:51 builtin/fetch.c:196 builtin/log.c:1813
msgid "dir"
msgstr "Verzeichnis"
@@ -13859,7 +14248,7 @@ msgstr ""
msgid "duplicate parent %s ignored"
msgstr "doppelter Vorgänger %s ignoriert"
-#: builtin/commit-tree.c:56 builtin/commit-tree.c:134 builtin/log.c:577
+#: builtin/commit-tree.c:56 builtin/commit-tree.c:134 builtin/log.c:590
#, c-format
msgid "not a valid object name %s"
msgstr "Kein gültiger Objektname: %s"
@@ -13882,13 +14271,13 @@ msgstr "Eltern-Commit"
msgid "id of a parent commit object"
msgstr "ID eines Eltern-Commit-Objektes."
-#: builtin/commit-tree.c:112 builtin/commit.c:1627 builtin/merge.c:284
-#: builtin/notes.c:407 builtin/notes.c:573 builtin/stash.c:1677
-#: builtin/tag.c:454
+#: builtin/commit-tree.c:112 builtin/commit.c:1626 builtin/merge.c:284
+#: builtin/notes.c:407 builtin/notes.c:573 builtin/stash.c:1666
+#: builtin/tag.c:455
msgid "message"
msgstr "Beschreibung"
-#: builtin/commit-tree.c:113 builtin/commit.c:1627
+#: builtin/commit-tree.c:113 builtin/commit.c:1626
msgid "commit message"
msgstr "Commit-Beschreibung"
@@ -13896,7 +14285,7 @@ msgstr "Commit-Beschreibung"
msgid "read commit log message from file"
msgstr "Commit-Beschreibung von Datei lesen"
-#: builtin/commit-tree.c:119 builtin/commit.c:1644 builtin/merge.c:303
+#: builtin/commit-tree.c:119 builtin/commit.c:1643 builtin/merge.c:303
#: builtin/pull.c:180 builtin/revert.c:118
msgid "GPG sign commit"
msgstr "Commit mit GPG signieren"
@@ -13909,15 +14298,15 @@ msgstr "Brauche genau ein Tree-Objekt."
msgid "git commit-tree: failed to read"
msgstr "git commit-tree: Fehler beim Lesen"
-#: builtin/commit.c:42
+#: builtin/commit.c:43
msgid "git commit [<options>] [--] <pathspec>..."
msgstr "git commit [<Optionen>] [--] <Pfadspezifikation>..."
-#: builtin/commit.c:47
+#: builtin/commit.c:48
msgid "git status [<options>] [--] <pathspec>..."
msgstr "git status [<Optionen>] [--] <Pfadspezifikation>..."
-#: builtin/commit.c:52
+#: builtin/commit.c:53
msgid ""
"You asked to amend the most recent commit, but doing so would make\n"
"it empty. You can repeat your command with --allow-empty, or you can\n"
@@ -13927,7 +14316,7 @@ msgstr ""
"machen. Sie können Ihren Befehl mit --allow-empty wiederholen, oder diesen\n"
"Commit mit \"git reset HEAD^\" vollständig entfernen.\n"
-#: builtin/commit.c:57
+#: builtin/commit.c:58
msgid ""
"The previous cherry-pick is now empty, possibly due to conflict resolution.\n"
"If you wish to commit it anyway, use:\n"
@@ -13942,15 +14331,15 @@ msgstr ""
" git commit --allow-empty\n"
"\n"
-#: builtin/commit.c:64
+#: builtin/commit.c:65
msgid "Otherwise, please use 'git rebase --skip'\n"
msgstr "Andernfalls benutzen Sie bitte 'git rebase --skip'\n"
-#: builtin/commit.c:67
+#: builtin/commit.c:68
msgid "Otherwise, please use 'git cherry-pick --skip'\n"
msgstr "Andernfalls benutzen Sie bitte 'git cherry-pick --skip'\n"
-#: builtin/commit.c:70
+#: builtin/commit.c:71
msgid ""
"and then use:\n"
"\n"
@@ -13972,70 +14361,70 @@ msgstr ""
" git cherry-pick --skip\n"
"\n"
-#: builtin/commit.c:325
+#: builtin/commit.c:326
msgid "failed to unpack HEAD tree object"
msgstr "Fehler beim Entpacken des Tree-Objektes von HEAD."
-#: builtin/commit.c:375
+#: builtin/commit.c:376
msgid "No paths with --include/--only does not make sense."
msgstr "Keine Pfade mit der Option --include/--only ist nicht sinnvoll."
-#: builtin/commit.c:387
+#: builtin/commit.c:388
msgid "unable to create temporary index"
msgstr "Konnte temporären Index nicht erstellen."
-#: builtin/commit.c:396
+#: builtin/commit.c:397
msgid "interactive add failed"
msgstr "interaktives Hinzufügen fehlgeschlagen"
-#: builtin/commit.c:411
+#: builtin/commit.c:412
msgid "unable to update temporary index"
msgstr "Konnte temporären Index nicht aktualisieren."
-#: builtin/commit.c:413
+#: builtin/commit.c:414
msgid "Failed to update main cache tree"
msgstr "Konnte Haupt-Cache-Verzeichnis nicht aktualisieren"
-#: builtin/commit.c:438 builtin/commit.c:461 builtin/commit.c:509
+#: builtin/commit.c:439 builtin/commit.c:462 builtin/commit.c:510
msgid "unable to write new_index file"
msgstr "Konnte new_index Datei nicht schreiben"
-#: builtin/commit.c:490
+#: builtin/commit.c:491
msgid "cannot do a partial commit during a merge."
msgstr "Kann keinen Teil-Commit durchführen, während ein Merge im Gange ist."
-#: builtin/commit.c:492
+#: builtin/commit.c:493
msgid "cannot do a partial commit during a cherry-pick."
msgstr ""
"Kann keinen Teil-Commit durchführen, während \"cherry-pick\" im Gange ist."
-#: builtin/commit.c:494
+#: builtin/commit.c:495
msgid "cannot do a partial commit during a rebase."
msgstr "kann keinen Teil-Commit durchführen, während ein Rebase im Gange ist."
-#: builtin/commit.c:502
+#: builtin/commit.c:503
msgid "cannot read the index"
msgstr "Kann Index nicht lesen"
-#: builtin/commit.c:521
+#: builtin/commit.c:522
msgid "unable to write temporary index file"
msgstr "Konnte temporäre Index-Datei nicht schreiben."
-#: builtin/commit.c:619
+#: builtin/commit.c:620
#, c-format
msgid "commit '%s' lacks author header"
msgstr "Commit '%s' fehlt Autor-Kopfbereich"
-#: builtin/commit.c:621
+#: builtin/commit.c:622
#, c-format
msgid "commit '%s' has malformed author line"
msgstr "Commit '%s' hat fehlerhafte Autor-Zeile"
-#: builtin/commit.c:640
+#: builtin/commit.c:641
msgid "malformed --author parameter"
msgstr "Fehlerhafter --author Parameter"
-#: builtin/commit.c:693
+#: builtin/commit.c:694
msgid ""
"unable to select a comment character that is not used\n"
"in the current commit message"
@@ -14043,43 +14432,43 @@ msgstr ""
"Konnte kein Kommentar-Zeichen auswählen, das nicht in\n"
"der aktuellen Commit-Beschreibung verwendet wird."
-#: builtin/commit.c:747 builtin/commit.c:781 builtin/commit.c:1166
+#: builtin/commit.c:750 builtin/commit.c:784 builtin/commit.c:1170
#, c-format
msgid "could not lookup commit %s"
msgstr "Konnte Commit %s nicht nachschlagen"
-#: builtin/commit.c:759 builtin/shortlog.c:416
+#: builtin/commit.c:762 builtin/shortlog.c:417
#, c-format
msgid "(reading log message from standard input)\n"
msgstr "(lese Log-Nachricht von Standard-Eingabe)\n"
-#: builtin/commit.c:761
+#: builtin/commit.c:764
msgid "could not read log from standard input"
msgstr "Konnte Log nicht von Standard-Eingabe lesen."
-#: builtin/commit.c:765
+#: builtin/commit.c:768
#, c-format
msgid "could not read log file '%s'"
msgstr "Konnte Log-Datei '%s' nicht lesen"
-#: builtin/commit.c:802
+#: builtin/commit.c:805
#, c-format
msgid "options '%s' and '%s:%s' cannot be used together"
msgstr "die Optionen '%s' und '%s:%s' können nicht gemeinsam verwendet werden"
-#: builtin/commit.c:814 builtin/commit.c:830
+#: builtin/commit.c:817 builtin/commit.c:833
msgid "could not read SQUASH_MSG"
msgstr "Konnte SQUASH_MSG nicht lesen"
-#: builtin/commit.c:821
+#: builtin/commit.c:824
msgid "could not read MERGE_MSG"
msgstr "Konnte MERGE_MSG nicht lesen"
-#: builtin/commit.c:881
+#: builtin/commit.c:884
msgid "could not write commit template"
msgstr "Konnte Commit-Vorlage nicht schreiben"
-#: builtin/commit.c:894
+#: builtin/commit.c:897
#, c-format
msgid ""
"Please enter the commit message for your changes. Lines starting\n"
@@ -14088,7 +14477,7 @@ msgstr ""
"Bitte geben Sie eine Commit-Beschreibung für Ihre Änderungen ein. Zeilen,\n"
"die mit '%c' beginnen, werden ignoriert.\n"
-#: builtin/commit.c:896
+#: builtin/commit.c:899
#, c-format
msgid ""
"Please enter the commit message for your changes. Lines starting\n"
@@ -14098,7 +14487,7 @@ msgstr ""
"die mit '%c' beginnen, werden ignoriert, und eine leere Beschreibung\n"
"bricht den Commit ab.\n"
-#: builtin/commit.c:900
+#: builtin/commit.c:903
#, c-format
msgid ""
"Please enter the commit message for your changes. Lines starting\n"
@@ -14108,7 +14497,7 @@ msgstr ""
"die mit '%c' beginnen, werden beibehalten; wenn Sie möchten, können Sie\n"
"diese entfernen.\n"
-#: builtin/commit.c:904
+#: builtin/commit.c:907
#, c-format
msgid ""
"Please enter the commit message for your changes. Lines starting\n"
@@ -14121,7 +14510,7 @@ msgstr ""
"entfernen.\n"
"Eine leere Beschreibung bricht den Commit ab.\n"
-#: builtin/commit.c:916
+#: builtin/commit.c:919
msgid ""
"\n"
"It looks like you may be committing a merge.\n"
@@ -14135,7 +14524,7 @@ msgstr ""
"\tgit update-ref -d MERGE_HEAD\n"
"aus und versuchen Sie es erneut.\n"
-#: builtin/commit.c:921
+#: builtin/commit.c:924
msgid ""
"\n"
"It looks like you may be committing a cherry-pick.\n"
@@ -14149,177 +14538,154 @@ msgstr ""
"\tgit update-ref -d CHERRY_PICK_HEAD\n"
"aus und versuchen Sie es erneut.\n"
-#: builtin/commit.c:948
+#: builtin/commit.c:951
#, c-format
msgid "%sAuthor: %.*s <%.*s>"
msgstr "%sAutor: %.*s <%.*s>"
-#: builtin/commit.c:956
+#: builtin/commit.c:959
#, c-format
msgid "%sDate: %s"
msgstr "%sDatum: %s"
-#: builtin/commit.c:963
+#: builtin/commit.c:966
#, c-format
msgid "%sCommitter: %.*s <%.*s>"
msgstr "%sCommit-Ersteller: %.*s <%.*s>"
-#: builtin/commit.c:981
+#: builtin/commit.c:984
msgid "Cannot read index"
msgstr "Kann Index nicht lesen"
-#: builtin/commit.c:1026
+#: builtin/commit.c:1029
msgid "unable to pass trailers to --trailers"
msgstr "konnte Anhänge nicht an --trailers weitergeben"
-#: builtin/commit.c:1066
+#: builtin/commit.c:1069
msgid "Error building trees"
msgstr "Fehler beim Erzeugen der \"Tree\"-Objekte"
-#: builtin/commit.c:1080 builtin/tag.c:316
+#: builtin/commit.c:1083 builtin/tag.c:317
#, c-format
msgid "Please supply the message using either -m or -F option.\n"
msgstr ""
"Bitte liefern Sie eine Beschreibung entweder mit der Option -m oder -F.\n"
-#: builtin/commit.c:1124
+#: builtin/commit.c:1128
#, c-format
msgid "--author '%s' is not 'Name <email>' and matches no existing author"
msgstr ""
"--author '%s' ist nicht im Format 'Name <E-Mail>' und stimmt mit keinem "
"vorhandenen Autor überein"
-#: builtin/commit.c:1138
+#: builtin/commit.c:1142
#, c-format
msgid "Invalid ignored mode '%s'"
msgstr "Ungültiger ignored-Modus '%s'."
-#: builtin/commit.c:1156 builtin/commit.c:1451
+#: builtin/commit.c:1160 builtin/commit.c:1450
#, c-format
msgid "Invalid untracked files mode '%s'"
msgstr "Ungültiger Modus '%s' für unversionierte Dateien"
-#: builtin/commit.c:1227
+#: builtin/commit.c:1231
msgid "You are in the middle of a merge -- cannot reword."
msgstr "Ein Merge ist im Gange -- kann Umformulierung nicht durchführen."
-#: builtin/commit.c:1229
+#: builtin/commit.c:1233
msgid "You are in the middle of a cherry-pick -- cannot reword."
msgstr "\"cherry-pick\" ist im Gange -- kann Umformulierung nicht durchführen."
-#: builtin/commit.c:1232
+#: builtin/commit.c:1236
#, c-format
msgid "reword option of '%s' and path '%s' cannot be used together"
msgstr ""
"Umformulierungsoption von '%s' und Pfad '%s' können nicht gemeinsam "
"verwendet werden"
-#: builtin/commit.c:1234
+#: builtin/commit.c:1238
#, c-format
msgid "reword option of '%s' and '%s' cannot be used together"
msgstr ""
"Umformulierungsoption von '%s' und '%s' können nicht gemeinsam verwendet "
"werden"
-#: builtin/commit.c:1254
-msgid "Using both --reset-author and --author does not make sense"
-msgstr "--reset-author und --author können nicht gemeinsam verwendet werden"
-
-#: builtin/commit.c:1261
+#: builtin/commit.c:1263
msgid "You have nothing to amend."
msgstr "Sie haben nichts zum Nachbessern."
-#: builtin/commit.c:1264
+#: builtin/commit.c:1266
msgid "You are in the middle of a merge -- cannot amend."
msgstr "Ein Merge ist im Gange -- Nachbesserung nicht möglich."
-#: builtin/commit.c:1266
+#: builtin/commit.c:1268
msgid "You are in the middle of a cherry-pick -- cannot amend."
msgstr "\"cherry-pick\" ist im Gange -- Nachbesserung nicht möglich."
-#: builtin/commit.c:1268
+#: builtin/commit.c:1270
msgid "You are in the middle of a rebase -- cannot amend."
msgstr "Ein Rebase ist im Gange -- Nachbesserung nicht möglich."
-#: builtin/commit.c:1271
-msgid "Options --squash and --fixup cannot be used together"
-msgstr ""
-"die Optionen --squash und --fixup können nicht gemeinsam verwendet werden"
-
-#: builtin/commit.c:1281
-msgid "Only one of -c/-C/-F/--fixup can be used."
-msgstr "Es kann nur eine Option von -c/-C/-F/--fixup verwendet werden."
-
-#: builtin/commit.c:1283
-msgid "Option -m cannot be combined with -c/-C/-F."
-msgstr "Die Option -m kann nicht mit -c/-C/-F kombiniert werden."
-
-#: builtin/commit.c:1292
+#: builtin/commit.c:1290
msgid "--reset-author can be used only with -C, -c or --amend."
msgstr "--reset-author kann nur mit -C, -c oder --amend verwendet werden."
-#: builtin/commit.c:1310
-msgid "Only one of --include/--only/--all/--interactive/--patch can be used."
-msgstr ""
-"Es kann nur eine Option von --include/--only/--all/--interactive/--patch "
-"verwendet werden."
-
-#: builtin/commit.c:1338
+#: builtin/commit.c:1337
#, c-format
msgid "unknown option: --fixup=%s:%s"
msgstr "unbekannte Option: --fixup=%s:%s"
-#: builtin/commit.c:1355
+#: builtin/commit.c:1354
#, c-format
msgid "paths '%s ...' with -a does not make sense"
msgstr "Pfade '%s ...' mit -a sind nicht sinnvoll"
-#: builtin/commit.c:1486 builtin/commit.c:1655
+#: builtin/commit.c:1485 builtin/commit.c:1654
msgid "show status concisely"
msgstr "Status im Kurzformat anzeigen"
-#: builtin/commit.c:1488 builtin/commit.c:1657
+#: builtin/commit.c:1487 builtin/commit.c:1656
msgid "show branch information"
msgstr "Branchinformationen anzeigen"
-#: builtin/commit.c:1490
+#: builtin/commit.c:1489
msgid "show stash information"
msgstr "Stashinformationen anzeigen"
-#: builtin/commit.c:1492 builtin/commit.c:1659
+#: builtin/commit.c:1491 builtin/commit.c:1658
msgid "compute full ahead/behind values"
msgstr "voraus/hinterher-Werte berechnen"
-#: builtin/commit.c:1494
+#: builtin/commit.c:1493
msgid "version"
msgstr "Version"
-#: builtin/commit.c:1494 builtin/commit.c:1661 builtin/push.c:551
-#: builtin/worktree.c:690
+#: builtin/commit.c:1493 builtin/commit.c:1660 builtin/push.c:551
+#: builtin/worktree.c:765
msgid "machine-readable output"
msgstr "maschinenlesbare Ausgabe"
-#: builtin/commit.c:1497 builtin/commit.c:1663
+#: builtin/commit.c:1496 builtin/commit.c:1662
msgid "show status in long format (default)"
msgstr "Status im Langformat anzeigen (Standard)"
-#: builtin/commit.c:1500 builtin/commit.c:1666
+#: builtin/commit.c:1499 builtin/commit.c:1665
msgid "terminate entries with NUL"
msgstr "Einträge mit NUL-Zeichen abschließen"
-#: builtin/commit.c:1502 builtin/commit.c:1506 builtin/commit.c:1669
+#: builtin/commit.c:1501 builtin/commit.c:1505 builtin/commit.c:1668
#: builtin/fast-export.c:1172 builtin/fast-export.c:1175
-#: builtin/fast-export.c:1178 builtin/rebase.c:1111 parse-options.h:337
+#: builtin/fast-export.c:1178 builtin/rebase.c:1139 parse-options.h:368
msgid "mode"
msgstr "Modus"
-#: builtin/commit.c:1503 builtin/commit.c:1669
+#: builtin/commit.c:1502 builtin/commit.c:1668
msgid "show untracked files, optional modes: all, normal, no. (Default: all)"
msgstr ""
"unversionierte Dateien anzeigen, optionale Modi: all, normal, no. (Standard: "
"all)"
-#: builtin/commit.c:1507
+#: builtin/commit.c:1506
msgid ""
"show ignored files, optional modes: traditional, matching, no. (Default: "
"traditional)"
@@ -14327,11 +14693,11 @@ msgstr ""
"ignorierte Dateien anzeigen, optionale Modi: traditional, matching, no. "
"(Standard: traditional)"
-#: builtin/commit.c:1509 parse-options.h:192
+#: builtin/commit.c:1508 parse-options.h:197
msgid "when"
msgstr "wann"
-#: builtin/commit.c:1510
+#: builtin/commit.c:1509
msgid ""
"ignore changes to submodules, optional when: all, dirty, untracked. "
"(Default: all)"
@@ -14339,195 +14705,195 @@ msgstr ""
"Änderungen in Submodulen ignorieren, optional wenn: all, dirty, untracked. "
"(Standard: all)"
-#: builtin/commit.c:1512
+#: builtin/commit.c:1511
msgid "list untracked files in columns"
msgstr "unversionierte Dateien in Spalten auflisten"
-#: builtin/commit.c:1513
+#: builtin/commit.c:1512
msgid "do not detect renames"
msgstr "keine Umbenennungen ermitteln"
-#: builtin/commit.c:1515
+#: builtin/commit.c:1514
msgid "detect renames, optionally set similarity index"
msgstr "Umbenennungen erkennen, optional Index für Gleichheit setzen"
-#: builtin/commit.c:1538
+#: builtin/commit.c:1537
msgid "Unsupported combination of ignored and untracked-files arguments"
msgstr ""
"Nicht unterstützte Kombination von ignored und untracked-files Argumenten."
-#: builtin/commit.c:1620
+#: builtin/commit.c:1619
msgid "suppress summary after successful commit"
msgstr "Zusammenfassung nach erfolgreichem Commit unterdrücken"
-#: builtin/commit.c:1621
+#: builtin/commit.c:1620
msgid "show diff in commit message template"
msgstr "Unterschiede in Commit-Beschreibungsvorlage anzeigen"
-#: builtin/commit.c:1623
+#: builtin/commit.c:1622
msgid "Commit message options"
msgstr "Optionen für Commit-Beschreibung"
-#: builtin/commit.c:1624 builtin/merge.c:288 builtin/tag.c:456
+#: builtin/commit.c:1623 builtin/merge.c:288 builtin/tag.c:457
msgid "read message from file"
msgstr "Beschreibung von Datei lesen"
-#: builtin/commit.c:1625
+#: builtin/commit.c:1624
msgid "author"
msgstr "Autor"
-#: builtin/commit.c:1625
+#: builtin/commit.c:1624
msgid "override author for commit"
msgstr "Autor eines Commits überschreiben"
-#: builtin/commit.c:1626 builtin/gc.c:551
+#: builtin/commit.c:1625 builtin/gc.c:551
msgid "date"
msgstr "Datum"
-#: builtin/commit.c:1626
+#: builtin/commit.c:1625
msgid "override date for commit"
msgstr "Datum eines Commits überschreiben"
-#: builtin/commit.c:1628 builtin/commit.c:1629 builtin/commit.c:1635
-#: parse-options.h:329 ref-filter.h:89
+#: builtin/commit.c:1627 builtin/commit.c:1628 builtin/commit.c:1634
+#: parse-options.h:360 ref-filter.h:89
msgid "commit"
msgstr "Commit"
-#: builtin/commit.c:1628
+#: builtin/commit.c:1627
msgid "reuse and edit message from specified commit"
msgstr "Beschreibung des angegebenen Commits wiederverwenden und editieren"
-#: builtin/commit.c:1629
+#: builtin/commit.c:1628
msgid "reuse message from specified commit"
msgstr "Beschreibung des angegebenen Commits wiederverwenden"
#. TRANSLATORS: Leave "[(amend|reword):]" as-is,
#. and only translate <commit>.
#.
-#: builtin/commit.c:1634
+#: builtin/commit.c:1633
msgid "[(amend|reword):]commit"
msgstr "[(amend|reword):]Commit"
-#: builtin/commit.c:1634
+#: builtin/commit.c:1633
msgid ""
"use autosquash formatted message to fixup or amend/reword specified commit"
msgstr ""
"eine autosquash-formatierte Beschreibung zum Nachbessern/Umformulieren des "
"angegebenen Commits verwenden"
-#: builtin/commit.c:1635
+#: builtin/commit.c:1634
msgid "use autosquash formatted message to squash specified commit"
msgstr ""
"eine autosquash-formatierte Beschreibung beim \"squash\" des angegebenen "
"Commits verwenden"
-#: builtin/commit.c:1636
+#: builtin/commit.c:1635
msgid "the commit is authored by me now (used with -C/-c/--amend)"
msgstr "Sie als Autor des Commits setzen (verwendet mit -C/-c/--amend)"
-#: builtin/commit.c:1637 builtin/interpret-trailers.c:111
+#: builtin/commit.c:1636 builtin/interpret-trailers.c:111
msgid "trailer"
msgstr "Anhang"
-#: builtin/commit.c:1637
+#: builtin/commit.c:1636
msgid "add custom trailer(s)"
msgstr "benutzerdefinierte Anhänge hinzufügen"
-#: builtin/commit.c:1638 builtin/log.c:1769 builtin/merge.c:306
+#: builtin/commit.c:1637 builtin/log.c:1788 builtin/merge.c:306
#: builtin/pull.c:146 builtin/revert.c:110
msgid "add a Signed-off-by trailer"
msgstr "eine Signed-off-by Zeile hinzufügen"
-#: builtin/commit.c:1639
+#: builtin/commit.c:1638
msgid "use specified template file"
msgstr "angegebene Vorlagendatei verwenden"
-#: builtin/commit.c:1640
+#: builtin/commit.c:1639
msgid "force edit of commit"
msgstr "Bearbeitung des Commits erzwingen"
-#: builtin/commit.c:1642
+#: builtin/commit.c:1641
msgid "include status in commit message template"
msgstr "Status in die Commit-Beschreibungsvorlage einfügen"
-#: builtin/commit.c:1647
+#: builtin/commit.c:1646
msgid "Commit contents options"
msgstr "Optionen für Commit-Inhalt"
-#: builtin/commit.c:1648
+#: builtin/commit.c:1647
msgid "commit all changed files"
msgstr "alle geänderten Dateien committen"
-#: builtin/commit.c:1649
+#: builtin/commit.c:1648
msgid "add specified files to index for commit"
msgstr "die angegebenen Dateien zusätzlich zum Commit vormerken"
-#: builtin/commit.c:1650
+#: builtin/commit.c:1649
msgid "interactively add files"
msgstr "interaktives Hinzufügen von Dateien"
-#: builtin/commit.c:1651
+#: builtin/commit.c:1650
msgid "interactively add changes"
msgstr "interaktives Hinzufügen von Änderungen"
-#: builtin/commit.c:1652
+#: builtin/commit.c:1651
msgid "commit only specified files"
msgstr "nur die angegebenen Dateien committen"
-#: builtin/commit.c:1653
+#: builtin/commit.c:1652
msgid "bypass pre-commit and commit-msg hooks"
msgstr "Hooks pre-commit und commit-msg umgehen"
-#: builtin/commit.c:1654
+#: builtin/commit.c:1653
msgid "show what would be committed"
msgstr "anzeigen, was committet werden würde"
-#: builtin/commit.c:1667
+#: builtin/commit.c:1666
msgid "amend previous commit"
msgstr "vorherigen Commit ändern"
-#: builtin/commit.c:1668
+#: builtin/commit.c:1667
msgid "bypass post-rewrite hook"
msgstr "\"post-rewrite hook\" umgehen"
-#: builtin/commit.c:1675
+#: builtin/commit.c:1674
msgid "ok to record an empty change"
msgstr "Aufzeichnung einer leeren Änderung erlauben"
-#: builtin/commit.c:1677
+#: builtin/commit.c:1676
msgid "ok to record a change with an empty message"
msgstr "Aufzeichnung einer Änderung mit einer leeren Beschreibung erlauben"
-#: builtin/commit.c:1753
+#: builtin/commit.c:1752
#, c-format
msgid "Corrupt MERGE_HEAD file (%s)"
msgstr "Beschädigte MERGE_HEAD-Datei (%s)"
-#: builtin/commit.c:1760
+#: builtin/commit.c:1759
msgid "could not read MERGE_MODE"
msgstr "Konnte MERGE_MODE nicht lesen"
-#: builtin/commit.c:1781
+#: builtin/commit.c:1780
#, c-format
msgid "could not read commit message: %s"
msgstr "Konnte Commit-Beschreibung nicht lesen: %s"
-#: builtin/commit.c:1788
+#: builtin/commit.c:1787
#, c-format
msgid "Aborting commit due to empty commit message.\n"
msgstr "Commit aufgrund leerer Beschreibung abgebrochen.\n"
-#: builtin/commit.c:1793
+#: builtin/commit.c:1792
#, c-format
msgid "Aborting commit; you did not edit the message.\n"
msgstr "Commit abgebrochen; Sie haben die Beschreibung nicht editiert.\n"
-#: builtin/commit.c:1804
+#: builtin/commit.c:1803
#, c-format
msgid "Aborting commit due to empty commit message body.\n"
msgstr "Commit aufgrund leerer Commit-Beschreibung abgebrochen.\n"
-#: builtin/commit.c:1840
+#: builtin/commit.c:1839
msgid ""
"repository has been updated, but unable to write\n"
"new_index file. Check that disk is not full and quota is\n"
@@ -14652,6 +15018,10 @@ msgstr "die Farbeinstellung finden: Slot [Standard-Ausgabe-ist-Terminal]"
msgid "Type"
msgstr "Typ"
+#: builtin/config.c:154 builtin/env--helper.c:42 builtin/hash-object.c:97
+msgid "type"
+msgstr "Art"
+
#: builtin/config.c:154 builtin/env--helper.c:43
msgid "value is given this type"
msgstr "Wert ist mit diesem Typ angegeben"
@@ -14868,10 +15238,6 @@ msgstr ""
msgid "no such section: %s"
msgstr "Sektion nicht gefunden: %s"
-#: builtin/count-objects.c:90
-msgid "git count-objects [-v] [-H | --human-readable]"
-msgstr "git count-objects [-v] [-H | --human-readable]"
-
#: builtin/count-objects.c:100
msgid "print sizes in human readable format"
msgstr "gibt Größenangaben in menschenlesbaren Format aus"
@@ -15044,7 +15410,7 @@ msgstr "nur Tags, die <Muster> entsprechen, betrachten"
msgid "do not consider tags matching <pattern>"
msgstr "keine Tags betrachten, die <Muster> entsprechen"
-#: builtin/describe.c:570 builtin/name-rev.c:544
+#: builtin/describe.c:570 builtin/name-rev.c:595
msgid "show abbreviated commit object as fallback"
msgstr "gekürztes Commit-Objekt anzeigen, wenn sonst nichts zutrifft"
@@ -15095,7 +15461,7 @@ msgstr "%s...%s: keine Merge-Basis"
msgid "Not a git repository"
msgstr "Kein Git-Repository"
-#: builtin/diff.c:537 builtin/grep.c:698
+#: builtin/diff.c:537 builtin/grep.c:700
#, c-format
msgid "invalid object '%s' given."
msgstr "Objekt '%s' ist ungültig."
@@ -15214,11 +15580,11 @@ msgstr "an `diff` übergeben"
msgid "difftool requires worktree or --no-index"
msgstr "difftool benötigt Arbeitsverzeichnis oder --no-index"
-#: builtin/difftool.c:744
+#: builtin/difftool.c:745
msgid "no <tool> given for --tool=<tool>"
msgstr "kein <Tool> für --tool=<Tool> angegeben"
-#: builtin/difftool.c:751
+#: builtin/difftool.c:752
msgid "no <cmd> given for --extcmd=<cmd>"
msgstr "kein <Programm> für --extcmd=<Programm> angegeben"
@@ -15226,10 +15592,6 @@ msgstr "kein <Programm> für --extcmd=<Programm> angegeben"
msgid "git env--helper --type=[bool|ulong] <options> <env-var>"
msgstr "git env--helper --type=[bool|ulong] <Optionen> <Umgebungsvariable>"
-#: builtin/env--helper.c:42 builtin/hash-object.c:96
-msgid "type"
-msgstr "Art"
-
#: builtin/env--helper.c:46
msgid "default for git_env_*(...) to fall back on"
msgstr "Standard für git_env_*(...), um darauf zurückzugreifen"
@@ -15255,8 +15617,8 @@ msgstr ""
"type=ulong`, nicht `%s`"
#: builtin/fast-export.c:29
-msgid "git fast-export [rev-list-opts]"
-msgstr "git fast-export [rev-list-opts]"
+msgid "git fast-export [<rev-list-opts>]"
+msgstr "git fast-export [<rev-list-opts>]"
#: builtin/fast-export.c:843
msgid "Error: Cannot export nested tags unless --mark-tags is specified."
@@ -15313,7 +15675,7 @@ msgstr "die \"done\"-Funktion benutzen, um den Datenstrom abzuschließen"
msgid "skip output of blob data"
msgstr "Ausgabe von Blob-Daten überspringen"
-#: builtin/fast-export.c:1196 builtin/log.c:1841
+#: builtin/fast-export.c:1196 builtin/log.c:1860
msgid "refspec"
msgstr "Refspec"
@@ -15347,36 +15709,36 @@ msgstr "originale Objekt-IDs von Blobs/Commits anzeigen"
msgid "label tags with mark ids"
msgstr "Tags mit Markierungs-IDs beschriften"
-#: builtin/fast-import.c:3090
+#: builtin/fast-import.c:3097
#, c-format
msgid "Missing from marks for submodule '%s'"
msgstr "Fehlende 'from'-Markierungen für Submodul '%s'"
-#: builtin/fast-import.c:3092
+#: builtin/fast-import.c:3099
#, c-format
msgid "Missing to marks for submodule '%s'"
msgstr "Fehlende 'to'-Markierungen für Submodul '%s'"
-#: builtin/fast-import.c:3227
+#: builtin/fast-import.c:3234
#, c-format
msgid "Expected 'mark' command, got %s"
msgstr "'mark' Befehl erwartet, '%s' bekommen"
-#: builtin/fast-import.c:3232
+#: builtin/fast-import.c:3239
#, c-format
msgid "Expected 'to' command, got %s"
msgstr "'to' Befehl erwartet, '%s' bekommen"
-#: builtin/fast-import.c:3324
+#: builtin/fast-import.c:3331
msgid "Expected format name:filename for submodule rewrite option"
msgstr "Format 'Name:Dateiname' für Submodul-Rewrite-Option erwartet"
-#: builtin/fast-import.c:3379
+#: builtin/fast-import.c:3386
#, c-format
msgid "feature '%s' forbidden in input without --allow-unsafe-features"
msgstr "Feature '%s' verboten in Eingabe ohne Option --allow-unsafe-features"
-#: builtin/fetch-pack.c:242
+#: builtin/fetch-pack.c:246
#, c-format
msgid "Lockfile created but not reported: %s"
msgstr "Lock-Datei erstellt, aber nicht gemeldet: %s"
@@ -15397,110 +15759,114 @@ msgstr "git fetch --multiple [<Optionen>] [(<Repository> | <Gruppe>)...]"
msgid "git fetch --all [<options>]"
msgstr "git fetch --all [<Optionen>]"
-#: builtin/fetch.c:123
+#: builtin/fetch.c:124
msgid "fetch.parallel cannot be negative"
msgstr "fetch.parallel kann nicht negativ sein"
-#: builtin/fetch.c:146 builtin/pull.c:189
+#: builtin/fetch.c:147 builtin/pull.c:189
msgid "fetch from all remotes"
msgstr "fordert von allen Remote-Repositories an"
-#: builtin/fetch.c:148 builtin/pull.c:249
+#: builtin/fetch.c:149 builtin/pull.c:249
msgid "set upstream for git pull/fetch"
msgstr "Upstream für \"git pull/fetch\" setzen"
-#: builtin/fetch.c:150 builtin/pull.c:192
+#: builtin/fetch.c:151 builtin/pull.c:192
msgid "append to .git/FETCH_HEAD instead of overwriting"
msgstr "an .git/FETCH_HEAD anhängen statt zu überschreiben"
-#: builtin/fetch.c:152
+#: builtin/fetch.c:153
msgid "use atomic transaction to update references"
msgstr "atomare Transaktionen nutzen, um Referenzen zu aktualisieren"
-#: builtin/fetch.c:154 builtin/pull.c:195
+#: builtin/fetch.c:155 builtin/pull.c:195
msgid "path to upload pack on remote end"
msgstr "Pfad des Programms zum Hochladen von Paketen auf der Gegenseite"
-#: builtin/fetch.c:155
+#: builtin/fetch.c:156
msgid "force overwrite of local reference"
msgstr "das Ãœberschreiben einer lokalen Referenz erzwingen"
-#: builtin/fetch.c:157
+#: builtin/fetch.c:158
msgid "fetch from multiple remotes"
msgstr "von mehreren Remote-Repositories anfordern"
-#: builtin/fetch.c:159 builtin/pull.c:199
+#: builtin/fetch.c:160 builtin/pull.c:199
msgid "fetch all tags and associated objects"
msgstr "alle Tags und verbundene Objekte anfordern"
-#: builtin/fetch.c:161
+#: builtin/fetch.c:162
msgid "do not fetch all tags (--no-tags)"
msgstr "nicht alle Tags anfordern (--no-tags)"
-#: builtin/fetch.c:163
+#: builtin/fetch.c:164
msgid "number of submodules fetched in parallel"
msgstr "Anzahl der parallel anzufordernden Submodule"
-#: builtin/fetch.c:165
+#: builtin/fetch.c:166
msgid "modify the refspec to place all refs within refs/prefetch/"
msgstr ""
"Refspec verändern, damit alle Referenzen unter refs/prefetch/ platziert "
"werden"
-#: builtin/fetch.c:167 builtin/pull.c:202
+#: builtin/fetch.c:168 builtin/pull.c:202
msgid "prune remote-tracking branches no longer on remote"
msgstr ""
"Remote-Tracking-Branches entfernen, die sich nicht mehr im Remote-Repository "
"befinden"
-#: builtin/fetch.c:169
+#: builtin/fetch.c:170
msgid "prune local tags no longer on remote and clobber changed tags"
msgstr ""
"lokale Tags entfernen, die sich nicht mehr im Remote-Repository befinden, "
"und geänderte Tags aktualisieren"
-#: builtin/fetch.c:170 builtin/fetch.c:195 builtin/pull.c:123
+#: builtin/fetch.c:171 builtin/fetch.c:199 builtin/pull.c:123
msgid "on-demand"
msgstr "bei-Bedarf"
-#: builtin/fetch.c:171
+#: builtin/fetch.c:172
msgid "control recursive fetching of submodules"
msgstr "rekursive Anforderungen von Submodulen kontrollieren"
-#: builtin/fetch.c:176
+#: builtin/fetch.c:177
msgid "write fetched references to the FETCH_HEAD file"
msgstr "schreibe angeforderte Referenzen in die FETCH_HEAD-Datei"
-#: builtin/fetch.c:177 builtin/pull.c:210
+#: builtin/fetch.c:178 builtin/pull.c:210
msgid "keep downloaded pack"
msgstr "heruntergeladenes Paket behalten"
-#: builtin/fetch.c:179
+#: builtin/fetch.c:180
msgid "allow updating of HEAD ref"
msgstr "Aktualisierung der \"HEAD\"-Referenz erlauben"
-#: builtin/fetch.c:182 builtin/fetch.c:188 builtin/pull.c:213
+#: builtin/fetch.c:183 builtin/fetch.c:189 builtin/pull.c:213
#: builtin/pull.c:222
msgid "deepen history of shallow clone"
msgstr ""
"die Historie eines Klons mit unvollständiger Historie (shallow) vertiefen"
-#: builtin/fetch.c:184 builtin/pull.c:216
+#: builtin/fetch.c:185 builtin/pull.c:216
msgid "deepen history of shallow repository based on time"
msgstr ""
"die Historie eines Klons mit unvollständiger Historie (shallow) auf "
"Zeitbasis\n"
"vertiefen"
-#: builtin/fetch.c:190 builtin/pull.c:225
+#: builtin/fetch.c:191 builtin/pull.c:225
msgid "convert to a complete repository"
msgstr "zu einem vollständigen Repository konvertieren"
-#: builtin/fetch.c:193
+#: builtin/fetch.c:194
+msgid "re-fetch without negotiating common commits"
+msgstr "erneutes Abrufen ohne Aushandeln gemeinsamer Commits"
+
+#: builtin/fetch.c:197
msgid "prepend this to submodule path output"
msgstr "dies an die Ausgabe der Submodul-Pfade voranstellen"
-#: builtin/fetch.c:196
+#: builtin/fetch.c:200
msgid ""
"default for recursive fetching of submodules (lower priority than config "
"files)"
@@ -15508,110 +15874,105 @@ msgstr ""
"Standard für die rekursive Anforderung von Submodulen (geringere Priorität\n"
"als Konfigurationsdateien)"
-#: builtin/fetch.c:200 builtin/pull.c:228
+#: builtin/fetch.c:204 builtin/pull.c:228
msgid "accept refs that update .git/shallow"
msgstr "Referenzen, die .git/shallow aktualisieren, akzeptieren"
-#: builtin/fetch.c:201 builtin/pull.c:230
+#: builtin/fetch.c:205 builtin/pull.c:230
msgid "refmap"
msgstr "Refmap"
-#: builtin/fetch.c:202 builtin/pull.c:231
+#: builtin/fetch.c:206 builtin/pull.c:231
msgid "specify fetch refmap"
msgstr "Refmap für 'fetch' angeben"
-#: builtin/fetch.c:209 builtin/pull.c:244
+#: builtin/fetch.c:213 builtin/pull.c:244
msgid "report that we have only objects reachable from this object"
msgstr ""
"ausgeben, dass wir nur Objekte haben, die von diesem Objekt aus erreichbar "
"sind"
-#: builtin/fetch.c:211
+#: builtin/fetch.c:215
msgid "do not fetch a packfile; instead, print ancestors of negotiation tips"
msgstr ""
"keine Packdatei anfordern; stattdessen die Vorgänger der Verhandlungstipps "
"anzeigen"
-#: builtin/fetch.c:214 builtin/fetch.c:216
+#: builtin/fetch.c:218 builtin/fetch.c:220
msgid "run 'maintenance --auto' after fetching"
msgstr "führe 'maintenance --auto' nach \"fetch\" aus"
-#: builtin/fetch.c:218 builtin/pull.c:247
+#: builtin/fetch.c:222 builtin/pull.c:247
msgid "check for forced-updates on all updated branches"
msgstr "Prüfe auf erzwungene Aktualisierungen in allen aktualisierten Branches"
-#: builtin/fetch.c:220
+#: builtin/fetch.c:224
msgid "write the commit-graph after fetching"
msgstr "Schreibe den Commit-Graph nach \"fetch\""
-#: builtin/fetch.c:222
+#: builtin/fetch.c:226
msgid "accept refspecs from stdin"
msgstr "akzeptiere Refspecs von der Standard-Eingabe"
-#: builtin/fetch.c:592
+#: builtin/fetch.c:618
msgid "couldn't find remote ref HEAD"
msgstr "konnte Remote-Referenz von HEAD nicht finden"
-#: builtin/fetch.c:766
-#, c-format
-msgid "configuration fetch.output contains invalid value %s"
-msgstr "Konfiguration fetch.output enthält ungültigen Wert %s"
-
-#: builtin/fetch.c:867
+#: builtin/fetch.c:893
#, c-format
msgid "object %s not found"
msgstr "Objekt %s nicht gefunden"
-#: builtin/fetch.c:871
+#: builtin/fetch.c:897
msgid "[up to date]"
msgstr "[aktuell]"
-#: builtin/fetch.c:883 builtin/fetch.c:901 builtin/fetch.c:973
+#: builtin/fetch.c:909 builtin/fetch.c:927 builtin/fetch.c:999
msgid "[rejected]"
msgstr "[zurückgewiesen]"
-#: builtin/fetch.c:885
+#: builtin/fetch.c:911
msgid "can't fetch in current branch"
msgstr "kann \"fetch\" im aktuellen Branch nicht ausführen"
-#: builtin/fetch.c:886
+#: builtin/fetch.c:912
msgid "checked out in another worktree"
msgstr "in einem anderen Arbeitsverzeichnis ausgecheckt"
-#: builtin/fetch.c:896
+#: builtin/fetch.c:922
msgid "[tag update]"
msgstr "[Tag Aktualisierung]"
-#: builtin/fetch.c:897 builtin/fetch.c:934 builtin/fetch.c:956
-#: builtin/fetch.c:968
+#: builtin/fetch.c:923 builtin/fetch.c:960 builtin/fetch.c:982
+#: builtin/fetch.c:994
msgid "unable to update local ref"
msgstr "kann lokale Referenz nicht aktualisieren"
-#: builtin/fetch.c:901
+#: builtin/fetch.c:927
msgid "would clobber existing tag"
msgstr "würde bestehende Tags verändern"
-#: builtin/fetch.c:923
+#: builtin/fetch.c:949
msgid "[new tag]"
msgstr "[neues Tag]"
-#: builtin/fetch.c:926
+#: builtin/fetch.c:952
msgid "[new branch]"
msgstr "[neuer Branch]"
-#: builtin/fetch.c:929
+#: builtin/fetch.c:955
msgid "[new ref]"
msgstr "[neue Referenz]"
-#: builtin/fetch.c:968
+#: builtin/fetch.c:994
msgid "forced update"
msgstr "Aktualisierung erzwungen"
-#: builtin/fetch.c:973
+#: builtin/fetch.c:999
msgid "non-fast-forward"
msgstr "kein Vorspulen"
-#: builtin/fetch.c:1076
+#: builtin/fetch.c:1102
msgid ""
"fetch normally indicates which branches had a forced update,\n"
"but that check has been disabled; to re-enable, use '--show-forced-updates'\n"
@@ -15622,7 +15983,7 @@ msgstr ""
"aktivieren, nutzen Sie die Option '--show-forced-updates' oder führen\n"
"Sie 'git config fetch.showForcedUpdates true' aus."
-#: builtin/fetch.c:1080
+#: builtin/fetch.c:1106
#, c-format
msgid ""
"it took %.2f seconds to check forced updates; you can use\n"
@@ -15635,24 +15996,24 @@ msgstr ""
"'git config fetch.showForcedUpdates false' ausführen, um diese Überprüfung\n"
"zu umgehen.\n"
-#: builtin/fetch.c:1112
+#: builtin/fetch.c:1136
#, c-format
msgid "%s did not send all necessary objects\n"
msgstr "%s hat nicht alle erforderlichen Objekte gesendet\n"
-#: builtin/fetch.c:1141
+#: builtin/fetch.c:1156
#, c-format
msgid "rejected %s because shallow roots are not allowed to be updated"
msgstr ""
"%s zurückgewiesen, da Root-Commits von Repositories mit unvollständiger\n"
"Historie (shallow) nicht aktualisiert werden dürfen."
-#: builtin/fetch.c:1231 builtin/fetch.c:1379
+#: builtin/fetch.c:1259 builtin/fetch.c:1418
#, c-format
msgid "From %.*s\n"
msgstr "Von %.*s\n"
-#: builtin/fetch.c:1252
+#: builtin/fetch.c:1269
#, c-format
msgid ""
"some local refs could not be updated; try running\n"
@@ -15661,49 +16022,49 @@ msgstr ""
"Einige lokale Referenzen konnten nicht aktualisiert werden; versuchen Sie\n"
"'git remote prune %s', um jeden älteren, widersprüchlichen Branch zu löschen."
-#: builtin/fetch.c:1349
+#: builtin/fetch.c:1377
#, c-format
msgid " (%s will become dangling)"
msgstr " (%s wird unreferenziert)"
-#: builtin/fetch.c:1350
+#: builtin/fetch.c:1378
#, c-format
msgid " (%s has become dangling)"
msgstr " (%s wurde unreferenziert)"
-#: builtin/fetch.c:1382
+#: builtin/fetch.c:1421
msgid "[deleted]"
msgstr "[gelöscht]"
-#: builtin/fetch.c:1383 builtin/remote.c:1128
+#: builtin/fetch.c:1422 builtin/remote.c:1153
msgid "(none)"
msgstr "(nichts)"
-#: builtin/fetch.c:1405
+#: builtin/fetch.c:1446
#, c-format
msgid "refusing to fetch into branch '%s' checked out at '%s'"
msgstr "Anfordern in Branch '%s' verweigert, ausgecheckt in '%s'"
-#: builtin/fetch.c:1425
+#: builtin/fetch.c:1466
#, c-format
msgid "option \"%s\" value \"%s\" is not valid for %s"
msgstr "Option \"%s\" Wert \"%s\" ist nicht gültig für %s"
-#: builtin/fetch.c:1428
+#: builtin/fetch.c:1469
#, c-format
msgid "option \"%s\" is ignored for %s\n"
msgstr "Option \"%s\" wird ignoriert für %s\n"
-#: builtin/fetch.c:1455
+#: builtin/fetch.c:1496
#, c-format
msgid "the object %s does not exist"
msgstr "das Objekt %s ist nicht vorhanden"
-#: builtin/fetch.c:1643
+#: builtin/fetch.c:1748
msgid "multiple branches detected, incompatible with --set-upstream"
msgstr "mehrere Branches erkannt, inkompatibel mit --set-upstream"
-#: builtin/fetch.c:1655
+#: builtin/fetch.c:1760
#, c-format
msgid ""
"could not set upstream of HEAD to '%s' from '%s' when it does not point to "
@@ -15712,19 +16073,19 @@ msgstr ""
"konnte keinen Upstream-Branch von HEAD auf '%s' von '%s' setzen, da dieser "
"auf keinen Branch zeigt."
-#: builtin/fetch.c:1668
+#: builtin/fetch.c:1773
msgid "not setting upstream for a remote remote-tracking branch"
msgstr "setze keinen Upstream für einen entfernten Remote-Tracking-Branch"
-#: builtin/fetch.c:1670
+#: builtin/fetch.c:1775
msgid "not setting upstream for a remote tag"
msgstr "setze keinen Upstream für einen Tag eines Remote-Repositories"
-#: builtin/fetch.c:1672
+#: builtin/fetch.c:1777
msgid "unknown branch type"
msgstr "unbekannter Branch-Typ"
-#: builtin/fetch.c:1674
+#: builtin/fetch.c:1779
msgid ""
"no source branch found;\n"
"you need to specify exactly one branch with the --set-upstream option"
@@ -15732,22 +16093,22 @@ msgstr ""
"kein Quell-Branch gefunden;\n"
"Sie müssen bei der Option --set-upstream genau einen Branch angeben"
-#: builtin/fetch.c:1804 builtin/fetch.c:1867
+#: builtin/fetch.c:1904 builtin/fetch.c:1967
#, c-format
msgid "Fetching %s\n"
msgstr "Fordere an von %s\n"
-#: builtin/fetch.c:1814 builtin/fetch.c:1869
+#: builtin/fetch.c:1914 builtin/fetch.c:1969
#, c-format
msgid "could not fetch %s"
msgstr "konnte %s nicht anfordern"
-#: builtin/fetch.c:1826
+#: builtin/fetch.c:1926
#, c-format
msgid "could not fetch '%s' (exit code: %d)\n"
msgstr "Konnte '%s' nicht anfordern (Exit-Code: %d)\n"
-#: builtin/fetch.c:1930
+#: builtin/fetch.c:2030
msgid ""
"no remote repository specified; please specify either a URL or a\n"
"remote name from which new revisions should be fetched"
@@ -15756,52 +16117,52 @@ msgstr ""
"oder den Namen des Remote-Repositories an, von welchem neue\n"
"Commits angefordert werden sollen"
-#: builtin/fetch.c:1966
+#: builtin/fetch.c:2066
msgid "you need to specify a tag name"
msgstr "Sie müssen den Namen des Tags angeben"
-#: builtin/fetch.c:2032
-msgid "--negotiate-only needs one or more --negotiate-tip=*"
-msgstr "--negotiate-only benötigt einen oder mehrere --negotiate-tip=*"
+#: builtin/fetch.c:2156
+msgid "--negotiate-only needs one or more --negotiation-tip=*"
+msgstr "--negotiate-only benötigt einen oder mehrere --negotiation-tip=*"
-#: builtin/fetch.c:2036
+#: builtin/fetch.c:2160
msgid "negative depth in --deepen is not supported"
msgstr "negative Tiefe wird von --deepen nicht unterstützt"
-#: builtin/fetch.c:2045
+#: builtin/fetch.c:2169
msgid "--unshallow on a complete repository does not make sense"
msgstr ""
"--unshallow kann nicht in einem Repository mit vollständiger Historie "
"verwendet werden"
-#: builtin/fetch.c:2062
+#: builtin/fetch.c:2186
msgid "fetch --all does not take a repository argument"
msgstr "fetch --all akzeptiert kein Repository als Argument"
-#: builtin/fetch.c:2064
+#: builtin/fetch.c:2188
msgid "fetch --all does not make sense with refspecs"
msgstr "fetch --all kann nicht mit Refspecs verwendet werden"
-#: builtin/fetch.c:2073
+#: builtin/fetch.c:2197
#, c-format
msgid "no such remote or remote group: %s"
msgstr "Remote-Repository (einzeln oder Gruppe) nicht gefunden: %s"
-#: builtin/fetch.c:2081
+#: builtin/fetch.c:2205
msgid "fetching a group and specifying refspecs does not make sense"
msgstr ""
"das Abrufen einer Gruppe und die Angabe einer Pfadspezifikation ist nicht "
"sinnvoll"
-#: builtin/fetch.c:2097
+#: builtin/fetch.c:2221
msgid "must supply remote when using --negotiate-only"
msgstr "Remote wird benötigt, wenn --negotiate-only benutzt wird"
-#: builtin/fetch.c:2102
+#: builtin/fetch.c:2226
msgid "protocol does not support --negotiate-only, exiting"
msgstr "Protokoll unterstützt --negotiate-only nicht, beende"
-#: builtin/fetch.c:2121
+#: builtin/fetch.c:2246
msgid ""
"--filter can only be used with the remote configured in extensions."
"partialclone"
@@ -15809,13 +16170,13 @@ msgstr ""
"--filter kann nur mit den Remote-Repositories verwendet werden,\n"
"die in extensions.partialclone konfiguriert sind"
-#: builtin/fetch.c:2125
+#: builtin/fetch.c:2250
msgid "--atomic can only be used when fetching from one remote"
msgstr ""
"--atomic kann nur verwendet werden, wenn nur von einem Remote-Repository "
"abgefragt wird"
-#: builtin/fetch.c:2129
+#: builtin/fetch.c:2254
msgid "--stdin can only be used when fetching from one remote"
msgstr ""
"--stdin kann nur verwendet werden, wenn nur von einem Remote-Repository "
@@ -15888,7 +16249,7 @@ msgstr "Platzhalter als Tcl-String formatieren"
msgid "show only <n> matched refs"
msgstr "nur <n> passende Referenzen anzeigen"
-#: builtin/for-each-ref.c:42 builtin/tag.c:481
+#: builtin/for-each-ref.c:42 builtin/tag.c:482
msgid "respect format colors"
msgstr "Formatfarben beachten"
@@ -16082,7 +16443,7 @@ msgstr "Prüfe Objekt-Verzeichnisse"
msgid "Checking %s link"
msgstr "Prüfe %s Verknüpfung"
-#: builtin/fsck.c:710 builtin/index-pack.c:859
+#: builtin/fsck.c:710 builtin/index-pack.c:862
#, c-format
msgid "invalid %s"
msgstr "Ungültiger Objekt-Typ %s"
@@ -16151,7 +16512,7 @@ msgstr "ebenso Pakete und alternative Objekte betrachten"
msgid "check only connectivity"
msgstr "nur Konnektivität prüfen"
-#: builtin/fsck.c:798 builtin/mktag.c:76
+#: builtin/fsck.c:798 builtin/mktag.c:75
msgid "enable more strict checking"
msgstr "genauere Prüfung aktivieren"
@@ -16181,6 +16542,118 @@ msgstr "%s: Objekt nicht vorhanden"
msgid "invalid parameter: expected sha1, got '%s'"
msgstr "Ungültiger Parameter: SHA-1 erwartet, '%s' bekommen"
+#: builtin/fsmonitor--daemon.c:13
+msgid "git fsmonitor--daemon start [<options>]"
+msgstr "git fsmonitor--daemon start [<Optionen>]"
+
+#: builtin/fsmonitor--daemon.c:14
+msgid "git fsmonitor--daemon run [<options>]"
+msgstr "git fsmonitor--daemon run [<Optionen>]"
+
+#: builtin/fsmonitor--daemon.c:15
+msgid "git fsmonitor--daemon stop"
+msgstr "git fsmonitor--daemon stop"
+
+#: builtin/fsmonitor--daemon.c:16
+msgid "git fsmonitor--daemon status"
+msgstr "git fsmonitor--daemon status"
+
+#: builtin/fsmonitor--daemon.c:38 builtin/fsmonitor--daemon.c:47
+#, c-format
+msgid "value of '%s' out of range: %d"
+msgstr "Wert von '%s' außerhalb des Bereichs: %d"
+
+#: builtin/fsmonitor--daemon.c:57
+#, c-format
+msgid "value of '%s' not bool or int: %d"
+msgstr "Wert von '%s' ist nicht bool oder int: %d"
+
+#: builtin/fsmonitor--daemon.c:99
+#, c-format
+msgid "fsmonitor-daemon is watching '%s'\n"
+msgstr "fsmonitor-daemon beobachtet '%s'\n"
+
+#: builtin/fsmonitor--daemon.c:104
+#, c-format
+msgid "fsmonitor-daemon is not watching '%s'\n"
+msgstr "fsmonitor-daemon beobachtet '%s nicht'\n"
+
+#: builtin/fsmonitor--daemon.c:170
+#, c-format
+msgid "could not create fsmonitor cookie '%s'"
+msgstr "konnte fsmonitor Cookie '%s' nicht erstellen"
+
+#: builtin/fsmonitor--daemon.c:753
+#, c-format
+msgid "fsmonitor: cookie_result '%d' != SEEN"
+msgstr "fsmonitor: cookie_result '%d' != SEEN"
+
+#: builtin/fsmonitor--daemon.c:1187
+#, c-format
+msgid "could not start IPC thread pool on '%s'"
+msgstr "konnte IPC-Threadpool nicht unter '%s' starten"
+
+#: builtin/fsmonitor--daemon.c:1199
+msgid "could not start fsmonitor listener thread"
+msgstr "konnte Thread für fsmonitor listener nicht starten"
+
+#: builtin/fsmonitor--daemon.c:1297
+msgid "could not initialize listener thread"
+msgstr "konnte listener Thread nicht initialisieren"
+
+#: builtin/fsmonitor--daemon.c:1328 builtin/fsmonitor--daemon.c:1383
+#, c-format
+msgid "fsmonitor--daemon is already running '%s'"
+msgstr "fsmonitor--daemon läuft bereits '%s'"
+
+#: builtin/fsmonitor--daemon.c:1332
+#, c-format
+msgid "running fsmonitor-daemon in '%s'\n"
+msgstr "fsmonitor-daemon wird in '%s' ausgeführt\n"
+
+#: builtin/fsmonitor--daemon.c:1387
+#, c-format
+msgid "starting fsmonitor-daemon in '%s'\n"
+msgstr "starte fsmonitor-daemon unter '%s'\n"
+
+#: builtin/fsmonitor--daemon.c:1413
+msgid "daemon failed to start"
+msgstr "Fehler beim Starten des Daemons"
+
+#: builtin/fsmonitor--daemon.c:1416
+msgid "daemon not online yet"
+msgstr "Daemon ist noch nicht online"
+
+#: builtin/fsmonitor--daemon.c:1419
+msgid "daemon terminated"
+msgstr "Daemon beendet"
+
+#: builtin/fsmonitor--daemon.c:1429
+msgid "detach from console"
+msgstr "von der Konsole loslösen"
+
+#: builtin/fsmonitor--daemon.c:1432
+msgid "use <n> ipc worker threads"
+msgstr "<n> IPC-Arbeitsthreads benutzen"
+
+#: builtin/fsmonitor--daemon.c:1435
+msgid "max seconds to wait for background daemon startup"
+msgstr "maximale Sekunden, um auf Starten des Hintergrund-Daemons zu warten"
+
+#: builtin/fsmonitor--daemon.c:1449
+#, c-format
+msgid "invalid 'ipc-threads' value (%d)"
+msgstr "ungültiger 'ipc-threads' Wert (%d)"
+
+#: builtin/fsmonitor--daemon.c:1464
+#, c-format
+msgid "Unhandled subcommand '%s'"
+msgstr "Nicht behandelter Unterbefehl '%s'"
+
+#: builtin/fsmonitor--daemon.c:1477
+msgid "fsmonitor--daemon not supported on this platform"
+msgstr "fsmonitor--daemon wird auf dieser Plattform nicht unterstützt"
+
#: builtin/gc.c:39
msgid "git gc [<options>]"
msgstr "git gc [<Optionen>]"
@@ -16315,7 +16788,7 @@ msgstr "konnte 'git pack-objects' Prozess nicht beenden"
#: builtin/gc.c:1090
msgid "failed to write multi-pack-index"
-msgstr "Fehler beim Schreiben des multi-pack-index"
+msgstr "Fehler beim Schreiben des Multi-Pack-Index"
#: builtin/gc.c:1106
msgid "'git multi-pack-index expire' failed"
@@ -16440,8 +16913,8 @@ msgstr "Fehler beim Starten von systemctl"
msgid "failed to run systemctl"
msgstr "Fehler beim Ausführen von systemctl"
-#: builtin/gc.c:2210 builtin/gc.c:2215 builtin/worktree.c:62
-#: builtin/worktree.c:944
+#: builtin/gc.c:2210 builtin/gc.c:2215 builtin/worktree.c:63
+#: builtin/worktree.c:1024
#, c-format
msgid "failed to delete '%s'"
msgstr "Fehler beim Löschen von '%s'"
@@ -16489,16 +16962,16 @@ msgstr "git maintenance <Unterbefehl> [<Optionen>]"
msgid "invalid subcommand: %s"
msgstr "ungültiger Unterbefehl: %s"
-#: builtin/grep.c:30
+#: builtin/grep.c:32
msgid "git grep [<options>] [-e] <pattern> [<rev>...] [[--] <path>...]"
msgstr "git grep [<Optionen>] [-e] <Muster> [<Commit>...] [[--] <Pfad>...]"
-#: builtin/grep.c:239
+#: builtin/grep.c:241
#, c-format
msgid "grep: failed to create thread: %s"
msgstr "grep: Fehler beim Erzeugen eines Thread: %s"
-#: builtin/grep.c:293
+#: builtin/grep.c:295
#, c-format
msgid "invalid number of threads specified (%d) for %s"
msgstr "ungültige Anzahl von Threads (%d) für %s angegeben"
@@ -16507,266 +16980,258 @@ msgstr "ungültige Anzahl von Threads (%d) für %s angegeben"
#. variable for tweaking threads, currently
#. grep.threads
#.
-#: builtin/grep.c:301 builtin/index-pack.c:1582 builtin/index-pack.c:1785
-#: builtin/pack-objects.c:3142
+#: builtin/grep.c:303 builtin/index-pack.c:1587 builtin/index-pack.c:1791
+#: builtin/pack-objects.c:3150
#, c-format
msgid "no threads support, ignoring %s"
msgstr "keine Unterstützung von Threads, '%s' wird ignoriert"
-#: builtin/grep.c:488 builtin/grep.c:617 builtin/grep.c:657
+#: builtin/grep.c:490 builtin/grep.c:619 builtin/grep.c:659
#, c-format
msgid "unable to read tree (%s)"
msgstr "konnte \"Tree\"-Objekt (%s) nicht lesen"
-#: builtin/grep.c:672
+#: builtin/grep.c:674
#, c-format
msgid "unable to grep from object of type %s"
msgstr "kann \"grep\" nicht mit Objekten des Typs %s durchführen"
-#: builtin/grep.c:752
+#: builtin/grep.c:754
#, c-format
msgid "switch `%c' expects a numerical value"
msgstr "Schalter `%c' erwartet einen numerischen Wert"
-#: builtin/grep.c:851
+#: builtin/grep.c:852
msgid "search in index instead of in the work tree"
msgstr "im Index statt im Arbeitsverzeichnis suchen"
-#: builtin/grep.c:853
+#: builtin/grep.c:854
msgid "find in contents not managed by git"
msgstr "auch in Inhalten finden, die nicht von Git verwaltet werden"
-#: builtin/grep.c:855
+#: builtin/grep.c:856
msgid "search in both tracked and untracked files"
msgstr "in versionierten und unversionierten Dateien suchen"
-#: builtin/grep.c:857
+#: builtin/grep.c:858
msgid "ignore files specified via '.gitignore'"
msgstr "Dateien, die über '.gitignore' angegeben sind, ignorieren"
-#: builtin/grep.c:859
+#: builtin/grep.c:860
msgid "recursively search in each submodule"
msgstr "rekursive Suche in jedem Submodul"
-#: builtin/grep.c:862
+#: builtin/grep.c:863
msgid "show non-matching lines"
msgstr "Zeilen ohne Ãœbereinstimmungen anzeigen"
-#: builtin/grep.c:864
+#: builtin/grep.c:865
msgid "case insensitive matching"
msgstr "Übereinstimmungen unabhängig von Groß- und Kleinschreibung finden"
-#: builtin/grep.c:866
+#: builtin/grep.c:867
msgid "match patterns only at word boundaries"
msgstr "nur ganze Wörter suchen"
-#: builtin/grep.c:868
+#: builtin/grep.c:869
msgid "process binary files as text"
msgstr "binäre Dateien als Text verarbeiten"
-#: builtin/grep.c:870
+#: builtin/grep.c:871
msgid "don't match patterns in binary files"
msgstr "keine Muster in Binärdateien finden"
-#: builtin/grep.c:873
+#: builtin/grep.c:874
msgid "process binary files with textconv filters"
msgstr "binäre Dateien mit \"textconv\"-Filtern verarbeiten"
-#: builtin/grep.c:875
+#: builtin/grep.c:876
msgid "search in subdirectories (default)"
msgstr "in Unterverzeichnissen suchen (Standard)"
-#: builtin/grep.c:877
+#: builtin/grep.c:878
msgid "descend at most <depth> levels"
msgstr "höchstens <Tiefe> Ebenen durchlaufen"
-#: builtin/grep.c:881
+#: builtin/grep.c:882
msgid "use extended POSIX regular expressions"
msgstr "erweiterte reguläre Ausdrücke aus POSIX verwenden"
-#: builtin/grep.c:884
+#: builtin/grep.c:885
msgid "use basic POSIX regular expressions (default)"
msgstr "grundlegende reguläre Ausdrücke aus POSIX verwenden (Standard)"
-#: builtin/grep.c:887
+#: builtin/grep.c:888
msgid "interpret patterns as fixed strings"
msgstr "Muster als feste Zeichenketten interpretieren"
-#: builtin/grep.c:890
+#: builtin/grep.c:891
msgid "use Perl-compatible regular expressions"
msgstr "Perl-kompatible reguläre Ausdrücke verwenden"
-#: builtin/grep.c:893
+#: builtin/grep.c:894
msgid "show line numbers"
msgstr "Zeilennummern anzeigen"
-#: builtin/grep.c:894
+#: builtin/grep.c:895
msgid "show column number of first match"
msgstr "Nummer der Spalte des ersten Treffers anzeigen"
-#: builtin/grep.c:895
+#: builtin/grep.c:896
msgid "don't show filenames"
msgstr "keine Dateinamen anzeigen"
-#: builtin/grep.c:896
+#: builtin/grep.c:897
msgid "show filenames"
msgstr "Dateinamen anzeigen"
-#: builtin/grep.c:898
+#: builtin/grep.c:899
msgid "show filenames relative to top directory"
msgstr "Dateinamen relativ zum Projektverzeichnis anzeigen"
-#: builtin/grep.c:900
+#: builtin/grep.c:901
msgid "show only filenames instead of matching lines"
msgstr "nur Dateinamen anzeigen anstatt übereinstimmende Zeilen"
-#: builtin/grep.c:902
+#: builtin/grep.c:903
msgid "synonym for --files-with-matches"
msgstr "Synonym für --files-with-matches"
-#: builtin/grep.c:905
+#: builtin/grep.c:906
msgid "show only the names of files without match"
msgstr "nur die Dateinamen ohne Ãœbereinstimmungen anzeigen"
-#: builtin/grep.c:907
+#: builtin/grep.c:908
msgid "print NUL after filenames"
msgstr "NUL-Zeichen nach Dateinamen ausgeben"
-#: builtin/grep.c:910
+#: builtin/grep.c:911
msgid "show only matching parts of a line"
msgstr "nur übereinstimmende Teile der Zeile anzeigen"
-#: builtin/grep.c:912
+#: builtin/grep.c:913
msgid "show the number of matches instead of matching lines"
msgstr "anstatt der Zeilen, die Anzahl der übereinstimmenden Zeilen anzeigen"
-#: builtin/grep.c:913
+#: builtin/grep.c:914
msgid "highlight matches"
msgstr "Ãœbereinstimmungen hervorheben"
-#: builtin/grep.c:915
+#: builtin/grep.c:916
msgid "print empty line between matches from different files"
msgstr ""
"eine Leerzeile zwischen Ãœbereinstimmungen in verschiedenen Dateien ausgeben"
-#: builtin/grep.c:917
+#: builtin/grep.c:918
msgid "show filename only once above matches from same file"
msgstr ""
"den Dateinamen nur einmal oberhalb der Ãœbereinstimmungen aus dieser Datei "
"anzeigen"
-#: builtin/grep.c:920
+#: builtin/grep.c:921
msgid "show <n> context lines before and after matches"
msgstr "<n> Zeilen vor und nach den Ãœbereinstimmungen anzeigen"
-#: builtin/grep.c:923
+#: builtin/grep.c:924
msgid "show <n> context lines before matches"
msgstr "<n> Zeilen vor den Ãœbereinstimmungen anzeigen"
-#: builtin/grep.c:925
+#: builtin/grep.c:926
msgid "show <n> context lines after matches"
msgstr "<n> Zeilen nach den Ãœbereinstimmungen anzeigen"
-#: builtin/grep.c:927
+#: builtin/grep.c:928
msgid "use <n> worker threads"
msgstr "<n> Threads benutzen"
-#: builtin/grep.c:928
+#: builtin/grep.c:929
msgid "shortcut for -C NUM"
msgstr "Kurzform für -C NUM"
-#: builtin/grep.c:931
+#: builtin/grep.c:932
msgid "show a line with the function name before matches"
msgstr "eine Zeile mit dem Funktionsnamen vor Ãœbereinstimmungen anzeigen"
-#: builtin/grep.c:933
+#: builtin/grep.c:934
msgid "show the surrounding function"
msgstr "die umgebende Funktion anzeigen"
-#: builtin/grep.c:936
+#: builtin/grep.c:937
msgid "read patterns from file"
msgstr "Muster von einer Datei lesen"
-#: builtin/grep.c:938
+#: builtin/grep.c:939
msgid "match <pattern>"
msgstr "<Muster> finden"
-#: builtin/grep.c:940
+#: builtin/grep.c:941
msgid "combine patterns specified with -e"
msgstr "Muster kombinieren, die mit -e angegeben wurden"
-#: builtin/grep.c:952
+#: builtin/grep.c:953
msgid "indicate hit with exit status without output"
msgstr "Ãœbereinstimmungen nur durch Beendigungsstatus anzeigen"
-#: builtin/grep.c:954
+#: builtin/grep.c:955
msgid "show only matches from files that match all patterns"
msgstr ""
"nur Ãœbereinstimmungen von Dateien anzeigen, die allen Mustern entsprechen"
-#: builtin/grep.c:957
+#: builtin/grep.c:958
msgid "pager"
msgstr "Anzeigeprogramm"
-#: builtin/grep.c:957
+#: builtin/grep.c:958
msgid "show matching files in the pager"
msgstr "Dateien mit Ãœbereinstimmungen im Anzeigeprogramm anzeigen"
-#: builtin/grep.c:961
+#: builtin/grep.c:962
msgid "allow calling of grep(1) (ignored by this build)"
msgstr "den Aufruf von grep(1) erlauben (von dieser Programmversion ignoriert)"
-#: builtin/grep.c:1027
+#: builtin/grep.c:1028
msgid "no pattern given"
msgstr "Kein Muster angegeben."
-#: builtin/grep.c:1063
+#: builtin/grep.c:1064
msgid "--no-index or --untracked cannot be used with revs"
msgstr "--no-index oder --untracked können nicht mit Commits verwendet werden"
-#: builtin/grep.c:1071
+#: builtin/grep.c:1072
#, c-format
msgid "unable to resolve revision: %s"
msgstr "Konnte Commit nicht auflösen: %s"
-#: builtin/grep.c:1101
+#: builtin/grep.c:1102
msgid "--untracked not supported with --recurse-submodules"
msgstr "--untracked zusammen mit --recurse-submodules wird nicht unterstützt"
-#: builtin/grep.c:1105
+#: builtin/grep.c:1106
msgid "invalid option combination, ignoring --threads"
msgstr "Ungültige Kombination von Optionen, --threads wird ignoriert."
-#: builtin/grep.c:1108 builtin/pack-objects.c:4059
+#: builtin/grep.c:1109 builtin/pack-objects.c:4084
msgid "no threads support, ignoring --threads"
msgstr "Keine Unterstützung für Threads, --threads wird ignoriert."
-#: builtin/grep.c:1111 builtin/index-pack.c:1579 builtin/pack-objects.c:3139
+#: builtin/grep.c:1112 builtin/index-pack.c:1584 builtin/pack-objects.c:3147
#, c-format
msgid "invalid number of threads specified (%d)"
msgstr "ungültige Anzahl von Threads angegeben (%d)"
-#: builtin/grep.c:1145
+#: builtin/grep.c:1146
msgid "--open-files-in-pager only works on the worktree"
msgstr ""
"--open-files-in-pager kann nur innerhalb des Arbeitsverzeichnisses verwendet "
"werden"
-#: builtin/grep.c:1171
-msgid "--cached or --untracked cannot be used with --no-index"
-msgstr "--cached und --untracked können nicht mit --no-index verwendet werden"
-
-#: builtin/grep.c:1174
-msgid "--untracked cannot be used with --cached"
-msgstr "--untracked kann nicht mit --cached verwendet werden"
-
-#: builtin/grep.c:1180
+#: builtin/grep.c:1179
msgid "--[no-]exclude-standard cannot be used for tracked contents"
msgstr ""
"--[no-]exclude-standard kann nicht mit versionierten Inhalten verwendet "
"werden"
-#: builtin/grep.c:1188
+#: builtin/grep.c:1187
msgid "both --cached and trees are given"
msgstr "--cached und \"Tree\"-Objekte angegeben"
@@ -16778,109 +17243,101 @@ msgstr ""
"git hash-object [-t <Art>] [-w] [--path=<Datei> | --no-filters] [--stdin] "
"[--] <Datei>..."
-#: builtin/hash-object.c:84
-msgid "git hash-object --stdin-paths"
-msgstr "git hash-object --stdin-paths"
-
-#: builtin/hash-object.c:96
+#: builtin/hash-object.c:97
msgid "object type"
msgstr "Art des Objektes"
-#: builtin/hash-object.c:97
+#: builtin/hash-object.c:98
msgid "write the object into the object database"
msgstr "das Objekt in die Objektdatenbank schreiben"
-#: builtin/hash-object.c:99
+#: builtin/hash-object.c:100
msgid "read the object from stdin"
msgstr "das Objekt von der Standard-Eingabe lesen"
-#: builtin/hash-object.c:101
+#: builtin/hash-object.c:102
msgid "store file as is without filters"
msgstr "Datei wie sie ist speichern, ohne Filter"
-#: builtin/hash-object.c:102
+#: builtin/hash-object.c:103
msgid ""
"just hash any random garbage to create corrupt objects for debugging Git"
msgstr ""
"Hash über zufällige Daten, zur Erzeugung von beschädigten Objekten zur\n"
"Fehlersuche in Git, erzeugen"
-#: builtin/hash-object.c:103
+#: builtin/hash-object.c:104
msgid "process file as it were from this path"
msgstr "Datei verarbeiten, als ob sie von diesem Pfad wäre"
-#: builtin/help.c:55
+#: builtin/help.c:57
msgid "print all available commands"
msgstr "alle vorhandenen Befehle anzeigen"
-#: builtin/help.c:57
+#: builtin/help.c:60
+msgid "show external commands in --all"
+msgstr "zeige externe Befehle bei --all"
+
+#: builtin/help.c:61
+msgid "show aliases in --all"
+msgstr "zeige Aliase bei --all"
+
+#: builtin/help.c:62
msgid "exclude guides"
msgstr "Anleitungen ausschließen"
-#: builtin/help.c:58
+#: builtin/help.c:63
msgid "show man page"
msgstr "Handbuch anzeigen"
-#: builtin/help.c:59
+#: builtin/help.c:64
msgid "show manual in web browser"
msgstr "Handbuch in einem Webbrowser anzeigen"
-#: builtin/help.c:61
+#: builtin/help.c:66
msgid "show info page"
msgstr "Info-Seite anzeigen"
-#: builtin/help.c:63
+#: builtin/help.c:68
msgid "print command description"
msgstr "Beschreibung des Befehls ausgeben"
-#: builtin/help.c:65
+#: builtin/help.c:70
msgid "print list of useful guides"
msgstr "Liste von allgemein verwendeten Anleitungen anzeigen"
-#: builtin/help.c:67
+#: builtin/help.c:72
msgid "print all configuration variable names"
msgstr "alle Namen der Konfigurationsvariablen ausgeben"
-#: builtin/help.c:78
-msgid ""
-"git help [-a|--all] [--[no-]verbose]]\n"
-" [[-i|--info] [-m|--man] [-w|--web]] [<command>]"
-msgstr ""
-"git help [-a|--all] [--[no-]verbose]]\n"
-" [[-i|--info] [-m|--man] [-w|--web]] [<Befehl>]"
-
-#: builtin/help.c:80
-msgid "git help [-g|--guides]"
-msgstr "git help [-g|--guides]"
-
-#: builtin/help.c:81
-msgid "git help [-c|--config]"
-msgstr "git help [-c|--config]"
+#: builtin/help.c:84
+msgid "git help [[-i|--info] [-m|--man] [-w|--web]] [<command>]"
+msgstr "git help [[-i|--info] [-m|--man] [-w|--web]] [<Befehl>]"
-#: builtin/help.c:196
+#: builtin/help.c:201
#, c-format
msgid "unrecognized help format '%s'"
msgstr "nicht erkanntes Hilfeformat: %s"
-#: builtin/help.c:222
+#: builtin/help.c:227
msgid "Failed to start emacsclient."
msgstr "Konnte emacsclient nicht starten."
-#: builtin/help.c:235
+#: builtin/help.c:240
msgid "Failed to parse emacsclient version."
msgstr "Konnte Version des emacsclient nicht parsen."
-#: builtin/help.c:243
+#: builtin/help.c:248
#, c-format
msgid "emacsclient version '%d' too old (< 22)."
msgstr "Version des emacsclient '%d' ist zu alt (< 22)."
-#: builtin/help.c:261 builtin/help.c:283 builtin/help.c:293 builtin/help.c:301
+#: builtin/help.c:266 builtin/help.c:288 builtin/help.c:298 builtin/help.c:306
#, c-format
msgid "failed to exec '%s'"
msgstr "Fehler beim Ausführen von '%s'"
-#: builtin/help.c:339
+#: builtin/help.c:344
#, c-format
msgid ""
"'%s': path for unsupported man viewer.\n"
@@ -16889,7 +17346,7 @@ msgstr ""
"'%s': Pfad für nicht unterstützten Handbuchbetrachter.\n"
"Sie könnten stattdessen 'man.<Werkzeug>.cmd' benutzen."
-#: builtin/help.c:351
+#: builtin/help.c:356
#, c-format
msgid ""
"'%s': cmd for supported man viewer.\n"
@@ -16898,42 +17355,58 @@ msgstr ""
"'%s': Programm für unterstützten Handbuchbetrachter.\n"
"Sie könnten stattdessen 'man.<Werkzeug>.path' benutzen."
-#: builtin/help.c:466
+#: builtin/help.c:471
#, c-format
msgid "'%s': unknown man viewer."
msgstr "'%s': unbekannter Handbuch-Betrachter."
-#: builtin/help.c:482
+#: builtin/help.c:487
msgid "no man viewer handled the request"
msgstr "kein Handbuch-Betrachter konnte mit dieser Anfrage umgehen"
-#: builtin/help.c:489
+#: builtin/help.c:494
msgid "no info viewer handled the request"
msgstr "kein Informations-Betrachter konnte mit dieser Anfrage umgehen"
-#: builtin/help.c:550 builtin/help.c:561 git.c:348
+#: builtin/help.c:555 builtin/help.c:566 git.c:348
#, c-format
msgid "'%s' is aliased to '%s'"
msgstr "'%s' ist ein Alias für '%s'"
-#: builtin/help.c:564 git.c:380
+#: builtin/help.c:569 git.c:380
#, c-format
msgid "bad alias.%s string: %s"
msgstr "Ungültiger alias.%s String: %s"
-#: builtin/help.c:580
-msgid "this option doesn't take any other arguments"
-msgstr "diese Option akzeptiert keine anderen Argumente"
+#: builtin/help.c:611
+#, c-format
+msgid "the '%s' option doesn't take any non-option arguments"
+msgstr "die Option '%s' akzeptiert keine anderen Nicht-Optionsargumente"
+
+#: builtin/help.c:631
+msgid ""
+"the '--no-[external-commands|aliases]' options can only be used with '--all'"
+msgstr ""
+"die Optionen '--no-[external-commands|aliases]' können nur mit '--all' "
+"verwendet werden"
-#: builtin/help.c:601 builtin/help.c:628
+#: builtin/help.c:643 builtin/help.c:671
#, c-format
msgid "usage: %s%s"
msgstr "Verwendung: %s%s"
-#: builtin/help.c:623
+#: builtin/help.c:666
msgid "'git help config' for more information"
msgstr "'git help config' für weitere Informationen"
+#: builtin/hook.c:10
+msgid "git hook run [--ignore-missing] <hook-name> [-- <hook-args>]"
+msgstr "git hook run [--ignore-missing] <Hook-Name> [-- <Hook-Argumente>]"
+
+#: builtin/hook.c:30
+msgid "silently ignore missing requested <hook-name>"
+msgstr "fehlende Anforderung <Hook-Name> stillschweigend ignorieren"
+
#: builtin/index-pack.c:221
#, c-format
msgid "object type mismatch at %s"
@@ -16968,245 +17441,246 @@ 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:324 builtin/pack-objects.c:756
+#: builtin/index-pack.c:324 builtin/pack-objects.c:754
msgid "pack too large for current definition of off_t"
msgstr "Paket ist zu groß für die aktuelle Definition von off_t"
-#: builtin/index-pack.c:327 builtin/unpack-objects.c:95
-msgid "pack exceeds maximum allowed size"
-msgstr "Paket überschreitet die maximal erlaubte Größe"
+#: builtin/index-pack.c:329
+#, c-format
+msgid "pack exceeds maximum allowed size (%s)"
+msgstr "Paket überschreitet die maximal erlaubte Größe (%s)"
-#: builtin/index-pack.c:358
+#: builtin/index-pack.c:362
msgid "pack signature mismatch"
msgstr "Paketsignatur stimmt nicht überein"
-#: builtin/index-pack.c:360
+#: builtin/index-pack.c:364
#, c-format
msgid "pack version %<PRIu32> unsupported"
msgstr "Paketversion %<PRIu32> nicht unterstützt"
-#: builtin/index-pack.c:376
+#: builtin/index-pack.c:380
#, c-format
msgid "pack has bad object at offset %<PRIuMAX>: %s"
msgstr "Paket hat ein ungültiges Objekt bei Versatz %<PRIuMAX>: %s"
-#: builtin/index-pack.c:482
+#: builtin/index-pack.c:485
#, c-format
msgid "inflate returned %d"
msgstr "Dekomprimierung gab %d zurück"
-#: builtin/index-pack.c:531
+#: builtin/index-pack.c:534
msgid "offset value overflow for delta base object"
msgstr "Wert für Versatz bei Differenzobjekt übergelaufen"
-#: builtin/index-pack.c:539
+#: builtin/index-pack.c:542
msgid "delta base offset is out of bound"
msgstr ""
"Wert für Versatz bei Differenzobjekt liegt außerhalb des gültigen Bereichs"
-#: builtin/index-pack.c:547
+#: builtin/index-pack.c:550
#, c-format
msgid "unknown object type %d"
msgstr "Unbekannter Objekt-Typ %d"
-#: builtin/index-pack.c:578
+#: builtin/index-pack.c:581
msgid "cannot pread pack file"
msgstr "Kann Paketdatei %s nicht lesen"
-#: builtin/index-pack.c:580
+#: builtin/index-pack.c:583
#, c-format
msgid "premature end of pack file, %<PRIuMAX> byte missing"
msgid_plural "premature end of pack file, %<PRIuMAX> bytes missing"
msgstr[0] "frühzeitiges Ende der Paketdatei, vermisse %<PRIuMAX> Byte"
msgstr[1] "frühzeitiges Ende der Paketdatei, vermisse %<PRIuMAX> Bytes"
-#: builtin/index-pack.c:606
+#: builtin/index-pack.c:609
msgid "serious inflate inconsistency"
msgstr "ernsthafte Inkonsistenz nach Dekomprimierung"
-#: builtin/index-pack.c:751 builtin/index-pack.c:757 builtin/index-pack.c:781
-#: builtin/index-pack.c:820 builtin/index-pack.c:829
+#: builtin/index-pack.c:754 builtin/index-pack.c:760 builtin/index-pack.c:784
+#: builtin/index-pack.c:823 builtin/index-pack.c:832
#, c-format
msgid "SHA1 COLLISION FOUND WITH %s !"
msgstr "SHA1 KOLLISION MIT %s GEFUNDEN !"
-#: builtin/index-pack.c:754 builtin/pack-objects.c:292
-#: builtin/pack-objects.c:352 builtin/pack-objects.c:458
+#: builtin/index-pack.c:757 builtin/pack-objects.c:290
+#: builtin/pack-objects.c:350 builtin/pack-objects.c:456
#, c-format
msgid "unable to read %s"
msgstr "kann %s nicht lesen"
-#: builtin/index-pack.c:818
+#: builtin/index-pack.c:821
#, c-format
msgid "cannot read existing object info %s"
msgstr "Kann existierende Informationen zu Objekt %s nicht lesen."
-#: builtin/index-pack.c:826
+#: builtin/index-pack.c:829
#, c-format
msgid "cannot read existing object %s"
msgstr "Kann existierendes Objekt %s nicht lesen."
-#: builtin/index-pack.c:840
+#: builtin/index-pack.c:843
#, c-format
msgid "invalid blob object %s"
msgstr "ungültiges Blob-Objekt %s"
-#: builtin/index-pack.c:843 builtin/index-pack.c:862
+#: builtin/index-pack.c:846 builtin/index-pack.c:865
msgid "fsck error in packed object"
msgstr "fsck Fehler in gepacktem Objekt"
-#: builtin/index-pack.c:864
+#: builtin/index-pack.c:867
#, c-format
msgid "Not all child objects of %s are reachable"
msgstr "Nicht alle Kind-Objekte von %s sind erreichbar"
-#: builtin/index-pack.c:925 builtin/index-pack.c:972
+#: builtin/index-pack.c:928 builtin/index-pack.c:975
msgid "failed to apply delta"
msgstr "Konnte Dateiunterschied nicht anwenden"
-#: builtin/index-pack.c:1156
+#: builtin/index-pack.c:1161
msgid "Receiving objects"
msgstr "Empfange Objekte"
-#: builtin/index-pack.c:1156
+#: builtin/index-pack.c:1161
msgid "Indexing objects"
msgstr "Indiziere Objekte"
-#: builtin/index-pack.c:1190
+#: builtin/index-pack.c:1195
msgid "pack is corrupted (SHA1 mismatch)"
msgstr "Paket ist beschädigt (SHA1 unterschiedlich)"
-#: builtin/index-pack.c:1195
+#: builtin/index-pack.c:1200
msgid "cannot fstat packfile"
msgstr "kann Paketdatei nicht lesen"
-#: builtin/index-pack.c:1198
+#: builtin/index-pack.c:1203
msgid "pack has junk at the end"
msgstr "Paketende enthält nicht verwendbaren Inhalt"
-#: builtin/index-pack.c:1210
+#: builtin/index-pack.c:1215
msgid "confusion beyond insanity in parse_pack_objects()"
msgstr "Fehler beim Ausführen von \"parse_pack_objects()\""
-#: builtin/index-pack.c:1233
+#: builtin/index-pack.c:1238
msgid "Resolving deltas"
msgstr "Löse Unterschiede auf"
-#: builtin/index-pack.c:1244 builtin/pack-objects.c:2905
+#: builtin/index-pack.c:1249 builtin/pack-objects.c:2913
#, c-format
msgid "unable to create thread: %s"
msgstr "kann Thread nicht erzeugen: %s"
-#: builtin/index-pack.c:1277
+#: builtin/index-pack.c:1282
msgid "confusion beyond insanity"
msgstr "Fehler beim Auflösen der Unterschiede"
-#: builtin/index-pack.c:1283
+#: builtin/index-pack.c:1288
#, c-format
msgid "completed with %d local object"
msgid_plural "completed with %d local objects"
msgstr[0] "abgeschlossen mit %d lokalem Objekt"
msgstr[1] "abgeschlossen mit %d lokalen Objekten"
-#: builtin/index-pack.c:1295
+#: builtin/index-pack.c:1300
#, c-format
msgid "Unexpected tail checksum for %s (disk corruption?)"
msgstr "unerwartete Prüfsumme für %s (Festplattenfehler?)"
-#: builtin/index-pack.c:1299
+#: builtin/index-pack.c:1304
#, c-format
msgid "pack has %d unresolved delta"
msgid_plural "pack has %d unresolved deltas"
msgstr[0] "Paket hat %d unaufgelösten Unterschied"
msgstr[1] "Paket hat %d unaufgelöste Unterschiede"
-#: builtin/index-pack.c:1323
+#: builtin/index-pack.c:1328
#, c-format
msgid "unable to deflate appended object (%d)"
msgstr "Konnte angehängtes Objekt (%d) nicht komprimieren"
-#: builtin/index-pack.c:1419
+#: builtin/index-pack.c:1423
#, c-format
msgid "local object %s is corrupt"
msgstr "lokales Objekt %s ist beschädigt"
-#: builtin/index-pack.c:1440
+#: builtin/index-pack.c:1445
#, c-format
msgid "packfile name '%s' does not end with '.%s'"
msgstr "Name der Paketdatei '%s' endet nicht mit '.%s'"
-#: builtin/index-pack.c:1464
+#: builtin/index-pack.c:1469
#, c-format
msgid "cannot write %s file '%s'"
msgstr "Kann %s Datei '%s' nicht schreiben."
-#: builtin/index-pack.c:1472
+#: builtin/index-pack.c:1477
#, c-format
msgid "cannot close written %s file '%s'"
msgstr "Kann eben geschriebene %s Datei '%s' nicht schließen."
-#: builtin/index-pack.c:1489
+#: builtin/index-pack.c:1494
#, c-format
msgid "unable to rename temporary '*.%s' file to '%s'"
msgstr "konnte temporäre Datei '*.%s' nicht zu '%s' umbenennen"
-#: builtin/index-pack.c:1514
+#: builtin/index-pack.c:1519
msgid "error while closing pack file"
msgstr "Fehler beim Schließen der Paketdatei"
-#: builtin/index-pack.c:1573 builtin/pack-objects.c:3150
+#: builtin/index-pack.c:1578 builtin/pack-objects.c:3158
#, c-format
msgid "bad pack.indexversion=%<PRIu32>"
msgstr "\"pack.indexversion=%<PRIu32>\" ist ungültig"
-#: builtin/index-pack.c:1643
+#: builtin/index-pack.c:1648
#, c-format
msgid "Cannot open existing pack file '%s'"
msgstr "Kann existierende Paketdatei '%s' nicht öffnen"
-#: builtin/index-pack.c:1645
+#: builtin/index-pack.c:1650
#, 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:1693
+#: builtin/index-pack.c:1698
#, 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:1700
+#: builtin/index-pack.c:1705
#, 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:1742
+#: builtin/index-pack.c:1748
msgid "Cannot come back to cwd"
msgstr "Kann nicht zurück zum Arbeitsverzeichnis wechseln"
-#: builtin/index-pack.c:1796 builtin/index-pack.c:1799
-#: builtin/index-pack.c:1819 builtin/index-pack.c:1823
+#: builtin/index-pack.c:1802 builtin/index-pack.c:1805
+#: builtin/index-pack.c:1825 builtin/index-pack.c:1829
#, c-format
msgid "bad %s"
msgstr "%s ist ungültig"
-#: builtin/index-pack.c:1829 builtin/init-db.c:379 builtin/init-db.c:614
+#: builtin/index-pack.c:1835 builtin/init-db.c:379 builtin/init-db.c:614
#, c-format
msgid "unknown hash algorithm '%s'"
msgstr "unbekannter Hash-Algorithmus '%s'"
-#: builtin/index-pack.c:1850
+#: builtin/index-pack.c:1856
msgid "--stdin requires a git repository"
msgstr "--stdin erfordert ein Git-Repository"
-#: builtin/index-pack.c:1867
+#: builtin/index-pack.c:1873
msgid "--verify with no packfile name given"
msgstr "--verify wurde ohne Namen der Paketdatei angegeben"
-#: builtin/index-pack.c:1933 builtin/unpack-objects.c:584
+#: builtin/index-pack.c:1939 builtin/unpack-objects.c:584
msgid "fsck error in pack objects"
msgstr "fsck Fehler beim Packen von Objekten"
@@ -17415,40 +17889,40 @@ msgstr "--trailer und --only-input können nicht gemeinsam verwendet werden"
msgid "no input file given for in-place editing"
msgstr "keine Datei zur direkten Bearbeitung angegeben"
-#: builtin/log.c:59
+#: builtin/log.c:60
msgid "git log [<options>] [<revision-range>] [[--] <path>...]"
msgstr "git log [<Optionen>] [<Commitbereich>] [[--] <Pfad>...]"
-#: builtin/log.c:60
+#: builtin/log.c:61
msgid "git show [<options>] <object>..."
msgstr "git show [<Optionen>] <Objekt>..."
-#: builtin/log.c:113
+#: builtin/log.c:114
#, c-format
msgid "invalid --decorate option: %s"
msgstr "Ungültige Option für --decorate: %s"
-#: builtin/log.c:180
+#: builtin/log.c:181
msgid "show source"
msgstr "Quelle anzeigen"
-#: builtin/log.c:181
+#: builtin/log.c:182
msgid "use mail map file"
msgstr "\"mailmap\"-Datei verwenden"
-#: builtin/log.c:184
+#: builtin/log.c:185
msgid "only decorate refs that match <pattern>"
msgstr "\"decorate\" nur bei Referenzen anwenden, die <Muster> entsprechen"
-#: builtin/log.c:186
+#: builtin/log.c:187
msgid "do not decorate refs that match <pattern>"
msgstr "\"decorate\" nicht bei Referenzen anwenden, die <Muster> entsprechen"
-#: builtin/log.c:187
+#: builtin/log.c:188
msgid "decorate options"
msgstr "decorate-Optionen"
-#: builtin/log.c:190
+#: builtin/log.c:191
msgid ""
"trace the evolution of line range <start>,<end> or function :<funcname> in "
"<file>"
@@ -17456,90 +17930,94 @@ msgstr ""
"Entwicklung der Zeilen vom Bereich <Start>,<Ende> oder Funktion :"
"<Funktionsname> in <Datei> verfolgen"
-#: builtin/log.c:213
+#: builtin/log.c:214
msgid "-L<range>:<file> cannot be used with pathspec"
msgstr "-L<Bereich>:<Datei> kann nicht mit Pfadspezifikation verwendet werden"
-#: builtin/log.c:321
+#: builtin/log.c:322
#, c-format
msgid "Final output: %d %s\n"
msgstr "letzte Ausgabe: %d %s\n"
-#: builtin/log.c:586
+#: builtin/log.c:429
+msgid "unable to create temporary object directory"
+msgstr "konnte temporäres Objektverzeichnis nicht erstellen"
+
+#: builtin/log.c:599
#, c-format
msgid "git show %s: bad file"
msgstr "git show %s: ungültige Datei"
-#: builtin/log.c:601 builtin/log.c:691
+#: builtin/log.c:614 builtin/log.c:706
#, c-format
msgid "could not read object %s"
msgstr "Konnte Objekt %s nicht lesen."
-#: builtin/log.c:716
+#: builtin/log.c:731
#, c-format
msgid "unknown type: %d"
msgstr "Unbekannter Typ: %d"
-#: builtin/log.c:861
+#: builtin/log.c:880
#, c-format
msgid "%s: invalid cover from description mode"
msgstr ""
"%s: Ungültiger Modus für Erstellung des Deckblattes aus der Beschreibung"
-#: builtin/log.c:868
+#: builtin/log.c:887
msgid "format.headers without value"
msgstr "format.headers ohne Wert"
-#: builtin/log.c:997
+#: builtin/log.c:1016
#, c-format
msgid "cannot open patch file %s"
msgstr "Kann Patch-Datei %s nicht öffnen"
-#: builtin/log.c:1014
+#: builtin/log.c:1033
msgid "need exactly one range"
msgstr "Brauche genau einen Commit-Bereich."
-#: builtin/log.c:1024
+#: builtin/log.c:1043
msgid "not a range"
msgstr "Kein Commit-Bereich."
-#: builtin/log.c:1188
+#: builtin/log.c:1207
msgid "cover letter needs email format"
msgstr "Anschreiben benötigt E-Mail-Format"
-#: builtin/log.c:1194
+#: builtin/log.c:1213
msgid "failed to create cover-letter file"
msgstr "Fehler beim Erstellen der Datei für das Anschreiben."
-#: builtin/log.c:1281
+#: builtin/log.c:1300
#, c-format
msgid "insane in-reply-to: %s"
msgstr "ungültiges in-reply-to: %s"
-#: builtin/log.c:1308
+#: builtin/log.c:1327
msgid "git format-patch [<options>] [<since> | <revision-range>]"
msgstr "git format-patch [<Optionen>] [<seit> | <Commitbereich>]"
-#: builtin/log.c:1366
+#: builtin/log.c:1385
msgid "two output directories?"
msgstr "Zwei Ausgabeverzeichnisse?"
-#: builtin/log.c:1517 builtin/log.c:2344 builtin/log.c:2346 builtin/log.c:2358
+#: builtin/log.c:1536 builtin/log.c:2369 builtin/log.c:2371 builtin/log.c:2383
#, c-format
msgid "unknown commit %s"
msgstr "Unbekannter Commit %s"
-#: builtin/log.c:1528 builtin/replace.c:58 builtin/replace.c:207
+#: builtin/log.c:1547 builtin/replace.c:58 builtin/replace.c:207
#: builtin/replace.c:210
#, c-format
msgid "failed to resolve '%s' as a valid ref"
msgstr "Konnte '%s' nicht als gültige Referenz auflösen."
-#: builtin/log.c:1537
+#: builtin/log.c:1556
msgid "could not find exact merge base"
msgstr "Konnte keine exakte Merge-Basis finden."
-#: builtin/log.c:1547
+#: builtin/log.c:1566
msgid ""
"failed to get upstream, if you want to record base commit automatically,\n"
"please use git branch --set-upstream-to to track a remote branch.\n"
@@ -17550,278 +18028,282 @@ msgstr ""
"'git branch --set-upstream-to', um einem Remote-Branch zu folgen.\n"
"Oder geben Sie den Basis-Commit mit '--base=<Basis-Commit-Id>' manuell an."
-#: builtin/log.c:1570
+#: builtin/log.c:1589
msgid "failed to find exact merge base"
msgstr "Fehler beim Finden einer exakten Merge-Basis."
-#: builtin/log.c:1587
+#: builtin/log.c:1606
msgid "base commit should be the ancestor of revision list"
msgstr "Basis-Commit sollte der Vorgänger der Revisionsliste sein."
-#: builtin/log.c:1597
+#: builtin/log.c:1616
msgid "base commit shouldn't be in revision list"
msgstr "Basis-Commit sollte nicht in der Revisionsliste enthalten sein."
-#: builtin/log.c:1655
+#: builtin/log.c:1674
msgid "cannot get patch id"
msgstr "kann Patch-Id nicht lesen"
-#: builtin/log.c:1718
+#: builtin/log.c:1737
msgid "failed to infer range-diff origin of current series"
msgstr "Fehler beim Ableiten des range-diff Ursprungs der aktuellen Serie"
-#: builtin/log.c:1720
+#: builtin/log.c:1739
#, c-format
msgid "using '%s' as range-diff origin of current series"
msgstr "nutze '%s' als range-diff Ursprung der aktuellen Serie"
-#: builtin/log.c:1764
+#: builtin/log.c:1783
msgid "use [PATCH n/m] even with a single patch"
msgstr "[PATCH n/m] auch mit einzelnem Patch verwenden"
-#: builtin/log.c:1767
+#: builtin/log.c:1786
msgid "use [PATCH] even with multiple patches"
msgstr "[PATCH] auch mit mehreren Patches verwenden"
-#: builtin/log.c:1771
+#: builtin/log.c:1790
msgid "print patches to standard out"
msgstr "Ausgabe der Patches in Standard-Ausgabe"
-#: builtin/log.c:1773
+#: builtin/log.c:1792
msgid "generate a cover letter"
msgstr "ein Deckblatt erzeugen"
-#: builtin/log.c:1775
+#: builtin/log.c:1794
msgid "use simple number sequence for output file names"
msgstr "einfache Nummernfolge für die Namen der Ausgabedateien verwenden"
-#: builtin/log.c:1776
+#: builtin/log.c:1795
msgid "sfx"
msgstr "Dateiendung"
-#: builtin/log.c:1777
+#: builtin/log.c:1796
msgid "use <sfx> instead of '.patch'"
msgstr "<Dateiendung> statt '.patch' verwenden"
-#: builtin/log.c:1779
+#: builtin/log.c:1798
msgid "start numbering patches at <n> instead of 1"
msgstr "die Nummerierung der Patches bei <n> statt bei 1 beginnen"
-#: builtin/log.c:1780
+#: builtin/log.c:1799
msgid "reroll-count"
msgstr "Reroll-Anzahl"
-#: builtin/log.c:1781
+#: builtin/log.c:1800
msgid "mark the series as Nth re-roll"
msgstr "die Serie als n-te Fassung kennzeichnen"
-#: builtin/log.c:1783
+#: builtin/log.c:1802
msgid "max length of output filename"
msgstr "maximale Länge des Dateinamens für die Ausgabe"
-#: builtin/log.c:1785
+#: builtin/log.c:1804
msgid "use [RFC PATCH] instead of [PATCH]"
msgstr "[RFC PATCH] statt [PATCH] verwenden"
-#: builtin/log.c:1788
+#: builtin/log.c:1807
msgid "cover-from-description-mode"
msgstr "Modus für Erstellung des Deckblattes aus der Beschreibung"
-#: builtin/log.c:1789
+#: builtin/log.c:1808
msgid "generate parts of a cover letter based on a branch's description"
msgstr ""
"Erzeuge Teile des Deckblattes basierend auf der Beschreibung des Branches"
-#: builtin/log.c:1791
+#: builtin/log.c:1810
msgid "use [<prefix>] instead of [PATCH]"
msgstr "nutze [<Präfix>] statt [PATCH]"
-#: builtin/log.c:1794
+#: builtin/log.c:1813
msgid "store resulting files in <dir>"
msgstr "erzeugte Dateien in <Verzeichnis> speichern"
-#: builtin/log.c:1797
+#: builtin/log.c:1816
msgid "don't strip/add [PATCH]"
msgstr "[PATCH] nicht entfernen/hinzufügen"
-#: builtin/log.c:1800
+#: builtin/log.c:1819
msgid "don't output binary diffs"
msgstr "keine binären Unterschiede ausgeben"
-#: builtin/log.c:1802
+#: builtin/log.c:1821
msgid "output all-zero hash in From header"
msgstr "Hash mit Nullen in \"From\"-Header ausgeben"
-#: builtin/log.c:1804
+#: builtin/log.c:1823
msgid "don't include a patch matching a commit upstream"
msgstr ""
"keine Patches einschließen, die einem Commit im Upstream-Branch entsprechen"
-#: builtin/log.c:1806
+#: builtin/log.c:1825
msgid "show patch format instead of default (patch + stat)"
msgstr "Patchformat anstatt des Standards anzeigen (Patch + Zusammenfassung)"
-#: builtin/log.c:1808
+#: builtin/log.c:1827
msgid "Messaging"
msgstr "E-Mail-Einstellungen"
-#: builtin/log.c:1809
+#: builtin/log.c:1828
msgid "header"
msgstr "Header"
-#: builtin/log.c:1810
+#: builtin/log.c:1829
msgid "add email header"
msgstr "E-Mail-Header hinzufügen"
-#: builtin/log.c:1811 builtin/log.c:1812
+#: builtin/log.c:1830 builtin/log.c:1831
msgid "email"
msgstr "E-Mail"
-#: builtin/log.c:1811
+#: builtin/log.c:1830
msgid "add To: header"
msgstr "\"To:\"-Header hinzufügen"
-#: builtin/log.c:1812
+#: builtin/log.c:1831
msgid "add Cc: header"
msgstr "\"Cc:\"-Header hinzufügen"
-#: builtin/log.c:1813
+#: builtin/log.c:1832
msgid "ident"
msgstr "Ident"
-#: builtin/log.c:1814
+#: builtin/log.c:1833
msgid "set From address to <ident> (or committer ident if absent)"
msgstr ""
"\"From\"-Adresse auf <Ident> setzen (oder Ident des Commit-Erstellers, wenn "
"fehlend)"
-#: builtin/log.c:1816
+#: builtin/log.c:1835
msgid "message-id"
msgstr "message-id"
-#: builtin/log.c:1817
+#: builtin/log.c:1836
msgid "make first mail a reply to <message-id>"
msgstr "aus erster E-Mail eine Antwort zu <message-id> machen"
-#: builtin/log.c:1818 builtin/log.c:1821
+#: builtin/log.c:1837 builtin/log.c:1840
msgid "boundary"
msgstr "Grenze"
-#: builtin/log.c:1819
+#: builtin/log.c:1838
msgid "attach the patch"
msgstr "den Patch anhängen"
-#: builtin/log.c:1822
+#: builtin/log.c:1841
msgid "inline the patch"
msgstr "den Patch direkt in die Nachricht einfügen"
-#: builtin/log.c:1826
+#: builtin/log.c:1845
msgid "enable message threading, styles: shallow, deep"
msgstr "Nachrichtenverkettung aktivieren, Stile: shallow, deep"
-#: builtin/log.c:1828
+#: builtin/log.c:1847
msgid "signature"
msgstr "Signatur"
-#: builtin/log.c:1829
+#: builtin/log.c:1848
msgid "add a signature"
msgstr "eine Signatur hinzufügen"
-#: builtin/log.c:1830
+#: builtin/log.c:1849
msgid "base-commit"
msgstr "Basis-Commit"
-#: builtin/log.c:1831
+#: builtin/log.c:1850
msgid "add prerequisite tree info to the patch series"
msgstr "erforderliche Revisions-Informationen der Patch-Serie hinzufügen"
-#: builtin/log.c:1834
+#: builtin/log.c:1853
msgid "add a signature from a file"
msgstr "eine Signatur aus einer Datei hinzufügen"
-#: builtin/log.c:1835
+#: builtin/log.c:1854
msgid "don't print the patch filenames"
msgstr "keine Dateinamen der Patches anzeigen"
-#: builtin/log.c:1837
+#: builtin/log.c:1856
msgid "show progress while generating patches"
msgstr "Forschrittsanzeige während der Erzeugung der Patches"
-#: builtin/log.c:1839
+#: builtin/log.c:1858
msgid "show changes against <rev> in cover letter or single patch"
msgstr ""
"Änderungen gegenüber <Commit> im Deckblatt oder einzelnem Patch anzeigen"
-#: builtin/log.c:1842
+#: builtin/log.c:1861
msgid "show changes against <refspec> in cover letter or single patch"
msgstr ""
"Änderungen gegenüber <Refspec> im Deckblatt oder einzelnem Patch anzeigen"
-#: builtin/log.c:1844 builtin/range-diff.c:28
+#: builtin/log.c:1863 builtin/range-diff.c:28
msgid "percentage by which creation is weighted"
msgstr "Prozentsatz mit welchem Erzeugung gewichtet wird"
-#: builtin/log.c:1931
+#: builtin/log.c:1953
#, c-format
msgid "invalid ident line: %s"
msgstr "Ungültige Identifikationszeile: %s"
-#: builtin/log.c:1956
+#: builtin/log.c:1978
msgid "--name-only does not make sense"
msgstr "--name-only kann nicht verwendet werden"
-#: builtin/log.c:1958
+#: builtin/log.c:1980
msgid "--name-status does not make sense"
msgstr "--name-status kann nicht verwendet werden"
-#: builtin/log.c:1960
+#: builtin/log.c:1982
msgid "--check does not make sense"
msgstr "--check kann nicht verwendet werden"
-#: builtin/log.c:2104
+#: builtin/log.c:1984
+msgid "--remerge-diff does not make sense"
+msgstr "--remerge-diff ist nicht sinnvoll"
+
+#: builtin/log.c:2129
msgid "--interdiff requires --cover-letter or single patch"
msgstr "--interdiff erfordert --cover-letter oder einzelnen Patch"
-#: builtin/log.c:2108
+#: builtin/log.c:2133
msgid "Interdiff:"
msgstr "Interdiff:"
-#: builtin/log.c:2109
+#: builtin/log.c:2134
#, c-format
msgid "Interdiff against v%d:"
msgstr "Interdiff gegen v%d:"
-#: builtin/log.c:2119
+#: builtin/log.c:2144
msgid "--range-diff requires --cover-letter or single patch"
msgstr "--range-diff erfordert --cover-letter oder einzelnen Patch."
-#: builtin/log.c:2127
+#: builtin/log.c:2152
msgid "Range-diff:"
msgstr "Range-Diff:"
-#: builtin/log.c:2128
+#: builtin/log.c:2153
#, c-format
msgid "Range-diff against v%d:"
msgstr "Range-Diff gegen v%d:"
-#: builtin/log.c:2139
+#: builtin/log.c:2164
#, c-format
msgid "unable to read signature file '%s'"
msgstr "Konnte Signatur-Datei '%s' nicht lesen"
-#: builtin/log.c:2175
+#: builtin/log.c:2200
msgid "Generating patches"
msgstr "Erzeuge Patches"
-#: builtin/log.c:2219
+#: builtin/log.c:2244
msgid "failed to create output files"
msgstr "Fehler beim Erstellen der Ausgabedateien."
-#: builtin/log.c:2279
+#: builtin/log.c:2304
msgid "git cherry [-v] [<upstream> [<head> [<limit>]]]"
msgstr "git cherry [-v] [<Upstream> [<Branch> [<Limit>]]]"
-#: builtin/log.c:2333
+#: builtin/log.c:2358
#, c-format
msgid ""
"Could not find a tracked remote branch, please specify <upstream> manually.\n"
@@ -17920,10 +18402,6 @@ msgstr "die standardmäßigen Git-Ausschlüsse hinzufügen"
msgid "make the output relative to the project top directory"
msgstr "Ausgabe relativ zum Projektverzeichnis"
-#: builtin/ls-files.c:667
-msgid "recurse through submodules"
-msgstr "Rekursion in Submodulen durchführen"
-
#: builtin/ls-files.c:669
msgid "if any <file> is not in the index, treat this as an error"
msgstr "als Fehler behandeln, wenn sich eine <Datei> nicht im Index befindet"
@@ -17964,7 +18442,7 @@ msgstr ""
msgid "do not print remote URL"
msgstr "URL des Remote-Repositories nicht ausgeben"
-#: builtin/ls-remote.c:61 builtin/ls-remote.c:63 builtin/rebase.c:1103
+#: builtin/ls-remote.c:61 builtin/ls-remote.c:63 builtin/rebase.c:1131
msgid "exec"
msgstr "Programm"
@@ -17998,44 +18476,73 @@ msgstr ""
msgid "show underlying ref in addition to the object pointed by it"
msgstr "zusätzlich zum Objekt die darauf verweisenden Referenzen anzeigen"
-#: builtin/ls-tree.c:30
+#: builtin/ls-tree.c:36
msgid "git ls-tree [<options>] <tree-ish> [<path>...]"
msgstr "git ls-tree [<Optionen>] <Commit-Referenz> [<Pfad>...]"
-#: builtin/ls-tree.c:128
+#: builtin/ls-tree.c:54
+#, c-format
+msgid "could not get object info about '%s'"
+msgstr "konnte Objekt-Informationen über '%s' nicht bestimmen"
+
+#: builtin/ls-tree.c:79
+#, c-format
+msgid "bad ls-tree format: element '%s' does not start with '('"
+msgstr "ungültiges ls-tree-Format: Element '%s' fängt nicht mit '(' an"
+
+#: builtin/ls-tree.c:83
+#, c-format
+msgid "bad ls-tree format: element '%s' does not end in ')'"
+msgstr "ungültiges ls-tree-Format: Element '%s' endet nicht mit ')'"
+
+#: builtin/ls-tree.c:109
+#, c-format
+msgid "bad ls-tree format: %%%.*s"
+msgstr "ungültiges ls-tree-Format: %%%.*s"
+
+#: builtin/ls-tree.c:336
msgid "only show trees"
msgstr "nur Verzeichnisse anzeigen"
-#: builtin/ls-tree.c:130
+#: builtin/ls-tree.c:338
msgid "recurse into subtrees"
msgstr "Rekursion in Unterverzeichnissen durchführen"
-#: builtin/ls-tree.c:132
+#: builtin/ls-tree.c:340
msgid "show trees when recursing"
msgstr "Verzeichnisse bei Rekursion anzeigen"
-#: builtin/ls-tree.c:135
+#: builtin/ls-tree.c:343
msgid "terminate entries with NUL byte"
msgstr "Einträge mit NUL-Byte abschließen"
-#: builtin/ls-tree.c:136
+#: builtin/ls-tree.c:344
msgid "include object size"
msgstr "Objektgröße einschließen"
-#: builtin/ls-tree.c:138 builtin/ls-tree.c:140
+#: builtin/ls-tree.c:346 builtin/ls-tree.c:348
msgid "list only filenames"
msgstr "nur Dateinamen auflisten"
-#: builtin/ls-tree.c:143
+#: builtin/ls-tree.c:350
+msgid "list only objects"
+msgstr "nur Objekte auflisten"
+
+#: builtin/ls-tree.c:353
msgid "use full path names"
msgstr "vollständige Pfadnamen verwenden"
-#: builtin/ls-tree.c:145
+#: builtin/ls-tree.c:355
msgid "list entire tree; not just current directory (implies --full-name)"
msgstr ""
"das gesamte Verzeichnis auflisten; nicht nur das aktuelle Verzeichnis "
"(impliziert --full-name)"
+#: builtin/ls-tree.c:391
+msgid "--format can't be combined with other format-altering options"
+msgstr ""
+"--format kann nicht mit anderen formatändernden Optionen kombiniert werden"
+
#. TRANSLATORS: keep <> in "<" mail ">" info.
#: builtin/mailinfo.c:14
msgid "git mailinfo [<options>] <msg> <patch> < mail >info"
@@ -18085,7 +18592,11 @@ msgstr "Aktion, wenn ein angeführtes CR gefunden wird"
msgid "use headers in message's body"
msgstr "nutze Header im Inhalt der Nachricht"
-#: builtin/mailsplit.c:239
+#: builtin/mailsplit.c:227
+msgid "reading patches from stdin/tty..."
+msgstr "lese Patches von Standard-Eingabe/Terminal..."
+
+#: builtin/mailsplit.c:242
#, c-format
msgid "empty mbox: '%s'"
msgstr "Leere mbox: '%s'"
@@ -18110,23 +18621,23 @@ msgstr "git merge-base --is-ancestor <Commit> <Commit>"
msgid "git merge-base --fork-point <ref> [<commit>]"
msgstr "git merge-base --fork-point <Referenz> [<Commit>]"
-#: builtin/merge-base.c:143
+#: builtin/merge-base.c:144
msgid "output all common ancestors"
msgstr "Ausgabe aller gemeinsamen Vorgänger-Commits"
-#: builtin/merge-base.c:145
+#: builtin/merge-base.c:146
msgid "find ancestors for a single n-way merge"
msgstr "Vorgänger-Commits für einen einzelnen n-Wege-Merge finden"
-#: builtin/merge-base.c:147
+#: builtin/merge-base.c:148
msgid "list revs not reachable from others"
msgstr "Commits auflisten, die nicht durch Andere erreichbar sind"
-#: builtin/merge-base.c:149
+#: builtin/merge-base.c:150
msgid "is the first one ancestor of the other?"
msgstr "ist der Erste ein Vorgänger-Commit des Anderen?"
-#: builtin/merge-base.c:151
+#: builtin/merge-base.c:152
msgid "find where <commit> forked from reflog of <ref>"
msgstr "<Commit> finden, von wo Reflog von <Referenz> abgespalten wurde"
@@ -18276,7 +18787,7 @@ msgid "verify that the named commit has a valid GPG signature"
msgstr "den genannten Commit auf eine gültige GPG-Signatur überprüfen"
#: builtin/merge.c:280 builtin/notes.c:785 builtin/pull.c:172
-#: builtin/rebase.c:1117 builtin/revert.c:114
+#: builtin/rebase.c:1145 builtin/revert.c:114
msgid "strategy"
msgstr "Strategie"
@@ -18412,75 +18923,75 @@ msgstr ""
"Zeilen, die mit '%c' beginnen, werden ignoriert,\n"
"und eine leere Beschreibung bricht den Commit ab.\n"
-#: builtin/merge.c:894
+#: builtin/merge.c:900
msgid "Empty commit message."
msgstr "Leere Commit-Beschreibung"
-#: builtin/merge.c:909
+#: builtin/merge.c:915
#, c-format
msgid "Wonderful.\n"
msgstr "Wunderbar.\n"
-#: builtin/merge.c:970
+#: builtin/merge.c:976
#, c-format
msgid "Automatic merge failed; fix conflicts and then commit the result.\n"
msgstr ""
"Automatischer Merge fehlgeschlagen; beheben Sie die Konflikte und committen "
"Sie dann das Ergebnis.\n"
-#: builtin/merge.c:1009
+#: builtin/merge.c:1015
msgid "No current branch."
msgstr "Sie befinden sich auf keinem Branch."
-#: builtin/merge.c:1011
+#: builtin/merge.c:1017
msgid "No remote for the current branch."
msgstr "Kein Remote-Repository für den aktuellen Branch."
-#: builtin/merge.c:1013
+#: builtin/merge.c:1019
msgid "No default upstream defined for the current branch."
msgstr ""
"Es ist kein Standard-Upstream-Branch für den aktuellen Branch definiert."
-#: builtin/merge.c:1018
+#: builtin/merge.c:1024
#, c-format
msgid "No remote-tracking branch for %s from %s"
msgstr "Kein Remote-Tracking-Branch für %s von %s"
-#: builtin/merge.c:1075
+#: builtin/merge.c:1081
#, c-format
msgid "Bad value '%s' in environment '%s'"
msgstr "Fehlerhafter Wert '%s' in Umgebungsvariable '%s'"
-#: builtin/merge.c:1177
+#: builtin/merge.c:1183
#, c-format
msgid "not something we can merge in %s: %s"
msgstr "nichts was wir in %s zusammenführen können: %s"
-#: builtin/merge.c:1211
+#: builtin/merge.c:1217
msgid "not something we can merge"
msgstr "nichts was wir zusammenführen können"
-#: builtin/merge.c:1324
+#: builtin/merge.c:1330
msgid "--abort expects no arguments"
msgstr "--abort akzeptiert keine Argumente"
-#: builtin/merge.c:1328
+#: builtin/merge.c:1334
msgid "There is no merge to abort (MERGE_HEAD missing)."
msgstr "Es gibt keinen Merge abzubrechen (MERGE_HEAD fehlt)"
-#: builtin/merge.c:1346
+#: builtin/merge.c:1352
msgid "--quit expects no arguments"
msgstr "--quit erwartet keine Argumente"
-#: builtin/merge.c:1359
+#: builtin/merge.c:1365
msgid "--continue expects no arguments"
msgstr "--continue erwartet keine Argumente"
-#: builtin/merge.c:1363
+#: builtin/merge.c:1369
msgid "There is no merge in progress (MERGE_HEAD missing)."
msgstr "Es ist kein Merge im Gange (MERGE_HEAD fehlt)."
-#: builtin/merge.c:1379
+#: builtin/merge.c:1385
msgid ""
"You have not concluded your merge (MERGE_HEAD exists).\n"
"Please, commit your changes before you merge."
@@ -18488,7 +18999,7 @@ msgstr ""
"Sie haben Ihren Merge nicht abgeschlossen (MERGE_HEAD existiert).\n"
"Bitte committen Sie Ihre Änderungen, bevor Sie den Merge ausführen."
-#: builtin/merge.c:1386
+#: builtin/merge.c:1392
msgid ""
"You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists).\n"
"Please, commit your changes before you merge."
@@ -18496,88 +19007,84 @@ msgstr ""
"Sie haben \"cherry-pick\" nicht abgeschlossen (CHERRY_PICK_HEAD existiert).\n"
"Bitte committen Sie Ihre Änderungen, bevor Sie den Merge ausführen."
-#: builtin/merge.c:1389
+#: builtin/merge.c:1395
msgid "You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists)."
msgstr ""
"Sie haben \"cherry-pick\" nicht abgeschlossen (CHERRY_PICK_HEAD existiert)."
-#: builtin/merge.c:1421
+#: builtin/merge.c:1427
msgid "No commit specified and merge.defaultToUpstream not set."
msgstr "Kein Commit angegeben und merge.defaultToUpstream ist nicht gesetzt."
-#: builtin/merge.c:1438
+#: builtin/merge.c:1444
msgid "Squash commit into empty head not supported yet"
msgstr "Squash-Merge auf einen leeren Branch wird noch nicht unterstützt"
-#: builtin/merge.c:1440
+#: builtin/merge.c:1446
msgid "Non-fast-forward commit does not make sense into an empty head"
msgstr ""
"Nicht vorzuspulender Commit kann nicht in einem leeren Branch verwendet "
"werden."
-#: builtin/merge.c:1445
+#: builtin/merge.c:1451
#, c-format
msgid "%s - not something we can merge"
msgstr "%s - nichts was wir zusammenführen können"
-#: builtin/merge.c:1447
+#: builtin/merge.c:1453
msgid "Can merge only exactly one commit into empty head"
msgstr "Kann nur exakt einen Commit in einem leeren Branch zusammenführen"
-#: builtin/merge.c:1534
+#: builtin/merge.c:1540
msgid "refusing to merge unrelated histories"
msgstr "verweigere den Merge von nicht zusammenhängenden Historien"
-#: builtin/merge.c:1553
+#: builtin/merge.c:1559
#, c-format
msgid "Updating %s..%s\n"
msgstr "Aktualisiere %s..%s\n"
-#: builtin/merge.c:1601
+#: builtin/merge.c:1606
#, c-format
msgid "Trying really trivial in-index merge...\n"
-msgstr "Probiere wirklich trivialen \"in-index\"-Merge ...\n"
+msgstr "Probiere wirklich trivialen \"in-index\"-Merge...\n"
-#: builtin/merge.c:1608
+#: builtin/merge.c:1613
#, c-format
msgid "Nope.\n"
msgstr "Nein.\n"
-#: builtin/merge.c:1667 builtin/merge.c:1733
+#: builtin/merge.c:1671 builtin/merge.c:1737
#, c-format
msgid "Rewinding the tree to pristine...\n"
msgstr "Rücklauf des Verzeichnisses bis zum Ursprung...\n"
-#: builtin/merge.c:1671
+#: builtin/merge.c:1675
#, c-format
msgid "Trying merge strategy %s...\n"
msgstr "Probiere Merge-Strategie %s...\n"
-#: builtin/merge.c:1723
+#: builtin/merge.c:1727
#, c-format
msgid "No merge strategy handled the merge.\n"
msgstr "Keine Merge-Strategie behandelt diesen Merge.\n"
-#: builtin/merge.c:1725
+#: builtin/merge.c:1729
#, c-format
msgid "Merge with strategy %s failed.\n"
msgstr "Merge mit Strategie %s fehlgeschlagen.\n"
-#: builtin/merge.c:1735
+#: builtin/merge.c:1739
#, c-format
msgid "Using the %s strategy to prepare resolving by hand.\n"
msgstr "Benutze die Strategie %s, um die Auflösung per Hand vorzubereiten.\n"
-#: builtin/merge.c:1749
+#: builtin/merge.c:1753
#, c-format
msgid "Automatic merge went well; stopped before committing as requested\n"
msgstr ""
"Automatischer Merge abgeschlossen; halte, wie gewünscht, vor dem Commit an\n"
-#: builtin/mktag.c:10
-msgid "git mktag"
-msgstr "git mktag"
-
#: builtin/mktag.c:27
#, c-format
msgid "warning: tag input does not pass fsck: %s"
@@ -18603,23 +19110,19 @@ msgstr "konnte getaggtes Objekt '%s' nicht lesen"
msgid "object '%s' tagged as '%s', but is a '%s' type"
msgstr "Objekt '%s' als '%s' getaggt, aber ist ein '%s' Typ"
-#: builtin/mktag.c:98
+#: builtin/mktag.c:97
msgid "tag on stdin did not pass our strict fsck check"
msgstr ""
"Tag von der Standardeingabe für unsere strenge Überprüfung bei fsck ungültig"
-#: builtin/mktag.c:101
+#: builtin/mktag.c:100
msgid "tag on stdin did not refer to a valid object"
msgstr "Tag von der Standard-Eingabe verweiste nicht auf gültiges Objekt"
-#: builtin/mktag.c:104 builtin/tag.c:242
+#: builtin/mktag.c:103 builtin/tag.c:243
msgid "unable to write tag file"
msgstr "konnte Tag-Datei nicht schreiben"
-#: builtin/mktree.c:66
-msgid "git mktree [-z] [--missing] [--batch]"
-msgstr "git mktree [-z] [--missing] [--batch]"
-
#: builtin/mktree.c:154
msgid "input is NUL terminated"
msgstr "Eingabe ist durch NUL-Zeichen abgeschlossen"
@@ -18668,11 +19171,11 @@ msgstr ""
#: builtin/multi-pack-index.c:100
msgid "write multi-pack bitmap"
-msgstr "schreibe Multipack-Bitmap"
+msgstr "schreibe Multi-Pack-Bitmap"
#: builtin/multi-pack-index.c:105
msgid "write multi-pack index containing only given indexes"
-msgstr "Multipack-Index schreiben, der nur die gegebenen Indexe enthält"
+msgstr "Multi-Pack-Index schreiben, der nur die gegebenen Indexe enthält"
#: builtin/multi-pack-index.c:107
msgid "refs snapshot for selecting bitmap commits"
@@ -18683,8 +19186,8 @@ msgid ""
"during repack, collect pack-files of smaller size into a batch that is "
"larger than this size"
msgstr ""
-"Während des Umpackens, sammle Paket-Dateien von geringerer Größe in "
-"einenStapel, welcher größer ist als diese Größe"
+"während des Umpackens, sammle Paket-Dateien von geringerer Größe in einen "
+"Stapel, welcher größer ist als diese Größe"
#: builtin/mv.c:18
msgid "git mv [<options>] <source>... <destination>"
@@ -18780,52 +19283,56 @@ msgstr "%s, Quelle=%s, Ziel=%s"
msgid "Renaming %s to %s\n"
msgstr "Benenne %s nach %s um\n"
-#: builtin/mv.c:314 builtin/remote.c:790 builtin/repack.c:857
+#: builtin/mv.c:314 builtin/remote.c:812 builtin/repack.c:861
#, c-format
msgid "renaming '%s' failed"
msgstr "Umbenennung von '%s' fehlgeschlagen"
-#: builtin/name-rev.c:474
+#: builtin/name-rev.c:524
msgid "git name-rev [<options>] <commit>..."
msgstr "git name-rev [<Optionen>] <Commit>..."
-#: builtin/name-rev.c:475
+#: builtin/name-rev.c:525
msgid "git name-rev [<options>] --all"
msgstr "git name-rev [<Optionen>] --all"
-#: builtin/name-rev.c:476
-msgid "git name-rev [<options>] --stdin"
-msgstr "git name-rev [<Optionen>] --stdin"
+#: builtin/name-rev.c:526
+msgid "git name-rev [<options>] --annotate-stdin"
+msgstr "git name-rev [<Optionen>] --annotate-stdin"
-#: builtin/name-rev.c:533
+#: builtin/name-rev.c:583
msgid "print only ref-based names (no object names)"
msgstr "nur Referenzen-basierte Namen ausgeben (keine Objektnamen)"
-#: builtin/name-rev.c:534
+#: builtin/name-rev.c:584
msgid "only use tags to name the commits"
msgstr "nur Tags verwenden, um die Commits zu benennen"
-#: builtin/name-rev.c:536
+#: builtin/name-rev.c:586
msgid "only use refs matching <pattern>"
msgstr "nur Referenzen verwenden, die <Muster> entsprechen"
-#: builtin/name-rev.c:538
+#: builtin/name-rev.c:588
msgid "ignore refs matching <pattern>"
msgstr "ignoriere Referenzen die <Muster> entsprechen"
-#: builtin/name-rev.c:540
+#: builtin/name-rev.c:590
msgid "list all commits reachable from all refs"
msgstr "alle Commits auflisten, die von allen Referenzen erreichbar sind"
-#: builtin/name-rev.c:541
-msgid "read from stdin"
-msgstr "von der Standard-Eingabe lesen"
+#: builtin/name-rev.c:591
+msgid "deprecated: use annotate-stdin instead"
+msgstr "veraltet: benutzen Sie stattdessen annotate-stdin"
-#: builtin/name-rev.c:542
+#: builtin/name-rev.c:592
+msgid "annotate text from stdin"
+msgstr "annotiere Text von der Standard-Eingabe"
+
+#: builtin/name-rev.c:593
msgid "allow to print `undefined` names (default)"
msgstr "Ausgabe von `undefinierten` Namen erlauben (Standard)"
-#: builtin/name-rev.c:548
+#: builtin/name-rev.c:599
msgid "dereference tags in the input (internal use)"
msgstr "Tags in der Eingabe dereferenzieren (interne Verwendung)"
@@ -18869,14 +19376,6 @@ msgstr ""
"git notes [--ref <Notiz-Referenz>] merge [-v | -q] [-s <Strategie>] <Notiz-"
"Referenz>"
-#: builtin/notes.c:35
-msgid "git notes merge --commit [-v | -q]"
-msgstr "git notes merge --commit [-v | -q]"
-
-#: builtin/notes.c:36
-msgid "git notes merge --abort [-v | -q]"
-msgstr "git notes merge --abort [-v | -q]"
-
#: builtin/notes.c:37
msgid "git notes [--ref <notes-ref>] remove [<object>...]"
msgstr "git notes [--ref <Notiz-Referenz>] remove [<Objekt>...]"
@@ -18937,10 +19436,6 @@ msgstr "git notes remove [<Objekt>]"
msgid "git notes prune [<options>]"
msgstr "git notes prune [<Optionen>]"
-#: builtin/notes.c:92
-msgid "git notes get-ref"
-msgstr "git notes get-ref"
-
#: builtin/notes.c:97
msgid "Write/edit the notes for the following object:"
msgstr "Schreiben/Bearbeiten der Notizen für das folgende Objekt:"
@@ -18973,7 +19468,7 @@ msgstr "Konnte Notiz-Objekt nicht schreiben"
msgid "the note contents have been left in %s"
msgstr "Die Notiz-Inhalte wurden in %s belassen."
-#: builtin/notes.c:240 builtin/tag.c:581
+#: builtin/notes.c:240 builtin/tag.c:582
#, c-format
msgid "could not open or read '%s'"
msgstr "konnte '%s' nicht öffnen oder lesen"
@@ -19015,13 +19510,6 @@ msgstr ""
"Ausführung von %s auf Notizen in %s (außerhalb von refs/notes/) "
"zurückgewiesen"
-#: builtin/notes.c:374 builtin/notes.c:429 builtin/notes.c:507
-#: builtin/notes.c:519 builtin/notes.c:596 builtin/notes.c:663
-#: builtin/notes.c:813 builtin/notes.c:965 builtin/notes.c:987
-#: builtin/prune-packed.c:25 builtin/receive-pack.c:2487 builtin/tag.c:591
-msgid "too many arguments"
-msgstr "Zu viele Argumente."
-
#: builtin/notes.c:387 builtin/notes.c:676
#, c-format
msgid "no note found for object %s."
@@ -19214,7 +19702,7 @@ msgstr ""
"commit',\n"
"oder brechen Sie den Merge mit 'git notes merge --abort' ab.\n"
-#: builtin/notes.c:899 builtin/tag.c:594
+#: builtin/notes.c:899 builtin/tag.c:595
#, c-format
msgid "Failed to resolve '%s' as a valid ref."
msgstr "Konnte '%s' nicht als gültige Referenz auflösen."
@@ -19232,7 +19720,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:956 builtin/prune.c:144 builtin/worktree.c:147
+#: builtin/notes.c:956 builtin/prune.c:144 builtin/worktree.c:148
msgid "do not remove, show only"
msgstr "nicht löschen, nur anzeigen"
@@ -19248,7 +19736,7 @@ msgstr "Notiz-Referenz"
msgid "use notes from <notes-ref>"
msgstr "Notizen von <Notiz-Referenz> verwenden"
-#: builtin/notes.c:1036 builtin/stash.c:1818
+#: builtin/notes.c:1036 builtin/stash.c:1802
#, c-format
msgid "unknown subcommand: %s"
msgstr "Unbekannter Unterbefehl: %s"
@@ -19267,7 +19755,7 @@ msgstr ""
"git pack-objects [<Optionen>...] <Basis-Name> [< <Referenzliste> | < "
"<Objektliste>]"
-#: builtin/pack-objects.c:572
+#: builtin/pack-objects.c:570
#, c-format
msgid ""
"write_reuse_object: could not locate %s, expected at offset %<PRIuMAX> in "
@@ -19276,115 +19764,115 @@ msgstr ""
"write_reuse_object: konnte %s nicht finden, erwartet bei Offset %<PRIuMAX> "
"in Paket %s"
-#: builtin/pack-objects.c:580
+#: builtin/pack-objects.c:578
#, c-format
msgid "bad packed object CRC for %s"
msgstr "Ungültiges CRC für gepacktes Objekt %s."
-#: builtin/pack-objects.c:591
+#: builtin/pack-objects.c:589
#, c-format
msgid "corrupt packed object for %s"
msgstr "Fehlerhaftes gepacktes Objekt für %s."
-#: builtin/pack-objects.c:722
+#: builtin/pack-objects.c:720
#, c-format
msgid "recursive delta detected for object %s"
msgstr "Rekursiver Unterschied für Objekt %s festgestellt."
-#: builtin/pack-objects.c:941
+#: builtin/pack-objects.c:939
#, c-format
msgid "ordered %u objects, expected %<PRIu32>"
msgstr "%u Objekte geordnet, %<PRIu32> erwartet."
-#: builtin/pack-objects.c:1036
+#: builtin/pack-objects.c:1034
#, c-format
msgid "expected object at offset %<PRIuMAX> in pack %s"
msgstr "Objekt beim Offset %<PRIuMAX> in Paket %s erwartet"
-#: builtin/pack-objects.c:1160
+#: builtin/pack-objects.c:1158
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:1173
+#: builtin/pack-objects.c:1171
msgid "Writing objects"
msgstr "Schreibe Objekte"
-#: builtin/pack-objects.c:1235 builtin/update-index.c:90
+#: builtin/pack-objects.c:1243 builtin/update-index.c:90
#, c-format
msgid "failed to stat %s"
msgstr "Konnte '%s' nicht lesen"
-#: builtin/pack-objects.c:1268
+#: builtin/pack-objects.c:1276
msgid "failed to write bitmap index"
msgstr "Fehler beim Schreiben des Bitmap-Index"
-#: builtin/pack-objects.c:1294
+#: builtin/pack-objects.c:1302
#, c-format
msgid "wrote %<PRIu32> objects while expecting %<PRIu32>"
msgstr "Schrieb %<PRIu32> Objekte während %<PRIu32> erwartet waren."
-#: builtin/pack-objects.c:1536
+#: builtin/pack-objects.c:1544
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:1984
+#: builtin/pack-objects.c:1992
#, 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:1993
+#: builtin/pack-objects.c:2001
#, 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:2274
+#: builtin/pack-objects.c:2282
msgid "Counting objects"
msgstr "Zähle Objekte"
-#: builtin/pack-objects.c:2439
+#: builtin/pack-objects.c:2447
#, c-format
msgid "unable to parse object header of %s"
msgstr "Konnte Kopfbereich von Objekt '%s' nicht parsen."
-#: builtin/pack-objects.c:2509 builtin/pack-objects.c:2525
-#: builtin/pack-objects.c:2535
+#: builtin/pack-objects.c:2517 builtin/pack-objects.c:2533
+#: builtin/pack-objects.c:2543
#, c-format
msgid "object %s cannot be read"
msgstr "Objekt %s kann nicht gelesen werden."
-#: builtin/pack-objects.c:2512 builtin/pack-objects.c:2539
+#: builtin/pack-objects.c:2520 builtin/pack-objects.c:2547
#, 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:2549
+#: builtin/pack-objects.c:2557
msgid "suboptimal pack - out of memory"
msgstr "ungünstiges Packet - Speicher voll"
-#: builtin/pack-objects.c:2864
+#: builtin/pack-objects.c:2872
#, c-format
msgid "Delta compression using up to %d threads"
msgstr "Delta-Kompression verwendet bis zu %d Threads."
-#: builtin/pack-objects.c:3003
+#: builtin/pack-objects.c:3011
#, 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:3089
+#: builtin/pack-objects.c:3097
msgid "Compressing objects"
msgstr "Komprimiere Objekte"
-#: builtin/pack-objects.c:3095
+#: builtin/pack-objects.c:3103
msgid "inconsistency with delta count"
msgstr "Inkonsistenz mit der Anzahl von Deltas"
-#: builtin/pack-objects.c:3174
+#: builtin/pack-objects.c:3182
#, c-format
msgid ""
"value of uploadpack.blobpackfileuri must be of the form '<object-hash> <pack-"
@@ -19393,7 +19881,7 @@ msgstr ""
"Wert für uploadpack.blobpackfileuri muss in der Form '<Objekt-Hash> <Pack-"
"Hash> <URI>' vorliegen ('%s' erhalten)"
-#: builtin/pack-objects.c:3177
+#: builtin/pack-objects.c:3185
#, c-format
msgid ""
"object already configured in another uploadpack.blobpackfileuri (got '%s')"
@@ -19401,18 +19889,18 @@ msgstr ""
"Objekt bereits in einem anderen uploadpack.blobpackfileuri konfiguriert "
"('%s' erhalten)"
-#: builtin/pack-objects.c:3212
+#: builtin/pack-objects.c:3220
#, c-format
msgid "could not get type of object %s in pack %s"
msgstr "konnte Typ von Objekt %s in Paket %s nicht bestimmen"
-#: builtin/pack-objects.c:3340 builtin/pack-objects.c:3351
-#: builtin/pack-objects.c:3365
+#: builtin/pack-objects.c:3348 builtin/pack-objects.c:3359
+#: builtin/pack-objects.c:3373
#, c-format
msgid "could not find pack '%s'"
msgstr "Konnte Paket '%s' nicht finden"
-#: builtin/pack-objects.c:3408
+#: builtin/pack-objects.c:3416
#, c-format
msgid ""
"expected edge object ID, got garbage:\n"
@@ -19421,7 +19909,7 @@ msgstr ""
"erwartete Randobjekt-ID, erhielt nutzlose Daten:\n"
" %s"
-#: builtin/pack-objects.c:3414
+#: builtin/pack-objects.c:3422
#, c-format
msgid ""
"expected object ID, got garbage:\n"
@@ -19430,259 +19918,255 @@ msgstr ""
"erwartete Objekt-ID, erhielt nutzlose Daten:\n"
" %s"
-#: builtin/pack-objects.c:3507
-msgid "invalid value for --missing"
-msgstr "ungültiger Wert für --missing"
-
-#: builtin/pack-objects.c:3532 builtin/pack-objects.c:3619
+#: builtin/pack-objects.c:3540 builtin/pack-objects.c:3627
msgid "cannot open pack index"
msgstr "kann Paketindex nicht öffnen"
-#: builtin/pack-objects.c:3541
+#: builtin/pack-objects.c:3549
#, c-format
msgid "loose object at %s could not be examined"
msgstr "loses Objekt bei %s konnte nicht untersucht werden"
-#: builtin/pack-objects.c:3627
+#: builtin/pack-objects.c:3635
msgid "unable to force loose object"
msgstr "konnte loses Objekt nicht erzwingen"
-#: builtin/pack-objects.c:3757
+#: builtin/pack-objects.c:3763
#, c-format
msgid "not a rev '%s'"
msgstr "'%s' ist kein Commit"
-#: builtin/pack-objects.c:3760 builtin/rev-parse.c:1061
+#: builtin/pack-objects.c:3766 builtin/rev-parse.c:1061
#, c-format
msgid "bad revision '%s'"
msgstr "ungültiger Commit '%s'"
-#: builtin/pack-objects.c:3788
+#: builtin/pack-objects.c:3794
msgid "unable to add recent objects"
msgstr "konnte neuere Objekte nicht hinzufügen"
-#: builtin/pack-objects.c:3841
+#: builtin/pack-objects.c:3847
#, c-format
msgid "unsupported index version %s"
msgstr "nicht unterstützte Index-Version %s"
-#: builtin/pack-objects.c:3845
+#: builtin/pack-objects.c:3851
#, c-format
msgid "bad index version '%s'"
msgstr "ungültige Index-Version '%s'"
-#: builtin/pack-objects.c:3884
+#: builtin/pack-objects.c:3907
msgid "<version>[,<offset>]"
msgstr "<Version>[,<Offset>]"
-#: builtin/pack-objects.c:3885
+#: builtin/pack-objects.c:3908
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:3888
+#: builtin/pack-objects.c:3911
msgid "maximum size of each output pack file"
msgstr "maximale Größe für jede ausgegebene Paketdatei"
-#: builtin/pack-objects.c:3890
+#: builtin/pack-objects.c:3913
msgid "ignore borrowed objects from alternate object store"
msgstr "geliehene Objekte von alternativem Objektspeicher ignorieren"
-#: builtin/pack-objects.c:3892
+#: builtin/pack-objects.c:3915
msgid "ignore packed objects"
msgstr "gepackte Objekte ignorieren"
-#: builtin/pack-objects.c:3894
+#: builtin/pack-objects.c:3917
msgid "limit pack window by objects"
msgstr "Paketfenster durch Objekte begrenzen"
-#: builtin/pack-objects.c:3896
+#: builtin/pack-objects.c:3919
msgid "limit pack window by memory in addition to object limit"
msgstr ""
"Paketfenster, zusätzlich zur Objektbegrenzung, durch Speicher begrenzen"
-#: builtin/pack-objects.c:3898
+#: builtin/pack-objects.c:3921
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:3900
+#: builtin/pack-objects.c:3923
msgid "reuse existing deltas"
msgstr "existierende Unterschiede wiederverwenden"
-#: builtin/pack-objects.c:3902
+#: builtin/pack-objects.c:3925
msgid "reuse existing objects"
msgstr "existierende Objekte wiederverwenden"
-#: builtin/pack-objects.c:3904
+#: builtin/pack-objects.c:3927
msgid "use OFS_DELTA objects"
msgstr "OFS_DELTA Objekte verwenden"
-#: builtin/pack-objects.c:3906
+#: builtin/pack-objects.c:3929
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:3908
+#: builtin/pack-objects.c:3931
msgid "do not create an empty pack output"
msgstr "keine leeren Pakete erzeugen"
-#: builtin/pack-objects.c:3910
+#: builtin/pack-objects.c:3933
msgid "read revision arguments from standard input"
msgstr "Argumente bezüglich Commits von der Standard-Eingabe lesen"
-#: builtin/pack-objects.c:3912
+#: builtin/pack-objects.c:3935
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:3915
+#: builtin/pack-objects.c:3938
msgid "include objects reachable from any reference"
msgstr "Objekte einschließen, die von jeder Referenz erreichbar sind"
-#: builtin/pack-objects.c:3918
+#: builtin/pack-objects.c:3941
msgid "include objects referred by reflog entries"
msgstr ""
"Objekte einschließen, die von Einträgen des Reflogs referenziert werden"
-#: builtin/pack-objects.c:3921
+#: builtin/pack-objects.c:3944
msgid "include objects referred to by the index"
msgstr "Objekte einschließen, die vom Index referenziert werden"
-#: builtin/pack-objects.c:3924
+#: builtin/pack-objects.c:3947
msgid "read packs from stdin"
msgstr "Pakete von der Standard-Eingabe lesen"
-#: builtin/pack-objects.c:3926
+#: builtin/pack-objects.c:3949
msgid "output pack to stdout"
msgstr "Paket in die Standard-Ausgabe schreiben"
-#: builtin/pack-objects.c:3928
+#: builtin/pack-objects.c:3951
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:3930
+#: builtin/pack-objects.c:3953
msgid "keep unreachable objects"
msgstr "nicht erreichbare Objekte behalten"
-#: builtin/pack-objects.c:3932
+#: builtin/pack-objects.c:3955
msgid "pack loose unreachable objects"
msgstr "nicht erreichbare lose Objekte packen"
-#: builtin/pack-objects.c:3934
+#: builtin/pack-objects.c:3957
msgid "unpack unreachable objects newer than <time>"
msgstr "nicht erreichbare Objekte entpacken, die neuer als <Zeit> sind"
-#: builtin/pack-objects.c:3937
+#: builtin/pack-objects.c:3960
msgid "use the sparse reachability algorithm"
msgstr "den \"sparse\" Algorithmus zur Bestimmung der Erreichbarkeit benutzen"
-#: builtin/pack-objects.c:3939
+#: builtin/pack-objects.c:3962
msgid "create thin packs"
msgstr "dünnere Pakete erzeugen"
-#: builtin/pack-objects.c:3941
+#: builtin/pack-objects.c:3964
msgid "create packs suitable for shallow fetches"
msgstr ""
"Pakete geeignet für Abholung mit unvollständiger Historie (shallow) erzeugen"
-#: builtin/pack-objects.c:3943
+#: builtin/pack-objects.c:3966
msgid "ignore packs that have companion .keep file"
msgstr "Pakete ignorieren, die .keep Dateien haben"
-#: builtin/pack-objects.c:3945
+#: builtin/pack-objects.c:3968
msgid "ignore this pack"
msgstr "dieses Paket ignorieren"
-#: builtin/pack-objects.c:3947
+#: builtin/pack-objects.c:3970
msgid "pack compression level"
msgstr "Komprimierungsgrad für Paketierung"
-#: builtin/pack-objects.c:3949
+#: builtin/pack-objects.c:3972
msgid "do not hide commits by grafts"
msgstr "keine künstlichen Vorgänger-Commits (\"grafts\") verbergen"
-#: builtin/pack-objects.c:3951
+#: builtin/pack-objects.c:3974
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:3953
+#: builtin/pack-objects.c:3976
msgid "write a bitmap index together with the pack index"
msgstr "Bitmap-Index zusammen mit Pack-Index schreiben"
-#: builtin/pack-objects.c:3957
+#: builtin/pack-objects.c:3980
msgid "write a bitmap index if possible"
msgstr "Bitmap-Index schreiben, wenn möglich"
-#: builtin/pack-objects.c:3961
+#: builtin/pack-objects.c:3984
msgid "handling for missing objects"
msgstr "Behandlung für fehlende Objekte"
-#: builtin/pack-objects.c:3964
+#: builtin/pack-objects.c:3987
msgid "do not pack objects in promisor packfiles"
msgstr ""
"keine Objekte aus Packdateien von partiell geklonten Remote-Repositories "
"packen"
-#: builtin/pack-objects.c:3966
+#: builtin/pack-objects.c:3989
msgid "respect islands during delta compression"
msgstr "Delta-Islands bei Delta-Kompression beachten"
-#: builtin/pack-objects.c:3968
+#: builtin/pack-objects.c:3991
msgid "protocol"
msgstr "Protokoll"
-#: builtin/pack-objects.c:3969
+#: builtin/pack-objects.c:3992
msgid "exclude any configured uploadpack.blobpackfileuri with this protocol"
msgstr ""
"jegliche konfigurierte uploadpack.blobpackfileuri für dieses Protkoll "
"ausschließen"
-#: builtin/pack-objects.c:4002
+#: builtin/pack-objects.c:4027
#, 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:4007
+#: builtin/pack-objects.c:4032
#, c-format
msgid "pack.deltaCacheLimit is too high, forcing %d"
msgstr "pack.deltaCacheLimit ist zu hoch, erzwinge %d"
-#: builtin/pack-objects.c:4063
+#: builtin/pack-objects.c:4088
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:4065
+#: builtin/pack-objects.c:4090
msgid "minimum pack size limit is 1 MiB"
msgstr "Minimales Limit für die Paketgröße ist 1 MiB."
-#: builtin/pack-objects.c:4070
+#: builtin/pack-objects.c:4095
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:4079
+#: builtin/pack-objects.c:4104
msgid "cannot use --filter without --stdout"
msgstr "Kann --filter nicht ohne --stdout benutzen."
-#: builtin/pack-objects.c:4081
+#: builtin/pack-objects.c:4106
msgid "cannot use --filter with --stdin-packs"
msgstr "kann --filter nicht mit --stdin-packs benutzen"
-#: builtin/pack-objects.c:4085
+#: builtin/pack-objects.c:4110
msgid "cannot use internal rev list with --stdin-packs"
msgstr ""
"interne Commit-Liste kann nicht gemeinsam mit --stdin-packs verwendet werden"
-#: builtin/pack-objects.c:4144
+#: builtin/pack-objects.c:4169
msgid "Enumerating objects"
msgstr "Objekte aufzählen"
-#: builtin/pack-objects.c:4180
+#: builtin/pack-objects.c:4210
#, c-format
msgid ""
"Total %<PRIu32> (delta %<PRIu32>), reused %<PRIu32> (delta %<PRIu32>), pack-"
@@ -19718,10 +20202,6 @@ msgstr "alles packen"
msgid "prune loose refs (default)"
msgstr "lose Referenzen entfernen (Standard)"
-#: builtin/prune-packed.c:6
-msgid "git prune-packed [-n | --dry-run] [-q | --quiet]"
-msgstr "git prune-packed [-n | --dry-run] [-q | --quiet]"
-
#: builtin/prune.c:14
msgid "git prune [-n] [-v] [--progress] [--expire <time>] [--] [<head>...]"
msgstr "git prune [-n] [-v] [--progress] [--expire <Zeit>] [--] [<Branch>...]"
@@ -19744,11 +20224,6 @@ msgstr ""
msgid "cannot prune in a precious-objects repo"
msgstr "kann \"prune\" in precious-objects Repository nicht ausführen"
-#: builtin/pull.c:45 builtin/pull.c:47
-#, c-format
-msgid "Invalid value for %s: %s"
-msgstr "Ungültiger Wert für %s: %s"
-
#: builtin/pull.c:67
msgid "git pull [<options>] [<repository> [<refspec>...]]"
msgstr "git pull [<Optionen>] [<Repository> [<Refspec>...]]"
@@ -19773,7 +20248,7 @@ msgstr "Vorspulen erlauben"
msgid "control use of pre-merge-commit and commit-msg hooks"
msgstr "Benutzung der pre-merge-commit und commit-msg Hooks kontrollieren"
-#: builtin/pull.c:171 parse-options.h:340
+#: builtin/pull.c:171 parse-options.h:371
msgid "automatically stash/stash pop before and after"
msgstr "automatischer Stash/Stash-Pop davor und danach"
@@ -19789,11 +20264,6 @@ msgstr "das Ãœberschreiben von lokalen Branches erzwingen"
msgid "number of submodules pulled in parallel"
msgstr "Anzahl der parallel mit 'pull' zu verarbeitenden Submodule"
-#: builtin/pull.c:321
-#, c-format
-msgid "Invalid value for pull.ff: %s"
-msgstr "Ungültiger Wert für pull.ff: %s"
-
#: builtin/pull.c:449
msgid ""
"There is no candidate for rebasing against among the refs that you just "
@@ -19829,7 +20299,7 @@ msgstr ""
"Repository für den aktuellen Branch ist, müssen Sie einen Branch auf\n"
"der Befehlszeile angeben."
-#: builtin/pull.c:460 builtin/rebase.c:951
+#: builtin/pull.c:460 builtin/rebase.c:978
msgid "You are not currently on a branch."
msgstr "Im Moment auf keinem Branch."
@@ -19848,16 +20318,16 @@ msgid "See git-pull(1) for details."
msgstr "Siehe git-pull(1) für weitere Details."
#: builtin/pull.c:467 builtin/pull.c:473 builtin/pull.c:482
-#: builtin/rebase.c:957
+#: builtin/rebase.c:984
msgid "<remote>"
msgstr "<Remote-Repository>"
#: builtin/pull.c:467 builtin/pull.c:482 builtin/pull.c:487
-#: contrib/scalar/scalar.c:375
+#: contrib/scalar/scalar.c:374
msgid "<branch>"
msgstr "<Branch>"
-#: builtin/pull.c:475 builtin/rebase.c:949
+#: builtin/pull.c:475 builtin/rebase.c:976
msgid "There is no tracking information for the current branch."
msgstr "Es gibt keine Tracking-Informationen für den aktuellen Branch."
@@ -19918,21 +20388,21 @@ msgstr ""
"Option --rebase, --no-rebase oder --ff-only auf der Kommandozeile nutzen,\n"
"um das konfigurierte Standardverhalten pro Aufruf zu überschreiben.\n"
-#: builtin/pull.c:1046
+#: builtin/pull.c:1047
msgid "Updating an unborn branch with changes added to the index."
msgstr ""
"Aktualisiere einen ungeborenen Branch mit Änderungen, die zum Commit "
"vorgemerkt sind."
-#: builtin/pull.c:1050
+#: builtin/pull.c:1051
msgid "pull with rebase"
msgstr "Pull mit Rebase"
-#: builtin/pull.c:1051
+#: builtin/pull.c:1052
msgid "please commit or stash them."
msgstr "Bitte committen Sie die Änderungen oder benutzen Sie \"stash\"."
-#: builtin/pull.c:1076
+#: builtin/pull.c:1077
#, c-format
msgid ""
"fetch updated the current branch head.\n"
@@ -19942,7 +20412,7 @@ msgstr ""
"\"fetch\" aktualisierte die Spitze des aktuellen Branches.\n"
"Spule Ihr Arbeitsverzeichnis von Commit %s vor."
-#: builtin/pull.c:1082
+#: builtin/pull.c:1083
#, c-format
msgid ""
"Cannot fast-forward your working tree.\n"
@@ -19959,25 +20429,25 @@ msgstr ""
"$ git reset --hard\n"
"zur Wiederherstellung aus."
-#: builtin/pull.c:1097
+#: builtin/pull.c:1098
msgid "Cannot merge multiple branches into empty head."
msgstr "Kann nicht mehrere Branches in einen leeren Branch zusammenführen."
-#: builtin/pull.c:1102
+#: builtin/pull.c:1103
msgid "Cannot rebase onto multiple branches."
msgstr "Kann Rebase nicht auf mehrere Branches ausführen."
-#: builtin/pull.c:1104
+#: builtin/pull.c:1105
msgid "Cannot fast-forward to multiple branches."
msgstr "Kann nicht zu mehreren Branches vorspulen."
-#: builtin/pull.c:1119
+#: builtin/pull.c:1120
msgid "Need to specify how to reconcile divergent branches."
msgstr ""
"Es muss angegeben werden, wie mit abweichenden Branches umgegangen werden "
"sollen."
-#: builtin/pull.c:1133
+#: builtin/pull.c:1134
msgid "cannot rebase with locally recorded submodule modifications"
msgstr ""
"Kann Rebase nicht mit lokal aufgezeichneten Änderungen in Submodulen "
@@ -20168,7 +20638,7 @@ msgstr "Push nach %s\n"
msgid "failed to push some refs to '%s'"
msgstr "Fehler beim Versenden einiger Referenzen nach '%s'"
-#: builtin/push.c:544 builtin/submodule--helper.c:3259
+#: builtin/push.c:544 builtin/submodule--helper.c:3377
msgid "repository"
msgstr "Repository"
@@ -20409,11 +20879,11 @@ msgstr "unpack-trees protokollieren"
msgid "suppress feedback messages"
msgstr "Rückmeldungen unterdrücken"
-#: builtin/read-tree.c:183
+#: builtin/read-tree.c:190
msgid "You need to resolve your current index first"
msgstr "Sie müssen zuerst die Konflikte in Ihrem aktuellen Index auflösen."
-#: builtin/rebase.c:35
+#: builtin/rebase.c:36
msgid ""
"git rebase [-i] [options] [--exec <cmd>] [--onto <newbase> | --keep-base] "
"[<upstream> [<branch>]]"
@@ -20421,55 +20891,51 @@ msgstr ""
"git rebase [-i] [<Optionen>] [--exec <Programm>] [--onto <neue-Basis> | --"
"keep-base] [<Upstream> [<Branch>]]"
-#: builtin/rebase.c:37
+#: builtin/rebase.c:38
msgid ""
"git rebase [-i] [options] [--exec <cmd>] [--onto <newbase>] --root [<branch>]"
msgstr ""
"git rebase [-i] [<Optionen>] [--exec <Programm>] [--onto <neue-Basis>] --"
"root [<Branch>]"
-#: builtin/rebase.c:39
-msgid "git rebase --continue | --abort | --skip | --edit-todo"
-msgstr "git rebase --continue | --abort | --skip | --edit-todo"
-
-#: builtin/rebase.c:230
+#: builtin/rebase.c:231
#, c-format
msgid "could not create temporary %s"
msgstr "Konnte temporäres Verzeichnis '%s' nicht erstellen."
-#: builtin/rebase.c:236
+#: builtin/rebase.c:237
msgid "could not mark as interactive"
msgstr "Markierung auf interaktiven Rebase fehlgeschlagen."
-#: builtin/rebase.c:289
+#: builtin/rebase.c:290
msgid "could not generate todo list"
msgstr "Konnte TODO-Liste nicht erzeugen."
-#: builtin/rebase.c:331
+#: builtin/rebase.c:332
msgid "a base commit must be provided with --upstream or --onto"
msgstr "Ein Basis-Commit muss mit --upstream oder --onto angegeben werden."
-#: builtin/rebase.c:390
+#: builtin/rebase.c:391
#, c-format
msgid "%s requires the merge backend"
msgstr "%s erfordert das Merge-Backend"
-#: builtin/rebase.c:432
+#: builtin/rebase.c:433
#, c-format
msgid "could not get 'onto': '%s'"
msgstr "Konnte 'onto' nicht bestimmen: '%s'"
-#: builtin/rebase.c:449
+#: builtin/rebase.c:450
#, c-format
msgid "invalid orig-head: '%s'"
msgstr "Ungültiges orig-head: '%s'"
-#: builtin/rebase.c:474
+#: builtin/rebase.c:475
#, c-format
msgid "ignoring invalid allow_rerere_autoupdate: '%s'"
msgstr "Ignoriere ungültiges allow_rerere_autoupdate: '%s'"
-#: builtin/rebase.c:597
+#: builtin/rebase.c:600
msgid ""
"Resolve all conflicts manually, mark them as resolved with\n"
"\"git add/rm <conflicted_files>\", then run \"git rebase --continue\".\n"
@@ -20485,7 +20951,7 @@ msgstr ""
"Um abzubrechen und zurück zum Zustand vor \"git rebase\" zu gelangen,\n"
"führen Sie \"git rebase --abort\" aus."
-#: builtin/rebase.c:680
+#: builtin/rebase.c:685
#, c-format
msgid ""
"\n"
@@ -20505,7 +20971,12 @@ msgstr ""
"Infolge dessen kann Git auf diesen Revisionen Rebase nicht\n"
"ausführen."
-#: builtin/rebase.c:925
+#: builtin/rebase.c:836
+#, c-format
+msgid "could not switch to %s"
+msgstr "Konnte nicht zu %s wechseln."
+
+#: builtin/rebase.c:952
#, c-format
msgid ""
"unrecognized empty type '%s'; valid values are \"drop\", \"keep\", and \"ask"
@@ -20514,7 +20985,7 @@ msgstr ""
"nicht erkannter leerer Typ '%s'; gültige Werte sind \"drop\", \"keep\", und "
"\"ask\"."
-#: builtin/rebase.c:943
+#: builtin/rebase.c:970
#, c-format
msgid ""
"%s\n"
@@ -20532,7 +21003,7 @@ msgstr ""
" git rebase '<Branch>'\n"
"\n"
-#: builtin/rebase.c:959
+#: builtin/rebase.c:986
#, c-format
msgid ""
"If you wish to set tracking information for this branch you can do so with:\n"
@@ -20546,186 +21017,186 @@ msgstr ""
" git branch --set-upstream-to=%s/<Branch> %s\n"
"\n"
-#: builtin/rebase.c:989
+#: builtin/rebase.c:1016
msgid "exec commands cannot contain newlines"
msgstr "\"exec\"-Befehle können keine neuen Zeilen enthalten"
-#: builtin/rebase.c:993
+#: builtin/rebase.c:1020
msgid "empty exec command"
msgstr "Leerer \"exec\"-Befehl."
-#: builtin/rebase.c:1023
+#: builtin/rebase.c:1051
msgid "rebase onto given branch instead of upstream"
msgstr "Rebase auf angegebenen Branch anstelle des Upstream-Branches ausführen"
-#: builtin/rebase.c:1025
+#: builtin/rebase.c:1053
msgid "use the merge-base of upstream and branch as the current base"
msgstr "Nutze die Merge-Basis von Upstream und Branch als die aktuelle Basis"
-#: builtin/rebase.c:1027
+#: builtin/rebase.c:1055
msgid "allow pre-rebase hook to run"
msgstr "Ausführung des pre-rebase-Hooks erlauben"
-#: builtin/rebase.c:1029
+#: builtin/rebase.c:1057
msgid "be quiet. implies --no-stat"
msgstr "weniger Ausgaben (impliziert --no-stat)"
-#: builtin/rebase.c:1032
+#: builtin/rebase.c:1060
msgid "display a diffstat of what changed upstream"
msgstr ""
"Zusammenfassung der Unterschiede gegenüber dem Upstream-Branch anzeigen"
-#: builtin/rebase.c:1035
+#: builtin/rebase.c:1063
msgid "do not show diffstat of what changed upstream"
msgstr ""
"Zusammenfassung der Unterschiede gegenüber dem Upstream-Branch verbergen"
-#: builtin/rebase.c:1038
+#: builtin/rebase.c:1066
msgid "add a Signed-off-by trailer to each commit"
msgstr "eine Signed-off-by Zeile zu jedem Commit hinzufügen"
-#: builtin/rebase.c:1041
+#: builtin/rebase.c:1069
msgid "make committer date match author date"
msgstr "Datum des Commit-Erstellers soll mit Datum des Autors übereinstimmen"
-#: builtin/rebase.c:1043
+#: builtin/rebase.c:1071
msgid "ignore author date and use current date"
msgstr "ignoriere Autor-Datum und nutze aktuelles Datum"
-#: builtin/rebase.c:1045
+#: builtin/rebase.c:1073
msgid "synonym of --reset-author-date"
msgstr "Synonym für --reset-author-date"
-#: builtin/rebase.c:1047 builtin/rebase.c:1051
+#: builtin/rebase.c:1075 builtin/rebase.c:1079
msgid "passed to 'git apply'"
msgstr "an 'git apply' übergeben"
-#: builtin/rebase.c:1049
+#: builtin/rebase.c:1077
msgid "ignore changes in whitespace"
msgstr "Whitespace-Änderungen ignorieren"
-#: builtin/rebase.c:1053 builtin/rebase.c:1056
+#: builtin/rebase.c:1081 builtin/rebase.c:1084
msgid "cherry-pick all commits, even if unchanged"
msgstr ""
"Cherry-Pick auf alle Commits ausführen, auch wenn diese unverändert sind"
-#: builtin/rebase.c:1058
+#: builtin/rebase.c:1086
msgid "continue"
msgstr "fortsetzen"
-#: builtin/rebase.c:1061
+#: builtin/rebase.c:1089
msgid "skip current patch and continue"
msgstr "den aktuellen Patch auslassen und fortfahren"
-#: builtin/rebase.c:1063
+#: builtin/rebase.c:1091
msgid "abort and check out the original branch"
msgstr "abbrechen und den ursprünglichen Branch auschecken"
-#: builtin/rebase.c:1066
+#: builtin/rebase.c:1094
msgid "abort but keep HEAD where it is"
msgstr "abbrechen, aber HEAD an aktueller Stelle belassen"
-#: builtin/rebase.c:1067
+#: builtin/rebase.c:1095
msgid "edit the todo list during an interactive rebase"
msgstr "TODO-Liste während eines interaktiven Rebase bearbeiten"
-#: builtin/rebase.c:1070
+#: builtin/rebase.c:1098
msgid "show the patch file being applied or merged"
msgstr "den Patch, der gerade angewendet oder zusammengeführt wird, anzeigen"
-#: builtin/rebase.c:1073
+#: builtin/rebase.c:1101
msgid "use apply strategies to rebase"
msgstr "Strategien von 'git am' bei Rebase verwenden"
-#: builtin/rebase.c:1077
+#: builtin/rebase.c:1105
msgid "use merging strategies to rebase"
msgstr "Merge-Strategien beim Rebase verwenden"
-#: builtin/rebase.c:1081
+#: builtin/rebase.c:1109
msgid "let the user edit the list of commits to rebase"
msgstr "den Benutzer die Liste der Commits für den Rebase bearbeiten lassen"
-#: builtin/rebase.c:1085
+#: builtin/rebase.c:1113
msgid "(DEPRECATED) try to recreate merges instead of ignoring them"
msgstr "(VERALTET) Versuche, Merges wiederherzustellen statt sie zu ignorieren"
-#: builtin/rebase.c:1090
+#: builtin/rebase.c:1118
msgid "how to handle commits that become empty"
msgstr "wie sollen Commits behandelt werden, die leer werden"
-#: builtin/rebase.c:1093
+#: builtin/rebase.c:1121
msgid "keep commits which start empty"
msgstr "behalte Commits, die leer beginnen"
-#: builtin/rebase.c:1097
+#: builtin/rebase.c:1125
msgid "move commits that begin with squash!/fixup! under -i"
msgstr "bei -i Commits verschieben, die mit squash!/fixup! beginnen"
-#: builtin/rebase.c:1104
+#: builtin/rebase.c:1132
msgid "add exec lines after each commit of the editable list"
msgstr "exec-Zeilen nach jedem Commit der editierbaren Liste hinzufügen"
-#: builtin/rebase.c:1108
+#: builtin/rebase.c:1136
msgid "allow rebasing commits with empty messages"
msgstr "Rebase von Commits mit leerer Beschreibung erlauben"
-#: builtin/rebase.c:1112
+#: builtin/rebase.c:1140
msgid "try to rebase merges instead of skipping them"
msgstr "versuchen, Rebase mit Merges auszuführen, statt diese zu überspringen"
-#: builtin/rebase.c:1115
+#: builtin/rebase.c:1143
msgid "use 'merge-base --fork-point' to refine upstream"
msgstr "'merge-base --fork-point' benutzen, um Upstream-Branch zu bestimmen"
-#: builtin/rebase.c:1117
+#: builtin/rebase.c:1145
msgid "use the given merge strategy"
msgstr "angegebene Merge-Strategie verwenden"
-#: builtin/rebase.c:1119 builtin/revert.c:115
+#: builtin/rebase.c:1147 builtin/revert.c:115
msgid "option"
msgstr "Option"
-#: builtin/rebase.c:1120
+#: builtin/rebase.c:1148
msgid "pass the argument through to the merge strategy"
msgstr "Argument zur Merge-Strategie durchreichen"
-#: builtin/rebase.c:1123
+#: builtin/rebase.c:1151
msgid "rebase all reachable commits up to the root(s)"
msgstr "Rebase auf alle erreichbaren Commits bis zum Root-Commit ausführen"
-#: builtin/rebase.c:1126
+#: builtin/rebase.c:1154
msgid "automatically re-schedule any `exec` that fails"
msgstr "jeden fehlgeschlagenen `exec`-Befehl neu ansetzen"
-#: builtin/rebase.c:1128
+#: builtin/rebase.c:1156
msgid "apply all changes, even those already present upstream"
msgstr ""
"alle Änderungen anwenden, auch jene, die bereits im Upstream-Branch "
"vorhanden sind"
-#: builtin/rebase.c:1149
+#: builtin/rebase.c:1177
msgid "It looks like 'git am' is in progress. Cannot rebase."
msgstr "'git am' scheint im Gange zu sein. Kann Rebase nicht durchführen."
-#: builtin/rebase.c:1180
+#: builtin/rebase.c:1208
msgid "--preserve-merges was replaced by --rebase-merges"
msgstr "--preserve-merges wurde durch --rebase-merges ersetzt"
-#: builtin/rebase.c:1202
+#: builtin/rebase.c:1230
msgid "No rebase in progress?"
msgstr "Kein Rebase im Gange?"
-#: builtin/rebase.c:1206
+#: builtin/rebase.c:1234
msgid "The --edit-todo action can only be used during interactive rebase."
msgstr ""
"Die --edit-todo Aktion kann nur während eines interaktiven Rebase verwendet "
"werden."
-#: builtin/rebase.c:1229 t/helper/test-fast-rebase.c:122
+#: builtin/rebase.c:1257 t/helper/test-fast-rebase.c:122
msgid "Cannot read HEAD"
msgstr "Kann HEAD nicht lesen"
-#: builtin/rebase.c:1241
+#: builtin/rebase.c:1269
msgid ""
"You must edit all merge conflicts and then\n"
"mark them as resolved using git add"
@@ -20733,16 +21204,16 @@ msgstr ""
"Sie müssen alle Merge-Konflikte editieren und diese dann\n"
"mittels \"git add\" als aufgelöst markieren"
-#: builtin/rebase.c:1260
+#: builtin/rebase.c:1287
msgid "could not discard worktree changes"
msgstr "Konnte Änderungen im Arbeitsverzeichnis nicht verwerfen."
-#: builtin/rebase.c:1279
+#: builtin/rebase.c:1308
#, c-format
msgid "could not move back to %s"
msgstr "Konnte nicht zu %s zurückgehen."
-#: builtin/rebase.c:1325
+#: builtin/rebase.c:1354
#, c-format
msgid ""
"It seems that there is already a %s directory, and\n"
@@ -20763,126 +21234,121 @@ msgstr ""
"und führen Sie diesen Befehl nochmal aus. Es wird angehalten, falls noch\n"
"etwas Schützenswertes vorhanden ist.\n"
-#: builtin/rebase.c:1353
+#: builtin/rebase.c:1382
msgid "switch `C' expects a numerical value"
msgstr "Schalter `C' erwartet einen numerischen Wert."
-#: builtin/rebase.c:1395
+#: builtin/rebase.c:1424
#, c-format
msgid "Unknown mode: %s"
msgstr "Unbekannter Modus: %s"
-#: builtin/rebase.c:1434
+#: builtin/rebase.c:1463
msgid "--strategy requires --merge or --interactive"
msgstr "--strategy erfordert --merge oder --interactive"
-#: builtin/rebase.c:1463
+#: builtin/rebase.c:1492
msgid "apply options and merge options cannot be used together"
msgstr ""
"Optionen für \"am\" und Optionen für \"merge\" können nicht gemeinsam "
"verwendet werden"
-#: builtin/rebase.c:1476
+#: builtin/rebase.c:1505
#, c-format
msgid "Unknown rebase backend: %s"
msgstr "Unbekanntes Rebase-Backend: %s"
-#: builtin/rebase.c:1505
+#: builtin/rebase.c:1534
msgid "--reschedule-failed-exec requires --exec or --interactive"
msgstr "--reschedule-failed-exec erfordert --exec oder --interactive"
-#: builtin/rebase.c:1536
+#: builtin/rebase.c:1565
#, c-format
msgid "invalid upstream '%s'"
msgstr "Ungültiger Upstream '%s'"
-#: builtin/rebase.c:1542
+#: builtin/rebase.c:1571
msgid "Could not create new root commit"
msgstr "Konnte neuen Root-Commit nicht erstellen."
-#: builtin/rebase.c:1568
+#: builtin/rebase.c:1597
#, c-format
msgid "'%s': need exactly one merge base with branch"
msgstr "'%s': benötige genau eine Merge-Basis mit dem Branch"
-#: builtin/rebase.c:1571
+#: builtin/rebase.c:1600
#, c-format
msgid "'%s': need exactly one merge base"
msgstr "'%s': benötige genau eine Merge-Basis"
-#: builtin/rebase.c:1580
+#: builtin/rebase.c:1609
#, c-format
msgid "Does not point to a valid commit '%s'"
msgstr "'%s' zeigt auf keinen gültigen Commit."
-#: builtin/rebase.c:1607
+#: builtin/rebase.c:1636
#, c-format
msgid "no such branch/commit '%s'"
msgstr "Branch/Commit '%s' nicht gefunden"
-#: builtin/rebase.c:1618 builtin/submodule--helper.c:39
-#: builtin/submodule--helper.c:2659
+#: builtin/rebase.c:1647 builtin/submodule--helper.c:43
+#: builtin/submodule--helper.c:2477
#, c-format
msgid "No such ref: %s"
msgstr "Referenz nicht gefunden: %s"
-#: builtin/rebase.c:1629
+#: builtin/rebase.c:1658
msgid "Could not resolve HEAD to a revision"
msgstr "Konnte HEAD zu keinem Commit auflösen."
-#: builtin/rebase.c:1650
+#: builtin/rebase.c:1679
msgid "Please commit or stash them."
msgstr "Bitte committen Sie die Änderungen oder benutzen Sie \"stash\"."
-#: builtin/rebase.c:1686
-#, c-format
-msgid "could not switch to %s"
-msgstr "Konnte nicht zu %s wechseln."
-
-#: builtin/rebase.c:1697
+#: builtin/rebase.c:1714
msgid "HEAD is up to date."
msgstr "HEAD ist aktuell."
-#: builtin/rebase.c:1699
+#: builtin/rebase.c:1716
#, c-format
msgid "Current branch %s is up to date.\n"
msgstr "Aktueller Branch %s ist auf dem neuesten Stand.\n"
-#: builtin/rebase.c:1707
+#: builtin/rebase.c:1724
msgid "HEAD is up to date, rebase forced."
msgstr "HEAD ist aktuell, Rebase erzwungen."
-#: builtin/rebase.c:1709
+#: builtin/rebase.c:1726
#, c-format
msgid "Current branch %s is up to date, rebase forced.\n"
msgstr "Aktueller Branch %s ist auf dem neuesten Stand, Rebase erzwungen.\n"
-#: builtin/rebase.c:1717
+#: builtin/rebase.c:1734
msgid "The pre-rebase hook refused to rebase."
msgstr "Der \"pre-rebase hook\" hat den Rebase zurückgewiesen."
-#: builtin/rebase.c:1724
+#: builtin/rebase.c:1741
#, c-format
msgid "Changes to %s:\n"
msgstr "Änderungen zu %s:\n"
-#: builtin/rebase.c:1727
+#: builtin/rebase.c:1744
#, c-format
msgid "Changes from %s to %s:\n"
msgstr "Änderungen von %s zu %s:\n"
-#: builtin/rebase.c:1752
+#: builtin/rebase.c:1769
#, c-format
msgid "First, rewinding head to replay your work on top of it...\n"
msgstr ""
"Zunächst wird der Branch zurückgespult, um Ihre Änderungen darauf neu "
"anzuwenden...\n"
-#: builtin/rebase.c:1761
+#: builtin/rebase.c:1781
msgid "Could not detach HEAD"
msgstr "Konnte HEAD nicht loslösen."
-#: builtin/rebase.c:1770
+#: builtin/rebase.c:1790
#, c-format
msgid "Fast-forwarded %s to %s.\n"
msgstr "Spule %s vor zu %s.\n"
@@ -20891,7 +21357,7 @@ msgstr "Spule %s vor zu %s.\n"
msgid "git receive-pack <git-dir>"
msgstr "git receive-pack <Git-Verzeichnis>"
-#: builtin/receive-pack.c:1275
+#: builtin/receive-pack.c:1263
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"
@@ -20923,7 +21389,7 @@ msgstr ""
"setzen Sie die Konfigurationsvariable 'receive.denyCurrentBranch' auf\n"
"'refuse'."
-#: builtin/receive-pack.c:1295
+#: builtin/receive-pack.c:1283
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"
@@ -20944,79 +21410,116 @@ msgstr ""
"\n"
"Um diese Meldung zu unterdrücken, setzen Sie die Variable auf 'refuse'."
-#: builtin/receive-pack.c:2474
+#: builtin/receive-pack.c:2476
msgid "quiet"
msgstr "weniger Ausgaben"
-#: builtin/receive-pack.c:2489
+#: builtin/receive-pack.c:2491
msgid "you must specify a directory"
msgstr "Sie müssen ein Verzeichnis angeben"
-#: builtin/reflog.c:17
+#: builtin/reflog.c:9
+msgid "git reflog [show] [<log-options>] [<ref>]"
+msgstr "git reflog [show] [<log-Optionen>] [<Referenz>]"
+
+#: builtin/reflog.c:12
msgid ""
-"git reflog expire [--expire=<time>] [--expire-unreachable=<time>] [--"
-"rewrite] [--updateref] [--stale-fix] [--dry-run | -n] [--verbose] [--all] "
-"<refs>..."
+"git reflog expire [--expire=<time>] [--expire-unreachable=<time>]\n"
+" [--rewrite] [--updateref] [--stale-fix]\n"
+" [--dry-run | -n] [--verbose] [--all [--single-worktree] | "
+"<refs>...]"
msgstr ""
-"git reflog expire [--expire=<Zeit>] [--expire-unreachable=<Zeit>] [--"
-"rewrite] [--updateref] [--stale-fix] [--dry-run | -n] [--verbose] [--all] "
-"<Referenzen>..."
+"git reflog expire [--expire=<Zeit>] [--expire-unreachable=<Zeit>]\n"
+" [--rewrite] [--updateref] [--stale-fix]\n"
+" [--dry-run | -n] [--verbose] [--all [--single-worktree] | "
+"<Referenzen>...]"
-#: builtin/reflog.c:22
+#: builtin/reflog.c:17
msgid ""
-"git reflog delete [--rewrite] [--updateref] [--dry-run | -n] [--verbose] "
-"<refs>..."
+"git reflog delete [--rewrite] [--updateref]\n"
+" [--dry-run | -n] [--verbose] <ref>@{<specifier>}..."
msgstr ""
-"git reflog delete [--rewrite] [--updateref] [--dry-run | -n] [--verbose] "
-"<Referenzen>..."
+"git reflog delete [--rewrite] [--updateref]\n"
+" [--dry-run | -n] [--verbose] "
+"<Referenz>@{<Spezifikation>}..."
-#: builtin/reflog.c:25
+#: builtin/reflog.c:21
msgid "git reflog exists <ref>"
msgstr "git reflog exists <Referenz>"
-#: builtin/reflog.c:585 builtin/reflog.c:590
+#: builtin/reflog.c:197 builtin/reflog.c:211
#, c-format
-msgid "'%s' is not a valid timestamp"
-msgstr "'%s' ist kein gültiger Zeitstempel"
+msgid "invalid timestamp '%s' given to '--%s'"
+msgstr "ungültiger Zeitstempel '%s' für '--%s'"
-#: builtin/reflog.c:631
+#: builtin/reflog.c:240 builtin/reflog.c:359
+msgid "do not actually prune any entries"
+msgstr "Einträge nicht wirklich löschen"
+
+#: builtin/reflog.c:243 builtin/reflog.c:362
+msgid ""
+"rewrite the old SHA1 with the new SHA1 of the entry that now precedes it"
+msgstr ""
+"den alten SHA1 mit dem neuen SHA1 des Eintrags, der ihm jetzt vorausgeht, "
+"umschreiben"
+
+#: builtin/reflog.c:246 builtin/reflog.c:365
+msgid "update the reference to the value of the top reflog entry"
+msgstr "den Verweis auf den Wert des obersten Reflog-Eintrags aktualisieren"
+
+#: builtin/reflog.c:248 builtin/reflog.c:367
+msgid "print extra information on screen"
+msgstr "gebe zusätzliche Informationen auf dem Bildschirm aus"
+
+#: builtin/reflog.c:249 builtin/reflog.c:253
+msgid "timestamp"
+msgstr "Zeitstempel"
+
+#: builtin/reflog.c:250
+msgid "prune entries older than the specified time"
+msgstr "lösche Einträge älter als die angegebene Zeit"
+
+#: builtin/reflog.c:254
+msgid ""
+"prune entries older than <time> that are not reachable from the current tip "
+"of the branch"
+msgstr ""
+"entferne Einträge älter als <Zeit>, die nicht von der aktuellen Spitze des "
+"Branches erreichbar sind"
+
+#: builtin/reflog.c:258
+msgid "prune any reflog entries that point to broken commits"
+msgstr "lösche alle Reflog-Einträge die auf einen fehlerhaften Commit zeigen"
+
+#: builtin/reflog.c:259
+msgid "process the reflogs of all references"
+msgstr "Reflogs von allen Referenzen verarbeiten"
+
+#: builtin/reflog.c:261
+msgid "limits processing to reflogs from the current worktree only"
+msgstr ""
+"Verarbeitung der Reflogs auf das aktuelle Arbeitsverzeichnis beschränken"
+
+#: builtin/reflog.c:294
#, c-format
msgid "Marking reachable objects..."
msgstr "Markiere nicht erreichbare Objekte..."
-#: builtin/reflog.c:675
+#: builtin/reflog.c:338
#, c-format
msgid "%s points nowhere!"
msgstr "%s zeigt auf nichts!"
-#: builtin/reflog.c:731
+#: builtin/reflog.c:374
msgid "no reflog specified to delete"
msgstr "Kein Reflog zum Löschen angegeben."
-#: builtin/reflog.c:742
-#, c-format
-msgid "not a reflog: %s"
-msgstr "Kein Reflog: %s"
-
-#: builtin/reflog.c:747
-#, c-format
-msgid "no reflog for '%s'"
-msgstr "Kein Reflog für '%s'."
-
-#: builtin/reflog.c:794
+#: builtin/reflog.c:396
#, c-format
msgid "invalid ref format: %s"
msgstr "Ungültiges Format für Referenzen: %s"
-#: builtin/reflog.c:803
-msgid "git reflog [ show | expire | delete | exists ]"
-msgstr "git reflog [ show | expire | delete | exists ]"
-
-#: builtin/remote.c:17
-msgid "git remote [-v | --verbose]"
-msgstr "git remote [-v | --verbose]"
-
-#: builtin/remote.c:18
+#: builtin/remote.c:19
msgid ""
"git remote add [-t <branch>] [-m <master>] [-f] [--tags | --no-tags] [--"
"mirror=<fetch|push>] <name> <url>"
@@ -21024,87 +21527,87 @@ msgstr ""
"git remote add [-t <Branch>] [-m <master>] [-f] [--tags | --no-tags] [--"
"mirror=<fetch|push>] <Name> <URL>"
-#: builtin/remote.c:19 builtin/remote.c:39
-msgid "git remote rename <old> <new>"
-msgstr "git remote rename <alt> <neu>"
+#: builtin/remote.c:20 builtin/remote.c:40
+msgid "git remote rename [--[no-]progress] <old> <new>"
+msgstr "git remote rename [--[no-]progress] <alt> <neu>"
-#: builtin/remote.c:20 builtin/remote.c:44
+#: builtin/remote.c:21 builtin/remote.c:45
msgid "git remote remove <name>"
msgstr "git remote remove <Name>"
-#: builtin/remote.c:21 builtin/remote.c:49
+#: builtin/remote.c:22 builtin/remote.c:50
msgid "git remote set-head <name> (-a | --auto | -d | --delete | <branch>)"
msgstr "git remote set-head <Name> (-a | --auto | -d | --delete | <Branch>)"
-#: builtin/remote.c:22
+#: builtin/remote.c:23
msgid "git remote [-v | --verbose] show [-n] <name>"
msgstr "git remote [-v | --verbose] show [-n] <Name>"
-#: builtin/remote.c:23
+#: builtin/remote.c:24
msgid "git remote prune [-n | --dry-run] <name>"
msgstr "git remote prune [-n | --dry-run] <Name>"
-#: builtin/remote.c:24
+#: builtin/remote.c:25
msgid ""
"git remote [-v | --verbose] update [-p | --prune] [(<group> | <remote>)...]"
msgstr ""
"git remote [-v | --verbose] update [-p | --prune] [(<Gruppe> | <Remote>)...]"
-#: builtin/remote.c:25
+#: builtin/remote.c:26
msgid "git remote set-branches [--add] <name> <branch>..."
msgstr "git remote set-branches [--add] <Name> <Branch>..."
-#: builtin/remote.c:26 builtin/remote.c:75
+#: builtin/remote.c:27 builtin/remote.c:76
msgid "git remote get-url [--push] [--all] <name>"
msgstr "git remote get-url [--push] [--all] <Name>"
-#: builtin/remote.c:27 builtin/remote.c:80
+#: builtin/remote.c:28 builtin/remote.c:81
msgid "git remote set-url [--push] <name> <newurl> [<oldurl>]"
msgstr "git remote set-url [--push] <Name> <neueURL> [<alteURL>]"
-#: builtin/remote.c:28 builtin/remote.c:81
+#: builtin/remote.c:29 builtin/remote.c:82
msgid "git remote set-url --add <name> <newurl>"
msgstr "git remote set-url --add <Name> <neueURL>"
-#: builtin/remote.c:29 builtin/remote.c:82
+#: builtin/remote.c:30 builtin/remote.c:83
msgid "git remote set-url --delete <name> <url>"
msgstr "git remote set-url --delete <Name> <URL>"
-#: builtin/remote.c:34
+#: builtin/remote.c:35
msgid "git remote add [<options>] <name> <url>"
msgstr "git remote add [<Optionen>] <Name> <URL>"
-#: builtin/remote.c:54
+#: builtin/remote.c:55
msgid "git remote set-branches <name> <branch>..."
msgstr "git remote set-branches <Name> <Branch>..."
-#: builtin/remote.c:55
+#: builtin/remote.c:56
msgid "git remote set-branches --add <name> <branch>..."
msgstr "git remote set-branches --add <Name> <Branch>..."
-#: builtin/remote.c:60
+#: builtin/remote.c:61
msgid "git remote show [<options>] <name>"
msgstr "git remote show [<Optionen>] <Name>"
-#: builtin/remote.c:65
+#: builtin/remote.c:66
msgid "git remote prune [<options>] <name>"
msgstr "git remote prune [<Optionen>] <Name>"
-#: builtin/remote.c:70
+#: builtin/remote.c:71
msgid "git remote update [<options>] [<group> | <remote>]..."
msgstr "git remote update [<Optionen>] [<Gruppe> | <externesRepository>]..."
-#: builtin/remote.c:99
+#: builtin/remote.c:100
#, c-format
msgid "Updating %s"
msgstr "Aktualisiere %s"
-#: builtin/remote.c:101
+#: builtin/remote.c:102
#, c-format
msgid "Could not fetch %s"
msgstr "Konnte nicht von %s anfordern"
-#: builtin/remote.c:131
+#: builtin/remote.c:132
msgid ""
"--mirror is dangerous and deprecated; please\n"
"\t use --mirror=fetch or --mirror=push instead"
@@ -21112,82 +21615,82 @@ msgstr ""
"--mirror ist gefährlich und veraltet; bitte\n"
"\t benutzen Sie stattdessen --mirror=fetch oder --mirror=push"
-#: builtin/remote.c:148
+#: builtin/remote.c:149
#, c-format
msgid "unknown mirror argument: %s"
msgstr "unbekanntes Argument für Option mirror: %s"
-#: builtin/remote.c:164
+#: builtin/remote.c:165
msgid "fetch the remote branches"
msgstr "die Remote-Branches anfordern"
-#: builtin/remote.c:166
+#: builtin/remote.c:167
msgid "import all tags and associated objects when fetching"
msgstr "alle Tags und verbundene Objekte beim Anfordern importieren"
-#: builtin/remote.c:169
+#: builtin/remote.c:170
msgid "or do not fetch any tag at all (--no-tags)"
msgstr "oder fordere gar keine Tags an (--no-tags)"
-#: builtin/remote.c:171
+#: builtin/remote.c:172
msgid "branch(es) to track"
msgstr "Branch(es) zur Ãœbernahme"
-#: builtin/remote.c:172
+#: builtin/remote.c:173
msgid "master branch"
msgstr "Hauptbranch"
-#: builtin/remote.c:174
+#: builtin/remote.c:175
msgid "set up remote as a mirror to push to or fetch from"
msgstr ""
"Aufsetzen des Remote-Repositories als Spiegel-Repository für \"push\" und "
"\"fetch\""
-#: builtin/remote.c:186
+#: builtin/remote.c:187
msgid "specifying a master branch makes no sense with --mirror"
msgstr ""
"--mirror kann nicht mit der Angabe eines Hauptbranches verwendet werden"
-#: builtin/remote.c:188
+#: builtin/remote.c:189
msgid "specifying branches to track makes sense only with fetch mirrors"
msgstr ""
"die Angabe von zu folgenden Branches kann nur mit dem Anfordern von "
"Spiegelarchiven verwendet werden"
-#: builtin/remote.c:195 builtin/remote.c:705
+#: builtin/remote.c:196 builtin/remote.c:716
#, c-format
msgid "remote %s already exists."
msgstr "externes Repository %s existiert bereits."
-#: builtin/remote.c:240
+#: builtin/remote.c:241
#, c-format
msgid "Could not setup master '%s'"
msgstr "Konnte symbolische Referenz für Hauptbranch von '%s' nicht einrichten"
-#: builtin/remote.c:322
+#: builtin/remote.c:323
#, c-format
msgid "unhandled branch.%s.rebase=%s; assuming 'true'"
msgstr "unbehandeltes branch.%s.rebase=%s; 'true' wird angenommen"
-#: builtin/remote.c:366
+#: builtin/remote.c:367
#, c-format
msgid "Could not get fetch map for refspec %s"
msgstr "Konnte Fetch-Map für Refspec %s nicht bekommen"
-#: builtin/remote.c:460 builtin/remote.c:468
+#: builtin/remote.c:461 builtin/remote.c:469
msgid "(matching)"
msgstr "(übereinstimmend)"
-#: builtin/remote.c:472
+#: builtin/remote.c:473
msgid "(delete)"
msgstr "(lösche)"
-#: builtin/remote.c:660
+#: builtin/remote.c:664
#, c-format
msgid "could not set '%s'"
msgstr "konnte '%s' nicht setzen"
-#: builtin/remote.c:665
+#: builtin/remote.c:669
#, c-format
msgid ""
"The %s configuration remote.pushDefault in:\n"
@@ -21198,17 +21701,17 @@ msgstr ""
"\t%s:%d\n"
"benennt jetzt das nicht existierende Remote-Repository '%s'"
-#: builtin/remote.c:696 builtin/remote.c:841 builtin/remote.c:948
+#: builtin/remote.c:707 builtin/remote.c:866 builtin/remote.c:973
#, c-format
msgid "No such remote: '%s'"
msgstr "Remote-Repository nicht gefunden: '%s'"
-#: builtin/remote.c:715
+#: builtin/remote.c:726
#, c-format
msgid "Could not rename config section '%s' to '%s'"
msgstr "Konnte Sektion '%s' in Konfiguration nicht nach '%s' umbenennen"
-#: builtin/remote.c:735
+#: builtin/remote.c:746
#, c-format
msgid ""
"Not updating non-default fetch refspec\n"
@@ -21219,17 +21722,21 @@ msgstr ""
"\t%s\n"
"\tBitte aktualisieren Sie, falls notwendig, die Konfiguration manuell."
-#: builtin/remote.c:775
+#: builtin/remote.c:783
+msgid "Renaming remote references"
+msgstr "Umbenennen von Remote-Referenzen"
+
+#: builtin/remote.c:794
#, c-format
msgid "deleting '%s' failed"
msgstr "Konnte '%s' nicht löschen"
-#: builtin/remote.c:809
+#: builtin/remote.c:832
#, c-format
msgid "creating '%s' failed"
msgstr "Konnte '%s' nicht erstellen"
-#: builtin/remote.c:887
+#: builtin/remote.c:912
msgid ""
"Note: A branch outside the refs/remotes/ hierarchy was not removed;\n"
"to delete it, use:"
@@ -21245,118 +21752,118 @@ msgstr[1] ""
"entfernt;\n"
"um diese zu entfernen, benutzen Sie:"
-#: builtin/remote.c:901
+#: builtin/remote.c:926
#, c-format
msgid "Could not remove config section '%s'"
msgstr "Konnte Sektion '%s' nicht aus Konfiguration entfernen"
-#: builtin/remote.c:1009
+#: builtin/remote.c:1034
#, c-format
msgid " new (next fetch will store in remotes/%s)"
msgstr " neu (wird bei nächstem \"fetch\" in remotes/%s gespeichert)"
-#: builtin/remote.c:1012
+#: builtin/remote.c:1037
msgid " tracked"
msgstr " gefolgt"
-#: builtin/remote.c:1014
+#: builtin/remote.c:1039
msgid " stale (use 'git remote prune' to remove)"
msgstr " veraltet (benutzen Sie 'git remote prune' zum Löschen)"
-#: builtin/remote.c:1016
+#: builtin/remote.c:1041
msgid " ???"
msgstr " ???"
-#: builtin/remote.c:1057
+#: builtin/remote.c:1082
#, c-format
msgid "invalid branch.%s.merge; cannot rebase onto > 1 branch"
msgstr "ungültiges branch.%s.merge; kann Rebase nicht auf > 1 Branch ausführen"
-#: builtin/remote.c:1066
+#: builtin/remote.c:1091
#, c-format
msgid "rebases interactively onto remote %s"
msgstr "interaktiver Rebase auf Remote-Branch %s"
-#: builtin/remote.c:1068
+#: builtin/remote.c:1093
#, c-format
msgid "rebases interactively (with merges) onto remote %s"
msgstr "interaktiver Rebase (mit Merges) auf Remote-Branch %s"
-#: builtin/remote.c:1071
+#: builtin/remote.c:1096
#, c-format
msgid "rebases onto remote %s"
msgstr "Rebase auf Remote-Branch %s"
-#: builtin/remote.c:1075
+#: builtin/remote.c:1100
#, c-format
msgid " merges with remote %s"
msgstr " führt mit Remote-Branch %s zusammen"
-#: builtin/remote.c:1078
+#: builtin/remote.c:1103
#, c-format
msgid "merges with remote %s"
msgstr "führt mit Remote-Branch %s zusammen"
-#: builtin/remote.c:1081
+#: builtin/remote.c:1106
#, c-format
msgid "%-*s and with remote %s\n"
msgstr "%-*s und mit Remote-Branch %s\n"
-#: builtin/remote.c:1124
+#: builtin/remote.c:1149
msgid "create"
msgstr "erstellt"
-#: builtin/remote.c:1127
+#: builtin/remote.c:1152
msgid "delete"
msgstr "gelöscht"
-#: builtin/remote.c:1131
+#: builtin/remote.c:1156
msgid "up to date"
msgstr "aktuell"
-#: builtin/remote.c:1134
+#: builtin/remote.c:1159
msgid "fast-forwardable"
msgstr "vorspulbar"
-#: builtin/remote.c:1137
+#: builtin/remote.c:1162
msgid "local out of date"
msgstr "lokal nicht aktuell"
-#: builtin/remote.c:1144
+#: builtin/remote.c:1169
#, c-format
msgid " %-*s forces to %-*s (%s)"
msgstr " %-*s erzwingt Versandt nach %-*s (%s)"
-#: builtin/remote.c:1147
+#: builtin/remote.c:1172
#, c-format
msgid " %-*s pushes to %-*s (%s)"
msgstr " %-*s versendet nach %-*s (%s)"
-#: builtin/remote.c:1151
+#: builtin/remote.c:1176
#, c-format
msgid " %-*s forces to %s"
msgstr " %-*s erzwingt Versand nach %s"
-#: builtin/remote.c:1154
+#: builtin/remote.c:1179
#, c-format
msgid " %-*s pushes to %s"
msgstr " %-*s versendet nach %s"
-#: builtin/remote.c:1222
+#: builtin/remote.c:1247
msgid "do not query remotes"
msgstr "keine Abfrage von Remote-Repositories"
-#: builtin/remote.c:1243
+#: builtin/remote.c:1268
#, c-format
msgid "* remote %s"
msgstr "* Remote-Repository %s"
-#: builtin/remote.c:1244
+#: builtin/remote.c:1269
#, c-format
msgid " Fetch URL: %s"
msgstr " URL zum Abholen: %s"
-#: builtin/remote.c:1245 builtin/remote.c:1261 builtin/remote.c:1398
+#: builtin/remote.c:1270 builtin/remote.c:1286 builtin/remote.c:1423
msgid "(no URL)"
msgstr "(keine URL)"
@@ -21364,25 +21871,25 @@ msgstr "(keine URL)"
#. with the one in " Fetch URL: %s"
#. translation.
#.
-#: builtin/remote.c:1259 builtin/remote.c:1261
+#: builtin/remote.c:1284 builtin/remote.c:1286
#, c-format
msgid " Push URL: %s"
msgstr " URL zum Versenden: %s"
-#: builtin/remote.c:1263 builtin/remote.c:1265 builtin/remote.c:1267
+#: builtin/remote.c:1288 builtin/remote.c:1290 builtin/remote.c:1292
#, c-format
msgid " HEAD branch: %s"
msgstr " Hauptbranch: %s"
-#: builtin/remote.c:1263
+#: builtin/remote.c:1288
msgid "(not queried)"
msgstr "(nicht abgefragt)"
-#: builtin/remote.c:1265
+#: builtin/remote.c:1290
msgid "(unknown)"
msgstr "(unbekannt)"
-#: builtin/remote.c:1269
+#: builtin/remote.c:1294
#, c-format
msgid ""
" HEAD branch (remote HEAD is ambiguous, may be one of the following):\n"
@@ -21390,166 +21897,166 @@ msgstr ""
" Hauptbranch (externer HEAD ist mehrdeutig, könnte einer der folgenden "
"sein):\n"
-#: builtin/remote.c:1281
+#: builtin/remote.c:1306
#, c-format
msgid " Remote branch:%s"
msgid_plural " Remote branches:%s"
msgstr[0] " Remote-Branch:%s"
msgstr[1] " Remote-Branches:%s"
-#: builtin/remote.c:1284 builtin/remote.c:1310
+#: builtin/remote.c:1309 builtin/remote.c:1335
msgid " (status not queried)"
msgstr " (Zustand nicht abgefragt)"
-#: builtin/remote.c:1293
+#: builtin/remote.c:1318
msgid " Local branch configured for 'git pull':"
msgid_plural " Local branches configured for 'git pull':"
msgstr[0] " Lokaler Branch konfiguriert für 'git pull':"
msgstr[1] " Lokale Branches konfiguriert für 'git pull':"
-#: builtin/remote.c:1301
+#: builtin/remote.c:1326
msgid " Local refs will be mirrored by 'git push'"
msgstr " Lokale Referenzen werden von 'git push' gespiegelt"
-#: builtin/remote.c:1307
+#: builtin/remote.c:1332
#, c-format
msgid " Local ref configured for 'git push'%s:"
msgid_plural " Local refs configured for 'git push'%s:"
msgstr[0] " Lokale Referenz konfiguriert für 'git push'%s:"
msgstr[1] " Lokale Referenzen konfiguriert für 'git push'%s:"
-#: builtin/remote.c:1328
+#: builtin/remote.c:1353
msgid "set refs/remotes/<name>/HEAD according to remote"
msgstr "setzt refs/remotes/<Name>/HEAD gemäß dem Remote-Repository"
-#: builtin/remote.c:1330
+#: builtin/remote.c:1355
msgid "delete refs/remotes/<name>/HEAD"
msgstr "entfernt refs/remotes/<Name>/HEAD"
-#: builtin/remote.c:1344
+#: builtin/remote.c:1369
msgid "Cannot determine remote HEAD"
msgstr "Kann HEAD des Remote-Repositories nicht bestimmen"
-#: builtin/remote.c:1346
+#: builtin/remote.c:1371
msgid "Multiple remote HEAD branches. Please choose one explicitly with:"
msgstr ""
"Mehrere Hauptbranches im Remote-Repository. Bitte wählen Sie explizit einen "
"aus mit:"
-#: builtin/remote.c:1356
+#: builtin/remote.c:1381
#, c-format
msgid "Could not delete %s"
msgstr "Konnte %s nicht entfernen"
-#: builtin/remote.c:1364
+#: builtin/remote.c:1389
#, c-format
msgid "Not a valid ref: %s"
msgstr "keine gültige Referenz: %s"
-#: builtin/remote.c:1366
+#: builtin/remote.c:1391
#, c-format
msgid "Could not setup %s"
msgstr "Konnte %s nicht einrichten"
-#: builtin/remote.c:1384
+#: builtin/remote.c:1409
#, c-format
msgid " %s will become dangling!"
msgstr " %s wird unreferenziert!"
-#: builtin/remote.c:1385
+#: builtin/remote.c:1410
#, c-format
msgid " %s has become dangling!"
msgstr " %s wurde unreferenziert!"
-#: builtin/remote.c:1394
+#: builtin/remote.c:1419
#, c-format
msgid "Pruning %s"
msgstr "entferne veraltete Branches von %s"
-#: builtin/remote.c:1395
+#: builtin/remote.c:1420
#, c-format
msgid "URL: %s"
msgstr "URL: %s"
-#: builtin/remote.c:1411
+#: builtin/remote.c:1436
#, c-format
msgid " * [would prune] %s"
msgstr " * [würde veralteten Branch entfernen] %s"
-#: builtin/remote.c:1414
+#: builtin/remote.c:1439
#, c-format
msgid " * [pruned] %s"
msgstr "* [veralteten Branch entfernt] %s"
-#: builtin/remote.c:1459
+#: builtin/remote.c:1484
msgid "prune remotes after fetching"
msgstr "entferne veraltete Branches im Remote-Repository nach \"fetch\""
-#: builtin/remote.c:1523 builtin/remote.c:1579 builtin/remote.c:1649
+#: builtin/remote.c:1548 builtin/remote.c:1604 builtin/remote.c:1674
#, c-format
msgid "No such remote '%s'"
msgstr "Remote-Repository '%s' nicht gefunden"
-#: builtin/remote.c:1541
+#: builtin/remote.c:1566
msgid "add branch"
msgstr "Branch hinzufügen"
-#: builtin/remote.c:1548
+#: builtin/remote.c:1573
msgid "no remote specified"
msgstr "kein Remote-Repository angegeben"
-#: builtin/remote.c:1565
+#: builtin/remote.c:1590
msgid "query push URLs rather than fetch URLs"
msgstr "nur URLs für Push ausgeben"
-#: builtin/remote.c:1567
+#: builtin/remote.c:1592
msgid "return all URLs"
msgstr "alle URLs ausgeben"
-#: builtin/remote.c:1597
+#: builtin/remote.c:1622
#, c-format
msgid "no URLs configured for remote '%s'"
msgstr "Keine URLs für Remote-Repository '%s' konfiguriert."
-#: builtin/remote.c:1623
+#: builtin/remote.c:1648
msgid "manipulate push URLs"
msgstr "URLs für \"push\" manipulieren"
-#: builtin/remote.c:1625
+#: builtin/remote.c:1650
msgid "add URL"
msgstr "URL hinzufügen"
-#: builtin/remote.c:1627
+#: builtin/remote.c:1652
msgid "delete URLs"
msgstr "URLs löschen"
-#: builtin/remote.c:1634
+#: builtin/remote.c:1659
msgid "--add --delete doesn't make sense"
msgstr "--add und --delete können nicht gemeinsam verwendet werden"
-#: builtin/remote.c:1675
+#: builtin/remote.c:1700
#, c-format
msgid "Invalid old URL pattern: %s"
msgstr "ungültiges altes URL Format: %s"
-#: builtin/remote.c:1683
+#: builtin/remote.c:1708
#, c-format
msgid "No such URL found: %s"
msgstr "URL nicht gefunden: %s"
-#: builtin/remote.c:1685
+#: builtin/remote.c:1710
msgid "Will not delete all non-push URLs"
msgstr "Werde keine URLs entfernen, die nicht für \"push\" bestimmt sind"
-#: builtin/remote.c:1702
+#: builtin/remote.c:1727
msgid "be verbose; must be placed before a subcommand"
msgstr "erweiterte Ausgaben; muss vor einem Unterbefehl angegeben werden"
-#: builtin/repack.c:28
+#: builtin/repack.c:29
msgid "git repack [<options>]"
msgstr "git repack [<Optionen>]"
-#: builtin/repack.c:33
+#: builtin/repack.c:34
msgid ""
"Incremental repacks are incompatible with bitmap indexes. Use\n"
"--no-write-bitmap-index or disable the pack.writebitmaps configuration."
@@ -21558,153 +22065,153 @@ msgstr ""
"--no-write-bitmap-index oder deaktivieren Sie die pack.writebitmaps\n"
"Konfiguration."
-#: builtin/repack.c:201
+#: builtin/repack.c:206
msgid "could not start pack-objects to repack promisor objects"
msgstr ""
"Konnte 'pack-objects' für das Neupacken von Objekten aus partiell geklonten\n"
"Remote-Repositories nicht starten."
-#: builtin/repack.c:275 builtin/repack.c:820
+#: builtin/repack.c:280 builtin/repack.c:824
msgid "repack: Expecting full hex object ID lines only from pack-objects."
msgstr ""
"repack: Erwarte Zeilen mit vollständiger Hex-Objekt-ID nur von pack-objects."
-#: builtin/repack.c:299
+#: builtin/repack.c:304
msgid "could not finish pack-objects to repack promisor objects"
msgstr ""
"Konnte 'pack-objects' für das Neupacken von Objekten aus partiell geklonten\n"
"Remote-Repositories nicht abschließen."
-#: builtin/repack.c:314
+#: builtin/repack.c:319
#, c-format
msgid "cannot open index for %s"
msgstr "konnte Index für %s nicht öffnen"
-#: builtin/repack.c:373
+#: builtin/repack.c:378
#, c-format
msgid "pack %s too large to consider in geometric progression"
msgstr ""
"Paket %s zu groß, um es bei der geometrischen Progression zu berücksichtigen"
-#: builtin/repack.c:406 builtin/repack.c:413 builtin/repack.c:418
+#: builtin/repack.c:411 builtin/repack.c:418 builtin/repack.c:423
#, c-format
msgid "pack %s too large to roll up"
msgstr "Paket %s zu groß zum Aufrollen"
-#: builtin/repack.c:498
+#: builtin/repack.c:503
#, c-format
msgid "could not open tempfile %s for writing"
msgstr "konnte temporäre Datei '%s' nicht zum Schreiben öffnen"
-#: builtin/repack.c:516
+#: builtin/repack.c:521
msgid "could not close refs snapshot tempfile"
msgstr "konnte temporäre Referenzen-Snapshot-Datei nicht schließen"
-#: builtin/repack.c:630
+#: builtin/repack.c:634
msgid "pack everything in a single pack"
msgstr "alles in eine einzige Pack-Datei packen"
-#: builtin/repack.c:632
+#: builtin/repack.c:636
msgid "same as -a, and turn unreachable objects loose"
msgstr "genau wie -a, unerreichbare Objekte werden aber nicht gelöscht"
-#: builtin/repack.c:635
+#: builtin/repack.c:639
msgid "remove redundant packs, and run git-prune-packed"
msgstr "redundante Pakete entfernen und \"git-prune-packed\" ausführen"
-#: builtin/repack.c:637
+#: builtin/repack.c:641
msgid "pass --no-reuse-delta to git-pack-objects"
msgstr "--no-reuse-delta an git-pack-objects übergeben"
-#: builtin/repack.c:639
+#: builtin/repack.c:643
msgid "pass --no-reuse-object to git-pack-objects"
msgstr "--no-reuse-object an git-pack-objects übergeben"
-#: builtin/repack.c:641
+#: builtin/repack.c:645
msgid "do not run git-update-server-info"
msgstr "git-update-server-info nicht ausführen"
-#: builtin/repack.c:644
+#: builtin/repack.c:648
msgid "pass --local to git-pack-objects"
msgstr "--local an git-pack-objects übergeben"
-#: builtin/repack.c:646
+#: builtin/repack.c:650
msgid "write bitmap index"
msgstr "Bitmap-Index schreiben"
-#: builtin/repack.c:648
+#: builtin/repack.c:652
msgid "pass --delta-islands to git-pack-objects"
msgstr "--delta-islands an git-pack-objects übergeben"
-#: builtin/repack.c:649
+#: builtin/repack.c:653
msgid "approxidate"
msgstr "Datumsangabe"
-#: builtin/repack.c:650
+#: builtin/repack.c:654
msgid "with -A, do not loosen objects older than this"
msgstr "mit -A, keine Objekte älter als dieses Datum löschen"
-#: builtin/repack.c:652
+#: builtin/repack.c:656
msgid "with -a, repack unreachable objects"
msgstr "mit -a, nicht erreichbare Objekte neu packen"
-#: builtin/repack.c:654
+#: builtin/repack.c:658
msgid "size of the window used for delta compression"
msgstr "Größe des Fensters für die Delta-Kompression"
-#: builtin/repack.c:655 builtin/repack.c:661
+#: builtin/repack.c:659 builtin/repack.c:665
msgid "bytes"
msgstr "Bytes"
-#: builtin/repack.c:656
+#: builtin/repack.c:660
msgid "same as the above, but limit memory size instead of entries count"
msgstr ""
"gleiches wie oben, aber die Speichergröße statt der Anzahl der Einträge "
"limitieren"
-#: builtin/repack.c:658
+#: builtin/repack.c:662
msgid "limits the maximum delta depth"
msgstr "die maximale Delta-Tiefe limitieren"
-#: builtin/repack.c:660
+#: builtin/repack.c:664
msgid "limits the maximum number of threads"
msgstr "maximale Anzahl von Threads limitieren"
-#: builtin/repack.c:662
+#: builtin/repack.c:666
msgid "maximum size of each packfile"
msgstr "maximale Größe für jede Paketdatei"
-#: builtin/repack.c:664
+#: builtin/repack.c:668
msgid "repack objects in packs marked with .keep"
msgstr ""
"Objekte umpacken, die sich in mit .keep markierten Pack-Dateien befinden"
-#: builtin/repack.c:666
+#: builtin/repack.c:670
msgid "do not repack this pack"
msgstr "dieses Paket nicht neu packen"
-#: builtin/repack.c:668
+#: builtin/repack.c:672
msgid "find a geometric progression with factor <N>"
msgstr "eine geometrische Progression mit Faktor <N> finden"
-#: builtin/repack.c:670
+#: builtin/repack.c:674
msgid "write a multi-pack index of the resulting packs"
-msgstr "ein Multipack-Index des resultierenden Pakets schreiben"
+msgstr "ein Multi-Pack-Index des resultierenden Pakets schreiben"
-#: builtin/repack.c:680
+#: builtin/repack.c:684
msgid "cannot delete packs in a precious-objects repo"
msgstr "kann Pack-Dateien in precious-objects Repository nicht löschen"
-#: builtin/repack.c:829
+#: builtin/repack.c:833
msgid "Nothing new to pack."
msgstr "Nichts Neues zum Packen."
-#: builtin/repack.c:859
+#: builtin/repack.c:863
#, c-format
msgid "missing required file: %s"
msgstr "benötigte Datei fehlt: %s"
-#: builtin/repack.c:861
+#: builtin/repack.c:865
#, c-format
msgid "could not unlink: %s"
msgstr "konnte nicht löschen: %s"
@@ -21721,10 +22228,6 @@ msgstr "git replace [-f] --edit <Objekt>"
msgid "git replace [-f] --graft <commit> [<parent>...]"
msgstr "git replace [-f] --graft <Commit> [<Eltern-Commit>...]"
-#: builtin/replace.c:25
-msgid "git replace [-f] --convert-graft-file"
-msgstr "git replace [-f] --convert-graft-file"
-
#: builtin/replace.c:26
msgid "git replace -d <object>..."
msgstr "git replace -d <Objekt>..."
@@ -22028,98 +22531,94 @@ msgstr "Fehler beim Finden des \"Tree\"-Objektes von %s."
msgid "HEAD is now at %s"
msgstr "HEAD ist jetzt bei %s"
-#: builtin/reset.c:299
+#: builtin/reset.c:304
#, c-format
msgid "Cannot do a %s reset in the middle of a merge."
msgstr "Kann keinen '%s'-Reset durchführen, während ein Merge im Gange ist."
-#: builtin/reset.c:396 builtin/stash.c:606 builtin/stash.c:680
-#: builtin/stash.c:704
+#: builtin/reset.c:402 builtin/stash.c:606 builtin/stash.c:669
+#: builtin/stash.c:693
msgid "be quiet, only report errors"
msgstr "weniger Ausgaben, nur Fehler melden"
-#: builtin/reset.c:398
+#: builtin/reset.c:404
+msgid "skip refreshing the index after reset"
+msgstr "Aktualisierung des Indexes nach dem Zurücksetzen überspringen"
+
+#: builtin/reset.c:406
msgid "reset HEAD and index"
msgstr "HEAD und Index umsetzen"
-#: builtin/reset.c:399
+#: builtin/reset.c:407
msgid "reset only HEAD"
msgstr "nur HEAD umsetzen"
-#: builtin/reset.c:401 builtin/reset.c:403
+#: builtin/reset.c:409 builtin/reset.c:411
msgid "reset HEAD, index and working tree"
msgstr "HEAD, Index und Arbeitsverzeichnis umsetzen"
-#: builtin/reset.c:405
+#: builtin/reset.c:413
msgid "reset HEAD but keep local changes"
msgstr "HEAD umsetzen, aber lokale Änderungen behalten"
-#: builtin/reset.c:411
+#: builtin/reset.c:419
msgid "record only the fact that removed paths will be added later"
msgstr "nur speichern, dass gelöschte Pfade später hinzugefügt werden sollen"
-#: builtin/reset.c:445
+#: builtin/reset.c:452
#, c-format
msgid "Failed to resolve '%s' as a valid revision."
msgstr "Konnte '%s' nicht als gültigen Commit auflösen."
-#: builtin/reset.c:453
+#: builtin/reset.c:460
#, c-format
msgid "Failed to resolve '%s' as a valid tree."
msgstr "Konnte '%s' nicht als gültiges \"Tree\"-Objekt auflösen."
-#: builtin/reset.c:472
+#: builtin/reset.c:479
msgid "--mixed with paths is deprecated; use 'git reset -- <paths>' instead."
msgstr ""
"--mixed mit Pfaden ist veraltet; benutzen Sie stattdessen 'git reset -- "
"<Pfade>'."
-#: builtin/reset.c:474
+#: builtin/reset.c:481
#, c-format
msgid "Cannot do %s reset with paths."
msgstr "Ein '%s'-Reset mit Pfaden ist nicht möglich."
-#: builtin/reset.c:489
+#: builtin/reset.c:496
#, c-format
msgid "%s reset is not allowed in a bare repository"
msgstr "'%s'-Reset ist in einem Bare-Repository nicht erlaubt"
-#: builtin/reset.c:520
+#: builtin/reset.c:527
msgid "Unstaged changes after reset:"
msgstr "Nicht zum Commit vorgemerkte Änderungen nach Zurücksetzung:"
-#: builtin/reset.c:523
+#: builtin/reset.c:530
#, c-format
msgid ""
-"\n"
-"It took %.2f seconds to enumerate unstaged changes after reset. You can\n"
-"use '--quiet' to avoid this. Set the config setting reset.quiet to true\n"
-"to make this the default.\n"
+"It took %.2f seconds to refresh the index after reset. You can use\n"
+"'--no-refresh' to avoid this."
msgstr ""
-"\n"
-"Es dauerte %.2f Sekunden, um über die nach einem Reset nicht zum Commit\n"
-"vorgemerkten Änderungen zu zählen. Sie können '--quiet' benutzen, um\n"
-"das zu verhindern. Setzen Sie die Konfigurationseinstellung reset.quiet\n"
-"auf \"true\", um das zum Standard zu machen.\n"
+"Es dauerte %.2f Sekunden, um den Index nach dem Zurücksetzen zu\n"
+"aktualisieren. Sie können '--no-refresh' verwenden, um dies zu\n"
+"vermeiden."
-#: builtin/reset.c:541
+#: builtin/reset.c:547
#, c-format
msgid "Could not reset index file to revision '%s'."
msgstr "Konnte Index-Datei nicht zu Commit '%s' setzen."
-#: builtin/reset.c:546
+#: builtin/reset.c:552
msgid "Could not write new index file."
msgstr "Konnte neue Index-Datei nicht schreiben."
-#: builtin/rev-list.c:602
-msgid "object filtering requires --objects"
-msgstr "Das Filtern von Objekten erfordert --objects."
-
-#: builtin/rev-list.c:674
+#: builtin/rev-list.c:659
msgid "rev-list does not support display of notes"
msgstr "rev-list unterstützt keine Anzeige von Notizen"
-#: builtin/rev-list.c:679
+#: builtin/rev-list.c:664
#, c-format
msgid "marked counting and '%s' cannot be used together"
msgstr "markiertes Zählen und '%s' können nicht gemeinsam verwendet werden"
@@ -22474,11 +22973,11 @@ msgstr "Feld"
msgid "group by field"
msgstr "Gruppieren nach Feld"
-#: builtin/shortlog.c:394
+#: builtin/shortlog.c:395
msgid "too many arguments given outside repository"
msgstr "zu viele Argumente außerhalb des Repositories angegeben"
-#: builtin/show-branch.c:13
+#: builtin/show-branch.c:14
msgid ""
"git show-branch [-a | --all] [-r | --remotes] [--topo-order | --date-order]\n"
" [--current] [--color[=<when>] | --no-color] [--sparse]\n"
@@ -22490,120 +22989,120 @@ msgstr ""
" [--more=<n> | --list | --independent | --merge-base]\n"
" [--no-name | --sha1-name] [--topics] [(<Commit> | <glob>)...]"
-#: builtin/show-branch.c:17
+#: builtin/show-branch.c:18
msgid "git show-branch (-g | --reflog)[=<n>[,<base>]] [--list] [<ref>]"
msgstr "git show-branch (-g | --reflog)[=<n>[,<Basis>]] [--list] [<Referenz>]"
-#: builtin/show-branch.c:395
+#: builtin/show-branch.c:396
#, c-format
msgid "ignoring %s; cannot handle more than %d ref"
msgid_plural "ignoring %s; cannot handle more than %d refs"
msgstr[0] "ignoriere %s; kann nicht mehr als %d Referenz behandeln"
msgstr[1] "ignoriere %s; kann nicht mehr als %d Referenzen behandeln"
-#: builtin/show-branch.c:547
+#: builtin/show-branch.c:548
#, c-format
msgid "no matching refs with %s"
msgstr "keine übereinstimmenden Referenzen mit %s"
-#: builtin/show-branch.c:644
+#: builtin/show-branch.c:645
msgid "show remote-tracking and local branches"
msgstr "Remote-Tracking und lokale Branches anzeigen"
-#: builtin/show-branch.c:646
+#: builtin/show-branch.c:647
msgid "show remote-tracking branches"
msgstr "Remote-Tracking-Branches anzeigen"
-#: builtin/show-branch.c:648
+#: builtin/show-branch.c:649
msgid "color '*!+-' corresponding to the branch"
msgstr "'*!+-' entsprechend des Branches einfärben"
-#: builtin/show-branch.c:650
+#: builtin/show-branch.c:651
msgid "show <n> more commits after the common ancestor"
msgstr "<n> weitere Commits nach dem gemeinsamen Vorgänger-Commit anzeigen"
-#: builtin/show-branch.c:652
+#: builtin/show-branch.c:653
msgid "synonym to more=-1"
msgstr "Synonym für more=-1"
-#: builtin/show-branch.c:653
+#: builtin/show-branch.c:654
msgid "suppress naming strings"
msgstr "Namen unterdrücken"
-#: builtin/show-branch.c:655
+#: builtin/show-branch.c:656
msgid "include the current branch"
msgstr "den aktuellen Branch einbeziehen"
-#: builtin/show-branch.c:657
+#: builtin/show-branch.c:658
msgid "name commits with their object names"
msgstr "Commits nach ihren Objektnamen benennen"
-#: builtin/show-branch.c:659
+#: builtin/show-branch.c:660
msgid "show possible merge bases"
msgstr "mögliche Merge-Basen anzeigen"
-#: builtin/show-branch.c:661
+#: builtin/show-branch.c:662
msgid "show refs unreachable from any other ref"
msgstr ""
"Referenzen, die unerreichbar von allen anderen Referenzen sind, anzeigen"
-#: builtin/show-branch.c:663
+#: builtin/show-branch.c:664
msgid "show commits in topological order"
msgstr "Commits in topologischer Ordnung anzeigen"
-#: builtin/show-branch.c:666
+#: builtin/show-branch.c:667
msgid "show only commits not on the first branch"
msgstr "nur Commits anzeigen, die sich nicht im ersten Branch befinden"
-#: builtin/show-branch.c:668
+#: builtin/show-branch.c:669
msgid "show merges reachable from only one tip"
msgstr "Merges anzeigen, die nur von einem Branch aus erreichbar sind"
-#: builtin/show-branch.c:670
+#: builtin/show-branch.c:671
msgid "topologically sort, maintaining date order where possible"
msgstr "topologische Sortierung, Beibehaltung Datumsordnung wo möglich"
-#: builtin/show-branch.c:673
+#: builtin/show-branch.c:674
msgid "<n>[,<base>]"
msgstr "<n>[,<Basis>]"
-#: builtin/show-branch.c:674
+#: builtin/show-branch.c:675
msgid "show <n> most recent ref-log entries starting at base"
msgstr "die <n> jüngsten Einträge im Reflog, beginnend an der Basis, anzeigen"
-#: builtin/show-branch.c:734
+#: builtin/show-branch.c:735
msgid "no branches given, and HEAD is not valid"
msgstr "keine Branches angegeben, und HEAD ist ungültig"
-#: builtin/show-branch.c:737
+#: builtin/show-branch.c:738
msgid "--reflog option needs one branch name"
msgstr "die Option --reflog benötigt einen Branchnamen"
-#: builtin/show-branch.c:740
+#: builtin/show-branch.c:741
#, c-format
msgid "only %d entry can be shown at one time."
msgid_plural "only %d entries can be shown at one time."
msgstr[0] "nur %d Eintrag kann zur selben Zeit angezeigt werden."
msgstr[1] "nur %d Einträge können zur selben Zeit angezeigt werden."
-#: builtin/show-branch.c:744
+#: builtin/show-branch.c:745
#, c-format
msgid "no such ref %s"
msgstr "Referenz nicht gefunden: %s"
-#: builtin/show-branch.c:830
+#: builtin/show-branch.c:831
#, c-format
msgid "cannot handle more than %d rev."
msgid_plural "cannot handle more than %d revs."
msgstr[0] "Kann nicht mehr als %d Commit behandeln."
msgstr[1] "Kann nicht mehr als %d Commits behandeln."
-#: builtin/show-branch.c:834
+#: builtin/show-branch.c:835
#, c-format
msgid "'%s' is not a valid ref."
msgstr "'%s' ist keine gültige Referenz."
-#: builtin/show-branch.c:837
+#: builtin/show-branch.c:838
#, c-format
msgid "cannot find commit %s (%s)"
msgstr "kann Commit %s (%s) nicht finden"
@@ -22664,25 +23163,21 @@ msgstr ""
"Referenzen von der Standard-Eingabe anzeigen, die sich nicht im lokalen "
"Repository befinden"
-#: builtin/sparse-checkout.c:22
+#: builtin/sparse-checkout.c:23
msgid "git sparse-checkout (init|list|set|add|reapply|disable) <options>"
msgstr "git sparse-checkout (init|list|set|add|reapply|disable) <Optionen>"
-#: builtin/sparse-checkout.c:46
-msgid "git sparse-checkout list"
-msgstr "git sparse-checkout list"
-
-#: builtin/sparse-checkout.c:60
+#: builtin/sparse-checkout.c:61
msgid "this worktree is not sparse"
msgstr "dieses Arbeitsverzeichnis ist nicht partiell"
-#: builtin/sparse-checkout.c:75
+#: builtin/sparse-checkout.c:76
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)"
-#: builtin/sparse-checkout.c:176
+#: builtin/sparse-checkout.c:177
#, c-format
msgid ""
"directory '%s' contains untracked files, but is not in the sparse-checkout "
@@ -22691,104 +23186,138 @@ msgstr ""
"Verzeichnis '%s' enthält unversionierte Dateien, aber ist nicht innerhalb "
"des partiellen Checkouts im Cone-Modus"
-#: builtin/sparse-checkout.c:184
+#: builtin/sparse-checkout.c:185
#, c-format
msgid "failed to remove directory '%s'"
msgstr "Fehler beim Löschen des Verzeichnisses '%s'"
-#: builtin/sparse-checkout.c:324
+#: builtin/sparse-checkout.c:327
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:365
-msgid "unable to upgrade repository format to enable worktreeConfig"
-msgstr ""
-"Repository-Format konnte nicht erweitert werden, um worktreeConfig zu "
-"aktivieren"
-
-#: builtin/sparse-checkout.c:367
-msgid "failed to set extensions.worktreeConfig setting"
-msgstr "Einstellung für extensions.worktreeConfig konnte nicht gesetzt werden"
+#: builtin/sparse-checkout.c:366
+msgid "failed to initialize worktree config"
+msgstr "Fehler beim Initialisieren der Arbeitsverzeichnis-Konfiguration"
#: builtin/sparse-checkout.c:411
msgid "failed to modify sparse-index config"
msgstr "Verändern der Konfiguration für Sparse-Index fehlgeschlagen"
-#: builtin/sparse-checkout.c:422
-msgid "git sparse-checkout init [--cone] [--[no-]sparse-index]"
-msgstr "git sparse-checkout init [--cone] [--[no-]sparse-index]"
-
-#: builtin/sparse-checkout.c:441 builtin/sparse-checkout.c:729
-#: builtin/sparse-checkout.c:778
+#: builtin/sparse-checkout.c:441 builtin/sparse-checkout.c:793
+#: builtin/sparse-checkout.c:847
msgid "initialize the sparse-checkout in cone mode"
msgstr "initialisiere den partiellen Checkout im Cone-Modus"
-#: builtin/sparse-checkout.c:443 builtin/sparse-checkout.c:731
-#: builtin/sparse-checkout.c:780
+#: builtin/sparse-checkout.c:443 builtin/sparse-checkout.c:795
+#: builtin/sparse-checkout.c:849
msgid "toggle the use of a sparse index"
msgstr "die Nutzung des Sparse-Index umschalten"
-#: builtin/sparse-checkout.c:476
+#: builtin/sparse-checkout.c:479
#, c-format
msgid "failed to open '%s'"
msgstr "Fehler beim Öffnen von '%s'"
-#: builtin/sparse-checkout.c:528
+#: builtin/sparse-checkout.c:531
#, c-format
msgid "could not normalize path %s"
msgstr "konnte Pfad '%s' nicht normalisieren"
-#: builtin/sparse-checkout.c:557
+#: builtin/sparse-checkout.c:560
#, 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:612 builtin/sparse-checkout.c:640
+#: builtin/sparse-checkout.c:615 builtin/sparse-checkout.c:643
msgid "unable to load existing sparse-checkout patterns"
msgstr "konnte die existierenden Muster des partiellen Checkouts nicht laden"
-#: builtin/sparse-checkout.c:616
+#: builtin/sparse-checkout.c:619
msgid "existing sparse-checkout patterns do not use cone mode"
msgstr ""
"existierenden Muster des partiellen Checkouts benutzen nicht den Cone-Modus"
-#: builtin/sparse-checkout.c:682
-msgid "git sparse-checkout add (--stdin | <patterns>)"
-msgstr "git sparse-checkout add (--stdin | <Muster>)"
+#: builtin/sparse-checkout.c:707
+msgid "please run from the toplevel directory in non-cone mode"
+msgstr ""
+"bitte von der obersten Ebene des Arbeitsverzeichnisses im Nicht-Cone-Modus "
+"ausführen"
+
+#: builtin/sparse-checkout.c:712
+msgid "specify directories rather than patterns (no leading slash)"
+msgstr "geben Sie Verzeichnisse statt Muster an (kein führender Schrägstich)"
+
+#: builtin/sparse-checkout.c:714
+msgid ""
+"specify directories rather than patterns. If your directory starts with a "
+"'!', pass --skip-checks"
+msgstr ""
+"geben Sie Verzeichnisse statt Muster an. Wenn Ihr Verzeichnis mit '!' "
+"beginnt, geben Sie --skip-checks an"
+
+#: builtin/sparse-checkout.c:716
+msgid ""
+"specify directories rather than patterns. If your directory really has any "
+"of '*?[]\\' in it, pass --skip-checks"
+msgstr ""
+"geben Sie Verzeichnisse statt Muster an. Wenn Ihr Verzeichnis wirklich eines "
+"von '*?[]\\' enthält, geben Sie --skip-checks an"
-#: builtin/sparse-checkout.c:694 builtin/sparse-checkout.c:733
+#: builtin/sparse-checkout.c:732
+#, c-format
+msgid ""
+"'%s' is not a directory; to treat it as a directory anyway, rerun with --"
+"skip-checks"
+msgstr ""
+"'%s' ist kein Verzeichnis; um es trotzdem als Verzeichnis zu behandeln, "
+"führen Sie es mit --skip-checks erneut aus"
+
+#: builtin/sparse-checkout.c:734
+#, c-format
+msgid ""
+"pass a leading slash before paths such as '%s' if you want a single file "
+"(see NON-CONE PROBLEMS in the git-sparse-checkout manual)."
+msgstr ""
+"übergeben Sie einen führenden Schrägstrich vor Pfaden wie '%s', wenn Sie "
+"eine einzelne Datei haben möchten (siehe NON-CONE PROBLEMS im git-sparse-"
+"checkout Handbuch)."
+
+#: builtin/sparse-checkout.c:739
+msgid "git sparse-checkout add [--skip-checks] (--stdin | <patterns>)"
+msgstr "git sparse-checkout add [--skip-checks] (--stdin | <Muster>)"
+
+#: builtin/sparse-checkout.c:752 builtin/sparse-checkout.c:797
+msgid ""
+"skip some sanity checks on the given paths that might give false positives"
+msgstr ""
+"überspringe einige Plausibilitätsprüfungen für die angegebenen Pfade, die zu "
+"falsch positiven Ergebnissen führen könnten"
+
+#: builtin/sparse-checkout.c:755 builtin/sparse-checkout.c:800
msgid "read patterns from standard in"
msgstr "Muster von der Standard-Eingabe lesen"
-#: builtin/sparse-checkout.c:699
+#: builtin/sparse-checkout.c:760
msgid "no sparse-checkout to add to"
msgstr "kein partieller Checkout zum Hinzufügen"
-#: builtin/sparse-checkout.c:712
+#: builtin/sparse-checkout.c:775
msgid ""
-"git sparse-checkout set [--[no-]cone] [--[no-]sparse-index] (--stdin | "
-"<patterns>)"
+"git sparse-checkout set [--[no-]cone] [--[no-]sparse-index] [--skip-checks] "
+"(--stdin | <patterns>)"
msgstr ""
-"git sparse-checkout set [--[no-]cone] [--[no-]sparse-index] (--stdin | "
-"<Muster>)"
+"git sparse-checkout set [--[no-]cone] [--[no-]sparse-index] [--skip-checks] "
+"(--stdin | <Muster>)"
-#: builtin/sparse-checkout.c:765
-msgid "git sparse-checkout reapply [--[no-]cone] [--[no-]sparse-index]"
-msgstr "git sparse-checkout reapply [--[no-]cone] [--[no-]sparse-index]"
-
-#: builtin/sparse-checkout.c:785
+#: builtin/sparse-checkout.c:854
msgid "must be in a sparse-checkout to reapply sparsity patterns"
msgstr ""
"muss sich in einem partiellen Checkout befinden, um Sparsity-Muster erneut "
"anwenden zu können"
-#: builtin/sparse-checkout.c:803
-msgid "git sparse-checkout disable"
-msgstr "git sparse-checkout disable"
-
-#: builtin/sparse-checkout.c:845
+#: builtin/sparse-checkout.c:914
msgid "error while refreshing working directory"
msgstr "Fehler während der Aktualisierung des Arbeitsverzeichnisses."
@@ -22931,171 +23460,155 @@ msgstr "Index wurde nicht aus dem Stash zurückgeladen."
msgid "could not restore untracked files from stash"
msgstr "Konnte unversionierte Dateien vom Stash nicht wiederherstellen."
-#: builtin/stash.c:608 builtin/stash.c:706
+#: builtin/stash.c:608 builtin/stash.c:695
msgid "attempt to recreate the index"
msgstr "Versuche Index wiederherzustellen."
-#: builtin/stash.c:652
+#: builtin/stash.c:641
#, c-format
msgid "Dropped %s (%s)"
msgstr "%s (%s) gelöscht"
-#: builtin/stash.c:655
+#: builtin/stash.c:644
#, c-format
msgid "%s: Could not drop stash entry"
msgstr "%s: Konnte Stash-Eintrag nicht löschen"
-#: builtin/stash.c:668
+#: builtin/stash.c:657
#, c-format
msgid "'%s' is not a stash reference"
msgstr "'%s' ist keine Stash-Referenz"
-#: builtin/stash.c:718
+#: builtin/stash.c:707
msgid "The stash entry is kept in case you need it again."
msgstr ""
"Der Stash-Eintrag wird für den Fall behalten, dass Sie diesen nochmal "
"benötigen."
-#: builtin/stash.c:741
+#: builtin/stash.c:730
msgid "No branch name specified"
msgstr "Kein Branchname spezifiziert"
-#: builtin/stash.c:825
+#: builtin/stash.c:809
msgid "failed to parse tree"
msgstr "Parsen der Tree-Objekte fehlgeschlagen"
-#: builtin/stash.c:836
+#: builtin/stash.c:820
msgid "failed to unpack trees"
msgstr "Entpacken der Tree-Objekte fehlgeschlagen"
-#: builtin/stash.c:856
+#: builtin/stash.c:840
msgid "include untracked files in the stash"
msgstr "unversionierte Dateien in Stash einbeziehen"
-#: builtin/stash.c:859
+#: builtin/stash.c:843
msgid "only show untracked files in the stash"
msgstr "nur unversionierte Dateien im Stash anzeigen"
-#: builtin/stash.c:946 builtin/stash.c:983
+#: builtin/stash.c:930 builtin/stash.c:967
#, c-format
msgid "Cannot update %s with %s"
msgstr "Kann nicht %s mit %s aktualisieren."
-#: builtin/stash.c:964 builtin/stash.c:1678 builtin/stash.c:1750
+#: builtin/stash.c:948 builtin/stash.c:1667 builtin/stash.c:1739
msgid "stash message"
msgstr "Stash-Beschreibung"
-#: builtin/stash.c:974
+#: builtin/stash.c:958
msgid "\"git stash store\" requires one <commit> argument"
msgstr "\"git stash store\" erwartet ein Argument <Commit>"
-#: builtin/stash.c:1159
+#: builtin/stash.c:1143
msgid "No staged changes"
msgstr "Keine Änderungen im Index"
-#: builtin/stash.c:1220
+#: builtin/stash.c:1204
msgid "No changes selected"
msgstr "Keine Änderungen ausgewählt"
-#: builtin/stash.c:1320
+#: builtin/stash.c:1304
msgid "You do not have the initial commit yet"
msgstr "Sie haben bisher noch keinen initialen Commit"
-#: builtin/stash.c:1347
+#: builtin/stash.c:1331
msgid "Cannot save the current index state"
msgstr "Kann den aktuellen Zustand des Index nicht speichern"
-#: builtin/stash.c:1356
+#: builtin/stash.c:1340
msgid "Cannot save the untracked files"
msgstr "Kann die unversionierten Dateien nicht speichern"
-#: builtin/stash.c:1367 builtin/stash.c:1386
+#: builtin/stash.c:1351 builtin/stash.c:1370
msgid "Cannot save the current worktree state"
msgstr "Kann den aktuellen Zustand des Arbeitsverzeichnisses nicht speichern"
-#: builtin/stash.c:1377
+#: builtin/stash.c:1361
msgid "Cannot save the current staged state"
msgstr "Kann den aktuellen Zustand des Index nicht speichern"
-#: builtin/stash.c:1414
+#: builtin/stash.c:1398
msgid "Cannot record working tree state"
msgstr "Kann Zustand des Arbeitsverzeichnisses nicht aufzeichnen"
-#: builtin/stash.c:1463
+#: builtin/stash.c:1447
msgid "Can't use --patch and --include-untracked or --all at the same time"
msgstr ""
"Kann nicht gleichzeitig --patch und --include-untracked oder --all verwenden"
-#: builtin/stash.c:1474
+#: builtin/stash.c:1458
msgid "Can't use --staged and --include-untracked or --all at the same time"
msgstr ""
"Kann nicht gleichzeitig --staged und --include-untracked oder --all verwenden"
-#: builtin/stash.c:1492
+#: builtin/stash.c:1476
msgid "Did you forget to 'git add'?"
msgstr "Haben Sie vielleicht 'git add' vergessen?"
-#: builtin/stash.c:1507
+#: builtin/stash.c:1491
msgid "No local changes to save"
msgstr "Keine lokalen Änderungen zum Speichern"
-#: builtin/stash.c:1514
+#: builtin/stash.c:1498
msgid "Cannot initialize stash"
msgstr "Kann \"stash\" nicht initialisieren"
-#: builtin/stash.c:1529
+#: builtin/stash.c:1513
msgid "Cannot save the current status"
msgstr "Kann den aktuellen Status nicht speichern"
-#: builtin/stash.c:1534
+#: builtin/stash.c:1518
#, c-format
msgid "Saved working directory and index state %s"
msgstr "Arbeitsverzeichnis und Index-Status %s gespeichert."
-#: builtin/stash.c:1627
+#: builtin/stash.c:1615
msgid "Cannot remove worktree changes"
msgstr "Kann Änderungen im Arbeitsverzeichnis nicht löschen"
-#: builtin/stash.c:1667 builtin/stash.c:1739
+#: builtin/stash.c:1656 builtin/stash.c:1728
msgid "keep index"
msgstr "behalte Index"
-#: builtin/stash.c:1669 builtin/stash.c:1741
+#: builtin/stash.c:1658 builtin/stash.c:1730
msgid "stash staged changes only"
msgstr "nur Änderungen stashen, die zum Commit vorgemerkt sind"
-#: builtin/stash.c:1671 builtin/stash.c:1743
+#: builtin/stash.c:1660 builtin/stash.c:1732
msgid "stash in patch mode"
msgstr "Stash in Patch-Modus"
-#: builtin/stash.c:1672 builtin/stash.c:1744
+#: builtin/stash.c:1661 builtin/stash.c:1733
msgid "quiet mode"
msgstr "weniger Ausgaben"
-#: builtin/stash.c:1674 builtin/stash.c:1746
+#: builtin/stash.c:1663 builtin/stash.c:1735
msgid "include untracked files in stash"
msgstr "unversionierte Dateien in Stash einbeziehen"
-#: builtin/stash.c:1676 builtin/stash.c:1748
+#: builtin/stash.c:1665 builtin/stash.c:1737
msgid "include ignore files"
msgstr "ignorierte Dateien einbeziehen"
-#: builtin/stash.c:1783
-msgid ""
-"the stash.useBuiltin support has been removed!\n"
-"See its entry in 'git help config' for details."
-msgstr ""
-"Die Unterstützung für stash.useBuiltin wurde entfernt!\n"
-"Siehe dessen Eintrag in 'git help config' für Details."
-
-#: builtin/stripspace.c:18
-msgid "git stripspace [-s | --strip-comments]"
-msgstr "git stripspace [-s | --strip-comments]"
-
-#: builtin/stripspace.c:19
-msgid "git stripspace [-c | --comment-lines]"
-msgstr "git stripspace [-c | --comment-lines]"
-
#: builtin/stripspace.c:37
msgid "skip and remove all lines starting with comment character"
msgstr ""
@@ -23106,21 +23619,17 @@ msgstr ""
msgid "prepend comment character and space to each line"
msgstr "Kommentarzeichen mit Leerzeichen an jede Zeile voranstellen"
-#: builtin/submodule--helper.c:46 builtin/submodule--helper.c:2668
+#: builtin/submodule--helper.c:50 builtin/submodule--helper.c:2486
#, c-format
msgid "Expecting a full ref name, got %s"
msgstr "Vollständiger Referenzname erwartet, %s erhalten"
-#: builtin/submodule--helper.c:63
-msgid "submodule--helper print-default-remote takes no arguments"
-msgstr "'submodule--helper print-default-remote' erwartet keine Argumente."
-
-#: builtin/submodule--helper.c:101
+#: builtin/submodule--helper.c:103
#, c-format
msgid "cannot strip one component off url '%s'"
msgstr "Kann eine Komponente von URL '%s' nicht extrahieren"
-#: builtin/submodule--helper.c:211
+#: builtin/submodule--helper.c:213
#, c-format
msgid ""
"could not look up configuration '%s'. Assuming this repository is its own "
@@ -23129,26 +23638,26 @@ msgstr ""
"Konnte Konfiguration '%s' nicht nachschlagen. Nehme an, dass dieses\n"
"Repository sein eigenes verbindliches Upstream-Repository ist."
-#: builtin/submodule--helper.c:405 builtin/submodule--helper.c:1859
+#: builtin/submodule--helper.c:413 builtin/submodule--helper.c:1873
msgid "alternative anchor for relative paths"
msgstr "Alternativer Anker für relative Pfade"
-#: builtin/submodule--helper.c:410
+#: builtin/submodule--helper.c:418
msgid "git submodule--helper list [--prefix=<path>] [<path>...]"
msgstr "git submodule--helper list [--prefix=<Pfad>] [<Pfad>...]"
-#: builtin/submodule--helper.c:468 builtin/submodule--helper.c:605
-#: builtin/submodule--helper.c:628
+#: builtin/submodule--helper.c:476 builtin/submodule--helper.c:617
+#: builtin/submodule--helper.c:640
#, c-format
msgid "No url found for submodule path '%s' in .gitmodules"
msgstr "Keine URL für Submodul-Pfad '%s' in .gitmodules gefunden"
-#: builtin/submodule--helper.c:520
+#: builtin/submodule--helper.c:528
#, c-format
msgid "Entering '%s'\n"
msgstr "Betrete '%s'\n"
-#: builtin/submodule--helper.c:523
+#: builtin/submodule--helper.c:531
#, c-format
msgid ""
"run_command returned non-zero status for %s\n"
@@ -23157,7 +23666,7 @@ msgstr ""
"run_command gab nicht-Null Status für '%s' zurück.\n"
"."
-#: builtin/submodule--helper.c:545
+#: builtin/submodule--helper.c:553
#, c-format
msgid ""
"run_command returned non-zero status while recursing in the nested "
@@ -23169,164 +23678,164 @@ msgstr ""
"nicht-Null Status zurück.\n"
"."
-#: builtin/submodule--helper.c:561
+#: builtin/submodule--helper.c:569
msgid "suppress output of entering each submodule command"
msgstr "Ausgaben beim Betreten eines Submodul-Befehls unterdrücken"
-#: builtin/submodule--helper.c:563 builtin/submodule--helper.c:864
-#: builtin/submodule--helper.c:1453
+#: builtin/submodule--helper.c:571 builtin/submodule--helper.c:876
+#: builtin/submodule--helper.c:1458
msgid "recurse into nested submodules"
msgstr "Rekursion in verschachtelte Submodule durchführen"
-#: builtin/submodule--helper.c:568
+#: builtin/submodule--helper.c:576
msgid "git submodule--helper foreach [--quiet] [--recursive] [--] <command>"
msgstr "git submodule--helper foreach [--quiet] [--recursive] [--] <Befehl>"
-#: builtin/submodule--helper.c:642
+#: builtin/submodule--helper.c:654
#, c-format
msgid "Failed to register url for submodule path '%s'"
msgstr ""
"Fehler beim Eintragen der URL für Submodul-Pfad '%s' in die Konfiguration."
-#: builtin/submodule--helper.c:646
+#: builtin/submodule--helper.c:658
#, c-format
msgid "Submodule '%s' (%s) registered for path '%s'\n"
msgstr "Submodul '%s' (%s) für Pfad '%s' in die Konfiguration eingetragen.\n"
-#: builtin/submodule--helper.c:656
+#: builtin/submodule--helper.c:668
#, c-format
msgid "warning: command update mode suggested for submodule '%s'\n"
msgstr "Warnung: 'update'-Modus für Submodul '%s' vorgeschlagen\n"
-#: builtin/submodule--helper.c:663
+#: builtin/submodule--helper.c:675
#, c-format
msgid "Failed to register update mode for submodule path '%s'"
msgstr ""
"Fehler bei Änderung des Aktualisierungsmodus für Submodul-Pfad '%s' in der\n"
"Konfiguration."
-#: builtin/submodule--helper.c:685
+#: builtin/submodule--helper.c:697
msgid "suppress output for initializing a submodule"
msgstr "Ausgaben bei Initialisierung eines Submoduls unterdrücken"
-#: builtin/submodule--helper.c:690
+#: builtin/submodule--helper.c:702
msgid "git submodule--helper init [<options>] [<path>]"
msgstr "git submodule--helper init [<Optionen>] [<Pfad>]"
-#: builtin/submodule--helper.c:763 builtin/submodule--helper.c:898
+#: builtin/submodule--helper.c:775 builtin/submodule--helper.c:910
#, c-format
msgid "no submodule mapping found in .gitmodules for path '%s'"
msgstr "Keine Submodul-Zuordnung in .gitmodules für Pfad '%s' gefunden"
-#: builtin/submodule--helper.c:811
+#: builtin/submodule--helper.c:823
#, c-format
msgid "could not resolve HEAD ref inside the submodule '%s'"
msgstr "Konnte HEAD-Referenz nicht innerhalb des Submodul-Pfads '%s' auflösen."
-#: builtin/submodule--helper.c:838 builtin/submodule--helper.c:1423
+#: builtin/submodule--helper.c:850 builtin/submodule--helper.c:1428
#, c-format
msgid "failed to recurse into submodule '%s'"
msgstr "Fehler bei Rekursion in Submodul '%s'."
-#: builtin/submodule--helper.c:862 builtin/submodule--helper.c:1590
+#: builtin/submodule--helper.c:874 builtin/submodule--helper.c:1595
msgid "suppress submodule status output"
msgstr "Ausgabe des Submodul-Status unterdrücken"
-#: builtin/submodule--helper.c:863
+#: builtin/submodule--helper.c:875
msgid ""
"use commit stored in the index instead of the one stored in the submodule "
"HEAD"
msgstr ""
"den Commit benutzen, der im Index gespeichert ist, statt den im Submodul HEAD"
-#: builtin/submodule--helper.c:869
+#: builtin/submodule--helper.c:881
msgid "git submodule status [--quiet] [--cached] [--recursive] [<path>...]"
msgstr "git submodule status [--quiet] [--cached] [--recursive] [<Pfad>...]"
-#: builtin/submodule--helper.c:893
+#: builtin/submodule--helper.c:905
msgid "git submodule--helper name <path>"
msgstr "git submodule--helper name <Pfad>"
-#: builtin/submodule--helper.c:965
+#: builtin/submodule--helper.c:977
#, c-format
msgid "* %s %s(blob)->%s(submodule)"
msgstr "* %s %s(blob)->%s(submodule)"
-#: builtin/submodule--helper.c:968
+#: builtin/submodule--helper.c:980
#, c-format
msgid "* %s %s(submodule)->%s(blob)"
msgstr "* %s %s(submodule)->%s(blob)"
-#: builtin/submodule--helper.c:981
+#: builtin/submodule--helper.c:993
#, c-format
msgid "%s"
msgstr "%s"
-#: builtin/submodule--helper.c:1031
+#: builtin/submodule--helper.c:1043
#, c-format
msgid "couldn't hash object from '%s'"
msgstr "Hash eines Objektes von '%s' konnte nicht erzeugt werden"
-#: builtin/submodule--helper.c:1035
+#: builtin/submodule--helper.c:1047
#, c-format
msgid "unexpected mode %o\n"
msgstr "unerwarteter Modus %o\n"
-#: builtin/submodule--helper.c:1276
+#: builtin/submodule--helper.c:1288
msgid "use the commit stored in the index instead of the submodule HEAD"
msgstr ""
"benutze den Commit, der im Index gespeichert ist, statt vom Submodul HEAD"
-#: builtin/submodule--helper.c:1278
+#: builtin/submodule--helper.c:1290
msgid "compare the commit in the index with that in the submodule HEAD"
msgstr "den Commit aus dem Index mit dem im Submodul HEAD vergleichen"
-#: builtin/submodule--helper.c:1280
+#: builtin/submodule--helper.c:1292
msgid "skip submodules with 'ignore_config' value set to 'all'"
msgstr ""
"überspringe Submodule, wo der 'ignore_config' Wert auf 'all' gesetzt ist"
-#: builtin/submodule--helper.c:1282
+#: builtin/submodule--helper.c:1294
msgid "limit the summary size"
msgstr "Größe der Zusammenfassung begrenzen"
-#: builtin/submodule--helper.c:1287
+#: builtin/submodule--helper.c:1299
msgid "git submodule--helper summary [<options>] [<commit>] [--] [<path>]"
msgstr "git submodule--helper summary [<Optionen>] [<Commit>] [--] [<Pfad>]"
-#: builtin/submodule--helper.c:1311
+#: builtin/submodule--helper.c:1323
msgid "could not fetch a revision for HEAD"
msgstr "konnte keinen Commit für HEAD holen"
-#: builtin/submodule--helper.c:1373
+#: builtin/submodule--helper.c:1384
#, c-format
msgid "Synchronizing submodule url for '%s'\n"
msgstr "Synchronisiere Submodul-URL für '%s'\n"
-#: builtin/submodule--helper.c:1379
+#: builtin/submodule--helper.c:1390
#, c-format
msgid "failed to register url for submodule path '%s'"
msgstr "Fehler beim Registrieren der URL für Submodul-Pfad '%s'"
-#: builtin/submodule--helper.c:1393
+#: builtin/submodule--helper.c:1399
#, c-format
msgid "failed to get the default remote for submodule '%s'"
msgstr "Fehler beim Lesen des Standard-Remote-Repositories für Submodul '%s'"
-#: builtin/submodule--helper.c:1404
+#: builtin/submodule--helper.c:1409
#, c-format
msgid "failed to update remote for submodule '%s'"
msgstr "Fehler beim Aktualisieren des Remote-Repositories für Submodul '%s'"
-#: builtin/submodule--helper.c:1451
+#: builtin/submodule--helper.c:1456
msgid "suppress output of synchronizing submodule url"
msgstr "Ausgaben bei der Synchronisierung der Submodul-URLs unterdrücken"
-#: builtin/submodule--helper.c:1458
+#: builtin/submodule--helper.c:1463
msgid "git submodule--helper sync [--quiet] [--recursive] [<path>]"
msgstr "git submodule--helper sync [--quiet] [--recursive] [<Pfad>]"
-#: builtin/submodule--helper.c:1508
+#: builtin/submodule--helper.c:1513
#, c-format
msgid ""
"Submodule work tree '%s' contains a .git directory. This will be replaced "
@@ -23335,7 +23844,7 @@ msgstr ""
"Arbeitsverzeichnis von Submodul in '%s' enthält ein .git-Verzeichnis. Durch "
"die Nutzung von \"absorbgitdirs\" wird dieses durch eine .git-Datei ersetzt."
-#: builtin/submodule--helper.c:1525
+#: builtin/submodule--helper.c:1530
#, c-format
msgid ""
"Submodule work tree '%s' contains local modifications; use '-f' to discard "
@@ -23344,49 +23853,49 @@ msgstr ""
"Arbeitsverzeichnis von Submodul in '%s' enthält lokale Änderungen;\n"
"verwenden Sie '-f', um diese zu verwerfen."
-#: builtin/submodule--helper.c:1533
+#: builtin/submodule--helper.c:1538
#, c-format
msgid "Cleared directory '%s'\n"
msgstr "Verzeichnis '%s' bereinigt.\n"
-#: builtin/submodule--helper.c:1535
+#: builtin/submodule--helper.c:1540
#, c-format
msgid "Could not remove submodule work tree '%s'\n"
msgstr "Konnte Arbeitsverzeichnis des Submoduls in '%s' nicht löschen.\n"
-#: builtin/submodule--helper.c:1546
+#: builtin/submodule--helper.c:1551
#, c-format
msgid "could not create empty submodule directory %s"
msgstr "Konnte kein leeres Verzeichnis für Submodul in '%s' erstellen."
-#: builtin/submodule--helper.c:1562
+#: builtin/submodule--helper.c:1567
#, c-format
msgid "Submodule '%s' (%s) unregistered for path '%s'\n"
msgstr "Submodul '%s' (%s) für Pfad '%s' ausgetragen.\n"
-#: builtin/submodule--helper.c:1591
+#: builtin/submodule--helper.c:1596
msgid "remove submodule working trees even if they contain local changes"
msgstr ""
"Arbeitsverzeichnisse von Submodulen löschen, auch wenn lokale Änderungen "
"vorliegen"
-#: builtin/submodule--helper.c:1592
+#: builtin/submodule--helper.c:1597
msgid "unregister all submodules"
msgstr "alle Submodule austragen"
-#: builtin/submodule--helper.c:1597
+#: builtin/submodule--helper.c:1602
msgid ""
"git submodule deinit [--quiet] [-f | --force] [--all | [--] [<path>...]]"
msgstr ""
"git submodule deinit [--quiet] [-f | --force] [--all | [--] [<Pfad>...]]"
-#: builtin/submodule--helper.c:1611
+#: builtin/submodule--helper.c:1616
msgid "Use '--all' if you really want to deinitialize all submodules"
msgstr ""
"Verwenden Sie '--all', wenn Sie wirklich alle Submodule deinitialisieren\n"
"möchten."
-#: builtin/submodule--helper.c:1656
+#: builtin/submodule--helper.c:1665
msgid ""
"An alternate computed from a superproject's alternate is invalid.\n"
"To allow Git to clone without an alternate in such a case, set\n"
@@ -23399,104 +23908,104 @@ msgstr ""
"submodule.alternateErrorStrategy auf 'info' oder klone mit der Option\n"
"'--reference-if-able' statt '--reference'."
-#: builtin/submodule--helper.c:1701 builtin/submodule--helper.c:1704
+#: builtin/submodule--helper.c:1710 builtin/submodule--helper.c:1713
#, c-format
msgid "submodule '%s' cannot add alternate: %s"
msgstr "Submodul '%s' kann Alternative nicht hinzufügen: %s"
-#: builtin/submodule--helper.c:1740
+#: builtin/submodule--helper.c:1749
#, c-format
msgid "Value '%s' for submodule.alternateErrorStrategy is not recognized"
msgstr "Wert '%s' für submodule.alternateErrorStrategy wird nicht erkannt"
-#: builtin/submodule--helper.c:1747
+#: builtin/submodule--helper.c:1756
#, c-format
msgid "Value '%s' for submodule.alternateLocation is not recognized"
msgstr "Wert '%s' für submodule.alternateLocation wird nicht erkannt."
-#: builtin/submodule--helper.c:1772
+#: builtin/submodule--helper.c:1781
#, c-format
msgid "refusing to create/use '%s' in another submodule's git dir"
msgstr ""
"Erstellung/Benutzung von '%s' in einem anderen Submodul-Git-Verzeichnis\n"
"verweigert."
-#: builtin/submodule--helper.c:1813
+#: builtin/submodule--helper.c:1826
#, c-format
msgid "clone of '%s' into submodule path '%s' failed"
msgstr "Klonen von '%s' in Submodul-Pfad '%s' fehlgeschlagen."
-#: builtin/submodule--helper.c:1818
+#: builtin/submodule--helper.c:1831
#, c-format
msgid "directory not empty: '%s'"
msgstr "Verzeichnis ist nicht leer: '%s'"
-#: builtin/submodule--helper.c:1830
+#: builtin/submodule--helper.c:1843
#, c-format
msgid "could not get submodule directory for '%s'"
msgstr "Konnte Submodul-Verzeichnis '%s' nicht finden."
-#: builtin/submodule--helper.c:1862
+#: builtin/submodule--helper.c:1876
msgid "where the new submodule will be cloned to"
msgstr "Pfad für neues Submodul"
-#: builtin/submodule--helper.c:1865
+#: builtin/submodule--helper.c:1879
msgid "name of the new submodule"
msgstr "Name des neuen Submoduls"
-#: builtin/submodule--helper.c:1868
+#: builtin/submodule--helper.c:1882
msgid "url where to clone the submodule from"
msgstr "URL von der das Submodul geklont wird"
-#: builtin/submodule--helper.c:1876 builtin/submodule--helper.c:3265
+#: builtin/submodule--helper.c:1890 builtin/submodule--helper.c:3383
msgid "depth for shallow clones"
msgstr "Tiefe des Klons mit unvollständiger Historie (shallow)"
-#: builtin/submodule--helper.c:1879 builtin/submodule--helper.c:2526
-#: builtin/submodule--helper.c:3258
+#: builtin/submodule--helper.c:1893 builtin/submodule--helper.c:2731
+#: builtin/submodule--helper.c:3376
msgid "force cloning progress"
msgstr "Fortschrittsanzeige beim Klonen erzwingen"
-#: builtin/submodule--helper.c:1881 builtin/submodule--helper.c:2528
+#: builtin/submodule--helper.c:1895 builtin/submodule--helper.c:2733
msgid "disallow cloning into non-empty directory"
msgstr "Klonen in ein nicht leeres Verzeichnis verbieten"
-#: builtin/submodule--helper.c:1888
+#: builtin/submodule--helper.c:1903
msgid ""
"git submodule--helper clone [--prefix=<path>] [--quiet] [--reference "
-"<repository>] [--name <name>] [--depth <depth>] [--single-branch] --url "
-"<url> --path <path>"
+"<repository>] [--name <name>] [--depth <depth>] [--single-branch] [--filter "
+"<filter-spec>] --url <url> --path <path>"
msgstr ""
"git submodule--helper clone [--prefix=<Pfad>] [--quiet] [--reference "
-"<Repository>] [--name <Name>] [--depth <Tiefe>] [--single-branch] --url "
-"<URL> --path <Pfad>"
+"<Repository>] [--name <Name>] [--depth <Tiefe>] [--single-branch] [--filter "
+"<filter-spec>] --url <URL> --path <Pfad>"
-#: builtin/submodule--helper.c:1925
+#: builtin/submodule--helper.c:1943
#, c-format
msgid "Invalid update mode '%s' for submodule path '%s'"
msgstr "Ungültiger Aktualisierungsmodus '%s' für Submodul-Pfad '%s'."
-#: builtin/submodule--helper.c:1929
+#: builtin/submodule--helper.c:1947
#, c-format
msgid "Invalid update mode '%s' configured for submodule path '%s'"
msgstr ""
"Ungültiger Aktualisierungsmodus '%s' für Submodul-Pfad '%s' konfiguriert."
-#: builtin/submodule--helper.c:2044
+#: builtin/submodule--helper.c:2041
#, c-format
msgid "Submodule path '%s' not initialized"
msgstr "Submodul-Pfad '%s' nicht initialisiert"
-#: builtin/submodule--helper.c:2048
+#: builtin/submodule--helper.c:2045
msgid "Maybe you want to use 'update --init'?"
msgstr "Meinten Sie vielleicht 'update --init'?"
-#: builtin/submodule--helper.c:2078
+#: builtin/submodule--helper.c:2075
#, c-format
msgid "Skipping unmerged submodule %s"
msgstr "Überspringe nicht zusammengeführtes Submodul %s"
-#: builtin/submodule--helper.c:2107
+#: builtin/submodule--helper.c:2104
#, c-format
msgid "Skipping submodule '%s'"
msgstr "Ãœberspringe Submodul '%s'"
@@ -23511,54 +24020,54 @@ msgstr "Fehler beim Klonen von '%s'. Weiterer Versuch geplant"
msgid "Failed to clone '%s' a second time, aborting"
msgstr "Zweiter Versuch '%s' zu klonen fehlgeschlagen, breche ab."
-#: builtin/submodule--helper.c:2373
+#: builtin/submodule--helper.c:2371
#, c-format
msgid "Unable to checkout '%s' in submodule path '%s'"
msgstr "Konnte '%s' nicht im Submodul-Pfad '%s' auschecken"
-#: builtin/submodule--helper.c:2377
+#: builtin/submodule--helper.c:2375
#, c-format
msgid "Unable to rebase '%s' in submodule path '%s'"
msgstr "Rebase von '%s' in Submodul-Pfad '%s' nicht möglich"
-#: builtin/submodule--helper.c:2381
+#: builtin/submodule--helper.c:2379
#, c-format
msgid "Unable to merge '%s' in submodule path '%s'"
msgstr "Merge von '%s' in Submodul-Pfad '%s' nicht möglich"
-#: builtin/submodule--helper.c:2385
+#: builtin/submodule--helper.c:2383
#, c-format
msgid "Execution of '%s %s' failed in submodule path '%s'"
msgstr "Ausführung von '%s %s' in Submodul-Pfad '%s' fehlgeschlagen"
-#: builtin/submodule--helper.c:2409
+#: builtin/submodule--helper.c:2402
#, c-format
msgid "Submodule path '%s': checked out '%s'\n"
msgstr "Submodul-Pfad '%s': '%s' ausgecheckt\n"
-#: builtin/submodule--helper.c:2413
+#: builtin/submodule--helper.c:2406
#, c-format
msgid "Submodule path '%s': rebased into '%s'\n"
msgstr "Submodul-Pfad '%s': Rebase in '%s'\n"
-#: builtin/submodule--helper.c:2417
+#: builtin/submodule--helper.c:2410
#, c-format
msgid "Submodule path '%s': merged in '%s'\n"
msgstr "Submodul-Pfad '%s': zusammengeführt in '%s'\n"
-#: builtin/submodule--helper.c:2421
+#: builtin/submodule--helper.c:2414
#, c-format
msgid "Submodule path '%s': '%s %s'\n"
msgstr "Submodul-Pfad '%s': '%s %s'\n"
-#: builtin/submodule--helper.c:2445
+#: builtin/submodule--helper.c:2438
#, c-format
msgid "Unable to fetch in submodule path '%s'; trying to directly fetch %s:"
msgstr ""
"Konnte \"fetch\" in Submodul-Pfad '%s' nicht ausführen; versuche %s direkt "
"anzufordern:"
-#: builtin/submodule--helper.c:2454
+#: builtin/submodule--helper.c:2447
#, c-format
msgid ""
"Fetched in submodule path '%s', but it did not contain %s. Direct fetching "
@@ -23567,187 +24076,213 @@ msgstr ""
"\"fetch\" in Submodul-Pfad '%s' ausgeführt, aber enthielt nicht %s. Direktes "
"Anfordern dieses Commits ist fehlgeschlagen."
-#: builtin/submodule--helper.c:2505 builtin/submodule--helper.c:2575
-#: builtin/submodule--helper.c:2813
+#: builtin/submodule--helper.c:2481
+#, c-format
+msgid ""
+"Submodule (%s) branch configured to inherit branch from superproject, but "
+"the superproject is not on any branch"
+msgstr ""
+"Branch von Submodul (%s) ist konfiguriert, den Branch des Hauptprojektes\n"
+"zu erben, aber das Hauptprojekt befindet sich auf keinem Branch."
+
+#: builtin/submodule--helper.c:2499
+#, c-format
+msgid "could not get a repository handle for submodule '%s'"
+msgstr "Konnte kein Repository-Handle für Submodul '%s' erhalten."
+
+#: builtin/submodule--helper.c:2588
+#, c-format
+msgid "Unable to find current revision in submodule path '%s'"
+msgstr "Konnte aktuellen Commit nicht in Submodul-Pfad '%s' finden"
+
+#: builtin/submodule--helper.c:2599
+#, c-format
+msgid "Unable to fetch in submodule path '%s'"
+msgstr "Konnte \"fetch\" nicht in Submodul-Pfad '%s' ausführen"
+
+#: builtin/submodule--helper.c:2604
+#, c-format
+msgid "Unable to find %s revision in submodule path '%s'"
+msgstr "Konnte %s Commit in Submodul-Pfad '%s' nicht finden"
+
+#: builtin/submodule--helper.c:2640
+#, c-format
+msgid "Failed to recurse into submodule path '%s'"
+msgstr "Fehler bei Rekursion in Submodul-Pfad '%s'"
+
+#: builtin/submodule--helper.c:2699
+msgid "force checkout updates"
+msgstr "Checkout-Aktualisierungen erzwingen"
+
+#: builtin/submodule--helper.c:2701
+msgid "initialize uninitialized submodules before update"
+msgstr "initialisiere nicht-initialisierte Submodule vor dem Update"
+
+#: builtin/submodule--helper.c:2703
+msgid "use SHA-1 of submodule's remote tracking branch"
+msgstr "nutze SHA-1 von Remote-Tracking-Branch des Submoduls"
+
+#: builtin/submodule--helper.c:2705
+msgid "traverse submodules recursively"
+msgstr "Submodule rekursiv durchlaufen"
+
+#: builtin/submodule--helper.c:2707
+msgid "don't fetch new objects from the remote site"
+msgstr "keine neuen Objekte von Remote abrufen"
+
+#: builtin/submodule--helper.c:2710 builtin/submodule--helper.c:2892
msgid "path into the working tree"
msgstr "Pfad zum Arbeitsverzeichnis"
-#: builtin/submodule--helper.c:2508 builtin/submodule--helper.c:2580
+#: builtin/submodule--helper.c:2713
msgid "path into the working tree, across nested submodule boundaries"
msgstr ""
"Pfad zum Arbeitsverzeichnis, über verschachtelte Submodul-Grenzen hinweg"
-#: builtin/submodule--helper.c:2512 builtin/submodule--helper.c:2578
+#: builtin/submodule--helper.c:2717
msgid "rebase, merge, checkout or none"
msgstr "rebase, merge, checkout oder none"
-#: builtin/submodule--helper.c:2518
+#: builtin/submodule--helper.c:2723
msgid "create a shallow clone truncated to the specified number of revisions"
msgstr ""
"einen Klon mit unvollständiger Historie (shallow) erstellen, abgeschnitten "
"bei der angegebenen Anzahl von Commits"
-#: builtin/submodule--helper.c:2521
+#: builtin/submodule--helper.c:2726
msgid "parallel jobs"
msgstr "Parallele Ausführungen"
-#: builtin/submodule--helper.c:2523
+#: builtin/submodule--helper.c:2728
msgid "whether the initial clone should follow the shallow recommendation"
msgstr ""
"ob das initiale Klonen den Empfehlungen für eine unvollständige\n"
"Historie (shallow) folgen soll"
-#: builtin/submodule--helper.c:2524
+#: builtin/submodule--helper.c:2729
msgid "don't print cloning progress"
msgstr "keine Fortschrittsanzeige beim Klonen"
-#: builtin/submodule--helper.c:2535
-msgid "git submodule--helper update-clone [--prefix=<path>] [<path>...]"
-msgstr "git submodule--helper update-clone [--prefix=<Pfad>] [<Pfad>...]"
-
-#: builtin/submodule--helper.c:2548
-msgid "bad value for update parameter"
-msgstr "Fehlerhafter Wert für update Parameter"
-
-#: builtin/submodule--helper.c:2566
-msgid "suppress output for update by rebase or merge"
-msgstr "Ausgaben bei Aktualisierung durch Rebase oder Merge unterdrücken"
-
-#: builtin/submodule--helper.c:2567
-msgid "force checkout updates"
-msgstr "Checkout-Aktualisierungen erzwingen"
-
-#: builtin/submodule--helper.c:2569
-msgid "don't fetch new objects from the remote site"
-msgstr "keine neuen Objekte von Remote abrufen"
-
-#: builtin/submodule--helper.c:2571
-msgid "overrides update mode in case the repository is a fresh clone"
-msgstr ""
-"überschreibt den Aktualisierungsmodus, falls es sich bei dem Repository um "
-"einen neuen Klon handelt"
-
-#: builtin/submodule--helper.c:2572
-msgid "depth for shallow fetch"
-msgstr "Tiefe des Abrufens mit unvollständiger Historie (shallow)"
-
-#: builtin/submodule--helper.c:2582
-msgid "sha1"
-msgstr "sha1"
-
-#: builtin/submodule--helper.c:2583
-msgid "SHA1 expected by superproject"
-msgstr "SHA1 vom übergeordneten Projekt erwartet"
-
-#: builtin/submodule--helper.c:2585
-msgid "subsha1"
-msgstr "subsha1"
-
-#: builtin/submodule--helper.c:2586
-msgid "SHA1 of submodule's HEAD"
-msgstr "SHA1 vom HEAD des Submoduls"
-
-#: builtin/submodule--helper.c:2592
-msgid "git submodule--helper run-update-procedure [<options>] <path>"
-msgstr "git submodule--helper run-update-procedure [<Optionen>] <Pfad>"
-
-#: builtin/submodule--helper.c:2663
-#, c-format
+#: builtin/submodule--helper.c:2741
msgid ""
-"Submodule (%s) branch configured to inherit branch from superproject, but "
-"the superproject is not on any branch"
+"git submodule [--quiet] update [--init [--filter=<filter-spec>]] [--remote] "
+"[-N|--no-fetch] [-f|--force] [--checkout|--merge|--rebase] [--[no-]recommend-"
+"shallow] [--reference <repository>] [--recursive] [--[no-]single-branch] "
+"[--] [<path>...]"
msgstr ""
-"Branch von Submodul (%s) ist konfiguriert, den Branch des Hauptprojektes\n"
-"zu erben, aber das Hauptprojekt befindet sich auf keinem Branch."
+"git submodule [--quiet] update [--init [--filter=<filter-spec>]] [--remote] "
+"[-N|--no-fetch] [-f|--force] [--checkout|--merge|--rebase] [--[no-]recommend-"
+"shallow] [--reference <Repository>] [--recursive] [--[no-]single-branch] "
+"[--] [<Pfad>...]"
-#: builtin/submodule--helper.c:2781
-#, c-format
-msgid "could not get a repository handle for submodule '%s'"
-msgstr "Konnte kein Repository-Handle für Submodul '%s' erhalten."
+#: builtin/submodule--helper.c:2767
+msgid "bad value for update parameter"
+msgstr "Fehlerhafter Wert für update Parameter"
-#: builtin/submodule--helper.c:2814
+#: builtin/submodule--helper.c:2893
msgid "recurse into submodules"
msgstr "Rekursion in Submodule durchführen"
-#: builtin/submodule--helper.c:2820
+#: builtin/submodule--helper.c:2899
msgid "git submodule--helper absorb-git-dirs [<options>] [<path>...]"
msgstr "git submodule--helper absorb-git-dirs [<Optionen>] [<Pfad>...]"
-#: builtin/submodule--helper.c:2876
+#: builtin/submodule--helper.c:2955
msgid "check if it is safe to write to the .gitmodules file"
msgstr "prüfen, ob es sicher ist, in die Datei .gitmodules zu schreiben"
-#: builtin/submodule--helper.c:2879
+#: builtin/submodule--helper.c:2958
msgid "unset the config in the .gitmodules file"
msgstr "Konfiguration in der .gitmodules-Datei entfernen"
-#: builtin/submodule--helper.c:2884
+#: builtin/submodule--helper.c:2963
msgid "git submodule--helper config <name> [<value>]"
msgstr "git submodule--helper config <name> [<Wert>]"
-#: builtin/submodule--helper.c:2885
+#: builtin/submodule--helper.c:2964
msgid "git submodule--helper config --unset <name>"
msgstr "git submodule--helper config --unset <Name>"
-#: builtin/submodule--helper.c:2886
-msgid "git submodule--helper config --check-writeable"
-msgstr "git submodule--helper config --check-writeable"
-
-#: builtin/submodule--helper.c:2905 builtin/submodule--helper.c:3121
-#: builtin/submodule--helper.c:3277
+#: builtin/submodule--helper.c:2984 builtin/submodule--helper.c:3238
+#: builtin/submodule--helper.c:3395
msgid "please make sure that the .gitmodules file is in the working tree"
msgstr ""
"Bitte stellen Sie sicher, dass sich die Datei .gitmodules im "
"Arbeitsverzeichnis befindet."
-#: builtin/submodule--helper.c:2921
+#: builtin/submodule--helper.c:3000
msgid "suppress output for setting url of a submodule"
msgstr "Ausgaben beim Setzen der URL eines Submoduls unterdrücken"
-#: builtin/submodule--helper.c:2925
+#: builtin/submodule--helper.c:3004
msgid "git submodule--helper set-url [--quiet] <path> <newurl>"
msgstr "git submodule--helper set-url [--quiet] <Pfad> <neue URL>"
-#: builtin/submodule--helper.c:2958
+#: builtin/submodule--helper.c:3037
msgid "set the default tracking branch to master"
msgstr "Standard-Tracking-Branch auf master setzen"
-#: builtin/submodule--helper.c:2960
+#: builtin/submodule--helper.c:3039
msgid "set the default tracking branch"
msgstr "Standard-Tracking-Branch setzen"
-#: builtin/submodule--helper.c:2964
+#: builtin/submodule--helper.c:3043
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:2965
+#: builtin/submodule--helper.c:3044
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:2972
+#: builtin/submodule--helper.c:3051
msgid "--branch or --default required"
msgstr "Option --branch oder --default erforderlich"
-#: builtin/submodule--helper.c:3038
+#: builtin/submodule--helper.c:3072 builtin/submodule--helper.c:3375
+msgid "print only error messages"
+msgstr "nur Fehlermeldungen ausgeben"
+
+#: builtin/submodule--helper.c:3073
+msgid "force creation"
+msgstr "erzwinge Erstellung"
+
+#: builtin/submodule--helper.c:3081
+msgid "show whether the branch would be created"
+msgstr "anzeigen, ob der Branch erzeugt werden würde"
+
+#: builtin/submodule--helper.c:3085
+msgid ""
+"git submodule--helper create-branch [-f|--force] [--create-reflog] [-q|--"
+"quiet] [-t|--track] [-n|--dry-run] <name> <start-oid> <start-name>"
+msgstr ""
+"git submodule--helper create-branch [-f|--force] [--create-reflog] [-q|--"
+"quiet] [-t|--track] [-n|--dry-run] <Name> <Start-oid> <Start-Name>"
+
+#: builtin/submodule--helper.c:3097
+#, c-format
+msgid "creating branch '%s'"
+msgstr "erstelle Branch '%s'"
+
+#: builtin/submodule--helper.c:3155
#, c-format
msgid "Adding existing repo at '%s' to the index\n"
msgstr "Füge existierendes Repository in '%s' dem Index hinzu\n"
-#: builtin/submodule--helper.c:3041
+#: builtin/submodule--helper.c:3158
#, c-format
msgid "'%s' already exists and is not a valid git repo"
msgstr "'%s' existiert bereits und ist kein gültiges Git-Repository"
-#: builtin/submodule--helper.c:3054
+#: builtin/submodule--helper.c:3171
#, c-format
msgid "A git directory for '%s' is found locally with remote(s):\n"
msgstr ""
"Ein Git-Verzeichnis für '%s' wurde lokal gefunden mit den Remote-"
"Repositories:\n"
-#: builtin/submodule--helper.c:3061
+#: builtin/submodule--helper.c:3178
#, c-format
msgid ""
"If you want to reuse this local git directory instead of cloning again from\n"
@@ -23765,54 +24300,50 @@ msgstr ""
"nicht das korrekte Repository ist oder Sie unsicher sind, was das bedeutet,\n"
"wählen Sie einen anderen Namen mit der Option '--name'."
-#: builtin/submodule--helper.c:3073
+#: builtin/submodule--helper.c:3190
#, c-format
msgid "Reactivating local git directory for submodule '%s'\n"
msgstr "Reaktiviere lokales Git-Verzeichnis für Submodul '%s'\n"
-#: builtin/submodule--helper.c:3110
+#: builtin/submodule--helper.c:3227
#, c-format
msgid "unable to checkout submodule '%s'"
msgstr "kann Submodul '%s' nicht auschecken"
-#: builtin/submodule--helper.c:3149
+#: builtin/submodule--helper.c:3266
#, c-format
msgid "Failed to add submodule '%s'"
msgstr "Hinzufügen von Submodul '%s' fehlgeschlagen"
-#: builtin/submodule--helper.c:3153 builtin/submodule--helper.c:3158
-#: builtin/submodule--helper.c:3166
+#: builtin/submodule--helper.c:3270 builtin/submodule--helper.c:3275
+#: builtin/submodule--helper.c:3283
#, c-format
msgid "Failed to register submodule '%s'"
msgstr "Fehler beim Registrieren von Submodul '%s'"
-#: builtin/submodule--helper.c:3222
+#: builtin/submodule--helper.c:3339
#, c-format
msgid "'%s' already exists in the index"
msgstr "'%s' existiert bereits im Index"
-#: builtin/submodule--helper.c:3225
+#: builtin/submodule--helper.c:3342
#, c-format
msgid "'%s' already exists in the index and is not a submodule"
msgstr "'%s' existiert bereits im Index und ist kein Submodul"
-#: builtin/submodule--helper.c:3254
+#: builtin/submodule--helper.c:3372
msgid "branch of repository to add as submodule"
msgstr "Branch des Repositories zum Hinzufügen als Submodul"
-#: builtin/submodule--helper.c:3255
+#: builtin/submodule--helper.c:3373
msgid "allow adding an otherwise ignored submodule path"
msgstr "das Hinzufügen eines andernfalls ignorierten Submodul-Pfads erlauben"
-#: builtin/submodule--helper.c:3257
-msgid "print only error messages"
-msgstr "nur Fehlermeldungen ausgeben"
-
-#: builtin/submodule--helper.c:3261
+#: builtin/submodule--helper.c:3379
msgid "borrow the objects from reference repositories"
msgstr "die Objekte von Referenz-Repositories ausleihen"
-#: builtin/submodule--helper.c:3263
+#: builtin/submodule--helper.c:3381
msgid ""
"sets the submodule’s name to the given string instead of defaulting to its "
"path"
@@ -23820,32 +24351,32 @@ msgstr ""
"legt den Namen des Submoduls auf die angegebene Zeichenkette fest, statt "
"standardmäßig dessen Pfad zu nehmen"
-#: builtin/submodule--helper.c:3270
+#: builtin/submodule--helper.c:3388
msgid "git submodule--helper add [<options>] [--] <repository> [<path>]"
msgstr "git submodule--helper add [<Optionen>] [--] <Repository> [<Pfad>]"
-#: builtin/submodule--helper.c:3298
+#: builtin/submodule--helper.c:3416
msgid "Relative path can only be used from the toplevel of the working tree"
msgstr ""
"Relative Pfade können nur von der obersten Ebene des Arbeitsverzeichnisses "
"benutzt werden."
-#: builtin/submodule--helper.c:3306
+#: builtin/submodule--helper.c:3425
#, c-format
msgid "repo URL: '%s' must be absolute or begin with ./|../"
msgstr "repo URL: '%s' muss absolut sein oder mit ./|../ beginnen"
-#: builtin/submodule--helper.c:3341
+#: builtin/submodule--helper.c:3460
#, c-format
msgid "'%s' is not a valid submodule name"
msgstr "'%s' ist kein gültiger Submodul-Name"
-#: builtin/submodule--helper.c:3405 git.c:452 git.c:726
+#: builtin/submodule--helper.c:3520 git.c:453 git.c:729
#, c-format
msgid "%s doesn't support --super-prefix"
msgstr "%s unterstützt kein --super-prefix"
-#: builtin/submodule--helper.c:3411
+#: builtin/submodule--helper.c:3526
#, c-format
msgid "'%s' is not a valid submodule--helper subcommand"
msgstr "'%s' ist kein gültiger Unterbefehl von submodule--helper"
@@ -23879,7 +24410,7 @@ msgstr "Grund"
msgid "reason of the update"
msgstr "Grund für die Aktualisierung"
-#: builtin/tag.c:25
+#: builtin/tag.c:26
msgid ""
"git tag [-a | -s | -u <key-id>] [-f] [-m <msg> | -F <file>]\n"
" <tagname> [<head>]"
@@ -23887,11 +24418,11 @@ msgstr ""
"git tag [-a | -s | -u <Schlüssel-ID>] [-f] [-m <Beschreibung> | -F <Datei>]\n"
" <Tagname> [<Commit>]"
-#: builtin/tag.c:27
+#: builtin/tag.c:28
msgid "git tag -d <tagname>..."
msgstr "git tag -d <Tagname>..."
-#: builtin/tag.c:28
+#: builtin/tag.c:29
msgid ""
"git tag -l [-n[<num>]] [--contains <commit>] [--no-contains <commit>] [--"
"points-at <object>]\n"
@@ -23903,21 +24434,21 @@ msgstr ""
" [--format=<format>] [--merged <Commit>] [--no-merged <Commit>] "
"[<Muster>...]"
-#: builtin/tag.c:30
+#: builtin/tag.c:31
msgid "git tag -v [--format=<format>] <tagname>..."
msgstr "git tag -v [--format=<Format>] <Tagname>..."
-#: builtin/tag.c:100
+#: builtin/tag.c:101
#, c-format
msgid "tag '%s' not found."
msgstr "Tag '%s' nicht gefunden."
-#: builtin/tag.c:135
+#: builtin/tag.c:136
#, c-format
msgid "Deleted tag '%s' (was %s)\n"
msgstr "Tag '%s' gelöscht (war %s)\n"
-#: builtin/tag.c:170
+#: builtin/tag.c:171
#, c-format
msgid ""
"\n"
@@ -23930,7 +24461,7 @@ msgstr ""
" %s\n"
"ein. Zeilen, die mit '%c' beginnen, werden ignoriert.\n"
-#: builtin/tag.c:174
+#: builtin/tag.c:175
#, c-format
msgid ""
"\n"
@@ -23945,11 +24476,11 @@ msgstr ""
"ein. Zeilen, die mit '%c' beginnen, werden behalten; Sie dürfen diese\n"
"selbst entfernen wenn Sie möchten.\n"
-#: builtin/tag.c:240
+#: builtin/tag.c:241
msgid "unable to sign the tag"
msgstr "konnte Tag nicht signieren"
-#: builtin/tag.c:258
+#: builtin/tag.c:259
#, c-format
msgid ""
"You have created a nested tag. The object referred to by your new tag is\n"
@@ -23963,115 +24494,119 @@ msgstr ""
"\n"
"\tgit tag -f %s %s^{}"
-#: builtin/tag.c:274
+#: builtin/tag.c:275
msgid "bad object type."
msgstr "ungültiger Objekt-Typ"
-#: builtin/tag.c:325
+#: builtin/tag.c:326
msgid "no tag message?"
msgstr "keine Tag-Beschreibung?"
-#: builtin/tag.c:332
+#: builtin/tag.c:333
#, c-format
msgid "The tag message has been left in %s\n"
msgstr "Die Tag-Beschreibung wurde in %s gelassen\n"
-#: builtin/tag.c:444
+#: builtin/tag.c:445
msgid "list tag names"
msgstr "Tagnamen auflisten"
-#: builtin/tag.c:446
+#: builtin/tag.c:447
msgid "print <n> lines of each tag message"
msgstr "<n> Zeilen jeder Tag-Beschreibung anzeigen"
-#: builtin/tag.c:448
+#: builtin/tag.c:449
msgid "delete tags"
msgstr "Tags löschen"
-#: builtin/tag.c:449
+#: builtin/tag.c:450
msgid "verify tags"
msgstr "Tags überprüfen"
-#: builtin/tag.c:451
+#: builtin/tag.c:452
msgid "Tag creation options"
msgstr "Optionen für Erstellung von Tags"
-#: builtin/tag.c:453
+#: builtin/tag.c:454
msgid "annotated tag, needs a message"
msgstr "annotiertes Tag, benötigt eine Beschreibung"
-#: builtin/tag.c:455
+#: builtin/tag.c:456
msgid "tag message"
msgstr "Tag-Beschreibung"
-#: builtin/tag.c:457
+#: builtin/tag.c:458
msgid "force edit of tag message"
msgstr "Bearbeitung der Tag-Beschreibung erzwingen"
-#: builtin/tag.c:458
+#: builtin/tag.c:459
msgid "annotated and GPG-signed tag"
msgstr "annotiertes und GPG-signiertes Tag"
-#: builtin/tag.c:461
+#: builtin/tag.c:462
msgid "use another key to sign the tag"
msgstr "einen anderen Schlüssel verwenden, um das Tag zu signieren"
-#: builtin/tag.c:462
+#: builtin/tag.c:463
msgid "replace the tag if exists"
msgstr "das Tag ersetzen, wenn es existiert"
-#: builtin/tag.c:463 builtin/update-ref.c:511
+#: builtin/tag.c:464 builtin/update-ref.c:511
msgid "create a reflog"
msgstr "Reflog erstellen"
-#: builtin/tag.c:465
+#: builtin/tag.c:466
msgid "Tag listing options"
msgstr "Optionen für Auflistung der Tags"
-#: builtin/tag.c:466
+#: builtin/tag.c:467
msgid "show tag list in columns"
msgstr "Liste der Tags in Spalten anzeigen"
-#: builtin/tag.c:467 builtin/tag.c:469
+#: builtin/tag.c:468 builtin/tag.c:470
msgid "print only tags that contain the commit"
msgstr "nur Tags ausgeben, die diesen Commit beinhalten"
-#: builtin/tag.c:468 builtin/tag.c:470
+#: builtin/tag.c:469 builtin/tag.c:471
msgid "print only tags that don't contain the commit"
msgstr "nur Tags ausgeben, die diesen Commit nicht enthalten"
-#: builtin/tag.c:471
+#: builtin/tag.c:472
msgid "print only tags that are merged"
msgstr "nur Tags ausgeben, die gemerged wurden"
-#: builtin/tag.c:472
+#: builtin/tag.c:473
msgid "print only tags that are not merged"
msgstr "nur Tags ausgeben, die nicht gemerged wurden"
-#: builtin/tag.c:476
+#: builtin/tag.c:477
msgid "print only tags of the object"
msgstr "nur Tags von dem Objekt ausgeben"
-#: builtin/tag.c:558
+#: builtin/tag.c:559
#, c-format
msgid "the '%s' option is only allowed in list mode"
msgstr "die Option '%s' ist nur im Listenmodus erlaubt"
-#: builtin/tag.c:597
+#: builtin/tag.c:598
#, c-format
msgid "'%s' is not a valid tag name."
msgstr "'%s' ist kein gültiger Tagname."
-#: builtin/tag.c:602
+#: builtin/tag.c:603
#, c-format
msgid "tag '%s' already exists"
msgstr "Tag '%s' existiert bereits"
-#: builtin/tag.c:633
+#: builtin/tag.c:634
#, c-format
msgid "Updated tag '%s' (was %s)\n"
msgstr "Tag '%s' aktualisiert (war %s)\n"
+#: builtin/unpack-objects.c:95
+msgid "pack exceeds maximum allowed size"
+msgstr "Paket überschreitet die maximal erlaubte Größe"
+
#: builtin/unpack-objects.c:504
msgid "Unpacking objects"
msgstr "Entpacke Objekte"
@@ -24139,167 +24674,167 @@ msgstr " OK"
msgid "git update-index [<options>] [--] [<file>...]"
msgstr "git update-index [<Optionen>] [--] [<Datei>...]"
-#: builtin/update-index.c:974
+#: builtin/update-index.c:993
msgid "continue refresh even when index needs update"
msgstr ""
"Aktualisierung fortsetzen, auch wenn der Index aktualisiert werden muss"
-#: builtin/update-index.c:977
+#: builtin/update-index.c:996
msgid "refresh: ignore submodules"
msgstr "Aktualisierung: ignoriert Submodule"
-#: builtin/update-index.c:980
+#: builtin/update-index.c:999
msgid "do not ignore new files"
msgstr "keine neuen Dateien ignorieren"
-#: builtin/update-index.c:982
+#: builtin/update-index.c:1001
msgid "let files replace directories and vice-versa"
msgstr "Dateien Verzeichnisse ersetzen lassen, und umgedreht"
-#: builtin/update-index.c:984
+#: builtin/update-index.c:1003
msgid "notice files missing from worktree"
msgstr "fehlende Dateien im Arbeitsverzeichnis beachten"
-#: builtin/update-index.c:986
+#: builtin/update-index.c:1005
msgid "refresh even if index contains unmerged entries"
msgstr ""
"aktualisieren, auch wenn der Index nicht zusammengeführte Einträge beinhaltet"
-#: builtin/update-index.c:989
+#: builtin/update-index.c:1008
msgid "refresh stat information"
msgstr "Dateiinformationen aktualisieren"
-#: builtin/update-index.c:993
+#: builtin/update-index.c:1012
msgid "like --refresh, but ignore assume-unchanged setting"
msgstr "wie --refresh, ignoriert aber \"assume-unchanged\" Einstellung"
-#: builtin/update-index.c:997
+#: builtin/update-index.c:1016
msgid "<mode>,<object>,<path>"
msgstr "<Modus>,<Objekt>,<Pfad>"
-#: builtin/update-index.c:998
+#: builtin/update-index.c:1017
msgid "add the specified entry to the index"
msgstr "den angegebenen Eintrag zum Commit vormerken"
-#: builtin/update-index.c:1008
+#: builtin/update-index.c:1027
msgid "mark files as \"not changing\""
msgstr "diese Datei immer als unverändert betrachten"
-#: builtin/update-index.c:1011
+#: builtin/update-index.c:1030
msgid "clear assumed-unchanged bit"
msgstr "\"assumed-unchanged\"-Bit löschen"
-#: builtin/update-index.c:1014
+#: builtin/update-index.c:1033
msgid "mark files as \"index-only\""
msgstr "Dateien als \"index-only\" markieren"
-#: builtin/update-index.c:1017
+#: builtin/update-index.c:1036
msgid "clear skip-worktree bit"
msgstr "\"skip-worktree\"-Bit löschen"
-#: builtin/update-index.c:1020
+#: builtin/update-index.c:1039
msgid "do not touch index-only entries"
msgstr "\"index-only\" Einträge überspringen"
-#: builtin/update-index.c:1022
+#: builtin/update-index.c:1041
msgid "add to index only; do not add content to object database"
msgstr ""
"die Änderungen nur zum Commit vormerken; Inhalt wird nicht der Objekt-"
"Datenbank hinzugefügt"
-#: builtin/update-index.c:1024
+#: builtin/update-index.c:1043
msgid "remove named paths even if present in worktree"
msgstr ""
"benannte Pfade löschen, auch wenn sie sich im Arbeitsverzeichnis befinden"
-#: builtin/update-index.c:1026
+#: builtin/update-index.c:1045
msgid "with --stdin: input lines are terminated by null bytes"
msgstr "mit --stdin: eingegebene Zeilen sind durch NUL-Bytes abgeschlossen"
-#: builtin/update-index.c:1028
+#: builtin/update-index.c:1047
msgid "read list of paths to be updated from standard input"
msgstr "Liste der zu aktualisierenden Pfade von der Standard-Eingabe lesen"
-#: builtin/update-index.c:1032
+#: builtin/update-index.c:1051
msgid "add entries from standard input to the index"
msgstr "Einträge von der Standard-Eingabe zum Commit vormerken"
-#: builtin/update-index.c:1036
+#: builtin/update-index.c:1055
msgid "repopulate stages #2 and #3 for the listed paths"
msgstr ""
"wiederholtes Einpflegen der Zustände #2 und #3 für die aufgelisteten Pfade"
-#: builtin/update-index.c:1040
+#: builtin/update-index.c:1059
msgid "only update entries that differ from HEAD"
msgstr "nur Einträge aktualisieren, die unterschiedlich zu HEAD sind"
-#: builtin/update-index.c:1044
+#: builtin/update-index.c:1063
msgid "ignore files missing from worktree"
msgstr "fehlende Dateien im Arbeitsverzeichnis ignorieren"
-#: builtin/update-index.c:1047
+#: builtin/update-index.c:1066
msgid "report actions to standard output"
msgstr "die Aktionen in der Standard-Ausgabe ausgeben"
-#: builtin/update-index.c:1049
+#: builtin/update-index.c:1068
msgid "(for porcelains) forget saved unresolved conflicts"
msgstr "(für Fremdprogramme) keine gespeicherten, nicht aufgelöste Konflikte"
-#: builtin/update-index.c:1053
+#: builtin/update-index.c:1072
msgid "write index in this format"
msgstr "Index-Datei in diesem Format schreiben"
-#: builtin/update-index.c:1055
+#: builtin/update-index.c:1074
msgid "enable or disable split index"
-msgstr "Splitting des Index aktivieren oder deaktivieren"
+msgstr "aufgeteilten Index aktivieren oder deaktivieren"
-#: builtin/update-index.c:1057
+#: builtin/update-index.c:1076
msgid "enable/disable untracked cache"
msgstr "Cache für unversionierte Dateien aktivieren oder deaktivieren"
-#: builtin/update-index.c:1059
+#: builtin/update-index.c:1078
msgid "test if the filesystem supports untracked cache"
msgstr ""
"prüfen, ob das Dateisystem einen Cache für unversionierte Dateien unterstützt"
-#: builtin/update-index.c:1061
+#: builtin/update-index.c:1080
msgid "enable untracked cache without testing the filesystem"
msgstr ""
"Cache für unversionierte Dateien ohne Prüfung des Dateisystems aktivieren"
-#: builtin/update-index.c:1063
+#: builtin/update-index.c:1082
msgid "write out the index even if is not flagged as changed"
msgstr "Index rausschreiben, auch wenn dieser nicht als geändert markiert ist"
-#: builtin/update-index.c:1065
+#: builtin/update-index.c:1084
msgid "enable or disable file system monitor"
msgstr "Dateisystem-Monitor aktivieren oder deaktivieren"
-#: builtin/update-index.c:1067
+#: builtin/update-index.c:1086
msgid "mark files as fsmonitor valid"
msgstr "Dateien als \"fsmonitor valid\" markieren"
-#: builtin/update-index.c:1070
+#: builtin/update-index.c:1089
msgid "clear fsmonitor valid bit"
msgstr "\"fsmonitor valid\"-Bit löschen"
-#: builtin/update-index.c:1173
+#: builtin/update-index.c:1195
msgid ""
"core.splitIndex is set to false; remove or change it, if you really want to "
"enable split index"
msgstr ""
"core.splitIndex ist auf 'false' gesetzt; entfernen oder ändern Sie dies,\n"
-"wenn sie wirklich das Splitting des Index aktivieren möchten"
+"wenn sie wirklich die Aufteilung des Index aktivieren möchten"
-#: builtin/update-index.c:1182
+#: builtin/update-index.c:1204
msgid ""
"core.splitIndex is set to true; remove or change it, if you really want to "
"disable split index"
msgstr ""
"core.splitIndex ist auf 'true' gesetzt; entfernen oder ändern Sie dies,\n"
-"wenn Sie wirklich das Splitting des Index deaktivieren möchten"
+"wenn Sie wirklich die Aufteilung des Index deaktivieren möchten"
-#: builtin/update-index.c:1194
+#: builtin/update-index.c:1216
msgid ""
"core.untrackedCache is set to true; remove or change it, if you really want "
"to disable the untracked cache"
@@ -24307,11 +24842,11 @@ msgstr ""
"core.untrackedCache ist auf 'true' gesetzt; entfernen oder ändern Sie dies,\n"
"wenn Sie wirklich den Cache für unversionierte Dateien deaktivieren möchten"
-#: builtin/update-index.c:1198
+#: builtin/update-index.c:1220
msgid "Untracked cache disabled"
msgstr "Cache für unversionierte Dateien deaktiviert"
-#: builtin/update-index.c:1206
+#: builtin/update-index.c:1228
msgid ""
"core.untrackedCache is set to false; remove or change it, if you really want "
"to enable the untracked cache"
@@ -24320,23 +24855,23 @@ msgstr ""
"dies,\n"
"wenn sie wirklich den Cache für unversionierte Dateien aktivieren möchten"
-#: builtin/update-index.c:1210
+#: builtin/update-index.c:1232
#, c-format
msgid "Untracked cache enabled for '%s'"
msgstr "Cache für unversionierte Dateien für '%s' aktiviert"
-#: builtin/update-index.c:1218
+#: builtin/update-index.c:1241
msgid "core.fsmonitor is unset; set it if you really want to enable fsmonitor"
msgstr ""
"core.fsmonitor nicht gesetzt; setzen Sie es, wenn Sie den Dateisystem-"
"Monitor\n"
"wirklich aktivieren möchten"
-#: builtin/update-index.c:1222
+#: builtin/update-index.c:1246
msgid "fsmonitor enabled"
msgstr "Dateisystem-Monitor aktiviert"
-#: builtin/update-index.c:1225
+#: builtin/update-index.c:1250
msgid ""
"core.fsmonitor is set; remove it if you really want to disable fsmonitor"
msgstr ""
@@ -24344,7 +24879,7 @@ msgstr ""
"Monitor\n"
"wirklich deaktivieren möchten."
-#: builtin/update-index.c:1229
+#: builtin/update-index.c:1254
msgid "fsmonitor disabled"
msgstr "Dateisystem-Monitor deaktiviert"
@@ -24377,10 +24912,6 @@ msgstr "Standard-Eingabe hat durch NUL-Zeichen abgeschlossene Argumente"
msgid "read updates from stdin"
msgstr "Aktualisierungen von der Standard-Eingabe lesen"
-#: builtin/update-server-info.c:7
-msgid "git update-server-info [--force]"
-msgstr "git update-server-info [--force]"
-
#: builtin/update-server-info.c:15
msgid "update the info files from scratch"
msgstr "die Informationsdateien von Grund auf aktualisieren"
@@ -24464,33 +24995,37 @@ msgid "git worktree remove [<options>] <worktree>"
msgstr "git worktree remove [<Optionen>] <Arbeitsverzeichnis>"
#: builtin/worktree.c:25
+msgid "git worktree repair [<path>...]"
+msgstr "git worktree repair [<Pfad>...]"
+
+#: builtin/worktree.c:26
msgid "git worktree unlock <path>"
msgstr "git worktree unlock <Pfad>"
-#: builtin/worktree.c:75
+#: builtin/worktree.c:76
#, c-format
msgid "Removing %s/%s: %s"
msgstr "Entferne %s/%s: %s"
-#: builtin/worktree.c:148
+#: builtin/worktree.c:149
msgid "report pruned working trees"
msgstr "entfernte Arbeitsverzeichnisse ausgeben"
-#: builtin/worktree.c:150
+#: builtin/worktree.c:151
msgid "expire working trees older than <time>"
msgstr "Arbeitsverzeichnisse älter als <Zeit> verfallen lassen"
-#: builtin/worktree.c:220
+#: builtin/worktree.c:221
#, c-format
msgid "'%s' already exists"
msgstr "'%s' existiert bereits"
-#: builtin/worktree.c:229
+#: builtin/worktree.c:230
#, c-format
msgid "unusable worktree destination '%s'"
msgstr "nicht nutzbares Ziel des Arbeitsverzeichnisses '%s'"
-#: builtin/worktree.c:234
+#: builtin/worktree.c:235
#, c-format
msgid ""
"'%s' is a missing but locked worktree;\n"
@@ -24500,7 +25035,7 @@ msgstr ""
"benutzen Sie '%s -f -f' zum Ãœberschreiben, oder 'unlock' und 'prune'\n"
"oder 'remove' zum Löschen"
-#: builtin/worktree.c:236
+#: builtin/worktree.c:237
#, c-format
msgid ""
"'%s' is a missing but already registered worktree;\n"
@@ -24510,137 +25045,159 @@ msgstr ""
"benutzen Sie '%s -f' zum Ãœberschreiben, oder 'prune' oder 'remove' zum\n"
"Löschen"
-#: builtin/worktree.c:287
+#: builtin/worktree.c:248
+#, c-format
+msgid "failed to copy '%s' to '%s'; sparse-checkout may not work correctly"
+msgstr ""
+"Fehler beim Kopieren von '%s' nach '%s'; partieller Checkout funktioniert "
+"möglicherweise nicht richtig"
+
+#: builtin/worktree.c:268
+#, c-format
+msgid "failed to copy worktree config from '%s' to '%s'"
+msgstr ""
+"Fehler beim Kopieren der Arbeitsverzeichniskonfiguration von '%s' nach '%s'"
+
+#: builtin/worktree.c:280 builtin/worktree.c:285
+#, c-format
+msgid "failed to unset '%s' in '%s'"
+msgstr "Fehler beim Aufheben von '%s' in '%s'"
+
+#: builtin/worktree.c:356
#, c-format
msgid "could not create directory of '%s'"
msgstr "Konnte Verzeichnis '%s' nicht erstellen."
-#: builtin/worktree.c:309
+#: builtin/worktree.c:378
msgid "initializing"
msgstr "initialisiere"
-#: builtin/worktree.c:420 builtin/worktree.c:426
+#: builtin/worktree.c:492 builtin/worktree.c:498
#, c-format
msgid "Preparing worktree (new branch '%s')"
msgstr "Bereite Arbeitsverzeichnis vor (neuer Branch '%s')"
-#: builtin/worktree.c:422
+#: builtin/worktree.c:494
#, 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:431
+#: builtin/worktree.c:503
#, c-format
msgid "Preparing worktree (checking out '%s')"
msgstr "Bereite Arbeitsverzeichnis vor (checke '%s' aus)"
-#: builtin/worktree.c:437
+#: builtin/worktree.c:509
#, c-format
msgid "Preparing worktree (detached HEAD %s)"
msgstr "Bereite Arbeitsverzeichnis vor (losgelöster HEAD %s)"
-#: builtin/worktree.c:482
+#: builtin/worktree.c:554
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:485
+#: builtin/worktree.c:557
msgid "create a new branch"
msgstr "neuen Branch erstellen"
-#: builtin/worktree.c:487
+#: builtin/worktree.c:559
msgid "create or reset a branch"
msgstr "Branch erstellen oder umsetzen"
-#: builtin/worktree.c:489
+#: builtin/worktree.c:561
msgid "populate the new working tree"
msgstr "das neue Arbeitsverzeichnis auschecken"
-#: builtin/worktree.c:490
+#: builtin/worktree.c:562
msgid "keep the new working tree locked"
msgstr "das neue Arbeitsverzeichnis gesperrt lassen"
-#: builtin/worktree.c:492 builtin/worktree.c:729
+#: builtin/worktree.c:564 builtin/worktree.c:809
msgid "reason for locking"
msgstr "Sperrgrund"
-#: builtin/worktree.c:495
+#: builtin/worktree.c:567
msgid "set up tracking mode (see git-branch(1))"
msgstr "Modus zum Folgen von Branches einstellen (siehe git-branch(1))"
-#: builtin/worktree.c:498
+#: builtin/worktree.c:570
msgid "try to match the new branch name with a remote-tracking branch"
msgstr ""
"versuchen, eine Ãœbereinstimmung des Branchnamens mit einem\n"
"Remote-Tracking-Branch herzustellen"
-#: builtin/worktree.c:512
+#: builtin/worktree.c:584
msgid "added with --lock"
msgstr "mit --lock hinzugefügt"
-#: builtin/worktree.c:574
+#: builtin/worktree.c:646
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:691
+#: builtin/worktree.c:766
msgid "show extended annotations and reasons, if available"
msgstr "erweiterte Anmerkungen und Gründe anzeigen, falls vorhanden"
-#: builtin/worktree.c:693
+#: builtin/worktree.c:768
msgid "add 'prunable' annotation to worktrees older than <time>"
msgstr ""
"'prunable'-Anmerkung zu Arbeitsverzeichnissen älter als <Zeit> hinzufügen"
-#: builtin/worktree.c:741 builtin/worktree.c:774 builtin/worktree.c:848
-#: builtin/worktree.c:972
+#: builtin/worktree.c:770
+msgid "terminate records with a NUL character"
+msgstr "Einträge mit NUL-Zeichen abschließen"
+
+#: builtin/worktree.c:821 builtin/worktree.c:854 builtin/worktree.c:928
+#: builtin/worktree.c:1052
#, c-format
msgid "'%s' is not a working tree"
msgstr "'%s' ist kein Arbeitsverzeichnis"
-#: builtin/worktree.c:743 builtin/worktree.c:776
+#: builtin/worktree.c:823 builtin/worktree.c:856
msgid "The main working tree cannot be locked or unlocked"
msgstr "Das Hauptarbeitsverzeichnis kann nicht gesperrt oder entsperrt werden."
-#: builtin/worktree.c:748
+#: builtin/worktree.c:828
#, c-format
msgid "'%s' is already locked, reason: %s"
msgstr "'%s' ist bereits gesperrt, Grund: %s"
-#: builtin/worktree.c:750
+#: builtin/worktree.c:830
#, c-format
msgid "'%s' is already locked"
msgstr "'%s' ist bereits gesperrt"
-#: builtin/worktree.c:778
+#: builtin/worktree.c:858
#, c-format
msgid "'%s' is not locked"
msgstr "'%s' ist nicht gesperrt"
-#: builtin/worktree.c:819
+#: builtin/worktree.c:899
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:827
+#: builtin/worktree.c:907
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:850 builtin/worktree.c:974
+#: builtin/worktree.c:930 builtin/worktree.c:1054
#, c-format
msgid "'%s' is a main working tree"
msgstr "'%s' ist ein Hauptarbeitsverzeichnis"
-#: builtin/worktree.c:855
+#: builtin/worktree.c:935
#, c-format
msgid "could not figure out destination name from '%s'"
msgstr "konnte Zielname aus '%s' nicht bestimmen"
-#: builtin/worktree.c:868
+#: builtin/worktree.c:948
#, c-format
msgid ""
"cannot move a locked working tree, lock reason: %s\n"
@@ -24650,7 +25207,7 @@ msgstr ""
"benutzen Sie 'move -f -f' zum Ãœberschreiben oder entsperren Sie zuerst\n"
"das Arbeitsverzeichnis"
-#: builtin/worktree.c:870
+#: builtin/worktree.c:950
msgid ""
"cannot move a locked working tree;\n"
"use 'move -f -f' to override or unlock first"
@@ -24659,40 +25216,40 @@ msgstr ""
"benutzen Sie 'move -f -f' zum Ãœberschreiben oder entsperren Sie zuerst\n"
"das Arbeitsverzeichnis"
-#: builtin/worktree.c:873
+#: builtin/worktree.c:953
#, c-format
msgid "validation failed, cannot move working tree: %s"
msgstr "Validierung fehlgeschlagen, kann Arbeitszeichnis nicht verschieben: %s"
-#: builtin/worktree.c:878
+#: builtin/worktree.c:958
#, c-format
msgid "failed to move '%s' to '%s'"
msgstr "Fehler beim Verschieben von '%s' nach '%s'"
-#: builtin/worktree.c:924
+#: builtin/worktree.c:1004
#, c-format
msgid "failed to run 'git status' on '%s'"
msgstr "Fehler beim Ausführen von 'git status' auf '%s'"
-#: builtin/worktree.c:928
+#: builtin/worktree.c:1008
#, 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:933
+#: builtin/worktree.c:1013
#, 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:956
+#: builtin/worktree.c:1036
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:979
+#: builtin/worktree.c:1059
#, c-format
msgid ""
"cannot remove a locked working tree, lock reason: %s\n"
@@ -24702,7 +25259,7 @@ msgstr ""
"Benutzen Sie 'remove -f -f' zum Ãœberschreiben oder entsperren Sie zuerst\n"
"das Arbeitsverzeichnis."
-#: builtin/worktree.c:981
+#: builtin/worktree.c:1061
msgid ""
"cannot remove a locked working tree;\n"
"use 'remove -f -f' to override or unlock first"
@@ -24711,17 +25268,17 @@ msgstr ""
"benutzen Sie 'remove -f -f' zum Ãœberschreiben oder entsperren Sie zuerst\n"
"das Arbeitsverzeichnis"
-#: builtin/worktree.c:984
+#: builtin/worktree.c:1064
#, c-format
msgid "validation failed, cannot remove working tree: %s"
msgstr "Validierung fehlgeschlagen, kann Arbeitsverzeichnis nicht löschen: %s"
-#: builtin/worktree.c:1008
+#: builtin/worktree.c:1088
#, c-format
msgid "repair: %s: %s"
msgstr "repariere: %s: %s"
-#: builtin/worktree.c:1011
+#: builtin/worktree.c:1091
#, c-format
msgid "error: %s: %s"
msgstr "Fehler: %s: %s"
@@ -24827,29 +25384,29 @@ msgstr "leerer Alias für %s"
msgid "recursive alias: %s"
msgstr "rekursiver Alias: %s"
-#: git.c:479
+#: git.c:480
msgid "write failure on standard output"
msgstr "Fehler beim Schreiben in die Standard-Ausgabe."
-#: git.c:481
+#: git.c:482
msgid "unknown write failure on standard output"
msgstr "Unbekannter Fehler beim Schreiben in die Standard-Ausgabe."
-#: git.c:483
+#: git.c:484
msgid "close failed on standard output"
msgstr "Fehler beim Schließen der Standard-Ausgabe."
-#: git.c:835
+#: git.c:838
#, c-format
msgid "alias loop detected: expansion of '%s' does not terminate:%s"
msgstr "Alias-Schleife erkannt: Erweiterung von '%s' schließt nicht ab:%s"
-#: git.c:885
+#: git.c:888
#, c-format
msgid "cannot handle %s as a builtin"
msgstr "Kann %s nicht als eingebauten Befehl behandeln."
-#: git.c:898
+#: git.c:901
#, c-format
msgid ""
"usage: %s\n"
@@ -24858,12 +25415,12 @@ msgstr ""
"Verwendung: %s\n"
"\n"
-#: git.c:918
+#: git.c:921
#, c-format
msgid "expansion of alias '%s' failed; '%s' is not a git command\n"
msgstr "Erweiterung von Alias '%s' fehlgeschlagen; '%s' ist kein Git-Befehl\n"
-#: git.c:930
+#: git.c:933
#, c-format
msgid "failed to run command '%s': %s\n"
msgstr "Fehler beim Ausführen von Befehl '%s': %s\n"
@@ -25020,143 +25577,143 @@ msgstr ""
" gefragt nach: %s\n"
" umgeleitet: %s"
-#: remote-curl.c:183
+#: remote-curl.c:184
#, c-format
msgid "invalid quoting in push-option value: '%s'"
msgstr "Ungültiges Quoting beim \"push-option\"-Wert: '%s'"
-#: remote-curl.c:304
+#: remote-curl.c:308
#, 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:405
+#: remote-curl.c:409
msgid "invalid server response; expected service, got flush packet"
msgstr "ungültige Antwort des Servers; Service erwartet, Flush-Paket bekommen"
-#: remote-curl.c:436
+#: remote-curl.c:440
#, c-format
msgid "invalid server response; got '%s'"
msgstr "ungültige Serverantwort; '%s' bekommen"
-#: remote-curl.c:496
+#: remote-curl.c:500
#, c-format
msgid "repository '%s' not found"
msgstr "Repository '%s' nicht gefunden"
-#: remote-curl.c:500
+#: remote-curl.c:504
#, c-format
msgid "Authentication failed for '%s'"
msgstr "Authentifizierung fehlgeschlagen für '%s'"
-#: remote-curl.c:504
+#: remote-curl.c:508
#, c-format
msgid "unable to access '%s' with http.pinnedPubkey configuration: %s"
msgstr ""
"auf '%s' kann nicht mit Konfiguration http.pinnedPubkey zugegriffen werden: "
"%s"
-#: remote-curl.c:508
+#: remote-curl.c:512
#, c-format
msgid "unable to access '%s': %s"
msgstr "konnte nicht auf '%s' zugreifen: %s"
-#: remote-curl.c:514
+#: remote-curl.c:518
#, c-format
msgid "redirecting to %s"
msgstr "Umleitung nach %s"
-#: remote-curl.c:645
+#: remote-curl.c:649
msgid "shouldn't have EOF when not gentle on EOF"
msgstr "sollte kein EOF haben, wenn nicht behutsam mit EOF"
-#: remote-curl.c:657
+#: remote-curl.c:661
msgid "remote server sent unexpected response end packet"
msgstr "Remote Server sendete unerwartetes Antwort-Endpaket"
-#: remote-curl.c:726
+#: remote-curl.c:730
msgid "unable to rewind rpc post data - try increasing http.postBuffer"
msgstr ""
"konnte nicht RPC-POST-Daten zurückspulen - Versuchen Sie http.postBuffer zu "
"erhöhen"
-#: remote-curl.c:755
+#: remote-curl.c:759
#, c-format
msgid "remote-curl: bad line length character: %.4s"
msgstr "remote-curl: ungültiges Zeichen für Zeilenlänge: %.4s"
-#: remote-curl.c:757
+#: remote-curl.c:761
msgid "remote-curl: unexpected response end packet"
msgstr "remote-curl: unerwartetes Antwort-Endpaket"
-#: remote-curl.c:833
+#: remote-curl.c:837
#, c-format
msgid "RPC failed; %s"
msgstr "RPC fehlgeschlagen; %s"
-#: remote-curl.c:873
+#: remote-curl.c:877
msgid "cannot handle pushes this big"
msgstr "kann solche großen Übertragungen nicht verarbeiten"
-#: remote-curl.c:986
+#: remote-curl.c:990
#, c-format
msgid "cannot deflate request; zlib deflate error %d"
msgstr "kann Request nicht komprimieren; \"zlib deflate\"-Fehler %d"
-#: remote-curl.c:990
+#: remote-curl.c:994
#, c-format
msgid "cannot deflate request; zlib end error %d"
msgstr "kann Request nicht komprimieren; \"zlib end\"-Fehler %d"
-#: remote-curl.c:1040
+#: remote-curl.c:1044
#, c-format
msgid "%d bytes of length header were received"
msgstr "%d Bytes des Längen-Headers wurden empfangen"
-#: remote-curl.c:1042
+#: remote-curl.c:1046
#, c-format
msgid "%d bytes of body are still expected"
msgstr "%d Bytes des Bodys werden noch erwartet"
-#: remote-curl.c:1131
+#: remote-curl.c:1135
msgid "dumb http transport does not support shallow capabilities"
msgstr "Dumb HTTP-Transport unterstützt keine shallow-Funktionen"
-#: remote-curl.c:1146
+#: remote-curl.c:1150
msgid "fetch failed."
msgstr "\"fetch\" fehlgeschlagen."
-#: remote-curl.c:1192
+#: remote-curl.c:1198
msgid "cannot fetch by sha1 over smart http"
msgstr "kann SHA-1 nicht über Smart-HTTP anfordern"
-#: remote-curl.c:1236 remote-curl.c:1242
+#: remote-curl.c:1242 remote-curl.c:1248
#, c-format
msgid "protocol error: expected sha/ref, got '%s'"
msgstr "Protokollfehler: SHA-1/Referenz erwartet, '%s' bekommen"
-#: remote-curl.c:1254 remote-curl.c:1372
+#: remote-curl.c:1260 remote-curl.c:1378
#, c-format
msgid "http transport does not support %s"
msgstr "HTTP-Transport unterstützt nicht %s"
-#: remote-curl.c:1290
+#: remote-curl.c:1296
msgid "git-http-push failed"
msgstr "\"git-http-push\" fehlgeschlagen"
-#: remote-curl.c:1478
+#: remote-curl.c:1485
msgid "remote-curl: usage: git remote-curl <remote> [<url>]"
msgstr "remote-curl: Verwendung: git remote-curl <Remote-Repository> [<URL>]"
-#: remote-curl.c:1510
+#: remote-curl.c:1517
msgid "remote-curl: error reading command stream from git"
msgstr "remote-curl: Fehler beim Lesen des Kommando-Streams von Git"
-#: remote-curl.c:1517
+#: remote-curl.c:1524
msgid "remote-curl: fetch attempted without a local repo"
msgstr "remote-curl: \"fetch\" ohne lokales Repository versucht"
-#: remote-curl.c:1558
+#: remote-curl.c:1565
#, c-format
msgid "remote-curl: unknown command '%s' from git"
msgstr "remote-curl: Unbekannter Befehl '%s' von Git"
@@ -25169,123 +25726,123 @@ msgstr "Arbeitsverzeichnis benötigt"
msgid "could not find enlistment root"
msgstr "konnte Root-Verzeichnis für Eintragungen nicht finden"
-#: contrib/scalar/scalar.c:89 contrib/scalar/scalar.c:351
-#: contrib/scalar/scalar.c:436 contrib/scalar/scalar.c:579
+#: contrib/scalar/scalar.c:89 contrib/scalar/scalar.c:350
+#: contrib/scalar/scalar.c:435 contrib/scalar/scalar.c:578
#, c-format
msgid "could not switch to '%s'"
msgstr "konnte nicht zu '%s' wechseln"
-#: contrib/scalar/scalar.c:180
+#: contrib/scalar/scalar.c:179
#, c-format
msgid "could not configure %s=%s"
msgstr "konnte %s=%s nicht konfigurieren"
-#: contrib/scalar/scalar.c:198
+#: contrib/scalar/scalar.c:197
msgid "could not configure log.excludeDecoration"
msgstr "konnte log.excludeDecoration nicht konfigurieren"
-#: contrib/scalar/scalar.c:219
+#: contrib/scalar/scalar.c:218
msgid "Scalar enlistments require a worktree"
msgstr "Skalare Eintragungen erfordern ein Arbeitsverzeichnis"
-#: contrib/scalar/scalar.c:311
+#: contrib/scalar/scalar.c:310
#, c-format
msgid "remote HEAD is not a branch: '%.*s'"
msgstr "externer HEAD ist kein Branch: '%.*s'"
-#: contrib/scalar/scalar.c:317
+#: contrib/scalar/scalar.c:316
msgid "failed to get default branch name from remote; using local default"
msgstr ""
"Fehler beim Abfragen des Standard-Branchnamens vom Remote-Repository; nutze "
"lokalen Standardwert"
-#: contrib/scalar/scalar.c:330
+#: contrib/scalar/scalar.c:329
msgid "failed to get default branch name"
msgstr "Fehler beim Abfragen des Standard-Branchnamens"
-#: contrib/scalar/scalar.c:341
+#: contrib/scalar/scalar.c:340
msgid "failed to unregister repository"
msgstr "Fehler beim Austragen des Repositories"
-#: contrib/scalar/scalar.c:356
+#: contrib/scalar/scalar.c:355
msgid "failed to delete enlistment directory"
msgstr "Fehler beim Löschen des Eintragungs-Verzeichnisses"
-#: contrib/scalar/scalar.c:376
+#: contrib/scalar/scalar.c:375
msgid "branch to checkout after clone"
msgstr "Branch, der nach dem Klonen ausgecheckt werden soll"
-#: contrib/scalar/scalar.c:378
+#: contrib/scalar/scalar.c:377
msgid "when cloning, create full working directory"
msgstr "vollständiges Arbeitsverzeichnis beim Klonen erstellen"
-#: contrib/scalar/scalar.c:380
+#: contrib/scalar/scalar.c:379
msgid "only download metadata for the branch that will be checked out"
msgstr "lade nur Metadaten des Branches herunter, der ausgecheckt wird"
-#: contrib/scalar/scalar.c:385
+#: contrib/scalar/scalar.c:384
msgid "scalar clone [<options>] [--] <repo> [<dir>]"
msgstr "scalar clone [<Optionen>] [--] <Repository> [<Verzeichnis>]"
-#: contrib/scalar/scalar.c:410
+#: contrib/scalar/scalar.c:409
#, c-format
msgid "cannot deduce worktree name from '%s'"
msgstr "konnte Name für Arbeitsverzeichnis nicht von '%s' ableiten"
-#: contrib/scalar/scalar.c:419
+#: contrib/scalar/scalar.c:418
#, c-format
msgid "directory '%s' exists already"
msgstr "Verzeichnis '%s' existiert bereits"
-#: contrib/scalar/scalar.c:446
+#: contrib/scalar/scalar.c:445
#, c-format
msgid "failed to get default branch for '%s'"
msgstr "Fehler beim Abfragen des Default-Branches für '%s'"
-#: contrib/scalar/scalar.c:457
+#: contrib/scalar/scalar.c:456
#, c-format
msgid "could not configure remote in '%s'"
msgstr "konnte Remote-Repository in '%s' nicht konfigurieren"
-#: contrib/scalar/scalar.c:466
+#: contrib/scalar/scalar.c:465
#, c-format
msgid "could not configure '%s'"
msgstr "konnte '%s' nicht konfigurieren"
-#: contrib/scalar/scalar.c:469
+#: contrib/scalar/scalar.c:468
msgid "partial clone failed; attempting full clone"
msgstr "partielles Klonen fehlgeschlagen; versuche vollständiges Klonen"
-#: contrib/scalar/scalar.c:473
+#: contrib/scalar/scalar.c:472
msgid "could not configure for full clone"
msgstr "konnte nicht für vollständiges Klonen konfigurieren"
-#: contrib/scalar/scalar.c:505
+#: contrib/scalar/scalar.c:504
msgid "`scalar list` does not take arguments"
msgstr "`scalar list` akzeptiert keine Argumente"
-#: contrib/scalar/scalar.c:518
+#: contrib/scalar/scalar.c:517
msgid "scalar register [<enlistment>]"
msgstr "scalar register [<Eintragung>]"
-#: contrib/scalar/scalar.c:545
+#: contrib/scalar/scalar.c:544
msgid "reconfigure all registered enlistments"
msgstr "alle registrierten Eintragungen neu konfigurieren"
-#: contrib/scalar/scalar.c:549
+#: contrib/scalar/scalar.c:548
msgid "scalar reconfigure [--all | <enlistment>]"
msgstr "scalar reconfigure [--all | <Eintragung>]"
-#: contrib/scalar/scalar.c:567
+#: contrib/scalar/scalar.c:566
msgid "--all or <enlistment>, but not both"
msgstr "--all oder <Eintragung>, aber nicht beides"
-#: contrib/scalar/scalar.c:582
+#: contrib/scalar/scalar.c:581
#, c-format
msgid "git repository gone in '%s'"
msgstr "Git-Repository entfernt in '%s'"
-#: contrib/scalar/scalar.c:622
+#: contrib/scalar/scalar.c:621
msgid ""
"scalar run <task> [<enlistment>]\n"
"Tasks:\n"
@@ -25293,42 +25850,55 @@ msgstr ""
"scalar run <Aufgabe> [<Eintragung>]\n"
"Aufgaben:\n"
-#: contrib/scalar/scalar.c:640
+#: contrib/scalar/scalar.c:639
#, c-format
msgid "no such task: '%s'"
msgstr "Aufgabe nicht gefunden: '%s'"
-#: contrib/scalar/scalar.c:690
+#: contrib/scalar/scalar.c:689
msgid "scalar unregister [<enlistment>]"
msgstr "scalar unregister [<Eintragung>]"
-#: contrib/scalar/scalar.c:737
+#: contrib/scalar/scalar.c:736
msgid "scalar delete <enlistment>"
msgstr "scalar delete <Eintragung>"
-#: contrib/scalar/scalar.c:752
+#: contrib/scalar/scalar.c:751
msgid "refusing to delete current working directory"
msgstr "Löschen des aktuellen Arbeitsverzeichnisses wurde verweigert"
-#: contrib/scalar/scalar.c:767
+#: contrib/scalar/scalar.c:766
msgid "include Git version"
msgstr "Git-Version einbeziehen"
-#: contrib/scalar/scalar.c:769
+#: contrib/scalar/scalar.c:768
msgid "include Git's build options"
msgstr "Build-Optionen von Git einbeziehen"
-#: contrib/scalar/scalar.c:773
+#: contrib/scalar/scalar.c:772
msgid "scalar verbose [-v | --verbose] [--build-options]"
msgstr "scalar verbose [-v | --verbose] [--build-options]"
+#: contrib/scalar/scalar.c:813
+msgid "-C requires a <directory>"
+msgstr "-C erfordert ein <Verzeichnis>"
+
+#: contrib/scalar/scalar.c:815
+#, c-format
+msgid "could not change to '%s'"
+msgstr "konnte nicht zu '%s' wechseln"
+
#: contrib/scalar/scalar.c:821
+msgid "-c requires a <key>=<value> argument"
+msgstr "-c benötigt ein <Schlüssel>=<Wert> Argument"
+
+#: contrib/scalar/scalar.c:839
msgid ""
-"scalar <command> [<options>]\n"
+"scalar [-C <directory>] [-c <key>=<value>] <command> [<options>]\n"
"\n"
"Commands:\n"
msgstr ""
-"scalar <Befehl> [<Optionen>]\n"
+"scalar [-C <Verzeichnis>] [-c <Schlüssel>=<Wert>] <Befehl> [<Optionen>]\n"
"\n"
"Befehle:\n"
@@ -25340,44 +25910,44 @@ msgstr "keine Compiler-Information verfügbar\n"
msgid "no libc information available\n"
msgstr "keine libc Informationen verfügbar\n"
-#: list-objects-filter-options.h:94
+#: list-objects-filter-options.h:126
msgid "args"
msgstr "Argumente"
-#: list-objects-filter-options.h:95
+#: list-objects-filter-options.h:127
msgid "object filtering"
msgstr "Filtern nach Objekten"
-#: parse-options.h:183
+#: parse-options.h:188
msgid "expiry-date"
msgstr "Verfallsdatum"
-#: parse-options.h:197
+#: parse-options.h:202
msgid "no-op (backward compatibility)"
msgstr "Kein Effekt (Rückwärtskompatibilität)"
-#: parse-options.h:310
+#: parse-options.h:341
msgid "be more verbose"
msgstr "erweiterte Ausgaben"
-#: parse-options.h:312
+#: parse-options.h:343
msgid "be more quiet"
msgstr "weniger Ausgaben"
-#: parse-options.h:318
+#: parse-options.h:349
msgid "use <n> digits to display object names"
msgstr "benutze <Anzahl> Ziffern zur Anzeige von Objektnamen"
-#: parse-options.h:337
+#: parse-options.h:368
msgid "how to strip spaces and #comments from message"
msgstr ""
"wie Leerzeichen und #Kommentare von der Beschreibung getrennt werden sollen"
-#: parse-options.h:338
+#: parse-options.h:369
msgid "read pathspec from file"
msgstr "Pfadspezifikation aus einer Datei lesen"
-#: parse-options.h:339
+#: parse-options.h:370
msgid ""
"with --pathspec-from-file, pathspec elements are separated with NUL character"
msgstr ""
@@ -25645,463 +26215,469 @@ msgid "Display help information about Git"
msgstr "Hilfsinformationen über Git anzeigen"
#: command-list.h:108
+msgid "Run git hooks"
+msgstr "Git-Hooks ausführen"
+
+#: command-list.h:109
msgid "Server side implementation of Git over HTTP"
msgstr "serverseitige Implementierung von Git über HTTP"
-#: command-list.h:109
+#: command-list.h:110
msgid "Download from a remote Git repository via HTTP"
msgstr "von einem Remote-Git-Repository über HTTP herunterladen"
-#: command-list.h:110
+#: command-list.h:111
msgid "Push objects over HTTP/DAV to another repository"
msgstr "Objekte über HTTP/DAV zu einem anderen Repository übertragen"
-#: command-list.h:111
+#: command-list.h:112
msgid "Send a collection of patches from stdin to an IMAP folder"
msgstr ""
"eine Sammlung von Patches von der Standard-Eingabe zu einem IMAP-Ordner "
"senden"
-#: command-list.h:112
+#: command-list.h:113
msgid "Build pack index file for an existing packed archive"
msgstr "Pack-Index-Datei für ein existierendes gepacktes Archiv erzeugen"
-#: command-list.h:113
+#: command-list.h:114
msgid "Create an empty Git repository or reinitialize an existing one"
msgstr ""
"ein leeres Git-Repository erstellen oder ein bestehendes neuinitialisieren"
-#: command-list.h:114
+#: command-list.h:115
msgid "Instantly browse your working repository in gitweb"
msgstr "Ihr aktuelles Repository sofort in gitweb betrachten"
-#: command-list.h:115
+#: command-list.h:116
msgid "Add or parse structured information in commit messages"
msgstr ""
"Strukturierte Informationen in Commit-Beschreibungen hinzufügen oder parsen"
-#: command-list.h:116
+#: command-list.h:117
msgid "Show commit logs"
msgstr "Commit-Historie anzeigen"
-#: command-list.h:117
+#: command-list.h:118
msgid "Show information about files in the index and the working tree"
msgstr ""
"Informationen über Dateien in dem Index und im Arbeitsverzeichnis anzeigen"
-#: command-list.h:118
+#: command-list.h:119
msgid "List references in a remote repository"
msgstr "Referenzen in einem Remote-Repository auflisten"
-#: command-list.h:119
+#: command-list.h:120
msgid "List the contents of a tree object"
msgstr "Inhalte eines Tree-Objektes auflisten"
-#: command-list.h:120
+#: command-list.h:121
msgid "Extracts patch and authorship from a single e-mail message"
msgstr ""
"Patch und Urheberschaft von einer einzelnen E-Mail-Nachricht extrahieren"
-#: command-list.h:121
+#: command-list.h:122
msgid "Simple UNIX mbox splitter program"
msgstr "einfaches UNIX mbox Splitter-Programm"
-#: command-list.h:122
+#: command-list.h:123
msgid "Run tasks to optimize Git repository data"
msgstr "Aufgaben ausführen, um Git-Repository-Daten zu optimieren"
-#: command-list.h:123
+#: command-list.h:124
msgid "Join two or more development histories together"
msgstr "zwei oder mehr Entwicklungszweige zusammenführen"
-#: command-list.h:124
+#: command-list.h:125
msgid "Find as good common ancestors as possible for a merge"
msgstr "möglichst besten gemeinsamen Vorgänger-Commit für einen Merge finden"
-#: command-list.h:125
+#: command-list.h:126
msgid "Run a three-way file merge"
msgstr "einen 3-Wege-Datei-Merge ausführen"
-#: command-list.h:126
+#: command-list.h:127
msgid "Run a merge for files needing merging"
msgstr "einen Merge für zusammenzuführende Dateien ausführen"
-#: command-list.h:127
+#: command-list.h:128
msgid "The standard helper program to use with git-merge-index"
msgstr "das Standard-Hilfsprogramm für die Verwendung mit git-merge-index"
-#: command-list.h:128
+#: command-list.h:129
msgid "Show three-way merge without touching index"
msgstr "3-Wege-Merge anzeigen ohne den Index zu verändern"
-#: command-list.h:129
+#: command-list.h:130
msgid "Run merge conflict resolution tools to resolve merge conflicts"
msgstr ""
"Ausführen von Tools zur Auflösung von Merge-Konflikten zur Behebung dieser"
-#: command-list.h:130
+#: command-list.h:131
msgid "Creates a tag object with extra validation"
msgstr "Erstellt ein Tag-Objekt mit zusätzlicher Validierung"
-#: command-list.h:131
+#: command-list.h:132
msgid "Build a tree-object from ls-tree formatted text"
msgstr "Tree-Objekt aus ls-tree formattiertem Text erzeugen"
-#: command-list.h:132
+#: command-list.h:133
msgid "Write and verify multi-pack-indexes"
-msgstr "multi-pack-indexes schreiben und überprüfen"
+msgstr "Multi-Pack-Indexe schreiben und überprüfen"
-#: command-list.h:133
+#: command-list.h:134
msgid "Move or rename a file, a directory, or a symlink"
msgstr ""
"eine Datei, ein Verzeichnis, oder eine symbolische Verknüpfung verschieben "
"oder umbenennen"
-#: command-list.h:134
+#: command-list.h:135
msgid "Find symbolic names for given revs"
msgstr "symbolische Namen für die gegebenen Commits finden"
-#: command-list.h:135
+#: command-list.h:136
msgid "Add or inspect object notes"
msgstr "Objekt-Notizen hinzufügen oder überprüfen"
-#: command-list.h:136
+#: command-list.h:137
msgid "Import from and submit to Perforce repositories"
msgstr "von Perforce Repositories importieren und nach diese senden"
-#: command-list.h:137
+#: command-list.h:138
msgid "Create a packed archive of objects"
msgstr "ein gepacktes Archiv von Objekten erstellen"
-#: command-list.h:138
+#: command-list.h:139
msgid "Find redundant pack files"
msgstr "redundante Paketdateien finden"
-#: command-list.h:139
+#: command-list.h:140
msgid "Pack heads and tags for efficient repository access"
msgstr "Branches und Tags für effizienten Zugriff auf das Repository packen"
-#: command-list.h:140
+#: command-list.h:141
msgid "Compute unique ID for a patch"
msgstr "eindeutige ID für einen Patch berechnen"
-#: command-list.h:141
+#: command-list.h:142
msgid "Prune all unreachable objects from the object database"
msgstr "alle nicht erreichbaren Objekte von der Objektdatenbank entfernen"
-#: command-list.h:142
+#: command-list.h:143
msgid "Remove extra objects that are already in pack files"
msgstr ""
"zusätzliche Objekte, die sich bereits in Paketdateien befinden, entfernen"
-#: command-list.h:143
+#: command-list.h:144
msgid "Fetch from and integrate with another repository or a local branch"
msgstr ""
"Objekte von einem externen Repository anfordern und sie mit einem anderen "
"Repository oder einem lokalen Branch zusammenführen"
-#: command-list.h:144
+#: command-list.h:145
msgid "Update remote refs along with associated objects"
msgstr "Remote-Referenzen mitsamt den verbundenen Objekten aktualisieren"
-#: command-list.h:145
+#: command-list.h:146
msgid "Applies a quilt patchset onto the current branch"
msgstr "Patches aus quilt auf aktuellen Branch anwenden"
-#: command-list.h:146
+#: command-list.h:147
msgid "Compare two commit ranges (e.g. two versions of a branch)"
msgstr "zwei Commit-Bereiche vergleichen (zwei Versionen eines Branches)"
-#: command-list.h:147
+#: command-list.h:148
msgid "Reads tree information into the index"
msgstr "Verzeichnisinformationen in den Index einlesen"
-#: command-list.h:148
+#: command-list.h:149
msgid "Reapply commits on top of another base tip"
msgstr "Wiederholtes Anwenden von Commits auf anderem Basis-Commit"
-#: command-list.h:149
+#: command-list.h:150
msgid "Receive what is pushed into the repository"
msgstr "Empfangen was in das Repository übertragen wurde"
-#: command-list.h:150
+#: command-list.h:151
msgid "Manage reflog information"
msgstr "Reflog Informationen verwalten"
-#: command-list.h:151
+#: command-list.h:152
msgid "Manage set of tracked repositories"
msgstr "Menge von hinterlegten Repositories verwalten"
-#: command-list.h:152
+#: command-list.h:153
msgid "Pack unpacked objects in a repository"
msgstr "ungepackte Objekte in einem Repository packen"
-#: command-list.h:153
+#: command-list.h:154
msgid "Create, list, delete refs to replace objects"
msgstr "Referenzen für ersetzende Objekte erstellen, auflisten, löschen"
-#: command-list.h:154
+#: command-list.h:155
msgid "Generates a summary of pending changes"
msgstr "eine Übersicht über ausstehende Änderungen generieren"
-#: command-list.h:155
+#: command-list.h:156
msgid "Reuse recorded resolution of conflicted merges"
msgstr "aufgezeichnete Auflösung von Merge-Konflikten wiederverwenden"
-#: command-list.h:156
+#: command-list.h:157
msgid "Reset current HEAD to the specified state"
msgstr "aktuellen HEAD zu einem spezifizierten Zustand setzen"
-#: command-list.h:157
+#: command-list.h:158
msgid "Restore working tree files"
msgstr "Dateien im Arbeitsverzeichnis wiederherstellen"
-#: command-list.h:158
+#: command-list.h:159
msgid "Lists commit objects in reverse chronological order"
msgstr "Commit-Objekte in umgekehrter chronologischer Ordnung auflisten"
-#: command-list.h:159
+#: command-list.h:160
msgid "Pick out and massage parameters"
msgstr "Parameter herauspicken und ändern"
-#: command-list.h:160
+#: command-list.h:161
msgid "Revert some existing commits"
msgstr "einige bestehende Commits rückgängig machen"
-#: command-list.h:161
+#: command-list.h:162
msgid "Remove files from the working tree and from the index"
msgstr "Dateien im Arbeitsverzeichnis und vom Index löschen"
-#: command-list.h:162
+#: command-list.h:163
msgid "Send a collection of patches as emails"
msgstr "eine Sammlung von Patches als E-Mails versenden"
-#: command-list.h:163
+#: command-list.h:164
msgid "Push objects over Git protocol to another repository"
msgstr "Objekte über das Git Protokoll zu einem anderen Repository übertragen"
-#: command-list.h:164
+#: command-list.h:165
msgid "Git's i18n setup code for shell scripts"
msgstr "Gits i18n-Konfigurationscode für Shell-Skripte"
-#: command-list.h:165
+#: command-list.h:166
msgid "Common Git shell script setup code"
msgstr "allgemeiner Git Shell-Skript Konfigurationscode"
-#: command-list.h:166
+#: command-list.h:167
msgid "Restricted login shell for Git-only SSH access"
msgstr "Login-Shell beschränkt für Nur-Git SSH-Zugriff"
-#: command-list.h:167
+#: command-list.h:168
msgid "Summarize 'git log' output"
msgstr "Ausgabe von 'git log' zusammenfassen"
-#: command-list.h:168
+#: command-list.h:169
msgid "Show various types of objects"
msgstr "verschiedene Arten von Objekten anzeigen"
-#: command-list.h:169
+#: command-list.h:170
msgid "Show branches and their commits"
msgstr "Branches und ihre Commits ausgeben"
-#: command-list.h:170
+#: command-list.h:171
msgid "Show packed archive index"
msgstr "gepackten Archiv-Index anzeigen"
-#: command-list.h:171
+#: command-list.h:172
msgid "List references in a local repository"
msgstr "Referenzen in einem lokales Repository auflisten"
-#: command-list.h:172
-msgid "Initialize and modify the sparse-checkout"
-msgstr "Initialisiere und verändere den partiellen Checkout"
-
#: command-list.h:173
+msgid "Reduce your working tree to a subset of tracked files"
+msgstr ""
+"Reduzieren Sie Ihr Arbeitsverzeichnis auf eine Teilmenge der versionierten "
+"Dateien"
+
+#: command-list.h:174
msgid "Add file contents to the staging area"
msgstr "Dateiinhalte der Staging-Area hinzufügen"
-#: command-list.h:174
+#: command-list.h:175
msgid "Stash the changes in a dirty working directory away"
msgstr "Änderungen in einem Arbeitsverzeichnis aufbewahren"
-#: command-list.h:175
+#: command-list.h:176
msgid "Show the working tree status"
msgstr "den Zustand des Arbeitsverzeichnisses anzeigen"
-#: command-list.h:176
+#: command-list.h:177
msgid "Remove unnecessary whitespace"
msgstr "nicht erforderlichen Whitespace entfernen"
-#: command-list.h:177
+#: command-list.h:178
msgid "Initialize, update or inspect submodules"
msgstr "Submodule initialisieren, aktualisieren oder inspizieren"
-#: command-list.h:178
+#: command-list.h:179
msgid "Bidirectional operation between a Subversion repository and Git"
msgstr ""
"Bidirektionale Operationen zwischen einem Subversion Repository und Git"
-#: command-list.h:179
+#: command-list.h:180
msgid "Switch branches"
msgstr "Branches wechseln"
-#: command-list.h:180
+#: command-list.h:181
msgid "Read, modify and delete symbolic refs"
msgstr "symbolische Referenzen lesen, ändern und löschen"
-#: command-list.h:181
+#: command-list.h:182
msgid "Create, list, delete or verify a tag object signed with GPG"
msgstr ""
"ein mit GPG signiertes Tag-Objekt erzeugen, auflisten, löschen oder "
"verifizieren."
-#: command-list.h:182
+#: command-list.h:183
msgid "Creates a temporary file with a blob's contents"
msgstr "eine temporäre Datei mit den Inhalten eines Blobs erstellen"
-#: command-list.h:183
+#: command-list.h:184
msgid "Unpack objects from a packed archive"
msgstr "Objekte von einem gepackten Archiv entpacken"
-#: command-list.h:184
+#: command-list.h:185
msgid "Register file contents in the working tree to the index"
msgstr "Dateiinhalte aus dem Arbeitsverzeichnis im Index registrieren"
-#: command-list.h:185
+#: command-list.h:186
msgid "Update the object name stored in a ref safely"
msgstr ""
"den Objektnamen, der in einer Referenz gespeichert ist, sicher aktualisieren"
-#: command-list.h:186
+#: command-list.h:187
msgid "Update auxiliary info file to help dumb servers"
msgstr "Hilfsinformationsdatei zur Hilfe von einfachen Servern aktualisieren"
-#: command-list.h:187
+#: command-list.h:188
msgid "Send archive back to git-archive"
msgstr "Archiv zurück zu git-archive senden"
-#: command-list.h:188
+#: command-list.h:189
msgid "Send objects packed back to git-fetch-pack"
msgstr "Objekte gepackt zurück an git-fetch-pack senden"
-#: command-list.h:189
+#: command-list.h:190
msgid "Show a Git logical variable"
msgstr "eine logische Variable von Git anzeigen"
-#: command-list.h:190
+#: command-list.h:191
msgid "Check the GPG signature of commits"
msgstr "die GPG-Signatur von Commits prüfen"
-#: command-list.h:191
+#: command-list.h:192
msgid "Validate packed Git archive files"
msgstr "gepackte Git-Archivdateien validieren"
-#: command-list.h:192
+#: command-list.h:193
msgid "Check the GPG signature of tags"
msgstr "die GPG-Signatur von Tags prüfen"
-#: command-list.h:193
+#: command-list.h:194
msgid "Show logs with difference each commit introduces"
msgstr "Logs mit dem Unterschied, den jeder Commit einführt, anzeigen"
-#: command-list.h:194
+#: command-list.h:195
msgid "Manage multiple working trees"
msgstr "mehrere Arbeitsverzeichnisse verwalten"
-#: command-list.h:195
+#: command-list.h:196
msgid "Create a tree object from the current index"
msgstr "Tree-Objekt vom aktuellen Index erstellen"
-#: command-list.h:196
+#: command-list.h:197
msgid "Defining attributes per path"
msgstr "Definition von Attributen pro Pfad"
-#: command-list.h:197
+#: command-list.h:198
msgid "Git command-line interface and conventions"
msgstr "Git Kommandozeilenschnittstelle und Konventionen"
-#: command-list.h:198
+#: command-list.h:199
msgid "A Git core tutorial for developers"
msgstr "eine Git Anleitung für Entwickler"
-#: command-list.h:199
+#: command-list.h:200
msgid "Providing usernames and passwords to Git"
msgstr "Bereitstellung von Benutzernamen und Passwörtern für Git"
-#: command-list.h:200
+#: command-list.h:201
msgid "Git for CVS users"
msgstr "Git für CVS Benutzer"
-#: command-list.h:201
+#: command-list.h:202
msgid "Tweaking diff output"
msgstr "Diff-Ausgabe optimieren"
-#: command-list.h:202
+#: command-list.h:203
msgid "A useful minimum set of commands for Everyday Git"
msgstr ""
"ein kleine, nützliche Menge von Befehlen für die tägliche Verwendung von Git"
-#: command-list.h:203
+#: command-list.h:204
msgid "Frequently asked questions about using Git"
msgstr "Häufig gestellte Fragen über die Nutzung von Git"
-#: command-list.h:204
+#: command-list.h:205
msgid "A Git Glossary"
msgstr "ein Git-Glossar"
-#: command-list.h:205
+#: command-list.h:206
msgid "Hooks used by Git"
msgstr "von Git verwendete Hooks"
-#: command-list.h:206
+#: command-list.h:207
msgid "Specifies intentionally untracked files to ignore"
msgstr "Spezifikation von bewusst ignorierten, unversionierten Dateien"
-#: command-list.h:207
+#: command-list.h:208
msgid "The Git repository browser"
msgstr "der Git-Repository-Browser"
-#: command-list.h:208
+#: command-list.h:209
msgid "Map author/committer names and/or E-Mail addresses"
msgstr "Autor/Commit-Ersteller und/oder E-Mail-Adressen zuordnen"
-#: command-list.h:209
+#: command-list.h:210
msgid "Defining submodule properties"
msgstr "Definition von Submodul-Eigenschaften"
-#: command-list.h:210
+#: command-list.h:211
msgid "Git namespaces"
msgstr "Git Namensbereiche"
-#: command-list.h:211
+#: command-list.h:212
msgid "Helper programs to interact with remote repositories"
msgstr "Hilfsprogramme zur Interaktion mit Remote-Repositories"
-#: command-list.h:212
+#: command-list.h:213
msgid "Git Repository Layout"
msgstr "Git Repository Aufbau"
-#: command-list.h:213
+#: command-list.h:214
msgid "Specifying revisions and ranges for Git"
msgstr "Spezifikation von Commits und Bereichen für Git"
-#: command-list.h:214
+#: command-list.h:215
msgid "Mounting one repository inside another"
msgstr "Einbinden eines Repositories in ein anderes"
-#: command-list.h:215
+#: command-list.h:216
msgid "A tutorial introduction to Git"
msgstr "eine einführende Anleitung zu Git"
-#: command-list.h:216
+#: command-list.h:217
msgid "A tutorial introduction to Git: part two"
msgstr "eine einführende Anleitung zu Git: Teil zwei"
-#: command-list.h:217
+#: command-list.h:218
msgid "Git web interface (web frontend to Git repositories)"
msgstr "Git Web Interface (Web-Frontend für Git-Repositories)"
-#: command-list.h:218
+#: command-list.h:219
msgid "An overview of recommended workflows with Git"
msgstr "Eine Übersicht über empfohlene Arbeitsabläufe mit Git"
@@ -26146,82 +26722,58 @@ msgstr "Versuche einfachen Merge mit $pretty_name"
msgid "Simple merge did not work, trying automatic merge."
msgstr "Einfacher Merge hat nicht funktioniert, versuche automatischen Merge."
-#: git-submodule.sh:401
-#, sh-format
-msgid "Unable to find current revision in submodule path '$displaypath'"
-msgstr "Konnte aktuellen Commit in Submodul-Pfad '$displaypath' nicht finden."
-
-#: git-submodule.sh:411
-#, sh-format
-msgid "Unable to fetch in submodule path '$sm_path'"
-msgstr "Konnte \"fetch\" in Submodul-Pfad '$sm_path' nicht ausführen"
-
-#: git-submodule.sh:416
-#, sh-format
-msgid ""
-"Unable to find current ${remote_name}/${branch} revision in submodule path "
-"'$sm_path'"
-msgstr ""
-"Konnte aktuellen Commit von ${remote_name}/${branch} in Submodul-Pfad\n"
-"'$sm_path' nicht finden."
-
-#: git-submodule.sh:464
-#, sh-format
-msgid "Failed to recurse into submodule path '$displaypath'"
-msgstr "Fehler bei Rekursion in Submodul-Pfad '$displaypath'"
-
#: git-sh-setup.sh:89 git-sh-setup.sh:94
#, sh-format
msgid "usage: $dashless $USAGE"
msgstr "Verwendung: $dashless $USAGE"
-#: git-sh-setup.sh:183
+#: git-sh-setup.sh:182
#, sh-format
msgid "Cannot chdir to $cdup, the toplevel of the working tree"
msgstr ""
"Konnte nicht in Verzeichnis $cdup wechseln, der obersten Ebene des\n"
"Arbeitsverzeichnisses."
-#: git-sh-setup.sh:192 git-sh-setup.sh:199
+#: git-sh-setup.sh:191 git-sh-setup.sh:198
#, sh-format
msgid "fatal: $program_name cannot be used without a working tree."
msgstr ""
"fatal: $program_name kann ohne ein Arbeitsverzeichnis nicht verwendet werden."
-#: git-sh-setup.sh:213
+#: git-sh-setup.sh:212
msgid "Cannot rewrite branches: You have unstaged changes."
msgstr ""
"Kann Branches nicht neu schreiben: Sie haben Änderungen, die nicht zum "
"Commit\n"
"vorgemerkt sind."
-#: git-sh-setup.sh:216
+#: git-sh-setup.sh:215
#, sh-format
msgid "Cannot $action: You have unstaged changes."
msgstr ""
"Kann $action nicht ausführen: Sie haben Änderungen, die nicht zum Commit\n"
"vorgemerkt sind."
-#: git-sh-setup.sh:227
+#: git-sh-setup.sh:226
#, sh-format
msgid "Cannot $action: Your index contains uncommitted changes."
msgstr ""
"Kann $action nicht ausführen: Die Staging-Area beinhaltet nicht committete\n"
"Änderungen."
-#: git-sh-setup.sh:229
+#: git-sh-setup.sh:228
msgid "Additionally, your index contains uncommitted changes."
msgstr "Zusätzlich beinhaltet die Staging-Area nicht committete Änderungen."
-#: git-sh-setup.sh:349
+#: git-sh-setup.sh:348
msgid "You need to run this command from the toplevel of the working tree."
msgstr ""
"Sie müssen den Befehl von der obersten Ebene des Arbeitsverzeichnisses "
"ausführen."
-#: git-sh-setup.sh:354
+#: git-sh-setup.sh:353
msgid "Unable to determine absolute path of git directory"
-msgstr "Konnte absoluten Pfad des Git-Verzeichnisses nicht bestimmen."
+msgstr "Konnte absoluten Pfad des Git-Verzeichnisses nicht bestimmen"
#. TRANSLATORS: you can adjust this to align "git add -i" status menu
#: git-add--interactive.perl:212
@@ -26584,7 +27136,7 @@ msgstr "fatal: Befehl '%s' mit Exit-Code %d beendet"
#: git-send-email.perl:257
msgid "the editor exited uncleanly, aborting everything"
-msgstr "Der Editor wurde unsauber beendet, breche alles ab."
+msgstr "der Editor wurde unsauber beendet, breche alles ab"
#: git-send-email.perl:346
#, perl-format
@@ -26833,7 +27385,7 @@ msgstr ""
#: git-send-email.perl:1583
msgid "Send this email reply required"
-msgstr "Zum Versenden dieser E-Mail ist eine Antwort erforderlich."
+msgstr "Zum Versenden dieser E-Mail ist eine Antwort erforderlich"
#: git-send-email.perl:1617
msgid "The required SMTP server is not properly defined."
@@ -26929,29 +27481,29 @@ msgstr "(%s) Fehler beim Schließen der Pipe nach '%s'"
#: git-send-email.perl:2050
msgid "cannot send message as 7bit"
-msgstr "Kann Nachricht nicht als 7bit versenden."
+msgstr "kann Nachricht nicht als 7bit versenden"
#: git-send-email.perl:2058
msgid "invalid transfer encoding"
-msgstr "Ungültiges Transfer-Encoding"
+msgstr "ungültiges Transfer-Encoding"
-#: git-send-email.perl:2095
+#: git-send-email.perl:2100
#, perl-format
msgid ""
-"fatal: %s: rejected by sendemail-validate hook\n"
+"fatal: %s: rejected by %s hook\n"
"%s\n"
"warning: no patches were sent\n"
msgstr ""
-"fatal: %s: zurückgewiesen durch 'sendemail-validate' Hook\n"
+"fatal: %s: zurückgewiesen von %s Hook\n"
"%s\n"
"Warnung: Es wurden keine Patches gesendet\n"
-#: git-send-email.perl:2105 git-send-email.perl:2158 git-send-email.perl:2168
+#: git-send-email.perl:2110 git-send-email.perl:2163 git-send-email.perl:2173
#, perl-format
msgid "unable to open %s: %s\n"
msgstr "konnte %s nicht öffnen: %s\n"
-#: git-send-email.perl:2108
+#: git-send-email.perl:2113
#, perl-format
msgid ""
"fatal: %s:%d is longer than 998 characters\n"
@@ -26960,13 +27512,13 @@ msgstr ""
"fatal: %s:%d ist länger als 998 Zeichen\n"
"Warnung: Es wurden keine Patches gesendet\n"
-#: git-send-email.perl:2126
+#: git-send-email.perl:2131
#, 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:2130
+#: git-send-email.perl:2135
#, perl-format
msgid "Do you really want to send %s? [y|N]: "
msgstr "Wollen Sie %s wirklich versenden? [y|N]: "
diff --git a/po/fr.po b/po/fr.po
index fc004019a3..7f3ace8888 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -59,6 +59,7 @@
# shallow | superficiel
# shell | interpréteur de commandes
# sparse | clairsemé
+# split (index) | index scindé
# stash | remisage
# to stash | remiser
# tag | étiquette
@@ -77,8 +78,8 @@ msgid ""
msgstr ""
"Project-Id-Version: git\n"
"Report-Msgid-Bugs-To: Git Mailing List <git@vger.kernel.org>\n"
-"POT-Creation-Date: 2022-01-17 08:34+0800\n"
-"PO-Revision-Date: 2022-01-12 21:11+0100\n"
+"POT-Creation-Date: 2022-04-13 14:52+0800\n"
+"PO-Revision-Date: 2022-04-13 21:17+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"
@@ -88,216 +89,215 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=n<=1 ?0 : 1;\n"
"X-Generator: Poedit 3.0.1\n"
-#: add-interactive.c:380
+#: add-interactive.c:382
#, c-format
msgid "Huh (%s)?"
msgstr "Hein (%s) ?"
-#: add-interactive.c:533 add-interactive.c:834 reset.c:65 sequencer.c:3509
-#: sequencer.c:3974 sequencer.c:4136 builtin/rebase.c:1233
-#: builtin/rebase.c:1642
+#: add-interactive.c:535 add-interactive.c:836 reset.c:136 sequencer.c:3505
+#: sequencer.c:3970 sequencer.c:4127 builtin/rebase.c:1261
+#: builtin/rebase.c:1671
msgid "could not read index"
msgstr "impossible de lire l'index"
-#: add-interactive.c:588 git-add--interactive.perl:269
+#: add-interactive.c:590 git-add--interactive.perl:269
#: git-add--interactive.perl:294
msgid "binary"
msgstr "binaire"
-#: add-interactive.c:646 git-add--interactive.perl:278
+#: add-interactive.c:648 git-add--interactive.perl:278
#: git-add--interactive.perl:332
msgid "nothing"
msgstr "rien"
-#: add-interactive.c:647 git-add--interactive.perl:314
+#: add-interactive.c:649 git-add--interactive.perl:314
#: git-add--interactive.perl:329
msgid "unchanged"
msgstr "inchangé"
-#: add-interactive.c:684 git-add--interactive.perl:641
+#: add-interactive.c:686 git-add--interactive.perl:641
msgid "Update"
msgstr "Mise à jour"
-#: add-interactive.c:701 add-interactive.c:889
+#: add-interactive.c:703 add-interactive.c:891
#, c-format
msgid "could not stage '%s'"
msgstr "impossible d'indexer '%s'"
-#: add-interactive.c:707 add-interactive.c:896 reset.c:89 sequencer.c:3713
+#: add-interactive.c:709 add-interactive.c:898 reset.c:160 sequencer.c:3709
msgid "could not write index"
msgstr "impossible d'écrire l'index"
-#: add-interactive.c:710 git-add--interactive.perl:626
+#: add-interactive.c:712 git-add--interactive.perl:626
#, c-format, perl-format
msgid "updated %d path\n"
msgid_plural "updated %d paths\n"
msgstr[0] "%d chemin mis à jour\n"
msgstr[1] "%d chemins mis à jour\n"
-#: add-interactive.c:728 git-add--interactive.perl:676
+#: add-interactive.c:730 git-add--interactive.perl:676
#, c-format, perl-format
msgid "note: %s is untracked now.\n"
msgstr "note : %s n'est plus suivi à présent.\n"
-#: add-interactive.c:733 apply.c:4151 builtin/checkout.c:306
+#: add-interactive.c:735 apply.c:4133 builtin/checkout.c:311
#: builtin/reset.c:167
#, c-format
msgid "make_cache_entry failed for path '%s'"
msgstr "échec de make_cache_entry pour le chemin '%s'"
-#: add-interactive.c:763 git-add--interactive.perl:653
+#: add-interactive.c:765 git-add--interactive.perl:653
msgid "Revert"
msgstr "Inverser"
-#: add-interactive.c:779
+#: add-interactive.c:781
msgid "Could not parse HEAD^{tree}"
msgstr "Impossible d'analyser HEAD^{tree}"
-#: add-interactive.c:817 git-add--interactive.perl:629
+#: add-interactive.c:819 git-add--interactive.perl:629
#, c-format, perl-format
msgid "reverted %d path\n"
msgid_plural "reverted %d paths\n"
msgstr[0] "%d chemin inversé\n"
msgstr[1] "%d chemins inversés\n"
-#: add-interactive.c:868 git-add--interactive.perl:693
+#: add-interactive.c:870 git-add--interactive.perl:693
#, c-format
msgid "No untracked files.\n"
msgstr "Aucun Fichier non suivi.\n"
-#: add-interactive.c:872 git-add--interactive.perl:687
+#: add-interactive.c:874 git-add--interactive.perl:687
msgid "Add untracked"
msgstr "Ajouter un fichier non-suivi"
-#: add-interactive.c:899 git-add--interactive.perl:623
+#: add-interactive.c:901 git-add--interactive.perl:623
#, c-format, perl-format
msgid "added %d path\n"
msgid_plural "added %d paths\n"
msgstr[0] "%d chemin ajouté\n"
msgstr[1] "%d chemins ajoutés\n"
-#: add-interactive.c:929
+#: add-interactive.c:931
#, c-format
msgid "ignoring unmerged: %s"
msgstr "fichier non-fusionné ignoré : %s"
-#: add-interactive.c:941 add-patch.c:1752 git-add--interactive.perl:1371
+#: add-interactive.c:943 add-patch.c:1758 git-add--interactive.perl:1371
#, c-format
msgid "Only binary files changed.\n"
msgstr "Seuls des fichiers binaires ont changé.\n"
-#: add-interactive.c:943 add-patch.c:1750 git-add--interactive.perl:1373
+#: add-interactive.c:945 add-patch.c:1756 git-add--interactive.perl:1373
#, c-format
msgid "No changes.\n"
msgstr "Aucune modification.\n"
-#: add-interactive.c:947 git-add--interactive.perl:1381
+#: add-interactive.c:949 git-add--interactive.perl:1381
msgid "Patch update"
msgstr "Mise à jour par patch"
-#: add-interactive.c:986 git-add--interactive.perl:1794
+#: add-interactive.c:988 git-add--interactive.perl:1794
msgid "Review diff"
msgstr "Réviser la différence"
-#: add-interactive.c:1014
+#: add-interactive.c:1016
msgid "show paths with changes"
msgstr "afficher les chemins comprenant des modifications"
-#: add-interactive.c:1016
+#: add-interactive.c:1018
msgid "add working tree state to the staged set of changes"
msgstr ""
"ajouter l'état de l'arbre de travail à l'ensemble des modifications indexées"
-#: add-interactive.c:1018
+#: add-interactive.c:1020
msgid "revert staged set of changes back to the HEAD version"
msgstr "retourner l'ensemble de modifications indexées à la version HEAD"
-#: add-interactive.c:1020
+#: add-interactive.c:1022
msgid "pick hunks and update selectively"
msgstr "sélection et mise à jour individuelle des sections"
-#: add-interactive.c:1022
+#: add-interactive.c:1024
msgid "view diff between HEAD and index"
msgstr "visualiser les diffs entre HEAD et l'index"
-#: add-interactive.c:1024
+#: add-interactive.c:1026
msgid "add contents of untracked files to the staged set of changes"
msgstr ""
"ajouter le contenu des fichiers non-suivis à l'ensemble des modifications "
"indexées"
-#: add-interactive.c:1032 add-interactive.c:1081
+#: add-interactive.c:1034 add-interactive.c:1083
msgid "Prompt help:"
msgstr "Aide :"
-#: add-interactive.c:1034
+#: add-interactive.c:1036
msgid "select a single item"
msgstr "sélectionner un seul élément"
-#: add-interactive.c:1036
+#: add-interactive.c:1038
msgid "select a range of items"
msgstr "sélectionner une plage d'éléments"
-#: add-interactive.c:1038
+#: add-interactive.c:1040
msgid "select multiple ranges"
msgstr "sélectionner plusieurs plages"
-#: add-interactive.c:1040 add-interactive.c:1085
+#: add-interactive.c:1042 add-interactive.c:1087
msgid "select item based on unique prefix"
msgstr "sélectionner un élément basé sur une préfixe unique"
-#: add-interactive.c:1042
+#: add-interactive.c:1044
msgid "unselect specified items"
msgstr "désélectionner les éléments spécifiés"
-#: add-interactive.c:1044
+#: add-interactive.c:1046
msgid "choose all items"
msgstr "choisir tous les éléments"
-#: add-interactive.c:1046
+#: add-interactive.c:1048
msgid "(empty) finish selecting"
msgstr "(vide) arrêter de sélectionner"
-#: add-interactive.c:1083
+#: add-interactive.c:1085
msgid "select a numbered item"
msgstr "sélectionner un élément par son numéro"
-#: add-interactive.c:1087
+#: add-interactive.c:1089
msgid "(empty) select nothing"
msgstr "(vide) ne rien sélectionner"
-#: add-interactive.c:1095 builtin/clean.c:839 git-add--interactive.perl:1898
+#: add-interactive.c:1097 builtin/clean.c:839 git-add--interactive.perl:1898
msgid "*** Commands ***"
msgstr "*** Commandes ***"
-#: add-interactive.c:1096 builtin/clean.c:840 git-add--interactive.perl:1895
+#: add-interactive.c:1098 builtin/clean.c:840 git-add--interactive.perl:1895
msgid "What now"
msgstr "Et maintenant"
-#: add-interactive.c:1148 git-add--interactive.perl:213
+#: add-interactive.c:1150 git-add--interactive.perl:213
msgid "staged"
msgstr "indexé"
-#: add-interactive.c:1148 git-add--interactive.perl:213
+#: add-interactive.c:1150 git-add--interactive.perl:213
msgid "unstaged"
msgstr "non-indexé"
-#: add-interactive.c:1148 apply.c:5020 apply.c:5023 builtin/am.c:2367
-#: builtin/am.c:2370 builtin/bugreport.c:107 builtin/clone.c:128
-#: builtin/fetch.c:153 builtin/merge.c:287 builtin/pull.c:194
-#: builtin/submodule--helper.c:404 builtin/submodule--helper.c:1858
-#: builtin/submodule--helper.c:1861 builtin/submodule--helper.c:2504
-#: builtin/submodule--helper.c:2507 builtin/submodule--helper.c:2574
-#: builtin/submodule--helper.c:2579 builtin/submodule--helper.c:2812
+#: add-interactive.c:1150 apply.c:5002 apply.c:5005 builtin/am.c:2370
+#: builtin/am.c:2373 builtin/bugreport.c:107 builtin/clone.c:132
+#: builtin/fetch.c:154 builtin/merge.c:287 builtin/pull.c:194
+#: builtin/submodule--helper.c:412 builtin/submodule--helper.c:1872
+#: builtin/submodule--helper.c:1875 builtin/submodule--helper.c:2709
+#: builtin/submodule--helper.c:2712 builtin/submodule--helper.c:2891
#: git-add--interactive.perl:213
msgid "path"
msgstr "chemin"
-#: add-interactive.c:1155
+#: add-interactive.c:1157
msgid "could not refresh index"
msgstr "impossible de rafraîchir l'index"
-#: add-interactive.c:1169 builtin/clean.c:804 git-add--interactive.perl:1805
+#: add-interactive.c:1171 builtin/clean.c:804 git-add--interactive.perl:1805
#, c-format
msgid "Bye.\n"
msgstr "Au revoir.\n"
@@ -556,15 +556,15 @@ msgstr ""
#, 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,?] ? "
+"Appliquer le changement de mode dans l'index et l'arbre de travail [y,n,q,a,"
+"d%s,?] ? "
#: add-patch.c:172 add-patch.c:217 git-add--interactive.perl:1470
#, 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,?] ? "
+"Appliquer la suppression dans l'index et l'arbre de travail [y,n,q,a,"
+"d%s,?] ? "
#: add-patch.c:173 add-patch.c:218 git-add--interactive.perl:1471
#, c-format, perl-format
@@ -616,24 +616,24 @@ msgstr "impossible d'analyser l'entête de section '%.*s'"
msgid "could not parse colored hunk header '%.*s'"
msgstr "impossible d'analyser l'entête coloré de section '%.*s'"
-#: add-patch.c:420
+#: add-patch.c:431
msgid "could not parse diff"
msgstr "impossible d'analyser la diff"
-#: add-patch.c:439
+#: add-patch.c:450
msgid "could not parse colored diff"
msgstr "impossible d'analyser la diff colorée"
-#: add-patch.c:453
+#: add-patch.c:464
#, c-format
msgid "failed to run '%s'"
msgstr "échec pour lancer '%s'"
-#: add-patch.c:612
+#: add-patch.c:618
msgid "mismatched output from interactive.diffFilter"
msgstr "sortie sans correspondance depuis interactive.diffFilter"
-#: add-patch.c:613
+#: add-patch.c:619
msgid ""
"Your filter must maintain a one-to-one correspondence\n"
"between its input and output lines."
@@ -641,7 +641,7 @@ msgstr ""
"Votre filtre doit maintenir une correspondance un-pour-un\n"
"entre les lignes en entrée et en sortie."
-#: add-patch.c:791
+#: add-patch.c:797
#, c-format
msgid ""
"expected context line #%d in\n"
@@ -650,7 +650,7 @@ msgstr ""
"ligne de contexte attendue #%d dans\n"
"%.*s"
-#: add-patch.c:806
+#: add-patch.c:812
#, c-format
msgid ""
"hunks do not overlap:\n"
@@ -663,12 +663,12 @@ msgstr ""
"\tne se termine pas par :\n"
"%.*s"
-#: add-patch.c:1082 git-add--interactive.perl:1115
+#: add-patch.c:1088 git-add--interactive.perl:1115
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:1086
+#: add-patch.c:1092
#, c-format
msgid ""
"---\n"
@@ -682,7 +682,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:1100 git-add--interactive.perl:1129
+#: add-patch.c:1106 git-add--interactive.perl:1129
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"
@@ -692,11 +692,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:1133
+#: add-patch.c:1139
msgid "could not parse hunk header"
msgstr "impossible d'analyser l'entête de section"
-#: add-patch.c:1178
+#: add-patch.c:1184
msgid "'git apply --cached' failed"
msgstr "'git apply --cached' a échoué"
@@ -712,26 +712,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:1247 git-add--interactive.perl:1244
+#: add-patch.c:1253 git-add--interactive.perl:1244
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:1290
+#: add-patch.c:1296
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:1291 git-add--interactive.perl:1348
+#: add-patch.c:1297 git-add--interactive.perl:1348
msgid "Apply them to the worktree anyway? "
msgstr "Les appliquer quand même à l'arbre de travail ? "
-#: add-patch.c:1298 git-add--interactive.perl:1351
+#: add-patch.c:1304 git-add--interactive.perl:1351
msgid "Nothing was applied.\n"
msgstr "Rien n'a été appliqué.\n"
-#: add-patch.c:1355
+#: add-patch.c:1361
msgid ""
"j - leave this hunk undecided, see next undecided hunk\n"
"J - leave this hunk undecided, see next hunk\n"
@@ -753,73 +753,73 @@ msgstr ""
"e - éditer manuellement la section actuelle\n"
"? - afficher l'aide\n"
-#: add-patch.c:1517 add-patch.c:1527
+#: add-patch.c:1523 add-patch.c:1533
msgid "No previous hunk"
msgstr "Pas de section précédente"
-#: add-patch.c:1522 add-patch.c:1532
+#: add-patch.c:1528 add-patch.c:1538
msgid "No next hunk"
msgstr "Pas de section suivante"
-#: add-patch.c:1538
+#: add-patch.c:1544
msgid "No other hunks to goto"
msgstr "Aucune autre section à atteindre"
-#: add-patch.c:1549 git-add--interactive.perl:1608
+#: add-patch.c:1555 git-add--interactive.perl:1608
msgid "go to which hunk (<ret> to see more)? "
msgstr "aller à quelle section (<ret> pour voir plus) ? "
-#: add-patch.c:1550 git-add--interactive.perl:1610
+#: add-patch.c:1556 git-add--interactive.perl:1610
msgid "go to which hunk? "
msgstr "aller à quelle section ? "
-#: add-patch.c:1561
+#: add-patch.c:1567
#, c-format
msgid "Invalid number: '%s'"
msgstr "Numéro invalide : '%s'"
-#: add-patch.c:1566
+#: add-patch.c:1572
#, 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:1575
+#: add-patch.c:1581
msgid "No other hunks to search"
msgstr "Aucune autre section à rechercher"
-#: add-patch.c:1581 git-add--interactive.perl:1663
+#: add-patch.c:1587 git-add--interactive.perl:1663
msgid "search for regex? "
msgstr "rechercher la regex ? "
-#: add-patch.c:1596
+#: add-patch.c:1602
#, c-format
msgid "Malformed search regexp %s: %s"
msgstr "Regex de recherche malformée %s : %s"
-#: add-patch.c:1613
+#: add-patch.c:1619
msgid "No hunk matches the given pattern"
msgstr "Aucune section ne correspond au motif donné"
-#: add-patch.c:1620
+#: add-patch.c:1626
msgid "Sorry, cannot split this hunk"
msgstr "Désolé, impossible de découper cette section"
-#: add-patch.c:1624
+#: add-patch.c:1630
#, c-format
msgid "Split into %d hunks."
msgstr "Découpée en %d sections."
-#: add-patch.c:1628
+#: add-patch.c:1634
msgid "Sorry, cannot edit this hunk"
msgstr "Désolé, impossible d'éditer cette section"
-#: add-patch.c:1680
+#: add-patch.c:1686
msgid "'git apply' failed"
msgstr "'git apply' a échoué"
-#: advice.c:78
+#: advice.c:81
#, c-format
msgid ""
"\n"
@@ -828,37 +828,37 @@ msgstr ""
"\n"
"Désactivez ce message avec \"git config advice.%s false\""
-#: advice.c:94
+#: advice.c:97
#, c-format
msgid "%shint: %.*s%s\n"
msgstr "%sastuce: %.*s%s\n"
-#: advice.c:178
+#: advice.c:181
msgid "Cherry-picking is not possible because you have unmerged files."
msgstr "Impossible de picorer car vous avez des fichiers non fusionnés."
-#: advice.c:180
+#: advice.c:183
msgid "Committing is not possible because you have unmerged files."
msgstr "Impossible de valider car vous avez des fichiers non fusionnés."
-#: advice.c:182
+#: advice.c:185
msgid "Merging is not possible because you have unmerged files."
msgstr "Impossible de fusionner car vous avez des fichiers non fusionnés."
-#: advice.c:184
+#: advice.c:187
msgid "Pulling is not possible because you have unmerged files."
msgstr "Impossible de tirer car vous avez des fichiers non fusionnés."
-#: advice.c:186
+#: advice.c:189
msgid "Reverting is not possible because you have unmerged files."
msgstr "Impossible d'annuler car vous avez des fichiers non fusionnés."
-#: advice.c:188
+#: advice.c:191
#, c-format
msgid "It is not possible to %s because you have unmerged files."
msgstr "%s n'est pas possible car vous avez des fichiers non fusionnés."
-#: advice.c:196
+#: advice.c:199
msgid ""
"Fix them up in the work tree, and then use 'git add/rm <file>'\n"
"as appropriate to mark resolution and make a commit."
@@ -866,27 +866,27 @@ msgstr ""
"Corrigez-les puis lancez 'git add/rm <fichier>'\n"
"si nécessaire pour marquer la résolution et valider."
-#: advice.c:204
+#: advice.c:207
msgid "Exiting because of an unresolved conflict."
msgstr "Abandon à cause de conflit non résolu."
-#: advice.c:209 builtin/merge.c:1382
+#: advice.c:212 builtin/merge.c:1388
msgid "You have not concluded your merge (MERGE_HEAD exists)."
msgstr "Vous n'avez pas terminé votre fusion (MERGE_HEAD existe)."
-#: advice.c:211
+#: advice.c:214
msgid "Please, commit your changes before merging."
msgstr "Veuillez valider vos changements avant de fusionner."
-#: advice.c:212
+#: advice.c:215
msgid "Exiting because of unfinished merge."
msgstr "Abandon à cause d'une fusion non terminée."
-#: advice.c:217
+#: advice.c:220
msgid "Not possible to fast-forward, aborting."
msgstr "Pas possible d'avancer rapidement, abandon."
-#: advice.c:227
+#: advice.c:230
#, c-format
msgid ""
"The following paths and/or pathspecs matched paths that exist\n"
@@ -898,7 +898,7 @@ msgstr ""
"qui existent hors de votre définition d'extraction clairsemée, et ne seront\n"
"donc pas mis à jour dans l'index :\n"
-#: advice.c:234
+#: advice.c:237
msgid ""
"If you intend to update such entries, try one of the following:\n"
"* Use the --sparse option.\n"
@@ -908,7 +908,7 @@ msgstr ""
"* d'utiliser l'option --sparse,\n"
"* de désactiver ou modifier les règles de choix clairsemé."
-#: advice.c:242
+#: advice.c:245
#, c-format
msgid ""
"Note: switching to '%s'.\n"
@@ -971,87 +971,90 @@ msgstr "option d'espace non reconnue '%s'"
msgid "unrecognized whitespace ignore option '%s'"
msgstr "option d'ignorance d'espace non reconnue '%s'"
-#: apply.c:136 archive.c:584 range-diff.c:559 revision.c:2303 revision.c:2307
-#: revision.c:2316 revision.c:2321 revision.c:2527 revision.c:2870
-#: revision.c:2874 revision.c:2880 revision.c:2883 revision.c:2885
-#: builtin/add.c:510 builtin/add.c:512 builtin/add.c:529 builtin/add.c:541
-#: builtin/branch.c:727 builtin/checkout.c:467 builtin/checkout.c:470
-#: builtin/checkout.c:1644 builtin/checkout.c:1754 builtin/checkout.c:1757
-#: builtin/clone.c:906 builtin/commit.c:358 builtin/commit.c:361
-#: builtin/commit.c:1196 builtin/describe.c:593 builtin/diff-tree.c:155
-#: builtin/difftool.c:733 builtin/fast-export.c:1245 builtin/fetch.c:2038
-#: builtin/fetch.c:2043 builtin/index-pack.c:1852 builtin/init-db.c:560
-#: builtin/log.c:1946 builtin/log.c:1948 builtin/ls-files.c:778
-#: builtin/merge.c:1403 builtin/merge.c:1405 builtin/pack-objects.c:4073
-#: builtin/push.c:592 builtin/push.c:630 builtin/push.c:636 builtin/push.c:641
-#: builtin/rebase.c:1193 builtin/rebase.c:1195 builtin/rebase.c:1199
-#: builtin/repack.c:684 builtin/repack.c:715 builtin/reset.c:426
-#: builtin/reset.c:462 builtin/rev-list.c:541 builtin/show-branch.c:710
-#: builtin/stash.c:1707 builtin/stash.c:1710 builtin/submodule--helper.c:1316
-#: builtin/submodule--helper.c:2975 builtin/tag.c:526 builtin/tag.c:572
-#: builtin/worktree.c:702
+#: apply.c:138 archive.c:584 parse-options.c:1122 range-diff.c:555
+#: revision.c:2314 revision.c:2318 revision.c:2327 revision.c:2332
+#: revision.c:2560 revision.c:2895 revision.c:2899 revision.c:2907
+#: revision.c:2910 revision.c:2912 builtin/add.c:507 builtin/add.c:509
+#: builtin/add.c:515 builtin/add.c:527 builtin/branch.c:755
+#: builtin/checkout.c:472 builtin/checkout.c:475 builtin/checkout.c:1663
+#: builtin/checkout.c:1773 builtin/checkout.c:1776 builtin/clone.c:921
+#: builtin/commit.c:359 builtin/commit.c:362 builtin/commit.c:1200
+#: builtin/commit.c:1256 builtin/commit.c:1273 builtin/describe.c:593
+#: builtin/diff-tree.c:155 builtin/difftool.c:733 builtin/fast-export.c:1245
+#: builtin/fetch.c:2141 builtin/fetch.c:2162 builtin/fetch.c:2167
+#: builtin/help.c:602 builtin/index-pack.c:1858 builtin/init-db.c:560
+#: builtin/log.c:1968 builtin/log.c:1970 builtin/ls-files.c:778
+#: builtin/merge-base.c:163 builtin/merge-base.c:169 builtin/merge.c:1409
+#: builtin/merge.c:1411 builtin/pack-objects.c:4098 builtin/push.c:592
+#: builtin/push.c:630 builtin/push.c:636 builtin/push.c:641
+#: builtin/rebase.c:1221 builtin/rebase.c:1223 builtin/rebase.c:1227
+#: builtin/repack.c:688 builtin/repack.c:719 builtin/reset.c:433
+#: builtin/reset.c:469 builtin/rev-list.c:537 builtin/show-branch.c:711
+#: builtin/stash.c:1696 builtin/stash.c:1699 builtin/submodule--helper.c:1328
+#: builtin/submodule--helper.c:3054 builtin/tag.c:527 builtin/tag.c:573
+#: builtin/worktree.c:779
#, c-format
msgid "options '%s' and '%s' cannot be used together"
msgstr "les options '%s' et '%s' ne peuvent pas être utilisées ensemble"
-#: apply.c:139 apply.c:150 apply.c:153
+#: apply.c:141 apply.c:152 apply.c:155
#, c-format
msgid "'%s' outside a repository"
msgstr "'%s' hors d'un dépôt"
-#: apply.c:800
+#: apply.c:807
#, c-format
msgid "Cannot prepare timestamp regexp %s"
msgstr "Impossible de préparer la regexp d'horodatage %s"
-#: apply.c:809
+#: apply.c:816
#, c-format
msgid "regexec returned %d for input: %s"
msgstr "regexec a retourné %d pour l'entrée : %s"
-#: apply.c:883
+#: apply.c:890
#, c-format
msgid "unable to find filename in patch at line %d"
msgstr "nom de fichier du patch introuvable à la ligne %d"
-#: apply.c:921
+#: apply.c:928
#, c-format
msgid "git apply: bad git-diff - expected /dev/null, got %s on line %d"
msgstr ""
"git apply : mauvais format de git-diff - /dev/null attendu, %s trouvé à la "
"ligne %d"
-#: apply.c:927
+#: apply.c:934
#, c-format
msgid "git apply: bad git-diff - inconsistent new filename on line %d"
msgstr ""
"git apply : mauvais format de git-diff - nouveau nom de fichier inconsistant "
"à la ligne %d"
-#: apply.c:928
+#: apply.c:935
#, c-format
msgid "git apply: bad git-diff - inconsistent old filename on line %d"
msgstr ""
"git apply : mauvais format de git-diff - ancien nom de fichier inconsistant "
"à la ligne %d"
-#: apply.c:933
+#: apply.c:940
#, c-format
msgid "git apply: bad git-diff - expected /dev/null on line %d"
msgstr ""
"git apply : mauvais format de git-diff - /dev/null attendu à la ligne %d"
-#: apply.c:962
+#: apply.c:969
#, c-format
msgid "invalid mode on line %d: %s"
msgstr "mode invalide dans la ligne %d : %s"
-#: apply.c:1281
+#: apply.c:1288
#, c-format
msgid "inconsistent header lines %d and %d"
msgstr "lignes d'entête inconsistantes %d et %d"
-#: apply.c:1371
+#: apply.c:1378
#, c-format
msgid ""
"git diff header lacks filename information when removing %d leading pathname "
@@ -1066,93 +1069,93 @@ msgstr[1] ""
"information de nom de fichier manquante dans l'en-tête de git diff lors de "
"la suppression de %d composants de préfixe de chemin (ligne %d)"
-#: apply.c:1384
+#: apply.c:1391
#, c-format
msgid "git diff header lacks filename information (line %d)"
msgstr ""
"information de nom de fichier manquante dans l'en-tête de git diff (ligne %d)"
-#: apply.c:1480
+#: apply.c:1487
#, c-format
msgid "recount: unexpected line: %.*s"
msgstr "recomptage : ligne inattendue : %.*s"
-#: apply.c:1549
+#: apply.c:1556
#, c-format
msgid "patch fragment without header at line %d: %.*s"
msgstr "fragment de patch sans en-tête à la ligne %d : %.*s"
-#: apply.c:1752
+#: apply.c:1759
msgid "new file depends on old contents"
msgstr "le nouveau fichier dépend de contenus anciens"
-#: apply.c:1754
+#: apply.c:1761
msgid "deleted file still has contents"
msgstr "le fichier supprimé a encore du contenu"
-#: apply.c:1788
+#: apply.c:1795
#, c-format
msgid "corrupt patch at line %d"
msgstr "patch corrompu à la ligne %d"
-#: apply.c:1825
+#: apply.c:1832
#, c-format
msgid "new file %s depends on old contents"
msgstr "le nouveau fichier %s dépend de contenus anciens"
-#: apply.c:1827
+#: apply.c:1834
#, c-format
msgid "deleted file %s still has contents"
msgstr "le fichier supprimé %s a encore du contenu"
-#: apply.c:1830
+#: apply.c:1837
#, c-format
msgid "** warning: file %s becomes empty but is not deleted"
msgstr "** attention : le fichier %s devient vide mais n'est pas supprimé"
-#: apply.c:1978
+#: apply.c:1985
#, c-format
msgid "corrupt binary patch at line %d: %.*s"
msgstr "patch binaire corrompu à la ligne %d : %.*s"
-#: apply.c:2015
+#: apply.c:2022
#, c-format
msgid "unrecognized binary patch at line %d"
msgstr "patch binaire non reconnu à la ligne %d"
-#: apply.c:2177
+#: apply.c:2184
#, c-format
msgid "patch with only garbage at line %d"
msgstr "patch totalement incompréhensible à la ligne %d"
-#: apply.c:2263
+#: apply.c:2270
#, c-format
msgid "unable to read symlink %s"
msgstr "lecture du lien symbolique %s impossible"
-#: apply.c:2267
+#: apply.c:2274
#, c-format
msgid "unable to open or read %s"
msgstr "ouverture ou lecture de %s impossible"
-#: apply.c:2936
+#: apply.c:2943
#, c-format
msgid "invalid start of line: '%c'"
msgstr "début de ligne invalide : '%c'"
-#: apply.c:3057
+#: apply.c:3064
#, c-format
msgid "Hunk #%d succeeded at %d (offset %d line)."
msgid_plural "Hunk #%d succeeded at %d (offset %d lines)."
msgstr[0] "La section n°%d a réussi à la ligne %d (offset %d ligne)."
msgstr[1] "La section n°%d a réussi à la ligne %d (offset %d lignes)."
-#: apply.c:3069
+#: apply.c:3076
#, c-format
msgid "Context reduced to (%ld/%ld) to apply fragment at %d"
msgstr "Contexte réduit à (%ld/%ld) pour appliquer le fragment à la ligne %d"
-#: apply.c:3075
+#: apply.c:3082
#, c-format
msgid ""
"while searching for:\n"
@@ -1161,464 +1164,464 @@ msgstr ""
"pendant la recherche de :\n"
"%.*s"
-#: apply.c:3097
+#: apply.c:3104
#, c-format
msgid "missing binary patch data for '%s'"
msgstr "données de patch binaire manquantes pour '%s'"
-#: apply.c:3105
+#: apply.c:3112
#, c-format
msgid "cannot reverse-apply a binary patch without the reverse hunk to '%s'"
msgstr ""
"impossible d'appliquer l'inverse d'un patch binaire à '%s' sans la section "
"inverse"
-#: apply.c:3152
+#: apply.c:3159
#, c-format
msgid "cannot apply binary patch to '%s' without full index line"
msgstr ""
"impossible d'appliquer un patch binaire à '%s' sans la ligne complète d'index"
-#: apply.c:3163
+#: apply.c:3170
#, c-format
msgid ""
"the patch applies to '%s' (%s), which does not match the current contents."
msgstr ""
"le patch s'applique à '%s' (%s), ce qui ne correspond pas au contenu actuel."
-#: apply.c:3171
+#: apply.c:3178
#, c-format
msgid "the patch applies to an empty '%s' but it is not empty"
msgstr "le patch s'applique à un '%s' vide mais ce n'est pas vide"
-#: apply.c:3189
+#: apply.c:3196
#, c-format
msgid "the necessary postimage %s for '%s' cannot be read"
msgstr "l'image postérieure nécessaire %s pour '%s' ne peut pas être lue"
-#: apply.c:3202
+#: apply.c:3209
#, c-format
msgid "binary patch does not apply to '%s'"
msgstr "le patch binaire ne s'applique par correctement à '%s'"
-#: apply.c:3209
+#: apply.c:3216
#, c-format
msgid "binary patch to '%s' creates incorrect result (expecting %s, got %s)"
msgstr ""
"le patch binaire sur '%s' crée un résultat incorrect (%s attendu, mais %s "
"trouvé)"
-#: apply.c:3230
+#: apply.c:3237
#, c-format
msgid "patch failed: %s:%ld"
msgstr "le patch a échoué : %s:%ld"
-#: apply.c:3353
+#: apply.c:3360
#, c-format
msgid "cannot checkout %s"
msgstr "extraction de %s impossible"
-#: apply.c:3405 apply.c:3416 apply.c:3462 midx.c:104 pack-revindex.c:214
-#: setup.c:309
+#: apply.c:3412 apply.c:3423 apply.c:3469 midx.c:105 pack-revindex.c:214
+#: setup.c:310
#, c-format
msgid "failed to read %s"
msgstr "échec de la lecture de %s"
-#: apply.c:3413
+#: apply.c:3420
#, c-format
msgid "reading from '%s' beyond a symbolic link"
msgstr "lecture depuis '%s' au-delà d'un lien symbolique"
-#: apply.c:3442 apply.c:3711
+#: apply.c:3449 apply.c:3721
#, c-format
msgid "path %s has been renamed/deleted"
msgstr "le chemin %s a été renommé/supprimé"
-#: apply.c:3549 apply.c:3726
+#: apply.c:3559 apply.c:3736
#, c-format
msgid "%s: does not exist in index"
msgstr "%s : n'existe pas dans l'index"
-#: apply.c:3558 apply.c:3734 apply.c:3978
+#: apply.c:3568 apply.c:3744 apply.c:3960
#, c-format
msgid "%s: does not match index"
msgstr "%s : ne correspond pas à l'index"
-#: apply.c:3595
+#: apply.c:3605
msgid "repository lacks the necessary blob to perform 3-way merge."
msgstr ""
"le dépôt n'a pas les blobs nécessaires pour effectuer une fusion à 3 points."
-#: apply.c:3598
+#: apply.c:3608
#, c-format
msgid "Performing three-way merge...\n"
msgstr "Application d'une fusion à 3 points…\n"
-#: apply.c:3614 apply.c:3618
+#: apply.c:3624 apply.c:3628
#, c-format
msgid "cannot read the current contents of '%s'"
msgstr "impossible de lire le contenu actuel de '%s'"
-#: apply.c:3630
+#: apply.c:3640
#, c-format
msgid "Failed to perform three-way merge...\n"
msgstr "Échec de l'application de la fusion à 3 points…\n"
-#: apply.c:3644
+#: apply.c:3654
#, c-format
msgid "Applied patch to '%s' with conflicts.\n"
msgstr "Patch %s appliqué avec des conflits.\n"
-#: apply.c:3649
+#: apply.c:3659
#, c-format
msgid "Applied patch to '%s' cleanly.\n"
msgstr "Patch %s appliqué proprement.\n"
-#: apply.c:3666
+#: apply.c:3676
#, c-format
msgid "Falling back to direct application...\n"
msgstr "Retour à une application directe…\n"
-#: apply.c:3678
+#: apply.c:3688
msgid "removal patch leaves file contents"
msgstr "le patch de suppression laisse un contenu dans le fichier"
-#: apply.c:3751
+#: apply.c:3761
#, c-format
msgid "%s: wrong type"
msgstr "%s : type erroné"
-#: apply.c:3753
+#: apply.c:3763
#, c-format
msgid "%s has type %o, expected %o"
msgstr "%s est de type %o, mais %o attendu"
-#: apply.c:3918 apply.c:3920 read-cache.c:889 read-cache.c:918
-#: read-cache.c:1381
+#: apply.c:3900 apply.c:3902 read-cache.c:903 read-cache.c:932
+#: read-cache.c:1399
#, c-format
msgid "invalid path '%s'"
msgstr "chemin invalide '%s'"
-#: apply.c:3976
+#: apply.c:3958
#, c-format
msgid "%s: already exists in index"
msgstr "%s : existe déjà dans l'index"
-#: apply.c:3980
+#: apply.c:3962
#, c-format
msgid "%s: already exists in working directory"
msgstr "%s : existe déjà dans la copie de travail"
-#: apply.c:4000
+#: apply.c:3982
#, c-format
msgid "new mode (%o) of %s does not match old mode (%o)"
msgstr "le nouveau mode (%o) de %s ne correspond pas à l'ancien mode (%o)"
-#: apply.c:4005
+#: apply.c:3987
#, c-format
msgid "new mode (%o) of %s does not match old mode (%o) of %s"
msgstr ""
"le nouveau mode (%o) de %s ne correspond pas à l'ancien mode (%o) de %s"
-#: apply.c:4025
+#: apply.c:4007
#, c-format
msgid "affected file '%s' is beyond a symbolic link"
msgstr "le fichier affecté '%s' est au-delà d'un lien symbolique"
-#: apply.c:4029
+#: apply.c:4011
#, c-format
msgid "%s: patch does not apply"
msgstr "%s : le patch ne s'applique pas"
-#: apply.c:4044
+#: apply.c:4026
#, c-format
msgid "Checking patch %s..."
msgstr "Vérification du patch %s..."
-#: apply.c:4136
+#: apply.c:4118
#, c-format
msgid "sha1 information is lacking or useless for submodule %s"
msgstr ""
"l'information sha1 est manquante ou inutilisable pour le sous-module %s"
-#: apply.c:4143
+#: apply.c:4125
#, c-format
msgid "mode change for %s, which is not in current HEAD"
msgstr "le mode change pour %s, qui n'est pas dans la HEAD actuelle"
-#: apply.c:4146
+#: apply.c:4128
#, c-format
msgid "sha1 information is lacking or useless (%s)."
msgstr "l'information de sha1 est manquante ou inutilisable (%s)."
-#: apply.c:4155
+#: apply.c:4137
#, c-format
msgid "could not add %s to temporary index"
msgstr "impossible d'ajouter %s à l'index temporaire"
-#: apply.c:4165
+#: apply.c:4147
#, c-format
msgid "could not write temporary index to %s"
msgstr "impossible d'écrire l'index temporaire dans %s"
-#: apply.c:4303
+#: apply.c:4285
#, c-format
msgid "unable to remove %s from index"
msgstr "suppression de %s dans l'index impossible"
-#: apply.c:4337
+#: apply.c:4319
#, c-format
msgid "corrupt patch for submodule %s"
msgstr "patch corrompu pour le sous-module %s"
-#: apply.c:4343
+#: apply.c:4325
#, c-format
msgid "unable to stat newly created file '%s'"
msgstr "stat du fichier nouvellement créé '%s' impossible"
-#: apply.c:4351
+#: apply.c:4333
#, c-format
msgid "unable to create backing store for newly created file %s"
msgstr ""
"création du magasin de stockage pour le fichier nouvellement créé %s "
"impossible"
-#: apply.c:4357 apply.c:4502
+#: apply.c:4339 apply.c:4484
#, c-format
msgid "unable to add cache entry for %s"
msgstr "ajout de l'élément de cache %s impossible"
-#: apply.c:4400 builtin/bisect--helper.c:540 builtin/gc.c:2258
+#: apply.c:4382 builtin/bisect--helper.c:540 builtin/gc.c:2258
#: builtin/gc.c:2293
#, c-format
msgid "failed to write to '%s'"
msgstr "échec de l'écriture dans '%s'"
-#: apply.c:4404
+#: apply.c:4386
#, c-format
msgid "closing file '%s'"
msgstr "fermeture du fichier '%s'"
-#: apply.c:4474
+#: apply.c:4456
#, c-format
msgid "unable to write file '%s' mode %o"
msgstr "écriture du fichier '%s' mode %o impossible"
-#: apply.c:4572
+#: apply.c:4554
#, c-format
msgid "Applied patch %s cleanly."
msgstr "Patch %s appliqué proprement."
-#: apply.c:4580
+#: apply.c:4562
msgid "internal error"
msgstr "erreur interne"
-#: apply.c:4583
+#: apply.c:4565
#, c-format
msgid "Applying patch %%s with %d reject..."
msgid_plural "Applying patch %%s with %d rejects..."
msgstr[0] "Application du patch %%s avec %d rejet..."
msgstr[1] "Application du patch %%s avec %d rejets..."
-#: apply.c:4594
+#: apply.c:4576
#, c-format
msgid "truncating .rej filename to %.*s.rej"
msgstr "troncature du nom de fichier .rej en %.*s.rej"
-#: apply.c:4602
+#: apply.c:4584
#, c-format
msgid "cannot open %s"
msgstr "impossible d'ouvrir %s"
-#: apply.c:4616
+#: apply.c:4598
#, c-format
msgid "Hunk #%d applied cleanly."
msgstr "Section n°%d appliquée proprement."
-#: apply.c:4620
+#: apply.c:4602
#, c-format
msgid "Rejected hunk #%d."
msgstr "Section n°%d rejetée."
-#: apply.c:4749
+#: apply.c:4731
#, c-format
msgid "Skipped patch '%s'."
msgstr "Chemin '%s' non traité."
-#: apply.c:4758
+#: apply.c:4740
msgid "No valid patches in input (allow with \"--allow-empty\")"
msgstr "Pas de rustine valide sur l'entrée (permis avec \"--allow-empty\")"
-#: apply.c:4779
+#: apply.c:4761
msgid "unable to read index file"
msgstr "lecture du fichier d'index impossible"
-#: apply.c:4936
+#: apply.c:4918
#, c-format
msgid "can't open patch '%s': %s"
msgstr "ouverture impossible du patch '%s' :%s"
-#: apply.c:4963
+#: apply.c:4945
#, c-format
msgid "squelched %d whitespace error"
msgid_plural "squelched %d whitespace errors"
msgstr[0] "%d erreur d'espace ignorée"
msgstr[1] "%d erreurs d'espace ignorées"
-#: apply.c:4969 apply.c:4984
+#: apply.c:4951 apply.c:4966
#, c-format
msgid "%d line adds whitespace errors."
msgid_plural "%d lines add whitespace errors."
msgstr[0] "%d ligne a ajouté des erreurs d'espace."
msgstr[1] "%d lignes ont ajouté des erreurs d'espace."
-#: apply.c:4977
+#: apply.c:4959
#, c-format
msgid "%d line applied after fixing whitespace errors."
msgid_plural "%d lines applied after fixing whitespace errors."
msgstr[0] "%d ligne ajoutée après correction des erreurs d'espace."
msgstr[1] "%d lignes ajoutées après correction des erreurs d'espace."
-#: apply.c:4993 builtin/add.c:704 builtin/mv.c:338 builtin/rm.c:430
+#: apply.c:4975 builtin/add.c:690 builtin/mv.c:338 builtin/rm.c:430
msgid "Unable to write new index file"
msgstr "Impossible d'écrire le nouveau fichier d'index"
-#: apply.c:5021
+#: apply.c:5003
msgid "don't apply changes matching the given path"
msgstr "ne pas appliquer les modifications qui correspondent au chemin donné"
-#: apply.c:5024
+#: apply.c:5006
msgid "apply changes matching the given path"
msgstr "appliquer les modifications qui correspondent au chemin donné"
-#: apply.c:5026 builtin/am.c:2376
+#: apply.c:5008 builtin/am.c:2379
msgid "num"
msgstr "num"
-#: apply.c:5027
+#: apply.c:5009
msgid "remove <num> leading slashes from traditional diff paths"
msgstr "supprimer <num> barres obliques des chemins traditionnels de diff"
-#: apply.c:5030
+#: apply.c:5012
msgid "ignore additions made by the patch"
msgstr "ignorer les additions réalisées par le patch"
-#: apply.c:5032
+#: apply.c:5014
msgid "instead of applying the patch, output diffstat for the input"
msgstr "au lieu d'appliquer le patch, afficher le diffstat de l'entrée"
-#: apply.c:5036
+#: apply.c:5018
msgid "show number of added and deleted lines in decimal notation"
msgstr ""
"afficher le nombre de lignes ajoutées et supprimées en notation décimale"
-#: apply.c:5038
+#: apply.c:5020
msgid "instead of applying the patch, output a summary for the input"
msgstr "au lieu d'appliquer le patch, afficher un résumé de l'entrée"
-#: apply.c:5040
+#: apply.c:5022
msgid "instead of applying the patch, see if the patch is applicable"
msgstr "au lieu d'appliquer le patch, voir si le patch est applicable"
-#: apply.c:5042
+#: apply.c:5024
msgid "make sure the patch is applicable to the current index"
msgstr "s'assurer que le patch est applicable sur l'index actuel"
-#: apply.c:5044
+#: apply.c:5026
msgid "mark new files with `git add --intent-to-add`"
msgstr "marquer les nouveaux fichiers `git add --intent-to-add`"
-#: apply.c:5046
+#: apply.c:5028
msgid "apply a patch without touching the working tree"
msgstr "appliquer les patch sans toucher à la copie de travail"
-#: apply.c:5048
+#: apply.c:5030
msgid "accept a patch that touches outside the working area"
msgstr "accepter un patch qui touche hors de la copie de travail"
-#: apply.c:5051
+#: apply.c:5033
msgid "also apply the patch (use with --stat/--summary/--check)"
msgstr "appliquer aussi le patch (à utiliser avec --stat/--summary/--check)"
-#: apply.c:5053
+#: apply.c:5035
msgid "attempt three-way merge, fall back on normal patch if that fails"
msgstr ""
"tenter une fusion à 3 points, revenir à un rustinage normal en cas d'échec"
-#: apply.c:5055
+#: apply.c:5037
msgid "build a temporary index based on embedded index information"
msgstr ""
"construire un index temporaire fondé sur l'information de l'index embarqué"
-#: apply.c:5058 builtin/checkout-index.c:196
+#: apply.c:5040 builtin/checkout-index.c:230
msgid "paths are separated with NUL character"
msgstr "les chemins sont séparés par un caractère NUL"
-#: apply.c:5060
+#: apply.c:5042
msgid "ensure at least <n> lines of context match"
msgstr "s'assurer d'au moins <n> lignes de correspondance de contexte"
-#: apply.c:5061 builtin/am.c:2352 builtin/am.c:2355
+#: apply.c:5043 builtin/am.c:2355 builtin/am.c:2358
#: builtin/interpret-trailers.c:98 builtin/interpret-trailers.c:100
-#: builtin/interpret-trailers.c:102 builtin/pack-objects.c:3960
-#: builtin/rebase.c:1051
+#: builtin/interpret-trailers.c:102 builtin/pack-objects.c:3983
+#: builtin/rebase.c:1079
msgid "action"
msgstr "action"
-#: apply.c:5062
+#: apply.c:5044
msgid "detect new or modified lines that have whitespace errors"
msgstr ""
"détecter des lignes nouvelles ou modifiées qui contiennent des erreurs "
"d'espace"
-#: apply.c:5065 apply.c:5068
+#: apply.c:5047 apply.c:5050
msgid "ignore changes in whitespace when finding context"
msgstr "ignorer des modifications d'espace lors de la recherche de contexte"
-#: apply.c:5071
+#: apply.c:5053
msgid "apply the patch in reverse"
msgstr "appliquer le patch en sens inverse"
-#: apply.c:5073
+#: apply.c:5055
msgid "don't expect at least one line of context"
msgstr "ne pas s'attendre à au moins une ligne de contexte"
-#: apply.c:5075
+#: apply.c:5057
msgid "leave the rejected hunks in corresponding *.rej files"
msgstr "laisser les sections rejetées dans les fichiers *.rej correspondants"
-#: apply.c:5077
+#: apply.c:5059
msgid "allow overlapping hunks"
msgstr "accepter les recouvrements de sections"
-#: apply.c:5080
+#: apply.c:5062
msgid "tolerate incorrectly detected missing new-line at the end of file"
msgstr ""
"tolérer des erreurs de détection de retours chariot manquants en fin de "
"fichier"
-#: apply.c:5083
+#: apply.c:5065
msgid "do not trust the line counts in the hunk headers"
msgstr "ne pas se fier au compte de lignes dans les en-têtes de section"
-#: apply.c:5085 builtin/am.c:2364
+#: apply.c:5067 builtin/am.c:2367
msgid "root"
msgstr "racine"
-#: apply.c:5086
+#: apply.c:5068
msgid "prepend <root> to all filenames"
msgstr "préfixer tous les noms de fichier avec <root>"
-#: apply.c:5089
+#: apply.c:5071
msgid "don't return error for empty patches"
msgstr "ne pas renvoyer d'erreur pour les rustines vides"
-#: archive-tar.c:125 archive-zip.c:345
+#: archive-tar.c:125 archive-zip.c:346
#, c-format
msgid "cannot stream blob %s"
msgstr "impossible de transmettre le blob %s en flux"
-#: archive-tar.c:265 archive-zip.c:358
+#: archive-tar.c:265 archive-zip.c:359
#, c-format
msgid "unsupported file mode: 0%o (SHA1: %s)"
msgstr "mode de fichier non supporté :0%o (SHA1: %s)"
@@ -1637,22 +1640,22 @@ msgstr "impossible de rediriger un descripteur"
msgid "'%s' filter reported error"
msgstr "le filtre '%s' a retourné une erreur"
-#: archive-zip.c:318
+#: archive-zip.c:319
#, c-format
msgid "path is not valid UTF-8: %s"
msgstr "le chemin n'est pas codé en UTF-8 valide : %s"
-#: archive-zip.c:322
+#: archive-zip.c:323
#, c-format
msgid "path too long (%d chars, SHA1: %s): %s"
msgstr "le chemin est trop long (%d caractères, SHA1 : %s) : %s"
-#: archive-zip.c:469 builtin/pack-objects.c:365 builtin/pack-objects.c:368
+#: archive-zip.c:470 builtin/pack-objects.c:363 builtin/pack-objects.c:366
#, c-format
msgid "deflate error (%d)"
msgstr "erreur de compression (%d)"
-#: archive-zip.c:603
+#: archive-zip.c:604
#, c-format
msgid "timestamp too large for this system: %<PRIuMAX>"
msgstr "l'horodatage est trop grand pour ce système : %<PRIuMAX>"
@@ -1661,10 +1664,6 @@ msgstr "l'horodatage est trop grand pour ce système : %<PRIuMAX>"
msgid "git archive [<options>] <tree-ish> [<path>...]"
msgstr "git archive [<options>] <arbre ou apparenté> [<chemin>...]"
-#: archive.c:15
-msgid "git archive --list"
-msgstr "git archive --list"
-
#: archive.c:16
msgid ""
"git archive --remote <repo> [--exec <cmd>] [<options>] <tree-ish> [<path>...]"
@@ -1677,12 +1676,12 @@ msgid "git archive --remote <repo> [--exec <cmd>] --list"
msgstr "git archive --remote <dépôt> [--exec <commande>] --list"
#: archive.c:188 archive.c:341 builtin/gc.c:497 builtin/notes.c:238
-#: builtin/tag.c:578
+#: builtin/tag.c:579
#, c-format
msgid "cannot read '%s'"
msgstr "impossible de lire '%s'"
-#: archive.c:426 builtin/add.c:215 builtin/add.c:671 builtin/rm.c:334
+#: archive.c:426 builtin/add.c:214 builtin/add.c:657 builtin/rm.c:334
#, c-format
msgid "pathspec '%s' did not match any files"
msgstr "le chemin '%s' ne correspond à aucun fichier"
@@ -1724,7 +1723,7 @@ msgstr "fmt"
msgid "archive format"
msgstr "format d'archive"
-#: archive.c:552 builtin/log.c:1790
+#: archive.c:552 builtin/log.c:1809
msgid "prefix"
msgstr "préfixe"
@@ -1732,12 +1731,12 @@ msgstr "préfixe"
msgid "prepend prefix to each pathname in the archive"
msgstr "préfixer chaque chemin de fichier dans l'archive"
-#: archive.c:554 archive.c:557 builtin/blame.c:880 builtin/blame.c:884
-#: builtin/blame.c:885 builtin/commit-tree.c:115 builtin/config.c:135
+#: archive.c:554 archive.c:557 builtin/blame.c:881 builtin/blame.c:885
+#: builtin/blame.c:886 builtin/commit-tree.c:115 builtin/config.c:135
#: builtin/fast-export.c:1181 builtin/fast-export.c:1183
-#: builtin/fast-export.c:1187 builtin/grep.c:935 builtin/hash-object.c:103
+#: builtin/fast-export.c:1187 builtin/grep.c:936 builtin/hash-object.c:104
#: builtin/ls-files.c:654 builtin/ls-files.c:657 builtin/notes.c:410
-#: builtin/notes.c:576 builtin/read-tree.c:115 parse-options.h:190
+#: builtin/notes.c:576 builtin/read-tree.c:115 parse-options.h:195
msgid "file"
msgstr "fichier"
@@ -1765,8 +1764,8 @@ msgstr "régler le niveau de compression"
msgid "list supported archive formats"
msgstr "afficher les formats d'archive supportés"
-#: archive.c:568 builtin/archive.c:89 builtin/clone.c:118 builtin/clone.c:121
-#: builtin/submodule--helper.c:1870 builtin/submodule--helper.c:2513
+#: archive.c:568 builtin/archive.c:89 builtin/clone.c:122 builtin/clone.c:125
+#: builtin/submodule--helper.c:1884 builtin/submodule--helper.c:2718
msgid "repo"
msgstr "dépôt"
@@ -1787,11 +1786,12 @@ msgstr "chemin vers la commande distante git-upload-archive"
msgid "Unexpected option --remote"
msgstr "Option --remote inattendue"
-#: archive.c:580 fetch-pack.c:300 revision.c:2887 builtin/add.c:544
-#: builtin/add.c:576 builtin/checkout.c:1763 builtin/commit.c:370
-#: builtin/fast-export.c:1230 builtin/index-pack.c:1848 builtin/log.c:2115
-#: builtin/reset.c:435 builtin/reset.c:493 builtin/rm.c:281
-#: builtin/stash.c:1719 builtin/worktree.c:508 http-fetch.c:144
+#: archive.c:580 fetch-pack.c:300 revision.c:2914 builtin/add.c:530
+#: builtin/add.c:562 builtin/checkout.c:1782 builtin/clone.c:1099
+#: builtin/clone.c:1102 builtin/commit.c:371 builtin/fast-export.c:1230
+#: builtin/index-pack.c:1854 builtin/log.c:2140 builtin/reset.c:442
+#: builtin/reset.c:500 builtin/rm.c:281 builtin/stash.c:1708
+#: builtin/worktree.c:580 builtin/worktree.c:781 http-fetch.c:144
#: http-fetch.c:153
#, c-format
msgid "the option '%s' requires '%s'"
@@ -1811,17 +1811,17 @@ msgstr "Format d'archive inconnu '%s'"
msgid "Argument not supported for format '%s': -%d"
msgstr "Argument non supporté pour le format '%s' : -%d"
-#: attr.c:203
+#: attr.c:202
#, c-format
msgid "%.*s is not a valid attribute name"
msgstr "%.*s n'est pas un nom valide d'attribut"
-#: attr.c:364
+#: attr.c:363
#, c-format
msgid "%s not allowed: %s:%d"
msgstr "%s non permis : %s : %d"
-#: attr.c:404
+#: attr.c:403
msgid ""
"Negative patterns are ignored in git attributes\n"
"Use '\\!' for literal leading exclamation."
@@ -1839,12 +1839,12 @@ msgstr "Contenu mal cité dans le fichier '%s' : %s"
msgid "We cannot bisect more!\n"
msgstr "Impossible de pousser la bissection plus loin !\n"
-#: bisect.c:764
+#: bisect.c:765
#, c-format
msgid "Not a valid commit name %s"
msgstr "%s n'est pas un nom de commit valide"
-#: bisect.c:789
+#: bisect.c:790
#, c-format
msgid ""
"The merge base %s is bad.\n"
@@ -1853,7 +1853,7 @@ msgstr ""
"La base de fusion %s est mauvaise.\n"
"Cela signifie que le bogue été corrigé entre %s et [%s].\n"
-#: bisect.c:794
+#: bisect.c:795
#, c-format
msgid ""
"The merge base %s is new.\n"
@@ -1862,7 +1862,7 @@ msgstr ""
"La base de fusion %s est nouvelle.\n"
"La propriété a changé entre %s et [%s].\n"
-#: bisect.c:799
+#: bisect.c:800
#, c-format
msgid ""
"The merge base %s is %s.\n"
@@ -1871,7 +1871,7 @@ msgstr ""
"La base de fusion %s est %s.\n"
"Ceci signifie que le premier commit '%s' est entre %s et [%s].\n"
-#: bisect.c:807
+#: bisect.c:808
#, c-format
msgid ""
"Some %s revs are not ancestors of the %s rev.\n"
@@ -1882,7 +1882,7 @@ msgstr ""
"git bisect ne peut pas fonctionner correctement dans ce cas.\n"
"Peut-être les révisions %s et %s ne sont-elles pas les bonnes ?\n"
-#: bisect.c:820
+#: bisect.c:821
#, c-format
msgid ""
"the merge base between %s and [%s] must be skipped.\n"
@@ -1894,36 +1894,36 @@ msgstr ""
"et %s.\n"
"On continue tout de même."
-#: bisect.c:859
+#: bisect.c:860
#, c-format
msgid "Bisecting: a merge base must be tested\n"
msgstr "Bissection : une base de fusion doit être testée\n"
-#: bisect.c:909
+#: bisect.c:910
#, c-format
msgid "a %s revision is needed"
msgstr "une révision %s est nécessaire"
-#: bisect.c:939
+#: bisect.c:940
#, c-format
msgid "could not create file '%s'"
msgstr "impossible de créer le fichier '%s'"
-#: bisect.c:985 builtin/merge.c:155
+#: bisect.c:986 builtin/merge.c:155
#, c-format
msgid "could not read file '%s'"
msgstr "impossible de lire le fichier '%s'"
-#: bisect.c:1025
+#: bisect.c:1026
msgid "reading bisect refs failed"
msgstr "impossible de lire les références de bissection"
-#: bisect.c:1055
+#: bisect.c:1056
#, c-format
msgid "%s was both %s and %s\n"
msgstr "%s était à la fois %s et %s\n"
-#: bisect.c:1064
+#: bisect.c:1065
#, c-format
msgid ""
"No testable commit found.\n"
@@ -1932,7 +1932,7 @@ msgstr ""
"Aucun commit testable n'a été trouvé\n"
"Peut-être avez-vous démarré avec un mauvais arguement de chemin ?\n"
-#: bisect.c:1093
+#: bisect.c:1094
#, c-format
msgid "(roughly %d step)"
msgid_plural "(roughly %d steps)"
@@ -1942,54 +1942,54 @@ msgstr[1] "(à peu près %d étapes)"
#. TRANSLATORS: the last %s will be replaced with "(roughly %d
#. steps)" translation.
#.
-#: bisect.c:1099
+#: bisect.c:1100
#, c-format
msgid "Bisecting: %d revision left to test after this %s\n"
msgid_plural "Bisecting: %d revisions left to test after this %s\n"
msgstr[0] "Bissection : %d révision à tester après ceci %s\n"
msgstr[1] "Bissection : %d révisions à tester après ceci %s\n"
-#: blame.c:2776
+#: blame.c:2773
msgid "--contents and --reverse do not blend well."
msgstr "--contents et --reverse ne font pas bon ménage."
-#: blame.c:2790
+#: blame.c:2787
msgid "cannot use --contents with final commit object name"
msgstr "on ne peut pas utiliser --contents avec un nom d'objet commit final"
-#: blame.c:2811
+#: blame.c:2808
msgid "--reverse and --first-parent together require specified latest commit"
msgstr ""
"--reverse et --first-parent ensemble nécessitent la spécification d'un "
"dernier commit"
-#: blame.c:2820 bundle.c:224 midx.c:1042 ref-filter.c:2370 remote.c:2158
-#: sequencer.c:2352 sequencer.c:4899 submodule.c:883 builtin/commit.c:1114
-#: builtin/log.c:429 builtin/log.c:1036 builtin/log.c:1644 builtin/log.c:2071
-#: builtin/log.c:2362 builtin/merge.c:431 builtin/pack-objects.c:3373
-#: builtin/pack-objects.c:3775 builtin/pack-objects.c:3790
+#: blame.c:2817 bundle.c:231 midx.c:1058 ref-filter.c:2371 remote.c:2157
+#: sequencer.c:2348 sequencer.c:4872 submodule.c:913 builtin/commit.c:1118
+#: builtin/log.c:437 builtin/log.c:1055 builtin/log.c:1663 builtin/log.c:2096
+#: builtin/log.c:2387 builtin/merge.c:431 builtin/pack-objects.c:3381
+#: builtin/pack-objects.c:3781 builtin/pack-objects.c:3796
#: builtin/shortlog.c:255
msgid "revision walk setup failed"
msgstr "échec de la préparation du parcours des révisions"
-#: blame.c:2838
+#: blame.c:2835
msgid ""
"--reverse --first-parent together require range along first-parent chain"
msgstr ""
"--reverse --first-parent ensemble nécessitent une portée avec la chaîne de "
"premier parent"
-#: blame.c:2849
+#: blame.c:2846
#, c-format
msgid "no such path %s in %s"
msgstr "pas de chemin %s dans %s"
-#: blame.c:2860
+#: blame.c:2857
#, c-format
msgid "cannot read blob %s for path %s"
msgstr "impossible de lire le blob %s pour le chemin %s"
-#: branch.c:77
+#: branch.c:93
msgid ""
"cannot inherit upstream tracking configuration of multiple refs when "
"rebasing is requested"
@@ -1997,31 +1997,31 @@ msgstr ""
"impossible d'hériter la configuration de suivi de référence amont depuis "
"plusieurs références quand un rebasage est demandé"
-#: branch.c:88
+#: branch.c:104
#, c-format
msgid "not setting branch '%s' as its own upstream"
msgstr "la branche %s ne peut pas être sa propre branche amont"
-#: branch.c:144
+#: branch.c:160
#, c-format
msgid "branch '%s' set up to track '%s' by rebasing."
msgstr "la branche '%s' est paramétrée pour suivre '%s' en rebasant."
-#: branch.c:145
+#: branch.c:161
#, c-format
msgid "branch '%s' set up to track '%s'."
msgstr "la branche '%s' est paramétrée pour suivre '%s'."
-#: branch.c:148
+#: branch.c:164
#, c-format
msgid "branch '%s' set up to track:"
msgstr "la branche '%s' est paramétrée pour suivre :"
-#: branch.c:160
+#: branch.c:176
msgid "unable to write upstream branch configuration"
msgstr "échec de l'écriture de la configuration de branche amont"
-#: branch.c:162
+#: branch.c:178
msgid ""
"\n"
"After fixing the error cause you may try to fix up\n"
@@ -2031,52 +2031,90 @@ msgstr ""
"Après correction de la cause de l'erreur, vous pouvez essayer\n"
"de corriger l'information de suivi distant en invoquant :"
-#: branch.c:203
+#: branch.c:219
#, c-format
msgid "asked to inherit tracking from '%s', but no remote is set"
msgstr "héritage de suivi depuis '%s' demandé, mais pas de distant configuré"
-#: branch.c:209
+#: branch.c:225
#, c-format
msgid "asked to inherit tracking from '%s', but no merge configuration is set"
msgstr ""
"héritage de suivi depuis '%s' demandé, mais pas de configuration de fusion "
"renseignée"
-#: branch.c:252
+#: branch.c:277
+#, c-format
+msgid "not tracking: ambiguous information for ref '%s'"
+msgstr "pas de suivi : information ambiguë pour la référence '%s'"
+
+#. TRANSLATORS: This is a line listing a remote with duplicate
+#. refspecs in the advice message below. For RTL languages you'll
+#. probably want to swap the "%s" and leading " " space around.
+#.
+#. TRANSLATORS: This is line item of ambiguous object output
+#. from describe_ambiguous_object() above. For RTL languages
+#. you'll probably want to swap the "%s" and leading " " space
+#. around.
+#.
+#: branch.c:289 object-name.c:464
+#, c-format
+msgid " %s\n"
+msgstr " %s\n"
+
+#. TRANSLATORS: The second argument is a \n-delimited list of
+#. duplicate refspecs, composed above.
+#.
+#: branch.c:295
#, c-format
-msgid "not tracking: ambiguous information for ref %s"
-msgstr "pas de suivi : information ambiguë pour la référence %s"
+msgid ""
+"There are multiple remotes whose fetch refspecs map to the remote\n"
+"tracking ref '%s':\n"
+"%s\n"
+"This is typically a configuration error.\n"
+"\n"
+"To support setting up tracking branches, ensure that\n"
+"different remotes' fetch refspecs map into different\n"
+"tracking namespaces."
+msgstr ""
+"Il y a plusieurs distants dont les spécificateurs de référence de\n"
+"récupération correspondent à la référence de suivi '%s' :\n"
+"%s\n"
+"C'est typiquement une erreur de configuration.\n"
+"\n"
+"Pour gérer le réglage des branches de suivi, assurez-vous\n"
+"que des réfspecs de récupération de distants différents\n"
+"correspondent à des espaces de nommage de suivi différents."
-#: branch.c:287
+#: branch.c:344
#, c-format
msgid "'%s' is not a valid branch name"
msgstr "'%s' n'est pas un nom de branche valide"
-#: branch.c:307
+#: branch.c:364
#, c-format
msgid "a branch named '%s' already exists"
msgstr "Une branche nommée '%s' existe déjà"
-#: branch.c:313
+#: branch.c:370
#, c-format
msgid "cannot force update the branch '%s' checked out at '%s'"
msgstr ""
"impossible de forcer la mise à jour de la branche '%s' extraite dans '%s'"
-#: branch.c:336
+#: branch.c:393
#, c-format
msgid "cannot set up tracking information; starting point '%s' is not a branch"
msgstr ""
"Impossible de configurer le suivi de branche ; le point de départ '%s' n'est "
"pas une branche"
-#: branch.c:338
+#: branch.c:395
#, c-format
msgid "the requested upstream branch '%s' does not exist"
msgstr "la branche amont demandée '%s' n'existe pas"
-#: branch.c:340
+#: branch.c:397
msgid ""
"\n"
"If you are planning on basing your work on an upstream\n"
@@ -2096,126 +2134,145 @@ msgstr ""
"sa jumelle distante, vous pouvez utiliser \"git push -u\"\n"
"pour paramétrer le suivi distant en même temps que vous poussez."
-#: branch.c:384 builtin/replace.c:321 builtin/replace.c:377
+#: branch.c:445 builtin/replace.c:321 builtin/replace.c:377
#: builtin/replace.c:423 builtin/replace.c:453
#, c-format
msgid "not a valid object name: '%s'"
msgstr "nom d'objet invalide : '%s'"
-#: branch.c:404
+#: branch.c:465
#, c-format
msgid "ambiguous object name: '%s'"
msgstr "Nom d'objet ambigu : '%s'"
-#: branch.c:409
+#: branch.c:470
#, c-format
msgid "not a valid branch point: '%s'"
msgstr "point d'embranchement invalide : '%s'"
-#: branch.c:469
+#: branch.c:658
+#, c-format
+msgid "submodule '%s': unable to find submodule"
+msgstr "sous-module '%s' : impossible de trouver le sous-module"
+
+#: branch.c:661
+#, c-format
+msgid ""
+"You may try updating the submodules using 'git checkout %s && git submodule "
+"update --init'"
+msgstr ""
+"Vous pouvez essayer de mettre à jour les sous-modules en utilisant 'git "
+"checkout %s && git submodule update --init'"
+
+#: branch.c:672 branch.c:698
+#, c-format
+msgid "submodule '%s': cannot create branch '%s'"
+msgstr "sous-module '%s' : impossible de créer la branche '%s'"
+
+#: branch.c:730
#, c-format
msgid "'%s' is already checked out at '%s'"
msgstr "'%s' est déjà extrait dans '%s'"
-#: branch.c:494
+#: branch.c:755
#, c-format
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:44
+#: bundle.c:45
#, c-format
msgid "unrecognized bundle hash algorithm: %s"
msgstr "algorithme d'empreinte du colis inconnu : %s"
-#: bundle.c:48
+#: bundle.c:53
#, c-format
msgid "unknown capability '%s'"
msgstr "capacité inconnue '%s'"
-#: bundle.c:74
+#: bundle.c:79
#, c-format
msgid "'%s' does not look like a v2 or v3 bundle file"
msgstr "'%s' ne semble pas être un fichier colis v2 our v3"
-#: bundle.c:113
+#: bundle.c:118
#, c-format
msgid "unrecognized header: %s%s (%d)"
msgstr "en-tête non reconnu : %s%s (%d)"
-#: bundle.c:140 rerere.c:464 rerere.c:674 sequencer.c:2620 sequencer.c:3406
-#: builtin/commit.c:862
+#: bundle.c:145 rerere.c:464 rerere.c:675 sequencer.c:2616 sequencer.c:3402
+#: builtin/commit.c:865
#, c-format
msgid "could not open '%s'"
msgstr "impossible d'ouvrir '%s'"
-#: bundle.c:198
+#: bundle.c:203
msgid "Repository lacks these prerequisite commits:"
msgstr "Le dépôt ne dispose pas des commits prérequis suivants :"
-#: bundle.c:201
+#: bundle.c:206
msgid "need a repository to verify a bundle"
msgstr "la vérification d'un colis requiert un dépôt"
-#: bundle.c:257
+#: bundle.c:264
#, 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 :"
+msgid_plural "The bundle contains these %<PRIuMAX> refs:"
+msgstr[0] "Le colis contient cette référence :"
+msgstr[1] "Le colis contient ces %<PRIuMAX> références :"
-#: bundle.c:264
+#: bundle.c:272
msgid "The bundle records a complete history."
msgstr "Le colis enregistre l'historique complet."
-#: bundle.c:266
+#: bundle.c:274
#, 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 :"
+msgid_plural "The bundle requires these %<PRIuMAX> refs:"
+msgstr[0] "Le colis exige cette référence :"
+msgstr[1] "Le colis exige ces %<PRIuMAX> références :"
-#: bundle.c:333
+#: bundle.c:350
msgid "unable to dup bundle descriptor"
msgstr "impossible de dupliquer le descripteur de liasse"
-#: bundle.c:340
+#: bundle.c:357
msgid "Could not spawn pack-objects"
msgstr "Impossible de créer des objets groupés"
-#: bundle.c:351
+#: bundle.c:368
msgid "pack-objects died"
msgstr "les objets groupés ont disparu"
-#: bundle.c:400
+#: bundle.c:417
#, 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:504
+#: bundle.c:533 builtin/log.c:211 builtin/log.c:1975 builtin/shortlog.c:400
+#, c-format
+msgid "unrecognized argument: %s"
+msgstr "argument non reconnu : %s"
+
+#: bundle.c:548
#, c-format
msgid "unsupported bundle version %d"
msgstr "version de colis non supportée %d"
-#: bundle.c:506
+#: bundle.c:550
#, c-format
msgid "cannot write bundle version %d with algorithm %s"
msgstr "impossible d'écrire une version de colis %d avec l'algorithme %s"
-#: bundle.c:524 builtin/log.c:210 builtin/log.c:1953 builtin/shortlog.c:399
-#, c-format
-msgid "unrecognized argument: %s"
-msgstr "argument non reconnu : %s"
-
-#: bundle.c:553
+#: bundle.c:600
msgid "Refusing to create empty bundle."
msgstr "Refus de créer un colis vide."
-#: bundle.c:563
+#: bundle.c:610
#, c-format
msgid "cannot create '%s'"
msgstr "impossible de créer '%s'"
-#: bundle.c:588
+#: bundle.c:639
msgid "index-pack died"
msgstr "l'index de groupe a disparu"
@@ -2243,7 +2300,7 @@ msgstr "la section finale a un id non nul %<PRIx32>"
msgid "invalid color value: %.*s"
msgstr "valeur invalide de couleur : %.*s"
-#: commit-graph.c:204 midx.c:51
+#: commit-graph.c:204 midx.c:52
msgid "invalid hash version"
msgstr "version d'empreinte invalide"
@@ -2274,218 +2331,221 @@ msgstr ""
msgid "commit-graph file is too small to hold %u chunks"
msgstr "le graphe de commit est trop petit pour contenir %u sections"
-#: commit-graph.c:482
+#: commit-graph.c:485
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:492
+#: commit-graph.c:495
msgid "commit-graph chain does not match"
msgstr "la chaîne de graphe de commit ne correspond pas"
-#: commit-graph.c:540
+#: commit-graph.c:543
#, 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:564
+#: commit-graph.c:567
msgid "unable to find all commit-graph files"
msgstr "impossible de trouver tous les fichiers du graphe de commit"
-#: commit-graph.c:749 commit-graph.c:786
+#: commit-graph.c:752 commit-graph.c:789
msgid "invalid commit position. commit-graph is likely corrupt"
msgstr ""
"position de commit invalide. Le graphe de commit est vraisemblablement "
"corrompu"
-#: commit-graph.c:770
+#: commit-graph.c:773
#, c-format
msgid "could not find commit %s"
msgstr "impossible de trouver le commit %s"
-#: commit-graph.c:803
+#: commit-graph.c:806
msgid "commit-graph requires overflow generation data but has none"
msgstr ""
"le graphe de commits requiert des données de génération de débordement mais "
"n'en contient pas"
-#: commit-graph.c:1108 builtin/am.c:1369
+#: commit-graph.c:1111 builtin/am.c:1370 builtin/checkout.c:775
+#: builtin/clone.c:705
#, c-format
msgid "unable to parse commit %s"
msgstr "impossible d'analyser le commit %s"
-#: commit-graph.c:1370 builtin/pack-objects.c:3070
+#: commit-graph.c:1373 builtin/pack-objects.c:3078
#, c-format
msgid "unable to get type of object %s"
msgstr "impossible d'obtenir le type de l'objet %s"
-#: commit-graph.c:1401
+#: commit-graph.c:1404
msgid "Loading known commits in commit graph"
msgstr "Lecture des commits connus dans un graphe de commit"
-#: commit-graph.c:1418
+#: commit-graph.c:1421
msgid "Expanding reachable commits in commit graph"
msgstr "Expansion des commits joignables dans un graphe de commit"
-#: commit-graph.c:1438
+#: commit-graph.c:1441
msgid "Clearing commit marks in commit graph"
msgstr "Suppression les marques de commit dans le graphe de commits"
-#: commit-graph.c:1457
+#: commit-graph.c:1460
msgid "Computing commit graph topological levels"
msgstr "Calcul des niveaux topologiques du graphe de commits"
-#: commit-graph.c:1510
+#: commit-graph.c:1513
msgid "Computing commit graph generation numbers"
msgstr "Calcul des chiffres de génération du graphe de commits"
-#: commit-graph.c:1591
+#: commit-graph.c:1598
msgid "Computing commit changed paths Bloom filters"
msgstr "Calcul des filtres Bloom des chemins modifiés du commit"
-#: commit-graph.c:1668
+#: commit-graph.c:1675
msgid "Collecting referenced commits"
msgstr "Collecte des commits référencés"
-#: commit-graph.c:1693
+#: commit-graph.c:1701
#, 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"
+msgid "Finding commits for commit graph in %<PRIuMAX> pack"
+msgid_plural "Finding commits for commit graph in %<PRIuMAX> packs"
+msgstr[0] ""
+"Recherche de commits pour un graphe de commits dans %<PRIuMAX> paquet"
+msgstr[1] ""
+"Recherche de commits pour un graphe de commits dans %<PRIuMAX> paquets"
-#: commit-graph.c:1706
+#: commit-graph.c:1714
#, c-format
msgid "error adding pack %s"
msgstr "erreur à l'ajout du packet %s"
-#: commit-graph.c:1710
+#: commit-graph.c:1718
#, c-format
msgid "error opening index for %s"
msgstr "erreur à l'ouverture de l'index pour %s"
-#: commit-graph.c:1747
+#: commit-graph.c:1756
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:1765
+#: commit-graph.c:1774
msgid "Finding extra edges in commit graph"
msgstr "Recherche d'arêtes supplémentaires dans un graphe de commits"
-#: commit-graph.c:1814
+#: commit-graph.c:1823
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:1845 midx.c:1149
+#: commit-graph.c:1854 midx.c:1168 builtin/sparse-checkout.c:475
#, 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:1858
+#: commit-graph.c:1868
msgid "unable to create temporary graph layer"
msgstr "impossible de créer une couche de graphe temporaire"
-#: commit-graph.c:1863
+#: commit-graph.c:1873
#, c-format
msgid "unable to adjust shared permissions for '%s'"
msgstr "impossible de régler les droits partagés pour '%s'"
-#: commit-graph.c:1920
+#: commit-graph.c:1930
#, 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:1956
+#: commit-graph.c:1967
msgid "unable to open commit-graph chain file"
msgstr "impossible d'ouvrir le fichier de graphe de commit"
-#: commit-graph.c:1972
+#: commit-graph.c:1983
msgid "failed to rename base commit-graph file"
msgstr "échec du renommage du fichier de graphe de commits"
-#: commit-graph.c:1992
+#: commit-graph.c:2004
msgid "failed to rename temporary commit-graph file"
msgstr "impossible de renommer le fichier temporaire de graphe de commits"
-#: commit-graph.c:2125
+#: commit-graph.c:2137
msgid "Scanning merged commits"
msgstr "Analyse des commits de fusion"
-#: commit-graph.c:2169
+#: commit-graph.c:2181
msgid "Merging commit-graph"
msgstr "Fusion du graphe de commits"
-#: commit-graph.c:2277
+#: commit-graph.c:2289
msgid "attempting to write a commit-graph, but 'core.commitGraph' is disabled"
msgstr ""
"essai d'écriture de graphe de commits, mais 'core.commitGraph' est désactivé"
-#: commit-graph.c:2384
+#: commit-graph.c:2396
msgid "too many commits to write graph"
msgstr "trop de commits pour écrire un graphe"
-#: commit-graph.c:2482
+#: commit-graph.c:2494
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:2492
+#: commit-graph.c:2504
#, 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:2502 commit-graph.c:2517
+#: commit-graph.c:2514 commit-graph.c:2529
#, 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:2509
+#: commit-graph.c:2521
#, 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:2527
+#: commit-graph.c:2539
msgid "Verifying commits in commit graph"
msgstr "Verification des commits dans le graphe de commits"
-#: commit-graph.c:2542
+#: commit-graph.c:2554
#, 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:2549
+#: commit-graph.c:2561
#, 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:2559
+#: commit-graph.c:2571
#, 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:2568
+#: commit-graph.c:2580
#, 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:2582
+#: commit-graph.c:2594
#, 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:2587
+#: commit-graph.c:2599
#, c-format
msgid ""
"commit-graph has generation number zero for commit %s, but non-zero elsewhere"
@@ -2493,7 +2553,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:2591
+#: commit-graph.c:2603
#, c-format
msgid ""
"commit-graph has non-zero generation number for commit %s, but zero elsewhere"
@@ -2501,32 +2561,32 @@ 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:2608
+#: commit-graph.c:2620
#, c-format
msgid "commit-graph generation for commit %s is %<PRIuMAX> < %<PRIuMAX>"
msgstr ""
"la génération du graphe de commit pour le commit %s est %<PRIuMAX> < "
"%<PRIuMAX>"
-#: commit-graph.c:2614
+#: commit-graph.c:2626
#, c-format
msgid "commit date for commit %s in commit-graph is %<PRIuMAX> != %<PRIuMAX>"
msgstr ""
"la date de validation pour le commit %s dans le graphe de commit est "
"%<PRIuMAX> != %<PRIuMAX>"
-#: commit.c:53 sequencer.c:3109 builtin/am.c:399 builtin/am.c:444
-#: builtin/am.c:449 builtin/am.c:1448 builtin/am.c:2123 builtin/replace.c:456
+#: commit.c:54 sequencer.c:3105 builtin/am.c:400 builtin/am.c:445
+#: builtin/am.c:450 builtin/am.c:1449 builtin/am.c:2124 builtin/replace.c:456
#, c-format
msgid "could not parse %s"
msgstr "impossible d'analyser %s"
-#: commit.c:55
+#: commit.c:56
#, c-format
msgid "%s %s is not a commit!"
msgstr "%s %s n'est pas un commit !"
-#: commit.c:196
+#: commit.c:197
msgid ""
"Support for <GIT_DIR>/info/grafts is deprecated\n"
"and will be removed in a future Git version.\n"
@@ -2546,27 +2606,27 @@ msgstr ""
"Supprimez ce message en lançant\n"
"\"git config advice.graftFileDeprecated false\""
-#: commit.c:1241
+#: commit.c:1252
#, 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:1245
+#: commit.c:1256
#, 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:1248
+#: commit.c:1259
#, c-format
msgid "Commit %s does not have a GPG signature."
msgstr "La validation %s n'a pas de signature GPG."
-#: commit.c:1251
+#: commit.c:1262
#, 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:1505
+#: commit.c:1516
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"
@@ -2582,7 +2642,17 @@ msgstr ""
msgid "memory exhausted"
msgstr "plus de mémoire"
-#: config.c:125
+#: compat/terminal.c:167
+msgid "cannot resume in the background, please use 'fg' to resume"
+msgstr ""
+"impossible de reprendre en arrière plan, veuillez utiliser 'fg' pour "
+"reprendre"
+
+#: compat/terminal.c:168
+msgid "cannot restore terminal settings"
+msgstr "impossible de restaurer les réglages du terminal"
+
+#: config.c:143
#, c-format
msgid ""
"exceeded maximum include depth (%d) while including\n"
@@ -2597,350 +2667,377 @@ msgstr ""
"\t%s\n"
"possibilité d'inclusions multiples."
-#: config.c:141
+#: config.c:159
#, c-format
msgid "could not expand include path '%s'"
msgstr "expansion impossible du chemin d'inclusion '%s'"
-#: config.c:152
+#: config.c:170
msgid "relative config includes must come from files"
msgstr "les inclusions de configuration relatives doivent venir de fichiers"
-#: config.c:201
+#: config.c:219
msgid "relative config include conditionals must come from files"
msgstr ""
"les conditions d'inclusion de configuration relative doivent venir de "
"fichiers"
-#: config.c:398
+#: config.c:364
+msgid ""
+"remote URLs cannot be configured in file directly or indirectly included by "
+"includeIf.hasconfig:remote.*.url"
+msgstr ""
+"les URL distantes ne peuvent pas être configurées dans un fichier "
+"directement ou indirectement inclus par includeIf.hasconfig:remote.*.url"
+
+#: config.c:508
#, c-format
msgid "invalid config format: %s"
msgstr "format de config invalide : %s"
-#: config.c:402
+#: config.c:512
#, c-format
msgid "missing environment variable name for configuration '%.*s'"
msgstr "nom de variable d'environnement manquant pour le configuration '%.*s'"
-#: config.c:407
+#: config.c:517
#, c-format
msgid "missing environment variable '%s' for configuration '%.*s'"
msgstr "variable d'environnement '%s' manquante pour le configuration '%.*s'"
-#: config.c:443
+#: config.c:553
#, c-format
msgid "key does not contain a section: %s"
msgstr "la clé ne contient pas de section: %s"
-#: config.c:448
+#: config.c:558
#, c-format
msgid "key does not contain variable name: %s"
msgstr "la clé ne contient pas de nom de variable : %s"
-#: config.c:470 sequencer.c:2806
+#: config.c:580 sequencer.c:2802
#, c-format
msgid "invalid key: %s"
msgstr "clé invalide : %s"
-#: config.c:475
+#: config.c:585
#, c-format
msgid "invalid key (newline): %s"
msgstr "clé invalide (retour chariot) : %s"
-#: config.c:495
+#: config.c:605
msgid "empty config key"
msgstr "clé de configuration vide"
-#: config.c:513 config.c:525
+#: config.c:623 config.c:635
#, c-format
msgid "bogus config parameter: %s"
msgstr "paramètre de configuration mal formé: %s"
-#: config.c:539 config.c:556 config.c:563 config.c:572
+#: config.c:649 config.c:666 config.c:673 config.c:682
#, c-format
msgid "bogus format in %s"
msgstr "formatage mal formé dans %s"
-#: config.c:606
+#: config.c:716
#, c-format
msgid "bogus count in %s"
msgstr "compte faux dans %s"
-#: config.c:610
+#: config.c:720
#, c-format
msgid "too many entries in %s"
msgstr "trop d'entrées dans %s"
-#: config.c:620
+#: config.c:730
#, c-format
msgid "missing config key %s"
msgstr "clé de configuration %s manquante"
-#: config.c:628
+#: config.c:738
#, c-format
msgid "missing config value %s"
msgstr "valeur de config manquante %s"
-#: config.c:979
+#: config.c:1089
#, c-format
msgid "bad config line %d in blob %s"
msgstr "ligne %d de config incorrecte dans le blob %s"
-#: config.c:983
+#: config.c:1093
#, c-format
msgid "bad config line %d in file %s"
msgstr "ligne %d de config incorrecte dans le fichier %s"
-#: config.c:987
+#: config.c:1097
#, c-format
msgid "bad config line %d in standard input"
msgstr "ligne %d de config incorrecte dans l'entrée standard"
-#: config.c:991
+#: config.c:1101
#, c-format
msgid "bad config line %d in submodule-blob %s"
msgstr "ligne %d de config incorrecte dans le blob de sous-module %s"
-#: config.c:995
+#: config.c:1105
#, c-format
msgid "bad config line %d in command line %s"
msgstr "ligne %d de config incorrecte dans la ligne de commande %s"
-#: config.c:999
+#: config.c:1109
#, c-format
msgid "bad config line %d in %s"
msgstr "ligne %d de config incorrecte dans %s"
-#: config.c:1136
+#: config.c:1246
msgid "out of range"
msgstr "hors plage"
-#: config.c:1136
+#: config.c:1246
msgid "invalid unit"
msgstr "unité invalide"
-#: config.c:1137
+#: config.c:1247
#, c-format
msgid "bad numeric config value '%s' for '%s': %s"
msgstr "valeur numérique de configuration invalide '%s' pour '%s' : %s"
-#: config.c:1147
+#: config.c:1257
#, c-format
msgid "bad numeric config value '%s' for '%s' in blob %s: %s"
msgstr ""
"valeur numérique de configuration incorrecte '%s' pour '%s' dans le blob "
"%s : %s"
-#: config.c:1150
+#: config.c:1260
#, c-format
msgid "bad numeric config value '%s' for '%s' in file %s: %s"
msgstr ""
"valeur numérique de configuration incorrecte '%s' pour '%s' dans le fichier "
"%s : %s"
-#: config.c:1153
+#: config.c:1263
#, c-format
msgid "bad numeric config value '%s' for '%s' in standard input: %s"
msgstr ""
"valeur numérique de configuration incorrecte '%s' pour '%s' dans l'entrée "
"standard : %s"
-#: config.c:1156
+#: config.c:1266
#, c-format
msgid "bad numeric config value '%s' for '%s' in submodule-blob %s: %s"
msgstr ""
"valeur numérique de configuration incorrecte '%s' pour '%s' dans le blob de "
"sous-module %s : %s"
-#: config.c:1159
+#: config.c:1269
#, c-format
msgid "bad numeric config value '%s' for '%s' in command line %s: %s"
msgstr ""
"valeur numérique de configuration incorrecte '%s' pour '%s' dans la ligne de "
"commande %s : %s"
-#: config.c:1162
+#: config.c:1272
#, c-format
msgid "bad numeric config value '%s' for '%s' in %s: %s"
msgstr ""
"valeur numérique de configuration incorrecte '%s' pour '%s' dans %s : %s"
-#: config.c:1241
+#: config.c:1368
+#, c-format
+msgid "invalid value for variable %s"
+msgstr "valeur invalide pour la variable %s"
+
+#: config.c:1389
+#, c-format
+msgid "ignoring unknown core.fsync component '%s'"
+msgstr "ignore le composant core.fsync inconne '%s'"
+
+#: config.c:1425
#, c-format
msgid "bad boolean config value '%s' for '%s'"
msgstr "valeur booléenne de configuration invalide '%s' pour '%s'"
-#: config.c:1259
+#: config.c:1443
#, c-format
msgid "failed to expand user dir in: '%s'"
msgstr "impossible d'étendre le répertoire utilisateur dans : '%s'"
-#: config.c:1268
+#: config.c:1452
#, c-format
msgid "'%s' for '%s' is not a valid timestamp"
msgstr "'%s' pour '%s' n'est pas un horodatage valide"
-#: config.c:1361
+#: config.c:1545
#, c-format
msgid "abbrev length out of range: %d"
msgstr "longueur d'abbrev hors plage : %d"
-#: config.c:1375 config.c:1386
+#: config.c:1559 config.c:1570
#, c-format
msgid "bad zlib compression level %d"
msgstr "niveau de compression zlib incorrect %d"
-#: config.c:1476
+#: config.c:1660
msgid "core.commentChar should only be one character"
msgstr "core.commentChar ne devrait être qu'un unique caractère"
-#: config.c:1509
+#: config.c:1692
+#, c-format
+msgid "ignoring unknown core.fsyncMethod value '%s'"
+msgstr "valeur inconnue '%s' de core.fsyncMethod"
+
+#: config.c:1698
+msgid "core.fsyncObjectFiles is deprecated; use core.fsync instead"
+msgstr "core.fsyncObjectFiles est obsolète ; utilisez core.fsync à la place"
+
+#: config.c:1714
#, c-format
msgid "invalid mode for object creation: %s"
msgstr "mode invalide pour la création d'objet : %s"
-#: config.c:1584
+#: config.c:1800
#, c-format
msgid "malformed value for %s"
msgstr "valeur mal formée pour %s"
-#: config.c:1610
+#: config.c:1826
#, c-format
msgid "malformed value for %s: %s"
msgstr "valeur mal formée pour %s : %s"
-#: config.c:1611
+#: config.c:1827
msgid "must be one of nothing, matching, simple, upstream or current"
msgstr "doit être parmi nothing, matching, simple, upstream ou current"
-#: config.c:1672 builtin/pack-objects.c:4053
+#: config.c:1888 builtin/pack-objects.c:4078
#, c-format
msgid "bad pack compression level %d"
msgstr "niveau de compression du paquet %d"
-#: config.c:1795
+#: config.c:2014
#, c-format
msgid "unable to load config blob object '%s'"
msgstr "impossible de charger l'objet blob de config '%s'"
-#: config.c:1798
+#: config.c:2017
#, c-format
msgid "reference '%s' does not point to a blob"
msgstr "la référence '%s' ne pointe pas sur un blob"
-#: config.c:1816
+#: config.c:2035
#, c-format
msgid "unable to resolve config blob '%s'"
msgstr "impossible de résoudre le blob de config '%s'"
-#: config.c:1861
+#: config.c:2080
#, c-format
msgid "failed to parse %s"
msgstr "échec de l'analyse de %s"
-#: config.c:1917
+#: config.c:2136
msgid "unable to parse command-line config"
msgstr "lecture de la configuration de ligne de commande impossible"
-#: config.c:2285
+#: config.c:2512
msgid "unknown error occurred while reading the configuration files"
msgstr "erreur inconnue pendant la lecture des fichiers de configuration"
-#: config.c:2459
+#: config.c:2686
#, c-format
msgid "Invalid %s: '%s'"
msgstr "%s invalide : '%s'"
-#: config.c:2504
+#: config.c:2731
#, c-format
msgid "splitIndex.maxPercentChange value '%d' should be between 0 and 100"
msgstr ""
"la valeur '%d' de splitIndex.maxPercentChange devrait se situer entre 0 et "
"100"
-#: config.c:2550
+#: config.c:2763
#, c-format
msgid "unable to parse '%s' from command-line config"
msgstr ""
"impossible d'analyser '%s' depuis le configuration en ligne de commande"
-#: config.c:2552
+#: config.c:2765
#, c-format
msgid "bad config variable '%s' in file '%s' at line %d"
msgstr ""
"variable de configuration '%s' incorrecte dans le fichier '%s' à la ligne %d"
-#: config.c:2637
+#: config.c:2850
#, c-format
msgid "invalid section name '%s'"
msgstr "nom de section invalide '%s'"
-#: config.c:2669
+#: config.c:2882
#, c-format
msgid "%s has multiple values"
msgstr "%s a des valeurs multiples"
-#: config.c:2698
+#: config.c:2911
#, c-format
msgid "failed to write new configuration file %s"
msgstr "impossible d'écrire le fichier de configuration %s"
-#: config.c:2950 config.c:3277
+#: config.c:3177 config.c:3518
#, c-format
msgid "could not lock config file %s"
msgstr "impossible de verrouiller le fichier de configuration %s"
-#: config.c:2961
+#: config.c:3188
#, c-format
msgid "opening %s"
msgstr "ouverture de %s"
-#: config.c:2998 builtin/config.c:361
+#: config.c:3225 builtin/config.c:361
#, c-format
msgid "invalid pattern: %s"
msgstr "motif invalide : %s"
-#: config.c:3023
+#: config.c:3250
#, c-format
msgid "invalid config file %s"
msgstr "fichier de configuration invalide %s"
-#: config.c:3036 config.c:3290
+#: config.c:3263 config.c:3531
#, c-format
msgid "fstat on %s failed"
msgstr "échec de fstat sur %s"
-#: config.c:3047
+#: config.c:3274
#, c-format
msgid "unable to mmap '%s'%s"
msgstr "impossible de réaliser un mmap de '%s'%s"
-#: config.c:3057 config.c:3295
+#: config.c:3284 config.c:3536
#, c-format
msgid "chmod on %s failed"
msgstr "échec de chmod sur %s"
-#: config.c:3142 config.c:3392
+#: config.c:3369 config.c:3633
#, c-format
msgid "could not write config file %s"
msgstr "impossible d'écrire le fichier de configuration %s"
-#: config.c:3176
+#: config.c:3403
#, c-format
msgid "could not set '%s' to '%s'"
msgstr "impossible de régler '%s' à '%s'"
-#: config.c:3178 builtin/remote.c:662 builtin/remote.c:860 builtin/remote.c:868
+#: config.c:3405 builtin/remote.c:666 builtin/remote.c:885 builtin/remote.c:893
#, c-format
msgid "could not unset '%s'"
msgstr "impossible de désinitialiser '%s'"
-#: config.c:3268
+#: config.c:3509
#, c-format
msgid "invalid section name: %s"
msgstr "nom de section invalide : %s"
-#: config.c:3435
+#: config.c:3676
#, c-format
msgid "missing value for '%s'"
msgstr "valeur manquante pour '%s'"
@@ -3282,68 +3379,68 @@ msgid "refusing to work with credential missing protocol field"
msgstr ""
"refus de travailler avec un champ protocol manquant dans l'identification"
-#: credential.c:395
+#: credential.c:396
#, c-format
msgid "url contains a newline in its %s component: %s"
msgstr "l'url contient un retour chariot dans composant %s : %s"
-#: credential.c:439
+#: credential.c:440
#, c-format
msgid "url has no scheme: %s"
msgstr "l'url n'a pas de schéma : %s"
-#: credential.c:512
+#: credential.c:513
#, c-format
msgid "credential url cannot be parsed: %s"
msgstr "impossible d'analyser l'url d'identification : %s"
-#: date.c:138
+#: date.c:139
msgid "in the future"
msgstr "dans le futur"
-#: date.c:144
+#: date.c:145
#, c-format
msgid "%<PRIuMAX> second ago"
msgid_plural "%<PRIuMAX> seconds ago"
msgstr[0] "il y a %<PRIuMAX> seconde"
msgstr[1] "il y a %<PRIuMAX> secondes"
-#: date.c:151
+#: date.c:152
#, c-format
msgid "%<PRIuMAX> minute ago"
msgid_plural "%<PRIuMAX> minutes ago"
msgstr[0] "il y a %<PRIuMAX> minute"
msgstr[1] "il y a %<PRIuMAX> minutes"
-#: date.c:158
+#: date.c:159
#, c-format
msgid "%<PRIuMAX> hour ago"
msgid_plural "%<PRIuMAX> hours ago"
msgstr[0] "il y a %<PRIuMAX> heure"
msgstr[1] "il y a %<PRIuMAX> heures"
-#: date.c:165
+#: date.c:166
#, c-format
msgid "%<PRIuMAX> day ago"
msgid_plural "%<PRIuMAX> days ago"
msgstr[0] "il y a %<PRIuMAX> jour"
msgstr[1] "il y a %<PRIuMAX> jours"
-#: date.c:171
+#: date.c:172
#, c-format
msgid "%<PRIuMAX> week ago"
msgid_plural "%<PRIuMAX> weeks ago"
msgstr[0] "il y a %<PRIuMAX> semaine"
msgstr[1] "il y a %<PRIuMAX> semaines"
-#: date.c:178
+#: date.c:179
#, c-format
msgid "%<PRIuMAX> month ago"
msgid_plural "%<PRIuMAX> months ago"
msgstr[0] "il y a %<PRIuMAX> mois"
msgstr[1] "il y a %<PRIuMAX> mois"
-#: date.c:189
+#: date.c:190
#, c-format
msgid "%<PRIuMAX> year"
msgid_plural "%<PRIuMAX> years"
@@ -3351,14 +3448,14 @@ msgstr[0] "%<PRIuMAX> an"
msgstr[1] "%<PRIuMAX> ans"
#. TRANSLATORS: "%s" is "<n> years"
-#: date.c:192
+#: date.c:193
#, c-format
msgid "%s, %<PRIuMAX> month ago"
msgid_plural "%s, %<PRIuMAX> months ago"
msgstr[0] "il y a %s et %<PRIuMAX> mois"
msgstr[1] "il y a %s et %<PRIuMAX> mois"
-#: date.c:197 date.c:202
+#: date.c:198 date.c:203
#, c-format
msgid "%<PRIuMAX> year ago"
msgid_plural "%<PRIuMAX> years ago"
@@ -3391,10 +3488,14 @@ msgstr ""
msgid "Marked %d islands, done.\n"
msgstr "Marquage de %d îlots, fait.\n"
-#: diff-merges.c:70
+#: diff-merges.c:81 gpg-interface.c:719 gpg-interface.c:734 ls-refs.c:37
+#: parallel-checkout.c:42 sequencer.c:2805 setup.c:563 builtin/am.c:203
+#: builtin/am.c:2243 builtin/am.c:2287 builtin/blame.c:724 builtin/blame.c:742
+#: builtin/fetch.c:792 builtin/pack-objects.c:3515 builtin/pull.c:45
+#: builtin/pull.c:47 builtin/pull.c:321
#, c-format
-msgid "unknown value for --diff-merges: %s"
-msgstr "valeur inconnue pour --diff-merges : %s"
+msgid "invalid value for '%s': '%s'"
+msgstr "valeur invalide pour '%s' : '%s'"
#: diff-lib.c:561
msgid "--merge-base does not work with ranges"
@@ -3428,18 +3529,18 @@ msgstr ""
"Pas un dépôt git. Utilisez --no-index pour comparer deux chemins hors d'un "
"arbre de travail"
-#: diff.c:158
+#: diff.c:159
#, 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:163
+#: diff.c:164
#, c-format
msgid " Unknown dirstat parameter '%s'\n"
msgstr " Paramètre dirstat inconnu '%s'\n"
-#: diff.c:299
+#: diff.c:300
msgid ""
"color moved setting must be one of 'no', 'default', 'blocks', 'zebra', "
"'dimmed-zebra', 'plain'"
@@ -3447,7 +3548,7 @@ msgstr ""
"le paramètre de couleur de déplacement doit être parmi 'no', 'default', "
"'blocks', 'zebra', 'dimmed-zebra' ou 'plain'"
-#: diff.c:327
+#: diff.c:328
#, c-format
msgid ""
"unknown color-moved-ws mode '%s', possible values are 'ignore-space-change', "
@@ -3457,7 +3558,7 @@ msgstr ""
"space-change', 'ignore-space-at-eol', 'ignore-all-space', 'allow-indentation-"
"change'"
-#: diff.c:335
+#: diff.c:336
msgid ""
"color-moved-ws: allow-indentation-change cannot be combined with other "
"whitespace modes"
@@ -3465,13 +3566,13 @@ msgstr ""
"color-moved-ws : allow-indentation-change ne peut pas être combiné avec "
"d'autres modes d'espace"
-#: diff.c:412
+#: diff.c:413
#, c-format
msgid "Unknown value for 'diff.submodule' config variable: '%s'"
msgstr ""
"Valeur inconnue pour la variable de configuration 'diff.submodule' : '%s'"
-#: diff.c:472
+#: diff.c:473
#, c-format
msgid ""
"Found errors in 'diff.dirstat' config variable:\n"
@@ -3480,30 +3581,30 @@ msgstr ""
"Erreurs dans la variable de configuration 'diff.dirstat' :\n"
"%s"
-#: diff.c:4237
+#: diff.c:4282
#, c-format
msgid "external diff died, stopping at %s"
msgstr "l'application de diff externe a disparu, arrêt à %s"
-#: diff.c:4589
+#: diff.c:4677 parse-options.c:1114
#, c-format
msgid "options '%s', '%s', '%s', and '%s' cannot be used together"
msgstr ""
"les options '%s', '%s', '%s' et '%s' ne peuvent pas être utilisées ensemble"
-#: diff.c:4593 builtin/difftool.c:736 builtin/log.c:1982 builtin/worktree.c:506
+#: diff.c:4681 parse-options.c:1118 builtin/worktree.c:578
#, c-format
msgid "options '%s', '%s', and '%s' cannot be used together"
msgstr "les options '%s', '%s' et '%s' ne peuvent pas être utilisées ensemble"
-#: diff.c:4597
+#: diff.c:4685
#, c-format
msgid "options '%s' and '%s' cannot be used together, use '%s' with '%s'"
msgstr ""
"les options '%s' et '%s' ne peuvent pas être utilisées ensemble, utilisez "
"'%s' avec '%s'"
-#: diff.c:4601
+#: diff.c:4689
#, c-format
msgid ""
"options '%s' and '%s' cannot be used together, use '%s' with '%s' and '%s'"
@@ -3511,22 +3612,22 @@ msgstr ""
"les options '%s' et '%s' ne peuvent pas être utilisées ensemble, utilisez "
"'%s' avec '%s' et '%s'"
-#: diff.c:4681
+#: diff.c:4769
msgid "--follow requires exactly one pathspec"
msgstr "--follow a besoin d'une spécification de chemin unique"
-#: diff.c:4729
+#: diff.c:4823
#, c-format
msgid "invalid --stat value: %s"
msgstr "valeur invalide de --stat : %s"
-#: diff.c:4734 diff.c:4739 diff.c:4744 diff.c:4749 diff.c:5277
+#: diff.c:4828 diff.c:4833 diff.c:4838 diff.c:4843 diff.c:5319
#: parse-options.c:217 parse-options.c:221
#, c-format
msgid "%s expects a numerical value"
msgstr "%s attend une valeur numérique"
-#: diff.c:4766
+#: diff.c:4860
#, c-format
msgid ""
"Failed to parse --dirstat/-X option parameter:\n"
@@ -3535,42 +3636,42 @@ msgstr ""
"Impossible d'analyser le paramètre de l'option --dirstat/-X :\n"
"%s"
-#: diff.c:4851
+#: diff.c:4893
#, c-format
msgid "unknown change class '%c' in --diff-filter=%s"
msgstr "classe de modification inconnue '%c' dans --diff-filter=%s"
-#: diff.c:4875
+#: diff.c:4917
#, c-format
msgid "unknown value after ws-error-highlight=%.*s"
msgstr "valeur inconnue après ws-error-highlight=%.*s"
-#: diff.c:4889
+#: diff.c:4931
#, c-format
msgid "unable to resolve '%s'"
msgstr "impossible de résoudre '%s'"
-#: diff.c:4939 diff.c:4945
+#: diff.c:4981 diff.c:4987
#, c-format
msgid "%s expects <n>/<m> form"
msgstr "forme <n>/<m> attendue par %s"
-#: diff.c:4957
+#: diff.c:4999
#, c-format
msgid "%s expects a character, got '%s'"
msgstr "caractère attendu par %s, '%s' trouvé"
-#: diff.c:4978
+#: diff.c:5020
#, c-format
msgid "bad --color-moved argument: %s"
msgstr "mauvais argument --color-moved : %s"
-#: diff.c:4997
+#: diff.c:5039
#, c-format
msgid "invalid mode '%s' in --color-moved-ws"
msgstr "mode invalide '%s' dans --color-moved-ws"
-#: diff.c:5037
+#: diff.c:5079
msgid ""
"option diff-algorithm accepts \"myers\", \"minimal\", \"patience\" and "
"\"histogram\""
@@ -3578,160 +3679,160 @@ msgstr ""
"l'option diff-algorithm accept \"myers\", \"minimal\", \"patience\" et "
"\"histogram\""
-#: diff.c:5073 diff.c:5093
+#: diff.c:5115 diff.c:5135
#, c-format
msgid "invalid argument to %s"
msgstr "argument invalide pour %s"
-#: diff.c:5197
+#: diff.c:5239
#, c-format
msgid "invalid regex given to -I: '%s'"
msgstr "regex invalide fournie à -I : '%s'"
-#: diff.c:5246
+#: diff.c:5288
#, 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:5302
+#: diff.c:5344
#, c-format
msgid "bad --word-diff argument: %s"
msgstr "mauvais argument pour --word-diff : %s"
-#: diff.c:5338
+#: diff.c:5380
msgid "Diff output format options"
msgstr "Options de format de sortie de diff"
-#: diff.c:5340 diff.c:5346
+#: diff.c:5382 diff.c:5388
msgid "generate patch"
msgstr "générer la rustine"
-#: diff.c:5343 builtin/log.c:179
+#: diff.c:5385 builtin/log.c:180
msgid "suppress diff output"
msgstr "supprimer la sortie des différences"
-#: diff.c:5348 diff.c:5462 diff.c:5469
+#: diff.c:5390 diff.c:5504 diff.c:5511
msgid "<n>"
msgstr "<n>"
-#: diff.c:5349 diff.c:5352
+#: diff.c:5391 diff.c:5394
msgid "generate diffs with <n> lines context"
msgstr "générer les diffs avec <n> lignes de contexte"
-#: diff.c:5354
+#: diff.c:5396
msgid "generate the diff in raw format"
msgstr "générer le diff en format brut"
-#: diff.c:5357
+#: diff.c:5399
msgid "synonym for '-p --raw'"
msgstr "synonyme de '-p --raw'"
-#: diff.c:5361
+#: diff.c:5403
msgid "synonym for '-p --stat'"
msgstr "synonyme de '-p --stat'"
-#: diff.c:5365
+#: diff.c:5407
msgid "machine friendly --stat"
msgstr "--stat pour traitement automatique"
-#: diff.c:5368
+#: diff.c:5410
msgid "output only the last line of --stat"
msgstr "afficher seulement la dernière ligne de --stat"
-#: diff.c:5370 diff.c:5378
+#: diff.c:5412 diff.c:5420
msgid "<param1,param2>..."
msgstr "<param1,param2>..."
-#: diff.c:5371
+#: diff.c:5413
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:5375
+#: diff.c:5417
msgid "synonym for --dirstat=cumulative"
msgstr "synonyme pour --dirstat=cumulative"
-#: diff.c:5379
+#: diff.c:5421
msgid "synonym for --dirstat=files,param1,param2..."
msgstr "synonyme pour --dirstat=files,param1,param2..."
-#: diff.c:5383
+#: diff.c:5425
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:5386
+#: diff.c:5428
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:5389
+#: diff.c:5431
msgid "show only names of changed files"
msgstr "n'afficher que les noms de fichiers modifiés"
-#: diff.c:5392
+#: diff.c:5434
msgid "show only names and status of changed files"
msgstr "n'afficher que les noms et les status des fichiers modifiés"
-#: diff.c:5394
+#: diff.c:5436
msgid "<width>[,<name-width>[,<count>]]"
msgstr "<largeur>[,<largeur-de-nom>[,<compte>]]"
-#: diff.c:5395
+#: diff.c:5437
msgid "generate diffstat"
msgstr "générer un diffstat"
-#: diff.c:5397 diff.c:5400 diff.c:5403
+#: diff.c:5439 diff.c:5442 diff.c:5445
msgid "<width>"
msgstr "<largeur>"
-#: diff.c:5398
+#: diff.c:5440
msgid "generate diffstat with a given width"
msgstr "générer un diffstat avec la largeur indiquée"
-#: diff.c:5401
+#: diff.c:5443
msgid "generate diffstat with a given name width"
msgstr "génerer un diffstat avec la largeur de nom indiquée"
-#: diff.c:5404
+#: diff.c:5446
msgid "generate diffstat with a given graph width"
msgstr "génerer un diffstat avec la largeur de graphe indiquée"
-#: diff.c:5406
+#: diff.c:5448
msgid "<count>"
msgstr "<compte>"
-#: diff.c:5407
+#: diff.c:5449
msgid "generate diffstat with limited lines"
msgstr "générer un diffstat avec des lignes limitées"
-#: diff.c:5410
+#: diff.c:5452
msgid "generate compact summary in diffstat"
msgstr "générer une résumé compact dans le diffstat"
-#: diff.c:5413
+#: diff.c:5455
msgid "output a binary diff that can be applied"
msgstr "produire un diff binaire qui peut être appliqué"
-#: diff.c:5416
+#: diff.c:5458
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:5418
+#: diff.c:5460
msgid "show colored diff"
msgstr "afficher un diff coloré"
-#: diff.c:5419
+#: diff.c:5461
msgid "<kind>"
msgstr "<sorte>"
-#: diff.c:5420
+#: diff.c:5462
msgid ""
"highlight whitespace errors in the 'context', 'old' or 'new' lines in the "
"diff"
@@ -3739,7 +3840,7 @@ msgstr ""
"surligner les erreurs d'espace dans les lignes 'contexte', 'ancien', "
"'nouveau' dans le diff"
-#: diff.c:5423
+#: diff.c:5465
msgid ""
"do not munge pathnames and use NULs as output field terminators in --raw or "
"--numstat"
@@ -3747,93 +3848,93 @@ msgstr ""
"ne pas compresser les chemins et utiliser des NULs comme terminateurs de "
"champs dans --raw ou --numstat"
-#: diff.c:5426 diff.c:5429 diff.c:5432 diff.c:5541
+#: diff.c:5468 diff.c:5471 diff.c:5474 diff.c:5583
msgid "<prefix>"
msgstr "<préfixe>"
-#: diff.c:5427
+#: diff.c:5469
msgid "show the given source prefix instead of \"a/\""
msgstr "afficher le préfixe de source indiqué au lieu de \"a/\""
-#: diff.c:5430
+#: diff.c:5472
msgid "show the given destination prefix instead of \"b/\""
msgstr "afficher le préfixe de destination indiqué au lieu de \"b/\""
-#: diff.c:5433
+#: diff.c:5475
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:5436
+#: diff.c:5478
msgid "do not show any source or destination prefix"
msgstr "n'afficher aucun préfixe, ni de source, ni de destination"
-#: diff.c:5439
+#: diff.c:5481
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:5443 diff.c:5448 diff.c:5453
+#: diff.c:5485 diff.c:5490 diff.c:5495
msgid "<char>"
msgstr "<caractère>"
-#: diff.c:5444
+#: diff.c:5486
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:5449
+#: diff.c:5491
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:5454
+#: diff.c:5496
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:5457
+#: diff.c:5499
msgid "Diff rename options"
msgstr "Options de renommage de diff"
-#: diff.c:5458
+#: diff.c:5500
msgid "<n>[/<m>]"
msgstr "<n>[/<m>]"
-#: diff.c:5459
+#: diff.c:5501
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:5463
+#: diff.c:5505
msgid "detect renames"
msgstr "détecter les renommages"
-#: diff.c:5467
+#: diff.c:5509
msgid "omit the preimage for deletes"
msgstr "supprimer la pré-image pour les suppressions"
-#: diff.c:5470
+#: diff.c:5512
msgid "detect copies"
msgstr "détecter les copies"
-#: diff.c:5474
+#: diff.c:5516
msgid "use unmodified files as source to find copies"
msgstr ""
"utiliser les fichiers non-modifiés comme sources pour trouver des copies"
-#: diff.c:5476
+#: diff.c:5518
msgid "disable rename detection"
msgstr "désactiver la détection de renommage"
-#: diff.c:5479
+#: diff.c:5521
msgid "use empty blobs as rename source"
msgstr "utiliser des blobs vides comme source de renommage"
-#: diff.c:5481
+#: diff.c:5523
msgid "continue listing the history of a file beyond renames"
msgstr "continuer à afficher l'historique d'un fichier au delà des renommages"
-#: diff.c:5484
+#: diff.c:5526
msgid ""
"prevent rename/copy detection if the number of rename/copy targets exceeds "
"given limit"
@@ -3841,165 +3942,165 @@ 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:5486
+#: diff.c:5528
msgid "Diff algorithm options"
msgstr "Options de l'algorithme de diff"
-#: diff.c:5488
+#: diff.c:5530
msgid "produce the smallest possible diff"
msgstr "produire le diff le plus petit possible"
-#: diff.c:5491
+#: diff.c:5533
msgid "ignore whitespace when comparing lines"
msgstr "ignorer les espaces lors de la comparaison de ligne"
-#: diff.c:5494
+#: diff.c:5536
msgid "ignore changes in amount of whitespace"
msgstr "ignorer des modifications du nombre d'espaces"
-#: diff.c:5497
+#: diff.c:5539
msgid "ignore changes in whitespace at EOL"
msgstr "ignorer des modifications d'espace en fin de ligne"
-#: diff.c:5500
+#: diff.c:5542
msgid "ignore carrier-return at the end of line"
msgstr "ignore le retour chariot en fin de ligne"
-#: diff.c:5503
+#: diff.c:5545
msgid "ignore changes whose lines are all blank"
msgstr "ignorer les modifications dont les lignes sont vides"
-#: diff.c:5505 diff.c:5527 diff.c:5530 diff.c:5575
+#: diff.c:5547 diff.c:5569 diff.c:5572 diff.c:5617
msgid "<regex>"
msgstr "<regex>"
-#: diff.c:5506
+#: diff.c:5548
msgid "ignore changes whose all lines match <regex>"
msgstr "ignorer les modifications dont les lignes correspondent à <regex>"
-#: diff.c:5509
+#: diff.c:5551
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:5512
+#: diff.c:5554
msgid "generate diff using the \"patience diff\" algorithm"
msgstr "générer un diff en utilisant l'algorithme de différence \"patience\""
-#: diff.c:5516
+#: diff.c:5558
msgid "generate diff using the \"histogram diff\" algorithm"
msgstr ""
"générer un diff en utilisant l'algorithme de différence \"histogramme\""
-#: diff.c:5518
+#: diff.c:5560
msgid "<algorithm>"
msgstr "<algorithme>"
-#: diff.c:5519
+#: diff.c:5561
msgid "choose a diff algorithm"
msgstr "choisir un algorithme de différence"
-#: diff.c:5521
+#: diff.c:5563
msgid "<text>"
msgstr "<texte>"
-#: diff.c:5522
+#: diff.c:5564
msgid "generate diff using the \"anchored diff\" algorithm"
msgstr "générer un diff en utilisant l'algorithme de différence \"ancré\""
-#: diff.c:5524 diff.c:5533 diff.c:5536
+#: diff.c:5566 diff.c:5575 diff.c:5578
msgid "<mode>"
msgstr "<mode>"
-#: diff.c:5525
+#: diff.c:5567
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:5528
+#: diff.c:5570
msgid "use <regex> to decide what a word is"
msgstr "utiliser <regex> pour décider ce qu'est un mot"
-#: diff.c:5531
+#: diff.c:5573
msgid "equivalent to --word-diff=color --word-diff-regex=<regex>"
msgstr "équivalent à --word-diff=color --word-diff-regex=<regex>"
-#: diff.c:5534
+#: diff.c:5576
msgid "moved lines of code are colored differently"
msgstr "les lignes déplacées sont colorées différemment"
-#: diff.c:5537
+#: diff.c:5579
msgid "how white spaces are ignored in --color-moved"
msgstr "comment les espaces sont ignorés dans --color-moved"
-#: diff.c:5540
+#: diff.c:5582
msgid "Other diff options"
msgstr "Autres options diff"
-#: diff.c:5542
+#: diff.c:5584
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:5546
+#: diff.c:5588
msgid "treat all files as text"
msgstr "traiter les fichiers comme texte"
-#: diff.c:5548
+#: diff.c:5590
msgid "swap two inputs, reverse the diff"
msgstr "échanger les entrées, inverser le diff"
-#: diff.c:5550
+#: diff.c:5592
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:5552
+#: diff.c:5594
msgid "disable all output of the program"
msgstr "désactiver tous les affichages du programme"
-#: diff.c:5554
+#: diff.c:5596
msgid "allow an external diff helper to be executed"
msgstr "autoriser l'exécution d'un assistant externe de diff"
-#: diff.c:5556
+#: diff.c:5598
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:5558
+#: diff.c:5600
msgid "<when>"
msgstr "<quand>"
-#: diff.c:5559
+#: diff.c:5601
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:5562
+#: diff.c:5604
msgid "<format>"
msgstr "<format>"
-#: diff.c:5563
+#: diff.c:5605
msgid "specify how differences in submodules are shown"
msgstr "spécifier comment les différences dans les sous-modules sont affichées"
-#: diff.c:5567
+#: diff.c:5609
msgid "hide 'git add -N' entries from the index"
msgstr "masquer les entrées 'git add -N' de l'index"
-#: diff.c:5570
+#: diff.c:5612
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:5572
+#: diff.c:5614
msgid "<string>"
msgstr "<chaîne>"
-#: diff.c:5573
+#: diff.c:5615
msgid ""
"look for differences that change the number of occurrences of the specified "
"string"
@@ -4007,7 +4108,7 @@ msgstr ""
"rechercher les différences qui modifient le nombre d'occurrences de la "
"chaîne spécifiée"
-#: diff.c:5576
+#: diff.c:5618
msgid ""
"look for differences that change the number of occurrences of the specified "
"regex"
@@ -4015,38 +4116,38 @@ msgstr ""
"rechercher les différences qui modifient le nombre d'occurrences de la regex "
"spécifiée"
-#: diff.c:5579
+#: diff.c:5621
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:5582
+#: diff.c:5624
msgid "treat <string> in -S as extended POSIX regular expression"
msgstr ""
"traiter <chaîne> dans -S comme une expression rationnelle POSIX étendue"
-#: diff.c:5585
+#: diff.c:5627
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:5586 diff.c:5589
+#: diff.c:5628 diff.c:5631
msgid "<path>"
msgstr "<chemin>"
-#: diff.c:5587
+#: diff.c:5629
msgid "show the change in the specified path first"
msgstr "afficher la modification dans le chemin spécifié en premier"
-#: diff.c:5590
+#: diff.c:5632
msgid "skip the output to the specified path"
msgstr "sauter la sortie pour le chemin spécifié"
-#: diff.c:5592
+#: diff.c:5634
msgid "<object-id>"
msgstr "<id-objet>"
-#: diff.c:5593
+#: diff.c:5635
msgid ""
"look for differences that change the number of occurrences of the specified "
"object"
@@ -4054,35 +4155,35 @@ msgstr ""
"rechercher les différences qui modifient le nombre d'occurrences de l'objet "
"indiqué"
-#: diff.c:5595
+#: diff.c:5637
msgid "[(A|C|D|M|R|T|U|X|B)...[*]]"
msgstr "[(A|C|D|M|R|T|U|X|B)...[*]]"
-#: diff.c:5596
+#: diff.c:5638
msgid "select files by diff type"
msgstr "sélectionner les fichiers par types de diff"
-#: diff.c:5598
+#: diff.c:5640
msgid "<file>"
msgstr "<fichier>"
-#: diff.c:5599
-msgid "Output to a specific file"
-msgstr "Sortie vers un fichier spécifié"
+#: diff.c:5641
+msgid "output to a specific file"
+msgstr "sortie vers un fichier spécifique"
-#: diff.c:6257
+#: diff.c:6321
msgid "exhaustive rename detection was skipped due to too many files."
msgstr ""
"détection exhaustive de renommage annulée à cause d'un trop grand nombre de "
"fichiers."
-#: diff.c:6260
+#: diff.c:6324
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:6263
+#: diff.c:6327
#, c-format
msgid ""
"you may want to set your %s variable to at least %d and retry the command."
@@ -4136,20 +4237,20 @@ msgstr "désactivation de la correspondance de motif de cone"
msgid "cannot use %s as an exclude file"
msgstr "impossible d'utiliser %s comme fichier d'exclusion"
-#: dir.c:2418
+#: dir.c:2419
#, c-format
msgid "could not open directory '%s'"
msgstr "impossible d'ouvrir le répertoire '%s'"
-#: dir.c:2720
+#: dir.c:2721
msgid "failed to get kernel name and information"
msgstr "echec de l'obtention d'information de kernel"
-#: dir.c:2844
+#: dir.c:2846
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:3112
+#: dir.c:3119
msgid ""
"No directory name could be guessed.\n"
"Please specify a directory on the command line"
@@ -4157,17 +4258,17 @@ msgstr ""
"Aucun nom de répertoire n'a pu être deviné\n"
"Veuillez spécifier un répertoire dans la ligne de commande"
-#: dir.c:3800
+#: dir.c:3807
#, c-format
msgid "index file corrupt in repo %s"
msgstr "fichier d'index corrompu dans le dépôt %s"
-#: dir.c:3847 dir.c:3852
+#: dir.c:3854 dir.c:3859
#, c-format
msgid "could not create directories for %s"
msgstr "impossible de créer les répertoires pour %s"
-#: dir.c:3881
+#: dir.c:3888
#, c-format
msgid "could not migrate git directory from '%s' to '%s'"
msgstr "impossible de migrer le répertoire git de '%s' vers '%s'"
@@ -4188,7 +4289,7 @@ msgstr "Filtrage du contenu"
msgid "could not stat file '%s'"
msgstr "impossible de stat le fichier '%s'"
-#: environment.c:145
+#: environment.c:147
#, c-format
msgid "bad git namespace path \"%s\""
msgstr "espaces de nom de Git \"%s\""
@@ -4220,247 +4321,274 @@ msgstr "git fetch-pack : ACK/NACK attendu, '%s' reçu"
msgid "unable to write to remote"
msgstr "impossible d'écrire sur un distant"
-#: fetch-pack.c:395 fetch-pack.c:1439
+#: fetch-pack.c:397 fetch-pack.c:1460
#, c-format
msgid "invalid shallow line: %s"
msgstr "ligne de superficiel invalide : %s"
-#: fetch-pack.c:401 fetch-pack.c:1445
+#: fetch-pack.c:403 fetch-pack.c:1466
#, c-format
msgid "invalid unshallow line: %s"
msgstr "ligne de fin de superficiel invalide : %s"
-#: fetch-pack.c:403 fetch-pack.c:1447
+#: fetch-pack.c:405 fetch-pack.c:1468
#, c-format
msgid "object not found: %s"
msgstr "objet non trouvé : %s"
-#: fetch-pack.c:406 fetch-pack.c:1450
+#: fetch-pack.c:408 fetch-pack.c:1471
#, c-format
msgid "error in object: %s"
msgstr "erreur dans l'objet : %s"
-#: fetch-pack.c:408 fetch-pack.c:1452
+#: fetch-pack.c:410 fetch-pack.c:1473
#, c-format
msgid "no shallow found: %s"
msgstr "pas de superficiel trouvé : %s"
-#: fetch-pack.c:411 fetch-pack.c:1456
+#: fetch-pack.c:413 fetch-pack.c:1477
#, c-format
msgid "expected shallow/unshallow, got %s"
msgstr "superficiel/non superficiel attendu, %s trouvé"
-#: fetch-pack.c:451
+#: fetch-pack.c:453
#, c-format
msgid "got %s %d %s"
msgstr "réponse %s %d %s"
-#: fetch-pack.c:468
+#: fetch-pack.c:470
#, c-format
msgid "invalid commit %s"
msgstr "commit invalide %s"
-#: fetch-pack.c:499
+#: fetch-pack.c:501
msgid "giving up"
msgstr "abandon"
-#: fetch-pack.c:512 progress.c:339
+#: fetch-pack.c:514 progress.h:25
msgid "done"
msgstr "fait"
-#: fetch-pack.c:524
+#: fetch-pack.c:526
#, c-format
msgid "got %s (%d) %s"
msgstr "%s trouvé (%d) %s"
-#: fetch-pack.c:560
+#: fetch-pack.c:562
#, c-format
msgid "Marking %s as complete"
msgstr "Marquage de %s comme terminé"
-#: fetch-pack.c:775
+#: fetch-pack.c:784
#, c-format
msgid "already have %s (%s)"
msgstr "%s déjà possédé (%s)"
-#: fetch-pack.c:861
+#: fetch-pack.c:870
msgid "fetch-pack: unable to fork off sideband demultiplexer"
msgstr "fetch-pack : impossible de dupliquer le démultiplexeur latéral"
-#: fetch-pack.c:869
+#: fetch-pack.c:878
msgid "protocol error: bad pack header"
msgstr "erreur de protocole : mauvais entête de paquet"
-#: fetch-pack.c:965
+#: fetch-pack.c:974
#, c-format
msgid "fetch-pack: unable to fork off %s"
msgstr "fetch-pack : impossible de dupliquer %s"
-#: fetch-pack.c:971
+#: fetch-pack.c:980
msgid "fetch-pack: invalid index-pack output"
msgstr "fetch-pack : sortie d'index de pack invalide"
-#: fetch-pack.c:988
+#: fetch-pack.c:997
#, c-format
msgid "%s failed"
msgstr "échec de %s"
-#: fetch-pack.c:990
+#: fetch-pack.c:999
msgid "error in sideband demultiplexer"
msgstr "erreur dans le démultiplexer latéral"
-#: fetch-pack.c:1035
+#: fetch-pack.c:1048
#, c-format
msgid "Server version is %.*s"
msgstr "La version du serveur est %.*s"
-#: fetch-pack.c:1043 fetch-pack.c:1049 fetch-pack.c:1052 fetch-pack.c:1058
-#: fetch-pack.c:1062 fetch-pack.c:1066 fetch-pack.c:1070 fetch-pack.c:1074
-#: fetch-pack.c:1078 fetch-pack.c:1082 fetch-pack.c:1086 fetch-pack.c:1090
-#: fetch-pack.c:1096 fetch-pack.c:1102 fetch-pack.c:1107 fetch-pack.c:1112
+#: fetch-pack.c:1056 fetch-pack.c:1062 fetch-pack.c:1065 fetch-pack.c:1071
+#: fetch-pack.c:1075 fetch-pack.c:1079 fetch-pack.c:1083 fetch-pack.c:1087
+#: fetch-pack.c:1091 fetch-pack.c:1095 fetch-pack.c:1099 fetch-pack.c:1103
+#: fetch-pack.c:1109 fetch-pack.c:1115 fetch-pack.c:1120 fetch-pack.c:1125
#, c-format
msgid "Server supports %s"
msgstr "Le serveur supporte %s"
-#: fetch-pack.c:1045
+#: fetch-pack.c:1058
msgid "Server does not support shallow clients"
msgstr "Le serveur ne supporte les clients superficiels"
-#: fetch-pack.c:1105
+#: fetch-pack.c:1118
msgid "Server does not support --shallow-since"
msgstr "Le receveur ne gère pas --shallow-since"
-#: fetch-pack.c:1110
+#: fetch-pack.c:1123
msgid "Server does not support --shallow-exclude"
msgstr "Le receveur ne gère pas --shallow-exclude"
-#: fetch-pack.c:1114
+#: fetch-pack.c:1127
msgid "Server does not support --deepen"
msgstr "Le receveur ne gère pas --deepen"
-#: fetch-pack.c:1116
+#: fetch-pack.c:1129
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:1129
+#: fetch-pack.c:1142
msgid "no common commits"
msgstr "pas de commit commun"
-#: fetch-pack.c:1138 fetch-pack.c:1485 builtin/clone.c:1130
+#: fetch-pack.c:1151 fetch-pack.c:1506 builtin/clone.c:1166
msgid "source repository is shallow, reject to clone."
msgstr "le dépôt source est superficiel, clonage rejeté."
-#: fetch-pack.c:1144 fetch-pack.c:1681
+#: fetch-pack.c:1157 fetch-pack.c:1705
msgid "git fetch-pack: fetch failed."
msgstr "git fetch-pack : échec de le récupération."
-#: fetch-pack.c:1258
+#: fetch-pack.c:1271
#, c-format
msgid "mismatched algorithms: client %s; server %s"
msgstr "non-correspondance des algorithmes : client %s ; serveur %s"
-#: fetch-pack.c:1262
+#: fetch-pack.c:1275
#, c-format
msgid "the server does not support algorithm '%s'"
msgstr "le serveur ne supporte pas l'algorithme '%s'"
-#: fetch-pack.c:1295
+#: fetch-pack.c:1308
msgid "Server does not support shallow requests"
msgstr "Le serveur ne supporte pas les requêtes superficielles"
-#: fetch-pack.c:1302
+#: fetch-pack.c:1315
msgid "Server supports filter"
msgstr "Le serveur supporte filter"
-#: fetch-pack.c:1345 fetch-pack.c:2063
+#: fetch-pack.c:1358 fetch-pack.c:2087
msgid "unable to write request to remote"
msgstr "impossible d'écrire la requête sur le distant"
-#: fetch-pack.c:1363
+#: fetch-pack.c:1376
#, c-format
msgid "error reading section header '%s'"
msgstr "erreur à la lecture de l'entête de section '%s'"
-#: fetch-pack.c:1369
+#: fetch-pack.c:1382
#, c-format
msgid "expected '%s', received '%s'"
msgstr "'%s' attendu, '%s' reçu"
-#: fetch-pack.c:1403
+#: fetch-pack.c:1416
#, c-format
msgid "unexpected acknowledgment line: '%s'"
msgstr "ligne d'acquittement inattendue : '%s'"
-#: fetch-pack.c:1408
+#: fetch-pack.c:1421
#, c-format
msgid "error processing acks: %d"
msgstr "erreur lors du traitement des acquittements : %d"
-#: fetch-pack.c:1418
-msgid "expected packfile to be sent after 'ready'"
-msgstr "fichier paquet attendu à envoyer après 'ready'"
+#. TRANSLATORS: The parameter will be 'ready', a protocol
+#. keyword.
+#.
+#: fetch-pack.c:1435
+#, c-format
+msgid "expected packfile to be sent after '%s'"
+msgstr "fichier paquet attendu à envoyer après '%s'"
-#: fetch-pack.c:1420
-msgid "expected no other sections to be sent after no 'ready'"
-msgstr "aucune autre section attendue à envoyer après absence de 'ready'"
+#. TRANSLATORS: The parameter will be 'ready', a protocol
+#. keyword.
+#.
+#: fetch-pack.c:1441
+#, c-format
+msgid "expected no other sections to be sent after no '%s'"
+msgstr "aucune autre section attendue à envoyer après absence de '%s'"
-#: fetch-pack.c:1461
+#: fetch-pack.c:1482
#, c-format
msgid "error processing shallow info: %d"
msgstr "erreur lors du traitement de l'information de superficialité : %d"
-#: fetch-pack.c:1510
+#: fetch-pack.c:1531
#, c-format
msgid "expected wanted-ref, got '%s'"
msgstr "wanted-ref attendu, '%s' trouvé"
-#: fetch-pack.c:1515
+#: fetch-pack.c:1536
#, c-format
msgid "unexpected wanted-ref: '%s'"
msgstr "wanted-ref inattendu : '%s'"
-#: fetch-pack.c:1520
+#: fetch-pack.c:1541
#, c-format
msgid "error processing wanted refs: %d"
msgstr "erreur lors du traitement des références voulues : %d"
-#: fetch-pack.c:1550
+#: fetch-pack.c:1571
msgid "git fetch-pack: expected response end packet"
msgstr "git fetch-pack : paquet de fin de réponse attendu"
-#: fetch-pack.c:1959
+#: fetch-pack.c:1983
msgid "no matching remote head"
msgstr "pas de HEAD distante correspondante"
-#: fetch-pack.c:1982 builtin/clone.c:581
+#: fetch-pack.c:2006 builtin/clone.c:587
msgid "remote did not send all necessary objects"
msgstr "le serveur distant n'a pas envoyé tous les objets nécessaires"
-#: fetch-pack.c:2085
+#: fetch-pack.c:2109
msgid "unexpected 'ready' from remote"
msgstr "'ready' inattendu depuis le distant"
-#: fetch-pack.c:2108
+#: fetch-pack.c:2132
#, c-format
msgid "no such remote ref %s"
msgstr "référence distante inconnue %s"
-#: fetch-pack.c:2111
+#: fetch-pack.c:2135
#, 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é"
-#: gpg-interface.c:329 gpg-interface.c:457 gpg-interface.c:974
-#: gpg-interface.c:990
+#: fsmonitor-ipc.c:119
+#, c-format
+msgid "fsmonitor_ipc__send_query: invalid path '%s'"
+msgstr "fsmonitor_ipc__send_query : chemin invalide '%s'"
+
+#: fsmonitor-ipc.c:125
+#, c-format
+msgid "fsmonitor_ipc__send_query: unspecified error on '%s'"
+msgstr "fsmonitor_ipc__send_query : erreur non spécifiée sur '%s'"
+
+#: fsmonitor-ipc.c:155
+msgid "fsmonitor--daemon is not running"
+msgstr "fsmonitor--daemon n'est pas en cours d'exécution"
+
+#: fsmonitor-ipc.c:164
+#, c-format
+msgid "could not send '%s' command to fsmonitor--daemon"
+msgstr "impossible de lancer la commmand '%s' à fsmonitor--daemon"
+
+#: gpg-interface.c:329 gpg-interface.c:456 gpg-interface.c:995
+#: gpg-interface.c:1011
msgid "could not create temporary file"
msgstr "impossible de créer un fichier temporaire"
-#: gpg-interface.c:332 gpg-interface.c:460
+#: gpg-interface.c:332 gpg-interface.c:459
#, c-format
msgid "failed writing detached signature to '%s'"
msgstr "impossible d'écrire la signature détachée dans '%s'"
-#: gpg-interface.c:451
+#: gpg-interface.c:450
msgid ""
"gpg.ssh.allowedSignersFile needs to be configured and exist for ssh "
"signature verification"
@@ -4468,7 +4596,7 @@ msgstr ""
"gpg.ssh.allowedSignersFile doit exister et être configuré pour la "
"vérification de signature ssh"
-#: gpg-interface.c:480
+#: gpg-interface.c:479
msgid ""
"ssh-keygen -Y find-principals/verify is needed for ssh signature "
"verification (available in openssh version 8.2p1+)"
@@ -4476,56 +4604,56 @@ msgstr ""
"ssh-keygen -Y -find-principals/verify est nécessaire pour la vérification de "
"signature ssh (disponible depuis openssh version 8.2p1+)"
-#: gpg-interface.c:536
+#: gpg-interface.c:550
#, c-format
msgid "ssh signing revocation file configured but not found: %s"
msgstr "fichier de révocation de signature ssh configuré mais non trouvé : %s"
-#: gpg-interface.c:624
+#: gpg-interface.c:638
#, c-format
msgid "bad/incompatible signature '%s'"
msgstr "signature incompatible ou mauvaise '%s'"
-#: gpg-interface.c:801 gpg-interface.c:806
+#: gpg-interface.c:815 gpg-interface.c:820
#, c-format
msgid "failed to get the ssh fingerprint for key '%s'"
msgstr "échec d'obtention de l'empreinte ssh pour la clé '%s'"
-#: gpg-interface.c:829
+#: gpg-interface.c:843
msgid ""
"either user.signingkey or gpg.ssh.defaultKeyCommand needs to be configured"
msgstr "soit user.signingkey ou gpg.ssh.defaultKeyCommand doit être configuré"
-#: gpg-interface.c:851
+#: gpg-interface.c:865
#, c-format
msgid "gpg.ssh.defaultKeyCommand succeeded but returned no keys: %s %s"
msgstr ""
"gpg.ssh.defaultKeyCommand a réussi mais n'a retourné aucune clé : %s %s"
-#: gpg-interface.c:857
+#: gpg-interface.c:871
#, c-format
msgid "gpg.ssh.defaultKeyCommand failed: %s %s"
msgstr "gpg.ssh.defaultKeyCommand a échoué : %s %s"
-#: gpg-interface.c:945
+#: gpg-interface.c:966
msgid "gpg failed to sign the data"
msgstr "gpg n'a pas pu signer les données"
-#: gpg-interface.c:967
+#: gpg-interface.c:988
msgid "user.signingkey needs to be set for ssh signing"
msgstr "user.signingkey doit être configuré pour pour signer avec ssh"
-#: gpg-interface.c:978
+#: gpg-interface.c:999
#, c-format
msgid "failed writing ssh signing key to '%s'"
msgstr "impossible d'écrire la clé de signature ssh dans '%s'"
-#: gpg-interface.c:996
+#: gpg-interface.c:1017
#, c-format
msgid "failed writing ssh signing key buffer to '%s'"
msgstr "impossible d'écrire le tampon de la clé de signature ssh dans '%s'"
-#: gpg-interface.c:1014
+#: gpg-interface.c:1035
msgid ""
"ssh-keygen -Y sign is needed for ssh signing (available in openssh version "
"8.2p1+)"
@@ -4533,7 +4661,7 @@ msgstr ""
"ssh-keygen -Y signe est nécessaire pour pouvoir signer avec ssh (disponible "
"dans openssh version 8.2p1+)"
-#: gpg-interface.c:1026
+#: gpg-interface.c:1047
#, c-format
msgid "failed reading ssh signing data buffer from '%s'"
msgstr "impossible de lire le tampon de données de signature ssh depuis '%s'"
@@ -4543,7 +4671,7 @@ msgstr "impossible de lire le tampon de données de signature ssh depuis '%s'"
msgid "ignored invalid color '%.*s' in log.graphColors"
msgstr "couleur invalide '%.*s' ignorée dans log.graphColors"
-#: grep.c:531
+#: grep.c:446
msgid ""
"given pattern contains NULL byte (via -f <file>). This is only supported "
"with -P under PCRE v2"
@@ -4551,112 +4679,112 @@ msgstr ""
"le motif fourni contient des octets NUL (via -f <fichier>). Ce n'est "
"supporté qu'avec -P avec PCRE v2"
-#: grep.c:1942
+#: grep.c:1859
#, c-format
msgid "'%s': unable to read %s"
msgstr "'%s' : lecture de %s impossible"
-#: grep.c:1959 setup.c:177 builtin/clone.c:302 builtin/diff.c:90
+#: grep.c:1876 setup.c:178 builtin/clone.c:308 builtin/diff.c:90
#: builtin/rm.c:136
#, c-format
msgid "failed to stat '%s'"
msgstr "échec du stat de '%s'"
-#: grep.c:1970
+#: grep.c:1887
#, c-format
msgid "'%s': short read"
msgstr "'%s' : lecture tronquée"
-#: help.c:24
+#: help.c:25
msgid "start a working area (see also: git help tutorial)"
msgstr "démarrer une zone de travail (voir aussi : git help tutorial)"
-#: help.c:25
+#: help.c:26
msgid "work on the current change (see also: git help everyday)"
msgstr ""
"travailler sur la modification actuelle (voir aussi : git help revisions)"
-#: help.c:26
+#: help.c:27
msgid "examine the history and state (see also: git help revisions)"
msgstr "examiner l'historique et l'état (voir aussi : git help revisions)"
-#: help.c:27
+#: help.c:28
msgid "grow, mark and tweak your common history"
msgstr "agrandir, marquer et modifier votre historique"
-#: help.c:28
+#: help.c:29
msgid "collaborate (see also: git help workflows)"
msgstr "collaborer (voir aussi : git help workflows)"
-#: help.c:32
+#: help.c:33
msgid "Main Porcelain Commands"
msgstr "Commandes Porcelaine Principales"
-#: help.c:33
+#: help.c:34
msgid "Ancillary Commands / Manipulators"
msgstr "Commandes Auxiliaires / Manipulateurs"
-#: help.c:34
+#: help.c:35
msgid "Ancillary Commands / Interrogators"
msgstr "Commandes Auxiliaires / Interrogateurs"
-#: help.c:35
+#: help.c:36
msgid "Interacting with Others"
msgstr "Interaction avec d'autres développeurs"
-#: help.c:36
+#: help.c:37
msgid "Low-level Commands / Manipulators"
msgstr "Commandes bas-niveau / Manipulateurs"
-#: help.c:37
+#: help.c:38
msgid "Low-level Commands / Interrogators"
msgstr "Commandes bas niveau / Interrogateurs"
-#: help.c:38
+#: help.c:39
msgid "Low-level Commands / Syncing Repositories"
msgstr "Commandes bas niveau / Synchronisation de dépôts"
-#: help.c:39
+#: help.c:40
msgid "Low-level Commands / Internal Helpers"
msgstr "Commandes bas niveau / Assistants internes"
-#: help.c:313
+#: help.c:316
#, c-format
msgid "available git commands in '%s'"
msgstr "commandes git disponibles dans '%s'"
-#: help.c:320
+#: help.c:323
msgid "git commands available from elsewhere on your $PATH"
msgstr "commandes git disponibles depuis un autre endroit de votre $PATH"
-#: help.c:329
+#: help.c:332
msgid "These are common Git commands used in various situations:"
msgstr "Ci-dessous les commandes Git habituelles dans diverses situations :"
-#: help.c:378 git.c:100
+#: help.c:382 git.c:100
#, c-format
msgid "unsupported command listing type '%s'"
msgstr "type de liste de commandes non supporté '%s'"
-#: help.c:418
+#: help.c:422
msgid "The Git concept guides are:"
msgstr "Les guides des concepts de Git sont :"
-#: help.c:442
-msgid "See 'git help <command>' to read about a specific subcommand"
-msgstr ""
-"Référez-vous à 'git help <commande>' pour des informations sur une sous-"
-"commande spécifique"
-
-#: help.c:447
+#: help.c:446
msgid "External commands"
msgstr "Commandes externes"
-#: help.c:462
+#: help.c:468
msgid "Command aliases"
msgstr "Alias de commande"
-#: help.c:543
+#: help.c:486
+msgid "See 'git help <command>' to read about a specific subcommand"
+msgstr ""
+"Référez-vous à 'git help <commande>' pour des informations sur une sous-"
+"commande spécifique"
+
+#: help.c:563
#, c-format
msgid ""
"'%s' appears to be a git command, but we were not\n"
@@ -4665,38 +4793,38 @@ msgstr ""
"'%s' semble être une commande git, mais elle n'a pas pu\n"
"être exécutée. Peut-être git-%s est-elle cassée ?"
-#: help.c:565 help.c:662
+#: help.c:585 help.c:682
#, c-format
msgid "git: '%s' is not a git command. See 'git --help'."
msgstr "git : '%s' n'est pas une commande git. Voir 'git --help'."
-#: help.c:613
+#: help.c:633
msgid "Uh oh. Your system reports no Git commands at all."
msgstr "Ahem. Votre système n'indique aucune commande Git."
-#: help.c:635
+#: help.c:655
#, c-format
msgid "WARNING: You called a Git command named '%s', which does not exist."
msgstr ""
"ATTENTION : vous avez invoqué une commande Git nommée '%s' qui n'existe pas."
-#: help.c:640
+#: help.c:660
#, c-format
msgid "Continuing under the assumption that you meant '%s'."
msgstr "Continuons en supposant que vous avez voulu dire '%s'."
-#: help.c:646
+#: help.c:666
#, c-format
msgid "Run '%s' instead [y/N]? "
msgstr "Lancer '%s' à la place [y/N] ? "
-#: help.c:654
+#: help.c:674
#, c-format
msgid "Continuing in %0.1f seconds, assuming that you meant '%s'."
msgstr ""
"Continuons dans %0.1f secondes en supposant que vous avez voulu dire '%s'."
-#: help.c:666
+#: help.c:686
msgid ""
"\n"
"The most similar command is"
@@ -4710,16 +4838,16 @@ msgstr[1] ""
"\n"
"Les commandes les plus ressemblantes sont"
-#: help.c:706
+#: help.c:729
msgid "git version [<options>]"
msgstr "git version [<options>]"
-#: help.c:761
+#: help.c:784
#, c-format
msgid "%s: %s - %s"
msgstr "%s: %s - %s"
-#: help.c:765
+#: help.c:788
msgid ""
"\n"
"Did you mean this?"
@@ -4733,7 +4861,7 @@ msgstr[1] ""
"\n"
"Vouliez-vous dire un de ceux-là ?"
-#: hook.c:27
+#: hook.c:28
#, c-format
msgid ""
"The '%s' hook was ignored because it's not set as executable.\n"
@@ -4743,15 +4871,20 @@ msgstr ""
"Vous pouvez désactiver cet avertissement avec `git config advice.ignoredHook "
"false`."
-#: ident.c:353
+#: hook.c:87
+#, c-format
+msgid "Couldn't start hook '%s'\n"
+msgstr "impossible de démarrer le crochet '%s'\n"
+
+#: ident.c:354
msgid "Author identity unknown\n"
msgstr "Identité d'auteur inconnue\n"
-#: ident.c:356
+#: ident.c:357
msgid "Committer identity unknown\n"
msgstr "Indentité de validateur inconnue\n"
-#: ident.c:362
+#: ident.c:363
msgid ""
"\n"
"*** Please tell me who you are.\n"
@@ -4777,72 +4910,72 @@ msgstr ""
"Éliminez --global pour ne faire les réglages que dans ce dépôt.\n"
"\n"
-#: ident.c:397
+#: ident.c:398
msgid "no email was given and auto-detection is disabled"
msgstr "aucun courriel fourni et l'auto-détection est désactivée"
-#: ident.c:402
+#: ident.c:403
#, c-format
msgid "unable to auto-detect email address (got '%s')"
msgstr "impossible de détecter automatiquement l'adresse ('%s' trouvé)"
-#: ident.c:419
+#: ident.c:420
msgid "no name was given and auto-detection is disabled"
msgstr "aucun nom fourni et l'auto-détection est désactivée"
-#: ident.c:425
+#: ident.c:426
#, c-format
msgid "unable to auto-detect name (got '%s')"
msgstr "impossible de détecter automatiquement le nom ('%s' trouvé)"
-#: ident.c:433
+#: ident.c:434
#, c-format
msgid "empty ident name (for <%s>) not allowed"
msgstr "nom d'identifiant vide (pour <%s>) non permis"
-#: ident.c:439
+#: ident.c:440
#, c-format
msgid "name consists only of disallowed characters: %s"
msgstr "le nom n'est constitué que de caractères interdits : %s"
-#: ident.c:454 builtin/commit.c:648
+#: ident.c:455 builtin/commit.c:649
#, c-format
msgid "invalid date format: %s"
msgstr "format de date invalide : %s"
-#: list-objects-filter-options.c:83
+#: list-objects-filter-options.c:68
msgid "expected 'tree:<depth>'"
msgstr "attendu : 'tree:<profondeur>'"
-#: list-objects-filter-options.c:98
+#: list-objects-filter-options.c:83
msgid "sparse:path filters support has been dropped"
msgstr "sparse : le support des filtres de chemin a été abandonné"
-#: list-objects-filter-options.c:105
+#: list-objects-filter-options.c:90
#, c-format
msgid "'%s' for 'object:type=<type>' is not a valid object type"
msgstr "'%s' pour 'object:type=<type>' n'est pas un type d'objet valide"
-#: list-objects-filter-options.c:124
+#: list-objects-filter-options.c:109
#, c-format
msgid "invalid filter-spec '%s'"
msgstr "spécificateur de filtre invalide '%s'"
-#: list-objects-filter-options.c:140
+#: list-objects-filter-options.c:125
#, c-format
msgid "must escape char in sub-filter-spec: '%c'"
msgstr ""
"le caractère doit être échappé dans le spécificateur de sous-filtre : '%c'"
-#: list-objects-filter-options.c:182
+#: list-objects-filter-options.c:167
msgid "expected something after combine:"
msgstr "quelque chose attendu après combine :"
-#: list-objects-filter-options.c:264
+#: list-objects-filter-options.c:249
msgid "multiple filter-specs cannot be combined"
msgstr "impossible de combiner des spécificateurs multiples de filtre"
-#: list-objects-filter-options.c:376
+#: list-objects-filter-options.c:365
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 "
@@ -4858,19 +4991,19 @@ msgstr "impossible d'accéder au blob clairsemé dans '%s'"
msgid "unable to parse sparse filter data in %s"
msgstr "impossible d'analyser la donnée de filtre clairsemé dans %s"
-#: list-objects.c:127
+#: list-objects.c:144
#, c-format
msgid "entry '%s' in tree %s has tree mode, but is not a tree"
msgstr ""
"l'entrée '%s' dans l'arbre %s a un mode d'arbre, mais n'est pas un arbre"
-#: list-objects.c:140
+#: list-objects.c:157
#, c-format
msgid "entry '%s' in tree %s has blob mode, but is not a blob"
msgstr ""
"l'entrée '%s' dans l'arbre %s a un mode de blob, mais n'est pas un blob"
-#: list-objects.c:398
+#: list-objects.c:415
#, c-format
msgid "unable to load root tree for commit %s"
msgstr "impossible de charger l'arbre racine pour le commit %s"
@@ -4899,17 +5032,12 @@ msgstr ""
msgid "Unable to create '%s.lock': %s"
msgstr "Impossible de créer '%s.lock' : %s"
-#: ls-refs.c:37
-#, c-format
-msgid "invalid value '%s' for lsrefs.unborn"
-msgstr "valeur invalide '%s' pour lsrefs.unborn"
-
-#: ls-refs.c:174
+#: ls-refs.c:175
#, c-format
msgid "unexpected line: '%s'"
msgstr "ligne inattendue : '%s'"
-#: ls-refs.c:178
+#: ls-refs.c:179
msgid "expected flush after ls-refs arguments"
msgstr "vidage attendu après les arguments ls-refs"
@@ -4917,39 +5045,39 @@ msgstr "vidage attendu après les arguments ls-refs"
msgid "quoted CRLF detected"
msgstr "CRLF citées détectées"
-#: mailinfo.c:1254 builtin/am.c:184 builtin/mailinfo.c:46
+#: mailinfo.c:1254 builtin/am.c:185 builtin/mailinfo.c:46
#, c-format
msgid "bad action '%s' for '%s'"
msgstr "action invalide '%s' pour '%s'"
-#: merge-ort.c:1584 merge-recursive.c:1211
+#: merge-ort.c:1630 merge-recursive.c:1214
#, c-format
msgid "Failed to merge submodule %s (not checked out)"
msgstr "Échec de la fusion du sous-module %s (non extrait)"
-#: merge-ort.c:1593 merge-recursive.c:1218
+#: merge-ort.c:1639 merge-recursive.c:1221
#, c-format
msgid "Failed to merge submodule %s (commits not present)"
msgstr "Échec de fusion du sous-module %s (commits non présents)"
-#: merge-ort.c:1602 merge-recursive.c:1225
+#: merge-ort.c:1648 merge-recursive.c:1228
#, c-format
msgid "Failed to merge submodule %s (commits don't follow merge-base)"
msgstr ""
"Échec de la fusion du sous-module %s (les commits ne descendent pas de la "
"base de fusion)"
-#: merge-ort.c:1612 merge-ort.c:1620
+#: merge-ort.c:1658 merge-ort.c:1666
#, c-format
msgid "Note: Fast-forwarding submodule %s to %s"
msgstr "Note : Avance rapide du sous-module %s à %s"
-#: merge-ort.c:1642
+#: merge-ort.c:1688
#, c-format
msgid "Failed to merge submodule %s"
msgstr "Échec de la fusion du sous-module %s"
-#: merge-ort.c:1649
+#: merge-ort.c:1695
#, c-format
msgid ""
"Failed to merge submodule %s, but a possible merge resolution exists:\n"
@@ -4959,7 +5087,7 @@ msgstr ""
"existe :\n"
"%s\n"
-#: merge-ort.c:1653 merge-recursive.c:1281
+#: merge-ort.c:1699 merge-recursive.c:1284
#, c-format
msgid ""
"If this is correct simply add it to the index for example\n"
@@ -4976,7 +5104,7 @@ msgstr ""
"\n"
"qui acceptera cette suggestion.\n"
-#: merge-ort.c:1666
+#: merge-ort.c:1712
#, c-format
msgid ""
"Failed to merge submodule %s, but multiple possible merges exist:\n"
@@ -4986,21 +5114,21 @@ msgstr ""
"existent :\n"
"%s"
-#: merge-ort.c:1887 merge-recursive.c:1372
+#: merge-ort.c:1937 merge-recursive.c:1375
msgid "Failed to execute internal merge"
msgstr "Échec à l'exécution de la fusion interne"
-#: merge-ort.c:1892 merge-recursive.c:1377
+#: merge-ort.c:1942 merge-recursive.c:1380
#, c-format
msgid "Unable to add %s to database"
msgstr "Impossible d'ajouter %s à la base de données"
-#: merge-ort.c:1899 merge-recursive.c:1410
+#: merge-ort.c:1949 merge-recursive.c:1413
#, c-format
msgid "Auto-merging %s"
msgstr "Fusion automatique de %s"
-#: merge-ort.c:2038 merge-recursive.c:2132
+#: merge-ort.c:2088 merge-recursive.c:2135
#, c-format
msgid ""
"CONFLICT (implicit dir rename): Existing file/dir at %s in the way of "
@@ -5009,7 +5137,7 @@ msgstr ""
"CONFLIT (renommage implicite de répertoire) : le répertoire/fichier %s gêne "
"des renommages implicites de répertoire déplaçant les chemins suivants : %s."
-#: merge-ort.c:2048 merge-recursive.c:2142
+#: merge-ort.c:2098 merge-recursive.c:2145
#, c-format
msgid ""
"CONFLICT (implicit dir rename): Cannot map more than one path to %s; "
@@ -5018,7 +5146,7 @@ msgstr ""
"CONFLIT (renommage implicite de répertoire) : impossible de transformer "
"plusieurs chemins sur %s ; les chemins concernés sont : %s"
-#: merge-ort.c:2106
+#: merge-ort.c:2156
#, c-format
msgid ""
"CONFLICT (directory rename split): Unclear where to rename %s to; it was "
@@ -5029,7 +5157,7 @@ msgstr ""
"parce que le répertoire a été renommé en plusieurs autres répertoires, sans "
"aucune destination récupérant la majorité des fichiers."
-#: merge-ort.c:2260 merge-recursive.c:2478
+#: merge-ort.c:2310 merge-recursive.c:2481
#, c-format
msgid ""
"WARNING: Avoiding applying %s -> %s rename to %s, because %s itself was "
@@ -5038,7 +5166,7 @@ msgstr ""
"AVERTISSEMENT : ne renomme pas %s->%s dans %s, parce que %s lui-même a été "
"renommé."
-#: merge-ort.c:2400 merge-recursive.c:3261
+#: merge-ort.c:2450 merge-recursive.c:3264
#, c-format
msgid ""
"Path updated: %s added in %s inside a directory that was renamed in %s; "
@@ -5047,7 +5175,7 @@ msgstr ""
"Chemin mis à jour : %s ajouté dans %s dans un répertoire qui a été renommé "
"en %s ; déplacé dans %s."
-#: merge-ort.c:2407 merge-recursive.c:3268
+#: merge-ort.c:2457 merge-recursive.c:3271
#, c-format
msgid ""
"Path updated: %s renamed to %s in %s, inside a directory that was renamed in "
@@ -5056,7 +5184,7 @@ msgstr ""
"Chemin mis à jour : %s renommé en %s dans %s, dans un répertoire qui a été "
"renommé en %s ; déplacé dans %s."
-#: merge-ort.c:2420 merge-recursive.c:3264
+#: merge-ort.c:2470 merge-recursive.c:3267
#, c-format
msgid ""
"CONFLICT (file location): %s added in %s inside a directory that was renamed "
@@ -5066,7 +5194,7 @@ msgstr ""
"a été renommé dans %s, ce qui suggère qu'il devrait peut-être être déplacé "
"vers %s."
-#: merge-ort.c:2428 merge-recursive.c:3271
+#: merge-ort.c:2478 merge-recursive.c:3274
#, c-format
msgid ""
"CONFLICT (file location): %s renamed to %s in %s, inside a directory that "
@@ -5076,13 +5204,13 @@ msgstr ""
"répertoire qui a été renommé dans %s, ce qui suggère qu'il devrait peut-être "
"être déplacé vers %s."
-#: merge-ort.c:2584
+#: merge-ort.c:2634
#, c-format
msgid "CONFLICT (rename/rename): %s renamed to %s in %s and to %s in %s."
msgstr ""
"CONFLIT (renommage/renommage) : %s renommé en %s dans %s et en %s dans %s."
-#: merge-ort.c:2679
+#: merge-ort.c:2729
#, c-format
msgid ""
"CONFLICT (rename involved in collision): rename of %s -> %s has content "
@@ -5093,24 +5221,24 @@ msgstr ""
"des conflits de contenu ET entre en collision avec un autre chemin ; ceci "
"peut resulter en des marqueurs de conflit imbriqués."
-#: merge-ort.c:2698 merge-ort.c:2722
+#: merge-ort.c:2748 merge-ort.c:2772
#, c-format
msgid "CONFLICT (rename/delete): %s renamed to %s in %s, but deleted in %s."
msgstr ""
"CONFLIT (renommage/suppression) : Renommage de %s en %s dans %s mais "
"supprimé dans %s."
-#: merge-ort.c:3212 merge-recursive.c:3022
+#: merge-ort.c:3261 merge-recursive.c:3025
#, c-format
msgid "cannot read object %s"
msgstr "impossible de lire l'objet %s"
-#: merge-ort.c:3215 merge-recursive.c:3025
+#: merge-ort.c:3264 merge-recursive.c:3028
#, c-format
msgid "object %s is not a blob"
msgstr "l'objet %s n'est pas un blob"
-#: merge-ort.c:3644
+#: merge-ort.c:3693
#, c-format
msgid ""
"CONFLICT (file/directory): directory in the way of %s from %s; moving it to "
@@ -5119,7 +5247,7 @@ msgstr ""
"CONFLIT (fichier/répertoire) : répertoire au milieu de %s depuis %s ; "
"déplacement dans %s à la place."
-#: merge-ort.c:3721
+#: merge-ort.c:3770
#, c-format
msgid ""
"CONFLICT (distinct types): %s had different types on each side; renamed both "
@@ -5128,7 +5256,7 @@ msgstr ""
"CONFLIT (types différents) : %s a des types différents des deux côtés ; "
"renommé chacune de manière à pouvoir enregistrer les deux quelque part."
-#: merge-ort.c:3728
+#: merge-ort.c:3777
#, c-format
msgid ""
"CONFLICT (distinct types): %s had different types on each side; renamed one "
@@ -5138,24 +5266,24 @@ msgstr ""
"renommé une d'entre elles de manière à pouvoir enregistrer les deux quelque "
"part."
-#: merge-ort.c:3819 merge-recursive.c:3101
+#: merge-ort.c:3866 merge-recursive.c:3104
msgid "content"
msgstr "contenu"
-#: merge-ort.c:3821 merge-recursive.c:3105
+#: merge-ort.c:3868 merge-recursive.c:3108
msgid "add/add"
msgstr "ajout/ajout"
-#: merge-ort.c:3823 merge-recursive.c:3150
+#: merge-ort.c:3870 merge-recursive.c:3153
msgid "submodule"
msgstr "sous-module"
-#: merge-ort.c:3825 merge-recursive.c:3151
+#: merge-ort.c:3872 merge-recursive.c:3154
#, c-format
msgid "CONFLICT (%s): Merge conflict in %s"
msgstr "CONFLIT (%s) : Conflit de fusion dans %s"
-#: merge-ort.c:3869
+#: merge-ort.c:3916
#, c-format
msgid ""
"CONFLICT (modify/delete): %s deleted in %s and modified in %s. Version %s "
@@ -5164,7 +5292,7 @@ msgstr ""
"CONFLIT (modification/suppression) : %s supprimé dans %s et modifié dans %s. "
"Version %s de %s laissée dans l'arbre."
-#: merge-ort.c:4165
+#: merge-ort.c:4212
#, c-format
msgid ""
"Note: %s not up to date and in way of checking out conflicted version; old "
@@ -5176,12 +5304,12 @@ msgstr ""
#. TRANSLATORS: The %s arguments are: 1) tree hash of a merge
#. base, and 2-3) the trees for the two trees we're merging.
#.
-#: merge-ort.c:4534
+#: merge-ort.c:4586
#, c-format
msgid "collecting merge info failed for trees %s, %s, %s"
msgstr "échec de collecte l'information de fusion pour les arbres %s, %s, %s"
-#: merge-ort-wrappers.c:13 merge-recursive.c:3716
+#: merge-ort-wrappers.c:13 merge-recursive.c:3723
#, c-format
msgid ""
"Your local changes to the following files would be overwritten by merge:\n"
@@ -5191,7 +5319,7 @@ msgstr ""
"fusion :\n"
" %s"
-#: merge-ort-wrappers.c:33 merge-recursive.c:3482 builtin/merge.c:405
+#: merge-ort-wrappers.c:33 merge-recursive.c:3485 builtin/merge.c:405
msgid "Already up to date."
msgstr "Déjà à jour."
@@ -5228,7 +5356,7 @@ msgstr ": peut-être un conflit D/F ?"
msgid "refusing to lose untracked file at '%s'"
msgstr "refus de perdre le fichier non suivi '%s'"
-#: merge-recursive.c:956 builtin/cat-file.c:41
+#: merge-recursive.c:956 builtin/cat-file.c:47
#, c-format
msgid "cannot read object %s '%s'"
msgstr "impossible de lire l'objet %s '%s'"
@@ -5253,44 +5381,44 @@ msgstr "échec à la création du lien symbolique '%s' : %s"
msgid "do not know what to do with %06o %s '%s'"
msgstr "ne sait pas traiter %06o %s '%s'"
-#: merge-recursive.c:1233 merge-recursive.c:1246
+#: merge-recursive.c:1236 merge-recursive.c:1249
#, c-format
msgid "Fast-forwarding submodule %s to the following commit:"
msgstr "Avance rapide du sous-module %s au commit suivant :"
-#: merge-recursive.c:1236 merge-recursive.c:1249
+#: merge-recursive.c:1239 merge-recursive.c:1252
#, c-format
msgid "Fast-forwarding submodule %s"
msgstr "Avance rapide du sous-module %s"
-#: merge-recursive.c:1273
+#: merge-recursive.c:1276
#, c-format
msgid "Failed to merge submodule %s (merge following commits not found)"
msgstr ""
"Échec de fusion du sous-module %s (fusion suivant les commits non trouvée)"
-#: merge-recursive.c:1277
+#: merge-recursive.c:1280
#, c-format
msgid "Failed to merge submodule %s (not fast-forward)"
msgstr "Échec de fusion du sous-module %s (pas en avance rapide)"
-#: merge-recursive.c:1278
+#: merge-recursive.c:1281
msgid "Found a possible merge resolution for the submodule:\n"
msgstr "Résolution possible de fusion trouvée pour le sous-module :\n"
-#: merge-recursive.c:1290
+#: merge-recursive.c:1293
#, c-format
msgid "Failed to merge submodule %s (multiple merges found)"
msgstr "Échec de fusion du sous-module %s (plusieurs fusions trouvées)"
-#: merge-recursive.c:1434
+#: merge-recursive.c:1437
#, c-format
msgid "Error: Refusing to lose untracked file at %s; writing to %s instead."
msgstr ""
"Erreur : refus de perdre le fichier non suivi %s ; écriture dans %s à la "
"place."
-#: merge-recursive.c:1506
+#: merge-recursive.c:1509
#, c-format
msgid ""
"CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left "
@@ -5299,7 +5427,7 @@ msgstr ""
"CONFLIT (%s/suppression) : %s supprimé dans %s et %s dans %s. Version %s de "
"%s laissée dans l'arbre."
-#: merge-recursive.c:1511
+#: merge-recursive.c:1514
#, c-format
msgid ""
"CONFLICT (%s/delete): %s deleted in %s and %s to %s in %s. Version %s of %s "
@@ -5308,7 +5436,7 @@ msgstr ""
"CONFLIT (%s/suppression) : %s supprimé dans %s et %s à %s dans %s. Version "
"%s de %s laissée dans l'arbre."
-#: merge-recursive.c:1518
+#: merge-recursive.c:1521
#, c-format
msgid ""
"CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left "
@@ -5317,7 +5445,7 @@ msgstr ""
"CONFLIT (%s/suppression) : %s supprimé dans %s et %s dans %s. Version %s de "
"%s laissée dans l'arbre dans le fichier %s."
-#: merge-recursive.c:1523
+#: merge-recursive.c:1526
#, c-format
msgid ""
"CONFLICT (%s/delete): %s deleted in %s and %s to %s in %s. Version %s of %s "
@@ -5326,61 +5454,61 @@ msgstr ""
"CONFLIT (%s/suppression) : %s supprimé dans %s et %s à %s dans %s. Version "
"%s de %s laissée dans l'arbre dans le fichier %s."
-#: merge-recursive.c:1558
+#: merge-recursive.c:1561
msgid "rename"
msgstr "renommage"
-#: merge-recursive.c:1558
+#: merge-recursive.c:1561
msgid "renamed"
msgstr "renommé"
-#: merge-recursive.c:1609 merge-recursive.c:2515 merge-recursive.c:3178
+#: merge-recursive.c:1612 merge-recursive.c:2518 merge-recursive.c:3181
#, c-format
msgid "Refusing to lose dirty file at %s"
msgstr "Refus de perdre le fichier modifié %s"
-#: merge-recursive.c:1619
+#: merge-recursive.c:1622
#, c-format
msgid "Refusing to lose untracked file at %s, even though it's in the way."
msgstr "Refus de perdre le fichier non suivi %s, même s'il gêne."
-#: merge-recursive.c:1677
+#: merge-recursive.c:1680
#, c-format
msgid "CONFLICT (rename/add): Rename %s->%s in %s. Added %s in %s"
msgstr ""
"CONFLIT (renommage/ajout) : Renommage de %s->%s dans %s. %s ajouté dans %s"
-#: merge-recursive.c:1708
+#: merge-recursive.c:1711
#, c-format
msgid "%s is a directory in %s adding as %s instead"
msgstr "%s est un répertoire dans %s ajouté plutôt comme %s"
-#: merge-recursive.c:1713
+#: merge-recursive.c:1716
#, c-format
msgid "Refusing to lose untracked file at %s; adding as %s instead"
msgstr "Refus de perdre le fichier non suivi %s ; ajout comme %s à la place"
-#: merge-recursive.c:1740
+#: merge-recursive.c:1743
#, c-format
msgid ""
-"CONFLICT (rename/rename): Rename \"%s\"->\"%s\" in branch \"%s\" rename \"%s"
-"\"->\"%s\" in \"%s\"%s"
+"CONFLICT (rename/rename): Rename \"%s\"->\"%s\" in branch \"%s\" rename "
+"\"%s\"->\"%s\" in \"%s\"%s"
msgstr ""
"CONFLIT (renommage/renommage) : Renommage de \"%s\"->\"%s\" dans la branche "
"\"%s\" et renommage \"%s\"->\"%s\" dans \"%s\"%s"
-#: merge-recursive.c:1745
+#: merge-recursive.c:1748
msgid " (left unresolved)"
msgstr " (laissé non résolu)"
-#: merge-recursive.c:1837
+#: merge-recursive.c:1840
#, c-format
msgid "CONFLICT (rename/rename): Rename %s->%s in %s. Rename %s->%s in %s"
msgstr ""
"CONFLIT (renommage/renommage) : renommage '%s'->'%s' dans %s. Renommage '%s'-"
">'%s' dans %s"
-#: merge-recursive.c:2100
+#: merge-recursive.c:2103
#, c-format
msgid ""
"CONFLICT (directory rename split): Unclear where to place %s because "
@@ -5391,7 +5519,7 @@ msgstr ""
"parce que le répertoire %s a été renommé en plusieurs autres répertoires, "
"sans aucune destination récupérant la majorité des fichiers."
-#: merge-recursive.c:2234
+#: merge-recursive.c:2237
#, c-format
msgid ""
"CONFLICT (rename/rename): Rename directory %s->%s in %s. Rename directory %s-"
@@ -5400,79 +5528,79 @@ msgstr ""
"CONFLIT (renommage/renommage) : renommage du répertoire %s->%s dans %s. "
"Renommage de répertoire %s->%s dans %s"
-#: merge-recursive.c:3089
+#: merge-recursive.c:3092
msgid "modify"
msgstr "modification"
-#: merge-recursive.c:3089
+#: merge-recursive.c:3092
msgid "modified"
msgstr "modifié"
-#: merge-recursive.c:3128
+#: merge-recursive.c:3131
#, c-format
msgid "Skipped %s (merged same as existing)"
msgstr "%s sauté (fusion identique à l'existant)"
-#: merge-recursive.c:3181
+#: merge-recursive.c:3184
#, c-format
msgid "Adding as %s instead"
msgstr "Ajout plutôt comme %s"
-#: merge-recursive.c:3385
+#: merge-recursive.c:3388
#, c-format
msgid "Removing %s"
msgstr "Suppression de %s"
-#: merge-recursive.c:3408
+#: merge-recursive.c:3411
msgid "file/directory"
msgstr "fichier/répertoire"
-#: merge-recursive.c:3413
+#: merge-recursive.c:3416
msgid "directory/file"
msgstr "répertoire/fichier"
-#: merge-recursive.c:3420
+#: merge-recursive.c:3423
#, c-format
msgid "CONFLICT (%s): There is a directory with name %s in %s. Adding %s as %s"
msgstr ""
"CONFLIT (%s) : Il y a un répertoire nommé %s dans %s. Ajout de %s comme %s"
-#: merge-recursive.c:3429
+#: merge-recursive.c:3432
#, c-format
msgid "Adding %s"
msgstr "Ajout de %s"
-#: merge-recursive.c:3438
+#: merge-recursive.c:3441
#, c-format
msgid "CONFLICT (add/add): Merge conflict in %s"
msgstr "CONFLIT (ajout/ajout) : Conflit de fusion dans %s"
-#: merge-recursive.c:3491
+#: merge-recursive.c:3494
#, c-format
msgid "merging of trees %s and %s failed"
msgstr "échec de fusion des arbres %s et %s"
-#: merge-recursive.c:3585
+#: merge-recursive.c:3588
msgid "Merging:"
msgstr "Fusion :"
-#: merge-recursive.c:3598
+#: merge-recursive.c:3601
#, c-format
msgid "found %u common ancestor:"
msgid_plural "found %u common ancestors:"
msgstr[0] "%u ancêtre commun trouvé :"
msgstr[1] "%u ancêtres communs trouvés :"
-#: merge-recursive.c:3648
+#: merge-recursive.c:3651
msgid "merge returned no commit"
msgstr "la fusion n'a pas retourné de commit"
-#: merge-recursive.c:3816
+#: merge-recursive.c:3823
#, c-format
msgid "Could not parse object '%s'"
msgstr "Impossible d'analyser l'objet '%s'"
-#: merge-recursive.c:3834 builtin/merge.c:720 builtin/merge.c:906
+#: merge-recursive.c:3841 builtin/merge.c:720 builtin/merge.c:912
#: builtin/stash.c:489
msgid "Unable to write index."
msgstr "Impossible d'écrire l'index."
@@ -5481,174 +5609,178 @@ msgstr "Impossible d'écrire l'index."
msgid "failed to read the cache"
msgstr "impossible de lire le cache"
-#: merge.c:102 rerere.c:704 builtin/am.c:1988 builtin/am.c:2022
-#: builtin/checkout.c:598 builtin/checkout.c:853 builtin/clone.c:706
+#: merge.c:102 rerere.c:705 builtin/am.c:1989 builtin/am.c:2023
+#: builtin/checkout.c:603 builtin/checkout.c:865 builtin/clone.c:714
#: builtin/stash.c:269
msgid "unable to write new index file"
msgstr "impossible d'écrire le nouveau fichier d'index"
-#: midx.c:78
+#: midx.c:79
msgid "multi-pack-index OID fanout is of the wrong size"
msgstr "l'étalement de l'OID d'index multi-paquet n'a pas la bonne taille"
-#: midx.c:111
+#: midx.c:112
#, c-format
msgid "multi-pack-index file %s is too small"
msgstr "le fichier d'index multi-paquet %s est trop petit"
-#: midx.c:127
+#: midx.c:128
#, c-format
msgid "multi-pack-index signature 0x%08x does not match signature 0x%08x"
msgstr ""
"la signature de l'index multi-paquet 0x%08x ne correspond pas à la signature "
"0x%08x"
-#: midx.c:132
+#: midx.c:133
#, c-format
msgid "multi-pack-index version %d not recognized"
msgstr "la version d'index multi-paquet %d n'est pas reconnue"
-#: midx.c:137
+#: midx.c:138
#, c-format
msgid "multi-pack-index hash version %u does not match version %u"
msgstr ""
"la version d'empreinte d'index multi-paquet %u ne correspond pas à la "
"version %u"
-#: midx.c:154
+#: midx.c:155
msgid "multi-pack-index missing required pack-name chunk"
msgstr "index multi-paquet manque de tronçon de nom de paquet"
-#: midx.c:156
+#: midx.c:157
msgid "multi-pack-index missing required OID fanout chunk"
msgstr "index multi-paquet manque de tronçon de d'étalement OID requis"
-#: midx.c:158
+#: midx.c:159
msgid "multi-pack-index missing required OID lookup chunk"
msgstr "index multi-paquet manque de tronçon de recherche OID requis"
-#: midx.c:160
+#: midx.c:161
msgid "multi-pack-index missing required object offsets chunk"
msgstr "index multi-paquet manque de tronçon de décalage d'objet requis"
-#: midx.c:176
+#: midx.c:180
#, c-format
msgid "multi-pack-index pack names out of order: '%s' before '%s'"
msgstr ""
"index multi-paquet les noms de paquets sont en désordre : '%s' avant '%s'"
-#: midx.c:224
+#: midx.c:228
#, c-format
msgid "bad pack-int-id: %u (%u total packs)"
msgstr "mauvais pack-int-id : %u (%u paquets au total)"
-#: midx.c:274
+#: midx.c:278
msgid "multi-pack-index stores a 64-bit offset, but off_t is too small"
msgstr ""
"l'index multi-paquet stock un décalage en 64-bit, mais off_t est trop petit"
-#: midx.c:505
+#: midx.c:509
#, c-format
msgid "failed to add packfile '%s'"
msgstr "échec de l'ajout du fichier paquet '%s'"
-#: midx.c:511
+#: midx.c:515
#, c-format
msgid "failed to open pack-index '%s'"
msgstr "échec à l'ouverture du fichier paquet '%s'"
-#: midx.c:579
+#: midx.c:583
#, c-format
msgid "failed to locate object %d in packfile"
msgstr "échec de localisation de l'objet %d dans le fichier paquet"
-#: midx.c:895
+#: midx.c:911
msgid "cannot store reverse index file"
msgstr "impossible de stocker le fichier d'index inversé"
-#: midx.c:993
+#: midx.c:1009
#, c-format
msgid "could not parse line: %s"
msgstr "impossible d'analyser la ligne : %s"
-#: midx.c:995
+#: midx.c:1011
#, c-format
msgid "malformed line: %s"
msgstr "ligne malformée : %s"
-#: midx.c:1162
+#: midx.c:1181
msgid "ignoring existing multi-pack-index; checksum mismatch"
msgstr ""
"index multi-paquet existant ignoré ; non-concordance de la somme de contrôle"
-#: midx.c:1187
+#: midx.c:1206
msgid "could not load pack"
msgstr "impossible de charger le paquet"
-#: midx.c:1193
+#: midx.c:1212
#, c-format
msgid "could not open index for %s"
msgstr "impossible d'ouvrir l'index pour %s"
-#: midx.c:1204
+#: midx.c:1223
msgid "Adding packfiles to multi-pack-index"
msgstr "Ajout de fichiers paquet à un index multi-paquet"
-#: midx.c:1247
+#: midx.c:1266
#, c-format
msgid "unknown preferred pack: '%s'"
msgstr "paquet préféré inconnu : %s"
-#: midx.c:1292
+#: midx.c:1311
#, c-format
msgid "cannot select preferred pack %s with no objects"
msgstr "impossible de sélectionner le paquet préféré %s avec aucun objet"
-#: midx.c:1324
+#: midx.c:1343
#, c-format
msgid "did not see pack-file %s to drop"
msgstr "fichier paquet à éliminer %s non trouvé"
-#: midx.c:1370
+#: midx.c:1389
#, c-format
msgid "preferred pack '%s' is expired"
msgstr "le paquet préféré '%s' est expiré"
-#: midx.c:1383
+#: midx.c:1402
msgid "no pack files to index."
msgstr "aucun fichier paquet à l'index."
-#: midx.c:1420
+#: midx.c:1409
+msgid "refusing to write multi-pack .bitmap without any objects"
+msgstr "refus d'écrire le .bitmap multi-paquet sans aucun objet"
+
+#: midx.c:1451
msgid "could not write multi-pack bitmap"
msgstr "impossible d'écrire le bitmap multi-paquet"
-#: midx.c:1430
+#: midx.c:1461
msgid "could not write multi-pack-index"
msgstr "échec de l'écriture de l'index de multi-paquet"
-#: midx.c:1489 builtin/clean.c:37
+#: midx.c:1520 builtin/clean.c:37
#, c-format
msgid "failed to remove %s"
msgstr "échec de la suppression de %s"
-#: midx.c:1522
+#: midx.c:1553
#, c-format
msgid "failed to clear multi-pack-index at %s"
msgstr "échec du nettoyage de l'index de multi-paquet à %s"
-#: midx.c:1585
+#: midx.c:1616
msgid "multi-pack-index file exists, but failed to parse"
msgstr "le fichier d'index multi-paquet existe mais n'a pu être analysé"
-#: midx.c:1593
+#: midx.c:1624
msgid "incorrect checksum"
msgstr "somme de contrôle incorrecte"
-#: midx.c:1596
+#: midx.c:1627
msgid "Looking for referenced packfiles"
msgstr "Recherche de fichiers paquets référencés"
-#: midx.c:1611
+#: midx.c:1642
#, c-format
msgid ""
"oid fanout out of order: fanout[%d] = %<PRIx32> > %<PRIx32> = fanout[%d]"
@@ -5656,55 +5788,55 @@ msgstr ""
"étalement oid en désordre : étalement[%d] = %<PRIx32> > %<PRIx32> = "
"étalement[%d]"
-#: midx.c:1616
+#: midx.c:1647
msgid "the midx contains no oid"
msgstr "le midx ne contient aucun oid"
-#: midx.c:1625
+#: midx.c:1656
msgid "Verifying OID order in multi-pack-index"
msgstr "Vérification de l'ordre des OID dans l'index multi-paquet"
-#: midx.c:1634
+#: midx.c:1665
#, c-format
msgid "oid lookup out of order: oid[%d] = %s >= %s = oid[%d]"
msgstr "recherche d'oid en désordre : oid[%d] = %s >= %s = oid[%d]"
-#: midx.c:1654
+#: midx.c:1685
msgid "Sorting objects by packfile"
msgstr "Classement des objets par fichier paquet"
-#: midx.c:1661
+#: midx.c:1692
msgid "Verifying object offsets"
msgstr "Vérification des décalages des objets"
-#: midx.c:1677
+#: midx.c:1708
#, c-format
msgid "failed to load pack entry for oid[%d] = %s"
msgstr "échec de la lecture de l'élément de cache pour oid[%d] = %s"
-#: midx.c:1683
+#: midx.c:1714
#, c-format
msgid "failed to load pack-index for packfile %s"
msgstr "impossible de lire le fichier paquet %s"
-#: midx.c:1692
+#: midx.c:1723
#, c-format
msgid "incorrect object offset for oid[%d] = %s: %<PRIx64> != %<PRIx64>"
msgstr "décalage d'objet incorrect pour oid[%d] = %s : %<PRIx64> != %<PRIx64>"
-#: midx.c:1719
+#: midx.c:1750
msgid "Counting referenced objects"
msgstr "Comptage des objets référencés"
-#: midx.c:1729
+#: midx.c:1760
msgid "Finding and deleting unreferenced packfiles"
msgstr "Recherche et effacement des fichiers paquets non-référencés"
-#: midx.c:1921
+#: midx.c:1952
msgid "could not start pack-objects"
msgstr "impossible de démarrer le groupement d'objets"
-#: midx.c:1941
+#: midx.c:1972
msgid "could not finish pack-objects"
msgstr "impossible de finir le groupement d'objets"
@@ -5723,7 +5855,7 @@ msgstr "impossible de créer le fil lazy_name : %s"
msgid "unable to join lazy_name thread: %s"
msgstr "impossible de joindre le fil lazy_name : %s"
-#: notes-merge.c:277
+#: notes-merge.c:276
#, c-format
msgid ""
"You have not concluded your previous notes merge (%s exists).\n"
@@ -5734,7 +5866,7 @@ msgstr ""
"Veuillez utiliser 'git notes merge --commit' ou 'git notes merge --abort' "
"pour valider/abandonner la fusion en cours avant d'en démarrer une nouvelle."
-#: notes-merge.c:284
+#: notes-merge.c:283
#, c-format
msgid "You have not concluded your notes merge (%s exists)."
msgstr "Vous n'avez pas terminé votre fusion de notes (%s existe)."
@@ -5762,275 +5894,346 @@ msgstr "Refus de réécrire des notes dans %s (hors de refs/notes/)"
msgid "Bad %s value: '%s'"
msgstr "Mauvaise valeur de %s : '%s'"
-#: object-file.c:456
+#: object-file.c:457
#, c-format
msgid "object directory %s does not exist; check .git/objects/info/alternates"
msgstr ""
"le répertoire objet %s n'existe pas ; vérifiez .git/objects/info/alternates"
-#: object-file.c:514
+#: object-file.c:515
#, c-format
msgid "unable to normalize alternate object path: %s"
msgstr "impossible de normaliser le chemin d'objet alternatif : %s"
-#: object-file.c:588
+#: object-file.c:589
#, c-format
msgid "%s: ignoring alternate object stores, nesting too deep"
msgstr "%s : magasins d'objets alternatifs ignorés, récursion trop profonde"
-#: object-file.c:595
+#: object-file.c:596
#, c-format
msgid "unable to normalize object directory: %s"
msgstr "impossible de normaliser le répertoire d'objet : %s"
-#: object-file.c:638
+#: object-file.c:639
msgid "unable to fdopen alternates lockfile"
msgstr "impossible d'ouvrir (fdopen) le fichier verrou des alternatives"
-#: object-file.c:656
+#: object-file.c:657
msgid "unable to read alternates file"
msgstr "lecture du fichier d'alternatives impossible"
-#: object-file.c:663
+#: object-file.c:664
msgid "unable to move new alternates file into place"
msgstr "impossible de déplacer le nouveau fichier d'alternative"
-#: object-file.c:741
+#: object-file.c:742
#, c-format
msgid "path '%s' does not exist"
msgstr "le chemin '%s' n'existe pas"
-#: object-file.c:762
+#: object-file.c:763
#, c-format
msgid "reference repository '%s' as a linked checkout is not supported yet."
msgstr ""
"extraire le dépôt de référence '%s' comme une extraction liée n'est pas "
"encore supporté."
-#: object-file.c:768
+#: object-file.c:769
#, c-format
msgid "reference repository '%s' is not a local repository."
msgstr "le dépôt de référence '%s' n'est pas un dépôt local."
-#: object-file.c:774
+#: object-file.c:775
#, c-format
msgid "reference repository '%s' is shallow"
msgstr "le dépôt de référence '%s' est superficiel"
-#: object-file.c:782
+#: object-file.c:783
#, c-format
msgid "reference repository '%s' is grafted"
msgstr "le dépôt de référence '%s' est greffé"
-#: object-file.c:813
+#: object-file.c:814
#, c-format
msgid "could not find object directory matching %s"
msgstr "impossible de trouver le répertoire objet correspondant à %s"
-#: object-file.c:863
+#: object-file.c:864
#, c-format
msgid "invalid line while parsing alternate refs: %s"
msgstr "ligne invalide pendant l'analyse des refs alternatives : %s"
-#: object-file.c:1013
+#: object-file.c:1014
#, c-format
msgid "attempting to mmap %<PRIuMAX> over limit %<PRIuMAX>"
msgstr "essai de mmap %<PRIuMAX> au delà de la limite %<PRIuMAX>"
-#: object-file.c:1048
+#: object-file.c:1049
#, c-format
msgid "mmap failed%s"
msgstr "échec de mmap%s"
-#: object-file.c:1214
+#: object-file.c:1230
#, c-format
msgid "object file %s is empty"
msgstr "le fichier objet %s est vide"
-#: object-file.c:1333 object-file.c:2542
+#: object-file.c:1349 object-file.c:2588
#, c-format
msgid "corrupt loose object '%s'"
msgstr "objet libre corrompu '%s'"
-#: object-file.c:1335 object-file.c:2546
+#: object-file.c:1351 object-file.c:2592
#, c-format
msgid "garbage at end of loose object '%s'"
msgstr "données incorrectes à la fin de l'objet libre '%s'"
-#: object-file.c:1457
+#: object-file.c:1473
#, c-format
msgid "unable to parse %s header"
msgstr "impossible d'analyser l'entête %s"
-#: object-file.c:1459
+#: object-file.c:1475
msgid "invalid object type"
msgstr "type d'objet invalide"
-#: object-file.c:1470
+#: object-file.c:1486
#, c-format
msgid "unable to unpack %s header"
msgstr "impossible de dépaqueter l'entête %s"
-#: object-file.c:1474
+#: object-file.c:1490
#, c-format
msgid "header for %s too long, exceeds %d bytes"
msgstr "entête de %s trop long, attendu %d octets"
-#: object-file.c:1704
+#: object-file.c:1720
#, c-format
msgid "failed to read object %s"
msgstr "impossible de lire l'objet %s"
-#: object-file.c:1708
+#: object-file.c:1724
#, c-format
msgid "replacement %s not found for %s"
msgstr "remplacement %s non trouvé pour %s"
-#: object-file.c:1712
+#: object-file.c:1728
#, c-format
msgid "loose object %s (stored in %s) is corrupt"
msgstr "l'objet libre %s (stocké dans %s) est corrompu"
-#: object-file.c:1716
+#: object-file.c:1732
#, c-format
msgid "packed object %s (stored in %s) is corrupt"
msgstr "l'objet empaqueté %s (stocké dans %s) est corrompu"
-#: object-file.c:1821
+#: object-file.c:1855
#, c-format
msgid "unable to write file %s"
msgstr "impossible d'écrire le fichier %s"
-#: object-file.c:1828
+#: object-file.c:1862
#, c-format
msgid "unable to set permission to '%s'"
msgstr "impossible de régler les droits de '%s'"
-#: object-file.c:1835
+#: object-file.c:1869
msgid "file write error"
msgstr "erreur d'écriture d'un fichier"
-#: object-file.c:1858
+#: object-file.c:1904
msgid "error when closing loose object file"
msgstr "erreur en fermeture du fichier d'objet esseulé"
-#: object-file.c:1925
+#: object-file.c:1971
#, c-format
msgid "insufficient permission for adding an object to repository database %s"
msgstr ""
"droits insuffisants pour ajouter un objet à la base de données %s du dépôt"
-#: object-file.c:1927
+#: object-file.c:1973
msgid "unable to create temporary file"
msgstr "impossible de créer un fichier temporaire"
-#: object-file.c:1951
+#: object-file.c:1997
msgid "unable to write loose object file"
msgstr "impossible d'écrire le fichier d'objet esseulé"
-#: object-file.c:1957
+#: object-file.c:2003
#, c-format
msgid "unable to deflate new object %s (%d)"
msgstr "impossible de compresser le nouvel objet %s (%d)"
-#: object-file.c:1961
+#: object-file.c:2007
#, c-format
msgid "deflateEnd on object %s failed (%d)"
msgstr "échec de deflateEnd sur l'objet %s (%d)"
-#: object-file.c:1965
+#: object-file.c:2011
#, c-format
msgid "confused by unstable object source data for %s"
msgstr "données de source d'objet instable pour %s"
-#: object-file.c:1976 builtin/pack-objects.c:1243
+#: object-file.c:2022 builtin/pack-objects.c:1251
#, c-format
msgid "failed utime() on %s"
msgstr "échec de utime() sur %s"
-#: object-file.c:2054
+#: object-file.c:2100
#, c-format
msgid "cannot read object for %s"
msgstr "impossible de lire l'objet pour %s"
-#: object-file.c:2105
+#: object-file.c:2151
msgid "corrupt commit"
msgstr "commit corrompu"
-#: object-file.c:2113
+#: object-file.c:2159
msgid "corrupt tag"
msgstr "étiquette corrompue"
-#: object-file.c:2213
+#: object-file.c:2259
#, c-format
msgid "read error while indexing %s"
msgstr "erreur de lecture à l'indexation de %s"
-#: object-file.c:2216
+#: object-file.c:2262
#, c-format
msgid "short read while indexing %s"
msgstr "lecture tronquée pendant l'indexation de %s"
-#: object-file.c:2289 object-file.c:2299
+#: object-file.c:2335 object-file.c:2345
#, c-format
msgid "%s: failed to insert into database"
msgstr "%s : échec de l'insertion dans la base de données"
-#: object-file.c:2305
+#: object-file.c:2351
#, c-format
msgid "%s: unsupported file type"
msgstr "%s : type de fichier non supporté"
-#: object-file.c:2329 builtin/fetch.c:1453
+#: object-file.c:2375 builtin/fetch.c:1494
#, c-format
msgid "%s is not a valid object"
msgstr "%s n'est pas un objet valide"
-#: object-file.c:2331
+#: object-file.c:2377
#, c-format
msgid "%s is not a valid '%s' object"
msgstr "%s n'est pas un objet '%s' valide"
-#: object-file.c:2358
+#: object-file.c:2404
#, c-format
msgid "unable to open %s"
msgstr "impossible d'ouvrir %s"
-#: object-file.c:2553
+#: object-file.c:2599
#, c-format
msgid "hash mismatch for %s (expected %s)"
msgstr "incohérence de hachage pour %s (%s attendu)"
-#: object-file.c:2576
+#: object-file.c:2622
#, c-format
msgid "unable to mmap %s"
msgstr "impossible de mmap %s"
-#: object-file.c:2582
+#: object-file.c:2628
#, c-format
msgid "unable to unpack header of %s"
msgstr "impossible de dépaqueter l'entête de %s"
-#: object-file.c:2587
+#: object-file.c:2633
#, c-format
msgid "unable to parse header of %s"
msgstr "impossible d'analyser l'entête de %s"
-#: object-file.c:2598
+#: object-file.c:2644
#, c-format
msgid "unable to unpack contents of %s"
msgstr "impossible de dépaqueter le contenu de %s"
-#: object-name.c:480
+#. TRANSLATORS: This is a line of ambiguous object
+#. output shown when we cannot look up or parse the
+#. object in question. E.g. "deadbeef [bad object]".
+#.
+#: object-name.c:382
+#, c-format
+msgid "%s [bad object]"
+msgstr "%s [mauvais objet]"
+
+#. TRANSLATORS: This is a line of ambiguous commit
+#. object output. E.g.:
+#. *
+#. "deadbeef commit 2021-01-01 - Some Commit Message"
+#.
+#: object-name.c:407
+#, c-format
+msgid "%s commit %s - %s"
+msgstr "%s commit %s - %s"
+
+#. TRANSLATORS: This is a line of ambiguous
+#. tag object output. E.g.:
+#. *
+#. "deadbeef tag 2022-01-01 - Some Tag Message"
+#. *
+#. The second argument is the YYYY-MM-DD found
+#. in the tag.
+#. *
+#. The third argument is the "tag" string
+#. from object.c.
+#.
+#: object-name.c:428
+#, c-format
+msgid "%s tag %s - %s"
+msgstr "%s étiquette %s - %s"
+
+#. TRANSLATORS: This is a line of ambiguous
+#. tag object output where we couldn't parse
+#. the tag itself. E.g.:
+#. *
+#. "deadbeef [bad tag, could not parse it]"
+#.
+#: object-name.c:439
+#, c-format
+msgid "%s [bad tag, could not parse it]"
+msgstr "%s [mauvaise étiquette, impossible à analyser]"
+
+#. TRANSLATORS: This is a line of ambiguous <type>
+#. object output. E.g. "deadbeef tree".
+#.
+#: object-name.c:447
+#, c-format
+msgid "%s tree"
+msgstr "arbre %s"
+
+#. TRANSLATORS: This is a line of ambiguous <type>
+#. object output. E.g. "deadbeef blob".
+#.
+#: object-name.c:453
+#, c-format
+msgid "%s blob"
+msgstr "blob %s"
+
+#: object-name.c:569
#, c-format
msgid "short object ID %s is ambiguous"
msgstr "l'id court d'objet %s est ambigu"
-#: object-name.c:491
-msgid "The candidates are:"
-msgstr "Les candidats sont :"
+#. TRANSLATORS: The argument is the list of ambiguous
+#. objects composed in show_ambiguous_object(). See
+#. its "TRANSLATORS" comments for details.
+#.
+#: object-name.c:591
+#, c-format
+msgid ""
+"The candidates are:\n"
+"%s"
+msgstr ""
+"Les candidats sont :\n"
+"%s"
-#: object-name.c:790
+#: object-name.c:888
msgid ""
"Git normally never creates a ref that ends with 40 hex characters\n"
"because it will be ignored when you just specify 40-hex. These refs\n"
@@ -6054,22 +6257,22 @@ msgstr ""
"message\n"
"en lançant \"git config advice.objectNameWarning false\""
-#: object-name.c:910
+#: object-name.c:1008
#, c-format
msgid "log for '%.*s' only goes back to %s"
msgstr "le journal de '%.*s' ne remonte qu'à %s"
-#: object-name.c:918
+#: object-name.c:1016
#, c-format
msgid "log for '%.*s' only has %d entries"
msgstr "le journal de '%.*s' n'a que %d entrées"
-#: object-name.c:1696
+#: object-name.c:1794
#, c-format
msgid "path '%s' exists on disk, but not in '%.*s'"
msgstr "le chemin '%s' existe sur le disque, mais pas dans '%.*s'"
-#: object-name.c:1702
+#: object-name.c:1800
#, c-format
msgid ""
"path '%s' exists, but not '%s'\n"
@@ -6078,12 +6281,12 @@ msgstr ""
"le chemin '%s' existe, mais pas '%s'\n"
"conseil : peut-être vouliez-vous dire '%.*s:%s', soit '%.*s:./%s' ?"
-#: object-name.c:1711
+#: object-name.c:1809
#, c-format
msgid "path '%s' does not exist in '%.*s'"
msgstr "le chemin '%s' n'existe pas dans '%.*s'"
-#: object-name.c:1739
+#: object-name.c:1837
#, c-format
msgid ""
"path '%s' is in the index, but not at stage %d\n"
@@ -6092,7 +6295,7 @@ msgstr ""
"le chemin '%s' est dans l'index, mais pas à l'étape %d\n"
"conseil : vous vouliez peut-être dire ':%d:%s' ?"
-#: object-name.c:1755
+#: object-name.c:1853
#, c-format
msgid ""
"path '%s' is in the index, but not '%s'\n"
@@ -6101,23 +6304,28 @@ msgstr ""
"le chemin '%s' est dans l'index, mais pas '%s'\n"
"conseil : peut-être vouliez-vous dire ':%d:%s', soit '%d:./%s' ?"
-#: object-name.c:1763
+#: object-name.c:1861
#, c-format
msgid "path '%s' exists on disk, but not in the index"
msgstr "le chemin '%s' existe sur le disque, mais pas dans l'index"
-#: object-name.c:1765
+#: object-name.c:1863
#, c-format
msgid "path '%s' does not exist (neither on disk nor in the index)"
msgstr "le chemin '%s' n'existe pas (ni sur le disque, ni dans l'index)"
-#: object-name.c:1778
+#: object-name.c:1876
msgid "relative path syntax can't be used outside working tree"
msgstr ""
"la syntaxe de chemin relatif ne peut pas être utilisée hors de l'arbre de "
"travail"
-#: object-name.c:1916
+#: object-name.c:1901
+#, c-format
+msgid "<object>:<path> required, only <object> '%s' given"
+msgstr "<objet>:<chemin> nécessaire, seul <objet> '%s' a été fourni"
+
+#: object-name.c:2014
#, c-format
msgid "invalid object name '%.*s'."
msgstr "nom d'objet invalide : '%.*s'."
@@ -6142,7 +6350,7 @@ msgstr "l'objet %s a un id de type inconnu %d"
msgid "unable to parse object: %s"
msgstr "impossible d'analyser l'objet : %s"
-#: object.c:283 object.c:295
+#: object.c:283 object.c:294
#, c-format
msgid "hash mismatch %s"
msgstr "incohérence de hachage %s"
@@ -6151,21 +6359,21 @@ msgstr "incohérence de hachage %s"
msgid "multi-pack bitmap is missing required reverse index"
msgstr "l'index inverse requis manque dans l'index multi-paquet"
-#: pack-bitmap.c:429
+#: pack-bitmap.c:433
msgid "load_reverse_index: could not open pack"
msgstr "load_reverse_index : impossible d'ouvrir le paquet"
-#: pack-bitmap.c:1069 pack-bitmap.c:1075 builtin/pack-objects.c:2424
+#: pack-bitmap.c:1072 pack-bitmap.c:1078 builtin/pack-objects.c:2432
#, c-format
msgid "unable to get size of %s"
msgstr "impossible de récupérer la taille de %s"
-#: pack-bitmap.c:1935
+#: pack-bitmap.c:1937
#, c-format
msgid "could not find %s in pack %s at offset %<PRIuMAX>"
msgstr "impossible de trouver %s dans le paquet %s à l'offset %<PRIuMAX>"
-#: pack-bitmap.c:1971 builtin/rev-list.c:92
+#: pack-bitmap.c:1973 builtin/rev-list.c:91
#, c-format
msgid "unable to get disk usage of %s"
msgstr "impossible de récupérer l'utilisation du disque de %s"
@@ -6209,7 +6417,7 @@ msgstr "stat impossible de %s"
msgid "failed to make %s readable"
msgstr "échec de rendre %s lisible"
-#: pack-write.c:520
+#: pack-write.c:521
#, c-format
msgid "could not write '%s' promisor file"
msgstr "impossible d'écrire le fichier de prometteur '%s'"
@@ -6558,20 +6766,20 @@ msgstr "object-info : vidage attendu après les arguments"
msgid "Removing duplicate objects"
msgstr "Suppression des objets dupliqués"
-#: range-diff.c:67
+#: range-diff.c:68
msgid "could not start `log`"
msgstr "impossible de démarrer `log`"
-#: range-diff.c:69
+#: range-diff.c:70
msgid "could not read `log` output"
msgstr "impossible de lire la sortie de `log`"
-#: range-diff.c:97 sequencer.c:5602
+#: range-diff.c:98 sequencer.c:5575
#, c-format
msgid "could not parse commit '%s'"
msgstr "impossible d'analyser le commit '%s'"
-#: range-diff.c:111
+#: range-diff.c:109
#, c-format
msgid ""
"could not parse first line of `log` output: did not start with 'commit ': "
@@ -6580,66 +6788,66 @@ msgstr ""
"impossible d'analyser la première ligne de la sortie de `log` : ne commence "
"pas par 'commit' : '%s'"
-#: range-diff.c:137
+#: range-diff.c:132
#, c-format
msgid "could not parse git header '%.*s'"
msgstr "impossible d'analyser l'entête git '%.*s'"
-#: range-diff.c:304
+#: range-diff.c:300
msgid "failed to generate diff"
msgstr "échec de la génération de diff"
-#: range-diff.c:562 range-diff.c:564
+#: range-diff.c:558 range-diff.c:560
#, c-format
msgid "could not parse log for '%s'"
msgstr "impossible d'analyser le journal pour '%s'"
-#: read-cache.c:723
+#: read-cache.c:737
#, c-format
msgid "will not add file alias '%s' ('%s' already exists in index)"
msgstr "pas d'ajout d'alias de fichier '%s'(« %s » existe déjà dans l'index)"
-#: read-cache.c:739
+#: read-cache.c:753
msgid "cannot create an empty blob in the object database"
msgstr "impossible de créer un blob vide dans la base de donnée d'objets"
-#: read-cache.c:761
+#: read-cache.c:775
#, c-format
msgid "%s: can only add regular files, symbolic links or git-directories"
msgstr ""
"%s : ne peut ajouter que des fichiers normaux, des liens symboliques ou des "
"répertoires git"
-#: read-cache.c:766 builtin/submodule--helper.c:3242
+#: read-cache.c:780 builtin/submodule--helper.c:3359
#, c-format
msgid "'%s' does not have a commit checked out"
msgstr "'%s' n'a pas de commit extrait"
-#: read-cache.c:818
+#: read-cache.c:832
#, c-format
msgid "unable to index file '%s'"
msgstr "indexation du fichier '%s' impossible"
-#: read-cache.c:837
+#: read-cache.c:851
#, c-format
msgid "unable to add '%s' to index"
msgstr "impossible d'ajouter '%s' à l'index"
-#: read-cache.c:848
+#: read-cache.c:862
#, c-format
msgid "unable to stat '%s'"
msgstr "fstat de '%s' impossible"
-#: read-cache.c:1386
+#: read-cache.c:1404
#, c-format
msgid "'%s' appears as both a file and as a directory"
msgstr "'%s' existe à la fois comme un fichier et un répertoire"
-#: read-cache.c:1601
+#: read-cache.c:1619
msgid "Refresh index"
msgstr "Rafraîchir l'index"
-#: read-cache.c:1733
+#: read-cache.c:1751
#, c-format
msgid ""
"index.version set, but the value is invalid.\n"
@@ -6648,7 +6856,7 @@ msgstr ""
"index.version renseignée, mais la valeur est invalide.\n"
"Utilisation de la version %i"
-#: read-cache.c:1743
+#: read-cache.c:1761
#, c-format
msgid ""
"GIT_INDEX_VERSION set, but the value is invalid.\n"
@@ -6657,143 +6865,147 @@ msgstr ""
"GIT_INDEX_VERSION est renseigné, mais la valeur est invalide.\n"
"Utilisation de la version %i"
-#: read-cache.c:1799
+#: read-cache.c:1817
#, c-format
msgid "bad signature 0x%08x"
msgstr "signature incorrecte 0x%08x"
-#: read-cache.c:1802
+#: read-cache.c:1820
#, c-format
msgid "bad index version %d"
msgstr "mauvaise version d'index %d"
-#: read-cache.c:1811
+#: read-cache.c:1829
msgid "bad index file sha1 signature"
msgstr "mauvaise signature sha1 d'index"
-#: read-cache.c:1845
+#: read-cache.c:1863
#, c-format
msgid "index uses %.4s extension, which we do not understand"
msgstr "l'index utilise l'extension %.4s qui n'est pas comprise"
-#: read-cache.c:1847
+#: read-cache.c:1865
#, c-format
msgid "ignoring %.4s extension"
msgstr "extension %.4s ignorée"
-#: read-cache.c:1884
+#: read-cache.c:1902
#, c-format
msgid "unknown index entry format 0x%08x"
msgstr "format d'entrée d'index inconnu 0x%08x"
-#: read-cache.c:1900
+#: read-cache.c:1918
#, c-format
msgid "malformed name field in the index, near path '%s'"
msgstr "champ de nom malformé dans l'index, près du chemin '%s'"
-#: read-cache.c:1957
+#: read-cache.c:1975
msgid "unordered stage entries in index"
msgstr "entrées de préparation non ordonnées dans l'index"
-#: read-cache.c:1960
+#: read-cache.c:1978
#, c-format
msgid "multiple stage entries for merged file '%s'"
msgstr "entrées multiples de préparation pour le fichier fusionné '%s'"
-#: read-cache.c:1963
+#: read-cache.c:1981
#, c-format
msgid "unordered stage entries for '%s'"
msgstr "entrées de préparation non ordonnées pour '%s'"
-#: read-cache.c:2078 read-cache.c:2384 rerere.c:549 rerere.c:583 rerere.c:1095
-#: submodule.c:1662 builtin/add.c:600 builtin/check-ignore.c:183
-#: builtin/checkout.c:527 builtin/checkout.c:719 builtin/clean.c:1013
-#: builtin/commit.c:378 builtin/diff-tree.c:122 builtin/grep.c:519
-#: builtin/mv.c:148 builtin/reset.c:499 builtin/rm.c:293
-#: builtin/submodule--helper.c:327 builtin/submodule--helper.c:3202
+#: read-cache.c:2096 read-cache.c:2402 rerere.c:549 rerere.c:583 rerere.c:1096
+#: submodule.c:1831 builtin/add.c:586 builtin/check-ignore.c:183
+#: builtin/checkout.c:532 builtin/checkout.c:724 builtin/clean.c:1016
+#: builtin/commit.c:379 builtin/diff-tree.c:122 builtin/grep.c:521
+#: builtin/mv.c:148 builtin/reset.c:506 builtin/rm.c:293
+#: builtin/submodule--helper.c:335 builtin/submodule--helper.c:3319
msgid "index file corrupt"
msgstr "fichier d'index corrompu"
-#: read-cache.c:2222
+#: read-cache.c:2240
#, c-format
msgid "unable to create load_cache_entries thread: %s"
msgstr "impossible de créer le fil load_cache_entries : %s"
-#: read-cache.c:2235
+#: read-cache.c:2253
#, c-format
msgid "unable to join load_cache_entries thread: %s"
msgstr "impossible de joindre le fil load_cache_entries : %s"
-#: read-cache.c:2268
+#: read-cache.c:2286
#, c-format
msgid "%s: index file open failed"
msgstr "%s : l'ouverture du fichier d'index a échoué"
-#: read-cache.c:2272
+#: read-cache.c:2290
#, c-format
msgid "%s: cannot stat the open index"
msgstr "%s : impossible de faire un stat sur l'index ouvert"
-#: read-cache.c:2276
+#: read-cache.c:2294
#, c-format
msgid "%s: index file smaller than expected"
msgstr "%s : fichier d'index plus petit qu'attendu"
-#: read-cache.c:2280
+#: read-cache.c:2298
#, c-format
msgid "%s: unable to map index file%s"
msgstr "%s : impossible de mapper le fichier d'index%s"
-#: read-cache.c:2323
+#: read-cache.c:2341
#, c-format
msgid "unable to create load_index_extensions thread: %s"
msgstr "impossible de créer le fil load_index_extensions : %s"
-#: read-cache.c:2350
+#: read-cache.c:2368
#, c-format
msgid "unable to join load_index_extensions thread: %s"
msgstr "impossible de joindre le fil load_index_extensions : %s"
-#: read-cache.c:2396
+#: read-cache.c:2414
#, c-format
msgid "could not freshen shared index '%s'"
msgstr "impossible de rafraîchir l'index partagé '%s'"
-#: read-cache.c:2455
+#: read-cache.c:2473
#, c-format
msgid "broken index, expect %s in %s, got %s"
msgstr "index cassé, %s attendu dans %s, %s obtenu"
-#: read-cache.c:3086 strbuf.c:1191 wrapper.c:641 builtin/merge.c:1150
+#: read-cache.c:3032
+msgid "cannot write split index for a sparse index"
+msgstr "impossible d'écrire un index scindé pour un index clairsemé"
+
+#: read-cache.c:3114 strbuf.c:1192 wrapper.c:717 builtin/merge.c:1156
#, c-format
msgid "could not close '%s'"
msgstr "impossible de fermer '%s'"
-#: read-cache.c:3129
+#: read-cache.c:3157
msgid "failed to convert to a sparse-index"
msgstr "échec de conversion d'un index clairsemé"
-#: read-cache.c:3200
+#: read-cache.c:3228
#, c-format
msgid "could not stat '%s'"
msgstr "impossible de stat '%s'"
-#: read-cache.c:3213
+#: read-cache.c:3241
#, c-format
msgid "unable to open git dir: %s"
msgstr "impossible d'ouvrir le répertoire git : %s"
-#: read-cache.c:3225
+#: read-cache.c:3253
#, c-format
msgid "unable to unlink: %s"
msgstr "échec lors de l'unlink : %s"
-#: read-cache.c:3254
+#: read-cache.c:3282
#, c-format
msgid "cannot fix permission bits on '%s'"
msgstr "impossible de régler les bits de droit de '%s'"
-#: read-cache.c:3411
+#: read-cache.c:3439
#, c-format
msgid "%s: cannot drop to stage #0"
msgstr "%s : impossible de revenir à l'étape 0"
@@ -6915,9 +7127,9 @@ msgstr ""
"Cependant, si vous effacez tout, le rebasage sera annulé.\n"
"\n"
-#: rebase-interactive.c:113 rerere.c:469 rerere.c:676 sequencer.c:3883
-#: sequencer.c:3909 sequencer.c:5708 builtin/fsck.c:328 builtin/gc.c:1791
-#: builtin/rebase.c:190
+#: rebase-interactive.c:113 rerere.c:469 rerere.c:677 sequencer.c:3879
+#: sequencer.c:3905 sequencer.c:5681 builtin/fsck.c:328 builtin/gc.c:1791
+#: builtin/rebase.c:191
#, c-format
msgid "could not write '%s'"
msgstr "impossible d'écrire '%s'"
@@ -6960,7 +7172,7 @@ msgid "%s: 'preserve' superseded by 'merges'"
msgstr "%s : 'preserve' a été remplacé par 'merges'"
# à priori on parle d'une branche ici
-#: ref-filter.c:42 wt-status.c:2048
+#: ref-filter.c:42 wt-status.c:2057
msgid "gone"
msgstr "disparue"
@@ -7127,81 +7339,91 @@ msgstr "cette commande rejette l'atome %%(%.*s)"
msgid "--format=%.*s cannot be used with --python, --shell, --tcl"
msgstr "--format=%.*s ne peut pas être utilisé avec --python, --shell, --tcl"
-#: ref-filter.c:1706
+#: ref-filter.c:1707
#, c-format
msgid "(no branch, rebasing %s)"
msgstr "(aucune branche, rebasage de %s)"
-#: ref-filter.c:1709
+#: ref-filter.c:1710
#, c-format
msgid "(no branch, rebasing detached HEAD %s)"
msgstr "(aucune branche, rebasage de la HEAD détachée %s)"
-#: ref-filter.c:1712
+#: ref-filter.c:1713
#, c-format
msgid "(no branch, bisect started on %s)"
msgstr "(aucune branche, bisect a démarré sur %s)"
-#: ref-filter.c:1716
+#: ref-filter.c:1717
#, c-format
msgid "(HEAD detached at %s)"
msgstr "(HEAD détachée sur %s)"
-#: ref-filter.c:1719
+#: ref-filter.c:1720
#, c-format
msgid "(HEAD detached from %s)"
msgstr "(HEAD détachée depuis %s)"
-#: ref-filter.c:1722
+#: ref-filter.c:1723
msgid "(no branch)"
msgstr "(aucune branche)"
-#: ref-filter.c:1754 ref-filter.c:1972
+#: ref-filter.c:1755 ref-filter.c:1973
#, c-format
msgid "missing object %s for %s"
msgstr "objet manquant %s pour %s"
-#: ref-filter.c:1764
+#: ref-filter.c:1765
#, c-format
msgid "parse_object_buffer failed on %s for %s"
msgstr "échec de parse_object_buffer sur %s pour %s"
-#: ref-filter.c:2155
+#: ref-filter.c:2156
#, c-format
msgid "malformed object at '%s'"
msgstr "objet malformé à '%s'"
-#: ref-filter.c:2245
+#: ref-filter.c:2246
#, c-format
msgid "ignoring ref with broken name %s"
msgstr "réf avec un nom cassé %s ignoré"
-#: ref-filter.c:2250 refs.c:676
+#: ref-filter.c:2251 refs.c:672
#, c-format
msgid "ignoring broken ref %s"
msgstr "réf cassé %s ignoré"
-#: ref-filter.c:2629
+#: ref-filter.c:2630
#, c-format
msgid "format: %%(end) atom missing"
msgstr "format: atome %%(end) manquant"
-#: ref-filter.c:2740
+#: ref-filter.c:2741
#, c-format
msgid "malformed object name %s"
msgstr "nom d'objet malformé %s"
-#: ref-filter.c:2745
+#: ref-filter.c:2746
#, c-format
msgid "option `%s' must point to a commit"
msgstr "l'option '%s' doit pointer sur un commit"
-#: refs.c:261
+#: reflog.c:407
+#, c-format
+msgid "not a reflog: %s"
+msgstr "'%s' n'est pas un journal de références"
+
+#: reflog.c:410
+#, c-format
+msgid "no reflog for '%s'"
+msgstr "pas de journal de références pour '%s'"
+
+#: refs.c:262
#, c-format
msgid "%s does not point to a valid object!"
msgstr "%s ne pointe pas sur un objet valide!"
-#: refs.c:563
+#: refs.c:561
#, c-format
msgid ""
"Using '%s' as the name for the initial branch. This default branch name\n"
@@ -7226,81 +7448,81 @@ msgstr ""
"\n"
"\tgit branch -m <nom>\n"
-#: refs.c:585
+#: refs.c:583
#, c-format
msgid "could not retrieve `%s`"
msgstr "impossible de récupérer `%s`"
-#: refs.c:595
+#: refs.c:593
#, c-format
msgid "invalid branch name: %s = %s"
msgstr "nom de branche invalide : %s = %s"
-#: refs.c:674
+#: refs.c:670
#, c-format
msgid "ignoring dangling symref %s"
msgstr "symref pendant %s ignoré"
-#: refs.c:925
+#: refs.c:919
#, 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:932
+#: refs.c:926
#, 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:997
+#: refs.c:991
#, c-format
msgid "log for %s is empty"
msgstr "le journal pour la réf %s est vide"
-#: refs.c:1090
+#: refs.c:1086
#, 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:1168
+#: refs.c:1164
#, c-format
msgid "update_ref failed for ref '%s': %s"
msgstr "échec de update_ref pour la réf '%s' : %s"
-#: refs.c:2067
+#: refs.c:2059
#, c-format
msgid "multiple updates for ref '%s' not allowed"
msgstr "mises à jour multiples pour la réf '%s' non permises"
-#: refs.c:2150
+#: refs.c:2145
msgid "ref updates forbidden inside quarantine environment"
msgstr "mises à jour des références interdites en environnement de quarantaine"
-#: refs.c:2161
+#: refs.c:2156
msgid "ref updates aborted by hook"
msgstr "mises à jour des références annulées par le crochet"
-#: refs.c:2269 refs.c:2299
+#: refs.c:2264 refs.c:2294
#, c-format
msgid "'%s' exists; cannot create '%s'"
msgstr "'%s' existe ; impossible de créer '%s'"
-#: refs.c:2275 refs.c:2310
+#: refs.c:2270 refs.c:2305
#, c-format
msgid "cannot process '%s' and '%s' at the same time"
msgstr "impossible de traiter '%s' et '%s' en même temps"
-#: refs/files-backend.c:1267
+#: refs/files-backend.c:1295
#, c-format
msgid "could not remove reference %s"
msgstr "impossible de supprimer la référence %s"
-#: refs/files-backend.c:1281 refs/packed-backend.c:1549
-#: refs/packed-backend.c:1559
+#: refs/files-backend.c:1310 refs/packed-backend.c:1565
+#: refs/packed-backend.c:1575
#, c-format
msgid "could not delete reference %s: %s"
msgstr "impossible de supprimer la référence %s : %s"
-#: refs/files-backend.c:1284 refs/packed-backend.c:1562
+#: refs/files-backend.c:1313 refs/packed-backend.c:1578
#, c-format
msgid "could not delete references: %s"
msgstr "impossible de supprimer les références : %s"
@@ -7324,38 +7546,38 @@ msgstr "plus d'un receivepack fournis, utilisation du premier"
msgid "more than one uploadpack given, using the first"
msgstr "plus d'un uploadpack fournis, utilisation du premier"
-#: remote.c:699
+#: remote.c:698
#, c-format
msgid "Cannot fetch both %s and %s to %s"
msgstr "Impossible de récupérer à la fois %s et %s pour %s"
-#: remote.c:703
+#: remote.c:702
#, c-format
msgid "%s usually tracks %s, not %s"
msgstr "%s suit habituellement %s, pas %s"
-#: remote.c:707
+#: remote.c:706
#, c-format
msgid "%s tracks both %s and %s"
msgstr "%s suit à la fois %s et %s"
-#: remote.c:775
+#: remote.c:774
#, c-format
msgid "key '%s' of pattern had no '*'"
msgstr "la clé '%s' du modèle n'a pas de '*'"
-#: remote.c:785
+#: remote.c:784
#, c-format
msgid "value '%s' of pattern has no '*'"
msgstr "la valeur '%s' du modèle n'a pas de '*'"
-#: remote.c:1192
+#: remote.c:1191
#, c-format
msgid "src refspec %s does not match any"
msgstr ""
"le spécificateur de référence source %s ne correspond à aucune référence"
-#: remote.c:1197
+#: remote.c:1196
#, c-format
msgid "src refspec %s matches more than one"
msgstr ""
@@ -7365,7 +7587,7 @@ msgstr ""
#. <remote> <src>:<dst>" push, and "being pushed ('%s')" is
#. the <src>.
#.
-#: remote.c:1212
+#: remote.c:1211
#, c-format
msgid ""
"The destination you provided is not a full refname (i.e.,\n"
@@ -7389,7 +7611,7 @@ msgstr ""
"Aucune n'a fonctionné, donc abandon. Veuillez spécifier une référence "
"totalement qualifiée."
-#: remote.c:1232
+#: remote.c:1231
#, c-format
msgid ""
"The <src> part of the refspec is a commit object.\n"
@@ -7400,7 +7622,7 @@ msgstr ""
"Souhaitiez-vous créer une nouvelle branche en poussant sur\n"
"'%s:refs/heads/%s' ?"
-#: remote.c:1237
+#: remote.c:1236
#, c-format
msgid ""
"The <src> part of the refspec is a tag object.\n"
@@ -7411,7 +7633,7 @@ msgstr ""
"Souhaitiez-vous créer une nouvelle étiquette en poussant sur\n"
"'%s:refs/tags/%s' ?"
-#: remote.c:1242
+#: remote.c:1241
#, c-format
msgid ""
"The <src> part of the refspec is a tree object.\n"
@@ -7422,7 +7644,7 @@ msgstr ""
"Souhaitiez-vous créer un nouvel arbre en poussant sur\n"
"'%s:refs/tags/%s' ?"
-#: remote.c:1247
+#: remote.c:1246
#, c-format
msgid ""
"The <src> part of the refspec is a blob object.\n"
@@ -7433,119 +7655,119 @@ msgstr ""
"Souhaitiez-vous créer un nouveau blob en poussant sur\n"
"'%s:refs/tags/%s' ?"
-#: remote.c:1283
+#: remote.c:1282
#, c-format
msgid "%s cannot be resolved to branch"
msgstr "'%s' ne peut pas être résolue comme une branche"
-#: remote.c:1294
+#: remote.c:1293
#, c-format
msgid "unable to delete '%s': remote ref does not exist"
msgstr "suppression de '%s' impossible : la référence distante n'existe pas"
-#: remote.c:1306
+#: remote.c:1305
#, c-format
msgid "dst refspec %s matches more than one"
msgstr ""
"le spécificateur de référence dst %s correspond à plus d'un spécificateur de "
"références"
-#: remote.c:1313
+#: remote.c:1312
#, c-format
msgid "dst ref %s receives from more than one src"
msgstr "le spécificateur de référence dst %s reçoit depuis plus d'une source"
-#: remote.c:1834 remote.c:1941
+#: remote.c:1833 remote.c:1940
msgid "HEAD does not point to a branch"
msgstr "HEAD ne pointe pas sur une branche"
-#: remote.c:1843
+#: remote.c:1842
#, c-format
msgid "no such branch: '%s'"
msgstr "pas de branche '%s'"
-#: remote.c:1846
+#: remote.c:1845
#, c-format
msgid "no upstream configured for branch '%s'"
msgstr "aucune branche amont configurée pour la branche '%s'"
-#: remote.c:1852
+#: remote.c:1851
#, c-format
msgid "upstream branch '%s' not stored as a remote-tracking branch"
msgstr "la branche amont '%s' n'est pas stockée comme branche de suivi"
-#: remote.c:1867
+#: remote.c:1866
#, c-format
msgid "push destination '%s' on remote '%s' has no local tracking branch"
msgstr ""
"la destination de poussée '%s' sur le serveur distant '%s' n'a pas de "
"branche locale de suivi"
-#: remote.c:1882
+#: remote.c:1881
#, c-format
msgid "branch '%s' has no remote for pushing"
msgstr "la branche '%s' n'a aucune branche distante de poussée"
-#: remote.c:1892
+#: remote.c:1891
#, c-format
msgid "push refspecs for '%s' do not include '%s'"
msgstr "les références de spec pour '%s' n'incluent pas '%s'"
-#: remote.c:1905
+#: remote.c:1904
msgid "push has no destination (push.default is 'nothing')"
msgstr "la poussée n'a pas de destination (push.default vaut 'nothing')"
-#: remote.c:1927
+#: remote.c:1926
msgid "cannot resolve 'simple' push to a single destination"
msgstr ""
"impossible de résoudre une poussée 'simple' pour une destination unique"
-#: remote.c:2060
+#: remote.c:2059
#, c-format
msgid "couldn't find remote ref %s"
msgstr "impossible de trouver la référence distante %s"
-#: remote.c:2073
+#: remote.c:2072
#, c-format
msgid "* Ignoring funny ref '%s' locally"
msgstr "* Référence bizarre '%s' ignorée localement"
-#: remote.c:2236
+#: remote.c:2235
#, c-format
msgid "Your branch is based on '%s', but the upstream is gone.\n"
msgstr "Votre branche est basée sur '%s', mais la branche amont a disparu.\n"
-#: remote.c:2240
+#: remote.c:2239
msgid " (use \"git branch --unset-upstream\" to fixup)\n"
msgstr " (utilisez \"git branch --unset-upstream\" pour corriger)\n"
-#: remote.c:2243
+#: remote.c:2242
#, c-format
msgid "Your branch is up to date with '%s'.\n"
msgstr "Votre branche est à jour avec '%s'.\n"
-#: remote.c:2247
+#: remote.c:2246
#, c-format
msgid "Your branch and '%s' refer to different commits.\n"
msgstr "Votre branche et '%s' font référence à des commits différents.\n"
-#: remote.c:2250
+#: remote.c:2249
#, c-format
msgid " (use \"%s\" for details)\n"
msgstr " (utilisez \"%s\" pour plus de détails)\n"
-#: remote.c:2254
+#: remote.c:2253
#, c-format
msgid "Your branch is ahead of '%s' by %d commit.\n"
msgid_plural "Your branch is ahead of '%s' by %d commits.\n"
msgstr[0] "Votre branche est en avance sur '%s' de %d commit.\n"
msgstr[1] "Votre branche est en avance sur '%s' de %d commits.\n"
-#: remote.c:2260
+#: remote.c:2259
msgid " (use \"git push\" to publish your local commits)\n"
msgstr " (utilisez \"git push\" pour publier vos commits locaux)\n"
-#: remote.c:2263
+#: remote.c:2262
#, c-format
msgid "Your branch is behind '%s' by %d commit, and can be fast-forwarded.\n"
msgid_plural ""
@@ -7557,11 +7779,11 @@ msgstr[1] ""
"Votre branche est en retard sur '%s' de %d commits, et peut être mise à jour "
"en avance rapide.\n"
-#: remote.c:2271
+#: remote.c:2270
msgid " (use \"git pull\" to update your local branch)\n"
msgstr " (utilisez \"git pull\" pour mettre à jour votre branche locale)\n"
-#: remote.c:2274
+#: remote.c:2273
#, c-format
msgid ""
"Your branch and '%s' have diverged,\n"
@@ -7576,12 +7798,12 @@ msgstr[1] ""
"Votre branche et '%s' ont divergé,\n"
"et ont %d et %d commits différents chacune respectivement.\n"
-#: remote.c:2284
+#: remote.c:2283
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:2476
+#: remote.c:2475
#, c-format
msgid "cannot parse expected object name '%s'"
msgstr "impossible d'analyser le nom attendu d'objet '%s'"
@@ -7619,104 +7841,108 @@ msgstr "il y a eu des erreurs à l'écriture de '%s' (%s)"
msgid "failed to flush '%s'"
msgstr "échec du flush de '%s'"
-#: rerere.c:487 rerere.c:1023
+#: rerere.c:487 rerere.c:1024
#, c-format
msgid "could not parse conflict hunks in '%s'"
msgstr "impossible d'analyser la section en conflit dans '%s'"
-#: rerere.c:668
+#: rerere.c:669
#, c-format
msgid "failed utime() on '%s'"
msgstr "échec de utime() sur '%s'"
-#: rerere.c:678
+#: rerere.c:679
#, c-format
msgid "writing '%s' failed"
msgstr "échec de l'écriture de '%s'"
-#: rerere.c:698
+#: rerere.c:699
#, c-format
msgid "Staged '%s' using previous resolution."
msgstr "'%s' indexé en utilisant la résolution pré-existante."
-#: rerere.c:737
+#: rerere.c:738
#, c-format
msgid "Recorded resolution for '%s'."
msgstr "Résolution enregistrée pour '%s'."
-#: rerere.c:772
+#: rerere.c:773
#, c-format
msgid "Resolved '%s' using previous resolution."
msgstr "'%s' résolu en utilisant la résolution pré-existante."
-#: rerere.c:787
+#: rerere.c:788
#, c-format
msgid "cannot unlink stray '%s'"
msgstr "impossible de délier '%s' qui est errant"
-#: rerere.c:791
+#: rerere.c:792
#, c-format
msgid "Recorded preimage for '%s'"
msgstr "Pré-image enregistrée pour '%s'"
-#: rerere.c:865 submodule.c:2121 builtin/log.c:2017
-#: builtin/submodule--helper.c:1777 builtin/submodule--helper.c:1820
+#: rerere.c:866 submodule.c:2290 builtin/log.c:2042
+#: builtin/submodule--helper.c:1786 builtin/submodule--helper.c:1833
#, c-format
msgid "could not create directory '%s'"
msgstr "impossible de créer le répertoire '%s'"
-#: rerere.c:1041
+#: rerere.c:1042
#, c-format
msgid "failed to update conflicted state in '%s'"
msgstr "échec de la mise à jour de l'état en conflit dans '%s'"
-#: rerere.c:1052 rerere.c:1059
+#: rerere.c:1053 rerere.c:1060
#, c-format
msgid "no remembered resolution for '%s'"
msgstr "aucune résolution enregistrée pour '%s'"
-#: rerere.c:1061
+#: rerere.c:1062
#, c-format
msgid "cannot unlink '%s'"
msgstr "impossible de délier '%s'"
-#: rerere.c:1071
+#: rerere.c:1072
#, c-format
msgid "Updated preimage for '%s'"
msgstr "Pré-image mise à jour pour '%s'"
-#: rerere.c:1080
+#: rerere.c:1081
#, c-format
msgid "Forgot resolution for '%s'\n"
msgstr "Résolution pour '%s' oubliée\n"
-#: rerere.c:1191
+#: rerere.c:1192
msgid "unable to open rr-cache directory"
msgstr "impossible d'ouvrir le répertoire rr-cache"
-#: reset.c:42
+#: reset.c:112
msgid "could not determine HEAD revision"
msgstr "impossible de déterminer la révision HEAD"
-#: reset.c:70 reset.c:76 sequencer.c:3700
+#: reset.c:141 reset.c:147 sequencer.c:3696
#, c-format
msgid "failed to find tree of %s"
msgstr "impossible de trouver l'arbre de %s"
-#: revision.c:2347
+#: revision.c:2358
msgid "--unpacked=<packfile> no longer supported"
msgstr "--unpacked=<fichier-paquet> n'est plus géré"
-#: revision.c:2686
+#: revision.c:2712
msgid "your current branch appears to be broken"
msgstr "votre branche actuelle semble cassée"
-#: revision.c:2689
+#: revision.c:2715
#, 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:2891
+#: revision.c:2901
+msgid "object filtering requires --objects"
+msgstr "le filtrage d'objet exige --objects"
+
+#: revision.c:2918
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"
@@ -7788,7 +8014,7 @@ msgstr "mode de nettoyage invalide de message de validation '%s'"
msgid "could not delete '%s'"
msgstr "impossible de supprimer '%s'"
-#: sequencer.c:345 sequencer.c:4751 builtin/rebase.c:563 builtin/rebase.c:1297
+#: sequencer.c:345 sequencer.c:4724 builtin/rebase.c:564 builtin/rebase.c:1326
#: builtin/rm.c:409
#, c-format
msgid "could not remove '%s'"
@@ -7851,13 +8077,13 @@ msgstr ""
"Pour arrêter et revenir à l'état antérieur à \"git revert\",,\n"
"lancez \"git revert --abort\"."
-#: sequencer.c:448 sequencer.c:3292
+#: sequencer.c:448 sequencer.c:3288
#, c-format
msgid "could not lock '%s'"
msgstr "impossible de verrouiller '%s'"
-#: sequencer.c:450 sequencer.c:3091 sequencer.c:3296 sequencer.c:3310
-#: sequencer.c:3561 sequencer.c:5618 strbuf.c:1188 wrapper.c:639
+#: sequencer.c:450 sequencer.c:3087 sequencer.c:3292 sequencer.c:3306
+#: sequencer.c:3557 sequencer.c:5591 strbuf.c:1189 wrapper.c:715
#, c-format
msgid "could not write to '%s'"
msgstr "impossible d'écrire dans '%s'"
@@ -7867,14 +8093,14 @@ msgstr "impossible d'écrire dans '%s'"
msgid "could not write eol to '%s'"
msgstr "impossible d'écrire la fin de ligne dans '%s'"
-#: sequencer.c:460 sequencer.c:3096 sequencer.c:3298 sequencer.c:3312
-#: sequencer.c:3569
+#: sequencer.c:460 sequencer.c:3092 sequencer.c:3294 sequencer.c:3308
+#: sequencer.c:3565
#, c-format
msgid "failed to finalize '%s'"
msgstr "échec lors de la finalisation de '%s'"
-#: sequencer.c:473 sequencer.c:1934 sequencer.c:3116 sequencer.c:3551
-#: sequencer.c:3679 builtin/am.c:289 builtin/commit.c:834 builtin/merge.c:1148
+#: sequencer.c:473 sequencer.c:1930 sequencer.c:3112 sequencer.c:3547
+#: sequencer.c:3675 builtin/am.c:290 builtin/commit.c:837 builtin/merge.c:1154
#, c-format
msgid "could not read '%s'"
msgstr "impossible de lire '%s'"
@@ -7893,7 +8119,7 @@ msgstr "validez vos modifications ou les remiser pour continuer."
msgid "%s: fast-forward"
msgstr "%s : avance rapide"
-#: sequencer.c:574 builtin/tag.c:614
+#: sequencer.c:574 builtin/tag.c:615
#, c-format
msgid "Invalid cleanup mode %s"
msgstr "Mode de nettoyage invalide %s"
@@ -7924,8 +8150,8 @@ 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:841 wrapper.c:209 wrapper.c:379 builtin/am.c:756
-#: builtin/am.c:848 builtin/rebase.c:694
+#: sequencer.c:841 wrapper.c:219 wrapper.c:389 builtin/am.c:757
+#: builtin/am.c:849 builtin/rebase.c:699
#, c-format
msgid "could not open '%s' for reading"
msgstr "impossible d'ouvrir '%s' en lecture"
@@ -8047,350 +8273,345 @@ msgstr ""
"\n"
" git commit --amend --reset-author\n"
-#: sequencer.c:1288
+#: sequencer.c:1287
msgid "couldn't look up newly created commit"
msgstr "impossible de retrouver le commit nouvellement créé"
-#: sequencer.c:1290
+#: sequencer.c:1289
msgid "could not parse newly created commit"
msgstr "impossible d'analyser le commit nouvellement créé"
-#: sequencer.c:1339
+#: sequencer.c:1336
msgid "unable to resolve HEAD after creating commit"
msgstr "impossible de résoudre HEAD après création du commit"
-#: sequencer.c:1342
+#: sequencer.c:1338
msgid "detached HEAD"
msgstr "HEAD détachée"
-#: sequencer.c:1346
+#: sequencer.c:1342
msgid " (root-commit)"
msgstr " (commit racine)"
-#: sequencer.c:1367
+#: sequencer.c:1363
msgid "could not parse HEAD"
msgstr "impossible de lire HEAD"
-#: sequencer.c:1369
+#: sequencer.c:1365
#, c-format
msgid "HEAD %s is not a commit!"
msgstr "HEAD %s n'est pas un commit !"
-#: sequencer.c:1373 sequencer.c:1451 builtin/commit.c:1708
+#: sequencer.c:1369 sequencer.c:1447 builtin/commit.c:1707
msgid "could not parse HEAD commit"
msgstr "impossible d'analyser le commit HEAD"
-#: sequencer.c:1429 sequencer.c:2314
+#: sequencer.c:1425 sequencer.c:2310
msgid "unable to parse commit author"
msgstr "impossible d'analyser l'auteur du commit"
-#: sequencer.c:1440 builtin/am.c:1643 builtin/merge.c:710
+#: sequencer.c:1436 builtin/am.c:1644 builtin/merge.c:710
msgid "git write-tree failed to write a tree"
msgstr "git write-tree a échoué à écrire un arbre"
-#: sequencer.c:1473 sequencer.c:1593
+#: sequencer.c:1469 sequencer.c:1589
#, c-format
msgid "unable to read commit message from '%s'"
msgstr "impossible de lire le message de validation de '%s'"
-#: sequencer.c:1504 sequencer.c:1536
+#: sequencer.c:1500 sequencer.c:1532
#, c-format
msgid "invalid author identity '%s'"
msgstr "identité d'auteur invalide '%s'"
-#: sequencer.c:1510
+#: sequencer.c:1506
msgid "corrupt author: missing date information"
msgstr "auteur corrompu : information de date manquante"
-#: sequencer.c:1549 builtin/am.c:1670 builtin/commit.c:1822 builtin/merge.c:915
-#: builtin/merge.c:940 t/helper/test-fast-rebase.c:78
+#: sequencer.c:1545 builtin/am.c:1671 builtin/commit.c:1821 builtin/merge.c:921
+#: builtin/merge.c:946 t/helper/test-fast-rebase.c:78
msgid "failed to write commit object"
msgstr "échec de l'écriture de l'objet commit"
-#: sequencer.c:1576 sequencer.c:4523 t/helper/test-fast-rebase.c:199
+#: sequencer.c:1572 sequencer.c:4496 t/helper/test-fast-rebase.c:199
#: t/helper/test-fast-rebase.c:217
#, c-format
msgid "could not update %s"
msgstr "impossible de mettre à jour %s"
-#: sequencer.c:1625
+#: sequencer.c:1621
#, c-format
msgid "could not parse commit %s"
msgstr "impossible d'analyser le commit %s"
-#: sequencer.c:1630
+#: sequencer.c:1626
#, c-format
msgid "could not parse parent commit %s"
msgstr "impossible d'analyser le commit parent %s"
-#: sequencer.c:1713 sequencer.c:1994
+#: sequencer.c:1709 sequencer.c:1990
#, c-format
msgid "unknown command: %d"
msgstr "commande inconnue : %d"
-#: sequencer.c:1755
+#: sequencer.c:1751
msgid "This is the 1st commit message:"
msgstr "Ceci est le premier message de validation :"
-#: sequencer.c:1756
+#: sequencer.c:1752
#, c-format
msgid "This is the commit message #%d:"
msgstr "Ceci est le message de validation numéro %d :"
-#: sequencer.c:1757
+#: sequencer.c:1753
msgid "The 1st commit message will be skipped:"
msgstr "Le premier message de validation sera ignoré :"
-#: sequencer.c:1758
+#: sequencer.c:1754
#, c-format
msgid "The commit message #%d will be skipped:"
msgstr "Le message de validation %d sera ignoré :"
-#: sequencer.c:1759
+#: sequencer.c:1755
#, c-format
msgid "This is a combination of %d commits."
msgstr "Ceci est la combinaison de %d commits."
-#: sequencer.c:1906 sequencer.c:1963
+#: sequencer.c:1902 sequencer.c:1959
#, c-format
msgid "cannot write '%s'"
msgstr "impossible d'écrire '%s'"
-#: sequencer.c:1953
+#: sequencer.c:1949
msgid "need a HEAD to fixup"
msgstr "une HEAD est nécessaire à la correction"
-#: sequencer.c:1955 sequencer.c:3596
+#: sequencer.c:1951 sequencer.c:3592
msgid "could not read HEAD"
msgstr "impossible de lire HEAD"
-#: sequencer.c:1957
+#: sequencer.c:1953
msgid "could not read HEAD's commit message"
msgstr "impossible de lire le message de validation de HEAD"
-#: sequencer.c:1981
+#: sequencer.c:1977
#, c-format
msgid "could not read commit message of %s"
msgstr "impossible de lire le message de validation de %s"
-#: sequencer.c:2091
+#: sequencer.c:2087
msgid "your index file is unmerged."
msgstr "votre fichier d'index n'est pas fusionné."
-#: sequencer.c:2098
+#: sequencer.c:2094
msgid "cannot fixup root commit"
msgstr "impossible de réparer le commit racine"
-#: sequencer.c:2117
+#: sequencer.c:2113
#, c-format
msgid "commit %s is a merge but no -m option was given."
msgstr "le commit %s est une fusion mais l'option -m n'a pas été spécifiée."
-#: sequencer.c:2125 sequencer.c:2133
+#: sequencer.c:2121 sequencer.c:2129
#, c-format
msgid "commit %s does not have parent %d"
msgstr "le commit %s n'a pas de parent %d"
-#: sequencer.c:2139
+#: sequencer.c:2135
#, c-format
msgid "cannot get commit message for %s"
msgstr "impossible d'obtenir un message de validation pour %s"
#. TRANSLATORS: The first %s will be a "todo" command like
#. "revert" or "pick", the second %s a SHA1.
-#: sequencer.c:2158
+#: sequencer.c:2154
#, c-format
msgid "%s: cannot parse parent commit %s"
msgstr "%s : impossible d'analyser le commit parent %s"
-#: sequencer.c:2224
+#: sequencer.c:2220
#, c-format
msgid "could not rename '%s' to '%s'"
msgstr "impossible de renommer '%s' en '%s'"
-#: sequencer.c:2284
+#: sequencer.c:2280
#, c-format
msgid "could not revert %s... %s"
msgstr "impossible d'annuler %s... %s"
-#: sequencer.c:2285
+#: sequencer.c:2281
#, c-format
msgid "could not apply %s... %s"
msgstr "impossible d'appliquer %s... %s"
-#: sequencer.c:2306
+#: sequencer.c:2302
#, c-format
msgid "dropping %s %s -- patch contents already upstream\n"
msgstr "abandon de %s %s -- le contenu de la rustine déjà en amont\n"
-#: sequencer.c:2364
+#: sequencer.c:2360
#, c-format
msgid "git %s: failed to read the index"
msgstr "git %s : échec à la lecture de l'index"
-#: sequencer.c:2372
+#: sequencer.c:2368
#, c-format
msgid "git %s: failed to refresh the index"
msgstr "git %s : échec du rafraîchissement de l'index"
-#: sequencer.c:2452
+#: sequencer.c:2448
#, c-format
msgid "%s does not accept arguments: '%s'"
msgstr "%s n'accepte pas d'argument : '%s'"
-#: sequencer.c:2461
+#: sequencer.c:2457
#, c-format
msgid "missing arguments for %s"
msgstr "argument manquant pour %s"
-#: sequencer.c:2504
+#: sequencer.c:2500
#, c-format
msgid "could not parse '%s'"
msgstr "impossible d'analyser '%s'"
-#: sequencer.c:2565
+#: sequencer.c:2561
#, c-format
msgid "invalid line %d: %.*s"
msgstr "ligne %d invalide : %.*s"
-#: sequencer.c:2576
+#: sequencer.c:2572
#, c-format
msgid "cannot '%s' without a previous commit"
msgstr "'%s' impossible avec le commit précédent"
-#: sequencer.c:2624 builtin/rebase.c:184
+#: sequencer.c:2620 builtin/rebase.c:185
#, c-format
msgid "could not read '%s'."
msgstr "impossible de lire '%s'."
-#: sequencer.c:2662
+#: sequencer.c:2658
msgid "cancelling a cherry picking in progress"
msgstr "annulation d'un picorage en cours"
-#: sequencer.c:2671
+#: sequencer.c:2667
msgid "cancelling a revert in progress"
msgstr "annulation d'un retour en cours"
-#: sequencer.c:2711
+#: sequencer.c:2707
msgid "please fix this using 'git rebase --edit-todo'."
msgstr "veuillez corriger ceci en utilisant 'git rebase --edit-todo'."
-#: sequencer.c:2713
+#: sequencer.c:2709
#, c-format
msgid "unusable instruction sheet: '%s'"
msgstr "feuille d'instruction inutilisable : '%s'"
-#: sequencer.c:2718
+#: sequencer.c:2714
msgid "no commits parsed."
msgstr "aucun commit analysé."
-#: sequencer.c:2729
+#: sequencer.c:2725
msgid "cannot cherry-pick during a revert."
msgstr "impossible de picorer pendant l'annulation d'un commit."
-#: sequencer.c:2731
+#: sequencer.c:2727
msgid "cannot revert during a cherry-pick."
msgstr "impossible d'annuler un commit pendant un picorage."
-#: sequencer.c:2809
-#, c-format
-msgid "invalid value for %s: %s"
-msgstr "valeur invalide pour %s : %s"
-
-#: sequencer.c:2918
+#: sequencer.c:2914
msgid "unusable squash-onto"
msgstr "\"écrase-sur\" inutilisable"
-#: sequencer.c:2938
+#: sequencer.c:2934
#, c-format
msgid "malformed options sheet: '%s'"
msgstr "feuille d'options malformée : %s"
-#: sequencer.c:3033 sequencer.c:4902
+#: sequencer.c:3029 sequencer.c:4875
msgid "empty commit set passed"
msgstr "l'ensemble de commits spécifié est vide"
-#: sequencer.c:3050
+#: sequencer.c:3046
msgid "revert is already in progress"
msgstr "un retour est déjà en cours"
-#: sequencer.c:3052
+#: sequencer.c:3048
#, c-format
msgid "try \"git revert (--continue | %s--abort | --quit)\""
msgstr "essayez \"git revert (--continue | %s--abort | --quit)\""
-#: sequencer.c:3055
+#: sequencer.c:3051
msgid "cherry-pick is already in progress"
msgstr "un picorage est déjà en cours"
-#: sequencer.c:3057
+#: sequencer.c:3053
#, c-format
msgid "try \"git cherry-pick (--continue | %s--abort | --quit)\""
msgstr "essayez \"git cherry-pick (--continue | %s--abort | --quit)\""
-#: sequencer.c:3071
+#: sequencer.c:3067
#, c-format
msgid "could not create sequencer directory '%s'"
msgstr "impossible de créer le répertoire de séquenceur '%s'"
-#: sequencer.c:3086
+#: sequencer.c:3082
msgid "could not lock HEAD"
msgstr "impossible de verrouiller HEAD"
-#: sequencer.c:3146 sequencer.c:4612
+#: sequencer.c:3142 sequencer.c:4585
msgid "no cherry-pick or revert in progress"
msgstr "aucun picorage ou retour en cours"
-#: sequencer.c:3148 sequencer.c:3159
+#: sequencer.c:3144 sequencer.c:3155
msgid "cannot resolve HEAD"
msgstr "impossible de résoudre HEAD"
-#: sequencer.c:3150 sequencer.c:3194
+#: sequencer.c:3146 sequencer.c:3190
msgid "cannot abort from a branch yet to be born"
msgstr "impossible d'abandonner depuis une branche non encore créée"
-#: sequencer.c:3180 builtin/fetch.c:1004 builtin/fetch.c:1416
-#: builtin/grep.c:772
+#: sequencer.c:3176 builtin/fetch.c:1030 builtin/fetch.c:1457
+#: builtin/grep.c:774
#, c-format
msgid "cannot open '%s'"
msgstr "impossible d'ouvrir '%s'"
-#: sequencer.c:3182
+#: sequencer.c:3178
#, c-format
msgid "cannot read '%s': %s"
msgstr "impossible de lire '%s' : %s"
-#: sequencer.c:3183
+#: sequencer.c:3179
msgid "unexpected end of file"
msgstr "fin de fichier inattendue"
-#: sequencer.c:3189
+#: sequencer.c:3185
#, c-format
msgid "stored pre-cherry-pick HEAD file '%s' is corrupt"
msgstr "le fichier HEAD de préparation de picorage '%s' est corrompu"
-#: sequencer.c:3200
+#: sequencer.c:3196
msgid "You seem to have moved HEAD. Not rewinding, check your HEAD!"
msgstr ""
"Vous semblez avoir déplacé la HEAD. Pas de rembobinage, vérifiez votre HEAD !"
-#: sequencer.c:3241
+#: sequencer.c:3237
msgid "no revert in progress"
msgstr "pas de retour en cours"
-#: sequencer.c:3250
+#: sequencer.c:3246
msgid "no cherry-pick in progress"
msgstr "aucun picorage en cours"
-#: sequencer.c:3260
+#: sequencer.c:3256
msgid "failed to skip the commit"
msgstr "échec du saut de commit"
-#: sequencer.c:3267
+#: sequencer.c:3263
msgid "there is nothing to skip"
msgstr "il n'y a rien à sauter"
-#: sequencer.c:3270
+#: sequencer.c:3266
#, c-format
msgid ""
"have you committed already?\n"
@@ -8399,16 +8620,16 @@ msgstr ""
"avez-vous déjà validé ?\n"
"essayez \"git %s --continue\""
-#: sequencer.c:3432 sequencer.c:4503
+#: sequencer.c:3428 sequencer.c:4476
msgid "cannot read HEAD"
msgstr "impossible de lire HEAD"
-#: sequencer.c:3449
+#: sequencer.c:3445
#, c-format
msgid "unable to copy '%s' to '%s'"
msgstr "impossible de copier '%s' vers '%s'"
-#: sequencer.c:3457
+#: sequencer.c:3453
#, c-format
msgid ""
"You can amend the commit now, with\n"
@@ -8427,27 +8648,27 @@ msgstr ""
"\n"
" git rebase --continue\n"
-#: sequencer.c:3467
+#: sequencer.c:3463
#, c-format
msgid "Could not apply %s... %.*s"
msgstr "Impossible d'appliquer %s... %.*s"
-#: sequencer.c:3474
+#: sequencer.c:3470
#, c-format
msgid "Could not merge %.*s"
msgstr "Impossible de fusionner %.*s"
-#: sequencer.c:3488 sequencer.c:3492 builtin/difftool.c:633
+#: sequencer.c:3484 sequencer.c:3488 builtin/difftool.c:633
#, c-format
msgid "could not copy '%s' to '%s'"
msgstr "impossible de copier '%s' vers '%s'"
-#: sequencer.c:3503
+#: sequencer.c:3499
#, c-format
msgid "Executing: %s\n"
msgstr "Exécution : %s\n"
-#: sequencer.c:3514
+#: sequencer.c:3510
#, c-format
msgid ""
"execution failed: %s\n"
@@ -8462,11 +8683,11 @@ msgstr ""
"git rebase --continue\n"
"\n"
-#: sequencer.c:3520
+#: sequencer.c:3516
msgid "and made changes to the index and/or the working tree\n"
msgstr "et a mis à jour l'index ou l'arbre de travail\n"
-#: sequencer.c:3526
+#: sequencer.c:3522
#, c-format
msgid ""
"execution succeeded: %s\n"
@@ -8483,91 +8704,91 @@ msgstr ""
" git rebase --continue\n"
"\n"
-#: sequencer.c:3586
+#: sequencer.c:3582
#, c-format
msgid "illegal label name: '%.*s'"
msgstr "nom de label illégal '%.*s'"
-#: sequencer.c:3659
+#: sequencer.c:3655
msgid "writing fake root commit"
msgstr "écriture d'un commit racine bidon"
-#: sequencer.c:3664
+#: sequencer.c:3660
msgid "writing squash-onto"
msgstr "écriture de 'écraser-sur'"
-#: sequencer.c:3743
+#: sequencer.c:3739
#, c-format
msgid "could not resolve '%s'"
msgstr "impossible de résoudre '%s'"
-#: sequencer.c:3775
+#: sequencer.c:3771
msgid "cannot merge without a current revision"
msgstr "impossible de fusionner avec une révision courante"
-#: sequencer.c:3797
+#: sequencer.c:3793
#, c-format
msgid "unable to parse '%.*s'"
msgstr "impossible d'analyser '%.*s'"
-#: sequencer.c:3806
+#: sequencer.c:3802
#, c-format
msgid "nothing to merge: '%.*s'"
msgstr "rien à fusionner : '%.*s'"
-#: sequencer.c:3818
+#: sequencer.c:3814
msgid "octopus merge cannot be executed on top of a [new root]"
msgstr ""
"une fusion octopus ne peut pas être exécutée par dessus une nouvelle racine"
-#: sequencer.c:3873
+#: sequencer.c:3869
#, c-format
msgid "could not get commit message of '%s'"
msgstr "impossible de lire le message de validation de '%s'"
-#: sequencer.c:4019
+#: sequencer.c:4013
#, c-format
msgid "could not even attempt to merge '%.*s'"
msgstr "impossible de seulement essayer de fusionner '%.*s'"
-#: sequencer.c:4035
+#: sequencer.c:4029
msgid "merge: Unable to write new index file"
msgstr "fusion : Impossible d'écrire le nouveau fichier index"
-#: sequencer.c:4116
+#: sequencer.c:4110
msgid "Cannot autostash"
msgstr "Autoremisage impossible"
-#: sequencer.c:4119
+#: sequencer.c:4113
#, c-format
msgid "Unexpected stash response: '%s'"
msgstr "Réponse de remisage inattendue : '%s'"
-#: sequencer.c:4125
+#: sequencer.c:4119
#, c-format
msgid "Could not create directory for '%s'"
msgstr "Impossible de créer le répertoire pour '%s'"
-#: sequencer.c:4128
+#: sequencer.c:4122
#, c-format
msgid "Created autostash: %s\n"
msgstr "Autoremisage créé : %s\n"
-#: sequencer.c:4132
+#: sequencer.c:4124
msgid "could not reset --hard"
msgstr "impossible de réinitialiser --hard"
-#: sequencer.c:4157
+#: sequencer.c:4148
#, c-format
msgid "Applied autostash.\n"
msgstr "Autoremisage appliqué.\n"
-#: sequencer.c:4169
+#: sequencer.c:4160
#, c-format
msgid "cannot store %s"
msgstr "impossible de stocker %s"
-#: sequencer.c:4172
+#: sequencer.c:4163
#, c-format
msgid ""
"%s\n"
@@ -8578,30 +8799,30 @@ msgstr ""
"Vos modifications sont à l'abri dans la remise.\n"
"Vous pouvez lancer \"git stash pop\" ou \"git stash drop\" à tout moment.\n"
-#: sequencer.c:4177
+#: sequencer.c:4168
msgid "Applying autostash resulted in conflicts."
msgstr "L'application du remisage automatique a créé des conflits."
-#: sequencer.c:4178
+#: sequencer.c:4169
msgid "Autostash exists; creating a new stash entry."
msgstr ""
"Un remisage automatique existe ; création d'une nouvelle entrée de remisage."
-#: sequencer.c:4252
+#: sequencer.c:4225
msgid "could not detach HEAD"
msgstr "impossible de détacher HEAD"
-#: sequencer.c:4267
+#: sequencer.c:4240
#, c-format
msgid "Stopped at HEAD\n"
msgstr "Arrêt à HEAD\n"
-#: sequencer.c:4269
+#: sequencer.c:4242
#, c-format
msgid "Stopped at %s\n"
msgstr "Arrêté à %s\n"
-#: sequencer.c:4301
+#: sequencer.c:4274
#, c-format
msgid ""
"Could not execute the todo command\n"
@@ -8622,58 +8843,58 @@ msgstr ""
" git rebase --edit-todo\n"
" git rebase --continue\n"
-#: sequencer.c:4347
+#: sequencer.c:4320
#, c-format
msgid "Rebasing (%d/%d)%s"
msgstr "Rebasage (%d/%d)%s"
-#: sequencer.c:4393
+#: sequencer.c:4366
#, c-format
msgid "Stopped at %s... %.*s\n"
msgstr "Arrêt à %s... %.*s\n"
-#: sequencer.c:4463
+#: sequencer.c:4436
#, c-format
msgid "unknown command %d"
msgstr "commande inconnue %d"
-#: sequencer.c:4511
+#: sequencer.c:4484
msgid "could not read orig-head"
msgstr "impossible de lire orig-head"
-#: sequencer.c:4516
+#: sequencer.c:4489
msgid "could not read 'onto'"
msgstr "impossible de lire 'onto'"
-#: sequencer.c:4530
+#: sequencer.c:4503
#, c-format
msgid "could not update HEAD to %s"
msgstr "impossible de mettre à jour HEAD sur %s"
-#: sequencer.c:4590
+#: sequencer.c:4563
#, c-format
msgid "Successfully rebased and updated %s.\n"
msgstr "Rebasage et mise à jour de %s avec succès.\n"
-#: sequencer.c:4642
+#: sequencer.c:4615
msgid "cannot rebase: You have unstaged changes."
msgstr "impossible de rebaser : vous avez des modifications non indexées."
-#: sequencer.c:4651
+#: sequencer.c:4624
msgid "cannot amend non-existing commit"
msgstr "impossible de corriger un commit non-existant"
-#: sequencer.c:4653
+#: sequencer.c:4626
#, c-format
msgid "invalid file: '%s'"
msgstr "fichier invalide : '%s'"
-#: sequencer.c:4655
+#: sequencer.c:4628
#, c-format
msgid "invalid contents: '%s'"
msgstr "contenu invalide : '%s'"
-#: sequencer.c:4658
+#: sequencer.c:4631
msgid ""
"\n"
"You have uncommitted changes in your working tree. Please, commit them\n"
@@ -8683,68 +8904,68 @@ msgstr ""
"Vous avez des modifications non validées dans votre copie de travail.\n"
"Veuillez les valider d'abord, puis relancer 'git rebase --continue'."
-#: sequencer.c:4694 sequencer.c:4733
+#: sequencer.c:4667 sequencer.c:4706
#, c-format
msgid "could not write file: '%s'"
msgstr "impossible d'écrire le fichier : '%s'"
-#: sequencer.c:4749
+#: sequencer.c:4722
msgid "could not remove CHERRY_PICK_HEAD"
msgstr "impossible de supprimer CHERRY_PICK_HEAD"
-#: sequencer.c:4759
+#: sequencer.c:4732
msgid "could not commit staged changes."
msgstr "impossible de valider les modifications indexées."
-#: sequencer.c:4879
+#: sequencer.c:4852
#, c-format
msgid "%s: can't cherry-pick a %s"
msgstr "%s : impossible de picorer un %s"
-#: sequencer.c:4883
+#: sequencer.c:4856
#, c-format
msgid "%s: bad revision"
msgstr "%s : mauvaise révision"
-#: sequencer.c:4918
+#: sequencer.c:4891
msgid "can't revert as initial commit"
msgstr "impossible d'annuler en tant que commit initial"
-#: sequencer.c:5189 sequencer.c:5418
+#: sequencer.c:5162 sequencer.c:5391
#, c-format
msgid "skipped previously applied commit %s"
msgstr "le commit %s appliqué précédemment a été sauté"
-#: sequencer.c:5259 sequencer.c:5434
+#: sequencer.c:5232 sequencer.c:5407
msgid "use --reapply-cherry-picks to include skipped commits"
msgstr "utilisez --reapply-cherry-picks pour inclure les commits sautés"
-#: sequencer.c:5405
+#: sequencer.c:5378
msgid "make_script: unhandled options"
msgstr "make_script : options non gérées"
-#: sequencer.c:5408
+#: sequencer.c:5381
msgid "make_script: error preparing revisions"
msgstr "make_script : erreur lors de la préparation des révisions"
-#: sequencer.c:5666 sequencer.c:5683
+#: sequencer.c:5639 sequencer.c:5656
msgid "nothing to do"
msgstr "rien à faire"
-#: sequencer.c:5702
+#: sequencer.c:5675
msgid "could not skip unnecessary pick commands"
msgstr "impossible d'éviter les commandes de picorage non nécessaires"
-#: sequencer.c:5802
+#: sequencer.c:5775
msgid "the script was already rearranged."
msgstr "le script a déjà été réarrangé."
-#: setup.c:134
+#: setup.c:135
#, c-format
msgid "'%s' is outside repository at '%s'"
msgstr "'%s' est hors du dépôt à '%s'"
-#: setup.c:186
+#: setup.c:187
#, c-format
msgid ""
"%s: no such path in the working tree.\n"
@@ -8754,7 +8975,7 @@ msgstr ""
"Utilisez 'git <commande> -- <chemin>...' pour spécifier des chemins qui "
"n'existent pas localement."
-#: setup.c:199
+#: setup.c:200
#, c-format
msgid ""
"ambiguous argument '%s': unknown revision or path not in the working tree.\n"
@@ -8765,14 +8986,14 @@ msgstr ""
"Utilisez '--' pour séparer les chemins des révisions, comme ceci :\n"
"'git <commande> [<révision>...] -- [<chemin>...]'"
-#: setup.c:265
+#: setup.c:266
#, c-format
msgid "option '%s' must come before non-option arguments"
msgstr ""
"l'option '%s' doit être présente avant les arguments qui ne sont pas des "
"options"
-#: setup.c:284
+#: setup.c:285
#, c-format
msgid ""
"ambiguous argument '%s': both revision and filename\n"
@@ -8783,28 +9004,28 @@ msgstr ""
"Utilisez '--' pour séparer les chemins des révisions, comme ceci :\n"
"'git <commande> [<révision>...] -- [<chemin>...]'"
-#: setup.c:420
+#: setup.c:421
msgid "unable to set up work tree using invalid config"
msgstr ""
"impossible de mettre en place le répertoire de travail en utilisant une "
"configuration invalide"
-#: setup.c:424 builtin/rev-parse.c:895
+#: setup.c:425 builtin/rev-parse.c:895
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:722
+#: setup.c:724
#, c-format
msgid "Expected git repo version <= %d, found %d"
msgstr "Version attendue du dépôt git <= %d, %d trouvée"
-#: setup.c:730
+#: setup.c:732
msgid "unknown repository extension found:"
msgid_plural "unknown repository extensions found:"
msgstr[0] "extension de dépôt inconnue trouvée :"
msgstr[1] "extensions de dépôt inconnues trouvées :"
-#: setup.c:744
+#: setup.c:746
msgid "repo version is 0, but v1-only extension found:"
msgid_plural "repo version is 0, but v1-only extensions found:"
msgstr[0] ""
@@ -8812,75 +9033,75 @@ msgstr[0] ""
msgstr[1] ""
"la version du dépôt est 0, mais des extensions uniquement v1 trouvées :"
-#: setup.c:765
+#: setup.c:767
#, c-format
msgid "error opening '%s'"
msgstr "erreur à l'ouverture de '%s'"
-#: setup.c:767
+#: setup.c:769
#, c-format
msgid "too large to be a .git file: '%s'"
msgstr "trop gros pour être une fichier .git : '%s'"
-#: setup.c:769
+#: setup.c:771
#, c-format
msgid "error reading %s"
msgstr "erreur à la lecture de %s"
-#: setup.c:771
+#: setup.c:773
#, c-format
msgid "invalid gitfile format: %s"
msgstr "format de fichier git invalide : %s"
-#: setup.c:773
+#: setup.c:775
#, c-format
msgid "no path in gitfile: %s"
msgstr "aucun chemin dans le fichier git : %s"
-#: setup.c:775
+#: setup.c:777
#, c-format
msgid "not a git repository: %s"
msgstr "ce n'est pas un dépôt git : %s"
-#: setup.c:877
+#: setup.c:879
#, c-format
msgid "'$%s' too big"
msgstr "'$%s' trop gros"
-#: setup.c:891
+#: setup.c:893
#, c-format
msgid "not a git repository: '%s'"
msgstr "ce n'est pas un dépôt git : '%s'"
-#: setup.c:920 setup.c:922 setup.c:953
+#: setup.c:922 setup.c:924 setup.c:955
#, c-format
msgid "cannot chdir to '%s'"
msgstr "impossible de se déplacer vers le répertoire (chdir) '%s'"
-#: setup.c:925 setup.c:981 setup.c:991 setup.c:1030 setup.c:1038
+#: setup.c:927 setup.c:983 setup.c:993 setup.c:1032 setup.c:1040
msgid "cannot come back to cwd"
msgstr "impossible de revenir au répertoire de travail courant"
-#: setup.c:1052
+#: setup.c:1054
#, c-format
msgid "failed to stat '%*s%s%s'"
msgstr "échec du stat de '%*s%s%s'"
-#: setup.c:1295
+#: setup.c:1338
msgid "Unable to read current working directory"
msgstr "Impossible d'accéder au répertoire de travail courant"
-#: setup.c:1304 setup.c:1310
+#: setup.c:1347 setup.c:1353
#, c-format
msgid "cannot change to '%s'"
msgstr "impossible de modifier en '%s'"
-#: setup.c:1315
+#: setup.c:1358
#, 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:1321
+#: setup.c:1364
#, c-format
msgid ""
"not a git repository (or any parent up to mount point %s)\n"
@@ -8891,7 +9112,20 @@ msgstr ""
"Arrêt à la limite du système de fichiers (GIT_DISCOVERY_ACROSS_FILESYSTEM "
"n'est pas défini)."
-#: setup.c:1446
+#: setup.c:1374
+#, c-format
+msgid ""
+"unsafe repository ('%s' is owned by someone else)\n"
+"To add an exception for this directory, call:\n"
+"\n"
+"\tgit config --global --add safe.directory %s"
+msgstr ""
+"dépôt non sécurisé ('%s' appartient à quelqu'un d'autre)\n"
+"Pour ajouter une exception pour ce dépôt, lancez :\n"
+"\n"
+"\tgit config --global --add safe.directory %s"
+
+#: setup.c:1502
#, c-format
msgid ""
"problem with core.sharedRepository filemode value (0%.3o).\n"
@@ -8901,57 +9135,61 @@ msgstr ""
"Le propriétaire des fichiers doit toujours avoir les droits en lecture et "
"écriture."
-#: setup.c:1508
+#: setup.c:1564
msgid "fork failed"
msgstr "échec de la bifurcation"
-#: setup.c:1513
+#: setup.c:1569
msgid "setsid failed"
msgstr "échec du setsid"
-#: sparse-index.c:289
+#: sparse-index.c:285
#, c-format
msgid "index entry is a directory, but not sparse (%08x)"
msgstr "l'entrée d'index est un répertoire, mais pas clairsemé (%08x)"
+#: split-index.c:9
+msgid "cannot use split index with a sparse index"
+msgstr "impossible d'utiliser l'index scindé avec un index clairsemé"
+
#. TRANSLATORS: IEC 80000-13:2008 gibibyte
-#: strbuf.c:850
+#: strbuf.c:851
#, c-format
msgid "%u.%2.2u GiB"
msgstr "%u.%2.2u Gio"
#. TRANSLATORS: IEC 80000-13:2008 gibibyte/second
-#: strbuf.c:852
+#: strbuf.c:853
#, c-format
msgid "%u.%2.2u GiB/s"
msgstr "%u.%2.2u Gio/s"
#. TRANSLATORS: IEC 80000-13:2008 mebibyte
-#: strbuf.c:860
+#: strbuf.c:861
#, c-format
msgid "%u.%2.2u MiB"
msgstr "%u.%2.2u Mio"
#. TRANSLATORS: IEC 80000-13:2008 mebibyte/second
-#: strbuf.c:862
+#: strbuf.c:863
#, c-format
msgid "%u.%2.2u MiB/s"
msgstr "%u.%2.2u Mio/s"
#. TRANSLATORS: IEC 80000-13:2008 kibibyte
-#: strbuf.c:869
+#: strbuf.c:870
#, c-format
msgid "%u.%2.2u KiB"
msgstr "%u.%2.2u Kio"
#. TRANSLATORS: IEC 80000-13:2008 kibibyte/second
-#: strbuf.c:871
+#: strbuf.c:872
#, c-format
msgid "%u.%2.2u KiB/s"
msgstr "%u.%2.2u Kio/s"
#. TRANSLATORS: IEC 80000-13:2008 byte
-#: strbuf.c:877
+#: strbuf.c:878
#, c-format
msgid "%u byte"
msgid_plural "%u bytes"
@@ -8959,87 +9197,87 @@ msgstr[0] "%u octet"
msgstr[1] "%u octets"
#. TRANSLATORS: IEC 80000-13:2008 byte/second
-#: strbuf.c:879
+#: strbuf.c:880
#, c-format
msgid "%u byte/s"
msgid_plural "%u bytes/s"
msgstr[0] "%u octet/s"
msgstr[1] "%u octets/s"
-#: strbuf.c:1186 wrapper.c:207 wrapper.c:377 builtin/am.c:765
-#: builtin/rebase.c:650
+#: strbuf.c:1187 wrapper.c:217 wrapper.c:387 builtin/am.c:766
+#: builtin/rebase.c:653
#, c-format
msgid "could not open '%s' for writing"
msgstr "impossible d'ouvrir '%s' en écriture"
-#: strbuf.c:1195
+#: strbuf.c:1196
#, c-format
msgid "could not edit '%s'"
msgstr "impossible d'éditer '%s'"
-#: submodule-config.c:237
+#: submodule-config.c:238
#, c-format
msgid "ignoring suspicious submodule name: %s"
msgstr "nom de sous-module suspicieux %s ignoré"
-#: submodule-config.c:304
+#: submodule-config.c:305
msgid "negative values not allowed for submodule.fetchjobs"
msgstr "les valeurs négatives ne sont pas permises pour submodule.fetchjobs"
-#: submodule-config.c:402
+#: submodule-config.c:403
#, c-format
msgid "ignoring '%s' which may be interpreted as a command-line option: %s"
msgstr ""
"'%s' ignoré et qui peut être interprété comme une option de ligne de "
"commande : %s"
-#: submodule-config.c:499
+#: submodule-config.c:500 builtin/push.c:489 builtin/send-pack.c:148
#, c-format
-msgid "invalid value for %s"
-msgstr "valeur invalide pour %s"
+msgid "invalid value for '%s'"
+msgstr "valeur invalide pour '%s'"
-#: submodule-config.c:767
+#: submodule-config.c:828
#, c-format
msgid "Could not update .gitmodules entry %s"
msgstr "Impossible de mettre à jour l'élément %s de .gitmodules"
-#: submodule.c:114 submodule.c:143
+#: submodule.c:115 submodule.c:144
msgid "Cannot change unmerged .gitmodules, resolve merge conflicts first"
msgstr ""
"Modification impossible de .gitmodules non fusionné, résolvez les conflits "
"d'abord"
-#: submodule.c:118 submodule.c:147
+#: submodule.c:119 submodule.c:148
#, c-format
msgid "Could not find section in .gitmodules where path=%s"
msgstr "Impossible de trouver une section où path=%s dans .gitmodules"
# ici %s est un chemin
-#: submodule.c:154
+#: submodule.c:155
#, c-format
msgid "Could not remove .gitmodules entry for %s"
msgstr "Impossible de supprimer l'élément de .gitmodules pour %s"
-#: submodule.c:165
+#: submodule.c:166
msgid "staging updated .gitmodules failed"
msgstr "échec de la mise en index du .gitmodules mis à jour"
-#: submodule.c:358
+#: submodule.c:346
#, c-format
msgid "in unpopulated submodule '%s'"
msgstr "dans le sous-module '%s' non populé"
-#: submodule.c:389
+#: submodule.c:377
#, c-format
msgid "Pathspec '%s' is in submodule '%.*s'"
msgstr "Le chemin '%s' est dans le sous-module '%.*s'"
-#: submodule.c:466
+#: submodule.c:454
#, c-format
msgid "bad --ignore-submodules argument: %s"
msgstr "mauvais argument --ignore-submodules : %s"
-#: submodule.c:844
+#: submodule.c:866
#, c-format
msgid ""
"Submodule in commit %s at path: '%s' collides with a submodule named the "
@@ -9048,12 +9286,12 @@ msgstr ""
"Le sous-module dans le commit %s au chemin : '%s' entre en collision avec un "
"sous-module du même nom. Ignoré."
-#: submodule.c:954
+#: submodule.c:987
#, c-format
msgid "submodule entry '%s' (%s) is a %s, not a commit"
msgstr "l'entrée de sous-module '%s' (%s) est un %s, pas un commit"
-#: submodule.c:1042
+#: submodule.c:1069
#, c-format
msgid ""
"Could not run 'git rev-list <commits> --not --remotes -n 1' command in "
@@ -9062,36 +9300,46 @@ msgstr ""
"Impossible de lancer la commande 'git rev-list <commits> --not --remotes -n "
"1' dans le sous-module %s"
-#: submodule.c:1165
+#: submodule.c:1192
#, c-format
msgid "process for submodule '%s' failed"
msgstr "le processus pour le sous-module '%s' a échoué"
-#: submodule.c:1194 builtin/branch.c:699 builtin/submodule--helper.c:2714
+#: submodule.c:1221 builtin/branch.c:714 builtin/submodule--helper.c:2827
msgid "Failed to resolve HEAD as a valid ref."
msgstr "Échec de résolution de HEAD comme référence valide."
-#: submodule.c:1205
+#: submodule.c:1232
#, c-format
msgid "Pushing submodule '%s'\n"
msgstr "Poussée du sous-module '%s'\n"
-#: submodule.c:1208
+#: submodule.c:1235
#, c-format
msgid "Unable to push submodule '%s'\n"
msgstr "Impossible de pousser le sous-module '%s'\n"
-#: submodule.c:1491
+#: submodule.c:1567
#, c-format
msgid "Fetching submodule %s%s\n"
msgstr "Récupération du sous-module %s%s\n"
-#: submodule.c:1525
+#: submodule.c:1589
#, c-format
msgid "Could not access submodule '%s'\n"
msgstr "Impossible d'accéder au sous-module '%s'\n"
-#: submodule.c:1680
+#: submodule.c:1618
+#, c-format
+msgid "Could not access submodule '%s' at commit %s\n"
+msgstr "Impossible d'accéder au sous-module '%s' au commit %s\n"
+
+#: submodule.c:1629
+#, c-format
+msgid "Fetching submodule %s%s at commit %s\n"
+msgstr "Récupération du sous-module %s%s au commit %s\n"
+
+#: submodule.c:1849
#, c-format
msgid ""
"Errors during submodule fetch:\n"
@@ -9100,63 +9348,63 @@ msgstr ""
"Erreurs pendant la récupération du sous-module :\n"
"%s"
-#: submodule.c:1705
+#: submodule.c:1874
#, c-format
msgid "'%s' not recognized as a git repository"
msgstr "'%s' n'est pas reconnu comme dépôt git"
-#: submodule.c:1722
+#: submodule.c:1891
#, c-format
msgid "Could not run 'git status --porcelain=2' in submodule %s"
msgstr "impossible de lancer 'git status --porcelain=2' dans le sous-module %s"
-#: submodule.c:1763
+#: submodule.c:1932
#, c-format
msgid "'git status --porcelain=2' failed in submodule %s"
msgstr "'git status --porcelain=2' a échoué dans le sous-module %s"
-#: submodule.c:1838
+#: submodule.c:2007
#, c-format
msgid "could not start 'git status' in submodule '%s'"
msgstr "impossible de démarrer 'git status' dans le sous-module '%s'"
-#: submodule.c:1851
+#: submodule.c:2020
#, c-format
msgid "could not run 'git status' in submodule '%s'"
msgstr "impossible de lancer 'git status' dans le sous-module '%s'"
-#: submodule.c:1868
+#: submodule.c:2037
#, c-format
msgid "Could not unset core.worktree setting in submodule '%s'"
msgstr "Impossible de désactiver core.worktree dans le sous-module '%s'"
-#: submodule.c:1895 submodule.c:2210
+#: submodule.c:2064 submodule.c:2379
#, c-format
msgid "could not recurse into submodule '%s'"
msgstr "récursion impossible dans le sous-module '%s'"
-#: submodule.c:1917
+#: submodule.c:2086
msgid "could not reset submodule index"
msgstr "impossible de réinitialiser l'index du sous-module"
-#: submodule.c:1959
+#: submodule.c:2128
#, c-format
msgid "submodule '%s' has dirty index"
msgstr "le sous-module '%s' a un index sale"
-#: submodule.c:2013
+#: submodule.c:2182
#, c-format
msgid "Submodule '%s' could not be updated."
msgstr "Le sous-module '%s' n'a pas pu être mis à jour."
-#: submodule.c:2081
+#: submodule.c:2250
#, c-format
msgid "submodule git dir '%s' is inside git dir '%.*s'"
msgstr ""
"le répertoire git du sous-module '%s' est à l'intérieur du répertoire git "
"'%.*s'"
-#: submodule.c:2102
+#: submodule.c:2271
#, c-format
msgid ""
"relocate_gitdir for submodule '%s' with more than one worktree not supported"
@@ -9164,17 +9412,17 @@ msgstr ""
"relocate_gitdir pour le sous-module '%s' avec plus d'un arbre de travail "
"n'est pas supporté"
-#: submodule.c:2114 submodule.c:2174
+#: submodule.c:2283 submodule.c:2343
#, c-format
msgid "could not lookup name for submodule '%s'"
msgstr "impossible de trouve le nom pour le sous-module '%s'"
-#: submodule.c:2118
+#: submodule.c:2287
#, c-format
msgid "refusing to move '%s' into an existing git dir"
msgstr "refus de déplacer '%s' dans une répertoire git existant"
-#: submodule.c:2124
+#: submodule.c:2293
#, c-format
msgid ""
"Migrating git directory of '%s%s' from\n"
@@ -9185,11 +9433,11 @@ msgstr ""
"'%s' sur\n"
"'%s'\n"
-#: submodule.c:2255
+#: submodule.c:2424
msgid "could not start ls-files in .."
msgstr "impossible de démarrer ls-files dans .."
-#: submodule.c:2295
+#: submodule.c:2464
#, c-format
msgid "ls-tree returned unexpected return code %d"
msgstr "ls-tree a renvoyé un code de retour inattendu %d"
@@ -9210,8 +9458,8 @@ msgstr "échec de la commande trailer '%s'"
msgid "unknown value '%s' for key '%s'"
msgstr "valeur inconnue '%s' pour la clé '%s'"
-#: trailer.c:547 trailer.c:552 trailer.c:557 builtin/remote.c:299
-#: builtin/remote.c:327
+#: trailer.c:547 trailer.c:552 trailer.c:557 builtin/remote.c:300
+#: builtin/remote.c:328
#, c-format
msgid "more than one %s"
msgstr "plus d'un %s"
@@ -9226,11 +9474,11 @@ msgstr "symbole vide dans la ligne de fin '%.*s'"
msgid "could not read input file '%s'"
msgstr "impossible de lire le fichier d'entrée '%s'"
-#: trailer.c:766 builtin/mktag.c:89 imap-send.c:1573
+#: trailer.c:766 builtin/mktag.c:88 imap-send.c:1563
msgid "could not read from stdin"
msgstr "impossible de lire depuis l'entrée standard"
-#: trailer.c:1024 wrapper.c:684
+#: trailer.c:1024 wrapper.c:760
#, c-format
msgid "could not stat %s"
msgstr "stat impossible de %s"
@@ -9299,7 +9547,7 @@ msgstr "impossible de lancer fast-import"
msgid "error while running fast-import"
msgstr "erreur au lancement de fast-import"
-#: transport-helper.c:549 transport-helper.c:1251
+#: transport-helper.c:549 transport-helper.c:1254
#, c-format
msgid "could not read ref %s"
msgstr "impossible de lire la réf %s"
@@ -9319,7 +9567,7 @@ msgstr ""
msgid "invalid remote service path"
msgstr "chemin de service distant invalide"
-#: transport-helper.c:661 transport.c:1479
+#: transport-helper.c:661 transport.c:1496
msgid "operation not supported by protocol"
msgstr "option non supportée par le protocole"
@@ -9328,74 +9576,74 @@ msgstr "option non supportée par le protocole"
msgid "can't connect to subservice %s"
msgstr "impossible de se connecter au sous-service %s"
-#: transport-helper.c:693 transport.c:404
+#: transport-helper.c:693 transport.c:415
msgid "--negotiate-only requires protocol v2"
msgstr "--negotiate-only requiert le protocole v2"
-#: transport-helper.c:755
+#: transport-helper.c:758
msgid "'option' without a matching 'ok/error' directive"
msgstr "'option' sans directive 'ok/error' correspondante"
-#: transport-helper.c:798
+#: transport-helper.c:801
#, c-format
msgid "expected ok/error, helper said '%s'"
msgstr "ok/error attendu, l'assistant a dit '%s'"
-#: transport-helper.c:859
+#: transport-helper.c:862
#, c-format
msgid "helper reported unexpected status of %s"
msgstr "l'assistant a renvoyé un statut de retour inattendu %s"
-#: transport-helper.c:942
+#: transport-helper.c:945
#, c-format
msgid "helper %s does not support dry-run"
msgstr "l'assistant %s ne gère pas dry-run"
-#: transport-helper.c:945
+#: transport-helper.c:948
#, c-format
msgid "helper %s does not support --signed"
msgstr "l'assistant %s ne gère pas --signed"
-#: transport-helper.c:948
+#: transport-helper.c:951
#, 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:953
+#: transport-helper.c:956
#, c-format
msgid "helper %s does not support --atomic"
msgstr "l'assistant %s ne gère pas --atomic"
-#: transport-helper.c:957
+#: transport-helper.c:960
#, c-format
msgid "helper %s does not support --%s"
msgstr "l'assistant %s ne gère pas --%s"
-#: transport-helper.c:964
+#: transport-helper.c:967
#, c-format
msgid "helper %s does not support 'push-option'"
msgstr "l'assistant %s ne gère pas 'push-option'"
-#: transport-helper.c:1064
+#: transport-helper.c:1067
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:1069
+#: transport-helper.c:1072
#, c-format
msgid "helper %s does not support 'force'"
msgstr "l'assistant %s ne gère pas 'force'"
-#: transport-helper.c:1116
+#: transport-helper.c:1119
msgid "couldn't run fast-export"
msgstr "impossible de lancer fast-export"
-#: transport-helper.c:1121
+#: transport-helper.c:1124
msgid "error while running fast-export"
msgstr "erreur au lancement de fast-export"
-#: transport-helper.c:1146
+#: transport-helper.c:1149
#, c-format
msgid ""
"No refs in common and none specified; doing nothing.\n"
@@ -9404,52 +9652,52 @@ msgstr ""
"Aucune référence en commun et aucune spécfiée ; rien à faire.\n"
"Vous devriez peut-être spécifier une branche.\n"
-#: transport-helper.c:1228
+#: transport-helper.c:1231
#, c-format
msgid "unsupported object format '%s'"
msgstr "format d'objet non géré '%s'"
-#: transport-helper.c:1237
+#: transport-helper.c:1240
#, c-format
msgid "malformed response in ref list: %s"
msgstr "réponse malformée dans le liste de réfs : %s"
-#: transport-helper.c:1389
+#: transport-helper.c:1392
#, c-format
msgid "read(%s) failed"
msgstr "échec de read(%s)"
-#: transport-helper.c:1416
+#: transport-helper.c:1419
#, c-format
msgid "write(%s) failed"
msgstr "échec de write(%s)"
-#: transport-helper.c:1465
+#: transport-helper.c:1468
#, c-format
msgid "%s thread failed"
msgstr "échec du fil d'exécution %s"
-#: transport-helper.c:1469
+#: transport-helper.c:1472
#, c-format
msgid "%s thread failed to join: %s"
msgstr "échec de jonction du fil d'exécution %s : %s"
-#: transport-helper.c:1488 transport-helper.c:1492
+#: transport-helper.c:1491 transport-helper.c:1495
#, 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:1529
+#: transport-helper.c:1532
#, c-format
msgid "%s process failed to wait"
msgstr "échec du processus %s pour l'attente"
-#: transport-helper.c:1533
+#: transport-helper.c:1536
#, c-format
msgid "%s process failed"
msgstr "échec du processus %s"
-#: transport-helper.c:1551 transport-helper.c:1560
+#: transport-helper.c:1554 transport-helper.c:1563
msgid "can't start thread for copying data"
msgstr "impossible de démarrer le fil d'exécution pour copier les données"
@@ -9458,51 +9706,51 @@ msgstr "impossible de démarrer le fil d'exécution pour copier les données"
msgid "Would set upstream of '%s' to '%s' of '%s'\n"
msgstr "Positionnerait la branche amont de '%s' sur '%s' de '%s'\n"
-#: transport.c:145
+#: transport.c:138
#, c-format
msgid "could not read bundle '%s'"
msgstr "impossible de lire la liasse '%s'"
-#: transport.c:227
+#: transport.c:234
#, c-format
msgid "transport: invalid depth option '%s'"
msgstr "transport : option de profondeur invalide '%s'"
-#: transport.c:279
+#: transport.c:289
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:280
+#: transport.c:290
msgid "server options require protocol version 2 or later"
msgstr "les options de serveur exigent une version 2 ou supérieure"
-#: transport.c:407
+#: transport.c:418
msgid "server does not support wait-for-done"
msgstr "le serveur ne prend pas en charge wait-for-done"
-#: transport.c:759
+#: transport.c:770
msgid "could not parse transport.color.* config"
msgstr "impossible d'analyser la configuration transport.color.*"
-#: transport.c:834
+#: transport.c:845
msgid "support for protocol v2 not implemented yet"
msgstr "le support du protocole v2 n'est pas encore implanté"
-#: transport.c:967
+#: transport.c:978
#, c-format
msgid "unknown value for config '%s': %s"
msgstr "valeur inconnue pour la config '%s' : %s"
-#: transport.c:1033
+#: transport.c:1044
#, c-format
msgid "transport '%s' not allowed"
msgstr "transport '%s' non permis"
-#: transport.c:1082
+#: transport.c:1093
msgid "git-over-rsync is no longer supported"
msgstr "git-over-rsync n'est plus supporté"
-#: transport.c:1185
+#: transport.c:1196
#, c-format
msgid ""
"The following submodule paths contain changes that can\n"
@@ -9511,7 +9759,7 @@ msgstr ""
"Les chemins suivants de sous-module contiennent des modifications\n"
"qui ne peuvent être trouvées sur aucun distant :\n"
-#: transport.c:1189
+#: transport.c:1200
#, c-format
msgid ""
"\n"
@@ -9538,11 +9786,11 @@ msgstr ""
"pour les pousser vers un serveur distant.\n"
"\n"
-#: transport.c:1197
+#: transport.c:1208
msgid "Aborting."
msgstr "Abandon."
-#: transport.c:1343
+#: transport.c:1354
msgid "failed to push all needed submodules"
msgstr "échec de la poussée de tous les sous-modules nécessaires"
@@ -9830,17 +10078,17 @@ msgstr ""
"sensibles à la casse dans une système de fichier insensible) et un\n"
"seul du groupe en collision est dans l'arbre de travail :\n"
-#: unpack-trees.c:1636
+#: unpack-trees.c:1664
msgid "Updating index flags"
msgstr "Mise à jour des drapeaux de l'index"
-#: unpack-trees.c:2803
+#: unpack-trees.c:2925
#, c-format
msgid "worktree and untracked commit have duplicate entries: %s"
msgstr ""
"l'arbre de travail et le commit non suivi ont des entrées dupliquées : %s"
-#: upload-pack.c:1565
+#: upload-pack.c:1579
msgid "expected flush after fetch arguments"
msgstr "vidage attendu après les arguments de récupération"
@@ -9877,128 +10125,142 @@ msgstr "segment de chemin '..' invalide"
msgid "Fetching objects"
msgstr "Récupération des objets"
-#: worktree.c:238 builtin/am.c:2209 builtin/bisect--helper.c:156
+#: worktree.c:237 builtin/am.c:2210 builtin/bisect--helper.c:156
#, c-format
msgid "failed to read '%s'"
msgstr "échec de la lecture de '%s'"
-#: worktree.c:305
+#: worktree.c:304
#, 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:316
+#: worktree.c:315
#, 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:328
+#: worktree.c:327
#, c-format
msgid "'%s' does not exist"
msgstr "'%s' n'existe pas"
-#: worktree.c:334
+#: worktree.c:333
#, 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:343
+#: worktree.c:342
#, c-format
msgid "'%s' does not point back to '%s'"
msgstr "'%s' ne pointe pas en retour sur '%s'"
-#: worktree.c:604
+#: worktree.c:600
msgid "not a directory"
msgstr "pas un répertoire"
-#: worktree.c:613
+#: worktree.c:609
msgid ".git is not a file"
msgstr ".git n'est pas un fichier"
-#: worktree.c:615
+#: worktree.c:611
msgid ".git file broken"
msgstr "fichier .git cassé"
-#: worktree.c:617
+#: worktree.c:613
msgid ".git file incorrect"
msgstr "fichier .git incorrect"
-#: worktree.c:723
+#: worktree.c:719
msgid "not a valid path"
msgstr "pas un chemin valide"
-#: worktree.c:729
+#: worktree.c:725
msgid "unable to locate repository; .git is not a file"
msgstr "impossible de localiser le dépôt ; .git n'est pas un fichier"
-#: worktree.c:733
+#: worktree.c:729
msgid "unable to locate repository; .git file does not reference a repository"
msgstr ""
"impossible de localiser le dépôt ; .git ne fait pas référence à un dépôt"
-#: worktree.c:737
+#: worktree.c:733
msgid "unable to locate repository; .git file broken"
msgstr "impossible de localiser le dépôt ; fichier .git cassé"
-#: worktree.c:743
+#: worktree.c:739
msgid "gitdir unreadable"
msgstr "gitdir non lisible"
-#: worktree.c:747
+#: worktree.c:743
msgid "gitdir incorrect"
msgstr "gitdir incorrect"
-#: worktree.c:772
+#: worktree.c:768
msgid "not a valid directory"
msgstr "pas un répertoire valide"
-#: worktree.c:778
+#: worktree.c:774
msgid "gitdir file does not exist"
msgstr "le fichier gitdir n'existe pas"
-#: worktree.c:783 worktree.c:792
+#: worktree.c:779 worktree.c:788
#, c-format
msgid "unable to read gitdir file (%s)"
msgstr "impossible de lire le fichier gitdir (%s)"
-#: worktree.c:802
+#: worktree.c:798
#, c-format
msgid "short read (expected %<PRIuMAX> bytes, read %<PRIuMAX>)"
msgstr ""
"lecture trop courte ( %<PRIuMAX> octets attendus, %<PRIuMAX> octets lus)"
-#: worktree.c:810
+#: worktree.c:806
msgid "invalid gitdir file"
msgstr "fichier gitdir invalide"
-#: worktree.c:818
+#: worktree.c:814
msgid "gitdir file points to non-existent location"
msgstr "le fichier gitdir pointe sur un endroit inexistant"
-#: wrapper.c:151
+#: worktree.c:830
+#, c-format
+msgid "unable to set %s in '%s'"
+msgstr "impossible de définir la clé %s dans '%s'"
+
+#: worktree.c:832
+#, c-format
+msgid "unable to unset %s in '%s'"
+msgstr "impossible de désinitialiser %s dans '%s'"
+
+#: worktree.c:852
+msgid "failed to set extensions.worktreeConfig setting"
+msgstr "échec de paramétrage extensions.worktreeConfig"
+
+#: wrapper.c:161
#, c-format
msgid "could not setenv '%s'"
msgstr "impossible de configurer l'environnement '%s'"
-#: wrapper.c:203
+#: wrapper.c:213
#, c-format
msgid "unable to create '%s'"
msgstr "impossible de créer '%s'"
-#: wrapper.c:205 wrapper.c:375
+#: wrapper.c:215 wrapper.c:385
#, c-format
msgid "could not open '%s' for reading and writing"
msgstr "impossible d'ouvrir '%s' en lecture/écriture"
-#: wrapper.c:406 wrapper.c:607
+#: wrapper.c:416 wrapper.c:683
#, c-format
msgid "unable to access '%s'"
msgstr "impossible d'accéder à '%s'"
-#: wrapper.c:615
+#: wrapper.c:691
msgid "unable to get current working directory"
msgstr "impossible d'accéder au répertoire de travail courant"
@@ -10035,11 +10297,11 @@ msgstr ""
msgid " (use \"git rm <file>...\" to mark resolution)"
msgstr " (utilisez \"git rm <fichier>...\" pour marquer comme résolu)"
-#: wt-status.c:211 wt-status.c:1131
+#: wt-status.c:211 wt-status.c:1140
msgid "Changes to be committed:"
msgstr "Modifications qui seront validées :"
-#: wt-status.c:234 wt-status.c:1140
+#: wt-status.c:234 wt-status.c:1149
msgid "Changes not staged for commit:"
msgstr "Modifications qui ne seront pas validées :"
@@ -10144,22 +10406,22 @@ msgstr "contenu modifié, "
msgid "untracked content, "
msgstr "contenu non suivi, "
-#: wt-status.c:964
+#: wt-status.c:973
#, c-format
msgid "Your stash currently has %d entry"
msgid_plural "Your stash currently has %d entries"
msgstr[0] "Votre remisage contient actuellement %d entrée"
msgstr[1] "Votre remisage contient actuellement %d entrées"
-#: wt-status.c:995
+#: wt-status.c:1004
msgid "Submodules changed but not updated:"
msgstr "Sous-modules modifiés mais non mis à jour :"
-#: wt-status.c:997
+#: wt-status.c:1006
msgid "Submodule changes to be committed:"
msgstr "Changements du sous-module à valider :"
-#: wt-status.c:1079
+#: wt-status.c:1088
msgid ""
"Do not modify or remove the line above.\n"
"Everything below it will be ignored."
@@ -10167,7 +10429,7 @@ msgstr ""
"Ne touchez pas à la ligne ci-dessus.\n"
"Tout ce qui suit sera éliminé."
-#: wt-status.c:1171
+#: wt-status.c:1180
#, c-format
msgid ""
"\n"
@@ -10179,114 +10441,114 @@ msgstr ""
"de la branche.\n"
"Vous pouvez utiliser '--no-ahead-behind' pour éviter ceci.\n"
-#: wt-status.c:1201
+#: wt-status.c:1210
msgid "You have unmerged paths."
msgstr "Vous avez des chemins non fusionnés."
-#: wt-status.c:1204
+#: wt-status.c:1213
msgid " (fix conflicts and run \"git commit\")"
msgstr " (réglez les conflits puis lancez \"git commit\")"
-#: wt-status.c:1206
+#: wt-status.c:1215
msgid " (use \"git merge --abort\" to abort the merge)"
msgstr " (utilisez \"git merge --abort\" pour annuler la fusion)"
-#: wt-status.c:1210
+#: wt-status.c:1219
msgid "All conflicts fixed but you are still merging."
msgstr "Tous les conflits sont réglés mais la fusion n'est pas terminée."
-#: wt-status.c:1213
+#: wt-status.c:1222
msgid " (use \"git commit\" to conclude merge)"
msgstr " (utilisez \"git commit\" pour terminer la fusion)"
-#: wt-status.c:1224
+#: wt-status.c:1233
msgid "You are in the middle of an am session."
msgstr "Vous êtes au milieu d'une session am."
-#: wt-status.c:1227
+#: wt-status.c:1236
msgid "The current patch is empty."
msgstr "Le patch actuel est vide."
-#: wt-status.c:1232
+#: wt-status.c:1241
msgid " (fix conflicts and then run \"git am --continue\")"
msgstr " (réglez les conflits puis lancez \"git am --continue\")"
-#: wt-status.c:1234
+#: wt-status.c:1243
msgid " (use \"git am --skip\" to skip this patch)"
msgstr " (utilisez \"git am --skip\" pour sauter ce patch)"
-#: wt-status.c:1237
+#: wt-status.c:1246
msgid ""
" (use \"git am --allow-empty\" to record this patch as an empty commit)"
msgstr ""
" (utilisez \"git am --allow-empty\" pour enregistrer la rustine comme un "
"commit vide)"
-#: wt-status.c:1239
+#: wt-status.c:1248
msgid " (use \"git am --abort\" to restore the original branch)"
msgstr " (utilisez \"git am --abort\" pour restaurer la branche d'origine)"
-#: wt-status.c:1372
+#: wt-status.c:1381
msgid "git-rebase-todo is missing."
msgstr "git-rebase-todo est manquant."
-#: wt-status.c:1374
+#: wt-status.c:1383
msgid "No commands done."
msgstr "Aucune commande réalisée."
-#: wt-status.c:1377
+#: wt-status.c:1386
#, c-format
-msgid "Last command done (%d command done):"
-msgid_plural "Last commands done (%d commands done):"
-msgstr[0] "Dernière commande effectuée (%d commande effectuée) :"
-msgstr[1] "Dernières commandes effectuées (%d commandes effectuées) :"
+msgid "Last command done (%<PRIuMAX> command done):"
+msgid_plural "Last commands done (%<PRIuMAX> commands done):"
+msgstr[0] "Dernière commande effectuée (%<PRIuMAX> commande effectuée) :"
+msgstr[1] "Dernières commandes effectuées (%<PRIuMAX> commandes effectuées) :"
-#: wt-status.c:1388
+#: wt-status.c:1397
#, c-format
msgid " (see more in file %s)"
msgstr " (voir plus dans le fichier %s)"
-#: wt-status.c:1393
+#: wt-status.c:1402
msgid "No commands remaining."
msgstr "Aucune commande restante."
-#: wt-status.c:1396
+#: wt-status.c:1405
#, c-format
-msgid "Next command to do (%d remaining command):"
-msgid_plural "Next commands to do (%d remaining commands):"
-msgstr[0] "Prochaine commande à effectuer (%d commande restante) :"
-msgstr[1] "Prochaines commandes à effectuer (%d commandes restantes) :"
+msgid "Next command to do (%<PRIuMAX> remaining command):"
+msgid_plural "Next commands to do (%<PRIuMAX> remaining commands):"
+msgstr[0] "Prochaine commande à effectuer (%<PRIuMAX> commande restante) :"
+msgstr[1] "Prochaines commandes à effectuer (%<PRIuMAX> commandes restantes) :"
-#: wt-status.c:1404
+#: wt-status.c:1413
msgid " (use \"git rebase --edit-todo\" to view and edit)"
msgstr " (utilisez \"git rebase --edit-todo\" pour voir et éditer)"
-#: wt-status.c:1416
+#: wt-status.c:1425
#, c-format
msgid "You are currently rebasing branch '%s' on '%s'."
msgstr "Vous êtes en train de rebaser la branche '%s' sur '%s'."
-#: wt-status.c:1421
+#: wt-status.c:1430
msgid "You are currently rebasing."
msgstr "Vous êtes en train de rebaser."
-#: wt-status.c:1434
+#: wt-status.c:1443
msgid " (fix conflicts and then run \"git rebase --continue\")"
msgstr " (réglez les conflits puis lancez \"git rebase --continue\")"
-#: wt-status.c:1436
+#: wt-status.c:1445
msgid " (use \"git rebase --skip\" to skip this patch)"
msgstr " (utilisez \"git rebase --skip\" pour sauter ce patch)"
-#: wt-status.c:1438
+#: wt-status.c:1447
msgid " (use \"git rebase --abort\" to check out the original branch)"
msgstr " (utilisez \"git rebase --abort\" pour extraire la branche d'origine)"
-#: wt-status.c:1445
+#: wt-status.c:1454
msgid " (all conflicts fixed: run \"git rebase --continue\")"
msgstr " (tous les conflits sont réglés : lancez \"git rebase --continue\")"
-#: wt-status.c:1449
+#: wt-status.c:1458
#, c-format
msgid ""
"You are currently splitting a commit while rebasing branch '%s' on '%s'."
@@ -10294,163 +10556,163 @@ msgstr ""
"Vous êtes actuellement en train de fractionner un commit pendant un rebasage "
"de la branche '%s' sur '%s'."
-#: wt-status.c:1454
+#: wt-status.c:1463
msgid "You are currently splitting a commit during a rebase."
msgstr ""
"Vous êtes actuellement en train de fractionner un commit pendant un rebasage."
-#: wt-status.c:1457
+#: wt-status.c:1466
msgid " (Once your working directory is clean, run \"git rebase --continue\")"
msgstr ""
" (Une fois la copie de travail nettoyée, lancez \"git rebase --continue\")"
-#: wt-status.c:1461
+#: wt-status.c:1470
#, c-format
msgid "You are currently editing a commit while rebasing branch '%s' on '%s'."
msgstr ""
"Vous êtes actuellement en train d'éditer un commit pendant un rebasage de la "
"branche '%s' sur '%s'."
-#: wt-status.c:1466
+#: wt-status.c:1475
msgid "You are currently editing a commit during a rebase."
msgstr ""
"Vous êtes actuellement en train d'éditer un commit pendant un rebasage."
-#: wt-status.c:1469
+#: wt-status.c:1478
msgid " (use \"git commit --amend\" to amend the current commit)"
msgstr " (utilisez \"git commit --amend\" pour corriger le commit actuel)"
-#: wt-status.c:1471
+#: wt-status.c:1480
msgid ""
" (use \"git rebase --continue\" once you are satisfied with your changes)"
msgstr ""
" (utilisez \"git rebase --continue\" quand vous avez effectué toutes vos "
"modifications)"
-#: wt-status.c:1482
+#: wt-status.c:1491
msgid "Cherry-pick currently in progress."
msgstr "Picorage en cours."
-#: wt-status.c:1485
+#: wt-status.c:1494
#, c-format
msgid "You are currently cherry-picking commit %s."
msgstr "Vous êtes actuellement en train de picorer le commit %s."
-#: wt-status.c:1492
+#: wt-status.c:1501
msgid " (fix conflicts and run \"git cherry-pick --continue\")"
msgstr " (réglez les conflits puis lancez \"git cherry-pick --continue\")"
-#: wt-status.c:1495
+#: wt-status.c:1504
msgid " (run \"git cherry-pick --continue\" to continue)"
msgstr " (lancez \"git cherry-pick --continue\" pour continuer)"
-#: wt-status.c:1498
+#: wt-status.c:1507
msgid " (all conflicts fixed: run \"git cherry-pick --continue\")"
msgstr ""
" (tous les conflits sont réglés : lancez \"git cherry-pick --continue\")"
-#: wt-status.c:1500
+#: wt-status.c:1509
msgid " (use \"git cherry-pick --skip\" to skip this patch)"
msgstr " (utilisez \"git cherry-pick --skip\" pour sauter ce patch)"
-#: wt-status.c:1502
+#: wt-status.c:1511
msgid " (use \"git cherry-pick --abort\" to cancel the cherry-pick operation)"
msgstr " (utilisez \"git cherry-pick --abort\" pour annuler le picorage)"
-#: wt-status.c:1512
+#: wt-status.c:1521
msgid "Revert currently in progress."
msgstr "Rétablissement en cours."
-#: wt-status.c:1515
+#: wt-status.c:1524
#, c-format
msgid "You are currently reverting commit %s."
msgstr "Vous êtes actuellement en train de rétablir le commit %s."
-#: wt-status.c:1521
+#: wt-status.c:1530
msgid " (fix conflicts and run \"git revert --continue\")"
msgstr " (réglez les conflits puis lancez \"git revert --continue\")"
-#: wt-status.c:1524
+#: wt-status.c:1533
msgid " (run \"git revert --continue\" to continue)"
msgstr " (lancez \"git revert --continue\" pour continuer)"
-#: wt-status.c:1527
+#: wt-status.c:1536
msgid " (all conflicts fixed: run \"git revert --continue\")"
msgstr " (tous les conflits sont réglés : lancez \"git revert --continue\")"
-#: wt-status.c:1529
+#: wt-status.c:1538
msgid " (use \"git revert --skip\" to skip this patch)"
msgstr " (utilisez \"git revert --skip\" pour sauter ce patch)"
-#: wt-status.c:1531
+#: wt-status.c:1540
msgid " (use \"git revert --abort\" to cancel the revert operation)"
msgstr " (utilisez \"git revert --abort\" pour annuler le rétablissement)"
-#: wt-status.c:1541
+#: wt-status.c:1550
#, c-format
msgid "You are currently bisecting, started from branch '%s'."
msgstr "Vous êtes en cours de bissection, depuis la branche '%s'."
-#: wt-status.c:1545
+#: wt-status.c:1554
msgid "You are currently bisecting."
msgstr "Vous êtes en cours de bissection."
-#: wt-status.c:1548
+#: wt-status.c:1557
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:1559
+#: wt-status.c:1568
msgid "You are in a sparse checkout."
msgstr "Vous êtes dans une extraction clairsemée."
-#: wt-status.c:1562
+#: wt-status.c:1571
#, 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:1806
+#: wt-status.c:1815
msgid "On branch "
msgstr "Sur la branche "
-#: wt-status.c:1813
+#: wt-status.c:1822
msgid "interactive rebase in progress; onto "
msgstr "rebasage interactif en cours ; sur "
-#: wt-status.c:1815
+#: wt-status.c:1824
msgid "rebase in progress; onto "
msgstr "rebasage en cours ; sur "
-#: wt-status.c:1820
+#: wt-status.c:1829
msgid "HEAD detached at "
msgstr "HEAD détachée sur "
-#: wt-status.c:1822
+#: wt-status.c:1831
msgid "HEAD detached from "
msgstr "HEAD détachée depuis "
-#: wt-status.c:1825
+#: wt-status.c:1834
msgid "Not currently on any branch."
msgstr "Actuellement sur aucun branche."
-#: wt-status.c:1842
+#: wt-status.c:1851
msgid "Initial commit"
msgstr "Validation initiale"
-#: wt-status.c:1843
+#: wt-status.c:1852
msgid "No commits yet"
msgstr "Aucun commit"
-#: wt-status.c:1857
+#: wt-status.c:1866
msgid "Untracked files"
msgstr "Fichiers non suivis"
-#: wt-status.c:1859
+#: wt-status.c:1868
msgid "Ignored files"
msgstr "Fichiers ignorés"
-#: wt-status.c:1863
+#: wt-status.c:1872
#, c-format
msgid ""
"It took %.2f seconds to enumerate untracked files. 'status -uno'\n"
@@ -10462,32 +10724,32 @@ msgstr ""
"oublier d'ajouter les nouveaux fichiers par vous-même (voir 'git help "
"status')."
-#: wt-status.c:1869
+#: wt-status.c:1878
#, c-format
msgid "Untracked files not listed%s"
msgstr "Fichiers non suivis non affichés%s"
-#: wt-status.c:1871
+#: wt-status.c:1880
msgid " (use -u option to show untracked files)"
msgstr " (utilisez -u pour afficher les fichiers non suivis)"
-#: wt-status.c:1877
+#: wt-status.c:1886
msgid "No changes"
msgstr "Aucune modification"
-#: wt-status.c:1882
+#: wt-status.c:1891
#, 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:1886
+#: wt-status.c:1895
#, c-format
msgid "no changes added to commit\n"
msgstr "aucune modification ajoutée à la validation\n"
-#: wt-status.c:1890
+#: wt-status.c:1899
#, c-format
msgid ""
"nothing added to commit but untracked files present (use \"git add\" to "
@@ -10496,66 +10758,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:1894
+#: wt-status.c:1903
#, 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:1898
+#: wt-status.c:1907
#, 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:1902 wt-status.c:1908
+#: wt-status.c:1911 wt-status.c:1917
#, c-format
msgid "nothing to commit\n"
msgstr "rien à valider\n"
-#: wt-status.c:1905
+#: wt-status.c:1914
#, 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:1910
+#: wt-status.c:1919
#, c-format
msgid "nothing to commit, working tree clean\n"
msgstr "rien à valider, la copie de travail est propre\n"
-#: wt-status.c:2015
+#: wt-status.c:2024
msgid "No commits yet on "
msgstr "Encore aucun commit sur "
-#: wt-status.c:2019
+#: wt-status.c:2028
msgid "HEAD (no branch)"
msgstr "HEAD (aucune branche)"
-#: wt-status.c:2050
+#: wt-status.c:2059
msgid "different"
msgstr "différent"
-#: wt-status.c:2052 wt-status.c:2060
+#: wt-status.c:2061 wt-status.c:2069
msgid "behind "
msgstr "derrière "
-#: wt-status.c:2055 wt-status.c:2058
+#: wt-status.c:2064 wt-status.c:2067
msgid "ahead "
msgstr "devant "
#. TRANSLATORS: the action is e.g. "pull with rebase"
-#: wt-status.c:2596
+#: wt-status.c:2605
#, c-format
msgid "cannot %s: You have unstaged changes."
msgstr "impossible de %s : vous avez des modifications non indexées."
-#: wt-status.c:2602
+#: wt-status.c:2611
msgid "additionally, your index contains uncommitted changes."
msgstr "de plus, votre index contient des modifications non validées."
-#: wt-status.c:2604
+#: wt-status.c:2613
#, c-format
msgid "cannot %s: Your index contains uncommitted changes."
msgstr "%s impossible : votre index contient des modifications non validées."
@@ -10578,151 +10840,155 @@ msgstr "impossible de démarrer accept_thread '%s'"
msgid "could not start worker[0] for '%s'"
msgstr "impossible de démarrer worker[0] pour '%s'"
-#: compat/precompose_utf8.c:58 builtin/clone.c:347
+#: compat/precompose_utf8.c:58 builtin/clone.c:353
#, c-format
msgid "failed to unlink '%s'"
msgstr "échec pour délier '%s'"
+#: compat/fsmonitor/fsm-listen-darwin.c:355
+msgid "Unable to create FSEventStream."
+msgstr "impossible de créer FSEVEntStream."
+
+#: compat/fsmonitor/fsm-listen-darwin.c:403
+msgid "Failed to start the FSEventStream"
+msgstr "Échec de démarrage de FSEVEntStream"
+
#: builtin/add.c:26
msgid "git add [<options>] [--] <pathspec>..."
msgstr "git add [<options>] [--] <chemin>..."
-#: builtin/add.c:64
+#: builtin/add.c:63
#, c-format
msgid "cannot chmod %cx '%s'"
msgstr "impossible de chmod %cx '%s'"
-#: builtin/add.c:106
+#: builtin/add.c:105
#, c-format
msgid "unexpected diff status %c"
msgstr "état de diff inattendu %c"
-#: builtin/add.c:111 builtin/commit.c:298
+#: builtin/add.c:110 builtin/commit.c:299
msgid "updating files failed"
msgstr "échec de la mise à jour des fichiers"
-#: builtin/add.c:121
+#: builtin/add.c:120
#, c-format
msgid "remove '%s'\n"
msgstr "suppression de '%s'\n"
-#: builtin/add.c:205
+#: builtin/add.c:204
msgid "Unstaged changes after refreshing the index:"
msgstr "Modifications non indexées après rafraîchissement de l'index :"
-#: builtin/add.c:313 builtin/rev-parse.c:993
+#: builtin/add.c:312 builtin/rev-parse.c:993
msgid "Could not read the index"
msgstr "Impossible de lire l'index"
-#: builtin/add.c:326
+#: builtin/add.c:325
msgid "Could not write patch"
msgstr "Impossible d'écrire le patch"
-#: builtin/add.c:329
+#: builtin/add.c:328
msgid "editing patch failed"
msgstr "échec de l'édition du patch"
-#: builtin/add.c:332
+#: builtin/add.c:331
#, c-format
msgid "Could not stat '%s'"
msgstr "Stat de '%s' impossible"
-#: builtin/add.c:334
+#: builtin/add.c:333
msgid "Empty patch. Aborted."
msgstr "Patch vide. Abandon."
-#: builtin/add.c:340
+#: builtin/add.c:339
#, c-format
msgid "Could not apply '%s'"
msgstr "Impossible d'appliquer '%s'"
-#: builtin/add.c:348
+#: builtin/add.c:347
msgid "The following paths are ignored by one of your .gitignore files:\n"
msgstr ""
"Les chemins suivants sont ignorés par un de vos fichiers .gitignore :\n"
-#: builtin/add.c:368 builtin/clean.c:927 builtin/fetch.c:174 builtin/mv.c:124
+#: builtin/add.c:367 builtin/clean.c:927 builtin/fetch.c:175 builtin/mv.c:124
#: builtin/prune-packed.c:14 builtin/pull.c:208 builtin/push.c:550
-#: builtin/remote.c:1429 builtin/rm.c:244 builtin/send-pack.c:194
+#: builtin/remote.c:1454 builtin/rm.c:244 builtin/send-pack.c:194
msgid "dry run"
msgstr "simuler l'action"
-#: builtin/add.c:369 builtin/check-ignore.c:22 builtin/commit.c:1484
-#: builtin/count-objects.c:98 builtin/fsck.c:789 builtin/log.c:2313
+#: builtin/add.c:368 builtin/check-ignore.c:22 builtin/commit.c:1483
+#: builtin/count-objects.c:98 builtin/fsck.c:789 builtin/log.c:2338
#: builtin/mv.c:123 builtin/read-tree.c:120
msgid "be verbose"
msgstr "mode verbeux"
-#: builtin/add.c:371
+#: builtin/add.c:370
msgid "interactive picking"
msgstr "sélection interactive"
-#: builtin/add.c:372 builtin/checkout.c:1581 builtin/reset.c:409
+#: builtin/add.c:371 builtin/checkout.c:1599 builtin/reset.c:417
msgid "select hunks interactively"
msgstr "sélection interactive des sections"
-#: builtin/add.c:373
+#: builtin/add.c:372
msgid "edit current diff and apply"
msgstr "édition du diff actuel et application"
-#: builtin/add.c:374
+#: builtin/add.c:373
msgid "allow adding otherwise ignored files"
msgstr "permettre l'ajout de fichiers ignorés"
-#: builtin/add.c:375
+#: builtin/add.c:374
msgid "update tracked files"
msgstr "mettre à jour les fichiers suivis"
-#: builtin/add.c:376
+#: builtin/add.c:375
msgid "renormalize EOL of tracked files (implies -u)"
msgstr ""
"renormaliser les fins de lignes (EOL) des fichiers suivis (implique -u)"
-#: builtin/add.c:377
+#: builtin/add.c:376
msgid "record only the fact that the path will be added later"
msgstr "enregistrer seulement le fait que le chemin sera ajouté plus tard"
-#: builtin/add.c:378
+#: builtin/add.c:377
msgid "add changes from all tracked and untracked files"
msgstr "ajouter les modifications de tous les fichiers suivis et non suivis"
-#: builtin/add.c:381
+#: builtin/add.c:380
msgid "ignore paths removed in the working tree (same as --no-all)"
msgstr ""
"ignorer les chemins effacés dans la copie de travail (identique à --no-all)"
-#: builtin/add.c:383
+#: builtin/add.c:382
msgid "don't add, only refresh the index"
msgstr "ne pas ajouter, juste rafraîchir l'index"
-#: builtin/add.c:384
+#: builtin/add.c:383
msgid "just skip files which cannot be added because of errors"
msgstr ""
"sauter seulement les fichiers qui ne peuvent pas être ajoutés du fait "
"d'erreurs"
-#: builtin/add.c:385
+#: builtin/add.c:384
msgid "check if - even missing - files are ignored in dry run"
msgstr "vérifier si des fichiers - même manquants - sont ignorés, à vide"
-#: builtin/add.c:386 builtin/mv.c:128 builtin/rm.c:251
+#: builtin/add.c:385 builtin/mv.c:128 builtin/rm.c:251
msgid "allow updating entries outside of the sparse-checkout cone"
msgstr ""
"permettre la mise à jour des entrées hors du cone d'extraction clairsemée"
-#: builtin/add.c:388 builtin/update-index.c:1004
+#: builtin/add.c:387 builtin/update-index.c:1023
msgid "override the executable bit of the listed files"
msgstr "outrepasser le bit exécutable pour les fichiers listés"
-#: builtin/add.c:390
+#: builtin/add.c:389
msgid "warn when adding an embedded repository"
msgstr "avertir lors de l'ajout d'un dépôt embarqué"
-#: builtin/add.c:392
-msgid "backend for `git stash -p`"
-msgstr "backend pour `git stash -p`"
-
-#: builtin/add.c:410
+#: builtin/add.c:407
#, c-format
msgid ""
"You've added another git repository inside your current repository.\n"
@@ -10753,12 +11019,12 @@ msgstr ""
"\n"
"Référez-vous à \"git help submodule\" pour plus d'information."
-#: builtin/add.c:439
+#: builtin/add.c:436
#, c-format
msgid "adding embedded git repository: %s"
msgstr "dépôt git embarqué ajouté : %s"
-#: builtin/add.c:459
+#: builtin/add.c:456
msgid ""
"Use -f if you really want to add them.\n"
"Turn this message off by running\n"
@@ -10768,29 +11034,29 @@ msgstr ""
"Éliminez ce message en lançant\n"
"\"git config advice.addIgnoredFile false\""
-#: builtin/add.c:474
+#: builtin/add.c:471
msgid "adding files failed"
msgstr "échec de l'ajout de fichiers"
-#: builtin/add.c:548
+#: builtin/add.c:534
#, c-format
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:569 builtin/checkout.c:1751 builtin/commit.c:364
-#: builtin/reset.c:429 builtin/rm.c:275 builtin/stash.c:1713
+#: builtin/add.c:555 builtin/checkout.c:1770 builtin/commit.c:365
+#: builtin/reset.c:436 builtin/rm.c:275 builtin/stash.c:1702
#, c-format
msgid "'%s' and pathspec arguments cannot be used together"
msgstr ""
"'%s' et les arguments de spécificateur de chemin ne peuvent pas être "
"utilisés ensemble"
-#: builtin/add.c:580
+#: builtin/add.c:566
#, c-format
msgid "Nothing specified, nothing added.\n"
msgstr "Rien de spécifié, rien n'a été ajouté.\n"
-#: builtin/add.c:582
+#: builtin/add.c:568
msgid ""
"Maybe you wanted to say 'git add .'?\n"
"Turn this message off by running\n"
@@ -10800,120 +11066,115 @@ msgstr ""
"Éliminez ce message en lançant\n"
"\"git config advice.addEmptyPathspec false\""
-#: builtin/am.c:202
-#, c-format
-msgid "Invalid value for --empty: %s"
-msgstr "Valeur invalide pour --empty : %s"
-
-#: builtin/am.c:392
+#: builtin/am.c:393
msgid "could not parse author script"
msgstr "impossible d'analyser l'auteur du script"
-#: builtin/am.c:482
+#: builtin/am.c:483
#, c-format
msgid "'%s' was deleted by the applypatch-msg hook"
msgstr "'%s' a été effacé par le crochet applypatch-msg"
-#: builtin/am.c:524
+#: builtin/am.c:525
#, c-format
msgid "Malformed input line: '%s'."
msgstr "Ligne en entrée malformée : '%s'."
-#: builtin/am.c:562
+#: builtin/am.c:563
#, c-format
msgid "Failed to copy notes from '%s' to '%s'"
msgstr "Impossible de copier les notes de '%s' vers '%s'"
-#: builtin/am.c:588
+#: builtin/am.c:589
msgid "fseek failed"
msgstr "échec de fseek"
-#: builtin/am.c:776
+#: builtin/am.c:777
#, c-format
msgid "could not parse patch '%s'"
msgstr "impossible d'analyser le patch '%s'"
-#: builtin/am.c:841
+#: builtin/am.c:842
msgid "Only one StGIT patch series can be applied at once"
msgstr "Seulement une série de patchs StGIT peut être appliquée à la fois"
-#: builtin/am.c:889
+#: builtin/am.c:890
msgid "invalid timestamp"
msgstr "horodatage invalide"
-#: builtin/am.c:894 builtin/am.c:906
+#: builtin/am.c:895 builtin/am.c:907
msgid "invalid Date line"
msgstr "ligne de Date invalide"
-#: builtin/am.c:901
+#: builtin/am.c:902
msgid "invalid timezone offset"
msgstr "décalage horaire invalide"
-#: builtin/am.c:994
+#: builtin/am.c:995
msgid "Patch format detection failed."
msgstr "Échec de détection du format du patch."
-#: builtin/am.c:999 builtin/clone.c:300
+#: builtin/am.c:1000 builtin/clone.c:306
#, c-format
msgid "failed to create directory '%s'"
msgstr "échec de la création du répertoire '%s'"
-#: builtin/am.c:1004
+#: builtin/am.c:1005
msgid "Failed to split patches."
msgstr "Échec de découpage des patchs."
-#: builtin/am.c:1153
+#: builtin/am.c:1154
#, c-format
msgid "When you have resolved this problem, run \"%s --continue\"."
msgstr "Quand vous avez résolu ce problème, lancez \"%s --continue\"."
-#: builtin/am.c:1154
+#: builtin/am.c:1155
#, c-format
msgid "If you prefer to skip this patch, run \"%s --skip\" instead."
msgstr "Si vous préférez plutôt sauter ce patch, lancez \"%s --skip\"."
-#: builtin/am.c:1159
+#: builtin/am.c:1160
#, c-format
msgid "To record the empty patch as an empty commit, run \"%s --allow-empty\"."
msgstr ""
"Pour enregistrer la rustine vide comme un commit vide, lancez \"%s --allow-"
"empty\"."
-#: builtin/am.c:1161
+#: builtin/am.c:1162
#, c-format
msgid "To restore the original branch and stop patching, run \"%s --abort\"."
msgstr ""
"Pour restaurer la branche originale et arrêter de patcher, lancez \"%s --"
"abort\"."
-#: builtin/am.c:1256
+#: builtin/am.c:1257
msgid "Patch sent with format=flowed; space at the end of lines might be lost."
msgstr ""
"Rustine envoyée avec format=flowed ; les espaces en fin de ligne peuvent "
"être perdus."
-#: builtin/am.c:1344
+#: builtin/am.c:1345
#, c-format
msgid "missing author line in commit %s"
msgstr "ligne d'auteur manquante dans le commit %s"
-#: builtin/am.c:1347
+#: builtin/am.c:1348
#, c-format
msgid "invalid ident line: %.*s"
msgstr "ligne d'identification invalide : %.*s"
-#: builtin/am.c:1566
+#: builtin/am.c:1567
msgid "Repository lacks necessary blobs to fall back on 3-way merge."
msgstr ""
"Le dépôt n'a pas les blobs nécessaires pour un retour à une fusion à 3 "
"points."
-#: builtin/am.c:1568
+#: builtin/am.c:1569
msgid "Using index info to reconstruct a base tree..."
msgstr ""
"Utilisation de l'information de l'index pour reconstruire un arbre de base..."
-#: builtin/am.c:1587
+#: builtin/am.c:1588
msgid ""
"Did you hand edit your patch?\n"
"It does not apply to blobs recorded in its index."
@@ -10921,24 +11182,24 @@ msgstr ""
"Avez-vous édité le patch à la main ?\n"
"Il ne s'applique pas aux blobs enregistrés dans son index."
-#: builtin/am.c:1593
+#: builtin/am.c:1594
msgid "Falling back to patching base and 3-way merge..."
msgstr "Retour à un patch de la base et fusion à 3 points..."
-#: builtin/am.c:1619
+#: builtin/am.c:1620
msgid "Failed to merge in the changes."
msgstr "Échec d'intégration des modifications."
-#: builtin/am.c:1651
+#: builtin/am.c:1652
msgid "applying to an empty history"
msgstr "application à un historique vide"
-#: builtin/am.c:1703 builtin/am.c:1707
+#: builtin/am.c:1704 builtin/am.c:1708
#, c-format
msgid "cannot resume: %s does not exist."
msgstr "impossible de continuer : %s n'existe pas."
-#: builtin/am.c:1725
+#: builtin/am.c:1726
msgid "Commit Body is:"
msgstr "Le corps de la validation est :"
@@ -10946,58 +11207,58 @@ msgstr "Le corps de la validation est :"
#. in your translation. The program will only accept English
#. input at this point.
#.
-#: builtin/am.c:1735
+#: builtin/am.c:1736
#, c-format
msgid "Apply? [y]es/[n]o/[e]dit/[v]iew patch/[a]ccept all: "
msgstr "Appliquer ? [y]es/[n]o/[e]dit/[v]iew patch/[a]ccept all : "
-#: builtin/am.c:1781 builtin/commit.c:409
+#: builtin/am.c:1782 builtin/commit.c:410
msgid "unable to write index file"
msgstr "impossible d'écrire le fichier d'index"
-#: builtin/am.c:1785
+#: builtin/am.c:1786
#, c-format
msgid "Dirty index: cannot apply patches (dirty: %s)"
msgstr "Index sale : impossible d'appliquer des patchs (sales : %s)"
-#: builtin/am.c:1827
+#: builtin/am.c:1828
#, c-format
msgid "Skipping: %.*s"
msgstr "Ignoré : %.*s"
-#: builtin/am.c:1832
+#: builtin/am.c:1833
#, c-format
msgid "Creating an empty commit: %.*s"
msgstr "Création d'un commit vide : %.*s"
-#: builtin/am.c:1836
+#: builtin/am.c:1837
msgid "Patch is empty."
msgstr "Le patch actuel est vide."
-#: builtin/am.c:1847 builtin/am.c:1916
+#: builtin/am.c:1848 builtin/am.c:1917
#, c-format
msgid "Applying: %.*s"
msgstr "Application de %.*s"
-#: builtin/am.c:1864
+#: builtin/am.c:1865
msgid "No changes -- Patch already applied."
msgstr "Pas de changement -- Patch déjà appliqué."
-#: builtin/am.c:1870
+#: builtin/am.c:1871
#, c-format
msgid "Patch failed at %s %.*s"
msgstr "l'application de la rustine a échoué à %s %.*s"
-#: builtin/am.c:1874
+#: builtin/am.c:1875
msgid "Use 'git am --show-current-patch=diff' to see the failed patch"
msgstr ""
"Utilisez 'git am --show-current-patch=diff' pour visualiser le patch en échec"
-#: builtin/am.c:1920
+#: builtin/am.c:1921
msgid "No changes - recorded it as an empty commit."
msgstr "aucune modification - enregistré comme un commit vide."
-#: builtin/am.c:1922
+#: builtin/am.c:1923
msgid ""
"No changes - did you forget to use 'git add'?\n"
"If there is nothing left to stage, chances are that something else\n"
@@ -11008,7 +11269,7 @@ msgstr ""
"introduit les mêmes changements ; vous pourriez avoir envie de sauter ce "
"patch."
-#: builtin/am.c:1930
+#: builtin/am.c:1931
msgid ""
"You still have unmerged paths in your index.\n"
"You should 'git add' each file with resolved conflicts to mark them as "
@@ -11021,17 +11282,17 @@ msgstr ""
"Vous pouvez lancer 'git rm' sur un fichier \"supprimé par eux\" pour "
"accepter son état."
-#: builtin/am.c:2038 builtin/am.c:2042 builtin/am.c:2054 builtin/reset.c:448
-#: builtin/reset.c:456
+#: builtin/am.c:2039 builtin/am.c:2043 builtin/am.c:2055 builtin/reset.c:455
+#: builtin/reset.c:463
#, c-format
msgid "Could not parse object '%s'."
msgstr "Impossible d'analyser l'objet '%s'."
-#: builtin/am.c:2090 builtin/am.c:2166
+#: builtin/am.c:2091 builtin/am.c:2167
msgid "failed to clean index"
msgstr "échec du nettoyage de l'index"
-#: builtin/am.c:2134
+#: builtin/am.c:2135
msgid ""
"You seem to have moved HEAD since the last 'am' failure.\n"
"Not rewinding to ORIG_HEAD"
@@ -11039,168 +11300,159 @@ msgstr ""
"Vous semblez avoir déplacé la HEAD depuis le dernier échec de 'am'.\n"
"Pas de retour à ORIG_HEAD"
-#: builtin/am.c:2242
-#, c-format
-msgid "Invalid value for --patch-format: %s"
-msgstr "Valeur invalide pour --patch-format : %s"
-
-#: builtin/am.c:2285
-#, c-format
-msgid "Invalid value for --show-current-patch: %s"
-msgstr "Valeur invalide pour --show-current-patch : %s"
-
-#: builtin/am.c:2289
+#: builtin/am.c:2292
#, c-format
msgid "options '%s=%s' and '%s=%s' cannot be used together"
msgstr "les options '%s=%s' et '%s=%s' ne peuvent pas être utilisées ensemble"
-#: builtin/am.c:2320
+#: builtin/am.c:2323
msgid "git am [<options>] [(<mbox> | <Maildir>)...]"
msgstr "git am [<options>] [(<mbox> | <Maildir>)...]"
-#: builtin/am.c:2321
+#: builtin/am.c:2324
msgid "git am [<options>] (--continue | --skip | --abort)"
msgstr "git am [<options>] (--continue | --skip | --abort)"
-#: builtin/am.c:2327
+#: builtin/am.c:2330
msgid "run interactively"
msgstr "exécution interactive"
-#: builtin/am.c:2329
+#: builtin/am.c:2332
msgid "historical option -- no-op"
msgstr "option historique -- no-op"
-#: builtin/am.c:2331
+#: builtin/am.c:2334
msgid "allow fall back on 3way merging if needed"
msgstr "permettre de revenir à une fusion à 3 points si nécessaire"
-#: builtin/am.c:2332 builtin/init-db.c:547 builtin/prune-packed.c:16
-#: builtin/repack.c:642 builtin/stash.c:962
+#: builtin/am.c:2335 builtin/init-db.c:547 builtin/prune-packed.c:16
+#: builtin/repack.c:646 builtin/stash.c:946
msgid "be quiet"
msgstr "être silencieux"
-#: builtin/am.c:2334
+#: builtin/am.c:2337
msgid "add a Signed-off-by trailer to the commit message"
msgstr "ajouter une ligne terminale Signed-off-by au message de validation"
-#: builtin/am.c:2337
+#: builtin/am.c:2340
msgid "recode into utf8 (default)"
msgstr "recoder en utf-8 (par défaut)"
-#: builtin/am.c:2339
+#: builtin/am.c:2342
msgid "pass -k flag to git-mailinfo"
msgstr "passer l'option -k à git-mailinfo"
-#: builtin/am.c:2341
+#: builtin/am.c:2344
msgid "pass -b flag to git-mailinfo"
msgstr "passer l'option -b à git-mailinfo"
-#: builtin/am.c:2343
+#: builtin/am.c:2346
msgid "pass -m flag to git-mailinfo"
msgstr "passer l'option -m à git-mailinfo"
-#: builtin/am.c:2345
+#: builtin/am.c:2348
msgid "pass --keep-cr flag to git-mailsplit for mbox format"
msgstr "passer l'option --keep-cr à git-mailsplit fpour le format mbox"
-#: builtin/am.c:2348
+#: builtin/am.c:2351
msgid "do not pass --keep-cr flag to git-mailsplit independent of am.keepcr"
msgstr ""
"ne pas passer l'option --keep-cr à git-mailsplit indépendamment de am.keepcr"
-#: builtin/am.c:2351
+#: builtin/am.c:2354
msgid "strip everything before a scissors line"
msgstr "retirer tout le contenu avant la ligne des ciseaux"
-#: builtin/am.c:2353
+#: builtin/am.c:2356
msgid "pass it through git-mailinfo"
msgstr "le passer à travers git-mailinfo"
-#: builtin/am.c:2356 builtin/am.c:2359 builtin/am.c:2362 builtin/am.c:2365
-#: builtin/am.c:2368 builtin/am.c:2371 builtin/am.c:2374 builtin/am.c:2377
-#: builtin/am.c:2383
+#: builtin/am.c:2359 builtin/am.c:2362 builtin/am.c:2365 builtin/am.c:2368
+#: builtin/am.c:2371 builtin/am.c:2374 builtin/am.c:2377 builtin/am.c:2380
+#: builtin/am.c:2386
msgid "pass it through git-apply"
msgstr "le passer jusqu'à git-apply"
-#: builtin/am.c:2373 builtin/commit.c:1515 builtin/fmt-merge-msg.c:18
-#: builtin/fmt-merge-msg.c:21 builtin/grep.c:919 builtin/merge.c:263
+#: builtin/am.c:2376 builtin/commit.c:1514 builtin/fmt-merge-msg.c:18
+#: builtin/fmt-merge-msg.c:21 builtin/grep.c:920 builtin/merge.c:263
#: builtin/pull.c:142 builtin/pull.c:204 builtin/pull.c:221
-#: builtin/rebase.c:1046 builtin/repack.c:653 builtin/repack.c:657
-#: builtin/repack.c:659 builtin/show-branch.c:649 builtin/show-ref.c:172
-#: builtin/tag.c:445 parse-options.h:154 parse-options.h:175
-#: parse-options.h:317
+#: builtin/rebase.c:1074 builtin/repack.c:657 builtin/repack.c:661
+#: builtin/repack.c:663 builtin/show-branch.c:650 builtin/show-ref.c:172
+#: builtin/tag.c:446 parse-options.h:159 parse-options.h:180
+#: parse-options.h:348
msgid "n"
msgstr "n"
-#: builtin/am.c:2379 builtin/branch.c:680 builtin/bugreport.c:109
-#: builtin/for-each-ref.c:41 builtin/replace.c:555 builtin/tag.c:479
-#: builtin/verify-tag.c:38
+#: builtin/am.c:2382 builtin/branch.c:695 builtin/bugreport.c:109
+#: builtin/cat-file.c:848 builtin/cat-file.c:852 builtin/cat-file.c:856
+#: builtin/for-each-ref.c:41 builtin/ls-tree.c:357 builtin/replace.c:555
+#: builtin/tag.c:480 builtin/verify-tag.c:38
msgid "format"
msgstr "format"
-#: builtin/am.c:2380
+#: builtin/am.c:2383
msgid "format the patch(es) are in"
msgstr "format de présentation des patchs"
-#: builtin/am.c:2386
+#: builtin/am.c:2389
msgid "override error message when patch failure occurs"
msgstr "surcharger le message d'erreur lors d'un échec d'application de patch"
-#: builtin/am.c:2388
+#: builtin/am.c:2391
msgid "continue applying patches after resolving a conflict"
msgstr "continuer à appliquer les patchs après résolution d'un conflit"
-#: builtin/am.c:2391
+#: builtin/am.c:2394
msgid "synonyms for --continue"
msgstr "synonymes de --continue"
-#: builtin/am.c:2394
+#: builtin/am.c:2397
msgid "skip the current patch"
msgstr "sauter le patch courant"
-#: builtin/am.c:2397
+#: builtin/am.c:2400
msgid "restore the original branch and abort the patching operation"
msgstr "restaurer la branche originale et abandonner les applications de patch"
-#: builtin/am.c:2400
+#: builtin/am.c:2403
msgid "abort the patching operation but keep HEAD where it is"
msgstr "abandonne l'opération de patch mais garde HEAD où il est"
-#: builtin/am.c:2404
+#: builtin/am.c:2407
msgid "show the patch being applied"
msgstr "afficher le patch en cours d'application"
-#: builtin/am.c:2408
+#: builtin/am.c:2411
msgid "record the empty patch as an empty commit"
msgstr "enregistrer la rustine vide comme un commit vide"
-#: builtin/am.c:2412
+#: builtin/am.c:2415
msgid "lie about committer date"
msgstr "mentir sur la date de validation"
-#: builtin/am.c:2414
+#: builtin/am.c:2417
msgid "use current timestamp for author date"
msgstr "utiliser l'horodatage actuel pour la date d'auteur"
-#: builtin/am.c:2416 builtin/commit-tree.c:118 builtin/commit.c:1643
-#: builtin/merge.c:302 builtin/pull.c:179 builtin/rebase.c:1099
-#: builtin/revert.c:117 builtin/tag.c:460
+#: builtin/am.c:2419 builtin/commit-tree.c:118 builtin/commit.c:1642
+#: builtin/merge.c:302 builtin/pull.c:179 builtin/rebase.c:1127
+#: builtin/revert.c:117 builtin/tag.c:461
msgid "key-id"
msgstr "id-clé"
-#: builtin/am.c:2417 builtin/rebase.c:1100
+#: builtin/am.c:2420 builtin/rebase.c:1128
msgid "GPG-sign commits"
msgstr "signer les commits avec GPG"
-#: builtin/am.c:2420
+#: builtin/am.c:2423
msgid "how to handle empty patches"
msgstr "comment gérer les rustines vides"
-#: builtin/am.c:2423
+#: builtin/am.c:2426
msgid "(internal use for git-rebase)"
msgstr "(utilisation interne pour git-rebase)"
-#: builtin/am.c:2441
+#: builtin/am.c:2444
msgid ""
"The -b/--binary option has been a no-op for long time, and\n"
"it will be removed. Please do not use it anymore."
@@ -11208,17 +11460,17 @@ msgstr ""
"L'option -b/--binary ne fait plus rien depuis longtemps,\n"
"et elle sera supprimée. Veuillez ne plus l'utiliser."
-#: builtin/am.c:2448
+#: builtin/am.c:2451
msgid "failed to read the index"
msgstr "échec à la lecture de l'index"
-#: builtin/am.c:2463
+#: builtin/am.c:2466
#, c-format
msgid "previous rebase directory %s still exists but mbox given."
msgstr ""
"le répertoire précédent de rebasage %s existe toujours mais mbox donnée."
-#: builtin/am.c:2487
+#: builtin/am.c:2490
#, c-format
msgid ""
"Stray %s directory found.\n"
@@ -11227,13 +11479,13 @@ msgstr ""
"Répertoire abandonné %s trouvé.\n"
"Utilisez \"git am --abort\" pour le supprimer."
-#: builtin/am.c:2493
+#: builtin/am.c:2496
msgid "Resolve operation not in progress, we are not resuming."
msgstr ""
"Pas de résolution de l'opération en cours, nous ne sommes pas dans une "
"reprise."
-#: builtin/am.c:2503
+#: builtin/am.c:2506
msgid "interactive mode requires patches on the command line"
msgstr "le mode interactif requiert des rustines sur la ligne de commande"
@@ -11270,14 +11522,6 @@ msgstr "git archive : vidage attendu"
msgid "git bisect--helper --bisect-reset [<commit>]"
msgstr "git bisect--helper --bisect-reset [<commit>]"
-#: builtin/bisect--helper.c:25
-msgid ""
-"git bisect--helper --bisect-terms [--term-good | --term-old | --term-bad | --"
-"term-new]"
-msgstr ""
-"git bisect--helper --bisect-terms [--term-good | --term-old | --term-bad | --"
-"term-new]"
-
#: builtin/bisect--helper.c:26
msgid ""
"git bisect--helper --bisect-start [--term-{new,bad}=<term> --term-{old,good}"
@@ -11288,10 +11532,6 @@ msgstr ""
"=<terme>][--no-checkout] [--first-parent] [<mauvais> [<bon>...]] [--] "
"[<chemins>...]"
-#: builtin/bisect--helper.c:28
-msgid "git bisect--helper --bisect-next"
-msgstr "git bisect--helper --bisect-next"
-
#: builtin/bisect--helper.c:29
msgid "git bisect--helper --bisect-state (bad|new) [<rev>]"
msgstr "git bisect--helper --bisect-state (bad|new) [<rév>]"
@@ -11308,10 +11548,6 @@ msgstr "git bisect--helper --bisect-replay <nom-de-fichier>"
msgid "git bisect--helper --bisect-skip [(<rev>|<range>)...]"
msgstr "git bisect--helper --bisect-skip [(<rév>|<plage>)...]"
-#: builtin/bisect--helper.c:33
-msgid "git bisect--helper --bisect-visualize"
-msgstr "git bisect--helper --bisect-visualize"
-
#: builtin/bisect--helper.c:34
msgid "git bisect--helper --bisect-run <cmd>..."
msgstr "git bisect--helper --bisect-run <cmd>..."
@@ -11535,40 +11771,50 @@ msgstr "'%s' ?? de quoi parlez-vous ?"
msgid "cannot read file '%s' for replaying"
msgstr "impossible de lire le fichier '%s' pour rejouer"
-#: builtin/bisect--helper.c:1107 builtin/bisect--helper.c:1274
+#: builtin/bisect--helper.c:1120 builtin/bisect--helper.c:1152
+#, c-format
+msgid "running %s\n"
+msgstr "Lancement de %s\n"
+
+#: builtin/bisect--helper.c:1145 builtin/bisect--helper.c:1335
msgid "bisect run failed: no command provided."
msgstr "la bissection a échoué : aucune commande fournie."
-#: builtin/bisect--helper.c:1116
+#: builtin/bisect--helper.c:1166
#, c-format
-msgid "running %s\n"
-msgstr "Lancement de %s\n"
+msgid "unable to verify '%s' on good revision"
+msgstr "impossible de vérifier '%s' sur une bonne révision"
+
+#: builtin/bisect--helper.c:1172
+#, c-format
+msgid "bogus exit code %d for good revision"
+msgstr "code de sortie %d erroné pour une bonne révision"
-#: builtin/bisect--helper.c:1120
+#: builtin/bisect--helper.c:1180
#, c-format
msgid "bisect run failed: exit code %d from '%s' is < 0 or >= 128"
msgstr "la bissection a échoué : le code retour %d de '%s' est < 0 ou >= 128"
-#: builtin/bisect--helper.c:1136
+#: builtin/bisect--helper.c:1195
#, c-format
msgid "cannot open file '%s' for writing"
msgstr "impossible d'ouvrir '%s' en écriture"
-#: builtin/bisect--helper.c:1152
+#: builtin/bisect--helper.c:1213
msgid "bisect run cannot continue any more"
msgstr "la bissection ne peut plus continuer"
-#: builtin/bisect--helper.c:1154
+#: builtin/bisect--helper.c:1215
#, c-format
msgid "bisect run success"
msgstr "succès de la bissection"
-#: builtin/bisect--helper.c:1157
+#: builtin/bisect--helper.c:1218
#, c-format
msgid "bisect found first bad commit"
msgstr "la bissection a trouvé le premier mauvais commit"
-#: builtin/bisect--helper.c:1160
+#: builtin/bisect--helper.c:1221
#, c-format
msgid ""
"bisect run failed: 'git bisect--helper --bisect-state %s' exited with error "
@@ -11577,71 +11823,71 @@ msgstr ""
"la bissection a échoué : 'git bisect--helper --bisect-state %s' a retourné "
"le code erreur %d"
-#: builtin/bisect--helper.c:1192
+#: builtin/bisect--helper.c:1253
msgid "reset the bisection state"
msgstr "réinitialiser l'état de la bissection"
-#: builtin/bisect--helper.c:1194
+#: builtin/bisect--helper.c:1255
msgid "check whether bad or good terms exist"
msgstr "vérifier si les termes bons ou mauvais existent"
-#: builtin/bisect--helper.c:1196
+#: builtin/bisect--helper.c:1257
msgid "print out the bisect terms"
msgstr "afficher les termes de bissection"
-#: builtin/bisect--helper.c:1198
+#: builtin/bisect--helper.c:1259
msgid "start the bisect session"
msgstr "démarrer une session de bissection"
-#: builtin/bisect--helper.c:1200
+#: builtin/bisect--helper.c:1261
msgid "find the next bisection commit"
msgstr "trouver le prochain commit de bissection"
-#: builtin/bisect--helper.c:1202
+#: builtin/bisect--helper.c:1263
msgid "mark the state of ref (or refs)"
msgstr "marquer l'état d'une références (ou plusieurs)"
-#: builtin/bisect--helper.c:1204
+#: builtin/bisect--helper.c:1265
msgid "list the bisection steps so far"
msgstr "lister les étapes de bissection jusqu'ici"
-#: builtin/bisect--helper.c:1206
+#: builtin/bisect--helper.c:1267
msgid "replay the bisection process from the given file"
msgstr "rejouer le processus de bissection depuis le fichier fourni"
-#: builtin/bisect--helper.c:1208
+#: builtin/bisect--helper.c:1269
msgid "skip some commits for checkout"
msgstr "sauter certains commits pour l'extraction"
-#: builtin/bisect--helper.c:1210
+#: builtin/bisect--helper.c:1271
msgid "visualize the bisection"
msgstr "visualiser la bissection"
-#: builtin/bisect--helper.c:1212
-msgid "use <cmd>... to automatically bisect."
-msgstr "utiliser <cmd>... pour bissecter automatiquement."
+#: builtin/bisect--helper.c:1273
+msgid "use <cmd>... to automatically bisect"
+msgstr "utiliser <cmd>... pour bissecter automatiquement"
-#: builtin/bisect--helper.c:1214
+#: builtin/bisect--helper.c:1275
msgid "no log for BISECT_WRITE"
msgstr "pas de journal pour BISECT_WRITE"
-#: builtin/bisect--helper.c:1229
+#: builtin/bisect--helper.c:1290
msgid "--bisect-reset requires either no argument or a commit"
msgstr "--bisect-reset supporte soit aucun argument, soit un commit"
-#: builtin/bisect--helper.c:1234
+#: builtin/bisect--helper.c:1295
msgid "--bisect-terms requires 0 or 1 argument"
msgstr "--bisect-terms exige 0 ou 1 argument"
-#: builtin/bisect--helper.c:1243
+#: builtin/bisect--helper.c:1304
msgid "--bisect-next requires 0 arguments"
msgstr "--bisect-next exige 0 argument"
-#: builtin/bisect--helper.c:1254
+#: builtin/bisect--helper.c:1315
msgid "--bisect-log requires 0 arguments"
msgstr "--bisect-log exige 0 argument"
-#: builtin/bisect--helper.c:1259
+#: builtin/bisect--helper.c:1320
msgid "no logfile given"
msgstr "pas de fichier de log donné"
@@ -11662,152 +11908,143 @@ msgstr "couleur attendue : %s"
msgid "must end with a color"
msgstr "doit finir avec une couleur"
-#: builtin/blame.c:724
-#, c-format
-msgid "invalid color '%s' in color.blame.repeatedLines"
-msgstr "couleur invalide '%s' dans color.blame.repeatedLines"
-
-#: builtin/blame.c:742
-msgid "invalid value for blame.coloring"
-msgstr "valeur invalide pour blame.coloring"
-
-#: builtin/blame.c:841
+#: builtin/blame.c:842
#, c-format
msgid "cannot find revision %s to ignore"
msgstr "référence à ignorer %s introuvable"
-#: builtin/blame.c:863
+#: builtin/blame.c:864
msgid "show blame entries as we find them, incrementally"
msgstr ""
"montrer les éléments de blâme au fur et à mesure de leur découverte, de "
"manière incrémentale"
-#: builtin/blame.c:864
+#: builtin/blame.c:865
msgid "do not show object names of boundary commits (Default: off)"
msgstr ""
"ne pas montrer les noms des objets pour les commits de limite (Défaut : "
"désactivé)"
-#: builtin/blame.c:865
+#: builtin/blame.c:866
msgid "do not treat root commits as boundaries (Default: off)"
msgstr ""
"ne pas traiter les commits racine comme des limites (Défaut : désactivé)"
-#: builtin/blame.c:866
+#: builtin/blame.c:867
msgid "show work cost statistics"
msgstr "montrer les statistiques de coût d'activité"
-#: builtin/blame.c:867 builtin/checkout.c:1536 builtin/clone.c:94
-#: builtin/commit-graph.c:75 builtin/commit-graph.c:228 builtin/fetch.c:180
+#: builtin/blame.c:868 builtin/checkout.c:1554 builtin/clone.c:98
+#: builtin/commit-graph.c:75 builtin/commit-graph.c:228 builtin/fetch.c:181
#: builtin/merge.c:301 builtin/multi-pack-index.c:103
#: builtin/multi-pack-index.c:154 builtin/multi-pack-index.c:180
#: builtin/multi-pack-index.c:208 builtin/pull.c:120 builtin/push.c:566
-#: builtin/send-pack.c:202
+#: builtin/remote.c:683 builtin/send-pack.c:202
msgid "force progress reporting"
msgstr "forcer l'affichage de l'état d'avancement"
-#: builtin/blame.c:868
+#: builtin/blame.c:869
msgid "show output score for blame entries"
msgstr "montrer le score de sortie pour les éléments de blâme"
-#: builtin/blame.c:869
+#: builtin/blame.c:870
msgid "show original filename (Default: auto)"
msgstr "montrer les noms de fichier originaux (Défaut : auto)"
-#: builtin/blame.c:870
+#: builtin/blame.c:871
msgid "show original linenumber (Default: off)"
msgstr "montrer les numéros de lignes originaux (Défaut : désactivé)"
-#: builtin/blame.c:871
+#: builtin/blame.c:872
msgid "show in a format designed for machine consumption"
msgstr "afficher dans un format propice à la consommation par machine"
-#: builtin/blame.c:872
+#: builtin/blame.c:873
msgid "show porcelain format with per-line commit information"
msgstr "afficher en format porcelaine avec l'information de commit par ligne"
-#: builtin/blame.c:873
+#: builtin/blame.c:874
msgid "use the same output mode as git-annotate (Default: off)"
msgstr "utiliser le même mode de sortie que git-annotate (Défaut : désactivé)"
-#: builtin/blame.c:874
+#: builtin/blame.c:875
msgid "show raw timestamp (Default: off)"
msgstr "afficher les horodatages bruts (Défaut : désactivé)"
-#: builtin/blame.c:875
+#: builtin/blame.c:876
msgid "show long commit SHA1 (Default: off)"
msgstr "afficher les longs SHA1 de commits (Défaut : désactivé)"
-#: builtin/blame.c:876
+#: builtin/blame.c:877
msgid "suppress author name and timestamp (Default: off)"
msgstr "supprimer le nom de l'auteur et l'horodatage (Défaut : désactivé)"
-#: builtin/blame.c:877
+#: builtin/blame.c:878
msgid "show author email instead of name (Default: off)"
msgstr "afficher le courriel de l'auteur au lieu du nom (Défaut : désactivé)"
-#: builtin/blame.c:878
+#: builtin/blame.c:879
msgid "ignore whitespace differences"
msgstr "ignorer les différences d'espace"
-#: builtin/blame.c:879 builtin/log.c:1838
+#: builtin/blame.c:880 builtin/log.c:1857
msgid "rev"
msgstr "rév"
-#: builtin/blame.c:879
+#: builtin/blame.c:880
msgid "ignore <rev> when blaming"
msgstr "ignorer <rev> pendant le blâme"
-#: builtin/blame.c:880
+#: builtin/blame.c:881
msgid "ignore revisions from <file>"
msgstr "ignorer les révisions listées dans <fichier>"
-#: builtin/blame.c:881
+#: builtin/blame.c:882
msgid "color redundant metadata from previous line differently"
msgstr ""
"colorer différemment les métadonnées redondantes avec la ligne précédente"
-#: builtin/blame.c:882
+#: builtin/blame.c:883
msgid "color lines by age"
msgstr "colorier les lignes par âge"
-#: builtin/blame.c:883
+#: builtin/blame.c:884
msgid "spend extra cycles to find better match"
msgstr ""
"dépenser des cycles supplémentaires pour trouver une meilleure correspondance"
-#: builtin/blame.c:884
+#: builtin/blame.c:885
msgid "use revisions from <file> instead of calling git-rev-list"
msgstr ""
"utiliser les révisions du fichier <fichier> au lieu d'appeler git-rev-list"
-#: builtin/blame.c:885
+#: builtin/blame.c:886
msgid "use <file>'s contents as the final image"
msgstr "utiliser le contenu de <fichier> comme image finale"
-#: builtin/blame.c:886 builtin/blame.c:887
+#: builtin/blame.c:887 builtin/blame.c:888
msgid "score"
msgstr "score"
-#: builtin/blame.c:886
+#: builtin/blame.c:887
msgid "find line copies within and across files"
msgstr "trouver les copies de ligne dans et entre les fichiers"
-#: builtin/blame.c:887
+#: builtin/blame.c:888
msgid "find line movements within and across files"
msgstr "trouver les mouvements de ligne dans et entre les fichiers"
-#: builtin/blame.c:888
+#: builtin/blame.c:889
msgid "range"
msgstr "plage"
-#: builtin/blame.c:889
+#: builtin/blame.c:890
msgid "process only line range <start>,<end> or function :<funcname>"
msgstr ""
"traiter seulement l'intervalle de ligne <début>,<fin> ou la fonction : <nom-"
"de-fonction>"
-#: builtin/blame.c:947
+#: builtin/blame.c:949
msgid "--progress can't be used with --incremental or porcelain formats"
msgstr ""
"--progress ne peut pas être utilisé avec --incremental ou les formats "
@@ -11821,18 +12058,18 @@ msgstr ""
#. your language may need more or fewer display
#. columns.
#.
-#: builtin/blame.c:998
+#: builtin/blame.c:1000
msgid "4 years, 11 months ago"
msgstr "il y a 10 ans et 11 mois"
-#: builtin/blame.c:1114
+#: builtin/blame.c:1116
#, c-format
msgid "file %s has only %lu line"
msgid_plural "file %s has only %lu lines"
msgstr[0] "le fichier %s n'a qu'%lu ligne"
msgstr[1] "le fichier %s n'a que %lu lignes"
-#: builtin/blame.c:1159
+#: builtin/blame.c:1161
msgid "Blaming lines"
msgstr "Assignation de blâme aux lignes"
@@ -11841,32 +12078,40 @@ msgid "git branch [<options>] [-r | -a] [--merged] [--no-merged]"
msgstr "git branch [<options>] [-r | -a] [--merged | --no-merged]"
#: builtin/branch.c:30
-msgid "git branch [<options>] [-l] [-f] <branch-name> [<start-point>]"
-msgstr "git branch [<options>] [-l] [-f] <nom-de-branche> [<point-de-départ>]"
+msgid ""
+"git branch [<options>] [-f] [--recurse-submodules] <branch-name> [<start-"
+"point>]"
+msgstr ""
+"git branch [<options>] [-f] [--recurse-submodules] <nom-de-branche> [<point-"
+"de-départ>]"
#: builtin/branch.c:31
+msgid "git branch [<options>] [-l] [<pattern>...]"
+msgstr "git branch [<options>] [-l] [<motif>...]"
+
+#: builtin/branch.c:32
msgid "git branch [<options>] [-r] (-d | -D) <branch-name>..."
msgstr "git branch [<options>] [-r] (-d | -D) <nom-de-branche>..."
-#: builtin/branch.c:32
+#: builtin/branch.c:33
msgid "git branch [<options>] (-m | -M) [<old-branch>] <new-branch>"
msgstr ""
"git branch [<options>] (-m | -M) [<ancienne-branche>] <nouvelle-branche>"
-#: builtin/branch.c:33
+#: builtin/branch.c:34
msgid "git branch [<options>] (-c | -C) [<old-branch>] <new-branch>"
msgstr ""
"git branch [<options>] (-c | -C) [<ancienne-branche>] <nouvelle-branche>"
-#: builtin/branch.c:34
+#: builtin/branch.c:35
msgid "git branch [<options>] [-r | -a] [--points-at]"
msgstr "git branch [<options>] [-r | -a] [--points-at]"
-#: builtin/branch.c:35
+#: builtin/branch.c:36
msgid "git branch [<options>] [-r | -a] [--format]"
msgstr "git branch [<options>] [-r | -a] [--format]"
-#: builtin/branch.c:153
+#: builtin/branch.c:165
#, c-format
msgid ""
"deleting branch '%s' that has been merged to\n"
@@ -11875,7 +12120,7 @@ msgstr ""
"suppression de la branche '%s' qui a été fusionnée dans\n"
" '%s', mais pas dans HEAD."
-#: builtin/branch.c:157
+#: builtin/branch.c:169
#, c-format
msgid ""
"not deleting branch '%s' that is not yet merged to\n"
@@ -11884,12 +12129,12 @@ msgstr ""
"branche '%s' non supprimée car elle n'a pas été fusionnée dans\n"
" '%s', même si elle est fusionnée dans HEAD."
-#: builtin/branch.c:171
+#: builtin/branch.c:183
#, c-format
msgid "Couldn't look up commit object for '%s'"
msgstr "Impossible de rechercher l'objet commit pour '%s'"
-#: builtin/branch.c:175
+#: builtin/branch.c:187
#, c-format
msgid ""
"The branch '%s' is not fully merged.\n"
@@ -11898,115 +12143,115 @@ msgstr ""
"La branche '%s' n'est pas totalement fusionnée.\n"
"Si vous souhaitez réellement la supprimer, lancez 'git branch -D %s'."
-#: builtin/branch.c:188
+#: builtin/branch.c:200
msgid "Update of config-file failed"
msgstr "Échec de la mise à jour du fichier de configuration"
-#: builtin/branch.c:223
+#: builtin/branch.c:235
msgid "cannot use -a with -d"
msgstr "impossible d'utiliser -a avec -d"
-#: builtin/branch.c:230
+#: builtin/branch.c:242
msgid "Couldn't look up commit object for HEAD"
msgstr "Impossible de rechercher l'objet commit pour HEAD"
-#: builtin/branch.c:247
+#: builtin/branch.c:259
#, c-format
msgid "Cannot delete branch '%s' checked out at '%s'"
msgstr "Impossible de supprimer la branche '%s' extraite dans '%s'"
-#: builtin/branch.c:262
+#: builtin/branch.c:274
#, c-format
msgid "remote-tracking branch '%s' not found."
msgstr "branche de suivi '%s' non trouvée."
-#: builtin/branch.c:263
+#: builtin/branch.c:275
#, c-format
msgid "branch '%s' not found."
msgstr "branche '%s' non trouvée."
-#: builtin/branch.c:294
+#: builtin/branch.c:306
#, c-format
msgid "Deleted remote-tracking branch %s (was %s).\n"
msgstr "Branche de suivi %s supprimée (précédemment %s).\n"
-#: builtin/branch.c:295
+#: builtin/branch.c:307
#, c-format
msgid "Deleted branch %s (was %s).\n"
msgstr "Branche %s supprimée (précédemment %s).\n"
-#: builtin/branch.c:445 builtin/tag.c:63
+#: builtin/branch.c:457 builtin/tag.c:64
msgid "unable to parse format string"
msgstr "impossible d'analyser la chaîne de format"
-#: builtin/branch.c:476
+#: builtin/branch.c:488
msgid "could not resolve HEAD"
msgstr "impossible de résoudre HEAD"
-#: builtin/branch.c:482
+#: builtin/branch.c:494
#, c-format
msgid "HEAD (%s) points outside of refs/heads/"
msgstr "HEAD (%s) pointe hors de refs/heads/"
-#: builtin/branch.c:497
+#: builtin/branch.c:509
#, c-format
msgid "Branch %s is being rebased at %s"
msgstr "La branche %s est en cours de rebasage sur %s"
-#: builtin/branch.c:501
+#: builtin/branch.c:513
#, c-format
msgid "Branch %s is being bisected at %s"
msgstr "La branche %s est en cours de bissection sur %s"
-#: builtin/branch.c:518
+#: builtin/branch.c:530
msgid "cannot copy the current branch while not on any."
msgstr "impossible de copier la branche actuelle, il n'y en a pas."
-#: builtin/branch.c:520
+#: builtin/branch.c:532
msgid "cannot rename the current branch while not on any."
msgstr "impossible de renommer la branche actuelle, il n'y en a pas."
-#: builtin/branch.c:531
+#: builtin/branch.c:543
#, c-format
msgid "Invalid branch name: '%s'"
msgstr "Nom de branche invalide : '%s'"
-#: builtin/branch.c:560
+#: builtin/branch.c:572
msgid "Branch rename failed"
msgstr "Échec de renommage de la branche"
-#: builtin/branch.c:562
+#: builtin/branch.c:574
msgid "Branch copy failed"
msgstr "Échec de copie de la branche"
-#: builtin/branch.c:566
+#: builtin/branch.c:578
#, c-format
msgid "Created a copy of a misnamed branch '%s'"
msgstr "Création d'une copie d'une branche mal nommée '%s'"
-#: builtin/branch.c:569
+#: builtin/branch.c:581
#, c-format
msgid "Renamed a misnamed branch '%s' away"
msgstr "Renommage d'une branche mal nommée '%s'"
-#: builtin/branch.c:575
+#: builtin/branch.c:587
#, c-format
msgid "Branch renamed to %s, but HEAD is not updated!"
msgstr "La branche a été renommée en %s, mais HEAD n'est pas mise à jour !"
-#: builtin/branch.c:584
+#: builtin/branch.c:596
msgid "Branch is renamed, but update of config-file failed"
msgstr ""
"La branche est renommée, mais la mise à jour du fichier de configuration a "
"échoué"
-#: builtin/branch.c:586
+#: builtin/branch.c:598
msgid "Branch is copied, but update of config-file failed"
msgstr ""
"La branche est copiée, mais la mise à jour du fichier de configuration a "
"échoué"
-#: builtin/branch.c:602
+#: builtin/branch.c:614
#, c-format
msgid ""
"Please edit the description for the branch\n"
@@ -12017,176 +12262,193 @@ msgstr ""
" %s\n"
"Les lignes commençant par '%c' seront ignorées.\n"
-#: builtin/branch.c:637
+#: builtin/branch.c:651
msgid "Generic options"
msgstr "Options génériques"
-#: builtin/branch.c:639
+#: builtin/branch.c:653
msgid "show hash and subject, give twice for upstream branch"
msgstr "afficher le hachage et le sujet, doublé pour la branche amont"
-#: builtin/branch.c:640
+#: builtin/branch.c:654
msgid "suppress informational messages"
msgstr "supprimer les messages d'information"
-#: builtin/branch.c:642
+#: builtin/branch.c:656 builtin/checkout.c:1571
+#: builtin/submodule--helper.c:3077
msgid "set branch tracking configuration"
msgstr "règler la configuration des branches de suivi"
-#: builtin/branch.c:645
+#: builtin/branch.c:659
msgid "do not use"
msgstr "ne pas utiliser"
-#: builtin/branch.c:647
+#: builtin/branch.c:661
msgid "upstream"
msgstr "amont"
-#: builtin/branch.c:647
+#: builtin/branch.c:661
msgid "change the upstream info"
msgstr "modifier l'information amont"
-#: builtin/branch.c:648
+#: builtin/branch.c:662
msgid "unset the upstream info"
msgstr "désactiver l'information amont"
-#: builtin/branch.c:649
+#: builtin/branch.c:663
msgid "use colored output"
msgstr "utiliser la coloration dans la sortie"
-#: builtin/branch.c:650
+#: builtin/branch.c:664
msgid "act on remote-tracking branches"
msgstr "agir sur les branches de suivi distantes"
-#: builtin/branch.c:652 builtin/branch.c:654
+#: builtin/branch.c:666 builtin/branch.c:668
msgid "print only branches that contain the commit"
msgstr "afficher seulement les branches qui contiennent le commit"
-#: builtin/branch.c:653 builtin/branch.c:655
+#: builtin/branch.c:667 builtin/branch.c:669
msgid "print only branches that don't contain the commit"
msgstr "afficher seulement les branches qui ne contiennent pas le commit"
-#: builtin/branch.c:658
+#: builtin/branch.c:672
msgid "Specific git-branch actions:"
msgstr "Actions spécifiques à git-branch :"
-#: builtin/branch.c:659
+#: builtin/branch.c:673
msgid "list both remote-tracking and local branches"
msgstr "afficher à la fois les branches de suivi et les branches locales"
-#: builtin/branch.c:661
+#: builtin/branch.c:675
msgid "delete fully merged branch"
msgstr "supprimer une branche totalement fusionnée"
-#: builtin/branch.c:662
+#: builtin/branch.c:676
msgid "delete branch (even if not merged)"
msgstr "supprimer une branche (même non fusionnée)"
-#: builtin/branch.c:663
+#: builtin/branch.c:677
msgid "move/rename a branch and its reflog"
msgstr "déplacer/renommer une branche et son reflog"
-#: builtin/branch.c:664
+#: builtin/branch.c:678
msgid "move/rename a branch, even if target exists"
msgstr "déplacer/renommer une branche, même si la cible existe"
-#: builtin/branch.c:665
+#: builtin/branch.c:679
msgid "copy a branch and its reflog"
msgstr "copier une branche et son reflog"
-#: builtin/branch.c:666
+#: builtin/branch.c:680
msgid "copy a branch, even if target exists"
msgstr "copier une branche, même si la cible existe"
-#: builtin/branch.c:667
+#: builtin/branch.c:681
msgid "list branch names"
msgstr "afficher les noms des branches"
-#: builtin/branch.c:668
+#: builtin/branch.c:682
msgid "show current branch name"
msgstr "afficher le nom de la branche courante"
-#: builtin/branch.c:669
+#: builtin/branch.c:683 builtin/submodule--helper.c:3075
msgid "create the branch's reflog"
msgstr "créer le reflog de la branche"
-#: builtin/branch.c:671
+#: builtin/branch.c:685
msgid "edit the description for the branch"
msgstr "éditer la description de la branche"
-#: builtin/branch.c:672
+#: builtin/branch.c:686
msgid "force creation, move/rename, deletion"
msgstr "forcer la création, le déplacement/renommage, ou la suppression"
-#: builtin/branch.c:673
+#: builtin/branch.c:687
msgid "print only branches that are merged"
msgstr "afficher seulement les branches qui sont fusionnées"
-#: builtin/branch.c:674
+#: builtin/branch.c:688
msgid "print only branches that are not merged"
msgstr "afficher seulement les branches qui ne sont pas fusionnées"
-#: builtin/branch.c:675
+#: builtin/branch.c:689
msgid "list branches in columns"
msgstr "afficher les branches en colonnes"
-#: builtin/branch.c:677 builtin/for-each-ref.c:45 builtin/notes.c:413
+#: builtin/branch.c:691 builtin/for-each-ref.c:45 builtin/notes.c:413
#: builtin/notes.c:416 builtin/notes.c:579 builtin/notes.c:582
-#: builtin/tag.c:475
+#: builtin/tag.c:476
msgid "object"
msgstr "objet"
-#: builtin/branch.c:678
+#: builtin/branch.c:692
msgid "print only branches of the object"
msgstr "afficher seulement les branches de l'objet"
-#: builtin/branch.c:679 builtin/for-each-ref.c:51 builtin/tag.c:482
+#: builtin/branch.c:693 builtin/for-each-ref.c:51 builtin/tag.c:483
msgid "sorting and filtering are case insensitive"
msgstr "le tri et le filtrage sont non-sensibles à la casse"
-#: builtin/branch.c:680 builtin/for-each-ref.c:41 builtin/tag.c:480
-#: builtin/verify-tag.c:38
+#: builtin/branch.c:694 builtin/ls-files.c:667
+msgid "recurse through submodules"
+msgstr "parcourir récursivement les sous-modules"
+
+#: builtin/branch.c:695 builtin/for-each-ref.c:41 builtin/ls-tree.c:358
+#: builtin/tag.c:481 builtin/verify-tag.c:38
msgid "format to use for the output"
msgstr "format à utiliser pour la sortie"
-#: builtin/branch.c:703 builtin/clone.c:678
+#: builtin/branch.c:718 builtin/clone.c:684
msgid "HEAD not found below refs/heads!"
msgstr "HEAD non trouvée sous refs/heads !"
-#: builtin/branch.c:742 builtin/branch.c:798 builtin/branch.c:807
+#: builtin/branch.c:739
+msgid ""
+"branch with --recurse-submodules can only be used if submodule."
+"propagateBranches is enabled"
+msgstr ""
+"brancher avec --recurse-submodules ne peut être utilisé que si submodule."
+"propagateBranches est activé"
+
+#: builtin/branch.c:741
+msgid "--recurse-submodules can only be used to create branches"
+msgstr "--recurse-submodules ne peut être utilisé que pour créer des branches"
+
+#: builtin/branch.c:770 builtin/branch.c:826 builtin/branch.c:835
msgid "branch name required"
msgstr "le nom de branche est requis"
-#: builtin/branch.c:774
+#: builtin/branch.c:802
msgid "Cannot give description to detached HEAD"
msgstr "Impossible de décrire une HEAD détachée"
-#: builtin/branch.c:779
+#: builtin/branch.c:807
msgid "cannot edit description of more than one branch"
msgstr "impossible d'éditer la description de plus d'une branche"
-#: builtin/branch.c:786
+#: builtin/branch.c:814
#, c-format
msgid "No commit on branch '%s' yet."
msgstr "Aucun commit sur la branche '%s'."
-#: builtin/branch.c:789
+#: builtin/branch.c:817
#, c-format
msgid "No branch named '%s'."
msgstr "Aucune branche nommée '%s'."
-#: builtin/branch.c:804
+#: builtin/branch.c:832
msgid "too many branches for a copy operation"
msgstr "trop de branches pour une opération de copie"
-#: builtin/branch.c:813
+#: builtin/branch.c:841
msgid "too many arguments for a rename operation"
msgstr "trop d'arguments pour une opération de renommage"
-#: builtin/branch.c:818
+#: builtin/branch.c:846
msgid "too many arguments to set new upstream"
msgstr "trop d'arguments pour spécifier une branche amont"
-#: builtin/branch.c:822
+#: builtin/branch.c:850
#, c-format
msgid ""
"could not set upstream of HEAD to %s when it does not point to any branch."
@@ -12194,32 +12456,32 @@ msgstr ""
"impossible de spécifier une branche amont de HEAD par %s qui ne pointe sur "
"aucune branche."
-#: builtin/branch.c:825 builtin/branch.c:848
+#: builtin/branch.c:853 builtin/branch.c:873
#, c-format
msgid "no such branch '%s'"
msgstr "pas de branche '%s'"
-#: builtin/branch.c:829
+#: builtin/branch.c:857
#, c-format
msgid "branch '%s' does not exist"
msgstr "la branche '%s' n'existe pas"
-#: builtin/branch.c:842
+#: builtin/branch.c:867
msgid "too many arguments to unset upstream"
msgstr "trop d'arguments pour désactiver un amont"
-#: builtin/branch.c:846
+#: builtin/branch.c:871
msgid "could not unset upstream of HEAD when it does not point to any branch."
msgstr ""
"impossible de désactiver une branche amont de HEAD quand elle ne pointe sur "
"aucune branche."
-#: builtin/branch.c:852
+#: builtin/branch.c:877
#, c-format
msgid "Branch '%s' has no upstream information"
msgstr "La branche '%s' n'a aucune information de branche amont"
-#: builtin/branch.c:862
+#: builtin/branch.c:890
msgid ""
"The -a, and -r, options to 'git branch' do not take a branch name.\n"
"Did you mean to use: -a|-r --list <pattern>?"
@@ -12228,7 +12490,7 @@ msgstr ""
"branche.\n"
"Vouliez-vous plutôt dire -a|-r --list <motif> ?"
-#: builtin/branch.c:866
+#: builtin/branch.c:894
msgid ""
"the '--set-upstream' option is no longer supported. Please use '--track' or "
"'--set-upstream-to' instead."
@@ -12345,19 +12607,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:65 builtin/pack-objects.c:3876
+#: builtin/bundle.c:65 builtin/pack-objects.c:3899
msgid "do not show progress meter"
msgstr "ne pas afficher la barre de progression"
-#: builtin/bundle.c:67 builtin/bundle.c:167 builtin/pack-objects.c:3878
+#: builtin/bundle.c:67 builtin/bundle.c:168 builtin/pack-objects.c:3901
msgid "show progress meter"
msgstr "afficher la barre de progression"
-#: builtin/bundle.c:69 builtin/pack-objects.c:3880
+#: builtin/bundle.c:69 builtin/pack-objects.c:3903
msgid "show progress meter during object writing phase"
msgstr "afficher la barre de progression durant la phase d'écrite des objets"
-#: builtin/bundle.c:72 builtin/pack-objects.c:3883
+#: builtin/bundle.c:72 builtin/pack-objects.c:3906
msgid "similar to --all-progress when progress meter is shown"
msgstr "similaire à --all-progress quand la barre de progression est affichée"
@@ -12369,114 +12631,228 @@ msgstr "spécifier la version du format de colis"
msgid "Need a repository to create a bundle."
msgstr "La création d'un colis requiert un dépôt."
-#: builtin/bundle.c:107
+#: builtin/bundle.c:108
msgid "do not show bundle details"
msgstr "ne pas afficher les détails du colis"
-#: builtin/bundle.c:126
+#: builtin/bundle.c:127
#, c-format
msgid "%s is okay\n"
msgstr "%s est correct\n"
-#: builtin/bundle.c:182
+#: builtin/bundle.c:183
msgid "Need a repository to unbundle."
msgstr "Le dépaquetage d'un colis requiert un dépôt."
-#: builtin/bundle.c:185
+#: builtin/bundle.c:186
msgid "Unbundling objects"
msgstr "Dépaquetage d'objets"
-#: builtin/bundle.c:219 builtin/remote.c:1733
+#: builtin/bundle.c:220 builtin/remote.c:1758
#, c-format
msgid "Unknown subcommand: %s"
msgstr "Sous-commande inconnue : %s"
-#: builtin/cat-file.c:622
+#: builtin/cat-file.c:568
+msgid "flush is only for --buffer mode"
+msgstr "flush n'est que pour le mode --buffer"
+
+#: builtin/cat-file.c:612
+msgid "empty command in input"
+msgstr "commande vide dans l'entrée"
+
+#: builtin/cat-file.c:614
+#, c-format
+msgid "whitespace before command: '%s'"
+msgstr "caractère espace devant la commande : '%s'"
+
+#: builtin/cat-file.c:623
+#, c-format
+msgid "%s requires arguments"
+msgstr "%s nécessite des arguments"
+
+#: builtin/cat-file.c:628
+#, c-format
+msgid "%s takes no arguments"
+msgstr "%s n'accepte aucune argument"
+
+#: builtin/cat-file.c:636
+#, c-format
+msgid "unknown command: '%s'"
+msgstr "commande inconnue : %s"
+
+#: builtin/cat-file.c:795
+msgid "only one batch option may be specified"
+msgstr "une seule option de traitement ne peut être spécifiée à la fois"
+
+#: builtin/cat-file.c:824
+msgid "git cat-file <type> <object>"
+msgstr "git cat-file <type> <objet>"
+
+#: builtin/cat-file.c:825
+msgid "git cat-file (-e | -p) <object>"
+msgstr "git cat-file (-e | -p) <objet>"
+
+#: builtin/cat-file.c:826
+msgid "git cat-file (-t | -s) [--allow-unknown-type] <object>"
+msgstr "git cat-file (-t | -s) [--allow-unknown-type] <objet>"
+
+#: builtin/cat-file.c:827
msgid ""
-"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 | --batch-command) [--batch-all-"
+"objects]\n"
+" [--buffer] [--follow-symlinks] [--unordered]\n"
+" [--textconv | --filters]"
msgstr ""
-"git cat-file (-t [--allow-unknow-type] | -s [--allow-unknow-type] | -e | -p "
-"| <type> | --textconv | --filters) [--path=<chemin>] <objet>"
+"git cat-file (--batch | --batch-check | --batch-command) [--batch-all-"
+"objects]\n"
+" [--buffer] [--follow-symlinks] [--unordered]\n"
+" [--textconv | --filters]"
-#: builtin/cat-file.c:623
+#: builtin/cat-file.c:830
msgid ""
-"git cat-file (--batch[=<format>] | --batch-check[=<format>]) [--follow-"
-"symlinks] [--textconv | --filters]"
+"git cat-file (--textconv | --filters)\n"
+" [<rev>:<path|tree-ish> | --path=<path|tree-ish> <rev>]"
msgstr ""
-"git cat-file (--batch[=<format>] | --batch-check[=<format>]) [--follow-"
-"symlinks] [--textconv | --filters]"
+"git cat-file (--textconv | --filters)\n"
+" [<rev>:<chemin|arbresque> | --path=<chemin|arbresque> <rev>]"
-#: builtin/cat-file.c:644
-msgid "only one batch option may be specified"
-msgstr "une seule option de traitement ne peut être spécifiée à la fois"
+#: builtin/cat-file.c:836
+msgid "Check object existence or emit object contents"
+msgstr "Vérifie l'existence d'un objet ou émettre le contenu de l'objet"
+
+#: builtin/cat-file.c:838
+msgid "check if <object> exists"
+msgstr "Vérification si <objet> existe"
+
+#: builtin/cat-file.c:839
+msgid "pretty-print <object> content"
+msgstr "affichage propre du contenu de <objet>"
-#: builtin/cat-file.c:662
-msgid "<type> can be one of: blob, tree, commit, tag"
-msgstr "<type> peut être : blob, tree, commit ou tag"
+#: builtin/cat-file.c:841
+msgid "Emit [broken] object attributes"
+msgstr "Émet les attributs [broken] d'un objet"
-#: builtin/cat-file.c:663
-msgid "show object type"
-msgstr "afficher le type de l'objet"
+#: builtin/cat-file.c:842
+msgid "show object type (one of 'blob', 'tree', 'commit', 'tag', ...)"
+msgstr "montrer le type de l'objet (parmi 'blob', 'tree', 'commit', 'tag' ...)"
-#: builtin/cat-file.c:664
+#: builtin/cat-file.c:843
msgid "show object size"
msgstr "afficher la taille de l'objet"
-#: builtin/cat-file.c:666
-msgid "exit with zero when there's no error"
-msgstr "sortir avec un code d'erreur nul quand il n'y a aucune erreur"
+#: builtin/cat-file.c:845
+msgid "allow -s and -t to work with broken/corrupt objects"
+msgstr "autoriser -s et -t à travailler sur des objets cassés/corrompus"
-#: builtin/cat-file.c:667
-msgid "pretty-print object's content"
-msgstr "afficher avec mise en forme le contenu de l'objet"
+#: builtin/cat-file.c:847
+msgid "Batch objects requested on stdin (or --batch-all-objects)"
+msgstr "Traiter par lot les objets demandés sur stdin (ou --batch-all-objects)"
-#: builtin/cat-file.c:669
-msgid "for blob objects, run textconv on object's content"
-msgstr "pour les objets blob, lancer textconv sur le contenu de l'objet"
+#: builtin/cat-file.c:849
+msgid "show full <object> or <rev> contents"
+msgstr "afficher tout le contenu de <objet> ou <rev>"
-#: builtin/cat-file.c:671
-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:853
+msgid "like --batch, but don't emit <contents>"
+msgstr "comme --batch, mais ne pas émettre <contenu>"
-#: builtin/cat-file.c:672
-msgid "blob"
-msgstr "blob"
+#: builtin/cat-file.c:857
+msgid "read commands from stdin"
+msgstr "lire les commandes depuis l'entrée standard"
-#: builtin/cat-file.c:673
-msgid "use a specific path for --textconv/--filters"
-msgstr "utiliser un chemin spécifique pour --textconv/--filters"
+#: builtin/cat-file.c:861
+msgid "with --batch[-check]: ignores stdin, batches all known objects"
+msgstr ""
+"avec --batch[-check] : ignore stdin, gère tous les objets connus par lots"
-#: builtin/cat-file.c:675
-msgid "allow -s and -t to work with broken/corrupt objects"
-msgstr "autoriser -s et -t à travailler sur des objets cassés/corrompus"
+#: builtin/cat-file.c:863
+msgid "Change or optimize batch output"
+msgstr "Changer ou optimiser la sortie de traitement"
-#: builtin/cat-file.c:676
+#: builtin/cat-file.c:864
msgid "buffer --batch output"
msgstr "bufferiser la sortie de --batch"
-#: builtin/cat-file.c:678
-msgid "show info and content of objects fed from the standard input"
+#: builtin/cat-file.c:866
+msgid "follow in-tree symlinks"
+msgstr "suivi des liens symboliques dans l'arbre"
+
+#: builtin/cat-file.c:868
+msgid "do not order objects before emitting them"
+msgstr "ne pas ordonner les objets avant de les émettre"
+
+#: builtin/cat-file.c:870
+msgid ""
+"Emit object (blob or tree) with conversion or filter (stand-alone, or with "
+"batch)"
msgstr ""
-"afficher l'information et le contenu des objets passés en entrée standard"
+"Émet l'objet (blob ou arbre) avec une conversion ou un filtre (autonome ou "
+"en lot)"
-#: builtin/cat-file.c:682
-msgid "show info about objects fed from the standard input"
-msgstr "afficher l'information des objets passés en entrée standard"
+#: builtin/cat-file.c:872
+msgid "run textconv on object's content"
+msgstr "lancer textconv sur le contenu de l'objet"
-#: builtin/cat-file.c:686
-msgid "follow in-tree symlinks (used with --batch or --batch-check)"
+#: builtin/cat-file.c:874
+msgid "run filters on object's content"
+msgstr "lancer les filtres sur le contenu de l'objet"
+
+#: builtin/cat-file.c:875
+msgid "blob|tree"
+msgstr "blob|arbre"
+
+#: builtin/cat-file.c:876
+msgid "use a <path> for (--textconv | --filters); Not with 'batch'"
msgstr ""
-"suivre les liens symbolique internes à la copie de travail (utilisé avec --"
-"batch ou --batch-check)"
+"utiliser un <chemin> spécifique pour (--textconv | --filters); pas pour les "
+"lots"
+
+#: builtin/cat-file.c:894
+#, c-format
+msgid "'%s=<%s>' needs '%s' or '%s'"
+msgstr "'%s=<%s>' a besoin de '%s' ou '%s'"
+
+#: builtin/cat-file.c:896
+msgid "path|tree-ish"
+msgstr "blob|arbre-esque"
-#: builtin/cat-file.c:688
-msgid "show all objects with --batch or --batch-check"
-msgstr "montrer tous les objets avec --batch ou --batch-check"
+#: builtin/cat-file.c:903 builtin/cat-file.c:906 builtin/cat-file.c:909
+#, c-format
+msgid "'%s' requires a batch mode"
+msgstr "%s a besoin d'un mode par lots"
+
+#: builtin/cat-file.c:921
+#, c-format
+msgid "'-%c' is incompatible with batch mode"
+msgstr "'-%c' est incompatible avec le mode par lots"
+
+#: builtin/cat-file.c:924
+msgid "batch modes take no arguments"
+msgstr "les modes par lot n'acceptent aucun argument"
+
+#: builtin/cat-file.c:932 builtin/cat-file.c:935
+#, c-format
+msgid "<rev> required with '%s'"
+msgstr "<rev> nécessaire avec '%s'"
+
+#: builtin/cat-file.c:938
+#, c-format
+msgid "<object> required with '-%c'"
+msgstr "<objet> nécessaire avec '-%c'"
+
+#: builtin/cat-file.c:943 builtin/notes.c:374 builtin/notes.c:429
+#: builtin/notes.c:507 builtin/notes.c:519 builtin/notes.c:596
+#: builtin/notes.c:663 builtin/notes.c:813 builtin/notes.c:965
+#: builtin/notes.c:987 builtin/prune-packed.c:25 builtin/receive-pack.c:2489
+#: builtin/tag.c:592
+msgid "too many arguments"
+msgstr "trop d'arguments"
-#: builtin/cat-file.c:690
-msgid "do not order --batch-all-objects output"
-msgstr "ne pas ordonner la sortie de --batch-all-objects"
+#: builtin/cat-file.c:947
+#, c-format
+msgid "only two arguments allowed in <type> <object> mode, not %d"
+msgstr "deux arguments seulement permis dans le mode <type> <objet>, pas %d"
#: builtin/check-attr.c:13
msgid "git check-attr [-a | --all | <attr>...] [--] <pathname>..."
@@ -12494,7 +12870,7 @@ msgstr "afficher tous les attributs associés au fichier"
msgid "use .gitattributes only from the index"
msgstr "utiliser .gitattributes seulement depuis l'index"
-#: builtin/check-attr.c:23 builtin/check-ignore.c:25 builtin/hash-object.c:100
+#: builtin/check-attr.c:23 builtin/check-ignore.c:25 builtin/hash-object.c:101
msgid "read file names from stdin"
msgstr "lire les noms de fichier depuis l'entrée standard"
@@ -12503,8 +12879,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:1532 builtin/gc.c:550
-#: builtin/worktree.c:493
+#: builtin/check-ignore.c:21 builtin/checkout.c:1550 builtin/gc.c:550
+#: builtin/worktree.c:565
msgid "suppress progress reporting"
msgstr "supprimer l'état d'avancement"
@@ -12561,165 +12937,169 @@ msgstr "aucun contact spécifié"
msgid "git checkout--worker [<options>]"
msgstr "git checkout--worker [<options>]"
-#: builtin/checkout--worker.c:118 builtin/checkout-index.c:201
-#: builtin/column.c:31 builtin/column.c:32 builtin/submodule--helper.c:1864
-#: builtin/submodule--helper.c:1867 builtin/submodule--helper.c:1875
-#: builtin/submodule--helper.c:2511 builtin/submodule--helper.c:2577
-#: builtin/worktree.c:491 builtin/worktree.c:728
+#: builtin/checkout--worker.c:118 builtin/checkout-index.c:235
+#: builtin/column.c:31 builtin/column.c:32 builtin/submodule--helper.c:1878
+#: builtin/submodule--helper.c:1881 builtin/submodule--helper.c:1889
+#: builtin/submodule--helper.c:2716 builtin/worktree.c:563
+#: builtin/worktree.c:808
msgid "string"
msgstr "chaîne"
-#: builtin/checkout--worker.c:119 builtin/checkout-index.c:202
+#: builtin/checkout--worker.c:119 builtin/checkout-index.c:236
msgid "when creating files, prepend <string>"
msgstr "lors de la création de fichiers, préfixer par <chaîne>"
-#: builtin/checkout-index.c:152
+#: builtin/checkout-index.c:184
msgid "git checkout-index [<options>] [--] [<file>...]"
msgstr "git checkout-index [<options>] [--] [<fichier>...]"
-#: builtin/checkout-index.c:169
+#: builtin/checkout-index.c:201
msgid "stage should be between 1 and 3 or all"
msgstr "stage doit valoir entre 1 et 3, ou all"
-#: builtin/checkout-index.c:187
+#: builtin/checkout-index.c:219
msgid "check out all files in the index"
msgstr "extraire tous les fichiers présents dans l'index"
-#: builtin/checkout-index.c:188
+#: builtin/checkout-index.c:221
+msgid "do not skip files with skip-worktree set"
+msgstr "ne pas sauter des fichiers avec un ensemble skip-worktree"
+
+#: builtin/checkout-index.c:222
msgid "force overwrite of existing files"
msgstr "forcer l'écrasement des fichiers existants"
-#: builtin/checkout-index.c:190
+#: builtin/checkout-index.c:224
msgid "no warning for existing files and files not in index"
msgstr ""
"pas d'avertissement pour les fichiers existants et les fichiers absents de "
"l'index"
-#: builtin/checkout-index.c:192
+#: builtin/checkout-index.c:226
msgid "don't checkout new files"
msgstr "ne pas extraire les nouveaux fichiers"
-#: builtin/checkout-index.c:194
+#: builtin/checkout-index.c:228
msgid "update stat information in the index file"
msgstr "mettre à jour l'information de stat dans le fichier d'index"
-#: builtin/checkout-index.c:198
+#: builtin/checkout-index.c:232
msgid "read list of paths from the standard input"
msgstr "lire la liste des chemins depuis l'entrée standard"
-#: builtin/checkout-index.c:200
+#: builtin/checkout-index.c:234
msgid "write the content to temporary files"
msgstr "écrire le contenu dans des fichiers temporaires"
-#: builtin/checkout-index.c:204
+#: builtin/checkout-index.c:238
msgid "copy out the files from named stage"
msgstr "copier les fichiers depuis l'index nommé"
-#: builtin/checkout.c:33
+#: builtin/checkout.c:34
msgid "git checkout [<options>] <branch>"
msgstr "git checkout [<options>] <branche>"
-#: builtin/checkout.c:34
+#: builtin/checkout.c:35
msgid "git checkout [<options>] [<branch>] -- <file>..."
msgstr "git checkout [<options>] [<branche>] -- <fichier>..."
-#: builtin/checkout.c:39
+#: builtin/checkout.c:40
msgid "git switch [<options>] [<branch>]"
msgstr "git switch [<options>] <branche>"
-#: builtin/checkout.c:44
+#: builtin/checkout.c:45
msgid "git restore [<options>] [--source=<branch>] <file>..."
msgstr "git restore [<options>] [--source=<branche>] <fichier>..."
-#: builtin/checkout.c:198 builtin/checkout.c:237
+#: builtin/checkout.c:199 builtin/checkout.c:238
#, c-format
msgid "path '%s' does not have our version"
msgstr "le chemin '%s' n'a pas notre version"
-#: builtin/checkout.c:200 builtin/checkout.c:239
+#: builtin/checkout.c:201 builtin/checkout.c:240
#, c-format
msgid "path '%s' does not have their version"
msgstr "le chemin '%s' n'a pas leur version"
-#: builtin/checkout.c:216
+#: builtin/checkout.c:217
#, c-format
msgid "path '%s' does not have all necessary versions"
msgstr "le chemin '%s' n'a aucune des versions nécessaires"
-#: builtin/checkout.c:269
+#: builtin/checkout.c:271
#, c-format
msgid "path '%s' does not have necessary versions"
msgstr "le chemin '%s' n'a pas les versions nécessaires"
-#: builtin/checkout.c:286
+#: builtin/checkout.c:291
#, c-format
msgid "path '%s': cannot merge"
msgstr "chemin '%s' : impossible de fusionner"
-#: builtin/checkout.c:302
+#: builtin/checkout.c:307
#, c-format
msgid "Unable to add merge result for '%s'"
msgstr "Impossible d'ajouter le résultat de fusion pour '%s'"
-#: builtin/checkout.c:419
+#: builtin/checkout.c:424
#, c-format
msgid "Recreated %d merge conflict"
msgid_plural "Recreated %d merge conflicts"
msgstr[0] "%d conflit du fusion recréé"
msgstr[1] "%d conflits du fusion recréés"
-#: builtin/checkout.c:424
+#: builtin/checkout.c:429
#, c-format
msgid "Updated %d path from %s"
msgid_plural "Updated %d paths from %s"
msgstr[0] "%d chemin mis à jour depuis %s"
msgstr[1] "%d chemins mis à jour depuis %s"
-#: builtin/checkout.c:431
+#: builtin/checkout.c:436
#, c-format
msgid "Updated %d path from the index"
msgid_plural "Updated %d paths from the index"
msgstr[0] "%d chemin mis à jour depuis l'index"
msgstr[1] "%d chemins mis à jour depuis l'index"
-#: builtin/checkout.c:454 builtin/checkout.c:457 builtin/checkout.c:460
-#: builtin/checkout.c:464
+#: builtin/checkout.c:459 builtin/checkout.c:462 builtin/checkout.c:465
+#: builtin/checkout.c:469
#, c-format
msgid "'%s' cannot be used with updating paths"
msgstr "'%s' ne peut pas être utilisé avec des mises à jour de chemins"
-#: builtin/checkout.c:474
+#: builtin/checkout.c:479
#, c-format
msgid "Cannot update paths and switch to branch '%s' at the same time."
msgstr ""
"Impossible de mettre à jour les chemins et basculer sur la branche '%s' en "
"même temps."
-#: builtin/checkout.c:478
+#: builtin/checkout.c:483
#, c-format
msgid "neither '%s' or '%s' is specified"
msgstr "ni '%s', ni '%s' spécifié"
-#: builtin/checkout.c:482
+#: builtin/checkout.c:487
#, c-format
msgid "'%s' must be used when '%s' is not specified"
msgstr "'%s' ne peut pas être utilisé quand '%s' n'est pas spécifié"
-#: builtin/checkout.c:487 builtin/checkout.c:492
+#: builtin/checkout.c:492 builtin/checkout.c:497
#, c-format
msgid "'%s' or '%s' cannot be used with %s"
msgstr "'%s' ou '%s' ne peut pas être utilisé avec %s"
-#: builtin/checkout.c:566 builtin/checkout.c:573
+#: builtin/checkout.c:571 builtin/checkout.c:578
#, c-format
msgid "path '%s' is unmerged"
msgstr "le chemin '%s' n'est pas fusionné"
-#: builtin/checkout.c:747
+#: builtin/checkout.c:753
msgid "you need to resolve your current index first"
msgstr "vous devez d'abord résoudre votre index courant"
-#: builtin/checkout.c:797
+#: builtin/checkout.c:809
#, c-format
msgid ""
"cannot continue with staged changes in the following files:\n"
@@ -12729,50 +13109,50 @@ msgstr ""
"suivants :\n"
"%s"
-#: builtin/checkout.c:890
+#: builtin/checkout.c:902
#, c-format
msgid "Can not do reflog for '%s': %s\n"
msgstr "Impossible de faire un reflog pour '%s' : %s\n"
-#: builtin/checkout.c:934
+#: builtin/checkout.c:947
msgid "HEAD is now at"
msgstr "HEAD est maintenant sur"
-#: builtin/checkout.c:938 builtin/clone.c:609 t/helper/test-fast-rebase.c:203
+#: builtin/checkout.c:951 builtin/clone.c:615 t/helper/test-fast-rebase.c:203
msgid "unable to update HEAD"
msgstr "impossible de mettre à jour HEAD"
-#: builtin/checkout.c:942
+#: builtin/checkout.c:955
#, c-format
msgid "Reset branch '%s'\n"
msgstr "Remise à zéro de la branche '%s'\n"
-#: builtin/checkout.c:945
+#: builtin/checkout.c:958
#, c-format
msgid "Already on '%s'\n"
msgstr "Déjà sur '%s'\n"
-#: builtin/checkout.c:949
+#: builtin/checkout.c:962
#, c-format
msgid "Switched to and reset branch '%s'\n"
msgstr "Basculement et remise à zéro de la branche '%s'\n"
-#: builtin/checkout.c:951 builtin/checkout.c:1388
+#: builtin/checkout.c:964 builtin/checkout.c:1398
#, c-format
msgid "Switched to a new branch '%s'\n"
msgstr "Basculement sur la nouvelle branche '%s'\n"
-#: builtin/checkout.c:953
+#: builtin/checkout.c:966
#, c-format
msgid "Switched to branch '%s'\n"
msgstr "Basculement sur la branche '%s'\n"
-#: builtin/checkout.c:1004
+#: builtin/checkout.c:1017
#, c-format
msgid " ... and %d more.\n"
msgstr " ... et %d en plus.\n"
-#: builtin/checkout.c:1010
+#: builtin/checkout.c:1023
#, c-format
msgid ""
"Warning: you are leaving %d commit behind, not connected to\n"
@@ -12795,7 +13175,7 @@ msgstr[1] ""
"\n"
"%s\n"
-#: builtin/checkout.c:1029
+#: builtin/checkout.c:1042
#, c-format
msgid ""
"If you want to keep it by creating a new branch, this may be a good time\n"
@@ -12824,19 +13204,19 @@ msgstr[1] ""
"git branch <nouvelle-branche> %s\n"
"\n"
-#: builtin/checkout.c:1064
+#: builtin/checkout.c:1077
msgid "internal error in revision walk"
msgstr "erreur interne lors du parcours des révisions"
-#: builtin/checkout.c:1068
+#: builtin/checkout.c:1081
msgid "Previous HEAD position was"
msgstr "La position précédente de HEAD était sur"
-#: builtin/checkout.c:1114 builtin/checkout.c:1383
+#: builtin/checkout.c:1124 builtin/checkout.c:1393
msgid "You are on a branch yet to be born"
msgstr "Vous êtes sur une branche qui doit encore naître"
-#: builtin/checkout.c:1196
+#: builtin/checkout.c:1206
#, c-format
msgid ""
"'%s' could be both a local file and a tracking branch.\n"
@@ -12845,7 +13225,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:1203
+#: builtin/checkout.c:1213
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"
@@ -12865,51 +13245,58 @@ msgstr ""
"ambigu, vous pouvez positionner checkout.defaultRemote=origin dans\n"
"votre config."
-#: builtin/checkout.c:1213
+#: builtin/checkout.c:1223
#, c-format
msgid "'%s' matched multiple (%d) remote tracking branches"
msgstr "'%s' correspond à plusieurs (%d) branches de suivi à distance"
-#: builtin/checkout.c:1279
+#: builtin/checkout.c:1289
msgid "only one reference expected"
msgstr "une seule référence attendue"
-#: builtin/checkout.c:1296
+#: builtin/checkout.c:1306
#, c-format
msgid "only one reference expected, %d given."
msgstr "une seule référence attendue, %d fournies."
-#: builtin/checkout.c:1342 builtin/worktree.c:269 builtin/worktree.c:436
+#: builtin/checkout.c:1352 builtin/worktree.c:338 builtin/worktree.c:508
#, c-format
msgid "invalid reference: %s"
msgstr "référence invalide : %s"
-#: builtin/checkout.c:1355 builtin/checkout.c:1725
+#: builtin/checkout.c:1365 builtin/checkout.c:1744
#, c-format
msgid "reference is not a tree: %s"
msgstr "la référence n'est pas un arbre : %s"
-#: builtin/checkout.c:1402
+#: builtin/checkout.c:1413
#, c-format
msgid "a branch is expected, got tag '%s'"
msgstr "branche attendue, mais étiquette '%s' reçue"
-#: builtin/checkout.c:1404
+#: builtin/checkout.c:1415
#, 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:1405 builtin/checkout.c:1413
+#: builtin/checkout.c:1417 builtin/checkout.c:1426
#, c-format
msgid "a branch is expected, got '%s'"
msgstr "une branche est attendue, mais '%s' a été reçue"
-#: builtin/checkout.c:1408
+#: builtin/checkout.c:1420
#, 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:1424
+#: builtin/checkout.c:1429
+msgid ""
+"If you want to detach HEAD at the commit, try again with the --detach option."
+msgstr ""
+"Si vous souhaitez détacher HEAD à ce commit, réessayez avec l'option --"
+"detach."
+
+#: builtin/checkout.c:1442
msgid ""
"cannot switch branch while merging\n"
"Consider \"git merge --quit\" or \"git worktree add\"."
@@ -12917,7 +13304,7 @@ msgstr ""
"impossible de basculer de branche pendant une fusion\n"
"Envisagez \"git merge --quit\" ou \"git worktree add\"."
-#: builtin/checkout.c:1428
+#: builtin/checkout.c:1446
msgid ""
"cannot switch branch in the middle of an am session\n"
"Consider \"git am --quit\" or \"git worktree add\"."
@@ -12925,7 +13312,7 @@ msgstr ""
"impossible de basculer de branche pendant une session am\n"
"Envisagez \"git am --quit\" ou \"git worktree add\"."
-#: builtin/checkout.c:1432
+#: builtin/checkout.c:1450
msgid ""
"cannot switch branch while rebasing\n"
"Consider \"git rebase --quit\" or \"git worktree add\"."
@@ -12933,7 +13320,7 @@ msgstr ""
"impossible de basculer de branche pendant un rebasage\n"
"Envisagez \"git rebase --quit\" ou \"git worktree add\"."
-#: builtin/checkout.c:1436
+#: builtin/checkout.c:1454
msgid ""
"cannot switch branch while cherry-picking\n"
"Consider \"git cherry-pick --quit\" or \"git worktree add\"."
@@ -12941,7 +13328,7 @@ msgstr ""
"impossible de basculer de branche pendant un picorage\n"
"Envisagez \"git cherry-pick --quit\" ou \"git worktree add\"."
-#: builtin/checkout.c:1440
+#: builtin/checkout.c:1458
msgid ""
"cannot switch branch while reverting\n"
"Consider \"git revert --quit\" or \"git worktree add\"."
@@ -12949,128 +13336,124 @@ msgstr ""
"impossible de basculer de branche pendant un retour\n"
"Envisagez \"git revert --quit\" ou \"git worktree add\"."
-#: builtin/checkout.c:1444
+#: builtin/checkout.c:1462
msgid "you are switching branch while bisecting"
msgstr "vous basculez de branche en cours de bissection"
-#: builtin/checkout.c:1451
+#: builtin/checkout.c:1469
msgid "paths cannot be used with switching branches"
msgstr "impossible d'utiliser des chemins avec un basculement de branches"
-#: builtin/checkout.c:1454 builtin/checkout.c:1458 builtin/checkout.c:1462
+#: builtin/checkout.c:1472 builtin/checkout.c:1476 builtin/checkout.c:1480
#, 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:1466 builtin/checkout.c:1469 builtin/checkout.c:1472
-#: builtin/checkout.c:1477 builtin/checkout.c:1482
+#: builtin/checkout.c:1484 builtin/checkout.c:1487 builtin/checkout.c:1490
+#: builtin/checkout.c:1495 builtin/checkout.c:1500
#, c-format
msgid "'%s' cannot be used with '%s'"
msgstr "'%s' ne peut pas être utilisé avec '%s'"
-#: builtin/checkout.c:1479
+#: builtin/checkout.c:1497
#, c-format
msgid "'%s' cannot take <start-point>"
msgstr "'%s' n'accepte pas <point-de-départ>"
-#: builtin/checkout.c:1487
+#: builtin/checkout.c:1505
#, 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:1494
+#: builtin/checkout.c:1512
msgid "missing branch or commit argument"
msgstr "argument de branche ou de commit manquant"
-#: builtin/checkout.c:1537
+#: builtin/checkout.c:1555
msgid "perform a 3-way merge with the new branch"
msgstr "effectuer une fusion à 3 points avec la nouvelle branche"
-#: builtin/checkout.c:1538 builtin/log.c:1825 parse-options.h:323
+#: builtin/checkout.c:1556 builtin/log.c:1844 parse-options.h:354
msgid "style"
msgstr "style"
-#: builtin/checkout.c:1539
+#: builtin/checkout.c:1557
msgid "conflict style (merge, diff3, or zdiff3)"
msgstr "style de conflit (merge (fusion), diff3 ou zdiff3)"
-#: builtin/checkout.c:1551 builtin/worktree.c:488
+#: builtin/checkout.c:1569 builtin/worktree.c:560
msgid "detach HEAD at named commit"
msgstr "détacher la HEAD au commit nommé"
-#: builtin/checkout.c:1553
-msgid "set up tracking mode (see git-pull(1))"
-msgstr "régler le mode de suivi (voir git-pull(1))"
-
-#: builtin/checkout.c:1556
+#: builtin/checkout.c:1574
msgid "force checkout (throw away local modifications)"
msgstr "forcer l'extraction (laisser tomber les modifications locales)"
-#: builtin/checkout.c:1558
+#: builtin/checkout.c:1576
msgid "new-branch"
msgstr "nouvelle branche"
-#: builtin/checkout.c:1558
+#: builtin/checkout.c:1576
msgid "new unparented branch"
msgstr "nouvelle branche sans parent"
-#: builtin/checkout.c:1560 builtin/merge.c:305
+#: builtin/checkout.c:1578 builtin/merge.c:305
msgid "update ignored files (default)"
msgstr "mettre à jour les fichiers ignorés (par défaut)"
-#: builtin/checkout.c:1563
+#: builtin/checkout.c:1581
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:1576
+#: builtin/checkout.c:1594
msgid "checkout our version for unmerged files"
msgstr "extraire notre version pour les fichiers non fusionnés"
-#: builtin/checkout.c:1579
+#: builtin/checkout.c:1597
msgid "checkout their version for unmerged files"
msgstr "extraire leur version pour les fichiers non fusionnés"
-#: builtin/checkout.c:1583
+#: builtin/checkout.c:1601
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:1640
+#: builtin/checkout.c:1659
#, c-format
msgid "options '-%c', '-%c', and '%s' cannot be used together"
msgstr ""
"les options '-%c', '-%c' et '%s' ne peuvent pas être utilisées ensemble"
-#: builtin/checkout.c:1681
+#: builtin/checkout.c:1700
msgid "--track needs a branch name"
msgstr "--track requiert un nom de branche"
-#: builtin/checkout.c:1686
+#: builtin/checkout.c:1705
#, c-format
msgid "missing branch name; try -%c"
msgstr "nom de branche manquant ; essayez -%c"
-#: builtin/checkout.c:1718
+#: builtin/checkout.c:1737
#, c-format
msgid "could not resolve %s"
msgstr "impossible de résoudre %s"
-#: builtin/checkout.c:1734
+#: builtin/checkout.c:1753
msgid "invalid path specification"
msgstr "spécification de chemin invalide"
-#: builtin/checkout.c:1741
+#: builtin/checkout.c:1760
#, 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:1745
+#: builtin/checkout.c:1764
#, 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:1770
+#: builtin/checkout.c:1789
msgid ""
"git checkout: --ours/--theirs, --force and --merge are incompatible when\n"
"checking out of the index."
@@ -13078,72 +13461,72 @@ msgstr ""
"git checkout: --ours/--theirs, --force et --merge sont incompatibles lors\n"
"de l'extraction de l'index."
-#: builtin/checkout.c:1775
+#: builtin/checkout.c:1794
msgid "you must specify path(s) to restore"
msgstr "vous devez spécifier un ou des chemins à restaurer"
-#: builtin/checkout.c:1800 builtin/checkout.c:1802 builtin/checkout.c:1854
-#: builtin/checkout.c:1856 builtin/clone.c:126 builtin/remote.c:170
-#: builtin/remote.c:172 builtin/submodule--helper.c:2959
-#: builtin/submodule--helper.c:3253 builtin/worktree.c:484
-#: builtin/worktree.c:486
+#: builtin/checkout.c:1819 builtin/checkout.c:1821 builtin/checkout.c:1873
+#: builtin/checkout.c:1875 builtin/clone.c:130 builtin/remote.c:171
+#: builtin/remote.c:173 builtin/submodule--helper.c:3038
+#: builtin/submodule--helper.c:3371 builtin/worktree.c:556
+#: builtin/worktree.c:558
msgid "branch"
msgstr "branche"
-#: builtin/checkout.c:1801
+#: builtin/checkout.c:1820
msgid "create and checkout a new branch"
msgstr "créer et extraire une nouvelle branche"
-#: builtin/checkout.c:1803
+#: builtin/checkout.c:1822
msgid "create/reset and checkout a branch"
msgstr "créer/réinitialiser et extraire une branche"
-#: builtin/checkout.c:1804
+#: builtin/checkout.c:1823
msgid "create reflog for new branch"
msgstr "créer un reflog pour une nouvelle branche"
-#: builtin/checkout.c:1806
+#: builtin/checkout.c:1825
msgid "second guess 'git checkout <no-such-branch>' (default)"
msgstr ""
"essayer d'interpréter 'git checkout <branche-inexistante>' (par défaut)"
-#: builtin/checkout.c:1807
+#: builtin/checkout.c:1826
msgid "use overlay mode (default)"
msgstr "utiliser le mode de superposition (défaut)"
-#: builtin/checkout.c:1855
+#: builtin/checkout.c:1874
msgid "create and switch to a new branch"
msgstr "créer et basculer sur une nouvelle branche"
-#: builtin/checkout.c:1857
+#: builtin/checkout.c:1876
msgid "create/reset and switch to a branch"
msgstr "créer/réinitialiser et basculer sur une branche"
-#: builtin/checkout.c:1859
+#: builtin/checkout.c:1878
msgid "second guess 'git switch <no-such-branch>'"
msgstr "interpréter 'git switch <branche-inexistante>'"
-#: builtin/checkout.c:1861
+#: builtin/checkout.c:1880
msgid "throw away local modifications"
msgstr "laisser tomber les modifications locales"
-#: builtin/checkout.c:1897
+#: builtin/checkout.c:1916
msgid "which tree-ish to checkout from"
msgstr "de quel <arbre-esque> faire l'extraction"
-#: builtin/checkout.c:1899
+#: builtin/checkout.c:1918
msgid "restore the index"
msgstr "restaurer l'index"
-#: builtin/checkout.c:1901
+#: builtin/checkout.c:1920
msgid "restore the working tree (default)"
msgstr "restaurer l'arbre de travail (par défaut)"
-#: builtin/checkout.c:1903
+#: builtin/checkout.c:1922
msgid "ignore unmerged entries"
msgstr "ignorer les entrées non-fusionnées"
-#: builtin/checkout.c:1904
+#: builtin/checkout.c:1923
msgid "use overlay mode"
msgstr "utiliser le mode de superposition"
@@ -13291,8 +13674,8 @@ msgid "remove whole directories"
msgstr "supprimer les répertoires entiers"
#: builtin/clean.c:932 builtin/describe.c:565 builtin/describe.c:567
-#: builtin/grep.c:937 builtin/log.c:184 builtin/log.c:186
-#: builtin/ls-files.c:651 builtin/name-rev.c:535 builtin/name-rev.c:537
+#: builtin/grep.c:938 builtin/log.c:185 builtin/log.c:187
+#: builtin/ls-files.c:651 builtin/name-rev.c:585 builtin/name-rev.c:587
#: builtin/show-ref.c:179
msgid "pattern"
msgstr "motif"
@@ -13329,214 +13712,218 @@ msgstr ""
msgid "-x and -X cannot be used together"
msgstr "-x et -X ne peuvent pas être utilisés ensemble"
-#: builtin/clone.c:45
+#: builtin/clone.c:47
msgid "git clone [<options>] [--] <repo> [<dir>]"
msgstr "git clone [<options>] [--] <dépôt> [<répertoire>]"
-#: builtin/clone.c:96
+#: builtin/clone.c:100
msgid "don't clone shallow repository"
msgstr "ne pas cloner un dépôt superficiel"
-#: builtin/clone.c:98
+#: builtin/clone.c:102
msgid "don't create a checkout"
msgstr "ne pas créer d'extraction"
-#: builtin/clone.c:99 builtin/clone.c:101 builtin/init-db.c:542
+#: builtin/clone.c:103 builtin/clone.c:105 builtin/init-db.c:542
msgid "create a bare repository"
msgstr "créer un dépôt nu"
-#: builtin/clone.c:103
+#: builtin/clone.c:107
msgid "create a mirror repository (implies bare)"
msgstr "créer un dépôt miroir (implique dépôt nu)"
-#: builtin/clone.c:105
+#: builtin/clone.c:109
msgid "to clone from a local repository"
msgstr "pour cloner depuis un dépôt local"
-#: builtin/clone.c:107
+#: builtin/clone.c:111
msgid "don't use local hardlinks, always copy"
msgstr "ne pas utiliser de liens durs locaux, toujours copier"
-#: builtin/clone.c:109
+#: builtin/clone.c:113
msgid "setup as shared repository"
msgstr "régler comme dépôt partagé"
-#: builtin/clone.c:111
+#: builtin/clone.c:115
msgid "pathspec"
msgstr "spécificateur de chemin"
-#: builtin/clone.c:111
+#: builtin/clone.c:115
msgid "initialize submodules in the clone"
msgstr "initialiser les sous-modules dans le clone"
-#: builtin/clone.c:115
+#: builtin/clone.c:119
msgid "number of submodules cloned in parallel"
msgstr "nombre de sous-modules clonés en parallèle"
-#: builtin/clone.c:116 builtin/init-db.c:539
+#: builtin/clone.c:120 builtin/init-db.c:539
msgid "template-directory"
msgstr "répertoire-modèle"
-#: builtin/clone.c:117 builtin/init-db.c:540
+#: builtin/clone.c:121 builtin/init-db.c:540
msgid "directory from which templates will be used"
msgstr "répertoire depuis lequel les modèles vont être utilisés"
-#: builtin/clone.c:119 builtin/clone.c:121 builtin/submodule--helper.c:1871
-#: builtin/submodule--helper.c:2514 builtin/submodule--helper.c:3260
+#: builtin/clone.c:123 builtin/clone.c:125 builtin/submodule--helper.c:1885
+#: builtin/submodule--helper.c:2719 builtin/submodule--helper.c:3378
msgid "reference repository"
msgstr "dépôt de référence"
-#: builtin/clone.c:123 builtin/submodule--helper.c:1873
-#: builtin/submodule--helper.c:2516
+#: builtin/clone.c:127 builtin/submodule--helper.c:1887
+#: builtin/submodule--helper.c:2721
msgid "use --reference only while cloning"
msgstr "utiliser seulement --reference pour cloner"
-#: builtin/clone.c:124 builtin/column.c:27 builtin/fmt-merge-msg.c:27
+#: builtin/clone.c:128 builtin/column.c:27 builtin/fmt-merge-msg.c:27
#: builtin/init-db.c:550 builtin/merge-file.c:48 builtin/merge.c:290
-#: builtin/pack-objects.c:3944 builtin/repack.c:665
-#: builtin/submodule--helper.c:3262 t/helper/test-simple-ipc.c:595
+#: builtin/pack-objects.c:3967 builtin/repack.c:669
+#: builtin/submodule--helper.c:3380 t/helper/test-simple-ipc.c:595
#: t/helper/test-simple-ipc.c:597
msgid "name"
msgstr "nom"
-#: builtin/clone.c:125
+#: builtin/clone.c:129
msgid "use <name> instead of 'origin' to track upstream"
msgstr "utiliser <nom> au lieu de 'origin' pour suivre la branche amont"
-#: builtin/clone.c:127
+#: builtin/clone.c:131
msgid "checkout <branch> instead of the remote's HEAD"
msgstr "extraire <branche> au lieu de la HEAD du répertoire distant"
-#: builtin/clone.c:129
+#: builtin/clone.c:133
msgid "path to git-upload-pack on the remote"
msgstr "chemin vers git-upload-pack sur le serveur distant"
-#: builtin/clone.c:130 builtin/fetch.c:181 builtin/grep.c:876
+#: builtin/clone.c:134 builtin/fetch.c:182 builtin/grep.c:877
#: builtin/pull.c:212
msgid "depth"
msgstr "profondeur"
-#: builtin/clone.c:131
+#: builtin/clone.c:135
msgid "create a shallow clone of that depth"
msgstr "créer un clone superficiel de cette profondeur"
-#: builtin/clone.c:132 builtin/fetch.c:183 builtin/pack-objects.c:3933
+#: builtin/clone.c:136 builtin/fetch.c:184 builtin/pack-objects.c:3956
#: builtin/pull.c:215
msgid "time"
msgstr "heure"
-#: builtin/clone.c:133
+#: builtin/clone.c:137
msgid "create a shallow clone since a specific time"
msgstr "créer un clone superficiel depuis une date spécifique"
-#: builtin/clone.c:134 builtin/fetch.c:185 builtin/fetch.c:208
-#: builtin/pull.c:218 builtin/pull.c:243 builtin/rebase.c:1022
+#: builtin/clone.c:138 builtin/fetch.c:186 builtin/fetch.c:212
+#: builtin/pull.c:218 builtin/pull.c:243 builtin/rebase.c:1050
msgid "revision"
msgstr "révision"
-#: builtin/clone.c:135 builtin/fetch.c:186 builtin/pull.c:219
+#: builtin/clone.c:139 builtin/fetch.c:187 builtin/pull.c:219
msgid "deepen history of shallow clone, excluding rev"
msgstr ""
"approfondir l'historique d'un clone superficiel en excluant une révision"
-#: builtin/clone.c:137 builtin/submodule--helper.c:1883
-#: builtin/submodule--helper.c:2530
+#: builtin/clone.c:141 builtin/submodule--helper.c:1897
+#: builtin/submodule--helper.c:2735
msgid "clone only one branch, HEAD or --branch"
msgstr "cloner seulement une branche, HEAD ou --branch"
-#: builtin/clone.c:139
+#: builtin/clone.c:143
msgid "don't clone any tags, and make later fetches not to follow them"
msgstr ""
"ne pas cloner les tags et indiquer aux récupérations futures de ne pas le "
"faire"
-#: builtin/clone.c:141
+#: builtin/clone.c:145
msgid "any cloned submodules will be shallow"
msgstr "tous les sous-modules clonés seront superficiels"
-#: builtin/clone.c:142 builtin/init-db.c:548
+#: builtin/clone.c:146 builtin/init-db.c:548
msgid "gitdir"
msgstr "gitdir"
-#: builtin/clone.c:143 builtin/init-db.c:549
+#: builtin/clone.c:147 builtin/init-db.c:549
msgid "separate git dir from working tree"
msgstr "séparer le répertoire git de la copie de travail"
-#: builtin/clone.c:144
+#: builtin/clone.c:148
msgid "key=value"
msgstr "clé=valeur"
-#: builtin/clone.c:145
+#: builtin/clone.c:149
msgid "set config inside the new repository"
msgstr "régler la configuration dans le nouveau dépôt"
-#: builtin/clone.c:147 builtin/fetch.c:203 builtin/ls-remote.c:77
+#: builtin/clone.c:151 builtin/fetch.c:207 builtin/ls-remote.c:77
#: builtin/pull.c:234 builtin/push.c:575 builtin/send-pack.c:200
msgid "server-specific"
msgstr "spécifique au serveur"
-#: builtin/clone.c:147 builtin/fetch.c:203 builtin/ls-remote.c:77
+#: builtin/clone.c:151 builtin/fetch.c:207 builtin/ls-remote.c:77
#: builtin/pull.c:235 builtin/push.c:575 builtin/send-pack.c:201
msgid "option to transmit"
msgstr "option à transmettre"
-#: builtin/clone.c:148 builtin/fetch.c:204 builtin/pull.c:238
+#: builtin/clone.c:152 builtin/fetch.c:208 builtin/pull.c:238
#: builtin/push.c:576
msgid "use IPv4 addresses only"
msgstr "n'utiliser que des adresses IPv4"
-#: builtin/clone.c:150 builtin/fetch.c:206 builtin/pull.c:241
+#: builtin/clone.c:154 builtin/fetch.c:210 builtin/pull.c:241
#: builtin/push.c:578
msgid "use IPv6 addresses only"
msgstr "n'utiliser que des adresses IPv6"
-#: builtin/clone.c:154
+#: builtin/clone.c:158
+msgid "apply partial clone filters to submodules"
+msgstr "appliquer les filtres de clone partiel aux sous-modules"
+
+#: builtin/clone.c:160
msgid "any cloned submodules will use their remote-tracking branch"
msgstr ""
"tous les sous-modules clonés utiliseront leur branche de suivi à distance"
-#: builtin/clone.c:156
+#: builtin/clone.c:162
msgid "initialize sparse-checkout file to include only files at root"
msgstr ""
"initialiser le fichier d'extraction clairsemée pour n'inclure que les "
"fichiers à la racine"
-#: builtin/clone.c:231
+#: builtin/clone.c:237
#, c-format
msgid "info: Could not add alternate for '%s': %s\n"
msgstr "info : impossible d'ajouter une alternative pour '%s' : %s\n"
-#: builtin/clone.c:304
+#: builtin/clone.c:310
#, c-format
msgid "%s exists and is not a directory"
msgstr "%s existe et n'est pas un répertoire"
-#: builtin/clone.c:322
+#: builtin/clone.c:328
#, c-format
msgid "failed to start iterator over '%s'"
msgstr "échec du démarrage un itérateur sur '%s'"
-#: builtin/clone.c:353
+#: builtin/clone.c:359
#, c-format
msgid "failed to create link '%s'"
msgstr "échec de la création du lien '%s'"
-#: builtin/clone.c:357
+#: builtin/clone.c:363
#, c-format
msgid "failed to copy file to '%s'"
msgstr "échec de la copie vers '%s'"
-#: builtin/clone.c:362
+#: builtin/clone.c:368
#, c-format
msgid "failed to iterate over '%s'"
msgstr "échec de l'itération sur '%s'"
-#: builtin/clone.c:389
+#: builtin/clone.c:395
#, c-format
msgid "done.\n"
msgstr "fait.\n"
-#: builtin/clone.c:403
+#: builtin/clone.c:409
msgid ""
"Clone succeeded, but checkout failed.\n"
"You can inspect what was checked out with 'git status'\n"
@@ -13546,103 +13933,103 @@ msgstr ""
"Vous pouvez inspecter ce qui a été extrait avec 'git status'\n"
"et réessayer avec 'git restore --source=HEAD :/'\n"
-#: builtin/clone.c:480
+#: builtin/clone.c:486
#, c-format
msgid "Could not find remote branch %s to clone."
msgstr "Impossible de trouver la branche distante '%s' à cloner."
-#: builtin/clone.c:597
+#: builtin/clone.c:603
#, c-format
msgid "unable to update %s"
msgstr "impossible de mettre à jour %s"
-#: builtin/clone.c:645
+#: builtin/clone.c:651
msgid "failed to initialize sparse-checkout"
msgstr "échec lors de l'initialisation l'extraction clairsemée"
-#: builtin/clone.c:668
+#: builtin/clone.c:674
msgid "remote HEAD refers to nonexistent ref, unable to checkout.\n"
msgstr ""
"la HEAD distante réfère à une référence non existante, impossible de "
"l'extraire.\n"
-#: builtin/clone.c:701
+#: builtin/clone.c:709
msgid "unable to checkout working tree"
msgstr "impossible d'extraire la copie de travail"
-#: builtin/clone.c:779
+#: builtin/clone.c:793
msgid "unable to write parameters to config file"
msgstr "impossible d'écrire les paramètres dans le fichier de configuration"
-#: builtin/clone.c:842
+#: builtin/clone.c:856
msgid "cannot repack to clean up"
msgstr "impossible de remballer pour nettoyer"
-#: builtin/clone.c:844
+#: builtin/clone.c:858
msgid "cannot unlink temporary alternates file"
msgstr "impossible de délier le fichier temporaire alternates"
-#: builtin/clone.c:886
+#: builtin/clone.c:901
msgid "Too many arguments."
msgstr "Trop d'arguments."
-#: builtin/clone.c:890 contrib/scalar/scalar.c:414
+#: builtin/clone.c:905 contrib/scalar/scalar.c:413
msgid "You must specify a repository to clone."
msgstr "Vous devez spécifier un dépôt à cloner."
-#: builtin/clone.c:903
+#: builtin/clone.c:918
#, c-format
msgid "options '%s' and '%s %s' cannot be used together"
msgstr "les options '%s' et '%s %s' ne peuvent pas être utilisées ensemble"
-#: builtin/clone.c:920
+#: builtin/clone.c:935
#, c-format
msgid "repository '%s' does not exist"
msgstr "le dépôt '%s' n'existe pas"
-#: builtin/clone.c:924 builtin/fetch.c:2052
+#: builtin/clone.c:939 builtin/fetch.c:2176
#, c-format
msgid "depth %s is not a positive number"
msgstr "la profondeur %s n'est pas un entier positif"
-#: builtin/clone.c:934
+#: builtin/clone.c:949
#, 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:940
+#: builtin/clone.c:955
#, c-format
msgid "repository path '%s' already exists and is not an empty directory."
msgstr "le chemin du dépôt '%s' existe déjà et n'est pas un répertoire vide."
-#: builtin/clone.c:954
+#: builtin/clone.c:969
#, c-format
msgid "working tree '%s' already exists."
msgstr "la copie de travail '%s' existe déjà."
-#: builtin/clone.c:969 builtin/clone.c:990 builtin/difftool.c:256
-#: builtin/log.c:2012 builtin/worktree.c:281 builtin/worktree.c:313
+#: builtin/clone.c:984 builtin/clone.c:1005 builtin/difftool.c:256
+#: builtin/log.c:2037 builtin/worktree.c:350 builtin/worktree.c:382
#, 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:974
+#: builtin/clone.c:989
#, 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:994
+#: builtin/clone.c:1009
#, c-format
msgid "Cloning into bare repository '%s'...\n"
msgstr "Clonage dans le dépôt nu '%s'\n"
-#: builtin/clone.c:996
+#: builtin/clone.c:1011
#, c-format
msgid "Cloning into '%s'...\n"
msgstr "Clonage dans '%s'...\n"
-#: builtin/clone.c:1025
+#: builtin/clone.c:1040
msgid ""
"clone --recursive is not compatible with both --reference and --reference-if-"
"able"
@@ -13650,50 +14037,54 @@ msgstr ""
"clone --recursive n'est pas compatible avec à la fois --reference et --"
"reference-if-able"
-#: builtin/clone.c:1080 builtin/remote.c:200 builtin/remote.c:710
+#: builtin/clone.c:1116 builtin/remote.c:201 builtin/remote.c:721
#, c-format
msgid "'%s' is not a valid remote name"
msgstr "'%s' n'est pas un nom valide de distante"
-#: builtin/clone.c:1121
+#: builtin/clone.c:1157
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:1123
+#: builtin/clone.c:1159
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:1125
+#: builtin/clone.c:1161
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:1127
+#: builtin/clone.c:1163
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:1132
+#: builtin/clone.c:1168
msgid "source repository is shallow, ignoring --local"
msgstr "le dépôt source est superficiel, option --local ignorée"
-#: builtin/clone.c:1137
+#: builtin/clone.c:1173
msgid "--local is ignored"
msgstr "--local est ignoré"
-#: builtin/clone.c:1216 builtin/clone.c:1276
+#: builtin/clone.c:1185
+msgid "cannot clone from filtered bundle"
+msgstr "impossible de cloner depuis un colis filtré"
+
+#: builtin/clone.c:1265 builtin/clone.c:1324
msgid "remote transport reported error"
msgstr "le transport distant a retourné une erreur"
-#: builtin/clone.c:1228 builtin/clone.c:1239
+#: builtin/clone.c:1277 builtin/clone.c:1289
#, 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:1242
+#: builtin/clone.c:1292
msgid "You appear to have cloned an empty repository."
msgstr "Vous semblez avoir cloné un dépôt vide."
@@ -13745,7 +14136,7 @@ msgstr ""
"split[=<stratégie>]] [--reachable|--stdin-packs|--stdin-commits] [--changed-"
"paths] [--[no-]max-new-filters <n>] [--[no-]progress] <options de division>"
-#: builtin/commit-graph.c:51 builtin/fetch.c:192 builtin/log.c:1794
+#: builtin/commit-graph.c:51 builtin/fetch.c:196 builtin/log.c:1813
msgid "dir"
msgstr "répertoire"
@@ -13846,7 +14237,7 @@ msgstr ""
msgid "duplicate parent %s ignored"
msgstr "le parent dupliqué %s est ignoré"
-#: builtin/commit-tree.c:56 builtin/commit-tree.c:134 builtin/log.c:577
+#: builtin/commit-tree.c:56 builtin/commit-tree.c:134 builtin/log.c:590
#, c-format
msgid "not a valid object name %s"
msgstr "nom d'objet invalide %s"
@@ -13869,13 +14260,13 @@ msgstr "parent"
msgid "id of a parent commit object"
msgstr "id d'un objet commit parent"
-#: builtin/commit-tree.c:112 builtin/commit.c:1627 builtin/merge.c:284
-#: builtin/notes.c:407 builtin/notes.c:573 builtin/stash.c:1677
-#: builtin/tag.c:454
+#: builtin/commit-tree.c:112 builtin/commit.c:1626 builtin/merge.c:284
+#: builtin/notes.c:407 builtin/notes.c:573 builtin/stash.c:1666
+#: builtin/tag.c:455
msgid "message"
msgstr "message"
-#: builtin/commit-tree.c:113 builtin/commit.c:1627
+#: builtin/commit-tree.c:113 builtin/commit.c:1626
msgid "commit message"
msgstr "message de validation"
@@ -13883,7 +14274,7 @@ msgstr "message de validation"
msgid "read commit log message from file"
msgstr "lire le message de validation depuis un fichier"
-#: builtin/commit-tree.c:119 builtin/commit.c:1644 builtin/merge.c:303
+#: builtin/commit-tree.c:119 builtin/commit.c:1643 builtin/merge.c:303
#: builtin/pull.c:180 builtin/revert.c:118
msgid "GPG sign commit"
msgstr "signer la validation avec GPG"
@@ -13896,15 +14287,15 @@ msgstr "exactement un arbre obligatoire"
msgid "git commit-tree: failed to read"
msgstr "git commit-tree : échec de la lecture"
-#: builtin/commit.c:42
+#: builtin/commit.c:43
msgid "git commit [<options>] [--] <pathspec>..."
msgstr "git commit [<options>] [--] <spécification-de-chemin>..."
-#: builtin/commit.c:47
+#: builtin/commit.c:48
msgid "git status [<options>] [--] <pathspec>..."
msgstr "git status [<options>] [--] <spécification-de-chemin>..."
-#: builtin/commit.c:52
+#: builtin/commit.c:53
msgid ""
"You asked to amend the most recent commit, but doing so would make\n"
"it empty. You can repeat your command with --allow-empty, or you can\n"
@@ -13915,7 +14306,7 @@ msgstr ""
"vide. Vous pouvez répéter votre commande avec --allow-empty, ou vous pouvez\n"
"supprimer complètement le commit avec \"git reset HEAD^\".\n"
-#: builtin/commit.c:57
+#: builtin/commit.c:58
msgid ""
"The previous cherry-pick is now empty, possibly due to conflict resolution.\n"
"If you wish to commit it anyway, use:\n"
@@ -13930,15 +14321,15 @@ msgstr ""
" git commit --allow-empty\n"
"\n"
-#: builtin/commit.c:64
+#: builtin/commit.c:65
msgid "Otherwise, please use 'git rebase --skip'\n"
msgstr "Sinon, veuillez utiliser 'git rebase --skip'\n"
-#: builtin/commit.c:67
+#: builtin/commit.c:68
msgid "Otherwise, please use 'git cherry-pick --skip'\n"
msgstr "Sinon, veuillez utiliser 'git cherry-pick --skip'\n"
-#: builtin/commit.c:70
+#: builtin/commit.c:71
msgid ""
"and then use:\n"
"\n"
@@ -13960,69 +14351,69 @@ msgstr ""
" git cherry-pick --skip\n"
"\n"
-#: builtin/commit.c:325
+#: builtin/commit.c:326
msgid "failed to unpack HEAD tree object"
msgstr "échec du dépaquetage de l'objet arbre HEAD"
-#: builtin/commit.c:375
+#: builtin/commit.c:376
msgid "No paths with --include/--only does not make sense."
msgstr "Aucun chemin avec les options --include/--only n'a pas de sens."
-#: builtin/commit.c:387
+#: builtin/commit.c:388
msgid "unable to create temporary index"
msgstr "impossible de créer l'index temporaire"
-#: builtin/commit.c:396
+#: builtin/commit.c:397
msgid "interactive add failed"
msgstr "échec de l'ajout interactif"
-#: builtin/commit.c:411
+#: builtin/commit.c:412
msgid "unable to update temporary index"
msgstr "impossible de mettre à jour l'index temporaire"
-#: builtin/commit.c:413
+#: builtin/commit.c:414
msgid "Failed to update main cache tree"
msgstr "Impossible de mettre à jour l'arbre de cache principal"
-#: builtin/commit.c:438 builtin/commit.c:461 builtin/commit.c:509
+#: builtin/commit.c:439 builtin/commit.c:462 builtin/commit.c:510
msgid "unable to write new_index file"
msgstr "impossible d'écrire le fichier new_index"
-#: builtin/commit.c:490
+#: builtin/commit.c:491
msgid "cannot do a partial commit during a merge."
msgstr "impossible de faire une validation partielle pendant une fusion."
-#: builtin/commit.c:492
+#: builtin/commit.c:493
msgid "cannot do a partial commit during a cherry-pick."
msgstr "impossible de faire une validation partielle pendant un picorage."
-#: builtin/commit.c:494
+#: builtin/commit.c:495
msgid "cannot do a partial commit during a rebase."
msgstr "impossible de faire une validation partielle pendant un rebasage."
-#: builtin/commit.c:502
+#: builtin/commit.c:503
msgid "cannot read the index"
msgstr "impossible de lire l'index"
-#: builtin/commit.c:521
+#: builtin/commit.c:522
msgid "unable to write temporary index file"
msgstr "impossible d'écrire le fichier d'index temporaire"
-#: builtin/commit.c:619
+#: builtin/commit.c:620
#, c-format
msgid "commit '%s' lacks author header"
msgstr "entête d'auteur manquant dans le commit '%s'"
-#: builtin/commit.c:621
+#: builtin/commit.c:622
#, c-format
msgid "commit '%s' has malformed author line"
msgstr "le commit '%s' a une ligne d'auteur malformée"
-#: builtin/commit.c:640
+#: builtin/commit.c:641
msgid "malformed --author parameter"
msgstr "paramètre --author mal formé"
-#: builtin/commit.c:693
+#: builtin/commit.c:694
msgid ""
"unable to select a comment character that is not used\n"
"in the current commit message"
@@ -14030,43 +14421,43 @@ msgstr ""
"impossible de sélectionner un caractère de commentaire\n"
"qui n'est pas utilisé dans le message de validation actuel"
-#: builtin/commit.c:747 builtin/commit.c:781 builtin/commit.c:1166
+#: builtin/commit.c:750 builtin/commit.c:784 builtin/commit.c:1170
#, c-format
msgid "could not lookup commit %s"
msgstr "impossible de rechercher le commit %s"
-#: builtin/commit.c:759 builtin/shortlog.c:416
+#: builtin/commit.c:762 builtin/shortlog.c:417
#, c-format
msgid "(reading log message from standard input)\n"
msgstr "(lecture du message de journal depuis l'entrée standard)\n"
-#: builtin/commit.c:761
+#: builtin/commit.c:764
msgid "could not read log from standard input"
msgstr "impossible de lire le journal depuis l'entrée standard"
-#: builtin/commit.c:765
+#: builtin/commit.c:768
#, c-format
msgid "could not read log file '%s'"
msgstr "impossible de lire le fichier de journal '%s'"
-#: builtin/commit.c:802
+#: builtin/commit.c:805
#, c-format
msgid "options '%s' and '%s:%s' cannot be used together"
msgstr "les options '%s' et '%s.%s' ne peuvent pas être utilisées ensemble"
-#: builtin/commit.c:814 builtin/commit.c:830
+#: builtin/commit.c:817 builtin/commit.c:833
msgid "could not read SQUASH_MSG"
msgstr "impossible de lire SQUASH_MSG"
-#: builtin/commit.c:821
+#: builtin/commit.c:824
msgid "could not read MERGE_MSG"
msgstr "impossible de lire MERGE_MSG"
-#: builtin/commit.c:881
+#: builtin/commit.c:884
msgid "could not write commit template"
msgstr "impossible d'écrire le modèle de commit"
-#: builtin/commit.c:894
+#: builtin/commit.c:897
#, c-format
msgid ""
"Please enter the commit message for your changes. Lines starting\n"
@@ -14075,7 +14466,7 @@ msgstr ""
"Veuillez saisir le message de validation pour vos modifications. Les lignes\n"
"commençant par '%c' seront ignorées.\n"
-#: builtin/commit.c:896
+#: builtin/commit.c:899
#, c-format
msgid ""
"Please enter the commit message for your changes. Lines starting\n"
@@ -14085,7 +14476,7 @@ msgstr ""
"commençant par '%c' seront ignorées, et un message vide abandonne la "
"validation.\n"
-#: builtin/commit.c:900
+#: builtin/commit.c:903
#, c-format
msgid ""
"Please enter the commit message for your changes. Lines starting\n"
@@ -14096,7 +14487,7 @@ msgstr ""
"par '%c' seront conservées ; vous pouvez les supprimer vous-même si vous le "
"souhaitez.\n"
-#: builtin/commit.c:904
+#: builtin/commit.c:907
#, c-format
msgid ""
"Please enter the commit message for your changes. Lines starting\n"
@@ -14107,7 +14498,7 @@ msgstr ""
"commençant par '%c' seront conservées ; vous pouvez les supprimer vous-même\n"
"si vous le souhaitez. Un message vide abandonne la validation.\n"
-#: builtin/commit.c:916
+#: builtin/commit.c:919
msgid ""
"\n"
"It looks like you may be committing a merge.\n"
@@ -14121,7 +14512,7 @@ msgstr ""
"\tgit update-ref -d MERGE_HEAD\n"
"et essayez à nouveau.\n"
-#: builtin/commit.c:921
+#: builtin/commit.c:924
msgid ""
"\n"
"It looks like you may be committing a cherry-pick.\n"
@@ -14135,175 +14526,153 @@ msgstr ""
"\tgit update-ref -d CHERRY_PICK_HEAD\n"
"et essayez à nouveau.\n"
-#: builtin/commit.c:948
+#: builtin/commit.c:951
#, c-format
msgid "%sAuthor: %.*s <%.*s>"
msgstr "%sAuteur : %.*s <%.*s>"
-#: builtin/commit.c:956
+#: builtin/commit.c:959
#, c-format
msgid "%sDate: %s"
msgstr "%sDate : %s"
-#: builtin/commit.c:963
+#: builtin/commit.c:966
#, c-format
msgid "%sCommitter: %.*s <%.*s>"
msgstr "%sValidateur : %.*s <%.*s>"
-#: builtin/commit.c:981
+#: builtin/commit.c:984
msgid "Cannot read index"
msgstr "Impossible de lire l'index"
-#: builtin/commit.c:1026
+#: builtin/commit.c:1029
msgid "unable to pass trailers to --trailers"
msgstr "impossible de passer les lignes finales à --trailers"
-#: builtin/commit.c:1066
+#: builtin/commit.c:1069
msgid "Error building trees"
msgstr "Erreur lors de la construction des arbres"
-#: builtin/commit.c:1080 builtin/tag.c:316
+#: builtin/commit.c:1083 builtin/tag.c:317
#, c-format
msgid "Please supply the message using either -m or -F option.\n"
msgstr "Veuillez fournir le message en utilisant l'option -m ou -F.\n"
-#: builtin/commit.c:1124
+#: builtin/commit.c:1128
#, c-format
msgid "--author '%s' is not 'Name <email>' and matches no existing author"
msgstr ""
"--author '%s' n'est pas de la forme 'Nom <email>' ni ne correspond à aucun "
"auteur existant"
-#: builtin/commit.c:1138
+#: builtin/commit.c:1142
#, c-format
msgid "Invalid ignored mode '%s'"
msgstr "Mode de fichier ignoré invalide '%s'"
-#: builtin/commit.c:1156 builtin/commit.c:1451
+#: builtin/commit.c:1160 builtin/commit.c:1450
#, c-format
msgid "Invalid untracked files mode '%s'"
msgstr "Mode de fichier non suivi invalide '%s'"
-#: builtin/commit.c:1227
+#: builtin/commit.c:1231
msgid "You are in the middle of a merge -- cannot reword."
msgstr "Vous êtes en pleine fusion -- impossible de reformuler."
-#: builtin/commit.c:1229
+#: builtin/commit.c:1233
msgid "You are in the middle of a cherry-pick -- cannot reword."
msgstr "Vous êtes en plein picorage -- impossible de reformuler."
-#: builtin/commit.c:1232
+#: builtin/commit.c:1236
#, c-format
msgid "reword option of '%s' and path '%s' cannot be used together"
msgstr ""
"l'option de reformulation de '%s' et le chemin '%s' ne peuvent pas être "
"utilisés ensemble"
-#: builtin/commit.c:1234
+#: builtin/commit.c:1238
#, c-format
msgid "reword option of '%s' and '%s' cannot be used together"
msgstr ""
"l'option de reformulation de '%s' et '%s' ne peuvent pas être utilisés "
"ensemble"
-#: builtin/commit.c:1254
-msgid "Using both --reset-author and --author does not make sense"
-msgstr "L'utilisation simultanée de --reset-author et --author n'a pas de sens"
-
-#: builtin/commit.c:1261
+#: builtin/commit.c:1263
msgid "You have nothing to amend."
msgstr "Il n'y a rien à corriger."
-#: builtin/commit.c:1264
+#: builtin/commit.c:1266
msgid "You are in the middle of a merge -- cannot amend."
msgstr "Vous êtes en pleine fusion -- impossible de corriger (amend)."
-#: builtin/commit.c:1266
+#: builtin/commit.c:1268
msgid "You are in the middle of a cherry-pick -- cannot amend."
msgstr "Vous êtes en plein picorage -- impossible de corriger (amend)."
-#: builtin/commit.c:1268
+#: builtin/commit.c:1270
msgid "You are in the middle of a rebase -- cannot amend."
msgstr "Vous êtes en plein rebasage -- impossible de corriger (amend)."
-#: builtin/commit.c:1271
-msgid "Options --squash and --fixup cannot be used together"
-msgstr "Les options --squash et --fixup ne peuvent pas être utilisées ensemble"
-
-#: builtin/commit.c:1281
-msgid "Only one of -c/-C/-F/--fixup can be used."
-msgstr "Une seule option parmi -c/-C/-F/--fixup peut être utilisée."
-
-#: builtin/commit.c:1283
-msgid "Option -m cannot be combined with -c/-C/-F."
-msgstr "L'option -m ne peut pas être combinée avec -c/-C/-F."
-
-#: builtin/commit.c:1292
+#: builtin/commit.c:1290
msgid "--reset-author can be used only with -C, -c or --amend."
msgstr "--reset-author ne peut être utilisé qu'avec -C, -c ou --amend."
-#: builtin/commit.c:1310
-msgid "Only one of --include/--only/--all/--interactive/--patch can be used."
-msgstr ""
-"Une seule option parmi --include/--only/--all/--interactive/--patch peut "
-"être utilisée."
-
-#: builtin/commit.c:1338
+#: builtin/commit.c:1337
#, c-format
msgid "unknown option: --fixup=%s:%s"
msgstr "option inconnue : --fixup=%s:%s"
-#: builtin/commit.c:1355
+#: builtin/commit.c:1354
#, c-format
msgid "paths '%s ...' with -a does not make sense"
msgstr "des chemins '%s ...' avec l'option -a n'a pas de sens"
-#: builtin/commit.c:1486 builtin/commit.c:1655
+#: builtin/commit.c:1485 builtin/commit.c:1654
msgid "show status concisely"
msgstr "afficher l'état avec concision"
-#: builtin/commit.c:1488 builtin/commit.c:1657
+#: builtin/commit.c:1487 builtin/commit.c:1656
msgid "show branch information"
msgstr "afficher l'information de branche"
-#: builtin/commit.c:1490
+#: builtin/commit.c:1489
msgid "show stash information"
msgstr "afficher l'information de remisage"
-#: builtin/commit.c:1492 builtin/commit.c:1659
+#: builtin/commit.c:1491 builtin/commit.c:1658
msgid "compute full ahead/behind values"
msgstr "calcule les valeurs complètes en avance/en retard"
-#: builtin/commit.c:1494
+#: builtin/commit.c:1493
msgid "version"
msgstr "version"
-#: builtin/commit.c:1494 builtin/commit.c:1661 builtin/push.c:551
-#: builtin/worktree.c:690
+#: builtin/commit.c:1493 builtin/commit.c:1660 builtin/push.c:551
+#: builtin/worktree.c:765
msgid "machine-readable output"
msgstr "sortie pour traitement automatique"
-#: builtin/commit.c:1497 builtin/commit.c:1663
+#: builtin/commit.c:1496 builtin/commit.c:1662
msgid "show status in long format (default)"
msgstr "afficher l'état en format long (par défaut)"
-#: builtin/commit.c:1500 builtin/commit.c:1666
+#: builtin/commit.c:1499 builtin/commit.c:1665
msgid "terminate entries with NUL"
msgstr "terminer les éléments par NUL"
-#: builtin/commit.c:1502 builtin/commit.c:1506 builtin/commit.c:1669
+#: builtin/commit.c:1501 builtin/commit.c:1505 builtin/commit.c:1668
#: builtin/fast-export.c:1172 builtin/fast-export.c:1175
-#: builtin/fast-export.c:1178 builtin/rebase.c:1111 parse-options.h:337
+#: builtin/fast-export.c:1178 builtin/rebase.c:1139 parse-options.h:368
msgid "mode"
msgstr "mode"
-#: builtin/commit.c:1503 builtin/commit.c:1669
+#: builtin/commit.c:1502 builtin/commit.c:1668
msgid "show untracked files, optional modes: all, normal, no. (Default: all)"
msgstr ""
"afficher les fichiers non suivis, \"mode\" facultatif : all (tous), normal, "
"no. (Défaut : all)"
-#: builtin/commit.c:1507
+#: builtin/commit.c:1506
msgid ""
"show ignored files, optional modes: traditional, matching, no. (Default: "
"traditional)"
@@ -14311,11 +14680,11 @@ msgstr ""
"afficher les fichiers ignorés, \"mode\" facultatif : traditional "
"(traditionnel), matching (correspondant), no. (Défaut : traditional)"
-#: builtin/commit.c:1509 parse-options.h:192
+#: builtin/commit.c:1508 parse-options.h:197
msgid "when"
msgstr "quand"
-#: builtin/commit.c:1510
+#: builtin/commit.c:1509
msgid ""
"ignore changes to submodules, optional when: all, dirty, untracked. "
"(Default: all)"
@@ -14323,198 +14692,198 @@ msgstr ""
"ignorer les modifications dans les sous-modules, \"quand\" facultatif : all "
"(tous), dirty (sale), untracked (non suivi). (Défaut : all)"
-#: builtin/commit.c:1512
+#: builtin/commit.c:1511
msgid "list untracked files in columns"
msgstr "afficher les fichiers non suivis en colonnes"
-#: builtin/commit.c:1513
+#: builtin/commit.c:1512
msgid "do not detect renames"
msgstr "ne pas détecter les renommages"
-#: builtin/commit.c:1515
+#: builtin/commit.c:1514
msgid "detect renames, optionally set similarity index"
msgstr ""
"détecter les renommages, en spécifiant optionnellement le facteur de "
"similarité"
-#: builtin/commit.c:1538
+#: builtin/commit.c:1537
msgid "Unsupported combination of ignored and untracked-files arguments"
msgstr ""
"Combinaison non supportée d'arguments sur les fichiers ignorés et non-suivis"
-#: builtin/commit.c:1620
+#: builtin/commit.c:1619
msgid "suppress summary after successful commit"
msgstr "supprimer le résumé après une validation réussie"
-#: builtin/commit.c:1621
+#: builtin/commit.c:1620
msgid "show diff in commit message template"
msgstr "afficher les diff dans le modèle de message de validation"
-#: builtin/commit.c:1623
+#: builtin/commit.c:1622
msgid "Commit message options"
msgstr "Options du message de validation"
-#: builtin/commit.c:1624 builtin/merge.c:288 builtin/tag.c:456
+#: builtin/commit.c:1623 builtin/merge.c:288 builtin/tag.c:457
msgid "read message from file"
msgstr "lire le message depuis un fichier"
-#: builtin/commit.c:1625
+#: builtin/commit.c:1624
msgid "author"
msgstr "auteur"
-#: builtin/commit.c:1625
+#: builtin/commit.c:1624
msgid "override author for commit"
msgstr "remplacer l'auteur pour la validation"
-#: builtin/commit.c:1626 builtin/gc.c:551
+#: builtin/commit.c:1625 builtin/gc.c:551
msgid "date"
msgstr "date"
-#: builtin/commit.c:1626
+#: builtin/commit.c:1625
msgid "override date for commit"
msgstr "remplacer la date pour la validation"
-#: builtin/commit.c:1628 builtin/commit.c:1629 builtin/commit.c:1635
-#: parse-options.h:329 ref-filter.h:89
+#: builtin/commit.c:1627 builtin/commit.c:1628 builtin/commit.c:1634
+#: parse-options.h:360 ref-filter.h:89
msgid "commit"
msgstr "commit"
-#: builtin/commit.c:1628
+#: builtin/commit.c:1627
msgid "reuse and edit message from specified commit"
msgstr "réutiliser et éditer le message du commit spécifié"
-#: builtin/commit.c:1629
+#: builtin/commit.c:1628
msgid "reuse message from specified commit"
msgstr "réutiliser le message du commit spécifié"
#. TRANSLATORS: Leave "[(amend|reword):]" as-is,
#. and only translate <commit>.
#.
-#: builtin/commit.c:1634
+#: builtin/commit.c:1633
msgid "[(amend|reword):]commit"
msgstr "[(amend|reword):]commit"
-#: builtin/commit.c:1634
+#: builtin/commit.c:1633
msgid ""
"use autosquash formatted message to fixup or amend/reword specified commit"
msgstr ""
"utiliser un message au format autosquash pour corriger ou reformuler le "
"commit spécifié"
-#: builtin/commit.c:1635
+#: builtin/commit.c:1634
msgid "use autosquash formatted message to squash specified commit"
msgstr ""
"utiliser un message au format autosquash pour compresser le commit spécifié"
-#: builtin/commit.c:1636
+#: builtin/commit.c:1635
msgid "the commit is authored by me now (used with -C/-c/--amend)"
msgstr ""
"à présent je suis l'auteur de la validation (utilisé avec -C/-c/--amend)"
-#: builtin/commit.c:1637 builtin/interpret-trailers.c:111
+#: builtin/commit.c:1636 builtin/interpret-trailers.c:111
msgid "trailer"
msgstr "ligne de fin"
-#: builtin/commit.c:1637
+#: builtin/commit.c:1636
msgid "add custom trailer(s)"
msgstr "ajouter des lignes terminales personnaliser"
-#: builtin/commit.c:1638 builtin/log.c:1769 builtin/merge.c:306
+#: builtin/commit.c:1637 builtin/log.c:1788 builtin/merge.c:306
#: builtin/pull.c:146 builtin/revert.c:110
msgid "add a Signed-off-by trailer"
msgstr "ajouter une ligne terminale Signed-off-by"
-#: builtin/commit.c:1639
+#: builtin/commit.c:1638
msgid "use specified template file"
msgstr "utiliser le fichier de modèle spécifié"
-#: builtin/commit.c:1640
+#: builtin/commit.c:1639
msgid "force edit of commit"
msgstr "forcer l'édition du commit"
-#: builtin/commit.c:1642
+#: builtin/commit.c:1641
msgid "include status in commit message template"
msgstr "inclure l'état dans le modèle de message de validation"
-#: builtin/commit.c:1647
+#: builtin/commit.c:1646
msgid "Commit contents options"
msgstr "Valider les options des contenus"
-#: builtin/commit.c:1648
+#: builtin/commit.c:1647
msgid "commit all changed files"
msgstr "valider tous les fichiers modifiés"
-#: builtin/commit.c:1649
+#: builtin/commit.c:1648
msgid "add specified files to index for commit"
msgstr "ajouter les fichiers spécifiés à l'index pour la validation"
-#: builtin/commit.c:1650
+#: builtin/commit.c:1649
msgid "interactively add files"
msgstr "ajouter des fichiers en mode interactif"
-#: builtin/commit.c:1651
+#: builtin/commit.c:1650
msgid "interactively add changes"
msgstr "ajouter les modifications en mode interactif"
-#: builtin/commit.c:1652
+#: builtin/commit.c:1651
msgid "commit only specified files"
msgstr "valider seulement les fichiers spécifiés"
-#: builtin/commit.c:1653
+#: builtin/commit.c:1652
msgid "bypass pre-commit and commit-msg hooks"
msgstr "éviter d'utiliser les crochets pre-commit et commit-msg"
-#: builtin/commit.c:1654
+#: builtin/commit.c:1653
msgid "show what would be committed"
msgstr "afficher ce qui serait validé"
-#: builtin/commit.c:1667
+#: builtin/commit.c:1666
msgid "amend previous commit"
msgstr "corriger la validation précédente"
-#: builtin/commit.c:1668
+#: builtin/commit.c:1667
msgid "bypass post-rewrite hook"
msgstr "éviter d'utiliser le crochet post-rewrite"
-#: builtin/commit.c:1675
+#: builtin/commit.c:1674
msgid "ok to record an empty change"
msgstr "accepter d'enregistrer une modification vide"
-#: builtin/commit.c:1677
+#: builtin/commit.c:1676
msgid "ok to record a change with an empty message"
msgstr "accepter d'enregistrer une modification avec un message vide"
-#: builtin/commit.c:1753
+#: builtin/commit.c:1752
#, c-format
msgid "Corrupt MERGE_HEAD file (%s)"
msgstr "Fichier MERGE_HEAD corrompu (%s)"
-#: builtin/commit.c:1760
+#: builtin/commit.c:1759
msgid "could not read MERGE_MODE"
msgstr "impossible de lire MERGE_MODE"
-#: builtin/commit.c:1781
+#: builtin/commit.c:1780
#, c-format
msgid "could not read commit message: %s"
msgstr "impossible de lire le message de validation : %s"
-#: builtin/commit.c:1788
+#: builtin/commit.c:1787
#, c-format
msgid "Aborting commit due to empty commit message.\n"
msgstr "Abandon de la validation dû à un message de validation vide.\n"
-#: builtin/commit.c:1793
+#: builtin/commit.c:1792
#, c-format
msgid "Aborting commit; you did not edit the message.\n"
msgstr "Abandon de la validation ; vous n'avez pas édité le message\n"
-#: builtin/commit.c:1804
+#: builtin/commit.c:1803
#, c-format
msgid "Aborting commit due to empty commit message body.\n"
msgstr ""
"Abandon de la validation dû à un corps de message de validation vide.\n"
-#: builtin/commit.c:1840
+#: builtin/commit.c:1839
msgid ""
"repository has been updated, but unable to write\n"
"new_index file. Check that disk is not full and quota is\n"
@@ -14639,6 +15008,10 @@ msgstr "trouver le réglage de la couleur : slot [stdout-est-tty]"
msgid "Type"
msgstr "Type"
+#: builtin/config.c:154 builtin/env--helper.c:42 builtin/hash-object.c:97
+msgid "type"
+msgstr "type"
+
#: builtin/config.c:154 builtin/env--helper.c:43
msgid "value is given this type"
msgstr "ce type est assigné à la valeur"
@@ -14854,10 +15227,6 @@ msgstr ""
msgid "no such section: %s"
msgstr "section inexistante : %s"
-#: builtin/count-objects.c:90
-msgid "git count-objects [-v] [-H | --human-readable]"
-msgstr "git count-objects [-v] [-H | --human-readable]"
-
#: builtin/count-objects.c:100
msgid "print sizes in human readable format"
msgstr "affiche les tailles dans un format humainement lisible"
@@ -15029,7 +15398,7 @@ msgstr "ne considérer que les étiquettes correspondant à <motif>"
msgid "do not consider tags matching <pattern>"
msgstr "ne pas considérer les étiquettes correspondant à <motif>"
-#: builtin/describe.c:570 builtin/name-rev.c:544
+#: builtin/describe.c:570 builtin/name-rev.c:595
msgid "show abbreviated commit object as fallback"
msgstr "afficher les objets commits abrégés en dernier recours"
@@ -15079,7 +15448,7 @@ msgstr "%s..%s: pas de base de fusion"
msgid "Not a git repository"
msgstr "Ce n'est pas un dépôt git"
-#: builtin/diff.c:537 builtin/grep.c:698
+#: builtin/diff.c:537 builtin/grep.c:700
#, c-format
msgid "invalid object '%s' given."
msgstr "objet spécifié '%s' invalide."
@@ -15197,11 +15566,11 @@ msgstr "passé à `diff`"
msgid "difftool requires worktree or --no-index"
msgstr "difftool exige un arbre de travail ou --no-index"
-#: builtin/difftool.c:744
+#: builtin/difftool.c:745
msgid "no <tool> given for --tool=<tool>"
msgstr "pas d'<outil> spécifié pour --tool=<outil>"
-#: builtin/difftool.c:751
+#: builtin/difftool.c:752
msgid "no <cmd> given for --extcmd=<cmd>"
msgstr "pas de <commande> spécifié pour --extcmd=<commande>"
@@ -15209,10 +15578,6 @@ msgstr "pas de <commande> spécifié pour --extcmd=<commande>"
msgid "git env--helper --type=[bool|ulong] <options> <env-var>"
msgstr "git env--helper --type=[bool|ulong] <options> <var d'env>"
-#: builtin/env--helper.c:42 builtin/hash-object.c:96
-msgid "type"
-msgstr "type"
-
#: builtin/env--helper.c:46
msgid "default for git_env_*(...) to fall back on"
msgstr "valeur par défaut pour git_env_*(...) en cas d'absence"
@@ -15232,15 +15597,15 @@ msgstr ""
#: builtin/env--helper.c:82
#, c-format
msgid ""
-"option `--default' expects an unsigned long value with `--type=ulong`, not `"
-"%s`"
+"option `--default' expects an unsigned long value with `--type=ulong`, not "
+"`%s`"
msgstr ""
"l'option `--default` attend une valeur entier long non signé avec `--"
"type=ulong`, pas `%s`"
#: builtin/fast-export.c:29
-msgid "git fast-export [rev-list-opts]"
-msgstr "git fast-export [options-de-liste-de-révisions]"
+msgid "git fast-export [<rev-list-opts>]"
+msgstr "git fast-export [<options-de-liste-de-révisions>]"
#: builtin/fast-export.c:843
msgid "Error: Cannot export nested tags unless --mark-tags is specified."
@@ -15299,7 +15664,7 @@ msgstr "utiliser la fonction \"done\" pour terminer le flux"
msgid "skip output of blob data"
msgstr "sauter l'affichage de données de blob"
-#: builtin/fast-export.c:1196 builtin/log.c:1841
+#: builtin/fast-export.c:1196 builtin/log.c:1860
msgid "refspec"
msgstr "spécificateur de référence"
@@ -15333,39 +15698,39 @@ msgstr "afficher les ids d'objet originaux des blobs/commits"
msgid "label tags with mark ids"
msgstr "marquer les étiquettes avec des ids de marque"
-#: builtin/fast-import.c:3090
+#: builtin/fast-import.c:3097
#, c-format
msgid "Missing from marks for submodule '%s'"
msgstr "Champs from manquants pour le sous-module '%s'"
-#: builtin/fast-import.c:3092
+#: builtin/fast-import.c:3099
#, c-format
msgid "Missing to marks for submodule '%s'"
msgstr "Champs 'to' manquants pour le sous-module '%s'"
-#: builtin/fast-import.c:3227
+#: builtin/fast-import.c:3234
#, c-format
msgid "Expected 'mark' command, got %s"
msgstr "Commande 'mark' attendue, %s trouvé"
-#: builtin/fast-import.c:3232
+#: builtin/fast-import.c:3239
#, c-format
msgid "Expected 'to' command, got %s"
msgstr "Commande 'to' attendue, %s trouvé"
-#: builtin/fast-import.c:3324
+#: builtin/fast-import.c:3331
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"
-#: builtin/fast-import.c:3379
+#: builtin/fast-import.c:3386
#, 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"
-#: builtin/fetch-pack.c:242
+#: builtin/fetch-pack.c:246
#, c-format
msgid "Lockfile created but not reported: %s"
msgstr "Fichier verrou créé mais non reporté : %s"
@@ -15386,106 +15751,110 @@ msgstr "git fetch --multiple [<options>] [(<dépôt> | <groupe>)...]"
msgid "git fetch --all [<options>]"
msgstr "git fetch --all [<options>]"
-#: builtin/fetch.c:123
+#: builtin/fetch.c:124
msgid "fetch.parallel cannot be negative"
msgstr "fetch.parallel ne peut pas être négatif"
-#: builtin/fetch.c:146 builtin/pull.c:189
+#: builtin/fetch.c:147 builtin/pull.c:189
msgid "fetch from all remotes"
msgstr "récupérer depuis tous les dépôts distants"
-#: builtin/fetch.c:148 builtin/pull.c:249
+#: builtin/fetch.c:149 builtin/pull.c:249
msgid "set upstream for git pull/fetch"
msgstr "définir la branche amont pour git pull/fetch"
-#: builtin/fetch.c:150 builtin/pull.c:192
+#: builtin/fetch.c:151 builtin/pull.c:192
msgid "append to .git/FETCH_HEAD instead of overwriting"
msgstr "ajouter à .git/FETCH_HEAD au lieu de l'écraser"
-#: builtin/fetch.c:152
+#: builtin/fetch.c:153
msgid "use atomic transaction to update references"
msgstr "utiliser une transaction atomique pour mettre à jour les références"
-#: builtin/fetch.c:154 builtin/pull.c:195
+#: builtin/fetch.c:155 builtin/pull.c:195
msgid "path to upload pack on remote end"
msgstr "chemin vers lequel télécharger le paquet sur le poste distant"
-#: builtin/fetch.c:155
+#: builtin/fetch.c:156
msgid "force overwrite of local reference"
msgstr "forcer l'écrasement de la branche locale"
-#: builtin/fetch.c:157
+#: builtin/fetch.c:158
msgid "fetch from multiple remotes"
msgstr "récupérer depuis plusieurs dépôts distants"
-#: builtin/fetch.c:159 builtin/pull.c:199
+#: builtin/fetch.c:160 builtin/pull.c:199
msgid "fetch all tags and associated objects"
msgstr "récupérer toutes les étiquettes et leurs objets associés"
-#: builtin/fetch.c:161
+#: builtin/fetch.c:162
msgid "do not fetch all tags (--no-tags)"
msgstr "ne pas récupérer toutes les étiquettes (--no-tags)"
-#: builtin/fetch.c:163
+#: builtin/fetch.c:164
msgid "number of submodules fetched in parallel"
msgstr "nombre de sous-modules récupérés en parallèle"
-#: builtin/fetch.c:165
+#: builtin/fetch.c:166
msgid "modify the refspec to place all refs within refs/prefetch/"
msgstr ""
"modifier le spécificateur de référence pour placer les références dans refs/"
"prefetch/"
-#: builtin/fetch.c:167 builtin/pull.c:202
+#: builtin/fetch.c:168 builtin/pull.c:202
msgid "prune remote-tracking branches no longer on remote"
msgstr ""
"éliminer les branches de suivi distant si la branche n'existe plus dans le "
"dépôt distant"
-#: builtin/fetch.c:169
+#: builtin/fetch.c:170
msgid "prune local tags no longer on remote and clobber changed tags"
msgstr ""
"éliminer les étiquettes locales qui ont disparu du dépôt distant et qui "
"encombrent les étiquettes modifiées"
-#: builtin/fetch.c:170 builtin/fetch.c:195 builtin/pull.c:123
+#: builtin/fetch.c:171 builtin/fetch.c:199 builtin/pull.c:123
msgid "on-demand"
msgstr "à la demande"
-#: builtin/fetch.c:171
+#: builtin/fetch.c:172
msgid "control recursive fetching of submodules"
msgstr "contrôler la récupération récursive dans les sous-modules"
-#: builtin/fetch.c:176
+#: builtin/fetch.c:177
msgid "write fetched references to the FETCH_HEAD file"
msgstr "écrire les références récupérées dans le fichier FETCH_HEAD"
-#: builtin/fetch.c:177 builtin/pull.c:210
+#: builtin/fetch.c:178 builtin/pull.c:210
msgid "keep downloaded pack"
msgstr "conserver le paquet téléchargé"
-#: builtin/fetch.c:179
+#: builtin/fetch.c:180
msgid "allow updating of HEAD ref"
msgstr "permettre la mise à jour de la référence HEAD"
-#: builtin/fetch.c:182 builtin/fetch.c:188 builtin/pull.c:213
+#: builtin/fetch.c:183 builtin/fetch.c:189 builtin/pull.c:213
#: builtin/pull.c:222
msgid "deepen history of shallow clone"
msgstr "approfondir l'historique d'un clone superficiel"
-#: builtin/fetch.c:184 builtin/pull.c:216
+#: builtin/fetch.c:185 builtin/pull.c:216
msgid "deepen history of shallow repository based on time"
msgstr "approfondir l'historique d'un clone superficiel en fonction d'une date"
-#: builtin/fetch.c:190 builtin/pull.c:225
+#: builtin/fetch.c:191 builtin/pull.c:225
msgid "convert to a complete repository"
msgstr "convertir en un dépôt complet"
-#: builtin/fetch.c:193
+#: builtin/fetch.c:194
+msgid "re-fetch without negotiating common commits"
+msgstr "re-récupérer sans négocier les commits communs"
+
+#: builtin/fetch.c:197
msgid "prepend this to submodule path output"
msgstr "préfixer ceci à la sortie du chemin du sous-module"
-#: builtin/fetch.c:196
+#: builtin/fetch.c:200
msgid ""
"default for recursive fetching of submodules (lower priority than config "
"files)"
@@ -15493,111 +15862,105 @@ msgstr ""
"par défaut pour la récupération récursive de sous-modules (priorité plus "
"basse que les fichiers de config)"
-#: builtin/fetch.c:200 builtin/pull.c:228
+#: builtin/fetch.c:204 builtin/pull.c:228
msgid "accept refs that update .git/shallow"
msgstr "accepter les références qui mettent à jour .git/shallow"
-#: builtin/fetch.c:201 builtin/pull.c:230
+#: builtin/fetch.c:205 builtin/pull.c:230
msgid "refmap"
msgstr "correspondance de référence"
-#: builtin/fetch.c:202 builtin/pull.c:231
+#: builtin/fetch.c:206 builtin/pull.c:231
msgid "specify fetch refmap"
msgstr "spécifier une correspondance de référence pour la récupération"
-#: builtin/fetch.c:209 builtin/pull.c:244
+#: builtin/fetch.c:213 builtin/pull.c:244
msgid "report that we have only objects reachable from this object"
msgstr "rapporte que nous n'avons que des objets joignables depuis cet objet"
-#: builtin/fetch.c:211
+#: builtin/fetch.c:215
msgid "do not fetch a packfile; instead, print ancestors of negotiation tips"
msgstr ""
"ne pas récupérer le fichier paquet ; à la place, afficher les ancêtres des "
"sommets de négociation"
-#: builtin/fetch.c:214 builtin/fetch.c:216
+#: builtin/fetch.c:218 builtin/fetch.c:220
msgid "run 'maintenance --auto' after fetching"
msgstr "lancer 'maintenance --auto' après la récupération"
-#: builtin/fetch.c:218 builtin/pull.c:247
+#: builtin/fetch.c:222 builtin/pull.c:247
msgid "check for forced-updates on all updated branches"
msgstr ""
"vérifier les mises à jour forcées (forced-updates) sur toutes les branches "
"mises à jour"
-#: builtin/fetch.c:220
+#: builtin/fetch.c:224
msgid "write the commit-graph after fetching"
msgstr "écrire le graphe de commits après le rapatriement"
-#: builtin/fetch.c:222
+#: builtin/fetch.c:226
msgid "accept refspecs from stdin"
msgstr "lire les spécificateurs de référence depuis l'entrée standard"
-#: builtin/fetch.c:592
+#: builtin/fetch.c:618
msgid "couldn't find remote ref HEAD"
msgstr "impossible de trouver la référence HEAD distante"
-#: builtin/fetch.c:766
-#, c-format
-msgid "configuration fetch.output contains invalid value %s"
-msgstr ""
-"le paramètre de configuration fetch.output contient une valeur invalide %s"
-
-#: builtin/fetch.c:867
+#: builtin/fetch.c:893
#, c-format
msgid "object %s not found"
msgstr "objet %s non trouvé"
-#: builtin/fetch.c:871
+#: builtin/fetch.c:897
msgid "[up to date]"
msgstr "[à jour]"
-#: builtin/fetch.c:883 builtin/fetch.c:901 builtin/fetch.c:973
+#: builtin/fetch.c:909 builtin/fetch.c:927 builtin/fetch.c:999
msgid "[rejected]"
msgstr "[rejeté]"
-#: builtin/fetch.c:885
+#: builtin/fetch.c:911
msgid "can't fetch in current branch"
msgstr "impossible de récupérer dans la branche actuelle"
-#: builtin/fetch.c:886
+#: builtin/fetch.c:912
msgid "checked out in another worktree"
msgstr "extrait dans un autre arbre de travail"
-#: builtin/fetch.c:896
+#: builtin/fetch.c:922
msgid "[tag update]"
msgstr "[mise à jour de l'étiquette]"
-#: builtin/fetch.c:897 builtin/fetch.c:934 builtin/fetch.c:956
-#: builtin/fetch.c:968
+#: builtin/fetch.c:923 builtin/fetch.c:960 builtin/fetch.c:982
+#: builtin/fetch.c:994
msgid "unable to update local ref"
msgstr "impossible de mettre à jour la référence locale"
-#: builtin/fetch.c:901
+#: builtin/fetch.c:927
msgid "would clobber existing tag"
msgstr "écraserait l'étiquette existante"
-#: builtin/fetch.c:923
+#: builtin/fetch.c:949
msgid "[new tag]"
msgstr "[nouvelle étiquette]"
-#: builtin/fetch.c:926
+#: builtin/fetch.c:952
msgid "[new branch]"
msgstr "[nouvelle branche]"
-#: builtin/fetch.c:929
+#: builtin/fetch.c:955
msgid "[new ref]"
msgstr "[nouvelle référence]"
-#: builtin/fetch.c:968
+#: builtin/fetch.c:994
msgid "forced update"
msgstr "mise à jour forcée"
-#: builtin/fetch.c:973
+#: builtin/fetch.c:999
msgid "non-fast-forward"
msgstr "pas en avance rapide"
-#: builtin/fetch.c:1076
+#: builtin/fetch.c:1102
msgid ""
"fetch normally indicates which branches had a forced update,\n"
"but that check has been disabled; to re-enable, use '--show-forced-updates'\n"
@@ -15607,7 +15970,7 @@ msgstr ""
"mais ceci a été désactivé. Pour ré-activer, utilisez le drapeau\n"
"'--show-forced-updates' ou lancez 'git config fetch.showForcedUpdates true'"
-#: builtin/fetch.c:1080
+#: builtin/fetch.c:1106
#, c-format
msgid ""
"it took %.2f seconds to check forced updates; you can use\n"
@@ -15619,24 +15982,24 @@ msgstr ""
"Vous pouvez utiliser '--no-show-forced-updates' ou lancer\n"
"'git config fetch.showForcedUpdates false' pour éviter cette vérification\n"
-#: builtin/fetch.c:1112
+#: builtin/fetch.c:1136
#, c-format
msgid "%s did not send all necessary objects\n"
msgstr "%s n'a pas envoyé tous les objets nécessaires\n"
-#: builtin/fetch.c:1141
+#: builtin/fetch.c:1156
#, c-format
msgid "rejected %s because shallow roots are not allowed to be updated"
msgstr ""
"%s rejeté parce que les mises à jour de racines superficielles ne sont pas "
"permises"
-#: builtin/fetch.c:1231 builtin/fetch.c:1379
+#: builtin/fetch.c:1259 builtin/fetch.c:1418
#, c-format
msgid "From %.*s\n"
msgstr "Depuis %.*s\n"
-#: builtin/fetch.c:1252
+#: builtin/fetch.c:1269
#, c-format
msgid ""
"some local refs could not be updated; try running\n"
@@ -15645,49 +16008,49 @@ msgstr ""
"des références locales n'ont pas pu être mises à jour ; essayez de lancer\n"
" 'git remote prune %s' pour supprimer des branches anciennes en conflit"
-#: builtin/fetch.c:1349
+#: builtin/fetch.c:1377
#, c-format
msgid " (%s will become dangling)"
msgstr " (%s sera en suspens)"
-#: builtin/fetch.c:1350
+#: builtin/fetch.c:1378
#, c-format
msgid " (%s has become dangling)"
msgstr " (%s est devenu en suspens)"
-#: builtin/fetch.c:1382
+#: builtin/fetch.c:1421
msgid "[deleted]"
msgstr "[supprimé]"
-#: builtin/fetch.c:1383 builtin/remote.c:1128
+#: builtin/fetch.c:1422 builtin/remote.c:1153
msgid "(none)"
msgstr "(aucun(e))"
-#: builtin/fetch.c:1405
+#: builtin/fetch.c:1446
#, c-format
msgid "refusing to fetch into branch '%s' checked out at '%s'"
msgstr "refus de récupérer dans la branche '%s' extraite dans '%s'"
-#: builtin/fetch.c:1425
+#: builtin/fetch.c:1466
#, c-format
msgid "option \"%s\" value \"%s\" is not valid for %s"
msgstr "la valeur \"%2$s\" de l'option \"%1$s\" est invalide pour %3$s"
-#: builtin/fetch.c:1428
+#: builtin/fetch.c:1469
#, c-format
msgid "option \"%s\" is ignored for %s\n"
msgstr "l'option \"%s\" est ignorée pour %s\n"
-#: builtin/fetch.c:1455
+#: builtin/fetch.c:1496
#, c-format
msgid "the object %s does not exist"
msgstr "l'objet %s n'existe pas"
-#: builtin/fetch.c:1643
+#: builtin/fetch.c:1748
msgid "multiple branches detected, incompatible with --set-upstream"
msgstr "branches multiples détectées, imcompatible avec --set-upstream"
-#: builtin/fetch.c:1655
+#: builtin/fetch.c:1760
#, c-format
msgid ""
"could not set upstream of HEAD to '%s' from '%s' when it does not point to "
@@ -15696,19 +16059,19 @@ msgstr ""
"impossible de régler la branche amont de HEAD à '%s' depuis '%s' qui ne "
"pointe sur aucune branche."
-#: builtin/fetch.c:1668
+#: builtin/fetch.c:1773
msgid "not setting upstream for a remote remote-tracking branch"
msgstr "dépôt amont non défini pour la branche de suivi à distance"
-#: builtin/fetch.c:1670
+#: builtin/fetch.c:1775
msgid "not setting upstream for a remote tag"
msgstr "dépôt amont non défini pour l'étiquette distante"
-#: builtin/fetch.c:1672
+#: builtin/fetch.c:1777
msgid "unknown branch type"
msgstr "type de branche inconnu"
-#: builtin/fetch.c:1674
+#: builtin/fetch.c:1779
msgid ""
"no source branch found;\n"
"you need to specify exactly one branch with the --set-upstream option"
@@ -15716,22 +16079,22 @@ msgstr ""
"aucune branche source trouvée.\n"
"Vous devez spécifier exactement une branche avec l'option --set-upstream"
-#: builtin/fetch.c:1804 builtin/fetch.c:1867
+#: builtin/fetch.c:1904 builtin/fetch.c:1967
#, c-format
msgid "Fetching %s\n"
msgstr "Récupération de %s\n"
-#: builtin/fetch.c:1814 builtin/fetch.c:1869
+#: builtin/fetch.c:1914 builtin/fetch.c:1969
#, c-format
msgid "could not fetch %s"
msgstr "impossible de récupérer %s"
-#: builtin/fetch.c:1826
+#: builtin/fetch.c:1926
#, c-format
msgid "could not fetch '%s' (exit code: %d)\n"
msgstr "impossible de récupérer '%s' (code de sortie : %d)\n"
-#: builtin/fetch.c:1930
+#: builtin/fetch.c:2030
msgid ""
"no remote repository specified; please specify either a URL or a\n"
"remote name from which new revisions should be fetched"
@@ -15739,50 +16102,50 @@ msgstr ""
"Aucun dépôt distant spécifié. Veuillez spécifier une URL ou un nom\n"
"distant depuis lesquels les nouvelles révisions devraient être récupérées"
-#: builtin/fetch.c:1966
+#: builtin/fetch.c:2066
msgid "you need to specify a tag name"
msgstr "Vous devez spécifier un nom d'étiquette"
-#: builtin/fetch.c:2032
-msgid "--negotiate-only needs one or more --negotiate-tip=*"
-msgstr "--negotiate-only nécessite au moins un --negotiate-tip=*"
+#: builtin/fetch.c:2156
+msgid "--negotiate-only needs one or more --negotiation-tip=*"
+msgstr "--negotiate-only nécessite au moins un --negotiation-tip=*"
-#: builtin/fetch.c:2036
+#: builtin/fetch.c:2160
msgid "negative depth in --deepen is not supported"
msgstr "une profondeur négative dans --deepen n'est pas supportée"
-#: builtin/fetch.c:2045
+#: builtin/fetch.c:2169
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:2062
+#: builtin/fetch.c:2186
msgid "fetch --all does not take a repository argument"
msgstr "fetch --all n'accepte pas d'argument de dépôt"
-#: builtin/fetch.c:2064
+#: builtin/fetch.c:2188
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:2073
+#: builtin/fetch.c:2197
#, c-format
msgid "no such remote or remote group: %s"
msgstr "distant ou groupe distant inexistant : %s"
-#: builtin/fetch.c:2081
+#: builtin/fetch.c:2205
msgid "fetching a group and specifying refspecs does not make sense"
msgstr ""
"la récupération d'un groupe avec des spécifications de référence n'a pas de "
"sens"
-#: builtin/fetch.c:2097
+#: builtin/fetch.c:2221
msgid "must supply remote when using --negotiate-only"
msgstr "le distant doit être fourni lors de l'utilisation de --negotiate-only"
-#: builtin/fetch.c:2102
+#: builtin/fetch.c:2226
msgid "protocol does not support --negotiate-only, exiting"
msgstr "Le protocole ne prend pas en charge --negotiate-only, abandon"
-#: builtin/fetch.c:2121
+#: builtin/fetch.c:2246
msgid ""
"--filter can only be used with the remote configured in extensions."
"partialclone"
@@ -15790,11 +16153,11 @@ msgstr ""
"--filter ne peut être utilisé qu'avec le dépôt distant configuré dans "
"extensions.partialclone"
-#: builtin/fetch.c:2125
+#: builtin/fetch.c:2250
msgid "--atomic can only be used when fetching from one remote"
msgstr "--atomic ne peut être utilisée qu'en récupérant depuis un seul distant"
-#: builtin/fetch.c:2129
+#: builtin/fetch.c:2254
msgid "--stdin can only be used when fetching from one remote"
msgstr "--stdin ne peut être utilisée qu'en récupérant depuis un seul distant"
@@ -15864,7 +16227,7 @@ msgstr "échapper les champs réservés pour compatibilité avec Tcl"
msgid "show only <n> matched refs"
msgstr "n'afficher que <n> références correspondant"
-#: builtin/for-each-ref.c:42 builtin/tag.c:481
+#: builtin/for-each-ref.c:42 builtin/tag.c:482
msgid "respect format colors"
msgstr "respecter les couleurs de formatage"
@@ -16058,7 +16421,7 @@ msgstr "Vérification des répertoires d'objet"
msgid "Checking %s link"
msgstr "Vérification du lien %s"
-#: builtin/fsck.c:710 builtin/index-pack.c:859
+#: builtin/fsck.c:710 builtin/index-pack.c:862
#, c-format
msgid "invalid %s"
msgstr "%s invalide"
@@ -16128,7 +16491,7 @@ msgstr "inspecter aussi les objets pack et alternatifs"
msgid "check only connectivity"
msgstr "ne vérifier que la connectivité"
-#: builtin/fsck.c:798 builtin/mktag.c:76
+#: builtin/fsck.c:798 builtin/mktag.c:75
msgid "enable more strict checking"
msgstr "activer une vérification plus strict"
@@ -16158,6 +16521,118 @@ msgstr "%s : objet manquant"
msgid "invalid parameter: expected sha1, got '%s'"
msgstr "paramètre invalide : sha-1 attendu, '%s' trouvé"
+#: builtin/fsmonitor--daemon.c:13
+msgid "git fsmonitor--daemon start [<options>]"
+msgstr "git fsmonitor--daemon start [<options>]"
+
+#: builtin/fsmonitor--daemon.c:14
+msgid "git fsmonitor--daemon run [<options>]"
+msgstr "git fsmonitor--daemon run [<options>]"
+
+#: builtin/fsmonitor--daemon.c:15
+msgid "git fsmonitor--daemon stop"
+msgstr "git fsmonitor--daemon stop"
+
+#: builtin/fsmonitor--daemon.c:16
+msgid "git fsmonitor--daemon status"
+msgstr "git fsmonitor--daemon status"
+
+#: builtin/fsmonitor--daemon.c:38 builtin/fsmonitor--daemon.c:47
+#, c-format
+msgid "value of '%s' out of range: %d"
+msgstr "valeur de '%s' hors de gamme : %d"
+
+#: builtin/fsmonitor--daemon.c:57
+#, c-format
+msgid "value of '%s' not bool or int: %d"
+msgstr "la valeur de '%s' n'est ni bool ni int : %d"
+
+#: builtin/fsmonitor--daemon.c:99
+#, c-format
+msgid "fsmonitor-daemon is watching '%s'\n"
+msgstr "fsmonitor-daemon surveille '%s'\n"
+
+#: builtin/fsmonitor--daemon.c:104
+#, c-format
+msgid "fsmonitor-daemon is not watching '%s'\n"
+msgstr "fsmonitor-daemon ne surveille pas '%s'\n"
+
+#: builtin/fsmonitor--daemon.c:170
+#, c-format
+msgid "could not create fsmonitor cookie '%s'"
+msgstr "impossible de créer le cookie fsmonitor '%s'"
+
+#: builtin/fsmonitor--daemon.c:753
+#, c-format
+msgid "fsmonitor: cookie_result '%d' != SEEN"
+msgstr "fsmonitor: cookie_result '%d' != SEEN"
+
+#: builtin/fsmonitor--daemon.c:1187
+#, c-format
+msgid "could not start IPC thread pool on '%s'"
+msgstr "impossible de démarrer le stock de fils IPC sur '%s'"
+
+#: builtin/fsmonitor--daemon.c:1199
+msgid "could not start fsmonitor listener thread"
+msgstr "impossible de démarrer le fil d'écoute fsmonitor"
+
+#: builtin/fsmonitor--daemon.c:1297
+msgid "could not initialize listener thread"
+msgstr "impossible de démarrer le fil d'écoute"
+
+#: builtin/fsmonitor--daemon.c:1328 builtin/fsmonitor--daemon.c:1383
+#, c-format
+msgid "fsmonitor--daemon is already running '%s'"
+msgstr "fsmonitor--daemon exécute déjà '%s'"
+
+#: builtin/fsmonitor--daemon.c:1332
+#, c-format
+msgid "running fsmonitor-daemon in '%s'\n"
+msgstr "lancement du fil fsmonitor-daemon dans '%s'\n"
+
+#: builtin/fsmonitor--daemon.c:1387
+#, c-format
+msgid "starting fsmonitor-daemon in '%s'\n"
+msgstr "démarrer fsmonitor-daemon dans '%s'\n"
+
+#: builtin/fsmonitor--daemon.c:1413
+msgid "daemon failed to start"
+msgstr "échec du démarrage du daemon"
+
+#: builtin/fsmonitor--daemon.c:1416
+msgid "daemon not online yet"
+msgstr "le daemon n'est pas encore en ligne"
+
+#: builtin/fsmonitor--daemon.c:1419
+msgid "daemon terminated"
+msgstr "le daemon s'est terminé"
+
+#: builtin/fsmonitor--daemon.c:1429
+msgid "detach from console"
+msgstr "détacher de la console"
+
+#: builtin/fsmonitor--daemon.c:1432
+msgid "use <n> ipc worker threads"
+msgstr "utiliser <n> fils de travail ipc"
+
+#: builtin/fsmonitor--daemon.c:1435
+msgid "max seconds to wait for background daemon startup"
+msgstr "nombre max de secondes à attendre que le daemon démarre"
+
+#: builtin/fsmonitor--daemon.c:1449
+#, c-format
+msgid "invalid 'ipc-threads' value (%d)"
+msgstr "valeur invalide de 'ipc-threads' (%d)"
+
+#: builtin/fsmonitor--daemon.c:1464
+#, c-format
+msgid "Unhandled subcommand '%s'"
+msgstr "Sous-commande non-gérée '%s'"
+
+#: builtin/fsmonitor--daemon.c:1477
+msgid "fsmonitor--daemon not supported on this platform"
+msgstr "fsmonitor--daemon non géré sur cette plateforme"
+
#: builtin/gc.c:39
msgid "git gc [<options>]"
msgstr "git gc [<options>]"
@@ -16413,8 +16888,8 @@ msgstr "échec du démarrage de systemctl"
msgid "failed to run systemctl"
msgstr "échec pour lancer systemctl"
-#: builtin/gc.c:2210 builtin/gc.c:2215 builtin/worktree.c:62
-#: builtin/worktree.c:944
+#: builtin/gc.c:2210 builtin/gc.c:2215 builtin/worktree.c:63
+#: builtin/worktree.c:1024
#, c-format
msgid "failed to delete '%s'"
msgstr "échec de la suppression de '%s'"
@@ -16464,16 +16939,16 @@ msgstr "git maintenance <subcommand> [<options>]"
msgid "invalid subcommand: %s"
msgstr "sous-commande invalide : %s"
-#: builtin/grep.c:30
+#: builtin/grep.c:32
msgid "git grep [<options>] [-e] <pattern> [<rev>...] [[--] <path>...]"
msgstr "git grep [<options>] [-e] <motif> [<révision>...] [[--] <chemin>...]"
-#: builtin/grep.c:239
+#: builtin/grep.c:241
#, c-format
msgid "grep: failed to create thread: %s"
msgstr "grep : échec de création du fil: %s"
-#: builtin/grep.c:293
+#: builtin/grep.c:295
#, c-format
msgid "invalid number of threads specified (%d) for %s"
msgstr "nombre de fils spécifié invalide (%d) pour %s"
@@ -16482,266 +16957,258 @@ msgstr "nombre de fils spécifié invalide (%d) pour %s"
#. variable for tweaking threads, currently
#. grep.threads
#.
-#: builtin/grep.c:301 builtin/index-pack.c:1582 builtin/index-pack.c:1785
-#: builtin/pack-objects.c:3142
+#: builtin/grep.c:303 builtin/index-pack.c:1587 builtin/index-pack.c:1791
+#: builtin/pack-objects.c:3150
#, c-format
msgid "no threads support, ignoring %s"
msgstr "pas de support des fils, ignore %s"
-#: builtin/grep.c:488 builtin/grep.c:617 builtin/grep.c:657
+#: builtin/grep.c:490 builtin/grep.c:619 builtin/grep.c:659
#, c-format
msgid "unable to read tree (%s)"
msgstr "impossible de lire l'arbre (%s)"
-#: builtin/grep.c:672
+#: builtin/grep.c:674
#, c-format
msgid "unable to grep from object of type %s"
msgstr "impossible de faire un grep sur un objet de type %s"
-#: builtin/grep.c:752
+#: builtin/grep.c:754
#, c-format
msgid "switch `%c' expects a numerical value"
msgstr "l'option '%c' attend une valeur numérique"
-#: builtin/grep.c:851
+#: builtin/grep.c:852
msgid "search in index instead of in the work tree"
msgstr "rechercher dans l'index plutôt que dans la copie de travail"
-#: builtin/grep.c:853
+#: builtin/grep.c:854
msgid "find in contents not managed by git"
msgstr "rechercher dans les contenus non gérés par git"
-#: builtin/grep.c:855
+#: builtin/grep.c:856
msgid "search in both tracked and untracked files"
msgstr "rechercher dans les fichiers suivis et non-suivis"
-#: builtin/grep.c:857
+#: builtin/grep.c:858
msgid "ignore files specified via '.gitignore'"
msgstr "ignorer les fichiers spécifiés via '.gitignore'"
-#: builtin/grep.c:859
+#: builtin/grep.c:860
msgid "recursively search in each submodule"
msgstr "rechercher récursivement dans chaque sous-module"
-#: builtin/grep.c:862
+#: builtin/grep.c:863
msgid "show non-matching lines"
msgstr "afficher les lignes qui ne correspondent pas"
-#: builtin/grep.c:864
+#: builtin/grep.c:865
msgid "case insensitive matching"
msgstr "correspondance insensible à la casse"
-#: builtin/grep.c:866
+#: builtin/grep.c:867
msgid "match patterns only at word boundaries"
msgstr "rechercher les motifs aux séparateurs de mots"
-#: builtin/grep.c:868
+#: builtin/grep.c:869
msgid "process binary files as text"
msgstr "traiter les fichiers binaires comme texte"
-#: builtin/grep.c:870
+#: builtin/grep.c:871
msgid "don't match patterns in binary files"
msgstr "ne pas chercher les motifs dans les fichiers binaires"
-#: builtin/grep.c:873
+#: builtin/grep.c:874
msgid "process binary files with textconv filters"
msgstr "traiter les fichiers binaires avec les filtres textconv"
-#: builtin/grep.c:875
+#: builtin/grep.c:876
msgid "search in subdirectories (default)"
msgstr "rechercher dans les sous-répertoires (défaut)"
-#: builtin/grep.c:877
+#: builtin/grep.c:878
msgid "descend at most <depth> levels"
msgstr "descendre au plus de <profondeur> dans l'arborescence"
-#: builtin/grep.c:881
+#: builtin/grep.c:882
msgid "use extended POSIX regular expressions"
msgstr "utiliser des expressions régulières étendues POSIX"
-#: builtin/grep.c:884
+#: builtin/grep.c:885
msgid "use basic POSIX regular expressions (default)"
msgstr "utiliser des expressions régulières basiques POSIX (par défaut)"
-#: builtin/grep.c:887
+#: builtin/grep.c:888
msgid "interpret patterns as fixed strings"
msgstr "interpréter les motifs comme de chaînes fixes"
-#: builtin/grep.c:890
+#: builtin/grep.c:891
msgid "use Perl-compatible regular expressions"
msgstr "utiliser des expressions régulières compatibles avec Perl"
-#: builtin/grep.c:893
+#: builtin/grep.c:894
msgid "show line numbers"
msgstr "afficher les numéros de ligne"
-#: builtin/grep.c:894
+#: builtin/grep.c:895
msgid "show column number of first match"
msgstr "afficher le numéro de colonne de la première correspondance"
-#: builtin/grep.c:895
+#: builtin/grep.c:896
msgid "don't show filenames"
msgstr "ne pas pas afficher les noms de fichier"
-#: builtin/grep.c:896
+#: builtin/grep.c:897
msgid "show filenames"
msgstr "afficher les noms de fichier"
-#: builtin/grep.c:898
+#: builtin/grep.c:899
msgid "show filenames relative to top directory"
msgstr "afficher les noms de fichiers relativement au répertoire de base"
-#: builtin/grep.c:900
+#: builtin/grep.c:901
msgid "show only filenames instead of matching lines"
msgstr "n'afficher que les noms de fichiers au lieu des lignes correspondant"
-#: builtin/grep.c:902
+#: builtin/grep.c:903
msgid "synonym for --files-with-matches"
msgstr "synonyme pour --files-with-matches"
-#: builtin/grep.c:905
+#: builtin/grep.c:906
msgid "show only the names of files without match"
msgstr "n'afficher que les noms des fichiers sans correspondance"
-#: builtin/grep.c:907
+#: builtin/grep.c:908
msgid "print NUL after filenames"
msgstr "imprimer une caractère NUL après le noms de fichier"
-#: builtin/grep.c:910
+#: builtin/grep.c:911
msgid "show only matching parts of a line"
msgstr "n'afficher que les parties correspondantes d'une ligne"
-#: builtin/grep.c:912
+#: builtin/grep.c:913
msgid "show the number of matches instead of matching lines"
msgstr "afficher le nombre de correspondances au lieu des lignes correspondant"
-#: builtin/grep.c:913
+#: builtin/grep.c:914
msgid "highlight matches"
msgstr "mettre en évidence les correspondances"
-#: builtin/grep.c:915
+#: builtin/grep.c:916
msgid "print empty line between matches from different files"
msgstr ""
"imprimer une ligne vide entre les correspondances de fichiers différents"
-#: builtin/grep.c:917
+#: builtin/grep.c:918
msgid "show filename only once above matches from same file"
msgstr ""
"afficher le nom de fichier une fois au dessus des correspondances du même "
"fichier"
-#: builtin/grep.c:920
+#: builtin/grep.c:921
msgid "show <n> context lines before and after matches"
msgstr "afficher <n> lignes de contexte avant et après les correspondances"
-#: builtin/grep.c:923
+#: builtin/grep.c:924
msgid "show <n> context lines before matches"
msgstr "afficher <n> lignes de contexte avant les correspondances"
-#: builtin/grep.c:925
+#: builtin/grep.c:926
msgid "show <n> context lines after matches"
msgstr "afficher <n> lignes de contexte après les correspondances"
-#: builtin/grep.c:927
+#: builtin/grep.c:928
msgid "use <n> worker threads"
msgstr "utiliser <n> fils de travail"
-#: builtin/grep.c:928
+#: builtin/grep.c:929
msgid "shortcut for -C NUM"
msgstr "raccourci pour -C NUM"
-#: builtin/grep.c:931
+#: builtin/grep.c:932
msgid "show a line with the function name before matches"
msgstr ""
"afficher une ligne avec le nom de la fonction avant les correspondances"
-#: builtin/grep.c:933
+#: builtin/grep.c:934
msgid "show the surrounding function"
msgstr "afficher la fonction contenante"
-#: builtin/grep.c:936
+#: builtin/grep.c:937
msgid "read patterns from file"
msgstr "lire les motifs depuis fichier"
-#: builtin/grep.c:938
+#: builtin/grep.c:939
msgid "match <pattern>"
msgstr "rechercher <motif>"
-#: builtin/grep.c:940
+#: builtin/grep.c:941
msgid "combine patterns specified with -e"
msgstr "combiner les motifs spécifiés par -e"
-#: builtin/grep.c:952
+#: builtin/grep.c:953
msgid "indicate hit with exit status without output"
msgstr ""
"indiquer des correspondances avec le code de sortie mais sans rien afficher"
-#: builtin/grep.c:954
+#: builtin/grep.c:955
msgid "show only matches from files that match all patterns"
msgstr ""
"n'afficher que les correspondances de fichiers qui correspondent à tous les "
"motifs"
-#: builtin/grep.c:957
+#: builtin/grep.c:958
msgid "pager"
msgstr "pagineur"
-#: builtin/grep.c:957
+#: builtin/grep.c:958
msgid "show matching files in the pager"
msgstr "afficher les fichiers correspondant dans le pagineur"
-#: builtin/grep.c:961
+#: builtin/grep.c:962
msgid "allow calling of grep(1) (ignored by this build)"
msgstr "permettre l'appel de grep(1) (ignoré par ce build)"
-#: builtin/grep.c:1027
+#: builtin/grep.c:1028
msgid "no pattern given"
msgstr "aucun motif fourni"
-#: builtin/grep.c:1063
+#: builtin/grep.c:1064
msgid "--no-index or --untracked cannot be used with revs"
msgstr ""
"--no-index ou --untracked ne peuvent pas être utilisés avec des révisions"
-#: builtin/grep.c:1071
+#: builtin/grep.c:1072
#, c-format
msgid "unable to resolve revision: %s"
msgstr "impossible de résoudre la révision : %s"
-#: builtin/grep.c:1101
+#: builtin/grep.c:1102
msgid "--untracked not supported with --recurse-submodules"
msgstr "--untracked non supportée avec --recurse-submodules"
-#: builtin/grep.c:1105
+#: builtin/grep.c:1106
msgid "invalid option combination, ignoring --threads"
msgstr "option de combinaison invalide, ignore --threads"
-#: builtin/grep.c:1108 builtin/pack-objects.c:4059
+#: builtin/grep.c:1109 builtin/pack-objects.c:4084
msgid "no threads support, ignoring --threads"
msgstr "pas de support des fils, ignore --threads"
-#: builtin/grep.c:1111 builtin/index-pack.c:1579 builtin/pack-objects.c:3139
+#: builtin/grep.c:1112 builtin/index-pack.c:1584 builtin/pack-objects.c:3147
#, c-format
msgid "invalid number of threads specified (%d)"
msgstr "nombre de fils spécifié invalide (%d)"
-#: builtin/grep.c:1145
+#: builtin/grep.c:1146
msgid "--open-files-in-pager only works on the worktree"
msgstr "--open-files-in-pager ne fonctionne que sur la copie de travail"
-#: builtin/grep.c:1171
-msgid "--cached or --untracked cannot be used with --no-index"
-msgstr "--cached ou --untracked ne peuvent pas être utilisés avec --no-index"
-
-#: builtin/grep.c:1174
-msgid "--untracked cannot be used with --cached"
-msgstr "--untracked ne peut pas être utilisé avec --cached"
-
-#: builtin/grep.c:1180
+#: builtin/grep.c:1179
msgid "--[no-]exclude-standard cannot be used for tracked contents"
msgstr "--[no-]exclude-standard ne peut pas être utilisé avec du contenu suivi"
-#: builtin/grep.c:1188
+#: builtin/grep.c:1187
msgid "both --cached and trees are given"
msgstr "--cached et des arbres sont fournis en même temps"
@@ -16753,109 +17220,101 @@ msgstr ""
"git hash-object [-t <type>] [-w] [--path=<fichier> | --no-filters] [--stdin] "
"[--] <fichier>..."
-#: builtin/hash-object.c:84
-msgid "git hash-object --stdin-paths"
-msgstr "git hash-object --stdin-paths"
-
-#: builtin/hash-object.c:96
+#: builtin/hash-object.c:97
msgid "object type"
msgstr "type d'objet"
-#: builtin/hash-object.c:97
+#: builtin/hash-object.c:98
msgid "write the object into the object database"
msgstr "écrire l'objet dans la base de donnée d'objets"
-#: builtin/hash-object.c:99
+#: builtin/hash-object.c:100
msgid "read the object from stdin"
msgstr "lire l'objet depuis l'entrée standard"
-#: builtin/hash-object.c:101
+#: builtin/hash-object.c:102
msgid "store file as is without filters"
msgstr "stocker le fichier tel quel sans filtrage"
-#: builtin/hash-object.c:102
+#: builtin/hash-object.c:103
msgid ""
"just hash any random garbage to create corrupt objects for debugging Git"
msgstr ""
"juste hasher n'importe quel contenu pour créer des objets corrompus pour "
"debugger Git"
-#: builtin/hash-object.c:103
+#: builtin/hash-object.c:104
msgid "process file as it were from this path"
msgstr "traiter le fichier comme s'il venait de ce chemin"
-#: builtin/help.c:55
+#: builtin/help.c:57
msgid "print all available commands"
msgstr "afficher toutes les commandes disponibles"
-#: builtin/help.c:57
+#: builtin/help.c:60
+msgid "show external commands in --all"
+msgstr "afficher les commandes externes dans --all"
+
+#: builtin/help.c:61
+msgid "show aliases in --all"
+msgstr "afficher les alias dans --all"
+
+#: builtin/help.c:62
msgid "exclude guides"
msgstr "exclure les guides"
-#: builtin/help.c:58
+#: builtin/help.c:63
msgid "show man page"
msgstr "afficher la page de manuel"
-#: builtin/help.c:59
+#: builtin/help.c:64
msgid "show manual in web browser"
msgstr "afficher le manuel dans un navigateur web"
-#: builtin/help.c:61
+#: builtin/help.c:66
msgid "show info page"
msgstr "afficher la page info"
-#: builtin/help.c:63
+#: builtin/help.c:68
msgid "print command description"
msgstr "afficher la description de la commande"
-#: builtin/help.c:65
+#: builtin/help.c:70
msgid "print list of useful guides"
msgstr "afficher une liste de guides utiles"
-#: builtin/help.c:67
+#: builtin/help.c:72
msgid "print all configuration variable names"
msgstr "afficher tous les noms de variables de configuration"
-#: builtin/help.c:78
-msgid ""
-"git help [-a|--all] [--[no-]verbose]]\n"
-" [[-i|--info] [-m|--man] [-w|--web]] [<command>]"
-msgstr ""
-"git help [-a|--all] [--[no-]verbose]]\n"
-" [[-i|--info] [-m|--man] [-w|--web]] [<commande>]"
-
-#: builtin/help.c:80
-msgid "git help [-g|--guides]"
-msgstr "git help [-g|--guides]"
-
-#: builtin/help.c:81
-msgid "git help [-c|--config]"
-msgstr "git help [-c|--config]"
+#: builtin/help.c:84
+msgid "git help [[-i|--info] [-m|--man] [-w|--web]] [<command>]"
+msgstr "git help [[-i|--info] [-m|--man] [-w|--web]] [<commande>]"
-#: builtin/help.c:196
+#: builtin/help.c:201
#, c-format
msgid "unrecognized help format '%s'"
msgstr "format d'aide non reconnu '%s'"
-#: builtin/help.c:222
+#: builtin/help.c:227
msgid "Failed to start emacsclient."
msgstr "Échec de démarrage d'emacsclient."
-#: builtin/help.c:235
+#: builtin/help.c:240
msgid "Failed to parse emacsclient version."
msgstr "Échec d'analyse de la version d'emacsclient."
-#: builtin/help.c:243
+#: builtin/help.c:248
#, c-format
msgid "emacsclient version '%d' too old (< 22)."
msgstr "la version d'emacsclient '%d' est trop ancienne (<22)."
-#: builtin/help.c:261 builtin/help.c:283 builtin/help.c:293 builtin/help.c:301
+#: builtin/help.c:266 builtin/help.c:288 builtin/help.c:298 builtin/help.c:306
#, c-format
msgid "failed to exec '%s'"
msgstr "échec de l'exécution de '%s'"
-#: builtin/help.c:339
+#: builtin/help.c:344
#, c-format
msgid ""
"'%s': path for unsupported man viewer.\n"
@@ -16864,7 +17323,7 @@ msgstr ""
"'%s' : chemin pour l'utilitaire de visualisation de manuel non supporté.\n"
"Veuillez utiliser plutôt 'man.<outil>.cmd'."
-#: builtin/help.c:351
+#: builtin/help.c:356
#, c-format
msgid ""
"'%s': cmd for supported man viewer.\n"
@@ -16873,42 +17332,59 @@ msgstr ""
"'%s' : chemin pour l'utilitaire de visualisation de manuel supporté.\n"
"Veuillez utiliser plutôt 'man.<outil>.cmd'."
-#: builtin/help.c:466
+#: builtin/help.c:471
#, c-format
msgid "'%s': unknown man viewer."
msgstr "'%s' : visualiseur de manuel inconnu."
-#: builtin/help.c:482
+#: builtin/help.c:487
msgid "no man viewer handled the request"
msgstr "aucun visualiseur de manuel n'a pris en charge la demande"
-#: builtin/help.c:489
+#: builtin/help.c:494
msgid "no info viewer handled the request"
msgstr "aucun visualiseur de 'info' n'a pris en charge la demande"
-#: builtin/help.c:550 builtin/help.c:561 git.c:348
+#: builtin/help.c:555 builtin/help.c:566 git.c:348
#, c-format
msgid "'%s' is aliased to '%s'"
msgstr "'%s' est un alias de '%s'"
-#: builtin/help.c:564 git.c:380
+#: builtin/help.c:569 git.c:380
#, c-format
msgid "bad alias.%s string: %s"
msgstr "mauvais chaîne alias.%s : %s"
-#: builtin/help.c:580
-msgid "this option doesn't take any other arguments"
-msgstr "cette option n'accepte pas d'autre argument"
+#: builtin/help.c:611
+#, c-format
+msgid "the '%s' option doesn't take any non-option arguments"
+msgstr "l'option '%s' n'accepte pas d'argument sans option"
-#: builtin/help.c:601 builtin/help.c:628
+#: builtin/help.c:631
+msgid ""
+"the '--no-[external-commands|aliases]' options can only be used with '--all'"
+msgstr ""
+"les options '--no-[external-commands|aliases]' ne peuvent être utilisées "
+"qu'avec '--all'"
+
+#: builtin/help.c:643 builtin/help.c:671
#, c-format
msgid "usage: %s%s"
msgstr "usage : %s%s"
-#: builtin/help.c:623
+#: builtin/help.c:666
msgid "'git help config' for more information"
msgstr "'git help config' pour plus d'information"
+#: builtin/hook.c:10
+msgid "git hook run [--ignore-missing] <hook-name> [-- <hook-args>]"
+msgstr ""
+"git hook run [--ignore-missing] <nom-de-crochet> [-- <arguments-de-crochet>]"
+
+#: builtin/hook.c:30
+msgid "silently ignore missing requested <hook-name>"
+msgstr "ignorer silencieusement le <nom-de-crochet> requis manquant"
+
#: builtin/index-pack.c:221
#, c-format
msgid "object type mismatch at %s"
@@ -16943,245 +17419,246 @@ 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:324 builtin/pack-objects.c:756
+#: builtin/index-pack.c:324 builtin/pack-objects.c:754
msgid "pack too large for current definition of off_t"
msgstr "le paquet est trop grand pour la définition actuelle de off_t"
-#: builtin/index-pack.c:327 builtin/unpack-objects.c:95
-msgid "pack exceeds maximum allowed size"
-msgstr "le paquet dépasse la taille maximale permise"
+#: builtin/index-pack.c:329
+#, c-format
+msgid "pack exceeds maximum allowed size (%s)"
+msgstr "le paquet dépasse la taille maximale permise (%s)"
-#: builtin/index-pack.c:358
+#: builtin/index-pack.c:362
msgid "pack signature mismatch"
msgstr "la signature du paquet ne correspond pas"
-#: builtin/index-pack.c:360
+#: builtin/index-pack.c:364
#, c-format
msgid "pack version %<PRIu32> unsupported"
msgstr "la version de paquet %<PRIu32> non supportée"
-#: builtin/index-pack.c:376
+#: builtin/index-pack.c:380
#, c-format
msgid "pack has bad object at offset %<PRIuMAX>: %s"
msgstr "le paquet a un mauvais objet à l'offset %<PRIuMAX> : %s"
-#: builtin/index-pack.c:482
+#: builtin/index-pack.c:485
#, c-format
msgid "inflate returned %d"
msgstr "la décompression (inflate) a retourné %d"
-#: builtin/index-pack.c:531
+#: builtin/index-pack.c:534
msgid "offset value overflow for delta base object"
msgstr "dépassement de la valeur d'offset pour l'objet delta de base"
-#: builtin/index-pack.c:539
+#: builtin/index-pack.c:542
msgid "delta base offset is out of bound"
msgstr "l'objet delta de base est hors limite"
-#: builtin/index-pack.c:547
+#: builtin/index-pack.c:550
#, c-format
msgid "unknown object type %d"
msgstr "type d'objet inconnu %d"
-#: builtin/index-pack.c:578
+#: builtin/index-pack.c:581
msgid "cannot pread pack file"
msgstr "impossible de lire (pread) le fichier paquet"
-#: builtin/index-pack.c:580
+#: builtin/index-pack.c:583
#, c-format
msgid "premature end of pack file, %<PRIuMAX> byte missing"
msgid_plural "premature end of pack file, %<PRIuMAX> bytes missing"
msgstr[0] "fin prématurée du fichier paquet, %<PRIuMAX> octet lu"
msgstr[1] "fin prématurée du fichier paquet, %<PRIuMAX> octets lus"
-#: builtin/index-pack.c:606
+#: builtin/index-pack.c:609
msgid "serious inflate inconsistency"
msgstr "grave incohérence dans la décompression (inflate)"
-#: builtin/index-pack.c:751 builtin/index-pack.c:757 builtin/index-pack.c:781
-#: builtin/index-pack.c:820 builtin/index-pack.c:829
+#: builtin/index-pack.c:754 builtin/index-pack.c:760 builtin/index-pack.c:784
+#: builtin/index-pack.c:823 builtin/index-pack.c:832
#, c-format
msgid "SHA1 COLLISION FOUND WITH %s !"
msgstr "COLLISION SHA1 TROUVÉE AVEC %s !"
-#: builtin/index-pack.c:754 builtin/pack-objects.c:292
-#: builtin/pack-objects.c:352 builtin/pack-objects.c:458
+#: builtin/index-pack.c:757 builtin/pack-objects.c:290
+#: builtin/pack-objects.c:350 builtin/pack-objects.c:456
#, c-format
msgid "unable to read %s"
msgstr "impossible de lire %s"
-#: builtin/index-pack.c:818
+#: builtin/index-pack.c:821
#, c-format
msgid "cannot read existing object info %s"
msgstr "impossible de lire l'information existante de l'objet %s"
-#: builtin/index-pack.c:826
+#: builtin/index-pack.c:829
#, c-format
msgid "cannot read existing object %s"
msgstr "impossible de lire l'objet existant %s"
-#: builtin/index-pack.c:840
+#: builtin/index-pack.c:843
#, c-format
msgid "invalid blob object %s"
msgstr "objet blob invalide %s"
-#: builtin/index-pack.c:843 builtin/index-pack.c:862
+#: builtin/index-pack.c:846 builtin/index-pack.c:865
msgid "fsck error in packed object"
msgstr "erreur de fsck dans l'objet empaqueté"
-#: builtin/index-pack.c:864
+#: builtin/index-pack.c:867
#, c-format
msgid "Not all child objects of %s are reachable"
msgstr "Tous les objets enfants de %s ne sont pas accessibles"
-#: builtin/index-pack.c:925 builtin/index-pack.c:972
+#: builtin/index-pack.c:928 builtin/index-pack.c:975
msgid "failed to apply delta"
msgstr "échec d'application du delta"
-#: builtin/index-pack.c:1156
+#: builtin/index-pack.c:1161
msgid "Receiving objects"
msgstr "Réception d'objets"
-#: builtin/index-pack.c:1156
+#: builtin/index-pack.c:1161
msgid "Indexing objects"
msgstr "Indexation d'objets"
-#: builtin/index-pack.c:1190
+#: builtin/index-pack.c:1195
msgid "pack is corrupted (SHA1 mismatch)"
msgstr "le paquet est corrompu (SHA1 ne correspond pas)"
-#: builtin/index-pack.c:1195
+#: builtin/index-pack.c:1200
msgid "cannot fstat packfile"
msgstr "impossible d'obtenir le statut (fstat) du fichier paquet"
-#: builtin/index-pack.c:1198
+#: builtin/index-pack.c:1203
msgid "pack has junk at the end"
msgstr "le paquet est invalide à la fin"
-#: builtin/index-pack.c:1210
+#: builtin/index-pack.c:1215
msgid "confusion beyond insanity in parse_pack_objects()"
msgstr "confusion extrême dans parse_pack_objects()"
-#: builtin/index-pack.c:1233
+#: builtin/index-pack.c:1238
msgid "Resolving deltas"
msgstr "Résolution des deltas"
-#: builtin/index-pack.c:1244 builtin/pack-objects.c:2905
+#: builtin/index-pack.c:1249 builtin/pack-objects.c:2913
#, c-format
msgid "unable to create thread: %s"
msgstr "impossible de créer le fil : %s"
-#: builtin/index-pack.c:1277
+#: builtin/index-pack.c:1282
msgid "confusion beyond insanity"
msgstr "confusion extrême"
-#: builtin/index-pack.c:1283
+#: builtin/index-pack.c:1288
#, c-format
msgid "completed with %d local object"
msgid_plural "completed with %d local objects"
msgstr[0] "complété avec %d objet local"
msgstr[1] "complété avec %d objets locaux"
-#: builtin/index-pack.c:1295
+#: builtin/index-pack.c:1300
#, c-format
msgid "Unexpected tail checksum for %s (disk corruption?)"
msgstr ""
"Somme de contrôle de fin inattendue pour %s (corruption sur le disque ?)"
-#: builtin/index-pack.c:1299
+#: builtin/index-pack.c:1304
#, c-format
msgid "pack has %d unresolved delta"
msgid_plural "pack has %d unresolved deltas"
msgstr[0] "le paquet a %d delta non résolu"
msgstr[1] "le paquet a %d deltas non résolus"
-#: builtin/index-pack.c:1323
+#: builtin/index-pack.c:1328
#, c-format
msgid "unable to deflate appended object (%d)"
msgstr "impossible de compresser l'objet ajouté (%d)"
-#: builtin/index-pack.c:1419
+#: builtin/index-pack.c:1423
#, c-format
msgid "local object %s is corrupt"
msgstr "l'objet local %s est corrompu"
-#: builtin/index-pack.c:1440
+#: builtin/index-pack.c:1445
#, c-format
msgid "packfile name '%s' does not end with '.%s'"
msgstr "le nom de fichier paquet '%s' ne se termine pas par '.%s'"
-#: builtin/index-pack.c:1464
+#: builtin/index-pack.c:1469
#, c-format
msgid "cannot write %s file '%s'"
msgstr "impossible d'écrire le fichier %s '%s'"
-#: builtin/index-pack.c:1472
+#: builtin/index-pack.c:1477
#, c-format
msgid "cannot close written %s file '%s'"
msgstr "impossible de fermer le fichier %s écrit '%s'"
-#: builtin/index-pack.c:1489
+#: builtin/index-pack.c:1494
#, c-format
msgid "unable to rename temporary '*.%s' file to '%s'"
msgstr "impossible de renommer un fichier temporaire '*.%s' en '%s'"
-#: builtin/index-pack.c:1514
+#: builtin/index-pack.c:1519
msgid "error while closing pack file"
msgstr "erreur en fermeture du fichier paquet"
-#: builtin/index-pack.c:1573 builtin/pack-objects.c:3150
+#: builtin/index-pack.c:1578 builtin/pack-objects.c:3158
#, c-format
msgid "bad pack.indexversion=%<PRIu32>"
msgstr "mauvais pack.indexversion=%<PRIu32>"
-#: builtin/index-pack.c:1643
+#: builtin/index-pack.c:1648
#, c-format
msgid "Cannot open existing pack file '%s'"
msgstr "Impossible d'ouvrir le fichier paquet existant '%s'"
-#: builtin/index-pack.c:1645
+#: builtin/index-pack.c:1650
#, 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:1693
+#: builtin/index-pack.c:1698
#, 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:1700
+#: builtin/index-pack.c:1705
#, 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:1742
+#: builtin/index-pack.c:1748
msgid "Cannot come back to cwd"
msgstr "Impossible de revenir au répertoire de travail courant"
-#: builtin/index-pack.c:1796 builtin/index-pack.c:1799
-#: builtin/index-pack.c:1819 builtin/index-pack.c:1823
+#: builtin/index-pack.c:1802 builtin/index-pack.c:1805
+#: builtin/index-pack.c:1825 builtin/index-pack.c:1829
#, c-format
msgid "bad %s"
msgstr "mauvais %s"
-#: builtin/index-pack.c:1829 builtin/init-db.c:379 builtin/init-db.c:614
+#: builtin/index-pack.c:1835 builtin/init-db.c:379 builtin/init-db.c:614
#, c-format
msgid "unknown hash algorithm '%s'"
msgstr "algorithme d'empreinte inconnu '%s'"
-#: builtin/index-pack.c:1850
+#: builtin/index-pack.c:1856
msgid "--stdin requires a git repository"
msgstr "--stdin requiert un dépôt git"
-#: builtin/index-pack.c:1867
+#: builtin/index-pack.c:1873
msgid "--verify with no packfile name given"
msgstr "--verify sans nom de fichier paquet donné"
-#: builtin/index-pack.c:1933 builtin/unpack-objects.c:584
+#: builtin/index-pack.c:1939 builtin/unpack-objects.c:584
msgid "fsck error in pack objects"
msgstr "erreur de fsck dans les objets paquets"
@@ -17390,40 +17867,40 @@ msgstr "--trailer n'a aucune signification avec --only-input"
msgid "no input file given for in-place editing"
msgstr "aucun fichier en entrée pour l'éditon sur place"
-#: builtin/log.c:59
+#: builtin/log.c:60
msgid "git log [<options>] [<revision-range>] [[--] <path>...]"
msgstr "git log [<options>] [<plage de révisions>] [[--] <chemin>...]"
-#: builtin/log.c:60
+#: builtin/log.c:61
msgid "git show [<options>] <object>..."
msgstr "git show [<options>] <objet>..."
-#: builtin/log.c:113
+#: builtin/log.c:114
#, c-format
msgid "invalid --decorate option: %s"
msgstr "option --decorate invalide : %s"
-#: builtin/log.c:180
+#: builtin/log.c:181
msgid "show source"
msgstr "afficher la source"
-#: builtin/log.c:181
+#: builtin/log.c:182
msgid "use mail map file"
msgstr "utiliser le fichier de correspondance de mail"
-#: builtin/log.c:184
+#: builtin/log.c:185
msgid "only decorate refs that match <pattern>"
msgstr "décorer seulement les références correspondant à <motif>"
-#: builtin/log.c:186
+#: builtin/log.c:187
msgid "do not decorate refs that match <pattern>"
msgstr "ne pas décorer les références correspondant à <motif>"
-#: builtin/log.c:187
+#: builtin/log.c:188
msgid "decorate options"
msgstr "décorer les options"
-#: builtin/log.c:190
+#: builtin/log.c:191
msgid ""
"trace the evolution of line range <start>,<end> or function :<funcname> in "
"<file>"
@@ -17431,90 +17908,94 @@ msgstr ""
"tracer l'évolution d'une plage <début>,<fin> ou d'une fonction <nom-de-"
"fonction> dans <fichier>"
-#: builtin/log.c:213
+#: builtin/log.c:214
msgid "-L<range>:<file> cannot be used with pathspec"
msgstr ""
"-L<plage>:<fichier> ne peut pas être utilisé avec une spécificateur de chemin"
-#: builtin/log.c:321
+#: builtin/log.c:322
#, c-format
msgid "Final output: %d %s\n"
-msgstr "Sortie finale : %d %s\n"
+msgstr "Sortie finale : %d %s\n"
+
+#: builtin/log.c:429
+msgid "unable to create temporary object directory"
+msgstr "impossible de créer un répertoire d'objets temporaire"
-#: builtin/log.c:586
+#: builtin/log.c:599
#, c-format
msgid "git show %s: bad file"
msgstr "git show %s : fichier incorrect"
-#: builtin/log.c:601 builtin/log.c:691
+#: builtin/log.c:614 builtin/log.c:706
#, c-format
msgid "could not read object %s"
msgstr "impossible de lire l'objet %s"
-#: builtin/log.c:716
+#: builtin/log.c:731
#, c-format
msgid "unknown type: %d"
msgstr "type inconnu : %d"
-#: builtin/log.c:861
+#: builtin/log.c:880
#, c-format
msgid "%s: invalid cover from description mode"
msgstr "%s : couverture invalide pour le mode de description"
-#: builtin/log.c:868
+#: builtin/log.c:887
msgid "format.headers without value"
msgstr "format.headers sans valeur"
-#: builtin/log.c:997
+#: builtin/log.c:1016
#, c-format
msgid "cannot open patch file %s"
msgstr "impossible d'ouvrir le fichier correctif %s"
-#: builtin/log.c:1014
+#: builtin/log.c:1033
msgid "need exactly one range"
msgstr "exactement une plage nécessaire"
-#: builtin/log.c:1024
+#: builtin/log.c:1043
msgid "not a range"
msgstr "ceci n'est pas une plage"
-#: builtin/log.c:1188
+#: builtin/log.c:1207
msgid "cover letter needs email format"
msgstr "la lettre de motivation doit être au format courriel"
-#: builtin/log.c:1194
+#: builtin/log.c:1213
msgid "failed to create cover-letter file"
msgstr "échec de création du fichier de lettre de motivation"
-#: builtin/log.c:1281
+#: builtin/log.c:1300
#, c-format
msgid "insane in-reply-to: %s"
msgstr "in-reply-to aberrant : %s"
-#: builtin/log.c:1308
+#: builtin/log.c:1327
msgid "git format-patch [<options>] [<since> | <revision-range>]"
msgstr "git format-patch [<options>] [<depuis> | <plage de révisions>]"
-#: builtin/log.c:1366
+#: builtin/log.c:1385
msgid "two output directories?"
msgstr "deux répertoires de sortie ?"
-#: builtin/log.c:1517 builtin/log.c:2344 builtin/log.c:2346 builtin/log.c:2358
+#: builtin/log.c:1536 builtin/log.c:2369 builtin/log.c:2371 builtin/log.c:2383
#, c-format
msgid "unknown commit %s"
msgstr "commit inconnu %s"
-#: builtin/log.c:1528 builtin/replace.c:58 builtin/replace.c:207
+#: builtin/log.c:1547 builtin/replace.c:58 builtin/replace.c:207
#: builtin/replace.c:210
#, c-format
msgid "failed to resolve '%s' as a valid ref"
msgstr "échec à résoudre '%s' comme une référence valide"
-#: builtin/log.c:1537
+#: builtin/log.c:1556
msgid "could not find exact merge base"
msgstr "impossible de trouver la base de fusion exacte"
-#: builtin/log.c:1547
+#: builtin/log.c:1566
msgid ""
"failed to get upstream, if you want to record base commit automatically,\n"
"please use git branch --set-upstream-to to track a remote branch.\n"
@@ -17527,285 +18008,289 @@ msgstr ""
"Ou vous pouvez spécifier le commit de base par --base=<id-du-commit-de-base> "
"manuellement"
-#: builtin/log.c:1570
+#: builtin/log.c:1589
msgid "failed to find exact merge base"
msgstr "échec à trouver la base de fusion exacte"
-#: builtin/log.c:1587
+#: builtin/log.c:1606
msgid "base commit should be the ancestor of revision list"
msgstr "le commit de base devrait être l'ancêtre de la liste de révisions"
-#: builtin/log.c:1597
+#: builtin/log.c:1616
msgid "base commit shouldn't be in revision list"
msgstr "le commit de base ne devrait pas faire partie de la liste de révisions"
-#: builtin/log.c:1655
+#: builtin/log.c:1674
msgid "cannot get patch id"
msgstr "impossible d'obtenir l'id du patch"
-#: builtin/log.c:1718
+#: builtin/log.c:1737
msgid "failed to infer range-diff origin of current series"
msgstr ""
"échec d'inférence de l'origine de différence d'intervalles de la série "
"actuelle"
-#: builtin/log.c:1720
+#: builtin/log.c:1739
#, c-format
msgid "using '%s' as range-diff origin of current series"
msgstr ""
"utilisation de '%s' comme une différence d'intervalle pour la série actuelle"
-#: builtin/log.c:1764
+#: builtin/log.c:1783
msgid "use [PATCH n/m] even with a single patch"
msgstr "utiliser [PATCH n/m] même avec un patch unique"
-#: builtin/log.c:1767
+#: builtin/log.c:1786
msgid "use [PATCH] even with multiple patches"
msgstr "utiliser [PATCH] même avec des patchs multiples"
-#: builtin/log.c:1771
+#: builtin/log.c:1790
msgid "print patches to standard out"
msgstr "afficher les patchs sur la sortie standard"
-#: builtin/log.c:1773
+#: builtin/log.c:1792
msgid "generate a cover letter"
msgstr "générer une lettre de motivation"
-#: builtin/log.c:1775
+#: builtin/log.c:1794
msgid "use simple number sequence for output file names"
msgstr ""
"utiliser une séquence simple de nombres pour les nom des fichiers de sortie"
-#: builtin/log.c:1776
+#: builtin/log.c:1795
msgid "sfx"
msgstr "sfx"
-#: builtin/log.c:1777
+#: builtin/log.c:1796
msgid "use <sfx> instead of '.patch'"
msgstr "utiliser <sfx> au lieu de '.patch'"
-#: builtin/log.c:1779
+#: builtin/log.c:1798
msgid "start numbering patches at <n> instead of 1"
msgstr "démarrer la numérotation des patchs à <n> au lieu de 1"
-#: builtin/log.c:1780
+#: builtin/log.c:1799
msgid "reroll-count"
msgstr "reroll-count"
-#: builtin/log.c:1781
+#: builtin/log.c:1800
msgid "mark the series as Nth re-roll"
msgstr "marquer la série comme une Nième réédition"
-#: builtin/log.c:1783
+#: builtin/log.c:1802
msgid "max length of output filename"
msgstr "taille maximum du nom du fichier de sortie"
-#: builtin/log.c:1785
+#: builtin/log.c:1804
msgid "use [RFC PATCH] instead of [PATCH]"
msgstr "utiliser [RFC PATCH] au lieu de [PATCH]"
-#: builtin/log.c:1788
+#: builtin/log.c:1807
msgid "cover-from-description-mode"
msgstr "cover-from-description-mode"
-#: builtin/log.c:1789
+#: builtin/log.c:1808
msgid "generate parts of a cover letter based on a branch's description"
msgstr ""
"générer des parties de la lettre d'introduction à partir de la description "
"de la branche"
-#: builtin/log.c:1791
+#: builtin/log.c:1810
msgid "use [<prefix>] instead of [PATCH]"
msgstr "utiliser [<préfixe>] au lieu de [PATCH]"
-#: builtin/log.c:1794
+#: builtin/log.c:1813
msgid "store resulting files in <dir>"
msgstr "stocker les fichiers résultats dans <répertoire>"
-#: builtin/log.c:1797
+#: builtin/log.c:1816
msgid "don't strip/add [PATCH]"
msgstr "ne pas retirer/ajouter [PATCH]"
-#: builtin/log.c:1800
+#: builtin/log.c:1819
msgid "don't output binary diffs"
msgstr "ne pas imprimer les diffs binaires"
-#: builtin/log.c:1802
+#: builtin/log.c:1821
msgid "output all-zero hash in From header"
msgstr "écrire une empreinte à zéro dans l'entête From"
-#: builtin/log.c:1804
+#: builtin/log.c:1823
msgid "don't include a patch matching a commit upstream"
msgstr "ne pas inclure un patch correspondant à un commit amont"
-#: builtin/log.c:1806
+#: builtin/log.c:1825
msgid "show patch format instead of default (patch + stat)"
msgstr "afficher le format du patch au lieu du défaut (patch + stat)"
-#: builtin/log.c:1808
+#: builtin/log.c:1827
msgid "Messaging"
msgstr "Communication"
-#: builtin/log.c:1809
+#: builtin/log.c:1828
msgid "header"
msgstr "en-tête"
-#: builtin/log.c:1810
+#: builtin/log.c:1829
msgid "add email header"
msgstr "ajouter l'en-tête de courriel"
-#: builtin/log.c:1811 builtin/log.c:1812
+#: builtin/log.c:1830 builtin/log.c:1831
msgid "email"
msgstr "courriel"
-#: builtin/log.c:1811
+#: builtin/log.c:1830
msgid "add To: header"
msgstr "ajouter l'en-tête \"To:\""
-#: builtin/log.c:1812
+#: builtin/log.c:1831
msgid "add Cc: header"
msgstr "ajouter l'en-tête \"Cc:\""
-#: builtin/log.c:1813
+#: builtin/log.c:1832
msgid "ident"
msgstr "ident"
-#: builtin/log.c:1814
+#: builtin/log.c:1833
msgid "set From address to <ident> (or committer ident if absent)"
msgstr ""
"renseigner l'adresse From à <ident> (ou à l'ident du validateur si absent)"
-#: builtin/log.c:1816
+#: builtin/log.c:1835
msgid "message-id"
msgstr "id-message"
-#: builtin/log.c:1817
+#: builtin/log.c:1836
msgid "make first mail a reply to <message-id>"
msgstr "répondre dans le premier message à <id-message>"
-#: builtin/log.c:1818 builtin/log.c:1821
+#: builtin/log.c:1837 builtin/log.c:1840
msgid "boundary"
msgstr "limite"
-#: builtin/log.c:1819
+#: builtin/log.c:1838
msgid "attach the patch"
msgstr "attacher le patch"
-#: builtin/log.c:1822
+#: builtin/log.c:1841
msgid "inline the patch"
msgstr "patch à l'intérieur"
-#: builtin/log.c:1826
+#: builtin/log.c:1845
msgid "enable message threading, styles: shallow, deep"
msgstr ""
"activer l'enfilage de message, styles : shallow (superficiel), deep (profond)"
-#: builtin/log.c:1828
+#: builtin/log.c:1847
msgid "signature"
msgstr "signature"
-#: builtin/log.c:1829
+#: builtin/log.c:1848
msgid "add a signature"
msgstr "ajouter une signature"
-#: builtin/log.c:1830
+#: builtin/log.c:1849
msgid "base-commit"
msgstr "commit-de-base"
-#: builtin/log.c:1831
+#: builtin/log.c:1850
msgid "add prerequisite tree info to the patch series"
msgstr "ajouter un arbre prérequis à la série de patchs"
-#: builtin/log.c:1834
+#: builtin/log.c:1853
msgid "add a signature from a file"
msgstr "ajouter une signature depuis un fichier"
-#: builtin/log.c:1835
+#: builtin/log.c:1854
msgid "don't print the patch filenames"
msgstr "ne pas afficher les noms de fichiers des patchs"
-#: builtin/log.c:1837
+#: builtin/log.c:1856
msgid "show progress while generating patches"
msgstr ""
"afficher la barre de progression durant la phase de génération des patchs"
-#: builtin/log.c:1839
+#: builtin/log.c:1858
msgid "show changes against <rev> in cover letter or single patch"
msgstr ""
"afficher les modifications par rapport à <rév> dans la première page ou une "
"rustine"
-#: builtin/log.c:1842
+#: builtin/log.c:1861
msgid "show changes against <refspec> in cover letter or single patch"
msgstr ""
"afficher les modifications par rapport à <refspec> dans la première page ou "
"une rustine"
-#: builtin/log.c:1844 builtin/range-diff.c:28
+#: builtin/log.c:1863 builtin/range-diff.c:28
msgid "percentage by which creation is weighted"
msgstr "pourcentage par lequel la création est pondérée"
-#: builtin/log.c:1931
+#: builtin/log.c:1953
#, c-format
msgid "invalid ident line: %s"
msgstr "ligne d'identification invalide : %s"
-#: builtin/log.c:1956
+#: builtin/log.c:1978
msgid "--name-only does not make sense"
msgstr "--name-only n'a pas de sens"
-#: builtin/log.c:1958
+#: builtin/log.c:1980
msgid "--name-status does not make sense"
msgstr "--name-status n'a pas de sens"
-#: builtin/log.c:1960
+#: builtin/log.c:1982
msgid "--check does not make sense"
msgstr "--check n'a pas de sens"
-#: builtin/log.c:2104
+#: builtin/log.c:1984
+msgid "--remerge-diff does not make sense"
+msgstr "--remerge-diff n'a pas de sens"
+
+#: builtin/log.c:2129
msgid "--interdiff requires --cover-letter or single patch"
msgstr "--interdiff requiert --cover-letter ou une rustine unique"
-#: builtin/log.c:2108
+#: builtin/log.c:2133
msgid "Interdiff:"
msgstr "Interdiff :"
-#: builtin/log.c:2109
+#: builtin/log.c:2134
#, c-format
msgid "Interdiff against v%d:"
msgstr "Interdiff contre v%d :"
-#: builtin/log.c:2119
+#: builtin/log.c:2144
msgid "--range-diff requires --cover-letter or single patch"
msgstr "--range-diff requiert --cover-letter ou une rustine unique"
-#: builtin/log.c:2127
+#: builtin/log.c:2152
msgid "Range-diff:"
msgstr "Diff-intervalle :"
-#: builtin/log.c:2128
+#: builtin/log.c:2153
#, c-format
msgid "Range-diff against v%d:"
msgstr "Diff-intervalle contre v%d :"
-#: builtin/log.c:2139
+#: builtin/log.c:2164
#, c-format
msgid "unable to read signature file '%s'"
msgstr "lecture du fichier de signature '%s' impossible"
-#: builtin/log.c:2175
+#: builtin/log.c:2200
msgid "Generating patches"
msgstr "Génération des patchs"
-#: builtin/log.c:2219
+#: builtin/log.c:2244
msgid "failed to create output files"
msgstr "échec de création des fichiers en sortie"
-#: builtin/log.c:2279
+#: builtin/log.c:2304
msgid "git cherry [-v] [<upstream> [<head> [<limit>]]]"
msgstr "git cherry [-v] [<branche_amont> [<head> [<limite>]]]"
-#: builtin/log.c:2333
+#: builtin/log.c:2358
#, c-format
msgid ""
"Could not find a tracked remote branch, please specify <upstream> manually.\n"
@@ -17902,10 +18387,6 @@ msgstr "ajouter les exclusions git standard"
msgid "make the output relative to the project top directory"
msgstr "afficher en relatif par rapport au répertoire racine du projet"
-#: builtin/ls-files.c:667
-msgid "recurse through submodules"
-msgstr "parcourir récursivement les sous-modules"
-
#: builtin/ls-files.c:669
msgid "if any <file> is not in the index, treat this as an error"
msgstr "si un <fichier> n'est pas dans l'index, traiter cela comme une erreur"
@@ -17946,7 +18427,7 @@ msgstr ""
msgid "do not print remote URL"
msgstr "ne pas afficher les URL distantes"
-#: builtin/ls-remote.c:61 builtin/ls-remote.c:63 builtin/rebase.c:1103
+#: builtin/ls-remote.c:61 builtin/ls-remote.c:63 builtin/rebase.c:1131
msgid "exec"
msgstr "exécutable"
@@ -17980,44 +18461,74 @@ msgstr ""
msgid "show underlying ref in addition to the object pointed by it"
msgstr "afficher la réf sous-jacente en plus de l'objet pointé par elle"
-#: builtin/ls-tree.c:30
+#: builtin/ls-tree.c:36
msgid "git ls-tree [<options>] <tree-ish> [<path>...]"
msgstr "git ls-tree [<options>] <arbre ou apparenté> [<chemin>...]"
-#: builtin/ls-tree.c:128
+#: builtin/ls-tree.c:54
+#, c-format
+msgid "could not get object info about '%s'"
+msgstr "impossible d'obtenir l'information d'objet pour '%s'"
+
+#: builtin/ls-tree.c:79
+#, c-format
+msgid "bad ls-tree format: element '%s' does not start with '('"
+msgstr "mauvais format ls-tree : l'élément '%s' ne commence pas par '('"
+
+#: builtin/ls-tree.c:83
+#, c-format
+msgid "bad ls-tree format: element '%s' does not end in ')'"
+msgstr "mauvais format ls-tree : l'élément '%s' ne se termine pas ')'"
+
+#: builtin/ls-tree.c:109
+#, c-format
+msgid "bad ls-tree format: %%%.*s"
+msgstr "mauvais format ls-tree : %%%.*s"
+
+#: builtin/ls-tree.c:336
msgid "only show trees"
msgstr "afficher seulement les arbres"
-#: builtin/ls-tree.c:130
+#: builtin/ls-tree.c:338
msgid "recurse into subtrees"
msgstr "parcourir les sous-arbres"
-#: builtin/ls-tree.c:132
+#: builtin/ls-tree.c:340
msgid "show trees when recursing"
msgstr "afficher les arbres en les parcourant"
-#: builtin/ls-tree.c:135
+#: builtin/ls-tree.c:343
msgid "terminate entries with NUL byte"
msgstr "terminer les éléments avec un octet NUL"
-#: builtin/ls-tree.c:136
+#: builtin/ls-tree.c:344
msgid "include object size"
msgstr "inclure la taille d'objet"
-#: builtin/ls-tree.c:138 builtin/ls-tree.c:140
+#: builtin/ls-tree.c:346 builtin/ls-tree.c:348
msgid "list only filenames"
msgstr "afficher seulement les noms de fichiers"
-#: builtin/ls-tree.c:143
+#: builtin/ls-tree.c:350
+msgid "list only objects"
+msgstr "ne lister que les objets"
+
+#: builtin/ls-tree.c:353
msgid "use full path names"
msgstr "utiliser les noms de chemins complets"
-#: builtin/ls-tree.c:145
+#: builtin/ls-tree.c:355
msgid "list entire tree; not just current directory (implies --full-name)"
msgstr ""
"afficher l'arbre entier ; pas seulement le répertoire courant (implique --"
"full-name)"
+#: builtin/ls-tree.c:391
+msgid "--format can't be combined with other format-altering options"
+msgstr ""
+"--format ne peut pas être combiné avec d'autres options de modification de "
+"format"
+
#. TRANSLATORS: keep <> in "<" mail ">" info.
#: builtin/mailinfo.c:14
msgid "git mailinfo [<options>] <msg> <patch> < mail >info"
@@ -18067,7 +18578,11 @@ msgstr "action lorsqu'un CR cité est trouvé"
msgid "use headers in message's body"
msgstr "utiliser l'entête dans le corps de message"
-#: builtin/mailsplit.c:239
+#: builtin/mailsplit.c:227
+msgid "reading patches from stdin/tty..."
+msgstr "lecture les mises à jour depuis l'entrée standard/la console..."
+
+#: builtin/mailsplit.c:242
#, c-format
msgid "empty mbox: '%s'"
msgstr "mbox vide : '%s'"
@@ -18092,23 +18607,23 @@ msgstr "git merge-base --is-ancestor <validation> <validation>"
msgid "git merge-base --fork-point <ref> [<commit>]"
msgstr "git merge-base --fork-point <référence> [<validation>]"
-#: builtin/merge-base.c:143
+#: builtin/merge-base.c:144
msgid "output all common ancestors"
msgstr "afficher tous les ancêtres communs"
-#: builtin/merge-base.c:145
+#: builtin/merge-base.c:146
msgid "find ancestors for a single n-way merge"
msgstr "trouver les ancêtres pour une fusion simple à n points"
-#: builtin/merge-base.c:147
+#: builtin/merge-base.c:148
msgid "list revs not reachable from others"
msgstr "afficher les révisions inaccessibles depuis les autres"
-#: builtin/merge-base.c:149
+#: builtin/merge-base.c:150
msgid "is the first one ancestor of the other?"
msgstr "est le premier ancêtre de l'autre ?"
-#: builtin/merge-base.c:151
+#: builtin/merge-base.c:152
msgid "find where <commit> forked from reflog of <ref>"
msgstr "trouver où <validation> a divergé du reflog de <référence>"
@@ -18258,7 +18773,7 @@ msgid "verify that the named commit has a valid GPG signature"
msgstr "vérifier que le commit nommé a une signature GPG valide"
#: builtin/merge.c:280 builtin/notes.c:785 builtin/pull.c:172
-#: builtin/rebase.c:1117 builtin/revert.c:114
+#: builtin/rebase.c:1145 builtin/revert.c:114
msgid "strategy"
msgstr "stratégie"
@@ -18395,74 +18910,74 @@ msgstr ""
"Les lignes commençant par '%c' seront ignorées, et un message vide\n"
"abandonne la validation.\n"
-#: builtin/merge.c:894
+#: builtin/merge.c:900
msgid "Empty commit message."
msgstr "Message de validation vide."
-#: builtin/merge.c:909
+#: builtin/merge.c:915
#, c-format
msgid "Wonderful.\n"
msgstr "Merveilleux.\n"
-#: builtin/merge.c:970
+#: builtin/merge.c:976
#, c-format
msgid "Automatic merge failed; fix conflicts and then commit the result.\n"
msgstr ""
"La fusion automatique a échoué ; réglez les conflits et validez le "
"résultat.\n"
-#: builtin/merge.c:1009
+#: builtin/merge.c:1015
msgid "No current branch."
msgstr "Pas de branche courante."
-#: builtin/merge.c:1011
+#: builtin/merge.c:1017
msgid "No remote for the current branch."
msgstr "Pas de branche distante pour la branche courante."
-#: builtin/merge.c:1013
+#: builtin/merge.c:1019
msgid "No default upstream defined for the current branch."
msgstr "Pas de branche amont par défaut définie pour la branche courante."
-#: builtin/merge.c:1018
+#: builtin/merge.c:1024
#, c-format
msgid "No remote-tracking branch for %s from %s"
msgstr "Pas de branche de suivi pour %s depuis %s"
-#: builtin/merge.c:1075
+#: builtin/merge.c:1081
#, c-format
msgid "Bad value '%s' in environment '%s'"
msgstr "Mauvaise valeur '%s' dans l'environnement '%s'"
-#: builtin/merge.c:1177
+#: builtin/merge.c:1183
#, c-format
msgid "not something we can merge in %s: %s"
msgstr "pas possible de fusionner ceci dans %s : %s"
-#: builtin/merge.c:1211
+#: builtin/merge.c:1217
msgid "not something we can merge"
msgstr "pas possible de fusionner ceci"
-#: builtin/merge.c:1324
+#: builtin/merge.c:1330
msgid "--abort expects no arguments"
msgstr "--abort n'accepte pas d'argument"
-#: builtin/merge.c:1328
+#: builtin/merge.c:1334
msgid "There is no merge to abort (MERGE_HEAD missing)."
msgstr "Il n'y a pas de fusion à abandonner (MERGE_HEAD manquant)."
-#: builtin/merge.c:1346
+#: builtin/merge.c:1352
msgid "--quit expects no arguments"
msgstr "--quit n'accepte pas d'argument"
-#: builtin/merge.c:1359
+#: builtin/merge.c:1365
msgid "--continue expects no arguments"
msgstr "--continue ne supporte aucun argument"
-#: builtin/merge.c:1363
+#: builtin/merge.c:1369
msgid "There is no merge in progress (MERGE_HEAD missing)."
msgstr "Il n'y a pas de fusion en cours (MERGE_HEAD manquant)."
-#: builtin/merge.c:1379
+#: builtin/merge.c:1385
msgid ""
"You have not concluded your merge (MERGE_HEAD exists).\n"
"Please, commit your changes before you merge."
@@ -18470,7 +18985,7 @@ msgstr ""
"Vous n'avez pas terminé votre fusion (MERGE_HEAD existe).\n"
"Veuillez valider vos modifications avant de pouvoir fusionner."
-#: builtin/merge.c:1386
+#: builtin/merge.c:1392
msgid ""
"You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists).\n"
"Please, commit your changes before you merge."
@@ -18478,87 +18993,83 @@ msgstr ""
"Vous n'avez pas terminé votre picorage (CHERRY_PICK_HEAD existe).\n"
"Veuillez valider vos modifications avant de pouvoir fusionner."
-#: builtin/merge.c:1389
+#: builtin/merge.c:1395
msgid "You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists)."
msgstr "Vous n'avez pas terminé votre picorage (CHERRY_PICK_HEAD existe)."
-#: builtin/merge.c:1421
+#: builtin/merge.c:1427
msgid "No commit specified and merge.defaultToUpstream not set."
msgstr ""
"Pas de validation spécifiée et merge.defaultToUpstream n'est pas défini."
-#: builtin/merge.c:1438
+#: builtin/merge.c:1444
msgid "Squash commit into empty head not supported yet"
msgstr "La validation compressée vers une tête vide n'est pas encore supportée"
-#: builtin/merge.c:1440
+#: builtin/merge.c:1446
msgid "Non-fast-forward commit does not make sense into an empty head"
msgstr "Une validation sans avance rapide n'a pas de sens dans une tête vide"
-#: builtin/merge.c:1445
+#: builtin/merge.c:1451
#, c-format
msgid "%s - not something we can merge"
msgstr "%s - pas possible de fusionner ceci"
-#: builtin/merge.c:1447
+#: builtin/merge.c:1453
msgid "Can merge only exactly one commit into empty head"
msgstr ""
"Possible de fusionner exactement une seule validation dans une tête vide"
-#: builtin/merge.c:1534
+#: builtin/merge.c:1540
msgid "refusing to merge unrelated histories"
msgstr "refus de fusionner des historiques sans relation"
-#: builtin/merge.c:1553
+#: builtin/merge.c:1559
#, c-format
msgid "Updating %s..%s\n"
msgstr "Mise à jour %s..%s\n"
-#: builtin/merge.c:1601
+#: builtin/merge.c:1606
#, c-format
msgid "Trying really trivial in-index merge...\n"
msgstr "Essai de fusion vraiment triviale dans l'index...\n"
-#: builtin/merge.c:1608
+#: builtin/merge.c:1613
#, c-format
msgid "Nope.\n"
msgstr "Non.\n"
-#: builtin/merge.c:1667 builtin/merge.c:1733
+#: builtin/merge.c:1671 builtin/merge.c:1737
#, c-format
msgid "Rewinding the tree to pristine...\n"
msgstr "Retour de l'arbre à l'original...\n"
-#: builtin/merge.c:1671
+#: builtin/merge.c:1675
#, c-format
msgid "Trying merge strategy %s...\n"
msgstr "Essai de la stratégie de fusion %s...\n"
-#: builtin/merge.c:1723
+#: builtin/merge.c:1727
#, c-format
msgid "No merge strategy handled the merge.\n"
msgstr "Aucune stratégie de fusion n'a pris en charge la fusion.\n"
-#: builtin/merge.c:1725
+#: builtin/merge.c:1729
#, c-format
msgid "Merge with strategy %s failed.\n"
msgstr "La fusion avec la stratégie %s a échoué.\n"
-#: builtin/merge.c:1735
+#: builtin/merge.c:1739
#, c-format
msgid "Using the %s strategy to prepare resolving by hand.\n"
msgstr "Utilisation de %s pour préparer la résolution à la main.\n"
-#: builtin/merge.c:1749
+#: builtin/merge.c:1753
#, c-format
msgid "Automatic merge went well; stopped before committing as requested\n"
msgstr ""
"La fusion automatique a réussi ; stoppée avant la validation comme demandé\n"
-#: builtin/mktag.c:10
-msgid "git mktag"
-msgstr "git mktag"
-
#: builtin/mktag.c:27
#, c-format
msgid "warning: tag input does not pass fsck: %s"
@@ -18584,22 +19095,18 @@ msgstr "impossible de lire l'objet étiqueté '%s'"
msgid "object '%s' tagged as '%s', but is a '%s' type"
msgstr "l'objet '%s' étiqueté comme '%s', mais est de type '%s'"
-#: builtin/mktag.c:98
+#: builtin/mktag.c:97
msgid "tag on stdin did not pass our strict fsck check"
msgstr "l'étiquette sur stdin n'a pas passé le test strict fsck"
-#: builtin/mktag.c:101
+#: builtin/mktag.c:100
msgid "tag on stdin did not refer to a valid object"
msgstr "l'étiquette sur stdin ne pointe pas sur un objet valide"
-#: builtin/mktag.c:104 builtin/tag.c:242
+#: builtin/mktag.c:103 builtin/tag.c:243
msgid "unable to write tag file"
msgstr "impossible d'écrire le fichier d'étiquettes"
-#: builtin/mktree.c:66
-msgid "git mktree [-z] [--missing] [--batch]"
-msgstr "git mktree [-z] [--missing] [--batch]"
-
#: builtin/mktree.c:154
msgid "input is NUL terminated"
msgstr "l'entrée se termine par NUL"
@@ -18759,54 +19266,58 @@ msgstr "%s, source=%s, destination=%s"
msgid "Renaming %s to %s\n"
msgstr "Renommage de %s en %s\n"
-#: builtin/mv.c:314 builtin/remote.c:790 builtin/repack.c:857
+#: builtin/mv.c:314 builtin/remote.c:812 builtin/repack.c:861
#, c-format
msgid "renaming '%s' failed"
msgstr "le renommage de '%s' a échoué"
-#: builtin/name-rev.c:474
+#: builtin/name-rev.c:524
msgid "git name-rev [<options>] <commit>..."
msgstr "git name-rev [<options>] <validation>..."
-#: builtin/name-rev.c:475
+#: builtin/name-rev.c:525
msgid "git name-rev [<options>] --all"
msgstr "git name-rev [<options>] --all"
-#: builtin/name-rev.c:476
-msgid "git name-rev [<options>] --stdin"
-msgstr "git name-rev [<options>] --stdin"
+#: builtin/name-rev.c:526
+msgid "git name-rev [<options>] --annotate-stdin"
+msgstr "git name-rev [<options>] --annotate-stdin"
-#: builtin/name-rev.c:533
+#: builtin/name-rev.c:583
msgid "print only ref-based names (no object names)"
msgstr ""
"afficher seulement les noms basés sur des références (pas de nom d'objet)"
-#: builtin/name-rev.c:534
+#: builtin/name-rev.c:584
msgid "only use tags to name the commits"
msgstr "utiliser seulement les étiquettes pour nommer les validations"
-#: builtin/name-rev.c:536
+#: builtin/name-rev.c:586
msgid "only use refs matching <pattern>"
msgstr "utiliser seulement les références correspondant à <motif>"
-#: builtin/name-rev.c:538
+#: builtin/name-rev.c:588
msgid "ignore refs matching <pattern>"
msgstr "ignorer les références correspondant à <motif>"
-#: builtin/name-rev.c:540
+#: builtin/name-rev.c:590
msgid "list all commits reachable from all refs"
msgstr ""
"afficher toutes les validations accessibles depuis toutes les références"
-#: builtin/name-rev.c:541
-msgid "read from stdin"
-msgstr "lire depuis l'entrée standard"
+#: builtin/name-rev.c:591
+msgid "deprecated: use annotate-stdin instead"
+msgstr "obsolète : utilisez annotate-stdin à la place"
-#: builtin/name-rev.c:542
+#: builtin/name-rev.c:592
+msgid "annotate text from stdin"
+msgstr "annoter le texte depuis l'entrée standard"
+
+#: builtin/name-rev.c:593
msgid "allow to print `undefined` names (default)"
msgstr "autoriser l'affichage des noms `non définis` (par défaut)"
-#: builtin/name-rev.c:548
+#: builtin/name-rev.c:599
msgid "dereference tags in the input (internal use)"
msgstr "déréférencer les étiquettes en entrée (usage interne)"
@@ -18850,14 +19361,6 @@ msgstr ""
"git notes [--ref <références-notes>] merge [-v | -q] [-s <stratégie> ] "
"<références-notes>"
-#: builtin/notes.c:35
-msgid "git notes merge --commit [-v | -q]"
-msgstr "git notes merge --commit [-v | -q]"
-
-#: builtin/notes.c:36
-msgid "git notes merge --abort [-v | -q]"
-msgstr "git notes merge --abort [-v | -q]"
-
#: builtin/notes.c:37
msgid "git notes [--ref <notes-ref>] remove [<object>...]"
msgstr "git notes [--ref <références-notes>] remove [<objet>...]"
@@ -18918,10 +19421,6 @@ msgstr "git notes remove [<objet>]"
msgid "git notes prune [<options>]"
msgstr "git notes prune [<options>]"
-#: builtin/notes.c:92
-msgid "git notes get-ref"
-msgstr "git notes get-ref"
-
#: builtin/notes.c:97
msgid "Write/edit the notes for the following object:"
msgstr "Écrire/éditer les notes pour l'objet suivant :"
@@ -18953,7 +19452,7 @@ msgstr "impossible d'écrire l'objet note"
msgid "the note contents have been left in %s"
msgstr "le contenu de la note a été laissé dans %s"
-#: builtin/notes.c:240 builtin/tag.c:581
+#: builtin/notes.c:240 builtin/tag.c:582
#, c-format
msgid "could not open or read '%s'"
msgstr "impossible d'ouvrir ou lire '%s'"
@@ -18993,13 +19492,6 @@ msgstr "impossible de copier les notes de '%s' vers '%s'"
msgid "refusing to %s notes in %s (outside of refs/notes/)"
msgstr "refus de faire %s sur des notes dans %s (hors de refs/notes/)"
-#: builtin/notes.c:374 builtin/notes.c:429 builtin/notes.c:507
-#: builtin/notes.c:519 builtin/notes.c:596 builtin/notes.c:663
-#: builtin/notes.c:813 builtin/notes.c:965 builtin/notes.c:987
-#: builtin/prune-packed.c:25 builtin/receive-pack.c:2487 builtin/tag.c:591
-msgid "too many arguments"
-msgstr "trop d'arguments"
-
#: builtin/notes.c:387 builtin/notes.c:676
#, c-format
msgid "no note found for object %s."
@@ -19188,7 +19680,7 @@ msgstr ""
"validez le résultat avec 'git notes merges --commit', ou abandonnez la "
"fusion avec 'git notes merge --abort'.\n"
-#: builtin/notes.c:899 builtin/tag.c:594
+#: builtin/notes.c:899 builtin/tag.c:595
#, c-format
msgid "Failed to resolve '%s' as a valid ref."
msgstr "Impossible de résoudre '%s' comme une référence valide."
@@ -19207,7 +19699,7 @@ msgstr ""
msgid "read object names from the standard input"
msgstr "lire les noms d'objet depuis l'entrée standard"
-#: builtin/notes.c:956 builtin/prune.c:144 builtin/worktree.c:147
+#: builtin/notes.c:956 builtin/prune.c:144 builtin/worktree.c:148
msgid "do not remove, show only"
msgstr "ne pas supprimer, afficher seulement"
@@ -19223,7 +19715,7 @@ msgstr "références-notes"
msgid "use notes from <notes-ref>"
msgstr "utiliser les notes depuis <références-notes>"
-#: builtin/notes.c:1036 builtin/stash.c:1818
+#: builtin/notes.c:1036 builtin/stash.c:1802
#, c-format
msgid "unknown subcommand: %s"
msgstr "sous-commande inconnue : %s"
@@ -19242,7 +19734,7 @@ msgstr ""
"git pack-objects [options...] base-name [< <liste-références> | < <liste-"
"objets>]"
-#: builtin/pack-objects.c:572
+#: builtin/pack-objects.c:570
#, c-format
msgid ""
"write_reuse_object: could not locate %s, expected at offset %<PRIuMAX> in "
@@ -19251,115 +19743,115 @@ msgstr ""
"write_reuse_object : impossible de localiser %s, attendu à l'offset "
"%<PRIuMAX> dans le paquet %s"
-#: builtin/pack-objects.c:580
+#: builtin/pack-objects.c:578
#, c-format
msgid "bad packed object CRC for %s"
msgstr "mauvais CRC d'objet empaqueté pour %s"
-#: builtin/pack-objects.c:591
+#: builtin/pack-objects.c:589
#, c-format
msgid "corrupt packed object for %s"
msgstr "objet empaqueté corrompu pour %s"
-#: builtin/pack-objects.c:722
+#: builtin/pack-objects.c:720
#, c-format
msgid "recursive delta detected for object %s"
msgstr "delta récursif détecté pour l'objet %s"
-#: builtin/pack-objects.c:941
+#: builtin/pack-objects.c:939
#, c-format
msgid "ordered %u objects, expected %<PRIu32>"
msgstr "%u objets commandés, %<PRIu32> attendus"
-#: builtin/pack-objects.c:1036
+#: builtin/pack-objects.c:1034
#, c-format
msgid "expected object at offset %<PRIuMAX> in pack %s"
msgstr "objet attendu à l'offset %<PRIuMAX> dans le paquet %s"
-#: builtin/pack-objects.c:1160
+#: builtin/pack-objects.c:1158
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:1173
+#: builtin/pack-objects.c:1171
msgid "Writing objects"
msgstr "Écriture des objets"
-#: builtin/pack-objects.c:1235 builtin/update-index.c:90
+#: builtin/pack-objects.c:1243 builtin/update-index.c:90
#, c-format
msgid "failed to stat %s"
msgstr "échec du stat de %s"
-#: builtin/pack-objects.c:1268
+#: builtin/pack-objects.c:1276
msgid "failed to write bitmap index"
msgstr "écrire un index de bitmap"
-#: builtin/pack-objects.c:1294
+#: builtin/pack-objects.c:1302
#, c-format
msgid "wrote %<PRIu32> objects while expecting %<PRIu32>"
msgstr "%<PRIu32> objets écrits, %<PRIu32> attendus"
-#: builtin/pack-objects.c:1536
+#: builtin/pack-objects.c:1544
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:1984
+#: builtin/pack-objects.c:1992
#, 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:1993
+#: builtin/pack-objects.c:2001
#, 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:2274
+#: builtin/pack-objects.c:2282
msgid "Counting objects"
msgstr "Décompte des objets"
-#: builtin/pack-objects.c:2439
+#: builtin/pack-objects.c:2447
#, 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:2509 builtin/pack-objects.c:2525
-#: builtin/pack-objects.c:2535
+#: builtin/pack-objects.c:2517 builtin/pack-objects.c:2533
+#: builtin/pack-objects.c:2543
#, c-format
msgid "object %s cannot be read"
msgstr "l'objet %s ne peut être lu"
-#: builtin/pack-objects.c:2512 builtin/pack-objects.c:2539
+#: builtin/pack-objects.c:2520 builtin/pack-objects.c:2547
#, 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:2549
+#: builtin/pack-objects.c:2557
msgid "suboptimal pack - out of memory"
msgstr "paquet sous-optimal - mémoire insuffisante"
-#: builtin/pack-objects.c:2864
+#: builtin/pack-objects.c:2872
#, 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:3003
+#: builtin/pack-objects.c:3011
#, 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:3089
+#: builtin/pack-objects.c:3097
msgid "Compressing objects"
msgstr "Compression des objets"
-#: builtin/pack-objects.c:3095
+#: builtin/pack-objects.c:3103
msgid "inconsistency with delta count"
msgstr "inconsistance dans le compte de delta"
-#: builtin/pack-objects.c:3174
+#: builtin/pack-objects.c:3182
#, c-format
msgid ""
"value of uploadpack.blobpackfileuri must be of the form '<object-hash> <pack-"
@@ -19368,7 +19860,7 @@ 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:3177
+#: builtin/pack-objects.c:3185
#, c-format
msgid ""
"object already configured in another uploadpack.blobpackfileuri (got '%s')"
@@ -19376,18 +19868,18 @@ msgstr ""
"l'objet est déjà configuré dans un autre uploadpack.blobpackfileuri ('%s' "
"reçu)"
-#: builtin/pack-objects.c:3212
+#: builtin/pack-objects.c:3220
#, c-format
msgid "could not get type of object %s in pack %s"
msgstr "impossible d'obtenir le type de l'objet %s dans le paquet %s"
-#: builtin/pack-objects.c:3340 builtin/pack-objects.c:3351
-#: builtin/pack-objects.c:3365
+#: builtin/pack-objects.c:3348 builtin/pack-objects.c:3359
+#: builtin/pack-objects.c:3373
#, c-format
msgid "could not find pack '%s'"
msgstr "impossible de trouver le paquet '%s'"
-#: builtin/pack-objects.c:3408
+#: builtin/pack-objects.c:3416
#, c-format
msgid ""
"expected edge object ID, got garbage:\n"
@@ -19396,7 +19888,7 @@ msgstr ""
"ID d'objet de bord attendu, reçu des données illisibles :\n"
"%s"
-#: builtin/pack-objects.c:3414
+#: builtin/pack-objects.c:3422
#, c-format
msgid ""
"expected object ID, got garbage:\n"
@@ -19405,252 +19897,248 @@ msgstr ""
"ID d'objet attendu, reçu des données illisibles :\n"
"%s"
-#: builtin/pack-objects.c:3507
-msgid "invalid value for --missing"
-msgstr "valeur invalide pour --missing"
-
-#: builtin/pack-objects.c:3532 builtin/pack-objects.c:3619
+#: builtin/pack-objects.c:3540 builtin/pack-objects.c:3627
msgid "cannot open pack index"
msgstr "impossible d'ouvrir l'index de paquet"
-#: builtin/pack-objects.c:3541
+#: builtin/pack-objects.c:3549
#, 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:3627
+#: builtin/pack-objects.c:3635
msgid "unable to force loose object"
msgstr "impossible de forcer l'objet libre"
-#: builtin/pack-objects.c:3757
+#: builtin/pack-objects.c:3763
#, c-format
msgid "not a rev '%s'"
msgstr "'%s' n'est pas une révision"
-#: builtin/pack-objects.c:3760 builtin/rev-parse.c:1061
+#: builtin/pack-objects.c:3766 builtin/rev-parse.c:1061
#, c-format
msgid "bad revision '%s'"
msgstr "mauvaise révision '%s'"
-#: builtin/pack-objects.c:3788
+#: builtin/pack-objects.c:3794
msgid "unable to add recent objects"
msgstr "impossible d'ajouter les objets récents"
-#: builtin/pack-objects.c:3841
+#: builtin/pack-objects.c:3847
#, c-format
msgid "unsupported index version %s"
msgstr "version d'index non supportée %s"
-#: builtin/pack-objects.c:3845
+#: builtin/pack-objects.c:3851
#, c-format
msgid "bad index version '%s'"
msgstr "mauvaise version d'index '%s'"
-#: builtin/pack-objects.c:3884
+#: builtin/pack-objects.c:3907
msgid "<version>[,<offset>]"
msgstr "<version>[,<décalage>]"
-#: builtin/pack-objects.c:3885
+#: builtin/pack-objects.c:3908
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:3888
+#: builtin/pack-objects.c:3911
msgid "maximum size of each output pack file"
msgstr "taille maximum de chaque fichier paquet en sortie"
-#: builtin/pack-objects.c:3890
+#: builtin/pack-objects.c:3913
msgid "ignore borrowed objects from alternate object store"
msgstr "ignorer les objets empruntés à un autre magasin d'objets"
-#: builtin/pack-objects.c:3892
+#: builtin/pack-objects.c:3915
msgid "ignore packed objects"
msgstr "ignorer les objets empaquetés"
-#: builtin/pack-objects.c:3894
+#: builtin/pack-objects.c:3917
msgid "limit pack window by objects"
msgstr "limiter la fenêtre d'empaquetage par objets"
-#: builtin/pack-objects.c:3896
+#: builtin/pack-objects.c:3919
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:3898
+#: builtin/pack-objects.c:3921
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:3900
+#: builtin/pack-objects.c:3923
msgid "reuse existing deltas"
msgstr "réutiliser les deltas existants"
-#: builtin/pack-objects.c:3902
+#: builtin/pack-objects.c:3925
msgid "reuse existing objects"
msgstr "réutiliser les objets existants"
-#: builtin/pack-objects.c:3904
+#: builtin/pack-objects.c:3927
msgid "use OFS_DELTA objects"
msgstr "utiliser les objets OFS_DELTA"
-#: builtin/pack-objects.c:3906
+#: builtin/pack-objects.c:3929
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:3908
+#: builtin/pack-objects.c:3931
msgid "do not create an empty pack output"
msgstr "ne pas créer un paquet vide"
-#: builtin/pack-objects.c:3910
+#: builtin/pack-objects.c:3933
msgid "read revision arguments from standard input"
msgstr "lire les paramètres de révision depuis l'entrée standard"
-#: builtin/pack-objects.c:3912
+#: builtin/pack-objects.c:3935
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:3915
+#: builtin/pack-objects.c:3938
msgid "include objects reachable from any reference"
msgstr "inclure les objets accessibles depuis toute référence"
-#: builtin/pack-objects.c:3918
+#: builtin/pack-objects.c:3941
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:3921
+#: builtin/pack-objects.c:3944
msgid "include objects referred to by the index"
msgstr "inclure les objets référencés par l'index"
-#: builtin/pack-objects.c:3924
+#: builtin/pack-objects.c:3947
msgid "read packs from stdin"
msgstr "lire les paquets depuis l'entrée standard"
-#: builtin/pack-objects.c:3926
+#: builtin/pack-objects.c:3949
msgid "output pack to stdout"
msgstr "afficher l'empaquetage sur la sortie standard"
-#: builtin/pack-objects.c:3928
+#: builtin/pack-objects.c:3951
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:3930
+#: builtin/pack-objects.c:3953
msgid "keep unreachable objects"
msgstr "garder les objets inaccessibles"
-#: builtin/pack-objects.c:3932
+#: builtin/pack-objects.c:3955
msgid "pack loose unreachable objects"
msgstr "empaqueter les objets inaccessibles détachés"
-#: builtin/pack-objects.c:3934
+#: builtin/pack-objects.c:3957
msgid "unpack unreachable objects newer than <time>"
msgstr "dépaqueter les objets inaccessibles plus récents que <heure>"
-#: builtin/pack-objects.c:3937
+#: builtin/pack-objects.c:3960
msgid "use the sparse reachability algorithm"
msgstr "utiliser l'algorithme de joignabilité creuse"
-#: builtin/pack-objects.c:3939
+#: builtin/pack-objects.c:3962
msgid "create thin packs"
msgstr "créer des paquets légers"
-#: builtin/pack-objects.c:3941
+#: builtin/pack-objects.c:3964
msgid "create packs suitable for shallow fetches"
msgstr "créer des paquets permettant des récupérations superficielles"
-#: builtin/pack-objects.c:3943
+#: builtin/pack-objects.c:3966
msgid "ignore packs that have companion .keep file"
msgstr "ignorer les paquets qui ont un fichier .keep"
-#: builtin/pack-objects.c:3945
+#: builtin/pack-objects.c:3968
msgid "ignore this pack"
msgstr "ignorer ce paquet"
-#: builtin/pack-objects.c:3947
+#: builtin/pack-objects.c:3970
msgid "pack compression level"
msgstr "niveau de compression du paquet"
-#: builtin/pack-objects.c:3949
+#: builtin/pack-objects.c:3972
msgid "do not hide commits by grafts"
msgstr "ne pas cacher les validations par greffes"
-#: builtin/pack-objects.c:3951
+#: builtin/pack-objects.c:3974
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:3953
+#: builtin/pack-objects.c:3976
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:3957
+#: builtin/pack-objects.c:3980
msgid "write a bitmap index if possible"
msgstr "écrire un index de bitmap si possible"
-#: builtin/pack-objects.c:3961
+#: builtin/pack-objects.c:3984
msgid "handling for missing objects"
msgstr "gestion des objets manquants"
-#: builtin/pack-objects.c:3964
+#: builtin/pack-objects.c:3987
msgid "do not pack objects in promisor packfiles"
msgstr "ne pas empaqueter les objets dans les fichiers paquets prometteurs"
-#: builtin/pack-objects.c:3966
+#: builtin/pack-objects.c:3989
msgid "respect islands during delta compression"
msgstr "respecter les îlots pendant la compression des deltas"
-#: builtin/pack-objects.c:3968
+#: builtin/pack-objects.c:3991
msgid "protocol"
msgstr "protocole"
-#: builtin/pack-objects.c:3969
+#: builtin/pack-objects.c:3992
msgid "exclude any configured uploadpack.blobpackfileuri with this protocol"
msgstr "exclure tout uploadpack.blobpackfileuri configuré avec ce protocole"
-#: builtin/pack-objects.c:4002
+#: builtin/pack-objects.c:4027
#, 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:4007
+#: builtin/pack-objects.c:4032
#, c-format
msgid "pack.deltaCacheLimit is too high, forcing %d"
msgstr "pack.deltaCacheLimit est trop grand, forcé à %d"
-#: builtin/pack-objects.c:4063
+#: builtin/pack-objects.c:4088
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:4065
+#: builtin/pack-objects.c:4090
msgid "minimum pack size limit is 1 MiB"
msgstr "la taille limite minimale d'un paquet est 1 MiB"
-#: builtin/pack-objects.c:4070
+#: builtin/pack-objects.c:4095
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:4079
+#: builtin/pack-objects.c:4104
msgid "cannot use --filter without --stdout"
msgstr "impossible d'utiliser --filter sans --stdout"
-#: builtin/pack-objects.c:4081
+#: builtin/pack-objects.c:4106
msgid "cannot use --filter with --stdin-packs"
msgstr "impossible d'utiliser --filter avec --stdin-packs"
-#: builtin/pack-objects.c:4085
+#: builtin/pack-objects.c:4110
msgid "cannot use internal rev list with --stdin-packs"
msgstr "impossible d'utiliser un liste interne de révisions avec --stdin-packs"
-#: builtin/pack-objects.c:4144
+#: builtin/pack-objects.c:4169
msgid "Enumerating objects"
msgstr "Énumération des objets"
-#: builtin/pack-objects.c:4180
+#: builtin/pack-objects.c:4210
#, c-format
msgid ""
"Total %<PRIu32> (delta %<PRIu32>), reused %<PRIu32> (delta %<PRIu32>), pack-"
@@ -19685,10 +20173,6 @@ msgstr "empaqueter tout"
msgid "prune loose refs (default)"
msgstr "éliminer les références perdues (défaut)"
-#: builtin/prune-packed.c:6
-msgid "git prune-packed [-n | --dry-run] [-q | --quiet]"
-msgstr "git prune-packed [-n | --dry-run] [-q | --quiet]"
-
#: builtin/prune.c:14
msgid "git prune [-n] [-v] [--progress] [--expire <time>] [--] [<head>...]"
msgstr "git prune [-n] [-v] [--progress] [--expire <heure>] [--] [<head>…]"
@@ -19709,11 +20193,6 @@ msgstr "limiter la traversée aux objets hors des fichiers paquets prometteurs"
msgid "cannot prune in a precious-objects repo"
msgstr "impossible de nettoyer dans un dépôt d'objets précieux"
-#: builtin/pull.c:45 builtin/pull.c:47
-#, c-format
-msgid "Invalid value for %s: %s"
-msgstr "Valeur invalide pour %s : %s"
-
#: builtin/pull.c:67
msgid "git pull [<options>] [<repository> [<refspec>...]]"
msgstr "git pull [<options>] [<dépôt> [<spécification-de-référence>...]]"
@@ -19738,7 +20217,7 @@ msgstr "autoriser l'avance rapide"
msgid "control use of pre-merge-commit and commit-msg hooks"
msgstr "contrôler l'utilisation des crochets pre-merge-commit et commit-msg"
-#: builtin/pull.c:171 parse-options.h:340
+#: builtin/pull.c:171 parse-options.h:371
msgid "automatically stash/stash pop before and after"
msgstr "remiser et réappliquer automatiquement avant et après"
@@ -19754,11 +20233,6 @@ msgstr "forcer l'écrasement de la branche locale"
msgid "number of submodules pulled in parallel"
msgstr "nombre de sous-modules tirés en parallèle"
-#: builtin/pull.c:321
-#, c-format
-msgid "Invalid value for pull.ff: %s"
-msgstr "Valeur invalide pour pull.ff : %s"
-
#: builtin/pull.c:449
msgid ""
"There is no candidate for rebasing against among the refs that you just "
@@ -19794,7 +20268,7 @@ msgstr ""
"configuration\n"
"pour la branche actuelle, vous devez spécifier la branche avec la commande."
-#: builtin/pull.c:460 builtin/rebase.c:951
+#: builtin/pull.c:460 builtin/rebase.c:978
msgid "You are not currently on a branch."
msgstr "Vous n'êtes actuellement sur aucune branche."
@@ -19811,16 +20285,16 @@ msgid "See git-pull(1) for details."
msgstr "Référez-vous à git-pull(1) pour de plus amples détails."
#: builtin/pull.c:467 builtin/pull.c:473 builtin/pull.c:482
-#: builtin/rebase.c:957
+#: builtin/rebase.c:984
msgid "<remote>"
msgstr "<distant>"
#: builtin/pull.c:467 builtin/pull.c:482 builtin/pull.c:487
-#: contrib/scalar/scalar.c:375
+#: contrib/scalar/scalar.c:374
msgid "<branch>"
msgstr "<branche>"
-#: builtin/pull.c:475 builtin/rebase.c:949
+#: builtin/pull.c:475 builtin/rebase.c:976
msgid "There is no tracking information for the current branch."
msgstr "Pas d'information de suivi distant pour la branche actuelle."
@@ -19879,21 +20353,21 @@ msgstr ""
"passer --rebase, --no-rebase ou --ff-only sur la ligne de commande pour\n"
"remplacer à l'invocation la valeur par défaut configurée.\n"
-#: builtin/pull.c:1046
+#: builtin/pull.c:1047
msgid "Updating an unborn branch with changes added to the index."
msgstr ""
"Mise à jour d'une branche non encore créée avec les changements ajoutés dans "
"l'index."
-#: builtin/pull.c:1050
+#: builtin/pull.c:1051
msgid "pull with rebase"
msgstr "tirer avec un rebasage"
-#: builtin/pull.c:1051
+#: builtin/pull.c:1052
msgid "please commit or stash them."
msgstr "veuillez les valider ou les remiser."
-#: builtin/pull.c:1076
+#: builtin/pull.c:1077
#, c-format
msgid ""
"fetch updated the current branch head.\n"
@@ -19904,7 +20378,7 @@ msgstr ""
"avance rapide de votre copie de travail\n"
"depuis le commit %s."
-#: builtin/pull.c:1082
+#: builtin/pull.c:1083
#, c-format
msgid ""
"Cannot fast-forward your working tree.\n"
@@ -19921,23 +20395,23 @@ msgstr ""
"$ git reset --hard\n"
"pour régénérer."
-#: builtin/pull.c:1097
+#: builtin/pull.c:1098
msgid "Cannot merge multiple branches into empty head."
msgstr "Impossible de fusionner de multiples branches sur une tête vide."
-#: builtin/pull.c:1102
+#: builtin/pull.c:1103
msgid "Cannot rebase onto multiple branches."
msgstr "Impossible de rebaser sur de multiples branches."
-#: builtin/pull.c:1104
+#: builtin/pull.c:1105
msgid "Cannot fast-forward to multiple branches."
msgstr "Impossible d'aller en avance rapide sur de multiples branches."
-#: builtin/pull.c:1119
+#: builtin/pull.c:1120
msgid "Need to specify how to reconcile divergent branches."
msgstr "Besoin de spécifier comment réconcilier des branches divergentes."
-#: builtin/pull.c:1133
+#: builtin/pull.c:1134
msgid "cannot rebase with locally recorded submodule modifications"
msgstr ""
"impossible de rebaser avec des modifications de sous-modules enregistrées "
@@ -20130,7 +20604,7 @@ msgstr "Poussée vers %s\n"
msgid "failed to push some refs to '%s'"
msgstr "impossible de pousser des références vers '%s'"
-#: builtin/push.c:544 builtin/submodule--helper.c:3259
+#: builtin/push.c:544 builtin/submodule--helper.c:3377
msgid "repository"
msgstr "dépôt"
@@ -20375,11 +20849,11 @@ msgstr "déboguer unpack-trees"
msgid "suppress feedback messages"
msgstr "supprimer les messages d'information de suivi"
-#: builtin/read-tree.c:183
+#: builtin/read-tree.c:190
msgid "You need to resolve your current index first"
msgstr "Vous devez d'abord résoudre votre index courant"
-#: builtin/rebase.c:35
+#: builtin/rebase.c:36
msgid ""
"git rebase [-i] [options] [--exec <cmd>] [--onto <newbase> | --keep-base] "
"[<upstream> [<branch>]]"
@@ -20387,55 +20861,51 @@ msgstr ""
"git rebase [-i] [options] [--exec <cmd>] [--onto <nouvelle-base> | --keep-"
"base] [<amont> [<branche>]]"
-#: builtin/rebase.c:37
+#: builtin/rebase.c:38
msgid ""
"git rebase [-i] [options] [--exec <cmd>] [--onto <newbase>] --root [<branch>]"
msgstr ""
"git rebase [-i] [options] [--exec <cmd>] [--onto <nouvelle-base>] --root "
"[<branche>]"
-#: builtin/rebase.c:39
-msgid "git rebase --continue | --abort | --skip | --edit-todo"
-msgstr "git rebase --continue | --abort | --skip | --edit-todo"
-
-#: builtin/rebase.c:230
+#: builtin/rebase.c:231
#, c-format
msgid "could not create temporary %s"
msgstr "impossible de créer un fichier temporaire %s"
-#: builtin/rebase.c:236
+#: builtin/rebase.c:237
msgid "could not mark as interactive"
msgstr "impossible de marquer comme interactif"
-#: builtin/rebase.c:289
+#: builtin/rebase.c:290
msgid "could not generate todo list"
msgstr "impossible de générer la liste à-faire"
-#: builtin/rebase.c:331
+#: builtin/rebase.c:332
msgid "a base commit must be provided with --upstream or --onto"
msgstr "un commit de base doit être fourni avec --upstream ou --onto"
-#: builtin/rebase.c:390
+#: builtin/rebase.c:391
#, c-format
msgid "%s requires the merge backend"
msgstr "%s requiert un moteur de fusion"
-#: builtin/rebase.c:432
+#: builtin/rebase.c:433
#, c-format
msgid "could not get 'onto': '%s'"
msgstr "impossible d'accéder 'onto' : '%s'"
-#: builtin/rebase.c:449
+#: builtin/rebase.c:450
#, c-format
msgid "invalid orig-head: '%s'"
msgstr "orig-head invalide : '%s'"
-#: builtin/rebase.c:474
+#: builtin/rebase.c:475
#, c-format
msgid "ignoring invalid allow_rerere_autoupdate: '%s'"
msgstr "allow_rerere_autoupdate invalide ignoré : '%s'"
-#: builtin/rebase.c:597
+#: builtin/rebase.c:600
msgid ""
"Resolve all conflicts manually, mark them as resolved with\n"
"\"git add/rm <conflicted_files>\", then run \"git rebase --continue\".\n"
@@ -20449,7 +20919,7 @@ msgstr ""
"arrêter\n"
"et revenir à l'état antérieur à la commande, lancez \"git rebase --abort\"."
-#: builtin/rebase.c:680
+#: builtin/rebase.c:685
#, c-format
msgid ""
"\n"
@@ -20468,16 +20938,21 @@ msgstr ""
"\n"
"Résultat, git ne peut pas les rebaser."
-#: builtin/rebase.c:925
+#: builtin/rebase.c:836
+#, c-format
+msgid "could not switch to %s"
+msgstr "impossible de basculer vers %s"
+
+#: builtin/rebase.c:952
#, c-format
msgid ""
-"unrecognized empty type '%s'; valid values are \"drop\", \"keep\", and \"ask"
-"\"."
+"unrecognized empty type '%s'; valid values are \"drop\", \"keep\", and "
+"\"ask\"."
msgstr ""
"type vide non connu '%s' ; les valeurs valides sont \"drop\" (abandonner), "
"\"keep\" (garder) et \"ask\" (demander)."
-#: builtin/rebase.c:943
+#: builtin/rebase.c:970
#, c-format
msgid ""
"%s\n"
@@ -20494,7 +20969,7 @@ msgstr ""
" git rebase '<branche>'\n"
"\n"
-#: builtin/rebase.c:959
+#: builtin/rebase.c:986
#, c-format
msgid ""
"If you wish to set tracking information for this branch you can do so with:\n"
@@ -20508,183 +20983,183 @@ msgstr ""
" git branch --set-upstream-to=%s/<branche> %s\n"
"\n"
-#: builtin/rebase.c:989
+#: builtin/rebase.c:1016
msgid "exec commands cannot contain newlines"
msgstr "les commandes exec ne peut pas contenir de retour à la ligne"
-#: builtin/rebase.c:993
+#: builtin/rebase.c:1020
msgid "empty exec command"
msgstr "commande exec vide"
-#: builtin/rebase.c:1023
+#: builtin/rebase.c:1051
msgid "rebase onto given branch instead of upstream"
msgstr "rebaser sur la branche %s au lieu de la branche amont"
-#: builtin/rebase.c:1025
+#: builtin/rebase.c:1053
msgid "use the merge-base of upstream and branch as the current base"
msgstr ""
"utiliser la base de fusion de l'amont et la branche comme base actuelle"
-#: builtin/rebase.c:1027
+#: builtin/rebase.c:1055
msgid "allow pre-rebase hook to run"
msgstr "permettre le lancement du crochet pre-rebase"
-#: builtin/rebase.c:1029
+#: builtin/rebase.c:1057
msgid "be quiet. implies --no-stat"
msgstr "être silencieux. implique --no-stat"
-#: builtin/rebase.c:1032
+#: builtin/rebase.c:1060
msgid "display a diffstat of what changed upstream"
msgstr "afficher un diffstat de ce qui a changé en amont"
-#: builtin/rebase.c:1035
+#: builtin/rebase.c:1063
msgid "do not show diffstat of what changed upstream"
msgstr "ne pas afficher un diffstat de ce qui a changé en amont"
-#: builtin/rebase.c:1038
+#: builtin/rebase.c:1066
msgid "add a Signed-off-by trailer to each commit"
msgstr "ajouter une ligne Signed-off-by à chaque message de validation"
-#: builtin/rebase.c:1041
+#: builtin/rebase.c:1069
msgid "make committer date match author date"
msgstr "mettre la date de validateur à la date auteur"
-#: builtin/rebase.c:1043
+#: builtin/rebase.c:1071
msgid "ignore author date and use current date"
msgstr "ignorer la date d'auteur et utilise la date actuelle"
-#: builtin/rebase.c:1045
+#: builtin/rebase.c:1073
msgid "synonym of --reset-author-date"
msgstr "synonyme pour --reset-author-date"
-#: builtin/rebase.c:1047 builtin/rebase.c:1051
+#: builtin/rebase.c:1075 builtin/rebase.c:1079
msgid "passed to 'git apply'"
msgstr "passé jusqu'à git apply"
-#: builtin/rebase.c:1049
+#: builtin/rebase.c:1077
msgid "ignore changes in whitespace"
msgstr "ignorer des modifications d'espaces"
-#: builtin/rebase.c:1053 builtin/rebase.c:1056
+#: builtin/rebase.c:1081 builtin/rebase.c:1084
msgid "cherry-pick all commits, even if unchanged"
msgstr "picorer tous les commits, même sans modifiant"
-#: builtin/rebase.c:1058
+#: builtin/rebase.c:1086
msgid "continue"
msgstr "continuer"
-#: builtin/rebase.c:1061
+#: builtin/rebase.c:1089
msgid "skip current patch and continue"
msgstr "sauter le patch courant et continuer"
-#: builtin/rebase.c:1063
+#: builtin/rebase.c:1091
msgid "abort and check out the original branch"
msgstr "abandonner et extraire la branche d'origine"
-#: builtin/rebase.c:1066
+#: builtin/rebase.c:1094
msgid "abort but keep HEAD where it is"
msgstr "abandonne mais garde HEAD où il est"
-#: builtin/rebase.c:1067
+#: builtin/rebase.c:1095
msgid "edit the todo list during an interactive rebase"
msgstr "éditer la liste à faire lors d'un rebasage interactif"
-#: builtin/rebase.c:1070
+#: builtin/rebase.c:1098
msgid "show the patch file being applied or merged"
msgstr "afficher le patch en cours d'application ou de fusion"
-#: builtin/rebase.c:1073
+#: builtin/rebase.c:1101
msgid "use apply strategies to rebase"
msgstr "utiliser des stratégies d'application pour rebaser"
-#: builtin/rebase.c:1077
+#: builtin/rebase.c:1105
msgid "use merging strategies to rebase"
msgstr "utiliser des stratégies de fusion pour rebaser"
-#: builtin/rebase.c:1081
+#: builtin/rebase.c:1109
msgid "let the user edit the list of commits to rebase"
msgstr "laisser l'utilisateur éditer la liste des commits à rebaser"
-#: builtin/rebase.c:1085
+#: builtin/rebase.c:1113
msgid "(DEPRECATED) try to recreate merges instead of ignoring them"
msgstr "(DÉCONSEILLÉ) essayer de recréer les fusions au lieu de les ignorer"
-#: builtin/rebase.c:1090
+#: builtin/rebase.c:1118
msgid "how to handle commits that become empty"
msgstr "comment gérer les commits qui deviennent vides"
-#: builtin/rebase.c:1093
+#: builtin/rebase.c:1121
msgid "keep commits which start empty"
msgstr "conserver les commits qui commencent vides"
-#: builtin/rebase.c:1097
+#: builtin/rebase.c:1125
msgid "move commits that begin with squash!/fixup! under -i"
msgstr "déplace les commits qui commencent par squash!/fixup! sous -i"
-#: builtin/rebase.c:1104
+#: builtin/rebase.c:1132
msgid "add exec lines after each commit of the editable list"
msgstr "ajouter les lignes exec après chaque commit de la liste éditable"
-#: builtin/rebase.c:1108
+#: builtin/rebase.c:1136
msgid "allow rebasing commits with empty messages"
msgstr "autoriser les commits de rebasage avec des messages vides"
-#: builtin/rebase.c:1112
+#: builtin/rebase.c:1140
msgid "try to rebase merges instead of skipping them"
msgstr "essayer de rebaser les fusions au lieu de les garder"
-#: builtin/rebase.c:1115
+#: builtin/rebase.c:1143
msgid "use 'merge-base --fork-point' to refine upstream"
msgstr "utiliser 'merge-base --fork-point' pour raffiner l'amont"
-#: builtin/rebase.c:1117
+#: builtin/rebase.c:1145
msgid "use the given merge strategy"
msgstr "utiliser la stratégie de fusion indiquée"
-#: builtin/rebase.c:1119 builtin/revert.c:115
+#: builtin/rebase.c:1147 builtin/revert.c:115
msgid "option"
msgstr "option"
-#: builtin/rebase.c:1120
+#: builtin/rebase.c:1148
msgid "pass the argument through to the merge strategy"
msgstr "passer les arguments jusqu'à la stratégie de fusion"
-#: builtin/rebase.c:1123
+#: builtin/rebase.c:1151
msgid "rebase all reachable commits up to the root(s)"
msgstr "rebaser tous les objets inatteignables depuis les racines"
-#: builtin/rebase.c:1126
+#: builtin/rebase.c:1154
msgid "automatically re-schedule any `exec` that fails"
msgstr "re-planifier automatiquement tout `exec` qui échoue"
-#: builtin/rebase.c:1128
+#: builtin/rebase.c:1156
msgid "apply all changes, even those already present upstream"
msgstr ""
"appliquer toutes les modifications, même celles déjà présentes en amont"
-#: builtin/rebase.c:1149
+#: builtin/rebase.c:1177
msgid "It looks like 'git am' is in progress. Cannot rebase."
msgstr "Il semble que 'git am' soit en cours. Impossible de rebaser."
-#: builtin/rebase.c:1180
+#: builtin/rebase.c:1208
msgid "--preserve-merges was replaced by --rebase-merges"
msgstr "--preserve-merges a été remplacé par --rebase-merges"
-#: builtin/rebase.c:1202
+#: builtin/rebase.c:1230
msgid "No rebase in progress?"
msgstr "Pas de rebasage en cours ?"
-#: builtin/rebase.c:1206
+#: builtin/rebase.c:1234
msgid "The --edit-todo action can only be used during interactive rebase."
msgstr ""
"L'action --edit-todo peut seulement être utilisée lors d'un rebasage "
"interactif."
-#: builtin/rebase.c:1229 t/helper/test-fast-rebase.c:122
+#: builtin/rebase.c:1257 t/helper/test-fast-rebase.c:122
msgid "Cannot read HEAD"
msgstr "Impossible de lire HEAD"
-#: builtin/rebase.c:1241
+#: builtin/rebase.c:1269
msgid ""
"You must edit all merge conflicts and then\n"
"mark them as resolved using git add"
@@ -20692,16 +21167,16 @@ msgstr ""
"Vous devez éditer tous les conflits de fusion et\n"
"les marquer comme résolus avec git add"
-#: builtin/rebase.c:1260
+#: builtin/rebase.c:1287
msgid "could not discard worktree changes"
msgstr "impossible de supprimer les changements de l'arbre de travail"
-#: builtin/rebase.c:1279
+#: builtin/rebase.c:1308
#, c-format
msgid "could not move back to %s"
msgstr "impossible de revenir à %s"
-#: builtin/rebase.c:1325
+#: builtin/rebase.c:1354
#, c-format
msgid ""
"It seems that there is already a %s directory, and\n"
@@ -20723,125 +21198,120 @@ msgstr ""
"chose\n"
"d'important ici.\n"
-#: builtin/rebase.c:1353
+#: builtin/rebase.c:1382
msgid "switch `C' expects a numerical value"
msgstr "l'option `C' attend un valeur numérique"
-#: builtin/rebase.c:1395
+#: builtin/rebase.c:1424
#, c-format
msgid "Unknown mode: %s"
msgstr "Mode inconnu : %s"
-#: builtin/rebase.c:1434
+#: builtin/rebase.c:1463
msgid "--strategy requires --merge or --interactive"
msgstr "--strategy requiert --merge ou --interactive"
-#: builtin/rebase.c:1463
+#: builtin/rebase.c:1492
msgid "apply options and merge options cannot be used together"
msgstr ""
"Les options d'apply et celles de merge ne peuvent pas être utilisées ensemble"
-#: builtin/rebase.c:1476
+#: builtin/rebase.c:1505
#, c-format
msgid "Unknown rebase backend: %s"
msgstr "Backend de rebasage inconnu : %s"
-#: builtin/rebase.c:1505
+#: builtin/rebase.c:1534
msgid "--reschedule-failed-exec requires --exec or --interactive"
msgstr "--reschedule-failed-exec requiert --exec ou --interactive"
-#: builtin/rebase.c:1536
+#: builtin/rebase.c:1565
#, c-format
msgid "invalid upstream '%s'"
msgstr "amont invalide '%s'"
-#: builtin/rebase.c:1542
+#: builtin/rebase.c:1571
msgid "Could not create new root commit"
msgstr "Impossible de créer un nouveau commit racine"
-#: builtin/rebase.c:1568
+#: builtin/rebase.c:1597
#, c-format
msgid "'%s': need exactly one merge base with branch"
msgstr "'%s': exactement une base de fusion nécessaire avec une branche"
-#: builtin/rebase.c:1571
+#: builtin/rebase.c:1600
#, c-format
msgid "'%s': need exactly one merge base"
msgstr "'%s': exactement une base de fusion nécessaire"
-#: builtin/rebase.c:1580
+#: builtin/rebase.c:1609
#, c-format
msgid "Does not point to a valid commit '%s'"
msgstr "Ne pointe pas sur une validation valide : '%s'"
-#: builtin/rebase.c:1607
+#: builtin/rebase.c:1636
#, c-format
msgid "no such branch/commit '%s'"
msgstr "pas de branche ou commit '%s'"
-#: builtin/rebase.c:1618 builtin/submodule--helper.c:39
-#: builtin/submodule--helper.c:2659
+#: builtin/rebase.c:1647 builtin/submodule--helper.c:43
+#: builtin/submodule--helper.c:2477
#, c-format
msgid "No such ref: %s"
msgstr "Référence inexistante : %s"
-#: builtin/rebase.c:1629
+#: builtin/rebase.c:1658
msgid "Could not resolve HEAD to a revision"
msgstr "Impossible de résoudre le commit HEAD vers un révision"
-#: builtin/rebase.c:1650
+#: builtin/rebase.c:1679
msgid "Please commit or stash them."
msgstr "Veuillez les valider ou les remiser."
-#: builtin/rebase.c:1686
-#, c-format
-msgid "could not switch to %s"
-msgstr "impossible de basculer vers %s"
-
-#: builtin/rebase.c:1697
+#: builtin/rebase.c:1714
msgid "HEAD is up to date."
msgstr "HEAD est à jour."
-#: builtin/rebase.c:1699
+#: builtin/rebase.c:1716
#, c-format
msgid "Current branch %s is up to date.\n"
msgstr "La branche courante %s est à jour.\n"
-#: builtin/rebase.c:1707
+#: builtin/rebase.c:1724
msgid "HEAD is up to date, rebase forced."
msgstr "HEAD est à jour, rebasage forcé."
-#: builtin/rebase.c:1709
+#: builtin/rebase.c:1726
#, c-format
msgid "Current branch %s is up to date, rebase forced.\n"
msgstr "La branche courante %s est à jour, rebasage forcé.\n"
-#: builtin/rebase.c:1717
+#: builtin/rebase.c:1734
msgid "The pre-rebase hook refused to rebase."
msgstr "Le crochet pre-rebase a refusé de rebaser."
-#: builtin/rebase.c:1724
+#: builtin/rebase.c:1741
#, c-format
msgid "Changes to %s:\n"
msgstr "Changements vers %s :\n"
-#: builtin/rebase.c:1727
+#: builtin/rebase.c:1744
#, c-format
msgid "Changes from %s to %s:\n"
msgstr "Changements de %s sur %s :\n"
-#: builtin/rebase.c:1752
+#: builtin/rebase.c:1769
#, c-format
msgid "First, rewinding head to replay your work on top of it...\n"
msgstr ""
"Rembobinage préalable de head pour pouvoir rejouer votre travail par-"
"dessus...\n"
-#: builtin/rebase.c:1761
+#: builtin/rebase.c:1781
msgid "Could not detach HEAD"
msgstr "Impossible de détacher HEAD"
-#: builtin/rebase.c:1770
+#: builtin/rebase.c:1790
#, c-format
msgid "Fast-forwarded %s to %s.\n"
msgstr "Avance rapide de %s sur %s.\n"
@@ -20850,7 +21320,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:1275
+#: builtin/receive-pack.c:1263
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"
@@ -20880,7 +21350,7 @@ msgstr ""
"Pour éliminer ce message et conserver le comportement par défaut,\n"
"réglez « receive.denyCurrentBranch » à 'refuse'."
-#: builtin/receive-pack.c:1295
+#: builtin/receive-pack.c:1283
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"
@@ -20900,79 +21370,115 @@ msgstr ""
"\n"
"Pour éliminer ce message, réglez-le à 'refuse'."
-#: builtin/receive-pack.c:2474
+#: builtin/receive-pack.c:2476
msgid "quiet"
msgstr "quiet"
-#: builtin/receive-pack.c:2489
+#: builtin/receive-pack.c:2491
msgid "you must specify a directory"
msgstr "Vous devez spécifier un répertoire"
-#: builtin/reflog.c:17
+#: builtin/reflog.c:9
+msgid "git reflog [show] [<log-options>] [<ref>]"
+msgstr "git reflog [show] [<options-de-journal>] [<réf>]"
+
+#: builtin/reflog.c:12
msgid ""
-"git reflog expire [--expire=<time>] [--expire-unreachable=<time>] [--"
-"rewrite] [--updateref] [--stale-fix] [--dry-run | -n] [--verbose] [--all] "
-"<refs>..."
+"git reflog expire [--expire=<time>] [--expire-unreachable=<time>]\n"
+" [--rewrite] [--updateref] [--stale-fix]\n"
+" [--dry-run | -n] [--verbose] [--all [--single-worktree] | "
+"<refs>...]"
msgstr ""
-"git reflog expire [--expire=<date>] [--expire-unreachable=<date>] [--"
-"rewrite] [--updateref] [--stale-fix] [--dry-run | -n] [--verbose] [--all] "
-"<réferences>..."
+"git reflog expire [--expire=<temps>] [--expire-unreachable=<temps>]\n"
+" [--rewrite] [--updateref] [--stale-fix]\n"
+" [--dry-run | -n] [--verbose] [--all [--single-worktree] | "
+"<réfs>...]"
-#: builtin/reflog.c:22
+#: builtin/reflog.c:17
msgid ""
-"git reflog delete [--rewrite] [--updateref] [--dry-run | -n] [--verbose] "
-"<refs>..."
+"git reflog delete [--rewrite] [--updateref]\n"
+" [--dry-run | -n] [--verbose] <ref>@{<specifier>}..."
msgstr ""
-"git reflog delete [--rewrite] [--updateref] [--dry-run | -n] [--verbose] "
-"<références>..."
+"git reflog delete [--rewrite] [--updateref]\n"
+" [--dry-run | -n] [--verbose] <réf>@{<spécificateur>}..."
-#: builtin/reflog.c:25
+#: builtin/reflog.c:21
msgid "git reflog exists <ref>"
msgstr "git reflog exists <référence>"
-#: builtin/reflog.c:585 builtin/reflog.c:590
+#: builtin/reflog.c:197 builtin/reflog.c:211
#, c-format
-msgid "'%s' is not a valid timestamp"
-msgstr "'%s' n'est pas un horodatage valide"
+msgid "invalid timestamp '%s' given to '--%s'"
+msgstr "horodatage invalide '%s' fourni à '--%s'"
+
+#: builtin/reflog.c:240 builtin/reflog.c:359
+msgid "do not actually prune any entries"
+msgstr "ne pas réellement élaguer des entrées"
+
+#: builtin/reflog.c:243 builtin/reflog.c:362
+msgid ""
+"rewrite the old SHA1 with the new SHA1 of the entry that now precedes it"
+msgstr ""
+"réécrire l'ancien SHA1 avec le nouveau SHA1 de l'entrée qui la précède "
+"maintenant"
+
+#: builtin/reflog.c:246 builtin/reflog.c:365
+msgid "update the reference to the value of the top reflog entry"
+msgstr ""
+"mettre à jour la référence avec la valeur de l'entrée en tête de reflog"
-#: builtin/reflog.c:631
+#: builtin/reflog.c:248 builtin/reflog.c:367
+msgid "print extra information on screen"
+msgstr "Afficher de l'informations supplémentaires"
+
+#: builtin/reflog.c:249 builtin/reflog.c:253
+msgid "timestamp"
+msgstr "horodatage"
+
+#: builtin/reflog.c:250
+msgid "prune entries older than the specified time"
+msgstr "élaguer les entrées plus vieilles que <temps>"
+
+#: builtin/reflog.c:254
+msgid ""
+"prune entries older than <time> that are not reachable from the current tip "
+"of the branch"
+msgstr ""
+"élaguer les entrées plus anciennes que <temps> qui ne sont pas joignables "
+"depuis le sommet actuel de la branche"
+
+#: builtin/reflog.c:258
+msgid "prune any reflog entries that point to broken commits"
+msgstr "élaguer les entrées de reflog qui pointent sur des commits cassés"
+
+#: builtin/reflog.c:259
+msgid "process the reflogs of all references"
+msgstr "traiter les reflogs de toutes les références"
+
+#: builtin/reflog.c:261
+msgid "limits processing to reflogs from the current worktree only"
+msgstr "limite le traitement des reflogs seulement à l'arbre de travail actuel"
+
+#: builtin/reflog.c:294
#, c-format
msgid "Marking reachable objects..."
msgstr "Marquage des objets inaccessibles..."
-#: builtin/reflog.c:675
+#: builtin/reflog.c:338
#, c-format
msgid "%s points nowhere!"
msgstr "%s ne pointe nulle part !"
-#: builtin/reflog.c:731
+#: builtin/reflog.c:374
msgid "no reflog specified to delete"
msgstr "pas de journal de références à supprimer spécifié"
-#: builtin/reflog.c:742
-#, c-format
-msgid "not a reflog: %s"
-msgstr "'%s' n'est pas un journal de références"
-
-#: builtin/reflog.c:747
-#, c-format
-msgid "no reflog for '%s'"
-msgstr "pas de journal de références pour '%s'"
-
-#: builtin/reflog.c:794
+#: builtin/reflog.c:396
#, c-format
msgid "invalid ref format: %s"
msgstr "format de référence invalide : %s"
-#: builtin/reflog.c:803
-msgid "git reflog [ show | expire | delete | exists ]"
-msgstr "git reflog [ show | expire | delete | exists ]"
-
-#: builtin/remote.c:17
-msgid "git remote [-v | --verbose]"
-msgstr "git remote [-v | --verbose]"
-
-#: builtin/remote.c:18
+#: builtin/remote.c:19
msgid ""
"git remote add [-t <branch>] [-m <master>] [-f] [--tags | --no-tags] [--"
"mirror=<fetch|push>] <name> <url>"
@@ -20980,88 +21486,88 @@ msgstr ""
"git remote add [-t <branche>] [-m <master>] [-f] [--tags | --no-tags] [--"
"mirror=<fetch|push>] <nom> <url>"
-#: builtin/remote.c:19 builtin/remote.c:39
-msgid "git remote rename <old> <new>"
-msgstr "git remote rename <ancienne> <nouvelle>"
+#: builtin/remote.c:20 builtin/remote.c:40
+msgid "git remote rename [--[no-]progress] <old> <new>"
+msgstr "git remote rename [--[no-]progress] <ancien> <nouveau>"
-#: builtin/remote.c:20 builtin/remote.c:44
+#: builtin/remote.c:21 builtin/remote.c:45
msgid "git remote remove <name>"
msgstr "git remote remove <nom>"
-#: builtin/remote.c:21 builtin/remote.c:49
+#: builtin/remote.c:22 builtin/remote.c:50
msgid "git remote set-head <name> (-a | --auto | -d | --delete | <branch>)"
msgstr "git remote set-head <nom> (-a | --auto | -d | --delete | <branche>)"
-#: builtin/remote.c:22
+#: builtin/remote.c:23
msgid "git remote [-v | --verbose] show [-n] <name>"
msgstr "git remote [-v | --verbose] show [-n] <nom>"
-#: builtin/remote.c:23
+#: builtin/remote.c:24
msgid "git remote prune [-n | --dry-run] <name>"
msgstr "git remote prune [-n | --dry-run] <nom>"
-#: builtin/remote.c:24
+#: builtin/remote.c:25
msgid ""
"git remote [-v | --verbose] update [-p | --prune] [(<group> | <remote>)...]"
msgstr ""
"git remote [-v | --verbose] update [-p | --prune] [(<groupe> | "
"<distante>)...]"
-#: builtin/remote.c:25
+#: builtin/remote.c:26
msgid "git remote set-branches [--add] <name> <branch>..."
msgstr "git remote set-branches [--add] <nom> <branche>..."
-#: builtin/remote.c:26 builtin/remote.c:75
+#: builtin/remote.c:27 builtin/remote.c:76
msgid "git remote get-url [--push] [--all] <name>"
msgstr "git remote get-url [--push] [--all] <nom>"
-#: builtin/remote.c:27 builtin/remote.c:80
+#: builtin/remote.c:28 builtin/remote.c:81
msgid "git remote set-url [--push] <name> <newurl> [<oldurl>]"
msgstr "git remote set-url [--push] <nom> <nouvelle-URL> [<ancienne-URL>]"
-#: builtin/remote.c:28 builtin/remote.c:81
+#: builtin/remote.c:29 builtin/remote.c:82
msgid "git remote set-url --add <name> <newurl>"
msgstr "git remote set-url --add <nom> <nouvelle-URL>"
-#: builtin/remote.c:29 builtin/remote.c:82
+#: builtin/remote.c:30 builtin/remote.c:83
msgid "git remote set-url --delete <name> <url>"
msgstr "git remote set-url --delete <nom> <url>"
-#: builtin/remote.c:34
+#: builtin/remote.c:35
msgid "git remote add [<options>] <name> <url>"
msgstr "git remote add [<options>] <nom> <URL>"
-#: builtin/remote.c:54
+#: builtin/remote.c:55
msgid "git remote set-branches <name> <branch>..."
msgstr "git remote set-branches <nom> <branche>..."
-#: builtin/remote.c:55
+#: builtin/remote.c:56
msgid "git remote set-branches --add <name> <branch>..."
msgstr "git remote set-branches --add <nom> <branche>..."
-#: builtin/remote.c:60
+#: builtin/remote.c:61
msgid "git remote show [<options>] <name>"
msgstr "git remote show [<options>] <nom>"
-#: builtin/remote.c:65
+#: builtin/remote.c:66
msgid "git remote prune [<options>] <name>"
msgstr "git remote prune [<options>] <nom>"
-#: builtin/remote.c:70
+#: builtin/remote.c:71
msgid "git remote update [<options>] [<group> | <remote>]..."
msgstr "git remote update [<options>] [<groupe> | <distante>]..."
-#: builtin/remote.c:99
+#: builtin/remote.c:100
#, c-format
msgid "Updating %s"
msgstr "Mise à jour de %s"
-#: builtin/remote.c:101
+#: builtin/remote.c:102
#, c-format
msgid "Could not fetch %s"
msgstr "Impossible de récupérer %s"
-#: builtin/remote.c:131
+#: builtin/remote.c:132
msgid ""
"--mirror is dangerous and deprecated; please\n"
"\t use --mirror=fetch or --mirror=push instead"
@@ -21069,83 +21575,83 @@ msgstr ""
"--mirror est dangereux et obsolète ; merci\n"
"\t d'utiliser --mirror=fetch ou --mirror=push à la place"
-#: builtin/remote.c:148
+#: builtin/remote.c:149
#, c-format
msgid "unknown mirror argument: %s"
msgstr "argument miroir inconnu : %s"
-#: builtin/remote.c:164
+#: builtin/remote.c:165
msgid "fetch the remote branches"
msgstr "rapatrier les branches distantes"
-#: builtin/remote.c:166
+#: builtin/remote.c:167
msgid "import all tags and associated objects when fetching"
msgstr ""
"importer toutes les étiquettes et les objets associés lors du rapatriement"
-#: builtin/remote.c:169
+#: builtin/remote.c:170
msgid "or do not fetch any tag at all (--no-tags)"
msgstr "ou ne rapatrier aucune étiquette (--no-tags)"
-#: builtin/remote.c:171
+#: builtin/remote.c:172
msgid "branch(es) to track"
msgstr "branche(s) à suivre"
-#: builtin/remote.c:172
+#: builtin/remote.c:173
msgid "master branch"
msgstr "branche maîtresse"
-#: builtin/remote.c:174
+#: builtin/remote.c:175
msgid "set up remote as a mirror to push to or fetch from"
msgstr ""
"paramétrer la distante comme miroir pour pousser ou pour rapatrier depuis"
-#: builtin/remote.c:186
+#: builtin/remote.c:187
msgid "specifying a master branch makes no sense with --mirror"
msgstr "spécifier une branche maîtresse n'a pas de sens avec --mirror"
-#: builtin/remote.c:188
+#: builtin/remote.c:189
msgid "specifying branches to track makes sense only with fetch mirrors"
msgstr ""
"spécifier les branches à suivre n'a de sens qu'avec des miroirs de "
"rapatriement"
-#: builtin/remote.c:195 builtin/remote.c:705
+#: builtin/remote.c:196 builtin/remote.c:716
#, c-format
msgid "remote %s already exists."
msgstr "la distante %s existe déjà."
-#: builtin/remote.c:240
+#: builtin/remote.c:241
#, c-format
msgid "Could not setup master '%s'"
msgstr "Impossible de paramétrer la maîtresse '%s'"
-#: builtin/remote.c:322
+#: builtin/remote.c:323
#, c-format
msgid "unhandled branch.%s.rebase=%s; assuming 'true'"
msgstr "branch.%s.rebase=%s non géré ; 'true' supposé"
-#: builtin/remote.c:366
+#: builtin/remote.c:367
#, c-format
msgid "Could not get fetch map for refspec %s"
msgstr ""
"Impossible d'obtenir une correspondance distante pour la spécification de "
"référence %s"
-#: builtin/remote.c:460 builtin/remote.c:468
+#: builtin/remote.c:461 builtin/remote.c:469
msgid "(matching)"
msgstr "(correspond)"
-#: builtin/remote.c:472
+#: builtin/remote.c:473
msgid "(delete)"
msgstr "(supprimer)"
-#: builtin/remote.c:660
+#: builtin/remote.c:664
#, c-format
msgid "could not set '%s'"
msgstr "impossible d'assigner '%s'"
-#: builtin/remote.c:665
+#: builtin/remote.c:669
#, c-format
msgid ""
"The %s configuration remote.pushDefault in:\n"
@@ -21156,17 +21662,17 @@ msgstr ""
"\t%s%d\n"
"nomme à présent le distant inexistant '%s'"
-#: builtin/remote.c:696 builtin/remote.c:841 builtin/remote.c:948
+#: builtin/remote.c:707 builtin/remote.c:866 builtin/remote.c:973
#, c-format
msgid "No such remote: '%s'"
msgstr "Pas de serveur remote : '%s'"
-#: builtin/remote.c:715
+#: builtin/remote.c:726
#, c-format
msgid "Could not rename config section '%s' to '%s'"
msgstr "Impossible de renommer la section de configuration '%s' en '%s'"
-#: builtin/remote.c:735
+#: builtin/remote.c:746
#, c-format
msgid ""
"Not updating non-default fetch refspec\n"
@@ -21177,17 +21683,21 @@ msgstr ""
"\t%s\n"
"\tVeuillez mettre à jour la configuration manuellement si nécessaire."
-#: builtin/remote.c:775
+#: builtin/remote.c:783
+msgid "Renaming remote references"
+msgstr "Renommage des références distantes"
+
+#: builtin/remote.c:794
#, c-format
msgid "deleting '%s' failed"
msgstr "échec de suppression de '%s'"
-#: builtin/remote.c:809
+#: builtin/remote.c:832
#, c-format
msgid "creating '%s' failed"
msgstr "échec de création de '%s'"
-#: builtin/remote.c:887
+#: builtin/remote.c:912
msgid ""
"Note: A branch outside the refs/remotes/ hierarchy was not removed;\n"
"to delete it, use:"
@@ -21202,118 +21712,118 @@ msgstr[1] ""
"supprimées ;\n"
"pour les supprimer, utilisez :"
-#: builtin/remote.c:901
+#: builtin/remote.c:926
#, c-format
msgid "Could not remove config section '%s'"
msgstr "Impossible de supprimer la section de configuration '%s'"
-#: builtin/remote.c:1009
+#: builtin/remote.c:1034
#, c-format
msgid " new (next fetch will store in remotes/%s)"
msgstr " nouveau (le prochain rapatriement (fetch) stockera dans remotes/%s)"
-#: builtin/remote.c:1012
+#: builtin/remote.c:1037
msgid " tracked"
msgstr " suivi"
-#: builtin/remote.c:1014
+#: builtin/remote.c:1039
msgid " stale (use 'git remote prune' to remove)"
msgstr " dépassé (utilisez 'git remote prune' pour supprimer)"
-#: builtin/remote.c:1016
+#: builtin/remote.c:1041
msgid " ???"
msgstr " ???"
-#: builtin/remote.c:1057
+#: builtin/remote.c:1082
#, c-format
msgid "invalid branch.%s.merge; cannot rebase onto > 1 branch"
msgstr "branch.%s.merge invalide ; ne peut pas rebaser sur plus d'une branche"
-#: builtin/remote.c:1066
+#: builtin/remote.c:1091
#, c-format
msgid "rebases interactively onto remote %s"
msgstr "rebase de manière interactive sur la distante %s"
-#: builtin/remote.c:1068
+#: builtin/remote.c:1093
#, c-format
msgid "rebases interactively (with merges) onto remote %s"
msgstr "rebase de manière interactive (avec fusions) sur la distante %s"
-#: builtin/remote.c:1071
+#: builtin/remote.c:1096
#, c-format
msgid "rebases onto remote %s"
msgstr "rebase sur la distante %s"
-#: builtin/remote.c:1075
+#: builtin/remote.c:1100
#, c-format
msgid " merges with remote %s"
msgstr " fusionne avec la distante %s"
-#: builtin/remote.c:1078
+#: builtin/remote.c:1103
#, c-format
msgid "merges with remote %s"
msgstr "fusionne avec la distante %s"
-#: builtin/remote.c:1081
+#: builtin/remote.c:1106
#, c-format
msgid "%-*s and with remote %s\n"
msgstr "%-*s et avec la distante %s\n"
-#: builtin/remote.c:1124
+#: builtin/remote.c:1149
msgid "create"
msgstr "créer"
-#: builtin/remote.c:1127
+#: builtin/remote.c:1152
msgid "delete"
msgstr "supprimer"
-#: builtin/remote.c:1131
+#: builtin/remote.c:1156
msgid "up to date"
msgstr "à jour"
-#: builtin/remote.c:1134
+#: builtin/remote.c:1159
msgid "fast-forwardable"
msgstr "peut être mis à jour en avance rapide"
-#: builtin/remote.c:1137
+#: builtin/remote.c:1162
msgid "local out of date"
msgstr "le local n'est pas à jour"
-#: builtin/remote.c:1144
+#: builtin/remote.c:1169
#, c-format
msgid " %-*s forces to %-*s (%s)"
msgstr " %-*s force vers %-*s (%s)"
-#: builtin/remote.c:1147
+#: builtin/remote.c:1172
#, c-format
msgid " %-*s pushes to %-*s (%s)"
msgstr " %-*s pousse vers %-*s (%s)"
-#: builtin/remote.c:1151
+#: builtin/remote.c:1176
#, c-format
msgid " %-*s forces to %s"
msgstr " %-*s force vers %s"
-#: builtin/remote.c:1154
+#: builtin/remote.c:1179
#, c-format
msgid " %-*s pushes to %s"
msgstr " %-*s pousse vers %s"
-#: builtin/remote.c:1222
+#: builtin/remote.c:1247
msgid "do not query remotes"
msgstr "ne pas interroger les distantes"
-#: builtin/remote.c:1243
+#: builtin/remote.c:1268
#, c-format
msgid "* remote %s"
msgstr "* distant %s"
-#: builtin/remote.c:1244
+#: builtin/remote.c:1269
#, c-format
msgid " Fetch URL: %s"
msgstr " URL de rapatriement : %s"
-#: builtin/remote.c:1245 builtin/remote.c:1261 builtin/remote.c:1398
+#: builtin/remote.c:1270 builtin/remote.c:1286 builtin/remote.c:1423
msgid "(no URL)"
msgstr "(pas d'URL)"
@@ -21321,25 +21831,25 @@ msgstr "(pas d'URL)"
#. with the one in " Fetch URL: %s"
#. translation.
#.
-#: builtin/remote.c:1259 builtin/remote.c:1261
+#: builtin/remote.c:1284 builtin/remote.c:1286
#, c-format
msgid " Push URL: %s"
msgstr " URL push : %s"
-#: builtin/remote.c:1263 builtin/remote.c:1265 builtin/remote.c:1267
+#: builtin/remote.c:1288 builtin/remote.c:1290 builtin/remote.c:1292
#, c-format
msgid " HEAD branch: %s"
msgstr " Branche HEAD : %s"
-#: builtin/remote.c:1263
+#: builtin/remote.c:1288
msgid "(not queried)"
msgstr "(non demandé)"
-#: builtin/remote.c:1265
+#: builtin/remote.c:1290
msgid "(unknown)"
msgstr "(inconnu)"
-#: builtin/remote.c:1269
+#: builtin/remote.c:1294
#, c-format
msgid ""
" HEAD branch (remote HEAD is ambiguous, may be one of the following):\n"
@@ -21347,166 +21857,166 @@ msgstr ""
" Branche HEAD (la HEAD distante est ambiguë, peut être l'une des "
"suivantes) :\n"
-#: builtin/remote.c:1281
+#: builtin/remote.c:1306
#, c-format
msgid " Remote branch:%s"
msgid_plural " Remote branches:%s"
msgstr[0] " Branche distante :%s"
msgstr[1] " Branches distantes :%s"
-#: builtin/remote.c:1284 builtin/remote.c:1310
+#: builtin/remote.c:1309 builtin/remote.c:1335
msgid " (status not queried)"
msgstr " (état non demandé)"
-#: builtin/remote.c:1293
+#: builtin/remote.c:1318
msgid " Local branch configured for 'git pull':"
msgid_plural " Local branches configured for 'git pull':"
msgstr[0] " Branche locale configurée pour 'git pull' :"
msgstr[1] " Branches locales configurées pour 'git pull' :"
-#: builtin/remote.c:1301
+#: builtin/remote.c:1326
msgid " Local refs will be mirrored by 'git push'"
msgstr " Les références locales seront reflétées par 'git push'"
-#: builtin/remote.c:1307
+#: builtin/remote.c:1332
#, c-format
msgid " Local ref configured for 'git push'%s:"
msgid_plural " Local refs configured for 'git push'%s:"
msgstr[0] " Référence locale configurée pour 'git push'%s :"
msgstr[1] " Références locales configurées pour 'git push'%s :"
-#: builtin/remote.c:1328
+#: builtin/remote.c:1353
msgid "set refs/remotes/<name>/HEAD according to remote"
msgstr "définir refs/remotes/<nom>/HEAD selon la distante"
-#: builtin/remote.c:1330
+#: builtin/remote.c:1355
msgid "delete refs/remotes/<name>/HEAD"
msgstr "supprimer refs/remotes/<nom>/HEAD"
-#: builtin/remote.c:1344
+#: builtin/remote.c:1369
msgid "Cannot determine remote HEAD"
msgstr "Impossible de déterminer la HEAD distante"
-#: builtin/remote.c:1346
+#: builtin/remote.c:1371
msgid "Multiple remote HEAD branches. Please choose one explicitly with:"
msgstr ""
"Il y a de multiples branches HEAD distantes. Veuillez en choisir une "
"explicitement avec :"
-#: builtin/remote.c:1356
+#: builtin/remote.c:1381
#, c-format
msgid "Could not delete %s"
msgstr "Impossible de supprimer %s"
-#: builtin/remote.c:1364
+#: builtin/remote.c:1389
#, c-format
msgid "Not a valid ref: %s"
msgstr "Référence non valide : %s"
-#: builtin/remote.c:1366
+#: builtin/remote.c:1391
#, c-format
msgid "Could not setup %s"
msgstr "Impossible de paramétrer %s"
-#: builtin/remote.c:1384
+#: builtin/remote.c:1409
#, c-format
msgid " %s will become dangling!"
msgstr " %s se retrouvera en suspens !"
-#: builtin/remote.c:1385
+#: builtin/remote.c:1410
#, c-format
msgid " %s has become dangling!"
msgstr " %s se retrouve en suspens !"
-#: builtin/remote.c:1394
+#: builtin/remote.c:1419
#, c-format
msgid "Pruning %s"
msgstr "Élimination de %s"
-#: builtin/remote.c:1395
+#: builtin/remote.c:1420
#, c-format
msgid "URL: %s"
msgstr "URL : %s"
-#: builtin/remote.c:1411
+#: builtin/remote.c:1436
#, c-format
msgid " * [would prune] %s"
msgstr " * [serait éliminé] %s"
-#: builtin/remote.c:1414
+#: builtin/remote.c:1439
#, c-format
msgid " * [pruned] %s"
msgstr " * [éliminé] %s"
-#: builtin/remote.c:1459
+#: builtin/remote.c:1484
msgid "prune remotes after fetching"
msgstr "éliminer les distants après le rapatriement"
-#: builtin/remote.c:1523 builtin/remote.c:1579 builtin/remote.c:1649
+#: builtin/remote.c:1548 builtin/remote.c:1604 builtin/remote.c:1674
#, c-format
msgid "No such remote '%s'"
msgstr "Pas de serveur remote '%s'"
-#: builtin/remote.c:1541
+#: builtin/remote.c:1566
msgid "add branch"
msgstr "ajouter une branche"
-#: builtin/remote.c:1548
+#: builtin/remote.c:1573
msgid "no remote specified"
msgstr "pas de serveur distant spécifié"
-#: builtin/remote.c:1565
+#: builtin/remote.c:1590
msgid "query push URLs rather than fetch URLs"
msgstr "interroger les URLs de poussée plutôt que les URLs de récupération"
-#: builtin/remote.c:1567
+#: builtin/remote.c:1592
msgid "return all URLs"
msgstr "retourner toutes les URLs"
-#: builtin/remote.c:1597
+#: builtin/remote.c:1622
#, c-format
msgid "no URLs configured for remote '%s'"
msgstr "aucune URL configurée pour le dépôt distant '%s'"
-#: builtin/remote.c:1623
+#: builtin/remote.c:1648
msgid "manipulate push URLs"
msgstr "manipuler les URLs push"
-#: builtin/remote.c:1625
+#: builtin/remote.c:1650
msgid "add URL"
msgstr "ajouter une URL"
-#: builtin/remote.c:1627
+#: builtin/remote.c:1652
msgid "delete URLs"
msgstr "supprimer des URLs"
-#: builtin/remote.c:1634
+#: builtin/remote.c:1659
msgid "--add --delete doesn't make sense"
msgstr "--add --delete n'a aucun sens"
-#: builtin/remote.c:1675
+#: builtin/remote.c:1700
#, c-format
msgid "Invalid old URL pattern: %s"
msgstr "Motif d'URL ancien invalide : %s"
-#: builtin/remote.c:1683
+#: builtin/remote.c:1708
#, c-format
msgid "No such URL found: %s"
msgstr "Pas d'URL trouvée : %s"
-#: builtin/remote.c:1685
+#: builtin/remote.c:1710
msgid "Will not delete all non-push URLs"
msgstr "Pas de suppression de toutes les URLs non-push"
-#: builtin/remote.c:1702
+#: builtin/remote.c:1727
msgid "be verbose; must be placed before a subcommand"
msgstr "être verbeux : doit être placé avant une sous-commande"
-#: builtin/repack.c:28
+#: builtin/repack.c:29
msgid "git repack [<options>]"
msgstr "git repack [<options>]"
-#: builtin/repack.c:33
+#: builtin/repack.c:34
msgid ""
"Incremental repacks are incompatible with bitmap indexes. Use\n"
"--no-write-bitmap-index or disable the pack.writebitmaps configuration."
@@ -21515,152 +22025,152 @@ msgstr ""
"Utilisez\n"
"--no-write-bitmap-index ou désactivez le paramètre pack.writebitmaps."
-#: builtin/repack.c:201
+#: builtin/repack.c:206
msgid "could not start pack-objects to repack promisor objects"
msgstr ""
"ne pas démarrer pack-objects pour ré-empaqueter les objects de prometteur"
-#: builtin/repack.c:275 builtin/repack.c:820
+#: builtin/repack.c:280 builtin/repack.c:824
msgid "repack: Expecting full hex object ID lines only from pack-objects."
msgstr ""
"repack : attente de lignes d'Id d'objets en hexa complet seulement depuis "
"les objects de paquet."
-#: builtin/repack.c:299
+#: builtin/repack.c:304
msgid "could not finish pack-objects to repack promisor objects"
msgstr ""
"impossible de terminer pack-objects pour ré-empaqueter les objets de "
"prometteur"
-#: builtin/repack.c:314
+#: builtin/repack.c:319
#, c-format
msgid "cannot open index for %s"
msgstr "impossible d'ouvrir l'index pour %s"
-#: builtin/repack.c:373
+#: builtin/repack.c:378
#, c-format
msgid "pack %s too large to consider in geometric progression"
msgstr ""
"le paquet %s est trop gros pour être pris en compte dans un progression "
"géométrique"
-#: builtin/repack.c:406 builtin/repack.c:413 builtin/repack.c:418
+#: builtin/repack.c:411 builtin/repack.c:418 builtin/repack.c:423
#, c-format
msgid "pack %s too large to roll up"
msgstr "le paquet %s est trop gros à enrouler"
-#: builtin/repack.c:498
+#: builtin/repack.c:503
#, c-format
msgid "could not open tempfile %s for writing"
msgstr "impossible d'ouvrir le fichier temporaire %s en écriture"
-#: builtin/repack.c:516
+#: builtin/repack.c:521
msgid "could not close refs snapshot tempfile"
msgstr "impossible de fermer le fichier temporaire d'instantané des réfs"
-#: builtin/repack.c:630
+#: builtin/repack.c:634
msgid "pack everything in a single pack"
msgstr "empaqueter tout dans un seul paquet"
-#: builtin/repack.c:632
+#: builtin/repack.c:636
msgid "same as -a, and turn unreachable objects loose"
msgstr "identique à -a et transformer les objets inaccessibles en suspens"
-#: builtin/repack.c:635
+#: builtin/repack.c:639
msgid "remove redundant packs, and run git-prune-packed"
msgstr "supprimer les paquets redondants et lancer git-prune-packed"
-#: builtin/repack.c:637
+#: builtin/repack.c:641
msgid "pass --no-reuse-delta to git-pack-objects"
msgstr "passer --no-reuse-delta à git-pack-objects"
-#: builtin/repack.c:639
+#: builtin/repack.c:643
msgid "pass --no-reuse-object to git-pack-objects"
msgstr "passer --no-reuse-object à git-pack-objects"
-#: builtin/repack.c:641
+#: builtin/repack.c:645
msgid "do not run git-update-server-info"
msgstr "ne pas lancer git-update-server-info"
-#: builtin/repack.c:644
+#: builtin/repack.c:648
msgid "pass --local to git-pack-objects"
msgstr "passer --local à git-pack-objects"
-#: builtin/repack.c:646
+#: builtin/repack.c:650
msgid "write bitmap index"
msgstr "écrire un index en bitmap"
-#: builtin/repack.c:648
+#: builtin/repack.c:652
msgid "pass --delta-islands to git-pack-objects"
msgstr "passer --delta-islands à git-pack-objects"
-#: builtin/repack.c:649
+#: builtin/repack.c:653
msgid "approxidate"
msgstr "date approximative"
-#: builtin/repack.c:650
+#: builtin/repack.c:654
msgid "with -A, do not loosen objects older than this"
msgstr "avec -A, ne pas suspendre les objets plus vieux que celui-ci"
-#: builtin/repack.c:652
+#: builtin/repack.c:656
msgid "with -a, repack unreachable objects"
msgstr "avec -a, repaquétiser les objets inaccessibles"
-#: builtin/repack.c:654
+#: builtin/repack.c:658
msgid "size of the window used for delta compression"
msgstr "taille de la fenêtre utilisée pour la compression des deltas"
-#: builtin/repack.c:655 builtin/repack.c:661
+#: builtin/repack.c:659 builtin/repack.c:665
msgid "bytes"
msgstr "octets"
-#: builtin/repack.c:656
+#: builtin/repack.c:660
msgid "same as the above, but limit memory size instead of entries count"
msgstr ""
"idem ci-dessus, mais limiter la taille mémoire au lieu du nombre d'éléments"
-#: builtin/repack.c:658
+#: builtin/repack.c:662
msgid "limits the maximum delta depth"
msgstr "limite la profondeur maximale des deltas"
-#: builtin/repack.c:660
+#: builtin/repack.c:664
msgid "limits the maximum number of threads"
msgstr "limite le nombre maximal de fils"
-#: builtin/repack.c:662
+#: builtin/repack.c:666
msgid "maximum size of each packfile"
msgstr "taille maximum de chaque fichier paquet"
-#: builtin/repack.c:664
+#: builtin/repack.c:668
msgid "repack objects in packs marked with .keep"
msgstr "réempaqueter les objets dans des paquets marqués avec .keep"
-#: builtin/repack.c:666
+#: builtin/repack.c:670
msgid "do not repack this pack"
msgstr "ne pas rempaqueter ce paquet"
-#: builtin/repack.c:668
+#: builtin/repack.c:672
msgid "find a geometric progression with factor <N>"
msgstr "trouver une progression géométrique avec un facteur <N>"
-#: builtin/repack.c:670
+#: builtin/repack.c:674
msgid "write a multi-pack index of the resulting packs"
msgstr "écrire un index de multi-paquet des paquets résultants"
-#: builtin/repack.c:680
+#: builtin/repack.c:684
msgid "cannot delete packs in a precious-objects repo"
msgstr "impossible de supprimer les paquets dans un dépôt d'objets précieux"
-#: builtin/repack.c:829
+#: builtin/repack.c:833
msgid "Nothing new to pack."
msgstr "Rien de neuf à empaqueter."
-#: builtin/repack.c:859
+#: builtin/repack.c:863
#, c-format
msgid "missing required file: %s"
msgstr "fichier nécessaire manquant : %s"
-#: builtin/repack.c:861
+#: builtin/repack.c:865
#, c-format
msgid "could not unlink: %s"
msgstr "impossible de délier : '%s'"
@@ -21677,10 +22187,6 @@ msgstr "git replace [-f] --edit <objet>"
msgid "git replace [-f] --graft <commit> [<parent>...]"
msgstr "git replace [-f] --graft <commit> [<parent>...]"
-#: builtin/replace.c:25
-msgid "git replace [-f] --convert-graft-file"
-msgstr "git replace [-f] --convert-graft-file"
-
#: builtin/replace.c:26
msgid "git replace -d <object>..."
msgstr "git replace -d <objet>..."
@@ -21984,101 +22490,96 @@ msgstr "Impossible de trouver l'arbre pour %s."
msgid "HEAD is now at %s"
msgstr "HEAD est maintenant à %s"
-#: builtin/reset.c:299
+#: builtin/reset.c:304
#, c-format
msgid "Cannot do a %s reset in the middle of a merge."
msgstr "Impossible de faire un \"reset %s\" au milieu d'une fusion."
-#: builtin/reset.c:396 builtin/stash.c:606 builtin/stash.c:680
-#: builtin/stash.c:704
+#: builtin/reset.c:402 builtin/stash.c:606 builtin/stash.c:669
+#: builtin/stash.c:693
msgid "be quiet, only report errors"
msgstr "être silencieux, afficher seulement les erreurs"
-#: builtin/reset.c:398
+#: builtin/reset.c:404
+msgid "skip refreshing the index after reset"
+msgstr "sauter le rafraîchissement de l'index après la réinitialisation"
+
+#: builtin/reset.c:406
msgid "reset HEAD and index"
msgstr "réinitialiser HEAD et l'index"
-#: builtin/reset.c:399
+#: builtin/reset.c:407
msgid "reset only HEAD"
msgstr "réinitialiser seulement HEAD"
-#: builtin/reset.c:401 builtin/reset.c:403
+#: builtin/reset.c:409 builtin/reset.c:411
msgid "reset HEAD, index and working tree"
msgstr "réinitialiser HEAD, l'index et la copie de travail"
-#: builtin/reset.c:405
+#: builtin/reset.c:413
msgid "reset HEAD but keep local changes"
msgstr "réinitialiser HEAD mais garder les changements locaux"
-#: builtin/reset.c:411
+#: builtin/reset.c:419
msgid "record only the fact that removed paths will be added later"
msgstr ""
"enregistrer seulement le fait que les chemins effacés seront ajoutés plus "
"tard"
-#: builtin/reset.c:445
+#: builtin/reset.c:452
#, c-format
msgid "Failed to resolve '%s' as a valid revision."
msgstr "Échec de résolution de '%s' comme une révision valide."
-#: builtin/reset.c:453
+#: builtin/reset.c:460
#, c-format
msgid "Failed to resolve '%s' as a valid tree."
msgstr "Échec de résolution de '%s' comme un arbre valide."
-#: builtin/reset.c:472
+#: builtin/reset.c:479
msgid "--mixed with paths is deprecated; use 'git reset -- <paths>' instead."
msgstr ""
"--mixed avec des chemins est obsolète ; utilisez 'git reset -- <paths>' à la "
"place."
-#: builtin/reset.c:474
+#: builtin/reset.c:481
#, c-format
msgid "Cannot do %s reset with paths."
msgstr "Impossible de faire un \"%s reset\" avec des chemins."
-#: builtin/reset.c:489
+#: builtin/reset.c:496
#, c-format
msgid "%s reset is not allowed in a bare repository"
msgstr "Le \"%s reset\" n'est pas permis dans un dépôt nu"
-#: builtin/reset.c:520
+#: builtin/reset.c:527
msgid "Unstaged changes after reset:"
msgstr "Modifications non indexées après reset :"
-#: builtin/reset.c:523
+#: builtin/reset.c:530
#, c-format
msgid ""
-"\n"
-"It took %.2f seconds to enumerate unstaged changes after reset. You can\n"
-"use '--quiet' to avoid this. Set the config setting reset.quiet to true\n"
-"to make this the default.\n"
+"It took %.2f seconds to refresh the index after reset. You can use\n"
+"'--no-refresh' to avoid this."
msgstr ""
-"\n"
-"Les modifications non-indexées ont pris %.2f secondes à énumérer après "
-"reset.\n"
-"Vous pouvez utiliser '--quiet' pour éviter ce message. Réglez le paramètre "
-"de\n"
-"config reset.quiet à true pour avoir ce comportement en permanence.\n"
+"%.2f secondes ont été nécessaires pour rafraîchir l'index après la "
+"réinitialisation.\n"
+"Vous pouvez utiliser '--no-refresh' pour éviter ceci."
-#: builtin/reset.c:541
+#: builtin/reset.c:547
#, c-format
msgid "Could not reset index file to revision '%s'."
msgstr "Impossible de réinitialiser le fichier d'index à la révision '%s'."
-#: builtin/reset.c:546
+#: builtin/reset.c:552
msgid "Could not write new index file."
msgstr "Impossible d'écrire le nouveau fichier d'index."
-#: builtin/rev-list.c:602
-msgid "object filtering requires --objects"
-msgstr "le filtrage d'objet exige --objects"
-
-#: builtin/rev-list.c:674
+#: builtin/rev-list.c:659
msgid "rev-list does not support display of notes"
msgstr "rev-list ne supporte l'affichage des notes"
-#: builtin/rev-list.c:679
+#: builtin/rev-list.c:664
#, c-format
msgid "marked counting and '%s' cannot be used together"
msgstr "le comptage marqué et '%s' ne peuvent pas être utilisés ensemble"
@@ -22431,11 +22932,11 @@ msgstr "champ"
msgid "group by field"
msgstr "grouper par champ"
-#: builtin/shortlog.c:394
+#: builtin/shortlog.c:395
msgid "too many arguments given outside repository"
msgstr "trop d'arguments fournis hors d'un dépôt"
-#: builtin/show-branch.c:13
+#: builtin/show-branch.c:14
msgid ""
"git show-branch [-a | --all] [-r | --remotes] [--topo-order | --date-order]\n"
" [--current] [--color[=<when>] | --no-color] [--sparse]\n"
@@ -22447,121 +22948,121 @@ msgstr ""
" [--more=<n> | --list | --independent | --merge-base]\n"
" [--no-name | --sha1-name] [--topics] [(<rév> | <glob>)...]"
-#: builtin/show-branch.c:17
+#: builtin/show-branch.c:18
msgid "git show-branch (-g | --reflog)[=<n>[,<base>]] [--list] [<ref>]"
msgstr "git show-branch (-g | --reflog)[=<n>[,<base>]] [--list] [<référence>]"
-#: builtin/show-branch.c:395
+#: builtin/show-branch.c:396
#, c-format
msgid "ignoring %s; cannot handle more than %d ref"
msgid_plural "ignoring %s; cannot handle more than %d refs"
msgstr[0] "%s ignoré; impossible de gérer plus de %d référence"
msgstr[1] "%s ignoré; impossible de gérer plus de %d références"
-#: builtin/show-branch.c:547
+#: builtin/show-branch.c:548
#, c-format
msgid "no matching refs with %s"
msgstr "aucune référence correspond à %s"
-#: builtin/show-branch.c:644
+#: builtin/show-branch.c:645
msgid "show remote-tracking and local branches"
msgstr "afficher les branches de suivi distantes et les branches locales"
-#: builtin/show-branch.c:646
+#: builtin/show-branch.c:647
msgid "show remote-tracking branches"
msgstr "afficher les branches de suivi distantes"
-#: builtin/show-branch.c:648
+#: builtin/show-branch.c:649
msgid "color '*!+-' corresponding to the branch"
msgstr "couleur '*!+-' correspondant à la branche"
-#: builtin/show-branch.c:650
+#: builtin/show-branch.c:651
msgid "show <n> more commits after the common ancestor"
msgstr "afficher <n> validations de plus après l'ancêtre commun"
-#: builtin/show-branch.c:652
+#: builtin/show-branch.c:653
msgid "synonym to more=-1"
msgstr "synonyme de more=-1"
-#: builtin/show-branch.c:653
+#: builtin/show-branch.c:654
msgid "suppress naming strings"
msgstr "supprimer les chaînes de nommage"
-#: builtin/show-branch.c:655
+#: builtin/show-branch.c:656
msgid "include the current branch"
msgstr "inclure la branche courante"
-#: builtin/show-branch.c:657
+#: builtin/show-branch.c:658
msgid "name commits with their object names"
msgstr "nommer les validations avec leurs noms d'objet"
-#: builtin/show-branch.c:659
+#: builtin/show-branch.c:660
msgid "show possible merge bases"
msgstr "afficher les bases possibles de fusion"
-#: builtin/show-branch.c:661
+#: builtin/show-branch.c:662
msgid "show refs unreachable from any other ref"
msgstr "afficher les références inaccessibles depuis toute autre référence"
-#: builtin/show-branch.c:663
+#: builtin/show-branch.c:664
msgid "show commits in topological order"
msgstr "afficher les validations dans l'ordre topologique"
-#: builtin/show-branch.c:666
+#: builtin/show-branch.c:667
msgid "show only commits not on the first branch"
msgstr ""
"afficher seulement les validations qui ne sont pas sur la première branche"
-#: builtin/show-branch.c:668
+#: builtin/show-branch.c:669
msgid "show merges reachable from only one tip"
msgstr "afficher les fusions accessibles depuis une seule pointe"
-#: builtin/show-branch.c:670
+#: builtin/show-branch.c:671
msgid "topologically sort, maintaining date order where possible"
msgstr "tri topologique, maintenant l'ordre par date si possible"
-#: builtin/show-branch.c:673
+#: builtin/show-branch.c:674
msgid "<n>[,<base>]"
msgstr "<n>[,<base>]"
-#: builtin/show-branch.c:674
+#: builtin/show-branch.c:675
msgid "show <n> most recent ref-log entries starting at base"
msgstr ""
"afficher les <n> plus récents éléments de ref-log en commençant à la base"
-#: builtin/show-branch.c:734
+#: builtin/show-branch.c:735
msgid "no branches given, and HEAD is not valid"
msgstr "aucune branche spécifiée, et HEAD est invalide"
-#: builtin/show-branch.c:737
+#: builtin/show-branch.c:738
msgid "--reflog option needs one branch name"
msgstr "--reflog requiert un nom de branche"
-#: builtin/show-branch.c:740
+#: builtin/show-branch.c:741
#, c-format
msgid "only %d entry can be shown at one time."
msgid_plural "only %d entries can be shown at one time."
msgstr[0] "%d entrée seulement ne peut être montrée en même temps."
msgstr[1] "%d entrées seulement ne peuvent être montrée en même temps."
-#: builtin/show-branch.c:744
+#: builtin/show-branch.c:745
#, c-format
msgid "no such ref %s"
msgstr "référence inexistante %s"
-#: builtin/show-branch.c:830
+#: builtin/show-branch.c:831
#, c-format
msgid "cannot handle more than %d rev."
msgid_plural "cannot handle more than %d revs."
msgstr[0] "impossible de gérer plus de %d révision."
msgstr[1] "impossible de gérer plus de %d révisions."
-#: builtin/show-branch.c:834
+#: builtin/show-branch.c:835
#, c-format
msgid "'%s' is not a valid ref."
msgstr "'%s' n'est pas une référence valide."
-#: builtin/show-branch.c:837
+#: builtin/show-branch.c:838
#, c-format
msgid "cannot find commit %s (%s)"
msgstr "impossible de trouver le commit %s (%s)"
@@ -22623,25 +23124,21 @@ msgstr ""
"afficher les références de l'entrée standard qui ne sont pas dans le dépôt "
"local"
-#: builtin/sparse-checkout.c:22
+#: builtin/sparse-checkout.c:23
msgid "git sparse-checkout (init|list|set|add|reapply|disable) <options>"
msgstr "git sparse-checkout (init|list|set|add|reapply|disable) <options>"
-#: builtin/sparse-checkout.c:46
-msgid "git sparse-checkout list"
-msgstr "git sparse-checkout list"
-
-#: builtin/sparse-checkout.c:60
+#: builtin/sparse-checkout.c:61
msgid "this worktree is not sparse"
msgstr "cet arbre de travail n'est pas clairsemé"
-#: builtin/sparse-checkout.c:75
+#: builtin/sparse-checkout.c:76
msgid "this worktree is not sparse (sparse-checkout file may not exist)"
msgstr ""
"cet arbre de travail n'est pas clairsemé (le fichier sparse-checkout "
"pourrait ne pas exister)"
-#: builtin/sparse-checkout.c:176
+#: builtin/sparse-checkout.c:177
#, c-format
msgid ""
"directory '%s' contains untracked files, but is not in the sparse-checkout "
@@ -22650,102 +23147,137 @@ msgstr ""
"le dossier '%s' contient des fichiers non-suivis, mais n'est pas dans le "
"cone d'extraction clairsemée"
-#: builtin/sparse-checkout.c:184
+#: builtin/sparse-checkout.c:185
#, c-format
msgid "failed to remove directory '%s'"
msgstr "échec de suppression du répertoire '%s'"
-#: builtin/sparse-checkout.c:324
+#: builtin/sparse-checkout.c:327
msgid "failed to create directory for sparse-checkout file"
msgstr ""
"échec de la création du répertoire pour le fichier d'extraction clairsemée"
-#: builtin/sparse-checkout.c:365
-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:367
-msgid "failed to set extensions.worktreeConfig setting"
-msgstr "échec de paramétrage extensions.worktreeConfig"
+#: builtin/sparse-checkout.c:366
+msgid "failed to initialize worktree config"
+msgstr "échec lors de l'initialisation de la configuration d'arbre de travail"
#: builtin/sparse-checkout.c:411
msgid "failed to modify sparse-index config"
msgstr "impossible de modifier la configuration d'index clairsemé"
-#: builtin/sparse-checkout.c:422
-msgid "git sparse-checkout init [--cone] [--[no-]sparse-index]"
-msgstr "git sparse-checkout init [--cone] [--[no-]sparse-index]"
-
-#: builtin/sparse-checkout.c:441 builtin/sparse-checkout.c:729
-#: builtin/sparse-checkout.c:778
+#: builtin/sparse-checkout.c:441 builtin/sparse-checkout.c:793
+#: builtin/sparse-checkout.c:847
msgid "initialize the sparse-checkout in cone mode"
msgstr "initialiser l'extraction clairsemée en mode cone"
-#: builtin/sparse-checkout.c:443 builtin/sparse-checkout.c:731
-#: builtin/sparse-checkout.c:780
+#: builtin/sparse-checkout.c:443 builtin/sparse-checkout.c:795
+#: builtin/sparse-checkout.c:849
msgid "toggle the use of a sparse index"
msgstr "bascule l'utilisation d'index clairsemé"
-#: builtin/sparse-checkout.c:476
+#: builtin/sparse-checkout.c:479
#, c-format
msgid "failed to open '%s'"
msgstr "échec à l'ouverture de '%s'"
-#: builtin/sparse-checkout.c:528
+#: builtin/sparse-checkout.c:531
#, c-format
msgid "could not normalize path %s"
msgstr "impossible de normaliser le chemin '%s'"
-#: builtin/sparse-checkout.c:557
+#: builtin/sparse-checkout.c:560
#, 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:612 builtin/sparse-checkout.c:640
+#: builtin/sparse-checkout.c:615 builtin/sparse-checkout.c:643
msgid "unable to load existing sparse-checkout patterns"
msgstr "impossible de charger les motifs de l'extraction clairsemée existants"
-#: builtin/sparse-checkout.c:616
+#: builtin/sparse-checkout.c:619
msgid "existing sparse-checkout patterns do not use cone mode"
msgstr ""
"les motifs de l'extraction clairsemée existants n'utilisent pas le mode cone"
-#: builtin/sparse-checkout.c:682
-msgid "git sparse-checkout add (--stdin | <patterns>)"
-msgstr "git sparse-checkout add (--stdin | <motifs>)"
+#: builtin/sparse-checkout.c:707
+msgid "please run from the toplevel directory in non-cone mode"
+msgstr ""
+"veuillez lancer depuis le répertoire de niveau supérieur en mode non-cone"
-#: builtin/sparse-checkout.c:694 builtin/sparse-checkout.c:733
+#: builtin/sparse-checkout.c:712
+msgid "specify directories rather than patterns (no leading slash)"
+msgstr ""
+"spécifier les répertoires plutôt que les motifs (sans barre oblique au début)"
+
+#: builtin/sparse-checkout.c:714
+msgid ""
+"specify directories rather than patterns. If your directory starts with a "
+"'!', pass --skip-checks"
+msgstr ""
+"spécifier les répertoires plutôt que les motifs. Si votre répertoire "
+"commence par un '!', passez --skip-checks"
+
+#: builtin/sparse-checkout.c:716
+msgid ""
+"specify directories rather than patterns. If your directory really has any "
+"of '*?[]\\' in it, pass --skip-checks"
+msgstr ""
+"spécifier les répertoires plutôt que les motifs. Si votre répertoire "
+"contient au moins caractère '*?[]\\\\', passez --skip-checks"
+
+#: builtin/sparse-checkout.c:732
+#, c-format
+msgid ""
+"'%s' is not a directory; to treat it as a directory anyway, rerun with --"
+"skip-checks"
+msgstr ""
+"'%s' n'est pas un répertoire ; pour le traiter tout de même comme un "
+"répertoire, relancez avec --skip-checks"
+
+#: builtin/sparse-checkout.c:734
+#, c-format
+msgid ""
+"pass a leading slash before paths such as '%s' if you want a single file "
+"(see NON-CONE PROBLEMS in the git-sparse-checkout manual)."
+msgstr ""
+"passez une barre oblique en préfixe de chemins tels que '%s' si vous voulez "
+"un seul fichier (voir PROBLÈMES DE NON-CONE dans la page de manuel de git-"
+"sparse-checkout)."
+
+#: builtin/sparse-checkout.c:739
+msgid "git sparse-checkout add [--skip-checks] (--stdin | <patterns>)"
+msgstr "git sparse-checkout add [--skip-checks] (--stdin | <motifs>)"
+
+#: builtin/sparse-checkout.c:752 builtin/sparse-checkout.c:797
+msgid ""
+"skip some sanity checks on the given paths that might give false positives"
+msgstr ""
+"sauter certaines vérifications sanitaires sur les chemins indiqués qui "
+"pourraient provoquer ds faux positifs"
+
+#: builtin/sparse-checkout.c:755 builtin/sparse-checkout.c:800
msgid "read patterns from standard in"
msgstr "lire les motifs depuis l'entrée standard"
-#: builtin/sparse-checkout.c:699
+#: builtin/sparse-checkout.c:760
msgid "no sparse-checkout to add to"
msgstr "aucun sparse-checkout auquel on peut ajouter"
-#: builtin/sparse-checkout.c:712
+#: builtin/sparse-checkout.c:775
msgid ""
-"git sparse-checkout set [--[no-]cone] [--[no-]sparse-index] (--stdin | "
-"<patterns>)"
+"git sparse-checkout set [--[no-]cone] [--[no-]sparse-index] [--skip-checks] "
+"(--stdin | <patterns>)"
msgstr ""
-"git sparse-checkout set [--[no-]cone] [--[no-]sparse-index] (--stdin | "
-"<motifs>)"
-
-#: builtin/sparse-checkout.c:765
-msgid "git sparse-checkout reapply [--[no-]cone] [--[no-]sparse-index]"
-msgstr "git sparse-checkout reapply [--[no-]cone] [--[no-]sparse-index]"
+"git sparse-checkout set [--[no-]cone] [--[no-]sparse-index] [--skip-checks] "
+"(--stdin | <motifs>)"
-#: builtin/sparse-checkout.c:785
+#: builtin/sparse-checkout.c:854
msgid "must be in a sparse-checkout to reapply sparsity patterns"
msgstr ""
"extraction clairsemée nécessaire pour pouvoir réappliquer les motifs de "
"clairsemage"
-#: builtin/sparse-checkout.c:803
-msgid "git sparse-checkout disable"
-msgstr "git sparse-checkout disable"
-
-#: builtin/sparse-checkout.c:845
+#: builtin/sparse-checkout.c:914
msgid "error while refreshing working directory"
msgstr "erreur lors du rafraîchissement du répertoire de travail"
@@ -22888,170 +23420,154 @@ msgstr "L'index n'a pas été sorti de remise."
msgid "could not restore untracked files from stash"
msgstr "impossible de restaurer les fichiers non-suivis depuis le remisage"
-#: builtin/stash.c:608 builtin/stash.c:706
+#: builtin/stash.c:608 builtin/stash.c:695
msgid "attempt to recreate the index"
msgstr "tentative de recréer l'index"
-#: builtin/stash.c:652
+#: builtin/stash.c:641
#, c-format
msgid "Dropped %s (%s)"
msgstr "%s supprimé (%s)"
-#: builtin/stash.c:655
+#: builtin/stash.c:644
#, c-format
msgid "%s: Could not drop stash entry"
msgstr "%s : Impossible de supprimer l'élément de stash"
-#: builtin/stash.c:668
+#: builtin/stash.c:657
#, c-format
msgid "'%s' is not a stash reference"
msgstr "'%s' n'est pas une référence de remisage"
-#: builtin/stash.c:718
+#: builtin/stash.c:707
msgid "The stash entry is kept in case you need it again."
msgstr ""
"L'entrée de remisage est conservée au cas où vous en auriez encore besoin."
-#: builtin/stash.c:741
+#: builtin/stash.c:730
msgid "No branch name specified"
msgstr "Aucune branche spécifiée"
-#: builtin/stash.c:825
+#: builtin/stash.c:809
msgid "failed to parse tree"
msgstr "échec de l'analyse de l'arbre"
-#: builtin/stash.c:836
+#: builtin/stash.c:820
msgid "failed to unpack trees"
msgstr "échec du dépaquetage des arbres"
-#: builtin/stash.c:856
+#: builtin/stash.c:840
msgid "include untracked files in the stash"
msgstr "inclure les fichiers non suivis dans le remisage"
-#: builtin/stash.c:859
+#: builtin/stash.c:843
msgid "only show untracked files in the stash"
msgstr "ne montrer que les fichiers non suivis dans le remisage"
-#: builtin/stash.c:946 builtin/stash.c:983
+#: builtin/stash.c:930 builtin/stash.c:967
#, c-format
msgid "Cannot update %s with %s"
msgstr "Impossible de mettre à jour %s avec %s"
-#: builtin/stash.c:964 builtin/stash.c:1678 builtin/stash.c:1750
+#: builtin/stash.c:948 builtin/stash.c:1667 builtin/stash.c:1739
msgid "stash message"
msgstr "message pour le remisage"
-#: builtin/stash.c:974
+#: builtin/stash.c:958
msgid "\"git stash store\" requires one <commit> argument"
msgstr "\"git stash store\" exige un argument <commit>"
-#: builtin/stash.c:1159
+#: builtin/stash.c:1143
msgid "No staged changes"
msgstr "Aucune modification indexée"
-#: builtin/stash.c:1220
+#: builtin/stash.c:1204
msgid "No changes selected"
msgstr "Aucun changement sélectionné"
-#: builtin/stash.c:1320
+#: builtin/stash.c:1304
msgid "You do not have the initial commit yet"
msgstr "Vous n'avez pas encore la validation initiale"
-#: builtin/stash.c:1347
+#: builtin/stash.c:1331
msgid "Cannot save the current index state"
msgstr "Impossible de sauver l'état courant de l'index"
-#: builtin/stash.c:1356
+#: builtin/stash.c:1340
msgid "Cannot save the untracked files"
msgstr "Impossible de sauver les fichiers non-suivis"
-#: builtin/stash.c:1367 builtin/stash.c:1386
+#: builtin/stash.c:1351 builtin/stash.c:1370
msgid "Cannot save the current worktree state"
msgstr "Impossible de sauver l'état courant de la copie de travail"
-#: builtin/stash.c:1377
+#: builtin/stash.c:1361
msgid "Cannot save the current staged state"
msgstr "Impossible de sauver l'état actuel de l'index"
-#: builtin/stash.c:1414
+#: builtin/stash.c:1398
msgid "Cannot record working tree state"
msgstr "Impossible d'enregistrer l'état de la copie de travail"
-#: builtin/stash.c:1463
+#: builtin/stash.c:1447
msgid "Can't use --patch and --include-untracked or --all at the same time"
msgstr ""
"Impossible d'utiliser --patch et --include-untracked ou --all en même temps"
-#: builtin/stash.c:1474
+#: builtin/stash.c:1458
msgid "Can't use --staged and --include-untracked or --all at the same time"
msgstr ""
"Impossible d'utiliser --staged et --include-untracked ou --all en même temps"
-#: builtin/stash.c:1492
+#: builtin/stash.c:1476
msgid "Did you forget to 'git add'?"
msgstr "Vous avez sûrement oublié 'git add' ?"
-#: builtin/stash.c:1507
+#: builtin/stash.c:1491
msgid "No local changes to save"
msgstr "Pas de modifications locales à sauver"
-#: builtin/stash.c:1514
+#: builtin/stash.c:1498
msgid "Cannot initialize stash"
msgstr "Impossible d'initialiser le remisage"
-#: builtin/stash.c:1529
+#: builtin/stash.c:1513
msgid "Cannot save the current status"
msgstr "Impossible de sauver l'état courant"
-#: builtin/stash.c:1534
+#: builtin/stash.c:1518
#, c-format
msgid "Saved working directory and index state %s"
msgstr "Arbre de travail et état de l'index sauvegardés dans %s"
-#: builtin/stash.c:1627
+#: builtin/stash.c:1615
msgid "Cannot remove worktree changes"
msgstr "Impossible de supprimer les changements de la copie de travail"
-#: builtin/stash.c:1667 builtin/stash.c:1739
+#: builtin/stash.c:1656 builtin/stash.c:1728
msgid "keep index"
msgstr "conserver l'index"
-#: builtin/stash.c:1669 builtin/stash.c:1741
+#: builtin/stash.c:1658 builtin/stash.c:1730
msgid "stash staged changes only"
msgstr "remiser seulement les modifications indexées"
-#: builtin/stash.c:1671 builtin/stash.c:1743
+#: builtin/stash.c:1660 builtin/stash.c:1732
msgid "stash in patch mode"
msgstr "remiser une mode rustine"
-#: builtin/stash.c:1672 builtin/stash.c:1744
+#: builtin/stash.c:1661 builtin/stash.c:1733
msgid "quiet mode"
msgstr "mode silencieux"
-#: builtin/stash.c:1674 builtin/stash.c:1746
+#: builtin/stash.c:1663 builtin/stash.c:1735
msgid "include untracked files in stash"
msgstr "inclure les fichiers non suivis dans la remise"
-#: builtin/stash.c:1676 builtin/stash.c:1748
+#: builtin/stash.c:1665 builtin/stash.c:1737
msgid "include ignore files"
msgstr "inclure les fichiers ignorés"
-#: builtin/stash.c:1783
-msgid ""
-"the stash.useBuiltin support has been removed!\n"
-"See its entry in 'git help config' for details."
-msgstr ""
-"la prise en charge de stash.useBuiltin a été supprimée !\n"
-"Voir son entrée dans 'git help config' pour plus de détails."
-
-#: builtin/stripspace.c:18
-msgid "git stripspace [-s | --strip-comments]"
-msgstr "git stripspace [-s | --strip-comments]"
-
-#: builtin/stripspace.c:19
-msgid "git stripspace [-c | --comment-lines]"
-msgstr "git stripspace [-c | --comment-lines]"
-
#: builtin/stripspace.c:37
msgid "skip and remove all lines starting with comment character"
msgstr ""
@@ -23062,21 +23578,17 @@ msgstr ""
msgid "prepend comment character and space to each line"
msgstr "ajouter devant chaque ligne le caractère de commentaire et un espace"
-#: builtin/submodule--helper.c:46 builtin/submodule--helper.c:2668
+#: builtin/submodule--helper.c:50 builtin/submodule--helper.c:2486
#, c-format
msgid "Expecting a full ref name, got %s"
msgstr "Nom de référence complet attendu, %s obtenu"
-#: builtin/submodule--helper.c:63
-msgid "submodule--helper print-default-remote takes no arguments"
-msgstr "submodule--helper print-default-remote n'accepte aucun argument"
-
-#: builtin/submodule--helper.c:101
+#: builtin/submodule--helper.c:103
#, c-format
msgid "cannot strip one component off url '%s'"
msgstr "impossible de supprimer un composant de l'URL '%s'"
-#: builtin/submodule--helper.c:211
+#: builtin/submodule--helper.c:213
#, c-format
msgid ""
"could not look up configuration '%s'. Assuming this repository is its own "
@@ -23085,26 +23597,26 @@ msgstr ""
"impossible de trouver la configuration '%s'. Ce dépôt est considéré comme "
"son propre amont d'autorité."
-#: builtin/submodule--helper.c:405 builtin/submodule--helper.c:1859
+#: builtin/submodule--helper.c:413 builtin/submodule--helper.c:1873
msgid "alternative anchor for relative paths"
msgstr "ancre alternative pour les chemins relatifs"
-#: builtin/submodule--helper.c:410
+#: builtin/submodule--helper.c:418
msgid "git submodule--helper list [--prefix=<path>] [<path>...]"
msgstr "git submodule--helper list [--prefix=<chemin>] [<chemin>...]"
-#: builtin/submodule--helper.c:468 builtin/submodule--helper.c:605
-#: builtin/submodule--helper.c:628
+#: builtin/submodule--helper.c:476 builtin/submodule--helper.c:617
+#: builtin/submodule--helper.c:640
#, c-format
msgid "No url found for submodule path '%s' in .gitmodules"
msgstr "URL non trouvée pour le chemin de sous-module '%s' dans .gitmodules"
-#: builtin/submodule--helper.c:520
+#: builtin/submodule--helper.c:528
#, c-format
msgid "Entering '%s'\n"
msgstr "Entrée dans '%s'\n"
-#: builtin/submodule--helper.c:523
+#: builtin/submodule--helper.c:531
#, c-format
msgid ""
"run_command returned non-zero status for %s\n"
@@ -23113,7 +23625,7 @@ msgstr ""
"run_command a retourné un statut non-nul pour %s\n"
"."
-#: builtin/submodule--helper.c:545
+#: builtin/submodule--helper.c:553
#, c-format
msgid ""
"run_command returned non-zero status while recursing in the nested "
@@ -23124,74 +23636,74 @@ msgstr ""
"modules inclus de %s\n"
"."
-#: builtin/submodule--helper.c:561
+#: builtin/submodule--helper.c:569
msgid "suppress output of entering each submodule command"
msgstr ""
"supprimer la sortie lors de l'entrée dans chaque commande de sous-module"
-#: builtin/submodule--helper.c:563 builtin/submodule--helper.c:864
-#: builtin/submodule--helper.c:1453
+#: builtin/submodule--helper.c:571 builtin/submodule--helper.c:876
+#: builtin/submodule--helper.c:1458
msgid "recurse into nested submodules"
msgstr "parcourir récursivement les sous-modules"
-#: builtin/submodule--helper.c:568
+#: builtin/submodule--helper.c:576
msgid "git submodule--helper foreach [--quiet] [--recursive] [--] <command>"
msgstr "git submodule--helper foreach [--quiet] [--recursive] [--] <commande>"
-#: builtin/submodule--helper.c:642
+#: builtin/submodule--helper.c:654
#, c-format
msgid "Failed to register url for submodule path '%s'"
msgstr "Échec d'enregistrement de l'URL pour le chemin de sous-module '%s'"
-#: builtin/submodule--helper.c:646
+#: builtin/submodule--helper.c:658
#, c-format
msgid "Submodule '%s' (%s) registered for path '%s'\n"
msgstr "Sous-module '%s' (%s) enregistré pour le chemin '%s'\n"
-#: builtin/submodule--helper.c:656
+#: builtin/submodule--helper.c:668
#, c-format
msgid "warning: command update mode suggested for submodule '%s'\n"
msgstr ""
"attention : nous vous suggérons de spécifier une commande de mode de mise à "
"jour pour le sous-module '%s'\n"
-#: builtin/submodule--helper.c:663
+#: builtin/submodule--helper.c:675
#, c-format
msgid "Failed to register update mode for submodule path '%s'"
msgstr ""
"Échec d'enregistrement du mode de mise à jour pour le chemin de sous-module "
"'%s'"
-#: builtin/submodule--helper.c:685
+#: builtin/submodule--helper.c:697
msgid "suppress output for initializing a submodule"
msgstr "supprimer la sortie lors de l'initialisation d'un sous-module"
-#: builtin/submodule--helper.c:690
+#: builtin/submodule--helper.c:702
msgid "git submodule--helper init [<options>] [<path>]"
msgstr "git submodule--helper init [<options>] [<chemin>]"
-#: builtin/submodule--helper.c:763 builtin/submodule--helper.c:898
+#: builtin/submodule--helper.c:775 builtin/submodule--helper.c:910
#, c-format
msgid "no submodule mapping found in .gitmodules for path '%s'"
msgstr ""
"pas de mise en correspondance du sous-module trouvé dans .gitmodules pour le "
"chemin '%s'"
-#: builtin/submodule--helper.c:811
+#: builtin/submodule--helper.c:823
#, c-format
msgid "could not resolve HEAD ref inside the submodule '%s'"
msgstr "impossible de résoudre HEAD dans le sous-module '%s'"
-#: builtin/submodule--helper.c:838 builtin/submodule--helper.c:1423
+#: builtin/submodule--helper.c:850 builtin/submodule--helper.c:1428
#, c-format
msgid "failed to recurse into submodule '%s'"
msgstr "récursion impossible dans le sous-module '%s'"
-#: builtin/submodule--helper.c:862 builtin/submodule--helper.c:1590
+#: builtin/submodule--helper.c:874 builtin/submodule--helper.c:1595
msgid "suppress submodule status output"
msgstr "supprimer la sortie d'état du sous-module"
-#: builtin/submodule--helper.c:863
+#: builtin/submodule--helper.c:875
msgid ""
"use commit stored in the index instead of the one stored in the submodule "
"HEAD"
@@ -23199,94 +23711,94 @@ msgstr ""
"utiliser le commit stocké dans l'index au lieu de celui stocké dans la HEAD "
"du sous-module"
-#: builtin/submodule--helper.c:869
+#: builtin/submodule--helper.c:881
msgid "git submodule status [--quiet] [--cached] [--recursive] [<path>...]"
msgstr "git submodule status [--quiet] [--cached] [--recursive] [<chemin>...]"
-#: builtin/submodule--helper.c:893
+#: builtin/submodule--helper.c:905
msgid "git submodule--helper name <path>"
msgstr "git submodule--helper <nom> <chemin>"
-#: builtin/submodule--helper.c:965
+#: builtin/submodule--helper.c:977
#, c-format
msgid "* %s %s(blob)->%s(submodule)"
msgstr "* %s %s(blob)->%s(submodule)"
-#: builtin/submodule--helper.c:968
+#: builtin/submodule--helper.c:980
#, c-format
msgid "* %s %s(submodule)->%s(blob)"
msgstr "* %s %s(submodule)->%s(blob)"
-#: builtin/submodule--helper.c:981
+#: builtin/submodule--helper.c:993
#, c-format
msgid "%s"
msgstr "%s"
-#: builtin/submodule--helper.c:1031
+#: builtin/submodule--helper.c:1043
#, c-format
msgid "couldn't hash object from '%s'"
msgstr "impossible de calculer l'empreinte de l'objet depuis '%s'"
-#: builtin/submodule--helper.c:1035
+#: builtin/submodule--helper.c:1047
#, c-format
msgid "unexpected mode %o\n"
msgstr "mode %o inattendu\n"
-#: builtin/submodule--helper.c:1276
+#: builtin/submodule--helper.c:1288
msgid "use the commit stored in the index instead of the submodule HEAD"
msgstr ""
"utiliser le commit stocké dans l'index au lieu de la HEAD du sous-module"
-#: builtin/submodule--helper.c:1278
+#: builtin/submodule--helper.c:1290
msgid "compare the commit in the index with that in the submodule HEAD"
msgstr "comparer le commit dans l'index avec celui dans la HEAD du sous-module"
-#: builtin/submodule--helper.c:1280
+#: builtin/submodule--helper.c:1292
msgid "skip submodules with 'ignore_config' value set to 'all'"
msgstr "sauter les sous-modules avec la valeur 'ignore_config' à 'all'"
-#: builtin/submodule--helper.c:1282
+#: builtin/submodule--helper.c:1294
msgid "limit the summary size"
msgstr "limiter la taille du résumé"
-#: builtin/submodule--helper.c:1287
+#: builtin/submodule--helper.c:1299
msgid "git submodule--helper summary [<options>] [<commit>] [--] [<path>]"
msgstr "git submodule--helper summary [<options>] [<commit>] [--] [<chemin>]"
-#: builtin/submodule--helper.c:1311
+#: builtin/submodule--helper.c:1323
msgid "could not fetch a revision for HEAD"
msgstr "impossible de récupérer une révision pour HEAD"
-#: builtin/submodule--helper.c:1373
+#: builtin/submodule--helper.c:1384
#, c-format
msgid "Synchronizing submodule url for '%s'\n"
msgstr "Synchronisation de l'URL sous-module pour '%s'\n"
-#: builtin/submodule--helper.c:1379
+#: builtin/submodule--helper.c:1390
#, c-format
msgid "failed to register url for submodule path '%s'"
msgstr "échec d'enregistrement de l'URL pour le chemin de sous-module '%s'"
-#: builtin/submodule--helper.c:1393
+#: builtin/submodule--helper.c:1399
#, c-format
msgid "failed to get the default remote for submodule '%s'"
msgstr "échec d'obtention du dépôt distant par défaut pour le sous-module '%s'"
-#: builtin/submodule--helper.c:1404
+#: builtin/submodule--helper.c:1409
#, c-format
msgid "failed to update remote for submodule '%s'"
msgstr "échec de mise à jour du dépôt distant pour le sous-module '%s'"
-#: builtin/submodule--helper.c:1451
+#: builtin/submodule--helper.c:1456
msgid "suppress output of synchronizing submodule url"
msgstr ""
"supprimer la sortie lors de la synchronisation de l'URL d'un sous-module"
-#: builtin/submodule--helper.c:1458
+#: builtin/submodule--helper.c:1463
msgid "git submodule--helper sync [--quiet] [--recursive] [<path>]"
msgstr "git submodule--helper sync [--quiet] [--recursive] [<chemin>]"
-#: builtin/submodule--helper.c:1508
+#: builtin/submodule--helper.c:1513
#, c-format
msgid ""
"Submodule work tree '%s' contains a .git directory. This will be replaced "
@@ -23295,7 +23807,7 @@ msgstr ""
"L'arbre de travail du sous-module '%s' contient un répertoire .git. Il sera "
"remplacé par un fichier .git en utilisant absorbgitdirs."
-#: builtin/submodule--helper.c:1525
+#: builtin/submodule--helper.c:1530
#, c-format
msgid ""
"Submodule work tree '%s' contains local modifications; use '-f' to discard "
@@ -23304,48 +23816,48 @@ msgstr ""
"L'arbre de travail du sous-module '%s' contient des modifications locales ; "
"utilisez '-f' pour les annuler"
-#: builtin/submodule--helper.c:1533
+#: builtin/submodule--helper.c:1538
#, c-format
msgid "Cleared directory '%s'\n"
msgstr "Répertoire '%s' nettoyé\n"
-#: builtin/submodule--helper.c:1535
+#: builtin/submodule--helper.c:1540
#, c-format
msgid "Could not remove submodule work tree '%s'\n"
msgstr "Impossible de supprimer l'arbre de travail du sous-module '%s'\n"
-#: builtin/submodule--helper.c:1546
+#: builtin/submodule--helper.c:1551
#, c-format
msgid "could not create empty submodule directory %s"
msgstr "impossible de créer le répertoire vide du sous-module %s"
-#: builtin/submodule--helper.c:1562
+#: builtin/submodule--helper.c:1567
#, c-format
msgid "Submodule '%s' (%s) unregistered for path '%s'\n"
msgstr "Sous-module '%s' (%s) non enregistré pour le chemin '%s'\n"
-#: builtin/submodule--helper.c:1591
+#: builtin/submodule--helper.c:1596
msgid "remove submodule working trees even if they contain local changes"
msgstr ""
"éliminer les arbres de travail des sous-modules même s'ils contiennent des "
"modifications locales"
-#: builtin/submodule--helper.c:1592
+#: builtin/submodule--helper.c:1597
msgid "unregister all submodules"
msgstr "désenregistrer tous les sous-modules"
-#: builtin/submodule--helper.c:1597
+#: builtin/submodule--helper.c:1602
msgid ""
"git submodule deinit [--quiet] [-f | --force] [--all | [--] [<path>...]]"
msgstr ""
"git submodule deinit [--quiet] [-f | --force] [--all | [--] [<chemin>...]]"
-#: builtin/submodule--helper.c:1611
+#: builtin/submodule--helper.c:1616
msgid "Use '--all' if you really want to deinitialize all submodules"
msgstr ""
"Utilisez '--all' si vous voulez vraiment réinitialiser tous les sous-modules"
-#: builtin/submodule--helper.c:1656
+#: builtin/submodule--helper.c:1665
msgid ""
"An alternate computed from a superproject's alternate is invalid.\n"
"To allow Git to clone without an alternate in such a case, set\n"
@@ -23357,104 +23869,101 @@ msgstr ""
"submodule.alternateErrorStrategy à 'info', ou de manière équivalente,\n"
"clonez avec '--reference-if-able' au lieu de '--reference'."
-#: builtin/submodule--helper.c:1701 builtin/submodule--helper.c:1704
+#: builtin/submodule--helper.c:1710 builtin/submodule--helper.c:1713
#, c-format
msgid "submodule '%s' cannot add alternate: %s"
msgstr "le sous-module '%s' ne peut pas ajouter d'alternative : %s"
-#: builtin/submodule--helper.c:1740
+#: builtin/submodule--helper.c:1749
#, c-format
msgid "Value '%s' for submodule.alternateErrorStrategy is not recognized"
msgstr ""
"La valeur '%s' pour submodule.alternateErrorStrategy n'est pas reconnue"
-#: builtin/submodule--helper.c:1747
+#: builtin/submodule--helper.c:1756
#, c-format
msgid "Value '%s' for submodule.alternateLocation is not recognized"
msgstr "La valeur '%s' pour submodule.alternateLocation n'est pas reconnue"
-#: builtin/submodule--helper.c:1772
+#: builtin/submodule--helper.c:1781
#, c-format
msgid "refusing to create/use '%s' in another submodule's git dir"
msgstr ""
"refus de créer/utiliser '%s' dans un répertoire git d'un autre sous-module"
-#: builtin/submodule--helper.c:1813
+#: builtin/submodule--helper.c:1826
#, c-format
msgid "clone of '%s' into submodule path '%s' failed"
msgstr "le clonage de '%s' dans le chemin de sous-module '%s' a échoué"
-#: builtin/submodule--helper.c:1818
+#: builtin/submodule--helper.c:1831
#, c-format
msgid "directory not empty: '%s'"
msgstr "le répertoire n'est pas vide : '%s'"
-#: builtin/submodule--helper.c:1830
+#: builtin/submodule--helper.c:1843
#, c-format
msgid "could not get submodule directory for '%s'"
msgstr "impossible de créer le répertoire de sous-module pour '%s'"
-#: builtin/submodule--helper.c:1862
+#: builtin/submodule--helper.c:1876
msgid "where the new submodule will be cloned to"
msgstr "emplacement où le sous-module sera cloné"
-#: builtin/submodule--helper.c:1865
+#: builtin/submodule--helper.c:1879
msgid "name of the new submodule"
msgstr "nom du nouveau sous-module"
-#: builtin/submodule--helper.c:1868
+#: builtin/submodule--helper.c:1882
msgid "url where to clone the submodule from"
msgstr "url depuis laquelle cloner le sous-module"
-#: builtin/submodule--helper.c:1876 builtin/submodule--helper.c:3265
+#: builtin/submodule--helper.c:1890 builtin/submodule--helper.c:3383
msgid "depth for shallow clones"
msgstr "profondeur de l'historique des clones superficiels"
-#: builtin/submodule--helper.c:1879 builtin/submodule--helper.c:2526
-#: builtin/submodule--helper.c:3258
+#: builtin/submodule--helper.c:1893 builtin/submodule--helper.c:2731
+#: builtin/submodule--helper.c:3376
msgid "force cloning progress"
msgstr "forcer l'affichage de la progression du clonage"
-#: builtin/submodule--helper.c:1881 builtin/submodule--helper.c:2528
+#: builtin/submodule--helper.c:1895 builtin/submodule--helper.c:2733
msgid "disallow cloning into non-empty directory"
msgstr "interdire de cloner dans un répertoire non-vide"
-#: builtin/submodule--helper.c:1888
+#: builtin/submodule--helper.c:1903
msgid ""
"git submodule--helper clone [--prefix=<path>] [--quiet] [--reference "
-"<repository>] [--name <name>] [--depth <depth>] [--single-branch] --url "
-"<url> --path <path>"
-msgstr ""
-"git submodule--helper clone [--prefix=<chemin>] [--quiet] [--reference "
-"<dépôt>] [--name <nom>] [--depth <profondeur>] [--single-branch] --url <url> "
-"--path <chemin>"
+"<repository>] [--name <name>] [--depth <depth>] [--single-branch] [--filter "
+"<filter-spec>] --url <url> --path <path>"
+msgstr "git submodule--helper clone [--prefix=<chemin>] [--quiet] [--reference <dépôt>] [--name <nom>] [--depth <profondeur>] [--single-branch] [--filter <spécificateur-de-filtre>]--url <url> --path <chemin>"
-#: builtin/submodule--helper.c:1925
+#: builtin/submodule--helper.c:1943
#, c-format
msgid "Invalid update mode '%s' for submodule path '%s'"
msgstr "Mode de mise à jour '%s' invalide pour le chemin de sous-module '%s'"
-#: builtin/submodule--helper.c:1929
+#: builtin/submodule--helper.c:1947
#, c-format
msgid "Invalid update mode '%s' configured for submodule path '%s'"
msgstr ""
"Mode de mise à jour '%s'invalide configuré pour le chemin de sous-module '%s'"
-#: builtin/submodule--helper.c:2044
+#: builtin/submodule--helper.c:2041
#, c-format
msgid "Submodule path '%s' not initialized"
msgstr "Le chemin de sous-module '%s' n'est pas initialisé"
-#: builtin/submodule--helper.c:2048
+#: builtin/submodule--helper.c:2045
msgid "Maybe you want to use 'update --init'?"
msgstr "Vous voudriez sûrement utiliser 'update --init' ?"
-#: builtin/submodule--helper.c:2078
+#: builtin/submodule--helper.c:2075
#, c-format
msgid "Skipping unmerged submodule %s"
msgstr "Sous-module non fusionné %s non traité"
-#: builtin/submodule--helper.c:2107
+#: builtin/submodule--helper.c:2104
#, c-format
msgid "Skipping submodule '%s'"
msgstr "Sous-module '%s' non traité"
@@ -23469,54 +23978,54 @@ msgstr "Impossible de cloner '%s'. Réessai prévu"
msgid "Failed to clone '%s' a second time, aborting"
msgstr "Impossible de cloner '%s' pour la seconde fois, abandon"
-#: builtin/submodule--helper.c:2373
+#: builtin/submodule--helper.c:2371
#, c-format
msgid "Unable to checkout '%s' in submodule path '%s'"
msgstr "Impossible d'extraire '%s' dans le chemin de sous-module '%s'"
-#: builtin/submodule--helper.c:2377
+#: builtin/submodule--helper.c:2375
#, c-format
msgid "Unable to rebase '%s' in submodule path '%s'"
msgstr "Impossible de rebaser '%s' dans le chemin de sous-module '%s'"
-#: builtin/submodule--helper.c:2381
+#: builtin/submodule--helper.c:2379
#, c-format
msgid "Unable to merge '%s' in submodule path '%s'"
msgstr "Impossible de fusionner '%s' dans le chemin de sous-module '%s'"
-#: builtin/submodule--helper.c:2385
+#: builtin/submodule--helper.c:2383
#, c-format
msgid "Execution of '%s %s' failed in submodule path '%s'"
msgstr "L'exécution de '%s %s' a échoué dans le chemin de sous-module '%s'"
-#: builtin/submodule--helper.c:2409
+#: builtin/submodule--helper.c:2402
#, c-format
msgid "Submodule path '%s': checked out '%s'\n"
msgstr "Chemin de sous-module '%s' : '%s' extrait\n"
-#: builtin/submodule--helper.c:2413
+#: builtin/submodule--helper.c:2406
#, c-format
msgid "Submodule path '%s': rebased into '%s'\n"
msgstr "Chemin de sous-module '%s' : rebasé dans '%s'\n"
-#: builtin/submodule--helper.c:2417
+#: builtin/submodule--helper.c:2410
#, c-format
msgid "Submodule path '%s': merged in '%s'\n"
msgstr "Chemin de sous-module '%s' : fusionné dans '%s'\n"
-#: builtin/submodule--helper.c:2421
+#: builtin/submodule--helper.c:2414
#, c-format
msgid "Submodule path '%s': '%s %s'\n"
msgstr "Le chemin de sous-module '%s' : '%s %s'\n"
-#: builtin/submodule--helper.c:2445
+#: builtin/submodule--helper.c:2438
#, c-format
msgid "Unable to fetch in submodule path '%s'; trying to directly fetch %s:"
msgstr ""
"Impossible de rapatrier dans le chemin de sous-module '%s' ; essai de "
"rapatriement direct de %s :"
-#: builtin/submodule--helper.c:2454
+#: builtin/submodule--helper.c:2447
#, c-format
msgid ""
"Fetched in submodule path '%s', but it did not contain %s. Direct fetching "
@@ -23525,183 +24034,211 @@ msgstr ""
"Chemin de sous-module '%s' récupéré, mais il ne contenait pas %s. La "
"récupération directe de ce commit a échoué."
-#: builtin/submodule--helper.c:2505 builtin/submodule--helper.c:2575
-#: builtin/submodule--helper.c:2813
+#: builtin/submodule--helper.c:2481
+#, c-format
+msgid ""
+"Submodule (%s) branch configured to inherit branch from superproject, but "
+"the superproject is not on any branch"
+msgstr ""
+"La branche du sous-module %s est configurée pour hériter de la branche du "
+"superprojet, mais le superprojet n'est sur aucune branche"
+
+#: builtin/submodule--helper.c:2499
+#, c-format
+msgid "could not get a repository handle for submodule '%s'"
+msgstr "impossible de trouver une poignée de dépôt pour le sous-module '%s'"
+
+#: builtin/submodule--helper.c:2588
+#, c-format
+msgid "Unable to find current revision in submodule path '%s'"
+msgstr ""
+"Impossible de trouver la révision actuelle dans le chemin de sous-module '%s'"
+
+#: builtin/submodule--helper.c:2599
+#, c-format
+msgid "Unable to fetch in submodule path '%s'"
+msgstr "Impossible de rapatrier dans le chemin de sous-module '%s'"
+
+#: builtin/submodule--helper.c:2604
+#, c-format
+msgid "Unable to find %s revision in submodule path '%s'"
+msgstr ""
+"Impossible de trouver la révision %s dans le chemin de sous-module '%s'"
+
+#: builtin/submodule--helper.c:2640
+#, c-format
+msgid "Failed to recurse into submodule path '%s'"
+msgstr "Échec de la récursion dans le chemin de sous-module '%s'"
+
+#: builtin/submodule--helper.c:2699
+msgid "force checkout updates"
+msgstr "forcer les mises à jour d'extraction"
+
+#: builtin/submodule--helper.c:2701
+msgid "initialize uninitialized submodules before update"
+msgstr "initialiser les sous-modules non-initialisés avant la mise à jour"
+
+#: builtin/submodule--helper.c:2703
+msgid "use SHA-1 of submodule's remote tracking branch"
+msgstr "utiliser les SHA-1 de la branche de suivi distante du sous-module"
+
+#: builtin/submodule--helper.c:2705
+msgid "traverse submodules recursively"
+msgstr "traverser les sous-modules récursivement"
+
+#: builtin/submodule--helper.c:2707
+msgid "don't fetch new objects from the remote site"
+msgstr "ne pas récupérer les nouveaux objets depuis le site distant"
+
+#: builtin/submodule--helper.c:2710 builtin/submodule--helper.c:2892
msgid "path into the working tree"
msgstr "chemin dans la copie de travail"
-#: builtin/submodule--helper.c:2508 builtin/submodule--helper.c:2580
+#: builtin/submodule--helper.c:2713
msgid "path into the working tree, across nested submodule boundaries"
msgstr ""
"chemin dans la copie de travail, traversant les frontières de sous-modules"
-#: builtin/submodule--helper.c:2512 builtin/submodule--helper.c:2578
+#: builtin/submodule--helper.c:2717
msgid "rebase, merge, checkout or none"
msgstr "valeurs possibles : rebase, merge, checkout ou none"
-#: builtin/submodule--helper.c:2518
+#: builtin/submodule--helper.c:2723
msgid "create a shallow clone truncated to the specified number of revisions"
msgstr "créer un clone superficiel tronqué au nombre de révisions spécifié"
-#: builtin/submodule--helper.c:2521
+#: builtin/submodule--helper.c:2726
msgid "parallel jobs"
msgstr "jobs parallèles"
-#: builtin/submodule--helper.c:2523
+#: builtin/submodule--helper.c:2728
msgid "whether the initial clone should follow the shallow recommendation"
msgstr "spécifie si le clonage initial doit être aussi superficiel"
-#: builtin/submodule--helper.c:2524
+#: builtin/submodule--helper.c:2729
msgid "don't print cloning progress"
msgstr "ne pas afficher la progression du clonage"
-#: builtin/submodule--helper.c:2535
-msgid "git submodule--helper update-clone [--prefix=<path>] [<path>...]"
-msgstr "git submodule--helper update-clone [--prefix=<chemin>] [<chemin>...]"
-
-#: builtin/submodule--helper.c:2548
-msgid "bad value for update parameter"
-msgstr "valeur invalide pour la mise à jour du paramètre"
-
-#: builtin/submodule--helper.c:2566
-msgid "suppress output for update by rebase or merge"
-msgstr ""
-"supprimer la sortie lors de la mise à jour par un rebasage ou une fusion"
-
-#: builtin/submodule--helper.c:2567
-msgid "force checkout updates"
-msgstr "forcer les mises à jour d'extraction"
-
-#: builtin/submodule--helper.c:2569
-msgid "don't fetch new objects from the remote site"
-msgstr "ne pas récupérer les nouveaux objets depuis le site distant"
-
-#: builtin/submodule--helper.c:2571
-msgid "overrides update mode in case the repository is a fresh clone"
-msgstr ""
-"passer outre le mode mise à jour dans le cas où le dépôt est un clone nouveau"
-
-#: builtin/submodule--helper.c:2572
-msgid "depth for shallow fetch"
-msgstr "profondeur pour une récupération superficielle"
-
-#: builtin/submodule--helper.c:2582
-msgid "sha1"
-msgstr "sha1"
-
-#: builtin/submodule--helper.c:2583
-msgid "SHA1 expected by superproject"
-msgstr "SHA1 attendu par le super-projet"
-
-#: builtin/submodule--helper.c:2585
-msgid "subsha1"
-msgstr "sous-sha1"
-
-#: builtin/submodule--helper.c:2586
-msgid "SHA1 of submodule's HEAD"
-msgstr "SHA1 de la HEAD du sous-module"
-
-#: builtin/submodule--helper.c:2592
-msgid "git submodule--helper run-update-procedure [<options>] <path>"
-msgstr "git submodule--helper run-update-procedure [<options>] <chemin>"
-
-#: builtin/submodule--helper.c:2663
-#, c-format
+#: builtin/submodule--helper.c:2741
msgid ""
-"Submodule (%s) branch configured to inherit branch from superproject, but "
-"the superproject is not on any branch"
+"git submodule [--quiet] update [--init [--filter=<filter-spec>]] [--remote] "
+"[-N|--no-fetch] [-f|--force] [--checkout|--merge|--rebase] [--[no-]recommend-"
+"shallow] [--reference <repository>] [--recursive] [--[no-]single-branch] "
+"[--] [<path>...]"
msgstr ""
-"La branche du sous-module %s est configurée pour hériter de la branche du "
-"superprojet, mais le superprojet n'est sur aucune branche"
+"git submodule [--quiet] update [--init [--filter=<spécificateur-de-filtre>]] "
+"[--remote] [-N|--no-fetch] [-f|--force] [--checkout|--merge|--rebase] [--"
+"[no-]recommend-shallow] [--reference <dépôt>] [--recursive] [--[no-]single-"
+"branch] [--] [<chemin>...]"
-#: builtin/submodule--helper.c:2781
-#, c-format
-msgid "could not get a repository handle for submodule '%s'"
-msgstr "impossible de trouver une poignée de dépôt pour le sous-module '%s'"
+#: builtin/submodule--helper.c:2767
+msgid "bad value for update parameter"
+msgstr "valeur invalide pour la mise à jour du paramètre"
-#: builtin/submodule--helper.c:2814
+#: builtin/submodule--helper.c:2893
msgid "recurse into submodules"
msgstr "parcourir récursivement les sous-modules"
-#: builtin/submodule--helper.c:2820
+#: builtin/submodule--helper.c:2899
msgid "git submodule--helper absorb-git-dirs [<options>] [<path>...]"
msgstr "git submodule--helper absorb-git-dirs [<options>] [<chemin>...]"
-#: builtin/submodule--helper.c:2876
+#: builtin/submodule--helper.c:2955
msgid "check if it is safe to write to the .gitmodules file"
msgstr "vérifier si écrire dans le fichier .gitmodules est sur"
-#: builtin/submodule--helper.c:2879
+#: builtin/submodule--helper.c:2958
msgid "unset the config in the .gitmodules file"
msgstr "désactiver la configuration dans le fichier .gitmodules"
-#: builtin/submodule--helper.c:2884
+#: builtin/submodule--helper.c:2963
msgid "git submodule--helper config <name> [<value>]"
msgstr "git submodule--helper config name [<valeur>]"
-#: builtin/submodule--helper.c:2885
+#: builtin/submodule--helper.c:2964
msgid "git submodule--helper config --unset <name>"
msgstr "git submodule--helper config --unset <nom>"
-#: builtin/submodule--helper.c:2886
-msgid "git submodule--helper config --check-writeable"
-msgstr "git submodule--helper config --check-writeable"
-
-#: builtin/submodule--helper.c:2905 builtin/submodule--helper.c:3121
-#: builtin/submodule--helper.c:3277
+#: builtin/submodule--helper.c:2984 builtin/submodule--helper.c:3238
+#: builtin/submodule--helper.c:3395
msgid "please make sure that the .gitmodules file is in the working tree"
msgstr ""
"veuillez vous assurer que le fichier .gitmodules est dans l'arbre de travail"
-#: builtin/submodule--helper.c:2921
+#: builtin/submodule--helper.c:3000
msgid "suppress output for setting url of a submodule"
msgstr "supprimer la sortie lors du paramétrage de l'url d'un sous-module"
-#: builtin/submodule--helper.c:2925
+#: builtin/submodule--helper.c:3004
msgid "git submodule--helper set-url [--quiet] <path> <newurl>"
msgstr "git submodule--helper sync [--quiet] <chemin> <nouvelle-url>"
-#: builtin/submodule--helper.c:2958
+#: builtin/submodule--helper.c:3037
msgid "set the default tracking branch to master"
msgstr "régler la branche de suivi par défaut à master"
-#: builtin/submodule--helper.c:2960
+#: builtin/submodule--helper.c:3039
msgid "set the default tracking branch"
msgstr "régler la branche de suivi par défaut"
-#: builtin/submodule--helper.c:2964
+#: builtin/submodule--helper.c:3043
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:2965
+#: builtin/submodule--helper.c:3044
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:2972
+#: builtin/submodule--helper.c:3051
msgid "--branch or --default required"
msgstr "--branch ou --default requis"
-#: builtin/submodule--helper.c:3038
+#: builtin/submodule--helper.c:3072 builtin/submodule--helper.c:3375
+msgid "print only error messages"
+msgstr "afficher seulement les messages d'erreur"
+
+#: builtin/submodule--helper.c:3073
+msgid "force creation"
+msgstr "forcer la création"
+
+#: builtin/submodule--helper.c:3081
+msgid "show whether the branch would be created"
+msgstr "afficher si la branche serait créée"
+
+#: builtin/submodule--helper.c:3085
+msgid ""
+"git submodule--helper create-branch [-f|--force] [--create-reflog] [-q|--"
+"quiet] [-t|--track] [-n|--dry-run] <name> <start-oid> <start-name>"
+msgstr ""
+"git submodule--helper create-branch [-f|--force] [--create-reflog] [-q|--"
+"quiet] [-t|--track] [-n|--dry-run] <nom> <oid-départ> <nom-de-départ>"
+
+#: builtin/submodule--helper.c:3097
+#, c-format
+msgid "creating branch '%s'"
+msgstr "création de la branche '%s'"
+
+#: builtin/submodule--helper.c:3155
#, c-format
msgid "Adding existing repo at '%s' to the index\n"
msgstr "Ajout du dépôt existant à '%s' dans l'index\n"
-#: builtin/submodule--helper.c:3041
+#: builtin/submodule--helper.c:3158
#, c-format
msgid "'%s' already exists and is not a valid git repo"
msgstr "'%s' existe déjà et n'est pas un dépôt git valide"
-#: builtin/submodule--helper.c:3054
+#: builtin/submodule--helper.c:3171
#, c-format
msgid "A git directory for '%s' is found locally with remote(s):\n"
msgstr ""
"Un répertoire git pour '%s' est trouvé en local avec le(s) serveur(s) "
"distant(s) :\n"
-#: builtin/submodule--helper.c:3061
+#: builtin/submodule--helper.c:3178
#, c-format
msgid ""
"If you want to reuse this local git directory instead of cloning again from\n"
@@ -23718,54 +24255,50 @@ msgstr ""
"correct\n"
"ou si ceci n'est pas clair, choisissez un autre nom avec l'option '--name'."
-#: builtin/submodule--helper.c:3073
+#: builtin/submodule--helper.c:3190
#, c-format
msgid "Reactivating local git directory for submodule '%s'\n"
msgstr "Réactivation du répertoire git local pour le sous-module '%s'\n"
-#: builtin/submodule--helper.c:3110
+#: builtin/submodule--helper.c:3227
#, c-format
msgid "unable to checkout submodule '%s'"
msgstr "Impossible d'extraire le sous-module '%s'"
-#: builtin/submodule--helper.c:3149
+#: builtin/submodule--helper.c:3266
#, c-format
msgid "Failed to add submodule '%s'"
msgstr "Échec d'ajout du sous-module '%s'"
-#: builtin/submodule--helper.c:3153 builtin/submodule--helper.c:3158
-#: builtin/submodule--helper.c:3166
+#: builtin/submodule--helper.c:3270 builtin/submodule--helper.c:3275
+#: builtin/submodule--helper.c:3283
#, c-format
msgid "Failed to register submodule '%s'"
msgstr "Échec d'enregistrement du sous-module '%s'"
-#: builtin/submodule--helper.c:3222
+#: builtin/submodule--helper.c:3339
#, c-format
msgid "'%s' already exists in the index"
msgstr "'%s' existe déjà dans l'index"
-#: builtin/submodule--helper.c:3225
+#: builtin/submodule--helper.c:3342
#, c-format
msgid "'%s' already exists in the index and is not a submodule"
msgstr "'%s' existe déjà dans l'index et n'est pas un sous-module"
-#: builtin/submodule--helper.c:3254
+#: builtin/submodule--helper.c:3372
msgid "branch of repository to add as submodule"
msgstr "la branche du dépôt à ajouter comme sous-module"
-#: builtin/submodule--helper.c:3255
+#: builtin/submodule--helper.c:3373
msgid "allow adding an otherwise ignored submodule path"
msgstr "permettre l'ajout des chemins de modules ignorés par ailleurs"
-#: builtin/submodule--helper.c:3257
-msgid "print only error messages"
-msgstr "afficher seulement les messages d'erreur"
-
-#: builtin/submodule--helper.c:3261
+#: builtin/submodule--helper.c:3379
msgid "borrow the objects from reference repositories"
msgstr "emprunter les objets depuis des dépôts de références"
-#: builtin/submodule--helper.c:3263
+#: builtin/submodule--helper.c:3381
msgid ""
"sets the submodule’s name to the given string instead of defaulting to its "
"path"
@@ -23773,32 +24306,32 @@ msgstr ""
"configurer le nom du sous-module avec la chaîne fournie au lieu d'utiliser "
"par défaut son chemin"
-#: builtin/submodule--helper.c:3270
+#: builtin/submodule--helper.c:3388
msgid "git submodule--helper add [<options>] [--] <repository> [<path>]"
msgstr "git submodule--helper add [<options>] [--] <dépôt> [<chemin>]"
-#: builtin/submodule--helper.c:3298
+#: builtin/submodule--helper.c:3416
msgid "Relative path can only be used from the toplevel of the working tree"
msgstr ""
"Un chemin relatif ne peut être utilisé que depuis la racine de la copie de "
"travail"
-#: builtin/submodule--helper.c:3306
+#: builtin/submodule--helper.c:3425
#, c-format
msgid "repo URL: '%s' must be absolute or begin with ./|../"
msgstr "l'URL de dépôt : '%s' doit être absolu ou commencer par ./|../"
-#: builtin/submodule--helper.c:3341
+#: builtin/submodule--helper.c:3460
#, c-format
msgid "'%s' is not a valid submodule name"
msgstr "'%s' n'est pas un nom valide de sous-module"
-#: builtin/submodule--helper.c:3405 git.c:452 git.c:726
+#: builtin/submodule--helper.c:3520 git.c:453 git.c:729
#, c-format
msgid "%s doesn't support --super-prefix"
msgstr "%s ne gère pas --super-prefix"
-#: builtin/submodule--helper.c:3411
+#: builtin/submodule--helper.c:3526
#, c-format
msgid "'%s' is not a valid submodule--helper subcommand"
msgstr "'%s' n'est pas une sous-commande valide de submodule--helper"
@@ -23832,7 +24365,7 @@ msgstr "raison"
msgid "reason of the update"
msgstr "raison de la mise à jour"
-#: builtin/tag.c:25
+#: builtin/tag.c:26
msgid ""
"git tag [-a | -s | -u <key-id>] [-f] [-m <msg> | -F <file>]\n"
" <tagname> [<head>]"
@@ -23840,11 +24373,11 @@ msgstr ""
"git tag [-a | -s | -u <id-clé>] [-f] [-m <msg> | -F <fichier>]\n"
" <nom-d-étiquette> [<tête>]"
-#: builtin/tag.c:27
+#: builtin/tag.c:28
msgid "git tag -d <tagname>..."
msgstr "git tag -d <nom-d-étiquette>..."
-#: builtin/tag.c:28
+#: builtin/tag.c:29
msgid ""
"git tag -l [-n[<num>]] [--contains <commit>] [--no-contains <commit>] [--"
"points-at <object>]\n"
@@ -23856,21 +24389,21 @@ msgstr ""
" [--format=<format>] [--merged <commit>] [--no-merged <commit>] "
"[<motif>...]"
-#: builtin/tag.c:30
+#: builtin/tag.c:31
msgid "git tag -v [--format=<format>] <tagname>..."
msgstr "git tag -v [--format=<format>] <nom-d-étiquette>..."
-#: builtin/tag.c:100
+#: builtin/tag.c:101
#, c-format
msgid "tag '%s' not found."
msgstr "étiquette '%s' non trouvée."
-#: builtin/tag.c:135
+#: builtin/tag.c:136
#, c-format
msgid "Deleted tag '%s' (was %s)\n"
msgstr "Étiquette '%s' supprimée (elle était sur %s)\n"
-#: builtin/tag.c:170
+#: builtin/tag.c:171
#, c-format
msgid ""
"\n"
@@ -23883,7 +24416,7 @@ msgstr ""
" %s\n"
"Les lignes commençant par '%c' seront ignorées.\n"
-#: builtin/tag.c:174
+#: builtin/tag.c:175
#, c-format
msgid ""
"\n"
@@ -23898,11 +24431,11 @@ msgstr ""
"Les lignes commençant par '%c' seront gardées ; vous pouvez les retirer vous-"
"même si vous le souhaitez.\n"
-#: builtin/tag.c:240
+#: builtin/tag.c:241
msgid "unable to sign the tag"
msgstr "impossible de signer l'étiquette"
-#: builtin/tag.c:258
+#: builtin/tag.c:259
#, c-format
msgid ""
"You have created a nested tag. The object referred to by your new tag is\n"
@@ -23917,115 +24450,119 @@ msgstr ""
"\n"
"\tgit tag -f %s %s^{}"
-#: builtin/tag.c:274
+#: builtin/tag.c:275
msgid "bad object type."
msgstr "mauvais type d'objet."
-#: builtin/tag.c:325
+#: builtin/tag.c:326
msgid "no tag message?"
msgstr "pas de message pour l'étiquette ?"
-#: builtin/tag.c:332
+#: builtin/tag.c:333
#, c-format
msgid "The tag message has been left in %s\n"
msgstr "Le message pour l'étiquette a été laissé dans %s\n"
-#: builtin/tag.c:444
+#: builtin/tag.c:445
msgid "list tag names"
msgstr "afficher les noms des étiquettes"
-#: builtin/tag.c:446
+#: builtin/tag.c:447
msgid "print <n> lines of each tag message"
msgstr "affiche <n> lignes de chaque message d'étiquette"
-#: builtin/tag.c:448
+#: builtin/tag.c:449
msgid "delete tags"
msgstr "supprimer des étiquettes"
-#: builtin/tag.c:449
+#: builtin/tag.c:450
msgid "verify tags"
msgstr "vérifier des étiquettes"
-#: builtin/tag.c:451
+#: builtin/tag.c:452
msgid "Tag creation options"
msgstr "Options de création de l'étiquette"
-#: builtin/tag.c:453
+#: builtin/tag.c:454
msgid "annotated tag, needs a message"
msgstr "étiquette annotée, nécessite un message"
-#: builtin/tag.c:455
+#: builtin/tag.c:456
msgid "tag message"
msgstr "message pour l'étiquette"
-#: builtin/tag.c:457
+#: builtin/tag.c:458
msgid "force edit of tag message"
msgstr "forcer l'édition du message d'étiquetage"
-#: builtin/tag.c:458
+#: builtin/tag.c:459
msgid "annotated and GPG-signed tag"
msgstr "étiquette annotée et signée avec GPG"
-#: builtin/tag.c:461
+#: builtin/tag.c:462
msgid "use another key to sign the tag"
msgstr "utiliser une autre clé pour signer l'étiquette"
-#: builtin/tag.c:462
+#: builtin/tag.c:463
msgid "replace the tag if exists"
msgstr "remplacer l'étiquette si elle existe"
-#: builtin/tag.c:463 builtin/update-ref.c:511
+#: builtin/tag.c:464 builtin/update-ref.c:511
msgid "create a reflog"
msgstr "créer un reflog"
-#: builtin/tag.c:465
+#: builtin/tag.c:466
msgid "Tag listing options"
msgstr "Options d'affichage des étiquettes"
-#: builtin/tag.c:466
+#: builtin/tag.c:467
msgid "show tag list in columns"
msgstr "afficher la liste des étiquettes sous forme de colonnes"
-#: builtin/tag.c:467 builtin/tag.c:469
+#: builtin/tag.c:468 builtin/tag.c:470
msgid "print only tags that contain the commit"
msgstr "afficher seulement les étiquettes qui contiennent la validation"
-#: builtin/tag.c:468 builtin/tag.c:470
+#: builtin/tag.c:469 builtin/tag.c:471
msgid "print only tags that don't contain the commit"
msgstr "afficher seulement les étiquettes qui ne contiennent pas la validation"
-#: builtin/tag.c:471
+#: builtin/tag.c:472
msgid "print only tags that are merged"
msgstr "afficher seulement les étiquettes qui sont fusionnées"
-#: builtin/tag.c:472
+#: builtin/tag.c:473
msgid "print only tags that are not merged"
msgstr "afficher seulement les étiquettes qui ne sont pas fusionnées"
-#: builtin/tag.c:476
+#: builtin/tag.c:477
msgid "print only tags of the object"
msgstr "afficher seulement les étiquettes de l'objet"
-#: builtin/tag.c:558
+#: builtin/tag.c:559
#, c-format
msgid "the '%s' option is only allowed in list mode"
msgstr "l'option '%s' est autorisée seulement en mode de liste"
-#: builtin/tag.c:597
+#: builtin/tag.c:598
#, c-format
msgid "'%s' is not a valid tag name."
msgstr "'%s' n'est pas un nom d'étiquette valide."
-#: builtin/tag.c:602
+#: builtin/tag.c:603
#, c-format
msgid "tag '%s' already exists"
msgstr "l'étiquette '%s' existe déjà"
-#: builtin/tag.c:633
+#: builtin/tag.c:634
#, c-format
msgid "Updated tag '%s' (was %s)\n"
msgstr "Étiquette '%s' mise à jour (elle était sur %s)\n"
+#: builtin/unpack-objects.c:95
+msgid "pack exceeds maximum allowed size"
+msgstr "le paquet dépasse la taille maximale permise"
+
#: builtin/unpack-objects.c:504
msgid "Unpacking objects"
msgstr "Dépaquetage des objets"
@@ -24091,164 +24628,164 @@ msgstr " OK"
msgid "git update-index [<options>] [--] [<file>...]"
msgstr "git update-index [<options>] [--] [<fichier>...]"
-#: builtin/update-index.c:974
+#: builtin/update-index.c:993
msgid "continue refresh even when index needs update"
msgstr "continuer de rafraîchir même si l'index a besoin d'une mise à jour"
-#: builtin/update-index.c:977
+#: builtin/update-index.c:996
msgid "refresh: ignore submodules"
msgstr "rafraîchir : ignorer les sous-modules"
-#: builtin/update-index.c:980
+#: builtin/update-index.c:999
msgid "do not ignore new files"
msgstr "ne pas ignorer les nouveaux fichiers"
-#: builtin/update-index.c:982
+#: builtin/update-index.c:1001
msgid "let files replace directories and vice-versa"
msgstr "laisser les fichiers remplacer des répertoires et vice-versa"
-#: builtin/update-index.c:984
+#: builtin/update-index.c:1003
msgid "notice files missing from worktree"
msgstr "aviser des fichiers manquants dans la copie de travail"
-#: builtin/update-index.c:986
+#: builtin/update-index.c:1005
msgid "refresh even if index contains unmerged entries"
msgstr "rafraîchir même si l'index contient des éléments non fusionnés"
-#: builtin/update-index.c:989
+#: builtin/update-index.c:1008
msgid "refresh stat information"
msgstr "rafraîchir l'information de stat"
-#: builtin/update-index.c:993
+#: builtin/update-index.c:1012
msgid "like --refresh, but ignore assume-unchanged setting"
msgstr "comme --refresh, mais en ignorant l'option assume-unchanged"
-#: builtin/update-index.c:997
+#: builtin/update-index.c:1016
msgid "<mode>,<object>,<path>"
msgstr "<mode>, <objet>, <chemin>"
-#: builtin/update-index.c:998
+#: builtin/update-index.c:1017
msgid "add the specified entry to the index"
msgstr "ajouter l'élément spécifié dans l'index"
-#: builtin/update-index.c:1008
+#: builtin/update-index.c:1027
msgid "mark files as \"not changing\""
msgstr "marquer les fichiers comme \"non changeants\""
-#: builtin/update-index.c:1011
+#: builtin/update-index.c:1030
msgid "clear assumed-unchanged bit"
msgstr "mettre à zéro le bit supposé-non-modifié"
-#: builtin/update-index.c:1014
+#: builtin/update-index.c:1033
msgid "mark files as \"index-only\""
msgstr "marquer les fichiers comme \"index seulement\""
-#: builtin/update-index.c:1017
+#: builtin/update-index.c:1036
msgid "clear skip-worktree bit"
msgstr "mettre à zéro le bit sauter-la-copie-de travail"
-#: builtin/update-index.c:1020
+#: builtin/update-index.c:1039
msgid "do not touch index-only entries"
msgstr "ne pas toucher aux entrées restreintes à l'index"
-#: builtin/update-index.c:1022
+#: builtin/update-index.c:1041
msgid "add to index only; do not add content to object database"
msgstr ""
"ajouter seulement à l'index ; ne pas ajouter le contenu dans la base de "
"données des objets"
-#: builtin/update-index.c:1024
+#: builtin/update-index.c:1043
msgid "remove named paths even if present in worktree"
msgstr ""
"supprimer les chemins nommés même s'ils sont présents dans la copie de "
"travail"
-#: builtin/update-index.c:1026
+#: builtin/update-index.c:1045
msgid "with --stdin: input lines are terminated by null bytes"
msgstr "avec --stdin : les lignes en entrée sont terminées par des octets nuls"
-#: builtin/update-index.c:1028
+#: builtin/update-index.c:1047
msgid "read list of paths to be updated from standard input"
msgstr "lire la liste des chemins à mettre à jour depuis l'entrée standard"
-#: builtin/update-index.c:1032
+#: builtin/update-index.c:1051
msgid "add entries from standard input to the index"
msgstr "ajouter les éléments depuis l'entrée standard à l'index"
-#: builtin/update-index.c:1036
+#: builtin/update-index.c:1055
msgid "repopulate stages #2 and #3 for the listed paths"
msgstr "repeupler les étapes n°2 et n°3 pour les chemins listés"
-#: builtin/update-index.c:1040
+#: builtin/update-index.c:1059
msgid "only update entries that differ from HEAD"
msgstr "mettre à jour seulement les éléments qui diffèrent de HEAD"
-#: builtin/update-index.c:1044
+#: builtin/update-index.c:1063
msgid "ignore files missing from worktree"
msgstr "ignorer les fichiers manquants dans la copie de travail"
-#: builtin/update-index.c:1047
+#: builtin/update-index.c:1066
msgid "report actions to standard output"
msgstr "afficher les actions sur la sortie standard"
-#: builtin/update-index.c:1049
+#: builtin/update-index.c:1068
msgid "(for porcelains) forget saved unresolved conflicts"
msgstr "(pour porcelaines) oublier les conflits sauvés et non résolus"
-#: builtin/update-index.c:1053
+#: builtin/update-index.c:1072
msgid "write index in this format"
msgstr "écrire l'index dans ce format"
-#: builtin/update-index.c:1055
+#: builtin/update-index.c:1074
msgid "enable or disable split index"
-msgstr "activer ou désactiver l'index divisé"
+msgstr "activer ou désactiver l'index scindé"
-#: builtin/update-index.c:1057
+#: builtin/update-index.c:1076
msgid "enable/disable untracked cache"
msgstr "activer ou désactiver le cache de non-suivis"
-#: builtin/update-index.c:1059
+#: builtin/update-index.c:1078
msgid "test if the filesystem supports untracked cache"
msgstr "tester si le système de fichier supporte le cache de non-suivis"
-#: builtin/update-index.c:1061
+#: builtin/update-index.c:1080
msgid "enable untracked cache without testing the filesystem"
msgstr "activer le cache de non-suivis sans tester le système de fichier"
-#: builtin/update-index.c:1063
+#: builtin/update-index.c:1082
msgid "write out the index even if is not flagged as changed"
msgstr "écrire l'index même s'il n'est pas marqué comme modifié"
-#: builtin/update-index.c:1065
+#: builtin/update-index.c:1084
msgid "enable or disable file system monitor"
msgstr ""
"activer ou désactiver la surveillance du système de fichier (fsmonitor)"
-#: builtin/update-index.c:1067
+#: builtin/update-index.c:1086
msgid "mark files as fsmonitor valid"
msgstr "marquer les fichiers comme valides pour fsmonitor"
-#: builtin/update-index.c:1070
+#: builtin/update-index.c:1089
msgid "clear fsmonitor valid bit"
msgstr "effacer le bit de validité fsmonitor"
-#: builtin/update-index.c:1173
+#: builtin/update-index.c:1195
msgid ""
"core.splitIndex is set to false; remove or change it, if you really want to "
"enable split index"
msgstr ""
"core.splitIndex est réglé à false ; supprimez-le ou changez-le si vous "
-"souhaitez vraiment activer l'index coupé"
+"souhaitez vraiment activer l'index scindé"
-#: builtin/update-index.c:1182
+#: builtin/update-index.c:1204
msgid ""
"core.splitIndex is set to true; remove or change it, if you really want to "
"disable split index"
msgstr ""
"core.splitIndex est réglé à vrai ; supprimez-le ou changez-le si vous "
-"souhaitez vraiment désactiver l'index coupé"
+"souhaitez vraiment désactiver l'index scindé"
-#: builtin/update-index.c:1194
+#: builtin/update-index.c:1216
msgid ""
"core.untrackedCache is set to true; remove or change it, if you really want "
"to disable the untracked cache"
@@ -24256,11 +24793,11 @@ msgstr ""
"core.untrackedCache est réglé à true ; supprimez-le ou changez-le si vous "
"souhaitez vraiment désactiver le cache des fichiers non-suivis"
-#: builtin/update-index.c:1198
+#: builtin/update-index.c:1220
msgid "Untracked cache disabled"
msgstr "Le cache non suivi est désactivé"
-#: builtin/update-index.c:1206
+#: builtin/update-index.c:1228
msgid ""
"core.untrackedCache is set to false; remove or change it, if you really want "
"to enable the untracked cache"
@@ -24268,29 +24805,29 @@ msgstr ""
"core.untrackedCache est réglé à false ; supprimez-le ou changez-le si vous "
"souhaitez vraiment activer le cache des fichiers non-suivis"
-#: builtin/update-index.c:1210
+#: builtin/update-index.c:1232
#, c-format
msgid "Untracked cache enabled for '%s'"
msgstr "Le cache non suivi est activé pour '%s'"
-#: builtin/update-index.c:1218
+#: builtin/update-index.c:1241
msgid "core.fsmonitor is unset; set it if you really want to enable fsmonitor"
msgstr ""
"core.fsmonitor est réglé à false ; changez-le si vous souhaitez vraiment "
"activer la surveillance du système de fichiers"
-#: builtin/update-index.c:1222
+#: builtin/update-index.c:1246
msgid "fsmonitor enabled"
msgstr "fsmonitor activé"
-#: builtin/update-index.c:1225
+#: builtin/update-index.c:1250
msgid ""
"core.fsmonitor is set; remove it if you really want to disable fsmonitor"
msgstr ""
"core.fsmonitor est réglé à true ; supprimez-le ou changez-le si vous "
"souhaitez vraiment désactiver la surveillance du système de fichiers"
-#: builtin/update-index.c:1229
+#: builtin/update-index.c:1254
msgid "fsmonitor disabled"
msgstr "fsmonitor désactivé"
@@ -24324,10 +24861,6 @@ msgstr "l'entrée standard a des arguments qui se terminent par NUL"
msgid "read updates from stdin"
msgstr "lire les mises à jour depuis l'entrée standard"
-#: builtin/update-server-info.c:7
-msgid "git update-server-info [--force]"
-msgstr "git update-server-info [--force]"
-
#: builtin/update-server-info.c:15
msgid "update the info files from scratch"
msgstr "mettre à jour les fichiers d'information à partir de zéro"
@@ -24410,33 +24943,37 @@ msgid "git worktree remove [<options>] <worktree>"
msgstr "git worktree remove [<options>] <arbre-de-travail>"
#: builtin/worktree.c:25
+msgid "git worktree repair [<path>...]"
+msgstr "git worktree repair [<chemin>...]"
+
+#: builtin/worktree.c:26
msgid "git worktree unlock <path>"
msgstr "git worktree unlock <chemin>"
-#: builtin/worktree.c:75
+#: builtin/worktree.c:76
#, c-format
msgid "Removing %s/%s: %s"
msgstr "Suppression de %s/%s : %s"
-#: builtin/worktree.c:148
+#: builtin/worktree.c:149
msgid "report pruned working trees"
msgstr "afficher les arbres de travail éliminés"
-#: builtin/worktree.c:150
+#: builtin/worktree.c:151
msgid "expire working trees older than <time>"
msgstr "faire expirer les arbres de travail plus vieux que <temps>"
-#: builtin/worktree.c:220
+#: builtin/worktree.c:221
#, c-format
msgid "'%s' already exists"
msgstr "'%s' existe déjà"
-#: builtin/worktree.c:229
+#: builtin/worktree.c:230
#, c-format
msgid "unusable worktree destination '%s'"
msgstr "arbre de travail destination '%s' inutilisable"
-#: builtin/worktree.c:234
+#: builtin/worktree.c:235
#, c-format
msgid ""
"'%s' is a missing but locked worktree;\n"
@@ -24446,7 +24983,7 @@ msgstr ""
"utilisez '%s -f -f' pour passer outre, ou 'unlock' et 'prune' ou 'remove' "
"pour corriger"
-#: builtin/worktree.c:236
+#: builtin/worktree.c:237
#, c-format
msgid ""
"'%s' is a missing but already registered worktree;\n"
@@ -24455,137 +24992,159 @@ msgstr ""
"'%s' est un arbre de travail manquant mais déjà enregistré ;\n"
"utilisez '%s -f' pour passer outre, ou 'prune' ou 'remove' pour corriger"
-#: builtin/worktree.c:287
+#: builtin/worktree.c:248
+#, c-format
+msgid "failed to copy '%s' to '%s'; sparse-checkout may not work correctly"
+msgstr ""
+"échec de la copie de '%s' vers '%s' ; les extractions clairsemées pourraient "
+"ne pas fonctionner correctement"
+
+#: builtin/worktree.c:268
+#, c-format
+msgid "failed to copy worktree config from '%s' to '%s'"
+msgstr ""
+"impossible de copier la configuration d'arbre de travail de '%s' vers '%s'"
+
+#: builtin/worktree.c:280 builtin/worktree.c:285
+#, c-format
+msgid "failed to unset '%s' in '%s'"
+msgstr "échec de désinitialisation de '%s' dans '%s'"
+
+#: builtin/worktree.c:356
#, c-format
msgid "could not create directory of '%s'"
msgstr "impossible de créer le répertoire de '%s'"
-#: builtin/worktree.c:309
+#: builtin/worktree.c:378
msgid "initializing"
msgstr "initialisation"
-#: builtin/worktree.c:420 builtin/worktree.c:426
+#: builtin/worktree.c:492 builtin/worktree.c:498
#, c-format
msgid "Preparing worktree (new branch '%s')"
msgstr "Préparation de l'arbre de travail (nouvelle branche '%s')"
-#: builtin/worktree.c:422
+#: builtin/worktree.c:494
#, 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:431
+#: builtin/worktree.c:503
#, c-format
msgid "Preparing worktree (checking out '%s')"
msgstr "Préparation de l'arbre de travail (extraction de '%s')"
-#: builtin/worktree.c:437
+#: builtin/worktree.c:509
#, c-format
msgid "Preparing worktree (detached HEAD %s)"
msgstr "Préparation de l'arbre de travail (HEAD détachée %s)"
-#: builtin/worktree.c:482
+#: builtin/worktree.c:554
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:485
+#: builtin/worktree.c:557
msgid "create a new branch"
msgstr "créer une nouvelle branche"
-#: builtin/worktree.c:487
+#: builtin/worktree.c:559
msgid "create or reset a branch"
msgstr "créer ou réinitialiser une branche"
-#: builtin/worktree.c:489
+#: builtin/worktree.c:561
msgid "populate the new working tree"
msgstr "remplissage de la nouvelle copie de travail"
-#: builtin/worktree.c:490
+#: builtin/worktree.c:562
msgid "keep the new working tree locked"
msgstr "conserver le verrou sur le nouvel arbre de travail"
-#: builtin/worktree.c:492 builtin/worktree.c:729
+#: builtin/worktree.c:564 builtin/worktree.c:809
msgid "reason for locking"
msgstr "raison du verrouillage"
-#: builtin/worktree.c:495
+#: builtin/worktree.c:567
msgid "set up tracking mode (see git-branch(1))"
msgstr "régler le mode de suivi (voir git-branch(1))"
-#: builtin/worktree.c:498
+#: builtin/worktree.c:570
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:512
+#: builtin/worktree.c:584
msgid "added with --lock"
msgstr "ajouté avec --lock"
-#: builtin/worktree.c:574
+#: builtin/worktree.c:646
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:691
+#: builtin/worktree.c:766
msgid "show extended annotations and reasons, if available"
msgstr "afficher les annotations étendues et les raisons, si disponible"
-#: builtin/worktree.c:693
+#: builtin/worktree.c:768
msgid "add 'prunable' annotation to worktrees older than <time>"
msgstr ""
"ajouter l'annotation 'prunable' aux arbres de travail plus vieux que <temps>"
-#: builtin/worktree.c:741 builtin/worktree.c:774 builtin/worktree.c:848
-#: builtin/worktree.c:972
+#: builtin/worktree.c:770
+msgid "terminate records with a NUL character"
+msgstr "terminer les enregistrements par un caractère NUL"
+
+#: builtin/worktree.c:821 builtin/worktree.c:854 builtin/worktree.c:928
+#: builtin/worktree.c:1052
#, c-format
msgid "'%s' is not a working tree"
msgstr "'%s' n'est pas une copie de travail"
-#: builtin/worktree.c:743 builtin/worktree.c:776
+#: builtin/worktree.c:823 builtin/worktree.c:856
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:748
+#: builtin/worktree.c:828
#, c-format
msgid "'%s' is already locked, reason: %s"
msgstr "'%s' est déjà verrouillé, car '%s'"
-#: builtin/worktree.c:750
+#: builtin/worktree.c:830
#, c-format
msgid "'%s' is already locked"
msgstr "'%s' est déjà verrouillé"
-#: builtin/worktree.c:778
+#: builtin/worktree.c:858
#, c-format
msgid "'%s' is not locked"
msgstr "'%s' n'est pas verrouillé"
-#: builtin/worktree.c:819
+#: builtin/worktree.c:899
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:827
+#: builtin/worktree.c:907
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:850 builtin/worktree.c:974
+#: builtin/worktree.c:930 builtin/worktree.c:1054
#, c-format
msgid "'%s' is a main working tree"
msgstr "'%s' est un arbre de travail principal"
-#: builtin/worktree.c:855
+#: builtin/worktree.c:935
#, 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:868
+#: builtin/worktree.c:948
#, c-format
msgid ""
"cannot move a locked working tree, lock reason: %s\n"
@@ -24595,7 +25154,7 @@ msgstr ""
"verrouillage : %s\n"
"utilisez 'move -f -f' pour outrepasser ou déverrouiller avant"
-#: builtin/worktree.c:870
+#: builtin/worktree.c:950
msgid ""
"cannot move a locked working tree;\n"
"use 'move -f -f' to override or unlock first"
@@ -24603,39 +25162,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:873
+#: builtin/worktree.c:953
#, 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:878
+#: builtin/worktree.c:958
#, c-format
msgid "failed to move '%s' to '%s'"
msgstr "échec au déplacement de '%s' vers '%s'"
-#: builtin/worktree.c:924
+#: builtin/worktree.c:1004
#, c-format
msgid "failed to run 'git status' on '%s'"
msgstr "échec du lancement de 'git status' sur '%s'"
-#: builtin/worktree.c:928
+#: builtin/worktree.c:1008
#, 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:933
+#: builtin/worktree.c:1013
#, 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:956
+#: builtin/worktree.c:1036
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:979
+#: builtin/worktree.c:1059
#, c-format
msgid ""
"cannot remove a locked working tree, lock reason: %s\n"
@@ -24645,7 +25204,7 @@ msgstr ""
"verrouillage : %s\n"
"utilisez 'move -f -f' pour outrepasser ou déverrouiller avant"
-#: builtin/worktree.c:981
+#: builtin/worktree.c:1061
msgid ""
"cannot remove a locked working tree;\n"
"use 'remove -f -f' to override or unlock first"
@@ -24653,18 +25212,18 @@ msgstr ""
"impossible de supprimer un arbre de travail verrouillé;\n"
"utilisez 'move -f -f' pour outrepasser ou déverrouiller avant"
-#: builtin/worktree.c:984
+#: builtin/worktree.c:1064
#, c-format
msgid "validation failed, cannot remove working tree: %s"
msgstr ""
"la validation a échoué, impossible de supprimer l'arbre de travail : %s"
-#: builtin/worktree.c:1008
+#: builtin/worktree.c:1088
#, c-format
msgid "repair: %s: %s"
msgstr "réparation : %s : '%s'"
-#: builtin/worktree.c:1011
+#: builtin/worktree.c:1091
#, c-format
msgid "error: %s: %s"
msgstr "erreur : %s : %s"
@@ -24771,29 +25330,29 @@ msgstr "alias vide pour %s"
msgid "recursive alias: %s"
msgstr "alias recursif : %s"
-#: git.c:479
+#: git.c:480
msgid "write failure on standard output"
msgstr "échec d'écriture sur la sortie standard"
-#: git.c:481
+#: git.c:482
msgid "unknown write failure on standard output"
msgstr "échec inconnu d'écriture sur la sortie standard"
-#: git.c:483
+#: git.c:484
msgid "close failed on standard output"
msgstr "échec de fermeture de la sortie standard"
-#: git.c:835
+#: git.c:838
#, c-format
msgid "alias loop detected: expansion of '%s' does not terminate:%s"
msgstr "boucle d'alias détectée : l'expansion de '%s' ne finit jamais : %s"
-#: git.c:885
+#: git.c:888
#, c-format
msgid "cannot handle %s as a builtin"
msgstr "impossible d'utiliser %s comme une fonction intégrée"
-#: git.c:898
+#: git.c:901
#, c-format
msgid ""
"usage: %s\n"
@@ -24802,13 +25361,13 @@ msgstr ""
"usage : %s\n"
"\n"
-#: git.c:918
+#: git.c:921
#, c-format
msgid "expansion of alias '%s' failed; '%s' is not a git command\n"
msgstr ""
"l'expansion de l'alias '%s' a échoué : '%s' n'est pas une commande git\n"
-#: git.c:930
+#: git.c:933
#, c-format
msgid "failed to run command '%s': %s\n"
msgstr "échec au lancement de la commande '%s' : %s\n"
@@ -24969,142 +25528,142 @@ msgstr ""
" demandé : %s\n"
" redirection : %s"
-#: remote-curl.c:183
+#: remote-curl.c:184
#, c-format
msgid "invalid quoting in push-option value: '%s'"
msgstr "citation invalide dans la valeur push-option : '%s'"
-#: remote-curl.c:304
+#: remote-curl.c:308
#, 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:405
+#: remote-curl.c:409
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:436
+#: remote-curl.c:440
#, c-format
msgid "invalid server response; got '%s'"
msgstr "réponse du serveur invalide ; '%s' reçu"
-#: remote-curl.c:496
+#: remote-curl.c:500
#, c-format
msgid "repository '%s' not found"
msgstr "dépôt '%s' non trouvé"
-#: remote-curl.c:500
+#: remote-curl.c:504
#, c-format
msgid "Authentication failed for '%s'"
msgstr "Échec d'authentification pour '%s'"
-#: remote-curl.c:504
+#: remote-curl.c:508
#, c-format
msgid "unable to access '%s' with http.pinnedPubkey configuration: %s"
msgstr ""
"impossible d'accéder à '%s' avec la configuration http.pinnedPubkey : %s"
-#: remote-curl.c:508
+#: remote-curl.c:512
#, c-format
msgid "unable to access '%s': %s"
msgstr "impossible d'accéder à '%s' : %s"
-#: remote-curl.c:514
+#: remote-curl.c:518
#, c-format
msgid "redirecting to %s"
msgstr "redirection vers %s"
-#: remote-curl.c:645
+#: remote-curl.c:649
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:657
+#: remote-curl.c:661
msgid "remote server sent unexpected response end packet"
msgstr "le serveur distant a envoyé un paquet de fin de réponse inattendu"
-#: remote-curl.c:726
+#: remote-curl.c:730
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:755
+#: remote-curl.c:759
#, c-format
msgid "remote-curl: bad line length character: %.4s"
msgstr "remote-curl : mauvais caractère de longueur de ligne : %.4s"
-#: remote-curl.c:757
+#: remote-curl.c:761
msgid "remote-curl: unexpected response end packet"
msgstr "remote-curl : paquet de fin de réponse inattendu"
-#: remote-curl.c:833
+#: remote-curl.c:837
#, c-format
msgid "RPC failed; %s"
msgstr "échec RPC ; %s"
-#: remote-curl.c:873
+#: remote-curl.c:877
msgid "cannot handle pushes this big"
msgstr "impossible de gérer des poussées aussi grosses"
-#: remote-curl.c:986
+#: remote-curl.c:990
#, 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:990
+#: remote-curl.c:994
#, 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:1040
+#: remote-curl.c:1044
#, 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:1042
+#: remote-curl.c:1046
#, c-format
msgid "%d bytes of body are still expected"
msgstr "%d octets de corps sont encore attendus"
-#: remote-curl.c:1131
+#: remote-curl.c:1135
msgid "dumb http transport does not support shallow capabilities"
msgstr "le protocole http idiot ne supporte la capacité superficielle"
-#: remote-curl.c:1146
+#: remote-curl.c:1150
msgid "fetch failed."
msgstr "échec du récupération."
-#: remote-curl.c:1192
+#: remote-curl.c:1198
msgid "cannot fetch by sha1 over smart http"
msgstr "impossible de récupérer par sha1 sur http intelligent"
-#: remote-curl.c:1236 remote-curl.c:1242
+#: remote-curl.c:1242 remote-curl.c:1248
#, c-format
msgid "protocol error: expected sha/ref, got '%s'"
msgstr "erreur de protocole : sha/ref attendu, '%s' trouvé"
-#: remote-curl.c:1254 remote-curl.c:1372
+#: remote-curl.c:1260 remote-curl.c:1378
#, c-format
msgid "http transport does not support %s"
msgstr "le transport http ne supporte pas %s"
-#: remote-curl.c:1290
+#: remote-curl.c:1296
msgid "git-http-push failed"
msgstr "échec de git-http-push"
-#: remote-curl.c:1478
+#: remote-curl.c:1485
msgid "remote-curl: usage: git remote-curl <remote> [<url>]"
msgstr "remote-curl: usage: git remote-curl <distant> [<url>]"
-#: remote-curl.c:1510
+#: remote-curl.c:1517
msgid "remote-curl: error reading command stream from git"
msgstr "remote-curl : erreur de lecture du flux de commande depuis git"
-#: remote-curl.c:1517
+#: remote-curl.c:1524
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:1558
+#: remote-curl.c:1565
#, c-format
msgid "remote-curl: unknown command '%s' from git"
msgstr "remote-curl : commande inconnue '%s' depuis git"
@@ -25117,123 +25676,123 @@ msgstr "répertoire de travail nécessaire"
msgid "could not find enlistment root"
msgstr "impossible de trouver la racine d'enrôlement"
-#: contrib/scalar/scalar.c:89 contrib/scalar/scalar.c:351
-#: contrib/scalar/scalar.c:436 contrib/scalar/scalar.c:579
+#: contrib/scalar/scalar.c:89 contrib/scalar/scalar.c:350
+#: contrib/scalar/scalar.c:435 contrib/scalar/scalar.c:578
#, c-format
msgid "could not switch to '%s'"
msgstr "impossible de basculer vers '%s'"
-#: contrib/scalar/scalar.c:180
+#: contrib/scalar/scalar.c:179
#, c-format
msgid "could not configure %s=%s"
msgstr "impossible de configurer %s=%s"
-#: contrib/scalar/scalar.c:198
+#: contrib/scalar/scalar.c:197
msgid "could not configure log.excludeDecoration"
msgstr "impossible de configurer log.excludeDecoration"
-#: contrib/scalar/scalar.c:219
+#: contrib/scalar/scalar.c:218
msgid "Scalar enlistments require a worktree"
msgstr "Les enrôlements scalaires requièrent un arbre de travail"
-#: contrib/scalar/scalar.c:311
+#: contrib/scalar/scalar.c:310
#, c-format
msgid "remote HEAD is not a branch: '%.*s'"
msgstr "la HEAD distante n'est pas une branche : '%.*s'"
-#: contrib/scalar/scalar.c:317
+#: contrib/scalar/scalar.c:316
msgid "failed to get default branch name from remote; using local default"
msgstr ""
"échec de récupération de la branche par défaut depuis le distant ; "
"utilisation de la valeur par défaut locale"
-#: contrib/scalar/scalar.c:330
+#: contrib/scalar/scalar.c:329
msgid "failed to get default branch name"
msgstr "échec de l'obtention du nom de branche par défaut"
-#: contrib/scalar/scalar.c:341
+#: contrib/scalar/scalar.c:340
msgid "failed to unregister repository"
msgstr "échec du désenregistrement du dépôt"
-#: contrib/scalar/scalar.c:356
+#: contrib/scalar/scalar.c:355
msgid "failed to delete enlistment directory"
msgstr "échec de la suppression du répertoire d'enrôlement"
-#: contrib/scalar/scalar.c:376
+#: contrib/scalar/scalar.c:375
msgid "branch to checkout after clone"
msgstr "branche à extraire après le clonage"
-#: contrib/scalar/scalar.c:378
+#: contrib/scalar/scalar.c:377
msgid "when cloning, create full working directory"
msgstr "lors d'un clonage, créer un répertoire de travail complet"
-#: contrib/scalar/scalar.c:380
+#: contrib/scalar/scalar.c:379
msgid "only download metadata for the branch that will be checked out"
msgstr "ne télécharger les méta-données que pour la branche qui sera extraite"
-#: contrib/scalar/scalar.c:385
+#: contrib/scalar/scalar.c:384
msgid "scalar clone [<options>] [--] <repo> [<dir>]"
msgstr "scalar clone [<options>] [--] <dépôt> [<répertoire>]"
-#: contrib/scalar/scalar.c:410
+#: contrib/scalar/scalar.c:409
#, c-format
msgid "cannot deduce worktree name from '%s'"
msgstr "impossible de déduire le nom de l'arbre de travail depuis '%s'"
-#: contrib/scalar/scalar.c:419
+#: contrib/scalar/scalar.c:418
#, c-format
msgid "directory '%s' exists already"
msgstr "le répertoire '%s' existe déjà"
-#: contrib/scalar/scalar.c:446
+#: contrib/scalar/scalar.c:445
#, c-format
msgid "failed to get default branch for '%s'"
msgstr "échec d'obtention de la branche par défaut pour '%s'"
-#: contrib/scalar/scalar.c:457
+#: contrib/scalar/scalar.c:456
#, c-format
msgid "could not configure remote in '%s'"
msgstr "impossible de paramétrer le distant dans '%s'"
-#: contrib/scalar/scalar.c:466
+#: contrib/scalar/scalar.c:465
#, c-format
msgid "could not configure '%s'"
msgstr "impossible de configurer '%s'"
-#: contrib/scalar/scalar.c:469
+#: contrib/scalar/scalar.c:468
msgid "partial clone failed; attempting full clone"
msgstr "échec du clonage partiel ; tentative de clonage complet"
-#: contrib/scalar/scalar.c:473
+#: contrib/scalar/scalar.c:472
msgid "could not configure for full clone"
msgstr "impossible de configurer pour le clonage complet"
-#: contrib/scalar/scalar.c:505
+#: contrib/scalar/scalar.c:504
msgid "`scalar list` does not take arguments"
msgstr "`scalar list` n'accepte pas d'argument"
-#: contrib/scalar/scalar.c:518
+#: contrib/scalar/scalar.c:517
msgid "scalar register [<enlistment>]"
msgstr "scalar register [<enrôlement>]"
-#: contrib/scalar/scalar.c:545
+#: contrib/scalar/scalar.c:544
msgid "reconfigure all registered enlistments"
msgstr "reconfigurer tous les enrôlements enregistrés"
-#: contrib/scalar/scalar.c:549
+#: contrib/scalar/scalar.c:548
msgid "scalar reconfigure [--all | <enlistment>]"
msgstr "scala reconfigure [--all|<enrôlement>]"
-#: contrib/scalar/scalar.c:567
+#: contrib/scalar/scalar.c:566
msgid "--all or <enlistment>, but not both"
msgstr "--all ou <enrôlement>, mais pas les deux"
-#: contrib/scalar/scalar.c:582
+#: contrib/scalar/scalar.c:581
#, c-format
msgid "git repository gone in '%s'"
msgstr "dépôt git parti dans '%s'"
-#: contrib/scalar/scalar.c:622
+#: contrib/scalar/scalar.c:621
msgid ""
"scalar run <task> [<enlistment>]\n"
"Tasks:\n"
@@ -25241,42 +25800,55 @@ msgstr ""
"scalar run <tâche> [<enrôlement>]\n"
"Tâches :\n"
-#: contrib/scalar/scalar.c:640
+#: contrib/scalar/scalar.c:639
#, c-format
msgid "no such task: '%s'"
msgstr "pas de tâche : '%s'"
-#: contrib/scalar/scalar.c:690
+#: contrib/scalar/scalar.c:689
msgid "scalar unregister [<enlistment>]"
msgstr "scalar unregister [<enrôlement>]"
-#: contrib/scalar/scalar.c:737
+#: contrib/scalar/scalar.c:736
msgid "scalar delete <enlistment>"
msgstr "scalar delete <enrôlement>"
-#: contrib/scalar/scalar.c:752
+#: contrib/scalar/scalar.c:751
msgid "refusing to delete current working directory"
msgstr "refus de la suppression du répertoire de travail actuel"
-#: contrib/scalar/scalar.c:767
+#: contrib/scalar/scalar.c:766
msgid "include Git version"
msgstr "inclure la version Git"
-#: contrib/scalar/scalar.c:769
+#: contrib/scalar/scalar.c:768
msgid "include Git's build options"
msgstr "inclure les options de construction de Git"
-#: contrib/scalar/scalar.c:773
+#: contrib/scalar/scalar.c:772
msgid "scalar verbose [-v | --verbose] [--build-options]"
msgstr "scalar verbose [-v | --verbose] [--build-options]"
+#: contrib/scalar/scalar.c:813
+msgid "-C requires a <directory>"
+msgstr "-C requiert un <répertoire>"
+
+#: contrib/scalar/scalar.c:815
+#, c-format
+msgid "could not change to '%s'"
+msgstr "échec de modification en '%s'"
+
#: contrib/scalar/scalar.c:821
+msgid "-c requires a <key>=<value> argument"
+msgstr "-c exige un argument <clé>=<valeur>"
+
+#: contrib/scalar/scalar.c:839
msgid ""
-"scalar <command> [<options>]\n"
+"scalar [-C <directory>] [-c <key>=<value>] <command> [<options>]\n"
"\n"
"Commands:\n"
msgstr ""
-"scalar <commande> [<options>]\n"
+"scalar [-C <répertoire>] [-c <clé>=<valeur>] <commande> [<options>]\n"
"\n"
"Commandes :\n"
@@ -25288,43 +25860,43 @@ msgstr "aucune information de compilateur disponible\n"
msgid "no libc information available\n"
msgstr "aucune information de libc disponible\n"
-#: list-objects-filter-options.h:94
+#: list-objects-filter-options.h:126
msgid "args"
msgstr "args"
-#: list-objects-filter-options.h:95
+#: list-objects-filter-options.h:127
msgid "object filtering"
msgstr "filtrage d'objet"
-#: parse-options.h:183
+#: parse-options.h:188
msgid "expiry-date"
msgstr "date-d'expiration"
-#: parse-options.h:197
+#: parse-options.h:202
msgid "no-op (backward compatibility)"
msgstr "sans action (rétrocompatibilité)"
-#: parse-options.h:310
+#: parse-options.h:341
msgid "be more verbose"
msgstr "être plus verbeux"
-#: parse-options.h:312
+#: parse-options.h:343
msgid "be more quiet"
msgstr "être plus silencieux"
-#: parse-options.h:318
+#: parse-options.h:349
msgid "use <n> digits to display object names"
msgstr "utiliser <n> chiffres pour afficher les noms des objets"
-#: parse-options.h:337
+#: parse-options.h:368
msgid "how to strip spaces and #comments from message"
msgstr "comment éliminer les espaces et les commentaires # du message"
-#: parse-options.h:338
+#: parse-options.h:369
msgid "read pathspec from file"
msgstr "lire les spécificateurs de fichier depuis fichier"
-#: parse-options.h:339
+#: parse-options.h:370
msgid ""
"with --pathspec-from-file, pathspec elements are separated with NUL character"
msgstr ""
@@ -25589,461 +26161,465 @@ msgid "Display help information about Git"
msgstr "Afficher l'information d'aide à propos de Git"
#: command-list.h:108
+msgid "Run git hooks"
+msgstr "Lance les crochets git"
+
+#: command-list.h:109
msgid "Server side implementation of Git over HTTP"
msgstr "Implantation côté serveur de Git sur HTTP"
-#: command-list.h:109
+#: command-list.h:110
msgid "Download from a remote Git repository via HTTP"
msgstr "Télécharger depuis un dépôt Git distant via HTTP"
-#: command-list.h:110
+#: command-list.h:111
msgid "Push objects over HTTP/DAV to another repository"
msgstr "Pousser les objets sur un autre dépôt via HTTP/DAV"
-#: command-list.h:111
+#: command-list.h:112
msgid "Send a collection of patches from stdin to an IMAP folder"
msgstr "Envoyer un ensemble de rustines depuis stdin vers un répertoire IMAP"
-#: command-list.h:112
+#: command-list.h:113
msgid "Build pack index file for an existing packed archive"
msgstr ""
"Construire un fichier d'index pack depuis une archive compactée existante"
-#: command-list.h:113
+#: command-list.h:114
msgid "Create an empty Git repository or reinitialize an existing one"
msgstr "Créer un dépôt Git vide ou réinitialiser un existant"
-#: command-list.h:114
+#: command-list.h:115
msgid "Instantly browse your working repository in gitweb"
msgstr "Naviguer instantanément votre dépôt de travail dans gitweb"
-#: command-list.h:115
+#: command-list.h:116
msgid "Add or parse structured information in commit messages"
msgstr ""
"Ajouter ou analyser l'information structurée dans les messages de validation"
-#: command-list.h:116
+#: command-list.h:117
msgid "Show commit logs"
msgstr "Afficher l'historique des validations"
-#: command-list.h:117
+#: command-list.h:118
msgid "Show information about files in the index and the working tree"
msgstr ""
"Afficher l'information à propos des fichiers dans l'index ou l'arbre de "
"travail"
-#: command-list.h:118
+#: command-list.h:119
msgid "List references in a remote repository"
msgstr "Lister les références dans un dépôt distant"
-#: command-list.h:119
+#: command-list.h:120
msgid "List the contents of a tree object"
msgstr "Afficher le contenu d'un objet arbre"
-#: command-list.h:120
+#: command-list.h:121
msgid "Extracts patch and authorship from a single e-mail message"
msgstr ""
"Extraire le patch et l'information de d'auteur depuis un simple message de "
"courriel"
-#: command-list.h:121
+#: command-list.h:122
msgid "Simple UNIX mbox splitter program"
msgstr "Programme simple de découpage de mbox UNIX"
-#: command-list.h:122
+#: command-list.h:123
msgid "Run tasks to optimize Git repository data"
msgstr "Lancer les tâches pour optimiser les données du depôt Git"
-#: command-list.h:123
+#: command-list.h:124
msgid "Join two or more development histories together"
msgstr "Fusionner deux ou plusieurs historiques de développement ensemble"
-#: command-list.h:124
+#: command-list.h:125
msgid "Find as good common ancestors as possible for a merge"
msgstr "Trouver un ancêtre aussi bon que possible pour une fusion"
-#: command-list.h:125
+#: command-list.h:126
msgid "Run a three-way file merge"
msgstr "Lancer une fusion à 3 points"
-#: command-list.h:126
+#: command-list.h:127
msgid "Run a merge for files needing merging"
msgstr "Lancer une fusion à 3 points pour les fichiers à fusionner"
-#: command-list.h:127
+#: command-list.h:128
msgid "The standard helper program to use with git-merge-index"
msgstr "Le programme assistant standard à utiliser avec git-merge-index"
-#: command-list.h:128
+#: command-list.h:129
msgid "Show three-way merge without touching index"
msgstr "Afficher la fusion à trois points sans modifier l'index"
-#: command-list.h:129
+#: command-list.h:130
msgid "Run merge conflict resolution tools to resolve merge conflicts"
msgstr ""
"Lancer les outils de résolution de conflit de fusion pour résoudre les "
"conflits de fusion"
-#: command-list.h:130
+#: command-list.h:131
msgid "Creates a tag object with extra validation"
msgstr "Créer un objet étiquette avec validation supplémentaire"
-#: command-list.h:131
+#: command-list.h:132
msgid "Build a tree-object from ls-tree formatted text"
msgstr "Construire un objet arbre depuis une texte formaté comme ls-tree"
-#: command-list.h:132
+#: command-list.h:133
msgid "Write and verify multi-pack-indexes"
msgstr "Écrire et vérifier les index multi-paquet"
-#: command-list.h:133
+#: command-list.h:134
msgid "Move or rename a file, a directory, or a symlink"
msgstr "Déplacer ou renommer un fichier, un répertoire, ou un lien symbolique"
-#: command-list.h:134
+#: command-list.h:135
msgid "Find symbolic names for given revs"
msgstr "Trouver les noms symboliques pour des révisions données"
-#: command-list.h:135
+#: command-list.h:136
msgid "Add or inspect object notes"
msgstr "Ajouter ou inspecter les notes d'un objet"
-#: command-list.h:136
+#: command-list.h:137
msgid "Import from and submit to Perforce repositories"
msgstr "Importer et soumettre à des dépôt Perforce"
-#: command-list.h:137
+#: command-list.h:138
msgid "Create a packed archive of objects"
msgstr "Créer une archive compactée d'objets"
-#: command-list.h:138
+#: command-list.h:139
msgid "Find redundant pack files"
msgstr "Trouver les fichiers pack redondants"
-#: command-list.h:139
+#: command-list.h:140
msgid "Pack heads and tags for efficient repository access"
msgstr "Empaqueter les têtes et les étiquettes pour un accès efficace au dépôt"
-#: command-list.h:140
+#: command-list.h:141
msgid "Compute unique ID for a patch"
msgstr "Calculer l'ID unique d'un patch"
-#: command-list.h:141
+#: command-list.h:142
msgid "Prune all unreachable objects from the object database"
msgstr ""
"Éliminer les objets inatteignables depuis la base de données des objets"
-#: command-list.h:142
+#: command-list.h:143
msgid "Remove extra objects that are already in pack files"
msgstr "Éliminer les objets qui sont déjà présents dans les fichiers pack"
-#: command-list.h:143
+#: command-list.h:144
msgid "Fetch from and integrate with another repository or a local branch"
msgstr "Rapatrier et intégrer un autre dépôt ou une branche locale"
-#: command-list.h:144
+#: command-list.h:145
msgid "Update remote refs along with associated objects"
msgstr "Mettre à jour les références distantes ainsi que les objets associés"
-#: command-list.h:145
+#: command-list.h:146
msgid "Applies a quilt patchset onto the current branch"
msgstr "Appliquer un patchset quilt sur la branche courante"
-#: command-list.h:146
+#: command-list.h:147
msgid "Compare two commit ranges (e.g. two versions of a branch)"
msgstr ""
"Comparer deux plages de commits (par exemple deux versions d'une branche)"
-#: command-list.h:147
+#: command-list.h:148
msgid "Reads tree information into the index"
msgstr "Lire l'information d'arbre dans l'index"
-#: command-list.h:148
+#: command-list.h:149
msgid "Reapply commits on top of another base tip"
msgstr "Réapplication des commits sur le sommet de l'autre base"
-#: command-list.h:149
+#: command-list.h:150
msgid "Receive what is pushed into the repository"
msgstr "Recevoir ce qui est poussé dans le dépôt"
-#: command-list.h:150
+#: command-list.h:151
msgid "Manage reflog information"
msgstr "Gérer l'information de reflog"
-#: command-list.h:151
+#: command-list.h:152
msgid "Manage set of tracked repositories"
msgstr "Gérer un ensemble de dépôts suivis"
-#: command-list.h:152
+#: command-list.h:153
msgid "Pack unpacked objects in a repository"
msgstr "Empaqueter les objets non-empaquetés d'un dépôt"
-#: command-list.h:153
+#: command-list.h:154
msgid "Create, list, delete refs to replace objects"
msgstr "Créer, lister, supprimer des référence pour remplacer des objets"
-#: command-list.h:154
+#: command-list.h:155
msgid "Generates a summary of pending changes"
msgstr "Générer une résumé des modifications en attentes"
-#: command-list.h:155
+#: command-list.h:156
msgid "Reuse recorded resolution of conflicted merges"
msgstr "Réutiliser une résolution enregistrée de fusions conflictuelles"
-#: command-list.h:156
+#: command-list.h:157
msgid "Reset current HEAD to the specified state"
msgstr "Réinitialiser la HEAD courante à l'état spécifié"
-#: command-list.h:157
+#: command-list.h:158
msgid "Restore working tree files"
msgstr "Restaurer les fichiers l'arbre de travail"
-#: command-list.h:158
+#: command-list.h:159
msgid "Lists commit objects in reverse chronological order"
msgstr "Afficher les objets commit dans l'ordre chronologique inverse"
-#: command-list.h:159
+#: command-list.h:160
msgid "Pick out and massage parameters"
msgstr "Analyser et préparer les paramètres"
-#: command-list.h:160
+#: command-list.h:161
msgid "Revert some existing commits"
msgstr "Inverser des commits existants"
-#: command-list.h:161
+#: command-list.h:162
msgid "Remove files from the working tree and from the index"
msgstr "Supprimer des fichiers de la copie de travail et de l'index"
-#: command-list.h:162
+#: command-list.h:163
msgid "Send a collection of patches as emails"
msgstr "Envoyer un ensemble de patchs comme courriels"
-#: command-list.h:163
+#: command-list.h:164
msgid "Push objects over Git protocol to another repository"
msgstr "Pousser les objets sur un autre dépôt via le protocole Git"
-#: command-list.h:164
+#: command-list.h:165
msgid "Git's i18n setup code for shell scripts"
msgstr "Le code d'initialisation i18n pour les scripts shell"
-#: command-list.h:165
+#: command-list.h:166
msgid "Common Git shell script setup code"
msgstr "Le code d'initialisation commun aux scripts shell Git"
-#: command-list.h:166
+#: command-list.h:167
msgid "Restricted login shell for Git-only SSH access"
msgstr "Shell de login restreint pour un accès SSH vers Git seulement"
-#: command-list.h:167
+#: command-list.h:168
msgid "Summarize 'git log' output"
msgstr "Résumer la sortie de 'git log'"
-#: command-list.h:168
+#: command-list.h:169
msgid "Show various types of objects"
msgstr "Afficher différents types d'objets"
-#: command-list.h:169
+#: command-list.h:170
msgid "Show branches and their commits"
msgstr "Afficher les branches et leurs commits"
-#: command-list.h:170
+#: command-list.h:171
msgid "Show packed archive index"
msgstr "Afficher l'index de l'archive empaquetée"
-#: command-list.h:171
+#: command-list.h:172
msgid "List references in a local repository"
msgstr "Lister les références du dépôt local"
-#: command-list.h:172
-msgid "Initialize and modify the sparse-checkout"
-msgstr "Initialiser et modifier l'extraction clairsemée"
-
#: command-list.h:173
+msgid "Reduce your working tree to a subset of tracked files"
+msgstr "Réduit votre arbre de travail à un sous-ensemble de fichiers suivis"
+
+#: command-list.h:174
msgid "Add file contents to the staging area"
msgstr "Ajouter le contenu de fichiers à l'index"
-#: command-list.h:174
+#: command-list.h:175
msgid "Stash the changes in a dirty working directory away"
msgstr "Remiser les modifications d'un répertoire de travail sale"
-#: command-list.h:175
+#: command-list.h:176
msgid "Show the working tree status"
msgstr "Afficher l'état de la copie de travail"
-#: command-list.h:176
+#: command-list.h:177
msgid "Remove unnecessary whitespace"
msgstr "Retirer les espaces inutiles"
-#: command-list.h:177
+#: command-list.h:178
msgid "Initialize, update or inspect submodules"
msgstr "Initialiser, mettre à jour et inspecter les sous-modules"
-#: command-list.h:178
+#: command-list.h:179
msgid "Bidirectional operation between a Subversion repository and Git"
msgstr "Opération Bidirectionnelle entre un dépôt Subversion et Git"
-#: command-list.h:179
+#: command-list.h:180
msgid "Switch branches"
msgstr "Basculer de branche"
-#: command-list.h:180
+#: command-list.h:181
msgid "Read, modify and delete symbolic refs"
msgstr "Lire, modifier et supprimer les références symboliques"
-#: command-list.h:181
+#: command-list.h:182
msgid "Create, list, delete or verify a tag object signed with GPG"
msgstr ""
"Créer, lister, supprimer ou vérifier un objet d'étiquette signé avec GPG"
-#: command-list.h:182
+#: command-list.h:183
msgid "Creates a temporary file with a blob's contents"
msgstr "Créer un fichier temporaire avec le contenu d'un blob"
-#: command-list.h:183
+#: command-list.h:184
msgid "Unpack objects from a packed archive"
msgstr "Dépaqueter les objets depuis une archive empaquetée"
-#: command-list.h:184
+#: command-list.h:185
msgid "Register file contents in the working tree to the index"
msgstr "Enregistrer le contenu d'un fichier de l'arbre de travail dans l'index"
-#: command-list.h:185
+#: command-list.h:186
msgid "Update the object name stored in a ref safely"
msgstr ""
"Mettre à jour le nom d'objet stocké dans une référence en toute sécurité"
-#: command-list.h:186
+#: command-list.h:187
msgid "Update auxiliary info file to help dumb servers"
msgstr ""
"Mettre à jour le fichier d'informations auxiliaires pour aider les serveurs "
"idiots"
-#: command-list.h:187
+#: command-list.h:188
msgid "Send archive back to git-archive"
msgstr "Renvoyer une archive dans git-archive"
-#: command-list.h:188
+#: command-list.h:189
msgid "Send objects packed back to git-fetch-pack"
msgstr "Renvoyer des objets empaquetés dans git-fetch-pack"
-#: command-list.h:189
+#: command-list.h:190
msgid "Show a Git logical variable"
msgstr "Afficher un variable logique de Git"
-#: command-list.h:190
+#: command-list.h:191
msgid "Check the GPG signature of commits"
msgstr "Vérifier la signature GPG de commits"
-#: command-list.h:191
+#: command-list.h:192
msgid "Validate packed Git archive files"
msgstr "Valider des fichiers d'archive Git empaquetés"
-#: command-list.h:192
+#: command-list.h:193
msgid "Check the GPG signature of tags"
msgstr "Vérifier la signature GPG d'étiquettes"
-#: command-list.h:193
+#: command-list.h:194
msgid "Show logs with difference each commit introduces"
msgstr "Afficher les journaux avec la différence que chaque commit introduit"
-#: command-list.h:194
+#: command-list.h:195
msgid "Manage multiple working trees"
msgstr "Gérer des arbres de travail multiples"
-#: command-list.h:195
+#: command-list.h:196
msgid "Create a tree object from the current index"
msgstr "Créer un objet arbre depuis l'index courant"
-#: command-list.h:196
+#: command-list.h:197
msgid "Defining attributes per path"
msgstr "Définition des attributs par chemin"
-#: command-list.h:197
+#: command-list.h:198
msgid "Git command-line interface and conventions"
msgstr "Interface en ligne de commande et conventions de Git"
-#: command-list.h:198
+#: command-list.h:199
msgid "A Git core tutorial for developers"
msgstr "Tutoriel du cœur de Git pour les développeurs"
-#: command-list.h:199
+#: command-list.h:200
msgid "Providing usernames and passwords to Git"
msgstr "Fourniture des noms d'utilisateurs et des mots de passe à Git"
-#: command-list.h:200
+#: command-list.h:201
msgid "Git for CVS users"
msgstr "Git pour les utilisateurs de CVS"
-#: command-list.h:201
+#: command-list.h:202
msgid "Tweaking diff output"
msgstr "Bidouillage de la sortie diff"
-#: command-list.h:202
+#: command-list.h:203
msgid "A useful minimum set of commands for Everyday Git"
msgstr "Un ensemble minimal utile des commandes de Git pour tous les jours"
-#: command-list.h:203
+#: command-list.h:204
msgid "Frequently asked questions about using Git"
msgstr "Foire aux questions sur l'utilisation de Git"
-#: command-list.h:204
+#: command-list.h:205
msgid "A Git Glossary"
msgstr "Un glossaire Git"
-#: command-list.h:205
+#: command-list.h:206
msgid "Hooks used by Git"
msgstr "Crochets utilisés par Git"
-#: command-list.h:206
+#: command-list.h:207
msgid "Specifies intentionally untracked files to ignore"
msgstr "Spécifie les fichiers non-suivis à ignorer intentionnellement"
-#: command-list.h:207
+#: command-list.h:208
msgid "The Git repository browser"
msgstr "Le navigateur de dépôt Git"
-#: command-list.h:208
+#: command-list.h:209
msgid "Map author/committer names and/or E-Mail addresses"
msgstr ""
"Fait correspondre les noms d'auteur/validateur avec les adresses de courriel"
-#: command-list.h:209
+#: command-list.h:210
msgid "Defining submodule properties"
msgstr "Définition des propriétés de sous-module"
-#: command-list.h:210
+#: command-list.h:211
msgid "Git namespaces"
msgstr "Espaces de nom de Git"
-#: command-list.h:211
+#: command-list.h:212
msgid "Helper programs to interact with remote repositories"
msgstr "Programmes assistants pour interagir avec des dépôts distants"
-#: command-list.h:212
+#: command-list.h:213
msgid "Git Repository Layout"
msgstr "Disposition d'un dépôt Git"
-#: command-list.h:213
+#: command-list.h:214
msgid "Specifying revisions and ranges for Git"
msgstr "Spécification des révisions et portées pour Git"
-#: command-list.h:214
+#: command-list.h:215
msgid "Mounting one repository inside another"
msgstr "Montage d'un dépôt dans un autre dépôt"
-#: command-list.h:215
+#: command-list.h:216
msgid "A tutorial introduction to Git"
msgstr "Une introduction pratique à Git"
-#: command-list.h:216
+#: command-list.h:217
msgid "A tutorial introduction to Git: part two"
msgstr "Une introduction pratique à Git : deuxième partie"
-#: command-list.h:217
+#: command-list.h:218
msgid "Git web interface (web frontend to Git repositories)"
msgstr "Interface web de Git"
-#: command-list.h:218
+#: command-list.h:219
msgid "An overview of recommended workflows with Git"
msgstr "Un aperçu des flux de travail recommandés avec Git"
@@ -26087,76 +26663,50 @@ msgstr "Essai de fusion simple avec $pretty_name"
msgid "Simple merge did not work, trying automatic merge."
msgstr "La fusion simple a échoué, essai avec la fusion automatique."
-#: git-submodule.sh:401
-#, sh-format
-msgid "Unable to find current revision in submodule path '$displaypath'"
-msgstr ""
-"Impossible de trouver la révision courante dans le chemin de sous-module "
-"'$displaypath'"
-
-#: git-submodule.sh:411
-#, sh-format
-msgid "Unable to fetch in submodule path '$sm_path'"
-msgstr "Impossible de rapatrier dans le chemin de sous-module '$sm_path'"
-
-#: git-submodule.sh:416
-#, sh-format
-msgid ""
-"Unable to find current ${remote_name}/${branch} revision in submodule path "
-"'$sm_path'"
-msgstr ""
-"Impossible de trouver la révision courante ${remote_name}/${branch} dans le "
-"chemin de sous-module '$sm_path'"
-
-#: git-submodule.sh:464
-#, sh-format
-msgid "Failed to recurse into submodule path '$displaypath'"
-msgstr "Échec de parcours dans le chemin du sous-module '$displaypath'"
-
#: git-sh-setup.sh:89 git-sh-setup.sh:94
#, sh-format
msgid "usage: $dashless $USAGE"
msgstr "usage : $dashless $USAGE"
-#: git-sh-setup.sh:183
+#: git-sh-setup.sh:182
#, sh-format
msgid "Cannot chdir to $cdup, the toplevel of the working tree"
msgstr ""
"Impossible de se placer dans le répertoire $cdup, la racine de la copie de "
"travail"
-#: git-sh-setup.sh:192 git-sh-setup.sh:199
+#: git-sh-setup.sh:191 git-sh-setup.sh:198
#, sh-format
msgid "fatal: $program_name cannot be used without a working tree."
msgstr "fatal : $program_name ne peut pas être utilisé sans copie de travail."
-#: git-sh-setup.sh:213
+#: git-sh-setup.sh:212
msgid "Cannot rewrite branches: You have unstaged changes."
msgstr ""
"Impossible de réécrire les branches : vous avez des modifications non "
"indexées."
-#: git-sh-setup.sh:216
+#: git-sh-setup.sh:215
#, sh-format
msgid "Cannot $action: You have unstaged changes."
msgstr "$action est impossible : vous avez des modifications non indexées."
-#: git-sh-setup.sh:227
+#: git-sh-setup.sh:226
#, sh-format
msgid "Cannot $action: Your index contains uncommitted changes."
msgstr ""
"$action est impossible : votre index contient des modifications non validées."
-#: git-sh-setup.sh:229
+#: git-sh-setup.sh:228
msgid "Additionally, your index contains uncommitted changes."
msgstr "De plus, votre index contient des modifications non validées."
-#: git-sh-setup.sh:349
+#: git-sh-setup.sh:348
msgid "You need to run this command from the toplevel of the working tree."
msgstr ""
"Vous devez lancer cette commande depuis la racine de votre copie de travail."
-#: git-sh-setup.sh:354
+#: git-sh-setup.sh:353
msgid "Unable to determine absolute path of git directory"
msgstr "Impossible de déterminer le chemin absolu du répertoire git"
@@ -26846,23 +27396,23 @@ msgstr "impossible d'envoyer un message comme 7bit"
msgid "invalid transfer encoding"
msgstr "codage de transfert invalide"
-#: git-send-email.perl:2095
+#: git-send-email.perl:2100
#, perl-format
msgid ""
-"fatal: %s: rejected by sendemail-validate hook\n"
+"fatal: %s: rejected by %s hook\n"
"%s\n"
"warning: no patches were sent\n"
msgstr ""
-"fatal : %s : rejeté par le crochet sendemail-validate\n"
+"fatal : %s : rejeté par le crochet %s\n"
"%s\n"
"attention : aucun patch envoyé\n"
-#: git-send-email.perl:2105 git-send-email.perl:2158 git-send-email.perl:2168
+#: git-send-email.perl:2110 git-send-email.perl:2163 git-send-email.perl:2173
#, perl-format
msgid "unable to open %s: %s\n"
msgstr "impossible d'ouvrir %s :%s\n"
-#: git-send-email.perl:2108
+#: git-send-email.perl:2113
#, perl-format
msgid ""
"fatal: %s:%d is longer than 998 characters\n"
@@ -26871,17 +27421,291 @@ msgstr ""
"fatal : %s : %d est plus long que 998 caractères \n"
"attention : aucun patch envoyé\n"
-#: git-send-email.perl:2126
+#: git-send-email.perl:2131
#, 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:2130
+#: git-send-email.perl:2135
#, perl-format
msgid "Do you really want to send %s? [y|N]: "
msgstr "Souhaitez-vous réellement envoyer %s ?[y|N] : "
+#, perl-format
+#~ msgid "fatal: %s: rejected by %s hook\n"
+#~ msgstr "fatal : %s : rejetée par le crocher %s\n"
+
+#~ msgid "git archive --list"
+#~ msgstr "git archive --list"
+
+#, c-format
+#~ msgid "unknown value for --diff-merges: %s"
+#~ msgstr "valeur inconnue pour --diff-merges : %s"
+
+#, c-format
+#~ msgid "invalid value '%s' for lsrefs.unborn"
+#~ msgstr "valeur invalide '%s' pour lsrefs.unborn"
+
+#~ msgid "backend for `git stash -p`"
+#~ msgstr "backend pour `git stash -p`"
+
+#, c-format
+#~ msgid "Invalid value for --empty: %s"
+#~ msgstr "Valeur invalide pour --empty : %s"
+
+#, c-format
+#~ msgid "Invalid value for --patch-format: %s"
+#~ msgstr "Valeur invalide pour --patch-format : %s"
+
+#, c-format
+#~ msgid "Invalid value for --show-current-patch: %s"
+#~ msgstr "Valeur invalide pour --show-current-patch : %s"
+
+#~ msgid ""
+#~ "git bisect--helper --bisect-terms [--term-good | --term-old | --term-bad "
+#~ "| --term-new]"
+#~ msgstr ""
+#~ "git bisect--helper --bisect-terms [--term-good | --term-old | --term-bad "
+#~ "| --term-new]"
+
+#~ msgid "git bisect--helper --bisect-next"
+#~ msgstr "git bisect--helper --bisect-next"
+
+#~ msgid "git bisect--helper --bisect-visualize"
+#~ msgstr "git bisect--helper --bisect-visualize"
+
+#, c-format
+#~ msgid "invalid color '%s' in color.blame.repeatedLines"
+#~ msgstr "couleur invalide '%s' dans color.blame.repeatedLines"
+
+#~ msgid "invalid value for blame.coloring"
+#~ msgstr "valeur invalide pour blame.coloring"
+
+#~ msgid ""
+#~ "git cat-file (-t [--allow-unknown-type] | -s [--allow-unknown-type] | -e "
+#~ "| -p | <type> | --textconv | --filters) [--path=<path>] <object>"
+#~ msgstr ""
+#~ "git cat-file (-t [--allow-unknow-type] | -s [--allow-unknow-type] | -e | -"
+#~ "p | <type> | --textconv | --filters) [--path=<chemin>] <objet>"
+
+#~ msgid "show object type"
+#~ msgstr "afficher le type de l'objet"
+
+#~ msgid "exit with zero when there's no error"
+#~ msgstr "sortir avec un code d'erreur nul quand il n'y a aucune erreur"
+
+#~ msgid "show info and content of objects fed from the standard input"
+#~ msgstr ""
+#~ "afficher l'information et le contenu des objets passés en entrée standard"
+
+#~ msgid "show info about objects fed from the standard input"
+#~ msgstr "afficher l'information des objets passés en entrée standard"
+
+#~ msgid "follow in-tree symlinks (used with --batch or --batch-check)"
+#~ msgstr ""
+#~ "suivre les liens symbolique internes à la copie de travail (utilisé avec "
+#~ "--batch ou --batch-check)"
+
+#~ msgid "show all objects with --batch or --batch-check"
+#~ msgstr "montrer tous les objets avec --batch ou --batch-check"
+
+#~ msgid "do not order --batch-all-objects output"
+#~ msgstr "ne pas ordonner la sortie de --batch-all-objects"
+
+#~ msgid "set up tracking mode (see git-pull(1))"
+#~ msgstr "régler le mode de suivi (voir git-pull(1))"
+
+#~ msgid "Using both --reset-author and --author does not make sense"
+#~ msgstr ""
+#~ "L'utilisation simultanée de --reset-author et --author n'a pas de sens"
+
+#~ msgid "Options --squash and --fixup cannot be used together"
+#~ msgstr ""
+#~ "Les options --squash et --fixup ne peuvent pas être utilisées ensemble"
+
+#~ msgid "Only one of -c/-C/-F/--fixup can be used."
+#~ msgstr "Une seule option parmi -c/-C/-F/--fixup peut être utilisée."
+
+#~ msgid "Option -m cannot be combined with -c/-C/-F."
+#~ msgstr "L'option -m ne peut pas être combinée avec -c/-C/-F."
+
+#~ msgid ""
+#~ "Only one of --include/--only/--all/--interactive/--patch can be used."
+#~ msgstr ""
+#~ "Une seule option parmi --include/--only/--all/--interactive/--patch peut "
+#~ "être utilisée."
+
+#~ msgid "git count-objects [-v] [-H | --human-readable]"
+#~ msgstr "git count-objects [-v] [-H | --human-readable]"
+
+#, c-format
+#~ msgid "configuration fetch.output contains invalid value %s"
+#~ msgstr ""
+#~ "le paramètre de configuration fetch.output contient une valeur invalide %s"
+
+#~ msgid "--cached or --untracked cannot be used with --no-index"
+#~ msgstr ""
+#~ "--cached ou --untracked ne peuvent pas être utilisés avec --no-index"
+
+#~ msgid "--untracked cannot be used with --cached"
+#~ msgstr "--untracked ne peut pas être utilisé avec --cached"
+
+#~ msgid "git hash-object --stdin-paths"
+#~ msgstr "git hash-object --stdin-paths"
+
+#~ msgid "git help [-g|--guides]"
+#~ msgstr "git help [-g|--guides]"
+
+#~ msgid "git help [-c|--config]"
+#~ msgstr "git help [-c|--config]"
+
+#~ msgid "git mktag"
+#~ msgstr "git mktag"
+
+#~ msgid "git mktree [-z] [--missing] [--batch]"
+#~ msgstr "git mktree [-z] [--missing] [--batch]"
+
+#~ msgid "read from stdin"
+#~ msgstr "lire depuis l'entrée standard"
+
+#~ msgid "git notes merge --commit [-v | -q]"
+#~ msgstr "git notes merge --commit [-v | -q]"
+
+#~ msgid "git notes merge --abort [-v | -q]"
+#~ msgstr "git notes merge --abort [-v | -q]"
+
+#~ msgid "git notes get-ref"
+#~ msgstr "git notes get-ref"
+
+#~ msgid "invalid value for --missing"
+#~ msgstr "valeur invalide pour --missing"
+
+#~ msgid "git prune-packed [-n | --dry-run] [-q | --quiet]"
+#~ msgstr "git prune-packed [-n | --dry-run] [-q | --quiet]"
+
+#, c-format
+#~ msgid "Invalid value for %s: %s"
+#~ msgstr "Valeur invalide pour %s : %s"
+
+#, c-format
+#~ msgid "Invalid value for pull.ff: %s"
+#~ msgstr "Valeur invalide pour pull.ff : %s"
+
+#~ msgid "git rebase --continue | --abort | --skip | --edit-todo"
+#~ msgstr "git rebase --continue | --abort | --skip | --edit-todo"
+
+#, c-format
+#~ msgid "'%s' is not a valid timestamp"
+#~ msgstr "'%s' n'est pas un horodatage valide"
+
+#~ msgid "git reflog [ show | expire | delete | exists ]"
+#~ msgstr "git reflog [ show | expire | delete | exists ]"
+
+#~ msgid "git remote [-v | --verbose]"
+#~ msgstr "git remote [-v | --verbose]"
+
+#~ msgid "git replace [-f] --convert-graft-file"
+#~ msgstr "git replace [-f] --convert-graft-file"
+
+#, c-format
+#~ msgid ""
+#~ "\n"
+#~ "It took %.2f seconds to enumerate unstaged changes after reset. You can\n"
+#~ "use '--quiet' to avoid this. Set the config setting reset.quiet to true\n"
+#~ "to make this the default.\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Les modifications non-indexées ont pris %.2f secondes à énumérer après "
+#~ "reset.\n"
+#~ "Vous pouvez utiliser '--quiet' pour éviter ce message. Réglez le "
+#~ "paramètre de\n"
+#~ "config reset.quiet à true pour avoir ce comportement en permanence.\n"
+
+#~ msgid "git sparse-checkout list"
+#~ msgstr "git sparse-checkout list"
+
+#~ msgid "unable to upgrade repository format to enable worktreeConfig"
+#~ msgstr ""
+#~ "impossible de mettre à jour le format de dépôt pour activer worktreeConfig"
+
+#~ msgid "git sparse-checkout init [--cone] [--[no-]sparse-index]"
+#~ msgstr "git sparse-checkout init [--cone] [--[no-]sparse-index]"
+
+#~ msgid "git sparse-checkout reapply [--[no-]cone] [--[no-]sparse-index]"
+#~ msgstr "git sparse-checkout reapply [--[no-]cone] [--[no-]sparse-index]"
+
+#~ msgid "git sparse-checkout disable"
+#~ msgstr "git sparse-checkout disable"
+
+#~ msgid ""
+#~ "the stash.useBuiltin support has been removed!\n"
+#~ "See its entry in 'git help config' for details."
+#~ msgstr ""
+#~ "la prise en charge de stash.useBuiltin a été supprimée !\n"
+#~ "Voir son entrée dans 'git help config' pour plus de détails."
+
+#~ msgid "git stripspace [-s | --strip-comments]"
+#~ msgstr "git stripspace [-s | --strip-comments]"
+
+#~ msgid "git stripspace [-c | --comment-lines]"
+#~ msgstr "git stripspace [-c | --comment-lines]"
+
+#~ msgid "submodule--helper print-default-remote takes no arguments"
+#~ msgstr "submodule--helper print-default-remote n'accepte aucun argument"
+
+#~ msgid "git submodule--helper update-clone [--prefix=<path>] [<path>...]"
+#~ msgstr ""
+#~ "git submodule--helper update-clone [--prefix=<chemin>] [<chemin>...]"
+
+#~ msgid "suppress output for update by rebase or merge"
+#~ msgstr ""
+#~ "supprimer la sortie lors de la mise à jour par un rebasage ou une fusion"
+
+#~ msgid "overrides update mode in case the repository is a fresh clone"
+#~ msgstr ""
+#~ "passer outre le mode mise à jour dans le cas où le dépôt est un clone "
+#~ "nouveau"
+
+#~ msgid "depth for shallow fetch"
+#~ msgstr "profondeur pour une récupération superficielle"
+
+#~ msgid "sha1"
+#~ msgstr "sha1"
+
+#~ msgid "SHA1 expected by superproject"
+#~ msgstr "SHA1 attendu par le super-projet"
+
+#~ msgid "subsha1"
+#~ msgstr "sous-sha1"
+
+#~ msgid "SHA1 of submodule's HEAD"
+#~ msgstr "SHA1 de la HEAD du sous-module"
+
+#~ msgid "git submodule--helper run-update-procedure [<options>] <path>"
+#~ msgstr "git submodule--helper run-update-procedure [<options>] <chemin>"
+
+#~ msgid "git submodule--helper config --check-writeable"
+#~ msgstr "git submodule--helper config --check-writeable"
+
+#~ msgid "git update-server-info [--force]"
+#~ msgstr "git update-server-info [--force]"
+
+#~ msgid "Initialize and modify the sparse-checkout"
+#~ msgstr "Initialiser et modifier l'extraction clairsemée"
+
+#, sh-format
+#~ msgid ""
+#~ "Unable to find current ${remote_name}/${branch} revision in submodule "
+#~ "path '$sm_path'"
+#~ msgstr ""
+#~ "Impossible de trouver la révision courante ${remote_name}/${branch} dans "
+#~ "le chemin de sous-module '$sm_path'"
+
+#, sh-format
+#~ msgid "Failed to recurse into submodule path '$displaypath'"
+#~ msgstr "Échec de parcours dans le chemin du sous-module '$displaypath'"
+
#~ msgid "--index outside a repository"
#~ msgstr "--index hors d'un dépôt"
diff --git a/po/git.pot b/po/git.pot
index 196249abd4..054cb99c06 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: 2022-01-17 08:31+0800\n"
+"POT-Creation-Date: 2022-04-13 14:52+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"
@@ -18,213 +18,212 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
-#: add-interactive.c:380
+#: add-interactive.c:382
#, c-format
msgid "Huh (%s)?"
msgstr ""
-#: add-interactive.c:533 add-interactive.c:834 reset.c:65 sequencer.c:3509
-#: sequencer.c:3974 sequencer.c:4136 builtin/rebase.c:1233
-#: builtin/rebase.c:1642
+#: add-interactive.c:535 add-interactive.c:836 reset.c:136 sequencer.c:3505
+#: sequencer.c:3970 sequencer.c:4127 builtin/rebase.c:1261
+#: builtin/rebase.c:1671
msgid "could not read index"
msgstr ""
-#: add-interactive.c:588 git-add--interactive.perl:269
+#: add-interactive.c:590 git-add--interactive.perl:269
#: git-add--interactive.perl:294
msgid "binary"
msgstr ""
-#: add-interactive.c:646 git-add--interactive.perl:278
+#: add-interactive.c:648 git-add--interactive.perl:278
#: git-add--interactive.perl:332
msgid "nothing"
msgstr ""
-#: add-interactive.c:647 git-add--interactive.perl:314
+#: add-interactive.c:649 git-add--interactive.perl:314
#: git-add--interactive.perl:329
msgid "unchanged"
msgstr ""
-#: add-interactive.c:684 git-add--interactive.perl:641
+#: add-interactive.c:686 git-add--interactive.perl:641
msgid "Update"
msgstr ""
-#: add-interactive.c:701 add-interactive.c:889
+#: add-interactive.c:703 add-interactive.c:891
#, c-format
msgid "could not stage '%s'"
msgstr ""
-#: add-interactive.c:707 add-interactive.c:896 reset.c:89 sequencer.c:3713
+#: add-interactive.c:709 add-interactive.c:898 reset.c:160 sequencer.c:3709
msgid "could not write index"
msgstr ""
-#: add-interactive.c:710 git-add--interactive.perl:626
+#: add-interactive.c:712 git-add--interactive.perl:626
#, c-format, perl-format
msgid "updated %d path\n"
msgid_plural "updated %d paths\n"
msgstr[0] ""
msgstr[1] ""
-#: add-interactive.c:728 git-add--interactive.perl:676
+#: add-interactive.c:730 git-add--interactive.perl:676
#, c-format, perl-format
msgid "note: %s is untracked now.\n"
msgstr ""
-#: add-interactive.c:733 apply.c:4151 builtin/checkout.c:306
+#: add-interactive.c:735 apply.c:4133 builtin/checkout.c:311
#: builtin/reset.c:167
#, c-format
msgid "make_cache_entry failed for path '%s'"
msgstr ""
-#: add-interactive.c:763 git-add--interactive.perl:653
+#: add-interactive.c:765 git-add--interactive.perl:653
msgid "Revert"
msgstr ""
-#: add-interactive.c:779
+#: add-interactive.c:781
msgid "Could not parse HEAD^{tree}"
msgstr ""
-#: add-interactive.c:817 git-add--interactive.perl:629
+#: add-interactive.c:819 git-add--interactive.perl:629
#, c-format, perl-format
msgid "reverted %d path\n"
msgid_plural "reverted %d paths\n"
msgstr[0] ""
msgstr[1] ""
-#: add-interactive.c:868 git-add--interactive.perl:693
+#: add-interactive.c:870 git-add--interactive.perl:693
#, c-format
msgid "No untracked files.\n"
msgstr ""
-#: add-interactive.c:872 git-add--interactive.perl:687
+#: add-interactive.c:874 git-add--interactive.perl:687
msgid "Add untracked"
msgstr ""
-#: add-interactive.c:899 git-add--interactive.perl:623
+#: add-interactive.c:901 git-add--interactive.perl:623
#, c-format, perl-format
msgid "added %d path\n"
msgid_plural "added %d paths\n"
msgstr[0] ""
msgstr[1] ""
-#: add-interactive.c:929
+#: add-interactive.c:931
#, c-format
msgid "ignoring unmerged: %s"
msgstr ""
-#: add-interactive.c:941 add-patch.c:1752 git-add--interactive.perl:1371
+#: add-interactive.c:943 add-patch.c:1758 git-add--interactive.perl:1371
#, c-format
msgid "Only binary files changed.\n"
msgstr ""
-#: add-interactive.c:943 add-patch.c:1750 git-add--interactive.perl:1373
+#: add-interactive.c:945 add-patch.c:1756 git-add--interactive.perl:1373
#, c-format
msgid "No changes.\n"
msgstr ""
-#: add-interactive.c:947 git-add--interactive.perl:1381
+#: add-interactive.c:949 git-add--interactive.perl:1381
msgid "Patch update"
msgstr ""
-#: add-interactive.c:986 git-add--interactive.perl:1794
+#: add-interactive.c:988 git-add--interactive.perl:1794
msgid "Review diff"
msgstr ""
-#: add-interactive.c:1014
+#: add-interactive.c:1016
msgid "show paths with changes"
msgstr ""
-#: add-interactive.c:1016
+#: add-interactive.c:1018
msgid "add working tree state to the staged set of changes"
msgstr ""
-#: add-interactive.c:1018
+#: add-interactive.c:1020
msgid "revert staged set of changes back to the HEAD version"
msgstr ""
-#: add-interactive.c:1020
+#: add-interactive.c:1022
msgid "pick hunks and update selectively"
msgstr ""
-#: add-interactive.c:1022
+#: add-interactive.c:1024
msgid "view diff between HEAD and index"
msgstr ""
-#: add-interactive.c:1024
+#: add-interactive.c:1026
msgid "add contents of untracked files to the staged set of changes"
msgstr ""
-#: add-interactive.c:1032 add-interactive.c:1081
+#: add-interactive.c:1034 add-interactive.c:1083
msgid "Prompt help:"
msgstr ""
-#: add-interactive.c:1034
+#: add-interactive.c:1036
msgid "select a single item"
msgstr ""
-#: add-interactive.c:1036
+#: add-interactive.c:1038
msgid "select a range of items"
msgstr ""
-#: add-interactive.c:1038
+#: add-interactive.c:1040
msgid "select multiple ranges"
msgstr ""
-#: add-interactive.c:1040 add-interactive.c:1085
+#: add-interactive.c:1042 add-interactive.c:1087
msgid "select item based on unique prefix"
msgstr ""
-#: add-interactive.c:1042
+#: add-interactive.c:1044
msgid "unselect specified items"
msgstr ""
-#: add-interactive.c:1044
+#: add-interactive.c:1046
msgid "choose all items"
msgstr ""
-#: add-interactive.c:1046
+#: add-interactive.c:1048
msgid "(empty) finish selecting"
msgstr ""
-#: add-interactive.c:1083
+#: add-interactive.c:1085
msgid "select a numbered item"
msgstr ""
-#: add-interactive.c:1087
+#: add-interactive.c:1089
msgid "(empty) select nothing"
msgstr ""
-#: add-interactive.c:1095 builtin/clean.c:839 git-add--interactive.perl:1898
+#: add-interactive.c:1097 builtin/clean.c:839 git-add--interactive.perl:1898
msgid "*** Commands ***"
msgstr ""
-#: add-interactive.c:1096 builtin/clean.c:840 git-add--interactive.perl:1895
+#: add-interactive.c:1098 builtin/clean.c:840 git-add--interactive.perl:1895
msgid "What now"
msgstr ""
-#: add-interactive.c:1148 git-add--interactive.perl:213
+#: add-interactive.c:1150 git-add--interactive.perl:213
msgid "staged"
msgstr ""
-#: add-interactive.c:1148 git-add--interactive.perl:213
+#: add-interactive.c:1150 git-add--interactive.perl:213
msgid "unstaged"
msgstr ""
-#: add-interactive.c:1148 apply.c:5020 apply.c:5023 builtin/am.c:2367
-#: builtin/am.c:2370 builtin/bugreport.c:107 builtin/clone.c:128
-#: builtin/fetch.c:153 builtin/merge.c:287 builtin/pull.c:194
-#: builtin/submodule--helper.c:404 builtin/submodule--helper.c:1858
-#: builtin/submodule--helper.c:1861 builtin/submodule--helper.c:2504
-#: builtin/submodule--helper.c:2507 builtin/submodule--helper.c:2574
-#: builtin/submodule--helper.c:2579 builtin/submodule--helper.c:2812
+#: add-interactive.c:1150 apply.c:5002 apply.c:5005 builtin/am.c:2370
+#: builtin/am.c:2373 builtin/bugreport.c:107 builtin/clone.c:132
+#: builtin/fetch.c:154 builtin/merge.c:287 builtin/pull.c:194
+#: builtin/submodule--helper.c:412 builtin/submodule--helper.c:1872
+#: builtin/submodule--helper.c:1875 builtin/submodule--helper.c:2709
+#: builtin/submodule--helper.c:2712 builtin/submodule--helper.c:2891
#: git-add--interactive.perl:213
msgid "path"
msgstr ""
-#: add-interactive.c:1155
+#: add-interactive.c:1157
msgid "could not refresh index"
msgstr ""
-#: add-interactive.c:1169 builtin/clean.c:804 git-add--interactive.perl:1805
+#: add-interactive.c:1171 builtin/clean.c:804 git-add--interactive.perl:1805
#, c-format
msgid "Bye.\n"
msgstr ""
@@ -485,37 +484,37 @@ msgstr ""
msgid "could not parse colored hunk header '%.*s'"
msgstr ""
-#: add-patch.c:420
+#: add-patch.c:431
msgid "could not parse diff"
msgstr ""
-#: add-patch.c:439
+#: add-patch.c:450
msgid "could not parse colored diff"
msgstr ""
-#: add-patch.c:453
+#: add-patch.c:464
#, c-format
msgid "failed to run '%s'"
msgstr ""
-#: add-patch.c:612
+#: add-patch.c:618
msgid "mismatched output from interactive.diffFilter"
msgstr ""
-#: add-patch.c:613
+#: add-patch.c:619
msgid ""
"Your filter must maintain a one-to-one correspondence\n"
"between its input and output lines."
msgstr ""
-#: add-patch.c:791
+#: add-patch.c:797
#, c-format
msgid ""
"expected context line #%d in\n"
"%.*s"
msgstr ""
-#: add-patch.c:806
+#: add-patch.c:812
#, c-format
msgid ""
"hunks do not overlap:\n"
@@ -524,11 +523,11 @@ msgid ""
"%.*s"
msgstr ""
-#: add-patch.c:1082 git-add--interactive.perl:1115
+#: add-patch.c:1088 git-add--interactive.perl:1115
msgid "Manual hunk edit mode -- see bottom for a quick guide.\n"
msgstr ""
-#: add-patch.c:1086
+#: add-patch.c:1092
#, c-format
msgid ""
"---\n"
@@ -538,18 +537,18 @@ msgid ""
msgstr ""
#. TRANSLATORS: 'it' refers to the patch mentioned in the previous messages.
-#: add-patch.c:1100 git-add--interactive.perl:1129
+#: add-patch.c:1106 git-add--interactive.perl:1129
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:1133
+#: add-patch.c:1139
msgid "could not parse hunk header"
msgstr ""
-#: add-patch.c:1178
+#: add-patch.c:1184
msgid "'git apply --cached' failed"
msgstr ""
@@ -565,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:1247 git-add--interactive.perl:1244
+#: add-patch.c:1253 git-add--interactive.perl:1244
msgid ""
"Your edited hunk does not apply. Edit again (saying \"no\" discards!) [y/n]? "
msgstr ""
-#: add-patch.c:1290
+#: add-patch.c:1296
msgid "The selected hunks do not apply to the index!"
msgstr ""
-#: add-patch.c:1291 git-add--interactive.perl:1348
+#: add-patch.c:1297 git-add--interactive.perl:1348
msgid "Apply them to the worktree anyway? "
msgstr ""
-#: add-patch.c:1298 git-add--interactive.perl:1351
+#: add-patch.c:1304 git-add--interactive.perl:1351
msgid "Nothing was applied.\n"
msgstr ""
-#: add-patch.c:1355
+#: add-patch.c:1361
msgid ""
"j - leave this hunk undecided, see next undecided hunk\n"
"J - leave this hunk undecided, see next hunk\n"
@@ -595,136 +594,136 @@ msgid ""
"? - print help\n"
msgstr ""
-#: add-patch.c:1517 add-patch.c:1527
+#: add-patch.c:1523 add-patch.c:1533
msgid "No previous hunk"
msgstr ""
-#: add-patch.c:1522 add-patch.c:1532
+#: add-patch.c:1528 add-patch.c:1538
msgid "No next hunk"
msgstr ""
-#: add-patch.c:1538
+#: add-patch.c:1544
msgid "No other hunks to goto"
msgstr ""
-#: add-patch.c:1549 git-add--interactive.perl:1608
+#: add-patch.c:1555 git-add--interactive.perl:1608
msgid "go to which hunk (<ret> to see more)? "
msgstr ""
-#: add-patch.c:1550 git-add--interactive.perl:1610
+#: add-patch.c:1556 git-add--interactive.perl:1610
msgid "go to which hunk? "
msgstr ""
-#: add-patch.c:1561
+#: add-patch.c:1567
#, c-format
msgid "Invalid number: '%s'"
msgstr ""
-#: add-patch.c:1566
+#: add-patch.c:1572
#, c-format
msgid "Sorry, only %d hunk available."
msgid_plural "Sorry, only %d hunks available."
msgstr[0] ""
msgstr[1] ""
-#: add-patch.c:1575
+#: add-patch.c:1581
msgid "No other hunks to search"
msgstr ""
-#: add-patch.c:1581 git-add--interactive.perl:1663
+#: add-patch.c:1587 git-add--interactive.perl:1663
msgid "search for regex? "
msgstr ""
-#: add-patch.c:1596
+#: add-patch.c:1602
#, c-format
msgid "Malformed search regexp %s: %s"
msgstr ""
-#: add-patch.c:1613
+#: add-patch.c:1619
msgid "No hunk matches the given pattern"
msgstr ""
-#: add-patch.c:1620
+#: add-patch.c:1626
msgid "Sorry, cannot split this hunk"
msgstr ""
-#: add-patch.c:1624
+#: add-patch.c:1630
#, c-format
msgid "Split into %d hunks."
msgstr ""
-#: add-patch.c:1628
+#: add-patch.c:1634
msgid "Sorry, cannot edit this hunk"
msgstr ""
-#: add-patch.c:1680
+#: add-patch.c:1686
msgid "'git apply' failed"
msgstr ""
-#: advice.c:78
+#: advice.c:81
#, c-format
msgid ""
"\n"
"Disable this message with \"git config advice.%s false\""
msgstr ""
-#: advice.c:94
+#: advice.c:97
#, c-format
msgid "%shint: %.*s%s\n"
msgstr ""
-#: advice.c:178
+#: advice.c:181
msgid "Cherry-picking is not possible because you have unmerged files."
msgstr ""
-#: advice.c:180
+#: advice.c:183
msgid "Committing is not possible because you have unmerged files."
msgstr ""
-#: advice.c:182
+#: advice.c:185
msgid "Merging is not possible because you have unmerged files."
msgstr ""
-#: advice.c:184
+#: advice.c:187
msgid "Pulling is not possible because you have unmerged files."
msgstr ""
-#: advice.c:186
+#: advice.c:189
msgid "Reverting is not possible because you have unmerged files."
msgstr ""
-#: advice.c:188
+#: advice.c:191
#, c-format
msgid "It is not possible to %s because you have unmerged files."
msgstr ""
-#: advice.c:196
+#: advice.c:199
msgid ""
"Fix them up in the work tree, and then use 'git add/rm <file>'\n"
"as appropriate to mark resolution and make a commit."
msgstr ""
-#: advice.c:204
+#: advice.c:207
msgid "Exiting because of an unresolved conflict."
msgstr ""
-#: advice.c:209 builtin/merge.c:1382
+#: advice.c:212 builtin/merge.c:1388
msgid "You have not concluded your merge (MERGE_HEAD exists)."
msgstr ""
-#: advice.c:211
+#: advice.c:214
msgid "Please, commit your changes before merging."
msgstr ""
-#: advice.c:212
+#: advice.c:215
msgid "Exiting because of unfinished merge."
msgstr ""
-#: advice.c:217
+#: advice.c:220
msgid "Not possible to fast-forward, aborting."
msgstr ""
-#: advice.c:227
+#: advice.c:230
#, c-format
msgid ""
"The following paths and/or pathspecs matched paths that exist\n"
@@ -732,14 +731,14 @@ msgid ""
"updated in the index:\n"
msgstr ""
-#: advice.c:234
+#: advice.c:237
msgid ""
"If you intend to update such entries, try one of the following:\n"
"* Use the --sparse option.\n"
"* Disable or modify the sparsity rules."
msgstr ""
-#: advice.c:242
+#: advice.c:245
#, c-format
msgid ""
"Note: switching to '%s'.\n"
@@ -780,80 +779,83 @@ msgstr ""
msgid "unrecognized whitespace ignore option '%s'"
msgstr ""
-#: apply.c:136 archive.c:584 range-diff.c:559 revision.c:2303 revision.c:2307
-#: revision.c:2316 revision.c:2321 revision.c:2527 revision.c:2870
-#: revision.c:2874 revision.c:2880 revision.c:2883 revision.c:2885
-#: builtin/add.c:510 builtin/add.c:512 builtin/add.c:529 builtin/add.c:541
-#: builtin/branch.c:727 builtin/checkout.c:467 builtin/checkout.c:470
-#: builtin/checkout.c:1644 builtin/checkout.c:1754 builtin/checkout.c:1757
-#: builtin/clone.c:906 builtin/commit.c:358 builtin/commit.c:361
-#: builtin/commit.c:1196 builtin/describe.c:593 builtin/diff-tree.c:155
-#: builtin/difftool.c:733 builtin/fast-export.c:1245 builtin/fetch.c:2038
-#: builtin/fetch.c:2043 builtin/index-pack.c:1852 builtin/init-db.c:560
-#: builtin/log.c:1946 builtin/log.c:1948 builtin/ls-files.c:778
-#: builtin/merge.c:1403 builtin/merge.c:1405 builtin/pack-objects.c:4073
-#: builtin/push.c:592 builtin/push.c:630 builtin/push.c:636 builtin/push.c:641
-#: builtin/rebase.c:1193 builtin/rebase.c:1195 builtin/rebase.c:1199
-#: builtin/repack.c:684 builtin/repack.c:715 builtin/reset.c:426
-#: builtin/reset.c:462 builtin/rev-list.c:541 builtin/show-branch.c:710
-#: builtin/stash.c:1707 builtin/stash.c:1710 builtin/submodule--helper.c:1316
-#: builtin/submodule--helper.c:2975 builtin/tag.c:526 builtin/tag.c:572
-#: builtin/worktree.c:702
+#: apply.c:138 archive.c:584 parse-options.c:1122 range-diff.c:555
+#: revision.c:2314 revision.c:2318 revision.c:2327 revision.c:2332
+#: revision.c:2560 revision.c:2895 revision.c:2899 revision.c:2907
+#: revision.c:2910 revision.c:2912 builtin/add.c:507 builtin/add.c:509
+#: builtin/add.c:515 builtin/add.c:527 builtin/branch.c:755
+#: builtin/checkout.c:472 builtin/checkout.c:475 builtin/checkout.c:1663
+#: builtin/checkout.c:1773 builtin/checkout.c:1776 builtin/clone.c:921
+#: builtin/commit.c:359 builtin/commit.c:362 builtin/commit.c:1200
+#: builtin/commit.c:1256 builtin/commit.c:1273 builtin/describe.c:593
+#: builtin/diff-tree.c:155 builtin/difftool.c:733 builtin/fast-export.c:1245
+#: builtin/fetch.c:2141 builtin/fetch.c:2162 builtin/fetch.c:2167
+#: builtin/help.c:602 builtin/index-pack.c:1858 builtin/init-db.c:560
+#: builtin/log.c:1968 builtin/log.c:1970 builtin/ls-files.c:778
+#: builtin/merge-base.c:163 builtin/merge-base.c:169 builtin/merge.c:1409
+#: builtin/merge.c:1411 builtin/pack-objects.c:4098 builtin/push.c:592
+#: builtin/push.c:630 builtin/push.c:636 builtin/push.c:641
+#: builtin/rebase.c:1221 builtin/rebase.c:1223 builtin/rebase.c:1227
+#: builtin/repack.c:688 builtin/repack.c:719 builtin/reset.c:433
+#: builtin/reset.c:469 builtin/rev-list.c:537 builtin/show-branch.c:711
+#: builtin/stash.c:1696 builtin/stash.c:1699 builtin/submodule--helper.c:1328
+#: builtin/submodule--helper.c:3054 builtin/tag.c:527 builtin/tag.c:573
+#: builtin/worktree.c:779
#, c-format
msgid "options '%s' and '%s' cannot be used together"
msgstr ""
-#: apply.c:139 apply.c:150 apply.c:153
+#: apply.c:141 apply.c:152 apply.c:155
#, c-format
msgid "'%s' outside a repository"
msgstr ""
-#: apply.c:800
+#: apply.c:807
#, c-format
msgid "Cannot prepare timestamp regexp %s"
msgstr ""
-#: apply.c:809
+#: apply.c:816
#, c-format
msgid "regexec returned %d for input: %s"
msgstr ""
-#: apply.c:883
+#: apply.c:890
#, c-format
msgid "unable to find filename in patch at line %d"
msgstr ""
-#: apply.c:921
+#: apply.c:928
#, c-format
msgid "git apply: bad git-diff - expected /dev/null, got %s on line %d"
msgstr ""
-#: apply.c:927
+#: apply.c:934
#, c-format
msgid "git apply: bad git-diff - inconsistent new filename on line %d"
msgstr ""
-#: apply.c:928
+#: apply.c:935
#, c-format
msgid "git apply: bad git-diff - inconsistent old filename on line %d"
msgstr ""
-#: apply.c:933
+#: apply.c:940
#, c-format
msgid "git apply: bad git-diff - expected /dev/null on line %d"
msgstr ""
-#: apply.c:962
+#: apply.c:969
#, c-format
msgid "invalid mode on line %d: %s"
msgstr ""
-#: apply.c:1281
+#: apply.c:1288
#, c-format
msgid "inconsistent header lines %d and %d"
msgstr ""
-#: apply.c:1371
+#: apply.c:1378
#, c-format
msgid ""
"git diff header lacks filename information when removing %d leading pathname "
@@ -864,538 +866,538 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: apply.c:1384
+#: apply.c:1391
#, c-format
msgid "git diff header lacks filename information (line %d)"
msgstr ""
-#: apply.c:1480
+#: apply.c:1487
#, c-format
msgid "recount: unexpected line: %.*s"
msgstr ""
-#: apply.c:1549
+#: apply.c:1556
#, c-format
msgid "patch fragment without header at line %d: %.*s"
msgstr ""
-#: apply.c:1752
+#: apply.c:1759
msgid "new file depends on old contents"
msgstr ""
-#: apply.c:1754
+#: apply.c:1761
msgid "deleted file still has contents"
msgstr ""
-#: apply.c:1788
+#: apply.c:1795
#, c-format
msgid "corrupt patch at line %d"
msgstr ""
-#: apply.c:1825
+#: apply.c:1832
#, c-format
msgid "new file %s depends on old contents"
msgstr ""
-#: apply.c:1827
+#: apply.c:1834
#, c-format
msgid "deleted file %s still has contents"
msgstr ""
-#: apply.c:1830
+#: apply.c:1837
#, c-format
msgid "** warning: file %s becomes empty but is not deleted"
msgstr ""
-#: apply.c:1978
+#: apply.c:1985
#, c-format
msgid "corrupt binary patch at line %d: %.*s"
msgstr ""
-#: apply.c:2015
+#: apply.c:2022
#, c-format
msgid "unrecognized binary patch at line %d"
msgstr ""
-#: apply.c:2177
+#: apply.c:2184
#, c-format
msgid "patch with only garbage at line %d"
msgstr ""
-#: apply.c:2263
+#: apply.c:2270
#, c-format
msgid "unable to read symlink %s"
msgstr ""
-#: apply.c:2267
+#: apply.c:2274
#, c-format
msgid "unable to open or read %s"
msgstr ""
-#: apply.c:2936
+#: apply.c:2943
#, c-format
msgid "invalid start of line: '%c'"
msgstr ""
-#: apply.c:3057
+#: apply.c:3064
#, c-format
msgid "Hunk #%d succeeded at %d (offset %d line)."
msgid_plural "Hunk #%d succeeded at %d (offset %d lines)."
msgstr[0] ""
msgstr[1] ""
-#: apply.c:3069
+#: apply.c:3076
#, c-format
msgid "Context reduced to (%ld/%ld) to apply fragment at %d"
msgstr ""
-#: apply.c:3075
+#: apply.c:3082
#, c-format
msgid ""
"while searching for:\n"
"%.*s"
msgstr ""
-#: apply.c:3097
+#: apply.c:3104
#, c-format
msgid "missing binary patch data for '%s'"
msgstr ""
-#: apply.c:3105
+#: apply.c:3112
#, c-format
msgid "cannot reverse-apply a binary patch without the reverse hunk to '%s'"
msgstr ""
-#: apply.c:3152
+#: apply.c:3159
#, c-format
msgid "cannot apply binary patch to '%s' without full index line"
msgstr ""
-#: apply.c:3163
+#: apply.c:3170
#, c-format
msgid ""
"the patch applies to '%s' (%s), which does not match the current contents."
msgstr ""
-#: apply.c:3171
+#: apply.c:3178
#, c-format
msgid "the patch applies to an empty '%s' but it is not empty"
msgstr ""
-#: apply.c:3189
+#: apply.c:3196
#, c-format
msgid "the necessary postimage %s for '%s' cannot be read"
msgstr ""
-#: apply.c:3202
+#: apply.c:3209
#, c-format
msgid "binary patch does not apply to '%s'"
msgstr ""
-#: apply.c:3209
+#: apply.c:3216
#, c-format
msgid "binary patch to '%s' creates incorrect result (expecting %s, got %s)"
msgstr ""
-#: apply.c:3230
+#: apply.c:3237
#, c-format
msgid "patch failed: %s:%ld"
msgstr ""
-#: apply.c:3353
+#: apply.c:3360
#, c-format
msgid "cannot checkout %s"
msgstr ""
-#: apply.c:3405 apply.c:3416 apply.c:3462 midx.c:104 pack-revindex.c:214
-#: setup.c:309
+#: apply.c:3412 apply.c:3423 apply.c:3469 midx.c:105 pack-revindex.c:214
+#: setup.c:310
#, c-format
msgid "failed to read %s"
msgstr ""
-#: apply.c:3413
+#: apply.c:3420
#, c-format
msgid "reading from '%s' beyond a symbolic link"
msgstr ""
-#: apply.c:3442 apply.c:3711
+#: apply.c:3449 apply.c:3721
#, c-format
msgid "path %s has been renamed/deleted"
msgstr ""
-#: apply.c:3549 apply.c:3726
+#: apply.c:3559 apply.c:3736
#, c-format
msgid "%s: does not exist in index"
msgstr ""
-#: apply.c:3558 apply.c:3734 apply.c:3978
+#: apply.c:3568 apply.c:3744 apply.c:3960
#, c-format
msgid "%s: does not match index"
msgstr ""
-#: apply.c:3595
+#: apply.c:3605
msgid "repository lacks the necessary blob to perform 3-way merge."
msgstr ""
-#: apply.c:3598
+#: apply.c:3608
#, c-format
msgid "Performing three-way merge...\n"
msgstr ""
-#: apply.c:3614 apply.c:3618
+#: apply.c:3624 apply.c:3628
#, c-format
msgid "cannot read the current contents of '%s'"
msgstr ""
-#: apply.c:3630
+#: apply.c:3640
#, c-format
msgid "Failed to perform three-way merge...\n"
msgstr ""
-#: apply.c:3644
+#: apply.c:3654
#, c-format
msgid "Applied patch to '%s' with conflicts.\n"
msgstr ""
-#: apply.c:3649
+#: apply.c:3659
#, c-format
msgid "Applied patch to '%s' cleanly.\n"
msgstr ""
-#: apply.c:3666
+#: apply.c:3676
#, c-format
msgid "Falling back to direct application...\n"
msgstr ""
-#: apply.c:3678
+#: apply.c:3688
msgid "removal patch leaves file contents"
msgstr ""
-#: apply.c:3751
+#: apply.c:3761
#, c-format
msgid "%s: wrong type"
msgstr ""
-#: apply.c:3753
+#: apply.c:3763
#, c-format
msgid "%s has type %o, expected %o"
msgstr ""
-#: apply.c:3918 apply.c:3920 read-cache.c:889 read-cache.c:918
-#: read-cache.c:1381
+#: apply.c:3900 apply.c:3902 read-cache.c:903 read-cache.c:932
+#: read-cache.c:1399
#, c-format
msgid "invalid path '%s'"
msgstr ""
-#: apply.c:3976
+#: apply.c:3958
#, c-format
msgid "%s: already exists in index"
msgstr ""
-#: apply.c:3980
+#: apply.c:3962
#, c-format
msgid "%s: already exists in working directory"
msgstr ""
-#: apply.c:4000
+#: apply.c:3982
#, c-format
msgid "new mode (%o) of %s does not match old mode (%o)"
msgstr ""
-#: apply.c:4005
+#: apply.c:3987
#, c-format
msgid "new mode (%o) of %s does not match old mode (%o) of %s"
msgstr ""
-#: apply.c:4025
+#: apply.c:4007
#, c-format
msgid "affected file '%s' is beyond a symbolic link"
msgstr ""
-#: apply.c:4029
+#: apply.c:4011
#, c-format
msgid "%s: patch does not apply"
msgstr ""
-#: apply.c:4044
+#: apply.c:4026
#, c-format
msgid "Checking patch %s..."
msgstr ""
-#: apply.c:4136
+#: apply.c:4118
#, c-format
msgid "sha1 information is lacking or useless for submodule %s"
msgstr ""
-#: apply.c:4143
+#: apply.c:4125
#, c-format
msgid "mode change for %s, which is not in current HEAD"
msgstr ""
-#: apply.c:4146
+#: apply.c:4128
#, c-format
msgid "sha1 information is lacking or useless (%s)."
msgstr ""
-#: apply.c:4155
+#: apply.c:4137
#, c-format
msgid "could not add %s to temporary index"
msgstr ""
-#: apply.c:4165
+#: apply.c:4147
#, c-format
msgid "could not write temporary index to %s"
msgstr ""
-#: apply.c:4303
+#: apply.c:4285
#, c-format
msgid "unable to remove %s from index"
msgstr ""
-#: apply.c:4337
+#: apply.c:4319
#, c-format
msgid "corrupt patch for submodule %s"
msgstr ""
-#: apply.c:4343
+#: apply.c:4325
#, c-format
msgid "unable to stat newly created file '%s'"
msgstr ""
-#: apply.c:4351
+#: apply.c:4333
#, c-format
msgid "unable to create backing store for newly created file %s"
msgstr ""
-#: apply.c:4357 apply.c:4502
+#: apply.c:4339 apply.c:4484
#, c-format
msgid "unable to add cache entry for %s"
msgstr ""
-#: apply.c:4400 builtin/bisect--helper.c:540 builtin/gc.c:2258
+#: apply.c:4382 builtin/bisect--helper.c:540 builtin/gc.c:2258
#: builtin/gc.c:2293
#, c-format
msgid "failed to write to '%s'"
msgstr ""
-#: apply.c:4404
+#: apply.c:4386
#, c-format
msgid "closing file '%s'"
msgstr ""
-#: apply.c:4474
+#: apply.c:4456
#, c-format
msgid "unable to write file '%s' mode %o"
msgstr ""
-#: apply.c:4572
+#: apply.c:4554
#, c-format
msgid "Applied patch %s cleanly."
msgstr ""
-#: apply.c:4580
+#: apply.c:4562
msgid "internal error"
msgstr ""
-#: apply.c:4583
+#: apply.c:4565
#, c-format
msgid "Applying patch %%s with %d reject..."
msgid_plural "Applying patch %%s with %d rejects..."
msgstr[0] ""
msgstr[1] ""
-#: apply.c:4594
+#: apply.c:4576
#, c-format
msgid "truncating .rej filename to %.*s.rej"
msgstr ""
-#: apply.c:4602
+#: apply.c:4584
#, c-format
msgid "cannot open %s"
msgstr ""
-#: apply.c:4616
+#: apply.c:4598
#, c-format
msgid "Hunk #%d applied cleanly."
msgstr ""
-#: apply.c:4620
+#: apply.c:4602
#, c-format
msgid "Rejected hunk #%d."
msgstr ""
-#: apply.c:4749
+#: apply.c:4731
#, c-format
msgid "Skipped patch '%s'."
msgstr ""
-#: apply.c:4758
+#: apply.c:4740
msgid "No valid patches in input (allow with \"--allow-empty\")"
msgstr ""
-#: apply.c:4779
+#: apply.c:4761
msgid "unable to read index file"
msgstr ""
-#: apply.c:4936
+#: apply.c:4918
#, c-format
msgid "can't open patch '%s': %s"
msgstr ""
-#: apply.c:4963
+#: apply.c:4945
#, c-format
msgid "squelched %d whitespace error"
msgid_plural "squelched %d whitespace errors"
msgstr[0] ""
msgstr[1] ""
-#: apply.c:4969 apply.c:4984
+#: apply.c:4951 apply.c:4966
#, c-format
msgid "%d line adds whitespace errors."
msgid_plural "%d lines add whitespace errors."
msgstr[0] ""
msgstr[1] ""
-#: apply.c:4977
+#: apply.c:4959
#, c-format
msgid "%d line applied after fixing whitespace errors."
msgid_plural "%d lines applied after fixing whitespace errors."
msgstr[0] ""
msgstr[1] ""
-#: apply.c:4993 builtin/add.c:704 builtin/mv.c:338 builtin/rm.c:430
+#: apply.c:4975 builtin/add.c:690 builtin/mv.c:338 builtin/rm.c:430
msgid "Unable to write new index file"
msgstr ""
-#: apply.c:5021
+#: apply.c:5003
msgid "don't apply changes matching the given path"
msgstr ""
-#: apply.c:5024
+#: apply.c:5006
msgid "apply changes matching the given path"
msgstr ""
-#: apply.c:5026 builtin/am.c:2376
+#: apply.c:5008 builtin/am.c:2379
msgid "num"
msgstr ""
-#: apply.c:5027
+#: apply.c:5009
msgid "remove <num> leading slashes from traditional diff paths"
msgstr ""
-#: apply.c:5030
+#: apply.c:5012
msgid "ignore additions made by the patch"
msgstr ""
-#: apply.c:5032
+#: apply.c:5014
msgid "instead of applying the patch, output diffstat for the input"
msgstr ""
-#: apply.c:5036
+#: apply.c:5018
msgid "show number of added and deleted lines in decimal notation"
msgstr ""
-#: apply.c:5038
+#: apply.c:5020
msgid "instead of applying the patch, output a summary for the input"
msgstr ""
-#: apply.c:5040
+#: apply.c:5022
msgid "instead of applying the patch, see if the patch is applicable"
msgstr ""
-#: apply.c:5042
+#: apply.c:5024
msgid "make sure the patch is applicable to the current index"
msgstr ""
-#: apply.c:5044
+#: apply.c:5026
msgid "mark new files with `git add --intent-to-add`"
msgstr ""
-#: apply.c:5046
+#: apply.c:5028
msgid "apply a patch without touching the working tree"
msgstr ""
-#: apply.c:5048
+#: apply.c:5030
msgid "accept a patch that touches outside the working area"
msgstr ""
-#: apply.c:5051
+#: apply.c:5033
msgid "also apply the patch (use with --stat/--summary/--check)"
msgstr ""
-#: apply.c:5053
+#: apply.c:5035
msgid "attempt three-way merge, fall back on normal patch if that fails"
msgstr ""
-#: apply.c:5055
+#: apply.c:5037
msgid "build a temporary index based on embedded index information"
msgstr ""
-#: apply.c:5058 builtin/checkout-index.c:196
+#: apply.c:5040 builtin/checkout-index.c:230
msgid "paths are separated with NUL character"
msgstr ""
-#: apply.c:5060
+#: apply.c:5042
msgid "ensure at least <n> lines of context match"
msgstr ""
-#: apply.c:5061 builtin/am.c:2352 builtin/am.c:2355
+#: apply.c:5043 builtin/am.c:2355 builtin/am.c:2358
#: builtin/interpret-trailers.c:98 builtin/interpret-trailers.c:100
-#: builtin/interpret-trailers.c:102 builtin/pack-objects.c:3960
-#: builtin/rebase.c:1051
+#: builtin/interpret-trailers.c:102 builtin/pack-objects.c:3983
+#: builtin/rebase.c:1079
msgid "action"
msgstr ""
-#: apply.c:5062
+#: apply.c:5044
msgid "detect new or modified lines that have whitespace errors"
msgstr ""
-#: apply.c:5065 apply.c:5068
+#: apply.c:5047 apply.c:5050
msgid "ignore changes in whitespace when finding context"
msgstr ""
-#: apply.c:5071
+#: apply.c:5053
msgid "apply the patch in reverse"
msgstr ""
-#: apply.c:5073
+#: apply.c:5055
msgid "don't expect at least one line of context"
msgstr ""
-#: apply.c:5075
+#: apply.c:5057
msgid "leave the rejected hunks in corresponding *.rej files"
msgstr ""
-#: apply.c:5077
+#: apply.c:5059
msgid "allow overlapping hunks"
msgstr ""
-#: apply.c:5080
+#: apply.c:5062
msgid "tolerate incorrectly detected missing new-line at the end of file"
msgstr ""
-#: apply.c:5083
+#: apply.c:5065
msgid "do not trust the line counts in the hunk headers"
msgstr ""
-#: apply.c:5085 builtin/am.c:2364
+#: apply.c:5067 builtin/am.c:2367
msgid "root"
msgstr ""
-#: apply.c:5086
+#: apply.c:5068
msgid "prepend <root> to all filenames"
msgstr ""
-#: apply.c:5089
+#: apply.c:5071
msgid "don't return error for empty patches"
msgstr ""
-#: archive-tar.c:125 archive-zip.c:345
+#: archive-tar.c:125 archive-zip.c:346
#, c-format
msgid "cannot stream blob %s"
msgstr ""
-#: archive-tar.c:265 archive-zip.c:358
+#: archive-tar.c:265 archive-zip.c:359
#, c-format
msgid "unsupported file mode: 0%o (SHA1: %s)"
msgstr ""
@@ -1414,22 +1416,22 @@ msgstr ""
msgid "'%s' filter reported error"
msgstr ""
-#: archive-zip.c:318
+#: archive-zip.c:319
#, c-format
msgid "path is not valid UTF-8: %s"
msgstr ""
-#: archive-zip.c:322
+#: archive-zip.c:323
#, c-format
msgid "path too long (%d chars, SHA1: %s): %s"
msgstr ""
-#: archive-zip.c:469 builtin/pack-objects.c:365 builtin/pack-objects.c:368
+#: archive-zip.c:470 builtin/pack-objects.c:363 builtin/pack-objects.c:366
#, c-format
msgid "deflate error (%d)"
msgstr ""
-#: archive-zip.c:603
+#: archive-zip.c:604
#, c-format
msgid "timestamp too large for this system: %<PRIuMAX>"
msgstr ""
@@ -1438,10 +1440,6 @@ msgstr ""
msgid "git archive [<options>] <tree-ish> [<path>...]"
msgstr ""
-#: archive.c:15
-msgid "git archive --list"
-msgstr ""
-
#: archive.c:16
msgid ""
"git archive --remote <repo> [--exec <cmd>] [<options>] <tree-ish> [<path>...]"
@@ -1452,12 +1450,12 @@ msgid "git archive --remote <repo> [--exec <cmd>] --list"
msgstr ""
#: archive.c:188 archive.c:341 builtin/gc.c:497 builtin/notes.c:238
-#: builtin/tag.c:578
+#: builtin/tag.c:579
#, c-format
msgid "cannot read '%s'"
msgstr ""
-#: archive.c:426 builtin/add.c:215 builtin/add.c:671 builtin/rm.c:334
+#: archive.c:426 builtin/add.c:214 builtin/add.c:657 builtin/rm.c:334
#, c-format
msgid "pathspec '%s' did not match any files"
msgstr ""
@@ -1499,7 +1497,7 @@ msgstr ""
msgid "archive format"
msgstr ""
-#: archive.c:552 builtin/log.c:1790
+#: archive.c:552 builtin/log.c:1809
msgid "prefix"
msgstr ""
@@ -1507,12 +1505,12 @@ msgstr ""
msgid "prepend prefix to each pathname in the archive"
msgstr ""
-#: archive.c:554 archive.c:557 builtin/blame.c:880 builtin/blame.c:884
-#: builtin/blame.c:885 builtin/commit-tree.c:115 builtin/config.c:135
+#: archive.c:554 archive.c:557 builtin/blame.c:881 builtin/blame.c:885
+#: builtin/blame.c:886 builtin/commit-tree.c:115 builtin/config.c:135
#: builtin/fast-export.c:1181 builtin/fast-export.c:1183
-#: builtin/fast-export.c:1187 builtin/grep.c:935 builtin/hash-object.c:103
+#: builtin/fast-export.c:1187 builtin/grep.c:936 builtin/hash-object.c:104
#: builtin/ls-files.c:654 builtin/ls-files.c:657 builtin/notes.c:410
-#: builtin/notes.c:576 builtin/read-tree.c:115 parse-options.h:190
+#: builtin/notes.c:576 builtin/read-tree.c:115 parse-options.h:195
msgid "file"
msgstr ""
@@ -1540,8 +1538,8 @@ msgstr ""
msgid "list supported archive formats"
msgstr ""
-#: archive.c:568 builtin/archive.c:89 builtin/clone.c:118 builtin/clone.c:121
-#: builtin/submodule--helper.c:1870 builtin/submodule--helper.c:2513
+#: archive.c:568 builtin/archive.c:89 builtin/clone.c:122 builtin/clone.c:125
+#: builtin/submodule--helper.c:1884 builtin/submodule--helper.c:2718
msgid "repo"
msgstr ""
@@ -1562,11 +1560,12 @@ msgstr ""
msgid "Unexpected option --remote"
msgstr ""
-#: archive.c:580 fetch-pack.c:300 revision.c:2887 builtin/add.c:544
-#: builtin/add.c:576 builtin/checkout.c:1763 builtin/commit.c:370
-#: builtin/fast-export.c:1230 builtin/index-pack.c:1848 builtin/log.c:2115
-#: builtin/reset.c:435 builtin/reset.c:493 builtin/rm.c:281
-#: builtin/stash.c:1719 builtin/worktree.c:508 http-fetch.c:144
+#: archive.c:580 fetch-pack.c:300 revision.c:2914 builtin/add.c:530
+#: builtin/add.c:562 builtin/checkout.c:1782 builtin/clone.c:1099
+#: builtin/clone.c:1102 builtin/commit.c:371 builtin/fast-export.c:1230
+#: builtin/index-pack.c:1854 builtin/log.c:2140 builtin/reset.c:442
+#: builtin/reset.c:500 builtin/rm.c:281 builtin/stash.c:1708
+#: builtin/worktree.c:580 builtin/worktree.c:781 http-fetch.c:144
#: http-fetch.c:153
#, c-format
msgid "the option '%s' requires '%s'"
@@ -1586,17 +1585,17 @@ msgstr ""
msgid "Argument not supported for format '%s': -%d"
msgstr ""
-#: attr.c:203
+#: attr.c:202
#, c-format
msgid "%.*s is not a valid attribute name"
msgstr ""
-#: attr.c:364
+#: attr.c:363
#, c-format
msgid "%s not allowed: %s:%d"
msgstr ""
-#: attr.c:404
+#: attr.c:403
msgid ""
"Negative patterns are ignored in git attributes\n"
"Use '\\!' for literal leading exclamation."
@@ -1612,33 +1611,33 @@ msgstr ""
msgid "We cannot bisect more!\n"
msgstr ""
-#: bisect.c:764
+#: bisect.c:765
#, c-format
msgid "Not a valid commit name %s"
msgstr ""
-#: bisect.c:789
+#: bisect.c:790
#, c-format
msgid ""
"The merge base %s is bad.\n"
"This means the bug has been fixed between %s and [%s].\n"
msgstr ""
-#: bisect.c:794
+#: bisect.c:795
#, c-format
msgid ""
"The merge base %s is new.\n"
"The property has changed between %s and [%s].\n"
msgstr ""
-#: bisect.c:799
+#: bisect.c:800
#, c-format
msgid ""
"The merge base %s is %s.\n"
"This means the first '%s' commit is between %s and [%s].\n"
msgstr ""
-#: bisect.c:807
+#: bisect.c:808
#, c-format
msgid ""
"Some %s revs are not ancestors of the %s rev.\n"
@@ -1646,7 +1645,7 @@ msgid ""
"Maybe you mistook %s and %s revs?\n"
msgstr ""
-#: bisect.c:820
+#: bisect.c:821
#, c-format
msgid ""
"the merge base between %s and [%s] must be skipped.\n"
@@ -1654,43 +1653,43 @@ msgid ""
"We continue anyway."
msgstr ""
-#: bisect.c:859
+#: bisect.c:860
#, c-format
msgid "Bisecting: a merge base must be tested\n"
msgstr ""
-#: bisect.c:909
+#: bisect.c:910
#, c-format
msgid "a %s revision is needed"
msgstr ""
-#: bisect.c:939
+#: bisect.c:940
#, c-format
msgid "could not create file '%s'"
msgstr ""
-#: bisect.c:985 builtin/merge.c:155
+#: bisect.c:986 builtin/merge.c:155
#, c-format
msgid "could not read file '%s'"
msgstr ""
-#: bisect.c:1025
+#: bisect.c:1026
msgid "reading bisect refs failed"
msgstr ""
-#: bisect.c:1055
+#: bisect.c:1056
#, c-format
msgid "%s was both %s and %s\n"
msgstr ""
-#: bisect.c:1064
+#: bisect.c:1065
#, c-format
msgid ""
"No testable commit found.\n"
"Maybe you started with bad path arguments?\n"
msgstr ""
-#: bisect.c:1093
+#: bisect.c:1094
#, c-format
msgid "(roughly %d step)"
msgid_plural "(roughly %d steps)"
@@ -1700,127 +1699,157 @@ msgstr[1] ""
#. TRANSLATORS: the last %s will be replaced with "(roughly %d
#. steps)" translation.
#.
-#: bisect.c:1099
+#: bisect.c:1100
#, c-format
msgid "Bisecting: %d revision left to test after this %s\n"
msgid_plural "Bisecting: %d revisions left to test after this %s\n"
msgstr[0] ""
msgstr[1] ""
-#: blame.c:2776
+#: blame.c:2773
msgid "--contents and --reverse do not blend well."
msgstr ""
-#: blame.c:2790
+#: blame.c:2787
msgid "cannot use --contents with final commit object name"
msgstr ""
-#: blame.c:2811
+#: blame.c:2808
msgid "--reverse and --first-parent together require specified latest commit"
msgstr ""
-#: blame.c:2820 bundle.c:224 midx.c:1042 ref-filter.c:2370 remote.c:2158
-#: sequencer.c:2352 sequencer.c:4899 submodule.c:883 builtin/commit.c:1114
-#: builtin/log.c:429 builtin/log.c:1036 builtin/log.c:1644 builtin/log.c:2071
-#: builtin/log.c:2362 builtin/merge.c:431 builtin/pack-objects.c:3373
-#: builtin/pack-objects.c:3775 builtin/pack-objects.c:3790
+#: blame.c:2817 bundle.c:231 midx.c:1058 ref-filter.c:2371 remote.c:2157
+#: sequencer.c:2348 sequencer.c:4872 submodule.c:913 builtin/commit.c:1118
+#: builtin/log.c:437 builtin/log.c:1055 builtin/log.c:1663 builtin/log.c:2096
+#: builtin/log.c:2387 builtin/merge.c:431 builtin/pack-objects.c:3381
+#: builtin/pack-objects.c:3781 builtin/pack-objects.c:3796
#: builtin/shortlog.c:255
msgid "revision walk setup failed"
msgstr ""
-#: blame.c:2838
+#: blame.c:2835
msgid ""
"--reverse --first-parent together require range along first-parent chain"
msgstr ""
-#: blame.c:2849
+#: blame.c:2846
#, c-format
msgid "no such path %s in %s"
msgstr ""
-#: blame.c:2860
+#: blame.c:2857
#, c-format
msgid "cannot read blob %s for path %s"
msgstr ""
-#: branch.c:77
+#: branch.c:93
msgid ""
"cannot inherit upstream tracking configuration of multiple refs when "
"rebasing is requested"
msgstr ""
-#: branch.c:88
+#: branch.c:104
#, c-format
msgid "not setting branch '%s' as its own upstream"
msgstr ""
-#: branch.c:144
+#: branch.c:160
#, c-format
msgid "branch '%s' set up to track '%s' by rebasing."
msgstr ""
-#: branch.c:145
+#: branch.c:161
#, c-format
msgid "branch '%s' set up to track '%s'."
msgstr ""
-#: branch.c:148
+#: branch.c:164
#, c-format
msgid "branch '%s' set up to track:"
msgstr ""
-#: branch.c:160
+#: branch.c:176
msgid "unable to write upstream branch configuration"
msgstr ""
-#: branch.c:162
+#: branch.c:178
msgid ""
"\n"
"After fixing the error cause you may try to fix up\n"
"the remote tracking information by invoking:"
msgstr ""
-#: branch.c:203
+#: branch.c:219
#, c-format
msgid "asked to inherit tracking from '%s', but no remote is set"
msgstr ""
-#: branch.c:209
+#: branch.c:225
#, c-format
msgid "asked to inherit tracking from '%s', but no merge configuration is set"
msgstr ""
-#: branch.c:252
+#: branch.c:277
#, c-format
-msgid "not tracking: ambiguous information for ref %s"
+msgid "not tracking: ambiguous information for ref '%s'"
msgstr ""
-#: branch.c:287
+#. TRANSLATORS: This is a line listing a remote with duplicate
+#. refspecs in the advice message below. For RTL languages you'll
+#. probably want to swap the "%s" and leading " " space around.
+#.
+#. TRANSLATORS: This is line item of ambiguous object output
+#. from describe_ambiguous_object() above. For RTL languages
+#. you'll probably want to swap the "%s" and leading " " space
+#. around.
+#.
+#: branch.c:289 object-name.c:464
+#, c-format
+msgid " %s\n"
+msgstr ""
+
+#. TRANSLATORS: The second argument is a \n-delimited list of
+#. duplicate refspecs, composed above.
+#.
+#: branch.c:295
+#, c-format
+msgid ""
+"There are multiple remotes whose fetch refspecs map to the remote\n"
+"tracking ref '%s':\n"
+"%s\n"
+"This is typically a configuration error.\n"
+"\n"
+"To support setting up tracking branches, ensure that\n"
+"different remotes' fetch refspecs map into different\n"
+"tracking namespaces."
+msgstr ""
+
+#: branch.c:344
#, c-format
msgid "'%s' is not a valid branch name"
msgstr ""
-#: branch.c:307
+#: branch.c:364
#, c-format
msgid "a branch named '%s' already exists"
msgstr ""
-#: branch.c:313
+#: branch.c:370
#, c-format
msgid "cannot force update the branch '%s' checked out at '%s'"
msgstr ""
-#: branch.c:336
+#: branch.c:393
#, c-format
msgid "cannot set up tracking information; starting point '%s' is not a branch"
msgstr ""
-#: branch.c:338
+#: branch.c:395
#, c-format
msgid "the requested upstream branch '%s' does not exist"
msgstr ""
-#: branch.c:340
+#: branch.c:397
msgid ""
"\n"
"If you are planning on basing your work on an upstream\n"
@@ -1832,126 +1861,143 @@ msgid ""
"\"git push -u\" to set the upstream config as you push."
msgstr ""
-#: branch.c:384 builtin/replace.c:321 builtin/replace.c:377
+#: branch.c:445 builtin/replace.c:321 builtin/replace.c:377
#: builtin/replace.c:423 builtin/replace.c:453
#, c-format
msgid "not a valid object name: '%s'"
msgstr ""
-#: branch.c:404
+#: branch.c:465
#, c-format
msgid "ambiguous object name: '%s'"
msgstr ""
-#: branch.c:409
+#: branch.c:470
#, c-format
msgid "not a valid branch point: '%s'"
msgstr ""
-#: branch.c:469
+#: branch.c:658
+#, c-format
+msgid "submodule '%s': unable to find submodule"
+msgstr ""
+
+#: branch.c:661
+#, c-format
+msgid ""
+"You may try updating the submodules using 'git checkout %s && git submodule "
+"update --init'"
+msgstr ""
+
+#: branch.c:672 branch.c:698
+#, c-format
+msgid "submodule '%s': cannot create branch '%s'"
+msgstr ""
+
+#: branch.c:730
#, c-format
msgid "'%s' is already checked out at '%s'"
msgstr ""
-#: branch.c:494
+#: branch.c:755
#, c-format
msgid "HEAD of working tree %s is not updated"
msgstr ""
-#: bundle.c:44
+#: bundle.c:45
#, c-format
msgid "unrecognized bundle hash algorithm: %s"
msgstr ""
-#: bundle.c:48
+#: bundle.c:53
#, c-format
msgid "unknown capability '%s'"
msgstr ""
-#: bundle.c:74
+#: bundle.c:79
#, c-format
msgid "'%s' does not look like a v2 or v3 bundle file"
msgstr ""
-#: bundle.c:113
+#: bundle.c:118
#, c-format
msgid "unrecognized header: %s%s (%d)"
msgstr ""
-#: bundle.c:140 rerere.c:464 rerere.c:674 sequencer.c:2620 sequencer.c:3406
-#: builtin/commit.c:862
+#: bundle.c:145 rerere.c:464 rerere.c:675 sequencer.c:2616 sequencer.c:3402
+#: builtin/commit.c:865
#, c-format
msgid "could not open '%s'"
msgstr ""
-#: bundle.c:198
+#: bundle.c:203
msgid "Repository lacks these prerequisite commits:"
msgstr ""
-#: bundle.c:201
+#: bundle.c:206
msgid "need a repository to verify a bundle"
msgstr ""
-#: bundle.c:257
+#: bundle.c:264
#, c-format
msgid "The bundle contains this ref:"
-msgid_plural "The bundle contains these %d refs:"
+msgid_plural "The bundle contains these %<PRIuMAX> refs:"
msgstr[0] ""
msgstr[1] ""
-#: bundle.c:264
+#: bundle.c:272
msgid "The bundle records a complete history."
msgstr ""
-#: bundle.c:266
+#: bundle.c:274
#, c-format
msgid "The bundle requires this ref:"
-msgid_plural "The bundle requires these %d refs:"
+msgid_plural "The bundle requires these %<PRIuMAX> refs:"
msgstr[0] ""
msgstr[1] ""
-#: bundle.c:333
+#: bundle.c:350
msgid "unable to dup bundle descriptor"
msgstr ""
-#: bundle.c:340
+#: bundle.c:357
msgid "Could not spawn pack-objects"
msgstr ""
-#: bundle.c:351
+#: bundle.c:368
msgid "pack-objects died"
msgstr ""
-#: bundle.c:400
+#: bundle.c:417
#, c-format
msgid "ref '%s' is excluded by the rev-list options"
msgstr ""
-#: bundle.c:504
+#: bundle.c:533 builtin/log.c:211 builtin/log.c:1975 builtin/shortlog.c:400
#, c-format
-msgid "unsupported bundle version %d"
+msgid "unrecognized argument: %s"
msgstr ""
-#: bundle.c:506
+#: bundle.c:548
#, c-format
-msgid "cannot write bundle version %d with algorithm %s"
+msgid "unsupported bundle version %d"
msgstr ""
-#: bundle.c:524 builtin/log.c:210 builtin/log.c:1953 builtin/shortlog.c:399
+#: bundle.c:550
#, c-format
-msgid "unrecognized argument: %s"
+msgid "cannot write bundle version %d with algorithm %s"
msgstr ""
-#: bundle.c:553
+#: bundle.c:600
msgid "Refusing to create empty bundle."
msgstr ""
-#: bundle.c:563
+#: bundle.c:610
#, c-format
msgid "cannot create '%s'"
msgstr ""
-#: bundle.c:588
+#: bundle.c:639
msgid "index-pack died"
msgstr ""
@@ -1979,7 +2025,7 @@ msgstr ""
msgid "invalid color value: %.*s"
msgstr ""
-#: commit-graph.c:204 midx.c:51
+#: commit-graph.c:204 midx.c:52
msgid "invalid hash version"
msgstr ""
@@ -2007,234 +2053,235 @@ msgstr ""
msgid "commit-graph file is too small to hold %u chunks"
msgstr ""
-#: commit-graph.c:482
+#: commit-graph.c:485
msgid "commit-graph has no base graphs chunk"
msgstr ""
-#: commit-graph.c:492
+#: commit-graph.c:495
msgid "commit-graph chain does not match"
msgstr ""
-#: commit-graph.c:540
+#: commit-graph.c:543
#, c-format
msgid "invalid commit-graph chain: line '%s' not a hash"
msgstr ""
-#: commit-graph.c:564
+#: commit-graph.c:567
msgid "unable to find all commit-graph files"
msgstr ""
-#: commit-graph.c:749 commit-graph.c:786
+#: commit-graph.c:752 commit-graph.c:789
msgid "invalid commit position. commit-graph is likely corrupt"
msgstr ""
-#: commit-graph.c:770
+#: commit-graph.c:773
#, c-format
msgid "could not find commit %s"
msgstr ""
-#: commit-graph.c:803
+#: commit-graph.c:806
msgid "commit-graph requires overflow generation data but has none"
msgstr ""
-#: commit-graph.c:1108 builtin/am.c:1369
+#: commit-graph.c:1111 builtin/am.c:1370 builtin/checkout.c:775
+#: builtin/clone.c:705
#, c-format
msgid "unable to parse commit %s"
msgstr ""
-#: commit-graph.c:1370 builtin/pack-objects.c:3070
+#: commit-graph.c:1373 builtin/pack-objects.c:3078
#, c-format
msgid "unable to get type of object %s"
msgstr ""
-#: commit-graph.c:1401
+#: commit-graph.c:1404
msgid "Loading known commits in commit graph"
msgstr ""
-#: commit-graph.c:1418
+#: commit-graph.c:1421
msgid "Expanding reachable commits in commit graph"
msgstr ""
-#: commit-graph.c:1438
+#: commit-graph.c:1441
msgid "Clearing commit marks in commit graph"
msgstr ""
-#: commit-graph.c:1457
+#: commit-graph.c:1460
msgid "Computing commit graph topological levels"
msgstr ""
-#: commit-graph.c:1510
+#: commit-graph.c:1513
msgid "Computing commit graph generation numbers"
msgstr ""
-#: commit-graph.c:1591
+#: commit-graph.c:1598
msgid "Computing commit changed paths Bloom filters"
msgstr ""
-#: commit-graph.c:1668
+#: commit-graph.c:1675
msgid "Collecting referenced commits"
msgstr ""
-#: commit-graph.c:1693
+#: commit-graph.c:1701
#, c-format
-msgid "Finding commits for commit graph in %d pack"
-msgid_plural "Finding commits for commit graph in %d packs"
+msgid "Finding commits for commit graph in %<PRIuMAX> pack"
+msgid_plural "Finding commits for commit graph in %<PRIuMAX> packs"
msgstr[0] ""
msgstr[1] ""
-#: commit-graph.c:1706
+#: commit-graph.c:1714
#, c-format
msgid "error adding pack %s"
msgstr ""
-#: commit-graph.c:1710
+#: commit-graph.c:1718
#, c-format
msgid "error opening index for %s"
msgstr ""
-#: commit-graph.c:1747
+#: commit-graph.c:1756
msgid "Finding commits for commit graph among packed objects"
msgstr ""
-#: commit-graph.c:1765
+#: commit-graph.c:1774
msgid "Finding extra edges in commit graph"
msgstr ""
-#: commit-graph.c:1814
+#: commit-graph.c:1823
msgid "failed to write correct number of base graph ids"
msgstr ""
-#: commit-graph.c:1845 midx.c:1149
+#: commit-graph.c:1854 midx.c:1168 builtin/sparse-checkout.c:475
#, c-format
msgid "unable to create leading directories of %s"
msgstr ""
-#: commit-graph.c:1858
+#: commit-graph.c:1868
msgid "unable to create temporary graph layer"
msgstr ""
-#: commit-graph.c:1863
+#: commit-graph.c:1873
#, c-format
msgid "unable to adjust shared permissions for '%s'"
msgstr ""
-#: commit-graph.c:1920
+#: commit-graph.c:1930
#, 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:1956
+#: commit-graph.c:1967
msgid "unable to open commit-graph chain file"
msgstr ""
-#: commit-graph.c:1972
+#: commit-graph.c:1983
msgid "failed to rename base commit-graph file"
msgstr ""
-#: commit-graph.c:1992
+#: commit-graph.c:2004
msgid "failed to rename temporary commit-graph file"
msgstr ""
-#: commit-graph.c:2125
+#: commit-graph.c:2137
msgid "Scanning merged commits"
msgstr ""
-#: commit-graph.c:2169
+#: commit-graph.c:2181
msgid "Merging commit-graph"
msgstr ""
-#: commit-graph.c:2277
+#: commit-graph.c:2289
msgid "attempting to write a commit-graph, but 'core.commitGraph' is disabled"
msgstr ""
-#: commit-graph.c:2384
+#: commit-graph.c:2396
msgid "too many commits to write graph"
msgstr ""
-#: commit-graph.c:2482
+#: commit-graph.c:2494
msgid "the commit-graph file has incorrect checksum and is likely corrupt"
msgstr ""
-#: commit-graph.c:2492
+#: commit-graph.c:2504
#, c-format
msgid "commit-graph has incorrect OID order: %s then %s"
msgstr ""
-#: commit-graph.c:2502 commit-graph.c:2517
+#: commit-graph.c:2514 commit-graph.c:2529
#, c-format
msgid "commit-graph has incorrect fanout value: fanout[%d] = %u != %u"
msgstr ""
-#: commit-graph.c:2509
+#: commit-graph.c:2521
#, c-format
msgid "failed to parse commit %s from commit-graph"
msgstr ""
-#: commit-graph.c:2527
+#: commit-graph.c:2539
msgid "Verifying commits in commit graph"
msgstr ""
-#: commit-graph.c:2542
+#: commit-graph.c:2554
#, c-format
msgid "failed to parse commit %s from object database for commit-graph"
msgstr ""
-#: commit-graph.c:2549
+#: commit-graph.c:2561
#, c-format
msgid "root tree OID for commit %s in commit-graph is %s != %s"
msgstr ""
-#: commit-graph.c:2559
+#: commit-graph.c:2571
#, c-format
msgid "commit-graph parent list for commit %s is too long"
msgstr ""
-#: commit-graph.c:2568
+#: commit-graph.c:2580
#, c-format
msgid "commit-graph parent for %s is %s != %s"
msgstr ""
-#: commit-graph.c:2582
+#: commit-graph.c:2594
#, c-format
msgid "commit-graph parent list for commit %s terminates early"
msgstr ""
-#: commit-graph.c:2587
+#: commit-graph.c:2599
#, c-format
msgid ""
"commit-graph has generation number zero for commit %s, but non-zero elsewhere"
msgstr ""
-#: commit-graph.c:2591
+#: commit-graph.c:2603
#, c-format
msgid ""
"commit-graph has non-zero generation number for commit %s, but zero elsewhere"
msgstr ""
-#: commit-graph.c:2608
+#: commit-graph.c:2620
#, c-format
msgid "commit-graph generation for commit %s is %<PRIuMAX> < %<PRIuMAX>"
msgstr ""
-#: commit-graph.c:2614
+#: commit-graph.c:2626
#, c-format
msgid "commit date for commit %s in commit-graph is %<PRIuMAX> != %<PRIuMAX>"
msgstr ""
-#: commit.c:53 sequencer.c:3109 builtin/am.c:399 builtin/am.c:444
-#: builtin/am.c:449 builtin/am.c:1448 builtin/am.c:2123 builtin/replace.c:456
+#: commit.c:54 sequencer.c:3105 builtin/am.c:400 builtin/am.c:445
+#: builtin/am.c:450 builtin/am.c:1449 builtin/am.c:2124 builtin/replace.c:456
#, c-format
msgid "could not parse %s"
msgstr ""
-#: commit.c:55
+#: commit.c:56
#, c-format
msgid "%s %s is not a commit!"
msgstr ""
-#: commit.c:196
+#: commit.c:197
msgid ""
"Support for <GIT_DIR>/info/grafts is deprecated\n"
"and will be removed in a future Git version.\n"
@@ -2246,27 +2293,27 @@ msgid ""
"\"git config advice.graftFileDeprecated false\""
msgstr ""
-#: commit.c:1241
+#: commit.c:1252
#, c-format
msgid "Commit %s has an untrusted GPG signature, allegedly by %s."
msgstr ""
-#: commit.c:1245
+#: commit.c:1256
#, c-format
msgid "Commit %s has a bad GPG signature allegedly by %s."
msgstr ""
-#: commit.c:1248
+#: commit.c:1259
#, c-format
msgid "Commit %s does not have a GPG signature."
msgstr ""
-#: commit.c:1251
+#: commit.c:1262
#, c-format
msgid "Commit %s has a good GPG signature by %s\n"
msgstr ""
-#: commit.c:1505
+#: commit.c:1516
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"
@@ -2277,7 +2324,15 @@ msgstr ""
msgid "memory exhausted"
msgstr ""
-#: config.c:125
+#: compat/terminal.c:167
+msgid "cannot resume in the background, please use 'fg' to resume"
+msgstr ""
+
+#: compat/terminal.c:168
+msgid "cannot restore terminal settings"
+msgstr ""
+
+#: config.c:143
#, c-format
msgid ""
"exceeded maximum include depth (%d) while including\n"
@@ -2287,333 +2342,358 @@ msgid ""
"This might be due to circular includes."
msgstr ""
-#: config.c:141
+#: config.c:159
#, c-format
msgid "could not expand include path '%s'"
msgstr ""
-#: config.c:152
+#: config.c:170
msgid "relative config includes must come from files"
msgstr ""
-#: config.c:201
+#: config.c:219
msgid "relative config include conditionals must come from files"
msgstr ""
-#: config.c:398
+#: config.c:364
+msgid ""
+"remote URLs cannot be configured in file directly or indirectly included by "
+"includeIf.hasconfig:remote.*.url"
+msgstr ""
+
+#: config.c:508
#, c-format
msgid "invalid config format: %s"
msgstr ""
-#: config.c:402
+#: config.c:512
#, c-format
msgid "missing environment variable name for configuration '%.*s'"
msgstr ""
-#: config.c:407
+#: config.c:517
#, c-format
msgid "missing environment variable '%s' for configuration '%.*s'"
msgstr ""
-#: config.c:443
+#: config.c:553
#, c-format
msgid "key does not contain a section: %s"
msgstr ""
-#: config.c:448
+#: config.c:558
#, c-format
msgid "key does not contain variable name: %s"
msgstr ""
-#: config.c:470 sequencer.c:2806
+#: config.c:580 sequencer.c:2802
#, c-format
msgid "invalid key: %s"
msgstr ""
-#: config.c:475
+#: config.c:585
#, c-format
msgid "invalid key (newline): %s"
msgstr ""
-#: config.c:495
+#: config.c:605
msgid "empty config key"
msgstr ""
-#: config.c:513 config.c:525
+#: config.c:623 config.c:635
#, c-format
msgid "bogus config parameter: %s"
msgstr ""
-#: config.c:539 config.c:556 config.c:563 config.c:572
+#: config.c:649 config.c:666 config.c:673 config.c:682
#, c-format
msgid "bogus format in %s"
msgstr ""
-#: config.c:606
+#: config.c:716
#, c-format
msgid "bogus count in %s"
msgstr ""
-#: config.c:610
+#: config.c:720
#, c-format
msgid "too many entries in %s"
msgstr ""
-#: config.c:620
+#: config.c:730
#, c-format
msgid "missing config key %s"
msgstr ""
-#: config.c:628
+#: config.c:738
#, c-format
msgid "missing config value %s"
msgstr ""
-#: config.c:979
+#: config.c:1089
#, c-format
msgid "bad config line %d in blob %s"
msgstr ""
-#: config.c:983
+#: config.c:1093
#, c-format
msgid "bad config line %d in file %s"
msgstr ""
-#: config.c:987
+#: config.c:1097
#, c-format
msgid "bad config line %d in standard input"
msgstr ""
-#: config.c:991
+#: config.c:1101
#, c-format
msgid "bad config line %d in submodule-blob %s"
msgstr ""
-#: config.c:995
+#: config.c:1105
#, c-format
msgid "bad config line %d in command line %s"
msgstr ""
-#: config.c:999
+#: config.c:1109
#, c-format
msgid "bad config line %d in %s"
msgstr ""
-#: config.c:1136
+#: config.c:1246
msgid "out of range"
msgstr ""
-#: config.c:1136
+#: config.c:1246
msgid "invalid unit"
msgstr ""
-#: config.c:1137
+#: config.c:1247
#, c-format
msgid "bad numeric config value '%s' for '%s': %s"
msgstr ""
-#: config.c:1147
+#: config.c:1257
#, c-format
msgid "bad numeric config value '%s' for '%s' in blob %s: %s"
msgstr ""
-#: config.c:1150
+#: config.c:1260
#, c-format
msgid "bad numeric config value '%s' for '%s' in file %s: %s"
msgstr ""
-#: config.c:1153
+#: config.c:1263
#, c-format
msgid "bad numeric config value '%s' for '%s' in standard input: %s"
msgstr ""
-#: config.c:1156
+#: config.c:1266
#, c-format
msgid "bad numeric config value '%s' for '%s' in submodule-blob %s: %s"
msgstr ""
-#: config.c:1159
+#: config.c:1269
#, c-format
msgid "bad numeric config value '%s' for '%s' in command line %s: %s"
msgstr ""
-#: config.c:1162
+#: config.c:1272
#, c-format
msgid "bad numeric config value '%s' for '%s' in %s: %s"
msgstr ""
-#: config.c:1241
+#: config.c:1368
+#, c-format
+msgid "invalid value for variable %s"
+msgstr ""
+
+#: config.c:1389
+#, c-format
+msgid "ignoring unknown core.fsync component '%s'"
+msgstr ""
+
+#: config.c:1425
#, c-format
msgid "bad boolean config value '%s' for '%s'"
msgstr ""
-#: config.c:1259
+#: config.c:1443
#, c-format
msgid "failed to expand user dir in: '%s'"
msgstr ""
-#: config.c:1268
+#: config.c:1452
#, c-format
msgid "'%s' for '%s' is not a valid timestamp"
msgstr ""
-#: config.c:1361
+#: config.c:1545
#, c-format
msgid "abbrev length out of range: %d"
msgstr ""
-#: config.c:1375 config.c:1386
+#: config.c:1559 config.c:1570
#, c-format
msgid "bad zlib compression level %d"
msgstr ""
-#: config.c:1476
+#: config.c:1660
msgid "core.commentChar should only be one character"
msgstr ""
-#: config.c:1509
+#: config.c:1692
+#, c-format
+msgid "ignoring unknown core.fsyncMethod value '%s'"
+msgstr ""
+
+#: config.c:1698
+msgid "core.fsyncObjectFiles is deprecated; use core.fsync instead"
+msgstr ""
+
+#: config.c:1714
#, c-format
msgid "invalid mode for object creation: %s"
msgstr ""
-#: config.c:1584
+#: config.c:1800
#, c-format
msgid "malformed value for %s"
msgstr ""
-#: config.c:1610
+#: config.c:1826
#, c-format
msgid "malformed value for %s: %s"
msgstr ""
-#: config.c:1611
+#: config.c:1827
msgid "must be one of nothing, matching, simple, upstream or current"
msgstr ""
-#: config.c:1672 builtin/pack-objects.c:4053
+#: config.c:1888 builtin/pack-objects.c:4078
#, c-format
msgid "bad pack compression level %d"
msgstr ""
-#: config.c:1795
+#: config.c:2014
#, c-format
msgid "unable to load config blob object '%s'"
msgstr ""
-#: config.c:1798
+#: config.c:2017
#, c-format
msgid "reference '%s' does not point to a blob"
msgstr ""
-#: config.c:1816
+#: config.c:2035
#, c-format
msgid "unable to resolve config blob '%s'"
msgstr ""
-#: config.c:1861
+#: config.c:2080
#, c-format
msgid "failed to parse %s"
msgstr ""
-#: config.c:1917
+#: config.c:2136
msgid "unable to parse command-line config"
msgstr ""
-#: config.c:2285
+#: config.c:2512
msgid "unknown error occurred while reading the configuration files"
msgstr ""
-#: config.c:2459
+#: config.c:2686
#, c-format
msgid "Invalid %s: '%s'"
msgstr ""
-#: config.c:2504
+#: config.c:2731
#, c-format
msgid "splitIndex.maxPercentChange value '%d' should be between 0 and 100"
msgstr ""
-#: config.c:2550
+#: config.c:2763
#, c-format
msgid "unable to parse '%s' from command-line config"
msgstr ""
-#: config.c:2552
+#: config.c:2765
#, c-format
msgid "bad config variable '%s' in file '%s' at line %d"
msgstr ""
-#: config.c:2637
+#: config.c:2850
#, c-format
msgid "invalid section name '%s'"
msgstr ""
-#: config.c:2669
+#: config.c:2882
#, c-format
msgid "%s has multiple values"
msgstr ""
-#: config.c:2698
+#: config.c:2911
#, c-format
msgid "failed to write new configuration file %s"
msgstr ""
-#: config.c:2950 config.c:3277
+#: config.c:3177 config.c:3518
#, c-format
msgid "could not lock config file %s"
msgstr ""
-#: config.c:2961
+#: config.c:3188
#, c-format
msgid "opening %s"
msgstr ""
-#: config.c:2998 builtin/config.c:361
+#: config.c:3225 builtin/config.c:361
#, c-format
msgid "invalid pattern: %s"
msgstr ""
-#: config.c:3023
+#: config.c:3250
#, c-format
msgid "invalid config file %s"
msgstr ""
-#: config.c:3036 config.c:3290
+#: config.c:3263 config.c:3531
#, c-format
msgid "fstat on %s failed"
msgstr ""
-#: config.c:3047
+#: config.c:3274
#, c-format
msgid "unable to mmap '%s'%s"
msgstr ""
-#: config.c:3057 config.c:3295
+#: config.c:3284 config.c:3536
#, c-format
msgid "chmod on %s failed"
msgstr ""
-#: config.c:3142 config.c:3392
+#: config.c:3369 config.c:3633
#, c-format
msgid "could not write config file %s"
msgstr ""
-#: config.c:3176
+#: config.c:3403
#, c-format
msgid "could not set '%s' to '%s'"
msgstr ""
-#: config.c:3178 builtin/remote.c:662 builtin/remote.c:860 builtin/remote.c:868
+#: config.c:3405 builtin/remote.c:666 builtin/remote.c:885 builtin/remote.c:893
#, c-format
msgid "could not unset '%s'"
msgstr ""
-#: config.c:3268
+#: config.c:3509
#, c-format
msgid "invalid section name: %s"
msgstr ""
-#: config.c:3435
+#: config.c:3676
#, c-format
msgid "missing value for '%s'"
msgstr ""
@@ -2928,68 +3008,68 @@ msgstr ""
msgid "refusing to work with credential missing protocol field"
msgstr ""
-#: credential.c:395
+#: credential.c:396
#, c-format
msgid "url contains a newline in its %s component: %s"
msgstr ""
-#: credential.c:439
+#: credential.c:440
#, c-format
msgid "url has no scheme: %s"
msgstr ""
-#: credential.c:512
+#: credential.c:513
#, c-format
msgid "credential url cannot be parsed: %s"
msgstr ""
-#: date.c:138
+#: date.c:139
msgid "in the future"
msgstr ""
-#: date.c:144
+#: date.c:145
#, c-format
msgid "%<PRIuMAX> second ago"
msgid_plural "%<PRIuMAX> seconds ago"
msgstr[0] ""
msgstr[1] ""
-#: date.c:151
+#: date.c:152
#, c-format
msgid "%<PRIuMAX> minute ago"
msgid_plural "%<PRIuMAX> minutes ago"
msgstr[0] ""
msgstr[1] ""
-#: date.c:158
+#: date.c:159
#, c-format
msgid "%<PRIuMAX> hour ago"
msgid_plural "%<PRIuMAX> hours ago"
msgstr[0] ""
msgstr[1] ""
-#: date.c:165
+#: date.c:166
#, c-format
msgid "%<PRIuMAX> day ago"
msgid_plural "%<PRIuMAX> days ago"
msgstr[0] ""
msgstr[1] ""
-#: date.c:171
+#: date.c:172
#, c-format
msgid "%<PRIuMAX> week ago"
msgid_plural "%<PRIuMAX> weeks ago"
msgstr[0] ""
msgstr[1] ""
-#: date.c:178
+#: date.c:179
#, c-format
msgid "%<PRIuMAX> month ago"
msgid_plural "%<PRIuMAX> months ago"
msgstr[0] ""
msgstr[1] ""
-#: date.c:189
+#: date.c:190
#, c-format
msgid "%<PRIuMAX> year"
msgid_plural "%<PRIuMAX> years"
@@ -2997,14 +3077,14 @@ msgstr[0] ""
msgstr[1] ""
#. TRANSLATORS: "%s" is "<n> years"
-#: date.c:192
+#: date.c:193
#, c-format
msgid "%s, %<PRIuMAX> month ago"
msgid_plural "%s, %<PRIuMAX> months ago"
msgstr[0] ""
msgstr[1] ""
-#: date.c:197 date.c:202
+#: date.c:198 date.c:203
#, c-format
msgid "%<PRIuMAX> year ago"
msgid_plural "%<PRIuMAX> years ago"
@@ -3035,9 +3115,13 @@ msgstr ""
msgid "Marked %d islands, done.\n"
msgstr ""
-#: diff-merges.c:70
+#: diff-merges.c:81 gpg-interface.c:719 gpg-interface.c:734 ls-refs.c:37
+#: parallel-checkout.c:42 sequencer.c:2805 setup.c:563 builtin/am.c:203
+#: builtin/am.c:2243 builtin/am.c:2287 builtin/blame.c:724 builtin/blame.c:742
+#: builtin/fetch.c:792 builtin/pack-objects.c:3515 builtin/pull.c:45
+#: builtin/pull.c:47 builtin/pull.c:321
#, c-format
-msgid "unknown value for --diff-merges: %s"
+msgid "invalid value for '%s': '%s'"
msgstr ""
#: diff-lib.c:561
@@ -3070,598 +3154,598 @@ msgid ""
"tree"
msgstr ""
-#: diff.c:158
+#: diff.c:159
#, c-format
msgid " Failed to parse dirstat cut-off percentage '%s'\n"
msgstr ""
-#: diff.c:163
+#: diff.c:164
#, c-format
msgid " Unknown dirstat parameter '%s'\n"
msgstr ""
-#: diff.c:299
+#: diff.c:300
msgid ""
"color moved setting must be one of 'no', 'default', 'blocks', 'zebra', "
"'dimmed-zebra', 'plain'"
msgstr ""
-#: diff.c:327
+#: diff.c:328
#, 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:335
+#: diff.c:336
msgid ""
"color-moved-ws: allow-indentation-change cannot be combined with other "
"whitespace modes"
msgstr ""
-#: diff.c:412
+#: diff.c:413
#, c-format
msgid "Unknown value for 'diff.submodule' config variable: '%s'"
msgstr ""
-#: diff.c:472
+#: diff.c:473
#, c-format
msgid ""
"Found errors in 'diff.dirstat' config variable:\n"
"%s"
msgstr ""
-#: diff.c:4237
+#: diff.c:4282
#, c-format
msgid "external diff died, stopping at %s"
msgstr ""
-#: diff.c:4589
+#: diff.c:4677 parse-options.c:1114
#, c-format
msgid "options '%s', '%s', '%s', and '%s' cannot be used together"
msgstr ""
-#: diff.c:4593 builtin/difftool.c:736 builtin/log.c:1982 builtin/worktree.c:506
+#: diff.c:4681 parse-options.c:1118 builtin/worktree.c:578
#, c-format
msgid "options '%s', '%s', and '%s' cannot be used together"
msgstr ""
-#: diff.c:4597
+#: diff.c:4685
#, c-format
msgid "options '%s' and '%s' cannot be used together, use '%s' with '%s'"
msgstr ""
-#: diff.c:4601
+#: diff.c:4689
#, c-format
msgid ""
"options '%s' and '%s' cannot be used together, use '%s' with '%s' and '%s'"
msgstr ""
-#: diff.c:4681
+#: diff.c:4769
msgid "--follow requires exactly one pathspec"
msgstr ""
-#: diff.c:4729
+#: diff.c:4823
#, c-format
msgid "invalid --stat value: %s"
msgstr ""
-#: diff.c:4734 diff.c:4739 diff.c:4744 diff.c:4749 diff.c:5277
+#: diff.c:4828 diff.c:4833 diff.c:4838 diff.c:4843 diff.c:5319
#: parse-options.c:217 parse-options.c:221
#, c-format
msgid "%s expects a numerical value"
msgstr ""
-#: diff.c:4766
+#: diff.c:4860
#, c-format
msgid ""
"Failed to parse --dirstat/-X option parameter:\n"
"%s"
msgstr ""
-#: diff.c:4851
+#: diff.c:4893
#, c-format
msgid "unknown change class '%c' in --diff-filter=%s"
msgstr ""
-#: diff.c:4875
+#: diff.c:4917
#, c-format
msgid "unknown value after ws-error-highlight=%.*s"
msgstr ""
-#: diff.c:4889
+#: diff.c:4931
#, c-format
msgid "unable to resolve '%s'"
msgstr ""
-#: diff.c:4939 diff.c:4945
+#: diff.c:4981 diff.c:4987
#, c-format
msgid "%s expects <n>/<m> form"
msgstr ""
-#: diff.c:4957
+#: diff.c:4999
#, c-format
msgid "%s expects a character, got '%s'"
msgstr ""
-#: diff.c:4978
+#: diff.c:5020
#, c-format
msgid "bad --color-moved argument: %s"
msgstr ""
-#: diff.c:4997
+#: diff.c:5039
#, c-format
msgid "invalid mode '%s' in --color-moved-ws"
msgstr ""
-#: diff.c:5037
+#: diff.c:5079
msgid ""
"option diff-algorithm accepts \"myers\", \"minimal\", \"patience\" and "
"\"histogram\""
msgstr ""
-#: diff.c:5073 diff.c:5093
+#: diff.c:5115 diff.c:5135
#, c-format
msgid "invalid argument to %s"
msgstr ""
-#: diff.c:5197
+#: diff.c:5239
#, c-format
msgid "invalid regex given to -I: '%s'"
msgstr ""
-#: diff.c:5246
+#: diff.c:5288
#, c-format
msgid "failed to parse --submodule option parameter: '%s'"
msgstr ""
-#: diff.c:5302
+#: diff.c:5344
#, c-format
msgid "bad --word-diff argument: %s"
msgstr ""
-#: diff.c:5338
+#: diff.c:5380
msgid "Diff output format options"
msgstr ""
-#: diff.c:5340 diff.c:5346
+#: diff.c:5382 diff.c:5388
msgid "generate patch"
msgstr ""
-#: diff.c:5343 builtin/log.c:179
+#: diff.c:5385 builtin/log.c:180
msgid "suppress diff output"
msgstr ""
-#: diff.c:5348 diff.c:5462 diff.c:5469
+#: diff.c:5390 diff.c:5504 diff.c:5511
msgid "<n>"
msgstr ""
-#: diff.c:5349 diff.c:5352
+#: diff.c:5391 diff.c:5394
msgid "generate diffs with <n> lines context"
msgstr ""
-#: diff.c:5354
+#: diff.c:5396
msgid "generate the diff in raw format"
msgstr ""
-#: diff.c:5357
+#: diff.c:5399
msgid "synonym for '-p --raw'"
msgstr ""
-#: diff.c:5361
+#: diff.c:5403
msgid "synonym for '-p --stat'"
msgstr ""
-#: diff.c:5365
+#: diff.c:5407
msgid "machine friendly --stat"
msgstr ""
-#: diff.c:5368
+#: diff.c:5410
msgid "output only the last line of --stat"
msgstr ""
-#: diff.c:5370 diff.c:5378
+#: diff.c:5412 diff.c:5420
msgid "<param1,param2>..."
msgstr ""
-#: diff.c:5371
+#: diff.c:5413
msgid ""
"output the distribution of relative amount of changes for each sub-directory"
msgstr ""
-#: diff.c:5375
+#: diff.c:5417
msgid "synonym for --dirstat=cumulative"
msgstr ""
-#: diff.c:5379
+#: diff.c:5421
msgid "synonym for --dirstat=files,param1,param2..."
msgstr ""
-#: diff.c:5383
+#: diff.c:5425
msgid "warn if changes introduce conflict markers or whitespace errors"
msgstr ""
-#: diff.c:5386
+#: diff.c:5428
msgid "condensed summary such as creations, renames and mode changes"
msgstr ""
-#: diff.c:5389
+#: diff.c:5431
msgid "show only names of changed files"
msgstr ""
-#: diff.c:5392
+#: diff.c:5434
msgid "show only names and status of changed files"
msgstr ""
-#: diff.c:5394
+#: diff.c:5436
msgid "<width>[,<name-width>[,<count>]]"
msgstr ""
-#: diff.c:5395
+#: diff.c:5437
msgid "generate diffstat"
msgstr ""
-#: diff.c:5397 diff.c:5400 diff.c:5403
+#: diff.c:5439 diff.c:5442 diff.c:5445
msgid "<width>"
msgstr ""
-#: diff.c:5398
+#: diff.c:5440
msgid "generate diffstat with a given width"
msgstr ""
-#: diff.c:5401
+#: diff.c:5443
msgid "generate diffstat with a given name width"
msgstr ""
-#: diff.c:5404
+#: diff.c:5446
msgid "generate diffstat with a given graph width"
msgstr ""
-#: diff.c:5406
+#: diff.c:5448
msgid "<count>"
msgstr ""
-#: diff.c:5407
+#: diff.c:5449
msgid "generate diffstat with limited lines"
msgstr ""
-#: diff.c:5410
+#: diff.c:5452
msgid "generate compact summary in diffstat"
msgstr ""
-#: diff.c:5413
+#: diff.c:5455
msgid "output a binary diff that can be applied"
msgstr ""
-#: diff.c:5416
+#: diff.c:5458
msgid "show full pre- and post-image object names on the \"index\" lines"
msgstr ""
-#: diff.c:5418
+#: diff.c:5460
msgid "show colored diff"
msgstr ""
-#: diff.c:5419
+#: diff.c:5461
msgid "<kind>"
msgstr ""
-#: diff.c:5420
+#: diff.c:5462
msgid ""
"highlight whitespace errors in the 'context', 'old' or 'new' lines in the "
"diff"
msgstr ""
-#: diff.c:5423
+#: diff.c:5465
msgid ""
"do not munge pathnames and use NULs as output field terminators in --raw or "
"--numstat"
msgstr ""
-#: diff.c:5426 diff.c:5429 diff.c:5432 diff.c:5541
+#: diff.c:5468 diff.c:5471 diff.c:5474 diff.c:5583
msgid "<prefix>"
msgstr ""
-#: diff.c:5427
+#: diff.c:5469
msgid "show the given source prefix instead of \"a/\""
msgstr ""
-#: diff.c:5430
+#: diff.c:5472
msgid "show the given destination prefix instead of \"b/\""
msgstr ""
-#: diff.c:5433
+#: diff.c:5475
msgid "prepend an additional prefix to every line of output"
msgstr ""
-#: diff.c:5436
+#: diff.c:5478
msgid "do not show any source or destination prefix"
msgstr ""
-#: diff.c:5439
+#: diff.c:5481
msgid "show context between diff hunks up to the specified number of lines"
msgstr ""
-#: diff.c:5443 diff.c:5448 diff.c:5453
+#: diff.c:5485 diff.c:5490 diff.c:5495
msgid "<char>"
msgstr ""
-#: diff.c:5444
+#: diff.c:5486
msgid "specify the character to indicate a new line instead of '+'"
msgstr ""
-#: diff.c:5449
+#: diff.c:5491
msgid "specify the character to indicate an old line instead of '-'"
msgstr ""
-#: diff.c:5454
+#: diff.c:5496
msgid "specify the character to indicate a context instead of ' '"
msgstr ""
-#: diff.c:5457
+#: diff.c:5499
msgid "Diff rename options"
msgstr ""
-#: diff.c:5458
+#: diff.c:5500
msgid "<n>[/<m>]"
msgstr ""
-#: diff.c:5459
+#: diff.c:5501
msgid "break complete rewrite changes into pairs of delete and create"
msgstr ""
-#: diff.c:5463
+#: diff.c:5505
msgid "detect renames"
msgstr ""
-#: diff.c:5467
+#: diff.c:5509
msgid "omit the preimage for deletes"
msgstr ""
-#: diff.c:5470
+#: diff.c:5512
msgid "detect copies"
msgstr ""
-#: diff.c:5474
+#: diff.c:5516
msgid "use unmodified files as source to find copies"
msgstr ""
-#: diff.c:5476
+#: diff.c:5518
msgid "disable rename detection"
msgstr ""
-#: diff.c:5479
+#: diff.c:5521
msgid "use empty blobs as rename source"
msgstr ""
-#: diff.c:5481
+#: diff.c:5523
msgid "continue listing the history of a file beyond renames"
msgstr ""
-#: diff.c:5484
+#: diff.c:5526
msgid ""
"prevent rename/copy detection if the number of rename/copy targets exceeds "
"given limit"
msgstr ""
-#: diff.c:5486
+#: diff.c:5528
msgid "Diff algorithm options"
msgstr ""
-#: diff.c:5488
+#: diff.c:5530
msgid "produce the smallest possible diff"
msgstr ""
-#: diff.c:5491
+#: diff.c:5533
msgid "ignore whitespace when comparing lines"
msgstr ""
-#: diff.c:5494
+#: diff.c:5536
msgid "ignore changes in amount of whitespace"
msgstr ""
-#: diff.c:5497
+#: diff.c:5539
msgid "ignore changes in whitespace at EOL"
msgstr ""
-#: diff.c:5500
+#: diff.c:5542
msgid "ignore carrier-return at the end of line"
msgstr ""
-#: diff.c:5503
+#: diff.c:5545
msgid "ignore changes whose lines are all blank"
msgstr ""
-#: diff.c:5505 diff.c:5527 diff.c:5530 diff.c:5575
+#: diff.c:5547 diff.c:5569 diff.c:5572 diff.c:5617
msgid "<regex>"
msgstr ""
-#: diff.c:5506
+#: diff.c:5548
msgid "ignore changes whose all lines match <regex>"
msgstr ""
-#: diff.c:5509
+#: diff.c:5551
msgid "heuristic to shift diff hunk boundaries for easy reading"
msgstr ""
-#: diff.c:5512
+#: diff.c:5554
msgid "generate diff using the \"patience diff\" algorithm"
msgstr ""
-#: diff.c:5516
+#: diff.c:5558
msgid "generate diff using the \"histogram diff\" algorithm"
msgstr ""
-#: diff.c:5518
+#: diff.c:5560
msgid "<algorithm>"
msgstr ""
-#: diff.c:5519
+#: diff.c:5561
msgid "choose a diff algorithm"
msgstr ""
-#: diff.c:5521
+#: diff.c:5563
msgid "<text>"
msgstr ""
-#: diff.c:5522
+#: diff.c:5564
msgid "generate diff using the \"anchored diff\" algorithm"
msgstr ""
-#: diff.c:5524 diff.c:5533 diff.c:5536
+#: diff.c:5566 diff.c:5575 diff.c:5578
msgid "<mode>"
msgstr ""
-#: diff.c:5525
+#: diff.c:5567
msgid "show word diff, using <mode> to delimit changed words"
msgstr ""
-#: diff.c:5528
+#: diff.c:5570
msgid "use <regex> to decide what a word is"
msgstr ""
-#: diff.c:5531
+#: diff.c:5573
msgid "equivalent to --word-diff=color --word-diff-regex=<regex>"
msgstr ""
-#: diff.c:5534
+#: diff.c:5576
msgid "moved lines of code are colored differently"
msgstr ""
-#: diff.c:5537
+#: diff.c:5579
msgid "how white spaces are ignored in --color-moved"
msgstr ""
-#: diff.c:5540
+#: diff.c:5582
msgid "Other diff options"
msgstr ""
-#: diff.c:5542
+#: diff.c:5584
msgid "when run from subdir, exclude changes outside and show relative paths"
msgstr ""
-#: diff.c:5546
+#: diff.c:5588
msgid "treat all files as text"
msgstr ""
-#: diff.c:5548
+#: diff.c:5590
msgid "swap two inputs, reverse the diff"
msgstr ""
-#: diff.c:5550
+#: diff.c:5592
msgid "exit with 1 if there were differences, 0 otherwise"
msgstr ""
-#: diff.c:5552
+#: diff.c:5594
msgid "disable all output of the program"
msgstr ""
-#: diff.c:5554
+#: diff.c:5596
msgid "allow an external diff helper to be executed"
msgstr ""
-#: diff.c:5556
+#: diff.c:5598
msgid "run external text conversion filters when comparing binary files"
msgstr ""
-#: diff.c:5558
+#: diff.c:5600
msgid "<when>"
msgstr ""
-#: diff.c:5559
+#: diff.c:5601
msgid "ignore changes to submodules in the diff generation"
msgstr ""
-#: diff.c:5562
+#: diff.c:5604
msgid "<format>"
msgstr ""
-#: diff.c:5563
+#: diff.c:5605
msgid "specify how differences in submodules are shown"
msgstr ""
-#: diff.c:5567
+#: diff.c:5609
msgid "hide 'git add -N' entries from the index"
msgstr ""
-#: diff.c:5570
+#: diff.c:5612
msgid "treat 'git add -N' entries as real in the index"
msgstr ""
-#: diff.c:5572
+#: diff.c:5614
msgid "<string>"
msgstr ""
-#: diff.c:5573
+#: diff.c:5615
msgid ""
"look for differences that change the number of occurrences of the specified "
"string"
msgstr ""
-#: diff.c:5576
+#: diff.c:5618
msgid ""
"look for differences that change the number of occurrences of the specified "
"regex"
msgstr ""
-#: diff.c:5579
+#: diff.c:5621
msgid "show all changes in the changeset with -S or -G"
msgstr ""
-#: diff.c:5582
+#: diff.c:5624
msgid "treat <string> in -S as extended POSIX regular expression"
msgstr ""
-#: diff.c:5585
+#: diff.c:5627
msgid "control the order in which files appear in the output"
msgstr ""
-#: diff.c:5586 diff.c:5589
+#: diff.c:5628 diff.c:5631
msgid "<path>"
msgstr ""
-#: diff.c:5587
+#: diff.c:5629
msgid "show the change in the specified path first"
msgstr ""
-#: diff.c:5590
+#: diff.c:5632
msgid "skip the output to the specified path"
msgstr ""
-#: diff.c:5592
+#: diff.c:5634
msgid "<object-id>"
msgstr ""
-#: diff.c:5593
+#: diff.c:5635
msgid ""
"look for differences that change the number of occurrences of the specified "
"object"
msgstr ""
-#: diff.c:5595
+#: diff.c:5637
msgid "[(A|C|D|M|R|T|U|X|B)...[*]]"
msgstr ""
-#: diff.c:5596
+#: diff.c:5638
msgid "select files by diff type"
msgstr ""
-#: diff.c:5598
+#: diff.c:5640
msgid "<file>"
msgstr ""
-#: diff.c:5599
-msgid "Output to a specific file"
+#: diff.c:5641
+msgid "output to a specific file"
msgstr ""
-#: diff.c:6257
+#: diff.c:6321
msgid "exhaustive rename detection was skipped due to too many files."
msgstr ""
-#: diff.c:6260
+#: diff.c:6324
msgid "only found copies from modified paths due to too many files."
msgstr ""
-#: diff.c:6263
+#: diff.c:6327
#, c-format
msgid ""
"you may want to set your %s variable to at least %d and retry the command."
@@ -3710,36 +3794,36 @@ msgstr ""
msgid "cannot use %s as an exclude file"
msgstr ""
-#: dir.c:2418
+#: dir.c:2419
#, c-format
msgid "could not open directory '%s'"
msgstr ""
-#: dir.c:2720
+#: dir.c:2721
msgid "failed to get kernel name and information"
msgstr ""
-#: dir.c:2844
+#: dir.c:2846
msgid "untracked cache is disabled on this system or location"
msgstr ""
-#: dir.c:3112
+#: dir.c:3119
msgid ""
"No directory name could be guessed.\n"
"Please specify a directory on the command line"
msgstr ""
-#: dir.c:3800
+#: dir.c:3807
#, c-format
msgid "index file corrupt in repo %s"
msgstr ""
-#: dir.c:3847 dir.c:3852
+#: dir.c:3854 dir.c:3859
#, c-format
msgid "could not create directories for %s"
msgstr ""
-#: dir.c:3881
+#: dir.c:3888
#, c-format
msgid "could not migrate git directory from '%s' to '%s'"
msgstr ""
@@ -3758,7 +3842,7 @@ msgstr ""
msgid "could not stat file '%s'"
msgstr ""
-#: environment.c:145
+#: environment.c:147
#, c-format
msgid "bad git namespace path \"%s\""
msgstr ""
@@ -3789,313 +3873,340 @@ msgstr ""
msgid "unable to write to remote"
msgstr ""
-#: fetch-pack.c:395 fetch-pack.c:1439
+#: fetch-pack.c:397 fetch-pack.c:1460
#, c-format
msgid "invalid shallow line: %s"
msgstr ""
-#: fetch-pack.c:401 fetch-pack.c:1445
+#: fetch-pack.c:403 fetch-pack.c:1466
#, c-format
msgid "invalid unshallow line: %s"
msgstr ""
-#: fetch-pack.c:403 fetch-pack.c:1447
+#: fetch-pack.c:405 fetch-pack.c:1468
#, c-format
msgid "object not found: %s"
msgstr ""
-#: fetch-pack.c:406 fetch-pack.c:1450
+#: fetch-pack.c:408 fetch-pack.c:1471
#, c-format
msgid "error in object: %s"
msgstr ""
-#: fetch-pack.c:408 fetch-pack.c:1452
+#: fetch-pack.c:410 fetch-pack.c:1473
#, c-format
msgid "no shallow found: %s"
msgstr ""
-#: fetch-pack.c:411 fetch-pack.c:1456
+#: fetch-pack.c:413 fetch-pack.c:1477
#, c-format
msgid "expected shallow/unshallow, got %s"
msgstr ""
-#: fetch-pack.c:451
+#: fetch-pack.c:453
#, c-format
msgid "got %s %d %s"
msgstr ""
-#: fetch-pack.c:468
+#: fetch-pack.c:470
#, c-format
msgid "invalid commit %s"
msgstr ""
-#: fetch-pack.c:499
+#: fetch-pack.c:501
msgid "giving up"
msgstr ""
-#: fetch-pack.c:512 progress.c:339
+#: fetch-pack.c:514 progress.h:25
msgid "done"
msgstr ""
-#: fetch-pack.c:524
+#: fetch-pack.c:526
#, c-format
msgid "got %s (%d) %s"
msgstr ""
-#: fetch-pack.c:560
+#: fetch-pack.c:562
#, c-format
msgid "Marking %s as complete"
msgstr ""
-#: fetch-pack.c:775
+#: fetch-pack.c:784
#, c-format
msgid "already have %s (%s)"
msgstr ""
-#: fetch-pack.c:861
+#: fetch-pack.c:870
msgid "fetch-pack: unable to fork off sideband demultiplexer"
msgstr ""
-#: fetch-pack.c:869
+#: fetch-pack.c:878
msgid "protocol error: bad pack header"
msgstr ""
-#: fetch-pack.c:965
+#: fetch-pack.c:974
#, c-format
msgid "fetch-pack: unable to fork off %s"
msgstr ""
-#: fetch-pack.c:971
+#: fetch-pack.c:980
msgid "fetch-pack: invalid index-pack output"
msgstr ""
-#: fetch-pack.c:988
+#: fetch-pack.c:997
#, c-format
msgid "%s failed"
msgstr ""
-#: fetch-pack.c:990
+#: fetch-pack.c:999
msgid "error in sideband demultiplexer"
msgstr ""
-#: fetch-pack.c:1035
+#: fetch-pack.c:1048
#, c-format
msgid "Server version is %.*s"
msgstr ""
-#: fetch-pack.c:1043 fetch-pack.c:1049 fetch-pack.c:1052 fetch-pack.c:1058
-#: fetch-pack.c:1062 fetch-pack.c:1066 fetch-pack.c:1070 fetch-pack.c:1074
-#: fetch-pack.c:1078 fetch-pack.c:1082 fetch-pack.c:1086 fetch-pack.c:1090
-#: fetch-pack.c:1096 fetch-pack.c:1102 fetch-pack.c:1107 fetch-pack.c:1112
+#: fetch-pack.c:1056 fetch-pack.c:1062 fetch-pack.c:1065 fetch-pack.c:1071
+#: fetch-pack.c:1075 fetch-pack.c:1079 fetch-pack.c:1083 fetch-pack.c:1087
+#: fetch-pack.c:1091 fetch-pack.c:1095 fetch-pack.c:1099 fetch-pack.c:1103
+#: fetch-pack.c:1109 fetch-pack.c:1115 fetch-pack.c:1120 fetch-pack.c:1125
#, c-format
msgid "Server supports %s"
msgstr ""
-#: fetch-pack.c:1045
+#: fetch-pack.c:1058
msgid "Server does not support shallow clients"
msgstr ""
-#: fetch-pack.c:1105
+#: fetch-pack.c:1118
msgid "Server does not support --shallow-since"
msgstr ""
-#: fetch-pack.c:1110
+#: fetch-pack.c:1123
msgid "Server does not support --shallow-exclude"
msgstr ""
-#: fetch-pack.c:1114
+#: fetch-pack.c:1127
msgid "Server does not support --deepen"
msgstr ""
-#: fetch-pack.c:1116
+#: fetch-pack.c:1129
msgid "Server does not support this repository's object format"
msgstr ""
-#: fetch-pack.c:1129
+#: fetch-pack.c:1142
msgid "no common commits"
msgstr ""
-#: fetch-pack.c:1138 fetch-pack.c:1485 builtin/clone.c:1130
+#: fetch-pack.c:1151 fetch-pack.c:1506 builtin/clone.c:1166
msgid "source repository is shallow, reject to clone."
msgstr ""
-#: fetch-pack.c:1144 fetch-pack.c:1681
+#: fetch-pack.c:1157 fetch-pack.c:1705
msgid "git fetch-pack: fetch failed."
msgstr ""
-#: fetch-pack.c:1258
+#: fetch-pack.c:1271
#, c-format
msgid "mismatched algorithms: client %s; server %s"
msgstr ""
-#: fetch-pack.c:1262
+#: fetch-pack.c:1275
#, c-format
msgid "the server does not support algorithm '%s'"
msgstr ""
-#: fetch-pack.c:1295
+#: fetch-pack.c:1308
msgid "Server does not support shallow requests"
msgstr ""
-#: fetch-pack.c:1302
+#: fetch-pack.c:1315
msgid "Server supports filter"
msgstr ""
-#: fetch-pack.c:1345 fetch-pack.c:2063
+#: fetch-pack.c:1358 fetch-pack.c:2087
msgid "unable to write request to remote"
msgstr ""
-#: fetch-pack.c:1363
+#: fetch-pack.c:1376
#, c-format
msgid "error reading section header '%s'"
msgstr ""
-#: fetch-pack.c:1369
+#: fetch-pack.c:1382
#, c-format
msgid "expected '%s', received '%s'"
msgstr ""
-#: fetch-pack.c:1403
+#: fetch-pack.c:1416
#, c-format
msgid "unexpected acknowledgment line: '%s'"
msgstr ""
-#: fetch-pack.c:1408
+#: fetch-pack.c:1421
#, c-format
msgid "error processing acks: %d"
msgstr ""
-#: fetch-pack.c:1418
-msgid "expected packfile to be sent after 'ready'"
+#. TRANSLATORS: The parameter will be 'ready', a protocol
+#. keyword.
+#.
+#: fetch-pack.c:1435
+#, c-format
+msgid "expected packfile to be sent after '%s'"
msgstr ""
-#: fetch-pack.c:1420
-msgid "expected no other sections to be sent after no 'ready'"
+#. TRANSLATORS: The parameter will be 'ready', a protocol
+#. keyword.
+#.
+#: fetch-pack.c:1441
+#, c-format
+msgid "expected no other sections to be sent after no '%s'"
msgstr ""
-#: fetch-pack.c:1461
+#: fetch-pack.c:1482
#, c-format
msgid "error processing shallow info: %d"
msgstr ""
-#: fetch-pack.c:1510
+#: fetch-pack.c:1531
#, c-format
msgid "expected wanted-ref, got '%s'"
msgstr ""
-#: fetch-pack.c:1515
+#: fetch-pack.c:1536
#, c-format
msgid "unexpected wanted-ref: '%s'"
msgstr ""
-#: fetch-pack.c:1520
+#: fetch-pack.c:1541
#, c-format
msgid "error processing wanted refs: %d"
msgstr ""
-#: fetch-pack.c:1550
+#: fetch-pack.c:1571
msgid "git fetch-pack: expected response end packet"
msgstr ""
-#: fetch-pack.c:1959
+#: fetch-pack.c:1983
msgid "no matching remote head"
msgstr ""
-#: fetch-pack.c:1982 builtin/clone.c:581
+#: fetch-pack.c:2006 builtin/clone.c:587
msgid "remote did not send all necessary objects"
msgstr ""
-#: fetch-pack.c:2085
+#: fetch-pack.c:2109
msgid "unexpected 'ready' from remote"
msgstr ""
-#: fetch-pack.c:2108
+#: fetch-pack.c:2132
#, c-format
msgid "no such remote ref %s"
msgstr ""
-#: fetch-pack.c:2111
+#: fetch-pack.c:2135
#, c-format
msgid "Server does not allow request for unadvertised object %s"
msgstr ""
-#: gpg-interface.c:329 gpg-interface.c:457 gpg-interface.c:974
-#: gpg-interface.c:990
+#: fsmonitor-ipc.c:119
+#, c-format
+msgid "fsmonitor_ipc__send_query: invalid path '%s'"
+msgstr ""
+
+#: fsmonitor-ipc.c:125
+#, c-format
+msgid "fsmonitor_ipc__send_query: unspecified error on '%s'"
+msgstr ""
+
+#: fsmonitor-ipc.c:155
+msgid "fsmonitor--daemon is not running"
+msgstr ""
+
+#: fsmonitor-ipc.c:164
+#, c-format
+msgid "could not send '%s' command to fsmonitor--daemon"
+msgstr ""
+
+#: gpg-interface.c:329 gpg-interface.c:456 gpg-interface.c:995
+#: gpg-interface.c:1011
msgid "could not create temporary file"
msgstr ""
-#: gpg-interface.c:332 gpg-interface.c:460
+#: gpg-interface.c:332 gpg-interface.c:459
#, c-format
msgid "failed writing detached signature to '%s'"
msgstr ""
-#: gpg-interface.c:451
+#: gpg-interface.c:450
msgid ""
"gpg.ssh.allowedSignersFile needs to be configured and exist for ssh "
"signature verification"
msgstr ""
-#: gpg-interface.c:480
+#: gpg-interface.c:479
msgid ""
"ssh-keygen -Y find-principals/verify is needed for ssh signature "
"verification (available in openssh version 8.2p1+)"
msgstr ""
-#: gpg-interface.c:536
+#: gpg-interface.c:550
#, c-format
msgid "ssh signing revocation file configured but not found: %s"
msgstr ""
-#: gpg-interface.c:624
+#: gpg-interface.c:638
#, c-format
msgid "bad/incompatible signature '%s'"
msgstr ""
-#: gpg-interface.c:801 gpg-interface.c:806
+#: gpg-interface.c:815 gpg-interface.c:820
#, c-format
msgid "failed to get the ssh fingerprint for key '%s'"
msgstr ""
-#: gpg-interface.c:829
+#: gpg-interface.c:843
msgid ""
"either user.signingkey or gpg.ssh.defaultKeyCommand needs to be configured"
msgstr ""
-#: gpg-interface.c:851
+#: gpg-interface.c:865
#, c-format
msgid "gpg.ssh.defaultKeyCommand succeeded but returned no keys: %s %s"
msgstr ""
-#: gpg-interface.c:857
+#: gpg-interface.c:871
#, c-format
msgid "gpg.ssh.defaultKeyCommand failed: %s %s"
msgstr ""
-#: gpg-interface.c:945
+#: gpg-interface.c:966
msgid "gpg failed to sign the data"
msgstr ""
-#: gpg-interface.c:967
+#: gpg-interface.c:988
msgid "user.signingkey needs to be set for ssh signing"
msgstr ""
-#: gpg-interface.c:978
+#: gpg-interface.c:999
#, c-format
msgid "failed writing ssh signing key to '%s'"
msgstr ""
-#: gpg-interface.c:996
+#: gpg-interface.c:1017
#, c-format
msgid "failed writing ssh signing key buffer to '%s'"
msgstr ""
-#: gpg-interface.c:1014
+#: gpg-interface.c:1035
msgid ""
"ssh-keygen -Y sign is needed for ssh signing (available in openssh version "
"8.2p1+)"
msgstr ""
-#: gpg-interface.c:1026
+#: gpg-interface.c:1047
#, c-format
msgid "failed reading ssh signing data buffer from '%s'"
msgstr ""
@@ -4105,151 +4216,151 @@ msgstr ""
msgid "ignored invalid color '%.*s' in log.graphColors"
msgstr ""
-#: grep.c:531
+#: grep.c:446
msgid ""
"given pattern contains NULL byte (via -f <file>). This is only supported "
"with -P under PCRE v2"
msgstr ""
-#: grep.c:1942
+#: grep.c:1859
#, c-format
msgid "'%s': unable to read %s"
msgstr ""
-#: grep.c:1959 setup.c:177 builtin/clone.c:302 builtin/diff.c:90
+#: grep.c:1876 setup.c:178 builtin/clone.c:308 builtin/diff.c:90
#: builtin/rm.c:136
#, c-format
msgid "failed to stat '%s'"
msgstr ""
-#: grep.c:1970
+#: grep.c:1887
#, c-format
msgid "'%s': short read"
msgstr ""
-#: help.c:24
+#: help.c:25
msgid "start a working area (see also: git help tutorial)"
msgstr ""
-#: help.c:25
+#: help.c:26
msgid "work on the current change (see also: git help everyday)"
msgstr ""
-#: help.c:26
+#: help.c:27
msgid "examine the history and state (see also: git help revisions)"
msgstr ""
-#: help.c:27
+#: help.c:28
msgid "grow, mark and tweak your common history"
msgstr ""
-#: help.c:28
+#: help.c:29
msgid "collaborate (see also: git help workflows)"
msgstr ""
-#: help.c:32
+#: help.c:33
msgid "Main Porcelain Commands"
msgstr ""
-#: help.c:33
+#: help.c:34
msgid "Ancillary Commands / Manipulators"
msgstr ""
-#: help.c:34
+#: help.c:35
msgid "Ancillary Commands / Interrogators"
msgstr ""
-#: help.c:35
+#: help.c:36
msgid "Interacting with Others"
msgstr ""
-#: help.c:36
+#: help.c:37
msgid "Low-level Commands / Manipulators"
msgstr ""
-#: help.c:37
+#: help.c:38
msgid "Low-level Commands / Interrogators"
msgstr ""
-#: help.c:38
+#: help.c:39
msgid "Low-level Commands / Syncing Repositories"
msgstr ""
-#: help.c:39
+#: help.c:40
msgid "Low-level Commands / Internal Helpers"
msgstr ""
-#: help.c:313
+#: help.c:316
#, c-format
msgid "available git commands in '%s'"
msgstr ""
-#: help.c:320
+#: help.c:323
msgid "git commands available from elsewhere on your $PATH"
msgstr ""
-#: help.c:329
+#: help.c:332
msgid "These are common Git commands used in various situations:"
msgstr ""
-#: help.c:378 git.c:100
+#: help.c:382 git.c:100
#, c-format
msgid "unsupported command listing type '%s'"
msgstr ""
-#: help.c:418
+#: help.c:422
msgid "The Git concept guides are:"
msgstr ""
-#: help.c:442
-msgid "See 'git help <command>' to read about a specific subcommand"
-msgstr ""
-
-#: help.c:447
+#: help.c:446
msgid "External commands"
msgstr ""
-#: help.c:462
+#: help.c:468
msgid "Command aliases"
msgstr ""
-#: help.c:543
+#: help.c:486
+msgid "See 'git help <command>' to read about a specific subcommand"
+msgstr ""
+
+#: help.c:563
#, c-format
msgid ""
"'%s' appears to be a git command, but we were not\n"
"able to execute it. Maybe git-%s is broken?"
msgstr ""
-#: help.c:565 help.c:662
+#: help.c:585 help.c:682
#, c-format
msgid "git: '%s' is not a git command. See 'git --help'."
msgstr ""
-#: help.c:613
+#: help.c:633
msgid "Uh oh. Your system reports no Git commands at all."
msgstr ""
-#: help.c:635
+#: help.c:655
#, c-format
msgid "WARNING: You called a Git command named '%s', which does not exist."
msgstr ""
-#: help.c:640
+#: help.c:660
#, c-format
msgid "Continuing under the assumption that you meant '%s'."
msgstr ""
-#: help.c:646
+#: help.c:666
#, c-format
msgid "Run '%s' instead [y/N]? "
msgstr ""
-#: help.c:654
+#: help.c:674
#, c-format
msgid "Continuing in %0.1f seconds, assuming that you meant '%s'."
msgstr ""
-#: help.c:666
+#: help.c:686
msgid ""
"\n"
"The most similar command is"
@@ -4259,16 +4370,16 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: help.c:706
+#: help.c:729
msgid "git version [<options>]"
msgstr ""
-#: help.c:761
+#: help.c:784
#, c-format
msgid "%s: %s - %s"
msgstr ""
-#: help.c:765
+#: help.c:788
msgid ""
"\n"
"Did you mean this?"
@@ -4278,22 +4389,27 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: hook.c:27
+#: hook.c:28
#, c-format
msgid ""
"The '%s' hook was ignored because it's not set as executable.\n"
"You can disable this warning with `git config advice.ignoredHook false`."
msgstr ""
-#: ident.c:353
+#: hook.c:87
+#, c-format
+msgid "Couldn't start hook '%s'\n"
+msgstr ""
+
+#: ident.c:354
msgid "Author identity unknown\n"
msgstr ""
-#: ident.c:356
+#: ident.c:357
msgid "Committer identity unknown\n"
msgstr ""
-#: ident.c:362
+#: ident.c:363
msgid ""
"\n"
"*** Please tell me who you are.\n"
@@ -4308,71 +4424,71 @@ msgid ""
"\n"
msgstr ""
-#: ident.c:397
+#: ident.c:398
msgid "no email was given and auto-detection is disabled"
msgstr ""
-#: ident.c:402
+#: ident.c:403
#, c-format
msgid "unable to auto-detect email address (got '%s')"
msgstr ""
-#: ident.c:419
+#: ident.c:420
msgid "no name was given and auto-detection is disabled"
msgstr ""
-#: ident.c:425
+#: ident.c:426
#, c-format
msgid "unable to auto-detect name (got '%s')"
msgstr ""
-#: ident.c:433
+#: ident.c:434
#, c-format
msgid "empty ident name (for <%s>) not allowed"
msgstr ""
-#: ident.c:439
+#: ident.c:440
#, c-format
msgid "name consists only of disallowed characters: %s"
msgstr ""
-#: ident.c:454 builtin/commit.c:648
+#: ident.c:455 builtin/commit.c:649
#, c-format
msgid "invalid date format: %s"
msgstr ""
-#: list-objects-filter-options.c:83
+#: list-objects-filter-options.c:68
msgid "expected 'tree:<depth>'"
msgstr ""
-#: list-objects-filter-options.c:98
+#: list-objects-filter-options.c:83
msgid "sparse:path filters support has been dropped"
msgstr ""
-#: list-objects-filter-options.c:105
+#: list-objects-filter-options.c:90
#, c-format
msgid "'%s' for 'object:type=<type>' is not a valid object type"
msgstr ""
-#: list-objects-filter-options.c:124
+#: list-objects-filter-options.c:109
#, c-format
msgid "invalid filter-spec '%s'"
msgstr ""
-#: list-objects-filter-options.c:140
+#: list-objects-filter-options.c:125
#, c-format
msgid "must escape char in sub-filter-spec: '%c'"
msgstr ""
-#: list-objects-filter-options.c:182
+#: list-objects-filter-options.c:167
msgid "expected something after combine:"
msgstr ""
-#: list-objects-filter-options.c:264
+#: list-objects-filter-options.c:249
msgid "multiple filter-specs cannot be combined"
msgstr ""
-#: list-objects-filter-options.c:376
+#: list-objects-filter-options.c:365
msgid "unable to upgrade repository format to support partial clone"
msgstr ""
@@ -4386,17 +4502,17 @@ msgstr ""
msgid "unable to parse sparse filter data in %s"
msgstr ""
-#: list-objects.c:127
+#: list-objects.c:144
#, c-format
msgid "entry '%s' in tree %s has tree mode, but is not a tree"
msgstr ""
-#: list-objects.c:140
+#: list-objects.c:157
#, c-format
msgid "entry '%s' in tree %s has blob mode, but is not a blob"
msgstr ""
-#: list-objects.c:398
+#: list-objects.c:415
#, c-format
msgid "unable to load root tree for commit %s"
msgstr ""
@@ -4418,17 +4534,12 @@ msgstr ""
msgid "Unable to create '%s.lock': %s"
msgstr ""
-#: ls-refs.c:37
-#, c-format
-msgid "invalid value '%s' for lsrefs.unborn"
-msgstr ""
-
-#: ls-refs.c:174
+#: ls-refs.c:175
#, c-format
msgid "unexpected line: '%s'"
msgstr ""
-#: ls-refs.c:178
+#: ls-refs.c:179
msgid "expected flush after ls-refs arguments"
msgstr ""
@@ -4436,44 +4547,44 @@ msgstr ""
msgid "quoted CRLF detected"
msgstr ""
-#: mailinfo.c:1254 builtin/am.c:184 builtin/mailinfo.c:46
+#: mailinfo.c:1254 builtin/am.c:185 builtin/mailinfo.c:46
#, c-format
msgid "bad action '%s' for '%s'"
msgstr ""
-#: merge-ort.c:1584 merge-recursive.c:1211
+#: merge-ort.c:1630 merge-recursive.c:1214
#, c-format
msgid "Failed to merge submodule %s (not checked out)"
msgstr ""
-#: merge-ort.c:1593 merge-recursive.c:1218
+#: merge-ort.c:1639 merge-recursive.c:1221
#, c-format
msgid "Failed to merge submodule %s (commits not present)"
msgstr ""
-#: merge-ort.c:1602 merge-recursive.c:1225
+#: merge-ort.c:1648 merge-recursive.c:1228
#, c-format
msgid "Failed to merge submodule %s (commits don't follow merge-base)"
msgstr ""
-#: merge-ort.c:1612 merge-ort.c:1620
+#: merge-ort.c:1658 merge-ort.c:1666
#, c-format
msgid "Note: Fast-forwarding submodule %s to %s"
msgstr ""
-#: merge-ort.c:1642
+#: merge-ort.c:1688
#, c-format
msgid "Failed to merge submodule %s"
msgstr ""
-#: merge-ort.c:1649
+#: merge-ort.c:1695
#, c-format
msgid ""
"Failed to merge submodule %s, but a possible merge resolution exists:\n"
"%s\n"
msgstr ""
-#: merge-ort.c:1653 merge-recursive.c:1281
+#: merge-ort.c:1699 merge-recursive.c:1284
#, c-format
msgid ""
"If this is correct simply add it to the index for example\n"
@@ -4484,42 +4595,42 @@ msgid ""
"which will accept this suggestion.\n"
msgstr ""
-#: merge-ort.c:1666
+#: merge-ort.c:1712
#, c-format
msgid ""
"Failed to merge submodule %s, but multiple possible merges exist:\n"
"%s"
msgstr ""
-#: merge-ort.c:1887 merge-recursive.c:1372
+#: merge-ort.c:1937 merge-recursive.c:1375
msgid "Failed to execute internal merge"
msgstr ""
-#: merge-ort.c:1892 merge-recursive.c:1377
+#: merge-ort.c:1942 merge-recursive.c:1380
#, c-format
msgid "Unable to add %s to database"
msgstr ""
-#: merge-ort.c:1899 merge-recursive.c:1410
+#: merge-ort.c:1949 merge-recursive.c:1413
#, c-format
msgid "Auto-merging %s"
msgstr ""
-#: merge-ort.c:2038 merge-recursive.c:2132
+#: merge-ort.c:2088 merge-recursive.c:2135
#, c-format
msgid ""
"CONFLICT (implicit dir rename): Existing file/dir at %s in the way of "
"implicit directory rename(s) putting the following path(s) there: %s."
msgstr ""
-#: merge-ort.c:2048 merge-recursive.c:2142
+#: merge-ort.c:2098 merge-recursive.c:2145
#, c-format
msgid ""
"CONFLICT (implicit dir rename): Cannot map more than one path to %s; "
"implicit directory renames tried to put these paths there: %s"
msgstr ""
-#: merge-ort.c:2106
+#: merge-ort.c:2156
#, c-format
msgid ""
"CONFLICT (directory rename split): Unclear where to rename %s to; it was "
@@ -4527,47 +4638,47 @@ msgid ""
"majority of the files."
msgstr ""
-#: merge-ort.c:2260 merge-recursive.c:2478
+#: merge-ort.c:2310 merge-recursive.c:2481
#, c-format
msgid ""
"WARNING: Avoiding applying %s -> %s rename to %s, because %s itself was "
"renamed."
msgstr ""
-#: merge-ort.c:2400 merge-recursive.c:3261
+#: merge-ort.c:2450 merge-recursive.c:3264
#, c-format
msgid ""
"Path updated: %s added in %s inside a directory that was renamed in %s; "
"moving it to %s."
msgstr ""
-#: merge-ort.c:2407 merge-recursive.c:3268
+#: merge-ort.c:2457 merge-recursive.c:3271
#, c-format
msgid ""
"Path updated: %s renamed to %s in %s, inside a directory that was renamed in "
"%s; moving it to %s."
msgstr ""
-#: merge-ort.c:2420 merge-recursive.c:3264
+#: merge-ort.c:2470 merge-recursive.c:3267
#, c-format
msgid ""
"CONFLICT (file location): %s added in %s inside a directory that was renamed "
"in %s, suggesting it should perhaps be moved to %s."
msgstr ""
-#: merge-ort.c:2428 merge-recursive.c:3271
+#: merge-ort.c:2478 merge-recursive.c:3274
#, c-format
msgid ""
"CONFLICT (file location): %s renamed to %s in %s, inside a directory that "
"was renamed in %s, suggesting it should perhaps be moved to %s."
msgstr ""
-#: merge-ort.c:2584
+#: merge-ort.c:2634
#, c-format
msgid "CONFLICT (rename/rename): %s renamed to %s in %s and to %s in %s."
msgstr ""
-#: merge-ort.c:2679
+#: merge-ort.c:2729
#, c-format
msgid ""
"CONFLICT (rename involved in collision): rename of %s -> %s has content "
@@ -4575,67 +4686,67 @@ msgid ""
"markers."
msgstr ""
-#: merge-ort.c:2698 merge-ort.c:2722
+#: merge-ort.c:2748 merge-ort.c:2772
#, c-format
msgid "CONFLICT (rename/delete): %s renamed to %s in %s, but deleted in %s."
msgstr ""
-#: merge-ort.c:3212 merge-recursive.c:3022
+#: merge-ort.c:3261 merge-recursive.c:3025
#, c-format
msgid "cannot read object %s"
msgstr ""
-#: merge-ort.c:3215 merge-recursive.c:3025
+#: merge-ort.c:3264 merge-recursive.c:3028
#, c-format
msgid "object %s is not a blob"
msgstr ""
-#: merge-ort.c:3644
+#: merge-ort.c:3693
#, c-format
msgid ""
"CONFLICT (file/directory): directory in the way of %s from %s; moving it to "
"%s instead."
msgstr ""
-#: merge-ort.c:3721
+#: merge-ort.c:3770
#, c-format
msgid ""
"CONFLICT (distinct types): %s had different types on each side; renamed both "
"of them so each can be recorded somewhere."
msgstr ""
-#: merge-ort.c:3728
+#: merge-ort.c:3777
#, c-format
msgid ""
"CONFLICT (distinct types): %s had different types on each side; renamed one "
"of them so each can be recorded somewhere."
msgstr ""
-#: merge-ort.c:3819 merge-recursive.c:3101
+#: merge-ort.c:3866 merge-recursive.c:3104
msgid "content"
msgstr ""
-#: merge-ort.c:3821 merge-recursive.c:3105
+#: merge-ort.c:3868 merge-recursive.c:3108
msgid "add/add"
msgstr ""
-#: merge-ort.c:3823 merge-recursive.c:3150
+#: merge-ort.c:3870 merge-recursive.c:3153
msgid "submodule"
msgstr ""
-#: merge-ort.c:3825 merge-recursive.c:3151
+#: merge-ort.c:3872 merge-recursive.c:3154
#, c-format
msgid "CONFLICT (%s): Merge conflict in %s"
msgstr ""
-#: merge-ort.c:3869
+#: merge-ort.c:3916
#, c-format
msgid ""
"CONFLICT (modify/delete): %s deleted in %s and modified in %s. Version %s "
"of %s left in tree."
msgstr ""
-#: merge-ort.c:4165
+#: merge-ort.c:4212
#, c-format
msgid ""
"Note: %s not up to date and in way of checking out conflicted version; old "
@@ -4645,19 +4756,19 @@ msgstr ""
#. TRANSLATORS: The %s arguments are: 1) tree hash of a merge
#. base, and 2-3) the trees for the two trees we're merging.
#.
-#: merge-ort.c:4534
+#: merge-ort.c:4586
#, c-format
msgid "collecting merge info failed for trees %s, %s, %s"
msgstr ""
-#: merge-ort-wrappers.c:13 merge-recursive.c:3716
+#: merge-ort-wrappers.c:13 merge-recursive.c:3723
#, c-format
msgid ""
"Your local changes to the following files would be overwritten by merge:\n"
" %s"
msgstr ""
-#: merge-ort-wrappers.c:33 merge-recursive.c:3482 builtin/merge.c:405
+#: merge-ort-wrappers.c:33 merge-recursive.c:3485 builtin/merge.c:405
msgid "Already up to date."
msgstr ""
@@ -4694,7 +4805,7 @@ msgstr ""
msgid "refusing to lose untracked file at '%s'"
msgstr ""
-#: merge-recursive.c:956 builtin/cat-file.c:41
+#: merge-recursive.c:956 builtin/cat-file.c:47
#, c-format
msgid "cannot read object %s '%s'"
msgstr ""
@@ -4719,118 +4830,118 @@ msgstr ""
msgid "do not know what to do with %06o %s '%s'"
msgstr ""
-#: merge-recursive.c:1233 merge-recursive.c:1246
+#: merge-recursive.c:1236 merge-recursive.c:1249
#, c-format
msgid "Fast-forwarding submodule %s to the following commit:"
msgstr ""
-#: merge-recursive.c:1236 merge-recursive.c:1249
+#: merge-recursive.c:1239 merge-recursive.c:1252
#, c-format
msgid "Fast-forwarding submodule %s"
msgstr ""
-#: merge-recursive.c:1273
+#: merge-recursive.c:1276
#, c-format
msgid "Failed to merge submodule %s (merge following commits not found)"
msgstr ""
-#: merge-recursive.c:1277
+#: merge-recursive.c:1280
#, c-format
msgid "Failed to merge submodule %s (not fast-forward)"
msgstr ""
-#: merge-recursive.c:1278
+#: merge-recursive.c:1281
msgid "Found a possible merge resolution for the submodule:\n"
msgstr ""
-#: merge-recursive.c:1290
+#: merge-recursive.c:1293
#, c-format
msgid "Failed to merge submodule %s (multiple merges found)"
msgstr ""
-#: merge-recursive.c:1434
+#: merge-recursive.c:1437
#, c-format
msgid "Error: Refusing to lose untracked file at %s; writing to %s instead."
msgstr ""
-#: merge-recursive.c:1506
+#: merge-recursive.c:1509
#, c-format
msgid ""
"CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left "
"in tree."
msgstr ""
-#: merge-recursive.c:1511
+#: merge-recursive.c:1514
#, c-format
msgid ""
"CONFLICT (%s/delete): %s deleted in %s and %s to %s in %s. Version %s of %s "
"left in tree."
msgstr ""
-#: merge-recursive.c:1518
+#: merge-recursive.c:1521
#, c-format
msgid ""
"CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left "
"in tree at %s."
msgstr ""
-#: merge-recursive.c:1523
+#: merge-recursive.c:1526
#, c-format
msgid ""
"CONFLICT (%s/delete): %s deleted in %s and %s to %s in %s. Version %s of %s "
"left in tree at %s."
msgstr ""
-#: merge-recursive.c:1558
+#: merge-recursive.c:1561
msgid "rename"
msgstr ""
-#: merge-recursive.c:1558
+#: merge-recursive.c:1561
msgid "renamed"
msgstr ""
-#: merge-recursive.c:1609 merge-recursive.c:2515 merge-recursive.c:3178
+#: merge-recursive.c:1612 merge-recursive.c:2518 merge-recursive.c:3181
#, c-format
msgid "Refusing to lose dirty file at %s"
msgstr ""
-#: merge-recursive.c:1619
+#: merge-recursive.c:1622
#, c-format
msgid "Refusing to lose untracked file at %s, even though it's in the way."
msgstr ""
-#: merge-recursive.c:1677
+#: merge-recursive.c:1680
#, c-format
msgid "CONFLICT (rename/add): Rename %s->%s in %s. Added %s in %s"
msgstr ""
-#: merge-recursive.c:1708
+#: merge-recursive.c:1711
#, c-format
msgid "%s is a directory in %s adding as %s instead"
msgstr ""
-#: merge-recursive.c:1713
+#: merge-recursive.c:1716
#, c-format
msgid "Refusing to lose untracked file at %s; adding as %s instead"
msgstr ""
-#: merge-recursive.c:1740
+#: merge-recursive.c:1743
#, c-format
msgid ""
"CONFLICT (rename/rename): Rename \"%s\"->\"%s\" in branch \"%s\" rename \"%s"
"\"->\"%s\" in \"%s\"%s"
msgstr ""
-#: merge-recursive.c:1745
+#: merge-recursive.c:1748
msgid " (left unresolved)"
msgstr ""
-#: merge-recursive.c:1837
+#: merge-recursive.c:1840
#, c-format
msgid "CONFLICT (rename/rename): Rename %s->%s in %s. Rename %s->%s in %s"
msgstr ""
-#: merge-recursive.c:2100
+#: merge-recursive.c:2103
#, c-format
msgid ""
"CONFLICT (directory rename split): Unclear where to place %s because "
@@ -4838,85 +4949,85 @@ msgid ""
"getting a majority of the files."
msgstr ""
-#: merge-recursive.c:2234
+#: merge-recursive.c:2237
#, c-format
msgid ""
"CONFLICT (rename/rename): Rename directory %s->%s in %s. Rename directory %s-"
">%s in %s"
msgstr ""
-#: merge-recursive.c:3089
+#: merge-recursive.c:3092
msgid "modify"
msgstr ""
-#: merge-recursive.c:3089
+#: merge-recursive.c:3092
msgid "modified"
msgstr ""
-#: merge-recursive.c:3128
+#: merge-recursive.c:3131
#, c-format
msgid "Skipped %s (merged same as existing)"
msgstr ""
-#: merge-recursive.c:3181
+#: merge-recursive.c:3184
#, c-format
msgid "Adding as %s instead"
msgstr ""
-#: merge-recursive.c:3385
+#: merge-recursive.c:3388
#, c-format
msgid "Removing %s"
msgstr ""
-#: merge-recursive.c:3408
+#: merge-recursive.c:3411
msgid "file/directory"
msgstr ""
-#: merge-recursive.c:3413
+#: merge-recursive.c:3416
msgid "directory/file"
msgstr ""
-#: merge-recursive.c:3420
+#: merge-recursive.c:3423
#, c-format
msgid "CONFLICT (%s): There is a directory with name %s in %s. Adding %s as %s"
msgstr ""
-#: merge-recursive.c:3429
+#: merge-recursive.c:3432
#, c-format
msgid "Adding %s"
msgstr ""
-#: merge-recursive.c:3438
+#: merge-recursive.c:3441
#, c-format
msgid "CONFLICT (add/add): Merge conflict in %s"
msgstr ""
-#: merge-recursive.c:3491
+#: merge-recursive.c:3494
#, c-format
msgid "merging of trees %s and %s failed"
msgstr ""
-#: merge-recursive.c:3585
+#: merge-recursive.c:3588
msgid "Merging:"
msgstr ""
-#: merge-recursive.c:3598
+#: merge-recursive.c:3601
#, c-format
msgid "found %u common ancestor:"
msgid_plural "found %u common ancestors:"
msgstr[0] ""
msgstr[1] ""
-#: merge-recursive.c:3648
+#: merge-recursive.c:3651
msgid "merge returned no commit"
msgstr ""
-#: merge-recursive.c:3816
+#: merge-recursive.c:3823
#, c-format
msgid "Could not parse object '%s'"
msgstr ""
-#: merge-recursive.c:3834 builtin/merge.c:720 builtin/merge.c:906
+#: merge-recursive.c:3841 builtin/merge.c:720 builtin/merge.c:912
#: builtin/stash.c:489
msgid "Unable to write index."
msgstr ""
@@ -4925,221 +5036,225 @@ msgstr ""
msgid "failed to read the cache"
msgstr ""
-#: merge.c:102 rerere.c:704 builtin/am.c:1988 builtin/am.c:2022
-#: builtin/checkout.c:598 builtin/checkout.c:853 builtin/clone.c:706
+#: merge.c:102 rerere.c:705 builtin/am.c:1989 builtin/am.c:2023
+#: builtin/checkout.c:603 builtin/checkout.c:865 builtin/clone.c:714
#: builtin/stash.c:269
msgid "unable to write new index file"
msgstr ""
-#: midx.c:78
+#: midx.c:79
msgid "multi-pack-index OID fanout is of the wrong size"
msgstr ""
-#: midx.c:111
+#: midx.c:112
#, c-format
msgid "multi-pack-index file %s is too small"
msgstr ""
-#: midx.c:127
+#: midx.c:128
#, c-format
msgid "multi-pack-index signature 0x%08x does not match signature 0x%08x"
msgstr ""
-#: midx.c:132
+#: midx.c:133
#, c-format
msgid "multi-pack-index version %d not recognized"
msgstr ""
-#: midx.c:137
+#: midx.c:138
#, c-format
msgid "multi-pack-index hash version %u does not match version %u"
msgstr ""
-#: midx.c:154
+#: midx.c:155
msgid "multi-pack-index missing required pack-name chunk"
msgstr ""
-#: midx.c:156
+#: midx.c:157
msgid "multi-pack-index missing required OID fanout chunk"
msgstr ""
-#: midx.c:158
+#: midx.c:159
msgid "multi-pack-index missing required OID lookup chunk"
msgstr ""
-#: midx.c:160
+#: midx.c:161
msgid "multi-pack-index missing required object offsets chunk"
msgstr ""
-#: midx.c:176
+#: midx.c:180
#, c-format
msgid "multi-pack-index pack names out of order: '%s' before '%s'"
msgstr ""
-#: midx.c:224
+#: midx.c:228
#, c-format
msgid "bad pack-int-id: %u (%u total packs)"
msgstr ""
-#: midx.c:274
+#: midx.c:278
msgid "multi-pack-index stores a 64-bit offset, but off_t is too small"
msgstr ""
-#: midx.c:505
+#: midx.c:509
#, c-format
msgid "failed to add packfile '%s'"
msgstr ""
-#: midx.c:511
+#: midx.c:515
#, c-format
msgid "failed to open pack-index '%s'"
msgstr ""
-#: midx.c:579
+#: midx.c:583
#, c-format
msgid "failed to locate object %d in packfile"
msgstr ""
-#: midx.c:895
+#: midx.c:911
msgid "cannot store reverse index file"
msgstr ""
-#: midx.c:993
+#: midx.c:1009
#, c-format
msgid "could not parse line: %s"
msgstr ""
-#: midx.c:995
+#: midx.c:1011
#, c-format
msgid "malformed line: %s"
msgstr ""
-#: midx.c:1162
+#: midx.c:1181
msgid "ignoring existing multi-pack-index; checksum mismatch"
msgstr ""
-#: midx.c:1187
+#: midx.c:1206
msgid "could not load pack"
msgstr ""
-#: midx.c:1193
+#: midx.c:1212
#, c-format
msgid "could not open index for %s"
msgstr ""
-#: midx.c:1204
+#: midx.c:1223
msgid "Adding packfiles to multi-pack-index"
msgstr ""
-#: midx.c:1247
+#: midx.c:1266
#, c-format
msgid "unknown preferred pack: '%s'"
msgstr ""
-#: midx.c:1292
+#: midx.c:1311
#, c-format
msgid "cannot select preferred pack %s with no objects"
msgstr ""
-#: midx.c:1324
+#: midx.c:1343
#, c-format
msgid "did not see pack-file %s to drop"
msgstr ""
-#: midx.c:1370
+#: midx.c:1389
#, c-format
msgid "preferred pack '%s' is expired"
msgstr ""
-#: midx.c:1383
+#: midx.c:1402
msgid "no pack files to index."
msgstr ""
-#: midx.c:1420
+#: midx.c:1409
+msgid "refusing to write multi-pack .bitmap without any objects"
+msgstr ""
+
+#: midx.c:1451
msgid "could not write multi-pack bitmap"
msgstr ""
-#: midx.c:1430
+#: midx.c:1461
msgid "could not write multi-pack-index"
msgstr ""
-#: midx.c:1489 builtin/clean.c:37
+#: midx.c:1520 builtin/clean.c:37
#, c-format
msgid "failed to remove %s"
msgstr ""
-#: midx.c:1522
+#: midx.c:1553
#, c-format
msgid "failed to clear multi-pack-index at %s"
msgstr ""
-#: midx.c:1585
+#: midx.c:1616
msgid "multi-pack-index file exists, but failed to parse"
msgstr ""
-#: midx.c:1593
+#: midx.c:1624
msgid "incorrect checksum"
msgstr ""
-#: midx.c:1596
+#: midx.c:1627
msgid "Looking for referenced packfiles"
msgstr ""
-#: midx.c:1611
+#: midx.c:1642
#, c-format
msgid ""
"oid fanout out of order: fanout[%d] = %<PRIx32> > %<PRIx32> = fanout[%d]"
msgstr ""
-#: midx.c:1616
+#: midx.c:1647
msgid "the midx contains no oid"
msgstr ""
-#: midx.c:1625
+#: midx.c:1656
msgid "Verifying OID order in multi-pack-index"
msgstr ""
-#: midx.c:1634
+#: midx.c:1665
#, c-format
msgid "oid lookup out of order: oid[%d] = %s >= %s = oid[%d]"
msgstr ""
-#: midx.c:1654
+#: midx.c:1685
msgid "Sorting objects by packfile"
msgstr ""
-#: midx.c:1661
+#: midx.c:1692
msgid "Verifying object offsets"
msgstr ""
-#: midx.c:1677
+#: midx.c:1708
#, c-format
msgid "failed to load pack entry for oid[%d] = %s"
msgstr ""
-#: midx.c:1683
+#: midx.c:1714
#, c-format
msgid "failed to load pack-index for packfile %s"
msgstr ""
-#: midx.c:1692
+#: midx.c:1723
#, c-format
msgid "incorrect object offset for oid[%d] = %s: %<PRIx64> != %<PRIx64>"
msgstr ""
-#: midx.c:1719
+#: midx.c:1750
msgid "Counting referenced objects"
msgstr ""
-#: midx.c:1729
+#: midx.c:1760
msgid "Finding and deleting unreferenced packfiles"
msgstr ""
-#: midx.c:1921
+#: midx.c:1952
msgid "could not start pack-objects"
msgstr ""
-#: midx.c:1941
+#: midx.c:1972
msgid "could not finish pack-objects"
msgstr ""
@@ -5158,7 +5273,7 @@ msgstr ""
msgid "unable to join lazy_name thread: %s"
msgstr ""
-#: notes-merge.c:277
+#: notes-merge.c:276
#, c-format
msgid ""
"You have not concluded your previous notes merge (%s exists).\n"
@@ -5166,7 +5281,7 @@ msgid ""
"commit/abort the previous merge before you start a new notes merge."
msgstr ""
-#: notes-merge.c:284
+#: notes-merge.c:283
#, c-format
msgid "You have not concluded your notes merge (%s exists)."
msgstr ""
@@ -5194,271 +5309,340 @@ msgstr ""
msgid "Bad %s value: '%s'"
msgstr ""
-#: object-file.c:456
+#: object-file.c:457
#, c-format
msgid "object directory %s does not exist; check .git/objects/info/alternates"
msgstr ""
-#: object-file.c:514
+#: object-file.c:515
#, c-format
msgid "unable to normalize alternate object path: %s"
msgstr ""
-#: object-file.c:588
+#: object-file.c:589
#, c-format
msgid "%s: ignoring alternate object stores, nesting too deep"
msgstr ""
-#: object-file.c:595
+#: object-file.c:596
#, c-format
msgid "unable to normalize object directory: %s"
msgstr ""
-#: object-file.c:638
+#: object-file.c:639
msgid "unable to fdopen alternates lockfile"
msgstr ""
-#: object-file.c:656
+#: object-file.c:657
msgid "unable to read alternates file"
msgstr ""
-#: object-file.c:663
+#: object-file.c:664
msgid "unable to move new alternates file into place"
msgstr ""
-#: object-file.c:741
+#: object-file.c:742
#, c-format
msgid "path '%s' does not exist"
msgstr ""
-#: object-file.c:762
+#: object-file.c:763
#, c-format
msgid "reference repository '%s' as a linked checkout is not supported yet."
msgstr ""
-#: object-file.c:768
+#: object-file.c:769
#, c-format
msgid "reference repository '%s' is not a local repository."
msgstr ""
-#: object-file.c:774
+#: object-file.c:775
#, c-format
msgid "reference repository '%s' is shallow"
msgstr ""
-#: object-file.c:782
+#: object-file.c:783
#, c-format
msgid "reference repository '%s' is grafted"
msgstr ""
-#: object-file.c:813
+#: object-file.c:814
#, c-format
msgid "could not find object directory matching %s"
msgstr ""
-#: object-file.c:863
+#: object-file.c:864
#, c-format
msgid "invalid line while parsing alternate refs: %s"
msgstr ""
-#: object-file.c:1013
+#: object-file.c:1014
#, c-format
msgid "attempting to mmap %<PRIuMAX> over limit %<PRIuMAX>"
msgstr ""
-#: object-file.c:1048
+#: object-file.c:1049
#, c-format
msgid "mmap failed%s"
msgstr ""
-#: object-file.c:1214
+#: object-file.c:1230
#, c-format
msgid "object file %s is empty"
msgstr ""
-#: object-file.c:1333 object-file.c:2542
+#: object-file.c:1349 object-file.c:2588
#, c-format
msgid "corrupt loose object '%s'"
msgstr ""
-#: object-file.c:1335 object-file.c:2546
+#: object-file.c:1351 object-file.c:2592
#, c-format
msgid "garbage at end of loose object '%s'"
msgstr ""
-#: object-file.c:1457
+#: object-file.c:1473
#, c-format
msgid "unable to parse %s header"
msgstr ""
-#: object-file.c:1459
+#: object-file.c:1475
msgid "invalid object type"
msgstr ""
-#: object-file.c:1470
+#: object-file.c:1486
#, c-format
msgid "unable to unpack %s header"
msgstr ""
-#: object-file.c:1474
+#: object-file.c:1490
#, c-format
msgid "header for %s too long, exceeds %d bytes"
msgstr ""
-#: object-file.c:1704
+#: object-file.c:1720
#, c-format
msgid "failed to read object %s"
msgstr ""
-#: object-file.c:1708
+#: object-file.c:1724
#, c-format
msgid "replacement %s not found for %s"
msgstr ""
-#: object-file.c:1712
+#: object-file.c:1728
#, c-format
msgid "loose object %s (stored in %s) is corrupt"
msgstr ""
-#: object-file.c:1716
+#: object-file.c:1732
#, c-format
msgid "packed object %s (stored in %s) is corrupt"
msgstr ""
-#: object-file.c:1821
+#: object-file.c:1855
#, c-format
msgid "unable to write file %s"
msgstr ""
-#: object-file.c:1828
+#: object-file.c:1862
#, c-format
msgid "unable to set permission to '%s'"
msgstr ""
-#: object-file.c:1835
+#: object-file.c:1869
msgid "file write error"
msgstr ""
-#: object-file.c:1858
+#: object-file.c:1904
msgid "error when closing loose object file"
msgstr ""
-#: object-file.c:1925
+#: object-file.c:1971
#, c-format
msgid "insufficient permission for adding an object to repository database %s"
msgstr ""
-#: object-file.c:1927
+#: object-file.c:1973
msgid "unable to create temporary file"
msgstr ""
-#: object-file.c:1951
+#: object-file.c:1997
msgid "unable to write loose object file"
msgstr ""
-#: object-file.c:1957
+#: object-file.c:2003
#, c-format
msgid "unable to deflate new object %s (%d)"
msgstr ""
-#: object-file.c:1961
+#: object-file.c:2007
#, c-format
msgid "deflateEnd on object %s failed (%d)"
msgstr ""
-#: object-file.c:1965
+#: object-file.c:2011
#, c-format
msgid "confused by unstable object source data for %s"
msgstr ""
-#: object-file.c:1976 builtin/pack-objects.c:1243
+#: object-file.c:2022 builtin/pack-objects.c:1251
#, c-format
msgid "failed utime() on %s"
msgstr ""
-#: object-file.c:2054
+#: object-file.c:2100
#, c-format
msgid "cannot read object for %s"
msgstr ""
-#: object-file.c:2105
+#: object-file.c:2151
msgid "corrupt commit"
msgstr ""
-#: object-file.c:2113
+#: object-file.c:2159
msgid "corrupt tag"
msgstr ""
-#: object-file.c:2213
+#: object-file.c:2259
#, c-format
msgid "read error while indexing %s"
msgstr ""
-#: object-file.c:2216
+#: object-file.c:2262
#, c-format
msgid "short read while indexing %s"
msgstr ""
-#: object-file.c:2289 object-file.c:2299
+#: object-file.c:2335 object-file.c:2345
#, c-format
msgid "%s: failed to insert into database"
msgstr ""
-#: object-file.c:2305
+#: object-file.c:2351
#, c-format
msgid "%s: unsupported file type"
msgstr ""
-#: object-file.c:2329 builtin/fetch.c:1453
+#: object-file.c:2375 builtin/fetch.c:1494
#, c-format
msgid "%s is not a valid object"
msgstr ""
-#: object-file.c:2331
+#: object-file.c:2377
#, c-format
msgid "%s is not a valid '%s' object"
msgstr ""
-#: object-file.c:2358
+#: object-file.c:2404
#, c-format
msgid "unable to open %s"
msgstr ""
-#: object-file.c:2553
+#: object-file.c:2599
#, c-format
msgid "hash mismatch for %s (expected %s)"
msgstr ""
-#: object-file.c:2576
+#: object-file.c:2622
#, c-format
msgid "unable to mmap %s"
msgstr ""
-#: object-file.c:2582
+#: object-file.c:2628
#, c-format
msgid "unable to unpack header of %s"
msgstr ""
-#: object-file.c:2587
+#: object-file.c:2633
#, c-format
msgid "unable to parse header of %s"
msgstr ""
-#: object-file.c:2598
+#: object-file.c:2644
#, c-format
msgid "unable to unpack contents of %s"
msgstr ""
-#: object-name.c:480
+#. TRANSLATORS: This is a line of ambiguous object
+#. output shown when we cannot look up or parse the
+#. object in question. E.g. "deadbeef [bad object]".
+#.
+#: object-name.c:382
+#, c-format
+msgid "%s [bad object]"
+msgstr ""
+
+#. TRANSLATORS: This is a line of ambiguous commit
+#. object output. E.g.:
+#. *
+#. "deadbeef commit 2021-01-01 - Some Commit Message"
+#.
+#: object-name.c:407
+#, c-format
+msgid "%s commit %s - %s"
+msgstr ""
+
+#. TRANSLATORS: This is a line of ambiguous
+#. tag object output. E.g.:
+#. *
+#. "deadbeef tag 2022-01-01 - Some Tag Message"
+#. *
+#. The second argument is the YYYY-MM-DD found
+#. in the tag.
+#. *
+#. The third argument is the "tag" string
+#. from object.c.
+#.
+#: object-name.c:428
+#, c-format
+msgid "%s tag %s - %s"
+msgstr ""
+
+#. TRANSLATORS: This is a line of ambiguous
+#. tag object output where we couldn't parse
+#. the tag itself. E.g.:
+#. *
+#. "deadbeef [bad tag, could not parse it]"
+#.
+#: object-name.c:439
+#, c-format
+msgid "%s [bad tag, could not parse it]"
+msgstr ""
+
+#. TRANSLATORS: This is a line of ambiguous <type>
+#. object output. E.g. "deadbeef tree".
+#.
+#: object-name.c:447
+#, c-format
+msgid "%s tree"
+msgstr ""
+
+#. TRANSLATORS: This is a line of ambiguous <type>
+#. object output. E.g. "deadbeef blob".
+#.
+#: object-name.c:453
+#, c-format
+msgid "%s blob"
+msgstr ""
+
+#: object-name.c:569
#, c-format
msgid "short object ID %s is ambiguous"
msgstr ""
-#: object-name.c:491
-msgid "The candidates are:"
+#. TRANSLATORS: The argument is the list of ambiguous
+#. objects composed in show_ambiguous_object(). See
+#. its "TRANSLATORS" comments for details.
+#.
+#: object-name.c:591
+#, c-format
+msgid ""
+"The candidates are:\n"
+"%s"
msgstr ""
-#: object-name.c:790
+#: object-name.c:888
msgid ""
"Git normally never creates a ref that ends with 40 hex characters\n"
"because it will be ignored when you just specify 40-hex. These refs\n"
@@ -5471,62 +5655,67 @@ msgid ""
"running \"git config advice.objectNameWarning false\""
msgstr ""
-#: object-name.c:910
+#: object-name.c:1008
#, c-format
msgid "log for '%.*s' only goes back to %s"
msgstr ""
-#: object-name.c:918
+#: object-name.c:1016
#, c-format
msgid "log for '%.*s' only has %d entries"
msgstr ""
-#: object-name.c:1696
+#: object-name.c:1794
#, c-format
msgid "path '%s' exists on disk, but not in '%.*s'"
msgstr ""
-#: object-name.c:1702
+#: object-name.c:1800
#, c-format
msgid ""
"path '%s' exists, but not '%s'\n"
"hint: Did you mean '%.*s:%s' aka '%.*s:./%s'?"
msgstr ""
-#: object-name.c:1711
+#: object-name.c:1809
#, c-format
msgid "path '%s' does not exist in '%.*s'"
msgstr ""
-#: object-name.c:1739
+#: object-name.c:1837
#, c-format
msgid ""
"path '%s' is in the index, but not at stage %d\n"
"hint: Did you mean ':%d:%s'?"
msgstr ""
-#: object-name.c:1755
+#: object-name.c:1853
#, c-format
msgid ""
"path '%s' is in the index, but not '%s'\n"
"hint: Did you mean ':%d:%s' aka ':%d:./%s'?"
msgstr ""
-#: object-name.c:1763
+#: object-name.c:1861
#, c-format
msgid "path '%s' exists on disk, but not in the index"
msgstr ""
-#: object-name.c:1765
+#: object-name.c:1863
#, c-format
msgid "path '%s' does not exist (neither on disk nor in the index)"
msgstr ""
-#: object-name.c:1778
+#: object-name.c:1876
msgid "relative path syntax can't be used outside working tree"
msgstr ""
-#: object-name.c:1916
+#: object-name.c:1901
+#, c-format
+msgid "<object>:<path> required, only <object> '%s' given"
+msgstr ""
+
+#: object-name.c:2014
#, c-format
msgid "invalid object name '%.*s'."
msgstr ""
@@ -5551,7 +5740,7 @@ msgstr ""
msgid "unable to parse object: %s"
msgstr ""
-#: object.c:283 object.c:295
+#: object.c:283 object.c:294
#, c-format
msgid "hash mismatch %s"
msgstr ""
@@ -5560,21 +5749,21 @@ msgstr ""
msgid "multi-pack bitmap is missing required reverse index"
msgstr ""
-#: pack-bitmap.c:429
+#: pack-bitmap.c:433
msgid "load_reverse_index: could not open pack"
msgstr ""
-#: pack-bitmap.c:1069 pack-bitmap.c:1075 builtin/pack-objects.c:2424
+#: pack-bitmap.c:1072 pack-bitmap.c:1078 builtin/pack-objects.c:2432
#, c-format
msgid "unable to get size of %s"
msgstr ""
-#: pack-bitmap.c:1935
+#: pack-bitmap.c:1937
#, c-format
msgid "could not find %s in pack %s at offset %<PRIuMAX>"
msgstr ""
-#: pack-bitmap.c:1971 builtin/rev-list.c:92
+#: pack-bitmap.c:1973 builtin/rev-list.c:91
#, c-format
msgid "unable to get disk usage of %s"
msgstr ""
@@ -5618,7 +5807,7 @@ msgstr ""
msgid "failed to make %s readable"
msgstr ""
-#: pack-write.c:520
+#: pack-write.c:521
#, c-format
msgid "could not write '%s' promisor file"
msgstr ""
@@ -5952,234 +6141,238 @@ msgstr ""
msgid "Removing duplicate objects"
msgstr ""
-#: range-diff.c:67
+#: range-diff.c:68
msgid "could not start `log`"
msgstr ""
-#: range-diff.c:69
+#: range-diff.c:70
msgid "could not read `log` output"
msgstr ""
-#: range-diff.c:97 sequencer.c:5602
+#: range-diff.c:98 sequencer.c:5575
#, c-format
msgid "could not parse commit '%s'"
msgstr ""
-#: range-diff.c:111
+#: range-diff.c:109
#, c-format
msgid ""
"could not parse first line of `log` output: did not start with 'commit ': "
"'%s'"
msgstr ""
-#: range-diff.c:137
+#: range-diff.c:132
#, c-format
msgid "could not parse git header '%.*s'"
msgstr ""
-#: range-diff.c:304
+#: range-diff.c:300
msgid "failed to generate diff"
msgstr ""
-#: range-diff.c:562 range-diff.c:564
+#: range-diff.c:558 range-diff.c:560
#, c-format
msgid "could not parse log for '%s'"
msgstr ""
-#: read-cache.c:723
+#: read-cache.c:737
#, c-format
msgid "will not add file alias '%s' ('%s' already exists in index)"
msgstr ""
-#: read-cache.c:739
+#: read-cache.c:753
msgid "cannot create an empty blob in the object database"
msgstr ""
-#: read-cache.c:761
+#: read-cache.c:775
#, c-format
msgid "%s: can only add regular files, symbolic links or git-directories"
msgstr ""
-#: read-cache.c:766 builtin/submodule--helper.c:3242
+#: read-cache.c:780 builtin/submodule--helper.c:3359
#, c-format
msgid "'%s' does not have a commit checked out"
msgstr ""
-#: read-cache.c:818
+#: read-cache.c:832
#, c-format
msgid "unable to index file '%s'"
msgstr ""
-#: read-cache.c:837
+#: read-cache.c:851
#, c-format
msgid "unable to add '%s' to index"
msgstr ""
-#: read-cache.c:848
+#: read-cache.c:862
#, c-format
msgid "unable to stat '%s'"
msgstr ""
-#: read-cache.c:1386
+#: read-cache.c:1404
#, c-format
msgid "'%s' appears as both a file and as a directory"
msgstr ""
-#: read-cache.c:1601
+#: read-cache.c:1619
msgid "Refresh index"
msgstr ""
-#: read-cache.c:1733
+#: read-cache.c:1751
#, c-format
msgid ""
"index.version set, but the value is invalid.\n"
"Using version %i"
msgstr ""
-#: read-cache.c:1743
+#: read-cache.c:1761
#, c-format
msgid ""
"GIT_INDEX_VERSION set, but the value is invalid.\n"
"Using version %i"
msgstr ""
-#: read-cache.c:1799
+#: read-cache.c:1817
#, c-format
msgid "bad signature 0x%08x"
msgstr ""
-#: read-cache.c:1802
+#: read-cache.c:1820
#, c-format
msgid "bad index version %d"
msgstr ""
-#: read-cache.c:1811
+#: read-cache.c:1829
msgid "bad index file sha1 signature"
msgstr ""
-#: read-cache.c:1845
+#: read-cache.c:1863
#, c-format
msgid "index uses %.4s extension, which we do not understand"
msgstr ""
-#: read-cache.c:1847
+#: read-cache.c:1865
#, c-format
msgid "ignoring %.4s extension"
msgstr ""
-#: read-cache.c:1884
+#: read-cache.c:1902
#, c-format
msgid "unknown index entry format 0x%08x"
msgstr ""
-#: read-cache.c:1900
+#: read-cache.c:1918
#, c-format
msgid "malformed name field in the index, near path '%s'"
msgstr ""
-#: read-cache.c:1957
+#: read-cache.c:1975
msgid "unordered stage entries in index"
msgstr ""
-#: read-cache.c:1960
+#: read-cache.c:1978
#, c-format
msgid "multiple stage entries for merged file '%s'"
msgstr ""
-#: read-cache.c:1963
+#: read-cache.c:1981
#, c-format
msgid "unordered stage entries for '%s'"
msgstr ""
-#: read-cache.c:2078 read-cache.c:2384 rerere.c:549 rerere.c:583 rerere.c:1095
-#: submodule.c:1662 builtin/add.c:600 builtin/check-ignore.c:183
-#: builtin/checkout.c:527 builtin/checkout.c:719 builtin/clean.c:1013
-#: builtin/commit.c:378 builtin/diff-tree.c:122 builtin/grep.c:519
-#: builtin/mv.c:148 builtin/reset.c:499 builtin/rm.c:293
-#: builtin/submodule--helper.c:327 builtin/submodule--helper.c:3202
+#: read-cache.c:2096 read-cache.c:2402 rerere.c:549 rerere.c:583 rerere.c:1096
+#: submodule.c:1831 builtin/add.c:586 builtin/check-ignore.c:183
+#: builtin/checkout.c:532 builtin/checkout.c:724 builtin/clean.c:1016
+#: builtin/commit.c:379 builtin/diff-tree.c:122 builtin/grep.c:521
+#: builtin/mv.c:148 builtin/reset.c:506 builtin/rm.c:293
+#: builtin/submodule--helper.c:335 builtin/submodule--helper.c:3319
msgid "index file corrupt"
msgstr ""
-#: read-cache.c:2222
+#: read-cache.c:2240
#, c-format
msgid "unable to create load_cache_entries thread: %s"
msgstr ""
-#: read-cache.c:2235
+#: read-cache.c:2253
#, c-format
msgid "unable to join load_cache_entries thread: %s"
msgstr ""
-#: read-cache.c:2268
+#: read-cache.c:2286
#, c-format
msgid "%s: index file open failed"
msgstr ""
-#: read-cache.c:2272
+#: read-cache.c:2290
#, c-format
msgid "%s: cannot stat the open index"
msgstr ""
-#: read-cache.c:2276
+#: read-cache.c:2294
#, c-format
msgid "%s: index file smaller than expected"
msgstr ""
-#: read-cache.c:2280
+#: read-cache.c:2298
#, c-format
msgid "%s: unable to map index file%s"
msgstr ""
-#: read-cache.c:2323
+#: read-cache.c:2341
#, c-format
msgid "unable to create load_index_extensions thread: %s"
msgstr ""
-#: read-cache.c:2350
+#: read-cache.c:2368
#, c-format
msgid "unable to join load_index_extensions thread: %s"
msgstr ""
-#: read-cache.c:2396
+#: read-cache.c:2414
#, c-format
msgid "could not freshen shared index '%s'"
msgstr ""
-#: read-cache.c:2455
+#: read-cache.c:2473
#, c-format
msgid "broken index, expect %s in %s, got %s"
msgstr ""
-#: read-cache.c:3086 strbuf.c:1191 wrapper.c:641 builtin/merge.c:1150
+#: read-cache.c:3032
+msgid "cannot write split index for a sparse index"
+msgstr ""
+
+#: read-cache.c:3114 strbuf.c:1192 wrapper.c:717 builtin/merge.c:1156
#, c-format
msgid "could not close '%s'"
msgstr ""
-#: read-cache.c:3129
+#: read-cache.c:3157
msgid "failed to convert to a sparse-index"
msgstr ""
-#: read-cache.c:3200
+#: read-cache.c:3228
#, c-format
msgid "could not stat '%s'"
msgstr ""
-#: read-cache.c:3213
+#: read-cache.c:3241
#, c-format
msgid "unable to open git dir: %s"
msgstr ""
-#: read-cache.c:3225
+#: read-cache.c:3253
#, c-format
msgid "unable to unlink: %s"
msgstr ""
-#: read-cache.c:3254
+#: read-cache.c:3282
#, c-format
msgid "cannot fix permission bits on '%s'"
msgstr ""
-#: read-cache.c:3411
+#: read-cache.c:3439
#, c-format
msgid "%s: cannot drop to stage #0"
msgstr ""
@@ -6257,9 +6450,9 @@ msgid ""
"\n"
msgstr ""
-#: rebase-interactive.c:113 rerere.c:469 rerere.c:676 sequencer.c:3883
-#: sequencer.c:3909 sequencer.c:5708 builtin/fsck.c:328 builtin/gc.c:1791
-#: builtin/rebase.c:190
+#: rebase-interactive.c:113 rerere.c:469 rerere.c:677 sequencer.c:3879
+#: sequencer.c:3905 sequencer.c:5681 builtin/fsck.c:328 builtin/gc.c:1791
+#: builtin/rebase.c:191
#, c-format
msgid "could not write '%s'"
msgstr ""
@@ -6292,7 +6485,7 @@ msgstr ""
msgid "%s: 'preserve' superseded by 'merges'"
msgstr ""
-#: ref-filter.c:42 wt-status.c:2048
+#: ref-filter.c:42 wt-status.c:2057
msgid "gone"
msgstr ""
@@ -6458,81 +6651,91 @@ msgstr ""
msgid "--format=%.*s cannot be used with --python, --shell, --tcl"
msgstr ""
-#: ref-filter.c:1706
+#: ref-filter.c:1707
#, c-format
msgid "(no branch, rebasing %s)"
msgstr ""
-#: ref-filter.c:1709
+#: ref-filter.c:1710
#, c-format
msgid "(no branch, rebasing detached HEAD %s)"
msgstr ""
-#: ref-filter.c:1712
+#: ref-filter.c:1713
#, c-format
msgid "(no branch, bisect started on %s)"
msgstr ""
-#: ref-filter.c:1716
+#: ref-filter.c:1717
#, c-format
msgid "(HEAD detached at %s)"
msgstr ""
-#: ref-filter.c:1719
+#: ref-filter.c:1720
#, c-format
msgid "(HEAD detached from %s)"
msgstr ""
-#: ref-filter.c:1722
+#: ref-filter.c:1723
msgid "(no branch)"
msgstr ""
-#: ref-filter.c:1754 ref-filter.c:1972
+#: ref-filter.c:1755 ref-filter.c:1973
#, c-format
msgid "missing object %s for %s"
msgstr ""
-#: ref-filter.c:1764
+#: ref-filter.c:1765
#, c-format
msgid "parse_object_buffer failed on %s for %s"
msgstr ""
-#: ref-filter.c:2155
+#: ref-filter.c:2156
#, c-format
msgid "malformed object at '%s'"
msgstr ""
-#: ref-filter.c:2245
+#: ref-filter.c:2246
#, c-format
msgid "ignoring ref with broken name %s"
msgstr ""
-#: ref-filter.c:2250 refs.c:676
+#: ref-filter.c:2251 refs.c:672
#, c-format
msgid "ignoring broken ref %s"
msgstr ""
-#: ref-filter.c:2629
+#: ref-filter.c:2630
#, c-format
msgid "format: %%(end) atom missing"
msgstr ""
-#: ref-filter.c:2740
+#: ref-filter.c:2741
#, c-format
msgid "malformed object name %s"
msgstr ""
-#: ref-filter.c:2745
+#: ref-filter.c:2746
#, c-format
msgid "option `%s' must point to a commit"
msgstr ""
-#: refs.c:261
+#: reflog.c:407
+#, c-format
+msgid "not a reflog: %s"
+msgstr ""
+
+#: reflog.c:410
+#, c-format
+msgid "no reflog for '%s'"
+msgstr ""
+
+#: refs.c:262
#, c-format
msgid "%s does not point to a valid object!"
msgstr ""
-#: refs.c:563
+#: refs.c:561
#, c-format
msgid ""
"Using '%s' as the name for the initial branch. This default branch name\n"
@@ -6547,81 +6750,81 @@ msgid ""
"\tgit branch -m <name>\n"
msgstr ""
-#: refs.c:585
+#: refs.c:583
#, c-format
msgid "could not retrieve `%s`"
msgstr ""
-#: refs.c:595
+#: refs.c:593
#, c-format
msgid "invalid branch name: %s = %s"
msgstr ""
-#: refs.c:674
+#: refs.c:670
#, c-format
msgid "ignoring dangling symref %s"
msgstr ""
-#: refs.c:925
+#: refs.c:919
#, c-format
msgid "log for ref %s has gap after %s"
msgstr ""
-#: refs.c:932
+#: refs.c:926
#, c-format
msgid "log for ref %s unexpectedly ended on %s"
msgstr ""
-#: refs.c:997
+#: refs.c:991
#, c-format
msgid "log for %s is empty"
msgstr ""
-#: refs.c:1090
+#: refs.c:1086
#, c-format
msgid "refusing to update ref with bad name '%s'"
msgstr ""
-#: refs.c:1168
+#: refs.c:1164
#, c-format
msgid "update_ref failed for ref '%s': %s"
msgstr ""
-#: refs.c:2067
+#: refs.c:2059
#, c-format
msgid "multiple updates for ref '%s' not allowed"
msgstr ""
-#: refs.c:2150
+#: refs.c:2145
msgid "ref updates forbidden inside quarantine environment"
msgstr ""
-#: refs.c:2161
+#: refs.c:2156
msgid "ref updates aborted by hook"
msgstr ""
-#: refs.c:2269 refs.c:2299
+#: refs.c:2264 refs.c:2294
#, c-format
msgid "'%s' exists; cannot create '%s'"
msgstr ""
-#: refs.c:2275 refs.c:2310
+#: refs.c:2270 refs.c:2305
#, c-format
msgid "cannot process '%s' and '%s' at the same time"
msgstr ""
-#: refs/files-backend.c:1267
+#: refs/files-backend.c:1295
#, c-format
msgid "could not remove reference %s"
msgstr ""
-#: refs/files-backend.c:1281 refs/packed-backend.c:1549
-#: refs/packed-backend.c:1559
+#: refs/files-backend.c:1310 refs/packed-backend.c:1565
+#: refs/packed-backend.c:1575
#, c-format
msgid "could not delete reference %s: %s"
msgstr ""
-#: refs/files-backend.c:1284 refs/packed-backend.c:1562
+#: refs/files-backend.c:1313 refs/packed-backend.c:1578
#, c-format
msgid "could not delete references: %s"
msgstr ""
@@ -6644,37 +6847,37 @@ msgstr ""
msgid "more than one uploadpack given, using the first"
msgstr ""
-#: remote.c:699
+#: remote.c:698
#, c-format
msgid "Cannot fetch both %s and %s to %s"
msgstr ""
-#: remote.c:703
+#: remote.c:702
#, c-format
msgid "%s usually tracks %s, not %s"
msgstr ""
-#: remote.c:707
+#: remote.c:706
#, c-format
msgid "%s tracks both %s and %s"
msgstr ""
-#: remote.c:775
+#: remote.c:774
#, c-format
msgid "key '%s' of pattern had no '*'"
msgstr ""
-#: remote.c:785
+#: remote.c:784
#, c-format
msgid "value '%s' of pattern has no '*'"
msgstr ""
-#: remote.c:1192
+#: remote.c:1191
#, c-format
msgid "src refspec %s does not match any"
msgstr ""
-#: remote.c:1197
+#: remote.c:1196
#, c-format
msgid "src refspec %s matches more than one"
msgstr ""
@@ -6683,7 +6886,7 @@ msgstr ""
#. <remote> <src>:<dst>" push, and "being pushed ('%s')" is
#. the <src>.
#.
-#: remote.c:1212
+#: remote.c:1211
#, c-format
msgid ""
"The destination you provided is not a full refname (i.e.,\n"
@@ -6697,7 +6900,7 @@ msgid ""
"Neither worked, so we gave up. You must fully qualify the ref."
msgstr ""
-#: remote.c:1232
+#: remote.c:1231
#, c-format
msgid ""
"The <src> part of the refspec is a commit object.\n"
@@ -6705,7 +6908,7 @@ msgid ""
"'%s:refs/heads/%s'?"
msgstr ""
-#: remote.c:1237
+#: remote.c:1236
#, c-format
msgid ""
"The <src> part of the refspec is a tag object.\n"
@@ -6713,7 +6916,7 @@ msgid ""
"'%s:refs/tags/%s'?"
msgstr ""
-#: remote.c:1242
+#: remote.c:1241
#, c-format
msgid ""
"The <src> part of the refspec is a tree object.\n"
@@ -6721,7 +6924,7 @@ msgid ""
"'%s:refs/tags/%s'?"
msgstr ""
-#: remote.c:1247
+#: remote.c:1246
#, c-format
msgid ""
"The <src> part of the refspec is a blob object.\n"
@@ -6729,114 +6932,114 @@ msgid ""
"'%s:refs/tags/%s'?"
msgstr ""
-#: remote.c:1283
+#: remote.c:1282
#, c-format
msgid "%s cannot be resolved to branch"
msgstr ""
-#: remote.c:1294
+#: remote.c:1293
#, c-format
msgid "unable to delete '%s': remote ref does not exist"
msgstr ""
-#: remote.c:1306
+#: remote.c:1305
#, c-format
msgid "dst refspec %s matches more than one"
msgstr ""
-#: remote.c:1313
+#: remote.c:1312
#, c-format
msgid "dst ref %s receives from more than one src"
msgstr ""
-#: remote.c:1834 remote.c:1941
+#: remote.c:1833 remote.c:1940
msgid "HEAD does not point to a branch"
msgstr ""
-#: remote.c:1843
+#: remote.c:1842
#, c-format
msgid "no such branch: '%s'"
msgstr ""
-#: remote.c:1846
+#: remote.c:1845
#, c-format
msgid "no upstream configured for branch '%s'"
msgstr ""
-#: remote.c:1852
+#: remote.c:1851
#, c-format
msgid "upstream branch '%s' not stored as a remote-tracking branch"
msgstr ""
-#: remote.c:1867
+#: remote.c:1866
#, c-format
msgid "push destination '%s' on remote '%s' has no local tracking branch"
msgstr ""
-#: remote.c:1882
+#: remote.c:1881
#, c-format
msgid "branch '%s' has no remote for pushing"
msgstr ""
-#: remote.c:1892
+#: remote.c:1891
#, c-format
msgid "push refspecs for '%s' do not include '%s'"
msgstr ""
-#: remote.c:1905
+#: remote.c:1904
msgid "push has no destination (push.default is 'nothing')"
msgstr ""
-#: remote.c:1927
+#: remote.c:1926
msgid "cannot resolve 'simple' push to a single destination"
msgstr ""
-#: remote.c:2060
+#: remote.c:2059
#, c-format
msgid "couldn't find remote ref %s"
msgstr ""
-#: remote.c:2073
+#: remote.c:2072
#, c-format
msgid "* Ignoring funny ref '%s' locally"
msgstr ""
-#: remote.c:2236
+#: remote.c:2235
#, c-format
msgid "Your branch is based on '%s', but the upstream is gone.\n"
msgstr ""
-#: remote.c:2240
+#: remote.c:2239
msgid " (use \"git branch --unset-upstream\" to fixup)\n"
msgstr ""
-#: remote.c:2243
+#: remote.c:2242
#, c-format
msgid "Your branch is up to date with '%s'.\n"
msgstr ""
-#: remote.c:2247
+#: remote.c:2246
#, c-format
msgid "Your branch and '%s' refer to different commits.\n"
msgstr ""
-#: remote.c:2250
+#: remote.c:2249
#, c-format
msgid " (use \"%s\" for details)\n"
msgstr ""
-#: remote.c:2254
+#: remote.c:2253
#, c-format
msgid "Your branch is ahead of '%s' by %d commit.\n"
msgid_plural "Your branch is ahead of '%s' by %d commits.\n"
msgstr[0] ""
msgstr[1] ""
-#: remote.c:2260
+#: remote.c:2259
msgid " (use \"git push\" to publish your local commits)\n"
msgstr ""
-#: remote.c:2263
+#: remote.c:2262
#, c-format
msgid "Your branch is behind '%s' by %d commit, and can be fast-forwarded.\n"
msgid_plural ""
@@ -6844,11 +7047,11 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: remote.c:2271
+#: remote.c:2270
msgid " (use \"git pull\" to update your local branch)\n"
msgstr ""
-#: remote.c:2274
+#: remote.c:2273
#, c-format
msgid ""
"Your branch and '%s' have diverged,\n"
@@ -6859,11 +7062,11 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: remote.c:2284
+#: remote.c:2283
msgid " (use \"git pull\" to merge the remote branch into yours)\n"
msgstr ""
-#: remote.c:2476
+#: remote.c:2475
#, c-format
msgid "cannot parse expected object name '%s'"
msgstr ""
@@ -6901,104 +7104,108 @@ msgstr ""
msgid "failed to flush '%s'"
msgstr ""
-#: rerere.c:487 rerere.c:1023
+#: rerere.c:487 rerere.c:1024
#, c-format
msgid "could not parse conflict hunks in '%s'"
msgstr ""
-#: rerere.c:668
+#: rerere.c:669
#, c-format
msgid "failed utime() on '%s'"
msgstr ""
-#: rerere.c:678
+#: rerere.c:679
#, c-format
msgid "writing '%s' failed"
msgstr ""
-#: rerere.c:698
+#: rerere.c:699
#, c-format
msgid "Staged '%s' using previous resolution."
msgstr ""
-#: rerere.c:737
+#: rerere.c:738
#, c-format
msgid "Recorded resolution for '%s'."
msgstr ""
-#: rerere.c:772
+#: rerere.c:773
#, c-format
msgid "Resolved '%s' using previous resolution."
msgstr ""
-#: rerere.c:787
+#: rerere.c:788
#, c-format
msgid "cannot unlink stray '%s'"
msgstr ""
-#: rerere.c:791
+#: rerere.c:792
#, c-format
msgid "Recorded preimage for '%s'"
msgstr ""
-#: rerere.c:865 submodule.c:2121 builtin/log.c:2017
-#: builtin/submodule--helper.c:1777 builtin/submodule--helper.c:1820
+#: rerere.c:866 submodule.c:2290 builtin/log.c:2042
+#: builtin/submodule--helper.c:1786 builtin/submodule--helper.c:1833
#, c-format
msgid "could not create directory '%s'"
msgstr ""
-#: rerere.c:1041
+#: rerere.c:1042
#, c-format
msgid "failed to update conflicted state in '%s'"
msgstr ""
-#: rerere.c:1052 rerere.c:1059
+#: rerere.c:1053 rerere.c:1060
#, c-format
msgid "no remembered resolution for '%s'"
msgstr ""
-#: rerere.c:1061
+#: rerere.c:1062
#, c-format
msgid "cannot unlink '%s'"
msgstr ""
-#: rerere.c:1071
+#: rerere.c:1072
#, c-format
msgid "Updated preimage for '%s'"
msgstr ""
-#: rerere.c:1080
+#: rerere.c:1081
#, c-format
msgid "Forgot resolution for '%s'\n"
msgstr ""
-#: rerere.c:1191
+#: rerere.c:1192
msgid "unable to open rr-cache directory"
msgstr ""
-#: reset.c:42
+#: reset.c:112
msgid "could not determine HEAD revision"
msgstr ""
-#: reset.c:70 reset.c:76 sequencer.c:3700
+#: reset.c:141 reset.c:147 sequencer.c:3696
#, c-format
msgid "failed to find tree of %s"
msgstr ""
-#: revision.c:2347
+#: revision.c:2358
msgid "--unpacked=<packfile> no longer supported"
msgstr ""
-#: revision.c:2686
+#: revision.c:2712
msgid "your current branch appears to be broken"
msgstr ""
-#: revision.c:2689
+#: revision.c:2715
#, c-format
msgid "your current branch '%s' does not have any commits yet"
msgstr ""
-#: revision.c:2891
+#: revision.c:2901
+msgid "object filtering requires --objects"
+msgstr ""
+
+#: revision.c:2918
msgid "-L does not yet support diff formats besides -p and -s"
msgstr ""
@@ -7065,7 +7272,7 @@ msgstr ""
msgid "could not delete '%s'"
msgstr ""
-#: sequencer.c:345 sequencer.c:4751 builtin/rebase.c:563 builtin/rebase.c:1297
+#: sequencer.c:345 sequencer.c:4724 builtin/rebase.c:564 builtin/rebase.c:1326
#: builtin/rm.c:409
#, c-format
msgid "could not remove '%s'"
@@ -7114,13 +7321,13 @@ msgid ""
"run \"git revert --abort\"."
msgstr ""
-#: sequencer.c:448 sequencer.c:3292
+#: sequencer.c:448 sequencer.c:3288
#, c-format
msgid "could not lock '%s'"
msgstr ""
-#: sequencer.c:450 sequencer.c:3091 sequencer.c:3296 sequencer.c:3310
-#: sequencer.c:3561 sequencer.c:5618 strbuf.c:1188 wrapper.c:639
+#: sequencer.c:450 sequencer.c:3087 sequencer.c:3292 sequencer.c:3306
+#: sequencer.c:3557 sequencer.c:5591 strbuf.c:1189 wrapper.c:715
#, c-format
msgid "could not write to '%s'"
msgstr ""
@@ -7130,14 +7337,14 @@ msgstr ""
msgid "could not write eol to '%s'"
msgstr ""
-#: sequencer.c:460 sequencer.c:3096 sequencer.c:3298 sequencer.c:3312
-#: sequencer.c:3569
+#: sequencer.c:460 sequencer.c:3092 sequencer.c:3294 sequencer.c:3308
+#: sequencer.c:3565
#, c-format
msgid "failed to finalize '%s'"
msgstr ""
-#: sequencer.c:473 sequencer.c:1934 sequencer.c:3116 sequencer.c:3551
-#: sequencer.c:3679 builtin/am.c:289 builtin/commit.c:834 builtin/merge.c:1148
+#: sequencer.c:473 sequencer.c:1930 sequencer.c:3112 sequencer.c:3547
+#: sequencer.c:3675 builtin/am.c:290 builtin/commit.c:837 builtin/merge.c:1154
#, c-format
msgid "could not read '%s'"
msgstr ""
@@ -7156,7 +7363,7 @@ msgstr ""
msgid "%s: fast-forward"
msgstr ""
-#: sequencer.c:574 builtin/tag.c:614
+#: sequencer.c:574 builtin/tag.c:615
#, c-format
msgid "Invalid cleanup mode %s"
msgstr ""
@@ -7187,8 +7394,8 @@ msgstr ""
msgid "unable to dequote value of '%s'"
msgstr ""
-#: sequencer.c:841 wrapper.c:209 wrapper.c:379 builtin/am.c:756
-#: builtin/am.c:848 builtin/rebase.c:694
+#: sequencer.c:841 wrapper.c:219 wrapper.c:389 builtin/am.c:757
+#: builtin/am.c:849 builtin/rebase.c:699
#, c-format
msgid "could not open '%s' for reading"
msgstr ""
@@ -7272,365 +7479,360 @@ msgid ""
" git commit --amend --reset-author\n"
msgstr ""
-#: sequencer.c:1288
+#: sequencer.c:1287
msgid "couldn't look up newly created commit"
msgstr ""
-#: sequencer.c:1290
+#: sequencer.c:1289
msgid "could not parse newly created commit"
msgstr ""
-#: sequencer.c:1339
+#: sequencer.c:1336
msgid "unable to resolve HEAD after creating commit"
msgstr ""
-#: sequencer.c:1342
+#: sequencer.c:1338
msgid "detached HEAD"
msgstr ""
-#: sequencer.c:1346
+#: sequencer.c:1342
msgid " (root-commit)"
msgstr ""
-#: sequencer.c:1367
+#: sequencer.c:1363
msgid "could not parse HEAD"
msgstr ""
-#: sequencer.c:1369
+#: sequencer.c:1365
#, c-format
msgid "HEAD %s is not a commit!"
msgstr ""
-#: sequencer.c:1373 sequencer.c:1451 builtin/commit.c:1708
+#: sequencer.c:1369 sequencer.c:1447 builtin/commit.c:1707
msgid "could not parse HEAD commit"
msgstr ""
-#: sequencer.c:1429 sequencer.c:2314
+#: sequencer.c:1425 sequencer.c:2310
msgid "unable to parse commit author"
msgstr ""
-#: sequencer.c:1440 builtin/am.c:1643 builtin/merge.c:710
+#: sequencer.c:1436 builtin/am.c:1644 builtin/merge.c:710
msgid "git write-tree failed to write a tree"
msgstr ""
-#: sequencer.c:1473 sequencer.c:1593
+#: sequencer.c:1469 sequencer.c:1589
#, c-format
msgid "unable to read commit message from '%s'"
msgstr ""
-#: sequencer.c:1504 sequencer.c:1536
+#: sequencer.c:1500 sequencer.c:1532
#, c-format
msgid "invalid author identity '%s'"
msgstr ""
-#: sequencer.c:1510
+#: sequencer.c:1506
msgid "corrupt author: missing date information"
msgstr ""
-#: sequencer.c:1549 builtin/am.c:1670 builtin/commit.c:1822 builtin/merge.c:915
-#: builtin/merge.c:940 t/helper/test-fast-rebase.c:78
+#: sequencer.c:1545 builtin/am.c:1671 builtin/commit.c:1821 builtin/merge.c:921
+#: builtin/merge.c:946 t/helper/test-fast-rebase.c:78
msgid "failed to write commit object"
msgstr ""
-#: sequencer.c:1576 sequencer.c:4523 t/helper/test-fast-rebase.c:199
+#: sequencer.c:1572 sequencer.c:4496 t/helper/test-fast-rebase.c:199
#: t/helper/test-fast-rebase.c:217
#, c-format
msgid "could not update %s"
msgstr ""
-#: sequencer.c:1625
+#: sequencer.c:1621
#, c-format
msgid "could not parse commit %s"
msgstr ""
-#: sequencer.c:1630
+#: sequencer.c:1626
#, c-format
msgid "could not parse parent commit %s"
msgstr ""
-#: sequencer.c:1713 sequencer.c:1994
+#: sequencer.c:1709 sequencer.c:1990
#, c-format
msgid "unknown command: %d"
msgstr ""
-#: sequencer.c:1755
+#: sequencer.c:1751
msgid "This is the 1st commit message:"
msgstr ""
-#: sequencer.c:1756
+#: sequencer.c:1752
#, c-format
msgid "This is the commit message #%d:"
msgstr ""
-#: sequencer.c:1757
+#: sequencer.c:1753
msgid "The 1st commit message will be skipped:"
msgstr ""
-#: sequencer.c:1758
+#: sequencer.c:1754
#, c-format
msgid "The commit message #%d will be skipped:"
msgstr ""
-#: sequencer.c:1759
+#: sequencer.c:1755
#, c-format
msgid "This is a combination of %d commits."
msgstr ""
-#: sequencer.c:1906 sequencer.c:1963
+#: sequencer.c:1902 sequencer.c:1959
#, c-format
msgid "cannot write '%s'"
msgstr ""
-#: sequencer.c:1953
+#: sequencer.c:1949
msgid "need a HEAD to fixup"
msgstr ""
-#: sequencer.c:1955 sequencer.c:3596
+#: sequencer.c:1951 sequencer.c:3592
msgid "could not read HEAD"
msgstr ""
-#: sequencer.c:1957
+#: sequencer.c:1953
msgid "could not read HEAD's commit message"
msgstr ""
-#: sequencer.c:1981
+#: sequencer.c:1977
#, c-format
msgid "could not read commit message of %s"
msgstr ""
-#: sequencer.c:2091
+#: sequencer.c:2087
msgid "your index file is unmerged."
msgstr ""
-#: sequencer.c:2098
+#: sequencer.c:2094
msgid "cannot fixup root commit"
msgstr ""
-#: sequencer.c:2117
+#: sequencer.c:2113
#, c-format
msgid "commit %s is a merge but no -m option was given."
msgstr ""
-#: sequencer.c:2125 sequencer.c:2133
+#: sequencer.c:2121 sequencer.c:2129
#, c-format
msgid "commit %s does not have parent %d"
msgstr ""
-#: sequencer.c:2139
+#: sequencer.c:2135
#, c-format
msgid "cannot get commit message for %s"
msgstr ""
#. TRANSLATORS: The first %s will be a "todo" command like
#. "revert" or "pick", the second %s a SHA1.
-#: sequencer.c:2158
+#: sequencer.c:2154
#, c-format
msgid "%s: cannot parse parent commit %s"
msgstr ""
-#: sequencer.c:2224
+#: sequencer.c:2220
#, c-format
msgid "could not rename '%s' to '%s'"
msgstr ""
-#: sequencer.c:2284
+#: sequencer.c:2280
#, c-format
msgid "could not revert %s... %s"
msgstr ""
-#: sequencer.c:2285
+#: sequencer.c:2281
#, c-format
msgid "could not apply %s... %s"
msgstr ""
-#: sequencer.c:2306
+#: sequencer.c:2302
#, c-format
msgid "dropping %s %s -- patch contents already upstream\n"
msgstr ""
-#: sequencer.c:2364
+#: sequencer.c:2360
#, c-format
msgid "git %s: failed to read the index"
msgstr ""
-#: sequencer.c:2372
+#: sequencer.c:2368
#, c-format
msgid "git %s: failed to refresh the index"
msgstr ""
-#: sequencer.c:2452
+#: sequencer.c:2448
#, c-format
msgid "%s does not accept arguments: '%s'"
msgstr ""
-#: sequencer.c:2461
+#: sequencer.c:2457
#, c-format
msgid "missing arguments for %s"
msgstr ""
-#: sequencer.c:2504
+#: sequencer.c:2500
#, c-format
msgid "could not parse '%s'"
msgstr ""
-#: sequencer.c:2565
+#: sequencer.c:2561
#, c-format
msgid "invalid line %d: %.*s"
msgstr ""
-#: sequencer.c:2576
+#: sequencer.c:2572
#, c-format
msgid "cannot '%s' without a previous commit"
msgstr ""
-#: sequencer.c:2624 builtin/rebase.c:184
+#: sequencer.c:2620 builtin/rebase.c:185
#, c-format
msgid "could not read '%s'."
msgstr ""
-#: sequencer.c:2662
+#: sequencer.c:2658
msgid "cancelling a cherry picking in progress"
msgstr ""
-#: sequencer.c:2671
+#: sequencer.c:2667
msgid "cancelling a revert in progress"
msgstr ""
-#: sequencer.c:2711
+#: sequencer.c:2707
msgid "please fix this using 'git rebase --edit-todo'."
msgstr ""
-#: sequencer.c:2713
+#: sequencer.c:2709
#, c-format
msgid "unusable instruction sheet: '%s'"
msgstr ""
-#: sequencer.c:2718
+#: sequencer.c:2714
msgid "no commits parsed."
msgstr ""
-#: sequencer.c:2729
+#: sequencer.c:2725
msgid "cannot cherry-pick during a revert."
msgstr ""
-#: sequencer.c:2731
+#: sequencer.c:2727
msgid "cannot revert during a cherry-pick."
msgstr ""
-#: sequencer.c:2809
-#, c-format
-msgid "invalid value for %s: %s"
-msgstr ""
-
-#: sequencer.c:2918
+#: sequencer.c:2914
msgid "unusable squash-onto"
msgstr ""
-#: sequencer.c:2938
+#: sequencer.c:2934
#, c-format
msgid "malformed options sheet: '%s'"
msgstr ""
-#: sequencer.c:3033 sequencer.c:4902
+#: sequencer.c:3029 sequencer.c:4875
msgid "empty commit set passed"
msgstr ""
-#: sequencer.c:3050
+#: sequencer.c:3046
msgid "revert is already in progress"
msgstr ""
-#: sequencer.c:3052
+#: sequencer.c:3048
#, c-format
msgid "try \"git revert (--continue | %s--abort | --quit)\""
msgstr ""
-#: sequencer.c:3055
+#: sequencer.c:3051
msgid "cherry-pick is already in progress"
msgstr ""
-#: sequencer.c:3057
+#: sequencer.c:3053
#, c-format
msgid "try \"git cherry-pick (--continue | %s--abort | --quit)\""
msgstr ""
-#: sequencer.c:3071
+#: sequencer.c:3067
#, c-format
msgid "could not create sequencer directory '%s'"
msgstr ""
-#: sequencer.c:3086
+#: sequencer.c:3082
msgid "could not lock HEAD"
msgstr ""
-#: sequencer.c:3146 sequencer.c:4612
+#: sequencer.c:3142 sequencer.c:4585
msgid "no cherry-pick or revert in progress"
msgstr ""
-#: sequencer.c:3148 sequencer.c:3159
+#: sequencer.c:3144 sequencer.c:3155
msgid "cannot resolve HEAD"
msgstr ""
-#: sequencer.c:3150 sequencer.c:3194
+#: sequencer.c:3146 sequencer.c:3190
msgid "cannot abort from a branch yet to be born"
msgstr ""
-#: sequencer.c:3180 builtin/fetch.c:1004 builtin/fetch.c:1416
-#: builtin/grep.c:772
+#: sequencer.c:3176 builtin/fetch.c:1030 builtin/fetch.c:1457
+#: builtin/grep.c:774
#, c-format
msgid "cannot open '%s'"
msgstr ""
-#: sequencer.c:3182
+#: sequencer.c:3178
#, c-format
msgid "cannot read '%s': %s"
msgstr ""
-#: sequencer.c:3183
+#: sequencer.c:3179
msgid "unexpected end of file"
msgstr ""
-#: sequencer.c:3189
+#: sequencer.c:3185
#, c-format
msgid "stored pre-cherry-pick HEAD file '%s' is corrupt"
msgstr ""
-#: sequencer.c:3200
+#: sequencer.c:3196
msgid "You seem to have moved HEAD. Not rewinding, check your HEAD!"
msgstr ""
-#: sequencer.c:3241
+#: sequencer.c:3237
msgid "no revert in progress"
msgstr ""
-#: sequencer.c:3250
+#: sequencer.c:3246
msgid "no cherry-pick in progress"
msgstr ""
-#: sequencer.c:3260
+#: sequencer.c:3256
msgid "failed to skip the commit"
msgstr ""
-#: sequencer.c:3267
+#: sequencer.c:3263
msgid "there is nothing to skip"
msgstr ""
-#: sequencer.c:3270
+#: sequencer.c:3266
#, c-format
msgid ""
"have you committed already?\n"
"try \"git %s --continue\""
msgstr ""
-#: sequencer.c:3432 sequencer.c:4503
+#: sequencer.c:3428 sequencer.c:4476
msgid "cannot read HEAD"
msgstr ""
-#: sequencer.c:3449
+#: sequencer.c:3445
#, c-format
msgid "unable to copy '%s' to '%s'"
msgstr ""
-#: sequencer.c:3457
+#: sequencer.c:3453
#, c-format
msgid ""
"You can amend the commit now, with\n"
@@ -7642,27 +7844,27 @@ msgid ""
" git rebase --continue\n"
msgstr ""
-#: sequencer.c:3467
+#: sequencer.c:3463
#, c-format
msgid "Could not apply %s... %.*s"
msgstr ""
-#: sequencer.c:3474
+#: sequencer.c:3470
#, c-format
msgid "Could not merge %.*s"
msgstr ""
-#: sequencer.c:3488 sequencer.c:3492 builtin/difftool.c:633
+#: sequencer.c:3484 sequencer.c:3488 builtin/difftool.c:633
#, c-format
msgid "could not copy '%s' to '%s'"
msgstr ""
-#: sequencer.c:3503
+#: sequencer.c:3499
#, c-format
msgid "Executing: %s\n"
msgstr ""
-#: sequencer.c:3514
+#: sequencer.c:3510
#, c-format
msgid ""
"execution failed: %s\n"
@@ -7672,11 +7874,11 @@ msgid ""
"\n"
msgstr ""
-#: sequencer.c:3520
+#: sequencer.c:3516
msgid "and made changes to the index and/or the working tree\n"
msgstr ""
-#: sequencer.c:3526
+#: sequencer.c:3522
#, c-format
msgid ""
"execution succeeded: %s\n"
@@ -7687,90 +7889,90 @@ msgid ""
"\n"
msgstr ""
-#: sequencer.c:3586
+#: sequencer.c:3582
#, c-format
msgid "illegal label name: '%.*s'"
msgstr ""
-#: sequencer.c:3659
+#: sequencer.c:3655
msgid "writing fake root commit"
msgstr ""
-#: sequencer.c:3664
+#: sequencer.c:3660
msgid "writing squash-onto"
msgstr ""
-#: sequencer.c:3743
+#: sequencer.c:3739
#, c-format
msgid "could not resolve '%s'"
msgstr ""
-#: sequencer.c:3775
+#: sequencer.c:3771
msgid "cannot merge without a current revision"
msgstr ""
-#: sequencer.c:3797
+#: sequencer.c:3793
#, c-format
msgid "unable to parse '%.*s'"
msgstr ""
-#: sequencer.c:3806
+#: sequencer.c:3802
#, c-format
msgid "nothing to merge: '%.*s'"
msgstr ""
-#: sequencer.c:3818
+#: sequencer.c:3814
msgid "octopus merge cannot be executed on top of a [new root]"
msgstr ""
-#: sequencer.c:3873
+#: sequencer.c:3869
#, c-format
msgid "could not get commit message of '%s'"
msgstr ""
-#: sequencer.c:4019
+#: sequencer.c:4013
#, c-format
msgid "could not even attempt to merge '%.*s'"
msgstr ""
-#: sequencer.c:4035
+#: sequencer.c:4029
msgid "merge: Unable to write new index file"
msgstr ""
-#: sequencer.c:4116
+#: sequencer.c:4110
msgid "Cannot autostash"
msgstr ""
-#: sequencer.c:4119
+#: sequencer.c:4113
#, c-format
msgid "Unexpected stash response: '%s'"
msgstr ""
-#: sequencer.c:4125
+#: sequencer.c:4119
#, c-format
msgid "Could not create directory for '%s'"
msgstr ""
-#: sequencer.c:4128
+#: sequencer.c:4122
#, c-format
msgid "Created autostash: %s\n"
msgstr ""
-#: sequencer.c:4132
+#: sequencer.c:4124
msgid "could not reset --hard"
msgstr ""
-#: sequencer.c:4157
+#: sequencer.c:4148
#, c-format
msgid "Applied autostash.\n"
msgstr ""
-#: sequencer.c:4169
+#: sequencer.c:4160
#, c-format
msgid "cannot store %s"
msgstr ""
-#: sequencer.c:4172
+#: sequencer.c:4163
#, c-format
msgid ""
"%s\n"
@@ -7778,29 +7980,29 @@ msgid ""
"You can run \"git stash pop\" or \"git stash drop\" at any time.\n"
msgstr ""
-#: sequencer.c:4177
+#: sequencer.c:4168
msgid "Applying autostash resulted in conflicts."
msgstr ""
-#: sequencer.c:4178
+#: sequencer.c:4169
msgid "Autostash exists; creating a new stash entry."
msgstr ""
-#: sequencer.c:4252
+#: sequencer.c:4225
msgid "could not detach HEAD"
msgstr ""
-#: sequencer.c:4267
+#: sequencer.c:4240
#, c-format
msgid "Stopped at HEAD\n"
msgstr ""
-#: sequencer.c:4269
+#: sequencer.c:4242
#, c-format
msgid "Stopped at %s\n"
msgstr ""
-#: sequencer.c:4301
+#: sequencer.c:4274
#, c-format
msgid ""
"Could not execute the todo command\n"
@@ -7813,133 +8015,133 @@ msgid ""
" git rebase --continue\n"
msgstr ""
-#: sequencer.c:4347
+#: sequencer.c:4320
#, c-format
msgid "Rebasing (%d/%d)%s"
msgstr ""
-#: sequencer.c:4393
+#: sequencer.c:4366
#, c-format
msgid "Stopped at %s... %.*s\n"
msgstr ""
-#: sequencer.c:4463
+#: sequencer.c:4436
#, c-format
msgid "unknown command %d"
msgstr ""
-#: sequencer.c:4511
+#: sequencer.c:4484
msgid "could not read orig-head"
msgstr ""
-#: sequencer.c:4516
+#: sequencer.c:4489
msgid "could not read 'onto'"
msgstr ""
-#: sequencer.c:4530
+#: sequencer.c:4503
#, c-format
msgid "could not update HEAD to %s"
msgstr ""
-#: sequencer.c:4590
+#: sequencer.c:4563
#, c-format
msgid "Successfully rebased and updated %s.\n"
msgstr ""
-#: sequencer.c:4642
+#: sequencer.c:4615
msgid "cannot rebase: You have unstaged changes."
msgstr ""
-#: sequencer.c:4651
+#: sequencer.c:4624
msgid "cannot amend non-existing commit"
msgstr ""
-#: sequencer.c:4653
+#: sequencer.c:4626
#, c-format
msgid "invalid file: '%s'"
msgstr ""
-#: sequencer.c:4655
+#: sequencer.c:4628
#, c-format
msgid "invalid contents: '%s'"
msgstr ""
-#: sequencer.c:4658
+#: sequencer.c:4631
msgid ""
"\n"
"You have uncommitted changes in your working tree. Please, commit them\n"
"first and then run 'git rebase --continue' again."
msgstr ""
-#: sequencer.c:4694 sequencer.c:4733
+#: sequencer.c:4667 sequencer.c:4706
#, c-format
msgid "could not write file: '%s'"
msgstr ""
-#: sequencer.c:4749
+#: sequencer.c:4722
msgid "could not remove CHERRY_PICK_HEAD"
msgstr ""
-#: sequencer.c:4759
+#: sequencer.c:4732
msgid "could not commit staged changes."
msgstr ""
-#: sequencer.c:4879
+#: sequencer.c:4852
#, c-format
msgid "%s: can't cherry-pick a %s"
msgstr ""
-#: sequencer.c:4883
+#: sequencer.c:4856
#, c-format
msgid "%s: bad revision"
msgstr ""
-#: sequencer.c:4918
+#: sequencer.c:4891
msgid "can't revert as initial commit"
msgstr ""
-#: sequencer.c:5189 sequencer.c:5418
+#: sequencer.c:5162 sequencer.c:5391
#, c-format
msgid "skipped previously applied commit %s"
msgstr ""
-#: sequencer.c:5259 sequencer.c:5434
+#: sequencer.c:5232 sequencer.c:5407
msgid "use --reapply-cherry-picks to include skipped commits"
msgstr ""
-#: sequencer.c:5405
+#: sequencer.c:5378
msgid "make_script: unhandled options"
msgstr ""
-#: sequencer.c:5408
+#: sequencer.c:5381
msgid "make_script: error preparing revisions"
msgstr ""
-#: sequencer.c:5666 sequencer.c:5683
+#: sequencer.c:5639 sequencer.c:5656
msgid "nothing to do"
msgstr ""
-#: sequencer.c:5702
+#: sequencer.c:5675
msgid "could not skip unnecessary pick commands"
msgstr ""
-#: sequencer.c:5802
+#: sequencer.c:5775
msgid "the script was already rearranged."
msgstr ""
-#: setup.c:134
+#: setup.c:135
#, c-format
msgid "'%s' is outside repository at '%s'"
msgstr ""
-#: setup.c:186
+#: setup.c:187
#, c-format
msgid ""
"%s: no such path in the working tree.\n"
"Use 'git <command> -- <path>...' to specify paths that do not exist locally."
msgstr ""
-#: setup.c:199
+#: setup.c:200
#, c-format
msgid ""
"ambiguous argument '%s': unknown revision or path not in the working tree.\n"
@@ -7947,12 +8149,12 @@ msgid ""
"'git <command> [<revision>...] -- [<file>...]'"
msgstr ""
-#: setup.c:265
+#: setup.c:266
#, c-format
msgid "option '%s' must come before non-option arguments"
msgstr ""
-#: setup.c:284
+#: setup.c:285
#, c-format
msgid ""
"ambiguous argument '%s': both revision and filename\n"
@@ -7960,164 +8162,177 @@ msgid ""
"'git <command> [<revision>...] -- [<file>...]'"
msgstr ""
-#: setup.c:420
+#: setup.c:421
msgid "unable to set up work tree using invalid config"
msgstr ""
-#: setup.c:424 builtin/rev-parse.c:895
+#: setup.c:425 builtin/rev-parse.c:895
msgid "this operation must be run in a work tree"
msgstr ""
-#: setup.c:722
+#: setup.c:724
#, c-format
msgid "Expected git repo version <= %d, found %d"
msgstr ""
-#: setup.c:730
+#: setup.c:732
msgid "unknown repository extension found:"
msgid_plural "unknown repository extensions found:"
msgstr[0] ""
msgstr[1] ""
-#: setup.c:744
+#: setup.c:746
msgid "repo version is 0, but v1-only extension found:"
msgid_plural "repo version is 0, but v1-only extensions found:"
msgstr[0] ""
msgstr[1] ""
-#: setup.c:765
+#: setup.c:767
#, c-format
msgid "error opening '%s'"
msgstr ""
-#: setup.c:767
+#: setup.c:769
#, c-format
msgid "too large to be a .git file: '%s'"
msgstr ""
-#: setup.c:769
+#: setup.c:771
#, c-format
msgid "error reading %s"
msgstr ""
-#: setup.c:771
+#: setup.c:773
#, c-format
msgid "invalid gitfile format: %s"
msgstr ""
-#: setup.c:773
+#: setup.c:775
#, c-format
msgid "no path in gitfile: %s"
msgstr ""
-#: setup.c:775
+#: setup.c:777
#, c-format
msgid "not a git repository: %s"
msgstr ""
-#: setup.c:877
+#: setup.c:879
#, c-format
msgid "'$%s' too big"
msgstr ""
-#: setup.c:891
+#: setup.c:893
#, c-format
msgid "not a git repository: '%s'"
msgstr ""
-#: setup.c:920 setup.c:922 setup.c:953
+#: setup.c:922 setup.c:924 setup.c:955
#, c-format
msgid "cannot chdir to '%s'"
msgstr ""
-#: setup.c:925 setup.c:981 setup.c:991 setup.c:1030 setup.c:1038
+#: setup.c:927 setup.c:983 setup.c:993 setup.c:1032 setup.c:1040
msgid "cannot come back to cwd"
msgstr ""
-#: setup.c:1052
+#: setup.c:1054
#, c-format
msgid "failed to stat '%*s%s%s'"
msgstr ""
-#: setup.c:1295
+#: setup.c:1338
msgid "Unable to read current working directory"
msgstr ""
-#: setup.c:1304 setup.c:1310
+#: setup.c:1347 setup.c:1353
#, c-format
msgid "cannot change to '%s'"
msgstr ""
-#: setup.c:1315
+#: setup.c:1358
#, c-format
msgid "not a git repository (or any of the parent directories): %s"
msgstr ""
-#: setup.c:1321
+#: setup.c:1364
#, 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:1446
+#: setup.c:1374
+#, c-format
+msgid ""
+"unsafe repository ('%s' is owned by someone else)\n"
+"To add an exception for this directory, call:\n"
+"\n"
+"\tgit config --global --add safe.directory %s"
+msgstr ""
+
+#: setup.c:1502
#, 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:1508
+#: setup.c:1564
msgid "fork failed"
msgstr ""
-#: setup.c:1513
+#: setup.c:1569
msgid "setsid failed"
msgstr ""
-#: sparse-index.c:289
+#: sparse-index.c:285
#, c-format
msgid "index entry is a directory, but not sparse (%08x)"
msgstr ""
+#: split-index.c:9
+msgid "cannot use split index with a sparse index"
+msgstr ""
+
#. TRANSLATORS: IEC 80000-13:2008 gibibyte
-#: strbuf.c:850
+#: strbuf.c:851
#, c-format
msgid "%u.%2.2u GiB"
msgstr ""
#. TRANSLATORS: IEC 80000-13:2008 gibibyte/second
-#: strbuf.c:852
+#: strbuf.c:853
#, c-format
msgid "%u.%2.2u GiB/s"
msgstr ""
#. TRANSLATORS: IEC 80000-13:2008 mebibyte
-#: strbuf.c:860
+#: strbuf.c:861
#, c-format
msgid "%u.%2.2u MiB"
msgstr ""
#. TRANSLATORS: IEC 80000-13:2008 mebibyte/second
-#: strbuf.c:862
+#: strbuf.c:863
#, c-format
msgid "%u.%2.2u MiB/s"
msgstr ""
#. TRANSLATORS: IEC 80000-13:2008 kibibyte
-#: strbuf.c:869
+#: strbuf.c:870
#, c-format
msgid "%u.%2.2u KiB"
msgstr ""
#. TRANSLATORS: IEC 80000-13:2008 kibibyte/second
-#: strbuf.c:871
+#: strbuf.c:872
#, c-format
msgid "%u.%2.2u KiB/s"
msgstr ""
#. TRANSLATORS: IEC 80000-13:2008 byte
-#: strbuf.c:877
+#: strbuf.c:878
#, c-format
msgid "%u byte"
msgid_plural "%u bytes"
@@ -8125,207 +8340,217 @@ msgstr[0] ""
msgstr[1] ""
#. TRANSLATORS: IEC 80000-13:2008 byte/second
-#: strbuf.c:879
+#: strbuf.c:880
#, c-format
msgid "%u byte/s"
msgid_plural "%u bytes/s"
msgstr[0] ""
msgstr[1] ""
-#: strbuf.c:1186 wrapper.c:207 wrapper.c:377 builtin/am.c:765
-#: builtin/rebase.c:650
+#: strbuf.c:1187 wrapper.c:217 wrapper.c:387 builtin/am.c:766
+#: builtin/rebase.c:653
#, c-format
msgid "could not open '%s' for writing"
msgstr ""
-#: strbuf.c:1195
+#: strbuf.c:1196
#, c-format
msgid "could not edit '%s'"
msgstr ""
-#: submodule-config.c:237
+#: submodule-config.c:238
#, c-format
msgid "ignoring suspicious submodule name: %s"
msgstr ""
-#: submodule-config.c:304
+#: submodule-config.c:305
msgid "negative values not allowed for submodule.fetchjobs"
msgstr ""
-#: submodule-config.c:402
+#: submodule-config.c:403
#, c-format
msgid "ignoring '%s' which may be interpreted as a command-line option: %s"
msgstr ""
-#: submodule-config.c:499
+#: submodule-config.c:500 builtin/push.c:489 builtin/send-pack.c:148
#, c-format
-msgid "invalid value for %s"
+msgid "invalid value for '%s'"
msgstr ""
-#: submodule-config.c:767
+#: submodule-config.c:828
#, c-format
msgid "Could not update .gitmodules entry %s"
msgstr ""
-#: submodule.c:114 submodule.c:143
+#: submodule.c:115 submodule.c:144
msgid "Cannot change unmerged .gitmodules, resolve merge conflicts first"
msgstr ""
-#: submodule.c:118 submodule.c:147
+#: submodule.c:119 submodule.c:148
#, c-format
msgid "Could not find section in .gitmodules where path=%s"
msgstr ""
-#: submodule.c:154
+#: submodule.c:155
#, c-format
msgid "Could not remove .gitmodules entry for %s"
msgstr ""
-#: submodule.c:165
+#: submodule.c:166
msgid "staging updated .gitmodules failed"
msgstr ""
-#: submodule.c:358
+#: submodule.c:346
#, c-format
msgid "in unpopulated submodule '%s'"
msgstr ""
-#: submodule.c:389
+#: submodule.c:377
#, c-format
msgid "Pathspec '%s' is in submodule '%.*s'"
msgstr ""
-#: submodule.c:466
+#: submodule.c:454
#, c-format
msgid "bad --ignore-submodules argument: %s"
msgstr ""
-#: submodule.c:844
+#: submodule.c:866
#, c-format
msgid ""
"Submodule in commit %s at path: '%s' collides with a submodule named the "
"same. Skipping it."
msgstr ""
-#: submodule.c:954
+#: submodule.c:987
#, c-format
msgid "submodule entry '%s' (%s) is a %s, not a commit"
msgstr ""
-#: submodule.c:1042
+#: submodule.c:1069
#, c-format
msgid ""
"Could not run 'git rev-list <commits> --not --remotes -n 1' command in "
"submodule %s"
msgstr ""
-#: submodule.c:1165
+#: submodule.c:1192
#, c-format
msgid "process for submodule '%s' failed"
msgstr ""
-#: submodule.c:1194 builtin/branch.c:699 builtin/submodule--helper.c:2714
+#: submodule.c:1221 builtin/branch.c:714 builtin/submodule--helper.c:2827
msgid "Failed to resolve HEAD as a valid ref."
msgstr ""
-#: submodule.c:1205
+#: submodule.c:1232
#, c-format
msgid "Pushing submodule '%s'\n"
msgstr ""
-#: submodule.c:1208
+#: submodule.c:1235
#, c-format
msgid "Unable to push submodule '%s'\n"
msgstr ""
-#: submodule.c:1491
+#: submodule.c:1567
#, c-format
msgid "Fetching submodule %s%s\n"
msgstr ""
-#: submodule.c:1525
+#: submodule.c:1589
#, c-format
msgid "Could not access submodule '%s'\n"
msgstr ""
-#: submodule.c:1680
+#: submodule.c:1618
+#, c-format
+msgid "Could not access submodule '%s' at commit %s\n"
+msgstr ""
+
+#: submodule.c:1629
+#, c-format
+msgid "Fetching submodule %s%s at commit %s\n"
+msgstr ""
+
+#: submodule.c:1849
#, c-format
msgid ""
"Errors during submodule fetch:\n"
"%s"
msgstr ""
-#: submodule.c:1705
+#: submodule.c:1874
#, c-format
msgid "'%s' not recognized as a git repository"
msgstr ""
-#: submodule.c:1722
+#: submodule.c:1891
#, c-format
msgid "Could not run 'git status --porcelain=2' in submodule %s"
msgstr ""
-#: submodule.c:1763
+#: submodule.c:1932
#, c-format
msgid "'git status --porcelain=2' failed in submodule %s"
msgstr ""
-#: submodule.c:1838
+#: submodule.c:2007
#, c-format
msgid "could not start 'git status' in submodule '%s'"
msgstr ""
-#: submodule.c:1851
+#: submodule.c:2020
#, c-format
msgid "could not run 'git status' in submodule '%s'"
msgstr ""
-#: submodule.c:1868
+#: submodule.c:2037
#, c-format
msgid "Could not unset core.worktree setting in submodule '%s'"
msgstr ""
-#: submodule.c:1895 submodule.c:2210
+#: submodule.c:2064 submodule.c:2379
#, c-format
msgid "could not recurse into submodule '%s'"
msgstr ""
-#: submodule.c:1917
+#: submodule.c:2086
msgid "could not reset submodule index"
msgstr ""
-#: submodule.c:1959
+#: submodule.c:2128
#, c-format
msgid "submodule '%s' has dirty index"
msgstr ""
-#: submodule.c:2013
+#: submodule.c:2182
#, c-format
msgid "Submodule '%s' could not be updated."
msgstr ""
-#: submodule.c:2081
+#: submodule.c:2250
#, c-format
msgid "submodule git dir '%s' is inside git dir '%.*s'"
msgstr ""
-#: submodule.c:2102
+#: submodule.c:2271
#, c-format
msgid ""
"relocate_gitdir for submodule '%s' with more than one worktree not supported"
msgstr ""
-#: submodule.c:2114 submodule.c:2174
+#: submodule.c:2283 submodule.c:2343
#, c-format
msgid "could not lookup name for submodule '%s'"
msgstr ""
-#: submodule.c:2118
+#: submodule.c:2287
#, c-format
msgid "refusing to move '%s' into an existing git dir"
msgstr ""
-#: submodule.c:2124
+#: submodule.c:2293
#, c-format
msgid ""
"Migrating git directory of '%s%s' from\n"
@@ -8333,11 +8558,11 @@ msgid ""
"'%s'\n"
msgstr ""
-#: submodule.c:2255
+#: submodule.c:2424
msgid "could not start ls-files in .."
msgstr ""
-#: submodule.c:2295
+#: submodule.c:2464
#, c-format
msgid "ls-tree returned unexpected return code %d"
msgstr ""
@@ -8358,8 +8583,8 @@ msgstr ""
msgid "unknown value '%s' for key '%s'"
msgstr ""
-#: trailer.c:547 trailer.c:552 trailer.c:557 builtin/remote.c:299
-#: builtin/remote.c:327
+#: trailer.c:547 trailer.c:552 trailer.c:557 builtin/remote.c:300
+#: builtin/remote.c:328
#, c-format
msgid "more than one %s"
msgstr ""
@@ -8374,11 +8599,11 @@ msgstr ""
msgid "could not read input file '%s'"
msgstr ""
-#: trailer.c:766 builtin/mktag.c:89 imap-send.c:1573
+#: trailer.c:766 builtin/mktag.c:88 imap-send.c:1563
msgid "could not read from stdin"
msgstr ""
-#: trailer.c:1024 wrapper.c:684
+#: trailer.c:1024 wrapper.c:760
#, c-format
msgid "could not stat %s"
msgstr ""
@@ -8444,7 +8669,7 @@ msgstr ""
msgid "error while running fast-import"
msgstr ""
-#: transport-helper.c:549 transport-helper.c:1251
+#: transport-helper.c:549 transport-helper.c:1254
#, c-format
msgid "could not read ref %s"
msgstr ""
@@ -8462,7 +8687,7 @@ msgstr ""
msgid "invalid remote service path"
msgstr ""
-#: transport-helper.c:661 transport.c:1479
+#: transport-helper.c:661 transport.c:1496
msgid "operation not supported by protocol"
msgstr ""
@@ -8471,124 +8696,124 @@ msgstr ""
msgid "can't connect to subservice %s"
msgstr ""
-#: transport-helper.c:693 transport.c:404
+#: transport-helper.c:693 transport.c:415
msgid "--negotiate-only requires protocol v2"
msgstr ""
-#: transport-helper.c:755
+#: transport-helper.c:758
msgid "'option' without a matching 'ok/error' directive"
msgstr ""
-#: transport-helper.c:798
+#: transport-helper.c:801
#, c-format
msgid "expected ok/error, helper said '%s'"
msgstr ""
-#: transport-helper.c:859
+#: transport-helper.c:862
#, c-format
msgid "helper reported unexpected status of %s"
msgstr ""
-#: transport-helper.c:942
+#: transport-helper.c:945
#, c-format
msgid "helper %s does not support dry-run"
msgstr ""
-#: transport-helper.c:945
+#: transport-helper.c:948
#, c-format
msgid "helper %s does not support --signed"
msgstr ""
-#: transport-helper.c:948
+#: transport-helper.c:951
#, c-format
msgid "helper %s does not support --signed=if-asked"
msgstr ""
-#: transport-helper.c:953
+#: transport-helper.c:956
#, c-format
msgid "helper %s does not support --atomic"
msgstr ""
-#: transport-helper.c:957
+#: transport-helper.c:960
#, c-format
msgid "helper %s does not support --%s"
msgstr ""
-#: transport-helper.c:964
+#: transport-helper.c:967
#, c-format
msgid "helper %s does not support 'push-option'"
msgstr ""
-#: transport-helper.c:1064
+#: transport-helper.c:1067
msgid "remote-helper doesn't support push; refspec needed"
msgstr ""
-#: transport-helper.c:1069
+#: transport-helper.c:1072
#, c-format
msgid "helper %s does not support 'force'"
msgstr ""
-#: transport-helper.c:1116
+#: transport-helper.c:1119
msgid "couldn't run fast-export"
msgstr ""
-#: transport-helper.c:1121
+#: transport-helper.c:1124
msgid "error while running fast-export"
msgstr ""
-#: transport-helper.c:1146
+#: transport-helper.c:1149
#, c-format
msgid ""
"No refs in common and none specified; doing nothing.\n"
"Perhaps you should specify a branch.\n"
msgstr ""
-#: transport-helper.c:1228
+#: transport-helper.c:1231
#, c-format
msgid "unsupported object format '%s'"
msgstr ""
-#: transport-helper.c:1237
+#: transport-helper.c:1240
#, c-format
msgid "malformed response in ref list: %s"
msgstr ""
-#: transport-helper.c:1389
+#: transport-helper.c:1392
#, c-format
msgid "read(%s) failed"
msgstr ""
-#: transport-helper.c:1416
+#: transport-helper.c:1419
#, c-format
msgid "write(%s) failed"
msgstr ""
-#: transport-helper.c:1465
+#: transport-helper.c:1468
#, c-format
msgid "%s thread failed"
msgstr ""
-#: transport-helper.c:1469
+#: transport-helper.c:1472
#, c-format
msgid "%s thread failed to join: %s"
msgstr ""
-#: transport-helper.c:1488 transport-helper.c:1492
+#: transport-helper.c:1491 transport-helper.c:1495
#, c-format
msgid "can't start thread for copying data: %s"
msgstr ""
-#: transport-helper.c:1529
+#: transport-helper.c:1532
#, c-format
msgid "%s process failed to wait"
msgstr ""
-#: transport-helper.c:1533
+#: transport-helper.c:1536
#, c-format
msgid "%s process failed"
msgstr ""
-#: transport-helper.c:1551 transport-helper.c:1560
+#: transport-helper.c:1554 transport-helper.c:1563
msgid "can't start thread for copying data"
msgstr ""
@@ -8597,58 +8822,58 @@ msgstr ""
msgid "Would set upstream of '%s' to '%s' of '%s'\n"
msgstr ""
-#: transport.c:145
+#: transport.c:138
#, c-format
msgid "could not read bundle '%s'"
msgstr ""
-#: transport.c:227
+#: transport.c:234
#, c-format
msgid "transport: invalid depth option '%s'"
msgstr ""
-#: transport.c:279
+#: transport.c:289
msgid "see protocol.version in 'git help config' for more details"
msgstr ""
-#: transport.c:280
+#: transport.c:290
msgid "server options require protocol version 2 or later"
msgstr ""
-#: transport.c:407
+#: transport.c:418
msgid "server does not support wait-for-done"
msgstr ""
-#: transport.c:759
+#: transport.c:770
msgid "could not parse transport.color.* config"
msgstr ""
-#: transport.c:834
+#: transport.c:845
msgid "support for protocol v2 not implemented yet"
msgstr ""
-#: transport.c:967
+#: transport.c:978
#, c-format
msgid "unknown value for config '%s': %s"
msgstr ""
-#: transport.c:1033
+#: transport.c:1044
#, c-format
msgid "transport '%s' not allowed"
msgstr ""
-#: transport.c:1082
+#: transport.c:1093
msgid "git-over-rsync is no longer supported"
msgstr ""
-#: transport.c:1185
+#: transport.c:1196
#, c-format
msgid ""
"The following submodule paths contain changes that can\n"
"not be found on any remote:\n"
msgstr ""
-#: transport.c:1189
+#: transport.c:1200
#, c-format
msgid ""
"\n"
@@ -8664,11 +8889,11 @@ msgid ""
"\n"
msgstr ""
-#: transport.c:1197
+#: transport.c:1208
msgid "Aborting."
msgstr ""
-#: transport.c:1343
+#: transport.c:1354
msgid "failed to push all needed submodules"
msgstr ""
@@ -8888,16 +9113,16 @@ msgid ""
"colliding group is in the working tree:\n"
msgstr ""
-#: unpack-trees.c:1636
+#: unpack-trees.c:1664
msgid "Updating index flags"
msgstr ""
-#: unpack-trees.c:2803
+#: unpack-trees.c:2925
#, c-format
msgid "worktree and untracked commit have duplicate entries: %s"
msgstr ""
-#: upload-pack.c:1565
+#: upload-pack.c:1579
msgid "expected flush after fetch arguments"
msgstr ""
@@ -8934,123 +9159,137 @@ msgstr ""
msgid "Fetching objects"
msgstr ""
-#: worktree.c:238 builtin/am.c:2209 builtin/bisect--helper.c:156
+#: worktree.c:237 builtin/am.c:2210 builtin/bisect--helper.c:156
#, c-format
msgid "failed to read '%s'"
msgstr ""
-#: worktree.c:305
+#: worktree.c:304
#, c-format
msgid "'%s' at main working tree is not the repository directory"
msgstr ""
-#: worktree.c:316
+#: worktree.c:315
#, c-format
msgid "'%s' file does not contain absolute path to the working tree location"
msgstr ""
-#: worktree.c:328
+#: worktree.c:327
#, c-format
msgid "'%s' does not exist"
msgstr ""
-#: worktree.c:334
+#: worktree.c:333
#, c-format
msgid "'%s' is not a .git file, error code %d"
msgstr ""
-#: worktree.c:343
+#: worktree.c:342
#, c-format
msgid "'%s' does not point back to '%s'"
msgstr ""
-#: worktree.c:604
+#: worktree.c:600
msgid "not a directory"
msgstr ""
-#: worktree.c:613
+#: worktree.c:609
msgid ".git is not a file"
msgstr ""
-#: worktree.c:615
+#: worktree.c:611
msgid ".git file broken"
msgstr ""
-#: worktree.c:617
+#: worktree.c:613
msgid ".git file incorrect"
msgstr ""
-#: worktree.c:723
+#: worktree.c:719
msgid "not a valid path"
msgstr ""
-#: worktree.c:729
+#: worktree.c:725
msgid "unable to locate repository; .git is not a file"
msgstr ""
-#: worktree.c:733
+#: worktree.c:729
msgid "unable to locate repository; .git file does not reference a repository"
msgstr ""
-#: worktree.c:737
+#: worktree.c:733
msgid "unable to locate repository; .git file broken"
msgstr ""
-#: worktree.c:743
+#: worktree.c:739
msgid "gitdir unreadable"
msgstr ""
-#: worktree.c:747
+#: worktree.c:743
msgid "gitdir incorrect"
msgstr ""
-#: worktree.c:772
+#: worktree.c:768
msgid "not a valid directory"
msgstr ""
-#: worktree.c:778
+#: worktree.c:774
msgid "gitdir file does not exist"
msgstr ""
-#: worktree.c:783 worktree.c:792
+#: worktree.c:779 worktree.c:788
#, c-format
msgid "unable to read gitdir file (%s)"
msgstr ""
-#: worktree.c:802
+#: worktree.c:798
#, c-format
msgid "short read (expected %<PRIuMAX> bytes, read %<PRIuMAX>)"
msgstr ""
-#: worktree.c:810
+#: worktree.c:806
msgid "invalid gitdir file"
msgstr ""
-#: worktree.c:818
+#: worktree.c:814
msgid "gitdir file points to non-existent location"
msgstr ""
-#: wrapper.c:151
+#: worktree.c:830
+#, c-format
+msgid "unable to set %s in '%s'"
+msgstr ""
+
+#: worktree.c:832
+#, c-format
+msgid "unable to unset %s in '%s'"
+msgstr ""
+
+#: worktree.c:852
+msgid "failed to set extensions.worktreeConfig setting"
+msgstr ""
+
+#: wrapper.c:161
#, c-format
msgid "could not setenv '%s'"
msgstr ""
-#: wrapper.c:203
+#: wrapper.c:213
#, c-format
msgid "unable to create '%s'"
msgstr ""
-#: wrapper.c:205 wrapper.c:375
+#: wrapper.c:215 wrapper.c:385
#, c-format
msgid "could not open '%s' for reading and writing"
msgstr ""
-#: wrapper.c:406 wrapper.c:607
+#: wrapper.c:416 wrapper.c:683
#, c-format
msgid "unable to access '%s'"
msgstr ""
-#: wrapper.c:615
+#: wrapper.c:691
msgid "unable to get current working directory"
msgstr ""
@@ -9083,11 +9322,11 @@ msgstr ""
msgid " (use \"git rm <file>...\" to mark resolution)"
msgstr ""
-#: wt-status.c:211 wt-status.c:1131
+#: wt-status.c:211 wt-status.c:1140
msgid "Changes to be committed:"
msgstr ""
-#: wt-status.c:234 wt-status.c:1140
+#: wt-status.c:234 wt-status.c:1149
msgid "Changes not staged for commit:"
msgstr ""
@@ -9185,28 +9424,28 @@ msgstr ""
msgid "untracked content, "
msgstr ""
-#: wt-status.c:964
+#: wt-status.c:973
#, c-format
msgid "Your stash currently has %d entry"
msgid_plural "Your stash currently has %d entries"
msgstr[0] ""
msgstr[1] ""
-#: wt-status.c:995
+#: wt-status.c:1004
msgid "Submodules changed but not updated:"
msgstr ""
-#: wt-status.c:997
+#: wt-status.c:1006
msgid "Submodule changes to be committed:"
msgstr ""
-#: wt-status.c:1079
+#: wt-status.c:1088
msgid ""
"Do not modify or remove the line above.\n"
"Everything below it will be ignored."
msgstr ""
-#: wt-status.c:1171
+#: wt-status.c:1180
#, c-format
msgid ""
"\n"
@@ -9214,264 +9453,264 @@ msgid ""
"You can use '--no-ahead-behind' to avoid this.\n"
msgstr ""
-#: wt-status.c:1201
+#: wt-status.c:1210
msgid "You have unmerged paths."
msgstr ""
-#: wt-status.c:1204
+#: wt-status.c:1213
msgid " (fix conflicts and run \"git commit\")"
msgstr ""
-#: wt-status.c:1206
+#: wt-status.c:1215
msgid " (use \"git merge --abort\" to abort the merge)"
msgstr ""
-#: wt-status.c:1210
+#: wt-status.c:1219
msgid "All conflicts fixed but you are still merging."
msgstr ""
-#: wt-status.c:1213
+#: wt-status.c:1222
msgid " (use \"git commit\" to conclude merge)"
msgstr ""
-#: wt-status.c:1224
+#: wt-status.c:1233
msgid "You are in the middle of an am session."
msgstr ""
-#: wt-status.c:1227
+#: wt-status.c:1236
msgid "The current patch is empty."
msgstr ""
-#: wt-status.c:1232
+#: wt-status.c:1241
msgid " (fix conflicts and then run \"git am --continue\")"
msgstr ""
-#: wt-status.c:1234
+#: wt-status.c:1243
msgid " (use \"git am --skip\" to skip this patch)"
msgstr ""
-#: wt-status.c:1237
+#: wt-status.c:1246
msgid ""
" (use \"git am --allow-empty\" to record this patch as an empty commit)"
msgstr ""
-#: wt-status.c:1239
+#: wt-status.c:1248
msgid " (use \"git am --abort\" to restore the original branch)"
msgstr ""
-#: wt-status.c:1372
+#: wt-status.c:1381
msgid "git-rebase-todo is missing."
msgstr ""
-#: wt-status.c:1374
+#: wt-status.c:1383
msgid "No commands done."
msgstr ""
-#: wt-status.c:1377
+#: wt-status.c:1386
#, c-format
-msgid "Last command done (%d command done):"
-msgid_plural "Last commands done (%d commands done):"
+msgid "Last command done (%<PRIuMAX> command done):"
+msgid_plural "Last commands done (%<PRIuMAX> commands done):"
msgstr[0] ""
msgstr[1] ""
-#: wt-status.c:1388
+#: wt-status.c:1397
#, c-format
msgid " (see more in file %s)"
msgstr ""
-#: wt-status.c:1393
+#: wt-status.c:1402
msgid "No commands remaining."
msgstr ""
-#: wt-status.c:1396
+#: wt-status.c:1405
#, c-format
-msgid "Next command to do (%d remaining command):"
-msgid_plural "Next commands to do (%d remaining commands):"
+msgid "Next command to do (%<PRIuMAX> remaining command):"
+msgid_plural "Next commands to do (%<PRIuMAX> remaining commands):"
msgstr[0] ""
msgstr[1] ""
-#: wt-status.c:1404
+#: wt-status.c:1413
msgid " (use \"git rebase --edit-todo\" to view and edit)"
msgstr ""
-#: wt-status.c:1416
+#: wt-status.c:1425
#, c-format
msgid "You are currently rebasing branch '%s' on '%s'."
msgstr ""
-#: wt-status.c:1421
+#: wt-status.c:1430
msgid "You are currently rebasing."
msgstr ""
-#: wt-status.c:1434
+#: wt-status.c:1443
msgid " (fix conflicts and then run \"git rebase --continue\")"
msgstr ""
-#: wt-status.c:1436
+#: wt-status.c:1445
msgid " (use \"git rebase --skip\" to skip this patch)"
msgstr ""
-#: wt-status.c:1438
+#: wt-status.c:1447
msgid " (use \"git rebase --abort\" to check out the original branch)"
msgstr ""
-#: wt-status.c:1445
+#: wt-status.c:1454
msgid " (all conflicts fixed: run \"git rebase --continue\")"
msgstr ""
-#: wt-status.c:1449
+#: wt-status.c:1458
#, c-format
msgid ""
"You are currently splitting a commit while rebasing branch '%s' on '%s'."
msgstr ""
-#: wt-status.c:1454
+#: wt-status.c:1463
msgid "You are currently splitting a commit during a rebase."
msgstr ""
-#: wt-status.c:1457
+#: wt-status.c:1466
msgid " (Once your working directory is clean, run \"git rebase --continue\")"
msgstr ""
-#: wt-status.c:1461
+#: wt-status.c:1470
#, c-format
msgid "You are currently editing a commit while rebasing branch '%s' on '%s'."
msgstr ""
-#: wt-status.c:1466
+#: wt-status.c:1475
msgid "You are currently editing a commit during a rebase."
msgstr ""
-#: wt-status.c:1469
+#: wt-status.c:1478
msgid " (use \"git commit --amend\" to amend the current commit)"
msgstr ""
-#: wt-status.c:1471
+#: wt-status.c:1480
msgid ""
" (use \"git rebase --continue\" once you are satisfied with your changes)"
msgstr ""
-#: wt-status.c:1482
+#: wt-status.c:1491
msgid "Cherry-pick currently in progress."
msgstr ""
-#: wt-status.c:1485
+#: wt-status.c:1494
#, c-format
msgid "You are currently cherry-picking commit %s."
msgstr ""
-#: wt-status.c:1492
+#: wt-status.c:1501
msgid " (fix conflicts and run \"git cherry-pick --continue\")"
msgstr ""
-#: wt-status.c:1495
+#: wt-status.c:1504
msgid " (run \"git cherry-pick --continue\" to continue)"
msgstr ""
-#: wt-status.c:1498
+#: wt-status.c:1507
msgid " (all conflicts fixed: run \"git cherry-pick --continue\")"
msgstr ""
-#: wt-status.c:1500
+#: wt-status.c:1509
msgid " (use \"git cherry-pick --skip\" to skip this patch)"
msgstr ""
-#: wt-status.c:1502
+#: wt-status.c:1511
msgid " (use \"git cherry-pick --abort\" to cancel the cherry-pick operation)"
msgstr ""
-#: wt-status.c:1512
+#: wt-status.c:1521
msgid "Revert currently in progress."
msgstr ""
-#: wt-status.c:1515
+#: wt-status.c:1524
#, c-format
msgid "You are currently reverting commit %s."
msgstr ""
-#: wt-status.c:1521
+#: wt-status.c:1530
msgid " (fix conflicts and run \"git revert --continue\")"
msgstr ""
-#: wt-status.c:1524
+#: wt-status.c:1533
msgid " (run \"git revert --continue\" to continue)"
msgstr ""
-#: wt-status.c:1527
+#: wt-status.c:1536
msgid " (all conflicts fixed: run \"git revert --continue\")"
msgstr ""
-#: wt-status.c:1529
+#: wt-status.c:1538
msgid " (use \"git revert --skip\" to skip this patch)"
msgstr ""
-#: wt-status.c:1531
+#: wt-status.c:1540
msgid " (use \"git revert --abort\" to cancel the revert operation)"
msgstr ""
-#: wt-status.c:1541
+#: wt-status.c:1550
#, c-format
msgid "You are currently bisecting, started from branch '%s'."
msgstr ""
-#: wt-status.c:1545
+#: wt-status.c:1554
msgid "You are currently bisecting."
msgstr ""
-#: wt-status.c:1548
+#: wt-status.c:1557
msgid " (use \"git bisect reset\" to get back to the original branch)"
msgstr ""
-#: wt-status.c:1559
+#: wt-status.c:1568
msgid "You are in a sparse checkout."
msgstr ""
-#: wt-status.c:1562
+#: wt-status.c:1571
#, c-format
msgid "You are in a sparse checkout with %d%% of tracked files present."
msgstr ""
-#: wt-status.c:1806
+#: wt-status.c:1815
msgid "On branch "
msgstr ""
-#: wt-status.c:1813
+#: wt-status.c:1822
msgid "interactive rebase in progress; onto "
msgstr ""
-#: wt-status.c:1815
+#: wt-status.c:1824
msgid "rebase in progress; onto "
msgstr ""
-#: wt-status.c:1820
+#: wt-status.c:1829
msgid "HEAD detached at "
msgstr ""
-#: wt-status.c:1822
+#: wt-status.c:1831
msgid "HEAD detached from "
msgstr ""
-#: wt-status.c:1825
+#: wt-status.c:1834
msgid "Not currently on any branch."
msgstr ""
-#: wt-status.c:1842
+#: wt-status.c:1851
msgid "Initial commit"
msgstr ""
-#: wt-status.c:1843
+#: wt-status.c:1852
msgid "No commits yet"
msgstr ""
-#: wt-status.c:1857
+#: wt-status.c:1866
msgid "Untracked files"
msgstr ""
-#: wt-status.c:1859
+#: wt-status.c:1868
msgid "Ignored files"
msgstr ""
-#: wt-status.c:1863
+#: wt-status.c:1872
#, c-format
msgid ""
"It took %.2f seconds to enumerate untracked files. 'status -uno'\n"
@@ -9479,92 +9718,92 @@ msgid ""
"new files yourself (see 'git help status')."
msgstr ""
-#: wt-status.c:1869
+#: wt-status.c:1878
#, c-format
msgid "Untracked files not listed%s"
msgstr ""
-#: wt-status.c:1871
+#: wt-status.c:1880
msgid " (use -u option to show untracked files)"
msgstr ""
-#: wt-status.c:1877
+#: wt-status.c:1886
msgid "No changes"
msgstr ""
-#: wt-status.c:1882
+#: wt-status.c:1891
#, c-format
msgid "no changes added to commit (use \"git add\" and/or \"git commit -a\")\n"
msgstr ""
-#: wt-status.c:1886
+#: wt-status.c:1895
#, c-format
msgid "no changes added to commit\n"
msgstr ""
-#: wt-status.c:1890
+#: wt-status.c:1899
#, c-format
msgid ""
"nothing added to commit but untracked files present (use \"git add\" to "
"track)\n"
msgstr ""
-#: wt-status.c:1894
+#: wt-status.c:1903
#, c-format
msgid "nothing added to commit but untracked files present\n"
msgstr ""
-#: wt-status.c:1898
+#: wt-status.c:1907
#, c-format
msgid "nothing to commit (create/copy files and use \"git add\" to track)\n"
msgstr ""
-#: wt-status.c:1902 wt-status.c:1908
+#: wt-status.c:1911 wt-status.c:1917
#, c-format
msgid "nothing to commit\n"
msgstr ""
-#: wt-status.c:1905
+#: wt-status.c:1914
#, c-format
msgid "nothing to commit (use -u to show untracked files)\n"
msgstr ""
-#: wt-status.c:1910
+#: wt-status.c:1919
#, c-format
msgid "nothing to commit, working tree clean\n"
msgstr ""
-#: wt-status.c:2015
+#: wt-status.c:2024
msgid "No commits yet on "
msgstr ""
-#: wt-status.c:2019
+#: wt-status.c:2028
msgid "HEAD (no branch)"
msgstr ""
-#: wt-status.c:2050
+#: wt-status.c:2059
msgid "different"
msgstr ""
-#: wt-status.c:2052 wt-status.c:2060
+#: wt-status.c:2061 wt-status.c:2069
msgid "behind "
msgstr ""
-#: wt-status.c:2055 wt-status.c:2058
+#: wt-status.c:2064 wt-status.c:2067
msgid "ahead "
msgstr ""
#. TRANSLATORS: the action is e.g. "pull with rebase"
-#: wt-status.c:2596
+#: wt-status.c:2605
#, c-format
msgid "cannot %s: You have unstaged changes."
msgstr ""
-#: wt-status.c:2602
+#: wt-status.c:2611
msgid "additionally, your index contains uncommitted changes."
msgstr ""
-#: wt-status.c:2604
+#: wt-status.c:2613
#, c-format
msgid "cannot %s: Your index contains uncommitted changes."
msgstr ""
@@ -9587,145 +9826,149 @@ msgstr ""
msgid "could not start worker[0] for '%s'"
msgstr ""
-#: compat/precompose_utf8.c:58 builtin/clone.c:347
+#: compat/precompose_utf8.c:58 builtin/clone.c:353
#, c-format
msgid "failed to unlink '%s'"
msgstr ""
+#: compat/fsmonitor/fsm-listen-darwin.c:355
+msgid "Unable to create FSEventStream."
+msgstr ""
+
+#: compat/fsmonitor/fsm-listen-darwin.c:403
+msgid "Failed to start the FSEventStream"
+msgstr ""
+
#: builtin/add.c:26
msgid "git add [<options>] [--] <pathspec>..."
msgstr ""
-#: builtin/add.c:64
+#: builtin/add.c:63
#, c-format
msgid "cannot chmod %cx '%s'"
msgstr ""
-#: builtin/add.c:106
+#: builtin/add.c:105
#, c-format
msgid "unexpected diff status %c"
msgstr ""
-#: builtin/add.c:111 builtin/commit.c:298
+#: builtin/add.c:110 builtin/commit.c:299
msgid "updating files failed"
msgstr ""
-#: builtin/add.c:121
+#: builtin/add.c:120
#, c-format
msgid "remove '%s'\n"
msgstr ""
-#: builtin/add.c:205
+#: builtin/add.c:204
msgid "Unstaged changes after refreshing the index:"
msgstr ""
-#: builtin/add.c:313 builtin/rev-parse.c:993
+#: builtin/add.c:312 builtin/rev-parse.c:993
msgid "Could not read the index"
msgstr ""
-#: builtin/add.c:326
+#: builtin/add.c:325
msgid "Could not write patch"
msgstr ""
-#: builtin/add.c:329
+#: builtin/add.c:328
msgid "editing patch failed"
msgstr ""
-#: builtin/add.c:332
+#: builtin/add.c:331
#, c-format
msgid "Could not stat '%s'"
msgstr ""
-#: builtin/add.c:334
+#: builtin/add.c:333
msgid "Empty patch. Aborted."
msgstr ""
-#: builtin/add.c:340
+#: builtin/add.c:339
#, c-format
msgid "Could not apply '%s'"
msgstr ""
-#: builtin/add.c:348
+#: builtin/add.c:347
msgid "The following paths are ignored by one of your .gitignore files:\n"
msgstr ""
-#: builtin/add.c:368 builtin/clean.c:927 builtin/fetch.c:174 builtin/mv.c:124
+#: builtin/add.c:367 builtin/clean.c:927 builtin/fetch.c:175 builtin/mv.c:124
#: builtin/prune-packed.c:14 builtin/pull.c:208 builtin/push.c:550
-#: builtin/remote.c:1429 builtin/rm.c:244 builtin/send-pack.c:194
+#: builtin/remote.c:1454 builtin/rm.c:244 builtin/send-pack.c:194
msgid "dry run"
msgstr ""
-#: builtin/add.c:369 builtin/check-ignore.c:22 builtin/commit.c:1484
-#: builtin/count-objects.c:98 builtin/fsck.c:789 builtin/log.c:2313
+#: builtin/add.c:368 builtin/check-ignore.c:22 builtin/commit.c:1483
+#: builtin/count-objects.c:98 builtin/fsck.c:789 builtin/log.c:2338
#: builtin/mv.c:123 builtin/read-tree.c:120
msgid "be verbose"
msgstr ""
-#: builtin/add.c:371
+#: builtin/add.c:370
msgid "interactive picking"
msgstr ""
-#: builtin/add.c:372 builtin/checkout.c:1581 builtin/reset.c:409
+#: builtin/add.c:371 builtin/checkout.c:1599 builtin/reset.c:417
msgid "select hunks interactively"
msgstr ""
-#: builtin/add.c:373
+#: builtin/add.c:372
msgid "edit current diff and apply"
msgstr ""
-#: builtin/add.c:374
+#: builtin/add.c:373
msgid "allow adding otherwise ignored files"
msgstr ""
-#: builtin/add.c:375
+#: builtin/add.c:374
msgid "update tracked files"
msgstr ""
-#: builtin/add.c:376
+#: builtin/add.c:375
msgid "renormalize EOL of tracked files (implies -u)"
msgstr ""
-#: builtin/add.c:377
+#: builtin/add.c:376
msgid "record only the fact that the path will be added later"
msgstr ""
-#: builtin/add.c:378
+#: builtin/add.c:377
msgid "add changes from all tracked and untracked files"
msgstr ""
-#: builtin/add.c:381
+#: builtin/add.c:380
msgid "ignore paths removed in the working tree (same as --no-all)"
msgstr ""
-#: builtin/add.c:383
+#: builtin/add.c:382
msgid "don't add, only refresh the index"
msgstr ""
-#: builtin/add.c:384
+#: builtin/add.c:383
msgid "just skip files which cannot be added because of errors"
msgstr ""
-#: builtin/add.c:385
+#: builtin/add.c:384
msgid "check if - even missing - files are ignored in dry run"
msgstr ""
-#: builtin/add.c:386 builtin/mv.c:128 builtin/rm.c:251
+#: builtin/add.c:385 builtin/mv.c:128 builtin/rm.c:251
msgid "allow updating entries outside of the sparse-checkout cone"
msgstr ""
-#: builtin/add.c:388 builtin/update-index.c:1004
+#: builtin/add.c:387 builtin/update-index.c:1023
msgid "override the executable bit of the listed files"
msgstr ""
-#: builtin/add.c:390
+#: builtin/add.c:389
msgid "warn when adding an embedded repository"
msgstr ""
-#: builtin/add.c:392
-msgid "backend for `git stash -p`"
-msgstr ""
-
-#: builtin/add.c:410
+#: builtin/add.c:407
#, c-format
msgid ""
"You've added another git repository inside your current repository.\n"
@@ -9743,173 +9986,168 @@ msgid ""
"See \"git help submodule\" for more information."
msgstr ""
-#: builtin/add.c:439
+#: builtin/add.c:436
#, c-format
msgid "adding embedded git repository: %s"
msgstr ""
-#: builtin/add.c:459
+#: builtin/add.c:456
msgid ""
"Use -f if you really want to add them.\n"
"Turn this message off by running\n"
"\"git config advice.addIgnoredFile false\""
msgstr ""
-#: builtin/add.c:474
+#: builtin/add.c:471
msgid "adding files failed"
msgstr ""
-#: builtin/add.c:548
+#: builtin/add.c:534
#, c-format
msgid "--chmod param '%s' must be either -x or +x"
msgstr ""
-#: builtin/add.c:569 builtin/checkout.c:1751 builtin/commit.c:364
-#: builtin/reset.c:429 builtin/rm.c:275 builtin/stash.c:1713
+#: builtin/add.c:555 builtin/checkout.c:1770 builtin/commit.c:365
+#: builtin/reset.c:436 builtin/rm.c:275 builtin/stash.c:1702
#, c-format
msgid "'%s' and pathspec arguments cannot be used together"
msgstr ""
-#: builtin/add.c:580
+#: builtin/add.c:566
#, c-format
msgid "Nothing specified, nothing added.\n"
msgstr ""
-#: builtin/add.c:582
+#: builtin/add.c:568
msgid ""
"Maybe you wanted to say 'git add .'?\n"
"Turn this message off by running\n"
"\"git config advice.addEmptyPathspec false\""
msgstr ""
-#: builtin/am.c:202
-#, c-format
-msgid "Invalid value for --empty: %s"
-msgstr ""
-
-#: builtin/am.c:392
+#: builtin/am.c:393
msgid "could not parse author script"
msgstr ""
-#: builtin/am.c:482
+#: builtin/am.c:483
#, c-format
msgid "'%s' was deleted by the applypatch-msg hook"
msgstr ""
-#: builtin/am.c:524
+#: builtin/am.c:525
#, c-format
msgid "Malformed input line: '%s'."
msgstr ""
-#: builtin/am.c:562
+#: builtin/am.c:563
#, c-format
msgid "Failed to copy notes from '%s' to '%s'"
msgstr ""
-#: builtin/am.c:588
+#: builtin/am.c:589
msgid "fseek failed"
msgstr ""
-#: builtin/am.c:776
+#: builtin/am.c:777
#, c-format
msgid "could not parse patch '%s'"
msgstr ""
-#: builtin/am.c:841
+#: builtin/am.c:842
msgid "Only one StGIT patch series can be applied at once"
msgstr ""
-#: builtin/am.c:889
+#: builtin/am.c:890
msgid "invalid timestamp"
msgstr ""
-#: builtin/am.c:894 builtin/am.c:906
+#: builtin/am.c:895 builtin/am.c:907
msgid "invalid Date line"
msgstr ""
-#: builtin/am.c:901
+#: builtin/am.c:902
msgid "invalid timezone offset"
msgstr ""
-#: builtin/am.c:994
+#: builtin/am.c:995
msgid "Patch format detection failed."
msgstr ""
-#: builtin/am.c:999 builtin/clone.c:300
+#: builtin/am.c:1000 builtin/clone.c:306
#, c-format
msgid "failed to create directory '%s'"
msgstr ""
-#: builtin/am.c:1004
+#: builtin/am.c:1005
msgid "Failed to split patches."
msgstr ""
-#: builtin/am.c:1153
+#: builtin/am.c:1154
#, c-format
msgid "When you have resolved this problem, run \"%s --continue\"."
msgstr ""
-#: builtin/am.c:1154
+#: builtin/am.c:1155
#, c-format
msgid "If you prefer to skip this patch, run \"%s --skip\" instead."
msgstr ""
-#: builtin/am.c:1159
+#: builtin/am.c:1160
#, c-format
msgid "To record the empty patch as an empty commit, run \"%s --allow-empty\"."
msgstr ""
-#: builtin/am.c:1161
+#: builtin/am.c:1162
#, c-format
msgid "To restore the original branch and stop patching, run \"%s --abort\"."
msgstr ""
-#: builtin/am.c:1256
+#: builtin/am.c:1257
msgid "Patch sent with format=flowed; space at the end of lines might be lost."
msgstr ""
-#: builtin/am.c:1344
+#: builtin/am.c:1345
#, c-format
msgid "missing author line in commit %s"
msgstr ""
-#: builtin/am.c:1347
+#: builtin/am.c:1348
#, c-format
msgid "invalid ident line: %.*s"
msgstr ""
-#: builtin/am.c:1566
+#: builtin/am.c:1567
msgid "Repository lacks necessary blobs to fall back on 3-way merge."
msgstr ""
-#: builtin/am.c:1568
+#: builtin/am.c:1569
msgid "Using index info to reconstruct a base tree..."
msgstr ""
-#: builtin/am.c:1587
+#: builtin/am.c:1588
msgid ""
"Did you hand edit your patch?\n"
"It does not apply to blobs recorded in its index."
msgstr ""
-#: builtin/am.c:1593
+#: builtin/am.c:1594
msgid "Falling back to patching base and 3-way merge..."
msgstr ""
-#: builtin/am.c:1619
+#: builtin/am.c:1620
msgid "Failed to merge in the changes."
msgstr ""
-#: builtin/am.c:1651
+#: builtin/am.c:1652
msgid "applying to an empty history"
msgstr ""
-#: builtin/am.c:1703 builtin/am.c:1707
+#: builtin/am.c:1704 builtin/am.c:1708
#, c-format
msgid "cannot resume: %s does not exist."
msgstr ""
-#: builtin/am.c:1725
+#: builtin/am.c:1726
msgid "Commit Body is:"
msgstr ""
@@ -9917,64 +10155,64 @@ msgstr ""
#. in your translation. The program will only accept English
#. input at this point.
#.
-#: builtin/am.c:1735
+#: builtin/am.c:1736
#, c-format
msgid "Apply? [y]es/[n]o/[e]dit/[v]iew patch/[a]ccept all: "
msgstr ""
-#: builtin/am.c:1781 builtin/commit.c:409
+#: builtin/am.c:1782 builtin/commit.c:410
msgid "unable to write index file"
msgstr ""
-#: builtin/am.c:1785
+#: builtin/am.c:1786
#, c-format
msgid "Dirty index: cannot apply patches (dirty: %s)"
msgstr ""
-#: builtin/am.c:1827
+#: builtin/am.c:1828
#, c-format
msgid "Skipping: %.*s"
msgstr ""
-#: builtin/am.c:1832
+#: builtin/am.c:1833
#, c-format
msgid "Creating an empty commit: %.*s"
msgstr ""
-#: builtin/am.c:1836
+#: builtin/am.c:1837
msgid "Patch is empty."
msgstr ""
-#: builtin/am.c:1847 builtin/am.c:1916
+#: builtin/am.c:1848 builtin/am.c:1917
#, c-format
msgid "Applying: %.*s"
msgstr ""
-#: builtin/am.c:1864
+#: builtin/am.c:1865
msgid "No changes -- Patch already applied."
msgstr ""
-#: builtin/am.c:1870
+#: builtin/am.c:1871
#, c-format
msgid "Patch failed at %s %.*s"
msgstr ""
-#: builtin/am.c:1874
+#: builtin/am.c:1875
msgid "Use 'git am --show-current-patch=diff' to see the failed patch"
msgstr ""
-#: builtin/am.c:1920
+#: builtin/am.c:1921
msgid "No changes - recorded it as an empty commit."
msgstr ""
-#: builtin/am.c:1922
+#: builtin/am.c:1923
msgid ""
"No changes - did you forget to use 'git add'?\n"
"If there is nothing left to stage, chances are that something else\n"
"already introduced the same changes; you might want to skip this patch."
msgstr ""
-#: builtin/am.c:1930
+#: builtin/am.c:1931
msgid ""
"You still have unmerged paths in your index.\n"
"You should 'git add' each file with resolved conflicts to mark them as "
@@ -9982,209 +10220,200 @@ msgid ""
"You might run `git rm` on a file to accept \"deleted by them\" for it."
msgstr ""
-#: builtin/am.c:2038 builtin/am.c:2042 builtin/am.c:2054 builtin/reset.c:448
-#: builtin/reset.c:456
+#: builtin/am.c:2039 builtin/am.c:2043 builtin/am.c:2055 builtin/reset.c:455
+#: builtin/reset.c:463
#, c-format
msgid "Could not parse object '%s'."
msgstr ""
-#: builtin/am.c:2090 builtin/am.c:2166
+#: builtin/am.c:2091 builtin/am.c:2167
msgid "failed to clean index"
msgstr ""
-#: builtin/am.c:2134
+#: builtin/am.c:2135
msgid ""
"You seem to have moved HEAD since the last 'am' failure.\n"
"Not rewinding to ORIG_HEAD"
msgstr ""
-#: builtin/am.c:2242
-#, c-format
-msgid "Invalid value for --patch-format: %s"
-msgstr ""
-
-#: builtin/am.c:2285
-#, c-format
-msgid "Invalid value for --show-current-patch: %s"
-msgstr ""
-
-#: builtin/am.c:2289
+#: builtin/am.c:2292
#, c-format
msgid "options '%s=%s' and '%s=%s' cannot be used together"
msgstr ""
-#: builtin/am.c:2320
+#: builtin/am.c:2323
msgid "git am [<options>] [(<mbox> | <Maildir>)...]"
msgstr ""
-#: builtin/am.c:2321
+#: builtin/am.c:2324
msgid "git am [<options>] (--continue | --skip | --abort)"
msgstr ""
-#: builtin/am.c:2327
+#: builtin/am.c:2330
msgid "run interactively"
msgstr ""
-#: builtin/am.c:2329
+#: builtin/am.c:2332
msgid "historical option -- no-op"
msgstr ""
-#: builtin/am.c:2331
+#: builtin/am.c:2334
msgid "allow fall back on 3way merging if needed"
msgstr ""
-#: builtin/am.c:2332 builtin/init-db.c:547 builtin/prune-packed.c:16
-#: builtin/repack.c:642 builtin/stash.c:962
+#: builtin/am.c:2335 builtin/init-db.c:547 builtin/prune-packed.c:16
+#: builtin/repack.c:646 builtin/stash.c:946
msgid "be quiet"
msgstr ""
-#: builtin/am.c:2334
+#: builtin/am.c:2337
msgid "add a Signed-off-by trailer to the commit message"
msgstr ""
-#: builtin/am.c:2337
+#: builtin/am.c:2340
msgid "recode into utf8 (default)"
msgstr ""
-#: builtin/am.c:2339
+#: builtin/am.c:2342
msgid "pass -k flag to git-mailinfo"
msgstr ""
-#: builtin/am.c:2341
+#: builtin/am.c:2344
msgid "pass -b flag to git-mailinfo"
msgstr ""
-#: builtin/am.c:2343
+#: builtin/am.c:2346
msgid "pass -m flag to git-mailinfo"
msgstr ""
-#: builtin/am.c:2345
+#: builtin/am.c:2348
msgid "pass --keep-cr flag to git-mailsplit for mbox format"
msgstr ""
-#: builtin/am.c:2348
+#: builtin/am.c:2351
msgid "do not pass --keep-cr flag to git-mailsplit independent of am.keepcr"
msgstr ""
-#: builtin/am.c:2351
+#: builtin/am.c:2354
msgid "strip everything before a scissors line"
msgstr ""
-#: builtin/am.c:2353
+#: builtin/am.c:2356
msgid "pass it through git-mailinfo"
msgstr ""
-#: builtin/am.c:2356 builtin/am.c:2359 builtin/am.c:2362 builtin/am.c:2365
-#: builtin/am.c:2368 builtin/am.c:2371 builtin/am.c:2374 builtin/am.c:2377
-#: builtin/am.c:2383
+#: builtin/am.c:2359 builtin/am.c:2362 builtin/am.c:2365 builtin/am.c:2368
+#: builtin/am.c:2371 builtin/am.c:2374 builtin/am.c:2377 builtin/am.c:2380
+#: builtin/am.c:2386
msgid "pass it through git-apply"
msgstr ""
-#: builtin/am.c:2373 builtin/commit.c:1515 builtin/fmt-merge-msg.c:18
-#: builtin/fmt-merge-msg.c:21 builtin/grep.c:919 builtin/merge.c:263
+#: builtin/am.c:2376 builtin/commit.c:1514 builtin/fmt-merge-msg.c:18
+#: builtin/fmt-merge-msg.c:21 builtin/grep.c:920 builtin/merge.c:263
#: builtin/pull.c:142 builtin/pull.c:204 builtin/pull.c:221
-#: builtin/rebase.c:1046 builtin/repack.c:653 builtin/repack.c:657
-#: builtin/repack.c:659 builtin/show-branch.c:649 builtin/show-ref.c:172
-#: builtin/tag.c:445 parse-options.h:154 parse-options.h:175
-#: parse-options.h:317
+#: builtin/rebase.c:1074 builtin/repack.c:657 builtin/repack.c:661
+#: builtin/repack.c:663 builtin/show-branch.c:650 builtin/show-ref.c:172
+#: builtin/tag.c:446 parse-options.h:159 parse-options.h:180
+#: parse-options.h:348
msgid "n"
msgstr ""
-#: builtin/am.c:2379 builtin/branch.c:680 builtin/bugreport.c:109
-#: builtin/for-each-ref.c:41 builtin/replace.c:555 builtin/tag.c:479
-#: builtin/verify-tag.c:38
+#: builtin/am.c:2382 builtin/branch.c:695 builtin/bugreport.c:109
+#: builtin/cat-file.c:848 builtin/cat-file.c:852 builtin/cat-file.c:856
+#: builtin/for-each-ref.c:41 builtin/ls-tree.c:357 builtin/replace.c:555
+#: builtin/tag.c:480 builtin/verify-tag.c:38
msgid "format"
msgstr ""
-#: builtin/am.c:2380
+#: builtin/am.c:2383
msgid "format the patch(es) are in"
msgstr ""
-#: builtin/am.c:2386
+#: builtin/am.c:2389
msgid "override error message when patch failure occurs"
msgstr ""
-#: builtin/am.c:2388
+#: builtin/am.c:2391
msgid "continue applying patches after resolving a conflict"
msgstr ""
-#: builtin/am.c:2391
+#: builtin/am.c:2394
msgid "synonyms for --continue"
msgstr ""
-#: builtin/am.c:2394
+#: builtin/am.c:2397
msgid "skip the current patch"
msgstr ""
-#: builtin/am.c:2397
+#: builtin/am.c:2400
msgid "restore the original branch and abort the patching operation"
msgstr ""
-#: builtin/am.c:2400
+#: builtin/am.c:2403
msgid "abort the patching operation but keep HEAD where it is"
msgstr ""
-#: builtin/am.c:2404
+#: builtin/am.c:2407
msgid "show the patch being applied"
msgstr ""
-#: builtin/am.c:2408
+#: builtin/am.c:2411
msgid "record the empty patch as an empty commit"
msgstr ""
-#: builtin/am.c:2412
+#: builtin/am.c:2415
msgid "lie about committer date"
msgstr ""
-#: builtin/am.c:2414
+#: builtin/am.c:2417
msgid "use current timestamp for author date"
msgstr ""
-#: builtin/am.c:2416 builtin/commit-tree.c:118 builtin/commit.c:1643
-#: builtin/merge.c:302 builtin/pull.c:179 builtin/rebase.c:1099
-#: builtin/revert.c:117 builtin/tag.c:460
+#: builtin/am.c:2419 builtin/commit-tree.c:118 builtin/commit.c:1642
+#: builtin/merge.c:302 builtin/pull.c:179 builtin/rebase.c:1127
+#: builtin/revert.c:117 builtin/tag.c:461
msgid "key-id"
msgstr ""
-#: builtin/am.c:2417 builtin/rebase.c:1100
+#: builtin/am.c:2420 builtin/rebase.c:1128
msgid "GPG-sign commits"
msgstr ""
-#: builtin/am.c:2420
+#: builtin/am.c:2423
msgid "how to handle empty patches"
msgstr ""
-#: builtin/am.c:2423
+#: builtin/am.c:2426
msgid "(internal use for git-rebase)"
msgstr ""
-#: builtin/am.c:2441
+#: builtin/am.c:2444
msgid ""
"The -b/--binary option has been a no-op for long time, and\n"
"it will be removed. Please do not use it anymore."
msgstr ""
-#: builtin/am.c:2448
+#: builtin/am.c:2451
msgid "failed to read the index"
msgstr ""
-#: builtin/am.c:2463
+#: builtin/am.c:2466
#, c-format
msgid "previous rebase directory %s still exists but mbox given."
msgstr ""
-#: builtin/am.c:2487
+#: builtin/am.c:2490
#, c-format
msgid ""
"Stray %s directory found.\n"
"Use \"git am --abort\" to remove it."
msgstr ""
-#: builtin/am.c:2493
+#: builtin/am.c:2496
msgid "Resolve operation not in progress, we are not resuming."
msgstr ""
-#: builtin/am.c:2503
+#: builtin/am.c:2506
msgid "interactive mode requires patches on the command line"
msgstr ""
@@ -10221,12 +10450,6 @@ msgstr ""
msgid "git bisect--helper --bisect-reset [<commit>]"
msgstr ""
-#: builtin/bisect--helper.c:25
-msgid ""
-"git bisect--helper --bisect-terms [--term-good | --term-old | --term-bad | --"
-"term-new]"
-msgstr ""
-
#: builtin/bisect--helper.c:26
msgid ""
"git bisect--helper --bisect-start [--term-{new,bad}=<term> --term-{old,good}"
@@ -10234,10 +10457,6 @@ msgid ""
"[<paths>...]"
msgstr ""
-#: builtin/bisect--helper.c:28
-msgid "git bisect--helper --bisect-next"
-msgstr ""
-
#: builtin/bisect--helper.c:29
msgid "git bisect--helper --bisect-state (bad|new) [<rev>]"
msgstr ""
@@ -10254,10 +10473,6 @@ msgstr ""
msgid "git bisect--helper --bisect-skip [(<rev>|<range>)...]"
msgstr ""
-#: builtin/bisect--helper.c:33
-msgid "git bisect--helper --bisect-visualize"
-msgstr ""
-
#: builtin/bisect--helper.c:34
msgid "git bisect--helper --bisect-run <cmd>..."
msgstr ""
@@ -10468,111 +10683,121 @@ msgstr ""
msgid "cannot read file '%s' for replaying"
msgstr ""
-#: builtin/bisect--helper.c:1107 builtin/bisect--helper.c:1274
+#: builtin/bisect--helper.c:1120 builtin/bisect--helper.c:1152
+#, c-format
+msgid "running %s\n"
+msgstr ""
+
+#: builtin/bisect--helper.c:1145 builtin/bisect--helper.c:1335
msgid "bisect run failed: no command provided."
msgstr ""
-#: builtin/bisect--helper.c:1116
+#: builtin/bisect--helper.c:1166
#, c-format
-msgid "running %s\n"
+msgid "unable to verify '%s' on good revision"
+msgstr ""
+
+#: builtin/bisect--helper.c:1172
+#, c-format
+msgid "bogus exit code %d for good revision"
msgstr ""
-#: builtin/bisect--helper.c:1120
+#: builtin/bisect--helper.c:1180
#, c-format
msgid "bisect run failed: exit code %d from '%s' is < 0 or >= 128"
msgstr ""
-#: builtin/bisect--helper.c:1136
+#: builtin/bisect--helper.c:1195
#, c-format
msgid "cannot open file '%s' for writing"
msgstr ""
-#: builtin/bisect--helper.c:1152
+#: builtin/bisect--helper.c:1213
msgid "bisect run cannot continue any more"
msgstr ""
-#: builtin/bisect--helper.c:1154
+#: builtin/bisect--helper.c:1215
#, c-format
msgid "bisect run success"
msgstr ""
-#: builtin/bisect--helper.c:1157
+#: builtin/bisect--helper.c:1218
#, c-format
msgid "bisect found first bad commit"
msgstr ""
-#: builtin/bisect--helper.c:1160
+#: builtin/bisect--helper.c:1221
#, c-format
msgid ""
"bisect run failed: 'git bisect--helper --bisect-state %s' exited with error "
"code %d"
msgstr ""
-#: builtin/bisect--helper.c:1192
+#: builtin/bisect--helper.c:1253
msgid "reset the bisection state"
msgstr ""
-#: builtin/bisect--helper.c:1194
+#: builtin/bisect--helper.c:1255
msgid "check whether bad or good terms exist"
msgstr ""
-#: builtin/bisect--helper.c:1196
+#: builtin/bisect--helper.c:1257
msgid "print out the bisect terms"
msgstr ""
-#: builtin/bisect--helper.c:1198
+#: builtin/bisect--helper.c:1259
msgid "start the bisect session"
msgstr ""
-#: builtin/bisect--helper.c:1200
+#: builtin/bisect--helper.c:1261
msgid "find the next bisection commit"
msgstr ""
-#: builtin/bisect--helper.c:1202
+#: builtin/bisect--helper.c:1263
msgid "mark the state of ref (or refs)"
msgstr ""
-#: builtin/bisect--helper.c:1204
+#: builtin/bisect--helper.c:1265
msgid "list the bisection steps so far"
msgstr ""
-#: builtin/bisect--helper.c:1206
+#: builtin/bisect--helper.c:1267
msgid "replay the bisection process from the given file"
msgstr ""
-#: builtin/bisect--helper.c:1208
+#: builtin/bisect--helper.c:1269
msgid "skip some commits for checkout"
msgstr ""
-#: builtin/bisect--helper.c:1210
+#: builtin/bisect--helper.c:1271
msgid "visualize the bisection"
msgstr ""
-#: builtin/bisect--helper.c:1212
-msgid "use <cmd>... to automatically bisect."
+#: builtin/bisect--helper.c:1273
+msgid "use <cmd>... to automatically bisect"
msgstr ""
-#: builtin/bisect--helper.c:1214
+#: builtin/bisect--helper.c:1275
msgid "no log for BISECT_WRITE"
msgstr ""
-#: builtin/bisect--helper.c:1229
+#: builtin/bisect--helper.c:1290
msgid "--bisect-reset requires either no argument or a commit"
msgstr ""
-#: builtin/bisect--helper.c:1234
+#: builtin/bisect--helper.c:1295
msgid "--bisect-terms requires 0 or 1 argument"
msgstr ""
-#: builtin/bisect--helper.c:1243
+#: builtin/bisect--helper.c:1304
msgid "--bisect-next requires 0 arguments"
msgstr ""
-#: builtin/bisect--helper.c:1254
+#: builtin/bisect--helper.c:1315
msgid "--bisect-log requires 0 arguments"
msgstr ""
-#: builtin/bisect--helper.c:1259
+#: builtin/bisect--helper.c:1320
msgid "no logfile given"
msgstr ""
@@ -10593,142 +10818,133 @@ msgstr ""
msgid "must end with a color"
msgstr ""
-#: builtin/blame.c:724
-#, c-format
-msgid "invalid color '%s' in color.blame.repeatedLines"
-msgstr ""
-
-#: builtin/blame.c:742
-msgid "invalid value for blame.coloring"
-msgstr ""
-
-#: builtin/blame.c:841
+#: builtin/blame.c:842
#, c-format
msgid "cannot find revision %s to ignore"
msgstr ""
-#: builtin/blame.c:863
+#: builtin/blame.c:864
msgid "show blame entries as we find them, incrementally"
msgstr ""
-#: builtin/blame.c:864
+#: builtin/blame.c:865
msgid "do not show object names of boundary commits (Default: off)"
msgstr ""
-#: builtin/blame.c:865
+#: builtin/blame.c:866
msgid "do not treat root commits as boundaries (Default: off)"
msgstr ""
-#: builtin/blame.c:866
+#: builtin/blame.c:867
msgid "show work cost statistics"
msgstr ""
-#: builtin/blame.c:867 builtin/checkout.c:1536 builtin/clone.c:94
-#: builtin/commit-graph.c:75 builtin/commit-graph.c:228 builtin/fetch.c:180
+#: builtin/blame.c:868 builtin/checkout.c:1554 builtin/clone.c:98
+#: builtin/commit-graph.c:75 builtin/commit-graph.c:228 builtin/fetch.c:181
#: builtin/merge.c:301 builtin/multi-pack-index.c:103
#: builtin/multi-pack-index.c:154 builtin/multi-pack-index.c:180
#: builtin/multi-pack-index.c:208 builtin/pull.c:120 builtin/push.c:566
-#: builtin/send-pack.c:202
+#: builtin/remote.c:683 builtin/send-pack.c:202
msgid "force progress reporting"
msgstr ""
-#: builtin/blame.c:868
+#: builtin/blame.c:869
msgid "show output score for blame entries"
msgstr ""
-#: builtin/blame.c:869
+#: builtin/blame.c:870
msgid "show original filename (Default: auto)"
msgstr ""
-#: builtin/blame.c:870
+#: builtin/blame.c:871
msgid "show original linenumber (Default: off)"
msgstr ""
-#: builtin/blame.c:871
+#: builtin/blame.c:872
msgid "show in a format designed for machine consumption"
msgstr ""
-#: builtin/blame.c:872
+#: builtin/blame.c:873
msgid "show porcelain format with per-line commit information"
msgstr ""
-#: builtin/blame.c:873
+#: builtin/blame.c:874
msgid "use the same output mode as git-annotate (Default: off)"
msgstr ""
-#: builtin/blame.c:874
+#: builtin/blame.c:875
msgid "show raw timestamp (Default: off)"
msgstr ""
-#: builtin/blame.c:875
+#: builtin/blame.c:876
msgid "show long commit SHA1 (Default: off)"
msgstr ""
-#: builtin/blame.c:876
+#: builtin/blame.c:877
msgid "suppress author name and timestamp (Default: off)"
msgstr ""
-#: builtin/blame.c:877
+#: builtin/blame.c:878
msgid "show author email instead of name (Default: off)"
msgstr ""
-#: builtin/blame.c:878
+#: builtin/blame.c:879
msgid "ignore whitespace differences"
msgstr ""
-#: builtin/blame.c:879 builtin/log.c:1838
+#: builtin/blame.c:880 builtin/log.c:1857
msgid "rev"
msgstr ""
-#: builtin/blame.c:879
+#: builtin/blame.c:880
msgid "ignore <rev> when blaming"
msgstr ""
-#: builtin/blame.c:880
+#: builtin/blame.c:881
msgid "ignore revisions from <file>"
msgstr ""
-#: builtin/blame.c:881
+#: builtin/blame.c:882
msgid "color redundant metadata from previous line differently"
msgstr ""
-#: builtin/blame.c:882
+#: builtin/blame.c:883
msgid "color lines by age"
msgstr ""
-#: builtin/blame.c:883
+#: builtin/blame.c:884
msgid "spend extra cycles to find better match"
msgstr ""
-#: builtin/blame.c:884
+#: builtin/blame.c:885
msgid "use revisions from <file> instead of calling git-rev-list"
msgstr ""
-#: builtin/blame.c:885
+#: builtin/blame.c:886
msgid "use <file>'s contents as the final image"
msgstr ""
-#: builtin/blame.c:886 builtin/blame.c:887
+#: builtin/blame.c:887 builtin/blame.c:888
msgid "score"
msgstr ""
-#: builtin/blame.c:886
+#: builtin/blame.c:887
msgid "find line copies within and across files"
msgstr ""
-#: builtin/blame.c:887
+#: builtin/blame.c:888
msgid "find line movements within and across files"
msgstr ""
-#: builtin/blame.c:888
+#: builtin/blame.c:889
msgid "range"
msgstr ""
-#: builtin/blame.c:889
+#: builtin/blame.c:890
msgid "process only line range <start>,<end> or function :<funcname>"
msgstr ""
-#: builtin/blame.c:947
+#: builtin/blame.c:949
msgid "--progress can't be used with --incremental or porcelain formats"
msgstr ""
@@ -10740,18 +10956,18 @@ msgstr ""
#. your language may need more or fewer display
#. columns.
#.
-#: builtin/blame.c:998
+#: builtin/blame.c:1000
msgid "4 years, 11 months ago"
msgstr ""
-#: builtin/blame.c:1114
+#: builtin/blame.c:1116
#, c-format
msgid "file %s has only %lu line"
msgid_plural "file %s has only %lu lines"
msgstr[0] ""
msgstr[1] ""
-#: builtin/blame.c:1159
+#: builtin/blame.c:1161
msgid "Blaming lines"
msgstr ""
@@ -10760,160 +10976,166 @@ msgid "git branch [<options>] [-r | -a] [--merged] [--no-merged]"
msgstr ""
#: builtin/branch.c:30
-msgid "git branch [<options>] [-l] [-f] <branch-name> [<start-point>]"
+msgid ""
+"git branch [<options>] [-f] [--recurse-submodules] <branch-name> [<start-"
+"point>]"
msgstr ""
#: builtin/branch.c:31
-msgid "git branch [<options>] [-r] (-d | -D) <branch-name>..."
+msgid "git branch [<options>] [-l] [<pattern>...]"
msgstr ""
#: builtin/branch.c:32
-msgid "git branch [<options>] (-m | -M) [<old-branch>] <new-branch>"
+msgid "git branch [<options>] [-r] (-d | -D) <branch-name>..."
msgstr ""
#: builtin/branch.c:33
-msgid "git branch [<options>] (-c | -C) [<old-branch>] <new-branch>"
+msgid "git branch [<options>] (-m | -M) [<old-branch>] <new-branch>"
msgstr ""
#: builtin/branch.c:34
-msgid "git branch [<options>] [-r | -a] [--points-at]"
+msgid "git branch [<options>] (-c | -C) [<old-branch>] <new-branch>"
msgstr ""
#: builtin/branch.c:35
+msgid "git branch [<options>] [-r | -a] [--points-at]"
+msgstr ""
+
+#: builtin/branch.c:36
msgid "git branch [<options>] [-r | -a] [--format]"
msgstr ""
-#: builtin/branch.c:153
+#: builtin/branch.c:165
#, c-format
msgid ""
"deleting branch '%s' that has been merged to\n"
" '%s', but not yet merged to HEAD."
msgstr ""
-#: builtin/branch.c:157
+#: builtin/branch.c:169
#, c-format
msgid ""
"not deleting branch '%s' that is not yet merged to\n"
" '%s', even though it is merged to HEAD."
msgstr ""
-#: builtin/branch.c:171
+#: builtin/branch.c:183
#, c-format
msgid "Couldn't look up commit object for '%s'"
msgstr ""
-#: builtin/branch.c:175
+#: builtin/branch.c:187
#, c-format
msgid ""
"The branch '%s' is not fully merged.\n"
"If you are sure you want to delete it, run 'git branch -D %s'."
msgstr ""
-#: builtin/branch.c:188
+#: builtin/branch.c:200
msgid "Update of config-file failed"
msgstr ""
-#: builtin/branch.c:223
+#: builtin/branch.c:235
msgid "cannot use -a with -d"
msgstr ""
-#: builtin/branch.c:230
+#: builtin/branch.c:242
msgid "Couldn't look up commit object for HEAD"
msgstr ""
-#: builtin/branch.c:247
+#: builtin/branch.c:259
#, c-format
msgid "Cannot delete branch '%s' checked out at '%s'"
msgstr ""
-#: builtin/branch.c:262
+#: builtin/branch.c:274
#, c-format
msgid "remote-tracking branch '%s' not found."
msgstr ""
-#: builtin/branch.c:263
+#: builtin/branch.c:275
#, c-format
msgid "branch '%s' not found."
msgstr ""
-#: builtin/branch.c:294
+#: builtin/branch.c:306
#, c-format
msgid "Deleted remote-tracking branch %s (was %s).\n"
msgstr ""
-#: builtin/branch.c:295
+#: builtin/branch.c:307
#, c-format
msgid "Deleted branch %s (was %s).\n"
msgstr ""
-#: builtin/branch.c:445 builtin/tag.c:63
+#: builtin/branch.c:457 builtin/tag.c:64
msgid "unable to parse format string"
msgstr ""
-#: builtin/branch.c:476
+#: builtin/branch.c:488
msgid "could not resolve HEAD"
msgstr ""
-#: builtin/branch.c:482
+#: builtin/branch.c:494
#, c-format
msgid "HEAD (%s) points outside of refs/heads/"
msgstr ""
-#: builtin/branch.c:497
+#: builtin/branch.c:509
#, c-format
msgid "Branch %s is being rebased at %s"
msgstr ""
-#: builtin/branch.c:501
+#: builtin/branch.c:513
#, c-format
msgid "Branch %s is being bisected at %s"
msgstr ""
-#: builtin/branch.c:518
+#: builtin/branch.c:530
msgid "cannot copy the current branch while not on any."
msgstr ""
-#: builtin/branch.c:520
+#: builtin/branch.c:532
msgid "cannot rename the current branch while not on any."
msgstr ""
-#: builtin/branch.c:531
+#: builtin/branch.c:543
#, c-format
msgid "Invalid branch name: '%s'"
msgstr ""
-#: builtin/branch.c:560
+#: builtin/branch.c:572
msgid "Branch rename failed"
msgstr ""
-#: builtin/branch.c:562
+#: builtin/branch.c:574
msgid "Branch copy failed"
msgstr ""
-#: builtin/branch.c:566
+#: builtin/branch.c:578
#, c-format
msgid "Created a copy of a misnamed branch '%s'"
msgstr ""
-#: builtin/branch.c:569
+#: builtin/branch.c:581
#, c-format
msgid "Renamed a misnamed branch '%s' away"
msgstr ""
-#: builtin/branch.c:575
+#: builtin/branch.c:587
#, c-format
msgid "Branch renamed to %s, but HEAD is not updated!"
msgstr ""
-#: builtin/branch.c:584
+#: builtin/branch.c:596
msgid "Branch is renamed, but update of config-file failed"
msgstr ""
-#: builtin/branch.c:586
+#: builtin/branch.c:598
msgid "Branch is copied, but update of config-file failed"
msgstr ""
-#: builtin/branch.c:602
+#: builtin/branch.c:614
#, c-format
msgid ""
"Please edit the description for the branch\n"
@@ -10921,211 +11143,226 @@ msgid ""
"Lines starting with '%c' will be stripped.\n"
msgstr ""
-#: builtin/branch.c:637
+#: builtin/branch.c:651
msgid "Generic options"
msgstr ""
-#: builtin/branch.c:639
+#: builtin/branch.c:653
msgid "show hash and subject, give twice for upstream branch"
msgstr ""
-#: builtin/branch.c:640
+#: builtin/branch.c:654
msgid "suppress informational messages"
msgstr ""
-#: builtin/branch.c:642
+#: builtin/branch.c:656 builtin/checkout.c:1571
+#: builtin/submodule--helper.c:3077
msgid "set branch tracking configuration"
msgstr ""
-#: builtin/branch.c:645
+#: builtin/branch.c:659
msgid "do not use"
msgstr ""
-#: builtin/branch.c:647
+#: builtin/branch.c:661
msgid "upstream"
msgstr ""
-#: builtin/branch.c:647
+#: builtin/branch.c:661
msgid "change the upstream info"
msgstr ""
-#: builtin/branch.c:648
+#: builtin/branch.c:662
msgid "unset the upstream info"
msgstr ""
-#: builtin/branch.c:649
+#: builtin/branch.c:663
msgid "use colored output"
msgstr ""
-#: builtin/branch.c:650
+#: builtin/branch.c:664
msgid "act on remote-tracking branches"
msgstr ""
-#: builtin/branch.c:652 builtin/branch.c:654
+#: builtin/branch.c:666 builtin/branch.c:668
msgid "print only branches that contain the commit"
msgstr ""
-#: builtin/branch.c:653 builtin/branch.c:655
+#: builtin/branch.c:667 builtin/branch.c:669
msgid "print only branches that don't contain the commit"
msgstr ""
-#: builtin/branch.c:658
+#: builtin/branch.c:672
msgid "Specific git-branch actions:"
msgstr ""
-#: builtin/branch.c:659
+#: builtin/branch.c:673
msgid "list both remote-tracking and local branches"
msgstr ""
-#: builtin/branch.c:661
+#: builtin/branch.c:675
msgid "delete fully merged branch"
msgstr ""
-#: builtin/branch.c:662
+#: builtin/branch.c:676
msgid "delete branch (even if not merged)"
msgstr ""
-#: builtin/branch.c:663
+#: builtin/branch.c:677
msgid "move/rename a branch and its reflog"
msgstr ""
-#: builtin/branch.c:664
+#: builtin/branch.c:678
msgid "move/rename a branch, even if target exists"
msgstr ""
-#: builtin/branch.c:665
+#: builtin/branch.c:679
msgid "copy a branch and its reflog"
msgstr ""
-#: builtin/branch.c:666
+#: builtin/branch.c:680
msgid "copy a branch, even if target exists"
msgstr ""
-#: builtin/branch.c:667
+#: builtin/branch.c:681
msgid "list branch names"
msgstr ""
-#: builtin/branch.c:668
+#: builtin/branch.c:682
msgid "show current branch name"
msgstr ""
-#: builtin/branch.c:669
+#: builtin/branch.c:683 builtin/submodule--helper.c:3075
msgid "create the branch's reflog"
msgstr ""
-#: builtin/branch.c:671
+#: builtin/branch.c:685
msgid "edit the description for the branch"
msgstr ""
-#: builtin/branch.c:672
+#: builtin/branch.c:686
msgid "force creation, move/rename, deletion"
msgstr ""
-#: builtin/branch.c:673
+#: builtin/branch.c:687
msgid "print only branches that are merged"
msgstr ""
-#: builtin/branch.c:674
+#: builtin/branch.c:688
msgid "print only branches that are not merged"
msgstr ""
-#: builtin/branch.c:675
+#: builtin/branch.c:689
msgid "list branches in columns"
msgstr ""
-#: builtin/branch.c:677 builtin/for-each-ref.c:45 builtin/notes.c:413
+#: builtin/branch.c:691 builtin/for-each-ref.c:45 builtin/notes.c:413
#: builtin/notes.c:416 builtin/notes.c:579 builtin/notes.c:582
-#: builtin/tag.c:475
+#: builtin/tag.c:476
msgid "object"
msgstr ""
-#: builtin/branch.c:678
+#: builtin/branch.c:692
msgid "print only branches of the object"
msgstr ""
-#: builtin/branch.c:679 builtin/for-each-ref.c:51 builtin/tag.c:482
+#: builtin/branch.c:693 builtin/for-each-ref.c:51 builtin/tag.c:483
msgid "sorting and filtering are case insensitive"
msgstr ""
-#: builtin/branch.c:680 builtin/for-each-ref.c:41 builtin/tag.c:480
-#: builtin/verify-tag.c:38
+#: builtin/branch.c:694 builtin/ls-files.c:667
+msgid "recurse through submodules"
+msgstr ""
+
+#: builtin/branch.c:695 builtin/for-each-ref.c:41 builtin/ls-tree.c:358
+#: builtin/tag.c:481 builtin/verify-tag.c:38
msgid "format to use for the output"
msgstr ""
-#: builtin/branch.c:703 builtin/clone.c:678
+#: builtin/branch.c:718 builtin/clone.c:684
msgid "HEAD not found below refs/heads!"
msgstr ""
-#: builtin/branch.c:742 builtin/branch.c:798 builtin/branch.c:807
+#: builtin/branch.c:739
+msgid ""
+"branch with --recurse-submodules can only be used if submodule."
+"propagateBranches is enabled"
+msgstr ""
+
+#: builtin/branch.c:741
+msgid "--recurse-submodules can only be used to create branches"
+msgstr ""
+
+#: builtin/branch.c:770 builtin/branch.c:826 builtin/branch.c:835
msgid "branch name required"
msgstr ""
-#: builtin/branch.c:774
+#: builtin/branch.c:802
msgid "Cannot give description to detached HEAD"
msgstr ""
-#: builtin/branch.c:779
+#: builtin/branch.c:807
msgid "cannot edit description of more than one branch"
msgstr ""
-#: builtin/branch.c:786
+#: builtin/branch.c:814
#, c-format
msgid "No commit on branch '%s' yet."
msgstr ""
-#: builtin/branch.c:789
+#: builtin/branch.c:817
#, c-format
msgid "No branch named '%s'."
msgstr ""
-#: builtin/branch.c:804
+#: builtin/branch.c:832
msgid "too many branches for a copy operation"
msgstr ""
-#: builtin/branch.c:813
+#: builtin/branch.c:841
msgid "too many arguments for a rename operation"
msgstr ""
-#: builtin/branch.c:818
+#: builtin/branch.c:846
msgid "too many arguments to set new upstream"
msgstr ""
-#: builtin/branch.c:822
+#: builtin/branch.c:850
#, c-format
msgid ""
"could not set upstream of HEAD to %s when it does not point to any branch."
msgstr ""
-#: builtin/branch.c:825 builtin/branch.c:848
+#: builtin/branch.c:853 builtin/branch.c:873
#, c-format
msgid "no such branch '%s'"
msgstr ""
-#: builtin/branch.c:829
+#: builtin/branch.c:857
#, c-format
msgid "branch '%s' does not exist"
msgstr ""
-#: builtin/branch.c:842
+#: builtin/branch.c:867
msgid "too many arguments to unset upstream"
msgstr ""
-#: builtin/branch.c:846
+#: builtin/branch.c:871
msgid "could not unset upstream of HEAD when it does not point to any branch."
msgstr ""
-#: builtin/branch.c:852
+#: builtin/branch.c:877
#, c-format
msgid "Branch '%s' has no upstream information"
msgstr ""
-#: builtin/branch.c:862
+#: builtin/branch.c:890
msgid ""
"The -a, and -r, options to 'git branch' do not take a branch name.\n"
"Did you mean to use: -a|-r --list <pattern>?"
msgstr ""
-#: builtin/branch.c:866
+#: builtin/branch.c:894
msgid ""
"the '--set-upstream' option is no longer supported. Please use '--track' or "
"'--set-upstream-to' instead."
@@ -11222,19 +11459,19 @@ msgstr ""
msgid "git bundle unbundle <file> [<refname>...]"
msgstr ""
-#: builtin/bundle.c:65 builtin/pack-objects.c:3876
+#: builtin/bundle.c:65 builtin/pack-objects.c:3899
msgid "do not show progress meter"
msgstr ""
-#: builtin/bundle.c:67 builtin/bundle.c:167 builtin/pack-objects.c:3878
+#: builtin/bundle.c:67 builtin/bundle.c:168 builtin/pack-objects.c:3901
msgid "show progress meter"
msgstr ""
-#: builtin/bundle.c:69 builtin/pack-objects.c:3880
+#: builtin/bundle.c:69 builtin/pack-objects.c:3903
msgid "show progress meter during object writing phase"
msgstr ""
-#: builtin/bundle.c:72 builtin/pack-objects.c:3883
+#: builtin/bundle.c:72 builtin/pack-objects.c:3906
msgid "similar to --all-progress when progress meter is shown"
msgstr ""
@@ -11246,106 +11483,216 @@ msgstr ""
msgid "Need a repository to create a bundle."
msgstr ""
-#: builtin/bundle.c:107
+#: builtin/bundle.c:108
msgid "do not show bundle details"
msgstr ""
-#: builtin/bundle.c:126
+#: builtin/bundle.c:127
#, c-format
msgid "%s is okay\n"
msgstr ""
-#: builtin/bundle.c:182
+#: builtin/bundle.c:183
msgid "Need a repository to unbundle."
msgstr ""
-#: builtin/bundle.c:185
+#: builtin/bundle.c:186
msgid "Unbundling objects"
msgstr ""
-#: builtin/bundle.c:219 builtin/remote.c:1733
+#: builtin/bundle.c:220 builtin/remote.c:1758
#, c-format
msgid "Unknown subcommand: %s"
msgstr ""
-#: builtin/cat-file.c:622
-msgid ""
-"git cat-file (-t [--allow-unknown-type] | -s [--allow-unknown-type] | -e | -"
-"p | <type> | --textconv | --filters) [--path=<path>] <object>"
+#: builtin/cat-file.c:568
+msgid "flush is only for --buffer mode"
+msgstr ""
+
+#: builtin/cat-file.c:612
+msgid "empty command in input"
+msgstr ""
+
+#: builtin/cat-file.c:614
+#, c-format
+msgid "whitespace before command: '%s'"
msgstr ""
#: builtin/cat-file.c:623
-msgid ""
-"git cat-file (--batch[=<format>] | --batch-check[=<format>]) [--follow-"
-"symlinks] [--textconv | --filters]"
+#, c-format
+msgid "%s requires arguments"
msgstr ""
-#: builtin/cat-file.c:644
+#: builtin/cat-file.c:628
+#, c-format
+msgid "%s takes no arguments"
+msgstr ""
+
+#: builtin/cat-file.c:636
+#, c-format
+msgid "unknown command: '%s'"
+msgstr ""
+
+#: builtin/cat-file.c:795
msgid "only one batch option may be specified"
msgstr ""
-#: builtin/cat-file.c:662
-msgid "<type> can be one of: blob, tree, commit, tag"
+#: builtin/cat-file.c:824
+msgid "git cat-file <type> <object>"
msgstr ""
-#: builtin/cat-file.c:663
-msgid "show object type"
+#: builtin/cat-file.c:825
+msgid "git cat-file (-e | -p) <object>"
msgstr ""
-#: builtin/cat-file.c:664
-msgid "show object size"
+#: builtin/cat-file.c:826
+msgid "git cat-file (-t | -s) [--allow-unknown-type] <object>"
msgstr ""
-#: builtin/cat-file.c:666
-msgid "exit with zero when there's no error"
+#: builtin/cat-file.c:827
+msgid ""
+"git cat-file (--batch | --batch-check | --batch-command) [--batch-all-"
+"objects]\n"
+" [--buffer] [--follow-symlinks] [--unordered]\n"
+" [--textconv | --filters]"
+msgstr ""
+
+#: builtin/cat-file.c:830
+msgid ""
+"git cat-file (--textconv | --filters)\n"
+" [<rev>:<path|tree-ish> | --path=<path|tree-ish> <rev>]"
msgstr ""
-#: builtin/cat-file.c:667
-msgid "pretty-print object's content"
+#: builtin/cat-file.c:836
+msgid "Check object existence or emit object contents"
msgstr ""
-#: builtin/cat-file.c:669
-msgid "for blob objects, run textconv on object's content"
+#: builtin/cat-file.c:838
+msgid "check if <object> exists"
msgstr ""
-#: builtin/cat-file.c:671
-msgid "for blob objects, run filters on object's content"
+#: builtin/cat-file.c:839
+msgid "pretty-print <object> content"
msgstr ""
-#: builtin/cat-file.c:672
-msgid "blob"
+#: builtin/cat-file.c:841
+msgid "Emit [broken] object attributes"
msgstr ""
-#: builtin/cat-file.c:673
-msgid "use a specific path for --textconv/--filters"
+#: builtin/cat-file.c:842
+msgid "show object type (one of 'blob', 'tree', 'commit', 'tag', ...)"
msgstr ""
-#: builtin/cat-file.c:675
+#: builtin/cat-file.c:843
+msgid "show object size"
+msgstr ""
+
+#: builtin/cat-file.c:845
msgid "allow -s and -t to work with broken/corrupt objects"
msgstr ""
-#: builtin/cat-file.c:676
+#: builtin/cat-file.c:847
+msgid "Batch objects requested on stdin (or --batch-all-objects)"
+msgstr ""
+
+#: builtin/cat-file.c:849
+msgid "show full <object> or <rev> contents"
+msgstr ""
+
+#: builtin/cat-file.c:853
+msgid "like --batch, but don't emit <contents>"
+msgstr ""
+
+#: builtin/cat-file.c:857
+msgid "read commands from stdin"
+msgstr ""
+
+#: builtin/cat-file.c:861
+msgid "with --batch[-check]: ignores stdin, batches all known objects"
+msgstr ""
+
+#: builtin/cat-file.c:863
+msgid "Change or optimize batch output"
+msgstr ""
+
+#: builtin/cat-file.c:864
msgid "buffer --batch output"
msgstr ""
-#: builtin/cat-file.c:678
-msgid "show info and content of objects fed from the standard input"
+#: builtin/cat-file.c:866
+msgid "follow in-tree symlinks"
+msgstr ""
+
+#: builtin/cat-file.c:868
+msgid "do not order objects before emitting them"
msgstr ""
-#: builtin/cat-file.c:682
-msgid "show info about objects fed from the standard input"
+#: builtin/cat-file.c:870
+msgid ""
+"Emit object (blob or tree) with conversion or filter (stand-alone, or with "
+"batch)"
msgstr ""
-#: builtin/cat-file.c:686
-msgid "follow in-tree symlinks (used with --batch or --batch-check)"
+#: builtin/cat-file.c:872
+msgid "run textconv on object's content"
msgstr ""
-#: builtin/cat-file.c:688
-msgid "show all objects with --batch or --batch-check"
+#: builtin/cat-file.c:874
+msgid "run filters on object's content"
msgstr ""
-#: builtin/cat-file.c:690
-msgid "do not order --batch-all-objects output"
+#: builtin/cat-file.c:875
+msgid "blob|tree"
+msgstr ""
+
+#: builtin/cat-file.c:876
+msgid "use a <path> for (--textconv | --filters); Not with 'batch'"
+msgstr ""
+
+#: builtin/cat-file.c:894
+#, c-format
+msgid "'%s=<%s>' needs '%s' or '%s'"
+msgstr ""
+
+#: builtin/cat-file.c:896
+msgid "path|tree-ish"
+msgstr ""
+
+#: builtin/cat-file.c:903 builtin/cat-file.c:906 builtin/cat-file.c:909
+#, c-format
+msgid "'%s' requires a batch mode"
+msgstr ""
+
+#: builtin/cat-file.c:921
+#, c-format
+msgid "'-%c' is incompatible with batch mode"
+msgstr ""
+
+#: builtin/cat-file.c:924
+msgid "batch modes take no arguments"
+msgstr ""
+
+#: builtin/cat-file.c:932 builtin/cat-file.c:935
+#, c-format
+msgid "<rev> required with '%s'"
+msgstr ""
+
+#: builtin/cat-file.c:938
+#, c-format
+msgid "<object> required with '-%c'"
+msgstr ""
+
+#: builtin/cat-file.c:943 builtin/notes.c:374 builtin/notes.c:429
+#: builtin/notes.c:507 builtin/notes.c:519 builtin/notes.c:596
+#: builtin/notes.c:663 builtin/notes.c:813 builtin/notes.c:965
+#: builtin/notes.c:987 builtin/prune-packed.c:25 builtin/receive-pack.c:2489
+#: builtin/tag.c:592
+msgid "too many arguments"
+msgstr ""
+
+#: builtin/cat-file.c:947
+#, c-format
+msgid "only two arguments allowed in <type> <object> mode, not %d"
msgstr ""
#: builtin/check-attr.c:13
@@ -11364,7 +11711,7 @@ msgstr ""
msgid "use .gitattributes only from the index"
msgstr ""
-#: builtin/check-attr.c:23 builtin/check-ignore.c:25 builtin/hash-object.c:100
+#: builtin/check-attr.c:23 builtin/check-ignore.c:25 builtin/hash-object.c:101
msgid "read file names from stdin"
msgstr ""
@@ -11372,8 +11719,8 @@ msgstr ""
msgid "terminate input and output records by a NUL character"
msgstr ""
-#: builtin/check-ignore.c:21 builtin/checkout.c:1532 builtin/gc.c:550
-#: builtin/worktree.c:493
+#: builtin/check-ignore.c:21 builtin/checkout.c:1550 builtin/gc.c:550
+#: builtin/worktree.c:565
msgid "suppress progress reporting"
msgstr ""
@@ -11430,211 +11777,215 @@ msgstr ""
msgid "git checkout--worker [<options>]"
msgstr ""
-#: builtin/checkout--worker.c:118 builtin/checkout-index.c:201
-#: builtin/column.c:31 builtin/column.c:32 builtin/submodule--helper.c:1864
-#: builtin/submodule--helper.c:1867 builtin/submodule--helper.c:1875
-#: builtin/submodule--helper.c:2511 builtin/submodule--helper.c:2577
-#: builtin/worktree.c:491 builtin/worktree.c:728
+#: builtin/checkout--worker.c:118 builtin/checkout-index.c:235
+#: builtin/column.c:31 builtin/column.c:32 builtin/submodule--helper.c:1878
+#: builtin/submodule--helper.c:1881 builtin/submodule--helper.c:1889
+#: builtin/submodule--helper.c:2716 builtin/worktree.c:563
+#: builtin/worktree.c:808
msgid "string"
msgstr ""
-#: builtin/checkout--worker.c:119 builtin/checkout-index.c:202
+#: builtin/checkout--worker.c:119 builtin/checkout-index.c:236
msgid "when creating files, prepend <string>"
msgstr ""
-#: builtin/checkout-index.c:152
+#: builtin/checkout-index.c:184
msgid "git checkout-index [<options>] [--] [<file>...]"
msgstr ""
-#: builtin/checkout-index.c:169
+#: builtin/checkout-index.c:201
msgid "stage should be between 1 and 3 or all"
msgstr ""
-#: builtin/checkout-index.c:187
+#: builtin/checkout-index.c:219
msgid "check out all files in the index"
msgstr ""
-#: builtin/checkout-index.c:188
+#: builtin/checkout-index.c:221
+msgid "do not skip files with skip-worktree set"
+msgstr ""
+
+#: builtin/checkout-index.c:222
msgid "force overwrite of existing files"
msgstr ""
-#: builtin/checkout-index.c:190
+#: builtin/checkout-index.c:224
msgid "no warning for existing files and files not in index"
msgstr ""
-#: builtin/checkout-index.c:192
+#: builtin/checkout-index.c:226
msgid "don't checkout new files"
msgstr ""
-#: builtin/checkout-index.c:194
+#: builtin/checkout-index.c:228
msgid "update stat information in the index file"
msgstr ""
-#: builtin/checkout-index.c:198
+#: builtin/checkout-index.c:232
msgid "read list of paths from the standard input"
msgstr ""
-#: builtin/checkout-index.c:200
+#: builtin/checkout-index.c:234
msgid "write the content to temporary files"
msgstr ""
-#: builtin/checkout-index.c:204
+#: builtin/checkout-index.c:238
msgid "copy out the files from named stage"
msgstr ""
-#: builtin/checkout.c:33
+#: builtin/checkout.c:34
msgid "git checkout [<options>] <branch>"
msgstr ""
-#: builtin/checkout.c:34
+#: builtin/checkout.c:35
msgid "git checkout [<options>] [<branch>] -- <file>..."
msgstr ""
-#: builtin/checkout.c:39
+#: builtin/checkout.c:40
msgid "git switch [<options>] [<branch>]"
msgstr ""
-#: builtin/checkout.c:44
+#: builtin/checkout.c:45
msgid "git restore [<options>] [--source=<branch>] <file>..."
msgstr ""
-#: builtin/checkout.c:198 builtin/checkout.c:237
+#: builtin/checkout.c:199 builtin/checkout.c:238
#, c-format
msgid "path '%s' does not have our version"
msgstr ""
-#: builtin/checkout.c:200 builtin/checkout.c:239
+#: builtin/checkout.c:201 builtin/checkout.c:240
#, c-format
msgid "path '%s' does not have their version"
msgstr ""
-#: builtin/checkout.c:216
+#: builtin/checkout.c:217
#, c-format
msgid "path '%s' does not have all necessary versions"
msgstr ""
-#: builtin/checkout.c:269
+#: builtin/checkout.c:271
#, c-format
msgid "path '%s' does not have necessary versions"
msgstr ""
-#: builtin/checkout.c:286
+#: builtin/checkout.c:291
#, c-format
msgid "path '%s': cannot merge"
msgstr ""
-#: builtin/checkout.c:302
+#: builtin/checkout.c:307
#, c-format
msgid "Unable to add merge result for '%s'"
msgstr ""
-#: builtin/checkout.c:419
+#: builtin/checkout.c:424
#, c-format
msgid "Recreated %d merge conflict"
msgid_plural "Recreated %d merge conflicts"
msgstr[0] ""
msgstr[1] ""
-#: builtin/checkout.c:424
+#: builtin/checkout.c:429
#, c-format
msgid "Updated %d path from %s"
msgid_plural "Updated %d paths from %s"
msgstr[0] ""
msgstr[1] ""
-#: builtin/checkout.c:431
+#: builtin/checkout.c:436
#, c-format
msgid "Updated %d path from the index"
msgid_plural "Updated %d paths from the index"
msgstr[0] ""
msgstr[1] ""
-#: builtin/checkout.c:454 builtin/checkout.c:457 builtin/checkout.c:460
-#: builtin/checkout.c:464
+#: builtin/checkout.c:459 builtin/checkout.c:462 builtin/checkout.c:465
+#: builtin/checkout.c:469
#, c-format
msgid "'%s' cannot be used with updating paths"
msgstr ""
-#: builtin/checkout.c:474
+#: builtin/checkout.c:479
#, c-format
msgid "Cannot update paths and switch to branch '%s' at the same time."
msgstr ""
-#: builtin/checkout.c:478
+#: builtin/checkout.c:483
#, c-format
msgid "neither '%s' or '%s' is specified"
msgstr ""
-#: builtin/checkout.c:482
+#: builtin/checkout.c:487
#, c-format
msgid "'%s' must be used when '%s' is not specified"
msgstr ""
-#: builtin/checkout.c:487 builtin/checkout.c:492
+#: builtin/checkout.c:492 builtin/checkout.c:497
#, c-format
msgid "'%s' or '%s' cannot be used with %s"
msgstr ""
-#: builtin/checkout.c:566 builtin/checkout.c:573
+#: builtin/checkout.c:571 builtin/checkout.c:578
#, c-format
msgid "path '%s' is unmerged"
msgstr ""
-#: builtin/checkout.c:747
+#: builtin/checkout.c:753
msgid "you need to resolve your current index first"
msgstr ""
-#: builtin/checkout.c:797
+#: builtin/checkout.c:809
#, c-format
msgid ""
"cannot continue with staged changes in the following files:\n"
"%s"
msgstr ""
-#: builtin/checkout.c:890
+#: builtin/checkout.c:902
#, c-format
msgid "Can not do reflog for '%s': %s\n"
msgstr ""
-#: builtin/checkout.c:934
+#: builtin/checkout.c:947
msgid "HEAD is now at"
msgstr ""
-#: builtin/checkout.c:938 builtin/clone.c:609 t/helper/test-fast-rebase.c:203
+#: builtin/checkout.c:951 builtin/clone.c:615 t/helper/test-fast-rebase.c:203
msgid "unable to update HEAD"
msgstr ""
-#: builtin/checkout.c:942
+#: builtin/checkout.c:955
#, c-format
msgid "Reset branch '%s'\n"
msgstr ""
-#: builtin/checkout.c:945
+#: builtin/checkout.c:958
#, c-format
msgid "Already on '%s'\n"
msgstr ""
-#: builtin/checkout.c:949
+#: builtin/checkout.c:962
#, c-format
msgid "Switched to and reset branch '%s'\n"
msgstr ""
-#: builtin/checkout.c:951 builtin/checkout.c:1388
+#: builtin/checkout.c:964 builtin/checkout.c:1398
#, c-format
msgid "Switched to a new branch '%s'\n"
msgstr ""
-#: builtin/checkout.c:953
+#: builtin/checkout.c:966
#, c-format
msgid "Switched to branch '%s'\n"
msgstr ""
-#: builtin/checkout.c:1004
+#: builtin/checkout.c:1017
#, c-format
msgid " ... and %d more.\n"
msgstr ""
-#: builtin/checkout.c:1010
+#: builtin/checkout.c:1023
#, c-format
msgid ""
"Warning: you are leaving %d commit behind, not connected to\n"
@@ -11649,7 +12000,7 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: builtin/checkout.c:1029
+#: builtin/checkout.c:1042
#, c-format
msgid ""
"If you want to keep it by creating a new branch, this may be a good time\n"
@@ -11666,26 +12017,26 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: builtin/checkout.c:1064
+#: builtin/checkout.c:1077
msgid "internal error in revision walk"
msgstr ""
-#: builtin/checkout.c:1068
+#: builtin/checkout.c:1081
msgid "Previous HEAD position was"
msgstr ""
-#: builtin/checkout.c:1114 builtin/checkout.c:1383
+#: builtin/checkout.c:1124 builtin/checkout.c:1393
msgid "You are on a branch yet to be born"
msgstr ""
-#: builtin/checkout.c:1196
+#: builtin/checkout.c:1206
#, 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:1203
+#: builtin/checkout.c:1213
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"
@@ -11697,269 +12048,270 @@ msgid ""
"checkout.defaultRemote=origin in your config."
msgstr ""
-#: builtin/checkout.c:1213
+#: builtin/checkout.c:1223
#, c-format
msgid "'%s' matched multiple (%d) remote tracking branches"
msgstr ""
-#: builtin/checkout.c:1279
+#: builtin/checkout.c:1289
msgid "only one reference expected"
msgstr ""
-#: builtin/checkout.c:1296
+#: builtin/checkout.c:1306
#, c-format
msgid "only one reference expected, %d given."
msgstr ""
-#: builtin/checkout.c:1342 builtin/worktree.c:269 builtin/worktree.c:436
+#: builtin/checkout.c:1352 builtin/worktree.c:338 builtin/worktree.c:508
#, c-format
msgid "invalid reference: %s"
msgstr ""
-#: builtin/checkout.c:1355 builtin/checkout.c:1725
+#: builtin/checkout.c:1365 builtin/checkout.c:1744
#, c-format
msgid "reference is not a tree: %s"
msgstr ""
-#: builtin/checkout.c:1402
+#: builtin/checkout.c:1413
#, c-format
msgid "a branch is expected, got tag '%s'"
msgstr ""
-#: builtin/checkout.c:1404
+#: builtin/checkout.c:1415
#, c-format
msgid "a branch is expected, got remote branch '%s'"
msgstr ""
-#: builtin/checkout.c:1405 builtin/checkout.c:1413
+#: builtin/checkout.c:1417 builtin/checkout.c:1426
#, c-format
msgid "a branch is expected, got '%s'"
msgstr ""
-#: builtin/checkout.c:1408
+#: builtin/checkout.c:1420
#, c-format
msgid "a branch is expected, got commit '%s'"
msgstr ""
-#: builtin/checkout.c:1424
+#: builtin/checkout.c:1429
+msgid ""
+"If you want to detach HEAD at the commit, try again with the --detach option."
+msgstr ""
+
+#: builtin/checkout.c:1442
msgid ""
"cannot switch branch while merging\n"
"Consider \"git merge --quit\" or \"git worktree add\"."
msgstr ""
-#: builtin/checkout.c:1428
+#: builtin/checkout.c:1446
msgid ""
"cannot switch branch in the middle of an am session\n"
"Consider \"git am --quit\" or \"git worktree add\"."
msgstr ""
-#: builtin/checkout.c:1432
+#: builtin/checkout.c:1450
msgid ""
"cannot switch branch while rebasing\n"
"Consider \"git rebase --quit\" or \"git worktree add\"."
msgstr ""
-#: builtin/checkout.c:1436
+#: builtin/checkout.c:1454
msgid ""
"cannot switch branch while cherry-picking\n"
"Consider \"git cherry-pick --quit\" or \"git worktree add\"."
msgstr ""
-#: builtin/checkout.c:1440
+#: builtin/checkout.c:1458
msgid ""
"cannot switch branch while reverting\n"
"Consider \"git revert --quit\" or \"git worktree add\"."
msgstr ""
-#: builtin/checkout.c:1444
+#: builtin/checkout.c:1462
msgid "you are switching branch while bisecting"
msgstr ""
-#: builtin/checkout.c:1451
+#: builtin/checkout.c:1469
msgid "paths cannot be used with switching branches"
msgstr ""
-#: builtin/checkout.c:1454 builtin/checkout.c:1458 builtin/checkout.c:1462
+#: builtin/checkout.c:1472 builtin/checkout.c:1476 builtin/checkout.c:1480
#, c-format
msgid "'%s' cannot be used with switching branches"
msgstr ""
-#: builtin/checkout.c:1466 builtin/checkout.c:1469 builtin/checkout.c:1472
-#: builtin/checkout.c:1477 builtin/checkout.c:1482
+#: builtin/checkout.c:1484 builtin/checkout.c:1487 builtin/checkout.c:1490
+#: builtin/checkout.c:1495 builtin/checkout.c:1500
#, c-format
msgid "'%s' cannot be used with '%s'"
msgstr ""
-#: builtin/checkout.c:1479
+#: builtin/checkout.c:1497
#, c-format
msgid "'%s' cannot take <start-point>"
msgstr ""
-#: builtin/checkout.c:1487
+#: builtin/checkout.c:1505
#, c-format
msgid "Cannot switch branch to a non-commit '%s'"
msgstr ""
-#: builtin/checkout.c:1494
+#: builtin/checkout.c:1512
msgid "missing branch or commit argument"
msgstr ""
-#: builtin/checkout.c:1537
+#: builtin/checkout.c:1555
msgid "perform a 3-way merge with the new branch"
msgstr ""
-#: builtin/checkout.c:1538 builtin/log.c:1825 parse-options.h:323
+#: builtin/checkout.c:1556 builtin/log.c:1844 parse-options.h:354
msgid "style"
msgstr ""
-#: builtin/checkout.c:1539
+#: builtin/checkout.c:1557
msgid "conflict style (merge, diff3, or zdiff3)"
msgstr ""
-#: builtin/checkout.c:1551 builtin/worktree.c:488
+#: builtin/checkout.c:1569 builtin/worktree.c:560
msgid "detach HEAD at named commit"
msgstr ""
-#: builtin/checkout.c:1553
-msgid "set up tracking mode (see git-pull(1))"
-msgstr ""
-
-#: builtin/checkout.c:1556
+#: builtin/checkout.c:1574
msgid "force checkout (throw away local modifications)"
msgstr ""
-#: builtin/checkout.c:1558
+#: builtin/checkout.c:1576
msgid "new-branch"
msgstr ""
-#: builtin/checkout.c:1558
+#: builtin/checkout.c:1576
msgid "new unparented branch"
msgstr ""
-#: builtin/checkout.c:1560 builtin/merge.c:305
+#: builtin/checkout.c:1578 builtin/merge.c:305
msgid "update ignored files (default)"
msgstr ""
-#: builtin/checkout.c:1563
+#: builtin/checkout.c:1581
msgid "do not check if another worktree is holding the given ref"
msgstr ""
-#: builtin/checkout.c:1576
+#: builtin/checkout.c:1594
msgid "checkout our version for unmerged files"
msgstr ""
-#: builtin/checkout.c:1579
+#: builtin/checkout.c:1597
msgid "checkout their version for unmerged files"
msgstr ""
-#: builtin/checkout.c:1583
+#: builtin/checkout.c:1601
msgid "do not limit pathspecs to sparse entries only"
msgstr ""
-#: builtin/checkout.c:1640
+#: builtin/checkout.c:1659
#, c-format
msgid "options '-%c', '-%c', and '%s' cannot be used together"
msgstr ""
-#: builtin/checkout.c:1681
+#: builtin/checkout.c:1700
msgid "--track needs a branch name"
msgstr ""
-#: builtin/checkout.c:1686
+#: builtin/checkout.c:1705
#, c-format
msgid "missing branch name; try -%c"
msgstr ""
-#: builtin/checkout.c:1718
+#: builtin/checkout.c:1737
#, c-format
msgid "could not resolve %s"
msgstr ""
-#: builtin/checkout.c:1734
+#: builtin/checkout.c:1753
msgid "invalid path specification"
msgstr ""
-#: builtin/checkout.c:1741
+#: builtin/checkout.c:1760
#, c-format
msgid "'%s' is not a commit and a branch '%s' cannot be created from it"
msgstr ""
-#: builtin/checkout.c:1745
+#: builtin/checkout.c:1764
#, c-format
msgid "git checkout: --detach does not take a path argument '%s'"
msgstr ""
-#: builtin/checkout.c:1770
+#: builtin/checkout.c:1789
msgid ""
"git checkout: --ours/--theirs, --force and --merge are incompatible when\n"
"checking out of the index."
msgstr ""
-#: builtin/checkout.c:1775
+#: builtin/checkout.c:1794
msgid "you must specify path(s) to restore"
msgstr ""
-#: builtin/checkout.c:1800 builtin/checkout.c:1802 builtin/checkout.c:1854
-#: builtin/checkout.c:1856 builtin/clone.c:126 builtin/remote.c:170
-#: builtin/remote.c:172 builtin/submodule--helper.c:2959
-#: builtin/submodule--helper.c:3253 builtin/worktree.c:484
-#: builtin/worktree.c:486
+#: builtin/checkout.c:1819 builtin/checkout.c:1821 builtin/checkout.c:1873
+#: builtin/checkout.c:1875 builtin/clone.c:130 builtin/remote.c:171
+#: builtin/remote.c:173 builtin/submodule--helper.c:3038
+#: builtin/submodule--helper.c:3371 builtin/worktree.c:556
+#: builtin/worktree.c:558
msgid "branch"
msgstr ""
-#: builtin/checkout.c:1801
+#: builtin/checkout.c:1820
msgid "create and checkout a new branch"
msgstr ""
-#: builtin/checkout.c:1803
+#: builtin/checkout.c:1822
msgid "create/reset and checkout a branch"
msgstr ""
-#: builtin/checkout.c:1804
+#: builtin/checkout.c:1823
msgid "create reflog for new branch"
msgstr ""
-#: builtin/checkout.c:1806
+#: builtin/checkout.c:1825
msgid "second guess 'git checkout <no-such-branch>' (default)"
msgstr ""
-#: builtin/checkout.c:1807
+#: builtin/checkout.c:1826
msgid "use overlay mode (default)"
msgstr ""
-#: builtin/checkout.c:1855
+#: builtin/checkout.c:1874
msgid "create and switch to a new branch"
msgstr ""
-#: builtin/checkout.c:1857
+#: builtin/checkout.c:1876
msgid "create/reset and switch to a branch"
msgstr ""
-#: builtin/checkout.c:1859
+#: builtin/checkout.c:1878
msgid "second guess 'git switch <no-such-branch>'"
msgstr ""
-#: builtin/checkout.c:1861
+#: builtin/checkout.c:1880
msgid "throw away local modifications"
msgstr ""
-#: builtin/checkout.c:1897
+#: builtin/checkout.c:1916
msgid "which tree-ish to checkout from"
msgstr ""
-#: builtin/checkout.c:1899
+#: builtin/checkout.c:1918
msgid "restore the index"
msgstr ""
-#: builtin/checkout.c:1901
+#: builtin/checkout.c:1920
msgid "restore the working tree (default)"
msgstr ""
-#: builtin/checkout.c:1903
+#: builtin/checkout.c:1922
msgid "ignore unmerged entries"
msgstr ""
-#: builtin/checkout.c:1904
+#: builtin/checkout.c:1923
msgid "use overlay mode"
msgstr ""
@@ -12087,8 +12439,8 @@ msgid "remove whole directories"
msgstr ""
#: builtin/clean.c:932 builtin/describe.c:565 builtin/describe.c:567
-#: builtin/grep.c:937 builtin/log.c:184 builtin/log.c:186
-#: builtin/ls-files.c:651 builtin/name-rev.c:535 builtin/name-rev.c:537
+#: builtin/grep.c:938 builtin/log.c:185 builtin/log.c:187
+#: builtin/ls-files.c:651 builtin/name-rev.c:585 builtin/name-rev.c:587
#: builtin/show-ref.c:179
msgid "pattern"
msgstr ""
@@ -12121,352 +12473,360 @@ msgstr ""
msgid "-x and -X cannot be used together"
msgstr ""
-#: builtin/clone.c:45
+#: builtin/clone.c:47
msgid "git clone [<options>] [--] <repo> [<dir>]"
msgstr ""
-#: builtin/clone.c:96
+#: builtin/clone.c:100
msgid "don't clone shallow repository"
msgstr ""
-#: builtin/clone.c:98
+#: builtin/clone.c:102
msgid "don't create a checkout"
msgstr ""
-#: builtin/clone.c:99 builtin/clone.c:101 builtin/init-db.c:542
+#: builtin/clone.c:103 builtin/clone.c:105 builtin/init-db.c:542
msgid "create a bare repository"
msgstr ""
-#: builtin/clone.c:103
+#: builtin/clone.c:107
msgid "create a mirror repository (implies bare)"
msgstr ""
-#: builtin/clone.c:105
+#: builtin/clone.c:109
msgid "to clone from a local repository"
msgstr ""
-#: builtin/clone.c:107
+#: builtin/clone.c:111
msgid "don't use local hardlinks, always copy"
msgstr ""
-#: builtin/clone.c:109
+#: builtin/clone.c:113
msgid "setup as shared repository"
msgstr ""
-#: builtin/clone.c:111
+#: builtin/clone.c:115
msgid "pathspec"
msgstr ""
-#: builtin/clone.c:111
+#: builtin/clone.c:115
msgid "initialize submodules in the clone"
msgstr ""
-#: builtin/clone.c:115
+#: builtin/clone.c:119
msgid "number of submodules cloned in parallel"
msgstr ""
-#: builtin/clone.c:116 builtin/init-db.c:539
+#: builtin/clone.c:120 builtin/init-db.c:539
msgid "template-directory"
msgstr ""
-#: builtin/clone.c:117 builtin/init-db.c:540
+#: builtin/clone.c:121 builtin/init-db.c:540
msgid "directory from which templates will be used"
msgstr ""
-#: builtin/clone.c:119 builtin/clone.c:121 builtin/submodule--helper.c:1871
-#: builtin/submodule--helper.c:2514 builtin/submodule--helper.c:3260
+#: builtin/clone.c:123 builtin/clone.c:125 builtin/submodule--helper.c:1885
+#: builtin/submodule--helper.c:2719 builtin/submodule--helper.c:3378
msgid "reference repository"
msgstr ""
-#: builtin/clone.c:123 builtin/submodule--helper.c:1873
-#: builtin/submodule--helper.c:2516
+#: builtin/clone.c:127 builtin/submodule--helper.c:1887
+#: builtin/submodule--helper.c:2721
msgid "use --reference only while cloning"
msgstr ""
-#: builtin/clone.c:124 builtin/column.c:27 builtin/fmt-merge-msg.c:27
+#: builtin/clone.c:128 builtin/column.c:27 builtin/fmt-merge-msg.c:27
#: builtin/init-db.c:550 builtin/merge-file.c:48 builtin/merge.c:290
-#: builtin/pack-objects.c:3944 builtin/repack.c:665
-#: builtin/submodule--helper.c:3262 t/helper/test-simple-ipc.c:595
+#: builtin/pack-objects.c:3967 builtin/repack.c:669
+#: builtin/submodule--helper.c:3380 t/helper/test-simple-ipc.c:595
#: t/helper/test-simple-ipc.c:597
msgid "name"
msgstr ""
-#: builtin/clone.c:125
+#: builtin/clone.c:129
msgid "use <name> instead of 'origin' to track upstream"
msgstr ""
-#: builtin/clone.c:127
+#: builtin/clone.c:131
msgid "checkout <branch> instead of the remote's HEAD"
msgstr ""
-#: builtin/clone.c:129
+#: builtin/clone.c:133
msgid "path to git-upload-pack on the remote"
msgstr ""
-#: builtin/clone.c:130 builtin/fetch.c:181 builtin/grep.c:876
+#: builtin/clone.c:134 builtin/fetch.c:182 builtin/grep.c:877
#: builtin/pull.c:212
msgid "depth"
msgstr ""
-#: builtin/clone.c:131
+#: builtin/clone.c:135
msgid "create a shallow clone of that depth"
msgstr ""
-#: builtin/clone.c:132 builtin/fetch.c:183 builtin/pack-objects.c:3933
+#: builtin/clone.c:136 builtin/fetch.c:184 builtin/pack-objects.c:3956
#: builtin/pull.c:215
msgid "time"
msgstr ""
-#: builtin/clone.c:133
+#: builtin/clone.c:137
msgid "create a shallow clone since a specific time"
msgstr ""
-#: builtin/clone.c:134 builtin/fetch.c:185 builtin/fetch.c:208
-#: builtin/pull.c:218 builtin/pull.c:243 builtin/rebase.c:1022
+#: builtin/clone.c:138 builtin/fetch.c:186 builtin/fetch.c:212
+#: builtin/pull.c:218 builtin/pull.c:243 builtin/rebase.c:1050
msgid "revision"
msgstr ""
-#: builtin/clone.c:135 builtin/fetch.c:186 builtin/pull.c:219
+#: builtin/clone.c:139 builtin/fetch.c:187 builtin/pull.c:219
msgid "deepen history of shallow clone, excluding rev"
msgstr ""
-#: builtin/clone.c:137 builtin/submodule--helper.c:1883
-#: builtin/submodule--helper.c:2530
+#: builtin/clone.c:141 builtin/submodule--helper.c:1897
+#: builtin/submodule--helper.c:2735
msgid "clone only one branch, HEAD or --branch"
msgstr ""
-#: builtin/clone.c:139
+#: builtin/clone.c:143
msgid "don't clone any tags, and make later fetches not to follow them"
msgstr ""
-#: builtin/clone.c:141
+#: builtin/clone.c:145
msgid "any cloned submodules will be shallow"
msgstr ""
-#: builtin/clone.c:142 builtin/init-db.c:548
+#: builtin/clone.c:146 builtin/init-db.c:548
msgid "gitdir"
msgstr ""
-#: builtin/clone.c:143 builtin/init-db.c:549
+#: builtin/clone.c:147 builtin/init-db.c:549
msgid "separate git dir from working tree"
msgstr ""
-#: builtin/clone.c:144
+#: builtin/clone.c:148
msgid "key=value"
msgstr ""
-#: builtin/clone.c:145
+#: builtin/clone.c:149
msgid "set config inside the new repository"
msgstr ""
-#: builtin/clone.c:147 builtin/fetch.c:203 builtin/ls-remote.c:77
+#: builtin/clone.c:151 builtin/fetch.c:207 builtin/ls-remote.c:77
#: builtin/pull.c:234 builtin/push.c:575 builtin/send-pack.c:200
msgid "server-specific"
msgstr ""
-#: builtin/clone.c:147 builtin/fetch.c:203 builtin/ls-remote.c:77
+#: builtin/clone.c:151 builtin/fetch.c:207 builtin/ls-remote.c:77
#: builtin/pull.c:235 builtin/push.c:575 builtin/send-pack.c:201
msgid "option to transmit"
msgstr ""
-#: builtin/clone.c:148 builtin/fetch.c:204 builtin/pull.c:238
+#: builtin/clone.c:152 builtin/fetch.c:208 builtin/pull.c:238
#: builtin/push.c:576
msgid "use IPv4 addresses only"
msgstr ""
-#: builtin/clone.c:150 builtin/fetch.c:206 builtin/pull.c:241
+#: builtin/clone.c:154 builtin/fetch.c:210 builtin/pull.c:241
#: builtin/push.c:578
msgid "use IPv6 addresses only"
msgstr ""
-#: builtin/clone.c:154
+#: builtin/clone.c:158
+msgid "apply partial clone filters to submodules"
+msgstr ""
+
+#: builtin/clone.c:160
msgid "any cloned submodules will use their remote-tracking branch"
msgstr ""
-#: builtin/clone.c:156
+#: builtin/clone.c:162
msgid "initialize sparse-checkout file to include only files at root"
msgstr ""
-#: builtin/clone.c:231
+#: builtin/clone.c:237
#, c-format
msgid "info: Could not add alternate for '%s': %s\n"
msgstr ""
-#: builtin/clone.c:304
+#: builtin/clone.c:310
#, c-format
msgid "%s exists and is not a directory"
msgstr ""
-#: builtin/clone.c:322
+#: builtin/clone.c:328
#, c-format
msgid "failed to start iterator over '%s'"
msgstr ""
-#: builtin/clone.c:353
+#: builtin/clone.c:359
#, c-format
msgid "failed to create link '%s'"
msgstr ""
-#: builtin/clone.c:357
+#: builtin/clone.c:363
#, c-format
msgid "failed to copy file to '%s'"
msgstr ""
-#: builtin/clone.c:362
+#: builtin/clone.c:368
#, c-format
msgid "failed to iterate over '%s'"
msgstr ""
-#: builtin/clone.c:389
+#: builtin/clone.c:395
#, c-format
msgid "done.\n"
msgstr ""
-#: builtin/clone.c:403
+#: builtin/clone.c:409
msgid ""
"Clone succeeded, but checkout failed.\n"
"You can inspect what was checked out with 'git status'\n"
"and retry with 'git restore --source=HEAD :/'\n"
msgstr ""
-#: builtin/clone.c:480
+#: builtin/clone.c:486
#, c-format
msgid "Could not find remote branch %s to clone."
msgstr ""
-#: builtin/clone.c:597
+#: builtin/clone.c:603
#, c-format
msgid "unable to update %s"
msgstr ""
-#: builtin/clone.c:645
+#: builtin/clone.c:651
msgid "failed to initialize sparse-checkout"
msgstr ""
-#: builtin/clone.c:668
+#: builtin/clone.c:674
msgid "remote HEAD refers to nonexistent ref, unable to checkout.\n"
msgstr ""
-#: builtin/clone.c:701
+#: builtin/clone.c:709
msgid "unable to checkout working tree"
msgstr ""
-#: builtin/clone.c:779
+#: builtin/clone.c:793
msgid "unable to write parameters to config file"
msgstr ""
-#: builtin/clone.c:842
+#: builtin/clone.c:856
msgid "cannot repack to clean up"
msgstr ""
-#: builtin/clone.c:844
+#: builtin/clone.c:858
msgid "cannot unlink temporary alternates file"
msgstr ""
-#: builtin/clone.c:886
+#: builtin/clone.c:901
msgid "Too many arguments."
msgstr ""
-#: builtin/clone.c:890 contrib/scalar/scalar.c:414
+#: builtin/clone.c:905 contrib/scalar/scalar.c:413
msgid "You must specify a repository to clone."
msgstr ""
-#: builtin/clone.c:903
+#: builtin/clone.c:918
#, c-format
msgid "options '%s' and '%s %s' cannot be used together"
msgstr ""
-#: builtin/clone.c:920
+#: builtin/clone.c:935
#, c-format
msgid "repository '%s' does not exist"
msgstr ""
-#: builtin/clone.c:924 builtin/fetch.c:2052
+#: builtin/clone.c:939 builtin/fetch.c:2176
#, c-format
msgid "depth %s is not a positive number"
msgstr ""
-#: builtin/clone.c:934
+#: builtin/clone.c:949
#, c-format
msgid "destination path '%s' already exists and is not an empty directory."
msgstr ""
-#: builtin/clone.c:940
+#: builtin/clone.c:955
#, c-format
msgid "repository path '%s' already exists and is not an empty directory."
msgstr ""
-#: builtin/clone.c:954
+#: builtin/clone.c:969
#, c-format
msgid "working tree '%s' already exists."
msgstr ""
-#: builtin/clone.c:969 builtin/clone.c:990 builtin/difftool.c:256
-#: builtin/log.c:2012 builtin/worktree.c:281 builtin/worktree.c:313
+#: builtin/clone.c:984 builtin/clone.c:1005 builtin/difftool.c:256
+#: builtin/log.c:2037 builtin/worktree.c:350 builtin/worktree.c:382
#, c-format
msgid "could not create leading directories of '%s'"
msgstr ""
-#: builtin/clone.c:974
+#: builtin/clone.c:989
#, c-format
msgid "could not create work tree dir '%s'"
msgstr ""
-#: builtin/clone.c:994
+#: builtin/clone.c:1009
#, c-format
msgid "Cloning into bare repository '%s'...\n"
msgstr ""
-#: builtin/clone.c:996
+#: builtin/clone.c:1011
#, c-format
msgid "Cloning into '%s'...\n"
msgstr ""
-#: builtin/clone.c:1025
+#: builtin/clone.c:1040
msgid ""
"clone --recursive is not compatible with both --reference and --reference-if-"
"able"
msgstr ""
-#: builtin/clone.c:1080 builtin/remote.c:200 builtin/remote.c:710
+#: builtin/clone.c:1116 builtin/remote.c:201 builtin/remote.c:721
#, c-format
msgid "'%s' is not a valid remote name"
msgstr ""
-#: builtin/clone.c:1121
+#: builtin/clone.c:1157
msgid "--depth is ignored in local clones; use file:// instead."
msgstr ""
-#: builtin/clone.c:1123
+#: builtin/clone.c:1159
msgid "--shallow-since is ignored in local clones; use file:// instead."
msgstr ""
-#: builtin/clone.c:1125
+#: builtin/clone.c:1161
msgid "--shallow-exclude is ignored in local clones; use file:// instead."
msgstr ""
-#: builtin/clone.c:1127
+#: builtin/clone.c:1163
msgid "--filter is ignored in local clones; use file:// instead."
msgstr ""
-#: builtin/clone.c:1132
+#: builtin/clone.c:1168
msgid "source repository is shallow, ignoring --local"
msgstr ""
-#: builtin/clone.c:1137
+#: builtin/clone.c:1173
msgid "--local is ignored"
msgstr ""
-#: builtin/clone.c:1216 builtin/clone.c:1276
+#: builtin/clone.c:1185
+msgid "cannot clone from filtered bundle"
+msgstr ""
+
+#: builtin/clone.c:1265 builtin/clone.c:1324
msgid "remote transport reported error"
msgstr ""
-#: builtin/clone.c:1228 builtin/clone.c:1239
+#: builtin/clone.c:1277 builtin/clone.c:1289
#, c-format
msgid "Remote branch %s not found in upstream %s"
msgstr ""
-#: builtin/clone.c:1242
+#: builtin/clone.c:1292
msgid "You appear to have cloned an empty repository."
msgstr ""
@@ -12514,7 +12874,7 @@ msgid ""
"paths] [--[no-]max-new-filters <n>] [--[no-]progress] <split options>"
msgstr ""
-#: builtin/commit-graph.c:51 builtin/fetch.c:192 builtin/log.c:1794
+#: builtin/commit-graph.c:51 builtin/fetch.c:196 builtin/log.c:1813
msgid "dir"
msgstr ""
@@ -12610,7 +12970,7 @@ msgstr ""
msgid "duplicate parent %s ignored"
msgstr ""
-#: builtin/commit-tree.c:56 builtin/commit-tree.c:134 builtin/log.c:577
+#: builtin/commit-tree.c:56 builtin/commit-tree.c:134 builtin/log.c:590
#, c-format
msgid "not a valid object name %s"
msgstr ""
@@ -12633,13 +12993,13 @@ msgstr ""
msgid "id of a parent commit object"
msgstr ""
-#: builtin/commit-tree.c:112 builtin/commit.c:1627 builtin/merge.c:284
-#: builtin/notes.c:407 builtin/notes.c:573 builtin/stash.c:1677
-#: builtin/tag.c:454
+#: builtin/commit-tree.c:112 builtin/commit.c:1626 builtin/merge.c:284
+#: builtin/notes.c:407 builtin/notes.c:573 builtin/stash.c:1666
+#: builtin/tag.c:455
msgid "message"
msgstr ""
-#: builtin/commit-tree.c:113 builtin/commit.c:1627
+#: builtin/commit-tree.c:113 builtin/commit.c:1626
msgid "commit message"
msgstr ""
@@ -12647,7 +13007,7 @@ msgstr ""
msgid "read commit log message from file"
msgstr ""
-#: builtin/commit-tree.c:119 builtin/commit.c:1644 builtin/merge.c:303
+#: builtin/commit-tree.c:119 builtin/commit.c:1643 builtin/merge.c:303
#: builtin/pull.c:180 builtin/revert.c:118
msgid "GPG sign commit"
msgstr ""
@@ -12660,22 +13020,22 @@ msgstr ""
msgid "git commit-tree: failed to read"
msgstr ""
-#: builtin/commit.c:42
+#: builtin/commit.c:43
msgid "git commit [<options>] [--] <pathspec>..."
msgstr ""
-#: builtin/commit.c:47
+#: builtin/commit.c:48
msgid "git status [<options>] [--] <pathspec>..."
msgstr ""
-#: builtin/commit.c:52
+#: builtin/commit.c:53
msgid ""
"You asked to amend the most recent commit, but doing so would make\n"
"it empty. You can repeat your command with --allow-empty, or you can\n"
"remove the commit entirely with \"git reset HEAD^\".\n"
msgstr ""
-#: builtin/commit.c:57
+#: builtin/commit.c:58
msgid ""
"The previous cherry-pick is now empty, possibly due to conflict resolution.\n"
"If you wish to commit it anyway, use:\n"
@@ -12684,15 +13044,15 @@ msgid ""
"\n"
msgstr ""
-#: builtin/commit.c:64
+#: builtin/commit.c:65
msgid "Otherwise, please use 'git rebase --skip'\n"
msgstr ""
-#: builtin/commit.c:67
+#: builtin/commit.c:68
msgid "Otherwise, please use 'git cherry-pick --skip'\n"
msgstr ""
-#: builtin/commit.c:70
+#: builtin/commit.c:71
msgid ""
"and then use:\n"
"\n"
@@ -12705,132 +13065,132 @@ msgid ""
"\n"
msgstr ""
-#: builtin/commit.c:325
+#: builtin/commit.c:326
msgid "failed to unpack HEAD tree object"
msgstr ""
-#: builtin/commit.c:375
+#: builtin/commit.c:376
msgid "No paths with --include/--only does not make sense."
msgstr ""
-#: builtin/commit.c:387
+#: builtin/commit.c:388
msgid "unable to create temporary index"
msgstr ""
-#: builtin/commit.c:396
+#: builtin/commit.c:397
msgid "interactive add failed"
msgstr ""
-#: builtin/commit.c:411
+#: builtin/commit.c:412
msgid "unable to update temporary index"
msgstr ""
-#: builtin/commit.c:413
+#: builtin/commit.c:414
msgid "Failed to update main cache tree"
msgstr ""
-#: builtin/commit.c:438 builtin/commit.c:461 builtin/commit.c:509
+#: builtin/commit.c:439 builtin/commit.c:462 builtin/commit.c:510
msgid "unable to write new_index file"
msgstr ""
-#: builtin/commit.c:490
+#: builtin/commit.c:491
msgid "cannot do a partial commit during a merge."
msgstr ""
-#: builtin/commit.c:492
+#: builtin/commit.c:493
msgid "cannot do a partial commit during a cherry-pick."
msgstr ""
-#: builtin/commit.c:494
+#: builtin/commit.c:495
msgid "cannot do a partial commit during a rebase."
msgstr ""
-#: builtin/commit.c:502
+#: builtin/commit.c:503
msgid "cannot read the index"
msgstr ""
-#: builtin/commit.c:521
+#: builtin/commit.c:522
msgid "unable to write temporary index file"
msgstr ""
-#: builtin/commit.c:619
+#: builtin/commit.c:620
#, c-format
msgid "commit '%s' lacks author header"
msgstr ""
-#: builtin/commit.c:621
+#: builtin/commit.c:622
#, c-format
msgid "commit '%s' has malformed author line"
msgstr ""
-#: builtin/commit.c:640
+#: builtin/commit.c:641
msgid "malformed --author parameter"
msgstr ""
-#: builtin/commit.c:693
+#: builtin/commit.c:694
msgid ""
"unable to select a comment character that is not used\n"
"in the current commit message"
msgstr ""
-#: builtin/commit.c:747 builtin/commit.c:781 builtin/commit.c:1166
+#: builtin/commit.c:750 builtin/commit.c:784 builtin/commit.c:1170
#, c-format
msgid "could not lookup commit %s"
msgstr ""
-#: builtin/commit.c:759 builtin/shortlog.c:416
+#: builtin/commit.c:762 builtin/shortlog.c:417
#, c-format
msgid "(reading log message from standard input)\n"
msgstr ""
-#: builtin/commit.c:761
+#: builtin/commit.c:764
msgid "could not read log from standard input"
msgstr ""
-#: builtin/commit.c:765
+#: builtin/commit.c:768
#, c-format
msgid "could not read log file '%s'"
msgstr ""
-#: builtin/commit.c:802
+#: builtin/commit.c:805
#, c-format
msgid "options '%s' and '%s:%s' cannot be used together"
msgstr ""
-#: builtin/commit.c:814 builtin/commit.c:830
+#: builtin/commit.c:817 builtin/commit.c:833
msgid "could not read SQUASH_MSG"
msgstr ""
-#: builtin/commit.c:821
+#: builtin/commit.c:824
msgid "could not read MERGE_MSG"
msgstr ""
-#: builtin/commit.c:881
+#: builtin/commit.c:884
msgid "could not write commit template"
msgstr ""
-#: builtin/commit.c:894
+#: builtin/commit.c:897
#, c-format
msgid ""
"Please enter the commit message for your changes. Lines starting\n"
"with '%c' will be ignored.\n"
msgstr ""
-#: builtin/commit.c:896
+#: builtin/commit.c:899
#, c-format
msgid ""
"Please enter the commit message for your changes. Lines starting\n"
"with '%c' will be ignored, and an empty message aborts the commit.\n"
msgstr ""
-#: builtin/commit.c:900
+#: builtin/commit.c:903
#, c-format
msgid ""
"Please enter the commit message for your changes. Lines starting\n"
"with '%c' will be kept; you may remove them yourself if you want to.\n"
msgstr ""
-#: builtin/commit.c:904
+#: builtin/commit.c:907
#, c-format
msgid ""
"Please enter the commit message for your changes. Lines starting\n"
@@ -12838,7 +13198,7 @@ msgid ""
"An empty message aborts the commit.\n"
msgstr ""
-#: builtin/commit.c:916
+#: builtin/commit.c:919
msgid ""
"\n"
"It looks like you may be committing a merge.\n"
@@ -12847,7 +13207,7 @@ msgid ""
"and try again.\n"
msgstr ""
-#: builtin/commit.c:921
+#: builtin/commit.c:924
msgid ""
"\n"
"It looks like you may be committing a cherry-pick.\n"
@@ -12856,364 +13216,344 @@ msgid ""
"and try again.\n"
msgstr ""
-#: builtin/commit.c:948
+#: builtin/commit.c:951
#, c-format
msgid "%sAuthor: %.*s <%.*s>"
msgstr ""
-#: builtin/commit.c:956
+#: builtin/commit.c:959
#, c-format
msgid "%sDate: %s"
msgstr ""
-#: builtin/commit.c:963
+#: builtin/commit.c:966
#, c-format
msgid "%sCommitter: %.*s <%.*s>"
msgstr ""
-#: builtin/commit.c:981
+#: builtin/commit.c:984
msgid "Cannot read index"
msgstr ""
-#: builtin/commit.c:1026
+#: builtin/commit.c:1029
msgid "unable to pass trailers to --trailers"
msgstr ""
-#: builtin/commit.c:1066
+#: builtin/commit.c:1069
msgid "Error building trees"
msgstr ""
-#: builtin/commit.c:1080 builtin/tag.c:316
+#: builtin/commit.c:1083 builtin/tag.c:317
#, c-format
msgid "Please supply the message using either -m or -F option.\n"
msgstr ""
-#: builtin/commit.c:1124
+#: builtin/commit.c:1128
#, c-format
msgid "--author '%s' is not 'Name <email>' and matches no existing author"
msgstr ""
-#: builtin/commit.c:1138
+#: builtin/commit.c:1142
#, c-format
msgid "Invalid ignored mode '%s'"
msgstr ""
-#: builtin/commit.c:1156 builtin/commit.c:1451
+#: builtin/commit.c:1160 builtin/commit.c:1450
#, c-format
msgid "Invalid untracked files mode '%s'"
msgstr ""
-#: builtin/commit.c:1227
+#: builtin/commit.c:1231
msgid "You are in the middle of a merge -- cannot reword."
msgstr ""
-#: builtin/commit.c:1229
+#: builtin/commit.c:1233
msgid "You are in the middle of a cherry-pick -- cannot reword."
msgstr ""
-#: builtin/commit.c:1232
+#: builtin/commit.c:1236
#, c-format
msgid "reword option of '%s' and path '%s' cannot be used together"
msgstr ""
-#: builtin/commit.c:1234
+#: builtin/commit.c:1238
#, c-format
msgid "reword option of '%s' and '%s' cannot be used together"
msgstr ""
-#: builtin/commit.c:1254
-msgid "Using both --reset-author and --author does not make sense"
-msgstr ""
-
-#: builtin/commit.c:1261
+#: builtin/commit.c:1263
msgid "You have nothing to amend."
msgstr ""
-#: builtin/commit.c:1264
+#: builtin/commit.c:1266
msgid "You are in the middle of a merge -- cannot amend."
msgstr ""
-#: builtin/commit.c:1266
+#: builtin/commit.c:1268
msgid "You are in the middle of a cherry-pick -- cannot amend."
msgstr ""
-#: builtin/commit.c:1268
+#: builtin/commit.c:1270
msgid "You are in the middle of a rebase -- cannot amend."
msgstr ""
-#: builtin/commit.c:1271
-msgid "Options --squash and --fixup cannot be used together"
-msgstr ""
-
-#: builtin/commit.c:1281
-msgid "Only one of -c/-C/-F/--fixup can be used."
-msgstr ""
-
-#: builtin/commit.c:1283
-msgid "Option -m cannot be combined with -c/-C/-F."
-msgstr ""
-
-#: builtin/commit.c:1292
+#: builtin/commit.c:1290
msgid "--reset-author can be used only with -C, -c or --amend."
msgstr ""
-#: builtin/commit.c:1310
-msgid "Only one of --include/--only/--all/--interactive/--patch can be used."
-msgstr ""
-
-#: builtin/commit.c:1338
+#: builtin/commit.c:1337
#, c-format
msgid "unknown option: --fixup=%s:%s"
msgstr ""
-#: builtin/commit.c:1355
+#: builtin/commit.c:1354
#, c-format
msgid "paths '%s ...' with -a does not make sense"
msgstr ""
-#: builtin/commit.c:1486 builtin/commit.c:1655
+#: builtin/commit.c:1485 builtin/commit.c:1654
msgid "show status concisely"
msgstr ""
-#: builtin/commit.c:1488 builtin/commit.c:1657
+#: builtin/commit.c:1487 builtin/commit.c:1656
msgid "show branch information"
msgstr ""
-#: builtin/commit.c:1490
+#: builtin/commit.c:1489
msgid "show stash information"
msgstr ""
-#: builtin/commit.c:1492 builtin/commit.c:1659
+#: builtin/commit.c:1491 builtin/commit.c:1658
msgid "compute full ahead/behind values"
msgstr ""
-#: builtin/commit.c:1494
+#: builtin/commit.c:1493
msgid "version"
msgstr ""
-#: builtin/commit.c:1494 builtin/commit.c:1661 builtin/push.c:551
-#: builtin/worktree.c:690
+#: builtin/commit.c:1493 builtin/commit.c:1660 builtin/push.c:551
+#: builtin/worktree.c:765
msgid "machine-readable output"
msgstr ""
-#: builtin/commit.c:1497 builtin/commit.c:1663
+#: builtin/commit.c:1496 builtin/commit.c:1662
msgid "show status in long format (default)"
msgstr ""
-#: builtin/commit.c:1500 builtin/commit.c:1666
+#: builtin/commit.c:1499 builtin/commit.c:1665
msgid "terminate entries with NUL"
msgstr ""
-#: builtin/commit.c:1502 builtin/commit.c:1506 builtin/commit.c:1669
+#: builtin/commit.c:1501 builtin/commit.c:1505 builtin/commit.c:1668
#: builtin/fast-export.c:1172 builtin/fast-export.c:1175
-#: builtin/fast-export.c:1178 builtin/rebase.c:1111 parse-options.h:337
+#: builtin/fast-export.c:1178 builtin/rebase.c:1139 parse-options.h:368
msgid "mode"
msgstr ""
-#: builtin/commit.c:1503 builtin/commit.c:1669
+#: builtin/commit.c:1502 builtin/commit.c:1668
msgid "show untracked files, optional modes: all, normal, no. (Default: all)"
msgstr ""
-#: builtin/commit.c:1507
+#: builtin/commit.c:1506
msgid ""
"show ignored files, optional modes: traditional, matching, no. (Default: "
"traditional)"
msgstr ""
-#: builtin/commit.c:1509 parse-options.h:192
+#: builtin/commit.c:1508 parse-options.h:197
msgid "when"
msgstr ""
-#: builtin/commit.c:1510
+#: builtin/commit.c:1509
msgid ""
"ignore changes to submodules, optional when: all, dirty, untracked. "
"(Default: all)"
msgstr ""
-#: builtin/commit.c:1512
+#: builtin/commit.c:1511
msgid "list untracked files in columns"
msgstr ""
-#: builtin/commit.c:1513
+#: builtin/commit.c:1512
msgid "do not detect renames"
msgstr ""
-#: builtin/commit.c:1515
+#: builtin/commit.c:1514
msgid "detect renames, optionally set similarity index"
msgstr ""
-#: builtin/commit.c:1538
+#: builtin/commit.c:1537
msgid "Unsupported combination of ignored and untracked-files arguments"
msgstr ""
-#: builtin/commit.c:1620
+#: builtin/commit.c:1619
msgid "suppress summary after successful commit"
msgstr ""
-#: builtin/commit.c:1621
+#: builtin/commit.c:1620
msgid "show diff in commit message template"
msgstr ""
-#: builtin/commit.c:1623
+#: builtin/commit.c:1622
msgid "Commit message options"
msgstr ""
-#: builtin/commit.c:1624 builtin/merge.c:288 builtin/tag.c:456
+#: builtin/commit.c:1623 builtin/merge.c:288 builtin/tag.c:457
msgid "read message from file"
msgstr ""
-#: builtin/commit.c:1625
+#: builtin/commit.c:1624
msgid "author"
msgstr ""
-#: builtin/commit.c:1625
+#: builtin/commit.c:1624
msgid "override author for commit"
msgstr ""
-#: builtin/commit.c:1626 builtin/gc.c:551
+#: builtin/commit.c:1625 builtin/gc.c:551
msgid "date"
msgstr ""
-#: builtin/commit.c:1626
+#: builtin/commit.c:1625
msgid "override date for commit"
msgstr ""
-#: builtin/commit.c:1628 builtin/commit.c:1629 builtin/commit.c:1635
-#: parse-options.h:329 ref-filter.h:89
+#: builtin/commit.c:1627 builtin/commit.c:1628 builtin/commit.c:1634
+#: parse-options.h:360 ref-filter.h:89
msgid "commit"
msgstr ""
-#: builtin/commit.c:1628
+#: builtin/commit.c:1627
msgid "reuse and edit message from specified commit"
msgstr ""
-#: builtin/commit.c:1629
+#: builtin/commit.c:1628
msgid "reuse message from specified commit"
msgstr ""
#. TRANSLATORS: Leave "[(amend|reword):]" as-is,
#. and only translate <commit>.
#.
-#: builtin/commit.c:1634
+#: builtin/commit.c:1633
msgid "[(amend|reword):]commit"
msgstr ""
-#: builtin/commit.c:1634
+#: builtin/commit.c:1633
msgid ""
"use autosquash formatted message to fixup or amend/reword specified commit"
msgstr ""
-#: builtin/commit.c:1635
+#: builtin/commit.c:1634
msgid "use autosquash formatted message to squash specified commit"
msgstr ""
-#: builtin/commit.c:1636
+#: builtin/commit.c:1635
msgid "the commit is authored by me now (used with -C/-c/--amend)"
msgstr ""
-#: builtin/commit.c:1637 builtin/interpret-trailers.c:111
+#: builtin/commit.c:1636 builtin/interpret-trailers.c:111
msgid "trailer"
msgstr ""
-#: builtin/commit.c:1637
+#: builtin/commit.c:1636
msgid "add custom trailer(s)"
msgstr ""
-#: builtin/commit.c:1638 builtin/log.c:1769 builtin/merge.c:306
+#: builtin/commit.c:1637 builtin/log.c:1788 builtin/merge.c:306
#: builtin/pull.c:146 builtin/revert.c:110
msgid "add a Signed-off-by trailer"
msgstr ""
-#: builtin/commit.c:1639
+#: builtin/commit.c:1638
msgid "use specified template file"
msgstr ""
-#: builtin/commit.c:1640
+#: builtin/commit.c:1639
msgid "force edit of commit"
msgstr ""
-#: builtin/commit.c:1642
+#: builtin/commit.c:1641
msgid "include status in commit message template"
msgstr ""
-#: builtin/commit.c:1647
+#: builtin/commit.c:1646
msgid "Commit contents options"
msgstr ""
-#: builtin/commit.c:1648
+#: builtin/commit.c:1647
msgid "commit all changed files"
msgstr ""
-#: builtin/commit.c:1649
+#: builtin/commit.c:1648
msgid "add specified files to index for commit"
msgstr ""
-#: builtin/commit.c:1650
+#: builtin/commit.c:1649
msgid "interactively add files"
msgstr ""
-#: builtin/commit.c:1651
+#: builtin/commit.c:1650
msgid "interactively add changes"
msgstr ""
-#: builtin/commit.c:1652
+#: builtin/commit.c:1651
msgid "commit only specified files"
msgstr ""
-#: builtin/commit.c:1653
+#: builtin/commit.c:1652
msgid "bypass pre-commit and commit-msg hooks"
msgstr ""
-#: builtin/commit.c:1654
+#: builtin/commit.c:1653
msgid "show what would be committed"
msgstr ""
-#: builtin/commit.c:1667
+#: builtin/commit.c:1666
msgid "amend previous commit"
msgstr ""
-#: builtin/commit.c:1668
+#: builtin/commit.c:1667
msgid "bypass post-rewrite hook"
msgstr ""
-#: builtin/commit.c:1675
+#: builtin/commit.c:1674
msgid "ok to record an empty change"
msgstr ""
-#: builtin/commit.c:1677
+#: builtin/commit.c:1676
msgid "ok to record a change with an empty message"
msgstr ""
-#: builtin/commit.c:1753
+#: builtin/commit.c:1752
#, c-format
msgid "Corrupt MERGE_HEAD file (%s)"
msgstr ""
-#: builtin/commit.c:1760
+#: builtin/commit.c:1759
msgid "could not read MERGE_MODE"
msgstr ""
-#: builtin/commit.c:1781
+#: builtin/commit.c:1780
#, c-format
msgid "could not read commit message: %s"
msgstr ""
-#: builtin/commit.c:1788
+#: builtin/commit.c:1787
#, c-format
msgid "Aborting commit due to empty commit message.\n"
msgstr ""
-#: builtin/commit.c:1793
+#: builtin/commit.c:1792
#, c-format
msgid "Aborting commit; you did not edit the message.\n"
msgstr ""
-#: builtin/commit.c:1804
+#: builtin/commit.c:1803
#, c-format
msgid "Aborting commit due to empty commit message body.\n"
msgstr ""
-#: builtin/commit.c:1840
+#: builtin/commit.c:1839
msgid ""
"repository has been updated, but unable to write\n"
"new_index file. Check that disk is not full and quota is\n"
@@ -13333,6 +13673,10 @@ msgstr ""
msgid "Type"
msgstr ""
+#: builtin/config.c:154 builtin/env--helper.c:42 builtin/hash-object.c:97
+msgid "type"
+msgstr ""
+
#: builtin/config.c:154 builtin/env--helper.c:43
msgid "value is given this type"
msgstr ""
@@ -13531,10 +13875,6 @@ msgstr ""
msgid "no such section: %s"
msgstr ""
-#: builtin/count-objects.c:90
-msgid "git count-objects [-v] [-H | --human-readable]"
-msgstr ""
-
#: builtin/count-objects.c:100
msgid "print sizes in human readable format"
msgstr ""
@@ -13691,7 +14031,7 @@ msgstr ""
msgid "do not consider tags matching <pattern>"
msgstr ""
-#: builtin/describe.c:570 builtin/name-rev.c:544
+#: builtin/describe.c:570 builtin/name-rev.c:595
msgid "show abbreviated commit object as fallback"
msgstr ""
@@ -13739,7 +14079,7 @@ msgstr ""
msgid "Not a git repository"
msgstr ""
-#: builtin/diff.c:537 builtin/grep.c:698
+#: builtin/diff.c:537 builtin/grep.c:700
#, c-format
msgid "invalid object '%s' given."
msgstr ""
@@ -13853,11 +14193,11 @@ msgstr ""
msgid "difftool requires worktree or --no-index"
msgstr ""
-#: builtin/difftool.c:744
+#: builtin/difftool.c:745
msgid "no <tool> given for --tool=<tool>"
msgstr ""
-#: builtin/difftool.c:751
+#: builtin/difftool.c:752
msgid "no <cmd> given for --extcmd=<cmd>"
msgstr ""
@@ -13865,10 +14205,6 @@ msgstr ""
msgid "git env--helper --type=[bool|ulong] <options> <env-var>"
msgstr ""
-#: builtin/env--helper.c:42 builtin/hash-object.c:96
-msgid "type"
-msgstr ""
-
#: builtin/env--helper.c:46
msgid "default for git_env_*(...) to fall back on"
msgstr ""
@@ -13890,7 +14226,7 @@ msgid ""
msgstr ""
#: builtin/fast-export.c:29
-msgid "git fast-export [rev-list-opts]"
+msgid "git fast-export [<rev-list-opts>]"
msgstr ""
#: builtin/fast-export.c:843
@@ -13945,7 +14281,7 @@ msgstr ""
msgid "skip output of blob data"
msgstr ""
-#: builtin/fast-export.c:1196 builtin/log.c:1841
+#: builtin/fast-export.c:1196 builtin/log.c:1860
msgid "refspec"
msgstr ""
@@ -13977,36 +14313,36 @@ msgstr ""
msgid "label tags with mark ids"
msgstr ""
-#: builtin/fast-import.c:3090
+#: builtin/fast-import.c:3097
#, c-format
msgid "Missing from marks for submodule '%s'"
msgstr ""
-#: builtin/fast-import.c:3092
+#: builtin/fast-import.c:3099
#, c-format
msgid "Missing to marks for submodule '%s'"
msgstr ""
-#: builtin/fast-import.c:3227
+#: builtin/fast-import.c:3234
#, c-format
msgid "Expected 'mark' command, got %s"
msgstr ""
-#: builtin/fast-import.c:3232
+#: builtin/fast-import.c:3239
#, c-format
msgid "Expected 'to' command, got %s"
msgstr ""
-#: builtin/fast-import.c:3324
+#: builtin/fast-import.c:3331
msgid "Expected format name:filename for submodule rewrite option"
msgstr ""
-#: builtin/fast-import.c:3379
+#: builtin/fast-import.c:3386
#, c-format
msgid "feature '%s' forbidden in input without --allow-unsafe-features"
msgstr ""
-#: builtin/fetch-pack.c:242
+#: builtin/fetch-pack.c:246
#, c-format
msgid "Lockfile created but not reported: %s"
msgstr ""
@@ -14027,212 +14363,211 @@ msgstr ""
msgid "git fetch --all [<options>]"
msgstr ""
-#: builtin/fetch.c:123
+#: builtin/fetch.c:124
msgid "fetch.parallel cannot be negative"
msgstr ""
-#: builtin/fetch.c:146 builtin/pull.c:189
+#: builtin/fetch.c:147 builtin/pull.c:189
msgid "fetch from all remotes"
msgstr ""
-#: builtin/fetch.c:148 builtin/pull.c:249
+#: builtin/fetch.c:149 builtin/pull.c:249
msgid "set upstream for git pull/fetch"
msgstr ""
-#: builtin/fetch.c:150 builtin/pull.c:192
+#: builtin/fetch.c:151 builtin/pull.c:192
msgid "append to .git/FETCH_HEAD instead of overwriting"
msgstr ""
-#: builtin/fetch.c:152
+#: builtin/fetch.c:153
msgid "use atomic transaction to update references"
msgstr ""
-#: builtin/fetch.c:154 builtin/pull.c:195
+#: builtin/fetch.c:155 builtin/pull.c:195
msgid "path to upload pack on remote end"
msgstr ""
-#: builtin/fetch.c:155
+#: builtin/fetch.c:156
msgid "force overwrite of local reference"
msgstr ""
-#: builtin/fetch.c:157
+#: builtin/fetch.c:158
msgid "fetch from multiple remotes"
msgstr ""
-#: builtin/fetch.c:159 builtin/pull.c:199
+#: builtin/fetch.c:160 builtin/pull.c:199
msgid "fetch all tags and associated objects"
msgstr ""
-#: builtin/fetch.c:161
+#: builtin/fetch.c:162
msgid "do not fetch all tags (--no-tags)"
msgstr ""
-#: builtin/fetch.c:163
+#: builtin/fetch.c:164
msgid "number of submodules fetched in parallel"
msgstr ""
-#: builtin/fetch.c:165
+#: builtin/fetch.c:166
msgid "modify the refspec to place all refs within refs/prefetch/"
msgstr ""
-#: builtin/fetch.c:167 builtin/pull.c:202
+#: builtin/fetch.c:168 builtin/pull.c:202
msgid "prune remote-tracking branches no longer on remote"
msgstr ""
-#: builtin/fetch.c:169
+#: builtin/fetch.c:170
msgid "prune local tags no longer on remote and clobber changed tags"
msgstr ""
-#: builtin/fetch.c:170 builtin/fetch.c:195 builtin/pull.c:123
+#: builtin/fetch.c:171 builtin/fetch.c:199 builtin/pull.c:123
msgid "on-demand"
msgstr ""
-#: builtin/fetch.c:171
+#: builtin/fetch.c:172
msgid "control recursive fetching of submodules"
msgstr ""
-#: builtin/fetch.c:176
+#: builtin/fetch.c:177
msgid "write fetched references to the FETCH_HEAD file"
msgstr ""
-#: builtin/fetch.c:177 builtin/pull.c:210
+#: builtin/fetch.c:178 builtin/pull.c:210
msgid "keep downloaded pack"
msgstr ""
-#: builtin/fetch.c:179
+#: builtin/fetch.c:180
msgid "allow updating of HEAD ref"
msgstr ""
-#: builtin/fetch.c:182 builtin/fetch.c:188 builtin/pull.c:213
+#: builtin/fetch.c:183 builtin/fetch.c:189 builtin/pull.c:213
#: builtin/pull.c:222
msgid "deepen history of shallow clone"
msgstr ""
-#: builtin/fetch.c:184 builtin/pull.c:216
+#: builtin/fetch.c:185 builtin/pull.c:216
msgid "deepen history of shallow repository based on time"
msgstr ""
-#: builtin/fetch.c:190 builtin/pull.c:225
+#: builtin/fetch.c:191 builtin/pull.c:225
msgid "convert to a complete repository"
msgstr ""
-#: builtin/fetch.c:193
+#: builtin/fetch.c:194
+msgid "re-fetch without negotiating common commits"
+msgstr ""
+
+#: builtin/fetch.c:197
msgid "prepend this to submodule path output"
msgstr ""
-#: builtin/fetch.c:196
+#: builtin/fetch.c:200
msgid ""
"default for recursive fetching of submodules (lower priority than config "
"files)"
msgstr ""
-#: builtin/fetch.c:200 builtin/pull.c:228
+#: builtin/fetch.c:204 builtin/pull.c:228
msgid "accept refs that update .git/shallow"
msgstr ""
-#: builtin/fetch.c:201 builtin/pull.c:230
+#: builtin/fetch.c:205 builtin/pull.c:230
msgid "refmap"
msgstr ""
-#: builtin/fetch.c:202 builtin/pull.c:231
+#: builtin/fetch.c:206 builtin/pull.c:231
msgid "specify fetch refmap"
msgstr ""
-#: builtin/fetch.c:209 builtin/pull.c:244
+#: builtin/fetch.c:213 builtin/pull.c:244
msgid "report that we have only objects reachable from this object"
msgstr ""
-#: builtin/fetch.c:211
+#: builtin/fetch.c:215
msgid "do not fetch a packfile; instead, print ancestors of negotiation tips"
msgstr ""
-#: builtin/fetch.c:214 builtin/fetch.c:216
+#: builtin/fetch.c:218 builtin/fetch.c:220
msgid "run 'maintenance --auto' after fetching"
msgstr ""
-#: builtin/fetch.c:218 builtin/pull.c:247
+#: builtin/fetch.c:222 builtin/pull.c:247
msgid "check for forced-updates on all updated branches"
msgstr ""
-#: builtin/fetch.c:220
+#: builtin/fetch.c:224
msgid "write the commit-graph after fetching"
msgstr ""
-#: builtin/fetch.c:222
+#: builtin/fetch.c:226
msgid "accept refspecs from stdin"
msgstr ""
-#: builtin/fetch.c:592
+#: builtin/fetch.c:618
msgid "couldn't find remote ref HEAD"
msgstr ""
-#: builtin/fetch.c:766
-#, c-format
-msgid "configuration fetch.output contains invalid value %s"
-msgstr ""
-
-#: builtin/fetch.c:867
+#: builtin/fetch.c:893
#, c-format
msgid "object %s not found"
msgstr ""
-#: builtin/fetch.c:871
+#: builtin/fetch.c:897
msgid "[up to date]"
msgstr ""
-#: builtin/fetch.c:883 builtin/fetch.c:901 builtin/fetch.c:973
+#: builtin/fetch.c:909 builtin/fetch.c:927 builtin/fetch.c:999
msgid "[rejected]"
msgstr ""
-#: builtin/fetch.c:885
+#: builtin/fetch.c:911
msgid "can't fetch in current branch"
msgstr ""
-#: builtin/fetch.c:886
+#: builtin/fetch.c:912
msgid "checked out in another worktree"
msgstr ""
-#: builtin/fetch.c:896
+#: builtin/fetch.c:922
msgid "[tag update]"
msgstr ""
-#: builtin/fetch.c:897 builtin/fetch.c:934 builtin/fetch.c:956
-#: builtin/fetch.c:968
+#: builtin/fetch.c:923 builtin/fetch.c:960 builtin/fetch.c:982
+#: builtin/fetch.c:994
msgid "unable to update local ref"
msgstr ""
-#: builtin/fetch.c:901
+#: builtin/fetch.c:927
msgid "would clobber existing tag"
msgstr ""
-#: builtin/fetch.c:923
+#: builtin/fetch.c:949
msgid "[new tag]"
msgstr ""
-#: builtin/fetch.c:926
+#: builtin/fetch.c:952
msgid "[new branch]"
msgstr ""
-#: builtin/fetch.c:929
+#: builtin/fetch.c:955
msgid "[new ref]"
msgstr ""
-#: builtin/fetch.c:968
+#: builtin/fetch.c:994
msgid "forced update"
msgstr ""
-#: builtin/fetch.c:973
+#: builtin/fetch.c:999
msgid "non-fast-forward"
msgstr ""
-#: builtin/fetch.c:1076
+#: builtin/fetch.c:1102
msgid ""
"fetch normally indicates which branches had a forced update,\n"
"but that check has been disabled; to re-enable, use '--show-forced-updates'\n"
"flag or run 'git config fetch.showForcedUpdates true'"
msgstr ""
-#: builtin/fetch.c:1080
+#: builtin/fetch.c:1106
#, c-format
msgid ""
"it took %.2f seconds to check forced updates; you can use\n"
@@ -14241,168 +14576,168 @@ msgid ""
"to avoid this check\n"
msgstr ""
-#: builtin/fetch.c:1112
+#: builtin/fetch.c:1136
#, c-format
msgid "%s did not send all necessary objects\n"
msgstr ""
-#: builtin/fetch.c:1141
+#: builtin/fetch.c:1156
#, c-format
msgid "rejected %s because shallow roots are not allowed to be updated"
msgstr ""
-#: builtin/fetch.c:1231 builtin/fetch.c:1379
+#: builtin/fetch.c:1259 builtin/fetch.c:1418
#, c-format
msgid "From %.*s\n"
msgstr ""
-#: builtin/fetch.c:1252
+#: builtin/fetch.c:1269
#, c-format
msgid ""
"some local refs could not be updated; try running\n"
" 'git remote prune %s' to remove any old, conflicting branches"
msgstr ""
-#: builtin/fetch.c:1349
+#: builtin/fetch.c:1377
#, c-format
msgid " (%s will become dangling)"
msgstr ""
-#: builtin/fetch.c:1350
+#: builtin/fetch.c:1378
#, c-format
msgid " (%s has become dangling)"
msgstr ""
-#: builtin/fetch.c:1382
+#: builtin/fetch.c:1421
msgid "[deleted]"
msgstr ""
-#: builtin/fetch.c:1383 builtin/remote.c:1128
+#: builtin/fetch.c:1422 builtin/remote.c:1153
msgid "(none)"
msgstr ""
-#: builtin/fetch.c:1405
+#: builtin/fetch.c:1446
#, c-format
msgid "refusing to fetch into branch '%s' checked out at '%s'"
msgstr ""
-#: builtin/fetch.c:1425
+#: builtin/fetch.c:1466
#, c-format
msgid "option \"%s\" value \"%s\" is not valid for %s"
msgstr ""
-#: builtin/fetch.c:1428
+#: builtin/fetch.c:1469
#, c-format
msgid "option \"%s\" is ignored for %s\n"
msgstr ""
-#: builtin/fetch.c:1455
+#: builtin/fetch.c:1496
#, c-format
msgid "the object %s does not exist"
msgstr ""
-#: builtin/fetch.c:1643
+#: builtin/fetch.c:1748
msgid "multiple branches detected, incompatible with --set-upstream"
msgstr ""
-#: builtin/fetch.c:1655
+#: builtin/fetch.c:1760
#, c-format
msgid ""
"could not set upstream of HEAD to '%s' from '%s' when it does not point to "
"any branch."
msgstr ""
-#: builtin/fetch.c:1668
+#: builtin/fetch.c:1773
msgid "not setting upstream for a remote remote-tracking branch"
msgstr ""
-#: builtin/fetch.c:1670
+#: builtin/fetch.c:1775
msgid "not setting upstream for a remote tag"
msgstr ""
-#: builtin/fetch.c:1672
+#: builtin/fetch.c:1777
msgid "unknown branch type"
msgstr ""
-#: builtin/fetch.c:1674
+#: builtin/fetch.c:1779
msgid ""
"no source branch found;\n"
"you need to specify exactly one branch with the --set-upstream option"
msgstr ""
-#: builtin/fetch.c:1804 builtin/fetch.c:1867
+#: builtin/fetch.c:1904 builtin/fetch.c:1967
#, c-format
msgid "Fetching %s\n"
msgstr ""
-#: builtin/fetch.c:1814 builtin/fetch.c:1869
+#: builtin/fetch.c:1914 builtin/fetch.c:1969
#, c-format
msgid "could not fetch %s"
msgstr ""
-#: builtin/fetch.c:1826
+#: builtin/fetch.c:1926
#, c-format
msgid "could not fetch '%s' (exit code: %d)\n"
msgstr ""
-#: builtin/fetch.c:1930
+#: builtin/fetch.c:2030
msgid ""
"no remote repository specified; please specify either a URL or a\n"
"remote name from which new revisions should be fetched"
msgstr ""
-#: builtin/fetch.c:1966
+#: builtin/fetch.c:2066
msgid "you need to specify a tag name"
msgstr ""
-#: builtin/fetch.c:2032
-msgid "--negotiate-only needs one or more --negotiate-tip=*"
+#: builtin/fetch.c:2156
+msgid "--negotiate-only needs one or more --negotiation-tip=*"
msgstr ""
-#: builtin/fetch.c:2036
+#: builtin/fetch.c:2160
msgid "negative depth in --deepen is not supported"
msgstr ""
-#: builtin/fetch.c:2045
+#: builtin/fetch.c:2169
msgid "--unshallow on a complete repository does not make sense"
msgstr ""
-#: builtin/fetch.c:2062
+#: builtin/fetch.c:2186
msgid "fetch --all does not take a repository argument"
msgstr ""
-#: builtin/fetch.c:2064
+#: builtin/fetch.c:2188
msgid "fetch --all does not make sense with refspecs"
msgstr ""
-#: builtin/fetch.c:2073
+#: builtin/fetch.c:2197
#, c-format
msgid "no such remote or remote group: %s"
msgstr ""
-#: builtin/fetch.c:2081
+#: builtin/fetch.c:2205
msgid "fetching a group and specifying refspecs does not make sense"
msgstr ""
-#: builtin/fetch.c:2097
+#: builtin/fetch.c:2221
msgid "must supply remote when using --negotiate-only"
msgstr ""
-#: builtin/fetch.c:2102
+#: builtin/fetch.c:2226
msgid "protocol does not support --negotiate-only, exiting"
msgstr ""
-#: builtin/fetch.c:2121
+#: builtin/fetch.c:2246
msgid ""
"--filter can only be used with the remote configured in extensions."
"partialclone"
msgstr ""
-#: builtin/fetch.c:2125
+#: builtin/fetch.c:2250
msgid "--atomic can only be used when fetching from one remote"
msgstr ""
-#: builtin/fetch.c:2129
+#: builtin/fetch.c:2254
msgid "--stdin can only be used when fetching from one remote"
msgstr ""
@@ -14471,7 +14806,7 @@ msgstr ""
msgid "show only <n> matched refs"
msgstr ""
-#: builtin/for-each-ref.c:42 builtin/tag.c:481
+#: builtin/for-each-ref.c:42 builtin/tag.c:482
msgid "respect format colors"
msgstr ""
@@ -14663,7 +14998,7 @@ msgstr ""
msgid "Checking %s link"
msgstr ""
-#: builtin/fsck.c:710 builtin/index-pack.c:859
+#: builtin/fsck.c:710 builtin/index-pack.c:862
#, c-format
msgid "invalid %s"
msgstr ""
@@ -14732,7 +15067,7 @@ msgstr ""
msgid "check only connectivity"
msgstr ""
-#: builtin/fsck.c:798 builtin/mktag.c:76
+#: builtin/fsck.c:798 builtin/mktag.c:75
msgid "enable more strict checking"
msgstr ""
@@ -14762,6 +15097,118 @@ msgstr ""
msgid "invalid parameter: expected sha1, got '%s'"
msgstr ""
+#: builtin/fsmonitor--daemon.c:13
+msgid "git fsmonitor--daemon start [<options>]"
+msgstr ""
+
+#: builtin/fsmonitor--daemon.c:14
+msgid "git fsmonitor--daemon run [<options>]"
+msgstr ""
+
+#: builtin/fsmonitor--daemon.c:15
+msgid "git fsmonitor--daemon stop"
+msgstr ""
+
+#: builtin/fsmonitor--daemon.c:16
+msgid "git fsmonitor--daemon status"
+msgstr ""
+
+#: builtin/fsmonitor--daemon.c:38 builtin/fsmonitor--daemon.c:47
+#, c-format
+msgid "value of '%s' out of range: %d"
+msgstr ""
+
+#: builtin/fsmonitor--daemon.c:57
+#, c-format
+msgid "value of '%s' not bool or int: %d"
+msgstr ""
+
+#: builtin/fsmonitor--daemon.c:99
+#, c-format
+msgid "fsmonitor-daemon is watching '%s'\n"
+msgstr ""
+
+#: builtin/fsmonitor--daemon.c:104
+#, c-format
+msgid "fsmonitor-daemon is not watching '%s'\n"
+msgstr ""
+
+#: builtin/fsmonitor--daemon.c:170
+#, c-format
+msgid "could not create fsmonitor cookie '%s'"
+msgstr ""
+
+#: builtin/fsmonitor--daemon.c:753
+#, c-format
+msgid "fsmonitor: cookie_result '%d' != SEEN"
+msgstr ""
+
+#: builtin/fsmonitor--daemon.c:1187
+#, c-format
+msgid "could not start IPC thread pool on '%s'"
+msgstr ""
+
+#: builtin/fsmonitor--daemon.c:1199
+msgid "could not start fsmonitor listener thread"
+msgstr ""
+
+#: builtin/fsmonitor--daemon.c:1297
+msgid "could not initialize listener thread"
+msgstr ""
+
+#: builtin/fsmonitor--daemon.c:1328 builtin/fsmonitor--daemon.c:1383
+#, c-format
+msgid "fsmonitor--daemon is already running '%s'"
+msgstr ""
+
+#: builtin/fsmonitor--daemon.c:1332
+#, c-format
+msgid "running fsmonitor-daemon in '%s'\n"
+msgstr ""
+
+#: builtin/fsmonitor--daemon.c:1387
+#, c-format
+msgid "starting fsmonitor-daemon in '%s'\n"
+msgstr ""
+
+#: builtin/fsmonitor--daemon.c:1413
+msgid "daemon failed to start"
+msgstr ""
+
+#: builtin/fsmonitor--daemon.c:1416
+msgid "daemon not online yet"
+msgstr ""
+
+#: builtin/fsmonitor--daemon.c:1419
+msgid "daemon terminated"
+msgstr ""
+
+#: builtin/fsmonitor--daemon.c:1429
+msgid "detach from console"
+msgstr ""
+
+#: builtin/fsmonitor--daemon.c:1432
+msgid "use <n> ipc worker threads"
+msgstr ""
+
+#: builtin/fsmonitor--daemon.c:1435
+msgid "max seconds to wait for background daemon startup"
+msgstr ""
+
+#: builtin/fsmonitor--daemon.c:1449
+#, c-format
+msgid "invalid 'ipc-threads' value (%d)"
+msgstr ""
+
+#: builtin/fsmonitor--daemon.c:1464
+#, c-format
+msgid "Unhandled subcommand '%s'"
+msgstr ""
+
+#: builtin/fsmonitor--daemon.c:1477
+msgid "fsmonitor--daemon not supported on this platform"
+msgstr ""
+
#: builtin/gc.c:39
msgid "git gc [<options>]"
msgstr ""
@@ -14997,8 +15444,8 @@ msgstr ""
msgid "failed to run systemctl"
msgstr ""
-#: builtin/gc.c:2210 builtin/gc.c:2215 builtin/worktree.c:62
-#: builtin/worktree.c:944
+#: builtin/gc.c:2210 builtin/gc.c:2215 builtin/worktree.c:63
+#: builtin/worktree.c:1024
#, c-format
msgid "failed to delete '%s'"
msgstr ""
@@ -15046,16 +15493,16 @@ msgstr ""
msgid "invalid subcommand: %s"
msgstr ""
-#: builtin/grep.c:30
+#: builtin/grep.c:32
msgid "git grep [<options>] [-e] <pattern> [<rev>...] [[--] <path>...]"
msgstr ""
-#: builtin/grep.c:239
+#: builtin/grep.c:241
#, c-format
msgid "grep: failed to create thread: %s"
msgstr ""
-#: builtin/grep.c:293
+#: builtin/grep.c:295
#, c-format
msgid "invalid number of threads specified (%d) for %s"
msgstr ""
@@ -15064,258 +15511,250 @@ msgstr ""
#. variable for tweaking threads, currently
#. grep.threads
#.
-#: builtin/grep.c:301 builtin/index-pack.c:1582 builtin/index-pack.c:1785
-#: builtin/pack-objects.c:3142
+#: builtin/grep.c:303 builtin/index-pack.c:1587 builtin/index-pack.c:1791
+#: builtin/pack-objects.c:3150
#, c-format
msgid "no threads support, ignoring %s"
msgstr ""
-#: builtin/grep.c:488 builtin/grep.c:617 builtin/grep.c:657
+#: builtin/grep.c:490 builtin/grep.c:619 builtin/grep.c:659
#, c-format
msgid "unable to read tree (%s)"
msgstr ""
-#: builtin/grep.c:672
+#: builtin/grep.c:674
#, c-format
msgid "unable to grep from object of type %s"
msgstr ""
-#: builtin/grep.c:752
+#: builtin/grep.c:754
#, c-format
msgid "switch `%c' expects a numerical value"
msgstr ""
-#: builtin/grep.c:851
+#: builtin/grep.c:852
msgid "search in index instead of in the work tree"
msgstr ""
-#: builtin/grep.c:853
+#: builtin/grep.c:854
msgid "find in contents not managed by git"
msgstr ""
-#: builtin/grep.c:855
+#: builtin/grep.c:856
msgid "search in both tracked and untracked files"
msgstr ""
-#: builtin/grep.c:857
+#: builtin/grep.c:858
msgid "ignore files specified via '.gitignore'"
msgstr ""
-#: builtin/grep.c:859
+#: builtin/grep.c:860
msgid "recursively search in each submodule"
msgstr ""
-#: builtin/grep.c:862
+#: builtin/grep.c:863
msgid "show non-matching lines"
msgstr ""
-#: builtin/grep.c:864
+#: builtin/grep.c:865
msgid "case insensitive matching"
msgstr ""
-#: builtin/grep.c:866
+#: builtin/grep.c:867
msgid "match patterns only at word boundaries"
msgstr ""
-#: builtin/grep.c:868
+#: builtin/grep.c:869
msgid "process binary files as text"
msgstr ""
-#: builtin/grep.c:870
+#: builtin/grep.c:871
msgid "don't match patterns in binary files"
msgstr ""
-#: builtin/grep.c:873
+#: builtin/grep.c:874
msgid "process binary files with textconv filters"
msgstr ""
-#: builtin/grep.c:875
+#: builtin/grep.c:876
msgid "search in subdirectories (default)"
msgstr ""
-#: builtin/grep.c:877
+#: builtin/grep.c:878
msgid "descend at most <depth> levels"
msgstr ""
-#: builtin/grep.c:881
+#: builtin/grep.c:882
msgid "use extended POSIX regular expressions"
msgstr ""
-#: builtin/grep.c:884
+#: builtin/grep.c:885
msgid "use basic POSIX regular expressions (default)"
msgstr ""
-#: builtin/grep.c:887
+#: builtin/grep.c:888
msgid "interpret patterns as fixed strings"
msgstr ""
-#: builtin/grep.c:890
+#: builtin/grep.c:891
msgid "use Perl-compatible regular expressions"
msgstr ""
-#: builtin/grep.c:893
+#: builtin/grep.c:894
msgid "show line numbers"
msgstr ""
-#: builtin/grep.c:894
+#: builtin/grep.c:895
msgid "show column number of first match"
msgstr ""
-#: builtin/grep.c:895
+#: builtin/grep.c:896
msgid "don't show filenames"
msgstr ""
-#: builtin/grep.c:896
+#: builtin/grep.c:897
msgid "show filenames"
msgstr ""
-#: builtin/grep.c:898
+#: builtin/grep.c:899
msgid "show filenames relative to top directory"
msgstr ""
-#: builtin/grep.c:900
+#: builtin/grep.c:901
msgid "show only filenames instead of matching lines"
msgstr ""
-#: builtin/grep.c:902
+#: builtin/grep.c:903
msgid "synonym for --files-with-matches"
msgstr ""
-#: builtin/grep.c:905
+#: builtin/grep.c:906
msgid "show only the names of files without match"
msgstr ""
-#: builtin/grep.c:907
+#: builtin/grep.c:908
msgid "print NUL after filenames"
msgstr ""
-#: builtin/grep.c:910
+#: builtin/grep.c:911
msgid "show only matching parts of a line"
msgstr ""
-#: builtin/grep.c:912
+#: builtin/grep.c:913
msgid "show the number of matches instead of matching lines"
msgstr ""
-#: builtin/grep.c:913
+#: builtin/grep.c:914
msgid "highlight matches"
msgstr ""
-#: builtin/grep.c:915
+#: builtin/grep.c:916
msgid "print empty line between matches from different files"
msgstr ""
-#: builtin/grep.c:917
+#: builtin/grep.c:918
msgid "show filename only once above matches from same file"
msgstr ""
-#: builtin/grep.c:920
+#: builtin/grep.c:921
msgid "show <n> context lines before and after matches"
msgstr ""
-#: builtin/grep.c:923
+#: builtin/grep.c:924
msgid "show <n> context lines before matches"
msgstr ""
-#: builtin/grep.c:925
+#: builtin/grep.c:926
msgid "show <n> context lines after matches"
msgstr ""
-#: builtin/grep.c:927
+#: builtin/grep.c:928
msgid "use <n> worker threads"
msgstr ""
-#: builtin/grep.c:928
+#: builtin/grep.c:929
msgid "shortcut for -C NUM"
msgstr ""
-#: builtin/grep.c:931
+#: builtin/grep.c:932
msgid "show a line with the function name before matches"
msgstr ""
-#: builtin/grep.c:933
+#: builtin/grep.c:934
msgid "show the surrounding function"
msgstr ""
-#: builtin/grep.c:936
+#: builtin/grep.c:937
msgid "read patterns from file"
msgstr ""
-#: builtin/grep.c:938
+#: builtin/grep.c:939
msgid "match <pattern>"
msgstr ""
-#: builtin/grep.c:940
+#: builtin/grep.c:941
msgid "combine patterns specified with -e"
msgstr ""
-#: builtin/grep.c:952
+#: builtin/grep.c:953
msgid "indicate hit with exit status without output"
msgstr ""
-#: builtin/grep.c:954
+#: builtin/grep.c:955
msgid "show only matches from files that match all patterns"
msgstr ""
-#: builtin/grep.c:957
+#: builtin/grep.c:958
msgid "pager"
msgstr ""
-#: builtin/grep.c:957
+#: builtin/grep.c:958
msgid "show matching files in the pager"
msgstr ""
-#: builtin/grep.c:961
+#: builtin/grep.c:962
msgid "allow calling of grep(1) (ignored by this build)"
msgstr ""
-#: builtin/grep.c:1027
+#: builtin/grep.c:1028
msgid "no pattern given"
msgstr ""
-#: builtin/grep.c:1063
+#: builtin/grep.c:1064
msgid "--no-index or --untracked cannot be used with revs"
msgstr ""
-#: builtin/grep.c:1071
+#: builtin/grep.c:1072
#, c-format
msgid "unable to resolve revision: %s"
msgstr ""
-#: builtin/grep.c:1101
+#: builtin/grep.c:1102
msgid "--untracked not supported with --recurse-submodules"
msgstr ""
-#: builtin/grep.c:1105
+#: builtin/grep.c:1106
msgid "invalid option combination, ignoring --threads"
msgstr ""
-#: builtin/grep.c:1108 builtin/pack-objects.c:4059
+#: builtin/grep.c:1109 builtin/pack-objects.c:4084
msgid "no threads support, ignoring --threads"
msgstr ""
-#: builtin/grep.c:1111 builtin/index-pack.c:1579 builtin/pack-objects.c:3139
+#: builtin/grep.c:1112 builtin/index-pack.c:1584 builtin/pack-objects.c:3147
#, c-format
msgid "invalid number of threads specified (%d)"
msgstr ""
-#: builtin/grep.c:1145
+#: builtin/grep.c:1146
msgid "--open-files-in-pager only works on the worktree"
msgstr ""
-#: builtin/grep.c:1171
-msgid "--cached or --untracked cannot be used with --no-index"
-msgstr ""
-
-#: builtin/grep.c:1174
-msgid "--untracked cannot be used with --cached"
-msgstr ""
-
-#: builtin/grep.c:1180
+#: builtin/grep.c:1179
msgid "--[no-]exclude-standard cannot be used for tracked contents"
msgstr ""
-#: builtin/grep.c:1188
+#: builtin/grep.c:1187
msgid "both --cached and trees are given"
msgstr ""
@@ -15325,154 +15764,162 @@ msgid ""
"[--] <file>..."
msgstr ""
-#: builtin/hash-object.c:84
-msgid "git hash-object --stdin-paths"
-msgstr ""
-
-#: builtin/hash-object.c:96
+#: builtin/hash-object.c:97
msgid "object type"
msgstr ""
-#: builtin/hash-object.c:97
+#: builtin/hash-object.c:98
msgid "write the object into the object database"
msgstr ""
-#: builtin/hash-object.c:99
+#: builtin/hash-object.c:100
msgid "read the object from stdin"
msgstr ""
-#: builtin/hash-object.c:101
+#: builtin/hash-object.c:102
msgid "store file as is without filters"
msgstr ""
-#: builtin/hash-object.c:102
+#: builtin/hash-object.c:103
msgid ""
"just hash any random garbage to create corrupt objects for debugging Git"
msgstr ""
-#: builtin/hash-object.c:103
+#: builtin/hash-object.c:104
msgid "process file as it were from this path"
msgstr ""
-#: builtin/help.c:55
+#: builtin/help.c:57
msgid "print all available commands"
msgstr ""
-#: builtin/help.c:57
+#: builtin/help.c:60
+msgid "show external commands in --all"
+msgstr ""
+
+#: builtin/help.c:61
+msgid "show aliases in --all"
+msgstr ""
+
+#: builtin/help.c:62
msgid "exclude guides"
msgstr ""
-#: builtin/help.c:58
+#: builtin/help.c:63
msgid "show man page"
msgstr ""
-#: builtin/help.c:59
+#: builtin/help.c:64
msgid "show manual in web browser"
msgstr ""
-#: builtin/help.c:61
+#: builtin/help.c:66
msgid "show info page"
msgstr ""
-#: builtin/help.c:63
+#: builtin/help.c:68
msgid "print command description"
msgstr ""
-#: builtin/help.c:65
+#: builtin/help.c:70
msgid "print list of useful guides"
msgstr ""
-#: builtin/help.c:67
+#: builtin/help.c:72
msgid "print all configuration variable names"
msgstr ""
-#: builtin/help.c:78
-msgid ""
-"git help [-a|--all] [--[no-]verbose]]\n"
-" [[-i|--info] [-m|--man] [-w|--web]] [<command>]"
-msgstr ""
-
-#: builtin/help.c:80
-msgid "git help [-g|--guides]"
+#: builtin/help.c:84
+msgid "git help [[-i|--info] [-m|--man] [-w|--web]] [<command>]"
msgstr ""
-#: builtin/help.c:81
-msgid "git help [-c|--config]"
-msgstr ""
-
-#: builtin/help.c:196
+#: builtin/help.c:201
#, c-format
msgid "unrecognized help format '%s'"
msgstr ""
-#: builtin/help.c:222
+#: builtin/help.c:227
msgid "Failed to start emacsclient."
msgstr ""
-#: builtin/help.c:235
+#: builtin/help.c:240
msgid "Failed to parse emacsclient version."
msgstr ""
-#: builtin/help.c:243
+#: builtin/help.c:248
#, c-format
msgid "emacsclient version '%d' too old (< 22)."
msgstr ""
-#: builtin/help.c:261 builtin/help.c:283 builtin/help.c:293 builtin/help.c:301
+#: builtin/help.c:266 builtin/help.c:288 builtin/help.c:298 builtin/help.c:306
#, c-format
msgid "failed to exec '%s'"
msgstr ""
-#: builtin/help.c:339
+#: builtin/help.c:344
#, c-format
msgid ""
"'%s': path for unsupported man viewer.\n"
"Please consider using 'man.<tool>.cmd' instead."
msgstr ""
-#: builtin/help.c:351
+#: builtin/help.c:356
#, c-format
msgid ""
"'%s': cmd for supported man viewer.\n"
"Please consider using 'man.<tool>.path' instead."
msgstr ""
-#: builtin/help.c:466
+#: builtin/help.c:471
#, c-format
msgid "'%s': unknown man viewer."
msgstr ""
-#: builtin/help.c:482
+#: builtin/help.c:487
msgid "no man viewer handled the request"
msgstr ""
-#: builtin/help.c:489
+#: builtin/help.c:494
msgid "no info viewer handled the request"
msgstr ""
-#: builtin/help.c:550 builtin/help.c:561 git.c:348
+#: builtin/help.c:555 builtin/help.c:566 git.c:348
#, c-format
msgid "'%s' is aliased to '%s'"
msgstr ""
-#: builtin/help.c:564 git.c:380
+#: builtin/help.c:569 git.c:380
#, c-format
msgid "bad alias.%s string: %s"
msgstr ""
-#: builtin/help.c:580
-msgid "this option doesn't take any other arguments"
+#: builtin/help.c:611
+#, c-format
+msgid "the '%s' option doesn't take any non-option arguments"
msgstr ""
-#: builtin/help.c:601 builtin/help.c:628
+#: builtin/help.c:631
+msgid ""
+"the '--no-[external-commands|aliases]' options can only be used with '--all'"
+msgstr ""
+
+#: builtin/help.c:643 builtin/help.c:671
#, c-format
msgid "usage: %s%s"
msgstr ""
-#: builtin/help.c:623
+#: builtin/help.c:666
msgid "'git help config' for more information"
msgstr ""
+#: builtin/hook.c:10
+msgid "git hook run [--ignore-missing] <hook-name> [-- <hook-args>]"
+msgstr ""
+
+#: builtin/hook.c:30
+msgid "silently ignore missing requested <hook-name>"
+msgstr ""
+
#: builtin/index-pack.c:221
#, c-format
msgid "object type mismatch at %s"
@@ -15507,244 +15954,245 @@ msgstr ""
msgid "used more bytes than were available"
msgstr ""
-#: builtin/index-pack.c:324 builtin/pack-objects.c:756
+#: builtin/index-pack.c:324 builtin/pack-objects.c:754
msgid "pack too large for current definition of off_t"
msgstr ""
-#: builtin/index-pack.c:327 builtin/unpack-objects.c:95
-msgid "pack exceeds maximum allowed size"
+#: builtin/index-pack.c:329
+#, c-format
+msgid "pack exceeds maximum allowed size (%s)"
msgstr ""
-#: builtin/index-pack.c:358
+#: builtin/index-pack.c:362
msgid "pack signature mismatch"
msgstr ""
-#: builtin/index-pack.c:360
+#: builtin/index-pack.c:364
#, c-format
msgid "pack version %<PRIu32> unsupported"
msgstr ""
-#: builtin/index-pack.c:376
+#: builtin/index-pack.c:380
#, c-format
msgid "pack has bad object at offset %<PRIuMAX>: %s"
msgstr ""
-#: builtin/index-pack.c:482
+#: builtin/index-pack.c:485
#, c-format
msgid "inflate returned %d"
msgstr ""
-#: builtin/index-pack.c:531
+#: builtin/index-pack.c:534
msgid "offset value overflow for delta base object"
msgstr ""
-#: builtin/index-pack.c:539
+#: builtin/index-pack.c:542
msgid "delta base offset is out of bound"
msgstr ""
-#: builtin/index-pack.c:547
+#: builtin/index-pack.c:550
#, c-format
msgid "unknown object type %d"
msgstr ""
-#: builtin/index-pack.c:578
+#: builtin/index-pack.c:581
msgid "cannot pread pack file"
msgstr ""
-#: builtin/index-pack.c:580
+#: builtin/index-pack.c:583
#, c-format
msgid "premature end of pack file, %<PRIuMAX> byte missing"
msgid_plural "premature end of pack file, %<PRIuMAX> bytes missing"
msgstr[0] ""
msgstr[1] ""
-#: builtin/index-pack.c:606
+#: builtin/index-pack.c:609
msgid "serious inflate inconsistency"
msgstr ""
-#: builtin/index-pack.c:751 builtin/index-pack.c:757 builtin/index-pack.c:781
-#: builtin/index-pack.c:820 builtin/index-pack.c:829
+#: builtin/index-pack.c:754 builtin/index-pack.c:760 builtin/index-pack.c:784
+#: builtin/index-pack.c:823 builtin/index-pack.c:832
#, c-format
msgid "SHA1 COLLISION FOUND WITH %s !"
msgstr ""
-#: builtin/index-pack.c:754 builtin/pack-objects.c:292
-#: builtin/pack-objects.c:352 builtin/pack-objects.c:458
+#: builtin/index-pack.c:757 builtin/pack-objects.c:290
+#: builtin/pack-objects.c:350 builtin/pack-objects.c:456
#, c-format
msgid "unable to read %s"
msgstr ""
-#: builtin/index-pack.c:818
+#: builtin/index-pack.c:821
#, c-format
msgid "cannot read existing object info %s"
msgstr ""
-#: builtin/index-pack.c:826
+#: builtin/index-pack.c:829
#, c-format
msgid "cannot read existing object %s"
msgstr ""
-#: builtin/index-pack.c:840
+#: builtin/index-pack.c:843
#, c-format
msgid "invalid blob object %s"
msgstr ""
-#: builtin/index-pack.c:843 builtin/index-pack.c:862
+#: builtin/index-pack.c:846 builtin/index-pack.c:865
msgid "fsck error in packed object"
msgstr ""
-#: builtin/index-pack.c:864
+#: builtin/index-pack.c:867
#, c-format
msgid "Not all child objects of %s are reachable"
msgstr ""
-#: builtin/index-pack.c:925 builtin/index-pack.c:972
+#: builtin/index-pack.c:928 builtin/index-pack.c:975
msgid "failed to apply delta"
msgstr ""
-#: builtin/index-pack.c:1156
+#: builtin/index-pack.c:1161
msgid "Receiving objects"
msgstr ""
-#: builtin/index-pack.c:1156
+#: builtin/index-pack.c:1161
msgid "Indexing objects"
msgstr ""
-#: builtin/index-pack.c:1190
+#: builtin/index-pack.c:1195
msgid "pack is corrupted (SHA1 mismatch)"
msgstr ""
-#: builtin/index-pack.c:1195
+#: builtin/index-pack.c:1200
msgid "cannot fstat packfile"
msgstr ""
-#: builtin/index-pack.c:1198
+#: builtin/index-pack.c:1203
msgid "pack has junk at the end"
msgstr ""
-#: builtin/index-pack.c:1210
+#: builtin/index-pack.c:1215
msgid "confusion beyond insanity in parse_pack_objects()"
msgstr ""
-#: builtin/index-pack.c:1233
+#: builtin/index-pack.c:1238
msgid "Resolving deltas"
msgstr ""
-#: builtin/index-pack.c:1244 builtin/pack-objects.c:2905
+#: builtin/index-pack.c:1249 builtin/pack-objects.c:2913
#, c-format
msgid "unable to create thread: %s"
msgstr ""
-#: builtin/index-pack.c:1277
+#: builtin/index-pack.c:1282
msgid "confusion beyond insanity"
msgstr ""
-#: builtin/index-pack.c:1283
+#: builtin/index-pack.c:1288
#, c-format
msgid "completed with %d local object"
msgid_plural "completed with %d local objects"
msgstr[0] ""
msgstr[1] ""
-#: builtin/index-pack.c:1295
+#: builtin/index-pack.c:1300
#, c-format
msgid "Unexpected tail checksum for %s (disk corruption?)"
msgstr ""
-#: builtin/index-pack.c:1299
+#: builtin/index-pack.c:1304
#, c-format
msgid "pack has %d unresolved delta"
msgid_plural "pack has %d unresolved deltas"
msgstr[0] ""
msgstr[1] ""
-#: builtin/index-pack.c:1323
+#: builtin/index-pack.c:1328
#, c-format
msgid "unable to deflate appended object (%d)"
msgstr ""
-#: builtin/index-pack.c:1419
+#: builtin/index-pack.c:1423
#, c-format
msgid "local object %s is corrupt"
msgstr ""
-#: builtin/index-pack.c:1440
+#: builtin/index-pack.c:1445
#, c-format
msgid "packfile name '%s' does not end with '.%s'"
msgstr ""
-#: builtin/index-pack.c:1464
+#: builtin/index-pack.c:1469
#, c-format
msgid "cannot write %s file '%s'"
msgstr ""
-#: builtin/index-pack.c:1472
+#: builtin/index-pack.c:1477
#, c-format
msgid "cannot close written %s file '%s'"
msgstr ""
-#: builtin/index-pack.c:1489
+#: builtin/index-pack.c:1494
#, c-format
msgid "unable to rename temporary '*.%s' file to '%s'"
msgstr ""
-#: builtin/index-pack.c:1514
+#: builtin/index-pack.c:1519
msgid "error while closing pack file"
msgstr ""
-#: builtin/index-pack.c:1573 builtin/pack-objects.c:3150
+#: builtin/index-pack.c:1578 builtin/pack-objects.c:3158
#, c-format
msgid "bad pack.indexversion=%<PRIu32>"
msgstr ""
-#: builtin/index-pack.c:1643
+#: builtin/index-pack.c:1648
#, c-format
msgid "Cannot open existing pack file '%s'"
msgstr ""
-#: builtin/index-pack.c:1645
+#: builtin/index-pack.c:1650
#, c-format
msgid "Cannot open existing pack idx file for '%s'"
msgstr ""
-#: builtin/index-pack.c:1693
+#: builtin/index-pack.c:1698
#, c-format
msgid "non delta: %d object"
msgid_plural "non delta: %d objects"
msgstr[0] ""
msgstr[1] ""
-#: builtin/index-pack.c:1700
+#: builtin/index-pack.c:1705
#, c-format
msgid "chain length = %d: %lu object"
msgid_plural "chain length = %d: %lu objects"
msgstr[0] ""
msgstr[1] ""
-#: builtin/index-pack.c:1742
+#: builtin/index-pack.c:1748
msgid "Cannot come back to cwd"
msgstr ""
-#: builtin/index-pack.c:1796 builtin/index-pack.c:1799
-#: builtin/index-pack.c:1819 builtin/index-pack.c:1823
+#: builtin/index-pack.c:1802 builtin/index-pack.c:1805
+#: builtin/index-pack.c:1825 builtin/index-pack.c:1829
#, c-format
msgid "bad %s"
msgstr ""
-#: builtin/index-pack.c:1829 builtin/init-db.c:379 builtin/init-db.c:614
+#: builtin/index-pack.c:1835 builtin/init-db.c:379 builtin/init-db.c:614
#, c-format
msgid "unknown hash algorithm '%s'"
msgstr ""
-#: builtin/index-pack.c:1850
+#: builtin/index-pack.c:1856
msgid "--stdin requires a git repository"
msgstr ""
-#: builtin/index-pack.c:1867
+#: builtin/index-pack.c:1873
msgid "--verify with no packfile name given"
msgstr ""
-#: builtin/index-pack.c:1933 builtin/unpack-objects.c:584
+#: builtin/index-pack.c:1939 builtin/unpack-objects.c:584
msgid "fsck error in pack objects"
msgstr ""
@@ -15947,400 +16395,408 @@ msgstr ""
msgid "no input file given for in-place editing"
msgstr ""
-#: builtin/log.c:59
+#: builtin/log.c:60
msgid "git log [<options>] [<revision-range>] [[--] <path>...]"
msgstr ""
-#: builtin/log.c:60
+#: builtin/log.c:61
msgid "git show [<options>] <object>..."
msgstr ""
-#: builtin/log.c:113
+#: builtin/log.c:114
#, c-format
msgid "invalid --decorate option: %s"
msgstr ""
-#: builtin/log.c:180
+#: builtin/log.c:181
msgid "show source"
msgstr ""
-#: builtin/log.c:181
+#: builtin/log.c:182
msgid "use mail map file"
msgstr ""
-#: builtin/log.c:184
+#: builtin/log.c:185
msgid "only decorate refs that match <pattern>"
msgstr ""
-#: builtin/log.c:186
+#: builtin/log.c:187
msgid "do not decorate refs that match <pattern>"
msgstr ""
-#: builtin/log.c:187
+#: builtin/log.c:188
msgid "decorate options"
msgstr ""
-#: builtin/log.c:190
+#: builtin/log.c:191
msgid ""
"trace the evolution of line range <start>,<end> or function :<funcname> in "
"<file>"
msgstr ""
-#: builtin/log.c:213
+#: builtin/log.c:214
msgid "-L<range>:<file> cannot be used with pathspec"
msgstr ""
-#: builtin/log.c:321
+#: builtin/log.c:322
#, c-format
msgid "Final output: %d %s\n"
msgstr ""
-#: builtin/log.c:586
+#: builtin/log.c:429
+msgid "unable to create temporary object directory"
+msgstr ""
+
+#: builtin/log.c:599
#, c-format
msgid "git show %s: bad file"
msgstr ""
-#: builtin/log.c:601 builtin/log.c:691
+#: builtin/log.c:614 builtin/log.c:706
#, c-format
msgid "could not read object %s"
msgstr ""
-#: builtin/log.c:716
+#: builtin/log.c:731
#, c-format
msgid "unknown type: %d"
msgstr ""
-#: builtin/log.c:861
+#: builtin/log.c:880
#, c-format
msgid "%s: invalid cover from description mode"
msgstr ""
-#: builtin/log.c:868
+#: builtin/log.c:887
msgid "format.headers without value"
msgstr ""
-#: builtin/log.c:997
+#: builtin/log.c:1016
#, c-format
msgid "cannot open patch file %s"
msgstr ""
-#: builtin/log.c:1014
+#: builtin/log.c:1033
msgid "need exactly one range"
msgstr ""
-#: builtin/log.c:1024
+#: builtin/log.c:1043
msgid "not a range"
msgstr ""
-#: builtin/log.c:1188
+#: builtin/log.c:1207
msgid "cover letter needs email format"
msgstr ""
-#: builtin/log.c:1194
+#: builtin/log.c:1213
msgid "failed to create cover-letter file"
msgstr ""
-#: builtin/log.c:1281
+#: builtin/log.c:1300
#, c-format
msgid "insane in-reply-to: %s"
msgstr ""
-#: builtin/log.c:1308
+#: builtin/log.c:1327
msgid "git format-patch [<options>] [<since> | <revision-range>]"
msgstr ""
-#: builtin/log.c:1366
+#: builtin/log.c:1385
msgid "two output directories?"
msgstr ""
-#: builtin/log.c:1517 builtin/log.c:2344 builtin/log.c:2346 builtin/log.c:2358
+#: builtin/log.c:1536 builtin/log.c:2369 builtin/log.c:2371 builtin/log.c:2383
#, c-format
msgid "unknown commit %s"
msgstr ""
-#: builtin/log.c:1528 builtin/replace.c:58 builtin/replace.c:207
+#: builtin/log.c:1547 builtin/replace.c:58 builtin/replace.c:207
#: builtin/replace.c:210
#, c-format
msgid "failed to resolve '%s' as a valid ref"
msgstr ""
-#: builtin/log.c:1537
+#: builtin/log.c:1556
msgid "could not find exact merge base"
msgstr ""
-#: builtin/log.c:1547
+#: builtin/log.c:1566
msgid ""
"failed to get upstream, if you want to record base commit automatically,\n"
"please use git branch --set-upstream-to to track a remote branch.\n"
"Or you could specify base commit by --base=<base-commit-id> manually"
msgstr ""
-#: builtin/log.c:1570
+#: builtin/log.c:1589
msgid "failed to find exact merge base"
msgstr ""
-#: builtin/log.c:1587
+#: builtin/log.c:1606
msgid "base commit should be the ancestor of revision list"
msgstr ""
-#: builtin/log.c:1597
+#: builtin/log.c:1616
msgid "base commit shouldn't be in revision list"
msgstr ""
-#: builtin/log.c:1655
+#: builtin/log.c:1674
msgid "cannot get patch id"
msgstr ""
-#: builtin/log.c:1718
+#: builtin/log.c:1737
msgid "failed to infer range-diff origin of current series"
msgstr ""
-#: builtin/log.c:1720
+#: builtin/log.c:1739
#, c-format
msgid "using '%s' as range-diff origin of current series"
msgstr ""
-#: builtin/log.c:1764
+#: builtin/log.c:1783
msgid "use [PATCH n/m] even with a single patch"
msgstr ""
-#: builtin/log.c:1767
+#: builtin/log.c:1786
msgid "use [PATCH] even with multiple patches"
msgstr ""
-#: builtin/log.c:1771
+#: builtin/log.c:1790
msgid "print patches to standard out"
msgstr ""
-#: builtin/log.c:1773
+#: builtin/log.c:1792
msgid "generate a cover letter"
msgstr ""
-#: builtin/log.c:1775
+#: builtin/log.c:1794
msgid "use simple number sequence for output file names"
msgstr ""
-#: builtin/log.c:1776
+#: builtin/log.c:1795
msgid "sfx"
msgstr ""
-#: builtin/log.c:1777
+#: builtin/log.c:1796
msgid "use <sfx> instead of '.patch'"
msgstr ""
-#: builtin/log.c:1779
+#: builtin/log.c:1798
msgid "start numbering patches at <n> instead of 1"
msgstr ""
-#: builtin/log.c:1780
+#: builtin/log.c:1799
msgid "reroll-count"
msgstr ""
-#: builtin/log.c:1781
+#: builtin/log.c:1800
msgid "mark the series as Nth re-roll"
msgstr ""
-#: builtin/log.c:1783
+#: builtin/log.c:1802
msgid "max length of output filename"
msgstr ""
-#: builtin/log.c:1785
+#: builtin/log.c:1804
msgid "use [RFC PATCH] instead of [PATCH]"
msgstr ""
-#: builtin/log.c:1788
+#: builtin/log.c:1807
msgid "cover-from-description-mode"
msgstr ""
-#: builtin/log.c:1789
+#: builtin/log.c:1808
msgid "generate parts of a cover letter based on a branch's description"
msgstr ""
-#: builtin/log.c:1791
+#: builtin/log.c:1810
msgid "use [<prefix>] instead of [PATCH]"
msgstr ""
-#: builtin/log.c:1794
+#: builtin/log.c:1813
msgid "store resulting files in <dir>"
msgstr ""
-#: builtin/log.c:1797
+#: builtin/log.c:1816
msgid "don't strip/add [PATCH]"
msgstr ""
-#: builtin/log.c:1800
+#: builtin/log.c:1819
msgid "don't output binary diffs"
msgstr ""
-#: builtin/log.c:1802
+#: builtin/log.c:1821
msgid "output all-zero hash in From header"
msgstr ""
-#: builtin/log.c:1804
+#: builtin/log.c:1823
msgid "don't include a patch matching a commit upstream"
msgstr ""
-#: builtin/log.c:1806
+#: builtin/log.c:1825
msgid "show patch format instead of default (patch + stat)"
msgstr ""
-#: builtin/log.c:1808
+#: builtin/log.c:1827
msgid "Messaging"
msgstr ""
-#: builtin/log.c:1809
+#: builtin/log.c:1828
msgid "header"
msgstr ""
-#: builtin/log.c:1810
+#: builtin/log.c:1829
msgid "add email header"
msgstr ""
-#: builtin/log.c:1811 builtin/log.c:1812
+#: builtin/log.c:1830 builtin/log.c:1831
msgid "email"
msgstr ""
-#: builtin/log.c:1811
+#: builtin/log.c:1830
msgid "add To: header"
msgstr ""
-#: builtin/log.c:1812
+#: builtin/log.c:1831
msgid "add Cc: header"
msgstr ""
-#: builtin/log.c:1813
+#: builtin/log.c:1832
msgid "ident"
msgstr ""
-#: builtin/log.c:1814
+#: builtin/log.c:1833
msgid "set From address to <ident> (or committer ident if absent)"
msgstr ""
-#: builtin/log.c:1816
+#: builtin/log.c:1835
msgid "message-id"
msgstr ""
-#: builtin/log.c:1817
+#: builtin/log.c:1836
msgid "make first mail a reply to <message-id>"
msgstr ""
-#: builtin/log.c:1818 builtin/log.c:1821
+#: builtin/log.c:1837 builtin/log.c:1840
msgid "boundary"
msgstr ""
-#: builtin/log.c:1819
+#: builtin/log.c:1838
msgid "attach the patch"
msgstr ""
-#: builtin/log.c:1822
+#: builtin/log.c:1841
msgid "inline the patch"
msgstr ""
-#: builtin/log.c:1826
+#: builtin/log.c:1845
msgid "enable message threading, styles: shallow, deep"
msgstr ""
-#: builtin/log.c:1828
+#: builtin/log.c:1847
msgid "signature"
msgstr ""
-#: builtin/log.c:1829
+#: builtin/log.c:1848
msgid "add a signature"
msgstr ""
-#: builtin/log.c:1830
+#: builtin/log.c:1849
msgid "base-commit"
msgstr ""
-#: builtin/log.c:1831
+#: builtin/log.c:1850
msgid "add prerequisite tree info to the patch series"
msgstr ""
-#: builtin/log.c:1834
+#: builtin/log.c:1853
msgid "add a signature from a file"
msgstr ""
-#: builtin/log.c:1835
+#: builtin/log.c:1854
msgid "don't print the patch filenames"
msgstr ""
-#: builtin/log.c:1837
+#: builtin/log.c:1856
msgid "show progress while generating patches"
msgstr ""
-#: builtin/log.c:1839
+#: builtin/log.c:1858
msgid "show changes against <rev> in cover letter or single patch"
msgstr ""
-#: builtin/log.c:1842
+#: builtin/log.c:1861
msgid "show changes against <refspec> in cover letter or single patch"
msgstr ""
-#: builtin/log.c:1844 builtin/range-diff.c:28
+#: builtin/log.c:1863 builtin/range-diff.c:28
msgid "percentage by which creation is weighted"
msgstr ""
-#: builtin/log.c:1931
+#: builtin/log.c:1953
#, c-format
msgid "invalid ident line: %s"
msgstr ""
-#: builtin/log.c:1956
+#: builtin/log.c:1978
msgid "--name-only does not make sense"
msgstr ""
-#: builtin/log.c:1958
+#: builtin/log.c:1980
msgid "--name-status does not make sense"
msgstr ""
-#: builtin/log.c:1960
+#: builtin/log.c:1982
msgid "--check does not make sense"
msgstr ""
-#: builtin/log.c:2104
+#: builtin/log.c:1984
+msgid "--remerge-diff does not make sense"
+msgstr ""
+
+#: builtin/log.c:2129
msgid "--interdiff requires --cover-letter or single patch"
msgstr ""
-#: builtin/log.c:2108
+#: builtin/log.c:2133
msgid "Interdiff:"
msgstr ""
-#: builtin/log.c:2109
+#: builtin/log.c:2134
#, c-format
msgid "Interdiff against v%d:"
msgstr ""
-#: builtin/log.c:2119
+#: builtin/log.c:2144
msgid "--range-diff requires --cover-letter or single patch"
msgstr ""
-#: builtin/log.c:2127
+#: builtin/log.c:2152
msgid "Range-diff:"
msgstr ""
-#: builtin/log.c:2128
+#: builtin/log.c:2153
#, c-format
msgid "Range-diff against v%d:"
msgstr ""
-#: builtin/log.c:2139
+#: builtin/log.c:2164
#, c-format
msgid "unable to read signature file '%s'"
msgstr ""
-#: builtin/log.c:2175
+#: builtin/log.c:2200
msgid "Generating patches"
msgstr ""
-#: builtin/log.c:2219
+#: builtin/log.c:2244
msgid "failed to create output files"
msgstr ""
-#: builtin/log.c:2279
+#: builtin/log.c:2304
msgid "git cherry [-v] [<upstream> [<head> [<limit>]]]"
msgstr ""
-#: builtin/log.c:2333
+#: builtin/log.c:2358
#, c-format
msgid ""
"Could not find a tracked remote branch, please specify <upstream> manually.\n"
@@ -16434,10 +16890,6 @@ msgstr ""
msgid "make the output relative to the project top directory"
msgstr ""
-#: builtin/ls-files.c:667
-msgid "recurse through submodules"
-msgstr ""
-
#: builtin/ls-files.c:669
msgid "if any <file> is not in the index, treat this as an error"
msgstr ""
@@ -16473,7 +16925,7 @@ msgstr ""
msgid "do not print remote URL"
msgstr ""
-#: builtin/ls-remote.c:61 builtin/ls-remote.c:63 builtin/rebase.c:1103
+#: builtin/ls-remote.c:61 builtin/ls-remote.c:63 builtin/rebase.c:1131
msgid "exec"
msgstr ""
@@ -16505,42 +16957,70 @@ msgstr ""
msgid "show underlying ref in addition to the object pointed by it"
msgstr ""
-#: builtin/ls-tree.c:30
+#: builtin/ls-tree.c:36
msgid "git ls-tree [<options>] <tree-ish> [<path>...]"
msgstr ""
-#: builtin/ls-tree.c:128
+#: builtin/ls-tree.c:54
+#, c-format
+msgid "could not get object info about '%s'"
+msgstr ""
+
+#: builtin/ls-tree.c:79
+#, c-format
+msgid "bad ls-tree format: element '%s' does not start with '('"
+msgstr ""
+
+#: builtin/ls-tree.c:83
+#, c-format
+msgid "bad ls-tree format: element '%s' does not end in ')'"
+msgstr ""
+
+#: builtin/ls-tree.c:109
+#, c-format
+msgid "bad ls-tree format: %%%.*s"
+msgstr ""
+
+#: builtin/ls-tree.c:336
msgid "only show trees"
msgstr ""
-#: builtin/ls-tree.c:130
+#: builtin/ls-tree.c:338
msgid "recurse into subtrees"
msgstr ""
-#: builtin/ls-tree.c:132
+#: builtin/ls-tree.c:340
msgid "show trees when recursing"
msgstr ""
-#: builtin/ls-tree.c:135
+#: builtin/ls-tree.c:343
msgid "terminate entries with NUL byte"
msgstr ""
-#: builtin/ls-tree.c:136
+#: builtin/ls-tree.c:344
msgid "include object size"
msgstr ""
-#: builtin/ls-tree.c:138 builtin/ls-tree.c:140
+#: builtin/ls-tree.c:346 builtin/ls-tree.c:348
msgid "list only filenames"
msgstr ""
-#: builtin/ls-tree.c:143
+#: builtin/ls-tree.c:350
+msgid "list only objects"
+msgstr ""
+
+#: builtin/ls-tree.c:353
msgid "use full path names"
msgstr ""
-#: builtin/ls-tree.c:145
+#: builtin/ls-tree.c:355
msgid "list entire tree; not just current directory (implies --full-name)"
msgstr ""
+#: builtin/ls-tree.c:391
+msgid "--format can't be combined with other format-altering options"
+msgstr ""
+
#. TRANSLATORS: keep <> in "<" mail ">" info.
#: builtin/mailinfo.c:14
msgid "git mailinfo [<options>] <msg> <patch> < mail >info"
@@ -16590,7 +17070,11 @@ msgstr ""
msgid "use headers in message's body"
msgstr ""
-#: builtin/mailsplit.c:239
+#: builtin/mailsplit.c:227
+msgid "reading patches from stdin/tty..."
+msgstr ""
+
+#: builtin/mailsplit.c:242
#, c-format
msgid "empty mbox: '%s'"
msgstr ""
@@ -16615,23 +17099,23 @@ msgstr ""
msgid "git merge-base --fork-point <ref> [<commit>]"
msgstr ""
-#: builtin/merge-base.c:143
+#: builtin/merge-base.c:144
msgid "output all common ancestors"
msgstr ""
-#: builtin/merge-base.c:145
+#: builtin/merge-base.c:146
msgid "find ancestors for a single n-way merge"
msgstr ""
-#: builtin/merge-base.c:147
+#: builtin/merge-base.c:148
msgid "list revs not reachable from others"
msgstr ""
-#: builtin/merge-base.c:149
+#: builtin/merge-base.c:150
msgid "is the first one ancestor of the other?"
msgstr ""
-#: builtin/merge-base.c:151
+#: builtin/merge-base.c:152
msgid "find where <commit> forked from reflog of <ref>"
msgstr ""
@@ -16777,7 +17261,7 @@ msgid "verify that the named commit has a valid GPG signature"
msgstr ""
#: builtin/merge.c:280 builtin/notes.c:785 builtin/pull.c:172
-#: builtin/rebase.c:1117 builtin/revert.c:114
+#: builtin/rebase.c:1145 builtin/revert.c:114
msgid "strategy"
msgstr ""
@@ -16904,161 +17388,157 @@ msgid ""
"the commit.\n"
msgstr ""
-#: builtin/merge.c:894
+#: builtin/merge.c:900
msgid "Empty commit message."
msgstr ""
-#: builtin/merge.c:909
+#: builtin/merge.c:915
#, c-format
msgid "Wonderful.\n"
msgstr ""
-#: builtin/merge.c:970
+#: builtin/merge.c:976
#, c-format
msgid "Automatic merge failed; fix conflicts and then commit the result.\n"
msgstr ""
-#: builtin/merge.c:1009
+#: builtin/merge.c:1015
msgid "No current branch."
msgstr ""
-#: builtin/merge.c:1011
+#: builtin/merge.c:1017
msgid "No remote for the current branch."
msgstr ""
-#: builtin/merge.c:1013
+#: builtin/merge.c:1019
msgid "No default upstream defined for the current branch."
msgstr ""
-#: builtin/merge.c:1018
+#: builtin/merge.c:1024
#, c-format
msgid "No remote-tracking branch for %s from %s"
msgstr ""
-#: builtin/merge.c:1075
+#: builtin/merge.c:1081
#, c-format
msgid "Bad value '%s' in environment '%s'"
msgstr ""
-#: builtin/merge.c:1177
+#: builtin/merge.c:1183
#, c-format
msgid "not something we can merge in %s: %s"
msgstr ""
-#: builtin/merge.c:1211
+#: builtin/merge.c:1217
msgid "not something we can merge"
msgstr ""
-#: builtin/merge.c:1324
+#: builtin/merge.c:1330
msgid "--abort expects no arguments"
msgstr ""
-#: builtin/merge.c:1328
+#: builtin/merge.c:1334
msgid "There is no merge to abort (MERGE_HEAD missing)."
msgstr ""
-#: builtin/merge.c:1346
+#: builtin/merge.c:1352
msgid "--quit expects no arguments"
msgstr ""
-#: builtin/merge.c:1359
+#: builtin/merge.c:1365
msgid "--continue expects no arguments"
msgstr ""
-#: builtin/merge.c:1363
+#: builtin/merge.c:1369
msgid "There is no merge in progress (MERGE_HEAD missing)."
msgstr ""
-#: builtin/merge.c:1379
+#: builtin/merge.c:1385
msgid ""
"You have not concluded your merge (MERGE_HEAD exists).\n"
"Please, commit your changes before you merge."
msgstr ""
-#: builtin/merge.c:1386
+#: builtin/merge.c:1392
msgid ""
"You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists).\n"
"Please, commit your changes before you merge."
msgstr ""
-#: builtin/merge.c:1389
+#: builtin/merge.c:1395
msgid "You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists)."
msgstr ""
-#: builtin/merge.c:1421
+#: builtin/merge.c:1427
msgid "No commit specified and merge.defaultToUpstream not set."
msgstr ""
-#: builtin/merge.c:1438
+#: builtin/merge.c:1444
msgid "Squash commit into empty head not supported yet"
msgstr ""
-#: builtin/merge.c:1440
+#: builtin/merge.c:1446
msgid "Non-fast-forward commit does not make sense into an empty head"
msgstr ""
-#: builtin/merge.c:1445
+#: builtin/merge.c:1451
#, c-format
msgid "%s - not something we can merge"
msgstr ""
-#: builtin/merge.c:1447
+#: builtin/merge.c:1453
msgid "Can merge only exactly one commit into empty head"
msgstr ""
-#: builtin/merge.c:1534
+#: builtin/merge.c:1540
msgid "refusing to merge unrelated histories"
msgstr ""
-#: builtin/merge.c:1553
+#: builtin/merge.c:1559
#, c-format
msgid "Updating %s..%s\n"
msgstr ""
-#: builtin/merge.c:1601
+#: builtin/merge.c:1606
#, c-format
msgid "Trying really trivial in-index merge...\n"
msgstr ""
-#: builtin/merge.c:1608
+#: builtin/merge.c:1613
#, c-format
msgid "Nope.\n"
msgstr ""
-#: builtin/merge.c:1667 builtin/merge.c:1733
+#: builtin/merge.c:1671 builtin/merge.c:1737
#, c-format
msgid "Rewinding the tree to pristine...\n"
msgstr ""
-#: builtin/merge.c:1671
+#: builtin/merge.c:1675
#, c-format
msgid "Trying merge strategy %s...\n"
msgstr ""
-#: builtin/merge.c:1723
+#: builtin/merge.c:1727
#, c-format
msgid "No merge strategy handled the merge.\n"
msgstr ""
-#: builtin/merge.c:1725
+#: builtin/merge.c:1729
#, c-format
msgid "Merge with strategy %s failed.\n"
msgstr ""
-#: builtin/merge.c:1735
+#: builtin/merge.c:1739
#, c-format
msgid "Using the %s strategy to prepare resolving by hand.\n"
msgstr ""
-#: builtin/merge.c:1749
+#: builtin/merge.c:1753
#, c-format
msgid "Automatic merge went well; stopped before committing as requested\n"
msgstr ""
-#: builtin/mktag.c:10
-msgid "git mktag"
-msgstr ""
-
#: builtin/mktag.c:27
#, c-format
msgid "warning: tag input does not pass fsck: %s"
@@ -17084,22 +17564,18 @@ msgstr ""
msgid "object '%s' tagged as '%s', but is a '%s' type"
msgstr ""
-#: builtin/mktag.c:98
+#: builtin/mktag.c:97
msgid "tag on stdin did not pass our strict fsck check"
msgstr ""
-#: builtin/mktag.c:101
+#: builtin/mktag.c:100
msgid "tag on stdin did not refer to a valid object"
msgstr ""
-#: builtin/mktag.c:104 builtin/tag.c:242
+#: builtin/mktag.c:103 builtin/tag.c:243
msgid "unable to write tag file"
msgstr ""
-#: builtin/mktree.c:66
-msgid "git mktree [-z] [--missing] [--batch]"
-msgstr ""
-
#: builtin/mktree.c:154
msgid "input is NUL terminated"
msgstr ""
@@ -17251,52 +17727,56 @@ msgstr ""
msgid "Renaming %s to %s\n"
msgstr ""
-#: builtin/mv.c:314 builtin/remote.c:790 builtin/repack.c:857
+#: builtin/mv.c:314 builtin/remote.c:812 builtin/repack.c:861
#, c-format
msgid "renaming '%s' failed"
msgstr ""
-#: builtin/name-rev.c:474
+#: builtin/name-rev.c:524
msgid "git name-rev [<options>] <commit>..."
msgstr ""
-#: builtin/name-rev.c:475
+#: builtin/name-rev.c:525
msgid "git name-rev [<options>] --all"
msgstr ""
-#: builtin/name-rev.c:476
-msgid "git name-rev [<options>] --stdin"
+#: builtin/name-rev.c:526
+msgid "git name-rev [<options>] --annotate-stdin"
msgstr ""
-#: builtin/name-rev.c:533
+#: builtin/name-rev.c:583
msgid "print only ref-based names (no object names)"
msgstr ""
-#: builtin/name-rev.c:534
+#: builtin/name-rev.c:584
msgid "only use tags to name the commits"
msgstr ""
-#: builtin/name-rev.c:536
+#: builtin/name-rev.c:586
msgid "only use refs matching <pattern>"
msgstr ""
-#: builtin/name-rev.c:538
+#: builtin/name-rev.c:588
msgid "ignore refs matching <pattern>"
msgstr ""
-#: builtin/name-rev.c:540
+#: builtin/name-rev.c:590
msgid "list all commits reachable from all refs"
msgstr ""
-#: builtin/name-rev.c:541
-msgid "read from stdin"
+#: builtin/name-rev.c:591
+msgid "deprecated: use annotate-stdin instead"
+msgstr ""
+
+#: builtin/name-rev.c:592
+msgid "annotate text from stdin"
msgstr ""
-#: builtin/name-rev.c:542
+#: builtin/name-rev.c:593
msgid "allow to print `undefined` names (default)"
msgstr ""
-#: builtin/name-rev.c:548
+#: builtin/name-rev.c:599
msgid "dereference tags in the input (internal use)"
msgstr ""
@@ -17333,14 +17813,6 @@ msgid ""
"git notes [--ref <notes-ref>] merge [-v | -q] [-s <strategy>] <notes-ref>"
msgstr ""
-#: builtin/notes.c:35
-msgid "git notes merge --commit [-v | -q]"
-msgstr ""
-
-#: builtin/notes.c:36
-msgid "git notes merge --abort [-v | -q]"
-msgstr ""
-
#: builtin/notes.c:37
msgid "git notes [--ref <notes-ref>] remove [<object>...]"
msgstr ""
@@ -17401,10 +17873,6 @@ msgstr ""
msgid "git notes prune [<options>]"
msgstr ""
-#: builtin/notes.c:92
-msgid "git notes get-ref"
-msgstr ""
-
#: builtin/notes.c:97
msgid "Write/edit the notes for the following object:"
msgstr ""
@@ -17436,7 +17904,7 @@ msgstr ""
msgid "the note contents have been left in %s"
msgstr ""
-#: builtin/notes.c:240 builtin/tag.c:581
+#: builtin/notes.c:240 builtin/tag.c:582
#, c-format
msgid "could not open or read '%s'"
msgstr ""
@@ -17476,13 +17944,6 @@ msgstr ""
msgid "refusing to %s notes in %s (outside of refs/notes/)"
msgstr ""
-#: builtin/notes.c:374 builtin/notes.c:429 builtin/notes.c:507
-#: builtin/notes.c:519 builtin/notes.c:596 builtin/notes.c:663
-#: builtin/notes.c:813 builtin/notes.c:965 builtin/notes.c:987
-#: builtin/prune-packed.c:25 builtin/receive-pack.c:2487 builtin/tag.c:591
-msgid "too many arguments"
-msgstr ""
-
#: builtin/notes.c:387 builtin/notes.c:676
#, c-format
msgid "no note found for object %s."
@@ -17658,7 +18119,7 @@ msgid ""
"abort'.\n"
msgstr ""
-#: builtin/notes.c:899 builtin/tag.c:594
+#: builtin/notes.c:899 builtin/tag.c:595
#, c-format
msgid "Failed to resolve '%s' as a valid ref."
msgstr ""
@@ -17676,7 +18137,7 @@ msgstr ""
msgid "read object names from the standard input"
msgstr ""
-#: builtin/notes.c:956 builtin/prune.c:144 builtin/worktree.c:147
+#: builtin/notes.c:956 builtin/prune.c:144 builtin/worktree.c:148
msgid "do not remove, show only"
msgstr ""
@@ -17692,7 +18153,7 @@ msgstr ""
msgid "use notes from <notes-ref>"
msgstr ""
-#: builtin/notes.c:1036 builtin/stash.c:1818
+#: builtin/notes.c:1036 builtin/stash.c:1802
#, c-format
msgid "unknown subcommand: %s"
msgstr ""
@@ -17707,390 +18168,386 @@ msgid ""
"git pack-objects [<options>...] <base-name> [< <ref-list> | < <object-list>]"
msgstr ""
-#: builtin/pack-objects.c:572
+#: builtin/pack-objects.c:570
#, c-format
msgid ""
"write_reuse_object: could not locate %s, expected at offset %<PRIuMAX> in "
"pack %s"
msgstr ""
-#: builtin/pack-objects.c:580
+#: builtin/pack-objects.c:578
#, c-format
msgid "bad packed object CRC for %s"
msgstr ""
-#: builtin/pack-objects.c:591
+#: builtin/pack-objects.c:589
#, c-format
msgid "corrupt packed object for %s"
msgstr ""
-#: builtin/pack-objects.c:722
+#: builtin/pack-objects.c:720
#, c-format
msgid "recursive delta detected for object %s"
msgstr ""
-#: builtin/pack-objects.c:941
+#: builtin/pack-objects.c:939
#, c-format
msgid "ordered %u objects, expected %<PRIu32>"
msgstr ""
-#: builtin/pack-objects.c:1036
+#: builtin/pack-objects.c:1034
#, c-format
msgid "expected object at offset %<PRIuMAX> in pack %s"
msgstr ""
-#: builtin/pack-objects.c:1160
+#: builtin/pack-objects.c:1158
msgid "disabling bitmap writing, packs are split due to pack.packSizeLimit"
msgstr ""
-#: builtin/pack-objects.c:1173
+#: builtin/pack-objects.c:1171
msgid "Writing objects"
msgstr ""
-#: builtin/pack-objects.c:1235 builtin/update-index.c:90
+#: builtin/pack-objects.c:1243 builtin/update-index.c:90
#, c-format
msgid "failed to stat %s"
msgstr ""
-#: builtin/pack-objects.c:1268
+#: builtin/pack-objects.c:1276
msgid "failed to write bitmap index"
msgstr ""
-#: builtin/pack-objects.c:1294
+#: builtin/pack-objects.c:1302
#, c-format
msgid "wrote %<PRIu32> objects while expecting %<PRIu32>"
msgstr ""
-#: builtin/pack-objects.c:1536
+#: builtin/pack-objects.c:1544
msgid "disabling bitmap writing, as some objects are not being packed"
msgstr ""
-#: builtin/pack-objects.c:1984
+#: builtin/pack-objects.c:1992
#, c-format
msgid "delta base offset overflow in pack for %s"
msgstr ""
-#: builtin/pack-objects.c:1993
+#: builtin/pack-objects.c:2001
#, c-format
msgid "delta base offset out of bound for %s"
msgstr ""
-#: builtin/pack-objects.c:2274
+#: builtin/pack-objects.c:2282
msgid "Counting objects"
msgstr ""
-#: builtin/pack-objects.c:2439
+#: builtin/pack-objects.c:2447
#, c-format
msgid "unable to parse object header of %s"
msgstr ""
-#: builtin/pack-objects.c:2509 builtin/pack-objects.c:2525
-#: builtin/pack-objects.c:2535
+#: builtin/pack-objects.c:2517 builtin/pack-objects.c:2533
+#: builtin/pack-objects.c:2543
#, c-format
msgid "object %s cannot be read"
msgstr ""
-#: builtin/pack-objects.c:2512 builtin/pack-objects.c:2539
+#: builtin/pack-objects.c:2520 builtin/pack-objects.c:2547
#, c-format
msgid "object %s inconsistent object length (%<PRIuMAX> vs %<PRIuMAX>)"
msgstr ""
-#: builtin/pack-objects.c:2549
+#: builtin/pack-objects.c:2557
msgid "suboptimal pack - out of memory"
msgstr ""
-#: builtin/pack-objects.c:2864
+#: builtin/pack-objects.c:2872
#, c-format
msgid "Delta compression using up to %d threads"
msgstr ""
-#: builtin/pack-objects.c:3003
+#: builtin/pack-objects.c:3011
#, c-format
msgid "unable to pack objects reachable from tag %s"
msgstr ""
-#: builtin/pack-objects.c:3089
+#: builtin/pack-objects.c:3097
msgid "Compressing objects"
msgstr ""
-#: builtin/pack-objects.c:3095
+#: builtin/pack-objects.c:3103
msgid "inconsistency with delta count"
msgstr ""
-#: builtin/pack-objects.c:3174
+#: builtin/pack-objects.c:3182
#, c-format
msgid ""
"value of uploadpack.blobpackfileuri must be of the form '<object-hash> <pack-"
"hash> <uri>' (got '%s')"
msgstr ""
-#: builtin/pack-objects.c:3177
+#: builtin/pack-objects.c:3185
#, c-format
msgid ""
"object already configured in another uploadpack.blobpackfileuri (got '%s')"
msgstr ""
-#: builtin/pack-objects.c:3212
+#: builtin/pack-objects.c:3220
#, c-format
msgid "could not get type of object %s in pack %s"
msgstr ""
-#: builtin/pack-objects.c:3340 builtin/pack-objects.c:3351
-#: builtin/pack-objects.c:3365
+#: builtin/pack-objects.c:3348 builtin/pack-objects.c:3359
+#: builtin/pack-objects.c:3373
#, c-format
msgid "could not find pack '%s'"
msgstr ""
-#: builtin/pack-objects.c:3408
+#: builtin/pack-objects.c:3416
#, c-format
msgid ""
"expected edge object ID, got garbage:\n"
" %s"
msgstr ""
-#: builtin/pack-objects.c:3414
+#: builtin/pack-objects.c:3422
#, c-format
msgid ""
"expected object ID, got garbage:\n"
" %s"
msgstr ""
-#: builtin/pack-objects.c:3507
-msgid "invalid value for --missing"
-msgstr ""
-
-#: builtin/pack-objects.c:3532 builtin/pack-objects.c:3619
+#: builtin/pack-objects.c:3540 builtin/pack-objects.c:3627
msgid "cannot open pack index"
msgstr ""
-#: builtin/pack-objects.c:3541
+#: builtin/pack-objects.c:3549
#, c-format
msgid "loose object at %s could not be examined"
msgstr ""
-#: builtin/pack-objects.c:3627
+#: builtin/pack-objects.c:3635
msgid "unable to force loose object"
msgstr ""
-#: builtin/pack-objects.c:3757
+#: builtin/pack-objects.c:3763
#, c-format
msgid "not a rev '%s'"
msgstr ""
-#: builtin/pack-objects.c:3760 builtin/rev-parse.c:1061
+#: builtin/pack-objects.c:3766 builtin/rev-parse.c:1061
#, c-format
msgid "bad revision '%s'"
msgstr ""
-#: builtin/pack-objects.c:3788
+#: builtin/pack-objects.c:3794
msgid "unable to add recent objects"
msgstr ""
-#: builtin/pack-objects.c:3841
+#: builtin/pack-objects.c:3847
#, c-format
msgid "unsupported index version %s"
msgstr ""
-#: builtin/pack-objects.c:3845
+#: builtin/pack-objects.c:3851
#, c-format
msgid "bad index version '%s'"
msgstr ""
-#: builtin/pack-objects.c:3884
+#: builtin/pack-objects.c:3907
msgid "<version>[,<offset>]"
msgstr ""
-#: builtin/pack-objects.c:3885
+#: builtin/pack-objects.c:3908
msgid "write the pack index file in the specified idx format version"
msgstr ""
-#: builtin/pack-objects.c:3888
+#: builtin/pack-objects.c:3911
msgid "maximum size of each output pack file"
msgstr ""
-#: builtin/pack-objects.c:3890
+#: builtin/pack-objects.c:3913
msgid "ignore borrowed objects from alternate object store"
msgstr ""
-#: builtin/pack-objects.c:3892
+#: builtin/pack-objects.c:3915
msgid "ignore packed objects"
msgstr ""
-#: builtin/pack-objects.c:3894
+#: builtin/pack-objects.c:3917
msgid "limit pack window by objects"
msgstr ""
-#: builtin/pack-objects.c:3896
+#: builtin/pack-objects.c:3919
msgid "limit pack window by memory in addition to object limit"
msgstr ""
-#: builtin/pack-objects.c:3898
+#: builtin/pack-objects.c:3921
msgid "maximum length of delta chain allowed in the resulting pack"
msgstr ""
-#: builtin/pack-objects.c:3900
+#: builtin/pack-objects.c:3923
msgid "reuse existing deltas"
msgstr ""
-#: builtin/pack-objects.c:3902
+#: builtin/pack-objects.c:3925
msgid "reuse existing objects"
msgstr ""
-#: builtin/pack-objects.c:3904
+#: builtin/pack-objects.c:3927
msgid "use OFS_DELTA objects"
msgstr ""
-#: builtin/pack-objects.c:3906
+#: builtin/pack-objects.c:3929
msgid "use threads when searching for best delta matches"
msgstr ""
-#: builtin/pack-objects.c:3908
+#: builtin/pack-objects.c:3931
msgid "do not create an empty pack output"
msgstr ""
-#: builtin/pack-objects.c:3910
+#: builtin/pack-objects.c:3933
msgid "read revision arguments from standard input"
msgstr ""
-#: builtin/pack-objects.c:3912
+#: builtin/pack-objects.c:3935
msgid "limit the objects to those that are not yet packed"
msgstr ""
-#: builtin/pack-objects.c:3915
+#: builtin/pack-objects.c:3938
msgid "include objects reachable from any reference"
msgstr ""
-#: builtin/pack-objects.c:3918
+#: builtin/pack-objects.c:3941
msgid "include objects referred by reflog entries"
msgstr ""
-#: builtin/pack-objects.c:3921
+#: builtin/pack-objects.c:3944
msgid "include objects referred to by the index"
msgstr ""
-#: builtin/pack-objects.c:3924
+#: builtin/pack-objects.c:3947
msgid "read packs from stdin"
msgstr ""
-#: builtin/pack-objects.c:3926
+#: builtin/pack-objects.c:3949
msgid "output pack to stdout"
msgstr ""
-#: builtin/pack-objects.c:3928
+#: builtin/pack-objects.c:3951
msgid "include tag objects that refer to objects to be packed"
msgstr ""
-#: builtin/pack-objects.c:3930
+#: builtin/pack-objects.c:3953
msgid "keep unreachable objects"
msgstr ""
-#: builtin/pack-objects.c:3932
+#: builtin/pack-objects.c:3955
msgid "pack loose unreachable objects"
msgstr ""
-#: builtin/pack-objects.c:3934
+#: builtin/pack-objects.c:3957
msgid "unpack unreachable objects newer than <time>"
msgstr ""
-#: builtin/pack-objects.c:3937
+#: builtin/pack-objects.c:3960
msgid "use the sparse reachability algorithm"
msgstr ""
-#: builtin/pack-objects.c:3939
+#: builtin/pack-objects.c:3962
msgid "create thin packs"
msgstr ""
-#: builtin/pack-objects.c:3941
+#: builtin/pack-objects.c:3964
msgid "create packs suitable for shallow fetches"
msgstr ""
-#: builtin/pack-objects.c:3943
+#: builtin/pack-objects.c:3966
msgid "ignore packs that have companion .keep file"
msgstr ""
-#: builtin/pack-objects.c:3945
+#: builtin/pack-objects.c:3968
msgid "ignore this pack"
msgstr ""
-#: builtin/pack-objects.c:3947
+#: builtin/pack-objects.c:3970
msgid "pack compression level"
msgstr ""
-#: builtin/pack-objects.c:3949
+#: builtin/pack-objects.c:3972
msgid "do not hide commits by grafts"
msgstr ""
-#: builtin/pack-objects.c:3951
+#: builtin/pack-objects.c:3974
msgid "use a bitmap index if available to speed up counting objects"
msgstr ""
-#: builtin/pack-objects.c:3953
+#: builtin/pack-objects.c:3976
msgid "write a bitmap index together with the pack index"
msgstr ""
-#: builtin/pack-objects.c:3957
+#: builtin/pack-objects.c:3980
msgid "write a bitmap index if possible"
msgstr ""
-#: builtin/pack-objects.c:3961
+#: builtin/pack-objects.c:3984
msgid "handling for missing objects"
msgstr ""
-#: builtin/pack-objects.c:3964
+#: builtin/pack-objects.c:3987
msgid "do not pack objects in promisor packfiles"
msgstr ""
-#: builtin/pack-objects.c:3966
+#: builtin/pack-objects.c:3989
msgid "respect islands during delta compression"
msgstr ""
-#: builtin/pack-objects.c:3968
+#: builtin/pack-objects.c:3991
msgid "protocol"
msgstr ""
-#: builtin/pack-objects.c:3969
+#: builtin/pack-objects.c:3992
msgid "exclude any configured uploadpack.blobpackfileuri with this protocol"
msgstr ""
-#: builtin/pack-objects.c:4002
+#: builtin/pack-objects.c:4027
#, c-format
msgid "delta chain depth %d is too deep, forcing %d"
msgstr ""
-#: builtin/pack-objects.c:4007
+#: builtin/pack-objects.c:4032
#, c-format
msgid "pack.deltaCacheLimit is too high, forcing %d"
msgstr ""
-#: builtin/pack-objects.c:4063
+#: builtin/pack-objects.c:4088
msgid "--max-pack-size cannot be used to build a pack for transfer"
msgstr ""
-#: builtin/pack-objects.c:4065
+#: builtin/pack-objects.c:4090
msgid "minimum pack size limit is 1 MiB"
msgstr ""
-#: builtin/pack-objects.c:4070
+#: builtin/pack-objects.c:4095
msgid "--thin cannot be used to build an indexable pack"
msgstr ""
-#: builtin/pack-objects.c:4079
+#: builtin/pack-objects.c:4104
msgid "cannot use --filter without --stdout"
msgstr ""
-#: builtin/pack-objects.c:4081
+#: builtin/pack-objects.c:4106
msgid "cannot use --filter with --stdin-packs"
msgstr ""
-#: builtin/pack-objects.c:4085
+#: builtin/pack-objects.c:4110
msgid "cannot use internal rev list with --stdin-packs"
msgstr ""
-#: builtin/pack-objects.c:4144
+#: builtin/pack-objects.c:4169
msgid "Enumerating objects"
msgstr ""
-#: builtin/pack-objects.c:4180
+#: builtin/pack-objects.c:4210
#, c-format
msgid ""
"Total %<PRIu32> (delta %<PRIu32>), reused %<PRIu32> (delta %<PRIu32>), pack-"
@@ -18118,10 +18575,6 @@ msgstr ""
msgid "prune loose refs (default)"
msgstr ""
-#: builtin/prune-packed.c:6
-msgid "git prune-packed [-n | --dry-run] [-q | --quiet]"
-msgstr ""
-
#: builtin/prune.c:14
msgid "git prune [-n] [-v] [--progress] [--expire <time>] [--] [<head>...]"
msgstr ""
@@ -18142,11 +18595,6 @@ msgstr ""
msgid "cannot prune in a precious-objects repo"
msgstr ""
-#: builtin/pull.c:45 builtin/pull.c:47
-#, c-format
-msgid "Invalid value for %s: %s"
-msgstr ""
-
#: builtin/pull.c:67
msgid "git pull [<options>] [<repository> [<refspec>...]]"
msgstr ""
@@ -18171,7 +18619,7 @@ msgstr ""
msgid "control use of pre-merge-commit and commit-msg hooks"
msgstr ""
-#: builtin/pull.c:171 parse-options.h:340
+#: builtin/pull.c:171 parse-options.h:371
msgid "automatically stash/stash pop before and after"
msgstr ""
@@ -18187,11 +18635,6 @@ msgstr ""
msgid "number of submodules pulled in parallel"
msgstr ""
-#: builtin/pull.c:321
-#, c-format
-msgid "Invalid value for pull.ff: %s"
-msgstr ""
-
#: builtin/pull.c:449
msgid ""
"There is no candidate for rebasing against among the refs that you just "
@@ -18217,7 +18660,7 @@ msgid ""
"for your current branch, you must specify a branch on the command line."
msgstr ""
-#: builtin/pull.c:460 builtin/rebase.c:951
+#: builtin/pull.c:460 builtin/rebase.c:978
msgid "You are not currently on a branch."
msgstr ""
@@ -18234,16 +18677,16 @@ msgid "See git-pull(1) for details."
msgstr ""
#: builtin/pull.c:467 builtin/pull.c:473 builtin/pull.c:482
-#: builtin/rebase.c:957
+#: builtin/rebase.c:984
msgid "<remote>"
msgstr ""
#: builtin/pull.c:467 builtin/pull.c:482 builtin/pull.c:487
-#: contrib/scalar/scalar.c:375
+#: contrib/scalar/scalar.c:374
msgid "<branch>"
msgstr ""
-#: builtin/pull.c:475 builtin/rebase.c:949
+#: builtin/pull.c:475 builtin/rebase.c:976
msgid "There is no tracking information for the current branch."
msgstr ""
@@ -18285,19 +18728,19 @@ msgid ""
"invocation.\n"
msgstr ""
-#: builtin/pull.c:1046
+#: builtin/pull.c:1047
msgid "Updating an unborn branch with changes added to the index."
msgstr ""
-#: builtin/pull.c:1050
+#: builtin/pull.c:1051
msgid "pull with rebase"
msgstr ""
-#: builtin/pull.c:1051
+#: builtin/pull.c:1052
msgid "please commit or stash them."
msgstr ""
-#: builtin/pull.c:1076
+#: builtin/pull.c:1077
#, c-format
msgid ""
"fetch updated the current branch head.\n"
@@ -18305,7 +18748,7 @@ msgid ""
"commit %s."
msgstr ""
-#: builtin/pull.c:1082
+#: builtin/pull.c:1083
#, c-format
msgid ""
"Cannot fast-forward your working tree.\n"
@@ -18316,23 +18759,23 @@ msgid ""
"to recover."
msgstr ""
-#: builtin/pull.c:1097
+#: builtin/pull.c:1098
msgid "Cannot merge multiple branches into empty head."
msgstr ""
-#: builtin/pull.c:1102
+#: builtin/pull.c:1103
msgid "Cannot rebase onto multiple branches."
msgstr ""
-#: builtin/pull.c:1104
+#: builtin/pull.c:1105
msgid "Cannot fast-forward to multiple branches."
msgstr ""
-#: builtin/pull.c:1119
+#: builtin/pull.c:1120
msgid "Need to specify how to reconcile divergent branches."
msgstr ""
-#: builtin/pull.c:1133
+#: builtin/pull.c:1134
msgid "cannot rebase with locally recorded submodule modifications"
msgstr ""
@@ -18460,7 +18903,7 @@ msgstr ""
msgid "failed to push some refs to '%s'"
msgstr ""
-#: builtin/push.c:544 builtin/submodule--helper.c:3259
+#: builtin/push.c:544 builtin/submodule--helper.c:3377
msgid "repository"
msgstr ""
@@ -18687,63 +19130,59 @@ msgstr ""
msgid "suppress feedback messages"
msgstr ""
-#: builtin/read-tree.c:183
+#: builtin/read-tree.c:190
msgid "You need to resolve your current index first"
msgstr ""
-#: builtin/rebase.c:35
+#: builtin/rebase.c:36
msgid ""
"git rebase [-i] [options] [--exec <cmd>] [--onto <newbase> | --keep-base] "
"[<upstream> [<branch>]]"
msgstr ""
-#: builtin/rebase.c:37
+#: builtin/rebase.c:38
msgid ""
"git rebase [-i] [options] [--exec <cmd>] [--onto <newbase>] --root [<branch>]"
msgstr ""
-#: builtin/rebase.c:39
-msgid "git rebase --continue | --abort | --skip | --edit-todo"
-msgstr ""
-
-#: builtin/rebase.c:230
+#: builtin/rebase.c:231
#, c-format
msgid "could not create temporary %s"
msgstr ""
-#: builtin/rebase.c:236
+#: builtin/rebase.c:237
msgid "could not mark as interactive"
msgstr ""
-#: builtin/rebase.c:289
+#: builtin/rebase.c:290
msgid "could not generate todo list"
msgstr ""
-#: builtin/rebase.c:331
+#: builtin/rebase.c:332
msgid "a base commit must be provided with --upstream or --onto"
msgstr ""
-#: builtin/rebase.c:390
+#: builtin/rebase.c:391
#, c-format
msgid "%s requires the merge backend"
msgstr ""
-#: builtin/rebase.c:432
+#: builtin/rebase.c:433
#, c-format
msgid "could not get 'onto': '%s'"
msgstr ""
-#: builtin/rebase.c:449
+#: builtin/rebase.c:450
#, c-format
msgid "invalid orig-head: '%s'"
msgstr ""
-#: builtin/rebase.c:474
+#: builtin/rebase.c:475
#, c-format
msgid "ignoring invalid allow_rerere_autoupdate: '%s'"
msgstr ""
-#: builtin/rebase.c:597
+#: builtin/rebase.c:600
msgid ""
"Resolve all conflicts manually, mark them as resolved with\n"
"\"git add/rm <conflicted_files>\", then run \"git rebase --continue\".\n"
@@ -18752,7 +19191,7 @@ msgid ""
"abort\"."
msgstr ""
-#: builtin/rebase.c:680
+#: builtin/rebase.c:685
#, c-format
msgid ""
"\n"
@@ -18764,14 +19203,19 @@ msgid ""
"As a result, git cannot rebase them."
msgstr ""
-#: builtin/rebase.c:925
+#: builtin/rebase.c:836
+#, c-format
+msgid "could not switch to %s"
+msgstr ""
+
+#: builtin/rebase.c:952
#, c-format
msgid ""
"unrecognized empty type '%s'; valid values are \"drop\", \"keep\", and \"ask"
"\"."
msgstr ""
-#: builtin/rebase.c:943
+#: builtin/rebase.c:970
#, c-format
msgid ""
"%s\n"
@@ -18782,7 +19226,7 @@ msgid ""
"\n"
msgstr ""
-#: builtin/rebase.c:959
+#: builtin/rebase.c:986
#, c-format
msgid ""
"If you wish to set tracking information for this branch you can do so with:\n"
@@ -18791,194 +19235,194 @@ msgid ""
"\n"
msgstr ""
-#: builtin/rebase.c:989
+#: builtin/rebase.c:1016
msgid "exec commands cannot contain newlines"
msgstr ""
-#: builtin/rebase.c:993
+#: builtin/rebase.c:1020
msgid "empty exec command"
msgstr ""
-#: builtin/rebase.c:1023
+#: builtin/rebase.c:1051
msgid "rebase onto given branch instead of upstream"
msgstr ""
-#: builtin/rebase.c:1025
+#: builtin/rebase.c:1053
msgid "use the merge-base of upstream and branch as the current base"
msgstr ""
-#: builtin/rebase.c:1027
+#: builtin/rebase.c:1055
msgid "allow pre-rebase hook to run"
msgstr ""
-#: builtin/rebase.c:1029
+#: builtin/rebase.c:1057
msgid "be quiet. implies --no-stat"
msgstr ""
-#: builtin/rebase.c:1032
+#: builtin/rebase.c:1060
msgid "display a diffstat of what changed upstream"
msgstr ""
-#: builtin/rebase.c:1035
+#: builtin/rebase.c:1063
msgid "do not show diffstat of what changed upstream"
msgstr ""
-#: builtin/rebase.c:1038
+#: builtin/rebase.c:1066
msgid "add a Signed-off-by trailer to each commit"
msgstr ""
-#: builtin/rebase.c:1041
+#: builtin/rebase.c:1069
msgid "make committer date match author date"
msgstr ""
-#: builtin/rebase.c:1043
+#: builtin/rebase.c:1071
msgid "ignore author date and use current date"
msgstr ""
-#: builtin/rebase.c:1045
+#: builtin/rebase.c:1073
msgid "synonym of --reset-author-date"
msgstr ""
-#: builtin/rebase.c:1047 builtin/rebase.c:1051
+#: builtin/rebase.c:1075 builtin/rebase.c:1079
msgid "passed to 'git apply'"
msgstr ""
-#: builtin/rebase.c:1049
+#: builtin/rebase.c:1077
msgid "ignore changes in whitespace"
msgstr ""
-#: builtin/rebase.c:1053 builtin/rebase.c:1056
+#: builtin/rebase.c:1081 builtin/rebase.c:1084
msgid "cherry-pick all commits, even if unchanged"
msgstr ""
-#: builtin/rebase.c:1058
+#: builtin/rebase.c:1086
msgid "continue"
msgstr ""
-#: builtin/rebase.c:1061
+#: builtin/rebase.c:1089
msgid "skip current patch and continue"
msgstr ""
-#: builtin/rebase.c:1063
+#: builtin/rebase.c:1091
msgid "abort and check out the original branch"
msgstr ""
-#: builtin/rebase.c:1066
+#: builtin/rebase.c:1094
msgid "abort but keep HEAD where it is"
msgstr ""
-#: builtin/rebase.c:1067
+#: builtin/rebase.c:1095
msgid "edit the todo list during an interactive rebase"
msgstr ""
-#: builtin/rebase.c:1070
+#: builtin/rebase.c:1098
msgid "show the patch file being applied or merged"
msgstr ""
-#: builtin/rebase.c:1073
+#: builtin/rebase.c:1101
msgid "use apply strategies to rebase"
msgstr ""
-#: builtin/rebase.c:1077
+#: builtin/rebase.c:1105
msgid "use merging strategies to rebase"
msgstr ""
-#: builtin/rebase.c:1081
+#: builtin/rebase.c:1109
msgid "let the user edit the list of commits to rebase"
msgstr ""
-#: builtin/rebase.c:1085
+#: builtin/rebase.c:1113
msgid "(DEPRECATED) try to recreate merges instead of ignoring them"
msgstr ""
-#: builtin/rebase.c:1090
+#: builtin/rebase.c:1118
msgid "how to handle commits that become empty"
msgstr ""
-#: builtin/rebase.c:1093
+#: builtin/rebase.c:1121
msgid "keep commits which start empty"
msgstr ""
-#: builtin/rebase.c:1097
+#: builtin/rebase.c:1125
msgid "move commits that begin with squash!/fixup! under -i"
msgstr ""
-#: builtin/rebase.c:1104
+#: builtin/rebase.c:1132
msgid "add exec lines after each commit of the editable list"
msgstr ""
-#: builtin/rebase.c:1108
+#: builtin/rebase.c:1136
msgid "allow rebasing commits with empty messages"
msgstr ""
-#: builtin/rebase.c:1112
+#: builtin/rebase.c:1140
msgid "try to rebase merges instead of skipping them"
msgstr ""
-#: builtin/rebase.c:1115
+#: builtin/rebase.c:1143
msgid "use 'merge-base --fork-point' to refine upstream"
msgstr ""
-#: builtin/rebase.c:1117
+#: builtin/rebase.c:1145
msgid "use the given merge strategy"
msgstr ""
-#: builtin/rebase.c:1119 builtin/revert.c:115
+#: builtin/rebase.c:1147 builtin/revert.c:115
msgid "option"
msgstr ""
-#: builtin/rebase.c:1120
+#: builtin/rebase.c:1148
msgid "pass the argument through to the merge strategy"
msgstr ""
-#: builtin/rebase.c:1123
+#: builtin/rebase.c:1151
msgid "rebase all reachable commits up to the root(s)"
msgstr ""
-#: builtin/rebase.c:1126
+#: builtin/rebase.c:1154
msgid "automatically re-schedule any `exec` that fails"
msgstr ""
-#: builtin/rebase.c:1128
+#: builtin/rebase.c:1156
msgid "apply all changes, even those already present upstream"
msgstr ""
-#: builtin/rebase.c:1149
+#: builtin/rebase.c:1177
msgid "It looks like 'git am' is in progress. Cannot rebase."
msgstr ""
-#: builtin/rebase.c:1180
+#: builtin/rebase.c:1208
msgid "--preserve-merges was replaced by --rebase-merges"
msgstr ""
-#: builtin/rebase.c:1202
+#: builtin/rebase.c:1230
msgid "No rebase in progress?"
msgstr ""
-#: builtin/rebase.c:1206
+#: builtin/rebase.c:1234
msgid "The --edit-todo action can only be used during interactive rebase."
msgstr ""
-#: builtin/rebase.c:1229 t/helper/test-fast-rebase.c:122
+#: builtin/rebase.c:1257 t/helper/test-fast-rebase.c:122
msgid "Cannot read HEAD"
msgstr ""
-#: builtin/rebase.c:1241
+#: builtin/rebase.c:1269
msgid ""
"You must edit all merge conflicts and then\n"
"mark them as resolved using git add"
msgstr ""
-#: builtin/rebase.c:1260
+#: builtin/rebase.c:1287
msgid "could not discard worktree changes"
msgstr ""
-#: builtin/rebase.c:1279
+#: builtin/rebase.c:1308
#, c-format
msgid "could not move back to %s"
msgstr ""
-#: builtin/rebase.c:1325
+#: builtin/rebase.c:1354
#, c-format
msgid ""
"It seems that there is already a %s directory, and\n"
@@ -18991,122 +19435,117 @@ msgid ""
"valuable there.\n"
msgstr ""
-#: builtin/rebase.c:1353
+#: builtin/rebase.c:1382
msgid "switch `C' expects a numerical value"
msgstr ""
-#: builtin/rebase.c:1395
+#: builtin/rebase.c:1424
#, c-format
msgid "Unknown mode: %s"
msgstr ""
-#: builtin/rebase.c:1434
+#: builtin/rebase.c:1463
msgid "--strategy requires --merge or --interactive"
msgstr ""
-#: builtin/rebase.c:1463
+#: builtin/rebase.c:1492
msgid "apply options and merge options cannot be used together"
msgstr ""
-#: builtin/rebase.c:1476
+#: builtin/rebase.c:1505
#, c-format
msgid "Unknown rebase backend: %s"
msgstr ""
-#: builtin/rebase.c:1505
+#: builtin/rebase.c:1534
msgid "--reschedule-failed-exec requires --exec or --interactive"
msgstr ""
-#: builtin/rebase.c:1536
+#: builtin/rebase.c:1565
#, c-format
msgid "invalid upstream '%s'"
msgstr ""
-#: builtin/rebase.c:1542
+#: builtin/rebase.c:1571
msgid "Could not create new root commit"
msgstr ""
-#: builtin/rebase.c:1568
+#: builtin/rebase.c:1597
#, c-format
msgid "'%s': need exactly one merge base with branch"
msgstr ""
-#: builtin/rebase.c:1571
+#: builtin/rebase.c:1600
#, c-format
msgid "'%s': need exactly one merge base"
msgstr ""
-#: builtin/rebase.c:1580
+#: builtin/rebase.c:1609
#, c-format
msgid "Does not point to a valid commit '%s'"
msgstr ""
-#: builtin/rebase.c:1607
+#: builtin/rebase.c:1636
#, c-format
msgid "no such branch/commit '%s'"
msgstr ""
-#: builtin/rebase.c:1618 builtin/submodule--helper.c:39
-#: builtin/submodule--helper.c:2659
+#: builtin/rebase.c:1647 builtin/submodule--helper.c:43
+#: builtin/submodule--helper.c:2477
#, c-format
msgid "No such ref: %s"
msgstr ""
-#: builtin/rebase.c:1629
+#: builtin/rebase.c:1658
msgid "Could not resolve HEAD to a revision"
msgstr ""
-#: builtin/rebase.c:1650
+#: builtin/rebase.c:1679
msgid "Please commit or stash them."
msgstr ""
-#: builtin/rebase.c:1686
-#, c-format
-msgid "could not switch to %s"
-msgstr ""
-
-#: builtin/rebase.c:1697
+#: builtin/rebase.c:1714
msgid "HEAD is up to date."
msgstr ""
-#: builtin/rebase.c:1699
+#: builtin/rebase.c:1716
#, c-format
msgid "Current branch %s is up to date.\n"
msgstr ""
-#: builtin/rebase.c:1707
+#: builtin/rebase.c:1724
msgid "HEAD is up to date, rebase forced."
msgstr ""
-#: builtin/rebase.c:1709
+#: builtin/rebase.c:1726
#, c-format
msgid "Current branch %s is up to date, rebase forced.\n"
msgstr ""
-#: builtin/rebase.c:1717
+#: builtin/rebase.c:1734
msgid "The pre-rebase hook refused to rebase."
msgstr ""
-#: builtin/rebase.c:1724
+#: builtin/rebase.c:1741
#, c-format
msgid "Changes to %s:\n"
msgstr ""
-#: builtin/rebase.c:1727
+#: builtin/rebase.c:1744
#, c-format
msgid "Changes from %s to %s:\n"
msgstr ""
-#: builtin/rebase.c:1752
+#: builtin/rebase.c:1769
#, c-format
msgid "First, rewinding head to replay your work on top of it...\n"
msgstr ""
-#: builtin/rebase.c:1761
+#: builtin/rebase.c:1781
msgid "Could not detach HEAD"
msgstr ""
-#: builtin/rebase.c:1770
+#: builtin/rebase.c:1790
#, c-format
msgid "Fast-forwarded %s to %s.\n"
msgstr ""
@@ -19115,7 +19554,7 @@ msgstr ""
msgid "git receive-pack <git-dir>"
msgstr ""
-#: builtin/receive-pack.c:1275
+#: builtin/receive-pack.c:1263
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"
@@ -19132,7 +19571,7 @@ msgid ""
"'receive.denyCurrentBranch' configuration variable to 'refuse'."
msgstr ""
-#: builtin/receive-pack.c:1295
+#: builtin/receive-pack.c:1283
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"
@@ -19144,235 +19583,265 @@ msgid ""
"To squelch this message, you can set it to 'refuse'."
msgstr ""
-#: builtin/receive-pack.c:2474
+#: builtin/receive-pack.c:2476
msgid "quiet"
msgstr ""
-#: builtin/receive-pack.c:2489
+#: builtin/receive-pack.c:2491
msgid "you must specify a directory"
msgstr ""
-#: builtin/reflog.c:17
+#: builtin/reflog.c:9
+msgid "git reflog [show] [<log-options>] [<ref>]"
+msgstr ""
+
+#: builtin/reflog.c:12
msgid ""
-"git reflog expire [--expire=<time>] [--expire-unreachable=<time>] [--"
-"rewrite] [--updateref] [--stale-fix] [--dry-run | -n] [--verbose] [--all] "
-"<refs>..."
+"git reflog expire [--expire=<time>] [--expire-unreachable=<time>]\n"
+" [--rewrite] [--updateref] [--stale-fix]\n"
+" [--dry-run | -n] [--verbose] [--all [--single-worktree] | "
+"<refs>...]"
msgstr ""
-#: builtin/reflog.c:22
+#: builtin/reflog.c:17
msgid ""
-"git reflog delete [--rewrite] [--updateref] [--dry-run | -n] [--verbose] "
-"<refs>..."
+"git reflog delete [--rewrite] [--updateref]\n"
+" [--dry-run | -n] [--verbose] <ref>@{<specifier>}..."
msgstr ""
-#: builtin/reflog.c:25
+#: builtin/reflog.c:21
msgid "git reflog exists <ref>"
msgstr ""
-#: builtin/reflog.c:585 builtin/reflog.c:590
+#: builtin/reflog.c:197 builtin/reflog.c:211
#, c-format
-msgid "'%s' is not a valid timestamp"
+msgid "invalid timestamp '%s' given to '--%s'"
msgstr ""
-#: builtin/reflog.c:631
-#, c-format
-msgid "Marking reachable objects..."
+#: builtin/reflog.c:240 builtin/reflog.c:359
+msgid "do not actually prune any entries"
msgstr ""
-#: builtin/reflog.c:675
-#, c-format
-msgid "%s points nowhere!"
+#: builtin/reflog.c:243 builtin/reflog.c:362
+msgid ""
+"rewrite the old SHA1 with the new SHA1 of the entry that now precedes it"
msgstr ""
-#: builtin/reflog.c:731
-msgid "no reflog specified to delete"
+#: builtin/reflog.c:246 builtin/reflog.c:365
+msgid "update the reference to the value of the top reflog entry"
msgstr ""
-#: builtin/reflog.c:742
-#, c-format
-msgid "not a reflog: %s"
+#: builtin/reflog.c:248 builtin/reflog.c:367
+msgid "print extra information on screen"
+msgstr ""
+
+#: builtin/reflog.c:249 builtin/reflog.c:253
+msgid "timestamp"
+msgstr ""
+
+#: builtin/reflog.c:250
+msgid "prune entries older than the specified time"
+msgstr ""
+
+#: builtin/reflog.c:254
+msgid ""
+"prune entries older than <time> that are not reachable from the current tip "
+"of the branch"
+msgstr ""
+
+#: builtin/reflog.c:258
+msgid "prune any reflog entries that point to broken commits"
msgstr ""
-#: builtin/reflog.c:747
+#: builtin/reflog.c:259
+msgid "process the reflogs of all references"
+msgstr ""
+
+#: builtin/reflog.c:261
+msgid "limits processing to reflogs from the current worktree only"
+msgstr ""
+
+#: builtin/reflog.c:294
#, c-format
-msgid "no reflog for '%s'"
+msgid "Marking reachable objects..."
msgstr ""
-#: builtin/reflog.c:794
+#: builtin/reflog.c:338
#, c-format
-msgid "invalid ref format: %s"
+msgid "%s points nowhere!"
msgstr ""
-#: builtin/reflog.c:803
-msgid "git reflog [ show | expire | delete | exists ]"
+#: builtin/reflog.c:374
+msgid "no reflog specified to delete"
msgstr ""
-#: builtin/remote.c:17
-msgid "git remote [-v | --verbose]"
+#: builtin/reflog.c:396
+#, c-format
+msgid "invalid ref format: %s"
msgstr ""
-#: builtin/remote.c:18
+#: builtin/remote.c:19
msgid ""
"git remote add [-t <branch>] [-m <master>] [-f] [--tags | --no-tags] [--"
"mirror=<fetch|push>] <name> <url>"
msgstr ""
-#: builtin/remote.c:19 builtin/remote.c:39
-msgid "git remote rename <old> <new>"
+#: builtin/remote.c:20 builtin/remote.c:40
+msgid "git remote rename [--[no-]progress] <old> <new>"
msgstr ""
-#: builtin/remote.c:20 builtin/remote.c:44
+#: builtin/remote.c:21 builtin/remote.c:45
msgid "git remote remove <name>"
msgstr ""
-#: builtin/remote.c:21 builtin/remote.c:49
+#: builtin/remote.c:22 builtin/remote.c:50
msgid "git remote set-head <name> (-a | --auto | -d | --delete | <branch>)"
msgstr ""
-#: builtin/remote.c:22
+#: builtin/remote.c:23
msgid "git remote [-v | --verbose] show [-n] <name>"
msgstr ""
-#: builtin/remote.c:23
+#: builtin/remote.c:24
msgid "git remote prune [-n | --dry-run] <name>"
msgstr ""
-#: builtin/remote.c:24
+#: builtin/remote.c:25
msgid ""
"git remote [-v | --verbose] update [-p | --prune] [(<group> | <remote>)...]"
msgstr ""
-#: builtin/remote.c:25
+#: builtin/remote.c:26
msgid "git remote set-branches [--add] <name> <branch>..."
msgstr ""
-#: builtin/remote.c:26 builtin/remote.c:75
+#: builtin/remote.c:27 builtin/remote.c:76
msgid "git remote get-url [--push] [--all] <name>"
msgstr ""
-#: builtin/remote.c:27 builtin/remote.c:80
+#: builtin/remote.c:28 builtin/remote.c:81
msgid "git remote set-url [--push] <name> <newurl> [<oldurl>]"
msgstr ""
-#: builtin/remote.c:28 builtin/remote.c:81
+#: builtin/remote.c:29 builtin/remote.c:82
msgid "git remote set-url --add <name> <newurl>"
msgstr ""
-#: builtin/remote.c:29 builtin/remote.c:82
+#: builtin/remote.c:30 builtin/remote.c:83
msgid "git remote set-url --delete <name> <url>"
msgstr ""
-#: builtin/remote.c:34
+#: builtin/remote.c:35
msgid "git remote add [<options>] <name> <url>"
msgstr ""
-#: builtin/remote.c:54
+#: builtin/remote.c:55
msgid "git remote set-branches <name> <branch>..."
msgstr ""
-#: builtin/remote.c:55
+#: builtin/remote.c:56
msgid "git remote set-branches --add <name> <branch>..."
msgstr ""
-#: builtin/remote.c:60
+#: builtin/remote.c:61
msgid "git remote show [<options>] <name>"
msgstr ""
-#: builtin/remote.c:65
+#: builtin/remote.c:66
msgid "git remote prune [<options>] <name>"
msgstr ""
-#: builtin/remote.c:70
+#: builtin/remote.c:71
msgid "git remote update [<options>] [<group> | <remote>]..."
msgstr ""
-#: builtin/remote.c:99
+#: builtin/remote.c:100
#, c-format
msgid "Updating %s"
msgstr ""
-#: builtin/remote.c:101
+#: builtin/remote.c:102
#, c-format
msgid "Could not fetch %s"
msgstr ""
-#: builtin/remote.c:131
+#: builtin/remote.c:132
msgid ""
"--mirror is dangerous and deprecated; please\n"
"\t use --mirror=fetch or --mirror=push instead"
msgstr ""
-#: builtin/remote.c:148
+#: builtin/remote.c:149
#, c-format
msgid "unknown mirror argument: %s"
msgstr ""
-#: builtin/remote.c:164
+#: builtin/remote.c:165
msgid "fetch the remote branches"
msgstr ""
-#: builtin/remote.c:166
+#: builtin/remote.c:167
msgid "import all tags and associated objects when fetching"
msgstr ""
-#: builtin/remote.c:169
+#: builtin/remote.c:170
msgid "or do not fetch any tag at all (--no-tags)"
msgstr ""
-#: builtin/remote.c:171
+#: builtin/remote.c:172
msgid "branch(es) to track"
msgstr ""
-#: builtin/remote.c:172
+#: builtin/remote.c:173
msgid "master branch"
msgstr ""
-#: builtin/remote.c:174
+#: builtin/remote.c:175
msgid "set up remote as a mirror to push to or fetch from"
msgstr ""
-#: builtin/remote.c:186
+#: builtin/remote.c:187
msgid "specifying a master branch makes no sense with --mirror"
msgstr ""
-#: builtin/remote.c:188
+#: builtin/remote.c:189
msgid "specifying branches to track makes sense only with fetch mirrors"
msgstr ""
-#: builtin/remote.c:195 builtin/remote.c:705
+#: builtin/remote.c:196 builtin/remote.c:716
#, c-format
msgid "remote %s already exists."
msgstr ""
-#: builtin/remote.c:240
+#: builtin/remote.c:241
#, c-format
msgid "Could not setup master '%s'"
msgstr ""
-#: builtin/remote.c:322
+#: builtin/remote.c:323
#, c-format
msgid "unhandled branch.%s.rebase=%s; assuming 'true'"
msgstr ""
-#: builtin/remote.c:366
+#: builtin/remote.c:367
#, c-format
msgid "Could not get fetch map for refspec %s"
msgstr ""
-#: builtin/remote.c:460 builtin/remote.c:468
+#: builtin/remote.c:461 builtin/remote.c:469
msgid "(matching)"
msgstr ""
-#: builtin/remote.c:472
+#: builtin/remote.c:473
msgid "(delete)"
msgstr ""
-#: builtin/remote.c:660
+#: builtin/remote.c:664
#, c-format
msgid "could not set '%s'"
msgstr ""
-#: builtin/remote.c:665
+#: builtin/remote.c:669
#, c-format
msgid ""
"The %s configuration remote.pushDefault in:\n"
@@ -19380,17 +19849,17 @@ msgid ""
"now names the non-existent remote '%s'"
msgstr ""
-#: builtin/remote.c:696 builtin/remote.c:841 builtin/remote.c:948
+#: builtin/remote.c:707 builtin/remote.c:866 builtin/remote.c:973
#, c-format
msgid "No such remote: '%s'"
msgstr ""
-#: builtin/remote.c:715
+#: builtin/remote.c:726
#, c-format
msgid "Could not rename config section '%s' to '%s'"
msgstr ""
-#: builtin/remote.c:735
+#: builtin/remote.c:746
#, c-format
msgid ""
"Not updating non-default fetch refspec\n"
@@ -19398,17 +19867,21 @@ msgid ""
"\tPlease update the configuration manually if necessary."
msgstr ""
-#: builtin/remote.c:775
+#: builtin/remote.c:783
+msgid "Renaming remote references"
+msgstr ""
+
+#: builtin/remote.c:794
#, c-format
msgid "deleting '%s' failed"
msgstr ""
-#: builtin/remote.c:809
+#: builtin/remote.c:832
#, c-format
msgid "creating '%s' failed"
msgstr ""
-#: builtin/remote.c:887
+#: builtin/remote.c:912
msgid ""
"Note: A branch outside the refs/remotes/ hierarchy was not removed;\n"
"to delete it, use:"
@@ -19418,118 +19891,118 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: builtin/remote.c:901
+#: builtin/remote.c:926
#, c-format
msgid "Could not remove config section '%s'"
msgstr ""
-#: builtin/remote.c:1009
+#: builtin/remote.c:1034
#, c-format
msgid " new (next fetch will store in remotes/%s)"
msgstr ""
-#: builtin/remote.c:1012
+#: builtin/remote.c:1037
msgid " tracked"
msgstr ""
-#: builtin/remote.c:1014
+#: builtin/remote.c:1039
msgid " stale (use 'git remote prune' to remove)"
msgstr ""
-#: builtin/remote.c:1016
+#: builtin/remote.c:1041
msgid " ???"
msgstr ""
-#: builtin/remote.c:1057
+#: builtin/remote.c:1082
#, c-format
msgid "invalid branch.%s.merge; cannot rebase onto > 1 branch"
msgstr ""
-#: builtin/remote.c:1066
+#: builtin/remote.c:1091
#, c-format
msgid "rebases interactively onto remote %s"
msgstr ""
-#: builtin/remote.c:1068
+#: builtin/remote.c:1093
#, c-format
msgid "rebases interactively (with merges) onto remote %s"
msgstr ""
-#: builtin/remote.c:1071
+#: builtin/remote.c:1096
#, c-format
msgid "rebases onto remote %s"
msgstr ""
-#: builtin/remote.c:1075
+#: builtin/remote.c:1100
#, c-format
msgid " merges with remote %s"
msgstr ""
-#: builtin/remote.c:1078
+#: builtin/remote.c:1103
#, c-format
msgid "merges with remote %s"
msgstr ""
-#: builtin/remote.c:1081
+#: builtin/remote.c:1106
#, c-format
msgid "%-*s and with remote %s\n"
msgstr ""
-#: builtin/remote.c:1124
+#: builtin/remote.c:1149
msgid "create"
msgstr ""
-#: builtin/remote.c:1127
+#: builtin/remote.c:1152
msgid "delete"
msgstr ""
-#: builtin/remote.c:1131
+#: builtin/remote.c:1156
msgid "up to date"
msgstr ""
-#: builtin/remote.c:1134
+#: builtin/remote.c:1159
msgid "fast-forwardable"
msgstr ""
-#: builtin/remote.c:1137
+#: builtin/remote.c:1162
msgid "local out of date"
msgstr ""
-#: builtin/remote.c:1144
+#: builtin/remote.c:1169
#, c-format
msgid " %-*s forces to %-*s (%s)"
msgstr ""
-#: builtin/remote.c:1147
+#: builtin/remote.c:1172
#, c-format
msgid " %-*s pushes to %-*s (%s)"
msgstr ""
-#: builtin/remote.c:1151
+#: builtin/remote.c:1176
#, c-format
msgid " %-*s forces to %s"
msgstr ""
-#: builtin/remote.c:1154
+#: builtin/remote.c:1179
#, c-format
msgid " %-*s pushes to %s"
msgstr ""
-#: builtin/remote.c:1222
+#: builtin/remote.c:1247
msgid "do not query remotes"
msgstr ""
-#: builtin/remote.c:1243
+#: builtin/remote.c:1268
#, c-format
msgid "* remote %s"
msgstr ""
-#: builtin/remote.c:1244
+#: builtin/remote.c:1269
#, c-format
msgid " Fetch URL: %s"
msgstr ""
-#: builtin/remote.c:1245 builtin/remote.c:1261 builtin/remote.c:1398
+#: builtin/remote.c:1270 builtin/remote.c:1286 builtin/remote.c:1423
msgid "(no URL)"
msgstr ""
@@ -19537,331 +20010,331 @@ msgstr ""
#. with the one in " Fetch URL: %s"
#. translation.
#.
-#: builtin/remote.c:1259 builtin/remote.c:1261
+#: builtin/remote.c:1284 builtin/remote.c:1286
#, c-format
msgid " Push URL: %s"
msgstr ""
-#: builtin/remote.c:1263 builtin/remote.c:1265 builtin/remote.c:1267
+#: builtin/remote.c:1288 builtin/remote.c:1290 builtin/remote.c:1292
#, c-format
msgid " HEAD branch: %s"
msgstr ""
-#: builtin/remote.c:1263
+#: builtin/remote.c:1288
msgid "(not queried)"
msgstr ""
-#: builtin/remote.c:1265
+#: builtin/remote.c:1290
msgid "(unknown)"
msgstr ""
-#: builtin/remote.c:1269
+#: builtin/remote.c:1294
#, c-format
msgid ""
" HEAD branch (remote HEAD is ambiguous, may be one of the following):\n"
msgstr ""
-#: builtin/remote.c:1281
+#: builtin/remote.c:1306
#, c-format
msgid " Remote branch:%s"
msgid_plural " Remote branches:%s"
msgstr[0] ""
msgstr[1] ""
-#: builtin/remote.c:1284 builtin/remote.c:1310
+#: builtin/remote.c:1309 builtin/remote.c:1335
msgid " (status not queried)"
msgstr ""
-#: builtin/remote.c:1293
+#: builtin/remote.c:1318
msgid " Local branch configured for 'git pull':"
msgid_plural " Local branches configured for 'git pull':"
msgstr[0] ""
msgstr[1] ""
-#: builtin/remote.c:1301
+#: builtin/remote.c:1326
msgid " Local refs will be mirrored by 'git push'"
msgstr ""
-#: builtin/remote.c:1307
+#: builtin/remote.c:1332
#, c-format
msgid " Local ref configured for 'git push'%s:"
msgid_plural " Local refs configured for 'git push'%s:"
msgstr[0] ""
msgstr[1] ""
-#: builtin/remote.c:1328
+#: builtin/remote.c:1353
msgid "set refs/remotes/<name>/HEAD according to remote"
msgstr ""
-#: builtin/remote.c:1330
+#: builtin/remote.c:1355
msgid "delete refs/remotes/<name>/HEAD"
msgstr ""
-#: builtin/remote.c:1344
+#: builtin/remote.c:1369
msgid "Cannot determine remote HEAD"
msgstr ""
-#: builtin/remote.c:1346
+#: builtin/remote.c:1371
msgid "Multiple remote HEAD branches. Please choose one explicitly with:"
msgstr ""
-#: builtin/remote.c:1356
+#: builtin/remote.c:1381
#, c-format
msgid "Could not delete %s"
msgstr ""
-#: builtin/remote.c:1364
+#: builtin/remote.c:1389
#, c-format
msgid "Not a valid ref: %s"
msgstr ""
-#: builtin/remote.c:1366
+#: builtin/remote.c:1391
#, c-format
msgid "Could not setup %s"
msgstr ""
-#: builtin/remote.c:1384
+#: builtin/remote.c:1409
#, c-format
msgid " %s will become dangling!"
msgstr ""
-#: builtin/remote.c:1385
+#: builtin/remote.c:1410
#, c-format
msgid " %s has become dangling!"
msgstr ""
-#: builtin/remote.c:1394
+#: builtin/remote.c:1419
#, c-format
msgid "Pruning %s"
msgstr ""
-#: builtin/remote.c:1395
+#: builtin/remote.c:1420
#, c-format
msgid "URL: %s"
msgstr ""
-#: builtin/remote.c:1411
+#: builtin/remote.c:1436
#, c-format
msgid " * [would prune] %s"
msgstr ""
-#: builtin/remote.c:1414
+#: builtin/remote.c:1439
#, c-format
msgid " * [pruned] %s"
msgstr ""
-#: builtin/remote.c:1459
+#: builtin/remote.c:1484
msgid "prune remotes after fetching"
msgstr ""
-#: builtin/remote.c:1523 builtin/remote.c:1579 builtin/remote.c:1649
+#: builtin/remote.c:1548 builtin/remote.c:1604 builtin/remote.c:1674
#, c-format
msgid "No such remote '%s'"
msgstr ""
-#: builtin/remote.c:1541
+#: builtin/remote.c:1566
msgid "add branch"
msgstr ""
-#: builtin/remote.c:1548
+#: builtin/remote.c:1573
msgid "no remote specified"
msgstr ""
-#: builtin/remote.c:1565
+#: builtin/remote.c:1590
msgid "query push URLs rather than fetch URLs"
msgstr ""
-#: builtin/remote.c:1567
+#: builtin/remote.c:1592
msgid "return all URLs"
msgstr ""
-#: builtin/remote.c:1597
+#: builtin/remote.c:1622
#, c-format
msgid "no URLs configured for remote '%s'"
msgstr ""
-#: builtin/remote.c:1623
+#: builtin/remote.c:1648
msgid "manipulate push URLs"
msgstr ""
-#: builtin/remote.c:1625
+#: builtin/remote.c:1650
msgid "add URL"
msgstr ""
-#: builtin/remote.c:1627
+#: builtin/remote.c:1652
msgid "delete URLs"
msgstr ""
-#: builtin/remote.c:1634
+#: builtin/remote.c:1659
msgid "--add --delete doesn't make sense"
msgstr ""
-#: builtin/remote.c:1675
+#: builtin/remote.c:1700
#, c-format
msgid "Invalid old URL pattern: %s"
msgstr ""
-#: builtin/remote.c:1683
+#: builtin/remote.c:1708
#, c-format
msgid "No such URL found: %s"
msgstr ""
-#: builtin/remote.c:1685
+#: builtin/remote.c:1710
msgid "Will not delete all non-push URLs"
msgstr ""
-#: builtin/remote.c:1702
+#: builtin/remote.c:1727
msgid "be verbose; must be placed before a subcommand"
msgstr ""
-#: builtin/repack.c:28
+#: builtin/repack.c:29
msgid "git repack [<options>]"
msgstr ""
-#: builtin/repack.c:33
+#: builtin/repack.c:34
msgid ""
"Incremental repacks are incompatible with bitmap indexes. Use\n"
"--no-write-bitmap-index or disable the pack.writebitmaps configuration."
msgstr ""
-#: builtin/repack.c:201
+#: builtin/repack.c:206
msgid "could not start pack-objects to repack promisor objects"
msgstr ""
-#: builtin/repack.c:275 builtin/repack.c:820
+#: builtin/repack.c:280 builtin/repack.c:824
msgid "repack: Expecting full hex object ID lines only from pack-objects."
msgstr ""
-#: builtin/repack.c:299
+#: builtin/repack.c:304
msgid "could not finish pack-objects to repack promisor objects"
msgstr ""
-#: builtin/repack.c:314
+#: builtin/repack.c:319
#, c-format
msgid "cannot open index for %s"
msgstr ""
-#: builtin/repack.c:373
+#: builtin/repack.c:378
#, c-format
msgid "pack %s too large to consider in geometric progression"
msgstr ""
-#: builtin/repack.c:406 builtin/repack.c:413 builtin/repack.c:418
+#: builtin/repack.c:411 builtin/repack.c:418 builtin/repack.c:423
#, c-format
msgid "pack %s too large to roll up"
msgstr ""
-#: builtin/repack.c:498
+#: builtin/repack.c:503
#, c-format
msgid "could not open tempfile %s for writing"
msgstr ""
-#: builtin/repack.c:516
+#: builtin/repack.c:521
msgid "could not close refs snapshot tempfile"
msgstr ""
-#: builtin/repack.c:630
+#: builtin/repack.c:634
msgid "pack everything in a single pack"
msgstr ""
-#: builtin/repack.c:632
+#: builtin/repack.c:636
msgid "same as -a, and turn unreachable objects loose"
msgstr ""
-#: builtin/repack.c:635
+#: builtin/repack.c:639
msgid "remove redundant packs, and run git-prune-packed"
msgstr ""
-#: builtin/repack.c:637
+#: builtin/repack.c:641
msgid "pass --no-reuse-delta to git-pack-objects"
msgstr ""
-#: builtin/repack.c:639
+#: builtin/repack.c:643
msgid "pass --no-reuse-object to git-pack-objects"
msgstr ""
-#: builtin/repack.c:641
+#: builtin/repack.c:645
msgid "do not run git-update-server-info"
msgstr ""
-#: builtin/repack.c:644
+#: builtin/repack.c:648
msgid "pass --local to git-pack-objects"
msgstr ""
-#: builtin/repack.c:646
+#: builtin/repack.c:650
msgid "write bitmap index"
msgstr ""
-#: builtin/repack.c:648
+#: builtin/repack.c:652
msgid "pass --delta-islands to git-pack-objects"
msgstr ""
-#: builtin/repack.c:649
+#: builtin/repack.c:653
msgid "approxidate"
msgstr ""
-#: builtin/repack.c:650
+#: builtin/repack.c:654
msgid "with -A, do not loosen objects older than this"
msgstr ""
-#: builtin/repack.c:652
+#: builtin/repack.c:656
msgid "with -a, repack unreachable objects"
msgstr ""
-#: builtin/repack.c:654
+#: builtin/repack.c:658
msgid "size of the window used for delta compression"
msgstr ""
-#: builtin/repack.c:655 builtin/repack.c:661
+#: builtin/repack.c:659 builtin/repack.c:665
msgid "bytes"
msgstr ""
-#: builtin/repack.c:656
+#: builtin/repack.c:660
msgid "same as the above, but limit memory size instead of entries count"
msgstr ""
-#: builtin/repack.c:658
+#: builtin/repack.c:662
msgid "limits the maximum delta depth"
msgstr ""
-#: builtin/repack.c:660
+#: builtin/repack.c:664
msgid "limits the maximum number of threads"
msgstr ""
-#: builtin/repack.c:662
+#: builtin/repack.c:666
msgid "maximum size of each packfile"
msgstr ""
-#: builtin/repack.c:664
+#: builtin/repack.c:668
msgid "repack objects in packs marked with .keep"
msgstr ""
-#: builtin/repack.c:666
+#: builtin/repack.c:670
msgid "do not repack this pack"
msgstr ""
-#: builtin/repack.c:668
+#: builtin/repack.c:672
msgid "find a geometric progression with factor <N>"
msgstr ""
-#: builtin/repack.c:670
+#: builtin/repack.c:674
msgid "write a multi-pack index of the resulting packs"
msgstr ""
-#: builtin/repack.c:680
+#: builtin/repack.c:684
msgid "cannot delete packs in a precious-objects repo"
msgstr ""
-#: builtin/repack.c:829
+#: builtin/repack.c:833
msgid "Nothing new to pack."
msgstr ""
-#: builtin/repack.c:859
+#: builtin/repack.c:863
#, c-format
msgid "missing required file: %s"
msgstr ""
-#: builtin/repack.c:861
+#: builtin/repack.c:865
#, c-format
msgid "could not unlink: %s"
msgstr ""
@@ -19878,10 +20351,6 @@ msgstr ""
msgid "git replace [-f] --graft <commit> [<parent>...]"
msgstr ""
-#: builtin/replace.c:25
-msgid "git replace [-f] --convert-graft-file"
-msgstr ""
-
#: builtin/replace.c:26
msgid "git replace -d <object>..."
msgstr ""
@@ -20172,91 +20641,89 @@ msgstr ""
msgid "HEAD is now at %s"
msgstr ""
-#: builtin/reset.c:299
+#: builtin/reset.c:304
#, c-format
msgid "Cannot do a %s reset in the middle of a merge."
msgstr ""
-#: builtin/reset.c:396 builtin/stash.c:606 builtin/stash.c:680
-#: builtin/stash.c:704
+#: builtin/reset.c:402 builtin/stash.c:606 builtin/stash.c:669
+#: builtin/stash.c:693
msgid "be quiet, only report errors"
msgstr ""
-#: builtin/reset.c:398
+#: builtin/reset.c:404
+msgid "skip refreshing the index after reset"
+msgstr ""
+
+#: builtin/reset.c:406
msgid "reset HEAD and index"
msgstr ""
-#: builtin/reset.c:399
+#: builtin/reset.c:407
msgid "reset only HEAD"
msgstr ""
-#: builtin/reset.c:401 builtin/reset.c:403
+#: builtin/reset.c:409 builtin/reset.c:411
msgid "reset HEAD, index and working tree"
msgstr ""
-#: builtin/reset.c:405
+#: builtin/reset.c:413
msgid "reset HEAD but keep local changes"
msgstr ""
-#: builtin/reset.c:411
+#: builtin/reset.c:419
msgid "record only the fact that removed paths will be added later"
msgstr ""
-#: builtin/reset.c:445
+#: builtin/reset.c:452
#, c-format
msgid "Failed to resolve '%s' as a valid revision."
msgstr ""
-#: builtin/reset.c:453
+#: builtin/reset.c:460
#, c-format
msgid "Failed to resolve '%s' as a valid tree."
msgstr ""
-#: builtin/reset.c:472
+#: builtin/reset.c:479
msgid "--mixed with paths is deprecated; use 'git reset -- <paths>' instead."
msgstr ""
-#: builtin/reset.c:474
+#: builtin/reset.c:481
#, c-format
msgid "Cannot do %s reset with paths."
msgstr ""
-#: builtin/reset.c:489
+#: builtin/reset.c:496
#, c-format
msgid "%s reset is not allowed in a bare repository"
msgstr ""
-#: builtin/reset.c:520
+#: builtin/reset.c:527
msgid "Unstaged changes after reset:"
msgstr ""
-#: builtin/reset.c:523
+#: builtin/reset.c:530
#, c-format
msgid ""
-"\n"
-"It took %.2f seconds to enumerate unstaged changes after reset. You can\n"
-"use '--quiet' to avoid this. Set the config setting reset.quiet to true\n"
-"to make this the default.\n"
+"It took %.2f seconds to refresh the index after reset. You can use\n"
+"'--no-refresh' to avoid this."
msgstr ""
-#: builtin/reset.c:541
+#: builtin/reset.c:547
#, c-format
msgid "Could not reset index file to revision '%s'."
msgstr ""
-#: builtin/reset.c:546
+#: builtin/reset.c:552
msgid "Could not write new index file."
msgstr ""
-#: builtin/rev-list.c:602
-msgid "object filtering requires --objects"
-msgstr ""
-
-#: builtin/rev-list.c:674
+#: builtin/rev-list.c:659
msgid "rev-list does not support display of notes"
msgstr ""
-#: builtin/rev-list.c:679
+#: builtin/rev-list.c:664
#, c-format
msgid "marked counting and '%s' cannot be used together"
msgstr ""
@@ -20585,11 +21052,11 @@ msgstr ""
msgid "group by field"
msgstr ""
-#: builtin/shortlog.c:394
+#: builtin/shortlog.c:395
msgid "too many arguments given outside repository"
msgstr ""
-#: builtin/show-branch.c:13
+#: builtin/show-branch.c:14
msgid ""
"git show-branch [-a | --all] [-r | --remotes] [--topo-order | --date-order]\n"
" [--current] [--color[=<when>] | --no-color] [--sparse]\n"
@@ -20597,119 +21064,119 @@ msgid ""
" [--no-name | --sha1-name] [--topics] [(<rev> | <glob>)...]"
msgstr ""
-#: builtin/show-branch.c:17
+#: builtin/show-branch.c:18
msgid "git show-branch (-g | --reflog)[=<n>[,<base>]] [--list] [<ref>]"
msgstr ""
-#: builtin/show-branch.c:395
+#: builtin/show-branch.c:396
#, c-format
msgid "ignoring %s; cannot handle more than %d ref"
msgid_plural "ignoring %s; cannot handle more than %d refs"
msgstr[0] ""
msgstr[1] ""
-#: builtin/show-branch.c:547
+#: builtin/show-branch.c:548
#, c-format
msgid "no matching refs with %s"
msgstr ""
-#: builtin/show-branch.c:644
+#: builtin/show-branch.c:645
msgid "show remote-tracking and local branches"
msgstr ""
-#: builtin/show-branch.c:646
+#: builtin/show-branch.c:647
msgid "show remote-tracking branches"
msgstr ""
-#: builtin/show-branch.c:648
+#: builtin/show-branch.c:649
msgid "color '*!+-' corresponding to the branch"
msgstr ""
-#: builtin/show-branch.c:650
+#: builtin/show-branch.c:651
msgid "show <n> more commits after the common ancestor"
msgstr ""
-#: builtin/show-branch.c:652
+#: builtin/show-branch.c:653
msgid "synonym to more=-1"
msgstr ""
-#: builtin/show-branch.c:653
+#: builtin/show-branch.c:654
msgid "suppress naming strings"
msgstr ""
-#: builtin/show-branch.c:655
+#: builtin/show-branch.c:656
msgid "include the current branch"
msgstr ""
-#: builtin/show-branch.c:657
+#: builtin/show-branch.c:658
msgid "name commits with their object names"
msgstr ""
-#: builtin/show-branch.c:659
+#: builtin/show-branch.c:660
msgid "show possible merge bases"
msgstr ""
-#: builtin/show-branch.c:661
+#: builtin/show-branch.c:662
msgid "show refs unreachable from any other ref"
msgstr ""
-#: builtin/show-branch.c:663
+#: builtin/show-branch.c:664
msgid "show commits in topological order"
msgstr ""
-#: builtin/show-branch.c:666
+#: builtin/show-branch.c:667
msgid "show only commits not on the first branch"
msgstr ""
-#: builtin/show-branch.c:668
+#: builtin/show-branch.c:669
msgid "show merges reachable from only one tip"
msgstr ""
-#: builtin/show-branch.c:670
+#: builtin/show-branch.c:671
msgid "topologically sort, maintaining date order where possible"
msgstr ""
-#: builtin/show-branch.c:673
+#: builtin/show-branch.c:674
msgid "<n>[,<base>]"
msgstr ""
-#: builtin/show-branch.c:674
+#: builtin/show-branch.c:675
msgid "show <n> most recent ref-log entries starting at base"
msgstr ""
-#: builtin/show-branch.c:734
+#: builtin/show-branch.c:735
msgid "no branches given, and HEAD is not valid"
msgstr ""
-#: builtin/show-branch.c:737
+#: builtin/show-branch.c:738
msgid "--reflog option needs one branch name"
msgstr ""
-#: builtin/show-branch.c:740
+#: builtin/show-branch.c:741
#, c-format
msgid "only %d entry can be shown at one time."
msgid_plural "only %d entries can be shown at one time."
msgstr[0] ""
msgstr[1] ""
-#: builtin/show-branch.c:744
+#: builtin/show-branch.c:745
#, c-format
msgid "no such ref %s"
msgstr ""
-#: builtin/show-branch.c:830
+#: builtin/show-branch.c:831
#, c-format
msgid "cannot handle more than %d rev."
msgid_plural "cannot handle more than %d revs."
msgstr[0] ""
msgstr[1] ""
-#: builtin/show-branch.c:834
+#: builtin/show-branch.c:835
#, c-format
msgid "'%s' is not a valid ref."
msgstr ""
-#: builtin/show-branch.c:837
+#: builtin/show-branch.c:838
#, c-format
msgid "cannot find commit %s (%s)"
msgstr ""
@@ -20764,118 +21231,137 @@ msgstr ""
msgid "show refs from stdin that aren't in local repository"
msgstr ""
-#: builtin/sparse-checkout.c:22
+#: builtin/sparse-checkout.c:23
msgid "git sparse-checkout (init|list|set|add|reapply|disable) <options>"
msgstr ""
-#: builtin/sparse-checkout.c:46
-msgid "git sparse-checkout list"
-msgstr ""
-
-#: builtin/sparse-checkout.c:60
+#: builtin/sparse-checkout.c:61
msgid "this worktree is not sparse"
msgstr ""
-#: builtin/sparse-checkout.c:75
+#: builtin/sparse-checkout.c:76
msgid "this worktree is not sparse (sparse-checkout file may not exist)"
msgstr ""
-#: builtin/sparse-checkout.c:176
+#: builtin/sparse-checkout.c:177
#, c-format
msgid ""
"directory '%s' contains untracked files, but is not in the sparse-checkout "
"cone"
msgstr ""
-#: builtin/sparse-checkout.c:184
+#: builtin/sparse-checkout.c:185
#, c-format
msgid "failed to remove directory '%s'"
msgstr ""
-#: builtin/sparse-checkout.c:324
+#: builtin/sparse-checkout.c:327
msgid "failed to create directory for sparse-checkout file"
msgstr ""
-#: builtin/sparse-checkout.c:365
-msgid "unable to upgrade repository format to enable worktreeConfig"
-msgstr ""
-
-#: builtin/sparse-checkout.c:367
-msgid "failed to set extensions.worktreeConfig setting"
+#: builtin/sparse-checkout.c:366
+msgid "failed to initialize worktree config"
msgstr ""
#: builtin/sparse-checkout.c:411
msgid "failed to modify sparse-index config"
msgstr ""
-#: builtin/sparse-checkout.c:422
-msgid "git sparse-checkout init [--cone] [--[no-]sparse-index]"
-msgstr ""
-
-#: builtin/sparse-checkout.c:441 builtin/sparse-checkout.c:729
-#: builtin/sparse-checkout.c:778
+#: builtin/sparse-checkout.c:441 builtin/sparse-checkout.c:793
+#: builtin/sparse-checkout.c:847
msgid "initialize the sparse-checkout in cone mode"
msgstr ""
-#: builtin/sparse-checkout.c:443 builtin/sparse-checkout.c:731
-#: builtin/sparse-checkout.c:780
+#: builtin/sparse-checkout.c:443 builtin/sparse-checkout.c:795
+#: builtin/sparse-checkout.c:849
msgid "toggle the use of a sparse index"
msgstr ""
-#: builtin/sparse-checkout.c:476
+#: builtin/sparse-checkout.c:479
#, c-format
msgid "failed to open '%s'"
msgstr ""
-#: builtin/sparse-checkout.c:528
+#: builtin/sparse-checkout.c:531
#, c-format
msgid "could not normalize path %s"
msgstr ""
-#: builtin/sparse-checkout.c:557
+#: builtin/sparse-checkout.c:560
#, c-format
msgid "unable to unquote C-style string '%s'"
msgstr ""
-#: builtin/sparse-checkout.c:612 builtin/sparse-checkout.c:640
+#: builtin/sparse-checkout.c:615 builtin/sparse-checkout.c:643
msgid "unable to load existing sparse-checkout patterns"
msgstr ""
-#: builtin/sparse-checkout.c:616
+#: builtin/sparse-checkout.c:619
msgid "existing sparse-checkout patterns do not use cone mode"
msgstr ""
-#: builtin/sparse-checkout.c:682
-msgid "git sparse-checkout add (--stdin | <patterns>)"
+#: builtin/sparse-checkout.c:707
+msgid "please run from the toplevel directory in non-cone mode"
msgstr ""
-#: builtin/sparse-checkout.c:694 builtin/sparse-checkout.c:733
-msgid "read patterns from standard in"
+#: builtin/sparse-checkout.c:712
+msgid "specify directories rather than patterns (no leading slash)"
msgstr ""
-#: builtin/sparse-checkout.c:699
-msgid "no sparse-checkout to add to"
+#: builtin/sparse-checkout.c:714
+msgid ""
+"specify directories rather than patterns. If your directory starts with a "
+"'!', pass --skip-checks"
msgstr ""
-#: builtin/sparse-checkout.c:712
+#: builtin/sparse-checkout.c:716
msgid ""
-"git sparse-checkout set [--[no-]cone] [--[no-]sparse-index] (--stdin | "
-"<patterns>)"
+"specify directories rather than patterns. If your directory really has any "
+"of '*?[]\\' in it, pass --skip-checks"
msgstr ""
-#: builtin/sparse-checkout.c:765
-msgid "git sparse-checkout reapply [--[no-]cone] [--[no-]sparse-index]"
+#: builtin/sparse-checkout.c:732
+#, c-format
+msgid ""
+"'%s' is not a directory; to treat it as a directory anyway, rerun with --"
+"skip-checks"
msgstr ""
-#: builtin/sparse-checkout.c:785
-msgid "must be in a sparse-checkout to reapply sparsity patterns"
+#: builtin/sparse-checkout.c:734
+#, c-format
+msgid ""
+"pass a leading slash before paths such as '%s' if you want a single file "
+"(see NON-CONE PROBLEMS in the git-sparse-checkout manual)."
+msgstr ""
+
+#: builtin/sparse-checkout.c:739
+msgid "git sparse-checkout add [--skip-checks] (--stdin | <patterns>)"
+msgstr ""
+
+#: builtin/sparse-checkout.c:752 builtin/sparse-checkout.c:797
+msgid ""
+"skip some sanity checks on the given paths that might give false positives"
+msgstr ""
+
+#: builtin/sparse-checkout.c:755 builtin/sparse-checkout.c:800
+msgid "read patterns from standard in"
+msgstr ""
+
+#: builtin/sparse-checkout.c:760
+msgid "no sparse-checkout to add to"
+msgstr ""
+
+#: builtin/sparse-checkout.c:775
+msgid ""
+"git sparse-checkout set [--[no-]cone] [--[no-]sparse-index] [--skip-checks] "
+"(--stdin | <patterns>)"
msgstr ""
-#: builtin/sparse-checkout.c:803
-msgid "git sparse-checkout disable"
+#: builtin/sparse-checkout.c:854
+msgid "must be in a sparse-checkout to reapply sparsity patterns"
msgstr ""
-#: builtin/sparse-checkout.c:845
+#: builtin/sparse-checkout.c:914
msgid "error while refreshing working directory"
msgstr ""
@@ -21001,165 +21487,151 @@ msgstr ""
msgid "could not restore untracked files from stash"
msgstr ""
-#: builtin/stash.c:608 builtin/stash.c:706
+#: builtin/stash.c:608 builtin/stash.c:695
msgid "attempt to recreate the index"
msgstr ""
-#: builtin/stash.c:652
+#: builtin/stash.c:641
#, c-format
msgid "Dropped %s (%s)"
msgstr ""
-#: builtin/stash.c:655
+#: builtin/stash.c:644
#, c-format
msgid "%s: Could not drop stash entry"
msgstr ""
-#: builtin/stash.c:668
+#: builtin/stash.c:657
#, c-format
msgid "'%s' is not a stash reference"
msgstr ""
-#: builtin/stash.c:718
+#: builtin/stash.c:707
msgid "The stash entry is kept in case you need it again."
msgstr ""
-#: builtin/stash.c:741
+#: builtin/stash.c:730
msgid "No branch name specified"
msgstr ""
-#: builtin/stash.c:825
+#: builtin/stash.c:809
msgid "failed to parse tree"
msgstr ""
-#: builtin/stash.c:836
+#: builtin/stash.c:820
msgid "failed to unpack trees"
msgstr ""
-#: builtin/stash.c:856
+#: builtin/stash.c:840
msgid "include untracked files in the stash"
msgstr ""
-#: builtin/stash.c:859
+#: builtin/stash.c:843
msgid "only show untracked files in the stash"
msgstr ""
-#: builtin/stash.c:946 builtin/stash.c:983
+#: builtin/stash.c:930 builtin/stash.c:967
#, c-format
msgid "Cannot update %s with %s"
msgstr ""
-#: builtin/stash.c:964 builtin/stash.c:1678 builtin/stash.c:1750
+#: builtin/stash.c:948 builtin/stash.c:1667 builtin/stash.c:1739
msgid "stash message"
msgstr ""
-#: builtin/stash.c:974
+#: builtin/stash.c:958
msgid "\"git stash store\" requires one <commit> argument"
msgstr ""
-#: builtin/stash.c:1159
+#: builtin/stash.c:1143
msgid "No staged changes"
msgstr ""
-#: builtin/stash.c:1220
+#: builtin/stash.c:1204
msgid "No changes selected"
msgstr ""
-#: builtin/stash.c:1320
+#: builtin/stash.c:1304
msgid "You do not have the initial commit yet"
msgstr ""
-#: builtin/stash.c:1347
+#: builtin/stash.c:1331
msgid "Cannot save the current index state"
msgstr ""
-#: builtin/stash.c:1356
+#: builtin/stash.c:1340
msgid "Cannot save the untracked files"
msgstr ""
-#: builtin/stash.c:1367 builtin/stash.c:1386
+#: builtin/stash.c:1351 builtin/stash.c:1370
msgid "Cannot save the current worktree state"
msgstr ""
-#: builtin/stash.c:1377
+#: builtin/stash.c:1361
msgid "Cannot save the current staged state"
msgstr ""
-#: builtin/stash.c:1414
+#: builtin/stash.c:1398
msgid "Cannot record working tree state"
msgstr ""
-#: builtin/stash.c:1463
+#: builtin/stash.c:1447
msgid "Can't use --patch and --include-untracked or --all at the same time"
msgstr ""
-#: builtin/stash.c:1474
+#: builtin/stash.c:1458
msgid "Can't use --staged and --include-untracked or --all at the same time"
msgstr ""
-#: builtin/stash.c:1492
+#: builtin/stash.c:1476
msgid "Did you forget to 'git add'?"
msgstr ""
-#: builtin/stash.c:1507
+#: builtin/stash.c:1491
msgid "No local changes to save"
msgstr ""
-#: builtin/stash.c:1514
+#: builtin/stash.c:1498
msgid "Cannot initialize stash"
msgstr ""
-#: builtin/stash.c:1529
+#: builtin/stash.c:1513
msgid "Cannot save the current status"
msgstr ""
-#: builtin/stash.c:1534
+#: builtin/stash.c:1518
#, c-format
msgid "Saved working directory and index state %s"
msgstr ""
-#: builtin/stash.c:1627
+#: builtin/stash.c:1615
msgid "Cannot remove worktree changes"
msgstr ""
-#: builtin/stash.c:1667 builtin/stash.c:1739
+#: builtin/stash.c:1656 builtin/stash.c:1728
msgid "keep index"
msgstr ""
-#: builtin/stash.c:1669 builtin/stash.c:1741
+#: builtin/stash.c:1658 builtin/stash.c:1730
msgid "stash staged changes only"
msgstr ""
-#: builtin/stash.c:1671 builtin/stash.c:1743
+#: builtin/stash.c:1660 builtin/stash.c:1732
msgid "stash in patch mode"
msgstr ""
-#: builtin/stash.c:1672 builtin/stash.c:1744
+#: builtin/stash.c:1661 builtin/stash.c:1733
msgid "quiet mode"
msgstr ""
-#: builtin/stash.c:1674 builtin/stash.c:1746
+#: builtin/stash.c:1663 builtin/stash.c:1735
msgid "include untracked files in stash"
msgstr ""
-#: builtin/stash.c:1676 builtin/stash.c:1748
+#: builtin/stash.c:1665 builtin/stash.c:1737
msgid "include ignore files"
msgstr ""
-#: builtin/stash.c:1783
-msgid ""
-"the stash.useBuiltin support has been removed!\n"
-"See its entry in 'git help config' for details."
-msgstr ""
-
-#: builtin/stripspace.c:18
-msgid "git stripspace [-s | --strip-comments]"
-msgstr ""
-
-#: builtin/stripspace.c:19
-msgid "git stripspace [-c | --comment-lines]"
-msgstr ""
-
#: builtin/stripspace.c:37
msgid "skip and remove all lines starting with comment character"
msgstr ""
@@ -21168,54 +21640,50 @@ msgstr ""
msgid "prepend comment character and space to each line"
msgstr ""
-#: builtin/submodule--helper.c:46 builtin/submodule--helper.c:2668
+#: builtin/submodule--helper.c:50 builtin/submodule--helper.c:2486
#, c-format
msgid "Expecting a full ref name, got %s"
msgstr ""
-#: builtin/submodule--helper.c:63
-msgid "submodule--helper print-default-remote takes no arguments"
-msgstr ""
-
-#: builtin/submodule--helper.c:101
+#: builtin/submodule--helper.c:103
#, c-format
msgid "cannot strip one component off url '%s'"
msgstr ""
-#: builtin/submodule--helper.c:211
+#: builtin/submodule--helper.c:213
#, c-format
msgid ""
"could not look up configuration '%s'. Assuming this repository is its own "
"authoritative upstream."
msgstr ""
-#: builtin/submodule--helper.c:405 builtin/submodule--helper.c:1859
+#: builtin/submodule--helper.c:413 builtin/submodule--helper.c:1873
msgid "alternative anchor for relative paths"
msgstr ""
-#: builtin/submodule--helper.c:410
+#: builtin/submodule--helper.c:418
msgid "git submodule--helper list [--prefix=<path>] [<path>...]"
msgstr ""
-#: builtin/submodule--helper.c:468 builtin/submodule--helper.c:605
-#: builtin/submodule--helper.c:628
+#: builtin/submodule--helper.c:476 builtin/submodule--helper.c:617
+#: builtin/submodule--helper.c:640
#, c-format
msgid "No url found for submodule path '%s' in .gitmodules"
msgstr ""
-#: builtin/submodule--helper.c:520
+#: builtin/submodule--helper.c:528
#, c-format
msgid "Entering '%s'\n"
msgstr ""
-#: builtin/submodule--helper.c:523
+#: builtin/submodule--helper.c:531
#, c-format
msgid ""
"run_command returned non-zero status for %s\n"
"."
msgstr ""
-#: builtin/submodule--helper.c:545
+#: builtin/submodule--helper.c:553
#, c-format
msgid ""
"run_command returned non-zero status while recursing in the nested "
@@ -21223,209 +21691,209 @@ msgid ""
"."
msgstr ""
-#: builtin/submodule--helper.c:561
+#: builtin/submodule--helper.c:569
msgid "suppress output of entering each submodule command"
msgstr ""
-#: builtin/submodule--helper.c:563 builtin/submodule--helper.c:864
-#: builtin/submodule--helper.c:1453
+#: builtin/submodule--helper.c:571 builtin/submodule--helper.c:876
+#: builtin/submodule--helper.c:1458
msgid "recurse into nested submodules"
msgstr ""
-#: builtin/submodule--helper.c:568
+#: builtin/submodule--helper.c:576
msgid "git submodule--helper foreach [--quiet] [--recursive] [--] <command>"
msgstr ""
-#: builtin/submodule--helper.c:642
+#: builtin/submodule--helper.c:654
#, c-format
msgid "Failed to register url for submodule path '%s'"
msgstr ""
-#: builtin/submodule--helper.c:646
+#: builtin/submodule--helper.c:658
#, c-format
msgid "Submodule '%s' (%s) registered for path '%s'\n"
msgstr ""
-#: builtin/submodule--helper.c:656
+#: builtin/submodule--helper.c:668
#, c-format
msgid "warning: command update mode suggested for submodule '%s'\n"
msgstr ""
-#: builtin/submodule--helper.c:663
+#: builtin/submodule--helper.c:675
#, c-format
msgid "Failed to register update mode for submodule path '%s'"
msgstr ""
-#: builtin/submodule--helper.c:685
+#: builtin/submodule--helper.c:697
msgid "suppress output for initializing a submodule"
msgstr ""
-#: builtin/submodule--helper.c:690
+#: builtin/submodule--helper.c:702
msgid "git submodule--helper init [<options>] [<path>]"
msgstr ""
-#: builtin/submodule--helper.c:763 builtin/submodule--helper.c:898
+#: builtin/submodule--helper.c:775 builtin/submodule--helper.c:910
#, c-format
msgid "no submodule mapping found in .gitmodules for path '%s'"
msgstr ""
-#: builtin/submodule--helper.c:811
+#: builtin/submodule--helper.c:823
#, c-format
msgid "could not resolve HEAD ref inside the submodule '%s'"
msgstr ""
-#: builtin/submodule--helper.c:838 builtin/submodule--helper.c:1423
+#: builtin/submodule--helper.c:850 builtin/submodule--helper.c:1428
#, c-format
msgid "failed to recurse into submodule '%s'"
msgstr ""
-#: builtin/submodule--helper.c:862 builtin/submodule--helper.c:1590
+#: builtin/submodule--helper.c:874 builtin/submodule--helper.c:1595
msgid "suppress submodule status output"
msgstr ""
-#: builtin/submodule--helper.c:863
+#: builtin/submodule--helper.c:875
msgid ""
"use commit stored in the index instead of the one stored in the submodule "
"HEAD"
msgstr ""
-#: builtin/submodule--helper.c:869
+#: builtin/submodule--helper.c:881
msgid "git submodule status [--quiet] [--cached] [--recursive] [<path>...]"
msgstr ""
-#: builtin/submodule--helper.c:893
+#: builtin/submodule--helper.c:905
msgid "git submodule--helper name <path>"
msgstr ""
-#: builtin/submodule--helper.c:965
+#: builtin/submodule--helper.c:977
#, c-format
msgid "* %s %s(blob)->%s(submodule)"
msgstr ""
-#: builtin/submodule--helper.c:968
+#: builtin/submodule--helper.c:980
#, c-format
msgid "* %s %s(submodule)->%s(blob)"
msgstr ""
-#: builtin/submodule--helper.c:981
+#: builtin/submodule--helper.c:993
#, c-format
msgid "%s"
msgstr ""
-#: builtin/submodule--helper.c:1031
+#: builtin/submodule--helper.c:1043
#, c-format
msgid "couldn't hash object from '%s'"
msgstr ""
-#: builtin/submodule--helper.c:1035
+#: builtin/submodule--helper.c:1047
#, c-format
msgid "unexpected mode %o\n"
msgstr ""
-#: builtin/submodule--helper.c:1276
+#: builtin/submodule--helper.c:1288
msgid "use the commit stored in the index instead of the submodule HEAD"
msgstr ""
-#: builtin/submodule--helper.c:1278
+#: builtin/submodule--helper.c:1290
msgid "compare the commit in the index with that in the submodule HEAD"
msgstr ""
-#: builtin/submodule--helper.c:1280
+#: builtin/submodule--helper.c:1292
msgid "skip submodules with 'ignore_config' value set to 'all'"
msgstr ""
-#: builtin/submodule--helper.c:1282
+#: builtin/submodule--helper.c:1294
msgid "limit the summary size"
msgstr ""
-#: builtin/submodule--helper.c:1287
+#: builtin/submodule--helper.c:1299
msgid "git submodule--helper summary [<options>] [<commit>] [--] [<path>]"
msgstr ""
-#: builtin/submodule--helper.c:1311
+#: builtin/submodule--helper.c:1323
msgid "could not fetch a revision for HEAD"
msgstr ""
-#: builtin/submodule--helper.c:1373
+#: builtin/submodule--helper.c:1384
#, c-format
msgid "Synchronizing submodule url for '%s'\n"
msgstr ""
-#: builtin/submodule--helper.c:1379
+#: builtin/submodule--helper.c:1390
#, c-format
msgid "failed to register url for submodule path '%s'"
msgstr ""
-#: builtin/submodule--helper.c:1393
+#: builtin/submodule--helper.c:1399
#, c-format
msgid "failed to get the default remote for submodule '%s'"
msgstr ""
-#: builtin/submodule--helper.c:1404
+#: builtin/submodule--helper.c:1409
#, c-format
msgid "failed to update remote for submodule '%s'"
msgstr ""
-#: builtin/submodule--helper.c:1451
+#: builtin/submodule--helper.c:1456
msgid "suppress output of synchronizing submodule url"
msgstr ""
-#: builtin/submodule--helper.c:1458
+#: builtin/submodule--helper.c:1463
msgid "git submodule--helper sync [--quiet] [--recursive] [<path>]"
msgstr ""
-#: builtin/submodule--helper.c:1508
+#: builtin/submodule--helper.c:1513
#, c-format
msgid ""
"Submodule work tree '%s' contains a .git directory. This will be replaced "
"with a .git file by using absorbgitdirs."
msgstr ""
-#: builtin/submodule--helper.c:1525
+#: builtin/submodule--helper.c:1530
#, c-format
msgid ""
"Submodule work tree '%s' contains local modifications; use '-f' to discard "
"them"
msgstr ""
-#: builtin/submodule--helper.c:1533
+#: builtin/submodule--helper.c:1538
#, c-format
msgid "Cleared directory '%s'\n"
msgstr ""
-#: builtin/submodule--helper.c:1535
+#: builtin/submodule--helper.c:1540
#, c-format
msgid "Could not remove submodule work tree '%s'\n"
msgstr ""
-#: builtin/submodule--helper.c:1546
+#: builtin/submodule--helper.c:1551
#, c-format
msgid "could not create empty submodule directory %s"
msgstr ""
-#: builtin/submodule--helper.c:1562
+#: builtin/submodule--helper.c:1567
#, c-format
msgid "Submodule '%s' (%s) unregistered for path '%s'\n"
msgstr ""
-#: builtin/submodule--helper.c:1591
+#: builtin/submodule--helper.c:1596
msgid "remove submodule working trees even if they contain local changes"
msgstr ""
-#: builtin/submodule--helper.c:1592
+#: builtin/submodule--helper.c:1597
msgid "unregister all submodules"
msgstr ""
-#: builtin/submodule--helper.c:1597
+#: builtin/submodule--helper.c:1602
msgid ""
"git submodule deinit [--quiet] [-f | --force] [--all | [--] [<path>...]]"
msgstr ""
-#: builtin/submodule--helper.c:1611
+#: builtin/submodule--helper.c:1616
msgid "Use '--all' if you really want to deinitialize all submodules"
msgstr ""
-#: builtin/submodule--helper.c:1656
+#: builtin/submodule--helper.c:1665
msgid ""
"An alternate computed from a superproject's alternate is invalid.\n"
"To allow Git to clone without an alternate in such a case, set\n"
@@ -21433,98 +21901,98 @@ msgid ""
"'--reference-if-able' instead of '--reference'."
msgstr ""
-#: builtin/submodule--helper.c:1701 builtin/submodule--helper.c:1704
+#: builtin/submodule--helper.c:1710 builtin/submodule--helper.c:1713
#, c-format
msgid "submodule '%s' cannot add alternate: %s"
msgstr ""
-#: builtin/submodule--helper.c:1740
+#: builtin/submodule--helper.c:1749
#, c-format
msgid "Value '%s' for submodule.alternateErrorStrategy is not recognized"
msgstr ""
-#: builtin/submodule--helper.c:1747
+#: builtin/submodule--helper.c:1756
#, c-format
msgid "Value '%s' for submodule.alternateLocation is not recognized"
msgstr ""
-#: builtin/submodule--helper.c:1772
+#: builtin/submodule--helper.c:1781
#, c-format
msgid "refusing to create/use '%s' in another submodule's git dir"
msgstr ""
-#: builtin/submodule--helper.c:1813
+#: builtin/submodule--helper.c:1826
#, c-format
msgid "clone of '%s' into submodule path '%s' failed"
msgstr ""
-#: builtin/submodule--helper.c:1818
+#: builtin/submodule--helper.c:1831
#, c-format
msgid "directory not empty: '%s'"
msgstr ""
-#: builtin/submodule--helper.c:1830
+#: builtin/submodule--helper.c:1843
#, c-format
msgid "could not get submodule directory for '%s'"
msgstr ""
-#: builtin/submodule--helper.c:1862
+#: builtin/submodule--helper.c:1876
msgid "where the new submodule will be cloned to"
msgstr ""
-#: builtin/submodule--helper.c:1865
+#: builtin/submodule--helper.c:1879
msgid "name of the new submodule"
msgstr ""
-#: builtin/submodule--helper.c:1868
+#: builtin/submodule--helper.c:1882
msgid "url where to clone the submodule from"
msgstr ""
-#: builtin/submodule--helper.c:1876 builtin/submodule--helper.c:3265
+#: builtin/submodule--helper.c:1890 builtin/submodule--helper.c:3383
msgid "depth for shallow clones"
msgstr ""
-#: builtin/submodule--helper.c:1879 builtin/submodule--helper.c:2526
-#: builtin/submodule--helper.c:3258
+#: builtin/submodule--helper.c:1893 builtin/submodule--helper.c:2731
+#: builtin/submodule--helper.c:3376
msgid "force cloning progress"
msgstr ""
-#: builtin/submodule--helper.c:1881 builtin/submodule--helper.c:2528
+#: builtin/submodule--helper.c:1895 builtin/submodule--helper.c:2733
msgid "disallow cloning into non-empty directory"
msgstr ""
-#: builtin/submodule--helper.c:1888
+#: builtin/submodule--helper.c:1903
msgid ""
"git submodule--helper clone [--prefix=<path>] [--quiet] [--reference "
-"<repository>] [--name <name>] [--depth <depth>] [--single-branch] --url "
-"<url> --path <path>"
+"<repository>] [--name <name>] [--depth <depth>] [--single-branch] [--filter "
+"<filter-spec>] --url <url> --path <path>"
msgstr ""
-#: builtin/submodule--helper.c:1925
+#: builtin/submodule--helper.c:1943
#, c-format
msgid "Invalid update mode '%s' for submodule path '%s'"
msgstr ""
-#: builtin/submodule--helper.c:1929
+#: builtin/submodule--helper.c:1947
#, c-format
msgid "Invalid update mode '%s' configured for submodule path '%s'"
msgstr ""
-#: builtin/submodule--helper.c:2044
+#: builtin/submodule--helper.c:2041
#, c-format
msgid "Submodule path '%s' not initialized"
msgstr ""
-#: builtin/submodule--helper.c:2048
+#: builtin/submodule--helper.c:2045
msgid "Maybe you want to use 'update --init'?"
msgstr ""
-#: builtin/submodule--helper.c:2078
+#: builtin/submodule--helper.c:2075
#, c-format
msgid "Skipping unmerged submodule %s"
msgstr ""
-#: builtin/submodule--helper.c:2107
+#: builtin/submodule--helper.c:2104
#, c-format
msgid "Skipping submodule '%s'"
msgstr ""
@@ -21539,225 +22007,247 @@ msgstr ""
msgid "Failed to clone '%s' a second time, aborting"
msgstr ""
-#: builtin/submodule--helper.c:2373
+#: builtin/submodule--helper.c:2371
#, c-format
msgid "Unable to checkout '%s' in submodule path '%s'"
msgstr ""
-#: builtin/submodule--helper.c:2377
+#: builtin/submodule--helper.c:2375
#, c-format
msgid "Unable to rebase '%s' in submodule path '%s'"
msgstr ""
-#: builtin/submodule--helper.c:2381
+#: builtin/submodule--helper.c:2379
#, c-format
msgid "Unable to merge '%s' in submodule path '%s'"
msgstr ""
-#: builtin/submodule--helper.c:2385
+#: builtin/submodule--helper.c:2383
#, c-format
msgid "Execution of '%s %s' failed in submodule path '%s'"
msgstr ""
-#: builtin/submodule--helper.c:2409
+#: builtin/submodule--helper.c:2402
#, c-format
msgid "Submodule path '%s': checked out '%s'\n"
msgstr ""
-#: builtin/submodule--helper.c:2413
+#: builtin/submodule--helper.c:2406
#, c-format
msgid "Submodule path '%s': rebased into '%s'\n"
msgstr ""
-#: builtin/submodule--helper.c:2417
+#: builtin/submodule--helper.c:2410
#, c-format
msgid "Submodule path '%s': merged in '%s'\n"
msgstr ""
-#: builtin/submodule--helper.c:2421
+#: builtin/submodule--helper.c:2414
#, c-format
msgid "Submodule path '%s': '%s %s'\n"
msgstr ""
-#: builtin/submodule--helper.c:2445
+#: builtin/submodule--helper.c:2438
#, c-format
msgid "Unable to fetch in submodule path '%s'; trying to directly fetch %s:"
msgstr ""
-#: builtin/submodule--helper.c:2454
+#: builtin/submodule--helper.c:2447
#, c-format
msgid ""
"Fetched in submodule path '%s', but it did not contain %s. Direct fetching "
"of that commit failed."
msgstr ""
-#: builtin/submodule--helper.c:2505 builtin/submodule--helper.c:2575
-#: builtin/submodule--helper.c:2813
-msgid "path into the working tree"
-msgstr ""
-
-#: builtin/submodule--helper.c:2508 builtin/submodule--helper.c:2580
-msgid "path into the working tree, across nested submodule boundaries"
+#: builtin/submodule--helper.c:2481
+#, c-format
+msgid ""
+"Submodule (%s) branch configured to inherit branch from superproject, but "
+"the superproject is not on any branch"
msgstr ""
-#: builtin/submodule--helper.c:2512 builtin/submodule--helper.c:2578
-msgid "rebase, merge, checkout or none"
+#: builtin/submodule--helper.c:2499
+#, c-format
+msgid "could not get a repository handle for submodule '%s'"
msgstr ""
-#: builtin/submodule--helper.c:2518
-msgid "create a shallow clone truncated to the specified number of revisions"
+#: builtin/submodule--helper.c:2588
+#, c-format
+msgid "Unable to find current revision in submodule path '%s'"
msgstr ""
-#: builtin/submodule--helper.c:2521
-msgid "parallel jobs"
+#: builtin/submodule--helper.c:2599
+#, c-format
+msgid "Unable to fetch in submodule path '%s'"
msgstr ""
-#: builtin/submodule--helper.c:2523
-msgid "whether the initial clone should follow the shallow recommendation"
+#: builtin/submodule--helper.c:2604
+#, c-format
+msgid "Unable to find %s revision in submodule path '%s'"
msgstr ""
-#: builtin/submodule--helper.c:2524
-msgid "don't print cloning progress"
+#: builtin/submodule--helper.c:2640
+#, c-format
+msgid "Failed to recurse into submodule path '%s'"
msgstr ""
-#: builtin/submodule--helper.c:2535
-msgid "git submodule--helper update-clone [--prefix=<path>] [<path>...]"
+#: builtin/submodule--helper.c:2699
+msgid "force checkout updates"
msgstr ""
-#: builtin/submodule--helper.c:2548
-msgid "bad value for update parameter"
+#: builtin/submodule--helper.c:2701
+msgid "initialize uninitialized submodules before update"
msgstr ""
-#: builtin/submodule--helper.c:2566
-msgid "suppress output for update by rebase or merge"
+#: builtin/submodule--helper.c:2703
+msgid "use SHA-1 of submodule's remote tracking branch"
msgstr ""
-#: builtin/submodule--helper.c:2567
-msgid "force checkout updates"
+#: builtin/submodule--helper.c:2705
+msgid "traverse submodules recursively"
msgstr ""
-#: builtin/submodule--helper.c:2569
+#: builtin/submodule--helper.c:2707
msgid "don't fetch new objects from the remote site"
msgstr ""
-#: builtin/submodule--helper.c:2571
-msgid "overrides update mode in case the repository is a fresh clone"
+#: builtin/submodule--helper.c:2710 builtin/submodule--helper.c:2892
+msgid "path into the working tree"
msgstr ""
-#: builtin/submodule--helper.c:2572
-msgid "depth for shallow fetch"
+#: builtin/submodule--helper.c:2713
+msgid "path into the working tree, across nested submodule boundaries"
msgstr ""
-#: builtin/submodule--helper.c:2582
-msgid "sha1"
+#: builtin/submodule--helper.c:2717
+msgid "rebase, merge, checkout or none"
msgstr ""
-#: builtin/submodule--helper.c:2583
-msgid "SHA1 expected by superproject"
+#: builtin/submodule--helper.c:2723
+msgid "create a shallow clone truncated to the specified number of revisions"
msgstr ""
-#: builtin/submodule--helper.c:2585
-msgid "subsha1"
+#: builtin/submodule--helper.c:2726
+msgid "parallel jobs"
msgstr ""
-#: builtin/submodule--helper.c:2586
-msgid "SHA1 of submodule's HEAD"
+#: builtin/submodule--helper.c:2728
+msgid "whether the initial clone should follow the shallow recommendation"
msgstr ""
-#: builtin/submodule--helper.c:2592
-msgid "git submodule--helper run-update-procedure [<options>] <path>"
+#: builtin/submodule--helper.c:2729
+msgid "don't print cloning progress"
msgstr ""
-#: builtin/submodule--helper.c:2663
-#, c-format
+#: builtin/submodule--helper.c:2741
msgid ""
-"Submodule (%s) branch configured to inherit branch from superproject, but "
-"the superproject is not on any branch"
+"git submodule [--quiet] update [--init [--filter=<filter-spec>]] [--remote] "
+"[-N|--no-fetch] [-f|--force] [--checkout|--merge|--rebase] [--[no-]recommend-"
+"shallow] [--reference <repository>] [--recursive] [--[no-]single-branch] "
+"[--] [<path>...]"
msgstr ""
-#: builtin/submodule--helper.c:2781
-#, c-format
-msgid "could not get a repository handle for submodule '%s'"
+#: builtin/submodule--helper.c:2767
+msgid "bad value for update parameter"
msgstr ""
-#: builtin/submodule--helper.c:2814
+#: builtin/submodule--helper.c:2893
msgid "recurse into submodules"
msgstr ""
-#: builtin/submodule--helper.c:2820
+#: builtin/submodule--helper.c:2899
msgid "git submodule--helper absorb-git-dirs [<options>] [<path>...]"
msgstr ""
-#: builtin/submodule--helper.c:2876
+#: builtin/submodule--helper.c:2955
msgid "check if it is safe to write to the .gitmodules file"
msgstr ""
-#: builtin/submodule--helper.c:2879
+#: builtin/submodule--helper.c:2958
msgid "unset the config in the .gitmodules file"
msgstr ""
-#: builtin/submodule--helper.c:2884
+#: builtin/submodule--helper.c:2963
msgid "git submodule--helper config <name> [<value>]"
msgstr ""
-#: builtin/submodule--helper.c:2885
+#: builtin/submodule--helper.c:2964
msgid "git submodule--helper config --unset <name>"
msgstr ""
-#: builtin/submodule--helper.c:2886
-msgid "git submodule--helper config --check-writeable"
-msgstr ""
-
-#: builtin/submodule--helper.c:2905 builtin/submodule--helper.c:3121
-#: builtin/submodule--helper.c:3277
+#: builtin/submodule--helper.c:2984 builtin/submodule--helper.c:3238
+#: builtin/submodule--helper.c:3395
msgid "please make sure that the .gitmodules file is in the working tree"
msgstr ""
-#: builtin/submodule--helper.c:2921
+#: builtin/submodule--helper.c:3000
msgid "suppress output for setting url of a submodule"
msgstr ""
-#: builtin/submodule--helper.c:2925
+#: builtin/submodule--helper.c:3004
msgid "git submodule--helper set-url [--quiet] <path> <newurl>"
msgstr ""
-#: builtin/submodule--helper.c:2958
+#: builtin/submodule--helper.c:3037
msgid "set the default tracking branch to master"
msgstr ""
-#: builtin/submodule--helper.c:2960
+#: builtin/submodule--helper.c:3039
msgid "set the default tracking branch"
msgstr ""
-#: builtin/submodule--helper.c:2964
+#: builtin/submodule--helper.c:3043
msgid "git submodule--helper set-branch [-q|--quiet] (-d|--default) <path>"
msgstr ""
-#: builtin/submodule--helper.c:2965
+#: builtin/submodule--helper.c:3044
msgid ""
"git submodule--helper set-branch [-q|--quiet] (-b|--branch) <branch> <path>"
msgstr ""
-#: builtin/submodule--helper.c:2972
+#: builtin/submodule--helper.c:3051
msgid "--branch or --default required"
msgstr ""
-#: builtin/submodule--helper.c:3038
+#: builtin/submodule--helper.c:3072 builtin/submodule--helper.c:3375
+msgid "print only error messages"
+msgstr ""
+
+#: builtin/submodule--helper.c:3073
+msgid "force creation"
+msgstr ""
+
+#: builtin/submodule--helper.c:3081
+msgid "show whether the branch would be created"
+msgstr ""
+
+#: builtin/submodule--helper.c:3085
+msgid ""
+"git submodule--helper create-branch [-f|--force] [--create-reflog] [-q|--"
+"quiet] [-t|--track] [-n|--dry-run] <name> <start-oid> <start-name>"
+msgstr ""
+
+#: builtin/submodule--helper.c:3097
+#, c-format
+msgid "creating branch '%s'"
+msgstr ""
+
+#: builtin/submodule--helper.c:3155
#, c-format
msgid "Adding existing repo at '%s' to the index\n"
msgstr ""
-#: builtin/submodule--helper.c:3041
+#: builtin/submodule--helper.c:3158
#, c-format
msgid "'%s' already exists and is not a valid git repo"
msgstr ""
-#: builtin/submodule--helper.c:3054
+#: builtin/submodule--helper.c:3171
#, c-format
msgid "A git directory for '%s' is found locally with remote(s):\n"
msgstr ""
-#: builtin/submodule--helper.c:3061
+#: builtin/submodule--helper.c:3178
#, c-format
msgid ""
"If you want to reuse this local git directory instead of cloning again from\n"
@@ -21768,83 +22258,79 @@ msgid ""
"option."
msgstr ""
-#: builtin/submodule--helper.c:3073
+#: builtin/submodule--helper.c:3190
#, c-format
msgid "Reactivating local git directory for submodule '%s'\n"
msgstr ""
-#: builtin/submodule--helper.c:3110
+#: builtin/submodule--helper.c:3227
#, c-format
msgid "unable to checkout submodule '%s'"
msgstr ""
-#: builtin/submodule--helper.c:3149
+#: builtin/submodule--helper.c:3266
#, c-format
msgid "Failed to add submodule '%s'"
msgstr ""
-#: builtin/submodule--helper.c:3153 builtin/submodule--helper.c:3158
-#: builtin/submodule--helper.c:3166
+#: builtin/submodule--helper.c:3270 builtin/submodule--helper.c:3275
+#: builtin/submodule--helper.c:3283
#, c-format
msgid "Failed to register submodule '%s'"
msgstr ""
-#: builtin/submodule--helper.c:3222
+#: builtin/submodule--helper.c:3339
#, c-format
msgid "'%s' already exists in the index"
msgstr ""
-#: builtin/submodule--helper.c:3225
+#: builtin/submodule--helper.c:3342
#, c-format
msgid "'%s' already exists in the index and is not a submodule"
msgstr ""
-#: builtin/submodule--helper.c:3254
+#: builtin/submodule--helper.c:3372
msgid "branch of repository to add as submodule"
msgstr ""
-#: builtin/submodule--helper.c:3255
+#: builtin/submodule--helper.c:3373
msgid "allow adding an otherwise ignored submodule path"
msgstr ""
-#: builtin/submodule--helper.c:3257
-msgid "print only error messages"
-msgstr ""
-
-#: builtin/submodule--helper.c:3261
+#: builtin/submodule--helper.c:3379
msgid "borrow the objects from reference repositories"
msgstr ""
-#: builtin/submodule--helper.c:3263
+#: builtin/submodule--helper.c:3381
msgid ""
"sets the submodule’s name to the given string instead of defaulting to its "
"path"
msgstr ""
-#: builtin/submodule--helper.c:3270
+#: builtin/submodule--helper.c:3388
msgid "git submodule--helper add [<options>] [--] <repository> [<path>]"
msgstr ""
-#: builtin/submodule--helper.c:3298
+#: builtin/submodule--helper.c:3416
msgid "Relative path can only be used from the toplevel of the working tree"
msgstr ""
-#: builtin/submodule--helper.c:3306
+#: builtin/submodule--helper.c:3425
#, c-format
msgid "repo URL: '%s' must be absolute or begin with ./|../"
msgstr ""
-#: builtin/submodule--helper.c:3341
+#: builtin/submodule--helper.c:3460
#, c-format
msgid "'%s' is not a valid submodule name"
msgstr ""
-#: builtin/submodule--helper.c:3405 git.c:452 git.c:726
+#: builtin/submodule--helper.c:3520 git.c:453 git.c:729
#, c-format
msgid "%s doesn't support --super-prefix"
msgstr ""
-#: builtin/submodule--helper.c:3411
+#: builtin/submodule--helper.c:3526
#, c-format
msgid "'%s' is not a valid submodule--helper subcommand"
msgstr ""
@@ -21877,17 +22363,17 @@ msgstr ""
msgid "reason of the update"
msgstr ""
-#: builtin/tag.c:25
+#: builtin/tag.c:26
msgid ""
"git tag [-a | -s | -u <key-id>] [-f] [-m <msg> | -F <file>]\n"
" <tagname> [<head>]"
msgstr ""
-#: builtin/tag.c:27
+#: builtin/tag.c:28
msgid "git tag -d <tagname>..."
msgstr ""
-#: builtin/tag.c:28
+#: builtin/tag.c:29
msgid ""
"git tag -l [-n[<num>]] [--contains <commit>] [--no-contains <commit>] [--"
"points-at <object>]\n"
@@ -21895,21 +22381,21 @@ msgid ""
"[<pattern>...]"
msgstr ""
-#: builtin/tag.c:30
+#: builtin/tag.c:31
msgid "git tag -v [--format=<format>] <tagname>..."
msgstr ""
-#: builtin/tag.c:100
+#: builtin/tag.c:101
#, c-format
msgid "tag '%s' not found."
msgstr ""
-#: builtin/tag.c:135
+#: builtin/tag.c:136
#, c-format
msgid "Deleted tag '%s' (was %s)\n"
msgstr ""
-#: builtin/tag.c:170
+#: builtin/tag.c:171
#, c-format
msgid ""
"\n"
@@ -21918,7 +22404,7 @@ msgid ""
"Lines starting with '%c' will be ignored.\n"
msgstr ""
-#: builtin/tag.c:174
+#: builtin/tag.c:175
#, c-format
msgid ""
"\n"
@@ -21928,11 +22414,11 @@ msgid ""
"want to.\n"
msgstr ""
-#: builtin/tag.c:240
+#: builtin/tag.c:241
msgid "unable to sign the tag"
msgstr ""
-#: builtin/tag.c:258
+#: builtin/tag.c:259
#, c-format
msgid ""
"You have created a nested tag. The object referred to by your new tag is\n"
@@ -21941,115 +22427,119 @@ msgid ""
"\tgit tag -f %s %s^{}"
msgstr ""
-#: builtin/tag.c:274
+#: builtin/tag.c:275
msgid "bad object type."
msgstr ""
-#: builtin/tag.c:325
+#: builtin/tag.c:326
msgid "no tag message?"
msgstr ""
-#: builtin/tag.c:332
+#: builtin/tag.c:333
#, c-format
msgid "The tag message has been left in %s\n"
msgstr ""
-#: builtin/tag.c:444
+#: builtin/tag.c:445
msgid "list tag names"
msgstr ""
-#: builtin/tag.c:446
+#: builtin/tag.c:447
msgid "print <n> lines of each tag message"
msgstr ""
-#: builtin/tag.c:448
+#: builtin/tag.c:449
msgid "delete tags"
msgstr ""
-#: builtin/tag.c:449
+#: builtin/tag.c:450
msgid "verify tags"
msgstr ""
-#: builtin/tag.c:451
+#: builtin/tag.c:452
msgid "Tag creation options"
msgstr ""
-#: builtin/tag.c:453
+#: builtin/tag.c:454
msgid "annotated tag, needs a message"
msgstr ""
-#: builtin/tag.c:455
+#: builtin/tag.c:456
msgid "tag message"
msgstr ""
-#: builtin/tag.c:457
+#: builtin/tag.c:458
msgid "force edit of tag message"
msgstr ""
-#: builtin/tag.c:458
+#: builtin/tag.c:459
msgid "annotated and GPG-signed tag"
msgstr ""
-#: builtin/tag.c:461
+#: builtin/tag.c:462
msgid "use another key to sign the tag"
msgstr ""
-#: builtin/tag.c:462
+#: builtin/tag.c:463
msgid "replace the tag if exists"
msgstr ""
-#: builtin/tag.c:463 builtin/update-ref.c:511
+#: builtin/tag.c:464 builtin/update-ref.c:511
msgid "create a reflog"
msgstr ""
-#: builtin/tag.c:465
+#: builtin/tag.c:466
msgid "Tag listing options"
msgstr ""
-#: builtin/tag.c:466
+#: builtin/tag.c:467
msgid "show tag list in columns"
msgstr ""
-#: builtin/tag.c:467 builtin/tag.c:469
+#: builtin/tag.c:468 builtin/tag.c:470
msgid "print only tags that contain the commit"
msgstr ""
-#: builtin/tag.c:468 builtin/tag.c:470
+#: builtin/tag.c:469 builtin/tag.c:471
msgid "print only tags that don't contain the commit"
msgstr ""
-#: builtin/tag.c:471
+#: builtin/tag.c:472
msgid "print only tags that are merged"
msgstr ""
-#: builtin/tag.c:472
+#: builtin/tag.c:473
msgid "print only tags that are not merged"
msgstr ""
-#: builtin/tag.c:476
+#: builtin/tag.c:477
msgid "print only tags of the object"
msgstr ""
-#: builtin/tag.c:558
+#: builtin/tag.c:559
#, c-format
msgid "the '%s' option is only allowed in list mode"
msgstr ""
-#: builtin/tag.c:597
+#: builtin/tag.c:598
#, c-format
msgid "'%s' is not a valid tag name."
msgstr ""
-#: builtin/tag.c:602
+#: builtin/tag.c:603
#, c-format
msgid "tag '%s' already exists"
msgstr ""
-#: builtin/tag.c:633
+#: builtin/tag.c:634
#, c-format
msgid "Updated tag '%s' (was %s)\n"
msgstr ""
+#: builtin/unpack-objects.c:95
+msgid "pack exceeds maximum allowed size"
+msgstr ""
+
#: builtin/unpack-objects.c:504
msgid "Unpacking objects"
msgstr ""
@@ -22106,189 +22596,189 @@ msgstr ""
msgid "git update-index [<options>] [--] [<file>...]"
msgstr ""
-#: builtin/update-index.c:974
+#: builtin/update-index.c:993
msgid "continue refresh even when index needs update"
msgstr ""
-#: builtin/update-index.c:977
+#: builtin/update-index.c:996
msgid "refresh: ignore submodules"
msgstr ""
-#: builtin/update-index.c:980
+#: builtin/update-index.c:999
msgid "do not ignore new files"
msgstr ""
-#: builtin/update-index.c:982
+#: builtin/update-index.c:1001
msgid "let files replace directories and vice-versa"
msgstr ""
-#: builtin/update-index.c:984
+#: builtin/update-index.c:1003
msgid "notice files missing from worktree"
msgstr ""
-#: builtin/update-index.c:986
+#: builtin/update-index.c:1005
msgid "refresh even if index contains unmerged entries"
msgstr ""
-#: builtin/update-index.c:989
+#: builtin/update-index.c:1008
msgid "refresh stat information"
msgstr ""
-#: builtin/update-index.c:993
+#: builtin/update-index.c:1012
msgid "like --refresh, but ignore assume-unchanged setting"
msgstr ""
-#: builtin/update-index.c:997
+#: builtin/update-index.c:1016
msgid "<mode>,<object>,<path>"
msgstr ""
-#: builtin/update-index.c:998
+#: builtin/update-index.c:1017
msgid "add the specified entry to the index"
msgstr ""
-#: builtin/update-index.c:1008
+#: builtin/update-index.c:1027
msgid "mark files as \"not changing\""
msgstr ""
-#: builtin/update-index.c:1011
+#: builtin/update-index.c:1030
msgid "clear assumed-unchanged bit"
msgstr ""
-#: builtin/update-index.c:1014
+#: builtin/update-index.c:1033
msgid "mark files as \"index-only\""
msgstr ""
-#: builtin/update-index.c:1017
+#: builtin/update-index.c:1036
msgid "clear skip-worktree bit"
msgstr ""
-#: builtin/update-index.c:1020
+#: builtin/update-index.c:1039
msgid "do not touch index-only entries"
msgstr ""
-#: builtin/update-index.c:1022
+#: builtin/update-index.c:1041
msgid "add to index only; do not add content to object database"
msgstr ""
-#: builtin/update-index.c:1024
+#: builtin/update-index.c:1043
msgid "remove named paths even if present in worktree"
msgstr ""
-#: builtin/update-index.c:1026
+#: builtin/update-index.c:1045
msgid "with --stdin: input lines are terminated by null bytes"
msgstr ""
-#: builtin/update-index.c:1028
+#: builtin/update-index.c:1047
msgid "read list of paths to be updated from standard input"
msgstr ""
-#: builtin/update-index.c:1032
+#: builtin/update-index.c:1051
msgid "add entries from standard input to the index"
msgstr ""
-#: builtin/update-index.c:1036
+#: builtin/update-index.c:1055
msgid "repopulate stages #2 and #3 for the listed paths"
msgstr ""
-#: builtin/update-index.c:1040
+#: builtin/update-index.c:1059
msgid "only update entries that differ from HEAD"
msgstr ""
-#: builtin/update-index.c:1044
+#: builtin/update-index.c:1063
msgid "ignore files missing from worktree"
msgstr ""
-#: builtin/update-index.c:1047
+#: builtin/update-index.c:1066
msgid "report actions to standard output"
msgstr ""
-#: builtin/update-index.c:1049
+#: builtin/update-index.c:1068
msgid "(for porcelains) forget saved unresolved conflicts"
msgstr ""
-#: builtin/update-index.c:1053
+#: builtin/update-index.c:1072
msgid "write index in this format"
msgstr ""
-#: builtin/update-index.c:1055
+#: builtin/update-index.c:1074
msgid "enable or disable split index"
msgstr ""
-#: builtin/update-index.c:1057
+#: builtin/update-index.c:1076
msgid "enable/disable untracked cache"
msgstr ""
-#: builtin/update-index.c:1059
+#: builtin/update-index.c:1078
msgid "test if the filesystem supports untracked cache"
msgstr ""
-#: builtin/update-index.c:1061
+#: builtin/update-index.c:1080
msgid "enable untracked cache without testing the filesystem"
msgstr ""
-#: builtin/update-index.c:1063
+#: builtin/update-index.c:1082
msgid "write out the index even if is not flagged as changed"
msgstr ""
-#: builtin/update-index.c:1065
+#: builtin/update-index.c:1084
msgid "enable or disable file system monitor"
msgstr ""
-#: builtin/update-index.c:1067
+#: builtin/update-index.c:1086
msgid "mark files as fsmonitor valid"
msgstr ""
-#: builtin/update-index.c:1070
+#: builtin/update-index.c:1089
msgid "clear fsmonitor valid bit"
msgstr ""
-#: builtin/update-index.c:1173
+#: builtin/update-index.c:1195
msgid ""
"core.splitIndex is set to false; remove or change it, if you really want to "
"enable split index"
msgstr ""
-#: builtin/update-index.c:1182
+#: builtin/update-index.c:1204
msgid ""
"core.splitIndex is set to true; remove or change it, if you really want to "
"disable split index"
msgstr ""
-#: builtin/update-index.c:1194
+#: builtin/update-index.c:1216
msgid ""
"core.untrackedCache is set to true; remove or change it, if you really want "
"to disable the untracked cache"
msgstr ""
-#: builtin/update-index.c:1198
+#: builtin/update-index.c:1220
msgid "Untracked cache disabled"
msgstr ""
-#: builtin/update-index.c:1206
+#: builtin/update-index.c:1228
msgid ""
"core.untrackedCache is set to false; remove or change it, if you really want "
"to enable the untracked cache"
msgstr ""
-#: builtin/update-index.c:1210
+#: builtin/update-index.c:1232
#, c-format
msgid "Untracked cache enabled for '%s'"
msgstr ""
-#: builtin/update-index.c:1218
+#: builtin/update-index.c:1241
msgid "core.fsmonitor is unset; set it if you really want to enable fsmonitor"
msgstr ""
-#: builtin/update-index.c:1222
+#: builtin/update-index.c:1246
msgid "fsmonitor enabled"
msgstr ""
-#: builtin/update-index.c:1225
+#: builtin/update-index.c:1250
msgid ""
"core.fsmonitor is set; remove it if you really want to disable fsmonitor"
msgstr ""
-#: builtin/update-index.c:1229
+#: builtin/update-index.c:1254
msgid "fsmonitor disabled"
msgstr ""
@@ -22320,10 +22810,6 @@ msgstr ""
msgid "read updates from stdin"
msgstr ""
-#: builtin/update-server-info.c:7
-msgid "git update-server-info [--force]"
-msgstr ""
-
#: builtin/update-server-info.c:15
msgid "update the info files from scratch"
msgstr ""
@@ -22405,232 +22891,255 @@ msgid "git worktree remove [<options>] <worktree>"
msgstr ""
#: builtin/worktree.c:25
+msgid "git worktree repair [<path>...]"
+msgstr ""
+
+#: builtin/worktree.c:26
msgid "git worktree unlock <path>"
msgstr ""
-#: builtin/worktree.c:75
+#: builtin/worktree.c:76
#, c-format
msgid "Removing %s/%s: %s"
msgstr ""
-#: builtin/worktree.c:148
+#: builtin/worktree.c:149
msgid "report pruned working trees"
msgstr ""
-#: builtin/worktree.c:150
+#: builtin/worktree.c:151
msgid "expire working trees older than <time>"
msgstr ""
-#: builtin/worktree.c:220
+#: builtin/worktree.c:221
#, c-format
msgid "'%s' already exists"
msgstr ""
-#: builtin/worktree.c:229
+#: builtin/worktree.c:230
#, c-format
msgid "unusable worktree destination '%s'"
msgstr ""
-#: builtin/worktree.c:234
+#: builtin/worktree.c:235
#, c-format
msgid ""
"'%s' is a missing but locked worktree;\n"
"use '%s -f -f' to override, or 'unlock' and 'prune' or 'remove' to clear"
msgstr ""
-#: builtin/worktree.c:236
+#: builtin/worktree.c:237
#, c-format
msgid ""
"'%s' is a missing but already registered worktree;\n"
"use '%s -f' to override, or 'prune' or 'remove' to clear"
msgstr ""
-#: builtin/worktree.c:287
+#: builtin/worktree.c:248
+#, c-format
+msgid "failed to copy '%s' to '%s'; sparse-checkout may not work correctly"
+msgstr ""
+
+#: builtin/worktree.c:268
+#, c-format
+msgid "failed to copy worktree config from '%s' to '%s'"
+msgstr ""
+
+#: builtin/worktree.c:280 builtin/worktree.c:285
+#, c-format
+msgid "failed to unset '%s' in '%s'"
+msgstr ""
+
+#: builtin/worktree.c:356
#, c-format
msgid "could not create directory of '%s'"
msgstr ""
-#: builtin/worktree.c:309
+#: builtin/worktree.c:378
msgid "initializing"
msgstr ""
-#: builtin/worktree.c:420 builtin/worktree.c:426
+#: builtin/worktree.c:492 builtin/worktree.c:498
#, c-format
msgid "Preparing worktree (new branch '%s')"
msgstr ""
-#: builtin/worktree.c:422
+#: builtin/worktree.c:494
#, c-format
msgid "Preparing worktree (resetting branch '%s'; was at %s)"
msgstr ""
-#: builtin/worktree.c:431
+#: builtin/worktree.c:503
#, c-format
msgid "Preparing worktree (checking out '%s')"
msgstr ""
-#: builtin/worktree.c:437
+#: builtin/worktree.c:509
#, c-format
msgid "Preparing worktree (detached HEAD %s)"
msgstr ""
-#: builtin/worktree.c:482
+#: builtin/worktree.c:554
msgid "checkout <branch> even if already checked out in other worktree"
msgstr ""
-#: builtin/worktree.c:485
+#: builtin/worktree.c:557
msgid "create a new branch"
msgstr ""
-#: builtin/worktree.c:487
+#: builtin/worktree.c:559
msgid "create or reset a branch"
msgstr ""
-#: builtin/worktree.c:489
+#: builtin/worktree.c:561
msgid "populate the new working tree"
msgstr ""
-#: builtin/worktree.c:490
+#: builtin/worktree.c:562
msgid "keep the new working tree locked"
msgstr ""
-#: builtin/worktree.c:492 builtin/worktree.c:729
+#: builtin/worktree.c:564 builtin/worktree.c:809
msgid "reason for locking"
msgstr ""
-#: builtin/worktree.c:495
+#: builtin/worktree.c:567
msgid "set up tracking mode (see git-branch(1))"
msgstr ""
-#: builtin/worktree.c:498
+#: builtin/worktree.c:570
msgid "try to match the new branch name with a remote-tracking branch"
msgstr ""
-#: builtin/worktree.c:512
+#: builtin/worktree.c:584
msgid "added with --lock"
msgstr ""
-#: builtin/worktree.c:574
+#: builtin/worktree.c:646
msgid "--[no-]track can only be used if a new branch is created"
msgstr ""
-#: builtin/worktree.c:691
+#: builtin/worktree.c:766
msgid "show extended annotations and reasons, if available"
msgstr ""
-#: builtin/worktree.c:693
+#: builtin/worktree.c:768
msgid "add 'prunable' annotation to worktrees older than <time>"
msgstr ""
-#: builtin/worktree.c:741 builtin/worktree.c:774 builtin/worktree.c:848
-#: builtin/worktree.c:972
+#: builtin/worktree.c:770
+msgid "terminate records with a NUL character"
+msgstr ""
+
+#: builtin/worktree.c:821 builtin/worktree.c:854 builtin/worktree.c:928
+#: builtin/worktree.c:1052
#, c-format
msgid "'%s' is not a working tree"
msgstr ""
-#: builtin/worktree.c:743 builtin/worktree.c:776
+#: builtin/worktree.c:823 builtin/worktree.c:856
msgid "The main working tree cannot be locked or unlocked"
msgstr ""
-#: builtin/worktree.c:748
+#: builtin/worktree.c:828
#, c-format
msgid "'%s' is already locked, reason: %s"
msgstr ""
-#: builtin/worktree.c:750
+#: builtin/worktree.c:830
#, c-format
msgid "'%s' is already locked"
msgstr ""
-#: builtin/worktree.c:778
+#: builtin/worktree.c:858
#, c-format
msgid "'%s' is not locked"
msgstr ""
-#: builtin/worktree.c:819
+#: builtin/worktree.c:899
msgid "working trees containing submodules cannot be moved or removed"
msgstr ""
-#: builtin/worktree.c:827
+#: builtin/worktree.c:907
msgid "force move even if worktree is dirty or locked"
msgstr ""
-#: builtin/worktree.c:850 builtin/worktree.c:974
+#: builtin/worktree.c:930 builtin/worktree.c:1054
#, c-format
msgid "'%s' is a main working tree"
msgstr ""
-#: builtin/worktree.c:855
+#: builtin/worktree.c:935
#, c-format
msgid "could not figure out destination name from '%s'"
msgstr ""
-#: builtin/worktree.c:868
+#: builtin/worktree.c:948
#, 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:870
+#: builtin/worktree.c:950
msgid ""
"cannot move a locked working tree;\n"
"use 'move -f -f' to override or unlock first"
msgstr ""
-#: builtin/worktree.c:873
+#: builtin/worktree.c:953
#, c-format
msgid "validation failed, cannot move working tree: %s"
msgstr ""
-#: builtin/worktree.c:878
+#: builtin/worktree.c:958
#, c-format
msgid "failed to move '%s' to '%s'"
msgstr ""
-#: builtin/worktree.c:924
+#: builtin/worktree.c:1004
#, c-format
msgid "failed to run 'git status' on '%s'"
msgstr ""
-#: builtin/worktree.c:928
+#: builtin/worktree.c:1008
#, c-format
msgid "'%s' contains modified or untracked files, use --force to delete it"
msgstr ""
-#: builtin/worktree.c:933
+#: builtin/worktree.c:1013
#, c-format
msgid "failed to run 'git status' on '%s', code %d"
msgstr ""
-#: builtin/worktree.c:956
+#: builtin/worktree.c:1036
msgid "force removal even if worktree is dirty or locked"
msgstr ""
-#: builtin/worktree.c:979
+#: builtin/worktree.c:1059
#, 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:981
+#: builtin/worktree.c:1061
msgid ""
"cannot remove a locked working tree;\n"
"use 'remove -f -f' to override or unlock first"
msgstr ""
-#: builtin/worktree.c:984
+#: builtin/worktree.c:1064
#, c-format
msgid "validation failed, cannot remove working tree: %s"
msgstr ""
-#: builtin/worktree.c:1008
+#: builtin/worktree.c:1088
#, c-format
msgid "repair: %s: %s"
msgstr ""
-#: builtin/worktree.c:1011
+#: builtin/worktree.c:1091
#, c-format
msgid "error: %s: %s"
msgstr ""
@@ -22722,41 +23231,41 @@ msgstr ""
msgid "recursive alias: %s"
msgstr ""
-#: git.c:479
+#: git.c:480
msgid "write failure on standard output"
msgstr ""
-#: git.c:481
+#: git.c:482
msgid "unknown write failure on standard output"
msgstr ""
-#: git.c:483
+#: git.c:484
msgid "close failed on standard output"
msgstr ""
-#: git.c:835
+#: git.c:838
#, c-format
msgid "alias loop detected: expansion of '%s' does not terminate:%s"
msgstr ""
-#: git.c:885
+#: git.c:888
#, c-format
msgid "cannot handle %s as a builtin"
msgstr ""
-#: git.c:898
+#: git.c:901
#, c-format
msgid ""
"usage: %s\n"
"\n"
msgstr ""
-#: git.c:918
+#: git.c:921
#, c-format
msgid "expansion of alias '%s' failed; '%s' is not a git command\n"
msgstr ""
-#: git.c:930
+#: git.c:933
#, c-format
msgid "failed to run command '%s': %s\n"
msgstr ""
@@ -22905,139 +23414,139 @@ msgid ""
" redirect: %s"
msgstr ""
-#: remote-curl.c:183
+#: remote-curl.c:184
#, c-format
msgid "invalid quoting in push-option value: '%s'"
msgstr ""
-#: remote-curl.c:304
+#: remote-curl.c:308
#, c-format
msgid "%sinfo/refs not valid: is this a git repository?"
msgstr ""
-#: remote-curl.c:405
+#: remote-curl.c:409
msgid "invalid server response; expected service, got flush packet"
msgstr ""
-#: remote-curl.c:436
+#: remote-curl.c:440
#, c-format
msgid "invalid server response; got '%s'"
msgstr ""
-#: remote-curl.c:496
+#: remote-curl.c:500
#, c-format
msgid "repository '%s' not found"
msgstr ""
-#: remote-curl.c:500
+#: remote-curl.c:504
#, c-format
msgid "Authentication failed for '%s'"
msgstr ""
-#: remote-curl.c:504
+#: remote-curl.c:508
#, c-format
msgid "unable to access '%s' with http.pinnedPubkey configuration: %s"
msgstr ""
-#: remote-curl.c:508
+#: remote-curl.c:512
#, c-format
msgid "unable to access '%s': %s"
msgstr ""
-#: remote-curl.c:514
+#: remote-curl.c:518
#, c-format
msgid "redirecting to %s"
msgstr ""
-#: remote-curl.c:645
+#: remote-curl.c:649
msgid "shouldn't have EOF when not gentle on EOF"
msgstr ""
-#: remote-curl.c:657
+#: remote-curl.c:661
msgid "remote server sent unexpected response end packet"
msgstr ""
-#: remote-curl.c:726
+#: remote-curl.c:730
msgid "unable to rewind rpc post data - try increasing http.postBuffer"
msgstr ""
-#: remote-curl.c:755
+#: remote-curl.c:759
#, c-format
msgid "remote-curl: bad line length character: %.4s"
msgstr ""
-#: remote-curl.c:757
+#: remote-curl.c:761
msgid "remote-curl: unexpected response end packet"
msgstr ""
-#: remote-curl.c:833
+#: remote-curl.c:837
#, c-format
msgid "RPC failed; %s"
msgstr ""
-#: remote-curl.c:873
+#: remote-curl.c:877
msgid "cannot handle pushes this big"
msgstr ""
-#: remote-curl.c:986
+#: remote-curl.c:990
#, c-format
msgid "cannot deflate request; zlib deflate error %d"
msgstr ""
-#: remote-curl.c:990
+#: remote-curl.c:994
#, c-format
msgid "cannot deflate request; zlib end error %d"
msgstr ""
-#: remote-curl.c:1040
+#: remote-curl.c:1044
#, c-format
msgid "%d bytes of length header were received"
msgstr ""
-#: remote-curl.c:1042
+#: remote-curl.c:1046
#, c-format
msgid "%d bytes of body are still expected"
msgstr ""
-#: remote-curl.c:1131
+#: remote-curl.c:1135
msgid "dumb http transport does not support shallow capabilities"
msgstr ""
-#: remote-curl.c:1146
+#: remote-curl.c:1150
msgid "fetch failed."
msgstr ""
-#: remote-curl.c:1192
+#: remote-curl.c:1198
msgid "cannot fetch by sha1 over smart http"
msgstr ""
-#: remote-curl.c:1236 remote-curl.c:1242
+#: remote-curl.c:1242 remote-curl.c:1248
#, c-format
msgid "protocol error: expected sha/ref, got '%s'"
msgstr ""
-#: remote-curl.c:1254 remote-curl.c:1372
+#: remote-curl.c:1260 remote-curl.c:1378
#, c-format
msgid "http transport does not support %s"
msgstr ""
-#: remote-curl.c:1290
+#: remote-curl.c:1296
msgid "git-http-push failed"
msgstr ""
-#: remote-curl.c:1478
+#: remote-curl.c:1485
msgid "remote-curl: usage: git remote-curl <remote> [<url>]"
msgstr ""
-#: remote-curl.c:1510
+#: remote-curl.c:1517
msgid "remote-curl: error reading command stream from git"
msgstr ""
-#: remote-curl.c:1517
+#: remote-curl.c:1524
msgid "remote-curl: fetch attempted without a local repo"
msgstr ""
-#: remote-curl.c:1558
+#: remote-curl.c:1565
#, c-format
msgid "remote-curl: unknown command '%s' from git"
msgstr ""
@@ -23050,158 +23559,171 @@ msgstr ""
msgid "could not find enlistment root"
msgstr ""
-#: contrib/scalar/scalar.c:89 contrib/scalar/scalar.c:351
-#: contrib/scalar/scalar.c:436 contrib/scalar/scalar.c:579
+#: contrib/scalar/scalar.c:89 contrib/scalar/scalar.c:350
+#: contrib/scalar/scalar.c:435 contrib/scalar/scalar.c:578
#, c-format
msgid "could not switch to '%s'"
msgstr ""
-#: contrib/scalar/scalar.c:180
+#: contrib/scalar/scalar.c:179
#, c-format
msgid "could not configure %s=%s"
msgstr ""
-#: contrib/scalar/scalar.c:198
+#: contrib/scalar/scalar.c:197
msgid "could not configure log.excludeDecoration"
msgstr ""
-#: contrib/scalar/scalar.c:219
+#: contrib/scalar/scalar.c:218
msgid "Scalar enlistments require a worktree"
msgstr ""
-#: contrib/scalar/scalar.c:311
+#: contrib/scalar/scalar.c:310
#, c-format
msgid "remote HEAD is not a branch: '%.*s'"
msgstr ""
-#: contrib/scalar/scalar.c:317
+#: contrib/scalar/scalar.c:316
msgid "failed to get default branch name from remote; using local default"
msgstr ""
-#: contrib/scalar/scalar.c:330
+#: contrib/scalar/scalar.c:329
msgid "failed to get default branch name"
msgstr ""
-#: contrib/scalar/scalar.c:341
+#: contrib/scalar/scalar.c:340
msgid "failed to unregister repository"
msgstr ""
-#: contrib/scalar/scalar.c:356
+#: contrib/scalar/scalar.c:355
msgid "failed to delete enlistment directory"
msgstr ""
-#: contrib/scalar/scalar.c:376
+#: contrib/scalar/scalar.c:375
msgid "branch to checkout after clone"
msgstr ""
-#: contrib/scalar/scalar.c:378
+#: contrib/scalar/scalar.c:377
msgid "when cloning, create full working directory"
msgstr ""
-#: contrib/scalar/scalar.c:380
+#: contrib/scalar/scalar.c:379
msgid "only download metadata for the branch that will be checked out"
msgstr ""
-#: contrib/scalar/scalar.c:385
+#: contrib/scalar/scalar.c:384
msgid "scalar clone [<options>] [--] <repo> [<dir>]"
msgstr ""
-#: contrib/scalar/scalar.c:410
+#: contrib/scalar/scalar.c:409
#, c-format
msgid "cannot deduce worktree name from '%s'"
msgstr ""
-#: contrib/scalar/scalar.c:419
+#: contrib/scalar/scalar.c:418
#, c-format
msgid "directory '%s' exists already"
msgstr ""
-#: contrib/scalar/scalar.c:446
+#: contrib/scalar/scalar.c:445
#, c-format
msgid "failed to get default branch for '%s'"
msgstr ""
-#: contrib/scalar/scalar.c:457
+#: contrib/scalar/scalar.c:456
#, c-format
msgid "could not configure remote in '%s'"
msgstr ""
-#: contrib/scalar/scalar.c:466
+#: contrib/scalar/scalar.c:465
#, c-format
msgid "could not configure '%s'"
msgstr ""
-#: contrib/scalar/scalar.c:469
+#: contrib/scalar/scalar.c:468
msgid "partial clone failed; attempting full clone"
msgstr ""
-#: contrib/scalar/scalar.c:473
+#: contrib/scalar/scalar.c:472
msgid "could not configure for full clone"
msgstr ""
-#: contrib/scalar/scalar.c:505
+#: contrib/scalar/scalar.c:504
msgid "`scalar list` does not take arguments"
msgstr ""
-#: contrib/scalar/scalar.c:518
+#: contrib/scalar/scalar.c:517
msgid "scalar register [<enlistment>]"
msgstr ""
-#: contrib/scalar/scalar.c:545
+#: contrib/scalar/scalar.c:544
msgid "reconfigure all registered enlistments"
msgstr ""
-#: contrib/scalar/scalar.c:549
+#: contrib/scalar/scalar.c:548
msgid "scalar reconfigure [--all | <enlistment>]"
msgstr ""
-#: contrib/scalar/scalar.c:567
+#: contrib/scalar/scalar.c:566
msgid "--all or <enlistment>, but not both"
msgstr ""
-#: contrib/scalar/scalar.c:582
+#: contrib/scalar/scalar.c:581
#, c-format
msgid "git repository gone in '%s'"
msgstr ""
-#: contrib/scalar/scalar.c:622
+#: contrib/scalar/scalar.c:621
msgid ""
"scalar run <task> [<enlistment>]\n"
"Tasks:\n"
msgstr ""
-#: contrib/scalar/scalar.c:640
+#: contrib/scalar/scalar.c:639
#, c-format
msgid "no such task: '%s'"
msgstr ""
-#: contrib/scalar/scalar.c:690
+#: contrib/scalar/scalar.c:689
msgid "scalar unregister [<enlistment>]"
msgstr ""
-#: contrib/scalar/scalar.c:737
+#: contrib/scalar/scalar.c:736
msgid "scalar delete <enlistment>"
msgstr ""
-#: contrib/scalar/scalar.c:752
+#: contrib/scalar/scalar.c:751
msgid "refusing to delete current working directory"
msgstr ""
-#: contrib/scalar/scalar.c:767
+#: contrib/scalar/scalar.c:766
msgid "include Git version"
msgstr ""
-#: contrib/scalar/scalar.c:769
+#: contrib/scalar/scalar.c:768
msgid "include Git's build options"
msgstr ""
-#: contrib/scalar/scalar.c:773
+#: contrib/scalar/scalar.c:772
msgid "scalar verbose [-v | --verbose] [--build-options]"
msgstr ""
+#: contrib/scalar/scalar.c:813
+msgid "-C requires a <directory>"
+msgstr ""
+
+#: contrib/scalar/scalar.c:815
+#, c-format
+msgid "could not change to '%s'"
+msgstr ""
+
#: contrib/scalar/scalar.c:821
+msgid "-c requires a <key>=<value> argument"
+msgstr ""
+
+#: contrib/scalar/scalar.c:839
msgid ""
-"scalar <command> [<options>]\n"
+"scalar [-C <directory>] [-c <key>=<value>] <command> [<options>]\n"
"\n"
"Commands:\n"
msgstr ""
@@ -23214,43 +23736,43 @@ msgstr ""
msgid "no libc information available\n"
msgstr ""
-#: list-objects-filter-options.h:94
+#: list-objects-filter-options.h:126
msgid "args"
msgstr ""
-#: list-objects-filter-options.h:95
+#: list-objects-filter-options.h:127
msgid "object filtering"
msgstr ""
-#: parse-options.h:183
+#: parse-options.h:188
msgid "expiry-date"
msgstr ""
-#: parse-options.h:197
+#: parse-options.h:202
msgid "no-op (backward compatibility)"
msgstr ""
-#: parse-options.h:310
+#: parse-options.h:341
msgid "be more verbose"
msgstr ""
-#: parse-options.h:312
+#: parse-options.h:343
msgid "be more quiet"
msgstr ""
-#: parse-options.h:318
+#: parse-options.h:349
msgid "use <n> digits to display object names"
msgstr ""
-#: parse-options.h:337
+#: parse-options.h:368
msgid "how to strip spaces and #comments from message"
msgstr ""
-#: parse-options.h:338
+#: parse-options.h:369
msgid "read pathspec from file"
msgstr ""
-#: parse-options.h:339
+#: parse-options.h:370
msgid ""
"with --pathspec-from-file, pathspec elements are separated with NUL character"
msgstr ""
@@ -23500,446 +24022,450 @@ msgid "Display help information about Git"
msgstr ""
#: command-list.h:108
-msgid "Server side implementation of Git over HTTP"
+msgid "Run git hooks"
msgstr ""
#: command-list.h:109
-msgid "Download from a remote Git repository via HTTP"
+msgid "Server side implementation of Git over HTTP"
msgstr ""
#: command-list.h:110
-msgid "Push objects over HTTP/DAV to another repository"
+msgid "Download from a remote Git repository via HTTP"
msgstr ""
#: command-list.h:111
-msgid "Send a collection of patches from stdin to an IMAP folder"
+msgid "Push objects over HTTP/DAV to another repository"
msgstr ""
#: command-list.h:112
-msgid "Build pack index file for an existing packed archive"
+msgid "Send a collection of patches from stdin to an IMAP folder"
msgstr ""
#: command-list.h:113
-msgid "Create an empty Git repository or reinitialize an existing one"
+msgid "Build pack index file for an existing packed archive"
msgstr ""
#: command-list.h:114
-msgid "Instantly browse your working repository in gitweb"
+msgid "Create an empty Git repository or reinitialize an existing one"
msgstr ""
#: command-list.h:115
-msgid "Add or parse structured information in commit messages"
+msgid "Instantly browse your working repository in gitweb"
msgstr ""
#: command-list.h:116
-msgid "Show commit logs"
+msgid "Add or parse structured information in commit messages"
msgstr ""
#: command-list.h:117
-msgid "Show information about files in the index and the working tree"
+msgid "Show commit logs"
msgstr ""
#: command-list.h:118
-msgid "List references in a remote repository"
+msgid "Show information about files in the index and the working tree"
msgstr ""
#: command-list.h:119
-msgid "List the contents of a tree object"
+msgid "List references in a remote repository"
msgstr ""
#: command-list.h:120
-msgid "Extracts patch and authorship from a single e-mail message"
+msgid "List the contents of a tree object"
msgstr ""
#: command-list.h:121
-msgid "Simple UNIX mbox splitter program"
+msgid "Extracts patch and authorship from a single e-mail message"
msgstr ""
#: command-list.h:122
-msgid "Run tasks to optimize Git repository data"
+msgid "Simple UNIX mbox splitter program"
msgstr ""
#: command-list.h:123
-msgid "Join two or more development histories together"
+msgid "Run tasks to optimize Git repository data"
msgstr ""
#: command-list.h:124
-msgid "Find as good common ancestors as possible for a merge"
+msgid "Join two or more development histories together"
msgstr ""
#: command-list.h:125
-msgid "Run a three-way file merge"
+msgid "Find as good common ancestors as possible for a merge"
msgstr ""
#: command-list.h:126
-msgid "Run a merge for files needing merging"
+msgid "Run a three-way file merge"
msgstr ""
#: command-list.h:127
-msgid "The standard helper program to use with git-merge-index"
+msgid "Run a merge for files needing merging"
msgstr ""
#: command-list.h:128
-msgid "Show three-way merge without touching index"
+msgid "The standard helper program to use with git-merge-index"
msgstr ""
#: command-list.h:129
-msgid "Run merge conflict resolution tools to resolve merge conflicts"
+msgid "Show three-way merge without touching index"
msgstr ""
#: command-list.h:130
-msgid "Creates a tag object with extra validation"
+msgid "Run merge conflict resolution tools to resolve merge conflicts"
msgstr ""
#: command-list.h:131
-msgid "Build a tree-object from ls-tree formatted text"
+msgid "Creates a tag object with extra validation"
msgstr ""
#: command-list.h:132
-msgid "Write and verify multi-pack-indexes"
+msgid "Build a tree-object from ls-tree formatted text"
msgstr ""
#: command-list.h:133
-msgid "Move or rename a file, a directory, or a symlink"
+msgid "Write and verify multi-pack-indexes"
msgstr ""
#: command-list.h:134
-msgid "Find symbolic names for given revs"
+msgid "Move or rename a file, a directory, or a symlink"
msgstr ""
#: command-list.h:135
-msgid "Add or inspect object notes"
+msgid "Find symbolic names for given revs"
msgstr ""
#: command-list.h:136
-msgid "Import from and submit to Perforce repositories"
+msgid "Add or inspect object notes"
msgstr ""
#: command-list.h:137
-msgid "Create a packed archive of objects"
+msgid "Import from and submit to Perforce repositories"
msgstr ""
#: command-list.h:138
-msgid "Find redundant pack files"
+msgid "Create a packed archive of objects"
msgstr ""
#: command-list.h:139
-msgid "Pack heads and tags for efficient repository access"
+msgid "Find redundant pack files"
msgstr ""
#: command-list.h:140
-msgid "Compute unique ID for a patch"
+msgid "Pack heads and tags for efficient repository access"
msgstr ""
#: command-list.h:141
-msgid "Prune all unreachable objects from the object database"
+msgid "Compute unique ID for a patch"
msgstr ""
#: command-list.h:142
-msgid "Remove extra objects that are already in pack files"
+msgid "Prune all unreachable objects from the object database"
msgstr ""
#: command-list.h:143
-msgid "Fetch from and integrate with another repository or a local branch"
+msgid "Remove extra objects that are already in pack files"
msgstr ""
#: command-list.h:144
-msgid "Update remote refs along with associated objects"
+msgid "Fetch from and integrate with another repository or a local branch"
msgstr ""
#: command-list.h:145
-msgid "Applies a quilt patchset onto the current branch"
+msgid "Update remote refs along with associated objects"
msgstr ""
#: command-list.h:146
-msgid "Compare two commit ranges (e.g. two versions of a branch)"
+msgid "Applies a quilt patchset onto the current branch"
msgstr ""
#: command-list.h:147
-msgid "Reads tree information into the index"
+msgid "Compare two commit ranges (e.g. two versions of a branch)"
msgstr ""
#: command-list.h:148
-msgid "Reapply commits on top of another base tip"
+msgid "Reads tree information into the index"
msgstr ""
#: command-list.h:149
-msgid "Receive what is pushed into the repository"
+msgid "Reapply commits on top of another base tip"
msgstr ""
#: command-list.h:150
-msgid "Manage reflog information"
+msgid "Receive what is pushed into the repository"
msgstr ""
#: command-list.h:151
-msgid "Manage set of tracked repositories"
+msgid "Manage reflog information"
msgstr ""
#: command-list.h:152
-msgid "Pack unpacked objects in a repository"
+msgid "Manage set of tracked repositories"
msgstr ""
#: command-list.h:153
-msgid "Create, list, delete refs to replace objects"
+msgid "Pack unpacked objects in a repository"
msgstr ""
#: command-list.h:154
-msgid "Generates a summary of pending changes"
+msgid "Create, list, delete refs to replace objects"
msgstr ""
#: command-list.h:155
-msgid "Reuse recorded resolution of conflicted merges"
+msgid "Generates a summary of pending changes"
msgstr ""
#: command-list.h:156
-msgid "Reset current HEAD to the specified state"
+msgid "Reuse recorded resolution of conflicted merges"
msgstr ""
#: command-list.h:157
-msgid "Restore working tree files"
+msgid "Reset current HEAD to the specified state"
msgstr ""
#: command-list.h:158
-msgid "Lists commit objects in reverse chronological order"
+msgid "Restore working tree files"
msgstr ""
#: command-list.h:159
-msgid "Pick out and massage parameters"
+msgid "Lists commit objects in reverse chronological order"
msgstr ""
#: command-list.h:160
-msgid "Revert some existing commits"
+msgid "Pick out and massage parameters"
msgstr ""
#: command-list.h:161
-msgid "Remove files from the working tree and from the index"
+msgid "Revert some existing commits"
msgstr ""
#: command-list.h:162
-msgid "Send a collection of patches as emails"
+msgid "Remove files from the working tree and from the index"
msgstr ""
#: command-list.h:163
-msgid "Push objects over Git protocol to another repository"
+msgid "Send a collection of patches as emails"
msgstr ""
#: command-list.h:164
-msgid "Git's i18n setup code for shell scripts"
+msgid "Push objects over Git protocol to another repository"
msgstr ""
#: command-list.h:165
-msgid "Common Git shell script setup code"
+msgid "Git's i18n setup code for shell scripts"
msgstr ""
#: command-list.h:166
-msgid "Restricted login shell for Git-only SSH access"
+msgid "Common Git shell script setup code"
msgstr ""
#: command-list.h:167
-msgid "Summarize 'git log' output"
+msgid "Restricted login shell for Git-only SSH access"
msgstr ""
#: command-list.h:168
-msgid "Show various types of objects"
+msgid "Summarize 'git log' output"
msgstr ""
#: command-list.h:169
-msgid "Show branches and their commits"
+msgid "Show various types of objects"
msgstr ""
#: command-list.h:170
-msgid "Show packed archive index"
+msgid "Show branches and their commits"
msgstr ""
#: command-list.h:171
-msgid "List references in a local repository"
+msgid "Show packed archive index"
msgstr ""
#: command-list.h:172
-msgid "Initialize and modify the sparse-checkout"
+msgid "List references in a local repository"
msgstr ""
#: command-list.h:173
-msgid "Add file contents to the staging area"
+msgid "Reduce your working tree to a subset of tracked files"
msgstr ""
#: command-list.h:174
-msgid "Stash the changes in a dirty working directory away"
+msgid "Add file contents to the staging area"
msgstr ""
#: command-list.h:175
-msgid "Show the working tree status"
+msgid "Stash the changes in a dirty working directory away"
msgstr ""
#: command-list.h:176
-msgid "Remove unnecessary whitespace"
+msgid "Show the working tree status"
msgstr ""
#: command-list.h:177
-msgid "Initialize, update or inspect submodules"
+msgid "Remove unnecessary whitespace"
msgstr ""
#: command-list.h:178
-msgid "Bidirectional operation between a Subversion repository and Git"
+msgid "Initialize, update or inspect submodules"
msgstr ""
#: command-list.h:179
-msgid "Switch branches"
+msgid "Bidirectional operation between a Subversion repository and Git"
msgstr ""
#: command-list.h:180
-msgid "Read, modify and delete symbolic refs"
+msgid "Switch branches"
msgstr ""
#: command-list.h:181
-msgid "Create, list, delete or verify a tag object signed with GPG"
+msgid "Read, modify and delete symbolic refs"
msgstr ""
#: command-list.h:182
-msgid "Creates a temporary file with a blob's contents"
+msgid "Create, list, delete or verify a tag object signed with GPG"
msgstr ""
#: command-list.h:183
-msgid "Unpack objects from a packed archive"
+msgid "Creates a temporary file with a blob's contents"
msgstr ""
#: command-list.h:184
-msgid "Register file contents in the working tree to the index"
+msgid "Unpack objects from a packed archive"
msgstr ""
#: command-list.h:185
-msgid "Update the object name stored in a ref safely"
+msgid "Register file contents in the working tree to the index"
msgstr ""
#: command-list.h:186
-msgid "Update auxiliary info file to help dumb servers"
+msgid "Update the object name stored in a ref safely"
msgstr ""
#: command-list.h:187
-msgid "Send archive back to git-archive"
+msgid "Update auxiliary info file to help dumb servers"
msgstr ""
#: command-list.h:188
-msgid "Send objects packed back to git-fetch-pack"
+msgid "Send archive back to git-archive"
msgstr ""
#: command-list.h:189
-msgid "Show a Git logical variable"
+msgid "Send objects packed back to git-fetch-pack"
msgstr ""
#: command-list.h:190
-msgid "Check the GPG signature of commits"
+msgid "Show a Git logical variable"
msgstr ""
#: command-list.h:191
-msgid "Validate packed Git archive files"
+msgid "Check the GPG signature of commits"
msgstr ""
#: command-list.h:192
-msgid "Check the GPG signature of tags"
+msgid "Validate packed Git archive files"
msgstr ""
#: command-list.h:193
-msgid "Show logs with difference each commit introduces"
+msgid "Check the GPG signature of tags"
msgstr ""
#: command-list.h:194
-msgid "Manage multiple working trees"
+msgid "Show logs with difference each commit introduces"
msgstr ""
#: command-list.h:195
-msgid "Create a tree object from the current index"
+msgid "Manage multiple working trees"
msgstr ""
#: command-list.h:196
-msgid "Defining attributes per path"
+msgid "Create a tree object from the current index"
msgstr ""
#: command-list.h:197
-msgid "Git command-line interface and conventions"
+msgid "Defining attributes per path"
msgstr ""
#: command-list.h:198
-msgid "A Git core tutorial for developers"
+msgid "Git command-line interface and conventions"
msgstr ""
#: command-list.h:199
-msgid "Providing usernames and passwords to Git"
+msgid "A Git core tutorial for developers"
msgstr ""
#: command-list.h:200
-msgid "Git for CVS users"
+msgid "Providing usernames and passwords to Git"
msgstr ""
#: command-list.h:201
-msgid "Tweaking diff output"
+msgid "Git for CVS users"
msgstr ""
#: command-list.h:202
-msgid "A useful minimum set of commands for Everyday Git"
+msgid "Tweaking diff output"
msgstr ""
#: command-list.h:203
-msgid "Frequently asked questions about using Git"
+msgid "A useful minimum set of commands for Everyday Git"
msgstr ""
#: command-list.h:204
-msgid "A Git Glossary"
+msgid "Frequently asked questions about using Git"
msgstr ""
#: command-list.h:205
-msgid "Hooks used by Git"
+msgid "A Git Glossary"
msgstr ""
#: command-list.h:206
-msgid "Specifies intentionally untracked files to ignore"
+msgid "Hooks used by Git"
msgstr ""
#: command-list.h:207
-msgid "The Git repository browser"
+msgid "Specifies intentionally untracked files to ignore"
msgstr ""
#: command-list.h:208
-msgid "Map author/committer names and/or E-Mail addresses"
+msgid "The Git repository browser"
msgstr ""
#: command-list.h:209
-msgid "Defining submodule properties"
+msgid "Map author/committer names and/or E-Mail addresses"
msgstr ""
#: command-list.h:210
-msgid "Git namespaces"
+msgid "Defining submodule properties"
msgstr ""
#: command-list.h:211
-msgid "Helper programs to interact with remote repositories"
+msgid "Git namespaces"
msgstr ""
#: command-list.h:212
-msgid "Git Repository Layout"
+msgid "Helper programs to interact with remote repositories"
msgstr ""
#: command-list.h:213
-msgid "Specifying revisions and ranges for Git"
+msgid "Git Repository Layout"
msgstr ""
#: command-list.h:214
-msgid "Mounting one repository inside another"
+msgid "Specifying revisions and ranges for Git"
msgstr ""
#: command-list.h:215
-msgid "A tutorial introduction to Git"
+msgid "Mounting one repository inside another"
msgstr ""
#: command-list.h:216
-msgid "A tutorial introduction to Git: part two"
+msgid "A tutorial introduction to Git"
msgstr ""
#: command-list.h:217
-msgid "Git web interface (web frontend to Git repositories)"
+msgid "A tutorial introduction to Git: part two"
msgstr ""
#: command-list.h:218
+msgid "Git web interface (web frontend to Git repositories)"
+msgstr ""
+
+#: command-list.h:219
msgid "An overview of recommended workflows with Git"
msgstr ""
@@ -23981,66 +24507,44 @@ msgstr ""
msgid "Simple merge did not work, trying automatic merge."
msgstr ""
-#: git-submodule.sh:401
-#, sh-format
-msgid "Unable to find current revision in submodule path '$displaypath'"
-msgstr ""
-
-#: git-submodule.sh:411
-#, sh-format
-msgid "Unable to fetch in submodule path '$sm_path'"
-msgstr ""
-
-#: git-submodule.sh:416
-#, sh-format
-msgid ""
-"Unable to find current ${remote_name}/${branch} revision in submodule path "
-"'$sm_path'"
-msgstr ""
-
-#: git-submodule.sh:464
-#, sh-format
-msgid "Failed to recurse into submodule path '$displaypath'"
-msgstr ""
-
#: git-sh-setup.sh:89 git-sh-setup.sh:94
#, sh-format
msgid "usage: $dashless $USAGE"
msgstr ""
-#: git-sh-setup.sh:183
+#: git-sh-setup.sh:182
#, sh-format
msgid "Cannot chdir to $cdup, the toplevel of the working tree"
msgstr ""
-#: git-sh-setup.sh:192 git-sh-setup.sh:199
+#: git-sh-setup.sh:191 git-sh-setup.sh:198
#, sh-format
msgid "fatal: $program_name cannot be used without a working tree."
msgstr ""
-#: git-sh-setup.sh:213
+#: git-sh-setup.sh:212
msgid "Cannot rewrite branches: You have unstaged changes."
msgstr ""
-#: git-sh-setup.sh:216
+#: git-sh-setup.sh:215
#, sh-format
msgid "Cannot $action: You have unstaged changes."
msgstr ""
-#: git-sh-setup.sh:227
+#: git-sh-setup.sh:226
#, sh-format
msgid "Cannot $action: Your index contains uncommitted changes."
msgstr ""
-#: git-sh-setup.sh:229
+#: git-sh-setup.sh:228
msgid "Additionally, your index contains uncommitted changes."
msgstr ""
-#: git-sh-setup.sh:349
+#: git-sh-setup.sh:348
msgid "You need to run this command from the toplevel of the working tree."
msgstr ""
-#: git-sh-setup.sh:354
+#: git-sh-setup.sh:353
msgid "Unable to determine absolute path of git directory"
msgstr ""
@@ -24615,33 +25119,33 @@ msgstr ""
msgid "invalid transfer encoding"
msgstr ""
-#: git-send-email.perl:2095
+#: git-send-email.perl:2100
#, perl-format
msgid ""
-"fatal: %s: rejected by sendemail-validate hook\n"
+"fatal: %s: rejected by %s hook\n"
"%s\n"
"warning: no patches were sent\n"
msgstr ""
-#: git-send-email.perl:2105 git-send-email.perl:2158 git-send-email.perl:2168
+#: git-send-email.perl:2110 git-send-email.perl:2163 git-send-email.perl:2173
#, perl-format
msgid "unable to open %s: %s\n"
msgstr ""
-#: git-send-email.perl:2108
+#: git-send-email.perl:2113
#, perl-format
msgid ""
"fatal: %s:%d is longer than 998 characters\n"
"warning: no patches were sent\n"
msgstr ""
-#: git-send-email.perl:2126
+#: git-send-email.perl:2131
#, perl-format
msgid "Skipping %s with backup suffix '%s'.\n"
msgstr ""
#. TRANSLATORS: please keep "[y|N]" as is.
-#: git-send-email.perl:2130
+#: git-send-email.perl:2135
#, perl-format
msgid "Do you really want to send %s? [y|N]: "
msgstr ""
diff --git a/po/id.po b/po/id.po
index aa6f170b8e..76284fe8e6 100644
--- a/po/id.po
+++ b/po/id.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Git\n"
"Report-Msgid-Bugs-To: Git Mailing List <git@vger.kernel.org>\n"
-"POT-Creation-Date: 2022-01-17 08:34+0800\n"
+"POT-Creation-Date: 2022-04-13 14:52+0800\n"
"PO-Revision-Date: 2021-08-14 09:35+0700\n"
"Last-Translator: Bagas Sanjaya <bagasdotme@gmail.com>\n"
"Language-Team: Indonesian\n"
@@ -17,213 +17,212 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: add-interactive.c:380
+#: add-interactive.c:382
#, c-format
msgid "Huh (%s)?"
-msgstr "Huh (%s)"
+msgstr "Huh (%s)?"
-#: add-interactive.c:533 add-interactive.c:834 reset.c:65 sequencer.c:3509
-#: sequencer.c:3974 sequencer.c:4136 builtin/rebase.c:1233
-#: builtin/rebase.c:1642
+#: add-interactive.c:535 add-interactive.c:836 reset.c:136 sequencer.c:3505
+#: sequencer.c:3970 sequencer.c:4127 builtin/rebase.c:1261
+#: builtin/rebase.c:1671
msgid "could not read index"
msgstr "tidak dapat membaca indeks"
-#: add-interactive.c:588 git-add--interactive.perl:269
+#: add-interactive.c:590 git-add--interactive.perl:269
#: git-add--interactive.perl:294
msgid "binary"
msgstr "biner"
-#: add-interactive.c:646 git-add--interactive.perl:278
+#: add-interactive.c:648 git-add--interactive.perl:278
#: git-add--interactive.perl:332
msgid "nothing"
msgstr "tidak ada"
-#: add-interactive.c:647 git-add--interactive.perl:314
+#: add-interactive.c:649 git-add--interactive.perl:314
#: git-add--interactive.perl:329
msgid "unchanged"
msgstr "tak berubah"
-#: add-interactive.c:684 git-add--interactive.perl:641
+#: add-interactive.c:686 git-add--interactive.perl:641
msgid "Update"
msgstr "Perbarui"
-#: add-interactive.c:701 add-interactive.c:889
+#: add-interactive.c:703 add-interactive.c:891
#, c-format
msgid "could not stage '%s'"
msgstr "tidak dapat menggelar '%s'"
-#: add-interactive.c:707 add-interactive.c:896 reset.c:89 sequencer.c:3713
+#: add-interactive.c:709 add-interactive.c:898 reset.c:160 sequencer.c:3709
msgid "could not write index"
msgstr "tidak dapat menulis indeks"
-#: add-interactive.c:710 git-add--interactive.perl:626
+#: add-interactive.c:712 git-add--interactive.perl:626
#, c-format, perl-format
msgid "updated %d path\n"
msgid_plural "updated %d paths\n"
msgstr[0] "%d jalur diperbarui\n"
msgstr[1] "%d jalur diperbarui\n"
-#: add-interactive.c:728 git-add--interactive.perl:676
+#: add-interactive.c:730 git-add--interactive.perl:676
#, c-format, perl-format
msgid "note: %s is untracked now.\n"
msgstr "catatan: %s sekarang tak terlacak.\n"
-#: add-interactive.c:733 apply.c:4151 builtin/checkout.c:306
+#: add-interactive.c:735 apply.c:4133 builtin/checkout.c:311
#: builtin/reset.c:167
#, c-format
msgid "make_cache_entry failed for path '%s'"
msgstr "make_cache_entry gagal untuk jalur '%s'"
-#: add-interactive.c:763 git-add--interactive.perl:653
+#: add-interactive.c:765 git-add--interactive.perl:653
msgid "Revert"
msgstr "Kembalikan"
-#: add-interactive.c:779
+#: add-interactive.c:781
msgid "Could not parse HEAD^{tree}"
msgstr "Tidak dapat menguraikan HEAD^{tree}"
-#: add-interactive.c:817 git-add--interactive.perl:629
+#: add-interactive.c:819 git-add--interactive.perl:629
#, c-format, perl-format
msgid "reverted %d path\n"
msgid_plural "reverted %d paths\n"
msgstr[0] "%d jalur dikembalikan\n"
msgstr[1] "%d jalur dikembalikan\n"
-#: add-interactive.c:868 git-add--interactive.perl:693
+#: add-interactive.c:870 git-add--interactive.perl:693
#, c-format
msgid "No untracked files.\n"
msgstr "Tidak ada berkas tak terlacak.\n"
-#: add-interactive.c:872 git-add--interactive.perl:687
+#: add-interactive.c:874 git-add--interactive.perl:687
msgid "Add untracked"
msgstr "Tambahkan tak terlacak"
-#: add-interactive.c:899 git-add--interactive.perl:623
+#: add-interactive.c:901 git-add--interactive.perl:623
#, c-format, perl-format
msgid "added %d path\n"
msgid_plural "added %d paths\n"
msgstr[0] "%d jalur ditambahkan\n"
msgstr[1] "%d jalur ditambahkan\n"
-#: add-interactive.c:929
+#: add-interactive.c:931
#, c-format
msgid "ignoring unmerged: %s"
msgstr "mengabaikan tak tergabung: %s"
-#: add-interactive.c:941 add-patch.c:1752 git-add--interactive.perl:1371
+#: add-interactive.c:943 add-patch.c:1758 git-add--interactive.perl:1371
#, c-format
msgid "Only binary files changed.\n"
msgstr "Hanya berkas biner yang berubah.\n"
-#: add-interactive.c:943 add-patch.c:1750 git-add--interactive.perl:1373
+#: add-interactive.c:945 add-patch.c:1756 git-add--interactive.perl:1373
#, c-format
msgid "No changes.\n"
msgstr "Tidak ada perubahan.\n"
-#: add-interactive.c:947 git-add--interactive.perl:1381
+#: add-interactive.c:949 git-add--interactive.perl:1381
msgid "Patch update"
msgstr "Pembaruan tambalan"
-#: add-interactive.c:986 git-add--interactive.perl:1794
+#: add-interactive.c:988 git-add--interactive.perl:1794
msgid "Review diff"
msgstr "Tinjau diff"
-#: add-interactive.c:1014
+#: add-interactive.c:1016
msgid "show paths with changes"
msgstr "perlihatkan jalur dengan perubahan"
-#: add-interactive.c:1016
+#: add-interactive.c:1018
msgid "add working tree state to the staged set of changes"
msgstr "tambahkan keadaan pohon kerja ke set perubahan yang tergelar"
-#: add-interactive.c:1018
+#: add-interactive.c:1020
msgid "revert staged set of changes back to the HEAD version"
msgstr "kembalikan set perubahan yang tergelar kembali ke versi HEAD"
-#: add-interactive.c:1020
+#: add-interactive.c:1022
msgid "pick hunks and update selectively"
msgstr "ambil bingkah dan perbarui secara selektif"
-#: add-interactive.c:1022
+#: add-interactive.c:1024
msgid "view diff between HEAD and index"
msgstr "lihat diff antara HEAD dan indeks"
-#: add-interactive.c:1024
+#: add-interactive.c:1026
msgid "add contents of untracked files to the staged set of changes"
msgstr "tambahkan isi berkas tak terlacak ke set perubahan yang tergelar"
-#: add-interactive.c:1032 add-interactive.c:1081
+#: add-interactive.c:1034 add-interactive.c:1083
msgid "Prompt help:"
msgstr "Permintaan bantuan:"
-#: add-interactive.c:1034
+#: add-interactive.c:1036
msgid "select a single item"
msgstr "pilih satu item"
-#: add-interactive.c:1036
+#: add-interactive.c:1038
msgid "select a range of items"
msgstr "pilih kisaran item"
-#: add-interactive.c:1038
+#: add-interactive.c:1040
msgid "select multiple ranges"
msgstr "pilih banyak kisaran"
-#: add-interactive.c:1040 add-interactive.c:1085
+#: add-interactive.c:1042 add-interactive.c:1087
msgid "select item based on unique prefix"
msgstr "pilih item berdasarkan prefiks unik"
-#: add-interactive.c:1042
+#: add-interactive.c:1044
msgid "unselect specified items"
msgstr "batal pilih item yang disebutkan"
-#: add-interactive.c:1044
+#: add-interactive.c:1046
msgid "choose all items"
msgstr "pilih semua item"
-#: add-interactive.c:1046
+#: add-interactive.c:1048
msgid "(empty) finish selecting"
msgstr "(kosong) sudah memilih"
-#: add-interactive.c:1083
+#: add-interactive.c:1085
msgid "select a numbered item"
msgstr "pilih item bernomor"
-#: add-interactive.c:1087
+#: add-interactive.c:1089
msgid "(empty) select nothing"
msgstr "(empty) tidak pilih apapun"
-#: add-interactive.c:1095 builtin/clean.c:839 git-add--interactive.perl:1898
+#: add-interactive.c:1097 builtin/clean.c:839 git-add--interactive.perl:1898
msgid "*** Commands ***"
msgstr "*** Perintah ***"
-#: add-interactive.c:1096 builtin/clean.c:840 git-add--interactive.perl:1895
+#: add-interactive.c:1098 builtin/clean.c:840 git-add--interactive.perl:1895
msgid "What now"
msgstr "Apa sekarang"
-#: add-interactive.c:1148 git-add--interactive.perl:213
+#: add-interactive.c:1150 git-add--interactive.perl:213
msgid "staged"
msgstr "tergelar"
-#: add-interactive.c:1148 git-add--interactive.perl:213
+#: add-interactive.c:1150 git-add--interactive.perl:213
msgid "unstaged"
msgstr "tak tergelar"
-#: add-interactive.c:1148 apply.c:5020 apply.c:5023 builtin/am.c:2367
-#: builtin/am.c:2370 builtin/bugreport.c:107 builtin/clone.c:128
-#: builtin/fetch.c:153 builtin/merge.c:287 builtin/pull.c:194
-#: builtin/submodule--helper.c:404 builtin/submodule--helper.c:1858
-#: builtin/submodule--helper.c:1861 builtin/submodule--helper.c:2504
-#: builtin/submodule--helper.c:2507 builtin/submodule--helper.c:2574
-#: builtin/submodule--helper.c:2579 builtin/submodule--helper.c:2812
+#: add-interactive.c:1150 apply.c:5002 apply.c:5005 builtin/am.c:2370
+#: builtin/am.c:2373 builtin/bugreport.c:107 builtin/clone.c:132
+#: builtin/fetch.c:154 builtin/merge.c:287 builtin/pull.c:194
+#: builtin/submodule--helper.c:412 builtin/submodule--helper.c:1872
+#: builtin/submodule--helper.c:1875 builtin/submodule--helper.c:2709
+#: builtin/submodule--helper.c:2712 builtin/submodule--helper.c:2891
#: git-add--interactive.perl:213
msgid "path"
msgstr "jalur"
-#: add-interactive.c:1155
+#: add-interactive.c:1157
msgid "could not refresh index"
msgstr "tidak dapat menyegarkan indeks"
-#: add-interactive.c:1169 builtin/clean.c:804 git-add--interactive.perl:1805
+#: add-interactive.c:1171 builtin/clean.c:804 git-add--interactive.perl:1805
#, c-format
msgid "Bye.\n"
msgstr "Sampai jumpa.\n"
@@ -534,24 +533,24 @@ msgstr "tidak dapat menguraikan kepala bingkah '%.*s'"
msgid "could not parse colored hunk header '%.*s'"
msgstr "tidak dapat menguraikan kepala bingkah berwarna '%.*s'"
-#: add-patch.c:420
+#: add-patch.c:431
msgid "could not parse diff"
msgstr "tidak dapat menguraikan diff"
-#: add-patch.c:439
+#: add-patch.c:450
msgid "could not parse colored diff"
msgstr "tidak dapat menguraikan diff berwarna"
-#: add-patch.c:453
+#: add-patch.c:464
#, c-format
msgid "failed to run '%s'"
msgstr "gagal menjalankan '%s'"
-#: add-patch.c:612
+#: add-patch.c:618
msgid "mismatched output from interactive.diffFilter"
msgstr "keluaran tak cocok dari interactive.diffFilter"
-#: add-patch.c:613
+#: add-patch.c:619
msgid ""
"Your filter must maintain a one-to-one correspondence\n"
"between its input and output lines."
@@ -559,7 +558,7 @@ msgstr ""
"Saringan Anda haru menjaga korespondensi satu-satu antara masukannya\n"
"dan baris keluaran."
-#: add-patch.c:791
+#: add-patch.c:797
#, c-format
msgid ""
"expected context line #%d in\n"
@@ -568,7 +567,7 @@ msgstr ""
"baris konteks #%d diharapkan dalam\n"
"%.*s"
-#: add-patch.c:806
+#: add-patch.c:812
#, c-format
msgid ""
"hunks do not overlap:\n"
@@ -581,11 +580,11 @@ msgstr ""
"tidak berakhir dengan:\n"
"%.*s"
-#: add-patch.c:1082 git-add--interactive.perl:1115
+#: add-patch.c:1088 git-add--interactive.perl:1115
msgid "Manual hunk edit mode -- see bottom for a quick guide.\n"
msgstr "Mode sunting bingkah manual -- lihat dibawah untuk panduan cepat.\n"
-#: add-patch.c:1086
+#: add-patch.c:1092
#, c-format
msgid ""
"---\n"
@@ -599,7 +598,7 @@ msgstr ""
"Baris yang diawali dengan %c akan dihapus.\n"
#. TRANSLATORS: 'it' refers to the patch mentioned in the previous messages.
-#: add-patch.c:1100 git-add--interactive.perl:1129
+#: add-patch.c:1106 git-add--interactive.perl:1129
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"
@@ -609,11 +608,11 @@ msgstr ""
"untuk menyunting lagi. Jika semua baris dalam bingkah dihapus, suntingan\n"
"dibatalkan dan bingkah tetap tidak berubah.\n"
-#: add-patch.c:1133
+#: add-patch.c:1139
msgid "could not parse hunk header"
msgstr "tidak dapat menguraikan kepala bingkah"
-#: add-patch.c:1178
+#: add-patch.c:1184
msgid "'git apply --cached' failed"
msgstr "'git apply --cached' gagal"
@@ -629,26 +628,26 @@ msgstr "'git apply --cached' gagal"
#. 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:1247 git-add--interactive.perl:1244
+#: add-patch.c:1253 git-add--interactive.perl:1244
msgid ""
"Your edited hunk does not apply. Edit again (saying \"no\" discards!) [y/n]? "
msgstr ""
"Bingkah Anda tak diterapkan. Sunting lagi (bilang \"n\" untuk \"tidak\" "
"buang!) [y/n]?"
-#: add-patch.c:1290
+#: add-patch.c:1296
msgid "The selected hunks do not apply to the index!"
msgstr "Bingkah yang dipilih tidak diterapkan ke indeks!"
-#: add-patch.c:1291 git-add--interactive.perl:1348
+#: add-patch.c:1297 git-add--interactive.perl:1348
msgid "Apply them to the worktree anyway? "
msgstr "Tetap terapkan itu ke pohon kerja? "
-#: add-patch.c:1298 git-add--interactive.perl:1351
+#: add-patch.c:1304 git-add--interactive.perl:1351
msgid "Nothing was applied.\n"
msgstr "Tidak ada yang diterapkan.\n"
-#: add-patch.c:1355
+#: add-patch.c:1361
msgid ""
"j - leave this hunk undecided, see next undecided hunk\n"
"J - leave this hunk undecided, see next hunk\n"
@@ -670,73 +669,73 @@ msgstr ""
"e - sunting bingkah saat ini secara manual\n"
"? - cetak bantuan\n"
-#: add-patch.c:1517 add-patch.c:1527
+#: add-patch.c:1523 add-patch.c:1533
msgid "No previous hunk"
msgstr "Tidak ada bingkah sebelumnya"
-#: add-patch.c:1522 add-patch.c:1532
+#: add-patch.c:1528 add-patch.c:1538
msgid "No next hunk"
msgstr "Tidak ada bingkah selanjutnya"
-#: add-patch.c:1538
+#: add-patch.c:1544
msgid "No other hunks to goto"
msgstr "Tidak ada bingkah lainnya untuk dikunjungi"
-#: add-patch.c:1549 git-add--interactive.perl:1608
+#: add-patch.c:1555 git-add--interactive.perl:1608
msgid "go to which hunk (<ret> to see more)? "
msgstr "pergi ke bingkah yang mana (<ret> untuk lihat lebih)? "
-#: add-patch.c:1550 git-add--interactive.perl:1610
+#: add-patch.c:1556 git-add--interactive.perl:1610
msgid "go to which hunk? "
msgstr "pergi ke bingkah yang mana?"
-#: add-patch.c:1561
+#: add-patch.c:1567
#, c-format
msgid "Invalid number: '%s'"
msgstr "Angka tidak valid: '%s'"
-#: add-patch.c:1566
+#: add-patch.c:1572
#, c-format
msgid "Sorry, only %d hunk available."
msgid_plural "Sorry, only %d hunks available."
msgstr[0] "Maaf, hanya %d bingkah yang tersedia."
msgstr[1] "Maaf, hanya %d bingkah yang tersedia."
-#: add-patch.c:1575
+#: add-patch.c:1581
msgid "No other hunks to search"
msgstr "Tidak ada bingkah lainnya untuk dicari"
-#: add-patch.c:1581 git-add--interactive.perl:1663
+#: add-patch.c:1587 git-add--interactive.perl:1663
msgid "search for regex? "
msgstr "cari untuk regex? "
-#: add-patch.c:1596
+#: add-patch.c:1602
#, c-format
msgid "Malformed search regexp %s: %s"
msgstr "regexp pencarian %s cacat: %s"
-#: add-patch.c:1613
+#: add-patch.c:1619
msgid "No hunk matches the given pattern"
msgstr "Tidak ada bingkah yang cocok dengan pola yang diberikan"
-#: add-patch.c:1620
+#: add-patch.c:1626
msgid "Sorry, cannot split this hunk"
msgstr "Maaf, tidak dapat membelah bingkah ini"
-#: add-patch.c:1624
+#: add-patch.c:1630
#, c-format
msgid "Split into %d hunks."
msgstr "Terbelah ke dalam %d bingkah."
-#: add-patch.c:1628
+#: add-patch.c:1634
msgid "Sorry, cannot edit this hunk"
msgstr "Maaf, tidak dapat menyunting bingkah ini"
-#: add-patch.c:1680
+#: add-patch.c:1686
msgid "'git apply' failed"
msgstr "'git apply' gagal"
-#: advice.c:78
+#: advice.c:81
#, c-format
msgid ""
"\n"
@@ -745,37 +744,37 @@ msgstr ""
"\n"
"Nonaktifkan pesan ini dengan \"git config advice.%s false\""
-#: advice.c:94
+#: advice.c:97
#, c-format
msgid "%shint: %.*s%s\n"
msgstr "%shint: %.*s%s\n"
-#: advice.c:178
+#: advice.c:181
msgid "Cherry-picking is not possible because you have unmerged files."
msgstr "Pemetikan ceri tidak mungkin sebab Anda punya berkas tak tergabung."
-#: advice.c:180
+#: advice.c:183
msgid "Committing is not possible because you have unmerged files."
msgstr "Pengkomitan tidak mungkin sebab Anda punya berkas tak tergabung."
-#: advice.c:182
+#: advice.c:185
msgid "Merging is not possible because you have unmerged files."
msgstr "Penggabungan tidak mungkin sebab Anda punya berkas tak tergabung."
-#: advice.c:184
+#: advice.c:187
msgid "Pulling is not possible because you have unmerged files."
msgstr "Penarikan tidak mungkin sebab Anda punya berkas tak tergabung."
-#: advice.c:186
+#: advice.c:189
msgid "Reverting is not possible because you have unmerged files."
msgstr "Pembalikkan tidak mungkin sebab Anda punya berkas tak tergabung."
-#: advice.c:188
+#: advice.c:191
#, c-format
msgid "It is not possible to %s because you have unmerged files."
msgstr "Tidak mungkin untuk %s sebab Anda punya berkas tak tergabung."
-#: advice.c:196
+#: advice.c:199
msgid ""
"Fix them up in the work tree, and then use 'git add/rm <file>'\n"
"as appropriate to mark resolution and make a commit."
@@ -783,27 +782,27 @@ msgstr ""
"Perbaiki di dalam pohon kerja, lalu gunakan 'git add/rm <berkas>'\n"
"sebagaimana mestinya untuk menandai resolusi dan membuat sebuah komit."
-#: advice.c:204
+#: advice.c:207
msgid "Exiting because of an unresolved conflict."
msgstr "Keluar karena sebuah konflik tak terselesaikan."
-#: advice.c:209 builtin/merge.c:1382
+#: advice.c:212 builtin/merge.c:1388
msgid "You have not concluded your merge (MERGE_HEAD exists)."
msgstr "Anda belum mengakhiri penggabungan Anda (MERGE_HEAD ada)."
-#: advice.c:211
+#: advice.c:214
msgid "Please, commit your changes before merging."
msgstr "Mohon komit perubahan Anda sebelum menggabungkan."
-#: advice.c:212
+#: advice.c:215
msgid "Exiting because of unfinished merge."
msgstr "Keluar karena penggabungan belum selesai."
-#: advice.c:217
+#: advice.c:220
msgid "Not possible to fast-forward, aborting."
msgstr "Tidak mungkin untuk maju cepat, batalkan."
-#: advice.c:227
+#: advice.c:230
#, c-format
msgid ""
"The following paths and/or pathspecs matched paths that exist\n"
@@ -814,7 +813,7 @@ msgstr ""
"di luar definisi checkout tipis Anda, jadi tidak akan diperbarui\n"
"di dalam indeks:\n"
-#: advice.c:234
+#: advice.c:237
msgid ""
"If you intend to update such entries, try one of the following:\n"
"* Use the --sparse option.\n"
@@ -824,7 +823,7 @@ msgstr ""
"* Gunakan opsi --sparse\n"
"* Nonaktifkan atau modifikasi aturan kejarangan."
-#: advice.c:242
+#: advice.c:245
#, c-format
msgid ""
"Note: switching to '%s'.\n"
@@ -848,12 +847,15 @@ msgid ""
msgstr ""
"Catatan: berganti ke '%s'.\n"
"\n"
-"Anda berada dalam keadaan 'HEAD terpisah'. Anda dapat melihat-lihat, membuat\n"
-"perubahan eksperimental and komit, dan Anda dapat membuang komit apa saja yang\n"
-"Anda buat di dalam keadaan ini tanpa mempengaruhi cabang apapun dengan bergantin"
-"kembali ke sebuah cabang.\n"
+"Anda berada dalam keadaan 'HEAD terpisah'. Anda dapat melihat-lihat, "
+"membuat\n"
+"perubahan eksperimental and komit, dan Anda dapat membuang komit apa saja "
+"yang\n"
+"Anda buat di dalam keadaan ini tanpa mempengaruhi cabang apapun dengan "
+"bergantinkembali ke sebuah cabang.\n"
"\n"
-"Jika Anda ingin membuat cabang baru untuk menyimpan komit yang Anda buat, Anda\n"
+"Jika Anda ingin membuat cabang baru untuk menyimpan komit yang Anda buat, "
+"Anda\n"
"dapat melakukannya (sekarang atau nanti) dengan:\n"
"\n"
" git switch -c <nama cabang baru>\n"
@@ -862,8 +864,8 @@ msgstr ""
"\n"
" git switch -\n"
"\n"
-"Matikan saran ini dengan menyetel variabel konfigurasi advice.detachedHead ke "
-"false\n"
+"Matikan saran ini dengan menyetel variabel konfigurasi advice.detachedHead "
+"ke false\n"
"\n"
#: alias.c:50
@@ -884,82 +886,85 @@ msgstr "opsi spasi putih tidak dikenal '%s'"
msgid "unrecognized whitespace ignore option '%s'"
msgstr "opsi abai spasi putih tidak dikenal '%s'"
-#: apply.c:136 archive.c:584 range-diff.c:559 revision.c:2303 revision.c:2307
-#: revision.c:2316 revision.c:2321 revision.c:2527 revision.c:2870
-#: revision.c:2874 revision.c:2880 revision.c:2883 revision.c:2885
-#: builtin/add.c:510 builtin/add.c:512 builtin/add.c:529 builtin/add.c:541
-#: builtin/branch.c:727 builtin/checkout.c:467 builtin/checkout.c:470
-#: builtin/checkout.c:1644 builtin/checkout.c:1754 builtin/checkout.c:1757
-#: builtin/clone.c:906 builtin/commit.c:358 builtin/commit.c:361
-#: builtin/commit.c:1196 builtin/describe.c:593 builtin/diff-tree.c:155
-#: builtin/difftool.c:733 builtin/fast-export.c:1245 builtin/fetch.c:2038
-#: builtin/fetch.c:2043 builtin/index-pack.c:1852 builtin/init-db.c:560
-#: builtin/log.c:1946 builtin/log.c:1948 builtin/ls-files.c:778
-#: builtin/merge.c:1403 builtin/merge.c:1405 builtin/pack-objects.c:4073
-#: builtin/push.c:592 builtin/push.c:630 builtin/push.c:636 builtin/push.c:641
-#: builtin/rebase.c:1193 builtin/rebase.c:1195 builtin/rebase.c:1199
-#: builtin/repack.c:684 builtin/repack.c:715 builtin/reset.c:426
-#: builtin/reset.c:462 builtin/rev-list.c:541 builtin/show-branch.c:710
-#: builtin/stash.c:1707 builtin/stash.c:1710 builtin/submodule--helper.c:1316
-#: builtin/submodule--helper.c:2975 builtin/tag.c:526 builtin/tag.c:572
-#: builtin/worktree.c:702
+#: apply.c:138 archive.c:584 parse-options.c:1122 range-diff.c:555
+#: revision.c:2314 revision.c:2318 revision.c:2327 revision.c:2332
+#: revision.c:2560 revision.c:2895 revision.c:2899 revision.c:2907
+#: revision.c:2910 revision.c:2912 builtin/add.c:507 builtin/add.c:509
+#: builtin/add.c:515 builtin/add.c:527 builtin/branch.c:755
+#: builtin/checkout.c:472 builtin/checkout.c:475 builtin/checkout.c:1663
+#: builtin/checkout.c:1773 builtin/checkout.c:1776 builtin/clone.c:921
+#: builtin/commit.c:359 builtin/commit.c:362 builtin/commit.c:1200
+#: builtin/commit.c:1256 builtin/commit.c:1273 builtin/describe.c:593
+#: builtin/diff-tree.c:155 builtin/difftool.c:733 builtin/fast-export.c:1245
+#: builtin/fetch.c:2141 builtin/fetch.c:2162 builtin/fetch.c:2167
+#: builtin/help.c:602 builtin/index-pack.c:1858 builtin/init-db.c:560
+#: builtin/log.c:1968 builtin/log.c:1970 builtin/ls-files.c:778
+#: builtin/merge-base.c:163 builtin/merge-base.c:169 builtin/merge.c:1409
+#: builtin/merge.c:1411 builtin/pack-objects.c:4098 builtin/push.c:592
+#: builtin/push.c:630 builtin/push.c:636 builtin/push.c:641
+#: builtin/rebase.c:1221 builtin/rebase.c:1223 builtin/rebase.c:1227
+#: builtin/repack.c:688 builtin/repack.c:719 builtin/reset.c:433
+#: builtin/reset.c:469 builtin/rev-list.c:537 builtin/show-branch.c:711
+#: builtin/stash.c:1696 builtin/stash.c:1699 builtin/submodule--helper.c:1328
+#: builtin/submodule--helper.c:3054 builtin/tag.c:527 builtin/tag.c:573
+#: builtin/worktree.c:779
#, c-format
msgid "options '%s' and '%s' cannot be used together"
msgstr "Opsi '%s' dan '%s' tidak dapat digunakan bersamaan"
-#: apply.c:139 apply.c:150 apply.c:153
+#: apply.c:141 apply.c:152 apply.c:155
#, c-format
msgid "'%s' outside a repository"
msgstr "'%s' di luar repositori"
-#: apply.c:800
+#: apply.c:807
#, c-format
msgid "Cannot prepare timestamp regexp %s"
msgstr "Tidak dapat menyiapkan ekspresi reguler stempel waktu %s"
-#: apply.c:809
+#: apply.c:816
#, c-format
msgid "regexec returned %d for input: %s"
msgstr "regexec kembalikan %d untuk input: %s"
-#: apply.c:883
+#: apply.c:890
#, c-format
msgid "unable to find filename in patch at line %d"
msgstr "tidak dapat menemukan nama berkas dalam tambalan pada baris %d"
-#: apply.c:921
+#: apply.c:928
#, c-format
msgid "git apply: bad git-diff - expected /dev/null, got %s on line %d"
msgstr "git apply: git-diff jelek - berharap /dev/null, dapat %s pada baris %d"
-#: apply.c:927
+#: apply.c:934
#, c-format
msgid "git apply: bad git-diff - inconsistent new filename on line %d"
msgstr ""
"git apply: git-diff jelek - nama berkas baru tidak konsisten pada baris %d"
-#: apply.c:928
+#: apply.c:935
#, c-format
msgid "git apply: bad git-diff - inconsistent old filename on line %d"
msgstr ""
"git apply: git-diff jelek - nama berkas lama tidak konsisten pada baris %d"
-#: apply.c:933
+#: apply.c:940
#, c-format
msgid "git apply: bad git-diff - expected /dev/null on line %d"
msgstr "git apply: git-diff jelek - berharap /dev/null pada baris %d"
-#: apply.c:962
+#: apply.c:969
#, c-format
msgid "invalid mode on line %d: %s"
msgstr "mode tidak valid pada baris %d: %s"
-#: apply.c:1281
+#: apply.c:1288
#, c-format
msgid "inconsistent header lines %d and %d"
msgstr "kepala baris %d dan %d tidak konsisten"
-#: apply.c:1371
+#: apply.c:1378
#, c-format
msgid ""
"git diff header lacks filename information when removing %d leading pathname "
@@ -974,92 +979,92 @@ msgstr[1] ""
"kepala git diff kekurangan informasi nama berkas ketika menghapus %d "
"komponen nama jalur terkemuka (baris %d)"
-#: apply.c:1384
+#: apply.c:1391
#, c-format
msgid "git diff header lacks filename information (line %d)"
msgstr "kepala git diff kekurangan informasi nama berkas (baris %d)"
-#: apply.c:1480
+#: apply.c:1487
#, c-format
msgid "recount: unexpected line: %.*s"
msgstr "recount: baris tidak diharapkan: %.*s"
-#: apply.c:1549
+#: apply.c:1556
#, c-format
msgid "patch fragment without header at line %d: %.*s"
msgstr "pecahan tambalan tanpa kepala pada baris %d: %.*s"
-#: apply.c:1752
+#: apply.c:1759
msgid "new file depends on old contents"
msgstr "berkas baru bergantung pada konten yang lama"
-#: apply.c:1754
+#: apply.c:1761
msgid "deleted file still has contents"
msgstr "berkas terhapus masih ada konten"
-#: apply.c:1788
+#: apply.c:1795
#, c-format
msgid "corrupt patch at line %d"
msgstr "tambalan rusak pada baris %d"
-#: apply.c:1825
+#: apply.c:1832
#, c-format
msgid "new file %s depends on old contents"
msgstr "berkas baru %s bergantung pada konten yang lama"
-#: apply.c:1827
+#: apply.c:1834
#, c-format
msgid "deleted file %s still has contents"
msgstr "berkas yang dihapus %s masih ada konten"
-#: apply.c:1830
+#: apply.c:1837
#, c-format
msgid "** warning: file %s becomes empty but is not deleted"
msgstr "** peringatan: berkas %s menjadi kosong tetapi tidak dihapus"
-#: apply.c:1978
+#: apply.c:1985
#, c-format
msgid "corrupt binary patch at line %d: %.*s"
msgstr "tambalan biner rusak pada baris %d: %.*s"
-#: apply.c:2015
+#: apply.c:2022
#, c-format
msgid "unrecognized binary patch at line %d"
msgstr "tambalan biner tidak dikenal pada baris %d"
-#: apply.c:2177
+#: apply.c:2184
#, c-format
msgid "patch with only garbage at line %d"
msgstr "tambal dengan hanya sampah pada baris %d"
-#: apply.c:2263
+#: apply.c:2270
#, c-format
msgid "unable to read symlink %s"
msgstr "tidak dapat membaca tautan simbolik %s"
-#: apply.c:2267
+#: apply.c:2274
#, c-format
msgid "unable to open or read %s"
msgstr "tidak dapat membuka atau membaca %s"
-#: apply.c:2936
+#: apply.c:2943
#, c-format
msgid "invalid start of line: '%c'"
msgstr "awal baris tidak valid: '%c'"
-#: apply.c:3057
+#: apply.c:3064
#, c-format
msgid "Hunk #%d succeeded at %d (offset %d line)."
msgid_plural "Hunk #%d succeeded at %d (offset %d lines)."
msgstr[0] "Bingkah #%d berhasil pada %d (ganti %d baris)."
msgstr[1] "Bingkah #%d berhasil pada %d (ganti %d baris)."
-#: apply.c:3069
+#: apply.c:3076
#, c-format
msgid "Context reduced to (%ld/%ld) to apply fragment at %d"
msgstr "Konteks dikurangi menjadi (%ld/%ld) untuk terapkan pecahan pada %d"
-#: apply.c:3075
+#: apply.c:3082
#, c-format
msgid ""
"while searching for:\n"
@@ -1068,453 +1073,453 @@ msgstr ""
"ketika mencari:\n"
"%.*s"
-#: apply.c:3097
+#: apply.c:3104
#, c-format
msgid "missing binary patch data for '%s'"
msgstr "data tambalan biner hilang untuk '%s'"
-#: apply.c:3105
+#: apply.c:3112
#, c-format
msgid "cannot reverse-apply a binary patch without the reverse hunk to '%s'"
msgstr ""
"tidak dapat menerapkan balik tambalan biner tanpa membalikkan bingkah ke '%s'"
-#: apply.c:3152
+#: apply.c:3159
#, c-format
msgid "cannot apply binary patch to '%s' without full index line"
msgstr "tidak dapat menerapkan tambalan biner ke '%s' tanpa baris indeks penuh"
-#: apply.c:3163
+#: apply.c:3170
#, c-format
msgid ""
"the patch applies to '%s' (%s), which does not match the current contents."
msgstr ""
"tambalan diterapkan ke '%s' (%s), yang tidak cocok dengan konten saat ini."
-#: apply.c:3171
+#: apply.c:3178
#, c-format
msgid "the patch applies to an empty '%s' but it is not empty"
msgstr "tambalan diterapkan ke '%s' kosong tapi tidak kosong"
-#: apply.c:3189
+#: apply.c:3196
#, c-format
msgid "the necessary postimage %s for '%s' cannot be read"
msgstr "pascacitra %s yang diperlukan untuk '%s' tidak dapat dibaca"
-#: apply.c:3202
+#: apply.c:3209
#, c-format
msgid "binary patch does not apply to '%s'"
msgstr "tambalan biner tidak dapat diterapkan ke '%s'"
-#: apply.c:3209
+#: apply.c:3216
#, c-format
msgid "binary patch to '%s' creates incorrect result (expecting %s, got %s)"
msgstr ""
"tambalan biner ke '%s' membuat hasil yang salah (diharapkan %s, dapat %s)"
-#: apply.c:3230
+#: apply.c:3237
#, c-format
msgid "patch failed: %s:%ld"
msgstr "tambalan gagal: %s:%ld"
-#: apply.c:3353
+#: apply.c:3360
#, c-format
msgid "cannot checkout %s"
msgstr "tidak dapat men-checkout %s"
-#: apply.c:3405 apply.c:3416 apply.c:3462 midx.c:104 pack-revindex.c:214
-#: setup.c:309
+#: apply.c:3412 apply.c:3423 apply.c:3469 midx.c:105 pack-revindex.c:214
+#: setup.c:310
#, c-format
msgid "failed to read %s"
msgstr "gagal membaca %s"
-#: apply.c:3413
+#: apply.c:3420
#, c-format
msgid "reading from '%s' beyond a symbolic link"
msgstr "membaca dari '%s' diluar tautan simbolik"
-#: apply.c:3442 apply.c:3711
+#: apply.c:3449 apply.c:3721
#, c-format
msgid "path %s has been renamed/deleted"
msgstr "jalus %s sudah dinamai ulang/dihapus"
-#: apply.c:3549 apply.c:3726
+#: apply.c:3559 apply.c:3736
#, c-format
msgid "%s: does not exist in index"
msgstr "%s: tidak ada di indeks"
-#: apply.c:3558 apply.c:3734 apply.c:3978
+#: apply.c:3568 apply.c:3744 apply.c:3960
#, c-format
msgid "%s: does not match index"
msgstr "%s: tidak cocok dengan indeks"
-#: apply.c:3595
+#: apply.c:3605
msgid "repository lacks the necessary blob to perform 3-way merge."
msgstr ""
"repositori kekurangan blob yang diperlukan untuk melakukan penggabungan 3 "
"arah."
-#: apply.c:3598
+#: apply.c:3608
#, c-format
msgid "Performing three-way merge...\n"
msgstr "Melakukan penggabungan 3 arah...\n"
-#: apply.c:3614 apply.c:3618
+#: apply.c:3624 apply.c:3628
#, c-format
msgid "cannot read the current contents of '%s'"
msgstr "tidak dapat membaca konten saat ini dari '%s'"
-#: apply.c:3630
+#: apply.c:3640
#, c-format
msgid "Failed to perform three-way merge...\n"
msgstr "Gagal melakukan penggabungan 3 arah...\n"
-#: apply.c:3644
+#: apply.c:3654
#, c-format
msgid "Applied patch to '%s' with conflicts.\n"
msgstr "Tambalan diterapkan ke '%s' dengan konflik.\n"
-#: apply.c:3649
+#: apply.c:3659
#, c-format
msgid "Applied patch to '%s' cleanly.\n"
msgstr "Tambalan diterapkan ke '%s' dengan rapi.\n"
-#: apply.c:3666
+#: apply.c:3676
#, c-format
msgid "Falling back to direct application...\n"
msgstr "Mundur ke penerapan langsung...\n"
-#: apply.c:3678
+#: apply.c:3688
msgid "removal patch leaves file contents"
msgstr "tambalan penghapusan meninggalkan isi berkas"
-#: apply.c:3751
+#: apply.c:3761
#, c-format
msgid "%s: wrong type"
msgstr "%s: salah tipe"
-#: apply.c:3753
+#: apply.c:3763
#, c-format
msgid "%s has type %o, expected %o"
msgstr "%s bertipe %o, diharapkan %o"
-#: apply.c:3918 apply.c:3920 read-cache.c:889 read-cache.c:918
-#: read-cache.c:1381
+#: apply.c:3900 apply.c:3902 read-cache.c:903 read-cache.c:932
+#: read-cache.c:1399
#, c-format
msgid "invalid path '%s'"
msgstr "jalur tidak valid '%s'"
-#: apply.c:3976
+#: apply.c:3958
#, c-format
msgid "%s: already exists in index"
msgstr "%s: sudah ada di indeks"
-#: apply.c:3980
+#: apply.c:3962
#, c-format
msgid "%s: already exists in working directory"
msgstr "%s: sudah ada di direktori kerja"
-#: apply.c:4000
+#: apply.c:3982
#, c-format
msgid "new mode (%o) of %s does not match old mode (%o)"
msgstr "mode baru (%o) dari %s tidak cocok dengan mode lama (%o)"
-#: apply.c:4005
+#: apply.c:3987
#, c-format
msgid "new mode (%o) of %s does not match old mode (%o) of %s"
msgstr "mode baru (%o) dari %s tidak cocok dengan mode lama (%o) dari %s"
-#: apply.c:4025
+#: apply.c:4007
#, c-format
msgid "affected file '%s' is beyond a symbolic link"
msgstr "berkas yang terpengaruh '%s' diluar tautan simbolik"
-#: apply.c:4029
+#: apply.c:4011
#, c-format
msgid "%s: patch does not apply"
msgstr "%s: tambalan tak diterapkan"
-#: apply.c:4044
+#: apply.c:4026
#, c-format
msgid "Checking patch %s..."
msgstr "Memeriksa tambalan %s..."
-#: apply.c:4136
+#: apply.c:4118
#, c-format
msgid "sha1 information is lacking or useless for submodule %s"
msgstr "informasi sha1 kurang atau tidak berguna untuk submodul %s"
-#: apply.c:4143
+#: apply.c:4125
#, c-format
msgid "mode change for %s, which is not in current HEAD"
msgstr "perubahan mode untuk %s, yang bukan dalam HEAD saat ini"
-#: apply.c:4146
+#: apply.c:4128
#, c-format
msgid "sha1 information is lacking or useless (%s)."
msgstr "informasi sha1 kurang atau tidak berguna (%s)"
-#: apply.c:4155
+#: apply.c:4137
#, c-format
msgid "could not add %s to temporary index"
msgstr "tidak dapat menambahkan %s ke indeks sementara"
-#: apply.c:4165
+#: apply.c:4147
#, c-format
msgid "could not write temporary index to %s"
msgstr "tidak dapat menulis indeks sementara ke %s"
-#: apply.c:4303
+#: apply.c:4285
#, c-format
msgid "unable to remove %s from index"
msgstr "tidak dapat menghapus %s dari indeks"
-#: apply.c:4337
+#: apply.c:4319
#, c-format
msgid "corrupt patch for submodule %s"
msgstr "tambalan rusak untuk submodul %s"
-#: apply.c:4343
+#: apply.c:4325
#, c-format
msgid "unable to stat newly created file '%s'"
msgstr "tidak dapat men-stat berkas yang baru dibuat '%s'"
-#: apply.c:4351
+#: apply.c:4333
#, c-format
msgid "unable to create backing store for newly created file %s"
msgstr ""
"tidak dapat membuat simpanan pendukung untuk berkas yang baru dibuat %s"
-#: apply.c:4357 apply.c:4502
+#: apply.c:4339 apply.c:4484
#, c-format
msgid "unable to add cache entry for %s"
msgstr "tidak dapat menambahkan entri tembolok untuk %s"
-#: apply.c:4400 builtin/bisect--helper.c:540 builtin/gc.c:2258
+#: apply.c:4382 builtin/bisect--helper.c:540 builtin/gc.c:2258
#: builtin/gc.c:2293
#, c-format
msgid "failed to write to '%s'"
msgstr "gagal menulis ke '%s'"
-#: apply.c:4404
+#: apply.c:4386
#, c-format
msgid "closing file '%s'"
msgstr "menutup berkas '%s'"
-#: apply.c:4474
+#: apply.c:4456
#, c-format
msgid "unable to write file '%s' mode %o"
msgstr "tidak dapat menulis berkas '%s' mode %o"
-#: apply.c:4572
+#: apply.c:4554
#, c-format
msgid "Applied patch %s cleanly."
msgstr "Tambalan %s diterapkan dengan rapi."
-#: apply.c:4580
+#: apply.c:4562
msgid "internal error"
msgstr "kesalahan internal"
-#: apply.c:4583
+#: apply.c:4565
#, c-format
msgid "Applying patch %%s with %d reject..."
msgid_plural "Applying patch %%s with %d rejects..."
msgstr[0] "Menerapkan tambalan %%s dengan %d penolakan..."
msgstr[1] "Menerapkan tambalan %%s dengan %d penolakan..."
-#: apply.c:4594
+#: apply.c:4576
#, c-format
msgid "truncating .rej filename to %.*s.rej"
msgstr "memotong nama berkas .rej ke %.*s.rej"
-#: apply.c:4602
+#: apply.c:4584
#, c-format
msgid "cannot open %s"
msgstr "tidak dapat membuka %s"
-#: apply.c:4616
+#: apply.c:4598
#, c-format
msgid "Hunk #%d applied cleanly."
msgstr "Bingkah #%d diterapkan dengan rapi."
-#: apply.c:4620
+#: apply.c:4602
#, c-format
msgid "Rejected hunk #%d."
msgstr "Bingkah #%d ditolak."
-#: apply.c:4749
+#: apply.c:4731
#, c-format
msgid "Skipped patch '%s'."
msgstr "Tambalan '%s' dilewatkan."
-#: apply.c:4758
+#: apply.c:4740
msgid "No valid patches in input (allow with \"--allow-empty\")"
msgstr ""
-#: apply.c:4779
+#: apply.c:4761
msgid "unable to read index file"
msgstr "tidak dapa membaca berkas indeks"
-#: apply.c:4936
+#: apply.c:4918
#, c-format
msgid "can't open patch '%s': %s"
msgstr "tidak dapat membuka tambalan '%s': %s"
-#: apply.c:4963
+#: apply.c:4945
#, c-format
msgid "squelched %d whitespace error"
msgid_plural "squelched %d whitespace errors"
msgstr[0] "%d kesalahan spasi putih dipadamkan"
msgstr[1] "%d kesalahan spasi putih dipadamkan"
-#: apply.c:4969 apply.c:4984
+#: apply.c:4951 apply.c:4966
#, c-format
msgid "%d line adds whitespace errors."
msgid_plural "%d lines add whitespace errors."
msgstr[0] "%d baris menambahkan kesalahan spasi putih."
msgstr[1] "%d baris menambahkan kesalahan spasi putih."
-#: apply.c:4977
+#: apply.c:4959
#, c-format
msgid "%d line applied after fixing whitespace errors."
msgid_plural "%d lines applied after fixing whitespace errors."
msgstr[0] "%d baris diterapkan setelah memperbaiki kesalahan spasi putih."
msgstr[1] "%d baris diterapkan setelah memperbaiki kesalahan spasi putih."
-#: apply.c:4993 builtin/add.c:704 builtin/mv.c:338 builtin/rm.c:430
+#: apply.c:4975 builtin/add.c:690 builtin/mv.c:338 builtin/rm.c:430
msgid "Unable to write new index file"
msgstr "Tidak dapat menulis berkas indeks baru"
-#: apply.c:5021
+#: apply.c:5003
msgid "don't apply changes matching the given path"
msgstr "jangan terapkan perubahan yang cocok dengan jalur yang diberikan"
-#: apply.c:5024
+#: apply.c:5006
msgid "apply changes matching the given path"
msgstr "terapkan perubahan yang cocok dengan jalur yang diberikan"
-#: apply.c:5026 builtin/am.c:2376
+#: apply.c:5008 builtin/am.c:2379
msgid "num"
msgstr "jumlah"
-#: apply.c:5027
+#: apply.c:5009
msgid "remove <num> leading slashes from traditional diff paths"
msgstr "hapus <jumlah> garis miring terkemuka dari jalur diff tradisional"
-#: apply.c:5030
+#: apply.c:5012
msgid "ignore additions made by the patch"
msgstr "abaikan penambahan yang dibuat oleh tambalan"
-#: apply.c:5032
+#: apply.c:5014
msgid "instead of applying the patch, output diffstat for the input"
msgstr "daripada menerapkan tambalan, keluarkan diffstat untuk masukan"
-#: apply.c:5036
+#: apply.c:5018
msgid "show number of added and deleted lines in decimal notation"
msgstr ""
"perlihatkan jumlah baris yang ditambahkan dan dihapuskan dalam notasi desimal"
-#: apply.c:5038
+#: apply.c:5020
msgid "instead of applying the patch, output a summary for the input"
msgstr "daripada menerapkan tambalan, keluarkan ringkasan untuk masukan"
-#: apply.c:5040
+#: apply.c:5022
msgid "instead of applying the patch, see if the patch is applicable"
msgstr "daripada menerapkan tambalan, lihat jika tambalan bisa diterapkan"
-#: apply.c:5042
+#: apply.c:5024
msgid "make sure the patch is applicable to the current index"
msgstr "pastikan tambalan bisa diterapkan ke indeks saat ini"
-#: apply.c:5044
+#: apply.c:5026
msgid "mark new files with `git add --intent-to-add`"
msgstr "tandai berkas baru dengan `git add --intent-to-add`"
-#: apply.c:5046
+#: apply.c:5028
msgid "apply a patch without touching the working tree"
msgstr "terapkan sebuah tambalan tanpa menyentuh pohon kerja"
-#: apply.c:5048
+#: apply.c:5030
msgid "accept a patch that touches outside the working area"
msgstr "terima sebuah tambalan yang menyentuh di luar area kerja"
-#: apply.c:5051
+#: apply.c:5033
msgid "also apply the patch (use with --stat/--summary/--check)"
msgstr "juga terapkan tambalan (gunakan dengan --stat/--summary/--check)"
-#: apply.c:5053
+#: apply.c:5035
msgid "attempt three-way merge, fall back on normal patch if that fails"
msgstr "coba penggabungan tiga arah, mundur ke penambalan normal jika gagal"
-#: apply.c:5055
+#: apply.c:5037
msgid "build a temporary index based on embedded index information"
msgstr "bangun sebuah indeks sementara berdasarkan informasi indeks tertanam"
-#: apply.c:5058 builtin/checkout-index.c:196
+#: apply.c:5040 builtin/checkout-index.c:230
msgid "paths are separated with NUL character"
msgstr "jalur dipisahkan dengan karakter NUL"
-#: apply.c:5060
+#: apply.c:5042
msgid "ensure at least <n> lines of context match"
msgstr "pastikan setidaknya <n> baris dari konteks cocokan"
-#: apply.c:5061 builtin/am.c:2352 builtin/am.c:2355
+#: apply.c:5043 builtin/am.c:2355 builtin/am.c:2358
#: builtin/interpret-trailers.c:98 builtin/interpret-trailers.c:100
-#: builtin/interpret-trailers.c:102 builtin/pack-objects.c:3960
-#: builtin/rebase.c:1051
+#: builtin/interpret-trailers.c:102 builtin/pack-objects.c:3983
+#: builtin/rebase.c:1079
msgid "action"
msgstr "aksi"
-#: apply.c:5062
+#: apply.c:5044
msgid "detect new or modified lines that have whitespace errors"
msgstr "deteksi baris baru atau yang diubah yang ada kesalahan spasi putih"
-#: apply.c:5065 apply.c:5068
+#: apply.c:5047 apply.c:5050
msgid "ignore changes in whitespace when finding context"
msgstr "abaikan perubahan spasi putih ketika menemukan konteks"
-#: apply.c:5071
+#: apply.c:5053
msgid "apply the patch in reverse"
msgstr "terapkan tambalan terbalik"
-#: apply.c:5073
+#: apply.c:5055
msgid "don't expect at least one line of context"
msgstr "jangan harap setidaknya satu baris konteks"
-#: apply.c:5075
+#: apply.c:5057
msgid "leave the rejected hunks in corresponding *.rej files"
msgstr "tinggalkan bingkah yang ditolak pada berkas *.rej yang bersesuaian"
-#: apply.c:5077
+#: apply.c:5059
msgid "allow overlapping hunks"
msgstr "perbolehkan bingkah yang tumpang tindih"
-#: apply.c:5080
+#: apply.c:5062
msgid "tolerate incorrectly detected missing new-line at the end of file"
msgstr "tolerir baris baru hilang yang salah dideteksi pada akhir berkas"
-#: apply.c:5083
+#: apply.c:5065
msgid "do not trust the line counts in the hunk headers"
msgstr "jangan percaya hitungan baris pada kepala bingkah"
-#: apply.c:5085 builtin/am.c:2364
+#: apply.c:5067 builtin/am.c:2367
msgid "root"
msgstr "akar"
-#: apply.c:5086
+#: apply.c:5068
msgid "prepend <root> to all filenames"
msgstr "tambahkan <akar> di depan semua nama berkas"
-#: apply.c:5089
+#: apply.c:5071
msgid "don't return error for empty patches"
msgstr "jangan kembalikan kesalahan untuk tambalan kosong"
-#: archive-tar.c:125 archive-zip.c:345
+#: archive-tar.c:125 archive-zip.c:346
#, c-format
msgid "cannot stream blob %s"
msgstr "tidak dapat mengaruskan blob %s"
-#: archive-tar.c:265 archive-zip.c:358
+#: archive-tar.c:265 archive-zip.c:359
#, c-format
msgid "unsupported file mode: 0%o (SHA1: %s)"
msgstr "mode berkas tidak didukung: 0%o (SHA1: %s)"
@@ -1533,22 +1538,22 @@ msgstr "tidak dapat mengalihkan pendeskripsi"
msgid "'%s' filter reported error"
msgstr "saringan '%s' melaporkan kesalahan"
-#: archive-zip.c:318
+#: archive-zip.c:319
#, c-format
msgid "path is not valid UTF-8: %s"
msgstr "jalur bukan UTF-8 valid: %s"
-#: archive-zip.c:322
+#: archive-zip.c:323
#, c-format
msgid "path too long (%d chars, SHA1: %s): %s"
msgstr "jalur terlalu panjang (%d karakter, SHA1: %s): %s"
-#: archive-zip.c:469 builtin/pack-objects.c:365 builtin/pack-objects.c:368
+#: archive-zip.c:470 builtin/pack-objects.c:363 builtin/pack-objects.c:366
#, c-format
msgid "deflate error (%d)"
msgstr "kesalahan deflasi (%d)"
-#: archive-zip.c:603
+#: archive-zip.c:604
#, c-format
msgid "timestamp too large for this system: %<PRIuMAX>"
msgstr "stempel waktu terlalu besar untuk sistem ini: %<PRIuMAX>"
@@ -1557,10 +1562,6 @@ msgstr "stempel waktu terlalu besar untuk sistem ini: %<PRIuMAX>"
msgid "git archive [<options>] <tree-ish> [<path>...]"
msgstr "git archive [<opsi>] <mirip pohon> [<jalur>...]"
-#: archive.c:15
-msgid "git archive --list"
-msgstr "git archive --list"
-
#: archive.c:16
msgid ""
"git archive --remote <repo> [--exec <cmd>] [<options>] <tree-ish> [<path>...]"
@@ -1573,12 +1574,12 @@ msgid "git archive --remote <repo> [--exec <cmd>] --list"
msgstr "git archive --remote <repo> [--exec <perintah>] --list"
#: archive.c:188 archive.c:341 builtin/gc.c:497 builtin/notes.c:238
-#: builtin/tag.c:578
+#: builtin/tag.c:579
#, c-format
msgid "cannot read '%s'"
msgstr "tidak dapat membaca '%s'"
-#: archive.c:426 builtin/add.c:215 builtin/add.c:671 builtin/rm.c:334
+#: archive.c:426 builtin/add.c:214 builtin/add.c:657 builtin/rm.c:334
#, c-format
msgid "pathspec '%s' did not match any files"
msgstr "spek jalur '%s' tidak cocok dengan berkas apapun"
@@ -1620,7 +1621,7 @@ msgstr "fmt"
msgid "archive format"
msgstr "format arsip"
-#: archive.c:552 builtin/log.c:1790
+#: archive.c:552 builtin/log.c:1809
msgid "prefix"
msgstr "prefiks"
@@ -1628,12 +1629,12 @@ msgstr "prefiks"
msgid "prepend prefix to each pathname in the archive"
msgstr "tambahkan prefiks di depan setiap nama jalur dalam arsip"
-#: archive.c:554 archive.c:557 builtin/blame.c:880 builtin/blame.c:884
-#: builtin/blame.c:885 builtin/commit-tree.c:115 builtin/config.c:135
+#: archive.c:554 archive.c:557 builtin/blame.c:881 builtin/blame.c:885
+#: builtin/blame.c:886 builtin/commit-tree.c:115 builtin/config.c:135
#: builtin/fast-export.c:1181 builtin/fast-export.c:1183
-#: builtin/fast-export.c:1187 builtin/grep.c:935 builtin/hash-object.c:103
+#: builtin/fast-export.c:1187 builtin/grep.c:936 builtin/hash-object.c:104
#: builtin/ls-files.c:654 builtin/ls-files.c:657 builtin/notes.c:410
-#: builtin/notes.c:576 builtin/read-tree.c:115 parse-options.h:190
+#: builtin/notes.c:576 builtin/read-tree.c:115 parse-options.h:195
msgid "file"
msgstr "berkas"
@@ -1661,8 +1662,8 @@ msgstr "setel level kompresi"
msgid "list supported archive formats"
msgstr "daftar format arsip yang didukung"
-#: archive.c:568 builtin/archive.c:89 builtin/clone.c:118 builtin/clone.c:121
-#: builtin/submodule--helper.c:1870 builtin/submodule--helper.c:2513
+#: archive.c:568 builtin/archive.c:89 builtin/clone.c:122 builtin/clone.c:125
+#: builtin/submodule--helper.c:1884 builtin/submodule--helper.c:2718
msgid "repo"
msgstr "repositori"
@@ -1683,11 +1684,12 @@ msgstr "jalur ke perintah git-upload-archive remote"
msgid "Unexpected option --remote"
msgstr "Opsi --remote tak diharapkan"
-#: archive.c:580 fetch-pack.c:300 revision.c:2887 builtin/add.c:544
-#: builtin/add.c:576 builtin/checkout.c:1763 builtin/commit.c:370
-#: builtin/fast-export.c:1230 builtin/index-pack.c:1848 builtin/log.c:2115
-#: builtin/reset.c:435 builtin/reset.c:493 builtin/rm.c:281
-#: builtin/stash.c:1719 builtin/worktree.c:508 http-fetch.c:144
+#: archive.c:580 fetch-pack.c:300 revision.c:2914 builtin/add.c:530
+#: builtin/add.c:562 builtin/checkout.c:1782 builtin/clone.c:1099
+#: builtin/clone.c:1102 builtin/commit.c:371 builtin/fast-export.c:1230
+#: builtin/index-pack.c:1854 builtin/log.c:2140 builtin/reset.c:442
+#: builtin/reset.c:500 builtin/rm.c:281 builtin/stash.c:1708
+#: builtin/worktree.c:580 builtin/worktree.c:781 http-fetch.c:144
#: http-fetch.c:153
#, c-format
msgid "the option '%s' requires '%s'"
@@ -1707,17 +1709,17 @@ msgstr "Format arsip tidak dikenal '%s'"
msgid "Argument not supported for format '%s': -%d"
msgstr "Argumen tidak didukung untuk format '%s': -%d"
-#: attr.c:203
+#: attr.c:202
#, c-format
msgid "%.*s is not a valid attribute name"
msgstr ""
-#: attr.c:364
+#: attr.c:363
#, c-format
msgid "%s not allowed: %s:%d"
msgstr ""
-#: attr.c:404
+#: attr.c:403
msgid ""
"Negative patterns are ignored in git attributes\n"
"Use '\\!' for literal leading exclamation."
@@ -1733,12 +1735,12 @@ msgstr "Kontent terkutip jelek dalam berkas '%s': %s"
msgid "We cannot bisect more!\n"
msgstr "Kami tidak dapat membagi dua lagi!\n"
-#: bisect.c:764
+#: bisect.c:765
#, c-format
msgid "Not a valid commit name %s"
msgstr "Bukan sebuah nama komit yang valid %s"
-#: bisect.c:789
+#: bisect.c:790
#, c-format
msgid ""
"The merge base %s is bad.\n"
@@ -1747,7 +1749,7 @@ msgstr ""
"Dasar penggabungan %s jelek.\n"
"Ini berarti bug telah diperbaiki antara %s dan [%s].\n"
-#: bisect.c:794
+#: bisect.c:795
#, c-format
msgid ""
"The merge base %s is new.\n"
@@ -1756,7 +1758,7 @@ msgstr ""
"Dasar penggabungan %s baru.\n"
"Properti telah berubah antara %s dan [%s].\n"
-#: bisect.c:799
+#: bisect.c:800
#, c-format
msgid ""
"The merge base %s is %s.\n"
@@ -1765,7 +1767,7 @@ msgstr ""
"Dasar penggabungan %s adalah %s.\n"
"Ini berarti komit '%s' pertama adalah di antara %s dan [%s].\n"
-#: bisect.c:807
+#: bisect.c:808
#, c-format
msgid ""
"Some %s revs are not ancestors of the %s rev.\n"
@@ -1776,7 +1778,7 @@ msgstr ""
"git bisect tidak dapat bekerja dengan benar pada kasus ini.\n"
"Mungkin Anda salah mengira revisi %s dan %s?\n"
-#: bisect.c:820
+#: bisect.c:821
#, c-format
msgid ""
"the merge base between %s and [%s] must be skipped.\n"
@@ -1787,36 +1789,36 @@ msgstr ""
"Jadi kami tidak dapat yakin komit %s pertama di antara %s dan %s.\n"
"Kami tetap lanjutkan."
-#: bisect.c:859
+#: bisect.c:860
#, c-format
msgid "Bisecting: a merge base must be tested\n"
msgstr "Membagi dua: dasar penggabungan harus diuji\n"
-#: bisect.c:909
+#: bisect.c:910
#, c-format
msgid "a %s revision is needed"
msgstr "sebuah revisi %s diperlukan"
-#: bisect.c:939
+#: bisect.c:940
#, c-format
msgid "could not create file '%s'"
msgstr "tidak dapat membuat berkas '%s'"
-#: bisect.c:985 builtin/merge.c:155
+#: bisect.c:986 builtin/merge.c:155
#, c-format
msgid "could not read file '%s'"
msgstr "tidak dapat membaca berkas '%s'"
-#: bisect.c:1025
+#: bisect.c:1026
msgid "reading bisect refs failed"
msgstr "gagal membaca berkas referensi bagi dua"
-#: bisect.c:1055
+#: bisect.c:1056
#, c-format
msgid "%s was both %s and %s\n"
msgstr "%s sama-sama %s dan %s\n"
-#: bisect.c:1064
+#: bisect.c:1065
#, c-format
msgid ""
"No testable commit found.\n"
@@ -1825,7 +1827,7 @@ msgstr ""
"Tidak ada komit yang bisa diuji ditemukan.\n"
"Mungkin Anda mulai dengan argumen jalur jelek?\n"
-#: bisect.c:1093
+#: bisect.c:1094
#, c-format
msgid "(roughly %d step)"
msgid_plural "(roughly %d steps)"
@@ -1835,53 +1837,53 @@ msgstr[1] "(kira-kira %d langkah)"
#. TRANSLATORS: the last %s will be replaced with "(roughly %d
#. steps)" translation.
#.
-#: bisect.c:1099
+#: bisect.c:1100
#, c-format
msgid "Bisecting: %d revision left to test after this %s\n"
msgid_plural "Bisecting: %d revisions left to test after this %s\n"
msgstr[0] "Membagi dua: %d revisi tersisa untuk diuji setelah ini %s\n"
msgstr[1] "Membagi dua: %d revisi tersisa untuk diuji setelah ini %s\n"
-#: blame.c:2776
+#: blame.c:2773
msgid "--contents and --reverse do not blend well."
msgstr "--contents dan --reverse tidak dapat dipadu dengan baik."
-#: blame.c:2790
+#: blame.c:2787
msgid "cannot use --contents with final commit object name"
msgstr "tidak dapat menggunakan --contents dengan nama objek komit final"
-#: blame.c:2811
+#: blame.c:2808
msgid "--reverse and --first-parent together require specified latest commit"
msgstr ""
"--reverse dan --first-parent bersama-sama butuh komit terbaru yang disebutkan"
-#: blame.c:2820 bundle.c:224 midx.c:1042 ref-filter.c:2370 remote.c:2158
-#: sequencer.c:2352 sequencer.c:4899 submodule.c:883 builtin/commit.c:1114
-#: builtin/log.c:429 builtin/log.c:1036 builtin/log.c:1644 builtin/log.c:2071
-#: builtin/log.c:2362 builtin/merge.c:431 builtin/pack-objects.c:3373
-#: builtin/pack-objects.c:3775 builtin/pack-objects.c:3790
+#: blame.c:2817 bundle.c:231 midx.c:1058 ref-filter.c:2371 remote.c:2157
+#: sequencer.c:2348 sequencer.c:4872 submodule.c:913 builtin/commit.c:1118
+#: builtin/log.c:437 builtin/log.c:1055 builtin/log.c:1663 builtin/log.c:2096
+#: builtin/log.c:2387 builtin/merge.c:431 builtin/pack-objects.c:3381
+#: builtin/pack-objects.c:3781 builtin/pack-objects.c:3796
#: builtin/shortlog.c:255
msgid "revision walk setup failed"
msgstr "persiapan jalan revisi gagal"
-#: blame.c:2838
+#: blame.c:2835
msgid ""
"--reverse --first-parent together require range along first-parent chain"
msgstr ""
"--reverse --first-parent bersama-sama butuh rentang bersama rantai induk "
"pertama"
-#: blame.c:2849
+#: blame.c:2846
#, c-format
msgid "no such path %s in %s"
msgstr "tidak ada jalur seperti %s di %s"
-#: blame.c:2860
+#: blame.c:2857
#, c-format
msgid "cannot read blob %s for path %s"
msgstr "tidak dapat membaca blob %s untuk jalur %s"
-#: branch.c:77
+#: branch.c:93
msgid ""
"cannot inherit upstream tracking configuration of multiple refs when "
"rebasing is requested"
@@ -1889,31 +1891,31 @@ msgstr ""
"tidak dapat mewariskan konfigurasi pelacakan hulu banyak referensi ketika "
"pendasaran ulang diminta"
-#: branch.c:88
+#: branch.c:104
#, c-format
msgid "not setting branch '%s' as its own upstream"
msgstr "tidak menyetel '%s' sebagai hulunya"
-#: branch.c:144
+#: branch.c:160
#, c-format
msgid "branch '%s' set up to track '%s' by rebasing."
msgstr "cabang '%s' disiapkan untuk melacak '%s' oleh pendasaran ulang."
-#: branch.c:145
+#: branch.c:161
#, c-format
msgid "branch '%s' set up to track '%s'."
msgstr "cabang '%s' disiapkan untuk melacak '%s'."
-#: branch.c:148
+#: branch.c:164
#, c-format
msgid "branch '%s' set up to track:"
msgstr "cabang '%s' disiapkan untuk melacak:"
-#: branch.c:160
+#: branch.c:176
msgid "unable to write upstream branch configuration"
msgstr "tidak dapat menulis konfigurasi cabang hulu"
-#: branch.c:162
+#: branch.c:178
msgid ""
"\n"
"After fixing the error cause you may try to fix up\n"
@@ -1923,52 +1925,82 @@ msgstr ""
"Setelah memperbaiki penyebab kesalahan Anda dapat mencoba memperbaiki\n"
"informasi pelacakan remote dengan menjalankan:"
-#: branch.c:203
+#: branch.c:219
#, c-format
msgid "asked to inherit tracking from '%s', but no remote is set"
msgstr ""
"diminta mewariskan pelacakan dari '%s', tetapi tidak ada remote yang disetel"
-#: branch.c:209
+#: branch.c:225
#, c-format
msgid "asked to inherit tracking from '%s', but no merge configuration is set"
msgstr ""
"diminta mewariskan pelacakan dari '%s', tetapi tidak ada konfigurasi "
"penggabungan yang disetel"
-#: branch.c:252
+#: branch.c:277
#, c-format
-msgid "not tracking: ambiguous information for ref %s"
-msgstr "tak melacak: informasi ambigu untuk referensi %s"
+msgid "not tracking: ambiguous information for ref '%s'"
+msgstr "tak melacak: informasi ambigu untuk referensi '%s'"
-#: branch.c:287
+#. TRANSLATORS: This is a line listing a remote with duplicate
+#. refspecs in the advice message below. For RTL languages you'll
+#. probably want to swap the "%s" and leading " " space around.
+#.
+#. TRANSLATORS: This is line item of ambiguous object output
+#. from describe_ambiguous_object() above. For RTL languages
+#. you'll probably want to swap the "%s" and leading " " space
+#. around.
+#.
+#: branch.c:289 object-name.c:464
+#, c-format
+msgid " %s\n"
+msgstr ""
+
+#. TRANSLATORS: The second argument is a \n-delimited list of
+#. duplicate refspecs, composed above.
+#.
+#: branch.c:295
+#, c-format
+msgid ""
+"There are multiple remotes whose fetch refspecs map to the remote\n"
+"tracking ref '%s':\n"
+"%s\n"
+"This is typically a configuration error.\n"
+"\n"
+"To support setting up tracking branches, ensure that\n"
+"different remotes' fetch refspecs map into different\n"
+"tracking namespaces."
+msgstr ""
+
+#: branch.c:344
#, c-format
msgid "'%s' is not a valid branch name"
msgstr "'%s' bukan nama cabang valid"
-#: branch.c:307
+#: branch.c:364
#, c-format
msgid "a branch named '%s' already exists"
msgstr "sebuah cabang bernama '%s' sudah ada"
-#: branch.c:313
+#: branch.c:370
#, c-format
msgid "cannot force update the branch '%s' checked out at '%s'"
msgstr "tidak dapat memperbarui paksa cabang '%s' yang ter-check out pada '%s'"
-#: branch.c:336
+#: branch.c:393
#, c-format
msgid "cannot set up tracking information; starting point '%s' is not a branch"
msgstr ""
"tidak dapat menyiapkan informasi pelacakan; titik awal '%s' bukan sebuah "
"cabang"
-#: branch.c:338
+#: branch.c:395
#, c-format
msgid "the requested upstream branch '%s' does not exist"
msgstr "cabang hulu yang diminta '%s' tidak ada"
-#: branch.c:340
+#: branch.c:397
msgid ""
"\n"
"If you are planning on basing your work on an upstream\n"
@@ -1980,126 +2012,145 @@ msgid ""
"\"git push -u\" to set the upstream config as you push."
msgstr ""
-#: branch.c:384 builtin/replace.c:321 builtin/replace.c:377
+#: branch.c:445 builtin/replace.c:321 builtin/replace.c:377
#: builtin/replace.c:423 builtin/replace.c:453
#, c-format
msgid "not a valid object name: '%s'"
msgstr "bukan nama objek valid: '%s'"
-#: branch.c:404
+#: branch.c:465
#, c-format
msgid "ambiguous object name: '%s'"
msgstr "nama objek ambigu: '%s'"
-#: branch.c:409
+#: branch.c:470
#, c-format
msgid "not a valid branch point: '%s'"
msgstr "bukan sebuah titik cabang valid: '%s'"
-#: branch.c:469
+#: branch.c:658
+#, c-format
+msgid "submodule '%s': unable to find submodule"
+msgstr "submodul '%s': tidak dapat menemukan submodul"
+
+#: branch.c:661
+#, c-format
+msgid ""
+"You may try updating the submodules using 'git checkout %s && git submodule "
+"update --init'"
+msgstr ""
+"Anda dapat mencoba memperbarui submodul dengan 'git checkout %s && git "
+"submodule update --init'"
+
+#: branch.c:672 branch.c:698
+#, c-format
+msgid "submodule '%s': cannot create branch '%s'"
+msgstr "submodul '%s': tidak dapat membuat cabang '%s'"
+
+#: branch.c:730
#, c-format
msgid "'%s' is already checked out at '%s'"
msgstr "'%s' sudah di-checkout pada '%s'"
-#: branch.c:494
+#: branch.c:755
#, c-format
msgid "HEAD of working tree %s is not updated"
msgstr "HEAD dari pohon kerja %s tidak diperbarui"
-#: bundle.c:44
+#: bundle.c:45
#, c-format
msgid "unrecognized bundle hash algorithm: %s"
msgstr "algoritma hash bundel tidak dikenal: %s"
-#: bundle.c:48
+#: bundle.c:53
#, c-format
msgid "unknown capability '%s'"
msgstr "kapabilitas '%s' tidak dikenal"
-#: bundle.c:74
+#: bundle.c:79
#, c-format
msgid "'%s' does not look like a v2 or v3 bundle file"
msgstr "'%s' tidak terlihat seperti berkas bundel v2 atau v3"
-#: bundle.c:113
+#: bundle.c:118
#, c-format
msgid "unrecognized header: %s%s (%d)"
msgstr "kepala tidak dikenal: %s%s (%d)"
-#: bundle.c:140 rerere.c:464 rerere.c:674 sequencer.c:2620 sequencer.c:3406
-#: builtin/commit.c:862
+#: bundle.c:145 rerere.c:464 rerere.c:675 sequencer.c:2616 sequencer.c:3402
+#: builtin/commit.c:865
#, c-format
msgid "could not open '%s'"
msgstr "tidak dapat membuka '%s'"
-#: bundle.c:198
+#: bundle.c:203
msgid "Repository lacks these prerequisite commits:"
msgstr "Repositori kekurangan komit prasyarat berikut:"
-#: bundle.c:201
+#: bundle.c:206
msgid "need a repository to verify a bundle"
msgstr "perlu sebuah repositori untuk verifikasi bundel"
-#: bundle.c:257
+#: bundle.c:264
#, c-format
msgid "The bundle contains this ref:"
-msgid_plural "The bundle contains these %d refs:"
+msgid_plural "The bundle contains these %<PRIuMAX> refs:"
msgstr[0] "Bundel berisi referensi ini:"
-msgstr[1] "Bundel berisi %d referensi berikut:"
+msgstr[1] "Bundel berisi %<PRIuMAX> referensi berikut:"
-#: bundle.c:264
+#: bundle.c:272
msgid "The bundle records a complete history."
msgstr "Bundel merekam riwayat penuh."
-#: bundle.c:266
+#: bundle.c:274
#, c-format
msgid "The bundle requires this ref:"
-msgid_plural "The bundle requires these %d refs:"
+msgid_plural "The bundle requires these %<PRIuMAX> refs:"
msgstr[0] "Bundel membutuhkan referensi ini:"
-msgstr[1] "Bundel membutuhkan %d referensi berikut:"
+msgstr[1] "Bundel membutuhkan %<PRIuMAX> referensi berikut:"
-#: bundle.c:333
+#: bundle.c:350
msgid "unable to dup bundle descriptor"
msgstr "tidak dapat men-dup pendeskripsi bundel"
-#: bundle.c:340
+#: bundle.c:357
msgid "Could not spawn pack-objects"
msgstr "Tidak dapat menghidupkan pack-objects"
-#: bundle.c:351
+#: bundle.c:368
msgid "pack-objects died"
msgstr "pack-objects mati"
-#: bundle.c:400
+#: bundle.c:417
#, c-format
msgid "ref '%s' is excluded by the rev-list options"
msgstr "referensi '%s' dikecualikan oleh opsi rev-list"
-#: bundle.c:504
+#: bundle.c:533 builtin/log.c:211 builtin/log.c:1975 builtin/shortlog.c:400
+#, c-format
+msgid "unrecognized argument: %s"
+msgstr "argumen tidak dikenal: %s"
+
+#: bundle.c:548
#, c-format
msgid "unsupported bundle version %d"
msgstr "versi bundle %d tidak didukung"
-#: bundle.c:506
+#: bundle.c:550
#, c-format
msgid "cannot write bundle version %d with algorithm %s"
msgstr "tidak dapat menulis versi bundel %d dengan algoritma %s"
-#: bundle.c:524 builtin/log.c:210 builtin/log.c:1953 builtin/shortlog.c:399
-#, c-format
-msgid "unrecognized argument: %s"
-msgstr "argumen tidak dikenal: %s"
-
-#: bundle.c:553
+#: bundle.c:600
msgid "Refusing to create empty bundle."
msgstr "Menolak memuat bundel kosong."
-#: bundle.c:563
+#: bundle.c:610
#, c-format
msgid "cannot create '%s'"
msgstr "tidak dapat membuat '%s'"
-#: bundle.c:588
+#: bundle.c:639
msgid "index-pack died"
msgstr "index-pack mati"
@@ -2127,7 +2178,7 @@ msgstr ""
msgid "invalid color value: %.*s"
msgstr ""
-#: commit-graph.c:204 midx.c:51
+#: commit-graph.c:204 midx.c:52
msgid "invalid hash version"
msgstr ""
@@ -2155,234 +2206,235 @@ msgstr ""
msgid "commit-graph file is too small to hold %u chunks"
msgstr ""
-#: commit-graph.c:482
+#: commit-graph.c:485
msgid "commit-graph has no base graphs chunk"
msgstr ""
-#: commit-graph.c:492
+#: commit-graph.c:495
msgid "commit-graph chain does not match"
msgstr ""
-#: commit-graph.c:540
+#: commit-graph.c:543
#, c-format
msgid "invalid commit-graph chain: line '%s' not a hash"
msgstr ""
-#: commit-graph.c:564
+#: commit-graph.c:567
msgid "unable to find all commit-graph files"
msgstr ""
-#: commit-graph.c:749 commit-graph.c:786
+#: commit-graph.c:752 commit-graph.c:789
msgid "invalid commit position. commit-graph is likely corrupt"
msgstr ""
-#: commit-graph.c:770
+#: commit-graph.c:773
#, c-format
msgid "could not find commit %s"
msgstr ""
-#: commit-graph.c:803
+#: commit-graph.c:806
msgid "commit-graph requires overflow generation data but has none"
msgstr ""
-#: commit-graph.c:1108 builtin/am.c:1369
+#: commit-graph.c:1111 builtin/am.c:1370 builtin/checkout.c:775
+#: builtin/clone.c:705
#, c-format
msgid "unable to parse commit %s"
msgstr ""
-#: commit-graph.c:1370 builtin/pack-objects.c:3070
+#: commit-graph.c:1373 builtin/pack-objects.c:3078
#, c-format
msgid "unable to get type of object %s"
msgstr ""
-#: commit-graph.c:1401
+#: commit-graph.c:1404
msgid "Loading known commits in commit graph"
msgstr ""
-#: commit-graph.c:1418
+#: commit-graph.c:1421
msgid "Expanding reachable commits in commit graph"
msgstr ""
-#: commit-graph.c:1438
+#: commit-graph.c:1441
msgid "Clearing commit marks in commit graph"
msgstr ""
-#: commit-graph.c:1457
+#: commit-graph.c:1460
msgid "Computing commit graph topological levels"
msgstr ""
-#: commit-graph.c:1510
+#: commit-graph.c:1513
msgid "Computing commit graph generation numbers"
msgstr ""
-#: commit-graph.c:1591
+#: commit-graph.c:1598
msgid "Computing commit changed paths Bloom filters"
msgstr ""
-#: commit-graph.c:1668
+#: commit-graph.c:1675
msgid "Collecting referenced commits"
msgstr ""
-#: commit-graph.c:1693
+#: commit-graph.c:1701
#, c-format
-msgid "Finding commits for commit graph in %d pack"
-msgid_plural "Finding commits for commit graph in %d packs"
+msgid "Finding commits for commit graph in %<PRIuMAX> pack"
+msgid_plural "Finding commits for commit graph in %<PRIuMAX> packs"
msgstr[0] ""
msgstr[1] ""
-#: commit-graph.c:1706
+#: commit-graph.c:1714
#, c-format
msgid "error adding pack %s"
msgstr ""
-#: commit-graph.c:1710
+#: commit-graph.c:1718
#, c-format
msgid "error opening index for %s"
msgstr ""
-#: commit-graph.c:1747
+#: commit-graph.c:1756
msgid "Finding commits for commit graph among packed objects"
msgstr ""
-#: commit-graph.c:1765
+#: commit-graph.c:1774
msgid "Finding extra edges in commit graph"
msgstr ""
-#: commit-graph.c:1814
+#: commit-graph.c:1823
msgid "failed to write correct number of base graph ids"
msgstr ""
-#: commit-graph.c:1845 midx.c:1149
+#: commit-graph.c:1854 midx.c:1168 builtin/sparse-checkout.c:475
#, c-format
msgid "unable to create leading directories of %s"
msgstr ""
-#: commit-graph.c:1858
+#: commit-graph.c:1868
msgid "unable to create temporary graph layer"
msgstr ""
-#: commit-graph.c:1863
+#: commit-graph.c:1873
#, c-format
msgid "unable to adjust shared permissions for '%s'"
msgstr ""
-#: commit-graph.c:1920
+#: commit-graph.c:1930
#, 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:1956
+#: commit-graph.c:1967
msgid "unable to open commit-graph chain file"
msgstr ""
-#: commit-graph.c:1972
+#: commit-graph.c:1983
msgid "failed to rename base commit-graph file"
msgstr ""
-#: commit-graph.c:1992
+#: commit-graph.c:2004
msgid "failed to rename temporary commit-graph file"
msgstr ""
-#: commit-graph.c:2125
+#: commit-graph.c:2137
msgid "Scanning merged commits"
msgstr ""
-#: commit-graph.c:2169
+#: commit-graph.c:2181
msgid "Merging commit-graph"
msgstr ""
-#: commit-graph.c:2277
+#: commit-graph.c:2289
msgid "attempting to write a commit-graph, but 'core.commitGraph' is disabled"
msgstr ""
-#: commit-graph.c:2384
+#: commit-graph.c:2396
msgid "too many commits to write graph"
msgstr ""
-#: commit-graph.c:2482
+#: commit-graph.c:2494
msgid "the commit-graph file has incorrect checksum and is likely corrupt"
msgstr ""
-#: commit-graph.c:2492
+#: commit-graph.c:2504
#, c-format
msgid "commit-graph has incorrect OID order: %s then %s"
msgstr ""
-#: commit-graph.c:2502 commit-graph.c:2517
+#: commit-graph.c:2514 commit-graph.c:2529
#, c-format
msgid "commit-graph has incorrect fanout value: fanout[%d] = %u != %u"
msgstr ""
-#: commit-graph.c:2509
+#: commit-graph.c:2521
#, c-format
msgid "failed to parse commit %s from commit-graph"
msgstr ""
-#: commit-graph.c:2527
+#: commit-graph.c:2539
msgid "Verifying commits in commit graph"
msgstr ""
-#: commit-graph.c:2542
+#: commit-graph.c:2554
#, c-format
msgid "failed to parse commit %s from object database for commit-graph"
msgstr ""
-#: commit-graph.c:2549
+#: commit-graph.c:2561
#, c-format
msgid "root tree OID for commit %s in commit-graph is %s != %s"
msgstr ""
-#: commit-graph.c:2559
+#: commit-graph.c:2571
#, c-format
msgid "commit-graph parent list for commit %s is too long"
msgstr ""
-#: commit-graph.c:2568
+#: commit-graph.c:2580
#, c-format
msgid "commit-graph parent for %s is %s != %s"
msgstr ""
-#: commit-graph.c:2582
+#: commit-graph.c:2594
#, c-format
msgid "commit-graph parent list for commit %s terminates early"
msgstr ""
-#: commit-graph.c:2587
+#: commit-graph.c:2599
#, c-format
msgid ""
"commit-graph has generation number zero for commit %s, but non-zero elsewhere"
msgstr ""
-#: commit-graph.c:2591
+#: commit-graph.c:2603
#, c-format
msgid ""
"commit-graph has non-zero generation number for commit %s, but zero elsewhere"
msgstr ""
-#: commit-graph.c:2608
+#: commit-graph.c:2620
#, c-format
msgid "commit-graph generation for commit %s is %<PRIuMAX> < %<PRIuMAX>"
msgstr ""
-#: commit-graph.c:2614
+#: commit-graph.c:2626
#, c-format
msgid "commit date for commit %s in commit-graph is %<PRIuMAX> != %<PRIuMAX>"
msgstr ""
-#: commit.c:53 sequencer.c:3109 builtin/am.c:399 builtin/am.c:444
-#: builtin/am.c:449 builtin/am.c:1448 builtin/am.c:2123 builtin/replace.c:456
+#: commit.c:54 sequencer.c:3105 builtin/am.c:400 builtin/am.c:445
+#: builtin/am.c:450 builtin/am.c:1449 builtin/am.c:2124 builtin/replace.c:456
#, c-format
msgid "could not parse %s"
msgstr ""
-#: commit.c:55
+#: commit.c:56
#, c-format
msgid "%s %s is not a commit!"
msgstr ""
-#: commit.c:196
+#: commit.c:197
msgid ""
"Support for <GIT_DIR>/info/grafts is deprecated\n"
"and will be removed in a future Git version.\n"
@@ -2394,27 +2446,27 @@ msgid ""
"\"git config advice.graftFileDeprecated false\""
msgstr ""
-#: commit.c:1241
+#: commit.c:1252
#, c-format
msgid "Commit %s has an untrusted GPG signature, allegedly by %s."
msgstr ""
-#: commit.c:1245
+#: commit.c:1256
#, c-format
msgid "Commit %s has a bad GPG signature allegedly by %s."
msgstr ""
-#: commit.c:1248
+#: commit.c:1259
#, c-format
msgid "Commit %s does not have a GPG signature."
msgstr ""
-#: commit.c:1251
+#: commit.c:1262
#, c-format
msgid "Commit %s has a good GPG signature by %s\n"
msgstr ""
-#: commit.c:1505
+#: commit.c:1516
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"
@@ -2425,7 +2477,15 @@ msgstr ""
msgid "memory exhausted"
msgstr ""
-#: config.c:125
+#: compat/terminal.c:167
+msgid "cannot resume in the background, please use 'fg' to resume"
+msgstr ""
+
+#: compat/terminal.c:168
+msgid "cannot restore terminal settings"
+msgstr ""
+
+#: config.c:143
#, c-format
msgid ""
"exceeded maximum include depth (%d) while including\n"
@@ -2440,343 +2500,370 @@ msgstr ""
"\t%s\n"
"Ini mungkin disebabkan oleh include sirkular."
-#: config.c:141
+#: config.c:159
#, c-format
msgid "could not expand include path '%s'"
msgstr "tidak dapat menjabarkan jalur include '%s'"
-#: config.c:152
+#: config.c:170
msgid "relative config includes must come from files"
msgstr "include konfigurasi relatif harus dari berkas"
-#: config.c:201
+#: config.c:219
msgid "relative config include conditionals must come from files"
msgstr "kondisional include konfigurasi relative harus dari berkas"
-#: config.c:398
+#: config.c:364
+msgid ""
+"remote URLs cannot be configured in file directly or indirectly included by "
+"includeIf.hasconfig:remote.*.url"
+msgstr ""
+"URL remote tidak dapat dikonfigurasikan langsung di dalam berkas maupun "
+"dimasukkan secara tidak langsung oleh includeIf.hasconfig:remote.*.url"
+
+#: config.c:508
#, c-format
msgid "invalid config format: %s"
msgstr "format konfigurasi tidak valid: %s"
-#: config.c:402
+#: config.c:512
#, c-format
msgid "missing environment variable name for configuration '%.*s'"
msgstr "nama variabel lingkungan untuk konfigurasi hilang '%.*s'"
-#: config.c:407
+#: config.c:517
#, c-format
msgid "missing environment variable '%s' for configuration '%.*s'"
msgstr "variabel lingkungan '%s' untuk konfigurasi '%.*s'"
-#: config.c:443
+#: config.c:553
#, c-format
msgid "key does not contain a section: %s"
msgstr "kunci tidak berisi bagian: %s"
-#: config.c:448
+#: config.c:558
#, c-format
msgid "key does not contain variable name: %s"
msgstr "kunci tidak berisi nama variabel: %s"
-#: config.c:470 sequencer.c:2806
+#: config.c:580 sequencer.c:2802
#, c-format
msgid "invalid key: %s"
msgstr "kunci tidak valid: %s"
-#: config.c:475
+#: config.c:585
#, c-format
msgid "invalid key (newline): %s"
msgstr "kunci tidak valid (barisbaru): %s"
-#: config.c:495
+#: config.c:605
msgid "empty config key"
msgstr "kunci konfigurasi kosong"
-#: config.c:513 config.c:525
+#: config.c:623 config.c:635
#, c-format
msgid "bogus config parameter: %s"
msgstr "parameter konfigurasi gadungan: %s"
-#: config.c:539 config.c:556 config.c:563 config.c:572
+#: config.c:649 config.c:666 config.c:673 config.c:682
#, c-format
msgid "bogus format in %s"
msgstr "format gadungan dalam %s"
-#: config.c:606
+#: config.c:716
#, c-format
msgid "bogus count in %s"
msgstr "hitungan gadungan dalam %s"
-#: config.c:610
+#: config.c:720
#, c-format
msgid "too many entries in %s"
msgstr "terlalu banyak entri di %s"
-#: config.c:620
+#: config.c:730
#, c-format
msgid "missing config key %s"
msgstr "kunci konfigurasi %s hilang"
-#: config.c:628
+#: config.c:738
#, c-format
msgid "missing config value %s"
msgstr "nilai konfigurasi %s hilang"
-#: config.c:979
+#: config.c:1089
#, c-format
msgid "bad config line %d in blob %s"
msgstr "baris konfigurasi %d jelek dalam blob %s"
-#: config.c:983
+#: config.c:1093
#, c-format
msgid "bad config line %d in file %s"
msgstr "baris konfigurasi %d jelek dalam berkas %s"
-#: config.c:987
+#: config.c:1097
#, c-format
msgid "bad config line %d in standard input"
msgstr "baris konfigurasi %d jelek pada masukan standar"
-#: config.c:991
+#: config.c:1101
#, c-format
msgid "bad config line %d in submodule-blob %s"
msgstr "baris konfigurasi %d jelek dalam blob submodul %s"
-#: config.c:995
+#: config.c:1105
#, c-format
msgid "bad config line %d in command line %s"
msgstr "baris konfigurasi %d jelek pada baris perintah %s"
-#: config.c:999
+#: config.c:1109
#, c-format
msgid "bad config line %d in %s"
msgstr "baris konfigurasi %d jelek dalam %s"
-#: config.c:1136
+#: config.c:1246
msgid "out of range"
msgstr "di luar rentang"
-#: config.c:1136
+#: config.c:1246
msgid "invalid unit"
msgstr "satuan tidak valid"
-#: config.c:1137
+#: config.c:1247
#, c-format
msgid "bad numeric config value '%s' for '%s': %s"
msgstr "nilai konfigurasi numerik '%s' jelek untuk '%s': %s"
-#: config.c:1147
+#: config.c:1257
#, c-format
msgid "bad numeric config value '%s' for '%s' in blob %s: %s"
msgstr "nilai konfigurasi numerik '%s' jelek untuk '%s' dalam blob %s: %s"
-#: config.c:1150
+#: config.c:1260
#, c-format
msgid "bad numeric config value '%s' for '%s' in file %s: %s"
msgstr "nilai konfigurasi numerik '%s' jelek untuk '%s' dalam berkas %s: %s"
-#: config.c:1153
+#: config.c:1263
#, c-format
msgid "bad numeric config value '%s' for '%s' in standard input: %s"
msgstr ""
"nilai konfigurasi numerik '%s' jelek untuk '%s' pada masukan standar: %s"
-#: config.c:1156
+#: config.c:1266
#, c-format
msgid "bad numeric config value '%s' for '%s' in submodule-blob %s: %s"
msgstr ""
"nilai konfigurasi numerik '%s' jelek untuk '%s' dalam blob submodul %s: %s"
-#: config.c:1159
+#: config.c:1269
#, c-format
msgid "bad numeric config value '%s' for '%s' in command line %s: %s"
msgstr ""
"nilai konfigurasi numerik '%s' jelek untuk '%s' pada baris perintah %s: %s"
-#: config.c:1162
+#: config.c:1272
#, c-format
msgid "bad numeric config value '%s' for '%s' in %s: %s"
msgstr "nilai konfigurasi numerik '%s' jelek untuk '%s' dalam %s: %s"
-#: config.c:1241
+#: config.c:1368
+#, c-format
+msgid "invalid value for variable %s"
+msgstr "nilai tidak valid untuk variabel %s"
+
+#: config.c:1389
+#, c-format
+msgid "ignoring unknown core.fsync component '%s'"
+msgstr "mengabaikan komponen core.fsync tidak dikenal '%s'"
+
+#: config.c:1425
#, c-format
msgid "bad boolean config value '%s' for '%s'"
msgstr "nilai konfigurasi boolean '%s' jelek untuk '%s'"
-#: config.c:1259
+#: config.c:1443
#, c-format
msgid "failed to expand user dir in: '%s'"
msgstr "gagal menjabarkan direktori pengguna di: '%s'"
-#: config.c:1268
+#: config.c:1452
#, c-format
msgid "'%s' for '%s' is not a valid timestamp"
msgstr "'%s' untuk '%s' bukan stempel waktu valid"
-#: config.c:1361
+#: config.c:1545
#, c-format
msgid "abbrev length out of range: %d"
msgstr "panjang singkatan di luar rentang: %d"
-#: config.c:1375 config.c:1386
+#: config.c:1559 config.c:1570
#, c-format
msgid "bad zlib compression level %d"
msgstr "level kompresi zlib jelek %d"
-#: config.c:1476
+#: config.c:1660
msgid "core.commentChar should only be one character"
msgstr "core.commentChar harusnya hanya satu karakter"
-#: config.c:1509
+#: config.c:1692
+#, c-format
+msgid "ignoring unknown core.fsyncMethod value '%s'"
+msgstr "mengabaikan nilai core.fsyncMethod tidak dikenal '%s'"
+
+#: config.c:1698
+msgid "core.fsyncObjectFiles is deprecated; use core.fsync instead"
+msgstr "core.fsyncObjectFiles usang; gunakan core.fsync sebagai gantinya"
+
+#: config.c:1714
#, c-format
msgid "invalid mode for object creation: %s"
msgstr "mode tidak valid untuk pembuatan objek: %s"
-#: config.c:1584
+#: config.c:1800
#, c-format
msgid "malformed value for %s"
msgstr "nilai rusak untuk %s"
-#: config.c:1610
+#: config.c:1826
#, c-format
msgid "malformed value for %s: %s"
msgstr "nilai rusak untuk %s: %s"
-#: config.c:1611
+#: config.c:1827
msgid "must be one of nothing, matching, simple, upstream or current"
msgstr "harus salah satu dari nothing, matching, simple, upstream atau current"
-#: config.c:1672 builtin/pack-objects.c:4053
+#: config.c:1888 builtin/pack-objects.c:4078
#, c-format
msgid "bad pack compression level %d"
msgstr "level kompresi pak jelek %d"
-#: config.c:1795
+#: config.c:2014
#, c-format
msgid "unable to load config blob object '%s'"
msgstr "tidak dapat memuat objek blob konfigurasi '%s'"
-#: config.c:1798
+#: config.c:2017
#, c-format
msgid "reference '%s' does not point to a blob"
msgstr "referensi '%s' tidak menunjuk pada sebuah blob"
-#: config.c:1816
+#: config.c:2035
#, c-format
msgid "unable to resolve config blob '%s'"
msgstr "tidak dapat menguraikan blob konfigurasi '%s'"
-#: config.c:1861
+#: config.c:2080
#, c-format
msgid "failed to parse %s"
msgstr "gagal menguraikan %s"
-#: config.c:1917
+#: config.c:2136
msgid "unable to parse command-line config"
msgstr "gagal menguraikan konfigurasi baris perintah"
-#: config.c:2285
+#: config.c:2512
msgid "unknown error occurred while reading the configuration files"
msgstr "error tidak diketahui ketika membaca berkas konfigurasi"
-#: config.c:2459
+#: config.c:2686
#, c-format
msgid "Invalid %s: '%s'"
msgstr "%s tidak valid: '%s'"
-#: config.c:2504
+#: config.c:2731
#, c-format
msgid "splitIndex.maxPercentChange value '%d' should be between 0 and 100"
msgstr "nilai splitIndex.maxPercentChange '%d' harusnya diantara 0 dan 100"
-#: config.c:2550
+#: config.c:2763
#, c-format
msgid "unable to parse '%s' from command-line config"
msgstr "tidak dapat menguraikan '%s' dari konfigurasi baris perintah"
-#: config.c:2552
+#: config.c:2765
#, c-format
msgid "bad config variable '%s' in file '%s' at line %d"
msgstr "variabel konfigurasi '%s' jelek dalam berkas '%s' pada baris %d"
-#: config.c:2637
+#: config.c:2850
#, c-format
msgid "invalid section name '%s'"
msgstr "nama bagian '%s' tidak valid"
-#: config.c:2669
+#: config.c:2882
#, c-format
msgid "%s has multiple values"
msgstr "%s punya banyak nilai"
-#: config.c:2698
+#: config.c:2911
#, c-format
msgid "failed to write new configuration file %s"
msgstr "gagal menulis berkas konfigurasi baru %s"
-#: config.c:2950 config.c:3277
+#: config.c:3177 config.c:3518
#, c-format
msgid "could not lock config file %s"
msgstr "tidak dapat mengunci berkas konfigurasi %s"
-#: config.c:2961
+#: config.c:3188
#, c-format
msgid "opening %s"
msgstr "membuka %s"
-#: config.c:2998 builtin/config.c:361
+#: config.c:3225 builtin/config.c:361
#, c-format
msgid "invalid pattern: %s"
msgstr "pola tidak valid: %s"
-#: config.c:3023
+#: config.c:3250
#, c-format
msgid "invalid config file %s"
msgstr "berkas konfigurasi %s tidak valid"
-#: config.c:3036 config.c:3290
+#: config.c:3263 config.c:3531
#, c-format
msgid "fstat on %s failed"
msgstr "fstat pada %s gagal"
-#: config.c:3047
+#: config.c:3274
#, c-format
msgid "unable to mmap '%s'%s"
msgstr "tidak dapat me-mmap '%s'%s"
-#: config.c:3057 config.c:3295
+#: config.c:3284 config.c:3536
#, c-format
msgid "chmod on %s failed"
msgstr "chmod pada %s gagal"
-#: config.c:3142 config.c:3392
+#: config.c:3369 config.c:3633
#, c-format
msgid "could not write config file %s"
msgstr "tidak dapat menulis berkas konfigurasi %s"
-#: config.c:3176
+#: config.c:3403
#, c-format
msgid "could not set '%s' to '%s'"
msgstr "tidak dapat menyetel '%s' ke '%s'"
-#: config.c:3178 builtin/remote.c:662 builtin/remote.c:860 builtin/remote.c:868
+#: config.c:3405 builtin/remote.c:666 builtin/remote.c:885 builtin/remote.c:893
#, c-format
msgid "could not unset '%s'"
msgstr "tidak dapat mem-batal setel '%s'"
-#: config.c:3268
+#: config.c:3509
#, c-format
msgid "invalid section name: %s"
msgstr "nama bagian tidak valid: %s"
-#: config.c:3435
+#: config.c:3676
#, c-format
msgid "missing value for '%s'"
msgstr "nilai hilang untuk '%s'"
#: connect.c:61
msgid "the remote end hung up upon initial contact"
-msgstr ""
+msgstr "remote berakhir menggantung saat kontak pertama"
#: connect.c:63
msgid ""
@@ -2785,84 +2872,87 @@ msgid ""
"Please make sure you have the correct access rights\n"
"and the repository exists."
msgstr ""
+"Tidak dapat membaca dari repositori remote.\n"
+"\n"
+"Mohon pastikan Anda punya hak akses yang benar dan repositori ada."
#: connect.c:81
#, c-format
msgid "server doesn't support '%s'"
-msgstr ""
+msgstr "peladen tidak mendukung '%s'"
#: connect.c:118
#, c-format
msgid "server doesn't support feature '%s'"
-msgstr ""
+msgstr "peladen tidak mendukung fitur '%s'"
#: connect.c:129
msgid "expected flush after capabilities"
-msgstr ""
+msgstr "bilasan diharapkan setelah kemampuan"
#: connect.c:265
#, c-format
msgid "ignoring capabilities after first line '%s'"
-msgstr ""
+msgstr "mengabaikan kemampuan setelah baris pertama '%s'"
#: connect.c:286
msgid "protocol error: unexpected capabilities^{}"
-msgstr ""
+msgstr "kesalahan protokol: capabilities^{} tidak diharapkan"
#: connect.c:308
#, c-format
msgid "protocol error: expected shallow sha-1, got '%s'"
-msgstr ""
+msgstr "kesalahan protokol: sha-1 dangkal diharapkan, dapat '%s'"
#: connect.c:310
msgid "repository on the other end cannot be shallow"
-msgstr ""
+msgstr "repositori pada ujung lainnya tidak boleh dangkal"
#: connect.c:349
msgid "invalid packet"
-msgstr ""
+msgstr "paket tidak valid"
#: connect.c:369
#, c-format
msgid "protocol error: unexpected '%s'"
-msgstr ""
+msgstr "kesalahan protokol: '%s' tidak diharapkan"
#: connect.c:499
#, c-format
msgid "unknown object format '%s' specified by server"
-msgstr ""
+msgstr "format objek tidak dikenal '%s' disebutkan oleh peladen"
#: connect.c:528
#, c-format
msgid "invalid ls-refs response: %s"
-msgstr ""
+msgstr "jawaban ls-refs tidak valid: %s"
#: connect.c:532
msgid "expected flush after ref listing"
-msgstr ""
+msgstr "bilasan diharapkan setelah penyebutan referensi"
#: connect.c:535
msgid "expected response end packet after ref listing"
-msgstr ""
+msgstr "jawaban akhir paket diharapkan setelah penyebutan referensi"
#: connect.c:670
#, c-format
msgid "protocol '%s' is not supported"
-msgstr ""
+msgstr "protokol '%s' tidak didukung"
#: connect.c:721
msgid "unable to set SO_KEEPALIVE on socket"
-msgstr ""
+msgstr "tidak dapat menyetel SO_KEEPALIVE pada soket"
#: connect.c:761 connect.c:824
#, c-format
msgid "Looking up %s ... "
-msgstr ""
+msgstr "Mencari %s ... "
#: connect.c:765
#, c-format
msgid "unable to look up %s (port %s) (%s)"
-msgstr ""
+msgstr "tidak dapat mencari %s (port %s) (%s)"
#. TRANSLATORS: this is the end of "Looking up %s ... "
#: connect.c:769 connect.c:840
@@ -2871,6 +2961,8 @@ msgid ""
"done.\n"
"Connecting to %s (port %s) ... "
msgstr ""
+"selesai.\n"
+"Menghubungkan ke %s (port %s) ... "
#: connect.c:791 connect.c:868
#, c-format
@@ -2878,81 +2970,85 @@ msgid ""
"unable to connect to %s:\n"
"%s"
msgstr ""
+"tidak dapat menghubungkan ke %s:\n"
+"%s"
#. TRANSLATORS: this is the end of "Connecting to %s (port %s) ... "
#: connect.c:797 connect.c:874
msgid "done."
-msgstr ""
+msgstr "selesai."
#: connect.c:828
#, c-format
msgid "unable to look up %s (%s)"
-msgstr ""
+msgstr "tidak dapat mencari %s (%s)"
#: connect.c:834
#, c-format
msgid "unknown port %s"
-msgstr ""
+msgstr "port tidak dikenal %s"
#: connect.c:971 connect.c:1303
#, c-format
msgid "strange hostname '%s' blocked"
-msgstr ""
+msgstr "nama host aneh '%s' diblokir"
#: connect.c:973
#, c-format
msgid "strange port '%s' blocked"
-msgstr ""
+msgstr "port aneh '%s' diblokir"
#: connect.c:983
#, c-format
msgid "cannot start proxy %s"
-msgstr ""
+msgstr "tidak dapat memulai proksi %s"
#: connect.c:1054
msgid "no path specified; see 'git help pull' for valid url syntax"
msgstr ""
+"tidak ada jalur yang disebutkan; lihat 'git help pull' untuk sintaks url "
+"yang valid"
#: connect.c:1194
msgid "newline is forbidden in git:// hosts and repo paths"
-msgstr ""
+msgstr "baris baru dilarang di host git:// dan jalur repositori"
#: connect.c:1251
msgid "ssh variant 'simple' does not support -4"
-msgstr ""
+msgstr "varian ssh 'simple' tidak mendukung -4"
#: connect.c:1263
msgid "ssh variant 'simple' does not support -6"
-msgstr ""
+msgstr "varian ssh 'simple' tidak mendukung -6"
#: connect.c:1280
msgid "ssh variant 'simple' does not support setting port"
-msgstr ""
+msgstr "varian ssh 'simple' tidak mendukung penyetelan port"
#: connect.c:1392
#, c-format
msgid "strange pathname '%s' blocked"
-msgstr ""
+msgstr "nama jalur aneh '%s' diblokir"
#: connect.c:1440
msgid "unable to fork"
-msgstr ""
+msgstr "tidak dapat menggarpu"
#: connected.c:109 builtin/fsck.c:189 builtin/prune.c:57
msgid "Checking connectivity"
-msgstr ""
+msgstr "Memeriksa konektivitas"
#: connected.c:122
msgid "Could not run 'git rev-list'"
-msgstr ""
+msgstr "Tidak dapat menjalankan 'git rev-list'"
#: connected.c:146
msgid "failed write to rev-list"
-msgstr ""
+msgstr "gagal menulis ke rev-list"
#: connected.c:151
msgid "failed to close rev-list's stdin"
-msgstr ""
+msgstr "gagal menutup masukan standar rev-list"
#: convert.c:183
#, c-format
@@ -3084,88 +3180,88 @@ msgstr ""
msgid "refusing to work with credential missing protocol field"
msgstr ""
-#: credential.c:395
+#: credential.c:396
#, c-format
msgid "url contains a newline in its %s component: %s"
msgstr ""
-#: credential.c:439
+#: credential.c:440
#, c-format
msgid "url has no scheme: %s"
msgstr ""
-#: credential.c:512
+#: credential.c:513
#, c-format
msgid "credential url cannot be parsed: %s"
msgstr ""
-#: date.c:138
+#: date.c:139
msgid "in the future"
-msgstr ""
+msgstr "di masa depan"
-#: date.c:144
+#: date.c:145
#, c-format
msgid "%<PRIuMAX> second ago"
msgid_plural "%<PRIuMAX> seconds ago"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "%<PRIuMAX> detik yang lalu"
+msgstr[1] "%<PRIuMAX> detik yang lalu"
-#: date.c:151
+#: date.c:152
#, c-format
msgid "%<PRIuMAX> minute ago"
msgid_plural "%<PRIuMAX> minutes ago"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "%<PRIuMAX> menit yang lalu"
+msgstr[1] "%<PRIuMAX> menit yang lalu"
-#: date.c:158
+#: date.c:159
#, c-format
msgid "%<PRIuMAX> hour ago"
msgid_plural "%<PRIuMAX> hours ago"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "%<PRIuMAX> jam yang lalu"
+msgstr[1] "%<PRIuMAX> jam yang lalu"
-#: date.c:165
+#: date.c:166
#, c-format
msgid "%<PRIuMAX> day ago"
msgid_plural "%<PRIuMAX> days ago"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "%<PRIuMAX> hari yang lalu"
+msgstr[1] "%<PRIuMAX> hari yang lalu"
-#: date.c:171
+#: date.c:172
#, c-format
msgid "%<PRIuMAX> week ago"
msgid_plural "%<PRIuMAX> weeks ago"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "%<PRIuMAX> minggu yang lalu"
+msgstr[1] "%<PRIuMAX> minggu yang lalu"
-#: date.c:178
+#: date.c:179
#, c-format
msgid "%<PRIuMAX> month ago"
msgid_plural "%<PRIuMAX> months ago"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "%<PRIuMAX> bulan yang lalu"
+msgstr[1] "%<PRIuMAX> bulan yang lalu"
-#: date.c:189
+#: date.c:190
#, c-format
msgid "%<PRIuMAX> year"
msgid_plural "%<PRIuMAX> years"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "%<PRIuMAX> tahun"
+msgstr[1] "%<PRIuMAX> tahun"
#. TRANSLATORS: "%s" is "<n> years"
-#: date.c:192
+#: date.c:193
#, c-format
msgid "%s, %<PRIuMAX> month ago"
msgid_plural "%s, %<PRIuMAX> months ago"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "%s, %<PRIuMAX> bulan yang lalu"
+msgstr[1] "%s, %<PRIuMAX> bulan yang lalu"
-#: date.c:197 date.c:202
+#: date.c:198 date.c:203
#, c-format
msgid "%<PRIuMAX> year ago"
msgid_plural "%<PRIuMAX> years ago"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "%<PRIuMAX> tahun yang lalu"
+msgstr[1] "%<PRIuMAX> tahun yang lalu"
#: delta-islands.c:272
msgid "Propagating island marks"
@@ -3191,9 +3287,13 @@ msgstr ""
msgid "Marked %d islands, done.\n"
msgstr ""
-#: diff-merges.c:70
+#: diff-merges.c:81 gpg-interface.c:719 gpg-interface.c:734 ls-refs.c:37
+#: parallel-checkout.c:42 sequencer.c:2805 setup.c:563 builtin/am.c:203
+#: builtin/am.c:2243 builtin/am.c:2287 builtin/blame.c:724 builtin/blame.c:742
+#: builtin/fetch.c:792 builtin/pack-objects.c:3515 builtin/pull.c:45
+#: builtin/pull.c:47 builtin/pull.c:321
#, c-format
-msgid "unknown value for --diff-merges: %s"
+msgid "invalid value for '%s': '%s'"
msgstr ""
#: diff-lib.c:561
@@ -3226,17 +3326,17 @@ msgid ""
"tree"
msgstr ""
-#: diff.c:158
+#: diff.c:159
#, c-format
msgid " Failed to parse dirstat cut-off percentage '%s'\n"
msgstr " Gagal mengurai persentase potongan dirstat '%s'\n"
-#: diff.c:163
+#: diff.c:164
#, c-format
msgid " Unknown dirstat parameter '%s'\n"
msgstr " Parameter dirstat tidak ditketahui '%s'\n"
-#: diff.c:299
+#: diff.c:300
msgid ""
"color moved setting must be one of 'no', 'default', 'blocks', 'zebra', "
"'dimmed-zebra', 'plain'"
@@ -3244,7 +3344,7 @@ msgstr ""
"Setelan warna berpindah harus salah satu dari 'no', 'default', 'blocks', "
"'dimmed-zebra', 'plain'"
-#: diff.c:327
+#: diff.c:328
#, c-format
msgid ""
"unknown color-moved-ws mode '%s', possible values are 'ignore-space-change', "
@@ -3254,7 +3354,7 @@ msgstr ""
"space-change', 'ignore-space-at-eol', 'ignore-all-space', 'allow-indentation-"
"change'"
-#: diff.c:335
+#: diff.c:336
msgid ""
"color-moved-ws: allow-indentation-change cannot be combined with other "
"whitespace modes"
@@ -3262,12 +3362,12 @@ msgstr ""
"color-moved-ws: allow-indentation-change tidak dapat digabungkan dengan mode "
"spasi yang lainnya"
-#: diff.c:412
+#: diff.c:413
#, c-format
msgid "Unknown value for 'diff.submodule' config variable: '%s'"
msgstr "Nilai tidak dikenal untuk variabel konfigurasi 'diff.submodule': '%s'"
-#: diff.c:472
+#: diff.c:473
#, c-format
msgid ""
"Found errors in 'diff.dirstat' config variable:\n"
@@ -3276,28 +3376,28 @@ msgstr ""
"Ditemukan error dalam variable konfigurasi 'diff.dirstat':\n"
"%s"
-#: diff.c:4237
+#: diff.c:4282
#, c-format
msgid "external diff died, stopping at %s"
msgstr "diff eksternal mati, berhenti pada %s"
-#: diff.c:4589
+#: diff.c:4677 parse-options.c:1114
#, c-format
msgid "options '%s', '%s', '%s', and '%s' cannot be used together"
msgstr "Opsi '%s', '%s', '%s', dan '%s' tidak dapat digunakan bersamaan"
-#: diff.c:4593 builtin/difftool.c:736 builtin/log.c:1982 builtin/worktree.c:506
+#: diff.c:4681 parse-options.c:1118 builtin/worktree.c:578
#, c-format
msgid "options '%s', '%s', and '%s' cannot be used together"
msgstr "Opsi '%s', '%s', dan '%s' tidak dapat digunakan bersamaan"
-#: diff.c:4597
+#: diff.c:4685
#, c-format
msgid "options '%s' and '%s' cannot be used together, use '%s' with '%s'"
msgstr ""
"opsi '%s' dan '%s' tidak dapat digunakan bersamaan, gunakan '%s' dengan '%s'"
-#: diff.c:4601
+#: diff.c:4689
#, c-format
msgid ""
"options '%s' and '%s' cannot be used together, use '%s' with '%s' and '%s'"
@@ -3305,22 +3405,22 @@ msgstr ""
"opsi '%s' dan '%s' tidak dapat digunakan bersamaan, gunakan '%s' dengan '%s' "
"dan '%s'"
-#: diff.c:4681
+#: diff.c:4769
msgid "--follow requires exactly one pathspec"
msgstr "--follow butuh tepatnya satu spek jalur"
-#: diff.c:4729
+#: diff.c:4823
#, c-format
msgid "invalid --stat value: %s"
msgstr "nilai --stat tidak valid: %s"
-#: diff.c:4734 diff.c:4739 diff.c:4744 diff.c:4749 diff.c:5277
+#: diff.c:4828 diff.c:4833 diff.c:4838 diff.c:4843 diff.c:5319
#: parse-options.c:217 parse-options.c:221
#, c-format
msgid "%s expects a numerical value"
msgstr "%s harap nilai numerik"
-#: diff.c:4766
+#: diff.c:4860
#, c-format
msgid ""
"Failed to parse --dirstat/-X option parameter:\n"
@@ -3329,42 +3429,42 @@ msgstr ""
"Gagal menguraikan parameter opsi --dirstat/-X:\n"
"%s"
-#: diff.c:4851
+#: diff.c:4893
#, c-format
msgid "unknown change class '%c' in --diff-filter=%s"
msgstr "kelas perubahan '%c' tidak dikenal dalam --diff-filter=%s"
-#: diff.c:4875
+#: diff.c:4917
#, c-format
msgid "unknown value after ws-error-highlight=%.*s"
msgstr "nilai tidak dikenal setelah ws-error-highlight=%.*s"
-#: diff.c:4889
+#: diff.c:4931
#, c-format
msgid "unable to resolve '%s'"
msgstr "tidak dapat menguraikan '%s'"
-#: diff.c:4939 diff.c:4945
+#: diff.c:4981 diff.c:4987
#, c-format
msgid "%s expects <n>/<m> form"
msgstr "%s butuh bentuk <n>/<m>"
-#: diff.c:4957
+#: diff.c:4999
#, c-format
msgid "%s expects a character, got '%s'"
msgstr "%s butuh sebuah karakter, dapat '%s'"
-#: diff.c:4978
+#: diff.c:5020
#, c-format
msgid "bad --color-moved argument: %s"
msgstr "argumen --color-moved jelek: %s"
-#: diff.c:4997
+#: diff.c:5039
#, c-format
msgid "invalid mode '%s' in --color-moved-ws"
msgstr "mode tidak valid '%s' dalam --color-moved-ws"
-#: diff.c:5037
+#: diff.c:5079
msgid ""
"option diff-algorithm accepts \"myers\", \"minimal\", \"patience\" and "
"\"histogram\""
@@ -3372,162 +3472,162 @@ msgstr ""
"opsi diff-algorithm terima \"myers\", \"minimal\", \"patience\" dan "
"\"histogram\""
-#: diff.c:5073 diff.c:5093
+#: diff.c:5115 diff.c:5135
#, c-format
msgid "invalid argument to %s"
msgstr "argumen tidak valid ke %s"
-#: diff.c:5197
+#: diff.c:5239
#, c-format
msgid "invalid regex given to -I: '%s'"
msgstr "regex tidak valid diberikan ke -I: '%s'"
-#: diff.c:5246
+#: diff.c:5288
#, c-format
msgid "failed to parse --submodule option parameter: '%s'"
msgstr "gagal menguraikan parameter opsi --submodule: '%s'"
-#: diff.c:5302
+#: diff.c:5344
#, c-format
msgid "bad --word-diff argument: %s"
msgstr "argumen --word-diff jelek: %s"
-#: diff.c:5338
+#: diff.c:5380
msgid "Diff output format options"
msgstr "Opsi format keluaran diff"
-#: diff.c:5340 diff.c:5346
+#: diff.c:5382 diff.c:5388
msgid "generate patch"
msgstr "buat tambalan"
-#: diff.c:5343 builtin/log.c:179
+#: diff.c:5385 builtin/log.c:180
msgid "suppress diff output"
msgstr "sembunyikan keluaran diff"
-#: diff.c:5348 diff.c:5462 diff.c:5469
+#: diff.c:5390 diff.c:5504 diff.c:5511
msgid "<n>"
msgstr "<n>"
-#: diff.c:5349 diff.c:5352
+#: diff.c:5391 diff.c:5394
msgid "generate diffs with <n> lines context"
msgstr "buat diff dengan <n> baris konteks"
-#: diff.c:5354
+#: diff.c:5396
msgid "generate the diff in raw format"
msgstr "buat diff dalam format mentah"
-#: diff.c:5357
+#: diff.c:5399
msgid "synonym for '-p --raw'"
msgstr "sinonim untuk '-p --raw'"
-#: diff.c:5361
+#: diff.c:5403
msgid "synonym for '-p --stat'"
msgstr "sinonim untuk '-p --stat'"
-#: diff.c:5365
+#: diff.c:5407
msgid "machine friendly --stat"
msgstr "--stat yang ramah mesin"
-#: diff.c:5368
+#: diff.c:5410
msgid "output only the last line of --stat"
msgstr "keluarkan hanya baris terakhir --stat"
-#: diff.c:5370 diff.c:5378
+#: diff.c:5412 diff.c:5420
msgid "<param1,param2>..."
msgstr "<parameter 1,parameter 2>..."
-#: diff.c:5371
+#: diff.c:5413
msgid ""
"output the distribution of relative amount of changes for each sub-directory"
msgstr ""
"keluarkan distribusi jumlah perubahan relatif untuk setiap subdirektori"
-#: diff.c:5375
+#: diff.c:5417
msgid "synonym for --dirstat=cumulative"
msgstr "sinonim untuk --dirstat=cumulative"
-#: diff.c:5379
+#: diff.c:5421
msgid "synonym for --dirstat=files,param1,param2..."
msgstr "sinonim untuk --dirstat=files,param1,param2..."
-#: diff.c:5383
+#: diff.c:5425
msgid "warn if changes introduce conflict markers or whitespace errors"
msgstr ""
"peringatkan bila perubahan memasukkan penanda konflik atau kesalahan spasi"
-#: diff.c:5386
+#: diff.c:5428
msgid "condensed summary such as creations, renames and mode changes"
msgstr ""
"ringkasan singkat seperti pembuatan, penggantian nama dan perubahan mode"
-#: diff.c:5389
+#: diff.c:5431
msgid "show only names of changed files"
msgstr "perlihatkan hanya nama berkas yang berubah"
-#: diff.c:5392
+#: diff.c:5434
msgid "show only names and status of changed files"
msgstr "perlihatkan hanya nama dan status berkas yang berubah"
-#: diff.c:5394
+#: diff.c:5436
msgid "<width>[,<name-width>[,<count>]]"
msgstr "<lebar>[,<nama lebar>[,<hitungan>]]"
-#: diff.c:5395
+#: diff.c:5437
msgid "generate diffstat"
msgstr "buat diffstat"
-#: diff.c:5397 diff.c:5400 diff.c:5403
+#: diff.c:5439 diff.c:5442 diff.c:5445
msgid "<width>"
msgstr "<lebar>"
-#: diff.c:5398
+#: diff.c:5440
msgid "generate diffstat with a given width"
msgstr "buat diffstat dengan lebar yang diberikan"
-#: diff.c:5401
+#: diff.c:5443
msgid "generate diffstat with a given name width"
msgstr "buat diffstat dengan nama lebar yang diberikan"
-#: diff.c:5404
+#: diff.c:5446
msgid "generate diffstat with a given graph width"
msgstr "buat diffstat dengan lebar grafik yang diberikan"
-#: diff.c:5406
+#: diff.c:5448
msgid "<count>"
msgstr "<hitungan>"
-#: diff.c:5407
+#: diff.c:5449
msgid "generate diffstat with limited lines"
msgstr "buat diffstat dengan baris yang terbatas"
-#: diff.c:5410
+#: diff.c:5452
msgid "generate compact summary in diffstat"
msgstr "buat ringkasan singkat dalam diffstat"
-#: diff.c:5413
+#: diff.c:5455
msgid "output a binary diff that can be applied"
msgstr "keluarkan diff biner yang dapat diterapkan"
-#: diff.c:5416
+#: diff.c:5458
msgid "show full pre- and post-image object names on the \"index\" lines"
msgstr "perlihatkan objek pra- dan pasca-citra penuh pada baris \"index\""
-#: diff.c:5418
+#: diff.c:5460
msgid "show colored diff"
msgstr "perlihatkan diff berwarna"
-#: diff.c:5419
+#: diff.c:5461
msgid "<kind>"
msgstr "<tipe>"
-#: diff.c:5420
+#: diff.c:5462
msgid ""
"highlight whitespace errors in the 'context', 'old' or 'new' lines in the "
"diff"
msgstr ""
"soroti kesalahan spasi dalam baris 'context', 'old' atau 'new' dalam diff"
-#: diff.c:5423
+#: diff.c:5465
msgid ""
"do not munge pathnames and use NULs as output field terminators in --raw or "
"--numstat"
@@ -3535,91 +3635,91 @@ msgstr ""
"jangan tengkar jalur nama dan gunakan NUL sebagai pembatas bidang keluaran "
"pada --raw atau --numstat"
-#: diff.c:5426 diff.c:5429 diff.c:5432 diff.c:5541
+#: diff.c:5468 diff.c:5471 diff.c:5474 diff.c:5583
msgid "<prefix>"
msgstr "<prefiks>"
-#: diff.c:5427
+#: diff.c:5469
msgid "show the given source prefix instead of \"a/\""
msgstr "perlihatkan prefiks sumber yang diberikan daripada \"a/\""
-#: diff.c:5430
+#: diff.c:5472
msgid "show the given destination prefix instead of \"b/\""
msgstr "perlihatkan prefiks tujuan daripada \"b/\""
-#: diff.c:5433
+#: diff.c:5475
msgid "prepend an additional prefix to every line of output"
msgstr "tambah depan prefiks tambahan pada setiap baris keluaran"
-#: diff.c:5436
+#: diff.c:5478
msgid "do not show any source or destination prefix"
msgstr "jangan perlihatkan prefiks sumber atau tujuan apapun"
-#: diff.c:5439
+#: diff.c:5481
msgid "show context between diff hunks up to the specified number of lines"
msgstr ""
"perlihatkan konteks diantara bingkah diff hingga jumlah baris yang disebutkan"
-#: diff.c:5443 diff.c:5448 diff.c:5453
+#: diff.c:5485 diff.c:5490 diff.c:5495
msgid "<char>"
msgstr "<karakter>"
-#: diff.c:5444
+#: diff.c:5486
msgid "specify the character to indicate a new line instead of '+'"
msgstr "sebutkan karakter yang menandai baris baru daripada '+'"
-#: diff.c:5449
+#: diff.c:5491
msgid "specify the character to indicate an old line instead of '-'"
msgstr "sebutkan karakter yang menandai baris lama daripada '-'"
-#: diff.c:5454
+#: diff.c:5496
msgid "specify the character to indicate a context instead of ' '"
msgstr "sebutkan karakter yang menandai konteks daripada ' '"
-#: diff.c:5457
+#: diff.c:5499
msgid "Diff rename options"
msgstr "Opsi penamaan ulang diff"
-#: diff.c:5458
+#: diff.c:5500
msgid "<n>[/<m>]"
msgstr "<n>[/<m>]"
-#: diff.c:5459
+#: diff.c:5501
msgid "break complete rewrite changes into pairs of delete and create"
msgstr ""
"pisahkan perubahan penulisan ulang penuh kedalam pasangan penghapusan dan "
"pembuatan"
-#: diff.c:5463
+#: diff.c:5505
msgid "detect renames"
msgstr "deteksi penamaan ulang"
-#: diff.c:5467
+#: diff.c:5509
msgid "omit the preimage for deletes"
msgstr "lewati pracitra untuk penghapusan"
-#: diff.c:5470
+#: diff.c:5512
msgid "detect copies"
msgstr "deteksi penyalinan"
-#: diff.c:5474
+#: diff.c:5516
msgid "use unmodified files as source to find copies"
msgstr ""
"gunakan berkas tak termodifikasi sebagai sumber untuk menemukan salinan"
-#: diff.c:5476
+#: diff.c:5518
msgid "disable rename detection"
msgstr "nonaktifkan deteksi penamaan ulang"
-#: diff.c:5479
+#: diff.c:5521
msgid "use empty blobs as rename source"
msgstr "gunakan blob kosong sebagai sumber penamaan ulang"
-#: diff.c:5481
+#: diff.c:5523
msgid "continue listing the history of a file beyond renames"
msgstr "lanjutkan daftarkan riwayat berkas di luar penamaan ulang"
-#: diff.c:5484
+#: diff.c:5526
msgid ""
"prevent rename/copy detection if the number of rename/copy targets exceeds "
"given limit"
@@ -3627,232 +3727,232 @@ msgstr ""
"cegah pendeteksian penamaan ulang/penyalinan jika jumlah target penamaan "
"ulang/penyalinan melebihi batas yang diberikan"
-#: diff.c:5486
+#: diff.c:5528
msgid "Diff algorithm options"
msgstr "Opsi algoritma diff"
-#: diff.c:5488
+#: diff.c:5530
msgid "produce the smallest possible diff"
msgstr "hasilkan diff yang paling kecil yang dimungkinkan"
-#: diff.c:5491
+#: diff.c:5533
msgid "ignore whitespace when comparing lines"
msgstr "abaikan spasi saat membandingkan baris"
-#: diff.c:5494
+#: diff.c:5536
msgid "ignore changes in amount of whitespace"
msgstr "abaikan perubahan dalam jumlah spasi"
-#: diff.c:5497
+#: diff.c:5539
msgid "ignore changes in whitespace at EOL"
msgstr "abaikan perubahan spasi pada EOL"
-#: diff.c:5500
+#: diff.c:5542
msgid "ignore carrier-return at the end of line"
msgstr "abaikan kembalian-kurir pada akhir baris"
-#: diff.c:5503
+#: diff.c:5545
msgid "ignore changes whose lines are all blank"
msgstr "abaikan perubahan yang semua baris kosong"
-#: diff.c:5505 diff.c:5527 diff.c:5530 diff.c:5575
+#: diff.c:5547 diff.c:5569 diff.c:5572 diff.c:5617
msgid "<regex>"
msgstr "<regex>"
-#: diff.c:5506
+#: diff.c:5548
msgid "ignore changes whose all lines match <regex>"
msgstr "abaikan perubahan yang semua baris cocok dengan <regex>"
-#: diff.c:5509
+#: diff.c:5551
msgid "heuristic to shift diff hunk boundaries for easy reading"
msgstr ""
"heuristik untuk geser perbatasan bingkah diff untuk pembacaan yang mudah"
-#: diff.c:5512
+#: diff.c:5554
msgid "generate diff using the \"patience diff\" algorithm"
msgstr "buat diff menggunakan algoritma \"diff sabar\""
-#: diff.c:5516
+#: diff.c:5558
msgid "generate diff using the \"histogram diff\" algorithm"
msgstr "buat diff menggunakan algoritma \"diff histogram\""
-#: diff.c:5518
+#: diff.c:5560
msgid "<algorithm>"
msgstr "<algoritma>"
-#: diff.c:5519
+#: diff.c:5561
msgid "choose a diff algorithm"
msgstr "pilih algoritma diff"
-#: diff.c:5521
+#: diff.c:5563
msgid "<text>"
msgstr "<teks>"
-#: diff.c:5522
+#: diff.c:5564
msgid "generate diff using the \"anchored diff\" algorithm"
msgstr "buat diff menggunakan algoritma \"diff terlabuh\""
-#: diff.c:5524 diff.c:5533 diff.c:5536
+#: diff.c:5566 diff.c:5575 diff.c:5578
msgid "<mode>"
msgstr "<mode>"
-#: diff.c:5525
+#: diff.c:5567
msgid "show word diff, using <mode> to delimit changed words"
msgstr ""
"perlihatkan diff kata, menggunakan <mode> untuk batasi kata yang berubah"
-#: diff.c:5528
+#: diff.c:5570
msgid "use <regex> to decide what a word is"
msgstr "gunakan <regex> untuk menentukan apa itu kata"
-#: diff.c:5531
+#: diff.c:5573
msgid "equivalent to --word-diff=color --word-diff-regex=<regex>"
msgstr "sama dengan --word-diff=color --word-diff-regex=<regex>"
-#: diff.c:5534
+#: diff.c:5576
msgid "moved lines of code are colored differently"
msgstr "baris kode yang berpindah diwarnai berbeda"
-#: diff.c:5537
+#: diff.c:5579
msgid "how white spaces are ignored in --color-moved"
msgstr "bagaimana spasi diabaikan di --color-moved"
-#: diff.c:5540
+#: diff.c:5582
msgid "Other diff options"
msgstr "Opsi diff yang lainnya"
-#: diff.c:5542
+#: diff.c:5584
msgid "when run from subdir, exclude changes outside and show relative paths"
msgstr ""
"ketika dijalankan dari subdirektori, kecualikan perubahan diluar dan "
"perlihatkan jalur relatif"
-#: diff.c:5546
+#: diff.c:5588
msgid "treat all files as text"
msgstr "perlakukan semua berkas sebagai teks"
-#: diff.c:5548
+#: diff.c:5590
msgid "swap two inputs, reverse the diff"
msgstr "tukar dua masukkan, balikkan diff"
-#: diff.c:5550
+#: diff.c:5592
msgid "exit with 1 if there were differences, 0 otherwise"
msgstr "keluar dengan 1 jika ada perbedaan, selain itu 0"
-#: diff.c:5552
+#: diff.c:5594
msgid "disable all output of the program"
msgstr "nonaktifkan semua keluaran program"
-#: diff.c:5554
+#: diff.c:5596
msgid "allow an external diff helper to be executed"
msgstr "perbolehkan pembantu diff eksternal untuk dieksekusi"
-#: diff.c:5556
+#: diff.c:5598
msgid "run external text conversion filters when comparing binary files"
msgstr ""
"jalankan saringan konversi teks eksternal ketika membandingkan berkas biner"
-#: diff.c:5558
+#: diff.c:5600
msgid "<when>"
msgstr "<kapan>"
-#: diff.c:5559
+#: diff.c:5601
msgid "ignore changes to submodules in the diff generation"
msgstr "abaikan perubahan submodul dalam pembuatan diff"
-#: diff.c:5562
+#: diff.c:5604
msgid "<format>"
msgstr "<format>"
-#: diff.c:5563
+#: diff.c:5605
msgid "specify how differences in submodules are shown"
msgstr "sebutkan bagaimana perbedaan dalam submodul diperlihatkan"
-#: diff.c:5567
+#: diff.c:5609
msgid "hide 'git add -N' entries from the index"
msgstr "sembunyikan entri 'git add -N' dari indeks"
-#: diff.c:5570
+#: diff.c:5612
msgid "treat 'git add -N' entries as real in the index"
msgstr "perlakukan entri 'git add -N' sebagai nyata dalam indeks"
-#: diff.c:5572
+#: diff.c:5614
msgid "<string>"
msgstr "<untai>"
-#: diff.c:5573
+#: diff.c:5615
msgid ""
"look for differences that change the number of occurrences of the specified "
"string"
msgstr "cari perbedaan yang mengubah jumlah kemunculan untai yang disebutkan"
-#: diff.c:5576
+#: diff.c:5618
msgid ""
"look for differences that change the number of occurrences of the specified "
"regex"
msgstr "cari perbedaan yang mengubah jumlah kemunculan regex yang disebutkan"
-#: diff.c:5579
+#: diff.c:5621
msgid "show all changes in the changeset with -S or -G"
msgstr "perlihatkan semua perubahan dalam set perubahan dengan -S atau -G"
-#: diff.c:5582
+#: diff.c:5624
msgid "treat <string> in -S as extended POSIX regular expression"
msgstr ""
"perlakukan <string> di -S sebagai ekspresi reguler POSIX yang diperluas"
-#: diff.c:5585
+#: diff.c:5627
msgid "control the order in which files appear in the output"
msgstr "kontrol urutan berkas yang muncul dalam keluaran"
-#: diff.c:5586 diff.c:5589
+#: diff.c:5628 diff.c:5631
msgid "<path>"
msgstr "<jalur>"
-#: diff.c:5587
+#: diff.c:5629
msgid "show the change in the specified path first"
msgstr "perlihatkan perubahan dalam jalur yang disebutkan terlebih dahulu"
-#: diff.c:5590
+#: diff.c:5632
msgid "skip the output to the specified path"
msgstr "lewati keluaran ke jalur yang disebutkan"
-#: diff.c:5592
+#: diff.c:5634
msgid "<object-id>"
msgstr "<id objek>"
-#: diff.c:5593
+#: diff.c:5635
msgid ""
"look for differences that change the number of occurrences of the specified "
"object"
msgstr "cari perubahan yang mengubah jumlah kemunculan objek yang disebutkan"
-#: diff.c:5595
+#: diff.c:5637
msgid "[(A|C|D|M|R|T|U|X|B)...[*]]"
msgstr "[(A|C|D|M|R|T|U|X|B)...[*]]"
-#: diff.c:5596
+#: diff.c:5638
msgid "select files by diff type"
msgstr "pilih berkas oleh tipe diff"
-#: diff.c:5598
+#: diff.c:5640
msgid "<file>"
msgstr "<berkas>"
-#: diff.c:5599
-msgid "Output to a specific file"
-msgstr "Keluarkan ke berkas yang disebutkan"
+#: diff.c:5641
+msgid "output to a specific file"
+msgstr "keluarkan ke berkas yang disebutkan"
-#: diff.c:6257
+#: diff.c:6321
msgid "exhaustive rename detection was skipped due to too many files."
msgstr "deteksi penamaan ulang lengkap dilewati karena terlalu banyak berkas."
-#: diff.c:6260
+#: diff.c:6324
msgid "only found copies from modified paths due to too many files."
msgstr ""
"hanya ditemukan salinan dari jalur yang berubah karena terlalu banyak berkas."
-#: diff.c:6263
+#: diff.c:6327
#, c-format
msgid ""
"you may want to set your %s variable to at least %d and retry the command."
@@ -3903,20 +4003,20 @@ msgstr ""
msgid "cannot use %s as an exclude file"
msgstr ""
-#: dir.c:2418
+#: dir.c:2419
#, c-format
msgid "could not open directory '%s'"
msgstr ""
-#: dir.c:2720
+#: dir.c:2721
msgid "failed to get kernel name and information"
msgstr ""
-#: dir.c:2844
+#: dir.c:2846
msgid "untracked cache is disabled on this system or location"
msgstr ""
-#: dir.c:3112
+#: dir.c:3119
msgid ""
"No directory name could be guessed.\n"
"Please specify a directory on the command line"
@@ -3924,17 +4024,17 @@ msgstr ""
"Nama direktori tidak dapat ditebak.\n"
"Mohon sebutkan direktori pada baris perintah"
-#: dir.c:3800
+#: dir.c:3807
#, c-format
msgid "index file corrupt in repo %s"
msgstr ""
-#: dir.c:3847 dir.c:3852
+#: dir.c:3854 dir.c:3859
#, c-format
msgid "could not create directories for %s"
msgstr ""
-#: dir.c:3881
+#: dir.c:3888
#, c-format
msgid "could not migrate git directory from '%s' to '%s'"
msgstr ""
@@ -3953,7 +4053,7 @@ msgstr ""
msgid "could not stat file '%s'"
msgstr ""
-#: environment.c:145
+#: environment.c:147
#, c-format
msgid "bad git namespace path \"%s\""
msgstr ""
@@ -3984,248 +4084,275 @@ msgstr "git fetch-pack: ACK/NAK diharapkan, dapat '%s'"
msgid "unable to write to remote"
msgstr "tidak dapat menulis ke remote"
-#: fetch-pack.c:395 fetch-pack.c:1439
+#: fetch-pack.c:397 fetch-pack.c:1460
#, c-format
msgid "invalid shallow line: %s"
msgstr "baris dangkal tidak valid: %s"
-#: fetch-pack.c:401 fetch-pack.c:1445
+#: fetch-pack.c:403 fetch-pack.c:1466
#, c-format
msgid "invalid unshallow line: %s"
msgstr "baris dangkal-balik tidak valid: %s"
-#: fetch-pack.c:403 fetch-pack.c:1447
+#: fetch-pack.c:405 fetch-pack.c:1468
#, c-format
msgid "object not found: %s"
msgstr "object tidak ditemukan: %s"
-#: fetch-pack.c:406 fetch-pack.c:1450
+#: fetch-pack.c:408 fetch-pack.c:1471
#, c-format
msgid "error in object: %s"
msgstr "kesalahan dalam objek: %s"
-#: fetch-pack.c:408 fetch-pack.c:1452
+#: fetch-pack.c:410 fetch-pack.c:1473
#, c-format
msgid "no shallow found: %s"
msgstr "tidak ada dangkal yang ditemukan: %s"
-#: fetch-pack.c:411 fetch-pack.c:1456
+#: fetch-pack.c:413 fetch-pack.c:1477
#, c-format
msgid "expected shallow/unshallow, got %s"
msgstr "dangkal/dangkal-balik diharapkan, dapat %s"
-#: fetch-pack.c:451
+#: fetch-pack.c:453
#, c-format
msgid "got %s %d %s"
msgstr "dapat %s %d %s"
-#: fetch-pack.c:468
+#: fetch-pack.c:470
#, c-format
msgid "invalid commit %s"
msgstr "komit tidak valid %s"
-#: fetch-pack.c:499
+#: fetch-pack.c:501
msgid "giving up"
msgstr "menyerah"
-#: fetch-pack.c:512 progress.c:339
+#: fetch-pack.c:514 progress.h:25
msgid "done"
msgstr "selesai"
-#: fetch-pack.c:524
+#: fetch-pack.c:526
#, c-format
msgid "got %s (%d) %s"
msgstr "dapat %s (%d) %s"
-#: fetch-pack.c:560
+#: fetch-pack.c:562
#, c-format
msgid "Marking %s as complete"
msgstr "Menandai %s sebagai lengkap"
-#: fetch-pack.c:775
+#: fetch-pack.c:784
#, c-format
msgid "already have %s (%s)"
msgstr "sudah punya %s (%s)"
-#: fetch-pack.c:861
+#: fetch-pack.c:870
msgid "fetch-pack: unable to fork off sideband demultiplexer"
msgstr "fetch-pack: tidak dapat menggarpu pemultipleks-balik pita samping"
-#: fetch-pack.c:869
+#: fetch-pack.c:878
msgid "protocol error: bad pack header"
msgstr "kesalahan protokol: kepala pak jelek"
-#: fetch-pack.c:965
+#: fetch-pack.c:974
#, c-format
msgid "fetch-pack: unable to fork off %s"
msgstr "fetch-pack: tidak dapat menggarpu %s"
-#: fetch-pack.c:971
+#: fetch-pack.c:980
msgid "fetch-pack: invalid index-pack output"
msgstr "fetch-pack: keluaran index-pack tidak valid"
-#: fetch-pack.c:988
+#: fetch-pack.c:997
#, c-format
msgid "%s failed"
msgstr "%s gagal"
-#: fetch-pack.c:990
+#: fetch-pack.c:999
msgid "error in sideband demultiplexer"
msgstr "kesalahan dalam pemultipleks-balik pita samping"
-#: fetch-pack.c:1035
+#: fetch-pack.c:1048
#, c-format
msgid "Server version is %.*s"
msgstr "Versi peladen %.*s"
-#: fetch-pack.c:1043 fetch-pack.c:1049 fetch-pack.c:1052 fetch-pack.c:1058
-#: fetch-pack.c:1062 fetch-pack.c:1066 fetch-pack.c:1070 fetch-pack.c:1074
-#: fetch-pack.c:1078 fetch-pack.c:1082 fetch-pack.c:1086 fetch-pack.c:1090
-#: fetch-pack.c:1096 fetch-pack.c:1102 fetch-pack.c:1107 fetch-pack.c:1112
+#: fetch-pack.c:1056 fetch-pack.c:1062 fetch-pack.c:1065 fetch-pack.c:1071
+#: fetch-pack.c:1075 fetch-pack.c:1079 fetch-pack.c:1083 fetch-pack.c:1087
+#: fetch-pack.c:1091 fetch-pack.c:1095 fetch-pack.c:1099 fetch-pack.c:1103
+#: fetch-pack.c:1109 fetch-pack.c:1115 fetch-pack.c:1120 fetch-pack.c:1125
#, c-format
msgid "Server supports %s"
msgstr "Peladen mendukung %s"
-#: fetch-pack.c:1045
+#: fetch-pack.c:1058
msgid "Server does not support shallow clients"
msgstr "Peladen tidak mendukung klien dangkal"
-#: fetch-pack.c:1105
+#: fetch-pack.c:1118
msgid "Server does not support --shallow-since"
msgstr "Peladen tidak mendukung --shallow-since"
-#: fetch-pack.c:1110
+#: fetch-pack.c:1123
msgid "Server does not support --shallow-exclude"
msgstr "Peladen tidak mendukung --shallow-exclude"
-#: fetch-pack.c:1114
+#: fetch-pack.c:1127
msgid "Server does not support --deepen"
msgstr "Peladen tidak mendukung --deepen"
-#: fetch-pack.c:1116
+#: fetch-pack.c:1129
msgid "Server does not support this repository's object format"
msgstr "Peladen tidak mendukung objek format repositori ini"
-#: fetch-pack.c:1129
+#: fetch-pack.c:1142
msgid "no common commits"
msgstr "tidak ada komit umum"
-#: fetch-pack.c:1138 fetch-pack.c:1485 builtin/clone.c:1130
+#: fetch-pack.c:1151 fetch-pack.c:1506 builtin/clone.c:1166
msgid "source repository is shallow, reject to clone."
msgstr "repositori sumber dangkal, menolak mengkloning."
-#: fetch-pack.c:1144 fetch-pack.c:1681
+#: fetch-pack.c:1157 fetch-pack.c:1705
msgid "git fetch-pack: fetch failed."
msgstr "git fetch-pack: pengambilan gagal."
-#: fetch-pack.c:1258
+#: fetch-pack.c:1271
#, c-format
msgid "mismatched algorithms: client %s; server %s"
msgstr "algoritma tidak cocok: klien %s; peladen %s"
-#: fetch-pack.c:1262
+#: fetch-pack.c:1275
#, c-format
msgid "the server does not support algorithm '%s'"
msgstr "peladen tidak mendukung algoritma '%s'"
-#: fetch-pack.c:1295
+#: fetch-pack.c:1308
msgid "Server does not support shallow requests"
msgstr "Peladen tidak mendukung permintaan dangkal"
-#: fetch-pack.c:1302
+#: fetch-pack.c:1315
msgid "Server supports filter"
msgstr "Peladen mendukung saringan"
-#: fetch-pack.c:1345 fetch-pack.c:2063
+#: fetch-pack.c:1358 fetch-pack.c:2087
msgid "unable to write request to remote"
msgstr "tidak dapat menulis permintaan kepada remote"
-#: fetch-pack.c:1363
+#: fetch-pack.c:1376
#, c-format
msgid "error reading section header '%s'"
msgstr "kesalahan membaca kepala seksi '%s'"
-#: fetch-pack.c:1369
+#: fetch-pack.c:1382
#, c-format
msgid "expected '%s', received '%s'"
msgstr "diharapkan '%s', diterima '%s'"
-#: fetch-pack.c:1403
+#: fetch-pack.c:1416
#, c-format
msgid "unexpected acknowledgment line: '%s'"
msgstr "baris pengakuan tidak diharapkan: %s"
-#: fetch-pack.c:1408
+#: fetch-pack.c:1421
#, c-format
msgid "error processing acks: %d"
msgstr "kesalahan memproses ack: %d"
-#: fetch-pack.c:1418
-msgid "expected packfile to be sent after 'ready'"
-msgstr "berkas pak diharapkan dikirim setelah 'ready'"
+#. TRANSLATORS: The parameter will be 'ready', a protocol
+#. keyword.
+#.
+#: fetch-pack.c:1435
+#, c-format
+msgid "expected packfile to be sent after '%s'"
+msgstr "berkas pak diharapkan dikirim setelah '%s'"
-#: fetch-pack.c:1420
-msgid "expected no other sections to be sent after no 'ready'"
+#. TRANSLATORS: The parameter will be 'ready', a protocol
+#. keyword.
+#.
+#: fetch-pack.c:1441
+#, c-format
+msgid "expected no other sections to be sent after no '%s'"
msgstr ""
-"tidak ada seksi lainnya yang diharapkan dikirim setelah tidak ada 'ready'"
+"tidak ada bagian lainnya yang diharapkan dikirim setelah tidak ada '%s'"
-#: fetch-pack.c:1461
+#: fetch-pack.c:1482
#, c-format
msgid "error processing shallow info: %d"
msgstr "gagal memproses info dangkal: %d"
-#: fetch-pack.c:1510
+#: fetch-pack.c:1531
#, c-format
msgid "expected wanted-ref, got '%s'"
msgstr "wanted-ref diharapkan, dapat '%s'"
-#: fetch-pack.c:1515
+#: fetch-pack.c:1536
#, c-format
msgid "unexpected wanted-ref: '%s'"
msgstr "wanted-ref tidak diharapkan: '%s'"
-#: fetch-pack.c:1520
+#: fetch-pack.c:1541
#, c-format
msgid "error processing wanted refs: %d"
msgstr "kesalahan memproses referensi yang diminta: %d"
-#: fetch-pack.c:1550
+#: fetch-pack.c:1571
msgid "git fetch-pack: expected response end packet"
msgstr "git fetch-pack: paket jawaban akhir diharapkan"
-#: fetch-pack.c:1959
+#: fetch-pack.c:1983
msgid "no matching remote head"
msgstr "tidak ada kepala remote yang cocok"
-#: fetch-pack.c:1982 builtin/clone.c:581
+#: fetch-pack.c:2006 builtin/clone.c:587
msgid "remote did not send all necessary objects"
msgstr "remote tidak mengirim semua objek yang dibutuhkan"
-#: fetch-pack.c:2085
+#: fetch-pack.c:2109
msgid "unexpected 'ready' from remote"
msgstr "'ready' tidak diharapkan dari remote"
-#: fetch-pack.c:2108
+#: fetch-pack.c:2132
#, c-format
msgid "no such remote ref %s"
msgstr "tidak ada referensi remote seperti %s"
-#: fetch-pack.c:2111
+#: fetch-pack.c:2135
#, c-format
msgid "Server does not allow request for unadvertised object %s"
msgstr "Peladen tidak memperbolehkan permintaan untuk objek tak diiklankan %s"
-#: gpg-interface.c:329 gpg-interface.c:457 gpg-interface.c:974
-#: gpg-interface.c:990
+#: fsmonitor-ipc.c:119
+#, c-format
+msgid "fsmonitor_ipc__send_query: invalid path '%s'"
+msgstr ""
+
+#: fsmonitor-ipc.c:125
+#, c-format
+msgid "fsmonitor_ipc__send_query: unspecified error on '%s'"
+msgstr ""
+
+#: fsmonitor-ipc.c:155
+msgid "fsmonitor--daemon is not running"
+msgstr ""
+
+#: fsmonitor-ipc.c:164
+#, c-format
+msgid "could not send '%s' command to fsmonitor--daemon"
+msgstr ""
+
+#: gpg-interface.c:329 gpg-interface.c:456 gpg-interface.c:995
+#: gpg-interface.c:1011
msgid "could not create temporary file"
msgstr "tidak dapat membuat berkas sementara"
-#: gpg-interface.c:332 gpg-interface.c:460
+#: gpg-interface.c:332 gpg-interface.c:459
#, c-format
msgid "failed writing detached signature to '%s'"
msgstr "gagal menulis tandatangan terlepas ke '%s'"
-#: gpg-interface.c:451
+#: gpg-interface.c:450
msgid ""
"gpg.ssh.allowedSignersFile needs to be configured and exist for ssh "
"signature verification"
@@ -4233,7 +4360,7 @@ msgstr ""
"gpg.ssh.allowedSignersFile perlu dikonfigurasi dan ada untuk verifikasi "
"tandatangan ssh"
-#: gpg-interface.c:480
+#: gpg-interface.c:479
msgid ""
"ssh-keygen -Y find-principals/verify is needed for ssh signature "
"verification (available in openssh version 8.2p1+)"
@@ -4241,57 +4368,57 @@ msgstr ""
"ssh-keygen -Y find-principals/verify diperlukan untuk verifikasi tandatangan "
"ssh (tersedia di openssh versi 8.2p1+)"
-#: gpg-interface.c:536
+#: gpg-interface.c:550
#, c-format
msgid "ssh signing revocation file configured but not found: %s"
msgstr ""
"berkas pencabutan penandatanganan ssh terkonfigurasi tapi tidak ada: %s"
-#: gpg-interface.c:624
+#: gpg-interface.c:638
#, c-format
msgid "bad/incompatible signature '%s'"
msgstr "tanda tangan '%s' jelek/tidak kompatibel"
-#: gpg-interface.c:801 gpg-interface.c:806
+#: gpg-interface.c:815 gpg-interface.c:820
#, c-format
msgid "failed to get the ssh fingerprint for key '%s'"
msgstr "gagal mendapatkan sidik jari ssh untuk kunci '%s'"
-#: gpg-interface.c:829
+#: gpg-interface.c:843
msgid ""
"either user.signingkey or gpg.ssh.defaultKeyCommand needs to be configured"
msgstr ""
"baik user.signingkey atau gpg.ssh.defaultKeyCommand perlu dikonfigurasi"
-#: gpg-interface.c:851
+#: gpg-interface.c:865
#, c-format
msgid "gpg.ssh.defaultKeyCommand succeeded but returned no keys: %s %s"
msgstr "gpg.ssh.defaultKeyCommand sukses tapi tidak mengembalikan kunci: %s %s"
-#: gpg-interface.c:857
+#: gpg-interface.c:871
#, c-format
msgid "gpg.ssh.defaultKeyCommand failed: %s %s"
msgstr "gpg.ssh.defaultKeyCommand gagal: %s %s"
-#: gpg-interface.c:945
+#: gpg-interface.c:966
msgid "gpg failed to sign the data"
msgstr "gpg gagal menandatangani data"
-#: gpg-interface.c:967
+#: gpg-interface.c:988
msgid "user.signingkey needs to be set for ssh signing"
msgstr "user.signingkey perlu disetel untuk penandatanganan ssh"
-#: gpg-interface.c:978
+#: gpg-interface.c:999
#, c-format
msgid "failed writing ssh signing key to '%s'"
msgstr "gagal menulis kunci penandatanganan ssh ke '%s'"
-#: gpg-interface.c:996
+#: gpg-interface.c:1017
#, c-format
msgid "failed writing ssh signing key buffer to '%s'"
msgstr "gagal menulis penyangga kunci penandatanganan ssh ke '%s'"
-#: gpg-interface.c:1014
+#: gpg-interface.c:1035
msgid ""
"ssh-keygen -Y sign is needed for ssh signing (available in openssh version "
"8.2p1+)"
@@ -4299,7 +4426,7 @@ msgstr ""
"ssh-keygen -Y sign diperlukan untuk penandatanganan ssh (tersedia di "
"openssh versi 8.2p1+)"
-#: gpg-interface.c:1026
+#: gpg-interface.c:1047
#, c-format
msgid "failed reading ssh signing data buffer from '%s'"
msgstr "gagal membaca penyangga data penandatanganan ssh dari '%s'"
@@ -4309,7 +4436,7 @@ msgstr "gagal membaca penyangga data penandatanganan ssh dari '%s'"
msgid "ignored invalid color '%.*s' in log.graphColors"
msgstr "warna tidak valid '%.*s' diabaikan di log.graphColors"
-#: grep.c:531
+#: grep.c:446
msgid ""
"given pattern contains NULL byte (via -f <file>). This is only supported "
"with -P under PCRE v2"
@@ -4317,109 +4444,109 @@ msgstr ""
"pola yang diberikan berisi bita NULL (via -f <berkas>). Hal ini hanya "
"didukung dengan -P di bawah PCRE v2"
-#: grep.c:1942
+#: grep.c:1859
#, c-format
msgid "'%s': unable to read %s"
msgstr "'%s': tidak dapat membaca %s"
-#: grep.c:1959 setup.c:177 builtin/clone.c:302 builtin/diff.c:90
+#: grep.c:1876 setup.c:178 builtin/clone.c:308 builtin/diff.c:90
#: builtin/rm.c:136
#, c-format
msgid "failed to stat '%s'"
msgstr "gagal men-stat '%s'"
-#: grep.c:1970
+#: grep.c:1887
#, c-format
msgid "'%s': short read"
msgstr "'%s': baca pendek"
-#: help.c:24
+#: help.c:25
msgid "start a working area (see also: git help tutorial)"
msgstr "mulai area kerja (lihat pula: git help tutorial)"
-#: help.c:25
+#: help.c:26
msgid "work on the current change (see also: git help everyday)"
msgstr "bekerja pada perubahan saat ini (lihat pula: git help everyday)"
-#: help.c:26
+#: help.c:27
msgid "examine the history and state (see also: git help revisions)"
msgstr "periksa riwayat dan keadaan (lihat pula: git help revisions)"
-#: help.c:27
+#: help.c:28
msgid "grow, mark and tweak your common history"
msgstr "tumbuhkan, tandai, dan cubit riwayat umum Anda"
-#: help.c:28
+#: help.c:29
msgid "collaborate (see also: git help workflows)"
msgstr "kolaborasi (lihat pula: git help workflows)"
-#: help.c:32
+#: help.c:33
msgid "Main Porcelain Commands"
msgstr "Perintah Porselen Utama"
-#: help.c:33
+#: help.c:34
msgid "Ancillary Commands / Manipulators"
msgstr "Perintah Tambahan / Peubah"
-#: help.c:34
+#: help.c:35
msgid "Ancillary Commands / Interrogators"
msgstr "Perintah Tambahan / Pemeriksa"
-#: help.c:35
+#: help.c:36
msgid "Interacting with Others"
msgstr "Berinteraksi dengan yang Lain"
-#: help.c:36
+#: help.c:37
msgid "Low-level Commands / Manipulators"
msgstr "Perintah Tingkat Rendah / Peubah"
-#: help.c:37
+#: help.c:38
msgid "Low-level Commands / Interrogators"
msgstr "Perintah Tingkat Rendah / Pemeriksa"
-#: help.c:38
+#: help.c:39
msgid "Low-level Commands / Syncing Repositories"
msgstr "Perintah Tingkat Rendah / Sinkronisasi Repositori"
-#: help.c:39
+#: help.c:40
msgid "Low-level Commands / Internal Helpers"
msgstr "Perintah Tingak Rendah / Pembantu Internal"
-#: help.c:313
+#: help.c:316
#, c-format
msgid "available git commands in '%s'"
msgstr "perintah git yang tersedia di '%s'"
-#: help.c:320
+#: help.c:323
msgid "git commands available from elsewhere on your $PATH"
msgstr "perintah git yang tersedia dari tempat lain pada $PATH Anda"
-#: help.c:329
+#: help.c:332
msgid "These are common Git commands used in various situations:"
msgstr "Berikut ini perintah Git umum yang digunakan dalam beragam situasi:"
-#: help.c:378 git.c:100
+#: help.c:382 git.c:100
#, c-format
msgid "unsupported command listing type '%s'"
msgstr "tipe daftar perintah '%s' tidak didukung"
-#: help.c:418
+#: help.c:422
msgid "The Git concept guides are:"
msgstr "Panduan konsep Git adalah:"
-#: help.c:442
-msgid "See 'git help <command>' to read about a specific subcommand"
-msgstr "Lihat 'git help <perintah>' untuk baca tentang subperintah spesifik"
-
-#: help.c:447
+#: help.c:446
msgid "External commands"
msgstr "Perintah eksternal"
-#: help.c:462
+#: help.c:468
msgid "Command aliases"
msgstr "Alias perintah"
-#: help.c:543
+#: help.c:486
+msgid "See 'git help <command>' to read about a specific subcommand"
+msgstr "Lihat 'git help <perintah>' untuk baca tentang subperintah spesifik"
+
+#: help.c:563
#, c-format
msgid ""
"'%s' appears to be a git command, but we were not\n"
@@ -4428,36 +4555,36 @@ msgstr ""
"'%s' sepertinya perintah git, tetapi kami tidak dapat\n"
"menjalankannya. Mungkin git-%s rusak?"
-#: help.c:565 help.c:662
+#: help.c:585 help.c:682
#, c-format
msgid "git: '%s' is not a git command. See 'git --help'."
msgstr "git: '%s' bukan perintah git. Lihat 'git --help'."
-#: help.c:613
+#: help.c:633
msgid "Uh oh. Your system reports no Git commands at all."
msgstr "Eh oh. Sistem Anda melaporkan tidak ada perintah Git sama sekali."
-#: help.c:635
+#: help.c:655
#, c-format
msgid "WARNING: You called a Git command named '%s', which does not exist."
msgstr "PERINGATAN: Anda memanggil perintah Git bernama '%s' yang tidak ada."
-#: help.c:640
+#: help.c:660
#, c-format
msgid "Continuing under the assumption that you meant '%s'."
msgstr "Melanjutkan di bawah asumsi bahwa maksud Anda '%s'."
-#: help.c:646
+#: help.c:666
#, c-format
msgid "Run '%s' instead [y/N]? "
-msgstr ""
+msgstr "Jalankan '%s' sebagai gantinya [y/N]?"
-#: help.c:654
+#: help.c:674
#, c-format
msgid "Continuing in %0.1f seconds, assuming that you meant '%s'."
msgstr "Melanjutkan dalam %0.1f detik, mengasumsikan bahwa maksud Anda '%s'."
-#: help.c:666
+#: help.c:686
msgid ""
"\n"
"The most similar command is"
@@ -4471,16 +4598,16 @@ msgstr[1] ""
"\n"
"Perintah paling mirip adalah"
-#: help.c:706
+#: help.c:729
msgid "git version [<options>]"
msgstr "git version [<opsi>]"
-#: help.c:761
+#: help.c:784
#, c-format
msgid "%s: %s - %s"
msgstr "%s: %s - %s"
-#: help.c:765
+#: help.c:788
msgid ""
"\n"
"Did you mean this?"
@@ -4494,22 +4621,30 @@ msgstr[1] ""
"\n"
"Mungkin maksud Anda salah satu dari yang ini?"
-#: hook.c:27
+#: hook.c:28
#, c-format
msgid ""
"The '%s' hook was ignored because it's not set as executable.\n"
"You can disable this warning with `git config advice.ignoredHook false`."
msgstr ""
+"Kait '%s' diabaikan karena tidak disetel sebagai dapat dieksekusi.\n"
+"Anda dapat menonaktifkan peringatan ini dengan `git config advice."
+"ignoredHook false`."
-#: ident.c:353
+#: hook.c:87
+#, c-format
+msgid "Couldn't start hook '%s'\n"
+msgstr "Tidak dapat memulai kait '%s'\n"
+
+#: ident.c:354
msgid "Author identity unknown\n"
-msgstr ""
+msgstr "Identitas pengarang tidak dikenal\n"
-#: ident.c:356
+#: ident.c:357
msgid "Committer identity unknown\n"
-msgstr ""
+msgstr "Identitas pengkomit tidak dikenal\n"
-#: ident.c:362
+#: ident.c:363
msgid ""
"\n"
"*** Please tell me who you are.\n"
@@ -4523,72 +4658,83 @@ msgid ""
"Omit --global to set the identity only in this repository.\n"
"\n"
msgstr ""
+"\n"
+"*** Mohon beri tahu saya siapa Anda.\n"
+"\n"
+"Jalankan\n"
+"\n"
+" git config --global user.email \"anda@example.com\"\n"
+" git config --global user.name \"Nama Anda\"\n"
+"\n"
+"untuk menyetel identitas asali akun Anda.\n"
+"Abaikan --global untuk menyetel identitas hanya di dalam repositori ini.\n"
+"\n"
-#: ident.c:397
+#: ident.c:398
msgid "no email was given and auto-detection is disabled"
-msgstr ""
+msgstr "tidak ada email yang diberikan dan deteksi otomatis dimatikan"
-#: ident.c:402
+#: ident.c:403
#, c-format
msgid "unable to auto-detect email address (got '%s')"
-msgstr ""
+msgstr "tidak dapat mendeteksi otomatis alamat email (dapat '%s')"
-#: ident.c:419
+#: ident.c:420
msgid "no name was given and auto-detection is disabled"
-msgstr ""
+msgstr "tidak ada nama yang diberikan dan deteksi otomatis dimatikan"
-#: ident.c:425
+#: ident.c:426
#, c-format
msgid "unable to auto-detect name (got '%s')"
-msgstr ""
+msgstr "tidak dapat mendeteksi otomatis nama (dapat '%s')"
-#: ident.c:433
+#: ident.c:434
#, c-format
msgid "empty ident name (for <%s>) not allowed"
-msgstr ""
+msgstr "nama identitas kosong (untuk <%s>) tidak diperbolehkan"
-#: ident.c:439
+#: ident.c:440
#, c-format
msgid "name consists only of disallowed characters: %s"
-msgstr ""
+msgstr "nama hanya terdiri dari karakter yang tidak diperbolehkan: %s"
-#: ident.c:454 builtin/commit.c:648
+#: ident.c:455 builtin/commit.c:649
#, c-format
msgid "invalid date format: %s"
-msgstr ""
+msgstr "format tanggal tidak valid: %s"
-#: list-objects-filter-options.c:83
+#: list-objects-filter-options.c:68
msgid "expected 'tree:<depth>'"
msgstr ""
-#: list-objects-filter-options.c:98
+#: list-objects-filter-options.c:83
msgid "sparse:path filters support has been dropped"
msgstr ""
-#: list-objects-filter-options.c:105
+#: list-objects-filter-options.c:90
#, c-format
msgid "'%s' for 'object:type=<type>' is not a valid object type"
msgstr ""
-#: list-objects-filter-options.c:124
+#: list-objects-filter-options.c:109
#, c-format
msgid "invalid filter-spec '%s'"
msgstr ""
-#: list-objects-filter-options.c:140
+#: list-objects-filter-options.c:125
#, c-format
msgid "must escape char in sub-filter-spec: '%c'"
msgstr ""
-#: list-objects-filter-options.c:182
+#: list-objects-filter-options.c:167
msgid "expected something after combine:"
msgstr ""
-#: list-objects-filter-options.c:264
+#: list-objects-filter-options.c:249
msgid "multiple filter-specs cannot be combined"
msgstr ""
-#: list-objects-filter-options.c:376
+#: list-objects-filter-options.c:365
msgid "unable to upgrade repository format to support partial clone"
msgstr ""
@@ -4602,17 +4748,17 @@ msgstr ""
msgid "unable to parse sparse filter data in %s"
msgstr ""
-#: list-objects.c:127
+#: list-objects.c:144
#, c-format
msgid "entry '%s' in tree %s has tree mode, but is not a tree"
msgstr ""
-#: list-objects.c:140
+#: list-objects.c:157
#, c-format
msgid "entry '%s' in tree %s has blob mode, but is not a blob"
msgstr ""
-#: list-objects.c:398
+#: list-objects.c:415
#, c-format
msgid "unable to load root tree for commit %s"
msgstr ""
@@ -4634,17 +4780,12 @@ msgstr ""
msgid "Unable to create '%s.lock': %s"
msgstr ""
-#: ls-refs.c:37
-#, c-format
-msgid "invalid value '%s' for lsrefs.unborn"
-msgstr ""
-
-#: ls-refs.c:174
+#: ls-refs.c:175
#, c-format
msgid "unexpected line: '%s'"
msgstr ""
-#: ls-refs.c:178
+#: ls-refs.c:179
msgid "expected flush after ls-refs arguments"
msgstr ""
@@ -4652,44 +4793,48 @@ msgstr ""
msgid "quoted CRLF detected"
msgstr ""
-#: mailinfo.c:1254 builtin/am.c:184 builtin/mailinfo.c:46
+#: mailinfo.c:1254 builtin/am.c:185 builtin/mailinfo.c:46
#, c-format
msgid "bad action '%s' for '%s'"
msgstr ""
-#: merge-ort.c:1584 merge-recursive.c:1211
+#: merge-ort.c:1630 merge-recursive.c:1214
#, c-format
msgid "Failed to merge submodule %s (not checked out)"
-msgstr ""
+msgstr "Gagal menggabungkan submodul %s (tidak di-checkout)"
-#: merge-ort.c:1593 merge-recursive.c:1218
+#: merge-ort.c:1639 merge-recursive.c:1221
#, c-format
msgid "Failed to merge submodule %s (commits not present)"
-msgstr ""
+msgstr "Gagal menggabungkan submodul %s (komit tidak ada)"
-#: merge-ort.c:1602 merge-recursive.c:1225
+#: merge-ort.c:1648 merge-recursive.c:1228
#, c-format
msgid "Failed to merge submodule %s (commits don't follow merge-base)"
msgstr ""
+"Gagal menggabungkan submodul %s (komit tidak mengikuti dasar penggabungan)"
-#: merge-ort.c:1612 merge-ort.c:1620
+#: merge-ort.c:1658 merge-ort.c:1666
#, c-format
msgid "Note: Fast-forwarding submodule %s to %s"
-msgstr ""
+msgstr "Catatan: Memaju-cepat submodul %s ke %s"
-#: merge-ort.c:1642
+#: merge-ort.c:1688
#, c-format
msgid "Failed to merge submodule %s"
-msgstr ""
+msgstr "Gagal menggabungkan submodul %s"
-#: merge-ort.c:1649
+#: merge-ort.c:1695
#, c-format
msgid ""
"Failed to merge submodule %s, but a possible merge resolution exists:\n"
"%s\n"
msgstr ""
+"Gagal menggabungkan submodul %s, tetapi sebuah penyelesaian penggabungan "
+"yang mungkin ada:\n"
+"%s\n"
-#: merge-ort.c:1653 merge-recursive.c:1281
+#: merge-ort.c:1699 merge-recursive.c:1284
#, c-format
msgid ""
"If this is correct simply add it to the index for example\n"
@@ -4699,610 +4844,689 @@ msgid ""
"\n"
"which will accept this suggestion.\n"
msgstr ""
+"Jika benar, cukup misalkan tambahkan ke indeks dengan menggunakan:\n"
+"\n"
+" git update-index --cacheinfo 160000 %s \"%s\"\n"
+"\n"
+"yang akan menerima saran ini.\n"
-#: merge-ort.c:1666
+#: merge-ort.c:1712
#, c-format
msgid ""
"Failed to merge submodule %s, but multiple possible merges exist:\n"
"%s"
msgstr ""
+"Gagal menggabungkan submodul %s, tetapi ada banyak penggabungan yang "
+"mungkin:\n"
+"%s"
-#: merge-ort.c:1887 merge-recursive.c:1372
+#: merge-ort.c:1937 merge-recursive.c:1375
msgid "Failed to execute internal merge"
-msgstr ""
+msgstr "Gagal menjalankan penggabungan internal"
-#: merge-ort.c:1892 merge-recursive.c:1377
+#: merge-ort.c:1942 merge-recursive.c:1380
#, c-format
msgid "Unable to add %s to database"
-msgstr ""
+msgstr "Tidak dapat menambahkan %s ke basis data"
-#: merge-ort.c:1899 merge-recursive.c:1410
+#: merge-ort.c:1949 merge-recursive.c:1413
#, c-format
msgid "Auto-merging %s"
-msgstr ""
+msgstr "Menggabungkan otomatis %s"
-#: merge-ort.c:2038 merge-recursive.c:2132
+#: merge-ort.c:2088 merge-recursive.c:2135
#, c-format
msgid ""
"CONFLICT (implicit dir rename): Existing file/dir at %s in the way of "
"implicit directory rename(s) putting the following path(s) there: %s."
msgstr ""
+"KONFLIK (penamaan ulang direktori implisit): Berkas/direktori yang sudah ada "
+"pada %s saat penamaan ulang direktori menempatkan jalur berikut di sana: %s."
-#: merge-ort.c:2048 merge-recursive.c:2142
+#: merge-ort.c:2098 merge-recursive.c:2145
#, c-format
msgid ""
"CONFLICT (implicit dir rename): Cannot map more than one path to %s; "
"implicit directory renames tried to put these paths there: %s"
msgstr ""
+"KONFLIK (penamaan ulang direktori implisit): Tidak dapat memetakan lebih "
+"dari satu jalur ke %s; penamaan ulang direktori implisit mencoba menempatkan "
+"jalur tersebut di sana: %s"
-#: merge-ort.c:2106
+#: merge-ort.c:2156
#, c-format
msgid ""
"CONFLICT (directory rename split): Unclear where to rename %s to; it was "
"renamed to multiple other directories, with no destination getting a "
"majority of the files."
msgstr ""
+"KONFLIK (pemecahan penamaan ulang direktori): Tidak jelas kemana menamakan "
+"ulang %s; itu dinamai ulang ke banyak direktori lainnya, dengan tiada tujuan "
+"mendapatkan mayoritas berkas."
-#: merge-ort.c:2260 merge-recursive.c:2478
+#: merge-ort.c:2310 merge-recursive.c:2481
#, c-format
msgid ""
"WARNING: Avoiding applying %s -> %s rename to %s, because %s itself was "
"renamed."
msgstr ""
+"PERINGATAN: Menghindari menerapkan penamaan ulang %s -> %s ke %s, karena %s-"
+"nya sendiri dinamai ulang."
-#: merge-ort.c:2400 merge-recursive.c:3261
+#: merge-ort.c:2450 merge-recursive.c:3264
#, c-format
msgid ""
"Path updated: %s added in %s inside a directory that was renamed in %s; "
"moving it to %s."
msgstr ""
+"Jalur diperbarui: %s menambahkan %s di dalam sebuah direktori yang dinamai "
+"ulang di %s; memindahkan ke %s."
-#: merge-ort.c:2407 merge-recursive.c:3268
+#: merge-ort.c:2457 merge-recursive.c:3271
#, c-format
msgid ""
"Path updated: %s renamed to %s in %s, inside a directory that was renamed in "
"%s; moving it to %s."
msgstr ""
+"Jalur diperbarui: %s dinamai ulang ke %s di %s, di dalam sebuah direktori "
+"yang dinamai ulang di %s; memindahkan ke %s."
-#: merge-ort.c:2420 merge-recursive.c:3264
+#: merge-ort.c:2470 merge-recursive.c:3267
#, c-format
msgid ""
"CONFLICT (file location): %s added in %s inside a directory that was renamed "
"in %s, suggesting it should perhaps be moved to %s."
msgstr ""
+"KONFLIK (lokasi berkas): %s menambahkan %s di dalam sebuah direktori yang "
+"dinamai ulang di %s, menyarankan mungkin dipindahkan ke %s."
-#: merge-ort.c:2428 merge-recursive.c:3271
+#: merge-ort.c:2478 merge-recursive.c:3274
#, c-format
msgid ""
"CONFLICT (file location): %s renamed to %s in %s, inside a directory that "
"was renamed in %s, suggesting it should perhaps be moved to %s."
msgstr ""
+"KONFLIK (lokasi berkas): %s dinamai ulang ke %s di %s, di dalam sebuah "
+"direktori yang dinamai ulang di %s, menyarankan mungkin dipindahkan ke %s. "
-#: merge-ort.c:2584
+#: merge-ort.c:2634
#, c-format
msgid "CONFLICT (rename/rename): %s renamed to %s in %s and to %s in %s."
msgstr ""
+"KONFLIK (penamaan ulang/penamaan ulang): %s dinamai ulang ke %s di %s dan ke "
+"%s di %s."
-#: merge-ort.c:2679
+#: merge-ort.c:2729
#, c-format
msgid ""
"CONFLICT (rename involved in collision): rename of %s -> %s has content "
"conflicts AND collides with another path; this may result in nested conflict "
"markers."
msgstr ""
+"KONFLIK (penamaan ulang terlibat di dalam tabrakan): penamaan ulang %s -> %s "
+"punya konflik konten DAN bertabrakan dengan jalur yang lain; ini mungkin "
+"menghasilkan penanda konflik bersarang."
-#: merge-ort.c:2698 merge-ort.c:2722
+#: merge-ort.c:2748 merge-ort.c:2772
#, c-format
msgid "CONFLICT (rename/delete): %s renamed to %s in %s, but deleted in %s."
msgstr ""
+"KONFLIK (penamaan ulang/penghapusan): %s dinamai ulang ke %s di %s, tetapi "
+"dihapus di %s."
-#: merge-ort.c:3212 merge-recursive.c:3022
+#: merge-ort.c:3261 merge-recursive.c:3025
#, c-format
msgid "cannot read object %s"
-msgstr ""
+msgstr "tidak dapat membaca objek %s"
-#: merge-ort.c:3215 merge-recursive.c:3025
+#: merge-ort.c:3264 merge-recursive.c:3028
#, c-format
msgid "object %s is not a blob"
-msgstr ""
+msgstr "objek %s bukanlah sebuah blob"
-#: merge-ort.c:3644
+#: merge-ort.c:3693
#, c-format
msgid ""
"CONFLICT (file/directory): directory in the way of %s from %s; moving it to "
"%s instead."
msgstr ""
+"KONFLIK (berkas/direktori): direktori di jalan %s dari %s; memindahkan ke %s "
+"sebagai gantinya."
-#: merge-ort.c:3721
+#: merge-ort.c:3770
#, c-format
msgid ""
"CONFLICT (distinct types): %s had different types on each side; renamed both "
"of them so each can be recorded somewhere."
msgstr ""
+"KONFLIK (tipe berbeda): %s punya tipe berbeda pada setiap sisi; kedua-duanya "
+"dinamai ulang sehingga masing-masing dapat direkam di suatu tempat."
-#: merge-ort.c:3728
+#: merge-ort.c:3777
#, c-format
msgid ""
"CONFLICT (distinct types): %s had different types on each side; renamed one "
"of them so each can be recorded somewhere."
msgstr ""
+"KONFLIK (tipe berbeda): %s punya tipe berbeda pada setiap sisi; salah "
+"satunya dinamai ulang sehingga masing-masing dapat direkam di suatu tempat."
-#: merge-ort.c:3819 merge-recursive.c:3101
+#: merge-ort.c:3866 merge-recursive.c:3104
msgid "content"
-msgstr ""
+msgstr "konten"
-#: merge-ort.c:3821 merge-recursive.c:3105
+#: merge-ort.c:3868 merge-recursive.c:3108
msgid "add/add"
-msgstr ""
+msgstr "penambahan/penambahan"
-#: merge-ort.c:3823 merge-recursive.c:3150
+#: merge-ort.c:3870 merge-recursive.c:3153
msgid "submodule"
-msgstr ""
+msgstr "submodul"
-#: merge-ort.c:3825 merge-recursive.c:3151
+#: merge-ort.c:3872 merge-recursive.c:3154
#, c-format
msgid "CONFLICT (%s): Merge conflict in %s"
-msgstr ""
+msgstr "KONFLIK (%s): Konflik penggabungan di %s"
-#: merge-ort.c:3869
+#: merge-ort.c:3916
#, c-format
msgid ""
"CONFLICT (modify/delete): %s deleted in %s and modified in %s. Version %s "
"of %s left in tree."
msgstr ""
+"KONFLIK (pengubahan/penghapusan): %s dihapus di %s dan diubah di %s. Versi "
+"%s dari %s ditinggalkan di dalam pohon."
-#: merge-ort.c:4165
+#: merge-ort.c:4212
#, c-format
msgid ""
"Note: %s not up to date and in way of checking out conflicted version; old "
"copy renamed to %s"
msgstr ""
+"Catatan: %s tidak terbaru dan dalam men-checkout versi berkonflik; salinan "
+"lama dinamai ulang ke %s"
#. TRANSLATORS: The %s arguments are: 1) tree hash of a merge
#. base, and 2-3) the trees for the two trees we're merging.
#.
-#: merge-ort.c:4534
+#: merge-ort.c:4586
#, c-format
msgid "collecting merge info failed for trees %s, %s, %s"
-msgstr ""
+msgstr "pengumpulan info penggabungan gagal untuk pohon %s, %s, dan %s"
-#: merge-ort-wrappers.c:13 merge-recursive.c:3716
+#: merge-ort-wrappers.c:13 merge-recursive.c:3723
#, c-format
msgid ""
"Your local changes to the following files would be overwritten by merge:\n"
" %s"
msgstr ""
+"Perubahan lokal Anda terhadap berkas berikut akan ditimpa oleh "
+"penggabungan:\n"
+" %s"
-#: merge-ort-wrappers.c:33 merge-recursive.c:3482 builtin/merge.c:405
+#: merge-ort-wrappers.c:33 merge-recursive.c:3485 builtin/merge.c:405
msgid "Already up to date."
msgstr "Sudah terbaru."
#: merge-recursive.c:353
msgid "(bad commit)\n"
-msgstr ""
+msgstr "(komit jelek)\n"
#: merge-recursive.c:381
#, c-format
msgid "add_cacheinfo failed for path '%s'; merge aborting."
-msgstr ""
+msgstr "add_cacheinfo gagal untuk jalur '%s'; penggabungan dibatalkan."
#: merge-recursive.c:390
#, c-format
msgid "add_cacheinfo failed to refresh for path '%s'; merge aborting."
msgstr ""
+"add_cacheinfo gagal menyegarkan untuk jalur '%s'; penggabungan dibatalkan."
#: merge-recursive.c:881
#, c-format
msgid "failed to create path '%s'%s"
-msgstr ""
+msgstr "gagal membuat jalur '%s'%s"
#: merge-recursive.c:892
#, c-format
msgid "Removing %s to make room for subdirectory\n"
-msgstr ""
+msgstr "Menghapus %s untuk membuat ruang untuk subdirektori\n"
#: merge-recursive.c:906 merge-recursive.c:925
msgid ": perhaps a D/F conflict?"
-msgstr ""
+msgstr ": mungkin konflik direktori/berkas?"
#: merge-recursive.c:915
#, c-format
msgid "refusing to lose untracked file at '%s'"
-msgstr ""
+msgstr "menolak menghilangkan berkas tak terlacak pada '%s'"
-#: merge-recursive.c:956 builtin/cat-file.c:41
+#: merge-recursive.c:956 builtin/cat-file.c:47
#, c-format
msgid "cannot read object %s '%s'"
-msgstr ""
+msgstr "tidak dapat membaca objek %s '%s'"
#: merge-recursive.c:961
#, c-format
msgid "blob expected for %s '%s'"
-msgstr ""
+msgstr "blob diharapkan untuk %s '%s'"
#: merge-recursive.c:986
#, c-format
msgid "failed to open '%s': %s"
-msgstr ""
+msgstr "gagal membuka '%s': %s"
#: merge-recursive.c:997
#, c-format
msgid "failed to symlink '%s': %s"
-msgstr ""
+msgstr "gagal menautkan simbolik '%s': %s"
#: merge-recursive.c:1002
#, c-format
msgid "do not know what to do with %06o %s '%s'"
-msgstr ""
+msgstr "tidak tahu apa yang dilakukan dengan %06o %s '%s'"
-#: merge-recursive.c:1233 merge-recursive.c:1246
+#: merge-recursive.c:1236 merge-recursive.c:1249
#, c-format
msgid "Fast-forwarding submodule %s to the following commit:"
-msgstr ""
+msgstr "Memaju-cepat submodul %s ke komit berikut:"
-#: merge-recursive.c:1236 merge-recursive.c:1249
+#: merge-recursive.c:1239 merge-recursive.c:1252
#, c-format
msgid "Fast-forwarding submodule %s"
-msgstr ""
+msgstr "Memaju-cepat submodul %s"
-#: merge-recursive.c:1273
+#: merge-recursive.c:1276
#, c-format
msgid "Failed to merge submodule %s (merge following commits not found)"
msgstr ""
+"Gagal menggabungkan submodul %s (penggabungan komit berikutnya tidak "
+"ditemukan)"
-#: merge-recursive.c:1277
+#: merge-recursive.c:1280
#, c-format
msgid "Failed to merge submodule %s (not fast-forward)"
-msgstr ""
+msgstr "Gagal menggabungkan submodul %s (bukan maju-cepat)"
-#: merge-recursive.c:1278
+#: merge-recursive.c:1281
msgid "Found a possible merge resolution for the submodule:\n"
-msgstr ""
+msgstr "Sebuah resolusi penggabungan yang mungkin ditemukan untuk submodul:\n"
-#: merge-recursive.c:1290
+#: merge-recursive.c:1293
#, c-format
msgid "Failed to merge submodule %s (multiple merges found)"
-msgstr ""
+msgstr "Gagal menggabungkan submodul %s (banyak penggabungan ditemukan)"
-#: merge-recursive.c:1434
+#: merge-recursive.c:1437
#, c-format
msgid "Error: Refusing to lose untracked file at %s; writing to %s instead."
msgstr ""
+"Kesalahan: Menolak menghilangkan berkas tak terlacak pada %s; menulis ke %s "
+"sebagai gantinya."
-#: merge-recursive.c:1506
+#: merge-recursive.c:1509
#, c-format
msgid ""
"CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left "
"in tree."
msgstr ""
+"KONFLIK (%s/penghapusan): %s dihapus di %s dan %s di %s. Versi %s dari %s "
+"ditinggalkan di dalam pohon."
-#: merge-recursive.c:1511
+#: merge-recursive.c:1514
#, c-format
msgid ""
"CONFLICT (%s/delete): %s deleted in %s and %s to %s in %s. Version %s of %s "
"left in tree."
msgstr ""
+"KONFLIK (%s/penghapusan): %s dihapus di %s dan %s ke %s di %s. Versi %s dari "
+"%s ditinggalkan di dalam pohon."
-#: merge-recursive.c:1518
+#: merge-recursive.c:1521
#, c-format
msgid ""
"CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left "
"in tree at %s."
msgstr ""
+"KONFLIK (%s/penghapusan): %s dihapus di %s dan %s di %s. Versi %s dari %s "
+"ditinggalkan di dalam pohon pada %s."
-#: merge-recursive.c:1523
+#: merge-recursive.c:1526
#, c-format
msgid ""
"CONFLICT (%s/delete): %s deleted in %s and %s to %s in %s. Version %s of %s "
"left in tree at %s."
msgstr ""
+"KONFLIK (%s/penghapusan): %s dihapus di %s dan %s ke %s di %s. Versi %s dari "
+"%s ditinggalkan di dalam pohon pada %s."
-#: merge-recursive.c:1558
+#: merge-recursive.c:1561
msgid "rename"
-msgstr ""
+msgstr "penamaan ulang"
-#: merge-recursive.c:1558
+#: merge-recursive.c:1561
msgid "renamed"
-msgstr ""
+msgstr "dinamai ulang"
-#: merge-recursive.c:1609 merge-recursive.c:2515 merge-recursive.c:3178
+#: merge-recursive.c:1612 merge-recursive.c:2518 merge-recursive.c:3181
#, c-format
msgid "Refusing to lose dirty file at %s"
-msgstr ""
+msgstr "Menolak menghilangkan berkas kotor pada %s"
-#: merge-recursive.c:1619
+#: merge-recursive.c:1622
#, c-format
msgid "Refusing to lose untracked file at %s, even though it's in the way."
msgstr ""
+"Menolak menghilangkan berkas tak terlacak pada %s, bahkan jika itu berjalan."
-#: merge-recursive.c:1677
+#: merge-recursive.c:1680
#, c-format
msgid "CONFLICT (rename/add): Rename %s->%s in %s. Added %s in %s"
msgstr ""
+"KONFLIK (penamaan ulang/penambahan): Penamaan ulang %s-%s di %s. %s "
+"ditambahkan di %s"
-#: merge-recursive.c:1708
+#: merge-recursive.c:1711
#, c-format
msgid "%s is a directory in %s adding as %s instead"
msgstr ""
+"%s adalah sebuah direktori dalam %s menambahkan sebagai %s sebagai gantinya"
-#: merge-recursive.c:1713
+#: merge-recursive.c:1716
#, c-format
msgid "Refusing to lose untracked file at %s; adding as %s instead"
msgstr ""
+"Menolak menghilangkan berkas tak terlacak pada %s; menambahkan sebagai %s "
+"sebagai gantinya"
-#: merge-recursive.c:1740
+#: merge-recursive.c:1743
#, c-format
msgid ""
"CONFLICT (rename/rename): Rename \"%s\"->\"%s\" in branch \"%s\" rename \"%s"
"\"->\"%s\" in \"%s\"%s"
msgstr ""
+"KONFLIK (penamaan ulang/penamaan ulang): Penamaan ulang \"%s\"->\"%s\" di "
+"dalam cabang \"%s\" penamaan ulang \"%s\"->\"%s\" di \"%s\"%s"
-#: merge-recursive.c:1745
+#: merge-recursive.c:1748
msgid " (left unresolved)"
-msgstr ""
+msgstr " dibiarkan tak diselesaikan"
-#: merge-recursive.c:1837
+#: merge-recursive.c:1840
#, c-format
msgid "CONFLICT (rename/rename): Rename %s->%s in %s. Rename %s->%s in %s"
msgstr ""
+"KONFLIK (penamaan ulang/penamaan ulang): Penamaan ulang %s->%s di %s. "
+"Penamaan ulang %s->%s di %s"
-#: merge-recursive.c:2100
+#: merge-recursive.c:2103
#, c-format
msgid ""
"CONFLICT (directory rename split): Unclear where to place %s because "
"directory %s was renamed to multiple other directories, with no destination "
"getting a majority of the files."
msgstr ""
+"KONFLIK (pemecahan penamaan ulang direktori): Tidak jelas dimana untuk "
+"menempatkan %s karena direktori %s dinamai ulang ke banyak direktori "
+"lainnya, dengan tidak ada tujuan yang mendapatkan mayoritas berkas."
-#: merge-recursive.c:2234
+#: merge-recursive.c:2237
#, c-format
msgid ""
"CONFLICT (rename/rename): Rename directory %s->%s in %s. Rename directory %s-"
">%s in %s"
msgstr ""
+"KONFLIK (penamaan ulang/penamaan ulang): Penamaan ulang direktori %s->%s di "
+"%s. Penamaan ulang %s->%s di %s"
-#: merge-recursive.c:3089
+#: merge-recursive.c:3092
msgid "modify"
-msgstr ""
+msgstr "ubah"
-#: merge-recursive.c:3089
+#: merge-recursive.c:3092
msgid "modified"
-msgstr ""
+msgstr "diubah"
-#: merge-recursive.c:3128
+#: merge-recursive.c:3131
#, c-format
msgid "Skipped %s (merged same as existing)"
-msgstr ""
+msgstr "%s dilewatkan (digabungkan sama seperti yang ada)"
-#: merge-recursive.c:3181
+#: merge-recursive.c:3184
#, c-format
msgid "Adding as %s instead"
-msgstr ""
+msgstr "Menambahkan sebagai %s sebagai gantinya"
-#: merge-recursive.c:3385
+#: merge-recursive.c:3388
#, c-format
msgid "Removing %s"
-msgstr ""
+msgstr "Menghapus %s"
-#: merge-recursive.c:3408
+#: merge-recursive.c:3411
msgid "file/directory"
-msgstr ""
+msgstr "berkas/direktori"
-#: merge-recursive.c:3413
+#: merge-recursive.c:3416
msgid "directory/file"
-msgstr ""
+msgstr "direktori/berkas"
-#: merge-recursive.c:3420
+#: merge-recursive.c:3423
#, c-format
msgid "CONFLICT (%s): There is a directory with name %s in %s. Adding %s as %s"
msgstr ""
+"KONFLIK (%s): Ada direktori dengan nama %s di %s. Menambahakn %s sebagai %s"
-#: merge-recursive.c:3429
+#: merge-recursive.c:3432
#, c-format
msgid "Adding %s"
-msgstr ""
+msgstr "Menambahkan %s"
-#: merge-recursive.c:3438
+#: merge-recursive.c:3441
#, c-format
msgid "CONFLICT (add/add): Merge conflict in %s"
-msgstr ""
+msgstr "KONFLIK (penambahan/penambahan): Konflik penggabungan di %s"
-#: merge-recursive.c:3491
+#: merge-recursive.c:3494
#, c-format
msgid "merging of trees %s and %s failed"
-msgstr ""
+msgstr "penggabungan pohon %s dan %s gagal"
-#: merge-recursive.c:3585
+#: merge-recursive.c:3588
msgid "Merging:"
-msgstr ""
+msgstr "Menggabungkan:"
-#: merge-recursive.c:3598
+#: merge-recursive.c:3601
#, c-format
msgid "found %u common ancestor:"
msgid_plural "found %u common ancestors:"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "%u leluhur umum ditemukan:"
+msgstr[1] "%u leluhur umum ditemukan:"
-#: merge-recursive.c:3648
+#: merge-recursive.c:3651
msgid "merge returned no commit"
-msgstr ""
+msgstr "penggabungan tidak mengembalikan komit"
-#: merge-recursive.c:3816
+#: merge-recursive.c:3823
#, c-format
msgid "Could not parse object '%s'"
-msgstr ""
+msgstr "Tidak dapat menguraikan objek '%s'"
-#: merge-recursive.c:3834 builtin/merge.c:720 builtin/merge.c:906
+#: merge-recursive.c:3841 builtin/merge.c:720 builtin/merge.c:912
#: builtin/stash.c:489
msgid "Unable to write index."
-msgstr ""
+msgstr "Tidak dapat menulis indeks."
#: merge.c:41
msgid "failed to read the cache"
msgstr "gagal membaca tembolok"
-#: merge.c:102 rerere.c:704 builtin/am.c:1988 builtin/am.c:2022
-#: builtin/checkout.c:598 builtin/checkout.c:853 builtin/clone.c:706
+#: merge.c:102 rerere.c:705 builtin/am.c:1989 builtin/am.c:2023
+#: builtin/checkout.c:603 builtin/checkout.c:865 builtin/clone.c:714
#: builtin/stash.c:269
msgid "unable to write new index file"
msgstr "gagal menulis berkas indeks baru"
-#: midx.c:78
+#: midx.c:79
msgid "multi-pack-index OID fanout is of the wrong size"
msgstr "OID kipas-keluar indeks multipak salah ukuran"
-#: midx.c:111
+#: midx.c:112
#, c-format
msgid "multi-pack-index file %s is too small"
msgstr "berkas indeks multipak %s terlalu kecil"
-#: midx.c:127
+#: midx.c:128
#, c-format
msgid "multi-pack-index signature 0x%08x does not match signature 0x%08x"
msgstr ""
"tanda tangan indeks multipak 0x%08x tidak cocok dengan tanda tangan 0x%08x"
-#: midx.c:132
+#: midx.c:133
#, c-format
msgid "multi-pack-index version %d not recognized"
msgstr "versi indeks multipak %d tidak dikenal"
-#: midx.c:137
+#: midx.c:138
#, c-format
msgid "multi-pack-index hash version %u does not match version %u"
msgstr "versi hash indeks multipak %u tidak cocok dengan versi %u"
-#: midx.c:154
+#: midx.c:155
msgid "multi-pack-index missing required pack-name chunk"
msgstr "indeks multipak kehilangan bingkah pack-name yang diperlukan"
-#: midx.c:156
+#: midx.c:157
msgid "multi-pack-index missing required OID fanout chunk"
msgstr "indeks multipak kehilangan bingkah OID kipas keluar yang diperlukan"
-#: midx.c:158
+#: midx.c:159
msgid "multi-pack-index missing required OID lookup chunk"
msgstr "indeks multipak kehilangan bingkah pencarian OID yang diperlukan"
-#: midx.c:160
+#: midx.c:161
msgid "multi-pack-index missing required object offsets chunk"
msgstr "indeks multipak kehilangan bingkah offset objek yang diperlukan"
-#: midx.c:176
+#: midx.c:180
#, c-format
msgid "multi-pack-index pack names out of order: '%s' before '%s'"
msgstr "nama pak indeks multipak tidak berurutan: '%s' sebelum '%s'"
-#: midx.c:224
+#: midx.c:228
#, c-format
msgid "bad pack-int-id: %u (%u total packs)"
msgstr "pack-int-id jelek: %u (total pak %u)"
-#: midx.c:274
+#: midx.c:278
msgid "multi-pack-index stores a 64-bit offset, but off_t is too small"
msgstr "indeks multipak simpan offset 64-bit, tapi off_t terlalu kecil"
-#: midx.c:505
+#: midx.c:509
#, c-format
msgid "failed to add packfile '%s'"
msgstr "gagal menambah berkas pak '%s'"
-#: midx.c:511
+#: midx.c:515
#, c-format
msgid "failed to open pack-index '%s'"
msgstr "gagal membuka indeks pak '%s'"
-#: midx.c:579
+#: midx.c:583
#, c-format
msgid "failed to locate object %d in packfile"
msgstr "gagal melokasi objek %d di dalam berkas pak"
-#: midx.c:895
+#: midx.c:911
msgid "cannot store reverse index file"
msgstr "tidak dapat menyimpan berkas indeks balik"
-#: midx.c:993
+#: midx.c:1009
#, c-format
msgid "could not parse line: %s"
msgstr "tidak dapat menguraikan baris: %s"
-#: midx.c:995
+#: midx.c:1011
#, c-format
msgid "malformed line: %s"
msgstr "baris jelek '%s'."
-#: midx.c:1162
+#: midx.c:1181
msgid "ignoring existing multi-pack-index; checksum mismatch"
msgstr "abaikan indeks multipak yang sudah ada; checksum tidak cocok"
-#: midx.c:1187
+#: midx.c:1206
msgid "could not load pack"
msgstr "tidak dapat memuat pak"
-#: midx.c:1193
+#: midx.c:1212
#, c-format
msgid "could not open index for %s"
msgstr "tidak dapat membuka indeks untuk %s"
-#: midx.c:1204
+#: midx.c:1223
msgid "Adding packfiles to multi-pack-index"
msgstr "Menambahkan berkas pak ke indeks multipak"
-#: midx.c:1247
+#: midx.c:1266
#, c-format
msgid "unknown preferred pack: '%s'"
msgstr "pak yang disukai tidak dikenal: '%s'"
-#: midx.c:1292
+#: midx.c:1311
#, c-format
msgid "cannot select preferred pack %s with no objects"
msgstr "tidak dapat memilih pak yang disukai %s tanpa objek"
-#: midx.c:1324
+#: midx.c:1343
#, c-format
msgid "did not see pack-file %s to drop"
msgstr "tidak melihat berkas pak %s untuk dijeblokkan"
-#: midx.c:1370
+#: midx.c:1389
#, c-format
msgid "preferred pack '%s' is expired"
msgstr "pak yang disukai '%s' kadaluarsa"
-#: midx.c:1383
+#: midx.c:1402
msgid "no pack files to index."
msgstr "tidak ada berkas pak untuk diindeks."
-#: midx.c:1420
+#: midx.c:1409
+msgid "refusing to write multi-pack .bitmap without any objects"
+msgstr "menolak menulis .bitmap multipak tanpa objek apapun"
+
+#: midx.c:1451
msgid "could not write multi-pack bitmap"
msgstr "tidak dapat menulis bitmap multipak"
-#: midx.c:1430
+#: midx.c:1461
msgid "could not write multi-pack-index"
msgstr "gagal menulis indeks multipak"
-#: midx.c:1489 builtin/clean.c:37
+#: midx.c:1520 builtin/clean.c:37
#, c-format
msgid "failed to remove %s"
msgstr "gagal menghapus %s"
-#: midx.c:1522
+#: midx.c:1553
#, c-format
msgid "failed to clear multi-pack-index at %s"
msgstr "gagal membersihkan indeks multipak pada %s"
-#: midx.c:1585
+#: midx.c:1616
msgid "multi-pack-index file exists, but failed to parse"
msgstr "berkas indeks multipak ada, tetapi gagal diurai"
-#: midx.c:1593
+#: midx.c:1624
msgid "incorrect checksum"
msgstr "checksum salah"
-#: midx.c:1596
+#: midx.c:1627
msgid "Looking for referenced packfiles"
msgstr "Mencari berkas pak yang direferensikan"
-#: midx.c:1611
+#: midx.c:1642
#, c-format
msgid ""
"oid fanout out of order: fanout[%d] = %<PRIx32> > %<PRIx32> = fanout[%d]"
@@ -5310,55 +5534,55 @@ msgstr ""
"kipas-keluar oid tidak berurutan: fanout[%d] =%<PRIx32> > %<PRIx32> = "
"fanout[%d]"
-#: midx.c:1616
+#: midx.c:1647
msgid "the midx contains no oid"
msgstr "midx tidak berisi oid"
-#: midx.c:1625
+#: midx.c:1656
msgid "Verifying OID order in multi-pack-index"
msgstr "Memverifikasi urutan OID di dalam indeks multipak"
-#: midx.c:1634
+#: midx.c:1665
#, c-format
msgid "oid lookup out of order: oid[%d] = %s >= %s = oid[%d]"
msgstr "urutan pencarian oid tidak berurutan: oid[%d] = %s >= %s = oid[%d]"
-#: midx.c:1654
+#: midx.c:1685
msgid "Sorting objects by packfile"
msgstr "Mengurutkan objek oleh berkas pak"
-#: midx.c:1661
+#: midx.c:1692
msgid "Verifying object offsets"
msgstr "Memverifikasi offset objek"
-#: midx.c:1677
+#: midx.c:1708
#, c-format
msgid "failed to load pack entry for oid[%d] = %s"
msgstr "gagal memuat entri pak untuk oid[%d] = %s"
-#: midx.c:1683
+#: midx.c:1714
#, c-format
msgid "failed to load pack-index for packfile %s"
msgstr "gagal memuat indeks pak untuk berkas pak %s"
-#: midx.c:1692
+#: midx.c:1723
#, c-format
msgid "incorrect object offset for oid[%d] = %s: %<PRIx64> != %<PRIx64>"
msgstr "offset objek salah untuk oid[%d] = %s: %<PRIx64> != %<PRIx64>"
-#: midx.c:1719
+#: midx.c:1750
msgid "Counting referenced objects"
msgstr "Menghitung objek tereferensi"
-#: midx.c:1729
+#: midx.c:1760
msgid "Finding and deleting unreferenced packfiles"
msgstr "Mencari dan menghapus berkas pak tak tereferensi"
-#: midx.c:1921
+#: midx.c:1952
msgid "could not start pack-objects"
msgstr "tidak dapat memulai pack-objects"
-#: midx.c:1941
+#: midx.c:1972
msgid "could not finish pack-objects"
msgstr "tidak dapat menyelesaikan pack-objects"
@@ -5377,7 +5601,7 @@ msgstr ""
msgid "unable to join lazy_name thread: %s"
msgstr ""
-#: notes-merge.c:277
+#: notes-merge.c:276
#, c-format
msgid ""
"You have not concluded your previous notes merge (%s exists).\n"
@@ -5385,7 +5609,7 @@ msgid ""
"commit/abort the previous merge before you start a new notes merge."
msgstr ""
-#: notes-merge.c:284
+#: notes-merge.c:283
#, c-format
msgid "You have not concluded your notes merge (%s exists)."
msgstr ""
@@ -5413,271 +5637,340 @@ msgstr ""
msgid "Bad %s value: '%s'"
msgstr ""
-#: object-file.c:456
+#: object-file.c:457
#, c-format
msgid "object directory %s does not exist; check .git/objects/info/alternates"
msgstr ""
-#: object-file.c:514
+#: object-file.c:515
#, c-format
msgid "unable to normalize alternate object path: %s"
msgstr ""
-#: object-file.c:588
+#: object-file.c:589
#, c-format
msgid "%s: ignoring alternate object stores, nesting too deep"
msgstr ""
-#: object-file.c:595
+#: object-file.c:596
#, c-format
msgid "unable to normalize object directory: %s"
msgstr ""
-#: object-file.c:638
+#: object-file.c:639
msgid "unable to fdopen alternates lockfile"
msgstr ""
-#: object-file.c:656
+#: object-file.c:657
msgid "unable to read alternates file"
msgstr ""
-#: object-file.c:663
+#: object-file.c:664
msgid "unable to move new alternates file into place"
msgstr ""
-#: object-file.c:741
+#: object-file.c:742
#, c-format
msgid "path '%s' does not exist"
msgstr ""
-#: object-file.c:762
+#: object-file.c:763
#, c-format
msgid "reference repository '%s' as a linked checkout is not supported yet."
msgstr ""
-#: object-file.c:768
+#: object-file.c:769
#, c-format
msgid "reference repository '%s' is not a local repository."
msgstr ""
-#: object-file.c:774
+#: object-file.c:775
#, c-format
msgid "reference repository '%s' is shallow"
msgstr ""
-#: object-file.c:782
+#: object-file.c:783
#, c-format
msgid "reference repository '%s' is grafted"
msgstr ""
-#: object-file.c:813
+#: object-file.c:814
#, c-format
msgid "could not find object directory matching %s"
msgstr ""
-#: object-file.c:863
+#: object-file.c:864
#, c-format
msgid "invalid line while parsing alternate refs: %s"
msgstr ""
-#: object-file.c:1013
+#: object-file.c:1014
#, c-format
msgid "attempting to mmap %<PRIuMAX> over limit %<PRIuMAX>"
msgstr ""
-#: object-file.c:1048
+#: object-file.c:1049
#, c-format
msgid "mmap failed%s"
msgstr ""
-#: object-file.c:1214
+#: object-file.c:1230
#, c-format
msgid "object file %s is empty"
msgstr ""
-#: object-file.c:1333 object-file.c:2542
+#: object-file.c:1349 object-file.c:2588
#, c-format
msgid "corrupt loose object '%s'"
msgstr ""
-#: object-file.c:1335 object-file.c:2546
+#: object-file.c:1351 object-file.c:2592
#, c-format
msgid "garbage at end of loose object '%s'"
msgstr ""
-#: object-file.c:1457
+#: object-file.c:1473
#, c-format
msgid "unable to parse %s header"
msgstr ""
-#: object-file.c:1459
+#: object-file.c:1475
msgid "invalid object type"
msgstr ""
-#: object-file.c:1470
+#: object-file.c:1486
#, c-format
msgid "unable to unpack %s header"
msgstr ""
-#: object-file.c:1474
+#: object-file.c:1490
#, c-format
msgid "header for %s too long, exceeds %d bytes"
msgstr ""
-#: object-file.c:1704
+#: object-file.c:1720
#, c-format
msgid "failed to read object %s"
msgstr ""
-#: object-file.c:1708
+#: object-file.c:1724
#, c-format
msgid "replacement %s not found for %s"
msgstr ""
-#: object-file.c:1712
+#: object-file.c:1728
#, c-format
msgid "loose object %s (stored in %s) is corrupt"
msgstr ""
-#: object-file.c:1716
+#: object-file.c:1732
#, c-format
msgid "packed object %s (stored in %s) is corrupt"
msgstr ""
-#: object-file.c:1821
+#: object-file.c:1855
#, c-format
msgid "unable to write file %s"
msgstr ""
-#: object-file.c:1828
+#: object-file.c:1862
#, c-format
msgid "unable to set permission to '%s'"
msgstr ""
-#: object-file.c:1835
+#: object-file.c:1869
msgid "file write error"
msgstr ""
-#: object-file.c:1858
+#: object-file.c:1904
msgid "error when closing loose object file"
msgstr ""
-#: object-file.c:1925
+#: object-file.c:1971
#, c-format
msgid "insufficient permission for adding an object to repository database %s"
msgstr ""
-#: object-file.c:1927
+#: object-file.c:1973
msgid "unable to create temporary file"
msgstr ""
-#: object-file.c:1951
+#: object-file.c:1997
msgid "unable to write loose object file"
msgstr ""
-#: object-file.c:1957
+#: object-file.c:2003
#, c-format
msgid "unable to deflate new object %s (%d)"
msgstr ""
-#: object-file.c:1961
+#: object-file.c:2007
#, c-format
msgid "deflateEnd on object %s failed (%d)"
msgstr ""
-#: object-file.c:1965
+#: object-file.c:2011
#, c-format
msgid "confused by unstable object source data for %s"
msgstr ""
-#: object-file.c:1976 builtin/pack-objects.c:1243
+#: object-file.c:2022 builtin/pack-objects.c:1251
#, c-format
msgid "failed utime() on %s"
msgstr ""
-#: object-file.c:2054
+#: object-file.c:2100
#, c-format
msgid "cannot read object for %s"
msgstr ""
-#: object-file.c:2105
+#: object-file.c:2151
msgid "corrupt commit"
msgstr ""
-#: object-file.c:2113
+#: object-file.c:2159
msgid "corrupt tag"
msgstr ""
-#: object-file.c:2213
+#: object-file.c:2259
#, c-format
msgid "read error while indexing %s"
msgstr ""
-#: object-file.c:2216
+#: object-file.c:2262
#, c-format
msgid "short read while indexing %s"
msgstr ""
-#: object-file.c:2289 object-file.c:2299
+#: object-file.c:2335 object-file.c:2345
#, c-format
msgid "%s: failed to insert into database"
msgstr ""
-#: object-file.c:2305
+#: object-file.c:2351
#, c-format
msgid "%s: unsupported file type"
msgstr ""
-#: object-file.c:2329 builtin/fetch.c:1453
+#: object-file.c:2375 builtin/fetch.c:1494
#, c-format
msgid "%s is not a valid object"
msgstr ""
-#: object-file.c:2331
+#: object-file.c:2377
#, c-format
msgid "%s is not a valid '%s' object"
msgstr ""
-#: object-file.c:2358
+#: object-file.c:2404
#, c-format
msgid "unable to open %s"
msgstr "tidak dapat membuka %s"
-#: object-file.c:2553
+#: object-file.c:2599
#, c-format
msgid "hash mismatch for %s (expected %s)"
msgstr ""
-#: object-file.c:2576
+#: object-file.c:2622
#, c-format
msgid "unable to mmap %s"
msgstr ""
-#: object-file.c:2582
+#: object-file.c:2628
#, c-format
msgid "unable to unpack header of %s"
msgstr ""
-#: object-file.c:2587
+#: object-file.c:2633
#, c-format
msgid "unable to parse header of %s"
msgstr ""
-#: object-file.c:2598
+#: object-file.c:2644
#, c-format
msgid "unable to unpack contents of %s"
msgstr ""
-#: object-name.c:480
+#. TRANSLATORS: This is a line of ambiguous object
+#. output shown when we cannot look up or parse the
+#. object in question. E.g. "deadbeef [bad object]".
+#.
+#: object-name.c:382
+#, c-format
+msgid "%s [bad object]"
+msgstr ""
+
+#. TRANSLATORS: This is a line of ambiguous commit
+#. object output. E.g.:
+#. *
+#. "deadbeef commit 2021-01-01 - Some Commit Message"
+#.
+#: object-name.c:407
+#, c-format
+msgid "%s commit %s - %s"
+msgstr ""
+
+#. TRANSLATORS: This is a line of ambiguous
+#. tag object output. E.g.:
+#. *
+#. "deadbeef tag 2022-01-01 - Some Tag Message"
+#. *
+#. The second argument is the YYYY-MM-DD found
+#. in the tag.
+#. *
+#. The third argument is the "tag" string
+#. from object.c.
+#.
+#: object-name.c:428
+#, c-format
+msgid "%s tag %s - %s"
+msgstr ""
+
+#. TRANSLATORS: This is a line of ambiguous
+#. tag object output where we couldn't parse
+#. the tag itself. E.g.:
+#. *
+#. "deadbeef [bad tag, could not parse it]"
+#.
+#: object-name.c:439
+#, c-format
+msgid "%s [bad tag, could not parse it]"
+msgstr ""
+
+#. TRANSLATORS: This is a line of ambiguous <type>
+#. object output. E.g. "deadbeef tree".
+#.
+#: object-name.c:447
+#, c-format
+msgid "%s tree"
+msgstr ""
+
+#. TRANSLATORS: This is a line of ambiguous <type>
+#. object output. E.g. "deadbeef blob".
+#.
+#: object-name.c:453
+#, c-format
+msgid "%s blob"
+msgstr ""
+
+#: object-name.c:569
#, c-format
msgid "short object ID %s is ambiguous"
msgstr ""
-#: object-name.c:491
-msgid "The candidates are:"
+#. TRANSLATORS: The argument is the list of ambiguous
+#. objects composed in show_ambiguous_object(). See
+#. its "TRANSLATORS" comments for details.
+#.
+#: object-name.c:591
+#, c-format
+msgid ""
+"The candidates are:\n"
+"%s"
msgstr ""
-#: object-name.c:790
+#: object-name.c:888
msgid ""
"Git normally never creates a ref that ends with 40 hex characters\n"
"because it will be ignored when you just specify 40-hex. These refs\n"
@@ -5690,62 +5983,67 @@ msgid ""
"running \"git config advice.objectNameWarning false\""
msgstr ""
-#: object-name.c:910
+#: object-name.c:1008
#, c-format
msgid "log for '%.*s' only goes back to %s"
msgstr ""
-#: object-name.c:918
+#: object-name.c:1016
#, c-format
msgid "log for '%.*s' only has %d entries"
msgstr ""
-#: object-name.c:1696
+#: object-name.c:1794
#, c-format
msgid "path '%s' exists on disk, but not in '%.*s'"
msgstr ""
-#: object-name.c:1702
+#: object-name.c:1800
#, c-format
msgid ""
"path '%s' exists, but not '%s'\n"
"hint: Did you mean '%.*s:%s' aka '%.*s:./%s'?"
msgstr ""
-#: object-name.c:1711
+#: object-name.c:1809
#, c-format
msgid "path '%s' does not exist in '%.*s'"
msgstr ""
-#: object-name.c:1739
+#: object-name.c:1837
#, c-format
msgid ""
"path '%s' is in the index, but not at stage %d\n"
"hint: Did you mean ':%d:%s'?"
msgstr ""
-#: object-name.c:1755
+#: object-name.c:1853
#, c-format
msgid ""
"path '%s' is in the index, but not '%s'\n"
"hint: Did you mean ':%d:%s' aka ':%d:./%s'?"
msgstr ""
-#: object-name.c:1763
+#: object-name.c:1861
#, c-format
msgid "path '%s' exists on disk, but not in the index"
msgstr ""
-#: object-name.c:1765
+#: object-name.c:1863
#, c-format
msgid "path '%s' does not exist (neither on disk nor in the index)"
msgstr ""
-#: object-name.c:1778
+#: object-name.c:1876
msgid "relative path syntax can't be used outside working tree"
msgstr ""
-#: object-name.c:1916
+#: object-name.c:1901
+#, c-format
+msgid "<object>:<path> required, only <object> '%s' given"
+msgstr ""
+
+#: object-name.c:2014
#, c-format
msgid "invalid object name '%.*s'."
msgstr ""
@@ -5770,7 +6068,7 @@ msgstr ""
msgid "unable to parse object: %s"
msgstr ""
-#: object.c:283 object.c:295
+#: object.c:283 object.c:294
#, c-format
msgid "hash mismatch %s"
msgstr ""
@@ -5779,21 +6077,21 @@ msgstr ""
msgid "multi-pack bitmap is missing required reverse index"
msgstr ""
-#: pack-bitmap.c:429
+#: pack-bitmap.c:433
msgid "load_reverse_index: could not open pack"
msgstr ""
-#: pack-bitmap.c:1069 pack-bitmap.c:1075 builtin/pack-objects.c:2424
+#: pack-bitmap.c:1072 pack-bitmap.c:1078 builtin/pack-objects.c:2432
#, c-format
msgid "unable to get size of %s"
msgstr ""
-#: pack-bitmap.c:1935
+#: pack-bitmap.c:1937
#, c-format
msgid "could not find %s in pack %s at offset %<PRIuMAX>"
msgstr ""
-#: pack-bitmap.c:1971 builtin/rev-list.c:92
+#: pack-bitmap.c:1973 builtin/rev-list.c:91
#, c-format
msgid "unable to get disk usage of %s"
msgstr ""
@@ -5837,7 +6135,7 @@ msgstr ""
msgid "failed to make %s readable"
msgstr ""
-#: pack-write.c:520
+#: pack-write.c:521
#, c-format
msgid "could not write '%s' promisor file"
msgstr ""
@@ -6171,234 +6469,238 @@ msgstr ""
msgid "Removing duplicate objects"
msgstr ""
-#: range-diff.c:67
+#: range-diff.c:68
msgid "could not start `log`"
msgstr ""
-#: range-diff.c:69
+#: range-diff.c:70
msgid "could not read `log` output"
msgstr ""
-#: range-diff.c:97 sequencer.c:5602
+#: range-diff.c:98 sequencer.c:5575
#, c-format
msgid "could not parse commit '%s'"
msgstr ""
-#: range-diff.c:111
+#: range-diff.c:109
#, c-format
msgid ""
"could not parse first line of `log` output: did not start with 'commit ': "
"'%s'"
msgstr ""
-#: range-diff.c:137
+#: range-diff.c:132
#, c-format
msgid "could not parse git header '%.*s'"
msgstr ""
-#: range-diff.c:304
+#: range-diff.c:300
msgid "failed to generate diff"
msgstr ""
-#: range-diff.c:562 range-diff.c:564
+#: range-diff.c:558 range-diff.c:560
#, c-format
msgid "could not parse log for '%s'"
msgstr ""
-#: read-cache.c:723
+#: read-cache.c:737
#, c-format
msgid "will not add file alias '%s' ('%s' already exists in index)"
msgstr ""
-#: read-cache.c:739
+#: read-cache.c:753
msgid "cannot create an empty blob in the object database"
msgstr ""
-#: read-cache.c:761
+#: read-cache.c:775
#, c-format
msgid "%s: can only add regular files, symbolic links or git-directories"
msgstr ""
-#: read-cache.c:766 builtin/submodule--helper.c:3242
+#: read-cache.c:780 builtin/submodule--helper.c:3359
#, c-format
msgid "'%s' does not have a commit checked out"
msgstr ""
-#: read-cache.c:818
+#: read-cache.c:832
#, c-format
msgid "unable to index file '%s'"
msgstr ""
-#: read-cache.c:837
+#: read-cache.c:851
#, c-format
msgid "unable to add '%s' to index"
msgstr ""
-#: read-cache.c:848
+#: read-cache.c:862
#, c-format
msgid "unable to stat '%s'"
msgstr ""
-#: read-cache.c:1386
+#: read-cache.c:1404
#, c-format
msgid "'%s' appears as both a file and as a directory"
msgstr ""
-#: read-cache.c:1601
+#: read-cache.c:1619
msgid "Refresh index"
msgstr ""
-#: read-cache.c:1733
+#: read-cache.c:1751
#, c-format
msgid ""
"index.version set, but the value is invalid.\n"
"Using version %i"
msgstr ""
-#: read-cache.c:1743
+#: read-cache.c:1761
#, c-format
msgid ""
"GIT_INDEX_VERSION set, but the value is invalid.\n"
"Using version %i"
msgstr ""
-#: read-cache.c:1799
+#: read-cache.c:1817
#, c-format
msgid "bad signature 0x%08x"
msgstr ""
-#: read-cache.c:1802
+#: read-cache.c:1820
#, c-format
msgid "bad index version %d"
msgstr ""
-#: read-cache.c:1811
+#: read-cache.c:1829
msgid "bad index file sha1 signature"
msgstr ""
-#: read-cache.c:1845
+#: read-cache.c:1863
#, c-format
msgid "index uses %.4s extension, which we do not understand"
msgstr ""
-#: read-cache.c:1847
+#: read-cache.c:1865
#, c-format
msgid "ignoring %.4s extension"
msgstr ""
-#: read-cache.c:1884
+#: read-cache.c:1902
#, c-format
msgid "unknown index entry format 0x%08x"
msgstr ""
-#: read-cache.c:1900
+#: read-cache.c:1918
#, c-format
msgid "malformed name field in the index, near path '%s'"
msgstr ""
-#: read-cache.c:1957
+#: read-cache.c:1975
msgid "unordered stage entries in index"
msgstr ""
-#: read-cache.c:1960
+#: read-cache.c:1978
#, c-format
msgid "multiple stage entries for merged file '%s'"
msgstr ""
-#: read-cache.c:1963
+#: read-cache.c:1981
#, c-format
msgid "unordered stage entries for '%s'"
msgstr ""
-#: read-cache.c:2078 read-cache.c:2384 rerere.c:549 rerere.c:583 rerere.c:1095
-#: submodule.c:1662 builtin/add.c:600 builtin/check-ignore.c:183
-#: builtin/checkout.c:527 builtin/checkout.c:719 builtin/clean.c:1013
-#: builtin/commit.c:378 builtin/diff-tree.c:122 builtin/grep.c:519
-#: builtin/mv.c:148 builtin/reset.c:499 builtin/rm.c:293
-#: builtin/submodule--helper.c:327 builtin/submodule--helper.c:3202
+#: read-cache.c:2096 read-cache.c:2402 rerere.c:549 rerere.c:583 rerere.c:1096
+#: submodule.c:1831 builtin/add.c:586 builtin/check-ignore.c:183
+#: builtin/checkout.c:532 builtin/checkout.c:724 builtin/clean.c:1016
+#: builtin/commit.c:379 builtin/diff-tree.c:122 builtin/grep.c:521
+#: builtin/mv.c:148 builtin/reset.c:506 builtin/rm.c:293
+#: builtin/submodule--helper.c:335 builtin/submodule--helper.c:3319
msgid "index file corrupt"
msgstr ""
-#: read-cache.c:2222
+#: read-cache.c:2240
#, c-format
msgid "unable to create load_cache_entries thread: %s"
msgstr ""
-#: read-cache.c:2235
+#: read-cache.c:2253
#, c-format
msgid "unable to join load_cache_entries thread: %s"
msgstr ""
-#: read-cache.c:2268
+#: read-cache.c:2286
#, c-format
msgid "%s: index file open failed"
msgstr ""
-#: read-cache.c:2272
+#: read-cache.c:2290
#, c-format
msgid "%s: cannot stat the open index"
msgstr ""
-#: read-cache.c:2276
+#: read-cache.c:2294
#, c-format
msgid "%s: index file smaller than expected"
msgstr ""
-#: read-cache.c:2280
+#: read-cache.c:2298
#, c-format
msgid "%s: unable to map index file%s"
msgstr ""
-#: read-cache.c:2323
+#: read-cache.c:2341
#, c-format
msgid "unable to create load_index_extensions thread: %s"
msgstr ""
-#: read-cache.c:2350
+#: read-cache.c:2368
#, c-format
msgid "unable to join load_index_extensions thread: %s"
msgstr ""
-#: read-cache.c:2396
+#: read-cache.c:2414
#, c-format
msgid "could not freshen shared index '%s'"
msgstr ""
-#: read-cache.c:2455
+#: read-cache.c:2473
#, c-format
msgid "broken index, expect %s in %s, got %s"
msgstr ""
-#: read-cache.c:3086 strbuf.c:1191 wrapper.c:641 builtin/merge.c:1150
+#: read-cache.c:3032
+msgid "cannot write split index for a sparse index"
+msgstr ""
+
+#: read-cache.c:3114 strbuf.c:1192 wrapper.c:717 builtin/merge.c:1156
#, c-format
msgid "could not close '%s'"
msgstr ""
-#: read-cache.c:3129
+#: read-cache.c:3157
msgid "failed to convert to a sparse-index"
msgstr ""
-#: read-cache.c:3200
+#: read-cache.c:3228
#, c-format
msgid "could not stat '%s'"
msgstr ""
-#: read-cache.c:3213
+#: read-cache.c:3241
#, c-format
msgid "unable to open git dir: %s"
msgstr ""
-#: read-cache.c:3225
+#: read-cache.c:3253
#, c-format
msgid "unable to unlink: %s"
msgstr ""
-#: read-cache.c:3254
+#: read-cache.c:3282
#, c-format
msgid "cannot fix permission bits on '%s'"
msgstr ""
-#: read-cache.c:3411
+#: read-cache.c:3439
#, c-format
msgid "%s: cannot drop to stage #0"
msgstr ""
@@ -6518,9 +6820,9 @@ msgstr ""
"dibatalkan.\n"
"\n"
-#: rebase-interactive.c:113 rerere.c:469 rerere.c:676 sequencer.c:3883
-#: sequencer.c:3909 sequencer.c:5708 builtin/fsck.c:328 builtin/gc.c:1791
-#: builtin/rebase.c:190
+#: rebase-interactive.c:113 rerere.c:469 rerere.c:677 sequencer.c:3879
+#: sequencer.c:3905 sequencer.c:5681 builtin/fsck.c:328 builtin/gc.c:1791
+#: builtin/rebase.c:191
#, c-format
msgid "could not write '%s'"
msgstr "tidak dapat menulis '%s'"
@@ -6561,7 +6863,7 @@ msgstr ""
msgid "%s: 'preserve' superseded by 'merges'"
msgstr "%s: 'preserve' digantikan oleh 'merges'"
-#: ref-filter.c:42 wt-status.c:2048
+#: ref-filter.c:42 wt-status.c:2057
msgid "gone"
msgstr ""
@@ -6727,81 +7029,91 @@ msgstr ""
msgid "--format=%.*s cannot be used with --python, --shell, --tcl"
msgstr ""
-#: ref-filter.c:1706
+#: ref-filter.c:1707
#, c-format
msgid "(no branch, rebasing %s)"
msgstr ""
-#: ref-filter.c:1709
+#: ref-filter.c:1710
#, c-format
msgid "(no branch, rebasing detached HEAD %s)"
msgstr ""
-#: ref-filter.c:1712
+#: ref-filter.c:1713
#, c-format
msgid "(no branch, bisect started on %s)"
msgstr ""
-#: ref-filter.c:1716
+#: ref-filter.c:1717
#, c-format
msgid "(HEAD detached at %s)"
msgstr ""
-#: ref-filter.c:1719
+#: ref-filter.c:1720
#, c-format
msgid "(HEAD detached from %s)"
msgstr ""
-#: ref-filter.c:1722
+#: ref-filter.c:1723
msgid "(no branch)"
msgstr ""
-#: ref-filter.c:1754 ref-filter.c:1972
+#: ref-filter.c:1755 ref-filter.c:1973
#, c-format
msgid "missing object %s for %s"
msgstr ""
-#: ref-filter.c:1764
+#: ref-filter.c:1765
#, c-format
msgid "parse_object_buffer failed on %s for %s"
msgstr ""
-#: ref-filter.c:2155
+#: ref-filter.c:2156
#, c-format
msgid "malformed object at '%s'"
msgstr ""
-#: ref-filter.c:2245
+#: ref-filter.c:2246
#, c-format
msgid "ignoring ref with broken name %s"
msgstr ""
-#: ref-filter.c:2250 refs.c:676
+#: ref-filter.c:2251 refs.c:672
#, c-format
msgid "ignoring broken ref %s"
msgstr ""
-#: ref-filter.c:2629
+#: ref-filter.c:2630
#, c-format
msgid "format: %%(end) atom missing"
msgstr ""
-#: ref-filter.c:2740
+#: ref-filter.c:2741
#, c-format
msgid "malformed object name %s"
msgstr ""
-#: ref-filter.c:2745
+#: ref-filter.c:2746
#, c-format
msgid "option `%s' must point to a commit"
msgstr ""
-#: refs.c:261
+#: reflog.c:407
+#, c-format
+msgid "not a reflog: %s"
+msgstr "bukan sebuah log referensi: %s"
+
+#: reflog.c:410
+#, c-format
+msgid "no reflog for '%s'"
+msgstr "tidak ada log referensi untuk '%s'"
+
+#: refs.c:262
#, c-format
msgid "%s does not point to a valid object!"
-msgstr ""
+msgstr "%s tidak menunjuk ke sebuah objek valid!"
-#: refs.c:563
+#: refs.c:561
#, c-format
msgid ""
"Using '%s' as the name for the initial branch. This default branch name\n"
@@ -6815,90 +7127,102 @@ msgid ""
"\n"
"\tgit branch -m <name>\n"
msgstr ""
+"Menggunakan '%s' sebagai nama cabang awal. Nama cabang asali ini dapat\n"
+"berubah. Untuk menyetel nama cabang awal untuk digunakan pada semua\n"
+"repositori baru Anda, dimana akan mematikan peringatan ini, panggil:\n"
+"\n"
+"\tgit config --global init.defaultBranch <nama>\n"
+"\n"
+"Nama-nama yang umumnya dipilih selain 'master' adalah 'main', 'trunk' dan\n"
+"'development'. Cabang yang baru saja dibuat bisa dinamai ulang lewat "
+"perintah\n"
+"ini:\n"
+"\n"
+"\tgit branch -m <nama>\n"
-#: refs.c:585
+#: refs.c:583
#, c-format
msgid "could not retrieve `%s`"
-msgstr ""
+msgstr "tidak dapat mengambil `%s`"
-#: refs.c:595
+#: refs.c:593
#, c-format
msgid "invalid branch name: %s = %s"
-msgstr ""
+msgstr "nama cabang tidak valid: %s = %s"
-#: refs.c:674
+#: refs.c:670
#, c-format
msgid "ignoring dangling symref %s"
-msgstr ""
+msgstr "abaikan referensi simbolik teruntai %s"
-#: refs.c:925
+#: refs.c:919
#, c-format
msgid "log for ref %s has gap after %s"
-msgstr ""
+msgstr "log untuk referensi %s ada celah setelah %s"
-#: refs.c:932
+#: refs.c:926
#, c-format
msgid "log for ref %s unexpectedly ended on %s"
-msgstr ""
+msgstr "log untuk referensi %s sayangnya berakhir pada %s"
-#: refs.c:997
+#: refs.c:991
#, c-format
msgid "log for %s is empty"
-msgstr ""
+msgstr "log untuk %s kosong"
-#: refs.c:1090
+#: refs.c:1086
#, c-format
msgid "refusing to update ref with bad name '%s'"
-msgstr ""
+msgstr "menolak memperbarui referensi dengan nama jelek '%s'"
-#: refs.c:1168
+#: refs.c:1164
#, c-format
msgid "update_ref failed for ref '%s': %s"
-msgstr ""
+msgstr "update_ref gagal untuk referensi '%s': %s"
-#: refs.c:2067
+#: refs.c:2059
#, c-format
msgid "multiple updates for ref '%s' not allowed"
-msgstr ""
+msgstr "pembaruan berlipat untuk referensi '%s' tidak diperbolehkan"
-#: refs.c:2150
+#: refs.c:2145
msgid "ref updates forbidden inside quarantine environment"
-msgstr ""
+msgstr "pembaruan referensi tidak diperbolehkan di dalam lingkungan karantina"
-#: refs.c:2161
+#: refs.c:2156
msgid "ref updates aborted by hook"
-msgstr ""
+msgstr "pembaruan referensi dihentikan oleh kait"
-#: refs.c:2269 refs.c:2299
+#: refs.c:2264 refs.c:2294
#, c-format
msgid "'%s' exists; cannot create '%s'"
-msgstr ""
+msgstr "'%s' ada; tidak dapat membuat '%s'"
-#: refs.c:2275 refs.c:2310
+#: refs.c:2270 refs.c:2305
#, c-format
msgid "cannot process '%s' and '%s' at the same time"
-msgstr ""
+msgstr "tidak dapat memproses '%s' dan '%s' pada waktu yang bersamaan"
-#: refs/files-backend.c:1267
+#: refs/files-backend.c:1295
#, c-format
msgid "could not remove reference %s"
-msgstr ""
+msgstr "tidak dapat menghapus referensi %s"
-#: refs/files-backend.c:1281 refs/packed-backend.c:1549
-#: refs/packed-backend.c:1559
+#: refs/files-backend.c:1310 refs/packed-backend.c:1565
+#: refs/packed-backend.c:1575
#, c-format
msgid "could not delete reference %s: %s"
-msgstr ""
+msgstr "tidak dapat menghapus referensi %s: %s"
-#: refs/files-backend.c:1284 refs/packed-backend.c:1562
+#: refs/files-backend.c:1313 refs/packed-backend.c:1578
#, c-format
msgid "could not delete references: %s"
-msgstr ""
+msgstr "tidak dapat menghapus referensi: %s"
#: refspec.c:170
#, c-format
msgid "invalid refspec '%s'"
-msgstr ""
+msgstr "spek referensi tidak valid '%s'"
#: remote.c:402
#, c-format
@@ -6913,37 +7237,37 @@ msgstr "lebih dari satu paket terima diberikan, gunakan yang pertama"
msgid "more than one uploadpack given, using the first"
msgstr "lebih dari satu paket unggah diberikan, gunakan yang pertama"
-#: remote.c:699
+#: remote.c:698
#, c-format
msgid "Cannot fetch both %s and %s to %s"
msgstr "tidak dapat mengambil baik %s dan %s ke %s"
-#: remote.c:703
+#: remote.c:702
#, c-format
msgid "%s usually tracks %s, not %s"
msgstr "%s biasanya melacak %s, bukan %s"
-#: remote.c:707
+#: remote.c:706
#, c-format
msgid "%s tracks both %s and %s"
msgstr "%s melacak baik %s dan %s"
-#: remote.c:775
+#: remote.c:774
#, c-format
msgid "key '%s' of pattern had no '*'"
msgstr "kunci '%s' dari pola tidak ada '*'"
-#: remote.c:785
+#: remote.c:784
#, c-format
msgid "value '%s' of pattern has no '*'"
msgstr "nilai '%s' dari pola tidak ada '*'"
-#: remote.c:1192
+#: remote.c:1191
#, c-format
msgid "src refspec %s does not match any"
msgstr "spek referensi sumber %s tidak cocok dengan apapun"
-#: remote.c:1197
+#: remote.c:1196
#, c-format
msgid "src refspec %s matches more than one"
msgstr "spek referensi sumber %s cocok dengan lebih dari satu"
@@ -6952,7 +7276,7 @@ msgstr "spek referensi sumber %s cocok dengan lebih dari satu"
#. <remote> <src>:<dst>" push, and "being pushed ('%s')" is
#. the <src>.
#.
-#: remote.c:1212
+#: remote.c:1211
#, c-format
msgid ""
"The destination you provided is not a full refname (i.e.,\n"
@@ -6976,7 +7300,7 @@ msgstr ""
"Kedua-duanya tidak bekerja, jadi kami menyerah. Anda harus kualifikasi\n"
"penuh referensi."
-#: remote.c:1232
+#: remote.c:1231
#, c-format
msgid ""
"The <src> part of the refspec is a commit object.\n"
@@ -6987,7 +7311,7 @@ msgstr ""
"Apakah maksud Anda buat cabang baru dengan mendorong ke\n"
"'%s:refs/heads/%s'?"
-#: remote.c:1237
+#: remote.c:1236
#, c-format
msgid ""
"The <src> part of the refspec is a tag object.\n"
@@ -6998,7 +7322,7 @@ msgstr ""
"Apakah maksud Anda buat tag baru dengan mendorong ke\n"
"'%s:refs/tags/%s'?"
-#: remote.c:1242
+#: remote.c:1241
#, c-format
msgid ""
"The <src> part of the refspec is a tree object.\n"
@@ -7009,7 +7333,7 @@ msgstr ""
"Apakah maksud Anda tag pohon dengan mendorong ke\n"
"'%s:refs/tags/%s'?"
-#: remote.c:1247
+#: remote.c:1246
#, c-format
msgid ""
"The <src> part of the refspec is a blob object.\n"
@@ -7020,114 +7344,114 @@ msgstr ""
"Apakah maksud Anda tag blob baru dengan mendorong ke\n"
"'%s:refs/tags/%s'?"
-#: remote.c:1283
+#: remote.c:1282
#, c-format
msgid "%s cannot be resolved to branch"
msgstr "%s tidak dapat diselesaikan ke cabang"
-#: remote.c:1294
+#: remote.c:1293
#, c-format
msgid "unable to delete '%s': remote ref does not exist"
msgstr "tidak dapat menghapus '%s': referensi remote tidak ada"
-#: remote.c:1306
+#: remote.c:1305
#, c-format
msgid "dst refspec %s matches more than one"
msgstr "spek referensi tujuan %s cocok dengan lebih dari satu"
-#: remote.c:1313
+#: remote.c:1312
#, c-format
msgid "dst ref %s receives from more than one src"
msgstr "referensi tujuan %s menerima dari lebih dari satu sumber"
-#: remote.c:1834 remote.c:1941
+#: remote.c:1833 remote.c:1940
msgid "HEAD does not point to a branch"
msgstr "HEAD tidak menunjuk ke cabang"
-#: remote.c:1843
+#: remote.c:1842
#, c-format
msgid "no such branch: '%s'"
msgstr "tidak ada cabang seperti: '%s'"
-#: remote.c:1846
+#: remote.c:1845
#, c-format
msgid "no upstream configured for branch '%s'"
msgstr "tidak ada hulu yang terkonfigurasi untuk cabang '%s'"
-#: remote.c:1852
+#: remote.c:1851
#, c-format
msgid "upstream branch '%s' not stored as a remote-tracking branch"
msgstr "cabang hulu '%s' tidak disimpan sebagai cabang pelacak remote"
-#: remote.c:1867
+#: remote.c:1866
#, c-format
msgid "push destination '%s' on remote '%s' has no local tracking branch"
msgstr "tujuan dorong '%s' pada remote '%s' tidak ada cabang pelacak lokal"
-#: remote.c:1882
+#: remote.c:1881
#, c-format
msgid "branch '%s' has no remote for pushing"
msgstr "cabang '%s' tidak ada remote untuk didorong"
-#: remote.c:1892
+#: remote.c:1891
#, c-format
msgid "push refspecs for '%s' do not include '%s'"
msgstr "spek referensi dorong untuk '%s' tidak termasuk '%s'"
-#: remote.c:1905
+#: remote.c:1904
msgid "push has no destination (push.default is 'nothing')"
msgstr "dorong tidak ada tujuan (push.default yaitu 'nothing')"
-#: remote.c:1927
+#: remote.c:1926
msgid "cannot resolve 'simple' push to a single destination"
msgstr "tidak dapat menyelesaikan dorongan 'sederhana' ke satu tujuan"
-#: remote.c:2060
+#: remote.c:2059
#, c-format
msgid "couldn't find remote ref %s"
msgstr "tidak dapat menemukan referensi remote %s"
-#: remote.c:2073
+#: remote.c:2072
#, c-format
msgid "* Ignoring funny ref '%s' locally"
msgstr "* Abaikan referensi lucu '%s' secara lokal"
-#: remote.c:2236
+#: remote.c:2235
#, c-format
msgid "Your branch is based on '%s', but the upstream is gone.\n"
msgstr "Cabang Anda didasarkan pada '%s', tapi hulu sudah tiada.\n"
-#: remote.c:2240
+#: remote.c:2239
msgid " (use \"git branch --unset-upstream\" to fixup)\n"
msgstr " (gunakan \"git branch --unset-upstream\" untuk perbaiki)\n"
-#: remote.c:2243
+#: remote.c:2242
#, c-format
msgid "Your branch is up to date with '%s'.\n"
msgstr "Cabang Anda mutakhir dengan '%s'.\n"
-#: remote.c:2247
+#: remote.c:2246
#, c-format
msgid "Your branch and '%s' refer to different commits.\n"
msgstr "Cabang Anda dan '%s' merujuk pada komit yang berbeda.\n"
-#: remote.c:2250
+#: remote.c:2249
#, c-format
msgid " (use \"%s\" for details)\n"
msgstr " (gunakan \"%s\" untuk selengkapnya)\n"
-#: remote.c:2254
+#: remote.c:2253
#, c-format
msgid "Your branch is ahead of '%s' by %d commit.\n"
msgid_plural "Your branch is ahead of '%s' by %d commits.\n"
msgstr[0] ""
msgstr[1] ""
-#: remote.c:2260
+#: remote.c:2259
msgid " (use \"git push\" to publish your local commits)\n"
msgstr " (gunakan \"git push\" untuk terbitkan komit lokal Anda)\n"
-#: remote.c:2263
+#: remote.c:2262
#, c-format
msgid "Your branch is behind '%s' by %d commit, and can be fast-forwarded.\n"
msgid_plural ""
@@ -7135,11 +7459,11 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: remote.c:2271
+#: remote.c:2270
msgid " (use \"git pull\" to update your local branch)\n"
msgstr " (gunakan \"git pull\" untuk perbarui cabang lokal Anda)\n"
-#: remote.c:2274
+#: remote.c:2273
#, c-format
msgid ""
"Your branch and '%s' have diverged,\n"
@@ -7150,11 +7474,11 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: remote.c:2284
+#: remote.c:2283
msgid " (use \"git pull\" to merge the remote branch into yours)\n"
msgstr " (gunakan \"git pull\" untuk gabungkan cabang remote ke milik Anda)\n"
-#: remote.c:2476
+#: remote.c:2475
#, c-format
msgid "cannot parse expected object name '%s'"
msgstr "tidak dapat mengurai nama object yang diharapkan '%s'"
@@ -7192,106 +7516,110 @@ msgstr "ada kesalahan saat menulis '%s' (%s)"
msgid "failed to flush '%s'"
msgstr "gagal membilas '%s'"
-#: rerere.c:487 rerere.c:1023
+#: rerere.c:487 rerere.c:1024
#, c-format
msgid "could not parse conflict hunks in '%s'"
msgstr "tidak dapat mengurai bingkah konflik di '%s'"
-#: rerere.c:668
+#: rerere.c:669
#, c-format
msgid "failed utime() on '%s'"
msgstr "utime() gagal pada '%s'"
-#: rerere.c:678
+#: rerere.c:679
#, c-format
msgid "writing '%s' failed"
msgstr "gagal menulis '%s'"
-#: rerere.c:698
+#: rerere.c:699
#, c-format
msgid "Staged '%s' using previous resolution."
msgstr "'%s' digelarkan menggunakan resolusi sebelumnya."
-#: rerere.c:737
+#: rerere.c:738
#, c-format
msgid "Recorded resolution for '%s'."
msgstr "Resolusi direkam untuk '%s'."
-#: rerere.c:772
+#: rerere.c:773
#, c-format
msgid "Resolved '%s' using previous resolution."
msgstr "'%s' diselesaikan menggunakan resolusi sebelumnya."
-#: rerere.c:787
+#: rerere.c:788
#, c-format
msgid "cannot unlink stray '%s'"
msgstr "tidak dapat batal taut simpangan '%s'"
-#: rerere.c:791
+#: rerere.c:792
#, c-format
msgid "Recorded preimage for '%s'"
msgstr "Pracitra direkam untuk '%s'"
-#: rerere.c:865 submodule.c:2121 builtin/log.c:2017
-#: builtin/submodule--helper.c:1777 builtin/submodule--helper.c:1820
+#: rerere.c:866 submodule.c:2290 builtin/log.c:2042
+#: builtin/submodule--helper.c:1786 builtin/submodule--helper.c:1833
#, c-format
msgid "could not create directory '%s'"
msgstr "tidak dapat membuat direktori '%s'"
-#: rerere.c:1041
+#: rerere.c:1042
#, c-format
msgid "failed to update conflicted state in '%s'"
msgstr "gagal memperbarui keadaan konflik di '%s'"
-#: rerere.c:1052 rerere.c:1059
+#: rerere.c:1053 rerere.c:1060
#, c-format
msgid "no remembered resolution for '%s'"
msgstr "tidak ada resolusi yang diingat untuk '%s'"
-#: rerere.c:1061
+#: rerere.c:1062
#, c-format
msgid "cannot unlink '%s'"
msgstr "tidak dapat batal taut '%s'"
-#: rerere.c:1071
+#: rerere.c:1072
#, c-format
msgid "Updated preimage for '%s'"
msgstr "Pracitra diperbarui untuk '%s'"
-#: rerere.c:1080
+#: rerere.c:1081
#, c-format
msgid "Forgot resolution for '%s'\n"
msgstr "Resolusi dilupakan untuk '%s'\n"
-#: rerere.c:1191
+#: rerere.c:1192
msgid "unable to open rr-cache directory"
msgstr "tidak dapat membuka direktori rr-cache"
-#: reset.c:42
+#: reset.c:112
msgid "could not determine HEAD revision"
msgstr "tidak dapat menentukan revisi HEAD"
-#: reset.c:70 reset.c:76 sequencer.c:3700
+#: reset.c:141 reset.c:147 sequencer.c:3696
#, c-format
msgid "failed to find tree of %s"
msgstr "gagal menemukan pohon %s"
-#: revision.c:2347
+#: revision.c:2358
msgid "--unpacked=<packfile> no longer supported"
-msgstr ""
+msgstr "--unpacked=<berkas pak> tidak didukung lagi"
-#: revision.c:2686
+#: revision.c:2712
msgid "your current branch appears to be broken"
-msgstr ""
+msgstr "sepertinya cabang Anda saat ini rusak"
-#: revision.c:2689
+#: revision.c:2715
#, c-format
msgid "your current branch '%s' does not have any commits yet"
-msgstr ""
+msgstr "cabang Anda saat ini '%s' belum memiliki komit apapun"
+
+#: revision.c:2901
+msgid "object filtering requires --objects"
+msgstr "penyaringan objek memerlukan --objects"
-#: revision.c:2891
+#: revision.c:2918
msgid "-L does not yet support diff formats besides -p and -s"
-msgstr ""
+msgstr "-L belum mendukung format diff selain -p dan -s"
#: run-command.c:1262
#, c-format
@@ -7358,7 +7686,7 @@ msgstr "mode pembersihan pesan komit tidak valid '%s'"
msgid "could not delete '%s'"
msgstr "tidak dapat menghapus '%s'"
-#: sequencer.c:345 sequencer.c:4751 builtin/rebase.c:563 builtin/rebase.c:1297
+#: sequencer.c:345 sequencer.c:4724 builtin/rebase.c:564 builtin/rebase.c:1326
#: builtin/rm.c:409
#, c-format
msgid "could not remove '%s'"
@@ -7421,13 +7749,13 @@ msgstr ""
"Untuk membatalkan dan kembali ke keadaan sebelum \"git revert\",\n"
"jalankan \"git revert --abort\"."
-#: sequencer.c:448 sequencer.c:3292
+#: sequencer.c:448 sequencer.c:3288
#, c-format
msgid "could not lock '%s'"
msgstr "tidak dapat mengunci '%s'"
-#: sequencer.c:450 sequencer.c:3091 sequencer.c:3296 sequencer.c:3310
-#: sequencer.c:3561 sequencer.c:5618 strbuf.c:1188 wrapper.c:639
+#: sequencer.c:450 sequencer.c:3087 sequencer.c:3292 sequencer.c:3306
+#: sequencer.c:3557 sequencer.c:5591 strbuf.c:1189 wrapper.c:715
#, c-format
msgid "could not write to '%s'"
msgstr "tidak dapat menulis ke '%s'"
@@ -7437,14 +7765,14 @@ msgstr "tidak dapat menulis ke '%s'"
msgid "could not write eol to '%s'"
msgstr "tidak dapat menulis akhir baris ke '%s'"
-#: sequencer.c:460 sequencer.c:3096 sequencer.c:3298 sequencer.c:3312
-#: sequencer.c:3569
+#: sequencer.c:460 sequencer.c:3092 sequencer.c:3294 sequencer.c:3308
+#: sequencer.c:3565
#, c-format
msgid "failed to finalize '%s'"
msgstr "gagal mengakhiri '%s'"
-#: sequencer.c:473 sequencer.c:1934 sequencer.c:3116 sequencer.c:3551
-#: sequencer.c:3679 builtin/am.c:289 builtin/commit.c:834 builtin/merge.c:1148
+#: sequencer.c:473 sequencer.c:1930 sequencer.c:3112 sequencer.c:3547
+#: sequencer.c:3675 builtin/am.c:290 builtin/commit.c:837 builtin/merge.c:1154
#, c-format
msgid "could not read '%s'"
msgstr "tidak dapat membaca '%s'"
@@ -7463,7 +7791,7 @@ msgstr "komit perubahan Anda atau stase untuk melanjutkan."
msgid "%s: fast-forward"
msgstr "%s: maju-cepat"
-#: sequencer.c:574 builtin/tag.c:614
+#: sequencer.c:574 builtin/tag.c:615
#, c-format
msgid "Invalid cleanup mode %s"
msgstr "Mode pembersihan tidak valid %s"
@@ -7494,8 +7822,8 @@ msgstr "tidak ada kunci yang ada di pada '%.*s'"
msgid "unable to dequote value of '%s'"
msgstr "tidak dapat membatal-kutip nilai dari '%s'"
-#: sequencer.c:841 wrapper.c:209 wrapper.c:379 builtin/am.c:756
-#: builtin/am.c:848 builtin/rebase.c:694
+#: sequencer.c:841 wrapper.c:219 wrapper.c:389 builtin/am.c:757
+#: builtin/am.c:849 builtin/rebase.c:699
#, c-format
msgid "could not open '%s' for reading"
msgstr "tidak dapat membuka '%s' untuk dibaca"
@@ -7546,7 +7874,8 @@ msgid ""
" git rebase --continue\n"
msgstr ""
"Anda punya perubahan tergelar di dalam pohon kerja Anda.\n"
-"Apabila perubahan tersebut dimaksudkan untuk dilumat ke komit sebelumnya, jalankan:\n"
+"Apabila perubahan tersebut dimaksudkan untuk dilumat ke komit sebelumnya, "
+"jalankan:\n"
"\n"
" git commit --amend %s\n"
"\n"
@@ -7612,349 +7941,346 @@ msgstr ""
"\n"
" git commit --amend --reset-author\n"
-#: sequencer.c:1288
+#: sequencer.c:1287
msgid "couldn't look up newly created commit"
msgstr "tidak dapat mencari komit yang baru saja dibuat"
-#: sequencer.c:1290
+#: sequencer.c:1289
msgid "could not parse newly created commit"
msgstr "tidak dapat menguraikan komit yang baru saja dibuat"
-#: sequencer.c:1339
+#: sequencer.c:1336
msgid "unable to resolve HEAD after creating commit"
msgstr "tidak dapat menguraikan HEAD setelah membuat komit"
-#: sequencer.c:1342
+#: sequencer.c:1338
msgid "detached HEAD"
msgstr "HEAD terpisah"
-#: sequencer.c:1346
+#: sequencer.c:1342
msgid " (root-commit)"
msgstr " (komit-akar)"
-#: sequencer.c:1367
+#: sequencer.c:1363
msgid "could not parse HEAD"
msgstr "tidak dapat menguraikan HEAD"
-#: sequencer.c:1369
+#: sequencer.c:1365
#, c-format
msgid "HEAD %s is not a commit!"
msgstr "HEAD %s bukan sebuah komit!"
-#: sequencer.c:1373 sequencer.c:1451 builtin/commit.c:1708
+#: sequencer.c:1369 sequencer.c:1447 builtin/commit.c:1707
msgid "could not parse HEAD commit"
msgstr "tidak dapat menguraikan komit HEAD"
-#: sequencer.c:1429 sequencer.c:2314
+#: sequencer.c:1425 sequencer.c:2310
msgid "unable to parse commit author"
msgstr "tidak dapat menguraikan pengarang komit"
-#: sequencer.c:1440 builtin/am.c:1643 builtin/merge.c:710
+#: sequencer.c:1436 builtin/am.c:1644 builtin/merge.c:710
msgid "git write-tree failed to write a tree"
msgstr "git write-tree gagal menulis sebuah pohon"
-#: sequencer.c:1473 sequencer.c:1593
+#: sequencer.c:1469 sequencer.c:1589
#, c-format
msgid "unable to read commit message from '%s'"
msgstr "tidak dapat membaca pesan komit dari '%s'"
-#: sequencer.c:1504 sequencer.c:1536
+#: sequencer.c:1500 sequencer.c:1532
#, c-format
msgid "invalid author identity '%s'"
msgstr "identitas pengarang tidak valid '%s'"
-#: sequencer.c:1510
+#: sequencer.c:1506
msgid "corrupt author: missing date information"
msgstr "pengarang rusak: informasi tanggal hilang"
-#: sequencer.c:1549 builtin/am.c:1670 builtin/commit.c:1822 builtin/merge.c:915
-#: builtin/merge.c:940 t/helper/test-fast-rebase.c:78
+#: sequencer.c:1545 builtin/am.c:1671 builtin/commit.c:1821 builtin/merge.c:921
+#: builtin/merge.c:946 t/helper/test-fast-rebase.c:78
msgid "failed to write commit object"
msgstr "gagal menulis objek komit"
-#: sequencer.c:1576 sequencer.c:4523 t/helper/test-fast-rebase.c:199
+#: sequencer.c:1572 sequencer.c:4496 t/helper/test-fast-rebase.c:199
#: t/helper/test-fast-rebase.c:217
#, c-format
msgid "could not update %s"
msgstr "tidak dapat memperbarui %s"
-#: sequencer.c:1625
+#: sequencer.c:1621
#, c-format
msgid "could not parse commit %s"
msgstr "tidak dapat menguraikan komit %s"
-#: sequencer.c:1630
+#: sequencer.c:1626
#, c-format
msgid "could not parse parent commit %s"
msgstr "tidak dapat menguraikan komit induk %s"
-#: sequencer.c:1713 sequencer.c:1994
+#: sequencer.c:1709 sequencer.c:1990
#, c-format
msgid "unknown command: %d"
msgstr "perintah tidak dikenal: %d"
-#: sequencer.c:1755
+#: sequencer.c:1751
msgid "This is the 1st commit message:"
msgstr "Ini komit pertama:"
-#: sequencer.c:1756
+#: sequencer.c:1752
#, c-format
msgid "This is the commit message #%d:"
msgstr "Ini komit ke-%d:"
-#: sequencer.c:1757
+#: sequencer.c:1753
msgid "The 1st commit message will be skipped:"
msgstr "Pesan komit pertama akan dilewati:"
-#: sequencer.c:1758
+#: sequencer.c:1754
#, c-format
msgid "The commit message #%d will be skipped:"
msgstr "Pesan komit ke-%d akan dilewati"
-#: sequencer.c:1759
+#: sequencer.c:1755
#, c-format
msgid "This is a combination of %d commits."
msgstr "Ini kombinasi dari %d komit."
-#: sequencer.c:1906 sequencer.c:1963
+#: sequencer.c:1902 sequencer.c:1959
#, c-format
msgid "cannot write '%s'"
msgstr "tidak dapat menulis '%s'"
-#: sequencer.c:1953
+#: sequencer.c:1949
msgid "need a HEAD to fixup"
msgstr "butuh sebuah HEAD untuk memperbaiki"
-#: sequencer.c:1955 sequencer.c:3596
+#: sequencer.c:1951 sequencer.c:3592
msgid "could not read HEAD"
msgstr "tidak dapat membaca HEAD"
-#: sequencer.c:1957
+#: sequencer.c:1953
msgid "could not read HEAD's commit message"
msgstr "tidak dapat membaca pesan komit HEAD"
-#: sequencer.c:1981
+#: sequencer.c:1977
#, c-format
msgid "could not read commit message of %s"
msgstr "tidak dapat membaca pesan komit %s"
-#: sequencer.c:2091
+#: sequencer.c:2087
msgid "your index file is unmerged."
msgstr "berkas indeks Anda tak tergabung."
-#: sequencer.c:2098
+#: sequencer.c:2094
msgid "cannot fixup root commit"
msgstr "tidak dapat memperbaiki komit akar"
-#: sequencer.c:2117
+#: sequencer.c:2113
#, c-format
msgid "commit %s is a merge but no -m option was given."
msgstr "komit %s adalah penggabungan tetapi opsi -m tidak diberikan."
-#: sequencer.c:2125 sequencer.c:2133
+#: sequencer.c:2121 sequencer.c:2129
#, c-format
msgid "commit %s does not have parent %d"
msgstr "komit %s tidak punya induk %d"
-#: sequencer.c:2139
+#: sequencer.c:2135
#, c-format
msgid "cannot get commit message for %s"
msgstr "tidak dapat mendapatkan pesan komit untuk %s"
#. TRANSLATORS: The first %s will be a "todo" command like
#. "revert" or "pick", the second %s a SHA1.
-#: sequencer.c:2158
+#: sequencer.c:2154
#, c-format
msgid "%s: cannot parse parent commit %s"
msgstr "%s: tidak dapat menguraikan komit induk %s"
-#: sequencer.c:2224
+#: sequencer.c:2220
#, c-format
msgid "could not rename '%s' to '%s'"
msgstr "tidak dapat menamai ulang '%s' ke '%s'"
-#: sequencer.c:2284
+#: sequencer.c:2280
#, c-format
msgid "could not revert %s... %s"
msgstr "tidak dapat membalikkan %s... %s"
-#: sequencer.c:2285
+#: sequencer.c:2281
#, c-format
msgid "could not apply %s... %s"
msgstr "tidak dapat menerapkan %s... %s"
-#: sequencer.c:2306
+#: sequencer.c:2302
#, c-format
msgid "dropping %s %s -- patch contents already upstream\n"
msgstr "menjatuhkan %s %s -- isi tambalan sudah di hulu\n"
-#: sequencer.c:2364
+#: sequencer.c:2360
#, c-format
msgid "git %s: failed to read the index"
msgstr "git %s: gagal membaca indeks"
-#: sequencer.c:2372
+#: sequencer.c:2368
#, c-format
msgid "git %s: failed to refresh the index"
msgstr "git %s: gagal menyegarkan indeks"
-#: sequencer.c:2452
+#: sequencer.c:2448
#, c-format
msgid "%s does not accept arguments: '%s'"
msgstr "%s tidak menerima argumen: '%s'"
-#: sequencer.c:2461
+#: sequencer.c:2457
#, c-format
msgid "missing arguments for %s"
msgstr "argumen hilang untuk %s"
-#: sequencer.c:2504
+#: sequencer.c:2500
#, c-format
msgid "could not parse '%s'"
msgstr "tidak dapat menguraikan '%s'"
-#: sequencer.c:2565
+#: sequencer.c:2561
#, c-format
msgid "invalid line %d: %.*s"
msgstr "baris %d tidak valid: %.*s"
-#: sequencer.c:2576
+#: sequencer.c:2572
#, c-format
msgid "cannot '%s' without a previous commit"
msgstr "tidak dapat '%s' tanpa komit sebelumnya"
-#: sequencer.c:2624 builtin/rebase.c:184
+#: sequencer.c:2620 builtin/rebase.c:185
#, c-format
msgid "could not read '%s'."
msgstr "tidak dapat membaca '%s'."
-#: sequencer.c:2662
+#: sequencer.c:2658
msgid "cancelling a cherry picking in progress"
msgstr "membatalkan pemetikan ceri yang sedang berlangsung"
-#: sequencer.c:2671
+#: sequencer.c:2667
msgid "cancelling a revert in progress"
msgstr "membatalkan pembalikkan yang sedang berlangsung"
-#: sequencer.c:2711
+#: sequencer.c:2707
msgid "please fix this using 'git rebase --edit-todo'."
msgstr "mohon perbaiki menggunakan 'git rebase --edit-todo'."
-#: sequencer.c:2713
+#: sequencer.c:2709
#, c-format
msgid "unusable instruction sheet: '%s'"
msgstr "lembar perintah tidak dapat digunakan: '%s'"
-#: sequencer.c:2718
+#: sequencer.c:2714
msgid "no commits parsed."
msgstr "tidak ada komit yang diuraikan."
-#: sequencer.c:2729
+#: sequencer.c:2725
msgid "cannot cherry-pick during a revert."
msgstr "tidak dapat memetik ceri selama pembalikkan."
-#: sequencer.c:2731
+#: sequencer.c:2727
msgid "cannot revert during a cherry-pick."
msgstr "tidak dapat membalikkan selama petik ceri."
-#: sequencer.c:2809
-#, c-format
-msgid "invalid value for %s: %s"
-msgstr "nilai tidak valid untuk %s: %s"
-
-#: sequencer.c:2918
+#: sequencer.c:2914
msgid "unusable squash-onto"
msgstr "squash-onto tidak dapat digunakan"
-#: sequencer.c:2938
+#: sequencer.c:2934
#, c-format
msgid "malformed options sheet: '%s'"
msgstr "lembar opsi jelek: '%s'"
-#: sequencer.c:3033 sequencer.c:4902
+#: sequencer.c:3029 sequencer.c:4875
msgid "empty commit set passed"
msgstr "himpunan komit kosong dilewatkan"
-#: sequencer.c:3050
+#: sequencer.c:3046
msgid "revert is already in progress"
msgstr "pembalikkan sudah berjalan"
-#: sequencer.c:3052
+#: sequencer.c:3048
#, c-format
msgid "try \"git revert (--continue | %s--abort | --quit)\""
msgstr "coba \"git revert (--continue | %s--abort | --quit)\""
-#: sequencer.c:3055
+#: sequencer.c:3051
msgid "cherry-pick is already in progress"
msgstr "pemetikan ceri sudah berjalan"
-#: sequencer.c:3057
+#: sequencer.c:3053
#, c-format
msgid "try \"git cherry-pick (--continue | %s--abort | --quit)\""
msgstr "coba \"git cherry-pick (--continue | %s--abort | --quit)\""
-#: sequencer.c:3071
+#: sequencer.c:3067
#, c-format
msgid "could not create sequencer directory '%s'"
msgstr "tidak dapat membuat direktori pembaris '%s'"
-#: sequencer.c:3086
+#: sequencer.c:3082
msgid "could not lock HEAD"
msgstr "tidak dapat mengunci HEAD"
-#: sequencer.c:3146 sequencer.c:4612
+#: sequencer.c:3142 sequencer.c:4585
msgid "no cherry-pick or revert in progress"
msgstr "tidak ada pemetikan ceri atau pembalikkan yang sedang berjalan"
-#: sequencer.c:3148 sequencer.c:3159
+#: sequencer.c:3144 sequencer.c:3155
msgid "cannot resolve HEAD"
msgstr "tidak dapat menguraikan HEAD"
-#: sequencer.c:3150 sequencer.c:3194
+#: sequencer.c:3146 sequencer.c:3190
msgid "cannot abort from a branch yet to be born"
msgstr "tidak dapat membatalkan dari cabang yang belum lahir"
-#: sequencer.c:3180 builtin/fetch.c:1004 builtin/fetch.c:1416
-#: builtin/grep.c:772
+#: sequencer.c:3176 builtin/fetch.c:1030 builtin/fetch.c:1457
+#: builtin/grep.c:774
#, c-format
msgid "cannot open '%s'"
msgstr "tidak dapat membuka '%s'"
-#: sequencer.c:3182
+#: sequencer.c:3178
#, c-format
msgid "cannot read '%s': %s"
msgstr "tidak dapat membaca '%s': %s"
-#: sequencer.c:3183
+#: sequencer.c:3179
msgid "unexpected end of file"
msgstr "akhir berkas tidak diharapkan"
-#: sequencer.c:3189
+#: sequencer.c:3185
#, c-format
msgid "stored pre-cherry-pick HEAD file '%s' is corrupt"
msgstr "berkas HEAD pra-petik-ceri yang tersimpan '%s' rusak"
-#: sequencer.c:3200
+#: sequencer.c:3196
msgid "You seem to have moved HEAD. Not rewinding, check your HEAD!"
-msgstr "Sepertinya Anda sudah memindahkan HEAD. Tidak memutar ulang, periksa HEAD Anda!"
+msgstr ""
+"Sepertinya Anda sudah memindahkan HEAD. Tidak memutar ulang, periksa HEAD "
+"Anda!"
-#: sequencer.c:3241
+#: sequencer.c:3237
msgid "no revert in progress"
msgstr "tidak ada pembalikkan yang sedang berjalan"
-#: sequencer.c:3250
+#: sequencer.c:3246
msgid "no cherry-pick in progress"
msgstr "tidak ada pemetikan ceri yang sedang berjalan"
-#: sequencer.c:3260
+#: sequencer.c:3256
msgid "failed to skip the commit"
msgstr "gagal melewati komit"
-#: sequencer.c:3267
+#: sequencer.c:3263
msgid "there is nothing to skip"
msgstr "tidak ada yang dilewati"
-#: sequencer.c:3270
+#: sequencer.c:3266
#, c-format
msgid ""
"have you committed already?\n"
@@ -7963,16 +8289,16 @@ msgstr ""
"sudahkah Anda komit?\n"
"coba \"git %s --continue\""
-#: sequencer.c:3432 sequencer.c:4503
+#: sequencer.c:3428 sequencer.c:4476
msgid "cannot read HEAD"
msgstr "tidak dapat membaca HEAD"
-#: sequencer.c:3449
+#: sequencer.c:3445
#, c-format
msgid "unable to copy '%s' to '%s'"
msgstr "tidak dapat menyalin '%s' ke '%s'"
-#: sequencer.c:3457
+#: sequencer.c:3453
#, c-format
msgid ""
"You can amend the commit now, with\n"
@@ -7991,27 +8317,27 @@ msgstr ""
"\n"
" git rebase --continue\n"
-#: sequencer.c:3467
+#: sequencer.c:3463
#, c-format
msgid "Could not apply %s... %.*s"
msgstr "Tidak dapat menerapkan %s... %.*s"
-#: sequencer.c:3474
+#: sequencer.c:3470
#, c-format
msgid "Could not merge %.*s"
msgstr "Tidak dapat menggabungkan %.*s"
-#: sequencer.c:3488 sequencer.c:3492 builtin/difftool.c:633
+#: sequencer.c:3484 sequencer.c:3488 builtin/difftool.c:633
#, c-format
msgid "could not copy '%s' to '%s'"
msgstr "tidak dapat menyalin '%s' ke '%s'"
-#: sequencer.c:3503
+#: sequencer.c:3499
#, c-format
msgid "Executing: %s\n"
msgstr "Mengeksekusi: %s\n"
-#: sequencer.c:3514
+#: sequencer.c:3510
#, c-format
msgid ""
"execution failed: %s\n"
@@ -8026,11 +8352,11 @@ msgstr ""
" git rebase --continue\n"
"\n"
-#: sequencer.c:3520
+#: sequencer.c:3516
msgid "and made changes to the index and/or the working tree\n"
msgstr "dan buat perubahan ke indeks dan/atau pohon kerja\n"
-#: sequencer.c:3526
+#: sequencer.c:3522
#, c-format
msgid ""
"execution succeeded: %s\n"
@@ -8047,90 +8373,90 @@ msgstr ""
" git rebase --continue\n"
"\n"
-#: sequencer.c:3586
+#: sequencer.c:3582
#, c-format
msgid "illegal label name: '%.*s'"
msgstr "nama label ilegal: '%.*s'"
-#: sequencer.c:3659
+#: sequencer.c:3655
msgid "writing fake root commit"
msgstr "menulis komit akar palsu"
-#: sequencer.c:3664
+#: sequencer.c:3660
msgid "writing squash-onto"
msgstr "menulis squash-onto"
-#: sequencer.c:3743
+#: sequencer.c:3739
#, c-format
msgid "could not resolve '%s'"
msgstr "tidak dapat menguraikan '%s'"
-#: sequencer.c:3775
+#: sequencer.c:3771
msgid "cannot merge without a current revision"
msgstr "tidak dapat menggabungkan tanpa revisi saat ini"
-#: sequencer.c:3797
+#: sequencer.c:3793
#, c-format
msgid "unable to parse '%.*s'"
msgstr "tidak dapat menguraikan '%.*s'"
-#: sequencer.c:3806
+#: sequencer.c:3802
#, c-format
msgid "nothing to merge: '%.*s'"
msgstr "tidak ada yang digabungkan: '%.*s'"
-#: sequencer.c:3818
+#: sequencer.c:3814
msgid "octopus merge cannot be executed on top of a [new root]"
msgstr "penggabungan gurita tidak dapat dieksekusi di atas sebuah [akar baru]"
-#: sequencer.c:3873
+#: sequencer.c:3869
#, c-format
msgid "could not get commit message of '%s'"
msgstr "tidak dapat mendapatkan pesan komit dari '%s'"
-#: sequencer.c:4019
+#: sequencer.c:4013
#, c-format
msgid "could not even attempt to merge '%.*s'"
msgstr "bahkan tidak dapat mencoba menggabungkan '%.*s'"
-#: sequencer.c:4035
+#: sequencer.c:4029
msgid "merge: Unable to write new index file"
msgstr "merge: Tidak dapat menulis berkas indeks baru"
-#: sequencer.c:4116
+#: sequencer.c:4110
msgid "Cannot autostash"
msgstr "Tidak dapat menstase otomatis"
-#: sequencer.c:4119
+#: sequencer.c:4113
#, c-format
msgid "Unexpected stash response: '%s'"
msgstr "Respons stase tidak diharapkan: '%s'"
-#: sequencer.c:4125
+#: sequencer.c:4119
#, c-format
msgid "Could not create directory for '%s'"
msgstr "Tidak dapat membuat direktori untuk '%s'"
-#: sequencer.c:4128
+#: sequencer.c:4122
#, c-format
msgid "Created autostash: %s\n"
msgstr "Stase otomatis dibuat: %s\n"
-#: sequencer.c:4132
+#: sequencer.c:4124
msgid "could not reset --hard"
msgstr "tidak dapat reset --hard"
-#: sequencer.c:4157
+#: sequencer.c:4148
#, c-format
msgid "Applied autostash.\n"
msgstr "Stase otomatis diterapkan.\n"
-#: sequencer.c:4169
+#: sequencer.c:4160
#, c-format
msgid "cannot store %s"
msgstr "tidak dapat menyimpan %s"
-#: sequencer.c:4172
+#: sequencer.c:4163
#, c-format
msgid ""
"%s\n"
@@ -8141,29 +8467,29 @@ msgstr ""
"Perubahan Anda aman di dalam stase.\n"
"Anda dapat menjalankan \"git stash pop\" atau \"git stash drop\" kapanpun.\n"
-#: sequencer.c:4177
+#: sequencer.c:4168
msgid "Applying autostash resulted in conflicts."
msgstr "Menerapkan stase otomatis menghasilkan konflik."
-#: sequencer.c:4178
+#: sequencer.c:4169
msgid "Autostash exists; creating a new stash entry."
msgstr "Stase otomatis sudah ada; membuat entri stase baru."
-#: sequencer.c:4252
+#: sequencer.c:4225
msgid "could not detach HEAD"
msgstr "tidak dapat melepas HEAD"
-#: sequencer.c:4267
+#: sequencer.c:4240
#, c-format
msgid "Stopped at HEAD\n"
msgstr "Berhenti pada HEAD\n"
-#: sequencer.c:4269
+#: sequencer.c:4242
#, c-format
msgid "Stopped at %s\n"
msgstr "Berhenti pada %s\n"
-#: sequencer.c:4301
+#: sequencer.c:4274
#, c-format
msgid ""
"Could not execute the todo command\n"
@@ -8184,58 +8510,58 @@ msgstr ""
" git rebase --edit-todo\n"
" git rebase --continue\n"
-#: sequencer.c:4347
+#: sequencer.c:4320
#, c-format
msgid "Rebasing (%d/%d)%s"
msgstr "Mendasarkan ulang (%d/%d)%s"
-#: sequencer.c:4393
+#: sequencer.c:4366
#, c-format
msgid "Stopped at %s... %.*s\n"
msgstr "Berhenti pada %s... %.*s\n"
-#: sequencer.c:4463
+#: sequencer.c:4436
#, c-format
msgid "unknown command %d"
msgstr "perintah tidak dikenal %d"
-#: sequencer.c:4511
+#: sequencer.c:4484
msgid "could not read orig-head"
msgstr "tidak dapat membaca orig-head"
-#: sequencer.c:4516
+#: sequencer.c:4489
msgid "could not read 'onto'"
msgstr "tidak dapat membaca 'onto'"
-#: sequencer.c:4530
+#: sequencer.c:4503
#, c-format
msgid "could not update HEAD to %s"
msgstr "tidak dapat memperbarui HEAD ke %s"
-#: sequencer.c:4590
+#: sequencer.c:4563
#, c-format
msgid "Successfully rebased and updated %s.\n"
msgstr "%s didasarkan ulang dan diperbarui dengan sukses.\n"
-#: sequencer.c:4642
+#: sequencer.c:4615
msgid "cannot rebase: You have unstaged changes."
msgstr "tidak dapat mendasarkan ulang: Anda punya perubahan tak tergelar."
-#: sequencer.c:4651
+#: sequencer.c:4624
msgid "cannot amend non-existing commit"
msgstr "tidak dapat mengubah komit yang tidak ada"
-#: sequencer.c:4653
+#: sequencer.c:4626
#, c-format
msgid "invalid file: '%s'"
msgstr "berkas tidak valid: '%s'"
-#: sequencer.c:4655
+#: sequencer.c:4628
#, c-format
msgid "invalid contents: '%s'"
msgstr "konten tidak valid: '%s'"
-#: sequencer.c:4658
+#: sequencer.c:4631
msgid ""
"\n"
"You have uncommitted changes in your working tree. Please, commit them\n"
@@ -8245,338 +8571,368 @@ msgstr ""
"Anda punya perubahan tak tergelar di dalam pohon kerja Anda. Mohon komit\n"
"terlebih dahulu dan jalankan 'git rebase --continue' lagi."
-#: sequencer.c:4694 sequencer.c:4733
+#: sequencer.c:4667 sequencer.c:4706
#, c-format
msgid "could not write file: '%s'"
msgstr "tidak dapat menulis berkas: '%s'"
-#: sequencer.c:4749
+#: sequencer.c:4722
msgid "could not remove CHERRY_PICK_HEAD"
msgstr "tidak dapat menghapus CHERRY_PICK_HEAD"
-#: sequencer.c:4759
+#: sequencer.c:4732
msgid "could not commit staged changes."
msgstr "tidak dapat mengkomit perubahan tergelar."
-#: sequencer.c:4879
+#: sequencer.c:4852
#, c-format
msgid "%s: can't cherry-pick a %s"
msgstr "%s: tidak dapat memetik ceri sebuah %s"
-#: sequencer.c:4883
+#: sequencer.c:4856
#, c-format
msgid "%s: bad revision"
msgstr "%s: revisi jelek"
-#: sequencer.c:4918
+#: sequencer.c:4891
msgid "can't revert as initial commit"
msgstr "tidak dapat membalikkan sebagai komit awal"
-#: sequencer.c:5189 sequencer.c:5418
+#: sequencer.c:5162 sequencer.c:5391
#, c-format
msgid "skipped previously applied commit %s"
msgstr "melewatkan komit yang sudah diterapkan sebelumnya %s"
-#: sequencer.c:5259 sequencer.c:5434
+#: sequencer.c:5232 sequencer.c:5407
msgid "use --reapply-cherry-picks to include skipped commits"
msgstr "gunakan --reapply-cherry-picks untuk memasukkan komit yang terlewat"
-#: sequencer.c:5405
+#: sequencer.c:5378
msgid "make_script: unhandled options"
msgstr "make_script: opsi tak ditangani"
-#: sequencer.c:5408
+#: sequencer.c:5381
msgid "make_script: error preparing revisions"
msgstr "make_script: kesalahan membuat revisi"
-#: sequencer.c:5666 sequencer.c:5683
+#: sequencer.c:5639 sequencer.c:5656
msgid "nothing to do"
msgstr "tidak ada yang dilakukan"
-#: sequencer.c:5702
+#: sequencer.c:5675
msgid "could not skip unnecessary pick commands"
msgstr "tidak dapat melewatkan perintah pick yang tidak perlu"
-#: sequencer.c:5802
+#: sequencer.c:5775
msgid "the script was already rearranged."
msgstr "skrip sudah ditata ulang."
-#: setup.c:134
+#: setup.c:135
#, c-format
msgid "'%s' is outside repository at '%s'"
-msgstr ""
+msgstr "'%s' di luar repositori pada '%s'"
-#: setup.c:186
+#: setup.c:187
#, c-format
msgid ""
"%s: no such path in the working tree.\n"
"Use 'git <command> -- <path>...' to specify paths that do not exist locally."
msgstr ""
+"%s: tidak ada jalur di pohon kerja.\n"
+"Gunakan 'git <perintah> -- <jalur>...' untuk menyebutkan jalur yang tidak ada secara lokal."
-#: setup.c:199
+#: setup.c:200
#, c-format
msgid ""
"ambiguous argument '%s': unknown revision or path not in the working tree.\n"
"Use '--' to separate paths from revisions, like this:\n"
"'git <command> [<revision>...] -- [<file>...]'"
msgstr ""
+"argumen ambigu '%s': revisi tidak dikenal atau jalur tidak ada di dalam pohon "
+"kerja.\n"
+"Gunakan '--' untuk memisahkan jalur dari revisi, seperti ini:\n"
+"'git <perintah> [<revisi>...] -- [<berkas>...]'"
-#: setup.c:265
+#: setup.c:266
#, c-format
msgid "option '%s' must come before non-option arguments"
-msgstr ""
+msgstr "opsi '%s' harus ada sebelum argumen bukan opsi"
-#: setup.c:284
+#: setup.c:285
#, c-format
msgid ""
"ambiguous argument '%s': both revision and filename\n"
"Use '--' to separate paths from revisions, like this:\n"
"'git <command> [<revision>...] -- [<file>...]'"
msgstr ""
+"argumen ambigu '%s': kedua-duanya revisi dan nama berkas\n"
+"Gunakan '--' untuk memisahkan jalur dari revisi, seperti ini:\n"
+"'git <perintah> [<revisi>...] -- [<berkas>]'"
-#: setup.c:420
+#: setup.c:421
msgid "unable to set up work tree using invalid config"
-msgstr ""
+msgstr "tidak dapat memasang pohon kerja menggunakan konfigurasi tidak valid"
-#: setup.c:424 builtin/rev-parse.c:895
+#: setup.c:425 builtin/rev-parse.c:895
msgid "this operation must be run in a work tree"
-msgstr ""
+msgstr "operasi ini harus dijalankan di dalam pohon kerja"
-#: setup.c:722
+#: setup.c:724
#, c-format
msgid "Expected git repo version <= %d, found %d"
-msgstr ""
+msgstr "Versi repositori git diharapkan <= %d, dapat %d"
-#: setup.c:730
+#: setup.c:732
msgid "unknown repository extension found:"
msgid_plural "unknown repository extensions found:"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "ekstensi repositori tidak dikenal ditemukan:"
+msgstr[1] "ekstensi repositori tidak dikenal ditemukan:"
-#: setup.c:744
+#: setup.c:746
msgid "repo version is 0, but v1-only extension found:"
msgid_plural "repo version is 0, but v1-only extensions found:"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "versi repositori 0, tetapi ekstensi hanya v1 ditemukan:"
+msgstr[1] "versi repositori 0, tetapi ekstensi hanya v1 ditemukan:"
-#: setup.c:765
+#: setup.c:767
#, c-format
msgid "error opening '%s'"
-msgstr ""
+msgstr "kesalahan membuka '%s'"
-#: setup.c:767
+#: setup.c:769
#, c-format
msgid "too large to be a .git file: '%s'"
-msgstr ""
+msgstr "terlalu besar untuk jadi berkas .git: '%s'"
-#: setup.c:769
+#: setup.c:771
#, c-format
msgid "error reading %s"
-msgstr ""
+msgstr "kesalahan membaca %s"
-#: setup.c:771
+#: setup.c:773
#, c-format
msgid "invalid gitfile format: %s"
-msgstr ""
+msgstr "format gitfile tidak valid: %s"
-#: setup.c:773
+#: setup.c:775
#, c-format
msgid "no path in gitfile: %s"
-msgstr ""
+msgstr "tidak ada jalur di dalam gitfile: %s"
-#: setup.c:775
+#: setup.c:777
#, c-format
msgid "not a git repository: %s"
-msgstr ""
+msgstr "bukan sebuah repositori git: %s"
-#: setup.c:877
+#: setup.c:879
#, c-format
msgid "'$%s' too big"
-msgstr ""
+msgstr "'$%s' terlalu besar"
-#: setup.c:891
+#: setup.c:893
#, c-format
msgid "not a git repository: '%s'"
-msgstr ""
+msgstr "bukan sebuah repositori git: '%s'"
-#: setup.c:920 setup.c:922 setup.c:953
+#: setup.c:922 setup.c:924 setup.c:955
#, c-format
msgid "cannot chdir to '%s'"
-msgstr ""
+msgstr "tidak dapat chdir ke '%s'"
-#: setup.c:925 setup.c:981 setup.c:991 setup.c:1030 setup.c:1038
+#: setup.c:927 setup.c:983 setup.c:993 setup.c:1032 setup.c:1040
msgid "cannot come back to cwd"
-msgstr ""
+msgstr "tidak dapat kembali ke cwd"
-#: setup.c:1052
+#: setup.c:1054
#, c-format
msgid "failed to stat '%*s%s%s'"
-msgstr ""
+msgstr "gagal men-stat '%*s%s%s'"
-#: setup.c:1295
+#: setup.c:1338
msgid "Unable to read current working directory"
-msgstr ""
+msgstr "tidak dapat membaca direktori kerja saat ini"
-#: setup.c:1304 setup.c:1310
+#: setup.c:1347 setup.c:1353
#, c-format
msgid "cannot change to '%s'"
-msgstr ""
+msgstr "tidak dapat berganti ke '%s'"
-#: setup.c:1315
+#: setup.c:1358
#, c-format
msgid "not a git repository (or any of the parent directories): %s"
-msgstr ""
+msgstr "bukan sebuah repositori git (atau direktori induk apapun): %s"
-#: setup.c:1321
+#: setup.c:1364
#, 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 ""
+"bukan sebuah repositori git (atau induk apapun hingga ke titik pasang %s)\n"
+"Berhenti pada perbatasan sistem berkas (GIT_DISCOVERY_ACROSS_FILESYSTEM tidak disetel)."
+
+#: setup.c:1374
+#, c-format
+msgid ""
+"unsafe repository ('%s' is owned by someone else)\n"
+"To add an exception for this directory, call:\n"
+"\n"
+"\tgit config --global --add safe.directory %s"
+msgstr ""
+"repositori tidak aman ('%s' dimiliki oleh orang lain)\n"
+"Untuk menambahkan pengecualian untuk direktori ini, panggil:\n"
+"\n"
+"\tgit config --global --add safe.directory %s"
-#: setup.c:1446
+#: setup.c:1502
#, c-format
msgid ""
"problem with core.sharedRepository filemode value (0%.3o).\n"
"The owner of files must always have read and write permissions."
msgstr ""
+"masalah dengan nilai mode berkas core.sharedRepository (0%.3o).\n"
+"Pemilik berkas harus selalu punya perizinan baca dan tulis."
-#: setup.c:1508
+#: setup.c:1564
msgid "fork failed"
-msgstr ""
+msgstr "penggarpuan gagal"
-#: setup.c:1513
+#: setup.c:1569
msgid "setsid failed"
-msgstr ""
+msgstr "setsid gagal"
-#: sparse-index.c:289
+#: sparse-index.c:285
#, c-format
msgid "index entry is a directory, but not sparse (%08x)"
msgstr "entri indeks adalah direktori, tapi bukan tipis (%08x)"
+#: split-index.c:9
+msgid "cannot use split index with a sparse index"
+msgstr "tidak dapat menggunakan indeks terpisah dengan indeks tipis"
+
#. TRANSLATORS: IEC 80000-13:2008 gibibyte
-#: strbuf.c:850
+#: strbuf.c:851
#, c-format
msgid "%u.%2.2u GiB"
-msgstr ""
+msgstr "%u.%2.2u gibibita"
#. TRANSLATORS: IEC 80000-13:2008 gibibyte/second
-#: strbuf.c:852
+#: strbuf.c:853
#, c-format
msgid "%u.%2.2u GiB/s"
-msgstr ""
+msgstr "%u.%2.2u gibibita/detik"
#. TRANSLATORS: IEC 80000-13:2008 mebibyte
-#: strbuf.c:860
+#: strbuf.c:861
#, c-format
msgid "%u.%2.2u MiB"
-msgstr ""
+msgstr "%u.%2.2u mebibita"
#. TRANSLATORS: IEC 80000-13:2008 mebibyte/second
-#: strbuf.c:862
+#: strbuf.c:863
#, c-format
msgid "%u.%2.2u MiB/s"
-msgstr ""
+msgstr "%u.%2.2u mebibita/detik"
#. TRANSLATORS: IEC 80000-13:2008 kibibyte
-#: strbuf.c:869
+#: strbuf.c:870
#, c-format
msgid "%u.%2.2u KiB"
-msgstr ""
+msgstr "%u.%2.2u kibibita"
#. TRANSLATORS: IEC 80000-13:2008 kibibyte/second
-#: strbuf.c:871
+#: strbuf.c:872
#, c-format
msgid "%u.%2.2u KiB/s"
-msgstr ""
+msgstr "%u.%2.2u kibibita/detik"
#. TRANSLATORS: IEC 80000-13:2008 byte
-#: strbuf.c:877
+#: strbuf.c:878
#, c-format
msgid "%u byte"
msgid_plural "%u bytes"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "%u bita"
+msgstr[1] "%u bita"
#. TRANSLATORS: IEC 80000-13:2008 byte/second
-#: strbuf.c:879
+#: strbuf.c:880
#, c-format
msgid "%u byte/s"
msgid_plural "%u bytes/s"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "%u bita/detik"
+msgstr[1] "%u bita/detik"
-#: strbuf.c:1186 wrapper.c:207 wrapper.c:377 builtin/am.c:765
-#: builtin/rebase.c:650
+#: strbuf.c:1187 wrapper.c:217 wrapper.c:387 builtin/am.c:766
+#: builtin/rebase.c:653
#, c-format
msgid "could not open '%s' for writing"
-msgstr ""
+msgstr "tidak dapat membuka '%s' untuk ditulis"
-#: strbuf.c:1195
+#: strbuf.c:1196
#, c-format
msgid "could not edit '%s'"
-msgstr ""
+msgstr "tidak dapat menyunting '%s'"
-#: submodule-config.c:237
+#: submodule-config.c:238
#, c-format
msgid "ignoring suspicious submodule name: %s"
msgstr "abaikan nama submodul dicurigai: %s"
-#: submodule-config.c:304
+#: submodule-config.c:305
msgid "negative values not allowed for submodule.fetchjobs"
msgstr "nilai negatif tidak diperbolehkan untuk submodule.fetchjobs"
-#: submodule-config.c:402
+#: submodule-config.c:403
#, c-format
msgid "ignoring '%s' which may be interpreted as a command-line option: %s"
msgstr "abaikan '%s' yang mungkin ditafsirkan sebagai opsi baris perintah: %s"
-#: submodule-config.c:499
+#: submodule-config.c:500 builtin/push.c:489 builtin/send-pack.c:148
#, c-format
-msgid "invalid value for %s"
-msgstr "nilai tidak valid untuk %s"
+msgid "invalid value for '%s'"
+msgstr "nilai tidak valid untuk '%s'"
-#: submodule-config.c:767
+#: submodule-config.c:828
#, c-format
msgid "Could not update .gitmodules entry %s"
msgstr "Tidak dapat memperbarui entri .gitmodules %s"
-#: submodule.c:114 submodule.c:143
+#: submodule.c:115 submodule.c:144
msgid "Cannot change unmerged .gitmodules, resolve merge conflicts first"
msgstr ""
"Tidak dapat mengubah .gitmodules yang tak tergabung, selesaikan konflik "
"penggabungan terlebih dahulu"
-#: submodule.c:118 submodule.c:147
+#: submodule.c:119 submodule.c:148
#, c-format
msgid "Could not find section in .gitmodules where path=%s"
msgstr "Tidak dapat menemukan bagian .gitmodules dimana path=%s"
-#: submodule.c:154
+#: submodule.c:155
#, c-format
msgid "Could not remove .gitmodules entry for %s"
msgstr "Tidak dapat menghapus entri .gitmodules untuk %s"
-#: submodule.c:165
+#: submodule.c:166
msgid "staging updated .gitmodules failed"
msgstr "gagal menggelar .gitmodules terbarui"
-#: submodule.c:358
+#: submodule.c:346
#, c-format
msgid "in unpopulated submodule '%s'"
msgstr "dalam submodul tak terisi '%s'"
-#: submodule.c:389
+#: submodule.c:377
#, c-format
msgid "Pathspec '%s' is in submodule '%.*s'"
msgstr "Spek jalur '%s' di dalam submodul '%.*s'"
-#: submodule.c:466
+#: submodule.c:454
#, c-format
msgid "bad --ignore-submodules argument: %s"
msgstr "argumen --ignore-submodules jelek: %s"
-#: submodule.c:844
+#: submodule.c:866
#, c-format
msgid ""
"Submodule in commit %s at path: '%s' collides with a submodule named the "
@@ -8585,12 +8941,12 @@ msgstr ""
"Submodul dalam komit %s pada jalur '%s' bertabrakan dengan submodul yang "
"bernama sama. Melewati itu."
-#: submodule.c:954
+#: submodule.c:987
#, c-format
msgid "submodule entry '%s' (%s) is a %s, not a commit"
msgstr "entri submodul '%s' (%s) adalah %s, bukan komit"
-#: submodule.c:1042
+#: submodule.c:1069
#, c-format
msgid ""
"Could not run 'git rev-list <commits> --not --remotes -n 1' command in "
@@ -8599,36 +8955,46 @@ msgstr ""
"Tidak dapat menjalankan perintah 'git rev-list <komit> --not --remotes -n 1' "
"dalam submodul %s"
-#: submodule.c:1165
+#: submodule.c:1192
#, c-format
msgid "process for submodule '%s' failed"
msgstr "proses untuk submodul '%s' gagal"
-#: submodule.c:1194 builtin/branch.c:699 builtin/submodule--helper.c:2714
+#: submodule.c:1221 builtin/branch.c:714 builtin/submodule--helper.c:2827
msgid "Failed to resolve HEAD as a valid ref."
msgstr "Gagal menguraikan HEAD sebagai referensi valid."
-#: submodule.c:1205
+#: submodule.c:1232
#, c-format
msgid "Pushing submodule '%s'\n"
msgstr "Mendorong submodul '%s'\n"
-#: submodule.c:1208
+#: submodule.c:1235
#, c-format
msgid "Unable to push submodule '%s'\n"
msgstr "Tidak dapat mendorong submodul '%s'\n"
-#: submodule.c:1491
+#: submodule.c:1567
#, c-format
msgid "Fetching submodule %s%s\n"
msgstr "Mengambil submodul %s%s\n"
-#: submodule.c:1525
+#: submodule.c:1589
#, c-format
msgid "Could not access submodule '%s'\n"
msgstr "Tidak dapat mengakses submodul '%s'\n"
-#: submodule.c:1680
+#: submodule.c:1618
+#, c-format
+msgid "Could not access submodule '%s' at commit %s\n"
+msgstr "Tidak dapat mengakses submodul '%s' pada komit %s\n"
+
+#: submodule.c:1629
+#, c-format
+msgid "Fetching submodule %s%s at commit %s\n"
+msgstr "Mengambil submodul %s%s pada komit %s\n"
+
+#: submodule.c:1849
#, c-format
msgid ""
"Errors during submodule fetch:\n"
@@ -8637,61 +9003,61 @@ msgstr ""
"Kesalahan saat pengambilan submodul:\n"
"%s"
-#: submodule.c:1705
+#: submodule.c:1874
#, c-format
msgid "'%s' not recognized as a git repository"
msgstr "'%s' tak dikenal sebagai repositori git"
-#: submodule.c:1722
+#: submodule.c:1891
#, c-format
msgid "Could not run 'git status --porcelain=2' in submodule %s"
msgstr "Tidak dapat menjalankan 'git status --porcelain=2' dalam submodul %s"
-#: submodule.c:1763
+#: submodule.c:1932
#, c-format
msgid "'git status --porcelain=2' failed in submodule %s"
msgstr "'git status --porcelain=2' gagal dalam submodul %s"
-#: submodule.c:1838
+#: submodule.c:2007
#, c-format
msgid "could not start 'git status' in submodule '%s'"
msgstr "Tidak dalat memulai 'git status' dalam submodul '%s'"
-#: submodule.c:1851
+#: submodule.c:2020
#, c-format
msgid "could not run 'git status' in submodule '%s'"
msgstr "tidak dapat menjalankan 'git status' dalam submodul '%s'"
-#: submodule.c:1868
+#: submodule.c:2037
#, c-format
msgid "Could not unset core.worktree setting in submodule '%s'"
msgstr "Tidak dapat batal setel setelan core.worktree dalam submodul '%s'"
-#: submodule.c:1895 submodule.c:2210
+#: submodule.c:2064 submodule.c:2379
#, c-format
msgid "could not recurse into submodule '%s'"
msgstr "tidak dapat rekursi ke dalam submodul '%s'"
-#: submodule.c:1917
+#: submodule.c:2086
msgid "could not reset submodule index"
msgstr "tidak dapat reset indeks submodul"
-#: submodule.c:1959
+#: submodule.c:2128
#, c-format
msgid "submodule '%s' has dirty index"
msgstr "submodul '%s' punya indeks kotor"
-#: submodule.c:2013
+#: submodule.c:2182
#, c-format
msgid "Submodule '%s' could not be updated."
msgstr "Submodul '%s' tidak dapat diperbarui."
-#: submodule.c:2081
+#: submodule.c:2250
#, c-format
msgid "submodule git dir '%s' is inside git dir '%.*s'"
msgstr "direktori submodul git '%s' di dalam direktori git '%.*s'"
-#: submodule.c:2102
+#: submodule.c:2271
#, c-format
msgid ""
"relocate_gitdir for submodule '%s' with more than one worktree not supported"
@@ -8699,17 +9065,17 @@ msgstr ""
"relocate_gitdir untuk submodul '%s' dengan lebih dari satu pohon kerja tidak "
"didukung"
-#: submodule.c:2114 submodule.c:2174
+#: submodule.c:2283 submodule.c:2343
#, c-format
msgid "could not lookup name for submodule '%s'"
msgstr "tidak dapat mencari nama untuk submodul '%s'"
-#: submodule.c:2118
+#: submodule.c:2287
#, c-format
msgid "refusing to move '%s' into an existing git dir"
msgstr "menolak memindahkan '%s' ke dalam direktori git yang ada"
-#: submodule.c:2124
+#: submodule.c:2293
#, c-format
msgid ""
"Migrating git directory of '%s%s' from\n"
@@ -8720,11 +9086,11 @@ msgstr ""
"'%s' ke\n"
"'%s'\n"
-#: submodule.c:2255
+#: submodule.c:2424
msgid "could not start ls-files in .."
msgstr "tidak dapat memulai ls-files dalam .."
-#: submodule.c:2295
+#: submodule.c:2464
#, c-format
msgid "ls-tree returned unexpected return code %d"
msgstr "ls-tree kembalikan kode kembali %d yang tak diharapkan"
@@ -8732,62 +9098,62 @@ msgstr "ls-tree kembalikan kode kembali %d yang tak diharapkan"
#: symlinks.c:244
#, c-format
msgid "failed to lstat '%s'"
-msgstr ""
+msgstr "gagal men-lstat '%s'"
#: trailer.c:244
#, c-format
msgid "running trailer command '%s' failed"
-msgstr ""
+msgstr "gagal menjalankan perintah trailer '%s'"
#: trailer.c:493 trailer.c:498 trailer.c:503 trailer.c:562 trailer.c:566
#: trailer.c:570
#, c-format
msgid "unknown value '%s' for key '%s'"
-msgstr ""
+msgstr "nilai tidak dikenal '%s' untuk kunci '%s'"
-#: trailer.c:547 trailer.c:552 trailer.c:557 builtin/remote.c:299
-#: builtin/remote.c:327
+#: trailer.c:547 trailer.c:552 trailer.c:557 builtin/remote.c:300
+#: builtin/remote.c:328
#, c-format
msgid "more than one %s"
-msgstr ""
+msgstr "lebih dari satu %s"
#: trailer.c:743
#, c-format
msgid "empty trailer token in trailer '%.*s'"
-msgstr ""
+msgstr "token trailer kosong dalam trailer '%.*s'"
#: trailer.c:763
#, c-format
msgid "could not read input file '%s'"
-msgstr ""
+msgstr "tidak dapat membaca berkas masukan '%s'"
-#: trailer.c:766 builtin/mktag.c:89 imap-send.c:1573
+#: trailer.c:766 builtin/mktag.c:88 imap-send.c:1563
msgid "could not read from stdin"
-msgstr ""
+msgstr "tidak dapat membaca dari masukan standar"
-#: trailer.c:1024 wrapper.c:684
+#: trailer.c:1024 wrapper.c:760
#, c-format
msgid "could not stat %s"
-msgstr ""
+msgstr "tidak dapat membaca %s"
#: trailer.c:1026
#, c-format
msgid "file %s is not a regular file"
-msgstr ""
+msgstr "berkas %s bukan sebuah berkas reguler"
#: trailer.c:1028
#, c-format
msgid "file %s is not writable by user"
-msgstr ""
+msgstr "berkas %s tidak dapat ditulis oleh pengguna"
#: trailer.c:1040
msgid "could not open temporary file"
-msgstr ""
+msgstr "tidak dapat membuka berkas sementara"
#: trailer.c:1080
#, c-format
msgid "could not rename temporary file to %s"
-msgstr ""
+msgstr "tidak dapat menamai ulang berkas sementara ke %s"
#: transport-helper.c:62 transport-helper.c:91
msgid "full write to remote helper failed"
@@ -8831,7 +9197,7 @@ msgstr ""
msgid "error while running fast-import"
msgstr ""
-#: transport-helper.c:549 transport-helper.c:1251
+#: transport-helper.c:549 transport-helper.c:1254
#, c-format
msgid "could not read ref %s"
msgstr ""
@@ -8849,7 +9215,7 @@ msgstr ""
msgid "invalid remote service path"
msgstr ""
-#: transport-helper.c:661 transport.c:1479
+#: transport-helper.c:661 transport.c:1496
msgid "operation not supported by protocol"
msgstr ""
@@ -8858,124 +9224,124 @@ msgstr ""
msgid "can't connect to subservice %s"
msgstr ""
-#: transport-helper.c:693 transport.c:404
+#: transport-helper.c:693 transport.c:415
msgid "--negotiate-only requires protocol v2"
msgstr ""
-#: transport-helper.c:755
+#: transport-helper.c:758
msgid "'option' without a matching 'ok/error' directive"
msgstr ""
-#: transport-helper.c:798
+#: transport-helper.c:801
#, c-format
msgid "expected ok/error, helper said '%s'"
msgstr ""
-#: transport-helper.c:859
+#: transport-helper.c:862
#, c-format
msgid "helper reported unexpected status of %s"
msgstr ""
-#: transport-helper.c:942
+#: transport-helper.c:945
#, c-format
msgid "helper %s does not support dry-run"
msgstr ""
-#: transport-helper.c:945
+#: transport-helper.c:948
#, c-format
msgid "helper %s does not support --signed"
msgstr ""
-#: transport-helper.c:948
+#: transport-helper.c:951
#, c-format
msgid "helper %s does not support --signed=if-asked"
msgstr ""
-#: transport-helper.c:953
+#: transport-helper.c:956
#, c-format
msgid "helper %s does not support --atomic"
msgstr ""
-#: transport-helper.c:957
+#: transport-helper.c:960
#, c-format
msgid "helper %s does not support --%s"
msgstr ""
-#: transport-helper.c:964
+#: transport-helper.c:967
#, c-format
msgid "helper %s does not support 'push-option'"
msgstr ""
-#: transport-helper.c:1064
+#: transport-helper.c:1067
msgid "remote-helper doesn't support push; refspec needed"
msgstr ""
-#: transport-helper.c:1069
+#: transport-helper.c:1072
#, c-format
msgid "helper %s does not support 'force'"
msgstr ""
-#: transport-helper.c:1116
+#: transport-helper.c:1119
msgid "couldn't run fast-export"
msgstr ""
-#: transport-helper.c:1121
+#: transport-helper.c:1124
msgid "error while running fast-export"
msgstr ""
-#: transport-helper.c:1146
+#: transport-helper.c:1149
#, c-format
msgid ""
"No refs in common and none specified; doing nothing.\n"
"Perhaps you should specify a branch.\n"
msgstr ""
-#: transport-helper.c:1228
+#: transport-helper.c:1231
#, c-format
msgid "unsupported object format '%s'"
msgstr ""
-#: transport-helper.c:1237
+#: transport-helper.c:1240
#, c-format
msgid "malformed response in ref list: %s"
msgstr ""
-#: transport-helper.c:1389
+#: transport-helper.c:1392
#, c-format
msgid "read(%s) failed"
msgstr ""
-#: transport-helper.c:1416
+#: transport-helper.c:1419
#, c-format
msgid "write(%s) failed"
msgstr ""
-#: transport-helper.c:1465
+#: transport-helper.c:1468
#, c-format
msgid "%s thread failed"
msgstr ""
-#: transport-helper.c:1469
+#: transport-helper.c:1472
#, c-format
msgid "%s thread failed to join: %s"
msgstr ""
-#: transport-helper.c:1488 transport-helper.c:1492
+#: transport-helper.c:1491 transport-helper.c:1495
#, c-format
msgid "can't start thread for copying data: %s"
msgstr ""
-#: transport-helper.c:1529
+#: transport-helper.c:1532
#, c-format
msgid "%s process failed to wait"
msgstr ""
-#: transport-helper.c:1533
+#: transport-helper.c:1536
#, c-format
msgid "%s process failed"
msgstr ""
-#: transport-helper.c:1551 transport-helper.c:1560
+#: transport-helper.c:1554 transport-helper.c:1563
msgid "can't start thread for copying data"
msgstr ""
@@ -8984,58 +9350,58 @@ msgstr ""
msgid "Would set upstream of '%s' to '%s' of '%s'\n"
msgstr ""
-#: transport.c:145
+#: transport.c:138
#, c-format
msgid "could not read bundle '%s'"
msgstr ""
-#: transport.c:227
+#: transport.c:234
#, c-format
msgid "transport: invalid depth option '%s'"
msgstr ""
-#: transport.c:279
+#: transport.c:289
msgid "see protocol.version in 'git help config' for more details"
msgstr ""
-#: transport.c:280
+#: transport.c:290
msgid "server options require protocol version 2 or later"
msgstr ""
-#: transport.c:407
+#: transport.c:418
msgid "server does not support wait-for-done"
msgstr ""
-#: transport.c:759
+#: transport.c:770
msgid "could not parse transport.color.* config"
msgstr ""
-#: transport.c:834
+#: transport.c:845
msgid "support for protocol v2 not implemented yet"
msgstr ""
-#: transport.c:967
+#: transport.c:978
#, c-format
msgid "unknown value for config '%s': %s"
msgstr ""
-#: transport.c:1033
+#: transport.c:1044
#, c-format
msgid "transport '%s' not allowed"
msgstr ""
-#: transport.c:1082
+#: transport.c:1093
msgid "git-over-rsync is no longer supported"
msgstr ""
-#: transport.c:1185
+#: transport.c:1196
#, c-format
msgid ""
"The following submodule paths contain changes that can\n"
"not be found on any remote:\n"
msgstr ""
-#: transport.c:1189
+#: transport.c:1200
#, c-format
msgid ""
"\n"
@@ -9051,11 +9417,11 @@ msgid ""
"\n"
msgstr ""
-#: transport.c:1197
+#: transport.c:1208
msgid "Aborting."
msgstr ""
-#: transport.c:1343
+#: transport.c:1354
msgid "failed to push all needed submodules"
msgstr ""
@@ -9275,16 +9641,16 @@ msgid ""
"colliding group is in the working tree:\n"
msgstr ""
-#: unpack-trees.c:1636
+#: unpack-trees.c:1664
msgid "Updating index flags"
msgstr ""
-#: unpack-trees.c:2803
+#: unpack-trees.c:2925
#, c-format
msgid "worktree and untracked commit have duplicate entries: %s"
msgstr ""
-#: upload-pack.c:1565
+#: upload-pack.c:1579
msgid "expected flush after fetch arguments"
msgstr "bilasan diharapkan setelah argumen pengambilan"
@@ -9321,124 +9687,138 @@ msgstr ""
msgid "Fetching objects"
msgstr ""
-#: worktree.c:238 builtin/am.c:2209 builtin/bisect--helper.c:156
+#: worktree.c:237 builtin/am.c:2210 builtin/bisect--helper.c:156
#, c-format
msgid "failed to read '%s'"
msgstr "gagal membaca '%s'"
-#: worktree.c:305
+#: worktree.c:304
#, c-format
msgid "'%s' at main working tree is not the repository directory"
msgstr "'%s' pada pohon kerja utama bukan direktori repositori"
-#: worktree.c:316
+#: worktree.c:315
#, c-format
msgid "'%s' file does not contain absolute path to the working tree location"
msgstr "berkas '%s' tidak berisi jalur absolut ke lokasi pohon kerja"
-#: worktree.c:328
+#: worktree.c:327
#, c-format
msgid "'%s' does not exist"
msgstr "'%s' tidak ada"
-#: worktree.c:334
+#: worktree.c:333
#, c-format
msgid "'%s' is not a .git file, error code %d"
msgstr "'%s' bukan berkas .git, kode error %d"
-#: worktree.c:343
+#: worktree.c:342
#, c-format
msgid "'%s' does not point back to '%s'"
msgstr "'%s' tidak menunjuk kembali ke '%s'"
-#: worktree.c:604
+#: worktree.c:600
msgid "not a directory"
msgstr "bukan direktori"
-#: worktree.c:613
+#: worktree.c:609
msgid ".git is not a file"
msgstr ".git bukan berkas"
-#: worktree.c:615
+#: worktree.c:611
msgid ".git file broken"
msgstr "berkas .git rusak"
-#: worktree.c:617
+#: worktree.c:613
msgid ".git file incorrect"
msgstr "berkas .git salah"
-#: worktree.c:723
+#: worktree.c:719
msgid "not a valid path"
msgstr "bukan jalur valid"
-#: worktree.c:729
+#: worktree.c:725
msgid "unable to locate repository; .git is not a file"
msgstr "tidak dapat menempatkan repositori; .git bukan berkas"
-#: worktree.c:733
+#: worktree.c:729
msgid "unable to locate repository; .git file does not reference a repository"
msgstr ""
"tidak dapat menempatkan repositori; berkas .git tidak merujuk repositori"
-#: worktree.c:737
+#: worktree.c:733
msgid "unable to locate repository; .git file broken"
msgstr "tidak dapat menempatkan repositori; berkas .git rusak"
-#: worktree.c:743
+#: worktree.c:739
msgid "gitdir unreadable"
msgstr "gitdir tidak dapat dibaca"
-#: worktree.c:747
+#: worktree.c:743
msgid "gitdir incorrect"
msgstr "gitdir salah"
-#: worktree.c:772
+#: worktree.c:768
msgid "not a valid directory"
msgstr "bukan direktori valid"
-#: worktree.c:778
+#: worktree.c:774
msgid "gitdir file does not exist"
msgstr "berkas gitdir tidak ada"
-#: worktree.c:783 worktree.c:792
+#: worktree.c:779 worktree.c:788
#, c-format
msgid "unable to read gitdir file (%s)"
msgstr "tidak dapat membaca berkas gitdir (%s)"
-#: worktree.c:802
+#: worktree.c:798
#, c-format
msgid "short read (expected %<PRIuMAX> bytes, read %<PRIuMAX>)"
msgstr "baca singkat (diharapkan %<PRIuMAX> bita, terbaca %<PRIuMAX>)"
-#: worktree.c:810
+#: worktree.c:806
msgid "invalid gitdir file"
msgstr "berkas gitdir tidak valid"
-#: worktree.c:818
+#: worktree.c:814
msgid "gitdir file points to non-existent location"
msgstr "berkas gitdir menunjuk ke lokasi yang tidak ada"
-#: wrapper.c:151
+#: worktree.c:830
+#, c-format
+msgid "unable to set %s in '%s'"
+msgstr "tidak dapat menyetel %s di '%s'"
+
+#: worktree.c:832
+#, c-format
+msgid "unable to unset %s in '%s'"
+msgstr "tidak dapat menyetel balik %s di '%s'"
+
+#: worktree.c:852
+msgid "failed to set extensions.worktreeConfig setting"
+msgstr "gagal menyetel setelan extensions.worktreeConfig"
+
+#: wrapper.c:161
#, c-format
msgid "could not setenv '%s'"
msgstr ""
-#: wrapper.c:203
+#: wrapper.c:213
#, c-format
msgid "unable to create '%s'"
msgstr "tidak dapat membuat '%s'"
-#: wrapper.c:205 wrapper.c:375
+#: wrapper.c:215 wrapper.c:385
#, c-format
msgid "could not open '%s' for reading and writing"
msgstr ""
-#: wrapper.c:406 wrapper.c:607
+#: wrapper.c:416 wrapper.c:683
#, c-format
msgid "unable to access '%s'"
msgstr ""
-#: wrapper.c:615
+#: wrapper.c:691
msgid "unable to get current working directory"
msgstr ""
@@ -9475,11 +9855,11 @@ msgstr ""
msgid " (use \"git rm <file>...\" to mark resolution)"
msgstr " (gunakan \"git rm <berkas>\" untuk menandai penyelesaian)"
-#: wt-status.c:211 wt-status.c:1131
+#: wt-status.c:211 wt-status.c:1140
msgid "Changes to be committed:"
msgstr "Perubahan yang akan dikomit:"
-#: wt-status.c:234 wt-status.c:1140
+#: wt-status.c:234 wt-status.c:1149
msgid "Changes not staged for commit:"
msgstr "Perubahan yang tidak digelar untuk komit:"
@@ -9583,22 +9963,22 @@ msgstr "konten yang dimodifikasi, "
msgid "untracked content, "
msgstr "konten yang tak dilacak, "
-#: wt-status.c:964
+#: wt-status.c:973
#, c-format
msgid "Your stash currently has %d entry"
msgid_plural "Your stash currently has %d entries"
msgstr[0] "Simpanan Anda saat ini ada %d entri"
msgstr[1] "Simpanan Anda saat ini ada %d entri"
-#: wt-status.c:995
+#: wt-status.c:1004
msgid "Submodules changed but not updated:"
msgstr "Submodul berubah tapi tak diperbarui:"
-#: wt-status.c:997
+#: wt-status.c:1006
msgid "Submodule changes to be committed:"
msgstr "Perubahan submodul yang akan dikomit:"
-#: wt-status.c:1079
+#: wt-status.c:1088
msgid ""
"Do not modify or remove the line above.\n"
"Everything below it will be ignored."
@@ -9606,7 +9986,7 @@ msgstr ""
"Jangan ubah atau hapus baris diatas.\n"
"Semua dibawahnya akan diabaikan."
-#: wt-status.c:1171
+#: wt-status.c:1180
#, c-format
msgid ""
"\n"
@@ -9617,273 +9997,273 @@ msgstr ""
"Butuh %.2f detik untuk menghitung cabang di depan/di belakang nilai.\n"
"Anda bisa gunakan '--no-ahead-behind' untuk menghindari hal tersebut.\n"
-#: wt-status.c:1201
+#: wt-status.c:1210
msgid "You have unmerged paths."
msgstr "Anda punya jalur yang tak tergabung."
-#: wt-status.c:1204
+#: wt-status.c:1213
msgid " (fix conflicts and run \"git commit\")"
msgstr " (selesaikan konflik dan jalankan \"git commit\")"
-#: wt-status.c:1206
+#: wt-status.c:1215
msgid " (use \"git merge --abort\" to abort the merge)"
msgstr " (gunakan \"git merge --abort\" untuk membatalkan penggabungan)"
-#: wt-status.c:1210
+#: wt-status.c:1219
msgid "All conflicts fixed but you are still merging."
msgstr "Semua konflik sudah selesai tapi Anda masih menggabungkan."
-#: wt-status.c:1213
+#: wt-status.c:1222
msgid " (use \"git commit\" to conclude merge)"
msgstr " (gunakan \"git commit\" untuk mengakhiri penggabungan)"
-#: wt-status.c:1224
+#: wt-status.c:1233
msgid "You are in the middle of an am session."
msgstr "Anda berada ditengah-tengah sesi am."
-#: wt-status.c:1227
+#: wt-status.c:1236
msgid "The current patch is empty."
msgstr "Jalur saat ini kosong"
-#: wt-status.c:1232
+#: wt-status.c:1241
msgid " (fix conflicts and then run \"git am --continue\")"
msgstr " (selesaikan konflik lalu jalankan \"git am --continue\")"
-#: wt-status.c:1234
+#: wt-status.c:1243
msgid " (use \"git am --skip\" to skip this patch)"
msgstr " (gunakan \"git am --skip\" untuk lewati tambalan ini)"
-#: wt-status.c:1237
+#: wt-status.c:1246
msgid ""
" (use \"git am --allow-empty\" to record this patch as an empty commit)"
msgstr ""
" (gunakan \"git am --allow-empty\" untuk merekam tambalan ini sebagai komit "
"kosong)"
-#: wt-status.c:1239
+#: wt-status.c:1248
msgid " (use \"git am --abort\" to restore the original branch)"
msgstr " (gunakan \"git am --abort\" untuk mengembalikan cabang asal)"
-#: wt-status.c:1372
+#: wt-status.c:1381
msgid "git-rebase-todo is missing."
msgstr "git-rebase-todo hilang."
-#: wt-status.c:1374
+#: wt-status.c:1383
msgid "No commands done."
msgstr "Tidak ada perintah selesai."
-#: wt-status.c:1377
+#: wt-status.c:1386
#, c-format
-msgid "Last command done (%d command done):"
-msgid_plural "Last commands done (%d commands done):"
-msgstr[0] "Perintah yang selesai (%d perintah):"
-msgstr[1] "Perintah yang selesai (%d perintah):"
+msgid "Last command done (%<PRIuMAX> command done):"
+msgid_plural "Last commands done (%<PRIuMAX> commands done):"
+msgstr[0] "Perintah yang selesai (%<PRIuMAX> perintah):"
+msgstr[1] "Perintah yang selesai (%<PRIuMAX> perintah):"
-#: wt-status.c:1388
+#: wt-status.c:1397
#, c-format
msgid " (see more in file %s)"
msgstr " (lihat lebih lanjut di berkas %s)"
-#: wt-status.c:1393
+#: wt-status.c:1402
msgid "No commands remaining."
msgstr "Tidak ada perintah yang tersisa."
-#: wt-status.c:1396
+#: wt-status.c:1405
#, c-format
-msgid "Next command to do (%d remaining command):"
-msgid_plural "Next commands to do (%d remaining commands):"
-msgstr[0] "Perintah berikutnya (%d perintah tersisa):"
-msgstr[1] "Perintah berikutnya (%d perintah tersisa):"
+msgid "Next command to do (%<PRIuMAX> remaining command):"
+msgid_plural "Next commands to do (%<PRIuMAX> remaining commands):"
+msgstr[0] "Perintah berikutnya (%<PRIuMAX> perintah tersisa):"
+msgstr[1] "Perintah berikutnya (%<PRIuMAX> perintah tersisa):"
-#: wt-status.c:1404
+#: wt-status.c:1413
msgid " (use \"git rebase --edit-todo\" to view and edit)"
msgstr " (gunakan \"git rebase --edit-todo\" untuk lihat dan sunting)"
-#: wt-status.c:1416
+#: wt-status.c:1425
#, c-format
msgid "You are currently rebasing branch '%s' on '%s'."
msgstr "Anda sedang mendasarkan ulang cabang '%s' pada '%s'."
-#: wt-status.c:1421
+#: wt-status.c:1430
msgid "You are currently rebasing."
msgstr "Anda sedang mendasarkan ulang."
-#: wt-status.c:1434
+#: wt-status.c:1443
msgid " (fix conflicts and then run \"git rebase --continue\")"
msgstr " (selesaikan konflik lalu jalankan \"git rebase --continue\")"
-#: wt-status.c:1436
+#: wt-status.c:1445
msgid " (use \"git rebase --skip\" to skip this patch)"
msgstr " (gunakan \"git rebase --skip\" untuk lewati tambalan ini)"
-#: wt-status.c:1438
+#: wt-status.c:1447
msgid " (use \"git rebase --abort\" to check out the original branch)"
msgstr " (gunakan \"git rebase --abort\" untuk check out cabang asal)"
-#: wt-status.c:1445
+#: wt-status.c:1454
msgid " (all conflicts fixed: run \"git rebase --continue\")"
msgstr " (semua konflik sudah selesai: jalankan \"git rebase --continue\")"
-#: wt-status.c:1449
+#: wt-status.c:1458
#, c-format
msgid ""
"You are currently splitting a commit while rebasing branch '%s' on '%s'."
msgstr ""
"Anda sedang membelah komit saat mendasarkan ulang cabang '%s' pada '%s'."
-#: wt-status.c:1454
+#: wt-status.c:1463
msgid "You are currently splitting a commit during a rebase."
msgstr "Anda sedang membelah komit saat mendasarkan ulang."
-#: wt-status.c:1457
+#: wt-status.c:1466
msgid " (Once your working directory is clean, run \"git rebase --continue\")"
msgstr ""
" (Setelah direktori kerja Anda bersih, jalankan \"git rebase --continue\")"
-#: wt-status.c:1461
+#: wt-status.c:1470
#, c-format
msgid "You are currently editing a commit while rebasing branch '%s' on '%s'."
msgstr ""
"Anda sedang menyunting komit saat mendasarkan ulang cabang '%s' pada '%s'."
-#: wt-status.c:1466
+#: wt-status.c:1475
msgid "You are currently editing a commit during a rebase."
msgstr "Anda sedang menyunting komit saat mendasarkan ulang."
-#: wt-status.c:1469
+#: wt-status.c:1478
msgid " (use \"git commit --amend\" to amend the current commit)"
msgstr " (gunakan \"git commit --amend\" untuk mengubah komit saat ini)"
-#: wt-status.c:1471
+#: wt-status.c:1480
msgid ""
" (use \"git rebase --continue\" once you are satisfied with your changes)"
msgstr ""
" (gunakan \"git rebase --continue\" begitu Anda puas dengan perubahan Anda)"
-#: wt-status.c:1482
+#: wt-status.c:1491
msgid "Cherry-pick currently in progress."
msgstr "Petik ceri sedang berjalan."
-#: wt-status.c:1485
+#: wt-status.c:1494
#, c-format
msgid "You are currently cherry-picking commit %s."
msgstr "Anda sedang memetik ceri komit %s."
-#: wt-status.c:1492
+#: wt-status.c:1501
msgid " (fix conflicts and run \"git cherry-pick --continue\")"
msgstr " (selesaikan konflik dan jalankan \"git cherry-pick --continue\")"
-#: wt-status.c:1495
+#: wt-status.c:1504
msgid " (run \"git cherry-pick --continue\" to continue)"
msgstr " (jalankan \"git cherry-pick --continue\" untuk melanjutkan)"
-#: wt-status.c:1498
+#: wt-status.c:1507
msgid " (all conflicts fixed: run \"git cherry-pick --continue\")"
msgstr ""
" (semua konflik sudah selesai: jalankan \"git cherry-pick --continue\")"
-#: wt-status.c:1500
+#: wt-status.c:1509
msgid " (use \"git cherry-pick --skip\" to skip this patch)"
msgstr " (gunakan \"git cherry-pick --skip\" untuk lewati tambalan ini)"
-#: wt-status.c:1502
+#: wt-status.c:1511
msgid " (use \"git cherry-pick --abort\" to cancel the cherry-pick operation)"
msgstr ""
" (gunakan \"git cherry-pick --abort\" untuk membatalkan operasi petik ceri)"
-#: wt-status.c:1512
+#: wt-status.c:1521
msgid "Revert currently in progress."
msgstr "Pengembalian sedang berjalang."
-#: wt-status.c:1515
+#: wt-status.c:1524
#, c-format
msgid "You are currently reverting commit %s."
msgstr "Anda sedang mengembalikan komit %s."
-#: wt-status.c:1521
+#: wt-status.c:1530
msgid " (fix conflicts and run \"git revert --continue\")"
msgstr " (selesaikan konflik dan jalankan \"git revert --continue\")"
-#: wt-status.c:1524
+#: wt-status.c:1533
msgid " (run \"git revert --continue\" to continue)"
msgstr " (jalankan \"git revert --continue\" untuk melanjutkan)"
-#: wt-status.c:1527
+#: wt-status.c:1536
msgid " (all conflicts fixed: run \"git revert --continue\")"
msgstr " (semua konflik sudah selesai: jalankan \"git revert --continue\")"
-#: wt-status.c:1529
+#: wt-status.c:1538
msgid " (use \"git revert --skip\" to skip this patch)"
msgstr " (gunakan \"git revert --skip\" untuk lewati tambalan ini)"
-#: wt-status.c:1531
+#: wt-status.c:1540
msgid " (use \"git revert --abort\" to cancel the revert operation)"
msgstr ""
" (gunakan \"git revert --abort\" untuk membatalkan operasi pengembalian)"
-#: wt-status.c:1541
+#: wt-status.c:1550
#, c-format
msgid "You are currently bisecting, started from branch '%s'."
msgstr "Anda sedang membagi dua, dimulai dari cabang '%s'."
-#: wt-status.c:1545
+#: wt-status.c:1554
msgid "You are currently bisecting."
msgstr "Anda sedang membagi dua."
-#: wt-status.c:1548
+#: wt-status.c:1557
msgid " (use \"git bisect reset\" to get back to the original branch)"
msgstr " (gunakan \"git bisect reset\" untuk kembali ke cabang asal)"
-#: wt-status.c:1559
+#: wt-status.c:1568
msgid "You are in a sparse checkout."
msgstr "Anda berada dalam checkout tipis."
-#: wt-status.c:1562
+#: wt-status.c:1571
#, c-format
msgid "You are in a sparse checkout with %d%% of tracked files present."
msgstr "Anda berada dalam checkout tipis dengan %d%% berkas terlacak ada."
-#: wt-status.c:1806
+#: wt-status.c:1815
msgid "On branch "
msgstr "Pada cabang "
-#: wt-status.c:1813
+#: wt-status.c:1822
msgid "interactive rebase in progress; onto "
msgstr "sedang mendasarkan ulang interaktif; ke "
-#: wt-status.c:1815
+#: wt-status.c:1824
msgid "rebase in progress; onto "
msgstr "sedang mendasarkan ulang; ke "
-#: wt-status.c:1820
+#: wt-status.c:1829
msgid "HEAD detached at "
msgstr ""
-#: wt-status.c:1822
+#: wt-status.c:1831
msgid "HEAD detached from "
msgstr ""
-#: wt-status.c:1825
+#: wt-status.c:1834
msgid "Not currently on any branch."
msgstr "Tidak sedang berada pada cabang apapun."
-#: wt-status.c:1842
+#: wt-status.c:1851
msgid "Initial commit"
msgstr "Komit awal"
-#: wt-status.c:1843
+#: wt-status.c:1852
msgid "No commits yet"
msgstr "Tidak ada komit"
-#: wt-status.c:1857
+#: wt-status.c:1866
msgid "Untracked files"
msgstr "Berkas tak terlacak"
-#: wt-status.c:1859
+#: wt-status.c:1868
msgid "Ignored files"
msgstr "Berkas yang diabaikan"
-#: wt-status.c:1863
+#: wt-status.c:1872
#, c-format
msgid ""
"It took %.2f seconds to enumerate untracked files. 'status -uno'\n"
@@ -9894,32 +10274,32 @@ msgstr ""
"mungkin bisa mempercepat, tapi Anda harus berhati-hati jangan sampai lupa\n"
"untuk tambahkan berkas baru sendiri (lihat 'git help status')."
-#: wt-status.c:1869
+#: wt-status.c:1878
#, c-format
msgid "Untracked files not listed%s"
msgstr "Berkas tak terlacak yang tak disebutkan%s"
-#: wt-status.c:1871
+#: wt-status.c:1880
msgid " (use -u option to show untracked files)"
msgstr " (gunakan opsi -u untuk melihat berkas yang tak terlacak)"
-#: wt-status.c:1877
+#: wt-status.c:1886
msgid "No changes"
msgstr "Tidak ada perubahan"
-#: wt-status.c:1882
+#: wt-status.c:1891
#, c-format
msgid "no changes added to commit (use \"git add\" and/or \"git commit -a\")\n"
msgstr ""
"tidak ada perubahan untuk dikomit (gunakan \"git add\" dan/atau \"git commit "
"-a\")\n"
-#: wt-status.c:1886
+#: wt-status.c:1895
#, c-format
msgid "no changes added to commit\n"
msgstr "tidak ada perubahan untuk dikomit\n"
-#: wt-status.c:1890
+#: wt-status.c:1899
#, c-format
msgid ""
"nothing added to commit but untracked files present (use \"git add\" to "
@@ -9928,64 +10308,64 @@ msgstr ""
"tidak ada perubahan untuk dikomit tapi berkas yang tak terlacak ada(gunakan "
"\"git add\" untuk lacak)\n"
-#: wt-status.c:1894
+#: wt-status.c:1903
#, c-format
msgid "nothing added to commit but untracked files present\n"
msgstr "tidak ada perubahan untuk dikomit tapi berkas yang tak terlacak ada\n"
-#: wt-status.c:1898
+#: wt-status.c:1907
#, c-format
msgid "nothing to commit (create/copy files and use \"git add\" to track)\n"
msgstr ""
"tidak ada yang dikomit (buat/salin berkas dan gunakan \"git add\" untuk "
"lacak)\n"
-#: wt-status.c:1902 wt-status.c:1908
+#: wt-status.c:1911 wt-status.c:1917
#, c-format
msgid "nothing to commit\n"
msgstr "tidak ada yang dikomit\n"
-#: wt-status.c:1905
+#: wt-status.c:1914
#, c-format
msgid "nothing to commit (use -u to show untracked files)\n"
msgstr "tidak ada yang dikomit (gunakan -u untuk lihat berkas tak terlacak)\n"
-#: wt-status.c:1910
+#: wt-status.c:1919
#, c-format
msgid "nothing to commit, working tree clean\n"
msgstr "tidak ada yang dikomit, pohon kerja bersih\n"
-#: wt-status.c:2015
+#: wt-status.c:2024
msgid "No commits yet on "
msgstr "Tidak ada komit apapun pada "
-#: wt-status.c:2019
+#: wt-status.c:2028
msgid "HEAD (no branch)"
msgstr "HEAD (tanpa cabang)"
-#: wt-status.c:2050
+#: wt-status.c:2059
msgid "different"
msgstr "berbeda"
-#: wt-status.c:2052 wt-status.c:2060
+#: wt-status.c:2061 wt-status.c:2069
msgid "behind "
msgstr "di belakang "
-#: wt-status.c:2055 wt-status.c:2058
+#: wt-status.c:2064 wt-status.c:2067
msgid "ahead "
msgstr "di depan "
#. TRANSLATORS: the action is e.g. "pull with rebase"
-#: wt-status.c:2596
+#: wt-status.c:2605
#, c-format
msgid "cannot %s: You have unstaged changes."
msgstr "tidak dapat %s: Anda punya perubahan yang tidak digelar."
-#: wt-status.c:2602
+#: wt-status.c:2611
msgid "additionally, your index contains uncommitted changes."
msgstr "juga indeks Anda berisi perubahan yang belum dikomit."
-#: wt-status.c:2604
+#: wt-status.c:2613
#, c-format
msgid "cannot %s: Your index contains uncommitted changes."
msgstr "tidak dapat %s: indeks Anda berisi perubahan yang belum dikomit."
@@ -10008,145 +10388,149 @@ msgstr ""
msgid "could not start worker[0] for '%s'"
msgstr ""
-#: compat/precompose_utf8.c:58 builtin/clone.c:347
+#: compat/precompose_utf8.c:58 builtin/clone.c:353
#, c-format
msgid "failed to unlink '%s'"
+msgstr "gagal menghapus tautan '%s'"
+
+#: compat/fsmonitor/fsm-listen-darwin.c:355
+msgid "Unable to create FSEventStream."
+msgstr ""
+
+#: compat/fsmonitor/fsm-listen-darwin.c:403
+msgid "Failed to start the FSEventStream"
msgstr ""
#: builtin/add.c:26
msgid "git add [<options>] [--] <pathspec>..."
msgstr "git add [<opsi>] [--] <pathspec>..."
-#: builtin/add.c:64
+#: builtin/add.c:63
#, c-format
msgid "cannot chmod %cx '%s'"
msgstr "tidak dapat chmod %cx '%s'"
-#: builtin/add.c:106
+#: builtin/add.c:105
#, c-format
msgid "unexpected diff status %c"
msgstr "status diff tak diharapkan %c"
-#: builtin/add.c:111 builtin/commit.c:298
+#: builtin/add.c:110 builtin/commit.c:299
msgid "updating files failed"
msgstr "gagal memperbarui berkas"
-#: builtin/add.c:121
+#: builtin/add.c:120
#, c-format
msgid "remove '%s'\n"
msgstr "hapus '%s'\n"
-#: builtin/add.c:205
+#: builtin/add.c:204
msgid "Unstaged changes after refreshing the index:"
msgstr "Perubahan tak tergelar setelah menyegarkan indeks:"
-#: builtin/add.c:313 builtin/rev-parse.c:993
+#: builtin/add.c:312 builtin/rev-parse.c:993
msgid "Could not read the index"
msgstr "Tidak dapat membaca indeks"
-#: builtin/add.c:326
+#: builtin/add.c:325
msgid "Could not write patch"
msgstr "Tidak dapat menulis tambalan"
-#: builtin/add.c:329
+#: builtin/add.c:328
msgid "editing patch failed"
msgstr "Gagal menyunting tambalan"
-#: builtin/add.c:332
+#: builtin/add.c:331
#, c-format
msgid "Could not stat '%s'"
msgstr "Tidak dapat men-stat '%s'"
-#: builtin/add.c:334
+#: builtin/add.c:333
msgid "Empty patch. Aborted."
msgstr "Tambalan kosong. Dibatalkan."
-#: builtin/add.c:340
+#: builtin/add.c:339
#, c-format
msgid "Could not apply '%s'"
msgstr "Tidak dapat terapkan '%s'"
-#: builtin/add.c:348
+#: builtin/add.c:347
msgid "The following paths are ignored by one of your .gitignore files:\n"
msgstr "Jalur berikut diabaikan oleh salah satu dari berkas .gitignore Anda:\n"
-#: builtin/add.c:368 builtin/clean.c:927 builtin/fetch.c:174 builtin/mv.c:124
+#: builtin/add.c:367 builtin/clean.c:927 builtin/fetch.c:175 builtin/mv.c:124
#: builtin/prune-packed.c:14 builtin/pull.c:208 builtin/push.c:550
-#: builtin/remote.c:1429 builtin/rm.c:244 builtin/send-pack.c:194
+#: builtin/remote.c:1454 builtin/rm.c:244 builtin/send-pack.c:194
msgid "dry run"
msgstr "latihan"
-#: builtin/add.c:369 builtin/check-ignore.c:22 builtin/commit.c:1484
-#: builtin/count-objects.c:98 builtin/fsck.c:789 builtin/log.c:2313
+#: builtin/add.c:368 builtin/check-ignore.c:22 builtin/commit.c:1483
+#: builtin/count-objects.c:98 builtin/fsck.c:789 builtin/log.c:2338
#: builtin/mv.c:123 builtin/read-tree.c:120
msgid "be verbose"
msgstr "jadi berkata-kata"
-#: builtin/add.c:371
+#: builtin/add.c:370
msgid "interactive picking"
msgstr "pengambilan interaktif"
-#: builtin/add.c:372 builtin/checkout.c:1581 builtin/reset.c:409
+#: builtin/add.c:371 builtin/checkout.c:1599 builtin/reset.c:417
msgid "select hunks interactively"
msgstr "pilih bingkah secara interaktif"
-#: builtin/add.c:373
+#: builtin/add.c:372
msgid "edit current diff and apply"
msgstr "sunting diff saat ini dan terapkan"
-#: builtin/add.c:374
+#: builtin/add.c:373
msgid "allow adding otherwise ignored files"
msgstr "perbolehkan tambah berkas yang diabaikan"
-#: builtin/add.c:375
+#: builtin/add.c:374
msgid "update tracked files"
msgstr "perbarui berkas terlacak"
-#: builtin/add.c:376
+#: builtin/add.c:375
msgid "renormalize EOL of tracked files (implies -u)"
msgstr "normalisasi ulang EOL berkas terlacak (menyiratkan -u)"
-#: builtin/add.c:377
+#: builtin/add.c:376
msgid "record only the fact that the path will be added later"
msgstr "rekam hanya fakta bahwa jalur akan ditambahkan nanti"
-#: builtin/add.c:378
+#: builtin/add.c:377
msgid "add changes from all tracked and untracked files"
msgstr "tambahkan perubahan dari semua berkas terlacak dan tak terlacak"
-#: builtin/add.c:381
+#: builtin/add.c:380
msgid "ignore paths removed in the working tree (same as --no-all)"
msgstr "abaikan jalur yang terhapus dari pohon kerja (sama dengan --no-all)"
-#: builtin/add.c:383
+#: builtin/add.c:382
msgid "don't add, only refresh the index"
msgstr "jangan tambahkan, hanya segarkan indeks"
-#: builtin/add.c:384
+#: builtin/add.c:383
msgid "just skip files which cannot be added because of errors"
msgstr "hanya lewatkan berkas yang tidak dapat ditambah karena error"
-#: builtin/add.c:385
+#: builtin/add.c:384
msgid "check if - even missing - files are ignored in dry run"
msgstr "periksa bahwa berkas yang - bahkan hilang - diabaikan dalam latihan"
-#: builtin/add.c:386 builtin/mv.c:128 builtin/rm.c:251
+#: builtin/add.c:385 builtin/mv.c:128 builtin/rm.c:251
msgid "allow updating entries outside of the sparse-checkout cone"
msgstr "perbolehkan perbarui entri di luar kerucut checkout tipis"
-#: builtin/add.c:388 builtin/update-index.c:1004
+#: builtin/add.c:387 builtin/update-index.c:1023
msgid "override the executable bit of the listed files"
msgstr "timpa bit yang dapat dieksekusi dari berkas terdaftar"
-#: builtin/add.c:390
+#: builtin/add.c:389
msgid "warn when adding an embedded repository"
msgstr "peringatkan ketika menambahkan repositori tertanam"
-#: builtin/add.c:392
-msgid "backend for `git stash -p`"
-msgstr "tulang belakang untuk `git stash -p`"
-
-#: builtin/add.c:410
+#: builtin/add.c:407
#, c-format
msgid ""
"You've added another git repository inside your current repository.\n"
@@ -10177,12 +10561,12 @@ msgstr ""
"\n"
"Lihat \"git help submodule\" untuk selengkapnya."
-#: builtin/add.c:439
+#: builtin/add.c:436
#, c-format
msgid "adding embedded git repository: %s"
msgstr "menambahkan repositori git tertanam: %s"
-#: builtin/add.c:459
+#: builtin/add.c:456
msgid ""
"Use -f if you really want to add them.\n"
"Turn this message off by running\n"
@@ -10192,27 +10576,27 @@ msgstr ""
"Matikan pesan ini dengan menjalankan\n"
"\"git config advice.addIgnoredFile false\""
-#: builtin/add.c:474
+#: builtin/add.c:471
msgid "adding files failed"
msgstr "gagal menambahkan berkas"
-#: builtin/add.c:548
+#: builtin/add.c:534
#, c-format
msgid "--chmod param '%s' must be either -x or +x"
msgstr "--chmod param '%s' harus berupa -x atau +x"
-#: builtin/add.c:569 builtin/checkout.c:1751 builtin/commit.c:364
-#: builtin/reset.c:429 builtin/rm.c:275 builtin/stash.c:1713
+#: builtin/add.c:555 builtin/checkout.c:1770 builtin/commit.c:365
+#: builtin/reset.c:436 builtin/rm.c:275 builtin/stash.c:1702
#, c-format
msgid "'%s' and pathspec arguments cannot be used together"
msgstr "'%s' dan argumen spek jalur tidak dapat digunakan bersamaan"
-#: builtin/add.c:580
+#: builtin/add.c:566
#, c-format
msgid "Nothing specified, nothing added.\n"
msgstr "Tidak ada yang disebutkan, tidak ada yang ditambahkan.\n"
-#: builtin/add.c:582
+#: builtin/add.c:568
msgid ""
"Maybe you wanted to say 'git add .'?\n"
"Turn this message off by running\n"
@@ -10222,121 +10606,116 @@ msgstr ""
"Matikan pesan ini dengan menjalankan\n"
"\"git config advice.addEmptyPathspec false\""
-#: builtin/am.c:202
-#, c-format
-msgid "Invalid value for --empty: %s"
-msgstr "Nilai tidak valid untuk --empty: %s"
-
-#: builtin/am.c:392
+#: builtin/am.c:393
msgid "could not parse author script"
msgstr "tidak dapat mengurai skrip pengarang"
-#: builtin/am.c:482
+#: builtin/am.c:483
#, c-format
msgid "'%s' was deleted by the applypatch-msg hook"
msgstr "'%s' dihapus oleh kail applypatch-msg"
-#: builtin/am.c:524
+#: builtin/am.c:525
#, c-format
msgid "Malformed input line: '%s'."
msgstr "Baris masukan salah format: '%s'."
-#: builtin/am.c:562
+#: builtin/am.c:563
#, c-format
msgid "Failed to copy notes from '%s' to '%s'"
msgstr "Gagal menyalin catatan dari '%s' ke '%s'"
-#: builtin/am.c:588
+#: builtin/am.c:589
msgid "fseek failed"
msgstr "fseek gagal"
-#: builtin/am.c:776
+#: builtin/am.c:777
#, c-format
msgid "could not parse patch '%s'"
msgstr "tidak dapat mengurai tambalan '%s'"
-#: builtin/am.c:841
+#: builtin/am.c:842
msgid "Only one StGIT patch series can be applied at once"
msgstr "Hanya satu rangkaian tambalan StGIT yang bisa diterapkan sekaligus"
-#: builtin/am.c:889
+#: builtin/am.c:890
msgid "invalid timestamp"
msgstr "stempel waktu tidak valid"
-#: builtin/am.c:894 builtin/am.c:906
+#: builtin/am.c:895 builtin/am.c:907
msgid "invalid Date line"
msgstr "baris Date tidak valid"
-#: builtin/am.c:901
+#: builtin/am.c:902
msgid "invalid timezone offset"
msgstr "offset zona waktu tidak valid"
-#: builtin/am.c:994
+#: builtin/am.c:995
msgid "Patch format detection failed."
msgstr "Pendeteksian format tambalan gagal."
-#: builtin/am.c:999 builtin/clone.c:300
+#: builtin/am.c:1000 builtin/clone.c:306
#, c-format
msgid "failed to create directory '%s'"
msgstr "gagal membuat direktori '%s'"
-#: builtin/am.c:1004
+#: builtin/am.c:1005
msgid "Failed to split patches."
msgstr "Gagal memecah tambalan."
-#: builtin/am.c:1153
+#: builtin/am.c:1154
#, c-format
msgid "When you have resolved this problem, run \"%s --continue\"."
msgstr "Saat Anda sudah menyelesaikan masalah ini, jalankan \"%s --continue\"."
-#: builtin/am.c:1154
+#: builtin/am.c:1155
#, c-format
msgid "If you prefer to skip this patch, run \"%s --skip\" instead."
msgstr ""
"Jika Anda lebih suka melewati tambalan ini, jalankan \"%s --skip\" sebagai "
"gantinya."
-#: builtin/am.c:1159
+#: builtin/am.c:1160
#, c-format
msgid "To record the empty patch as an empty commit, run \"%s --allow-empty\"."
msgstr ""
"Untuk merekam tambalan kosong sebagai komit kosong, jalankan \"%s --allow-"
"empty\"."
-#: builtin/am.c:1161
+#: builtin/am.c:1162
#, c-format
msgid "To restore the original branch and stop patching, run \"%s --abort\"."
msgstr ""
"Untuk mengembalikan cabang yang asli dan berhenti menambal, jalankan \"%s --"
"abort\""
-#: builtin/am.c:1256
+#: builtin/am.c:1257
msgid "Patch sent with format=flowed; space at the end of lines might be lost."
msgstr ""
"Tambalan dikirimkan dengan format=flowed; spasi pada akhir baris mungkin "
"hilang."
-#: builtin/am.c:1344
+#: builtin/am.c:1345
#, c-format
msgid "missing author line in commit %s"
msgstr "baris pengarang hilang dalam komit %s"
-#: builtin/am.c:1347
+#: builtin/am.c:1348
#, c-format
msgid "invalid ident line: %.*s"
msgstr "baris identitas tidak valid: %.*s"
-#: builtin/am.c:1566
+#: builtin/am.c:1567
msgid "Repository lacks necessary blobs to fall back on 3-way merge."
msgstr ""
"Repositori kekurangan blob yang diperlukan untuk mundur ke penggabungan 3 "
"arah."
-#: builtin/am.c:1568
+#: builtin/am.c:1569
msgid "Using index info to reconstruct a base tree..."
msgstr "Menggunakan info indeks untuk membangun ulang sebuah pohon dasar..."
-#: builtin/am.c:1587
+#: builtin/am.c:1588
msgid ""
"Did you hand edit your patch?\n"
"It does not apply to blobs recorded in its index."
@@ -10344,24 +10723,24 @@ msgstr ""
"Apakah Anda menyunting tambalan Anda?\n"
"Itu tidak diterapkan ke blob yang direkam dalam indeksnya."
-#: builtin/am.c:1593
+#: builtin/am.c:1594
msgid "Falling back to patching base and 3-way merge..."
msgstr "Mundur ke penambalan dasar dan penggabungan 3 arah..."
-#: builtin/am.c:1619
+#: builtin/am.c:1620
msgid "Failed to merge in the changes."
msgstr "Gagal menggabungkan perubahan."
-#: builtin/am.c:1651
+#: builtin/am.c:1652
msgid "applying to an empty history"
msgstr "menerapkan ke sebuah riwayat kosong"
-#: builtin/am.c:1703 builtin/am.c:1707
+#: builtin/am.c:1704 builtin/am.c:1708
#, c-format
msgid "cannot resume: %s does not exist."
msgstr "tidak dapat melanjutkan: %s tidak ada."
-#: builtin/am.c:1725
+#: builtin/am.c:1726
msgid "Commit Body is:"
msgstr "Badan komit adalah:"
@@ -10369,59 +10748,59 @@ msgstr "Badan komit adalah:"
#. in your translation. The program will only accept English
#. input at this point.
#.
-#: builtin/am.c:1735
+#: builtin/am.c:1736
#, c-format
msgid "Apply? [y]es/[n]o/[e]dit/[v]iew patch/[a]ccept all: "
msgstr ""
"Terapkan? [y]a/[n] tidak/[e] sunting/[v] lihat tambalan/terim[a] semua: "
-#: builtin/am.c:1781 builtin/commit.c:409
+#: builtin/am.c:1782 builtin/commit.c:410
msgid "unable to write index file"
msgstr "tidak dapat menulis berkas indeks"
-#: builtin/am.c:1785
+#: builtin/am.c:1786
#, c-format
msgid "Dirty index: cannot apply patches (dirty: %s)"
msgstr "Indeks kotor: tidak dapat menerapkan tambalan (kotor: %s)"
-#: builtin/am.c:1827
+#: builtin/am.c:1828
#, c-format
msgid "Skipping: %.*s"
msgstr "Melewatkan: %.*s"
-#: builtin/am.c:1832
+#: builtin/am.c:1833
#, c-format
msgid "Creating an empty commit: %.*s"
msgstr "Membuat sebuah komit kosong: %.*s"
-#: builtin/am.c:1836
+#: builtin/am.c:1837
msgid "Patch is empty."
msgstr "Tambalan kosong."
-#: builtin/am.c:1847 builtin/am.c:1916
+#: builtin/am.c:1848 builtin/am.c:1917
#, c-format
msgid "Applying: %.*s"
msgstr "Menerapkan: %.*s"
-#: builtin/am.c:1864
+#: builtin/am.c:1865
msgid "No changes -- Patch already applied."
msgstr "Tidak ada perubahan -- tambalan sudah diterapkan"
-#: builtin/am.c:1870
+#: builtin/am.c:1871
#, c-format
msgid "Patch failed at %s %.*s"
msgstr "Penambalan gagal pada %s %.*s"
-#: builtin/am.c:1874
+#: builtin/am.c:1875
msgid "Use 'git am --show-current-patch=diff' to see the failed patch"
msgstr ""
"Gunakan 'git am --show-current-patch=diff' untuk melihat tambalan yang gagal"
-#: builtin/am.c:1920
+#: builtin/am.c:1921
msgid "No changes - recorded it as an empty commit."
msgstr "Tidak ada perubahan - direkam sebagai komit kosong."
-#: builtin/am.c:1922
+#: builtin/am.c:1923
msgid ""
"No changes - did you forget to use 'git add'?\n"
"If there is nothing left to stage, chances are that something else\n"
@@ -10431,7 +10810,7 @@ msgstr ""
"Jika tidak ada lagi yang diterapkan, sepertinya sesuatu yang lain sudah \n"
"memasukkan perubahan yang sama; mungkin Anda ingin melewatkan tambalan ini."
-#: builtin/am.c:1930
+#: builtin/am.c:1931
msgid ""
"You still have unmerged paths in your index.\n"
"You should 'git add' each file with resolved conflicts to mark them as "
@@ -10444,17 +10823,17 @@ msgstr ""
"Anda mungkin jalankan `git rm` pada berkas untuk menerima \"penghapusan oleh "
"mereka\" untuk itu."
-#: builtin/am.c:2038 builtin/am.c:2042 builtin/am.c:2054 builtin/reset.c:448
-#: builtin/reset.c:456
+#: builtin/am.c:2039 builtin/am.c:2043 builtin/am.c:2055 builtin/reset.c:455
+#: builtin/reset.c:463
#, c-format
msgid "Could not parse object '%s'."
msgstr "Tidak dapat mengurai objek '%s'."
-#: builtin/am.c:2090 builtin/am.c:2166
+#: builtin/am.c:2091 builtin/am.c:2167
msgid "failed to clean index"
msgstr "gagal membersihkan indeks"
-#: builtin/am.c:2134
+#: builtin/am.c:2135
msgid ""
"You seem to have moved HEAD since the last 'am' failure.\n"
"Not rewinding to ORIG_HEAD"
@@ -10462,168 +10841,159 @@ msgstr ""
"Sepertinya Anda telah memindahkan HEAD sejak kegagalan 'am' terakhir.\n"
"Tidak memutar ulang ke ORIG_HEAD"
-#: builtin/am.c:2242
-#, c-format
-msgid "Invalid value for --patch-format: %s"
-msgstr "Nilai tidak valid untuk --patch-format: %s"
-
-#: builtin/am.c:2285
-#, c-format
-msgid "Invalid value for --show-current-patch: %s"
-msgstr "Nilai tidak valid untuk --show-current-patch: %s"
-
-#: builtin/am.c:2289
+#: builtin/am.c:2292
#, c-format
msgid "options '%s=%s' and '%s=%s' cannot be used together"
msgstr "Opsi '%s=%s' dan '%s=%s' tidak dapat digunakan bersamaan"
-#: builtin/am.c:2320
+#: builtin/am.c:2323
msgid "git am [<options>] [(<mbox> | <Maildir>)...]"
msgstr "git am [<opsi>] [(<mbox> | <Maildir>)...]"
-#: builtin/am.c:2321
+#: builtin/am.c:2324
msgid "git am [<options>] (--continue | --skip | --abort)"
msgstr "git am [<opsi>] (--continue | --skip | --abort)"
-#: builtin/am.c:2327
+#: builtin/am.c:2330
msgid "run interactively"
msgstr "jalankan secara interaktif"
-#: builtin/am.c:2329
+#: builtin/am.c:2332
msgid "historical option -- no-op"
msgstr "opsi bersejarah -- no-op"
-#: builtin/am.c:2331
+#: builtin/am.c:2334
msgid "allow fall back on 3way merging if needed"
msgstr "perbolehkan mundur ke penggabungan 3 arah jika diperlukan"
-#: builtin/am.c:2332 builtin/init-db.c:547 builtin/prune-packed.c:16
-#: builtin/repack.c:642 builtin/stash.c:962
+#: builtin/am.c:2335 builtin/init-db.c:547 builtin/prune-packed.c:16
+#: builtin/repack.c:646 builtin/stash.c:946
msgid "be quiet"
msgstr "jadi senyap"
-#: builtin/am.c:2334
+#: builtin/am.c:2337
msgid "add a Signed-off-by trailer to the commit message"
msgstr "tambahkan trailer Signed-off-by kepada pesan komit"
-#: builtin/am.c:2337
+#: builtin/am.c:2340
msgid "recode into utf8 (default)"
msgstr "koding ulang ke dalam utf8 (asali)"
-#: builtin/am.c:2339
+#: builtin/am.c:2342
msgid "pass -k flag to git-mailinfo"
msgstr "lewatkan opsi -k ke git-mailinfo"
-#: builtin/am.c:2341
+#: builtin/am.c:2344
msgid "pass -b flag to git-mailinfo"
msgstr "lewatkan opsi -b ke git-mailinfo"
-#: builtin/am.c:2343
+#: builtin/am.c:2346
msgid "pass -m flag to git-mailinfo"
msgstr "lewatkan opsi -m ke git-mailinfo"
-#: builtin/am.c:2345
+#: builtin/am.c:2348
msgid "pass --keep-cr flag to git-mailsplit for mbox format"
msgstr "lewatkan opsi --keep-cr ke git-mailsplit untuk format mbox"
-#: builtin/am.c:2348
+#: builtin/am.c:2351
msgid "do not pass --keep-cr flag to git-mailsplit independent of am.keepcr"
msgstr ""
"jangan lewatkan opsi --keep-cr ke git-mailsplit tak bergantung pada am.keepcr"
-#: builtin/am.c:2351
+#: builtin/am.c:2354
msgid "strip everything before a scissors line"
msgstr "copot semuanya sebelum garis gunting"
-#: builtin/am.c:2353
+#: builtin/am.c:2356
msgid "pass it through git-mailinfo"
msgstr "lewatkannya melalui git-mailinfo"
-#: builtin/am.c:2356 builtin/am.c:2359 builtin/am.c:2362 builtin/am.c:2365
-#: builtin/am.c:2368 builtin/am.c:2371 builtin/am.c:2374 builtin/am.c:2377
-#: builtin/am.c:2383
+#: builtin/am.c:2359 builtin/am.c:2362 builtin/am.c:2365 builtin/am.c:2368
+#: builtin/am.c:2371 builtin/am.c:2374 builtin/am.c:2377 builtin/am.c:2380
+#: builtin/am.c:2386
msgid "pass it through git-apply"
msgstr "lewatkannya melalui git-apply"
-#: builtin/am.c:2373 builtin/commit.c:1515 builtin/fmt-merge-msg.c:18
-#: builtin/fmt-merge-msg.c:21 builtin/grep.c:919 builtin/merge.c:263
+#: builtin/am.c:2376 builtin/commit.c:1514 builtin/fmt-merge-msg.c:18
+#: builtin/fmt-merge-msg.c:21 builtin/grep.c:920 builtin/merge.c:263
#: builtin/pull.c:142 builtin/pull.c:204 builtin/pull.c:221
-#: builtin/rebase.c:1046 builtin/repack.c:653 builtin/repack.c:657
-#: builtin/repack.c:659 builtin/show-branch.c:649 builtin/show-ref.c:172
-#: builtin/tag.c:445 parse-options.h:154 parse-options.h:175
-#: parse-options.h:317
+#: builtin/rebase.c:1074 builtin/repack.c:657 builtin/repack.c:661
+#: builtin/repack.c:663 builtin/show-branch.c:650 builtin/show-ref.c:172
+#: builtin/tag.c:446 parse-options.h:159 parse-options.h:180
+#: parse-options.h:348
msgid "n"
msgstr "n"
-#: builtin/am.c:2379 builtin/branch.c:680 builtin/bugreport.c:109
-#: builtin/for-each-ref.c:41 builtin/replace.c:555 builtin/tag.c:479
-#: builtin/verify-tag.c:38
+#: builtin/am.c:2382 builtin/branch.c:695 builtin/bugreport.c:109
+#: builtin/cat-file.c:848 builtin/cat-file.c:852 builtin/cat-file.c:856
+#: builtin/for-each-ref.c:41 builtin/ls-tree.c:357 builtin/replace.c:555
+#: builtin/tag.c:480 builtin/verify-tag.c:38
msgid "format"
msgstr "format"
-#: builtin/am.c:2380
+#: builtin/am.c:2383
msgid "format the patch(es) are in"
msgstr "format tambalan yang ada di"
-#: builtin/am.c:2386
+#: builtin/am.c:2389
msgid "override error message when patch failure occurs"
msgstr "timpa pesan error ketika kegagalan penambalan terjadi"
-#: builtin/am.c:2388
+#: builtin/am.c:2391
msgid "continue applying patches after resolving a conflict"
msgstr "lanjutkan penerapan tambalan setelah menyelesaikan konflik"
-#: builtin/am.c:2391
+#: builtin/am.c:2394
msgid "synonyms for --continue"
msgstr "sinonim untuk --continue"
-#: builtin/am.c:2394
+#: builtin/am.c:2397
msgid "skip the current patch"
msgstr "lewati tambalan saat ini"
-#: builtin/am.c:2397
+#: builtin/am.c:2400
msgid "restore the original branch and abort the patching operation"
msgstr "kembalikan cabang asli dan batalkan operasi penambalan"
-#: builtin/am.c:2400
+#: builtin/am.c:2403
msgid "abort the patching operation but keep HEAD where it is"
msgstr "batalkan operasi penambalan tetapi simpan HEAD dimanapun itu"
-#: builtin/am.c:2404
+#: builtin/am.c:2407
msgid "show the patch being applied"
msgstr "perlihatkan tambalan yang diterapkan"
-#: builtin/am.c:2408
+#: builtin/am.c:2411
msgid "record the empty patch as an empty commit"
msgstr "rekam tambalan kosong sebagai komit kosong"
-#: builtin/am.c:2412
+#: builtin/am.c:2415
msgid "lie about committer date"
msgstr "berbohong soal tanggal pengkomit"
-#: builtin/am.c:2414
+#: builtin/am.c:2417
msgid "use current timestamp for author date"
msgstr "gunakan stempel waktu saat ini untuk tanggal pengarang"
-#: builtin/am.c:2416 builtin/commit-tree.c:118 builtin/commit.c:1643
-#: builtin/merge.c:302 builtin/pull.c:179 builtin/rebase.c:1099
-#: builtin/revert.c:117 builtin/tag.c:460
+#: builtin/am.c:2419 builtin/commit-tree.c:118 builtin/commit.c:1642
+#: builtin/merge.c:302 builtin/pull.c:179 builtin/rebase.c:1127
+#: builtin/revert.c:117 builtin/tag.c:461
msgid "key-id"
msgstr "key-id"
-#: builtin/am.c:2417 builtin/rebase.c:1100
+#: builtin/am.c:2420 builtin/rebase.c:1128
msgid "GPG-sign commits"
msgstr "tandatangani komit dengan GPG"
-#: builtin/am.c:2420
+#: builtin/am.c:2423
msgid "how to handle empty patches"
msgstr "bagaimana cara menangani tambalan kosong"
-#: builtin/am.c:2423
+#: builtin/am.c:2426
msgid "(internal use for git-rebase)"
msgstr "(penggunaan internal untuk git-rebase)"
-#: builtin/am.c:2441
+#: builtin/am.c:2444
msgid ""
"The -b/--binary option has been a no-op for long time, and\n"
"it will be removed. Please do not use it anymore."
@@ -10631,17 +11001,17 @@ msgstr ""
"Opsi -b/--binary telah menjadi no-op untuk waktu yang lama, dan\n"
"itu akan dihapus. Mohon jangan gunakan itu lagi."
-#: builtin/am.c:2448
+#: builtin/am.c:2451
msgid "failed to read the index"
msgstr "gagal membaca indeks"
-#: builtin/am.c:2463
+#: builtin/am.c:2466
#, c-format
msgid "previous rebase directory %s still exists but mbox given."
msgstr ""
"direktori pendasaran ulang sebelumnya %s masih ada tapi mbox diberikan."
-#: builtin/am.c:2487
+#: builtin/am.c:2490
#, c-format
msgid ""
"Stray %s directory found.\n"
@@ -10650,11 +11020,11 @@ msgstr ""
"Direktori menyimpang %s ditemukan.\n"
"Gunakan \"git am --abort\" untuk menghapusnya."
-#: builtin/am.c:2493
+#: builtin/am.c:2496
msgid "Resolve operation not in progress, we are not resuming."
msgstr "Operasi penguraian tidak berjalan, kami tidak melanjutkan."
-#: builtin/am.c:2503
+#: builtin/am.c:2506
msgid "interactive mode requires patches on the command line"
msgstr "mode interaktif butuh tambalan pada baris perintah"
@@ -10691,14 +11061,6 @@ msgstr "git archive: sebuah bilasan diharapkan"
msgid "git bisect--helper --bisect-reset [<commit>]"
msgstr "git bisect--helper --bisect-reset [<komit>]"
-#: builtin/bisect--helper.c:25
-msgid ""
-"git bisect--helper --bisect-terms [--term-good | --term-old | --term-bad | --"
-"term-new]"
-msgstr ""
-"git bisect--helper --bisect-terms [--term-good | --term-old | --term-bad | --"
-"term-new]"
-
#: builtin/bisect--helper.c:26
msgid ""
"git bisect--helper --bisect-start [--term-{new,bad}=<term> --term-{old,good}"
@@ -10709,10 +11071,6 @@ msgstr ""
"good}=<istilah>] [--no-checkout] [--first-parent] [<jelek> [<bagus>...]] "
"[--] [<jalur>...]"
-#: builtin/bisect--helper.c:28
-msgid "git bisect--helper --bisect-next"
-msgstr "git bisect--helper --bisect-next"
-
#: builtin/bisect--helper.c:29
msgid "git bisect--helper --bisect-state (bad|new) [<rev>]"
msgstr "git bisect--helper --bisect-state (bad|new) [<revisi>]"
@@ -10729,10 +11087,6 @@ msgstr "git bisect--helper --bisect-replay <nama berkas>"
msgid "git bisect--helper --bisect-skip [(<rev>|<range>)...]"
msgstr "git bisect--helper --bisect-skip [(<revisi>|<rentang>)...]"
-#: builtin/bisect--helper.c:33
-msgid "git bisect--helper --bisect-visualize"
-msgstr "git bisect--helper --bisect-visualize"
-
#: builtin/bisect--helper.c:34
msgid "git bisect--helper --bisect-run <cmd>..."
msgstr "git bisect--helper --bisect-run <perintah>..."
@@ -10953,40 +11307,50 @@ msgstr "'%s'?? Anda bilang tentang apa?"
msgid "cannot read file '%s' for replaying"
msgstr "tidak dapat membuka berkas '%s' untuk memainkan ulang"
-#: builtin/bisect--helper.c:1107 builtin/bisect--helper.c:1274
+#: builtin/bisect--helper.c:1120 builtin/bisect--helper.c:1152
+#, c-format
+msgid "running %s\n"
+msgstr "menjalankan %s\n"
+
+#: builtin/bisect--helper.c:1145 builtin/bisect--helper.c:1335
msgid "bisect run failed: no command provided."
msgstr "bisect run gagal: tidak ada perintah yang diberikan"
-#: builtin/bisect--helper.c:1116
+#: builtin/bisect--helper.c:1166
#, c-format
-msgid "running %s\n"
-msgstr "menjalankan %s\n"
+msgid "unable to verify '%s' on good revision"
+msgstr "tidak dapat memverifikasi '%s' pada revisi bagus"
-#: builtin/bisect--helper.c:1120
+#: builtin/bisect--helper.c:1172
+#, c-format
+msgid "bogus exit code %d for good revision"
+msgstr "kode keluar gadungan %d untuk revisi bagu"
+
+#: builtin/bisect--helper.c:1180
#, c-format
msgid "bisect run failed: exit code %d from '%s' is < 0 or >= 128"
msgstr "bisect run gagal: kode keluar %d dari '%s' < 0 atau >= 128"
-#: builtin/bisect--helper.c:1136
+#: builtin/bisect--helper.c:1195
#, c-format
msgid "cannot open file '%s' for writing"
msgstr "tidak dapat membuka berkas '%s' untuk ditulis"
-#: builtin/bisect--helper.c:1152
+#: builtin/bisect--helper.c:1213
msgid "bisect run cannot continue any more"
msgstr "bisect run tidak dapat dilanjutkan lagi"
-#: builtin/bisect--helper.c:1154
+#: builtin/bisect--helper.c:1215
#, c-format
msgid "bisect run success"
msgstr "bisect run sukses"
-#: builtin/bisect--helper.c:1157
+#: builtin/bisect--helper.c:1218
#, c-format
msgid "bisect found first bad commit"
msgstr "pembagian dua menemukan komit jelek pertama"
-#: builtin/bisect--helper.c:1160
+#: builtin/bisect--helper.c:1221
#, c-format
msgid ""
"bisect run failed: 'git bisect--helper --bisect-state %s' exited with error "
@@ -10995,71 +11359,71 @@ msgstr ""
"bisect run gagal: 'git bisect--helper --bisect-state %s' keluar dengan kode "
"keluar %d"
-#: builtin/bisect--helper.c:1192
+#: builtin/bisect--helper.c:1253
msgid "reset the bisection state"
msgstr "setel ulang keadaan pembagian dua"
-#: builtin/bisect--helper.c:1194
+#: builtin/bisect--helper.c:1255
msgid "check whether bad or good terms exist"
msgstr "periksa apakah ada istilah jelek atau bagus"
-#: builtin/bisect--helper.c:1196
+#: builtin/bisect--helper.c:1257
msgid "print out the bisect terms"
msgstr "cetak istilah pembagian dua"
-#: builtin/bisect--helper.c:1198
+#: builtin/bisect--helper.c:1259
msgid "start the bisect session"
msgstr "mulai sesi pembagian dua"
-#: builtin/bisect--helper.c:1200
+#: builtin/bisect--helper.c:1261
msgid "find the next bisection commit"
msgstr "temukan komit pembagian dua berikutnya"
-#: builtin/bisect--helper.c:1202
+#: builtin/bisect--helper.c:1263
msgid "mark the state of ref (or refs)"
msgstr "tandai keadaan referensi"
-#: builtin/bisect--helper.c:1204
+#: builtin/bisect--helper.c:1265
msgid "list the bisection steps so far"
msgstr "daftar langkah pembagian dua sejauh ini"
-#: builtin/bisect--helper.c:1206
+#: builtin/bisect--helper.c:1267
msgid "replay the bisection process from the given file"
msgstr "mainkan ulang proses pembagian dua dari berkas yang diberikan"
-#: builtin/bisect--helper.c:1208
+#: builtin/bisect--helper.c:1269
msgid "skip some commits for checkout"
msgstr "lewati beberapa komit untuk checkout"
-#: builtin/bisect--helper.c:1210
+#: builtin/bisect--helper.c:1271
msgid "visualize the bisection"
msgstr "visualisasikan pembagian dua"
-#: builtin/bisect--helper.c:1212
-msgid "use <cmd>... to automatically bisect."
+#: builtin/bisect--helper.c:1273
+msgid "use <cmd>... to automatically bisect"
msgstr "gunakan <cmd>... untuk bagi dua otomatis."
-#: builtin/bisect--helper.c:1214
+#: builtin/bisect--helper.c:1275
msgid "no log for BISECT_WRITE"
msgstr "tidak ada log untuk BISECT_WRITE"
-#: builtin/bisect--helper.c:1229
+#: builtin/bisect--helper.c:1290
msgid "--bisect-reset requires either no argument or a commit"
msgstr "--bisect-reset butuh baik tanpa argumen atau sebuah komit"
-#: builtin/bisect--helper.c:1234
+#: builtin/bisect--helper.c:1295
msgid "--bisect-terms requires 0 or 1 argument"
msgstr "--bisect-terms butuh 0 atau 1 argumen"
-#: builtin/bisect--helper.c:1243
+#: builtin/bisect--helper.c:1304
msgid "--bisect-next requires 0 arguments"
msgstr "--bisect-next butuh 0 argumen"
-#: builtin/bisect--helper.c:1254
+#: builtin/bisect--helper.c:1315
msgid "--bisect-log requires 0 arguments"
msgstr "--bisect-log butuh 0 argumen"
-#: builtin/bisect--helper.c:1259
+#: builtin/bisect--helper.c:1320
msgid "no logfile given"
msgstr "tidak ada berkas log yang diberikan"
@@ -11080,142 +11444,133 @@ msgstr "mengharapkan warna: %s"
msgid "must end with a color"
msgstr "harus berakhir dengan warna"
-#: builtin/blame.c:724
-#, c-format
-msgid "invalid color '%s' in color.blame.repeatedLines"
-msgstr "warna tidak valid '%s' pada color.blame.repeatedLines"
-
-#: builtin/blame.c:742
-msgid "invalid value for blame.coloring"
-msgstr "nilai tidak valid untuk blame.coloring"
-
-#: builtin/blame.c:841
+#: builtin/blame.c:842
#, c-format
msgid "cannot find revision %s to ignore"
msgstr "tidak dapat menemukan revisi %s untuk diabaikan"
-#: builtin/blame.c:863
+#: builtin/blame.c:864
msgid "show blame entries as we find them, incrementally"
msgstr "perlihatkan entri penyalahan seperti yang kami temukan secara bertahap"
-#: builtin/blame.c:864
+#: builtin/blame.c:865
msgid "do not show object names of boundary commits (Default: off)"
msgstr "jangan perlihatkan nama objek dari komit perbatasan (asali: off)"
-#: builtin/blame.c:865
+#: builtin/blame.c:866
msgid "do not treat root commits as boundaries (Default: off)"
msgstr "jangan perlakukan komit akar sebagai perbatasan (asali: off)"
-#: builtin/blame.c:866
+#: builtin/blame.c:867
msgid "show work cost statistics"
msgstr "perlihatkan statistik biaya usaha"
-#: builtin/blame.c:867 builtin/checkout.c:1536 builtin/clone.c:94
-#: builtin/commit-graph.c:75 builtin/commit-graph.c:228 builtin/fetch.c:180
+#: builtin/blame.c:868 builtin/checkout.c:1554 builtin/clone.c:98
+#: builtin/commit-graph.c:75 builtin/commit-graph.c:228 builtin/fetch.c:181
#: builtin/merge.c:301 builtin/multi-pack-index.c:103
#: builtin/multi-pack-index.c:154 builtin/multi-pack-index.c:180
#: builtin/multi-pack-index.c:208 builtin/pull.c:120 builtin/push.c:566
-#: builtin/send-pack.c:202
+#: builtin/remote.c:683 builtin/send-pack.c:202
msgid "force progress reporting"
msgstr "paksa laporkan perkembangan"
-#: builtin/blame.c:868
+#: builtin/blame.c:869
msgid "show output score for blame entries"
msgstr "perlihatkan nilai keluaran untuk entri penyalahan"
-#: builtin/blame.c:869
+#: builtin/blame.c:870
msgid "show original filename (Default: auto)"
msgstr "perlihatkan nama berkas asli (asali: auto)"
-#: builtin/blame.c:870
+#: builtin/blame.c:871
msgid "show original linenumber (Default: off)"
msgstr "perlihatkan nomor baris asli (asali: off)"
-#: builtin/blame.c:871
+#: builtin/blame.c:872
msgid "show in a format designed for machine consumption"
msgstr "perlihatkan dalam format yang didesain untuk konsumsi mesin"
-#: builtin/blame.c:872
+#: builtin/blame.c:873
msgid "show porcelain format with per-line commit information"
msgstr "perlihatkan format porselen dengan informasi komit per baris"
-#: builtin/blame.c:873
+#: builtin/blame.c:874
msgid "use the same output mode as git-annotate (Default: off)"
msgstr "gunakan mode keluaran yang sama dengan git-annotate (asali: off)"
-#: builtin/blame.c:874
+#: builtin/blame.c:875
msgid "show raw timestamp (Default: off)"
msgstr "perlihatkan stempel waktu mentah (asali: off)"
-#: builtin/blame.c:875
+#: builtin/blame.c:876
msgid "show long commit SHA1 (Default: off)"
msgstr "perlihatkan SHA1 komit panjang (asali: off)"
-#: builtin/blame.c:876
+#: builtin/blame.c:877
msgid "suppress author name and timestamp (Default: off)"
msgstr "sembunyikan nama pengarang dan stempel waktu (asali: off)"
-#: builtin/blame.c:877
+#: builtin/blame.c:878
msgid "show author email instead of name (Default: off)"
msgstr "perlihatkan email pengarang daripada nama (asali: off)"
-#: builtin/blame.c:878
+#: builtin/blame.c:879
msgid "ignore whitespace differences"
msgstr "abaikan perbedaan spasi putih"
-#: builtin/blame.c:879 builtin/log.c:1838
+#: builtin/blame.c:880 builtin/log.c:1857
msgid "rev"
msgstr "revisi"
-#: builtin/blame.c:879
+#: builtin/blame.c:880
msgid "ignore <rev> when blaming"
msgstr "abaikan <revisi> ketika menyalahkan"
-#: builtin/blame.c:880
+#: builtin/blame.c:881
msgid "ignore revisions from <file>"
msgstr "abaikan revisi dari <berkas>"
-#: builtin/blame.c:881
+#: builtin/blame.c:882
msgid "color redundant metadata from previous line differently"
msgstr "metadata warna berlebihan dari baris sebelumnya secara berbeda"
-#: builtin/blame.c:882
+#: builtin/blame.c:883
msgid "color lines by age"
msgstr "warnai baris oleh umur"
-#: builtin/blame.c:883
+#: builtin/blame.c:884
msgid "spend extra cycles to find better match"
msgstr "perlihatkan siklus ekstra untuk menemukan cocokan yang lebih baik"
-#: builtin/blame.c:884
+#: builtin/blame.c:885
msgid "use revisions from <file> instead of calling git-rev-list"
msgstr "gunakan revisi dari <berkas> daripada memanggil git-rev-list"
-#: builtin/blame.c:885
+#: builtin/blame.c:886
msgid "use <file>'s contents as the final image"
msgstr "gunakan konten <berkas> sebagai citra final"
-#: builtin/blame.c:886 builtin/blame.c:887
+#: builtin/blame.c:887 builtin/blame.c:888
msgid "score"
msgstr "nilai"
-#: builtin/blame.c:886
+#: builtin/blame.c:887
msgid "find line copies within and across files"
msgstr "temukan salinan baris di dalam dan di seluruh berkas"
-#: builtin/blame.c:887
+#: builtin/blame.c:888
msgid "find line movements within and across files"
msgstr "temukan gerakan baris di dalam dan di seluruh baris"
-#: builtin/blame.c:888
+#: builtin/blame.c:889
msgid "range"
msgstr "rentang"
-#: builtin/blame.c:889
+#: builtin/blame.c:890
msgid "process only line range <start>,<end> or function :<funcname>"
msgstr "hanya proses rentang baris <awal>,<akhir> atau fungsi :<nama fungsi>"
-#: builtin/blame.c:947
+#: builtin/blame.c:949
msgid "--progress can't be used with --incremental or porcelain formats"
msgstr ""
"--progress tidak dapat digunakan dengan --incremental atau format porselen"
@@ -11228,18 +11583,18 @@ msgstr ""
#. your language may need more or fewer display
#. columns.
#.
-#: builtin/blame.c:998
+#: builtin/blame.c:1000
msgid "4 years, 11 months ago"
msgstr "4 tahun, 11 bulan yang lalu"
-#: builtin/blame.c:1114
+#: builtin/blame.c:1116
#, c-format
msgid "file %s has only %lu line"
msgid_plural "file %s has only %lu lines"
msgstr[0] "berkas %s hanya punya %lu baris"
msgstr[1] "berkas %s hanya punya %lu baris"
-#: builtin/blame.c:1159
+#: builtin/blame.c:1161
msgid "Blaming lines"
msgstr "Menyalahkan baris"
@@ -11248,30 +11603,37 @@ msgid "git branch [<options>] [-r | -a] [--merged] [--no-merged]"
msgstr "git branch [<opsi>] [-r | -a] [--merged] [--no-merged]"
#: builtin/branch.c:30
-msgid "git branch [<options>] [-l] [-f] <branch-name> [<start-point>]"
-msgstr "git branch [<opsi>] [-l] [-f] <nama-cabang> [<titik-awal>]"
+msgid ""
+"git branch [<options>] [-f] [--recurse-submodules] <branch-name> [<start-"
+"point>]"
+msgstr ""
+"git branch [<opsi>] [-f] [--recurse-submodules] <nama-cabang> [<titik-awal>]"
#: builtin/branch.c:31
+msgid "git branch [<options>] [-l] [<pattern>...]"
+msgstr "git branch [<opsi>] [-l] [<pola>...]"
+
+#: builtin/branch.c:32
msgid "git branch [<options>] [-r] (-d | -D) <branch-name>..."
msgstr "git branch [<opsi> [-r] (-d | -D) <nama-cabang>...]"
-#: builtin/branch.c:32
+#: builtin/branch.c:33
msgid "git branch [<options>] (-m | -M) [<old-branch>] <new-branch>"
msgstr "git branch [<opsi>] (-m | -M) [<cabang-lama>] <cabang-baru>"
-#: builtin/branch.c:33
+#: builtin/branch.c:34
msgid "git branch [<options>] (-c | -C) [<old-branch>] <new-branch>"
msgstr "git branch [<opsi>] (-c | -C) [<cabang-lama>] <cabang-baru>"
-#: builtin/branch.c:34
+#: builtin/branch.c:35
msgid "git branch [<options>] [-r | -a] [--points-at]"
msgstr "git branch [<opsi>] [-r | -a] [--points-at]"
-#: builtin/branch.c:35
+#: builtin/branch.c:36
msgid "git branch [<options>] [-r | -a] [--format]"
msgstr "git branch [<opsi>] [-r | -a] [--format]"
-#: builtin/branch.c:153
+#: builtin/branch.c:165
#, c-format
msgid ""
"deleting branch '%s' that has been merged to\n"
@@ -11280,7 +11642,7 @@ msgstr ""
"menghapus cabang '%s' yang sudah digabungkan ke\n"
" '%s', tapi belum digabungkan ke HEAD."
-#: builtin/branch.c:157
+#: builtin/branch.c:169
#, c-format
msgid ""
"not deleting branch '%s' that is not yet merged to\n"
@@ -11289,12 +11651,12 @@ msgstr ""
"tidak menghapus cabang '%s' yang belum digabungkan ke\n"
" '%s', walaupun tergabung ke HEAD."
-#: builtin/branch.c:171
+#: builtin/branch.c:183
#, c-format
msgid "Couldn't look up commit object for '%s'"
msgstr "Tidak dapat mencari objek komit untuk '%s'"
-#: builtin/branch.c:175
+#: builtin/branch.c:187
#, c-format
msgid ""
"The branch '%s' is not fully merged.\n"
@@ -11303,111 +11665,111 @@ msgstr ""
"Cabang '%s' belum sepenuhnya tergabung.\n"
"Kalau Anda yakin ingin menghapus itu, jalankan 'git branch -D %s'."
-#: builtin/branch.c:188
+#: builtin/branch.c:200
msgid "Update of config-file failed"
msgstr "Pembaruan berkas konfigurasi gagal"
-#: builtin/branch.c:223
+#: builtin/branch.c:235
msgid "cannot use -a with -d"
msgstr "tidak dapat gunakan -a dengan -d"
-#: builtin/branch.c:230
+#: builtin/branch.c:242
msgid "Couldn't look up commit object for HEAD"
msgstr "Tidak dapat mencari objek komit untuk HEAD"
-#: builtin/branch.c:247
+#: builtin/branch.c:259
#, c-format
msgid "Cannot delete branch '%s' checked out at '%s'"
msgstr "Tidak dapat menghapus cabang '%s' yang ter-checkout pada '%s'"
-#: builtin/branch.c:262
+#: builtin/branch.c:274
#, c-format
msgid "remote-tracking branch '%s' not found."
msgstr "cabang pelacak remote '%s' tidak ditemukan."
-#: builtin/branch.c:263
+#: builtin/branch.c:275
#, c-format
msgid "branch '%s' not found."
msgstr "cabang '%s' tidak ditemukan."
-#: builtin/branch.c:294
+#: builtin/branch.c:306
#, c-format
msgid "Deleted remote-tracking branch %s (was %s).\n"
msgstr "Cabang pelacak remote %s (yaitu %s) dihapus.\n"
-#: builtin/branch.c:295
+#: builtin/branch.c:307
#, c-format
msgid "Deleted branch %s (was %s).\n"
msgstr "Cabang %s (yaitu %s) dihapus.\n"
-#: builtin/branch.c:445 builtin/tag.c:63
+#: builtin/branch.c:457 builtin/tag.c:64
msgid "unable to parse format string"
msgstr "tidak dapat menguraikan untai format"
-#: builtin/branch.c:476
+#: builtin/branch.c:488
msgid "could not resolve HEAD"
msgstr "tidak dapat menguraikan HEAD"
-#: builtin/branch.c:482
+#: builtin/branch.c:494
#, c-format
msgid "HEAD (%s) points outside of refs/heads/"
msgstr "HEAD (%s) merujuk diluar refs/heads/"
-#: builtin/branch.c:497
+#: builtin/branch.c:509
#, c-format
msgid "Branch %s is being rebased at %s"
msgstr "Cabang %s sedang didasarkan ulang pada %s"
-#: builtin/branch.c:501
+#: builtin/branch.c:513
#, c-format
msgid "Branch %s is being bisected at %s"
msgstr "Cabang %s sedang dibagi dua pada %s"
-#: builtin/branch.c:518
+#: builtin/branch.c:530
msgid "cannot copy the current branch while not on any."
msgstr "tidak dapat menyalin cabang saat ini ketika tidak ada."
-#: builtin/branch.c:520
+#: builtin/branch.c:532
msgid "cannot rename the current branch while not on any."
msgstr "tidak dapat mengganti nama cabang saat ini ketika tidak ada."
-#: builtin/branch.c:531
+#: builtin/branch.c:543
#, c-format
msgid "Invalid branch name: '%s'"
msgstr "Nama cabang tidak valid: '%s'"
-#: builtin/branch.c:560
+#: builtin/branch.c:572
msgid "Branch rename failed"
msgstr "Penggantian nama cabang gagal"
-#: builtin/branch.c:562
+#: builtin/branch.c:574
msgid "Branch copy failed"
msgstr "Penyalinan cabang gagal"
-#: builtin/branch.c:566
+#: builtin/branch.c:578
#, c-format
msgid "Created a copy of a misnamed branch '%s'"
msgstr "Salinan cabang salah nama '%s' dibuat"
-#: builtin/branch.c:569
+#: builtin/branch.c:581
#, c-format
msgid "Renamed a misnamed branch '%s' away"
msgstr "Cabang salah nama '%s' berganti nama"
-#: builtin/branch.c:575
+#: builtin/branch.c:587
#, c-format
msgid "Branch renamed to %s, but HEAD is not updated!"
msgstr "Cabang berganti nama ke %s, tapi HEAD tidak diperbarui!"
-#: builtin/branch.c:584
+#: builtin/branch.c:596
msgid "Branch is renamed, but update of config-file failed"
msgstr "Cabang berganti nama, tapi pembaruan berkas konfigurasi gagal"
-#: builtin/branch.c:586
+#: builtin/branch.c:598
msgid "Branch is copied, but update of config-file failed"
msgstr "Cabang disalin, tapi pembaruan berkas konfigurasi gagal"
-#: builtin/branch.c:602
+#: builtin/branch.c:614
#, c-format
msgid ""
"Please edit the description for the branch\n"
@@ -11418,176 +11780,193 @@ msgstr ""
" %s\n"
"Baris yang diawali dengan '%c' akan dicopot.\n"
-#: builtin/branch.c:637
+#: builtin/branch.c:651
msgid "Generic options"
msgstr "Opsi generik"
-#: builtin/branch.c:639
+#: builtin/branch.c:653
msgid "show hash and subject, give twice for upstream branch"
msgstr "perlihatkan hash dan subjek, berikan dua kali untuk cabang hulu"
-#: builtin/branch.c:640
+#: builtin/branch.c:654
msgid "suppress informational messages"
msgstr "sembunyikan pesan informasi"
-#: builtin/branch.c:642
+#: builtin/branch.c:656 builtin/checkout.c:1571
+#: builtin/submodule--helper.c:3077
msgid "set branch tracking configuration"
msgstr "setel konfigurasi pelacakan cabang"
-#: builtin/branch.c:645
+#: builtin/branch.c:659
msgid "do not use"
msgstr "jangan gunakan"
-#: builtin/branch.c:647
+#: builtin/branch.c:661
msgid "upstream"
msgstr "hulu"
-#: builtin/branch.c:647
+#: builtin/branch.c:661
msgid "change the upstream info"
msgstr "ubah info hulu"
-#: builtin/branch.c:648
+#: builtin/branch.c:662
msgid "unset the upstream info"
msgstr "batal-setel info hulu"
-#: builtin/branch.c:649
+#: builtin/branch.c:663
msgid "use colored output"
msgstr "gunakan keluaran berwarna"
-#: builtin/branch.c:650
+#: builtin/branch.c:664
msgid "act on remote-tracking branches"
msgstr "lakukan pada cabang pelacak remote"
-#: builtin/branch.c:652 builtin/branch.c:654
+#: builtin/branch.c:666 builtin/branch.c:668
msgid "print only branches that contain the commit"
msgstr "cetak hanya cabang yang berisi komit"
-#: builtin/branch.c:653 builtin/branch.c:655
+#: builtin/branch.c:667 builtin/branch.c:669
msgid "print only branches that don't contain the commit"
msgstr "cetak hanya cabang yang tak berisi komit"
-#: builtin/branch.c:658
+#: builtin/branch.c:672
msgid "Specific git-branch actions:"
msgstr "Aksi git-branch spesifik:"
-#: builtin/branch.c:659
+#: builtin/branch.c:673
msgid "list both remote-tracking and local branches"
msgstr "sebut baik cabang pelacak remote dan cabang lokal"
-#: builtin/branch.c:661
+#: builtin/branch.c:675
msgid "delete fully merged branch"
msgstr "hapus cabang yang tergabung sepenuhnya"
-#: builtin/branch.c:662
+#: builtin/branch.c:676
msgid "delete branch (even if not merged)"
msgstr "hapus cabang (walaupun tak tergabung)"
-#: builtin/branch.c:663
+#: builtin/branch.c:677
msgid "move/rename a branch and its reflog"
msgstr "pindah/ganti nama cabang dan reflog-nya"
-#: builtin/branch.c:664
+#: builtin/branch.c:678
msgid "move/rename a branch, even if target exists"
msgstr "pindah/ganti nama cabang, walaupun target ada"
-#: builtin/branch.c:665
+#: builtin/branch.c:679
msgid "copy a branch and its reflog"
msgstr "salin cabang dan reflog-nya"
-#: builtin/branch.c:666
+#: builtin/branch.c:680
msgid "copy a branch, even if target exists"
msgstr "salin cabang, walapun target ada"
-#: builtin/branch.c:667
+#: builtin/branch.c:681
msgid "list branch names"
msgstr "sebut nama cabang"
-#: builtin/branch.c:668
+#: builtin/branch.c:682
msgid "show current branch name"
msgstr "perlihatkan nama cabang saat ini"
-#: builtin/branch.c:669
+#: builtin/branch.c:683 builtin/submodule--helper.c:3075
msgid "create the branch's reflog"
msgstr "buat reflog cabang"
-#: builtin/branch.c:671
+#: builtin/branch.c:685
msgid "edit the description for the branch"
msgstr "sunting deskripsi cabang"
-#: builtin/branch.c:672
+#: builtin/branch.c:686
msgid "force creation, move/rename, deletion"
msgstr "paksa buat, pindah/ganti nama, hapus"
-#: builtin/branch.c:673
+#: builtin/branch.c:687
msgid "print only branches that are merged"
msgstr "cetak hanya cabang yang tergabung"
-#: builtin/branch.c:674
+#: builtin/branch.c:688
msgid "print only branches that are not merged"
msgstr "cetak hanya cabang yang tak tergabung"
-#: builtin/branch.c:675
+#: builtin/branch.c:689
msgid "list branches in columns"
msgstr "sebut cabang dalam kolom"
-#: builtin/branch.c:677 builtin/for-each-ref.c:45 builtin/notes.c:413
+#: builtin/branch.c:691 builtin/for-each-ref.c:45 builtin/notes.c:413
#: builtin/notes.c:416 builtin/notes.c:579 builtin/notes.c:582
-#: builtin/tag.c:475
+#: builtin/tag.c:476
msgid "object"
msgstr "objek"
-#: builtin/branch.c:678
+#: builtin/branch.c:692
msgid "print only branches of the object"
msgstr "cetak hanya cabang objek"
-#: builtin/branch.c:679 builtin/for-each-ref.c:51 builtin/tag.c:482
+#: builtin/branch.c:693 builtin/for-each-ref.c:51 builtin/tag.c:483
msgid "sorting and filtering are case insensitive"
msgstr "pengurutan dan penyaringan tak peka kapital"
-#: builtin/branch.c:680 builtin/for-each-ref.c:41 builtin/tag.c:480
-#: builtin/verify-tag.c:38
+#: builtin/branch.c:694 builtin/ls-files.c:667
+msgid "recurse through submodules"
+msgstr "rekursi melalui submodul"
+
+#: builtin/branch.c:695 builtin/for-each-ref.c:41 builtin/ls-tree.c:358
+#: builtin/tag.c:481 builtin/verify-tag.c:38
msgid "format to use for the output"
msgstr "format yang digunakan untuk keluaran"
-#: builtin/branch.c:703 builtin/clone.c:678
+#: builtin/branch.c:718 builtin/clone.c:684
msgid "HEAD not found below refs/heads!"
msgstr "HEAD tidak ditemukan di bawah refs/heads!"
-#: builtin/branch.c:742 builtin/branch.c:798 builtin/branch.c:807
+#: builtin/branch.c:739
+msgid ""
+"branch with --recurse-submodules can only be used if submodule."
+"propagateBranches is enabled"
+msgstr ""
+"cabang dengan --recurse-submodules hanya dapat digunakan jika submodule."
+"propagateBranches diaktifkan"
+
+#: builtin/branch.c:741
+msgid "--recurse-submodules can only be used to create branches"
+msgstr "--recurse-submodules hanya dapat digunakan untuk membuat cabang"
+
+#: builtin/branch.c:770 builtin/branch.c:826 builtin/branch.c:835
msgid "branch name required"
msgstr "nama cabang diperlukan"
-#: builtin/branch.c:774
+#: builtin/branch.c:802
msgid "Cannot give description to detached HEAD"
msgstr "Tidak dapat memberikan deskripsi ke HEAD terpisah"
-#: builtin/branch.c:779
+#: builtin/branch.c:807
msgid "cannot edit description of more than one branch"
msgstr "tidak dapat menyunting deskripsi lebih dari satu cabang"
-#: builtin/branch.c:786
+#: builtin/branch.c:814
#, c-format
msgid "No commit on branch '%s' yet."
msgstr "Belum ada komit pada cabang '%s'."
-#: builtin/branch.c:789
+#: builtin/branch.c:817
#, c-format
msgid "No branch named '%s'."
msgstr "Tidak ada cabang bernama '%s'."
-#: builtin/branch.c:804
+#: builtin/branch.c:832
msgid "too many branches for a copy operation"
msgstr "terlalu banyak cabang untuk operasi penyalinan"
-#: builtin/branch.c:813
+#: builtin/branch.c:841
msgid "too many arguments for a rename operation"
msgstr "terlalu banyak argumen untuk operasi penggantian nama"
-#: builtin/branch.c:818
+#: builtin/branch.c:846
msgid "too many arguments to set new upstream"
msgstr "terlalu banyak argumen untuk menyetel hulu baru"
-#: builtin/branch.c:822
+#: builtin/branch.c:850
#, c-format
msgid ""
"could not set upstream of HEAD to %s when it does not point to any branch."
@@ -11595,32 +11974,32 @@ msgstr ""
"tidak dapat menyetel hulu HEAD ke %s ketika itu tak menunjuk pada cabang "
"apapun."
-#: builtin/branch.c:825 builtin/branch.c:848
+#: builtin/branch.c:853 builtin/branch.c:873
#, c-format
msgid "no such branch '%s'"
msgstr "tidak ada cabang '%s'"
-#: builtin/branch.c:829
+#: builtin/branch.c:857
#, c-format
msgid "branch '%s' does not exist"
msgstr "cabang '%s' tidak ada"
-#: builtin/branch.c:842
+#: builtin/branch.c:867
msgid "too many arguments to unset upstream"
msgstr "terlalu banyak argumen untuk batal-setel hulu"
-#: builtin/branch.c:846
+#: builtin/branch.c:871
msgid "could not unset upstream of HEAD when it does not point to any branch."
msgstr ""
"tidak dapat membatal-setel hulu HEAD ketika itu tak menunjuk pada cabang "
"apapun."
-#: builtin/branch.c:852
+#: builtin/branch.c:877
#, c-format
msgid "Branch '%s' has no upstream information"
msgstr "Cabang '%s' tidak ada informasi hulu"
-#: builtin/branch.c:862
+#: builtin/branch.c:890
msgid ""
"The -a, and -r, options to 'git branch' do not take a branch name.\n"
"Did you mean to use: -a|-r --list <pattern>?"
@@ -11628,7 +12007,7 @@ msgstr ""
"Opsi -a dan -r tidak mengambil nama cabang.\n"
"Mungkin maksud Anda gunakan: -a|-r --list <pola>?"
-#: builtin/branch.c:866
+#: builtin/branch.c:894
msgid ""
"the '--set-upstream' option is no longer supported. Please use '--track' or "
"'--set-upstream-to' instead."
@@ -11727,19 +12106,19 @@ msgstr "git bundle list-heads <berkas> [<nama referensi>...]"
msgid "git bundle unbundle <file> [<refname>...]"
msgstr "git bundle unbundle <berkas> [<nama referensi>...]"
-#: builtin/bundle.c:65 builtin/pack-objects.c:3876
+#: builtin/bundle.c:65 builtin/pack-objects.c:3899
msgid "do not show progress meter"
msgstr "jangan perlihatkan meteran perkembangan"
-#: builtin/bundle.c:67 builtin/bundle.c:167 builtin/pack-objects.c:3878
+#: builtin/bundle.c:67 builtin/bundle.c:168 builtin/pack-objects.c:3901
msgid "show progress meter"
msgstr "perlihatkan meteran perkembangan"
-#: builtin/bundle.c:69 builtin/pack-objects.c:3880
+#: builtin/bundle.c:69 builtin/pack-objects.c:3903
msgid "show progress meter during object writing phase"
msgstr "perlihatkan meteran perkembangan saat fase penulisan objek"
-#: builtin/bundle.c:72 builtin/pack-objects.c:3883
+#: builtin/bundle.c:72 builtin/pack-objects.c:3906
msgid "similar to --all-progress when progress meter is shown"
msgstr "sama seperti --all-progress ketika meteran perkembangan diperlihatkan"
@@ -11751,113 +12130,229 @@ msgstr "sebutkan versi format bundel"
msgid "Need a repository to create a bundle."
msgstr "Perlu sebuah repositori untuk membuat bundel."
-#: builtin/bundle.c:107
+#: builtin/bundle.c:108
msgid "do not show bundle details"
msgstr "jangan perlihatkan detail bundel"
-#: builtin/bundle.c:126
+#: builtin/bundle.c:127
#, c-format
msgid "%s is okay\n"
msgstr "%s oke \n"
-#: builtin/bundle.c:182
+#: builtin/bundle.c:183
msgid "Need a repository to unbundle."
msgstr "Perlu sebuah repositori untuk membongkar bundel."
-#: builtin/bundle.c:185
+#: builtin/bundle.c:186
msgid "Unbundling objects"
msgstr "Membongkar bundel objek"
-#: builtin/bundle.c:219 builtin/remote.c:1733
+#: builtin/bundle.c:220 builtin/remote.c:1758
#, c-format
msgid "Unknown subcommand: %s"
msgstr "Subperintah tidak dikenal: %s"
-#: builtin/cat-file.c:622
+#: builtin/cat-file.c:568
+msgid "flush is only for --buffer mode"
+msgstr "bilas hanya untuk mode --buffer"
+
+#: builtin/cat-file.c:612
+msgid "empty command in input"
+msgstr "perintah kosong pada masukan"
+
+#: builtin/cat-file.c:614
+#, c-format
+msgid "whitespace before command: '%s'"
+msgstr "spasi sebelum perintah: '%s'"
+
+#: builtin/cat-file.c:623
+#, c-format
+msgid "%s requires arguments"
+msgstr "%s butuh sebuah argumen"
+
+#: builtin/cat-file.c:628
+#, c-format
+msgid "%s takes no arguments"
+msgstr "%s tidak mengambil argumen"
+
+#: builtin/cat-file.c:636
+#, c-format
+msgid "unknown command: '%s'"
+msgstr "perintah tidak dikenal: '%s'"
+
+#: builtin/cat-file.c:795
+msgid "only one batch option may be specified"
+msgstr "hanya satu opsi setumpuk yang mungkin disebutkan"
+
+#: builtin/cat-file.c:824
+msgid "git cat-file <type> <object>"
+msgstr "git cat-file <tipe> <objek>"
+
+#: builtin/cat-file.c:825
+msgid "git cat-file (-e | -p) <object>"
+msgstr "git cat-file (-e | -p) <objek>"
+
+#: builtin/cat-file.c:826
+msgid "git cat-file (-t | -s) [--allow-unknown-type] <object>"
+msgstr "git cat-file (-t | -s) [--allow-unknown-type] <objek>"
+
+#: builtin/cat-file.c:827
msgid ""
-"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 | --batch-command) [--batch-all-"
+"objects]\n"
+" [--buffer] [--follow-symlinks] [--unordered]\n"
+" [--textconv | --filters]"
msgstr ""
-"git cat-file (-t [--allow-unknown-type] | -s [--allow-unknown-type] | -e | -"
-"p | <tipe> | --textconv | --filters) [--path=<jalur>] <objek>"
+"git cat-file (--batch | --batch-check | --batch-command) [--batch-all-"
+"objects]\n"
+" [--buffer] [--follow-symlinks] [--unordered]\n"
+" [--textconv | --filters]"
-#: builtin/cat-file.c:623
+#: builtin/cat-file.c:830
msgid ""
-"git cat-file (--batch[=<format>] | --batch-check[=<format>]) [--follow-"
-"symlinks] [--textconv | --filters]"
+"git cat-file (--textconv | --filters)\n"
+" [<rev>:<path|tree-ish> | --path=<path|tree-ish> <rev>]"
msgstr ""
-"git cat-file (--batch[=<format>] | --batch-check[=<format>]) [--follow-"
-"symlinks] [--textconv | --filters]"
+"git cat-file (--textconv | --filters)\n"
+" [<revisi>:<jalur|mirip-pohon> | --path=<jalur|mirip-pohon>] "
+"<revisi>"
-#: builtin/cat-file.c:644
-msgid "only one batch option may be specified"
-msgstr "hanya satu opsi setumpuk yang mungkin disebutkan"
+#: builtin/cat-file.c:836
+msgid "Check object existence or emit object contents"
+msgstr "Periksa keberadaan objek atau keluarkan isi objek"
+
+#: builtin/cat-file.c:838
+msgid "check if <object> exists"
+msgstr "periksa jika <objek> ada"
-#: builtin/cat-file.c:662
-msgid "<type> can be one of: blob, tree, commit, tag"
-msgstr "<tipe> bisa salah satu dari: blob, tree, commit, tag"
+#: builtin/cat-file.c:839
+msgid "pretty-print <object> content"
+msgstr "cetak-cantik isi <objek>"
-#: builtin/cat-file.c:663
-msgid "show object type"
-msgstr "perlihatkan tipe objek"
+#: builtin/cat-file.c:841
+msgid "Emit [broken] object attributes"
+msgstr "Keluarkan atribut objek [rusak]"
-#: builtin/cat-file.c:664
+#: builtin/cat-file.c:842
+msgid "show object type (one of 'blob', 'tree', 'commit', 'tag', ...)"
+msgstr "perlihatkan tipe objek (salah satu dari 'blob', 'commit', 'tag', ...)"
+
+#: builtin/cat-file.c:843
msgid "show object size"
msgstr "perlihatkan ukuran objek"
-#: builtin/cat-file.c:666
-msgid "exit with zero when there's no error"
-msgstr "keluar dengan nol ketika tidak ada kesalahan"
+#: builtin/cat-file.c:845
+msgid "allow -s and -t to work with broken/corrupt objects"
+msgstr "perbolehkan -s dan -t bekerja dengan objek rusak"
-#: builtin/cat-file.c:667
-msgid "pretty-print object's content"
-msgstr "cetak-cantik isi objek"
+#: builtin/cat-file.c:847
+msgid "Batch objects requested on stdin (or --batch-all-objects)"
+msgstr "Objek batch diminta pada masukan standar (atau --batch-all-objects)"
-#: builtin/cat-file.c:669
-msgid "for blob objects, run textconv on object's content"
-msgstr "untuk objek blob, jalankan textconv pada isi objek"
+#: builtin/cat-file.c:849
+msgid "show full <object> or <rev> contents"
+msgstr "perlihatkan isi <objek> atau <revisi> penuh"
-#: builtin/cat-file.c:671
-msgid "for blob objects, run filters on object's content"
-msgstr "untuk objek blob, jalankan penyaring pada isi objek"
+#: builtin/cat-file.c:853
+msgid "like --batch, but don't emit <contents>"
+msgstr "seperti --batch, tapi jangan keluarkan <isi>"
-#: builtin/cat-file.c:672
-msgid "blob"
-msgstr "blob"
+#: builtin/cat-file.c:857
+msgid "read commands from stdin"
+msgstr "baca perintah dari masukan standar"
-#: builtin/cat-file.c:673
-msgid "use a specific path for --textconv/--filters"
-msgstr "gunakan jalur spesifik untuk --textconv/--filters"
+#: builtin/cat-file.c:861
+msgid "with --batch[-check]: ignores stdin, batches all known objects"
+msgstr ""
+"dengan --batch[-check]: abaikan masukan standar, batch semua objek yang "
+"dikenal"
-#: builtin/cat-file.c:675
-msgid "allow -s and -t to work with broken/corrupt objects"
-msgstr "perbolehkan -s dan -t bekerja dengan objek rusak"
+#: builtin/cat-file.c:863
+msgid "Change or optimize batch output"
+msgstr "Ubah atau optimalkan keluaran batch"
-#: builtin/cat-file.c:676
+#: builtin/cat-file.c:864
msgid "buffer --batch output"
msgstr "sannga keluaran --batch"
-#: builtin/cat-file.c:678
-msgid "show info and content of objects fed from the standard input"
-msgstr "perlihatkan info dan isi objek yang disuap dari masukan standar"
+#: builtin/cat-file.c:866
+msgid "follow in-tree symlinks"
+msgstr "ikuti tautan simbolik dalam pohon"
-#: builtin/cat-file.c:682
-msgid "show info about objects fed from the standard input"
-msgstr "perlihatkan info tentang objek yang disuap dari masukan standar"
+#: builtin/cat-file.c:868
+msgid "do not order objects before emitting them"
+msgstr "jangan urutkan objek sebelum dikeluarkan"
-#: builtin/cat-file.c:686
-msgid "follow in-tree symlinks (used with --batch or --batch-check)"
+#: builtin/cat-file.c:870
+msgid ""
+"Emit object (blob or tree) with conversion or filter (stand-alone, or with "
+"batch)"
msgstr ""
-"ikuti tautan simbolik dalam pohon (digunakan dengan --batch atau --batch-"
-"check)"
+"Keluarkan objek (blob atau pohon) dengan konversi atau saringan (berdiri "
+"sendiri atau dengan batch)"
+
+#: builtin/cat-file.c:872
+msgid "run textconv on object's content"
+msgstr "jalankan textconv pada isi objek"
-#: builtin/cat-file.c:688
-msgid "show all objects with --batch or --batch-check"
-msgstr "perlihatkan semua objek dengan --batch atau --batch-check"
+#: builtin/cat-file.c:874
+msgid "run filters on object's content"
+msgstr "jalankan penyaring pada isi objek"
-#: builtin/cat-file.c:690
-msgid "do not order --batch-all-objects output"
-msgstr "jangan urutkan keluaran --batch-all-objects"
+#: builtin/cat-file.c:875
+msgid "blob|tree"
+msgstr "blob|tree"
+
+#: builtin/cat-file.c:876
+msgid "use a <path> for (--textconv | --filters); Not with 'batch'"
+msgstr "gunakan <jalur> untuk (--textconv | --filters); tidak dengan 'batch'"
+
+#: builtin/cat-file.c:894
+#, c-format
+msgid "'%s=<%s>' needs '%s' or '%s'"
+msgstr "'%s=<%s>' butuh '%s' atau '%s'"
+
+#: builtin/cat-file.c:896
+msgid "path|tree-ish"
+msgstr "jalur|mirip-pohon"
+
+#: builtin/cat-file.c:903 builtin/cat-file.c:906 builtin/cat-file.c:909
+#, c-format
+msgid "'%s' requires a batch mode"
+msgstr "opsi '%s' butuh sebuah mode batch"
+
+#: builtin/cat-file.c:921
+#, c-format
+msgid "'-%c' is incompatible with batch mode"
+msgstr "'-%c' tidak kompatibel dengan mode batch"
+
+#: builtin/cat-file.c:924
+msgid "batch modes take no arguments"
+msgstr "mode batch tidak mengambil argumen"
+
+#: builtin/cat-file.c:932 builtin/cat-file.c:935
+#, c-format
+msgid "<rev> required with '%s'"
+msgstr "<revisi> diperlukan dengan '%s'"
+
+#: builtin/cat-file.c:938
+#, c-format
+msgid "<object> required with '-%c'"
+msgstr "<objek> diperlukan dengan '-%c'"
+
+#: builtin/cat-file.c:943 builtin/notes.c:374 builtin/notes.c:429
+#: builtin/notes.c:507 builtin/notes.c:519 builtin/notes.c:596
+#: builtin/notes.c:663 builtin/notes.c:813 builtin/notes.c:965
+#: builtin/notes.c:987 builtin/prune-packed.c:25 builtin/receive-pack.c:2489
+#: builtin/tag.c:592
+msgid "too many arguments"
+msgstr "terlalu banyak argumen"
+
+#: builtin/cat-file.c:947
+#, c-format
+msgid "only two arguments allowed in <type> <object> mode, not %d"
+msgstr ""
+"hanya dua argumen yang diperbolehkan di dalam mode <tipe> <objek>, bukan %d"
#: builtin/check-attr.c:13
msgid "git check-attr [-a | --all | <attr>...] [--] <pathname>..."
@@ -11875,7 +12370,7 @@ msgstr ""
msgid "use .gitattributes only from the index"
msgstr ""
-#: builtin/check-attr.c:23 builtin/check-ignore.c:25 builtin/hash-object.c:100
+#: builtin/check-attr.c:23 builtin/check-ignore.c:25 builtin/hash-object.c:101
msgid "read file names from stdin"
msgstr ""
@@ -11883,8 +12378,8 @@ msgstr ""
msgid "terminate input and output records by a NUL character"
msgstr ""
-#: builtin/check-ignore.c:21 builtin/checkout.c:1532 builtin/gc.c:550
-#: builtin/worktree.c:493
+#: builtin/check-ignore.c:21 builtin/checkout.c:1550 builtin/gc.c:550
+#: builtin/worktree.c:565
msgid "suppress progress reporting"
msgstr ""
@@ -11941,163 +12436,167 @@ msgstr ""
msgid "git checkout--worker [<options>]"
msgstr ""
-#: builtin/checkout--worker.c:118 builtin/checkout-index.c:201
-#: builtin/column.c:31 builtin/column.c:32 builtin/submodule--helper.c:1864
-#: builtin/submodule--helper.c:1867 builtin/submodule--helper.c:1875
-#: builtin/submodule--helper.c:2511 builtin/submodule--helper.c:2577
-#: builtin/worktree.c:491 builtin/worktree.c:728
+#: builtin/checkout--worker.c:118 builtin/checkout-index.c:235
+#: builtin/column.c:31 builtin/column.c:32 builtin/submodule--helper.c:1878
+#: builtin/submodule--helper.c:1881 builtin/submodule--helper.c:1889
+#: builtin/submodule--helper.c:2716 builtin/worktree.c:563
+#: builtin/worktree.c:808
msgid "string"
msgstr ""
-#: builtin/checkout--worker.c:119 builtin/checkout-index.c:202
+#: builtin/checkout--worker.c:119 builtin/checkout-index.c:236
msgid "when creating files, prepend <string>"
msgstr ""
-#: builtin/checkout-index.c:152
+#: builtin/checkout-index.c:184
msgid "git checkout-index [<options>] [--] [<file>...]"
msgstr ""
-#: builtin/checkout-index.c:169
+#: builtin/checkout-index.c:201
msgid "stage should be between 1 and 3 or all"
msgstr ""
-#: builtin/checkout-index.c:187
+#: builtin/checkout-index.c:219
msgid "check out all files in the index"
msgstr ""
-#: builtin/checkout-index.c:188
+#: builtin/checkout-index.c:221
+msgid "do not skip files with skip-worktree set"
+msgstr ""
+
+#: builtin/checkout-index.c:222
msgid "force overwrite of existing files"
msgstr ""
-#: builtin/checkout-index.c:190
+#: builtin/checkout-index.c:224
msgid "no warning for existing files and files not in index"
msgstr ""
-#: builtin/checkout-index.c:192
+#: builtin/checkout-index.c:226
msgid "don't checkout new files"
msgstr ""
-#: builtin/checkout-index.c:194
+#: builtin/checkout-index.c:228
msgid "update stat information in the index file"
msgstr ""
-#: builtin/checkout-index.c:198
+#: builtin/checkout-index.c:232
msgid "read list of paths from the standard input"
msgstr ""
-#: builtin/checkout-index.c:200
+#: builtin/checkout-index.c:234
msgid "write the content to temporary files"
msgstr ""
-#: builtin/checkout-index.c:204
+#: builtin/checkout-index.c:238
msgid "copy out the files from named stage"
msgstr ""
-#: builtin/checkout.c:33
+#: builtin/checkout.c:34
msgid "git checkout [<options>] <branch>"
msgstr "git checkout [<opsi>] <cabang>"
-#: builtin/checkout.c:34
+#: builtin/checkout.c:35
msgid "git checkout [<options>] [<branch>] -- <file>..."
msgstr "git checkout [<opsi>] [<cabang>] -- <berkas>..."
-#: builtin/checkout.c:39
+#: builtin/checkout.c:40
msgid "git switch [<options>] [<branch>]"
msgstr "git switch [<opsi>] [<cabang>]"
-#: builtin/checkout.c:44
+#: builtin/checkout.c:45
msgid "git restore [<options>] [--source=<branch>] <file>..."
msgstr "git restore [<opsi>] [--source=<cabang>] <berkas>..."
-#: builtin/checkout.c:198 builtin/checkout.c:237
+#: builtin/checkout.c:199 builtin/checkout.c:238
#, c-format
msgid "path '%s' does not have our version"
msgstr "jalur '%s' tidak punya versi kami"
-#: builtin/checkout.c:200 builtin/checkout.c:239
+#: builtin/checkout.c:201 builtin/checkout.c:240
#, c-format
msgid "path '%s' does not have their version"
msgstr "jalur '%s' tidak punya versi mereka"
-#: builtin/checkout.c:216
+#: builtin/checkout.c:217
#, c-format
msgid "path '%s' does not have all necessary versions"
msgstr "jalur '%s' tidak punya semua versi yang diperlukan"
-#: builtin/checkout.c:269
+#: builtin/checkout.c:271
#, c-format
msgid "path '%s' does not have necessary versions"
msgstr "jalur '%s' tidak punya versi yang diperlukan"
-#: builtin/checkout.c:286
+#: builtin/checkout.c:291
#, c-format
msgid "path '%s': cannot merge"
msgstr "jalur '%s': tidak dapat gabung"
-#: builtin/checkout.c:302
+#: builtin/checkout.c:307
#, c-format
msgid "Unable to add merge result for '%s'"
msgstr "Tidak dapat menambahkan hasil penggabungan untuk '%s'"
-#: builtin/checkout.c:419
+#: builtin/checkout.c:424
#, c-format
msgid "Recreated %d merge conflict"
msgid_plural "Recreated %d merge conflicts"
msgstr[0] "Konflik penggabungan %d dibuat ulang"
msgstr[1] "Konflik penggabungan %d dibuat ulang"
-#: builtin/checkout.c:424
+#: builtin/checkout.c:429
#, c-format
msgid "Updated %d path from %s"
msgid_plural "Updated %d paths from %s"
msgstr[0] "%d jalur diperbarui dari %s"
msgstr[1] "%d jalur diperbarui dari %s"
-#: builtin/checkout.c:431
+#: builtin/checkout.c:436
#, c-format
msgid "Updated %d path from the index"
msgid_plural "Updated %d paths from the index"
msgstr[0] "%d jalur diperbarui dari indeks"
msgstr[1] "%d jalur diperbarui dari indeks"
-#: builtin/checkout.c:454 builtin/checkout.c:457 builtin/checkout.c:460
-#: builtin/checkout.c:464
+#: builtin/checkout.c:459 builtin/checkout.c:462 builtin/checkout.c:465
+#: builtin/checkout.c:469
#, c-format
msgid "'%s' cannot be used with updating paths"
msgstr "'%s' tidak dapat digunakan untuk memperbarui jalur"
-#: builtin/checkout.c:474
+#: builtin/checkout.c:479
#, c-format
msgid "Cannot update paths and switch to branch '%s' at the same time."
msgstr ""
"Tidak dapat memperbarui jalur dan mengganti ke cabang '%s' dalam waktu yang "
"bersamaan."
-#: builtin/checkout.c:478
+#: builtin/checkout.c:483
#, c-format
msgid "neither '%s' or '%s' is specified"
msgstr "baik '%s' atau '%s' tidak disebutkan"
-#: builtin/checkout.c:482
+#: builtin/checkout.c:487
#, c-format
msgid "'%s' must be used when '%s' is not specified"
msgstr "'%s' harus disebutkan ketika '%s' tidak disebutkan"
-#: builtin/checkout.c:487 builtin/checkout.c:492
+#: builtin/checkout.c:492 builtin/checkout.c:497
#, c-format
msgid "'%s' or '%s' cannot be used with %s"
msgstr "'%s' atau '%s' tidak dapat digunakan untuk %s"
-#: builtin/checkout.c:566 builtin/checkout.c:573
+#: builtin/checkout.c:571 builtin/checkout.c:578
#, c-format
msgid "path '%s' is unmerged"
msgstr "jalur '%s' tak tergabung"
-#: builtin/checkout.c:747
+#: builtin/checkout.c:753
msgid "you need to resolve your current index first"
msgstr "Anda perlu selesaikan dulu indeks Anda saat ini"
-#: builtin/checkout.c:797
+#: builtin/checkout.c:809
#, c-format
msgid ""
"cannot continue with staged changes in the following files:\n"
@@ -12107,50 +12606,50 @@ msgstr ""
"berikut:\n"
"%s"
-#: builtin/checkout.c:890
+#: builtin/checkout.c:902
#, c-format
msgid "Can not do reflog for '%s': %s\n"
msgstr "Tidak dapat melakukan reflog untuk '%s': %s\n"
-#: builtin/checkout.c:934
+#: builtin/checkout.c:947
msgid "HEAD is now at"
msgstr "HEAD sekarang berada di"
-#: builtin/checkout.c:938 builtin/clone.c:609 t/helper/test-fast-rebase.c:203
+#: builtin/checkout.c:951 builtin/clone.c:615 t/helper/test-fast-rebase.c:203
msgid "unable to update HEAD"
msgstr "tidak dapat memperbarui HEAD"
-#: builtin/checkout.c:942
+#: builtin/checkout.c:955
#, c-format
msgid "Reset branch '%s'\n"
msgstr "Ganti ulang cabang '%s'\n"
-#: builtin/checkout.c:945
+#: builtin/checkout.c:958
#, c-format
msgid "Already on '%s'\n"
msgstr "Sudah berada pada '%s'\n"
-#: builtin/checkout.c:949
+#: builtin/checkout.c:962
#, c-format
msgid "Switched to and reset branch '%s'\n"
msgstr "Ganti ke dan ganti cabang '%s'\n"
-#: builtin/checkout.c:951 builtin/checkout.c:1388
+#: builtin/checkout.c:964 builtin/checkout.c:1398
#, c-format
msgid "Switched to a new branch '%s'\n"
msgstr "Ganti ke cabang baru '%s'\n"
-#: builtin/checkout.c:953
+#: builtin/checkout.c:966
#, c-format
msgid "Switched to branch '%s'\n"
msgstr "Ganti ke cabang '%s'\n"
-#: builtin/checkout.c:1004
+#: builtin/checkout.c:1017
#, c-format
msgid " ... and %d more.\n"
msgstr "... dan %d lainnya.\n"
-#: builtin/checkout.c:1010
+#: builtin/checkout.c:1023
#, c-format
msgid ""
"Warning: you are leaving %d commit behind, not connected to\n"
@@ -12173,7 +12672,7 @@ msgstr[1] ""
"\n"
"%s\n"
-#: builtin/checkout.c:1029
+#: builtin/checkout.c:1042
#, c-format
msgid ""
"If you want to keep it by creating a new branch, this may be a good time\n"
@@ -12196,19 +12695,19 @@ msgstr[1] ""
"saat yang tepat untuk dilakukan dengan:\n"
"git branch <nama-cabang-baru> %s\n"
-#: builtin/checkout.c:1064
+#: builtin/checkout.c:1077
msgid "internal error in revision walk"
msgstr "kesalahan internal dalam jalan revisi"
-#: builtin/checkout.c:1068
+#: builtin/checkout.c:1081
msgid "Previous HEAD position was"
msgstr "Posisi HEAD sebelumnya adalah"
-#: builtin/checkout.c:1114 builtin/checkout.c:1383
+#: builtin/checkout.c:1124 builtin/checkout.c:1393
msgid "You are on a branch yet to be born"
msgstr "Anda berada pada cabang yang belum lahir"
-#: builtin/checkout.c:1196
+#: builtin/checkout.c:1206
#, c-format
msgid ""
"'%s' could be both a local file and a tracking branch.\n"
@@ -12217,7 +12716,7 @@ msgstr ""
"'%s' bisa jadi berkas lokal dan cabang pelacak.\n"
"Mohon gunakan -- (dan secara opsional --no-guess) untuk disambiguasi"
-#: builtin/checkout.c:1203
+#: builtin/checkout.c:1213
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"
@@ -12237,51 +12736,56 @@ msgstr ""
"seperti remote 'origin', pertimbangkan untuk menyetel\n"
"checkout.defaultRemote=origin di konfigurasi Anda"
-#: builtin/checkout.c:1213
+#: builtin/checkout.c:1223
#, c-format
msgid "'%s' matched multiple (%d) remote tracking branches"
msgstr "'%s' cocok dengan banyak (%d) cabang pelacak remote"
-#: builtin/checkout.c:1279
+#: builtin/checkout.c:1289
msgid "only one reference expected"
msgstr "hanya satu referensi yang diharapkan"
-#: builtin/checkout.c:1296
+#: builtin/checkout.c:1306
#, c-format
msgid "only one reference expected, %d given."
msgstr "hanya satu referensi yang diharapkan, %d diberikan"
-#: builtin/checkout.c:1342 builtin/worktree.c:269 builtin/worktree.c:436
+#: builtin/checkout.c:1352 builtin/worktree.c:338 builtin/worktree.c:508
#, c-format
msgid "invalid reference: %s"
msgstr "referensi tidak valid: %s"
-#: builtin/checkout.c:1355 builtin/checkout.c:1725
+#: builtin/checkout.c:1365 builtin/checkout.c:1744
#, c-format
msgid "reference is not a tree: %s"
msgstr "referensi bukan pohon: %s"
-#: builtin/checkout.c:1402
+#: builtin/checkout.c:1413
#, c-format
msgid "a branch is expected, got tag '%s'"
msgstr "sebuah cabang diharapkan, dapat tag '%s'"
-#: builtin/checkout.c:1404
+#: builtin/checkout.c:1415
#, c-format
msgid "a branch is expected, got remote branch '%s'"
msgstr "sebuah cabang diharapkan, dapat cabang remote '%s'"
-#: builtin/checkout.c:1405 builtin/checkout.c:1413
+#: builtin/checkout.c:1417 builtin/checkout.c:1426
#, c-format
msgid "a branch is expected, got '%s'"
msgstr "sebuah cabang diharapkan, dapat '%s'"
-#: builtin/checkout.c:1408
+#: builtin/checkout.c:1420
#, c-format
msgid "a branch is expected, got commit '%s'"
msgstr "sebuah cabang diharapkan, dapat komit '%s'"
-#: builtin/checkout.c:1424
+#: builtin/checkout.c:1429
+msgid ""
+"If you want to detach HEAD at the commit, try again with the --detach option."
+msgstr "Jika Anda ingin lepas HEAD pada komit, coba lagi dengan opsi --detach."
+
+#: builtin/checkout.c:1442
msgid ""
"cannot switch branch while merging\n"
"Consider \"git merge --quit\" or \"git worktree add\"."
@@ -12290,7 +12794,7 @@ msgstr ""
"Pertimbangkan untuk menggunakan \"git merge --quit\" atau \"git worktree add"
"\"."
-#: builtin/checkout.c:1428
+#: builtin/checkout.c:1446
msgid ""
"cannot switch branch in the middle of an am session\n"
"Consider \"git am --quit\" or \"git worktree add\"."
@@ -12298,7 +12802,7 @@ msgstr ""
"tidak dapat mengganti cabang di tengah sesi am\n"
"Pertimbangkan untuk menggunakan \"git am --quit\" atau \"git worktree add\"."
-#: builtin/checkout.c:1432
+#: builtin/checkout.c:1450
msgid ""
"cannot switch branch while rebasing\n"
"Consider \"git rebase --quit\" or \"git worktree add\"."
@@ -12307,7 +12811,7 @@ msgstr ""
"Pertimbangkan untuk menggunakan \"git rebase --quit\" atau \"git worktree add"
"\"."
-#: builtin/checkout.c:1436
+#: builtin/checkout.c:1454
msgid ""
"cannot switch branch while cherry-picking\n"
"Consider \"git cherry-pick --quit\" or \"git worktree add\"."
@@ -12316,7 +12820,7 @@ msgstr ""
"Pertimbangkan untuk menggunakan \"git cherry-pick --quit\" atau \"git "
"worktree add\"."
-#: builtin/checkout.c:1440
+#: builtin/checkout.c:1458
msgid ""
"cannot switch branch while reverting\n"
"Consider \"git revert --quit\" or \"git worktree add\"."
@@ -12325,126 +12829,122 @@ msgstr ""
"Pertimbangkan untuk menggunakan \"git revert --quit\" atau \"git worktree add"
"\"."
-#: builtin/checkout.c:1444
+#: builtin/checkout.c:1462
msgid "you are switching branch while bisecting"
msgstr "Anda mengganti cabang saat pembagian dua"
-#: builtin/checkout.c:1451
+#: builtin/checkout.c:1469
msgid "paths cannot be used with switching branches"
msgstr "jalur tidak dapat digunakan dengan mengganti cabang"
-#: builtin/checkout.c:1454 builtin/checkout.c:1458 builtin/checkout.c:1462
+#: builtin/checkout.c:1472 builtin/checkout.c:1476 builtin/checkout.c:1480
#, c-format
msgid "'%s' cannot be used with switching branches"
msgstr "'%s' tidak dapat digunakan dengan mengganti cabang"
-#: builtin/checkout.c:1466 builtin/checkout.c:1469 builtin/checkout.c:1472
-#: builtin/checkout.c:1477 builtin/checkout.c:1482
+#: builtin/checkout.c:1484 builtin/checkout.c:1487 builtin/checkout.c:1490
+#: builtin/checkout.c:1495 builtin/checkout.c:1500
#, c-format
msgid "'%s' cannot be used with '%s'"
msgstr "'%s' tidak dapat digunakan dengan '%s'"
-#: builtin/checkout.c:1479
+#: builtin/checkout.c:1497
#, c-format
msgid "'%s' cannot take <start-point>"
msgstr "'%s' tidak bisa mengambil <titik-awal>"
-#: builtin/checkout.c:1487
+#: builtin/checkout.c:1505
#, c-format
msgid "Cannot switch branch to a non-commit '%s'"
msgstr "Tidak dapat mengganti cabang ke bukan komit '%s'"
-#: builtin/checkout.c:1494
+#: builtin/checkout.c:1512
msgid "missing branch or commit argument"
msgstr "kehilangan argumen cabang atau komit"
-#: builtin/checkout.c:1537
+#: builtin/checkout.c:1555
msgid "perform a 3-way merge with the new branch"
msgstr "lakukan penggabungan 3 arah dengan cabang baru"
-#: builtin/checkout.c:1538 builtin/log.c:1825 parse-options.h:323
+#: builtin/checkout.c:1556 builtin/log.c:1844 parse-options.h:354
msgid "style"
msgstr "gaya"
-#: builtin/checkout.c:1539
+#: builtin/checkout.c:1557
msgid "conflict style (merge, diff3, or zdiff3)"
msgstr "gaya konflik (merge, diff3, atau zdiff3)"
-#: builtin/checkout.c:1551 builtin/worktree.c:488
+#: builtin/checkout.c:1569 builtin/worktree.c:560
msgid "detach HEAD at named commit"
msgstr "lepas HEAD pada komit bernama"
-#: builtin/checkout.c:1553
-msgid "set up tracking mode (see git-pull(1))"
-msgstr "pasang mode pelacakan (lihat git-pull(1))"
-
-#: builtin/checkout.c:1556
+#: builtin/checkout.c:1574
msgid "force checkout (throw away local modifications)"
msgstr "paksa checkout (buang modifikasi lokal)"
-#: builtin/checkout.c:1558
+#: builtin/checkout.c:1576
msgid "new-branch"
msgstr "cabang baru"
-#: builtin/checkout.c:1558
+#: builtin/checkout.c:1576
msgid "new unparented branch"
msgstr "cabang baru tanpa induk"
-#: builtin/checkout.c:1560 builtin/merge.c:305
+#: builtin/checkout.c:1578 builtin/merge.c:305
msgid "update ignored files (default)"
msgstr "perbarui berkas yang diabaikan (default)"
-#: builtin/checkout.c:1563
+#: builtin/checkout.c:1581
msgid "do not check if another worktree is holding the given ref"
msgstr ""
"jangan periksa jika pohon kerja yang lain mempunyai referensi yang diberikan"
-#: builtin/checkout.c:1576
+#: builtin/checkout.c:1594
msgid "checkout our version for unmerged files"
msgstr "checkout versi kami untuk berkas yang tak tergabung"
-#: builtin/checkout.c:1579
+#: builtin/checkout.c:1597
msgid "checkout their version for unmerged files"
msgstr "checkout versi mereka untuk berkas yang tak tergabung"
-#: builtin/checkout.c:1583
+#: builtin/checkout.c:1601
msgid "do not limit pathspecs to sparse entries only"
msgstr "jangan batasi jalur spek hanya ke entri tipis"
-#: builtin/checkout.c:1640
+#: builtin/checkout.c:1659
#, c-format
msgid "options '-%c', '-%c', and '%s' cannot be used together"
msgstr "opsi '-%c', '-%c', dan '%s' tidak dapat digunakan bersamaan"
-#: builtin/checkout.c:1681
+#: builtin/checkout.c:1700
msgid "--track needs a branch name"
msgstr "--track butuh nama cabang"
-#: builtin/checkout.c:1686
+#: builtin/checkout.c:1705
#, c-format
msgid "missing branch name; try -%c"
msgstr "kehilangan nama cabang; coba -%c"
-#: builtin/checkout.c:1718
+#: builtin/checkout.c:1737
#, c-format
msgid "could not resolve %s"
msgstr "tidak dapat menyelesaikan %s"
-#: builtin/checkout.c:1734
+#: builtin/checkout.c:1753
msgid "invalid path specification"
msgstr "spesifikasi jalur tidak valid"
-#: builtin/checkout.c:1741
+#: builtin/checkout.c:1760
#, c-format
msgid "'%s' is not a commit and a branch '%s' cannot be created from it"
msgstr "'%s' bukanlah commit dan cabang '%s' tidak dapat dibuat dari itu"
-#: builtin/checkout.c:1745
+#: builtin/checkout.c:1764
#, c-format
msgid "git checkout: --detach does not take a path argument '%s'"
msgstr "git checkout: --detach tidak mengambil argumen jalur '%s'"
-#: builtin/checkout.c:1770
+#: builtin/checkout.c:1789
msgid ""
"git checkout: --ours/--theirs, --force and --merge are incompatible when\n"
"checking out of the index."
@@ -12452,71 +12952,71 @@ msgstr ""
"git checkout: --ours/--theirs, --force dan --merge tidak kompatibel saat\n"
"men-checkout index"
-#: builtin/checkout.c:1775
+#: builtin/checkout.c:1794
msgid "you must specify path(s) to restore"
msgstr "Anda harus sebutkan jalur untuk dipulihkan"
-#: builtin/checkout.c:1800 builtin/checkout.c:1802 builtin/checkout.c:1854
-#: builtin/checkout.c:1856 builtin/clone.c:126 builtin/remote.c:170
-#: builtin/remote.c:172 builtin/submodule--helper.c:2959
-#: builtin/submodule--helper.c:3253 builtin/worktree.c:484
-#: builtin/worktree.c:486
+#: builtin/checkout.c:1819 builtin/checkout.c:1821 builtin/checkout.c:1873
+#: builtin/checkout.c:1875 builtin/clone.c:130 builtin/remote.c:171
+#: builtin/remote.c:173 builtin/submodule--helper.c:3038
+#: builtin/submodule--helper.c:3371 builtin/worktree.c:556
+#: builtin/worktree.c:558
msgid "branch"
msgstr "cabang"
-#: builtin/checkout.c:1801
+#: builtin/checkout.c:1820
msgid "create and checkout a new branch"
msgstr "buat dan checkout cabang baru"
-#: builtin/checkout.c:1803
+#: builtin/checkout.c:1822
msgid "create/reset and checkout a branch"
msgstr "buat/setel ulang dan checkout cabang"
-#: builtin/checkout.c:1804
+#: builtin/checkout.c:1823
msgid "create reflog for new branch"
msgstr "buat reflog untuk cabang baru"
-#: builtin/checkout.c:1806
+#: builtin/checkout.c:1825
msgid "second guess 'git checkout <no-such-branch>' (default)"
msgstr "tebakan kedua 'git checkout <tidak-ada-cabang-seperti-itu>' (default)"
-#: builtin/checkout.c:1807
+#: builtin/checkout.c:1826
msgid "use overlay mode (default)"
msgstr "gunakan mode hamparan (default)"
-#: builtin/checkout.c:1855
+#: builtin/checkout.c:1874
msgid "create and switch to a new branch"
msgstr "buat dan ganti ke cabang baru"
-#: builtin/checkout.c:1857
+#: builtin/checkout.c:1876
msgid "create/reset and switch to a branch"
msgstr "buat/setel ulang dan ganti ke cabang"
-#: builtin/checkout.c:1859
+#: builtin/checkout.c:1878
msgid "second guess 'git switch <no-such-branch>'"
msgstr "tebakan kedua 'git switch <tidak-ada-cabang-seperti-itu>'"
-#: builtin/checkout.c:1861
+#: builtin/checkout.c:1880
msgid "throw away local modifications"
msgstr "buang modifikasi lokal"
-#: builtin/checkout.c:1897
+#: builtin/checkout.c:1916
msgid "which tree-ish to checkout from"
msgstr "mana mirip-cabang untuk di-checkout"
-#: builtin/checkout.c:1899
+#: builtin/checkout.c:1918
msgid "restore the index"
msgstr "pulihkan indeks"
-#: builtin/checkout.c:1901
+#: builtin/checkout.c:1920
msgid "restore the working tree (default)"
msgstr "pulihkan pohon kerja (default)"
-#: builtin/checkout.c:1903
+#: builtin/checkout.c:1922
msgid "ignore unmerged entries"
msgstr "abaikan entri yang tak tergabung"
-#: builtin/checkout.c:1904
+#: builtin/checkout.c:1923
msgid "use overlay mode"
msgstr "gunakan mode hamparan"
@@ -12664,8 +13164,8 @@ msgid "remove whole directories"
msgstr "hapus keseluruhan direktori"
#: builtin/clean.c:932 builtin/describe.c:565 builtin/describe.c:567
-#: builtin/grep.c:937 builtin/log.c:184 builtin/log.c:186
-#: builtin/ls-files.c:651 builtin/name-rev.c:535 builtin/name-rev.c:537
+#: builtin/grep.c:938 builtin/log.c:185 builtin/log.c:187
+#: builtin/ls-files.c:651 builtin/name-rev.c:585 builtin/name-rev.c:587
#: builtin/show-ref.c:179
msgid "pattern"
msgstr "pola"
@@ -12702,209 +13202,213 @@ msgstr ""
msgid "-x and -X cannot be used together"
msgstr "-x dan -X tidak dapat digunakan bersamaan"
-#: builtin/clone.c:45
+#: builtin/clone.c:47
msgid "git clone [<options>] [--] <repo> [<dir>]"
msgstr "git clone [<opsi>] [--] <repo> [<direktori>]"
-#: builtin/clone.c:96
+#: builtin/clone.c:100
msgid "don't clone shallow repository"
msgstr "jangan kloning repositori dangkal"
-#: builtin/clone.c:98
+#: builtin/clone.c:102
msgid "don't create a checkout"
msgstr "jangan buat checkout"
-#: builtin/clone.c:99 builtin/clone.c:101 builtin/init-db.c:542
+#: builtin/clone.c:103 builtin/clone.c:105 builtin/init-db.c:542
msgid "create a bare repository"
msgstr "buat repositori bare"
-#: builtin/clone.c:103
+#: builtin/clone.c:107
msgid "create a mirror repository (implies bare)"
msgstr "buat repositori cermin (implikasikan bare)"
-#: builtin/clone.c:105
+#: builtin/clone.c:109
msgid "to clone from a local repository"
msgstr "kloning dari repositori lokal"
-#: builtin/clone.c:107
+#: builtin/clone.c:111
msgid "don't use local hardlinks, always copy"
msgstr "jangan gunakan tautan keras lokal, selalu salin"
-#: builtin/clone.c:109
+#: builtin/clone.c:113
msgid "setup as shared repository"
msgstr "siapkan sebagai repositori berbagi"
-#: builtin/clone.c:111
+#: builtin/clone.c:115
msgid "pathspec"
msgstr "spek jalur"
-#: builtin/clone.c:111
+#: builtin/clone.c:115
msgid "initialize submodules in the clone"
msgstr "inisialisasi submodul dalam klon"
-#: builtin/clone.c:115
+#: builtin/clone.c:119
msgid "number of submodules cloned in parallel"
msgstr "jumlah submodul yang diklon secara paralel"
-#: builtin/clone.c:116 builtin/init-db.c:539
+#: builtin/clone.c:120 builtin/init-db.c:539
msgid "template-directory"
msgstr "direktori templat"
-#: builtin/clone.c:117 builtin/init-db.c:540
+#: builtin/clone.c:121 builtin/init-db.c:540
msgid "directory from which templates will be used"
msgstr "direktori dimana templat akan digunakan"
-#: builtin/clone.c:119 builtin/clone.c:121 builtin/submodule--helper.c:1871
-#: builtin/submodule--helper.c:2514 builtin/submodule--helper.c:3260
+#: builtin/clone.c:123 builtin/clone.c:125 builtin/submodule--helper.c:1885
+#: builtin/submodule--helper.c:2719 builtin/submodule--helper.c:3378
msgid "reference repository"
msgstr "repositori rujukan"
-#: builtin/clone.c:123 builtin/submodule--helper.c:1873
-#: builtin/submodule--helper.c:2516
+#: builtin/clone.c:127 builtin/submodule--helper.c:1887
+#: builtin/submodule--helper.c:2721
msgid "use --reference only while cloning"
msgstr "gunakan --reference hanya pada saat kloning"
-#: builtin/clone.c:124 builtin/column.c:27 builtin/fmt-merge-msg.c:27
+#: builtin/clone.c:128 builtin/column.c:27 builtin/fmt-merge-msg.c:27
#: builtin/init-db.c:550 builtin/merge-file.c:48 builtin/merge.c:290
-#: builtin/pack-objects.c:3944 builtin/repack.c:665
-#: builtin/submodule--helper.c:3262 t/helper/test-simple-ipc.c:595
+#: builtin/pack-objects.c:3967 builtin/repack.c:669
+#: builtin/submodule--helper.c:3380 t/helper/test-simple-ipc.c:595
#: t/helper/test-simple-ipc.c:597
msgid "name"
msgstr "nama"
-#: builtin/clone.c:125
+#: builtin/clone.c:129
msgid "use <name> instead of 'origin' to track upstream"
msgstr "gunakan <nama> daripada 'origin' untuk lacak hulu"
-#: builtin/clone.c:127
+#: builtin/clone.c:131
msgid "checkout <branch> instead of the remote's HEAD"
msgstr "checkout <cabang> daripada HEAD remote"
-#: builtin/clone.c:129
+#: builtin/clone.c:133
msgid "path to git-upload-pack on the remote"
msgstr "jalur ke git-upload-pack pada remote"
-#: builtin/clone.c:130 builtin/fetch.c:181 builtin/grep.c:876
+#: builtin/clone.c:134 builtin/fetch.c:182 builtin/grep.c:877
#: builtin/pull.c:212
msgid "depth"
msgstr "kedalaman"
-#: builtin/clone.c:131
+#: builtin/clone.c:135
msgid "create a shallow clone of that depth"
msgstr "buat klon dangkal sedalam kedalaman tersebut"
-#: builtin/clone.c:132 builtin/fetch.c:183 builtin/pack-objects.c:3933
+#: builtin/clone.c:136 builtin/fetch.c:184 builtin/pack-objects.c:3956
#: builtin/pull.c:215
msgid "time"
msgstr "waktu"
-#: builtin/clone.c:133
+#: builtin/clone.c:137
msgid "create a shallow clone since a specific time"
msgstr "buat klon dangkal sejak waktu yang disebutkan"
-#: builtin/clone.c:134 builtin/fetch.c:185 builtin/fetch.c:208
-#: builtin/pull.c:218 builtin/pull.c:243 builtin/rebase.c:1022
+#: builtin/clone.c:138 builtin/fetch.c:186 builtin/fetch.c:212
+#: builtin/pull.c:218 builtin/pull.c:243 builtin/rebase.c:1050
msgid "revision"
msgstr "revisi"
-#: builtin/clone.c:135 builtin/fetch.c:186 builtin/pull.c:219
+#: builtin/clone.c:139 builtin/fetch.c:187 builtin/pull.c:219
msgid "deepen history of shallow clone, excluding rev"
msgstr "perdalam riwayat klon dangkal, tidak termasuk rev"
-#: builtin/clone.c:137 builtin/submodule--helper.c:1883
-#: builtin/submodule--helper.c:2530
+#: builtin/clone.c:141 builtin/submodule--helper.c:1897
+#: builtin/submodule--helper.c:2735
msgid "clone only one branch, HEAD or --branch"
msgstr "klon hanya satu cabang, HEAD atau --branch"
-#: builtin/clone.c:139
+#: builtin/clone.c:143
msgid "don't clone any tags, and make later fetches not to follow them"
msgstr "jangan klon tag apapun, dan buat pengambilan nanti tidak mengikutinya"
-#: builtin/clone.c:141
+#: builtin/clone.c:145
msgid "any cloned submodules will be shallow"
msgstr "submodul yang diklon akan dangkal"
-#: builtin/clone.c:142 builtin/init-db.c:548
+#: builtin/clone.c:146 builtin/init-db.c:548
msgid "gitdir"
msgstr "direktori git"
-#: builtin/clone.c:143 builtin/init-db.c:549
+#: builtin/clone.c:147 builtin/init-db.c:549
msgid "separate git dir from working tree"
msgstr "pisahkan direktori git dari pohon kerja"
-#: builtin/clone.c:144
+#: builtin/clone.c:148
msgid "key=value"
msgstr "kunci=nilai"
-#: builtin/clone.c:145
+#: builtin/clone.c:149
msgid "set config inside the new repository"
msgstr "setel konfigurasi di dalam repositori baru"
-#: builtin/clone.c:147 builtin/fetch.c:203 builtin/ls-remote.c:77
+#: builtin/clone.c:151 builtin/fetch.c:207 builtin/ls-remote.c:77
#: builtin/pull.c:234 builtin/push.c:575 builtin/send-pack.c:200
msgid "server-specific"
msgstr "spesifik ke server"
-#: builtin/clone.c:147 builtin/fetch.c:203 builtin/ls-remote.c:77
+#: builtin/clone.c:151 builtin/fetch.c:207 builtin/ls-remote.c:77
#: builtin/pull.c:235 builtin/push.c:575 builtin/send-pack.c:201
msgid "option to transmit"
msgstr "opsi untuk transmisi"
-#: builtin/clone.c:148 builtin/fetch.c:204 builtin/pull.c:238
+#: builtin/clone.c:152 builtin/fetch.c:208 builtin/pull.c:238
#: builtin/push.c:576
msgid "use IPv4 addresses only"
msgstr "gunakan hanya alamat IPv4"
-#: builtin/clone.c:150 builtin/fetch.c:206 builtin/pull.c:241
+#: builtin/clone.c:154 builtin/fetch.c:210 builtin/pull.c:241
#: builtin/push.c:578
msgid "use IPv6 addresses only"
msgstr "gunakan hanya alamat IPv6"
-#: builtin/clone.c:154
+#: builtin/clone.c:158
+msgid "apply partial clone filters to submodules"
+msgstr "terapkan saringan kloning parsial ke submodul"
+
+#: builtin/clone.c:160
msgid "any cloned submodules will use their remote-tracking branch"
msgstr "submodul yang diklon akan menggunakan cabang yang melacak remotenya"
-#: builtin/clone.c:156
+#: builtin/clone.c:162
msgid "initialize sparse-checkout file to include only files at root"
msgstr ""
"inisialisasi berkas checkout tipis agar memasukkan hanya berkas pada akar"
-#: builtin/clone.c:231
+#: builtin/clone.c:237
#, c-format
msgid "info: Could not add alternate for '%s': %s\n"
msgstr "info: Tidak dapat menambahkan alternatif untuk '%s': %s\n"
-#: builtin/clone.c:304
+#: builtin/clone.c:310
#, c-format
msgid "%s exists and is not a directory"
msgstr "%s ada dan bukan direktori"
-#: builtin/clone.c:322
+#: builtin/clone.c:328
#, c-format
msgid "failed to start iterator over '%s'"
msgstr "gagal memulai iterator pada '%s'"
-#: builtin/clone.c:353
+#: builtin/clone.c:359
#, c-format
msgid "failed to create link '%s'"
msgstr "gagal membuat tautan '%s'"
-#: builtin/clone.c:357
+#: builtin/clone.c:363
#, c-format
msgid "failed to copy file to '%s'"
msgstr "gagal menyalin berkas ke '%s'"
-#: builtin/clone.c:362
+#: builtin/clone.c:368
#, c-format
msgid "failed to iterate over '%s'"
msgstr "gagal iterasi pada '%s'"
-#: builtin/clone.c:389
+#: builtin/clone.c:395
#, c-format
msgid "done.\n"
msgstr "selesai.\n"
-#: builtin/clone.c:403
+#: builtin/clone.c:409
msgid ""
"Clone succeeded, but checkout failed.\n"
"You can inspect what was checked out with 'git status'\n"
@@ -12914,101 +13418,101 @@ msgstr ""
"Anda dapat periksa apa yang dicheckout dengan 'git status'\n"
"dan coba lagi dengan 'git restore --source=HEAD :/'\n"
-#: builtin/clone.c:480
+#: builtin/clone.c:486
#, c-format
msgid "Could not find remote branch %s to clone."
msgstr "Tidak dapat menemukan cabang remote %s untuk diklon."
-#: builtin/clone.c:597
+#: builtin/clone.c:603
#, c-format
msgid "unable to update %s"
msgstr "tidak dapat memperbarui %s"
-#: builtin/clone.c:645
+#: builtin/clone.c:651
msgid "failed to initialize sparse-checkout"
msgstr "gagal menginisalisasi checkout tipis"
-#: builtin/clone.c:668
+#: builtin/clone.c:674
msgid "remote HEAD refers to nonexistent ref, unable to checkout.\n"
msgstr ""
"HEAD remote merujuk pada ref yang tidak ada, tidak dapat men-checkout.\n"
-#: builtin/clone.c:701
+#: builtin/clone.c:709
msgid "unable to checkout working tree"
msgstr "tidak dapat men-checkout pohon kerja"
-#: builtin/clone.c:779
+#: builtin/clone.c:793
msgid "unable to write parameters to config file"
msgstr "tidak dapat menulis parameter ke berkas konfigurasi"
-#: builtin/clone.c:842
+#: builtin/clone.c:856
msgid "cannot repack to clean up"
msgstr "tidak dapat memaket ulang untuk pembersihan"
-#: builtin/clone.c:844
+#: builtin/clone.c:858
msgid "cannot unlink temporary alternates file"
msgstr "tidak dapat batal-taut berkas alternatif sementara"
-#: builtin/clone.c:886
+#: builtin/clone.c:901
msgid "Too many arguments."
msgstr "Terlalu banyak argumen."
-#: builtin/clone.c:890 contrib/scalar/scalar.c:414
+#: builtin/clone.c:905 contrib/scalar/scalar.c:413
msgid "You must specify a repository to clone."
msgstr "Anda harus sebutkan repositori untuk diklon."
-#: builtin/clone.c:903
+#: builtin/clone.c:918
#, c-format
msgid "options '%s' and '%s %s' cannot be used together"
msgstr "opsi '%s' dan '%s %s' tidak dapat digunakan bersamaan"
-#: builtin/clone.c:920
+#: builtin/clone.c:935
#, c-format
msgid "repository '%s' does not exist"
msgstr "repositori '%s' tidak ada"
-#: builtin/clone.c:924 builtin/fetch.c:2052
+#: builtin/clone.c:939 builtin/fetch.c:2176
#, c-format
msgid "depth %s is not a positive number"
msgstr "kedalaman %s bukan bilangan positif"
-#: builtin/clone.c:934
+#: builtin/clone.c:949
#, c-format
msgid "destination path '%s' already exists and is not an empty directory."
msgstr "jalur tujuan '%s' sudah ada dan bukan direktori kosong"
-#: builtin/clone.c:940
+#: builtin/clone.c:955
#, c-format
msgid "repository path '%s' already exists and is not an empty directory."
msgstr "jalur repositori '%s' sudah ada dan bukan direktori kosong"
-#: builtin/clone.c:954
+#: builtin/clone.c:969
#, c-format
msgid "working tree '%s' already exists."
msgstr "pohon kerja '%s' sudah ada."
-#: builtin/clone.c:969 builtin/clone.c:990 builtin/difftool.c:256
-#: builtin/log.c:2012 builtin/worktree.c:281 builtin/worktree.c:313
+#: builtin/clone.c:984 builtin/clone.c:1005 builtin/difftool.c:256
+#: builtin/log.c:2037 builtin/worktree.c:350 builtin/worktree.c:382
#, c-format
msgid "could not create leading directories of '%s'"
msgstr "tidak dapat membuat direktori pendahulu '%s'"
-#: builtin/clone.c:974
+#: builtin/clone.c:989
#, c-format
msgid "could not create work tree dir '%s'"
msgstr "tidak dapat membuat direktori pohon kerja '%s'"
-#: builtin/clone.c:994
+#: builtin/clone.c:1009
#, c-format
msgid "Cloning into bare repository '%s'...\n"
msgstr "Kloning ke repositori bare '%s'...\n"
-#: builtin/clone.c:996
+#: builtin/clone.c:1011
#, c-format
msgid "Cloning into '%s'...\n"
msgstr "Kloning ke '%s'...\n"
-#: builtin/clone.c:1025
+#: builtin/clone.c:1040
msgid ""
"clone --recursive is not compatible with both --reference and --reference-if-"
"able"
@@ -13016,47 +13520,51 @@ msgstr ""
"clone --recursive tidak kompatibel dengan baik --reference dan --reference-"
"if-able"
-#: builtin/clone.c:1080 builtin/remote.c:200 builtin/remote.c:710
+#: builtin/clone.c:1116 builtin/remote.c:201 builtin/remote.c:721
#, c-format
msgid "'%s' is not a valid remote name"
msgstr "'%s' bukan nama remote yang valid"
-#: builtin/clone.c:1121
+#: builtin/clone.c:1157
msgid "--depth is ignored in local clones; use file:// instead."
msgstr "--depth diabaikan di klon lokal; gunakan file:// sebagai gantinya."
-#: builtin/clone.c:1123
+#: builtin/clone.c:1159
msgid "--shallow-since is ignored in local clones; use file:// instead."
msgstr ""
"--shallow-since diabaikan di klon lokal; gunakan file:// sebagai gantinya."
-#: builtin/clone.c:1125
+#: builtin/clone.c:1161
msgid "--shallow-exclude is ignored in local clones; use file:// instead."
msgstr ""
"--shallow-exclude diabaikan di klon lokal; gunakan file:// sebagai gantinya."
-#: builtin/clone.c:1127
+#: builtin/clone.c:1163
msgid "--filter is ignored in local clones; use file:// instead."
msgstr "--filter diabaikan di klon lokal; gunakan file:// sebagai gantinya."
-#: builtin/clone.c:1132
+#: builtin/clone.c:1168
msgid "source repository is shallow, ignoring --local"
msgstr "repositori sumber dangkal, abaikan --local"
-#: builtin/clone.c:1137
+#: builtin/clone.c:1173
msgid "--local is ignored"
msgstr "--local diabaikan"
-#: builtin/clone.c:1216 builtin/clone.c:1276
+#: builtin/clone.c:1185
+msgid "cannot clone from filtered bundle"
+msgstr "tidak dapat mengkloning dari bundel tersaring"
+
+#: builtin/clone.c:1265 builtin/clone.c:1324
msgid "remote transport reported error"
msgstr "transportasi remote melaporkan kesalahan"
-#: builtin/clone.c:1228 builtin/clone.c:1239
+#: builtin/clone.c:1277 builtin/clone.c:1289
#, c-format
msgid "Remote branch %s not found in upstream %s"
msgstr "Cabang remote %s tidak ditemukan di hulu %s"
-#: builtin/clone.c:1242
+#: builtin/clone.c:1292
msgid "You appear to have cloned an empty repository."
msgstr "Anda tampaknya mengklon repositori kosong."
@@ -13104,7 +13612,7 @@ msgid ""
"paths] [--[no-]max-new-filters <n>] [--[no-]progress] <split options>"
msgstr ""
-#: builtin/commit-graph.c:51 builtin/fetch.c:192 builtin/log.c:1794
+#: builtin/commit-graph.c:51 builtin/fetch.c:196 builtin/log.c:1813
msgid "dir"
msgstr ""
@@ -13202,7 +13710,7 @@ msgstr ""
msgid "duplicate parent %s ignored"
msgstr "induk duplikat %s diabaikan"
-#: builtin/commit-tree.c:56 builtin/commit-tree.c:134 builtin/log.c:577
+#: builtin/commit-tree.c:56 builtin/commit-tree.c:134 builtin/log.c:590
#, c-format
msgid "not a valid object name %s"
msgstr "bukan nama objek valid %s"
@@ -13225,13 +13733,13 @@ msgstr "induk"
msgid "id of a parent commit object"
msgstr "id objek komit induk"
-#: builtin/commit-tree.c:112 builtin/commit.c:1627 builtin/merge.c:284
-#: builtin/notes.c:407 builtin/notes.c:573 builtin/stash.c:1677
-#: builtin/tag.c:454
+#: builtin/commit-tree.c:112 builtin/commit.c:1626 builtin/merge.c:284
+#: builtin/notes.c:407 builtin/notes.c:573 builtin/stash.c:1666
+#: builtin/tag.c:455
msgid "message"
msgstr "pesan"
-#: builtin/commit-tree.c:113 builtin/commit.c:1627
+#: builtin/commit-tree.c:113 builtin/commit.c:1626
msgid "commit message"
msgstr "pesan komit"
@@ -13239,7 +13747,7 @@ msgstr "pesan komit"
msgid "read commit log message from file"
msgstr "baca pesan log komit dari berkas"
-#: builtin/commit-tree.c:119 builtin/commit.c:1644 builtin/merge.c:303
+#: builtin/commit-tree.c:119 builtin/commit.c:1643 builtin/merge.c:303
#: builtin/pull.c:180 builtin/revert.c:118
msgid "GPG sign commit"
msgstr "Tandatangani komit dengan GPG"
@@ -13252,15 +13760,15 @@ msgstr "harus berikan tepat satu pohon"
msgid "git commit-tree: failed to read"
msgstr "git commit-tree: gagal membaca"
-#: builtin/commit.c:42
+#: builtin/commit.c:43
msgid "git commit [<options>] [--] <pathspec>..."
msgstr "git commit [<opsi>] [--] <spek jalur>..."
-#: builtin/commit.c:47
+#: builtin/commit.c:48
msgid "git status [<options>] [--] <pathspec>..."
msgstr "git status [<opsi>] [--] <spek jalur>..."
-#: builtin/commit.c:52
+#: builtin/commit.c:53
msgid ""
"You asked to amend the most recent commit, but doing so would make\n"
"it empty. You can repeat your command with --allow-empty, or you can\n"
@@ -13271,7 +13779,7 @@ msgstr ""
"dengan --allow-empty, atau Anda dapat menghapus keseluruhan komit\n"
"dengan \"git reset HEAD^\".\n"
-#: builtin/commit.c:57
+#: builtin/commit.c:58
msgid ""
"The previous cherry-pick is now empty, possibly due to conflict resolution.\n"
"If you wish to commit it anyway, use:\n"
@@ -13285,15 +13793,15 @@ msgstr ""
" git commit --allow-empty\n"
"\n"
-#: builtin/commit.c:64
+#: builtin/commit.c:65
msgid "Otherwise, please use 'git rebase --skip'\n"
msgstr "Selain itu, gunakan 'git rebase --skip'\n"
-#: builtin/commit.c:67
+#: builtin/commit.c:68
msgid "Otherwise, please use 'git cherry-pick --skip'\n"
msgstr "Selain itu, gunakan 'git cherry-pick --skip'\n"
-#: builtin/commit.c:70
+#: builtin/commit.c:71
msgid ""
"and then use:\n"
"\n"
@@ -13314,69 +13822,69 @@ msgstr ""
" git cherry-pick --skip\n"
"\n"
-#: builtin/commit.c:325
+#: builtin/commit.c:326
msgid "failed to unpack HEAD tree object"
msgstr "gagal membuka objek pohon HEAD"
-#: builtin/commit.c:375
+#: builtin/commit.c:376
msgid "No paths with --include/--only does not make sense."
msgstr "Tanpa jalur dengan --include/--only tidak masuk akal."
-#: builtin/commit.c:387
+#: builtin/commit.c:388
msgid "unable to create temporary index"
msgstr "tidak dapat membuat indeks sementara"
-#: builtin/commit.c:396
+#: builtin/commit.c:397
msgid "interactive add failed"
msgstr "penambahan interaktif gagal"
-#: builtin/commit.c:411
+#: builtin/commit.c:412
msgid "unable to update temporary index"
msgstr "tidak dapat memperbarui indeks sementara"
-#: builtin/commit.c:413
+#: builtin/commit.c:414
msgid "Failed to update main cache tree"
msgstr "gagal memperbarui tembolok pohon utama"
-#: builtin/commit.c:438 builtin/commit.c:461 builtin/commit.c:509
+#: builtin/commit.c:439 builtin/commit.c:462 builtin/commit.c:510
msgid "unable to write new_index file"
msgstr "tidak dapat menulis berkas new_index"
-#: builtin/commit.c:490
+#: builtin/commit.c:491
msgid "cannot do a partial commit during a merge."
msgstr "tidak dapat melakukan komit sebagian selama penggabungan."
-#: builtin/commit.c:492
+#: builtin/commit.c:493
msgid "cannot do a partial commit during a cherry-pick."
msgstr "tidak dapat melakukan komit sebagian selama pemetikan ceri."
-#: builtin/commit.c:494
+#: builtin/commit.c:495
msgid "cannot do a partial commit during a rebase."
msgstr "tidak dapat melakukan komit sebagian selama pendasaran ulang."
-#: builtin/commit.c:502
+#: builtin/commit.c:503
msgid "cannot read the index"
msgstr "tidak dapat membaca indeks"
-#: builtin/commit.c:521
+#: builtin/commit.c:522
msgid "unable to write temporary index file"
msgstr "tidak dapat menulis berkas indeks sementara"
-#: builtin/commit.c:619
+#: builtin/commit.c:620
#, c-format
msgid "commit '%s' lacks author header"
msgstr "komit '%s' kurang kepala pengarang"
-#: builtin/commit.c:621
+#: builtin/commit.c:622
#, c-format
msgid "commit '%s' has malformed author line"
msgstr "komit '%s' ada baris pengarang cacat"
-#: builtin/commit.c:640
+#: builtin/commit.c:641
msgid "malformed --author parameter"
msgstr "parameter --author cacat"
-#: builtin/commit.c:693
+#: builtin/commit.c:694
msgid ""
"unable to select a comment character that is not used\n"
"in the current commit message"
@@ -13384,43 +13892,43 @@ msgstr ""
"tidak dapat memilih karakter komentar yang tidak terpakai\n"
"dalam pesan komit saat ini"
-#: builtin/commit.c:747 builtin/commit.c:781 builtin/commit.c:1166
+#: builtin/commit.c:750 builtin/commit.c:784 builtin/commit.c:1170
#, c-format
msgid "could not lookup commit %s"
msgstr "tidak dapat mencari komit %s"
-#: builtin/commit.c:759 builtin/shortlog.c:416
+#: builtin/commit.c:762 builtin/shortlog.c:417
#, c-format
msgid "(reading log message from standard input)\n"
msgstr "(baca pesan log dari standar masukan)\n"
-#: builtin/commit.c:761
+#: builtin/commit.c:764
msgid "could not read log from standard input"
msgstr "tidak dapat membaca log dari standar masukan"
-#: builtin/commit.c:765
+#: builtin/commit.c:768
#, c-format
msgid "could not read log file '%s'"
msgstr "tidak dapat membaca berkas log '%s'"
-#: builtin/commit.c:802
+#: builtin/commit.c:805
#, c-format
msgid "options '%s' and '%s:%s' cannot be used together"
msgstr "opsi '%s' dan '%s:%s' tidak dapat digunakan bersamaan"
-#: builtin/commit.c:814 builtin/commit.c:830
+#: builtin/commit.c:817 builtin/commit.c:833
msgid "could not read SQUASH_MSG"
msgstr "tidak dapat membaca SQUASH_MSG"
-#: builtin/commit.c:821
+#: builtin/commit.c:824
msgid "could not read MERGE_MSG"
msgstr "tidak dapat membaca MERGE_MSG"
-#: builtin/commit.c:881
+#: builtin/commit.c:884
msgid "could not write commit template"
msgstr "tidak dapat menulis templat komit"
-#: builtin/commit.c:894
+#: builtin/commit.c:897
#, c-format
msgid ""
"Please enter the commit message for your changes. Lines starting\n"
@@ -13429,7 +13937,7 @@ msgstr ""
"Mohon masukkan pesan komit untuk perubahan Anda. Baris yang diawali\n"
"dengan '%c' akan diabaikan.\n"
-#: builtin/commit.c:896
+#: builtin/commit.c:899
#, c-format
msgid ""
"Please enter the commit message for your changes. Lines starting\n"
@@ -13438,7 +13946,7 @@ msgstr ""
"Mohon masukkan pesan komit untuk perubahan Anda. Baris yang diawali\n"
"dengan '%c' akan diabaikan, dan pesan kosong batalkan komit.\n"
-#: builtin/commit.c:900
+#: builtin/commit.c:903
#, c-format
msgid ""
"Please enter the commit message for your changes. Lines starting\n"
@@ -13447,7 +13955,7 @@ msgstr ""
"Mohon masukkan pesan komit untuk perubahan Anda. Baris yang diawali\n"
"dengan '%c' akan tetap; Anda dapat menghapus itu jika Anda mau.\n"
-#: builtin/commit.c:904
+#: builtin/commit.c:907
#, c-format
msgid ""
"Please enter the commit message for your changes. Lines starting\n"
@@ -13458,7 +13966,7 @@ msgstr ""
"dengan '%c' akan tetap; Anda dapat menghapus itu jika Anda mau.\n"
"Pesan kosong batalkan komit.\n"
-#: builtin/commit.c:916
+#: builtin/commit.c:919
msgid ""
"\n"
"It looks like you may be committing a merge.\n"
@@ -13472,7 +13980,7 @@ msgstr ""
"\tgit update-ref -d MERGE_HEAD\n"
"dan coba lagi.\n"
-#: builtin/commit.c:921
+#: builtin/commit.c:924
msgid ""
"\n"
"It looks like you may be committing a cherry-pick.\n"
@@ -13486,169 +13994,147 @@ msgstr ""
"\tgit update-ref -d CHERRY_PICK_HEAD\n"
"dan coba lagi.\n"
-#: builtin/commit.c:948
+#: builtin/commit.c:951
#, c-format
msgid "%sAuthor: %.*s <%.*s>"
msgstr "%sPengarang: %.*s <%.*s>"
-#: builtin/commit.c:956
+#: builtin/commit.c:959
#, c-format
msgid "%sDate: %s"
msgstr "%sTanggal: %s"
-#: builtin/commit.c:963
+#: builtin/commit.c:966
#, c-format
msgid "%sCommitter: %.*s <%.*s>"
msgstr "%sPengkomit: %.*s <%.*s>"
-#: builtin/commit.c:981
+#: builtin/commit.c:984
msgid "Cannot read index"
msgstr "Tidak dapat membaca indeks"
-#: builtin/commit.c:1026
+#: builtin/commit.c:1029
msgid "unable to pass trailers to --trailers"
msgstr "tidak dapat melewatkan trailer ke --trailers"
-#: builtin/commit.c:1066
+#: builtin/commit.c:1069
msgid "Error building trees"
msgstr "Kesalahan membangun pohon"
-#: builtin/commit.c:1080 builtin/tag.c:316
+#: builtin/commit.c:1083 builtin/tag.c:317
#, c-format
msgid "Please supply the message using either -m or -F option.\n"
msgstr "Mohon berikan pesan baik dengan opsi -m atau -F.\n"
-#: builtin/commit.c:1124
+#: builtin/commit.c:1128
#, c-format
msgid "--author '%s' is not 'Name <email>' and matches no existing author"
msgstr ""
"--author '%s' bukan 'Nama <email>' dan tidak cocok dengan pengarang yang ada"
-#: builtin/commit.c:1138
+#: builtin/commit.c:1142
#, c-format
msgid "Invalid ignored mode '%s'"
msgstr "Mode terabaikan '%s' tidak valid"
-#: builtin/commit.c:1156 builtin/commit.c:1451
+#: builtin/commit.c:1160 builtin/commit.c:1450
#, c-format
msgid "Invalid untracked files mode '%s'"
msgstr "Mode berkas tak terlacak '%s' tidak valid"
-#: builtin/commit.c:1227
+#: builtin/commit.c:1231
msgid "You are in the middle of a merge -- cannot reword."
msgstr "Anda berada di tengah penggabungan -- tidak dapat menulis ulang."
-#: builtin/commit.c:1229
+#: builtin/commit.c:1233
msgid "You are in the middle of a cherry-pick -- cannot reword."
msgstr "Anda berada di tengah pemetikan ceri -- tidak dapat menulis ulang."
-#: builtin/commit.c:1232
+#: builtin/commit.c:1236
#, c-format
msgid "reword option of '%s' and path '%s' cannot be used together"
msgstr "opsi reword '%s' dan jalur '%s' tidak dapat digunakan bersamaan"
-#: builtin/commit.c:1234
+#: builtin/commit.c:1238
#, c-format
msgid "reword option of '%s' and '%s' cannot be used together"
msgstr "opsi reword '%s' dan '%s' tidak dapat digunakan bersamaan"
-#: builtin/commit.c:1254
-msgid "Using both --reset-author and --author does not make sense"
-msgstr "Menggunakan baik --reset-author dan --author tidak masuk akal"
-
-#: builtin/commit.c:1261
+#: builtin/commit.c:1263
msgid "You have nothing to amend."
msgstr "Anda tidak punya apapun untuk diubah."
-#: builtin/commit.c:1264
+#: builtin/commit.c:1266
msgid "You are in the middle of a merge -- cannot amend."
msgstr "Anda berada di tengah penggabungan -- tidak dapat mengubah."
-#: builtin/commit.c:1266
+#: builtin/commit.c:1268
msgid "You are in the middle of a cherry-pick -- cannot amend."
msgstr "Anda berada di tengah pemetikan ceri -- tidak dapat mengubah."
-#: builtin/commit.c:1268
+#: builtin/commit.c:1270
msgid "You are in the middle of a rebase -- cannot amend."
msgstr "Anda berada di tengah pendasaran ulang -- tidak dapat mengubah."
-#: builtin/commit.c:1271
-msgid "Options --squash and --fixup cannot be used together"
-msgstr "Opsi --squash dan --fixup tidak dapat digunakan bersamaan"
-
-#: builtin/commit.c:1281
-msgid "Only one of -c/-C/-F/--fixup can be used."
-msgstr "Hanya salah satu dari -c/-C/-F/--fixup yang dapat digunakan."
-
-#: builtin/commit.c:1283
-msgid "Option -m cannot be combined with -c/-C/-F."
-msgstr "Opsi -m tidak dapat digabung dengan -c/-C/-F."
-
-#: builtin/commit.c:1292
+#: builtin/commit.c:1290
msgid "--reset-author can be used only with -C, -c or --amend."
msgstr "--reset-author hanya dapat digunakan dengan -C, -c atau --amend."
-#: builtin/commit.c:1310
-msgid "Only one of --include/--only/--all/--interactive/--patch can be used."
-msgstr ""
-"Hanya salah satu dari --include/--only/--all/--interactive/--patch yang "
-"dapat digunakan."
-
-#: builtin/commit.c:1338
+#: builtin/commit.c:1337
#, c-format
msgid "unknown option: --fixup=%s:%s"
-msgstr ""
+msgstr "opsi tidak dikenal: --fixup=%s:%s"
-#: builtin/commit.c:1355
+#: builtin/commit.c:1354
#, c-format
msgid "paths '%s ...' with -a does not make sense"
msgstr "jalur '%s ...' dengan -a tidak masuk akal"
-#: builtin/commit.c:1486 builtin/commit.c:1655
+#: builtin/commit.c:1485 builtin/commit.c:1654
msgid "show status concisely"
msgstr "perlihatkan status dengan ringkas"
-#: builtin/commit.c:1488 builtin/commit.c:1657
+#: builtin/commit.c:1487 builtin/commit.c:1656
msgid "show branch information"
msgstr "perlihatkan informasi cabang"
-#: builtin/commit.c:1490
+#: builtin/commit.c:1489
msgid "show stash information"
msgstr "perlihatkan informasi stase"
-#: builtin/commit.c:1492 builtin/commit.c:1659
+#: builtin/commit.c:1491 builtin/commit.c:1658
msgid "compute full ahead/behind values"
msgstr "hitung nilai didepan/dibelakang penuh"
-#: builtin/commit.c:1494
+#: builtin/commit.c:1493
msgid "version"
msgstr "versi"
-#: builtin/commit.c:1494 builtin/commit.c:1661 builtin/push.c:551
-#: builtin/worktree.c:690
+#: builtin/commit.c:1493 builtin/commit.c:1660 builtin/push.c:551
+#: builtin/worktree.c:765
msgid "machine-readable output"
msgstr "keluaran yang dapat dibaca mesin"
-#: builtin/commit.c:1497 builtin/commit.c:1663
+#: builtin/commit.c:1496 builtin/commit.c:1662
msgid "show status in long format (default)"
msgstr "perlihatkan status dalam format panjang (asali)"
-#: builtin/commit.c:1500 builtin/commit.c:1666
+#: builtin/commit.c:1499 builtin/commit.c:1665
msgid "terminate entries with NUL"
msgstr "akhiri entri dengan NUL"
-#: builtin/commit.c:1502 builtin/commit.c:1506 builtin/commit.c:1669
+#: builtin/commit.c:1501 builtin/commit.c:1505 builtin/commit.c:1668
#: builtin/fast-export.c:1172 builtin/fast-export.c:1175
-#: builtin/fast-export.c:1178 builtin/rebase.c:1111 parse-options.h:337
+#: builtin/fast-export.c:1178 builtin/rebase.c:1139 parse-options.h:368
msgid "mode"
msgstr "mode"
-#: builtin/commit.c:1503 builtin/commit.c:1669
+#: builtin/commit.c:1502 builtin/commit.c:1668
msgid "show untracked files, optional modes: all, normal, no. (Default: all)"
msgstr ""
"perlihatkan berkas tak terlacak, mode opsional: all, normal, no. (Asali: all)"
-#: builtin/commit.c:1507
+#: builtin/commit.c:1506
msgid ""
"show ignored files, optional modes: traditional, matching, no. (Default: "
"traditional)"
@@ -13656,11 +14142,11 @@ msgstr ""
"perlihatkan berkas terabaikan, mode opsional: traditional, matching, no. "
"(Asali: traditional)"
-#: builtin/commit.c:1509 parse-options.h:192
+#: builtin/commit.c:1508 parse-options.h:197
msgid "when"
msgstr "bila"
-#: builtin/commit.c:1510
+#: builtin/commit.c:1509
msgid ""
"ignore changes to submodules, optional when: all, dirty, untracked. "
"(Default: all)"
@@ -13668,192 +14154,192 @@ msgstr ""
"abaikan perubahan submodul, bila opsional: all, dirty, untracked. (Asali: "
"all)"
-#: builtin/commit.c:1512
+#: builtin/commit.c:1511
msgid "list untracked files in columns"
msgstr "sebut berkas tak terlacak dalam kolom"
-#: builtin/commit.c:1513
+#: builtin/commit.c:1512
msgid "do not detect renames"
msgstr "jangan deteksi penggantian nama"
-#: builtin/commit.c:1515
+#: builtin/commit.c:1514
msgid "detect renames, optionally set similarity index"
msgstr "deteksi penggantian nama, setel indeks kemiripan secara opsional"
-#: builtin/commit.c:1538
+#: builtin/commit.c:1537
msgid "Unsupported combination of ignored and untracked-files arguments"
msgstr "Kombinasi argumen berkas terabaikan dan tak terlacak tidak didukung"
-#: builtin/commit.c:1620
+#: builtin/commit.c:1619
msgid "suppress summary after successful commit"
msgstr "sembunyikan rangkuman setelah komit berhasil"
-#: builtin/commit.c:1621
+#: builtin/commit.c:1620
msgid "show diff in commit message template"
msgstr "perlihatkan diff dalam templat pesan komit"
-#: builtin/commit.c:1623
+#: builtin/commit.c:1622
msgid "Commit message options"
msgstr "Opsi pesan komit"
-#: builtin/commit.c:1624 builtin/merge.c:288 builtin/tag.c:456
+#: builtin/commit.c:1623 builtin/merge.c:288 builtin/tag.c:457
msgid "read message from file"
msgstr "Baca pesan dari berkas"
-#: builtin/commit.c:1625
+#: builtin/commit.c:1624
msgid "author"
msgstr "pengarang"
-#: builtin/commit.c:1625
+#: builtin/commit.c:1624
msgid "override author for commit"
msgstr "timpa pengarang komit"
-#: builtin/commit.c:1626 builtin/gc.c:551
+#: builtin/commit.c:1625 builtin/gc.c:551
msgid "date"
msgstr "tangal"
-#: builtin/commit.c:1626
+#: builtin/commit.c:1625
msgid "override date for commit"
msgstr "timpa tanggal komit"
-#: builtin/commit.c:1628 builtin/commit.c:1629 builtin/commit.c:1635
-#: parse-options.h:329 ref-filter.h:89
+#: builtin/commit.c:1627 builtin/commit.c:1628 builtin/commit.c:1634
+#: parse-options.h:360 ref-filter.h:89
msgid "commit"
msgstr "komit"
-#: builtin/commit.c:1628
+#: builtin/commit.c:1627
msgid "reuse and edit message from specified commit"
msgstr "gunakan kembali dan sunting pesan dari komit tersebut"
-#: builtin/commit.c:1629
+#: builtin/commit.c:1628
msgid "reuse message from specified commit"
msgstr "gunakan kembali pesan dari komit tersebut"
#. TRANSLATORS: Leave "[(amend|reword):]" as-is,
#. and only translate <commit>.
#.
-#: builtin/commit.c:1634
+#: builtin/commit.c:1633
msgid "[(amend|reword):]commit"
msgstr "[(amend|reword):]komit"
-#: builtin/commit.c:1634
+#: builtin/commit.c:1633
msgid ""
"use autosquash formatted message to fixup or amend/reword specified commit"
msgstr ""
"gunakan pesan terformat autosquash untuk perbaiki atau ubah/tulis ulang "
"komit yang disebutkan"
-#: builtin/commit.c:1635
+#: builtin/commit.c:1634
msgid "use autosquash formatted message to squash specified commit"
msgstr "gunakan pesan terformat autosquash untuk lumat komit tersebut"
-#: builtin/commit.c:1636
+#: builtin/commit.c:1635
msgid "the commit is authored by me now (used with -C/-c/--amend)"
msgstr "komit sekarang dikarang olehku (gunakan dengan -C/-c/--amend)"
-#: builtin/commit.c:1637 builtin/interpret-trailers.c:111
+#: builtin/commit.c:1636 builtin/interpret-trailers.c:111
msgid "trailer"
-msgstr ""
+msgstr "trailer"
-#: builtin/commit.c:1637
+#: builtin/commit.c:1636
msgid "add custom trailer(s)"
-msgstr ""
+msgstr "tambahkan trailer kustom"
-#: builtin/commit.c:1638 builtin/log.c:1769 builtin/merge.c:306
+#: builtin/commit.c:1637 builtin/log.c:1788 builtin/merge.c:306
#: builtin/pull.c:146 builtin/revert.c:110
msgid "add a Signed-off-by trailer"
msgstr "tambahkan trailer Signed-off-by"
-#: builtin/commit.c:1639
+#: builtin/commit.c:1638
msgid "use specified template file"
msgstr "gunakan templat berkas tersebut"
-#: builtin/commit.c:1640
+#: builtin/commit.c:1639
msgid "force edit of commit"
msgstr "paksa sunting komit"
-#: builtin/commit.c:1642
+#: builtin/commit.c:1641
msgid "include status in commit message template"
msgstr "masukkan status dalam templat pesaan komit"
-#: builtin/commit.c:1647
+#: builtin/commit.c:1646
msgid "Commit contents options"
msgstr "Opsi isi komit"
-#: builtin/commit.c:1648
+#: builtin/commit.c:1647
msgid "commit all changed files"
msgstr "komit semua berkas terubah"
-#: builtin/commit.c:1649
+#: builtin/commit.c:1648
msgid "add specified files to index for commit"
msgstr "tambahakn berkas tersebut ke indeks untuk dikomit"
-#: builtin/commit.c:1650
+#: builtin/commit.c:1649
msgid "interactively add files"
msgstr "tambah berkas secara interaktif"
-#: builtin/commit.c:1651
+#: builtin/commit.c:1650
msgid "interactively add changes"
msgstr "tambah perubahan secara interaktif"
-#: builtin/commit.c:1652
+#: builtin/commit.c:1651
msgid "commit only specified files"
msgstr "hanya komit berkas tersebut"
-#: builtin/commit.c:1653
+#: builtin/commit.c:1652
msgid "bypass pre-commit and commit-msg hooks"
msgstr "lewati kail pre-commit dan commit-msg"
-#: builtin/commit.c:1654
+#: builtin/commit.c:1653
msgid "show what would be committed"
msgstr "perlihatkan apa yang akan dikomit"
-#: builtin/commit.c:1667
+#: builtin/commit.c:1666
msgid "amend previous commit"
msgstr "ubah komit sebelumnya"
-#: builtin/commit.c:1668
+#: builtin/commit.c:1667
msgid "bypass post-rewrite hook"
msgstr "lewati kail post-rewrite"
-#: builtin/commit.c:1675
+#: builtin/commit.c:1674
msgid "ok to record an empty change"
msgstr "ok merekam perubahan kosong"
-#: builtin/commit.c:1677
+#: builtin/commit.c:1676
msgid "ok to record a change with an empty message"
msgstr "ok merekam perubahan dengan pesan kosong"
-#: builtin/commit.c:1753
+#: builtin/commit.c:1752
#, c-format
msgid "Corrupt MERGE_HEAD file (%s)"
msgstr "Berkas MERGE_HEAD (%s) rusak"
-#: builtin/commit.c:1760
+#: builtin/commit.c:1759
msgid "could not read MERGE_MODE"
msgstr "tidak dapat membaca MERGE_MODE"
-#: builtin/commit.c:1781
+#: builtin/commit.c:1780
#, c-format
msgid "could not read commit message: %s"
msgstr "tidak dapat membaca pesan komit: %s"
-#: builtin/commit.c:1788
+#: builtin/commit.c:1787
#, c-format
msgid "Aborting commit due to empty commit message.\n"
msgstr "Batalkan komit karena pesan komit kosong.\n"
-#: builtin/commit.c:1793
+#: builtin/commit.c:1792
#, c-format
msgid "Aborting commit; you did not edit the message.\n"
msgstr "Batalkan komit; Anda tidak menyunting pesan.\n"
-#: builtin/commit.c:1804
+#: builtin/commit.c:1803
#, c-format
msgid "Aborting commit due to empty commit message body.\n"
msgstr "Batalkan komit karena badan pesan komit kosong.\n"
-#: builtin/commit.c:1840
+#: builtin/commit.c:1839
msgid ""
"repository has been updated, but unable to write\n"
"new_index file. Check that disk is not full and quota is\n"
@@ -13976,6 +14462,10 @@ msgstr "temukan setelan warna: slot [stdout-is-tty]"
msgid "Type"
msgstr "Tipe"
+#: builtin/config.c:154 builtin/env--helper.c:42 builtin/hash-object.c:97
+msgid "type"
+msgstr "tipe"
+
#: builtin/config.c:154 builtin/env--helper.c:43
msgid "value is given this type"
msgstr "Nilai diberikan tipe ini"
@@ -14189,10 +14679,6 @@ msgstr ""
msgid "no such section: %s"
msgstr "tidak ada bagian seperti: %s"
-#: builtin/count-objects.c:90
-msgid "git count-objects [-v] [-H | --human-readable]"
-msgstr "git count-objects [-v] [-H | --human-readable]"
-
#: builtin/count-objects.c:100
msgid "print sizes in human readable format"
msgstr "cetak ukuran dalam format yang bisa dibaca manusia"
@@ -14357,7 +14843,7 @@ msgstr "hanya pertimbangkan tag yang cocok dengan <pola>"
msgid "do not consider tags matching <pattern>"
msgstr "jangan pertimbangkan tag yang cocok dengan <pola>"
-#: builtin/describe.c:570 builtin/name-rev.c:544
+#: builtin/describe.c:570 builtin/name-rev.c:595
msgid "show abbreviated commit object as fallback"
msgstr "perlihatkan objek komit singkat sebagai langkah terakhir"
@@ -14405,7 +14891,7 @@ msgstr "%s...%s: tidak ada dasar penggabungan"
msgid "Not a git repository"
msgstr "bukan repositori git"
-#: builtin/diff.c:537 builtin/grep.c:698
+#: builtin/diff.c:537 builtin/grep.c:700
#, c-format
msgid "invalid object '%s' given."
msgstr "objek yang diberikan '%s' tidak valid"
@@ -14523,11 +15009,11 @@ msgstr "dilewatkan ke `diff`"
msgid "difftool requires worktree or --no-index"
msgstr "difftool butuh pohon kerja atau --no-index"
-#: builtin/difftool.c:744
+#: builtin/difftool.c:745
msgid "no <tool> given for --tool=<tool>"
msgstr "tidak ada <alat> yang diberikan untuk --tool=<alat>"
-#: builtin/difftool.c:751
+#: builtin/difftool.c:752
msgid "no <cmd> given for --extcmd=<cmd>"
msgstr "tidak ada <perintah> yang diberikan untuk --extcmd=<perintah>"
@@ -14535,10 +15021,6 @@ msgstr "tidak ada <perintah> yang diberikan untuk --extcmd=<perintah>"
msgid "git env--helper --type=[bool|ulong] <options> <env-var>"
msgstr ""
-#: builtin/env--helper.c:42 builtin/hash-object.c:96
-msgid "type"
-msgstr ""
-
#: builtin/env--helper.c:46
msgid "default for git_env_*(...) to fall back on"
msgstr ""
@@ -14560,8 +15042,8 @@ msgid ""
msgstr ""
#: builtin/fast-export.c:29
-msgid "git fast-export [rev-list-opts]"
-msgstr "git fast-export [opsi rev-list]"
+msgid "git fast-export [<rev-list-opts>]"
+msgstr "git fast-export [<opsi rev-list>]"
#: builtin/fast-export.c:843
msgid "Error: Cannot export nested tags unless --mark-tags is specified."
@@ -14617,7 +15099,7 @@ msgstr "gunakan fitur selesai untuk mengakhiri arus"
msgid "skip output of blob data"
msgstr "lewati keluaran data blob"
-#: builtin/fast-export.c:1196 builtin/log.c:1841
+#: builtin/fast-export.c:1196 builtin/log.c:1860
msgid "refspec"
msgstr "spek referensi"
@@ -14649,37 +15131,37 @@ msgstr "perlihatkan id objek asli dari blob/komit"
msgid "label tags with mark ids"
msgstr "label tag dengan id tanda"
-#: builtin/fast-import.c:3090
+#: builtin/fast-import.c:3097
#, c-format
msgid "Missing from marks for submodule '%s'"
msgstr "Kehilangan tanda dari untuk submodul '%s'"
-#: builtin/fast-import.c:3092
+#: builtin/fast-import.c:3099
#, c-format
msgid "Missing to marks for submodule '%s'"
msgstr "Kehilangan tanda ke untuk submodul '%s'"
-#: builtin/fast-import.c:3227
+#: builtin/fast-import.c:3234
#, c-format
msgid "Expected 'mark' command, got %s"
msgstr "Perintah 'mark' diharapkan, dapat %s"
-#: builtin/fast-import.c:3232
+#: builtin/fast-import.c:3239
#, c-format
msgid "Expected 'to' command, got %s"
msgstr "Perintah 'to' diharapkan, dapat %s"
-#: builtin/fast-import.c:3324
+#: builtin/fast-import.c:3331
msgid "Expected format name:filename for submodule rewrite option"
msgstr ""
"Format nama:nama berkas diharapkan untuk operasi penulisan ulang submodul"
-#: builtin/fast-import.c:3379
+#: builtin/fast-import.c:3386
#, c-format
msgid "feature '%s' forbidden in input without --allow-unsafe-features"
msgstr "fitur '%s' dilarang dalam input tanpa --allow-unsafe-features"
-#: builtin/fetch-pack.c:242
+#: builtin/fetch-pack.c:246
#, c-format
msgid "Lockfile created but not reported: %s"
msgstr "Berkas kunci dibuat tetapi tidak dilaporkan: %s"
@@ -14700,102 +15182,106 @@ msgstr "git fetch --multiple [<opsi>] [(<repositori> | <grup>)]"
msgid "git fetch --all [<options>]"
msgstr "git fetch --all [<opsi>]"
-#: builtin/fetch.c:123
+#: builtin/fetch.c:124
msgid "fetch.parallel cannot be negative"
msgstr "fetch.parallel tidak dapat bernilai negatif"
-#: builtin/fetch.c:146 builtin/pull.c:189
+#: builtin/fetch.c:147 builtin/pull.c:189
msgid "fetch from all remotes"
msgstr "ambil dari semua remote"
-#: builtin/fetch.c:148 builtin/pull.c:249
+#: builtin/fetch.c:149 builtin/pull.c:249
msgid "set upstream for git pull/fetch"
msgstr "setel hulu untuk git pull/fetch"
-#: builtin/fetch.c:150 builtin/pull.c:192
+#: builtin/fetch.c:151 builtin/pull.c:192
msgid "append to .git/FETCH_HEAD instead of overwriting"
msgstr "tambah ke .git/FETCH_HEAD daripada timpa"
-#: builtin/fetch.c:152
+#: builtin/fetch.c:153
msgid "use atomic transaction to update references"
msgstr ""
-#: builtin/fetch.c:154 builtin/pull.c:195
+#: builtin/fetch.c:155 builtin/pull.c:195
msgid "path to upload pack on remote end"
msgstr "jalur ke paket unggah pada sisi remote"
-#: builtin/fetch.c:155
+#: builtin/fetch.c:156
msgid "force overwrite of local reference"
msgstr "paksa timpa referensi lokal"
-#: builtin/fetch.c:157
+#: builtin/fetch.c:158
msgid "fetch from multiple remotes"
msgstr "ambil dari banyak remote"
-#: builtin/fetch.c:159 builtin/pull.c:199
+#: builtin/fetch.c:160 builtin/pull.c:199
msgid "fetch all tags and associated objects"
msgstr "ambil semua tag dan objek yang bersesuaian"
-#: builtin/fetch.c:161
+#: builtin/fetch.c:162
msgid "do not fetch all tags (--no-tags)"
msgstr "jangan ambil semua tag (--no-tags)"
-#: builtin/fetch.c:163
+#: builtin/fetch.c:164
msgid "number of submodules fetched in parallel"
msgstr "jumlah submodul yang diambil secara bersamaan"
-#: builtin/fetch.c:165
+#: builtin/fetch.c:166
msgid "modify the refspec to place all refs within refs/prefetch/"
msgstr ""
"modifikasi spek referensi untuk tempatkan semua referensi di dalam refs/"
"prefetch/"
-#: builtin/fetch.c:167 builtin/pull.c:202
+#: builtin/fetch.c:168 builtin/pull.c:202
msgid "prune remote-tracking branches no longer on remote"
msgstr "buang cabang pelacak remote yang tidak ada pada remote"
-#: builtin/fetch.c:169
+#: builtin/fetch.c:170
msgid "prune local tags no longer on remote and clobber changed tags"
msgstr "buang tag lokal yang tidak ada pada remote dan klob tag yang berubah"
-#: builtin/fetch.c:170 builtin/fetch.c:195 builtin/pull.c:123
+#: builtin/fetch.c:171 builtin/fetch.c:199 builtin/pull.c:123
msgid "on-demand"
msgstr "sesuai permintaan"
-#: builtin/fetch.c:171
+#: builtin/fetch.c:172
msgid "control recursive fetching of submodules"
msgstr "kontrol pengambilan submodul rekursif"
-#: builtin/fetch.c:176
+#: builtin/fetch.c:177
msgid "write fetched references to the FETCH_HEAD file"
msgstr "tulis referensi yang diambil ke berkas FETCH_HEAD"
-#: builtin/fetch.c:177 builtin/pull.c:210
+#: builtin/fetch.c:178 builtin/pull.c:210
msgid "keep downloaded pack"
msgstr "simpan paket yang diunduh"
-#: builtin/fetch.c:179
+#: builtin/fetch.c:180
msgid "allow updating of HEAD ref"
msgstr "bolehkan perbarui referensi HEAD"
-#: builtin/fetch.c:182 builtin/fetch.c:188 builtin/pull.c:213
+#: builtin/fetch.c:183 builtin/fetch.c:189 builtin/pull.c:213
#: builtin/pull.c:222
msgid "deepen history of shallow clone"
msgstr "perdalam riwayat klon dangkal"
-#: builtin/fetch.c:184 builtin/pull.c:216
+#: builtin/fetch.c:185 builtin/pull.c:216
msgid "deepen history of shallow repository based on time"
msgstr "perdalam riwayat repositori dangkal berdasarkan waktu"
-#: builtin/fetch.c:190 builtin/pull.c:225
+#: builtin/fetch.c:191 builtin/pull.c:225
msgid "convert to a complete repository"
msgstr "ubah ke repositori penuh"
-#: builtin/fetch.c:193
+#: builtin/fetch.c:194
+msgid "re-fetch without negotiating common commits"
+msgstr ""
+
+#: builtin/fetch.c:197
msgid "prepend this to submodule path output"
msgstr "tambahkan ini ke jalur keluaran submodul"
-#: builtin/fetch.c:196
+#: builtin/fetch.c:200
msgid ""
"default for recursive fetching of submodules (lower priority than config "
"files)"
@@ -14803,108 +15289,103 @@ msgstr ""
"default untuk ambil submodul secara rekursif (prioritas lebih rendah "
"dariberkas konfigurasi)"
-#: builtin/fetch.c:200 builtin/pull.c:228
+#: builtin/fetch.c:204 builtin/pull.c:228
msgid "accept refs that update .git/shallow"
msgstr "terima referensi yang memperbarui .git/shallow"
-#: builtin/fetch.c:201 builtin/pull.c:230
+#: builtin/fetch.c:205 builtin/pull.c:230
msgid "refmap"
msgstr "peta referensi"
-#: builtin/fetch.c:202 builtin/pull.c:231
+#: builtin/fetch.c:206 builtin/pull.c:231
msgid "specify fetch refmap"
msgstr "sebutkan ambil peta referensi"
-#: builtin/fetch.c:209 builtin/pull.c:244
+#: builtin/fetch.c:213 builtin/pull.c:244
msgid "report that we have only objects reachable from this object"
msgstr ""
"laporkan bahwa kami hanya punya object yang bisa dicapai dari objek ini"
-#: builtin/fetch.c:211
+#: builtin/fetch.c:215
msgid "do not fetch a packfile; instead, print ancestors of negotiation tips"
msgstr ""
"jangan ambil berkas pak; sebagai gantinya cetak leluhur dari ujung negosiasi"
-#: builtin/fetch.c:214 builtin/fetch.c:216
+#: builtin/fetch.c:218 builtin/fetch.c:220
msgid "run 'maintenance --auto' after fetching"
msgstr "lakukan 'maintenance --auto' setelah pengambilan"
-#: builtin/fetch.c:218 builtin/pull.c:247
+#: builtin/fetch.c:222 builtin/pull.c:247
msgid "check for forced-updates on all updated branches"
msgstr "periksa pembaruan terpaksa pada semua cabang"
-#: builtin/fetch.c:220
+#: builtin/fetch.c:224
msgid "write the commit-graph after fetching"
msgstr "tulis grafik komit setelah pengambilan"
-#: builtin/fetch.c:222
+#: builtin/fetch.c:226
msgid "accept refspecs from stdin"
msgstr "terima spek referensi dari masukan standar"
-#: builtin/fetch.c:592
+#: builtin/fetch.c:618
msgid "couldn't find remote ref HEAD"
msgstr "tidak dapat menemukan referensi remote HEAD"
-#: builtin/fetch.c:766
-#, c-format
-msgid "configuration fetch.output contains invalid value %s"
-msgstr "konfigurasi fetch.output berisi nilai tidak valid %s"
-
-#: builtin/fetch.c:867
+#: builtin/fetch.c:893
#, c-format
msgid "object %s not found"
msgstr "objek %s tidak ditemukan"
-#: builtin/fetch.c:871
+#: builtin/fetch.c:897
msgid "[up to date]"
msgstr "[terkini]"
-#: builtin/fetch.c:883 builtin/fetch.c:901 builtin/fetch.c:973
+#: builtin/fetch.c:909 builtin/fetch.c:927 builtin/fetch.c:999
msgid "[rejected]"
msgstr "[tertolak]"
-#: builtin/fetch.c:885
+#: builtin/fetch.c:911
msgid "can't fetch in current branch"
msgstr "tidak dapat mengambil di cabang saat ini"
-#: builtin/fetch.c:886
+#: builtin/fetch.c:912
msgid "checked out in another worktree"
msgstr "ter-check out di dalam pohon kerja lainnya"
-#: builtin/fetch.c:896
+#: builtin/fetch.c:922
msgid "[tag update]"
msgstr "[pembaruan tag]"
-#: builtin/fetch.c:897 builtin/fetch.c:934 builtin/fetch.c:956
-#: builtin/fetch.c:968
+#: builtin/fetch.c:923 builtin/fetch.c:960 builtin/fetch.c:982
+#: builtin/fetch.c:994
msgid "unable to update local ref"
msgstr "tidak dapat memperbarui referensi lokal"
-#: builtin/fetch.c:901
+#: builtin/fetch.c:927
msgid "would clobber existing tag"
msgstr "akan klob tag yang ada"
-#: builtin/fetch.c:923
+#: builtin/fetch.c:949
msgid "[new tag]"
msgstr "[tag baru]"
-#: builtin/fetch.c:926
+#: builtin/fetch.c:952
msgid "[new branch]"
msgstr "[cabang baru]"
-#: builtin/fetch.c:929
+#: builtin/fetch.c:955
msgid "[new ref]"
msgstr "[referensi baru]"
-#: builtin/fetch.c:968
+#: builtin/fetch.c:994
msgid "forced update"
msgstr "pembaruan terpaksa"
-#: builtin/fetch.c:973
+#: builtin/fetch.c:999
msgid "non-fast-forward"
msgstr "bukan-maju-cepat"
-#: builtin/fetch.c:1076
+#: builtin/fetch.c:1102
msgid ""
"fetch normally indicates which branches had a forced update,\n"
"but that check has been disabled; to re-enable, use '--show-forced-updates'\n"
@@ -14916,7 +15397,7 @@ msgstr ""
"bendera '--show-forced-updates' atau jalankan 'git config fetch."
"showForcedUpdates true'."
-#: builtin/fetch.c:1080
+#: builtin/fetch.c:1106
#, c-format
msgid ""
"it took %.2f seconds to check forced updates; you can use\n"
@@ -14929,22 +15410,22 @@ msgstr ""
"'git config fetch.showForcedUpdates false'\n"
"untuk menghindari pemeriksaan ini.\n"
-#: builtin/fetch.c:1112
+#: builtin/fetch.c:1136
#, c-format
msgid "%s did not send all necessary objects\n"
msgstr "%s tidak mengirim semua objek yang diperlukan\n"
-#: builtin/fetch.c:1141
+#: builtin/fetch.c:1156
#, c-format
msgid "rejected %s because shallow roots are not allowed to be updated"
msgstr "tolak %s karena akar dangkal tidak diperkenankan untuk diperbarui"
-#: builtin/fetch.c:1231 builtin/fetch.c:1379
+#: builtin/fetch.c:1259 builtin/fetch.c:1418
#, c-format
msgid "From %.*s\n"
msgstr "Dari %.*s\n"
-#: builtin/fetch.c:1252
+#: builtin/fetch.c:1269
#, c-format
msgid ""
"some local refs could not be updated; try running\n"
@@ -14953,49 +15434,49 @@ msgstr ""
"beberapa referensi lokal tidak dapat diperbarui; coba jalankan\n"
" 'git remote prune %s' untuk hapus cabang yang lama dan berkonflik"
-#: builtin/fetch.c:1349
+#: builtin/fetch.c:1377
#, c-format
msgid " (%s will become dangling)"
msgstr " (%s akan menjadi terjuntai)"
-#: builtin/fetch.c:1350
+#: builtin/fetch.c:1378
#, c-format
msgid " (%s has become dangling)"
msgstr " (%s telah menjadi terjuntai)"
-#: builtin/fetch.c:1382
+#: builtin/fetch.c:1421
msgid "[deleted]"
msgstr "[dihapus]"
-#: builtin/fetch.c:1383 builtin/remote.c:1128
+#: builtin/fetch.c:1422 builtin/remote.c:1153
msgid "(none)"
msgstr "(tidak ada)"
-#: builtin/fetch.c:1405
+#: builtin/fetch.c:1446
#, c-format
msgid "refusing to fetch into branch '%s' checked out at '%s'"
msgstr "menolak mengambil ke dalam cabang '%s' yang ter-checkout pada '%s'"
-#: builtin/fetch.c:1425
+#: builtin/fetch.c:1466
#, c-format
msgid "option \"%s\" value \"%s\" is not valid for %s"
msgstr "opsi \"%s\" nilai \"%s\" tidak valid untuk %s"
-#: builtin/fetch.c:1428
+#: builtin/fetch.c:1469
#, c-format
msgid "option \"%s\" is ignored for %s\n"
msgstr "opsi \"%s\" diabaikan untuk %s\n"
-#: builtin/fetch.c:1455
+#: builtin/fetch.c:1496
#, c-format
msgid "the object %s does not exist"
msgstr "objek '%s' tidak ada"
-#: builtin/fetch.c:1643
+#: builtin/fetch.c:1748
msgid "multiple branches detected, incompatible with --set-upstream"
msgstr "banyak cabang terdeteksi, tidak kompatibel dengan --set-upstream"
-#: builtin/fetch.c:1655
+#: builtin/fetch.c:1760
#, c-format
msgid ""
"could not set upstream of HEAD to '%s' from '%s' when it does not point to "
@@ -15004,19 +15485,19 @@ msgstr ""
"tidak dapat menyetel hulu HEAD ke %s dari '%s' ketika itu tak menunjuk pada "
"cabang apapun."
-#: builtin/fetch.c:1668
+#: builtin/fetch.c:1773
msgid "not setting upstream for a remote remote-tracking branch"
msgstr "tidak setel hulu untuk cabang remote pelacak remote"
-#: builtin/fetch.c:1670
+#: builtin/fetch.c:1775
msgid "not setting upstream for a remote tag"
msgstr "tidak setel hulu untuk tag remote"
-#: builtin/fetch.c:1672
+#: builtin/fetch.c:1777
msgid "unknown branch type"
msgstr "tipe cabang tidak diketahui"
-#: builtin/fetch.c:1674
+#: builtin/fetch.c:1779
msgid ""
"no source branch found;\n"
"you need to specify exactly one branch with the --set-upstream option"
@@ -15024,22 +15505,22 @@ msgstr ""
"cabang sumber tidak ditemukan;\n"
"Anda harus sebutkan tepat satu cabang dengan opsi --set-upstream."
-#: builtin/fetch.c:1804 builtin/fetch.c:1867
+#: builtin/fetch.c:1904 builtin/fetch.c:1967
#, c-format
msgid "Fetching %s\n"
msgstr "Mengambil %s\n"
-#: builtin/fetch.c:1814 builtin/fetch.c:1869
+#: builtin/fetch.c:1914 builtin/fetch.c:1969
#, c-format
msgid "could not fetch %s"
msgstr "tidak dapat mengambil %s"
-#: builtin/fetch.c:1826
+#: builtin/fetch.c:1926
#, c-format
msgid "could not fetch '%s' (exit code: %d)\n"
msgstr "tidak dapat mengambil '%s' (kode keluar: %d)\n"
-#: builtin/fetch.c:1930
+#: builtin/fetch.c:2030
msgid ""
"no remote repository specified; please specify either a URL or a\n"
"remote name from which new revisions should be fetched"
@@ -15047,48 +15528,48 @@ msgstr ""
"repositori remote tidak disebutkan; mohon sebutkan baik URL atau nama\n"
"remote yang mana revisi baru sebaiknya diambil"
-#: builtin/fetch.c:1966
+#: builtin/fetch.c:2066
msgid "you need to specify a tag name"
msgstr "Anda perlu sebutkan sebuah nama tag"
-#: builtin/fetch.c:2032
-msgid "--negotiate-only needs one or more --negotiate-tip=*"
-msgstr "--negotiate-only perlu satu atau lebih --negotiate-tip=*"
+#: builtin/fetch.c:2156
+msgid "--negotiate-only needs one or more --negotiation-tip=*"
+msgstr "--negotiate-only perlu satu atau lebih --negotiation-tip=*"
-#: builtin/fetch.c:2036
+#: builtin/fetch.c:2160
msgid "negative depth in --deepen is not supported"
msgstr "kedalaman negatif pada --deepen tidak didukung"
-#: builtin/fetch.c:2045
+#: builtin/fetch.c:2169
msgid "--unshallow on a complete repository does not make sense"
msgstr "--unshallow pada repositori penuh tidak masuk akal"
-#: builtin/fetch.c:2062
+#: builtin/fetch.c:2186
msgid "fetch --all does not take a repository argument"
msgstr "fetch --all tidak mengambil argumen repositori"
-#: builtin/fetch.c:2064
+#: builtin/fetch.c:2188
msgid "fetch --all does not make sense with refspecs"
msgstr "fetch --all tidak masuk akal dengan spek referensi"
-#: builtin/fetch.c:2073
+#: builtin/fetch.c:2197
#, c-format
msgid "no such remote or remote group: %s"
msgstr "tidak ada remote atau grup remote seperti: %s"
-#: builtin/fetch.c:2081
+#: builtin/fetch.c:2205
msgid "fetching a group and specifying refspecs does not make sense"
msgstr "mengambil sebuah grup dan menyebutkan spek referensi tidak masuk akal"
-#: builtin/fetch.c:2097
+#: builtin/fetch.c:2221
msgid "must supply remote when using --negotiate-only"
msgstr "harus suplai remote ketika menggunakan --negotiate-only"
-#: builtin/fetch.c:2102
+#: builtin/fetch.c:2226
msgid "protocol does not support --negotiate-only, exiting"
msgstr "protokol tidak mendukung --negotiate-only, keluar."
-#: builtin/fetch.c:2121
+#: builtin/fetch.c:2246
msgid ""
"--filter can only be used with the remote configured in extensions."
"partialclone"
@@ -15096,11 +15577,11 @@ msgstr ""
"--filter hanya dapat digunakan dengan remote yang terkonfigurasi di "
"extensions.partialclone"
-#: builtin/fetch.c:2125
+#: builtin/fetch.c:2250
msgid "--atomic can only be used when fetching from one remote"
msgstr "--atomic hanya dapat digunakan saat mengambil dari satu remote"
-#: builtin/fetch.c:2129
+#: builtin/fetch.c:2254
msgid "--stdin can only be used when fetching from one remote"
msgstr "--stdin hanya dapat digunakan saat mengambil dari satu remote"
@@ -15169,7 +15650,7 @@ msgstr ""
msgid "show only <n> matched refs"
msgstr ""
-#: builtin/for-each-ref.c:42 builtin/tag.c:481
+#: builtin/for-each-ref.c:42 builtin/tag.c:482
msgid "respect format colors"
msgstr ""
@@ -15363,7 +15844,7 @@ msgstr "Memeriksa direktori objek"
msgid "Checking %s link"
msgstr "Memeriksa tautan %s"
-#: builtin/fsck.c:710 builtin/index-pack.c:859
+#: builtin/fsck.c:710 builtin/index-pack.c:862
#, c-format
msgid "invalid %s"
msgstr "%s tidak valid"
@@ -15432,7 +15913,7 @@ msgstr "juga pertimbangkan pak dan objek alternatif"
msgid "check only connectivity"
msgstr "hanya periksa konektivitas"
-#: builtin/fsck.c:798 builtin/mktag.c:76
+#: builtin/fsck.c:798 builtin/mktag.c:75
msgid "enable more strict checking"
msgstr "aktifkan pemeriksaan lebih ketat"
@@ -15462,6 +15943,118 @@ msgstr "%s: objek hilang"
msgid "invalid parameter: expected sha1, got '%s'"
msgstr "parameter tidak valid: sha1 diharapkan, dapat '%s'"
+#: builtin/fsmonitor--daemon.c:13
+msgid "git fsmonitor--daemon start [<options>]"
+msgstr ""
+
+#: builtin/fsmonitor--daemon.c:14
+msgid "git fsmonitor--daemon run [<options>]"
+msgstr ""
+
+#: builtin/fsmonitor--daemon.c:15
+msgid "git fsmonitor--daemon stop"
+msgstr ""
+
+#: builtin/fsmonitor--daemon.c:16
+msgid "git fsmonitor--daemon status"
+msgstr ""
+
+#: builtin/fsmonitor--daemon.c:38 builtin/fsmonitor--daemon.c:47
+#, c-format
+msgid "value of '%s' out of range: %d"
+msgstr ""
+
+#: builtin/fsmonitor--daemon.c:57
+#, c-format
+msgid "value of '%s' not bool or int: %d"
+msgstr ""
+
+#: builtin/fsmonitor--daemon.c:99
+#, c-format
+msgid "fsmonitor-daemon is watching '%s'\n"
+msgstr ""
+
+#: builtin/fsmonitor--daemon.c:104
+#, c-format
+msgid "fsmonitor-daemon is not watching '%s'\n"
+msgstr ""
+
+#: builtin/fsmonitor--daemon.c:170
+#, c-format
+msgid "could not create fsmonitor cookie '%s'"
+msgstr ""
+
+#: builtin/fsmonitor--daemon.c:753
+#, c-format
+msgid "fsmonitor: cookie_result '%d' != SEEN"
+msgstr ""
+
+#: builtin/fsmonitor--daemon.c:1187
+#, c-format
+msgid "could not start IPC thread pool on '%s'"
+msgstr ""
+
+#: builtin/fsmonitor--daemon.c:1199
+msgid "could not start fsmonitor listener thread"
+msgstr ""
+
+#: builtin/fsmonitor--daemon.c:1297
+msgid "could not initialize listener thread"
+msgstr ""
+
+#: builtin/fsmonitor--daemon.c:1328 builtin/fsmonitor--daemon.c:1383
+#, c-format
+msgid "fsmonitor--daemon is already running '%s'"
+msgstr ""
+
+#: builtin/fsmonitor--daemon.c:1332
+#, c-format
+msgid "running fsmonitor-daemon in '%s'\n"
+msgstr ""
+
+#: builtin/fsmonitor--daemon.c:1387
+#, c-format
+msgid "starting fsmonitor-daemon in '%s'\n"
+msgstr ""
+
+#: builtin/fsmonitor--daemon.c:1413
+msgid "daemon failed to start"
+msgstr ""
+
+#: builtin/fsmonitor--daemon.c:1416
+msgid "daemon not online yet"
+msgstr ""
+
+#: builtin/fsmonitor--daemon.c:1419
+msgid "daemon terminated"
+msgstr ""
+
+#: builtin/fsmonitor--daemon.c:1429
+msgid "detach from console"
+msgstr ""
+
+#: builtin/fsmonitor--daemon.c:1432
+msgid "use <n> ipc worker threads"
+msgstr ""
+
+#: builtin/fsmonitor--daemon.c:1435
+msgid "max seconds to wait for background daemon startup"
+msgstr ""
+
+#: builtin/fsmonitor--daemon.c:1449
+#, c-format
+msgid "invalid 'ipc-threads' value (%d)"
+msgstr ""
+
+#: builtin/fsmonitor--daemon.c:1464
+#, c-format
+msgid "Unhandled subcommand '%s'"
+msgstr ""
+
+#: builtin/fsmonitor--daemon.c:1477
+msgid "fsmonitor--daemon not supported on this platform"
+msgstr ""
+
#: builtin/gc.c:39
msgid "git gc [<options>]"
msgstr "git gc [<opsi>]"
@@ -15710,8 +16303,8 @@ msgstr "gagal memulai systemctl"
msgid "failed to run systemctl"
msgstr "gagal menjalankan systemctl"
-#: builtin/gc.c:2210 builtin/gc.c:2215 builtin/worktree.c:62
-#: builtin/worktree.c:944
+#: builtin/gc.c:2210 builtin/gc.c:2215 builtin/worktree.c:63
+#: builtin/worktree.c:1024
#, c-format
msgid "failed to delete '%s'"
msgstr "gagal menghapus '%s'"
@@ -15759,16 +16352,16 @@ msgstr "git maintenance <subperintah> [<opsi>]"
msgid "invalid subcommand: %s"
msgstr "subperintah tidak valid: %s"
-#: builtin/grep.c:30
+#: builtin/grep.c:32
msgid "git grep [<options>] [-e] <pattern> [<rev>...] [[--] <path>...]"
msgstr "git grep [<opsi>] [-e] <pola> [<revisi>...] [[--] <pola>...]"
-#: builtin/grep.c:239
+#: builtin/grep.c:241
#, c-format
msgid "grep: failed to create thread: %s"
msgstr "grep: gagal membuat utas: %s"
-#: builtin/grep.c:293
+#: builtin/grep.c:295
#, c-format
msgid "invalid number of threads specified (%d) for %s"
msgstr "jumlah utas yang diberikan (%d) tidak valid untuk %s"
@@ -15777,259 +16370,251 @@ msgstr "jumlah utas yang diberikan (%d) tidak valid untuk %s"
#. variable for tweaking threads, currently
#. grep.threads
#.
-#: builtin/grep.c:301 builtin/index-pack.c:1582 builtin/index-pack.c:1785
-#: builtin/pack-objects.c:3142
+#: builtin/grep.c:303 builtin/index-pack.c:1587 builtin/index-pack.c:1791
+#: builtin/pack-objects.c:3150
#, c-format
msgid "no threads support, ignoring %s"
msgstr "tidak ada dukungan utas, abaikan %s"
-#: builtin/grep.c:488 builtin/grep.c:617 builtin/grep.c:657
+#: builtin/grep.c:490 builtin/grep.c:619 builtin/grep.c:659
#, c-format
msgid "unable to read tree (%s)"
msgstr "tidak dapat membaca pohon (%s)"
-#: builtin/grep.c:672
+#: builtin/grep.c:674
#, c-format
msgid "unable to grep from object of type %s"
msgstr "tidak dapan men-grep dari objek dengan tipe %s"
-#: builtin/grep.c:752
+#: builtin/grep.c:754
#, c-format
msgid "switch `%c' expects a numerical value"
msgstr "saklar '%c' mengharapkan nilai numerik"
-#: builtin/grep.c:851
+#: builtin/grep.c:852
msgid "search in index instead of in the work tree"
msgstr "cari dalam index daripada dalam pohon kerja"
-#: builtin/grep.c:853
+#: builtin/grep.c:854
msgid "find in contents not managed by git"
msgstr "temukan dalam konten yang tak dikelola oleh git"
-#: builtin/grep.c:855
+#: builtin/grep.c:856
msgid "search in both tracked and untracked files"
msgstr "cari dalam berkas terlacak dan tak terlacak"
-#: builtin/grep.c:857
+#: builtin/grep.c:858
msgid "ignore files specified via '.gitignore'"
msgstr "abaikan berkas yang disebutkan via '.gitignore'"
-#: builtin/grep.c:859
+#: builtin/grep.c:860
msgid "recursively search in each submodule"
msgstr "cari secara rekursif dalam setiap submodul"
-#: builtin/grep.c:862
+#: builtin/grep.c:863
msgid "show non-matching lines"
msgstr "perlihatkan baris nir-cocok"
-#: builtin/grep.c:864
+#: builtin/grep.c:865
msgid "case insensitive matching"
msgstr "pencocokan tak peka kapital"
-#: builtin/grep.c:866
+#: builtin/grep.c:867
msgid "match patterns only at word boundaries"
msgstr "cocokkan pola hanya pada batas kata"
-#: builtin/grep.c:868
+#: builtin/grep.c:869
msgid "process binary files as text"
msgstr "proses berkas biner sebagai teks"
-#: builtin/grep.c:870
+#: builtin/grep.c:871
msgid "don't match patterns in binary files"
msgstr "jangan cocokkan pola pada berkas biner"
-#: builtin/grep.c:873
+#: builtin/grep.c:874
msgid "process binary files with textconv filters"
msgstr "proses berkas biner dengan saringan textconv"
-#: builtin/grep.c:875
+#: builtin/grep.c:876
msgid "search in subdirectories (default)"
msgstr "cari dalam subdirektori (asali)"
-#: builtin/grep.c:877
+#: builtin/grep.c:878
msgid "descend at most <depth> levels"
msgstr "turun paling banyak <kedalaman> tingkat"
-#: builtin/grep.c:881
+#: builtin/grep.c:882
msgid "use extended POSIX regular expressions"
msgstr "gunakan ekspresi reguler POSIX diperpanjang"
-#: builtin/grep.c:884
+#: builtin/grep.c:885
msgid "use basic POSIX regular expressions (default)"
msgstr "gunakan ekspresi reguler POSIX dasar (asali)"
-#: builtin/grep.c:887
+#: builtin/grep.c:888
msgid "interpret patterns as fixed strings"
msgstr "tafsirkan pola sebagai untai tetap"
-#: builtin/grep.c:890
+#: builtin/grep.c:891
msgid "use Perl-compatible regular expressions"
msgstr "gunakan ekspresi reguler kompatibel dengan Perl"
-#: builtin/grep.c:893
+#: builtin/grep.c:894
msgid "show line numbers"
msgstr "perlihatkan nomor baris"
-#: builtin/grep.c:894
+#: builtin/grep.c:895
msgid "show column number of first match"
msgstr "perlihatkan nomor kolom cocokan pertama"
-#: builtin/grep.c:895
+#: builtin/grep.c:896
msgid "don't show filenames"
msgstr "jangan perlihatkan nama berkas"
-#: builtin/grep.c:896
+#: builtin/grep.c:897
msgid "show filenames"
msgstr "perlihatkan nama berkas"
-#: builtin/grep.c:898
+#: builtin/grep.c:899
msgid "show filenames relative to top directory"
msgstr "perlihatkan nama berkas relatif terhadap direktori puncak"
-#: builtin/grep.c:900
+#: builtin/grep.c:901
msgid "show only filenames instead of matching lines"
msgstr "hanya perlihatkan nama berkas daripada baris yang cocok"
-#: builtin/grep.c:902
+#: builtin/grep.c:903
msgid "synonym for --files-with-matches"
msgstr "sinonim untuk --files-with-matches"
-#: builtin/grep.c:905
+#: builtin/grep.c:906
msgid "show only the names of files without match"
msgstr "hanya perlihatkan nama berkas tanpa cocok"
-#: builtin/grep.c:907
+#: builtin/grep.c:908
msgid "print NUL after filenames"
msgstr "cetak NUL setelah nama berkas"
-#: builtin/grep.c:910
+#: builtin/grep.c:911
msgid "show only matching parts of a line"
msgstr "hanya perlihatkan bagian cocokan baris"
-#: builtin/grep.c:912
+#: builtin/grep.c:913
msgid "show the number of matches instead of matching lines"
msgstr "perlihatkan jumlah cocokan daripada baris yang cocok"
-#: builtin/grep.c:913
+#: builtin/grep.c:914
msgid "highlight matches"
msgstr "sorot cocokan"
-#: builtin/grep.c:915
+#: builtin/grep.c:916
msgid "print empty line between matches from different files"
msgstr "cetak baris kosong di antara cocokan dari berkas yang berbeda"
-#: builtin/grep.c:917
+#: builtin/grep.c:918
msgid "show filename only once above matches from same file"
msgstr ""
"perlihatkan nama berkas hanya sekali di atas cocokan dari berkas yang sama"
-#: builtin/grep.c:920
+#: builtin/grep.c:921
msgid "show <n> context lines before and after matches"
msgstr "perlihatkan <n> baris konteks sebelum dan sesudah cocokan"
-#: builtin/grep.c:923
+#: builtin/grep.c:924
msgid "show <n> context lines before matches"
msgstr "perlihatkan <n> baris konteks sebelum cocokan"
-#: builtin/grep.c:925
+#: builtin/grep.c:926
msgid "show <n> context lines after matches"
msgstr "perlihatkan <n> baris konteks setelah cocokan"
-#: builtin/grep.c:927
+#: builtin/grep.c:928
msgid "use <n> worker threads"
msgstr "gunakan <n> utas pekerja"
-#: builtin/grep.c:928
+#: builtin/grep.c:929
msgid "shortcut for -C NUM"
msgstr "pintasan untuk -C NUM"
-#: builtin/grep.c:931
+#: builtin/grep.c:932
msgid "show a line with the function name before matches"
msgstr "perlihatkan sebuah baris dengan nama fungsi sebelum cocokan"
-#: builtin/grep.c:933
+#: builtin/grep.c:934
msgid "show the surrounding function"
msgstr "perlihatkan fungsi di sekitar"
-#: builtin/grep.c:936
+#: builtin/grep.c:937
msgid "read patterns from file"
msgstr "baca pola dari berkas"
-#: builtin/grep.c:938
+#: builtin/grep.c:939
msgid "match <pattern>"
msgstr "cocokkan <pola>"
-#: builtin/grep.c:940
+#: builtin/grep.c:941
msgid "combine patterns specified with -e"
msgstr "kombinasikan pola yang disebutkan dengan -e"
-#: builtin/grep.c:952
+#: builtin/grep.c:953
msgid "indicate hit with exit status without output"
msgstr "tunjukkan kena dengan status keluar tanpa keluaran"
-#: builtin/grep.c:954
+#: builtin/grep.c:955
msgid "show only matches from files that match all patterns"
msgstr "hanya perlihatkan cocokan dari berkas yang cocok dengan semua pola"
-#: builtin/grep.c:957
+#: builtin/grep.c:958
msgid "pager"
msgstr "penghalaman"
-#: builtin/grep.c:957
+#: builtin/grep.c:958
msgid "show matching files in the pager"
msgstr "perlihatkan berkas yang cocok dalam penghalaman"
-#: builtin/grep.c:961
+#: builtin/grep.c:962
msgid "allow calling of grep(1) (ignored by this build)"
msgstr "perbolehkan pemanggilan grep(1) (diabaikan oleh bangunan ini)"
-#: builtin/grep.c:1027
+#: builtin/grep.c:1028
msgid "no pattern given"
msgstr "tidak ada pola yang diberikan"
-#: builtin/grep.c:1063
+#: builtin/grep.c:1064
msgid "--no-index or --untracked cannot be used with revs"
msgstr "--no-index atau --untracked tidak dapat digunakan dengan revisi"
-#: builtin/grep.c:1071
+#: builtin/grep.c:1072
#, c-format
msgid "unable to resolve revision: %s"
msgstr "tidak dapat menguraikan revisi: %s"
-#: builtin/grep.c:1101
+#: builtin/grep.c:1102
msgid "--untracked not supported with --recurse-submodules"
msgstr "--untracked tidak didukung dengan --recurse-submodules"
-#: builtin/grep.c:1105
+#: builtin/grep.c:1106
msgid "invalid option combination, ignoring --threads"
msgstr "kombinasi opsi tidak valid, abaikan --threads"
-#: builtin/grep.c:1108 builtin/pack-objects.c:4059
+#: builtin/grep.c:1109 builtin/pack-objects.c:4084
msgid "no threads support, ignoring --threads"
msgstr "tidak ada dukungan utas, abaikan --threads"
-#: builtin/grep.c:1111 builtin/index-pack.c:1579 builtin/pack-objects.c:3139
+#: builtin/grep.c:1112 builtin/index-pack.c:1584 builtin/pack-objects.c:3147
#, c-format
msgid "invalid number of threads specified (%d)"
msgstr "jumlah utas tersebut (%d) tidak valid"
-#: builtin/grep.c:1145
+#: builtin/grep.c:1146
msgid "--open-files-in-pager only works on the worktree"
msgstr "--open-files-in-pager hanya bekerja pada pohon kerja"
-#: builtin/grep.c:1171
-msgid "--cached or --untracked cannot be used with --no-index"
-msgstr "--cached atau --untracked tidak dapat digunakan dengan --no-index"
-
-#: builtin/grep.c:1174
-msgid "--untracked cannot be used with --cached"
-msgstr "--untracked tidak dapat digunakan dengan --cached"
-
-#: builtin/grep.c:1180
+#: builtin/grep.c:1179
msgid "--[no-]exclude-standard cannot be used for tracked contents"
msgstr "--[no-]exclude-standard tidak dapat digunakan untuk konten terlacak"
-#: builtin/grep.c:1188
+#: builtin/grep.c:1187
msgid "both --cached and trees are given"
msgstr "baik --cached dan pohon diberikan"
@@ -16041,108 +16626,100 @@ msgstr ""
"git hash-object [-t <tipe>] [-w] [--path=<berkas> | --no-filters] [--stdin] "
"[--] <berkas>..."
-#: builtin/hash-object.c:84
-msgid "git hash-object --stdin-paths"
-msgstr "git hash-object --stdin-paths"
-
-#: builtin/hash-object.c:96
+#: builtin/hash-object.c:97
msgid "object type"
msgstr "tipe objek"
-#: builtin/hash-object.c:97
+#: builtin/hash-object.c:98
msgid "write the object into the object database"
msgstr "tulis objek ke dalam basis data objek"
-#: builtin/hash-object.c:99
+#: builtin/hash-object.c:100
msgid "read the object from stdin"
msgstr "baca objek dari masukan standar"
-#: builtin/hash-object.c:101
+#: builtin/hash-object.c:102
msgid "store file as is without filters"
msgstr "simpan berkas apa adanya tanpa penyaring"
-#: builtin/hash-object.c:102
+#: builtin/hash-object.c:103
msgid ""
"just hash any random garbage to create corrupt objects for debugging Git"
msgstr ""
"hanya hash sampah acak apapun untuk membuat objek rusak demi menirkutukan Git"
-#: builtin/hash-object.c:103
+#: builtin/hash-object.c:104
msgid "process file as it were from this path"
msgstr "proses berkas seperti dari jalur ini"
-#: builtin/help.c:55
+#: builtin/help.c:57
msgid "print all available commands"
msgstr "cetak semua perintah yang tersedia"
-#: builtin/help.c:57
+#: builtin/help.c:60
+msgid "show external commands in --all"
+msgstr "perlihatkan perintah eksternal dalam --all"
+
+#: builtin/help.c:61
+msgid "show aliases in --all"
+msgstr "perlihatkan alias pada --all"
+
+#: builtin/help.c:62
msgid "exclude guides"
msgstr "kecualikan panduan"
-#: builtin/help.c:58
+#: builtin/help.c:63
msgid "show man page"
msgstr "perlihatkan halaman man"
-#: builtin/help.c:59
+#: builtin/help.c:64
msgid "show manual in web browser"
msgstr "perlihatkan manual dalam penjelajah web"
-#: builtin/help.c:61
+#: builtin/help.c:66
msgid "show info page"
msgstr "perlihatkan halaman info"
-#: builtin/help.c:63
+#: builtin/help.c:68
msgid "print command description"
msgstr "perlihatkan deskripsi perintah"
-#: builtin/help.c:65
+#: builtin/help.c:70
msgid "print list of useful guides"
msgstr "cetak daftar panduan berguna"
-#: builtin/help.c:67
+#: builtin/help.c:72
msgid "print all configuration variable names"
msgstr "cetak semua nama variabel konfigurasi"
-#: builtin/help.c:78
-msgid ""
-"git help [-a|--all] [--[no-]verbose]]\n"
-" [[-i|--info] [-m|--man] [-w|--web]] [<command>]"
-msgstr ""
-"git help [-a|--all] [--[no-]verbose]]\n"
-" [[-i|--info] [-m|--man] [-w|--web]] [<perintah>]"
+#: builtin/help.c:84
+msgid "git help [[-i|--info] [-m|--man] [-w|--web]] [<command>]"
+msgstr "git help [[-i|--info] [-m|--man] [-w|--web]] [<perintah>]"
-#: builtin/help.c:80
-msgid "git help [-g|--guides]"
-msgstr ""
-
-#: builtin/help.c:81
-msgid "git help [-c|--config]"
-msgstr ""
-
-#: builtin/help.c:196
+#: builtin/help.c:201
#, c-format
msgid "unrecognized help format '%s'"
msgstr "format bantuan tidak dikenal '%s'"
-#: builtin/help.c:222
+#: builtin/help.c:227
msgid "Failed to start emacsclient."
msgstr "gagal menjalankan emacsclient."
-#: builtin/help.c:235
+#: builtin/help.c:240
msgid "Failed to parse emacsclient version."
msgstr "gagal menguraikan versi emacsclient."
-#: builtin/help.c:243
+#: builtin/help.c:248
#, c-format
msgid "emacsclient version '%d' too old (< 22)."
msgstr "versi emacsclient '%d' terlalu usang (< 22)."
-#: builtin/help.c:261 builtin/help.c:283 builtin/help.c:293 builtin/help.c:301
+#: builtin/help.c:266 builtin/help.c:288 builtin/help.c:298 builtin/help.c:306
#, c-format
msgid "failed to exec '%s'"
msgstr "gagal menjalankan '%s'"
-#: builtin/help.c:339
+#: builtin/help.c:344
#, c-format
msgid ""
"'%s': path for unsupported man viewer.\n"
@@ -16151,7 +16728,7 @@ msgstr ""
"'%s': jalur untuk pembaca man yang tidak didukung.\n"
"Mohon gunakan 'man.<tool>.cmd' sebagai gantinya."
-#: builtin/help.c:351
+#: builtin/help.c:356
#, c-format
msgid ""
"'%s': cmd for supported man viewer.\n"
@@ -16160,42 +16737,56 @@ msgstr ""
"'%s': cmd untuk pembaca man yang didukung.\n"
"Mohon gunakan 'man.<tool>.path' sebagai gantinya."
-#: builtin/help.c:466
+#: builtin/help.c:471
#, c-format
msgid "'%s': unknown man viewer."
msgstr "'%s': pembaca man tidak dikenal"
-#: builtin/help.c:482
+#: builtin/help.c:487
msgid "no man viewer handled the request"
msgstr "tidak ada pembaca man yang menangani permintaan"
-#: builtin/help.c:489
+#: builtin/help.c:494
msgid "no info viewer handled the request"
msgstr "tidak ada pembaca info yang menangani permintaan"
-#: builtin/help.c:550 builtin/help.c:561 git.c:348
+#: builtin/help.c:555 builtin/help.c:566 git.c:348
#, c-format
msgid "'%s' is aliased to '%s'"
msgstr "'%s' dialiaskan ke '%s'"
-#: builtin/help.c:564 git.c:380
+#: builtin/help.c:569 git.c:380
#, c-format
msgid "bad alias.%s string: %s"
msgstr "untai alias.%s jelek: %s"
-#: builtin/help.c:580
-msgid "this option doesn't take any other arguments"
-msgstr "opsi ini tidak mengambil argumen lainnya"
+#: builtin/help.c:611
+#, c-format
+msgid "the '%s' option doesn't take any non-option arguments"
+msgstr "opsi '%s' tidak mengambil argumen bukan opsi"
+
+#: builtin/help.c:631
+msgid ""
+"the '--no-[external-commands|aliases]' options can only be used with '--all'"
+msgstr ""
-#: builtin/help.c:601 builtin/help.c:628
+#: builtin/help.c:643 builtin/help.c:671
#, c-format
msgid "usage: %s%s"
msgstr "penggunaan: %s%s"
-#: builtin/help.c:623
+#: builtin/help.c:666
msgid "'git help config' for more information"
msgstr "'git help config' untuk informasi lebih lanjut"
+#: builtin/hook.c:10
+msgid "git hook run [--ignore-missing] <hook-name> [-- <hook-args>]"
+msgstr ""
+
+#: builtin/hook.c:30
+msgid "silently ignore missing requested <hook-name>"
+msgstr ""
+
#: builtin/index-pack.c:221
#, c-format
msgid "object type mismatch at %s"
@@ -16230,244 +16821,245 @@ msgstr "kesalahan baca pada masukan"
msgid "used more bytes than were available"
msgstr "gunakan lebih banyak pita dari pada yang tersedia"
-#: builtin/index-pack.c:324 builtin/pack-objects.c:756
+#: builtin/index-pack.c:324 builtin/pack-objects.c:754
msgid "pack too large for current definition of off_t"
msgstr "paket terlalu besar untuk definisi off_t saat ini"
-#: builtin/index-pack.c:327 builtin/unpack-objects.c:95
-msgid "pack exceeds maximum allowed size"
-msgstr "paket melebihi ukuran maksimum yang diperbolehkan"
+#: builtin/index-pack.c:329
+#, c-format
+msgid "pack exceeds maximum allowed size (%s)"
+msgstr "paket melebihi ukuran maksimum yang diperbolehkan (%s)"
-#: builtin/index-pack.c:358
+#: builtin/index-pack.c:362
msgid "pack signature mismatch"
msgstr "tanda tangan paket tidak cocok"
-#: builtin/index-pack.c:360
+#: builtin/index-pack.c:364
#, c-format
msgid "pack version %<PRIu32> unsupported"
msgstr "versi paket %<PRIu32> tidak didukung"
-#: builtin/index-pack.c:376
+#: builtin/index-pack.c:380
#, c-format
msgid "pack has bad object at offset %<PRIuMAX>: %s"
msgstr "paket ada objek jelek pada offset %<PRIuMAX>: %s"
-#: builtin/index-pack.c:482
+#: builtin/index-pack.c:485
#, c-format
msgid "inflate returned %d"
msgstr "inflate mengembalikan %d"
-#: builtin/index-pack.c:531
+#: builtin/index-pack.c:534
msgid "offset value overflow for delta base object"
msgstr "nilai offset meluap untuk objek basis delta"
-#: builtin/index-pack.c:539
+#: builtin/index-pack.c:542
msgid "delta base offset is out of bound"
msgstr "offset basis delta di luar jangkauan"
-#: builtin/index-pack.c:547
+#: builtin/index-pack.c:550
#, c-format
msgid "unknown object type %d"
msgstr "tipe objek tidak diketahui %d"
-#: builtin/index-pack.c:578
+#: builtin/index-pack.c:581
msgid "cannot pread pack file"
msgstr "tidak dapat pread berkas paket"
-#: builtin/index-pack.c:580
+#: builtin/index-pack.c:583
#, c-format
msgid "premature end of pack file, %<PRIuMAX> byte missing"
msgid_plural "premature end of pack file, %<PRIuMAX> bytes missing"
msgstr[0] ""
msgstr[1] ""
-#: builtin/index-pack.c:606
+#: builtin/index-pack.c:609
msgid "serious inflate inconsistency"
msgstr "inkonsistensi inflate serius"
-#: builtin/index-pack.c:751 builtin/index-pack.c:757 builtin/index-pack.c:781
-#: builtin/index-pack.c:820 builtin/index-pack.c:829
+#: builtin/index-pack.c:754 builtin/index-pack.c:760 builtin/index-pack.c:784
+#: builtin/index-pack.c:823 builtin/index-pack.c:832
#, c-format
msgid "SHA1 COLLISION FOUND WITH %s !"
msgstr "TUMBUKAN SHA1 DITEMUKAN DENGAN %s !"
-#: builtin/index-pack.c:754 builtin/pack-objects.c:292
-#: builtin/pack-objects.c:352 builtin/pack-objects.c:458
+#: builtin/index-pack.c:757 builtin/pack-objects.c:290
+#: builtin/pack-objects.c:350 builtin/pack-objects.c:456
#, c-format
msgid "unable to read %s"
msgstr "tidak dapat membaca %s"
-#: builtin/index-pack.c:818
+#: builtin/index-pack.c:821
#, c-format
msgid "cannot read existing object info %s"
msgstr "tidak dapat membaca info objek yang ada %s"
-#: builtin/index-pack.c:826
+#: builtin/index-pack.c:829
#, c-format
msgid "cannot read existing object %s"
msgstr "tidak dapat membaca objek yang ada %s"
-#: builtin/index-pack.c:840
+#: builtin/index-pack.c:843
#, c-format
msgid "invalid blob object %s"
msgstr "objek blob tidak valid %s"
-#: builtin/index-pack.c:843 builtin/index-pack.c:862
+#: builtin/index-pack.c:846 builtin/index-pack.c:865
msgid "fsck error in packed object"
msgstr "kesalahan fsck dalam objek terpaket"
-#: builtin/index-pack.c:864
+#: builtin/index-pack.c:867
#, c-format
msgid "Not all child objects of %s are reachable"
msgstr "Tidak semua objek anak dari %s bisa dicapai"
-#: builtin/index-pack.c:925 builtin/index-pack.c:972
+#: builtin/index-pack.c:928 builtin/index-pack.c:975
msgid "failed to apply delta"
msgstr "gagal menerapkan delta"
-#: builtin/index-pack.c:1156
+#: builtin/index-pack.c:1161
msgid "Receiving objects"
msgstr "Menerima objek"
-#: builtin/index-pack.c:1156
+#: builtin/index-pack.c:1161
msgid "Indexing objects"
msgstr "Mengindeks objek"
-#: builtin/index-pack.c:1190
+#: builtin/index-pack.c:1195
msgid "pack is corrupted (SHA1 mismatch)"
msgstr "paket rusak (SHA1 tidak cocok)"
-#: builtin/index-pack.c:1195
+#: builtin/index-pack.c:1200
msgid "cannot fstat packfile"
msgstr "tidak dapat fstat berkas paket"
-#: builtin/index-pack.c:1198
+#: builtin/index-pack.c:1203
msgid "pack has junk at the end"
msgstr "paket memiliki sampah pada ujung"
-#: builtin/index-pack.c:1210
+#: builtin/index-pack.c:1215
msgid "confusion beyond insanity in parse_pack_objects()"
msgstr "bingung di luar kegilaan di parse_pack_objects()"
-#: builtin/index-pack.c:1233
+#: builtin/index-pack.c:1238
msgid "Resolving deltas"
msgstr "Menguraikan delta"
-#: builtin/index-pack.c:1244 builtin/pack-objects.c:2905
+#: builtin/index-pack.c:1249 builtin/pack-objects.c:2913
#, c-format
msgid "unable to create thread: %s"
msgstr "tidak dapat membuat utas: %s"
-#: builtin/index-pack.c:1277
+#: builtin/index-pack.c:1282
msgid "confusion beyond insanity"
msgstr "bingung di luar kegilaan"
-#: builtin/index-pack.c:1283
+#: builtin/index-pack.c:1288
#, c-format
msgid "completed with %d local object"
msgid_plural "completed with %d local objects"
msgstr[0] ""
msgstr[1] ""
-#: builtin/index-pack.c:1295
+#: builtin/index-pack.c:1300
#, c-format
msgid "Unexpected tail checksum for %s (disk corruption?)"
msgstr "Checksum ekor tidak diharapkan untuk %s (kerusakan disk?)"
-#: builtin/index-pack.c:1299
+#: builtin/index-pack.c:1304
#, c-format
msgid "pack has %d unresolved delta"
msgid_plural "pack has %d unresolved deltas"
msgstr[0] ""
msgstr[1] ""
-#: builtin/index-pack.c:1323
+#: builtin/index-pack.c:1328
#, c-format
msgid "unable to deflate appended object (%d)"
msgstr "tidak dapat menggemboskan objek tertambah (%d)"
-#: builtin/index-pack.c:1419
+#: builtin/index-pack.c:1423
#, c-format
msgid "local object %s is corrupt"
msgstr "objek lokal %s rusak"
-#: builtin/index-pack.c:1440
+#: builtin/index-pack.c:1445
#, c-format
msgid "packfile name '%s' does not end with '.%s'"
msgstr "nama berkas paket '%s' tidak diakhiri dengan '.%s'"
-#: builtin/index-pack.c:1464
+#: builtin/index-pack.c:1469
#, c-format
msgid "cannot write %s file '%s'"
msgstr "tidak dapat menulis %s berkas '%s'"
-#: builtin/index-pack.c:1472
+#: builtin/index-pack.c:1477
#, c-format
msgid "cannot close written %s file '%s'"
msgstr "tidak dapat menutup %s berkas tertulis '%s'"
-#: builtin/index-pack.c:1489
+#: builtin/index-pack.c:1494
#, c-format
msgid "unable to rename temporary '*.%s' file to '%s'"
msgstr "tidak dapat menamai ulang berkas sementara '*.%s' ke '%s'"
-#: builtin/index-pack.c:1514
+#: builtin/index-pack.c:1519
msgid "error while closing pack file"
msgstr "kesalahan menutup berkas paket"
-#: builtin/index-pack.c:1573 builtin/pack-objects.c:3150
+#: builtin/index-pack.c:1578 builtin/pack-objects.c:3158
#, c-format
msgid "bad pack.indexversion=%<PRIu32>"
msgstr "pack.indexversion=%<PRIu32> jelek"
-#: builtin/index-pack.c:1643
+#: builtin/index-pack.c:1648
#, c-format
msgid "Cannot open existing pack file '%s'"
msgstr "tidak dapat membuka berkas paket yang ada '%s'"
-#: builtin/index-pack.c:1645
+#: builtin/index-pack.c:1650
#, c-format
msgid "Cannot open existing pack idx file for '%s'"
msgstr "tidak dapat membuka berkas indeks paket untuk '%s'"
-#: builtin/index-pack.c:1693
+#: builtin/index-pack.c:1698
#, c-format
msgid "non delta: %d object"
msgid_plural "non delta: %d objects"
msgstr[0] ""
msgstr[1] ""
-#: builtin/index-pack.c:1700
+#: builtin/index-pack.c:1705
#, c-format
msgid "chain length = %d: %lu object"
msgid_plural "chain length = %d: %lu objects"
msgstr[0] ""
msgstr[1] ""
-#: builtin/index-pack.c:1742
+#: builtin/index-pack.c:1748
msgid "Cannot come back to cwd"
msgstr "tidak dapat kembali ke direktori kerja saat ini"
-#: builtin/index-pack.c:1796 builtin/index-pack.c:1799
-#: builtin/index-pack.c:1819 builtin/index-pack.c:1823
+#: builtin/index-pack.c:1802 builtin/index-pack.c:1805
+#: builtin/index-pack.c:1825 builtin/index-pack.c:1829
#, c-format
msgid "bad %s"
msgstr "%s jelek"
-#: builtin/index-pack.c:1829 builtin/init-db.c:379 builtin/init-db.c:614
+#: builtin/index-pack.c:1835 builtin/init-db.c:379 builtin/init-db.c:614
#, c-format
msgid "unknown hash algorithm '%s'"
msgstr "algoritma hash tak dikenal '%s'"
-#: builtin/index-pack.c:1850
+#: builtin/index-pack.c:1856
msgid "--stdin requires a git repository"
msgstr "--stdin memerlukan repositori git"
-#: builtin/index-pack.c:1867
+#: builtin/index-pack.c:1873
msgid "--verify with no packfile name given"
msgstr "--verify tanpa nama berkas paket diberikan"
-#: builtin/index-pack.c:1933 builtin/unpack-objects.c:584
+#: builtin/index-pack.c:1939 builtin/unpack-objects.c:584
msgid "fsck error in pack objects"
msgstr "kesalahan fsck dalam objek paket"
@@ -16675,40 +17267,40 @@ msgstr ""
msgid "no input file given for in-place editing"
msgstr ""
-#: builtin/log.c:59
+#: builtin/log.c:60
msgid "git log [<options>] [<revision-range>] [[--] <path>...]"
msgstr "git log [<opsi>] [<rentang revisi>] [[--] <jalur>...]"
-#: builtin/log.c:60
+#: builtin/log.c:61
msgid "git show [<options>] <object>..."
msgstr "git show [<opsi>] <objek>..."
-#: builtin/log.c:113
+#: builtin/log.c:114
#, c-format
msgid "invalid --decorate option: %s"
msgstr "opsi --decorate tidak valid: %s"
-#: builtin/log.c:180
+#: builtin/log.c:181
msgid "show source"
msgstr "perlihatkan sumber"
-#: builtin/log.c:181
+#: builtin/log.c:182
msgid "use mail map file"
msgstr "gunakan berkas peta surat"
-#: builtin/log.c:184
+#: builtin/log.c:185
msgid "only decorate refs that match <pattern>"
msgstr "hanya dekorasi referensi yang cocok dengan <pola>"
-#: builtin/log.c:186
+#: builtin/log.c:187
msgid "do not decorate refs that match <pattern>"
msgstr "jangan dekorasi referensi yang cocok dengan <pola>"
-#: builtin/log.c:187
+#: builtin/log.c:188
msgid "decorate options"
msgstr "opsi dekorasi"
-#: builtin/log.c:190
+#: builtin/log.c:191
msgid ""
"trace the evolution of line range <start>,<end> or function :<funcname> in "
"<file>"
@@ -16716,89 +17308,93 @@ msgstr ""
"lacak evolusi rentang baris <awal>,<akhir> atau fungsi :<nama fungsi> dalam "
"<berkas>"
-#: builtin/log.c:213
+#: builtin/log.c:214
msgid "-L<range>:<file> cannot be used with pathspec"
msgstr "-L<rentang>:<berkas> tidak dapat digunakan dengan spek jalur"
-#: builtin/log.c:321
+#: builtin/log.c:322
#, c-format
msgid "Final output: %d %s\n"
msgstr "Keluaran terakhir: %d %s\n"
-#: builtin/log.c:586
+#: builtin/log.c:429
+msgid "unable to create temporary object directory"
+msgstr "tidak dapat membuat direktori objek sementara"
+
+#: builtin/log.c:599
#, c-format
msgid "git show %s: bad file"
msgstr "git show %s: berkas jelek"
-#: builtin/log.c:601 builtin/log.c:691
+#: builtin/log.c:614 builtin/log.c:706
#, c-format
msgid "could not read object %s"
msgstr "tidak dapat membaca objek %s"
-#: builtin/log.c:716
+#: builtin/log.c:731
#, c-format
msgid "unknown type: %d"
msgstr "tipe tidak dikenal: %d"
-#: builtin/log.c:861
+#: builtin/log.c:880
#, c-format
msgid "%s: invalid cover from description mode"
msgstr "%s: sampul tidak valid dari mode deskripsi"
-#: builtin/log.c:868
+#: builtin/log.c:887
msgid "format.headers without value"
msgstr "format.headers tanpa nilai"
-#: builtin/log.c:997
+#: builtin/log.c:1016
#, c-format
msgid "cannot open patch file %s"
msgstr "tidak dapat membuka berkas tambalan %s"
-#: builtin/log.c:1014
+#: builtin/log.c:1033
msgid "need exactly one range"
msgstr "butuh tepatnya satu rentang"
-#: builtin/log.c:1024
+#: builtin/log.c:1043
msgid "not a range"
msgstr "bukan sebuah rentang"
-#: builtin/log.c:1188
+#: builtin/log.c:1207
msgid "cover letter needs email format"
msgstr "sampul surat butuh format email"
-#: builtin/log.c:1194
+#: builtin/log.c:1213
msgid "failed to create cover-letter file"
msgstr "gagal membuat berkas sampul surat"
-#: builtin/log.c:1281
+#: builtin/log.c:1300
#, c-format
msgid "insane in-reply-to: %s"
msgstr "in-reply-to gila: %s"
-#: builtin/log.c:1308
+#: builtin/log.c:1327
msgid "git format-patch [<options>] [<since> | <revision-range>]"
msgstr "git format-patch [<opsi>] [<sejak> | <rentang revisi>]"
-#: builtin/log.c:1366
+#: builtin/log.c:1385
msgid "two output directories?"
msgstr "dua direktori keluaran?"
-#: builtin/log.c:1517 builtin/log.c:2344 builtin/log.c:2346 builtin/log.c:2358
+#: builtin/log.c:1536 builtin/log.c:2369 builtin/log.c:2371 builtin/log.c:2383
#, c-format
msgid "unknown commit %s"
msgstr "komit tidak dikenal %s"
-#: builtin/log.c:1528 builtin/replace.c:58 builtin/replace.c:207
+#: builtin/log.c:1547 builtin/replace.c:58 builtin/replace.c:207
#: builtin/replace.c:210
#, c-format
msgid "failed to resolve '%s' as a valid ref"
msgstr "gagal menguraikan '%s' sebagai referensi valid"
-#: builtin/log.c:1537
+#: builtin/log.c:1556
msgid "could not find exact merge base"
msgstr "tidak dapat menemukan dasar penggabungan eksak"
-#: builtin/log.c:1547
+#: builtin/log.c:1566
msgid ""
"failed to get upstream, if you want to record base commit automatically,\n"
"please use git branch --set-upstream-to to track a remote branch.\n"
@@ -16810,276 +17406,280 @@ msgstr ""
"Atau Anda dapat menyebutkan dasar komit secara manual dengan --base=<id "
"dasar komit>"
-#: builtin/log.c:1570
+#: builtin/log.c:1589
msgid "failed to find exact merge base"
msgstr "tidak dapat menemukan dasar penggabungan eksak"
-#: builtin/log.c:1587
+#: builtin/log.c:1606
msgid "base commit should be the ancestor of revision list"
msgstr "dasar komit seharusnya menjadi leluhur daftar revisi"
-#: builtin/log.c:1597
+#: builtin/log.c:1616
msgid "base commit shouldn't be in revision list"
msgstr "dasar komit tidak seharusnya dalam daftar revisi"
-#: builtin/log.c:1655
+#: builtin/log.c:1674
msgid "cannot get patch id"
msgstr "tidak dapat mendapatkan id tambalan"
-#: builtin/log.c:1718
+#: builtin/log.c:1737
msgid "failed to infer range-diff origin of current series"
msgstr "gagal menduga asal range-diff dari seri saat ini"
-#: builtin/log.c:1720
+#: builtin/log.c:1739
#, c-format
msgid "using '%s' as range-diff origin of current series"
msgstr "menggunakan '%s' sebagai asal range-diff dari seri saat ini"
-#: builtin/log.c:1764
+#: builtin/log.c:1783
msgid "use [PATCH n/m] even with a single patch"
msgstr "gunakan [PATCH n/m] bahkan dengan satu tambalan"
-#: builtin/log.c:1767
+#: builtin/log.c:1786
msgid "use [PATCH] even with multiple patches"
msgstr "gunakan [PATCH] bahkan dengan banyak tambalan"
-#: builtin/log.c:1771
+#: builtin/log.c:1790
msgid "print patches to standard out"
msgstr "cetak tambalan ke keluaran standar"
-#: builtin/log.c:1773
+#: builtin/log.c:1792
msgid "generate a cover letter"
msgstr "buat sampul surat"
-#: builtin/log.c:1775
+#: builtin/log.c:1794
msgid "use simple number sequence for output file names"
msgstr "gunakan urutan bilangan sederhana untuk keluarkan nama berkas"
-#: builtin/log.c:1776
+#: builtin/log.c:1795
msgid "sfx"
msgstr "sfx"
-#: builtin/log.c:1777
+#: builtin/log.c:1796
msgid "use <sfx> instead of '.patch'"
msgstr "gunakan <akhiran> daripada '.patch'"
-#: builtin/log.c:1779
+#: builtin/log.c:1798
msgid "start numbering patches at <n> instead of 1"
msgstr "mulai menomorkan tambalan pada <n> daripada 1"
-#: builtin/log.c:1780
+#: builtin/log.c:1799
msgid "reroll-count"
msgstr ""
-#: builtin/log.c:1781
+#: builtin/log.c:1800
msgid "mark the series as Nth re-roll"
msgstr "tandai seri sebagai gulung ulang ke-N"
-#: builtin/log.c:1783
+#: builtin/log.c:1802
msgid "max length of output filename"
msgstr "panjang nama berkas keluaran maksimum"
-#: builtin/log.c:1785
+#: builtin/log.c:1804
msgid "use [RFC PATCH] instead of [PATCH]"
msgstr "gunakan [RFC PATCH] daripada [PATCH]"
-#: builtin/log.c:1788
+#: builtin/log.c:1807
msgid "cover-from-description-mode"
msgstr "cover-from-description-mode"
-#: builtin/log.c:1789
+#: builtin/log.c:1808
msgid "generate parts of a cover letter based on a branch's description"
msgstr "buat bagian dari sampul surat berdasarkan deskripsi cabang"
-#: builtin/log.c:1791
+#: builtin/log.c:1810
msgid "use [<prefix>] instead of [PATCH]"
msgstr "gunakan [<prefix>] daripada [PATCH]"
-#: builtin/log.c:1794
+#: builtin/log.c:1813
msgid "store resulting files in <dir>"
msgstr "simpan hasil berkas di <direktori>"
-#: builtin/log.c:1797
+#: builtin/log.c:1816
msgid "don't strip/add [PATCH]"
msgstr "jangan copot/tambah [PATCH]"
-#: builtin/log.c:1800
+#: builtin/log.c:1819
msgid "don't output binary diffs"
msgstr "jangan keluarkan diff biner"
-#: builtin/log.c:1802
+#: builtin/log.c:1821
msgid "output all-zero hash in From header"
msgstr "keluarkan hash semua-nol di kepala From"
-#: builtin/log.c:1804
+#: builtin/log.c:1823
msgid "don't include a patch matching a commit upstream"
msgstr "jangan termasuk tambalan yang cocok dengan komit hulu"
-#: builtin/log.c:1806
+#: builtin/log.c:1825
msgid "show patch format instead of default (patch + stat)"
msgstr "perlihatkan format tambalan daripada asali (tambalan + stat)"
-#: builtin/log.c:1808
+#: builtin/log.c:1827
msgid "Messaging"
msgstr "Perpesanan"
-#: builtin/log.c:1809
+#: builtin/log.c:1828
msgid "header"
msgstr "kepala"
-#: builtin/log.c:1810
+#: builtin/log.c:1829
msgid "add email header"
msgstr "tambahkan kepala email"
-#: builtin/log.c:1811 builtin/log.c:1812
+#: builtin/log.c:1830 builtin/log.c:1831
msgid "email"
msgstr "email"
-#: builtin/log.c:1811
+#: builtin/log.c:1830
msgid "add To: header"
msgstr "tambahkan kepala To:"
-#: builtin/log.c:1812
+#: builtin/log.c:1831
msgid "add Cc: header"
msgstr "tambahkan kepala Cc:"
-#: builtin/log.c:1813
+#: builtin/log.c:1832
msgid "ident"
msgstr "ident"
-#: builtin/log.c:1814
+#: builtin/log.c:1833
msgid "set From address to <ident> (or committer ident if absent)"
msgstr ""
"setel alamat From ke <identitas> (atau identitas pengkomit jika tidak ada)"
-#: builtin/log.c:1816
+#: builtin/log.c:1835
msgid "message-id"
msgstr "message-id"
-#: builtin/log.c:1817
+#: builtin/log.c:1836
msgid "make first mail a reply to <message-id>"
msgstr "buat surat pertama balasan ke <id pesan>"
-#: builtin/log.c:1818 builtin/log.c:1821
+#: builtin/log.c:1837 builtin/log.c:1840
msgid "boundary"
msgstr "perbatasan"
-#: builtin/log.c:1819
+#: builtin/log.c:1838
msgid "attach the patch"
msgstr "lampirkan tambalan"
-#: builtin/log.c:1822
+#: builtin/log.c:1841
msgid "inline the patch"
msgstr "bariskan tambalan"
-#: builtin/log.c:1826
+#: builtin/log.c:1845
msgid "enable message threading, styles: shallow, deep"
msgstr "aktifkan utasan pesan, gaya: shallow, deep"
-#: builtin/log.c:1828
+#: builtin/log.c:1847
msgid "signature"
msgstr "tanda tangan"
-#: builtin/log.c:1829
+#: builtin/log.c:1848
msgid "add a signature"
msgstr "tambah tanda tangan"
-#: builtin/log.c:1830
+#: builtin/log.c:1849
msgid "base-commit"
msgstr "dasar komit"
-#: builtin/log.c:1831
+#: builtin/log.c:1850
msgid "add prerequisite tree info to the patch series"
msgstr "tambahkan info pohon prasyarat ke seri tambalan"
-#: builtin/log.c:1834
+#: builtin/log.c:1853
msgid "add a signature from a file"
msgstr "tambahkan tandatangan dari berkas"
-#: builtin/log.c:1835
+#: builtin/log.c:1854
msgid "don't print the patch filenames"
msgstr "jangan cetak nama berkas tambalan"
-#: builtin/log.c:1837
+#: builtin/log.c:1856
msgid "show progress while generating patches"
msgstr "perlihatkan perkembangan ketika membuat tambalan"
-#: builtin/log.c:1839
+#: builtin/log.c:1858
msgid "show changes against <rev> in cover letter or single patch"
msgstr ""
"perlihatkan perubahan terhadap <revisi> di sampul surat atau satu tambalan"
-#: builtin/log.c:1842
+#: builtin/log.c:1861
msgid "show changes against <refspec> in cover letter or single patch"
msgstr ""
"perlihatkan perubahan terhadap <spek referensi> di sampul surat atau satu "
"tambalan"
-#: builtin/log.c:1844 builtin/range-diff.c:28
+#: builtin/log.c:1863 builtin/range-diff.c:28
msgid "percentage by which creation is weighted"
msgstr "persentase dimana pembuatan tertimbang"
-#: builtin/log.c:1931
+#: builtin/log.c:1953
#, c-format
msgid "invalid ident line: %s"
msgstr "baris identitas tidak valid: %s"
-#: builtin/log.c:1956
+#: builtin/log.c:1978
msgid "--name-only does not make sense"
msgstr "--name-only tidak masuk akal"
-#: builtin/log.c:1958
+#: builtin/log.c:1980
msgid "--name-status does not make sense"
msgstr "--name-status tidak masuk akal"
-#: builtin/log.c:1960
+#: builtin/log.c:1982
msgid "--check does not make sense"
msgstr "--check tidak masuk akal"
-#: builtin/log.c:2104
+#: builtin/log.c:1984
+msgid "--remerge-diff does not make sense"
+msgstr "--remerge-diff tidak masuk akal"
+
+#: builtin/log.c:2129
msgid "--interdiff requires --cover-letter or single patch"
msgstr "--interdiff butuh --cover-letter atau satu tambalan"
-#: builtin/log.c:2108
+#: builtin/log.c:2133
msgid "Interdiff:"
msgstr "Interdiff:"
-#: builtin/log.c:2109
+#: builtin/log.c:2134
#, c-format
msgid "Interdiff against v%d:"
msgstr "Interdiff terhadap v%d:"
-#: builtin/log.c:2119
+#: builtin/log.c:2144
msgid "--range-diff requires --cover-letter or single patch"
msgstr "--range-diff butuh --cover-letter atau satu tambalan"
-#: builtin/log.c:2127
+#: builtin/log.c:2152
msgid "Range-diff:"
msgstr "Range-diff:"
-#: builtin/log.c:2128
+#: builtin/log.c:2153
#, c-format
msgid "Range-diff against v%d:"
msgstr "Range-diff terhadap v%d:"
-#: builtin/log.c:2139
+#: builtin/log.c:2164
#, c-format
msgid "unable to read signature file '%s'"
msgstr "tidak dapat membaca berkas tanda tangan '%s'"
-#: builtin/log.c:2175
+#: builtin/log.c:2200
msgid "Generating patches"
msgstr "Membuat tambalan"
-#: builtin/log.c:2219
+#: builtin/log.c:2244
msgid "failed to create output files"
msgstr "tidak dapat membuat berkas keluaran"
-#: builtin/log.c:2279
+#: builtin/log.c:2304
msgid "git cherry [-v] [<upstream> [<head> [<limit>]]]"
msgstr "git cherry [-v] [<hulu> [<kepala> [<batas>]]]"
-#: builtin/log.c:2333
+#: builtin/log.c:2358
#, c-format
msgid ""
"Could not find a tracked remote branch, please specify <upstream> manually.\n"
@@ -17175,10 +17775,6 @@ msgstr "tambahkan pengecualian git standar"
msgid "make the output relative to the project top directory"
msgstr "buat keluaran relatif terhadap direktori puncak proyek"
-#: builtin/ls-files.c:667
-msgid "recurse through submodules"
-msgstr "rekursi melalui submodul"
-
#: builtin/ls-files.c:669
msgid "if any <file> is not in the index, treat this as an error"
msgstr ""
@@ -17218,7 +17814,7 @@ msgstr ""
msgid "do not print remote URL"
msgstr "jangan cetak URL remote"
-#: builtin/ls-remote.c:61 builtin/ls-remote.c:63 builtin/rebase.c:1103
+#: builtin/ls-remote.c:61 builtin/ls-remote.c:63 builtin/rebase.c:1131
msgid "exec"
msgstr "exec"
@@ -17251,44 +17847,72 @@ msgstr ""
msgid "show underlying ref in addition to the object pointed by it"
msgstr "perlihatkan referensi pokok selain objek yang ditunjuk olehnya"
-#: builtin/ls-tree.c:30
+#: builtin/ls-tree.c:36
msgid "git ls-tree [<options>] <tree-ish> [<path>...]"
msgstr "git ls-tree [<opsi>] <mirip-pohon> [<jalur>...]"
-#: builtin/ls-tree.c:128
+#: builtin/ls-tree.c:54
+#, c-format
+msgid "could not get object info about '%s'"
+msgstr "tidak dapat mendapatkan info objek tentang '%s'"
+
+#: builtin/ls-tree.c:79
+#, c-format
+msgid "bad ls-tree format: element '%s' does not start with '('"
+msgstr "format ls-tree jelek: elemen '%s' tidak dimulai dengan '('"
+
+#: builtin/ls-tree.c:83
+#, c-format
+msgid "bad ls-tree format: element '%s' does not end in ')'"
+msgstr "format ls-tree jelek: elemen '%s' tidak diakhiri dengan ')'"
+
+#: builtin/ls-tree.c:109
+#, c-format
+msgid "bad ls-tree format: %%%.*s"
+msgstr "format ls-tree jelek: %%%.*s"
+
+#: builtin/ls-tree.c:336
msgid "only show trees"
msgstr "hanya perlihatkan pohon"
-#: builtin/ls-tree.c:130
+#: builtin/ls-tree.c:338
msgid "recurse into subtrees"
msgstr "rekursi ke dalam subpohon"
-#: builtin/ls-tree.c:132
+#: builtin/ls-tree.c:340
msgid "show trees when recursing"
msgstr "perlihatkan pohon ketika rekursi"
-#: builtin/ls-tree.c:135
+#: builtin/ls-tree.c:343
msgid "terminate entries with NUL byte"
msgstr "akhiri entri dengan bita NUL"
-#: builtin/ls-tree.c:136
+#: builtin/ls-tree.c:344
msgid "include object size"
msgstr "masukkan ukuran objek"
-#: builtin/ls-tree.c:138 builtin/ls-tree.c:140
+#: builtin/ls-tree.c:346 builtin/ls-tree.c:348
msgid "list only filenames"
msgstr "hanya daftar nama berkas"
-#: builtin/ls-tree.c:143
+#: builtin/ls-tree.c:350
+msgid "list only objects"
+msgstr "hanya daftar objek"
+
+#: builtin/ls-tree.c:353
msgid "use full path names"
msgstr "gunakan nama berkas lengkap"
-#: builtin/ls-tree.c:145
+#: builtin/ls-tree.c:355
msgid "list entire tree; not just current directory (implies --full-name)"
msgstr ""
"daftar pohon keseluruhan; bukan hanya direktori saat ini (menyiratkan --full-"
"name)"
+#: builtin/ls-tree.c:391
+msgid "--format can't be combined with other format-altering options"
+msgstr "--format tidak dapat digabungkan opsi pengubah format lainnya"
+
#. TRANSLATORS: keep <> in "<" mail ">" info.
#: builtin/mailinfo.c:14
msgid "git mailinfo [<options>] <msg> <patch> < mail >info"
@@ -17338,50 +17962,54 @@ msgstr ""
msgid "use headers in message's body"
msgstr ""
-#: builtin/mailsplit.c:239
+#: builtin/mailsplit.c:227
+msgid "reading patches from stdin/tty..."
+msgstr ""
+
+#: builtin/mailsplit.c:242
#, c-format
msgid "empty mbox: '%s'"
msgstr ""
#: builtin/merge-base.c:32
msgid "git merge-base [-a | --all] <commit> <commit>..."
-msgstr ""
+msgstr "git merge-base [-a | --all] <komit> <komit>..."
#: builtin/merge-base.c:33
msgid "git merge-base [-a | --all] --octopus <commit>..."
-msgstr ""
+msgstr "git merge-base [-a | --all] --octopus <komit>..."
#: builtin/merge-base.c:34
msgid "git merge-base --independent <commit>..."
-msgstr ""
+msgstr "git merge-base --independent <komit>..."
#: builtin/merge-base.c:35
msgid "git merge-base --is-ancestor <commit> <commit>"
-msgstr ""
+msgstr "git merge-base --is-ancestor <komit> <komit>"
#: builtin/merge-base.c:36
msgid "git merge-base --fork-point <ref> [<commit>]"
-msgstr ""
+msgstr "git merge-base --fork-point <referensi> [<komit>]"
-#: builtin/merge-base.c:143
+#: builtin/merge-base.c:144
msgid "output all common ancestors"
-msgstr ""
+msgstr "keluarkan semua leluhur umum"
-#: builtin/merge-base.c:145
+#: builtin/merge-base.c:146
msgid "find ancestors for a single n-way merge"
-msgstr ""
+msgstr "temukan leluhur untuk sebuah penggabungan n-arah"
-#: builtin/merge-base.c:147
+#: builtin/merge-base.c:148
msgid "list revs not reachable from others"
-msgstr ""
+msgstr "daftarkan revisi yang tak terjangkau dari yang lainnya"
-#: builtin/merge-base.c:149
+#: builtin/merge-base.c:150
msgid "is the first one ancestor of the other?"
-msgstr ""
+msgstr "apakah yang pertama leluhur yang lain?"
-#: builtin/merge-base.c:151
+#: builtin/merge-base.c:152
msgid "find where <commit> forked from reflog of <ref>"
-msgstr ""
+msgstr "temukan dimana <komit> digarpu dari log referensi <referensi>"
#: builtin/merge-file.c:9
msgid ""
@@ -17526,7 +18154,7 @@ msgid "verify that the named commit has a valid GPG signature"
msgstr "periksa bahwa komit bernama punya tandatangan GPG yang valid"
#: builtin/merge.c:280 builtin/notes.c:785 builtin/pull.c:172
-#: builtin/rebase.c:1117 builtin/revert.c:114
+#: builtin/rebase.c:1145 builtin/revert.c:114
msgid "strategy"
msgstr "strategi"
@@ -17660,72 +18288,72 @@ msgstr ""
"Baris yang diawali dengan '%c' akan diabaikan, dan pesan kosong batalkan\n"
"komit.\n"
-#: builtin/merge.c:894
+#: builtin/merge.c:900
msgid "Empty commit message."
msgstr "Pesan komit kosong"
-#: builtin/merge.c:909
+#: builtin/merge.c:915
#, c-format
msgid "Wonderful.\n"
msgstr "Luar biasa.\n"
-#: builtin/merge.c:970
+#: builtin/merge.c:976
#, c-format
msgid "Automatic merge failed; fix conflicts and then commit the result.\n"
msgstr "Penggabungan otomatis gagal; selesaikan konflik lalu komit hasilnya.\n"
-#: builtin/merge.c:1009
+#: builtin/merge.c:1015
msgid "No current branch."
msgstr "Tidak ada cabang saat ini."
-#: builtin/merge.c:1011
+#: builtin/merge.c:1017
msgid "No remote for the current branch."
msgstr "Tidak ada remote untuk cabang saat ini."
-#: builtin/merge.c:1013
+#: builtin/merge.c:1019
msgid "No default upstream defined for the current branch."
msgstr "Tidak ada hulu asali yang ditentukan untuk cabang saat ini."
-#: builtin/merge.c:1018
+#: builtin/merge.c:1024
#, c-format
msgid "No remote-tracking branch for %s from %s"
msgstr "Tidak ada cabang pelacak remote untuk %s dari %s"
-#: builtin/merge.c:1075
+#: builtin/merge.c:1081
#, c-format
msgid "Bad value '%s' in environment '%s'"
msgstr "Nilai jelek '%s' dalam lingkungan '%s'"
-#: builtin/merge.c:1177
+#: builtin/merge.c:1183
#, c-format
msgid "not something we can merge in %s: %s"
msgstr "bukan sesuatu yang kami bisa gabungkan di %s: %s"
-#: builtin/merge.c:1211
+#: builtin/merge.c:1217
msgid "not something we can merge"
msgstr "bukan sesuatu yang kami bisa gabungkan"
-#: builtin/merge.c:1324
+#: builtin/merge.c:1330
msgid "--abort expects no arguments"
msgstr "--abort harap tanpa argumen"
-#: builtin/merge.c:1328
+#: builtin/merge.c:1334
msgid "There is no merge to abort (MERGE_HEAD missing)."
msgstr "Tidak ada penggabungan yang bisa dibatalkan (MERGE_HEAD hilang)."
-#: builtin/merge.c:1346
+#: builtin/merge.c:1352
msgid "--quit expects no arguments"
msgstr "--quit harap tanpa argumen"
-#: builtin/merge.c:1359
+#: builtin/merge.c:1365
msgid "--continue expects no arguments"
msgstr "--continue harap tanpa argumen"
-#: builtin/merge.c:1363
+#: builtin/merge.c:1369
msgid "There is no merge in progress (MERGE_HEAD missing)."
msgstr "Tidak ada penggabungan yang sedang berlangsung (MERGE_HEAD hilang)."
-#: builtin/merge.c:1379
+#: builtin/merge.c:1385
msgid ""
"You have not concluded your merge (MERGE_HEAD exists).\n"
"Please, commit your changes before you merge."
@@ -17733,7 +18361,7 @@ msgstr ""
"Anda belum mengakhiri penggabungan Anda (MERGE_HEAD ada).\n"
"Mohon komit perubahan Anda sebelum Anda gabungkan."
-#: builtin/merge.c:1386
+#: builtin/merge.c:1392
msgid ""
"You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists).\n"
"Please, commit your changes before you merge."
@@ -17741,87 +18369,83 @@ msgstr ""
"Anda belum mengakhiri pemetikan ceri Anda (CHERRY_PICK_HEAD ada).\n"
"Mohon komit perubahan Anda sebelum Anda gabungkan."
-#: builtin/merge.c:1389
+#: builtin/merge.c:1395
msgid "You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists)."
msgstr "Anda belum mengakhiri pemetikan ceri Anda (CHERRY_PICK_HEAD ada)."
-#: builtin/merge.c:1421
+#: builtin/merge.c:1427
msgid "No commit specified and merge.defaultToUpstream not set."
msgstr ""
"Tidak ada komit yang disebutkan dan merge.defaultToUpstream tidak disetel."
-#: builtin/merge.c:1438
+#: builtin/merge.c:1444
msgid "Squash commit into empty head not supported yet"
msgstr "Lumat komit ke kepala kosong belum didukung"
-#: builtin/merge.c:1440
+#: builtin/merge.c:1446
msgid "Non-fast-forward commit does not make sense into an empty head"
msgstr "Komit nir maju cepat tidak masuk akal ke kepala kosong"
-#: builtin/merge.c:1445
+#: builtin/merge.c:1451
#, c-format
msgid "%s - not something we can merge"
msgstr "%s - bukan sesuatu yang kami bisa gabungkan"
-#: builtin/merge.c:1447
+#: builtin/merge.c:1453
msgid "Can merge only exactly one commit into empty head"
msgstr "Hanya bisa menggabungkan tepantnya satu komit ke kepala kosong"
-#: builtin/merge.c:1534
+#: builtin/merge.c:1540
msgid "refusing to merge unrelated histories"
msgstr "menolak menggabungkan riwayat tak terkait"
-#: builtin/merge.c:1553
+#: builtin/merge.c:1559
#, c-format
msgid "Updating %s..%s\n"
msgstr "Memperbarui %s..%s\n"
-#: builtin/merge.c:1601
+#: builtin/merge.c:1606
#, c-format
msgid "Trying really trivial in-index merge...\n"
msgstr "Mencoba penggabungan dalam indeks yang sangat sepele\n"
-#: builtin/merge.c:1608
+#: builtin/merge.c:1613
#, c-format
msgid "Nope.\n"
msgstr "Tidak.\n"
-#: builtin/merge.c:1667 builtin/merge.c:1733
+#: builtin/merge.c:1671 builtin/merge.c:1737
#, c-format
msgid "Rewinding the tree to pristine...\n"
msgstr "Memutar ulang pohon ke asli...\n"
-#: builtin/merge.c:1671
+#: builtin/merge.c:1675
#, c-format
msgid "Trying merge strategy %s...\n"
msgstr "Mencoba strategi penggabungan %s...\n"
-#: builtin/merge.c:1723
+#: builtin/merge.c:1727
#, c-format
msgid "No merge strategy handled the merge.\n"
msgstr "Tidak ada strategi yang menangani penggabungan.\n"
-#: builtin/merge.c:1725
+#: builtin/merge.c:1729
#, c-format
msgid "Merge with strategy %s failed.\n"
msgstr "Penggabungan dengan strategi %s gagal.\n"
-#: builtin/merge.c:1735
+#: builtin/merge.c:1739
#, c-format
msgid "Using the %s strategy to prepare resolving by hand.\n"
msgstr "Menggunakan strategi %s untuk menyiapkan penyelesaian dengan tangan.\n"
-#: builtin/merge.c:1749
+#: builtin/merge.c:1753
#, c-format
msgid "Automatic merge went well; stopped before committing as requested\n"
msgstr ""
"Penggabungan otomatis berjalan baik; berhenti sebelum mengkomit seperti yang "
"diminta\n"
-#: builtin/mktag.c:10
-msgid "git mktag"
-msgstr ""
-
#: builtin/mktag.c:27
#, c-format
msgid "warning: tag input does not pass fsck: %s"
@@ -17847,22 +18471,18 @@ msgstr ""
msgid "object '%s' tagged as '%s', but is a '%s' type"
msgstr ""
-#: builtin/mktag.c:98
+#: builtin/mktag.c:97
msgid "tag on stdin did not pass our strict fsck check"
msgstr ""
-#: builtin/mktag.c:101
+#: builtin/mktag.c:100
msgid "tag on stdin did not refer to a valid object"
msgstr ""
-#: builtin/mktag.c:104 builtin/tag.c:242
+#: builtin/mktag.c:103 builtin/tag.c:243
msgid "unable to write tag file"
msgstr ""
-#: builtin/mktree.c:66
-msgid "git mktree [-z] [--missing] [--batch]"
-msgstr ""
-
#: builtin/mktree.c:154
msgid "input is NUL terminated"
msgstr ""
@@ -17880,48 +18500,52 @@ msgid ""
"git multi-pack-index [<options>] write [--preferred-pack=<pack>][--refs-"
"snapshot=<path>]"
msgstr ""
+"git multi-pack-index [<opsi>] write [--preferred-pack=<pak>] [--refs-"
+"snapshot=<jalur>]"
#: builtin/multi-pack-index.c:14
msgid "git multi-pack-index [<options>] verify"
-msgstr ""
+msgstr "git multi-pack-index [<opsi>] verify"
#: builtin/multi-pack-index.c:17
msgid "git multi-pack-index [<options>] expire"
-msgstr ""
+msgstr "git multi-pack-index [<opsi>] expire"
#: builtin/multi-pack-index.c:20
msgid "git multi-pack-index [<options>] repack [--batch-size=<size>]"
-msgstr ""
+msgstr "git multi-pack-index [<opsi>] repack [--batch-size=<ukuran>]"
#: builtin/multi-pack-index.c:57
msgid "object directory containing set of packfile and pack-index pairs"
-msgstr ""
+msgstr "direktori objek berisi set berkas pak dan pasangan pak-indeks"
#: builtin/multi-pack-index.c:98
msgid "preferred-pack"
-msgstr ""
+msgstr "pak pilihan"
#: builtin/multi-pack-index.c:99
msgid "pack for reuse when computing a multi-pack bitmap"
-msgstr ""
+msgstr "pak untuk digunakan ulang saat menghitung bitmap multipak"
#: builtin/multi-pack-index.c:100
msgid "write multi-pack bitmap"
-msgstr ""
+msgstr "tulis bitmap multipak"
#: builtin/multi-pack-index.c:105
msgid "write multi-pack index containing only given indexes"
-msgstr ""
+msgstr "tulis indeks multipak yang hanya berisi indeks yang diberikan"
#: builtin/multi-pack-index.c:107
msgid "refs snapshot for selecting bitmap commits"
-msgstr ""
+msgstr "potret referensi untuk memilih komit bitmap"
#: builtin/multi-pack-index.c:206
msgid ""
"during repack, collect pack-files of smaller size into a batch that is "
"larger than this size"
msgstr ""
+"selama pengepakan ulang, kumpulkan berkas pak berukuran lebih kecil ke dalam "
+"sebuah batch yang lebih besar dari ukuran ini"
#: builtin/mv.c:18
msgid "git mv [<options>] <source>... <destination>"
@@ -18015,52 +18639,56 @@ msgstr "%s, source=%s, destination=%s"
msgid "Renaming %s to %s\n"
msgstr "Mengganti nama %s ke %s\n"
-#: builtin/mv.c:314 builtin/remote.c:790 builtin/repack.c:857
+#: builtin/mv.c:314 builtin/remote.c:812 builtin/repack.c:861
#, c-format
msgid "renaming '%s' failed"
msgstr "gagal mengganti nama '%s'"
-#: builtin/name-rev.c:474
+#: builtin/name-rev.c:524
msgid "git name-rev [<options>] <commit>..."
msgstr ""
-#: builtin/name-rev.c:475
+#: builtin/name-rev.c:525
msgid "git name-rev [<options>] --all"
msgstr ""
-#: builtin/name-rev.c:476
-msgid "git name-rev [<options>] --stdin"
+#: builtin/name-rev.c:526
+msgid "git name-rev [<options>] --annotate-stdin"
msgstr ""
-#: builtin/name-rev.c:533
+#: builtin/name-rev.c:583
msgid "print only ref-based names (no object names)"
msgstr ""
-#: builtin/name-rev.c:534
+#: builtin/name-rev.c:584
msgid "only use tags to name the commits"
msgstr ""
-#: builtin/name-rev.c:536
+#: builtin/name-rev.c:586
msgid "only use refs matching <pattern>"
msgstr ""
-#: builtin/name-rev.c:538
+#: builtin/name-rev.c:588
msgid "ignore refs matching <pattern>"
msgstr ""
-#: builtin/name-rev.c:540
+#: builtin/name-rev.c:590
msgid "list all commits reachable from all refs"
msgstr ""
-#: builtin/name-rev.c:541
-msgid "read from stdin"
+#: builtin/name-rev.c:591
+msgid "deprecated: use annotate-stdin instead"
msgstr ""
-#: builtin/name-rev.c:542
+#: builtin/name-rev.c:592
+msgid "annotate text from stdin"
+msgstr ""
+
+#: builtin/name-rev.c:593
msgid "allow to print `undefined` names (default)"
msgstr ""
-#: builtin/name-rev.c:548
+#: builtin/name-rev.c:599
msgid "dereference tags in the input (internal use)"
msgstr ""
@@ -18073,164 +18701,159 @@ msgid ""
"git notes [--ref <notes-ref>] add [-f] [--allow-empty] [-m <msg> | -F <file> "
"| (-c | -C) <object>] [<object>]"
msgstr ""
+"git notes [--ref <referensi catatan>] add [-f] [--allow-empty] [-m <pesan | -"
+"F <berkas> | (-c | -C) <objek>] [<objek>]"
#: builtin/notes.c:30
msgid "git notes [--ref <notes-ref>] copy [-f] <from-object> <to-object>"
msgstr ""
+"git notes [--ref <referensi catatan>] copy [-f] <objek asal> <objek tujuan>"
#: builtin/notes.c:31
msgid ""
"git notes [--ref <notes-ref>] append [--allow-empty] [-m <msg> | -F <file> | "
"(-c | -C) <object>] [<object>]"
msgstr ""
+"git notes [--ref <referensi catatan>] append [--alow-empty] [-m <pesan> | -F "
+"<berkas> | (-c | -C) <objek>] [<objek>]"
#: builtin/notes.c:32
msgid "git notes [--ref <notes-ref>] edit [--allow-empty] [<object>]"
-msgstr ""
+msgstr "git notes [--ref <referensi catatan>] edit [--allow-empty] [<objek>]"
#: builtin/notes.c:33
msgid "git notes [--ref <notes-ref>] show [<object>]"
-msgstr ""
+msgstr "git notes [--ref <referensi catatan>] show [<objek>]"
#: builtin/notes.c:34
msgid ""
"git notes [--ref <notes-ref>] merge [-v | -q] [-s <strategy>] <notes-ref>"
msgstr ""
-
-#: builtin/notes.c:35
-msgid "git notes merge --commit [-v | -q]"
-msgstr ""
-
-#: builtin/notes.c:36
-msgid "git notes merge --abort [-v | -q]"
-msgstr ""
+"git notes [--ref <referensi catatan>] merge [-v | -q] [-s <strategi>] "
+"<referensi catatan> "
#: builtin/notes.c:37
msgid "git notes [--ref <notes-ref>] remove [<object>...]"
-msgstr ""
+msgstr "git notes [--ref <referensi catatan>] remove [<objek>...]"
#: builtin/notes.c:38
msgid "git notes [--ref <notes-ref>] prune [-n] [-v]"
-msgstr ""
+msgstr "git notes [--ref <referensi catatan>] prune [-n] [-v]"
#: builtin/notes.c:39
msgid "git notes [--ref <notes-ref>] get-ref"
-msgstr ""
+msgstr "git notes [--ref <referensi catatan>] get-ref"
#: builtin/notes.c:44
msgid "git notes [list [<object>]]"
-msgstr ""
+msgstr "git notes [list [<objek>]]"
#: builtin/notes.c:49
msgid "git notes add [<options>] [<object>]"
-msgstr ""
+msgstr "git notes add [<opsi>] [<objek>]"
#: builtin/notes.c:54
msgid "git notes copy [<options>] <from-object> <to-object>"
-msgstr ""
+msgstr "git notes copy [<opsi>] <objek asal> <objek tujuan>"
#: builtin/notes.c:55
msgid "git notes copy --stdin [<from-object> <to-object>]..."
-msgstr ""
+msgstr "git notes copy --stdin [<objek asal> <objek tujuan>]..."
#: builtin/notes.c:60
msgid "git notes append [<options>] [<object>]"
-msgstr ""
+msgstr "git notes append [<opsi>] [<objek>]"
#: builtin/notes.c:65
msgid "git notes edit [<object>]"
-msgstr ""
+msgstr "git notes edit [<objek>]"
#: builtin/notes.c:70
msgid "git notes show [<object>]"
-msgstr ""
+msgstr "git notes show [<objek>]"
#: builtin/notes.c:75
msgid "git notes merge [<options>] <notes-ref>"
-msgstr ""
+msgstr "git notes merge [<opsi>] <referensi catatan>"
#: builtin/notes.c:76
msgid "git notes merge --commit [<options>]"
-msgstr ""
+msgstr "git notes merge --commit [<opsi>]"
#: builtin/notes.c:77
msgid "git notes merge --abort [<options>]"
-msgstr ""
+msgstr "git notes merge --abort [<opsi>]"
#: builtin/notes.c:82
msgid "git notes remove [<object>]"
-msgstr ""
+msgstr "git notes remove [<objek>]"
#: builtin/notes.c:87
msgid "git notes prune [<options>]"
-msgstr ""
-
-#: builtin/notes.c:92
-msgid "git notes get-ref"
-msgstr ""
+msgstr "git notes prune [<opsi>]"
#: builtin/notes.c:97
msgid "Write/edit the notes for the following object:"
-msgstr ""
+msgstr "Tulis/sunting catatan untuk objek berikut:"
#: builtin/notes.c:149
#, c-format
msgid "unable to start 'show' for object '%s'"
-msgstr ""
+msgstr "tidak dapat memulai 'show' untuk objek '%s'"
#: builtin/notes.c:153
msgid "could not read 'show' output"
-msgstr ""
+msgstr "tidak dapat membaca keluaran 'show'"
#: builtin/notes.c:161
#, c-format
msgid "failed to finish 'show' for object '%s'"
-msgstr ""
+msgstr "gagal menyelesaikan 'show' untuk objek '%s'"
#: builtin/notes.c:194
msgid "please supply the note contents using either -m or -F option"
-msgstr ""
+msgstr "mohon berikan isi catatan baik menggunakan opsi -m ataupun -F"
#: builtin/notes.c:203
msgid "unable to write note object"
-msgstr ""
+msgstr "tidak dapat menulis objek catatan"
#: builtin/notes.c:206
#, c-format
msgid "the note contents have been left in %s"
-msgstr ""
+msgstr "isi catatan telah ditinggalkan di %s"
-#: builtin/notes.c:240 builtin/tag.c:581
+#: builtin/notes.c:240 builtin/tag.c:582
#, c-format
msgid "could not open or read '%s'"
-msgstr ""
+msgstr "tidak dapat membuka atau membaca '%s'"
#: builtin/notes.c:261 builtin/notes.c:311 builtin/notes.c:313
#: builtin/notes.c:381 builtin/notes.c:436 builtin/notes.c:524
#: builtin/notes.c:529 builtin/notes.c:608 builtin/notes.c:670
#, c-format
msgid "failed to resolve '%s' as a valid ref."
-msgstr ""
+msgstr "gagal menguraikan '%s' sebagai sebuah referensi valid."
#: builtin/notes.c:263
#, c-format
msgid "failed to read object '%s'."
-msgstr ""
+msgstr "gagal membaca objek '%s'."
#: builtin/notes.c:266
#, c-format
msgid "cannot read note data from non-blob object '%s'."
-msgstr ""
+msgstr "gagal membaca data catatan dari objek bukan blob '%s'."
#: builtin/notes.c:307
#, c-format
msgid "malformed input line: '%s'."
-msgstr ""
+msgstr "baris masukan jelek: '%s'."
#: builtin/notes.c:322
#, c-format
msgid "failed to copy notes from '%s' to '%s'"
-msgstr ""
+msgstr "gagal menyalin catatan dari '%s' ke '%s'"
#. TRANSLATORS: the first %s will be replaced by a git
#. notes command: 'add', 'merge', 'remove', etc.
@@ -18238,43 +18861,36 @@ msgstr ""
#: builtin/notes.c:354
#, c-format
msgid "refusing to %s notes in %s (outside of refs/notes/)"
-msgstr ""
-
-#: builtin/notes.c:374 builtin/notes.c:429 builtin/notes.c:507
-#: builtin/notes.c:519 builtin/notes.c:596 builtin/notes.c:663
-#: builtin/notes.c:813 builtin/notes.c:965 builtin/notes.c:987
-#: builtin/prune-packed.c:25 builtin/receive-pack.c:2487 builtin/tag.c:591
-msgid "too many arguments"
-msgstr ""
+msgstr "gagal men-%s catatan di %s (di luar refs/notes/)"
#: builtin/notes.c:387 builtin/notes.c:676
#, c-format
msgid "no note found for object %s."
-msgstr ""
+msgstr "tidak ada catatan yang ditemukan untuk objek %s."
#: builtin/notes.c:408 builtin/notes.c:574
msgid "note contents as a string"
-msgstr ""
+msgstr "isi catatan sebagai sebuah untai"
#: builtin/notes.c:411 builtin/notes.c:577
msgid "note contents in a file"
-msgstr ""
+msgstr "isi catatan di dalam berkas"
#: builtin/notes.c:414 builtin/notes.c:580
msgid "reuse and edit specified note object"
-msgstr ""
+msgstr "gunakan ulang dan sunting objek catatan yang disebutkan"
#: builtin/notes.c:417 builtin/notes.c:583
msgid "reuse specified note object"
-msgstr ""
+msgstr "gunakan ulang objek catatan yang disebutkan"
#: builtin/notes.c:420 builtin/notes.c:586
msgid "allow storing empty note"
-msgstr ""
+msgstr "perbolehkan menyimpan catatan kosong"
#: builtin/notes.c:421 builtin/notes.c:494
msgid "replace existing notes"
-msgstr ""
+msgstr "timpa catatan yang sudah ada"
#: builtin/notes.c:446
#, c-format
@@ -18282,28 +18898,31 @@ msgid ""
"Cannot add notes. Found existing notes for object %s. Use '-f' to overwrite "
"existing notes"
msgstr ""
+"Tidak dapat menambahkan catatan. Catatan yang sudah ada ditemukan untuk "
+"objek %s. Gunakan '-f' untuk menimpa catatan yang sudah ada"
#: builtin/notes.c:461 builtin/notes.c:542
#, c-format
msgid "Overwriting existing notes for object %s\n"
-msgstr ""
+msgstr "Menimpa catatan yang sudah ada untuk objek %s\n"
#: builtin/notes.c:473 builtin/notes.c:635 builtin/notes.c:904
#, c-format
msgid "Removing note for object %s\n"
-msgstr ""
+msgstr "Menghapus catatan untuk objek %s\n"
#: builtin/notes.c:495
msgid "read objects from stdin"
-msgstr ""
+msgstr "baca objek dari masukan standar"
#: builtin/notes.c:497
msgid "load rewriting config for <command> (implies --stdin)"
msgstr ""
+"muat konfigurasi penulisan ulang untuk <perintah> (menyiratkan --stdin)"
#: builtin/notes.c:515
msgid "too few arguments"
-msgstr ""
+msgstr "argumen terlalu sedikit"
#: builtin/notes.c:536
#, c-format
@@ -18311,11 +18930,13 @@ msgid ""
"Cannot copy notes. Found existing notes for object %s. Use '-f' to overwrite "
"existing notes"
msgstr ""
+"Tidak dapat menyalin catatan. Catatan yang sudah ada ditemukan untuk %s. "
+"Gunakan '-f' untuk menimpa catatan yang sudah ada"
#: builtin/notes.c:548
#, c-format
msgid "missing notes on source object %s. Cannot copy."
-msgstr ""
+msgstr "catatan hilang pada objek sumber %s. Tidak dapat menyalin."
#: builtin/notes.c:601
#, c-format
@@ -18323,96 +18944,101 @@ msgid ""
"The -m/-F/-c/-C options have been deprecated for the 'edit' subcommand.\n"
"Please use 'git notes add -f -m/-F/-c/-C' instead.\n"
msgstr ""
+"Opsi -m/-F/-c/-C sudah usang untuk subperintah 'edit.\n"
+"'Mohon gunakan 'git notes add -f -m/-F/-c/-C' sebagai gantinya.\n"
#: builtin/notes.c:696
msgid "failed to delete ref NOTES_MERGE_PARTIAL"
-msgstr ""
+msgstr "gagal menghapus referensi NOTES_MERGE_PARTIAL"
#: builtin/notes.c:698
msgid "failed to delete ref NOTES_MERGE_REF"
-msgstr ""
+msgstr "gagal menghapus referensi NOTES_MERGE_REF"
#: builtin/notes.c:700
msgid "failed to remove 'git notes merge' worktree"
-msgstr ""
+msgstr "gagal menghapus pohon kerja 'git notes merge'"
#: builtin/notes.c:720
msgid "failed to read ref NOTES_MERGE_PARTIAL"
-msgstr ""
+msgstr "gagal membaca referensi NOTES_MERGE_PARTIAL"
#: builtin/notes.c:722
msgid "could not find commit from NOTES_MERGE_PARTIAL."
-msgstr ""
+msgstr "gagal menemukan komit dari NOTES_MERGE_PARTIAL."
#: builtin/notes.c:724
msgid "could not parse commit from NOTES_MERGE_PARTIAL."
-msgstr ""
+msgstr "gagal menguraikan komit dari NOTES_MERGE_PARTIAL."
#: builtin/notes.c:737
msgid "failed to resolve NOTES_MERGE_REF"
-msgstr ""
+msgstr "gagal menguraikan NOTES_MERGE_REF"
#: builtin/notes.c:740
msgid "failed to finalize notes merge"
-msgstr ""
+msgstr "gagal menyelesaikan penggabungan catatan"
#: builtin/notes.c:766
#, c-format
msgid "unknown notes merge strategy %s"
-msgstr ""
+msgstr "strategi penggabungan catatan %s tidak dikenal"
#: builtin/notes.c:782
msgid "General options"
-msgstr ""
+msgstr "Opsi umum"
#: builtin/notes.c:784
msgid "Merge options"
-msgstr ""
+msgstr "Opsi penggabungan"
#: builtin/notes.c:786
msgid ""
"resolve notes conflicts using the given strategy (manual/ours/theirs/union/"
"cat_sort_uniq)"
msgstr ""
+"selesaikan konflik catatan menggunakan strategi yang diberikan (manual/ours/"
+"theirs/union/cat_sort_uniq)"
#: builtin/notes.c:788
msgid "Committing unmerged notes"
-msgstr ""
+msgstr "Mengkomitkan catatan tak tergabung"
#: builtin/notes.c:790
msgid "finalize notes merge by committing unmerged notes"
msgstr ""
+"selesaikan penggabungan catatan dengan mengkomitkan catatan tak tergabung"
#: builtin/notes.c:792
msgid "Aborting notes merge resolution"
-msgstr ""
+msgstr "Membatalkan resolusi penggabungan catatan"
#: builtin/notes.c:794
msgid "abort notes merge"
-msgstr ""
+msgstr "batalkan penggabungan catatan"
#: builtin/notes.c:805
msgid "cannot mix --commit, --abort or -s/--strategy"
-msgstr ""
+msgstr "tidak dapat mencampurkan --commit, --abort atau -s/--strategy"
#: builtin/notes.c:810
msgid "must specify a notes ref to merge"
-msgstr ""
+msgstr "harus menyebutkan sebuah referensi catatan untuk digabungkan"
#: builtin/notes.c:834
#, c-format
msgid "unknown -s/--strategy: %s"
-msgstr ""
+msgstr "-s/--strategy tidak dikenal: %s"
#: builtin/notes.c:874
#, c-format
msgid "a notes merge into %s is already in-progress at %s"
-msgstr ""
+msgstr "sebuah penggabungan catatan ke %s sudah berjalan pada %s"
#: builtin/notes.c:878
#, c-format
msgid "failed to store link to current notes ref (%s)"
-msgstr ""
+msgstr "gagal menyimpan tautan ke referensi catatan saat ini (%s)"
#: builtin/notes.c:880
#, c-format
@@ -18421,45 +19047,48 @@ msgid ""
"'git notes merge --commit', or abort the merge with 'git notes merge --"
"abort'.\n"
msgstr ""
+"Penggabungan catatan otomatis gagal. Selesaikan konflik dalam %s dan komit "
+"hasilnya dengan 'git notes merge --commit', atau batalkan penggabungan "
+"dengan 'git notes merge --abort'.\n"
-#: builtin/notes.c:899 builtin/tag.c:594
+#: builtin/notes.c:899 builtin/tag.c:595
#, c-format
msgid "Failed to resolve '%s' as a valid ref."
-msgstr ""
+msgstr "Gagal menguraikan '%s' sebagai referensi valid."
#: builtin/notes.c:902
#, c-format
msgid "Object %s has no note\n"
-msgstr ""
+msgstr "Objek %s tidak punya catatan\n"
#: builtin/notes.c:914
msgid "attempt to remove non-existent note is not an error"
-msgstr ""
+msgstr "mencoba menghapus catatan yang tidak ada bukanlah sebuah kesalahan"
#: builtin/notes.c:917
msgid "read object names from the standard input"
-msgstr ""
+msgstr "baca nama objek dari masukan standar"
-#: builtin/notes.c:956 builtin/prune.c:144 builtin/worktree.c:147
+#: builtin/notes.c:956 builtin/prune.c:144 builtin/worktree.c:148
msgid "do not remove, show only"
-msgstr ""
+msgstr "jangan hapus, hanya perlihatkan"
#: builtin/notes.c:957
msgid "report pruned notes"
-msgstr ""
+msgstr "laporkan catatan terpangkas"
#: builtin/notes.c:1000
msgid "notes-ref"
-msgstr ""
+msgstr "referensi catatan"
#: builtin/notes.c:1001
msgid "use notes from <notes-ref>"
-msgstr ""
+msgstr "gunakan catatan dari <referensi catatan>"
-#: builtin/notes.c:1036 builtin/stash.c:1818
+#: builtin/notes.c:1036 builtin/stash.c:1802
#, c-format
msgid "unknown subcommand: %s"
-msgstr ""
+msgstr "subperintah tidak dikenal: %s"
#: builtin/pack-objects.c:182
msgid ""
@@ -18471,390 +19100,386 @@ msgid ""
"git pack-objects [<options>...] <base-name> [< <ref-list> | < <object-list>]"
msgstr ""
-#: builtin/pack-objects.c:572
+#: builtin/pack-objects.c:570
#, c-format
msgid ""
"write_reuse_object: could not locate %s, expected at offset %<PRIuMAX> in "
"pack %s"
msgstr ""
-#: builtin/pack-objects.c:580
+#: builtin/pack-objects.c:578
#, c-format
msgid "bad packed object CRC for %s"
msgstr ""
-#: builtin/pack-objects.c:591
+#: builtin/pack-objects.c:589
#, c-format
msgid "corrupt packed object for %s"
msgstr ""
-#: builtin/pack-objects.c:722
+#: builtin/pack-objects.c:720
#, c-format
msgid "recursive delta detected for object %s"
msgstr ""
-#: builtin/pack-objects.c:941
+#: builtin/pack-objects.c:939
#, c-format
msgid "ordered %u objects, expected %<PRIu32>"
msgstr ""
-#: builtin/pack-objects.c:1036
+#: builtin/pack-objects.c:1034
#, c-format
msgid "expected object at offset %<PRIuMAX> in pack %s"
msgstr ""
-#: builtin/pack-objects.c:1160
+#: builtin/pack-objects.c:1158
msgid "disabling bitmap writing, packs are split due to pack.packSizeLimit"
msgstr ""
-#: builtin/pack-objects.c:1173
+#: builtin/pack-objects.c:1171
msgid "Writing objects"
msgstr ""
-#: builtin/pack-objects.c:1235 builtin/update-index.c:90
+#: builtin/pack-objects.c:1243 builtin/update-index.c:90
#, c-format
msgid "failed to stat %s"
msgstr ""
-#: builtin/pack-objects.c:1268
+#: builtin/pack-objects.c:1276
msgid "failed to write bitmap index"
msgstr ""
-#: builtin/pack-objects.c:1294
+#: builtin/pack-objects.c:1302
#, c-format
msgid "wrote %<PRIu32> objects while expecting %<PRIu32>"
msgstr ""
-#: builtin/pack-objects.c:1536
+#: builtin/pack-objects.c:1544
msgid "disabling bitmap writing, as some objects are not being packed"
msgstr ""
-#: builtin/pack-objects.c:1984
+#: builtin/pack-objects.c:1992
#, c-format
msgid "delta base offset overflow in pack for %s"
msgstr ""
-#: builtin/pack-objects.c:1993
+#: builtin/pack-objects.c:2001
#, c-format
msgid "delta base offset out of bound for %s"
msgstr ""
-#: builtin/pack-objects.c:2274
+#: builtin/pack-objects.c:2282
msgid "Counting objects"
msgstr ""
-#: builtin/pack-objects.c:2439
+#: builtin/pack-objects.c:2447
#, c-format
msgid "unable to parse object header of %s"
msgstr ""
-#: builtin/pack-objects.c:2509 builtin/pack-objects.c:2525
-#: builtin/pack-objects.c:2535
+#: builtin/pack-objects.c:2517 builtin/pack-objects.c:2533
+#: builtin/pack-objects.c:2543
#, c-format
msgid "object %s cannot be read"
msgstr ""
-#: builtin/pack-objects.c:2512 builtin/pack-objects.c:2539
+#: builtin/pack-objects.c:2520 builtin/pack-objects.c:2547
#, c-format
msgid "object %s inconsistent object length (%<PRIuMAX> vs %<PRIuMAX>)"
msgstr ""
-#: builtin/pack-objects.c:2549
+#: builtin/pack-objects.c:2557
msgid "suboptimal pack - out of memory"
msgstr ""
-#: builtin/pack-objects.c:2864
+#: builtin/pack-objects.c:2872
#, c-format
msgid "Delta compression using up to %d threads"
msgstr ""
-#: builtin/pack-objects.c:3003
+#: builtin/pack-objects.c:3011
#, c-format
msgid "unable to pack objects reachable from tag %s"
msgstr ""
-#: builtin/pack-objects.c:3089
+#: builtin/pack-objects.c:3097
msgid "Compressing objects"
msgstr ""
-#: builtin/pack-objects.c:3095
+#: builtin/pack-objects.c:3103
msgid "inconsistency with delta count"
msgstr ""
-#: builtin/pack-objects.c:3174
+#: builtin/pack-objects.c:3182
#, c-format
msgid ""
"value of uploadpack.blobpackfileuri must be of the form '<object-hash> <pack-"
"hash> <uri>' (got '%s')"
msgstr ""
-#: builtin/pack-objects.c:3177
+#: builtin/pack-objects.c:3185
#, c-format
msgid ""
"object already configured in another uploadpack.blobpackfileuri (got '%s')"
msgstr ""
-#: builtin/pack-objects.c:3212
+#: builtin/pack-objects.c:3220
#, c-format
msgid "could not get type of object %s in pack %s"
msgstr ""
-#: builtin/pack-objects.c:3340 builtin/pack-objects.c:3351
-#: builtin/pack-objects.c:3365
+#: builtin/pack-objects.c:3348 builtin/pack-objects.c:3359
+#: builtin/pack-objects.c:3373
#, c-format
msgid "could not find pack '%s'"
msgstr ""
-#: builtin/pack-objects.c:3408
+#: builtin/pack-objects.c:3416
#, c-format
msgid ""
"expected edge object ID, got garbage:\n"
" %s"
msgstr ""
-#: builtin/pack-objects.c:3414
+#: builtin/pack-objects.c:3422
#, c-format
msgid ""
"expected object ID, got garbage:\n"
" %s"
msgstr ""
-#: builtin/pack-objects.c:3507
-msgid "invalid value for --missing"
-msgstr ""
-
-#: builtin/pack-objects.c:3532 builtin/pack-objects.c:3619
+#: builtin/pack-objects.c:3540 builtin/pack-objects.c:3627
msgid "cannot open pack index"
msgstr ""
-#: builtin/pack-objects.c:3541
+#: builtin/pack-objects.c:3549
#, c-format
msgid "loose object at %s could not be examined"
msgstr ""
-#: builtin/pack-objects.c:3627
+#: builtin/pack-objects.c:3635
msgid "unable to force loose object"
msgstr ""
-#: builtin/pack-objects.c:3757
+#: builtin/pack-objects.c:3763
#, c-format
msgid "not a rev '%s'"
msgstr ""
-#: builtin/pack-objects.c:3760 builtin/rev-parse.c:1061
+#: builtin/pack-objects.c:3766 builtin/rev-parse.c:1061
#, c-format
msgid "bad revision '%s'"
msgstr ""
-#: builtin/pack-objects.c:3788
+#: builtin/pack-objects.c:3794
msgid "unable to add recent objects"
msgstr ""
-#: builtin/pack-objects.c:3841
+#: builtin/pack-objects.c:3847
#, c-format
msgid "unsupported index version %s"
msgstr ""
-#: builtin/pack-objects.c:3845
+#: builtin/pack-objects.c:3851
#, c-format
msgid "bad index version '%s'"
msgstr ""
-#: builtin/pack-objects.c:3884
+#: builtin/pack-objects.c:3907
msgid "<version>[,<offset>]"
msgstr ""
-#: builtin/pack-objects.c:3885
+#: builtin/pack-objects.c:3908
msgid "write the pack index file in the specified idx format version"
msgstr ""
-#: builtin/pack-objects.c:3888
+#: builtin/pack-objects.c:3911
msgid "maximum size of each output pack file"
msgstr ""
-#: builtin/pack-objects.c:3890
+#: builtin/pack-objects.c:3913
msgid "ignore borrowed objects from alternate object store"
msgstr ""
-#: builtin/pack-objects.c:3892
+#: builtin/pack-objects.c:3915
msgid "ignore packed objects"
msgstr ""
-#: builtin/pack-objects.c:3894
+#: builtin/pack-objects.c:3917
msgid "limit pack window by objects"
msgstr ""
-#: builtin/pack-objects.c:3896
+#: builtin/pack-objects.c:3919
msgid "limit pack window by memory in addition to object limit"
msgstr ""
-#: builtin/pack-objects.c:3898
+#: builtin/pack-objects.c:3921
msgid "maximum length of delta chain allowed in the resulting pack"
msgstr ""
-#: builtin/pack-objects.c:3900
+#: builtin/pack-objects.c:3923
msgid "reuse existing deltas"
msgstr ""
-#: builtin/pack-objects.c:3902
+#: builtin/pack-objects.c:3925
msgid "reuse existing objects"
msgstr ""
-#: builtin/pack-objects.c:3904
+#: builtin/pack-objects.c:3927
msgid "use OFS_DELTA objects"
msgstr ""
-#: builtin/pack-objects.c:3906
+#: builtin/pack-objects.c:3929
msgid "use threads when searching for best delta matches"
msgstr ""
-#: builtin/pack-objects.c:3908
+#: builtin/pack-objects.c:3931
msgid "do not create an empty pack output"
msgstr ""
-#: builtin/pack-objects.c:3910
+#: builtin/pack-objects.c:3933
msgid "read revision arguments from standard input"
msgstr ""
-#: builtin/pack-objects.c:3912
+#: builtin/pack-objects.c:3935
msgid "limit the objects to those that are not yet packed"
msgstr ""
-#: builtin/pack-objects.c:3915
+#: builtin/pack-objects.c:3938
msgid "include objects reachable from any reference"
msgstr ""
-#: builtin/pack-objects.c:3918
+#: builtin/pack-objects.c:3941
msgid "include objects referred by reflog entries"
msgstr ""
-#: builtin/pack-objects.c:3921
+#: builtin/pack-objects.c:3944
msgid "include objects referred to by the index"
msgstr ""
-#: builtin/pack-objects.c:3924
+#: builtin/pack-objects.c:3947
msgid "read packs from stdin"
msgstr ""
-#: builtin/pack-objects.c:3926
+#: builtin/pack-objects.c:3949
msgid "output pack to stdout"
msgstr ""
-#: builtin/pack-objects.c:3928
+#: builtin/pack-objects.c:3951
msgid "include tag objects that refer to objects to be packed"
msgstr ""
-#: builtin/pack-objects.c:3930
+#: builtin/pack-objects.c:3953
msgid "keep unreachable objects"
msgstr ""
-#: builtin/pack-objects.c:3932
+#: builtin/pack-objects.c:3955
msgid "pack loose unreachable objects"
msgstr ""
-#: builtin/pack-objects.c:3934
+#: builtin/pack-objects.c:3957
msgid "unpack unreachable objects newer than <time>"
msgstr ""
-#: builtin/pack-objects.c:3937
+#: builtin/pack-objects.c:3960
msgid "use the sparse reachability algorithm"
msgstr ""
-#: builtin/pack-objects.c:3939
+#: builtin/pack-objects.c:3962
msgid "create thin packs"
msgstr ""
-#: builtin/pack-objects.c:3941
+#: builtin/pack-objects.c:3964
msgid "create packs suitable for shallow fetches"
msgstr ""
-#: builtin/pack-objects.c:3943
+#: builtin/pack-objects.c:3966
msgid "ignore packs that have companion .keep file"
msgstr ""
-#: builtin/pack-objects.c:3945
+#: builtin/pack-objects.c:3968
msgid "ignore this pack"
msgstr ""
-#: builtin/pack-objects.c:3947
+#: builtin/pack-objects.c:3970
msgid "pack compression level"
msgstr ""
-#: builtin/pack-objects.c:3949
+#: builtin/pack-objects.c:3972
msgid "do not hide commits by grafts"
msgstr ""
-#: builtin/pack-objects.c:3951
+#: builtin/pack-objects.c:3974
msgid "use a bitmap index if available to speed up counting objects"
msgstr ""
-#: builtin/pack-objects.c:3953
+#: builtin/pack-objects.c:3976
msgid "write a bitmap index together with the pack index"
msgstr ""
-#: builtin/pack-objects.c:3957
+#: builtin/pack-objects.c:3980
msgid "write a bitmap index if possible"
msgstr ""
-#: builtin/pack-objects.c:3961
+#: builtin/pack-objects.c:3984
msgid "handling for missing objects"
msgstr ""
-#: builtin/pack-objects.c:3964
+#: builtin/pack-objects.c:3987
msgid "do not pack objects in promisor packfiles"
msgstr ""
-#: builtin/pack-objects.c:3966
+#: builtin/pack-objects.c:3989
msgid "respect islands during delta compression"
msgstr ""
-#: builtin/pack-objects.c:3968
+#: builtin/pack-objects.c:3991
msgid "protocol"
msgstr ""
-#: builtin/pack-objects.c:3969
+#: builtin/pack-objects.c:3992
msgid "exclude any configured uploadpack.blobpackfileuri with this protocol"
msgstr ""
-#: builtin/pack-objects.c:4002
+#: builtin/pack-objects.c:4027
#, c-format
msgid "delta chain depth %d is too deep, forcing %d"
msgstr ""
-#: builtin/pack-objects.c:4007
+#: builtin/pack-objects.c:4032
#, c-format
msgid "pack.deltaCacheLimit is too high, forcing %d"
msgstr ""
-#: builtin/pack-objects.c:4063
+#: builtin/pack-objects.c:4088
msgid "--max-pack-size cannot be used to build a pack for transfer"
msgstr ""
-#: builtin/pack-objects.c:4065
+#: builtin/pack-objects.c:4090
msgid "minimum pack size limit is 1 MiB"
msgstr ""
-#: builtin/pack-objects.c:4070
+#: builtin/pack-objects.c:4095
msgid "--thin cannot be used to build an indexable pack"
msgstr ""
-#: builtin/pack-objects.c:4079
+#: builtin/pack-objects.c:4104
msgid "cannot use --filter without --stdout"
msgstr ""
-#: builtin/pack-objects.c:4081
+#: builtin/pack-objects.c:4106
msgid "cannot use --filter with --stdin-packs"
msgstr ""
-#: builtin/pack-objects.c:4085
+#: builtin/pack-objects.c:4110
msgid "cannot use internal rev list with --stdin-packs"
msgstr ""
-#: builtin/pack-objects.c:4144
+#: builtin/pack-objects.c:4169
msgid "Enumerating objects"
msgstr ""
-#: builtin/pack-objects.c:4180
+#: builtin/pack-objects.c:4210
#, c-format
msgid ""
"Total %<PRIu32> (delta %<PRIu32>), reused %<PRIu32> (delta %<PRIu32>), pack-"
@@ -18882,10 +19507,6 @@ msgstr ""
msgid "prune loose refs (default)"
msgstr ""
-#: builtin/prune-packed.c:6
-msgid "git prune-packed [-n | --dry-run] [-q | --quiet]"
-msgstr ""
-
#: builtin/prune.c:14
msgid "git prune [-n] [-v] [--progress] [--expire <time>] [--] [<head>...]"
msgstr ""
@@ -18906,11 +19527,6 @@ msgstr ""
msgid "cannot prune in a precious-objects repo"
msgstr ""
-#: builtin/pull.c:45 builtin/pull.c:47
-#, c-format
-msgid "Invalid value for %s: %s"
-msgstr "Nilai tidak valid untuk %s: %s"
-
#: builtin/pull.c:67
msgid "git pull [<options>] [<repository> [<refspec>...]]"
msgstr "git pull [<opsi>] [<repositori> [<spek referensi>]]"
@@ -18935,7 +19551,7 @@ msgstr "perbolehkan maju cepat"
msgid "control use of pre-merge-commit and commit-msg hooks"
msgstr "kontrol penggunaan kail pre-merge-commit dan commit-msg"
-#: builtin/pull.c:171 parse-options.h:340
+#: builtin/pull.c:171 parse-options.h:371
msgid "automatically stash/stash pop before and after"
msgstr "stash/stash pop otomatis sebelum dan sesudah"
@@ -18951,11 +19567,6 @@ msgstr "paksa timpa cabang lokal"
msgid "number of submodules pulled in parallel"
msgstr "nomor submodul ditarik dalam paralel"
-#: builtin/pull.c:321
-#, c-format
-msgid "Invalid value for pull.ff: %s"
-msgstr "Nilai tidak valid untuk pull.ff: %s"
-
#: builtin/pull.c:449
msgid ""
"There is no candidate for rebasing against among the refs that you just "
@@ -18990,7 +19601,7 @@ msgstr ""
"satu cabang. Oleh karena ini bukan remote terkonfigurasi asali untuk\n"
"cabang Anda saat ini, Anda harus sebutkan satu cabang pada baris perintah."
-#: builtin/pull.c:460 builtin/rebase.c:951
+#: builtin/pull.c:460 builtin/rebase.c:978
msgid "You are not currently on a branch."
msgstr "Anda tidak berada pada sebuah cabang."
@@ -19007,16 +19618,16 @@ msgid "See git-pull(1) for details."
msgstr "Lihat git-pull(1) untuk selengkapnya."
#: builtin/pull.c:467 builtin/pull.c:473 builtin/pull.c:482
-#: builtin/rebase.c:957
+#: builtin/rebase.c:984
msgid "<remote>"
msgstr "<remote>"
#: builtin/pull.c:467 builtin/pull.c:482 builtin/pull.c:487
-#: contrib/scalar/scalar.c:375
+#: contrib/scalar/scalar.c:374
msgid "<branch>"
msgstr "<cabang>"
-#: builtin/pull.c:475 builtin/rebase.c:949
+#: builtin/pull.c:475 builtin/rebase.c:976
msgid "There is no tracking information for the current branch."
msgstr "Tidak ada informasi pelacakan untuk cabang saat ini."
@@ -19076,21 +19687,21 @@ msgstr ""
"--rebase, --no-rebase, atau --ff-only pada baris perintah untuk menimpa\n"
"asali terkonfigurasi untuk setiap invokasi.\n"
-#: builtin/pull.c:1046
+#: builtin/pull.c:1047
msgid "Updating an unborn branch with changes added to the index."
msgstr ""
"Memperbarui cabang yang belum lahir dengan perubahan yang ditambahkan ke "
"indeks."
-#: builtin/pull.c:1050
+#: builtin/pull.c:1051
msgid "pull with rebase"
msgstr "tarik dengan pendasaran ulang"
-#: builtin/pull.c:1051
+#: builtin/pull.c:1052
msgid "please commit or stash them."
msgstr "mohon komit atau stase itu."
-#: builtin/pull.c:1076
+#: builtin/pull.c:1077
#, c-format
msgid ""
"fetch updated the current branch head.\n"
@@ -19100,7 +19711,7 @@ msgstr ""
"fetch memperbarui kepala cabang saat ini.\n"
"memajukan-cepat pohon kerja Anda dari komit %s."
-#: builtin/pull.c:1082
+#: builtin/pull.c:1083
#, c-format
msgid ""
"Cannot fast-forward your working tree.\n"
@@ -19117,23 +19728,23 @@ msgstr ""
"$ git reset --hard\n"
"untuk memulihkan."
-#: builtin/pull.c:1097
+#: builtin/pull.c:1098
msgid "Cannot merge multiple branches into empty head."
msgstr "Tidak dapat menggabungkan banyak cabang ke kepala kosong."
-#: builtin/pull.c:1102
+#: builtin/pull.c:1103
msgid "Cannot rebase onto multiple branches."
msgstr "Tidak dapat mendasarkan ulang pada banyak cabang."
-#: builtin/pull.c:1104
+#: builtin/pull.c:1105
msgid "Cannot fast-forward to multiple branches."
msgstr "Tidak dapat maju cepat ke banyak cabang."
-#: builtin/pull.c:1119
+#: builtin/pull.c:1120
msgid "Need to specify how to reconcile divergent branches."
msgstr "Perlu sebutkan cara merujukkan cabang yang berlainan."
-#: builtin/pull.c:1133
+#: builtin/pull.c:1134
msgid "cannot rebase with locally recorded submodule modifications"
msgstr ""
"tidak dapat mendasarkan ulang dengan modifikasi submodul yang terekam lokal."
@@ -19309,7 +19920,7 @@ msgstr "Mendorong ke %s\n"
msgid "failed to push some refs to '%s'"
msgstr "gagal dorong beberapa referensi ke '%s'"
-#: builtin/push.c:544 builtin/submodule--helper.c:3259
+#: builtin/push.c:544 builtin/submodule--helper.c:3377
msgid "repository"
msgstr "repositori"
@@ -19550,11 +20161,11 @@ msgstr "nirkutukan unpack-trees"
msgid "suppress feedback messages"
msgstr "matikan pesan umpan balik"
-#: builtin/read-tree.c:183
+#: builtin/read-tree.c:190
msgid "You need to resolve your current index first"
msgstr "Anda perlu menguraikan indeks Anda saat ini dulu"
-#: builtin/rebase.c:35
+#: builtin/rebase.c:36
msgid ""
"git rebase [-i] [options] [--exec <cmd>] [--onto <newbase> | --keep-base] "
"[<upstream> [<branch>]]"
@@ -19562,55 +20173,51 @@ msgstr ""
"git rebase [-i] [opsi] [--exec <perintah>] [--onto <basis baru> | --keep-"
"base][<hulu> [<cabang>]]"
-#: builtin/rebase.c:37
+#: builtin/rebase.c:38
msgid ""
"git rebase [-i] [options] [--exec <cmd>] [--onto <newbase>] --root [<branch>]"
msgstr ""
"git rebase [-i] [opsi] [--exec <perintah>] [--onto <basis baru>] --root "
"[<cabang>]"
-#: builtin/rebase.c:39
-msgid "git rebase --continue | --abort | --skip | --edit-todo"
-msgstr "git rebase --continue | --abort | --skip | --edit-todo"
-
-#: builtin/rebase.c:230
+#: builtin/rebase.c:231
#, c-format
msgid "could not create temporary %s"
msgstr "tidak dapat membuat %s sementara"
-#: builtin/rebase.c:236
+#: builtin/rebase.c:237
msgid "could not mark as interactive"
msgstr "tidak dapat menandai sebagai interaktif"
-#: builtin/rebase.c:289
+#: builtin/rebase.c:290
msgid "could not generate todo list"
msgstr "tidak dapat membuat daftar todo"
-#: builtin/rebase.c:331
+#: builtin/rebase.c:332
msgid "a base commit must be provided with --upstream or --onto"
msgstr "basis komit harus diberikan dengan --upstream atau --onto"
-#: builtin/rebase.c:390
+#: builtin/rebase.c:391
#, c-format
msgid "%s requires the merge backend"
msgstr "%s butuh tulang belakang penggabungan"
-#: builtin/rebase.c:432
+#: builtin/rebase.c:433
#, c-format
msgid "could not get 'onto': '%s'"
msgstr "tidak dapat mendapatkan 'ke': '%s'"
-#: builtin/rebase.c:449
+#: builtin/rebase.c:450
#, c-format
msgid "invalid orig-head: '%s'"
msgstr "orig-head tidak valid: '%s'"
-#: builtin/rebase.c:474
+#: builtin/rebase.c:475
#, c-format
msgid "ignoring invalid allow_rerere_autoupdate: '%s'"
msgstr "abaikan allow_rerere_autoupdate yang tak valid: '%s'"
-#: builtin/rebase.c:597
+#: builtin/rebase.c:600
msgid ""
"Resolve all conflicts manually, mark them as resolved with\n"
"\"git add/rm <conflicted_files>\", then run \"git rebase --continue\".\n"
@@ -19625,7 +20232,7 @@ msgstr ""
"Untuk membatalkan dan kembali ke kondisi sebelum \"git rebase\",jalankan "
"\"git rebase --abort\"."
-#: builtin/rebase.c:680
+#: builtin/rebase.c:685
#, c-format
msgid ""
"\n"
@@ -19644,7 +20251,12 @@ msgstr ""
"\n"
"Hasilnya git tidak dapat mendasarkan ulang itu."
-#: builtin/rebase.c:925
+#: builtin/rebase.c:836
+#, c-format
+msgid "could not switch to %s"
+msgstr "tidak dapat mengganti ke %s"
+
+#: builtin/rebase.c:952
#, c-format
msgid ""
"unrecognized empty type '%s'; valid values are \"drop\", \"keep\", and \"ask"
@@ -19653,7 +20265,7 @@ msgstr ""
"tipe kosong tak dikenali '%s'; nilai yang valid adalah \"drop\", \"keep\", "
"dan \"ask\"."
-#: builtin/rebase.c:943
+#: builtin/rebase.c:970
#, c-format
msgid ""
"%s\n"
@@ -19670,7 +20282,7 @@ msgstr ""
" git rebase '<cabang>'.\n"
"\n"
-#: builtin/rebase.c:959
+#: builtin/rebase.c:986
#, c-format
msgid ""
"If you wish to set tracking information for this branch you can do so with:\n"
@@ -19683,181 +20295,181 @@ msgstr ""
" git branch --set-upstream-to=%s/<cabang> %s\n"
"\n"
-#: builtin/rebase.c:989
+#: builtin/rebase.c:1016
msgid "exec commands cannot contain newlines"
msgstr "perintah exec tidak dapat berisi baris baru"
-#: builtin/rebase.c:993
+#: builtin/rebase.c:1020
msgid "empty exec command"
msgstr "perintah exec kosong"
-#: builtin/rebase.c:1023
+#: builtin/rebase.c:1051
msgid "rebase onto given branch instead of upstream"
msgstr "dasarkan ulang kepada cabang yang diberikan daripada hulu"
-#: builtin/rebase.c:1025
+#: builtin/rebase.c:1053
msgid "use the merge-base of upstream and branch as the current base"
msgstr "gunakan merge-base hulu dan cabang sebagai dasar saat ini"
-#: builtin/rebase.c:1027
+#: builtin/rebase.c:1055
msgid "allow pre-rebase hook to run"
msgstr "perbolehkan kail pre-rebase untuk dijalankan"
-#: builtin/rebase.c:1029
+#: builtin/rebase.c:1057
msgid "be quiet. implies --no-stat"
msgstr "diam. menyiratkan --no-stat"
-#: builtin/rebase.c:1032
+#: builtin/rebase.c:1060
msgid "display a diffstat of what changed upstream"
msgstr "perlihatkan diffstat apa yang berubah di hulu"
-#: builtin/rebase.c:1035
+#: builtin/rebase.c:1063
msgid "do not show diffstat of what changed upstream"
msgstr "jangan perlihatkan diffstat apa yang berubah di hulu"
-#: builtin/rebase.c:1038
+#: builtin/rebase.c:1066
msgid "add a Signed-off-by trailer to each commit"
msgstr "tambahkan trailer Signed-off-by ke setiap komit"
-#: builtin/rebase.c:1041
+#: builtin/rebase.c:1069
msgid "make committer date match author date"
msgstr "jadikan tanggal pengkomit sama dengan tanggal pengarang"
-#: builtin/rebase.c:1043
+#: builtin/rebase.c:1071
msgid "ignore author date and use current date"
msgstr "abaikan tanggal pengarang dan gunakan tanggal saat ini"
-#: builtin/rebase.c:1045
+#: builtin/rebase.c:1073
msgid "synonym of --reset-author-date"
msgstr "sinonim dari --reset-author-date"
-#: builtin/rebase.c:1047 builtin/rebase.c:1051
+#: builtin/rebase.c:1075 builtin/rebase.c:1079
msgid "passed to 'git apply'"
msgstr "lewatkan ke 'git apply'"
-#: builtin/rebase.c:1049
+#: builtin/rebase.c:1077
msgid "ignore changes in whitespace"
msgstr "abaikan perubahan spasi"
-#: builtin/rebase.c:1053 builtin/rebase.c:1056
+#: builtin/rebase.c:1081 builtin/rebase.c:1084
msgid "cherry-pick all commits, even if unchanged"
msgstr "petik ceri semua komit, bahkan jika tak berubah"
-#: builtin/rebase.c:1058
+#: builtin/rebase.c:1086
msgid "continue"
msgstr "lanjutkan"
-#: builtin/rebase.c:1061
+#: builtin/rebase.c:1089
msgid "skip current patch and continue"
msgstr "lewatkan tambalan saat ini dan lanjutkan"
-#: builtin/rebase.c:1063
+#: builtin/rebase.c:1091
msgid "abort and check out the original branch"
msgstr "hentikan dan check out cabang asli"
-#: builtin/rebase.c:1066
+#: builtin/rebase.c:1094
msgid "abort but keep HEAD where it is"
msgstr "hentikan tapi simpan HEAD dimana itu berada"
-#: builtin/rebase.c:1067
+#: builtin/rebase.c:1095
msgid "edit the todo list during an interactive rebase"
msgstr "sunting daftar todo selama pendasaran ulang interaktif"
-#: builtin/rebase.c:1070
+#: builtin/rebase.c:1098
msgid "show the patch file being applied or merged"
msgstr "perlihatkan berkas tambalan yang sedang diterapkan atau digabungkan"
-#: builtin/rebase.c:1073
+#: builtin/rebase.c:1101
msgid "use apply strategies to rebase"
msgstr "gunakan strategi penerapan ke pendasaran ulang"
-#: builtin/rebase.c:1077
+#: builtin/rebase.c:1105
msgid "use merging strategies to rebase"
msgstr "gunakan strategi penggabungan ke pendasaran ulang"
-#: builtin/rebase.c:1081
+#: builtin/rebase.c:1109
msgid "let the user edit the list of commits to rebase"
msgstr "biarkan pengguna menyunting daftar komit untuk didasarkan ulang"
-#: builtin/rebase.c:1085
+#: builtin/rebase.c:1113
msgid "(DEPRECATED) try to recreate merges instead of ignoring them"
msgstr "(USANG) coba buat ulang penggabungan daripada abaikan itu"
-#: builtin/rebase.c:1090
+#: builtin/rebase.c:1118
msgid "how to handle commits that become empty"
msgstr "bagaimana cara menangani komit yang menjadi kosong"
-#: builtin/rebase.c:1093
+#: builtin/rebase.c:1121
msgid "keep commits which start empty"
msgstr "simpan komit yang dimulai kosong"
-#: builtin/rebase.c:1097
+#: builtin/rebase.c:1125
msgid "move commits that begin with squash!/fixup! under -i"
msgstr "pindahakan komit yang diawali dengan squash!/fixup! di bawah -i"
-#: builtin/rebase.c:1104
+#: builtin/rebase.c:1132
msgid "add exec lines after each commit of the editable list"
msgstr ""
"tambahkan baris exec setelah setiap komit dari daftar yang bisa disunting"
-#: builtin/rebase.c:1108
+#: builtin/rebase.c:1136
msgid "allow rebasing commits with empty messages"
msgstr "perbolehkan mendasarkan ulang komit dengan pesan kosong"
-#: builtin/rebase.c:1112
+#: builtin/rebase.c:1140
msgid "try to rebase merges instead of skipping them"
msgstr "coba mendasarkan ulang penggabungan daripada melewatkan itu"
-#: builtin/rebase.c:1115
+#: builtin/rebase.c:1143
msgid "use 'merge-base --fork-point' to refine upstream"
msgstr "gunakan 'merge-base --fork-point' untuk menyaring hulu"
-#: builtin/rebase.c:1117
+#: builtin/rebase.c:1145
msgid "use the given merge strategy"
msgstr "gunakan strategi penggabungan yang diberikan"
-#: builtin/rebase.c:1119 builtin/revert.c:115
+#: builtin/rebase.c:1147 builtin/revert.c:115
msgid "option"
msgstr "opsi"
-#: builtin/rebase.c:1120
+#: builtin/rebase.c:1148
msgid "pass the argument through to the merge strategy"
msgstr "lewatkan argumen ke strategi penggabungan"
-#: builtin/rebase.c:1123
+#: builtin/rebase.c:1151
msgid "rebase all reachable commits up to the root(s)"
msgstr "dasarkan ulang semua komit yang bisa dicapai hingga ke akar"
-#: builtin/rebase.c:1126
+#: builtin/rebase.c:1154
msgid "automatically re-schedule any `exec` that fails"
msgstr "jadwal ulang otomatis `exec` apa saja yang gagal"
-#: builtin/rebase.c:1128
+#: builtin/rebase.c:1156
msgid "apply all changes, even those already present upstream"
msgstr "terapkan semua perubahan, bahkan yang sudah ada di hulu"
-#: builtin/rebase.c:1149
+#: builtin/rebase.c:1177
msgid "It looks like 'git am' is in progress. Cannot rebase."
msgstr "Sepertinya 'git am' sedang berjalan. Tidak dapat mendasarkan ulang"
-#: builtin/rebase.c:1180
+#: builtin/rebase.c:1208
msgid "--preserve-merges was replaced by --rebase-merges"
msgstr "--preserve-merges digantikan oleh --rebase-merges"
-#: builtin/rebase.c:1202
+#: builtin/rebase.c:1230
msgid "No rebase in progress?"
msgstr "Tidak ada pendasaran ulang yang sedang berjalan?"
-#: builtin/rebase.c:1206
+#: builtin/rebase.c:1234
msgid "The --edit-todo action can only be used during interactive rebase."
msgstr ""
"Aksi --edit-todo hanya dapat digunakan selama pendasaran ulang interaktif."
-#: builtin/rebase.c:1229 t/helper/test-fast-rebase.c:122
+#: builtin/rebase.c:1257 t/helper/test-fast-rebase.c:122
msgid "Cannot read HEAD"
msgstr "Tidak dapat membaca HEAD"
-#: builtin/rebase.c:1241
+#: builtin/rebase.c:1269
msgid ""
"You must edit all merge conflicts and then\n"
"mark them as resolved using git add"
@@ -19865,16 +20477,16 @@ msgstr ""
"Anda harus menyunting semua konflik penggabungan lalu\n"
"tandai itu sebagai terselesaikan menggunakan git add"
-#: builtin/rebase.c:1260
+#: builtin/rebase.c:1287
msgid "could not discard worktree changes"
msgstr "tidak dapat menyingkirkan perubahan pohon kerja"
-#: builtin/rebase.c:1279
+#: builtin/rebase.c:1308
#, c-format
msgid "could not move back to %s"
msgstr "tidak dapt memindahkan kembali ke %s"
-#: builtin/rebase.c:1325
+#: builtin/rebase.c:1354
#, c-format
msgid ""
"It seems that there is already a %s directory, and\n"
@@ -19895,124 +20507,119 @@ msgstr ""
"dan jalankan saya lagi. Saya berhenti seandainya Anda masih punya\n"
"sesuatu yang berharga di sana.\n"
-#: builtin/rebase.c:1353
+#: builtin/rebase.c:1382
msgid "switch `C' expects a numerical value"
msgstr "tombol `C' harap nilai numerik"
-#: builtin/rebase.c:1395
+#: builtin/rebase.c:1424
#, c-format
msgid "Unknown mode: %s"
msgstr "Mode tidak dikenal: %s"
-#: builtin/rebase.c:1434
+#: builtin/rebase.c:1463
msgid "--strategy requires --merge or --interactive"
msgstr "--strategy butuh --merge atau --interactive"
-#: builtin/rebase.c:1463
+#: builtin/rebase.c:1492
msgid "apply options and merge options cannot be used together"
msgstr "opsi apply dan opsi merge tidak dapat digunakan bersamaan"
-#: builtin/rebase.c:1476
+#: builtin/rebase.c:1505
#, c-format
msgid "Unknown rebase backend: %s"
msgstr "Tulang belakang pendasaran ulang tidak dikenal: %s"
-#: builtin/rebase.c:1505
+#: builtin/rebase.c:1534
msgid "--reschedule-failed-exec requires --exec or --interactive"
msgstr "--reschedule-failed-exec butuh --exec atau --interactive"
-#: builtin/rebase.c:1536
+#: builtin/rebase.c:1565
#, c-format
msgid "invalid upstream '%s'"
msgstr "hulu tidak valid '%s'"
-#: builtin/rebase.c:1542
+#: builtin/rebase.c:1571
msgid "Could not create new root commit"
msgstr "tidak dapat membuat komit akar baru"
-#: builtin/rebase.c:1568
+#: builtin/rebase.c:1597
#, c-format
msgid "'%s': need exactly one merge base with branch"
msgstr "'%s': butuh tepatnya satu dasar penggabungan dengan cabang"
-#: builtin/rebase.c:1571
+#: builtin/rebase.c:1600
#, c-format
msgid "'%s': need exactly one merge base"
msgstr "'%s': butuh tepatnya satu dasar penggabungan"
-#: builtin/rebase.c:1580
+#: builtin/rebase.c:1609
#, c-format
msgid "Does not point to a valid commit '%s'"
msgstr "Tidak menunjuk pada komit yang valid '%s'"
-#: builtin/rebase.c:1607
+#: builtin/rebase.c:1636
#, c-format
msgid "no such branch/commit '%s'"
msgstr "tidak ada cabang/komit seperti '%s'"
-#: builtin/rebase.c:1618 builtin/submodule--helper.c:39
-#: builtin/submodule--helper.c:2659
+#: builtin/rebase.c:1647 builtin/submodule--helper.c:43
+#: builtin/submodule--helper.c:2477
#, c-format
msgid "No such ref: %s"
msgstr "Tidak ada referensi seperti: %s"
-#: builtin/rebase.c:1629
+#: builtin/rebase.c:1658
msgid "Could not resolve HEAD to a revision"
msgstr "Tidak dapat menguraikan HEAD ke sebuah revisi"
-#: builtin/rebase.c:1650
+#: builtin/rebase.c:1679
msgid "Please commit or stash them."
msgstr "Mohon komit atau stase itu."
-#: builtin/rebase.c:1686
-#, c-format
-msgid "could not switch to %s"
-msgstr "tidak dapat mengganti ke %s"
-
-#: builtin/rebase.c:1697
+#: builtin/rebase.c:1714
msgid "HEAD is up to date."
msgstr "HEAD terbaru."
-#: builtin/rebase.c:1699
+#: builtin/rebase.c:1716
#, c-format
msgid "Current branch %s is up to date.\n"
msgstr "Cabang saat ini %s terbaru.\n"
-#: builtin/rebase.c:1707
+#: builtin/rebase.c:1724
msgid "HEAD is up to date, rebase forced."
msgstr "HEAD terbaru, pendasaran ulang dipaksa."
-#: builtin/rebase.c:1709
+#: builtin/rebase.c:1726
#, c-format
msgid "Current branch %s is up to date, rebase forced.\n"
msgstr "Cabang saat ini %s terbaru, pendasaran ulang dipaksa.\n"
-#: builtin/rebase.c:1717
+#: builtin/rebase.c:1734
msgid "The pre-rebase hook refused to rebase."
msgstr "Kail pre-rebase menolak mendasarkan ulang."
-#: builtin/rebase.c:1724
+#: builtin/rebase.c:1741
#, c-format
msgid "Changes to %s:\n"
msgstr "Perubahan unuk %s:\n"
-#: builtin/rebase.c:1727
+#: builtin/rebase.c:1744
#, c-format
msgid "Changes from %s to %s:\n"
msgstr "Perubahan dari %s ke %s:\n"
-#: builtin/rebase.c:1752
+#: builtin/rebase.c:1769
#, c-format
msgid "First, rewinding head to replay your work on top of it...\n"
msgstr ""
"Pertama, memutar ulang kepala untuk memainkan ulang karya Anda diatas "
"itu...\n"
-#: builtin/rebase.c:1761
+#: builtin/rebase.c:1781
msgid "Could not detach HEAD"
msgstr "Tidak dapat melepas HEAD"
-#: builtin/rebase.c:1770
+#: builtin/rebase.c:1790
#, c-format
msgid "Fast-forwarded %s to %s.\n"
msgstr "Maju-cepat %s ke %s.\n"
@@ -20021,7 +20628,7 @@ msgstr "Maju-cepat %s ke %s.\n"
msgid "git receive-pack <git-dir>"
msgstr "git receive-pack <direktori git>"
-#: builtin/receive-pack.c:1275
+#: builtin/receive-pack.c:1263
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"
@@ -20050,7 +20657,7 @@ msgstr ""
"Untuk mematikan pesan ini dan tetap menjaga kebiasaan asali, setel\n"
"variabel konfigurasi 'receive.denyCurrentBranch' ke 'refuse'."
-#: builtin/receive-pack.c:1295
+#: builtin/receive-pack.c:1283
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"
@@ -20070,79 +20677,112 @@ msgstr ""
"\n"
"Untuk mematikan pesan ini, Anda dapat menyetelnya ke 'refuse'."
-#: builtin/receive-pack.c:2474
+#: builtin/receive-pack.c:2476
msgid "quiet"
msgstr "diam"
-#: builtin/receive-pack.c:2489
+#: builtin/receive-pack.c:2491
msgid "you must specify a directory"
msgstr "Anda harus menyebutkan sebuah direktori"
-#: builtin/reflog.c:17
+#: builtin/reflog.c:9
+msgid "git reflog [show] [<log-options>] [<ref>]"
+msgstr "git remote [show] [<opsi log>] [<referensi>]"
+
+#: builtin/reflog.c:12
msgid ""
-"git reflog expire [--expire=<time>] [--expire-unreachable=<time>] [--"
-"rewrite] [--updateref] [--stale-fix] [--dry-run | -n] [--verbose] [--all] "
-"<refs>..."
+"git reflog expire [--expire=<time>] [--expire-unreachable=<time>]\n"
+" [--rewrite] [--updateref] [--stale-fix]\n"
+" [--dry-run | -n] [--verbose] [--all [--single-worktree] | "
+"<refs>...]"
msgstr ""
-"git reflog expire [--expire=<waktu>] [--expire-unreachable=<waktu>] [--"
-"rewrite] [--updateref] [--stale-fix] [--dry-run | -n] [--verbose] [--all] "
-"<referensi>..."
+"git reflog expire [--expire=<waktu>] [--expire-unreachable=<waktu>]\n"
+" [--rewrite] [--updateref] [--stale-fix]\n"
+" [--dry-run | -n] [--verbose] [--all [--single-worktree] | "
+"<referensi>...]"
-#: builtin/reflog.c:22
+#: builtin/reflog.c:17
msgid ""
-"git reflog delete [--rewrite] [--updateref] [--dry-run | -n] [--verbose] "
-"<refs>..."
+"git reflog delete [--rewrite] [--updateref]\n"
+" [--dry-run | -n] [--verbose] <ref>@{<specifier>}..."
msgstr ""
-"git reflog delete [--rewrite] [--updateref] [--dry-run | -n] [--verbose] "
-"<referensi>..."
+"git reflog delete [--rewrite] [--updateref]\n"
+" [--dry-run | -n] [--verbose] <referensi>@{<penyebut>}..."
-#: builtin/reflog.c:25
+#: builtin/reflog.c:21
msgid "git reflog exists <ref>"
msgstr "git reflog exists <referensi>"
-#: builtin/reflog.c:585 builtin/reflog.c:590
+#: builtin/reflog.c:197 builtin/reflog.c:211
#, c-format
-msgid "'%s' is not a valid timestamp"
-msgstr "'%s' bukan stempel waktu valid"
+msgid "invalid timestamp '%s' given to '--%s'"
+msgstr "stempel waktu tidak valid '%s' diberikan ke '--%s'"
+
+#: builtin/reflog.c:240 builtin/reflog.c:359
+msgid "do not actually prune any entries"
+msgstr "jangan benar-benar pangkas entri apapun"
-#: builtin/reflog.c:631
+#: builtin/reflog.c:243 builtin/reflog.c:362
+msgid ""
+"rewrite the old SHA1 with the new SHA1 of the entry that now precedes it"
+msgstr "tulis ulang SHA1 lama dengan SHA1 baru dari entri yang mendahuluinya"
+
+#: builtin/reflog.c:246 builtin/reflog.c:365
+msgid "update the reference to the value of the top reflog entry"
+msgstr "perbarui referensi ke nilai dari entri log referensi atas"
+
+#: builtin/reflog.c:248 builtin/reflog.c:367
+msgid "print extra information on screen"
+msgstr "cetak informasi tambahan pada layar"
+
+#: builtin/reflog.c:249 builtin/reflog.c:253
+msgid "timestamp"
+msgstr "stempel"
+
+#: builtin/reflog.c:250
+msgid "prune entries older than the specified time"
+msgstr "pangkas entri yang lebih tua dari waktu yang disebutkan"
+
+#: builtin/reflog.c:254
+msgid ""
+"prune entries older than <time> that are not reachable from the current tip "
+"of the branch"
+msgstr ""
+"pangkas entri yang lebih tua dari <waktu> yang tak terjangkau dari ujung "
+"cabang saat ini"
+
+#: builtin/reflog.c:258
+msgid "prune any reflog entries that point to broken commits"
+msgstr "pangkas entri reflog apapun yang menunjuk ke komit yang rusak"
+
+#: builtin/reflog.c:259
+msgid "process the reflogs of all references"
+msgstr "proses reflog semua referensi"
+
+#: builtin/reflog.c:261
+msgid "limits processing to reflogs from the current worktree only"
+msgstr "batasi pemrosesan ke hanya log referensi dari pohon kerja saat ini"
+
+#: builtin/reflog.c:294
#, c-format
msgid "Marking reachable objects..."
msgstr "Menandai objek yang bisa dicapai..."
-#: builtin/reflog.c:675
+#: builtin/reflog.c:338
#, c-format
msgid "%s points nowhere!"
msgstr "%s tidak menunjuk ke apapun!"
-#: builtin/reflog.c:731
+#: builtin/reflog.c:374
msgid "no reflog specified to delete"
msgstr "tidak ada log referensi yang disebutkan untuk dihapus"
-#: builtin/reflog.c:742
-#, c-format
-msgid "not a reflog: %s"
-msgstr "bukan sebuah log referensi: %s"
-
-#: builtin/reflog.c:747
-#, c-format
-msgid "no reflog for '%s'"
-msgstr "tidak ada log referensi untuk '%s'"
-
-#: builtin/reflog.c:794
+#: builtin/reflog.c:396
#, c-format
msgid "invalid ref format: %s"
msgstr "format referensi tidak valid: %s"
-#: builtin/reflog.c:803
-msgid "git reflog [ show | expire | delete | exists ]"
-msgstr "git reflog [ show | expire | delete | exists ]"
-
-#: builtin/remote.c:17
-msgid "git remote [-v | --verbose]"
-msgstr "git remote [-v | --verbose]"
-
-#: builtin/remote.c:18
+#: builtin/remote.c:19
msgid ""
"git remote add [-t <branch>] [-m <master>] [-f] [--tags | --no-tags] [--"
"mirror=<fetch|push>] <name> <url>"
@@ -20150,87 +20790,87 @@ msgstr ""
"git remote add [-t <cabang>] [-m <master>] [-f] [--tags | --no-tags] [--"
"mirror=<fetch|push>] <nama> <url>"
-#: builtin/remote.c:19 builtin/remote.c:39
-msgid "git remote rename <old> <new>"
-msgstr "git remote rename <lama> <baru>"
+#: builtin/remote.c:20 builtin/remote.c:40
+msgid "git remote rename [--[no-]progress] <old> <new>"
+msgstr "git remote rename [--[no-]progress] <lama> <baru>"
-#: builtin/remote.c:20 builtin/remote.c:44
+#: builtin/remote.c:21 builtin/remote.c:45
msgid "git remote remove <name>"
msgstr "git remote remove <nama>"
-#: builtin/remote.c:21 builtin/remote.c:49
+#: builtin/remote.c:22 builtin/remote.c:50
msgid "git remote set-head <name> (-a | --auto | -d | --delete | <branch>)"
msgstr "git remote set-head <nama> (-a | --auto | -d | --delete | <cabang>)"
-#: builtin/remote.c:22
+#: builtin/remote.c:23
msgid "git remote [-v | --verbose] show [-n] <name>"
msgstr "git remote [-v | --verbose] show [-n] <nama>"
-#: builtin/remote.c:23
+#: builtin/remote.c:24
msgid "git remote prune [-n | --dry-run] <name>"
msgstr "git remote prune [-n | --dry-run] <nama>"
-#: builtin/remote.c:24
+#: builtin/remote.c:25
msgid ""
"git remote [-v | --verbose] update [-p | --prune] [(<group> | <remote>)...]"
msgstr ""
"git remote [-v | --verbose] update [-p | --prune] [(<grup> | <remote>)...]"
-#: builtin/remote.c:25
+#: builtin/remote.c:26
msgid "git remote set-branches [--add] <name> <branch>..."
msgstr "git remote set-branches [--add] <nama> <cabang>..."
-#: builtin/remote.c:26 builtin/remote.c:75
+#: builtin/remote.c:27 builtin/remote.c:76
msgid "git remote get-url [--push] [--all] <name>"
msgstr "git remote get-url [--push] [--all] <nama>"
-#: builtin/remote.c:27 builtin/remote.c:80
+#: builtin/remote.c:28 builtin/remote.c:81
msgid "git remote set-url [--push] <name> <newurl> [<oldurl>]"
msgstr "git remote set-url [--push] <nama> <url baru> [<url lama>]"
-#: builtin/remote.c:28 builtin/remote.c:81
+#: builtin/remote.c:29 builtin/remote.c:82
msgid "git remote set-url --add <name> <newurl>"
msgstr "git remote set-url --add <nama> <url baru>"
-#: builtin/remote.c:29 builtin/remote.c:82
+#: builtin/remote.c:30 builtin/remote.c:83
msgid "git remote set-url --delete <name> <url>"
msgstr "git remote set-url --delete <nama> <url>"
-#: builtin/remote.c:34
+#: builtin/remote.c:35
msgid "git remote add [<options>] <name> <url>"
msgstr "git remote add [<opsi>] <nama> <url>"
-#: builtin/remote.c:54
+#: builtin/remote.c:55
msgid "git remote set-branches <name> <branch>..."
msgstr "git remote set-branches <nama> <cabang>"
-#: builtin/remote.c:55
+#: builtin/remote.c:56
msgid "git remote set-branches --add <name> <branch>..."
msgstr "git remote set-branches --add <nama> <cabang>"
-#: builtin/remote.c:60
+#: builtin/remote.c:61
msgid "git remote show [<options>] <name>"
msgstr "git remote show [<opsi>] <nama>"
-#: builtin/remote.c:65
+#: builtin/remote.c:66
msgid "git remote prune [<options>] <name>"
msgstr "git remote prune [<opsi>] <nama>"
-#: builtin/remote.c:70
+#: builtin/remote.c:71
msgid "git remote update [<options>] [<group> | <remote>]..."
msgstr "git remote update [<opsi>] [<group> | <remote>]..."
-#: builtin/remote.c:99
+#: builtin/remote.c:100
#, c-format
msgid "Updating %s"
msgstr "Memperbarui %s"
-#: builtin/remote.c:101
+#: builtin/remote.c:102
#, c-format
msgid "Could not fetch %s"
msgstr "Tidak dapat mengambil %s"
-#: builtin/remote.c:131
+#: builtin/remote.c:132
msgid ""
"--mirror is dangerous and deprecated; please\n"
"\t use --mirror=fetch or --mirror=push instead"
@@ -20238,77 +20878,77 @@ msgstr ""
"--mirror berbahaya dan usang; mohon gunakan --mirror=fetch\n"
"\t atau --mirror=push sebagai gantinya"
-#: builtin/remote.c:148
+#: builtin/remote.c:149
#, c-format
msgid "unknown mirror argument: %s"
msgstr "argumen mirror tidak dikenal: %s"
-#: builtin/remote.c:164
+#: builtin/remote.c:165
msgid "fetch the remote branches"
msgstr "ambil cabang remote"
-#: builtin/remote.c:166
+#: builtin/remote.c:167
msgid "import all tags and associated objects when fetching"
msgstr "impor semua tag dan objek yang terkait ketika mengambil"
-#: builtin/remote.c:169
+#: builtin/remote.c:170
msgid "or do not fetch any tag at all (--no-tags)"
msgstr "atau jangan mengambil tag apapun (--no-tags)"
-#: builtin/remote.c:171
+#: builtin/remote.c:172
msgid "branch(es) to track"
msgstr "cabang untuk dilacak"
-#: builtin/remote.c:172
+#: builtin/remote.c:173
msgid "master branch"
msgstr "cabang master"
-#: builtin/remote.c:174
+#: builtin/remote.c:175
msgid "set up remote as a mirror to push to or fetch from"
msgstr "atur remote sebagai cermin untuk didorong atau diambil"
-#: builtin/remote.c:186
+#: builtin/remote.c:187
msgid "specifying a master branch makes no sense with --mirror"
msgstr "menyebutkan cabang master tidak masuk akal dengan --mirror"
-#: builtin/remote.c:188
+#: builtin/remote.c:189
msgid "specifying branches to track makes sense only with fetch mirrors"
msgstr "menyebutkan cabang untuk dilacak hanya masuk akal dengan cermin ambil"
-#: builtin/remote.c:195 builtin/remote.c:705
+#: builtin/remote.c:196 builtin/remote.c:716
#, c-format
msgid "remote %s already exists."
msgstr "remote %s sudah ada"
-#: builtin/remote.c:240
+#: builtin/remote.c:241
#, c-format
msgid "Could not setup master '%s'"
msgstr "Tidak dapat mengatur master '%s'"
-#: builtin/remote.c:322
+#: builtin/remote.c:323
#, c-format
msgid "unhandled branch.%s.rebase=%s; assuming 'true'"
-msgstr ""
+msgstr "branch.%s.rebase=%s tak tertangani; diasumsikan 'true'"
-#: builtin/remote.c:366
+#: builtin/remote.c:367
#, c-format
msgid "Could not get fetch map for refspec %s"
msgstr "Tidak dapat mendapatkan peta pengambilan untuk spek referensi %s"
-#: builtin/remote.c:460 builtin/remote.c:468
+#: builtin/remote.c:461 builtin/remote.c:469
msgid "(matching)"
msgstr "(sepadan)"
-#: builtin/remote.c:472
+#: builtin/remote.c:473
msgid "(delete)"
msgstr "(hapus)"
-#: builtin/remote.c:660
+#: builtin/remote.c:664
#, c-format
msgid "could not set '%s'"
msgstr "tidak dapat menyetel '%s'"
-#: builtin/remote.c:665
+#: builtin/remote.c:669
#, c-format
msgid ""
"The %s configuration remote.pushDefault in:\n"
@@ -20319,17 +20959,17 @@ msgstr ""
"\t%s:%d\n"
"sekarang menamai remote yang tiada '%s'"
-#: builtin/remote.c:696 builtin/remote.c:841 builtin/remote.c:948
+#: builtin/remote.c:707 builtin/remote.c:866 builtin/remote.c:973
#, c-format
msgid "No such remote: '%s'"
msgstr "Tidak ada remote seperti: '%s'"
-#: builtin/remote.c:715
+#: builtin/remote.c:726
#, c-format
msgid "Could not rename config section '%s' to '%s'"
msgstr "Tidak dapat menamai ulang bagian konfigurasi '%s' ke '%s'"
-#: builtin/remote.c:735
+#: builtin/remote.c:746
#, c-format
msgid ""
"Not updating non-default fetch refspec\n"
@@ -20340,17 +20980,21 @@ msgstr ""
"\t%s\n"
"\tMohon perbarui konfigurasi secara manual bila diperlukan."
-#: builtin/remote.c:775
+#: builtin/remote.c:783
+msgid "Renaming remote references"
+msgstr "Menamai ulang referensi remote"
+
+#: builtin/remote.c:794
#, c-format
msgid "deleting '%s' failed"
msgstr "menghapus '%s' gagal"
-#: builtin/remote.c:809
+#: builtin/remote.c:832
#, c-format
msgid "creating '%s' failed"
msgstr "membuat '%s' gagal"
-#: builtin/remote.c:887
+#: builtin/remote.c:912
msgid ""
"Note: A branch outside the refs/remotes/ hierarchy was not removed;\n"
"to delete it, use:"
@@ -20364,120 +21008,120 @@ msgstr[1] ""
"Catatan: Beberapa cabang diluar hierarki refs/remotes tidak dihapus;\n"
"untuk menghapus itu, gunakan:"
-#: builtin/remote.c:901
+#: builtin/remote.c:926
#, c-format
msgid "Could not remove config section '%s'"
msgstr "Tidak dapat menghapus bagian konfigurasi '%s'"
-#: builtin/remote.c:1009
+#: builtin/remote.c:1034
#, c-format
msgid " new (next fetch will store in remotes/%s)"
msgstr " baru (pengambilan berikutnya akan simpan di remotes/%s)"
-#: builtin/remote.c:1012
+#: builtin/remote.c:1037
msgid " tracked"
msgstr " dilacak"
-#: builtin/remote.c:1014
+#: builtin/remote.c:1039
msgid " stale (use 'git remote prune' to remove)"
msgstr " basi (gunakan 'git remote prune' untuk hapus)"
-#: builtin/remote.c:1016
+#: builtin/remote.c:1041
msgid " ???"
msgstr " ???"
-#: builtin/remote.c:1057
+#: builtin/remote.c:1082
#, c-format
msgid "invalid branch.%s.merge; cannot rebase onto > 1 branch"
msgstr ""
"branch.%s.merge tidak valid; tidak dapat mendasarkan ulang ke lebih dari "
"satu cabang"
-#: builtin/remote.c:1066
+#: builtin/remote.c:1091
#, c-format
msgid "rebases interactively onto remote %s"
msgstr "dasarkan ulang secara interaktif ke remote %s"
-#: builtin/remote.c:1068
+#: builtin/remote.c:1093
#, c-format
msgid "rebases interactively (with merges) onto remote %s"
msgstr "dasarkan ulang secara interaktif (dengan penggabungan) ke remote %s"
-#: builtin/remote.c:1071
+#: builtin/remote.c:1096
#, c-format
msgid "rebases onto remote %s"
msgstr "dasarkan ulang ke remote %s"
-#: builtin/remote.c:1075
+#: builtin/remote.c:1100
#, c-format
msgid " merges with remote %s"
msgstr " gabungkan dengan remote %s"
-#: builtin/remote.c:1078
+#: builtin/remote.c:1103
#, c-format
msgid "merges with remote %s"
msgstr "gabungkan dengan remote %s"
-#: builtin/remote.c:1081
+#: builtin/remote.c:1106
#, c-format
msgid "%-*s and with remote %s\n"
msgstr "%-*s dan dengan remote %s\n"
-#: builtin/remote.c:1124
+#: builtin/remote.c:1149
msgid "create"
msgstr "buat"
-#: builtin/remote.c:1127
+#: builtin/remote.c:1152
msgid "delete"
msgstr "hapus"
-#: builtin/remote.c:1131
+#: builtin/remote.c:1156
msgid "up to date"
msgstr "terbaru"
-#: builtin/remote.c:1134
+#: builtin/remote.c:1159
msgid "fast-forwardable"
msgstr "bisa dimaju cepat"
-#: builtin/remote.c:1137
+#: builtin/remote.c:1162
msgid "local out of date"
msgstr "lokal kuno"
-#: builtin/remote.c:1144
+#: builtin/remote.c:1169
#, c-format
msgid " %-*s forces to %-*s (%s)"
msgstr " %-*s memaksa untuk %-*s (%s)"
-#: builtin/remote.c:1147
+#: builtin/remote.c:1172
#, c-format
msgid " %-*s pushes to %-*s (%s)"
msgstr " %-*s mendorong ke %-*s (%s)"
-#: builtin/remote.c:1151
+#: builtin/remote.c:1176
#, c-format
msgid " %-*s forces to %s"
msgstr " %-*s memaksa untuk %s"
-#: builtin/remote.c:1154
+#: builtin/remote.c:1179
#, c-format
msgid " %-*s pushes to %s"
msgstr " %-*s mendorong ke %s"
-#: builtin/remote.c:1222
+#: builtin/remote.c:1247
msgid "do not query remotes"
msgstr "jangan tanyakan remote"
-#: builtin/remote.c:1243
+#: builtin/remote.c:1268
#, c-format
msgid "* remote %s"
msgstr "* remote %s"
-#: builtin/remote.c:1244
+#: builtin/remote.c:1269
#, c-format
msgid " Fetch URL: %s"
msgstr " URL pengambilan: %s"
-#: builtin/remote.c:1245 builtin/remote.c:1261 builtin/remote.c:1398
+#: builtin/remote.c:1270 builtin/remote.c:1286 builtin/remote.c:1423
msgid "(no URL)"
msgstr "(tidak ada URL)"
@@ -20485,189 +21129,189 @@ msgstr "(tidak ada URL)"
#. with the one in " Fetch URL: %s"
#. translation.
#.
-#: builtin/remote.c:1259 builtin/remote.c:1261
+#: builtin/remote.c:1284 builtin/remote.c:1286
#, c-format
msgid " Push URL: %s"
msgstr " URL pendorongan: %s"
-#: builtin/remote.c:1263 builtin/remote.c:1265 builtin/remote.c:1267
+#: builtin/remote.c:1288 builtin/remote.c:1290 builtin/remote.c:1292
#, c-format
msgid " HEAD branch: %s"
msgstr " Cabang HEAD: %s"
-#: builtin/remote.c:1263
+#: builtin/remote.c:1288
msgid "(not queried)"
msgstr "(tidak ditanyakan)"
-#: builtin/remote.c:1265
+#: builtin/remote.c:1290
msgid "(unknown)"
msgstr "(tidak diketahui)"
-#: builtin/remote.c:1269
+#: builtin/remote.c:1294
#, c-format
msgid ""
" HEAD branch (remote HEAD is ambiguous, may be one of the following):\n"
msgstr ""
" Cabang HEAD (HEAD remote ambigu, bisa jadi salah satu dari yang berikut):\n"
-#: builtin/remote.c:1281
+#: builtin/remote.c:1306
#, c-format
msgid " Remote branch:%s"
msgid_plural " Remote branches:%s"
msgstr[0] " Cabang remote:%s"
msgstr[1] " Cabang remote:%s"
-#: builtin/remote.c:1284 builtin/remote.c:1310
+#: builtin/remote.c:1309 builtin/remote.c:1335
msgid " (status not queried)"
msgstr " (status tidak ditanyakan)"
-#: builtin/remote.c:1293
+#: builtin/remote.c:1318
msgid " Local branch configured for 'git pull':"
msgid_plural " Local branches configured for 'git pull':"
msgstr[0] " Cabang lokal dikonfigurasi untuk 'git pull':"
msgstr[1] " Cabang lokal dikonfigurasi untuk 'git pull':"
-#: builtin/remote.c:1301
+#: builtin/remote.c:1326
msgid " Local refs will be mirrored by 'git push'"
msgstr " Referensi lokal yang akan dicerminkan oleh 'git push'"
-#: builtin/remote.c:1307
+#: builtin/remote.c:1332
#, c-format
msgid " Local ref configured for 'git push'%s:"
msgid_plural " Local refs configured for 'git push'%s:"
msgstr[0] " Referensi lokal dikonfigurasi untuk 'git push'%s:"
msgstr[1] " Referensi lokal dikonfigurasi untuk 'git push'%s:"
-#: builtin/remote.c:1328
+#: builtin/remote.c:1353
msgid "set refs/remotes/<name>/HEAD according to remote"
msgstr "setel refs/remotes/<nama>/HEAD tergantung remote"
-#: builtin/remote.c:1330
+#: builtin/remote.c:1355
msgid "delete refs/remotes/<name>/HEAD"
msgstr "hapus refs/remotes/<nama>/HEAD"
-#: builtin/remote.c:1344
+#: builtin/remote.c:1369
msgid "Cannot determine remote HEAD"
msgstr "Tidak dapat menentukan HEAD remote"
-#: builtin/remote.c:1346
+#: builtin/remote.c:1371
msgid "Multiple remote HEAD branches. Please choose one explicitly with:"
msgstr "Banyak cabang HEAD remote. Mohon pilih satu secara eksplisit dengan:"
-#: builtin/remote.c:1356
+#: builtin/remote.c:1381
#, c-format
msgid "Could not delete %s"
msgstr "Tidak dapat menghapus %s"
-#: builtin/remote.c:1364
+#: builtin/remote.c:1389
#, c-format
msgid "Not a valid ref: %s"
msgstr "Bukan referensi valid: %s"
-#: builtin/remote.c:1366
+#: builtin/remote.c:1391
#, c-format
msgid "Could not setup %s"
msgstr "Tidak dapat mengatur %s"
-#: builtin/remote.c:1384
+#: builtin/remote.c:1409
#, c-format
msgid " %s will become dangling!"
msgstr " %s akan menjadi teruntai!"
-#: builtin/remote.c:1385
+#: builtin/remote.c:1410
#, c-format
msgid " %s has become dangling!"
msgstr " %s telah menjadi teruntai!"
-#: builtin/remote.c:1394
+#: builtin/remote.c:1419
#, c-format
msgid "Pruning %s"
msgstr "Memangkas %s"
-#: builtin/remote.c:1395
+#: builtin/remote.c:1420
#, c-format
msgid "URL: %s"
msgstr "URL: %s"
-#: builtin/remote.c:1411
+#: builtin/remote.c:1436
#, c-format
msgid " * [would prune] %s"
msgstr " * [akan pangkas] %s"
-#: builtin/remote.c:1414
+#: builtin/remote.c:1439
#, c-format
msgid " * [pruned] %s"
msgstr " * [dipangkas] %s"
-#: builtin/remote.c:1459
+#: builtin/remote.c:1484
msgid "prune remotes after fetching"
msgstr "pangkas remote setelah pengambilan"
-#: builtin/remote.c:1523 builtin/remote.c:1579 builtin/remote.c:1649
+#: builtin/remote.c:1548 builtin/remote.c:1604 builtin/remote.c:1674
#, c-format
msgid "No such remote '%s'"
msgstr "Tidak ada remote seperti '%s'"
-#: builtin/remote.c:1541
+#: builtin/remote.c:1566
msgid "add branch"
msgstr "tambah cabang"
-#: builtin/remote.c:1548
+#: builtin/remote.c:1573
msgid "no remote specified"
msgstr "tidak ada remote yang disebutkan"
-#: builtin/remote.c:1565
+#: builtin/remote.c:1590
msgid "query push URLs rather than fetch URLs"
msgstr "tanyakan URL pendorongan daripada URL pengambilan"
-#: builtin/remote.c:1567
+#: builtin/remote.c:1592
msgid "return all URLs"
msgstr "kembalikan semua URL"
-#: builtin/remote.c:1597
+#: builtin/remote.c:1622
#, c-format
msgid "no URLs configured for remote '%s'"
msgstr "tidak ada URL yang dikonfigurasi untuk remote '%s'"
-#: builtin/remote.c:1623
+#: builtin/remote.c:1648
msgid "manipulate push URLs"
msgstr "manipulasi URL pendorongan"
-#: builtin/remote.c:1625
+#: builtin/remote.c:1650
msgid "add URL"
msgstr "tambah URL"
-#: builtin/remote.c:1627
+#: builtin/remote.c:1652
msgid "delete URLs"
msgstr "hapus URL"
-#: builtin/remote.c:1634
+#: builtin/remote.c:1659
msgid "--add --delete doesn't make sense"
msgstr "--add --delete tidak masuk akal"
-#: builtin/remote.c:1675
+#: builtin/remote.c:1700
#, c-format
msgid "Invalid old URL pattern: %s"
msgstr "pola URL lama tidak valid: %s"
-#: builtin/remote.c:1683
+#: builtin/remote.c:1708
#, c-format
msgid "No such URL found: %s"
msgstr "Tidak ada URL yang ditemukan seperti: %s"
-#: builtin/remote.c:1685
+#: builtin/remote.c:1710
msgid "Will not delete all non-push URLs"
msgstr "Tidak akan hapus semua URL non-dorong"
-#: builtin/remote.c:1702
+#: builtin/remote.c:1727
msgid "be verbose; must be placed before a subcommand"
msgstr "jadi lebih bertele-tele; harus ditempatkan sebelum subperintah"
-#: builtin/repack.c:28
+#: builtin/repack.c:29
msgid "git repack [<options>]"
msgstr "git repack [<opsi>]"
-#: builtin/repack.c:33
+#: builtin/repack.c:34
msgid ""
"Incremental repacks are incompatible with bitmap indexes. Use\n"
"--no-write-bitmap-index or disable the pack.writebitmaps configuration."
@@ -20675,147 +21319,147 @@ msgstr ""
"Pengepakan ulang tambahan tidak kompatibel dengan indeks bitmap. Gunakan\n"
" --no-write-bitmap-index atau nonaktifkan konfigurasi pack.writebitmaps."
-#: builtin/repack.c:201
+#: builtin/repack.c:206
msgid "could not start pack-objects to repack promisor objects"
msgstr "tidak dapat memulai pack-objects untuk mengepak ulang objek pejanji"
-#: builtin/repack.c:275 builtin/repack.c:820
+#: builtin/repack.c:280 builtin/repack.c:824
msgid "repack: Expecting full hex object ID lines only from pack-objects."
msgstr "repack: Mengharapkan baris ID objek hex penuh hanya dari pack-objects."
-#: builtin/repack.c:299
+#: builtin/repack.c:304
msgid "could not finish pack-objects to repack promisor objects"
msgstr ""
"tidak dapat menyelesaikan pack-objects untuk mengepak ulang objek pejanji"
-#: builtin/repack.c:314
+#: builtin/repack.c:319
#, c-format
msgid "cannot open index for %s"
msgstr "tidak dapat membuka indeks untuk %s"
-#: builtin/repack.c:373
+#: builtin/repack.c:378
#, c-format
msgid "pack %s too large to consider in geometric progression"
msgstr "pak %s terlalu besar untuk dipertimbangkan dalam deret geometri"
-#: builtin/repack.c:406 builtin/repack.c:413 builtin/repack.c:418
+#: builtin/repack.c:411 builtin/repack.c:418 builtin/repack.c:423
#, c-format
msgid "pack %s too large to roll up"
msgstr "pak %s terlalu besar untuk digulung"
-#: builtin/repack.c:498
+#: builtin/repack.c:503
#, c-format
msgid "could not open tempfile %s for writing"
msgstr "tidak dapat membuka berkas sementara '%s' untuk ditulis"
-#: builtin/repack.c:516
+#: builtin/repack.c:521
msgid "could not close refs snapshot tempfile"
msgstr "tidak dapat menutup berkas sementara jepretan referensi"
-#: builtin/repack.c:630
+#: builtin/repack.c:634
msgid "pack everything in a single pack"
msgstr "pak semuanya dalam satu pak"
-#: builtin/repack.c:632
+#: builtin/repack.c:636
msgid "same as -a, and turn unreachable objects loose"
msgstr "sama seperti -a, dan jadikan objek yang tak dapat dicapai longgar"
-#: builtin/repack.c:635
+#: builtin/repack.c:639
msgid "remove redundant packs, and run git-prune-packed"
msgstr "hapus pak berlebihan, dan jalankan git-prune-packed"
-#: builtin/repack.c:637
+#: builtin/repack.c:641
msgid "pass --no-reuse-delta to git-pack-objects"
msgstr "lewatkan --no-reuse-delta ke git-pack-objects"
-#: builtin/repack.c:639
+#: builtin/repack.c:643
msgid "pass --no-reuse-object to git-pack-objects"
msgstr "lewatkan --no-reuse-object ke git-pack-objects"
-#: builtin/repack.c:641
+#: builtin/repack.c:645
msgid "do not run git-update-server-info"
msgstr "jangan jalankan git-update-server-info"
-#: builtin/repack.c:644
+#: builtin/repack.c:648
msgid "pass --local to git-pack-objects"
msgstr "lewatkan --local ke git-pack-objects"
-#: builtin/repack.c:646
+#: builtin/repack.c:650
msgid "write bitmap index"
msgstr "tulis indeks bitmap"
-#: builtin/repack.c:648
+#: builtin/repack.c:652
msgid "pass --delta-islands to git-pack-objects"
msgstr "lewatkan --delta-islands ke git-pack-objects"
-#: builtin/repack.c:649
+#: builtin/repack.c:653
msgid "approxidate"
msgstr "tanggal aproksimasi"
-#: builtin/repack.c:650
+#: builtin/repack.c:654
msgid "with -A, do not loosen objects older than this"
msgstr "dengan -A, jangan longgarkan objek lebih lama dari ini"
-#: builtin/repack.c:652
+#: builtin/repack.c:656
msgid "with -a, repack unreachable objects"
msgstr "dengan -a, pak ulang objek yang tak dapat dicapai"
-#: builtin/repack.c:654
+#: builtin/repack.c:658
msgid "size of the window used for delta compression"
msgstr "ukuran jendela yang digunakan untuk kompresi delta"
-#: builtin/repack.c:655 builtin/repack.c:661
+#: builtin/repack.c:659 builtin/repack.c:665
msgid "bytes"
msgstr "bita"
-#: builtin/repack.c:656
+#: builtin/repack.c:660
msgid "same as the above, but limit memory size instead of entries count"
msgstr ""
"sama seperti yang diatas, tetapi batasi penggunaan memori daripada hitungan "
"entri"
-#: builtin/repack.c:658
+#: builtin/repack.c:662
msgid "limits the maximum delta depth"
msgstr "batasi kedalaman delta maksimum"
-#: builtin/repack.c:660
+#: builtin/repack.c:664
msgid "limits the maximum number of threads"
msgstr "batasi jumlah utas maksimum"
-#: builtin/repack.c:662
+#: builtin/repack.c:666
msgid "maximum size of each packfile"
msgstr "ukuran maksimum setiap berkas pak"
-#: builtin/repack.c:664
+#: builtin/repack.c:668
msgid "repack objects in packs marked with .keep"
msgstr "pak ulang objek dalam pak yang ditandai dengan .keep"
-#: builtin/repack.c:666
+#: builtin/repack.c:670
msgid "do not repack this pack"
msgstr "jangan pak ulang pak ini"
-#: builtin/repack.c:668
+#: builtin/repack.c:672
msgid "find a geometric progression with factor <N>"
msgstr "temukan deret geometri dengan faktor <N>"
-#: builtin/repack.c:670
+#: builtin/repack.c:674
msgid "write a multi-pack index of the resulting packs"
msgstr "tulis indeks multipak dari pak yang dihasilkan"
-#: builtin/repack.c:680
+#: builtin/repack.c:684
msgid "cannot delete packs in a precious-objects repo"
msgstr "tidak dapat menghapus pak dalam repositori objek berharga"
-#: builtin/repack.c:829
+#: builtin/repack.c:833
msgid "Nothing new to pack."
msgstr "Tidak ada yang baru untuk dipak."
-#: builtin/repack.c:859
+#: builtin/repack.c:863
#, c-format
msgid "missing required file: %s"
msgstr "berkas yang diperlukan hilang: %s"
-#: builtin/repack.c:861
+#: builtin/repack.c:865
#, c-format
msgid "could not unlink: %s"
msgstr "tidak dapat membatal taut: %s"
@@ -20832,10 +21476,6 @@ msgstr ""
msgid "git replace [-f] --graft <commit> [<parent>...]"
msgstr ""
-#: builtin/replace.c:25
-msgid "git replace [-f] --convert-graft-file"
-msgstr ""
-
#: builtin/replace.c:26
msgid "git replace -d <object>..."
msgstr ""
@@ -21128,96 +21768,92 @@ msgstr "Gagal menemukan pohon dari %s."
msgid "HEAD is now at %s"
msgstr "HEAD sekarang pada %s"
-#: builtin/reset.c:299
+#: builtin/reset.c:304
#, c-format
msgid "Cannot do a %s reset in the middle of a merge."
msgstr "Tidak dapat lakukan reset %s di tengah-tengah penggabungan."
-#: builtin/reset.c:396 builtin/stash.c:606 builtin/stash.c:680
-#: builtin/stash.c:704
+#: builtin/reset.c:402 builtin/stash.c:606 builtin/stash.c:669
+#: builtin/stash.c:693
msgid "be quiet, only report errors"
msgstr "diam, hanya laporkan kesalahan"
-#: builtin/reset.c:398
+#: builtin/reset.c:404
+msgid "skip refreshing the index after reset"
+msgstr ""
+
+#: builtin/reset.c:406
msgid "reset HEAD and index"
msgstr "setel ulang HEAD dan indeks"
-#: builtin/reset.c:399
+#: builtin/reset.c:407
msgid "reset only HEAD"
msgstr "hanya setel ulang HEAD"
-#: builtin/reset.c:401 builtin/reset.c:403
+#: builtin/reset.c:409 builtin/reset.c:411
msgid "reset HEAD, index and working tree"
msgstr "setel ulang HEAD, indeks dan pohon kerja"
-#: builtin/reset.c:405
+#: builtin/reset.c:413
msgid "reset HEAD but keep local changes"
msgstr "setel ulang HEAD tapi simpan perubahan lokal"
-#: builtin/reset.c:411
+#: builtin/reset.c:419
msgid "record only the fact that removed paths will be added later"
msgstr "hanya rekam fakta bahwa jalur yang terhapus akan ditambahkan nanti"
-#: builtin/reset.c:445
+#: builtin/reset.c:452
#, c-format
msgid "Failed to resolve '%s' as a valid revision."
msgstr "Gagal menguraikan '%s' sebagai revisi yang valid."
-#: builtin/reset.c:453
+#: builtin/reset.c:460
#, c-format
msgid "Failed to resolve '%s' as a valid tree."
msgstr "Gagal menguraikan '%s' sebagaikan pohon yang valid."
-#: builtin/reset.c:472
+#: builtin/reset.c:479
msgid "--mixed with paths is deprecated; use 'git reset -- <paths>' instead."
msgstr ""
"--mixed dengan jalur usang; sebagai gantinya gunakan 'git reset --<jalur>'."
-#: builtin/reset.c:474
+#: builtin/reset.c:481
#, c-format
msgid "Cannot do %s reset with paths."
msgstr "Tidak dapat lakukan reset %s dengan jalur."
-#: builtin/reset.c:489
+#: builtin/reset.c:496
#, c-format
msgid "%s reset is not allowed in a bare repository"
msgstr "Reset %s tidak diperbolehkan dalam repositori bare"
-#: builtin/reset.c:520
+#: builtin/reset.c:527
msgid "Unstaged changes after reset:"
msgstr "Perubahan tak tergelar setelah setel ulang:"
-#: builtin/reset.c:523
+#: builtin/reset.c:530
#, c-format
msgid ""
-"\n"
-"It took %.2f seconds to enumerate unstaged changes after reset. You can\n"
-"use '--quiet' to avoid this. Set the config setting reset.quiet to true\n"
-"to make this the default.\n"
+"It took %.2f seconds to refresh the index after reset. You can use\n"
+"'--no-refresh' to avoid this."
msgstr ""
-"\n"
-"Butuh %.2f detik untuk daftar perubahan tak tergelar setelah setel ulang.\n"
-"Anda dapat menggunakan '--quiet' untuk hindari hal ini. Setel konfigurasi\n"
-"reset.quiet ke true untuk membuat hal tersebut asali.\n"
+"Butuh %.2f detik untuk menyegarkan indeks setelah penyetelan ulang.\n"
+"Anda bisa gunakan '--no-refresh' untuk menghindari hal tersebut."
-#: builtin/reset.c:541
+#: builtin/reset.c:547
#, c-format
msgid "Could not reset index file to revision '%s'."
msgstr "Tidak dapat menyetel ulang berkas indeks ke revisi '%s'."
-#: builtin/reset.c:546
+#: builtin/reset.c:552
msgid "Could not write new index file."
msgstr "Tidak dapat menulis berkas indeks baru."
-#: builtin/rev-list.c:602
-msgid "object filtering requires --objects"
-msgstr "penyaringan objek memerlukan --objects"
-
-#: builtin/rev-list.c:674
+#: builtin/rev-list.c:659
msgid "rev-list does not support display of notes"
msgstr "rev-list tidak mendukung penampilan catatan"
-#: builtin/rev-list.c:679
+#: builtin/rev-list.c:664
#, c-format
msgid "marked counting and '%s' cannot be used together"
msgstr "hitungan tertanda dan '%s' tidak dapat digunakan bersamaan."
@@ -21565,11 +22201,11 @@ msgstr "bidang"
msgid "group by field"
msgstr "kelompokkan oleh bidang"
-#: builtin/shortlog.c:394
+#: builtin/shortlog.c:395
msgid "too many arguments given outside repository"
msgstr "terlalu banyak argumen diberikan di luar repositori"
-#: builtin/show-branch.c:13
+#: builtin/show-branch.c:14
msgid ""
"git show-branch [-a | --all] [-r | --remotes] [--topo-order | --date-order]\n"
" [--current] [--color[=<when>] | --no-color] [--sparse]\n"
@@ -21581,120 +22217,120 @@ msgstr ""
" [--more=<n> | --list | --independent | --merge-base]\n"
" [--no-name | --sha1-name] [--topics] [(<revisi> | <glob>)...]"
-#: builtin/show-branch.c:17
+#: builtin/show-branch.c:18
msgid "git show-branch (-g | --reflog)[=<n>[,<base>]] [--list] [<ref>]"
msgstr "git show-branch (-g | --reflog)[=<n>[,<dasar>]] [--list] [<referensi>]"
-#: builtin/show-branch.c:395
+#: builtin/show-branch.c:396
#, c-format
msgid "ignoring %s; cannot handle more than %d ref"
msgid_plural "ignoring %s; cannot handle more than %d refs"
msgstr[0] "mengabaikan %s; tidak dapat menangani lebih dari %d referensi"
msgstr[1] "mengabaikan %s; tidak dapat menangani lebih dari %d referensi"
-#: builtin/show-branch.c:547
+#: builtin/show-branch.c:548
#, c-format
msgid "no matching refs with %s"
msgstr "tidak ada referensi yang cocok dengan %s"
-#: builtin/show-branch.c:644
+#: builtin/show-branch.c:645
msgid "show remote-tracking and local branches"
msgstr "perlihatkan cabang pelacak remote dan lokal"
-#: builtin/show-branch.c:646
+#: builtin/show-branch.c:647
msgid "show remote-tracking branches"
msgstr "perlihatkan cabang pelacak remote"
-#: builtin/show-branch.c:648
+#: builtin/show-branch.c:649
msgid "color '*!+-' corresponding to the branch"
msgstr "warna '*!+-' bersesuaian pada cabang"
-#: builtin/show-branch.c:650
+#: builtin/show-branch.c:651
msgid "show <n> more commits after the common ancestor"
msgstr "perlihatkan <n> komit lagi setelah nenek moyang yang sama"
-#: builtin/show-branch.c:652
+#: builtin/show-branch.c:653
msgid "synonym to more=-1"
msgstr "sinonim untuk more=-1"
-#: builtin/show-branch.c:653
+#: builtin/show-branch.c:654
msgid "suppress naming strings"
msgstr "sembunyikan untai penamaan"
-#: builtin/show-branch.c:655
+#: builtin/show-branch.c:656
msgid "include the current branch"
msgstr "masukkan cabang saat ini"
-#: builtin/show-branch.c:657
+#: builtin/show-branch.c:658
msgid "name commits with their object names"
msgstr "namai komit dengan nama objeknya"
-#: builtin/show-branch.c:659
+#: builtin/show-branch.c:660
msgid "show possible merge bases"
msgstr "perlihatkan dasar penggabungan yang mungkin"
-#: builtin/show-branch.c:661
+#: builtin/show-branch.c:662
msgid "show refs unreachable from any other ref"
msgstr ""
"perlihatkan referensi yang tidak dapat dicapai dari referensi yang lainnya"
-#: builtin/show-branch.c:663
+#: builtin/show-branch.c:664
msgid "show commits in topological order"
msgstr "perlihatkan komit dalam urutan topologis"
-#: builtin/show-branch.c:666
+#: builtin/show-branch.c:667
msgid "show only commits not on the first branch"
msgstr "hanya perlihatkan komit yang bukan pada cabang pertama"
-#: builtin/show-branch.c:668
+#: builtin/show-branch.c:669
msgid "show merges reachable from only one tip"
msgstr "perlihatkan penggabungan yang bisa dicapai hanya dari satu ujung"
-#: builtin/show-branch.c:670
+#: builtin/show-branch.c:671
msgid "topologically sort, maintaining date order where possible"
msgstr "urutkan secara topologis, pelihara urutan tanggal bila memungkinkan"
-#: builtin/show-branch.c:673
+#: builtin/show-branch.c:674
msgid "<n>[,<base>]"
msgstr "<n>[,<dasar>]"
-#: builtin/show-branch.c:674
+#: builtin/show-branch.c:675
msgid "show <n> most recent ref-log entries starting at base"
msgstr "perlihatkan <n> entri ref-log terkini dimulai dari dasar"
-#: builtin/show-branch.c:734
+#: builtin/show-branch.c:735
msgid "no branches given, and HEAD is not valid"
msgstr "tidak ada cabang yang diberikan, dan HEAD tidak valid"
-#: builtin/show-branch.c:737
+#: builtin/show-branch.c:738
msgid "--reflog option needs one branch name"
msgstr "opsi --reflog butuh satu nama cabang"
-#: builtin/show-branch.c:740
+#: builtin/show-branch.c:741
#, c-format
msgid "only %d entry can be shown at one time."
msgid_plural "only %d entries can be shown at one time."
msgstr[0] "hanya %d entri yang bisa diperlihatkan pada satu waktu."
msgstr[1] "hanya %d entri yang bisa diperlihatkan pada satu waktu."
-#: builtin/show-branch.c:744
+#: builtin/show-branch.c:745
#, c-format
msgid "no such ref %s"
msgstr "tidak ada referensi seperti %s"
-#: builtin/show-branch.c:830
+#: builtin/show-branch.c:831
#, c-format
msgid "cannot handle more than %d rev."
msgid_plural "cannot handle more than %d revs."
msgstr[0] "tidak dapat menangani lebih dari %d revisi."
msgstr[1] "tidak dapat menangani lebih dari %d revisi."
-#: builtin/show-branch.c:834
+#: builtin/show-branch.c:835
#, c-format
msgid "'%s' is not a valid ref."
msgstr "'%s' bukan sebuah referensi yang valid."
-#: builtin/show-branch.c:837
+#: builtin/show-branch.c:838
#, c-format
msgid "cannot find commit %s (%s)"
msgstr "tidak dapat menemukan komit %s (%s)"
@@ -21753,122 +22389,153 @@ msgstr ""
"perlihatkan referensi dari masukan standar yang tidak ada dalam repositori "
"lokal"
-#: builtin/sparse-checkout.c:22
+#: builtin/sparse-checkout.c:23
msgid "git sparse-checkout (init|list|set|add|reapply|disable) <options>"
msgstr "git sparse-checkout (init|list|set|add|reapply|disable) <opsi>"
-#: builtin/sparse-checkout.c:46
-msgid "git sparse-checkout list"
-msgstr "git sparse-checkout list"
-
-#: builtin/sparse-checkout.c:60
+#: builtin/sparse-checkout.c:61
msgid "this worktree is not sparse"
msgstr "pohon kerja ini bukan tipis"
-#: builtin/sparse-checkout.c:75
+#: builtin/sparse-checkout.c:76
msgid "this worktree is not sparse (sparse-checkout file may not exist)"
msgstr "pohon kerja ini bukan tipis (berkas sparse-checkout mungkin tidak ada)"
-#: builtin/sparse-checkout.c:176
+#: builtin/sparse-checkout.c:177
#, c-format
msgid ""
"directory '%s' contains untracked files, but is not in the sparse-checkout "
"cone"
msgstr ""
-"directori '%s' berisi berkas tak teracak, tapi tidak di dalam kerucut "
-"sparse-checkout"
+"directori '%s' berisi berkas tak teracak, tapi tidak di dalam kerucut sparse-"
+"checkout"
-#: builtin/sparse-checkout.c:184
+#: builtin/sparse-checkout.c:185
#, c-format
msgid "failed to remove directory '%s'"
msgstr "gagal menghapus direktori '%s'"
-#: builtin/sparse-checkout.c:324
+#: builtin/sparse-checkout.c:327
msgid "failed to create directory for sparse-checkout file"
msgstr "gagal membuat direktori untuk berkas sparse-checkout"
-#: builtin/sparse-checkout.c:365
-msgid "unable to upgrade repository format to enable worktreeConfig"
-msgstr "gagal mengupgrade format repositori untuk mengaktifkan worktreeConfig"
-
-#: builtin/sparse-checkout.c:367
-msgid "failed to set extensions.worktreeConfig setting"
-msgstr "gagal menyetel setelan extensions.worktreeConfig"
+#: builtin/sparse-checkout.c:366
+msgid "failed to initialize worktree config"
+msgstr "gagal menginisialisasi konfigurasi pohon kerja"
#: builtin/sparse-checkout.c:411
msgid "failed to modify sparse-index config"
msgstr "gagal memodifikasi konfigurasi sparse-index"
-#: builtin/sparse-checkout.c:422
-msgid "git sparse-checkout init [--cone] [--[no-]sparse-index]"
-msgstr "git sparse-checkout init [--cone] [--[no-]sparse-index]"
-
-#: builtin/sparse-checkout.c:441 builtin/sparse-checkout.c:729
-#: builtin/sparse-checkout.c:778
+#: builtin/sparse-checkout.c:441 builtin/sparse-checkout.c:793
+#: builtin/sparse-checkout.c:847
msgid "initialize the sparse-checkout in cone mode"
msgstr "inisialisasi checkout tipis dalam mode kerucut"
-#: builtin/sparse-checkout.c:443 builtin/sparse-checkout.c:731
-#: builtin/sparse-checkout.c:780
+#: builtin/sparse-checkout.c:443 builtin/sparse-checkout.c:795
+#: builtin/sparse-checkout.c:849
msgid "toggle the use of a sparse index"
msgstr "gunakan indeks tipis"
-#: builtin/sparse-checkout.c:476
+#: builtin/sparse-checkout.c:479
#, c-format
msgid "failed to open '%s'"
msgstr "gagal membuka '%s'"
-#: builtin/sparse-checkout.c:528
+#: builtin/sparse-checkout.c:531
#, c-format
msgid "could not normalize path %s"
msgstr "tidak dapat menormalkan jalur %s"
-#: builtin/sparse-checkout.c:557
+#: builtin/sparse-checkout.c:560
#, c-format
msgid "unable to unquote C-style string '%s'"
msgstr "tidak dapat membatal-kutip untai gaya C '%s'"
-#: builtin/sparse-checkout.c:612 builtin/sparse-checkout.c:640
+#: builtin/sparse-checkout.c:615 builtin/sparse-checkout.c:643
msgid "unable to load existing sparse-checkout patterns"
msgstr "tidak dapat memuat pola checkout tipis yang sudah ada"
-#: builtin/sparse-checkout.c:616
+#: builtin/sparse-checkout.c:619
msgid "existing sparse-checkout patterns do not use cone mode"
msgstr "pola checkout tipis yang sudah ada tidak menggunakan mode kerucut"
-#: builtin/sparse-checkout.c:682
-msgid "git sparse-checkout add (--stdin | <patterns>)"
-msgstr "git sparse-checkout add (--stdin | <pola>)"
+#: builtin/sparse-checkout.c:707
+msgid "please run from the toplevel directory in non-cone mode"
+msgstr "mohon jalankan dari direktori tingkat atas pada mode bukan kerucut"
-#: builtin/sparse-checkout.c:694 builtin/sparse-checkout.c:733
+#: builtin/sparse-checkout.c:712
+msgid "specify directories rather than patterns (no leading slash)"
+msgstr "sebutkan direktori daripada pola (tanpa garis miring terdepan)"
+
+#: builtin/sparse-checkout.c:714
+msgid ""
+"specify directories rather than patterns. If your directory starts with a "
+"'!', pass --skip-checks"
+msgstr ""
+"sebutkan direktori daripada pola. Jika direktori Anda dimulai dengan '!', "
+"lewatkan --skip-checks"
+
+#: builtin/sparse-checkout.c:716
+msgid ""
+"specify directories rather than patterns. If your directory really has any "
+"of '*?[]\\' in it, pass --skip-checks"
+msgstr ""
+"sebutkan direktori daripada pola. Jika direktori Anda benar-benar berisi "
+"salah satu dari '*?[]\\', lewatkan --skip-checks"
+
+#: builtin/sparse-checkout.c:732
+#, c-format
+msgid ""
+"'%s' is not a directory; to treat it as a directory anyway, rerun with --"
+"skip-checks"
+msgstr ""
+"'%s' bukan sebuah direktori; untuk perlakukan juga sebagai direktori, "
+"jalankan ulang dengan --skip-checks"
+
+#: builtin/sparse-checkout.c:734
+#, c-format
+msgid ""
+"pass a leading slash before paths such as '%s' if you want a single file "
+"(see NON-CONE PROBLEMS in the git-sparse-checkout manual)."
+msgstr ""
+"lewatkan sebuah garis miring terdepan sebelum jalur seperti '%s' jika Anda "
+"ingin sebuah berkas (lihat NON-CONE PROBLEMS dalam manual git-sparse-"
+"checkout)."
+
+#: builtin/sparse-checkout.c:739
+msgid "git sparse-checkout add [--skip-checks] (--stdin | <patterns>)"
+msgstr "git sparse-checkout add [--skip-checks] (--stdin | <pola>)"
+
+#: builtin/sparse-checkout.c:752 builtin/sparse-checkout.c:797
+msgid ""
+"skip some sanity checks on the given paths that might give false positives"
+msgstr ""
+"lewati beberapa pemeriksaan kewarasan pada jalur yang diberikan yang mana "
+"dapat memberikan positif palsu"
+
+#: builtin/sparse-checkout.c:755 builtin/sparse-checkout.c:800
msgid "read patterns from standard in"
msgstr "baca pola dari masukan standar"
-#: builtin/sparse-checkout.c:699
+#: builtin/sparse-checkout.c:760
msgid "no sparse-checkout to add to"
msgstr "tidak ada checkout tipis untuk ditambahkan"
-#: builtin/sparse-checkout.c:712
+#: builtin/sparse-checkout.c:775
msgid ""
-"git sparse-checkout set [--[no-]cone] [--[no-]sparse-index] (--stdin | "
-"<patterns>)"
+"git sparse-checkout set [--[no-]cone] [--[no-]sparse-index] [--skip-checks] "
+"(--stdin | <patterns>)"
msgstr ""
-"git sparse-checkout set [--[no-]cone] [--[no-]sparse-index] (--stdin | "
-"<pola>)"
-
-#: builtin/sparse-checkout.c:765
-msgid "git sparse-checkout reapply [--[no-]cone] [--[no-]sparse-index]"
-msgstr "git sparse-checkout reapply [--[no-]cone] [--[no-]sparse-index]"
+"git sparse-checkout set [--[no-]cone] [--[no-]sparse-index] [--skip-checks] "
+"(--stdin | <pola>)"
-#: builtin/sparse-checkout.c:785
+#: builtin/sparse-checkout.c:854
msgid "must be in a sparse-checkout to reapply sparsity patterns"
-msgstr "harus berada di dalam checkout tipis untuk menerapkan ulang pola kejarangan"
-
-#: builtin/sparse-checkout.c:803
-msgid "git sparse-checkout disable"
-msgstr "git sparse-checkout disable"
+msgstr ""
+"harus berada di dalam checkout tipis untuk menerapkan ulang pola kejarangan"
-#: builtin/sparse-checkout.c:845
+#: builtin/sparse-checkout.c:914
msgid "error while refreshing working directory"
msgstr "kesalahan saat menyegarkan direktori kerja"
@@ -22009,171 +22676,155 @@ msgstr "Indeks tak dibatal-stasekan."
msgid "could not restore untracked files from stash"
msgstr "tidak dapat mengembalikan berkas tak terlacak dari stase"
-#: builtin/stash.c:608 builtin/stash.c:706
+#: builtin/stash.c:608 builtin/stash.c:695
msgid "attempt to recreate the index"
msgstr "coba membuat ulang indeks"
-#: builtin/stash.c:652
+#: builtin/stash.c:641
#, c-format
msgid "Dropped %s (%s)"
msgstr "%s (%s) dijatuhkan"
-#: builtin/stash.c:655
+#: builtin/stash.c:644
#, c-format
msgid "%s: Could not drop stash entry"
msgstr "%s: Tidak dapat menjatuhkan entri stase"
-#: builtin/stash.c:668
+#: builtin/stash.c:657
#, c-format
msgid "'%s' is not a stash reference"
msgstr "'%s' bukan referensi stase"
-#: builtin/stash.c:718
+#: builtin/stash.c:707
msgid "The stash entry is kept in case you need it again."
msgstr "Entri stase disimpan jika Anda butuh itu lagi."
-#: builtin/stash.c:741
+#: builtin/stash.c:730
msgid "No branch name specified"
msgstr "Tidak ada nama cabang yang disebutkan"
-#: builtin/stash.c:825
+#: builtin/stash.c:809
msgid "failed to parse tree"
msgstr "gagal menguraikan pohon"
-#: builtin/stash.c:836
+#: builtin/stash.c:820
msgid "failed to unpack trees"
msgstr "gagal membongkar pohon"
-#: builtin/stash.c:856
+#: builtin/stash.c:840
msgid "include untracked files in the stash"
msgstr "masukkan berkas tak terlacak ke dalam stase"
-#: builtin/stash.c:859
+#: builtin/stash.c:843
msgid "only show untracked files in the stash"
msgstr "hanya perlihatkan berkas tak terlacak dalam stase"
-#: builtin/stash.c:946 builtin/stash.c:983
+#: builtin/stash.c:930 builtin/stash.c:967
#, c-format
msgid "Cannot update %s with %s"
msgstr "Tidak dapat memperbarui %s dengan %s"
-#: builtin/stash.c:964 builtin/stash.c:1678 builtin/stash.c:1750
+#: builtin/stash.c:948 builtin/stash.c:1667 builtin/stash.c:1739
msgid "stash message"
msgstr "pesan stase"
-#: builtin/stash.c:974
+#: builtin/stash.c:958
msgid "\"git stash store\" requires one <commit> argument"
msgstr "\"git stash store\" butuh satu argumen <komit>"
-#: builtin/stash.c:1159
+#: builtin/stash.c:1143
msgid "No staged changes"
msgstr "Tidak ada perubahan yang tergelar"
-#: builtin/stash.c:1220
+#: builtin/stash.c:1204
msgid "No changes selected"
msgstr "Tidak ada perubahan yang dipilih"
-#: builtin/stash.c:1320
+#: builtin/stash.c:1304
msgid "You do not have the initial commit yet"
msgstr "Anda belum punya komit awal"
-#: builtin/stash.c:1347
+#: builtin/stash.c:1331
msgid "Cannot save the current index state"
msgstr "Tidak dapat menyimpan keadaan indeks saat ini"
-#: builtin/stash.c:1356
+#: builtin/stash.c:1340
msgid "Cannot save the untracked files"
msgstr "Tidak dapat menyimpan berkas tak terlacak"
-#: builtin/stash.c:1367 builtin/stash.c:1386
+#: builtin/stash.c:1351 builtin/stash.c:1370
msgid "Cannot save the current worktree state"
msgstr "Tidak dapat menyimpang keadaan pohon kerja saat ini"
-#: builtin/stash.c:1377
+#: builtin/stash.c:1361
msgid "Cannot save the current staged state"
msgstr "Tidak dapat menyimpan keadaan tergelar saat ini"
-#: builtin/stash.c:1414
+#: builtin/stash.c:1398
msgid "Cannot record working tree state"
msgstr "Tidak dapat merekam keadaan pohon kerja"
-#: builtin/stash.c:1463
+#: builtin/stash.c:1447
msgid "Can't use --patch and --include-untracked or --all at the same time"
msgstr ""
"Tidak dapat menggunakan --patch dan --include-untracked atau --all pada "
"waktu yang bersamaan"
-#: builtin/stash.c:1474
+#: builtin/stash.c:1458
msgid "Can't use --staged and --include-untracked or --all at the same time"
msgstr ""
"Tidak dapat menggunakan --staged dan --include-untracked atau --all pada "
"waktu yang bersamaan"
-#: builtin/stash.c:1492
+#: builtin/stash.c:1476
msgid "Did you forget to 'git add'?"
msgstr "Anda lupa untuk 'git add'?"
-#: builtin/stash.c:1507
+#: builtin/stash.c:1491
msgid "No local changes to save"
msgstr "Tidak ada perubahan lokal untuk disimpan"
-#: builtin/stash.c:1514
+#: builtin/stash.c:1498
msgid "Cannot initialize stash"
msgstr "Tidak dapat menginisialisasi stase"
-#: builtin/stash.c:1529
+#: builtin/stash.c:1513
msgid "Cannot save the current status"
msgstr "Tidak dapat menyimpan status saat ini"
-#: builtin/stash.c:1534
+#: builtin/stash.c:1518
#, c-format
msgid "Saved working directory and index state %s"
msgstr "Direktori kerja dan keadaan indeks %s disimpan"
-#: builtin/stash.c:1627
+#: builtin/stash.c:1615
msgid "Cannot remove worktree changes"
msgstr "Tidak dapat menghapus perubahaan pohon kerja"
-#: builtin/stash.c:1667 builtin/stash.c:1739
+#: builtin/stash.c:1656 builtin/stash.c:1728
msgid "keep index"
msgstr "jaga indeks"
-#: builtin/stash.c:1669 builtin/stash.c:1741
+#: builtin/stash.c:1658 builtin/stash.c:1730
msgid "stash staged changes only"
msgstr "hanya stase perubahan tergelar"
-#: builtin/stash.c:1671 builtin/stash.c:1743
+#: builtin/stash.c:1660 builtin/stash.c:1732
msgid "stash in patch mode"
msgstr "stase dalam mode tambalan"
-#: builtin/stash.c:1672 builtin/stash.c:1744
+#: builtin/stash.c:1661 builtin/stash.c:1733
msgid "quiet mode"
msgstr "mode hening"
-#: builtin/stash.c:1674 builtin/stash.c:1746
+#: builtin/stash.c:1663 builtin/stash.c:1735
msgid "include untracked files in stash"
msgstr "masukkan berkas tak terlacak ke dalam stase"
-#: builtin/stash.c:1676 builtin/stash.c:1748
+#: builtin/stash.c:1665 builtin/stash.c:1737
msgid "include ignore files"
msgstr "masukkan berkas ignore"
-#: builtin/stash.c:1783
-msgid ""
-"the stash.useBuiltin support has been removed!\n"
-"See its entry in 'git help config' for details."
-msgstr ""
-"Dukungan untuk stash.useBuiltin sudah dihapus!\n"
-"Lihat entri itu di 'git help config' untuk selengkapnya."
-
-#: builtin/stripspace.c:18
-msgid "git stripspace [-s | --strip-comments]"
-msgstr ""
-
-#: builtin/stripspace.c:19
-msgid "git stripspace [-c | --comment-lines]"
-msgstr ""
-
#: builtin/stripspace.c:37
msgid "skip and remove all lines starting with comment character"
msgstr ""
@@ -22182,21 +22833,17 @@ msgstr ""
msgid "prepend comment character and space to each line"
msgstr ""
-#: builtin/submodule--helper.c:46 builtin/submodule--helper.c:2668
+#: builtin/submodule--helper.c:50 builtin/submodule--helper.c:2486
#, c-format
msgid "Expecting a full ref name, got %s"
msgstr "Mengharapkan nama referensi penuh, dapat %s"
-#: builtin/submodule--helper.c:63
-msgid "submodule--helper print-default-remote takes no arguments"
-msgstr "submodule--helper print-default-remote tidak membutuhkan argumen"
-
-#: builtin/submodule--helper.c:101
+#: builtin/submodule--helper.c:103
#, c-format
msgid "cannot strip one component off url '%s'"
msgstr "tidak dapat mencopot satu komponen dari url '%s'"
-#: builtin/submodule--helper.c:211
+#: builtin/submodule--helper.c:213
#, c-format
msgid ""
"could not look up configuration '%s'. Assuming this repository is its own "
@@ -22205,26 +22852,26 @@ msgstr ""
"tidak dapat mencari konfigurasi '%s'. Asumsi bahwa repositori ini adalah "
"hulu otoritatif tersendiri."
-#: builtin/submodule--helper.c:405 builtin/submodule--helper.c:1859
+#: builtin/submodule--helper.c:413 builtin/submodule--helper.c:1873
msgid "alternative anchor for relative paths"
msgstr "jangkar alternatif untuk jalur relatif"
-#: builtin/submodule--helper.c:410
+#: builtin/submodule--helper.c:418
msgid "git submodule--helper list [--prefix=<path>] [<path>...]"
msgstr "git submodule--helper list [--prefix=<jalur>] [<jalur>...]"
-#: builtin/submodule--helper.c:468 builtin/submodule--helper.c:605
-#: builtin/submodule--helper.c:628
+#: builtin/submodule--helper.c:476 builtin/submodule--helper.c:617
+#: builtin/submodule--helper.c:640
#, c-format
msgid "No url found for submodule path '%s' in .gitmodules"
msgstr "Tidak ada url yang ditemukan untuk jalur submodul '%s' di .gitmodules"
-#: builtin/submodule--helper.c:520
+#: builtin/submodule--helper.c:528
#, c-format
msgid "Entering '%s'\n"
msgstr "Memasuki '%s'\n"
-#: builtin/submodule--helper.c:523
+#: builtin/submodule--helper.c:531
#, c-format
msgid ""
"run_command returned non-zero status for %s\n"
@@ -22233,7 +22880,7 @@ msgstr ""
"run_command mengembalikan status bukan nol untuk %s\n"
"."
-#: builtin/submodule--helper.c:545
+#: builtin/submodule--helper.c:553
#, c-format
msgid ""
"run_command returned non-zero status while recursing in the nested "
@@ -22244,68 +22891,68 @@ msgstr ""
"bersarang %s\n"
"."
-#: builtin/submodule--helper.c:561
+#: builtin/submodule--helper.c:569
msgid "suppress output of entering each submodule command"
msgstr "sembunyikan keluaran memasuki setiap perintah submodul"
-#: builtin/submodule--helper.c:563 builtin/submodule--helper.c:864
-#: builtin/submodule--helper.c:1453
+#: builtin/submodule--helper.c:571 builtin/submodule--helper.c:876
+#: builtin/submodule--helper.c:1458
msgid "recurse into nested submodules"
msgstr "rekursi ke dalam submodul bersarang"
-#: builtin/submodule--helper.c:568
+#: builtin/submodule--helper.c:576
msgid "git submodule--helper foreach [--quiet] [--recursive] [--] <command>"
msgstr ""
"git submodule--helper foreach [--quiet] [--recursive] [--] [<perintah>]"
-#: builtin/submodule--helper.c:642
+#: builtin/submodule--helper.c:654
#, c-format
msgid "Failed to register url for submodule path '%s'"
msgstr "Gagal mendaftarkan url untuk jalur submodul '%s'"
-#: builtin/submodule--helper.c:646
+#: builtin/submodule--helper.c:658
#, c-format
msgid "Submodule '%s' (%s) registered for path '%s'\n"
msgstr "Submodul '%s' (%s) didaftarkan untuk jalur '%s'\n"
-#: builtin/submodule--helper.c:656
+#: builtin/submodule--helper.c:668
#, c-format
msgid "warning: command update mode suggested for submodule '%s'\n"
msgstr "peringatan: perintah mode pembaruan disarankan untuk submodul '%s'\n"
-#: builtin/submodule--helper.c:663
+#: builtin/submodule--helper.c:675
#, c-format
msgid "Failed to register update mode for submodule path '%s'"
msgstr "Gagal mendaftarkan mode pembaruan untuk jalur submodul '%s'"
-#: builtin/submodule--helper.c:685
+#: builtin/submodule--helper.c:697
msgid "suppress output for initializing a submodule"
msgstr "sembunyikan keluaran menginisialisasi submodul"
-#: builtin/submodule--helper.c:690
+#: builtin/submodule--helper.c:702
msgid "git submodule--helper init [<options>] [<path>]"
msgstr "git submodule--helper init [<opsi>] [<jalur>]"
-#: builtin/submodule--helper.c:763 builtin/submodule--helper.c:898
+#: builtin/submodule--helper.c:775 builtin/submodule--helper.c:910
#, c-format
msgid "no submodule mapping found in .gitmodules for path '%s'"
msgstr "tidak ada pemetaan submodul ditemukan di .gitmodules untuk jalur '%s'"
-#: builtin/submodule--helper.c:811
+#: builtin/submodule--helper.c:823
#, c-format
msgid "could not resolve HEAD ref inside the submodule '%s'"
msgstr "tidak dapat menguraikan referensi HEAD di dalam submodul '%s'"
-#: builtin/submodule--helper.c:838 builtin/submodule--helper.c:1423
+#: builtin/submodule--helper.c:850 builtin/submodule--helper.c:1428
#, c-format
msgid "failed to recurse into submodule '%s'"
msgstr "gagal merekursi ke dalam submodul '%s'"
-#: builtin/submodule--helper.c:862 builtin/submodule--helper.c:1590
+#: builtin/submodule--helper.c:874 builtin/submodule--helper.c:1595
msgid "suppress submodule status output"
msgstr "sembunyikan keluaran status submodul"
-#: builtin/submodule--helper.c:863
+#: builtin/submodule--helper.c:875
msgid ""
"use commit stored in the index instead of the one stored in the submodule "
"HEAD"
@@ -22313,92 +22960,92 @@ msgstr ""
"gunakan komit yang disimpan di dalam indeks daripada yang disimpan di dalam "
"HEAD"
-#: builtin/submodule--helper.c:869
+#: builtin/submodule--helper.c:881
msgid "git submodule status [--quiet] [--cached] [--recursive] [<path>...]"
msgstr "git submodule status [--quiet] [--cached] [--recursive] [<jalur>...]"
-#: builtin/submodule--helper.c:893
+#: builtin/submodule--helper.c:905
msgid "git submodule--helper name <path>"
msgstr "git submodule--helper name <jalur>"
-#: builtin/submodule--helper.c:965
+#: builtin/submodule--helper.c:977
#, c-format
msgid "* %s %s(blob)->%s(submodule)"
msgstr "* %s %s(blob)->%s(submodul)"
-#: builtin/submodule--helper.c:968
+#: builtin/submodule--helper.c:980
#, c-format
msgid "* %s %s(submodule)->%s(blob)"
msgstr "* %s %s(submodul)->%s(blob)"
-#: builtin/submodule--helper.c:981
+#: builtin/submodule--helper.c:993
#, c-format
msgid "%s"
msgstr "%s"
-#: builtin/submodule--helper.c:1031
+#: builtin/submodule--helper.c:1043
#, c-format
msgid "couldn't hash object from '%s'"
msgstr "tidak dapat hash objek dari '%s'"
-#: builtin/submodule--helper.c:1035
+#: builtin/submodule--helper.c:1047
#, c-format
msgid "unexpected mode %o\n"
msgstr "mode tidak diharapkan %o\n"
-#: builtin/submodule--helper.c:1276
+#: builtin/submodule--helper.c:1288
msgid "use the commit stored in the index instead of the submodule HEAD"
msgstr "gunakan komit yang disimpan di dalam indeks daripada HEAD submodul"
-#: builtin/submodule--helper.c:1278
+#: builtin/submodule--helper.c:1290
msgid "compare the commit in the index with that in the submodule HEAD"
msgstr "bandingkan komit di dalam indeks dengan yang di dalam HEAD submodul"
-#: builtin/submodule--helper.c:1280
+#: builtin/submodule--helper.c:1292
msgid "skip submodules with 'ignore_config' value set to 'all'"
msgstr "lewatkan submodul dengan nilai 'ignore_config' disetel ke 'all'"
-#: builtin/submodule--helper.c:1282
+#: builtin/submodule--helper.c:1294
msgid "limit the summary size"
msgstr "batasi ukuran ringkasan"
-#: builtin/submodule--helper.c:1287
+#: builtin/submodule--helper.c:1299
msgid "git submodule--helper summary [<options>] [<commit>] [--] [<path>]"
msgstr "git submodule--helper summary [<opsi>] [<commit>] -- [<jalur>]"
-#: builtin/submodule--helper.c:1311
+#: builtin/submodule--helper.c:1323
msgid "could not fetch a revision for HEAD"
msgstr "tidak dapat mengambil revisi untuk HEAD"
-#: builtin/submodule--helper.c:1373
+#: builtin/submodule--helper.c:1384
#, c-format
msgid "Synchronizing submodule url for '%s'\n"
msgstr "Mensinkronisasi url submodul untuk '%s'\n"
-#: builtin/submodule--helper.c:1379
+#: builtin/submodule--helper.c:1390
#, c-format
msgid "failed to register url for submodule path '%s'"
msgstr "gagal mendaftarkan url untuk jalur submodul '%s'"
-#: builtin/submodule--helper.c:1393
+#: builtin/submodule--helper.c:1399
#, c-format
msgid "failed to get the default remote for submodule '%s'"
msgstr "gagal mendapatkan remote asali untuk submodul '%s'"
-#: builtin/submodule--helper.c:1404
+#: builtin/submodule--helper.c:1409
#, c-format
msgid "failed to update remote for submodule '%s'"
msgstr "gagal memperbarui remote untuk submodul '%s'"
-#: builtin/submodule--helper.c:1451
+#: builtin/submodule--helper.c:1456
msgid "suppress output of synchronizing submodule url"
msgstr "sembunyikan keluaran mensinkronisasi url submodul"
-#: builtin/submodule--helper.c:1458
+#: builtin/submodule--helper.c:1463
msgid "git submodule--helper sync [--quiet] [--recursive] [<path>]"
msgstr "git submodule--helper sync [--quiet] [--recursive] [<jalur>]"
-#: builtin/submodule--helper.c:1508
+#: builtin/submodule--helper.c:1513
#, c-format
msgid ""
"Submodule work tree '%s' contains a .git directory. This will be replaced "
@@ -22407,7 +23054,7 @@ msgstr ""
"Pohon kerja submodul '%s' berisi direktori .git. Ini akan diganti dengan "
"berkas .git oleh dengan menggunakan absorbgitdirs."
-#: builtin/submodule--helper.c:1525
+#: builtin/submodule--helper.c:1530
#, c-format
msgid ""
"Submodule work tree '%s' contains local modifications; use '-f' to discard "
@@ -22416,46 +23063,46 @@ msgstr ""
"Pohon kerja submodul '%s' berisi modifikasi lokal; gunakan '-f' untuk "
"menyingkirkan itu"
-#: builtin/submodule--helper.c:1533
+#: builtin/submodule--helper.c:1538
#, c-format
msgid "Cleared directory '%s'\n"
msgstr "Direktori '%s' dibersihkan\n"
-#: builtin/submodule--helper.c:1535
+#: builtin/submodule--helper.c:1540
#, c-format
msgid "Could not remove submodule work tree '%s'\n"
msgstr "Tidak dapat menghapus pohon kerja submodul '%s'\n"
-#: builtin/submodule--helper.c:1546
+#: builtin/submodule--helper.c:1551
#, c-format
msgid "could not create empty submodule directory %s"
msgstr "tidak dapat membuat direktori submodul kosong %s"
-#: builtin/submodule--helper.c:1562
+#: builtin/submodule--helper.c:1567
#, c-format
msgid "Submodule '%s' (%s) unregistered for path '%s'\n"
msgstr "Submodul '%s' (%s) tak terdaftar untuk jalur '%s'\n"
-#: builtin/submodule--helper.c:1591
+#: builtin/submodule--helper.c:1596
msgid "remove submodule working trees even if they contain local changes"
msgstr "hapus pohon kerja submodul bahkan jika itu berisi perubahan lokal"
-#: builtin/submodule--helper.c:1592
+#: builtin/submodule--helper.c:1597
msgid "unregister all submodules"
msgstr "batal daftar semua submodul"
-#: builtin/submodule--helper.c:1597
+#: builtin/submodule--helper.c:1602
msgid ""
"git submodule deinit [--quiet] [-f | --force] [--all | [--] [<path>...]]"
msgstr ""
"git submodule deinit [--quiet] [-f | --force] [--all | [--] [<jalur>...]]"
-#: builtin/submodule--helper.c:1611
+#: builtin/submodule--helper.c:1616
msgid "Use '--all' if you really want to deinitialize all submodules"
msgstr ""
"Gunakan '--all' jika Anda benar-benar ingin deinisialisasi semua submodul"
-#: builtin/submodule--helper.c:1656
+#: builtin/submodule--helper.c:1665
msgid ""
"An alternate computed from a superproject's alternate is invalid.\n"
"To allow Git to clone without an alternate in such a case, set\n"
@@ -22467,102 +23114,102 @@ msgstr ""
" itu, setel submodule.alternateErrorStrategy ke 'info' atau yang sama,\n"
"kloning degan '--reference-if-able' daripada '--reference'."
-#: builtin/submodule--helper.c:1701 builtin/submodule--helper.c:1704
+#: builtin/submodule--helper.c:1710 builtin/submodule--helper.c:1713
#, c-format
msgid "submodule '%s' cannot add alternate: %s"
msgstr "submodul '%s' tidak dapat menambahkan pengganti: %s"
-#: builtin/submodule--helper.c:1740
+#: builtin/submodule--helper.c:1749
#, c-format
msgid "Value '%s' for submodule.alternateErrorStrategy is not recognized"
msgstr "Nilai '%s' untuk submodule.alternateErrorStrategy tidak dikenal"
-#: builtin/submodule--helper.c:1747
+#: builtin/submodule--helper.c:1756
#, c-format
msgid "Value '%s' for submodule.alternateLocation is not recognized"
msgstr "Nilai '%s' untuk submodule.alternateLocation tidak dikenal"
-#: builtin/submodule--helper.c:1772
+#: builtin/submodule--helper.c:1781
#, c-format
msgid "refusing to create/use '%s' in another submodule's git dir"
msgstr ""
"menolak membuat/menggunakan '%s' di dalam direktori git submodul yang lain"
-#: builtin/submodule--helper.c:1813
+#: builtin/submodule--helper.c:1826
#, c-format
msgid "clone of '%s' into submodule path '%s' failed"
msgstr "gagal mengkloning '%s' ke dalam jalur submodul '%s'"
-#: builtin/submodule--helper.c:1818
+#: builtin/submodule--helper.c:1831
#, c-format
msgid "directory not empty: '%s'"
msgstr "direktori tidak kosong: '%s'"
-#: builtin/submodule--helper.c:1830
+#: builtin/submodule--helper.c:1843
#, c-format
msgid "could not get submodule directory for '%s'"
msgstr "tidak dapat mendapatkan direktori submodul untuk '%s'"
-#: builtin/submodule--helper.c:1862
+#: builtin/submodule--helper.c:1876
msgid "where the new submodule will be cloned to"
msgstr "di mana submodul baru akan dikloning"
-#: builtin/submodule--helper.c:1865
+#: builtin/submodule--helper.c:1879
msgid "name of the new submodule"
msgstr "nama submodul baru"
-#: builtin/submodule--helper.c:1868
+#: builtin/submodule--helper.c:1882
msgid "url where to clone the submodule from"
msgstr "url di mana submodul dikloning"
-#: builtin/submodule--helper.c:1876 builtin/submodule--helper.c:3265
+#: builtin/submodule--helper.c:1890 builtin/submodule--helper.c:3383
msgid "depth for shallow clones"
msgstr "kedalaman untuk kloning dangkal"
-#: builtin/submodule--helper.c:1879 builtin/submodule--helper.c:2526
-#: builtin/submodule--helper.c:3258
+#: builtin/submodule--helper.c:1893 builtin/submodule--helper.c:2731
+#: builtin/submodule--helper.c:3376
msgid "force cloning progress"
msgstr "paksa perkembangan kloning"
-#: builtin/submodule--helper.c:1881 builtin/submodule--helper.c:2528
+#: builtin/submodule--helper.c:1895 builtin/submodule--helper.c:2733
msgid "disallow cloning into non-empty directory"
msgstr "tak perbolehkan kloning ke dalam direktori bukan kosong"
-#: builtin/submodule--helper.c:1888
+#: builtin/submodule--helper.c:1903
msgid ""
"git submodule--helper clone [--prefix=<path>] [--quiet] [--reference "
-"<repository>] [--name <name>] [--depth <depth>] [--single-branch] --url "
-"<url> --path <path>"
+"<repository>] [--name <name>] [--depth <depth>] [--single-branch] [--filter "
+"<filter-spec>] --url <url> --path <path>"
msgstr ""
"git submodule--helper clone [--prefix=<jalur>] [--quiet] [--reference "
-"<repositori>] [--name <nama>] [--depth <kedalaman>] [--single-branch] --url "
-"<url> --path <jalur>"
+"<repositori>] [--name <nama>] [--depth <kedalaman>] [--single-branch] [--"
+"filter <spek filter>] --url <url> --path <jalur>"
-#: builtin/submodule--helper.c:1925
+#: builtin/submodule--helper.c:1943
#, c-format
msgid "Invalid update mode '%s' for submodule path '%s'"
msgstr "Mode pembaruan '%s' tidak valid untuk jalur submodul '%s'"
-#: builtin/submodule--helper.c:1929
+#: builtin/submodule--helper.c:1947
#, c-format
msgid "Invalid update mode '%s' configured for submodule path '%s'"
msgstr "Mode pembaruan '%s' tidak valid untuk jalur submodul '%s'"
-#: builtin/submodule--helper.c:2044
+#: builtin/submodule--helper.c:2041
#, c-format
msgid "Submodule path '%s' not initialized"
msgstr "Jalur submodul '%s' tidak diinisialisasi"
-#: builtin/submodule--helper.c:2048
+#: builtin/submodule--helper.c:2045
msgid "Maybe you want to use 'update --init'?"
msgstr "Mungkin Anda ingin menggunakan 'update --init'?"
-#: builtin/submodule--helper.c:2078
+#: builtin/submodule--helper.c:2075
#, c-format
msgid "Skipping unmerged submodule %s"
msgstr "Melewati submodul tak tergabung %s"
-#: builtin/submodule--helper.c:2107
+#: builtin/submodule--helper.c:2104
#, c-format
msgid "Skipping submodule '%s'"
msgstr "Melewati submodul '%s'"
@@ -22577,54 +23224,54 @@ msgstr "Gagal mengkloning '%s'. Percobaan ulang dijadwalkan"
msgid "Failed to clone '%s' a second time, aborting"
msgstr "Gagal mengkloning '%s' untuk kedua kalinya, batalkan"
-#: builtin/submodule--helper.c:2373
+#: builtin/submodule--helper.c:2371
#, c-format
msgid "Unable to checkout '%s' in submodule path '%s'"
msgstr "Tidak dapat men-checkout '%s' pada jalur submodul '%s'"
-#: builtin/submodule--helper.c:2377
+#: builtin/submodule--helper.c:2375
#, c-format
msgid "Unable to rebase '%s' in submodule path '%s'"
msgstr "Gagal mendasarkan ulang '%s' pada jalur submodul '%s'"
-#: builtin/submodule--helper.c:2381
+#: builtin/submodule--helper.c:2379
#, c-format
msgid "Unable to merge '%s' in submodule path '%s'"
msgstr "Tidak dapat menggabungkan '%s' pada jalur submodul '%s'"
-#: builtin/submodule--helper.c:2385
+#: builtin/submodule--helper.c:2383
#, c-format
msgid "Execution of '%s %s' failed in submodule path '%s'"
msgstr "Eksekusi '%s %s' gagal di jalur submodul '%s'"
-#: builtin/submodule--helper.c:2409
+#: builtin/submodule--helper.c:2402
#, c-format
msgid "Submodule path '%s': checked out '%s'\n"
msgstr "Jalur submodul '%s': ter-checkout '%s'\n"
-#: builtin/submodule--helper.c:2413
+#: builtin/submodule--helper.c:2406
#, c-format
msgid "Submodule path '%s': rebased into '%s'\n"
msgstr "Jalur submodul '%s: terdasarkan ulang ke '%s''\n"
-#: builtin/submodule--helper.c:2417
+#: builtin/submodule--helper.c:2410
#, c-format
msgid "Submodule path '%s': merged in '%s'\n"
msgstr "Jalur submodul '%s': tergabung dalam '%s'\n"
-#: builtin/submodule--helper.c:2421
+#: builtin/submodule--helper.c:2414
#, c-format
msgid "Submodule path '%s': '%s %s'\n"
msgstr "Jalur submodul '%s': '%s %s'\n"
-#: builtin/submodule--helper.c:2445
+#: builtin/submodule--helper.c:2438
#, c-format
msgid "Unable to fetch in submodule path '%s'; trying to directly fetch %s:"
msgstr ""
"Tidak dapat mengambil di dalam jalur submodul '%s'; mencoba mengambil "
"langsung %s:"
-#: builtin/submodule--helper.c:2454
+#: builtin/submodule--helper.c:2447
#, c-format
msgid ""
"Fetched in submodule path '%s', but it did not contain %s. Direct fetching "
@@ -22633,177 +23280,200 @@ msgstr ""
"Terambil di dalam jalur submodul '%s', tetapi itu tidak berisi %s. "
"Pengambilan langsung komit tersebut gagal."
-#: builtin/submodule--helper.c:2505 builtin/submodule--helper.c:2575
-#: builtin/submodule--helper.c:2813
-msgid "path into the working tree"
-msgstr "jalur ke dalam pohon kerja"
+#: builtin/submodule--helper.c:2481
+#, c-format
+msgid ""
+"Submodule (%s) branch configured to inherit branch from superproject, but "
+"the superproject is not on any branch"
+msgstr ""
+"Cabang submodul (%s) dikonfigurasikan untuk mewarisi cabang dari proyek "
+"super, tapi proyek super tidak pada cabang apapun"
-#: builtin/submodule--helper.c:2508 builtin/submodule--helper.c:2580
-msgid "path into the working tree, across nested submodule boundaries"
-msgstr "jalur ke dalam pohon kerja, melintasi perbatasan submodul bersarang"
+#: builtin/submodule--helper.c:2499
+#, c-format
+msgid "could not get a repository handle for submodule '%s'"
+msgstr "tidak dapat mendapat pegangan repositori untuk submodul '%s'"
-#: builtin/submodule--helper.c:2512 builtin/submodule--helper.c:2578
-msgid "rebase, merge, checkout or none"
-msgstr "dasarkan ulang, gabungkan, checkout atau tidak sama sekali"
+#: builtin/submodule--helper.c:2588
+#, c-format
+msgid "Unable to find current revision in submodule path '%s'"
+msgstr "Tidak dapat menemukan revisi saat ini pada jalur submodul '%s'"
-#: builtin/submodule--helper.c:2518
-msgid "create a shallow clone truncated to the specified number of revisions"
-msgstr "buat klon dangkal terpotong hingga sejumlah revisi yang disebutkan"
+#: builtin/submodule--helper.c:2599
+#, c-format
+msgid "Unable to fetch in submodule path '%s'"
+msgstr "Tidak dapat mengambil pada jalur submodul '%s'"
-#: builtin/submodule--helper.c:2521
-msgid "parallel jobs"
-msgstr "pekerjaan paralel"
+#: builtin/submodule--helper.c:2604
+#, c-format
+msgid "Unable to find %s revision in submodule path '%s'"
+msgstr "Tidak dapat menemukan revisi %s pada jalur submodul '%s'"
-#: builtin/submodule--helper.c:2523
-msgid "whether the initial clone should follow the shallow recommendation"
-msgstr "apakah klon awal seharusnya mengikuti rekomendasi dangkal"
+#: builtin/submodule--helper.c:2640
+#, c-format
+msgid "Failed to recurse into submodule path '%s'"
+msgstr "Gagal merekursi ke dalam submodul '%s'"
-#: builtin/submodule--helper.c:2524
-msgid "don't print cloning progress"
-msgstr "jangan cetak perkembangan pengkloningan"
+#: builtin/submodule--helper.c:2699
+msgid "force checkout updates"
+msgstr "paksa pembaruan checkout"
-#: builtin/submodule--helper.c:2535
-msgid "git submodule--helper update-clone [--prefix=<path>] [<path>...]"
-msgstr "git submodule--helper update-clone [--prefix=<jalur>] [<jalur>...]"
+#: builtin/submodule--helper.c:2701
+msgid "initialize uninitialized submodules before update"
+msgstr "inisialisasi submodul yang belum diinisialisasi sebelum pembaruan"
-#: builtin/submodule--helper.c:2548
-msgid "bad value for update parameter"
-msgstr "nilai jelek untuk parameter pembaruan"
+#: builtin/submodule--helper.c:2703
+msgid "use SHA-1 of submodule's remote tracking branch"
+msgstr "gunakan SHA-1 dari cabang pelacak remote submodul"
-#: builtin/submodule--helper.c:2566
-msgid "suppress output for update by rebase or merge"
+#: builtin/submodule--helper.c:2705
+msgid "traverse submodules recursively"
msgstr ""
-"sembunyikan keluaran untuk pembaruan oleh pendasaran ulang atau penggabungan"
-
-#: builtin/submodule--helper.c:2567
-msgid "force checkout updates"
-msgstr "paksa pembaruan checkout"
-#: builtin/submodule--helper.c:2569
+#: builtin/submodule--helper.c:2707
msgid "don't fetch new objects from the remote site"
msgstr "jangan ambil objek baru dari situs remote"
-#: builtin/submodule--helper.c:2571
-msgid "overrides update mode in case the repository is a fresh clone"
-msgstr "timpa mode pembaruan jika repositori adalah kloning segar"
+#: builtin/submodule--helper.c:2710 builtin/submodule--helper.c:2892
+msgid "path into the working tree"
+msgstr "jalur ke dalam pohon kerja"
-#: builtin/submodule--helper.c:2572
-msgid "depth for shallow fetch"
-msgstr "kedalaman untuk pengambilan dangkal"
+#: builtin/submodule--helper.c:2713
+msgid "path into the working tree, across nested submodule boundaries"
+msgstr "jalur ke dalam pohon kerja, melintasi perbatasan submodul bersarang"
-#: builtin/submodule--helper.c:2582
-msgid "sha1"
-msgstr "sha1"
+#: builtin/submodule--helper.c:2717
+msgid "rebase, merge, checkout or none"
+msgstr "dasarkan ulang, gabungkan, checkout atau tidak sama sekali"
-#: builtin/submodule--helper.c:2583
-msgid "SHA1 expected by superproject"
-msgstr "SHA1 diharapkan oleh proyek super"
+#: builtin/submodule--helper.c:2723
+msgid "create a shallow clone truncated to the specified number of revisions"
+msgstr "buat klon dangkal terpotong hingga sejumlah revisi yang disebutkan"
-#: builtin/submodule--helper.c:2585
-msgid "subsha1"
-msgstr "subsha1"
+#: builtin/submodule--helper.c:2726
+msgid "parallel jobs"
+msgstr "pekerjaan paralel"
-#: builtin/submodule--helper.c:2586
-msgid "SHA1 of submodule's HEAD"
-msgstr "SHA1 dari HEAD submodul"
+#: builtin/submodule--helper.c:2728
+msgid "whether the initial clone should follow the shallow recommendation"
+msgstr "apakah klon awal seharusnya mengikuti rekomendasi dangkal"
-#: builtin/submodule--helper.c:2592
-msgid "git submodule--helper run-update-procedure [<options>] <path>"
-msgstr "git submodule--helper run-update-procedure [<opsi>] <jalur>"
+#: builtin/submodule--helper.c:2729
+msgid "don't print cloning progress"
+msgstr "jangan cetak perkembangan pengkloningan"
-#: builtin/submodule--helper.c:2663
-#, c-format
+#: builtin/submodule--helper.c:2741
msgid ""
-"Submodule (%s) branch configured to inherit branch from superproject, but "
-"the superproject is not on any branch"
+"git submodule [--quiet] update [--init [--filter=<filter-spec>]] [--remote] "
+"[-N|--no-fetch] [-f|--force] [--checkout|--merge|--rebase] [--[no-]recommend-"
+"shallow] [--reference <repository>] [--recursive] [--[no-]single-branch] "
+"[--] [<path>...]"
msgstr ""
-"Cabang submodul (%s) dikonfigurasikan untuk mewarisi cabang dari proyek "
-"super, tapi proyek super tidak pada cabang apapun"
-#: builtin/submodule--helper.c:2781
-#, c-format
-msgid "could not get a repository handle for submodule '%s'"
-msgstr "tidak dapat mendapat pegangan repositori untuk submodul '%s'"
+#: builtin/submodule--helper.c:2767
+msgid "bad value for update parameter"
+msgstr "nilai jelek untuk parameter pembaruan"
-#: builtin/submodule--helper.c:2814
+#: builtin/submodule--helper.c:2893
msgid "recurse into submodules"
msgstr "rekursi ke dalam submodul"
-#: builtin/submodule--helper.c:2820
+#: builtin/submodule--helper.c:2899
msgid "git submodule--helper absorb-git-dirs [<options>] [<path>...]"
msgstr "git submodule--helper absorb-git-dirs [<opsi>] [<jalur>...]"
-#: builtin/submodule--helper.c:2876
+#: builtin/submodule--helper.c:2955
msgid "check if it is safe to write to the .gitmodules file"
msgstr "periksa apakah itu aman untuk menulis ke berkas .gitmodules"
-#: builtin/submodule--helper.c:2879
+#: builtin/submodule--helper.c:2958
msgid "unset the config in the .gitmodules file"
msgstr "batal setel konfigurasi dalam berkas .gitmodules"
-#: builtin/submodule--helper.c:2884
+#: builtin/submodule--helper.c:2963
msgid "git submodule--helper config <name> [<value>]"
msgstr "git submodule--helper config <nama> [<nilai>]"
-#: builtin/submodule--helper.c:2885
+#: builtin/submodule--helper.c:2964
msgid "git submodule--helper config --unset <name>"
msgstr "git submodule--helper config --unset <nama>"
-#: builtin/submodule--helper.c:2886
-msgid "git submodule--helper config --check-writeable"
-msgstr "git submodule--helper config --check-writeable"
-
-#: builtin/submodule--helper.c:2905 builtin/submodule--helper.c:3121
-#: builtin/submodule--helper.c:3277
+#: builtin/submodule--helper.c:2984 builtin/submodule--helper.c:3238
+#: builtin/submodule--helper.c:3395
msgid "please make sure that the .gitmodules file is in the working tree"
msgstr "mohom pastikan berkas .gitmodules di dalam pohon kerja"
-#: builtin/submodule--helper.c:2921
+#: builtin/submodule--helper.c:3000
msgid "suppress output for setting url of a submodule"
msgstr "sembunyikan keluaran penyetelan url submodule"
-#: builtin/submodule--helper.c:2925
+#: builtin/submodule--helper.c:3004
msgid "git submodule--helper set-url [--quiet] <path> <newurl>"
msgstr "git submodule--helper set-url [--quiet] <jalur> <url baru>"
-#: builtin/submodule--helper.c:2958
+#: builtin/submodule--helper.c:3037
msgid "set the default tracking branch to master"
msgstr "setel cabang pelacak asali ke master"
-#: builtin/submodule--helper.c:2960
+#: builtin/submodule--helper.c:3039
msgid "set the default tracking branch"
msgstr "setel cabang pelacak asali"
-#: builtin/submodule--helper.c:2964
+#: builtin/submodule--helper.c:3043
msgid "git submodule--helper set-branch [-q|--quiet] (-d|--default) <path>"
msgstr "git submodule--helper set-branch [-q|--quiet] (-d|--default) <jalur>"
-#: builtin/submodule--helper.c:2965
+#: builtin/submodule--helper.c:3044
msgid ""
"git submodule--helper set-branch [-q|--quiet] (-b|--branch) <branch> <path>"
msgstr ""
"git submodule--helper set-branch [-q|--quiet] (-b|--branch) <cabang> <jalur>"
-#: builtin/submodule--helper.c:2972
+#: builtin/submodule--helper.c:3051
msgid "--branch or --default required"
msgstr "--branch atau --default dibutuhkan"
-#: builtin/submodule--helper.c:3038
+#: builtin/submodule--helper.c:3072 builtin/submodule--helper.c:3375
+msgid "print only error messages"
+msgstr "hanya cetak pesan kesalahan"
+
+#: builtin/submodule--helper.c:3073
+msgid "force creation"
+msgstr "paksa pembuatan"
+
+#: builtin/submodule--helper.c:3081
+msgid "show whether the branch would be created"
+msgstr "perlihatkan apabila cabang akan dibuat"
+
+#: builtin/submodule--helper.c:3085
+msgid ""
+"git submodule--helper create-branch [-f|--force] [--create-reflog] [-q|--"
+"quiet] [-t|--track] [-n|--dry-run] <name> <start-oid> <start-name>"
+msgstr ""
+"git submodule--helper create-branch [-f|--force] [--create-reflog] [-q|--"
+"quiet] [-t|--track] [-n|--dry-run] <nama> <oid awal> <nama awal>"
+
+#: builtin/submodule--helper.c:3097
+#, c-format
+msgid "creating branch '%s'"
+msgstr "membuat cabang '%s'"
+
+#: builtin/submodule--helper.c:3155
#, c-format
msgid "Adding existing repo at '%s' to the index\n"
msgstr "Menambahkan repo yang sudah ada pada '%s' ke indeks\n"
-#: builtin/submodule--helper.c:3041
+#: builtin/submodule--helper.c:3158
#, c-format
msgid "'%s' already exists and is not a valid git repo"
msgstr "'%s' sudah ada dan bukan repo git valid"
-#: builtin/submodule--helper.c:3054
+#: builtin/submodule--helper.c:3171
#, c-format
msgid "A git directory for '%s' is found locally with remote(s):\n"
msgstr "Sebuah direktori git untuk '%s' ditemukan lokal dengan remote:\n"
-#: builtin/submodule--helper.c:3061
+#: builtin/submodule--helper.c:3178
#, c-format
msgid ""
"If you want to reuse this local git directory instead of cloning again from\n"
@@ -22820,84 +23490,80 @@ msgstr ""
"atau Anda tidak yakin apa maksudnya, pilih nama yang lain dengan opsi '--"
"name'."
-#: builtin/submodule--helper.c:3073
+#: builtin/submodule--helper.c:3190
#, c-format
msgid "Reactivating local git directory for submodule '%s'\n"
msgstr "Mengaktifkan ulang direktori git lokal untuk submodul '%s'\n"
-#: builtin/submodule--helper.c:3110
+#: builtin/submodule--helper.c:3227
#, c-format
msgid "unable to checkout submodule '%s'"
msgstr "Tidak dapat men-checkout submodul '%s'"
-#: builtin/submodule--helper.c:3149
+#: builtin/submodule--helper.c:3266
#, c-format
msgid "Failed to add submodule '%s'"
msgstr "Tidak dapat menambahkan submodul '%s'"
-#: builtin/submodule--helper.c:3153 builtin/submodule--helper.c:3158
-#: builtin/submodule--helper.c:3166
+#: builtin/submodule--helper.c:3270 builtin/submodule--helper.c:3275
+#: builtin/submodule--helper.c:3283
#, c-format
msgid "Failed to register submodule '%s'"
msgstr "Gagal mendaftarkan jalur submodul '%s'"
-#: builtin/submodule--helper.c:3222
+#: builtin/submodule--helper.c:3339
#, c-format
msgid "'%s' already exists in the index"
msgstr "'%s' sudah ada di dalam indeks"
-#: builtin/submodule--helper.c:3225
+#: builtin/submodule--helper.c:3342
#, c-format
msgid "'%s' already exists in the index and is not a submodule"
msgstr "'%s' sudah ada di dalam indeks dan bukan submodul"
-#: builtin/submodule--helper.c:3254
+#: builtin/submodule--helper.c:3372
msgid "branch of repository to add as submodule"
msgstr "cabang repositori untuk ditambahkan sebagai submodul"
-#: builtin/submodule--helper.c:3255
+#: builtin/submodule--helper.c:3373
msgid "allow adding an otherwise ignored submodule path"
msgstr "perbolehkan menambah jalur submodul yang diabaikan"
-#: builtin/submodule--helper.c:3257
-msgid "print only error messages"
-msgstr "hanya cetak pesan kesalahan"
-
-#: builtin/submodule--helper.c:3261
+#: builtin/submodule--helper.c:3379
msgid "borrow the objects from reference repositories"
msgstr "pinjam objek dari repositori referensi"
-#: builtin/submodule--helper.c:3263
+#: builtin/submodule--helper.c:3381
msgid ""
"sets the submodule’s name to the given string instead of defaulting to its "
"path"
msgstr ""
"setel nama submodul ke untai yang diberikan daripada diasalkan ke jalurnya"
-#: builtin/submodule--helper.c:3270
+#: builtin/submodule--helper.c:3388
msgid "git submodule--helper add [<options>] [--] <repository> [<path>]"
msgstr "git submodule--helper add [<opsi>] [--] <repositori> [<jalur>]"
-#: builtin/submodule--helper.c:3298
+#: builtin/submodule--helper.c:3416
msgid "Relative path can only be used from the toplevel of the working tree"
msgstr "Jalur relatif hanya dapat digunakan dari level atas dari pohon kerja"
-#: builtin/submodule--helper.c:3306
+#: builtin/submodule--helper.c:3425
#, c-format
msgid "repo URL: '%s' must be absolute or begin with ./|../"
msgstr "URL repo: '%s' harus absolut atau diawali dengan ./|../"
-#: builtin/submodule--helper.c:3341
+#: builtin/submodule--helper.c:3460
#, c-format
msgid "'%s' is not a valid submodule name"
msgstr "'%s' bukan nama submodul yang valid"
-#: builtin/submodule--helper.c:3405 git.c:452 git.c:726
+#: builtin/submodule--helper.c:3520 git.c:453 git.c:729
#, c-format
msgid "%s doesn't support --super-prefix"
msgstr "%s tidak mendukung --super-prefix"
-#: builtin/submodule--helper.c:3411
+#: builtin/submodule--helper.c:3526
#, c-format
msgid "'%s' is not a valid submodule--helper subcommand"
msgstr "'%s' bukan subperintah submodule--helper valid"
@@ -22930,7 +23596,7 @@ msgstr "alasan"
msgid "reason of the update"
msgstr "alasan pembaruan"
-#: builtin/tag.c:25
+#: builtin/tag.c:26
msgid ""
"git tag [-a | -s | -u <key-id>] [-f] [-m <msg> | -F <file>]\n"
" <tagname> [<head>]"
@@ -22938,11 +23604,11 @@ msgstr ""
"git tag [-a | -s | -u <id kunci>] [-f] [-m <pesan | -F <berkas>]\n"
" <nama tag> [<kepala>]"
-#: builtin/tag.c:27
+#: builtin/tag.c:28
msgid "git tag -d <tagname>..."
msgstr "git tag -d <nama tag>..."
-#: builtin/tag.c:28
+#: builtin/tag.c:29
msgid ""
"git tag -l [-n[<num>]] [--contains <commit>] [--no-contains <commit>] [--"
"points-at <object>]\n"
@@ -22954,21 +23620,21 @@ msgstr ""
" [--format=<format>] [--merged <komit>] [--no-merged <komit>] "
"[<pola>...]"
-#: builtin/tag.c:30
+#: builtin/tag.c:31
msgid "git tag -v [--format=<format>] <tagname>..."
msgstr "git tag -v [--format]<format>] <nama tag>..."
-#: builtin/tag.c:100
+#: builtin/tag.c:101
#, c-format
msgid "tag '%s' not found."
msgstr "tag '%s' tidak ditemukan."
-#: builtin/tag.c:135
+#: builtin/tag.c:136
#, c-format
msgid "Deleted tag '%s' (was %s)\n"
msgstr "Tag '%s' (yaitu %s) dihapus\n"
-#: builtin/tag.c:170
+#: builtin/tag.c:171
#, c-format
msgid ""
"\n"
@@ -22981,7 +23647,7 @@ msgstr ""
" %s\n"
"Baris yang diawali dengan '%c' akan diabaikan.\n"
-#: builtin/tag.c:174
+#: builtin/tag.c:175
#, c-format
msgid ""
"\n"
@@ -22996,11 +23662,11 @@ msgstr ""
"Baris yang diawali dengan '%c' akan disimpan; Anda dapat menghapus itu bila "
"Anda mau.\n"
-#: builtin/tag.c:240
+#: builtin/tag.c:241
msgid "unable to sign the tag"
msgstr "tidak dapat menandatangani tag"
-#: builtin/tag.c:258
+#: builtin/tag.c:259
#, c-format
msgid ""
"You have created a nested tag. The object referred to by your new tag is\n"
@@ -23014,118 +23680,122 @@ msgstr ""
"\n"
"\tgit tag -f %s %s^{}"
-#: builtin/tag.c:274
+#: builtin/tag.c:275
msgid "bad object type."
msgstr "tipe objek jelek."
-#: builtin/tag.c:325
+#: builtin/tag.c:326
msgid "no tag message?"
msgstr "tidak ada pesan tag?"
-#: builtin/tag.c:332
+#: builtin/tag.c:333
#, c-format
msgid "The tag message has been left in %s\n"
msgstr "Pesan tag dibiarkan di %s\n"
-#: builtin/tag.c:444
+#: builtin/tag.c:445
msgid "list tag names"
msgstr "daftarkan nama tag"
-#: builtin/tag.c:446
+#: builtin/tag.c:447
msgid "print <n> lines of each tag message"
msgstr "cetak <n> baris dari setiap pesan tag"
-#: builtin/tag.c:448
+#: builtin/tag.c:449
msgid "delete tags"
msgstr "hapus tag"
-#: builtin/tag.c:449
+#: builtin/tag.c:450
msgid "verify tags"
msgstr "verifikasi tag"
-#: builtin/tag.c:451
+#: builtin/tag.c:452
msgid "Tag creation options"
msgstr "Opsi pembuatan tag"
-#: builtin/tag.c:453
+#: builtin/tag.c:454
msgid "annotated tag, needs a message"
msgstr "tag bercatat, butuh sebuah pesan"
-#: builtin/tag.c:455
+#: builtin/tag.c:456
msgid "tag message"
msgstr "pesan tag"
-#: builtin/tag.c:457
+#: builtin/tag.c:458
msgid "force edit of tag message"
msgstr "paksa sunting pesan tag"
-#: builtin/tag.c:458
+#: builtin/tag.c:459
msgid "annotated and GPG-signed tag"
msgstr "tag bercatat dan bertandatangan GPG"
-#: builtin/tag.c:461
+#: builtin/tag.c:462
msgid "use another key to sign the tag"
msgstr "gunakan kunci yang lain untuk menandatangani tag"
-#: builtin/tag.c:462
+#: builtin/tag.c:463
msgid "replace the tag if exists"
msgstr "ganti tag jika ada"
-#: builtin/tag.c:463 builtin/update-ref.c:511
+#: builtin/tag.c:464 builtin/update-ref.c:511
msgid "create a reflog"
msgstr "buat log referensi"
-#: builtin/tag.c:465
+#: builtin/tag.c:466
msgid "Tag listing options"
msgstr "Opsi daftar tag"
-#: builtin/tag.c:466
+#: builtin/tag.c:467
msgid "show tag list in columns"
msgstr "perlihatkan daftar tag dalam kolom"
-#: builtin/tag.c:467 builtin/tag.c:469
+#: builtin/tag.c:468 builtin/tag.c:470
msgid "print only tags that contain the commit"
msgstr "hanya cetak tag yang berisi komit"
-#: builtin/tag.c:468 builtin/tag.c:470
+#: builtin/tag.c:469 builtin/tag.c:471
msgid "print only tags that don't contain the commit"
msgstr "hanya cetak tag yang tidak berisi komit"
-#: builtin/tag.c:471
+#: builtin/tag.c:472
msgid "print only tags that are merged"
msgstr "hanya cetak tag yang tergabung"
-#: builtin/tag.c:472
+#: builtin/tag.c:473
msgid "print only tags that are not merged"
msgstr "hanya cetak tag yang tak tergabung"
-#: builtin/tag.c:476
+#: builtin/tag.c:477
msgid "print only tags of the object"
msgstr "hanya cetak tag dari objek"
-#: builtin/tag.c:558
+#: builtin/tag.c:559
#, c-format
msgid "the '%s' option is only allowed in list mode"
msgstr "opsi '%s' hanya diperbolehkan dalam mode daftar"
-#: builtin/tag.c:597
+#: builtin/tag.c:598
#, c-format
msgid "'%s' is not a valid tag name."
msgstr "'%s' bukan nama tag yang valid."
-#: builtin/tag.c:602
+#: builtin/tag.c:603
#, c-format
msgid "tag '%s' already exists"
msgstr "tag '%s' sudah ada"
-#: builtin/tag.c:633
+#: builtin/tag.c:634
#, c-format
msgid "Updated tag '%s' (was %s)\n"
msgstr "Tag '%s' diperbarui (yaitu %s)\n"
+#: builtin/unpack-objects.c:95
+msgid "pack exceeds maximum allowed size"
+msgstr "paket melebihi ukuran maksimum yang diperbolehkan"
+
#: builtin/unpack-objects.c:504
msgid "Unpacking objects"
-msgstr ""
+msgstr "Membongkar objek"
#: builtin/update-index.c:84
#, c-format
@@ -23180,143 +23850,143 @@ msgstr " OK"
msgid "git update-index [<options>] [--] [<file>...]"
msgstr "git update-index [<opsi>] [--] [<berkas>...]"
-#: builtin/update-index.c:974
+#: builtin/update-index.c:993
msgid "continue refresh even when index needs update"
msgstr "lanjutkan penyegaran bahkan ketika indeks perlu diperbarui"
-#: builtin/update-index.c:977
+#: builtin/update-index.c:996
msgid "refresh: ignore submodules"
msgstr "refresh: abaikan submodul"
-#: builtin/update-index.c:980
+#: builtin/update-index.c:999
msgid "do not ignore new files"
msgstr "jangan abaikan berkas baru"
-#: builtin/update-index.c:982
+#: builtin/update-index.c:1001
msgid "let files replace directories and vice-versa"
msgstr "biarkan berkas menggantikan direktori dan sebaliknya"
-#: builtin/update-index.c:984
+#: builtin/update-index.c:1003
msgid "notice files missing from worktree"
msgstr "catat berkas hilang dari pohon kerja"
-#: builtin/update-index.c:986
+#: builtin/update-index.c:1005
msgid "refresh even if index contains unmerged entries"
msgstr "segarkan bahkan jika indeks berisi entri tak tergabung"
-#: builtin/update-index.c:989
+#: builtin/update-index.c:1008
msgid "refresh stat information"
msgstr "segarkan informasi stat"
-#: builtin/update-index.c:993
+#: builtin/update-index.c:1012
msgid "like --refresh, but ignore assume-unchanged setting"
msgstr "seperti --refresh, tapi abaikan setelan assume-unchanged"
-#: builtin/update-index.c:997
+#: builtin/update-index.c:1016
msgid "<mode>,<object>,<path>"
msgstr "<mode>,<objek>,<jalur>"
-#: builtin/update-index.c:998
+#: builtin/update-index.c:1017
msgid "add the specified entry to the index"
msgstr "tambahkan entri yang disebutkan ke indeks"
-#: builtin/update-index.c:1008
+#: builtin/update-index.c:1027
msgid "mark files as \"not changing\""
msgstr "tandai berkas sebagai \"not changing\""
-#: builtin/update-index.c:1011
+#: builtin/update-index.c:1030
msgid "clear assumed-unchanged bit"
msgstr "bersihkan bita assumed-unchanged"
-#: builtin/update-index.c:1014
+#: builtin/update-index.c:1033
msgid "mark files as \"index-only\""
msgstr "tandai berkas sebagai \"index-only\""
-#: builtin/update-index.c:1017
+#: builtin/update-index.c:1036
msgid "clear skip-worktree bit"
msgstr "bersihkan bita skip-worktree"
-#: builtin/update-index.c:1020
+#: builtin/update-index.c:1039
msgid "do not touch index-only entries"
msgstr "jangan sentuh entri index-only"
-#: builtin/update-index.c:1022
+#: builtin/update-index.c:1041
msgid "add to index only; do not add content to object database"
msgstr "hanya tambahkan ke indeks; jangan tambahkan konten ke basis data objek"
-#: builtin/update-index.c:1024
+#: builtin/update-index.c:1043
msgid "remove named paths even if present in worktree"
msgstr "hapus jalur bernama bahkan jika ada dalam pohon kerja"
-#: builtin/update-index.c:1026
+#: builtin/update-index.c:1045
msgid "with --stdin: input lines are terminated by null bytes"
msgstr "dengan --stdin: baris masukan diakhiri dengan bita null"
-#: builtin/update-index.c:1028
+#: builtin/update-index.c:1047
msgid "read list of paths to be updated from standard input"
msgstr "baca daftar jalur yang akan diperbarui dari masukan standar"
-#: builtin/update-index.c:1032
+#: builtin/update-index.c:1051
msgid "add entries from standard input to the index"
msgstr "tambahkan entri dari masukan standar ke indeks"
-#: builtin/update-index.c:1036
+#: builtin/update-index.c:1055
msgid "repopulate stages #2 and #3 for the listed paths"
msgstr "populasi ulang tahapan #2 dan #3 untuk jalur yang terdaftar"
-#: builtin/update-index.c:1040
+#: builtin/update-index.c:1059
msgid "only update entries that differ from HEAD"
msgstr "hanya perbarui entri yang berbeda dari HEAD"
-#: builtin/update-index.c:1044
+#: builtin/update-index.c:1063
msgid "ignore files missing from worktree"
msgstr "abaikan berkas yang hilang dari pohon kerja"
-#: builtin/update-index.c:1047
+#: builtin/update-index.c:1066
msgid "report actions to standard output"
msgstr "laporkan aksi ke keluaran standar"
-#: builtin/update-index.c:1049
+#: builtin/update-index.c:1068
msgid "(for porcelains) forget saved unresolved conflicts"
msgstr "(untuk porselen) lupakan konflik tak terselesaikan yang disimpan"
-#: builtin/update-index.c:1053
+#: builtin/update-index.c:1072
msgid "write index in this format"
msgstr "tulis indeks dalam format ini"
-#: builtin/update-index.c:1055
+#: builtin/update-index.c:1074
msgid "enable or disable split index"
msgstr "aktifkan atau nonaktifkan indeks terpisah"
-#: builtin/update-index.c:1057
+#: builtin/update-index.c:1076
msgid "enable/disable untracked cache"
msgstr "aktifkan/nonaktifkan tembolok tak terlacak"
-#: builtin/update-index.c:1059
+#: builtin/update-index.c:1078
msgid "test if the filesystem supports untracked cache"
msgstr "uji jika sistem berkas mendukung tembolok tak terlacak"
-#: builtin/update-index.c:1061
+#: builtin/update-index.c:1080
msgid "enable untracked cache without testing the filesystem"
msgstr "aktifkan tembolok tak terlacak tanpa menguji sistem berkas"
-#: builtin/update-index.c:1063
+#: builtin/update-index.c:1082
msgid "write out the index even if is not flagged as changed"
msgstr "tulis indeks bahkan jika tidak dianggap berubah"
-#: builtin/update-index.c:1065
+#: builtin/update-index.c:1084
msgid "enable or disable file system monitor"
msgstr "aktifkan atau nonaktifkan monitor sistem berkas"
-#: builtin/update-index.c:1067
+#: builtin/update-index.c:1086
msgid "mark files as fsmonitor valid"
msgstr "tandai berkas sebagai fsmonitor valid"
-#: builtin/update-index.c:1070
+#: builtin/update-index.c:1089
msgid "clear fsmonitor valid bit"
msgstr "bersihkan bita fsmonitor valid"
-#: builtin/update-index.c:1173
+#: builtin/update-index.c:1195
msgid ""
"core.splitIndex is set to false; remove or change it, if you really want to "
"enable split index"
@@ -23324,7 +23994,7 @@ msgstr ""
"core.splitIndex disetel ke false; hapus atau ubah, jika Anda benar-benar "
"ingin mengaktifkan indeks terpisah"
-#: builtin/update-index.c:1182
+#: builtin/update-index.c:1204
msgid ""
"core.splitIndex is set to true; remove or change it, if you really want to "
"disable split index"
@@ -23332,7 +24002,7 @@ msgstr ""
"core.splitIndex disetel ke true; hapus atau ubah, jika Anda benar-benar "
"ingin menonaktifkan indeks terpisah"
-#: builtin/update-index.c:1194
+#: builtin/update-index.c:1216
msgid ""
"core.untrackedCache is set to true; remove or change it, if you really want "
"to disable the untracked cache"
@@ -23340,11 +24010,11 @@ msgstr ""
"core.untrackedCache disetel ke true; hapus atau ubah, jika Anda benar-benar "
"ingin menonaktifkan tembolok tak terlacak"
-#: builtin/update-index.c:1198
+#: builtin/update-index.c:1220
msgid "Untracked cache disabled"
msgstr "Tembolok tak terlacak dinonaktifkan"
-#: builtin/update-index.c:1206
+#: builtin/update-index.c:1228
msgid ""
"core.untrackedCache is set to false; remove or change it, if you really want "
"to enable the untracked cache"
@@ -23352,29 +24022,29 @@ msgstr ""
"core.untrackedCache disetel ke false; hapus atau ubah, jika Anda benar-benar "
"ingin mengaktifkan tembolok tak terlacak"
-#: builtin/update-index.c:1210
+#: builtin/update-index.c:1232
#, c-format
msgid "Untracked cache enabled for '%s'"
msgstr "Tembolok tak terlacak diaktifkan untuk '%s'"
-#: builtin/update-index.c:1218
+#: builtin/update-index.c:1241
msgid "core.fsmonitor is unset; set it if you really want to enable fsmonitor"
msgstr ""
"core.fsmonitor tak disetel; setel jika Anda benar-benar ingin mengaktifkan "
"fsmonitor"
-#: builtin/update-index.c:1222
+#: builtin/update-index.c:1246
msgid "fsmonitor enabled"
msgstr "fsmonitor diaktifkan"
-#: builtin/update-index.c:1225
+#: builtin/update-index.c:1250
msgid ""
"core.fsmonitor is set; remove it if you really want to disable fsmonitor"
msgstr ""
"core.fsmonitor disetel; hapus jika Anda benar-benar ingin menonaktifkan "
"fsmonitor"
-#: builtin/update-index.c:1229
+#: builtin/update-index.c:1254
msgid "fsmonitor disabled"
msgstr "fsmonitor dinonaktifkan"
@@ -23407,10 +24077,6 @@ msgstr "stdin punya argumen yang diakhiri dengan NUL"
msgid "read updates from stdin"
msgstr "baca pembaruan dari masukan standar"
-#: builtin/update-server-info.c:7
-msgid "git update-server-info [--force]"
-msgstr ""
-
#: builtin/update-server-info.c:15
msgid "update the info files from scratch"
msgstr ""
@@ -23469,258 +24135,300 @@ msgstr "cetak isi tag"
#: builtin/worktree.c:19
msgid "git worktree add [<options>] <path> [<commit-ish>]"
-msgstr ""
+msgstr "git worktree add [<opsi>] <jalur> [<mirip komit>]"
#: builtin/worktree.c:20
msgid "git worktree list [<options>]"
-msgstr ""
+msgstr "git worktree list [<opsi>]"
#: builtin/worktree.c:21
msgid "git worktree lock [<options>] <path>"
-msgstr ""
+msgstr "git worktree lock [<opsi>] <jalur>"
#: builtin/worktree.c:22
msgid "git worktree move <worktree> <new-path>"
-msgstr ""
+msgstr "git worktree move <pohon kerja> <jalur baru>"
#: builtin/worktree.c:23
msgid "git worktree prune [<options>]"
-msgstr ""
+msgstr "git worktree prune [<opsi>]"
#: builtin/worktree.c:24
msgid "git worktree remove [<options>] <worktree>"
-msgstr ""
+msgstr "git worktree remove [<opsi>] <pohon kerja>"
#: builtin/worktree.c:25
+msgid "git worktree repair [<path>...]"
+msgstr "git worktree repair [<jalur>...]"
+
+#: builtin/worktree.c:26
msgid "git worktree unlock <path>"
-msgstr ""
+msgstr "git worktree unlock <jalur>"
-#: builtin/worktree.c:75
+#: builtin/worktree.c:76
#, c-format
msgid "Removing %s/%s: %s"
-msgstr ""
+msgstr "Menghapus %s/%s: %s"
-#: builtin/worktree.c:148
+#: builtin/worktree.c:149
msgid "report pruned working trees"
-msgstr ""
+msgstr "laporkan pohon kerja terpangkas"
-#: builtin/worktree.c:150
+#: builtin/worktree.c:151
msgid "expire working trees older than <time>"
-msgstr ""
+msgstr "kadaluarsakan pohon kerja yang lebih tua dari <waktu>"
-#: builtin/worktree.c:220
+#: builtin/worktree.c:221
#, c-format
msgid "'%s' already exists"
-msgstr ""
+msgstr "'%s' sudah ada"
-#: builtin/worktree.c:229
+#: builtin/worktree.c:230
#, c-format
msgid "unusable worktree destination '%s'"
-msgstr ""
+msgstr "tujuan pohon kerja '%s' tidak dapat diguanakan"
-#: builtin/worktree.c:234
+#: builtin/worktree.c:235
#, c-format
msgid ""
"'%s' is a missing but locked worktree;\n"
"use '%s -f -f' to override, or 'unlock' and 'prune' or 'remove' to clear"
msgstr ""
+"'%s' adalah pohon kerja hilang tapi terkunci;\n"
+"gunakan '%s -f -f' untuk menimpa, atau 'unlock' dan 'prune' atau 'remove' "
+"untuk membersihkan"
-#: builtin/worktree.c:236
+#: builtin/worktree.c:237
#, c-format
msgid ""
"'%s' is a missing but already registered worktree;\n"
"use '%s -f' to override, or 'prune' or 'remove' to clear"
msgstr ""
+"'%s' adalah pohon kerja hilang tapi telah didaftarkan;\n"
+"gunakan '%s -f' untuk menimpa, atau 'prune' atau 'remove' untuk membersihkan"
-#: builtin/worktree.c:287
+#: builtin/worktree.c:248
#, c-format
-msgid "could not create directory of '%s'"
+msgid "failed to copy '%s' to '%s'; sparse-checkout may not work correctly"
msgstr ""
+"gagal menyalin '%s' ke '%s'; checkout tipis mungkin tidak bekerja dengan baik"
+
+#: builtin/worktree.c:268
+#, c-format
+msgid "failed to copy worktree config from '%s' to '%s'"
+msgstr "Gagal menyalin konfigurasi pohon kerja dari '%s' ke '%s'"
+
+#: builtin/worktree.c:280 builtin/worktree.c:285
+#, c-format
+msgid "failed to unset '%s' in '%s'"
+msgstr "gagal menyetel balik '%s' di '%s'"
+
+#: builtin/worktree.c:356
+#, c-format
+msgid "could not create directory of '%s'"
+msgstr "tidak dapat membuat direktori '%s'"
-#: builtin/worktree.c:309
+#: builtin/worktree.c:378
msgid "initializing"
-msgstr ""
+msgstr "menginisialisasi"
-#: builtin/worktree.c:420 builtin/worktree.c:426
+#: builtin/worktree.c:492 builtin/worktree.c:498
#, c-format
msgid "Preparing worktree (new branch '%s')"
-msgstr ""
+msgstr "Menyiapkan pohon kerja (cabang baru '%s')"
-#: builtin/worktree.c:422
+#: builtin/worktree.c:494
#, c-format
msgid "Preparing worktree (resetting branch '%s'; was at %s)"
msgstr ""
+"Menyiapkan pohon kerja (menyetel ulang cabang '%s'; sebelumnya pada %s)"
-#: builtin/worktree.c:431
+#: builtin/worktree.c:503
#, c-format
msgid "Preparing worktree (checking out '%s')"
-msgstr ""
+msgstr "Menyiapkan pohon kerja (men-checkout '%s')"
-#: builtin/worktree.c:437
+#: builtin/worktree.c:509
#, c-format
msgid "Preparing worktree (detached HEAD %s)"
-msgstr ""
+msgstr "Menyiapkan pohon kerja (HEAD terpisah %s)"
-#: builtin/worktree.c:482
+#: builtin/worktree.c:554
msgid "checkout <branch> even if already checked out in other worktree"
msgstr ""
+"checkout <cabang> bahkan jika sudah di-checkout pada pohon kerja lainnya"
-#: builtin/worktree.c:485
+#: builtin/worktree.c:557
msgid "create a new branch"
-msgstr ""
+msgstr "buat sebuah cabang baru"
-#: builtin/worktree.c:487
+#: builtin/worktree.c:559
msgid "create or reset a branch"
-msgstr ""
+msgstr "buat atau setel ulang sebuah cabang"
-#: builtin/worktree.c:489
+#: builtin/worktree.c:561
msgid "populate the new working tree"
-msgstr ""
+msgstr "isikan pohon kerja baru"
-#: builtin/worktree.c:490
+#: builtin/worktree.c:562
msgid "keep the new working tree locked"
-msgstr ""
+msgstr "tetap pohon kerja baru terkunci"
-#: builtin/worktree.c:492 builtin/worktree.c:729
+#: builtin/worktree.c:564 builtin/worktree.c:809
msgid "reason for locking"
-msgstr ""
+msgstr "alasan penguncian"
-#: builtin/worktree.c:495
+#: builtin/worktree.c:567
msgid "set up tracking mode (see git-branch(1))"
-msgstr ""
+msgstr "pasang mode pelacakan (lihat git-branch(1))"
-#: builtin/worktree.c:498
+#: builtin/worktree.c:570
msgid "try to match the new branch name with a remote-tracking branch"
-msgstr ""
+msgstr "coba cocokkan nama cabang baru dengan sebuah cabang pelacakan remote"
-#: builtin/worktree.c:512
+#: builtin/worktree.c:584
msgid "added with --lock"
-msgstr ""
+msgstr "tambahkan dengan --lock"
-#: builtin/worktree.c:574
+#: builtin/worktree.c:646
msgid "--[no-]track can only be used if a new branch is created"
-msgstr ""
+msgstr "--[no-]track hanya dapat digunakan jika cabang baru dibuat"
-#: builtin/worktree.c:691
+#: builtin/worktree.c:766
msgid "show extended annotations and reasons, if available"
msgstr ""
-#: builtin/worktree.c:693
+#: builtin/worktree.c:768
msgid "add 'prunable' annotation to worktrees older than <time>"
msgstr ""
+"tambahkan anotasi 'dapat dipangkas' ke pohon kerja lebih tua dari <time>"
+
+#: builtin/worktree.c:770
+msgid "terminate records with a NUL character"
+msgstr "akhiri rekaman dengan karakter NUL"
-#: builtin/worktree.c:741 builtin/worktree.c:774 builtin/worktree.c:848
-#: builtin/worktree.c:972
+#: builtin/worktree.c:821 builtin/worktree.c:854 builtin/worktree.c:928
+#: builtin/worktree.c:1052
#, c-format
msgid "'%s' is not a working tree"
-msgstr ""
+msgstr "'%s' bukan sebuah pohon kerja"
-#: builtin/worktree.c:743 builtin/worktree.c:776
+#: builtin/worktree.c:823 builtin/worktree.c:856
msgid "The main working tree cannot be locked or unlocked"
-msgstr ""
+msgstr "Pohon kerja utama tidak dapat dikunci atau dibuka kunci"
-#: builtin/worktree.c:748
+#: builtin/worktree.c:828
#, c-format
msgid "'%s' is already locked, reason: %s"
-msgstr ""
+msgstr "'%s' sudah terkunci, alasan: %s"
-#: builtin/worktree.c:750
+#: builtin/worktree.c:830
#, c-format
msgid "'%s' is already locked"
-msgstr ""
+msgstr "'%s' sudah terkunci"
-#: builtin/worktree.c:778
+#: builtin/worktree.c:858
#, c-format
msgid "'%s' is not locked"
-msgstr ""
+msgstr "'%s' tidak terkunci"
-#: builtin/worktree.c:819
+#: builtin/worktree.c:899
msgid "working trees containing submodules cannot be moved or removed"
-msgstr ""
+msgstr "pohon kerja yang berisi submodul tidak dapat dipindahkan atau dihapus"
-#: builtin/worktree.c:827
+#: builtin/worktree.c:907
msgid "force move even if worktree is dirty or locked"
-msgstr ""
+msgstr "paksa pindah bahkan jika pohon kerja kotor atau terkunci"
-#: builtin/worktree.c:850 builtin/worktree.c:974
+#: builtin/worktree.c:930 builtin/worktree.c:1054
#, c-format
msgid "'%s' is a main working tree"
-msgstr ""
+msgstr "'%s' adalah pohon kerja utama"
-#: builtin/worktree.c:855
+#: builtin/worktree.c:935
#, c-format
msgid "could not figure out destination name from '%s'"
-msgstr ""
+msgstr "tidak dapat menebak nama tujuan dari '%s'"
-#: builtin/worktree.c:868
+#: builtin/worktree.c:948
#, c-format
msgid ""
"cannot move a locked working tree, lock reason: %s\n"
"use 'move -f -f' to override or unlock first"
msgstr ""
+"tidak dapat memindahkan pohon kerja terkunci, alasan penguncian: %s\n"
+"gunakan 'move -f -f' untuk memaksakan atau membuka kunci terlebih dahulu"
-#: builtin/worktree.c:870
+#: builtin/worktree.c:950
msgid ""
"cannot move a locked working tree;\n"
"use 'move -f -f' to override or unlock first"
msgstr ""
+"tidak dapat memindahkan pohon kerja terkunci;\n"
+"gunakan 'move -f -f' untuk memaksakan atau membuka kunci terlebih dahulu"
-#: builtin/worktree.c:873
+#: builtin/worktree.c:953
#, c-format
msgid "validation failed, cannot move working tree: %s"
-msgstr ""
+msgstr "validasi gagal, tidak dapat memindahkan pohon kerja: %s"
-#: builtin/worktree.c:878
+#: builtin/worktree.c:958
#, c-format
msgid "failed to move '%s' to '%s'"
-msgstr ""
+msgstr "gagal memindahkan '%s' ke '%s'"
-#: builtin/worktree.c:924
+#: builtin/worktree.c:1004
#, c-format
msgid "failed to run 'git status' on '%s'"
-msgstr ""
+msgstr "tidak dapat menjalankan 'git status' pada '%s'"
-#: builtin/worktree.c:928
+#: builtin/worktree.c:1008
#, c-format
msgid "'%s' contains modified or untracked files, use --force to delete it"
msgstr ""
+"'%s' berisi berkas termodifikasi atau tak terlacak, gunakan --force untuk "
+"menghapus"
-#: builtin/worktree.c:933
+#: builtin/worktree.c:1013
#, c-format
msgid "failed to run 'git status' on '%s', code %d"
-msgstr ""
+msgstr "gagal menjalankan 'git status' pada '%s', kode %d"
-#: builtin/worktree.c:956
+#: builtin/worktree.c:1036
msgid "force removal even if worktree is dirty or locked"
-msgstr ""
+msgstr "paksa penghapusan bahkan jika pohon kerja kotor atau terkunci"
-#: builtin/worktree.c:979
+#: builtin/worktree.c:1059
#, c-format
msgid ""
"cannot remove a locked working tree, lock reason: %s\n"
"use 'remove -f -f' to override or unlock first"
msgstr ""
+"tidak dapat menghapus pohon kerja terkunci, alasan penguncian: %s\n"
+"gunakan 'remove -f -f' untuk memaksakan atau buka kunci terlebih dahulu"
-#: builtin/worktree.c:981
+#: builtin/worktree.c:1061
msgid ""
"cannot remove a locked working tree;\n"
"use 'remove -f -f' to override or unlock first"
msgstr ""
+"tidak dapat menghapus pohon kerja terkunci;\n"
+"gunakan 'remove -f -f' untuk memaksakan atau buka kunci terlebih dahulu"
-#: builtin/worktree.c:984
+#: builtin/worktree.c:1064
#, c-format
msgid "validation failed, cannot remove working tree: %s"
-msgstr ""
+msgstr "validasi gagal, tidak dapat menghapus pohon kerja: %s"
-#: builtin/worktree.c:1008
+#: builtin/worktree.c:1088
#, c-format
msgid "repair: %s: %s"
-msgstr ""
+msgstr "perbaikan: %s: %s"
-#: builtin/worktree.c:1011
+#: builtin/worktree.c:1091
#, c-format
msgid "error: %s: %s"
-msgstr ""
+msgstr "kesalahan: %s: %s"
#: builtin/write-tree.c:15
msgid "git write-tree [--missing-ok] [--prefix=<prefix>/]"
@@ -23823,29 +24531,29 @@ msgstr "alias kosong untuk %s"
msgid "recursive alias: %s"
msgstr "alias rekursif: %s"
-#: git.c:479
+#: git.c:480
msgid "write failure on standard output"
msgstr "kegagalan menulis pada keluaran standar"
-#: git.c:481
+#: git.c:482
msgid "unknown write failure on standard output"
msgstr "kegagal menulis tidak diketahui pada keluaran standar"
-#: git.c:483
+#: git.c:484
msgid "close failed on standard output"
msgstr "penutupan gagal pada keluaran standar"
-#: git.c:835
+#: git.c:838
#, c-format
msgid "alias loop detected: expansion of '%s' does not terminate:%s"
msgstr "putaran alias terdeteksi: perluasan '%s' tidak berhenti:%s"
-#: git.c:885
+#: git.c:888
#, c-format
msgid "cannot handle %s as a builtin"
msgstr "tidak dapat menangani %s sebagai bawaan"
-#: git.c:898
+#: git.c:901
#, c-format
msgid ""
"usage: %s\n"
@@ -23854,12 +24562,12 @@ msgstr ""
"penggunaan: %s\n"
"\n"
-#: git.c:918
+#: git.c:921
#, c-format
msgid "expansion of alias '%s' failed; '%s' is not a git command\n"
msgstr "perluasan alias '%s' gagal; '%s' bukan sebuah perintah git\n"
-#: git.c:930
+#: git.c:933
#, c-format
msgid "failed to run command '%s': %s\n"
msgstr "gagal menjalankan perintah '%s': %s\n"
@@ -24008,139 +24716,139 @@ msgid ""
" redirect: %s"
msgstr ""
-#: remote-curl.c:183
+#: remote-curl.c:184
#, c-format
msgid "invalid quoting in push-option value: '%s'"
msgstr ""
-#: remote-curl.c:304
+#: remote-curl.c:308
#, c-format
msgid "%sinfo/refs not valid: is this a git repository?"
msgstr ""
-#: remote-curl.c:405
+#: remote-curl.c:409
msgid "invalid server response; expected service, got flush packet"
msgstr ""
-#: remote-curl.c:436
+#: remote-curl.c:440
#, c-format
msgid "invalid server response; got '%s'"
msgstr ""
-#: remote-curl.c:496
+#: remote-curl.c:500
#, c-format
msgid "repository '%s' not found"
msgstr ""
-#: remote-curl.c:500
+#: remote-curl.c:504
#, c-format
msgid "Authentication failed for '%s'"
msgstr ""
-#: remote-curl.c:504
+#: remote-curl.c:508
#, c-format
msgid "unable to access '%s' with http.pinnedPubkey configuration: %s"
msgstr ""
-#: remote-curl.c:508
+#: remote-curl.c:512
#, c-format
msgid "unable to access '%s': %s"
msgstr ""
-#: remote-curl.c:514
+#: remote-curl.c:518
#, c-format
msgid "redirecting to %s"
msgstr ""
-#: remote-curl.c:645
+#: remote-curl.c:649
msgid "shouldn't have EOF when not gentle on EOF"
msgstr ""
-#: remote-curl.c:657
+#: remote-curl.c:661
msgid "remote server sent unexpected response end packet"
msgstr ""
-#: remote-curl.c:726
+#: remote-curl.c:730
msgid "unable to rewind rpc post data - try increasing http.postBuffer"
msgstr ""
-#: remote-curl.c:755
+#: remote-curl.c:759
#, c-format
msgid "remote-curl: bad line length character: %.4s"
msgstr ""
-#: remote-curl.c:757
+#: remote-curl.c:761
msgid "remote-curl: unexpected response end packet"
msgstr ""
-#: remote-curl.c:833
+#: remote-curl.c:837
#, c-format
msgid "RPC failed; %s"
msgstr ""
-#: remote-curl.c:873
+#: remote-curl.c:877
msgid "cannot handle pushes this big"
msgstr ""
-#: remote-curl.c:986
+#: remote-curl.c:990
#, c-format
msgid "cannot deflate request; zlib deflate error %d"
msgstr ""
-#: remote-curl.c:990
+#: remote-curl.c:994
#, c-format
msgid "cannot deflate request; zlib end error %d"
msgstr ""
-#: remote-curl.c:1040
+#: remote-curl.c:1044
#, c-format
msgid "%d bytes of length header were received"
msgstr ""
-#: remote-curl.c:1042
+#: remote-curl.c:1046
#, c-format
msgid "%d bytes of body are still expected"
msgstr ""
-#: remote-curl.c:1131
+#: remote-curl.c:1135
msgid "dumb http transport does not support shallow capabilities"
msgstr ""
-#: remote-curl.c:1146
+#: remote-curl.c:1150
msgid "fetch failed."
msgstr ""
-#: remote-curl.c:1192
+#: remote-curl.c:1198
msgid "cannot fetch by sha1 over smart http"
msgstr ""
-#: remote-curl.c:1236 remote-curl.c:1242
+#: remote-curl.c:1242 remote-curl.c:1248
#, c-format
msgid "protocol error: expected sha/ref, got '%s'"
msgstr ""
-#: remote-curl.c:1254 remote-curl.c:1372
+#: remote-curl.c:1260 remote-curl.c:1378
#, c-format
msgid "http transport does not support %s"
msgstr ""
-#: remote-curl.c:1290
+#: remote-curl.c:1296
msgid "git-http-push failed"
msgstr ""
-#: remote-curl.c:1478
+#: remote-curl.c:1485
msgid "remote-curl: usage: git remote-curl <remote> [<url>]"
msgstr ""
-#: remote-curl.c:1510
+#: remote-curl.c:1517
msgid "remote-curl: error reading command stream from git"
msgstr ""
-#: remote-curl.c:1517
+#: remote-curl.c:1524
msgid "remote-curl: fetch attempted without a local repo"
msgstr ""
-#: remote-curl.c:1558
+#: remote-curl.c:1565
#, c-format
msgid "remote-curl: unknown command '%s' from git"
msgstr ""
@@ -24153,158 +24861,171 @@ msgstr ""
msgid "could not find enlistment root"
msgstr ""
-#: contrib/scalar/scalar.c:89 contrib/scalar/scalar.c:351
-#: contrib/scalar/scalar.c:436 contrib/scalar/scalar.c:579
+#: contrib/scalar/scalar.c:89 contrib/scalar/scalar.c:350
+#: contrib/scalar/scalar.c:435 contrib/scalar/scalar.c:578
#, c-format
msgid "could not switch to '%s'"
msgstr ""
-#: contrib/scalar/scalar.c:180
+#: contrib/scalar/scalar.c:179
#, c-format
msgid "could not configure %s=%s"
msgstr ""
-#: contrib/scalar/scalar.c:198
+#: contrib/scalar/scalar.c:197
msgid "could not configure log.excludeDecoration"
msgstr ""
-#: contrib/scalar/scalar.c:219
+#: contrib/scalar/scalar.c:218
msgid "Scalar enlistments require a worktree"
msgstr ""
-#: contrib/scalar/scalar.c:311
+#: contrib/scalar/scalar.c:310
#, c-format
msgid "remote HEAD is not a branch: '%.*s'"
msgstr ""
-#: contrib/scalar/scalar.c:317
+#: contrib/scalar/scalar.c:316
msgid "failed to get default branch name from remote; using local default"
msgstr ""
-#: contrib/scalar/scalar.c:330
+#: contrib/scalar/scalar.c:329
msgid "failed to get default branch name"
msgstr ""
-#: contrib/scalar/scalar.c:341
+#: contrib/scalar/scalar.c:340
msgid "failed to unregister repository"
msgstr ""
-#: contrib/scalar/scalar.c:356
+#: contrib/scalar/scalar.c:355
msgid "failed to delete enlistment directory"
msgstr ""
-#: contrib/scalar/scalar.c:376
+#: contrib/scalar/scalar.c:375
msgid "branch to checkout after clone"
msgstr ""
-#: contrib/scalar/scalar.c:378
+#: contrib/scalar/scalar.c:377
msgid "when cloning, create full working directory"
msgstr ""
-#: contrib/scalar/scalar.c:380
+#: contrib/scalar/scalar.c:379
msgid "only download metadata for the branch that will be checked out"
msgstr ""
-#: contrib/scalar/scalar.c:385
+#: contrib/scalar/scalar.c:384
msgid "scalar clone [<options>] [--] <repo> [<dir>]"
msgstr ""
-#: contrib/scalar/scalar.c:410
+#: contrib/scalar/scalar.c:409
#, c-format
msgid "cannot deduce worktree name from '%s'"
msgstr ""
-#: contrib/scalar/scalar.c:419
+#: contrib/scalar/scalar.c:418
#, c-format
msgid "directory '%s' exists already"
msgstr ""
-#: contrib/scalar/scalar.c:446
+#: contrib/scalar/scalar.c:445
#, c-format
msgid "failed to get default branch for '%s'"
msgstr ""
-#: contrib/scalar/scalar.c:457
+#: contrib/scalar/scalar.c:456
#, c-format
msgid "could not configure remote in '%s'"
msgstr ""
-#: contrib/scalar/scalar.c:466
+#: contrib/scalar/scalar.c:465
#, c-format
msgid "could not configure '%s'"
msgstr ""
-#: contrib/scalar/scalar.c:469
+#: contrib/scalar/scalar.c:468
msgid "partial clone failed; attempting full clone"
msgstr ""
-#: contrib/scalar/scalar.c:473
+#: contrib/scalar/scalar.c:472
msgid "could not configure for full clone"
msgstr ""
-#: contrib/scalar/scalar.c:505
+#: contrib/scalar/scalar.c:504
msgid "`scalar list` does not take arguments"
msgstr ""
-#: contrib/scalar/scalar.c:518
+#: contrib/scalar/scalar.c:517
msgid "scalar register [<enlistment>]"
msgstr ""
-#: contrib/scalar/scalar.c:545
+#: contrib/scalar/scalar.c:544
msgid "reconfigure all registered enlistments"
msgstr ""
-#: contrib/scalar/scalar.c:549
+#: contrib/scalar/scalar.c:548
msgid "scalar reconfigure [--all | <enlistment>]"
msgstr ""
-#: contrib/scalar/scalar.c:567
+#: contrib/scalar/scalar.c:566
msgid "--all or <enlistment>, but not both"
msgstr ""
-#: contrib/scalar/scalar.c:582
+#: contrib/scalar/scalar.c:581
#, c-format
msgid "git repository gone in '%s'"
msgstr ""
-#: contrib/scalar/scalar.c:622
+#: contrib/scalar/scalar.c:621
msgid ""
"scalar run <task> [<enlistment>]\n"
"Tasks:\n"
msgstr ""
-#: contrib/scalar/scalar.c:640
+#: contrib/scalar/scalar.c:639
#, c-format
msgid "no such task: '%s'"
msgstr ""
-#: contrib/scalar/scalar.c:690
+#: contrib/scalar/scalar.c:689
msgid "scalar unregister [<enlistment>]"
msgstr ""
-#: contrib/scalar/scalar.c:737
+#: contrib/scalar/scalar.c:736
msgid "scalar delete <enlistment>"
msgstr ""
-#: contrib/scalar/scalar.c:752
+#: contrib/scalar/scalar.c:751
msgid "refusing to delete current working directory"
msgstr ""
-#: contrib/scalar/scalar.c:767
+#: contrib/scalar/scalar.c:766
msgid "include Git version"
msgstr ""
-#: contrib/scalar/scalar.c:769
+#: contrib/scalar/scalar.c:768
msgid "include Git's build options"
msgstr ""
-#: contrib/scalar/scalar.c:773
+#: contrib/scalar/scalar.c:772
msgid "scalar verbose [-v | --verbose] [--build-options]"
msgstr ""
+#: contrib/scalar/scalar.c:813
+msgid "-C requires a <directory>"
+msgstr ""
+
+#: contrib/scalar/scalar.c:815
+#, c-format
+msgid "could not change to '%s'"
+msgstr ""
+
#: contrib/scalar/scalar.c:821
+msgid "-c requires a <key>=<value> argument"
+msgstr ""
+
+#: contrib/scalar/scalar.c:839
msgid ""
-"scalar <command> [<options>]\n"
+"scalar [-C <directory>] [-c <key>=<value>] <command> [<options>]\n"
"\n"
"Commands:\n"
msgstr ""
@@ -24317,43 +25038,43 @@ msgstr ""
msgid "no libc information available\n"
msgstr ""
-#: list-objects-filter-options.h:94
+#: list-objects-filter-options.h:126
msgid "args"
msgstr ""
-#: list-objects-filter-options.h:95
+#: list-objects-filter-options.h:127
msgid "object filtering"
msgstr ""
-#: parse-options.h:183
+#: parse-options.h:188
msgid "expiry-date"
msgstr ""
-#: parse-options.h:197
+#: parse-options.h:202
msgid "no-op (backward compatibility)"
msgstr ""
-#: parse-options.h:310
+#: parse-options.h:341
msgid "be more verbose"
msgstr ""
-#: parse-options.h:312
+#: parse-options.h:343
msgid "be more quiet"
msgstr ""
-#: parse-options.h:318
+#: parse-options.h:349
msgid "use <n> digits to display object names"
msgstr ""
-#: parse-options.h:337
+#: parse-options.h:368
msgid "how to strip spaces and #comments from message"
msgstr ""
-#: parse-options.h:338
+#: parse-options.h:369
msgid "read pathspec from file"
msgstr ""
-#: parse-options.h:339
+#: parse-options.h:370
msgid ""
"with --pathspec-from-file, pathspec elements are separated with NUL character"
msgstr ""
@@ -24603,446 +25324,450 @@ msgid "Display help information about Git"
msgstr ""
#: command-list.h:108
-msgid "Server side implementation of Git over HTTP"
+msgid "Run git hooks"
msgstr ""
#: command-list.h:109
-msgid "Download from a remote Git repository via HTTP"
+msgid "Server side implementation of Git over HTTP"
msgstr ""
#: command-list.h:110
-msgid "Push objects over HTTP/DAV to another repository"
+msgid "Download from a remote Git repository via HTTP"
msgstr ""
#: command-list.h:111
-msgid "Send a collection of patches from stdin to an IMAP folder"
+msgid "Push objects over HTTP/DAV to another repository"
msgstr ""
#: command-list.h:112
-msgid "Build pack index file for an existing packed archive"
+msgid "Send a collection of patches from stdin to an IMAP folder"
msgstr ""
#: command-list.h:113
-msgid "Create an empty Git repository or reinitialize an existing one"
+msgid "Build pack index file for an existing packed archive"
msgstr ""
#: command-list.h:114
-msgid "Instantly browse your working repository in gitweb"
+msgid "Create an empty Git repository or reinitialize an existing one"
msgstr ""
#: command-list.h:115
-msgid "Add or parse structured information in commit messages"
+msgid "Instantly browse your working repository in gitweb"
msgstr ""
#: command-list.h:116
-msgid "Show commit logs"
+msgid "Add or parse structured information in commit messages"
msgstr ""
#: command-list.h:117
-msgid "Show information about files in the index and the working tree"
+msgid "Show commit logs"
msgstr ""
#: command-list.h:118
-msgid "List references in a remote repository"
+msgid "Show information about files in the index and the working tree"
msgstr ""
#: command-list.h:119
-msgid "List the contents of a tree object"
+msgid "List references in a remote repository"
msgstr ""
#: command-list.h:120
-msgid "Extracts patch and authorship from a single e-mail message"
+msgid "List the contents of a tree object"
msgstr ""
#: command-list.h:121
-msgid "Simple UNIX mbox splitter program"
+msgid "Extracts patch and authorship from a single e-mail message"
msgstr ""
#: command-list.h:122
-msgid "Run tasks to optimize Git repository data"
+msgid "Simple UNIX mbox splitter program"
msgstr ""
#: command-list.h:123
-msgid "Join two or more development histories together"
+msgid "Run tasks to optimize Git repository data"
msgstr ""
#: command-list.h:124
-msgid "Find as good common ancestors as possible for a merge"
+msgid "Join two or more development histories together"
msgstr ""
#: command-list.h:125
-msgid "Run a three-way file merge"
+msgid "Find as good common ancestors as possible for a merge"
msgstr ""
#: command-list.h:126
-msgid "Run a merge for files needing merging"
+msgid "Run a three-way file merge"
msgstr ""
#: command-list.h:127
-msgid "The standard helper program to use with git-merge-index"
+msgid "Run a merge for files needing merging"
msgstr ""
#: command-list.h:128
-msgid "Show three-way merge without touching index"
+msgid "The standard helper program to use with git-merge-index"
msgstr ""
#: command-list.h:129
-msgid "Run merge conflict resolution tools to resolve merge conflicts"
+msgid "Show three-way merge without touching index"
msgstr ""
#: command-list.h:130
-msgid "Creates a tag object with extra validation"
+msgid "Run merge conflict resolution tools to resolve merge conflicts"
msgstr ""
#: command-list.h:131
-msgid "Build a tree-object from ls-tree formatted text"
+msgid "Creates a tag object with extra validation"
msgstr ""
#: command-list.h:132
-msgid "Write and verify multi-pack-indexes"
+msgid "Build a tree-object from ls-tree formatted text"
msgstr ""
#: command-list.h:133
-msgid "Move or rename a file, a directory, or a symlink"
+msgid "Write and verify multi-pack-indexes"
msgstr ""
#: command-list.h:134
-msgid "Find symbolic names for given revs"
+msgid "Move or rename a file, a directory, or a symlink"
msgstr ""
#: command-list.h:135
-msgid "Add or inspect object notes"
+msgid "Find symbolic names for given revs"
msgstr ""
#: command-list.h:136
-msgid "Import from and submit to Perforce repositories"
+msgid "Add or inspect object notes"
msgstr ""
#: command-list.h:137
-msgid "Create a packed archive of objects"
+msgid "Import from and submit to Perforce repositories"
msgstr ""
#: command-list.h:138
-msgid "Find redundant pack files"
+msgid "Create a packed archive of objects"
msgstr ""
#: command-list.h:139
-msgid "Pack heads and tags for efficient repository access"
+msgid "Find redundant pack files"
msgstr ""
#: command-list.h:140
-msgid "Compute unique ID for a patch"
+msgid "Pack heads and tags for efficient repository access"
msgstr ""
#: command-list.h:141
-msgid "Prune all unreachable objects from the object database"
+msgid "Compute unique ID for a patch"
msgstr ""
#: command-list.h:142
-msgid "Remove extra objects that are already in pack files"
+msgid "Prune all unreachable objects from the object database"
msgstr ""
#: command-list.h:143
-msgid "Fetch from and integrate with another repository or a local branch"
+msgid "Remove extra objects that are already in pack files"
msgstr ""
#: command-list.h:144
-msgid "Update remote refs along with associated objects"
+msgid "Fetch from and integrate with another repository or a local branch"
msgstr ""
#: command-list.h:145
-msgid "Applies a quilt patchset onto the current branch"
+msgid "Update remote refs along with associated objects"
msgstr ""
#: command-list.h:146
-msgid "Compare two commit ranges (e.g. two versions of a branch)"
+msgid "Applies a quilt patchset onto the current branch"
msgstr ""
#: command-list.h:147
-msgid "Reads tree information into the index"
+msgid "Compare two commit ranges (e.g. two versions of a branch)"
msgstr ""
#: command-list.h:148
-msgid "Reapply commits on top of another base tip"
+msgid "Reads tree information into the index"
msgstr ""
#: command-list.h:149
-msgid "Receive what is pushed into the repository"
+msgid "Reapply commits on top of another base tip"
msgstr ""
#: command-list.h:150
-msgid "Manage reflog information"
+msgid "Receive what is pushed into the repository"
msgstr ""
#: command-list.h:151
-msgid "Manage set of tracked repositories"
+msgid "Manage reflog information"
msgstr ""
#: command-list.h:152
-msgid "Pack unpacked objects in a repository"
+msgid "Manage set of tracked repositories"
msgstr ""
#: command-list.h:153
-msgid "Create, list, delete refs to replace objects"
+msgid "Pack unpacked objects in a repository"
msgstr ""
#: command-list.h:154
-msgid "Generates a summary of pending changes"
+msgid "Create, list, delete refs to replace objects"
msgstr ""
#: command-list.h:155
-msgid "Reuse recorded resolution of conflicted merges"
+msgid "Generates a summary of pending changes"
msgstr ""
#: command-list.h:156
-msgid "Reset current HEAD to the specified state"
+msgid "Reuse recorded resolution of conflicted merges"
msgstr ""
#: command-list.h:157
-msgid "Restore working tree files"
+msgid "Reset current HEAD to the specified state"
msgstr ""
#: command-list.h:158
-msgid "Lists commit objects in reverse chronological order"
+msgid "Restore working tree files"
msgstr ""
#: command-list.h:159
-msgid "Pick out and massage parameters"
+msgid "Lists commit objects in reverse chronological order"
msgstr ""
#: command-list.h:160
-msgid "Revert some existing commits"
+msgid "Pick out and massage parameters"
msgstr ""
#: command-list.h:161
-msgid "Remove files from the working tree and from the index"
+msgid "Revert some existing commits"
msgstr ""
#: command-list.h:162
-msgid "Send a collection of patches as emails"
+msgid "Remove files from the working tree and from the index"
msgstr ""
#: command-list.h:163
-msgid "Push objects over Git protocol to another repository"
+msgid "Send a collection of patches as emails"
msgstr ""
#: command-list.h:164
-msgid "Git's i18n setup code for shell scripts"
+msgid "Push objects over Git protocol to another repository"
msgstr ""
#: command-list.h:165
-msgid "Common Git shell script setup code"
+msgid "Git's i18n setup code for shell scripts"
msgstr ""
#: command-list.h:166
-msgid "Restricted login shell for Git-only SSH access"
+msgid "Common Git shell script setup code"
msgstr ""
#: command-list.h:167
-msgid "Summarize 'git log' output"
+msgid "Restricted login shell for Git-only SSH access"
msgstr ""
#: command-list.h:168
-msgid "Show various types of objects"
+msgid "Summarize 'git log' output"
msgstr ""
#: command-list.h:169
-msgid "Show branches and their commits"
+msgid "Show various types of objects"
msgstr ""
#: command-list.h:170
-msgid "Show packed archive index"
+msgid "Show branches and their commits"
msgstr ""
#: command-list.h:171
-msgid "List references in a local repository"
+msgid "Show packed archive index"
msgstr ""
#: command-list.h:172
-msgid "Initialize and modify the sparse-checkout"
+msgid "List references in a local repository"
msgstr ""
#: command-list.h:173
-msgid "Add file contents to the staging area"
+msgid "Reduce your working tree to a subset of tracked files"
msgstr ""
#: command-list.h:174
-msgid "Stash the changes in a dirty working directory away"
+msgid "Add file contents to the staging area"
msgstr ""
#: command-list.h:175
-msgid "Show the working tree status"
+msgid "Stash the changes in a dirty working directory away"
msgstr ""
#: command-list.h:176
-msgid "Remove unnecessary whitespace"
+msgid "Show the working tree status"
msgstr ""
#: command-list.h:177
-msgid "Initialize, update or inspect submodules"
+msgid "Remove unnecessary whitespace"
msgstr ""
#: command-list.h:178
-msgid "Bidirectional operation between a Subversion repository and Git"
+msgid "Initialize, update or inspect submodules"
msgstr ""
#: command-list.h:179
-msgid "Switch branches"
+msgid "Bidirectional operation between a Subversion repository and Git"
msgstr ""
#: command-list.h:180
-msgid "Read, modify and delete symbolic refs"
+msgid "Switch branches"
msgstr ""
#: command-list.h:181
-msgid "Create, list, delete or verify a tag object signed with GPG"
+msgid "Read, modify and delete symbolic refs"
msgstr ""
#: command-list.h:182
-msgid "Creates a temporary file with a blob's contents"
+msgid "Create, list, delete or verify a tag object signed with GPG"
msgstr ""
#: command-list.h:183
-msgid "Unpack objects from a packed archive"
+msgid "Creates a temporary file with a blob's contents"
msgstr ""
#: command-list.h:184
-msgid "Register file contents in the working tree to the index"
+msgid "Unpack objects from a packed archive"
msgstr ""
#: command-list.h:185
-msgid "Update the object name stored in a ref safely"
+msgid "Register file contents in the working tree to the index"
msgstr ""
#: command-list.h:186
-msgid "Update auxiliary info file to help dumb servers"
+msgid "Update the object name stored in a ref safely"
msgstr ""
#: command-list.h:187
-msgid "Send archive back to git-archive"
+msgid "Update auxiliary info file to help dumb servers"
msgstr ""
#: command-list.h:188
-msgid "Send objects packed back to git-fetch-pack"
+msgid "Send archive back to git-archive"
msgstr ""
#: command-list.h:189
-msgid "Show a Git logical variable"
+msgid "Send objects packed back to git-fetch-pack"
msgstr ""
#: command-list.h:190
-msgid "Check the GPG signature of commits"
+msgid "Show a Git logical variable"
msgstr ""
#: command-list.h:191
-msgid "Validate packed Git archive files"
+msgid "Check the GPG signature of commits"
msgstr ""
#: command-list.h:192
-msgid "Check the GPG signature of tags"
+msgid "Validate packed Git archive files"
msgstr ""
#: command-list.h:193
-msgid "Show logs with difference each commit introduces"
+msgid "Check the GPG signature of tags"
msgstr ""
#: command-list.h:194
-msgid "Manage multiple working trees"
+msgid "Show logs with difference each commit introduces"
msgstr ""
#: command-list.h:195
-msgid "Create a tree object from the current index"
+msgid "Manage multiple working trees"
msgstr ""
#: command-list.h:196
-msgid "Defining attributes per path"
+msgid "Create a tree object from the current index"
msgstr ""
#: command-list.h:197
-msgid "Git command-line interface and conventions"
+msgid "Defining attributes per path"
msgstr ""
#: command-list.h:198
-msgid "A Git core tutorial for developers"
+msgid "Git command-line interface and conventions"
msgstr ""
#: command-list.h:199
-msgid "Providing usernames and passwords to Git"
+msgid "A Git core tutorial for developers"
msgstr ""
#: command-list.h:200
-msgid "Git for CVS users"
+msgid "Providing usernames and passwords to Git"
msgstr ""
#: command-list.h:201
-msgid "Tweaking diff output"
+msgid "Git for CVS users"
msgstr ""
#: command-list.h:202
-msgid "A useful minimum set of commands for Everyday Git"
+msgid "Tweaking diff output"
msgstr ""
#: command-list.h:203
-msgid "Frequently asked questions about using Git"
+msgid "A useful minimum set of commands for Everyday Git"
msgstr ""
#: command-list.h:204
-msgid "A Git Glossary"
+msgid "Frequently asked questions about using Git"
msgstr ""
#: command-list.h:205
-msgid "Hooks used by Git"
+msgid "A Git Glossary"
msgstr ""
#: command-list.h:206
-msgid "Specifies intentionally untracked files to ignore"
+msgid "Hooks used by Git"
msgstr ""
#: command-list.h:207
-msgid "The Git repository browser"
+msgid "Specifies intentionally untracked files to ignore"
msgstr ""
#: command-list.h:208
-msgid "Map author/committer names and/or E-Mail addresses"
+msgid "The Git repository browser"
msgstr ""
#: command-list.h:209
-msgid "Defining submodule properties"
+msgid "Map author/committer names and/or E-Mail addresses"
msgstr ""
#: command-list.h:210
-msgid "Git namespaces"
+msgid "Defining submodule properties"
msgstr ""
#: command-list.h:211
-msgid "Helper programs to interact with remote repositories"
+msgid "Git namespaces"
msgstr ""
#: command-list.h:212
-msgid "Git Repository Layout"
+msgid "Helper programs to interact with remote repositories"
msgstr ""
#: command-list.h:213
-msgid "Specifying revisions and ranges for Git"
+msgid "Git Repository Layout"
msgstr ""
#: command-list.h:214
-msgid "Mounting one repository inside another"
+msgid "Specifying revisions and ranges for Git"
msgstr ""
#: command-list.h:215
-msgid "A tutorial introduction to Git"
+msgid "Mounting one repository inside another"
msgstr ""
#: command-list.h:216
-msgid "A tutorial introduction to Git: part two"
+msgid "A tutorial introduction to Git"
msgstr ""
#: command-list.h:217
-msgid "Git web interface (web frontend to Git repositories)"
+msgid "A tutorial introduction to Git: part two"
msgstr ""
#: command-list.h:218
+msgid "Git web interface (web frontend to Git repositories)"
+msgstr ""
+
+#: command-list.h:219
msgid "An overview of recommended workflows with Git"
msgstr ""
@@ -25084,66 +25809,44 @@ msgstr ""
msgid "Simple merge did not work, trying automatic merge."
msgstr ""
-#: git-submodule.sh:401
-#, sh-format
-msgid "Unable to find current revision in submodule path '$displaypath'"
-msgstr ""
-
-#: git-submodule.sh:411
-#, sh-format
-msgid "Unable to fetch in submodule path '$sm_path'"
-msgstr ""
-
-#: git-submodule.sh:416
-#, sh-format
-msgid ""
-"Unable to find current ${remote_name}/${branch} revision in submodule path "
-"'$sm_path'"
-msgstr ""
-
-#: git-submodule.sh:464
-#, sh-format
-msgid "Failed to recurse into submodule path '$displaypath'"
-msgstr ""
-
#: git-sh-setup.sh:89 git-sh-setup.sh:94
#, sh-format
msgid "usage: $dashless $USAGE"
msgstr ""
-#: git-sh-setup.sh:183
+#: git-sh-setup.sh:182
#, sh-format
msgid "Cannot chdir to $cdup, the toplevel of the working tree"
msgstr ""
-#: git-sh-setup.sh:192 git-sh-setup.sh:199
+#: git-sh-setup.sh:191 git-sh-setup.sh:198
#, sh-format
msgid "fatal: $program_name cannot be used without a working tree."
msgstr ""
-#: git-sh-setup.sh:213
+#: git-sh-setup.sh:212
msgid "Cannot rewrite branches: You have unstaged changes."
msgstr ""
-#: git-sh-setup.sh:216
+#: git-sh-setup.sh:215
#, sh-format
msgid "Cannot $action: You have unstaged changes."
msgstr ""
-#: git-sh-setup.sh:227
+#: git-sh-setup.sh:226
#, sh-format
msgid "Cannot $action: Your index contains uncommitted changes."
msgstr ""
-#: git-sh-setup.sh:229
+#: git-sh-setup.sh:228
msgid "Additionally, your index contains uncommitted changes."
msgstr ""
-#: git-sh-setup.sh:349
+#: git-sh-setup.sh:348
msgid "You need to run this command from the toplevel of the working tree."
msgstr ""
-#: git-sh-setup.sh:354
+#: git-sh-setup.sh:353
msgid "Unable to determine absolute path of git directory"
msgstr ""
@@ -25755,23 +26458,23 @@ msgstr "tidak dapat mengirim pesan sebagai 7bit"
msgid "invalid transfer encoding"
msgstr "pengkodean transfer tidak valid"
-#: git-send-email.perl:2095
+#: git-send-email.perl:2100
#, perl-format
msgid ""
-"fatal: %s: rejected by sendemail-validate hook\n"
+"fatal: %s: rejected by %s hook\n"
"%s\n"
"warning: no patches were sent\n"
msgstr ""
-"fatal: %s: ditolak oleh kail sendemail-validate\n"
+"fatal: %s: ditolak oleh kail %s\n"
"%s\n"
"peringatan: tidak ada tambalan yang dikirimkan\n"
-#: git-send-email.perl:2105 git-send-email.perl:2158 git-send-email.perl:2168
+#: git-send-email.perl:2110 git-send-email.perl:2163 git-send-email.perl:2173
#, perl-format
msgid "unable to open %s: %s\n"
msgstr "tidak dapat membuka %s: %s\n"
-#: git-send-email.perl:2108
+#: git-send-email.perl:2113
#, perl-format
msgid ""
"fatal: %s:%d is longer than 998 characters\n"
@@ -25780,13 +26483,13 @@ msgstr ""
"fatal: %s:%d lebih panjang dari 998 karakter\n"
"peringatan: tidak ada tambalan yang dikirimkan\n"
-#: git-send-email.perl:2126
+#: git-send-email.perl:2131
#, perl-format
msgid "Skipping %s with backup suffix '%s'.\n"
msgstr "Melewati %s dengan akhiran cadangan '%s'.\n"
#. TRANSLATORS: please keep "[y|N]" as is.
-#: git-send-email.perl:2130
+#: git-send-email.perl:2135
#, perl-format
msgid "Do you really want to send %s? [y|N]: "
msgstr "Anda benar-benar ingin mengirim %s? [y|N]: "
diff --git a/po/pt_PT.po b/po/pt_PT.po
index 70e5c6d9c1..32142531bb 100644
--- a/po/pt_PT.po
+++ b/po/pt_PT.po
@@ -1,11 +1,14 @@
# Portugal's Portuguese translations for Git package.
-# Copyright (C) 2021 Daniel Santos <daniel@brilhante.top>
+# Copyright (C) 2020-2022 Daniel Santos <dacs.git@brilhante.top>
+# Copyright (C) 2016-2017 Vasco Almeida <vascomalmeida@sapo.pt>
+# Copyright (C) 2012 Marco Sousa <marcomsousa AT gmail.com>
# This file is distributed under the same license as the Git package.
# Contributors:
-# - Daniel Santos <daniel@brilhante.top>
+# - Daniel Santos <dacs.git@brilhante.top>
+#
# Past Contributors:
# - Marco Sousa <marcomsousa AT gmail.com>
-# - Vasco Almeida <vascomalmeida@sapo.pt>, 2016, 2017.
+# - Vasco Almeida <vascomalmeida@sapo.pt>
#
# Git glossary for Portuguese translators
#
@@ -13,23 +16,23 @@
# ---------------------------------+--------------------------------------
# 3-way merge | tri-junção
# abbreviate | abreviar
-# alternate object database | base dados de objetos alternativa
+# alternate object database | base dados de objetos alternativos
# amend | emendar
-# ancestor | antepassado
+# ancestor | antecessor
# annotated tag | etiqueta anotada
# archive | arquivo
# backing store | armazenamento-backup
# backward compatibility | retrocompatibilidade
-# bare repository | repositório nú
-# bisect | bisetar
-# blame | blame
+# bare repository | repositório nu
+# bisect | bisseção
+# blame | culpar
# blob object | objeto-blob
-# branch | ramo
+# branch | ramo
# bug | bug
-# bundle | conjunto
-# bypass | desviar
+# bundle | arquivo-pacote
+# bypass | contornar
# cache | cenário
-# chain | corrente
+# chain | série
# changeset | memória
# checkout | observar
# checksum | checksum
@@ -38,15 +41,15 @@
# clean | limpa
# clone | clone
# commit | memorizar
+# commit-graph | grafo-memória
# commit message | mensagem de memória
# commit object | objeto de memória
-# commit-ish (also committish) | mnemónica
+# commit-ish | mnemónica
# committer | memorizador
# conflict | conflito
-# core Git | núcleo-Git
# cover letter | carta de apresentação
# DAG | DAG
-# dangling object | objeto perdido
+# dangling object | objeto suspenso
# detached HEAD | HEAD desanexada
# directory | pasta
# dirty | suja
@@ -54,10 +57,11 @@
# fanout | fanout
# fast-forward | avanço
# fetch | buscar
-# file system | sistema de ficheiro
+# file system | sistema de ficheiros
# fixup | consertar
-# fork | fork
+# fork | forqueadura
# Git archive | repositório
+# gitdir | pasta-git
# gitfile | ficheiro-git
# grafts | enxertos
# hash | hash
@@ -74,8 +78,10 @@
# loose refs | refs soltas
# mark | marca
# master | master
-# merge | junção
+# merge | junção
# mergetag | etiqueta-junção
+# mirror repository | repositório-espelho
+# multi-pack | multi-pacote
# object | objeto
# object database | base dados de objeto
# object name | nome de objeto
@@ -109,15 +115,17 @@
# remote-tracking branch | ramo remoto de monitorização
# replace object | objeto-substituto
# replace ref | ref-substituto
-# replay | replay
+# replay | refazer
# repo | repo
# repository | repositório
# reset | restabelecer
# resolve | resolver
+# restore | restaurar
# revert | reverter
# revision | revisão
# rewind | rebobinar
# root commit | memória-raiz
+# scheduler | agendador
# SCM | SCM
# SHA-1 | SHA-1
# shallow repository | repositório superficial
@@ -143,6 +151,7 @@
# tree | árvore
# tree object | objeto-árvore
# tree-ish (also treeish) | arvoredo
+# unbundle | desarquivar
# unmerged | por juntar
# unpack | desempacotar
# unreachable object | objeto inalcançável
@@ -159,12 +168,13 @@
#
# English | Portuguese
# ---------------------------------+--------------------------------------
-# apply | submeter
+# apply | aplicar
# ahead | à frente
+# bad | inválido
+# batch | (em) lote
# bind | vincular
# broken | quebrado
# call | chamar
-# chain | série
# change | alteração
# clobber | encobrir
# config file | ficheiro config
@@ -174,15 +184,15 @@
# debug | depurar
# default | predefinido
# deflate | esvaziar
-# delete | apagar
+# delete | eliminar
# deprecated | obsoleto
-# dry-run | dry-run
+# dry-run | simulação
# edit | modificação
# embedded | embutido
# feature | feição
# fix | corrigir
# given | fornecido
-# handle | pega
+# handle | lidar
# in progress | em curso
# inflate | insuflar
# named | denominado
@@ -190,9 +200,13 @@
# not supported | insustentado
# mainline | principal
# mismatch | sem correspondência
+# offset | deslocamento
# overflow | transbordo
+# overwrite | sobrescrever
# parse | processar
# path | caminho
+# print | mostrar
+# recurse | recursar
# register | registar
# regular expression | expressão comum
# repack | reempacotar
@@ -209,264 +223,268 @@
# template | modelo
# timestamp | carimbo cronológico
# token | token
-# unset | desdefinir
+# unset | indefinir
# untrack | desmonitorizar
-#
+# usage: | uso:
+# whitespace | espaço-em-branco
+#
#
msgid ""
msgstr ""
"Project-Id-Version: Git\n"
"Report-Msgid-Bugs-To: Git Mailing List <git@vger.kernel.org>\n"
-"POT-Creation-Date: 2021-08-14 07:56+0800\n"
+"POT-Creation-Date: 2022-04-13 14:52+0800\n"
"PO-Revision-Date: 2020-10-14 11:43+0100\n"
-"Last-Translator: Daniel Santos <hello@brighterdan.com>\n"
-"Language-Team: Git L10N Português <https://github.com/git-l10n-pt-PT/>\n"
+"Last-Translator: Daniel Santos <dacs.git@brilhante.top>\n"
+"Language-Team: Git L10N Português <https://codeberg.org/git-pt/Git-PO-pt_PT/"
+">\n"
"Language: pt-PT\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: add-interactive.c:376
+#: add-interactive.c:382
#, c-format
msgid "Huh (%s)?"
msgstr "O quê (%s)?"
-#: add-interactive.c:529 add-interactive.c:830 reset.c:64 sequencer.c:3493
-#: sequencer.c:3964 sequencer.c:4119 builtin/rebase.c:1528
-#: builtin/rebase.c:1953
+#: add-interactive.c:535 add-interactive.c:836 reset.c:136 sequencer.c:3505
+#: sequencer.c:3970 sequencer.c:4127 builtin/rebase.c:1261
+#: builtin/rebase.c:1671
msgid "could not read index"
-msgstr "incapaz de ler index"
+msgstr "incapaz de ler cenário"
-#: add-interactive.c:584 git-add--interactive.perl:269
+#: add-interactive.c:590 git-add--interactive.perl:269
#: git-add--interactive.perl:294
msgid "binary"
msgstr "binário"
-#: add-interactive.c:642 git-add--interactive.perl:278
+#: add-interactive.c:648 git-add--interactive.perl:278
#: git-add--interactive.perl:332
msgid "nothing"
msgstr "nada"
-#: add-interactive.c:643 git-add--interactive.perl:314
+#: add-interactive.c:649 git-add--interactive.perl:314
#: git-add--interactive.perl:329
msgid "unchanged"
msgstr "inalterado"
-#: add-interactive.c:680 git-add--interactive.perl:641
+#: add-interactive.c:686 git-add--interactive.perl:641
msgid "Update"
msgstr "Atualizar"
-#: add-interactive.c:697 add-interactive.c:885
+#: add-interactive.c:703 add-interactive.c:891
#, c-format
msgid "could not stage '%s'"
-msgstr "incapaz de stage '%s'"
+msgstr "incapaz de encenar '%s'"
-#: add-interactive.c:703 add-interactive.c:892 reset.c:88 sequencer.c:3707
+#: add-interactive.c:709 add-interactive.c:898 reset.c:160 sequencer.c:3709
msgid "could not write index"
-msgstr "incapaz de escrever index"
+msgstr "incapaz de escrever cenário"
-#: add-interactive.c:706 git-add--interactive.perl:626
+#: add-interactive.c:712 git-add--interactive.perl:626
#, c-format, perl-format
msgid "updated %d path\n"
msgid_plural "updated %d paths\n"
msgstr[0] "actualizou %d path\n"
msgstr[1] "actualizou %d paths\n"
-#: add-interactive.c:724 git-add--interactive.perl:676
+#: add-interactive.c:730 git-add--interactive.perl:676
#, c-format, perl-format
msgid "note: %s is untracked now.\n"
-msgstr "nota: %s agora está por seguir.\n"
+msgstr "nota: %s ficou desmonitorizado.\n"
-#: add-interactive.c:729 apply.c:4127 builtin/checkout.c:298
-#: builtin/reset.c:145
+#: add-interactive.c:735 apply.c:4133 builtin/checkout.c:311
+#: builtin/reset.c:167
#, c-format
msgid "make_cache_entry failed for path '%s'"
-msgstr "make_cache_entry falhou para path '%s'"
+msgstr "make_cache_entry falhou para caminho '%s'"
-#: add-interactive.c:759 git-add--interactive.perl:653
+#: add-interactive.c:765 git-add--interactive.perl:653
msgid "Revert"
msgstr "Reverter"
-#: add-interactive.c:775
+#: add-interactive.c:781
msgid "Could not parse HEAD^{tree}"
msgstr "Incapaz de parse HEAD^{tree}"
-#: add-interactive.c:813 git-add--interactive.perl:629
+#: add-interactive.c:819 git-add--interactive.perl:629
#, c-format, perl-format
msgid "reverted %d path\n"
msgid_plural "reverted %d paths\n"
msgstr[0] "reverti %d path\n"
msgstr[1] "reverti %d paths\n"
-#: add-interactive.c:864 git-add--interactive.perl:693
+#: add-interactive.c:870 git-add--interactive.perl:693
#, c-format
msgid "No untracked files.\n"
-msgstr "Nenhuns ficheiros untracked.\n"
+msgstr "Nenhuns ficheiros desmonitorizados.\n"
-#: add-interactive.c:868 git-add--interactive.perl:687
+#: add-interactive.c:874 git-add--interactive.perl:687
msgid "Add untracked"
-msgstr "Adiciona untracked"
+msgstr "Adicionar desmonitorizados"
-#: add-interactive.c:895 git-add--interactive.perl:623
+#: add-interactive.c:901 git-add--interactive.perl:623
#, c-format, perl-format
msgid "added %d path\n"
msgid_plural "added %d paths\n"
msgstr[0] "adicionei %d path\n"
msgstr[1] "adicionei %d paths\n"
-#: add-interactive.c:925
+#: add-interactive.c:931
#, c-format
msgid "ignoring unmerged: %s"
msgstr "ignorando unmerged: %s"
-#: add-interactive.c:937 add-patch.c:1752 git-add--interactive.perl:1369
+#: add-interactive.c:943 add-patch.c:1758 git-add--interactive.perl:1371
#, c-format
msgid "Only binary files changed.\n"
-msgstr "Apenas ficheiros binários mudaram.\n"
+msgstr "Apenas alterados ficheiros binários.\n"
-#: add-interactive.c:939 add-patch.c:1750 git-add--interactive.perl:1371
+#: add-interactive.c:945 add-patch.c:1756 git-add--interactive.perl:1373
#, c-format
msgid "No changes.\n"
-msgstr "Sem modificação.\n"
+msgstr "Sem alterações.\n"
-#: add-interactive.c:943 git-add--interactive.perl:1379
+#: add-interactive.c:949 git-add--interactive.perl:1381
msgid "Patch update"
msgstr "Atualizar patch"
-#: add-interactive.c:982 git-add--interactive.perl:1792
+#: add-interactive.c:988 git-add--interactive.perl:1794
msgid "Review diff"
msgstr "Rever diff"
-#: add-interactive.c:1010
+#: add-interactive.c:1016
msgid "show paths with changes"
-msgstr "mostrar paths modificados"
+msgstr "mostrar caminhos modificados"
-#: add-interactive.c:1012
+#: add-interactive.c:1018
msgid "add working tree state to the staged set of changes"
-msgstr "adicionar estado de working tree para conjunto das modificações staged"
+msgstr ""
+"adicionar estado de árvore-trabalho para conjunto de modificações encenadas"
-#: add-interactive.c:1014
+#: add-interactive.c:1020
msgid "revert staged set of changes back to the HEAD version"
-msgstr "reverter conjunto das modificações staged de volta para a versão HEAD"
+msgstr ""
+"reverter conjunto de modificações encenadas de volta para a versão HEAD"
-#: add-interactive.c:1016
+#: add-interactive.c:1022
msgid "pick hunks and update selectively"
msgstr "apanha os pedaços e atualiza seletivamente"
-#: add-interactive.c:1018
+#: add-interactive.c:1024
msgid "view diff between HEAD and index"
-msgstr "ver diff entre HEAD e índex"
+msgstr "ver diff entre HEAD e cenário"
-#: add-interactive.c:1020
+#: add-interactive.c:1026
msgid "add contents of untracked files to the staged set of changes"
msgstr ""
-"adiciona conteúdo de ficheiros untracked para conjunto das modificações "
-"staged"
+"adicionar conteúdo de ficheiros desmonitorizados para conjunto de "
+"modificações encenadas"
-#: add-interactive.c:1028 add-interactive.c:1077
+#: add-interactive.c:1034 add-interactive.c:1083
msgid "Prompt help:"
msgstr "Prompt ajuda:"
-#: add-interactive.c:1030
+#: add-interactive.c:1036
msgid "select a single item"
msgstr "seleciona um único item"
-#: add-interactive.c:1032
+#: add-interactive.c:1038
msgid "select a range of items"
msgstr "seleciona um conjunto de items"
-#: add-interactive.c:1034
+#: add-interactive.c:1040
msgid "select multiple ranges"
msgstr "seleciona múltiplos conjuntos"
-#: add-interactive.c:1036 add-interactive.c:1081
+#: add-interactive.c:1042 add-interactive.c:1087
msgid "select item based on unique prefix"
msgstr "seleciona item tendo base o prefixo único"
-#: add-interactive.c:1038
+#: add-interactive.c:1044
msgid "unselect specified items"
msgstr "tira a seleção de items especificados"
-#: add-interactive.c:1040
+#: add-interactive.c:1046
msgid "choose all items"
msgstr "escolhe todos items"
-#: add-interactive.c:1042
+#: add-interactive.c:1048
msgid "(empty) finish selecting"
msgstr "(vazio) acaba de selecionar"
-#: add-interactive.c:1079
+#: add-interactive.c:1085
msgid "select a numbered item"
msgstr "seleciona item numerado"
-#: add-interactive.c:1083
+#: add-interactive.c:1089
msgid "(empty) select nothing"
msgstr "(vazio) seleciona nada"
-#: add-interactive.c:1091 builtin/clean.c:813 git-add--interactive.perl:1896
+#: add-interactive.c:1097 builtin/clean.c:839 git-add--interactive.perl:1898
msgid "*** Commands ***"
msgstr "*** Comandos ***"
-#: add-interactive.c:1092 builtin/clean.c:814 git-add--interactive.perl:1893
+#: add-interactive.c:1098 builtin/clean.c:840 git-add--interactive.perl:1895
msgid "What now"
msgstr "E agora"
-#: add-interactive.c:1144 git-add--interactive.perl:213
+#: add-interactive.c:1150 git-add--interactive.perl:213
msgid "staged"
-msgstr "staged"
+msgstr "encenado"
-#: add-interactive.c:1144 git-add--interactive.perl:213
+#: add-interactive.c:1150 git-add--interactive.perl:213
msgid "unstaged"
-msgstr "unstaged"
-
-#: add-interactive.c:1144 apply.c:4994 apply.c:4997 builtin/am.c:2309
-#: builtin/am.c:2312 builtin/bugreport.c:135 builtin/clone.c:128
-#: builtin/fetch.c:152 builtin/merge.c:285 builtin/pull.c:190
-#: builtin/submodule--helper.c:410 builtin/submodule--helper.c:1886
-#: builtin/submodule--helper.c:1889 builtin/submodule--helper.c:2343
-#: builtin/submodule--helper.c:2346 builtin/submodule--helper.c:2589
-#: builtin/submodule--helper.c:2890 builtin/submodule--helper.c:2893
+msgstr "desencenado"
+
+#: add-interactive.c:1150 apply.c:5002 apply.c:5005 builtin/am.c:2370
+#: builtin/am.c:2373 builtin/bugreport.c:107 builtin/clone.c:132
+#: builtin/fetch.c:154 builtin/merge.c:287 builtin/pull.c:194
+#: builtin/submodule--helper.c:412 builtin/submodule--helper.c:1872
+#: builtin/submodule--helper.c:1875 builtin/submodule--helper.c:2709
+#: builtin/submodule--helper.c:2712 builtin/submodule--helper.c:2891
#: git-add--interactive.perl:213
msgid "path"
msgstr "caminho"
-#: add-interactive.c:1151
+#: add-interactive.c:1157
msgid "could not refresh index"
-msgstr "incapaz de reactualizar o index"
+msgstr "incapaz de refrescar cenário"
-#: add-interactive.c:1165 builtin/clean.c:778 git-add--interactive.perl:1803
+#: add-interactive.c:1171 builtin/clean.c:804 git-add--interactive.perl:1805
#, c-format
msgid "Bye.\n"
msgstr "Adeus.\n"
-#: add-patch.c:34 git-add--interactive.perl:1431
+#: add-patch.c:34 git-add--interactive.perl:1433
#, c-format, perl-format
msgid "Stage mode change [y,n,q,a,d%s,?]? "
-msgstr "Stage modo de modificação [y,n,q,a,d%s,?]? "
+msgstr "Modifica modo à encenação [y,n,q,a,d%s,?]? "
-#: add-patch.c:35 git-add--interactive.perl:1432
+#: add-patch.c:35 git-add--interactive.perl:1434
#, c-format, perl-format
msgid "Stage deletion [y,n,q,a,d%s,?]? "
-msgstr "Eliminação stage [y,n,q,a,d%s,?]? "
+msgstr "Elimina à encenação [y,n,q,a,d%s,?]? "
-#: add-patch.c:36 git-add--interactive.perl:1433
+#: add-patch.c:36 git-add--interactive.perl:1435
#, c-format, perl-format
msgid "Stage addition [y,n,q,a,d%s,?]? "
-msgstr "Adição stage [y,n,q,a,d%s,?]? "
+msgstr "Adiciona à encenação [y,n,q,a,d%s,?]? "
-#: add-patch.c:37 git-add--interactive.perl:1434
+#: add-patch.c:37 git-add--interactive.perl:1436
#, c-format, perl-format
msgid "Stage this hunk [y,n,q,a,d%s,?]? "
-msgstr "Stage este pedaço [y,n,q,a,d%s,?]? "
+msgstr "Encena este pedaço [y,n,q,a,d%s,?]? "
#: add-patch.c:39
msgid ""
"If the patch applies cleanly, the edited hunk will immediately be marked for "
"staging."
msgstr ""
-"Se o patch submete-se corretamente, o pedaço editado será marcado para stage "
-"imediatamente."
+"Se o remendo aplica-se corretamente, o pedaço editado será marcado para "
+"encenação imediatamente."
#: add-patch.c:42
msgid ""
@@ -476,28 +494,29 @@ msgid ""
"a - stage this hunk and all later hunks in the file\n"
"d - do not stage this hunk or any of the later hunks in the file\n"
msgstr ""
-"y - stage este pedaço\n"
-"n - o stage deste pedaço será retirado\n"
-"q - sair; retirar de stage este pedaço e qualquer um dos que permaneçam\n"
-"a - stage este pedaço e qualquer próximo pedaço neste ficheiro\n"
-"d - retirar o stage deste pedaço e qualquer próximo pedaço neste ficheiro\n"
+"y - encenar este pedaço\n"
+"n - deixar por encenar este pedaço\n"
+"q - sair; deixar por encenar este pedaço ou qualquer um dos que permaneçam\n"
+"a - encenar este pedaço e qualquer próximo pedaço neste ficheiro\n"
+"d - deixar por encenar este pedaço ou qualquer próximo pedaço neste "
+"ficheiro\n"
-#: add-patch.c:56 git-add--interactive.perl:1437
+#: add-patch.c:56 git-add--interactive.perl:1439
#, c-format, perl-format
msgid "Stash mode change [y,n,q,a,d%s,?]? "
msgstr "Esconder modo de modificação [y,n,q,a,d%s,?]? "
-#: add-patch.c:57 git-add--interactive.perl:1438
+#: add-patch.c:57 git-add--interactive.perl:1440
#, c-format, perl-format
msgid "Stash deletion [y,n,q,a,d%s,?]? "
-msgstr "Eliminação da arrumação [y,n,q,a,d%s,?]? "
+msgstr "Eliminação de esconderijo [y,n,q,a,d%s,?]? "
-#: add-patch.c:58 git-add--interactive.perl:1439
+#: add-patch.c:58 git-add--interactive.perl:1441
#, c-format, perl-format
msgid "Stash addition [y,n,q,a,d%s,?]? "
-msgstr "Adição da arrumação [y,n,q,a,d%s,?]? "
+msgstr "Adição da esconderijo [y,n,q,a,d%s,?]? "
-#: add-patch.c:59 git-add--interactive.perl:1440
+#: add-patch.c:59 git-add--interactive.perl:1442
#, c-format, perl-format
msgid "Stash this hunk [y,n,q,a,d%s,?]? "
msgstr "Esconde este pedaço [y,n,q,a,d%s,?]? "
@@ -507,8 +526,8 @@ msgid ""
"If the patch applies cleanly, the edited hunk will immediately be marked for "
"stashing."
msgstr ""
-"Se o patch submete-se corretamente, o pedaço editado será marcado para "
-"arrumação imediatamente."
+"Se o remendo aplica-se corretamente, o pedaço editado será marcado para "
+"esconder-se imediatamente."
#: add-patch.c:64
msgid ""
@@ -518,39 +537,40 @@ msgid ""
"a - stash this hunk and all later hunks in the file\n"
"d - do not stash this hunk or any of the later hunks in the file\n"
msgstr ""
-"y - arrumar este pedaço\n"
-"n - mostrar este pedaço\n"
-"q - sair; mostrar este pedaço e qualquer outro restante\n"
-"a - arrumar este pedaço e qualquer próximo deste ficheiro\n"
-"d - mostrar este pedaço e qualquer próximo deste ficheiro\n"
+"y - esconder este pedaço\n"
+"n - deixar por esconder este pedaço\n"
+"q - sair; deixar por esconder este pedaço ou qualquer um dos que permaneçama "
+"- esconder este pedaço e todos próximos pedaços deste ficheiro\n"
+"d - deixar por esconder este pedaço ou qualquer próximo pedaço deste "
+"ficheiro\n"
-#: add-patch.c:80 git-add--interactive.perl:1443
+#: add-patch.c:80 git-add--interactive.perl:1445
#, c-format, perl-format
msgid "Unstage mode change [y,n,q,a,d%s,?]? "
-msgstr "Unstage modo de modificação [y,n,q,a,d%s,?]? "
+msgstr "Modifica modo à desencenação [y,n,q,a,d%s,?]? "
-#: add-patch.c:81 git-add--interactive.perl:1444
+#: add-patch.c:81 git-add--interactive.perl:1446
#, c-format, perl-format
msgid "Unstage deletion [y,n,q,a,d%s,?]? "
-msgstr "Eliminação do unstage [y,n,q,a,d%s,?]? "
+msgstr "Elimina à deencenação [y,n,q,a,d%s,?]? "
-#: add-patch.c:82 git-add--interactive.perl:1445
+#: add-patch.c:82 git-add--interactive.perl:1447
#, c-format, perl-format
msgid "Unstage addition [y,n,q,a,d%s,?]? "
-msgstr "Adição do unstage [y,n,q,a,d%s,?]? "
+msgstr "Adiciona à desencenação [y,n,q,a,d%s,?]? "
-#: add-patch.c:83 git-add--interactive.perl:1446
+#: add-patch.c:83 git-add--interactive.perl:1448
#, c-format, perl-format
msgid "Unstage this hunk [y,n,q,a,d%s,?]? "
-msgstr "Unstage este pedaço [y,n,q,a,d%s,?]? "
+msgstr "Desencena este pedaço [y,n,q,a,d%s,?]? "
#: add-patch.c:85
msgid ""
"If the patch applies cleanly, the edited hunk will immediately be marked for "
"unstaging."
msgstr ""
-"Se patch submete-se corretamente, o pedaço editado será imediatamente "
-"marcado para unstage."
+"Se remendo aplica-se corretamente, o pedaço editado será imediatamente "
+"marcado para desencenação."
#: add-patch.c:88
msgid ""
@@ -560,39 +580,40 @@ msgid ""
"a - unstage this hunk and all later hunks in the file\n"
"d - do not unstage this hunk or any of the later hunks in the file\n"
msgstr ""
-"y - unstage este pedaço\n"
-"n - o unstage deste pedaço será retirado\n"
-"q - sair; retirar de unstage este pedaço e qualquer outro restante\n"
-"a - unstage este pedaço e todos próximos pedaços deste ficheiro\n"
-"d - retirar este pedaço da arrumação e qualquer próximo pedaço deste "
+"y - desencena este pedaço\n"
+"n - deixar de desencenar este pedaço\n"
+"q - sair; deixar de desencenar este pedaço ou qualquer um dos que "
+"permaneçam\n"
+"a - desencena este pedaço e todos próximos pedaços deste ficheiro\n"
+"d - deixar de desencenar este pedaço ou qualquer próximo pedaço deste "
"ficheiro\n"
-#: add-patch.c:103 git-add--interactive.perl:1449
+#: add-patch.c:103 git-add--interactive.perl:1451
#, c-format, perl-format
msgid "Apply mode change to index [y,n,q,a,d%s,?]? "
-msgstr "Submeter modo de modificação para index [y,n,q,a,d%s,?]? "
+msgstr "Submeter modificação de modo para cenário [y,n,q,a,d%s,?]? "
-#: add-patch.c:104 git-add--interactive.perl:1450
+#: add-patch.c:104 git-add--interactive.perl:1452
#, c-format, perl-format
msgid "Apply deletion to index [y,n,q,a,d%s,?]? "
-msgstr "Submeter eliminação para index [y,n,q,a,d%s,?]? "
+msgstr "Submeter eliminação para cenário [y,n,q,a,d%s,?]? "
-#: add-patch.c:105 git-add--interactive.perl:1451
+#: add-patch.c:105 git-add--interactive.perl:1453
#, c-format, perl-format
msgid "Apply addition to index [y,n,q,a,d%s,?]? "
-msgstr "Submeter adição para index [y,n,q,a,d%s,?]? "
+msgstr "Submeter adição para cenário [y,n,q,a,d%s,?]? "
-#: add-patch.c:106 git-add--interactive.perl:1452
+#: add-patch.c:106 git-add--interactive.perl:1454
#, c-format, perl-format
msgid "Apply this hunk to index [y,n,q,a,d%s,?]? "
-msgstr "Submeter este pedaço para index [y,n,q,a,d%s,?]? "
+msgstr "Submeter este pedaço para cenário [y,n,q,a,d%s,?]? "
#: 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 ""
-"Se o patch aplica-se corretamente, o pedaço editado será marcado para a "
+"Se o remendo aplica-se corretamente, o pedaço editado será marcado para a "
"submissão imediatamente."
#: add-patch.c:111
@@ -603,42 +624,43 @@ msgid ""
"a - apply this hunk and all later hunks in the file\n"
"d - do not apply this hunk or any of the later hunks in the file\n"
msgstr ""
-"y - submeter este pedaço para index\n"
-"n - declinar este pedaço para index\n"
-"q - sair; declinar este pedaço e qualquer outro restante\n"
-"a - submeter este pedaço e qualquer próximo deste ficheiro\n"
-"d - declinar este pedaço e qualquer próximo deste ficheiro\n"
+"y - submeter este pedaço para cenário\n"
+"n - deixar por submeter este pedaço para cenário\n"
+"q - sair; deixar por submeter este pedaço ou qualquer um dos que permaneçam\n"
+"a - submeter este pedaço e qualquer próximo pedaço neste ficheiro\n"
+"d - deixar por submeter este pedaço ou qualquer próximo pedaço neste "
+"ficheiro\n"
-#: add-patch.c:126 git-add--interactive.perl:1455
-#: git-add--interactive.perl:1473
+#: add-patch.c:126 git-add--interactive.perl:1457
+#: git-add--interactive.perl:1475
#, c-format, perl-format
msgid "Discard mode change from worktree [y,n,q,a,d%s,?]? "
-msgstr "Descartar modo de modificação da worktree [y,n,q,a,d%s,?]? "
+msgstr "Descartar modo de modificação de árvore-trabalho [y,n,q,a,d%s,?]? "
-#: add-patch.c:127 git-add--interactive.perl:1456
-#: git-add--interactive.perl:1474
+#: add-patch.c:127 git-add--interactive.perl:1458
+#: git-add--interactive.perl:1476
#, c-format, perl-format
msgid "Discard deletion from worktree [y,n,q,a,d%s,?]? "
-msgstr "Descartar eliminação da worktree [y,n,q,a,d%s,?]? "
+msgstr "Descartar eliminação de árvore-trabalho [y,n,q,a,d%s,?]? "
-#: add-patch.c:128 git-add--interactive.perl:1457
-#: git-add--interactive.perl:1475
+#: add-patch.c:128 git-add--interactive.perl:1459
+#: git-add--interactive.perl:1477
#, c-format, perl-format
msgid "Discard addition from worktree [y,n,q,a,d%s,?]? "
-msgstr "Descartar adição da worktree [y,n,q,a,d%s,?]? "
+msgstr "Descartar adição de árvore-trabalho [y,n,q,a,d%s,?]? "
-#: add-patch.c:129 git-add--interactive.perl:1458
-#: git-add--interactive.perl:1476
+#: add-patch.c:129 git-add--interactive.perl:1460
+#: git-add--interactive.perl:1478
#, c-format, perl-format
msgid "Discard this hunk from worktree [y,n,q,a,d%s,?]? "
-msgstr "Descartar este pedaço da worktree [y,n,q,a,d%s,?]? "
+msgstr "Descartar este pedaço de árvore-trabalho [y,n,q,a,d%s,?]? "
#: 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 ""
-"Se o patch aplica-se corretamente, o pedaço editado será marcado para ser "
+"Se o remendo aplica-se corretamente, o pedaço editado será marcado para ser "
"descartado imediatamente."
#: add-patch.c:134 add-patch.c:202
@@ -649,31 +671,34 @@ msgid ""
"a - discard this hunk and all later hunks in the file\n"
"d - do not discard this hunk or any of the later hunks in the file\n"
msgstr ""
-"y - descartar este pedaço de worktree\n"
-"n - aceitar este pedaço de worktree\n"
-"q - sair; aceitar este pedaço e qualquer outro restante\n"
-"a - descartar este pedaço e qualquer próximo deste ficheiro\n"
-"d - aceitar este pedaço e qualquer próximo deste ficheiro\n"
+"y - descartar este pedaço de árvore-trabalho\n"
+"n - deixar por descartar este pedaço de árvore-trabalho\n"
+"q - sair; deixar por descartar este pedaço ou qualquer um dos que "
+"permaneçam\n"
+"a - descartar este pedaço e qualquer próximo pedaço neste ficheiro\n"
+"d - deixar por descartar este pedaço e qualquer próximo pedaço neste "
+"ficheiro\n"
-#: add-patch.c:149 add-patch.c:194 git-add--interactive.perl:1461
+#: add-patch.c:149 add-patch.c:194 git-add--interactive.perl:1463
#, c-format, perl-format
msgid "Discard mode change from index and worktree [y,n,q,a,d%s,?]? "
-msgstr "Descartar modo de modificação de index e worktree [y,n,q,a,d%s,?]?"
+msgstr ""
+"Descartar modificação de modo de cenário e árvore-trabalho [y,n,q,a,d%s,?]?"
-#: add-patch.c:150 add-patch.c:195 git-add--interactive.perl:1462
+#: add-patch.c:150 add-patch.c:195 git-add--interactive.perl:1464
#, c-format, perl-format
msgid "Discard deletion from index and worktree [y,n,q,a,d%s,?]? "
-msgstr "Descartar eliminação de index e worktree [y,n,q,a,d%s,?]? "
+msgstr "Descartar eliminação de cenário e árvore-trabalho [y,n,q,a,d%s,?]? "
-#: add-patch.c:151 add-patch.c:196 git-add--interactive.perl:1463
+#: add-patch.c:151 add-patch.c:196 git-add--interactive.perl:1465
#, c-format, perl-format
msgid "Discard addition from index and worktree [y,n,q,a,d%s,?]? "
-msgstr "Descartar adição de index e worktree [y,n,q,a,d%s,?]? "
+msgstr "Descartar adição de cenário e árvore-trabalho [y,n,q,a,d%s,?]? "
-#: add-patch.c:152 add-patch.c:197 git-add--interactive.perl:1464
+#: add-patch.c:152 add-patch.c:197 git-add--interactive.perl:1466
#, c-format, perl-format
msgid "Discard this hunk from index and worktree [y,n,q,a,d%s,?]? "
-msgstr "Descartar este pedaço de index e worktree [y,n,q,a,d%s,?]? "
+msgstr "Descartar este pedaço de cenário e árvore-trabalho [y,n,q,a,d%s,?]? "
#: add-patch.c:157
msgid ""
@@ -683,31 +708,34 @@ msgid ""
"a - discard this hunk and all later hunks in the file\n"
"d - do not discard this hunk or any of the later hunks in the file\n"
msgstr ""
-"y - descartar este pedaço de index e worktree\n"
-"n - aceitar este pedaço de index e worktree\n"
-"q - sair; aceitar este pedaço e qualquer outro restante\n"
-"a - descartar este pedaço e qualquer próximo deste ficheiro\n"
-"d - aceitar este pedaço e qualquer próximo deste ficheiro\n"
+"y - descartar este pedaço de cenário e árvore-trabalho\n"
+"n - deixar por descartar este pedaço de cenário e árvore-trabalho\n"
+"q - sair; deixar por descartar este pedaço ou qualquer um dos que "
+"permaneçam\n"
+"a - descartar este pedaço e qualquer próximo neste ficheiro\n"
+"d - deixar por descartar este pedaço ou qualquer próximo pedaço neste "
+"ficheiro\n"
-#: add-patch.c:171 add-patch.c:216 git-add--interactive.perl:1467
+#: add-patch.c:171 add-patch.c:216 git-add--interactive.perl:1469
#, c-format, perl-format
msgid "Apply mode change to index and worktree [y,n,q,a,d%s,?]? "
-msgstr "Submeter modo de modificação para index e worktree [y,n,q,a,d%s,?]? "
+msgstr ""
+"Submeter modificação de modo para cenário e árvore-trabalho [y,n,q,a,d%s,?]? "
-#: add-patch.c:172 add-patch.c:217 git-add--interactive.perl:1468
+#: add-patch.c:172 add-patch.c:217 git-add--interactive.perl:1470
#, c-format, perl-format
msgid "Apply deletion to index and worktree [y,n,q,a,d%s,?]? "
-msgstr "Submeter eliminação para index e worktree [y,n,q,a,d%s,?]? "
+msgstr "Submeter eliminação para cenário e árvore-trabalho [y,n,q,a,d%s,?]? "
-#: add-patch.c:173 add-patch.c:218 git-add--interactive.perl:1469
+#: add-patch.c:173 add-patch.c:218 git-add--interactive.perl:1471
#, c-format, perl-format
msgid "Apply addition to index and worktree [y,n,q,a,d%s,?]? "
-msgstr "Submeter adição para index e worktree [y,n,q,a,d%s,?]? "
+msgstr "Submeter adição para cenário e árvore-trabalho [y,n,q,a,d%s,?]? "
-#: add-patch.c:174 add-patch.c:219 git-add--interactive.perl:1470
+#: add-patch.c:174 add-patch.c:219 git-add--interactive.perl:1472
#, c-format, perl-format
msgid "Apply this hunk to index and worktree [y,n,q,a,d%s,?]? "
-msgstr "Submeter este pedaço para index e worktree [y,n,q,a,d%s,?]? "
+msgstr "Submeter este pedaço para cenário e árvore-trabalho [y,n,q,a,d%s,?]? "
#: add-patch.c:179
msgid ""
@@ -717,11 +745,12 @@ msgid ""
"a - apply this hunk and all later hunks in the file\n"
"d - do not apply this hunk or any of the later hunks in the file\n"
msgstr ""
-"y - submeter este pedaço para index e worktree\n"
-"n - declinar este pedaço para index e worktree\n"
-"q - sair; declinar este pedaço e qualquer outro restante\n"
-"a - submeter este pedaço e qualquer próximo deste ficheiro\n"
-"d - declinar este pedaço e qualquer próximo deste ficheiro\n"
+"y - submeter este pedaço para cenário e árvore-trabalho\n"
+"n - deixar por submeter este pedaço para cenário e árvore-trabalho\n"
+"q - sair; deixar por submeter este pedaço ou qualquer um dos que permaneçam\n"
+"a - submeter este pedaço e qualquer próximo pedaço neste ficheiro\n"
+"d - deixar por submeter este pedaço ou qualquer próximo pedaço neste "
+"ficheiro\n"
#: add-patch.c:224
msgid ""
@@ -731,11 +760,12 @@ msgid ""
"a - apply this hunk and all later hunks in the file\n"
"d - do not apply this hunk or any of the later hunks in the file\n"
msgstr ""
-"y - submeter este pedaço para worktree\n"
-"n - declinar este pedaço para worktree\n"
-"q - sair; declinar este pedaço e qualquer outro restantes\n"
-"a - submeter este pedaço e qualquer próximo deste ficheiro\n"
-"d - declinar este pedaço e qualquer próximo deste ficheiro\n"
+"y - submeter este pedaço para árvore-trabalho\n"
+"n - deixar por submeter este pedaço para árvore-trabalho\n"
+"q - sair; deixar por submeter este pedaço ou qualquer um dos que permaneçam\n"
+"a - submeter este pedaço e qualquer próximo pedaço neste ficheiro\n"
+"d - deixar por submeter este pedaço ou qualquer próximo pedaço neste "
+"ficheiro\n"
#: add-patch.c:343
#, c-format
@@ -747,32 +777,32 @@ msgstr "incapaz de processar início de pedaço '%.*s'"
msgid "could not parse colored hunk header '%.*s'"
msgstr "incapaz de analisar início de pedaço colorido '%.*s'"
-#: add-patch.c:420
+#: add-patch.c:431
msgid "could not parse diff"
msgstr "incapaz de analisar diff"
-#: add-patch.c:439
+#: add-patch.c:450
msgid "could not parse colored diff"
msgstr "incapaz de analisar diff colorido"
-#: add-patch.c:453
+#: add-patch.c:464
#, c-format
msgid "failed to run '%s'"
msgstr "falhou executar '%s'"
-#: add-patch.c:612
+#: add-patch.c:618
msgid "mismatched output from interactive.diffFilter"
msgstr "sem match de output de interactive.diffFilter"
-#: add-patch.c:613
+#: add-patch.c:619
msgid ""
"Your filter must maintain a one-to-one correspondence\n"
"between its input and output lines."
msgstr ""
"O teu filtro tem de manter uma correspondência exata\n"
-"entre seu input e linhas output."
+"entre sua entrada e linhas de saída."
-#: add-patch.c:791
+#: add-patch.c:797
#, c-format
msgid ""
"expected context line #%d in\n"
@@ -781,7 +811,7 @@ msgstr ""
"linha de contexto esperada #%d em\n"
"%.*s"
-#: add-patch.c:806
+#: add-patch.c:812
#, c-format
msgid ""
"hunks do not overlap:\n"
@@ -794,11 +824,11 @@ msgstr ""
"\ttermina sem:\n"
"%.*s"
-#: add-patch.c:1082 git-add--interactive.perl:1115
+#: add-patch.c:1088 git-add--interactive.perl:1115
msgid "Manual hunk edit mode -- see bottom for a quick guide.\n"
msgstr "Modo de edição manual de pedaço -- ver final para guia rápido.\n"
-#: add-patch.c:1086
+#: add-patch.c:1092
#, c-format
msgid ""
"---\n"
@@ -812,21 +842,21 @@ msgstr ""
"Linhas começadas com %c serão removidas.\n"
#. TRANSLATORS: 'it' refers to the patch mentioned in the previous messages.
-#: add-patch.c:1100 git-add--interactive.perl:1129
+#: add-patch.c:1106 git-add--interactive.perl:1129
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 ""
-"Se falha na submissão correta, ser-lhe-á dada nova oportunidade para\n"
+"Se falha na aplicação correta, ser-lhe-á dada nova oportunidade para\n"
"editar. Se todas as linhas deste pedaço forem removidas, então a edição\n"
"é abortada e este pedaço é deixado inalterado.\n"
-#: add-patch.c:1133
+#: add-patch.c:1139
msgid "could not parse hunk header"
msgstr "incapaz interpretar início de pedaço"
-#: add-patch.c:1178
+#: add-patch.c:1184
msgid "'git apply --cached' failed"
msgstr "'git apply --cached' falhou"
@@ -842,26 +872,26 @@ msgstr "'git apply --cached' falhou"
#. 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:1247 git-add--interactive.perl:1242
+#: add-patch.c:1253 git-add--interactive.perl:1244
msgid ""
"Your edited hunk does not apply. Edit again (saying \"no\" discards!) [y/n]? "
msgstr ""
"Problema na submissão de pedaço editado. Editar de novo (responder \"n\" "
"para \"não\" descarta!) [y/n]? "
-#: add-patch.c:1290
+#: add-patch.c:1296
msgid "The selected hunks do not apply to the index!"
-msgstr "Submissão incorreta de pedaços selecionados para index!"
+msgstr "Os pedaços selecionados submetem-se para o cenário de maneira nenhuma!"
-#: add-patch.c:1291 git-add--interactive.perl:1346
+#: add-patch.c:1297 git-add--interactive.perl:1348
msgid "Apply them to the worktree anyway? "
-msgstr "Submetê-los para worktree mesmo assim? "
+msgstr "Submetê-los para árvore-trabalho mesmo assim? "
-#: add-patch.c:1298 git-add--interactive.perl:1349
+#: add-patch.c:1304 git-add--interactive.perl:1351
msgid "Nothing was applied.\n"
msgstr "Nada foi submetido.\n"
-#: add-patch.c:1355
+#: add-patch.c:1361
msgid ""
"j - leave this hunk undecided, see next undecided hunk\n"
"J - leave this hunk undecided, see next hunk\n"
@@ -883,73 +913,73 @@ msgstr ""
"e - editar manualmente o pedaço atual\n"
"? - mostrar ajuda\n"
-#: add-patch.c:1517 add-patch.c:1527
+#: add-patch.c:1523 add-patch.c:1533
msgid "No previous hunk"
msgstr "Sem pedaço anterior"
-#: add-patch.c:1522 add-patch.c:1532
+#: add-patch.c:1528 add-patch.c:1538
msgid "No next hunk"
msgstr "Sem próximo pedaço"
-#: add-patch.c:1538
+#: add-patch.c:1544
msgid "No other hunks to goto"
msgstr "Sem qualquer outro pedaço"
-#: add-patch.c:1549 git-add--interactive.perl:1606
+#: add-patch.c:1555 git-add--interactive.perl:1608
msgid "go to which hunk (<ret> to see more)? "
msgstr "ir para qual pedaço (<ret> para ver mais)? "
-#: add-patch.c:1550 git-add--interactive.perl:1608
+#: add-patch.c:1556 git-add--interactive.perl:1610
msgid "go to which hunk? "
msgstr "ir para qual pedaço? "
-#: add-patch.c:1561
+#: add-patch.c:1567
#, c-format
msgid "Invalid number: '%s'"
msgstr "Número inválido: '%s'"
-#: add-patch.c:1566
+#: add-patch.c:1572
#, c-format
msgid "Sorry, only %d hunk available."
msgid_plural "Sorry, only %d hunks available."
msgstr[0] "Lamento, apenas %d pedaço disponível."
msgstr[1] "Lamento, apenas %d pedaços disponíveis."
-#: add-patch.c:1575
+#: add-patch.c:1581
msgid "No other hunks to search"
msgstr "Sem outro pedaço a procurar"
-#: add-patch.c:1581 git-add--interactive.perl:1661
+#: add-patch.c:1587 git-add--interactive.perl:1663
msgid "search for regex? "
msgstr "procurar por regex? "
-#: add-patch.c:1596
+#: add-patch.c:1602
#, c-format
msgid "Malformed search regexp %s: %s"
msgstr "Pesquisa regexp deformada %s: %s"
-#: add-patch.c:1613
+#: add-patch.c:1619
msgid "No hunk matches the given pattern"
msgstr "Sem pedaço correspondente ao padrão fornecido"
-#: add-patch.c:1620
+#: add-patch.c:1626
msgid "Sorry, cannot split this hunk"
msgstr "Lamento, incapaz de dividir este pedaço"
-#: add-patch.c:1624
+#: add-patch.c:1630
#, c-format
msgid "Split into %d hunks."
msgstr "Dividir em %d pedaços."
-#: add-patch.c:1628
+#: add-patch.c:1634
msgid "Sorry, cannot edit this hunk"
msgstr "Lamento, incapaz de editar este pedaço"
-#: add-patch.c:1680
+#: add-patch.c:1686
msgid "'git apply' failed"
msgstr "'git apply' falhou"
-#: advice.c:145
+#: advice.c:81
#, c-format
msgid ""
"\n"
@@ -958,74 +988,80 @@ msgstr ""
"\n"
"Desative este mensagem com \"git config advice.%s false\""
-#: advice.c:161
+#: advice.c:97
#, c-format
msgid "%shint: %.*s%s\n"
msgstr "%sdica: %.*s%s\n"
-#: advice.c:252
+#: advice.c:181
msgid "Cherry-picking is not possible because you have unmerged files."
msgstr "Cherry-picking é impossível porque tem ficheiros em separado."
-#: advice.c:254
+#: advice.c:183
msgid "Committing is not possible because you have unmerged files."
msgstr "Cometer é impossível porque tem ficheiros em separado."
-#: advice.c:256
+#: advice.c:185
msgid "Merging is not possible because you have unmerged files."
msgstr "Juntar é impossível porque tem ficheiros em separado."
-#: advice.c:258
+#: advice.c:187
msgid "Pulling is not possible because you have unmerged files."
msgstr "Puxar é impossível porque tem ficheiros em separado."
-#: advice.c:260
+#: advice.c:189
msgid "Reverting is not possible because you have unmerged files."
msgstr "Reverter é impossível porque tem ficheiros em separado."
-#: advice.c:262
+#: advice.c:191
#, c-format
msgid "It is not possible to %s because you have unmerged files."
msgstr "É impossível fazer %s porque tem ficheiros em separado."
-#: advice.c:270
+#: advice.c:199
msgid ""
"Fix them up in the work tree, and then use 'git add/rm <file>'\n"
"as appropriate to mark resolution and make a commit."
msgstr ""
-"Corrija-os em worktree, e use 'git add/rm <ficheiro>' apropriadamente\n"
-"para marcar resolução e fazer uma memória."
+"Conserte-os na árvore-trabalho, e usa 'git add/rm <ficheiro>'\n"
+"apropriadamente para marcar resolução e fazer uma memória."
-#: advice.c:278
+#: advice.c:207
msgid "Exiting because of an unresolved conflict."
msgstr "Saindo devido a conflito por resolver."
-#: advice.c:283 builtin/merge.c:1375
+#: advice.c:212 builtin/merge.c:1388
msgid "You have not concluded your merge (MERGE_HEAD exists)."
msgstr "O teu juntar ficou por concluir (MERGE_HEAD presente)."
-#: advice.c:285
+#: advice.c:214
msgid "Please, commit your changes before merging."
msgstr "Por favor, memoriza as tuas modificações antes de juntar."
-#: advice.c:286
+#: advice.c:215
msgid "Exiting because of unfinished merge."
msgstr "Saindo devido a juntar inacabado."
-#: advice.c:296
+#: advice.c:220
+msgid "Not possible to fast-forward, aborting."
+msgstr "Impossível fazer avanço, abortando."
+
+#: advice.c:230
#, c-format
msgid ""
-"The following pathspecs didn't match any eligible path, but they do match "
-"index\n"
-"entries outside the current sparse checkout:\n"
+"The following paths and/or pathspecs matched paths that exist\n"
+"outside of your sparse-checkout definition, so will not be\n"
+"updated in the index:\n"
msgstr ""
-#: advice.c:303
+#: advice.c:237
msgid ""
-"Disable or modify the sparsity rules if you intend to update such entries."
+"If you intend to update such entries, try one of the following:\n"
+"* Use the --sparse option.\n"
+"* Disable or modify the sparsity rules."
msgstr ""
-#: advice.c:310
+#: advice.c:245
#, c-format
msgid ""
"Note: switching to '%s'.\n"
@@ -1049,14 +1085,14 @@ msgid ""
msgstr ""
"Nota: trocando para '%s'.\n"
"\n"
-"Está em 'HEAD solta'. Podes olhar, fazer mudanças experimentais e\n"
+"Estás em 'HEAD desanexada'. Podes olhar, fazer mudanças experimentais e\n"
"memorizá-las, e, neste estado, podes descartar qualquer memória que faças\n"
-"sem interferir em qualquer ramo fazendo um switch de ramos.\n"
+"sem impactar qualquer ramo fazendo uma troca de volta para um ramo.\n"
"\n"
"Se queres criar um novo ramo para reter as memórias que criaste, podes\n"
-"fazer (agora ou mais tarde) usando -c com o comando switch. Exemplo:\n"
+"fazê-lo (agora ou mais tarde) usando -c com o comando switch. Exemplo:\n"
"\n"
-" git switch -c <novo-nome-de-branch>\n"
+" git switch -c <novo-nome-de-ramo>\n"
"\n"
"Ou desfazer esta operação com:\n"
"\n"
@@ -1084,72 +1120,88 @@ msgstr "opção de whitespace desconhecida '%s'"
msgid "unrecognized whitespace ignore option '%s'"
msgstr "opção de ignorar whitespace desconhecida '%s'"
-#: apply.c:136
-msgid "--reject and --3way cannot be used together."
-msgstr "--reject e --3way só podem ser usados separadamente."
-
-#: apply.c:139
-msgid "--3way outside a repository"
-msgstr "--3way fora de um repositório"
-
-#: apply.c:150
-msgid "--index outside a repository"
-msgstr "--index fora de um repositório"
-
-#: apply.c:153
-msgid "--cached outside a repository"
-msgstr "--cached fora de repositório"
-
-#: apply.c:800
+#: apply.c:138 archive.c:584 parse-options.c:1122 range-diff.c:555
+#: revision.c:2314 revision.c:2318 revision.c:2327 revision.c:2332
+#: revision.c:2560 revision.c:2895 revision.c:2899 revision.c:2907
+#: revision.c:2910 revision.c:2912 builtin/add.c:507 builtin/add.c:509
+#: builtin/add.c:515 builtin/add.c:527 builtin/branch.c:755
+#: builtin/checkout.c:472 builtin/checkout.c:475 builtin/checkout.c:1663
+#: builtin/checkout.c:1773 builtin/checkout.c:1776 builtin/clone.c:921
+#: builtin/commit.c:359 builtin/commit.c:362 builtin/commit.c:1200
+#: builtin/commit.c:1256 builtin/commit.c:1273 builtin/describe.c:593
+#: builtin/diff-tree.c:155 builtin/difftool.c:733 builtin/fast-export.c:1245
+#: builtin/fetch.c:2141 builtin/fetch.c:2162 builtin/fetch.c:2167
+#: builtin/help.c:602 builtin/index-pack.c:1858 builtin/init-db.c:560
+#: builtin/log.c:1968 builtin/log.c:1970 builtin/ls-files.c:778
+#: builtin/merge-base.c:163 builtin/merge-base.c:169 builtin/merge.c:1409
+#: builtin/merge.c:1411 builtin/pack-objects.c:4098 builtin/push.c:592
+#: builtin/push.c:630 builtin/push.c:636 builtin/push.c:641
+#: builtin/rebase.c:1221 builtin/rebase.c:1223 builtin/rebase.c:1227
+#: builtin/repack.c:688 builtin/repack.c:719 builtin/reset.c:433
+#: builtin/reset.c:469 builtin/rev-list.c:537 builtin/show-branch.c:711
+#: builtin/stash.c:1696 builtin/stash.c:1699 builtin/submodule--helper.c:1328
+#: builtin/submodule--helper.c:3054 builtin/tag.c:527 builtin/tag.c:573
+#: builtin/worktree.c:779
+#, c-format
+msgid "options '%s' and '%s' cannot be used together"
+msgstr "opções '%s' e '%s' incapaz serem usadas juntas"
+
+#: apply.c:141 apply.c:152 apply.c:155
+#, c-format
+msgid "'%s' outside a repository"
+msgstr "'%s' fora de um repositório"
+
+#: apply.c:807
#, c-format
msgid "Cannot prepare timestamp regexp %s"
msgstr "Incapaz preparar timestamp de regexp %s"
-#: apply.c:809
+#: apply.c:816
#, c-format
msgid "regexec returned %d for input: %s"
msgstr "regexec devolveu %d para input: %s"
-#: apply.c:883
+#: apply.c:890
#, c-format
msgid "unable to find filename in patch at line %d"
msgstr "incapaz de encontrar o nome do ficheiro no patch da linha %d"
-#: apply.c:921
+#: apply.c:928
#, c-format
msgid "git apply: bad git-diff - expected /dev/null, got %s on line %d"
-msgstr "git apply: git-diff incorreto - esperava /dev/null, tive %s na linha %d"
+msgstr ""
+"git apply: git-diff incorreto - esperava /dev/null, tive %s na linha %d"
-#: apply.c:927
+#: apply.c:934
#, c-format
msgid "git apply: bad git-diff - inconsistent new filename on line %d"
msgstr ""
"git apply: git-diff incorreto - novo nome de ficheiro inconsistente na linha "
"%d"
-#: apply.c:928
+#: apply.c:935
#, c-format
msgid "git apply: bad git-diff - inconsistent old filename on line %d"
msgstr ""
"git apply: git-diff incorreto - antigo nome de ficheiro inconsistente na "
"linha %d"
-#: apply.c:933
+#: apply.c:940
#, c-format
msgid "git apply: bad git-diff - expected /dev/null on line %d"
msgstr "git apply: git-diff incorreto - esperava /dev/null na linha %d"
-#: apply.c:962
+#: apply.c:969
#, c-format
msgid "invalid mode on line %d: %s"
msgstr "modo inválido na linha %d: %s"
-#: apply.c:1281
+#: apply.c:1288
#, c-format
msgid "inconsistent header lines %d and %d"
msgstr "linhas de cabeçalho %d e %d inconsistentes"
-#: apply.c:1371
+#: apply.c:1378
#, c-format
msgid ""
"git diff header lacks filename information when removing %d leading pathname "
@@ -1164,92 +1216,92 @@ msgstr[1] ""
"cabeçalho do git diff falta informação de nome de ficheiro quando removendo "
"%d componentes do pathname (linha %d)"
-#: apply.c:1384
+#: apply.c:1391
#, c-format
msgid "git diff header lacks filename information (line %d)"
msgstr "cabeçalho do git diff falta informação de nome de ficheiro (linha %d)"
-#: apply.c:1480
+#: apply.c:1487
#, c-format
msgid "recount: unexpected line: %.*s"
msgstr "recontagem: linha inesperada: %.*s"
-#: apply.c:1549
+#: apply.c:1556
#, c-format
msgid "patch fragment without header at line %d: %.*s"
msgstr "fragmento de patch sem cabeçalho na linha %d: %.*s"
-#: apply.c:1752
+#: apply.c:1759
msgid "new file depends on old contents"
msgstr "novo ficheiro depende de conteúdos antigos"
-#: apply.c:1754
+#: apply.c:1761
msgid "deleted file still has contents"
msgstr "ficheiro eliminado ainda tem conteúdos"
-#: apply.c:1788
+#: apply.c:1795
#, c-format
msgid "corrupt patch at line %d"
msgstr "patch roto na linha %d"
-#: apply.c:1825
+#: apply.c:1832
#, c-format
msgid "new file %s depends on old contents"
msgstr "novo ficheiro %s depende de conteúdos antigos"
-#: apply.c:1827
+#: apply.c:1834
#, c-format
msgid "deleted file %s still has contents"
msgstr "ficheiro apagado %s ainda tem conteúdos"
-#: apply.c:1830
+#: apply.c:1837
#, c-format
msgid "** warning: file %s becomes empty but is not deleted"
msgstr "** aviso: ficheiro %s fica vazio e mantêm-se"
-#: apply.c:1977
+#: apply.c:1985
#, c-format
msgid "corrupt binary patch at line %d: %.*s"
msgstr "patch binário roto na linha %d: %.*s"
-#: apply.c:2014
+#: apply.c:2022
#, c-format
msgid "unrecognized binary patch at line %d"
msgstr "patch binário irreconhecível na linha %d"
-#: apply.c:2176
+#: apply.c:2184
#, c-format
msgid "patch with only garbage at line %d"
msgstr "patch com apenas lixo na linha %d"
-#: apply.c:2262
+#: apply.c:2270
#, c-format
msgid "unable to read symlink %s"
msgstr "incapaz de ler ligação simbólica %s"
-#: apply.c:2266
+#: apply.c:2274
#, c-format
msgid "unable to open or read %s"
msgstr "incapaz de abrir ou ler %s"
-#: apply.c:2935
+#: apply.c:2943
#, c-format
msgid "invalid start of line: '%c'"
msgstr "início de linha inválido: '%c'"
-#: apply.c:3056
+#: apply.c:3064
#, c-format
msgid "Hunk #%d succeeded at %d (offset %d line)."
msgid_plural "Hunk #%d succeeded at %d (offset %d lines)."
msgstr[0] "Pedaço #%d apareceu em %d (%d offset de linha)."
msgstr[1] "Pedaço #%d apareceu em %d (%d offset de linhas)."
-#: apply.c:3068
+#: apply.c:3076
#, c-format
msgid "Context reduced to (%ld/%ld) to apply fragment at %d"
msgstr "Contexto reduzido a (%ld/%ld) para submeter fragmento em %d"
-#: apply.c:3074
+#: apply.c:3082
#, c-format
msgid ""
"while searching for:\n"
@@ -1258,498 +1310,494 @@ msgstr ""
"procurando por:\n"
"%.*s"
-#: apply.c:3096
+#: apply.c:3104
#, c-format
msgid "missing binary patch data for '%s'"
msgstr "faltando patch binário para '%s'"
-#: apply.c:3104
+#: apply.c:3112
#, c-format
msgid "cannot reverse-apply a binary patch without the reverse hunk to '%s'"
msgstr "incapaz submeter-inversamente patch binário sem pedaço inverso a '%s'"
-#: apply.c:3151
+#: apply.c:3159
#, c-format
msgid "cannot apply binary patch to '%s' without full index line"
-msgstr "incapaz submeter patch binário a '%s' sem a linha completa de index"
+msgstr ""
+"incapaz submeter remendo binário a '%s' sem a linha completa para cenário"
-#: apply.c:3162
+#: apply.c:3170
#, c-format
msgid ""
"the patch applies to '%s' (%s), which does not match the current contents."
msgstr ""
"o patch submete-se a '%s' (%s), que corresponde a conteúdo actual nenhum."
-#: apply.c:3170
+#: apply.c:3178
#, c-format
msgid "the patch applies to an empty '%s' but it is not empty"
msgstr "o patch submete-se a um '%s' vazio mas tem conteúdo"
-#: apply.c:3188
+#: apply.c:3196
#, c-format
msgid "the necessary postimage %s for '%s' cannot be read"
msgstr "incapaz ler a postimage necessária %s para '%s'"
-#: apply.c:3201
+#: apply.c:3209
#, c-format
msgid "binary patch does not apply to '%s'"
msgstr "path binário submete-se a '%s' de maneira nenhuma"
-#: apply.c:3208
+#: apply.c:3216
#, c-format
msgid "binary patch to '%s' creates incorrect result (expecting %s, got %s)"
msgstr ""
"patch binário para '%s' cria resultado incorreto (esperei %s, recebi %s)"
-#: apply.c:3229
+#: apply.c:3237
#, c-format
msgid "patch failed: %s:%ld"
msgstr "patch falhou: %s:%ld"
-#: apply.c:3352
+#: apply.c:3360
#, c-format
msgid "cannot checkout %s"
-msgstr "incapaz de checkout %s"
+msgstr "incapaz de observar %s"
-#: apply.c:3404 apply.c:3415 apply.c:3461 midx.c:98 pack-revindex.c:214
-#: setup.c:308
+#: apply.c:3412 apply.c:3423 apply.c:3469 midx.c:105 pack-revindex.c:214
+#: setup.c:310
#, c-format
msgid "failed to read %s"
msgstr "falha a ler %s"
-#: apply.c:3412
+#: apply.c:3420
#, c-format
msgid "reading from '%s' beyond a symbolic link"
msgstr "lendo '%s' além de uma ligação simbólica"
-#: apply.c:3441 apply.c:3687
+#: apply.c:3449 apply.c:3721
#, c-format
msgid "path %s has been renamed/deleted"
msgstr "path %s mudou de nome ou foi eliminado"
-#: apply.c:3527 apply.c:3702
+#: apply.c:3559 apply.c:3736
#, c-format
msgid "%s: does not exist in index"
-msgstr "%s: tem inexistência no index"
+msgstr "%s: tem inexistência no cenário"
-#: apply.c:3536 apply.c:3710 apply.c:3954
+#: apply.c:3568 apply.c:3744 apply.c:3960
#, c-format
msgid "%s: does not match index"
-msgstr "%s: no index há correspondência nenhuma"
+msgstr "%s: no cenário há correspondência nenhuma"
-#: apply.c:3571
+#: apply.c:3605
msgid "repository lacks the necessary blob to perform 3-way merge."
msgstr "repositório falta o blob necessário para recorrer à tri-junção."
-#: apply.c:3574
+#: apply.c:3608
#, c-format
msgid "Performing three-way merge...\n"
msgstr "Realizando tri-junção...\n"
-#: apply.c:3590 apply.c:3594
+#: apply.c:3624 apply.c:3628
#, c-format
msgid "cannot read the current contents of '%s'"
msgstr "incapaz ler conteúdo atual de '%s'"
-#: apply.c:3606
+#: apply.c:3640
#, c-format
msgid "Failed to perform three-way merge...\n"
-msgstr "Falha a recorrer a integração com 3 pontos...\n"
+msgstr "Falha a fazer tri-junção...\n"
-#: apply.c:3620
+#: apply.c:3654
#, c-format
msgid "Applied patch to '%s' with conflicts.\n"
-msgstr "Patch aplicado a '%s' com conflitos.\n"
+msgstr "Remendo aplicado a '%s' com conflitos.\n"
-#: apply.c:3625
+#: apply.c:3659
#, c-format
msgid "Applied patch to '%s' cleanly.\n"
-msgstr "Patch aplicado a '%s' com sucesso.\n"
+msgstr "Remendo aplicado corretamente a '%s'.\n"
-#: apply.c:3642
+#: apply.c:3676
#, c-format
msgid "Falling back to direct application...\n"
msgstr "Recorrendo a aplicação direta...\n"
-#: apply.c:3654
+#: apply.c:3688
msgid "removal patch leaves file contents"
msgstr "patch de remoção deixa conteúdos no ficheiro"
-#: apply.c:3727
+#: apply.c:3761
#, c-format
msgid "%s: wrong type"
msgstr "%s: tipo errado"
-#: apply.c:3729
+#: apply.c:3763
#, c-format
msgid "%s has type %o, expected %o"
msgstr "%s é do tipo %o, esperado %o"
-#: apply.c:3894 apply.c:3896 read-cache.c:863 read-cache.c:892
-#: read-cache.c:1353
+#: apply.c:3900 apply.c:3902 read-cache.c:903 read-cache.c:932
+#: read-cache.c:1399
#, c-format
msgid "invalid path '%s'"
msgstr "caminho inválido '%s'"
-#: apply.c:3952
+#: apply.c:3958
#, c-format
msgid "%s: already exists in index"
msgstr "%s: já existe no cenário"
-#: apply.c:3956
+#: apply.c:3962
#, c-format
msgid "%s: already exists in working directory"
msgstr "%s: já existe na pasta-trabalho"
-#: apply.c:3976
+#: apply.c:3982
#, c-format
msgid "new mode (%o) of %s does not match old mode (%o)"
msgstr "novo modo (%o) de %s é incorrespondente ao modo antigo (%o)"
-#: apply.c:3981
+#: apply.c:3987
#, c-format
msgid "new mode (%o) of %s does not match old mode (%o) of %s"
msgstr "novo modo (%o) de %s é incorrespondente ao modo antigo (%o) de %s"
-#: apply.c:4001
+#: apply.c:4007
#, c-format
msgid "affected file '%s' is beyond a symbolic link"
msgstr "o ficheiro afetado '%s' é indicado por uma ligação simbólica"
-#: apply.c:4005
+#: apply.c:4011
#, c-format
msgid "%s: patch does not apply"
msgstr "%s: patch submete-se de maneira nenhuma"
-#: apply.c:4020
+#: apply.c:4026
#, c-format
msgid "Checking patch %s..."
msgstr ""
-#: apply.c:4112
+#: apply.c:4118
#, c-format
msgid "sha1 information is lacking or useless for submodule %s"
msgstr "sha1 tem falta informação ou é inútil para o submódulo %s"
-#: apply.c:4119
+#: apply.c:4125
#, c-format
msgid "mode change for %s, which is not in current HEAD"
msgstr "alteração de modo para %s, que está fora da HEAD atual"
-#: apply.c:4122
+#: apply.c:4128
#, c-format
msgid "sha1 information is lacking or useless (%s)."
msgstr "informação de sha1 está faltando ou é inútil (%s)."
-#: apply.c:4131
+#: apply.c:4137
#, c-format
msgid "could not add %s to temporary index"
-msgstr "incapaz adicionar %s ao índex temporário"
+msgstr "incapaz adicionar %s ao cenário temporário"
-#: apply.c:4141
+#: apply.c:4147
#, c-format
msgid "could not write temporary index to %s"
-msgstr "incapaz escrever index temporário para %s"
+msgstr "incapaz escrever o cenário temporário para %s"
-#: apply.c:4279
+#: apply.c:4285
#, c-format
msgid "unable to remove %s from index"
-msgstr "impossível remover %s de index"
+msgstr "incapaz remover %s de cenário"
-#: apply.c:4313
+#: apply.c:4319
#, c-format
msgid "corrupt patch for submodule %s"
-msgstr "patch corrompido no submódulo %s"
+msgstr "remendo corrompido no submódulo %s"
-#: apply.c:4319
+#: apply.c:4325
#, c-format
msgid "unable to stat newly created file '%s'"
msgstr "incapaz obter estatutário de ficheiro recém-criado '%s'"
-#: apply.c:4327
+#: apply.c:4333
#, c-format
msgid "unable to create backing store for newly created file %s"
-msgstr "incapaz criar armazenamento de backup para ficheiro recém-criado %s"
+msgstr "incapaz criar armazenamento-backup para ficheiro recém-criado %s"
-#: apply.c:4333 apply.c:4478
+#: apply.c:4339 apply.c:4484
#, c-format
msgid "unable to add cache entry for %s"
-msgstr "incapaz adicionar entrada de cache para %s"
+msgstr "incapaz adicionar entrada de cenário para %s"
-#: apply.c:4376 builtin/bisect--helper.c:525
+#: apply.c:4382 builtin/bisect--helper.c:540 builtin/gc.c:2258
+#: builtin/gc.c:2293
#, c-format
msgid "failed to write to '%s'"
msgstr "falha a escrever para '%s'"
-#: apply.c:4380
+#: apply.c:4386
#, c-format
msgid "closing file '%s'"
msgstr "fechando ficheiro '%s'"
-#: apply.c:4450
+#: apply.c:4456
#, c-format
msgid "unable to write file '%s' mode %o"
msgstr "incapaz escrever ficheiro '%s' com modo %o"
-#: apply.c:4548
+#: apply.c:4554
#, c-format
msgid "Applied patch %s cleanly."
-msgstr "Patch %s aplicado com sucesso."
+msgstr "Remendo %s aplicado corretamente."
-#: apply.c:4556
+#: apply.c:4562
msgid "internal error"
msgstr "erro interno"
-#: apply.c:4559
+#: apply.c:4565
#, c-format
msgid "Applying patch %%s with %d reject..."
msgid_plural "Applying patch %%s with %d rejects..."
msgstr[0] "A aplicar patch %%s com %d rejeição..."
msgstr[1] "A aplicar patch %%s com %d rejeições..."
-#: apply.c:4570
+#: apply.c:4576
#, c-format
msgid "truncating .rej filename to %.*s.rej"
msgstr "a truncar o nome do ficheiro .rej em %.*s.rej"
-#: apply.c:4578 builtin/fetch.c:993 builtin/fetch.c:1394
+#: apply.c:4584
#, c-format
msgid "cannot open %s"
msgstr "incapaz abrir %s"
-#: apply.c:4592
+#: apply.c:4598
#, c-format
msgid "Hunk #%d applied cleanly."
-msgstr "Excerto nº%d aplicado com sucesso."
+msgstr "Excerto #%d aplicado corretamente."
-#: apply.c:4596
+#: apply.c:4602
#, c-format
msgid "Rejected hunk #%d."
-msgstr "Excerto nº%d rejeitado."
+msgstr "Excerto #%d rejeitado."
-#: apply.c:4725
+#: apply.c:4731
#, c-format
msgid "Skipped patch '%s'."
-msgstr "Patch '%s' ignorado."
+msgstr "Remendo '%s' ignorado."
-#: apply.c:4733
-msgid "unrecognized input"
-msgstr "input desconhecido"
+#: apply.c:4740
+msgid "No valid patches in input (allow with \"--allow-empty\")"
+msgstr ""
-#: apply.c:4753
+#: apply.c:4761
msgid "unable to read index file"
-msgstr "incapaz ler ficheiro index"
+msgstr "incapaz ler ficheiro de cenário"
-#: apply.c:4910
+#: apply.c:4918
#, c-format
msgid "can't open patch '%s': %s"
msgstr "incapaz abrir patch '%s': %s"
-#: apply.c:4937
+#: apply.c:4945
#, c-format
msgid "squelched %d whitespace error"
msgid_plural "squelched %d whitespace errors"
msgstr[0] "%d erro de espaço em branco reprimido"
msgstr[1] "%d erros de espaço em branco reprimidos"
-#: apply.c:4943 apply.c:4958
+#: apply.c:4951 apply.c:4966
#, c-format
msgid "%d line adds whitespace errors."
msgid_plural "%d lines add whitespace errors."
msgstr[0] "%d linha adiciona erros de espaço em branco."
msgstr[1] "%d linhas adicionam erros de espaço em branco."
-#: apply.c:4951
+#: apply.c:4959
#, c-format
msgid "%d line applied after fixing whitespace errors."
msgid_plural "%d lines applied after fixing whitespace errors."
msgstr[0] "%d linha aplicada depois de corrigir erros de espaço em branco."
msgstr[1] "%d linhas aplicadas depois de corrigir erros de espaço em branco."
-#: apply.c:4967 builtin/add.c:678 builtin/mv.c:304 builtin/rm.c:423
+#: apply.c:4975 builtin/add.c:690 builtin/mv.c:338 builtin/rm.c:430
msgid "Unable to write new index file"
-msgstr "Incapaz de escrever novo ficheiro index"
+msgstr "Incapaz de escrever novo ficheiro de cenário"
-#: apply.c:4995
+#: apply.c:5003
msgid "don't apply changes matching the given path"
msgstr ""
"submeter de maneira nenhuma alterações correspondentes a path fornecido"
-#: apply.c:4998
+#: apply.c:5006
msgid "apply changes matching the given path"
msgstr "submeter alterações correspondentes a path fornecido"
-#: apply.c:5000 builtin/am.c:2318
+#: apply.c:5008 builtin/am.c:2379
msgid "num"
msgstr "num"
-#: apply.c:5001
+#: apply.c:5009
msgid "remove <num> leading slashes from traditional diff paths"
msgstr "remover <num> barras à esquerda dos caminhos de diff tradicional"
-#: apply.c:5004
+#: apply.c:5012
msgid "ignore additions made by the patch"
msgstr "ignorar adições feitas pelo patch"
-#: apply.c:5006
+#: apply.c:5014
msgid "instead of applying the patch, output diffstat for the input"
msgstr "invés aplicada patch, output diffstat para "
-#: apply.c:5010
+#: apply.c:5018
msgid "show number of added and deleted lines in decimal notation"
msgstr "mostrar número de linhas adicionadas e removidas em notação decimal"
-#: apply.c:5012
+#: apply.c:5020
msgid "instead of applying the patch, output a summary for the input"
msgstr "em vez de aplicar o patch, mostrar um resumo da entrada"
-#: apply.c:5014
+#: apply.c:5022
msgid "instead of applying the patch, see if the patch is applicable"
msgstr "em vez de aplicar o patch, verificar se o patch pode ser aplicado"
-#: apply.c:5016
+#: apply.c:5024
msgid "make sure the patch is applicable to the current index"
-msgstr "garantir que o patch pode ser aplicado ao índice atual"
+msgstr "garante que o remendo é aplicável em cenário atual"
-#: apply.c:5018
+#: apply.c:5026
msgid "mark new files with `git add --intent-to-add`"
msgstr ""
-#: apply.c:5020
+#: apply.c:5028
msgid "apply a patch without touching the working tree"
-msgstr "aplicar um patch sem tocar na árvore de trabalho"
+msgstr "aplicar um remendo sem tocar na árvore-trabalho"
-#: apply.c:5022
+#: apply.c:5030
msgid "accept a patch that touches outside the working area"
-msgstr "aceitar patches que alteram ficheiros fora da área de trabalho"
+msgstr "aceitar remendo que alteram ficheiros fora da área-trabalho"
-#: apply.c:5025
+#: apply.c:5033
msgid "also apply the patch (use with --stat/--summary/--check)"
msgstr "submeter o remendo também (usa com --stat/--summary/--check)"
-#: apply.c:5027
+#: apply.c:5035
msgid "attempt three-way merge, fall back on normal patch if that fails"
msgstr "tentar tri-junção se um patch submete-se de maneira nenhuma"
-#: apply.c:5029
+#: apply.c:5037
msgid "build a temporary index based on embedded index information"
msgstr ""
-"construir um índice temporário baseado na informação incorporada do índice"
+"construir um cenário temporário baseado na informação incorporada de cenário"
-#: apply.c:5032 builtin/checkout-index.c:196 builtin/ls-files.c:617
+#: apply.c:5040 builtin/checkout-index.c:230
msgid "paths are separated with NUL character"
msgstr "caminhos estão separados por caractere NUL"
-#: apply.c:5034
+#: apply.c:5042
msgid "ensure at least <n> lines of context match"
msgstr "garantir que pelo menos <n> linhas de contexto correspondam"
-#: apply.c:5035 builtin/am.c:2294 builtin/am.c:2297
+#: apply.c:5043 builtin/am.c:2355 builtin/am.c:2358
#: builtin/interpret-trailers.c:98 builtin/interpret-trailers.c:100
-#: builtin/interpret-trailers.c:102 builtin/pack-objects.c:3991
-#: builtin/rebase.c:1347
+#: builtin/interpret-trailers.c:102 builtin/pack-objects.c:3983
+#: builtin/rebase.c:1079
msgid "action"
msgstr "ação"
-#: apply.c:5036
+#: apply.c:5044
msgid "detect new or modified lines that have whitespace errors"
msgstr "detetar linhas novas ou modificadas que tenham espaços em branco"
-#: apply.c:5039 apply.c:5042
+#: apply.c:5047 apply.c:5050
msgid "ignore changes in whitespace when finding context"
msgstr "ignorar alterações de espaço em branco ao procurar contexto"
-#: apply.c:5045
+#: apply.c:5053
msgid "apply the patch in reverse"
msgstr "aplicar o patch em reverso"
-#: apply.c:5047
+#: apply.c:5055
msgid "don't expect at least one line of context"
msgstr "conta com linha de contexto nenhuma"
-#: apply.c:5049
+#: apply.c:5057
msgid "leave the rejected hunks in corresponding *.rej files"
msgstr "deixar os pedaços rejeitados nos respetivos ficheiros *.rej"
-#: apply.c:5051
+#: apply.c:5059
msgid "allow overlapping hunks"
msgstr "permitir a sobreposição de pedaços"
-#: apply.c:5052 builtin/add.c:364 builtin/check-ignore.c:22
-#: builtin/commit.c:1481 builtin/count-objects.c:98 builtin/fsck.c:756
-#: builtin/log.c:2297 builtin/mv.c:123 builtin/read-tree.c:128
-msgid "be verbose"
-msgstr "ser verboso"
-
-#: apply.c:5054
+#: apply.c:5062
msgid "tolerate incorrectly detected missing new-line at the end of file"
msgstr ""
-"tolerar deteções incorretas de falta de nova linha no final do ficheiro"
+"tolerar detecções incorretas de falta de nova linha no final do ficheiro"
-#: apply.c:5057
+#: apply.c:5065
msgid "do not trust the line counts in the hunk headers"
msgstr "desconfia da contagem de linhas nos headers de pedaços"
-#: apply.c:5059 builtin/am.c:2306
+#: apply.c:5067 builtin/am.c:2367
msgid "root"
msgstr "raiz"
-#: apply.c:5060
+#: apply.c:5068
msgid "prepend <root> to all filenames"
msgstr "preceder <root> a todos os nomes de ficheiro"
-#: archive-tar.c:125 archive-zip.c:345
+#: apply.c:5071
+msgid "don't return error for empty patches"
+msgstr ""
+
+#: archive-tar.c:125 archive-zip.c:346
#, c-format
msgid "cannot stream blob %s"
msgstr "incapaz streamar blob %s"
-#: archive-tar.c:265 archive-zip.c:358
+#: archive-tar.c:265 archive-zip.c:359
#, c-format
msgid "unsupported file mode: 0%o (SHA1: %s)"
msgstr "modo de ficheiro fora de suporte: 0%o (SHA1: %s)"
-#: archive-tar.c:450
+#: archive-tar.c:447
#, c-format
msgid "unable to start '%s' filter"
msgstr "incapaz iniciar filtro '%s'"
-#: archive-tar.c:453
+#: archive-tar.c:450
msgid "unable to redirect descriptor"
msgstr "incapaz redirecionar descritor"
-#: archive-tar.c:460
+#: archive-tar.c:457
#, c-format
msgid "'%s' filter reported error"
msgstr ""
-#: archive-zip.c:318
+#: archive-zip.c:319
#, c-format
msgid "path is not valid UTF-8: %s"
msgstr ""
-#: archive-zip.c:322
+#: archive-zip.c:323
#, c-format
msgid "path too long (%d chars, SHA1: %s): %s"
msgstr ""
-#: archive-zip.c:469 builtin/pack-objects.c:365 builtin/pack-objects.c:368
+#: archive-zip.c:470 builtin/pack-objects.c:363 builtin/pack-objects.c:366
#, c-format
msgid "deflate error (%d)"
msgstr "erro ao compactar (%d)"
-#: archive-zip.c:603
+#: archive-zip.c:604
#, c-format
msgid "timestamp too large for this system: %<PRIuMAX>"
-msgstr ""
+msgstr "carimbo cronológico demasiado grande para este sistema: %<PRIuMAX>"
#: archive.c:14
msgid "git archive [<options>] <tree-ish> [<path>...]"
msgstr "git archive [<opções>] <arvoredo> [<caminho>...]"
-#: archive.c:15
-msgid "git archive --list"
-msgstr "git archive --list"
-
#: archive.c:16
msgid ""
"git archive --remote <repo> [--exec <cmd>] [<options>] <tree-ish> [<path>...]"
@@ -1761,142 +1809,138 @@ msgstr ""
msgid "git archive --remote <repo> [--exec <cmd>] --list"
msgstr "git archive --remote <repo> [--exec <cmd>] --list"
-#: archive.c:188
-#, c-format
-msgid "cannot read %s"
-msgstr "incapaz ler %s"
-
-#: archive.c:342 sequencer.c:460 sequencer.c:1915 sequencer.c:3095
-#: sequencer.c:3537 sequencer.c:3665 builtin/am.c:262 builtin/commit.c:833
-#: builtin/merge.c:1144
+#: archive.c:188 archive.c:341 builtin/gc.c:497 builtin/notes.c:238
+#: builtin/tag.c:579
#, c-format
-msgid "could not read '%s'"
+msgid "cannot read '%s'"
msgstr "incapaz ler '%s'"
-#: archive.c:427 builtin/add.c:205 builtin/add.c:645 builtin/rm.c:328
+#: archive.c:426 builtin/add.c:214 builtin/add.c:657 builtin/rm.c:334
#, c-format
msgid "pathspec '%s' did not match any files"
msgstr "especificador de path '%s' correspondeu a ficheiro nenhum"
-#: archive.c:451
+#: archive.c:450
#, c-format
msgid "no such ref: %.*s"
msgstr "ref inexistente: %.*s"
-#: archive.c:457
+#: archive.c:456
#, c-format
msgid "not a valid object name: %s"
msgstr "nome de objeto inválido: %s"
-#: archive.c:470
+#: archive.c:469
#, c-format
msgid "not a tree object: %s"
msgstr "é objeto árvore nenhum: %s"
-#: archive.c:482
+#: archive.c:481
msgid "current working directory is untracked"
-msgstr "pasta de trabalho atual está por seguir"
+msgstr "pasta-trabalho atual está desmonitorizada"
-#: archive.c:523
+#: archive.c:522
#, c-format
msgid "File not found: %s"
msgstr "ficheiro por encontrar: %s"
-#: archive.c:525
+#: archive.c:524
#, c-format
msgid "Not a regular file: %s"
msgstr "É ficheiro normal nenhum: %s"
-#: archive.c:552
+#: archive.c:551
msgid "fmt"
msgstr "fmt"
-#: archive.c:552
+#: archive.c:551
msgid "archive format"
msgstr "formato do arquivo"
-#: archive.c:553 builtin/log.c:1775
+#: archive.c:552 builtin/log.c:1809
msgid "prefix"
msgstr "prefixo"
-#: archive.c:554
+#: archive.c:553
msgid "prepend prefix to each pathname in the archive"
msgstr "preceder o prefixo a cada nome de caminho dentro do arquivo"
-#: archive.c:555 archive.c:558 builtin/blame.c:884 builtin/blame.c:888
-#: builtin/blame.c:889 builtin/commit-tree.c:117 builtin/config.c:135
-#: builtin/fast-export.c:1207 builtin/fast-export.c:1209
-#: builtin/fast-export.c:1213 builtin/grep.c:921 builtin/hash-object.c:105
-#: builtin/ls-files.c:653 builtin/ls-files.c:656 builtin/notes.c:412
-#: builtin/notes.c:578 builtin/read-tree.c:123 parse-options.h:191
+#: archive.c:554 archive.c:557 builtin/blame.c:881 builtin/blame.c:885
+#: builtin/blame.c:886 builtin/commit-tree.c:115 builtin/config.c:135
+#: builtin/fast-export.c:1181 builtin/fast-export.c:1183
+#: builtin/fast-export.c:1187 builtin/grep.c:936 builtin/hash-object.c:104
+#: builtin/ls-files.c:654 builtin/ls-files.c:657 builtin/notes.c:410
+#: builtin/notes.c:576 builtin/read-tree.c:115 parse-options.h:195
msgid "file"
msgstr "ficheiro"
-#: archive.c:556
+#: archive.c:555
msgid "add untracked file to archive"
-msgstr "adiciona ficheiro por seguir a arquivo"
+msgstr "adiciona ficheiro desmonitorizado a arquivo"
-#: archive.c:559 builtin/archive.c:90
+#: archive.c:558 builtin/archive.c:88
msgid "write the archive to this file"
msgstr "escreve arquivo para este ficheiro"
-#: archive.c:561
+#: archive.c:560
msgid "read .gitattributes in working directory"
msgstr "ler .gitattributes da pasta-trabalho"
-#: archive.c:562
+#: archive.c:561
msgid "report archived files on stderr"
msgstr "reportar, na saída de erro padrão, ficheiro arquivados"
-#: archive.c:564
+#: archive.c:563
msgid "set compression level"
msgstr "definir nível de compressão"
-#: archive.c:567
+#: archive.c:566
msgid "list supported archive formats"
msgstr "listar formatos de arquivo suportados"
-#: archive.c:569 builtin/archive.c:91 builtin/clone.c:118 builtin/clone.c:121
-#: builtin/submodule--helper.c:1898 builtin/submodule--helper.c:2352
-#: builtin/submodule--helper.c:2902
+#: archive.c:568 builtin/archive.c:89 builtin/clone.c:122 builtin/clone.c:125
+#: builtin/submodule--helper.c:1884 builtin/submodule--helper.c:2718
msgid "repo"
msgstr "repo"
-#: archive.c:570 builtin/archive.c:92
+#: archive.c:569 builtin/archive.c:90
msgid "retrieve the archive from remote repository <repo>"
-msgstr "obter o arquivo a partir do repositório remoto <repo>"
+msgstr "obter o arquivo de repositório remoto <repo>"
-#: archive.c:571 builtin/archive.c:93 builtin/difftool.c:717
-#: builtin/notes.c:498
+#: archive.c:570 builtin/archive.c:91 builtin/difftool.c:708
+#: builtin/notes.c:496
msgid "command"
msgstr "comando"
-#: archive.c:572 builtin/archive.c:94
+#: archive.c:571 builtin/archive.c:92
msgid "path to the remote git-upload-archive command"
msgstr "caminho para o comando git-upload-archive no remoto"
-#: archive.c:579
+#: archive.c:578
msgid "Unexpected option --remote"
msgstr "Opção inesperada --remote"
-#: archive.c:581
-msgid "Option --exec can only be used together with --remote"
-msgstr "Opção --exec apenas pode ser usada com --remote"
+#: archive.c:580 fetch-pack.c:300 revision.c:2914 builtin/add.c:530
+#: builtin/add.c:562 builtin/checkout.c:1782 builtin/clone.c:1099
+#: builtin/clone.c:1102 builtin/commit.c:371 builtin/fast-export.c:1230
+#: builtin/index-pack.c:1854 builtin/log.c:2140 builtin/reset.c:442
+#: builtin/reset.c:500 builtin/rm.c:281 builtin/stash.c:1708
+#: builtin/worktree.c:580 builtin/worktree.c:781 http-fetch.c:144
+#: http-fetch.c:153
+#, c-format
+msgid "the option '%s' requires '%s'"
+msgstr "opção '%s' exige '%s'"
-#: archive.c:583
+#: archive.c:582
msgid "Unexpected option --output"
msgstr "Opção inesperada --output"
-#: archive.c:585
-msgid "Options --add-file and --remote cannot be used together"
-msgstr "Opções --add-file e --remote podem nada ser usadas juntas"
-
-#: archive.c:607
+#: archive.c:606
#, c-format
msgid "Unknown archive format '%s'"
-msgstr "Formato de arquivo desconhecido '%s'"
+msgstr "Formato de arquivo '%s' desconhecido"
-#: archive.c:616
+#: archive.c:615
#, c-format
msgid "Argument not supported for format '%s': -%d"
msgstr "Argumento por ser suportado para formato '%s': -%d"
@@ -1919,60 +1963,60 @@ msgstr ""
"Os padrões negativos são ignorados nos atributos do git\n"
"Use '\\!' para uma exclamação literal à esquerda."
-#: bisect.c:489
+#: bisect.c:488
#, c-format
msgid "Badly quoted content in file '%s': %s"
msgstr "Conteúdo incorretamente citado no ficheiro '%s': %s"
-#: bisect.c:699
+#: bisect.c:698
#, c-format
msgid "We cannot bisect more!\n"
-msgstr "Conseguimos bisectar mais nenhum!\n"
+msgstr "Conseguimos bissetar mais nada!\n"
-#: bisect.c:766
+#: bisect.c:765
#, c-format
msgid "Not a valid commit name %s"
-msgstr "Nome de commit inválido %s"
+msgstr "Nome de memória inválido %s"
-#: bisect.c:791
+#: bisect.c:790
#, c-format
msgid ""
"The merge base %s is bad.\n"
"This means the bug has been fixed between %s and [%s].\n"
msgstr ""
-"A base de integração %s é má (bad).\n"
-"Significa que o bug foi corrigido entre %s e [%s].\n"
+"A base de junção %s é má.\n"
+"Isto significa que o bug foi corrigido entre %s e [%s].\n"
-#: bisect.c:796
+#: bisect.c:795
#, c-format
msgid ""
"The merge base %s is new.\n"
"The property has changed between %s and [%s].\n"
msgstr ""
-"A base de integração %s é nova (new).\n"
-"A propriedade foi mudada entre %s e [%s].\n"
+"A base de junção %s é nova.\n"
+"A propriedade foi alterada entre %s e [%s].\n"
-#: bisect.c:801
+#: bisect.c:800
#, c-format
msgid ""
"The merge base %s is %s.\n"
"This means the first '%s' commit is between %s and [%s].\n"
msgstr ""
-"A base de integração %s é %s.\n"
-"Significa que o primeiro commit '%s' está entre %s e [%s].\n"
+"A base de junção %s é %s.\n"
+"Significa que o primeira memória '%s' está entre %s e [%s].\n"
-#: bisect.c:809
+#: bisect.c:808
#, c-format
msgid ""
"Some %s revs are not ancestors of the %s rev.\n"
"git bisect cannot work properly in this case.\n"
"Maybe you mistook %s and %s revs?\n"
msgstr ""
-"Algumas revisões %s são sucessores da revisão %s.\n"
-"git bisect pode funcionar incorretamente nesta situação.\n"
-"Talvez tenhas confundido revisões %s e %s?\n"
+"Algumas revs %s são antecessores de nenhuma rev %s.\n"
+"git bisect funciona incorretamente nesta situação.\n"
+"Talvez tenhas confundido as revs %s e %s?\n"
-#: bisect.c:822
+#: bisect.c:821
#, c-format
msgid ""
"the merge base between %s and [%s] must be skipped.\n"
@@ -1980,48 +2024,48 @@ msgid ""
"We continue anyway."
msgstr ""
"a base de junção entre %s e [%s] tem de ser saltada.\n"
-"Portanto temos incerteza quanto a o primeiro commit %s estar entre %s e %s.\n"
-"Continuemos de qualquer maneira."
+"Portanto temos incerteza quanto à primeira memória %s estar entre %s e %s.\n"
+"Continuemos de qualquer das maneiras."
-#: bisect.c:861
+#: bisect.c:860
#, c-format
msgid "Bisecting: a merge base must be tested\n"
-msgstr "A bissetar: uma base de integração tem de ser testada\n"
+msgstr "Bissetando: uma base de junção tem de ser testada\n"
-#: bisect.c:911
+#: bisect.c:910
#, c-format
msgid "a %s revision is needed"
msgstr "precisa-se de uma revisão %s"
-#: bisect.c:941 builtin/notes.c:177 builtin/tag.c:298
+#: bisect.c:940
#, c-format
msgid "could not create file '%s'"
msgstr "incapaz criar ficheiro '%s'"
-#: bisect.c:987 builtin/merge.c:153
+#: bisect.c:986 builtin/merge.c:155
#, c-format
msgid "could not read file '%s'"
msgstr "incapaz ler ficheiro '%s'"
-#: bisect.c:1027
+#: bisect.c:1026
msgid "reading bisect refs failed"
msgstr "falhou ler refs de bisseção"
-#: bisect.c:1057
+#: bisect.c:1056
#, c-format
msgid "%s was both %s and %s\n"
msgstr "%s era %s e %s em simultâneo\n"
-#: bisect.c:1066
+#: bisect.c:1065
#, c-format
msgid ""
"No testable commit found.\n"
"Maybe you started with bad path arguments?\n"
msgstr ""
-"Nenhum commit testável encontrado.\n"
-"Talvez tenha começado com parâmetros de caminho incorretos?\n"
+"Nenhuma memória testável encontrada.\n"
+"Talvez tenha começado com argumentos de caminho incorretos?\n"
-#: bisect.c:1095
+#: bisect.c:1094
#, c-format
msgid "(roughly %d step)"
msgid_plural "(roughly %d steps)"
@@ -2031,143 +2075,178 @@ msgstr[1] "(aproximadamente %d passos)"
#. TRANSLATORS: the last %s will be replaced with "(roughly %d
#. steps)" translation.
#.
-#: bisect.c:1101
+#: bisect.c:1100
#, c-format
msgid "Bisecting: %d revision left to test after this %s\n"
msgid_plural "Bisecting: %d revisions left to test after this %s\n"
-msgstr[0] "A bissetar: falta %d revisão para testar depois desta %s\n"
-msgstr[1] "A bissetar: faltam %d revisões para testar depois desta %s\n"
+msgstr[0] "Bissetando: falta %d revisão para testar depois desta %s\n"
+msgstr[1] "Bissetando: faltam %d revisões para testar depois desta %s\n"
-#: blame.c:2776
+#: blame.c:2773
msgid "--contents and --reverse do not blend well."
msgstr "--contents e --reverse são imiscíveis."
-#: blame.c:2790
+#: blame.c:2787
msgid "cannot use --contents with final commit object name"
-msgstr "usar --contents com nome de objeto commit final é impossível"
+msgstr "incapaz usar --contents com nome de objeto de memória final"
-#: blame.c:2811
+#: blame.c:2808
msgid "--reverse and --first-parent together require specified latest commit"
-msgstr "--reverse e --first-parent juntos exige que se especifique a última memória"
+msgstr ""
+"--reverse e --first-parent juntos exige que se especifique a última memória"
-#: blame.c:2820 bundle.c:224 ref-filter.c:2278 remote.c:2041 sequencer.c:2333
-#: sequencer.c:4865 submodule.c:844 builtin/commit.c:1113 builtin/log.c:414
-#: builtin/log.c:1021 builtin/log.c:1629 builtin/log.c:2056 builtin/log.c:2346
-#: builtin/merge.c:428 builtin/pack-objects.c:3343 builtin/pack-objects.c:3806
-#: builtin/pack-objects.c:3821 builtin/shortlog.c:255
+#: blame.c:2817 bundle.c:231 midx.c:1058 ref-filter.c:2371 remote.c:2157
+#: sequencer.c:2348 sequencer.c:4872 submodule.c:913 builtin/commit.c:1118
+#: builtin/log.c:437 builtin/log.c:1055 builtin/log.c:1663 builtin/log.c:2096
+#: builtin/log.c:2387 builtin/merge.c:431 builtin/pack-objects.c:3381
+#: builtin/pack-objects.c:3781 builtin/pack-objects.c:3796
+#: builtin/shortlog.c:255
msgid "revision walk setup failed"
msgstr "falha ao configurar percurso de revisões"
-#: blame.c:2838
+#: blame.c:2835
msgid ""
"--reverse --first-parent together require range along first-parent chain"
msgstr ""
-"--reverse --first-parent juntos requer intervalo ao longo do primeiro-pai"
+"--reverse --first-parent juntos requer intervalo ao longo da série primeiro-"
+"parente"
-#: blame.c:2849
+#: blame.c:2846
#, c-format
msgid "no such path %s in %s"
msgstr "path %s inexistente em %s"
-#: blame.c:2860
+#: blame.c:2857
#, c-format
msgid "cannot read blob %s for path %s"
msgstr "incapaz ler blob %s para path %s"
-#: branch.c:53
-#, c-format
+#: branch.c:93
msgid ""
-"\n"
-"After fixing the error cause you may try to fix up\n"
-"the remote tracking information by invoking\n"
-"\"git branch --set-upstream-to=%s%s%s\"."
+"cannot inherit upstream tracking configuration of multiple refs when "
+"rebasing is requested"
msgstr ""
-"\n"
-"Após resolver a causa do erro, pode tentar corrigir\n"
-"o ramo remoto que deve ser seguido, invocando\n"
-"\"git branch --set-upstream-to=%s%s%s\"."
+"incapaz de herdar configuração de monitorização de upstream de múltiplas "
+"refs quando é pedido um rebase"
-#: branch.c:67
+#: branch.c:104
#, c-format
-msgid "Not setting branch %s as its own upstream."
-msgstr "Indefinindo ramo %s como seu próprio upstream."
+msgid "not setting branch '%s' as its own upstream"
+msgstr "deixando por definir ramo '%s' como o seu próprio upstream"
-#: branch.c:93
+#: branch.c:160
#, c-format
-msgid "Branch '%s' set up to track remote branch '%s' from '%s' by rebasing."
-msgstr "Ramo %s configurado para seguir o ramo remoto %s de %s por rebase."
+msgid "branch '%s' set up to track '%s' by rebasing."
+msgstr "ramo '%s' configurado para monitorizar '%s' por rebaseamento."
-#: branch.c:94
+#: branch.c:161
#, c-format
-msgid "Branch '%s' set up to track remote branch '%s' from '%s'."
-msgstr "Ramo '%s' definido para monitorizar ramo remoto '%s' de '%s'."
+msgid "branch '%s' set up to track '%s'."
+msgstr "ramo '%s' configurado para monitorizar '%s'."
-#: branch.c:98
+#: branch.c:164
#, c-format
-msgid "Branch '%s' set up to track local branch '%s' by rebasing."
-msgstr "Ramo %s configurado para seguir o ramo local %s por rebase."
+msgid "branch '%s' set up to track:"
+msgstr "ramo '%s' configurado para monitorizar:"
-#: branch.c:99
-#, c-format
-msgid "Branch '%s' set up to track local branch '%s'."
-msgstr "Ramo %s configurado para seguir o ramo local %s."
+#: branch.c:176
+msgid "unable to write upstream branch configuration"
+msgstr "incapaz de escrever configuração de ramo upstream"
-#: branch.c:104
-#, c-format
-msgid "Branch '%s' set up to track remote ref '%s' by rebasing."
-msgstr "Ramo %s configurado para seguir a referência remota %s por rebase."
+#: branch.c:178
+msgid ""
+"\n"
+"After fixing the error cause you may try to fix up\n"
+"the remote tracking information by invoking:"
+msgstr ""
+"\n"
+"Após consertar a causa do erro, podes tentar consertar\n"
+"a informação de monitorização de remoto, invocando:"
-#: branch.c:105
+#: branch.c:219
#, c-format
-msgid "Branch '%s' set up to track remote ref '%s'."
-msgstr "Ramo %s configurado para seguir a referência remota %s."
+msgid "asked to inherit tracking from '%s', but no remote is set"
+msgstr ""
+"foi pedido para herdar a monitorização de '%s', mas o remoto está por definir"
-#: branch.c:109
+#: branch.c:225
#, c-format
-msgid "Branch '%s' set up to track local ref '%s' by rebasing."
-msgstr "Ramo %s configurado para seguir a referência local %s por rebase."
+msgid "asked to inherit tracking from '%s', but no merge configuration is set"
+msgstr ""
+"foi pedido para herdar a monitorização de '%s', mas a configuração de junção "
+"está por definir"
-#: branch.c:110
+#: branch.c:277
#, c-format
-msgid "Branch '%s' set up to track local ref '%s'."
-msgstr "Ramo %s configurado para seguir a referência local %s."
+msgid "not tracking: ambiguous information for ref '%s'"
+msgstr "por monitorizar: informação ambígua para ref '%s'"
-#: branch.c:119
-msgid "Unable to write upstream branch configuration"
-msgstr "Incapaz de escrever configuração de ramo upstream"
+#. TRANSLATORS: This is a line listing a remote with duplicate
+#. refspecs in the advice message below. For RTL languages you'll
+#. probably want to swap the "%s" and leading " " space around.
+#.
+#. TRANSLATORS: This is line item of ambiguous object output
+#. from describe_ambiguous_object() above. For RTL languages
+#. you'll probably want to swap the "%s" and leading " " space
+#. around.
+#.
+#: branch.c:289 object-name.c:464
+#, c-format
+msgid " %s\n"
+msgstr " %s\n"
-#: branch.c:156
+#. TRANSLATORS: The second argument is a \n-delimited list of
+#. duplicate refspecs, composed above.
+#.
+#: branch.c:295
#, c-format
-msgid "Not tracking: ambiguous information for ref %s"
-msgstr "Incapaz de seguir: informação ambígua para ref %s"
+msgid ""
+"There are multiple remotes whose fetch refspecs map to the remote\n"
+"tracking ref '%s':\n"
+"%s\n"
+"This is typically a configuration error.\n"
+"\n"
+"To support setting up tracking branches, ensure that\n"
+"different remotes' fetch refspecs map into different\n"
+"tracking namespaces."
+msgstr ""
+"Há múltiplos remotos que os espetro-refs de busca corresponde à\n"
+"ref remota de monitorização '%s':\n"
+"%s\n"
+"Isto tipicamente é um erro de configuração.\n"
+"\n"
+"Para sustentar definir ramos de monitorização, assegura\n"
+"que diferentes espetro-refs remotos de busca,\n"
+"correspondam a diferentes namespaces de monitorização."
-#: branch.c:189
+#: branch.c:344
#, c-format
-msgid "'%s' is not a valid branch name."
-msgstr "'%s' é um nome inválido para ramo."
+msgid "'%s' is not a valid branch name"
+msgstr "'%s' é um nome inválido para ramo"
-#: branch.c:208
+#: branch.c:364
#, c-format
-msgid "A branch named '%s' already exists."
-msgstr "Já existe um ramo designado '%s'."
+msgid "a branch named '%s' already exists"
+msgstr "já existe um ramo designado '%s'"
-#: branch.c:213
-msgid "Cannot force update the current branch."
-msgstr "Incapaz de forçar a atualização do ramo atual."
+#: branch.c:370
+#, c-format
+msgid "cannot force update the branch '%s' checked out at '%s'"
+msgstr "incapaz forçar atualização de ramo '%s' observado em '%s'"
-#: branch.c:233
+#: branch.c:393
#, c-format
-msgid "Cannot setup tracking information; starting point '%s' is not a branch."
+msgid "cannot set up tracking information; starting point '%s' is not a branch"
msgstr ""
-"Impossível configurar informação sobre seguir; o ponto inicial '%s' é ramo "
-"nenhum."
+"incapaz configurar informação de monitorização; o ponto inicial '%s' é ramo "
+"nenhum"
-#: branch.c:235
+#: branch.c:395
#, c-format
msgid "the requested upstream branch '%s' does not exist"
msgstr "o ramo upstream solicitado '%s' é inexistente"
-#: branch.c:237
+#: branch.c:397
msgid ""
"\n"
"If you are planning on basing your work on an upstream\n"
@@ -2179,416 +2258,437 @@ msgid ""
"\"git push -u\" to set the upstream config as you push."
msgstr ""
"\n"
-"Se pretende efetuar rebase do seu trabalho sobre um ramo\n"
-"a montante que já existe no remoto, pode ser necessário\n"
-"executar \"git fetch\" para obtê-lo.\n"
+"Se pretendes basear teu trabalho sobre um ramo upstream\n"
+"existente no remoto, poderás ter de executar \"git fetch\"\n"
+"para obtê-lo.\n"
"\n"
-"Se pretende atirar um novo ramo local que irá seguir\n"
-"o seu homólogo remoto, pode usar \"git push -u\" para configurar\n"
-"o respetivo ramo a montante, ao mesmo tempo que publica."
+"Se pretendes atirar um novo ramo local que monitorizará\n"
+"seu homólogo remoto, poderás usar \"git push -u\" para\n"
+"definir a config upstream, enquanto atiras."
-#: branch.c:281
+#: branch.c:445 builtin/replace.c:321 builtin/replace.c:377
+#: builtin/replace.c:423 builtin/replace.c:453
#, c-format
-msgid "Not a valid object name: '%s'."
-msgstr "Nome de objeto inválido: '%s'."
+msgid "not a valid object name: '%s'"
+msgstr "nome de objeto inválido: '%s'"
-#: branch.c:301
+#: branch.c:465
#, c-format
-msgid "Ambiguous object name: '%s'."
-msgstr "Nome de objeto ambíguo: '%s'."
+msgid "ambiguous object name: '%s'"
+msgstr "nome de objeto ambíguo: '%s'"
-#: branch.c:306
+#: branch.c:470
#, c-format
-msgid "Not a valid branch point: '%s'."
-msgstr "Ponto no ramo inválido: '%s'."
+msgid "not a valid branch point: '%s'"
+msgstr "ponto de ramo inválido: '%s'"
-#: branch.c:366
+#: branch.c:658
+#, c-format
+msgid "submodule '%s': unable to find submodule"
+msgstr "submódulo '%s': incapaz encontrar submódulo"
+
+#: branch.c:661
+#, c-format
+msgid ""
+"You may try updating the submodules using 'git checkout %s && git submodule "
+"update --init'"
+msgstr ""
+
+#: branch.c:672 branch.c:698
+#, c-format
+msgid "submodule '%s': cannot create branch '%s'"
+msgstr "submódulo '%s': incapaz criar ramo '%s'"
+
+#: branch.c:730
#, c-format
msgid "'%s' is already checked out at '%s'"
-msgstr "'%s' foi já extraído em '%s'"
+msgstr "'%s' já está observado em '%s'"
-#: branch.c:389
+#: branch.c:755
#, c-format
msgid "HEAD of working tree %s is not updated"
-msgstr "HEAD da working tree %s está desatualizada"
+msgstr "HEAD da árvore-trabalho %s está desatualizada"
-#: bundle.c:44
+#: bundle.c:45
#, c-format
msgid "unrecognized bundle hash algorithm: %s"
-msgstr "algoritmo hash de bundle irreconhecível: %s"
+msgstr "algoritmo hash de arquivo-pacote irreconhecível: %s"
-#: bundle.c:48
+#: bundle.c:53
#, c-format
msgid "unknown capability '%s'"
msgstr "capacidade desconhecida '%s'"
-#: bundle.c:74
+#: bundle.c:79
#, c-format
msgid "'%s' does not look like a v2 or v3 bundle file"
-msgstr "'%s' parece-se com ficheiro bundle v2 ou v3 nenhum"
+msgstr "'%s' parece-se com ficheiro arquivo-pacote v2 ou v3 nenhum"
-#: bundle.c:113
+#: bundle.c:118
#, c-format
msgid "unrecognized header: %s%s (%d)"
msgstr "cabeçalho irreconhecível: %s%s (%d)"
-#: bundle.c:140 rerere.c:464 rerere.c:674 sequencer.c:2593 sequencer.c:3385
-#: builtin/commit.c:861
+#: bundle.c:145 rerere.c:464 rerere.c:675 sequencer.c:2616 sequencer.c:3402
+#: builtin/commit.c:865
#, c-format
msgid "could not open '%s'"
msgstr "incapaz abrir '%s'"
-#: bundle.c:198
+#: bundle.c:203
msgid "Repository lacks these prerequisite commits:"
-msgstr "Falta ao repositório estes pré-requisitos de commits:"
+msgstr "Falta ao repositório estas memórias de pré-requisito:"
-#: bundle.c:201
+#: bundle.c:206
msgid "need a repository to verify a bundle"
-msgstr "é preciso repositório para verificar um bundle."
+msgstr "é preciso repositório para verificar um arquivo-pacote"
-#: bundle.c:257
+#: bundle.c:264
#, c-format
msgid "The bundle contains this ref:"
-msgid_plural "The bundle contains these %d refs:"
-msgstr[0] "O bundle contém esta referência:"
-msgstr[1] "O bundle contém estas %d referências:"
+msgid_plural "The bundle contains these %<PRIuMAX> refs:"
+msgstr[0] "O arquivo-pacote contém esta ref:"
+msgstr[1] "O arquivo-pacote contém estas %<PRIuMAX> refs:"
-#: bundle.c:264
+#: bundle.c:272
msgid "The bundle records a complete history."
-msgstr "O pacote regista um histórico completo."
+msgstr "O arquivo-pacote regista um histórico completo."
-#: bundle.c:266
+#: bundle.c:274
#, c-format
msgid "The bundle requires this ref:"
-msgid_plural "The bundle requires these %d refs:"
-msgstr[0] "O bundle requer esta referência:"
-msgstr[1] "O bundle requer estas %d referências:"
+msgid_plural "The bundle requires these %<PRIuMAX> refs:"
+msgstr[0] "O arquivo-pacote exige esta ref:"
+msgstr[1] "O arquivo-pacote exige estas %<PRIuMAX> refs:"
-#: bundle.c:333
+#: bundle.c:350
msgid "unable to dup bundle descriptor"
-msgstr "incapaz de dup descritor de bundle"
+msgstr "incapaz de dup descritor de arquivo-pacote"
-#: bundle.c:340
+#: bundle.c:357
msgid "Could not spawn pack-objects"
-msgstr "Impossível gerar pack-objects"
+msgstr "Incapaz spawn objetos-pacote"
-#: bundle.c:351
+#: bundle.c:368
msgid "pack-objects died"
-msgstr "pack-objects terminaram inesperadamente"
+msgstr "objetos-pacote terminaram inesperadamente"
-#: bundle.c:400
+#: bundle.c:417
#, c-format
msgid "ref '%s' is excluded by the rev-list options"
-msgstr "a referência '%s' é excluída pelas opções de rev-list"
+msgstr "ref '%s' é excluída pelas opções de rev-list"
-#: bundle.c:504
+#: bundle.c:533 builtin/log.c:211 builtin/log.c:1975 builtin/shortlog.c:400
#, c-format
-msgid "unsupported bundle version %d"
-msgstr "fora de suporte versão bundle %d"
+msgid "unrecognized argument: %s"
+msgstr "argumento irreconhecível: %s"
-#: bundle.c:506
+#: bundle.c:548
#, c-format
-msgid "cannot write bundle version %d with algorithm %s"
-msgstr ""
+msgid "unsupported bundle version %d"
+msgstr "versão arquivo-pacote %d insustentada"
-#: bundle.c:524 builtin/log.c:210 builtin/log.c:1938 builtin/shortlog.c:396
+#: bundle.c:550
#, c-format
-msgid "unrecognized argument: %s"
-msgstr "argumento irreconhecível: %s"
+msgid "cannot write bundle version %d with algorithm %s"
+msgstr "incapaz escrever versão arquivo-pacote %d com algoritmo %s"
-#: bundle.c:553
+#: bundle.c:600
msgid "Refusing to create empty bundle."
-msgstr "Criação de bundle vazio recusada."
+msgstr "Criação de arquivo-pacote vazio recusada."
-#: bundle.c:563
+#: bundle.c:610
#, c-format
msgid "cannot create '%s'"
msgstr "incapaz criar '%s'"
-#: bundle.c:588
+#: bundle.c:639
msgid "index-pack died"
msgstr "index-pack terminou inesperadamente"
#: chunk-format.c:117
msgid "terminating chunk id appears earlier than expected"
-msgstr ""
+msgstr "fim de id de fragmento aparace mais cedo do que esperado"
#: chunk-format.c:126
#, c-format
msgid "improper chunk offset(s) %<PRIx64> and %<PRIx64>"
-msgstr ""
+msgstr "deslocamento(s) de fragmento %<PRIx64> e %<PRIx64> inapropriados"
#: chunk-format.c:133
#, c-format
msgid "duplicate chunk ID %<PRIx32> found"
-msgstr ""
+msgstr "encontrei ID de fragmento %<PRIx32> duplicado"
#: chunk-format.c:147
#, c-format
msgid "final chunk has non-zero id %<PRIx32>"
-msgstr ""
+msgstr "fragmento final tem id %<PRIx32> diferente de zero"
-#: color.c:329
+#: color.c:354
#, c-format
msgid "invalid color value: %.*s"
msgstr "valor de cor inválido: %.*s"
-#: commit-graph.c:204 midx.c:47
+#: commit-graph.c:204 midx.c:52
msgid "invalid hash version"
msgstr "versão de hash inválida"
#: commit-graph.c:262
msgid "commit-graph file is too small"
-msgstr ""
+msgstr "ficheiro grafo-memória é demasiado pequeno"
#: commit-graph.c:355
#, c-format
msgid "commit-graph signature %X does not match signature %X"
-msgstr "assinatura commit-graph %X corresponde a assinatura %X nenhuma"
+msgstr "assinatura de grafo-memória %X corresponde a assinatura %X nenhuma"
#: commit-graph.c:362
#, c-format
msgid "commit-graph version %X does not match version %X"
-msgstr "commit-graph versão %X corresponde a versão %X nenhuma"
+msgstr "grafo-memória versão %X corresponde a versão %X nenhuma"
#: commit-graph.c:369
#, c-format
msgid "commit-graph hash version %X does not match version %X"
-msgstr ""
+msgstr "versão de hash de grafo-memória %X corresponde a nenhuma versão %X"
#: commit-graph.c:386
#, c-format
msgid "commit-graph file is too small to hold %u chunks"
-msgstr ""
+msgstr "ficheiro grafo-memória é demasiado pequeno para ter %u fragmentos"
-#: commit-graph.c:482
+#: commit-graph.c:485
msgid "commit-graph has no base graphs chunk"
-msgstr ""
+msgstr "grafo-memória tem nenhuns fragmentos de base de grafos"
-#: commit-graph.c:492
+#: commit-graph.c:495
msgid "commit-graph chain does not match"
-msgstr ""
+msgstr "série grafo-memória tem correspondência nenhuma"
-#: commit-graph.c:540
+#: commit-graph.c:543
#, c-format
msgid "invalid commit-graph chain: line '%s' not a hash"
-msgstr ""
+msgstr "série grafo-memória inválida: linha '%s' é hash nenhum"
-#: commit-graph.c:564
+#: commit-graph.c:567
msgid "unable to find all commit-graph files"
-msgstr "incapaz de encontrar todos ficheiros commit-graph"
+msgstr "incapaz de encontrar todos ficheiros grafo-memória"
-#: commit-graph.c:745 commit-graph.c:782
+#: commit-graph.c:752 commit-graph.c:789
msgid "invalid commit position. commit-graph is likely corrupt"
-msgstr ""
+msgstr "posição de memória inválida. provavelmente grafo-memória está rompido"
-#: commit-graph.c:766
+#: commit-graph.c:773
#, c-format
msgid "could not find commit %s"
msgstr "incapaz encontrar memória %s"
-#: commit-graph.c:799
+#: commit-graph.c:806
msgid "commit-graph requires overflow generation data but has none"
-msgstr ""
+msgstr "grafo-memória exige informação de geração de overflow mas tem nenhuma"
-#: commit-graph.c:1075 builtin/am.c:1341
+#: commit-graph.c:1111 builtin/am.c:1370 builtin/checkout.c:775
+#: builtin/clone.c:705
#, c-format
msgid "unable to parse commit %s"
-msgstr "incapaz analisar commit %s"
+msgstr "incapaz processar memória %s"
-#: commit-graph.c:1337 builtin/pack-objects.c:3057
+#: commit-graph.c:1373 builtin/pack-objects.c:3078
#, c-format
msgid "unable to get type of object %s"
msgstr "incapaz obter tipo de objeto %s"
-#: commit-graph.c:1368
+#: commit-graph.c:1404
msgid "Loading known commits in commit graph"
-msgstr ""
+msgstr "Carregando memórias conhecidas em grafo de memória"
-#: commit-graph.c:1385
+#: commit-graph.c:1421
msgid "Expanding reachable commits in commit graph"
-msgstr ""
+msgstr "Expandindo memórias alcançáveis em grafo de memória"
-#: commit-graph.c:1405
+#: commit-graph.c:1441
msgid "Clearing commit marks in commit graph"
-msgstr ""
+msgstr "Limpando marcas de memórias em grafo de memória"
-#: commit-graph.c:1424
+#: commit-graph.c:1460
msgid "Computing commit graph topological levels"
-msgstr ""
+msgstr "Processando níveis topológicos de grafo de memória"
-#: commit-graph.c:1477
+#: commit-graph.c:1513
msgid "Computing commit graph generation numbers"
-msgstr ""
+msgstr "Processando geração de números de grafo de memória"
-#: commit-graph.c:1558
+#: commit-graph.c:1598
msgid "Computing commit changed paths Bloom filters"
-msgstr ""
+msgstr "Processando mudança de caminhos de memória de filtros de Bloom"
-#: commit-graph.c:1635
+#: commit-graph.c:1675
msgid "Collecting referenced commits"
-msgstr "Recolhendo commits referênciados"
+msgstr "Recolhendo memórias referenciadas"
-#: commit-graph.c:1660
+#: commit-graph.c:1701
#, 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] ""
+msgid "Finding commits for commit graph in %<PRIuMAX> pack"
+msgid_plural "Finding commits for commit graph in %<PRIuMAX> packs"
+msgstr[0] "Encontrando memórias para grafo de memória em %<PRIuMAX> pacote"
+msgstr[1] "Encontrando memórias para grafo de memória em %<PRIuMAX> pacotes"
-#: commit-graph.c:1673
+#: commit-graph.c:1714
#, c-format
msgid "error adding pack %s"
msgstr "error adicionando pacote %s"
-#: commit-graph.c:1677
+#: commit-graph.c:1718
#, c-format
msgid "error opening index for %s"
-msgstr ""
+msgstr "erro ao abrir cenário para %s"
-#: commit-graph.c:1714
+#: commit-graph.c:1756
msgid "Finding commits for commit graph among packed objects"
-msgstr ""
+msgstr "Encontrando, entre objetos de pacote, memórias para grafo de memória"
-#: commit-graph.c:1732
+#: commit-graph.c:1774
msgid "Finding extra edges in commit graph"
-msgstr ""
+msgstr "Encontrando pontas extra em grafo de memória"
-#: commit-graph.c:1781
+#: commit-graph.c:1823
msgid "failed to write correct number of base graph ids"
-msgstr ""
+msgstr "falhou ao escrever números corretos em ids de base grafo"
-#: commit-graph.c:1812 midx.c:911
+#: commit-graph.c:1854 midx.c:1168 builtin/sparse-checkout.c:475
#, c-format
msgid "unable to create leading directories of %s"
msgstr "incapaz criar as pastas superiores a %s"
-#: commit-graph.c:1825
+#: commit-graph.c:1868
msgid "unable to create temporary graph layer"
msgstr "incapaz criar camada de grafo temporária"
-#: commit-graph.c:1830
+#: commit-graph.c:1873
#, c-format
msgid "unable to adjust shared permissions for '%s'"
msgstr "incapaz de ajustar permissão partilhada para '%s'"
-#: commit-graph.c:1887
+#: commit-graph.c:1930
#, c-format
msgid "Writing out commit graph in %d pass"
msgid_plural "Writing out commit graph in %d passes"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "Escrevendo grafo de memória em %d passagem"
+msgstr[1] "Escrevendo grafo de memória em %d passagens"
-#: commit-graph.c:1923
+#: commit-graph.c:1967
msgid "unable to open commit-graph chain file"
-msgstr "incapaz abrir ficheiro commit-graph chain"
+msgstr "incapaz abrir ficheiro de série de grafo-memória"
-#: commit-graph.c:1939
+#: commit-graph.c:1983
msgid "failed to rename base commit-graph file"
-msgstr ""
+msgstr "falhou renomear ficheiro grafo-memória base"
-#: commit-graph.c:1959
+#: commit-graph.c:2004
msgid "failed to rename temporary commit-graph file"
-msgstr "falha a renomear ficheiro commit-graph temporário"
+msgstr "falha a renomear ficheiro grafo-memória temporário"
-#: commit-graph.c:2092
+#: commit-graph.c:2137
msgid "Scanning merged commits"
-msgstr "A adicionar %s integrado"
+msgstr "Procurando memórias de junção"
-#: commit-graph.c:2136
+#: commit-graph.c:2181
msgid "Merging commit-graph"
-msgstr ""
+msgstr "Juntando grafo-memória"
-#: commit-graph.c:2244
+#: commit-graph.c:2289
msgid "attempting to write a commit-graph, but 'core.commitGraph' is disabled"
msgstr ""
+"tentando escrever um grafo-memória, mas 'core.commitGraph' está desativado"
-#: commit-graph.c:2351
+#: commit-graph.c:2396
msgid "too many commits to write graph"
-msgstr "demasiados commits para escrever grafo"
+msgstr "demasiadas memórias para escrever grafo"
-#: commit-graph.c:2449
+#: commit-graph.c:2494
msgid "the commit-graph file has incorrect checksum and is likely corrupt"
msgstr ""
+"ficheiro grafo-memória tem checksum incorreto e provavelmente está rompido"
-#: commit-graph.c:2459
+#: commit-graph.c:2504
#, c-format
msgid "commit-graph has incorrect OID order: %s then %s"
-msgstr ""
+msgstr "grafo-memória tem ordem de OID incorreta: %s e depois %s"
-#: commit-graph.c:2469 commit-graph.c:2484
+#: commit-graph.c:2514 commit-graph.c:2529
#, c-format
msgid "commit-graph has incorrect fanout value: fanout[%d] = %u != %u"
-msgstr ""
+msgstr "grafo-memória tem valor de fanout incorreto: fanout[%d] = %u != %u"
-#: commit-graph.c:2476
+#: commit-graph.c:2521
#, c-format
msgid "failed to parse commit %s from commit-graph"
-msgstr "incapaz analisar commit %s de commit-graph"
+msgstr "incapaz processar memória %s de grafo-memória"
-#: commit-graph.c:2494
+#: commit-graph.c:2539
msgid "Verifying commits in commit graph"
-msgstr ""
+msgstr "Verificando memórias em grafo de memória"
-#: commit-graph.c:2509
+#: commit-graph.c:2554
#, c-format
msgid "failed to parse commit %s from object database for commit-graph"
msgstr ""
-#: commit-graph.c:2516
+#: commit-graph.c:2561
#, c-format
msgid "root tree OID for commit %s in commit-graph is %s != %s"
msgstr ""
-#: commit-graph.c:2526
+#: commit-graph.c:2571
#, c-format
msgid "commit-graph parent list for commit %s is too long"
msgstr ""
-#: commit-graph.c:2535
+#: commit-graph.c:2580
#, c-format
msgid "commit-graph parent for %s is %s != %s"
msgstr ""
-#: commit-graph.c:2549
+#: commit-graph.c:2594
#, c-format
msgid "commit-graph parent list for commit %s terminates early"
msgstr ""
-#: commit-graph.c:2554
+#: commit-graph.c:2599
#, c-format
msgid ""
"commit-graph has generation number zero for commit %s, but non-zero elsewhere"
msgstr ""
-#: commit-graph.c:2558
+#: commit-graph.c:2603
#, c-format
msgid ""
"commit-graph has non-zero generation number for commit %s, but zero elsewhere"
msgstr ""
-#: commit-graph.c:2575
+#: commit-graph.c:2620
#, c-format
msgid "commit-graph generation for commit %s is %<PRIuMAX> < %<PRIuMAX>"
msgstr ""
-#: commit-graph.c:2581
+#: commit-graph.c:2626
#, c-format
msgid "commit date for commit %s in commit-graph is %<PRIuMAX> != %<PRIuMAX>"
msgstr ""
-#: commit.c:52 sequencer.c:3088 builtin/am.c:372 builtin/am.c:417
-#: builtin/am.c:422 builtin/am.c:1420 builtin/am.c:2067 builtin/replace.c:457
+#: commit.c:54 sequencer.c:3105 builtin/am.c:400 builtin/am.c:445
+#: builtin/am.c:450 builtin/am.c:1449 builtin/am.c:2124 builtin/replace.c:456
#, c-format
msgid "could not parse %s"
msgstr "incapaz analisar %s"
-#: commit.c:54
+#: commit.c:56
#, c-format
msgid "%s %s is not a commit!"
-msgstr "%s %s é commit nenhum!"
+msgstr "%s %s é memória nenhuma!"
-#: commit.c:194
+#: commit.c:197
msgid ""
"Support for <GIT_DIR>/info/grafts is deprecated\n"
"and will be removed in a future Git version.\n"
@@ -2599,43 +2699,59 @@ msgid ""
"Turn this message off by running\n"
"\"git config advice.graftFileDeprecated false\""
msgstr ""
+"Sustento a <GIT_DIR>/info/grafts está obsoleto\n"
+"e será removido em versões futuras de Git.\n"
+"\n"
+"Por favor, usa \"git replace --convert-graft-file\"\n"
+"para converter excertos em refs de substituição.\n"
+"\n"
+"Desliga esta mensagem executando\n"
+"\"git config advice.graftFileDeprecated false\""
-#: commit.c:1237
+#: commit.c:1252
#, c-format
msgid "Commit %s has an untrusted GPG signature, allegedly by %s."
msgstr "Commit %s tem assinatura GPG desconfiada, alegadamente por %s."
-#: commit.c:1241
+#: commit.c:1256
#, c-format
msgid "Commit %s has a bad GPG signature allegedly by %s."
msgstr "Commit %s tem assinatura GPG incorreta, alegadamente por %s."
-#: commit.c:1244
+#: commit.c:1259
#, c-format
msgid "Commit %s does not have a GPG signature."
msgstr "Commit %s tem assinatura GPG nenhuma."
-#: commit.c:1247
+#: commit.c:1262
#, c-format
msgid "Commit %s has a good GPG signature by %s\n"
msgstr "Commit %s tem assinatura correta, por %s\n"
-#: commit.c:1501
+#: commit.c:1516
msgid ""
"Warning: commit message did not conform to UTF-8.\n"
"You may want to amend it after fixing the message, or set the config\n"
"variable i18n.commitencoding to the encoding your project uses.\n"
msgstr ""
-"aviso: a mensagem de commit é inconforme com UTF-8.\n"
-"Podes querer emendá-lo depois de corrigir a mensagem, ou definir a\n"
-"variável de config i18n.commitencoding com a codificação que o teu\n"
+"Aviso: mensagem de memória é incompatível com UTF-8.\n"
+"Podes querer emendá-lo depois de corrigires a mensagem, ou definir a\n"
+"variável de config i18n.commitencoding para a codificação que o teu\n"
"projeto usa.\n"
#: compat/obstack.c:406 compat/obstack.c:408
msgid "memory exhausted"
msgstr "memória esgotada"
-#: config.c:126
+#: compat/terminal.c:167
+msgid "cannot resume in the background, please use 'fg' to resume"
+msgstr ""
+
+#: compat/terminal.c:168
+msgid "cannot restore terminal settings"
+msgstr "incapaz restaurar definições de terminal"
+
+#: config.c:143
#, c-format
msgid ""
"exceeded maximum include depth (%d) while including\n"
@@ -2645,340 +2761,365 @@ msgid ""
"This might be due to circular includes."
msgstr ""
-#: config.c:142
+#: config.c:159
#, c-format
msgid "could not expand include path '%s'"
msgstr "incapaz de expandir include path '%s'"
-#: config.c:153
+#: config.c:170
msgid "relative config includes must come from files"
msgstr ""
"configuração relativa com inclusão condicional deve provir de ficheiros"
-#: config.c:199
+#: config.c:219
msgid "relative config include conditionals must come from files"
msgstr ""
"configuração relativa com inclusão condicional deve provir de ficheiros"
-#: config.c:396
+#: config.c:364
+msgid ""
+"remote URLs cannot be configured in file directly or indirectly included by "
+"includeIf.hasconfig:remote.*.url"
+msgstr ""
+
+#: config.c:508
#, c-format
msgid "invalid config format: %s"
msgstr "formato de config inválido: %s"
-#: config.c:400
+#: config.c:512
#, c-format
msgid "missing environment variable name for configuration '%.*s'"
msgstr ""
-#: config.c:405
+#: config.c:517
#, c-format
msgid "missing environment variable '%s' for configuration '%.*s'"
msgstr ""
-#: config.c:442
+#: config.c:553
#, c-format
msgid "key does not contain a section: %s"
msgstr "chave contém secção nenhuma: %s"
-#: config.c:448
+#: config.c:558
#, c-format
msgid "key does not contain variable name: %s"
msgstr ""
-#: config.c:472 sequencer.c:2785
+#: config.c:580 sequencer.c:2802
#, c-format
msgid "invalid key: %s"
msgstr "chave inválida: %s"
-#: config.c:478
+#: config.c:585
#, c-format
msgid "invalid key (newline): %s"
msgstr ""
-#: config.c:511
+#: config.c:605
msgid "empty config key"
msgstr ""
-#: config.c:529 config.c:541
+#: config.c:623 config.c:635
#, c-format
msgid "bogus config parameter: %s"
msgstr "parâmetro config falso: %s"
-#: config.c:555 config.c:572 config.c:579 config.c:588
+#: config.c:649 config.c:666 config.c:673 config.c:682
#, c-format
msgid "bogus format in %s"
msgstr "formato falso em %s"
-#: config.c:622
+#: config.c:716
#, c-format
msgid "bogus count in %s"
msgstr "contagem falsa em %s"
-#: config.c:626
+#: config.c:720
#, c-format
msgid "too many entries in %s"
msgstr "demasiadas entradas em %s"
-#: config.c:636
+#: config.c:730
#, c-format
msgid "missing config key %s"
msgstr "faltando chave config %s"
-#: config.c:644
+#: config.c:738
#, c-format
msgid "missing config value %s"
msgstr "faltando valor config %s"
-#: config.c:995
+#: config.c:1089
#, c-format
msgid "bad config line %d in blob %s"
msgstr "linha de configuração %d incorreta no blob %s"
-#: config.c:999
+#: config.c:1093
#, c-format
msgid "bad config line %d in file %s"
msgstr "linha de configuração %d incorreta no ficheiro %s"
-#: config.c:1003
+#: config.c:1097
#, c-format
msgid "bad config line %d in standard input"
msgstr "linha de configuração %d incorreta na entrada padrão"
-#: config.c:1007
+#: config.c:1101
#, c-format
msgid "bad config line %d in submodule-blob %s"
msgstr "linha de configuração %d incorreta no submódulo-blob %s"
-#: config.c:1011
+#: config.c:1105
#, c-format
msgid "bad config line %d in command line %s"
msgstr "linha de configuração %d incorreta na linha de comandos %s"
-#: config.c:1015
+#: config.c:1109
#, c-format
msgid "bad config line %d in %s"
msgstr "linha de configuração %d incorreta em %s"
-#: config.c:1152
+#: config.c:1246
msgid "out of range"
msgstr "fora de intervalo"
-#: config.c:1152
+#: config.c:1246
msgid "invalid unit"
msgstr "unidade inválida"
-#: config.c:1153
+#: config.c:1247
#, c-format
msgid "bad numeric config value '%s' for '%s': %s"
msgstr "valor numérico de config '%s' inválido para '%s': %s"
-#: config.c:1163
+#: config.c:1257
#, c-format
msgid "bad numeric config value '%s' for '%s' in blob %s: %s"
msgstr "valor numérico '%s' da configuração '%s' incorreto no blob %s: %s"
-#: config.c:1166
+#: config.c:1260
#, c-format
msgid "bad numeric config value '%s' for '%s' in file %s: %s"
msgstr "valor numérico '%s' da configuração '%s' incorreto no ficheiro %s: %s"
-#: config.c:1169
+#: config.c:1263
#, c-format
msgid "bad numeric config value '%s' for '%s' in standard input: %s"
msgstr ""
"valor numérico '%s' da configuração '%s' incorreto na entrada padrão: %s"
-#: config.c:1172
+#: config.c:1266
#, c-format
msgid "bad numeric config value '%s' for '%s' in submodule-blob %s: %s"
msgstr ""
"valor numérico '%s' da configuração '%s' incorreto no submódulo-blob %s: %s"
-#: config.c:1175
+#: config.c:1269
#, c-format
msgid "bad numeric config value '%s' for '%s' in command line %s: %s"
msgstr ""
"valor numérico '%s' da configuração '%s' incorreto na linha de comandos %s: "
"%s"
-#: config.c:1178
+#: config.c:1272
#, c-format
msgid "bad numeric config value '%s' for '%s' in %s: %s"
msgstr "valor numérico '%s' da configuração '%s' incorreto em %s: %s"
-#: config.c:1257
+#: config.c:1368
+#, c-format
+msgid "invalid value for variable %s"
+msgstr "valor inválido para variável %s"
+
+#: config.c:1389
+#, c-format
+msgid "ignoring unknown core.fsync component '%s'"
+msgstr ""
+
+#: config.c:1425
#, c-format
msgid "bad boolean config value '%s' for '%s'"
msgstr "valor booleano de config '%s' inválido para '%s'"
-#: config.c:1275
+#: config.c:1443
#, c-format
msgid "failed to expand user dir in: '%s'"
-msgstr "falha ao expandir diretório de utilizador em: '%s'"
+msgstr "falhou ao expandir pasta de utilizador em: '%s'"
-#: config.c:1284
+#: config.c:1452
#, c-format
msgid "'%s' for '%s' is not a valid timestamp"
msgstr "'%s' em '%s' é carimbo de data/hora inválido"
-#: config.c:1377
+#: config.c:1545
#, c-format
msgid "abbrev length out of range: %d"
msgstr ""
-#: config.c:1391 config.c:1402
+#: config.c:1559 config.c:1570
#, c-format
msgid "bad zlib compression level %d"
msgstr "nível de compressão zlib %d incorreto"
-#: config.c:1494
+#: config.c:1660
msgid "core.commentChar should only be one character"
msgstr ""
-#: config.c:1527
+#: config.c:1692
+#, c-format
+msgid "ignoring unknown core.fsyncMethod value '%s'"
+msgstr ""
+
+#: config.c:1698
+msgid "core.fsyncObjectFiles is deprecated; use core.fsync instead"
+msgstr ""
+
+#: config.c:1714
#, c-format
msgid "invalid mode for object creation: %s"
msgstr "modo inválido para criação de objeto: %s"
-#: config.c:1599
+#: config.c:1800
#, c-format
msgid "malformed value for %s"
msgstr "valor malformado para %s"
-#: config.c:1625
+#: config.c:1826
#, c-format
msgid "malformed value for %s: %s"
msgstr "valor malformado para %s: %s"
-#: config.c:1626
+#: config.c:1827
msgid "must be one of nothing, matching, simple, upstream or current"
msgstr ""
-#: config.c:1687 builtin/pack-objects.c:4084
+#: config.c:1888 builtin/pack-objects.c:4078
#, c-format
msgid "bad pack compression level %d"
msgstr "nível de compactação do pacote %d incorreto"
-#: config.c:1809
+#: config.c:2014
#, c-format
msgid "unable to load config blob object '%s'"
-msgstr "incapaz carregar objeto blob config '%s'"
+msgstr "incapaz carregar config de objeto-blob '%s'"
-#: config.c:1812
+#: config.c:2017
#, c-format
msgid "reference '%s' does not point to a blob"
msgstr "referência '%s' aponta para blob nenhum"
-#: config.c:1829
+#: config.c:2035
#, c-format
msgid "unable to resolve config blob '%s'"
msgstr "incapaz resolver blog config '%s'"
-#: config.c:1874
+#: config.c:2080
#, c-format
msgid "failed to parse %s"
msgstr "falhou processar %s"
-#: config.c:1930
+#: config.c:2136
msgid "unable to parse command-line config"
msgstr "incapaz analisar config de linha de comandos"
-#: config.c:2294
+#: config.c:2512
msgid "unknown error occurred while reading the configuration files"
msgstr ""
"ocorreu um erro desconhecido durante a leitura dos ficheiros de configuração"
-#: config.c:2468
+#: config.c:2686
#, c-format
msgid "Invalid %s: '%s'"
msgstr "Inválido %s: '%s'"
-#: config.c:2513
+#: config.c:2731
#, c-format
msgid "splitIndex.maxPercentChange value '%d' should be between 0 and 100"
msgstr "o valor '%d' de splitIndex.maxPercentChange deve estar entre 0 e 100"
-#: config.c:2559
+#: config.c:2763
#, c-format
msgid "unable to parse '%s' from command-line config"
msgstr "incapaz analisar '%s' da configuração de linha de comandos"
-#: config.c:2561
+#: config.c:2765
#, c-format
msgid "bad config variable '%s' in file '%s' at line %d"
msgstr "variável de configuração '%s' incorreta no ficheiro '%s' na linha %d"
-#: config.c:2645
+#: config.c:2850
#, c-format
msgid "invalid section name '%s'"
msgstr "nome de seção '%s' inválido"
-#: config.c:2677
+#: config.c:2882
#, c-format
msgid "%s has multiple values"
msgstr "%s tem múltiplos valores"
-#: config.c:2706
+#: config.c:2911
#, c-format
msgid "failed to write new configuration file %s"
msgstr "falha a escrever novo ficheiro configuração %s"
-#: config.c:2958 config.c:3285
+#: config.c:3177 config.c:3518
#, c-format
msgid "could not lock config file %s"
msgstr "incapaz trancar ficheiro config %s"
-#: config.c:2969
+#: config.c:3188
#, c-format
msgid "opening %s"
msgstr "abrindo %s"
-#: config.c:3006 builtin/config.c:361
+#: config.c:3225 builtin/config.c:361
#, c-format
msgid "invalid pattern: %s"
msgstr "padrão inválido: %s"
-#: config.c:3031
+#: config.c:3250
#, c-format
msgid "invalid config file %s"
msgstr "ficheiro config inválido %s"
-#: config.c:3044 config.c:3298
+#: config.c:3263 config.c:3531
#, c-format
msgid "fstat on %s failed"
msgstr "fstat em %s falhou"
-#: config.c:3055
+#: config.c:3274
#, c-format
msgid "unable to mmap '%s'%s"
msgstr "incapaz mmap '%s'%s"
-#: config.c:3065 config.c:3303
+#: config.c:3284 config.c:3536
#, c-format
msgid "chmod on %s failed"
msgstr "chmod em %s falhou"
-#: config.c:3150 config.c:3400
+#: config.c:3369 config.c:3633
#, c-format
msgid "could not write config file %s"
msgstr "incapaz escrever ficheiro config %s"
-#: config.c:3184
+#: config.c:3403
#, c-format
msgid "could not set '%s' to '%s'"
msgstr "incapaz definir '%s' como '%s'"
-#: config.c:3186 builtin/remote.c:657 builtin/remote.c:855 builtin/remote.c:863
+#: config.c:3405 builtin/remote.c:666 builtin/remote.c:885 builtin/remote.c:893
#, c-format
msgid "could not unset '%s'"
-msgstr "incapaz desdefinir '%s'"
+msgstr "incapaz indefinir '%s'"
-#: config.c:3276
+#: config.c:3509
#, c-format
msgid "invalid section name: %s"
msgstr ""
-#: config.c:3443
+#: config.c:3676
#, c-format
msgid "missing value for '%s'"
msgstr ""
@@ -3013,79 +3154,79 @@ msgstr "servidor tem fora suporte a característica '%s'"
msgid "expected flush after capabilities"
msgstr ""
-#: connect.c:263
+#: connect.c:265
#, c-format
msgid "ignoring capabilities after first line '%s'"
msgstr ""
-#: connect.c:284
+#: connect.c:286
msgid "protocol error: unexpected capabilities^{}"
msgstr ""
-#: connect.c:306
+#: connect.c:308
#, c-format
msgid "protocol error: expected shallow sha-1, got '%s'"
msgstr ""
-#: connect.c:308
+#: connect.c:310
msgid "repository on the other end cannot be shallow"
msgstr ""
-#: connect.c:347
+#: connect.c:349
msgid "invalid packet"
msgstr ""
-#: connect.c:367
+#: connect.c:369
#, c-format
msgid "protocol error: unexpected '%s'"
msgstr ""
-#: connect.c:497
+#: connect.c:499
#, c-format
msgid "unknown object format '%s' specified by server"
msgstr "objeto desconhecido '%s' pelo formato em servidor."
-#: connect.c:526
+#: connect.c:528
#, c-format
msgid "invalid ls-refs response: %s"
msgstr ""
-#: connect.c:530
+#: connect.c:532
msgid "expected flush after ref listing"
msgstr ""
-#: connect.c:533
+#: connect.c:535
msgid "expected response end packet after ref listing"
msgstr ""
-#: connect.c:666
+#: connect.c:670
#, c-format
msgid "protocol '%s' is not supported"
msgstr "protocolo '%s' é insustentado"
-#: connect.c:717
+#: connect.c:721
msgid "unable to set SO_KEEPALIVE on socket"
msgstr ""
-#: connect.c:757 connect.c:820
+#: connect.c:761 connect.c:824
#, c-format
msgid "Looking up %s ... "
msgstr ""
-#: connect.c:761
+#: connect.c:765
#, c-format
msgid "unable to look up %s (port %s) (%s)"
msgstr "incapaz procurar %s (porta %s) (%s)"
#. TRANSLATORS: this is the end of "Looking up %s ... "
-#: connect.c:765 connect.c:836
+#: connect.c:769 connect.c:840
#, c-format
msgid ""
"done.\n"
"Connecting to %s (port %s) ... "
msgstr ""
-#: connect.c:787 connect.c:864
+#: connect.c:791 connect.c:868
#, c-format
msgid ""
"unable to connect to %s:\n"
@@ -3095,77 +3236,78 @@ msgstr ""
"%s"
#. TRANSLATORS: this is the end of "Connecting to %s (port %s) ... "
-#: connect.c:793 connect.c:870
+#: connect.c:797 connect.c:874
msgid "done."
msgstr "concluído."
-#: connect.c:824
+#: connect.c:828
#, c-format
msgid "unable to look up %s (%s)"
msgstr "incapaz procurar %s (%s)"
-#: connect.c:830
+#: connect.c:834
#, c-format
msgid "unknown port %s"
msgstr ""
-#: connect.c:967 connect.c:1299
+#: connect.c:971 connect.c:1303
#, c-format
msgid "strange hostname '%s' blocked"
msgstr ""
-#: connect.c:969
+#: connect.c:973
#, c-format
msgid "strange port '%s' blocked"
msgstr ""
-#: connect.c:979
+#: connect.c:983
#, c-format
msgid "cannot start proxy %s"
msgstr "incapaz começar proxy %s"
-#: connect.c:1050
+#: connect.c:1054
msgid "no path specified; see 'git help pull' for valid url syntax"
-msgstr "caminho nenhum especificado; vê 'git help pull' para sintaxe de url válida"
+msgstr ""
+"caminho nenhum especificado; vê 'git help pull' para sintaxe de url válida"
-#: connect.c:1190
+#: connect.c:1194
msgid "newline is forbidden in git:// hosts and repo paths"
msgstr "parágrafo é proibido em hosts git:// e caminhos repo"
-#: connect.c:1247
+#: connect.c:1251
msgid "ssh variant 'simple' does not support -4"
msgstr ""
-#: connect.c:1259
+#: connect.c:1263
msgid "ssh variant 'simple' does not support -6"
msgstr ""
-#: connect.c:1276
+#: connect.c:1280
msgid "ssh variant 'simple' does not support setting port"
msgstr "ssh variant 'simple' insustenta definir porta"
-#: connect.c:1388
+#: connect.c:1392
#, c-format
msgid "strange pathname '%s' blocked"
msgstr ""
-#: connect.c:1436
+#: connect.c:1440
msgid "unable to fork"
-msgstr "incapaz de aforquilhar"
+msgstr "incapaz de forquear"
-#: connected.c:108 builtin/fsck.c:189 builtin/prune.c:45
+#: connected.c:109 builtin/fsck.c:189 builtin/prune.c:57
msgid "Checking connectivity"
msgstr "A verificar conectividade"
-#: connected.c:120
+#: connected.c:122
msgid "Could not run 'git rev-list'"
msgstr "Impossível executar 'git rev-list'"
-#: connected.c:144
+#: connected.c:146
msgid "failed write to rev-list"
msgstr "falhou escrever para rev-list"
-#: connected.c:149
+#: connected.c:151
msgid "failed to close rev-list's stdin"
msgstr "falha ao fechar entrada padrão de rev-list"
@@ -3186,7 +3328,7 @@ msgid ""
"The file will have its original line endings in your working directory"
msgstr ""
"CRLF será substituído por LF em %s.\n"
-"O final de linha original será mantido no ficheiro da sua árvore de trabalho."
+"O ficheiro da tua árvore-trabalho terá o final de linha original mantido"
#: convert.c:206
#, c-format
@@ -3200,7 +3342,7 @@ msgid ""
"The file will have its original line endings in your working directory"
msgstr ""
"LF será substituído por CRLF em %s.\n"
-"O final de linha original será mantido no ficheiro da sua árvore de trabalho."
+"O ficheiro da tua árvore-trabalho terá o final de linha original mantido"
#: convert.c:273
#, c-format
@@ -3239,7 +3381,7 @@ msgstr ""
#: convert.c:654
#, c-format
msgid "cannot fork to run external filter '%s'"
-msgstr "incapaz aforquilhar para correr filtro externo '%s'"
+msgstr "incapaz forquear para correr filtro externo '%s'"
#: convert.c:674
#, c-format
@@ -3283,12 +3425,12 @@ msgstr ""
#: convert.c:1416 convert.c:1449
#, c-format
msgid "%s: clean filter '%s' failed"
-msgstr ""
+msgstr "%s: filtro de limpeza '%s' falhou"
#: convert.c:1492
#, c-format
msgid "%s: smudge filter %s failed"
-msgstr "%s: filtro mancha %s falhou"
+msgstr "%s: filtro de mancha %s falhou"
#: credential.c:96
#, c-format
@@ -3303,68 +3445,68 @@ msgstr ""
msgid "refusing to work with credential missing protocol field"
msgstr ""
-#: credential.c:394
+#: credential.c:396
#, c-format
msgid "url contains a newline in its %s component: %s"
msgstr ""
-#: credential.c:438
+#: credential.c:440
#, c-format
msgid "url has no scheme: %s"
msgstr "Remoto inexistente: %s"
-#: credential.c:511
+#: credential.c:513
#, c-format
msgid "credential url cannot be parsed: %s"
msgstr "incapaz analisar url credencial: %s"
-#: date.c:138
+#: date.c:139
msgid "in the future"
msgstr "no futuro"
-#: date.c:144
+#: date.c:145
#, c-format
msgid "%<PRIuMAX> second ago"
msgid_plural "%<PRIuMAX> seconds ago"
msgstr[0] "à %<PRIuMAX> segundo"
msgstr[1] "à %<PRIuMAX> segundos"
-#: date.c:151
+#: date.c:152
#, c-format
msgid "%<PRIuMAX> minute ago"
msgid_plural "%<PRIuMAX> minutes ago"
msgstr[0] "à %<PRIuMAX> minuto"
msgstr[1] "à %<PRIuMAX> minutos"
-#: date.c:158
+#: date.c:159
#, c-format
msgid "%<PRIuMAX> hour ago"
msgid_plural "%<PRIuMAX> hours ago"
msgstr[0] "à %<PRIuMAX> hora"
msgstr[1] "à %<PRIuMAX> horas"
-#: date.c:165
+#: date.c:166
#, c-format
msgid "%<PRIuMAX> day ago"
msgid_plural "%<PRIuMAX> days ago"
msgstr[0] "à %<PRIuMAX> dia"
msgstr[1] "à %<PRIuMAX> dias"
-#: date.c:171
+#: date.c:172
#, c-format
msgid "%<PRIuMAX> week ago"
msgid_plural "%<PRIuMAX> weeks ago"
msgstr[0] "à %<PRIuMAX> semana"
msgstr[1] "à %<PRIuMAX> semanas"
-#: date.c:178
+#: date.c:179
#, c-format
msgid "%<PRIuMAX> month ago"
msgid_plural "%<PRIuMAX> months ago"
msgstr[0] "à %<PRIuMAX> mês"
msgstr[1] "à %<PRIuMAX> meses"
-#: date.c:189
+#: date.c:190
#, c-format
msgid "%<PRIuMAX> year"
msgid_plural "%<PRIuMAX> years"
@@ -3372,14 +3514,14 @@ msgstr[0] "%<PRIuMAX> ano"
msgstr[1] "%<PRIuMAX> anos"
#. TRANSLATORS: "%s" is "<n> years"
-#: date.c:192
+#: date.c:193
#, c-format
msgid "%s, %<PRIuMAX> month ago"
msgid_plural "%s, %<PRIuMAX> months ago"
msgstr[0] "à %s, %<PRIuMAX> mês"
msgstr[1] "à %s, %<PRIuMAX> meses"
-#: date.c:197 date.c:202
+#: date.c:198 date.c:203
#, c-format
msgid "%<PRIuMAX> year ago"
msgid_plural "%<PRIuMAX> years ago"
@@ -3410,28 +3552,32 @@ msgstr ""
msgid "Marked %d islands, done.\n"
msgstr ""
-#: diff-merges.c:70
+#: diff-merges.c:81 gpg-interface.c:719 gpg-interface.c:734 ls-refs.c:37
+#: parallel-checkout.c:42 sequencer.c:2805 setup.c:563 builtin/am.c:203
+#: builtin/am.c:2243 builtin/am.c:2287 builtin/blame.c:724 builtin/blame.c:742
+#: builtin/fetch.c:792 builtin/pack-objects.c:3515 builtin/pull.c:45
+#: builtin/pull.c:47 builtin/pull.c:321
#, c-format
-msgid "unknown value for --diff-merges: %s"
-msgstr "valor desconhecido para --diff-merges: %s"
+msgid "invalid value for '%s': '%s'"
+msgstr "valor inválido para '%s': '%s'"
-#: diff-lib.c:557
+#: diff-lib.c:561
msgid "--merge-base does not work with ranges"
msgstr "--merge-base é incompatível com intervalos"
-#: diff-lib.c:559
+#: diff-lib.c:563
msgid "--merge-base only works with commits"
-msgstr "--merge-base apenas trabalho com memórias"
+msgstr "--merge-base apenas funciona com memórias"
-#: diff-lib.c:576
+#: diff-lib.c:580
msgid "unable to get HEAD"
msgstr "incapaz obter HEAD"
-#: diff-lib.c:583
+#: diff-lib.c:587
msgid "no merge base found"
msgstr ""
-#: diff-lib.c:585
+#: diff-lib.c:589
msgid "multiple merge bases found"
msgstr ""
@@ -3445,41 +3591,41 @@ msgid ""
"tree"
msgstr ""
-#: diff.c:156
+#: diff.c:159
#, c-format
msgid " Failed to parse dirstat cut-off percentage '%s'\n"
msgstr " Falha ao analisar percentagem limite de dirstat '%s'\n"
-#: diff.c:161
+#: diff.c:164
#, c-format
msgid " Unknown dirstat parameter '%s'\n"
msgstr " Parâmetro de dirstat desconhecido '%s'\n"
-#: diff.c:297
+#: diff.c:300
msgid ""
"color moved setting must be one of 'no', 'default', 'blocks', 'zebra', "
"'dimmed-zebra', 'plain'"
msgstr ""
-#: diff.c:325
+#: diff.c:328
#, 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:333
+#: diff.c:336
msgid ""
"color-moved-ws: allow-indentation-change cannot be combined with other "
"whitespace modes"
msgstr ""
-#: diff.c:410
+#: diff.c:413
#, c-format
msgid "Unknown value for 'diff.submodule' config variable: '%s'"
msgstr "Valor desconhecido na variável de configuração 'diff.submodule': '%s'"
-#: diff.c:470
+#: diff.c:473
#, c-format
msgid ""
"Found errors in 'diff.dirstat' config variable:\n"
@@ -3493,558 +3639,564 @@ msgstr ""
msgid "external diff died, stopping at %s"
msgstr "o diff externo terminou inesperadamente, interrompido em %s"
-#: diff.c:4634
-msgid "--name-only, --name-status, --check and -s are mutually exclusive"
-msgstr "--name-only, --name-status, --check e -s são mutuamente exclusivos"
+#: diff.c:4677 parse-options.c:1114
+#, c-format
+msgid "options '%s', '%s', '%s', and '%s' cannot be used together"
+msgstr "opções '%s', '%s', '%s' e '%s' incapaz serem usadas juntas"
-#: diff.c:4637
-msgid "-G, -S and --find-object are mutually exclusive"
-msgstr "-G, -S e --find-object são mutuamente exclusivos"
+#: diff.c:4681 parse-options.c:1118 builtin/worktree.c:578
+#, c-format
+msgid "options '%s', '%s', and '%s' cannot be used together"
+msgstr "opções '%s', '%s' e '%s' incapaz serem usadas juntas"
-#: diff.c:4640
-msgid ""
-"-G and --pickaxe-regex are mutually exclusive, use --pickaxe-regex with -S"
-msgstr ""
+#: diff.c:4685
+#, c-format
+msgid "options '%s' and '%s' cannot be used together, use '%s' with '%s'"
+msgstr "opções '%s' e '%s' incapaz serem usadas juntas, usa '%s' com '%s'"
-#: diff.c:4643
+#: diff.c:4689
+#, c-format
msgid ""
-"--pickaxe-all and --find-object are mutually exclusive, use --pickaxe-all "
-"with -G and -S"
+"options '%s' and '%s' cannot be used together, use '%s' with '%s' and '%s'"
msgstr ""
+"opções '%s' e '%s' incapaz serem usadas juntas, usa '%s' com '%s' e '%s'"
-#: diff.c:4722
+#: diff.c:4769
msgid "--follow requires exactly one pathspec"
msgstr "--follow exige exatamente um espetro-caminho"
-#: diff.c:4770
+#: diff.c:4823
#, c-format
msgid "invalid --stat value: %s"
msgstr "valor --stat inválido: %s"
-#: diff.c:4775 diff.c:4780 diff.c:4785 diff.c:4790 diff.c:5318
-#: parse-options.c:197 parse-options.c:201 builtin/commit-graph.c:180
+#: diff.c:4828 diff.c:4833 diff.c:4838 diff.c:4843 diff.c:5319
+#: parse-options.c:217 parse-options.c:221
#, c-format
msgid "%s expects a numerical value"
msgstr ""
-#: diff.c:4807
+#: diff.c:4860
#, c-format
msgid ""
"Failed to parse --dirstat/-X option parameter:\n"
"%s"
msgstr ""
-"Falha ao analisar parâmetro da opção --dirstat/-X:\n"
+"Falha ao processar parâmetro de opção --dirstat/-X:\n"
"%s"
-#: diff.c:4892
+#: diff.c:4893
#, c-format
msgid "unknown change class '%c' in --diff-filter=%s"
msgstr "classe de mudança '%c' desconhecida em --diff-filter=%s"
-#: diff.c:4916
+#: diff.c:4917
#, c-format
msgid "unknown value after ws-error-highlight=%.*s"
msgstr ""
-#: diff.c:4930
+#: diff.c:4931
#, c-format
msgid "unable to resolve '%s'"
msgstr "incapaz resolver '%s'"
-#: diff.c:4980 diff.c:4986
+#: diff.c:4981 diff.c:4987
#, c-format
msgid "%s expects <n>/<m> form"
msgstr ""
-#: diff.c:4998
+#: diff.c:4999
#, c-format
msgid "%s expects a character, got '%s'"
msgstr ""
-#: diff.c:5019
+#: diff.c:5020
#, c-format
msgid "bad --color-moved argument: %s"
msgstr "argumento incorreto --color-moved: %s"
-#: diff.c:5038
+#: diff.c:5039
#, c-format
msgid "invalid mode '%s' in --color-moved-ws"
msgstr "modo inválido '%s' em --color-moved-ws"
-#: diff.c:5078
+#: diff.c:5079
msgid ""
"option diff-algorithm accepts \"myers\", \"minimal\", \"patience\" and "
"\"histogram\""
msgstr ""
-#: diff.c:5114 diff.c:5134
+#: diff.c:5115 diff.c:5135
#, c-format
msgid "invalid argument to %s"
msgstr ""
-#: diff.c:5238
+#: diff.c:5239
#, c-format
msgid "invalid regex given to -I: '%s'"
msgstr ""
-#: diff.c:5287
+#: diff.c:5288
#, c-format
msgid "failed to parse --submodule option parameter: '%s'"
msgstr "Falha a processar parâmetro da opção --submodule: '%s'"
-#: diff.c:5343
+#: diff.c:5344
#, c-format
msgid "bad --word-diff argument: %s"
msgstr "argumento --word-diff incorrecto: %s"
-#: diff.c:5379
+#: diff.c:5380
msgid "Diff output format options"
msgstr ""
-#: diff.c:5381 diff.c:5387
+#: diff.c:5382 diff.c:5388
msgid "generate patch"
msgstr "gerar remendo"
-#: diff.c:5384 builtin/log.c:179
+#: diff.c:5385 builtin/log.c:180
msgid "suppress diff output"
msgstr "suprimir saída de diff"
-#: diff.c:5389 diff.c:5503 diff.c:5510
+#: diff.c:5390 diff.c:5504 diff.c:5511
msgid "<n>"
msgstr "<n>"
-#: diff.c:5390 diff.c:5393
+#: diff.c:5391 diff.c:5394
msgid "generate diffs with <n> lines context"
msgstr "gerar diffs com <n> linhas de contexto"
-#: diff.c:5395
+#: diff.c:5396
msgid "generate the diff in raw format"
msgstr ""
-#: diff.c:5398
+#: diff.c:5399
msgid "synonym for '-p --raw'"
msgstr "sinónimo de '-p --raw'"
-#: diff.c:5402
+#: diff.c:5403
msgid "synonym for '-p --stat'"
msgstr "sinónimo de '-p --stat'"
-#: diff.c:5406
+#: diff.c:5407
msgid "machine friendly --stat"
msgstr "--stat amigável à máquina"
-#: diff.c:5409
+#: diff.c:5410
msgid "output only the last line of --stat"
msgstr ""
-#: diff.c:5411 diff.c:5419
+#: diff.c:5412 diff.c:5420
msgid "<param1,param2>..."
msgstr ""
-#: diff.c:5412
+#: diff.c:5413
msgid ""
"output the distribution of relative amount of changes for each sub-directory"
msgstr ""
+"mostrar a distribuição relativa da quantidade de alterações para cada "
+"subpasta"
-#: diff.c:5416
+#: diff.c:5417
msgid "synonym for --dirstat=cumulative"
msgstr "sinónimo de --dirstat=cumulative"
-#: diff.c:5420
+#: diff.c:5421
msgid "synonym for --dirstat=files,param1,param2..."
-msgstr ""
+msgstr "sinónimo de --dirstat=files,param1,param2..."
-#: diff.c:5424
+#: diff.c:5425
msgid "warn if changes introduce conflict markers or whitespace errors"
msgstr ""
+"avisar se alterações introduzem marcas de conflito ou erros de espaços-em-"
+"branco"
-#: diff.c:5427
+#: diff.c:5428
msgid "condensed summary such as creations, renames and mode changes"
msgstr ""
-#: diff.c:5430
+#: diff.c:5431
msgid "show only names of changed files"
msgstr ""
-#: diff.c:5433
+#: diff.c:5434
msgid "show only names and status of changed files"
msgstr ""
-#: diff.c:5435
+#: diff.c:5436
msgid "<width>[,<name-width>[,<count>]]"
msgstr ""
-#: diff.c:5436
+#: diff.c:5437
msgid "generate diffstat"
msgstr "gerar diffstat"
-#: diff.c:5438 diff.c:5441 diff.c:5444
+#: diff.c:5439 diff.c:5442 diff.c:5445
msgid "<width>"
msgstr ""
-#: diff.c:5439
+#: diff.c:5440
msgid "generate diffstat with a given width"
msgstr ""
-#: diff.c:5442
+#: diff.c:5443
msgid "generate diffstat with a given name width"
msgstr ""
-#: diff.c:5445
+#: diff.c:5446
msgid "generate diffstat with a given graph width"
msgstr ""
-#: diff.c:5447
+#: diff.c:5448
msgid "<count>"
msgstr ""
-#: diff.c:5448
+#: diff.c:5449
msgid "generate diffstat with limited lines"
msgstr ""
-#: diff.c:5451
+#: diff.c:5452
msgid "generate compact summary in diffstat"
msgstr ""
-#: diff.c:5454
+#: diff.c:5455
msgid "output a binary diff that can be applied"
msgstr ""
-#: diff.c:5457
+#: diff.c:5458
msgid "show full pre- and post-image object names on the \"index\" lines"
msgstr ""
-#: diff.c:5459
+#: diff.c:5460
msgid "show colored diff"
msgstr "mostrar diff colorida"
-#: diff.c:5460
+#: diff.c:5461
msgid "<kind>"
msgstr ""
-#: diff.c:5461
+#: diff.c:5462
msgid ""
"highlight whitespace errors in the 'context', 'old' or 'new' lines in the "
"diff"
msgstr ""
-#: diff.c:5464
+#: diff.c:5465
msgid ""
"do not munge pathnames and use NULs as output field terminators in --raw or "
"--numstat"
msgstr ""
-#: diff.c:5467 diff.c:5470 diff.c:5473 diff.c:5582
+#: diff.c:5468 diff.c:5471 diff.c:5474 diff.c:5583
msgid "<prefix>"
msgstr "<prefixo>"
-#: diff.c:5468
+#: diff.c:5469
msgid "show the given source prefix instead of \"a/\""
msgstr ""
-#: diff.c:5471
+#: diff.c:5472
msgid "show the given destination prefix instead of \"b/\""
msgstr ""
-#: diff.c:5474
+#: diff.c:5475
msgid "prepend an additional prefix to every line of output"
-msgstr "preceder o nomebase do projeto pai na saída"
+msgstr "preceder com um prefixo adicional em todas as linhas da saída"
-#: diff.c:5477
+#: diff.c:5478
msgid "do not show any source or destination prefix"
msgstr ""
-#: diff.c:5480
+#: diff.c:5481
msgid "show context between diff hunks up to the specified number of lines"
-msgstr "mostrar contexto entre diff de pedaços até ao número de linhas especificado"
+msgstr ""
+"mostrar contexto entre diff de pedaços até ao número de linhas especificado"
-#: diff.c:5484 diff.c:5489 diff.c:5494
+#: diff.c:5485 diff.c:5490 diff.c:5495
msgid "<char>"
msgstr "<caractere>"
-#: diff.c:5485
+#: diff.c:5486
msgid "specify the character to indicate a new line instead of '+'"
msgstr ""
-#: diff.c:5490
+#: diff.c:5491
msgid "specify the character to indicate an old line instead of '-'"
msgstr ""
-#: diff.c:5495
+#: diff.c:5496
msgid "specify the character to indicate a context instead of ' '"
msgstr ""
-#: diff.c:5498
+#: diff.c:5499
msgid "Diff rename options"
msgstr ""
-#: diff.c:5499
+#: diff.c:5500
msgid "<n>[/<m>]"
msgstr "<n>[/<m>]"
-#: diff.c:5500
+#: diff.c:5501
msgid "break complete rewrite changes into pairs of delete and create"
msgstr ""
-#: diff.c:5504
+#: diff.c:5505
msgid "detect renames"
msgstr "detetar renomeações"
-#: diff.c:5508
+#: diff.c:5509
msgid "omit the preimage for deletes"
msgstr ""
-#: diff.c:5511
+#: diff.c:5512
msgid "detect copies"
msgstr ""
-#: diff.c:5515
+#: diff.c:5516
msgid "use unmodified files as source to find copies"
msgstr ""
-#: diff.c:5517
+#: diff.c:5518
msgid "disable rename detection"
msgstr "desativar detecção de renomeação"
-#: diff.c:5520
+#: diff.c:5521
msgid "use empty blobs as rename source"
msgstr ""
-#: diff.c:5522
+#: diff.c:5523
msgid "continue listing the history of a file beyond renames"
msgstr ""
-#: diff.c:5525
+#: diff.c:5526
msgid ""
"prevent rename/copy detection if the number of rename/copy targets exceeds "
"given limit"
msgstr ""
-#: diff.c:5527
+#: diff.c:5528
msgid "Diff algorithm options"
msgstr ""
-#: diff.c:5529
+#: diff.c:5530
msgid "produce the smallest possible diff"
msgstr ""
-#: diff.c:5532
+#: diff.c:5533
msgid "ignore whitespace when comparing lines"
msgstr ""
-#: diff.c:5535
+#: diff.c:5536
msgid "ignore changes in amount of whitespace"
msgstr ""
-#: diff.c:5538
+#: diff.c:5539
msgid "ignore changes in whitespace at EOL"
msgstr ""
-#: diff.c:5541
+#: diff.c:5542
msgid "ignore carrier-return at the end of line"
msgstr ""
-#: diff.c:5544
+#: diff.c:5545
msgid "ignore changes whose lines are all blank"
msgstr ""
-#: diff.c:5546 diff.c:5568 diff.c:5571 diff.c:5616
+#: diff.c:5547 diff.c:5569 diff.c:5572 diff.c:5617
msgid "<regex>"
msgstr ""
-#: diff.c:5547
+#: diff.c:5548
msgid "ignore changes whose all lines match <regex>"
msgstr ""
-#: diff.c:5550
+#: diff.c:5551
msgid "heuristic to shift diff hunk boundaries for easy reading"
msgstr ""
-#: diff.c:5553
+#: diff.c:5554
msgid "generate diff using the \"patience diff\" algorithm"
msgstr ""
-#: diff.c:5557
+#: diff.c:5558
msgid "generate diff using the \"histogram diff\" algorithm"
msgstr ""
-#: diff.c:5559
+#: diff.c:5560
msgid "<algorithm>"
msgstr ""
-#: diff.c:5560
+#: diff.c:5561
msgid "choose a diff algorithm"
msgstr ""
-#: diff.c:5562
+#: diff.c:5563
msgid "<text>"
msgstr "<texto>"
-#: diff.c:5563
+#: diff.c:5564
msgid "generate diff using the \"anchored diff\" algorithm"
msgstr ""
-#: diff.c:5565 diff.c:5574 diff.c:5577
+#: diff.c:5566 diff.c:5575 diff.c:5578
msgid "<mode>"
msgstr "<modo>"
-#: diff.c:5566
+#: diff.c:5567
msgid "show word diff, using <mode> to delimit changed words"
msgstr ""
-#: diff.c:5569
+#: diff.c:5570
msgid "use <regex> to decide what a word is"
msgstr ""
-#: diff.c:5572
+#: diff.c:5573
msgid "equivalent to --word-diff=color --word-diff-regex=<regex>"
msgstr ""
-#: diff.c:5575
+#: diff.c:5576
msgid "moved lines of code are colored differently"
msgstr ""
-#: diff.c:5578
+#: diff.c:5579
msgid "how white spaces are ignored in --color-moved"
msgstr ""
-#: diff.c:5581
+#: diff.c:5582
msgid "Other diff options"
msgstr ""
-#: diff.c:5583
+#: diff.c:5584
msgid "when run from subdir, exclude changes outside and show relative paths"
msgstr ""
-#: diff.c:5587
+#: diff.c:5588
msgid "treat all files as text"
msgstr "tratar todos ficheiros como texto"
-#: diff.c:5589
+#: diff.c:5590
msgid "swap two inputs, reverse the diff"
msgstr ""
-#: diff.c:5591
+#: diff.c:5592
msgid "exit with 1 if there were differences, 0 otherwise"
msgstr ""
-#: diff.c:5593
+#: diff.c:5594
msgid "disable all output of the program"
msgstr ""
-#: diff.c:5595
+#: diff.c:5596
msgid "allow an external diff helper to be executed"
msgstr ""
-#: diff.c:5597
+#: diff.c:5598
msgid "run external text conversion filters when comparing binary files"
msgstr ""
-#: diff.c:5599
+#: diff.c:5600
msgid "<when>"
msgstr "<quando>"
-#: diff.c:5600
+#: diff.c:5601
msgid "ignore changes to submodules in the diff generation"
-msgstr ""
-"ignorar alterações em submódulos, quando é opcional: all, dirty, untracked. "
-"(Predefinição: all)"
+msgstr "ignorar alterações em submódulo na geração de diff"
-#: diff.c:5603
+#: diff.c:5604
msgid "<format>"
msgstr "<formato>"
-#: diff.c:5604
+#: diff.c:5605
msgid "specify how differences in submodules are shown"
msgstr ""
-#: diff.c:5608
+#: diff.c:5609
msgid "hide 'git add -N' entries from the index"
msgstr ""
-#: diff.c:5611
+#: diff.c:5612
msgid "treat 'git add -N' entries as real in the index"
msgstr ""
-#: diff.c:5613
+#: diff.c:5614
msgid "<string>"
msgstr "<string>"
-#: diff.c:5614
+#: diff.c:5615
msgid ""
"look for differences that change the number of occurrences of the specified "
"string"
msgstr ""
-#: diff.c:5617
+#: diff.c:5618
msgid ""
"look for differences that change the number of occurrences of the specified "
"regex"
msgstr ""
-#: diff.c:5620
+#: diff.c:5621
msgid "show all changes in the changeset with -S or -G"
-msgstr "mostrar todos as alterações em memória com -S ou -G"
+msgstr "mostrar todas as alterações em memória com -S ou -G"
-#: diff.c:5623
+#: diff.c:5624
msgid "treat <string> in -S as extended POSIX regular expression"
msgstr "tratar <string> em -S como expressão comum estendida de POSIX"
-#: diff.c:5626
+#: diff.c:5627
msgid "control the order in which files appear in the output"
msgstr "controlar a ordem em que os ficheiro aparecem na saída"
-#: diff.c:5627 diff.c:5630
+#: diff.c:5628 diff.c:5631
msgid "<path>"
msgstr "<caminho>"
-#: diff.c:5628
+#: diff.c:5629
msgid "show the change in the specified path first"
msgstr ""
"escrever o ficheiro de índice do pacote na versão de formato especificada"
-#: diff.c:5631
+#: diff.c:5632
msgid "skip the output to the specified path"
msgstr "ignorar saída para caminho especificado"
-#: diff.c:5633
+#: diff.c:5634
msgid "<object-id>"
msgstr "<id-objeto>"
-#: diff.c:5634
+#: diff.c:5635
msgid ""
"look for differences that change the number of occurrences of the specified "
"object"
msgstr ""
-#: diff.c:5636
+#: diff.c:5637
msgid "[(A|C|D|M|R|T|U|X|B)...[*]]"
msgstr ""
-#: diff.c:5637
+#: diff.c:5638
msgid "select files by diff type"
msgstr ""
-#: diff.c:5639
+#: diff.c:5640
msgid "<file>"
msgstr "<ficheiro>"
-#: diff.c:5640
-msgid "Output to a specific file"
-msgstr "Sair para ficheiro específico"
+#: diff.c:5641
+msgid "output to a specific file"
+msgstr "saída para um ficheiro específico"
-#: diff.c:6298
+#: diff.c:6321
msgid "exhaustive rename detection was skipped due to too many files."
msgstr ""
"detecção de renomeação exaustiva foi ignorada devido a demasiados ficheiros."
-#: diff.c:6301
+#: diff.c:6324
msgid "only found copies from modified paths due to too many files."
msgstr ""
"só foram encontradas cópias de caminhos modificados devido a demasiados "
"ficheiros."
-#: diff.c:6304
+#: diff.c:6327
#, c-format
msgid ""
"you may want to set your %s variable to at least %d and retry the command."
@@ -4056,7 +4208,7 @@ msgstr ""
msgid "failed to read orderfile '%s'"
msgstr "falha ao ler ficheiro de comando '%s'"
-#: diffcore-rename.c:1514
+#: diffcore-rename.c:1564
msgid "Performing inexact rename detection"
msgstr "Realizando detecção de renomeação inexata"
@@ -4068,7 +4220,8 @@ msgstr "path %s inexistente em diff"
#: dir.c:593
#, c-format
msgid "pathspec '%s' did not match any file(s) known to git"
-msgstr "espetro-caminho '%s' correspondeu a ficheiro(s) nenhum(s) conhecido pelo git"
+msgstr ""
+"espetro-caminho '%s' correspondeu a ficheiro(s) nenhum(s) conhecido pelo git"
#: dir.c:733 dir.c:762 dir.c:775
#, c-format
@@ -4085,39 +4238,47 @@ msgstr "por reconhecer padrão negativo: '%s'"
msgid "your sparse-checkout file may have issues: pattern '%s' is repeated"
msgstr ""
-#: dir.c:830
+#: dir.c:828
msgid "disabling cone pattern matching"
msgstr "desativando correspondência de padrão em cone"
-#: dir.c:1214
+#: dir.c:1212
#, c-format
msgid "cannot use %s as an exclude file"
msgstr "incapaz usar %s como ficheiro de exclusão"
-#: dir.c:2351
+#: dir.c:2419
#, c-format
msgid "could not open directory '%s'"
msgstr "incapaz abrir pasta '%s'"
-#: dir.c:2653
+#: dir.c:2721
msgid "failed to get kernel name and information"
msgstr "falha ao obter nome e informação do kernel"
-#: dir.c:2777
+#: dir.c:2846
msgid "untracked cache is disabled on this system or location"
-msgstr "cache untracked está desativada neste sistema ou localização."
+msgstr "cenário desmonitorizado está desativado neste sistema ou localização"
-#: dir.c:3610
+#: dir.c:3119
+msgid ""
+"No directory name could be guessed.\n"
+"Please specify a directory on the command line"
+msgstr ""
+"Incapaz adivinhar nome de pasta.\n"
+"Por favor especifique uma pasta na linha de comandos"
+
+#: dir.c:3807
#, c-format
msgid "index file corrupt in repo %s"
msgstr ""
-#: dir.c:3657 dir.c:3662
+#: dir.c:3854 dir.c:3859
#, c-format
msgid "could not create directories for %s"
msgstr "incapaz criar pasta para %s"
-#: dir.c:3691
+#: dir.c:3888
#, c-format
msgid "could not migrate git directory from '%s' to '%s'"
msgstr "incapaz migrar pasta git de '%s' para '%s'"
@@ -4127,412 +4288,498 @@ msgstr "incapaz migrar pasta git de '%s' para '%s'"
msgid "hint: Waiting for your editor to close the file...%c"
msgstr ""
-#: entry.c:176
+#: entry.c:179
msgid "Filtering content"
msgstr "Filtrando conteúdo"
-#: entry.c:497
+#: entry.c:500
#, c-format
msgid "could not stat file '%s'"
msgstr "incapaz de stat o ficheiro '%s'"
-#: environment.c:152
+#: environment.c:147
#, c-format
msgid "bad git namespace path \"%s\""
msgstr ""
-#: environment.c:334
-#, c-format
-msgid "could not set GIT_DIR to '%s'"
-msgstr "incapaz definir GIT_DIR para '%s'"
-
#: exec-cmd.c:363
#, c-format
msgid "too many args to run %s"
msgstr ""
-#: fetch-pack.c:182
+#: fetch-pack.c:194
msgid "git fetch-pack: expected shallow list"
msgstr "git fetch-pack: esperado lista superficial"
-#: fetch-pack.c:185
+#: fetch-pack.c:197
msgid "git fetch-pack: expected a flush packet after shallow list"
msgstr "git fetch-pack: esperado pacote flush após lista superficial"
-#: fetch-pack.c:196
+#: fetch-pack.c:208
msgid "git fetch-pack: expected ACK/NAK, got a flush packet"
msgstr "git fetch-pack: esperado ACK/NAK, obtive um pacote flush"
-#: fetch-pack.c:216
+#: fetch-pack.c:228
#, c-format
msgid "git fetch-pack: expected ACK/NAK, got '%s'"
msgstr "git fetch-pack: esperado ACK/NAK, obtive '%s'"
-#: fetch-pack.c:227
+#: fetch-pack.c:239
msgid "unable to write to remote"
msgstr "incapaz escrever para remoto"
-#: fetch-pack.c:288
-msgid "--stateless-rpc requires multi_ack_detailed"
-msgstr "--stateless-rpc requer multi_ack_detailed"
-
-#: fetch-pack.c:383 fetch-pack.c:1423
+#: fetch-pack.c:397 fetch-pack.c:1460
#, c-format
msgid "invalid shallow line: %s"
msgstr "linha superficial inválida: %s"
-#: fetch-pack.c:389 fetch-pack.c:1429
+#: fetch-pack.c:403 fetch-pack.c:1466
#, c-format
msgid "invalid unshallow line: %s"
-msgstr "linha por aprofundar inválida: %s"
+msgstr "linha não-aprofunda inválida: %s"
-#: fetch-pack.c:391 fetch-pack.c:1431
+#: fetch-pack.c:405 fetch-pack.c:1468
#, c-format
msgid "object not found: %s"
-msgstr "objeto perdido: %s"
+msgstr "objeto por encontrar: %s"
-#: fetch-pack.c:394 fetch-pack.c:1434
+#: fetch-pack.c:408 fetch-pack.c:1471
#, c-format
msgid "error in object: %s"
msgstr "erro no objeto: %s"
-#: fetch-pack.c:396 fetch-pack.c:1436
+#: fetch-pack.c:410 fetch-pack.c:1473
#, c-format
msgid "no shallow found: %s"
-msgstr "shallow por encontrar: %s"
+msgstr "nenhum superficial encontrado: %s"
-#: fetch-pack.c:399 fetch-pack.c:1440
+#: fetch-pack.c:413 fetch-pack.c:1477
#, c-format
msgid "expected shallow/unshallow, got %s"
msgstr "esperado shallow/unshallow, recebi %s"
-#: fetch-pack.c:439
+#: fetch-pack.c:453
#, c-format
msgid "got %s %d %s"
-msgstr "obteve-se %s %d %s"
+msgstr "obtive %s %d %s"
-#: fetch-pack.c:456
+#: fetch-pack.c:470
#, c-format
msgid "invalid commit %s"
msgstr "memória inválida %s"
-#: fetch-pack.c:487
+#: fetch-pack.c:501
msgid "giving up"
-msgstr "a desistir"
+msgstr "desistindo"
-#: fetch-pack.c:500 progress.c:339
+#: fetch-pack.c:514 progress.h:25
msgid "done"
msgstr "concluído"
-#: fetch-pack.c:512
+#: fetch-pack.c:526
#, c-format
msgid "got %s (%d) %s"
-msgstr "obteve-se %s (%d) %s"
+msgstr "obtive %s (%d) %s"
-#: fetch-pack.c:548
+#: fetch-pack.c:562
#, c-format
msgid "Marking %s as complete"
-msgstr "Marcado %s como completo"
+msgstr "Marcando %s como completo"
-#: fetch-pack.c:763
+#: fetch-pack.c:784
#, c-format
msgid "already have %s (%s)"
-msgstr "já se tem %s (%s)"
+msgstr "já tenho %s (%s)"
-#: fetch-pack.c:849
+#: fetch-pack.c:870
msgid "fetch-pack: unable to fork off sideband demultiplexer"
-msgstr "fetch-pack: incapaz de aforquilhar demultiplexer sideband"
+msgstr "fetch-pack: incapaz de forquear demultiplexer sideband"
-#: fetch-pack.c:857
+#: fetch-pack.c:878
msgid "protocol error: bad pack header"
-msgstr ""
+msgstr "erro de protocolo: cabeçalho de pacote inválido"
-#: fetch-pack.c:951
+#: fetch-pack.c:974
#, c-format
msgid "fetch-pack: unable to fork off %s"
-msgstr "fetch-pack: incapaz de fazer fork a %s"
+msgstr "fetch-pack: incapaz de forquear %s"
-#: fetch-pack.c:957
+#: fetch-pack.c:980
msgid "fetch-pack: invalid index-pack output"
-msgstr ""
+msgstr "fetch-pack: saída de cenário-pacote inválido"
-#: fetch-pack.c:974
+#: fetch-pack.c:997
#, c-format
msgid "%s failed"
msgstr "%s falhou"
-#: fetch-pack.c:976
+#: fetch-pack.c:999
msgid "error in sideband demultiplexer"
msgstr "erro em demultiplexer sideband"
-#: fetch-pack.c:1019
+#: fetch-pack.c:1048
#, c-format
msgid "Server version is %.*s"
-msgstr "A versão do servidor é %.*s"
+msgstr "Versão de servidor é %.*s"
-#: fetch-pack.c:1027 fetch-pack.c:1033 fetch-pack.c:1036 fetch-pack.c:1042
-#: fetch-pack.c:1046 fetch-pack.c:1050 fetch-pack.c:1054 fetch-pack.c:1058
-#: fetch-pack.c:1062 fetch-pack.c:1066 fetch-pack.c:1070 fetch-pack.c:1074
-#: fetch-pack.c:1080 fetch-pack.c:1086 fetch-pack.c:1091 fetch-pack.c:1096
+#: fetch-pack.c:1056 fetch-pack.c:1062 fetch-pack.c:1065 fetch-pack.c:1071
+#: fetch-pack.c:1075 fetch-pack.c:1079 fetch-pack.c:1083 fetch-pack.c:1087
+#: fetch-pack.c:1091 fetch-pack.c:1095 fetch-pack.c:1099 fetch-pack.c:1103
+#: fetch-pack.c:1109 fetch-pack.c:1115 fetch-pack.c:1120 fetch-pack.c:1125
#, c-format
msgid "Server supports %s"
msgstr "Servidor sustenta %s"
-#: fetch-pack.c:1029
+#: fetch-pack.c:1058
msgid "Server does not support shallow clients"
-msgstr "Servidor insustenta clientes shallow"
+msgstr "Servidor insustenta clientes superficiais"
-#: fetch-pack.c:1089
+#: fetch-pack.c:1118
msgid "Server does not support --shallow-since"
msgstr "Servidor insustenta --shallow-since"
-#: fetch-pack.c:1094
+#: fetch-pack.c:1123
msgid "Server does not support --shallow-exclude"
msgstr "Servidor insustenta --shallow-exclude"
-#: fetch-pack.c:1098
+#: fetch-pack.c:1127
msgid "Server does not support --deepen"
msgstr "Servidor insustenta --deepen"
-#: fetch-pack.c:1100
+#: fetch-pack.c:1129
msgid "Server does not support this repository's object format"
msgstr "Servidor insustenta formato de objeto deste repositório"
-#: fetch-pack.c:1113
+#: fetch-pack.c:1142
msgid "no common commits"
-msgstr "commits comuns nenhuns"
+msgstr "memórias comuns nenhumas"
-#: fetch-pack.c:1122 fetch-pack.c:1469 builtin/clone.c:1238
+#: fetch-pack.c:1151 fetch-pack.c:1506 builtin/clone.c:1166
msgid "source repository is shallow, reject to clone."
-msgstr "repositório de origem é raso, rejeita para clonar."
+msgstr "repositório de origem é superficial, rejeito clonar."
-#: fetch-pack.c:1128 fetch-pack.c:1660
+#: fetch-pack.c:1157 fetch-pack.c:1705
msgid "git fetch-pack: fetch failed."
-msgstr "git fetch-pack: buscar falhou."
+msgstr "git fetch-pack: busca falhou."
-#: fetch-pack.c:1242
+#: fetch-pack.c:1271
#, c-format
msgid "mismatched algorithms: client %s; server %s"
-msgstr ""
+msgstr "algoritmos sem correspondência: cliente %s; servidor %s"
-#: fetch-pack.c:1246
+#: fetch-pack.c:1275
#, c-format
msgid "the server does not support algorithm '%s'"
msgstr "o servidor insustenta algoritmo '%s'"
-#: fetch-pack.c:1279
+#: fetch-pack.c:1308
msgid "Server does not support shallow requests"
msgstr "Servidor insustenta pedidos shallow"
-#: fetch-pack.c:1286
+#: fetch-pack.c:1315
msgid "Server supports filter"
msgstr "Servidor sustenta filtro"
-#: fetch-pack.c:1329 fetch-pack.c:2043
+#: fetch-pack.c:1358 fetch-pack.c:2087
msgid "unable to write request to remote"
msgstr "incapaz escrever pedidos para remoto"
-#: fetch-pack.c:1347
+#: fetch-pack.c:1376
#, c-format
msgid "error reading section header '%s'"
-msgstr ""
+msgstr "erro lendo cabeçalho de secção '%s'"
-#: fetch-pack.c:1353
+#: fetch-pack.c:1382
#, c-format
msgid "expected '%s', received '%s'"
-msgstr ""
+msgstr "esperado '%s', recebi '%s'"
-#: fetch-pack.c:1387
+#: fetch-pack.c:1416
#, c-format
msgid "unexpected acknowledgment line: '%s'"
-msgstr ""
+msgstr "linha de confirmação inesperada: '%s'"
-#: fetch-pack.c:1392
+#: fetch-pack.c:1421
#, c-format
msgid "error processing acks: %d"
-msgstr ""
+msgstr "erro processando acks: %d"
-#: fetch-pack.c:1402
-msgid "expected packfile to be sent after 'ready'"
-msgstr ""
+#. TRANSLATORS: The parameter will be 'ready', a protocol
+#. keyword.
+#.
+#: fetch-pack.c:1435
+#, c-format
+msgid "expected packfile to be sent after '%s'"
+msgstr "esperado que ficheiro-pacote seja enviado depois de '%s'"
-#: fetch-pack.c:1404
-msgid "expected no other sections to be sent after no 'ready'"
-msgstr ""
+#. TRANSLATORS: The parameter will be 'ready', a protocol
+#. keyword.
+#.
+#: fetch-pack.c:1441
+#, c-format
+msgid "expected no other sections to be sent after no '%s'"
+msgstr "esperar enviar outras secções apenas depois de '%s'"
-#: fetch-pack.c:1445
+#: fetch-pack.c:1482
#, c-format
msgid "error processing shallow info: %d"
-msgstr ""
+msgstr "erro processando info superficial: %d"
-#: fetch-pack.c:1494
+#: fetch-pack.c:1531
#, c-format
msgid "expected wanted-ref, got '%s'"
-msgstr ""
+msgstr "esperado wanted-ref, recebi '%s'"
-#: fetch-pack.c:1499
+#: fetch-pack.c:1536
#, c-format
msgid "unexpected wanted-ref: '%s'"
-msgstr ""
+msgstr "wanted-ref inesperada: '%s'"
-#: fetch-pack.c:1504
+#: fetch-pack.c:1541
#, c-format
msgid "error processing wanted refs: %d"
-msgstr ""
+msgstr "erro processando wanted-refs: %d"
-#: fetch-pack.c:1534
+#: fetch-pack.c:1571
msgid "git fetch-pack: expected response end packet"
msgstr "git fetch-pack: esperado pacote fim de resposta"
-#: fetch-pack.c:1939
+#: fetch-pack.c:1983
msgid "no matching remote head"
msgstr "corresponde a remote head nenhuma"
-#: fetch-pack.c:1962 builtin/clone.c:697
+#: fetch-pack.c:2006 builtin/clone.c:587
msgid "remote did not send all necessary objects"
msgstr "remoto faltou enviar todos objetos necessários"
-#: fetch-pack.c:2065
+#: fetch-pack.c:2109
msgid "unexpected 'ready' from remote"
-msgstr ""
+msgstr "'ready' inesperado de remoto"
-#: fetch-pack.c:2088
+#: fetch-pack.c:2132
#, c-format
msgid "no such remote ref %s"
msgstr "referência remota %s inexistente"
-#: fetch-pack.c:2091
+#: fetch-pack.c:2135
#, c-format
msgid "Server does not allow request for unadvertised object %s"
msgstr "Servidor proíbe pedido de objeto por anunciar %s"
-#: gpg-interface.c:273
+#: fsmonitor-ipc.c:119
+#, c-format
+msgid "fsmonitor_ipc__send_query: invalid path '%s'"
+msgstr ""
+
+#: fsmonitor-ipc.c:125
+#, c-format
+msgid "fsmonitor_ipc__send_query: unspecified error on '%s'"
+msgstr ""
+
+#: fsmonitor-ipc.c:155
+msgid "fsmonitor--daemon is not running"
+msgstr ""
+
+#: fsmonitor-ipc.c:164
+#, c-format
+msgid "could not send '%s' command to fsmonitor--daemon"
+msgstr "incapaz enviar comando '%s' para fsmonitor--daemon"
+
+#: gpg-interface.c:329 gpg-interface.c:456 gpg-interface.c:995
+#: gpg-interface.c:1011
msgid "could not create temporary file"
msgstr "incapaz criar ficheiro temporário"
-#: gpg-interface.c:276
+#: gpg-interface.c:332 gpg-interface.c:459
#, c-format
msgid "failed writing detached signature to '%s'"
-msgstr "falha ao escrever assinatura destacada em '%s'"
+msgstr "falhou ao escrever assinatura destacada em '%s'"
+
+#: gpg-interface.c:450
+msgid ""
+"gpg.ssh.allowedSignersFile needs to be configured and exist for ssh "
+"signature verification"
+msgstr ""
+
+#: gpg-interface.c:479
+msgid ""
+"ssh-keygen -Y find-principals/verify is needed for ssh signature "
+"verification (available in openssh version 8.2p1+)"
+msgstr ""
+
+#: gpg-interface.c:550
+#, c-format
+msgid "ssh signing revocation file configured but not found: %s"
+msgstr ""
+
+#: gpg-interface.c:638
+#, c-format
+msgid "bad/incompatible signature '%s'"
+msgstr "assinatura '%s' incorreta/incompatível"
+
+#: gpg-interface.c:815 gpg-interface.c:820
+#, c-format
+msgid "failed to get the ssh fingerprint for key '%s'"
+msgstr "obtenção de fingerprint ssh para chave '%s' falhou"
-#: gpg-interface.c:470
+#: gpg-interface.c:843
+msgid ""
+"either user.signingkey or gpg.ssh.defaultKeyCommand needs to be configured"
+msgstr ""
+
+#: gpg-interface.c:865
+#, c-format
+msgid "gpg.ssh.defaultKeyCommand succeeded but returned no keys: %s %s"
+msgstr ""
+
+#: gpg-interface.c:871
+#, c-format
+msgid "gpg.ssh.defaultKeyCommand failed: %s %s"
+msgstr ""
+
+#: gpg-interface.c:966
msgid "gpg failed to sign the data"
msgstr "gpg falhou assinar os dados"
+#: gpg-interface.c:988
+msgid "user.signingkey needs to be set for ssh signing"
+msgstr ""
+
+#: gpg-interface.c:999
+#, c-format
+msgid "failed writing ssh signing key to '%s'"
+msgstr "falhou escrita de chave de assinatura ssh para '%s'"
+
+#: gpg-interface.c:1017
+#, c-format
+msgid "failed writing ssh signing key buffer to '%s'"
+msgstr "falhou escrita de buffer de chave de assinatura ssh para '%s'"
+
+#: gpg-interface.c:1035
+msgid ""
+"ssh-keygen -Y sign is needed for ssh signing (available in openssh version "
+"8.2p1+)"
+msgstr ""
+
+#: gpg-interface.c:1047
+#, c-format
+msgid "failed reading ssh signing data buffer from '%s'"
+msgstr "falhou leitura de buffer de data de assinatura ssh de '%s'"
+
#: graph.c:98
#, c-format
msgid "ignored invalid color '%.*s' in log.graphColors"
msgstr "ignorar cor inválida '%.*s' em log.graphColors"
-#: grep.c:531
+#: grep.c:446
msgid ""
"given pattern contains NULL byte (via -f <file>). This is only supported "
"with -P under PCRE v2"
msgstr ""
-#: grep.c:1895
+#: grep.c:1859
#, c-format
msgid "'%s': unable to read %s"
msgstr "'%s': incapaz ler %s"
-#: grep.c:1912 setup.c:176 builtin/clone.c:416 builtin/diff.c:90
+#: grep.c:1876 setup.c:178 builtin/clone.c:308 builtin/diff.c:90
#: builtin/rm.c:136
#, c-format
msgid "failed to stat '%s'"
msgstr ""
-#: grep.c:1923
+#: grep.c:1887
#, c-format
msgid "'%s': short read"
msgstr "'%s': leitura truncada"
-#: help.c:23
+#: help.c:25
msgid "start a working area (see also: git help tutorial)"
-msgstr "iniciar uma área de trabalho (vê também: git help tutorial)"
+msgstr "iniciar uma área-trabalho (vê também: git help tutorial)"
-#: help.c:24
+#: help.c:26
msgid "work on the current change (see also: git help everyday)"
msgstr "trabalhar na alteração atual (vê também: git help everyday)"
-#: help.c:25
+#: help.c:27
msgid "examine the history and state (see also: git help revisions)"
msgstr "examinar o histórico e estado (vê também: git help revisions)"
-#: help.c:26
+#: help.c:28
msgid "grow, mark and tweak your common history"
-msgstr "aumentar, marcar e ajustar o seu histórico comum"
+msgstr "aumentar, marcar e ajustar teu histórico comum"
-#: help.c:27
+#: help.c:29
msgid "collaborate (see also: git help workflows)"
msgstr "colaborar (vê também: git help workflows)"
-#: help.c:31
+#: help.c:33
msgid "Main Porcelain Commands"
msgstr ""
-#: help.c:32
+#: help.c:34
msgid "Ancillary Commands / Manipulators"
msgstr ""
-#: help.c:33
+#: help.c:35
msgid "Ancillary Commands / Interrogators"
msgstr ""
-#: help.c:34
+#: help.c:36
msgid "Interacting with Others"
msgstr ""
-#: help.c:35
+#: help.c:37
msgid "Low-level Commands / Manipulators"
msgstr ""
-#: help.c:36
+#: help.c:38
msgid "Low-level Commands / Interrogators"
msgstr ""
-#: help.c:37
+#: help.c:39
msgid "Low-level Commands / Syncing Repositories"
msgstr ""
-#: help.c:38
+#: help.c:40
msgid "Low-level Commands / Internal Helpers"
msgstr ""
-#: help.c:300
+#: help.c:316
#, c-format
msgid "available git commands in '%s'"
msgstr "comandos de git disponíveis em '%s'"
-#: help.c:307
+#: help.c:323
msgid "git commands available from elsewhere on your $PATH"
msgstr "comandos do git disponíveis noutras localizações em $PATH"
-#: help.c:316
+#: help.c:332
msgid "These are common Git commands used in various situations:"
msgstr "Estes são comandos do Git comuns usados em diversas situações:"
-#: help.c:365 git.c:100
+#: help.c:382 git.c:100
#, c-format
msgid "unsupported command listing type '%s'"
-msgstr "insustento para listagem tipo comandos '%s'"
+msgstr "insustentado para listagem tipo comandos '%s'"
-#: help.c:405
+#: help.c:422
msgid "The Git concept guides are:"
msgstr "Os guias comuns do Git:"
-#: help.c:429
-msgid "See 'git help <command>' to read about a specific subcommand"
-msgstr ""
-
-#: help.c:434
+#: help.c:446
msgid "External commands"
msgstr "Comandos externos"
-#: help.c:449
+#: help.c:468
msgid "Command aliases"
msgstr "Aliases de comando"
-#: help.c:527
+#: help.c:486
+msgid "See 'git help <command>' to read about a specific subcommand"
+msgstr ""
+
+#: help.c:563
#, c-format
msgid ""
"'%s' appears to be a git command, but we were not\n"
@@ -4541,31 +4788,36 @@ msgstr ""
"'%s' parece ser comando git, mas incapaz executá-lo.\n"
"Talvez git-%s esteja danificado?"
-#: help.c:543 help.c:631
+#: help.c:585 help.c:682
#, c-format
msgid "git: '%s' is not a git command. See 'git --help'."
msgstr "git: '%s' é comando git nenhum. Vê 'git --help'."
-#: help.c:591
+#: help.c:633
msgid "Uh oh. Your system reports no Git commands at all."
msgstr "Carago. Teu sistema reporta comandos Git nenhuns."
-#: help.c:613
+#: help.c:655
#, c-format
msgid "WARNING: You called a Git command named '%s', which does not exist."
msgstr "AVISO: Chamou comando Git designado '%s', que é inexistente."
-#: help.c:618
+#: help.c:660
#, c-format
msgid "Continuing under the assumption that you meant '%s'."
msgstr ""
-#: help.c:623
+#: help.c:666
+#, c-format
+msgid "Run '%s' instead [y/N]? "
+msgstr ""
+
+#: help.c:674
#, c-format
msgid "Continuing in %0.1f seconds, assuming that you meant '%s'."
msgstr ""
-#: help.c:635
+#: help.c:686
msgid ""
"\n"
"The most similar command is"
@@ -4575,16 +4827,16 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: help.c:675
+#: help.c:729
msgid "git version [<options>]"
msgstr "git version [<opções>]"
-#: help.c:730
+#: help.c:784
#, c-format
msgid "%s: %s - %s"
msgstr "%s: %s - %s"
-#: help.c:734
+#: help.c:788
msgid ""
"\n"
"Did you mean this?"
@@ -4598,15 +4850,27 @@ msgstr[1] ""
"\n"
"Queria dizer deste?"
-#: ident.c:353
+#: hook.c:28
+#, c-format
+msgid ""
+"The '%s' hook was ignored because it's not set as executable.\n"
+"You can disable this warning with `git config advice.ignoredHook false`."
+msgstr ""
+
+#: hook.c:87
+#, c-format
+msgid "Couldn't start hook '%s'\n"
+msgstr "Incapaz iniciar gancho '%s'\n"
+
+#: ident.c:354
msgid "Author identity unknown\n"
msgstr ""
-#: ident.c:356
+#: ident.c:357
msgid "Committer identity unknown\n"
msgstr ""
-#: ident.c:362
+#: ident.c:363
msgid ""
"\n"
"*** Please tell me who you are.\n"
@@ -4621,82 +4885,82 @@ msgid ""
"\n"
msgstr ""
"\n"
-"*** Por favor diga que é.\n"
+"*** Por favor, diz-me quem és.\n"
"\n"
-"Execute\n"
+"Executa\n"
"\n"
" git config --global user.email \"eu@exemplo.com\"\n"
" git config --global user.name \"Meu Nome\"\n"
"\n"
-"para definir a identidade predefinida da sua conta.\n"
-"Omita --global para definir a identidade apenas neste repositório.\n"
+"para definir a identidade predefinida da tua conta.\n"
+"Omite --global para definir a identidade apenas neste repositório.\n"
"\n"
-#: ident.c:397
+#: ident.c:398
msgid "no email was given and auto-detection is disabled"
msgstr "foi dado email nenhum e deteção automática está desativada"
-#: ident.c:402
+#: ident.c:403
#, c-format
msgid "unable to auto-detect email address (got '%s')"
msgstr "incapaz auto-detetar endereço de e-mail (recebi '%s')"
-#: ident.c:419
+#: ident.c:420
msgid "no name was given and auto-detection is disabled"
msgstr "foi dado nome nenhum e deteção automática está desativada"
-#: ident.c:425
+#: ident.c:426
#, c-format
msgid "unable to auto-detect name (got '%s')"
msgstr "incapaz auto-detetar nome (recebi '%s')"
-#: ident.c:433
+#: ident.c:434
#, c-format
msgid "empty ident name (for <%s>) not allowed"
msgstr "nome de identação vazio (para <%s>) proíbido"
-#: ident.c:439
+#: ident.c:440
#, c-format
msgid "name consists only of disallowed characters: %s"
msgstr "nome consiste apenas de caracteres proíbidos: %s"
-#: ident.c:454 builtin/commit.c:647
+#: ident.c:455 builtin/commit.c:649
#, c-format
msgid "invalid date format: %s"
msgstr "formato de data inválido: %s"
-#: list-objects-filter-options.c:83
+#: list-objects-filter-options.c:68
msgid "expected 'tree:<depth>'"
msgstr ""
-#: list-objects-filter-options.c:98
+#: list-objects-filter-options.c:83
msgid "sparse:path filters support has been dropped"
msgstr ""
-#: list-objects-filter-options.c:105
+#: list-objects-filter-options.c:90
#, c-format
msgid "'%s' for 'object:type=<type>' is not a valid object type"
msgstr "'%s' para 'object:type=<type>' é um tipo de objecto inválido"
-#: list-objects-filter-options.c:124
+#: list-objects-filter-options.c:109
#, c-format
msgid "invalid filter-spec '%s'"
msgstr ""
-#: list-objects-filter-options.c:140
+#: list-objects-filter-options.c:125
#, c-format
msgid "must escape char in sub-filter-spec: '%c'"
msgstr ""
-#: list-objects-filter-options.c:182
+#: list-objects-filter-options.c:167
msgid "expected something after combine:"
msgstr ""
-#: list-objects-filter-options.c:264
+#: list-objects-filter-options.c:249
msgid "multiple filter-specs cannot be combined"
msgstr ""
-#: list-objects-filter-options.c:376
+#: list-objects-filter-options.c:365
msgid "unable to upgrade repository format to support partial clone"
msgstr ""
@@ -4710,20 +4974,20 @@ msgstr "incapaz acessar blob sparse em '%s'"
msgid "unable to parse sparse filter data in %s"
msgstr "incapaz analisar dados de filtro sparse em %s"
-#: list-objects.c:127
+#: list-objects.c:144
#, c-format
msgid "entry '%s' in tree %s has tree mode, but is not a tree"
msgstr ""
-#: list-objects.c:140
+#: list-objects.c:157
#, c-format
msgid "entry '%s' in tree %s has blob mode, but is not a blob"
msgstr ""
-#: list-objects.c:398
+#: list-objects.c:415
#, c-format
msgid "unable to load root tree for commit %s"
-msgstr "incapaz carregar raiz de árvore para commit %s"
+msgstr "incapaz carregar raiz de árvore para memória %s"
#: lockfile.c:152
#, c-format
@@ -4749,12 +5013,12 @@ msgstr ""
msgid "Unable to create '%s.lock': %s"
msgstr "Incapaz de criar '%s.lock': %s"
-#: ls-refs.c:37
+#: ls-refs.c:175
#, c-format
-msgid "invalid value '%s' for lsrefs.unborn"
-msgstr ""
+msgid "unexpected line: '%s'"
+msgstr "linha inesperada: '%s'"
-#: ls-refs.c:167
+#: ls-refs.c:179
msgid "expected flush after ls-refs arguments"
msgstr ""
@@ -4762,44 +5026,44 @@ msgstr ""
msgid "quoted CRLF detected"
msgstr ""
-#: mailinfo.c:1254 builtin/am.c:176 builtin/mailinfo.c:46
+#: mailinfo.c:1254 builtin/am.c:185 builtin/mailinfo.c:46
#, c-format
msgid "bad action '%s' for '%s'"
msgstr "ação inválida '%s' para '%s'"
-#: merge-ort.c:1569 merge-recursive.c:1201
+#: merge-ort.c:1630 merge-recursive.c:1214
#, c-format
msgid "Failed to merge submodule %s (not checked out)"
msgstr ""
-#: merge-ort.c:1578 merge-recursive.c:1208
+#: merge-ort.c:1639 merge-recursive.c:1221
#, c-format
msgid "Failed to merge submodule %s (commits not present)"
msgstr ""
-#: merge-ort.c:1587 merge-recursive.c:1215
+#: merge-ort.c:1648 merge-recursive.c:1228
#, c-format
msgid "Failed to merge submodule %s (commits don't follow merge-base)"
msgstr ""
-#: merge-ort.c:1597 merge-ort.c:1604
+#: merge-ort.c:1658 merge-ort.c:1666
#, c-format
msgid "Note: Fast-forwarding submodule %s to %s"
-msgstr ""
+msgstr "Nota: Avançando submódulo %s para %s"
-#: merge-ort.c:1625
+#: merge-ort.c:1688
#, c-format
msgid "Failed to merge submodule %s"
msgstr "Juntar submódulo %s falhou"
-#: merge-ort.c:1632
+#: merge-ort.c:1695
#, c-format
msgid ""
"Failed to merge submodule %s, but a possible merge resolution exists:\n"
"%s\n"
msgstr ""
-#: merge-ort.c:1636 merge-recursive.c:1269
+#: merge-ort.c:1699 merge-recursive.c:1284
#, c-format
msgid ""
"If this is correct simply add it to the index for example\n"
@@ -4810,42 +5074,42 @@ msgid ""
"which will accept this suggestion.\n"
msgstr ""
-#: merge-ort.c:1649
+#: merge-ort.c:1712
#, c-format
msgid ""
"Failed to merge submodule %s, but multiple possible merges exist:\n"
"%s"
msgstr ""
-#: merge-ort.c:1868 merge-recursive.c:1358
+#: merge-ort.c:1937 merge-recursive.c:1375
msgid "Failed to execute internal merge"
-msgstr "Falha ao executar integração interna"
+msgstr "Falha ao executar junção interna"
-#: merge-ort.c:1873 merge-recursive.c:1363
+#: merge-ort.c:1942 merge-recursive.c:1380
#, c-format
msgid "Unable to add %s to database"
msgstr "Incapaz de adicionar %s à base de dados"
-#: merge-ort.c:1880 merge-recursive.c:1396
+#: merge-ort.c:1949 merge-recursive.c:1413
#, c-format
msgid "Auto-merging %s"
-msgstr "A integrar automaticamente %s"
+msgstr "Juntando automaticamente %s"
-#: merge-ort.c:2019 merge-recursive.c:2118
+#: merge-ort.c:2088 merge-recursive.c:2135
#, c-format
msgid ""
"CONFLICT (implicit dir rename): Existing file/dir at %s in the way of "
"implicit directory rename(s) putting the following path(s) there: %s."
msgstr ""
-#: merge-ort.c:2029 merge-recursive.c:2128
+#: merge-ort.c:2098 merge-recursive.c:2145
#, c-format
msgid ""
"CONFLICT (implicit dir rename): Cannot map more than one path to %s; "
"implicit directory renames tried to put these paths there: %s"
msgstr ""
-#: merge-ort.c:2087
+#: merge-ort.c:2156
#, c-format
msgid ""
"CONFLICT (directory rename split): Unclear where to rename %s to; it was "
@@ -4853,47 +5117,48 @@ msgid ""
"majority of the files."
msgstr ""
-#: merge-ort.c:2241 merge-recursive.c:2464
+#: merge-ort.c:2310 merge-recursive.c:2481
#, c-format
msgid ""
"WARNING: Avoiding applying %s -> %s rename to %s, because %s itself was "
"renamed."
msgstr ""
-#: merge-ort.c:2385 merge-recursive.c:3247
+#: merge-ort.c:2450 merge-recursive.c:3264
#, c-format
msgid ""
"Path updated: %s added in %s inside a directory that was renamed in %s; "
"moving it to %s."
msgstr ""
-#: merge-ort.c:2392 merge-recursive.c:3254
+#: merge-ort.c:2457 merge-recursive.c:3271
#, c-format
msgid ""
"Path updated: %s renamed to %s in %s, inside a directory that was renamed in "
"%s; moving it to %s."
msgstr ""
-#: merge-ort.c:2405 merge-recursive.c:3250
+#: merge-ort.c:2470 merge-recursive.c:3267
#, c-format
msgid ""
"CONFLICT (file location): %s added in %s inside a directory that was renamed "
"in %s, suggesting it should perhaps be moved to %s."
msgstr ""
-#: merge-ort.c:2413 merge-recursive.c:3257
+#: merge-ort.c:2478 merge-recursive.c:3274
#, c-format
msgid ""
"CONFLICT (file location): %s renamed to %s in %s, inside a directory that "
"was renamed in %s, suggesting it should perhaps be moved to %s."
msgstr ""
-#: merge-ort.c:2569
+#: merge-ort.c:2634
#, c-format
msgid "CONFLICT (rename/rename): %s renamed to %s in %s and to %s in %s."
-msgstr "CONFLITO (renomear/renomear): %s renomeado para %s em %s e para %s em %s."
+msgstr ""
+"CONFLITO (renomear/renomear): %s renomeado para %s em %s e para %s em %s."
-#: merge-ort.c:2664
+#: merge-ort.c:2729
#, c-format
msgid ""
"CONFLICT (rename involved in collision): rename of %s -> %s has content "
@@ -4901,69 +5166,70 @@ msgid ""
"markers."
msgstr ""
-#: merge-ort.c:2683 merge-ort.c:2707
+#: merge-ort.c:2748 merge-ort.c:2772
#, c-format
msgid "CONFLICT (rename/delete): %s renamed to %s in %s, but deleted in %s."
-msgstr "CONFLITO (renomear/apagar): %s renomeado para %s em %s, mas apagado em %s."
+msgstr ""
+"CONFLITO (renomear/apagar): %s renomeado para %s em %s, mas apagado em %s."
-#: merge-ort.c:3182 merge-recursive.c:3008
+#: merge-ort.c:3261 merge-recursive.c:3025
#, c-format
msgid "cannot read object %s"
msgstr "incapaz ler objeto %s"
-#: merge-ort.c:3185 merge-recursive.c:3011
+#: merge-ort.c:3264 merge-recursive.c:3028
#, c-format
msgid "object %s is not a blob"
msgstr "objeto %s é blob nenhum"
-#: merge-ort.c:3613
+#: merge-ort.c:3693
#, c-format
msgid ""
"CONFLICT (file/directory): directory in the way of %s from %s; moving it to "
"%s instead."
msgstr ""
-#: merge-ort.c:3689
+#: merge-ort.c:3770
#, c-format
msgid ""
"CONFLICT (distinct types): %s had different types on each side; renamed both "
"of them so each can be recorded somewhere."
msgstr ""
-#: merge-ort.c:3696
+#: merge-ort.c:3777
#, c-format
msgid ""
"CONFLICT (distinct types): %s had different types on each side; renamed one "
"of them so each can be recorded somewhere."
msgstr ""
-#: merge-ort.c:3796 merge-recursive.c:3087
+#: merge-ort.c:3866 merge-recursive.c:3104
msgid "content"
msgstr "conteúdo"
-#: merge-ort.c:3798 merge-recursive.c:3091
+#: merge-ort.c:3868 merge-recursive.c:3108
msgid "add/add"
msgstr "adicionar/adicionar"
-#: merge-ort.c:3800 merge-recursive.c:3136
+#: merge-ort.c:3870 merge-recursive.c:3153
msgid "submodule"
msgstr "submódulo"
-#: merge-ort.c:3802 merge-recursive.c:3137
+#: merge-ort.c:3872 merge-recursive.c:3154
#, c-format
msgid "CONFLICT (%s): Merge conflict in %s"
msgstr "CONFLITO (%s): Conflito de junção em %s"
-#: merge-ort.c:3833
+#: merge-ort.c:3916
#, c-format
msgid ""
"CONFLICT (modify/delete): %s deleted in %s and modified in %s. Version %s "
"of %s left in tree."
msgstr ""
-"CONFLITO (modificar/apagar): %s apagado em %s e modificado em %s. Versão %s de %s "
-"deixada na árvore."
+"CONFLITO (modificar/apagar): %s apagado em %s e modificado em %s. Versão %s "
+"de %s deixada na árvore."
-#: merge-ort.c:4120
+#: merge-ort.c:4212
#, c-format
msgid ""
"Note: %s not up to date and in way of checking out conflicted version; old "
@@ -4973,12 +5239,12 @@ msgstr ""
#. TRANSLATORS: The %s arguments are: 1) tree hash of a merge
#. base, and 2-3) the trees for the two trees we're merging.
#.
-#: merge-ort.c:4487
+#: merge-ort.c:4586
#, c-format
msgid "collecting merge info failed for trees %s, %s, %s"
msgstr ""
-#: merge-ort-wrappers.c:13 merge-recursive.c:3702
+#: merge-ort-wrappers.c:13 merge-recursive.c:3723
#, c-format
msgid ""
"Your local changes to the following files would be overwritten by merge:\n"
@@ -4988,104 +5254,105 @@ msgstr ""
"juntar:\n"
" %s"
-#: merge-ort-wrappers.c:33 merge-recursive.c:3468 builtin/merge.c:402
+#: merge-ort-wrappers.c:33 merge-recursive.c:3485 builtin/merge.c:405
msgid "Already up to date."
msgstr "Já está atualizado."
-#: merge-recursive.c:352
+#: merge-recursive.c:353
msgid "(bad commit)\n"
-msgstr "(commit incorreto)\n"
+msgstr "(memória incorreta)\n"
-#: merge-recursive.c:375
+#: merge-recursive.c:381
#, c-format
msgid "add_cacheinfo failed for path '%s'; merge aborting."
msgstr "add_cacheinfo falhou para caminho '%s'; abortando junção."
-#: merge-recursive.c:384
+#: merge-recursive.c:390
#, c-format
msgid "add_cacheinfo failed to refresh for path '%s'; merge aborting."
-msgstr "add_cacheinfo falhou no refrescar para o caminho '%s'; abortando junção."
+msgstr "add_cacheinfo falhou a refrescar para caminho '%s'; abortando junção."
-#: merge-recursive.c:872
+#: merge-recursive.c:881
#, c-format
msgid "failed to create path '%s'%s"
msgstr "falhou criar caminho '%s'%s"
-#: merge-recursive.c:883
+#: merge-recursive.c:892
#, c-format
msgid "Removing %s to make room for subdirectory\n"
-msgstr "A remover %s para criar espaço para o subdiretório\n"
+msgstr "Removendo %s para criar espaço para subpasta\n"
-#: merge-recursive.c:897 merge-recursive.c:916
+#: merge-recursive.c:906 merge-recursive.c:925
msgid ": perhaps a D/F conflict?"
msgstr ": talvez um conflito D/F?"
-#: merge-recursive.c:906
+#: merge-recursive.c:915
#, c-format
msgid "refusing to lose untracked file at '%s'"
-msgstr "recusando perder ficheiro untracked em '%s'"
+msgstr "recusando perder ficheiro desmonitorizado em '%s'"
-#: merge-recursive.c:947 builtin/cat-file.c:41
+#: merge-recursive.c:956 builtin/cat-file.c:47
#, c-format
msgid "cannot read object %s '%s'"
msgstr "incapaz ler objeto %s '%s'"
-#: merge-recursive.c:952
+#: merge-recursive.c:961
#, c-format
msgid "blob expected for %s '%s'"
msgstr ""
-#: merge-recursive.c:977
+#: merge-recursive.c:986
#, c-format
msgid "failed to open '%s': %s"
msgstr "falhou ao abrir '%s': %s"
-#: merge-recursive.c:988
+#: merge-recursive.c:997
#, c-format
msgid "failed to symlink '%s': %s"
msgstr "falha ao criar a ligação simbólica '%s': %s"
-#: merge-recursive.c:993
+#: merge-recursive.c:1002
#, c-format
msgid "do not know what to do with %06o %s '%s'"
msgstr "desconheço que fazer com %06o %s '%s'"
-#: merge-recursive.c:1223 merge-recursive.c:1235
+#: merge-recursive.c:1236 merge-recursive.c:1249
#, c-format
msgid "Fast-forwarding submodule %s to the following commit:"
-msgstr ""
+msgstr "Avançando submódulo %s para a seguinte memória:"
-#: merge-recursive.c:1226 merge-recursive.c:1238
+#: merge-recursive.c:1239 merge-recursive.c:1252
#, c-format
msgid "Fast-forwarding submodule %s"
msgstr "Avançando submódulo %s"
-#: merge-recursive.c:1261
+#: merge-recursive.c:1276
#, c-format
msgid "Failed to merge submodule %s (merge following commits not found)"
msgstr ""
-#: merge-recursive.c:1265
+#: merge-recursive.c:1280
#, c-format
msgid "Failed to merge submodule %s (not fast-forward)"
-msgstr ""
+msgstr "Falhou ao juntar submódulo %s (diferente de avanço)"
-#: merge-recursive.c:1266
+#: merge-recursive.c:1281
msgid "Found a possible merge resolution for the submodule:\n"
msgstr ""
-#: merge-recursive.c:1278
+#: merge-recursive.c:1293
#, c-format
msgid "Failed to merge submodule %s (multiple merges found)"
msgstr ""
-#: merge-recursive.c:1420
+#: merge-recursive.c:1437
#, c-format
msgid "Error: Refusing to lose untracked file at %s; writing to %s instead."
msgstr ""
-"Erro: Recusando perder ficheiro untracked de '%s'; escrevendo invés para %s"
+"Erro: Recusando perder ficheiro desmonitorizado em '%s'; invés escrevendo "
+"para %s"
-#: merge-recursive.c:1492
+#: merge-recursive.c:1509
#, c-format
msgid ""
"CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left "
@@ -5094,7 +5361,7 @@ msgstr ""
"CONFLITO (%s/eliminar): %s eliminado em %s e %s em %s. Versão de %s de %s "
"deixada na árvore."
-#: merge-recursive.c:1497
+#: merge-recursive.c:1514
#, c-format
msgid ""
"CONFLICT (%s/delete): %s deleted in %s and %s to %s in %s. Version %s of %s "
@@ -5103,7 +5370,7 @@ msgstr ""
"CONFLITO (%s/eliminar): %s eliminado em %s e %s para %s em %s. Versão de %s "
"de %s deixada na árvore."
-#: merge-recursive.c:1504
+#: merge-recursive.c:1521
#, c-format
msgid ""
"CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left "
@@ -5112,7 +5379,7 @@ msgstr ""
"CONFLITO (%s/eliminar): %s eliminado em %s e %s em %s. Versão de %s de %s "
"deixada na árvore em %s."
-#: merge-recursive.c:1509
+#: merge-recursive.c:1526
#, c-format
msgid ""
"CONFLICT (%s/delete): %s deleted in %s and %s to %s in %s. Version %s of %s "
@@ -5121,43 +5388,44 @@ msgstr ""
"CONFLITO (%s/eliminar): %s eliminado em %s e %s para %s em %s. Versão de %s "
"de %s deixada na árvore em %s."
-#: merge-recursive.c:1544
+#: merge-recursive.c:1561
msgid "rename"
msgstr "renomear"
-#: merge-recursive.c:1544
+#: merge-recursive.c:1561
msgid "renamed"
msgstr "nome mudado"
-#: merge-recursive.c:1595 merge-recursive.c:2501 merge-recursive.c:3164
+#: merge-recursive.c:1612 merge-recursive.c:2518 merge-recursive.c:3181
#, c-format
msgid "Refusing to lose dirty file at %s"
msgstr "Recusando perder ficheiro sujo de %s"
-#: merge-recursive.c:1605
+#: merge-recursive.c:1622
#, c-format
msgid "Refusing to lose untracked file at %s, even though it's in the way."
msgstr ""
-"Recusando perder ficheiro untracked de %s, apesar de este estar no caminho."
+"Recusando perder ficheiro desmonitorizado em %s, apesar de estar no caminho."
-#: merge-recursive.c:1663
+#: merge-recursive.c:1680
#, c-format
msgid "CONFLICT (rename/add): Rename %s->%s in %s. Added %s in %s"
msgstr ""
"CONFLITO (mudar nome/adicionar): Mudar o nome %s->%s em %s. %s adicionado em "
"%s"
-#: merge-recursive.c:1694
+#: merge-recursive.c:1711
#, c-format
msgid "%s is a directory in %s adding as %s instead"
-msgstr "%s é um diretório em %s adicionando %s no seu lugar"
+msgstr "%s é um pasta em %s adicionando como %s invés"
-#: merge-recursive.c:1699
+#: merge-recursive.c:1716
#, c-format
msgid "Refusing to lose untracked file at %s; adding as %s instead"
-msgstr "Recusando perder ficheiro untracked de %s; adicionado-o como %s invés"
+msgstr ""
+"Recusando perder ficheiro desmonitorizado em %s; invés adicionando como %s"
-#: merge-recursive.c:1726
+#: merge-recursive.c:1743
#, c-format
msgid ""
"CONFLICT (rename/rename): Rename \"%s\"->\"%s\" in branch \"%s\" rename \"%s"
@@ -5166,18 +5434,18 @@ msgstr ""
"CONFLITO (mudar nome/mudar nome): Mudar o nome \"%s\"->\"%s\" no ramo \"%s\" "
"mudar o nome \"%s\"->\"%s\" em \"%s\"%s"
-#: merge-recursive.c:1731
+#: merge-recursive.c:1748
msgid " (left unresolved)"
msgstr " (por resolver)"
-#: merge-recursive.c:1823
+#: merge-recursive.c:1840
#, c-format
msgid "CONFLICT (rename/rename): Rename %s->%s in %s. Rename %s->%s in %s"
msgstr ""
"CONFLITO (mudar nome/mudar nome): Mudar de nome %s->%s em %s. Mudar o nome "
"%s->%s em %s"
-#: merge-recursive.c:2086
+#: merge-recursive.c:2103
#, c-format
msgid ""
"CONFLICT (directory rename split): Unclear where to place %s because "
@@ -5185,7 +5453,7 @@ msgid ""
"getting a majority of the files."
msgstr ""
-#: merge-recursive.c:2220
+#: merge-recursive.c:2237
#, c-format
msgid ""
"CONFLICT (rename/rename): Rename directory %s->%s in %s. Rename directory %s-"
@@ -5194,277 +5462,312 @@ msgstr ""
"CONFLITO (mudar nome/mudar nome): Mudar de nome %s->%s em %s. Mudar o nome "
"%s->%s em %s"
-#: merge-recursive.c:3075
+#: merge-recursive.c:3092
msgid "modify"
msgstr "modificar"
-#: merge-recursive.c:3075
+#: merge-recursive.c:3092
msgid "modified"
msgstr "modificado"
-#: merge-recursive.c:3114
+#: merge-recursive.c:3131
#, c-format
msgid "Skipped %s (merged same as existing)"
-msgstr "%s ignorado (integrado é igual ao existente)"
+msgstr "%s saltado (junto é igual ao existente)"
-#: merge-recursive.c:3167
+#: merge-recursive.c:3184
#, c-format
msgid "Adding as %s instead"
msgstr "A adicionar como %s, em alternativa."
-#: merge-recursive.c:3371
+#: merge-recursive.c:3388
#, c-format
msgid "Removing %s"
msgstr "Removendo %s"
-#: merge-recursive.c:3394
+#: merge-recursive.c:3411
msgid "file/directory"
-msgstr "ficheiro/diretório"
+msgstr "ficheiro/pasta"
-#: merge-recursive.c:3399
+#: merge-recursive.c:3416
msgid "directory/file"
-msgstr "diretório/ficheiro"
+msgstr "pasta/ficheiro"
-#: merge-recursive.c:3406
+#: merge-recursive.c:3423
#, c-format
msgid "CONFLICT (%s): There is a directory with name %s in %s. Adding %s as %s"
-msgstr ""
-"CONFLITO (%s): Há um diretório designado %s em %s. A adicionar %s como %s"
+msgstr "CONFLITO (%s): Há uma pasta designada %s em %s. Adicionando %s como %s"
-#: merge-recursive.c:3415
+#: merge-recursive.c:3432
#, c-format
msgid "Adding %s"
msgstr "A adicionar %s"
-#: merge-recursive.c:3424
+#: merge-recursive.c:3441
#, c-format
msgid "CONFLICT (add/add): Merge conflict in %s"
msgstr "CONFLITO (add/add): Conflito de junção em %s"
-#: merge-recursive.c:3477
+#: merge-recursive.c:3494
#, c-format
msgid "merging of trees %s and %s failed"
-msgstr "falha ao integrar as árvores %s e %s"
+msgstr "falha ao juntar árvores %s e %s"
-#: merge-recursive.c:3571
+#: merge-recursive.c:3588
msgid "Merging:"
-msgstr "A integrar:"
+msgstr "Juntando:"
-#: merge-recursive.c:3584
+#: merge-recursive.c:3601
#, c-format
msgid "found %u common ancestor:"
msgid_plural "found %u common ancestors:"
msgstr[0] "%u antecessor comum encontrado:"
msgstr[1] "%u antecessores comuns encontrados:"
-#: merge-recursive.c:3634
+#: merge-recursive.c:3651
msgid "merge returned no commit"
-msgstr "junção retornou commit nenhum"
+msgstr "junção retornou memória nenhuma"
-#: merge-recursive.c:3799
+#: merge-recursive.c:3823
#, c-format
msgid "Could not parse object '%s'"
msgstr "Incapaz de analisar objeto '%s'"
-#: merge-recursive.c:3817 builtin/merge.c:717 builtin/merge.c:901
-#: builtin/stash.c:473
+#: merge-recursive.c:3841 builtin/merge.c:720 builtin/merge.c:912
+#: builtin/stash.c:489
msgid "Unable to write index."
-msgstr "Incapaz de escrever no index."
+msgstr "Incapaz de escrever cenário."
#: merge.c:41
msgid "failed to read the cache"
-msgstr "falha ao ler a cache"
+msgstr "falhou ao ler o cenário"
-#: merge.c:108 rerere.c:704 builtin/am.c:1932 builtin/am.c:1966
-#: builtin/checkout.c:590 builtin/checkout.c:844 builtin/clone.c:821
-#: builtin/stash.c:267
+#: merge.c:102 rerere.c:705 builtin/am.c:1989 builtin/am.c:2023
+#: builtin/checkout.c:603 builtin/checkout.c:865 builtin/clone.c:714
+#: builtin/stash.c:269
msgid "unable to write new index file"
-msgstr "incapaz escrever novo ficheiro index"
+msgstr "incapaz escrever ficheiro de cenário novo"
-#: midx.c:74
+#: midx.c:79
msgid "multi-pack-index OID fanout is of the wrong size"
msgstr ""
-#: midx.c:105
+#: midx.c:112
#, c-format
msgid "multi-pack-index file %s is too small"
msgstr ""
-#: midx.c:121
+#: midx.c:128
#, c-format
msgid "multi-pack-index signature 0x%08x does not match signature 0x%08x"
msgstr ""
-#: midx.c:126
+#: midx.c:133
#, c-format
msgid "multi-pack-index version %d not recognized"
msgstr "versão %d de multi-pack-index irreconhecível"
-#: midx.c:131
+#: midx.c:138
#, c-format
msgid "multi-pack-index hash version %u does not match version %u"
msgstr ""
-#: midx.c:148
+#: midx.c:155
msgid "multi-pack-index missing required pack-name chunk"
-msgstr ""
+msgstr "multi-pack-index em falta exigia fragmento nome-pacote"
-#: midx.c:150
+#: midx.c:157
msgid "multi-pack-index missing required OID fanout chunk"
-msgstr ""
+msgstr "multi-pack-index em falta exigia OID de fanout de fragmento"
-#: midx.c:152
+#: midx.c:159
msgid "multi-pack-index missing required OID lookup chunk"
-msgstr ""
+msgstr "multi-pack-index em falta exigia OID de procura de fragmento"
-#: midx.c:154
+#: midx.c:161
msgid "multi-pack-index missing required object offsets chunk"
-msgstr ""
+msgstr "multi-pack-index em falta exigia fragmento de deslocamentos de objeto"
-#: midx.c:170
+#: midx.c:180
#, c-format
msgid "multi-pack-index pack names out of order: '%s' before '%s'"
msgstr ""
-#: midx.c:214
+#: midx.c:228
#, c-format
msgid "bad pack-int-id: %u (%u total packs)"
msgstr ""
-#: midx.c:264
+#: midx.c:278
msgid "multi-pack-index stores a 64-bit offset, but off_t is too small"
msgstr ""
-#: midx.c:490
+#: midx.c:509
#, c-format
msgid "failed to add packfile '%s'"
msgstr ""
-#: midx.c:496
+#: midx.c:515
#, c-format
msgid "failed to open pack-index '%s'"
msgstr ""
-#: midx.c:564
+#: midx.c:583
#, c-format
msgid "failed to locate object %d in packfile"
msgstr ""
-#: midx.c:880 builtin/index-pack.c:1533
+#: midx.c:911
msgid "cannot store reverse index file"
msgstr "incapaz guardar ficheiro de cenário reverso"
-#: midx.c:920
+#: midx.c:1009
+#, c-format
+msgid "could not parse line: %s"
+msgstr "incapaz processar linha: %s"
+
+#: midx.c:1011
+#, c-format
+msgid "malformed line: %s"
+msgstr "linha malformada: %s"
+
+#: midx.c:1181
msgid "ignoring existing multi-pack-index; checksum mismatch"
msgstr "ignorando multi-pack-index existente; checksum diferente"
-#: midx.c:943
+#: midx.c:1206
+msgid "could not load pack"
+msgstr "incapaz carregar pacote"
+
+#: midx.c:1212
+#, c-format
+msgid "could not open index for %s"
+msgstr "incapaz abrir cenário para %s"
+
+#: midx.c:1223
msgid "Adding packfiles to multi-pack-index"
msgstr ""
-#: midx.c:989
+#: midx.c:1266
#, c-format
-msgid "did not see pack-file %s to drop"
+msgid "unknown preferred pack: '%s'"
msgstr ""
-#: midx.c:1034
+#: midx.c:1311
#, c-format
-msgid "unknown preferred pack: '%s'"
+msgid "cannot select preferred pack %s with no objects"
+msgstr "incapaz selecionar pacote preferido %s sem objetos"
+
+#: midx.c:1343
+#, c-format
+msgid "did not see pack-file %s to drop"
msgstr ""
-#: midx.c:1039
+#: midx.c:1389
#, c-format
msgid "preferred pack '%s' is expired"
msgstr "pacote preferencial '%s' expirou"
-#: midx.c:1055
+#: midx.c:1402
msgid "no pack files to index."
-msgstr "pack files nenhuns para index."
+msgstr "pack files nenhuns para cenário."
+
+#: midx.c:1409
+msgid "refusing to write multi-pack .bitmap without any objects"
+msgstr "apenas posso escrever multi-pacote .bitmap com objetos"
+
+#: midx.c:1451
+msgid "could not write multi-pack bitmap"
+msgstr "incapaz escrever multi-pacote bitmap"
-#: midx.c:1135 builtin/clean.c:37
+#: midx.c:1461
+msgid "could not write multi-pack-index"
+msgstr "incapaz escrever multi-pacote-index"
+
+#: midx.c:1520 builtin/clean.c:37
#, c-format
msgid "failed to remove %s"
msgstr "falha ao remover %s"
-#: midx.c:1166
+#: midx.c:1553
#, c-format
msgid "failed to clear multi-pack-index at %s"
msgstr ""
-#: midx.c:1225
+#: midx.c:1616
msgid "multi-pack-index file exists, but failed to parse"
msgstr ""
-#: midx.c:1233
+#: midx.c:1624
msgid "incorrect checksum"
msgstr "checksum incorreto"
-#: midx.c:1236
+#: midx.c:1627
msgid "Looking for referenced packfiles"
msgstr ""
-#: midx.c:1251
+#: midx.c:1642
#, c-format
msgid ""
"oid fanout out of order: fanout[%d] = %<PRIx32> > %<PRIx32> = fanout[%d]"
msgstr ""
-#: midx.c:1256
+#: midx.c:1647
msgid "the midx contains no oid"
msgstr ""
-#: midx.c:1265
+#: midx.c:1656
msgid "Verifying OID order in multi-pack-index"
msgstr ""
-#: midx.c:1274
+#: midx.c:1665
#, c-format
msgid "oid lookup out of order: oid[%d] = %s >= %s = oid[%d]"
msgstr ""
-#: midx.c:1294
+#: midx.c:1685
msgid "Sorting objects by packfile"
msgstr ""
-#: midx.c:1301
+#: midx.c:1692
msgid "Verifying object offsets"
msgstr ""
-#: midx.c:1317
+#: midx.c:1708
#, c-format
msgid "failed to load pack entry for oid[%d] = %s"
msgstr "falhou carregar entrada pack para oid[%d] = %s"
-#: midx.c:1323
+#: midx.c:1714
#, c-format
msgid "failed to load pack-index for packfile %s"
msgstr ""
-#: midx.c:1332
+#: midx.c:1723
#, c-format
msgid "incorrect object offset for oid[%d] = %s: %<PRIx64> != %<PRIx64>"
msgstr ""
-#: midx.c:1357
+#: midx.c:1750
msgid "Counting referenced objects"
msgstr "Contando objetos referenciados"
-#: midx.c:1367
+#: midx.c:1760
msgid "Finding and deleting unreferenced packfiles"
msgstr ""
-#: midx.c:1558
+#: midx.c:1952
msgid "could not start pack-objects"
msgstr "incapaz de começar pack-objects"
-#: midx.c:1578
+#: midx.c:1972
msgid "could not finish pack-objects"
msgstr "incapaz de terminar pack-objects"
#: name-hash.c:542
#, c-format
msgid "unable to create lazy_dir thread: %s"
-msgstr "incapaz criar thread lazy_dir: %s"
+msgstr "incapaz criar fio lazy_dir: %s"
#: name-hash.c:564
#, c-format
@@ -5476,19 +5779,19 @@ msgstr "incapaz criar thread lazy_name: %s"
msgid "unable to join lazy_name thread: %s"
msgstr "incapaz juntar a thread lazy_name: %s"
-#: notes-merge.c:277
+#: notes-merge.c:276
#, c-format
msgid ""
"You have not concluded your previous notes merge (%s exists).\n"
"Please, use 'git notes merge --commit' or 'git notes merge --abort' to "
"commit/abort the previous merge before you start a new notes merge."
msgstr ""
-"Ficou por concluír a anterior junção de notas (%s existe).\n"
+"Ficou por concluir a anterior junção de notas (%s existe).\n"
"Por favor, usa 'git notes merge --commit' ou 'git notes merge --abort' para "
-"commitar/abortar a junção anterior antes de começares uma nova junção de "
+"memorizar/abortar a junção anterior antes de começares uma nova junção de "
"notas."
-#: notes-merge.c:284
+#: notes-merge.c:283
#, c-format
msgid "You have not concluded your notes merge (%s exists)."
msgstr "Ficou por concluír a tua junção de notas (%s existe)."
@@ -5496,7 +5799,7 @@ msgstr "Ficou por concluír a tua junção de notas (%s existe)."
#: notes-utils.c:46
msgid "Cannot commit uninitialized/unreferenced notes tree"
msgstr ""
-"Impossível commit notas de árvore que estejam por iniciar/por referênciar"
+"incapaz memorizar notas de árvore que estejam por iniciar/por referenciar"
#: notes-utils.c:105
#, c-format
@@ -5517,272 +5820,343 @@ msgstr "Reescrita de notas em %s (fora de refs/notes/) recusada"
msgid "Bad %s value: '%s'"
msgstr "Valor incorreto de %s: '%s'"
-#: object-file.c:526
+#: object-file.c:457
#, c-format
msgid "object directory %s does not exist; check .git/objects/info/alternates"
msgstr ""
-#: object-file.c:584
+#: object-file.c:515
#, c-format
msgid "unable to normalize alternate object path: %s"
-msgstr "incapaz normalizar path de objeto alternativo: %s"
+msgstr "incapaz normalizar caminho de objeto alternativo: %s"
-#: object-file.c:658
+#: object-file.c:589
#, c-format
msgid "%s: ignoring alternate object stores, nesting too deep"
msgstr ""
-#: object-file.c:665
+#: object-file.c:596
#, c-format
msgid "unable to normalize object directory: %s"
msgstr "incapaz normalizar pasta de objeto: %s"
-#: object-file.c:708
+#: object-file.c:639
msgid "unable to fdopen alternates lockfile"
msgstr "incapaz de fdopen lockfile alternativo"
-#: object-file.c:726
+#: object-file.c:657
msgid "unable to read alternates file"
msgstr "incapaz ler ficheiro alternativo"
-#: object-file.c:733
+#: object-file.c:664
msgid "unable to move new alternates file into place"
msgstr "incapaz mover novo ficheiro alternativo para o sítio"
-#: object-file.c:768
+#: object-file.c:742
#, c-format
msgid "path '%s' does not exist"
msgstr "caminho '%s' é inexistente"
-#: object-file.c:789
+#: object-file.c:763
#, c-format
msgid "reference repository '%s' as a linked checkout is not supported yet."
msgstr ""
-"repositório referência '%s' como uma checkout ligada ainda é insustentado."
+"repositório referência '%s' como uma observação ligada ainda é insustentado."
-#: object-file.c:795
+#: object-file.c:769
#, c-format
msgid "reference repository '%s' is not a local repository."
msgstr "repositório referência '%s' é repositório local nenhum."
-#: object-file.c:801
+#: object-file.c:775
#, c-format
msgid "reference repository '%s' is shallow"
msgstr "o repositório de referência '%s' é raso"
-#: object-file.c:809
+#: object-file.c:783
#, c-format
msgid "reference repository '%s' is grafted"
msgstr "repositório de referência '%s' está enxertado"
-#: object-file.c:869
+#: object-file.c:814
+#, c-format
+msgid "could not find object directory matching %s"
+msgstr "incapaz encontrar pasta objeto correspondendo %s"
+
+#: object-file.c:864
#, c-format
msgid "invalid line while parsing alternate refs: %s"
msgstr ""
-#: object-file.c:1019
+#: object-file.c:1014
#, c-format
msgid "attempting to mmap %<PRIuMAX> over limit %<PRIuMAX>"
msgstr ""
-#: object-file.c:1054
+#: object-file.c:1049
#, c-format
msgid "mmap failed%s"
msgstr "mmap falhou%s"
-#: object-file.c:1218
+#: object-file.c:1230
#, c-format
msgid "object file %s is empty"
msgstr ""
-#: object-file.c:1353 object-file.c:2548
+#: object-file.c:1349 object-file.c:2588
#, c-format
msgid "corrupt loose object '%s'"
msgstr "objeto solto '%s' corrupto"
-#: object-file.c:1355 object-file.c:2552
+#: object-file.c:1351 object-file.c:2592
#, c-format
msgid "garbage at end of loose object '%s'"
msgstr "lixo no fim de objeto solto '%s'"
-#: object-file.c:1397
+#: object-file.c:1473
+#, c-format
+msgid "unable to parse %s header"
+msgstr "incapaz processar cabeçalho %s"
+
+#: object-file.c:1475
msgid "invalid object type"
msgstr "tipo de objeto inválido"
-#: object-file.c:1481
-#, c-format
-msgid "unable to unpack %s header with --allow-unknown-type"
-msgstr ""
-
-#: object-file.c:1484
+#: object-file.c:1486
#, c-format
msgid "unable to unpack %s header"
msgstr "incapaz desempacotar cabeçalho %s"
#: object-file.c:1490
#, c-format
-msgid "unable to parse %s header with --allow-unknown-type"
+msgid "header for %s too long, exceeds %d bytes"
msgstr ""
-#: object-file.c:1493
-#, c-format
-msgid "unable to parse %s header"
-msgstr "incapaz processar cabeçalho %s"
-
-#: object-file.c:1717
+#: object-file.c:1720
#, c-format
msgid "failed to read object %s"
msgstr "falhou ler objeto %s"
-#: object-file.c:1721
+#: object-file.c:1724
#, c-format
msgid "replacement %s not found for %s"
msgstr "%s substituto, por encontrar para %s"
-#: object-file.c:1725
+#: object-file.c:1728
#, c-format
msgid "loose object %s (stored in %s) is corrupt"
msgstr ""
-#: object-file.c:1729
+#: object-file.c:1732
#, c-format
msgid "packed object %s (stored in %s) is corrupt"
msgstr ""
-#: object-file.c:1834
+#: object-file.c:1855
#, c-format
msgid "unable to write file %s"
msgstr "incapaz escrever ficheiro %s"
-#: object-file.c:1841
+#: object-file.c:1862
#, c-format
msgid "unable to set permission to '%s'"
msgstr "incapaz definir permissão para '%s'"
-#: object-file.c:1848
+#: object-file.c:1869
msgid "file write error"
msgstr ""
-#: object-file.c:1868
+#: object-file.c:1904
msgid "error when closing loose object file"
msgstr ""
-#: object-file.c:1933
+#: object-file.c:1971
#, c-format
msgid "insufficient permission for adding an object to repository database %s"
msgstr ""
-#: object-file.c:1935
+#: object-file.c:1973
msgid "unable to create temporary file"
msgstr "incapaz criar ficheiro temporário"
-#: object-file.c:1959
+#: object-file.c:1997
msgid "unable to write loose object file"
msgstr "incapaz escrever ficheiro objeto solto"
-#: object-file.c:1965
+#: object-file.c:2003
#, c-format
msgid "unable to deflate new object %s (%d)"
msgstr "incapaz esvaziar objeto novo %s (%d)"
-#: object-file.c:1969
+#: object-file.c:2007
#, c-format
msgid "deflateEnd on object %s failed (%d)"
msgstr "deflateEnd em objeto %s falhou (%d)"
-#: object-file.c:1973
+#: object-file.c:2011
#, c-format
msgid "confused by unstable object source data for %s"
msgstr ""
-#: object-file.c:1983 builtin/pack-objects.c:1237
+#: object-file.c:2022 builtin/pack-objects.c:1251
#, c-format
msgid "failed utime() on %s"
msgstr ""
-#: object-file.c:2060
+#: object-file.c:2100
#, c-format
msgid "cannot read object for %s"
msgstr "incapaz ler objeto para %s"
-#: object-file.c:2111
+#: object-file.c:2151
msgid "corrupt commit"
msgstr "memória de Git rota"
-#: object-file.c:2119
+#: object-file.c:2159
msgid "corrupt tag"
msgstr "etiqueta rota"
-#: object-file.c:2219
+#: object-file.c:2259
#, c-format
msgid "read error while indexing %s"
msgstr ""
-#: object-file.c:2222
+#: object-file.c:2262
#, c-format
msgid "short read while indexing %s"
msgstr "leitura curta enquanto indexando %s"
-#: object-file.c:2295 object-file.c:2305
+#: object-file.c:2335 object-file.c:2345
#, c-format
msgid "%s: failed to insert into database"
msgstr "%s: falhou inserir na base de dados"
-#: object-file.c:2311
+#: object-file.c:2351
#, c-format
msgid "%s: unsupported file type"
msgstr "%s: tipo ficheiro insustentado"
-#: object-file.c:2335
+#: object-file.c:2375 builtin/fetch.c:1494
#, c-format
msgid "%s is not a valid object"
msgstr "%s é objeto inválido"
-#: object-file.c:2337
+#: object-file.c:2377
#, c-format
msgid "%s is not a valid '%s' object"
msgstr "%s é um objeto inválido '%s'"
-#: object-file.c:2364 builtin/index-pack.c:192
+#: object-file.c:2404
#, c-format
msgid "unable to open %s"
msgstr "incapaz abrir %s"
-#: object-file.c:2559 object-file.c:2612
+#: object-file.c:2599
#, c-format
msgid "hash mismatch for %s (expected %s)"
msgstr ""
-#: object-file.c:2583
+#: object-file.c:2622
#, c-format
msgid "unable to mmap %s"
msgstr "incapaz mmap %s"
-#: object-file.c:2588
+#: object-file.c:2628
#, c-format
msgid "unable to unpack header of %s"
msgstr "incapaz desempacotar cabeçalho de %s"
-#: object-file.c:2594
+#: object-file.c:2633
#, c-format
msgid "unable to parse header of %s"
msgstr "incapaz processar cabeçalho de %s"
-#: object-file.c:2605
+#: object-file.c:2644
#, c-format
msgid "unable to unpack contents of %s"
msgstr "incapaz desempacotar conteúdo de %s"
-#: object-name.c:480
+#. TRANSLATORS: This is a line of ambiguous object
+#. output shown when we cannot look up or parse the
+#. object in question. E.g. "deadbeef [bad object]".
+#.
+#: object-name.c:382
+#, c-format
+msgid "%s [bad object]"
+msgstr "%s [objeto inválido]"
+
+#. TRANSLATORS: This is a line of ambiguous commit
+#. object output. E.g.:
+#. *
+#. "deadbeef commit 2021-01-01 - Some Commit Message"
+#.
+#: object-name.c:407
+#, c-format
+msgid "%s commit %s - %s"
+msgstr "memória %s %s - %s"
+
+#. TRANSLATORS: This is a line of ambiguous
+#. tag object output. E.g.:
+#. *
+#. "deadbeef tag 2022-01-01 - Some Tag Message"
+#. *
+#. The second argument is the YYYY-MM-DD found
+#. in the tag.
+#. *
+#. The third argument is the "tag" string
+#. from object.c.
+#.
+#: object-name.c:428
+#, c-format
+msgid "%s tag %s - %s"
+msgstr "etiqueta %s %s - %s"
+
+#. TRANSLATORS: This is a line of ambiguous
+#. tag object output where we couldn't parse
+#. the tag itself. E.g.:
+#. *
+#. "deadbeef [bad tag, could not parse it]"
+#.
+#: object-name.c:439
+#, c-format
+msgid "%s [bad tag, could not parse it]"
+msgstr "%s [tag inválida, incapaz de processá-la]"
+
+#. TRANSLATORS: This is a line of ambiguous <type>
+#. object output. E.g. "deadbeef tree".
+#.
+#: object-name.c:447
+#, c-format
+msgid "%s tree"
+msgstr "árvore %s"
+
+#. TRANSLATORS: This is a line of ambiguous <type>
+#. object output. E.g. "deadbeef blob".
+#.
+#: object-name.c:453
+#, c-format
+msgid "%s blob"
+msgstr "blob %s"
+
+#: object-name.c:569
#, c-format
msgid "short object ID %s is ambiguous"
-msgstr "SHA1 curto %s é ambíguo"
+msgstr "ID curto de objeto %s é ambíguo"
-#: object-name.c:491
-msgid "The candidates are:"
-msgstr "Os candidatos são:"
+#. TRANSLATORS: The argument is the list of ambiguous
+#. objects composed in show_ambiguous_object(). See
+#. its "TRANSLATORS" comments for details.
+#.
+#: object-name.c:591
+#, c-format
+msgid ""
+"The candidates are:\n"
+"%s"
+msgstr ""
+"Os candidatos são:\n"
+"%s"
-#: object-name.c:790
+#: object-name.c:888
msgid ""
"Git normally never creates a ref that ends with 40 hex characters\n"
"because it will be ignored when you just specify 40-hex. These refs\n"
@@ -5804,64 +6178,67 @@ msgstr ""
"examine estas refs e talvez apague-as. Desative esta mensagem\n"
"executando \"git config advice.objectNameWarning false\""
-#: object-name.c:910
+#: object-name.c:1008
#, c-format
msgid "log for '%.*s' only goes back to %s"
msgstr ""
-#: object-name.c:918
+#: object-name.c:1016
#, c-format
msgid "log for '%.*s' only has %d entries"
msgstr ""
-#: object-name.c:1696
+#: object-name.c:1794
#, c-format
msgid "path '%s' exists on disk, but not in '%.*s'"
msgstr "caminho '%s' existe em disco, mas é inexistente em '%.*s'"
-#: object-name.c:1702
+#: object-name.c:1800
#, c-format
msgid ""
"path '%s' exists, but not '%s'\n"
"hint: Did you mean '%.*s:%s' aka '%.*s:./%s'?"
msgstr ""
-#: object-name.c:1711
+#: object-name.c:1809
#, c-format
msgid "path '%s' does not exist in '%.*s'"
msgstr "caminho '%s' é inexistente em '%.*s'"
-#: object-name.c:1739
+#: object-name.c:1837
#, c-format
msgid ""
"path '%s' is in the index, but not at stage %d\n"
"hint: Did you mean ':%d:%s'?"
msgstr ""
-#: object-name.c:1755
+#: object-name.c:1853
#, c-format
msgid ""
"path '%s' is in the index, but not '%s'\n"
"hint: Did you mean ':%d:%s' aka ':%d:./%s'?"
msgstr ""
-#: object-name.c:1763
+#: object-name.c:1861
#, c-format
msgid "path '%s' exists on disk, but not in the index"
msgstr ""
-#: object-name.c:1765
+#: object-name.c:1863
#, c-format
msgid "path '%s' does not exist (neither on disk nor in the index)"
-msgstr "caminho '%s' é inexistente (quer no disco quer no index)"
+msgstr "caminho '%s' é inexistente (quer no disco quer no cenário)"
-#: object-name.c:1778
+#: object-name.c:1876
msgid "relative path syntax can't be used outside working tree"
+msgstr "caminhos relativos proibidos serem usados fora da árvore-trabalho"
+
+#: object-name.c:1901
+#, c-format
+msgid "<object>:<path> required, only <object> '%s' given"
msgstr ""
-"Os caminhos relativos só podem ser usados a partir do topo da árvore de "
-"trabalho"
-#: object-name.c:1916
+#: object-name.c:2014
#, c-format
msgid "invalid object name '%.*s'."
msgstr "nome de objeto inválido: '%.*s'."
@@ -5886,17 +6263,30 @@ msgstr ""
msgid "unable to parse object: %s"
msgstr "incapaz analisar objeto: %s"
-#: object.c:283 object.c:295
+#: object.c:283 object.c:294
#, c-format
msgid "hash mismatch %s"
msgstr ""
-#: pack-bitmap.c:868 pack-bitmap.c:874 builtin/pack-objects.c:2411
+#: pack-bitmap.c:353
+msgid "multi-pack bitmap is missing required reverse index"
+msgstr ""
+
+#: pack-bitmap.c:433
+msgid "load_reverse_index: could not open pack"
+msgstr ""
+
+#: pack-bitmap.c:1072 pack-bitmap.c:1078 builtin/pack-objects.c:2432
#, c-format
msgid "unable to get size of %s"
msgstr "incapaz obter tamanho de %s"
-#: pack-bitmap.c:1571 builtin/rev-list.c:92
+#: pack-bitmap.c:1937
+#, c-format
+msgid "could not find %s in pack %s at offset %<PRIuMAX>"
+msgstr "incapaz encontrar %s em pacote %s no deslocamento %<PRIuMAX>"
+
+#: pack-bitmap.c:1973 builtin/rev-list.c:91
#, c-format
msgid "unable to get disk usage of %s"
msgstr "incapaz obter utilização em disco de %s"
@@ -5926,179 +6316,208 @@ msgstr ""
msgid "reverse-index file %s has unsupported hash id %<PRIu32>"
msgstr ""
-#: pack-write.c:250
+#: pack-write.c:251
msgid "cannot both write and verify reverse index"
msgstr "incapaz escrever e também verificar cenário reverso"
-#: pack-write.c:271
+#: pack-write.c:270
#, c-format
msgid "could not stat: %s"
msgstr "incapaz stat: %s"
-#: pack-write.c:283
+#: pack-write.c:282
#, c-format
msgid "failed to make %s readable"
msgstr "falhou fazer %s legível"
-#: pack-write.c:522
+#: pack-write.c:521
#, c-format
msgid "could not write '%s' promisor file"
msgstr "incapaz escrever ficheiro promissor '%s'"
-#: packfile.c:625
+#: packfile.c:627
msgid "offset before end of packfile (broken .idx?)"
msgstr "offset antes do fim do ficheiro de pacote (.idx danificado?)"
-#: packfile.c:655
+#: packfile.c:657
#, c-format
msgid "packfile %s cannot be mapped%s"
msgstr "ficheiro-pacote %s incapaz ser mapeado%s"
-#: packfile.c:1934
+#: packfile.c:1924
#, c-format
msgid "offset before start of pack index for %s (corrupt index?)"
msgstr "offset antes do início do índice do pacote %s (índice corrompido?)"
-#: packfile.c:1938
+#: packfile.c:1928
#, c-format
msgid "offset beyond end of pack index for %s (truncated index?)"
msgstr "offset depois do fim do índice do pacote %s (índice truncado?)"
-#: parse-options-cb.c:20 parse-options-cb.c:24
+#: parse-options-cb.c:21 parse-options-cb.c:25 builtin/commit-graph.c:175
#, c-format
msgid "option `%s' expects a numerical value"
msgstr ""
-#: parse-options-cb.c:41
+#: parse-options-cb.c:42
#, c-format
msgid "malformed expiration date '%s'"
msgstr "data de prazo de validade malformada '%s'"
-#: parse-options-cb.c:54
+#: parse-options-cb.c:55
#, c-format
msgid "option `%s' expects \"always\", \"auto\", or \"never\""
msgstr ""
-#: parse-options-cb.c:132 parse-options-cb.c:149
+#: parse-options-cb.c:133 parse-options-cb.c:150
#, c-format
msgid "malformed object name '%s'"
msgstr "nome do objeto malformado '%s'"
-#: parse-options.c:38
+#: parse-options-cb.c:307
+#, c-format
+msgid "option `%s' expects \"%s\" or \"%s\""
+msgstr ""
+
+#: parse-options.c:58
#, c-format
msgid "%s requires a value"
msgstr "%s exige um valor"
-#: parse-options.c:73
+#: parse-options.c:93
#, c-format
msgid "%s is incompatible with %s"
msgstr "%s é incompatível com %s"
-#: parse-options.c:78
+#: parse-options.c:98
#, c-format
msgid "%s : incompatible with something else"
msgstr ""
-#: parse-options.c:92 parse-options.c:96 parse-options.c:317
+#: parse-options.c:112 parse-options.c:116
#, c-format
msgid "%s takes no value"
msgstr "%s leva valor nenhum"
-#: parse-options.c:94
+#: parse-options.c:114
#, c-format
msgid "%s isn't available"
msgstr "%s está indisponível"
-#: parse-options.c:217
+#: parse-options.c:237
#, c-format
msgid "%s expects a non-negative integer value with an optional k/m/g suffix"
msgstr ""
-#: parse-options.c:386
+#: parse-options.c:393
#, c-format
msgid "ambiguous option: %s (could be --%s%s or --%s%s)"
msgstr ""
-#: parse-options.c:420 parse-options.c:428
+#: parse-options.c:428 parse-options.c:436
#, c-format
msgid "did you mean `--%s` (with two dashes)?"
msgstr ""
-#: parse-options.c:668 parse-options.c:988
+#: parse-options.c:678 parse-options.c:1054
#, c-format
msgid "alias of --%s"
msgstr ""
-#: parse-options.c:879
+#: parse-options.c:892
#, c-format
msgid "unknown option `%s'"
msgstr ""
-#: parse-options.c:881
+#: parse-options.c:894
#, c-format
msgid "unknown switch `%c'"
msgstr ""
-#: parse-options.c:883
+#: parse-options.c:896
#, c-format
msgid "unknown non-ascii option in string: `%s'"
msgstr "opção não-ascii desconhecida em string: `%s'"
-#: parse-options.c:907
+#: parse-options.c:920
msgid "..."
msgstr "..."
-#: parse-options.c:926
+#: parse-options.c:934
#, c-format
msgid "usage: %s"
-msgstr "utilização: %s"
+msgstr "uso: %s"
#. TRANSLATORS: the colon here should align with the
#. one in "usage: %s" translation.
#.
-#: parse-options.c:932
+#: parse-options.c:949
#, c-format
msgid " or: %s"
msgstr " ou: %s"
-#: parse-options.c:935
+#. TRANSLATORS: You should only need to translate this format
+#. string if your language is a RTL language (e.g. Arabic,
+#. Hebrew etc.), not if it's a LTR language (e.g. German,
+#. Russian, Chinese etc.).
+#. *
+#. When a translated usage string has an embedded "\n" it's
+#. because options have wrapped to the next line. The line
+#. after the "\n" will then be padded to align with the
+#. command name, such as N_("git cmd [opt]\n<8
+#. spaces>[opt2]"), where the 8 spaces are the same length as
+#. "git cmd ".
+#. *
+#. This format string prints out that already-translated
+#. line. The "%*s" is whitespace padding to account for the
+#. padding at the start of the line that we add in this
+#. function. The "%s" is a line in the (hopefully already
+#. translated) N_() usage string, which contained embedded
+#. newlines before we split it up.
+#.
+#: parse-options.c:970
+#, c-format
+msgid "%*s%s"
+msgstr ""
+
+#: parse-options.c:993
#, c-format
msgid " %s"
msgstr " %s"
-#: parse-options.c:974
+#: parse-options.c:1040
msgid "-NUM"
msgstr "-NUM"
-#: path.c:915
+#: path.c:922
#, c-format
msgid "Could not make %s writable by group"
msgstr "Incapaz de fazer %s escrevível ao grupo"
-#: pathspec.c:151
+#: pathspec.c:150
msgid "Escape character '\\' not allowed as last character in attr value"
msgstr "Carácter de escape '\\' é proíbido como último carácter no valor attr"
-#: pathspec.c:169
+#: pathspec.c:168
msgid "Only one 'attr:' specification is allowed."
msgstr "Só se pode especificar um 'attr:'."
-#: pathspec.c:172
+#: pathspec.c:171
msgid "attr spec must not be empty"
msgstr "attr spec tem de ter algum conteúdo"
-#: pathspec.c:215
+#: pathspec.c:214
#, c-format
msgid "invalid attribute name %s"
msgstr "nome de atributo inválido %s"
-#: pathspec.c:280
+#: pathspec.c:279
msgid "global 'glob' and 'noglob' pathspec settings are incompatible"
msgstr ""
"as definições globais 'glob' e 'noglob' de especificador de caminho "
"(pathspec) são incompatíveis"
-#: pathspec.c:287
+#: pathspec.c:286
msgid ""
"global 'literal' pathspec setting is incompatible with all other global "
"pathspec settings"
@@ -6106,51 +6525,51 @@ msgstr ""
"a definição global de especificador de caminho 'literal' é incompatível com "
"todas as outras definições globais de especificador de caminho (pathspec)"
-#: pathspec.c:327
+#: pathspec.c:326
msgid "invalid parameter for pathspec magic 'prefix'"
msgstr "parâmetro inválido para magia de espetro-caminho 'prefix'"
-#: pathspec.c:348
+#: pathspec.c:347
#, c-format
msgid "Invalid pathspec magic '%.*s' in '%s'"
msgstr "Mágica do especificador de caminho '%.*s' inválida em '%s'"
-#: pathspec.c:353
+#: pathspec.c:352
#, c-format
msgid "Missing ')' at the end of pathspec magic in '%s'"
msgstr "Falta um ')' no final da mágica do especificador de caminho em '%s'"
-#: pathspec.c:391
+#: pathspec.c:390
#, c-format
msgid "Unimplemented pathspec magic '%c' in '%s'"
msgstr "Por implementar, magic pathspec '%c' em '%s'"
-#: pathspec.c:450
+#: pathspec.c:449
#, c-format
msgid "%s: 'literal' and 'glob' are incompatible"
msgstr "%s: 'literal' e 'glob' são incompatíveis"
-#: pathspec.c:466
+#: pathspec.c:465
#, c-format
msgid "%s: '%s' is outside repository at '%s'"
-msgstr "%s: '%s' está fora do repositório em '%s'"
+msgstr "%s: '%s' está fora do repositório de '%s'"
-#: pathspec.c:542
+#: pathspec.c:541
#, c-format
msgid "'%s' (mnemonic: '%c')"
msgstr "'%s' (mnemónica: '%c')"
-#: pathspec.c:552
+#: pathspec.c:551
#, c-format
msgid "%s: pathspec magic not supported by this command: %s"
msgstr "%s: magic pathspec insustentado por este comando: %s"
-#: pathspec.c:619
+#: pathspec.c:618
#, c-format
msgid "pathspec '%s' is beyond a symbolic link"
msgstr "o especificador de caminho '%s' é indicado por uma ligação simbólica"
-#: pathspec.c:664
+#: pathspec.c:663
#, c-format
msgid "line is badly quoted: %s"
msgstr ""
@@ -6171,7 +6590,7 @@ msgstr "incapaz escrever pacote fim de resposta"
msgid "flush packet write failed"
msgstr "escrita de pacote flush falhou"
-#: pkt-line.c:153 pkt-line.c:265
+#: pkt-line.c:153
msgid "protocol error: impossibly long line"
msgstr ""
@@ -6179,7 +6598,7 @@ msgstr ""
msgid "packet write with format failed"
msgstr "escrita de pacote com formato falhou"
-#: pkt-line.c:204
+#: pkt-line.c:204 pkt-line.c:252
msgid "packet write failed - data exceeds max packet size"
msgstr ""
@@ -6188,53 +6607,54 @@ msgstr ""
msgid "packet write failed: %s"
msgstr "escrita de pacote falhou: %s"
-#: pkt-line.c:328 pkt-line.c:329
+#: pkt-line.c:349 pkt-line.c:350
msgid "read error"
msgstr "erro de leitura"
-#: pkt-line.c:339 pkt-line.c:340
+#: pkt-line.c:360 pkt-line.c:361
msgid "the remote end hung up unexpectedly"
msgstr "o lado remoto desligou inesperadamente"
-#: pkt-line.c:369 pkt-line.c:371
+#: pkt-line.c:417 pkt-line.c:419
#, c-format
msgid "protocol error: bad line length character: %.4s"
msgstr ""
-#: pkt-line.c:386 pkt-line.c:388 pkt-line.c:394 pkt-line.c:396
+#: pkt-line.c:434 pkt-line.c:436 pkt-line.c:442 pkt-line.c:444
#, c-format
msgid "protocol error: bad line length %d"
msgstr ""
-#: pkt-line.c:413 sideband.c:165
+#: pkt-line.c:472 sideband.c:165
#, c-format
msgid "remote error: %s"
msgstr "erro remoto: %s"
#: preload-index.c:125
msgid "Refreshing index"
-msgstr "Refrescando index"
+msgstr "Refrescando cenário"
#: preload-index.c:144
#, c-format
msgid "unable to create threaded lstat: %s"
msgstr "incapaz criar thread de lstat: %s"
-#: pretty.c:988
+#: pretty.c:1051
msgid "unable to parse --pretty format"
msgstr "incapaz processar formato de --pretty"
#: promisor-remote.c:31
msgid "promisor-remote: unable to fork off fetch subprocess"
-msgstr ""
+msgstr "promisor-remote: incapaz de forquear subprocesso buscar"
#: promisor-remote.c:38 promisor-remote.c:40
msgid "promisor-remote: could not write to fetch subprocess"
-msgstr ""
+msgstr "promisor-remote: incapaz de escrever para subprocesso buscar"
#: promisor-remote.c:44
msgid "promisor-remote: could not close stdin to fetch subprocess"
msgstr ""
+"promisor-remote: incapaz de fechar entrada padrão para subprocesso buscar"
#: promisor-remote.c:54
#, c-format
@@ -6249,245 +6669,245 @@ msgstr ""
msgid "Removing duplicate objects"
msgstr "A remover objetos duplicados"
-#: range-diff.c:78
+#: range-diff.c:68
msgid "could not start `log`"
msgstr "incapaz começar `log`"
-#: range-diff.c:80
+#: range-diff.c:70
msgid "could not read `log` output"
msgstr "incapaz ler output de `log`"
-#: range-diff.c:101 sequencer.c:5550
+#: range-diff.c:98 sequencer.c:5575
#, c-format
msgid "could not parse commit '%s'"
-msgstr "incapaz analisar commit '%s'"
+msgstr "incapaz processar memória '%s'"
-#: range-diff.c:115
+#: range-diff.c:109
#, c-format
msgid ""
"could not parse first line of `log` output: did not start with 'commit ': "
"'%s'"
msgstr ""
-#: range-diff.c:140
+#: range-diff.c:132
#, c-format
msgid "could not parse git header '%.*s'"
msgstr "incapaz processar cabeçalho git '%.*s'"
-#: range-diff.c:307
+#: range-diff.c:300
msgid "failed to generate diff"
msgstr ""
-#: range-diff.c:559
-msgid "--left-only and --right-only are mutually exclusive"
-msgstr ""
-
-#: range-diff.c:562 range-diff.c:564
+#: range-diff.c:558 range-diff.c:560
#, c-format
msgid "could not parse log for '%s'"
msgstr "incapaz processar registo para '%s'"
-#: read-cache.c:710
+#: read-cache.c:737
#, c-format
msgid "will not add file alias '%s' ('%s' already exists in index)"
-msgstr "Adicionarei nenhuma alias de ficheiro '%s' ('%s' já existe em cenário)"
+msgstr "adicionarei nenhuma alias de ficheiro '%s' ('%s' já existe em cenário)"
-#: read-cache.c:726
+#: read-cache.c:753
msgid "cannot create an empty blob in the object database"
msgstr ""
-#: read-cache.c:748
+#: read-cache.c:775
#, c-format
msgid "%s: can only add regular files, symbolic links or git-directories"
msgstr ""
-#: read-cache.c:753
+#: read-cache.c:780 builtin/submodule--helper.c:3359
#, c-format
msgid "'%s' does not have a commit checked out"
msgstr "'%s' tem memória nenhuma em observação"
-#: read-cache.c:805
+#: read-cache.c:832
#, c-format
msgid "unable to index file '%s'"
-msgstr "incapaz indexar ficheiro '%s'"
+msgstr "incapaz encenar ficheiro '%s'"
-#: read-cache.c:824
+#: read-cache.c:851
#, c-format
msgid "unable to add '%s' to index"
-msgstr "incapaz adicionar %s a index"
+msgstr "incapaz adicionar '%s' a cenário"
-#: read-cache.c:835
+#: read-cache.c:862
#, c-format
msgid "unable to stat '%s'"
-msgstr "incapaz obter estatutário de '%s'"
+msgstr "incapaz de stat '%s'"
-#: read-cache.c:1358
+#: read-cache.c:1404
#, c-format
msgid "'%s' appears as both a file and as a directory"
-msgstr "'%s' aparece ambo como ficheiro e como pasta"
+msgstr "'%s' aparece quer como ficheiro quer como pasta"
-#: read-cache.c:1573
+#: read-cache.c:1619
msgid "Refresh index"
-msgstr "Refresca index"
+msgstr "Refresca cenário"
-#: read-cache.c:1705
+#: read-cache.c:1751
#, c-format
msgid ""
"index.version set, but the value is invalid.\n"
"Using version %i"
msgstr ""
"index.version definido, mas com valor inválido.\n"
-"A usar a versão %i"
+"Usando versão %i"
-#: read-cache.c:1715
+#: read-cache.c:1761
#, c-format
msgid ""
"GIT_INDEX_VERSION set, but the value is invalid.\n"
"Using version %i"
msgstr ""
"GIT_INDEX_VERSION definido, mas com valor inválido.\n"
-"A usar a versão %i"
+"Usando versão %i"
-#: read-cache.c:1771
+#: read-cache.c:1817
#, c-format
msgid "bad signature 0x%08x"
msgstr ""
-#: read-cache.c:1774
+#: read-cache.c:1820
#, c-format
msgid "bad index version %d"
msgstr "versão de cenário %d inválida"
-#: read-cache.c:1783
+#: read-cache.c:1829
msgid "bad index file sha1 signature"
msgstr ""
-#: read-cache.c:1817
+#: read-cache.c:1863
#, c-format
msgid "index uses %.4s extension, which we do not understand"
msgstr ""
-#: read-cache.c:1819
+#: read-cache.c:1865
#, c-format
msgid "ignoring %.4s extension"
msgstr "ignorando extensão %.4s"
-#: read-cache.c:1856
+#: read-cache.c:1902
#, c-format
msgid "unknown index entry format 0x%08x"
-msgstr "formato de entrada de cenário desconhecido 0x%08x"
+msgstr "formato de entrada do cenário 0x%08x desconhecido"
-#: read-cache.c:1872
+#: read-cache.c:1918
#, c-format
msgid "malformed name field in the index, near path '%s'"
msgstr ""
-#: read-cache.c:1929
+#: read-cache.c:1975
msgid "unordered stage entries in index"
msgstr ""
-#: read-cache.c:1932
+#: read-cache.c:1978
#, c-format
msgid "multiple stage entries for merged file '%s'"
-msgstr "multíplas entradas de estágio para ficheiro juntado '%s'"
+msgstr "múltiplas entradas de cenário para ficheiro juntado '%s'"
-#: read-cache.c:1935
+#: read-cache.c:1981
#, c-format
msgid "unordered stage entries for '%s'"
-msgstr "entradas de estágio desordenadas para '%s'"
-
-#: read-cache.c:2041 read-cache.c:2339 rerere.c:549 rerere.c:583 rerere.c:1095
-#: submodule.c:1622 builtin/add.c:575 builtin/check-ignore.c:183
-#: builtin/checkout.c:519 builtin/checkout.c:706 builtin/clean.c:987
-#: builtin/commit.c:377 builtin/diff-tree.c:122 builtin/grep.c:505
-#: builtin/mv.c:146 builtin/reset.c:247 builtin/rm.c:291
-#: builtin/submodule--helper.c:333
+msgstr "entradas de cenário desordenadas para '%s'"
+
+#: read-cache.c:2096 read-cache.c:2402 rerere.c:549 rerere.c:583 rerere.c:1096
+#: submodule.c:1831 builtin/add.c:586 builtin/check-ignore.c:183
+#: builtin/checkout.c:532 builtin/checkout.c:724 builtin/clean.c:1016
+#: builtin/commit.c:379 builtin/diff-tree.c:122 builtin/grep.c:521
+#: builtin/mv.c:148 builtin/reset.c:506 builtin/rm.c:293
+#: builtin/submodule--helper.c:335 builtin/submodule--helper.c:3319
msgid "index file corrupt"
-msgstr ""
+msgstr "ficheiro de cenário rompido"
-#: read-cache.c:2185
+#: read-cache.c:2240
#, c-format
msgid "unable to create load_cache_entries thread: %s"
-msgstr "incapaz criar thread load_cache_entries: %s"
+msgstr "incapaz criar fio load_cache_entries: %s"
-#: read-cache.c:2198
+#: read-cache.c:2253
#, c-format
msgid "unable to join load_cache_entries thread: %s"
-msgstr "incapaz juntar a thread load_cache_entries: %s"
+msgstr "incapaz juntar a fio load_cache_entries: %s"
-#: read-cache.c:2231
+#: read-cache.c:2286
#, c-format
msgid "%s: index file open failed"
msgstr "%s: abertura de ficheiro de cenário falhou"
-#: read-cache.c:2235
+#: read-cache.c:2290
#, c-format
msgid "%s: cannot stat the open index"
-msgstr "%s: incapaz obter estatutário de index aberto"
+msgstr "%s: incapaz de stat o cenário aberto"
-#: read-cache.c:2239
+#: read-cache.c:2294
#, c-format
msgid "%s: index file smaller than expected"
msgstr ""
-#: read-cache.c:2243
+#: read-cache.c:2298
#, c-format
msgid "%s: unable to map index file%s"
-msgstr "%s: incapaz mapear ficheiro index%s"
+msgstr "%s: incapaz mapear ficheiro de cenário%s"
-#: read-cache.c:2286
+#: read-cache.c:2341
#, c-format
msgid "unable to create load_index_extensions thread: %s"
-msgstr "incapaz criar thread load_index_extensions: %s"
+msgstr "incapaz criar fio load_index_extensions: %s"
-#: read-cache.c:2313
+#: read-cache.c:2368
#, c-format
msgid "unable to join load_index_extensions thread: %s"
-msgstr "incapaz juntar a thread load_index_extensions: %s"
+msgstr "incapaz juntar a fio load_index_extensions: %s"
-#: read-cache.c:2351
+#: read-cache.c:2414
#, c-format
msgid "could not freshen shared index '%s'"
-msgstr "incapaz refrescar index partilhado '%s'"
+msgstr "incapaz refrescar cenário partilhado '%s'"
-#: read-cache.c:2398
+#: read-cache.c:2473
#, c-format
msgid "broken index, expect %s in %s, got %s"
msgstr ""
-#: read-cache.c:3032 strbuf.c:1173 wrapper.c:633 builtin/merge.c:1146
+#: read-cache.c:3032
+msgid "cannot write split index for a sparse index"
+msgstr "incapaz escrever cenário dividido de um cenário disperso"
+
+#: read-cache.c:3114 strbuf.c:1192 wrapper.c:717 builtin/merge.c:1156
#, c-format
msgid "could not close '%s'"
msgstr "incapaz fechar '%s'"
-#: read-cache.c:3075
+#: read-cache.c:3157
msgid "failed to convert to a sparse-index"
msgstr ""
-#: read-cache.c:3146 sequencer.c:2684 sequencer.c:4440
+#: read-cache.c:3228
#, c-format
msgid "could not stat '%s'"
-msgstr "incapaz obter estatutário '%s'"
+msgstr "incapaz de stat '%s'"
-#: read-cache.c:3159
+#: read-cache.c:3241
#, c-format
msgid "unable to open git dir: %s"
msgstr "incapaz abrir pasta git: %s"
-#: read-cache.c:3171
+#: read-cache.c:3253
#, c-format
msgid "unable to unlink: %s"
-msgstr "incapaz deslinkar: %s"
+msgstr "incapaz de unlink: %s"
-#: read-cache.c:3200
+#: read-cache.c:3282
#, c-format
msgid "cannot fix permission bits on '%s'"
msgstr "incapaz arranjar bits de permissão em '%s'"
-#: read-cache.c:3349
+#: read-cache.c:3439
#, c-format
msgid "%s: cannot drop to stage #0"
-msgstr "%s: incapaz baixar para estágio #0"
+msgstr "%s: incapaz cair para cenário #0"
#: rebase-interactive.c:11
msgid ""
@@ -6536,18 +6956,19 @@ msgstr ""
"r, reword <memória> = usar memória, mas editar a mensagem de memória\n"
"e, edit <memória> = usar memória, mas parar para emendar\n"
"s, squash <memória> = usar memória, mas fundir com a memória anterior\n"
-"f, fixup [-C | -c] <memória> = como \"squash\", mas mantém apenas the\n"
-" mensagem anterior de registo da memória, a menos que\n"
-" -C seja usada, em que neste caso mantém apenas a mensagem\n"
-" desta memória; -c é o mesmo que -C mas abre o editor\n"
+"f, fixup [-C | -c] <memória> = como \"squash\", mas mantém apenas a\n"
+" mensagem de registo da memória anterior, a menos que\n"
+" -C seja usada, e neste caso mantém apenas esta mensagem\n"
+" de memória; -c é o mesmo que -C mas abre o editor\n"
"x, exec <comando> = executar o comando (o resto da linha) usando a shell\n"
-"b, break = para aqui (continuar rebase mais tarde com 'git rebase --continue')"
+"b, break = parar aqui (continuar rebase mais tarde com 'git rebase --"
+"continue')\n"
"d, drop <memória> = remover memória\n"
-"l, label <etiqueta> = etiquetar HEAD atual com um nome\n"
-"t, reset <etiqueta> = restabelecer HEAD a uma etiqueta\n"
-"n, merge [-C <memória> | -c <memória>] <etiqueta> [# <oneline>]\n"
+"l, label <rótulo> = rotular HEAD atual com um nome\n"
+"t, reset <rótulo> = restabelecer HEAD a um rótulo\n"
+"n, merge [-C <memória> | -c <memória>] <rótulo> [# <oneline>]\n"
". criar uma memória de junção usando a mensagem de memória\n"
-". original (ou oneline, se nenhuma memória de junção foi\n"
+". original (ou oneline, se nenhuma memória de junção for\n"
". especificada); usa -c <memória> para refrasear a mensagem\n"
". de memória\n"
"\n"
@@ -6560,15 +6981,15 @@ msgid_plural "Rebase %s onto %s (%d commands)"
msgstr[0] "Rebasear %s sobre %s (%d comando)"
msgstr[1] "Rebasear %s sobre %s (%d comandos)"
-#: rebase-interactive.c:75 git-rebase--preserve-merges.sh:218
+#: rebase-interactive.c:75
msgid ""
"\n"
"Do not remove any line. Use 'drop' explicitly to remove a commit.\n"
msgstr ""
"\n"
-"Remove linha nenhuma. Usa explicitamente 'drop' para remover um commit.\n"
+"Remove linha nenhuma. Usa explicitamente 'drop' para remover uma memória.\n"
-#: rebase-interactive.c:78 git-rebase--preserve-merges.sh:222
+#: rebase-interactive.c:78
msgid ""
"\n"
"If you remove a line here THAT COMMIT WILL BE LOST.\n"
@@ -6576,7 +6997,7 @@ msgstr ""
"\n"
"Se remover uma linha daqui AQUELE COMMIT SERÃ PERDIDO.\n"
-#: rebase-interactive.c:84 git-rebase--preserve-merges.sh:861
+#: rebase-interactive.c:84
msgid ""
"\n"
"You are editing the todo file of an ongoing interactive rebase.\n"
@@ -6590,7 +7011,7 @@ msgstr ""
" git rebase --continue\n"
"\n"
-#: rebase-interactive.c:89 git-rebase--preserve-merges.sh:938
+#: rebase-interactive.c:89
msgid ""
"\n"
"However, if you remove everything, the rebase will be aborted.\n"
@@ -6600,14 +7021,14 @@ msgstr ""
"No entanto, se remover tudo, o rebase será abortado.\n"
"\n"
-#: rebase-interactive.c:113 rerere.c:469 rerere.c:676 sequencer.c:3836
-#: sequencer.c:3862 sequencer.c:5656 builtin/fsck.c:328 builtin/rebase.c:271
+#: rebase-interactive.c:113 rerere.c:469 rerere.c:677 sequencer.c:3879
+#: sequencer.c:3905 sequencer.c:5681 builtin/fsck.c:328 builtin/gc.c:1791
+#: builtin/rebase.c:191
#, c-format
msgid "could not write '%s'"
msgstr "incapaz escrever '%s'"
-#: rebase-interactive.c:119 builtin/rebase.c:203 builtin/rebase.c:229
-#: builtin/rebase.c:253
+#: rebase-interactive.c:119
#, c-format
msgid "could not write '%s'."
msgstr "incapaz escrever '%s'."
@@ -6618,8 +7039,8 @@ msgid ""
"Warning: some commits may have been dropped accidentally.\n"
"Dropped commits (newer to older):\n"
msgstr ""
-"Aviso: alguns commits podem ter sido descartados acidentalmente.\n"
-"Commits descartados (mais novo para o mais velho):\n"
+"Aviso: algumas memórias podem ter sido descartadas acidentalmente.\n"
+"Memórias descartadas (de nova para mais velha):\n"
#: rebase-interactive.c:203
#, c-format
@@ -6631,21 +7052,19 @@ msgid ""
"The possible behaviours are: ignore, warn, error.\n"
"\n"
msgstr ""
-"Para evitar esta mensagem, use \"drop\" para remover um commit "
+"Para evitar esta mensagem, usa \"drop\" para remover uma memória "
"explicitamente.\n"
"\n"
-"Use 'git config rebase.missingCommitsCheck' para mudar o nível de avisos.\n"
-"O comportamentos possíveis são: ignore, warn, error.\n"
+"Usa 'git config rebase.missingCommitsCheck' para mudar o nível de avisos.\n"
+"Comportamentos possíveis são: ignore, warn, error.\n"
"\n"
-#: rebase-interactive.c:236 rebase-interactive.c:241 sequencer.c:2597
-#: builtin/rebase.c:189 builtin/rebase.c:214 builtin/rebase.c:240
-#: builtin/rebase.c:265
+#: rebase.c:29
#, c-format
-msgid "could not read '%s'."
-msgstr "incapaz ler '%s'."
+msgid "%s: 'preserve' superseded by 'merges'"
+msgstr ""
-#: ref-filter.c:42 wt-status.c:2036
+#: ref-filter.c:42 wt-status.c:2057
msgid "gone"
msgstr "desapareceu"
@@ -6664,257 +7083,238 @@ msgstr "atrás %d"
msgid "ahead %d, behind %d"
msgstr "à frente %d, atrás %d"
-#: ref-filter.c:230
+#: ref-filter.c:235
#, c-format
msgid "expected format: %%(color:<color>)"
msgstr "formato esperado: %%(color:<cor>)"
-#: ref-filter.c:232
+#: ref-filter.c:237
#, c-format
msgid "unrecognized color: %%(color:%s)"
msgstr "cor desconhecida: %%(color:%s)"
-#: ref-filter.c:254
+#: ref-filter.c:259
#, c-format
msgid "Integer value expected refname:lstrip=%s"
msgstr "valor inteiro esperado refname:lstrip=%s"
-#: ref-filter.c:258
+#: ref-filter.c:263
#, c-format
msgid "Integer value expected refname:rstrip=%s"
msgstr "Valor inteiro esperado refname:rstrip=%s"
-#: ref-filter.c:260
+#: ref-filter.c:265 ref-filter.c:344 ref-filter.c:377 ref-filter.c:431
+#: ref-filter.c:443 ref-filter.c:462 ref-filter.c:534 ref-filter.c:560
#, c-format
msgid "unrecognized %%(%s) argument: %s"
msgstr "argumento %%(%s) desconhecido: %s"
-#: ref-filter.c:315
+#: ref-filter.c:320
#, c-format
msgid "%%(objecttype) does not take arguments"
msgstr "%%(objecttype) leva argumentos nenhuns"
-#: ref-filter.c:339
-#, c-format
-msgid "unrecognized %%(objectsize) argument: %s"
-msgstr "argumento %%(objectsize) desconhecido: %s"
-
-#: ref-filter.c:347
+#: ref-filter.c:352
#, c-format
msgid "%%(deltabase) does not take arguments"
msgstr "%%(deltabase) leva argumentos nenhuns"
-#: ref-filter.c:359
+#: ref-filter.c:364
#, c-format
msgid "%%(body) does not take arguments"
msgstr "%%(body) leva argumentos nenhuns"
-#: ref-filter.c:372
-#, c-format
-msgid "unrecognized %%(subject) argument: %s"
-msgstr "argumento %%(subject) desconhecido: %s"
-
-#: ref-filter.c:391
+#: ref-filter.c:396
#, c-format
msgid "expected %%(trailers:key=<value>)"
msgstr ""
-#: ref-filter.c:393
+#: ref-filter.c:398
#, c-format
msgid "unknown %%(trailers) argument: %s"
msgstr "argumento %%(trailers) desconhecido: %s"
-#: ref-filter.c:424
+#: ref-filter.c:429
#, c-format
msgid "positive value expected contents:lines=%s"
msgstr "valor positivo esperado contents:lines=%s"
-#: ref-filter.c:426
-#, c-format
-msgid "unrecognized %%(contents) argument: %s"
-msgstr "argumento %%(contents) desconhecido: %s"
-
-#: ref-filter.c:441
+#: ref-filter.c:458
#, c-format
msgid "positive value expected '%s' in %%(%s)"
msgstr "valor positivo esperado '%s' em %%(%s)"
-#: ref-filter.c:445
-#, c-format
-msgid "unrecognized argument '%s' in %%(%s)"
-msgstr "argumento '%s' desconhecido em %%(%s)"
-
-#: ref-filter.c:459
+#: ref-filter.c:476
#, c-format
msgid "unrecognized email option: %s"
msgstr "opção de email desconhecida: %s"
-#: ref-filter.c:489
+#: ref-filter.c:506
#, c-format
msgid "expected format: %%(align:<width>,<position>)"
msgstr "formato esperado: %%(align:<largura>,<posição>)"
-#: ref-filter.c:501
+#: ref-filter.c:518
#, c-format
msgid "unrecognized position:%s"
msgstr "posição desconhecida: %s"
-#: ref-filter.c:508
+#: ref-filter.c:525
#, c-format
msgid "unrecognized width:%s"
msgstr "largura desconhecida: %s"
-#: ref-filter.c:517
-#, c-format
-msgid "unrecognized %%(align) argument: %s"
-msgstr "argumento %%(align) desconhecido: %s"
-
-#: ref-filter.c:525
+#: ref-filter.c:542
#, c-format
msgid "positive width expected with the %%(align) atom"
msgstr "largura positiva esperada com o átomo %%(align)"
-#: ref-filter.c:543
+#: ref-filter.c:568
#, c-format
-msgid "unrecognized %%(if) argument: %s"
-msgstr "argumento %%(if) desconhecido: %s"
+msgid "%%(rest) does not take arguments"
+msgstr "%%(rest) leva argumentos nenhuns"
-#: ref-filter.c:645
+#: ref-filter.c:680
#, c-format
msgid "malformed field name: %.*s"
msgstr "nome em campo malformado: %.*s"
-#: ref-filter.c:672
+#: ref-filter.c:707
#, c-format
msgid "unknown field name: %.*s"
msgstr "nome do campo desconhecido: %.*s"
-#: ref-filter.c:676
+#: ref-filter.c:711
#, c-format
msgid ""
"not a git repository, but the field '%.*s' requires access to object data"
msgstr ""
-#: ref-filter.c:801
-#, c-format
-msgid "format: %%(if) atom used without a %%(then) atom"
-msgstr "formato: átomo %%(if) utilizado sem átomo %%(then) correspondente"
-
-#: ref-filter.c:865
+#: ref-filter.c:844 ref-filter.c:910 ref-filter.c:946 ref-filter.c:948
#, c-format
-msgid "format: %%(then) atom used without an %%(if) atom"
-msgstr "formato: átomo %%(then) utilizado sem átomo %%(if) correspondente"
+msgid "format: %%(%s) atom used without a %%(%s) atom"
+msgstr "formatar: átomo %%(%s) usado sem átomo %%(%s)"
-#: ref-filter.c:867
+#: ref-filter.c:912
#, c-format
msgid "format: %%(then) atom used more than once"
msgstr "formato: átomo %%(then) utilizado mais que uma vez"
-#: ref-filter.c:869
+#: ref-filter.c:914
#, c-format
msgid "format: %%(then) atom used after %%(else)"
msgstr "formato: átomo %%(then) utilizado depois de %%(else)"
-#: ref-filter.c:897
-#, c-format
-msgid "format: %%(else) atom used without an %%(if) atom"
-msgstr "formato: átomo %%(else) utilizado sem átomo %%(if) correspondente"
-
-#: ref-filter.c:899
-#, c-format
-msgid "format: %%(else) atom used without a %%(then) atom"
-msgstr "formato: átomo %%(else) utilizado sem átomo %%(then) correspondente"
-
-#: ref-filter.c:901
+#: ref-filter.c:950
#, c-format
msgid "format: %%(else) atom used more than once"
msgstr "formato: átomo %%(else) utilizado mais que uma vez"
-#: ref-filter.c:916
+#: ref-filter.c:965
#, c-format
msgid "format: %%(end) atom used without corresponding atom"
msgstr "formato: átomo %%(end) utilizado sem átomo correspondente"
-#: ref-filter.c:973
+#: ref-filter.c:1027
#, c-format
msgid "malformed format string %s"
msgstr "formato de string %s malformado"
-#: ref-filter.c:1621
+#: ref-filter.c:1033
+#, c-format
+msgid "this command reject atom %%(%.*s)"
+msgstr ""
+
+#: ref-filter.c:1040
+#, c-format
+msgid "--format=%.*s cannot be used with --python, --shell, --tcl"
+msgstr "--format=%.*s incapaz ser usado com --python, --shell, --tcl"
+
+#: ref-filter.c:1707
#, c-format
msgid "(no branch, rebasing %s)"
msgstr "(ramo nenhum, rebaseando %s)"
-#: ref-filter.c:1624
+#: ref-filter.c:1710
#, c-format
msgid "(no branch, rebasing detached HEAD %s)"
-msgstr "(ramo nenhum, rebaseando HEAD solta %s)"
+msgstr "(ramo nenhum, rebaseando HEAD desanexada %s)"
-#: ref-filter.c:1627
+#: ref-filter.c:1713
#, c-format
msgid "(no branch, bisect started on %s)"
msgstr "(ramo nenhum, bisseção iniciada em %s)"
-#: ref-filter.c:1631
+#: ref-filter.c:1717
#, c-format
msgid "(HEAD detached at %s)"
-msgstr "(HEAD destacada em %s)"
+msgstr "(HEAD desanexada em %s)"
-#: ref-filter.c:1634
+#: ref-filter.c:1720
#, c-format
msgid "(HEAD detached from %s)"
-msgstr "(HEAD destacada de %s)"
+msgstr "(HEAD desanexada de %s)"
-#: ref-filter.c:1637
+#: ref-filter.c:1723
msgid "(no branch)"
msgstr "(ramo nenhum)"
-#: ref-filter.c:1669 ref-filter.c:1880
+#: ref-filter.c:1755 ref-filter.c:1973
#, c-format
msgid "missing object %s for %s"
msgstr ""
-#: ref-filter.c:1679
+#: ref-filter.c:1765
#, c-format
msgid "parse_object_buffer failed on %s for %s"
msgstr "falha ao invocar parse_object_buffer sobre %s de %s"
-#: ref-filter.c:2064
+#: ref-filter.c:2156
#, c-format
msgid "malformed object at '%s'"
msgstr "objeto malformado em '%s'"
-#: ref-filter.c:2153
+#: ref-filter.c:2246
#, c-format
msgid "ignoring ref with broken name %s"
msgstr "ignorando ref com nome quebrado %s"
-#: ref-filter.c:2158 refs.c:676
+#: ref-filter.c:2251 refs.c:672
#, c-format
msgid "ignoring broken ref %s"
msgstr "ref quebrada %s está a ser ignorada"
-#: ref-filter.c:2502
+#: ref-filter.c:2630
#, c-format
msgid "format: %%(end) atom missing"
msgstr "formato: falta átomo %%(end)"
-#: ref-filter.c:2596
+#: ref-filter.c:2741
#, c-format
msgid "malformed object name %s"
msgstr "nome de objeto malformado %s"
-#: ref-filter.c:2601
+#: ref-filter.c:2746
#, c-format
msgid "option `%s' must point to a commit"
-msgstr "opção '%s' tem apontar para um commit"
+msgstr "opção `%s' tem de apontar para uma memória"
+
+#: reflog.c:407
+#, c-format
+msgid "not a reflog: %s"
+msgstr "reflog inválido: %s"
-#: refs.c:264
+#: reflog.c:410
+#, c-format
+msgid "no reflog for '%s'"
+msgstr "reflog nenhum para '%s'"
+
+#: refs.c:262
#, c-format
msgid "%s does not point to a valid object!"
msgstr "%s aponta para objeto inválido!"
-#: refs.c:566
+#: refs.c:561
#, c-format
msgid ""
"Using '%s' as the name for the initial branch. This default branch name\n"
@@ -6929,32 +7329,32 @@ msgid ""
"\tgit branch -m <name>\n"
msgstr ""
-#: refs.c:588
+#: refs.c:583
#, c-format
msgid "could not retrieve `%s`"
msgstr "incapaz resgatar `%s`"
-#: refs.c:598
+#: refs.c:593
#, c-format
msgid "invalid branch name: %s = %s"
msgstr "Nome de ramo inválido: %s = %s"
-#: refs.c:674
+#: refs.c:670
#, c-format
msgid "ignoring dangling symref %s"
-msgstr "ref-simbólica perdida %s está a ser ignorada"
+msgstr "ignorando ref-simbólica suspensa %s"
-#: refs.c:922
+#: refs.c:919
#, c-format
msgid "log for ref %s has gap after %s"
msgstr ""
-#: refs.c:929
+#: refs.c:926
#, c-format
msgid "log for ref %s unexpectedly ended on %s"
msgstr ""
-#: refs.c:994
+#: refs.c:991
#, c-format
msgid "log for %s is empty"
msgstr ""
@@ -6964,46 +7364,46 @@ msgstr ""
msgid "refusing to update ref with bad name '%s'"
msgstr "recusando atualizar ref com nome inválido '%s'"
-#: refs.c:1157
+#: refs.c:1164
#, c-format
msgid "update_ref failed for ref '%s': %s"
msgstr ""
-#: refs.c:2051
+#: refs.c:2059
#, c-format
msgid "multiple updates for ref '%s' not allowed"
msgstr "atualizações múltiplas para ref '%s' proíbidas"
-#: refs.c:2131
+#: refs.c:2145
msgid "ref updates forbidden inside quarantine environment"
msgstr ""
-#: refs.c:2142
+#: refs.c:2156
msgid "ref updates aborted by hook"
msgstr ""
-#: refs.c:2242 refs.c:2272
+#: refs.c:2264 refs.c:2294
#, c-format
msgid "'%s' exists; cannot create '%s'"
msgstr "'%s' existe; incapaz criar '%s'"
-#: refs.c:2248 refs.c:2283
+#: refs.c:2270 refs.c:2305
#, c-format
msgid "cannot process '%s' and '%s' at the same time"
msgstr "incapaz processar '%s' e '%s' ao mesmo tempo"
-#: refs/files-backend.c:1228
+#: refs/files-backend.c:1295
#, c-format
msgid "could not remove reference %s"
msgstr "incapaz remover referência %s"
-#: refs/files-backend.c:1242 refs/packed-backend.c:1542
-#: refs/packed-backend.c:1552
+#: refs/files-backend.c:1310 refs/packed-backend.c:1565
+#: refs/packed-backend.c:1575
#, c-format
msgid "could not delete reference %s: %s"
msgstr "incapaz apagar referência %s: %s"
-#: refs/files-backend.c:1245 refs/packed-backend.c:1555
+#: refs/files-backend.c:1313 refs/packed-backend.c:1578
#, c-format
msgid "could not delete references: %s"
msgstr "incapaz apagar referências: %s"
@@ -7013,50 +7413,50 @@ msgstr "incapaz apagar referências: %s"
msgid "invalid refspec '%s'"
msgstr ""
-#: remote.c:351
+#: remote.c:402
#, c-format
msgid "config remote shorthand cannot begin with '/': %s"
msgstr ""
-#: remote.c:399
+#: remote.c:450
msgid "more than one receivepack given, using the first"
msgstr ""
-#: remote.c:407
+#: remote.c:458
msgid "more than one uploadpack given, using the first"
msgstr ""
-#: remote.c:590
+#: remote.c:698
#, c-format
msgid "Cannot fetch both %s and %s to %s"
msgstr "Incapaz buscar ambos %s e %s para %s"
-#: remote.c:594
+#: remote.c:702
#, c-format
msgid "%s usually tracks %s, not %s"
msgstr "%s geralmente segue %s, invés de %s"
-#: remote.c:598
+#: remote.c:706
#, c-format
msgid "%s tracks both %s and %s"
msgstr "%s segue %s e %s em simultâneo"
-#: remote.c:666
+#: remote.c:774
#, c-format
msgid "key '%s' of pattern had no '*'"
msgstr ""
-#: remote.c:676
+#: remote.c:784
#, c-format
msgid "value '%s' of pattern has no '*'"
msgstr ""
-#: remote.c:1083
+#: remote.c:1191
#, c-format
msgid "src refspec %s does not match any"
-msgstr "src refspec %s corresponde a nenhum"
+msgstr "espetro-ref src %s com nenhuma correspondência"
-#: remote.c:1088
+#: remote.c:1196
#, c-format
msgid "src refspec %s matches more than one"
msgstr ""
@@ -7065,7 +7465,7 @@ msgstr ""
#. <remote> <src>:<dst>" push, and "being pushed ('%s')" is
#. the <src>.
#.
-#: remote.c:1103
+#: remote.c:1211
#, c-format
msgid ""
"The destination you provided is not a full refname (i.e.,\n"
@@ -7079,7 +7479,7 @@ msgid ""
"Neither worked, so we gave up. You must fully qualify the ref."
msgstr ""
-#: remote.c:1123
+#: remote.c:1231
#, c-format
msgid ""
"The <src> part of the refspec is a commit object.\n"
@@ -7087,7 +7487,7 @@ msgid ""
"'%s:refs/heads/%s'?"
msgstr ""
-#: remote.c:1128
+#: remote.c:1236
#, c-format
msgid ""
"The <src> part of the refspec is a tag object.\n"
@@ -7095,7 +7495,7 @@ msgid ""
"'%s:refs/tags/%s'?"
msgstr ""
-#: remote.c:1133
+#: remote.c:1241
#, c-format
msgid ""
"The <src> part of the refspec is a tree object.\n"
@@ -7103,7 +7503,7 @@ msgid ""
"'%s:refs/tags/%s'?"
msgstr ""
-#: remote.c:1138
+#: remote.c:1246
#, c-format
msgid ""
"The <src> part of the refspec is a blob object.\n"
@@ -7111,131 +7511,127 @@ msgid ""
"'%s:refs/tags/%s'?"
msgstr ""
-#: remote.c:1174
+#: remote.c:1282
#, c-format
msgid "%s cannot be resolved to branch"
msgstr "%s incapaz ser resolvido para ramo"
-#: remote.c:1185
+#: remote.c:1293
#, c-format
msgid "unable to delete '%s': remote ref does not exist"
msgstr "incapaz apagar '%s': ref remoto é inexistente"
-#: remote.c:1197
+#: remote.c:1305
#, c-format
msgid "dst refspec %s matches more than one"
msgstr ""
-#: remote.c:1204
+#: remote.c:1312
#, c-format
msgid "dst ref %s receives from more than one src"
msgstr ""
-#: remote.c:1724 remote.c:1825
+#: remote.c:1833 remote.c:1940
msgid "HEAD does not point to a branch"
msgstr "HEAD aponta para ramo nenhum"
-#: remote.c:1733
+#: remote.c:1842
#, c-format
msgid "no such branch: '%s'"
msgstr "ramo inexistente: '%s'"
-#: remote.c:1736
+#: remote.c:1845
#, c-format
msgid "no upstream configured for branch '%s'"
msgstr "configurado upstream nenhum para ramo '%s'"
-#: remote.c:1742
+#: remote.c:1851
#, c-format
msgid "upstream branch '%s' not stored as a remote-tracking branch"
-msgstr "incapaz gravar ramo upstream '%s' como ramo remote-tracking"
+msgstr "incapaz gravar ramo upstream '%s' como ramo remoto de monitorização"
-#: remote.c:1757
+#: remote.c:1866
#, c-format
msgid "push destination '%s' on remote '%s' has no local tracking branch"
msgstr ""
-"destino de atirar '%s' em remoto '%s' tem ramo de tracking local nenhum"
+"destino de atirar '%s' em remoto '%s' tem nenhum ramo de monitorização local"
-#: remote.c:1769
+#: remote.c:1881
#, c-format
msgid "branch '%s' has no remote for pushing"
-msgstr "ramo '%s' tem remoto para atirar nenhum"
+msgstr "ramo '%s' tem nenhum remoto para atirar"
-#: remote.c:1779
+#: remote.c:1891
#, c-format
msgid "push refspecs for '%s' do not include '%s'"
-msgstr "refspecs de atirar para '%s'incluí '%s' nenhum"
+msgstr "espetro-ref de atirar para '%s' incluí '%s' nenhum"
-#: remote.c:1792
+#: remote.c:1904
msgid "push has no destination (push.default is 'nothing')"
-msgstr "publicação sem destino (push.default é 'nothing')"
+msgstr "atirar sem destino (push.default é 'nothing')"
-#: remote.c:1814
+#: remote.c:1926
msgid "cannot resolve 'simple' push to a single destination"
msgstr "incapaz resolver atiro 'simple' para destino único"
-#: remote.c:1943
+#: remote.c:2059
#, c-format
msgid "couldn't find remote ref %s"
msgstr "incapaz encontrar ref remoto %s"
-#: remote.c:1956
+#: remote.c:2072
#, c-format
msgid "* Ignoring funny ref '%s' locally"
msgstr ""
-#: remote.c:2119
+#: remote.c:2235
#, c-format
msgid "Your branch is based on '%s', but the upstream is gone.\n"
-msgstr "A base do seu ramo é '%s', mas o ramo a montante desapareceu.\n"
+msgstr "Teu ramo é baseado em '%s', mas o upstream desapareceu.\n"
-#: remote.c:2123
+#: remote.c:2239
msgid " (use \"git branch --unset-upstream\" to fixup)\n"
-msgstr " (usa \"git branch --unset-upstream\" para corrigir)\n"
+msgstr " (usa \"git branch --unset-upstream\" para consertar)\n"
-#: remote.c:2126
+#: remote.c:2242
#, c-format
msgid "Your branch is up to date with '%s'.\n"
msgstr "Teu ramo está atualizado com '%s'.\n"
-#: remote.c:2130
+#: remote.c:2246
#, c-format
msgid "Your branch and '%s' refer to different commits.\n"
msgstr "Teu ramo e '%s' referem-se a memórias diferentes.\n"
-#: remote.c:2133
+#: remote.c:2249
#, c-format
msgid " (use \"%s\" for details)\n"
-msgstr ""
+msgstr " (para detalhes usa \"%s\")\n"
-#: remote.c:2137
+#: remote.c:2253
#, c-format
msgid "Your branch is ahead of '%s' by %d commit.\n"
msgid_plural "Your branch is ahead of '%s' by %d commits.\n"
-msgstr[0] "O seu ramo está à frente de '%s' por %d commit.\n"
-msgstr[1] "O seu ramo está à frente de '%s' por %d commits.\n"
+msgstr[0] "Teu ramo está à frente de '%s' por %d memória.\n"
+msgstr[1] "Teu ramo está à frente de '%s' por %d memórias.\n"
-#: remote.c:2143
+#: remote.c:2259
msgid " (use \"git push\" to publish your local commits)\n"
-msgstr " (usa \"git push\" para publicar os commits locais)\n"
+msgstr " (usa \"git push\" para publicar tuas memórias locais)\n"
-#: remote.c:2146
+#: remote.c:2262
#, c-format
msgid "Your branch is behind '%s' by %d commit, and can be fast-forwarded.\n"
msgid_plural ""
"Your branch is behind '%s' by %d commits, and can be fast-forwarded.\n"
-msgstr[0] ""
-"O seu ramo está atrás de '%s' por %d commit, podendo ser atualizado com "
-"avanço rápido.\n"
-msgstr[1] ""
-"O seu ramo está atrás de '%s' por %d commits, podendo ser atualizado com "
-"avanço rápido.\n"
+msgstr[0] "Teu ramo está atrás de '%s' por %d memória, e pode ser avançado.\n"
+msgstr[1] "Teu ramo está atrás de '%s' por %d memórias, e pode ser avançado.\n"
-#: remote.c:2154
+#: remote.c:2270
msgid " (use \"git pull\" to update your local branch)\n"
msgstr " (usa \"git pull\" para atualizar teu ramo local)\n"
-#: remote.c:2157
+#: remote.c:2273
#, c-format
msgid ""
"Your branch and '%s' have diverged,\n"
@@ -7244,20 +7640,20 @@ msgid_plural ""
"Your branch and '%s' have diverged,\n"
"and have %d and %d different commits each, respectively.\n"
msgstr[0] ""
-"O seu ramo e '%s' divergiram,\n"
-"tendo cada um %d e %d commit diferente, respetivamente.\n"
+"Teu ramo e '%s' divergiram,\n"
+"tendo cada um %d e %d memória diferente, respetivamente.\n"
msgstr[1] ""
-"O seu ramo e '%s' divergiram,\n"
-"tendo cada um %d e %d commits diferentes, respetivamente.\n"
+"Teu ramo e '%s' divergiram,\n"
+"tendo cada um %d e %d memórias diferentes, respetivamente.\n"
-#: remote.c:2167
+#: remote.c:2283
msgid " (use \"git pull\" to merge the remote branch into yours)\n"
-msgstr " (usa \"git pull\" para juntar o ramo remoto no teu ramo)\n"
+msgstr " (usa \"git pull\" para juntar o ramo remoto no teu)\n"
-#: remote.c:2359
+#: remote.c:2475
#, c-format
msgid "cannot parse expected object name '%s'"
-msgstr "incapaz analisar nome de objeto esperado '%s'"
+msgstr "incapaz processar nome de objeto esperado '%s'"
#: replace-object.c:21
#, c-format
@@ -7276,7 +7672,7 @@ msgstr "substituir profundidade demasiado funda para objeto %s"
#: rerere.c:201 rerere.c:210 rerere.c:213
msgid "corrupt MERGE_RR"
-msgstr ""
+msgstr "MERGE_RR rompido"
#: rerere.c:248 rerere.c:253
msgid "unable to write rerere record"
@@ -7285,138 +7681,131 @@ msgstr "incapaz escrever registro rerere"
#: rerere.c:479
#, c-format
msgid "there were errors while writing '%s' (%s)"
-msgstr ""
+msgstr "houve erros enquanto escrevia '%s' (%s)"
-#: rerere.c:482
+#: rerere.c:482 builtin/gc.c:2263 builtin/gc.c:2298
#, c-format
msgid "failed to flush '%s'"
msgstr ""
-#: rerere.c:487 rerere.c:1023
+#: rerere.c:487 rerere.c:1024
#, c-format
msgid "could not parse conflict hunks in '%s'"
-msgstr "incapaz analisar pedaços conflituosos em '%s'"
+msgstr "incapaz processar pedaços de conflito em '%s'"
-#: rerere.c:668
+#: rerere.c:669
#, c-format
msgid "failed utime() on '%s'"
-msgstr ""
+msgstr "falhou utime() em '%s'"
-#: rerere.c:678
+#: rerere.c:679
#, c-format
msgid "writing '%s' failed"
-msgstr ""
+msgstr "escrita de '%s' falhou"
-#: rerere.c:698
+#: rerere.c:699
#, c-format
msgid "Staged '%s' using previous resolution."
-msgstr ""
+msgstr "Encenei '%s' usando resolução anterior."
-#: rerere.c:737
+#: rerere.c:738
#, c-format
msgid "Recorded resolution for '%s'."
-msgstr ""
+msgstr "Guardei resolução para '%s'."
-#: rerere.c:772
+#: rerere.c:773
#, c-format
msgid "Resolved '%s' using previous resolution."
-msgstr ""
+msgstr "Resolvi '%s' usando resolução anterior."
-#: rerere.c:787
+#: rerere.c:788
#, c-format
msgid "cannot unlink stray '%s'"
-msgstr "incapaz deslinkar o perdido '%s'"
+msgstr "incapaz unlink o perdido '%s'"
-#: rerere.c:791
+#: rerere.c:792
#, c-format
msgid "Recorded preimage for '%s'"
-msgstr ""
+msgstr "Guardei pré-imagem para '%s'"
-#: rerere.c:865 submodule.c:2076 builtin/log.c:2002
-#: builtin/submodule--helper.c:1805 builtin/submodule--helper.c:1848
+#: rerere.c:866 submodule.c:2290 builtin/log.c:2042
+#: builtin/submodule--helper.c:1786 builtin/submodule--helper.c:1833
#, c-format
msgid "could not create directory '%s'"
msgstr "incapaz criar pasta '%s'"
-#: rerere.c:1041
+#: rerere.c:1042
#, c-format
msgid "failed to update conflicted state in '%s'"
msgstr "falhou atualizar estado conflituoso em '%s'"
-#: rerere.c:1052 rerere.c:1059
+#: rerere.c:1053 rerere.c:1060
#, c-format
msgid "no remembered resolution for '%s'"
-msgstr "a faltar a lembrança da solução para '%s'"
+msgstr "a faltar a lembrança da resolução para '%s'"
-#: rerere.c:1061
+#: rerere.c:1062
#, c-format
msgid "cannot unlink '%s'"
-msgstr "incapaz de deslinkar '%s'"
+msgstr "incapaz de unlink '%s'"
-#: rerere.c:1071
+#: rerere.c:1072
#, c-format
msgid "Updated preimage for '%s'"
-msgstr ""
+msgstr "Actualizei pré-imagem para '%s'"
-#: rerere.c:1080
+#: rerere.c:1081
#, c-format
msgid "Forgot resolution for '%s'\n"
-msgstr "Está esquecida resolução para '%s'\n"
+msgstr "Esqueci resolução para '%s'\n"
-#: rerere.c:1191
+#: rerere.c:1192
msgid "unable to open rr-cache directory"
msgstr "incapaz abrir pasta rr-cache"
-#: reset.c:42
+#: reset.c:112
msgid "could not determine HEAD revision"
msgstr "incapaz determinar revisão de HEAD"
-#: reset.c:69 reset.c:75 sequencer.c:3689
+#: reset.c:141 reset.c:147 sequencer.c:3696
#, c-format
msgid "failed to find tree of %s"
msgstr "falhou encontrar árvore de %s"
-#: revision.c:2344
+#: revision.c:2358
msgid "--unpacked=<packfile> no longer supported"
-msgstr ""
+msgstr "--unpacked=<ficheiro-pacote> insustentado"
-#: revision.c:2684
+#: revision.c:2712
msgid "your current branch appears to be broken"
-msgstr "o ramo atual parece estar danificado"
+msgstr "teu ramo atual parece estar danificado"
-#: revision.c:2687
+#: revision.c:2715
#, c-format
msgid "your current branch '%s' does not have any commits yet"
-msgstr "teu ramo atual '%s' ainda contém commits nenhuns"
+msgstr "teu ramo atual '%s' tem memórias nenhumas, por enquanto"
-#: revision.c:2893
-msgid "-L does not yet support diff formats besides -p and -s"
+#: revision.c:2901
+msgid "object filtering requires --objects"
msgstr ""
-#: run-command.c:766
-msgid "open /dev/null failed"
-msgstr "abrir /dev/null falhou"
+#: revision.c:2918
+msgid "-L does not yet support diff formats besides -p and -s"
+msgstr "-L apenas sustenta formatos diff com -p ou -s"
-#: run-command.c:1274
+#: run-command.c:1262
#, c-format
msgid "cannot create async thread: %s"
-msgstr "incapaz criar thread assíncrona: %s"
-
-#: run-command.c:1344
-#, c-format
-msgid ""
-"The '%s' hook was ignored because it's not set as executable.\n"
-"You can disable this warning with `git config advice.ignoredHook false`."
-msgstr ""
+msgstr "incapaz criar fio assíncrono: %s"
#: send-pack.c:150
msgid "unexpected flush packet while reading remote unpack status"
-msgstr "flush de pacotes inesperado enquanto lendo unpack status remoto"
+msgstr "pacote flush inesperado enquanto lendo status dê descompactação remoto"
#: send-pack.c:152
#, c-format
msgid "unable to parse remote unpack status: %s"
-msgstr "incapaz analisar unpack status remota: %s"
+msgstr "incapaz processar status de descompactação remota: %s"
#: send-pack.c:154
#, c-format
@@ -7425,193 +7814,222 @@ msgstr "descompactação remota falhou: %s"
#: send-pack.c:378
msgid "failed to sign the push certificate"
-msgstr "falha ao assinar o certificado de publicação"
+msgstr "falha ao assinar o certificado de atiro"
-#: send-pack.c:433
+#: send-pack.c:435
msgid "send-pack: unable to fork off fetch subprocess"
-msgstr "send-pack: incapaz de fazer fork a subprocesso buscar"
+msgstr "send-pack: incapaz de forquear subprocesso buscar"
-#: send-pack.c:455
+#: send-pack.c:457
msgid "push negotiation failed; proceeding anyway with push"
-msgstr ""
+msgstr "falhou negociação de atiro; mesmo assim continuando com atiro"
-#: send-pack.c:526
+#: send-pack.c:528
msgid "the receiving end does not support this repository's hash algorithm"
-msgstr "o recetor insustenta algoritmo hash deste repositório"
+msgstr "o lado receptor insustenta algoritmo hash deste repositório"
-#: send-pack.c:535
+#: send-pack.c:537
msgid "the receiving end does not support --signed push"
msgstr "o lado receptor insustenta atiro com --signed"
-#: send-pack.c:537
+#: send-pack.c:539
msgid ""
"not sending a push certificate since the receiving end does not support --"
"signed push"
msgstr ""
-"certificado de atiro por enviar uma vez que o recetor insustenta atirocom --"
-"signed"
+"certificado de atiro por enviar uma vez que o lado receptor insustenta atiro "
+"com --signed"
-#: send-pack.c:544
+#: send-pack.c:546
msgid "the receiving end does not support --atomic push"
msgstr "o lado receptor insustenta atiro com --atomic"
-#: send-pack.c:549
+#: send-pack.c:551
msgid "the receiving end does not support push options"
-msgstr "o recetor insustenta opções de atiro"
+msgstr "o lado receptor insustenta opções de atiro"
-#: sequencer.c:196
+#: sequencer.c:197
#, c-format
msgid "invalid commit message cleanup mode '%s'"
-msgstr "mensagem de memória de modo de limpeza inválida '%s'"
+msgstr "mensagem de memória de modo de limpeza '%s' inválida"
-#: sequencer.c:324
+#: sequencer.c:325
#, c-format
msgid "could not delete '%s'"
msgstr "incapaz de apagar '%s'"
-#: sequencer.c:344 builtin/rebase.c:757 builtin/rebase.c:1592 builtin/rm.c:402
+#: sequencer.c:345 sequencer.c:4724 builtin/rebase.c:564 builtin/rebase.c:1326
+#: builtin/rm.c:409
#, c-format
msgid "could not remove '%s'"
msgstr "incapaz remover '%s'"
-#: sequencer.c:354
+#: sequencer.c:355
msgid "revert"
msgstr "reverter"
-#: sequencer.c:356
+#: sequencer.c:357
msgid "cherry-pick"
-msgstr "cherry-pick"
+msgstr "apanha"
-#: sequencer.c:358
+#: sequencer.c:359
msgid "rebase"
-msgstr "rebase -i"
+msgstr "rebase"
-#: sequencer.c:360
+#: sequencer.c:361
#, c-format
msgid "unknown action: %d"
-msgstr "Ação desconhecida: %d"
+msgstr "ação desconhecida: %d"
-#: sequencer.c:419
+#: sequencer.c:420
msgid ""
"after resolving the conflicts, mark the corrected paths\n"
"with 'git add <paths>' or 'git rm <paths>'"
msgstr ""
-"depois de resolver os conflitos, marque os caminhos corrigidos\n"
+"depois de resolver os conflitos, marca os caminhos corrigidos\n"
"com 'git add <caminhos>' ou 'git rm <caminhos>'"
-#: sequencer.c:422
+#: sequencer.c:423
msgid ""
-"after resolving the conflicts, mark the corrected paths\n"
-"with 'git add <paths>' or 'git rm <paths>'\n"
-"and commit the result with 'git commit'"
+"After resolving the conflicts, mark them with\n"
+"\"git add/rm <pathspec>\", then run\n"
+"\"git cherry-pick --continue\".\n"
+"You can instead skip this commit with \"git cherry-pick --skip\".\n"
+"To abort and get back to the state before \"git cherry-pick\",\n"
+"run \"git cherry-pick --abort\"."
msgstr ""
-"depois de resolver os conflitos, marque os caminhos corrigidos\n"
-"com 'git add <caminhos>' ou 'git rm <caminhos>'\n"
-"e submeta o resultado com 'git commit'"
+"Depois de resolver os conflitos, marca-os com\n"
+"\"git add/rm <espetro-caminho>\", depois executa\n"
+"\"git cherry-pick --continue\".\n"
+"Podes invés saltar esta memória com \"git cherry-pick --skip\".\n"
+"Para abortar e voltar ao estado anterior a \"git cherry-pick\",\n"
+"executa \"git cherry-pick --abort\"."
-#: sequencer.c:435 sequencer.c:3271
+#: sequencer.c:430
+msgid ""
+"After resolving the conflicts, mark them with\n"
+"\"git add/rm <pathspec>\", then run\n"
+"\"git revert --continue\".\n"
+"You can instead skip this commit with \"git revert --skip\".\n"
+"To abort and get back to the state before \"git revert\",\n"
+"run \"git revert --abort\"."
+msgstr ""
+"Depois de resolver os conflitos, marca-os com\n"
+"\"git add/rm <espetro-caminho>\", depois executa\n"
+"\"git revert --continue\".\n"
+"Podes invés saltar esta memória com \"git revert --skip\".\n"
+"Para abortar e voltar ao estado anterior a \"git revert\",\n"
+"executa \"git revert --abort\"."
+
+#: sequencer.c:448 sequencer.c:3288
#, c-format
msgid "could not lock '%s'"
-msgstr "incapaz bloquear '%s'"
+msgstr "incapaz trancar '%s'"
-#: sequencer.c:437 sequencer.c:3070 sequencer.c:3275 sequencer.c:3289
-#: sequencer.c:3547 sequencer.c:5566 strbuf.c:1170 wrapper.c:631
+#: sequencer.c:450 sequencer.c:3087 sequencer.c:3292 sequencer.c:3306
+#: sequencer.c:3557 sequencer.c:5591 strbuf.c:1189 wrapper.c:715
#, c-format
msgid "could not write to '%s'"
msgstr "incapaz escrever em '%s'"
-#: sequencer.c:442
+#: sequencer.c:455
#, c-format
msgid "could not write eol to '%s'"
-msgstr "incapaz escrever fim de linha em '%s'"
+msgstr "incapaz escrever eol em '%s'"
-#: sequencer.c:447 sequencer.c:3075 sequencer.c:3277 sequencer.c:3291
-#: sequencer.c:3555
+#: sequencer.c:460 sequencer.c:3092 sequencer.c:3294 sequencer.c:3308
+#: sequencer.c:3565
#, c-format
msgid "failed to finalize '%s'"
-msgstr "falha ao finalizar '%s'."
+msgstr "falhou finalizar '%s'"
-#: sequencer.c:486
+#: sequencer.c:473 sequencer.c:1930 sequencer.c:3112 sequencer.c:3547
+#: sequencer.c:3675 builtin/am.c:290 builtin/commit.c:837 builtin/merge.c:1154
+#, c-format
+msgid "could not read '%s'"
+msgstr "incapaz ler '%s'"
+
+#: sequencer.c:499
#, c-format
msgid "your local changes would be overwritten by %s."
-msgstr "as suas alterações locais serão substituídas ao %s."
+msgstr "tuas alterações locais serão sobrescritas ao %s."
-#: sequencer.c:490
+#: sequencer.c:503
msgid "commit your changes or stash them to proceed."
-msgstr "submeta ou esconda as suas alterações para continuar."
+msgstr "memoriza tuas alterações ou esconde-as para continuar."
-#: sequencer.c:522
+#: sequencer.c:535
#, c-format
msgid "%s: fast-forward"
-msgstr "%s: avanço rápido"
+msgstr "%s: avanço"
-#: sequencer.c:561 builtin/tag.c:609
+#: sequencer.c:574 builtin/tag.c:615
#, c-format
msgid "Invalid cleanup mode %s"
-msgstr "Modo de limpeza inválido %s"
+msgstr "Modo de limpeza %s inválido"
#. TRANSLATORS: %s will be "revert", "cherry-pick" or
#. "rebase".
#.
-#: sequencer.c:671
+#: sequencer.c:685
#, c-format
msgid "%s: Unable to write new index file"
-msgstr "%s: Incapaz de escrever novo ficheiro index"
+msgstr "%s: Incapaz de escrever novo ficheiro de cenário"
-#: sequencer.c:685
+#: sequencer.c:699
msgid "unable to update cache tree"
msgstr "incapaz atualizar árvore de cenário"
-#: sequencer.c:699
+#: sequencer.c:713
msgid "could not resolve HEAD commit"
msgstr "incapaz resolver memória HEAD"
-#: sequencer.c:779
+#: sequencer.c:793
#, c-format
msgid "no key present in '%.*s'"
-msgstr ""
+msgstr "nenhuma chave presente em '%.*s'"
-#: sequencer.c:790
+#: sequencer.c:804
#, c-format
msgid "unable to dequote value of '%s'"
-msgstr "incapaz retirar valor, da citação '%s'"
+msgstr "incapaz retirar citação de valor de '%s'"
-#: sequencer.c:827 wrapper.c:201 wrapper.c:371 builtin/am.c:729
-#: builtin/am.c:821 builtin/merge.c:1141 builtin/rebase.c:910
+#: sequencer.c:841 wrapper.c:219 wrapper.c:389 builtin/am.c:757
+#: builtin/am.c:849 builtin/rebase.c:699
#, c-format
msgid "could not open '%s' for reading"
msgstr "incapaz abrir '%s' para leitura"
-#: sequencer.c:837
+#: sequencer.c:851
msgid "'GIT_AUTHOR_NAME' already given"
-msgstr ""
+msgstr "'GIT_AUTHOR_NAME' já foi dado"
-#: sequencer.c:842
+#: sequencer.c:856
msgid "'GIT_AUTHOR_EMAIL' already given"
-msgstr ""
+msgstr "'GIT_AUTHOR_EMAIL' já foi dado"
-#: sequencer.c:847
+#: sequencer.c:861
msgid "'GIT_AUTHOR_DATE' already given"
-msgstr ""
+msgstr "'GIT_AUTHOR_DATE' já foi dado"
-#: sequencer.c:851
+#: sequencer.c:865
#, c-format
msgid "unknown variable '%s'"
-msgstr ""
+msgstr "variável '%s' desconhecida"
-#: sequencer.c:856
+#: sequencer.c:870
msgid "missing 'GIT_AUTHOR_NAME'"
-msgstr ""
+msgstr "faltando 'GIT_AUTHOR_NAME'"
-#: sequencer.c:858
+#: sequencer.c:872
msgid "missing 'GIT_AUTHOR_EMAIL'"
-msgstr ""
+msgstr "faltando 'GIT_AUTHOR_EMAIL'"
-#: sequencer.c:860
+#: sequencer.c:874
msgid "missing 'GIT_AUTHOR_DATE'"
-msgstr ""
+msgstr "faltando 'GIT_AUTHOR_DATE'"
-#: sequencer.c:925
+#: sequencer.c:939
#, c-format
msgid ""
"you have staged changes in your working tree\n"
@@ -7627,24 +8045,24 @@ msgid ""
"\n"
" git rebase --continue\n"
msgstr ""
-"tem alterações preparadas na árvore de trabalho\n"
-"Se tenciona esmagar estas alterações no commit anterior, execute:\n"
+"tens alterações encenadas na tua árvore-trabalho\n"
+"Se tencionas esmagar estas alterações para a memória anterior, executa:\n"
"\n"
" git commit --amend %s\n"
"\n"
-"Se tenciona pô-las num novo commit, execute:\n"
+"Se tencionas pô-las numa nova memória, executa:\n"
"\n"
" git commit %s\n"
"\n"
-"Em ambos os casos, quando estiver pronto, continue com:\n"
+"Em ambos os casos, quando estiver pronto, continua com:\n"
"\n"
" git rebase --continue\n"
-#: sequencer.c:1212
+#: sequencer.c:1225
msgid "'prepare-commit-msg' hook failed"
-msgstr ""
+msgstr "gancho 'prepare-commit-msg' falhou"
-#: sequencer.c:1218
+#: sequencer.c:1231
msgid ""
"Your name and email address were configured automatically based\n"
"on your username and hostname. Please check that they are accurate.\n"
@@ -7658,19 +8076,20 @@ msgid ""
"\n"
" git commit --amend --reset-author\n"
msgstr ""
-"O seu nome e endereço de e-mail foram configurados automaticamente com base\n"
-"no seu nome de utilizador e nome de máquina. Verifique se estão corretos.\n"
-"Pode suprimir esta mensagem configurando-os explicitamente. Execute\n"
-"o seguinte comando e siga as instruções no editor para editar\n"
+"Teu nome e endereço de email foram configurados automaticamente com base\n"
+"no teu nome de utilizador e nome de máquina. Por favor, verifica se estão\n"
+"corretos.\n"
+"Podes suprimir esta mensagem configurando-os explicitamente. Executa\n"
+"o comando seguinte e segue as instruções no editor para editar\n"
"o ficheiro de configuração:\n"
"\n"
" git config --global --edit\n"
"\n"
-"Após fazer isto, pode corrigir a identidade usada neste commit com:\n"
+"Após fazer isto, podes corrigir a identidade usada nesta memória com:\n"
"\n"
" git commit --amend --reset-author\n"
-#: sequencer.c:1231
+#: sequencer.c:1244
msgid ""
"Your name and email address were configured automatically based\n"
"on your username and hostname. Please check that they are accurate.\n"
@@ -7683,370 +8102,374 @@ msgid ""
"\n"
" git commit --amend --reset-author\n"
msgstr ""
-"O seu nome e endereço de e-mail foram configurados automaticamente com base\n"
-"no seu nome de utilizador e nome de máquina. Verifique se estão corretos.\n"
-"Pode suprimir esta mensagem configurando-os explicitamente:\n"
+"Teu nome e endereço de email foram configurados automaticamente com base\n"
+"no teu nome de utilizador e nome de máquina. Por favor, verifica se estão\n"
+"corretos.\n"
+"Podes suprimir esta mensagem configurando-os explicitamente:\n"
"\n"
-" git config --global user.name \"O Seu Nome\"\n"
-" git config --global user.email utilizador@exemplo.com\n"
+" git config --global user.name \"Meu Nome\"\n"
+" git config --global user.email eu@exemplo.com\n"
"\n"
-"Após fazer isto, pode corrigir a identidade usada neste commit com:\n"
+"Após fazer isto, podes corrigir a identidade usada nesta memória com:\n"
"\n"
" git commit --amend --reset-author\n"
-#: sequencer.c:1273
+#: sequencer.c:1287
msgid "couldn't look up newly created commit"
msgstr "incapaz consultar memória recém-criada"
-#: sequencer.c:1275
+#: sequencer.c:1289
msgid "could not parse newly created commit"
-msgstr "incapaz analisar memória recém-criada"
+msgstr "incapaz processar memória recém-criada"
-#: sequencer.c:1321
+#: sequencer.c:1336
msgid "unable to resolve HEAD after creating commit"
msgstr "incapaz resolver HEAD após criar memória"
-#: sequencer.c:1323
+#: sequencer.c:1338
msgid "detached HEAD"
-msgstr "HEAD destacada"
+msgstr "HEAD desanexada"
-#: sequencer.c:1327
+#: sequencer.c:1342
msgid " (root-commit)"
-msgstr " (commit-raiz)"
+msgstr " (memória-raiz)"
-#: sequencer.c:1348
+#: sequencer.c:1363
msgid "could not parse HEAD"
msgstr "incapaz processar HEAD"
-#: sequencer.c:1350
+#: sequencer.c:1365
#, c-format
msgid "HEAD %s is not a commit!"
-msgstr "HEAD %s é commit nenhum!"
+msgstr "HEAD %s é memória nenhuma!"
-#: sequencer.c:1354 sequencer.c:1432 builtin/commit.c:1705
+#: sequencer.c:1369 sequencer.c:1447 builtin/commit.c:1707
msgid "could not parse HEAD commit"
-msgstr "incapaz analisar commit HEAD"
+msgstr "incapaz processar memória HEAD"
-#: sequencer.c:1410 sequencer.c:2295
+#: sequencer.c:1425 sequencer.c:2310
msgid "unable to parse commit author"
-msgstr "incapaz processar autor de commit"
+msgstr "incapaz processar autor de memória"
-#: sequencer.c:1421 builtin/am.c:1615 builtin/merge.c:707
+#: sequencer.c:1436 builtin/am.c:1644 builtin/merge.c:710
msgid "git write-tree failed to write a tree"
-msgstr ""
+msgstr "git write-tree falhou a escrever uma árvore"
-#: sequencer.c:1454 sequencer.c:1574
+#: sequencer.c:1469 sequencer.c:1589
#, c-format
msgid "unable to read commit message from '%s'"
-msgstr "incapaz ler mensagem de commit de '%s'"
+msgstr "incapaz ler mensagem de memória de '%s'"
-#: sequencer.c:1485 sequencer.c:1517
+#: sequencer.c:1500 sequencer.c:1532
#, c-format
msgid "invalid author identity '%s'"
-msgstr ""
+msgstr "identidade de autor '%s' inválida"
-#: sequencer.c:1491
+#: sequencer.c:1506
msgid "corrupt author: missing date information"
-msgstr ""
+msgstr "author rompido: faltando informação de data"
-#: sequencer.c:1530 builtin/am.c:1642 builtin/commit.c:1819 builtin/merge.c:910
-#: builtin/merge.c:935 t/helper/test-fast-rebase.c:78
+#: sequencer.c:1545 builtin/am.c:1671 builtin/commit.c:1821 builtin/merge.c:921
+#: builtin/merge.c:946 t/helper/test-fast-rebase.c:78
msgid "failed to write commit object"
-msgstr ""
+msgstr "falhou escrever objeto de memória"
-#: sequencer.c:1557 sequencer.c:4492 t/helper/test-fast-rebase.c:199
+#: sequencer.c:1572 sequencer.c:4496 t/helper/test-fast-rebase.c:199
#: t/helper/test-fast-rebase.c:217
#, c-format
msgid "could not update %s"
msgstr "incapaz atualizar %s"
-#: sequencer.c:1606
+#: sequencer.c:1621
#, c-format
msgid "could not parse commit %s"
-msgstr "incapaz processar commit %s"
+msgstr "incapaz processar memória %s"
-#: sequencer.c:1611
+#: sequencer.c:1626
#, c-format
msgid "could not parse parent commit %s"
-msgstr "incapaz processar commit parente %s"
+msgstr "incapaz processar memória parente %s"
-#: sequencer.c:1694 sequencer.c:1975
+#: sequencer.c:1709 sequencer.c:1990
#, c-format
msgid "unknown command: %d"
msgstr "comando desconhecido: %d"
-#: sequencer.c:1736 git-rebase--preserve-merges.sh:486
+#: sequencer.c:1751
msgid "This is the 1st commit message:"
-msgstr "Esta é a 1ª mensagem de commit:"
+msgstr "Esta é a 1ª mensagem de memória:"
-#: sequencer.c:1737
+#: sequencer.c:1752
#, c-format
msgid "This is the commit message #%d:"
-msgstr "Esta é a mensagem de commit nº%d:"
+msgstr "Esta é a mensagem de memória #%d:"
-#: sequencer.c:1738
+#: sequencer.c:1753
msgid "The 1st commit message will be skipped:"
-msgstr "A 1ª mensagem de commit será ignorada:"
+msgstr "A 1ª mensagem de memória será saltada:"
-#: sequencer.c:1739
+#: sequencer.c:1754
#, c-format
msgid "The commit message #%d will be skipped:"
-msgstr "A mensagem de commit #%d será ignorada:"
+msgstr "A mensagem de memória #%d será saltada:"
-#: sequencer.c:1740
+#: sequencer.c:1755
#, c-format
msgid "This is a combination of %d commits."
-msgstr "Isto é a combinação de %d commits."
+msgstr "Isto é a combinação de %d memórias."
-#: sequencer.c:1887 sequencer.c:1944
+#: sequencer.c:1902 sequencer.c:1959
#, c-format
msgid "cannot write '%s'"
msgstr "incapaz escrever '%s'"
-#: sequencer.c:1934
+#: sequencer.c:1949
msgid "need a HEAD to fixup"
-msgstr "necessária uma HEAD para fixup"
+msgstr "necessário uma HEAD para consertar"
-#: sequencer.c:1936 sequencer.c:3582
+#: sequencer.c:1951 sequencer.c:3592
msgid "could not read HEAD"
msgstr "incapaz ler HEAD"
-#: sequencer.c:1938
+#: sequencer.c:1953
msgid "could not read HEAD's commit message"
-msgstr "incapaz ler mensagem de commit de HEAD"
+msgstr "incapaz ler mensagem de memória de HEAD"
-#: sequencer.c:1962
+#: sequencer.c:1977
#, c-format
msgid "could not read commit message of %s"
-msgstr "incapaz ler mensagem de commit de %s"
+msgstr "incapaz ler mensagem de memória de %s"
-#: sequencer.c:2072
+#: sequencer.c:2087
msgid "your index file is unmerged."
-msgstr "teu ficheiro índex está por juntar."
+msgstr "teu ficheiro de cenário está por juntar."
-#: sequencer.c:2079
+#: sequencer.c:2094
msgid "cannot fixup root commit"
-msgstr "incapaz consertar commit raíz"
+msgstr "incapaz consertar memória-raiz"
-#: sequencer.c:2098
+#: sequencer.c:2113
#, c-format
msgid "commit %s is a merge but no -m option was given."
-msgstr "commit %s é uma junção mas foi fornecido opção -m nenhuma."
+msgstr "memória %s é uma junção mas foi fornecida opção -m nenhuma."
-#: sequencer.c:2106 sequencer.c:2114
+#: sequencer.c:2121 sequencer.c:2129
#, c-format
msgid "commit %s does not have parent %d"
-msgstr "commit %s tem parente %d nenhum"
+msgstr "memória %s tem parente %d nenhum"
-#: sequencer.c:2120
+#: sequencer.c:2135
#, c-format
msgid "cannot get commit message for %s"
-msgstr "incapaz obter mensagem de commit para %s"
+msgstr "incapaz obter mensagem de memória para %s"
#. TRANSLATORS: The first %s will be a "todo" command like
#. "revert" or "pick", the second %s a SHA1.
-#: sequencer.c:2139
+#: sequencer.c:2154
#, c-format
msgid "%s: cannot parse parent commit %s"
-msgstr "%s: incapaz processar commit parente %s"
+msgstr "%s: incapaz processar memória parente %s"
-#: sequencer.c:2205
+#: sequencer.c:2220
#, c-format
msgid "could not rename '%s' to '%s'"
msgstr "incapaz renomear '%s' para '%s'"
-#: sequencer.c:2265
+#: sequencer.c:2280
#, c-format
msgid "could not revert %s... %s"
msgstr "incapaz reverter %s... %s"
-#: sequencer.c:2266
+#: sequencer.c:2281
#, c-format
msgid "could not apply %s... %s"
msgstr "incapaz aplicar %s... %s"
-#: sequencer.c:2287
+#: sequencer.c:2302
#, c-format
msgid "dropping %s %s -- patch contents already upstream\n"
-msgstr ""
+msgstr "largando %s %s -- conteúdo de remendo já em upstream\n"
-#: sequencer.c:2345
+#: sequencer.c:2360
#, c-format
msgid "git %s: failed to read the index"
msgstr "git %s: ler cenário falhou"
-#: sequencer.c:2352
+#: sequencer.c:2368
#, c-format
msgid "git %s: failed to refresh the index"
msgstr "git %s: falha ao atualizar o cenário"
-#: sequencer.c:2425
+#: sequencer.c:2448
#, c-format
msgid "%s does not accept arguments: '%s'"
msgstr "%s rejeita argumentos: '%s'"
-#: sequencer.c:2434
+#: sequencer.c:2457
#, c-format
msgid "missing arguments for %s"
-msgstr ""
+msgstr "faltando argumentos para %s"
-#: sequencer.c:2477
+#: sequencer.c:2500
#, c-format
msgid "could not parse '%s'"
msgstr "incapaz processar '%s'"
-#: sequencer.c:2538
+#: sequencer.c:2561
#, c-format
msgid "invalid line %d: %.*s"
msgstr "linha %d inválida: %.*s"
-#: sequencer.c:2549
+#: sequencer.c:2572
#, c-format
msgid "cannot '%s' without a previous commit"
-msgstr "incapaz '%s' sem um commit anterior"
+msgstr "incapaz '%s' sem uma memória anterior"
-#: sequencer.c:2635
+#: sequencer.c:2620 builtin/rebase.c:185
+#, c-format
+msgid "could not read '%s'."
+msgstr "incapaz ler '%s'."
+
+#: sequencer.c:2658
msgid "cancelling a cherry picking in progress"
-msgstr "cancelando um cherry picking em curso"
+msgstr "cancelando uma apanha em curso"
-#: sequencer.c:2644
+#: sequencer.c:2667
msgid "cancelling a revert in progress"
msgstr "cancelando uma reversão em curso"
-#: sequencer.c:2690
+#: sequencer.c:2707
msgid "please fix this using 'git rebase --edit-todo'."
-msgstr "corrija-o usando 'git rebase --edit-todo'."
+msgstr "por favor, conserta-o usando 'git rebase --edit-todo'."
-#: sequencer.c:2692
+#: sequencer.c:2709
#, c-format
msgid "unusable instruction sheet: '%s'"
msgstr "folha de instruções inutilizável: '%s'"
-#: sequencer.c:2697
+#: sequencer.c:2714
msgid "no commits parsed."
-msgstr "commits nenhuns analisados."
+msgstr "memórias nenhumas processadas."
-#: sequencer.c:2708
+#: sequencer.c:2725
msgid "cannot cherry-pick during a revert."
msgstr "incapaz apanhar durante uma reversão."
-#: sequencer.c:2710
+#: sequencer.c:2727
msgid "cannot revert during a cherry-pick."
msgstr "incapaz reverter durante uma apanha."
-#: sequencer.c:2788
-#, c-format
-msgid "invalid value for %s: %s"
-msgstr "valor inválido para %s: %s"
-
-#: sequencer.c:2897
+#: sequencer.c:2914
msgid "unusable squash-onto"
-msgstr ""
+msgstr "esmagar-sobre inutilizável"
-#: sequencer.c:2917
+#: sequencer.c:2934
#, c-format
msgid "malformed options sheet: '%s'"
msgstr "folha de opções malformada: '%s'"
-#: sequencer.c:3012 sequencer.c:4868
+#: sequencer.c:3029 sequencer.c:4875
msgid "empty commit set passed"
-msgstr "o conjunto de commits especificado está vazio"
+msgstr "passou conjunto de memórias vazias"
-#: sequencer.c:3029
+#: sequencer.c:3046
msgid "revert is already in progress"
msgstr "reversão já está em curso"
-#: sequencer.c:3031
+#: sequencer.c:3048
#, c-format
msgid "try \"git revert (--continue | %s--abort | --quit)\""
msgstr "tenta \"git revert (--continue | %s--abort | --quit)\""
-#: sequencer.c:3034
+#: sequencer.c:3051
msgid "cherry-pick is already in progress"
-msgstr "a apanha já está em curso"
+msgstr "apanha já está em curso"
-#: sequencer.c:3036
+#: sequencer.c:3053
#, c-format
msgid "try \"git cherry-pick (--continue | %s--abort | --quit)\""
msgstr "tenta \"git cherry-pick (--continue | %s--abort | --quit)\""
-#: sequencer.c:3050
+#: sequencer.c:3067
#, c-format
msgid "could not create sequencer directory '%s'"
-msgstr "incapaz criar pasta do sequenciador '%s'"
+msgstr "incapaz criar pasta de sequenciador '%s'"
-#: sequencer.c:3065
+#: sequencer.c:3082
msgid "could not lock HEAD"
-msgstr "incapaz bloquear HEAD"
+msgstr "incapaz trancar HEAD"
-#: sequencer.c:3125 sequencer.c:4581
+#: sequencer.c:3142 sequencer.c:4585
msgid "no cherry-pick or revert in progress"
-msgstr "sem cherry-pick ou revert em curso"
+msgstr "em curso nenhuma apanha e nenhuma reversão"
-#: sequencer.c:3127 sequencer.c:3138
+#: sequencer.c:3144 sequencer.c:3155
msgid "cannot resolve HEAD"
msgstr "incapaz resolver HEAD"
-#: sequencer.c:3129 sequencer.c:3173
+#: sequencer.c:3146 sequencer.c:3190
msgid "cannot abort from a branch yet to be born"
msgstr "incapaz abortar de um ramo ainda por nascer"
-#: sequencer.c:3159 builtin/grep.c:758
+#: sequencer.c:3176 builtin/fetch.c:1030 builtin/fetch.c:1457
+#: builtin/grep.c:774
#, c-format
msgid "cannot open '%s'"
msgstr "incapaz abrir '%s'"
-#: sequencer.c:3161
+#: sequencer.c:3178
#, c-format
msgid "cannot read '%s': %s"
msgstr "incapaz ler '%s': %s"
-#: sequencer.c:3162
+#: sequencer.c:3179
msgid "unexpected end of file"
-msgstr ""
+msgstr "fim de ficheiro inesperado"
-#: sequencer.c:3168
+#: sequencer.c:3185
#, c-format
msgid "stored pre-cherry-pick HEAD file '%s' is corrupt"
-msgstr "o ficheiro HEAD de pre-cherry-pick '%s' está corrompido"
+msgstr "ficheiro HEAD guardado de pre-cherry-pick '%s' está rompido"
-#: sequencer.c:3179
+#: sequencer.c:3196
msgid "You seem to have moved HEAD. Not rewinding, check your HEAD!"
-msgstr "Parece que moveste a HEAD. Recusando rebobinar, verifique a tua HEAD!"
+msgstr "Parece que moveste a HEAD. Recusando rebobinar, verifica a tua HEAD!"
-#: sequencer.c:3220
+#: sequencer.c:3237
msgid "no revert in progress"
msgstr "em curso reversão nenhuma"
-#: sequencer.c:3229
+#: sequencer.c:3246
msgid "no cherry-pick in progress"
-msgstr "cherry-pick nenhum em curso"
+msgstr "em curso apanha nenhuma"
-#: sequencer.c:3239
+#: sequencer.c:3256
msgid "failed to skip the commit"
-msgstr ""
+msgstr "falhou saltar memória"
-#: sequencer.c:3246
+#: sequencer.c:3263
msgid "there is nothing to skip"
-msgstr ""
+msgstr "há nada a saltar"
-#: sequencer.c:3249
+#: sequencer.c:3266
#, c-format
msgid ""
"have you committed already?\n"
"try \"git %s --continue\""
msgstr ""
+"já memorizaste?\n"
+"tenta \"git %s --continue\""
-#: sequencer.c:3411 sequencer.c:4472
+#: sequencer.c:3428 sequencer.c:4476
msgid "cannot read HEAD"
msgstr "incapaz ler HEAD"
-#: sequencer.c:3428
+#: sequencer.c:3445
#, c-format
msgid "unable to copy '%s' to '%s'"
msgstr "incapaz copiar '%s' para '%s'"
-#: sequencer.c:3436
+#: sequencer.c:3453
#, c-format
msgid ""
"You can amend the commit now, with\n"
@@ -8057,35 +8480,35 @@ msgid ""
"\n"
" git rebase --continue\n"
msgstr ""
-"Pode emendar o commit agora, com\n"
+"Podes emendar a memória agora, com\n"
"\n"
" git commit --amend %s\n"
"\n"
-"Assim que estiver satisfeito com as alterações, execute\n"
+"Assim que estiveres satisfeito com as tuas alterações, executa\n"
"\n"
" git rebase --continue\n"
-#: sequencer.c:3446
+#: sequencer.c:3463
#, c-format
msgid "Could not apply %s... %.*s"
msgstr "Incapaz aplicar %s... %.*s"
-#: sequencer.c:3453
+#: sequencer.c:3470
#, c-format
msgid "Could not merge %.*s"
msgstr "Incapaz juntar %.*s"
-#: sequencer.c:3467 sequencer.c:3471 builtin/difftool.c:644
+#: sequencer.c:3484 sequencer.c:3488 builtin/difftool.c:633
#, c-format
msgid "could not copy '%s' to '%s'"
msgstr "incapaz copiar '%s' para '%s'"
-#: sequencer.c:3483
+#: sequencer.c:3499
#, c-format
msgid "Executing: %s\n"
-msgstr "A executar: %s\n"
+msgstr "Executando: %s\n"
-#: sequencer.c:3498
+#: sequencer.c:3510
#, c-format
msgid ""
"execution failed: %s\n"
@@ -8095,16 +8518,16 @@ msgid ""
"\n"
msgstr ""
"a execução falhou: %s\n"
-"%sPode corrigir o problema e executar\n"
+"%sPode corrigir o problema, e depois executar\n"
"\n"
" git rebase --continue\n"
"\n"
-#: sequencer.c:3504
+#: sequencer.c:3516
msgid "and made changes to the index and/or the working tree\n"
msgstr "e fiz alterações ao cenário e/ou à árvore-trabalho\n"
-#: sequencer.c:3510
+#: sequencer.c:3522
#, c-format
msgid ""
"execution succeeded: %s\n"
@@ -8114,97 +8537,97 @@ msgid ""
" git rebase --continue\n"
"\n"
msgstr ""
-"Executado com sucesso: %s\n"
-"mas deixou alterações no índice e/ou na árvore de trabalho\n"
-"Submeta ou esconda as alterações e execute\n"
+"executado com sucesso: %s\n"
+"mas ficaram alterações no cenário e/ou na árvore-trabalho\n"
+"Memoriza ou esconde tuas alterações, e depois executa\n"
"\n"
" git rebase --continue\n"
"\n"
-#: sequencer.c:3572
+#: sequencer.c:3582
#, c-format
msgid "illegal label name: '%.*s'"
msgstr "nome de rótulo ilegal: '%.*s'"
-#: sequencer.c:3645
+#: sequencer.c:3655
msgid "writing fake root commit"
-msgstr "escrevendo commit de raíz falso"
+msgstr "escrevendo memória de raiz falsa"
-#: sequencer.c:3650
+#: sequencer.c:3660
msgid "writing squash-onto"
-msgstr ""
+msgstr "escrevendo esmagar-sobre"
-#: sequencer.c:3734
+#: sequencer.c:3739
#, c-format
msgid "could not resolve '%s'"
msgstr "incapaz resolver '%s'"
-#: sequencer.c:3767
+#: sequencer.c:3771
msgid "cannot merge without a current revision"
-msgstr "incapaz juntar sem uma revisão currente"
+msgstr "apenas pode juntar com uma revisão atual"
-#: sequencer.c:3789
+#: sequencer.c:3793
#, c-format
msgid "unable to parse '%.*s'"
msgstr "incapaz processar '%.*s'"
-#: sequencer.c:3798
+#: sequencer.c:3802
#, c-format
msgid "nothing to merge: '%.*s'"
msgstr "nada a juntar: '%.*s'"
-#: sequencer.c:3810
+#: sequencer.c:3814
msgid "octopus merge cannot be executed on top of a [new root]"
-msgstr ""
+msgstr "incapaz de executar junção polvinho em cima de [nova raiz]"
-#: sequencer.c:3826
+#: sequencer.c:3869
#, c-format
msgid "could not get commit message of '%s'"
-msgstr "incapaz obter mensagem de commit de '%s'"
+msgstr "incapaz obter mensagem de memória de '%s'"
-#: sequencer.c:4009
+#: sequencer.c:4013
#, c-format
msgid "could not even attempt to merge '%.*s'"
-msgstr "incapaz de tentar juntar '%.*s'"
+msgstr "também fui incapaz de juntar '%.*s'"
-#: sequencer.c:4025
+#: sequencer.c:4029
msgid "merge: Unable to write new index file"
-msgstr "merge: Incapaz de escrever novo ficheiro index"
+msgstr "merge: Incapaz de escrever novo ficheiro de cenário"
-#: sequencer.c:4099
+#: sequencer.c:4110
msgid "Cannot autostash"
-msgstr "Incapaz de arrumar automaticamente (autostash)"
+msgstr "Incapaz de esconder automaticamente (autostash)"
-#: sequencer.c:4102
+#: sequencer.c:4113
#, c-format
msgid "Unexpected stash response: '%s'"
-msgstr "Resposta de squash inexperada: '%s'"
+msgstr "Resposta de esconder inesperada: '%s'"
-#: sequencer.c:4108
+#: sequencer.c:4119
#, c-format
msgid "Could not create directory for '%s'"
-msgstr "Incapaz de criar a pasta para '%s'"
+msgstr "Incapaz de criar pasta para '%s'"
-#: sequencer.c:4111
+#: sequencer.c:4122
#, c-format
msgid "Created autostash: %s\n"
msgstr "Criado autostash: %s\n"
-#: sequencer.c:4115
+#: sequencer.c:4124
msgid "could not reset --hard"
msgstr "incapaz restabelecer com --hard"
-#: sequencer.c:4140
+#: sequencer.c:4148
#, c-format
msgid "Applied autostash.\n"
msgstr "Autostash aplicado.\n"
-#: sequencer.c:4152
+#: sequencer.c:4160
#, c-format
msgid "cannot store %s"
msgstr "incapaz guardar %s"
-#: sequencer.c:4155
+#: sequencer.c:4163
#, c-format
msgid ""
"%s\n"
@@ -8212,32 +8635,32 @@ msgid ""
"You can run \"git stash pop\" or \"git stash drop\" at any time.\n"
msgstr ""
"%s\n"
-"As suas alterações estão guardadas na pilha.\n"
-"Pode executar \"git stash pop\" ou \"git stash drop\" oportunamente.\n"
+"Tuas alterações estão seguras no esconderijo.\n"
+"Podes executar \"git stash pop\" ou \"git stash drop\" quando quiseres.\n"
-#: sequencer.c:4160
+#: sequencer.c:4168
msgid "Applying autostash resulted in conflicts."
-msgstr "Patch aplicado a '%s' com conflitos."
+msgstr "Aplicando autostash resultou em conflitos."
-#: sequencer.c:4161
+#: sequencer.c:4169
msgid "Autostash exists; creating a new stash entry."
-msgstr ""
+msgstr "Existe autostash; criando uma nova entrada de esconderijo."
-#: sequencer.c:4233 git-rebase--preserve-merges.sh:769
+#: sequencer.c:4225
msgid "could not detach HEAD"
msgstr "incapaz desanexar HEAD"
-#: sequencer.c:4248
+#: sequencer.c:4240
#, c-format
msgid "Stopped at HEAD\n"
-msgstr "Parou no HEAD\n"
+msgstr "Parou em HEAD\n"
-#: sequencer.c:4250
+#: sequencer.c:4242
#, c-format
msgid "Stopped at %s\n"
msgstr "Parou em %s\n"
-#: sequencer.c:4258
+#: sequencer.c:4274
#, c-format
msgid ""
"Could not execute the todo command\n"
@@ -8250,146 +8673,157 @@ msgid ""
" git rebase --continue\n"
msgstr ""
-#: sequencer.c:4304
+#: sequencer.c:4320
#, c-format
msgid "Rebasing (%d/%d)%s"
msgstr ""
-#: sequencer.c:4350
+#: sequencer.c:4366
#, c-format
msgid "Stopped at %s... %.*s\n"
msgstr "Parou no %s... %.*s\n"
-#: sequencer.c:4421
+#: sequencer.c:4436
#, c-format
msgid "unknown command %d"
msgstr "comando desconhecido %d"
-#: sequencer.c:4480
+#: sequencer.c:4484
msgid "could not read orig-head"
msgstr "incapaz ler orig-head"
-#: sequencer.c:4485
+#: sequencer.c:4489
msgid "could not read 'onto'"
msgstr "incapaz ler 'onto'"
-#: sequencer.c:4499
+#: sequencer.c:4503
#, c-format
msgid "could not update HEAD to %s"
msgstr "incapaz atualizar HEAD para %s"
-#: sequencer.c:4559
+#: sequencer.c:4563
#, c-format
msgid "Successfully rebased and updated %s.\n"
msgstr "O %s foi rebaseado e atualizado com sucesso.\n"
-#: sequencer.c:4611
+#: sequencer.c:4615
msgid "cannot rebase: You have unstaged changes."
-msgstr "incapaz rebasear: tem alterações despreparadas."
+msgstr "incapaz rebasear: tem alterações desencenadas."
-#: sequencer.c:4620
+#: sequencer.c:4624
msgid "cannot amend non-existing commit"
-msgstr "incapaz emendar commit inexistente"
+msgstr "incapaz emendar memória inexistente"
-#: sequencer.c:4622
+#: sequencer.c:4626
#, c-format
msgid "invalid file: '%s'"
msgstr ""
-#: sequencer.c:4624
+#: sequencer.c:4628
#, c-format
msgid "invalid contents: '%s'"
msgstr "conteúdo inválido: '%s'"
-#: sequencer.c:4627
+#: sequencer.c:4631
msgid ""
"\n"
"You have uncommitted changes in your working tree. Please, commit them\n"
"first and then run 'git rebase --continue' again."
msgstr ""
"\n"
-"Tem alterações por submeter na árvore de trabalho. Submeta-as primeiro\n"
-"e execute 'git rebase --continue' de novo."
+"Tens alterações por memorizar na tua árvore-trabalho. Por favor, memoriza-"
+"as\n"
+"primeiro e executa 'git rebase --continue' de novo."
-#: sequencer.c:4663 sequencer.c:4702
+#: sequencer.c:4667 sequencer.c:4706
#, c-format
msgid "could not write file: '%s'"
msgstr "incapaz escrever ficheiro: '%s'"
-#: sequencer.c:4718
+#: sequencer.c:4722
msgid "could not remove CHERRY_PICK_HEAD"
msgstr "incapaz remover CHERRY_PICK_HEAD"
-#: sequencer.c:4725
+#: sequencer.c:4732
msgid "could not commit staged changes."
-msgstr "incapaz commit alterações preparadas."
+msgstr "incapaz memorizar alterações encenadas."
-#: sequencer.c:4845
+#: sequencer.c:4852
#, c-format
msgid "%s: can't cherry-pick a %s"
msgstr "%s: incapaz apanhar um %s"
-#: sequencer.c:4849
+#: sequencer.c:4856
#, c-format
msgid "%s: bad revision"
msgstr "%s: revisão incorreta"
-#: sequencer.c:4884
+#: sequencer.c:4891
msgid "can't revert as initial commit"
-msgstr "incapaz reverter como commit inicial"
+msgstr "incapaz reverter como memória inicial"
+
+#: sequencer.c:5162 sequencer.c:5391
+#, c-format
+msgid "skipped previously applied commit %s"
+msgstr "saltei memória previamente aplicada %s"
+
+#: sequencer.c:5232 sequencer.c:5407
+msgid "use --reapply-cherry-picks to include skipped commits"
+msgstr ""
-#: sequencer.c:5361
+#: sequencer.c:5378
msgid "make_script: unhandled options"
msgstr ""
-#: sequencer.c:5364
+#: sequencer.c:5381
msgid "make_script: error preparing revisions"
msgstr ""
-#: sequencer.c:5614 sequencer.c:5631
+#: sequencer.c:5639 sequencer.c:5656
msgid "nothing to do"
msgstr "nada a fazer"
-#: sequencer.c:5650
+#: sequencer.c:5675
msgid "could not skip unnecessary pick commands"
msgstr "incapaz de saltar comandos pick desnecessários"
-#: sequencer.c:5750
+#: sequencer.c:5775
msgid "the script was already rearranged."
msgstr ""
-#: setup.c:133
+#: setup.c:135
#, c-format
msgid "'%s' is outside repository at '%s'"
msgstr "%s está fora do repositório em '%s'"
-#: setup.c:185
+#: setup.c:187
#, c-format
msgid ""
"%s: no such path in the working tree.\n"
"Use 'git <command> -- <path>...' to specify paths that do not exist locally."
msgstr ""
-"%s: sem tal path na working tree.\n"
-"Use 'git <comando> -- <path>...' para especificar caminhos inexistentes "
+"%s: sem tal caminho na working tree.\n"
+"Usa 'git <comando> -- <path>...' para especificar caminhos inexistentes "
"localmente."
-#: setup.c:198
+#: setup.c:200
#, c-format
msgid ""
"ambiguous argument '%s': unknown revision or path not in the working tree.\n"
"Use '--' to separate paths from revisions, like this:\n"
"'git <command> [<revision>...] -- [<file>...]'"
msgstr ""
-"argumento ambíguo '%s': revisão desconhecida ou path fora da working tree.\n"
-"Usa '--' para separar paths de revisões, assim:\n"
+"argumento ambíguo '%s': revisão desconhecida ou caminho fora de árvore-"
+"trabalho.\n"
+"Usa '--' para separar caminhos das revisões, assim:\n"
"'git <comando> [<revisão>...] -- [<ficheiro>...]'"
-#: setup.c:264
+#: setup.c:266
#, c-format
msgid "option '%s' must come before non-option arguments"
msgstr "opção '%s' tem de vir antes argumentos diferentes de opção"
-#: setup.c:283
+#: setup.c:285
#, c-format
msgid ""
"ambiguous argument '%s': both revision and filename\n"
@@ -8397,113 +8831,122 @@ msgid ""
"'git <command> [<revision>...] -- [<file>...]'"
msgstr ""
"argumento ambíguo '%s': revisão e nome de ficheiro\n"
-"Use '--' para separar caminhos de revisões, assim:\n"
+"Usa '--' para separar caminhos de revisões, assim:\n"
"'git <comando> [<revisão>...] -- [<ficheiro>...]'"
-#: setup.c:419
+#: setup.c:421
msgid "unable to set up work tree using invalid config"
-msgstr "incapaz preparar work tree usando config inválido"
+msgstr "incapaz preparar árvore-trabalho usando config inválida"
-#: setup.c:423 builtin/rev-parse.c:895
+#: setup.c:425 builtin/rev-parse.c:895
msgid "this operation must be run in a work tree"
msgstr ""
-#: setup.c:658
+#: setup.c:724
#, c-format
msgid "Expected git repo version <= %d, found %d"
msgstr "Esperava versão do repositório git <= %d, encontrei %d"
-#: setup.c:666
+#: setup.c:732
msgid "unknown repository extension found:"
msgid_plural "unknown repository extensions found:"
msgstr[0] "extensão de repositório desconhecida encontrada:"
msgstr[1] "extensões de repositório desconhecidas encontradas:"
-#: setup.c:680
+#: setup.c:746
msgid "repo version is 0, but v1-only extension found:"
msgid_plural "repo version is 0, but v1-only extensions found:"
msgstr[0] "versão de repo é 0, mas encontrou-se extensão vi-only:"
msgstr[1] "versão de repo é 0, mas encontrou-se extensões vi-only:"
-#: setup.c:701
+#: setup.c:767
#, c-format
msgid "error opening '%s'"
msgstr ""
-#: setup.c:703
+#: setup.c:769
#, c-format
msgid "too large to be a .git file: '%s'"
msgstr "demasiado grande para ser um ficheiro .git: '%s'"
-#: setup.c:705
+#: setup.c:771
#, c-format
msgid "error reading %s"
msgstr "erro lendo %s"
-#: setup.c:707
+#: setup.c:773
#, c-format
msgid "invalid gitfile format: %s"
msgstr "formato de ficheiro-git inválido: %s"
-#: setup.c:709
+#: setup.c:775
#, c-format
msgid "no path in gitfile: %s"
msgstr "ficheiro-git sem caminho: %s"
-#: setup.c:711
+#: setup.c:777
#, c-format
msgid "not a git repository: %s"
msgstr "é repositório git nenhum: %s"
-#: setup.c:813
+#: setup.c:879
#, c-format
msgid "'$%s' too big"
msgstr ""
-#: setup.c:827
+#: setup.c:893
#, c-format
msgid "not a git repository: '%s'"
msgstr "é repositório git nenhum: '%s'"
-#: setup.c:856 setup.c:858 setup.c:889
+#: setup.c:922 setup.c:924 setup.c:955
#, c-format
msgid "cannot chdir to '%s'"
msgstr "incapaz chdir para '%s'"
-#: setup.c:861 setup.c:917 setup.c:927 setup.c:966 setup.c:974
+#: setup.c:927 setup.c:983 setup.c:993 setup.c:1032 setup.c:1040
msgid "cannot come back to cwd"
msgstr "incapaz de voltar para cwd"
-#: setup.c:988
+#: setup.c:1054
#, c-format
msgid "failed to stat '%*s%s%s'"
msgstr ""
-#: setup.c:1231
+#: setup.c:1338
msgid "Unable to read current working directory"
-msgstr "Incapaz de ler pasta atual de trabalho"
+msgstr "Incapaz de ler pasta-trabalho atual"
-#: setup.c:1240 setup.c:1246
+#: setup.c:1347 setup.c:1353
#, c-format
msgid "cannot change to '%s'"
msgstr "incapaz mudar para '%s'"
-#: setup.c:1251
+#: setup.c:1358
#, c-format
msgid "not a git repository (or any of the parent directories): %s"
-msgstr "é repositório git nenhum (ou qualquer pastas parente): %s"
+msgstr "é repositório git nenhum (ou qualquer pasta parente): %s"
-#: setup.c:1257
+#: setup.c:1364
#, 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 ""
-"é repositório git nenhum (ou em pai nenhum até ao ponto de montagem %s)\n"
+"é repositório git nenhum (ou em nenhum parente até ao ponto de montagem %s)\n"
"Parando na fronteira do sistema de ficheiros "
"(GIT_DISCOVERY_ACROSS_FILESYSTEM indefinido)."
-#: setup.c:1381
+#: setup.c:1374
+#, c-format
+msgid ""
+"unsafe repository ('%s' is owned by someone else)\n"
+"To add an exception for this directory, call:\n"
+"\n"
+"\tgit config --global --add safe.directory %s"
+msgstr ""
+
+#: setup.c:1502
#, c-format
msgid ""
"problem with core.sharedRepository filemode value (0%.3o).\n"
@@ -8512,69 +8955,61 @@ msgstr ""
"Problema com o valor core.sharedRepository modo de ficheiro (0%.3o).\n"
"O dono dos ficheiros tem de ter sempre permissões de leitura e escrita."
-#: setup.c:1430
-msgid "open /dev/null or dup failed"
-msgstr "abrir /dev/null ou dup falhou"
-
-#: setup.c:1445
+#: setup.c:1564
msgid "fork failed"
-msgstr "falha ao invocar fseek"
+msgstr "falhou forqueadura"
-#: setup.c:1450 t/helper/test-simple-ipc.c:285
+#: setup.c:1569
msgid "setsid failed"
msgstr ""
-#: sparse-index.c:162
-msgid "attempting to use sparse-index without cone mode"
-msgstr ""
-
-#: sparse-index.c:176
-msgid "unable to update cache-tree, staying full"
-msgstr "incapaz atualizar árvore-cenário, mantendo-a cheia"
-
-#: sparse-index.c:263
+#: sparse-index.c:285
#, c-format
msgid "index entry is a directory, but not sparse (%08x)"
msgstr ""
+#: split-index.c:9
+msgid "cannot use split index with a sparse index"
+msgstr "incapaz usar cenário dividido com um cenário disperso"
+
#. TRANSLATORS: IEC 80000-13:2008 gibibyte
-#: strbuf.c:850
+#: strbuf.c:851
#, c-format
msgid "%u.%2.2u GiB"
msgstr ""
#. TRANSLATORS: IEC 80000-13:2008 gibibyte/second
-#: strbuf.c:852
+#: strbuf.c:853
#, c-format
msgid "%u.%2.2u GiB/s"
msgstr ""
#. TRANSLATORS: IEC 80000-13:2008 mebibyte
-#: strbuf.c:860
+#: strbuf.c:861
#, c-format
msgid "%u.%2.2u MiB"
msgstr ""
#. TRANSLATORS: IEC 80000-13:2008 mebibyte/second
-#: strbuf.c:862
+#: strbuf.c:863
#, c-format
msgid "%u.%2.2u MiB/s"
msgstr ""
#. TRANSLATORS: IEC 80000-13:2008 kibibyte
-#: strbuf.c:869
+#: strbuf.c:870
#, c-format
msgid "%u.%2.2u KiB"
msgstr ""
#. TRANSLATORS: IEC 80000-13:2008 kibibyte/second
-#: strbuf.c:871
+#: strbuf.c:872
#, c-format
msgid "%u.%2.2u KiB/s"
msgstr ""
#. TRANSLATORS: IEC 80000-13:2008 byte
-#: strbuf.c:877
+#: strbuf.c:878
#, c-format
msgid "%u byte"
msgid_plural "%u bytes"
@@ -8582,133 +9017,144 @@ msgstr[0] "%u byte"
msgstr[1] "%u bytes"
#. TRANSLATORS: IEC 80000-13:2008 byte/second
-#: strbuf.c:879
+#: strbuf.c:880
#, c-format
msgid "%u byte/s"
msgid_plural "%u bytes/s"
msgstr[0] "%u byte/s"
msgstr[1] "%u bytes/s"
-#: strbuf.c:1168 wrapper.c:199 wrapper.c:369 builtin/am.c:738
-#: builtin/rebase.c:866
+#: strbuf.c:1187 wrapper.c:217 wrapper.c:387 builtin/am.c:766
+#: builtin/rebase.c:653
#, c-format
msgid "could not open '%s' for writing"
msgstr "incapaz abrir '%s' para escrita"
-#: strbuf.c:1177
+#: strbuf.c:1196
#, c-format
msgid "could not edit '%s'"
msgstr "incapaz editar '%s'"
-#: submodule-config.c:237
+#: submodule-config.c:238
#, c-format
msgid "ignoring suspicious submodule name: %s"
msgstr "ignorando nome suspeito de submódulo: %s"
-#: submodule-config.c:304
+#: submodule-config.c:305
msgid "negative values not allowed for submodule.fetchjobs"
msgstr "é proíbido valores negativos para submodule.fetchjobs"
-#: submodule-config.c:402
+#: submodule-config.c:403
#, c-format
msgid "ignoring '%s' which may be interpreted as a command-line option: %s"
msgstr ""
-#: submodule-config.c:499
+#: submodule-config.c:500 builtin/push.c:489 builtin/send-pack.c:148
#, c-format
-msgid "invalid value for %s"
-msgstr ""
+msgid "invalid value for '%s'"
+msgstr "valor inválido para '%s'"
-#: submodule-config.c:766
+#: submodule-config.c:828
#, c-format
msgid "Could not update .gitmodules entry %s"
msgstr "Incapaz de atualizar entrada %s de .gitmodules"
-#: submodule.c:114 submodule.c:143
+#: submodule.c:115 submodule.c:144
msgid "Cannot change unmerged .gitmodules, resolve merge conflicts first"
msgstr ""
-"Incapaz de alterar .gitmodules por juntar, resolve primeiro os conflitos de junção"
+"Incapaz de alterar .gitmodules por juntar, resolve primeiro os conflitos de "
+"junção"
-#: submodule.c:118 submodule.c:147
+#: submodule.c:119 submodule.c:148
#, c-format
msgid "Could not find section in .gitmodules where path=%s"
msgstr "Secção de .gitmodules cujo path=%s por encontrar"
-#: submodule.c:154
+#: submodule.c:155
#, c-format
msgid "Could not remove .gitmodules entry for %s"
msgstr "Incapaz de remover a entrada %s de .gitmodules"
-#: submodule.c:165
+#: submodule.c:166
msgid "staging updated .gitmodules failed"
msgstr "encenação atualizada .gitmodules falhou"
-#: submodule.c:328
+#: submodule.c:346
#, c-format
msgid "in unpopulated submodule '%s'"
msgstr "em submódulo despopulado '%s'"
-#: submodule.c:359
+#: submodule.c:377
#, c-format
msgid "Pathspec '%s' is in submodule '%.*s'"
msgstr "Espetro-caminho '%s' está no submódulo '%.*s'"
-#: submodule.c:436
+#: submodule.c:454
#, c-format
msgid "bad --ignore-submodules argument: %s"
msgstr ""
-#: submodule.c:805
+#: submodule.c:866
#, c-format
msgid ""
"Submodule in commit %s at path: '%s' collides with a submodule named the "
"same. Skipping it."
msgstr ""
-#: submodule.c:908
+#: submodule.c:987
#, c-format
msgid "submodule entry '%s' (%s) is a %s, not a commit"
-msgstr "entrada submódulo '%s' (%s) é um(a) %s, não um commit"
+msgstr "entrada submódulo '%s' (%s) é um(a) %s, não uma memória"
-#: submodule.c:993
+#: submodule.c:1069
#, c-format
msgid ""
"Could not run 'git rev-list <commits> --not --remotes -n 1' command in "
"submodule %s"
msgstr ""
-"Incapaz executar comando 'git rev-list <commits> --not --remotes -n 1' "
-"emsubmódulo %s"
+"Incapaz executar comando 'git rev-list <memórias> --not --remotes -n 1' em "
+"submódulo %s"
-#: submodule.c:1116
+#: submodule.c:1192
#, c-format
msgid "process for submodule '%s' failed"
msgstr "processo para submódulo '%s' falhou"
-#: submodule.c:1145 builtin/branch.c:691 builtin/submodule--helper.c:2486
+#: submodule.c:1221 builtin/branch.c:714 builtin/submodule--helper.c:2827
msgid "Failed to resolve HEAD as a valid ref."
-msgstr "Falha ao resolver HEAD numa referência válida."
+msgstr "Falhou ao resolver HEAD como uma ref válida."
-#: submodule.c:1156
+#: submodule.c:1232
#, c-format
msgid "Pushing submodule '%s'\n"
msgstr "Atirando submódulo '%s'\n"
-#: submodule.c:1159
+#: submodule.c:1235
#, c-format
msgid "Unable to push submodule '%s'\n"
msgstr "Impossível enviar submódulo '%s'\n"
-#: submodule.c:1451
+#: submodule.c:1567
#, c-format
msgid "Fetching submodule %s%s\n"
msgstr "Buscando submódulo %s%s\n"
-#: submodule.c:1485
+#: submodule.c:1589
#, c-format
msgid "Could not access submodule '%s'\n"
msgstr "Submódulo '%s' inacessível\n"
-#: submodule.c:1640
+#: submodule.c:1618
+#, c-format
+msgid "Could not access submodule '%s' at commit %s\n"
+msgstr "Incapaz de aceder submódulo '%s' em memória %s\n"
+
+#: submodule.c:1629
+#, c-format
+msgid "Fetching submodule %s%s at commit %s\n"
+msgstr "Buscando submódulo %s%s em memória %s\n"
+
+#: submodule.c:1849
#, c-format
msgid ""
"Errors during submodule fetch:\n"
@@ -8717,93 +9163,94 @@ msgstr ""
"Erros na busca do submódulo:\n"
"%s"
-#: submodule.c:1665
+#: submodule.c:1874
#, c-format
msgid "'%s' not recognized as a git repository"
msgstr "'%s' é irreconhecível como um repositório git"
-#: submodule.c:1682
+#: submodule.c:1891
#, c-format
msgid "Could not run 'git status --porcelain=2' in submodule %s"
msgstr "Incapaz executar 'git status --porcelain=2' no submódulo %s"
-#: submodule.c:1723
+#: submodule.c:1932
#, c-format
msgid "'git status --porcelain=2' failed in submodule %s"
msgstr "'git status --porcelain=2' falhou no submódulo %s"
-#: submodule.c:1798
+#: submodule.c:2007
#, c-format
msgid "could not start 'git status' in submodule '%s'"
msgstr "incapaz iniciar 'git status' no submódulo '%s'"
-#: submodule.c:1811
+#: submodule.c:2020
#, c-format
msgid "could not run 'git status' in submodule '%s'"
msgstr "incapaz executar 'git status' no submódulo '%s'"
-#: submodule.c:1826
+#: submodule.c:2037
#, c-format
msgid "Could not unset core.worktree setting in submodule '%s'"
-msgstr "Incapaz de remover a definição core.worktree em submódulo '%s'"
+msgstr "Incapaz de indefinir core.worktree em submódulo '%s'"
-#: submodule.c:1853 submodule.c:2163
+#: submodule.c:2064 submodule.c:2379
#, c-format
msgid "could not recurse into submodule '%s'"
msgstr "incapaz percorrer recursivamente o submódulo '%s'"
-#: submodule.c:1874
+#: submodule.c:2086
msgid "could not reset submodule index"
-msgstr "incapaz repor index de submódulo"
+msgstr "incapaz de restabelecer cenário de submódulo"
-#: submodule.c:1916
+#: submodule.c:2128
#, c-format
msgid "submodule '%s' has dirty index"
-msgstr "o submódulo '%s' tem índice sujo"
+msgstr "submódulo '%s' tem cenário sujo"
-#: submodule.c:1968
+#: submodule.c:2182
#, c-format
msgid "Submodule '%s' could not be updated."
msgstr "Submódulo '%s' incapaz de ser atualizado."
-#: submodule.c:2036
+#: submodule.c:2250
#, c-format
msgid "submodule git dir '%s' is inside git dir '%.*s'"
msgstr ""
-#: submodule.c:2057
+#: submodule.c:2271
#, c-format
msgid ""
"relocate_gitdir for submodule '%s' with more than one worktree not supported"
msgstr ""
-"relocate_gitdir para submodúlo '%s' com mais que uma worktree é insustentado"
+"relocate_gitdir para submódulo '%s' com mais que uma árvore-trabalho é "
+"insustentado"
-#: submodule.c:2069 submodule.c:2128
+#: submodule.c:2283 submodule.c:2343
#, c-format
msgid "could not lookup name for submodule '%s'"
msgstr "incapaz procurar nome para submódulo '%s'"
-#: submodule.c:2073
+#: submodule.c:2287
#, c-format
msgid "refusing to move '%s' into an existing git dir"
msgstr ""
-#: submodule.c:2080
+#: submodule.c:2293
#, c-format
msgid ""
"Migrating git directory of '%s%s' from\n"
"'%s' to\n"
"'%s'\n"
msgstr ""
-"A migrar diretório git de '%s%s' de\n"
+"Migrando pasta git de '%s%s' de\n"
"'%s' para\n"
"'%s'\n"
-#: submodule.c:2208
+#: submodule.c:2424
msgid "could not start ls-files in .."
msgstr "incapaz iniciar ls-files em .."
-#: submodule.c:2248
+#: submodule.c:2464
#, c-format
msgid "ls-tree returned unexpected return code %d"
msgstr "ls-tree retornou código de retorno inesperado %d"
@@ -8824,8 +9271,8 @@ msgstr "falha ao executar o comando trailer '%s'"
msgid "unknown value '%s' for key '%s'"
msgstr "valor desconhecido '%s' para chave '%s'"
-#: trailer.c:547 trailer.c:552 trailer.c:557 builtin/remote.c:299
-#: builtin/remote.c:324
+#: trailer.c:547 trailer.c:552 trailer.c:557 builtin/remote.c:300
+#: builtin/remote.c:328
#, c-format
msgid "more than one %s"
msgstr "mais do que um %s"
@@ -8840,11 +9287,11 @@ msgstr "token terminador vazio no terminador '%.*s'"
msgid "could not read input file '%s'"
msgstr "incapaz ler ficheiro de entrada '%s'"
-#: trailer.c:766 builtin/mktag.c:88 imap-send.c:1577
+#: trailer.c:766 builtin/mktag.c:88 imap-send.c:1563
msgid "could not read from stdin"
msgstr "incapaz ler da entrada padrão"
-#: trailer.c:1024 wrapper.c:676
+#: trailer.c:1024 wrapper.c:760
#, c-format
msgid "could not stat %s"
msgstr "incapaz stat %s"
@@ -8910,7 +9357,7 @@ msgstr "incapaz executar fast-import"
msgid "error while running fast-import"
msgstr ""
-#: transport-helper.c:549 transport-helper.c:1247
+#: transport-helper.c:549 transport-helper.c:1254
#, c-format
msgid "could not read ref %s"
msgstr "incapaz de ler ref %s"
@@ -8928,7 +9375,7 @@ msgstr ""
msgid "invalid remote service path"
msgstr ""
-#: transport-helper.c:661 transport.c:1477
+#: transport-helper.c:661 transport.c:1496
msgid "operation not supported by protocol"
msgstr "opção insustentado pelo protocolo"
@@ -8937,186 +9384,188 @@ msgstr "opção insustentado pelo protocolo"
msgid "can't connect to subservice %s"
msgstr ""
-#: transport-helper.c:693 transport.c:400
+#: transport-helper.c:693 transport.c:415
msgid "--negotiate-only requires protocol v2"
msgstr ""
-#: transport-helper.c:755
+#: transport-helper.c:758
msgid "'option' without a matching 'ok/error' directive"
msgstr ""
-#: transport-helper.c:798
+#: transport-helper.c:801
#, c-format
msgid "expected ok/error, helper said '%s'"
msgstr ""
-#: transport-helper.c:855
+#: transport-helper.c:862
#, c-format
msgid "helper reported unexpected status of %s"
msgstr "helper reportou código de status inesperado de %s"
-#: transport-helper.c:938
+#: transport-helper.c:945
#, c-format
msgid "helper %s does not support dry-run"
msgstr "helper %s insustenta dry-run"
-#: transport-helper.c:941
+#: transport-helper.c:948
#, c-format
msgid "helper %s does not support --signed"
msgstr "helper %s insustenta --signed"
-#: transport-helper.c:944
+#: transport-helper.c:951
#, c-format
msgid "helper %s does not support --signed=if-asked"
msgstr "helper %s insustenta --signed=if-asked"
-#: transport-helper.c:949
+#: transport-helper.c:956
#, c-format
msgid "helper %s does not support --atomic"
msgstr "helper %s insustenta --atomic"
-#: transport-helper.c:953
+#: transport-helper.c:960
#, c-format
msgid "helper %s does not support --%s"
msgstr "helper %s insustenta --%s"
-#: transport-helper.c:960
+#: transport-helper.c:967
#, c-format
msgid "helper %s does not support 'push-option'"
msgstr "helper %s insustenta 'push-option'"
-#: transport-helper.c:1060
+#: transport-helper.c:1067
msgid "remote-helper doesn't support push; refspec needed"
msgstr ""
-#: transport-helper.c:1065
+#: transport-helper.c:1072
#, c-format
msgid "helper %s does not support 'force'"
msgstr "helper %s insustenta 'force'"
-#: transport-helper.c:1112
+#: transport-helper.c:1119
msgid "couldn't run fast-export"
msgstr "incapaz executar fast-export"
-#: transport-helper.c:1117
+#: transport-helper.c:1124
msgid "error while running fast-export"
msgstr ""
-#: transport-helper.c:1142
+#: transport-helper.c:1149
#, c-format
msgid ""
"No refs in common and none specified; doing nothing.\n"
"Perhaps you should specify a branch.\n"
msgstr ""
+"Sem refs em comum e nenhuma especificada; fazendo nada.\n"
+"Talvez devas especificar um ramo.\n"
-#: transport-helper.c:1224
+#: transport-helper.c:1231
#, c-format
msgid "unsupported object format '%s'"
msgstr "formato de objeto '%s' insustentado"
-#: transport-helper.c:1233
+#: transport-helper.c:1240
#, c-format
msgid "malformed response in ref list: %s"
msgstr "resposta em lista de ref malformada: %s"
-#: transport-helper.c:1385
+#: transport-helper.c:1392
#, c-format
msgid "read(%s) failed"
msgstr ""
-#: transport-helper.c:1412
+#: transport-helper.c:1419
#, c-format
msgid "write(%s) failed"
msgstr ""
-#: transport-helper.c:1461
+#: transport-helper.c:1468
#, c-format
msgid "%s thread failed"
msgstr ""
-#: transport-helper.c:1465
+#: transport-helper.c:1472
#, c-format
msgid "%s thread failed to join: %s"
msgstr ""
-#: transport-helper.c:1484 transport-helper.c:1488
+#: transport-helper.c:1491 transport-helper.c:1495
#, c-format
msgid "can't start thread for copying data: %s"
msgstr ""
-#: transport-helper.c:1525
+#: transport-helper.c:1532
#, c-format
msgid "%s process failed to wait"
msgstr ""
-#: transport-helper.c:1529
+#: transport-helper.c:1536
#, c-format
msgid "%s process failed"
msgstr ""
-#: transport-helper.c:1547 transport-helper.c:1556
+#: transport-helper.c:1554 transport-helper.c:1563
msgid "can't start thread for copying data"
msgstr ""
#: transport.c:116
#, c-format
msgid "Would set upstream of '%s' to '%s' of '%s'\n"
-msgstr "Iria definir o ramo a montante de '%s' como '%s' de '%s'\n"
+msgstr "Iria definir upstream de '%s' para '%s' de '%s'\n"
-#: transport.c:145
+#: transport.c:138
#, c-format
msgid "could not read bundle '%s'"
-msgstr "incapaz ler conjunto '%s'"
+msgstr "incapaz ler arquivo-pacote '%s'"
-#: transport.c:223
+#: transport.c:234
#, c-format
msgid "transport: invalid depth option '%s'"
msgstr "transporte: opção de profundidade '%s' inválida"
-#: transport.c:275
+#: transport.c:289
msgid "see protocol.version in 'git help config' for more details"
msgstr ""
-#: transport.c:276
+#: transport.c:290
msgid "server options require protocol version 2 or later"
msgstr ""
-#: transport.c:403
+#: transport.c:418
msgid "server does not support wait-for-done"
msgstr "Servidor insustenta wait-for-done"
-#: transport.c:755
+#: transport.c:770
msgid "could not parse transport.color.* config"
msgstr "incapaz processar config transport.color.*"
-#: transport.c:830
+#: transport.c:845
msgid "support for protocol v2 not implemented yet"
msgstr ""
-#: transport.c:965
+#: transport.c:978
#, c-format
msgid "unknown value for config '%s': %s"
msgstr "valor para config '%s' desconhecido: %s"
-#: transport.c:1031
+#: transport.c:1044
#, c-format
msgid "transport '%s' not allowed"
msgstr "transport '%s' proibido"
-#: transport.c:1084
+#: transport.c:1093
msgid "git-over-rsync is no longer supported"
msgstr ""
-#: transport.c:1187
+#: transport.c:1196
#, c-format
msgid ""
"The following submodule paths contain changes that can\n"
"not be found on any remote:\n"
msgstr ""
-"Os seguintes paths de submódulo contêm alterações que\n"
+"Os seguintes caminhos de submódulo contêm alterações que\n"
"puderam ser encontradas em remoto nenhum:\n"
-#: transport.c:1191
+#: transport.c:1200
#, c-format
msgid ""
"\n"
@@ -9132,22 +9581,22 @@ msgid ""
"\n"
msgstr ""
"\n"
-"Por favor tente\n"
+"Por favor tenta\n"
"\n"
"\tgit push --recurse-submodules=on-demand\n"
"\n"
-"ou cd para o caminho e use\n"
+"ou cd para o caminho e usa\n"
"\n"
"\tgit push\n"
"\n"
-"para publicá-las no remoto.\n"
+"para atirá-los para um remoto.\n"
"\n"
-#: transport.c:1199
+#: transport.c:1208
msgid "Aborting."
msgstr "Abortado."
-#: transport.c:1346
+#: transport.c:1354
msgid "failed to push all needed submodules"
msgstr "falhou ao atirar todos os submódulos necessários"
@@ -9167,197 +9616,215 @@ msgstr "nome de ficheiro vazio na entrada de árvore"
msgid "too-short tree file"
msgstr "ficheiro de árvore demasiado curto"
-#: unpack-trees.c:115
+#: unpack-trees.c:118
#, c-format
msgid ""
"Your local changes to the following files would be overwritten by checkout:\n"
"%%sPlease commit your changes or stash them before you switch branches."
msgstr ""
-"As suas alterações locais nos seguintes ficheiros seriam substituídas ao "
-"extrair:\n"
-"%%sSubmeta as suas alterações ou esconda-as antes de trocar de ramo."
+"Tuas alterações locais nos seguintes ficheiros seriam sobrescritas ao fazer "
+"observação:\n"
+"%%sPor favor, memoriza as tuas alterações ou esconda-as antes de fazer troca "
+"de ramos."
-#: unpack-trees.c:117
+#: unpack-trees.c:120
#, c-format
msgid ""
"Your local changes to the following files would be overwritten by checkout:\n"
"%%s"
msgstr ""
-"As suas alterações locais nos seguintes ficheiros seriam substituídas ao "
-"extrair:\n"
+"Tuas alterações locais nos seguintes ficheiros seriam sobrescritas ao fazer "
+"observação:\n"
"%%s"
-#: unpack-trees.c:120
+#: unpack-trees.c:123
#, c-format
msgid ""
"Your local changes to the following files would be overwritten by merge:\n"
"%%sPlease commit your changes or stash them before you merge."
msgstr ""
-"As suas alterações locais nos seguintes ficheiros seriam substituídas ao "
-"integrar:\n"
-"%%sSubmeta as suas alterações ou esconda-as antes de integrar."
+"Tuas alterações locais nos seguintes ficheiros seriam sobrescritas ao fazer "
+"junção:\n"
+"%%sPor favor, memoriza as tuas alterações ou esconda-as antes de fazer "
+"junção."
-#: unpack-trees.c:122
+#: unpack-trees.c:125
#, c-format
msgid ""
"Your local changes to the following files would be overwritten by merge:\n"
"%%s"
msgstr ""
-"As suas alterações locais nos seguintes ficheiros seriam substituídas ao "
-"integrar:\n"
+"Tuas alterações locais nos seguintes ficheiros seriam sobrescritas ao fazer "
+"junção:\n"
"%%s"
-#: unpack-trees.c:125
+#: unpack-trees.c:128
#, c-format
msgid ""
"Your local changes to the following files would be overwritten by %s:\n"
"%%sPlease commit your changes or stash them before you %s."
msgstr ""
-"As tuas alterações locais aos seguintes ficheiros seriam substituídas por "
+"Tuas alterações locais nos seguintes ficheiros seriam sobrescritas ao fazer "
"%s:\n"
-"%%sPor favor, faz commit ou stash às alterações antes de fazer %s."
+"%%sPor favor, memoriza as tuas alterações ou esconde-as antes de fazer %s."
-#: unpack-trees.c:127
+#: unpack-trees.c:130
#, c-format
msgid ""
"Your local changes to the following files would be overwritten by %s:\n"
"%%s"
msgstr ""
-"As suas alterações locais nos seguintes ficheiros seriam substituídas por "
+"Tuas alterações locais nos seguintes ficheiros seriam sobrescritas ao fazer "
"%s:\n"
"%%s"
-#: unpack-trees.c:132
+#: unpack-trees.c:135
#, c-format
msgid ""
"Updating the following directories would lose untracked files in them:\n"
"%s"
msgstr ""
-"Atualizar as seguintes pastas fará perder os seus ficheiros por seguir:\n"
+"Atualizando as seguintes pastas fará perder seus ficheiros "
+"desmonitorizados:\n"
"%s"
-#: unpack-trees.c:136
+#: unpack-trees.c:138
+#, c-format
+msgid ""
+"Refusing to remove the current working directory:\n"
+"%s"
+msgstr ""
+"Recusando remover a pasta-trabalho actual:\n"
+"%s"
+
+#: unpack-trees.c:142
#, c-format
msgid ""
"The following untracked working tree files would be removed by checkout:\n"
"%%sPlease move or remove them before you switch branches."
msgstr ""
-"Os seguintes ficheiros por seguir da worktree seriam removidos no checkout:\n"
-"%%sPor favor, move ou remove-os antes de trocar de ramos."
+"Os seguintes ficheiros desmonitorizados da árvore-trabalho seriam removidos "
+"ao fazer observação:\n"
+"%%sPor favor, move ou remove-os antes de fazer troca de ramos."
-#: unpack-trees.c:138
+#: unpack-trees.c:144
#, c-format
msgid ""
"The following untracked working tree files would be removed by checkout:\n"
"%%s"
msgstr ""
-"Os seguintes ficheiros por seguir da worktree seriam removidos no checkout:\n"
+"Os seguintes ficheiros desmonitorizados da árvore-trabalho seriam removidos "
+"ao fazer observação:\n"
"%%s"
-#: unpack-trees.c:141
+#: unpack-trees.c:147
#, c-format
msgid ""
"The following untracked working tree files would be removed by merge:\n"
"%%sPlease move or remove them before you merge."
msgstr ""
-"Os seguintes ficheiros por seguir da worktree seriam removidos por uma "
-"junção:\n"
-"%%sPor favor, move ou remove-os antes da junção."
+"Os seguintes ficheiros desmonitorizados da árvore-trabalho seriam removidos "
+"ao fazer junção:\n"
+"%%sPor favor, move ou remove-os antes de fazer junção."
-#: unpack-trees.c:143
+#: unpack-trees.c:149
#, c-format
msgid ""
"The following untracked working tree files would be removed by merge:\n"
"%%s"
msgstr ""
-"Os seguintes ficheiros por seguir da worktree seriam removidos pela junção:\n"
+"Os seguintes ficheiros desmonitorizados da árvore-trabalho seriam removidos "
+"ao fazer junção:\n"
"%%s"
-#: unpack-trees.c:146
+#: unpack-trees.c:152
#, c-format
msgid ""
"The following untracked working tree files would be removed by %s:\n"
"%%sPlease move or remove them before you %s."
msgstr ""
-"Os seguintes ficheiros por seguir da worktree seriam removidos por %s:\n"
+"Os seguintes ficheiros desmonitorizados da árvore-trabalho seriam removidos "
+"ao fazer %s:\n"
"%%sPor favor, move ou remove-os antes de fazer %s."
-#: unpack-trees.c:148
+#: unpack-trees.c:154
#, c-format
msgid ""
"The following untracked working tree files would be removed by %s:\n"
"%%s"
msgstr ""
-"Os seguintes ficheiros por seguir da árvore de trabalho seriam removidos por "
-"%s:\n"
+"Os seguintes ficheiros desmonitorizados da árvore-trabalho seriam removidos "
+"ao fazer %s:\n"
"%%s"
-#: unpack-trees.c:154
+#: unpack-trees.c:160
#, c-format
msgid ""
"The following untracked working tree files would be overwritten by "
"checkout:\n"
"%%sPlease move or remove them before you switch branches."
msgstr ""
-"Os seguintes ficheiros por seguir da árvore de trabalho seriam substituídos "
-"por um checkout:\n"
-"%%sPor favor, move ou remove-os antes de trocar de ramos."
+"Os seguintes ficheiros desmonitorizados da árvore-trabalho seriam "
+"sobrescritos ao observar:\n"
+"%%sPor favor, move ou remove-os antes de fazer troca de ramos."
-#: unpack-trees.c:156
+#: unpack-trees.c:162
#, c-format
msgid ""
"The following untracked working tree files would be overwritten by "
"checkout:\n"
"%%s"
msgstr ""
-"Os seguintes ficheiros por seguir da worktree seriam sobrescritos por "
-"checkout:\n"
+"Os seguintes ficheiros desmonitorizados da árvore-trabalho seriam "
+"sobrescritos ao fazer observação:\n"
"%%s"
-#: unpack-trees.c:159
+#: unpack-trees.c:165
#, c-format
msgid ""
"The following untracked working tree files would be overwritten by merge:\n"
"%%sPlease move or remove them before you merge."
msgstr ""
-"Os seguintes ficheiros por seguir da worktree seriam sobrescritos por "
-"junção:\n"
-"%%sPor favor, move ou remove-os antes de juntares."
+"Os seguintes ficheiros desmonitorizados da árvore-trabalho seriam "
+"sobrescritos ao fazer junção:\n"
+"%%sPor favor, move ou remove-os antes de fazer junção."
-#: unpack-trees.c:161
+#: unpack-trees.c:167
#, c-format
msgid ""
"The following untracked working tree files would be overwritten by merge:\n"
"%%s"
msgstr ""
-"Os seguintes ficheiros por seguir da worktree seriam sobrescritos por "
-"junção:\n"
+"Os seguintes ficheiros desmonitorizados da árvore-trabalho seriam "
+"sobrescritos ao fazer junção:\n"
"%%s"
-#: unpack-trees.c:164
+#: unpack-trees.c:170
#, c-format
msgid ""
"The following untracked working tree files would be overwritten by %s:\n"
"%%sPlease move or remove them before you %s."
msgstr ""
-"Os seguintes ficheiros por seguir da worktree seriam sobrescritos por %s:\n"
+"Os seguintes ficheiros desmonitorizados da árvore-trabalho seriam "
+"sobrescritos ao fazer %s:\n"
"%%sPor favor, move ou remove-os antes de fazer %s."
-#: unpack-trees.c:166
+#: unpack-trees.c:172
#, c-format
msgid ""
"The following untracked working tree files would be overwritten by %s:\n"
"%%s"
msgstr ""
-"Os seguintes ficheiros por seguir da worktree seriam sobrescritos por %s:\n"
+"Os seguintes ficheiros desmonitorizados da árvore-trabalho seriam "
+"sobrescritos ao fazer %s:\n"
"%%s"
-#: unpack-trees.c:174
+#: unpack-trees.c:180
#, c-format
msgid "Entry '%s' overlaps with '%s'. Cannot bind."
msgstr "Entrada '%s' sobrepõe-se a '%s'. Impossível vincular."
-#: unpack-trees.c:177
+#: unpack-trees.c:183
#, c-format
msgid ""
"Cannot update submodule:\n"
@@ -9366,7 +9833,7 @@ msgstr ""
"Impossível atualizar submódulo:\n"
"%s"
-#: unpack-trees.c:180
+#: unpack-trees.c:186
#, c-format
msgid ""
"The following paths are not up to date and were left despite sparse "
@@ -9374,7 +9841,7 @@ msgid ""
"%s"
msgstr ""
-#: unpack-trees.c:182
+#: unpack-trees.c:188
#, c-format
msgid ""
"The following paths are unmerged and were left despite sparse patterns:\n"
@@ -9384,7 +9851,7 @@ msgstr ""
"patterns:\n"
"%s"
-#: unpack-trees.c:184
+#: unpack-trees.c:190
#, c-format
msgid ""
"The following paths were already present and thus not updated despite sparse "
@@ -9392,41 +9859,41 @@ msgid ""
"%s"
msgstr ""
-#: unpack-trees.c:264
+#: unpack-trees.c:270
#, c-format
msgid "Aborting\n"
msgstr "A abortar\n"
-#: unpack-trees.c:291
+#: unpack-trees.c:297
#, c-format
msgid ""
"After fixing the above paths, you may want to run `git sparse-checkout "
"reapply`.\n"
msgstr ""
-#: unpack-trees.c:352
+#: unpack-trees.c:358
msgid "Updating files"
msgstr "Atualizando ficheiros"
-#: unpack-trees.c:384
+#: unpack-trees.c:390
msgid ""
"the following paths have collided (e.g. case-sensitive paths\n"
"on a case-insensitive filesystem) and only one from the same\n"
"colliding group is in the working tree:\n"
msgstr ""
-#: unpack-trees.c:1618
+#: unpack-trees.c:1664
msgid "Updating index flags"
msgstr "Atualizando flags de cenário"
-#: unpack-trees.c:2718
+#: unpack-trees.c:2925
#, c-format
msgid "worktree and untracked commit have duplicate entries: %s"
msgstr ""
-#: upload-pack.c:1548
+#: upload-pack.c:1579
msgid "expected flush after fetch arguments"
-msgstr ""
+msgstr "esperado flush após argumentos de busca"
#: urlmatch.c:163
msgid "invalid URL scheme name or missing '://' suffix"
@@ -9461,119 +9928,144 @@ msgstr "segmento de caminho '..' inválido"
msgid "Fetching objects"
msgstr "Buscando objetos"
-#: worktree.c:236 builtin/am.c:2152
+#: worktree.c:237 builtin/am.c:2210 builtin/bisect--helper.c:156
#, c-format
msgid "failed to read '%s'"
msgstr "falha ao ler '%s'"
-#: worktree.c:303
+#: worktree.c:304
#, c-format
msgid "'%s' at main working tree is not the repository directory"
msgstr ""
-#: worktree.c:314
+#: worktree.c:315
#, c-format
msgid "'%s' file does not contain absolute path to the working tree location"
msgstr ""
-#: worktree.c:326
+#: worktree.c:327
#, c-format
msgid "'%s' does not exist"
msgstr "'%s' é inexistente"
-#: worktree.c:332
+#: worktree.c:333
#, c-format
msgid "'%s' is not a .git file, error code %d"
msgstr "'%s' é ficheiro .git nenhum, código de erro %d"
-#: worktree.c:341
+#: worktree.c:342
#, c-format
msgid "'%s' does not point back to '%s'"
msgstr "'%s' aponta para algo diferente de '%s'"
-#: worktree.c:603
+#: worktree.c:600
msgid "not a directory"
msgstr "é pasta nenhuma"
-#: worktree.c:612
+#: worktree.c:609
msgid ".git is not a file"
msgstr ".git é ficheiro nenhum"
-#: worktree.c:614
+#: worktree.c:611
msgid ".git file broken"
msgstr ""
-#: worktree.c:616
+#: worktree.c:613
msgid ".git file incorrect"
msgstr ""
-#: worktree.c:722
+#: worktree.c:719
msgid "not a valid path"
msgstr ""
-#: worktree.c:728
+#: worktree.c:725
msgid "unable to locate repository; .git is not a file"
msgstr "incapaz localizar repositório; .git é ficheiro nenhum"
-#: worktree.c:732
+#: worktree.c:729
msgid "unable to locate repository; .git file does not reference a repository"
-msgstr "incapaz localizar repositório; ficheiro .git referência repositório nenhum"
+msgstr ""
+"incapaz localizar repositório; ficheiro .git referência repositório nenhum"
-#: worktree.c:736
+#: worktree.c:733
msgid "unable to locate repository; .git file broken"
msgstr "incapaz localizar repositório; ficheiro .git está quebrado"
-#: worktree.c:742
+#: worktree.c:739
msgid "gitdir unreadable"
-msgstr ""
+msgstr "incapaz ler pasta-git"
-#: worktree.c:746
+#: worktree.c:743
msgid "gitdir incorrect"
-msgstr ""
+msgstr "past-git incorreta"
-#: worktree.c:771
+#: worktree.c:768
msgid "not a valid directory"
-msgstr ""
+msgstr "pasta inválida"
-#: worktree.c:777
+#: worktree.c:774
msgid "gitdir file does not exist"
-msgstr "ficheiro gitdir é inexistente"
+msgstr "ficheiro de pasta-git é inexistente"
-#: worktree.c:782 worktree.c:791
+#: worktree.c:779 worktree.c:788
#, c-format
msgid "unable to read gitdir file (%s)"
-msgstr "incapaz ler ficheiro gitdir (%s)"
+msgstr "incapaz ler ficheiro de pasta-git (%s)"
-#: worktree.c:801
+#: worktree.c:798
#, c-format
msgid "short read (expected %<PRIuMAX> bytes, read %<PRIuMAX>)"
msgstr ""
-#: worktree.c:809
+#: worktree.c:806
msgid "invalid gitdir file"
-msgstr "ficheiro gitdir inválido"
+msgstr "ficheiro de pasta-git inválido"
-#: worktree.c:817
+#: worktree.c:814
msgid "gitdir file points to non-existent location"
-msgstr "ficheiro gitdir aponta para localização inexistente"
+msgstr "ficheiro de pasta-git aponta para localização inexistente"
-#: wrapper.c:197 wrapper.c:367
+#: worktree.c:830
+#, c-format
+msgid "unable to set %s in '%s'"
+msgstr "incapaz definir %s em '%s'"
+
+#: worktree.c:832
+#, c-format
+msgid "unable to unset %s in '%s'"
+msgstr "incapaz de indefinir %s em '%s'"
+
+#: worktree.c:852
+msgid "failed to set extensions.worktreeConfig setting"
+msgstr ""
+
+#: wrapper.c:161
+#, c-format
+msgid "could not setenv '%s'"
+msgstr "incapaz setenv '%s'"
+
+#: wrapper.c:213
+#, c-format
+msgid "unable to create '%s'"
+msgstr "incapaz criar '%s'"
+
+#: wrapper.c:215 wrapper.c:385
#, c-format
msgid "could not open '%s' for reading and writing"
msgstr "incapaz abrir '%s' para leitura e escrita"
-#: wrapper.c:398 wrapper.c:599
+#: wrapper.c:416 wrapper.c:683
#, c-format
msgid "unable to access '%s'"
msgstr "incapaz aceder '%s'"
-#: wrapper.c:607
+#: wrapper.c:691
msgid "unable to get current working directory"
-msgstr "incapaz obter pasta atual de trabalho"
+msgstr "incapaz obter pasta-trabalho atual"
#: wt-status.c:158
msgid "Unmerged paths:"
-msgstr "Paths por juntar:"
+msgstr "Caminhos por juntar:"
#: wt-status.c:187 wt-status.c:219
msgid " (use \"git restore --staged <file>...\" to unstage)"
@@ -9582,7 +10074,8 @@ msgstr " (usa \"git restore --staged <ficheiro>...\" para desencenar)"
#: wt-status.c:190 wt-status.c:222
#, c-format
msgid " (use \"git restore --source=%s --staged <file>...\" to unstage)"
-msgstr " (usa \"git restore --source=%s --staged <ficheiro>...\" para desencenar)"
+msgstr ""
+" (usa \"git restore --source=%s --staged <ficheiro>...\" para desencenar)"
#: wt-status.c:193 wt-status.c:225
msgid " (use \"git rm --cached <file>...\" to unstage)"
@@ -9602,13 +10095,13 @@ msgstr ""
msgid " (use \"git rm <file>...\" to mark resolution)"
msgstr " (usa \"git rm <ficheiro>...\" para marcar como resolvido)"
-#: wt-status.c:211 wt-status.c:1125
+#: wt-status.c:211 wt-status.c:1140
msgid "Changes to be committed:"
-msgstr "Alterações para serem submetidas:"
+msgstr "Alterações para serem memorizadas:"
-#: wt-status.c:234 wt-status.c:1134
+#: wt-status.c:234 wt-status.c:1149
msgid "Changes not staged for commit:"
-msgstr "Alterações por preparar para commit:"
+msgstr "Alterações por encenar para memória:"
#: wt-status.c:238
msgid " (use \"git add <file>...\" to update what will be committed)"
@@ -9616,18 +10109,21 @@ msgstr " (usa \"git add <ficheiro>...\" para atualizar o que será memorizado)"
#: wt-status.c:240
msgid " (use \"git add/rm <file>...\" to update what will be committed)"
-msgstr " (usa \"git add/rm <ficheiro>...\" para atualizar o que será memorizado)"
+msgstr ""
+" (usa \"git add/rm <ficheiro>...\" para atualizar o que será memorizado)"
#: wt-status.c:241
msgid ""
" (use \"git restore <file>...\" to discard changes in working directory)"
msgstr ""
-" (usa \"git restore <ficheiro>...\" para descartar alterações da pasta-trabalho)"
+" (usa \"git restore <ficheiro>...\" para descartar alterações da pasta-"
+"trabalho)"
#: wt-status.c:243
msgid " (commit or discard the untracked or modified content in submodules)"
msgstr ""
-" (memoriza ou descarta os desmonitorizados ou o conteúdo modificado de submódulos)"
+" (memoriza ou descarta os desmonitorizados ou o conteúdo modificado de "
+"submódulos)"
#: wt-status.c:254
#, c-format
@@ -9680,7 +10176,7 @@ msgstr "modificado:"
#: wt-status.c:296
msgid "renamed:"
-msgstr "nome mudado:"
+msgstr "renomeado:"
#: wt-status.c:298
msgid "typechange:"
@@ -9696,7 +10192,7 @@ msgstr "por juntar:"
#: wt-status.c:382
msgid "new commits, "
-msgstr "novos commits, "
+msgstr "novas memórias, "
#: wt-status.c:384
msgid "modified content, "
@@ -9704,24 +10200,24 @@ msgstr "conteúdo modificado, "
#: wt-status.c:386
msgid "untracked content, "
-msgstr "conteúdo por seguir, "
+msgstr "conteúdo desmonitorizado, "
-#: wt-status.c:958
+#: wt-status.c:973
#, c-format
msgid "Your stash currently has %d entry"
msgid_plural "Your stash currently has %d entries"
msgstr[0] "Teu esconderijo neste momento tem %d entrada"
msgstr[1] "Teu esconderijo neste momento tem %d entradas"
-#: wt-status.c:989
+#: wt-status.c:1004
msgid "Submodules changed but not updated:"
msgstr "Submódulos alterados mas desatualizados:"
-#: wt-status.c:991
+#: wt-status.c:1006
msgid "Submodule changes to be committed:"
-msgstr "Alterações em submódulos para serem submetidas:"
+msgstr "Alterações em submódulos para serem memorizadas:"
-#: wt-status.c:1073
+#: wt-status.c:1088
msgid ""
"Do not modify or remove the line above.\n"
"Everything below it will be ignored."
@@ -9729,533 +10225,549 @@ msgstr ""
"Deixe estar a linha acima.\n"
"Tudo abaixo será ignorado."
-#: wt-status.c:1165
+#: wt-status.c:1180
#, c-format
msgid ""
"\n"
"It took %.2f seconds to compute the branch ahead/behind values.\n"
"You can use '--no-ahead-behind' to avoid this.\n"
msgstr ""
+"\n"
+"Demorou %.2f segundos para processar os valores à frente e atrás do ramo.\n"
+"Para evitar isto, podes usar '--no-ahead-behind'.\n"
-#: wt-status.c:1195
+#: wt-status.c:1210
msgid "You have unmerged paths."
-msgstr "Tens paths por juntar."
+msgstr "Tens caminhos por juntar."
-#: wt-status.c:1198
+#: wt-status.c:1213
msgid " (fix conflicts and run \"git commit\")"
-msgstr " (corrija os conflitos e execute \"git commit\")"
+msgstr " (corrige conflitos e executa \"git commit\")"
-#: wt-status.c:1200
+#: wt-status.c:1215
msgid " (use \"git merge --abort\" to abort the merge)"
msgstr " (usa \"git merge --abort\" para abortar a junção)"
-#: wt-status.c:1204
+#: wt-status.c:1219
msgid "All conflicts fixed but you are still merging."
-msgstr "Todos os conflitos foram corrigidos mas ainda está a integrar."
+msgstr "Todos os conflitos foram corrigidos mas ainda estás juntando."
-#: wt-status.c:1207
+#: wt-status.c:1222
msgid " (use \"git commit\" to conclude merge)"
msgstr " (usa \"git commit\" para concluir a junção)"
-#: wt-status.c:1216
+#: wt-status.c:1233
msgid "You are in the middle of an am session."
-msgstr "Sessão am em curso."
+msgstr "Estás no meio de uma sessão am."
-#: wt-status.c:1219
+#: wt-status.c:1236
msgid "The current patch is empty."
msgstr "O remendo atual está vazio."
-#: wt-status.c:1223
+#: wt-status.c:1241
msgid " (fix conflicts and then run \"git am --continue\")"
msgstr " (corrige os conflitos e executa \"git am --continue\")"
-#: wt-status.c:1225
+#: wt-status.c:1243
msgid " (use \"git am --skip\" to skip this patch)"
msgstr " (usa \"git am --skip\" para ignorar este remendo)"
-#: wt-status.c:1227
+#: wt-status.c:1246
+msgid ""
+" (use \"git am --allow-empty\" to record this patch as an empty commit)"
+msgstr ""
+" (usa \"git am --allow-empty\" para gravar este remendo como uma memória "
+"vazia)"
+
+#: wt-status.c:1248
msgid " (use \"git am --abort\" to restore the original branch)"
msgstr " (usa \"git am --abort\" para restaurar o ramo original)"
-#: wt-status.c:1360
+#: wt-status.c:1381
msgid "git-rebase-todo is missing."
msgstr "git-rebase-todo está faltando."
-#: wt-status.c:1362
+#: wt-status.c:1383
msgid "No commands done."
msgstr "Comando nenhum concluído."
-#: wt-status.c:1365
+#: wt-status.c:1386
#, c-format
-msgid "Last command done (%d command done):"
-msgid_plural "Last commands done (%d commands done):"
-msgstr[0] "Último comando concluído (%d comando concluído):"
-msgstr[1] "Últimos comandos concluídos (%d comandos concluídos):"
+msgid "Last command done (%<PRIuMAX> command done):"
+msgid_plural "Last commands done (%<PRIuMAX> commands done):"
+msgstr[0] "Último comando concluído (%<PRIuMAX> comando concluído):"
+msgstr[1] "Últimos comandos concluídos (%<PRIuMAX> comandos concluídos):"
-#: wt-status.c:1376
+#: wt-status.c:1397
#, c-format
msgid " (see more in file %s)"
-msgstr " (veja mais no ficheiro %s)"
+msgstr " (vê mais no ficheiro %s)"
-#: wt-status.c:1381
+#: wt-status.c:1402
msgid "No commands remaining."
-msgstr "Nenhum comando por concluir."
+msgstr "Faltando comando nenhum."
-#: wt-status.c:1384
+#: wt-status.c:1405
#, c-format
-msgid "Next command to do (%d remaining command):"
-msgid_plural "Next commands to do (%d remaining commands):"
-msgstr[0] "Próximo comando a executar (%d comando restante):"
-msgstr[1] "Próximos comandos a executar (%d comandos restantes):"
+msgid "Next command to do (%<PRIuMAX> remaining command):"
+msgid_plural "Next commands to do (%<PRIuMAX> remaining commands):"
+msgstr[0] "Próximo comando a executar (%<PRIuMAX> comando restante):"
+msgstr[1] "Próximos comandos a executar (%<PRIuMAX> comandos restantes):"
-#: wt-status.c:1392
+#: wt-status.c:1413
msgid " (use \"git rebase --edit-todo\" to view and edit)"
msgstr " (usa \"git rebase --edit-todo\" para visualizar e editar)"
-#: wt-status.c:1404
+#: wt-status.c:1425
#, c-format
msgid "You are currently rebasing branch '%s' on '%s'."
-msgstr "Está a realizar rebase do ramo '%s' sobre '%s'."
+msgstr "Estás rebaseando ramo '%s' sobre '%s'."
-#: wt-status.c:1409
+#: wt-status.c:1430
msgid "You are currently rebasing."
-msgstr "Está a rebasear neste momento."
+msgstr "Estás rebaseando neste momento."
-#: wt-status.c:1422
+#: wt-status.c:1443
msgid " (fix conflicts and then run \"git rebase --continue\")"
msgstr " (corrige os conflitos e executa \"git rebase --continue\")"
-#: wt-status.c:1424
+#: wt-status.c:1445
msgid " (use \"git rebase --skip\" to skip this patch)"
msgstr " (usa \"git rebase --skip\" para ignorar este remendo)"
-#: wt-status.c:1426
+#: wt-status.c:1447
msgid " (use \"git rebase --abort\" to check out the original branch)"
msgstr " (usa \"git rebase --abort\" para observar o ramo original)"
-#: wt-status.c:1433
+#: wt-status.c:1454
msgid " (all conflicts fixed: run \"git rebase --continue\")"
-msgstr " (todos os conflitos corrigidos: executa \"git rebase --continue\")"
+msgstr " (todos conflitos corrigidos: executa \"git rebase --continue\")"
-#: wt-status.c:1437
+#: wt-status.c:1458
#, c-format
msgid ""
"You are currently splitting a commit while rebasing branch '%s' on '%s'."
-msgstr ""
-"Está a dividir um commit ao mesmo tempo que se efetua rebase do ramo '%s' "
-"sobre '%s'."
+msgstr "Estás dividindo uma memória enquanto rebaseas ramo '%s' sobre '%s'."
-#: wt-status.c:1442
+#: wt-status.c:1463
msgid "You are currently splitting a commit during a rebase."
-msgstr "Está a dividir um commit durante um rebase."
+msgstr "Está dividindo uma memória durante um rebaseamento."
-#: wt-status.c:1445
+#: wt-status.c:1466
msgid " (Once your working directory is clean, run \"git rebase --continue\")"
msgstr ""
-" (Assim que a pasta-trabalho estiver limpa, executa \"git rebase --continue\")"
+" (Assim que a pasta-trabalho estiver limpa, executa \"git rebase --continue"
+"\")"
-#: wt-status.c:1449
+#: wt-status.c:1470
#, c-format
msgid "You are currently editing a commit while rebasing branch '%s' on '%s'."
-msgstr ""
-"Está a editar um commit ao mesmo tempo que efetua rebase do ramo '%s' sobre "
-"'%s'."
+msgstr "Estás a editar uma memória enquanto rebaseas o ramo '%s' sobre '%s'."
-#: wt-status.c:1454
+#: wt-status.c:1475
msgid "You are currently editing a commit during a rebase."
-msgstr "Está a editar um commit durante um rebase."
+msgstr "Está a editar uma memória durante um rebaseamento."
-#: wt-status.c:1457
+#: wt-status.c:1478
msgid " (use \"git commit --amend\" to amend the current commit)"
msgstr " (usa \"git commit --amend\" para emendar a memória atual)"
-#: wt-status.c:1459
+#: wt-status.c:1480
msgid ""
" (use \"git rebase --continue\" once you are satisfied with your changes)"
msgstr ""
-" (use \"git rebase --continue\" assim que estiver satisfeito com as "
+" (usa \"git rebase --continue\" assim que estiveres satisfeito com as tuas "
"alterações)"
-#: wt-status.c:1470
+#: wt-status.c:1491
msgid "Cherry-pick currently in progress."
msgstr "Cherry-pick atualmente em curso"
-#: wt-status.c:1473
+#: wt-status.c:1494
#, c-format
msgid "You are currently cherry-picking commit %s."
-msgstr "Está a realizar cherry-pick do commit %s."
+msgstr "Estás apanhando memória %s."
-#: wt-status.c:1480
+#: wt-status.c:1501
msgid " (fix conflicts and run \"git cherry-pick --continue\")"
msgstr " (corrige conflitos e executa \"git cherry-pick --continue\")"
-#: wt-status.c:1483
+#: wt-status.c:1504
msgid " (run \"git cherry-pick --continue\" to continue)"
msgstr " (executa \"git cherry-pick --continue\" para continuar)"
-#: wt-status.c:1486
+#: wt-status.c:1507
msgid " (all conflicts fixed: run \"git cherry-pick --continue\")"
-msgstr ""
-" (todos conflitos corrigidos: executa \"git cherry-pick --continue\")"
+msgstr " (todos conflitos corrigidos: executa \"git cherry-pick --continue\")"
-#: wt-status.c:1488
+#: wt-status.c:1509
msgid " (use \"git cherry-pick --skip\" to skip this patch)"
-msgstr " (usa \"git cherry-pick --skip\" para ignorar este remendo)"
+msgstr " (usa \"git cherry-pick --skip\" para saltar este remendo)"
-#: wt-status.c:1490
+#: wt-status.c:1511
msgid " (use \"git cherry-pick --abort\" to cancel the cherry-pick operation)"
-msgstr ""
-" (usa \"git cherry-pick --abort\" para cancelar a operação cherry-pick)"
+msgstr " (usa \"git cherry-pick --abort\" para cancelar a operação apanhar)"
-#: wt-status.c:1500
+#: wt-status.c:1521
msgid "Revert currently in progress."
msgstr "Reversão atualmente em curso."
-#: wt-status.c:1503
+#: wt-status.c:1524
#, c-format
msgid "You are currently reverting commit %s."
-msgstr "Está a reverter o commit %s neste comento."
+msgstr "Estás atualmente revertendo memória %s."
-#: wt-status.c:1509
+#: wt-status.c:1530
msgid " (fix conflicts and run \"git revert --continue\")"
msgstr " (corrige os conflitos e executa \"git revert --continue\")"
-#: wt-status.c:1512
+#: wt-status.c:1533
msgid " (run \"git revert --continue\" to continue)"
msgstr " (executa \"git revert --continue\" para continuar)"
-#: wt-status.c:1515
+#: wt-status.c:1536
msgid " (all conflicts fixed: run \"git revert --continue\")"
msgstr " (todos conflitos corrigidos: executa \"git revert --continue\")"
-#: wt-status.c:1517
+#: wt-status.c:1538
msgid " (use \"git revert --skip\" to skip this patch)"
msgstr " (usa \"git revert --skip\" para ignorar este remendo)"
-#: wt-status.c:1519
+#: wt-status.c:1540
msgid " (use \"git revert --abort\" to cancel the revert operation)"
msgstr " (usa \"git revert --abort\" para cancelar a operação de reversão)"
-#: wt-status.c:1529
+#: wt-status.c:1550
#, c-format
msgid "You are currently bisecting, started from branch '%s'."
-msgstr "Está a bissetar, iniciado a partir do ramo '%s'."
+msgstr "Estás bissetando, iniciado no ramo '%s'."
-#: wt-status.c:1533
+#: wt-status.c:1554
msgid "You are currently bisecting."
-msgstr "Estás a bissetar neste momento."
+msgstr "Estás bissetando neste momento."
-#: wt-status.c:1536
+#: wt-status.c:1557
msgid " (use \"git bisect reset\" to get back to the original branch)"
msgstr " (usa \"git bisect reset\" para voltar ao ramo original)"
-#: wt-status.c:1547
+#: wt-status.c:1568
msgid "You are in a sparse checkout."
msgstr "Estás numa observação dispersa."
-#: wt-status.c:1550
+#: wt-status.c:1571
#, c-format
msgid "You are in a sparse checkout with %d%% of tracked files present."
msgstr ""
-#: wt-status.c:1794
+#: wt-status.c:1815
msgid "On branch "
msgstr "Em ramo "
-#: wt-status.c:1801
+#: wt-status.c:1822
msgid "interactive rebase in progress; onto "
msgstr "rebase interativo em curso; sobre "
-#: wt-status.c:1803
+#: wt-status.c:1824
msgid "rebase in progress; onto "
msgstr "rebase em curso; sobre "
-#: wt-status.c:1808
+#: wt-status.c:1829
msgid "HEAD detached at "
-msgstr "HEAD destacada em "
+msgstr "HEAD desanexada em "
-#: wt-status.c:1810
+#: wt-status.c:1831
msgid "HEAD detached from "
-msgstr "HEAD destacada de "
+msgstr "HEAD desanexada de "
-#: wt-status.c:1813
+#: wt-status.c:1834
msgid "Not currently on any branch."
msgstr "Atualmente em ramo nenhum."
-#: wt-status.c:1830
+#: wt-status.c:1851
msgid "Initial commit"
msgstr "Memória inicial"
-#: wt-status.c:1831
+#: wt-status.c:1852
msgid "No commits yet"
-msgstr "Ainda commits nenhuns"
+msgstr "Ainda sem memórias"
-#: wt-status.c:1845
+#: wt-status.c:1866
msgid "Untracked files"
-msgstr "Ficheiros por seguir"
+msgstr "Ficheiros desmonitorizados"
-#: wt-status.c:1847
+#: wt-status.c:1868
msgid "Ignored files"
msgstr "Ficheiros ignorados"
-#: wt-status.c:1851
+#: wt-status.c:1872
#, c-format
msgid ""
"It took %.2f seconds to enumerate untracked files. 'status -uno'\n"
"may speed it up, but you have to be careful not to forget to add\n"
"new files yourself (see 'git help status')."
msgstr ""
-"A enumeração dos ficheiros por controlar demorou %.2f segundos.\n"
-"'status -uno' pode-o acelerar, mas tens de te lembrar de adicionares\n"
+"A enumeração dos ficheiros desmonitorizados demorou %.2f segundos.\n"
+"'status -uno' pode acelerá-lo, mas tens de te lembrar de adicionar\n"
"os novos ficheiros (vê 'git help status')."
-#: wt-status.c:1857
+#: wt-status.c:1878
#, c-format
msgid "Untracked files not listed%s"
-msgstr "Ficheiros por seguir fora da listagem%s"
+msgstr "Ficheiros desmonitorizados fora da listagem%s"
-#: wt-status.c:1859
+#: wt-status.c:1880
msgid " (use -u option to show untracked files)"
-msgstr " (usa opção -u para mostrar ficheiros por seguir)"
+msgstr " (usa opção -u para mostrar ficheiros desmonitorizados)"
-#: wt-status.c:1865
+#: wt-status.c:1886
msgid "No changes"
msgstr "Sem alterações"
-#: wt-status.c:1870
+#: wt-status.c:1891
#, c-format
msgid "no changes added to commit (use \"git add\" and/or \"git commit -a\")\n"
msgstr ""
-"foi adicionado a memória alteração nenhuma (usa \"git add\" e/ou \"git commit "
-"-a\")\n"
+"foi adicionado a memória alteração nenhuma (usa \"git add\" e/ou \"git "
+"commit -a\")\n"
-#: wt-status.c:1874
+#: wt-status.c:1895
#, c-format
msgid "no changes added to commit\n"
-msgstr "foi adicionado a commit alteração nenhuma\n"
+msgstr "foi adicionado a memória alteração nenhuma\n"
-#: wt-status.c:1878
+#: wt-status.c:1899
#, c-format
msgid ""
"nothing added to commit but untracked files present (use \"git add\" to "
"track)\n"
msgstr ""
-"nada adicionado para commit mas há ficheiros por seguir presentes (usa(\"git "
-"add\" para seguir)\n"
+"nada adicionado a memória mas há ficheiros desmonitorizados presentes (usa "
+"\"git add\" para monitorizar)\n"
-#: wt-status.c:1882
+#: wt-status.c:1903
#, c-format
msgid "nothing added to commit but untracked files present\n"
-msgstr "nada adicionado para commit mas ficheiros por seguir presentes\n"
+msgstr ""
+"nada adicionado a memória mas há ficheiros desmonitorizados presentes\n"
-#: wt-status.c:1886
+#: wt-status.c:1907
#, c-format
msgid "nothing to commit (create/copy files and use \"git add\" to track)\n"
-msgstr "nada a commit (cria/copia ficheiros e usa \"git add\" para seguir)\n"
+msgstr ""
+"nada a memorizar (cria/copia ficheiros e usa \"git add\" para monitorizar)\n"
-#: wt-status.c:1890 wt-status.c:1896
+#: wt-status.c:1911 wt-status.c:1917
#, c-format
msgid "nothing to commit\n"
-msgstr "nada a commit\n"
+msgstr "nada a memorizar\n"
-#: wt-status.c:1893
+#: wt-status.c:1914
#, c-format
msgid "nothing to commit (use -u to show untracked files)\n"
-msgstr "nada a commit (use -u para mostrar ficheiros por seguir)\n"
+msgstr "nada a memorizar (usa -u para mostrar ficheiros desmonitorizados)\n"
-#: wt-status.c:1898
+#: wt-status.c:1919
#, c-format
msgid "nothing to commit, working tree clean\n"
-msgstr "nada a commitar, worktree limpa\n"
+msgstr "nada a memorizar, árvore-trabalho limpa\n"
-#: wt-status.c:2003
+#: wt-status.c:2024
msgid "No commits yet on "
msgstr "Memórias nenhumas em "
-#: wt-status.c:2007
+#: wt-status.c:2028
msgid "HEAD (no branch)"
msgstr "HEAD (ramo nenhum)"
-#: wt-status.c:2038
+#: wt-status.c:2059
msgid "different"
msgstr "diferente"
-#: wt-status.c:2040 wt-status.c:2048
+#: wt-status.c:2061 wt-status.c:2069
msgid "behind "
msgstr "atrás "
-#: wt-status.c:2043 wt-status.c:2046
+#: wt-status.c:2064 wt-status.c:2067
msgid "ahead "
msgstr "à frente "
#. TRANSLATORS: the action is e.g. "pull with rebase"
-#: wt-status.c:2569
+#: wt-status.c:2605
#, c-format
msgid "cannot %s: You have unstaged changes."
-msgstr "incapaz efetuar %s: Tens alterações despreparadas."
+msgstr "incapaz efetuar %s: Tens alterações desencenadas."
-#: wt-status.c:2575
+#: wt-status.c:2611
msgid "additionally, your index contains uncommitted changes."
-msgstr "além disso, teu index contém alterações por memorizar."
+msgstr "além disso, teu cenário contém alterações por memorizar."
-#: wt-status.c:2577
+#: wt-status.c:2613
#, c-format
msgid "cannot %s: Your index contains uncommitted changes."
-msgstr "incapaz efetuar %s: teu index contém alterações por memorizar."
+msgstr "incapaz efetuar %s: Teu cenário contém alterações por memorizar."
-#: compat/simple-ipc/ipc-unix-socket.c:182
+#: compat/simple-ipc/ipc-unix-socket.c:205
msgid "could not send IPC command"
msgstr "incapaz enviar comando IPC"
-#: compat/simple-ipc/ipc-unix-socket.c:189
+#: compat/simple-ipc/ipc-unix-socket.c:212
msgid "could not read IPC response"
msgstr "incapaz de ler resposta IPC"
-#: compat/simple-ipc/ipc-unix-socket.c:866
+#: compat/simple-ipc/ipc-unix-socket.c:892
#, c-format
msgid "could not start accept_thread '%s'"
msgstr ""
-#: compat/simple-ipc/ipc-unix-socket.c:878
+#: compat/simple-ipc/ipc-unix-socket.c:904
#, c-format
msgid "could not start worker[0] for '%s'"
msgstr "incapaz começar worker[0] para '%s'"
-#: compat/precompose_utf8.c:58 builtin/clone.c:461
+#: compat/precompose_utf8.c:58 builtin/clone.c:353
#, c-format
msgid "failed to unlink '%s'"
msgstr "falha ao unlink '%s'"
+#: compat/fsmonitor/fsm-listen-darwin.c:355
+msgid "Unable to create FSEventStream."
+msgstr "Incapaz criar FSEventStream."
+
+#: compat/fsmonitor/fsm-listen-darwin.c:403
+msgid "Failed to start the FSEventStream"
+msgstr "Falhou ao iniciar o FSEventStream"
+
#: builtin/add.c:26
msgid "git add [<options>] [--] <pathspec>..."
msgstr "git add [<opções>] [--] <espetro-caminho>..."
-#: builtin/add.c:61
+#: builtin/add.c:63
#, c-format
msgid "cannot chmod %cx '%s'"
msgstr "incapaz chmod %cx '%s'"
-#: builtin/add.c:99
+#: builtin/add.c:105
#, c-format
msgid "unexpected diff status %c"
msgstr "diff status inesperado %c"
-#: builtin/add.c:104 builtin/commit.c:297
+#: builtin/add.c:110 builtin/commit.c:299
msgid "updating files failed"
msgstr "falhou ao atualizar ficheiros"
-#: builtin/add.c:114
+#: builtin/add.c:120
#, c-format
msgid "remove '%s'\n"
msgstr "remove '%s'\n"
-#: builtin/add.c:198
+#: builtin/add.c:204
msgid "Unstaged changes after refreshing the index:"
-msgstr "Alterações despreparadas após refrescar index:"
+msgstr "Alterações desencenadas após refrescar cenário:"
-#: builtin/add.c:307 builtin/rev-parse.c:993
+#: builtin/add.c:312 builtin/rev-parse.c:993
msgid "Could not read the index"
-msgstr "Incapaz ler o index"
-
-#: builtin/add.c:318
-#, c-format
-msgid "Could not open '%s' for writing."
-msgstr "Incapaz de abrir '%s' para escrita."
+msgstr "Incapaz ler o cenário"
-#: builtin/add.c:322
+#: builtin/add.c:325
msgid "Could not write patch"
msgstr "Incapaz de escrever patch"
-#: builtin/add.c:325
+#: builtin/add.c:328
msgid "editing patch failed"
msgstr "edição de patch falhou"
-#: builtin/add.c:328
+#: builtin/add.c:331
#, c-format
msgid "Could not stat '%s'"
msgstr "Impossível fazer stat de '%s'"
-#: builtin/add.c:330
+#: builtin/add.c:333
msgid "Empty patch. Aborted."
msgstr "Patch vazio. Abortado."
-#: builtin/add.c:335
+#: builtin/add.c:339
#, c-format
msgid "Could not apply '%s'"
msgstr "Impossível submeter '%s'"
-#: builtin/add.c:343
+#: builtin/add.c:347
msgid "The following paths are ignored by one of your .gitignore files:\n"
msgstr "Os seguintes caminhos estão ignorados por algum ficheiro .gitignore:\n"
-#: builtin/add.c:363 builtin/clean.c:901 builtin/fetch.c:173 builtin/mv.c:124
-#: builtin/prune-packed.c:14 builtin/pull.c:204 builtin/push.c:550
-#: builtin/remote.c:1427 builtin/rm.c:243 builtin/send-pack.c:190
+#: builtin/add.c:367 builtin/clean.c:927 builtin/fetch.c:175 builtin/mv.c:124
+#: builtin/prune-packed.c:14 builtin/pull.c:208 builtin/push.c:550
+#: builtin/remote.c:1454 builtin/rm.c:244 builtin/send-pack.c:194
msgid "dry run"
msgstr "simular ação"
-#: builtin/add.c:366
+#: builtin/add.c:368 builtin/check-ignore.c:22 builtin/commit.c:1483
+#: builtin/count-objects.c:98 builtin/fsck.c:789 builtin/log.c:2338
+#: builtin/mv.c:123 builtin/read-tree.c:120
+msgid "be verbose"
+msgstr "ser verboso"
+
+#: builtin/add.c:370
msgid "interactive picking"
msgstr "seleção interativa"
-#: builtin/add.c:367 builtin/checkout.c:1562 builtin/reset.c:308
+#: builtin/add.c:371 builtin/checkout.c:1599 builtin/reset.c:417
msgid "select hunks interactively"
msgstr "selecionar blocos interativamente"
-#: builtin/add.c:368
+#: builtin/add.c:372
msgid "edit current diff and apply"
msgstr "editar o diff atual e aplicá-lo"
-#: builtin/add.c:369
+#: builtin/add.c:373
msgid "allow adding otherwise ignored files"
msgstr "permitir adicionar ficheiros ignorados"
-#: builtin/add.c:370
+#: builtin/add.c:374
msgid "update tracked files"
msgstr "atualizar ficheiros controlados"
-#: builtin/add.c:371
+#: builtin/add.c:375
msgid "renormalize EOL of tracked files (implies -u)"
msgstr ""
-#: builtin/add.c:372
+#: builtin/add.c:376
msgid "record only the fact that the path will be added later"
msgstr "registar apenas o facto de que o caminho será adicionado mais tarde"
-#: builtin/add.c:373
+#: builtin/add.c:377
msgid "add changes from all tracked and untracked files"
msgstr ""
-"adicionar alterações de todos ficheiros seguidos e ficheiros por seguir"
+"adiciona alterações de todos ficheiros monitorizados e desmonitorizados"
-#: builtin/add.c:376
+#: builtin/add.c:380
msgid "ignore paths removed in the working tree (same as --no-all)"
msgstr "ignorar paths removidos na árvore-trabalho (o mesmo que --no-all)"
-#: builtin/add.c:378
+#: builtin/add.c:382
msgid "don't add, only refresh the index"
-msgstr "deixa de adicionar, apenas atualiza o index"
+msgstr "deixa por adicionar, apenas atualiza o cenário"
-#: builtin/add.c:379
+#: builtin/add.c:383
msgid "just skip files which cannot be added because of errors"
msgstr "apenas ignora ficheiros que, por causa de erros, ficam por adicionar"
-#: builtin/add.c:380
+#: builtin/add.c:384
msgid "check if - even missing - files are ignored in dry run"
msgstr "verificar quais os ficheiros ignorados na simulação"
-#: builtin/add.c:382 builtin/update-index.c:1006
+#: builtin/add.c:385 builtin/mv.c:128 builtin/rm.c:251
+msgid "allow updating entries outside of the sparse-checkout cone"
+msgstr ""
+
+#: builtin/add.c:387 builtin/update-index.c:1023
msgid "override the executable bit of the listed files"
msgstr "sobrepor o bit executável dos ficheiros listados"
-#: builtin/add.c:384
+#: builtin/add.c:389
msgid "warn when adding an embedded repository"
msgstr ""
-#: builtin/add.c:386
-msgid "backend for `git stash -p`"
-msgstr ""
-
-#: builtin/add.c:404
+#: builtin/add.c:407
#, c-format
msgid ""
"You've added another git repository inside your current repository.\n"
@@ -10273,247 +10785,240 @@ msgid ""
"See \"git help submodule\" for more information."
msgstr ""
-#: builtin/add.c:432
+#: builtin/add.c:436
#, c-format
msgid "adding embedded git repository: %s"
msgstr ""
-#: builtin/add.c:451
+#: builtin/add.c:456
msgid ""
"Use -f if you really want to add them.\n"
"Turn this message off by running\n"
"\"git config advice.addIgnoredFile false\""
msgstr ""
-#: builtin/add.c:460
+#: builtin/add.c:471
msgid "adding files failed"
msgstr "falhou adicionar ficheiros"
-#: builtin/add.c:488
-msgid "--dry-run is incompatible with --interactive/--patch"
-msgstr ""
-
-#: builtin/add.c:490 builtin/commit.c:357
-msgid "--pathspec-from-file is incompatible with --interactive/--patch"
-msgstr ""
-
-#: builtin/add.c:507
-msgid "--pathspec-from-file is incompatible with --edit"
-msgstr ""
-
-#: builtin/add.c:519
-msgid "-A and -u are mutually incompatible"
-msgstr "-A e -u são mutuamente incompatíveis"
-
-#: builtin/add.c:522
-msgid "Option --ignore-missing can only be used together with --dry-run"
-msgstr "Opção --ignore-missing só pode ser usada em conjunto com --dry-run"
-
-#: builtin/add.c:526
+#: builtin/add.c:534
#, c-format
msgid "--chmod param '%s' must be either -x or +x"
msgstr "parâmetro '%s' de --chmod tem de ser -x ou +x"
-#: builtin/add.c:544 builtin/checkout.c:1733 builtin/commit.c:363
-#: builtin/reset.c:328 builtin/rm.c:273 builtin/stash.c:1633
-msgid "--pathspec-from-file is incompatible with pathspec arguments"
-msgstr ""
-
-#: builtin/add.c:551 builtin/checkout.c:1745 builtin/commit.c:369
-#: builtin/reset.c:334 builtin/rm.c:279 builtin/stash.c:1639
-msgid "--pathspec-file-nul requires --pathspec-from-file"
-msgstr ""
+#: builtin/add.c:555 builtin/checkout.c:1770 builtin/commit.c:365
+#: builtin/reset.c:436 builtin/rm.c:275 builtin/stash.c:1702
+#, c-format
+msgid "'%s' and pathspec arguments cannot be used together"
+msgstr "argumentos de espetro-caminho e '%s' incapaz de serem usados juntos"
-#: builtin/add.c:555
+#: builtin/add.c:566
#, c-format
msgid "Nothing specified, nothing added.\n"
msgstr ".\n"
-#: builtin/add.c:557
+#: builtin/add.c:568
msgid ""
"Maybe you wanted to say 'git add .'?\n"
"Turn this message off by running\n"
"\"git config advice.addEmptyPathspec false\""
msgstr ""
-#: builtin/am.c:365
+#: builtin/am.c:393
msgid "could not parse author script"
msgstr "incapaz processar script de autor"
-#: builtin/am.c:455
+#: builtin/am.c:483
#, c-format
msgid "'%s' was deleted by the applypatch-msg hook"
msgstr "'%s' foi eliminado pelo hook applypatch-msg"
-#: builtin/am.c:497
+#: builtin/am.c:525
#, c-format
msgid "Malformed input line: '%s'."
msgstr "Linha de entrada malformada: '%s'."
-#: builtin/am.c:535
+#: builtin/am.c:563
#, c-format
msgid "Failed to copy notes from '%s' to '%s'"
msgstr "Falha ao copiar notas de '%s' para '%s'"
-#: builtin/am.c:561
+#: builtin/am.c:589
msgid "fseek failed"
msgstr "falha de fseek"
-#: builtin/am.c:749
+#: builtin/am.c:777
#, c-format
msgid "could not parse patch '%s'"
msgstr "incapaz processar patch '%s'"
-#: builtin/am.c:814
+#: builtin/am.c:842
msgid "Only one StGIT patch series can be applied at once"
msgstr "Só pode ser aplicada uma série de patches StGIT duma só vez"
-#: builtin/am.c:862
+#: builtin/am.c:890
msgid "invalid timestamp"
msgstr "carimbo de data/hora inválido"
-#: builtin/am.c:867 builtin/am.c:879
+#: builtin/am.c:895 builtin/am.c:907
msgid "invalid Date line"
msgstr "linha de Data inválida"
-#: builtin/am.c:874
+#: builtin/am.c:902
msgid "invalid timezone offset"
msgstr "mudança de fuso horário inválida"
-#: builtin/am.c:967
+#: builtin/am.c:995
msgid "Patch format detection failed."
msgstr "Falha ao detetar o formato do patch."
-#: builtin/am.c:972 builtin/clone.c:414
+#: builtin/am.c:1000 builtin/clone.c:306
#, c-format
msgid "failed to create directory '%s'"
msgstr "falhou criar pasta '%s'"
-#: builtin/am.c:977
+#: builtin/am.c:1005
msgid "Failed to split patches."
-msgstr "Falha ao dividir patches."
+msgstr "Falhou ao dividir remendos."
-#: builtin/am.c:1126
+#: builtin/am.c:1154
#, c-format
msgid "When you have resolved this problem, run \"%s --continue\"."
msgstr "Após resolver este problema, executa \"%s --continue\"."
-#: builtin/am.c:1127
+#: builtin/am.c:1155
#, c-format
msgid "If you prefer to skip this patch, run \"%s --skip\" instead."
msgstr "Se preferes ignorar este remendo, executa \"%s --skip\" invés."
-#: builtin/am.c:1128
+#: builtin/am.c:1160
+#, c-format
+msgid "To record the empty patch as an empty commit, run \"%s --allow-empty\"."
+msgstr ""
+"Para gravar o remendo vazio como memória vazia, executa \"%s --allow-empty\"."
+
+#: builtin/am.c:1162
#, c-format
msgid "To restore the original branch and stop patching, run \"%s --abort\"."
msgstr ""
-"Para restaurar o ramo original e interromper a aplicação de remendos, "
-"executa \"%s --abort\"."
+"Para restaurar o ramo original e parar de remendar, executa \"%s --abort\"."
-#: builtin/am.c:1223
+#: builtin/am.c:1257
msgid "Patch sent with format=flowed; space at the end of lines might be lost."
msgstr ""
-#: builtin/am.c:1251
-msgid "Patch is empty."
-msgstr "Remendo está vazio."
-
-#: builtin/am.c:1316
+#: builtin/am.c:1345
#, c-format
msgid "missing author line in commit %s"
-msgstr "Autor em falta: %s"
+msgstr "faltando linha de autor em memória %s"
-#: builtin/am.c:1319
+#: builtin/am.c:1348
#, c-format
msgid "invalid ident line: %.*s"
msgstr "linha de indentação inválida: %.*s"
-#: builtin/am.c:1538
+#: builtin/am.c:1567
msgid "Repository lacks necessary blobs to fall back on 3-way merge."
msgstr "Repositório falta blobs necessários para recorrer à tri-junção."
-#: builtin/am.c:1540
+#: builtin/am.c:1569
msgid "Using index info to reconstruct a base tree..."
-msgstr "A usar informação do índice para reconstruir uma árvore de base..."
+msgstr "A usar informação do cenário para reconstruir uma árvore de base..."
-#: builtin/am.c:1559
+#: builtin/am.c:1588
msgid ""
"Did you hand edit your patch?\n"
"It does not apply to blobs recorded in its index."
msgstr ""
-"Editaste o patch manualmente?\n"
-"No registo de index, aplica-se a blobs nenhuns."
+"Editaste o remendo manualmente?\n"
+"Excepcionando blobs guardados no seu cenário"
-#: builtin/am.c:1565
+#: builtin/am.c:1594
msgid "Falling back to patching base and 3-way merge..."
-msgstr ""
-"A recorrer a uma de base para aplicação de patches e integração com 3 "
-"pontos..."
+msgstr "Recorrendo a remendar base e tri-junção..."
-#: builtin/am.c:1591
+#: builtin/am.c:1620
msgid "Failed to merge in the changes."
-msgstr "Falha ao integrar as alterações."
+msgstr "Falha ao juntar as alterações."
-#: builtin/am.c:1623
+#: builtin/am.c:1652
msgid "applying to an empty history"
msgstr "submetendo para um histórico vazio"
-#: builtin/am.c:1675 builtin/am.c:1679
+#: builtin/am.c:1704 builtin/am.c:1708
#, c-format
msgid "cannot resume: %s does not exist."
msgstr "incapaz continuar: %s é inexistente."
-#: builtin/am.c:1697
+#: builtin/am.c:1726
msgid "Commit Body is:"
-msgstr "Corpo do commit:"
+msgstr "Corpo da Memória é:"
#. TRANSLATORS: Make sure to include [y], [n], [e], [v] and [a]
#. in your translation. The program will only accept English
#. input at this point.
#.
-#: builtin/am.c:1707
+#: builtin/am.c:1736
#, c-format
msgid "Apply? [y]es/[n]o/[e]dit/[v]iew patch/[a]ccept all: "
-msgstr "Aplicar? [y]sim/[n]ão/[e]ditar/[v]er patch/[a]ceitar todos: "
+msgstr "Aplicar? [y]sim/[n]ão/[e]ditar/[v]er remendo/[a]ceitar todos: "
-#: builtin/am.c:1753 builtin/commit.c:408
+#: builtin/am.c:1782 builtin/commit.c:410
msgid "unable to write index file"
-msgstr "incapaz escrever ficheiro de index"
+msgstr "incapaz escrever ficheiro de cenário"
-#: builtin/am.c:1757
+#: builtin/am.c:1786
#, c-format
msgid "Dirty index: cannot apply patches (dirty: %s)"
-msgstr "Index sujo: incapaz aplicar patches (sujo: %s)"
+msgstr "Cenário sujo: incapaz aplicar remendos (sujo: %s)"
+
+#: builtin/am.c:1828
+#, c-format
+msgid "Skipping: %.*s"
+msgstr "Saltando: %.*s"
-#: builtin/am.c:1797 builtin/am.c:1865
+#: builtin/am.c:1833
+#, c-format
+msgid "Creating an empty commit: %.*s"
+msgstr "Criando memória vazia: %.*s"
+
+#: builtin/am.c:1837
+msgid "Patch is empty."
+msgstr "Remendo está vazio."
+
+#: builtin/am.c:1848 builtin/am.c:1917
#, c-format
msgid "Applying: %.*s"
msgstr "A aplicar: %.*s"
-#: builtin/am.c:1814
+#: builtin/am.c:1865
msgid "No changes -- Patch already applied."
msgstr "Nenhuma alteração -- Remendo já foi aplicado."
-#: builtin/am.c:1820
+#: builtin/am.c:1871
#, c-format
msgid "Patch failed at %s %.*s"
msgstr "Falha ao aplicar o patch em %s %.*s"
-#: builtin/am.c:1824
+#: builtin/am.c:1875
msgid "Use 'git am --show-current-patch=diff' to see the failed patch"
msgstr ""
-#: builtin/am.c:1868
+#: builtin/am.c:1921
+msgid "No changes - recorded it as an empty commit."
+msgstr "Sem alterações - gravado como uma memória vazia."
+
+#: builtin/am.c:1923
msgid ""
"No changes - did you forget to use 'git add'?\n"
"If there is nothing left to stage, chances are that something else\n"
"already introduced the same changes; you might want to skip this patch."
msgstr ""
"Sem alterações - esqueceste-te de usar 'git add'?\n"
-"Se há mais nada por preparar, provavelmente essas mesmas alterações\n"
-"já foram introduzidas; poderás querer saltar este patch."
+"Se há mais nada por encenar, provavelmente essas mesmas alterações\n"
+"já foram introduzidas; poderás querer saltar este remendo."
-#: builtin/am.c:1875
+#: builtin/am.c:1931
msgid ""
"You still have unmerged paths in your index.\n"
"You should 'git add' each file with resolved conflicts to mark them as "
@@ -10521,17 +11026,17 @@ msgid ""
"You might run `git rm` on a file to accept \"deleted by them\" for it."
msgstr ""
-#: builtin/am.c:1982 builtin/am.c:1986 builtin/am.c:1998 builtin/reset.c:347
-#: builtin/reset.c:355
+#: builtin/am.c:2039 builtin/am.c:2043 builtin/am.c:2055 builtin/reset.c:455
+#: builtin/reset.c:463
#, c-format
msgid "Could not parse object '%s'."
msgstr "Incapaz analisar objeto '%s'."
-#: builtin/am.c:2034
+#: builtin/am.c:2091 builtin/am.c:2167
msgid "failed to clean index"
-msgstr ""
+msgstr "falhou ao limpar cenário"
-#: builtin/am.c:2078
+#: builtin/am.c:2135
msgid ""
"You seem to have moved HEAD since the last 'am' failure.\n"
"Not rewinding to ORIG_HEAD"
@@ -10539,160 +11044,159 @@ msgstr ""
"Parece que moveste HEAD desde a última falha de 'am'.\n"
"Recusando rebobinar até ORIG_HEAD"
-#: builtin/am.c:2185
-#, c-format
-msgid "Invalid value for --patch-format: %s"
-msgstr "Valor inválido para --patch-format: %s"
-
-#: builtin/am.c:2227
+#: builtin/am.c:2292
#, c-format
-msgid "Invalid value for --show-current-patch: %s"
-msgstr "Valor inválido para --show-current-patch: %s"
+msgid "options '%s=%s' and '%s=%s' cannot be used together"
+msgstr "opções '%s=%s' e '%s=%s' incapaz serem usadas juntas"
-#: builtin/am.c:2231
-#, c-format
-msgid "--show-current-patch=%s is incompatible with --show-current-patch=%s"
-msgstr ""
-
-#: builtin/am.c:2262
+#: builtin/am.c:2323
msgid "git am [<options>] [(<mbox> | <Maildir>)...]"
msgstr "git am [<opções>] [(<mbox> | <Maildir>)...]"
-#: builtin/am.c:2263
+#: builtin/am.c:2324
msgid "git am [<options>] (--continue | --skip | --abort)"
msgstr "git am [<opções>] (--continue | --skip | --abort)"
-#: builtin/am.c:2269
+#: builtin/am.c:2330
msgid "run interactively"
msgstr "executar interativamente"
-#: builtin/am.c:2271
+#: builtin/am.c:2332
msgid "historical option -- no-op"
msgstr "opção histórica -- sem-ação"
-#: builtin/am.c:2273
+#: builtin/am.c:2334
msgid "allow fall back on 3way merging if needed"
-msgstr "permitir recorrer a integração com 3 pontos se necessário"
+msgstr "permitir recorrer a tri-junção se necessário"
-#: builtin/am.c:2274 builtin/init-db.c:547 builtin/prune-packed.c:16
-#: builtin/repack.c:472 builtin/stash.c:945
+#: builtin/am.c:2335 builtin/init-db.c:547 builtin/prune-packed.c:16
+#: builtin/repack.c:646 builtin/stash.c:946
msgid "be quiet"
msgstr "ficar silencioso"
-#: builtin/am.c:2276
+#: builtin/am.c:2337
msgid "add a Signed-off-by trailer to the commit message"
-msgstr "adicionar atribuição Signed-off-by para a mensagem de memória"
+msgstr "adicionar atribuição Signed-off-by para a mensagem de memória"
-#: builtin/am.c:2279
+#: builtin/am.c:2340
msgid "recode into utf8 (default)"
msgstr "recodificar em utf8 (predefinição)"
-#: builtin/am.c:2281
+#: builtin/am.c:2342
msgid "pass -k flag to git-mailinfo"
msgstr "passar a opção -k ao git-mailinfo"
-#: builtin/am.c:2283
+#: builtin/am.c:2344
msgid "pass -b flag to git-mailinfo"
msgstr "passar a opção -b ao git-mailinfo"
-#: builtin/am.c:2285
+#: builtin/am.c:2346
msgid "pass -m flag to git-mailinfo"
msgstr "passar a opção -m ao git-mailinfo"
-#: builtin/am.c:2287
+#: builtin/am.c:2348
msgid "pass --keep-cr flag to git-mailsplit for mbox format"
msgstr "passar a opção --keep-cr a git-mailsplit para formato mbox"
-#: builtin/am.c:2290
+#: builtin/am.c:2351
msgid "do not pass --keep-cr flag to git-mailsplit independent of am.keepcr"
msgstr ""
"proibido passares --keep-cr a git-mailsplit independentemente de am.keepcr"
-#: builtin/am.c:2293
+#: builtin/am.c:2354
msgid "strip everything before a scissors line"
msgstr "retirar todo o conteúdo antes da linha de tesoura"
-#: builtin/am.c:2295
+#: builtin/am.c:2356
msgid "pass it through git-mailinfo"
msgstr "passa-o pelo git-mailinfo"
-#: builtin/am.c:2298 builtin/am.c:2301 builtin/am.c:2304 builtin/am.c:2307
-#: builtin/am.c:2310 builtin/am.c:2313 builtin/am.c:2316 builtin/am.c:2319
-#: builtin/am.c:2325
+#: builtin/am.c:2359 builtin/am.c:2362 builtin/am.c:2365 builtin/am.c:2368
+#: builtin/am.c:2371 builtin/am.c:2374 builtin/am.c:2377 builtin/am.c:2380
+#: builtin/am.c:2386
msgid "pass it through git-apply"
msgstr "passa-o pelo git-apply"
-#: builtin/am.c:2315 builtin/commit.c:1512 builtin/fmt-merge-msg.c:17
-#: builtin/fmt-merge-msg.c:20 builtin/grep.c:905 builtin/merge.c:261
-#: builtin/pull.c:141 builtin/pull.c:200 builtin/pull.c:217
-#: builtin/rebase.c:1342 builtin/repack.c:483 builtin/repack.c:487
-#: builtin/repack.c:489 builtin/show-branch.c:650 builtin/show-ref.c:172
-#: builtin/tag.c:447 parse-options.h:155 parse-options.h:176
-#: parse-options.h:317
+#: builtin/am.c:2376 builtin/commit.c:1514 builtin/fmt-merge-msg.c:18
+#: builtin/fmt-merge-msg.c:21 builtin/grep.c:920 builtin/merge.c:263
+#: builtin/pull.c:142 builtin/pull.c:204 builtin/pull.c:221
+#: builtin/rebase.c:1074 builtin/repack.c:657 builtin/repack.c:661
+#: builtin/repack.c:663 builtin/show-branch.c:650 builtin/show-ref.c:172
+#: builtin/tag.c:446 parse-options.h:159 parse-options.h:180
+#: parse-options.h:348
msgid "n"
msgstr "n"
-#: builtin/am.c:2321 builtin/branch.c:672 builtin/bugreport.c:137
-#: builtin/for-each-ref.c:40 builtin/replace.c:556 builtin/tag.c:481
-#: builtin/verify-tag.c:38
+#: builtin/am.c:2382 builtin/branch.c:695 builtin/bugreport.c:109
+#: builtin/cat-file.c:848 builtin/cat-file.c:852 builtin/cat-file.c:856
+#: builtin/for-each-ref.c:41 builtin/ls-tree.c:357 builtin/replace.c:555
+#: builtin/tag.c:480 builtin/verify-tag.c:38
msgid "format"
msgstr "formato"
-#: builtin/am.c:2322
+#: builtin/am.c:2383
msgid "format the patch(es) are in"
msgstr "formato em que o(s) remendo(s) estão"
-#: builtin/am.c:2328
+#: builtin/am.c:2389
msgid "override error message when patch failure occurs"
msgstr "sobrepor mensagem de erro quando falha na aplicação de remendo ocorrer"
-#: builtin/am.c:2330
+#: builtin/am.c:2391
msgid "continue applying patches after resolving a conflict"
-msgstr "continuar submetendo remendos depois de resolver um conflito"
+msgstr "continuar aplicando remendos depois de resolver um conflito"
-#: builtin/am.c:2333
+#: builtin/am.c:2394
msgid "synonyms for --continue"
msgstr "sinónimo de --continue"
-#: builtin/am.c:2336
+#: builtin/am.c:2397
msgid "skip the current patch"
msgstr "ignorar remendo atual"
-#: builtin/am.c:2339
+#: builtin/am.c:2400
msgid "restore the original branch and abort the patching operation"
msgstr "restaurar o ramo original e abortar a operação de remendar"
-#: builtin/am.c:2342
+#: builtin/am.c:2403
msgid "abort the patching operation but keep HEAD where it is"
msgstr ""
-#: builtin/am.c:2346
+#: builtin/am.c:2407
msgid "show the patch being applied"
msgstr "mostrar linhas sendo submetidas"
-#: builtin/am.c:2351
+#: builtin/am.c:2411
+msgid "record the empty patch as an empty commit"
+msgstr ""
+
+#: builtin/am.c:2415
msgid "lie about committer date"
-msgstr "mentir sobre a data de commit"
+msgstr "mentir sobre a data de memorizador"
-#: builtin/am.c:2353
+#: builtin/am.c:2417
msgid "use current timestamp for author date"
msgstr "usar a data e hora atual como data de autor"
-#: builtin/am.c:2355 builtin/commit-tree.c:120 builtin/commit.c:1640
-#: builtin/merge.c:298 builtin/pull.c:175 builtin/rebase.c:537
-#: builtin/rebase.c:1395 builtin/revert.c:117 builtin/tag.c:462
+#: builtin/am.c:2419 builtin/commit-tree.c:118 builtin/commit.c:1642
+#: builtin/merge.c:302 builtin/pull.c:179 builtin/rebase.c:1127
+#: builtin/revert.c:117 builtin/tag.c:461
msgid "key-id"
msgstr "id-chave"
-#: builtin/am.c:2356 builtin/rebase.c:538 builtin/rebase.c:1396
+#: builtin/am.c:2420 builtin/rebase.c:1128
msgid "GPG-sign commits"
msgstr "assinar memórias com GPG"
-#: builtin/am.c:2359
+#: builtin/am.c:2423
+msgid "how to handle empty patches"
+msgstr "como lidar com remendos vazios"
+
+#: builtin/am.c:2426
msgid "(internal use for git-rebase)"
msgstr "(uso interno para git-rebase)"
-#: builtin/am.c:2377
+#: builtin/am.c:2444
msgid ""
"The -b/--binary option has been a no-op for long time, and\n"
"it will be removed. Please do not use it anymore."
@@ -10700,30 +11204,30 @@ msgstr ""
"A opção -b/--binary há muito que é ignorada e será removida.\n"
"Por favor deixa de usá-la."
-#: builtin/am.c:2384
+#: builtin/am.c:2451
msgid "failed to read the index"
msgstr "falhou ler cenário"
-#: builtin/am.c:2399
+#: builtin/am.c:2466
#, c-format
msgid "previous rebase directory %s still exists but mbox given."
msgstr ""
-"o diretório de rebesa anterior %s ainda existe, mas foi fornecida uma mbox."
+"o pasta de rebesa anterior %s ainda existe, mas foi fornecida uma mbox."
-#: builtin/am.c:2423
+#: builtin/am.c:2490
#, c-format
msgid ""
"Stray %s directory found.\n"
"Use \"git am --abort\" to remove it."
msgstr ""
-"Diretório abandonado %s encontrado.\n"
-"Use \"git am --abort\" para o remover."
+"Pasta perdida %s encontrada.\n"
+"Usa \"git am --abort\" para a remover."
-#: builtin/am.c:2429
+#: builtin/am.c:2496
msgid "Resolve operation not in progress, we are not resuming."
msgstr "A operação de resolução está parada, continuará parada."
-#: builtin/am.c:2439
+#: builtin/am.c:2506
msgid "interactive mode requires patches on the command line"
msgstr ""
@@ -10731,51 +11235,34 @@ msgstr ""
msgid "git apply [<options>] [<patch>...]"
msgstr "git apply [<opções>] [<remendo>...]"
-#: builtin/archive.c:17
-#, c-format
-msgid "could not create archive file '%s'"
-msgstr "incapaz criar ficheiro de arquivo '%s'"
-
-#: builtin/archive.c:20
+#: builtin/archive.c:18
msgid "could not redirect output"
msgstr "incapaz redirecionar a saída"
-#: builtin/archive.c:37
+#: builtin/archive.c:35
msgid "git archive: Remote with no URL"
msgstr "git archive: Remoto sem URL"
-#: builtin/archive.c:61
+#: builtin/archive.c:59
msgid "git archive: expected ACK/NAK, got a flush packet"
msgstr "git archive: esperado ACK/NAK, recebi pacote flush"
-#: builtin/archive.c:64
+#: builtin/archive.c:62
#, c-format
msgid "git archive: NACK %s"
msgstr "git archive: NACK %s"
-#: builtin/archive.c:65
+#: builtin/archive.c:63
msgid "git archive: protocol error"
msgstr "git archive: erro de protocolo"
-#: builtin/archive.c:69
+#: builtin/archive.c:67
msgid "git archive: expected a flush"
msgstr "git archive: esperado um flush"
-#: builtin/bisect--helper.c:23
-msgid "git bisect--helper --bisect-reset [<commit>]"
-msgstr ""
-
#: builtin/bisect--helper.c:24
-msgid "git bisect--helper --bisect-next-check <good_term> <bad_term> [<term>]"
-msgstr ""
-
-#: builtin/bisect--helper.c:25
-msgid ""
-"git bisect--helper --bisect-terms [--term-good | --term-old | --term-bad | --"
-"term-new]"
-msgstr ""
-"git bisect--helper --bisect-terms [--term-good | --term-old | --term-bad | --"
-"term-new]"
+msgid "git bisect--helper --bisect-reset [<commit>]"
+msgstr "git bisect--helper --bisect-reset [<memória>]"
#: builtin/bisect--helper.c:26
msgid ""
@@ -10783,103 +11270,111 @@ msgid ""
"=<term>] [--no-checkout] [--first-parent] [<bad> [<good>...]] [--] "
"[<paths>...]"
msgstr ""
-
-#: builtin/bisect--helper.c:28
-msgid "git bisect--helper --bisect-next"
-msgstr ""
+"git bisect--helper --bisect-start [--term-{new,bad}=<termo> --term-{old,good}"
+"=<termo>] [--no-checkout] [--first-parent] [<mau> [<bom>...]] [--] "
+"[<caminhos>...]"
#: builtin/bisect--helper.c:29
msgid "git bisect--helper --bisect-state (bad|new) [<rev>]"
-msgstr ""
+msgstr "git bisect--helper --bisect-state (bad|new) [<rev>]"
#: builtin/bisect--helper.c:30
msgid "git bisect--helper --bisect-state (good|old) [<rev>...]"
-msgstr ""
+msgstr "git bisect--helper --bisect-state (good|old) [<rev>...]"
#: builtin/bisect--helper.c:31
msgid "git bisect--helper --bisect-replay <filename>"
-msgstr ""
+msgstr "git bisect--helper --bisect-replay <ficheiro>"
#: builtin/bisect--helper.c:32
msgid "git bisect--helper --bisect-skip [(<rev>|<range>)...]"
-msgstr ""
+msgstr "git bisect--helper --bisect-skip [(<rev>|<intervalo>)...]"
+
+#: builtin/bisect--helper.c:34
+msgid "git bisect--helper --bisect-run <cmd>..."
+msgstr "git bisect--helper --bisect-run <cmd>..."
-#: builtin/bisect--helper.c:107
+#: builtin/bisect--helper.c:109
#, c-format
msgid "cannot open file '%s' in mode '%s'"
msgstr "incapaz abrir ficheiro '%s' em modo '%s'"
-#: builtin/bisect--helper.c:114
+#: builtin/bisect--helper.c:116
#, c-format
msgid "could not write to file '%s'"
msgstr "incapaz escrever para ficheiro '%s'"
-#: builtin/bisect--helper.c:155
+#: builtin/bisect--helper.c:154
+#, c-format
+msgid "cannot open file '%s' for reading"
+msgstr "incapaz abrir ficheiro '%s' para leitura"
+
+#: builtin/bisect--helper.c:170
#, c-format
msgid "'%s' is not a valid term"
msgstr "'%s' é um termo inválido."
-#: builtin/bisect--helper.c:159
+#: builtin/bisect--helper.c:174
#, c-format
msgid "can't use the builtin command '%s' as a term"
msgstr "incapaz usar comando embutido '%s' como um termo"
-#: builtin/bisect--helper.c:169
+#: builtin/bisect--helper.c:184
#, c-format
msgid "can't change the meaning of the term '%s'"
msgstr "incapaz alterar o significado do termo '%s'"
-#: builtin/bisect--helper.c:179
+#: builtin/bisect--helper.c:194
msgid "please use two different terms"
msgstr "por favor, usa dois termos diferentes"
-#: builtin/bisect--helper.c:195
+#: builtin/bisect--helper.c:210
#, c-format
msgid "We are not bisecting.\n"
msgstr "Estamos bissetando nada.\n"
-#: builtin/bisect--helper.c:203
+#: builtin/bisect--helper.c:218
#, c-format
msgid "'%s' is not a valid commit"
-msgstr "'%s' é um commit inválido"
+msgstr "'%s' é uma memória inválida"
-#: builtin/bisect--helper.c:212
+#: builtin/bisect--helper.c:227
#, c-format
msgid ""
"could not check out original HEAD '%s'. Try 'git bisect reset <commit>'."
msgstr ""
-"pude check out HEAD original '%s' nenhuma. Tenta 'git bisect reset <commit>'."
+"incapaz observar HEAD original '%s'. Tenta 'git bisect reset <memória>'."
-#: builtin/bisect--helper.c:256
+#: builtin/bisect--helper.c:271
#, c-format
msgid "Bad bisect_write argument: %s"
msgstr "Argumento bisect_write incorreto: %s"
-#: builtin/bisect--helper.c:261
+#: builtin/bisect--helper.c:276
#, c-format
msgid "couldn't get the oid of the rev '%s'"
msgstr "incapaz obter oid da rev '%s'"
-#: builtin/bisect--helper.c:273
+#: builtin/bisect--helper.c:288
#, c-format
msgid "couldn't open the file '%s'"
msgstr "incapaz abrir o ficheiro '%s'"
-#: builtin/bisect--helper.c:299
+#: builtin/bisect--helper.c:314
#, c-format
msgid "Invalid command: you're currently in a %s/%s bisect"
-msgstr "Comando inválido: estás atualmente a bissetar %s/%s"
+msgstr "Comando inválido: estás bissetando %s/%s"
-#: builtin/bisect--helper.c:326
+#: builtin/bisect--helper.c:341
#, c-format
msgid ""
"You need to give me at least one %s and %s revision.\n"
"You can use \"git bisect %s\" and \"git bisect %s\" for that."
msgstr ""
-"Precisas de dar pelo menos uma revisão %s e %s.\n"
-"Podes usar \"git bisect %s\" e \"git bisect %s\" para esse fim."
+"Precisas de dar-me pelo menos uma revisão %s e %s.\n"
+"Para isso, podes usar \"git bisect %s\" e \"git bisect %s\"."
-#: builtin/bisect--helper.c:330
+#: builtin/bisect--helper.c:345
#, c-format
msgid ""
"You need to start by \"git bisect start\".\n"
@@ -10888,9 +11383,9 @@ msgid ""
msgstr ""
"Precisas de começar com \"git bisect start\".\n"
"Depois precisas de dar-me pelo menos uma revisão %s e %s.\n"
-"Podes usar \"git bisect %s\" e \"git bisect %s\" para esse fim."
+"Para isso, podes usar \"git bisect %s\" e \"git bisect %s\"."
-#: builtin/bisect--helper.c:350
+#: builtin/bisect--helper.c:365
#, c-format
msgid "bisecting only with a %s commit"
msgstr "bissetando apenas com uma memória %s"
@@ -10899,22 +11394,24 @@ msgstr "bissetando apenas com uma memória %s"
#. translation. The program will only accept English input
#. at this point.
#.
-#: builtin/bisect--helper.c:358
+#: builtin/bisect--helper.c:373
msgid "Are you sure [Y/n]? "
-msgstr "Tem a certeza [Y/n]? "
+msgstr "Tens a certeza [Y/n]? "
-#: builtin/bisect--helper.c:419
+#: builtin/bisect--helper.c:434
msgid "no terms defined"
msgstr "termo nenhum definido"
-#: builtin/bisect--helper.c:422
+#: builtin/bisect--helper.c:437
#, c-format
msgid ""
"Your current terms are %s for the old state\n"
"and %s for the new state.\n"
msgstr ""
+"Teus termos actuais são %s para o estado\n"
+"antigo e %s para o estado novo.\n"
-#: builtin/bisect--helper.c:432
+#: builtin/bisect--helper.c:447
#, c-format
msgid ""
"invalid argument %s for 'git bisect terms'.\n"
@@ -10923,52 +11420,52 @@ msgstr ""
"argumento inválido %s para 'git bisect terms'.\n"
"Opções sustentadas: --term-good|--term-old e --term-bad|--term-new."
-#: builtin/bisect--helper.c:499 builtin/bisect--helper.c:1023
+#: builtin/bisect--helper.c:514 builtin/bisect--helper.c:1038
msgid "revision walk setup failed\n"
-msgstr "falhou configuração de percurso de revisões\n"
+msgstr "falhou a configuração de percurso de revisões\n"
-#: builtin/bisect--helper.c:521
+#: builtin/bisect--helper.c:536
#, c-format
msgid "could not open '%s' for appending"
msgstr "incapaz abrir '%s' para acrescentar"
-#: builtin/bisect--helper.c:640 builtin/bisect--helper.c:653
+#: builtin/bisect--helper.c:655 builtin/bisect--helper.c:668
msgid "'' is not a valid term"
msgstr "'' é um termo inválido"
-#: builtin/bisect--helper.c:663
+#: builtin/bisect--helper.c:678
#, c-format
msgid "unrecognized option: '%s'"
msgstr "opção desconhecida: '%s'"
-#: builtin/bisect--helper.c:667
+#: builtin/bisect--helper.c:682
#, c-format
msgid "'%s' does not appear to be a valid revision"
msgstr "'%s' parece ser uma revisão inválida"
-#: builtin/bisect--helper.c:698
+#: builtin/bisect--helper.c:713
msgid "bad HEAD - I need a HEAD"
msgstr "HEAD incorreta - é necessário uma HEAD"
-#: builtin/bisect--helper.c:713
+#: builtin/bisect--helper.c:728
#, c-format
msgid "checking out '%s' failed. Try 'git bisect start <valid-branch>'."
msgstr "falhou observar '%s'. Tenta 'git bisect start <ramo-válido>'."
-#: builtin/bisect--helper.c:734
+#: builtin/bisect--helper.c:749
msgid "won't bisect on cg-seek'ed tree"
msgstr "incapaz bissetar numa árvore \"cg-seek'ada\""
-#: builtin/bisect--helper.c:737
+#: builtin/bisect--helper.c:752
msgid "bad HEAD - strange symbolic ref"
-msgstr "HEAD incorreta - referência simbólica desconhecida"
+msgstr "HEAD incorreta - referência simbólica estranha"
-#: builtin/bisect--helper.c:757
+#: builtin/bisect--helper.c:772
#, c-format
msgid "invalid ref: '%s'"
-msgstr ""
+msgstr "ref inválida: '%s'"
-#: builtin/bisect--helper.c:815
+#: builtin/bisect--helper.c:830
msgid "You need to start by \"git bisect start\"\n"
msgstr "Deves começar com \"git bisect start\"\n"
@@ -10976,104 +11473,160 @@ msgstr "Deves começar com \"git bisect start\"\n"
#. translation. The program will only accept English input
#. at this point.
#.
-#: builtin/bisect--helper.c:826
+#: builtin/bisect--helper.c:841
msgid "Do you want me to do it for you [Y/n]? "
-msgstr "Quer que seja eu a fazer isso [Y/n]? "
+msgstr "Quer que eu faça isso por ti [Y/n]? "
-#: builtin/bisect--helper.c:844
+#: builtin/bisect--helper.c:859
msgid "Please call `--bisect-state` with at least one argument"
msgstr "Por favor, chama `--bisect-state` com pelo menos um argumento"
-#: builtin/bisect--helper.c:857
+#: builtin/bisect--helper.c:872
#, c-format
msgid "'git bisect %s' can take only one argument."
msgstr "'git bisect %s' só leva um argumento."
-#: builtin/bisect--helper.c:869 builtin/bisect--helper.c:882
+#: builtin/bisect--helper.c:884 builtin/bisect--helper.c:897
#, c-format
msgid "Bad rev input: %s"
msgstr "Entrada de rev inválida: %s"
-#: builtin/bisect--helper.c:889
+#: builtin/bisect--helper.c:904
#, c-format
msgid "Bad rev input (not a commit): %s"
msgstr "Entrada de rev inválida (é memória nenhuma): %s"
-#: builtin/bisect--helper.c:921
+#: builtin/bisect--helper.c:936
msgid "We are not bisecting."
msgstr "Estamos bissetando nada."
-#: builtin/bisect--helper.c:971
+#: builtin/bisect--helper.c:986
#, c-format
msgid "'%s'?? what are you talking about?"
msgstr "'%s'?? estás a falar de quê?"
-#: builtin/bisect--helper.c:983
+#: builtin/bisect--helper.c:998
#, c-format
msgid "cannot read file '%s' for replaying"
msgstr "incapaz ler ficheiro '%s' para reprodução"
-#: builtin/bisect--helper.c:1056
-msgid "reset the bisection state"
+#: builtin/bisect--helper.c:1120 builtin/bisect--helper.c:1152
+#, c-format
+msgid "running %s\n"
+msgstr "executando %s\n"
+
+#: builtin/bisect--helper.c:1145 builtin/bisect--helper.c:1335
+msgid "bisect run failed: no command provided."
+msgstr "execução bisseção falhou: providenciado comando nenhum."
+
+#: builtin/bisect--helper.c:1166
+#, c-format
+msgid "unable to verify '%s' on good revision"
+msgstr "incapaz de verificar '%s' em revisão boa"
+
+#: builtin/bisect--helper.c:1172
+#, c-format
+msgid "bogus exit code %d for good revision"
msgstr ""
-#: builtin/bisect--helper.c:1058
-msgid "check whether bad or good terms exist"
+#: builtin/bisect--helper.c:1180
+#, c-format
+msgid "bisect run failed: exit code %d from '%s' is < 0 or >= 128"
+msgstr "execução bisseção falhou: código de saída %d de '%s' é < 0 ou >= 128"
+
+#: builtin/bisect--helper.c:1195
+#, c-format
+msgid "cannot open file '%s' for writing"
+msgstr "incapaz abrir ficheiro '%s' para escrita"
+
+#: builtin/bisect--helper.c:1213
+msgid "bisect run cannot continue any more"
+msgstr "execução bisseção incapaz de continuar"
+
+#: builtin/bisect--helper.c:1215
+#, c-format
+msgid "bisect run success"
+msgstr "sucesso na execução bisseção"
+
+#: builtin/bisect--helper.c:1218
+#, c-format
+msgid "bisect found first bad commit"
+msgstr "bisseção encontrou primeira memória má"
+
+#: builtin/bisect--helper.c:1221
+#, c-format
+msgid ""
+"bisect run failed: 'git bisect--helper --bisect-state %s' exited with error "
+"code %d"
msgstr ""
+"execução bisseção falhou: 'git bisect--helper --bisect-state %s' retornou "
+"com código de erro %d"
-#: builtin/bisect--helper.c:1060
+#: builtin/bisect--helper.c:1253
+msgid "reset the bisection state"
+msgstr "restabelecer o estado de bisseção"
+
+#: builtin/bisect--helper.c:1255
+msgid "check whether bad or good terms exist"
+msgstr "verificar se existem termos bons ou maus"
+
+#: builtin/bisect--helper.c:1257
msgid "print out the bisect terms"
-msgstr "imprimir termos de bifurcação"
+msgstr "mostrar termos de bisseção"
-#: builtin/bisect--helper.c:1062
+#: builtin/bisect--helper.c:1259
msgid "start the bisect session"
-msgstr ""
+msgstr "começar a sessão de bisseção"
-#: builtin/bisect--helper.c:1064
+#: builtin/bisect--helper.c:1261
msgid "find the next bisection commit"
-msgstr "encontra próximo commit de bisecção"
+msgstr "encontrar próxima memória de bissecção"
-#: builtin/bisect--helper.c:1066
+#: builtin/bisect--helper.c:1263
msgid "mark the state of ref (or refs)"
-msgstr ""
+msgstr "marcar estado de ref (ou refs)"
-#: builtin/bisect--helper.c:1068
+#: builtin/bisect--helper.c:1265
msgid "list the bisection steps so far"
-msgstr ""
+msgstr "listar todos os passos de bisseção até então"
-#: builtin/bisect--helper.c:1070
+#: builtin/bisect--helper.c:1267
msgid "replay the bisection process from the given file"
-msgstr ""
+msgstr "refazer o processo de bisseção a partir de o ficheiro dado"
-#: builtin/bisect--helper.c:1072
+#: builtin/bisect--helper.c:1269
msgid "skip some commits for checkout"
-msgstr "ignorar algumas memórias para observação"
+msgstr "saltar algumas memórias para uma observação"
-#: builtin/bisect--helper.c:1074
+#: builtin/bisect--helper.c:1271
+msgid "visualize the bisection"
+msgstr "visualiza a bissecção"
+
+#: builtin/bisect--helper.c:1273
+msgid "use <cmd>... to automatically bisect"
+msgstr "usa <cmd>... para bissetar automaticamente."
+
+#: builtin/bisect--helper.c:1275
msgid "no log for BISECT_WRITE"
msgstr "nenhum registo para BISECT_WRITE"
-#: builtin/bisect--helper.c:1089
+#: builtin/bisect--helper.c:1290
msgid "--bisect-reset requires either no argument or a commit"
msgstr "--bisect-reset exige quer argumento nenhum ou uma memória"
-#: builtin/bisect--helper.c:1094
-msgid "--bisect-next-check requires 2 or 3 arguments"
-msgstr "--bisect-next-check exige 2 ou 3 argumentos"
-
-#: builtin/bisect--helper.c:1100
+#: builtin/bisect--helper.c:1295
msgid "--bisect-terms requires 0 or 1 argument"
msgstr "--bisect-terms exige 0 ou 1 argumento"
-#: builtin/bisect--helper.c:1109
+#: builtin/bisect--helper.c:1304
msgid "--bisect-next requires 0 arguments"
msgstr "--bisect-next exige 0 argumentos"
-#: builtin/bisect--helper.c:1120
+#: builtin/bisect--helper.c:1315
msgid "--bisect-log requires 0 arguments"
msgstr "--bisect-log exige 0 argumentos"
-#: builtin/bisect--helper.c:1125
+#: builtin/bisect--helper.c:1320
msgid "no logfile given"
msgstr "nenhum ficheiro-registo fornecido"
@@ -11085,151 +11638,148 @@ msgstr "git blame [<opções>] [<rev-opts>] [<rev>] [--] <ficheiro>"
msgid "<rev-opts> are documented in git-rev-list(1)"
msgstr "<rev-opts> estão documentadas em git-rev-list(1)"
-#: builtin/blame.c:410
+#: builtin/blame.c:406
#, c-format
msgid "expecting a color: %s"
msgstr "esperando cor: %s"
-#: builtin/blame.c:417
+#: builtin/blame.c:413
msgid "must end with a color"
msgstr ""
-#: builtin/blame.c:728
-#, c-format
-msgid "invalid color '%s' in color.blame.repeatedLines"
-msgstr "cor inválida '%s' em color.blame.repeatedLines"
-
-#: builtin/blame.c:746
-msgid "invalid value for blame.coloring"
-msgstr ""
-
-#: builtin/blame.c:845
+#: builtin/blame.c:842
#, c-format
msgid "cannot find revision %s to ignore"
-msgstr ""
+msgstr "incapaz encontrar revisão %s para ignorar"
-#: builtin/blame.c:867
+#: builtin/blame.c:864
msgid "show blame entries as we find them, incrementally"
msgstr ""
-"Mostrar entradas de culpa à medida que forem encontradas, incrementalmente"
+"mostrar entradas de culpa à medida que forem encontradas, incrementalmente"
-#: builtin/blame.c:868
+#: builtin/blame.c:865
msgid "do not show object names of boundary commits (Default: off)"
-msgstr "Mostar SHA-1 dos commits limite em branco (Predefinição: desativado)"
+msgstr ""
+"mostrar nenhuns nomes de objeto de memórias fronteira (Predefinição: "
+"desativado)"
-#: builtin/blame.c:869
+#: builtin/blame.c:866
msgid "do not treat root commits as boundaries (Default: off)"
-msgstr "Tratar commits raiz como limite nenhum (Predefinição: desativado)"
+msgstr ""
+"tratar nenhumas memórias raiz como fronteira (Predefinição: desativado)"
-#: builtin/blame.c:870
+#: builtin/blame.c:867
msgid "show work cost statistics"
-msgstr "Mostrar estatísticas de custo de atividade"
-
-#: builtin/blame.c:871 builtin/checkout.c:1519 builtin/clone.c:94
-#: builtin/commit-graph.c:84 builtin/commit-graph.c:222 builtin/fetch.c:179
-#: builtin/merge.c:297 builtin/multi-pack-index.c:55 builtin/pull.c:119
-#: builtin/push.c:566 builtin/send-pack.c:198
+msgstr "mostrar estatísticas de custo de trabalho"
+
+#: builtin/blame.c:868 builtin/checkout.c:1554 builtin/clone.c:98
+#: builtin/commit-graph.c:75 builtin/commit-graph.c:228 builtin/fetch.c:181
+#: builtin/merge.c:301 builtin/multi-pack-index.c:103
+#: builtin/multi-pack-index.c:154 builtin/multi-pack-index.c:180
+#: builtin/multi-pack-index.c:208 builtin/pull.c:120 builtin/push.c:566
+#: builtin/remote.c:683 builtin/send-pack.c:202
msgid "force progress reporting"
msgstr "forçar informação de progresso"
-#: builtin/blame.c:872
+#: builtin/blame.c:869
msgid "show output score for blame entries"
-msgstr "Mostrar a pontuação das entradas de culpa"
+msgstr "mostrar a pontuação das entradas de culpa"
-#: builtin/blame.c:873
+#: builtin/blame.c:870
msgid "show original filename (Default: auto)"
-msgstr "Mostrar o nome do ficheiro original (Predefinição: auto)"
+msgstr "mostrar nome do ficheiro original (Predefinição: auto)"
-#: builtin/blame.c:874
+#: builtin/blame.c:871
msgid "show original linenumber (Default: off)"
-msgstr "mostrar números de linha originais (Predefinição: desligado)"
+msgstr "mostrar números de linha originais (Predefinição: desativado)"
-#: builtin/blame.c:875
+#: builtin/blame.c:872
msgid "show in a format designed for machine consumption"
msgstr "mostrar em formato próprio para consumo por máquina"
-#: builtin/blame.c:876
+#: builtin/blame.c:873
msgid "show porcelain format with per-line commit information"
msgstr "mostrar em formato de porcelana com informações de memória por linha"
-#: builtin/blame.c:877
+#: builtin/blame.c:874
msgid "use the same output mode as git-annotate (Default: off)"
msgstr "usar o mesmo modo de saída que git-annotate (Predefinição: desativado)"
-#: builtin/blame.c:878
+#: builtin/blame.c:875
msgid "show raw timestamp (Default: off)"
-msgstr "Mostrar carimbo de data/hora em bruto (Predefinição: desativado)"
+msgstr "mostrar carimbo cronológico em bruto (Predefinição: desativado)"
-#: builtin/blame.c:879
+#: builtin/blame.c:876
msgid "show long commit SHA1 (Default: off)"
-msgstr "Mostrar SHA1 longo de commit (Predefinição: desativado)"
+msgstr "mostrar SHA1 longo de memória (Predefinição: desativado)"
-#: builtin/blame.c:880
+#: builtin/blame.c:877
msgid "suppress author name and timestamp (Default: off)"
msgstr ""
-"Suprimir nome de autor e carimbo de data/hora (Predefinição: desativado)"
+"suprimir nome de autor e carimbo cronológico (Predefinição: desativado)"
-#: builtin/blame.c:881
+#: builtin/blame.c:878
msgid "show author email instead of name (Default: off)"
-msgstr "Mostrar o email do autor em vez do nome (Predefinição: desativado)"
+msgstr "mostrar email de autor em vez do nome (Predefinição: desativado)"
-#: builtin/blame.c:882
+#: builtin/blame.c:879
msgid "ignore whitespace differences"
msgstr "Ignorar as diferenças de espaço em branco"
-#: builtin/blame.c:883 builtin/log.c:1823
+#: builtin/blame.c:880 builtin/log.c:1857
msgid "rev"
msgstr "rev"
-#: builtin/blame.c:883
+#: builtin/blame.c:880
msgid "ignore <rev> when blaming"
-msgstr "ignorar <rev> ao blaming"
+msgstr "ignorar <rev> ao culpar"
-#: builtin/blame.c:884
+#: builtin/blame.c:881
msgid "ignore revisions from <file>"
-msgstr ""
+msgstr "ignorar revisões de <ficheiro>"
-#: builtin/blame.c:885
+#: builtin/blame.c:882
msgid "color redundant metadata from previous line differently"
msgstr ""
-#: builtin/blame.c:886
+#: builtin/blame.c:883
msgid "color lines by age"
-msgstr ""
+msgstr "cor de linhas por idade"
-#: builtin/blame.c:887
+#: builtin/blame.c:884
msgid "spend extra cycles to find better match"
-msgstr "Despender ciclos extra para encontrar uma melhor correspondência"
+msgstr "gastar ciclos extra para encontrar uma melhor correspondência"
-#: builtin/blame.c:888
+#: builtin/blame.c:885
msgid "use revisions from <file> instead of calling git-rev-list"
-msgstr "usar revisões do <ficheiro> em vez de invocar git-rev-list"
+msgstr "usar revisões de <ficheiro> em vez de invocar git-rev-list"
-#: builtin/blame.c:889
+#: builtin/blame.c:886
msgid "use <file>'s contents as the final image"
-msgstr "Usar o conteúdo do <ficheiro> como imagem final"
+msgstr "usar o conteúdo de <ficheiro> como imagem final"
-#: builtin/blame.c:890 builtin/blame.c:891
+#: builtin/blame.c:887 builtin/blame.c:888
msgid "score"
msgstr "pontuação"
-#: builtin/blame.c:890
+#: builtin/blame.c:887
msgid "find line copies within and across files"
-msgstr "Localizar linhas copiadas dentro e entre ficheiros"
+msgstr "encontrar linhas copiadas dentro e entre ficheiros"
-#: builtin/blame.c:891
+#: builtin/blame.c:888
msgid "find line movements within and across files"
-msgstr "Localizar linhas movidas dentro e entre ficheiros"
+msgstr "encontrar linhas movidas dentro e entre ficheiros"
-#: builtin/blame.c:892
+#: builtin/blame.c:889
msgid "range"
msgstr "intervalo"
-#: builtin/blame.c:893
+#: builtin/blame.c:890
msgid "process only line range <start>,<end> or function :<funcname>"
-msgstr "processar apenas intervalo de linhas <início>,<fim> ou função :<nome-função>"
+msgstr ""
+"processar apenas intervalo de linhas <início>,<fim> ou função :<nome-função>"
-#: builtin/blame.c:945
+#: builtin/blame.c:949
msgid "--progress can't be used with --incremental or porcelain formats"
msgstr "proibido usar --progress com --incremental ou formatos porcelana"
@@ -11241,18 +11791,18 @@ msgstr "proibido usar --progress com --incremental ou formatos porcelana"
#. your language may need more or fewer display
#. columns.
#.
-#: builtin/blame.c:996
+#: builtin/blame.c:1000
msgid "4 years, 11 months ago"
msgstr "há 4 anos e 11 meses atrás"
-#: builtin/blame.c:1112
+#: builtin/blame.c:1116
#, c-format
msgid "file %s has only %lu line"
msgid_plural "file %s has only %lu lines"
-msgstr[0] "o ficheiro %s só tem %lu linha"
-msgstr[1] "o ficheiro %s só tem %lu linhas"
+msgstr[0] "ficheiro %s só tem %lu linha"
+msgstr[1] "ficheiro %s só tem %lu linhas"
-#: builtin/blame.c:1157
+#: builtin/blame.c:1161
msgid "Blaming lines"
msgstr "Linhas de culpa"
@@ -11261,30 +11811,38 @@ msgid "git branch [<options>] [-r | -a] [--merged] [--no-merged]"
msgstr "git branch [<opções>] [-r | -a] [--merged] [--no-merged]"
#: builtin/branch.c:30
-msgid "git branch [<options>] [-l] [-f] <branch-name> [<start-point>]"
-msgstr "git branch [<opções>] [-l] [-f] <nome-ramo> [<ponto-de-partida>]"
+msgid ""
+"git branch [<options>] [-f] [--recurse-submodules] <branch-name> [<start-"
+"point>]"
+msgstr ""
+"git branch [<opções>] [-f] [--recurse-submodules] <nome-ramo> [<ponto-de-"
+"partida>]"
#: builtin/branch.c:31
+msgid "git branch [<options>] [-l] [<pattern>...]"
+msgstr "git branch [<opções>] [-l] [<padrão>...]"
+
+#: builtin/branch.c:32
msgid "git branch [<options>] [-r] (-d | -D) <branch-name>..."
msgstr "git branch [<opções>] [-r] (-d | -D) <nome-ramo>..."
-#: builtin/branch.c:32
+#: builtin/branch.c:33
msgid "git branch [<options>] (-m | -M) [<old-branch>] <new-branch>"
msgstr "git branch [<opções>] (-m | -M) [<ramo-antigo>] <novo-ramo>"
-#: builtin/branch.c:33
+#: builtin/branch.c:34
msgid "git branch [<options>] (-c | -C) [<old-branch>] <new-branch>"
msgstr "git branch [<opções>] (-c | -C) [<ramo-antigo>] <novo-ramo>"
-#: builtin/branch.c:34
+#: builtin/branch.c:35
msgid "git branch [<options>] [-r | -a] [--points-at]"
msgstr "git branch [<opções>] [-r | -a] [--points-at]"
-#: builtin/branch.c:35
+#: builtin/branch.c:36
msgid "git branch [<options>] [-r | -a] [--format]"
msgstr "git branch [<opções>] [-r | -a] [--format]"
-#: builtin/branch.c:154
+#: builtin/branch.c:165
#, c-format
msgid ""
"deleting branch '%s' that has been merged to\n"
@@ -11293,7 +11851,7 @@ msgstr ""
"eliminando ramo '%s' que foi juntado a\n"
" '%s', mas ainda está por juntar a HEAD."
-#: builtin/branch.c:158
+#: builtin/branch.c:169
#, c-format
msgid ""
"not deleting branch '%s' that is not yet merged to\n"
@@ -11302,311 +11860,321 @@ msgstr ""
"mantendo ramo '%s' que ainda está por juntar a\n"
" '%s', apesar de já estar junto a HEAD."
-#: builtin/branch.c:172
+#: builtin/branch.c:183
#, c-format
msgid "Couldn't look up commit object for '%s'"
-msgstr "Incapaz pesquisar objeto commit para '%s'"
+msgstr "Incapaz encontrar objeto memória para '%s'"
-#: builtin/branch.c:176
+#: builtin/branch.c:187
#, c-format
msgid ""
"The branch '%s' is not fully merged.\n"
"If you are sure you want to delete it, run 'git branch -D %s'."
msgstr ""
-"O ramo '%s' está por juntar na totalidade.\n"
+"O ramo '%s' está por ser totalmente juntado.\n"
"Se tens a certeza que queres eliminá-lo, executa 'git branch -D %s'."
-#: builtin/branch.c:189
+#: builtin/branch.c:200
msgid "Update of config-file failed"
msgstr "Falha ao atualizar o ficheiro de configuração"
-#: builtin/branch.c:223
+#: builtin/branch.c:235
msgid "cannot use -a with -d"
msgstr "incapaz usar -a com -d"
-#: builtin/branch.c:230
+#: builtin/branch.c:242
msgid "Couldn't look up commit object for HEAD"
-msgstr "Incapaz de pesquisar objeto commit para HEAD"
+msgstr "Incapaz de encontrar objeto memória para HEAD"
-#: builtin/branch.c:244
+#: builtin/branch.c:259
#, c-format
msgid "Cannot delete branch '%s' checked out at '%s'"
-msgstr "Impossível apagar ramo '%s' checked out em '%s'"
+msgstr "Incapaz eliminar ramo '%s' observado em '%s'"
-#: builtin/branch.c:259
+#: builtin/branch.c:274
#, c-format
msgid "remote-tracking branch '%s' not found."
msgstr "ramo de monitorização remoto '%s' por encontrar."
-#: builtin/branch.c:260
+#: builtin/branch.c:275
#, c-format
msgid "branch '%s' not found."
msgstr "ramo '%s' por encontrar."
-#: builtin/branch.c:291
+#: builtin/branch.c:306
#, c-format
msgid "Deleted remote-tracking branch %s (was %s).\n"
msgstr "Ramo de monitorização remoto %s eliminado (era %s).\n"
-#: builtin/branch.c:292
+#: builtin/branch.c:307
#, c-format
msgid "Deleted branch %s (was %s).\n"
msgstr "Ramo %s eliminado (era %s).\n"
-#: builtin/branch.c:440 builtin/tag.c:63
+#: builtin/branch.c:457 builtin/tag.c:64
msgid "unable to parse format string"
msgstr "incapaz processar o formato string"
-#: builtin/branch.c:471
+#: builtin/branch.c:488
msgid "could not resolve HEAD"
msgstr "incapaz resolver HEAD"
-#: builtin/branch.c:477
+#: builtin/branch.c:494
#, c-format
msgid "HEAD (%s) points outside of refs/heads/"
msgstr "HEAD (%s) aponta para fora de refs/heads/"
-#: builtin/branch.c:492
+#: builtin/branch.c:509
#, c-format
msgid "Branch %s is being rebased at %s"
msgstr "O ramo %s está a ser rebaseado em %s"
-#: builtin/branch.c:496
+#: builtin/branch.c:513
#, c-format
msgid "Branch %s is being bisected at %s"
msgstr "Ramo %s está sendo bissetado em %s"
-#: builtin/branch.c:513
+#: builtin/branch.c:530
msgid "cannot copy the current branch while not on any."
msgstr "apenas podes copiar o ramo corrente enquanto estás num."
-#: builtin/branch.c:515
+#: builtin/branch.c:532
msgid "cannot rename the current branch while not on any."
msgstr "apenas podes renomear o ramo corrente enquanto estás num."
-#: builtin/branch.c:526
+#: builtin/branch.c:543
#, c-format
msgid "Invalid branch name: '%s'"
msgstr "Nome de ramo inválido: '%s'"
-#: builtin/branch.c:555
+#: builtin/branch.c:572
msgid "Branch rename failed"
msgstr "Renomear ramo falhou"
-#: builtin/branch.c:557
+#: builtin/branch.c:574
msgid "Branch copy failed"
msgstr "Copiar ramo falhou"
-#: builtin/branch.c:561
+#: builtin/branch.c:578
#, c-format
msgid "Created a copy of a misnamed branch '%s'"
msgstr "Criei uma cópia de ramo incorretamente denominado '%s'"
-#: builtin/branch.c:564
+#: builtin/branch.c:581
#, c-format
msgid "Renamed a misnamed branch '%s' away"
msgstr "Renomeei o ramo incorretamente denominado '%s'"
-#: builtin/branch.c:570
+#: builtin/branch.c:587
#, c-format
msgid "Branch renamed to %s, but HEAD is not updated!"
msgstr "Ramo renomeado para %s, mas HEAD está desatualizada!"
-#: builtin/branch.c:579
+#: builtin/branch.c:596
msgid "Branch is renamed, but update of config-file failed"
msgstr ""
-"O ramo mudou de nome, mas a atualização do ficheiro de configuração falhou"
+"Ramo mudou de nome, mas a atualização do ficheiro de configuração falhou"
-#: builtin/branch.c:581
+#: builtin/branch.c:598
msgid "Branch is copied, but update of config-file failed"
-msgstr ""
-"O ramo mudou de nome, mas a atualização do ficheiro de configuração falhou"
+msgstr "Ramo foi copiado, mas a atualização do ficheiro de configuração falhou"
-#: builtin/branch.c:597
+#: builtin/branch.c:614
#, c-format
msgid ""
"Please edit the description for the branch\n"
" %s\n"
"Lines starting with '%c' will be stripped.\n"
msgstr ""
-"Edite a descrição do ramo:\n"
+"Por favor, edita a descrição do ramo\n"
" %s\n"
-"Linha começadas com '%c' serão ignoradas.\n"
+"Linha começadas com '%c' serão removidas.\n"
-#: builtin/branch.c:631
+#: builtin/branch.c:651
msgid "Generic options"
msgstr "Opções genéricas"
-#: builtin/branch.c:633
+#: builtin/branch.c:653
msgid "show hash and subject, give twice for upstream branch"
-msgstr "apresentar hash e assunto, duplique para ramos a montante"
+msgstr "mostrar hash e assunto, duplica para ramo upstream"
-#: builtin/branch.c:634
+#: builtin/branch.c:654
msgid "suppress informational messages"
msgstr "suprimir mensagens informativas"
-#: builtin/branch.c:635
-msgid "set up tracking mode (see git-pull(1))"
-msgstr "configurar modo de monitorização (vê git-pull(1))"
+#: builtin/branch.c:656 builtin/checkout.c:1571
+#: builtin/submodule--helper.c:3077
+msgid "set branch tracking configuration"
+msgstr "mostrar configuração de monitorização de ramo"
-#: builtin/branch.c:637
+#: builtin/branch.c:659
msgid "do not use"
msgstr "deixar de usar"
-#: builtin/branch.c:639 builtin/rebase.c:533
+#: builtin/branch.c:661
msgid "upstream"
-msgstr "a montante"
+msgstr "upstream"
-#: builtin/branch.c:639
+#: builtin/branch.c:661
msgid "change the upstream info"
-msgstr "alterar a informação do ramo a montante"
+msgstr "alterar info de upstream"
-#: builtin/branch.c:640
+#: builtin/branch.c:662
msgid "unset the upstream info"
-msgstr "desdefinir info de upstream"
+msgstr "indefinir info de upstream"
-#: builtin/branch.c:641
+#: builtin/branch.c:663
msgid "use colored output"
msgstr "usar saída colorida"
-#: builtin/branch.c:642
+#: builtin/branch.c:664
msgid "act on remote-tracking branches"
-msgstr "atuar sobre ramos remoto de monitorização"
+msgstr "atuar sobre ramos remotos de monitorização"
-#: builtin/branch.c:644 builtin/branch.c:646
+#: builtin/branch.c:666 builtin/branch.c:668
msgid "print only branches that contain the commit"
-msgstr "imprimir apenas ramos que contenham a memória"
+msgstr "mostrar apenas ramos que contenham a memória"
-#: builtin/branch.c:645 builtin/branch.c:647
+#: builtin/branch.c:667 builtin/branch.c:669
msgid "print only branches that don't contain the commit"
-msgstr "imprimir apenas ramos que contenham outro commit"
+msgstr "mostrar apenas ramos a que falte a memória"
-#: builtin/branch.c:650
+#: builtin/branch.c:672
msgid "Specific git-branch actions:"
msgstr "Ações específicas de git-branch:"
-#: builtin/branch.c:651
+#: builtin/branch.c:673
msgid "list both remote-tracking and local branches"
-msgstr "listar ramos de monitorização remotos e ramos locais"
+msgstr "listar quer ramos de monitorização remotos quer ramos locais"
-#: builtin/branch.c:653
+#: builtin/branch.c:675
msgid "delete fully merged branch"
-msgstr "eliminar um ramo totalmente integrado"
+msgstr "eliminar ramo que está totalmente junto"
-#: builtin/branch.c:654
+#: builtin/branch.c:676
msgid "delete branch (even if not merged)"
msgstr "elimina ramo (mesmo que esteja por juntar)"
-#: builtin/branch.c:655
+#: builtin/branch.c:677
msgid "move/rename a branch and its reflog"
-msgstr "mover/renomear ramo e seu reflog"
+msgstr "mover/renomear ramo e seu registo-ref"
-#: builtin/branch.c:656
+#: builtin/branch.c:678
msgid "move/rename a branch, even if target exists"
-msgstr "mover/renomear um ramo, mesmo se alvo exista"
+msgstr "mover/renomear um ramo, mesmo se existe alvo"
-#: builtin/branch.c:657
+#: builtin/branch.c:679
msgid "copy a branch and its reflog"
-msgstr "copiar ramo e seu reflog"
+msgstr "copiar ramo e seu registo-ref"
-#: builtin/branch.c:658
+#: builtin/branch.c:680
msgid "copy a branch, even if target exists"
-msgstr "copiar um ramo, mesmo se alvo exista"
+msgstr "copiar um ramo, mesmo se existe alvo"
-#: builtin/branch.c:659
+#: builtin/branch.c:681
msgid "list branch names"
-msgstr "listar os nomes dos ramos"
+msgstr "listar nomes de ramos"
-#: builtin/branch.c:660
+#: builtin/branch.c:682
msgid "show current branch name"
msgstr "mostrar nome de ramo atual"
-#: builtin/branch.c:661
+#: builtin/branch.c:683 builtin/submodule--helper.c:3075
msgid "create the branch's reflog"
-msgstr "criar reflog do ramo"
+msgstr "criar registo-ref de ramo"
-#: builtin/branch.c:663
+#: builtin/branch.c:685
msgid "edit the description for the branch"
-msgstr "editar a descrição do ramo"
+msgstr "editar a descrição de ramo"
-#: builtin/branch.c:664
+#: builtin/branch.c:686
msgid "force creation, move/rename, deletion"
-msgstr "forçar criação, mover/mudar o nome ou exclusão"
+msgstr "forçar criação, mover/renomear, eliminação"
-#: builtin/branch.c:665
+#: builtin/branch.c:687
msgid "print only branches that are merged"
-msgstr "imprimir apenas os ramos que foram integrados"
+msgstr "mostrar apenas ramos que estão juntos"
-#: builtin/branch.c:666
+#: builtin/branch.c:688
msgid "print only branches that are not merged"
-msgstr "imprimir apenas ramos que estão por juntar"
+msgstr "mostrar apenas ramos que estão por juntar"
-#: builtin/branch.c:667
+#: builtin/branch.c:689
msgid "list branches in columns"
msgstr "listar ramos em colunas"
-#: builtin/branch.c:669 builtin/for-each-ref.c:44 builtin/notes.c:415
-#: builtin/notes.c:418 builtin/notes.c:581 builtin/notes.c:584
-#: builtin/tag.c:477
+#: builtin/branch.c:691 builtin/for-each-ref.c:45 builtin/notes.c:413
+#: builtin/notes.c:416 builtin/notes.c:579 builtin/notes.c:582
+#: builtin/tag.c:476
msgid "object"
msgstr "objeto"
-#: builtin/branch.c:670
+#: builtin/branch.c:692
msgid "print only branches of the object"
-msgstr "imprimir apenas ramos de objeto"
+msgstr "mostrar apenas ramos de objeto"
-#: builtin/branch.c:671 builtin/for-each-ref.c:50 builtin/tag.c:484
+#: builtin/branch.c:693 builtin/for-each-ref.c:51 builtin/tag.c:483
msgid "sorting and filtering are case insensitive"
msgstr "ordenar e filtrar são insensíveis a maiúsculas"
-#: builtin/branch.c:672 builtin/for-each-ref.c:40 builtin/tag.c:482
-#: builtin/verify-tag.c:38
+#: builtin/branch.c:694 builtin/ls-files.c:667
+msgid "recurse through submodules"
+msgstr "percorrer recursivamente pelos submódulos"
+
+#: builtin/branch.c:695 builtin/for-each-ref.c:41 builtin/ls-tree.c:358
+#: builtin/tag.c:481 builtin/verify-tag.c:38
msgid "format to use for the output"
msgstr "formato a usar na saída"
-#: builtin/branch.c:695 builtin/clone.c:794
+#: builtin/branch.c:718 builtin/clone.c:684
msgid "HEAD not found below refs/heads!"
-msgstr "HEAD por encontrar em refs/heads!"
+msgstr "HEAD ficou por encontrar em refs/heads!"
-#: builtin/branch.c:719
-msgid "--column and --verbose are incompatible"
-msgstr "--column e --verbose são incompatíveis"
+#: builtin/branch.c:739
+msgid ""
+"branch with --recurse-submodules can only be used if submodule."
+"propagateBranches is enabled"
+msgstr ""
+
+#: builtin/branch.c:741
+msgid "--recurse-submodules can only be used to create branches"
+msgstr ""
-#: builtin/branch.c:734 builtin/branch.c:790 builtin/branch.c:799
+#: builtin/branch.c:770 builtin/branch.c:826 builtin/branch.c:835
msgid "branch name required"
msgstr "nome do ramo é obrigatório"
-#: builtin/branch.c:766
+#: builtin/branch.c:802
msgid "Cannot give description to detached HEAD"
-msgstr "Impossível dar descrição a HEAD solta"
+msgstr "Incapaz de dar descrição a HEAD desanexada"
-#: builtin/branch.c:771
+#: builtin/branch.c:807
msgid "cannot edit description of more than one branch"
msgstr "incapaz editar descrição de mais do que um ramo"
-#: builtin/branch.c:778
+#: builtin/branch.c:814
#, c-format
msgid "No commit on branch '%s' yet."
-msgstr "Ramo '%s' ainda tem commit nenhum."
+msgstr "Ainda sem memórias em ramo '%s'."
-#: builtin/branch.c:781
+#: builtin/branch.c:817
#, c-format
msgid "No branch named '%s'."
msgstr "Ramo nenhum denominado '%s'."
-#: builtin/branch.c:796
+#: builtin/branch.c:832
msgid "too many branches for a copy operation"
-msgstr "demasiados ramos para operação de cópia"
+msgstr "demasiados ramos para uma operação de cópia"
-#: builtin/branch.c:805
+#: builtin/branch.c:841
msgid "too many arguments for a rename operation"
-msgstr "demasiados ramos para operação de renomeação"
+msgstr "demasiados argumentos para uma operação de renomeação"
-#: builtin/branch.c:810
+#: builtin/branch.c:846
msgid "too many arguments to set new upstream"
-msgstr "demasiados ramos para definir novo ramo a montante"
+msgstr "demasiados argumentos para definir novo upstream"
-#: builtin/branch.c:814
+#: builtin/branch.c:850
#, c-format
msgid ""
"could not set upstream of HEAD to %s when it does not point to any branch."
@@ -11614,72 +12182,73 @@ msgstr ""
"apenas pode definir upstream de HEAD para %s quando aponta para qualquer "
"ramo."
-#: builtin/branch.c:817 builtin/branch.c:840
+#: builtin/branch.c:853 builtin/branch.c:873
#, c-format
msgid "no such branch '%s'"
-msgstr "esse ramo '%s' é inexistente"
+msgstr "ramo '%s' inexistente"
-#: builtin/branch.c:821
+#: builtin/branch.c:857
#, c-format
msgid "branch '%s' does not exist"
msgstr "ramo '%s' é inexistente"
-#: builtin/branch.c:834
+#: builtin/branch.c:867
msgid "too many arguments to unset upstream"
-msgstr "demasiados argumentos para desdefinir upstream"
+msgstr "demasiados argumentos para indefinir upstream"
-#: builtin/branch.c:838
+#: builtin/branch.c:871
msgid "could not unset upstream of HEAD when it does not point to any branch."
msgstr ""
-"apenas posso desdefinir upstream de HEAD quando aponta para qualquer ramo."
+"apenas posso indefinir upstream de HEAD quando aponta para qualquer ramo."
-#: builtin/branch.c:844
+#: builtin/branch.c:877
#, c-format
msgid "Branch '%s' has no upstream information"
msgstr "Ramo '%s' tem informação de upstream nenhuma"
-#: builtin/branch.c:854
+#: builtin/branch.c:890
msgid ""
"The -a, and -r, options to 'git branch' do not take a branch name.\n"
"Did you mean to use: -a|-r --list <pattern>?"
msgstr ""
"As opções -a, e -r, em 'git branch' levam nome de branch nenhum.\n"
-"Quiseste utilizar: -a|-r --list <pattern>? "
+"Quiseste utilizar: -a|-r --list <padrão>? "
-#: builtin/branch.c:858
+#: builtin/branch.c:894
msgid ""
"the '--set-upstream' option is no longer supported. Please use '--track' or "
"'--set-upstream-to' instead."
msgstr ""
-"A opção --set-upstream está obsoleta. Por favor, usa '--track' ou '--set-"
-"upstream-to' invés."
+"opção --set-upstream está obsoleta. Por favor, usa '--track' ou '--set-"
+"upstream-to invés."
-#: builtin/bugreport.c:15
+#: builtin/bugreport.c:16
msgid "git version:\n"
msgstr "versão git:\n"
-#: builtin/bugreport.c:21
+#: builtin/bugreport.c:22
#, c-format
msgid "uname() failed with error '%s' (%d)\n"
-msgstr ""
+msgstr "uname() falhou com erro '%s' (%d)\n"
-#: builtin/bugreport.c:31
+#: builtin/bugreport.c:32
msgid "compiler info: "
-msgstr ""
+msgstr "info de compilador: "
-#: builtin/bugreport.c:34
+#: builtin/bugreport.c:35
msgid "libc info: "
-msgstr ""
+msgstr "info de libc: "
-#: builtin/bugreport.c:80
+#: builtin/bugreport.c:49
msgid "not run from a git repository - no hooks to show\n"
-msgstr ""
+msgstr "executado fora de repositório git - com ganchos nenhuns para mostrar\n"
-#: builtin/bugreport.c:90
+#: builtin/bugreport.c:62
msgid "git bugreport [-o|--output-directory <file>] [-s|--suffix <format>]"
msgstr ""
+"git bugreport [-o|--output-directory <ficheiro>] [-s|--suffix <formato>]"
-#: builtin/bugreport.c:97
+#: builtin/bugreport.c:69
msgid ""
"Thank you for filling out a Git bug report!\n"
"Please answer the following questions to help us understand your issue.\n"
@@ -11698,41 +12267,36 @@ msgid ""
"You can delete any lines you don't wish to share.\n"
msgstr ""
-#: builtin/bugreport.c:136
+#: builtin/bugreport.c:108
msgid "specify a destination for the bugreport file"
-msgstr ""
+msgstr "especifica um destino para o ficheiro de reporte de bug"
-#: builtin/bugreport.c:138
+#: builtin/bugreport.c:110
msgid "specify a strftime format suffix for the filename"
-msgstr ""
+msgstr "especifica um sufixo strftime para o ficheiro"
-#: builtin/bugreport.c:160
+#: builtin/bugreport.c:132
#, c-format
msgid "could not create leading directories for '%s'"
msgstr "incapaz criar pastas superiores para '%s'"
-#: builtin/bugreport.c:167
+#: builtin/bugreport.c:139
msgid "System Info"
-msgstr ""
+msgstr "Info de sistema"
-#: builtin/bugreport.c:170
+#: builtin/bugreport.c:142
msgid "Enabled Hooks"
-msgstr "Hooks Ativados"
-
-#: builtin/bugreport.c:177
-#, c-format
-msgid "couldn't create a new file at '%s'"
-msgstr "incapaz criar novo ficheiro em '%s'"
+msgstr "Ganchos Ativados"
-#: builtin/bugreport.c:180
+#: builtin/bugreport.c:149
#, c-format
msgid "unable to write to %s"
msgstr "incapaz escrever para %s"
-#: builtin/bugreport.c:190
+#: builtin/bugreport.c:159
#, c-format
msgid "Created new report at '%s'.\n"
-msgstr ""
+msgstr "Criado novo reporte em '%s'.\n"
#: builtin/bundle.c:15 builtin/bundle.c:23
msgid "git bundle create [<options>] <file> <git-rev-list args>"
@@ -11744,141 +12308,251 @@ msgstr "git bundle verify [<opções>] <ficheiro>"
#: builtin/bundle.c:17 builtin/bundle.c:33
msgid "git bundle list-heads <file> [<refname>...]"
-msgstr ""
+msgstr "git bundle list-heads <ficheiro> [<nome-ref>...]"
#: builtin/bundle.c:18 builtin/bundle.c:38
msgid "git bundle unbundle <file> [<refname>...]"
-msgstr ""
+msgstr "git bundle unbundle <ficheiro> [<nome-ref>...]"
-#: builtin/bundle.c:67 builtin/pack-objects.c:3907
+#: builtin/bundle.c:65 builtin/pack-objects.c:3899
msgid "do not show progress meter"
msgstr "mostrar medidor de progresso nenhum"
-#: builtin/bundle.c:69 builtin/pack-objects.c:3909
+#: builtin/bundle.c:67 builtin/bundle.c:168 builtin/pack-objects.c:3901
msgid "show progress meter"
msgstr "mostrar medidor de progresso"
-#: builtin/bundle.c:71 builtin/pack-objects.c:3911
+#: builtin/bundle.c:69 builtin/pack-objects.c:3903
msgid "show progress meter during object writing phase"
msgstr "mostrar medidor de progresso durante fase de escrita de objetos"
-#: builtin/bundle.c:74 builtin/pack-objects.c:3914
+#: builtin/bundle.c:72 builtin/pack-objects.c:3906
msgid "similar to --all-progress when progress meter is shown"
msgstr "semelhante a --all-progress quando o medidor de progresso é mostrado"
-#: builtin/bundle.c:76
+#: builtin/bundle.c:74
msgid "specify bundle format version"
-msgstr ""
+msgstr "especifica formato de versão de arquivo-pacote"
-#: builtin/bundle.c:96
+#: builtin/bundle.c:94
msgid "Need a repository to create a bundle."
-msgstr "É necessário um repositório para criar um bundle."
+msgstr "É necessário um repositório para criar um arquivo-pacote."
-#: builtin/bundle.c:109
+#: builtin/bundle.c:108
msgid "do not show bundle details"
-msgstr "mostrar nenhuns detalhes de conjunto"
+msgstr "mostrar nenhuns detalhes de arquivo-pacote"
-#: builtin/bundle.c:128
+#: builtin/bundle.c:127
#, c-format
msgid "%s is okay\n"
msgstr "%s está ok\n"
-#: builtin/bundle.c:179
+#: builtin/bundle.c:183
msgid "Need a repository to unbundle."
-msgstr "É preciso um repositório para desempacotar."
+msgstr "É preciso um repositório para desarquivar."
-#: builtin/bundle.c:191 builtin/remote.c:1700
-msgid "be verbose; must be placed before a subcommand"
-msgstr "ser verboso; deve ser colocado antes de um subcomando"
+#: builtin/bundle.c:186
+msgid "Unbundling objects"
+msgstr "Desarquivando objetos"
-#: builtin/bundle.c:213 builtin/remote.c:1731
+#: builtin/bundle.c:220 builtin/remote.c:1758
#, c-format
msgid "Unknown subcommand: %s"
msgstr "Subcomando desconhecido: %s"
-#: builtin/cat-file.c:596
+#: builtin/cat-file.c:568
+msgid "flush is only for --buffer mode"
+msgstr ""
+
+#: builtin/cat-file.c:612
+msgid "empty command in input"
+msgstr "comando vazio na entrada"
+
+#: builtin/cat-file.c:614
+#, c-format
+msgid "whitespace before command: '%s'"
+msgstr "espaço-em-branco antes de comando: '%s'"
+
+#: builtin/cat-file.c:623
+#, c-format
+msgid "%s requires arguments"
+msgstr "%s exige argumentos"
+
+#: builtin/cat-file.c:628
+#, c-format
+msgid "%s takes no arguments"
+msgstr "%s leva argumentos nenhuns"
+
+#: builtin/cat-file.c:636
+#, c-format
+msgid "unknown command: '%s'"
+msgstr "comando desconhecido: '%s'"
+
+#: builtin/cat-file.c:795
+msgid "only one batch option may be specified"
+msgstr "apenas uma opção batch pode ser especificada"
+
+#: builtin/cat-file.c:824
+msgid "git cat-file <type> <object>"
+msgstr "git cat-file <type> <objeto>"
+
+#: builtin/cat-file.c:825
+msgid "git cat-file (-e | -p) <object>"
+msgstr "git cat-file (-e | -p) <objeto>"
+
+#: builtin/cat-file.c:826
+msgid "git cat-file (-t | -s) [--allow-unknown-type] <object>"
+msgstr ""
+
+#: builtin/cat-file.c:827
msgid ""
-"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 | --batch-command) [--batch-all-"
+"objects]\n"
+" [--buffer] [--follow-symlinks] [--unordered]\n"
+" [--textconv | --filters]"
msgstr ""
-"git cat-file (-t [--allow-unknown-type] | -s [--allow-unknown-type] | -e | -"
-"p | <tipo> | --textconv | --filters) [--path=<caminho>] <objeto>"
+"git cat-file (--batch | --batch-check | --batch-command) [--batch-all-"
+"objects]\n"
+" [--buffer] [--follow-symlinks] [--unordered]\n"
+" [--textconv | --filters]"
-#: builtin/cat-file.c:597
+#: builtin/cat-file.c:830
msgid ""
-"git cat-file (--batch[=<format>] | --batch-check[=<format>]) [--follow-"
-"symlinks] [--textconv | --filters]"
+"git cat-file (--textconv | --filters)\n"
+" [<rev>:<path|tree-ish> | --path=<path|tree-ish> <rev>]"
msgstr ""
-"git cat-file (--batch | --batch-check) [--follow-symlinks] [--textconv | --"
-"filters]"
-#: builtin/cat-file.c:618
-msgid "only one batch option may be specified"
-msgstr "apenas uma opção batch pode ser especificada"
+#: builtin/cat-file.c:836
+msgid "Check object existence or emit object contents"
+msgstr "Verifica existência de objeto ou emite conteúdo de objeto"
-#: builtin/cat-file.c:636
-msgid "<type> can be one of: blob, tree, commit, tag"
-msgstr "<tipo> pode ser um de: blob, tree, commit, tag"
+#: builtin/cat-file.c:838
+msgid "check if <object> exists"
+msgstr "verificando se <objeto> existe"
-#: builtin/cat-file.c:637
-msgid "show object type"
-msgstr "mostrar tipo de objeto"
+#: builtin/cat-file.c:839
+msgid "pretty-print <object> content"
+msgstr "mostrar bonitinho o conteúdo de <objeto>"
-#: builtin/cat-file.c:638
+#: builtin/cat-file.c:841
+msgid "Emit [broken] object attributes"
+msgstr ""
+
+#: builtin/cat-file.c:842
+msgid "show object type (one of 'blob', 'tree', 'commit', 'tag', ...)"
+msgstr ""
+"mostrar tipo de objeto (um de 'blob', 'árvore', 'memória', 'etiqueta', ...)"
+
+#: builtin/cat-file.c:843
msgid "show object size"
msgstr "mostrar tamanho do objeto"
-#: builtin/cat-file.c:640
-msgid "exit with zero when there's no error"
-msgstr "sair com retorno zero quando há erro nenhum"
+#: builtin/cat-file.c:845
+msgid "allow -s and -t to work with broken/corrupt objects"
+msgstr "permitir que -s e -t funcionem com objetos danificados/corrompidos"
-#: builtin/cat-file.c:641
-msgid "pretty-print object's content"
-msgstr "mostrar conteúdo do objeto com impressão bonita"
+#: builtin/cat-file.c:847
+msgid "Batch objects requested on stdin (or --batch-all-objects)"
+msgstr ""
-#: builtin/cat-file.c:643
-msgid "for blob objects, run textconv on object's content"
-msgstr "executar textconv no conteúdo de objetos blob"
+#: builtin/cat-file.c:849
+msgid "show full <object> or <rev> contents"
+msgstr ""
-#: builtin/cat-file.c:645
-msgid "for blob objects, run filters on object's content"
-msgstr "para objetos blob, correr filtros sobre o conteúdo do objeto"
+#: builtin/cat-file.c:853
+msgid "like --batch, but don't emit <contents>"
+msgstr ""
-#: builtin/cat-file.c:646
-msgid "blob"
-msgstr "blob"
+#: builtin/cat-file.c:857
+msgid "read commands from stdin"
+msgstr "ler comandos de entrada padrão"
-#: builtin/cat-file.c:647
-msgid "use a specific path for --textconv/--filters"
-msgstr "usar um caminho específico para --textconv/--filters"
+#: builtin/cat-file.c:861
+msgid "with --batch[-check]: ignores stdin, batches all known objects"
+msgstr ""
-#: builtin/cat-file.c:649
-msgid "allow -s and -t to work with broken/corrupt objects"
-msgstr "permitir que -s e -t funcionem com objetos danificados/corrompidos"
+#: builtin/cat-file.c:863
+msgid "Change or optimize batch output"
+msgstr ""
-#: builtin/cat-file.c:650
+#: builtin/cat-file.c:864
msgid "buffer --batch output"
msgstr "carregar a saída de --batch"
-#: builtin/cat-file.c:652
-msgid "show info and content of objects fed from the standard input"
-msgstr "mostrar informação e conteúdo dos objetos fornecidos na entrada padrão"
+#: builtin/cat-file.c:866
+msgid "follow in-tree symlinks"
+msgstr "seguir ligação simbólica de dentro da árvore"
-#: builtin/cat-file.c:656
-msgid "show info about objects fed from the standard input"
-msgstr "mostrar informação sobre os objetos fornecidos na entrada padrão"
+#: builtin/cat-file.c:868
+msgid "do not order objects before emitting them"
+msgstr "proibido ordenar objetos antes de emiti-los"
-#: builtin/cat-file.c:660
-msgid "follow in-tree symlinks (used with --batch or --batch-check)"
+#: builtin/cat-file.c:870
+msgid ""
+"Emit object (blob or tree) with conversion or filter (stand-alone, or with "
+"batch)"
msgstr ""
-"seguir ligações simbólica de dentro da árvore (usado com --batch ou --batch-check)"
-#: builtin/cat-file.c:662
-msgid "show all objects with --batch or --batch-check"
-msgstr "mostrar todos os objetos com --batch ou --batch-check"
+#: builtin/cat-file.c:872
+msgid "run textconv on object's content"
+msgstr "executar textconv sobre o conteúdo de objeto"
+
+#: builtin/cat-file.c:874
+msgid "run filters on object's content"
+msgstr "executar filtros sobre o conteúdo de objeto"
+
+#: builtin/cat-file.c:875
+msgid "blob|tree"
+msgstr "blob|árvore"
-#: builtin/cat-file.c:664
-msgid "do not order --batch-all-objects output"
+#: builtin/cat-file.c:876
+msgid "use a <path> for (--textconv | --filters); Not with 'batch'"
+msgstr "usar um <caminho> para (--textconv | --filters); sem 'batch'"
+
+#: builtin/cat-file.c:894
+#, c-format
+msgid "'%s=<%s>' needs '%s' or '%s'"
+msgstr ""
+
+#: builtin/cat-file.c:896
+msgid "path|tree-ish"
+msgstr "caminho|arvoredo"
+
+#: builtin/cat-file.c:903 builtin/cat-file.c:906 builtin/cat-file.c:909
+#, c-format
+msgid "'%s' requires a batch mode"
+msgstr "'%s' exige um modo em lote"
+
+#: builtin/cat-file.c:921
+#, c-format
+msgid "'-%c' is incompatible with batch mode"
+msgstr "'-%c' é incompatível com modo em lote"
+
+#: builtin/cat-file.c:924
+msgid "batch modes take no arguments"
+msgstr "modos lote levam nenhuns argumentos"
+
+#: builtin/cat-file.c:932 builtin/cat-file.c:935
+#, c-format
+msgid "<rev> required with '%s'"
+msgstr ""
+
+#: builtin/cat-file.c:938
+#, c-format
+msgid "<object> required with '-%c'"
+msgstr ""
+
+#: builtin/cat-file.c:943 builtin/notes.c:374 builtin/notes.c:429
+#: builtin/notes.c:507 builtin/notes.c:519 builtin/notes.c:596
+#: builtin/notes.c:663 builtin/notes.c:813 builtin/notes.c:965
+#: builtin/notes.c:987 builtin/prune-packed.c:25 builtin/receive-pack.c:2489
+#: builtin/tag.c:592
+msgid "too many arguments"
+msgstr ""
+
+#: builtin/cat-file.c:947
+#, c-format
+msgid "only two arguments allowed in <type> <object> mode, not %d"
msgstr ""
#: builtin/check-attr.c:13
@@ -11891,22 +12565,22 @@ msgstr "git check-attr --stdin [-z] [-a | --all | <atributo>...]"
#: builtin/check-attr.c:21
msgid "report all attributes set on file"
-msgstr "apresentar todos os atributos definidos no ficheiro"
+msgstr "reportar todos os atributos definidos no ficheiro"
#: builtin/check-attr.c:22
msgid "use .gitattributes only from the index"
-msgstr "usar .gitattributes apenas de cenário"
+msgstr "usar apenas .gitattributes de cenário"
-#: builtin/check-attr.c:23 builtin/check-ignore.c:25 builtin/hash-object.c:102
+#: builtin/check-attr.c:23 builtin/check-ignore.c:25 builtin/hash-object.c:101
msgid "read file names from stdin"
-msgstr "ler os nomes dos ficheiros da entrada padrão"
+msgstr "ler nomes de ficheiros da entrada padrão"
#: builtin/check-attr.c:25 builtin/check-ignore.c:27
msgid "terminate input and output records by a NUL character"
msgstr "terminar registos da entrada e da saída com um carácter NUL"
-#: builtin/check-ignore.c:21 builtin/checkout.c:1515 builtin/gc.c:549
-#: builtin/worktree.c:493
+#: builtin/check-ignore.c:21 builtin/checkout.c:1550 builtin/gc.c:550
+#: builtin/worktree.c:565
msgid "suppress progress reporting"
msgstr "suprimir informação de progresso"
@@ -11928,7 +12602,7 @@ msgstr "-z só faz sentido com --stdin"
#: builtin/check-ignore.c:170
msgid "no path specified"
-msgstr "path nenhum especificado"
+msgstr "caminho nenhum especificado"
#: builtin/check-ignore.c:174
msgid "--quiet is only valid with a single pathname"
@@ -11963,218 +12637,215 @@ msgstr "contato nenhum especificado"
msgid "git checkout--worker [<options>]"
msgstr "git checkout--worker [<opções>]"
-#: builtin/checkout--worker.c:118 builtin/checkout-index.c:201
-#: builtin/column.c:31 builtin/submodule--helper.c:1892
-#: builtin/submodule--helper.c:1895 builtin/submodule--helper.c:1903
-#: builtin/submodule--helper.c:2350 builtin/submodule--helper.c:2896
-#: builtin/submodule--helper.c:2899 builtin/worktree.c:491
-#: builtin/worktree.c:728
+#: builtin/checkout--worker.c:118 builtin/checkout-index.c:235
+#: builtin/column.c:31 builtin/column.c:32 builtin/submodule--helper.c:1878
+#: builtin/submodule--helper.c:1881 builtin/submodule--helper.c:1889
+#: builtin/submodule--helper.c:2716 builtin/worktree.c:563
+#: builtin/worktree.c:808
msgid "string"
msgstr "string"
-#: builtin/checkout--worker.c:119 builtin/checkout-index.c:202
+#: builtin/checkout--worker.c:119 builtin/checkout-index.c:236
msgid "when creating files, prepend <string>"
msgstr "ao criar ficheiros, preceder com <string>"
-#: builtin/checkout-index.c:152
+#: builtin/checkout-index.c:184
msgid "git checkout-index [<options>] [--] [<file>...]"
msgstr "git checkout-index [<opções>] [--] [<ficheiro>...]"
-#: builtin/checkout-index.c:169
+#: builtin/checkout-index.c:201
msgid "stage should be between 1 and 3 or all"
-msgstr "stage deve ser um número entre 1 e 3 ou o parâmetro all"
+msgstr "cenário tem de ser entre 1 e 3 ou all"
-#: builtin/checkout-index.c:187
+#: builtin/checkout-index.c:219
msgid "check out all files in the index"
-msgstr "extrair todos os ficheiros presentes no índice"
+msgstr "observar todos os ficheiros de cenário"
-#: builtin/checkout-index.c:188
+#: builtin/checkout-index.c:221
+msgid "do not skip files with skip-worktree set"
+msgstr ""
+
+#: builtin/checkout-index.c:222
msgid "force overwrite of existing files"
msgstr "forçar o sobrescrever de ficheiros existentes"
-#: builtin/checkout-index.c:190
+#: builtin/checkout-index.c:224
msgid "no warning for existing files and files not in index"
-msgstr ""
-"mostrar aviso nenhum para ficheiros existentes e ficheiros fora do index"
+msgstr "aviso nenhum para ficheiros existentes e ficheiros fora de cenário"
-#: builtin/checkout-index.c:192
+#: builtin/checkout-index.c:226
msgid "don't checkout new files"
-msgstr "extrair ficheiros novos nenhuns"
+msgstr "observar ficheiros novos nenhuns"
-#: builtin/checkout-index.c:194
+#: builtin/checkout-index.c:228
msgid "update stat information in the index file"
-msgstr "atualizar informação de stat de ficheiro de cenário"
+msgstr "atualizar informação de stat no ficheiro de cenário"
-#: builtin/checkout-index.c:198
+#: builtin/checkout-index.c:232
msgid "read list of paths from the standard input"
msgstr "ler lista de caminhos da entrada padrão"
-#: builtin/checkout-index.c:200
+#: builtin/checkout-index.c:234
msgid "write the content to temporary files"
msgstr "escrever o conteúdo em ficheiros temporários"
-#: builtin/checkout-index.c:204
+#: builtin/checkout-index.c:238
msgid "copy out the files from named stage"
-msgstr "copiar os ficheiros do estágio indicado"
+msgstr "copiar os ficheiros do cenário indicado"
-#: builtin/checkout.c:33
+#: builtin/checkout.c:34
msgid "git checkout [<options>] <branch>"
msgstr "git checkout [<opções>] <ramo>"
-#: builtin/checkout.c:34
+#: builtin/checkout.c:35
msgid "git checkout [<options>] [<branch>] -- <file>..."
msgstr "git checkout [<opções>] [<ramo>] -- <ficheiro>..."
-#: builtin/checkout.c:39
+#: builtin/checkout.c:40
msgid "git switch [<options>] [<branch>]"
msgstr "git switch [<opções>] [<ramo>]"
-#: builtin/checkout.c:44
+#: builtin/checkout.c:45
msgid "git restore [<options>] [--source=<branch>] <file>..."
msgstr "git restore [<opções>] [--source=<ramo>] <ficheiro>..."
-#: builtin/checkout.c:190 builtin/checkout.c:229
+#: builtin/checkout.c:199 builtin/checkout.c:238
#, c-format
msgid "path '%s' does not have our version"
-msgstr "path '%s' é diferente da nossa versão"
+msgstr "caminho '%s' é diferente da nossa versão"
-#: builtin/checkout.c:192 builtin/checkout.c:231
+#: builtin/checkout.c:201 builtin/checkout.c:240
#, c-format
msgid "path '%s' does not have their version"
-msgstr "path '%s' é diferente da versão deles"
+msgstr "caminho '%s' é diferente da versão deles"
-#: builtin/checkout.c:208
+#: builtin/checkout.c:217
#, c-format
msgid "path '%s' does not have all necessary versions"
-msgstr "path '%s' falta todas as versões necessárias"
+msgstr "caminho '%s' falta todas as versões necessárias"
-#: builtin/checkout.c:261
+#: builtin/checkout.c:271
#, c-format
msgid "path '%s' does not have necessary versions"
-msgstr "path '%s' falta as versões necessárias"
+msgstr "caminho '%s' falta as versões necessárias"
-#: builtin/checkout.c:278
+#: builtin/checkout.c:291
#, c-format
msgid "path '%s': cannot merge"
-msgstr "path '%s': incapaz juntar"
+msgstr "caminho '%s': incapaz juntar"
-#: builtin/checkout.c:294
+#: builtin/checkout.c:307
#, c-format
msgid "Unable to add merge result for '%s'"
-msgstr "Impossível adicionar o resultado da junção para '%s'"
+msgstr "Incapaz adicionar o resultado da junção para '%s'"
-#: builtin/checkout.c:411
+#: builtin/checkout.c:424
#, c-format
msgid "Recreated %d merge conflict"
msgid_plural "Recreated %d merge conflicts"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "Recriar %d conflito de junção"
+msgstr[1] "Recriar %d conflitos de junção"
-#: builtin/checkout.c:416
+#: builtin/checkout.c:429
#, c-format
msgid "Updated %d path from %s"
msgid_plural "Updated %d paths from %s"
msgstr[0] "Atualizado %d caminho de %s"
msgstr[1] "Atualizados %d caminhos de %s"
-#: builtin/checkout.c:423
+#: builtin/checkout.c:436
#, c-format
msgid "Updated %d path from the index"
msgid_plural "Updated %d paths from the index"
msgstr[0] ""
msgstr[1] ""
-#: builtin/checkout.c:446 builtin/checkout.c:449 builtin/checkout.c:452
-#: builtin/checkout.c:456
+#: builtin/checkout.c:459 builtin/checkout.c:462 builtin/checkout.c:465
+#: builtin/checkout.c:469
#, c-format
msgid "'%s' cannot be used with updating paths"
-msgstr "'%s' incapaz ser usado com paths em atualização"
+msgstr "'%s' incapaz ser usado com caminhos em atualização"
-#: builtin/checkout.c:459 builtin/checkout.c:462
-#, c-format
-msgid "'%s' cannot be used with %s"
-msgstr "'%s' incapaz ser usado com %s"
-
-#: builtin/checkout.c:466
+#: builtin/checkout.c:479
#, c-format
msgid "Cannot update paths and switch to branch '%s' at the same time."
-msgstr "Incapaz atualizar paths e mudar para ramo '%s' ao mesmo tempo."
+msgstr "Incapaz atualizar caminhos e, ao mesmo tempo, mudar para ramo '%s'."
-#: builtin/checkout.c:470
+#: builtin/checkout.c:483
#, c-format
msgid "neither '%s' or '%s' is specified"
msgstr ""
-#: builtin/checkout.c:474
+#: builtin/checkout.c:487
#, c-format
msgid "'%s' must be used when '%s' is not specified"
msgstr "'%s' tem de ser usado quando '%s' está por ser especificado"
-#: builtin/checkout.c:479 builtin/checkout.c:484
+#: builtin/checkout.c:492 builtin/checkout.c:497
#, c-format
msgid "'%s' or '%s' cannot be used with %s"
-msgstr "'%s' ou '%s' impossível ser usado com %s"
+msgstr "'%s' ou '%s' incapaz ser usado com %s"
-#: builtin/checkout.c:558 builtin/checkout.c:565
+#: builtin/checkout.c:571 builtin/checkout.c:578
#, c-format
msgid "path '%s' is unmerged"
-msgstr "path '%s' está por juntar"
+msgstr "caminho '%s' está por juntar"
-#: builtin/checkout.c:734
+#: builtin/checkout.c:753
msgid "you need to resolve your current index first"
msgstr "primeiro precisas resolver teu cenário atual"
-#: builtin/checkout.c:788
+#: builtin/checkout.c:809
#, c-format
msgid ""
"cannot continue with staged changes in the following files:\n"
"%s"
msgstr ""
-#: builtin/checkout.c:881
+#: builtin/checkout.c:902
#, c-format
msgid "Can not do reflog for '%s': %s\n"
msgstr "Incapaz fazer reflog para '%s': %s\n"
-#: builtin/checkout.c:923
+#: builtin/checkout.c:947
msgid "HEAD is now at"
msgstr "HEAD está agora em"
-#: builtin/checkout.c:927 builtin/clone.c:725 t/helper/test-fast-rebase.c:203
+#: builtin/checkout.c:951 builtin/clone.c:615 t/helper/test-fast-rebase.c:203
msgid "unable to update HEAD"
msgstr "incapaz atualizar HEAD"
-#: builtin/checkout.c:931
+#: builtin/checkout.c:955
#, c-format
msgid "Reset branch '%s'\n"
-msgstr "Repor ramo '%s'\n"
+msgstr "Restabelecer ramo '%s'\n"
-#: builtin/checkout.c:934
+#: builtin/checkout.c:958
#, c-format
msgid "Already on '%s'\n"
msgstr "Já em '%s'\n"
-#: builtin/checkout.c:938
+#: builtin/checkout.c:962
#, c-format
msgid "Switched to and reset branch '%s'\n"
-msgstr "Mudou para e repôs o ramo '%s'\n"
+msgstr "Trocou para e restabeleceu o ramo '%s'\n"
-#: builtin/checkout.c:940 builtin/checkout.c:1371
+#: builtin/checkout.c:964 builtin/checkout.c:1398
#, c-format
msgid "Switched to a new branch '%s'\n"
-msgstr "Mudou para o novo ramo '%s'\n"
+msgstr "Trocou para um novo ramo '%s'\n"
-#: builtin/checkout.c:942
+#: builtin/checkout.c:966
#, c-format
msgid "Switched to branch '%s'\n"
-msgstr "Mudou para o ramo '%s'\n"
+msgstr "Trocou para o ramo '%s'\n"
-#: builtin/checkout.c:993
+#: builtin/checkout.c:1017
#, c-format
msgid " ... and %d more.\n"
msgstr " ... e mais %d.\n"
-#: builtin/checkout.c:999
+#: builtin/checkout.c:1023
#, c-format
msgid ""
"Warning: you are leaving %d commit behind, not connected to\n"
@@ -12187,17 +12858,17 @@ msgid_plural ""
"\n"
"%s\n"
msgstr[0] ""
-"Aviso: estás deixando %d commit para trás, desconetado a qualquer dos teus "
-"ramos:\n"
+"Aviso: estás deixando %d memória para trás, desconectada de qualquer dos "
+"teus ramos:\n"
"\n"
"%s\n"
msgstr[1] ""
-"Aviso: estás deixando %d commits para trás, desconetado a qualquer dos teus "
-"ramos:\n"
+"Aviso: estás deixando %d memórias para trás, desconectadas de qualquer dos "
+"teus ramos:\n"
"\n"
"%s\n"
-#: builtin/checkout.c:1018
+#: builtin/checkout.c:1042
#, c-format
msgid ""
"If you want to keep it by creating a new branch, this may be a good time\n"
@@ -12212,38 +12883,38 @@ msgid_plural ""
" git branch <new-branch-name> %s\n"
"\n"
msgstr[0] ""
-"Se deseja mantê-lo, criando um novo ramo, agora seria uma boa altura\n"
+"Se desejas mantê-lo, criando um novo ramo, agora é uma boa altura\n"
"para fazê-lo com:\n"
"\n"
" git branch <nome-do-novo-ramo> %s\n"
"\n"
msgstr[1] ""
-"Se deseja mantê-los, criando um novo ramo, agora seria uma boa altura\n"
+"Se desejas mantê-los, criando um novo ramo, agora é uma boa altura\n"
"para fazê-lo com:\n"
"\n"
" git branch <nome-do-novo-ramo> %s\n"
"\n"
-#: builtin/checkout.c:1053
+#: builtin/checkout.c:1077
msgid "internal error in revision walk"
msgstr "erro interno durante o curso de revisões"
-#: builtin/checkout.c:1057
+#: builtin/checkout.c:1081
msgid "Previous HEAD position was"
msgstr "A posição anterior de HEAD era"
-#: builtin/checkout.c:1097 builtin/checkout.c:1366
+#: builtin/checkout.c:1124 builtin/checkout.c:1393
msgid "You are on a branch yet to be born"
-msgstr "Está num ramo ainda por nascer"
+msgstr "Estás num ramo ainda por nascer"
-#: builtin/checkout.c:1179
+#: builtin/checkout.c:1206
#, 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:1186
+#: builtin/checkout.c:1213
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"
@@ -12255,283 +12926,272 @@ msgid ""
"checkout.defaultRemote=origin in your config."
msgstr ""
-#: builtin/checkout.c:1196
+#: builtin/checkout.c:1223
#, c-format
msgid "'%s' matched multiple (%d) remote tracking branches"
-msgstr "'%s' correspondeu a múltiplos (%d) ramos remoto de monitorização"
+msgstr "'%s' correspondeu a múltiplos (%d) ramos remotos de monitorização"
-#: builtin/checkout.c:1262
+#: builtin/checkout.c:1289
msgid "only one reference expected"
msgstr "apenas uma referência esperada"
-#: builtin/checkout.c:1279
+#: builtin/checkout.c:1306
#, c-format
msgid "only one reference expected, %d given."
msgstr "esperava apenas uma referência, %d fornecidas."
-#: builtin/checkout.c:1325 builtin/worktree.c:268 builtin/worktree.c:436
+#: builtin/checkout.c:1352 builtin/worktree.c:338 builtin/worktree.c:508
#, c-format
msgid "invalid reference: %s"
msgstr "referência inválida: %s"
-#: builtin/checkout.c:1338 builtin/checkout.c:1707
+#: builtin/checkout.c:1365 builtin/checkout.c:1744
#, c-format
msgid "reference is not a tree: %s"
msgstr "referência é árvore nenhuma: %s"
-#: builtin/checkout.c:1385
+#: builtin/checkout.c:1413
#, c-format
msgid "a branch is expected, got tag '%s'"
-msgstr "esperado um ramo, recebi tag '%s'"
+msgstr "esperado um ramo, recebi etiqueta '%s'"
-#: builtin/checkout.c:1387
+#: builtin/checkout.c:1415
#, c-format
msgid "a branch is expected, got remote branch '%s'"
-msgstr "um ramo é esperado, recebi ramo remoto '%s'"
+msgstr "esperado um ramo, recebi ramo remoto '%s'"
-#: builtin/checkout.c:1388 builtin/checkout.c:1396
+#: builtin/checkout.c:1417 builtin/checkout.c:1426
#, c-format
msgid "a branch is expected, got '%s'"
msgstr "esperado um ramo, recebi '%s'"
-#: builtin/checkout.c:1391
+#: builtin/checkout.c:1420
#, c-format
msgid "a branch is expected, got commit '%s'"
-msgstr "é suposto um branch, recebi um commit '%s'"
+msgstr "esperado um ramo, recebi memória '%s'"
+
+#: builtin/checkout.c:1429
+msgid ""
+"If you want to detach HEAD at the commit, try again with the --detach option."
+msgstr ""
-#: builtin/checkout.c:1407
+#: builtin/checkout.c:1442
msgid ""
"cannot switch branch while merging\n"
"Consider \"git merge --quit\" or \"git worktree add\"."
msgstr ""
-#: builtin/checkout.c:1411
+#: builtin/checkout.c:1446
msgid ""
"cannot switch branch in the middle of an am session\n"
"Consider \"git am --quit\" or \"git worktree add\"."
msgstr ""
-#: builtin/checkout.c:1415
+#: builtin/checkout.c:1450
msgid ""
"cannot switch branch while rebasing\n"
"Consider \"git rebase --quit\" or \"git worktree add\"."
msgstr ""
-#: builtin/checkout.c:1419
+#: builtin/checkout.c:1454
msgid ""
"cannot switch branch while cherry-picking\n"
"Consider \"git cherry-pick --quit\" or \"git worktree add\"."
msgstr ""
-#: builtin/checkout.c:1423
+#: builtin/checkout.c:1458
msgid ""
"cannot switch branch while reverting\n"
"Consider \"git revert --quit\" or \"git worktree add\"."
msgstr ""
-#: builtin/checkout.c:1427
+#: builtin/checkout.c:1462
msgid "you are switching branch while bisecting"
-msgstr "estás a trocar de ramo enquanto bissetas"
+msgstr "estás trocando de ramo enquanto bissetas"
-#: builtin/checkout.c:1434
+#: builtin/checkout.c:1469
msgid "paths cannot be used with switching branches"
-msgstr "incapaz mudar ramo com o uso de paths"
+msgstr "incapaz usar caminhos com a troca de ramos"
-#: builtin/checkout.c:1437 builtin/checkout.c:1441 builtin/checkout.c:1445
+#: builtin/checkout.c:1472 builtin/checkout.c:1476 builtin/checkout.c:1480
#, c-format
msgid "'%s' cannot be used with switching branches"
-msgstr "incapaz de mudar ramo com o uso de '%s'"
+msgstr "incapaz usar '%s' com a troca de ramos"
-#: builtin/checkout.c:1449 builtin/checkout.c:1452 builtin/checkout.c:1455
-#: builtin/checkout.c:1460 builtin/checkout.c:1465
+#: builtin/checkout.c:1484 builtin/checkout.c:1487 builtin/checkout.c:1490
+#: builtin/checkout.c:1495 builtin/checkout.c:1500
#, c-format
msgid "'%s' cannot be used with '%s'"
-msgstr "'%s' é incapaz de ser usado com '%s'"
+msgstr "incapaz usar '%s' com '%s'"
-#: builtin/checkout.c:1462
+#: builtin/checkout.c:1497
#, c-format
msgid "'%s' cannot take <start-point>"
-msgstr "'%s' incapaz receber <start-point>"
+msgstr "'%s' incapaz de receber <ponto-inicial>"
-#: builtin/checkout.c:1470
+#: builtin/checkout.c:1505
#, c-format
msgid "Cannot switch branch to a non-commit '%s'"
-msgstr "Incapaz mudar ramo para '%s', pois está fora de ser um commit"
+msgstr "Apenas posso trocar ramo para uma memória, não para '%s'"
-#: builtin/checkout.c:1477
+#: builtin/checkout.c:1512
msgid "missing branch or commit argument"
msgstr "faltando argumento de ramo ou memória"
-#: builtin/checkout.c:1520
+#: builtin/checkout.c:1555
msgid "perform a 3-way merge with the new branch"
-msgstr "realizar uma integração com 3 pontos com o novo ramo"
+msgstr "realizar uma tri-junção com o novo ramo"
-#: builtin/checkout.c:1521 builtin/log.c:1810 parse-options.h:323
+#: builtin/checkout.c:1556 builtin/log.c:1844 parse-options.h:354
msgid "style"
msgstr "estilo"
-#: builtin/checkout.c:1522
-msgid "conflict style (merge or diff3)"
-msgstr "estilo de conflito (merge ou diff3)"
+#: builtin/checkout.c:1557
+msgid "conflict style (merge, diff3, or zdiff3)"
+msgstr "estilo de conflito (merge, diff3 ou zdiff3)"
-#: builtin/checkout.c:1534 builtin/worktree.c:488
+#: builtin/checkout.c:1569 builtin/worktree.c:560
msgid "detach HEAD at named commit"
-msgstr "destacar HEAD no commit indicado"
-
-#: builtin/checkout.c:1535
-msgid "set upstream info for new branch"
-msgstr "definir a informação do ramo a montante do novo ramo"
+msgstr "desanexar HEAD na memória indicada"
-#: builtin/checkout.c:1537
+#: builtin/checkout.c:1574
msgid "force checkout (throw away local modifications)"
msgstr "forçar observação (descartar modificações locais)"
-#: builtin/checkout.c:1539
+#: builtin/checkout.c:1576
msgid "new-branch"
msgstr "novo-ramo"
-#: builtin/checkout.c:1539
+#: builtin/checkout.c:1576
msgid "new unparented branch"
-msgstr "novo ramo sem pai"
+msgstr "novo ramo sem parente"
-#: builtin/checkout.c:1541 builtin/merge.c:301
+#: builtin/checkout.c:1578 builtin/merge.c:305
msgid "update ignored files (default)"
msgstr "atualizar ficheiros ignorados (predefinição)"
-#: builtin/checkout.c:1544
+#: builtin/checkout.c:1581
msgid "do not check if another worktree is holding the given ref"
-msgstr "incapaz verificar se outra worktree contém referência dada"
+msgstr "deixar por verificar se outra árvore-trabalho contém a ref dada"
-#: builtin/checkout.c:1557
+#: builtin/checkout.c:1594
msgid "checkout our version for unmerged files"
-msgstr "checkout a nossa versão dos ficheiros por juntar"
+msgstr "observa a nossa versão dos ficheiros por juntar"
-#: builtin/checkout.c:1560
+#: builtin/checkout.c:1597
msgid "checkout their version for unmerged files"
-msgstr "checkout a versão deles dos ficheiros por juntar"
+msgstr "observa a versão deles dos ficheiros por juntar"
-#: builtin/checkout.c:1564
+#: builtin/checkout.c:1601
msgid "do not limit pathspecs to sparse entries only"
-msgstr "abrange especificadores de path além de entradas dispersas"
+msgstr "abranger espetro-caminhos além de entradas dispersas"
-#: builtin/checkout.c:1622
+#: builtin/checkout.c:1659
#, c-format
-msgid "-%c, -%c and --orphan are mutually exclusive"
-msgstr ""
+msgid "options '-%c', '-%c', and '%s' cannot be used together"
+msgstr "opções '-%c', '-%c' e '%s' incapaz serem usadas juntas"
-#: builtin/checkout.c:1626
-msgid "-p and --overlay are mutually exclusive"
-msgstr ""
-
-#: builtin/checkout.c:1663
+#: builtin/checkout.c:1700
msgid "--track needs a branch name"
-msgstr "--track precisa de nome dum ramo"
+msgstr "--track precisa de um nome de ramo"
-#: builtin/checkout.c:1668
+#: builtin/checkout.c:1705
#, c-format
msgid "missing branch name; try -%c"
-msgstr "faltando nome de ramo; tente -%c"
+msgstr "faltando nome de ramo; tenta -%c"
-#: builtin/checkout.c:1700
+#: builtin/checkout.c:1737
#, c-format
msgid "could not resolve %s"
msgstr "incapaz resolver %s"
-#: builtin/checkout.c:1716
+#: builtin/checkout.c:1753
msgid "invalid path specification"
msgstr "especificação de caminho inválida"
-#: builtin/checkout.c:1723
+#: builtin/checkout.c:1760
#, c-format
msgid "'%s' is not a commit and a branch '%s' cannot be created from it"
msgstr ""
-#: builtin/checkout.c:1727
+#: builtin/checkout.c:1764
#, c-format
msgid "git checkout: --detach does not take a path argument '%s'"
-msgstr "git checkout: --detach recusa path '%s' como argumento"
-
-#: builtin/checkout.c:1736
-msgid "--pathspec-from-file is incompatible with --detach"
-msgstr ""
-
-#: builtin/checkout.c:1739 builtin/reset.c:325 builtin/stash.c:1630
-msgid "--pathspec-from-file is incompatible with --patch"
-msgstr ""
+msgstr "git checkout: --detach recusa caminho '%s' como argumento"
-#: builtin/checkout.c:1752
+#: builtin/checkout.c:1789
msgid ""
"git checkout: --ours/--theirs, --force and --merge are incompatible when\n"
"checking out of the index."
msgstr ""
"git checkout: --ours/--theirs, --force e --merge são incompatíveis\n"
-"durante a extração do índice."
+"durante a observação do cenário."
-#: builtin/checkout.c:1757
+#: builtin/checkout.c:1794
msgid "you must specify path(s) to restore"
-msgstr "deves especificar caminho(s) a restaurar"
+msgstr "tens de especificar caminho(s) a restaurar"
-#: builtin/checkout.c:1783 builtin/checkout.c:1785 builtin/checkout.c:1834
-#: builtin/checkout.c:1836 builtin/clone.c:126 builtin/remote.c:170
-#: builtin/remote.c:172 builtin/submodule--helper.c:2736
-#: builtin/submodule--helper.c:2887 builtin/worktree.c:484
-#: builtin/worktree.c:486
+#: builtin/checkout.c:1819 builtin/checkout.c:1821 builtin/checkout.c:1873
+#: builtin/checkout.c:1875 builtin/clone.c:130 builtin/remote.c:171
+#: builtin/remote.c:173 builtin/submodule--helper.c:3038
+#: builtin/submodule--helper.c:3371 builtin/worktree.c:556
+#: builtin/worktree.c:558
msgid "branch"
msgstr "ramo"
-#: builtin/checkout.c:1784
+#: builtin/checkout.c:1820
msgid "create and checkout a new branch"
-msgstr "criar e extrair um novo ramo"
+msgstr "criar e observar um novo ramo"
-#: builtin/checkout.c:1786
+#: builtin/checkout.c:1822
msgid "create/reset and checkout a branch"
msgstr "criar/restabelecer e observar um ramo"
-#: builtin/checkout.c:1787
+#: builtin/checkout.c:1823
msgid "create reflog for new branch"
-msgstr "criar reflog do novo ramo"
+msgstr "criar registo-ref para novo ramo"
-#: builtin/checkout.c:1789
+#: builtin/checkout.c:1825
msgid "second guess 'git checkout <no-such-branch>' (default)"
-msgstr "tentar adivinhar 'git checkout <ramo-inexistente>' (predefinido)"
+msgstr "tentando adivinhar 'git checkout <ramo-inexistente>' (predefinido)"
-#: builtin/checkout.c:1790
+#: builtin/checkout.c:1826
msgid "use overlay mode (default)"
msgstr "usar modo overlay (predefinido)"
-#: builtin/checkout.c:1835
+#: builtin/checkout.c:1874
msgid "create and switch to a new branch"
msgstr "criar e trocar para um novo ramo"
-#: builtin/checkout.c:1837
+#: builtin/checkout.c:1876
msgid "create/reset and switch to a branch"
msgstr "criar/restabelecer e trocar para um ramo"
-#: builtin/checkout.c:1839
+#: builtin/checkout.c:1878
msgid "second guess 'git switch <no-such-branch>'"
-msgstr "tentar adivinhar 'git switch <ramo-inexistente>'"
+msgstr "tentando adivinhar 'git switch <ramo-inexistente>'"
-#: builtin/checkout.c:1841
+#: builtin/checkout.c:1880
msgid "throw away local modifications"
msgstr "descartar modificações locais"
-#: builtin/checkout.c:1875
+#: builtin/checkout.c:1916
msgid "which tree-ish to checkout from"
msgstr ""
-#: builtin/checkout.c:1877
+#: builtin/checkout.c:1918
msgid "restore the index"
msgstr "restaurar o cenário"
-#: builtin/checkout.c:1879
+#: builtin/checkout.c:1920
msgid "restore the working tree (default)"
msgstr "restaurar a árvore-trabalho (predefinido)"
-#: builtin/checkout.c:1881
+#: builtin/checkout.c:1922
msgid "ignore unmerged entries"
msgstr "ignora entradas por juntar"
-#: builtin/checkout.c:1882
+#: builtin/checkout.c:1923
msgid "use overlay mode"
msgstr "usar modo overlay"
@@ -12544,7 +13204,7 @@ msgstr ""
#: builtin/clean.c:33
#, c-format
msgid "Removing %s\n"
-msgstr "A remover %s\n"
+msgstr "Removendo %s\n"
#: builtin/clean.c:34
#, c-format
@@ -12554,19 +13214,27 @@ msgstr "Removeria %s\n"
#: builtin/clean.c:35
#, c-format
msgid "Skipping repository %s\n"
-msgstr "A ignorar o repositório %s\n"
+msgstr "Saltando o repositório %s\n"
#: builtin/clean.c:36
#, c-format
msgid "Would skip repository %s\n"
-msgstr "Ignoraria o repositório %s\n"
+msgstr "Saltaria o repositório %s\n"
#: builtin/clean.c:38
#, c-format
msgid "could not lstat %s\n"
msgstr "incapaz lstat %s\n"
-#: builtin/clean.c:300 git-add--interactive.perl:593
+#: builtin/clean.c:39
+msgid "Refusing to remove current working directory\n"
+msgstr "Recusando remover pasta-trabalho atual\n"
+
+#: builtin/clean.c:40
+msgid "Would refuse to remove current working directory\n"
+msgstr "Recusaria remover pasta-trabalho atual\n"
+
+#: builtin/clean.c:326 git-add--interactive.perl:593
#, c-format
msgid ""
"Prompt help:\n"
@@ -12579,7 +13247,7 @@ msgstr ""
"foo - selecionar item baseado no prefixo único\n"
" - (vazio) seleciona nada\n"
-#: builtin/clean.c:304 git-add--interactive.perl:602
+#: builtin/clean.c:330 git-add--interactive.perl:602
#, c-format
msgid ""
"Prompt help:\n"
@@ -12600,33 +13268,33 @@ msgstr ""
"* - escolher todos os itens\n"
" - (vazio) concluir seleção\n"
-#: builtin/clean.c:519 git-add--interactive.perl:568
+#: builtin/clean.c:545 git-add--interactive.perl:568
#: git-add--interactive.perl:573
#, c-format, perl-format
msgid "Huh (%s)?\n"
msgstr "O quê (%s)?\n"
-#: builtin/clean.c:659
+#: builtin/clean.c:685
#, c-format
msgid "Input ignore patterns>> "
-msgstr "Introduza padrões a ignorar>> "
+msgstr "Introduz padrões a ignorar>> "
-#: builtin/clean.c:693
+#: builtin/clean.c:719
#, c-format
msgid "WARNING: Cannot find items matched by: %s"
-msgstr "AVISO: incapaz encontrar items correspondentes a: %s"
+msgstr "AVISO: Incapaz encontrar items correspondentes a: %s"
-#: builtin/clean.c:714
+#: builtin/clean.c:740
msgid "Select items to delete"
-msgstr "Selecione itens para eliminar"
+msgstr "Seleciona itens para eliminar"
#. TRANSLATORS: Make sure to keep [y/N] as is
-#: builtin/clean.c:755
+#: builtin/clean.c:781
#, c-format
msgid "Remove %s [y/N]? "
msgstr "Remover %s [y/N]? "
-#: builtin/clean.c:786
+#: builtin/clean.c:812
msgid ""
"clean - start cleaning\n"
"filter by pattern - exclude items from deletion\n"
@@ -12642,54 +13310,54 @@ msgstr ""
"ask each - confirmar cada eliminação (como \"rm -i\")\n"
"quit - parar limpeza\n"
"help - esta ajuda\n"
-"? - ajuda para seleção em linha de comandos"
+"? - ajuda para a seleção em linha de comandos"
-#: builtin/clean.c:822
+#: builtin/clean.c:848
msgid "Would remove the following item:"
msgid_plural "Would remove the following items:"
msgstr[0] "Removeria o seguinte item:"
msgstr[1] "Removeria os seguintes itens:"
-#: builtin/clean.c:838
+#: builtin/clean.c:864
msgid "No more files to clean, exiting."
-msgstr "Mais ficheiro por limpar nenhum, saindo."
+msgstr "Mais nenhum ficheiro por limpar, saindo."
-#: builtin/clean.c:900
+#: builtin/clean.c:926
msgid "do not print names of files removed"
-msgstr "incapaz imprimir nomes de ficheiros removidos"
+msgstr "deixar de mostrar nomes de ficheiros removidos"
-#: builtin/clean.c:902
+#: builtin/clean.c:928
msgid "force"
msgstr "forçar"
-#: builtin/clean.c:903
+#: builtin/clean.c:929
msgid "interactive cleaning"
msgstr "limpeza interativa"
-#: builtin/clean.c:905
+#: builtin/clean.c:931
msgid "remove whole directories"
-msgstr "remover diretórios inteiros"
+msgstr "remover pastas inteiras"
-#: builtin/clean.c:906 builtin/describe.c:565 builtin/describe.c:567
-#: builtin/grep.c:923 builtin/log.c:184 builtin/log.c:186
-#: builtin/ls-files.c:650 builtin/name-rev.c:526 builtin/name-rev.c:528
+#: builtin/clean.c:932 builtin/describe.c:565 builtin/describe.c:567
+#: builtin/grep.c:938 builtin/log.c:185 builtin/log.c:187
+#: builtin/ls-files.c:651 builtin/name-rev.c:585 builtin/name-rev.c:587
#: builtin/show-ref.c:179
msgid "pattern"
msgstr "padrão"
-#: builtin/clean.c:907
+#: builtin/clean.c:933
msgid "add <pattern> to ignore rules"
msgstr "adicionar <padrão> às regras ignoradas"
-#: builtin/clean.c:908
+#: builtin/clean.c:934
msgid "remove ignored files, too"
msgstr "também remover ficheiros ignorados"
-#: builtin/clean.c:910
+#: builtin/clean.c:936
msgid "remove only ignored files"
msgstr "remover apenas ficheiros ignorados"
-#: builtin/clean.c:925
+#: builtin/clean.c:951
msgid ""
"clean.requireForce set to true and neither -i, -n, nor -f given; refusing to "
"clean"
@@ -12697,7 +13365,7 @@ msgstr ""
"clean.requireForce definido como true e nenhum -i, -n, ou -f fornecido; "
"recusando limpar"
-#: builtin/clean.c:928
+#: builtin/clean.c:954
msgid ""
"clean.requireForce defaults to true and neither -i, -n, nor -f given; "
"refusing to clean"
@@ -12705,218 +13373,217 @@ msgstr ""
"clean.requireForce predefinido como true e nenhum -i, -n, ou -f fornecido; "
"recusando limpar"
-#: builtin/clean.c:940
+#: builtin/clean.c:966
msgid "-x and -X cannot be used together"
-msgstr "-x e -X incapazes de ser usados juntos"
+msgstr "-x e -X incapazes de serem usados juntos"
-#: builtin/clone.c:45
+#: builtin/clone.c:47
msgid "git clone [<options>] [--] <repo> [<dir>]"
-msgstr "git clone [<opções>] [--] <repo> [<dir>]"
+msgstr "git clone [<opções>] [--] <repo> [<pasta>]"
-#: builtin/clone.c:96
+#: builtin/clone.c:100
msgid "don't clone shallow repository"
msgstr "clonar nenhum repositório superficial"
-#: builtin/clone.c:98
+#: builtin/clone.c:102
msgid "don't create a checkout"
-msgstr "cria checkout nenhum"
+msgstr "deixar por criar a observação"
-#: builtin/clone.c:99 builtin/clone.c:101 builtin/init-db.c:542
+#: builtin/clone.c:103 builtin/clone.c:105 builtin/init-db.c:542
msgid "create a bare repository"
msgstr "criar um repositório nu"
-#: builtin/clone.c:103
+#: builtin/clone.c:107
msgid "create a mirror repository (implies bare)"
-msgstr "criar um repositório espelhado (implica repositório nu)"
+msgstr "criar um repositório-espelho (implica repositório nu)"
-#: builtin/clone.c:105
+#: builtin/clone.c:109
msgid "to clone from a local repository"
msgstr "para clonar de um repositório local"
-#: builtin/clone.c:107
+#: builtin/clone.c:111
msgid "don't use local hardlinks, always copy"
msgstr "usa hardlinks nenhuns, copia sempre"
-#: builtin/clone.c:109
+#: builtin/clone.c:113
msgid "setup as shared repository"
msgstr "configurar como repositório partilhado"
-#: builtin/clone.c:111
+#: builtin/clone.c:115
msgid "pathspec"
-msgstr "pathspec"
+msgstr "espetro-caminho"
-#: builtin/clone.c:111
+#: builtin/clone.c:115
msgid "initialize submodules in the clone"
msgstr "inicializar submódulos no clone"
-#: builtin/clone.c:115
+#: builtin/clone.c:119
msgid "number of submodules cloned in parallel"
msgstr "número de submódulos clonados em paralelo"
-#: builtin/clone.c:116 builtin/init-db.c:539
+#: builtin/clone.c:120 builtin/init-db.c:539
msgid "template-directory"
-msgstr "diretório-modelo"
+msgstr "pasta-modelo"
-#: builtin/clone.c:117 builtin/init-db.c:540
+#: builtin/clone.c:121 builtin/init-db.c:540
msgid "directory from which templates will be used"
-msgstr "diretório que contém os modelos usados"
+msgstr "pasta que contém os modelos a usar"
-#: builtin/clone.c:119 builtin/clone.c:121 builtin/submodule--helper.c:1899
-#: builtin/submodule--helper.c:2353 builtin/submodule--helper.c:2903
+#: builtin/clone.c:123 builtin/clone.c:125 builtin/submodule--helper.c:1885
+#: builtin/submodule--helper.c:2719 builtin/submodule--helper.c:3378
msgid "reference repository"
msgstr "repositório de referência"
-#: builtin/clone.c:123 builtin/submodule--helper.c:1901
-#: builtin/submodule--helper.c:2355 builtin/submodule--helper.c:2905
+#: builtin/clone.c:127 builtin/submodule--helper.c:1887
+#: builtin/submodule--helper.c:2721
msgid "use --reference only while cloning"
msgstr "usar --reference apenas enquanto clonando"
-#: builtin/clone.c:124 builtin/column.c:27 builtin/init-db.c:550
-#: builtin/merge-file.c:46 builtin/pack-objects.c:3975 builtin/repack.c:495
-#: t/helper/test-simple-ipc.c:696 t/helper/test-simple-ipc.c:698
+#: builtin/clone.c:128 builtin/column.c:27 builtin/fmt-merge-msg.c:27
+#: builtin/init-db.c:550 builtin/merge-file.c:48 builtin/merge.c:290
+#: builtin/pack-objects.c:3967 builtin/repack.c:669
+#: builtin/submodule--helper.c:3380 t/helper/test-simple-ipc.c:595
+#: t/helper/test-simple-ipc.c:597
msgid "name"
msgstr "nome"
-#: builtin/clone.c:125
+#: builtin/clone.c:129
msgid "use <name> instead of 'origin' to track upstream"
-msgstr "usar <nome> em vez de 'origin' para seguir o ramo a montante"
+msgstr "usar <nome> em vez de 'origin' monitorizar upstream"
-#: builtin/clone.c:127
+#: builtin/clone.c:131
msgid "checkout <branch> instead of the remote's HEAD"
msgstr "observar <ramo> em vez de HEAD de remoto"
-#: builtin/clone.c:129
+#: builtin/clone.c:133
msgid "path to git-upload-pack on the remote"
msgstr "caminho para git-upload-pack no remoto"
-#: builtin/clone.c:130 builtin/fetch.c:180 builtin/grep.c:862
-#: builtin/pull.c:208
+#: builtin/clone.c:134 builtin/fetch.c:182 builtin/grep.c:877
+#: builtin/pull.c:212
msgid "depth"
msgstr "profundidade"
-#: builtin/clone.c:131
+#: builtin/clone.c:135
msgid "create a shallow clone of that depth"
-msgstr "criar um clone raso com essa profundidade"
+msgstr "criar um clone superficial com essa profundidade"
-#: builtin/clone.c:132 builtin/fetch.c:182 builtin/pack-objects.c:3964
-#: builtin/pull.c:211
+#: builtin/clone.c:136 builtin/fetch.c:184 builtin/pack-objects.c:3956
+#: builtin/pull.c:215
msgid "time"
msgstr "hora"
-#: builtin/clone.c:133
+#: builtin/clone.c:137
msgid "create a shallow clone since a specific time"
-msgstr "criar um clone raso desde uma data específica"
+msgstr "criar um clone superficial desde uma data específica"
-#: builtin/clone.c:134 builtin/fetch.c:184 builtin/fetch.c:207
-#: builtin/pull.c:214 builtin/pull.c:239 builtin/rebase.c:1318
+#: builtin/clone.c:138 builtin/fetch.c:186 builtin/fetch.c:212
+#: builtin/pull.c:218 builtin/pull.c:243 builtin/rebase.c:1050
msgid "revision"
msgstr "revisão"
-#: builtin/clone.c:135 builtin/fetch.c:185 builtin/pull.c:215
+#: builtin/clone.c:139 builtin/fetch.c:187 builtin/pull.c:219
msgid "deepen history of shallow clone, excluding rev"
-msgstr "aprofundar o histórico de um clone raso, excluindo a revisão"
+msgstr "aprofundar o histórico de clone superficial, excluindo a revisão"
-#: builtin/clone.c:137 builtin/submodule--helper.c:1911
-#: builtin/submodule--helper.c:2369
+#: builtin/clone.c:141 builtin/submodule--helper.c:1897
+#: builtin/submodule--helper.c:2735
msgid "clone only one branch, HEAD or --branch"
msgstr "clonar apenas um ramo, HEAD ou --branch"
-#: builtin/clone.c:139
+#: builtin/clone.c:143
msgid "don't clone any tags, and make later fetches not to follow them"
-msgstr ""
+msgstr "clonar nenhuma etiqueta, e fazer buscas seguintes seguir nenhuma"
-#: builtin/clone.c:141
+#: builtin/clone.c:145
msgid "any cloned submodules will be shallow"
msgstr "qualquer submódulo clonado será superficial"
-#: builtin/clone.c:142 builtin/init-db.c:548
+#: builtin/clone.c:146 builtin/init-db.c:548
msgid "gitdir"
-msgstr "gitdir"
+msgstr "pasta-git"
-#: builtin/clone.c:143 builtin/init-db.c:549
+#: builtin/clone.c:147 builtin/init-db.c:549
msgid "separate git dir from working tree"
msgstr "separar pasta git de árvore-trabalho"
-#: builtin/clone.c:144
+#: builtin/clone.c:148
msgid "key=value"
msgstr "chave=valor"
-#: builtin/clone.c:145
+#: builtin/clone.c:149
msgid "set config inside the new repository"
msgstr "definir configuração dentro do novo repositório"
-#: builtin/clone.c:147 builtin/fetch.c:202 builtin/ls-remote.c:77
-#: builtin/pull.c:230 builtin/push.c:575 builtin/send-pack.c:196
+#: builtin/clone.c:151 builtin/fetch.c:207 builtin/ls-remote.c:77
+#: builtin/pull.c:234 builtin/push.c:575 builtin/send-pack.c:200
msgid "server-specific"
msgstr "específico do servidor"
-#: builtin/clone.c:147 builtin/fetch.c:202 builtin/ls-remote.c:77
-#: builtin/pull.c:231 builtin/push.c:575 builtin/send-pack.c:197
+#: builtin/clone.c:151 builtin/fetch.c:207 builtin/ls-remote.c:77
+#: builtin/pull.c:235 builtin/push.c:575 builtin/send-pack.c:201
msgid "option to transmit"
-msgstr "opção para transmitir"
+msgstr "opção a transmitir"
-#: builtin/clone.c:148 builtin/fetch.c:203 builtin/pull.c:234
+#: builtin/clone.c:152 builtin/fetch.c:208 builtin/pull.c:238
#: builtin/push.c:576
msgid "use IPv4 addresses only"
msgstr "usar apenas endereços IPv4"
-#: builtin/clone.c:150 builtin/fetch.c:205 builtin/pull.c:237
+#: builtin/clone.c:154 builtin/fetch.c:210 builtin/pull.c:241
#: builtin/push.c:578
msgid "use IPv6 addresses only"
msgstr "usar apenas endereços IPv6"
-#: builtin/clone.c:154
+#: builtin/clone.c:158
+msgid "apply partial clone filters to submodules"
+msgstr ""
+
+#: builtin/clone.c:160
msgid "any cloned submodules will use their remote-tracking branch"
msgstr "qualquer submódulo clonado usará seu ramo remoto de monitorização"
-#: builtin/clone.c:156
+#: builtin/clone.c:162
msgid "initialize sparse-checkout file to include only files at root"
msgstr ""
+"iniciar ficheiro de observação-dispersa para incluir apenas ficheiros em raiz"
-#: builtin/clone.c:292
-msgid ""
-"No directory name could be guessed.\n"
-"Please specify a directory on the command line"
-msgstr ""
-"Incapaz adivinhar nome de pasta.\n"
-"Por favor especifique uma pasta na linha de comandos"
-
-#: builtin/clone.c:345
+#: builtin/clone.c:237
#, c-format
msgid "info: Could not add alternate for '%s': %s\n"
msgstr "info: Incapaz adicionar sobressalente para '%s': %s\n"
-#: builtin/clone.c:418
+#: builtin/clone.c:310
#, c-format
msgid "%s exists and is not a directory"
msgstr "%s existe e é pasta nenhuma"
-#: builtin/clone.c:436
+#: builtin/clone.c:328
#, c-format
msgid "failed to start iterator over '%s'"
msgstr "falhou começar iterador em '%s'"
-#: builtin/clone.c:467
+#: builtin/clone.c:359
#, c-format
msgid "failed to create link '%s'"
msgstr "falhou criar a ligação '%s'"
-#: builtin/clone.c:471
+#: builtin/clone.c:363
#, c-format
msgid "failed to copy file to '%s'"
-msgstr "falha ao copiar o ficheiro para '%s'"
+msgstr "falhou copiar o ficheiro para '%s'"
-#: builtin/clone.c:476
+#: builtin/clone.c:368
#, c-format
msgid "failed to iterate over '%s'"
-msgstr "falha ao remover '%s'"
+msgstr "falhou iterar sobre '%s'"
-#: builtin/clone.c:503
+#: builtin/clone.c:395
#, c-format
msgid "done.\n"
msgstr "concluído.\n"
-#: builtin/clone.c:517
+#: builtin/clone.c:409
msgid ""
"Clone succeeded, but checkout failed.\n"
"You can inspect what was checked out with 'git status'\n"
@@ -12926,152 +13593,151 @@ msgstr ""
"Podes inspecionar o que foi observado com 'git status'\n"
"e repetir com 'git restore --source=HEAD :/'\n"
-#: builtin/clone.c:594
+#: builtin/clone.c:486
#, c-format
msgid "Could not find remote branch %s to clone."
msgstr "Incapaz encontrar ramo remoto %s para clonar."
-#: builtin/clone.c:713
+#: builtin/clone.c:603
#, c-format
msgid "unable to update %s"
msgstr "incapaz atualizar %s"
-#: builtin/clone.c:761
+#: builtin/clone.c:651
msgid "failed to initialize sparse-checkout"
-msgstr "falhou inicializar sparse-checkout"
+msgstr "falhou iniciar observação-dispersa"
-#: builtin/clone.c:784
+#: builtin/clone.c:674
msgid "remote HEAD refers to nonexistent ref, unable to checkout.\n"
-msgstr ""
-"remote HEAD refere-se a referência inexistente, impossível fazer checkout.\n"
+msgstr "HEAD remota refere-se a referência inexistente, incapaz de observar.\n"
-#: builtin/clone.c:816
+#: builtin/clone.c:709
msgid "unable to checkout working tree"
-msgstr "incapaz de checkout working tree"
+msgstr "incapaz de observar árvore-trabalho"
-#: builtin/clone.c:894
+#: builtin/clone.c:793
msgid "unable to write parameters to config file"
msgstr "incapaz escrever parâmetros para ficheiro config"
-#: builtin/clone.c:957
+#: builtin/clone.c:856
msgid "cannot repack to clean up"
msgstr "incapaz reempacotar para limpar"
-#: builtin/clone.c:959
+#: builtin/clone.c:858
msgid "cannot unlink temporary alternates file"
msgstr "incapaz unlink ficheiro sobressalente temporário"
-#: builtin/clone.c:1001 builtin/receive-pack.c:2490
+#: builtin/clone.c:901
msgid "Too many arguments."
-msgstr ""
+msgstr "Demasiados argumentos."
-#: builtin/clone.c:1005
+#: builtin/clone.c:905 contrib/scalar/scalar.c:413
msgid "You must specify a repository to clone."
-msgstr "Deve especificar um repositório para clonar."
+msgstr "Tens de especificar um repositório para clonar."
-#: builtin/clone.c:1018
+#: builtin/clone.c:918
#, c-format
-msgid "--bare and --origin %s options are incompatible."
-msgstr "opções --bare e --origin %s são incompatíveis."
+msgid "options '%s' and '%s %s' cannot be used together"
+msgstr "opções '%s' e '%s %s' incapaz serem usadas juntas"
-#: builtin/clone.c:1021
-msgid "--bare and --separate-git-dir are incompatible."
-msgstr "--bare e --separate-git-dir são incompatíveis."
-
-#: builtin/clone.c:1035
+#: builtin/clone.c:935
#, c-format
msgid "repository '%s' does not exist"
msgstr "repositório '%s' é inexistente"
-#: builtin/clone.c:1039 builtin/fetch.c:2014
+#: builtin/clone.c:939 builtin/fetch.c:2176
#, c-format
msgid "depth %s is not a positive number"
msgstr "profundidade %s é número positivo nenhum"
-#: builtin/clone.c:1049
+#: builtin/clone.c:949
#, c-format
msgid "destination path '%s' already exists and is not an empty directory."
-msgstr "path de destino '%s' já existe e é pasta vazia nenhum."
+msgstr "caminho de destino '%s' já existe e é pasta vazia nenhuma."
-#: builtin/clone.c:1055
+#: builtin/clone.c:955
#, c-format
msgid "repository path '%s' already exists and is not an empty directory."
-msgstr "path de repositório '%s' já existe e é diretório vazio nenhum."
+msgstr "caminho de repositório '%s' já existe e é pasta vazia nenhuma."
-#: builtin/clone.c:1069
+#: builtin/clone.c:969
#, c-format
msgid "working tree '%s' already exists."
msgstr "árvore-trabalho '%s' já existe."
-#: builtin/clone.c:1084 builtin/clone.c:1105 builtin/difftool.c:272
-#: builtin/log.c:1997 builtin/worktree.c:280 builtin/worktree.c:312
+#: builtin/clone.c:984 builtin/clone.c:1005 builtin/difftool.c:256
+#: builtin/log.c:2037 builtin/worktree.c:350 builtin/worktree.c:382
#, c-format
msgid "could not create leading directories of '%s'"
msgstr "incapaz criar as pastas superiores de '%s'"
-#: builtin/clone.c:1089
+#: builtin/clone.c:989
#, c-format
msgid "could not create work tree dir '%s'"
-msgstr "incapaz criar pasta de work tree '%s'"
+msgstr "incapaz criar pasta de árvore-trabalho '%s'"
-#: builtin/clone.c:1109
+#: builtin/clone.c:1009
#, c-format
msgid "Cloning into bare repository '%s'...\n"
-msgstr "Clonando em repositório nú '%s'...\n"
+msgstr "Clonando para repositório nu '%s'...\n"
-#: builtin/clone.c:1111
+#: builtin/clone.c:1011
#, c-format
msgid "Cloning into '%s'...\n"
-msgstr "Clonando em '%s'...\n"
+msgstr "Clonando para '%s'...\n"
-#: builtin/clone.c:1135
+#: builtin/clone.c:1040
msgid ""
"clone --recursive is not compatible with both --reference and --reference-if-"
"able"
msgstr ""
"clone --recursive é incompatível com ambos --reference e --reference-if-able"
-#: builtin/clone.c:1188 builtin/remote.c:200 builtin/remote.c:705
+#: builtin/clone.c:1116 builtin/remote.c:201 builtin/remote.c:721
#, c-format
msgid "'%s' is not a valid remote name"
msgstr "'%s' é nome de remoto inválido"
-#: builtin/clone.c:1229
+#: builtin/clone.c:1157
msgid "--depth is ignored in local clones; use file:// instead."
-msgstr "--depth é ignorado em clones locais; usa invés file:// ."
+msgstr "--depth é ignorado em clones locais; usa file:// invés."
-#: builtin/clone.c:1231
+#: builtin/clone.c:1159
msgid "--shallow-since is ignored in local clones; use file:// instead."
-msgstr "--shallow-since é ignorado em clones locais; usa invés file:// ."
+msgstr "--shallow-since é ignorado em clones locais; usa file:// invés."
-#: builtin/clone.c:1233
+#: builtin/clone.c:1161
msgid "--shallow-exclude is ignored in local clones; use file:// instead."
-msgstr "--shallow-exclude é ignorado em clones locais; usa invés file:// ."
+msgstr "--shallow-exclude é ignorado em clones locais; usa file:// invés."
-#: builtin/clone.c:1235
+#: builtin/clone.c:1163
msgid "--filter is ignored in local clones; use file:// instead."
-msgstr "--filter é ignorado em clones locais; usa invés file:// ."
+msgstr "--filter é ignorado em clones locais; usa file:// invés."
-#: builtin/clone.c:1240
+#: builtin/clone.c:1168
msgid "source repository is shallow, ignoring --local"
msgstr "repositório da fonte é superficial, ignorando --local"
-#: builtin/clone.c:1245
+#: builtin/clone.c:1173
msgid "--local is ignored"
msgstr "--local ignorado"
-#: builtin/clone.c:1324 builtin/clone.c:1383
+#: builtin/clone.c:1185
+msgid "cannot clone from filtered bundle"
+msgstr ""
+
+#: builtin/clone.c:1265 builtin/clone.c:1324
msgid "remote transport reported error"
msgstr "transporte remoto reportou erro"
-#: builtin/clone.c:1336 builtin/clone.c:1344
+#: builtin/clone.c:1277 builtin/clone.c:1289
#, c-format
msgid "Remote branch %s not found in upstream %s"
msgstr "Ramo remoto %s por encontrar em upstream %s"
-#: builtin/clone.c:1347
+#: builtin/clone.c:1292
msgid "You appear to have cloned an empty repository."
-msgstr "Parece foi clonado um repositório vazio."
+msgstr "Pareces ter clonado um repositório vazio."
#: builtin/column.c:10
msgid "git column [<options>]"
@@ -13079,7 +13745,7 @@ msgstr "git column [<opções>]"
#: builtin/column.c:27
msgid "lookup config vars"
-msgstr "pesquisar vars de config"
+msgstr "encontrar vars de config"
#: builtin/column.c:28 builtin/column.c:29
msgid "layout to use"
@@ -13087,123 +13753,126 @@ msgstr "esquema a usar"
#: builtin/column.c:30
msgid "maximum width"
-msgstr "Largura máxima"
+msgstr "largura máxima"
#: builtin/column.c:31
msgid "padding space on left border"
-msgstr "Espaço de preenchimento na borda esquerda"
+msgstr "espaço de preenchimento na borda esquerda"
#: builtin/column.c:32
msgid "padding space on right border"
-msgstr "Espaço de preenchimento na borda direita"
+msgstr "espaço de preenchimento na borda direita"
#: builtin/column.c:33
msgid "padding space between columns"
-msgstr "Espaço de preenchimento entre colunas"
+msgstr "espaço de preenchimento entre colunas"
#: builtin/column.c:51
msgid "--command must be the first argument"
msgstr "--command deve ser o primeiro argumento"
-#: builtin/commit-graph.c:13 builtin/commit-graph.c:22
+#: builtin/commit-graph.c:13
msgid ""
"git commit-graph verify [--object-dir <objdir>] [--shallow] [--[no-]progress]"
msgstr ""
+"git commit-graph verify [--object-dir <pasta-de-obj>] [--shallow] [--"
+"[no-]progress]"
-#: builtin/commit-graph.c:14 builtin/commit-graph.c:27
+#: builtin/commit-graph.c:16
msgid ""
"git commit-graph write [--object-dir <objdir>] [--append] [--"
"split[=<strategy>]] [--reachable|--stdin-packs|--stdin-commits] [--changed-"
"paths] [--[no-]max-new-filters <n>] [--[no-]progress] <split options>"
msgstr ""
+"git commit-graph write [--object-dir <pasta-de-obj>] [--append] [--"
+"split[=<estratégia>]] [--reachable|--stdin-packs|--stdin-commits] [--changed-"
+"paths] [--[no-]max-new-filters <n>] [--[no-]progress] <opções de divisão>"
-#: builtin/commit-graph.c:64
-#, c-format
-msgid "could not find object directory matching %s"
-msgstr "incapaz encontrar pasta objeto correspondendo %s"
-
-#: builtin/commit-graph.c:80 builtin/commit-graph.c:210
-#: builtin/commit-graph.c:316 builtin/fetch.c:191 builtin/log.c:1779
+#: builtin/commit-graph.c:51 builtin/fetch.c:196 builtin/log.c:1813
msgid "dir"
-msgstr "dir"
+msgstr "pasta"
-#: builtin/commit-graph.c:81 builtin/commit-graph.c:211
-#: builtin/commit-graph.c:317
+#: builtin/commit-graph.c:52
msgid "the object directory to store the graph"
msgstr ""
-#: builtin/commit-graph.c:83
+#: builtin/commit-graph.c:73
msgid "if the commit-graph is split, only verify the tip file"
msgstr ""
-#: builtin/commit-graph.c:106
+#: builtin/commit-graph.c:100
#, c-format
msgid "Could not open commit-graph '%s'"
-msgstr "Incapaz abrir commit-graph '%s'"
+msgstr "Incapaz abrir grafo-memória '%s'"
-#: builtin/commit-graph.c:142
+#: builtin/commit-graph.c:137
#, c-format
msgid "unrecognized --split argument, %s"
msgstr "argumento --split desconhecido, %s"
-#: builtin/commit-graph.c:155
+#: builtin/commit-graph.c:150
#, c-format
msgid "unexpected non-hex object ID: %s"
msgstr "ID não-hex de objeto inesperado: %s"
-#: builtin/commit-graph.c:160
+#: builtin/commit-graph.c:155
#, c-format
msgid "invalid object: %s"
msgstr ""
-#: builtin/commit-graph.c:213
+#: builtin/commit-graph.c:205
msgid "start walk at all refs"
msgstr ""
-#: builtin/commit-graph.c:215
+#: builtin/commit-graph.c:207
msgid "scan pack-indexes listed by stdin for commits"
msgstr ""
-#: builtin/commit-graph.c:217
+#: builtin/commit-graph.c:209
msgid "start walk at commits listed by stdin"
msgstr ""
-#: builtin/commit-graph.c:219
+#: builtin/commit-graph.c:211
msgid "include all commits already in the commit-graph file"
msgstr ""
-#: builtin/commit-graph.c:221
+#: builtin/commit-graph.c:213
msgid "enable computation for changed paths"
msgstr ""
-#: builtin/commit-graph.c:224
+#: builtin/commit-graph.c:215
msgid "allow writing an incremental commit-graph file"
msgstr ""
-#: builtin/commit-graph.c:228
+#: builtin/commit-graph.c:219
msgid "maximum number of commits in a non-base split commit-graph"
msgstr ""
-#: builtin/commit-graph.c:230
+#: builtin/commit-graph.c:221
msgid "maximum ratio between two levels of a split commit-graph"
msgstr ""
-#: builtin/commit-graph.c:232
+#: builtin/commit-graph.c:223
msgid "only expire files older than a given date-time"
-msgstr "apenas expirar ficheiros mais velhos que data-tempo fornecido"
+msgstr "apenas expirar ficheiros fornecidos mais velhos que data"
-#: builtin/commit-graph.c:234
+#: builtin/commit-graph.c:225
msgid "maximum number of changed-path Bloom filters to compute"
msgstr ""
-#: builtin/commit-graph.c:255
+#: builtin/commit-graph.c:251
msgid "use at most one of --reachable, --stdin-commits, or --stdin-packs"
msgstr ""
-#: builtin/commit-graph.c:287
+#: builtin/commit-graph.c:282
msgid "Collecting commits from input"
msgstr ""
+#: builtin/commit-graph.c:328 builtin/multi-pack-index.c:259
+#, c-format
+msgid "unrecognized subcommand: %s"
+msgstr "subcomando desconhecido: %s"
+
#: builtin/commit-tree.c:18
msgid ""
"git commit-tree [(-p <parent>)...] [-S[<keyid>]] [(-m <message>)...] [(-F "
@@ -13215,80 +13884,75 @@ msgstr ""
msgid "duplicate parent %s ignored"
msgstr ""
-#: builtin/commit-tree.c:56 builtin/commit-tree.c:136 builtin/log.c:562
+#: builtin/commit-tree.c:56 builtin/commit-tree.c:134 builtin/log.c:590
#, c-format
msgid "not a valid object name %s"
msgstr "nome de objeto inválido %s"
-#: builtin/commit-tree.c:93
-#, c-format
-msgid "git commit-tree: failed to open '%s'"
-msgstr ""
-
-#: builtin/commit-tree.c:96
+#: builtin/commit-tree.c:94
#, c-format
msgid "git commit-tree: failed to read '%s'"
msgstr ""
-#: builtin/commit-tree.c:98
+#: builtin/commit-tree.c:96
#, c-format
msgid "git commit-tree: failed to close '%s'"
msgstr ""
-#: builtin/commit-tree.c:111
+#: builtin/commit-tree.c:109
msgid "parent"
msgstr "parente"
-#: builtin/commit-tree.c:112
+#: builtin/commit-tree.c:110
msgid "id of a parent commit object"
msgstr ""
-#: builtin/commit-tree.c:114 builtin/commit.c:1624 builtin/merge.c:282
-#: builtin/notes.c:409 builtin/notes.c:575 builtin/stash.c:1601
-#: builtin/tag.c:456
+#: builtin/commit-tree.c:112 builtin/commit.c:1626 builtin/merge.c:284
+#: builtin/notes.c:407 builtin/notes.c:573 builtin/stash.c:1666
+#: builtin/tag.c:455
msgid "message"
msgstr "mensagem"
-#: builtin/commit-tree.c:115 builtin/commit.c:1624
+#: builtin/commit-tree.c:113 builtin/commit.c:1626
msgid "commit message"
-msgstr "mensagem de commit"
+msgstr "mensagem de memória"
-#: builtin/commit-tree.c:118
+#: builtin/commit-tree.c:116
msgid "read commit log message from file"
msgstr ""
-#: builtin/commit-tree.c:121 builtin/commit.c:1641 builtin/merge.c:299
-#: builtin/pull.c:176 builtin/revert.c:118
+#: builtin/commit-tree.c:119 builtin/commit.c:1643 builtin/merge.c:303
+#: builtin/pull.c:180 builtin/revert.c:118
msgid "GPG sign commit"
-msgstr "assinar o commit com GPG"
+msgstr "assinar memória com GPG"
-#: builtin/commit-tree.c:133
+#: builtin/commit-tree.c:131
msgid "must give exactly one tree"
msgstr ""
-#: builtin/commit-tree.c:140
+#: builtin/commit-tree.c:138
msgid "git commit-tree: failed to read"
msgstr ""
-#: builtin/commit.c:41
+#: builtin/commit.c:43
msgid "git commit [<options>] [--] <pathspec>..."
msgstr "git commit [<opções>] [--] <espetro-caminho>..."
-#: builtin/commit.c:46
+#: builtin/commit.c:48
msgid "git status [<options>] [--] <pathspec>..."
msgstr "git status [<opções>] [--] <espetro-caminho>..."
-#: builtin/commit.c:51
+#: builtin/commit.c:53
msgid ""
"You asked to amend the most recent commit, but doing so would make\n"
"it empty. You can repeat your command with --allow-empty, or you can\n"
"remove the commit entirely with \"git reset HEAD^\".\n"
msgstr ""
-"Pediu para emendar o commit mais recente, mas ao fazê-lo torná-lo-ia\n"
-"vazio. Pode repetir o comando com --allow-empty, ou pode remover o\n"
-"commit completamente com \"git reset HEAD^\".\n"
+"Pediste para emendar a memória mais recente, mas ao fazê-lo torná-la-ia\n"
+"vazia. Podes repetir o teu comando com --allow-empty, ou podes remover a\n"
+"memória completamente com \"git reset HEAD^\".\n"
-#: builtin/commit.c:56
+#: builtin/commit.c:58
msgid ""
"The previous cherry-pick is now empty, possibly due to conflict resolution.\n"
"If you wish to commit it anyway, use:\n"
@@ -13296,22 +13960,21 @@ msgid ""
" git commit --allow-empty\n"
"\n"
msgstr ""
-"O cherry-pick anterior está vazio, possivelmente devido a resolução de "
-"conflito.\n"
-"Se ainda desejas commit, usa:\n"
+"A apanha anterior está vazia, possivelmente devido à resolução de conflito.\n"
+"Se, mesmo assim, desejas memorizá-la, usa:\n"
"\n"
" git commit --allow-empty\n"
"\n"
-#: builtin/commit.c:63
+#: builtin/commit.c:65
msgid "Otherwise, please use 'git rebase --skip'\n"
msgstr "Caso contrário, por favor usa 'git rebase --skip'\n"
-#: builtin/commit.c:66
+#: builtin/commit.c:68
msgid "Otherwise, please use 'git cherry-pick --skip'\n"
msgstr "Caso contrário, por favor usa 'git cherry-pick --skip'\n"
-#: builtin/commit.c:69
+#: builtin/commit.c:71
msgid ""
"and then use:\n"
"\n"
@@ -13324,158 +13987,152 @@ msgid ""
"\n"
msgstr ""
-#: builtin/commit.c:324
+#: builtin/commit.c:326
msgid "failed to unpack HEAD tree object"
msgstr "falhou desempacotar o objeto árvore HEAD"
-#: builtin/commit.c:360
-msgid "--pathspec-from-file with -a does not make sense"
-msgstr "--pathspec-from-file com -a faz sentido nenhum"
-
-#: builtin/commit.c:374
+#: builtin/commit.c:376
msgid "No paths with --include/--only does not make sense."
msgstr "--include/--only só fazem sentido, indicando caminhos."
-#: builtin/commit.c:386
+#: builtin/commit.c:388
msgid "unable to create temporary index"
-msgstr "incapaz criar index temporário"
+msgstr "incapaz criar cenário temporário"
-#: builtin/commit.c:395
+#: builtin/commit.c:397
msgid "interactive add failed"
msgstr "falha ao adicionar interativamente"
-#: builtin/commit.c:410
+#: builtin/commit.c:412
msgid "unable to update temporary index"
-msgstr "incapaz atualizar index temporário"
+msgstr "incapaz atualizar cenário temporário"
-#: builtin/commit.c:412
+#: builtin/commit.c:414
msgid "Failed to update main cache tree"
msgstr "Falhou atualizar a árvore de cenário principal"
-#: builtin/commit.c:437 builtin/commit.c:460 builtin/commit.c:508
+#: builtin/commit.c:439 builtin/commit.c:462 builtin/commit.c:510
msgid "unable to write new_index file"
msgstr "incapaz escrever ficheiro new_index"
-#: builtin/commit.c:489
+#: builtin/commit.c:491
msgid "cannot do a partial commit during a merge."
-msgstr "incapaz fazer commit parcial durante uma junção."
+msgstr "incapaz fazer memória parcial durante uma junção."
-#: builtin/commit.c:491
+#: builtin/commit.c:493
msgid "cannot do a partial commit during a cherry-pick."
-msgstr "incapaz fazer commit parcial durante um cherry-pick."
+msgstr "incapaz fazer memória parcial durante uma apanha."
-#: builtin/commit.c:493
+#: builtin/commit.c:495
msgid "cannot do a partial commit during a rebase."
-msgstr "incapaz fazer commit parcial durante um rebase."
+msgstr "incapaz fazer memória parcial durante um rebaseamento."
-#: builtin/commit.c:501
+#: builtin/commit.c:503
msgid "cannot read the index"
msgstr "incapaz ler cenário"
-#: builtin/commit.c:520
+#: builtin/commit.c:522
msgid "unable to write temporary index file"
-msgstr "incapaz escrever ficheiro de index temporário"
+msgstr "incapaz escrever ficheiro de cenário temporário"
-#: builtin/commit.c:618
+#: builtin/commit.c:620
#, c-format
msgid "commit '%s' lacks author header"
-msgstr "commit '%s' falta cabeçalho de autor"
+msgstr "memória '%s' falta cabeçalho de autor"
-#: builtin/commit.c:620
+#: builtin/commit.c:622
#, c-format
msgid "commit '%s' has malformed author line"
-msgstr "o commit '%s' tem a linha de autor malformada"
+msgstr "memória '%s' tem a linha de autor malformada"
-#: builtin/commit.c:639
+#: builtin/commit.c:641
msgid "malformed --author parameter"
msgstr "parâmetro --author malformado"
-#: builtin/commit.c:692
+#: builtin/commit.c:694
msgid ""
"unable to select a comment character that is not used\n"
"in the current commit message"
msgstr ""
-"incapaz selecionar um carácter de comentário fica por usar\n"
-"na mensagem de commit atual"
+"apenas sou capaz de selecionar carácter de comentário usado\n"
+"na mensagem de memória atual"
-#: builtin/commit.c:746 builtin/commit.c:780 builtin/commit.c:1165
+#: builtin/commit.c:750 builtin/commit.c:784 builtin/commit.c:1170
#, c-format
msgid "could not lookup commit %s"
-msgstr "incapaz consultar commit %s"
+msgstr "incapaz procurar memória %s"
-#: builtin/commit.c:758 builtin/shortlog.c:413
+#: builtin/commit.c:762 builtin/shortlog.c:417
#, c-format
msgid "(reading log message from standard input)\n"
msgstr "(a ler mensagem de log da entrada padrão)\n"
-#: builtin/commit.c:760
+#: builtin/commit.c:764
msgid "could not read log from standard input"
msgstr "incapaz ler log da entrada padrão"
-#: builtin/commit.c:764
+#: builtin/commit.c:768
#, c-format
msgid "could not read log file '%s'"
msgstr "incapaz ler ficheiro de log '%s'"
-#: builtin/commit.c:801
+#: builtin/commit.c:805
#, c-format
-msgid "cannot combine -m with --fixup:%s"
-msgstr "incapaz de combinar -m com --fixup:%s"
+msgid "options '%s' and '%s:%s' cannot be used together"
+msgstr "opções '%s' e '%s:%s' incapaz serem usadas juntas"
-#: builtin/commit.c:813 builtin/commit.c:829
+#: builtin/commit.c:817 builtin/commit.c:833
msgid "could not read SQUASH_MSG"
msgstr "incapaz ler SQUASH_MSG"
-#: builtin/commit.c:820
+#: builtin/commit.c:824
msgid "could not read MERGE_MSG"
msgstr "incapaz ler MERGE_MSG"
-#: builtin/commit.c:880
+#: builtin/commit.c:884
msgid "could not write commit template"
-msgstr "incapaz escrever o modelo de commit"
+msgstr "incapaz escrever modelo de memória"
-#: builtin/commit.c:893
+#: builtin/commit.c:897
#, c-format
msgid ""
"Please enter the commit message for your changes. Lines starting\n"
"with '%c' will be ignored.\n"
msgstr ""
-"Introduza a mensagem de commit das suas alterações.\n"
-"Linhas começadas com '%c' serão ignoradas, e uma mensagem vazia\n"
-"aborta o commit.\n"
+"Por favor, introduz a mensagem de memória das tuas alterações.\n"
+"Linhas começadas com '%c' serão ignoradas.\n"
-#: builtin/commit.c:895
+#: builtin/commit.c:899
#, c-format
msgid ""
"Please enter the commit message for your changes. Lines starting\n"
"with '%c' will be ignored, and an empty message aborts the commit.\n"
msgstr ""
-"Introduza a mensagem de commit das suas alterações.\n"
+"Por favor, introduz a mensagem de memória das tuas alterações.\n"
"Linhas começadas com '%c' serão ignoradas, e uma mensagem vazia\n"
-"aborta o commit.\n"
+"aborta a memorização.\n"
-#: builtin/commit.c:899
+#: builtin/commit.c:903
#, c-format
msgid ""
"Please enter the commit message for your changes. Lines starting\n"
"with '%c' will be kept; you may remove them yourself if you want to.\n"
msgstr ""
-"Introduzia a mensagem de commit das suas alterações.\n"
-"Linhas começadas com '%c' serão mantidas; pode removê-las se o desejar.\n"
-"Uma mensagem vazia aborta o commit.\n"
+"Por favor, introduz a mensagem de memória das tuas alterações.\n"
+"Linhas começadas com '%c' serão mantidas; podes removê-las se quiseres.\n"
-#: builtin/commit.c:903
+#: builtin/commit.c:907
#, c-format
msgid ""
"Please enter the commit message for your changes. Lines starting\n"
"with '%c' will be kept; you may remove them yourself if you want to.\n"
"An empty message aborts the commit.\n"
msgstr ""
-"Introduzia a mensagem de commit das suas alterações.\n"
-"Linhas começadas com '%c' serão mantidas; pode removê-las se o desejar.\n"
-"Uma mensagem vazia aborta o commit.\n"
+"Por favor, introduz a mensagem de memória das tuas alterações.\n"
+"Linhas começadas com '%c' serão mantidas; podes removê-las se quiseres.\n"
+"Uma mensagem vazia aborta a memorização.\n"
-#: builtin/commit.c:915
+#: builtin/commit.c:919
msgid ""
"\n"
"It looks like you may be committing a merge.\n"
@@ -13484,12 +14141,12 @@ msgid ""
"and try again.\n"
msgstr ""
"\n"
-"Parece que estás a fazer commit a uma junção.\n"
-"Se isto é incorreto, remove o ficheiro\n"
+"Parece que estás a memorizar uma junção.\n"
+"Se isto é incorreto, por favor executa\n"
"\tgit update-ref -d MERGE_HEAD\n"
"e tenta de novo.\n"
-#: builtin/commit.c:920
+#: builtin/commit.c:924
msgid ""
"\n"
"It looks like you may be committing a cherry-pick.\n"
@@ -13498,178 +14155,154 @@ msgid ""
"and try again.\n"
msgstr ""
"\n"
-"Parece que está a fazer commit a um cherry-pick.\n"
-"Se é incorreto, remove o ficheiro\n"
+"Parece que estás memorizando uma apanha.\n"
+"Se isto é incorreto, por favor executa\n"
"\tgit update-ref -d CHERRY_PICK_HEAD\n"
"e tenta de novo.\n"
-#: builtin/commit.c:947
+#: builtin/commit.c:951
#, c-format
msgid "%sAuthor: %.*s <%.*s>"
msgstr "%sAutor: %.*s <%.*s>"
-#: builtin/commit.c:955
+#: builtin/commit.c:959
#, c-format
msgid "%sDate: %s"
msgstr "%sData: %s"
-#: builtin/commit.c:962
+#: builtin/commit.c:966
#, c-format
msgid "%sCommitter: %.*s <%.*s>"
-msgstr "%sCommitter: %.*s <%.*s>"
+msgstr "%sMemorizador: %.*s <%.*s>"
-#: builtin/commit.c:980
+#: builtin/commit.c:984
msgid "Cannot read index"
-msgstr "Incapaz ler index"
+msgstr "Incapaz ler cenário"
-#: builtin/commit.c:1025
+#: builtin/commit.c:1029
msgid "unable to pass trailers to --trailers"
msgstr "incapaz passar atribuições para --trailers"
-#: builtin/commit.c:1065
+#: builtin/commit.c:1069
msgid "Error building trees"
msgstr "Erro ao construir árvores"
-#: builtin/commit.c:1079 builtin/tag.c:319
+#: builtin/commit.c:1083 builtin/tag.c:317
#, c-format
msgid "Please supply the message using either -m or -F option.\n"
msgstr "Indique a mensagem usando apenas as opções -m ou -F.\n"
-#: builtin/commit.c:1123
+#: builtin/commit.c:1128
#, c-format
msgid "--author '%s' is not 'Name <email>' and matches no existing author"
-msgstr "--author '%s' é diferente de 'Nome <email>' e corresponde a autor inexistente"
+msgstr ""
+"--author '%s' é diferente de 'Nome <email>' e corresponde a autor inexistente"
-#: builtin/commit.c:1137
+#: builtin/commit.c:1142
#, c-format
msgid "Invalid ignored mode '%s'"
msgstr "Modo de ignorar inválido '%s'"
-#: builtin/commit.c:1155 builtin/commit.c:1448
+#: builtin/commit.c:1160 builtin/commit.c:1450
#, c-format
msgid "Invalid untracked files mode '%s'"
-msgstr "Modo inválido de ficheiros por seguir '%s'"
+msgstr "Modo '%s' inválido de ficheiros desmonitorizados"
-#: builtin/commit.c:1195
-msgid "--long and -z are incompatible"
-msgstr "--long e -z são incompatíveis"
-
-#: builtin/commit.c:1226
+#: builtin/commit.c:1231
msgid "You are in the middle of a merge -- cannot reword."
-msgstr "Estás no meio de junção -- incapaz refrasear."
+msgstr "Estás no meio de uma junção -- incapaz refrasear."
-#: builtin/commit.c:1228
+#: builtin/commit.c:1233
msgid "You are in the middle of a cherry-pick -- cannot reword."
-msgstr "Estás no meio de apanha -- incapaz refrasear."
+msgstr "Estás no meio de uma apanha -- incapaz refrasear."
-#: builtin/commit.c:1231
+#: builtin/commit.c:1236
#, c-format
-msgid "cannot combine reword option of --fixup with path '%s'"
-msgstr ""
-
-#: builtin/commit.c:1233
-msgid ""
-"reword option of --fixup is mutually exclusive with --patch/--interactive/--"
-"all/--include/--only"
+msgid "reword option of '%s' and path '%s' cannot be used together"
msgstr ""
+"opção de renomeamento de '%s' e caminho '%s' incapaz serem usadas juntas"
-#: builtin/commit.c:1252
-msgid "Using both --reset-author and --author does not make sense"
-msgstr "Usar ambos --reset-author e --author faz sentido nenhum"
+#: builtin/commit.c:1238
+#, c-format
+msgid "reword option of '%s' and '%s' cannot be used together"
+msgstr "opção de renomeamento de '%s' e '%s' incapaz serem usadas juntas"
-#: builtin/commit.c:1261
+#: builtin/commit.c:1263
msgid "You have nothing to amend."
msgstr "Tens nada para emendar."
-#: builtin/commit.c:1264
+#: builtin/commit.c:1266
msgid "You are in the middle of a merge -- cannot amend."
-msgstr "Estás no meio de junção -- incapaz emendar."
+msgstr "Estás no meio de uma junção -- incapaz emendar."
-#: builtin/commit.c:1266
+#: builtin/commit.c:1268
msgid "You are in the middle of a cherry-pick -- cannot amend."
-msgstr "Estás no meio de apanha -- incapaz emendar."
+msgstr "Estás no meio de uma apanha -- incapaz emendar."
-#: builtin/commit.c:1268
+#: builtin/commit.c:1270
msgid "You are in the middle of a rebase -- cannot amend."
msgstr "Estás no meio de rebase -- incapaz emendar."
-#: builtin/commit.c:1271
-msgid "Options --squash and --fixup cannot be used together"
-msgstr "Opções --squash e --fixup incapaz serem usadas juntas"
-
-#: builtin/commit.c:1281
-msgid "Only one of -c/-C/-F/--fixup can be used."
-msgstr "Apenas um entre -c/-C/-F/--fixup pode ser usado."
-
-#: builtin/commit.c:1283
-msgid "Option -m cannot be combined with -c/-C/-F."
-msgstr "Opção -m incapaz ser combinada com -c/C/-F."
-
-#: builtin/commit.c:1292
+#: builtin/commit.c:1290
msgid "--reset-author can be used only with -C, -c or --amend."
msgstr "--reset-author só pode ser usado com -C, -c ou --amend."
-#: builtin/commit.c:1310
-msgid "Only one of --include/--only/--all/--interactive/--patch can be used."
-msgstr ""
-"Apenas um entre --include/--only/--all/--interactive/--patch pode ser usado."
-
-#: builtin/commit.c:1338
+#: builtin/commit.c:1337
#, c-format
msgid "unknown option: --fixup=%s:%s"
msgstr "opção desconhecida: --fixup=%s:%s"
-#: builtin/commit.c:1352
+#: builtin/commit.c:1354
#, c-format
msgid "paths '%s ...' with -a does not make sense"
msgstr "paths '%s ...' com -a faz sentido nenhum"
-#: builtin/commit.c:1483 builtin/commit.c:1652
+#: builtin/commit.c:1485 builtin/commit.c:1654
msgid "show status concisely"
msgstr "mostrar status de forma concisa"
-#: builtin/commit.c:1485 builtin/commit.c:1654
+#: builtin/commit.c:1487 builtin/commit.c:1656
msgid "show branch information"
msgstr "mostrar informação de ramo"
-#: builtin/commit.c:1487
+#: builtin/commit.c:1489
msgid "show stash information"
msgstr "mostrar informação de esconderijo"
-#: builtin/commit.c:1489 builtin/commit.c:1656
+#: builtin/commit.c:1491 builtin/commit.c:1658
msgid "compute full ahead/behind values"
msgstr ""
-#: builtin/commit.c:1491
+#: builtin/commit.c:1493
msgid "version"
msgstr "versão"
-#: builtin/commit.c:1491 builtin/commit.c:1658 builtin/push.c:551
-#: builtin/worktree.c:690
+#: builtin/commit.c:1493 builtin/commit.c:1660 builtin/push.c:551
+#: builtin/worktree.c:765
msgid "machine-readable output"
msgstr "saída inteligível a máquina"
-#: builtin/commit.c:1494 builtin/commit.c:1660
+#: builtin/commit.c:1496 builtin/commit.c:1662
msgid "show status in long format (default)"
msgstr "apresentar status em formato longo (predefinição)"
-#: builtin/commit.c:1497 builtin/commit.c:1663
+#: builtin/commit.c:1499 builtin/commit.c:1665
msgid "terminate entries with NUL"
msgstr "terminar entradas com NUL"
-#: builtin/commit.c:1499 builtin/commit.c:1503 builtin/commit.c:1666
-#: builtin/fast-export.c:1198 builtin/fast-export.c:1201
-#: builtin/fast-export.c:1204 builtin/rebase.c:1407 parse-options.h:337
+#: builtin/commit.c:1501 builtin/commit.c:1505 builtin/commit.c:1668
+#: builtin/fast-export.c:1172 builtin/fast-export.c:1175
+#: builtin/fast-export.c:1178 builtin/rebase.c:1139 parse-options.h:368
msgid "mode"
msgstr "modo"
-#: builtin/commit.c:1500 builtin/commit.c:1666
+#: builtin/commit.c:1502 builtin/commit.c:1668
msgid "show untracked files, optional modes: all, normal, no. (Default: all)"
msgstr ""
-"mostrar ficheiros por seguir, modo opcional: all, normal, no. (Predefinição: "
-"all)"
+"mostrar ficheiros desmonitorizados, modos opcionais: all, normal, no. "
+"Predefinição: all)"
-#: builtin/commit.c:1504
+#: builtin/commit.c:1506
msgid ""
"show ignored files, optional modes: traditional, matching, no. (Default: "
"traditional)"
@@ -13677,210 +14310,210 @@ msgstr ""
"mostrar ficheiros ignorados, modo opcional: traditional, matching, no. "
"(Predefinição: tradicional)"
-#: builtin/commit.c:1506 parse-options.h:193
+#: builtin/commit.c:1508 parse-options.h:197
msgid "when"
msgstr "quando"
-#: builtin/commit.c:1507
+#: builtin/commit.c:1509
msgid ""
"ignore changes to submodules, optional when: all, dirty, untracked. "
"(Default: all)"
msgstr ""
-"ignorar alterações em submódulos, quando é opcional: all, dirty, untracked. "
+"ignorar alterações em submódulos, opcional quando: all, dirty, untracked. "
"(Predefinição: all)"
-#: builtin/commit.c:1509
+#: builtin/commit.c:1511
msgid "list untracked files in columns"
-msgstr "listar ficheiros por seguir em colunas"
+msgstr "listar ficheiros desmonitorizados em colunas"
-#: builtin/commit.c:1510
+#: builtin/commit.c:1512
msgid "do not detect renames"
msgstr "detecção renomeação nenhuma"
-#: builtin/commit.c:1512
+#: builtin/commit.c:1514
msgid "detect renames, optionally set similarity index"
msgstr ""
-#: builtin/commit.c:1535
+#: builtin/commit.c:1537
msgid "Unsupported combination of ignored and untracked-files arguments"
msgstr ""
-#: builtin/commit.c:1617
+#: builtin/commit.c:1619
msgid "suppress summary after successful commit"
-msgstr "suprimir o resumo depois de submeter com sucesso"
+msgstr "suprimir resumo depois de memorizar com sucesso"
-#: builtin/commit.c:1618
+#: builtin/commit.c:1620
msgid "show diff in commit message template"
-msgstr "mostrar diff no modelo da mensagem de commit"
+msgstr "mostrar diff no modelo da mensagem de memória"
-#: builtin/commit.c:1620
+#: builtin/commit.c:1622
msgid "Commit message options"
-msgstr "Opções de mensagem de commit"
+msgstr "Opções de mensagem de memória"
-#: builtin/commit.c:1621 builtin/merge.c:286 builtin/tag.c:458
+#: builtin/commit.c:1623 builtin/merge.c:288 builtin/tag.c:457
msgid "read message from file"
msgstr "ler mensagem de ficheiro"
-#: builtin/commit.c:1622
+#: builtin/commit.c:1624
msgid "author"
msgstr "autor"
-#: builtin/commit.c:1622
+#: builtin/commit.c:1624
msgid "override author for commit"
msgstr "sobrepor autor de memória"
-#: builtin/commit.c:1623 builtin/gc.c:550
+#: builtin/commit.c:1625 builtin/gc.c:551
msgid "date"
msgstr "data"
-#: builtin/commit.c:1623
+#: builtin/commit.c:1625
msgid "override date for commit"
-msgstr "substituir data do commit"
+msgstr "sobrepor data de memória"
-#: builtin/commit.c:1625 builtin/commit.c:1626 builtin/commit.c:1632
-#: parse-options.h:329 ref-filter.h:90
+#: builtin/commit.c:1627 builtin/commit.c:1628 builtin/commit.c:1634
+#: parse-options.h:360 ref-filter.h:89
msgid "commit"
msgstr "memória"
-#: builtin/commit.c:1625
+#: builtin/commit.c:1627
msgid "reuse and edit message from specified commit"
-msgstr "reutilizar e editar a mensagem de um commit especificado"
+msgstr "reutilizar e editar mensagem de memória especificada"
-#: builtin/commit.c:1626
+#: builtin/commit.c:1628
msgid "reuse message from specified commit"
-msgstr "reutilizar a mensagem de um commit especificado"
+msgstr "reutilizar mensagem de memória especificada"
#. TRANSLATORS: Leave "[(amend|reword):]" as-is,
#. and only translate <commit>.
#.
-#: builtin/commit.c:1631
+#: builtin/commit.c:1633
msgid "[(amend|reword):]commit"
msgstr "[(amend|reword):]memória"
-#: builtin/commit.c:1631
+#: builtin/commit.c:1633
msgid ""
"use autosquash formatted message to fixup or amend/reword specified commit"
msgstr ""
-"usar mensagem com formato autosquash para corrigir o commit especificado"
+"usar mensagem com formato autosquash para consertar ou emendar/refrasear "
+"memória especificada"
-#: builtin/commit.c:1632
+#: builtin/commit.c:1634
msgid "use autosquash formatted message to squash specified commit"
-msgstr ""
-"usar mensagem com formato autosquash para esmagar o commit especificado"
+msgstr "usar mensagem com formato autosquash para esmagar memória especificada"
-#: builtin/commit.c:1633
+#: builtin/commit.c:1635
msgid "the commit is authored by me now (used with -C/-c/--amend)"
-msgstr "agora sou eu o autor da memória (usado com -C/-c/--amend)"
+msgstr "o autor da memória agora sou eu (usado com -C/-c/--amend)"
-#: builtin/commit.c:1634 builtin/interpret-trailers.c:111
+#: builtin/commit.c:1636 builtin/interpret-trailers.c:111
msgid "trailer"
msgstr "atribuição"
-#: builtin/commit.c:1634
+#: builtin/commit.c:1636
msgid "add custom trailer(s)"
-msgstr ""
+msgstr "adicionar atribuição(ões) customizada(s)"
-#: builtin/commit.c:1635 builtin/log.c:1754 builtin/merge.c:302
-#: builtin/pull.c:145 builtin/revert.c:110
+#: builtin/commit.c:1637 builtin/log.c:1788 builtin/merge.c:306
+#: builtin/pull.c:146 builtin/revert.c:110
msgid "add a Signed-off-by trailer"
msgstr "adicionar atribuição Signed-off-by"
-#: builtin/commit.c:1636
+#: builtin/commit.c:1638
msgid "use specified template file"
msgstr "usar ficheiro de modelo especificado"
-#: builtin/commit.c:1637
+#: builtin/commit.c:1639
msgid "force edit of commit"
msgstr "forçar edição de memória"
-#: builtin/commit.c:1639
+#: builtin/commit.c:1641
msgid "include status in commit message template"
-msgstr "incluir status no modelo da mensagem de commit"
+msgstr "incluir status no modelo da mensagem de memória"
-#: builtin/commit.c:1644
+#: builtin/commit.c:1646
msgid "Commit contents options"
-msgstr "Opções de conteúdo do commit"
+msgstr "Opções de conteúdo de memória"
-#: builtin/commit.c:1645
+#: builtin/commit.c:1647
msgid "commit all changed files"
-msgstr "submeter todos os ficheiros alterados"
+msgstr "memorizar todos os ficheiros alterados"
-#: builtin/commit.c:1646
+#: builtin/commit.c:1648
msgid "add specified files to index for commit"
-msgstr "adicionar ficheiros especificados ao índice para submeter"
+msgstr "adicionar ficheiros especificados ao cenário para a memória"
-#: builtin/commit.c:1647
+#: builtin/commit.c:1649
msgid "interactively add files"
msgstr "adicionar ficheiros interativamente"
-#: builtin/commit.c:1648
+#: builtin/commit.c:1650
msgid "interactively add changes"
msgstr "adicionar alterações interativamente"
-#: builtin/commit.c:1649
+#: builtin/commit.c:1651
msgid "commit only specified files"
msgstr "memorizar somente ficheiros especificados"
-#: builtin/commit.c:1650
+#: builtin/commit.c:1652
msgid "bypass pre-commit and commit-msg hooks"
-msgstr "ignorar pre-commit e ganchos commit-msg"
+msgstr "contornar ganchos pre-commit e commit-msg"
-#: builtin/commit.c:1651
+#: builtin/commit.c:1653
msgid "show what would be committed"
-msgstr "mostrar o que seria submetido"
+msgstr "mostrar o que seria memorizado"
-#: builtin/commit.c:1664
+#: builtin/commit.c:1666
msgid "amend previous commit"
msgstr "emendar memória anterior"
-#: builtin/commit.c:1665
+#: builtin/commit.c:1667
msgid "bypass post-rewrite hook"
-msgstr "ignorar post-rewrite hook"
+msgstr "contornar gancho post-rewrite"
-#: builtin/commit.c:1672
+#: builtin/commit.c:1674
msgid "ok to record an empty change"
-msgstr "aceitar o registo duma alteração vazia"
+msgstr "ok a gravar uma alteração vazia"
-#: builtin/commit.c:1674
+#: builtin/commit.c:1676
msgid "ok to record a change with an empty message"
-msgstr "aceitar o registo duma alteração com uma mensagem vazia"
+msgstr "ok a gravar uma alteração com uma mensagem vazia"
-#: builtin/commit.c:1750
+#: builtin/commit.c:1752
#, c-format
msgid "Corrupt MERGE_HEAD file (%s)"
msgstr "Ficheiro MERGE_HEAD roto (%s)"
-#: builtin/commit.c:1757
+#: builtin/commit.c:1759
msgid "could not read MERGE_MODE"
msgstr "incapaz ler MERGE_MODE"
-#: builtin/commit.c:1778
+#: builtin/commit.c:1780
#, c-format
msgid "could not read commit message: %s"
-msgstr "incapaz ler mensagem de commit: %s"
+msgstr "incapaz ler mensagem de memória: %s"
-#: builtin/commit.c:1785
+#: builtin/commit.c:1787
#, c-format
msgid "Aborting commit due to empty commit message.\n"
msgstr "Abortando a memorização devido a mensagem de memória vazia.\n"
-#: builtin/commit.c:1790
+#: builtin/commit.c:1792
#, c-format
msgid "Aborting commit; you did not edit the message.\n"
msgstr "Abortando memorização; mensagem ficou por editar.\n"
-#: builtin/commit.c:1801
+#: builtin/commit.c:1803
#, c-format
msgid "Aborting commit due to empty commit message body.\n"
msgstr "Abortando memorização devido a corpo de mensagem de memória vazia.\n"
-#: builtin/commit.c:1837
+#: builtin/commit.c:1839
msgid ""
"repository has been updated, but unable to write\n"
"new_index file. Check that disk is not full and quota is\n"
"not exceeded, and then \"git restore --staged :/\" to recover."
msgstr ""
-"Repositório foi atualizado, mas incapaz escrever ficheiro new_index.\n"
+"repositório foi atualizado, mas incapaz escrever ficheiro new_index.\n"
"Verifica se tens espaço em disco e que a quota está por preencher,\n"
"e executa \"git restore --staged :/\" para recuperar."
@@ -13927,7 +14560,7 @@ msgstr "id-blob"
#: builtin/config.c:136
msgid "read config from given blob object"
-msgstr "ler configuração a partir do objeto blob fornecido"
+msgstr "ler configuração a partir de objeto-blob fornecido"
#: builtin/config.c:137
msgid "Action"
@@ -13998,6 +14631,10 @@ msgstr "encontrar a definição de cor: slot [stdout-é-tty]"
msgid "Type"
msgstr "Tipo"
+#: builtin/config.c:154 builtin/env--helper.c:42 builtin/hash-object.c:97
+msgid "type"
+msgstr "tipo"
+
#: builtin/config.c:154 builtin/env--helper.c:43
msgid "value is given this type"
msgstr ""
@@ -14020,7 +14657,7 @@ msgstr "valor é --bool ou string"
#: builtin/config.c:159
msgid "value is a path (file or directory name)"
-msgstr "o valor é um caminho (nome dum ficheiro ou diretório)"
+msgstr "valor é um caminho (nome dum ficheiro ou pasta)"
#: builtin/config.c:160
msgid "value is an expiry date"
@@ -14205,10 +14842,6 @@ msgstr ""
msgid "no such section: %s"
msgstr "secção inexistente: %s"
-#: builtin/count-objects.c:90
-msgid "git count-objects [-v] [-H | --human-readable]"
-msgstr "git count-objects [-v] [-H | --human-readable]"
-
#: builtin/count-objects.c:100
msgid "print sizes in human readable format"
msgstr "imprimir dimensões em formato inteligível por humanos"
@@ -14221,21 +14854,21 @@ msgid ""
"\n"
"\tchmod 0700 %s"
msgstr ""
-"As permissões do diretório do socket são demasiado fracas; outros\n"
-"utilizadores poderão conseguir as suas credenciais em cache. Considere "
+"As permissões da pasta de socket são demasiado fracas; outros\n"
+"utilizadores poderão conseguir ler as tuas credenciais em cache. Considera "
"executar:\n"
"\n"
"\tchmod 0700 %s"
#: builtin/credential-cache--daemon.c:276
msgid "print debugging messages to stderr"
-msgstr "imprimir mensagens de depuração no stderr"
+msgstr "mostrar mensagens de depuração no stderr"
#: builtin/credential-cache--daemon.c:316
msgid "credential-cache--daemon unavailable; no unix socket support"
msgstr ""
-#: builtin/credential-cache.c:154
+#: builtin/credential-cache.c:180
msgid "credential-cache unavailable; no unix socket support"
msgstr ""
@@ -14267,17 +14900,17 @@ msgstr "anotado"
#: builtin/describe.c:277
#, c-format
msgid "annotated tag %s not available"
-msgstr "tag anotada %s está indisponível"
+msgstr "etiqueta anotada %s está indisponível"
#: builtin/describe.c:281
#, c-format
msgid "tag '%s' is externally known as '%s'"
-msgstr "a tag '%s' está de facto em '%s'"
+msgstr "etiqueta '%s' é conhecida como '%s'"
#: builtin/describe.c:328
#, c-format
msgid "no tag exactly matches '%s'"
-msgstr "tag nenhuma corresponde exatamente a '%s'"
+msgstr "etiqueta nenhuma corresponde exatamente a '%s'"
#: builtin/describe.c:330
#, c-format
@@ -14295,8 +14928,8 @@ msgid ""
"No annotated tags can describe '%s'.\n"
"However, there were unannotated tags: try --tags."
msgstr ""
-"'%s' pode ser descrição de tag anotada nenhuma.\n"
-"No entanto, houve fora das tags anotadas: tenta --tags."
+"'%s' pode ser descrição de etiqueta anotada nenhuma.\n"
+"No entanto, existem etiquetas desanotadas: tenta --tags."
#: builtin/describe.c:428
#, c-format
@@ -14304,13 +14937,13 @@ msgid ""
"No tags can describe '%s'.\n"
"Try --always, or create some tags."
msgstr ""
-"'%s' pode ser descrição de tag nenhuma.\n"
-"Tenta --always, ou cria algumas tags."
+"'%s' pode ser descrição de etiqueta nenhuma.\n"
+"Tenta --always, ou cria algumas etiquetas."
#: builtin/describe.c:458
#, c-format
msgid "traversed %lu commits\n"
-msgstr "%lu commits percorridos\n"
+msgstr "%lu memórias percorridas\n"
#: builtin/describe.c:461
#, c-format
@@ -14318,7 +14951,7 @@ msgid ""
"more than %i tags found; listed %i most recent\n"
"gave up search at %s\n"
msgstr ""
-"mais de %i tags encontradas; foram listadas as %i mais recentes\n"
+"mais de %i etiquetas encontradas; foram listadas as %i mais recentes\n"
"pesquisa interrompida em %s\n"
#: builtin/describe.c:529
@@ -14334,23 +14967,23 @@ msgstr "%s é nome de objeto inválido"
#: builtin/describe.c:540
#, c-format
msgid "%s is neither a commit nor blob"
-msgstr "'%s' é nem commit nem blob"
+msgstr "'%s' é nem memória nem blob"
#: builtin/describe.c:554
msgid "find the tag that comes after the commit"
-msgstr "localizar a tag que vem após o commit"
+msgstr "encontrar a etiqueta que vem após a memória"
#: builtin/describe.c:555
msgid "debug search strategy on stderr"
-msgstr "depurar a estratégia de procura para stderr"
+msgstr "depurar a estratégia de procura em stderr"
#: builtin/describe.c:556
msgid "use any ref"
-msgstr "usar uma referência qualquer"
+msgstr "usa qualquer ref"
#: builtin/describe.c:557
msgid "use any tag, even unannotated"
-msgstr "usa qualquer tag, mesmo uma por anotar"
+msgstr "usa qualquer etiqueta, mesmo uma desanotada"
#: builtin/describe.c:558
msgid "always use long format"
@@ -14358,7 +14991,7 @@ msgstr "usar sempre formato longo"
#: builtin/describe.c:559
msgid "only follow first parent"
-msgstr "seguir só o primeiro pai"
+msgstr "seguir só o primeiro parente"
#: builtin/describe.c:562
msgid "only output exact matches"
@@ -14366,19 +14999,19 @@ msgstr "sair apenas correspondências exatas"
#: builtin/describe.c:564
msgid "consider <n> most recent tags (default: 10)"
-msgstr "considerar as <n> tags mais recentes (predefinição: 10)"
+msgstr "considerar as <n> etiquetas mais recentes (predefinição: 10)"
#: builtin/describe.c:566
msgid "only consider tags matching <pattern>"
-msgstr "apenas considerar tags que correspondam ao <padrão>"
+msgstr "apenas considerar etiquetas correspondentes a <padrão>"
#: builtin/describe.c:568
msgid "do not consider tags matching <pattern>"
-msgstr "descarta tags que correspondam ao <padrão>"
+msgstr "descarta etiquetas correspondentes a <padrão>"
-#: builtin/describe.c:570 builtin/name-rev.c:535
+#: builtin/describe.c:570 builtin/name-rev.c:595
msgid "show abbreviated commit object as fallback"
-msgstr "mostrar objetos de commit abreviados em recurso"
+msgstr "mostrar objeto de memória abreviado como recurso"
#: builtin/describe.c:571 builtin/describe.c:574
msgid "mark"
@@ -14386,35 +15019,21 @@ msgstr "marca"
#: builtin/describe.c:572
msgid "append <mark> on dirty working tree (default: \"-dirty\")"
-msgstr ""
-"acrescentar <marca> se a árvore de trabalho contiver alterações "
-"(predefinição: \"-dirty\")"
+msgstr "acrescentar <marca> em árvore-trabalho suja (predefinição: \"-dirty\")"
#: builtin/describe.c:575
msgid "append <mark> on broken working tree (default: \"-broken\")"
msgstr ""
-"acrescentar <marca> no caso de árvore de trabalho quebrada (predefinição: \"-"
-"broken\")"
-
-#: builtin/describe.c:593
-msgid "--long is incompatible with --abbrev=0"
-msgstr "--long é incompatível com --abbrev=0"
+"acrescentar <marca> em árvore-trabalho quebrada (predefinição: \"-broken\")"
#: builtin/describe.c:622
msgid "No names found, cannot describe anything."
msgstr "Nenhum nome encontrado, incapaz descrever qualquer coisa."
-#: builtin/describe.c:673
-msgid "--dirty is incompatible with commit-ishes"
-msgstr "--dirty é incompatível com mnemónicas"
-
-#: builtin/describe.c:675
-msgid "--broken is incompatible with commit-ishes"
-msgstr "--broken é incompatível com mnemónicas"
-
-#: builtin/diff-tree.c:155
-msgid "--stdin and --merge-base are mutually exclusive"
-msgstr ""
+#: builtin/describe.c:673 builtin/describe.c:675
+#, c-format
+msgid "option '%s' and commit-ishes cannot be used together"
+msgstr "opção '%s' e mnemónicas incapaz serem usadas juntas"
#: builtin/diff-tree.c:157
msgid "--merge-base only works with two commits"
@@ -14435,26 +15054,26 @@ msgstr ""
msgid "%s...%s: no merge base"
msgstr ""
-#: builtin/diff.c:486
+#: builtin/diff.c:491
msgid "Not a git repository"
msgstr "É repositório git nenhum"
-#: builtin/diff.c:532 builtin/grep.c:684
+#: builtin/diff.c:537 builtin/grep.c:700
#, c-format
msgid "invalid object '%s' given."
msgstr "objeto inválido '%s' fornecido."
-#: builtin/diff.c:543
+#: builtin/diff.c:548
#, c-format
msgid "more than two blobs given: '%s'"
msgstr "mais do que dois blobs fornecidos: '%s'"
-#: builtin/diff.c:548
+#: builtin/diff.c:553
#, c-format
msgid "unhandled object '%s' given."
msgstr "objeto sem tratamento '%s' fornecido."
-#: builtin/diff.c:582
+#: builtin/diff.c:587
#, c-format
msgid "%s...%s: multiple merge bases, using %s"
msgstr ""
@@ -14463,114 +15082,106 @@ msgstr ""
msgid "git difftool [<options>] [<commit> [<commit>]] [--] [<path>...]"
msgstr "git difftool [<opções>] [<memória> [<memória>]] [--] [<caminho>...]"
-#: builtin/difftool.c:261
-#, c-format
-msgid "failed: %d"
-msgstr "falhou: %d"
-
-#: builtin/difftool.c:303
+#: builtin/difftool.c:287
#, c-format
msgid "could not read symlink %s"
msgstr "incapaz ler ligação simbólica %s"
-#: builtin/difftool.c:305
+#: builtin/difftool.c:289
#, c-format
msgid "could not read symlink file %s"
msgstr "incapaz ler ficheiro de ligação simbólica %s"
-#: builtin/difftool.c:313
+#: builtin/difftool.c:297
#, c-format
msgid "could not read object %s for symlink %s"
msgstr "incapaz ler o objeto %s para ligação simbólica %s"
-#: builtin/difftool.c:413
+#: builtin/difftool.c:421
msgid ""
-"combined diff formats('-c' and '--cc') are not supported in\n"
-"directory diff mode('-d' and '--dir-diff')."
+"combined diff formats ('-c' and '--cc') are not supported in\n"
+"directory diff mode ('-d' and '--dir-diff')."
msgstr ""
-"formatos diff combinado('-c' e '--cc') são insustentados em\n"
-"modo diff pasta('-d' e '--dir-diff')."
+"formatos diff combinados ('-c' e '--cc') são insustentados em\n"
+"modo diff de pasta ('-d' e '--dir-diff')."
-#: builtin/difftool.c:637
+#: builtin/difftool.c:626
#, c-format
msgid "both files modified: '%s' and '%s'."
msgstr "ambos os ficheiros modificados: '%s' e '%s'."
-#: builtin/difftool.c:639
+#: builtin/difftool.c:628
msgid "working tree file has been left."
-msgstr "ficheiro de árvore de trabalho foi deixado."
+msgstr "ficheiro de árvore-trabalho foi deixado."
-#: builtin/difftool.c:650
+#: builtin/difftool.c:639
#, c-format
msgid "temporary files exist in '%s'."
msgstr "existem ficheiros temporários em '%s'."
-#: builtin/difftool.c:651
+#: builtin/difftool.c:640
msgid "you may want to cleanup or recover these."
msgstr "pode querer limpar ou recuperá-los."
-#: builtin/difftool.c:699
+#: builtin/difftool.c:645
+#, c-format
+msgid "failed: %d"
+msgstr "falhou: %d"
+
+#: builtin/difftool.c:690
msgid "use `diff.guitool` instead of `diff.tool`"
msgstr "use 'diff.guitool' em vez de 'diff.tool'"
-#: builtin/difftool.c:701
+#: builtin/difftool.c:692
msgid "perform a full-directory diff"
-msgstr "efetuar diff diretório completo"
+msgstr "efetuar diff de pasta completa"
-#: builtin/difftool.c:703
+#: builtin/difftool.c:694
msgid "do not prompt before launching a diff tool"
msgstr "deixar de perguntar antes de lançar ferramenta diff"
-#: builtin/difftool.c:708
+#: builtin/difftool.c:699
msgid "use symlinks in dir-diff mode"
-msgstr "usar symlinks no modi dir-diff"
+msgstr "usar symlinks no modo diff-de-pasta"
-#: builtin/difftool.c:709
+#: builtin/difftool.c:700
msgid "tool"
msgstr "ferramenta"
-#: builtin/difftool.c:710
+#: builtin/difftool.c:701
msgid "use the specified diff tool"
msgstr "usar a ferramenta diff especificada"
-#: builtin/difftool.c:712
+#: builtin/difftool.c:703
msgid "print a list of diff tools that may be used with `--tool`"
msgstr ""
"imprimir uma lista de ferramentas diff que podem ser usadas com `--tool`"
-#: builtin/difftool.c:715
+#: builtin/difftool.c:706
msgid ""
-"make 'git-difftool' exit when an invoked diff tool returns a non - zero exit "
+"make 'git-difftool' exit when an invoked diff tool returns a non-zero exit "
"code"
msgstr ""
"fazer com que 'git-difftool' termine quando uma ferramenta diff invocada "
"retorna um código de saída diferente de zero"
-#: builtin/difftool.c:718
+#: builtin/difftool.c:709
msgid "specify a custom command for viewing diffs"
msgstr "especificar um comando personalizado para ver diffs"
-#: builtin/difftool.c:719
+#: builtin/difftool.c:710
msgid "passed to `diff`"
msgstr ""
-#: builtin/difftool.c:734
+#: builtin/difftool.c:726
msgid "difftool requires worktree or --no-index"
msgstr ""
-#: builtin/difftool.c:741
-msgid "--dir-diff is incompatible with --no-index"
-msgstr "--dir-diff é incompatível com --no-index"
-
-#: builtin/difftool.c:744
-msgid "--gui, --tool and --extcmd are mutually exclusive"
-msgstr ""
-
-#: builtin/difftool.c:752
+#: builtin/difftool.c:745
msgid "no <tool> given for --tool=<tool>"
msgstr "<ferramenta> nenhuma dada a --tool=<ferramenta>"
-#: builtin/difftool.c:759
+#: builtin/difftool.c:752
msgid "no <cmd> given for --extcmd=<cmd>"
msgstr "<cmd> nenhum dado a --extcmd=<cmd>"
@@ -14578,10 +15189,6 @@ msgstr "<cmd> nenhum dado a --extcmd=<cmd>"
msgid "git env--helper --type=[bool|ulong] <options> <env-var>"
msgstr ""
-#: builtin/env--helper.c:42 builtin/hash-object.c:98
-msgid "type"
-msgstr "tipo"
-
#: builtin/env--helper.c:46
msgid "default for git_env_*(...) to fall back on"
msgstr ""
@@ -14603,525 +15210,543 @@ msgid ""
msgstr ""
#: builtin/fast-export.c:29
-msgid "git fast-export [rev-list-opts]"
-msgstr "git fast-export [opts-lista-rev]"
+msgid "git fast-export [<rev-list-opts>]"
+msgstr "git fast-export [<opções-lista-rev>]"
-#: builtin/fast-export.c:868
+#: builtin/fast-export.c:843
msgid "Error: Cannot export nested tags unless --mark-tags is specified."
msgstr ""
-#: builtin/fast-export.c:1177
+#: builtin/fast-export.c:1152
msgid "--anonymize-map token cannot be empty"
msgstr ""
-#: builtin/fast-export.c:1197
+#: builtin/fast-export.c:1171
msgid "show progress after <n> objects"
msgstr "mostrar progresso depois de <n> objetos"
-#: builtin/fast-export.c:1199
+#: builtin/fast-export.c:1173
msgid "select handling of signed tags"
msgstr "selecionar como lidar as etiquetas assinadas"
-#: builtin/fast-export.c:1202
+#: builtin/fast-export.c:1176
msgid "select handling of tags that tag filtered objects"
msgstr "selecionar como lidar as etiquetas que marcam objetos filtrados"
-#: builtin/fast-export.c:1205
+#: builtin/fast-export.c:1179
msgid "select handling of commit messages in an alternate encoding"
-msgstr "selecionar como lidar as mensagens de memória com codificação alternativa"
+msgstr ""
+"selecionar como lidar as mensagens de memória com codificação alternativa"
-#: builtin/fast-export.c:1208
+#: builtin/fast-export.c:1182
msgid "dump marks to this file"
msgstr "Capturar marcas neste ficheiro"
-#: builtin/fast-export.c:1210
+#: builtin/fast-export.c:1184
msgid "import marks from this file"
msgstr "importar marcas deste ficheiro"
-#: builtin/fast-export.c:1214
+#: builtin/fast-export.c:1188
msgid "import marks from this file if it exists"
msgstr "importar marcas deste ficheiro se existir"
-#: builtin/fast-export.c:1216
+#: builtin/fast-export.c:1190
msgid "fake a tagger when tags lack one"
-msgstr "Falsear um \"tageador\" para quando falte um às tags"
+msgstr "Falsear um etiquetador quando faltar um para etiquetas"
-#: builtin/fast-export.c:1218
+#: builtin/fast-export.c:1192
msgid "output full tree for each commit"
-msgstr "Mostrar a árvore completa para cada commit"
+msgstr "mostrar árvore completa para cada memória"
-#: builtin/fast-export.c:1220
+#: builtin/fast-export.c:1194
msgid "use the done feature to terminate the stream"
msgstr "Usar a funcionalidade done para terminar o fluxo"
-#: builtin/fast-export.c:1221
+#: builtin/fast-export.c:1195
msgid "skip output of blob data"
msgstr "Ignorar a exibição de dados de blob"
-#: builtin/fast-export.c:1222 builtin/log.c:1826
+#: builtin/fast-export.c:1196 builtin/log.c:1860
msgid "refspec"
msgstr "especificador de referência"
-#: builtin/fast-export.c:1223
+#: builtin/fast-export.c:1197
msgid "apply refspec to exported refs"
msgstr "Aplicar o especificador de referência a referências exportadas"
-#: builtin/fast-export.c:1224
+#: builtin/fast-export.c:1198
msgid "anonymize output"
msgstr "anonimizar saída"
-#: builtin/fast-export.c:1225
+#: builtin/fast-export.c:1199
msgid "from:to"
msgstr ""
-#: builtin/fast-export.c:1226
+#: builtin/fast-export.c:1200
msgid "convert <from> to <to> in anonymized output"
msgstr ""
-#: builtin/fast-export.c:1229
+#: builtin/fast-export.c:1203
msgid "reference parents which are not in fast-export stream by object id"
msgstr ""
-#: builtin/fast-export.c:1231
+#: builtin/fast-export.c:1205
msgid "show original object ids of blobs/commits"
msgstr ""
-#: builtin/fast-export.c:1233
+#: builtin/fast-export.c:1207
msgid "label tags with mark ids"
-msgstr ""
+msgstr "rotular etiquetas com marcas de id"
-#: builtin/fast-export.c:1256
-msgid "--anonymize-map without --anonymize does not make sense"
-msgstr "--anonymize-map sem --anonymize faz sentido nenhum"
-
-#: builtin/fast-export.c:1271
-msgid "Cannot pass both --import-marks and --import-marks-if-exists"
-msgstr ""
-
-#: builtin/fast-import.c:3088
+#: builtin/fast-import.c:3097
#, c-format
msgid "Missing from marks for submodule '%s'"
msgstr ""
-#: builtin/fast-import.c:3090
+#: builtin/fast-import.c:3099
#, c-format
msgid "Missing to marks for submodule '%s'"
msgstr ""
-#: builtin/fast-import.c:3225
+#: builtin/fast-import.c:3234
#, c-format
msgid "Expected 'mark' command, got %s"
msgstr ""
-#: builtin/fast-import.c:3230
+#: builtin/fast-import.c:3239
#, c-format
msgid "Expected 'to' command, got %s"
msgstr ""
-#: builtin/fast-import.c:3322
+#: builtin/fast-import.c:3331
msgid "Expected format name:filename for submodule rewrite option"
msgstr ""
-#: builtin/fast-import.c:3377
+#: builtin/fast-import.c:3386
#, c-format
msgid "feature '%s' forbidden in input without --allow-unsafe-features"
msgstr ""
-#: builtin/fetch-pack.c:242
+#: builtin/fetch-pack.c:246
#, c-format
msgid "Lockfile created but not reported: %s"
-msgstr "Ficheiro de bloqueio criado mas por reportar: %s"
+msgstr "Ficheiro de trancar criado mas por reportar: %s"
-#: builtin/fetch.c:35
+#: builtin/fetch.c:36
msgid "git fetch [<options>] [<repository> [<refspec>...]]"
msgstr "git fetch [<opções>] [<repositório> [<espetro-ref>...]]"
-#: builtin/fetch.c:36
+#: builtin/fetch.c:37
msgid "git fetch [<options>] <group>"
msgstr "git fetch [<opções>] <grupo>"
-#: builtin/fetch.c:37
+#: builtin/fetch.c:38
msgid "git fetch --multiple [<options>] [(<repository> | <group>)...]"
msgstr "git fetch --multiple [<opções>] [(<repositório> | <grupo>)...]"
-#: builtin/fetch.c:38
+#: builtin/fetch.c:39
msgid "git fetch --all [<options>]"
msgstr "git fetch --all [<opções>]"
-#: builtin/fetch.c:122
+#: builtin/fetch.c:124
msgid "fetch.parallel cannot be negative"
-msgstr ""
+msgstr "fetch.parallel incapaz de ser negativo"
-#: builtin/fetch.c:145 builtin/pull.c:185
+#: builtin/fetch.c:147 builtin/pull.c:189
msgid "fetch from all remotes"
msgstr "obter de todos os remotos"
-#: builtin/fetch.c:147 builtin/pull.c:245
+#: builtin/fetch.c:149 builtin/pull.c:249
msgid "set upstream for git pull/fetch"
msgstr "definir upstream para git pull/fetch"
-#: builtin/fetch.c:149 builtin/pull.c:188
+#: builtin/fetch.c:151 builtin/pull.c:192
msgid "append to .git/FETCH_HEAD instead of overwriting"
msgstr "acrescentar a .git/FETCH_HEAD em vez de sobrescrever"
-#: builtin/fetch.c:151
+#: builtin/fetch.c:153
msgid "use atomic transaction to update references"
msgstr "usar transação atómica para atualizar referências"
-#: builtin/fetch.c:153 builtin/pull.c:191
+#: builtin/fetch.c:155 builtin/pull.c:195
msgid "path to upload pack on remote end"
-msgstr "caminho para o comando upload pack no remoto"
+msgstr "caminho para pacote upload no lado remoto"
-#: builtin/fetch.c:154
+#: builtin/fetch.c:156
msgid "force overwrite of local reference"
msgstr "forçar sobrescrever referências locais"
-#: builtin/fetch.c:156
+#: builtin/fetch.c:158
msgid "fetch from multiple remotes"
msgstr "obter de múltiplos remotos"
-#: builtin/fetch.c:158 builtin/pull.c:195
+#: builtin/fetch.c:160 builtin/pull.c:199
msgid "fetch all tags and associated objects"
-msgstr "obter todas as tags e objetos associados"
+msgstr "buscar todas as etiquetas e objetos associados"
-#: builtin/fetch.c:160
+#: builtin/fetch.c:162
msgid "do not fetch all tags (--no-tags)"
msgstr "buscar nada todas as etiquetas (--no-tags)"
-#: builtin/fetch.c:162
+#: builtin/fetch.c:164
msgid "number of submodules fetched in parallel"
msgstr "número de submódulos obtidos em paralelo"
-#: builtin/fetch.c:164
+#: builtin/fetch.c:166
msgid "modify the refspec to place all refs within refs/prefetch/"
-msgstr ""
+msgstr "modificar o espetro-ref para colocar todas as refs em refs/prefetch/"
-#: builtin/fetch.c:166 builtin/pull.c:198
+#: builtin/fetch.c:168 builtin/pull.c:202
msgid "prune remote-tracking branches no longer on remote"
msgstr "podar ramos de monitorização remotos que deixaram de estar no remoto"
-#: builtin/fetch.c:168
+#: builtin/fetch.c:170
msgid "prune local tags no longer on remote and clobber changed tags"
msgstr ""
+"podar etiquetas locais que que deixaram de estar no remoto e trocar etiquetas"
-#: builtin/fetch.c:169 builtin/fetch.c:194 builtin/pull.c:122
+#: builtin/fetch.c:171 builtin/fetch.c:199 builtin/pull.c:123
msgid "on-demand"
msgstr "on-demand"
-#: builtin/fetch.c:170
+#: builtin/fetch.c:172
msgid "control recursive fetching of submodules"
-msgstr "controlar buscar recursivo de submódulos"
+msgstr "controlar busca recursiva de submódulos"
-#: builtin/fetch.c:175
+#: builtin/fetch.c:177
msgid "write fetched references to the FETCH_HEAD file"
msgstr "escrever referências buscadas para ficheiro FETCH_HEAD"
-#: builtin/fetch.c:176 builtin/pull.c:206
+#: builtin/fetch.c:178 builtin/pull.c:210
msgid "keep downloaded pack"
msgstr "manter o pacote transferido"
-#: builtin/fetch.c:178
+#: builtin/fetch.c:180
msgid "allow updating of HEAD ref"
-msgstr "permitir a atualização da referência HEAD"
+msgstr "permitir a atualização da ref HEAD"
-#: builtin/fetch.c:181 builtin/fetch.c:187 builtin/pull.c:209
-#: builtin/pull.c:218
+#: builtin/fetch.c:183 builtin/fetch.c:189 builtin/pull.c:213
+#: builtin/pull.c:222
msgid "deepen history of shallow clone"
-msgstr "aprofundar o histórico de um clone raso"
+msgstr "aprofundar o histórico de clone superficial"
-#: builtin/fetch.c:183 builtin/pull.c:212
+#: builtin/fetch.c:185 builtin/pull.c:216
msgid "deepen history of shallow repository based on time"
-msgstr "aprofundar o histórico de repositório raso com base na data"
+msgstr "aprofundar o histórico de repositório superficial com base na data"
-#: builtin/fetch.c:189 builtin/pull.c:221
+#: builtin/fetch.c:191 builtin/pull.c:225
msgid "convert to a complete repository"
msgstr "converter num repositório completo"
-#: builtin/fetch.c:192
+#: builtin/fetch.c:194
+msgid "re-fetch without negotiating common commits"
+msgstr "voltar a buscar com negociação nenhuma de memórias comuns"
+
+#: builtin/fetch.c:197
msgid "prepend this to submodule path output"
msgstr "preceder isto à saída de caminho de submódulo"
-#: builtin/fetch.c:195
+#: builtin/fetch.c:200
msgid ""
"default for recursive fetching of submodules (lower priority than config "
"files)"
msgstr ""
+"predefinido para busca recursiva de submódulos (menor prioridade que "
+"ficheiros config)"
-#: builtin/fetch.c:199 builtin/pull.c:224
+#: builtin/fetch.c:204 builtin/pull.c:228
msgid "accept refs that update .git/shallow"
msgstr "aceitar refs que atualizem .git/shallow"
-#: builtin/fetch.c:200 builtin/pull.c:226
+#: builtin/fetch.c:205 builtin/pull.c:230
msgid "refmap"
msgstr "mapa-ref"
-#: builtin/fetch.c:201 builtin/pull.c:227
+#: builtin/fetch.c:206 builtin/pull.c:231
msgid "specify fetch refmap"
msgstr "especificar buscar mapa-ref"
-#: builtin/fetch.c:208 builtin/pull.c:240
+#: builtin/fetch.c:213 builtin/pull.c:244
msgid "report that we have only objects reachable from this object"
-msgstr ""
+msgstr "reportar que apenas temos objetos alcançáveis a partir deste objeto"
-#: builtin/fetch.c:210
+#: builtin/fetch.c:215
msgid "do not fetch a packfile; instead, print ancestors of negotiation tips"
msgstr ""
+"mostrar antecessores da ponta de negociação; em vez de buscar ficheiro-pacote"
-#: builtin/fetch.c:213 builtin/fetch.c:215
+#: builtin/fetch.c:218 builtin/fetch.c:220
msgid "run 'maintenance --auto' after fetching"
msgstr "executar 'maintenance --auto' após buscar"
-#: builtin/fetch.c:217 builtin/pull.c:243
+#: builtin/fetch.c:222 builtin/pull.c:247
msgid "check for forced-updates on all updated branches"
-msgstr ""
+msgstr "verificar em todos os ramos atualizados por atualizações forçadas"
-#: builtin/fetch.c:219
+#: builtin/fetch.c:224
msgid "write the commit-graph after fetching"
-msgstr "escrever commit-graph após buscar"
+msgstr "escrever grafo-memória após buscar"
-#: builtin/fetch.c:221
+#: builtin/fetch.c:226
msgid "accept refspecs from stdin"
-msgstr "aceitar espetro-ref de entrada padrão"
+msgstr "aceitar espetro-refs de entrada padrão"
-#: builtin/fetch.c:586
-msgid "Couldn't find remote ref HEAD"
-msgstr "Incapaz de encontrar ref remota HEAD"
+#: builtin/fetch.c:618
+msgid "couldn't find remote ref HEAD"
+msgstr "incapaz encontrar HEAD de ref remota"
-#: builtin/fetch.c:757
-#, c-format
-msgid "configuration fetch.output contains invalid value %s"
-msgstr "configuração fetch.output contém valor inválido %s"
-
-#: builtin/fetch.c:856
+#: builtin/fetch.c:893
#, c-format
msgid "object %s not found"
msgstr "objeto %s por encontrar"
-#: builtin/fetch.c:860
+#: builtin/fetch.c:897
msgid "[up to date]"
msgstr "[atualizado]"
-#: builtin/fetch.c:873 builtin/fetch.c:889 builtin/fetch.c:961
+#: builtin/fetch.c:909 builtin/fetch.c:927 builtin/fetch.c:999
msgid "[rejected]"
msgstr "[rejeitado]"
-#: builtin/fetch.c:874
+#: builtin/fetch.c:911
msgid "can't fetch in current branch"
-msgstr "incapaz buscar no ramo atual"
+msgstr "incapaz buscar em ramo atual"
+
+#: builtin/fetch.c:912
+msgid "checked out in another worktree"
+msgstr "em observação em outra árvore-trabalho"
-#: builtin/fetch.c:884
+#: builtin/fetch.c:922
msgid "[tag update]"
-msgstr "[tag atualizada]"
+msgstr "[atualização de etiqueta]"
-#: builtin/fetch.c:885 builtin/fetch.c:922 builtin/fetch.c:944
-#: builtin/fetch.c:956
+#: builtin/fetch.c:923 builtin/fetch.c:960 builtin/fetch.c:982
+#: builtin/fetch.c:994
msgid "unable to update local ref"
msgstr "incapaz atualizar ref local"
-#: builtin/fetch.c:889
+#: builtin/fetch.c:927
msgid "would clobber existing tag"
-msgstr ""
+msgstr "encobriria etiqueta existente"
-#: builtin/fetch.c:911
+#: builtin/fetch.c:949
msgid "[new tag]"
-msgstr "[nova tag]"
+msgstr "[nova etiqueta]"
-#: builtin/fetch.c:914
+#: builtin/fetch.c:952
msgid "[new branch]"
msgstr "[novo ramo]"
-#: builtin/fetch.c:917
+#: builtin/fetch.c:955
msgid "[new ref]"
-msgstr "[nova referência]"
+msgstr "[nova ref]"
-#: builtin/fetch.c:956
+#: builtin/fetch.c:994
msgid "forced update"
msgstr "atualização forçada"
-#: builtin/fetch.c:961
+#: builtin/fetch.c:999
msgid "non-fast-forward"
-msgstr "sem avanço-rápido"
+msgstr "sem avanço"
-#: builtin/fetch.c:1065
+#: builtin/fetch.c:1102
msgid ""
-"Fetch normally indicates which branches had a forced update,\n"
-"but that check has been disabled. To re-enable, use '--show-forced-updates'\n"
-"flag or run 'git config fetch.showForcedUpdates true'."
+"fetch normally indicates which branches had a forced update,\n"
+"but that check has been disabled; to re-enable, use '--show-forced-updates'\n"
+"flag or run 'git config fetch.showForcedUpdates true'"
msgstr ""
+"buscar normalmente indica qual ramo teve uma atualização forçada,\n"
+"mas essa verificação está desativada; to reactivar, usa a flag\n"
+"'--show-forced-updates' ou executa 'git config fetch.showForcedUpdates true'"
-#: builtin/fetch.c:1069
+#: builtin/fetch.c:1106
#, c-format
msgid ""
-"It took %.2f seconds to check forced updates. You can use\n"
+"it took %.2f seconds to check forced updates; you can use\n"
"'--no-show-forced-updates' or run 'git config fetch.showForcedUpdates "
"false'\n"
-" to avoid this check.\n"
+"to avoid this check\n"
msgstr ""
+"demorou %.2f segundos a verificar por atualizações forçadas: podes usar\n"
+"'--no-show-forced-updates' ou executar 'git config fetch.showForcedUpdates "
+"true'\n"
+"para evitar esta verificação\n"
-#: builtin/fetch.c:1101
+#: builtin/fetch.c:1136
#, c-format
msgid "%s did not send all necessary objects\n"
msgstr "%s ficou por enviar todos objetos necessários\n"
-#: builtin/fetch.c:1129
+#: builtin/fetch.c:1156
#, c-format
msgid "rejected %s because shallow roots are not allowed to be updated"
-msgstr "%s rejeitada, porque raízes rasas são proibidas de ser atualizadas"
+msgstr ""
+"%s rejeitada, porque raízes superficiais são proibidas de serem atualizadas"
-#: builtin/fetch.c:1206 builtin/fetch.c:1357
+#: builtin/fetch.c:1259 builtin/fetch.c:1418
#, c-format
msgid "From %.*s\n"
msgstr "De %.*s\n"
-#: builtin/fetch.c:1228
+#: builtin/fetch.c:1269
#, c-format
msgid ""
"some local refs could not be updated; try running\n"
" 'git remote prune %s' to remove any old, conflicting branches"
msgstr ""
-"algumas refs locais ficaram desatualizadas; tenta executar\n"
-" 'git remote prune %s' para remover algum ramo antigo e conflituoso"
+"algumas refs locais ficaram por atualizar; tenta executar\n"
+" 'git remote prune %s' para remover algum ramo conflituoso e antigo"
-#: builtin/fetch.c:1327
+#: builtin/fetch.c:1377
#, c-format
msgid " (%s will become dangling)"
msgstr " (%s ficará suspenso)"
-#: builtin/fetch.c:1328
+#: builtin/fetch.c:1378
#, c-format
msgid " (%s has become dangling)"
msgstr " (%s ficou suspenso)"
-#: builtin/fetch.c:1360
+#: builtin/fetch.c:1421
msgid "[deleted]"
msgstr "[eliminado]"
-#: builtin/fetch.c:1361 builtin/remote.c:1118
+#: builtin/fetch.c:1422 builtin/remote.c:1153
msgid "(none)"
msgstr "(nenhum)"
-#: builtin/fetch.c:1384
+#: builtin/fetch.c:1446
+#, c-format
+msgid "refusing to fetch into branch '%s' checked out at '%s'"
+msgstr "recusando buscar para o ramo '%s' observado em '%s'"
+
+#: builtin/fetch.c:1466
#, c-format
-msgid "Refusing to fetch into current branch %s of non-bare repository"
-msgstr "Recusando buscar para o ramo atual %s de repositório diferente de nu"
+msgid "option \"%s\" value \"%s\" is not valid for %s"
+msgstr "opção \"%s\" com valor \"%s\" é inválido para %s"
-#: builtin/fetch.c:1403
+#: builtin/fetch.c:1469
#, c-format
-msgid "Option \"%s\" value \"%s\" is not valid for %s"
-msgstr "Opção \"%s\" com valor \"%s\" é inválido para %s"
+msgid "option \"%s\" is ignored for %s\n"
+msgstr "opção \"%s\" ignorada em %s\n"
-#: builtin/fetch.c:1406
+#: builtin/fetch.c:1496
#, c-format
-msgid "Option \"%s\" is ignored for %s\n"
-msgstr "Opção \"%s\" ignorada em %s\n"
+msgid "the object %s does not exist"
+msgstr "o objeto %s é inexistente"
-#: builtin/fetch.c:1618
+#: builtin/fetch.c:1748
msgid "multiple branches detected, incompatible with --set-upstream"
+msgstr "múltiplos\tramos detetados, incompatível com --set-upstream"
+
+#: builtin/fetch.c:1760
+#, c-format
+msgid ""
+"could not set upstream of HEAD to '%s' from '%s' when it does not point to "
+"any branch."
msgstr ""
+"apenas pode definir upstream de HEAD para '%s' a partir de '%s' quando "
+"aponta para qualquer ramo."
-#: builtin/fetch.c:1633
+#: builtin/fetch.c:1773
msgid "not setting upstream for a remote remote-tracking branch"
-msgstr "desdefinindo upstream para remoto de ramo de monitorização remoto"
+msgstr "indefinindo upstream para remoto de ramo de monitorização remoto"
-#: builtin/fetch.c:1635
+#: builtin/fetch.c:1775
msgid "not setting upstream for a remote tag"
-msgstr ""
+msgstr "indefinindo upstream para etiqueta remota"
-#: builtin/fetch.c:1637
+#: builtin/fetch.c:1777
msgid "unknown branch type"
msgstr "tipo de ramo desconhecido"
-#: builtin/fetch.c:1639
+#: builtin/fetch.c:1779
msgid ""
-"no source branch found.\n"
-"you need to specify exactly one branch with the --set-upstream option."
+"no source branch found;\n"
+"you need to specify exactly one branch with the --set-upstream option"
msgstr ""
+"nenhum ramo de origem encontrado;\n"
+"precisas de especificar exatamente um ramo, com a opção --set-upstream"
-#: builtin/fetch.c:1768 builtin/fetch.c:1831
+#: builtin/fetch.c:1904 builtin/fetch.c:1967
#, c-format
msgid "Fetching %s\n"
-msgstr "A obter de %s\n"
+msgstr "Buscando %s\n"
-#: builtin/fetch.c:1778 builtin/fetch.c:1833 builtin/remote.c:101
+#: builtin/fetch.c:1914 builtin/fetch.c:1969
#, c-format
-msgid "Could not fetch %s"
-msgstr "Incapaz buscar %s"
+msgid "could not fetch %s"
+msgstr "incapaz buscar %s"
-#: builtin/fetch.c:1790
+#: builtin/fetch.c:1926
#, c-format
msgid "could not fetch '%s' (exit code: %d)\n"
-msgstr "fetch '%s' impossível (exit code: %d)\n"
+msgstr "incapaz buscar '%s' (exit code: %d)\n"
-#: builtin/fetch.c:1894
+#: builtin/fetch.c:2030
msgid ""
-"No remote repository specified. Please, specify either a URL or a\n"
-"remote name from which new revisions should be fetched."
+"no remote repository specified; please specify either a URL or a\n"
+"remote name from which new revisions should be fetched"
msgstr ""
-"Nenhum repositório remoto especificado. Especifique um URL ou\n"
-"o nome remoto a partir do qual as novas revisões devem ser obtidas."
-
-#: builtin/fetch.c:1930
-msgid "You need to specify a tag name."
-msgstr "Deve especificar um nome para a tag."
-
-#: builtin/fetch.c:1994
-msgid "--negotiate-only needs one or more --negotiate-tip=*"
-msgstr "--negotiate-only precisa de um ou mais --negotiate-tip=*"
+"nenhum repositório remoto especificado; por favor especifica um URL ou\n"
+"um nome remoto a partir de onde as novas revisões devem ser buscadas."
-#: builtin/fetch.c:1998
-msgid "Negative depth in --deepen is not supported"
-msgstr "Profundidade negativa em --deepen é insustentado"
+#: builtin/fetch.c:2066
+msgid "you need to specify a tag name"
+msgstr "precisas especificar um nome de etiqueta"
-#: builtin/fetch.c:2000
-msgid "--deepen and --depth are mutually exclusive"
-msgstr "--deepen e --depth são mutuamente exclusivos"
+#: builtin/fetch.c:2156
+msgid "--negotiate-only needs one or more --negotiation-tip=*"
+msgstr "--negotiate-only precisa de um ou mais --negotiation-tip=*"
-#: builtin/fetch.c:2005
-msgid "--depth and --unshallow cannot be used together"
-msgstr "--depth e --unshallow incapazes serem usados juntos"
+#: builtin/fetch.c:2160
+msgid "negative depth in --deepen is not supported"
+msgstr "profundidade negativa em --deepen é insustentado"
-#: builtin/fetch.c:2007
+#: builtin/fetch.c:2169
msgid "--unshallow on a complete repository does not make sense"
msgstr "--unshallow num repositório completo faz sentido nenhum"
-#: builtin/fetch.c:2024
+#: builtin/fetch.c:2186
msgid "fetch --all does not take a repository argument"
msgstr "fetch --all leva como argumento repositório nenhum"
-#: builtin/fetch.c:2026
+#: builtin/fetch.c:2188
msgid "fetch --all does not make sense with refspecs"
-msgstr "fetch --all com espetros-ref, faz sentido nenhum"
+msgstr "fetch --all com espetro-refs, faz sentido nenhum"
-#: builtin/fetch.c:2035
+#: builtin/fetch.c:2197
#, c-format
-msgid "No such remote or remote group: %s"
-msgstr "Remoto ou grupo remoto inexistente: %s"
+msgid "no such remote or remote group: %s"
+msgstr "remoto ou grupo remoto inexistente: %s"
-#: builtin/fetch.c:2042
-msgid "Fetching a group and specifying refspecs does not make sense"
-msgstr "Buscar um grupo e especificar refspecs faz sentido nenhum"
+#: builtin/fetch.c:2205
+msgid "fetching a group and specifying refspecs does not make sense"
+msgstr "buscar um grupo e especificar espetro-refs faz sentido nenhum"
-#: builtin/fetch.c:2058
+#: builtin/fetch.c:2221
msgid "must supply remote when using --negotiate-only"
-msgstr ""
+msgstr "tens de indicar remoto quando usas --negotiate-only"
-#: builtin/fetch.c:2063
-msgid "Protocol does not support --negotiate-only, exiting."
-msgstr ""
+#: builtin/fetch.c:2226
+msgid "protocol does not support --negotiate-only, exiting"
+msgstr "protocolo insustenta --negotiate-only, saindo"
-#: builtin/fetch.c:2082
+#: builtin/fetch.c:2246
msgid ""
"--filter can only be used with the remote configured in extensions."
"partialclone"
msgstr ""
+"--filter apenas pode ser usado com o remoto configurado em extensions."
+"partialclone"
-#: builtin/fetch.c:2086
+#: builtin/fetch.c:2250
msgid "--atomic can only be used when fetching from one remote"
-msgstr ""
+msgstr "--atomic apenas pode ser usado quando buscando de um remoto"
-#: builtin/fetch.c:2090
+#: builtin/fetch.c:2254
msgid "--stdin can only be used when fetching from one remote"
-msgstr ""
+msgstr "--stdin apenas pode ser usado quando buscando de um remoto"
#: builtin/fmt-merge-msg.c:7
msgid ""
@@ -15130,23 +15755,27 @@ msgstr ""
"git fmt-merge-msg [-m <mensagem>] [--log[=<n>] | --no-log] [--file "
"<ficheiro>]"
-#: builtin/fmt-merge-msg.c:18
+#: builtin/fmt-merge-msg.c:19
msgid "populate log with at most <n> entries from shortlog"
msgstr "povoar o registo com, no máximo, <n> entradas do shortlog"
-#: builtin/fmt-merge-msg.c:21
+#: builtin/fmt-merge-msg.c:22
msgid "alias for --log (deprecated)"
msgstr "alias de --log (obsoleto)"
-#: builtin/fmt-merge-msg.c:24
+#: builtin/fmt-merge-msg.c:25
msgid "text"
msgstr "texto"
-#: builtin/fmt-merge-msg.c:25
+#: builtin/fmt-merge-msg.c:26
msgid "use <text> as start of message"
msgstr "usar <texto> no início da mensagem"
-#: builtin/fmt-merge-msg.c:26
+#: builtin/fmt-merge-msg.c:28
+msgid "use <name> instead of the real target branch"
+msgstr "usar <nome> em vez de ramo alvo real"
+
+#: builtin/fmt-merge-msg.c:29
msgid "file to read from"
msgstr "ficheiro a ler"
@@ -15166,52 +15795,52 @@ msgstr "git for-each-ref [--merged [<memória>]] [--no-merged [<memória>]]"
msgid "git for-each-ref [--contains [<commit>]] [--no-contains [<commit>]]"
msgstr "git for-each-ref [--contains [<memória>]] [--no-contains [<memória>]]"
-#: builtin/for-each-ref.c:30
+#: builtin/for-each-ref.c:31
msgid "quote placeholders suitably for shells"
msgstr ""
"envolver os marcadores de posição em aspas de forma adequada para "
"interpretadores de comandos"
-#: builtin/for-each-ref.c:32
+#: builtin/for-each-ref.c:33
msgid "quote placeholders suitably for perl"
msgstr "envolver os marcadores de posição em aspas de forma adequada para perl"
-#: builtin/for-each-ref.c:34
+#: builtin/for-each-ref.c:35
msgid "quote placeholders suitably for python"
msgstr ""
"envolver os marcadores de posição em aspas de forma adequada para python"
-#: builtin/for-each-ref.c:36
+#: builtin/for-each-ref.c:37
msgid "quote placeholders suitably for Tcl"
msgstr "envolver os marcadores de posição em aspas de forma adequada para Tcl"
-#: builtin/for-each-ref.c:39
+#: builtin/for-each-ref.c:40
msgid "show only <n> matched refs"
msgstr "mostrar apenas <n> referências correspondidas"
-#: builtin/for-each-ref.c:41 builtin/tag.c:483
+#: builtin/for-each-ref.c:42 builtin/tag.c:482
msgid "respect format colors"
msgstr "respeitar cores de formatação"
-#: builtin/for-each-ref.c:44
+#: builtin/for-each-ref.c:45
msgid "print only refs which points at the given object"
msgstr "imprimir apenas referências que apontem para o objeto fornecido"
-#: builtin/for-each-ref.c:46
+#: builtin/for-each-ref.c:47
msgid "print only refs that are merged"
-msgstr "imprimir apenas referenciadas integradas"
+msgstr "mostrar apenas refs que estão juntas"
-#: builtin/for-each-ref.c:47
+#: builtin/for-each-ref.c:48
msgid "print only refs that are not merged"
msgstr "imprimir apenas refs que estão por juntar"
-#: builtin/for-each-ref.c:48
+#: builtin/for-each-ref.c:49
msgid "print only refs which contain the commit"
-msgstr "imprimir apenas refs que contenham o commit"
+msgstr "imprimir apenas refs que contenham a memória"
-#: builtin/for-each-ref.c:49
+#: builtin/for-each-ref.c:50
msgid "print only refs which don't contain the commit"
-msgstr "imprimir apenas refs que contenham outros commits"
+msgstr "imprimir apenas refs que contenham outras memórias"
#: builtin/for-each-repo.c:9
msgid "git for-each-repo --config=<config> <command-args>"
@@ -15274,7 +15903,7 @@ msgstr "inacessível %s %s"
#: builtin/fsck.c:311
#, c-format
msgid "dangling %s %s"
-msgstr "balanceando %s %s"
+msgstr "suspendendo %s %s"
#: builtin/fsck.c:321
msgid "could not create lost-found"
@@ -15337,139 +15966,261 @@ msgstr "%s: ponteiro sha1 inválido %s"
#: builtin/fsck.c:537
#, c-format
msgid "%s: not a commit"
-msgstr "%s: é commit nenhum"
+msgstr "%s: é memória nenhuma"
#: builtin/fsck.c:591
msgid "notice: No default references"
msgstr "notificação: Referências padrão nenhumas"
-#: builtin/fsck.c:606
+#: builtin/fsck.c:621
+#, c-format
+msgid "%s: hash-path mismatch, found at: %s"
+msgstr ""
+
+#: builtin/fsck.c:624
#, c-format
msgid "%s: object corrupt or missing: %s"
msgstr "%s: objeto roto ou em falta: %s"
-#: builtin/fsck.c:619
+#: builtin/fsck.c:628
+#, c-format
+msgid "%s: object is of unknown type '%s': %s"
+msgstr "%s: objeto é de tipo desconhecido '%s': %s"
+
+#: builtin/fsck.c:645
#, c-format
msgid "%s: object could not be parsed: %s"
msgstr "%s: objeto incapaz de ser processado: %s"
-#: builtin/fsck.c:639
+#: builtin/fsck.c:665
#, c-format
msgid "bad sha1 file: %s"
msgstr "mau ficheiro sha1: %s"
-#: builtin/fsck.c:654
+#: builtin/fsck.c:686
msgid "Checking object directory"
msgstr "Verificando pasta objeto"
-#: builtin/fsck.c:657
+#: builtin/fsck.c:689
msgid "Checking object directories"
msgstr "Verificando pastas objeto"
-#: builtin/fsck.c:672
+#: builtin/fsck.c:705
#, c-format
msgid "Checking %s link"
msgstr "Verfificando ligação %s"
-#: builtin/fsck.c:677 builtin/index-pack.c:864
+#: builtin/fsck.c:710 builtin/index-pack.c:862
#, c-format
msgid "invalid %s"
msgstr "%s inválido"
-#: builtin/fsck.c:684
+#: builtin/fsck.c:717
#, c-format
msgid "%s points to something strange (%s)"
msgstr "%s aponta para algo estranho (%s)"
-#: builtin/fsck.c:690
+#: builtin/fsck.c:723
#, c-format
msgid "%s: detached HEAD points at nothing"
-msgstr ""
+msgstr "%s: HEAD desanexada aponta para nada"
-#: builtin/fsck.c:694
+#: builtin/fsck.c:727
#, c-format
msgid "notice: %s points to an unborn branch (%s)"
-msgstr ""
+msgstr "aviso: %s aponta para um ramo por nascer (%s)"
-#: builtin/fsck.c:706
+#: builtin/fsck.c:739
msgid "Checking cache tree"
msgstr "Verificando árvore-cenário"
-#: builtin/fsck.c:711
+#: builtin/fsck.c:744
#, c-format
msgid "%s: invalid sha1 pointer in cache-tree"
msgstr "%s: ponteiro sha1 inválido em árvore-cenário"
-#: builtin/fsck.c:720
+#: builtin/fsck.c:753
msgid "non-tree in cache-tree"
-msgstr ""
+msgstr "não-árvore em árvore-cenário"
-#: builtin/fsck.c:751
+#: builtin/fsck.c:784
msgid "git fsck [<options>] [<object>...]"
msgstr "git fsck [<opções>] [<objeto>...]"
-#: builtin/fsck.c:757
+#: builtin/fsck.c:790
msgid "show unreachable objects"
msgstr "mostrar objetos inalcançáveis"
-#: builtin/fsck.c:758
+#: builtin/fsck.c:791
msgid "show dangling objects"
msgstr "mostrar objetos suspensos"
-#: builtin/fsck.c:759
+#: builtin/fsck.c:792
msgid "report tags"
-msgstr "mostrar tags"
+msgstr "mostrar etiquetas"
-#: builtin/fsck.c:760
+#: builtin/fsck.c:793
msgid "report root nodes"
msgstr "mostrar nós raiz"
-#: builtin/fsck.c:761
+#: builtin/fsck.c:794
msgid "make index objects head nodes"
-msgstr "considerar objetos do índice como nós cabeça"
+msgstr "fazer de objetos de cenário, nós de cabeça"
-#: builtin/fsck.c:762
+#: builtin/fsck.c:795
msgid "make reflogs head nodes (default)"
msgstr "considerar os reflogs como nós cabeça (predefinição)"
-#: builtin/fsck.c:763
+#: builtin/fsck.c:796
msgid "also consider packs and alternate objects"
-msgstr "considerar também pacotes e objetos sobressalente"
+msgstr "também considerar pacotes e objetos alternativos"
-#: builtin/fsck.c:764
+#: builtin/fsck.c:797
msgid "check only connectivity"
msgstr "verificar só a conetividade"
-#: builtin/fsck.c:765 builtin/mktag.c:75
+#: builtin/fsck.c:798 builtin/mktag.c:75
msgid "enable more strict checking"
msgstr "ativar verificação mais rigorosa"
-#: builtin/fsck.c:767
+#: builtin/fsck.c:800
msgid "write dangling objects in .git/lost-found"
-msgstr "escrever objetos perdidos em .git/lost-found"
+msgstr "escrever objetos suspensos em .git/lost-found"
-#: builtin/fsck.c:768 builtin/prune.c:134
+#: builtin/fsck.c:801 builtin/prune.c:146
msgid "show progress"
msgstr "mostrar progresso"
-#: builtin/fsck.c:769
+#: builtin/fsck.c:802
msgid "show verbose names for reachable objects"
msgstr "mostrar nomes verbosos de objetos inalcançáveis"
-#: builtin/fsck.c:828 builtin/index-pack.c:262
+#: builtin/fsck.c:862 builtin/index-pack.c:261
msgid "Checking objects"
msgstr "Verificando objetos"
-#: builtin/fsck.c:856
+#: builtin/fsck.c:890
#, c-format
msgid "%s: object missing"
msgstr "%s: faltando objeto"
-#: builtin/fsck.c:867
+#: builtin/fsck.c:901
#, c-format
msgid "invalid parameter: expected sha1, got '%s'"
msgstr "parâmetro inválido: esperado sha1, recebi '%s'"
+#: builtin/fsmonitor--daemon.c:13
+msgid "git fsmonitor--daemon start [<options>]"
+msgstr "git fsmonitor--daemon start [<opções>]"
+
+#: builtin/fsmonitor--daemon.c:14
+msgid "git fsmonitor--daemon run [<options>]"
+msgstr "git fsmonitor--daemon run [<opções>]"
+
+#: builtin/fsmonitor--daemon.c:15
+msgid "git fsmonitor--daemon stop"
+msgstr ""
+
+#: builtin/fsmonitor--daemon.c:16
+msgid "git fsmonitor--daemon status"
+msgstr ""
+
+#: builtin/fsmonitor--daemon.c:38 builtin/fsmonitor--daemon.c:47
+#, c-format
+msgid "value of '%s' out of range: %d"
+msgstr ""
+
+#: builtin/fsmonitor--daemon.c:57
+#, c-format
+msgid "value of '%s' not bool or int: %d"
+msgstr "valor de '%s' é bool nenhum ou int: %d"
+
+#: builtin/fsmonitor--daemon.c:99
+#, c-format
+msgid "fsmonitor-daemon is watching '%s'\n"
+msgstr ""
+
+#: builtin/fsmonitor--daemon.c:104
+#, c-format
+msgid "fsmonitor-daemon is not watching '%s'\n"
+msgstr ""
+
+#: builtin/fsmonitor--daemon.c:170
+#, c-format
+msgid "could not create fsmonitor cookie '%s'"
+msgstr "incapaz criar cookie fsmonitor '%s'"
+
+#: builtin/fsmonitor--daemon.c:753
+#, c-format
+msgid "fsmonitor: cookie_result '%d' != SEEN"
+msgstr ""
+
+#: builtin/fsmonitor--daemon.c:1187
+#, c-format
+msgid "could not start IPC thread pool on '%s'"
+msgstr "incapaz começar piscina de fio IPC em '%s'"
+
+#: builtin/fsmonitor--daemon.c:1199
+msgid "could not start fsmonitor listener thread"
+msgstr "incapaz começar fio de ouvinte de fsmonitor"
+
+#: builtin/fsmonitor--daemon.c:1297
+msgid "could not initialize listener thread"
+msgstr "incapaz iniciar fio de ouvinte"
+
+#: builtin/fsmonitor--daemon.c:1328 builtin/fsmonitor--daemon.c:1383
+#, c-format
+msgid "fsmonitor--daemon is already running '%s'"
+msgstr ""
+
+#: builtin/fsmonitor--daemon.c:1332
+#, c-format
+msgid "running fsmonitor-daemon in '%s'\n"
+msgstr ""
+
+#: builtin/fsmonitor--daemon.c:1387
+#, c-format
+msgid "starting fsmonitor-daemon in '%s'\n"
+msgstr "começando fsmonitor-daemon em '%s'\n"
+
+#: builtin/fsmonitor--daemon.c:1413
+msgid "daemon failed to start"
+msgstr "iniciação de daemon falhou"
+
+#: builtin/fsmonitor--daemon.c:1416
+msgid "daemon not online yet"
+msgstr ""
+
+#: builtin/fsmonitor--daemon.c:1419
+msgid "daemon terminated"
+msgstr "daemon terminado"
+
+#: builtin/fsmonitor--daemon.c:1429
+msgid "detach from console"
+msgstr "desanexado de consola"
+
+#: builtin/fsmonitor--daemon.c:1432
+msgid "use <n> ipc worker threads"
+msgstr "usar <n> fios de trabalho ipc"
+
+#: builtin/fsmonitor--daemon.c:1435
+msgid "max seconds to wait for background daemon startup"
+msgstr ""
+
+#: builtin/fsmonitor--daemon.c:1449
+#, c-format
+msgid "invalid 'ipc-threads' value (%d)"
+msgstr "valor 'ipc-threads' inválido (%d)"
+
+#: builtin/fsmonitor--daemon.c:1464
+#, c-format
+msgid "Unhandled subcommand '%s'"
+msgstr "Subcomando '%s' por lidar"
+
+#: builtin/fsmonitor--daemon.c:1477
+msgid "fsmonitor--daemon not supported on this platform"
+msgstr ""
+
#: builtin/gc.c:39
msgid "git gc [<options>]"
msgstr "git gc [<opções>]"
@@ -15484,112 +16235,107 @@ msgstr "falha ao invocar fstat sobre %s: %s"
msgid "failed to parse '%s' value '%s'"
msgstr ""
-#: builtin/gc.c:487 builtin/init-db.c:57
+#: builtin/gc.c:488 builtin/init-db.c:57
#, c-format
msgid "cannot stat '%s'"
msgstr "incapaz estatutar '%s'"
-#: builtin/gc.c:496 builtin/notes.c:240 builtin/tag.c:573
-#, c-format
-msgid "cannot read '%s'"
-msgstr "incapaz ler '%s'"
-
-#: builtin/gc.c:503
+#: builtin/gc.c:504
#, c-format
msgid ""
"The last gc run reported the following. Please correct the root cause\n"
-"and remove %s.\n"
+"and remove %s\n"
"Automatic cleanup will not be performed until the file is removed.\n"
"\n"
"%s"
msgstr ""
-"A última execução do gc reportou o seguinte.\n"
-"Corrije a origem do problema e remove %s.\n"
-"A limpeza automática apenas será realizada quando o ficheiro for removido.\n"
+"A última execução do gc reportou o seguinte. Por favor, corrige a causa\n"
+"de origem e remove %s\n"
+"Limpeza automática apenas será realizada quando o ficheiro for removido.\n"
"\n"
"%s"
-#: builtin/gc.c:551
+#: builtin/gc.c:552
msgid "prune unreferenced objects"
msgstr "podar objetos por referênciar"
-#: builtin/gc.c:553
+#: builtin/gc.c:554
msgid "be more thorough (increased runtime)"
msgstr "ser mais minucioso (aumenta o tempo de execução)"
-#: builtin/gc.c:554
+#: builtin/gc.c:555
msgid "enable auto-gc mode"
msgstr "ativar modo auto-gc"
-#: builtin/gc.c:557
+#: builtin/gc.c:558
msgid "force running gc even if there may be another gc running"
msgstr "forçar a execução do gc mesmo que haja outro gc a executar"
-#: builtin/gc.c:560
+#: builtin/gc.c:561
msgid "repack all other packs except the largest pack"
msgstr ""
-#: builtin/gc.c:576
+#: builtin/gc.c:577
#, c-format
msgid "failed to parse gc.logexpiry value %s"
msgstr "falhou processar o valor %s de gc.logexpiry"
-#: builtin/gc.c:587
+#: builtin/gc.c:588
#, c-format
msgid "failed to parse prune expiry value %s"
msgstr "falhou processar o valor de expiração de poda %s"
-#: builtin/gc.c:607
+#: builtin/gc.c:608
#, c-format
msgid "Auto packing the repository in background for optimum performance.\n"
msgstr ""
"Auto-empacotando repositório, em segundo plano, para desempenho otimizado.\n"
-#: builtin/gc.c:609
+#: builtin/gc.c:610
#, c-format
msgid "Auto packing the repository for optimum performance.\n"
msgstr "Auto-empacotando repositório para desempenho otimizado.\n"
-#: builtin/gc.c:610
+#: builtin/gc.c:611
#, c-format
msgid "See \"git help gc\" for manual housekeeping.\n"
msgstr "Vê \"git help gc\" para manual de manutenção.\n"
-#: builtin/gc.c:650
+#: builtin/gc.c:652
#, c-format
msgid ""
"gc is already running on machine '%s' pid %<PRIuMAX> (use --force if not)"
msgstr ""
"gc já a executar na máquina '%s' pid %<PRIuMAX> (usa --force caso contrário)"
-#: builtin/gc.c:705
+#: builtin/gc.c:707
msgid ""
"There are too many unreachable loose objects; run 'git prune' to remove them."
msgstr ""
"Existem demasiados objeto soltos inalcançáveis; execute 'git prune' para os "
"remover."
-#: builtin/gc.c:715
+#: builtin/gc.c:717
msgid ""
"git maintenance run [--auto] [--[no-]quiet] [--task=<task>] [--schedule]"
msgstr ""
-#: builtin/gc.c:745
+#: builtin/gc.c:747
msgid "--no-schedule is not allowed"
msgstr ""
-#: builtin/gc.c:750
+#: builtin/gc.c:752
#, c-format
msgid "unrecognized --schedule argument '%s'"
msgstr "argumento --schedule desconhecido: '%s'"
-#: builtin/gc.c:869
+#: builtin/gc.c:870
msgid "failed to write commit-graph"
msgstr ""
-#: builtin/gc.c:905
+#: builtin/gc.c:906
msgid "failed to prefetch remotes"
-msgstr ""
+msgstr "pré-buscar remotos falhou"
#: builtin/gc.c:1022
msgid "failed to start 'git pack-objects' process"
@@ -15599,145 +16345,185 @@ msgstr "começar processo 'git pack-objects' falhou"
msgid "failed to finish 'git pack-objects' process"
msgstr "terminar processo 'git pack-objects' falhou"
-#: builtin/gc.c:1091
+#: builtin/gc.c:1090
msgid "failed to write multi-pack-index"
msgstr ""
-#: builtin/gc.c:1109
+#: builtin/gc.c:1106
msgid "'git multi-pack-index expire' failed"
msgstr ""
-#: builtin/gc.c:1170
+#: builtin/gc.c:1165
msgid "'git multi-pack-index repack' failed"
msgstr ""
-#: builtin/gc.c:1179
+#: builtin/gc.c:1174
msgid ""
"skipping incremental-repack task because core.multiPackIndex is disabled"
msgstr ""
-#: builtin/gc.c:1283
+#: builtin/gc.c:1278
#, c-format
msgid "lock file '%s' exists, skipping maintenance"
msgstr ""
-#: builtin/gc.c:1313
+#: builtin/gc.c:1308
#, c-format
msgid "task '%s' failed"
msgstr "tarefa '%s' falhou"
-#: builtin/gc.c:1395
+#: builtin/gc.c:1390
#, c-format
msgid "'%s' is not a valid task"
msgstr "'%s' é uma tarefa inválida"
-#: builtin/gc.c:1400
+#: builtin/gc.c:1395
#, c-format
msgid "task '%s' cannot be selected multiple times"
msgstr "tarefa '%s' apenas pode ser selecionada uma vez"
-#: builtin/gc.c:1415
+#: builtin/gc.c:1410
msgid "run tasks based on the state of the repository"
msgstr ""
-#: builtin/gc.c:1416
+#: builtin/gc.c:1411
msgid "frequency"
msgstr ""
-#: builtin/gc.c:1417
+#: builtin/gc.c:1412
msgid "run tasks based on frequency"
msgstr ""
-#: builtin/gc.c:1420
+#: builtin/gc.c:1415
msgid "do not report progress or other information over stderr"
msgstr ""
-#: builtin/gc.c:1421
+#: builtin/gc.c:1416
msgid "task"
msgstr ""
-#: builtin/gc.c:1422
+#: builtin/gc.c:1417
msgid "run a specific task"
msgstr "corre uma tarefa específica"
-#: builtin/gc.c:1439
+#: builtin/gc.c:1434
msgid "use at most one of --auto and --schedule=<frequency>"
msgstr ""
-#: builtin/gc.c:1482
+#: builtin/gc.c:1477
msgid "failed to run 'git config'"
msgstr "falhou executar 'git config'"
-#: builtin/gc.c:1547
+#: builtin/gc.c:1629
#, c-format
msgid "failed to expand path '%s'"
msgstr "falhou expandir caminho '%s'"
-#: builtin/gc.c:1576
+#: builtin/gc.c:1656 builtin/gc.c:1694
msgid "failed to start launchctl"
msgstr "iniciar launchctl falhou"
-#: builtin/gc.c:1613
+#: builtin/gc.c:1769 builtin/gc.c:2237
#, c-format
msgid "failed to create directories for '%s'"
msgstr "falhou criar pastas para '%s'"
-#: builtin/gc.c:1674
+#: builtin/gc.c:1796
#, c-format
msgid "failed to bootstrap service %s"
msgstr "bootstrap serviços %s falhou"
-#: builtin/gc.c:1745
+#: builtin/gc.c:1889
msgid "failed to create temp xml file"
msgstr ""
-#: builtin/gc.c:1835
+#: builtin/gc.c:1979
msgid "failed to start schtasks"
msgstr ""
-#: builtin/gc.c:1879
+#: builtin/gc.c:2063
msgid "failed to run 'crontab -l'; your system might not support 'cron'"
-msgstr ""
+msgstr "falhou a executar 'crontab -l': teu sistema pode insustentar 'cron'"
-#: builtin/gc.c:1896
+#: builtin/gc.c:2080
msgid "failed to run 'crontab'; your system might not support 'cron'"
-msgstr ""
+msgstr "falhou a executar 'crontab': teu sistema pode insustentar 'cron'"
-#: builtin/gc.c:1900
+#: builtin/gc.c:2084
msgid "failed to open stdin of 'crontab'"
-msgstr ""
+msgstr "falhou abrir stdin de 'crontab'"
-#: builtin/gc.c:1942
+#: builtin/gc.c:2126
msgid "'crontab' died"
-msgstr ""
+msgstr "'crontab' terminou inesperadamente"
+
+#: builtin/gc.c:2191
+msgid "failed to start systemctl"
+msgstr "falhou início de systemctl"
+
+#: builtin/gc.c:2201
+msgid "failed to run systemctl"
+msgstr "falhou executar systemctl"
-#: builtin/gc.c:1976
+#: builtin/gc.c:2210 builtin/gc.c:2215 builtin/worktree.c:63
+#: builtin/worktree.c:1024
+#, c-format
+msgid "failed to delete '%s'"
+msgstr "falhou apagar '%s'"
+
+#: builtin/gc.c:2395
+#, c-format
+msgid "unrecognized --scheduler argument '%s'"
+msgstr "argumento --scheduler desconhecido '%s'"
+
+#: builtin/gc.c:2420
+msgid "neither systemd timers nor crontab are available"
+msgstr "sem temporizadores systemd ou crontab disponíveis"
+
+#: builtin/gc.c:2435
+#, c-format
+msgid "%s scheduler is not available"
+msgstr "%s agendador está indisponível"
+
+#: builtin/gc.c:2449
msgid "another process is scheduling background maintenance"
msgstr ""
-#: builtin/gc.c:2000
+#: builtin/gc.c:2471
+msgid "git maintenance start [--scheduler=<scheduler>]"
+msgstr "git maintenance start [--scheduler=<agendador>]"
+
+#: builtin/gc.c:2480
+msgid "scheduler"
+msgstr "agendador"
+
+#: builtin/gc.c:2481
+msgid "scheduler to trigger git maintenance run"
+msgstr "agendador a ativar execução de manutenção git"
+
+#: builtin/gc.c:2495
msgid "failed to add repo to global config"
msgstr ""
-#: builtin/gc.c:2010
+#: builtin/gc.c:2504
msgid "git maintenance <subcommand> [<options>]"
msgstr "git maintenance <subcomando> [<opções>]"
-#: builtin/gc.c:2029
+#: builtin/gc.c:2523
#, c-format
msgid "invalid subcommand: %s"
msgstr "subcomando inválido: %s"
-#: builtin/grep.c:30
+#: builtin/grep.c:32
msgid "git grep [<options>] [-e] <pattern> [<rev>...] [[--] <path>...]"
msgstr "git grep [<opções>] [-e] <padrão> [<rev>...] [[--] <caminho>...]"
-#: builtin/grep.c:223
+#: builtin/grep.c:241
#, c-format
msgid "grep: failed to create thread: %s"
msgstr "grep: falha ao criar thread: %s"
-#: builtin/grep.c:277
+#: builtin/grep.c:295
#, c-format
msgid "invalid number of threads specified (%d) for %s"
msgstr "o número de threads especificado em %2$s é inválido (%1$d)"
@@ -15746,267 +16532,259 @@ msgstr "o número de threads especificado em %2$s é inválido (%1$d)"
#. variable for tweaking threads, currently
#. grep.threads
#.
-#: builtin/grep.c:285 builtin/index-pack.c:1588 builtin/index-pack.c:1791
-#: builtin/pack-objects.c:3129
+#: builtin/grep.c:303 builtin/index-pack.c:1587 builtin/index-pack.c:1791
+#: builtin/pack-objects.c:3150
#, c-format
msgid "no threads support, ignoring %s"
msgstr "fios insustentado, ignorando %s"
-#: builtin/grep.c:473 builtin/grep.c:603 builtin/grep.c:643
+#: builtin/grep.c:490 builtin/grep.c:619 builtin/grep.c:659
#, c-format
msgid "unable to read tree (%s)"
msgstr "incapaz ler árvore (%s)"
-#: builtin/grep.c:658
+#: builtin/grep.c:674
#, c-format
msgid "unable to grep from object of type %s"
msgstr "incapaz efetuar grep a objetos do tipo %s"
-#: builtin/grep.c:738
+#: builtin/grep.c:754
#, c-format
msgid "switch `%c' expects a numerical value"
msgstr ""
-#: builtin/grep.c:837
+#: builtin/grep.c:852
msgid "search in index instead of in the work tree"
-msgstr "procurar no índice em vez de procurar na árvore de trabalho"
+msgstr "procurar no cenário em vez de procurar na árvore-trabalho"
-#: builtin/grep.c:839
+#: builtin/grep.c:854
msgid "find in contents not managed by git"
msgstr "procurar em conteúdos fora da gestão de git"
-#: builtin/grep.c:841
+#: builtin/grep.c:856
msgid "search in both tracked and untracked files"
-msgstr "procurar em ficheiros monitorizados e por monitorizar"
+msgstr "procurar em ambos os ficheiros monitorizados e desmonitorizados"
-#: builtin/grep.c:843
+#: builtin/grep.c:858
msgid "ignore files specified via '.gitignore'"
msgstr "ignorar ficheiros especificados via '.gitignore'"
-#: builtin/grep.c:845
+#: builtin/grep.c:860
msgid "recursively search in each submodule"
msgstr "procurar recursivamente em cada submódulo"
-#: builtin/grep.c:848
+#: builtin/grep.c:863
msgid "show non-matching lines"
msgstr "mostrar linhas por corresponder"
-#: builtin/grep.c:850
+#: builtin/grep.c:865
msgid "case insensitive matching"
msgstr "correspondência insensível a maiúsculas e minúsculas"
-#: builtin/grep.c:852
+#: builtin/grep.c:867
msgid "match patterns only at word boundaries"
msgstr "corresponder padrões apenas a palavras"
-#: builtin/grep.c:854
+#: builtin/grep.c:869
msgid "process binary files as text"
msgstr "processar ficheiros binários como texto"
-#: builtin/grep.c:856
+#: builtin/grep.c:871
msgid "don't match patterns in binary files"
msgstr "ignorar ficheiros binários"
-#: builtin/grep.c:859
+#: builtin/grep.c:874
msgid "process binary files with textconv filters"
msgstr "processar ficheiros binários com filtros textconv"
-#: builtin/grep.c:861
+#: builtin/grep.c:876
msgid "search in subdirectories (default)"
-msgstr ""
+msgstr "procurar em subpastas (predefinição)"
-#: builtin/grep.c:863
+#: builtin/grep.c:878
msgid "descend at most <depth> levels"
msgstr "descer no máximo até <profundidade>"
-#: builtin/grep.c:867
+#: builtin/grep.c:882
msgid "use extended POSIX regular expressions"
msgstr "usar expressões comum estendidas de POSIX"
-#: builtin/grep.c:870
+#: builtin/grep.c:885
msgid "use basic POSIX regular expressions (default)"
msgstr "usar expressões regulares básicas do POSIX (predefinição)"
-#: builtin/grep.c:873
+#: builtin/grep.c:888
msgid "interpret patterns as fixed strings"
msgstr "interpretar padrões como cadeias de caracteres fixas"
-#: builtin/grep.c:876
+#: builtin/grep.c:891
msgid "use Perl-compatible regular expressions"
msgstr "usar expressões regulares compatíveis com Perl"
-#: builtin/grep.c:879
+#: builtin/grep.c:894
msgid "show line numbers"
msgstr "mostrar números de linha"
-#: builtin/grep.c:880
+#: builtin/grep.c:895
msgid "show column number of first match"
msgstr "mostrar número de coluna da primeira correspondência"
-#: builtin/grep.c:881
+#: builtin/grep.c:896
msgid "don't show filenames"
msgstr "esconder nomes de ficheiro"
-#: builtin/grep.c:882
+#: builtin/grep.c:897
msgid "show filenames"
msgstr "mostrar nomes de ficheiro"
-#: builtin/grep.c:884
+#: builtin/grep.c:899
msgid "show filenames relative to top directory"
-msgstr "mostrar nomes de ficheiro relativamente ao diretório superior"
+msgstr "mostrar nomes de ficheiro relativamente à pasta superior"
-#: builtin/grep.c:886
+#: builtin/grep.c:901
msgid "show only filenames instead of matching lines"
msgstr "mostrar apenas nomes de ficheiro em vez de linhas correspondidas"
-#: builtin/grep.c:888
+#: builtin/grep.c:903
msgid "synonym for --files-with-matches"
msgstr "sinónimo de --files-with-matches"
-#: builtin/grep.c:891
+#: builtin/grep.c:906
msgid "show only the names of files without match"
msgstr "mostrar apenas nomes de ficheiro sem correspondência"
-#: builtin/grep.c:893
+#: builtin/grep.c:908
msgid "print NUL after filenames"
msgstr "imprimir NUL depois dos nomes de ficheiro"
-#: builtin/grep.c:896
+#: builtin/grep.c:911
msgid "show only matching parts of a line"
msgstr "mostrar apenas partes da linha correspondentes"
-#: builtin/grep.c:898
+#: builtin/grep.c:913
msgid "show the number of matches instead of matching lines"
msgstr "mostrar o número de correspondências em vez das linha correspondidas"
-#: builtin/grep.c:899
+#: builtin/grep.c:914
msgid "highlight matches"
msgstr "realçar correspondências"
-#: builtin/grep.c:901
+#: builtin/grep.c:916
msgid "print empty line between matches from different files"
msgstr ""
"imprimir uma linha em branco entre correspondências de diferentes ficheiros"
-#: builtin/grep.c:903
+#: builtin/grep.c:918
msgid "show filename only once above matches from same file"
msgstr ""
"mostrar só uma vez o nome do ficheiro acima das correspondências dentro do "
"mesmo ficheiro"
-#: builtin/grep.c:906
+#: builtin/grep.c:921
msgid "show <n> context lines before and after matches"
msgstr "mostrar <n> linhas de contexto antes e depois das correspondências"
-#: builtin/grep.c:909
+#: builtin/grep.c:924
msgid "show <n> context lines before matches"
msgstr "mostrar <n> linhas de contexto antes das correspondências"
-#: builtin/grep.c:911
+#: builtin/grep.c:926
msgid "show <n> context lines after matches"
msgstr "mostrar <n> linhas de contexto depois das correspondências"
-#: builtin/grep.c:913
+#: builtin/grep.c:928
msgid "use <n> worker threads"
-msgstr "usar <n> threads de trabalho"
+msgstr "usar <n> fios de trabalho"
-#: builtin/grep.c:914
+#: builtin/grep.c:929
msgid "shortcut for -C NUM"
msgstr "atalho para -C NUM"
-#: builtin/grep.c:917
+#: builtin/grep.c:932
msgid "show a line with the function name before matches"
msgstr "mostrar uma linha com o nome da função antes das correspondências"
-#: builtin/grep.c:919
+#: builtin/grep.c:934
msgid "show the surrounding function"
msgstr "mostrar a função circundante"
-#: builtin/grep.c:922
+#: builtin/grep.c:937
msgid "read patterns from file"
msgstr "ler padrões de ficheiro"
-#: builtin/grep.c:924
+#: builtin/grep.c:939
msgid "match <pattern>"
msgstr "procurar <padrão>"
-#: builtin/grep.c:926
+#: builtin/grep.c:941
msgid "combine patterns specified with -e"
msgstr "combinar padrões especificados com -e"
-#: builtin/grep.c:938
+#: builtin/grep.c:953
msgid "indicate hit with exit status without output"
msgstr "indicar correspondência, sem output, com status de saída"
-#: builtin/grep.c:940
+#: builtin/grep.c:955
msgid "show only matches from files that match all patterns"
msgstr ""
"mostrar apenas correspondências de ficheiro que tenham todos os padrões"
-#: builtin/grep.c:943
+#: builtin/grep.c:958
msgid "pager"
msgstr "paginador"
-#: builtin/grep.c:943
+#: builtin/grep.c:958
msgid "show matching files in the pager"
msgstr "mostrar ficheiros correspondentes no paginador"
-#: builtin/grep.c:947
+#: builtin/grep.c:962
msgid "allow calling of grep(1) (ignored by this build)"
msgstr "permitir invocar grep(1) (ignorado nesta compilação)"
-#: builtin/grep.c:1013
+#: builtin/grep.c:1028
msgid "no pattern given"
msgstr "fornecido pattern nenhum"
-#: builtin/grep.c:1049
+#: builtin/grep.c:1064
msgid "--no-index or --untracked cannot be used with revs"
msgstr "--no-index ou --untracked incapazes serem usados em revs"
-#: builtin/grep.c:1057
+#: builtin/grep.c:1072
#, c-format
msgid "unable to resolve revision: %s"
msgstr "incapaz resolver revisão: %s"
-#: builtin/grep.c:1087
+#: builtin/grep.c:1102
msgid "--untracked not supported with --recurse-submodules"
msgstr "--untracked insustentada com --recurse-submodules"
-#: builtin/grep.c:1091
+#: builtin/grep.c:1106
msgid "invalid option combination, ignoring --threads"
msgstr ""
-#: builtin/grep.c:1094 builtin/pack-objects.c:4090
+#: builtin/grep.c:1109 builtin/pack-objects.c:4084
msgid "no threads support, ignoring --threads"
msgstr "fios insustentado, ignorando --threads"
-#: builtin/grep.c:1097 builtin/index-pack.c:1585 builtin/pack-objects.c:3126
+#: builtin/grep.c:1112 builtin/index-pack.c:1584 builtin/pack-objects.c:3147
#, c-format
msgid "invalid number of threads specified (%d)"
msgstr "número de threads especificado inválido (%d)"
-#: builtin/grep.c:1131
+#: builtin/grep.c:1146
msgid "--open-files-in-pager only works on the worktree"
msgstr "--open-files-in-pager só funciona na árvore-trabalho"
-#: builtin/grep.c:1157
-msgid "--cached or --untracked cannot be used with --no-index"
-msgstr "--cached ou --untracked proibidos serem usados com --no-index"
-
-#: builtin/grep.c:1160
-msgid "--untracked cannot be used with --cached"
-msgstr "--untracked proibido ser usado com --cached"
-
-#: builtin/grep.c:1166
+#: builtin/grep.c:1179
msgid "--[no-]exclude-standard cannot be used for tracked contents"
msgstr ""
"--[no-]exclude-standard proibidos serem usados para conteúdos monitorizados"
-#: builtin/grep.c:1174
+#: builtin/grep.c:1187
msgid "both --cached and trees are given"
-msgstr "--cached e árvores foram ambos fornecidos"
+msgstr "são dados ambos --cached e árvores"
-#: builtin/hash-object.c:85
+#: builtin/hash-object.c:83
msgid ""
"git hash-object [-t <type>] [-w] [--path=<file> | --no-filters] [--stdin] "
"[--] <file>..."
@@ -16014,97 +16792,101 @@ msgstr ""
"git hash-object [-t <tipo>] [-w] [--path=<ficheiro> | --no-filters] [--"
"stdin] [--] <ficheiro>..."
-#: builtin/hash-object.c:86
-msgid "git hash-object --stdin-paths"
-msgstr "git hash-object --stdin-paths"
-
-#: builtin/hash-object.c:98
+#: builtin/hash-object.c:97
msgid "object type"
msgstr "tipo de objeto"
-#: builtin/hash-object.c:99
+#: builtin/hash-object.c:98
msgid "write the object into the object database"
msgstr ""
-#: builtin/hash-object.c:101
+#: builtin/hash-object.c:100
msgid "read the object from stdin"
msgstr "ler o objeto da entrada padrão"
-#: builtin/hash-object.c:103
+#: builtin/hash-object.c:102
msgid "store file as is without filters"
msgstr "guardar o ficheiro tal como está, sem filtros"
-#: builtin/hash-object.c:104
+#: builtin/hash-object.c:103
msgid ""
"just hash any random garbage to create corrupt objects for debugging Git"
msgstr ""
-"obter hash de lixo aleatório para criar objetos corrompidos para depurar o "
-"Git"
+"apenas faz hash de qualquer lixo aleatório para criar objetos corrompidos "
+"para depurar o Git"
-#: builtin/hash-object.c:105
+#: builtin/hash-object.c:104
msgid "process file as it were from this path"
msgstr "processar o ficheiro como se este fosse do caminho indicado"
-#: builtin/help.c:47
+#: builtin/help.c:57
msgid "print all available commands"
msgstr "imprimir todos os comandos disponíveis"
-#: builtin/help.c:48
-msgid "exclude guides"
-msgstr "excluir guias"
+#: builtin/help.c:60
+msgid "show external commands in --all"
+msgstr "mostrar comandos externos em --all"
-#: builtin/help.c:49
-msgid "print list of useful guides"
-msgstr "imprimir lista de guias úteis"
+#: builtin/help.c:61
+msgid "show aliases in --all"
+msgstr "mostrar aliases em --all"
-#: builtin/help.c:50
-msgid "print all configuration variable names"
-msgstr "imprimir todas nomes variáveis de configuração"
+#: builtin/help.c:62
+msgid "exclude guides"
+msgstr "excluir guias"
-#: builtin/help.c:52
+#: builtin/help.c:63
msgid "show man page"
msgstr "mostrar página man"
-#: builtin/help.c:53
+#: builtin/help.c:64
msgid "show manual in web browser"
msgstr "mostrar manual no navegador web"
-#: builtin/help.c:55
+#: builtin/help.c:66
msgid "show info page"
msgstr "mostrar página info"
-#: builtin/help.c:57
+#: builtin/help.c:68
msgid "print command description"
msgstr "imprimir descrição de comando"
-#: builtin/help.c:62
-msgid "git help [--all] [--guides] [--man | --web | --info] [<command>]"
-msgstr "git help [--all] [--guides] [--man | --web | --info] [<comando>]"
+#: builtin/help.c:70
+msgid "print list of useful guides"
+msgstr "imprimir lista de guias úteis"
-#: builtin/help.c:163
+#: builtin/help.c:72
+msgid "print all configuration variable names"
+msgstr "imprimir todas nomes variáveis de configuração"
+
+#: builtin/help.c:84
+msgid "git help [[-i|--info] [-m|--man] [-w|--web]] [<command>]"
+msgstr "git help [[-i|--info] [-m|--man] [-w|--web]] [<comando>]"
+
+#: builtin/help.c:201
#, c-format
msgid "unrecognized help format '%s'"
msgstr "formato de ajuda '%s' desconhecido"
-#: builtin/help.c:190
+#: builtin/help.c:227
msgid "Failed to start emacsclient."
msgstr "Iniciar emacsclient falhou."
-#: builtin/help.c:203
+#: builtin/help.c:240
msgid "Failed to parse emacsclient version."
msgstr "Falha ao analisar a versão do emacsclient."
-#: builtin/help.c:211
+#: builtin/help.c:248
#, c-format
msgid "emacsclient version '%d' too old (< 22)."
msgstr "a versão do emacsclient '%d' é demasiado antiga (< 22)."
-#: builtin/help.c:229 builtin/help.c:251 builtin/help.c:261 builtin/help.c:269
+#: builtin/help.c:266 builtin/help.c:288 builtin/help.c:298 builtin/help.c:306
#, c-format
msgid "failed to exec '%s'"
msgstr "falhou exec a '%s'"
-#: builtin/help.c:307
+#: builtin/help.c:344
#, c-format
msgid ""
"'%s': path for unsupported man viewer.\n"
@@ -16113,7 +16895,7 @@ msgstr ""
"'%s': path para visualizador man insustentado.\n"
"Por favor, considera usar 'man.<ferramenta>.cmd' invés."
-#: builtin/help.c:319
+#: builtin/help.c:356
#, c-format
msgid ""
"'%s': cmd for supported man viewer.\n"
@@ -16122,331 +16904,329 @@ msgstr ""
"'%s': comando para visualizador de man.\n"
"Considera usar 'man.<ferramenta>.path' invés."
-#: builtin/help.c:436
+#: builtin/help.c:471
#, c-format
msgid "'%s': unknown man viewer."
msgstr "'%s': visualizador de manual desconhecido."
-#: builtin/help.c:452
+#: builtin/help.c:487
msgid "no man viewer handled the request"
msgstr "atendeu ao pedido visualizador de man nenhum"
-#: builtin/help.c:459
+#: builtin/help.c:494
msgid "no info viewer handled the request"
msgstr "atendeu ao pedido visualizador de info nenhum"
-#: builtin/help.c:517 builtin/help.c:528 git.c:348
+#: builtin/help.c:555 builtin/help.c:566 git.c:348
#, c-format
msgid "'%s' is aliased to '%s'"
msgstr "'git %s' é um alias de '%s'"
-#: builtin/help.c:531 git.c:380
+#: builtin/help.c:569 git.c:380
#, c-format
msgid "bad alias.%s string: %s"
msgstr ""
-#: builtin/help.c:561 builtin/help.c:591
+#: builtin/help.c:611
+#, c-format
+msgid "the '%s' option doesn't take any non-option arguments"
+msgstr "opção '%s' apenas leva argumentos de opção"
+
+#: builtin/help.c:631
+msgid ""
+"the '--no-[external-commands|aliases]' options can only be used with '--all'"
+msgstr ""
+
+#: builtin/help.c:643 builtin/help.c:671
#, c-format
msgid "usage: %s%s"
-msgstr "utilização: %s%s"
+msgstr "uso: %s%s"
-#: builtin/help.c:575
+#: builtin/help.c:666
msgid "'git help config' for more information"
msgstr ""
-#: builtin/index-pack.c:222
+#: builtin/hook.c:10
+msgid "git hook run [--ignore-missing] <hook-name> [-- <hook-args>]"
+msgstr ""
+
+#: builtin/hook.c:30
+msgid "silently ignore missing requested <hook-name>"
+msgstr ""
+
+#: builtin/index-pack.c:221
#, c-format
msgid "object type mismatch at %s"
msgstr "incompatibilidade de tipo de objeto em %s"
-#: builtin/index-pack.c:242
+#: builtin/index-pack.c:241
#, c-format
msgid "did not receive expected object %s"
msgstr "objeto esperado %s ficou por ser recebido"
-#: builtin/index-pack.c:245
+#: builtin/index-pack.c:244
#, c-format
msgid "object %s: expected type %s, found %s"
msgstr "objeto %s: tipo esperado %s, obtido %s"
-#: builtin/index-pack.c:295
+#: builtin/index-pack.c:294
#, c-format
msgid "cannot fill %d byte"
msgid_plural "cannot fill %d bytes"
msgstr[0] "incapaz preencher %d byte"
msgstr[1] "incapaz preencher %d bytes"
-#: builtin/index-pack.c:305
+#: builtin/index-pack.c:304
msgid "early EOF"
msgstr "EOF prematuro"
-#: builtin/index-pack.c:306
+#: builtin/index-pack.c:305
msgid "read error on input"
msgstr "erro de leitura da entrada"
-#: builtin/index-pack.c:318
+#: builtin/index-pack.c:317
msgid "used more bytes than were available"
msgstr "foram usados mais bytes dos que estavam disponíveis"
-#: builtin/index-pack.c:325 builtin/pack-objects.c:756
+#: builtin/index-pack.c:324 builtin/pack-objects.c:754
msgid "pack too large for current definition of off_t"
msgstr "pacote demasiado grande para a definição atual de off_t"
-#: builtin/index-pack.c:328 builtin/unpack-objects.c:95
-msgid "pack exceeds maximum allowed size"
-msgstr "o pacote excede o tamanho máximo permitido"
-
-#: builtin/index-pack.c:343
-#, c-format
-msgid "unable to create '%s'"
-msgstr "incapaz criar '%s'"
-
-#: builtin/index-pack.c:349
+#: builtin/index-pack.c:329
#, c-format
-msgid "cannot open packfile '%s'"
-msgstr "incapaz abrir ficheiro de pacote '%s'"
+msgid "pack exceeds maximum allowed size (%s)"
+msgstr "o pacote excede o tamanho máximo permitido (%s)"
-#: builtin/index-pack.c:363
+#: builtin/index-pack.c:362
msgid "pack signature mismatch"
msgstr "assinatura de pacote faz correspondência nenhuma"
-#: builtin/index-pack.c:365
+#: builtin/index-pack.c:364
#, c-format
msgid "pack version %<PRIu32> unsupported"
msgstr "versão de pacote %<PRIu32> insustentada"
-#: builtin/index-pack.c:381
+#: builtin/index-pack.c:380
#, c-format
msgid "pack has bad object at offset %<PRIuMAX>: %s"
msgstr "pacote tem objeto inválido em offset %<PRIuMAX>: %s"
-#: builtin/index-pack.c:487
+#: builtin/index-pack.c:485
#, c-format
msgid "inflate returned %d"
msgstr "a descompactação retornou %d"
-#: builtin/index-pack.c:536
+#: builtin/index-pack.c:534
msgid "offset value overflow for delta base object"
msgstr "delta de objeto base com capacidade excedida no valor de offset"
-#: builtin/index-pack.c:544
+#: builtin/index-pack.c:542
msgid "delta base offset is out of bound"
msgstr "offset de base delta está fora de limite"
-#: builtin/index-pack.c:552
+#: builtin/index-pack.c:550
#, c-format
msgid "unknown object type %d"
msgstr "tipo de objeto %d desconhecido"
-#: builtin/index-pack.c:583
+#: builtin/index-pack.c:581
msgid "cannot pread pack file"
msgstr "incapaz invocar pread sobre ficheiro de pacote"
-#: builtin/index-pack.c:585
+#: builtin/index-pack.c:583
#, c-format
msgid "premature end of pack file, %<PRIuMAX> byte missing"
msgid_plural "premature end of pack file, %<PRIuMAX> bytes missing"
msgstr[0] "fim prematuro de ficheiro de pacote, falta %<PRIuMAX> byte"
msgstr[1] "fim prematuro de ficheiro de pacote, faltam %<PRIuMAX> bytes"
-#: builtin/index-pack.c:611
+#: builtin/index-pack.c:609
msgid "serious inflate inconsistency"
msgstr "inconsistência de descompactação grave"
-#: builtin/index-pack.c:756 builtin/index-pack.c:762 builtin/index-pack.c:786
-#: builtin/index-pack.c:825 builtin/index-pack.c:834
+#: builtin/index-pack.c:754 builtin/index-pack.c:760 builtin/index-pack.c:784
+#: builtin/index-pack.c:823 builtin/index-pack.c:832
#, c-format
msgid "SHA1 COLLISION FOUND WITH %s !"
msgstr "COLISÃO DE SHA1 COM %s ENCONTRADA!"
-#: builtin/index-pack.c:759 builtin/pack-objects.c:292
-#: builtin/pack-objects.c:352 builtin/pack-objects.c:458
+#: builtin/index-pack.c:757 builtin/pack-objects.c:290
+#: builtin/pack-objects.c:350 builtin/pack-objects.c:456
#, c-format
msgid "unable to read %s"
msgstr "incapaz ler %s"
-#: builtin/index-pack.c:823
+#: builtin/index-pack.c:821
#, c-format
msgid "cannot read existing object info %s"
msgstr "incapaz ler informação existente de objeto %s"
-#: builtin/index-pack.c:831
+#: builtin/index-pack.c:829
#, c-format
msgid "cannot read existing object %s"
msgstr "incapaz ler objeto existente %s"
-#: builtin/index-pack.c:845
+#: builtin/index-pack.c:843
#, c-format
msgid "invalid blob object %s"
-msgstr "objeto blob inválido %s"
+msgstr "objeto-blob inválido %s"
-#: builtin/index-pack.c:848 builtin/index-pack.c:867
+#: builtin/index-pack.c:846 builtin/index-pack.c:865
msgid "fsck error in packed object"
msgstr ""
-#: builtin/index-pack.c:869
+#: builtin/index-pack.c:867
#, c-format
msgid "Not all child objects of %s are reachable"
msgstr "Nem todos os objetos filhos de %s são alcançáveis"
-#: builtin/index-pack.c:930 builtin/index-pack.c:977
+#: builtin/index-pack.c:928 builtin/index-pack.c:975
msgid "failed to apply delta"
msgstr "falha ao aplicar delta"
-#: builtin/index-pack.c:1160
+#: builtin/index-pack.c:1161
msgid "Receiving objects"
msgstr "A receber objetos"
-#: builtin/index-pack.c:1160
+#: builtin/index-pack.c:1161
msgid "Indexing objects"
-msgstr "A indexar objetos"
+msgstr "Encenando objetos"
-#: builtin/index-pack.c:1194
+#: builtin/index-pack.c:1195
msgid "pack is corrupted (SHA1 mismatch)"
msgstr "pacote roto (SHA1 sem correspondência)"
-#: builtin/index-pack.c:1199
+#: builtin/index-pack.c:1200
msgid "cannot fstat packfile"
msgstr "incapaz fstat ficheiro de pacote"
-#: builtin/index-pack.c:1202
+#: builtin/index-pack.c:1203
msgid "pack has junk at the end"
msgstr "pacote com lixo no final"
-#: builtin/index-pack.c:1214
+#: builtin/index-pack.c:1215
msgid "confusion beyond insanity in parse_pack_objects()"
msgstr "extrema confusão em parse_pack_objects()"
-#: builtin/index-pack.c:1237
+#: builtin/index-pack.c:1238
msgid "Resolving deltas"
msgstr "A resolver deltas"
-#: builtin/index-pack.c:1248 builtin/pack-objects.c:2892
+#: builtin/index-pack.c:1249 builtin/pack-objects.c:2913
#, c-format
msgid "unable to create thread: %s"
msgstr "incapaz criar fio: %s"
-#: builtin/index-pack.c:1281
+#: builtin/index-pack.c:1282
msgid "confusion beyond insanity"
msgstr "extrema confusão"
-#: builtin/index-pack.c:1287
+#: builtin/index-pack.c:1288
#, c-format
msgid "completed with %d local object"
msgid_plural "completed with %d local objects"
msgstr[0] "concluído com %d objeto local"
msgstr[1] "concluído com %d objetos locais"
-#: builtin/index-pack.c:1299
+#: builtin/index-pack.c:1300
#, c-format
msgid "Unexpected tail checksum for %s (disk corruption?)"
-msgstr "Soma de verificação inesperada no final de %s (corrupção no disco?)"
+msgstr "Checksum de cauda inesperado %s (disco corrompido?)"
-#: builtin/index-pack.c:1303
+#: builtin/index-pack.c:1304
#, c-format
msgid "pack has %d unresolved delta"
msgid_plural "pack has %d unresolved deltas"
msgstr[0] "pacote tem %d delta por resolver"
msgstr[1] "pacote tem %d deltas por resolver"
-#: builtin/index-pack.c:1327
+#: builtin/index-pack.c:1328
#, c-format
msgid "unable to deflate appended object (%d)"
-msgstr "incapaz descompactar objeto acrescentado (%d)"
+msgstr "incapaz esvaziar objeto acrescentado (%d)"
#: builtin/index-pack.c:1423
#, c-format
msgid "local object %s is corrupt"
-msgstr ""
+msgstr "objeto local %s está roto"
-#: builtin/index-pack.c:1444
+#: builtin/index-pack.c:1445
#, c-format
msgid "packfile name '%s' does not end with '.%s'"
msgstr "fim de nome de ficheiro-pacote '%s' é diferente de '.%s'"
-#: builtin/index-pack.c:1468
+#: builtin/index-pack.c:1469
#, c-format
msgid "cannot write %s file '%s'"
msgstr "incapaz escrever ficheiro %s '%s'"
-#: builtin/index-pack.c:1476
+#: builtin/index-pack.c:1477
#, c-format
msgid "cannot close written %s file '%s'"
msgstr "incapaz fechar ficheiro %s gravado '%s'"
-#: builtin/index-pack.c:1502
+#: builtin/index-pack.c:1494
+#, c-format
+msgid "unable to rename temporary '*.%s' file to '%s'"
+msgstr "incapaz renomear ficheiro '*.%s' temporário para '%s'"
+
+#: builtin/index-pack.c:1519
msgid "error while closing pack file"
msgstr ""
-#: builtin/index-pack.c:1516
-msgid "cannot store pack file"
-msgstr "incapaz guardar ficheiro de pacote"
-
-#: builtin/index-pack.c:1524
-msgid "cannot store index file"
-msgstr "incapaz guardar ficheiro de cenário"
-
-#: builtin/index-pack.c:1579 builtin/pack-objects.c:3137
+#: builtin/index-pack.c:1578 builtin/pack-objects.c:3158
#, c-format
msgid "bad pack.indexversion=%<PRIu32>"
msgstr "pack.indexversion=%<PRIu32> incorreto"
-#: builtin/index-pack.c:1649
+#: builtin/index-pack.c:1648
#, c-format
msgid "Cannot open existing pack file '%s'"
msgstr "Incapaz abrir ficheiro pack existente '%s'"
-#: builtin/index-pack.c:1651
+#: builtin/index-pack.c:1650
#, c-format
msgid "Cannot open existing pack idx file for '%s'"
msgstr "Incapaz abrir ficheiro idx existente para '%s'"
-#: builtin/index-pack.c:1699
+#: builtin/index-pack.c:1698
#, c-format
msgid "non delta: %d object"
msgid_plural "non delta: %d objects"
msgstr[0] "não-delta: %d objeto"
msgstr[1] "não-delta: %d objetos"
-#: builtin/index-pack.c:1706
+#: builtin/index-pack.c:1705
#, c-format
msgid "chain length = %d: %lu object"
msgid_plural "chain length = %d: %lu objects"
-msgstr[0] "comprimento de cadeia = %d: %lu objeto"
-msgstr[1] "comprimento de cadeia = %d: %lu objetos"
+msgstr[0] "comprimento de série = %d: %lu objeto"
+msgstr[1] "comprimento de série = %d: %lu objetos"
#: builtin/index-pack.c:1748
msgid "Cannot come back to cwd"
msgstr "Incapaz voltar a cwd"
#: builtin/index-pack.c:1802 builtin/index-pack.c:1805
-#: builtin/index-pack.c:1821 builtin/index-pack.c:1825
+#: builtin/index-pack.c:1825 builtin/index-pack.c:1829
#, c-format
msgid "bad %s"
msgstr "%s incorreto"
-#: builtin/index-pack.c:1831 builtin/init-db.c:379 builtin/init-db.c:614
+#: builtin/index-pack.c:1835 builtin/init-db.c:379 builtin/init-db.c:614
#, c-format
msgid "unknown hash algorithm '%s'"
msgstr ""
-#: builtin/index-pack.c:1850
-msgid "--fix-thin cannot be used without --stdin"
-msgstr "--fix-thin exige ser usado com --stdin"
-
-#: builtin/index-pack.c:1852
+#: builtin/index-pack.c:1856
msgid "--stdin requires a git repository"
msgstr "--stdin exige um repositório git"
-#: builtin/index-pack.c:1854
-msgid "--object-format cannot be used with --stdin"
-msgstr "--object-format incapaz ser usado com --stdin"
-
-#: builtin/index-pack.c:1869
+#: builtin/index-pack.c:1873
msgid "--verify with no packfile name given"
msgstr "--verify sem nome do ficheiro de pacote indicado"
-#: builtin/index-pack.c:1935 builtin/unpack-objects.c:584
+#: builtin/index-pack.c:1939 builtin/unpack-objects.c:584
msgid "fsck error in pack objects"
msgstr "erro fsck em objetos pacote"
@@ -16517,7 +17297,7 @@ msgstr "%s já existe"
#: builtin/init-db.c:432
#, c-format
msgid "re-init: ignored --initial-branch=%s"
-msgstr ""
+msgstr "reiniciar: ignorei --initial-branch=%s"
#: builtin/init-db.c:463
#, c-format
@@ -16544,8 +17324,8 @@ msgid ""
"git init [-q | --quiet] [--bare] [--template=<template-directory>] [--"
"shared[=<permissions>]] [<directory>]"
msgstr ""
-"git init [-q | --quiet] [--bare] [--template=<diretório-modelo>] [--"
-"shared[=<permissões>]] [<diretório>]"
+"git init [-q | --quiet] [--bare] [--template=<pasta-modelo>] [--"
+"shared[=<permissões>]] [<pasta>]"
#: builtin/init-db.c:544
msgid "permissions"
@@ -16566,11 +17346,7 @@ msgstr ""
#: builtin/init-db.c:553 builtin/show-index.c:22 builtin/verify-pack.c:75
msgid "specify the hash algorithm to use"
-msgstr ""
-
-#: builtin/init-db.c:560
-msgid "--separate-git-dir and --bare are mutually exclusive"
-msgstr ""
+msgstr "especifica o algoritmo hash a ser usado"
#: builtin/init-db.c:591 builtin/init-db.c:596
#, c-format
@@ -16588,17 +17364,17 @@ msgid ""
"%s (or --work-tree=<directory>) not allowed without specifying %s (or --git-"
"dir=<directory>)"
msgstr ""
-"%s (ou --work-tree=<diretório>) só é permitido se especificar %s (ou --git-"
-"dir=<diretório>)"
+"%s (ou --work-tree=<pasta>) só é permitido se especificar %s (ou --git-"
+"dir=<pasta>)"
#: builtin/init-db.c:679
#, c-format
msgid "Cannot access work tree '%s'"
-msgstr "Incapaz aceder work tree '%s'"
+msgstr "Incapaz aceder árvore-trabalho '%s'"
#: builtin/init-db.c:684
msgid "--separate-git-dir incompatible with bare repository"
-msgstr "--separate-git-dir incompatível com repositório nú"
+msgstr "--separate-git-dir incompatível com repositório nu"
#: builtin/interpret-trailers.c:16
msgid ""
@@ -16660,557 +17436,557 @@ msgstr "--trailer com --only-input faz sentido nenhum"
msgid "no input file given for in-place editing"
msgstr "fornecido para edição in-place, ficheiro de entrada nenhum"
-#: builtin/log.c:59
+#: builtin/log.c:60
msgid "git log [<options>] [<revision-range>] [[--] <path>...]"
msgstr "git log [<opções>] [<intervalo-de-revisões>] [[--] <caminho>...]"
-#: builtin/log.c:60
+#: builtin/log.c:61
msgid "git show [<options>] <object>..."
msgstr "git show [<opções>] <objeto>..."
-#: builtin/log.c:113
+#: builtin/log.c:114
#, c-format
msgid "invalid --decorate option: %s"
msgstr "opção --decorate inválida: %s"
-#: builtin/log.c:180
+#: builtin/log.c:181
msgid "show source"
msgstr "mostrar origem"
-#: builtin/log.c:181
+#: builtin/log.c:182
msgid "use mail map file"
msgstr "usar ficheiro de mapeamento de correio"
-#: builtin/log.c:184
+#: builtin/log.c:185
msgid "only decorate refs that match <pattern>"
msgstr "apenas decorar refs que correspondam ao <padrão>"
-#: builtin/log.c:186
+#: builtin/log.c:187
msgid "do not decorate refs that match <pattern>"
msgstr "deixar por decorar refs correspondentes a <padrão>"
-#: builtin/log.c:187
+#: builtin/log.c:188
msgid "decorate options"
msgstr "opções de decoração"
-#: builtin/log.c:190
+#: builtin/log.c:191
msgid ""
"trace the evolution of line range <start>,<end> or function :<funcname> in "
"<file>"
-msgstr "localizar a evolução de intervalo de linhas <início>,<fim> ou "
-"função :<nome-função> em <ficheiro>"
+msgstr ""
+"localizar a evolução de intervalo de linhas <início>,<fim> ou função :<nome-"
+"função> em <ficheiro>"
-#: builtin/log.c:213
+#: builtin/log.c:214
msgid "-L<range>:<file> cannot be used with pathspec"
-msgstr "-L<alcance>:<ficheiro>incapaz ser usado com especificador de path"
+msgstr "-L<intervalo>:<ficheiro>incapaz ser usado com especificador de path"
-#: builtin/log.c:306
+#: builtin/log.c:322
#, c-format
msgid "Final output: %d %s\n"
msgstr "Output final: %d %s\n"
-#: builtin/log.c:571
+#: builtin/log.c:429
+msgid "unable to create temporary object directory"
+msgstr "incapaz criar pasta de objeto temporário"
+
+#: builtin/log.c:599
#, c-format
msgid "git show %s: bad file"
msgstr "git show %s: ficheiro incorreto"
-#: builtin/log.c:586 builtin/log.c:676
+#: builtin/log.c:614 builtin/log.c:706
#, c-format
msgid "could not read object %s"
msgstr "incapaz ler objeto %s"
-#: builtin/log.c:701
+#: builtin/log.c:731
#, c-format
msgid "unknown type: %d"
msgstr "tipo desconhecido: %d"
-#: builtin/log.c:846
+#: builtin/log.c:880
#, c-format
msgid "%s: invalid cover from description mode"
msgstr ""
-#: builtin/log.c:853
+#: builtin/log.c:887
msgid "format.headers without value"
msgstr "format.headers sem valor"
-#: builtin/log.c:982
+#: builtin/log.c:1016
#, c-format
msgid "cannot open patch file %s"
msgstr "incapaz abrir ficheiro patch %s"
-#: builtin/log.c:999
+#: builtin/log.c:1033
msgid "need exactly one range"
msgstr ""
-#: builtin/log.c:1009
+#: builtin/log.c:1043
msgid "not a range"
msgstr "é intervalo nenhum"
-#: builtin/log.c:1173
+#: builtin/log.c:1207
msgid "cover letter needs email format"
-msgstr "A carta de apresentação precisa de um formato de e-mail"
+msgstr "carta de apresentação precisa de formato de e-mail"
-#: builtin/log.c:1179
+#: builtin/log.c:1213
msgid "failed to create cover-letter file"
msgstr ""
-#: builtin/log.c:1266
+#: builtin/log.c:1300
#, c-format
msgid "insane in-reply-to: %s"
msgstr "in-reply-to incorreto: %s"
-#: builtin/log.c:1293
+#: builtin/log.c:1327
msgid "git format-patch [<options>] [<since> | <revision-range>]"
msgstr "git format-patch [<opções>] [<desde> | <intervalo-de-revisões>]"
-#: builtin/log.c:1351
+#: builtin/log.c:1385
msgid "two output directories?"
-msgstr "Dois diretórios de saída?"
+msgstr "duas pastas de saída?"
-#: builtin/log.c:1502 builtin/log.c:2328 builtin/log.c:2330 builtin/log.c:2342
+#: builtin/log.c:1536 builtin/log.c:2369 builtin/log.c:2371 builtin/log.c:2383
#, c-format
msgid "unknown commit %s"
-msgstr "Commit desconhecido %s"
+msgstr "memória %s desconhecida"
-#: builtin/log.c:1513 builtin/replace.c:58 builtin/replace.c:207
+#: builtin/log.c:1547 builtin/replace.c:58 builtin/replace.c:207
#: builtin/replace.c:210
#, c-format
msgid "failed to resolve '%s' as a valid ref"
msgstr "falhou resolver '%s' como uma ref válida"
-#: builtin/log.c:1522
+#: builtin/log.c:1556
msgid "could not find exact merge base"
msgstr "incapaz encontrar a exata base de junção."
-#: builtin/log.c:1532
+#: builtin/log.c:1566
msgid ""
"failed to get upstream, if you want to record base commit automatically,\n"
"please use git branch --set-upstream-to to track a remote branch.\n"
"Or you could specify base commit by --base=<base-commit-id> manually"
msgstr ""
-"Falha ao obter ramo a montante, se quer gravar o commit base "
-"automaticamente,\n"
-"use branch --set-upstream-to para seguir um ramo remoto.\n"
-"Ou pode especificar o commit base com --base=<base-commit-id> manualmente."
+"falhou obter upstream, se queres gravar a memória base automaticamente,\n"
+"por favor, usa git branch --set-upstream-to para monitorizar um ramo "
+"remoto.\n"
+"Ou podes especificar a memória base manualmente com --base=<id-memória-base>"
-#: builtin/log.c:1555
+#: builtin/log.c:1589
msgid "failed to find exact merge base"
-msgstr "Falha ao procurar base exata de integração"
+msgstr "Falha ao encontrar base de junção exata"
-#: builtin/log.c:1572
+#: builtin/log.c:1606
msgid "base commit should be the ancestor of revision list"
-msgstr "o commit base deve ser o antecessor da lista de revisões"
+msgstr "memória base tem de ser o antecessor da lista de revisões"
-#: builtin/log.c:1582
+#: builtin/log.c:1616
msgid "base commit shouldn't be in revision list"
-msgstr "commit base devia estar fora da lista de revisões"
+msgstr "memória base tem de estar fora da lista de revisões"
-#: builtin/log.c:1640
+#: builtin/log.c:1674
msgid "cannot get patch id"
msgstr "incapaz obter id de patch"
-#: builtin/log.c:1703
+#: builtin/log.c:1737
msgid "failed to infer range-diff origin of current series"
msgstr "falhou ao inferir origem intervalo-diff da série atual"
-#: builtin/log.c:1705
+#: builtin/log.c:1739
#, c-format
msgid "using '%s' as range-diff origin of current series"
msgstr ""
-#: builtin/log.c:1749
+#: builtin/log.c:1783
msgid "use [PATCH n/m] even with a single patch"
msgstr "usar [PATCH n/m] mesmo com um único patch"
-#: builtin/log.c:1752
+#: builtin/log.c:1786
msgid "use [PATCH] even with multiple patches"
msgstr "usar [PATCH] mesmo com múltiplos patches"
-#: builtin/log.c:1756
+#: builtin/log.c:1790
msgid "print patches to standard out"
msgstr "imprimir patches para a saída padrão"
-#: builtin/log.c:1758
+#: builtin/log.c:1792
msgid "generate a cover letter"
msgstr "gerar uma carta de apresentação"
-#: builtin/log.c:1760
+#: builtin/log.c:1794
msgid "use simple number sequence for output file names"
msgstr ""
"usar uma sequência de números simples para denominar os ficheiros gerados"
-#: builtin/log.c:1761
+#: builtin/log.c:1795
msgid "sfx"
msgstr "sfx"
-#: builtin/log.c:1762
+#: builtin/log.c:1796
msgid "use <sfx> instead of '.patch'"
msgstr "usar <sfx> em vez de '.patch'"
-#: builtin/log.c:1764
+#: builtin/log.c:1798
msgid "start numbering patches at <n> instead of 1"
msgstr "começar a numerar os patches em <n> em vez de 1"
-#: builtin/log.c:1765
+#: builtin/log.c:1799
msgid "reroll-count"
msgstr ""
-#: builtin/log.c:1766
+#: builtin/log.c:1800
msgid "mark the series as Nth re-roll"
msgstr "marcar a série como a n-ésima reiteração"
-#: builtin/log.c:1768
+#: builtin/log.c:1802
msgid "max length of output filename"
msgstr "comprimento máximo de saída de nome de ficheiro"
-#: builtin/log.c:1770
+#: builtin/log.c:1804
msgid "use [RFC PATCH] instead of [PATCH]"
msgstr "Usar [RFC PATCH] em vez de [PATCH]"
-#: builtin/log.c:1773
+#: builtin/log.c:1807
msgid "cover-from-description-mode"
msgstr ""
-#: builtin/log.c:1774
+#: builtin/log.c:1808
msgid "generate parts of a cover letter based on a branch's description"
-msgstr ""
+msgstr "gerar partes de carta de apresentação baseado na descrição do ramo"
-#: builtin/log.c:1776
+#: builtin/log.c:1810
msgid "use [<prefix>] instead of [PATCH]"
msgstr "usar [<prefixo>] em vez de [PATCH]"
-#: builtin/log.c:1779
+#: builtin/log.c:1813
msgid "store resulting files in <dir>"
-msgstr "guardar os ficheiros resultantes em <dir>"
+msgstr "guardar os ficheiros resultantes em <pasta>"
-#: builtin/log.c:1782
+#: builtin/log.c:1816
msgid "don't strip/add [PATCH]"
msgstr "deixar de despir/adicionar [PATCH]"
-#: builtin/log.c:1785
+#: builtin/log.c:1819
msgid "don't output binary diffs"
msgstr "deixar de gerar diffs binários"
-#: builtin/log.c:1787
+#: builtin/log.c:1821
msgid "output all-zero hash in From header"
msgstr "preencher o cabeçalho From com hash de zeros"
-#: builtin/log.c:1789
+#: builtin/log.c:1823
msgid "don't include a patch matching a commit upstream"
-msgstr "incluir nenhum patch correspondente commit upstream"
+msgstr "incluir nenhum remendo correspondente a memória upstream"
-#: builtin/log.c:1791
+#: builtin/log.c:1825
msgid "show patch format instead of default (patch + stat)"
msgstr ""
"mostrar no formato de patch em vez de no formato por omissão (patch + stat)"
-#: builtin/log.c:1793
+#: builtin/log.c:1827
msgid "Messaging"
msgstr "Mensagem"
-#: builtin/log.c:1794
+#: builtin/log.c:1828
msgid "header"
msgstr "cabeçalho"
-#: builtin/log.c:1795
+#: builtin/log.c:1829
msgid "add email header"
msgstr "adicionar cabeçalho de e-mail"
-#: builtin/log.c:1796 builtin/log.c:1797
+#: builtin/log.c:1830 builtin/log.c:1831
msgid "email"
msgstr "e-mail"
-#: builtin/log.c:1796
+#: builtin/log.c:1830
msgid "add To: header"
msgstr "adicionar cabeçalho To:"
-#: builtin/log.c:1797
+#: builtin/log.c:1831
msgid "add Cc: header"
msgstr "adicionar cabeçalho Cc:"
-#: builtin/log.c:1798
+#: builtin/log.c:1832
msgid "ident"
msgstr "identidade"
-#: builtin/log.c:1799
+#: builtin/log.c:1833
msgid "set From address to <ident> (or committer ident if absent)"
msgstr ""
-"definir endereço From para <identidade> (ou, identidade do committer, caso "
-"contrário)"
+"definir endereço From para <identidade> (ou identidade de memorizador caso "
+"ausente)"
-#: builtin/log.c:1801
+#: builtin/log.c:1835
msgid "message-id"
msgstr "id-mensagem"
-#: builtin/log.c:1802
+#: builtin/log.c:1836
msgid "make first mail a reply to <message-id>"
msgstr "usar o primeiro email para responder a <id-mensagem>"
-#: builtin/log.c:1803 builtin/log.c:1806
+#: builtin/log.c:1837 builtin/log.c:1840
msgid "boundary"
msgstr "limite"
-#: builtin/log.c:1804
+#: builtin/log.c:1838
msgid "attach the patch"
msgstr "anexar remendo"
-#: builtin/log.c:1807
+#: builtin/log.c:1841
msgid "inline the patch"
msgstr "incorporar remendo"
-#: builtin/log.c:1811
+#: builtin/log.c:1845
msgid "enable message threading, styles: shallow, deep"
-msgstr "ativar mensagens por tópicos, estilos: shallow (superficial), deep (profundo)"
+msgstr ""
+"ativar mensagens por tópicos, estilos: shallow (superficial), deep (profundo)"
-#: builtin/log.c:1813
+#: builtin/log.c:1847
msgid "signature"
msgstr "assinatura"
-#: builtin/log.c:1814
+#: builtin/log.c:1848
msgid "add a signature"
msgstr "adicionar uma assinatura"
-#: builtin/log.c:1815
+#: builtin/log.c:1849
msgid "base-commit"
msgstr "memória-base"
-#: builtin/log.c:1816
+#: builtin/log.c:1850
msgid "add prerequisite tree info to the patch series"
msgstr "adicionar informação pré-requisito da árvore à série de patches"
-#: builtin/log.c:1819
+#: builtin/log.c:1853
msgid "add a signature from a file"
msgstr "adicionar uma assinatura de um ficheiro"
-#: builtin/log.c:1820
+#: builtin/log.c:1854
msgid "don't print the patch filenames"
msgstr "imprimir nomes de ficheiros de patch nenhuns"
-#: builtin/log.c:1822
+#: builtin/log.c:1856
msgid "show progress while generating patches"
msgstr "mostrar progresso enquanto se gera remendos"
-#: builtin/log.c:1824
+#: builtin/log.c:1858
msgid "show changes against <rev> in cover letter or single patch"
msgstr ""
+"mostrar alterações contra <rev> em carta de apresentação ou em remendo único"
-#: builtin/log.c:1827
+#: builtin/log.c:1861
msgid "show changes against <refspec> in cover letter or single patch"
msgstr ""
+"mostrar alterações contra <espetro-ref> em carta de apresentação ou em "
+"remendo único"
-#: builtin/log.c:1829 builtin/range-diff.c:28
+#: builtin/log.c:1863 builtin/range-diff.c:28
msgid "percentage by which creation is weighted"
msgstr ""
-#: builtin/log.c:1916
+#: builtin/log.c:1953
#, c-format
msgid "invalid ident line: %s"
msgstr "linha de indentação inválida: %s"
-#: builtin/log.c:1931
-msgid "-n and -k are mutually exclusive"
-msgstr "-n e -k são mutuamente exclusivos."
-
-#: builtin/log.c:1933
-msgid "--subject-prefix/--rfc and -k are mutually exclusive"
-msgstr "--subject-prefix/--rfc e -k são mutuamente exclusivos."
-
-#: builtin/log.c:1941
+#: builtin/log.c:1978
msgid "--name-only does not make sense"
msgstr "--name-only faz sentido nenhum"
-#: builtin/log.c:1943
+#: builtin/log.c:1980
msgid "--name-status does not make sense"
msgstr "--name-status faz sentido nenhum"
-#: builtin/log.c:1945
+#: builtin/log.c:1982
msgid "--check does not make sense"
msgstr "--check faz sentido nenhum"
-#: builtin/log.c:1967
-msgid "--stdout, --output, and --output-directory are mutually exclusive"
-msgstr ""
+#: builtin/log.c:1984
+msgid "--remerge-diff does not make sense"
+msgstr "--remerge-diff faz sentido nenhum"
-#: builtin/log.c:2089
+#: builtin/log.c:2129
msgid "--interdiff requires --cover-letter or single patch"
msgstr ""
-#: builtin/log.c:2093
+#: builtin/log.c:2133
msgid "Interdiff:"
msgstr ""
-#: builtin/log.c:2094
+#: builtin/log.c:2134
#, c-format
msgid "Interdiff against v%d:"
msgstr ""
-#: builtin/log.c:2100
-msgid "--creation-factor requires --range-diff"
-msgstr ""
-
-#: builtin/log.c:2104
+#: builtin/log.c:2144
msgid "--range-diff requires --cover-letter or single patch"
msgstr ""
-#: builtin/log.c:2112
+#: builtin/log.c:2152
msgid "Range-diff:"
msgstr ""
-#: builtin/log.c:2113
+#: builtin/log.c:2153
#, c-format
msgid "Range-diff against v%d:"
msgstr ""
-#: builtin/log.c:2124
+#: builtin/log.c:2164
#, c-format
msgid "unable to read signature file '%s'"
msgstr "incapaz ler ficheiro de assinatura '%s'"
-#: builtin/log.c:2160
+#: builtin/log.c:2200
msgid "Generating patches"
msgstr "falha ao editar patch"
-#: builtin/log.c:2204
+#: builtin/log.c:2244
msgid "failed to create output files"
msgstr ""
-#: builtin/log.c:2263
+#: builtin/log.c:2304
msgid "git cherry [-v] [<upstream> [<head> [<limit>]]]"
msgstr "git cherry [-v] [<upstream> [<head> [<limite>]]]"
-#: builtin/log.c:2317
+#: builtin/log.c:2358
#, c-format
msgid ""
"Could not find a tracked remote branch, please specify <upstream> manually.\n"
msgstr ""
-"Incapaz encontrar ramo monitorizado remoto, por favor especifica <upstream> "
+"Incapaz encontrar ramo remoto monitorizado, por favor especifica <upstream> "
"manualmente.\n"
-#: builtin/ls-files.c:563
+#: builtin/ls-files.c:564
msgid "git ls-files [<options>] [<file>...]"
msgstr "git ls-files [<opções>] [<ficheiro>...]"
-#: builtin/ls-files.c:619
+#: builtin/ls-files.c:618
+msgid "separate paths with the NUL character"
+msgstr "separa caminhos com o caractere NUL"
+
+#: builtin/ls-files.c:620
msgid "identify the file status with tags"
-msgstr "identificar o estado do ficheiro com tags"
+msgstr "identificar o estado do ficheiro com as etiquetas"
-#: builtin/ls-files.c:621
+#: builtin/ls-files.c:622
msgid "use lowercase letters for 'assume unchanged' files"
msgstr "usar letras minúsculas para ficheiros 'assume unchanged'"
-#: builtin/ls-files.c:623
+#: builtin/ls-files.c:624
msgid "use lowercase letters for 'fsmonitor clean' files"
msgstr "usar letras minúsculas para ficheiros 'fsmonitor clean'"
-#: builtin/ls-files.c:625
+#: builtin/ls-files.c:626
msgid "show cached files in the output (default)"
-msgstr "mostrar ficheiros em cache na saída (predefinição)"
+msgstr "mostrar ficheiros de cenário na saída (predefinição)"
-#: builtin/ls-files.c:627
+#: builtin/ls-files.c:628
msgid "show deleted files in the output"
msgstr "mostrar ficheiros eliminados na saída"
-#: builtin/ls-files.c:629
+#: builtin/ls-files.c:630
msgid "show modified files in the output"
msgstr "mostrar ficheiros modificados na saída"
-#: builtin/ls-files.c:631
+#: builtin/ls-files.c:632
msgid "show other files in the output"
msgstr "mostrar outros ficheiros na saída"
-#: builtin/ls-files.c:633
+#: builtin/ls-files.c:634
msgid "show ignored files in the output"
msgstr "mostrar ficheiros ignorados na saída"
-#: builtin/ls-files.c:636
+#: builtin/ls-files.c:637
msgid "show staged contents' object name in the output"
-msgstr "mostrar nome de objetos com conteúdo preparado, na saída"
+msgstr "mostrar nome de objetos de conteúdo encenado, na saída"
-#: builtin/ls-files.c:638
+#: builtin/ls-files.c:639
msgid "show files on the filesystem that need to be removed"
msgstr ""
"mostrar ficheiros no sistema de ficheiros que precisam de ser removidos"
-#: builtin/ls-files.c:640
+#: builtin/ls-files.c:641
msgid "show 'other' directories' names only"
-msgstr "mostrar nomes de diretórios 'other' (outro)"
+msgstr "mostrar apenas nomes das pastas 'other' (outro)"
-#: builtin/ls-files.c:642
+#: builtin/ls-files.c:643
msgid "show line endings of files"
msgstr "mostrar finais de linha dos ficheiros"
-#: builtin/ls-files.c:644
+#: builtin/ls-files.c:645
msgid "don't show empty directories"
msgstr "mostrar pastas vazias nenhumas"
-#: builtin/ls-files.c:647
+#: builtin/ls-files.c:648
msgid "show unmerged files in the output"
msgstr "mostrar ficheiros por juntar no output"
-#: builtin/ls-files.c:649
+#: builtin/ls-files.c:650
msgid "show resolve-undo information"
msgstr "mostrar informação de resolver-desfazer"
-#: builtin/ls-files.c:651
+#: builtin/ls-files.c:652
msgid "skip files matching pattern"
msgstr "ignorar ficheiros que correspondam ao padrão"
-#: builtin/ls-files.c:654
-msgid "exclude patterns are read from <file>"
-msgstr "ler padrões de exclusão do <ficheiro>"
+#: builtin/ls-files.c:655
+msgid "read exclude patterns from <file>"
+msgstr "ler padrões de exclusão de <ficheiro>"
-#: builtin/ls-files.c:657
+#: builtin/ls-files.c:658
msgid "read additional per-directory exclude patterns in <file>"
-msgstr "ler padrões de exclusão por diretório do <ficheiro>"
+msgstr "ler padrões de exclusão por pasta adicionais em <ficheiro>"
-#: builtin/ls-files.c:659
+#: builtin/ls-files.c:660
msgid "add the standard git exclusions"
msgstr "incluir as exclusões standard de git"
-#: builtin/ls-files.c:663
+#: builtin/ls-files.c:664
msgid "make the output relative to the project top directory"
msgstr "fazer a saída relativa à pasta de topo de projeto"
-#: builtin/ls-files.c:666
-msgid "recurse through submodules"
-msgstr "percorrer recursivamente pelos submódulos"
-
-#: builtin/ls-files.c:668
+#: builtin/ls-files.c:669
msgid "if any <file> is not in the index, treat this as an error"
-msgstr "se estiver no index <ficheiro> nenhum, tratar como erro"
+msgstr "se qualquer <ficheiro> estiver fora de cenário, tratar como erro"
-#: builtin/ls-files.c:669
+#: builtin/ls-files.c:670
msgid "tree-ish"
-msgstr "árvore-etc"
+msgstr "arvoredo"
-#: builtin/ls-files.c:670
+#: builtin/ls-files.c:671
msgid "pretend that paths removed since <tree-ish> are still present"
-msgstr ""
-"fingir que os caminhos removidos desde <árvore-etc> ainda estão presentes"
+msgstr "fingir que caminhos removidos desde <arvoredo> ainda estão presentes"
-#: builtin/ls-files.c:672
+#: builtin/ls-files.c:673
msgid "show debugging data"
msgstr "mostrar dados de depuração"
-#: builtin/ls-files.c:674
+#: builtin/ls-files.c:675
msgid "suppress duplicate entries"
msgstr "suprimir entradas duplicadas"
+#: builtin/ls-files.c:677
+msgid "show sparse directories in the presence of a sparse index"
+msgstr ""
+
#: builtin/ls-remote.c:9
msgid ""
"git ls-remote [--heads] [--tags] [--refs] [--upload-pack=<exec>]\n"
-" [-q | --quiet] [--exit-code] [--get-url]\n"
-" [--symref] [<repository> [<refs>...]]"
+" [-q | --quiet] [--exit-code] [--get-url]\n"
+" [--symref] [<repository> [<refs>...]]"
msgstr ""
"git ls-remote [--heads] [--tags] [--refs] [--upload-pack=<exec>]\n"
-" [-q | --quiet] [--exit-code] [--get-url]\n"
-" [--symref] [<repositório> [<referências>...]]"
+" [-q | --quiet] [--exit-code] [--get-url]\n"
+" [--symref] [<repositório> [<refs>...]]"
#: builtin/ls-remote.c:60
msgid "do not print remote URL"
msgstr "imprimir URL remoto nenhum"
-#: builtin/ls-remote.c:61 builtin/ls-remote.c:63 builtin/rebase.c:1399
+#: builtin/ls-remote.c:61 builtin/ls-remote.c:63 builtin/rebase.c:1131
msgid "exec"
msgstr "exec"
@@ -17242,42 +18018,69 @@ msgstr "terminar com código de saída 2 se forem encontradas refs nenhumas"
msgid "show underlying ref in addition to the object pointed by it"
msgstr "mostrar a referência subjacente em adição ao objeto por ela apontado"
-#: builtin/ls-tree.c:30
+#: builtin/ls-tree.c:36
msgid "git ls-tree [<options>] <tree-ish> [<path>...]"
msgstr "git ls-tree [<opções>] <arvoredo> [<caminho>...]"
-#: builtin/ls-tree.c:128
+#: builtin/ls-tree.c:54
+#, c-format
+msgid "could not get object info about '%s'"
+msgstr "incapaz obter info de objeto acerca de '%s'"
+
+#: builtin/ls-tree.c:79
+#, c-format
+msgid "bad ls-tree format: element '%s' does not start with '('"
+msgstr "formato ls-tree inválido: elemento '%s' começa diferente de '('"
+
+#: builtin/ls-tree.c:83
+#, c-format
+msgid "bad ls-tree format: element '%s' does not end in ')'"
+msgstr "formate ls-tree inválido: elemento '%s' termina diferente de ')'"
+
+#: builtin/ls-tree.c:109
+#, c-format
+msgid "bad ls-tree format: %%%.*s"
+msgstr "formato ls-tree inválido: %%%.*s"
+
+#: builtin/ls-tree.c:336
msgid "only show trees"
msgstr "mostrar apenas árvores"
-#: builtin/ls-tree.c:130
+#: builtin/ls-tree.c:338
msgid "recurse into subtrees"
msgstr "percorrer as subárvores recursivamente"
-#: builtin/ls-tree.c:132
+#: builtin/ls-tree.c:340
msgid "show trees when recursing"
msgstr "mostrar árvores ao percorrer"
-#: builtin/ls-tree.c:135
+#: builtin/ls-tree.c:343
msgid "terminate entries with NUL byte"
msgstr "terminar entradas com o byte NUL"
-#: builtin/ls-tree.c:136
+#: builtin/ls-tree.c:344
msgid "include object size"
msgstr "incluir dimensão dos objetos"
-#: builtin/ls-tree.c:138 builtin/ls-tree.c:140
+#: builtin/ls-tree.c:346 builtin/ls-tree.c:348
msgid "list only filenames"
msgstr "listar apenas os nomes de ficheiro"
-#: builtin/ls-tree.c:143
+#: builtin/ls-tree.c:350
+msgid "list only objects"
+msgstr "listar apenas objetos"
+
+#: builtin/ls-tree.c:353
msgid "use full path names"
msgstr "usar nomes de caminho completos"
-#: builtin/ls-tree.c:145
+#: builtin/ls-tree.c:355
msgid "list entire tree; not just current directory (implies --full-name)"
-msgstr ""
-"listar toda árvore; para além do diretório atual (implica --full-name)"
+msgstr "listar toda árvore; para além da pasta atual (implica --full-name)"
+
+#: builtin/ls-tree.c:391
+msgid "--format can't be combined with other format-altering options"
+msgstr "incapaz combinar --format com outras opções alteradoras de formato"
#. TRANSLATORS: keep <> in "<" mail ">" info.
#: builtin/mailinfo.c:14
@@ -17294,7 +18097,7 @@ msgstr ""
#: builtin/mailinfo.c:62
msgid "copy Message-ID to the end of commit message"
-msgstr "Esta é a 2ª mensagem de commit:"
+msgstr "copia Message-ID para o fim da mensagem de memória"
#: builtin/mailinfo.c:64
msgid "re-code metadata to i18n.commitEncoding"
@@ -17328,7 +18131,11 @@ msgstr ""
msgid "use headers in message's body"
msgstr ""
-#: builtin/mailsplit.c:241
+#: builtin/mailsplit.c:227
+msgid "reading patches from stdin/tty..."
+msgstr "lendo remendos de entrada padrão/tty..."
+
+#: builtin/mailsplit.c:242
#, c-format
msgid "empty mbox: '%s'"
msgstr ""
@@ -17353,26 +18160,25 @@ msgstr "git merge-base --is-ancestor <memória> <memória>"
msgid "git merge-base --fork-point <ref> [<commit>]"
msgstr "git merge-base --fork-point <ref> [<memória>]"
-#: builtin/merge-base.c:143
+#: builtin/merge-base.c:144
msgid "output all common ancestors"
msgstr "mostrar todos os antecessores"
-#: builtin/merge-base.c:145
+#: builtin/merge-base.c:146
msgid "find ancestors for a single n-way merge"
-msgstr "encontrar antecessores para uma única junção de n pontos"
+msgstr "encontrar antecessores para uma única n-junção (e.g. tri-junção)"
-#: builtin/merge-base.c:147
+#: builtin/merge-base.c:148
msgid "list revs not reachable from others"
msgstr "listar revs apenas alcançáveis pelos nossos"
-#: builtin/merge-base.c:149
+#: builtin/merge-base.c:150
msgid "is the first one ancestor of the other?"
-msgstr "é o primeiro antecessor do outro?"
+msgstr "é o primeiro, antecessor do outro?"
-#: builtin/merge-base.c:151
+#: builtin/merge-base.c:152
msgid "find where <commit> forked from reflog of <ref>"
-msgstr ""
-"descobrir onde foi que o <commit> divergiu usando o reflog da <referência>"
+msgstr "descobrir onde <memória> forqueou a partir de registo-ref da <ref>"
#: builtin/merge-file.c:9
msgid ""
@@ -17388,31 +18194,35 @@ msgstr "enviar resultados para a saída padrão"
#: builtin/merge-file.c:36
msgid "use a diff3 based merge"
-msgstr "usar integração baseada em diff3"
+msgstr "usar junção com diff3"
#: builtin/merge-file.c:37
+msgid "use a zealous diff3 based merge"
+msgstr "usar uma zelosa junção com diff3"
+
+#: builtin/merge-file.c:39
msgid "for conflicts, use our version"
msgstr "usar a nossa versão em caso de conflito"
-#: builtin/merge-file.c:39
+#: builtin/merge-file.c:41
msgid "for conflicts, use their version"
msgstr "usar a versão deles em caso de conflito"
-#: builtin/merge-file.c:41
+#: builtin/merge-file.c:43
msgid "for conflicts, use a union version"
msgstr "usar a união das versões em caso de conflito"
-#: builtin/merge-file.c:44
+#: builtin/merge-file.c:46
msgid "for conflicts, use this marker size"
-msgstr "usar este comprimento de marcador para os conflitos"
+msgstr "usar este tamanho de marcador para os conflitos"
-#: builtin/merge-file.c:45
+#: builtin/merge-file.c:47
msgid "do not warn about conflicts"
msgstr "deixar de alertar sobre conflitos"
-#: builtin/merge-file.c:47
+#: builtin/merge-file.c:49
msgid "set labels for file1/orig-file/file2"
-msgstr "definir identificares para ficheiro1/ficheiro-orig/ficheiro2"
+msgstr "definir rótulos para ficheiro1/ficheiro-orig/ficheiro2"
#: builtin/merge-recursive.c:47
#, c-format
@@ -17445,383 +18255,373 @@ msgstr "incapaz resolver ref '%s'"
msgid "Merging %s with %s\n"
msgstr "Juntando %s com %s\n"
-#: builtin/merge.c:58
+#: builtin/merge.c:59
msgid "git merge [<options>] [<commit>...]"
msgstr "git merge [<opções>] [<memória>...]"
-#: builtin/merge.c:123
+#: builtin/merge.c:125
msgid "switch `m' requires a value"
msgstr "a opção 'm' requer um valor"
-#: builtin/merge.c:146
+#: builtin/merge.c:148
#, c-format
msgid "option `%s' requires a value"
msgstr "opção `%s' exige um valor"
-#: builtin/merge.c:199
+#: builtin/merge.c:201
#, c-format
msgid "Could not find merge strategy '%s'.\n"
msgstr "Incapaz encontrar estratégia de junção '%s'.\n"
-#: builtin/merge.c:200
+#: builtin/merge.c:202
#, c-format
msgid "Available strategies are:"
msgstr "Estratégias disponíveis:"
-#: builtin/merge.c:205
+#: builtin/merge.c:207
#, c-format
msgid "Available custom strategies are:"
msgstr "Estratégias personalizadas disponíveis:"
-#: builtin/merge.c:256 builtin/pull.c:133
+#: builtin/merge.c:258 builtin/pull.c:134
msgid "do not show a diffstat at the end of the merge"
msgstr "mostrar diffstat nenhuma ao fim da junção"
-#: builtin/merge.c:259 builtin/pull.c:136
+#: builtin/merge.c:261 builtin/pull.c:137
msgid "show a diffstat at the end of the merge"
msgstr "mostrar um diffstat ao fim da junção"
-#: builtin/merge.c:260 builtin/pull.c:139
+#: builtin/merge.c:262 builtin/pull.c:140
msgid "(synonym to --stat)"
msgstr "(sinónimo de --stat)"
-#: builtin/merge.c:262 builtin/pull.c:142
+#: builtin/merge.c:264 builtin/pull.c:143
msgid "add (at most <n>) entries from shortlog to merge commit message"
msgstr ""
-"adicionar (no máximo <n>) entradas do shortlog à mensagem de commit da "
-"integração"
+"adicionar (no máximo <n>) entradas de shortlog à mensagem de memória da "
+"junção"
-#: builtin/merge.c:265 builtin/pull.c:148
+#: builtin/merge.c:267 builtin/pull.c:149
msgid "create a single commit instead of doing a merge"
-msgstr "criar um único commit em vez de realizar uma integração"
+msgstr "criar uma única memória em vez de realizar uma junção"
-#: builtin/merge.c:267 builtin/pull.c:151
+#: builtin/merge.c:269 builtin/pull.c:152
msgid "perform a commit if the merge succeeds (default)"
-msgstr "realizar um commit se a integração for bem sucedida (predefinição)"
+msgstr "realizar uma memorização se a junção suceder (predefinição)"
-#: builtin/merge.c:269 builtin/pull.c:154
+#: builtin/merge.c:271 builtin/pull.c:155
msgid "edit message before committing"
-msgstr "editar a mensagem antes de submeter"
+msgstr "editar a mensagem antes de memorizar"
-#: builtin/merge.c:271
+#: builtin/merge.c:273
msgid "allow fast-forward (default)"
-msgstr "permitir avanço rápido (predefinição)"
+msgstr "permitir avanço (predefinição)"
-#: builtin/merge.c:273 builtin/pull.c:161
+#: builtin/merge.c:275 builtin/pull.c:162
msgid "abort if fast-forward is not possible"
-msgstr "abortar se fast-forward é impossível"
+msgstr "abortar se avanço é impossível"
-#: builtin/merge.c:277 builtin/pull.c:164
+#: builtin/merge.c:279 builtin/pull.c:168
msgid "verify that the named commit has a valid GPG signature"
-msgstr "verificar se o commit tem uma assinatura GPG válida"
+msgstr "verificar que a memória em questão tem uma assinatura GPG válida"
-#: builtin/merge.c:278 builtin/notes.c:787 builtin/pull.c:168
-#: builtin/rebase.c:540 builtin/rebase.c:1413 builtin/revert.c:114
+#: builtin/merge.c:280 builtin/notes.c:785 builtin/pull.c:172
+#: builtin/rebase.c:1145 builtin/revert.c:114
msgid "strategy"
msgstr "estratégia"
-#: builtin/merge.c:279 builtin/pull.c:169
+#: builtin/merge.c:281 builtin/pull.c:173
msgid "merge strategy to use"
msgstr "estratégia de junção a usar"
-#: builtin/merge.c:280 builtin/pull.c:172
+#: builtin/merge.c:282 builtin/pull.c:176
msgid "option=value"
msgstr "opção=valor"
-#: builtin/merge.c:281 builtin/pull.c:173
+#: builtin/merge.c:283 builtin/pull.c:177
msgid "option for selected merge strategy"
msgstr "opção para estratégia de junção selecionada"
-#: builtin/merge.c:283
+#: builtin/merge.c:285
msgid "merge commit message (for a non-fast-forward merge)"
-msgstr "mensagem de commit de junção (para junções non-fast-forward)"
+msgstr "mensagem de memória de junção (para junções diferentes de avanço)"
+
+#: builtin/merge.c:291
+msgid "use <name> instead of the real target"
+msgstr "usar <nome> em vez do alvo real"
-#: builtin/merge.c:290
+#: builtin/merge.c:294
msgid "abort the current in-progress merge"
msgstr "abortar a junção atualmente em curso"
-#: builtin/merge.c:292
+#: builtin/merge.c:296
msgid "--abort but leave index and working tree alone"
msgstr "--abort mas deixar o cenário e a árvore-trabalho quietas"
-#: builtin/merge.c:294
+#: builtin/merge.c:298
msgid "continue the current in-progress merge"
-msgstr "continuar a integração em curso"
+msgstr "continuar a junção em curso"
-#: builtin/merge.c:296 builtin/pull.c:180
+#: builtin/merge.c:300 builtin/pull.c:184
msgid "allow merging unrelated histories"
msgstr "permitir junção de históricos diferentes"
-#: builtin/merge.c:303
+#: builtin/merge.c:307
msgid "bypass pre-merge-commit and commit-msg hooks"
-msgstr "ignorar pre-merge-commit e ganchos commit-msg"
+msgstr "contornar ganchos pre-merge-commit e commit-msg"
-#: builtin/merge.c:320
+#: builtin/merge.c:323
msgid "could not run stash."
-msgstr "incapaz executar stash."
+msgstr "incapaz executar o esconder."
-#: builtin/merge.c:325
+#: builtin/merge.c:328
msgid "stash failed"
-msgstr ""
+msgstr "esconder falhou"
-#: builtin/merge.c:330
+#: builtin/merge.c:333
#, c-format
msgid "not a valid object: %s"
-msgstr ""
+msgstr "objeto inválido: %s"
-#: builtin/merge.c:352 builtin/merge.c:369
+#: builtin/merge.c:355 builtin/merge.c:372
msgid "read-tree failed"
-msgstr "falha ao executar o comando read-tree"
+msgstr "read-tree falhou"
-#: builtin/merge.c:400
+#: builtin/merge.c:403
msgid "Already up to date. (nothing to squash)"
-msgstr " (nada para esmagar)"
+msgstr "Já está atualizado. (nada para esmagar)"
-#: builtin/merge.c:414
+#: builtin/merge.c:417
#, c-format
msgid "Squash commit -- not updating HEAD\n"
-msgstr "Squash commit -- deixando HEAD por atualizar\n"
+msgstr "Esmagar memória -- deixando HEAD por atualizar\n"
-#: builtin/merge.c:464
+#: builtin/merge.c:467
#, c-format
msgid "No merge message -- not updating HEAD\n"
msgstr "Mensagem de junção nenhuma -- deixando HEAD por atualizar\n"
-#: builtin/merge.c:515
+#: builtin/merge.c:517
#, c-format
msgid "'%s' does not point to a commit"
-msgstr "'%s' aponta para commit nenhum"
+msgstr "'%s' aponta para memória nenhuma"
-#: builtin/merge.c:603
+#: builtin/merge.c:605
#, c-format
msgid "Bad branch.%s.mergeoptions string: %s"
-msgstr "Valor de branch.%s.mergeoptions incorreto: %s"
+msgstr "String de branch.%s.mergeoptions incorreta: %s"
-#: builtin/merge.c:729
+#: builtin/merge.c:732
msgid "Not handling anything other than two heads merge."
msgstr "Lidando nada além da junção de duas heads."
-#: builtin/merge.c:742
+#: builtin/merge.c:745
#, c-format
-msgid "Unknown option for merge-recursive: -X%s"
-msgstr "Opção desconhecida de merge-recursive: -X%s"
+msgid "unknown strategy option: -X%s"
+msgstr "opção de estratégia desconhecida: -X%s"
-#: builtin/merge.c:761 t/helper/test-fast-rebase.c:223
+#: builtin/merge.c:764 t/helper/test-fast-rebase.c:223
#, c-format
msgid "unable to write %s"
msgstr "incapaz escrever %s"
-#: builtin/merge.c:813
+#: builtin/merge.c:816
#, c-format
msgid "Could not read from '%s'"
msgstr "Incapaz ler de '%s'"
-#: builtin/merge.c:822
+#: builtin/merge.c:825
#, c-format
msgid "Not committing merge; use 'git commit' to complete the merge.\n"
-msgstr "Memorizando junção nenhuma; usa 'git commit' para completar a junção.\n"
+msgstr ""
+"Memorizando junção nenhuma; usa 'git commit' para completar a junção.\n"
-#: builtin/merge.c:828
+#: builtin/merge.c:831
msgid ""
"Please enter a commit message to explain why this merge is necessary,\n"
"especially if it merges an updated upstream into a topic branch.\n"
"\n"
msgstr ""
-"Introduza uma mensagem de commit, explicando o porquê desta integração\n"
-"ser necessária, especialmente se é merge de updated stream para topic "
-"branch.\n"
+"Por favor, introduz uma mensagem de memória, explicando porque esta junção\n"
+"é necessária, especialmente se junta um upstream atualizado num ramo-"
+"tópico.\n"
"\n"
-#: builtin/merge.c:833
+#: builtin/merge.c:836
msgid "An empty message aborts the commit.\n"
-msgstr "Uma mensagem vazia aborta o commit.\n"
+msgstr "Uma mensagem vazia aborta a memorização.\n"
-#: builtin/merge.c:836
+#: builtin/merge.c:839
#, c-format
msgid ""
"Lines starting with '%c' will be ignored, and an empty message aborts\n"
"the commit.\n"
msgstr ""
-"Linhas começadas com '%c' são ignoradas, e uma messagem vazia aborta\n"
-"o commit.\n"
+"Linhas começadas com '%c' são ignoradas, e uma mensagem vazia aborta\n"
+"a memorização.\n"
-#: builtin/merge.c:889
+#: builtin/merge.c:900
msgid "Empty commit message."
-msgstr "Mensagem commit vazia."
+msgstr "Mensagem de memória vazia."
-#: builtin/merge.c:904
+#: builtin/merge.c:915
#, c-format
msgid "Wonderful.\n"
msgstr "Maravilhoso.\n"
-#: builtin/merge.c:965
+#: builtin/merge.c:976
#, c-format
msgid "Automatic merge failed; fix conflicts and then commit the result.\n"
msgstr ""
-"Merge automático falhou; resolve os conflitos e depois podes commitar o "
-"resultado.\n"
+"Junção automática falhou; conserta os conflitos e depois podes memorizar\n"
+"o resultado.\n"
-#: builtin/merge.c:1004
+#: builtin/merge.c:1015
msgid "No current branch."
msgstr "Nenhum ramo atual."
-#: builtin/merge.c:1006
+#: builtin/merge.c:1017
msgid "No remote for the current branch."
-msgstr "Ŕamo atual de remoto nenhum."
+msgstr "Remoto nenhum para ramo atual."
-#: builtin/merge.c:1008
+#: builtin/merge.c:1019
msgid "No default upstream defined for the current branch."
-msgstr "Ramo atual sem upstream default definido."
+msgstr "Ramo atual sem predefinição de upstream definida."
-#: builtin/merge.c:1013
+#: builtin/merge.c:1024
#, c-format
msgid "No remote-tracking branch for %s from %s"
-msgstr "Nenhum ramo de monitorização remoto seguido por %s de %s"
+msgstr "Nenhum ramo de monitorização remoto para %s de %s"
-#: builtin/merge.c:1070
+#: builtin/merge.c:1081
#, c-format
msgid "Bad value '%s' in environment '%s'"
msgstr "Valor '%s' incorreto no ambiente '%s'"
-#: builtin/merge.c:1173
+#: builtin/merge.c:1183
#, c-format
msgid "not something we can merge in %s: %s"
msgstr "podemos juntar em %s nenhum(a): %s"
-#: builtin/merge.c:1207
+#: builtin/merge.c:1217
msgid "not something we can merge"
msgstr "podemos juntar nada"
-#: builtin/merge.c:1317
+#: builtin/merge.c:1330
msgid "--abort expects no arguments"
msgstr "--abort espera argumento nenhum"
-#: builtin/merge.c:1321
+#: builtin/merge.c:1334
msgid "There is no merge to abort (MERGE_HEAD missing)."
msgstr "Há junção nenhuma para abortar (MERGE_HEAD faltando)."
-#: builtin/merge.c:1339
+#: builtin/merge.c:1352
msgid "--quit expects no arguments"
msgstr "--quit espera argumento nenhum"
-#: builtin/merge.c:1352
+#: builtin/merge.c:1365
msgid "--continue expects no arguments"
msgstr "--continue espera argumento nenhum"
-#: builtin/merge.c:1356
+#: builtin/merge.c:1369
msgid "There is no merge in progress (MERGE_HEAD missing)."
msgstr "Há junção nenhuma em curso (MERGE_HEAD faltando)."
-#: builtin/merge.c:1372
+#: builtin/merge.c:1385
msgid ""
"You have not concluded your merge (MERGE_HEAD exists).\n"
"Please, commit your changes before you merge."
msgstr ""
"Junção está por concluir (MERGE_HEAD existe).\n"
-"Por favor, faz commit das tuas alterações antes de juntar."
+"Por favor, memoriza tuas alterações antes de juntar."
-#: builtin/merge.c:1379
+#: builtin/merge.c:1392
msgid ""
"You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists).\n"
"Please, commit your changes before you merge."
msgstr ""
-"Cherry-pick por concluir (existe CHERRY_PICK_HEAD).\n"
-"Por favor, memorize suas alterações antes de juntar."
+"Apanha por concluir (existe CHERRY_PICK_HEAD).\n"
+"Por favor, memoriza tuas alterações antes de juntares."
-#: builtin/merge.c:1382
+#: builtin/merge.c:1395
msgid "You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists)."
-msgstr "Cherry-pick por concluir (existe CHERRY_PICK_HEAD)."
-
-#: builtin/merge.c:1396
-msgid "You cannot combine --squash with --no-ff."
-msgstr "Impossível combinar --squash com --no-ff."
-
-#: builtin/merge.c:1398
-msgid "You cannot combine --squash with --commit."
-msgstr "Impossível combinar --squash com --commit."
+msgstr "Apanha por concluir (existe CHERRY_PICK_HEAD)."
-#: builtin/merge.c:1414
+#: builtin/merge.c:1427
msgid "No commit specified and merge.defaultToUpstream not set."
-msgstr "Especificado commit nenhum e merge.defaultToUpstream indefinido."
+msgstr "Especificada memória nenhuma e merge.defaultToUpstream indefinido."
-#: builtin/merge.c:1431
+#: builtin/merge.c:1444
msgid "Squash commit into empty head not supported yet"
-msgstr "Esmagar commit para uma cabeça vazia por enquanto tem suporte nenhum"
+msgstr "Esmagar memória para uma cabeça vazia por enquanto é insustentado"
-#: builtin/merge.c:1433
+#: builtin/merge.c:1446
msgid "Non-fast-forward commit does not make sense into an empty head"
-msgstr "Non-fast-forward commit para uma cabeça vazia faz sentido nenhum"
+msgstr ""
+"Memorização diferente de avanço para uma cabeça vazia faz sentido nenhum"
-#: builtin/merge.c:1438
+#: builtin/merge.c:1451
#, c-format
msgid "%s - not something we can merge"
msgstr "%s - nada que se pode juntar"
-#: builtin/merge.c:1440
+#: builtin/merge.c:1453
msgid "Can merge only exactly one commit into empty head"
-msgstr "Só se pode integrar exatamente um commit numa cabeça vazia"
+msgstr "Podendo apenas juntar exatamente uma memória para uma cabeça vazia"
-#: builtin/merge.c:1521
+#: builtin/merge.c:1540
msgid "refusing to merge unrelated histories"
msgstr "recusando juntar históricos diferentes"
-#: builtin/merge.c:1540
+#: builtin/merge.c:1559
#, c-format
msgid "Updating %s..%s\n"
msgstr "Atualizando %s..%s\n"
-#: builtin/merge.c:1587
+#: builtin/merge.c:1606
#, c-format
msgid "Trying really trivial in-index merge...\n"
-msgstr "A tentar integração mesmo trivial no interior do índice...\n"
+msgstr "Tentando junção mesmo trivial no interior de cenário...\n"
-#: builtin/merge.c:1594
+#: builtin/merge.c:1613
#, c-format
msgid "Nope.\n"
-msgstr "Nada.\n"
+msgstr "Népia.\n"
-#: builtin/merge.c:1625
-msgid "Not possible to fast-forward, aborting."
-msgstr "Impossível fazer fast-forward, abortando."
-
-#: builtin/merge.c:1653 builtin/merge.c:1719
+#: builtin/merge.c:1671 builtin/merge.c:1737
#, c-format
msgid "Rewinding the tree to pristine...\n"
msgstr "Recuando a árvore para estado pristino...\n"
-#: builtin/merge.c:1657
+#: builtin/merge.c:1675
#, c-format
msgid "Trying merge strategy %s...\n"
msgstr "Tentando estratégia merge %s...\n"
-#: builtin/merge.c:1709
+#: builtin/merge.c:1727
#, c-format
msgid "No merge strategy handled the merge.\n"
msgstr "A junção lidou com estratégia de junção nenhuma.\n"
-#: builtin/merge.c:1711
+#: builtin/merge.c:1729
#, c-format
msgid "Merge with strategy %s failed.\n"
-msgstr "Falha ao integrar com a estratégia %s.\n"
+msgstr "Falhou junção com estratégia %s.\n"
-#: builtin/merge.c:1721
+#: builtin/merge.c:1739
#, c-format
msgid "Using the %s strategy to prepare resolving by hand.\n"
msgstr "Usando estratégia %s para preparar resolução manual.\n"
-#: builtin/merge.c:1735
+#: builtin/merge.c:1753
#, c-format
msgid "Automatic merge went well; stopped before committing as requested\n"
-msgstr "Merge automática correu bem; parei antes de commitar como pedido\n"
-
-#: builtin/mktag.c:10
-msgid "git mktag"
-msgstr ""
+msgstr "Junção automática correu bem; parei antes de memorizar, como pedido\n"
#: builtin/mktag.c:27
#, c-format
msgid "warning: tag input does not pass fsck: %s"
-msgstr "aviso: input de etiqueta falha na verificação fsck: %s"
+msgstr "aviso: entrada de etiqueta falha na verificação fsck: %s"
#: builtin/mktag.c:38
#, c-format
@@ -17853,11 +18653,7 @@ msgstr "etiqueta em entrada padrão referiu-se a objeto inválido"
#: builtin/mktag.c:103 builtin/tag.c:243
msgid "unable to write tag file"
-msgstr "incapaz escrever ficheiro de tag"
-
-#: builtin/mktree.c:66
-msgid "git mktree [-z] [--missing] [--batch]"
-msgstr "git mktree [-z] [--missing] [--batch]"
+msgstr "incapaz escrever ficheiro de etiqueta"
#: builtin/mktree.c:154
msgid "input is NUL terminated"
@@ -17872,44 +18668,55 @@ msgid "allow creation of more than one tree"
msgstr "permitir a criação de mais do que uma árvore"
#: builtin/multi-pack-index.c:10
-msgid "git multi-pack-index [<options>] write [--preferred-pack=<pack>]"
-msgstr "git multi-pack-index [<opções>] write [--preferred-pack=<pacote>]"
+msgid ""
+"git multi-pack-index [<options>] write [--preferred-pack=<pack>][--refs-"
+"snapshot=<path>]"
+msgstr ""
+"git multi-pack-index [<opções>] write [--preferred-pack=<pacote>][--refs-"
+"snapshot=<caminho>]"
-#: builtin/multi-pack-index.c:13
+#: builtin/multi-pack-index.c:14
msgid "git multi-pack-index [<options>] verify"
msgstr "git multi-pack-index [<opções>] verify"
-#: builtin/multi-pack-index.c:16
+#: builtin/multi-pack-index.c:17
msgid "git multi-pack-index [<options>] expire"
msgstr "git multi-pack-index [<opções>] expire"
-#: builtin/multi-pack-index.c:19
+#: builtin/multi-pack-index.c:20
msgid "git multi-pack-index [<options>] repack [--batch-size=<size>]"
msgstr "git multi-pack-index [<opções>] repack [--batch-size=<tamanho>]"
-#: builtin/multi-pack-index.c:54
+#: builtin/multi-pack-index.c:57
msgid "object directory containing set of packfile and pack-index pairs"
msgstr ""
-#: builtin/multi-pack-index.c:69
+#: builtin/multi-pack-index.c:98
msgid "preferred-pack"
msgstr ""
-#: builtin/multi-pack-index.c:70
+#: builtin/multi-pack-index.c:99
msgid "pack for reuse when computing a multi-pack bitmap"
msgstr ""
-#: builtin/multi-pack-index.c:128
+#: builtin/multi-pack-index.c:100
+msgid "write multi-pack bitmap"
+msgstr ""
+
+#: builtin/multi-pack-index.c:105
+msgid "write multi-pack index containing only given indexes"
+msgstr "escrita multi-pack em cenário contendo apenas cenários dados"
+
+#: builtin/multi-pack-index.c:107
+msgid "refs snapshot for selecting bitmap commits"
+msgstr ""
+
+#: builtin/multi-pack-index.c:206
msgid ""
"during repack, collect pack-files of smaller size into a batch that is "
"larger than this size"
msgstr ""
-#: builtin/multi-pack-index.c:179
-#, c-format
-msgid "unrecognized subcommand: %s"
-msgstr "subcomando desconhecido: %s"
-
#: builtin/mv.c:18
msgid "git mv [<options>] <source>... <destination>"
msgstr "git mv [<opções>] <origem>... <destino>"
@@ -17917,7 +18724,7 @@ msgstr "git mv [<opções>] <origem>... <destino>"
#: builtin/mv.c:83
#, c-format
msgid "Directory %s is in index and no submodule?"
-msgstr "A pasta %s está no index porém submódulo nenhum?"
+msgstr "A pasta %s está em cenário porém submódulo nenhum?"
#: builtin/mv.c:85
msgid "Please stage your changes to .gitmodules or stash them to proceed"
@@ -17937,119 +18744,123 @@ msgstr "forçar mover/renomear mesmo se destino existir"
msgid "skip move/rename errors"
msgstr "ignorar erros de mover/renomear"
-#: builtin/mv.c:170
+#: builtin/mv.c:172
#, c-format
msgid "destination '%s' is not a directory"
msgstr "destino '%s' é pasta nenhuma"
-#: builtin/mv.c:181
+#: builtin/mv.c:184
#, c-format
msgid "Checking rename of '%s' to '%s'\n"
msgstr "Verificando renomeação de '%s' para '%s'\n"
-#: builtin/mv.c:185
+#: builtin/mv.c:190
msgid "bad source"
msgstr "origem incorreta"
-#: builtin/mv.c:188
+#: builtin/mv.c:193
msgid "can not move directory into itself"
msgstr "incapaz mover pasta para si mesma"
-#: builtin/mv.c:191
+#: builtin/mv.c:196
msgid "cannot move directory over file"
msgstr "incapaz mover pasta para um ficheiro"
-#: builtin/mv.c:200
+#: builtin/mv.c:205
msgid "source directory is empty"
msgstr "pasta de origem está vazia"
-#: builtin/mv.c:225
+#: builtin/mv.c:231
msgid "not under version control"
msgstr ""
-#: builtin/mv.c:227
+#: builtin/mv.c:233
msgid "conflicted"
-msgstr ""
+msgstr "conflituoso"
-#: builtin/mv.c:230
+#: builtin/mv.c:236
msgid "destination exists"
msgstr "o destino já existe"
-#: builtin/mv.c:238
+#: builtin/mv.c:244
#, c-format
msgid "overwriting '%s'"
msgstr "a substituir '%s'"
-#: builtin/mv.c:241
+#: builtin/mv.c:247
msgid "Cannot overwrite"
msgstr "Incapaz subscrever"
-#: builtin/mv.c:244
+#: builtin/mv.c:250
msgid "multiple sources for the same target"
msgstr "múltiplas origens para o mesmo destino"
-#: builtin/mv.c:246
+#: builtin/mv.c:252
msgid "destination directory does not exist"
msgstr "pasta de destino é inexistente"
-#: builtin/mv.c:253
+#: builtin/mv.c:280
#, c-format
msgid "%s, source=%s, destination=%s"
msgstr "%s, origem=%s, destino=%s"
-#: builtin/mv.c:274
+#: builtin/mv.c:308
#, c-format
msgid "Renaming %s to %s\n"
msgstr "A mudar de nome de %s para %s\n"
-#: builtin/mv.c:280 builtin/remote.c:785 builtin/repack.c:667
+#: builtin/mv.c:314 builtin/remote.c:812 builtin/repack.c:861
#, c-format
msgid "renaming '%s' failed"
msgstr "renomear '%s' falhou"
-#: builtin/name-rev.c:465
+#: builtin/name-rev.c:524
msgid "git name-rev [<options>] <commit>..."
msgstr "git name-rev [<opções>] <commit>..."
-#: builtin/name-rev.c:466
+#: builtin/name-rev.c:525
msgid "git name-rev [<options>] --all"
msgstr "git name-rev [<opções>] --all"
-#: builtin/name-rev.c:467
-msgid "git name-rev [<options>] --stdin"
-msgstr "git name-rev [<opções>] --stdin"
+#: builtin/name-rev.c:526
+msgid "git name-rev [<options>] --annotate-stdin"
+msgstr "git name-rev [<opções>] --annotate-stdin"
-#: builtin/name-rev.c:524
+#: builtin/name-rev.c:583
msgid "print only ref-based names (no object names)"
msgstr "imprimir apenas nomes baseados em ref (nomes de objeto nenhum)"
-#: builtin/name-rev.c:525
+#: builtin/name-rev.c:584
msgid "only use tags to name the commits"
-msgstr "usar apenas tags para designar commits"
+msgstr "usar apenas etiquetas para designar memórias"
-#: builtin/name-rev.c:527
+#: builtin/name-rev.c:586
msgid "only use refs matching <pattern>"
msgstr "usar apenas refs que correspondam ao <padrão>"
-#: builtin/name-rev.c:529
+#: builtin/name-rev.c:588
msgid "ignore refs matching <pattern>"
msgstr "ignorar refs que correspondam ao <padrão>"
-#: builtin/name-rev.c:531
+#: builtin/name-rev.c:590
msgid "list all commits reachable from all refs"
-msgstr "listar todos os commits alcançáveis a partir de todas as referências"
+msgstr "listar todas as memórias alcançáveis de todas as refs"
-#: builtin/name-rev.c:532
-msgid "read from stdin"
-msgstr "ler da entrada padrão"
+#: builtin/name-rev.c:591
+msgid "deprecated: use annotate-stdin instead"
+msgstr ""
-#: builtin/name-rev.c:533
+#: builtin/name-rev.c:592
+msgid "annotate text from stdin"
+msgstr "anotar texto de entrada padrão"
+
+#: builtin/name-rev.c:593
msgid "allow to print `undefined` names (default)"
msgstr "permitir imprimir nomes 'indefinidos' (predefinição)"
-#: builtin/name-rev.c:539
+#: builtin/name-rev.c:599
msgid "dereference tags in the input (internal use)"
-msgstr "desreferenciar tags na entrada (uso interno)"
+msgstr "desreferenciar etiquetas na entrada (uso interno)"
#: builtin/notes.c:28
msgid "git notes [--ref <notes-ref>] [list [<object>]]"
@@ -18089,14 +18900,6 @@ msgid ""
msgstr ""
"git notes [--ref <notas-ref>] merge [-v | -q] [-s <estratégia>] <notas-ref>"
-#: builtin/notes.c:35
-msgid "git notes merge --commit [-v | -q]"
-msgstr "git notes merge --commit [-v | -q]"
-
-#: builtin/notes.c:36
-msgid "git notes merge --abort [-v | -q]"
-msgstr "git notes merge --abort [-v | -q]"
-
#: builtin/notes.c:37
msgid "git notes [--ref <notes-ref>] remove [<object>...]"
msgstr "git notes [--ref <notas-ref>] remove [<objeto>...]"
@@ -18157,69 +18960,65 @@ msgstr "git notes remove [<objeto>]"
msgid "git notes prune [<options>]"
msgstr "git notes prune [<opções>]"
-#: builtin/notes.c:92
-msgid "git notes get-ref"
-msgstr "git notes get-ref"
-
#: builtin/notes.c:97
msgid "Write/edit the notes for the following object:"
msgstr "Escreva/edite as notas do seguinte objeto:"
-#: builtin/notes.c:150
+#: builtin/notes.c:149
#, c-format
msgid "unable to start 'show' for object '%s'"
msgstr "incapaz iniciar 'show' para objeto '%s'"
-#: builtin/notes.c:154
+#: builtin/notes.c:153
msgid "could not read 'show' output"
msgstr "incapaz ler output de 'show'"
-#: builtin/notes.c:162
+#: builtin/notes.c:161
#, c-format
msgid "failed to finish 'show' for object '%s'"
msgstr "falha ao concluir o comando 'show' sobre o objeto '%s'"
-#: builtin/notes.c:197
+#: builtin/notes.c:194
msgid "please supply the note contents using either -m or -F option"
msgstr "forneça o conteúdo da nota usando a opção -m ou -F"
-#: builtin/notes.c:206
+#: builtin/notes.c:203
msgid "unable to write note object"
msgstr "incapaz escrever para objeto de nota"
-#: builtin/notes.c:208
+#: builtin/notes.c:206
#, c-format
msgid "the note contents have been left in %s"
msgstr "o conteúdo da nota foi colocado em %s"
-#: builtin/notes.c:242 builtin/tag.c:576
+#: builtin/notes.c:240 builtin/tag.c:582
#, c-format
msgid "could not open or read '%s'"
msgstr "incapaz abrir ou ler '%s'"
-#: builtin/notes.c:263 builtin/notes.c:313 builtin/notes.c:315
-#: builtin/notes.c:383 builtin/notes.c:438 builtin/notes.c:526
-#: builtin/notes.c:531 builtin/notes.c:610 builtin/notes.c:672
+#: builtin/notes.c:261 builtin/notes.c:311 builtin/notes.c:313
+#: builtin/notes.c:381 builtin/notes.c:436 builtin/notes.c:524
+#: builtin/notes.c:529 builtin/notes.c:608 builtin/notes.c:670
#, c-format
msgid "failed to resolve '%s' as a valid ref."
msgstr "falhou resolver '%s' como uma ref válida."
-#: builtin/notes.c:265
+#: builtin/notes.c:263
#, c-format
msgid "failed to read object '%s'."
msgstr "falhou ler objeto '%s'."
-#: builtin/notes.c:268
+#: builtin/notes.c:266
#, c-format
msgid "cannot read note data from non-blob object '%s'."
-msgstr "incapaz ler dados de nota, de objeto não-blob '%s'."
+msgstr "incapaz ler dados de nota, de não-objeto-blob '%s'."
-#: builtin/notes.c:309
+#: builtin/notes.c:307
#, c-format
msgid "malformed input line: '%s'."
msgstr "linha de entrada malformada: '%s'."
-#: builtin/notes.c:324
+#: builtin/notes.c:322
#, c-format
msgid "failed to copy notes from '%s' to '%s'"
msgstr "falhou copiar notas de '%s' para '%s'"
@@ -18227,48 +19026,41 @@ msgstr "falhou copiar notas de '%s' para '%s'"
#. TRANSLATORS: the first %s will be replaced by a git
#. notes command: 'add', 'merge', 'remove', etc.
#.
-#: builtin/notes.c:356
+#: builtin/notes.c:354
#, c-format
msgid "refusing to %s notes in %s (outside of refs/notes/)"
msgstr "foi recusado efetuar %s de notas em %s (fora de refs/notes/)"
-#: builtin/notes.c:376 builtin/notes.c:431 builtin/notes.c:509
-#: builtin/notes.c:521 builtin/notes.c:598 builtin/notes.c:665
-#: builtin/notes.c:815 builtin/notes.c:963 builtin/notes.c:985
-#: builtin/prune-packed.c:25 builtin/tag.c:586
-msgid "too many arguments"
-msgstr ""
-
-#: builtin/notes.c:389 builtin/notes.c:678
+#: builtin/notes.c:387 builtin/notes.c:676
#, c-format
msgid "no note found for object %s."
msgstr "Encontrada nota nenhuma para objeto %s."
-#: builtin/notes.c:410 builtin/notes.c:576
+#: builtin/notes.c:408 builtin/notes.c:574
msgid "note contents as a string"
msgstr "conteúdo da nota sob a forma de cadeia de caracteres"
-#: builtin/notes.c:413 builtin/notes.c:579
+#: builtin/notes.c:411 builtin/notes.c:577
msgid "note contents in a file"
msgstr "conteúdo da nota de um ficheiro"
-#: builtin/notes.c:416 builtin/notes.c:582
+#: builtin/notes.c:414 builtin/notes.c:580
msgid "reuse and edit specified note object"
msgstr "reutilizar e editar o objeto de nota especificado"
-#: builtin/notes.c:419 builtin/notes.c:585
+#: builtin/notes.c:417 builtin/notes.c:583
msgid "reuse specified note object"
msgstr "reutilizar objeto de nota especificado"
-#: builtin/notes.c:422 builtin/notes.c:588
+#: builtin/notes.c:420 builtin/notes.c:586
msgid "allow storing empty note"
msgstr "permitir guardar uma nota vazia"
-#: builtin/notes.c:423 builtin/notes.c:496
+#: builtin/notes.c:421 builtin/notes.c:494
msgid "replace existing notes"
msgstr "substituir notas existentes"
-#: builtin/notes.c:448
+#: builtin/notes.c:446
#, c-format
msgid ""
"Cannot add notes. Found existing notes for object %s. Use '-f' to overwrite "
@@ -18277,29 +19069,29 @@ msgstr ""
"Incapaz adicionar notas. Encontrei notas existentes para objeto %s. Usa '-f' "
"para subscrever notas existentes"
-#: builtin/notes.c:463 builtin/notes.c:544
+#: builtin/notes.c:461 builtin/notes.c:542
#, c-format
msgid "Overwriting existing notes for object %s\n"
msgstr "Gravando por cima, notas existentes para objeto %s\n"
-#: builtin/notes.c:475 builtin/notes.c:637 builtin/notes.c:902
+#: builtin/notes.c:473 builtin/notes.c:635 builtin/notes.c:904
#, c-format
msgid "Removing note for object %s\n"
msgstr "Removendo nota para objeto %s\n"
-#: builtin/notes.c:497
+#: builtin/notes.c:495
msgid "read objects from stdin"
msgstr "ler objetos de stdin"
-#: builtin/notes.c:499
+#: builtin/notes.c:497
msgid "load rewriting config for <command> (implies --stdin)"
msgstr "carregar configuração de reescrita do <comando> (implica --stdin)"
-#: builtin/notes.c:517
+#: builtin/notes.c:515
msgid "too few arguments"
msgstr ""
-#: builtin/notes.c:538
+#: builtin/notes.c:536
#, c-format
msgid ""
"Cannot copy notes. Found existing notes for object %s. Use '-f' to overwrite "
@@ -18308,66 +19100,66 @@ msgstr ""
"Incapaz copiar notas. Encontrei Notas existentes para objeto %s. Usa '-f' "
"para subscrever notas existentes"
-#: builtin/notes.c:550
+#: builtin/notes.c:548
#, c-format
msgid "missing notes on source object %s. Cannot copy."
msgstr "faltando notas para objeto fonte %s. Incapaz copiar."
-#: builtin/notes.c:603
+#: builtin/notes.c:601
#, c-format
msgid ""
"The -m/-F/-c/-C options have been deprecated for the 'edit' subcommand.\n"
"Please use 'git notes add -f -m/-F/-c/-C' instead.\n"
msgstr ""
"As opções -m/-F/-c/-C são obsoletas no subcomando 'edit'.\n"
-"Use 'git notes add -f -m/-F/-c/-C' em seu lugar.\n"
+"Use 'git notes add -f -m/-F/-c/-C' invés.\n"
-#: builtin/notes.c:698
+#: builtin/notes.c:696
msgid "failed to delete ref NOTES_MERGE_PARTIAL"
msgstr "falha ao eliminar a referência NOTES_MERGE_PARTIAL"
-#: builtin/notes.c:700
+#: builtin/notes.c:698
msgid "failed to delete ref NOTES_MERGE_REF"
msgstr "falha ao eliminar a referência NOTES_MERGE_REF"
-#: builtin/notes.c:702
+#: builtin/notes.c:700
msgid "failed to remove 'git notes merge' worktree"
-msgstr "falha ao remover a árvore-trabalho de 'git notes merge'"
+msgstr "falha ao remover árvore-trabalho de 'git notes merge'"
-#: builtin/notes.c:722
+#: builtin/notes.c:720
msgid "failed to read ref NOTES_MERGE_PARTIAL"
msgstr "falha ao ler ref NOTES_MERGE_PARTIAL"
-#: builtin/notes.c:724
+#: builtin/notes.c:722
msgid "could not find commit from NOTES_MERGE_PARTIAL."
msgstr "incapaz encontrar memória a partir de NOTES_MERGE_PARTIAL."
-#: builtin/notes.c:726
+#: builtin/notes.c:724
msgid "could not parse commit from NOTES_MERGE_PARTIAL."
msgstr "incapaz processar memória a partir de NOTES_MERGE_PARTIAL."
-#: builtin/notes.c:739
+#: builtin/notes.c:737
msgid "failed to resolve NOTES_MERGE_REF"
msgstr "falha ao resolver NOTES_MERGE_REF"
-#: builtin/notes.c:742
+#: builtin/notes.c:740
msgid "failed to finalize notes merge"
msgstr "falhou finalizar junção de notas"
-#: builtin/notes.c:768
+#: builtin/notes.c:766
#, c-format
msgid "unknown notes merge strategy %s"
-msgstr "estratégia de integração de notas %s desconhecida"
+msgstr "estratégia de junção de notas %s desconhecida"
-#: builtin/notes.c:784
+#: builtin/notes.c:782
msgid "General options"
msgstr "Opções gerais"
-#: builtin/notes.c:786
+#: builtin/notes.c:784
msgid "Merge options"
msgstr "Opções de junção"
-#: builtin/notes.c:788
+#: builtin/notes.c:786
msgid ""
"resolve notes conflicts using the given strategy (manual/ours/theirs/union/"
"cat_sort_uniq)"
@@ -18375,91 +19167,91 @@ msgstr ""
"resolver conflitos nas notas usando a estratégia indicada (manual/ours/"
"theirs/union/cat_sort_uniq)"
-#: builtin/notes.c:790
+#: builtin/notes.c:788
msgid "Committing unmerged notes"
msgstr "Memorizando notas por juntar"
-#: builtin/notes.c:792
+#: builtin/notes.c:790
msgid "finalize notes merge by committing unmerged notes"
-msgstr "concluir junção de notas, memorizando notas por juntar"
+msgstr "finaliza junção de notas, memorizando notas por juntar"
-#: builtin/notes.c:794
+#: builtin/notes.c:792
msgid "Aborting notes merge resolution"
-msgstr "A abortar resolução de integração das notas"
+msgstr "Abortando resolução de junção das notas"
-#: builtin/notes.c:796
+#: builtin/notes.c:794
msgid "abort notes merge"
-msgstr "abortar integração das notas"
+msgstr "abortar junção das notas"
-#: builtin/notes.c:807
+#: builtin/notes.c:805
msgid "cannot mix --commit, --abort or -s/--strategy"
msgstr "incapaz misturar --commit, --abort ou -s/--strategy"
-#: builtin/notes.c:812
+#: builtin/notes.c:810
msgid "must specify a notes ref to merge"
-msgstr "tem de especificar uma referência de notas para integrar"
+msgstr "tens de especificar uma ref de notas para juntar"
-#: builtin/notes.c:836
+#: builtin/notes.c:834
#, c-format
msgid "unknown -s/--strategy: %s"
msgstr "-s/--strategy desconhecida: %s"
-#: builtin/notes.c:873
+#: builtin/notes.c:874
#, c-format
msgid "a notes merge into %s is already in-progress at %s"
-msgstr "uma integração das notas em %s já está em curso em %s"
+msgstr "uma junção das notas para %s já está em curso em %s"
-#: builtin/notes.c:876
+#: builtin/notes.c:878
#, c-format
msgid "failed to store link to current notes ref (%s)"
msgstr "falhou ao guardar ligação à ref de notas atual (%s)"
-#: builtin/notes.c:878
+#: builtin/notes.c:880
#, c-format
msgid ""
"Automatic notes merge failed. Fix conflicts in %s and commit the result with "
"'git notes merge --commit', or abort the merge with 'git notes merge --"
"abort'.\n"
msgstr ""
-"A integração automática de notas falhou. Corrija os conflitos em %s e "
-"submeta o resultado com 'git notes merge --commit' ou aborte a integração "
-"com 'git notes merge --abort'.\n"
+"Junção automática de notas falhou. Conserta os conflitos em %s e memoriza o "
+"resultado com 'git notes merge --commit', ou aborta a junção com 'git notes "
+"merge --abort'.\n"
-#: builtin/notes.c:897 builtin/tag.c:589
+#: builtin/notes.c:899 builtin/tag.c:595
#, c-format
msgid "Failed to resolve '%s' as a valid ref."
msgstr "Falha ao resolver '%s' numa referência válida."
-#: builtin/notes.c:900
+#: builtin/notes.c:902
#, c-format
msgid "Object %s has no note\n"
msgstr "O objeto %s tem nota nenhuma\n"
-#: builtin/notes.c:912
+#: builtin/notes.c:914
msgid "attempt to remove non-existent note is not an error"
msgstr "apenas é erro se remover nota existente"
-#: builtin/notes.c:915
+#: builtin/notes.c:917
msgid "read object names from the standard input"
msgstr "ler nome dos objetos da entrada padrão"
-#: builtin/notes.c:954 builtin/prune.c:132 builtin/worktree.c:146
+#: builtin/notes.c:956 builtin/prune.c:144 builtin/worktree.c:148
msgid "do not remove, show only"
msgstr "remover nada, apenas mostrar"
-#: builtin/notes.c:955
+#: builtin/notes.c:957
msgid "report pruned notes"
msgstr "reportar notas podadas"
-#: builtin/notes.c:998
+#: builtin/notes.c:1000
msgid "notes-ref"
msgstr "notes-ref"
-#: builtin/notes.c:999
+#: builtin/notes.c:1001
msgid "use notes from <notes-ref>"
msgstr "usar notas de <notes-ref>"
-#: builtin/notes.c:1034 builtin/stash.c:1735
+#: builtin/notes.c:1036 builtin/stash.c:1802
#, c-format
msgid "unknown subcommand: %s"
msgstr "subcomando desconhecido: %s"
@@ -18478,397 +19270,393 @@ msgstr ""
"git pack-objects [<opções>...] <nome-base> [< <lista-referências> | < <lista-"
"objetos>]"
-#: builtin/pack-objects.c:572
+#: builtin/pack-objects.c:570
#, c-format
msgid ""
"write_reuse_object: could not locate %s, expected at offset %<PRIuMAX> in "
"pack %s"
msgstr ""
-#: builtin/pack-objects.c:580
+#: builtin/pack-objects.c:578
#, c-format
msgid "bad packed object CRC for %s"
msgstr ""
-#: builtin/pack-objects.c:591
+#: builtin/pack-objects.c:589
#, c-format
msgid "corrupt packed object for %s"
msgstr ""
-#: builtin/pack-objects.c:722
+#: builtin/pack-objects.c:720
#, c-format
msgid "recursive delta detected for object %s"
msgstr "delta recursivo detetado para objeto %s"
-#: builtin/pack-objects.c:941
+#: builtin/pack-objects.c:939
#, c-format
msgid "ordered %u objects, expected %<PRIu32>"
msgstr ""
-#: builtin/pack-objects.c:1036
+#: builtin/pack-objects.c:1034
#, c-format
msgid "expected object at offset %<PRIuMAX> in pack %s"
msgstr "esperado objeto no offset %<PRIuMAX> em pacote %s"
-#: builtin/pack-objects.c:1155
+#: builtin/pack-objects.c:1158
msgid "disabling bitmap writing, packs are split due to pack.packSizeLimit"
msgstr ""
"a desativar escrita de mapa de bits, os pacotes são divididos devido a pack."
"packSizeLimit"
-#: builtin/pack-objects.c:1168
+#: builtin/pack-objects.c:1171
msgid "Writing objects"
msgstr ""
-#: builtin/pack-objects.c:1229 builtin/update-index.c:90
+#: builtin/pack-objects.c:1243 builtin/update-index.c:90
#, c-format
msgid "failed to stat %s"
msgstr "falhou stat a %s"
-#: builtin/pack-objects.c:1281
+#: builtin/pack-objects.c:1276
+msgid "failed to write bitmap index"
+msgstr "falhou escrever índice de bitmap"
+
+#: builtin/pack-objects.c:1302
#, c-format
msgid "wrote %<PRIu32> objects while expecting %<PRIu32>"
msgstr ""
-#: builtin/pack-objects.c:1523
+#: builtin/pack-objects.c:1544
msgid "disabling bitmap writing, as some objects are not being packed"
msgstr ""
"desativando escrita bitmap, visto a incapacidade de alguns objetos serem "
"compactados"
-#: builtin/pack-objects.c:1971
+#: builtin/pack-objects.c:1992
#, c-format
msgid "delta base offset overflow in pack for %s"
msgstr ""
-#: builtin/pack-objects.c:1980
+#: builtin/pack-objects.c:2001
#, c-format
msgid "delta base offset out of bound for %s"
msgstr "offset de base delta está fora do limite para %s"
-#: builtin/pack-objects.c:2261
+#: builtin/pack-objects.c:2282
msgid "Counting objects"
msgstr "A contar objetos"
-#: builtin/pack-objects.c:2426
+#: builtin/pack-objects.c:2447
#, c-format
msgid "unable to parse object header of %s"
msgstr "incapaz processar cabeçalho de objeto de %s"
-#: builtin/pack-objects.c:2496 builtin/pack-objects.c:2512
-#: builtin/pack-objects.c:2522
+#: builtin/pack-objects.c:2517 builtin/pack-objects.c:2533
+#: builtin/pack-objects.c:2543
#, c-format
msgid "object %s cannot be read"
msgstr "objeto %s incapaz ser lido"
-#: builtin/pack-objects.c:2499 builtin/pack-objects.c:2526
+#: builtin/pack-objects.c:2520 builtin/pack-objects.c:2547
#, c-format
msgid "object %s inconsistent object length (%<PRIuMAX> vs %<PRIuMAX>)"
msgstr ""
-#: builtin/pack-objects.c:2536
+#: builtin/pack-objects.c:2557
msgid "suboptimal pack - out of memory"
msgstr ""
-#: builtin/pack-objects.c:2851
+#: builtin/pack-objects.c:2872
#, c-format
msgid "Delta compression using up to %d threads"
msgstr ""
-#: builtin/pack-objects.c:2990
+#: builtin/pack-objects.c:3011
#, c-format
msgid "unable to pack objects reachable from tag %s"
msgstr "incapaz de empacotar objetos alcançáveis a partir de etiqueta %s"
-#: builtin/pack-objects.c:3076
+#: builtin/pack-objects.c:3097
msgid "Compressing objects"
msgstr "Comprimindo objetos"
-#: builtin/pack-objects.c:3082
+#: builtin/pack-objects.c:3103
msgid "inconsistency with delta count"
msgstr ""
-#: builtin/pack-objects.c:3161
+#: builtin/pack-objects.c:3182
#, c-format
msgid ""
"value of uploadpack.blobpackfileuri must be of the form '<object-hash> <pack-"
"hash> <uri>' (got '%s')"
msgstr ""
-#: builtin/pack-objects.c:3164
+#: builtin/pack-objects.c:3185
#, c-format
msgid ""
"object already configured in another uploadpack.blobpackfileuri (got '%s')"
msgstr ""
-#: builtin/pack-objects.c:3199
+#: builtin/pack-objects.c:3220
#, c-format
msgid "could not get type of object %s in pack %s"
msgstr "incapaz obter tipo de objeto %s em pacote %s"
-#: builtin/pack-objects.c:3321 builtin/pack-objects.c:3335
+#: builtin/pack-objects.c:3348 builtin/pack-objects.c:3359
+#: builtin/pack-objects.c:3373
#, c-format
msgid "could not find pack '%s'"
msgstr "incapaz encontrar pacote '%s'"
-#: builtin/pack-objects.c:3378
+#: builtin/pack-objects.c:3416
#, c-format
msgid ""
"expected edge object ID, got garbage:\n"
" %s"
msgstr ""
-#: builtin/pack-objects.c:3384
+#: builtin/pack-objects.c:3422
#, c-format
msgid ""
"expected object ID, got garbage:\n"
" %s"
msgstr ""
-#: builtin/pack-objects.c:3482
-msgid "invalid value for --missing"
-msgstr ""
-
-#: builtin/pack-objects.c:3541 builtin/pack-objects.c:3650
+#: builtin/pack-objects.c:3540 builtin/pack-objects.c:3627
msgid "cannot open pack index"
-msgstr "incapaz abrir index pack"
+msgstr "incapaz abrir índice de pacote"
-#: builtin/pack-objects.c:3572
+#: builtin/pack-objects.c:3549
#, c-format
msgid "loose object at %s could not be examined"
msgstr ""
-#: builtin/pack-objects.c:3658
+#: builtin/pack-objects.c:3635
msgid "unable to force loose object"
msgstr "incapaz forçar objeto solto"
-#: builtin/pack-objects.c:3788
+#: builtin/pack-objects.c:3763
#, c-format
msgid "not a rev '%s'"
msgstr "rev '%s' nenhum"
-#: builtin/pack-objects.c:3791 builtin/rev-parse.c:1061
+#: builtin/pack-objects.c:3766 builtin/rev-parse.c:1061
#, c-format
msgid "bad revision '%s'"
msgstr "revisão '%s' incorreto"
-#: builtin/pack-objects.c:3819
+#: builtin/pack-objects.c:3794
msgid "unable to add recent objects"
msgstr "incapaz adicionar objetos recentes"
-#: builtin/pack-objects.c:3872
+#: builtin/pack-objects.c:3847
#, c-format
msgid "unsupported index version %s"
-msgstr "versão de index %s insustentada"
+msgstr "versão de cenário %s insustentada"
-#: builtin/pack-objects.c:3876
+#: builtin/pack-objects.c:3851
#, c-format
msgid "bad index version '%s'"
msgstr "versão de cenário '%s' inválida"
-#: builtin/pack-objects.c:3915
+#: builtin/pack-objects.c:3907
msgid "<version>[,<offset>]"
msgstr "versão[,offset]"
-#: builtin/pack-objects.c:3916
+#: builtin/pack-objects.c:3908
msgid "write the pack index file in the specified idx format version"
msgstr ""
"escrever o ficheiro de índice do pacote na versão de formato especificada"
-#: builtin/pack-objects.c:3919
+#: builtin/pack-objects.c:3911
msgid "maximum size of each output pack file"
msgstr "tamanho máximo de cada saída de ficheiro-pacote"
-#: builtin/pack-objects.c:3921
+#: builtin/pack-objects.c:3913
msgid "ignore borrowed objects from alternate object store"
-msgstr "ignorar objetos emprestados do arquivo de objetos sobressalentes"
+msgstr "ignorar objetos emprestados do arquivo de objetos alternativos"
-#: builtin/pack-objects.c:3923
+#: builtin/pack-objects.c:3915
msgid "ignore packed objects"
msgstr ""
-#: builtin/pack-objects.c:3925
+#: builtin/pack-objects.c:3917
msgid "limit pack window by objects"
msgstr "limitar a janela de compactação por objetos"
-#: builtin/pack-objects.c:3927
+#: builtin/pack-objects.c:3919
msgid "limit pack window by memory in addition to object limit"
msgstr ""
"limitar a janela de compactação por memória em adição ao limite por objetos"
-#: builtin/pack-objects.c:3929
+#: builtin/pack-objects.c:3921
msgid "maximum length of delta chain allowed in the resulting pack"
-msgstr "tamanho máximo de cadeias delta permitidas no pacote resultante"
+msgstr "tamanho máximo de série delta permitido no pacote resultante"
-#: builtin/pack-objects.c:3931
+#: builtin/pack-objects.c:3923
msgid "reuse existing deltas"
msgstr "reutilizar deltas existentes"
-#: builtin/pack-objects.c:3933
+#: builtin/pack-objects.c:3925
msgid "reuse existing objects"
msgstr "reutilizar objetos existentes"
-#: builtin/pack-objects.c:3935
+#: builtin/pack-objects.c:3927
msgid "use OFS_DELTA objects"
msgstr "usar objetos OFS_DELTA"
-#: builtin/pack-objects.c:3937
+#: builtin/pack-objects.c:3929
msgid "use threads when searching for best delta matches"
msgstr "usar threads ao procurar pela melhor correspondência delta"
-#: builtin/pack-objects.c:3939
+#: builtin/pack-objects.c:3931
msgid "do not create an empty pack output"
msgstr "criar output de pack vazio nenhum"
-#: builtin/pack-objects.c:3941
+#: builtin/pack-objects.c:3933
msgid "read revision arguments from standard input"
msgstr "ler argumentos de revisão da entrada padrão"
-#: builtin/pack-objects.c:3943
+#: builtin/pack-objects.c:3935
msgid "limit the objects to those that are not yet packed"
msgstr "restringir-se aos objetos que ainda estão por compactar"
-#: builtin/pack-objects.c:3946
+#: builtin/pack-objects.c:3938
msgid "include objects reachable from any reference"
msgstr "incluir objetos alcançáveis a partir de qualquer referência"
-#: builtin/pack-objects.c:3949
+#: builtin/pack-objects.c:3941
msgid "include objects referred by reflog entries"
msgstr "incluir objetos referenciados por entradas do reflog"
-#: builtin/pack-objects.c:3952
+#: builtin/pack-objects.c:3944
msgid "include objects referred to by the index"
-msgstr "incluir objetos referenciados pelo índice"
+msgstr "incluir objetos referenciados pelo cenário"
-#: builtin/pack-objects.c:3955
+#: builtin/pack-objects.c:3947
msgid "read packs from stdin"
msgstr ""
-#: builtin/pack-objects.c:3957
+#: builtin/pack-objects.c:3949
msgid "output pack to stdout"
msgstr "gerar pacote para a saída padrão"
-#: builtin/pack-objects.c:3959
+#: builtin/pack-objects.c:3951
msgid "include tag objects that refer to objects to be packed"
-msgstr "incluir objetos tag que refiram objetos a compactar"
+msgstr "incluir objetos-etiqueta que refiram objetos a empacotar"
-#: builtin/pack-objects.c:3961
+#: builtin/pack-objects.c:3953
msgid "keep unreachable objects"
msgstr "manter objetos inalcançáveis"
-#: builtin/pack-objects.c:3963
+#: builtin/pack-objects.c:3955
msgid "pack loose unreachable objects"
msgstr "empacotar objetos soltos inalcançáveis"
-#: builtin/pack-objects.c:3965
+#: builtin/pack-objects.c:3957
msgid "unpack unreachable objects newer than <time>"
msgstr "descompactar objetos inalcançáveis mais recentes que <tempo>"
-#: builtin/pack-objects.c:3968
+#: builtin/pack-objects.c:3960
msgid "use the sparse reachability algorithm"
msgstr ""
-#: builtin/pack-objects.c:3970
+#: builtin/pack-objects.c:3962
msgid "create thin packs"
msgstr "criar pacotes finos"
-#: builtin/pack-objects.c:3972
+#: builtin/pack-objects.c:3964
msgid "create packs suitable for shallow fetches"
-msgstr "criar pacotes adequados para obter em repositórios pouco profundos"
+msgstr "criar pacotes adequados para buscas superficiais"
-#: builtin/pack-objects.c:3974
+#: builtin/pack-objects.c:3966
msgid "ignore packs that have companion .keep file"
msgstr "ignorar pacotes que tenham um ficheiro .keep"
-#: builtin/pack-objects.c:3976
+#: builtin/pack-objects.c:3968
msgid "ignore this pack"
msgstr "ignorar este pacote"
-#: builtin/pack-objects.c:3978
+#: builtin/pack-objects.c:3970
msgid "pack compression level"
msgstr "nível de compressão de pacote"
-#: builtin/pack-objects.c:3980
+#: builtin/pack-objects.c:3972
msgid "do not hide commits by grafts"
-msgstr "esconder commits por enxertos nenhuns"
+msgstr "esconder nenhumas memórias por enxertos"
-#: builtin/pack-objects.c:3982
+#: builtin/pack-objects.c:3974
msgid "use a bitmap index if available to speed up counting objects"
msgstr ""
-"usar um índice de mapa de bits se disponível, para acelerar a contagem de "
-"objetos"
+"usar um índice de bitmap se disponível, para acelerar a contagem de objetos"
-#: builtin/pack-objects.c:3984
+#: builtin/pack-objects.c:3976
msgid "write a bitmap index together with the pack index"
-msgstr "escrever um índice de mapa de bits juntamente com o índice do pacote"
+msgstr "escrever um índice de bitmap juntamente com o índice do pacote"
-#: builtin/pack-objects.c:3988
+#: builtin/pack-objects.c:3980
msgid "write a bitmap index if possible"
-msgstr "escrever um index de bitmap se possível"
+msgstr "escrever um índice de bitmap se possível"
-#: builtin/pack-objects.c:3992
+#: builtin/pack-objects.c:3984
msgid "handling for missing objects"
msgstr "lidando para objetos que faltem"
-#: builtin/pack-objects.c:3995
+#: builtin/pack-objects.c:3987
msgid "do not pack objects in promisor packfiles"
msgstr ""
-#: builtin/pack-objects.c:3997
+#: builtin/pack-objects.c:3989
msgid "respect islands during delta compression"
msgstr "respeitar ilhas durante compressão de delta"
-#: builtin/pack-objects.c:3999
+#: builtin/pack-objects.c:3991
msgid "protocol"
msgstr ""
-#: builtin/pack-objects.c:4000
+#: builtin/pack-objects.c:3992
msgid "exclude any configured uploadpack.blobpackfileuri with this protocol"
msgstr ""
-#: builtin/pack-objects.c:4033
+#: builtin/pack-objects.c:4027
#, c-format
msgid "delta chain depth %d is too deep, forcing %d"
-msgstr ""
+msgstr "profundidade de série delta %d é demasiado profunda, forçando %d"
-#: builtin/pack-objects.c:4038
+#: builtin/pack-objects.c:4032
#, c-format
msgid "pack.deltaCacheLimit is too high, forcing %d"
msgstr ""
-#: builtin/pack-objects.c:4094
+#: builtin/pack-objects.c:4088
msgid "--max-pack-size cannot be used to build a pack for transfer"
msgstr ""
-#: builtin/pack-objects.c:4096
+#: builtin/pack-objects.c:4090
msgid "minimum pack size limit is 1 MiB"
msgstr ""
-#: builtin/pack-objects.c:4101
+#: builtin/pack-objects.c:4095
msgid "--thin cannot be used to build an indexable pack"
msgstr "incapaz usar --thin para construir pacote indexável"
#: builtin/pack-objects.c:4104
-msgid "--keep-unreachable and --unpack-unreachable are incompatible"
-msgstr "--keep-unreachable e --unpack-unreachable são incompatíveis"
-
-#: builtin/pack-objects.c:4110
msgid "cannot use --filter without --stdout"
msgstr "apenas podes usar --filter com --stdout"
-#: builtin/pack-objects.c:4112
+#: builtin/pack-objects.c:4106
msgid "cannot use --filter with --stdin-packs"
msgstr "incapaz usar --filter com --stdin-packs"
-#: builtin/pack-objects.c:4116
+#: builtin/pack-objects.c:4110
msgid "cannot use internal rev list with --stdin-packs"
msgstr ""
-#: builtin/pack-objects.c:4175
+#: builtin/pack-objects.c:4169
msgid "Enumerating objects"
msgstr ""
-#: builtin/pack-objects.c:4212
+#: builtin/pack-objects.c:4210
#, c-format
msgid ""
"Total %<PRIu32> (delta %<PRIu32>), reused %<PRIu32> (delta %<PRIu32>), pack-"
@@ -18896,88 +19684,78 @@ msgstr "compactar tudo"
msgid "prune loose refs (default)"
msgstr "podar refs soltas (predefinição)"
-#: builtin/prune-packed.c:6
-msgid "git prune-packed [-n | --dry-run] [-q | --quiet]"
-msgstr "git prune-packed [-n | --dry-run] [-q | --quiet]"
-
#: builtin/prune.c:14
msgid "git prune [-n] [-v] [--progress] [--expire <time>] [--] [<head>...]"
msgstr "git prune [-n] [-v] [--progress] [--expire <tempo>] [--] [<cabeça>...]"
-#: builtin/prune.c:133
+#: builtin/prune.c:145
msgid "report pruned objects"
msgstr "apresentar objetos eliminados"
-#: builtin/prune.c:136
+#: builtin/prune.c:148
msgid "expire objects older than <time>"
msgstr "expirar objetos mais velhos que <tempo>"
-#: builtin/prune.c:138
+#: builtin/prune.c:150
msgid "limit traversal to objects outside promisor packfiles"
msgstr ""
-#: builtin/prune.c:152
+#: builtin/prune.c:163
msgid "cannot prune in a precious-objects repo"
msgstr "incapaz podar num repo de precious-objects"
-#: builtin/pull.c:45 builtin/pull.c:47
-#, c-format
-msgid "Invalid value for %s: %s"
-msgstr "Valor inválido de %s: %s"
-
#: builtin/pull.c:67
msgid "git pull [<options>] [<repository> [<refspec>...]]"
msgstr "git pull [<opções>] [<repositório> [<espetro-ref>...]]"
-#: builtin/pull.c:123
+#: builtin/pull.c:124
msgid "control for recursive fetching of submodules"
msgstr "controlo para buscar recursivo de submódulos"
-#: builtin/pull.c:127
+#: builtin/pull.c:128
msgid "Options related to merging"
-msgstr "Opções relativas a integração"
+msgstr "Opções relativas a fazer junção"
-#: builtin/pull.c:130
+#: builtin/pull.c:131
msgid "incorporate changes by rebasing rather than merging"
-msgstr "incorporar alterações por rebase em vez de integrar"
+msgstr "incorporar alterações fazendo rebase em vez de junção"
-#: builtin/pull.c:158 builtin/rebase.c:491 builtin/revert.c:126
+#: builtin/pull.c:159 builtin/revert.c:126
msgid "allow fast-forward"
-msgstr "permitir avanço rápido"
+msgstr "permitir avanço"
+
+#: builtin/pull.c:165
+msgid "control use of pre-merge-commit and commit-msg hooks"
+msgstr "uso controlado de ganchos pre-merge-commit e commit-msg"
-#: builtin/pull.c:167 parse-options.h:340
+#: builtin/pull.c:171 parse-options.h:371
msgid "automatically stash/stash pop before and after"
-msgstr "empilhar/desempilhar automaticamente antes de depois de rebase"
+msgstr "fazer stash/stash pop automaticamente antes e depois de"
-#: builtin/pull.c:183
+#: builtin/pull.c:187
msgid "Options related to fetching"
-msgstr "Opções relacionadas com obtenção de objetos"
+msgstr "Opções relacionadas com buscas"
-#: builtin/pull.c:193
+#: builtin/pull.c:197
msgid "force overwrite of local branch"
msgstr "forçar sobrescrever ramo local"
-#: builtin/pull.c:201
+#: builtin/pull.c:205
msgid "number of submodules pulled in parallel"
msgstr "número de submódulos com pull em paralelo"
-#: builtin/pull.c:317
-#, c-format
-msgid "Invalid value for pull.ff: %s"
-msgstr "Valor inválido de pull.ff: %s"
-
-#: builtin/pull.c:445
+#: builtin/pull.c:449
msgid ""
"There is no candidate for rebasing against among the refs that you just "
"fetched."
msgstr "As refs que obteste tem candidato nenhum para onde rebasear."
-#: builtin/pull.c:447
+#: builtin/pull.c:451
msgid ""
"There are no candidates for merging among the refs that you just fetched."
msgstr "As refs que obteste tem candidato nenhum para junção."
-#: builtin/pull.c:448
+#: builtin/pull.c:452
msgid ""
"Generally this means that you provided a wildcard refspec which had no\n"
"matches on the remote end."
@@ -18985,7 +19763,7 @@ msgstr ""
"Normalmente isto significa que forneceste um wildcard especificador de ref\n"
"que tem correspondência nenhuma no lado do remoto."
-#: builtin/pull.c:451
+#: builtin/pull.c:455
#, c-format
msgid ""
"You asked to pull from the remote '%s', but did not specify\n"
@@ -18994,69 +19772,70 @@ msgid ""
msgstr ""
"Pediste para agarrar remoto '%s', mas falta especificar um ramo.\n"
"Visto que o remoto configurado como predefinido para o ramo atual é\n"
-"outro, deves de especificar um ramo na linha de comandos."
+"outro, tens de especificar um ramo na linha de comandos."
-#: builtin/pull.c:456 builtin/rebase.c:1248
+#: builtin/pull.c:460 builtin/rebase.c:978
msgid "You are not currently on a branch."
msgstr "Atualmente estás em ramo nenhum."
-#: builtin/pull.c:458 builtin/pull.c:473
+#: builtin/pull.c:462 builtin/pull.c:477
msgid "Please specify which branch you want to rebase against."
msgstr "Especifique o ramo sobre o qual pretende realizar rebase."
-#: builtin/pull.c:460 builtin/pull.c:475
+#: builtin/pull.c:464 builtin/pull.c:479
msgid "Please specify which branch you want to merge with."
-msgstr "Especifique o ramo com o qual pretende integrar."
+msgstr "Por favor especifica para qual ramo queres juntar."
-#: builtin/pull.c:461 builtin/pull.c:476
+#: builtin/pull.c:465 builtin/pull.c:480
msgid "See git-pull(1) for details."
msgstr "Vê git-pull(1) para detalhes."
-#: builtin/pull.c:463 builtin/pull.c:469 builtin/pull.c:478
-#: builtin/rebase.c:1254
+#: builtin/pull.c:467 builtin/pull.c:473 builtin/pull.c:482
+#: builtin/rebase.c:984
msgid "<remote>"
msgstr "<remoto>"
-#: builtin/pull.c:463 builtin/pull.c:478 builtin/pull.c:483
+#: builtin/pull.c:467 builtin/pull.c:482 builtin/pull.c:487
+#: contrib/scalar/scalar.c:374
msgid "<branch>"
msgstr "<ramo>"
-#: builtin/pull.c:471 builtin/rebase.c:1246
+#: builtin/pull.c:475 builtin/rebase.c:976
msgid "There is no tracking information for the current branch."
-msgstr "O ramo atual tem informação de tracking nenhuma."
+msgstr "O ramo atual tem informação de monitorização nenhuma."
-#: builtin/pull.c:480
+#: builtin/pull.c:484
msgid ""
"If you wish to set tracking information for this branch you can do so with:"
msgstr ""
-"Se deseja definir o ramo que deve ser seguido por este ramo, pode fazê-lo "
+"Se queres definir informação de monitorização para este ramo, pode fazê-lo "
"com:"
-#: builtin/pull.c:485
+#: builtin/pull.c:489
#, c-format
msgid ""
"Your configuration specifies to merge with the ref '%s'\n"
"from the remote, but no such ref was fetched."
msgstr ""
-"Tua configuração indica para juntar com ref '%s'\n"
-"a partir do remoto, mas essa ref está por buscar."
+"Tua configuração indica para, a partir do remoto, juntar\n"
+"com ref '%s', mas apenas outras refs foram buscadas."
-#: builtin/pull.c:596
+#: builtin/pull.c:600
#, c-format
msgid "unable to access commit %s"
-msgstr "incapaz acessar commit %s"
+msgstr "incapaz acessar memória %s"
-#: builtin/pull.c:902
+#: builtin/pull.c:908
msgid "ignoring --verify-signatures for rebase"
msgstr "ignorando --verify-signatures para rebase"
-#: builtin/pull.c:930
+#: builtin/pull.c:969
msgid ""
-"Pulling without specifying how to reconcile divergent branches is\n"
-"discouraged. You can squelch this message by running one of the following\n"
-"commands sometime before your next pull:\n"
+"You have divergent branches and need to specify how to reconcile them.\n"
+"You can do so by running one of the following commands sometime before\n"
+"your next pull:\n"
"\n"
-" git config pull.rebase false # merge (the default strategy)\n"
+" git config pull.rebase false # merge\n"
" git config pull.rebase true # rebase\n"
" git config pull.ff only # fast-forward only\n"
"\n"
@@ -19067,30 +19846,31 @@ msgid ""
"invocation.\n"
msgstr ""
-#: builtin/pull.c:990
+#: builtin/pull.c:1047
msgid "Updating an unborn branch with changes added to the index."
-msgstr "Atualizando um ramo por nascer com alterações adicionadas ao índex."
+msgstr ""
+"Atualizando um ramo por nascer com as alterações adicionadas ao cenário."
-#: builtin/pull.c:994
+#: builtin/pull.c:1051
msgid "pull with rebase"
msgstr "pull com rebase"
-#: builtin/pull.c:995
+#: builtin/pull.c:1052
msgid "please commit or stash them."
-msgstr "submeta ou esconda-as."
+msgstr "por favor, memoriza ou esconde-as."
-#: builtin/pull.c:1020
+#: builtin/pull.c:1077
#, c-format
msgid ""
"fetch updated the current branch head.\n"
"fast-forwarding your working tree from\n"
"commit %s."
msgstr ""
-"o fetch atualizou a cabeça do ramo atual.\n"
-"a avançar a árvore de trabalho a partir do\n"
-"commit %s."
+"a busca atualizou a cabeça de ramo atual.\n"
+"avançando tua árvore-trabalho da memória\n"
+"%s."
-#: builtin/pull.c:1026
+#: builtin/pull.c:1083
#, c-format
msgid ""
"Cannot fast-forward your working tree.\n"
@@ -19100,24 +19880,32 @@ msgid ""
"$ git reset --hard\n"
"to recover."
msgstr ""
-"Incapaz de fast-forward a tua working tree.\n"
-"Após confirmares que guardaste algo precioso do resultado de\n"
+"Incapaz de avançar tua árvore-trabalho.\n"
+"Após confirmares que guardaste algo precioso da saída de\n"
"$ git diff %s\n"
-"execute\n"
+"executa\n"
"$ git reset --hard\n"
"para recuperar."
-#: builtin/pull.c:1041
+#: builtin/pull.c:1098
msgid "Cannot merge multiple branches into empty head."
-msgstr "Incapaz de juntar ramos múltiplos para head vazia."
+msgstr "Incapaz de juntar ramos múltiplos para cabeça vazia."
-#: builtin/pull.c:1045
+#: builtin/pull.c:1103
msgid "Cannot rebase onto multiple branches."
msgstr "Incapaz de rebasear sobre ramos múltiplos."
-#: builtin/pull.c:1065
+#: builtin/pull.c:1105
+msgid "Cannot fast-forward to multiple branches."
+msgstr "Incapaz de avançar para ramos múltiplos."
+
+#: builtin/pull.c:1120
+msgid "Need to specify how to reconcile divergent branches."
+msgstr "Precisas de especificar como reconciliar ramos divergentes."
+
+#: builtin/pull.c:1134
msgid "cannot rebase with locally recorded submodule modifications"
-msgstr ""
+msgstr "incapaz rebasear com modificações locais guardadas no submódulo"
#: builtin/push.c:19
msgid "git push [<options>] [<repository> [<refspec>...]]"
@@ -19154,8 +19942,8 @@ msgid ""
" git push %s HEAD\n"
"%s"
msgstr ""
-"Ramo upstream do ramo atual corresponde com nome ramo atual nenhum.\n"
-"Para atirar para ramo upstream do remoto, usa\n"
+"Ramo upstream de ramo atual corresponde com nenhum nome de ramo atual.\n"
+"Para atirar para o ramo upstream no remoto, usa\n"
"\n"
" git push %s HEAD:%s\n"
"\n"
@@ -19174,7 +19962,7 @@ msgid ""
" git push %s HEAD:<name-of-remote-branch>\n"
msgstr ""
"Atualmente estás em ramo nenhum.\n"
-"Para atirar a história que leva ao estado atual (HEAD solta), usa\n"
+"Para atirar a história que leva ao estado atual (HEAD desanexada), usa\n"
"\n"
" git push %s HEAD:<nome-de-ramo-remoto>\n"
@@ -19194,7 +19982,7 @@ msgstr ""
#: builtin/push.c:199
#, c-format
msgid "The current branch %s has multiple upstream branches, refusing to push."
-msgstr "O ramo atual %s tem múltiplos ramos a montante, publicação recusada."
+msgstr "O ramo atual %s tem múltiplos ramos upstream, recusando atirar."
#: builtin/push.c:217
msgid ""
@@ -19210,7 +19998,7 @@ msgid ""
msgstr ""
"Estás atirando para remoto '%s', que é nenhum upstream do teu\n"
"ramo atual '%s', sem dizer-me o que atirar para atualizar\n"
-"um qualquer ramo remoto."
+"qual ramo remoto."
#: builtin/push.c:258
msgid ""
@@ -19219,10 +20007,10 @@ msgid ""
"'git pull ...') before pushing again.\n"
"See the 'Note about fast-forwards' in 'git push --help' for details."
msgstr ""
-"As atualizações foram rejeitadas porque a ponta do ramo atual está atrasada\n"
-"em relação ao homólogo remoto. Integre as alterações remotas (e.g.\n"
-"'git pull ...') antes de publicar de novo.\n"
-"Consulte 'Note about fast-forwards' em 'git push --help' para obter detalhes."
+"Atualizações foram rejeitadas porque a ponta do ramo atual está atrasada\n"
+"em relação ao homólogo remoto. Integra as alterações remotas (e.g.\n"
+"'git pull ...') antes de atirares novamente.\n"
+"Para detalhes, vê a 'Note about fast-forwards' em 'git push --help'."
#: builtin/push.c:264
msgid ""
@@ -19231,10 +20019,10 @@ msgid ""
"(e.g. 'git pull ...') before pushing again.\n"
"See the 'Note about fast-forwards' in 'git push --help' for details."
msgstr ""
-"As atualizações foram rejeitadas porque a ponta do ramo atual está atrasada\n"
-"em relação ao homólogo remoto. Extraia o ramo e integre\n"
-"as alterações remotas (e.g. 'git pull ...') antes de publicar de novo.\n"
-"Consulte 'Note about fast-forwards' em 'git push --help' para obter detalhes."
+"Atualizações foram rejeitadas porque a ponta de atirar do ramo está\n"
+"atrasada em relação ao homólogo remoto. Observa este ramo e integra as\n"
+"alterações remotas (e.g. 'git pull ...') antes de atirares novamente.\n"
+"Para detalhes, vê a 'Note about fast-forwards' em 'git push --help'."
#: builtin/push.c:270
msgid ""
@@ -19245,14 +20033,16 @@ msgid ""
"See the 'Note about fast-forwards' in 'git push --help' for details."
msgstr ""
"Atualizações foram rejeitadas porque o remoto contém trabalho diferente\n"
-"do teu trabalho local. A causa, normalmente, é um push para a mesma ref.\n"
-"Podes tentar integrar as diferenças remotas (p.e., 'git pull ...') antes\n"
-"de fazeres novo push.\n"
-"Vê a 'Note about fast-forwards' do 'git push --help' para detalhes."
+"do teu trabalho local. A causa, normalmente, é um atirar para a mesma ref.\n"
+"Podes tentar, primeiro, integrar as diferenças remotas (e.g., 'git "
+"pull ...')\n"
+"antes de atirares novamente.\n"
+"Para detalhes, vê a 'Note about fast-forwards' em 'git push --help'."
#: builtin/push.c:277
msgid "Updates were rejected because the tag already exists in the remote."
-msgstr "As atualizações foram rejeitadas porque a tag já existe no remoto."
+msgstr ""
+"As atualizações foram rejeitadas porque a etiqueta já existe no remoto."
#: builtin/push.c:280
msgid ""
@@ -19260,9 +20050,9 @@ msgid ""
"or update a remote ref to make it point at a non-commit object,\n"
"without using the '--force' option.\n"
msgstr ""
-"És impedido de atualizar uma ref remota que aponte para um objecto\n"
-"fora de commit, ou atualizar uma ref remota fazendo-a apontar para um\n"
-"objeto fora de commit, sem usar a opção '--force'.\n"
+"Apenas podes atualizar uma ref remota que aponte para um objecto\n"
+"fora de memória, ou atualizar uma ref remota fazendo-a apontar para um\n"
+"objeto fora de memória, usando a opção '--force'.\n"
#: builtin/push.c:285
msgid ""
@@ -19272,7 +20062,7 @@ msgid ""
"before forcing an update.\n"
msgstr ""
"Atualizações foram rejeitadas porque a ponta do ramo remoto de\n"
-"monitorização foi atualizado desde a última observação. Poderás querer\n"
+"monitorização foi atualizada desde a última observação. Poderás querer\n"
"integrar essas alterações localmente (e.g., 'git pull ...') antes de\n"
"forçar uma atualização.\n"
@@ -19286,17 +20076,17 @@ msgstr "Atirando para %s\n"
msgid "failed to push some refs to '%s'"
msgstr "falha ao atirar algumas refs para '%s'"
-#: builtin/push.c:544
+#: builtin/push.c:544 builtin/submodule--helper.c:3377
msgid "repository"
msgstr "repositório"
-#: builtin/push.c:545 builtin/send-pack.c:189
+#: builtin/push.c:545 builtin/send-pack.c:193
msgid "push all refs"
msgstr "atirar todas as refs"
-#: builtin/push.c:546 builtin/send-pack.c:191
+#: builtin/push.c:546 builtin/send-pack.c:195
msgid "mirror all refs"
-msgstr "replicar todas as refs"
+msgstr "espelha todas as refs"
#: builtin/push.c:548
msgid "delete refs"
@@ -19306,19 +20096,19 @@ msgstr "apagar refs"
msgid "push tags (can't be used with --all or --mirror)"
msgstr "atirar etiquetas (incapaz ser usado com --all ou --mirror)"
-#: builtin/push.c:552 builtin/send-pack.c:192
+#: builtin/push.c:552 builtin/send-pack.c:196
msgid "force updates"
msgstr "forçar atualização"
-#: builtin/push.c:553 builtin/send-pack.c:204
+#: builtin/push.c:553 builtin/send-pack.c:208
msgid "<refname>:<expect>"
msgstr "<nome-ref>:<esperado>"
-#: builtin/push.c:554 builtin/send-pack.c:205
+#: builtin/push.c:554 builtin/send-pack.c:209
msgid "require old value of ref to be at this value"
msgstr "exigir que o antigo valor da ref tenha este valor"
-#: builtin/push.c:557 builtin/send-pack.c:208
+#: builtin/push.c:557 builtin/send-pack.c:212
msgid "require remote updates to be integrated locally"
msgstr ""
@@ -19326,12 +20116,12 @@ msgstr ""
msgid "control recursive pushing of submodules"
msgstr "controlar a publicação recursiva de submódulos"
-#: builtin/push.c:561 builtin/send-pack.c:199
+#: builtin/push.c:561 builtin/send-pack.c:203
msgid "use thin pack"
msgstr "usar pacote fino"
-#: builtin/push.c:562 builtin/push.c:563 builtin/send-pack.c:186
-#: builtin/send-pack.c:187
+#: builtin/push.c:562 builtin/push.c:563 builtin/send-pack.c:190
+#: builtin/send-pack.c:191
msgid "receive pack program"
msgstr "programa receive pack"
@@ -19345,24 +20135,20 @@ msgstr "eliminar referências removidas localmente"
#: builtin/push.c:569
msgid "bypass pre-push hook"
-msgstr "ignorar pre-push hook"
+msgstr "contornar gancho pre-push"
#: builtin/push.c:570
msgid "push missing but relevant tags"
-msgstr "publicar tags perdidas mas relevantes"
+msgstr "atirar etiquetas ausentes mas relevantes"
-#: builtin/push.c:572 builtin/send-pack.c:193
+#: builtin/push.c:572 builtin/send-pack.c:197
msgid "GPG sign the push"
msgstr "assinar publicação com GPG"
-#: builtin/push.c:574 builtin/send-pack.c:200
+#: builtin/push.c:574 builtin/send-pack.c:204
msgid "request atomic transaction on remote side"
msgstr "solicitar transação atómica do lado remoto"
-#: builtin/push.c:592
-msgid "--delete is incompatible with --all, --mirror and --tags"
-msgstr "--delete é incompatível com --all, --mirror e --tags"
-
#: builtin/push.c:594
msgid "--delete doesn't make sense without any refs"
msgstr "--delete apenas faz sentido com uma ref"
@@ -19385,34 +20171,22 @@ msgid ""
" git push <name>\n"
msgstr ""
"Destino de atirar indefinido.\n"
-"Indica um URL da linha de comandos ou configure um repositório remoto "
+"Indica um URL da linha de comandos ou configura um repositório remoto "
"usando\n"
"\n"
" git remote add <nome> <url>\n"
"\n"
-"e depois atire usando o nome remoto\n"
+"e depois atira usando o nome remoto\n"
"\n"
" git push <nome>\n"
-#: builtin/push.c:630
-msgid "--all and --tags are incompatible"
-msgstr "--all e --tags são incompatíveis"
-
#: builtin/push.c:632
msgid "--all can't be combined with refspecs"
msgstr "incapaz combinar --all com espetros-ref"
-#: builtin/push.c:636
-msgid "--mirror and --tags are incompatible"
-msgstr "--mirror e --tags são incompatíveis"
-
#: builtin/push.c:638
msgid "--mirror can't be combined with refspecs"
-msgstr "incapaz combinar --mirror com espetros-ref"
-
-#: builtin/push.c:641
-msgid "--all and --mirror are incompatible"
-msgstr "--all e --mirror são incompatíveis"
+msgstr "incapaz combinar --mirror com espetro-refs"
#: builtin/push.c:648
msgid "push options must not have new line characters"
@@ -19466,288 +20240,137 @@ msgstr "preciso dois intervalos de memórias"
#: builtin/read-tree.c:41
msgid ""
"git read-tree [(-m [--trivial] [--aggressive] | --reset | --prefix=<prefix>) "
-"[-u [--exclude-per-directory=<gitignore>] | -i]] [--no-sparse-checkout] [--"
-"index-output=<file>] (--empty | <tree-ish1> [<tree-ish2> [<tree-ish3>]])"
+"[-u | -i]] [--no-sparse-checkout] [--index-output=<file>] (--empty | <tree-"
+"ish1> [<tree-ish2> [<tree-ish3>]])"
msgstr ""
"git read-tree [(-m [--trivial] [--aggressive] | --reset | --"
-"prefix=<prefixo>) [-u [--exclude-per-directory=<gitignore>] | -i]] [--no-"
-"sparse-checkout] [--index-output=<ficheiro>] (--empty | <árvore-etc1> "
-"[<árvore-etc2> [<árvore-etc3>]])"
+"prefix=<prefixo>) [-u | -i]] [--no-sparse-checkout] [--index-"
+"output=<ficheiro>] (--empty | <arvoredo1> [<arvoredo2> [<arvoredo3>]])"
-#: builtin/read-tree.c:124
+#: builtin/read-tree.c:116
msgid "write resulting index to <file>"
-msgstr "escrever o índice resultante no <ficheiro>"
+msgstr "escrever cenário resultante para <ficheiro>"
-#: builtin/read-tree.c:127
+#: builtin/read-tree.c:119
msgid "only empty the index"
-msgstr "apenas esvaziar o índice"
+msgstr "apenas esvaziar o cenário"
-#: builtin/read-tree.c:129
+#: builtin/read-tree.c:121
msgid "Merging"
-msgstr "A integrar"
+msgstr "Juntando"
-#: builtin/read-tree.c:131
+#: builtin/read-tree.c:123
msgid "perform a merge in addition to a read"
-msgstr "realizar uma integração em adição a uma leitura"
+msgstr "realizar uma junção para além de uma leitura"
-#: builtin/read-tree.c:133
+#: builtin/read-tree.c:125
msgid "3-way merge if no file level merging required"
msgstr "tri-junção se dispensar junção ao nível de ficheiros"
-#: builtin/read-tree.c:135
+#: builtin/read-tree.c:127
msgid "3-way merge in presence of adds and removes"
msgstr "tri-junção na presença de adições e remoções"
-#: builtin/read-tree.c:137
+#: builtin/read-tree.c:129
msgid "same as -m, but discard unmerged entries"
msgstr "o mesmo que -m, mas descartar entradas por juntar"
-#: builtin/read-tree.c:138
+#: builtin/read-tree.c:130
msgid "<subdirectory>/"
-msgstr "<subdiretório>/"
+msgstr "<subpasta>/"
-#: builtin/read-tree.c:139
+#: builtin/read-tree.c:131
msgid "read the tree into the index under <subdirectory>/"
-msgstr "ler a árvore em <subdiretório>/ para o índice"
+msgstr "ler a árvore em <subpasta>/ para o cenário"
-#: builtin/read-tree.c:142
+#: builtin/read-tree.c:134
msgid "update working tree with merge result"
-msgstr "atualizar a árvore de trabalho com os resultados da integração"
+msgstr "atualizar a árvore-trabalho com os resultados de junção"
-#: builtin/read-tree.c:144
+#: builtin/read-tree.c:136
msgid "gitignore"
msgstr "gitignore"
-#: builtin/read-tree.c:145
+#: builtin/read-tree.c:137
msgid "allow explicitly ignored files to be overwritten"
msgstr "permitir que os ficheiros explicitamente ignorados sejam substituídos"
-#: builtin/read-tree.c:148
+#: builtin/read-tree.c:140
msgid "don't check the working tree after merging"
-msgstr "verifica nenhuma worktree após junção"
+msgstr "verifica árvore-trabalho nenhuma após junção"
-#: builtin/read-tree.c:149
+#: builtin/read-tree.c:141
msgid "don't update the index or the work tree"
-msgstr "atualizar index nenhum e worktree nenhuma"
+msgstr "atualizar cenário nenhum e árvore-trabalho nenhuma"
-#: builtin/read-tree.c:151
+#: builtin/read-tree.c:143
msgid "skip applying sparse checkout filter"
-msgstr "ignorar aplicar filtro de observação disperso"
+msgstr "saltar aplicação de filtro de observação disperso"
-#: builtin/read-tree.c:153
+#: builtin/read-tree.c:145
msgid "debug unpack-trees"
msgstr "depurar unpack-trees"
-#: builtin/read-tree.c:157
+#: builtin/read-tree.c:149
msgid "suppress feedback messages"
msgstr "suprimir mensagens de feedback"
-#: builtin/read-tree.c:188
+#: builtin/read-tree.c:190
msgid "You need to resolve your current index first"
msgstr "Primeiro precisas resolver teu cenário atual"
-#: builtin/rebase.c:35
+#: builtin/rebase.c:36
msgid ""
"git rebase [-i] [options] [--exec <cmd>] [--onto <newbase> | --keep-base] "
"[<upstream> [<branch>]]"
msgstr ""
+"git rebase [-i] [options] [--exec <cmd>] [--onto <nova-base> | --keep-base] "
+"[<upstream> [<ramo>]]"
-#: builtin/rebase.c:37
+#: builtin/rebase.c:38
msgid ""
"git rebase [-i] [options] [--exec <cmd>] [--onto <newbase>] --root [<branch>]"
msgstr ""
+"git rebase [-i] [options] [--exec <cmd>] [--onto <nova-base>] --root [<ramo>]"
-#: builtin/rebase.c:39
-msgid "git rebase --continue | --abort | --skip | --edit-todo"
-msgstr "git rebase --continue | --abort | --skip | --edit-todo"
-
-#: builtin/rebase.c:194 builtin/rebase.c:218 builtin/rebase.c:245
-#, c-format
-msgid "unusable todo list: '%s'"
-msgstr "lista de tarefas inutilizável: '%s'"
-
-#: builtin/rebase.c:311
+#: builtin/rebase.c:231
#, c-format
msgid "could not create temporary %s"
msgstr "incapaz criar %s temporário"
-#: builtin/rebase.c:317
+#: builtin/rebase.c:237
msgid "could not mark as interactive"
msgstr "incapaz marcar como interativo"
-#: builtin/rebase.c:370
+#: builtin/rebase.c:290
msgid "could not generate todo list"
msgstr "incapaz gerar lista de tarefas"
-#: builtin/rebase.c:412
+#: builtin/rebase.c:332
msgid "a base commit must be provided with --upstream or --onto"
msgstr ""
-#: builtin/rebase.c:481
-msgid "git rebase--interactive [<options>]"
-msgstr "git rebase--interactive [<opções>]"
-
-#: builtin/rebase.c:494 builtin/rebase.c:1389
-msgid "keep commits which start empty"
-msgstr ""
-
-#: builtin/rebase.c:498 builtin/revert.c:128
-msgid "allow commits with empty messages"
-msgstr "permitir memórias com mensagens vazias"
-
-#: builtin/rebase.c:500
-msgid "rebase merge commits"
-msgstr "rebasear memórias de junção"
-
-#: builtin/rebase.c:502
-msgid "keep original branch points of cousins"
-msgstr ""
-
-#: builtin/rebase.c:504
-msgid "move commits that begin with squash!/fixup!"
-msgstr ""
-
-#: builtin/rebase.c:505
-msgid "sign commits"
-msgstr "assinar memórias"
-
-#: builtin/rebase.c:507 builtin/rebase.c:1328
-msgid "display a diffstat of what changed upstream"
-msgstr ""
-
-#: builtin/rebase.c:509
-msgid "continue rebase"
-msgstr "continuar rebase"
-
-#: builtin/rebase.c:511
-msgid "skip commit"
-msgstr "ignorar memória"
-
-#: builtin/rebase.c:512
-msgid "edit the todo list"
-msgstr ""
-
-#: builtin/rebase.c:514
-msgid "show the current patch"
-msgstr "mostrar remendo atual"
-
-#: builtin/rebase.c:517
-msgid "shorten commit ids in the todo list"
-msgstr ""
-
-#: builtin/rebase.c:519
-msgid "expand commit ids in the todo list"
-msgstr ""
-
-#: builtin/rebase.c:521
-msgid "check the todo list"
-msgstr ""
-
-#: builtin/rebase.c:523
-msgid "rearrange fixup/squash lines"
-msgstr ""
-
-#: builtin/rebase.c:525
-msgid "insert exec commands in todo list"
-msgstr ""
-
-#: builtin/rebase.c:526
-msgid "onto"
-msgstr ""
-
-#: builtin/rebase.c:529
-msgid "restrict-revision"
-msgstr "revisão-restrita"
-
-#: builtin/rebase.c:529
-msgid "restrict revision"
-msgstr "revisão restrita"
-
-#: builtin/rebase.c:531
-msgid "squash-onto"
-msgstr ""
-
-#: builtin/rebase.c:532
-msgid "squash onto"
-msgstr ""
-
-#: builtin/rebase.c:534
-msgid "the upstream commit"
-msgstr "a memória de upstream"
-
-#: builtin/rebase.c:536
-msgid "head-name"
-msgstr "nome-cabeça"
-
-#: builtin/rebase.c:536
-msgid "head name"
-msgstr "nome de cabeça"
-
-#: builtin/rebase.c:541
-msgid "rebase strategy"
-msgstr "estratégia de rebaseamento"
-
-#: builtin/rebase.c:542
-msgid "strategy-opts"
-msgstr "opções-estratégia"
-
-#: builtin/rebase.c:543
-msgid "strategy options"
-msgstr "opções de estratégia"
-
-#: builtin/rebase.c:544
-msgid "switch-to"
-msgstr ""
-
-#: builtin/rebase.c:545
-msgid "the branch or commit to checkout"
-msgstr ""
-
-#: builtin/rebase.c:546
-msgid "onto-name"
-msgstr "para-nome"
-
-#: builtin/rebase.c:546
-msgid "onto name"
-msgstr "para nome"
-
-#: builtin/rebase.c:547
-msgid "cmd"
-msgstr "cmd"
-
-#: builtin/rebase.c:547
-msgid "the command to run"
-msgstr ""
-
-#: builtin/rebase.c:550 builtin/rebase.c:1422
-msgid "automatically re-schedule any `exec` that fails"
-msgstr ""
-
-#: builtin/rebase.c:566
-msgid "--[no-]rebase-cousins has no effect without --rebase-merges"
-msgstr ""
-
-#: builtin/rebase.c:582
+#: builtin/rebase.c:391
#, c-format
msgid "%s requires the merge backend"
msgstr ""
-#: builtin/rebase.c:625
+#: builtin/rebase.c:433
#, c-format
msgid "could not get 'onto': '%s'"
msgstr "incapaz obter 'onto': '%s'"
-#: builtin/rebase.c:642
+#: builtin/rebase.c:450
#, c-format
msgid "invalid orig-head: '%s'"
msgstr "orig-head inválida: '%s'"
-#: builtin/rebase.c:667
+#: builtin/rebase.c:475
#, c-format
msgid "ignoring invalid allow_rerere_autoupdate: '%s'"
msgstr ""
-#: builtin/rebase.c:813 git-rebase--preserve-merges.sh:81
+#: builtin/rebase.c:600
msgid ""
"Resolve all conflicts manually, mark them as resolved with\n"
"\"git add/rm <conflicted_files>\", then run \"git rebase --continue\".\n"
@@ -19755,12 +20378,14 @@ msgid ""
"To abort and get back to the state before \"git rebase\", run \"git rebase --"
"abort\"."
msgstr ""
-"Depois de resolver este problema, execute \"git rebase --continue\".\n"
-"Se prefere ignorar este patch, execute \"git rebase --skip\".\n"
-"Para extrair o ramo original e interromper o rebase, execute \"git rebase --"
-"abort\"."
+"Resolve todos conflitos manualmente, marca-os como resolvidos com\n"
+"\"git add/rm <ficheiros conflitosos>\", depois executa \"git rebase --"
+"continue\".\n"
+"Alternativamente podes saltar esta memória: executa \"git rebase --skip\".\n"
+"Para abortar e voltar ao estado anterior a \"git rebase\", executa\n"
+"\"git rebase --abort\"."
-#: builtin/rebase.c:896
+#: builtin/rebase.c:685
#, c-format
msgid ""
"\n"
@@ -19771,15 +20396,27 @@ msgid ""
"\n"
"As a result, git cannot rebase them."
msgstr ""
+"\n"
+"git encontrou erro enquanto preparava as correções para refazer\n"
+"estas revisões:\n"
+"\n"
+" %s\n"
+"\n"
+"Como resultado, git é incapaz de rebaseá-las."
-#: builtin/rebase.c:1222
+#: builtin/rebase.c:836
+#, c-format
+msgid "could not switch to %s"
+msgstr "incapaz alternar para %s"
+
+#: builtin/rebase.c:952
#, c-format
msgid ""
"unrecognized empty type '%s'; valid values are \"drop\", \"keep\", and \"ask"
"\"."
msgstr ""
-#: builtin/rebase.c:1240
+#: builtin/rebase.c:970
#, c-format
msgid ""
"%s\n"
@@ -19790,13 +20427,13 @@ msgid ""
"\n"
msgstr ""
"%s\n"
-"Por favor, diz o branch sobre o qual queres rebasear.\n"
+"Por favor, diz o ramo sobre o qual queres rebasear.\n"
"Vê git-rebase(1) para detalhes.\n"
"\n"
-" git rebase '<branch>'\n"
+" git rebase '<ramo>'\n"
"\n"
-#: builtin/rebase.c:1256
+#: builtin/rebase.c:986
#, c-format
msgid ""
"If you wish to set tracking information for this branch you can do so with:\n"
@@ -19804,202 +20441,202 @@ msgid ""
" git branch --set-upstream-to=%s/<branch> %s\n"
"\n"
msgstr ""
-"Se desejas por tracking information neste branch, podes fazer com:\n"
+"Se queres definir informação de monitorização deste branch, podes fazer "
+"com:\n"
"\n"
-" git branch --set-upstream-to=%s/<branch> %s\n"
+" git branch --set-upstream-to=%s/<ramo> %s\n"
"\n"
-#: builtin/rebase.c:1286
+#: builtin/rebase.c:1016
msgid "exec commands cannot contain newlines"
-msgstr ""
+msgstr "incapaz de conter novas-linhas em comandos exec"
-#: builtin/rebase.c:1290
+#: builtin/rebase.c:1020
msgid "empty exec command"
-msgstr ""
+msgstr "comando exec vazio"
-#: builtin/rebase.c:1319
+#: builtin/rebase.c:1051
msgid "rebase onto given branch instead of upstream"
msgstr "rebasear sobre ramo dado invés de upstream"
-#: builtin/rebase.c:1321
+#: builtin/rebase.c:1053
msgid "use the merge-base of upstream and branch as the current base"
msgstr "usar a base de junção de upstream e ramo como base atual"
-#: builtin/rebase.c:1323
+#: builtin/rebase.c:1055
msgid "allow pre-rebase hook to run"
-msgstr "permitir gancho pré-rebase correr"
+msgstr "permitir execução de gancho pre-rebase"
-#: builtin/rebase.c:1325
+#: builtin/rebase.c:1057
msgid "be quiet. implies --no-stat"
-msgstr ""
+msgstr "fica silencioso. implica --no-stat"
+
+#: builtin/rebase.c:1060
+msgid "display a diffstat of what changed upstream"
+msgstr "mostrar uma diffstat das alterações em upstream"
-#: builtin/rebase.c:1331
+#: builtin/rebase.c:1063
msgid "do not show diffstat of what changed upstream"
-msgstr "esconder diffstat de o que alterou upstream"
+msgstr "esconder diffstat das alterações upstream"
-#: builtin/rebase.c:1334
+#: builtin/rebase.c:1066
msgid "add a Signed-off-by trailer to each commit"
msgstr "adicionar a atribuição Signed-off-by para cada memória"
-#: builtin/rebase.c:1337
+#: builtin/rebase.c:1069
msgid "make committer date match author date"
msgstr "fazer data de memorizador corresponder à data de autor"
-#: builtin/rebase.c:1339
+#: builtin/rebase.c:1071
msgid "ignore author date and use current date"
msgstr "ignorar data de autor e usar data atual"
-#: builtin/rebase.c:1341
+#: builtin/rebase.c:1073
msgid "synonym of --reset-author-date"
msgstr "sinónimo de --reset-author-date"
-#: builtin/rebase.c:1343 builtin/rebase.c:1347
+#: builtin/rebase.c:1075 builtin/rebase.c:1079
msgid "passed to 'git apply'"
msgstr "passado para 'git apply'"
-#: builtin/rebase.c:1345
+#: builtin/rebase.c:1077
msgid "ignore changes in whitespace"
-msgstr ""
+msgstr "ignorar alterações de espaços-em-branco"
-#: builtin/rebase.c:1349 builtin/rebase.c:1352
+#: builtin/rebase.c:1081 builtin/rebase.c:1084
msgid "cherry-pick all commits, even if unchanged"
-msgstr ""
+msgstr "apanhar todas as memórias, mesmo se inalteradas"
-#: builtin/rebase.c:1354
+#: builtin/rebase.c:1086
msgid "continue"
msgstr "continuar"
-#: builtin/rebase.c:1357
+#: builtin/rebase.c:1089
msgid "skip current patch and continue"
msgstr "ignorar remendo atual e continuar"
-#: builtin/rebase.c:1359
+#: builtin/rebase.c:1091
msgid "abort and check out the original branch"
-msgstr ""
+msgstr "abortar e observar o ramo original"
-#: builtin/rebase.c:1362
+#: builtin/rebase.c:1094
msgid "abort but keep HEAD where it is"
-msgstr ""
+msgstr "abortar mas manter HEAD on está"
-#: builtin/rebase.c:1363
+#: builtin/rebase.c:1095
msgid "edit the todo list during an interactive rebase"
msgstr "editar a lista de afazeres durante rebase interativa"
-#: builtin/rebase.c:1366
+#: builtin/rebase.c:1098
msgid "show the patch file being applied or merged"
-msgstr ""
+msgstr "mostrar remendo aplicado or juntado"
-#: builtin/rebase.c:1369
+#: builtin/rebase.c:1101
msgid "use apply strategies to rebase"
-msgstr ""
+msgstr "usar estratégias de apply para rebasear"
-#: builtin/rebase.c:1373
+#: builtin/rebase.c:1105
msgid "use merging strategies to rebase"
msgstr "usar estratégias de junção para rebasear"
-#: builtin/rebase.c:1377
+#: builtin/rebase.c:1109
msgid "let the user edit the list of commits to rebase"
-msgstr ""
+msgstr "deixar o utilizador editar a lista de memórias a rebasear"
-#: builtin/rebase.c:1381
+#: builtin/rebase.c:1113
msgid "(DEPRECATED) try to recreate merges instead of ignoring them"
-msgstr ""
+msgstr "(OBSOLETO) tenta recriar junções em vez de ignorá-las"
-#: builtin/rebase.c:1386
+#: builtin/rebase.c:1118
msgid "how to handle commits that become empty"
-msgstr ""
+msgstr "como lidar com memórias que ficam vazias"
-#: builtin/rebase.c:1393
+#: builtin/rebase.c:1121
+msgid "keep commits which start empty"
+msgstr "manter memórias que começaram como vazias"
+
+#: builtin/rebase.c:1125
msgid "move commits that begin with squash!/fixup! under -i"
-msgstr ""
+msgstr "mover para -i as memórias que começam com squash!/fixup!"
-#: builtin/rebase.c:1400
+#: builtin/rebase.c:1132
msgid "add exec lines after each commit of the editable list"
-msgstr ""
+msgstr "adicionar linhas exec após cada memória da lista editável"
-#: builtin/rebase.c:1404
+#: builtin/rebase.c:1136
msgid "allow rebasing commits with empty messages"
msgstr "permitir rebasear memórias com mensagens vazias"
-#: builtin/rebase.c:1408
+#: builtin/rebase.c:1140
msgid "try to rebase merges instead of skipping them"
-msgstr ""
+msgstr "tentar rebasear junções em vez de saltá-las"
-#: builtin/rebase.c:1411
+#: builtin/rebase.c:1143
msgid "use 'merge-base --fork-point' to refine upstream"
msgstr "usa 'merge-base --fork-point' para refinar upstream"
-#: builtin/rebase.c:1413
+#: builtin/rebase.c:1145
msgid "use the given merge strategy"
msgstr "usar a estratégia de junção dada"
-#: builtin/rebase.c:1415 builtin/revert.c:115
+#: builtin/rebase.c:1147 builtin/revert.c:115
msgid "option"
msgstr "opção"
-#: builtin/rebase.c:1416
+#: builtin/rebase.c:1148
msgid "pass the argument through to the merge strategy"
msgstr ""
-#: builtin/rebase.c:1419
+#: builtin/rebase.c:1151
msgid "rebase all reachable commits up to the root(s)"
msgstr ""
-#: builtin/rebase.c:1424
+#: builtin/rebase.c:1154
+msgid "automatically re-schedule any `exec` that fails"
+msgstr ""
+
+#: builtin/rebase.c:1156
msgid "apply all changes, even those already present upstream"
msgstr ""
-#: builtin/rebase.c:1442
+#: builtin/rebase.c:1177
msgid "It looks like 'git am' is in progress. Cannot rebase."
msgstr "Parece que 'git am' está em curso. Incapaz de rebasear."
-#: builtin/rebase.c:1483
-msgid ""
-"git rebase --preserve-merges is deprecated. Use --rebase-merges instead."
+#: builtin/rebase.c:1208
+msgid "--preserve-merges was replaced by --rebase-merges"
msgstr ""
-#: builtin/rebase.c:1488
-msgid "cannot combine '--keep-base' with '--onto'"
-msgstr "incapaz de combinar '--keep-base' com '--onto'"
-
-#: builtin/rebase.c:1490
-msgid "cannot combine '--keep-base' with '--root'"
-msgstr "incapaz de combinar '--keep-base' com '--root'"
-
-#: builtin/rebase.c:1494
-msgid "cannot combine '--root' with '--fork-point'"
-msgstr "incapaz de combinar '--root' com '--fork-point'"
-
-#: builtin/rebase.c:1497
+#: builtin/rebase.c:1230
msgid "No rebase in progress?"
msgstr "Algum rebase em curso?"
-#: builtin/rebase.c:1501
+#: builtin/rebase.c:1234
msgid "The --edit-todo action can only be used during interactive rebase."
msgstr "A ação --edit-todo só pode ser usada durante uma rebase interativa."
-#: builtin/rebase.c:1524 t/helper/test-fast-rebase.c:122
+#: builtin/rebase.c:1257 t/helper/test-fast-rebase.c:122
msgid "Cannot read HEAD"
msgstr "Incapaz ler HEAD"
-#: builtin/rebase.c:1536
+#: builtin/rebase.c:1269
msgid ""
"You must edit all merge conflicts and then\n"
"mark them as resolved using git add"
msgstr ""
-"Deve editar todos os conflitos da integração\n"
+"Tens de editar todos os conflitos da junção\n"
"e marcá-los como resolvidos usando git add"
-#: builtin/rebase.c:1555
+#: builtin/rebase.c:1287
msgid "could not discard worktree changes"
-msgstr "incapaz de descartar alterações de worktree"
+msgstr "incapaz de descartar alterações de árvore-trabalho"
-#: builtin/rebase.c:1574
+#: builtin/rebase.c:1308
#, c-format
msgid "could not move back to %s"
msgstr "incapaz de retroceder a %s"
-#: builtin/rebase.c:1620
+#: builtin/rebase.c:1354
#, c-format
msgid ""
"It seems that there is already a %s directory, and\n"
@@ -20012,148 +20649,135 @@ msgid ""
"valuable there.\n"
msgstr ""
"Parece que já existe uma pasta %s, e\n"
-"pregunto-me se estás a meio de outro rebase. Se for o caso,\n"
+"pergunto-me se estás a meio de outro rebase. Se for o caso,\n"
"por favor tenta\n"
"\t%s\n"
-"Caso eu esteja errado, faz por favor\n"
+"Caso eu esteja errado, por favor\n"
"\t%s\n"
"e execute-me novamente. Estou parando caso ainda tenhas algo\n"
"de valor aí.\n"
-#: builtin/rebase.c:1648
+#: builtin/rebase.c:1382
msgid "switch `C' expects a numerical value"
msgstr ""
-#: builtin/rebase.c:1690
+#: builtin/rebase.c:1424
#, c-format
msgid "Unknown mode: %s"
msgstr "Modo desconhecido: %s"
-#: builtin/rebase.c:1729
+#: builtin/rebase.c:1463
msgid "--strategy requires --merge or --interactive"
msgstr ""
-#: builtin/rebase.c:1759
-msgid "cannot combine apply options with merge options"
-msgstr ""
+#: builtin/rebase.c:1492
+msgid "apply options and merge options cannot be used together"
+msgstr "opções de submeter e de juntar incapaz de serem usadas juntas"
-#: builtin/rebase.c:1772
+#: builtin/rebase.c:1505
#, c-format
msgid "Unknown rebase backend: %s"
msgstr ""
-#: builtin/rebase.c:1802
+#: builtin/rebase.c:1534
msgid "--reschedule-failed-exec requires --exec or --interactive"
msgstr ""
-#: builtin/rebase.c:1822
-msgid "cannot combine '--preserve-merges' with '--rebase-merges'"
-msgstr ""
-
-#: builtin/rebase.c:1826
-msgid ""
-"error: cannot combine '--preserve-merges' with '--reschedule-failed-exec'"
-msgstr ""
-
-#: builtin/rebase.c:1850
+#: builtin/rebase.c:1565
#, c-format
msgid "invalid upstream '%s'"
msgstr ""
-#: builtin/rebase.c:1856
+#: builtin/rebase.c:1571
msgid "Could not create new root commit"
-msgstr "incapaz criar novo commit raiz"
+msgstr "Incapaz criar nova memória raiz"
-#: builtin/rebase.c:1882
+#: builtin/rebase.c:1597
#, c-format
msgid "'%s': need exactly one merge base with branch"
-msgstr ""
+msgstr "'%s': preciso exatamente de uma base de junção para ramo"
-#: builtin/rebase.c:1885
+#: builtin/rebase.c:1600
#, c-format
msgid "'%s': need exactly one merge base"
-msgstr ""
+msgstr "'%s': preciso exatamente de uma base de junção"
-#: builtin/rebase.c:1893
+#: builtin/rebase.c:1609
#, c-format
msgid "Does not point to a valid commit '%s'"
-msgstr "Aponta nada para commit válido '%s'"
+msgstr "Aponta para fora de memória válida '%s'"
-#: builtin/rebase.c:1921
+#: builtin/rebase.c:1636
#, c-format
-msgid "fatal: no such branch/commit '%s'"
-msgstr "fatal: nenhum ramo/commit '%s'"
+msgid "no such branch/commit '%s'"
+msgstr "nenhum ramo/memória '%s'"
-#: builtin/rebase.c:1929 builtin/submodule--helper.c:39
-#: builtin/submodule--helper.c:2431
+#: builtin/rebase.c:1647 builtin/submodule--helper.c:43
+#: builtin/submodule--helper.c:2477
#, c-format
msgid "No such ref: %s"
msgstr "Referência inexistente: %s"
-#: builtin/rebase.c:1940
+#: builtin/rebase.c:1658
msgid "Could not resolve HEAD to a revision"
msgstr "Foi impossível resolver HEAD para uma revisão"
-#: builtin/rebase.c:1961
+#: builtin/rebase.c:1679
msgid "Please commit or stash them."
-msgstr "Submeta ou esconda-as."
+msgstr "Por favor, memoriza ou esconde-as."
-#: builtin/rebase.c:1997
-#, c-format
-msgid "could not switch to %s"
-msgstr "incapaz alternar para %s"
-
-#: builtin/rebase.c:2008
+#: builtin/rebase.c:1714
msgid "HEAD is up to date."
msgstr "HEAD está atualizada."
-#: builtin/rebase.c:2010
+#: builtin/rebase.c:1716
#, c-format
msgid "Current branch %s is up to date.\n"
-msgstr "Branch atual %s está atualizado.\n"
+msgstr "Ramo atual %s está atualizado.\n"
-#: builtin/rebase.c:2018
+#: builtin/rebase.c:1724
msgid "HEAD is up to date, rebase forced."
msgstr "HEAD está atualizada, rebase forçado."
-#: builtin/rebase.c:2020
+#: builtin/rebase.c:1726
#, c-format
msgid "Current branch %s is up to date, rebase forced.\n"
-msgstr "Branch actual %s está atualizado, rebase forçado.\n"
+msgstr "Ramo actual %s está atualizado, rebase forçado.\n"
-#: builtin/rebase.c:2028
+#: builtin/rebase.c:1734
msgid "The pre-rebase hook refused to rebase."
-msgstr "Gancho pré-rebase recusou rebasear."
+msgstr "Gancho pre-rebase recusou rebasear."
-#: builtin/rebase.c:2035
+#: builtin/rebase.c:1741
#, c-format
msgid "Changes to %s:\n"
msgstr "Modificações para %s:\n"
-#: builtin/rebase.c:2038
+#: builtin/rebase.c:1744
#, c-format
msgid "Changes from %s to %s:\n"
msgstr "Modificações de %s para %s:\n"
-#: builtin/rebase.c:2063
+#: builtin/rebase.c:1769
#, c-format
msgid "First, rewinding head to replay your work on top of it...\n"
-msgstr "Primeiro, recuando head para refazer o teu trabalho em cima dela...\n"
+msgstr ""
+"Primeiro, rebobinar cabeça para refazer o teu trabalho em cima dela...\n"
-#: builtin/rebase.c:2072
+#: builtin/rebase.c:1781
msgid "Could not detach HEAD"
msgstr "Incapaz desanexar HEAD"
-#: builtin/rebase.c:2081
+#: builtin/rebase.c:1790
#, c-format
msgid "Fast-forwarded %s to %s.\n"
-msgstr "Avançei-rápido %s para %s.\n"
+msgstr "Avancei %s para %s.\n"
-#: builtin/receive-pack.c:34
+#: builtin/receive-pack.c:35
msgid "git receive-pack <git-dir>"
-msgstr "git receive-pack <git-dir>"
+msgstr "git receive-pack <pasta-git>"
-#: builtin/receive-pack.c:1275
+#: builtin/receive-pack.c:1263
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"
@@ -20169,21 +20793,21 @@ msgid ""
"To squelch this message and still keep the default behaviour, set\n"
"'receive.denyCurrentBranch' configuration variable to 'refuse'."
msgstr ""
-"Por predefinição, atualizar o ramo atual num repositório não-nu\n"
-"é proibido, porque tornará o index e a worktree inconsistentes\n"
-"com o que atiraste, e requererá 'git reset --hard' para igualar a\n"
-"worktree com HEAD.\n"
+"Por predefinição, atualizar o ramo atual num repositório diferente\n"
+"de nu é proibido, porque tornará o cenário e a árvore-trabalho\n"
+"inconsistentes com o que atiraste, e requererá 'git reset --hard'\n"
+"para igualar a árvore-trabalho com HEAD.\n"
"\n"
-"Podes definir variável configuração 'receive.denyCurrentBranch'\n"
+"Podes definir variável de configuração 'receive.denyCurrentBranch'\n"
"como 'ignore' ou 'warn' no repositório remoto para permitir atirar\n"
"para o ramo atual deste; no entanto, é recomendando nada disto a\n"
-"menos que consigas outra forma de atualizar a worktree dele para\n"
-"refletir o que atiraste.\n"
+"menos que consigas outra forma de atualizar a árvore-trabalho dele\n"
+"para refletir o que atiraste.\n"
"\n"
-"Para suprimir esta mensagem e manter o comportamento predefinido, define\n"
+"Para silenciar esta mensagem e manter o comportamento predefinido, define\n"
"a variável de configuração 'receive.denyCurrentBranch' como 'refuse'."
-#: builtin/receive-pack.c:1295
+#: builtin/receive-pack.c:1283
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"
@@ -20194,83 +20818,115 @@ msgid ""
"\n"
"To squelch this message, you can set it to 'refuse'."
msgstr ""
-"Por predefinição, apagar o ramo atual é proibido, porque o próximo\n"
-"'git clone' resultará em ficheiro nenhum checked out, causando confusão.\n"
+"Por predefinição, eliminar o ramo atual é proibido, porque o próximo\n"
+"'git clone' resultará em nenhum ficheiro observado, causando confusão.\n"
"\n"
"Podes definir a variável de configuração 'receive.denyDeleteCurrent' como\n"
"'warn' ou 'ignore' no repositório remoto para permitir eliminar o\n"
-"ramo atual, com ou sem a mensagem de aviso.\n"
+"ramo atual, com ou sem uma mensagem de aviso.\n"
"\n"
-"Para suprimir esta mensagem, podes definí-la como 'refuse'."
+"Para silenciar esta mensagem, podes defini-la como 'refuse'."
-#: builtin/receive-pack.c:2478
+#: builtin/receive-pack.c:2476
msgid "quiet"
msgstr "silencioso"
-#: builtin/receive-pack.c:2492
-msgid "You must specify a directory."
-msgstr "Deves especificar uma pasta."
+#: builtin/receive-pack.c:2491
+msgid "you must specify a directory"
+msgstr "tens de especificar uma pasta"
-#: builtin/reflog.c:17
+#: builtin/reflog.c:9
+msgid "git reflog [show] [<log-options>] [<ref>]"
+msgstr "git reflog [show] [<opções-de-registo>] [<ref>]"
+
+#: builtin/reflog.c:12
msgid ""
-"git reflog expire [--expire=<time>] [--expire-unreachable=<time>] [--"
-"rewrite] [--updateref] [--stale-fix] [--dry-run | -n] [--verbose] [--all] "
-"<refs>..."
+"git reflog expire [--expire=<time>] [--expire-unreachable=<time>]\n"
+" [--rewrite] [--updateref] [--stale-fix]\n"
+" [--dry-run | -n] [--verbose] [--all [--single-worktree] | "
+"<refs>...]"
msgstr ""
-#: builtin/reflog.c:22
+#: builtin/reflog.c:17
msgid ""
-"git reflog delete [--rewrite] [--updateref] [--dry-run | -n] [--verbose] "
-"<refs>..."
+"git reflog delete [--rewrite] [--updateref]\n"
+" [--dry-run | -n] [--verbose] <ref>@{<specifier>}..."
msgstr ""
-#: builtin/reflog.c:25
+#: builtin/reflog.c:21
msgid "git reflog exists <ref>"
msgstr ""
-#: builtin/reflog.c:568 builtin/reflog.c:573
+#: builtin/reflog.c:197 builtin/reflog.c:211
#, c-format
-msgid "'%s' is not a valid timestamp"
-msgstr "'%s' é um carimbo de data/hora inválido"
+msgid "invalid timestamp '%s' given to '--%s'"
+msgstr "carimbo cronológico inválido '%s' fornecido a '--%s'"
+
+#: builtin/reflog.c:240 builtin/reflog.c:359
+msgid "do not actually prune any entries"
+msgstr ""
+
+#: builtin/reflog.c:243 builtin/reflog.c:362
+msgid ""
+"rewrite the old SHA1 with the new SHA1 of the entry that now precedes it"
+msgstr ""
+
+#: builtin/reflog.c:246 builtin/reflog.c:365
+msgid "update the reference to the value of the top reflog entry"
+msgstr ""
+
+#: builtin/reflog.c:248 builtin/reflog.c:367
+msgid "print extra information on screen"
+msgstr ""
+
+#: builtin/reflog.c:249 builtin/reflog.c:253
+msgid "timestamp"
+msgstr "carimbo cronológico"
+
+#: builtin/reflog.c:250
+msgid "prune entries older than the specified time"
+msgstr "podar entradas mais velhas que tempo especifico"
+
+#: builtin/reflog.c:254
+msgid ""
+"prune entries older than <time> that are not reachable from the current tip "
+"of the branch"
+msgstr ""
+
+#: builtin/reflog.c:258
+msgid "prune any reflog entries that point to broken commits"
+msgstr ""
+"podar qualquer entrada de registo-ref que aponte para memórias quebradas"
+
+#: builtin/reflog.c:259
+msgid "process the reflogs of all references"
+msgstr "processar os registos-ref de todas as referências"
+
+#: builtin/reflog.c:261
+msgid "limits processing to reflogs from the current worktree only"
+msgstr ""
+"limitando processamento para apenas registros-ref da árvore-trabalho atual"
-#: builtin/reflog.c:609
+#: builtin/reflog.c:294
#, c-format
msgid "Marking reachable objects..."
msgstr ""
-#: builtin/reflog.c:647
+#: builtin/reflog.c:338
#, c-format
msgid "%s points nowhere!"
msgstr ""
-#: builtin/reflog.c:699
+#: builtin/reflog.c:374
msgid "no reflog specified to delete"
msgstr "especificado reflog nenhum para apagar"
-#: builtin/reflog.c:708
-#, c-format
-msgid "not a reflog: %s"
-msgstr "reflog inválido: %s"
-
-#: builtin/reflog.c:713
-#, c-format
-msgid "no reflog for '%s'"
-msgstr "reflog nenhum para '%s'"
-
-#: builtin/reflog.c:759
+#: builtin/reflog.c:396
#, c-format
msgid "invalid ref format: %s"
msgstr "formato de ref inválido: %s"
-#: builtin/reflog.c:768
-msgid "git reflog [ show | expire | delete | exists ]"
-msgstr ""
-
-#: builtin/remote.c:17
-msgid "git remote [-v | --verbose]"
-msgstr "git remote [-v | --verbose]"
-
-#: builtin/remote.c:18
+#: builtin/remote.c:19
msgid ""
"git remote add [-t <branch>] [-m <master>] [-f] [--tags | --no-tags] [--"
"mirror=<fetch|push>] <name> <url>"
@@ -20278,82 +20934,87 @@ msgstr ""
"git remote add [-t <ramo>] [-m <mestre>] [-f] [--tags | --no-tags] [--"
"mirror=<fetch|push>] <nome> <url>"
-#: builtin/remote.c:19 builtin/remote.c:39
-msgid "git remote rename <old> <new>"
-msgstr "git remote rename <antigo> <novo>"
+#: builtin/remote.c:20 builtin/remote.c:40
+msgid "git remote rename [--[no-]progress] <old> <new>"
+msgstr "git remote rename [--[no-]progress] <antigo> <novo>"
-#: builtin/remote.c:20 builtin/remote.c:44
+#: builtin/remote.c:21 builtin/remote.c:45
msgid "git remote remove <name>"
msgstr "git remote remove <nome>"
-#: builtin/remote.c:21 builtin/remote.c:49
+#: builtin/remote.c:22 builtin/remote.c:50
msgid "git remote set-head <name> (-a | --auto | -d | --delete | <branch>)"
msgstr "git remote set-head <nome> (-a | --auto | -d | --delete | <ramo>)"
-#: builtin/remote.c:22
+#: builtin/remote.c:23
msgid "git remote [-v | --verbose] show [-n] <name>"
msgstr "git remote [-v | --verbose] show [-n] <nome>"
-#: builtin/remote.c:23
+#: builtin/remote.c:24
msgid "git remote prune [-n | --dry-run] <name>"
msgstr "git remote prune [-n | --dry-run] <nome>"
-#: builtin/remote.c:24
+#: builtin/remote.c:25
msgid ""
"git remote [-v | --verbose] update [-p | --prune] [(<group> | <remote>)...]"
msgstr ""
"git remote [-v | --verbose] update [-p | --prune] [(<grupo> | <remoto>)...]"
-#: builtin/remote.c:25
+#: builtin/remote.c:26
msgid "git remote set-branches [--add] <name> <branch>..."
msgstr "git remote set-branches [--add] <nome> <ramo>..."
-#: builtin/remote.c:26 builtin/remote.c:75
+#: builtin/remote.c:27 builtin/remote.c:76
msgid "git remote get-url [--push] [--all] <name>"
msgstr "git remote get-url [--push] [--all] <nome>"
-#: builtin/remote.c:27 builtin/remote.c:80
+#: builtin/remote.c:28 builtin/remote.c:81
msgid "git remote set-url [--push] <name> <newurl> [<oldurl>]"
msgstr "git remote set-url [--push] <nome> <novo-url> [<url-antigo>]"
-#: builtin/remote.c:28 builtin/remote.c:81
+#: builtin/remote.c:29 builtin/remote.c:82
msgid "git remote set-url --add <name> <newurl>"
msgstr "git remote set-url --add <nome> <novo-url>"
-#: builtin/remote.c:29 builtin/remote.c:82
+#: builtin/remote.c:30 builtin/remote.c:83
msgid "git remote set-url --delete <name> <url>"
msgstr "git remote set-url --delete <nome> <url>"
-#: builtin/remote.c:34
+#: builtin/remote.c:35
msgid "git remote add [<options>] <name> <url>"
msgstr "git remote add [<opções>] <nome> <url>"
-#: builtin/remote.c:54
+#: builtin/remote.c:55
msgid "git remote set-branches <name> <branch>..."
msgstr "git remote set-branches <nome> <ramo>..."
-#: builtin/remote.c:55
+#: builtin/remote.c:56
msgid "git remote set-branches --add <name> <branch>..."
msgstr "git remote set-branches --add <nome> <ramo>..."
-#: builtin/remote.c:60
+#: builtin/remote.c:61
msgid "git remote show [<options>] <name>"
msgstr "git remote show [<opções>] <nome>"
-#: builtin/remote.c:65
+#: builtin/remote.c:66
msgid "git remote prune [<options>] <name>"
msgstr "git remote prune [<opções>] <nome>"
-#: builtin/remote.c:70
+#: builtin/remote.c:71
msgid "git remote update [<options>] [<group> | <remote>]..."
msgstr "git remote update [<opções>] [<grupo> | <remoto>]..."
-#: builtin/remote.c:99
+#: builtin/remote.c:100
#, c-format
msgid "Updating %s"
msgstr "Atualizando %s"
-#: builtin/remote.c:131
+#: builtin/remote.c:102
+#, c-format
+msgid "Could not fetch %s"
+msgstr "Incapaz buscar %s"
+
+#: builtin/remote.c:132
msgid ""
"--mirror is dangerous and deprecated; please\n"
"\t use --mirror=fetch or --mirror=push instead"
@@ -20361,72 +21022,78 @@ msgstr ""
"--mirror é perigoso e obsoleto; por favor\n"
"\t usa --mirror=fetch ou --mirror=push invés"
-#: builtin/remote.c:148
+#: builtin/remote.c:149
#, c-format
msgid "unknown mirror argument: %s"
msgstr "argumento de mirror desconhecido: %s"
-#: builtin/remote.c:164
+#: builtin/remote.c:165
msgid "fetch the remote branches"
-msgstr "obter os ramos remotos"
+msgstr "buscar os ramos remotos"
-#: builtin/remote.c:166
+#: builtin/remote.c:167
msgid "import all tags and associated objects when fetching"
-msgstr "importar todas as tags e objetos associados ao obter"
+msgstr "importar todas as etiquetas e objetos associados ao buscar"
-#: builtin/remote.c:169
+#: builtin/remote.c:170
msgid "or do not fetch any tag at all (--no-tags)"
msgstr "ou buscar etiqueta nenhuma (--no-tags)"
-#: builtin/remote.c:171
+#: builtin/remote.c:172
msgid "branch(es) to track"
-msgstr "ramos a seguir"
+msgstr "ramo(s) a monitorizar"
-#: builtin/remote.c:172
+#: builtin/remote.c:173
msgid "master branch"
msgstr "ramo mestre"
-#: builtin/remote.c:174
+#: builtin/remote.c:175
msgid "set up remote as a mirror to push to or fetch from"
-msgstr "configurar o remoto como um espelho para publicar ou obter"
+msgstr "definir remoto como um espelho para 'buscar de' ou 'atirar para'"
-#: builtin/remote.c:186
+#: builtin/remote.c:187
msgid "specifying a master branch makes no sense with --mirror"
msgstr "especificar um ramo master com --mirror faz sentido nenhum"
-#: builtin/remote.c:188
+#: builtin/remote.c:189
msgid "specifying branches to track makes sense only with fetch mirrors"
-msgstr "especificar ramos para seguir só faz sentido com fetch mirrors"
+msgstr ""
+"especificar ramos para monitorizar só faz sentido com espelhos de busca"
-#: builtin/remote.c:195 builtin/remote.c:700
+#: builtin/remote.c:196 builtin/remote.c:716
#, c-format
msgid "remote %s already exists."
msgstr "o remoto %s já existe."
-#: builtin/remote.c:240
+#: builtin/remote.c:241
#, c-format
msgid "Could not setup master '%s'"
msgstr "Incapaz configurar master '%s'"
-#: builtin/remote.c:355
+#: builtin/remote.c:323
+#, c-format
+msgid "unhandled branch.%s.rebase=%s; assuming 'true'"
+msgstr "branch.%s.rebase=%s por lidar; assumindo 'true'"
+
+#: builtin/remote.c:367
#, c-format
msgid "Could not get fetch map for refspec %s"
-msgstr "Incapaz de obter mapa de busca para refspec %s"
+msgstr "Incapaz de obter mapa de busca para espetro-ref %s"
-#: builtin/remote.c:454 builtin/remote.c:462
+#: builtin/remote.c:461 builtin/remote.c:469
msgid "(matching)"
msgstr "(correspondente)"
-#: builtin/remote.c:466
+#: builtin/remote.c:473
msgid "(delete)"
-msgstr "(apagar)"
+msgstr "(eliminar)"
-#: builtin/remote.c:655
+#: builtin/remote.c:664
#, c-format
msgid "could not set '%s'"
msgstr "incapaz definir '%s'"
-#: builtin/remote.c:660
+#: builtin/remote.c:669
#, c-format
msgid ""
"The %s configuration remote.pushDefault in:\n"
@@ -20434,37 +21101,42 @@ msgid ""
"now names the non-existent remote '%s'"
msgstr ""
-#: builtin/remote.c:691 builtin/remote.c:836 builtin/remote.c:943
+#: builtin/remote.c:707 builtin/remote.c:866 builtin/remote.c:973
#, c-format
msgid "No such remote: '%s'"
msgstr "Remoto inexistente: '%s'"
-#: builtin/remote.c:710
+#: builtin/remote.c:726
#, c-format
msgid "Could not rename config section '%s' to '%s'"
msgstr "Incapaz de mudar o nome a secção de configuração '%s' para '%s'"
-#: builtin/remote.c:730
+#: builtin/remote.c:746
#, c-format
msgid ""
"Not updating non-default fetch refspec\n"
"\t%s\n"
"\tPlease update the configuration manually if necessary."
msgstr ""
-"Deixando por atualizar refspec que é diferente de pré-definido\t%s\n"
+"Deixando por atualizar espetro-ref que é diferente de pré-definido\n"
+"\t%s\n"
"\tPor favor, atualiza a configuração manualmente se necessário."
-#: builtin/remote.c:770
+#: builtin/remote.c:783
+msgid "Renaming remote references"
+msgstr "Renomeando referências remotas"
+
+#: builtin/remote.c:794
#, c-format
msgid "deleting '%s' failed"
msgstr "falha ao apagar '%s'"
-#: builtin/remote.c:804
+#: builtin/remote.c:832
#, c-format
msgid "creating '%s' failed"
msgstr "falhou criar '%s'"
-#: builtin/remote.c:882
+#: builtin/remote.c:912
msgid ""
"Note: A branch outside the refs/remotes/ hierarchy was not removed;\n"
"to delete it, use:"
@@ -20473,124 +21145,124 @@ msgid_plural ""
"to delete them, use:"
msgstr[0] ""
"Nota: Um ramo fora da hierarquia refs/remotes/ está por remover;\n"
-"para apagá-lo, usa:"
+"para eliminá-lo, usa:"
msgstr[1] ""
-"Nota: Alguns ramos fora da hierarquia refs/remotes/ estão por serem "
+"Nota: Alguns ramos fora da hierarquia refs/remotes/ estão por ser "
"removidos;\n"
-"para os apagá-los, usa:"
+"para eliminá-los, usa:"
-#: builtin/remote.c:896
+#: builtin/remote.c:926
#, c-format
msgid "Could not remove config section '%s'"
msgstr "Incapaz remover secção de configuração '%s'"
-#: builtin/remote.c:999
+#: builtin/remote.c:1034
#, c-format
msgid " new (next fetch will store in remotes/%s)"
-msgstr " novo (os próxima objetos obtidos serão guardados em remotes/%s)"
+msgstr " novo (próxima busca irá guardar em remotes/%s)"
-#: builtin/remote.c:1002
+#: builtin/remote.c:1037
msgid " tracked"
-msgstr " seguido"
+msgstr " monitorizado"
-#: builtin/remote.c:1004
+#: builtin/remote.c:1039
msgid " stale (use 'git remote prune' to remove)"
msgstr " obsoleto (use 'git remote prune' para remover)"
-#: builtin/remote.c:1006
+#: builtin/remote.c:1041
msgid " ???"
msgstr " ???"
-#: builtin/remote.c:1047
+#: builtin/remote.c:1082
#, c-format
msgid "invalid branch.%s.merge; cannot rebase onto > 1 branch"
msgstr "branch.%s.merge inválido; incapaz rebasear sobre > 1 ramo"
-#: builtin/remote.c:1056
+#: builtin/remote.c:1091
#, c-format
msgid "rebases interactively onto remote %s"
msgstr "rebaseia interativamente sobre remoto %s"
-#: builtin/remote.c:1058
+#: builtin/remote.c:1093
#, c-format
msgid "rebases interactively (with merges) onto remote %s"
msgstr "rebaseia interativamente (com junções) sobre remoto %s"
-#: builtin/remote.c:1061
+#: builtin/remote.c:1096
#, c-format
msgid "rebases onto remote %s"
-msgstr "rebaseia sobre %s do remoto"
+msgstr "rebaseia sobre remoto %s"
-#: builtin/remote.c:1065
+#: builtin/remote.c:1100
#, c-format
msgid " merges with remote %s"
-msgstr " integra com %s do remoto"
+msgstr " junta com remoto %s"
-#: builtin/remote.c:1068
+#: builtin/remote.c:1103
#, c-format
msgid "merges with remote %s"
-msgstr "integra com %s do remoto"
+msgstr "junta com remoto %s"
-#: builtin/remote.c:1071
+#: builtin/remote.c:1106
#, c-format
msgid "%-*s and with remote %s\n"
msgstr "%-*s e com o %s remote\n"
-#: builtin/remote.c:1114
+#: builtin/remote.c:1149
msgid "create"
msgstr "criado"
-#: builtin/remote.c:1117
+#: builtin/remote.c:1152
msgid "delete"
msgstr "eliminado"
-#: builtin/remote.c:1121
+#: builtin/remote.c:1156
msgid "up to date"
msgstr "atualizado"
-#: builtin/remote.c:1124
+#: builtin/remote.c:1159
msgid "fast-forwardable"
-msgstr "pode ser avançado rapidamente"
+msgstr "pode ser avançado"
-#: builtin/remote.c:1127
+#: builtin/remote.c:1162
msgid "local out of date"
msgstr "local desatualizado"
-#: builtin/remote.c:1134
+#: builtin/remote.c:1169
#, c-format
msgid " %-*s forces to %-*s (%s)"
msgstr " %-*s força em %-*s (%s)"
-#: builtin/remote.c:1137
+#: builtin/remote.c:1172
#, c-format
msgid " %-*s pushes to %-*s (%s)"
msgstr " %-*s publica em %-*s (%s)"
-#: builtin/remote.c:1141
+#: builtin/remote.c:1176
#, c-format
msgid " %-*s forces to %s"
msgstr " %-*s força em %s"
-#: builtin/remote.c:1144
+#: builtin/remote.c:1179
#, c-format
msgid " %-*s pushes to %s"
msgstr " %-*s publica em %s"
-#: builtin/remote.c:1212
+#: builtin/remote.c:1247
msgid "do not query remotes"
msgstr "faz consulta a remotos nenhuns"
-#: builtin/remote.c:1239
+#: builtin/remote.c:1268
#, c-format
msgid "* remote %s"
msgstr "* remoto %s"
-#: builtin/remote.c:1240
+#: builtin/remote.c:1269
#, c-format
msgid " Fetch URL: %s"
msgstr " Buscar URL: %s"
-#: builtin/remote.c:1241 builtin/remote.c:1257 builtin/remote.c:1396
+#: builtin/remote.c:1270 builtin/remote.c:1286 builtin/remote.c:1423
msgid "(no URL)"
msgstr "(URL nenhum)"
@@ -20598,326 +21270,336 @@ msgstr "(URL nenhum)"
#. with the one in " Fetch URL: %s"
#. translation.
#.
-#: builtin/remote.c:1255 builtin/remote.c:1257
+#: builtin/remote.c:1284 builtin/remote.c:1286
#, c-format
msgid " Push URL: %s"
msgstr " Atirar URL: %s"
-#: builtin/remote.c:1259 builtin/remote.c:1261 builtin/remote.c:1263
+#: builtin/remote.c:1288 builtin/remote.c:1290 builtin/remote.c:1292
#, c-format
msgid " HEAD branch: %s"
msgstr " Ramo HEAD: %s"
-#: builtin/remote.c:1259
+#: builtin/remote.c:1288
msgid "(not queried)"
msgstr "(nada consultado)"
-#: builtin/remote.c:1261
+#: builtin/remote.c:1290
msgid "(unknown)"
msgstr "(desconhecido)"
-#: builtin/remote.c:1265
+#: builtin/remote.c:1294
#, c-format
msgid ""
" HEAD branch (remote HEAD is ambiguous, may be one of the following):\n"
-msgstr " HEAD branch (HEAD remote é ambíguo, pode ser um dos seguintes):\n"
+msgstr " Ramo HEAD (HEAD remota é ambígua, pode ser uma das seguintes):\n"
-#: builtin/remote.c:1277
+#: builtin/remote.c:1306
#, c-format
msgid " Remote branch:%s"
msgid_plural " Remote branches:%s"
msgstr[0] " Ramo remoto:%s"
msgstr[1] " Ramos remotos:%s"
-#: builtin/remote.c:1280 builtin/remote.c:1306
+#: builtin/remote.c:1309 builtin/remote.c:1335
msgid " (status not queried)"
-msgstr " (estado é nada consultado)"
+msgstr " (estado por consultar)"
-#: builtin/remote.c:1289
+#: builtin/remote.c:1318
msgid " Local branch configured for 'git pull':"
msgid_plural " Local branches configured for 'git pull':"
msgstr[0] " Ramo local configurado para 'git pull':"
msgstr[1] " Ramos locais configurados para 'git pull':"
-#: builtin/remote.c:1297
+#: builtin/remote.c:1326
msgid " Local refs will be mirrored by 'git push'"
-msgstr " Referências locais serão replicadas (mirror) por 'git push'"
+msgstr " Refs locais serão espelhadas por 'git push'"
-#: builtin/remote.c:1303
+#: builtin/remote.c:1332
#, c-format
msgid " Local ref configured for 'git push'%s:"
msgid_plural " Local refs configured for 'git push'%s:"
-msgstr[0] " Referência local configurada para 'git push'%s:"
-msgstr[1] " Referências locais configuradas para 'git push'%s:"
+msgstr[0] " Ref local configurada para 'git push'%s:"
+msgstr[1] " Refs locais configuradas para 'git push'%s:"
-#: builtin/remote.c:1324
+#: builtin/remote.c:1353
msgid "set refs/remotes/<name>/HEAD according to remote"
msgstr "definir refs/remotes/<nome>/HEAD de acordo com o remoto"
-#: builtin/remote.c:1326
+#: builtin/remote.c:1355
msgid "delete refs/remotes/<name>/HEAD"
msgstr "eliminar refs/remotes/<nome>/HEAD"
-#: builtin/remote.c:1341
+#: builtin/remote.c:1369
msgid "Cannot determine remote HEAD"
msgstr "Incapaz de determinar o HEAD remoto"
-#: builtin/remote.c:1343
+#: builtin/remote.c:1371
msgid "Multiple remote HEAD branches. Please choose one explicitly with:"
-msgstr "Múltiplos ramos HEAD remotos. Escolha um explicitamente com:"
+msgstr ""
+"Múltiplos ramos HEAD remotos. Por favor, escolhe um explicitamente com:"
-#: builtin/remote.c:1353
+#: builtin/remote.c:1381
#, c-format
msgid "Could not delete %s"
msgstr "Incapaz eliminar %s"
-#: builtin/remote.c:1361
+#: builtin/remote.c:1389
#, c-format
msgid "Not a valid ref: %s"
-msgstr "Referência inválida: %s"
+msgstr "Ref inválida: %s"
-#: builtin/remote.c:1363
+#: builtin/remote.c:1391
#, c-format
msgid "Could not setup %s"
msgstr "Incapaz configurar %s"
-#: builtin/remote.c:1381
+#: builtin/remote.c:1409
#, c-format
msgid " %s will become dangling!"
msgstr " %s ficará suspenso!"
-#: builtin/remote.c:1382
+#: builtin/remote.c:1410
#, c-format
msgid " %s has become dangling!"
msgstr " %s ficou suspenso!"
-#: builtin/remote.c:1392
+#: builtin/remote.c:1419
#, c-format
msgid "Pruning %s"
-msgstr "A eliminar %s"
+msgstr "Podando %s"
-#: builtin/remote.c:1393
+#: builtin/remote.c:1420
#, c-format
msgid "URL: %s"
msgstr "URL: %s"
-#: builtin/remote.c:1409
+#: builtin/remote.c:1436
#, c-format
msgid " * [would prune] %s"
-msgstr " * [eliminaria] %s"
+msgstr " * [iria podar] %s"
-#: builtin/remote.c:1412
+#: builtin/remote.c:1439
#, c-format
msgid " * [pruned] %s"
-msgstr " * [eliminado] %s"
+msgstr " * [podado] %s"
-#: builtin/remote.c:1457
+#: builtin/remote.c:1484
msgid "prune remotes after fetching"
msgstr "podar remotos após buscar"
-#: builtin/remote.c:1521 builtin/remote.c:1577 builtin/remote.c:1647
+#: builtin/remote.c:1548 builtin/remote.c:1604 builtin/remote.c:1674
#, c-format
msgid "No such remote '%s'"
-msgstr "Remoto inexistente '%s'"
+msgstr "Remoto '%s' inexistente"
-#: builtin/remote.c:1539
+#: builtin/remote.c:1566
msgid "add branch"
msgstr "adicionar ramo"
-#: builtin/remote.c:1546
+#: builtin/remote.c:1573
msgid "no remote specified"
msgstr "especificado remoto nenhum"
-#: builtin/remote.c:1563
+#: builtin/remote.c:1590
msgid "query push URLs rather than fetch URLs"
-msgstr "consultar URLs de publicação em vez de URLs utilizados para obter"
+msgstr "consultar URLs de atiro em vez de URLs de busca"
-#: builtin/remote.c:1565
+#: builtin/remote.c:1592
msgid "return all URLs"
msgstr "retornar todos os URLs"
-#: builtin/remote.c:1595
+#: builtin/remote.c:1622
#, c-format
msgid "no URLs configured for remote '%s'"
msgstr "o remoto '%s' tem configurado URL nenhum"
-#: builtin/remote.c:1621
+#: builtin/remote.c:1648
msgid "manipulate push URLs"
-msgstr "manipular URLs de publicação"
+msgstr "manipular URLs de atiro"
-#: builtin/remote.c:1623
+#: builtin/remote.c:1650
msgid "add URL"
msgstr "adicionar URL"
-#: builtin/remote.c:1625
+#: builtin/remote.c:1652
msgid "delete URLs"
msgstr "eliminar URLs"
-#: builtin/remote.c:1632
+#: builtin/remote.c:1659
msgid "--add --delete doesn't make sense"
msgstr "--add --delete faz sentido nenhum"
-#: builtin/remote.c:1673
+#: builtin/remote.c:1700
#, c-format
msgid "Invalid old URL pattern: %s"
msgstr "Padrão de URL antigo inválido: %s"
-#: builtin/remote.c:1681
+#: builtin/remote.c:1708
#, c-format
msgid "No such URL found: %s"
msgstr "URL por encontrar: %s"
-#: builtin/remote.c:1683
+#: builtin/remote.c:1710
msgid "Will not delete all non-push URLs"
-msgstr "Apagarei apenas alguns URLs de não-atirar"
+msgstr "Deixarei por eliminar todos os URLs de não-atirar"
+
+#: builtin/remote.c:1727
+msgid "be verbose; must be placed before a subcommand"
+msgstr "ser verboso; deve ser colocado antes de um subcomando"
-#: builtin/repack.c:26
+#: builtin/repack.c:29
msgid "git repack [<options>]"
msgstr "git repack [<opções>]"
-#: builtin/repack.c:31
+#: builtin/repack.c:34
msgid ""
"Incremental repacks are incompatible with bitmap indexes. Use\n"
"--no-write-bitmap-index or disable the pack.writebitmaps configuration."
msgstr ""
-"Repacks incrementais são incompatíveis com indexes bitmap. Usa\n"
+"Repacks incrementais são incompatíveis com índices de bitmap. Usa\n"
"--no-write-bitmap-index ou desativa a configuração pack.writebitmaps ."
-#: builtin/repack.c:198
+#: builtin/repack.c:206
msgid "could not start pack-objects to repack promisor objects"
msgstr ""
-#: builtin/repack.c:270 builtin/repack.c:630
+#: builtin/repack.c:280 builtin/repack.c:824
msgid "repack: Expecting full hex object ID lines only from pack-objects."
msgstr ""
-#: builtin/repack.c:294
+#: builtin/repack.c:304
msgid "could not finish pack-objects to repack promisor objects"
msgstr ""
-#: builtin/repack.c:309
+#: builtin/repack.c:319
#, c-format
msgid "cannot open index for %s"
msgstr "incapaz abrir cenário para %s"
-#: builtin/repack.c:368
+#: builtin/repack.c:378
#, c-format
msgid "pack %s too large to consider in geometric progression"
msgstr ""
-#: builtin/repack.c:401 builtin/repack.c:408 builtin/repack.c:413
+#: builtin/repack.c:411 builtin/repack.c:418 builtin/repack.c:423
#, c-format
msgid "pack %s too large to roll up"
msgstr ""
-#: builtin/repack.c:460
+#: builtin/repack.c:503
+#, c-format
+msgid "could not open tempfile %s for writing"
+msgstr "incapaz abrir ficheiro-temp %s para escrita"
+
+#: builtin/repack.c:521
+msgid "could not close refs snapshot tempfile"
+msgstr "incapaz fechar snapshot ficheiro-temp de refs"
+
+#: builtin/repack.c:634
msgid "pack everything in a single pack"
msgstr "compactar tudo num único pacote"
-#: builtin/repack.c:462
+#: builtin/repack.c:636
msgid "same as -a, and turn unreachable objects loose"
msgstr "o mesmo que -a, e soltar objetos inalcançáveis"
-#: builtin/repack.c:465
+#: builtin/repack.c:639
msgid "remove redundant packs, and run git-prune-packed"
msgstr "remover pacotes redundantes e executar git-prune-packed"
-#: builtin/repack.c:467
+#: builtin/repack.c:641
msgid "pass --no-reuse-delta to git-pack-objects"
msgstr "passar --no-reuse-delta para git-pack-objects"
-#: builtin/repack.c:469
+#: builtin/repack.c:643
msgid "pass --no-reuse-object to git-pack-objects"
msgstr "passar --no-reuse-object para git-pack-objects"
-#: builtin/repack.c:471
+#: builtin/repack.c:645
msgid "do not run git-update-server-info"
msgstr "executar git-update-server-info nenhum"
-#: builtin/repack.c:474
+#: builtin/repack.c:648
msgid "pass --local to git-pack-objects"
msgstr "passar --local para git-pack-objects"
-#: builtin/repack.c:476
+#: builtin/repack.c:650
msgid "write bitmap index"
-msgstr "escrever index de bitmap"
+msgstr "escrever índice de bitmap"
-#: builtin/repack.c:478
+#: builtin/repack.c:652
msgid "pass --delta-islands to git-pack-objects"
msgstr "passar --delta-islands para git-pack-objects"
-#: builtin/repack.c:479
+#: builtin/repack.c:653
msgid "approxidate"
msgstr "aproximar"
-#: builtin/repack.c:480
+#: builtin/repack.c:654
msgid "with -A, do not loosen objects older than this"
msgstr "com -A, deixar de soltar objetos mais velhos que isto"
-#: builtin/repack.c:482
+#: builtin/repack.c:656
msgid "with -a, repack unreachable objects"
msgstr "com -a, reempacotar objetos inalcançáveis"
-#: builtin/repack.c:484
+#: builtin/repack.c:658
msgid "size of the window used for delta compression"
msgstr "dimensão da janela usada para compressão de delta"
-#: builtin/repack.c:485 builtin/repack.c:491
+#: builtin/repack.c:659 builtin/repack.c:665
msgid "bytes"
msgstr "bytes"
-#: builtin/repack.c:486
+#: builtin/repack.c:660
msgid "same as the above, but limit memory size instead of entries count"
msgstr ""
"o mesmo que o anterior, mas limitar a memória usada em vez do número de "
"entradas"
-#: builtin/repack.c:488
+#: builtin/repack.c:662
msgid "limits the maximum delta depth"
msgstr "limitar a profundidade máxima de delta"
-#: builtin/repack.c:490
+#: builtin/repack.c:664
msgid "limits the maximum number of threads"
msgstr "limitar máximo número de fios"
-#: builtin/repack.c:492
+#: builtin/repack.c:666
msgid "maximum size of each packfile"
msgstr "tamanho máximo de cada ficheiro de pacote"
-#: builtin/repack.c:494
+#: builtin/repack.c:668
msgid "repack objects in packs marked with .keep"
msgstr "reempacotar objetos em pacotes marcados com .keep"
-#: builtin/repack.c:496
+#: builtin/repack.c:670
msgid "do not repack this pack"
msgstr "reempacotar nada deste pacote"
-#: builtin/repack.c:498
+#: builtin/repack.c:672
msgid "find a geometric progression with factor <N>"
msgstr ""
-#: builtin/repack.c:508
+#: builtin/repack.c:674
+msgid "write a multi-pack index of the resulting packs"
+msgstr ""
+
+#: builtin/repack.c:684
msgid "cannot delete packs in a precious-objects repo"
msgstr "incapaz apagar pacotes num repo de precious-objects"
-#: builtin/repack.c:512
-msgid "--keep-unreachable and -A are incompatible"
-msgstr "--keep-unreachable e -A são incompatíveis"
-
-#: builtin/repack.c:527
-msgid "--geometric is incompatible with -A, -a"
-msgstr "--geometric é incompatível com -A, -a"
-
-#: builtin/repack.c:639
+#: builtin/repack.c:833
msgid "Nothing new to pack."
msgstr ""
-#: builtin/repack.c:669
+#: builtin/repack.c:863
#, c-format
msgid "missing required file: %s"
msgstr ""
-#: builtin/repack.c:671
+#: builtin/repack.c:865
#, c-format
msgid "could not unlink: %s"
msgstr "incapaz unlink: %s"
@@ -20934,10 +21616,6 @@ msgstr "git replace [-f] --edit <objeto>"
msgid "git replace [-f] --graft <commit> [<parent>...]"
msgstr "git replace [-f] --graft <memória> [<parente>...]"
-#: builtin/replace.c:25
-msgid "git replace [-f] --convert-graft-file"
-msgstr "git replace [-f] --convert-graft-file"
-
#: builtin/replace.c:26
msgid "git replace -d <object>..."
msgstr "git replace -d <objeto>..."
@@ -20995,183 +21673,178 @@ msgstr ""
msgid "unable to open %s for reading"
msgstr "incapaz abrir %s para ler"
-#: builtin/replace.c:272
+#: builtin/replace.c:271
msgid "unable to spawn mktree"
msgstr "incapaz lançar mktree"
-#: builtin/replace.c:276
+#: builtin/replace.c:275
msgid "unable to read from mktree"
msgstr "incapaz ler de mktree"
-#: builtin/replace.c:285
+#: builtin/replace.c:284
msgid "mktree reported failure"
msgstr "mktree reportou falha"
-#: builtin/replace.c:289
+#: builtin/replace.c:288
msgid "mktree did not return an object name"
msgstr "mktree retornou nome de objeto nenhum"
-#: builtin/replace.c:298
+#: builtin/replace.c:297
#, c-format
msgid "unable to fstat %s"
msgstr "incapaz fstat %s"
-#: builtin/replace.c:303
+#: builtin/replace.c:302
msgid "unable to write object to database"
msgstr "incapaz escrever objeto para base de dados"
-#: builtin/replace.c:322 builtin/replace.c:378 builtin/replace.c:424
-#: builtin/replace.c:454
-#, c-format
-msgid "not a valid object name: '%s'"
-msgstr "nome de objeto inválido: '%s'"
-
-#: builtin/replace.c:326
+#: builtin/replace.c:325
#, c-format
msgid "unable to get object type for %s"
msgstr "incapaz obter tipo de objetos para %s"
-#: builtin/replace.c:342
+#: builtin/replace.c:341
msgid "editing object file failed"
msgstr "falhou editar ficheiro-objeto"
-#: builtin/replace.c:351
+#: builtin/replace.c:350
#, c-format
msgid "new object is the same as the old one: '%s'"
msgstr ""
-#: builtin/replace.c:384
+#: builtin/replace.c:383
#, c-format
msgid "could not parse %s as a commit"
-msgstr "incapaz processar %s como commit"
+msgstr "incapaz processar %s como memória"
-#: builtin/replace.c:416
+#: builtin/replace.c:415
#, c-format
msgid "bad mergetag in commit '%s'"
-msgstr "mergetag inválida em memória '%s'"
+msgstr "mergetag inválida na memória '%s'"
-#: builtin/replace.c:418
+#: builtin/replace.c:417
#, c-format
msgid "malformed mergetag in commit '%s'"
-msgstr "mergetag malformada no commit '%s'"
+msgstr "mergetag malformada na memória '%s'"
-#: builtin/replace.c:430
+#: builtin/replace.c:429
#, c-format
msgid ""
"original commit '%s' contains mergetag '%s' that is discarded; use --edit "
"instead of --graft"
msgstr ""
-"o commit original '%s' contém a mergetag '%s' que foi excluída; use --edit "
+"memória original '%s' contém a etiqueta-junção '%s' que foi descartada; usa --edit "
"em vez de --graft"
-#: builtin/replace.c:469
+#: builtin/replace.c:468
#, c-format
msgid "the original commit '%s' has a gpg signature"
-msgstr "o commit original '%s' tem uma assinatura gpg."
+msgstr "a memória original '%s' tem uma assinatura gpg."
-#: builtin/replace.c:470
+#: builtin/replace.c:469
msgid "the signature will be removed in the replacement commit!"
-msgstr "a assinatura será removida do commit suplente!"
+msgstr "a assinatura será removida na memória substituta!"
-#: builtin/replace.c:480
+#: builtin/replace.c:479
#, c-format
msgid "could not write replacement commit for: '%s'"
-msgstr "incapaz escrever o commit substituto para: '%s'"
+msgstr "incapaz escrever a memória substituta para: '%s'"
-#: builtin/replace.c:488
+#: builtin/replace.c:487
#, c-format
msgid "graft for '%s' unnecessary"
-msgstr ""
+msgstr "desnecessário enxerto para '%s'"
-#: builtin/replace.c:492
+#: builtin/replace.c:491
#, c-format
msgid "new commit is the same as the old one: '%s'"
msgstr ""
-#: builtin/replace.c:527
+#: builtin/replace.c:526
#, c-format
msgid ""
"could not convert the following graft(s):\n"
"%s"
msgstr ""
-"Impossível converter os seguinte(s) graft(s):\n"
+"incapaz converter os seguinte(s) enxerto(s):\n"
"%s"
-#: builtin/replace.c:548
+#: builtin/replace.c:547
msgid "list replace refs"
-msgstr "listar referências substituídas"
+msgstr "listar refs de substituição"
-#: builtin/replace.c:549
+#: builtin/replace.c:548
msgid "delete replace refs"
msgstr "eliminar refs de substituição"
-#: builtin/replace.c:550
+#: builtin/replace.c:549
msgid "edit existing object"
msgstr "editar objeto existente"
-#: builtin/replace.c:551
+#: builtin/replace.c:550
msgid "change a commit's parents"
-msgstr "mudar os pais de um commit"
+msgstr "alterar parentes da memória"
-#: builtin/replace.c:552
+#: builtin/replace.c:551
msgid "convert existing graft file"
-msgstr "converter ficheiro excerto existente"
+msgstr "converter ficheiro enxerto existente"
-#: builtin/replace.c:553
+#: builtin/replace.c:552
msgid "replace the ref if it exists"
msgstr "substituir a referência se esta existir"
-#: builtin/replace.c:555
+#: builtin/replace.c:554
msgid "do not pretty-print contents for --edit"
msgstr "incapaz pretty-print conteúdo para --edit"
-#: builtin/replace.c:556
+#: builtin/replace.c:555
msgid "use this format"
msgstr "usar este formato"
-#: builtin/replace.c:569
+#: builtin/replace.c:568
msgid "--format cannot be used when not listing"
msgstr "--format apenas pode ser usado quando fazes listagem"
-#: builtin/replace.c:577
+#: builtin/replace.c:576
msgid "-f only makes sense when writing a replacement"
msgstr "-f apenas faz sentido quando escreves um substituto"
-#: builtin/replace.c:581
+#: builtin/replace.c:580
msgid "--raw only makes sense with --edit"
msgstr "--raw apenas faz sentido com --edit"
-#: builtin/replace.c:587
+#: builtin/replace.c:586
msgid "-d needs at least one argument"
msgstr "-d precisa pelo menos um argumento"
-#: builtin/replace.c:593
+#: builtin/replace.c:592
msgid "bad number of arguments"
msgstr ""
-#: builtin/replace.c:599
+#: builtin/replace.c:598
msgid "-e needs exactly one argument"
msgstr ""
-#: builtin/replace.c:605
+#: builtin/replace.c:604
msgid "-g needs at least one argument"
msgstr ""
-#: builtin/replace.c:611
+#: builtin/replace.c:610
msgid "--convert-graft-file takes no argument"
msgstr "--convert-graft-file leva argumento nenhum"
-#: builtin/replace.c:617
+#: builtin/replace.c:616
msgid "only one pattern can be given with -l"
msgstr "com -l apenas pode ser dado um padrão"
#: builtin/rerere.c:13
msgid "git rerere [clear | forget <path>... | status | remaining | diff | gc]"
-msgstr "git rerere [clear | forget <caminho>... | status | remaining | diff | gc]"
+msgstr ""
+"git rerere [clear | forget <caminho>... | status | remaining | diff | gc]"
#: builtin/rerere.c:58
msgid "register clean resolutions in index"
-msgstr "registar resoluções limpas no índice"
+msgstr "registar resoluções corretas em cenário"
#: builtin/rerere.c:77
msgid "'git rerere forget' without paths is deprecated"
@@ -21182,162 +21855,154 @@ msgstr "'git rerere forget' sem caminho é obsoleto"
msgid "unable to generate diff for '%s'"
msgstr "incapaz gerar diff para '%s'"
-#: builtin/reset.c:32
+#: builtin/reset.c:33
msgid ""
"git reset [--mixed | --soft | --hard | --merge | --keep] [-q] [<commit>]"
msgstr ""
-"git reset [--mixed | --soft | --hard | --merge | --keep] [-q] [<commit>]"
+"git reset [--mixed | --soft | --hard | --merge | --keep] [-q] [<memória>]"
-#: builtin/reset.c:33
+#: builtin/reset.c:34
msgid "git reset [-q] [<tree-ish>] [--] <pathspec>..."
msgstr "git reset [-q] [<arvoredo>] [--] <espetro-caminho>..."
-#: builtin/reset.c:34
+#: builtin/reset.c:35
msgid ""
"git reset [-q] [--pathspec-from-file [--pathspec-file-nul]] [<tree-ish>]"
msgstr ""
+"git reset [-q] [--pathspec-from-file [--pathspec-file-nul]] [<arvoredo>]"
-#: builtin/reset.c:35
+#: builtin/reset.c:36
msgid "git reset --patch [<tree-ish>] [--] [<pathspec>...]"
msgstr "git reset --patch [<arvoredo>] [--] [<espetro-caminho>...]"
-#: builtin/reset.c:41
+#: builtin/reset.c:42
msgid "mixed"
msgstr "misturado"
-#: builtin/reset.c:41
+#: builtin/reset.c:42
msgid "soft"
msgstr "suave"
-#: builtin/reset.c:41
+#: builtin/reset.c:42
msgid "hard"
msgstr "forte"
-#: builtin/reset.c:41
+#: builtin/reset.c:42
msgid "merge"
-msgstr "merge"
+msgstr "junção"
-#: builtin/reset.c:41
+#: builtin/reset.c:42
msgid "keep"
msgstr "conservador"
-#: builtin/reset.c:83
+#: builtin/reset.c:90
msgid "You do not have a valid HEAD."
-msgstr "HEAD inválida."
+msgstr "Tens HEAD inválida."
-#: builtin/reset.c:85
+#: builtin/reset.c:92
msgid "Failed to find tree of HEAD."
-msgstr "Falha ao procurar árvore de HEAD."
+msgstr "Falhou encontrar árvore de HEAD."
-#: builtin/reset.c:91
+#: builtin/reset.c:98
#, c-format
msgid "Failed to find tree of %s."
msgstr "Falhou encontrar árvore de %s."
-#: builtin/reset.c:116
+#: builtin/reset.c:123
#, c-format
msgid "HEAD is now at %s"
msgstr "HEAD está agora em %s"
-#: builtin/reset.c:195
+#: builtin/reset.c:304
#, c-format
msgid "Cannot do a %s reset in the middle of a merge."
msgstr "Incapaz de fazer uma reposição %s durante uma junção."
-#: builtin/reset.c:295 builtin/stash.c:589 builtin/stash.c:663
-#: builtin/stash.c:687
+#: builtin/reset.c:402 builtin/stash.c:606 builtin/stash.c:669
+#: builtin/stash.c:693
msgid "be quiet, only report errors"
msgstr "ficar silencioso, só reportar erros"
-#: builtin/reset.c:297
+#: builtin/reset.c:404
+msgid "skip refreshing the index after reset"
+msgstr ""
+
+#: builtin/reset.c:406
msgid "reset HEAD and index"
-msgstr "repor HEAD e índice"
+msgstr "restabelecer HEAD e cenário"
-#: builtin/reset.c:298
+#: builtin/reset.c:407
msgid "reset only HEAD"
-msgstr "repor HEAD apenas"
+msgstr "restabelecer apenas HEAD"
-#: builtin/reset.c:300 builtin/reset.c:302
+#: builtin/reset.c:409 builtin/reset.c:411
msgid "reset HEAD, index and working tree"
msgstr "restabelecer HEAD, cenário e árvore-trabalho"
-#: builtin/reset.c:304
+#: builtin/reset.c:413
msgid "reset HEAD but keep local changes"
-msgstr "repor HEAD mas conservar alterações locais"
+msgstr "restabelecer HEAD mas conservar alterações locais"
-#: builtin/reset.c:310
+#: builtin/reset.c:419
msgid "record only the fact that removed paths will be added later"
-msgstr "registar apenas o facto de que os caminhos removidos serão adicionados"
+msgstr ""
+"registar apenas o facto de que os caminhos removidos serão adicionados mais "
+"tarde"
-#: builtin/reset.c:344
+#: builtin/reset.c:452
#, c-format
msgid "Failed to resolve '%s' as a valid revision."
-msgstr "Falha ao resolver '%s' como referência válida."
+msgstr "Falhou resolver '%s' como referência válida."
-#: builtin/reset.c:352
+#: builtin/reset.c:460
#, c-format
msgid "Failed to resolve '%s' as a valid tree."
-msgstr "Falha ao resolver '%s' como árvore válida."
-
-#: builtin/reset.c:361
-msgid "--patch is incompatible with --{hard,mixed,soft}"
-msgstr "--patch é incompatível com --{hard,mixed,soft}"
+msgstr "Falhou resolver '%s' como árvore válida."
-#: builtin/reset.c:371
+#: builtin/reset.c:479
msgid "--mixed with paths is deprecated; use 'git reset -- <paths>' instead."
msgstr "--mixed com caminhos é obsoleto; usa 'git reset -- <caminhos>' invés."
-#: builtin/reset.c:373
+#: builtin/reset.c:481
#, c-format
msgid "Cannot do %s reset with paths."
-msgstr "Incapaz de fazer uma reposição %s com paths."
+msgstr "Incapaz de fazer uma reposição %s com caminhos."
-#: builtin/reset.c:388
+#: builtin/reset.c:496
#, c-format
msgid "%s reset is not allowed in a bare repository"
-msgstr "%s reset é proíbido num repositório nú"
-
-#: builtin/reset.c:392
-msgid "-N can only be used with --mixed"
-msgstr "-N só pode ser usado com --mixed"
+msgstr "%s restabelecer é proibido num repositório nu"
-#: builtin/reset.c:413
+#: builtin/reset.c:527
msgid "Unstaged changes after reset:"
-msgstr "Alterações despreparadas depois de reposição:"
+msgstr "Alterações desencenadas depois do restabelecimento:"
-#: builtin/reset.c:416
+#: builtin/reset.c:530
#, c-format
msgid ""
-"\n"
-"It took %.2f seconds to enumerate unstaged changes after reset. You can\n"
-"use '--quiet' to avoid this. Set the config setting reset.quiet to true\n"
-"to make this the default.\n"
+"It took %.2f seconds to refresh the index after reset. You can use\n"
+"'--no-refresh' to avoid this."
msgstr ""
+"Demorou %.2f segundos para refrescar o cenário após restabelecimento.\n"
+"Para evitar isto, podes usar '--no-refresh'."
-#: builtin/reset.c:434
+#: builtin/reset.c:547
#, c-format
msgid "Could not reset index file to revision '%s'."
-msgstr "Incapaz repor ficheiro index para a revisão '%s'."
+msgstr "Incapaz restabelecer ficheiro de cenário para a revisão '%s'."
-#: builtin/reset.c:439
+#: builtin/reset.c:552
msgid "Could not write new index file."
-msgstr "Incapaz escrever novo ficheiro index."
+msgstr "Incapaz escrever ficheiro de cenário novo."
-#: builtin/rev-list.c:541
-msgid "cannot combine --exclude-promisor-objects and --missing"
-msgstr ""
-
-#: builtin/rev-list.c:602
-msgid "object filtering requires --objects"
-msgstr ""
-
-#: builtin/rev-list.c:674
+#: builtin/rev-list.c:659
msgid "rev-list does not support display of notes"
msgstr "rev-list insustenta mostrar notas"
-#: builtin/rev-list.c:679
-msgid "marked counting is incompatible with --objects"
-msgstr ""
+#: builtin/rev-list.c:664
+#, c-format
+msgid "marked counting and '%s' cannot be used together"
+msgstr "contagem marcada e '%s' só podem ser usadas separadamente"
#: builtin/rev-parse.c:409
msgid "git rev-parse --parseopt [<options>] -- [<args>...]"
@@ -21389,7 +22054,7 @@ msgstr "--resolve-git-dir exige argumento"
#: builtin/rev-parse.c:715
#, c-format
msgid "not a gitdir '%s'"
-msgstr "gitdir '%s' nenhuma"
+msgstr "nenhuma pasta-git '%s'"
#: builtin/rev-parse.c:739
msgid "--git-path requires an argument"
@@ -21454,15 +22119,15 @@ msgstr "%s: %s incapaz ser usado com %s"
#: builtin/revert.c:102
msgid "end revert or cherry-pick sequence"
-msgstr "terminar reversão ou cherry-pick"
+msgstr "terminar sequência de reversão ou apanha"
#: builtin/revert.c:103
msgid "resume revert or cherry-pick sequence"
-msgstr "retomar a reversão ou cherry-pick"
+msgstr "retomar sequência de reversão ou apanha"
#: builtin/revert.c:104
msgid "cancel revert or cherry-pick sequence"
-msgstr "cancelar reversão ou cherry-pick"
+msgstr "cancelar sequência de reversão ou apanha"
#: builtin/revert.c:105
msgid "skip current commit and continue"
@@ -21470,7 +22135,7 @@ msgstr ""
#: builtin/revert.c:107
msgid "don't automatically commit"
-msgstr "memorizar automaticamente nada"
+msgstr "memorizar nada automaticamente"
#: builtin/revert.c:108
msgid "edit the commit message"
@@ -21482,7 +22147,7 @@ msgstr "número-parente"
#: builtin/revert.c:112
msgid "select mainline parent"
-msgstr "selecionar pai principal"
+msgstr "selecionar parente principal"
#: builtin/revert.c:114
msgid "merge strategy"
@@ -21494,23 +22159,27 @@ msgstr "opção para estratégia de junção"
#: builtin/revert.c:125
msgid "append commit name"
-msgstr "acrescentar nome do commit"
+msgstr "acrescentar nome de memória"
#: builtin/revert.c:127
msgid "preserve initially empty commits"
-msgstr "preservar commits inicialmente vazios"
+msgstr "preservar memórias inicialmente vazias"
+
+#: builtin/revert.c:128
+msgid "allow commits with empty messages"
+msgstr "permitir memórias com mensagens vazias"
#: builtin/revert.c:129
msgid "keep redundant, empty commits"
-msgstr "manter commits redundantes e vazios"
+msgstr "manter memórias redundantes e vazias"
-#: builtin/revert.c:237
+#: builtin/revert.c:241
msgid "revert failed"
msgstr "falha ao reverter"
-#: builtin/revert.c:250
+#: builtin/revert.c:254
msgid "cherry-pick failed"
-msgstr "falha ao efetuar cherry-pick"
+msgstr "falhou a apanha"
#: builtin/rm.c:20
msgid "git rm [<options>] [--] <file>..."
@@ -21524,10 +22193,10 @@ msgid_plural ""
"the following files have staged content different from both the\n"
"file and the HEAD:"
msgstr[0] ""
-"o seguinte ficheiro tem staged content diferente quer no ficheiro\n"
+"o ficheiro seguinte tem conteúdo encenado diferente quer no ficheiro\n"
"quer em HEAD:"
msgstr[1] ""
-"os seguintes ficheiros têm staged content diferente quer no ficheiro\n"
+"os ficheiros seguintes têm conteúdo encenado diferente quer no ficheiro\n"
"quer em HEAD:"
#: builtin/rm.c:213
@@ -21541,8 +22210,8 @@ msgstr ""
#: builtin/rm.c:217
msgid "the following file has changes staged in the index:"
msgid_plural "the following files have changes staged in the index:"
-msgstr[0] "o seguinte ficheiro contém alterações preparadas no índice:"
-msgstr[1] "os seguintes ficheiros contêm alterações preparadas no índice:"
+msgstr[0] "o ficheiro seguinte tem alterações encenadas no cenário:"
+msgstr[1] "os ficheiros seguintes tem alterações encenadas no cenário:"
#: builtin/rm.c:221 builtin/rm.c:230
msgid ""
@@ -21558,70 +22227,70 @@ msgid_plural "the following files have local modifications:"
msgstr[0] "o seguinte ficheiro contém alterações locais:"
msgstr[1] "os seguintes ficheiros contêm alterações locais:"
-#: builtin/rm.c:244
+#: builtin/rm.c:245
msgid "do not list removed files"
msgstr "listar ficheiros removidos nenhuns"
-#: builtin/rm.c:245
+#: builtin/rm.c:246
msgid "only remove from the index"
-msgstr "remover apenas do índice"
+msgstr "remover apenas de cenário"
-#: builtin/rm.c:246
+#: builtin/rm.c:247
msgid "override the up-to-date check"
-msgstr "ignorar verificação de atualização"
+msgstr "sobrepor a verificação de atualização"
-#: builtin/rm.c:247
+#: builtin/rm.c:248
msgid "allow recursive removal"
msgstr "permitir remoção recursiva"
-#: builtin/rm.c:249
+#: builtin/rm.c:250
msgid "exit with a zero status even if nothing matched"
msgstr "sair com valor zero mesmo se nada corresponder"
-#: builtin/rm.c:283
+#: builtin/rm.c:285
msgid "No pathspec was given. Which files should I remove?"
msgstr ""
-#: builtin/rm.c:310
+#: builtin/rm.c:315
msgid "please stage your changes to .gitmodules or stash them to proceed"
msgstr ""
"por favor encena tuas alterações em .gitmodules ou esconde-as para prosseguir"
-#: builtin/rm.c:331
+#: builtin/rm.c:337
#, c-format
msgid "not removing '%s' recursively without -r"
msgstr "removendo '%s' recursivamente apenas com -r"
-#: builtin/rm.c:379
+#: builtin/rm.c:385
#, c-format
msgid "git rm: unable to remove %s"
msgstr "git rm: incapaz remover %s"
#: builtin/send-pack.c:20
msgid ""
-"git send-pack [--all | --mirror] [--dry-run] [--force] [--receive-pack=<git-"
-"receive-pack>] [--verbose] [--thin] [--atomic] [<host>:]<directory> "
-"[<ref>...]\n"
-" --all and explicit <ref> specification are mutually exclusive."
+"git send-pack [--mirror] [--dry-run] [--force]\n"
+" [--receive-pack=<git-receive-pack>]\n"
+" [--verbose] [--thin] [--atomic]\n"
+" [<host>:]<directory> (--all | <ref>...)"
msgstr ""
-"git send-pack [--all | --mirror] [--dry-run] [--force] [--receive-pack=<git-"
-"receive-pack>] [--verbose] [--thin] [--atomic] [<host>:]<diretório> "
-"[<ref>...]\n"
-" --all e <ref> explícito são mutuamente exclusivos."
+"git send-pack [--mirror] [--dry-run] [--force]\n"
+" [--receive-pack=<git-receive-pack>]\n"
+" [--verbose] [--thin] [--atomic]\n"
+" [<host>:]<pasta> (--all | <ref>...)"
-#: builtin/send-pack.c:188
+#: builtin/send-pack.c:192
msgid "remote name"
msgstr "nome de remoto"
-#: builtin/send-pack.c:201
+#: builtin/send-pack.c:205
msgid "use stateless RPC protocol"
msgstr "use protocolo RPC sem estado"
-#: builtin/send-pack.c:202
+#: builtin/send-pack.c:206
msgid "read refs from stdin"
msgstr "ler refs de entrada padrão"
-#: builtin/send-pack.c:203
+#: builtin/send-pack.c:207
msgid "print status from remote helper"
msgstr "imprimir status de ajudante remoto"
@@ -21652,11 +22321,11 @@ msgstr "agrupar por memorizador em vez de autor"
#: builtin/shortlog.c:354
msgid "sort output according to the number of commits per author"
-msgstr "ordenar saída de acordo com o número de commits por autor"
+msgstr "ordenar saída de acordo com o número de memórias por autor"
#: builtin/shortlog.c:356
msgid "suppress commit descriptions, only provides commit count"
-msgstr "suprimir a descrição dos commits, fornecer apenas o número de commits"
+msgstr "suprimir a descrição de memórias, fornecer apenas o número de memórias"
#: builtin/shortlog.c:358
msgid "show the email address of each author"
@@ -21678,27 +22347,28 @@ msgstr ""
msgid "group by field"
msgstr ""
-#: builtin/shortlog.c:391
+#: builtin/shortlog.c:395
msgid "too many arguments given outside repository"
msgstr ""
-#: builtin/show-branch.c:13
+#: builtin/show-branch.c:14
msgid ""
"git show-branch [-a | --all] [-r | --remotes] [--topo-order | --date-order]\n"
-"\t\t[--current] [--color[=<when>] | --no-color] [--sparse]\n"
-"\t\t[--more=<n> | --list | --independent | --merge-base]\n"
-"\t\t[--no-name | --sha1-name] [--topics] [(<rev> | <glob>)...]"
+" [--current] [--color[=<when>] | --no-color] [--sparse]\n"
+" [--more=<n> | --list | --independent | --merge-base]\n"
+" [--no-name | --sha1-name] [--topics] [(<rev> | <glob>)...]"
msgstr ""
"git show-branch [-a | --all] [-r | --remotes] [--topo-order | --date-order]\n"
-"\t\t[--current] [--color[=<when>] | --no-color] [--sparse]\n"
-"\t\t[--more=<n> | --list | --independent | --merge-base]\n"
-"\t\t[--no-name | --sha1-name] [--topics] [(<revisão> | <glob>)...]"
+" [--current] [--color[=<quando>] | --no-color] [--sparse]\n"
+" [--more=<n> | --list | --independent | --merge-base]\n"
+" [--no-name | --sha1-name] [--topics] [(<revisão> | "
+"<glob>)...]"
-#: builtin/show-branch.c:17
+#: builtin/show-branch.c:18
msgid "git show-branch (-g | --reflog)[=<n>[,<base>]] [--list] [<ref>]"
msgstr "git show-branch (-g | --reflog)[=<n>[,<base>]] [--list] [<ref>]"
-#: builtin/show-branch.c:395
+#: builtin/show-branch.c:396
#, c-format
msgid "ignoring %s; cannot handle more than %d ref"
msgid_plural "ignoring %s; cannot handle more than %d refs"
@@ -21708,7 +22378,7 @@ msgstr[1] "ignorando %s; incapaz lidar mais que %d refs"
#: builtin/show-branch.c:548
#, c-format
msgid "no matching refs with %s"
-msgstr "correspondência de refs com %s nenhuma"
+msgstr "nenhuma correspondência de refs com %s"
#: builtin/show-branch.c:645
msgid "show remote-tracking and local branches"
@@ -21716,7 +22386,7 @@ msgstr "mostrar os ramos de monitorização remotos e os ramos locais"
#: builtin/show-branch.c:647
msgid "show remote-tracking branches"
-msgstr ""
+msgstr "mostrar ramos remotos de monitorização"
#: builtin/show-branch.c:649
msgid "color '*!+-' corresponding to the branch"
@@ -21724,7 +22394,7 @@ msgstr "colorir '*!+-' correspondendo ao ramo"
#: builtin/show-branch.c:651
msgid "show <n> more commits after the common ancestor"
-msgstr "mostrar mais <n> commits depois do antecessor comum"
+msgstr "mostrar mais <n> memórias após a antecessora comum"
#: builtin/show-branch.c:653
msgid "synonym to more=-1"
@@ -21740,15 +22410,15 @@ msgstr "incluir o ramo atual"
#: builtin/show-branch.c:658
msgid "name commits with their object names"
-msgstr "designar commits pelos seus nomes de objeto"
+msgstr "designar memórias pelos seus nomes de objeto"
#: builtin/show-branch.c:660
msgid "show possible merge bases"
-msgstr "mostrar possíveis bases de integração"
+msgstr "mostrar possíveis bases de junção"
#: builtin/show-branch.c:662
msgid "show refs unreachable from any other ref"
-msgstr "mostrar referências inalcançáveis a partir de outras referências"
+msgstr "mostrar refs inalcançáveis a partir de outras refs"
#: builtin/show-branch.c:664
msgid "show commits in topological order"
@@ -21760,7 +22430,7 @@ msgstr "mostrar apenas memórias fora do primeiro ramo"
#: builtin/show-branch.c:669
msgid "show merges reachable from only one tip"
-msgstr "mostrar integrações alcançáveis a partir duma única ponta"
+msgstr "mostrar junções alcançáveis a partir duma única ponta"
#: builtin/show-branch.c:671
msgid "topologically sort, maintaining date order where possible"
@@ -21773,13 +22443,7 @@ msgstr "<n>[,<base>]"
#: builtin/show-branch.c:675
msgid "show <n> most recent ref-log entries starting at base"
-msgstr "mostrar as <n> entradas de ref-log mais recente a partir da base"
-
-#: builtin/show-branch.c:711
-msgid ""
-"--reflog is incompatible with --all, --remotes, --independent or --merge-base"
-msgstr ""
-"--reflog é incompatível com --all, --remotes, --independent or --merge-base"
+msgstr "mostrar as <n> entradas de ref-log mais recente começando na base"
#: builtin/show-branch.c:735
msgid "no branches given, and HEAD is not valid"
@@ -21793,8 +22457,8 @@ msgstr "opção --reflog precisa de nome de ramo"
#, c-format
msgid "only %d entry can be shown at one time."
msgid_plural "only %d entries can be shown at one time."
-msgstr[0] "apenas %d entrada podem ser mostradas neste momento."
-msgstr[1] "apenas %d entradas podem ser mostradas neste momento."
+msgstr[0] "apenas %d entrada podem ser mostradas de uma só vez."
+msgstr[1] "apenas %d entradas podem ser mostradas de uma só vez."
#: builtin/show-branch.c:745
#, c-format
@@ -21816,7 +22480,7 @@ msgstr "'%s' é uma ref inválida."
#: builtin/show-branch.c:838
#, c-format
msgid "cannot find commit %s (%s)"
-msgstr "incapaz encontrar commit %s (%s)"
+msgstr "incapaz encontrar memória %s (%s)"
#: builtin/show-index.c:21
msgid "hash-algorithm"
@@ -21840,17 +22504,15 @@ msgstr "git show-ref --exclude-existing[=<padrão>]"
#: builtin/show-ref.c:162
msgid "only show tags (can be combined with heads)"
-msgstr "mostrar apenas tags (pode ser combinado com heads)"
+msgstr "mostrar apenas etiquetas (pode ser combinado com cabeças)"
#: builtin/show-ref.c:163
msgid "only show heads (can be combined with tags)"
-msgstr "mostrar apenas cabeças (pode ser combinado com tags)"
+msgstr "mostrar apenas cabeças (pode ser combinado com etiquetas)"
#: builtin/show-ref.c:164
msgid "stricter reference checking, requires exact ref path"
-msgstr ""
-"verificação de referências mais rigorosa, requer o caminho exato da "
-"referência"
+msgstr "verificação de referências mais rigorosa, exige caminho exato da ref"
#: builtin/show-ref.c:167 builtin/show-ref.c:169
msgid "show the HEAD reference, even if it would be filtered out"
@@ -21858,7 +22520,7 @@ msgstr "mostrar a referência HEAD, mesmo que fosse filtrada"
#: builtin/show-ref.c:171
msgid "dereference tags into object IDs"
-msgstr "desreferenciar tags em IDs de objeto"
+msgstr "desreferenciar etiquetas em IDs de objeto"
#: builtin/show-ref.c:173
msgid "only show SHA1 hash using <n> digits"
@@ -21872,84 +22534,141 @@ msgstr "imprimir resultados nenhuns para stdout (útil com --verify)"
msgid "show refs from stdin that aren't in local repository"
msgstr "mostrar refs de stdin que estão fora do repositório local"
-#: builtin/sparse-checkout.c:22
+#: builtin/sparse-checkout.c:23
msgid "git sparse-checkout (init|list|set|add|reapply|disable) <options>"
-msgstr ""
+msgstr "git sparse-checkout (init|list|set|add|reapply|disable) <opções>"
-#: builtin/sparse-checkout.c:46
-msgid "git sparse-checkout list"
-msgstr "git sparse-checkout list"
+#: builtin/sparse-checkout.c:61
+msgid "this worktree is not sparse"
+msgstr "esta árvore-trabalho é nada dispersa"
-#: builtin/sparse-checkout.c:72
+#: builtin/sparse-checkout.c:76
msgid "this worktree is not sparse (sparse-checkout file may not exist)"
msgstr ""
-#: builtin/sparse-checkout.c:227
+#: builtin/sparse-checkout.c:177
+#, c-format
+msgid ""
+"directory '%s' contains untracked files, but is not in the sparse-checkout "
+"cone"
+msgstr ""
+
+#: builtin/sparse-checkout.c:185
+#, c-format
+msgid "failed to remove directory '%s'"
+msgstr "falhou remover pasta '%s'"
+
+#: builtin/sparse-checkout.c:327
msgid "failed to create directory for sparse-checkout file"
msgstr "falhou criar a pasta para ficheiro sparse-checkout"
-#: builtin/sparse-checkout.c:268
-msgid "unable to upgrade repository format to enable worktreeConfig"
-msgstr ""
-
-#: builtin/sparse-checkout.c:270
-msgid "failed to set extensions.worktreeConfig setting"
-msgstr ""
+#: builtin/sparse-checkout.c:366
+msgid "failed to initialize worktree config"
+msgstr "falhou iniciar config da árvore-trabalho"
-#: builtin/sparse-checkout.c:290
-msgid "git sparse-checkout init [--cone] [--[no-]sparse-index]"
+#: builtin/sparse-checkout.c:411
+msgid "failed to modify sparse-index config"
msgstr ""
-#: builtin/sparse-checkout.c:310
+#: builtin/sparse-checkout.c:441 builtin/sparse-checkout.c:793
+#: builtin/sparse-checkout.c:847
msgid "initialize the sparse-checkout in cone mode"
msgstr ""
-#: builtin/sparse-checkout.c:312
+#: builtin/sparse-checkout.c:443 builtin/sparse-checkout.c:795
+#: builtin/sparse-checkout.c:849
msgid "toggle the use of a sparse index"
msgstr ""
-#: builtin/sparse-checkout.c:340
-msgid "failed to modify sparse-index config"
-msgstr ""
-
-#: builtin/sparse-checkout.c:361
+#: builtin/sparse-checkout.c:479
#, c-format
msgid "failed to open '%s'"
msgstr "falhou abrir '%s'"
-#: builtin/sparse-checkout.c:413
+#: builtin/sparse-checkout.c:531
#, c-format
msgid "could not normalize path %s"
msgstr "incapaz normalizar patch %s"
-#: builtin/sparse-checkout.c:425
-msgid "git sparse-checkout (set|add) (--stdin | <patterns>)"
-msgstr ""
-
-#: builtin/sparse-checkout.c:450
+#: builtin/sparse-checkout.c:560
#, c-format
msgid "unable to unquote C-style string '%s'"
msgstr "incapaz de unquote string de C-style '%s'"
-#: builtin/sparse-checkout.c:504 builtin/sparse-checkout.c:528
+#: builtin/sparse-checkout.c:615 builtin/sparse-checkout.c:643
msgid "unable to load existing sparse-checkout patterns"
msgstr ""
-#: builtin/sparse-checkout.c:573
+#: builtin/sparse-checkout.c:619
+msgid "existing sparse-checkout patterns do not use cone mode"
+msgstr ""
+
+#: builtin/sparse-checkout.c:707
+msgid "please run from the toplevel directory in non-cone mode"
+msgstr ""
+
+#: builtin/sparse-checkout.c:712
+msgid "specify directories rather than patterns (no leading slash)"
+msgstr ""
+
+#: builtin/sparse-checkout.c:714
+msgid ""
+"specify directories rather than patterns. If your directory starts with a "
+"'!', pass --skip-checks"
+msgstr ""
+
+#: builtin/sparse-checkout.c:716
+msgid ""
+"specify directories rather than patterns. If your directory really has any "
+"of '*?[]\\' in it, pass --skip-checks"
+msgstr ""
+
+#: builtin/sparse-checkout.c:732
+#, c-format
+msgid ""
+"'%s' is not a directory; to treat it as a directory anyway, rerun with --"
+"skip-checks"
+msgstr ""
+
+#: builtin/sparse-checkout.c:734
+#, c-format
+msgid ""
+"pass a leading slash before paths such as '%s' if you want a single file "
+"(see NON-CONE PROBLEMS in the git-sparse-checkout manual)."
+msgstr ""
+
+#: builtin/sparse-checkout.c:739
+msgid "git sparse-checkout add [--skip-checks] (--stdin | <patterns>)"
+msgstr "git sparse-checkout add [--skip-checks] (--stdin | <padrão>)"
+
+#: builtin/sparse-checkout.c:752 builtin/sparse-checkout.c:797
+msgid ""
+"skip some sanity checks on the given paths that might give false positives"
+msgstr ""
+
+#: builtin/sparse-checkout.c:755 builtin/sparse-checkout.c:800
msgid "read patterns from standard in"
msgstr ""
-#: builtin/sparse-checkout.c:588
-msgid "git sparse-checkout reapply"
-msgstr "git sparse-checkout reapply"
+#: builtin/sparse-checkout.c:760
+msgid "no sparse-checkout to add to"
+msgstr "nenhum sparse-checkout a que adicionar"
+
+#: builtin/sparse-checkout.c:775
+msgid ""
+"git sparse-checkout set [--[no-]cone] [--[no-]sparse-index] [--skip-checks] "
+"(--stdin | <patterns>)"
+msgstr ""
+"git sparse-checkout set [--[no-]cone] [--[no-]sparse-index] [--skip-checks] "
+"(--stdin | <padrões>)"
-#: builtin/sparse-checkout.c:607
-msgid "git sparse-checkout disable"
-msgstr "git sparse-checkout disable"
+#: builtin/sparse-checkout.c:854
+msgid "must be in a sparse-checkout to reapply sparsity patterns"
+msgstr ""
-#: builtin/sparse-checkout.c:638
+#: builtin/sparse-checkout.c:914
msgid "error while refreshing working directory"
-msgstr "erro enquanto refrescava pasta de trabalho"
+msgstr "erro ao refrescar pasta-trabalho"
#: builtin/stash.c:24 builtin/stash.c:40
msgid "git stash list [<options>]"
@@ -21961,11 +22680,11 @@ msgstr "git stash show [<opções>] [<esconderijo>]"
#: builtin/stash.c:26 builtin/stash.c:50
msgid "git stash drop [-q|--quiet] [<stash>]"
-msgstr ""
+msgstr "git stash drop [-q|--quiet] [<esconderijo>]"
#: builtin/stash.c:27
msgid "git stash ( pop | apply ) [--index] [-q|--quiet] [<stash>]"
-msgstr ""
+msgstr "git stash ( pop | apply ) [--index] [-q|--quiet] [<esconderijo>]"
#: builtin/stash.c:28 builtin/stash.c:65
msgid "git stash branch <branchname> [<stash>]"
@@ -21973,29 +22692,39 @@ msgstr "git stash branch <nome-de-ramo> [<esconderijo>]"
#: builtin/stash.c:30
msgid ""
-"git stash [push [-p|--patch] [-k|--[no-]keep-index] [-q|--quiet]\n"
+"git stash [push [-p|--patch] [-S|--staged] [-k|--[no-]keep-index] [-q|--"
+"quiet]\n"
" [-u|--include-untracked] [-a|--all] [-m|--message <message>]\n"
" [--pathspec-from-file=<file> [--pathspec-file-nul]]\n"
" [--] [<pathspec>...]]"
msgstr ""
+"git stash [push [-p|--patch] [-S|--staged] [-k|--[no-]keep-index] [-q|--"
+"quiet]\n"
+" [-u|--include-untracked] [-a|--all] [-m|--message <mensagem>]\n"
+" [--pathspec-from-file=<ficheiro> [--pathspec-file-nul]]\n"
+" [--] [<espetro-caminho>...]]"
-#: builtin/stash.c:34 builtin/stash.c:87
+#: builtin/stash.c:34
msgid ""
-"git stash save [-p|--patch] [-k|--[no-]keep-index] [-q|--quiet]\n"
+"git stash save [-p|--patch] [-S|--staged] [-k|--[no-]keep-index] [-q|--"
+"quiet]\n"
" [-u|--include-untracked] [-a|--all] [<message>]"
msgstr ""
+"git stash save [-p|--patch] [-S|--staged] [-k|--[no-]keep-index] [-q|--"
+"quiet]\n"
+" [-u|--include-untracked] [-a|--all] [<mensagem>]"
#: builtin/stash.c:55
msgid "git stash pop [--index] [-q|--quiet] [<stash>]"
-msgstr ""
+msgstr "git stash pop [--index] [-q|--quiet] [<esconderijo>]"
#: builtin/stash.c:60
msgid "git stash apply [--index] [-q|--quiet] [<stash>]"
-msgstr ""
+msgstr "git stash apply [--index] [-q|--quiet] [<esconderijo>]"
#: builtin/stash.c:75
msgid "git stash store [-m|--message <message>] [-q|--quiet] <commit>"
-msgstr ""
+msgstr "git stash store [-m|--message <mensagem>] [-q|--quiet] <memória>"
#: builtin/stash.c:80
msgid ""
@@ -22003,11 +22732,22 @@ msgid ""
" [-u|--include-untracked] [-a|--all] [-m|--message <message>]\n"
" [--] [<pathspec>...]]"
msgstr ""
+"git stash [push [-p|--patch] [-k|--[no-]keep-index] [-q|--quiet]\n"
+" [-u|--include-untracked] [-a|--all] [-m|--message <mensagem>]\n"
+" [--] [<espetro-caminho>...]]"
+
+#: builtin/stash.c:87
+msgid ""
+"git stash save [-p|--patch] [-k|--[no-]keep-index] [-q|--quiet]\n"
+" [-u|--include-untracked] [-a|--all] [<message>]"
+msgstr ""
+"git stash save [-p|--patch] [-k|--[no-]keep-index] [-q|--quiet]\n"
+" [-u|--include-untracked] [-a|--all] [<mensagem>]"
#: builtin/stash.c:130
#, c-format
msgid "'%s' is not a stash-like commit"
-msgstr "'%s' é commit tipo-arrumos nenhum"
+msgstr "'%s' é memória tipo esconderijo nenhuma"
#: builtin/stash.c:150
#, c-format
@@ -22016,7 +22756,7 @@ msgstr "Demasiadas revisões especificadas:%s"
#: builtin/stash.c:164
msgid "No stash entries found."
-msgstr "Nenhuma pilha encontrada."
+msgstr "Encontrado entrada de esconderijo nenhuma."
#: builtin/stash.c:178
#, c-format
@@ -22027,7 +22767,7 @@ msgstr "%s é referência inválida"
msgid "git stash clear with arguments is unimplemented"
msgstr "git stash clear com argumentos está por implementar"
-#: builtin/stash.c:431
+#: builtin/stash.c:447
#, c-format
msgid ""
"WARNING: Untracked file in way of tracked file! Renaming\n"
@@ -22035,179 +22775,181 @@ msgid ""
" to make room.\n"
msgstr ""
-#: builtin/stash.c:492
+#: builtin/stash.c:508
msgid "cannot apply a stash in the middle of a merge"
-msgstr "incapaz aplicar arrumação durante uma junção"
+msgstr "incapaz de esconder durante uma junção"
-#: builtin/stash.c:503
+#: builtin/stash.c:519
#, c-format
msgid "could not generate diff %s^!."
msgstr "incapaz gerar diff %s^!."
-#: builtin/stash.c:510
+#: builtin/stash.c:526
msgid "conflicts in index. Try without --index."
msgstr "conflitos no cenário. Tenta sem --index."
-#: builtin/stash.c:516
+#: builtin/stash.c:532
msgid "could not save index tree"
-msgstr "incapaz guardar árvore index"
+msgstr "incapaz guardar árvore de cenário"
-#: builtin/stash.c:525
-msgid "could not restore untracked files from stash"
-msgstr "incapaz restaurar ficheiros por seguir de arrumos"
-
-#: builtin/stash.c:539
+#: builtin/stash.c:552
#, c-format
msgid "Merging %s with %s"
msgstr "Juntando %s com %s"
-#: builtin/stash.c:549
+#: builtin/stash.c:562
msgid "Index was not unstashed."
-msgstr "Index está por despreparar."
+msgstr "Cenário ficou por sair do esconderijo."
-#: builtin/stash.c:591 builtin/stash.c:689
+#: builtin/stash.c:576
+msgid "could not restore untracked files from stash"
+msgstr "incapaz restaurar ficheiros desmonitorizados de esconderijo"
+
+#: builtin/stash.c:608 builtin/stash.c:695
msgid "attempt to recreate the index"
-msgstr ""
+msgstr "tentativa de recriar o cenário"
-#: builtin/stash.c:635
+#: builtin/stash.c:641
#, c-format
msgid "Dropped %s (%s)"
msgstr "Descartei %s (%s)"
-#: builtin/stash.c:638
+#: builtin/stash.c:644
#, c-format
msgid "%s: Could not drop stash entry"
-msgstr "%s: Incapaz descartar entrada de arrumos"
+msgstr "%s: Incapaz descartar entrada de esconderijo"
-#: builtin/stash.c:651
+#: builtin/stash.c:657
#, c-format
msgid "'%s' is not a stash reference"
-msgstr "'%s' é referência de arrumos nenhuma"
+msgstr "'%s' é referência de esconderijo nenhuma"
-#: builtin/stash.c:701
+#: builtin/stash.c:707
msgid "The stash entry is kept in case you need it again."
-msgstr "A pilha é guarda no caso de precisar dela de novo."
+msgstr "A entrada de esconderijo está guardada caso voltes a precisar."
-#: builtin/stash.c:724
+#: builtin/stash.c:730
msgid "No branch name specified"
msgstr "Nenhum nome de ramo especificado"
-#: builtin/stash.c:808
+#: builtin/stash.c:809
msgid "failed to parse tree"
msgstr "falhou processar árvore"
-#: builtin/stash.c:819
+#: builtin/stash.c:820
msgid "failed to unpack trees"
msgstr "falhou desempacotar árvores"
-#: builtin/stash.c:839
+#: builtin/stash.c:840
msgid "include untracked files in the stash"
msgstr "incluir ficheiros desmonitorizados em esconderijo"
-#: builtin/stash.c:842
+#: builtin/stash.c:843
msgid "only show untracked files in the stash"
-msgstr "mostrar apenas ficheiros desmonitorizados de esconderijo"
+msgstr "apenas mostrar ficheiros desmonitorizados de esconderijo"
-#: builtin/stash.c:929 builtin/stash.c:966
+#: builtin/stash.c:930 builtin/stash.c:967
#, c-format
msgid "Cannot update %s with %s"
msgstr "Incapaz atualizar %s com %s"
-#: builtin/stash.c:947 builtin/stash.c:1602 builtin/stash.c:1667
+#: builtin/stash.c:948 builtin/stash.c:1667 builtin/stash.c:1739
msgid "stash message"
msgstr "mensagem de esconderijo"
-#: builtin/stash.c:957
+#: builtin/stash.c:958
msgid "\"git stash store\" requires one <commit> argument"
-msgstr ""
+msgstr "\"git stash store\" exige um argumento <memória>"
+
+#: builtin/stash.c:1143
+msgid "No staged changes"
+msgstr "Alterações encenadas nenhumas"
-#: builtin/stash.c:1171
+#: builtin/stash.c:1204
msgid "No changes selected"
msgstr "Nenhuma alteração selecionada"
-#: builtin/stash.c:1271
+#: builtin/stash.c:1304
msgid "You do not have the initial commit yet"
-msgstr "Commit inicial ainda é inexistente"
+msgstr "Memória inicial ainda é inexistente"
-#: builtin/stash.c:1298
+#: builtin/stash.c:1331
msgid "Cannot save the current index state"
msgstr "Incapaz guardar estado atual de index"
-#: builtin/stash.c:1307
+#: builtin/stash.c:1340
msgid "Cannot save the untracked files"
-msgstr "Incapaz de guardar ficheiros por seguir"
+msgstr "Incapaz de guardar ficheiros desmonitorizados"
-#: builtin/stash.c:1318 builtin/stash.c:1327
+#: builtin/stash.c:1351 builtin/stash.c:1370
msgid "Cannot save the current worktree state"
-msgstr "Incapaz guardar o estado atual de worktree"
+msgstr "Incapaz guardar estado atual de árvore-trabalho"
+
+#: builtin/stash.c:1361
+msgid "Cannot save the current staged state"
+msgstr "Incapaz guardar estado atual de cenário"
-#: builtin/stash.c:1355
+#: builtin/stash.c:1398
msgid "Cannot record working tree state"
-msgstr "Incapaz gravar o estado de worktree"
+msgstr "Incapaz gravar estado de árvore-trabalho"
-#: builtin/stash.c:1404
+#: builtin/stash.c:1447
msgid "Can't use --patch and --include-untracked or --all at the same time"
-msgstr "Impossível usar --patch e --include-untracked ou --all ao mesmo tempo"
+msgstr "Incapaz usar --patch e --include-untracked ou --all ao mesmo tempo"
-#: builtin/stash.c:1422
+#: builtin/stash.c:1458
+msgid "Can't use --staged and --include-untracked or --all at the same time"
+msgstr "Incapaz usar --staged e --include-untracked ou --all ao mesmo tempo"
+
+#: builtin/stash.c:1476
msgid "Did you forget to 'git add'?"
-msgstr "Será que falta 'git add'?"
+msgstr "Será que esqueceste-te de 'git add'?"
-#: builtin/stash.c:1437
+#: builtin/stash.c:1491
msgid "No local changes to save"
msgstr "Com alterações locais para guardar nenhumas"
-#: builtin/stash.c:1444
+#: builtin/stash.c:1498
msgid "Cannot initialize stash"
-msgstr "Incapaz inicializar arrumos"
+msgstr "Incapaz inicializar esconderijo"
-#: builtin/stash.c:1459
+#: builtin/stash.c:1513
msgid "Cannot save the current status"
msgstr "Incapaz guardar o estado atual"
-#: builtin/stash.c:1464
+#: builtin/stash.c:1518
#, c-format
msgid "Saved working directory and index state %s"
msgstr "Pasta-trabalho e estado de cenário %s guardados"
-#: builtin/stash.c:1554
+#: builtin/stash.c:1615
msgid "Cannot remove worktree changes"
msgstr "Incapaz remover alterações de árvore-trabalho"
-#: builtin/stash.c:1593 builtin/stash.c:1658
+#: builtin/stash.c:1656 builtin/stash.c:1728
msgid "keep index"
-msgstr ""
+msgstr "manter cenário"
+
+#: builtin/stash.c:1658 builtin/stash.c:1730
+msgid "stash staged changes only"
+msgstr "esconder apenas alterações encenadas"
-#: builtin/stash.c:1595 builtin/stash.c:1660
+#: builtin/stash.c:1660 builtin/stash.c:1732
msgid "stash in patch mode"
-msgstr ""
+msgstr "esconder em modo remendos"
-#: builtin/stash.c:1596 builtin/stash.c:1661
+#: builtin/stash.c:1661 builtin/stash.c:1733
msgid "quiet mode"
msgstr "modo silencioso"
-#: builtin/stash.c:1598 builtin/stash.c:1663
+#: builtin/stash.c:1663 builtin/stash.c:1735
msgid "include untracked files in stash"
msgstr "incluir ficheiros desmonitorizados em esconderijo"
-#: builtin/stash.c:1600 builtin/stash.c:1665
+#: builtin/stash.c:1665 builtin/stash.c:1737
msgid "include ignore files"
msgstr "incluir ficheiros ignorados"
-#: builtin/stash.c:1700
-msgid ""
-"the stash.useBuiltin support has been removed!\n"
-"See its entry in 'git help config' for details."
-msgstr ""
-
-#: builtin/stripspace.c:18
-msgid "git stripspace [-s | --strip-comments]"
-msgstr "git stripspace [-s | --strip-comments]"
-
-#: builtin/stripspace.c:19
-msgid "git stripspace [-c | --comment-lines]"
-msgstr "git stripspace [-c | --comment-lines]"
-
#: builtin/stripspace.c:37
msgid "skip and remove all lines starting with comment character"
msgstr ""
@@ -22217,48 +22959,52 @@ msgstr ""
msgid "prepend comment character and space to each line"
msgstr "preceder cada linha com um carácter de comentário e um espaço"
-#: builtin/submodule--helper.c:46 builtin/submodule--helper.c:2440
+#: builtin/submodule--helper.c:50 builtin/submodule--helper.c:2486
#, c-format
msgid "Expecting a full ref name, got %s"
msgstr "Esperava-se um nome completo de uma referência, obteve-se %s"
-#: builtin/submodule--helper.c:63
-msgid "submodule--helper print-default-remote takes no arguments"
-msgstr ""
-
-#: builtin/submodule--helper.c:101
+#: builtin/submodule--helper.c:103
#, c-format
msgid "cannot strip one component off url '%s'"
msgstr "incapaz despir um componente a partir do url '%s'"
-#: builtin/submodule--helper.c:411 builtin/submodule--helper.c:1887
-#: builtin/submodule--helper.c:2891
+#: builtin/submodule--helper.c:213
+#, c-format
+msgid ""
+"could not look up configuration '%s'. Assuming this repository is its own "
+"authoritative upstream."
+msgstr ""
+"incapaz encontrar configuração '%s'. Assumindo que este repositório é o "
+"próprio repositório upstream autoritário."
+
+#: builtin/submodule--helper.c:413 builtin/submodule--helper.c:1873
msgid "alternative anchor for relative paths"
msgstr "âncora alternativa para caminhos relativos"
-#: builtin/submodule--helper.c:416
+#: builtin/submodule--helper.c:418
msgid "git submodule--helper list [--prefix=<path>] [<path>...]"
msgstr "git submodule--helper list [--prefix=<caminho>] [<caminho>...]"
-#: builtin/submodule--helper.c:474 builtin/submodule--helper.c:631
-#: builtin/submodule--helper.c:654
+#: builtin/submodule--helper.c:476 builtin/submodule--helper.c:617
+#: builtin/submodule--helper.c:640
#, c-format
msgid "No url found for submodule path '%s' in .gitmodules"
msgstr "Nenhum URL encontrado para o caminho de submódulo '%s' em .gitmodules"
-#: builtin/submodule--helper.c:526
+#: builtin/submodule--helper.c:528
#, c-format
msgid "Entering '%s'\n"
msgstr "Entrando em '%s'\n"
-#: builtin/submodule--helper.c:529
+#: builtin/submodule--helper.c:531
#, c-format
msgid ""
"run_command returned non-zero status for %s\n"
"."
msgstr ""
-#: builtin/submodule--helper.c:551
+#: builtin/submodule--helper.c:553
#, c-format
msgid ""
"run_command returned non-zero status while recursing in the nested "
@@ -22266,227 +23012,214 @@ msgid ""
"."
msgstr ""
-#: builtin/submodule--helper.c:567
+#: builtin/submodule--helper.c:569
msgid "suppress output of entering each submodule command"
msgstr ""
-#: builtin/submodule--helper.c:569 builtin/submodule--helper.c:890
-#: builtin/submodule--helper.c:1489
+#: builtin/submodule--helper.c:571 builtin/submodule--helper.c:876
+#: builtin/submodule--helper.c:1458
msgid "recurse into nested submodules"
msgstr "percorrer recursivamente submódulos aninhados"
-#: builtin/submodule--helper.c:574
+#: builtin/submodule--helper.c:576
msgid "git submodule--helper foreach [--quiet] [--recursive] [--] <command>"
msgstr ""
-#: builtin/submodule--helper.c:601
-#, c-format
-msgid ""
-"could not look up configuration '%s'. Assuming this repository is its own "
-"authoritative upstream."
-msgstr ""
-"incapaz encontrar configuração '%s'. Assumindo que este repositório é o "
-"próprio repositório upstream autoritário."
-
-#: builtin/submodule--helper.c:668
+#: builtin/submodule--helper.c:654
#, c-format
msgid "Failed to register url for submodule path '%s'"
msgstr "Falhou registar url para caminho de submódulo '%s'"
-#: builtin/submodule--helper.c:672
+#: builtin/submodule--helper.c:658
#, c-format
msgid "Submodule '%s' (%s) registered for path '%s'\n"
msgstr "Submódulo '%s' (%s) registado para path '%s'\n"
-#: builtin/submodule--helper.c:682
+#: builtin/submodule--helper.c:668
#, c-format
msgid "warning: command update mode suggested for submodule '%s'\n"
msgstr "aviso: modo command update sugerido para submódulo '%s'\n"
-#: builtin/submodule--helper.c:689
+#: builtin/submodule--helper.c:675
#, c-format
msgid "Failed to register update mode for submodule path '%s'"
msgstr ""
-#: builtin/submodule--helper.c:711
+#: builtin/submodule--helper.c:697
msgid "suppress output for initializing a submodule"
msgstr ""
-#: builtin/submodule--helper.c:716
+#: builtin/submodule--helper.c:702
msgid "git submodule--helper init [<options>] [<path>]"
msgstr ""
-#: builtin/submodule--helper.c:789 builtin/submodule--helper.c:924
+#: builtin/submodule--helper.c:775 builtin/submodule--helper.c:910
#, c-format
msgid "no submodule mapping found in .gitmodules for path '%s'"
msgstr ""
"para path '%s' encontrei em .gitmodules, mapeamento de submódulo nenhum"
-#: builtin/submodule--helper.c:837
+#: builtin/submodule--helper.c:823
#, c-format
msgid "could not resolve HEAD ref inside the submodule '%s'"
msgstr "incapaz resolver ref HEAD dentro de submódulo '%s'"
-#: builtin/submodule--helper.c:864 builtin/submodule--helper.c:1459
+#: builtin/submodule--helper.c:850 builtin/submodule--helper.c:1428
#, c-format
msgid "failed to recurse into submodule '%s'"
msgstr "falhou percorrer recursivamente o submódulo '%s'"
-#: builtin/submodule--helper.c:888 builtin/submodule--helper.c:1625
+#: builtin/submodule--helper.c:874 builtin/submodule--helper.c:1595
msgid "suppress submodule status output"
msgstr "suprimir saída de status de submódulo"
-#: builtin/submodule--helper.c:889
+#: builtin/submodule--helper.c:875
msgid ""
"use commit stored in the index instead of the one stored in the submodule "
"HEAD"
msgstr ""
-#: builtin/submodule--helper.c:895
+#: builtin/submodule--helper.c:881
msgid "git submodule status [--quiet] [--cached] [--recursive] [<path>...]"
msgstr "git submodule status [--quiet] [--cached] [--recursive] [<caminho>...]"
-#: builtin/submodule--helper.c:919
+#: builtin/submodule--helper.c:905
msgid "git submodule--helper name <path>"
msgstr "git submodule--helper name <caminho>"
-#: builtin/submodule--helper.c:991
+#: builtin/submodule--helper.c:977
#, c-format
msgid "* %s %s(blob)->%s(submodule)"
msgstr ""
-#: builtin/submodule--helper.c:994
+#: builtin/submodule--helper.c:980
#, c-format
msgid "* %s %s(submodule)->%s(blob)"
msgstr ""
-#: builtin/submodule--helper.c:1007
+#: builtin/submodule--helper.c:993
#, c-format
msgid "%s"
msgstr "[%s]"
-#: builtin/submodule--helper.c:1057
+#: builtin/submodule--helper.c:1043
#, c-format
msgid "couldn't hash object from '%s'"
msgstr "incapaz fazer hash a objeto a partir de '%s'"
-#: builtin/submodule--helper.c:1061
+#: builtin/submodule--helper.c:1047
#, c-format
msgid "unexpected mode %o\n"
msgstr "modo inesperado %o\n"
-#: builtin/submodule--helper.c:1302
+#: builtin/submodule--helper.c:1288
msgid "use the commit stored in the index instead of the submodule HEAD"
msgstr ""
-#: builtin/submodule--helper.c:1304
+#: builtin/submodule--helper.c:1290
msgid "compare the commit in the index with that in the submodule HEAD"
-msgstr "compara a memória no arquivador com aquela no submódulo HEAD"
+msgstr "compara a memória do cenário com aquela do submódulo HEAD"
-#: builtin/submodule--helper.c:1306
+#: builtin/submodule--helper.c:1292
msgid "skip submodules with 'ignore_config' value set to 'all'"
msgstr ""
-#: builtin/submodule--helper.c:1308
+#: builtin/submodule--helper.c:1294
msgid "limit the summary size"
msgstr "limitar tamanho de sumário"
-#: builtin/submodule--helper.c:1313
+#: builtin/submodule--helper.c:1299
msgid "git submodule--helper summary [<options>] [<commit>] [--] [<path>]"
msgstr ""
-#: builtin/submodule--helper.c:1337
+#: builtin/submodule--helper.c:1323
msgid "could not fetch a revision for HEAD"
msgstr "incapaz buscar uma revisão para HEAD"
-#: builtin/submodule--helper.c:1342
-msgid "--cached and --files are mutually exclusive"
-msgstr ""
-
-#: builtin/submodule--helper.c:1409
+#: builtin/submodule--helper.c:1384
#, c-format
msgid "Synchronizing submodule url for '%s'\n"
msgstr "Sincronizando url de submódulo para '%s'\n"
-#: builtin/submodule--helper.c:1415
+#: builtin/submodule--helper.c:1390
#, c-format
msgid "failed to register url for submodule path '%s'"
msgstr "falhou registar url para caminho de submódulo '%s'"
-#: builtin/submodule--helper.c:1429
+#: builtin/submodule--helper.c:1399
#, c-format
msgid "failed to get the default remote for submodule '%s'"
msgstr ""
-#: builtin/submodule--helper.c:1440
+#: builtin/submodule--helper.c:1409
#, c-format
msgid "failed to update remote for submodule '%s'"
msgstr ""
-#: builtin/submodule--helper.c:1487
+#: builtin/submodule--helper.c:1456
msgid "suppress output of synchronizing submodule url"
msgstr ""
-#: builtin/submodule--helper.c:1494
+#: builtin/submodule--helper.c:1463
msgid "git submodule--helper sync [--quiet] [--recursive] [<path>]"
msgstr ""
-#: builtin/submodule--helper.c:1548
+#: builtin/submodule--helper.c:1513
#, c-format
msgid ""
-"Submodule work tree '%s' contains a .git directory (use 'rm -rf' if you "
-"really want to remove it including all of its history)"
+"Submodule work tree '%s' contains a .git directory. This will be replaced "
+"with a .git file by using absorbgitdirs."
msgstr ""
-"Submodule work tree '%s' tem uma pasta .git (usa 'rm -rf' se queres mesmo "
-"removê-la e remover toda a história)"
+"Ãrvore-trabalho de submódulo '%s' contém uma pasta .git. Esta será "
+"substituída por um ficheiro .git usando o absorbgitdirs."
-#: builtin/submodule--helper.c:1560
+#: builtin/submodule--helper.c:1530
#, c-format
msgid ""
"Submodule work tree '%s' contains local modifications; use '-f' to discard "
"them"
msgstr ""
-"Ãrvore-trabalho de submódulo '%s' contém alterações locais; "
-"usa '-f' para as descartar"
+"Ãrvore-trabalho de submódulo '%s' contém alterações locais; usa '-f' para as "
+"descartar"
-#: builtin/submodule--helper.c:1568
+#: builtin/submodule--helper.c:1538
#, c-format
msgid "Cleared directory '%s'\n"
msgstr "Pasta '%s' limpa\n"
-#: builtin/submodule--helper.c:1570
+#: builtin/submodule--helper.c:1540
#, c-format
msgid "Could not remove submodule work tree '%s'\n"
-msgstr "Impossível remover submodule work tree '%s'\n"
+msgstr "Incapaz remover árvore-trabalho de submódulo '%s'\n"
-#: builtin/submodule--helper.c:1581
+#: builtin/submodule--helper.c:1551
#, c-format
msgid "could not create empty submodule directory %s"
-msgstr "incapaz criar pasta vazio de submódulo %s"
+msgstr "incapaz criar pasta vazia de submódulo %s"
-#: builtin/submodule--helper.c:1597
+#: builtin/submodule--helper.c:1567
#, c-format
msgid "Submodule '%s' (%s) unregistered for path '%s'\n"
msgstr "Submódulo '%s' (%s) unregistred para caminho '%s'\n"
-#: builtin/submodule--helper.c:1626
+#: builtin/submodule--helper.c:1596
msgid "remove submodule working trees even if they contain local changes"
msgstr ""
-#: builtin/submodule--helper.c:1627
+#: builtin/submodule--helper.c:1597
msgid "unregister all submodules"
msgstr ""
-#: builtin/submodule--helper.c:1632
+#: builtin/submodule--helper.c:1602
msgid ""
"git submodule deinit [--quiet] [-f | --force] [--all | [--] [<path>...]]"
msgstr ""
-#: builtin/submodule--helper.c:1646
+#: builtin/submodule--helper.c:1616
msgid "Use '--all' if you really want to deinitialize all submodules"
msgstr "Usa '--all' se queres mesmo anular a inicialização de todos submódulos"
-#: builtin/submodule--helper.c:1690
+#: builtin/submodule--helper.c:1665
msgid ""
"An alternate computed from a superproject's alternate is invalid.\n"
"To allow Git to clone without an alternate in such a case, set\n"
@@ -22494,296 +23227,461 @@ msgid ""
"'--reference-if-able' instead of '--reference'."
msgstr ""
-#: builtin/submodule--helper.c:1729 builtin/submodule--helper.c:1732
+#: builtin/submodule--helper.c:1710 builtin/submodule--helper.c:1713
#, c-format
msgid "submodule '%s' cannot add alternate: %s"
msgstr "submódulo '%s' incapaz adicionar alternativo: %s"
-#: builtin/submodule--helper.c:1768
+#: builtin/submodule--helper.c:1749
#, c-format
msgid "Value '%s' for submodule.alternateErrorStrategy is not recognized"
msgstr "Valor '%s' de submodule.alternateErrorStrategy é irreconhecível"
-#: builtin/submodule--helper.c:1775
+#: builtin/submodule--helper.c:1756
#, c-format
msgid "Value '%s' for submodule.alternateLocation is not recognized"
msgstr "Valor '%s' de submodule.alternateLocation é irreconhecível"
-#: builtin/submodule--helper.c:1800
+#: builtin/submodule--helper.c:1781
#, c-format
msgid "refusing to create/use '%s' in another submodule's git dir"
msgstr "recusando criar/usar '%s' em outra pasta de submódulo git"
-#: builtin/submodule--helper.c:1841
+#: builtin/submodule--helper.c:1826
#, c-format
msgid "clone of '%s' into submodule path '%s' failed"
msgstr "clonar '%s' no caminho de submódulo '%s' falhou"
-#: builtin/submodule--helper.c:1846
+#: builtin/submodule--helper.c:1831
#, c-format
msgid "directory not empty: '%s'"
msgstr "pasta com conteúdo: '%s'"
-#: builtin/submodule--helper.c:1858
+#: builtin/submodule--helper.c:1843
#, c-format
msgid "could not get submodule directory for '%s'"
msgstr "incapaz obter pasta de submódulo para '%s'"
-#: builtin/submodule--helper.c:1890 builtin/submodule--helper.c:2894
+#: builtin/submodule--helper.c:1876
msgid "where the new submodule will be cloned to"
-msgstr "sítio para aonde o novo submódulo será clonado"
+msgstr "para onde o novo submódulo será clonado"
-#: builtin/submodule--helper.c:1893 builtin/submodule--helper.c:2897
+#: builtin/submodule--helper.c:1879
msgid "name of the new submodule"
msgstr "nome do novo submódulo"
-#: builtin/submodule--helper.c:1896 builtin/submodule--helper.c:2900
+#: builtin/submodule--helper.c:1882
msgid "url where to clone the submodule from"
-msgstr "url donde clonar o submódulos"
+msgstr "url donde clonar o submódulo"
-#: builtin/submodule--helper.c:1904 builtin/submodule--helper.c:2907
+#: builtin/submodule--helper.c:1890 builtin/submodule--helper.c:3383
msgid "depth for shallow clones"
-msgstr "profundidade de clones rasos"
+msgstr "profundidade de clones superficiais"
-#: builtin/submodule--helper.c:1907 builtin/submodule--helper.c:2365
-#: builtin/submodule--helper.c:2909
+#: builtin/submodule--helper.c:1893 builtin/submodule--helper.c:2731
+#: builtin/submodule--helper.c:3376
msgid "force cloning progress"
msgstr "forçar progresso da clonagem"
-#: builtin/submodule--helper.c:1909 builtin/submodule--helper.c:2367
+#: builtin/submodule--helper.c:1895 builtin/submodule--helper.c:2733
msgid "disallow cloning into non-empty directory"
msgstr "proibindo clonar para uma pasta com conteúdo"
-#: builtin/submodule--helper.c:1916
+#: builtin/submodule--helper.c:1903
+#, fuzzy
msgid ""
"git submodule--helper clone [--prefix=<path>] [--quiet] [--reference "
-"<repository>] [--name <name>] [--depth <depth>] [--single-branch] --url "
-"<url> --path <path>"
+"<repository>] [--name <name>] [--depth <depth>] [--single-branch] [--filter "
+"<filter-spec>] --url <url> --path <path>"
msgstr ""
"git submodule--helper clone [--prefix=<caminho>] [--quiet] [--reference "
-"<repositório>] [--name <nome>] [--depth <depth>] --url <url> --path <caminho>"
+"<repositório>] [--name <nome>] [--depth <profundidade>] [--single-branch] [--"
+"filter <espetro-filtro>] --url <url> --path <caminho>"
-#: builtin/submodule--helper.c:1953
+#: builtin/submodule--helper.c:1943
#, c-format
msgid "Invalid update mode '%s' for submodule path '%s'"
msgstr ""
-#: builtin/submodule--helper.c:1957
+#: builtin/submodule--helper.c:1947
#, c-format
msgid "Invalid update mode '%s' configured for submodule path '%s'"
msgstr ""
-#: builtin/submodule--helper.c:2058
+#: builtin/submodule--helper.c:2041
#, c-format
msgid "Submodule path '%s' not initialized"
msgstr "Path de submódulo '%s' por inicializar"
-#: builtin/submodule--helper.c:2062
+#: builtin/submodule--helper.c:2045
msgid "Maybe you want to use 'update --init'?"
msgstr "Pretendias usar 'update --init'?"
-#: builtin/submodule--helper.c:2092
+#: builtin/submodule--helper.c:2075
#, c-format
msgid "Skipping unmerged submodule %s"
msgstr "Passando à frente submódulo por juntar %s"
-#: builtin/submodule--helper.c:2121
+#: builtin/submodule--helper.c:2104
#, c-format
msgid "Skipping submodule '%s'"
msgstr "Passando à frente submódulo '%s'"
-#: builtin/submodule--helper.c:2271
+#: builtin/submodule--helper.c:2257
#, c-format
msgid "Failed to clone '%s'. Retry scheduled"
msgstr "Falha ao clonar '%s'. Nova tentativa agendada"
-#: builtin/submodule--helper.c:2282
+#: builtin/submodule--helper.c:2268
#, c-format
msgid "Failed to clone '%s' a second time, aborting"
msgstr "Falha ao clonar '%s' pela segunda vez, abortado"
-#: builtin/submodule--helper.c:2344 builtin/submodule--helper.c:2590
+#: builtin/submodule--helper.c:2371
+#, c-format
+msgid "Unable to checkout '%s' in submodule path '%s'"
+msgstr "Incapaz de observar '%s' em caminho de submódulo '%s'"
+
+#: builtin/submodule--helper.c:2375
+#, c-format
+msgid "Unable to rebase '%s' in submodule path '%s'"
+msgstr "Incapaz de rebasear '%s' em caminho de submódulo '%s'"
+
+#: builtin/submodule--helper.c:2379
+#, c-format
+msgid "Unable to merge '%s' in submodule path '%s'"
+msgstr "Incapaz juntar '%s' em caminho de submódulo '%s'"
+
+#: builtin/submodule--helper.c:2383
+#, c-format
+msgid "Execution of '%s %s' failed in submodule path '%s'"
+msgstr "Execução de '%s %s' falhou em caminho de submódulo '%s'"
+
+#: builtin/submodule--helper.c:2402
+#, c-format
+msgid "Submodule path '%s': checked out '%s'\n"
+msgstr "Caminho de submódulo '%s': '%s' observado\n"
+
+#: builtin/submodule--helper.c:2406
+#, c-format
+msgid "Submodule path '%s': rebased into '%s'\n"
+msgstr "Caminho de submódulo '%s': rebaseado para '%s'\n"
+
+#: builtin/submodule--helper.c:2410
+#, c-format
+msgid "Submodule path '%s': merged in '%s'\n"
+msgstr "Caminho de submódulo '%s': juntado em '%s'\n"
+
+#: builtin/submodule--helper.c:2414
+#, c-format
+msgid "Submodule path '%s': '%s %s'\n"
+msgstr "Caminho de submódulo '%s': '%s %s'\n"
+
+#: builtin/submodule--helper.c:2438
+#, c-format
+msgid "Unable to fetch in submodule path '%s'; trying to directly fetch %s:"
+msgstr ""
+"Incapaz de buscar em caminho de submódulo '%s'; tentando buscar %s "
+"directamente:"
+
+#: builtin/submodule--helper.c:2447
+#, c-format
+msgid ""
+"Fetched in submodule path '%s', but it did not contain %s. Direct fetching "
+"of that commit failed."
+msgstr ""
+"Buscado no caminho de submódulo '%s', mas continha nenhum %s. Falhou ao "
+"buscar essa memória diretamente."
+
+#: builtin/submodule--helper.c:2481
+#, c-format
+msgid ""
+"Submodule (%s) branch configured to inherit branch from superproject, but "
+"the superproject is not on any branch"
+msgstr ""
+"Ramo de submódulo (%s) foi configurado para herdar ramo de superprojeto, mas "
+"o superprojeto está em ramo nenhum"
+
+#: builtin/submodule--helper.c:2499
+#, c-format
+msgid "could not get a repository handle for submodule '%s'"
+msgstr "incapaz obter pega de repositório para submódulo '%s'"
+
+#: builtin/submodule--helper.c:2588
+#, c-format
+msgid "Unable to find current revision in submodule path '%s'"
+msgstr "Incapaz encontrar revisão atual em caminho de submódulo '%s'"
+
+#: builtin/submodule--helper.c:2599
+#, c-format
+msgid "Unable to fetch in submodule path '%s'"
+msgstr "Incapaz de buscar em caminho de submódulo '%s'"
+
+#: builtin/submodule--helper.c:2604
+#, c-format
+msgid "Unable to find %s revision in submodule path '%s'"
+msgstr "Incapaz encontrar revisão %s em caminho de submódulo '%s'"
+
+#: builtin/submodule--helper.c:2640
+#, c-format
+msgid "Failed to recurse into submodule path '%s'"
+msgstr "Falhou percorrer recursivamente o caminho de submódulo '%s'"
+
+#: builtin/submodule--helper.c:2699
+msgid "force checkout updates"
+msgstr "forçar atualizações de observação"
+
+#: builtin/submodule--helper.c:2701
+msgid "initialize uninitialized submodules before update"
+msgstr "iniciar submódulos por iniciar antes de atualização"
+
+#: builtin/submodule--helper.c:2703
+msgid "use SHA-1 of submodule's remote tracking branch"
+msgstr "usa o SHA-1 de ramo remoto de monitorização de submódulo"
+
+#: builtin/submodule--helper.c:2705
+msgid "traverse submodules recursively"
+msgstr ""
+
+#: builtin/submodule--helper.c:2707
+msgid "don't fetch new objects from the remote site"
+msgstr "buscar nenhuns objetos novos de sítio remoto"
+
+#: builtin/submodule--helper.c:2710 builtin/submodule--helper.c:2892
msgid "path into the working tree"
-msgstr "caminho para árvore de trabalho"
+msgstr "caminho para a árvore-trabalho"
-#: builtin/submodule--helper.c:2347
+#: builtin/submodule--helper.c:2713
msgid "path into the working tree, across nested submodule boundaries"
msgstr ""
-"caminho para a árvore de trabalho, atravessando limites de submódulos "
-"aninhados"
+"caminho para a árvore-trabalho, atravessando fronteiras de submódulos "
+"encaixados"
-#: builtin/submodule--helper.c:2351
+#: builtin/submodule--helper.c:2717
msgid "rebase, merge, checkout or none"
msgstr "rebase, merge, checkout ou none"
-#: builtin/submodule--helper.c:2357
+#: builtin/submodule--helper.c:2723
msgid "create a shallow clone truncated to the specified number of revisions"
-msgstr "criar um clone superficial, truncado ao número especificado de revisões"
+msgstr ""
+"criar um clone superficial, truncado ao número especificado de revisões"
-#: builtin/submodule--helper.c:2360
+#: builtin/submodule--helper.c:2726
msgid "parallel jobs"
msgstr "trabalhos em paralelo"
-#: builtin/submodule--helper.c:2362
+#: builtin/submodule--helper.c:2728
msgid "whether the initial clone should follow the shallow recommendation"
-msgstr "se o clone inicial deve seguir a recomendação rasa"
+msgstr "se o clone inicial deve seguir a recomendação da superfície"
-#: builtin/submodule--helper.c:2363
+#: builtin/submodule--helper.c:2729
msgid "don't print cloning progress"
-msgstr "imprimir progresso da clonagem nenhum"
+msgstr "mostrar nenhum progresso da clonagem"
-#: builtin/submodule--helper.c:2374
-msgid "git submodule--helper update-clone [--prefix=<path>] [<path>...]"
-msgstr "git submodule--helper update-clone [--prefix=<caminho>] [<caminho>...]"
-
-#: builtin/submodule--helper.c:2387
-msgid "bad value for update parameter"
-msgstr "valor incorreto no parâmetro update"
-
-#: builtin/submodule--helper.c:2435
-#, c-format
+#: builtin/submodule--helper.c:2741
msgid ""
-"Submodule (%s) branch configured to inherit branch from superproject, but "
-"the superproject is not on any branch"
+"git submodule [--quiet] update [--init [--filter=<filter-spec>]] [--remote] "
+"[-N|--no-fetch] [-f|--force] [--checkout|--merge|--rebase] [--[no-]recommend-"
+"shallow] [--reference <repository>] [--recursive] [--[no-]single-branch] "
+"[--] [<path>...]"
msgstr ""
-"Ramo de submódulo (%s) foi configurado para herdar o ramo do superprojeto, "
-"mas o superprojeto está em ramo nenhum"
+"git submodule [--quiet] update [--init [--filter=<espetro-filtro>]] [--"
+"remote] [-N|--no-fetch] [-f|--force] [--checkout|--merge|--rebase] [--"
+"[no-]recommend-shallow] [--reference <repositório>] [--recursive] [--"
+"[no-]single-branch] [--] [<caminho>...]"
-#: builtin/submodule--helper.c:2558
-#, c-format
-msgid "could not get a repository handle for submodule '%s'"
-msgstr "incapaz obter pega de repositório para submódulo '%s'"
+#: builtin/submodule--helper.c:2767
+msgid "bad value for update parameter"
+msgstr "valor incorreto no parâmetro update"
-#: builtin/submodule--helper.c:2591
+#: builtin/submodule--helper.c:2893
msgid "recurse into submodules"
msgstr "entrar recursivamente nos submódulos"
-#: builtin/submodule--helper.c:2597
+#: builtin/submodule--helper.c:2899
msgid "git submodule--helper absorb-git-dirs [<options>] [<path>...]"
msgstr "git submodule--helper absorb-git-dirs [<opções>] [<caminho>...]"
-#: builtin/submodule--helper.c:2653
+#: builtin/submodule--helper.c:2955
msgid "check if it is safe to write to the .gitmodules file"
msgstr ""
-#: builtin/submodule--helper.c:2656
+#: builtin/submodule--helper.c:2958
msgid "unset the config in the .gitmodules file"
-msgstr "desdefinir a config no ficheiro .gitmodules"
+msgstr "indefinir a config no ficheiro .gitmodules"
-#: builtin/submodule--helper.c:2661
+#: builtin/submodule--helper.c:2963
msgid "git submodule--helper config <name> [<value>]"
msgstr "git submodule--helper config <nome> [<valor>]"
-#: builtin/submodule--helper.c:2662
+#: builtin/submodule--helper.c:2964
msgid "git submodule--helper config --unset <name>"
msgstr ""
-#: builtin/submodule--helper.c:2663
-msgid "git submodule--helper config --check-writeable"
-msgstr ""
-
-#: builtin/submodule--helper.c:2682 git-submodule.sh:150
-#, sh-format
+#: builtin/submodule--helper.c:2984 builtin/submodule--helper.c:3238
+#: builtin/submodule--helper.c:3395
msgid "please make sure that the .gitmodules file is in the working tree"
-msgstr "por favor certifica-te que ficheiro .gitmodules está na árvore-trabalho"
+msgstr ""
+"por favor certifica-te que ficheiro .gitmodules está na árvore-trabalho"
-#: builtin/submodule--helper.c:2698
+#: builtin/submodule--helper.c:3000
msgid "suppress output for setting url of a submodule"
msgstr ""
-#: builtin/submodule--helper.c:2702
+#: builtin/submodule--helper.c:3004
msgid "git submodule--helper set-url [--quiet] <path> <newurl>"
msgstr ""
-#: builtin/submodule--helper.c:2735
+#: builtin/submodule--helper.c:3037
msgid "set the default tracking branch to master"
-msgstr ""
+msgstr "definir o ramo de monitorização predefinido como master"
-#: builtin/submodule--helper.c:2737
+#: builtin/submodule--helper.c:3039
msgid "set the default tracking branch"
-msgstr ""
+msgstr "definir o ramo de monitorização predefinido"
-#: builtin/submodule--helper.c:2741
+#: builtin/submodule--helper.c:3043
msgid "git submodule--helper set-branch [-q|--quiet] (-d|--default) <path>"
msgstr "git submodule--helper set-branch [-q|--quiet] (-d|--default) <caminho>"
-#: builtin/submodule--helper.c:2742
+#: builtin/submodule--helper.c:3044
msgid ""
"git submodule--helper set-branch [-q|--quiet] (-b|--branch) <branch> <path>"
msgstr ""
"git submodule--helper set-branch [-q|--quiet] (-b|--branch) <ramo> <caminho>"
-#: builtin/submodule--helper.c:2749
+#: builtin/submodule--helper.c:3051
msgid "--branch or --default required"
msgstr "--branch ou --default exigido"
-#: builtin/submodule--helper.c:2752
-msgid "--branch and --default are mutually exclusive"
+#: builtin/submodule--helper.c:3072 builtin/submodule--helper.c:3375
+msgid "print only error messages"
+msgstr "imprimir apenas mensagens de erro"
+
+#: builtin/submodule--helper.c:3073
+msgid "force creation"
+msgstr ""
+
+#: builtin/submodule--helper.c:3081
+msgid "show whether the branch would be created"
+msgstr "mostrar se ramo seria criado"
+
+#: builtin/submodule--helper.c:3085
+msgid ""
+"git submodule--helper create-branch [-f|--force] [--create-reflog] [-q|--"
+"quiet] [-t|--track] [-n|--dry-run] <name> <start-oid> <start-name>"
msgstr ""
-#: builtin/submodule--helper.c:2815
+#: builtin/submodule--helper.c:3097
+#, c-format
+msgid "creating branch '%s'"
+msgstr "criando ramo '%s'"
+
+#: builtin/submodule--helper.c:3155
#, c-format
msgid "Adding existing repo at '%s' to the index\n"
msgstr "Adicionando repo existente em '%s' ao cenário\n"
-#: builtin/submodule--helper.c:2818
+#: builtin/submodule--helper.c:3158
#, c-format
msgid "'%s' already exists and is not a valid git repo"
msgstr "'%s' já existe e é repositório git inválido"
-#: builtin/submodule--helper.c:2828
+#: builtin/submodule--helper.c:3171
#, c-format
-msgid "A git directory for '%s' is found locally with remote(s):"
-msgstr "Uma pasta git para '%s' foi encontrado localmente com remoto(s):"
+msgid "A git directory for '%s' is found locally with remote(s):\n"
+msgstr "Uma pasta git para '%s' foi encontrado localmente com remoto(s):\n"
-#: builtin/submodule--helper.c:2833
+#: builtin/submodule--helper.c:3178
#, c-format
msgid ""
"If you want to reuse this local git directory instead of cloning again from\n"
" %s\n"
"use the '--force' option. If the local git directory is not the correct "
"repo\n"
-"or if you are unsure what this means, choose another name with the '--name' "
-"option.\n"
+"or you are unsure what this means choose another name with the '--name' "
+"option."
msgstr ""
"Se queres reutilizar esta pasta git local, em vez de voltares a clonar de\n"
" %s\n"
-"usa a opção '--force'. Se a pasta git local é o repo incorreto ou\n"
-"se tens pouca certeza sobre o que isto significa, podes mudar o nome com a "
-"opção '--name'.\n"
+"usa a opção '--force'. Se a pasta git local é um repo incorreto\n"
+"ou se tens pouca certeza o que isto significa, muda o nome com a opção '--"
+"name'."
-#: builtin/submodule--helper.c:2842
+#: builtin/submodule--helper.c:3190
#, c-format
msgid "Reactivating local git directory for submodule '%s'\n"
msgstr "Reactivando pasta git local para submódulo '%s'\n"
-#: builtin/submodule--helper.c:2875
+#: builtin/submodule--helper.c:3227
#, c-format
msgid "unable to checkout submodule '%s'"
msgstr "incapaz de observar submódulo '%s'"
-#: builtin/submodule--helper.c:2888
-msgid "branch of repository to checkout on cloning"
-msgstr "ramo de repositório para observar na clonagem"
+#: builtin/submodule--helper.c:3266
+#, c-format
+msgid "Failed to add submodule '%s'"
+msgstr "Falhou ao adicionar submódulo '%s'"
+
+#: builtin/submodule--helper.c:3270 builtin/submodule--helper.c:3275
+#: builtin/submodule--helper.c:3283
+#, c-format
+msgid "Failed to register submodule '%s'"
+msgstr "Falha ao registar submódulo '%s'"
+
+#: builtin/submodule--helper.c:3339
+#, c-format
+msgid "'%s' already exists in the index"
+msgstr "'%s' já existe no cenário"
+
+#: builtin/submodule--helper.c:3342
+#, c-format
+msgid "'%s' already exists in the index and is not a submodule"
+msgstr "'%s' já existe no cenário e é submódulo nenhum"
+
+#: builtin/submodule--helper.c:3372
+msgid "branch of repository to add as submodule"
+msgstr "ramo de repositório a adicionar como submódulo"
-#: builtin/submodule--helper.c:2910
+#: builtin/submodule--helper.c:3373
msgid "allow adding an otherwise ignored submodule path"
msgstr "permitir adicionar os caminhos de submódulo ignorados"
-#: builtin/submodule--helper.c:2917
+#: builtin/submodule--helper.c:3379
+msgid "borrow the objects from reference repositories"
+msgstr "emprestar os objetos de repositórios referenciados"
+
+#: builtin/submodule--helper.c:3381
msgid ""
-"git submodule--helper add-clone [<options>...] --url <url> --path <path> --"
-"name <name>"
+"sets the submodule’s name to the given string instead of defaulting to its "
+"path"
+msgstr ""
+
+#: builtin/submodule--helper.c:3388
+msgid "git submodule--helper add [<options>] [--] <repository> [<path>]"
+msgstr "git submodule--helper add [<opções>] [--] <repositório> [<caminho>]"
+
+#: builtin/submodule--helper.c:3416
+msgid "Relative path can only be used from the toplevel of the working tree"
msgstr ""
-"git submodule--helper add-clone [<opções>...] --url <url> --path <caminho> "
-"--name <nome>"
+"Caminhos relativos só podem ser usados a partir do topo da árvore-trabalho"
-#: builtin/submodule--helper.c:2985 git.c:449 git.c:724
+#: builtin/submodule--helper.c:3425
+#, c-format
+msgid "repo URL: '%s' must be absolute or begin with ./|../"
+msgstr "URL de repo: '%s' tem de ser absoluto ou começar com ./|../"
+
+#: builtin/submodule--helper.c:3460
+#, c-format
+msgid "'%s' is not a valid submodule name"
+msgstr "'%s' é nome de submódulo inválido"
+
+#: builtin/submodule--helper.c:3520 git.c:453 git.c:729
#, c-format
msgid "%s doesn't support --super-prefix"
msgstr "%s insustenta --super-prefix"
-#: builtin/submodule--helper.c:2991
+#: builtin/submodule--helper.c:3526
#, c-format
msgid "'%s' is not a valid submodule--helper subcommand"
msgstr "'%s' é subcomando de submodule--helper inválido"
@@ -22798,7 +23696,7 @@ msgstr "git symbolic-ref -d [-q] <nome>"
#: builtin/symbolic-ref.c:42
msgid "suppress error message for non-symbolic (detached) refs"
-msgstr "suprimir mensagens de erro sobre refs não-simbólicas (destacadas)"
+msgstr "suprimir mensagens de erro sobre refs não-simbólicas (desanexadas)"
#: builtin/symbolic-ref.c:43
msgid "delete symbolic ref"
@@ -22808,53 +23706,53 @@ msgstr "apagar ref simbólica"
msgid "shorten ref output"
msgstr "encurtar output de ref"
-#: builtin/symbolic-ref.c:45 builtin/update-ref.c:499
+#: builtin/symbolic-ref.c:45 builtin/update-ref.c:505
msgid "reason"
msgstr "razão"
-#: builtin/symbolic-ref.c:45 builtin/update-ref.c:499
+#: builtin/symbolic-ref.c:45 builtin/update-ref.c:505
msgid "reason of the update"
msgstr "razão da atualização"
-#: builtin/tag.c:25
+#: builtin/tag.c:26
msgid ""
"git tag [-a | -s | -u <key-id>] [-f] [-m <msg> | -F <file>]\n"
-"\t\t<tagname> [<head>]"
+" <tagname> [<head>]"
msgstr ""
-"git tag [-a | -s | -u <key-id>] [-f] [-m <msg> | -F <ficheiro>]\n"
-"\t\t<tagname> [<head>]"
+"git tag [-a | -s | -u <id-chave>] [-f] [-m <msg> | -F <ficheiro>]\n"
+" <nome-tag> [<cabeça>]"
-#: builtin/tag.c:27
+#: builtin/tag.c:28
msgid "git tag -d <tagname>..."
msgstr "git tag -d <nome-etiqueta>..."
-#: builtin/tag.c:28
+#: builtin/tag.c:29
msgid ""
"git tag -l [-n[<num>]] [--contains <commit>] [--no-contains <commit>] [--"
"points-at <object>]\n"
-"\t\t[--format=<format>] [--merged <commit>] [--no-merged <commit>] "
+" [--format=<format>] [--merged <commit>] [--no-merged <commit>] "
"[<pattern>...]"
msgstr ""
-"git tag -l [-n[<num>]] [--contains <commit>] [--no-contains <commit>] [--"
+"git tag -l [-n[<num>]] [--contains <memória>] [--no-contains <memória>] [--"
"points-at <objeto>]\n"
-"\t\t[--format=<formato>] [--merged [<commit>] [--no-merged <commit>] "
-"[<pattern>...]"
+" [--format=<formato>] [--merged [<memória>] [--no-merged <memória>] "
+"[<padrão>...]"
-#: builtin/tag.c:30
+#: builtin/tag.c:31
msgid "git tag -v [--format=<format>] <tagname>..."
msgstr "git tag -v [--format=<formato>] <nome-etiqueta>..."
-#: builtin/tag.c:100
+#: builtin/tag.c:101
#, c-format
msgid "tag '%s' not found."
-msgstr "tag '%s' por encontrar."
+msgstr "etiqueta '%s' por encontrar."
-#: builtin/tag.c:135
+#: builtin/tag.c:136
#, c-format
msgid "Deleted tag '%s' (was %s)\n"
-msgstr "Apaguei tag '%s' (era %s)\n"
+msgstr "Apaguei etiqueta '%s' (era %s)\n"
-#: builtin/tag.c:170
+#: builtin/tag.c:171
#, c-format
msgid ""
"\n"
@@ -22863,11 +23761,11 @@ msgid ""
"Lines starting with '%c' will be ignored.\n"
msgstr ""
"\n"
-"Escreve mensagem para tag:\n"
+"Escreve mensagem para etiqueta:\n"
" %s\n"
"Linha começadas com '%c' serão ignoradas.\n"
-#: builtin/tag.c:174
+#: builtin/tag.c:175
#, c-format
msgid ""
"\n"
@@ -22877,13 +23775,13 @@ msgid ""
"want to.\n"
msgstr ""
"\n"
-"Escreve mensagem para tag:\n"
+"Escreve mensagem para etiqueta:\n"
" %s\n"
"Linhas começadas com '%c' serão mantidas; se queres, podes apagá-las.\n"
#: builtin/tag.c:241
msgid "unable to sign the tag"
-msgstr "incapaz assinar a tag"
+msgstr "incapaz assinar a etiqueta"
#: builtin/tag.c:259
#, c-format
@@ -22898,134 +23796,115 @@ msgstr ""
msgid "bad object type."
msgstr "tipo de objeto inválido."
-#: builtin/tag.c:328
+#: builtin/tag.c:326
msgid "no tag message?"
-msgstr "sem mensagem de tag?"
+msgstr "sem mensagem de etiqueta?"
-#: builtin/tag.c:335
+#: builtin/tag.c:333
#, c-format
msgid "The tag message has been left in %s\n"
-msgstr "Deixei a mensagem da tag em %s\n"
+msgstr "Deixei a mensagem da etiqueta em %s\n"
-#: builtin/tag.c:446
+#: builtin/tag.c:445
msgid "list tag names"
-msgstr "listar os nomes das tag"
+msgstr "listar os nomes das etiquetas"
-#: builtin/tag.c:448
+#: builtin/tag.c:447
msgid "print <n> lines of each tag message"
-msgstr "imprimir <n> linhas de cada mensagem de tag"
+msgstr "mostrar <n> linhas de cada mensagem de etiqueta"
-#: builtin/tag.c:450
+#: builtin/tag.c:449
msgid "delete tags"
-msgstr "eliminar tags"
+msgstr "eliminar etiquetas"
-#: builtin/tag.c:451
+#: builtin/tag.c:450
msgid "verify tags"
-msgstr "verificar tags"
+msgstr "verificar etiquetas"
-#: builtin/tag.c:453
+#: builtin/tag.c:452
msgid "Tag creation options"
-msgstr "Opções de criação de tags"
+msgstr "Opções de criação de etiqueta"
-#: builtin/tag.c:455
+#: builtin/tag.c:454
msgid "annotated tag, needs a message"
-msgstr "tag anotada, é necessário uma mensagem"
+msgstr "etiqueta anotada, precisa uma mensagem"
-#: builtin/tag.c:457
+#: builtin/tag.c:456
msgid "tag message"
msgstr "mensagem de etiqueta"
-#: builtin/tag.c:459
+#: builtin/tag.c:458
msgid "force edit of tag message"
msgstr "forçar edição de mensagem de etiqueta"
-#: builtin/tag.c:460
+#: builtin/tag.c:459
msgid "annotated and GPG-signed tag"
-msgstr "tag anotada e assinada com GPG"
+msgstr "etiqueta anotada e assinada com GPG"
-#: builtin/tag.c:463
+#: builtin/tag.c:462
msgid "use another key to sign the tag"
-msgstr "usar outra chave para assinar a tag"
+msgstr "usar outra chave para assinar a etiqueta"
-#: builtin/tag.c:464
+#: builtin/tag.c:463
msgid "replace the tag if exists"
-msgstr "substituir a tag se existir"
+msgstr "substituir a etiqueta se existe"
-#: builtin/tag.c:465 builtin/update-ref.c:505
+#: builtin/tag.c:464 builtin/update-ref.c:511
msgid "create a reflog"
msgstr "criar um reflog"
-#: builtin/tag.c:467
+#: builtin/tag.c:466
msgid "Tag listing options"
-msgstr "Opções de listagem de tags"
+msgstr "Opções de listagem de etiquetas"
-#: builtin/tag.c:468
+#: builtin/tag.c:467
msgid "show tag list in columns"
-msgstr "mostrar a lista de tags em colunas"
+msgstr "mostrar a lista de etiquetas em colunas"
-#: builtin/tag.c:469 builtin/tag.c:471
+#: builtin/tag.c:468 builtin/tag.c:470
msgid "print only tags that contain the commit"
-msgstr "imprimir apenas tags que contenham o commit"
+msgstr "mostrar apenas etiquetas que contenham a memória"
-#: builtin/tag.c:470 builtin/tag.c:472
+#: builtin/tag.c:469 builtin/tag.c:471
msgid "print only tags that don't contain the commit"
-msgstr "imprimir apenas tags a que falte o commit"
+msgstr "mostrar apenas etiquetas a que falte a memória"
-#: builtin/tag.c:473
+#: builtin/tag.c:472
msgid "print only tags that are merged"
-msgstr "imprimir apenas as tags que foram integradas"
+msgstr "mostrar apenas as etiquetas juntas"
-#: builtin/tag.c:474
+#: builtin/tag.c:473
msgid "print only tags that are not merged"
-msgstr "imprimir apenas as tags que estão por juntar"
+msgstr "mostrar apenas as etiquetas que estão por juntar"
-#: builtin/tag.c:478
+#: builtin/tag.c:477
msgid "print only tags of the object"
msgstr "imprimir apenas etiquetas do objeto"
-#: builtin/tag.c:526
-msgid "--column and -n are incompatible"
-msgstr "--column e -n são incompatíveis"
-
-#: builtin/tag.c:548
-msgid "-n option is only allowed in list mode"
-msgstr "a opção -n só é permitida no modo listagem"
-
-#: builtin/tag.c:550
-msgid "--contains option is only allowed in list mode"
-msgstr "opção --contains só é permitida no modo listagem"
-
-#: builtin/tag.c:552
-msgid "--no-contains option is only allowed in list mode"
-msgstr "opção --no-contains só é permitida no modo listagem"
-
-#: builtin/tag.c:554
-msgid "--points-at option is only allowed in list mode"
-msgstr "opção --points-at só é permitida no modo listagem"
-
-#: builtin/tag.c:556
-msgid "--merged and --no-merged options are only allowed in list mode"
-msgstr "opções --merged e --no-merged só são permitidas no modo listagem"
-
-#: builtin/tag.c:567
-msgid "only one -F or -m option is allowed."
-msgstr "só é permitido um opção -F ou -m."
+#: builtin/tag.c:559
+#, c-format
+msgid "the '%s' option is only allowed in list mode"
+msgstr "a opção '%s' só é permitida no modo listagem"
-#: builtin/tag.c:592
+#: builtin/tag.c:598
#, c-format
msgid "'%s' is not a valid tag name."
msgstr "'%s' é nome de etiqueta inválido."
-#: builtin/tag.c:597
+#: builtin/tag.c:603
#, c-format
msgid "tag '%s' already exists"
msgstr "a etiqueta '%s' já existe"
-#: builtin/tag.c:628
+#: builtin/tag.c:634
#, c-format
msgid "Updated tag '%s' (was %s)\n"
msgstr "Atualizei etiqueta '%s' (era %s)\n"
+#: builtin/unpack-objects.c:95
+msgid "pack exceeds maximum allowed size"
+msgstr "o pacote excede o tamanho máximo permitido"
+
#: builtin/unpack-objects.c:504
msgid "Unpacking objects"
msgstr "Desempacotando objetos"
@@ -23035,254 +23914,249 @@ msgstr "Desempacotando objetos"
msgid "failed to create directory %s"
msgstr "falhou criar pasta %s"
-#: builtin/update-index.c:100
-#, c-format
-msgid "failed to create file %s"
-msgstr "falhou criar ficheiro %s"
-
-#: builtin/update-index.c:108
+#: builtin/update-index.c:106
#, c-format
msgid "failed to delete file %s"
msgstr "falha ao eliminar o ficheiro %s"
-#: builtin/update-index.c:115 builtin/update-index.c:221
+#: builtin/update-index.c:113 builtin/update-index.c:219
#, c-format
msgid "failed to delete directory %s"
-msgstr "falha ao eliminar o diretório %s"
+msgstr "falhou ao eliminar a pasta %s"
-#: builtin/update-index.c:140
+#: builtin/update-index.c:138
#, c-format
msgid "Testing mtime in '%s' "
msgstr "Testando mtime em '%s' "
-#: builtin/update-index.c:154
+#: builtin/update-index.c:152
msgid "directory stat info does not change after adding a new file"
msgstr ""
"info de stat da pasta mantêm-se inalterada após adicionar novo ficheiro"
-#: builtin/update-index.c:167
+#: builtin/update-index.c:165
msgid "directory stat info does not change after adding a new directory"
msgstr "info de stat da pasta mantêm-se inalterada após adicionar nova pasta"
-#: builtin/update-index.c:180
+#: builtin/update-index.c:178
msgid "directory stat info changes after updating a file"
msgstr "info de stat muda após atualizar ficheiro"
-#: builtin/update-index.c:191
+#: builtin/update-index.c:189
msgid "directory stat info changes after adding a file inside subdirectory"
msgstr "info de stat da pasta muda após adicionar ficheiro dentro de subpasta"
-#: builtin/update-index.c:202
+#: builtin/update-index.c:200
msgid "directory stat info does not change after deleting a file"
msgstr "info de stat da pasta mantêm-se inalterada após apagar ficheiro"
-#: builtin/update-index.c:215
+#: builtin/update-index.c:213
msgid "directory stat info does not change after deleting a directory"
msgstr "info de stat da pasta mantêm-se inalterada após apagar pasta"
-#: builtin/update-index.c:222
+#: builtin/update-index.c:220
msgid " OK"
msgstr " OK"
-#: builtin/update-index.c:591
+#: builtin/update-index.c:589
msgid "git update-index [<options>] [--] [<file>...]"
msgstr "git update-index [<opções>] [--] [<ficheiro>...]"
-#: builtin/update-index.c:976
+#: builtin/update-index.c:993
msgid "continue refresh even when index needs update"
-msgstr "continuar a refrescar mesmo quando o índice precise de ser atualizado"
+msgstr "continuar a refrescar mesmo quando cenário precisa de atualização"
-#: builtin/update-index.c:979
+#: builtin/update-index.c:996
msgid "refresh: ignore submodules"
msgstr "refrescar: ignorar submódulos"
-#: builtin/update-index.c:982
+#: builtin/update-index.c:999
msgid "do not ignore new files"
msgstr "considera novos ficheiros"
-#: builtin/update-index.c:984
+#: builtin/update-index.c:1001
msgid "let files replace directories and vice-versa"
-msgstr "deixar que os ficheiros substituam os diretórios e vice-versa"
+msgstr "deixar que os ficheiros substituam pastas e vice-versa"
-#: builtin/update-index.c:986
+#: builtin/update-index.c:1003
msgid "notice files missing from worktree"
-msgstr "avisar sobre ficheiros que faltem na árvore de trabalho"
+msgstr "avisar sobre ficheiros que faltem na árvore-trabalho"
-#: builtin/update-index.c:988
+#: builtin/update-index.c:1005
msgid "refresh even if index contains unmerged entries"
-msgstr "refrescar mesmo se índex contenha entradas por juntar"
+msgstr "refrescar mesmo se cenário tenha entradas por juntar"
-#: builtin/update-index.c:991
+#: builtin/update-index.c:1008
msgid "refresh stat information"
msgstr "refrescar informação de stat"
-#: builtin/update-index.c:995
+#: builtin/update-index.c:1012
msgid "like --refresh, but ignore assume-unchanged setting"
msgstr "como --refresh, mas ignorar a definição assume-unchanged"
-#: builtin/update-index.c:999
+#: builtin/update-index.c:1016
msgid "<mode>,<object>,<path>"
msgstr "<modo>,<objeto>,<caminho>"
-#: builtin/update-index.c:1000
+#: builtin/update-index.c:1017
msgid "add the specified entry to the index"
msgstr "adicionar entrada especificada ao cenário"
-#: builtin/update-index.c:1010
+#: builtin/update-index.c:1027
msgid "mark files as \"not changing\""
msgstr "marcar ficheiros como \"não alterar\""
-#: builtin/update-index.c:1013
+#: builtin/update-index.c:1030
msgid "clear assumed-unchanged bit"
-msgstr "limpar o bit assumed-unchanged"
+msgstr "limpar bit assumed-unchanged"
-#: builtin/update-index.c:1016
+#: builtin/update-index.c:1033
msgid "mark files as \"index-only\""
-msgstr "marcar ficheiros como \"únicos do índice\""
+msgstr "marcar ficheiros como \"index-only\""
-#: builtin/update-index.c:1019
+#: builtin/update-index.c:1036
msgid "clear skip-worktree bit"
-msgstr "limpar o bit ignorar-árvore-de-trabalho"
+msgstr "limpar o bit saltar-árvore-trabalho"
-#: builtin/update-index.c:1022
+#: builtin/update-index.c:1039
msgid "do not touch index-only entries"
msgstr ""
-#: builtin/update-index.c:1024
+#: builtin/update-index.c:1041
msgid "add to index only; do not add content to object database"
msgstr ""
-"adicionar apenas a index; não adicionar conteúdo à base de dados de objetos"
+"adicionar apenas a cenário; adicionar conteúdo nenhum à base de dados de "
+"objetos"
-#: builtin/update-index.c:1026
+#: builtin/update-index.c:1043
msgid "remove named paths even if present in worktree"
-msgstr ""
-"remover os caminhos mencionado mesmo se estiverem presentes na árvore de "
-"trabalho"
+msgstr "remover os caminhos mencionado mesmo se presentes na árvore-trabalho"
-#: builtin/update-index.c:1028
+#: builtin/update-index.c:1045
msgid "with --stdin: input lines are terminated by null bytes"
msgstr "com --stdin: linhas da entrada são terminadas com bytes nulos"
-#: builtin/update-index.c:1030
+#: builtin/update-index.c:1047
msgid "read list of paths to be updated from standard input"
msgstr "ler lista de caminho a atualizar da entrada padrão"
-#: builtin/update-index.c:1034
+#: builtin/update-index.c:1051
msgid "add entries from standard input to the index"
-msgstr "adicionar elementos da entrada padrão ao índice"
+msgstr "adicionar elementos da entrada padrão ao cenário"
-#: builtin/update-index.c:1038
+#: builtin/update-index.c:1055
msgid "repopulate stages #2 and #3 for the listed paths"
-msgstr "repovoar as fases nº2 e nº3 dos caminhos listados"
+msgstr "repovoar os cenários #2 e #3 dos caminhos listados"
-#: builtin/update-index.c:1042
+#: builtin/update-index.c:1059
msgid "only update entries that differ from HEAD"
msgstr "atualizar apenas elementos que difiram de HEAD"
-#: builtin/update-index.c:1046
+#: builtin/update-index.c:1063
msgid "ignore files missing from worktree"
-msgstr "ignorar ficheiros ausentes da worktree"
+msgstr "ignorar ficheiros ausentes da árvore-trabalho"
-#: builtin/update-index.c:1049
+#: builtin/update-index.c:1066
msgid "report actions to standard output"
-msgstr "reportar ações na saída padrão"
+msgstr "reportar ações para saída padrão"
-#: builtin/update-index.c:1051
+#: builtin/update-index.c:1068
msgid "(for porcelains) forget saved unresolved conflicts"
-msgstr "(para porcelains) esquecer conflitos guardados que estão por resolver"
+msgstr "(para porcelanas) esquecer conflitos guardados que estão por resolver"
-#: builtin/update-index.c:1055
+#: builtin/update-index.c:1072
msgid "write index in this format"
-msgstr "escrever o índice neste formato"
+msgstr "escrever o cenário neste formato"
-#: builtin/update-index.c:1057
+#: builtin/update-index.c:1074
msgid "enable or disable split index"
msgstr "ativar ou desativar a divisão de cenário"
-#: builtin/update-index.c:1059
+#: builtin/update-index.c:1076
msgid "enable/disable untracked cache"
-msgstr "ativar/desativar cache por monitorizar"
+msgstr "ativar/desativar cenário desmonitorizado"
-#: builtin/update-index.c:1061
+#: builtin/update-index.c:1078
msgid "test if the filesystem supports untracked cache"
-msgstr "testar se sistema de ficheiros sustenta cache por monitorizar"
+msgstr "testar se sistema de ficheiros sustenta cenário desmonitorizado"
-#: builtin/update-index.c:1063
+#: builtin/update-index.c:1080
msgid "enable untracked cache without testing the filesystem"
-msgstr "ativar cache por monitorizar sem testar o sistema de ficheiros"
+msgstr "ativar cenário desmonitorizado sem testar o sistema de ficheiros"
-#: builtin/update-index.c:1065
+#: builtin/update-index.c:1082
msgid "write out the index even if is not flagged as changed"
msgstr ""
-#: builtin/update-index.c:1067
+#: builtin/update-index.c:1084
msgid "enable or disable file system monitor"
msgstr "ativar ou desativar monitorizador de sistema de ficheiros"
-#: builtin/update-index.c:1069
+#: builtin/update-index.c:1086
msgid "mark files as fsmonitor valid"
msgstr "marcar ficheiros válidos para fsmonitor"
-#: builtin/update-index.c:1072
+#: builtin/update-index.c:1089
msgid "clear fsmonitor valid bit"
msgstr "limpar bit válido de fsmonitor"
-#: builtin/update-index.c:1175
+#: builtin/update-index.c:1195
msgid ""
"core.splitIndex is set to false; remove or change it, if you really want to "
"enable split index"
msgstr ""
-"core.splitIndex está definida como false; remova ou altere-a se pretende "
-"mesmo ativar índice separado"
+"core.splitIndex está definida como false; remove ou altera-a se queres mesmo "
+"ativar cenário separado"
-#: builtin/update-index.c:1184
+#: builtin/update-index.c:1204
msgid ""
"core.splitIndex is set to true; remove or change it, if you really want to "
"disable split index"
msgstr ""
-"core.splitIndex está definida como true; remova ou altere-a se pretende "
-"mesmo desativar índice separado"
+"core.splitIndex está definida como true; remove ou altera-a se queres mesmo "
+"desativar cenário separado"
-#: builtin/update-index.c:1196
+#: builtin/update-index.c:1216
msgid ""
"core.untrackedCache is set to true; remove or change it, if you really want "
"to disable the untracked cache"
msgstr ""
"core.untrackedCache está definida como true; remove ou altera-a, se queres "
-"mesmo desativar a cache por monitorizar"
+"mesmo desativar o cenário desmonitorizado"
-#: builtin/update-index.c:1200
+#: builtin/update-index.c:1220
msgid "Untracked cache disabled"
-msgstr "Cache por monitorizar está desativada"
+msgstr "Cenário desmonitorizado está desativado"
-#: builtin/update-index.c:1208
+#: builtin/update-index.c:1228
msgid ""
"core.untrackedCache is set to false; remove or change it, if you really want "
"to enable the untracked cache"
msgstr ""
"core.untrackedCache está definida como false; remove ou altera-a, se queres "
-"mesmo ativar a cache por monitorizar"
+"mesmo ativar o cenário desmonitorizado"
-#: builtin/update-index.c:1212
+#: builtin/update-index.c:1232
#, c-format
msgid "Untracked cache enabled for '%s'"
-msgstr "Cache por monitorizar ativada para '%s'"
+msgstr "Cenário desmonitorizado ativado para '%s'"
-#: builtin/update-index.c:1220
+#: builtin/update-index.c:1241
msgid "core.fsmonitor is unset; set it if you really want to enable fsmonitor"
-msgstr "core.fsmonitor está desdefinida; define-a se queres mesmo ativar fsmonitor"
+msgstr ""
+"core.fsmonitor está indefinida; define-a se queres mesmo ativar fsmonitor"
-#: builtin/update-index.c:1224
+#: builtin/update-index.c:1246
msgid "fsmonitor enabled"
msgstr "fsmonitor ativado"
-#: builtin/update-index.c:1227
+#: builtin/update-index.c:1250
msgid ""
"core.fsmonitor is set; remove it if you really want to disable fsmonitor"
msgstr ""
"core.fsmonitor está definida; remove-a se queres mesmo desativar fsmonitor"
-#: builtin/update-index.c:1231
+#: builtin/update-index.c:1254
msgid "fsmonitor disabled"
msgstr "fsmonitor desativado"
@@ -23292,33 +24166,28 @@ msgstr "git update-ref [<opções>] -d <nome-ref> [<valor-antigo>]"
#: builtin/update-ref.c:11
msgid "git update-ref [<options>] <refname> <new-val> [<old-val>]"
-msgstr ""
-"git update-ref [<opções>] <nome-ref> <novo-valor> [<valor-antigo>]"
+msgstr "git update-ref [<opções>] <nome-ref> <novo-valor> [<valor-antigo>]"
#: builtin/update-ref.c:12
msgid "git update-ref [<options>] --stdin [-z]"
msgstr "git update-ref [<opções>] --stdin [-z]"
-#: builtin/update-ref.c:500
+#: builtin/update-ref.c:506
msgid "delete the reference"
msgstr "apagar a referência"
-#: builtin/update-ref.c:502
+#: builtin/update-ref.c:508
msgid "update <refname> not the one it points to"
msgstr "atualizar <nome-ref>, não à qual esta aponta"
-#: builtin/update-ref.c:503
+#: builtin/update-ref.c:509
msgid "stdin has NUL-terminated arguments"
msgstr "a entrada padrão tem argumentos NUL-terminados"
-#: builtin/update-ref.c:504
+#: builtin/update-ref.c:510
msgid "read updates from stdin"
msgstr "ler atualizações de entrada padrão"
-#: builtin/update-server-info.c:7
-msgid "git update-server-info [--force]"
-msgstr "git update-server-info [--force]"
-
#: builtin/update-server-info.c:15
msgid "update the info files from scratch"
msgstr "atualizar os ficheiros de info do zero"
@@ -23327,19 +24196,19 @@ msgstr "atualizar os ficheiros de info do zero"
msgid "git upload-pack [<options>] <dir>"
msgstr "git upload-pack [<opções>] <pasta>"
-#: builtin/upload-pack.c:23 t/helper/test-serve-v2.c:17
+#: builtin/upload-pack.c:24 t/helper/test-serve-v2.c:17
msgid "quit after a single request/response exchange"
msgstr "terminar depois de uma única troca de pedido/resposta"
-#: builtin/upload-pack.c:25
-msgid "exit immediately after initial ref advertisement"
-msgstr "sair imediatamente depois de anúncio inicial de ref"
+#: builtin/upload-pack.c:26
+msgid "serve up the info/refs for git-http-backend"
+msgstr ""
-#: builtin/upload-pack.c:27
+#: builtin/upload-pack.c:29
msgid "do not try <directory>/.git/ if <directory> is no Git directory"
msgstr "tentar <pasta>/.git/ apenas se <pasta> for pasta Git"
-#: builtin/upload-pack.c:29
+#: builtin/upload-pack.c:31
msgid "interrupt transfer after <n> seconds of inactivity"
msgstr "interromper transferência depois de <n> segundos de inatividade"
@@ -23349,7 +24218,7 @@ msgstr "git verify-commit [-v | --verbose] <memória>..."
#: builtin/verify-commit.c:68
msgid "print commit contents"
-msgstr "imprimir conteúdo do memória"
+msgstr "imprimir conteúdo de memória"
#: builtin/verify-commit.c:69 builtin/verify-tag.c:37
msgid "print raw gpg status output"
@@ -23375,275 +24244,281 @@ msgstr "git verify-tag [-v | --verbose] [--format=<formato>] <etiqueta>..."
msgid "print tag contents"
msgstr "imprimir conteúdo da etiqueta"
-#: builtin/worktree.c:18
+#: builtin/worktree.c:19
msgid "git worktree add [<options>] <path> [<commit-ish>]"
msgstr "git worktree add [<opções>] <caminho> [<mnemónica>]"
-#: builtin/worktree.c:19
+#: builtin/worktree.c:20
msgid "git worktree list [<options>]"
msgstr "git worktree list [<opções>]"
-#: builtin/worktree.c:20
+#: builtin/worktree.c:21
msgid "git worktree lock [<options>] <path>"
msgstr "git worktree lock [<opções>] <caminho>"
-#: builtin/worktree.c:21
+#: builtin/worktree.c:22
msgid "git worktree move <worktree> <new-path>"
msgstr "git worktree move <árvore-trabalho> <novo-caminho>"
-#: builtin/worktree.c:22
+#: builtin/worktree.c:23
msgid "git worktree prune [<options>]"
msgstr "git worktree prune [<opções>]"
-#: builtin/worktree.c:23
+#: builtin/worktree.c:24
msgid "git worktree remove [<options>] <worktree>"
msgstr "git worktree remove [<opções>] <árvore-trabalho>"
-#: builtin/worktree.c:24
+#: builtin/worktree.c:25
+msgid "git worktree repair [<path>...]"
+msgstr "git worktree repair [<caminho>...]"
+
+#: builtin/worktree.c:26
msgid "git worktree unlock <path>"
msgstr "git worktree unlock <caminho>"
-#: builtin/worktree.c:61 builtin/worktree.c:944
-#, c-format
-msgid "failed to delete '%s'"
-msgstr "falhou apagar '%s'"
-
-#: builtin/worktree.c:74
+#: builtin/worktree.c:76
#, c-format
msgid "Removing %s/%s: %s"
msgstr "Removendo %s/%s: %s"
-#: builtin/worktree.c:147
+#: builtin/worktree.c:149
msgid "report pruned working trees"
-msgstr "reportar árvores de trabalho podadas"
+msgstr "reportar árvores-trabalho podadas"
-#: builtin/worktree.c:149
+#: builtin/worktree.c:151
msgid "expire working trees older than <time>"
msgstr "expirar árvores-trabalho mais velhas que <tempo>"
-#: builtin/worktree.c:219
+#: builtin/worktree.c:221
#, c-format
msgid "'%s' already exists"
msgstr "'%s' já existe"
-#: builtin/worktree.c:228
+#: builtin/worktree.c:230
#, c-format
msgid "unusable worktree destination '%s'"
-msgstr "destino '%s' de worktree inutilizável"
+msgstr "destino '%s' de árvore-trabalho inutilizável"
-#: builtin/worktree.c:233
+#: builtin/worktree.c:235
#, c-format
msgid ""
"'%s' is a missing but locked worktree;\n"
"use '%s -f -f' to override, or 'unlock' and 'prune' or 'remove' to clear"
msgstr ""
-#: builtin/worktree.c:235
+#: builtin/worktree.c:237
#, c-format
msgid ""
"'%s' is a missing but already registered worktree;\n"
"use '%s -f' to override, or 'prune' or 'remove' to clear"
msgstr ""
-#: builtin/worktree.c:286
+#: builtin/worktree.c:248
+#, c-format
+msgid "failed to copy '%s' to '%s'; sparse-checkout may not work correctly"
+msgstr ""
+
+#: builtin/worktree.c:268
+#, c-format
+msgid "failed to copy worktree config from '%s' to '%s'"
+msgstr "falhou copiar config de árvore-trabalho de '%s' para '%s'"
+
+#: builtin/worktree.c:280 builtin/worktree.c:285
+#, c-format
+msgid "failed to unset '%s' in '%s'"
+msgstr "falhou ao indefinir '%s' em '%s'"
+
+#: builtin/worktree.c:356
#, c-format
msgid "could not create directory of '%s'"
-msgstr "incapaz criar diretório de '%s'"
+msgstr "incapaz criar pasta de '%s'"
-#: builtin/worktree.c:308
+#: builtin/worktree.c:378
msgid "initializing"
msgstr "iniciando"
-#: builtin/worktree.c:420 builtin/worktree.c:426
+#: builtin/worktree.c:492 builtin/worktree.c:498
#, c-format
msgid "Preparing worktree (new branch '%s')"
-msgstr "Erro a eliminar ramo '%s'"
+msgstr "Preparando árvore-trabalho (novo ramo '%s')"
-#: builtin/worktree.c:422
+#: builtin/worktree.c:494
#, c-format
msgid "Preparing worktree (resetting branch '%s'; was at %s)"
-msgstr ""
+msgstr "Preparando árvore-trabalho (restabelecendo ramo '%s'; estava em %s)"
-#: builtin/worktree.c:431
+#: builtin/worktree.c:503
#, c-format
msgid "Preparing worktree (checking out '%s')"
-msgstr ""
+msgstr "Preparando árvore-trabalho (observando '%s')"
-#: builtin/worktree.c:437
+#: builtin/worktree.c:509
#, c-format
msgid "Preparing worktree (detached HEAD %s)"
msgstr "Preparando árvore-trabalho (HEAD desanexada %s)"
-#: builtin/worktree.c:482
+#: builtin/worktree.c:554
msgid "checkout <branch> even if already checked out in other worktree"
-msgstr ""
-"extrair o <ramo> mesmo se já tenha sido extraído noutra árvore de trabalho"
+msgstr "observar <ramo> mesmo se já em observação em outra árvore-trabalho"
-#: builtin/worktree.c:485
+#: builtin/worktree.c:557
msgid "create a new branch"
msgstr "criar um novo ramo"
-#: builtin/worktree.c:487
+#: builtin/worktree.c:559
msgid "create or reset a branch"
-msgstr "criar ou repor um ramo"
+msgstr "criar ou restabelecer um ramo"
-#: builtin/worktree.c:489
+#: builtin/worktree.c:561
msgid "populate the new working tree"
msgstr "povoar nova árvore-trabalho"
-#: builtin/worktree.c:490
+#: builtin/worktree.c:562
msgid "keep the new working tree locked"
msgstr "manter nova árvore-trabalho trancada"
-#: builtin/worktree.c:492 builtin/worktree.c:729
+#: builtin/worktree.c:564 builtin/worktree.c:809
msgid "reason for locking"
msgstr "razão para trancar"
-#: builtin/worktree.c:495
+#: builtin/worktree.c:567
msgid "set up tracking mode (see git-branch(1))"
msgstr "configurar modo de monitorização (vê git-branch(1))"
-#: builtin/worktree.c:498
+#: builtin/worktree.c:570
msgid "try to match the new branch name with a remote-tracking branch"
msgstr "tenta corresponder nome de novo ramo com ramo de monitorização remoto"
-#: builtin/worktree.c:506
-msgid "-b, -B, and --detach are mutually exclusive"
-msgstr ""
-
-#: builtin/worktree.c:508
-msgid "--reason requires --lock"
-msgstr "--reason exige --lock"
-
-#: builtin/worktree.c:512
+#: builtin/worktree.c:584
msgid "added with --lock"
msgstr "adicionado com --lock"
-#: builtin/worktree.c:574
+#: builtin/worktree.c:646
msgid "--[no-]track can only be used if a new branch is created"
-msgstr ""
+msgstr "--[no-]track apenas pode ser usado se for criado um novo ramo"
-#: builtin/worktree.c:691
+#: builtin/worktree.c:766
msgid "show extended annotations and reasons, if available"
msgstr ""
-#: builtin/worktree.c:693
+#: builtin/worktree.c:768
msgid "add 'prunable' annotation to worktrees older than <time>"
-msgstr "adicionar a anotação 'a podar' para árvores-trabalho mais velhas que <tempo>"
-
-#: builtin/worktree.c:702
-msgid "--verbose and --porcelain are mutually exclusive"
msgstr ""
+"adicionar anotação 'prunable' em árvores-trabalho mais velhas que <tempo>"
-#: builtin/worktree.c:741 builtin/worktree.c:774 builtin/worktree.c:848
-#: builtin/worktree.c:972
+#: builtin/worktree.c:770
+msgid "terminate records with a NUL character"
+msgstr "terminar registos com um carácter NUL"
+
+#: builtin/worktree.c:821 builtin/worktree.c:854 builtin/worktree.c:928
+#: builtin/worktree.c:1052
#, c-format
msgid "'%s' is not a working tree"
-msgstr "'%s' é working tree nenhuma"
+msgstr "'%s' é árvore-trabalho nenhuma"
-#: builtin/worktree.c:743 builtin/worktree.c:776
+#: builtin/worktree.c:823 builtin/worktree.c:856
msgid "The main working tree cannot be locked or unlocked"
-msgstr "Working tree principal incapaz de ser trancada ou destrancada"
+msgstr "Ãrvore-trabalho principal incapaz de ser trancada ou destrancada"
-#: builtin/worktree.c:748
+#: builtin/worktree.c:828
#, c-format
msgid "'%s' is already locked, reason: %s"
msgstr "'%s' já está trancada, razão: %s"
-#: builtin/worktree.c:750
+#: builtin/worktree.c:830
#, c-format
msgid "'%s' is already locked"
msgstr "'%s' já está trancada"
-#: builtin/worktree.c:778
+#: builtin/worktree.c:858
#, c-format
msgid "'%s' is not locked"
msgstr "'%s' está destrancada"
-#: builtin/worktree.c:819
+#: builtin/worktree.c:899
msgid "working trees containing submodules cannot be moved or removed"
msgstr ""
-#: builtin/worktree.c:827
+#: builtin/worktree.c:907
msgid "force move even if worktree is dirty or locked"
msgstr "forçar mover mesmo que a árvore-trabalho esteja suja ou trancada"
-#: builtin/worktree.c:850 builtin/worktree.c:974
+#: builtin/worktree.c:930 builtin/worktree.c:1054
#, c-format
msgid "'%s' is a main working tree"
-msgstr "'%s' é uma working tree principal"
+msgstr "'%s' é uma árvore-trabalho principal"
-#: builtin/worktree.c:855
+#: builtin/worktree.c:935
#, c-format
msgid "could not figure out destination name from '%s'"
msgstr "incapaz descobrir nome de destino a partir de '%s'"
-#: builtin/worktree.c:868
+#: builtin/worktree.c:948
#, 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:870
+#: builtin/worktree.c:950
msgid ""
"cannot move a locked working tree;\n"
"use 'move -f -f' to override or unlock first"
msgstr ""
-#: builtin/worktree.c:873
+#: builtin/worktree.c:953
#, c-format
msgid "validation failed, cannot move working tree: %s"
msgstr ""
-#: builtin/worktree.c:878
+#: builtin/worktree.c:958
#, c-format
msgid "failed to move '%s' to '%s'"
msgstr ""
-#: builtin/worktree.c:924
+#: builtin/worktree.c:1004
#, c-format
msgid "failed to run 'git status' on '%s'"
msgstr "falhou executar 'git status' em '%s'"
-#: builtin/worktree.c:928
+#: builtin/worktree.c:1008
#, c-format
msgid "'%s' contains modified or untracked files, use --force to delete it"
msgstr ""
-#: builtin/worktree.c:933
+#: builtin/worktree.c:1013
#, c-format
msgid "failed to run 'git status' on '%s', code %d"
msgstr "falhou executar 'git status' em '%s', código %d"
-#: builtin/worktree.c:956
+#: builtin/worktree.c:1036
msgid "force removal even if worktree is dirty or locked"
-msgstr ""
+msgstr "forçar remoção mesmo que árvore-trabalho esteja suja ou trancada"
-#: builtin/worktree.c:979
+#: builtin/worktree.c:1059
#, 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:981
+#: builtin/worktree.c:1061
msgid ""
"cannot remove a locked working tree;\n"
"use 'remove -f -f' to override or unlock first"
msgstr ""
-#: builtin/worktree.c:984
+#: builtin/worktree.c:1064
#, c-format
msgid "validation failed, cannot remove working tree: %s"
msgstr ""
-#: builtin/worktree.c:1008
+#: builtin/worktree.c:1088
#, c-format
msgid "repair: %s: %s"
msgstr "reparar: %s: %s"
-#: builtin/worktree.c:1011
+#: builtin/worktree.c:1091
#, c-format
msgid "error: %s: %s"
msgstr "erro: %s: %s"
@@ -23658,7 +24533,7 @@ msgstr "<prefixo>/"
#: builtin/write-tree.c:29
msgid "write tree object for a subdirectory <prefix>"
-msgstr "escrever objeto árvore do subdiretório <prefixo>"
+msgstr "escrever objeto árvore para <prefixo> de subpasta"
#: builtin/write-tree.c:31
msgid "only useful for debugging"
@@ -23685,23 +24560,18 @@ msgstr ""
"'git help -a' e 'git help -g' listam subcomandos disponíveis e alguns\n"
"guias de conceitos. Consulta 'git help <comando>' ou 'git help <conceito>'\n"
"para ler sobre um subcomando específico ou conceito específico.\n"
-"Vê 'git help git' para visão geral do sistema."
+"Para uma visão geral do sistema, vê 'git help git'."
-#: git.c:188
+#: git.c:188 git.c:216 git.c:300
#, c-format
-msgid "no directory given for --git-dir\n"
-msgstr ""
+msgid "no directory given for '%s' option\n"
+msgstr "dada pasta nenhuma para opção '%s'\n"
#: git.c:202
#, c-format
msgid "no namespace given for --namespace\n"
msgstr ""
-#: git.c:216
-#, c-format
-msgid "no directory given for --work-tree\n"
-msgstr ""
-
#: git.c:230
#, c-format
msgid "no prefix given for --super-prefix\n"
@@ -23717,11 +24587,6 @@ msgstr ""
msgid "no config key given for --config-env\n"
msgstr ""
-#: git.c:300
-#, c-format
-msgid "no directory given for -C\n"
-msgstr ""
-
#: git.c:326
#, c-format
msgid "unknown option: %s\n"
@@ -23749,64 +24614,56 @@ msgstr ""
msgid "recursive alias: %s"
msgstr ""
-#: git.c:476
+#: git.c:480
msgid "write failure on standard output"
msgstr ""
-#: git.c:478
+#: git.c:482
msgid "unknown write failure on standard output"
msgstr ""
-#: git.c:480
+#: git.c:484
msgid "close failed on standard output"
msgstr "fechar a saída padrão falhou"
-#: git.c:833
+#: git.c:838
#, c-format
msgid "alias loop detected: expansion of '%s' does not terminate:%s"
msgstr ""
-#: git.c:883
+#: git.c:888
#, c-format
msgid "cannot handle %s as a builtin"
msgstr "incapaz lidar %s como um builtin"
-#: git.c:896
+#: git.c:901
#, c-format
msgid ""
"usage: %s\n"
"\n"
msgstr ""
-"utilização: %s\n"
+"uso: %s\n"
"\n"
-#: git.c:916
+#: git.c:921
#, c-format
msgid "expansion of alias '%s' failed; '%s' is not a git command\n"
msgstr ""
-#: git.c:928
+#: git.c:933
#, c-format
msgid "failed to run command '%s': %s\n"
msgstr "incapaz de executar comando '%s': %s\n"
-#: http-fetch.c:118
+#: http-fetch.c:128
#, c-format
msgid "argument to --packfile must be a valid hash (got '%s')"
-msgstr ""
+msgstr "argumento de --packfile tem de ser um hash válido (recebi '%s')"
-#: http-fetch.c:128
+#: http-fetch.c:138
msgid "not a git repository"
msgstr "é repositório git nenhum"
-#: http-fetch.c:134
-msgid "--packfile requires --index-pack-args"
-msgstr ""
-
-#: http-fetch.c:143
-msgid "--index-pack-args can only be used with --packfile"
-msgstr ""
-
#: t/helper/test-fast-rebase.c:141
msgid "unhandled options"
msgstr "opções largadas"
@@ -23818,7 +24675,7 @@ msgstr "erro preparando revisões"
#: t/helper/test-reach.c:154
#, c-format
msgid "commit %s is not marked reachable"
-msgstr "commit %s está a ser tratado como inalcançável"
+msgstr "memória %s está marcada como inalcançável"
#: t/helper/test-reach.c:164
msgid "too many commits marked reachable"
@@ -23832,147 +24689,109 @@ msgstr "test-tool serve-v2 [<opções>]"
msgid "exit immediately after advertising capabilities"
msgstr "sair imediatamente depois de anunciar capacidades"
-#: t/helper/test-simple-ipc.c:262
-#, c-format
-msgid "socket/pipe already in use: '%s'"
-msgstr ""
-
-#: t/helper/test-simple-ipc.c:264
-#, c-format
-msgid "could not start server on: '%s'"
-msgstr ""
-
-#: t/helper/test-simple-ipc.c:295 t/helper/test-simple-ipc.c:331
-msgid "could not spawn daemon in the background"
-msgstr ""
-
-#: t/helper/test-simple-ipc.c:356
-msgid "waitpid failed"
-msgstr ""
-
-#: t/helper/test-simple-ipc.c:376
-msgid "daemon not online yet"
-msgstr ""
-
-#: t/helper/test-simple-ipc.c:406
-msgid "daemon failed to start"
-msgstr ""
-
-#: t/helper/test-simple-ipc.c:410
-msgid "waitpid is confused"
-msgstr ""
-
-#: t/helper/test-simple-ipc.c:541
-msgid "daemon has not shutdown yet"
-msgstr ""
-
-#: t/helper/test-simple-ipc.c:682
+#: t/helper/test-simple-ipc.c:581
msgid "test-helper simple-ipc is-active [<name>] [<options>]"
msgstr ""
-#: t/helper/test-simple-ipc.c:683
+#: t/helper/test-simple-ipc.c:582
msgid "test-helper simple-ipc run-daemon [<name>] [<threads>]"
msgstr ""
-#: t/helper/test-simple-ipc.c:684
+#: t/helper/test-simple-ipc.c:583
msgid "test-helper simple-ipc start-daemon [<name>] [<threads>] [<max-wait>]"
msgstr ""
-#: t/helper/test-simple-ipc.c:685
+#: t/helper/test-simple-ipc.c:584
msgid "test-helper simple-ipc stop-daemon [<name>] [<max-wait>]"
msgstr ""
-#: t/helper/test-simple-ipc.c:686
+#: t/helper/test-simple-ipc.c:585
msgid "test-helper simple-ipc send [<name>] [<token>]"
msgstr ""
-#: t/helper/test-simple-ipc.c:687
+#: t/helper/test-simple-ipc.c:586
msgid "test-helper simple-ipc sendbytes [<name>] [<bytecount>] [<byte>]"
msgstr ""
-#: t/helper/test-simple-ipc.c:688
+#: t/helper/test-simple-ipc.c:587
msgid ""
"test-helper simple-ipc multiple [<name>] [<threads>] [<bytecount>] "
"[<batchsize>]"
msgstr ""
-#: t/helper/test-simple-ipc.c:696
+#: t/helper/test-simple-ipc.c:595
msgid "name or pathname of unix domain socket"
msgstr ""
-#: t/helper/test-simple-ipc.c:698
+#: t/helper/test-simple-ipc.c:597
msgid "named-pipe name"
msgstr ""
-#: t/helper/test-simple-ipc.c:700
+#: t/helper/test-simple-ipc.c:599
msgid "number of threads in server thread pool"
msgstr ""
-#: t/helper/test-simple-ipc.c:701
+#: t/helper/test-simple-ipc.c:600
msgid "seconds to wait for daemon to start or stop"
msgstr ""
-#: t/helper/test-simple-ipc.c:703
+#: t/helper/test-simple-ipc.c:602
msgid "number of bytes"
msgstr ""
-#: t/helper/test-simple-ipc.c:704
+#: t/helper/test-simple-ipc.c:603
msgid "number of requests per thread"
msgstr "número de pedidos por fio"
-#: t/helper/test-simple-ipc.c:706
+#: t/helper/test-simple-ipc.c:605
msgid "byte"
msgstr "byte"
-#: t/helper/test-simple-ipc.c:706
+#: t/helper/test-simple-ipc.c:605
msgid "ballast character"
msgstr ""
-#: t/helper/test-simple-ipc.c:707
+#: t/helper/test-simple-ipc.c:606
msgid "token"
msgstr "token"
-#: t/helper/test-simple-ipc.c:707
+#: t/helper/test-simple-ipc.c:606
msgid "command token to send to the server"
msgstr ""
-#: http.c:399
+#: http.c:350
#, c-format
msgid "negative value for http.postbuffer; defaulting to %d"
msgstr ""
-#: http.c:420
+#: http.c:371
msgid "Delegation control is not supported with cURL < 7.22.0"
-msgstr "Delegação de controlo tem suporte nenhum com cURL < 7.22.0"
+msgstr "Delegação de controlo é insustentado com cURL < 7.22.0"
-#: http.c:429
-msgid "Public key pinning not supported with cURL < 7.44.0"
-msgstr "Afixar chaves públicas tem suporte nenhum com cURL < 7.44.0"
+#: http.c:380
+msgid "Public key pinning not supported with cURL < 7.39.0"
+msgstr "Afixar chaves públicas é insustentado com cURL < 7.39.0"
-#: http.c:910
+#: http.c:812
msgid "CURLSSLOPT_NO_REVOKE not supported with cURL < 7.44.0"
-msgstr "CURLSSLOPT_NO_REVOKE tem suporte nenhum com cURL < 7.44.0"
-
-#: http.c:989
-msgid "Protocol restrictions not supported with cURL < 7.19.4"
-msgstr "Restrição protocolar tem suporte nenhum com cURL < 7.44.0"
+msgstr "CURLSSLOPT_NO_REVOKE é insustentado com cURL < 7.44.0"
-#: http.c:1132
+#: http.c:1016
#, c-format
msgid "Unsupported SSL backend '%s'. Supported SSL backends:"
msgstr ""
-#: http.c:1139
+#: http.c:1023
#, c-format
msgid "Could not set SSL backend to '%s': cURL was built without SSL backends"
msgstr ""
-#: http.c:1143
+#: http.c:1027
#, c-format
msgid "Could not set SSL backend to '%s': already set"
msgstr "Incapaz de definir backend SSL para '%s': já definido"
-#: http.c:2034
+#: http.c:1876
#, c-format
msgid ""
"unable to update url base from redirection:\n"
@@ -23983,138 +24802,324 @@ msgstr ""
" pedi: %s\n"
" redireção: %s"
-#: remote-curl.c:183
+#: remote-curl.c:184
#, c-format
msgid "invalid quoting in push-option value: '%s'"
msgstr ""
-#: remote-curl.c:307
+#: remote-curl.c:308
#, c-format
msgid "%sinfo/refs not valid: is this a git repository?"
msgstr "%sinfo/refs é inválido; isto é um repositório git?"
-#: remote-curl.c:408
+#: remote-curl.c:409
msgid "invalid server response; expected service, got flush packet"
msgstr ""
-#: remote-curl.c:439
+#: remote-curl.c:440
#, c-format
msgid "invalid server response; got '%s'"
msgstr ""
-#: remote-curl.c:499
+#: remote-curl.c:500
#, c-format
msgid "repository '%s' not found"
msgstr "repositório '%s' inexistente"
-#: remote-curl.c:503
+#: remote-curl.c:504
#, c-format
msgid "Authentication failed for '%s'"
msgstr "Autenticação falhou para '%s'"
-#: remote-curl.c:507
+#: remote-curl.c:508
+#, c-format
+msgid "unable to access '%s' with http.pinnedPubkey configuration: %s"
+msgstr ""
+
+#: remote-curl.c:512
#, c-format
msgid "unable to access '%s': %s"
msgstr "incapaz aceder '%s': %s"
-#: remote-curl.c:513
+#: remote-curl.c:518
#, c-format
msgid "redirecting to %s"
msgstr "redirecionando para %s"
-#: remote-curl.c:644
+#: remote-curl.c:649
msgid "shouldn't have EOF when not gentle on EOF"
msgstr ""
-#: remote-curl.c:656
+#: remote-curl.c:661
msgid "remote server sent unexpected response end packet"
msgstr "servidor remoto enviou pacote fim de resposta inesperado"
-#: remote-curl.c:726
+#: remote-curl.c:730
msgid "unable to rewind rpc post data - try increasing http.postBuffer"
msgstr ""
-#: remote-curl.c:756
+#: remote-curl.c:759
#, c-format
msgid "remote-curl: bad line length character: %.4s"
msgstr ""
-#: remote-curl.c:758
+#: remote-curl.c:761
msgid "remote-curl: unexpected response end packet"
msgstr ""
-#: remote-curl.c:834
+#: remote-curl.c:837
#, c-format
msgid "RPC failed; %s"
msgstr "RPC falhou: %s"
-#: remote-curl.c:874
+#: remote-curl.c:877
msgid "cannot handle pushes this big"
msgstr "incapaz atirar algo tão grande"
-#: remote-curl.c:989
+#: remote-curl.c:990
#, c-format
msgid "cannot deflate request; zlib deflate error %d"
msgstr ""
-#: remote-curl.c:993
+#: remote-curl.c:994
#, c-format
msgid "cannot deflate request; zlib end error %d"
msgstr ""
-#: remote-curl.c:1043
+#: remote-curl.c:1044
#, c-format
msgid "%d bytes of length header were received"
msgstr ""
-#: remote-curl.c:1045
+#: remote-curl.c:1046
#, c-format
msgid "%d bytes of body are still expected"
msgstr ""
-#: remote-curl.c:1134
+#: remote-curl.c:1135
msgid "dumb http transport does not support shallow capabilities"
-msgstr "transporte http estúpido insustenta capacidades shallow"
+msgstr "transporte http burro insustenta capacidades de superfície"
-#: remote-curl.c:1149
+#: remote-curl.c:1150
msgid "fetch failed."
-msgstr ""
+msgstr "busca falhou."
-#: remote-curl.c:1195
+#: remote-curl.c:1198
msgid "cannot fetch by sha1 over smart http"
-msgstr ""
+msgstr "incapaz buscar por sha1 através de http esperto"
-#: remote-curl.c:1239 remote-curl.c:1245
+#: remote-curl.c:1242 remote-curl.c:1248
#, c-format
msgid "protocol error: expected sha/ref, got '%s'"
msgstr ""
-#: remote-curl.c:1257 remote-curl.c:1375
+#: remote-curl.c:1260 remote-curl.c:1378
#, c-format
msgid "http transport does not support %s"
msgstr "transporte http insustenta %s"
-#: remote-curl.c:1293
+#: remote-curl.c:1296
msgid "git-http-push failed"
msgstr ""
-#: remote-curl.c:1481
+#: remote-curl.c:1485
msgid "remote-curl: usage: git remote-curl <remote> [<url>]"
msgstr ""
-#: remote-curl.c:1513
+#: remote-curl.c:1517
msgid "remote-curl: error reading command stream from git"
msgstr ""
-#: remote-curl.c:1520
+#: remote-curl.c:1524
msgid "remote-curl: fetch attempted without a local repo"
-msgstr ""
+msgstr "remote-curl: busca tentada sem repo local"
-#: remote-curl.c:1561
+#: remote-curl.c:1565
#, c-format
msgid "remote-curl: unknown command '%s' from git"
msgstr ""
+#: contrib/scalar/scalar.c:49
+msgid "need a working directory"
+msgstr "precisando de pasta-trabalho"
+
+#: contrib/scalar/scalar.c:86
+msgid "could not find enlistment root"
+msgstr "incapaz encontrar raiz de alistamento"
+
+#: contrib/scalar/scalar.c:89 contrib/scalar/scalar.c:350
+#: contrib/scalar/scalar.c:435 contrib/scalar/scalar.c:578
+#, c-format
+msgid "could not switch to '%s'"
+msgstr "incapaz trocar para '%s'"
+
+#: contrib/scalar/scalar.c:179
+#, c-format
+msgid "could not configure %s=%s"
+msgstr "incapaz configurar %s=%s"
+
+#: contrib/scalar/scalar.c:197
+msgid "could not configure log.excludeDecoration"
+msgstr ""
+
+#: contrib/scalar/scalar.c:218
+msgid "Scalar enlistments require a worktree"
+msgstr ""
+
+#: contrib/scalar/scalar.c:310
+#, c-format
+msgid "remote HEAD is not a branch: '%.*s'"
+msgstr "HEAD remota é ramo nenhum: '%.*s'"
+
+#: contrib/scalar/scalar.c:316
+msgid "failed to get default branch name from remote; using local default"
+msgstr ""
+"falhou obter de remoto nome de ramo pré-definido; usando pré-definição local"
+
+#: contrib/scalar/scalar.c:329
+msgid "failed to get default branch name"
+msgstr "falhou ao obter nome de ramo pré-definido"
+
+#: contrib/scalar/scalar.c:340
+msgid "failed to unregister repository"
+msgstr "falhou ao anular registo de repositório"
+
+#: contrib/scalar/scalar.c:355
+msgid "failed to delete enlistment directory"
+msgstr "falhou ao eliminar pasta de alistamento"
+
+#: contrib/scalar/scalar.c:375
+msgid "branch to checkout after clone"
+msgstr "ramo a observar após clonagem"
+
+#: contrib/scalar/scalar.c:377
+msgid "when cloning, create full working directory"
+msgstr "quando clonando, cria pasta-trabalho completa"
+
+#: contrib/scalar/scalar.c:379
+msgid "only download metadata for the branch that will be checked out"
+msgstr "apenas transferir metadata para o ramo que será observado"
+
+#: contrib/scalar/scalar.c:384
+msgid "scalar clone [<options>] [--] <repo> [<dir>]"
+msgstr "scalar clone [<opções>] [--] <repo> [<pasta>]"
+
+#: contrib/scalar/scalar.c:409
+#, c-format
+msgid "cannot deduce worktree name from '%s'"
+msgstr "incapaz deduzir nome de árvore-trabalho a partir de '%s'"
+
+#: contrib/scalar/scalar.c:418
+#, c-format
+msgid "directory '%s' exists already"
+msgstr "pasta '%s' já existe"
+
+#: contrib/scalar/scalar.c:445
+#, c-format
+msgid "failed to get default branch for '%s'"
+msgstr "falhou obter ramo pré-definido para '%s'"
+
+#: contrib/scalar/scalar.c:456
+#, c-format
+msgid "could not configure remote in '%s'"
+msgstr "incapaz configurar remoto em '%s'"
+
+#: contrib/scalar/scalar.c:465
+#, c-format
+msgid "could not configure '%s'"
+msgstr "incapaz configurar '%s'"
+
+#: contrib/scalar/scalar.c:468
+msgid "partial clone failed; attempting full clone"
+msgstr "clonagem parcial falhou; tentando clonagem completa"
+
+#: contrib/scalar/scalar.c:472
+msgid "could not configure for full clone"
+msgstr "incapaz configurar para clone completo"
+
+#: contrib/scalar/scalar.c:504
+msgid "`scalar list` does not take arguments"
+msgstr "`scalar list` leva argumentos nenhuns"
+
+#: contrib/scalar/scalar.c:517
+msgid "scalar register [<enlistment>]"
+msgstr ""
+
+#: contrib/scalar/scalar.c:544
+msgid "reconfigure all registered enlistments"
+msgstr ""
+
+#: contrib/scalar/scalar.c:548
+msgid "scalar reconfigure [--all | <enlistment>]"
+msgstr ""
+
+#: contrib/scalar/scalar.c:566
+msgid "--all or <enlistment>, but not both"
+msgstr ""
+
+#: contrib/scalar/scalar.c:581
+#, c-format
+msgid "git repository gone in '%s'"
+msgstr "foi-se repositório git em '%s'"
+
+#: contrib/scalar/scalar.c:621
+msgid ""
+"scalar run <task> [<enlistment>]\n"
+"Tasks:\n"
+msgstr ""
+
+#: contrib/scalar/scalar.c:639
+#, c-format
+msgid "no such task: '%s'"
+msgstr "tarefa inexistente: '%s'"
+
+#: contrib/scalar/scalar.c:689
+msgid "scalar unregister [<enlistment>]"
+msgstr ""
+
+#: contrib/scalar/scalar.c:736
+msgid "scalar delete <enlistment>"
+msgstr ""
+
+#: contrib/scalar/scalar.c:751
+msgid "refusing to delete current working directory"
+msgstr "recusando apagar pasta-trabalho atual"
+
+#: contrib/scalar/scalar.c:766
+msgid "include Git version"
+msgstr "incluir versão Git"
+
+#: contrib/scalar/scalar.c:768
+msgid "include Git's build options"
+msgstr ""
+
+#: contrib/scalar/scalar.c:772
+msgid "scalar verbose [-v | --verbose] [--build-options]"
+msgstr ""
+
+#: contrib/scalar/scalar.c:813
+msgid "-C requires a <directory>"
+msgstr "-C exige uma <pasta>"
+
+#: contrib/scalar/scalar.c:815
+#, c-format
+msgid "could not change to '%s'"
+msgstr "incapaz mudar para '%s'"
+
+#: contrib/scalar/scalar.c:821
+msgid "-c requires a <key>=<value> argument"
+msgstr "-c exige um argumento <chave>=<valor>"
+
+#: contrib/scalar/scalar.c:839
+msgid ""
+"scalar [-C <directory>] [-c <key>=<value>] <command> [<options>]\n"
+"\n"
+"Commands:\n"
+msgstr ""
+"scalar [-C <pasta>] [-c <chave>=<valor>] <comando> [<opções>]\n"
+"\n"
+"Comandos:\n"
+
#: compat/compiler.h:26
msgid "no compiler information available\n"
msgstr ""
@@ -24123,61 +25128,61 @@ msgstr ""
msgid "no libc information available\n"
msgstr "informação libc indisponível\n"
-#: list-objects-filter-options.h:94
+#: list-objects-filter-options.h:126
msgid "args"
msgstr ""
-#: list-objects-filter-options.h:95
+#: list-objects-filter-options.h:127
msgid "object filtering"
msgstr "filtração de objeto"
-#: parse-options.h:184
+#: parse-options.h:188
msgid "expiry-date"
msgstr "data-de-validade"
-#: parse-options.h:198
+#: parse-options.h:202
msgid "no-op (backward compatibility)"
msgstr "sem-ação (retrocompatibilidade)"
-#: parse-options.h:310
+#: parse-options.h:341
msgid "be more verbose"
msgstr "ser mais verboso"
-#: parse-options.h:312
+#: parse-options.h:343
msgid "be more quiet"
msgstr "ser mais silencioso"
-#: parse-options.h:318
+#: parse-options.h:349
msgid "use <n> digits to display object names"
msgstr "usar <n> dígitos para mostrar nomes de objetos"
-#: parse-options.h:337
+#: parse-options.h:368
msgid "how to strip spaces and #comments from message"
msgstr "como retirar espaços e #comentários da mensagem"
-#: parse-options.h:338
+#: parse-options.h:369
msgid "read pathspec from file"
msgstr "ler espetro-caminho de ficheiro"
-#: parse-options.h:339
+#: parse-options.h:370
msgid ""
"with --pathspec-from-file, pathspec elements are separated with NUL character"
msgstr ""
-"com --pathspec-from-file, os elementos de espetro-caminho estão separados por "
-"caractere NUL"
+"com --pathspec-from-file, os elementos de espetro-caminho estão separados "
+"por caractere NUL"
-#: ref-filter.h:99
+#: ref-filter.h:98
msgid "key"
msgstr "chave"
-#: ref-filter.h:99
+#: ref-filter.h:98
msgid "field name to sort on"
msgstr "nome do campo pelo qual ordernar"
#: rerere.h:44
msgid "update the index with reused conflict resolution if possible"
msgstr ""
-"atualizar o índice com resoluções de conflitos reutilizadas se possível"
+"se possível, atualizar o cenário com resoluções de conflitos já utilizadas"
#: command-list.h:50
msgid "Add file contents to the index"
@@ -24205,7 +25210,7 @@ msgstr "Criar arquivo de ficheiros a partir de árvore nomeada"
#: command-list.h:56
msgid "Use binary search to find the commit that introduced a bug"
-msgstr "Use procura binário para encontrar o commit que introduziu um bug"
+msgstr "Usar procura binário para encontrar a memória que introduziu um bug"
#: command-list.h:57
msgid "Show what revision and author last modified each line of a file"
@@ -24217,7 +25222,7 @@ msgstr "Listar, criar ou eliminar ramos"
#: command-list.h:59
msgid "Collect information for user to file a bug report"
-msgstr ""
+msgstr "Recolher informação para o utilizador reportar um bug"
#: command-list.h:60
msgid "Move objects and refs by archive"
@@ -24233,22 +25238,22 @@ msgstr ""
#: command-list.h:63
msgid "Debug gitignore / exclude files"
-msgstr ""
+msgstr "Depurar gitignore / ficheiros excluídos"
#: command-list.h:64
msgid "Show canonical names and email addresses of contacts"
msgstr "Mostrar nomes canónicos e endereços de e-mail de contatos"
#: command-list.h:65
-msgid "Switch branches or restore working tree files"
-msgstr "Trocar ramos ou restaurar ficheiros de árvore-trabalho"
+msgid "Ensures that a reference name is well formed"
+msgstr ""
#: command-list.h:66
-msgid "Copy files from the index to the working tree"
-msgstr ""
+msgid "Switch branches or restore working tree files"
+msgstr "Trocar ramos ou restaurar ficheiros de árvore-trabalho"
#: command-list.h:67
-msgid "Ensures that a reference name is well formed"
+msgid "Copy files from the index to the working tree"
msgstr ""
#: command-list.h:68
@@ -24269,7 +25274,7 @@ msgstr ""
#: command-list.h:72
msgid "Clone a repository into a new directory"
-msgstr "Clonar um repositório num novo diretório"
+msgstr "Clonar um repositório numa nova pasta"
#: command-list.h:73
msgid "Display data in columns"
@@ -24285,7 +25290,7 @@ msgstr ""
#: command-list.h:76
msgid "Create a new commit object"
-msgstr ""
+msgstr "Criar um novo objeto de memória"
#: command-list.h:77
msgid "Get and set repository or global options"
@@ -24329,8 +25334,7 @@ msgstr ""
#: command-list.h:87
msgid "Show changes between commits, commit and working tree, etc"
-msgstr ""
-"Mostrar alterações entre commits, entre commit e árvore de trabalho, etc"
+msgstr "Mostrar alterações entre memórias, memória e árvore-trabalho, etc"
#: command-list.h:88
msgid "Compares files in the working tree and the index"
@@ -24366,11 +25370,11 @@ msgstr ""
#: command-list.h:96
msgid "Rewrite branches"
-msgstr " Ramo remoto:%s"
+msgstr "Reescrever ramos"
#: command-list.h:97
msgid "Produce a merge commit message"
-msgstr ""
+msgstr "Produzir uma mensagem de memória de junção"
#: command-list.h:98
msgid "Output information on each ref"
@@ -24413,48 +25417,48 @@ msgid "Display help information about Git"
msgstr ""
#: command-list.h:108
-msgid "Server side implementation of Git over HTTP"
+msgid "Run git hooks"
msgstr ""
#: command-list.h:109
-msgid "Download from a remote Git repository via HTTP"
+msgid "Server side implementation of Git over HTTP"
msgstr ""
#: command-list.h:110
-msgid "Push objects over HTTP/DAV to another repository"
+msgid "Download from a remote Git repository via HTTP"
msgstr ""
#: command-list.h:111
-msgid "Send a collection of patches from stdin to an IMAP folder"
+msgid "Push objects over HTTP/DAV to another repository"
msgstr ""
#: command-list.h:112
-msgid "Build pack index file for an existing packed archive"
+msgid "Send a collection of patches from stdin to an IMAP folder"
msgstr ""
#: command-list.h:113
-msgid "Create an empty Git repository or reinitialize an existing one"
-msgstr "Criar um repositório Git vazio ou reinicializar um já existente"
+msgid "Build pack index file for an existing packed archive"
+msgstr ""
#: command-list.h:114
-msgid "Instantly browse your working repository in gitweb"
-msgstr ""
+msgid "Create an empty Git repository or reinitialize an existing one"
+msgstr "Criar um repositório Git vazio ou reinicializar um existente"
#: command-list.h:115
-msgid "Add or parse structured information in commit messages"
-msgstr ""
+msgid "Instantly browse your working repository in gitweb"
+msgstr "Navegar instantaneamente pelo teu repositório-trabalho em gitweb"
#: command-list.h:116
-msgid "The Git repository browser"
-msgstr "O browser de repositórios Git"
+msgid "Add or parse structured information in commit messages"
+msgstr "Adiciona ou processa informação estruturada em mensagem de memória"
#: command-list.h:117
msgid "Show commit logs"
-msgstr "Mostrar histórico de commits"
+msgstr "Mostrar registro de memórias"
#: command-list.h:118
msgid "Show information about files in the index and the working tree"
-msgstr "Mostrar informação acerca de ficheiros no cenário e árvore-trabalho"
+msgstr "Mostrar informação acerca de ficheiros no cenário e na árvore-trabalho"
#: command-list.h:119
msgid "List references in a remote repository"
@@ -24482,7 +25486,7 @@ msgstr "Juntar duas ou mais histórias de desenvolvimento numa só"
#: command-list.h:125
msgid "Find as good common ancestors as possible for a merge"
-msgstr "Encontrar tantos quantos antecessores comuns bons para uma junção"
+msgstr "Encontrar tantos quantos antecessores comuns, bons para uma junção"
#: command-list.h:126
msgid "Run a three-way file merge"
@@ -24497,28 +25501,30 @@ msgid "The standard helper program to use with git-merge-index"
msgstr ""
#: command-list.h:129
-msgid "Run merge conflict resolution tools to resolve merge conflicts"
+msgid "Show three-way merge without touching index"
msgstr ""
#: command-list.h:130
-msgid "Show three-way merge without touching index"
+msgid "Run merge conflict resolution tools to resolve merge conflicts"
msgstr ""
+"Executa ferramentas de resolução de conflito de junção para resolver "
+"conflitos de junção"
#: command-list.h:131
-msgid "Write and verify multi-pack-indexes"
-msgstr ""
+msgid "Creates a tag object with extra validation"
+msgstr "Cria um objeto-etiqueta com validação extra"
#: command-list.h:132
-msgid "Creates a tag object with extra validation"
-msgstr "outro objeto tag"
+msgid "Build a tree-object from ls-tree formatted text"
+msgstr ""
#: command-list.h:133
-msgid "Build a tree-object from ls-tree formatted text"
+msgid "Write and verify multi-pack-indexes"
msgstr ""
#: command-list.h:134
msgid "Move or rename a file, a directory, or a symlink"
-msgstr "Mover ou mudar o nome de um ficheiro, diretório ou ligação simbólica"
+msgstr "Mover ou renomear um ficheiro, pasta ou ligação simbólica"
#: command-list.h:135
msgid "Find symbolic names for given revs"
@@ -24558,7 +25564,7 @@ msgstr ""
#: command-list.h:144
msgid "Fetch from and integrate with another repository or a local branch"
-msgstr "Obter e integrar com outro repositório ou outro ramo local"
+msgstr "Buscar de e integrar com outro repositório ou um ramo local"
#: command-list.h:145
msgid "Update remote refs along with associated objects"
@@ -24566,11 +25572,11 @@ msgstr "Atualizar referências remotas juntamente com objetos associados"
#: command-list.h:146
msgid "Applies a quilt patchset onto the current branch"
-msgstr "Submete a mistura de patchset para o ramo atual."
+msgstr "Aplica-se uma mistura de patchset para o ramo atual."
#: command-list.h:147
msgid "Compare two commit ranges (e.g. two versions of a branch)"
-msgstr ""
+msgstr "Comparar os dois intervalos de memórias (e.g. duas versões de ramo)"
#: command-list.h:148
msgid "Reads tree information into the index"
@@ -24578,7 +25584,7 @@ msgstr ""
#: command-list.h:149
msgid "Reapply commits on top of another base tip"
-msgstr "Reaplicar commits no topo de outra base"
+msgstr "Reaplicar memórias no topo de outra ponta"
#: command-list.h:150
msgid "Receive what is pushed into the repository"
@@ -24606,7 +25612,7 @@ msgstr ""
#: command-list.h:156
msgid "Reuse recorded resolution of conflicted merges"
-msgstr ""
+msgstr "Reutilizar resolução guardada de junções conflituosas"
#: command-list.h:157
msgid "Reset current HEAD to the specified state"
@@ -24617,17 +25623,17 @@ msgid "Restore working tree files"
msgstr "Restaurar ficheiros de árvore-trabalho"
#: command-list.h:159
-msgid "Revert some existing commits"
-msgstr "Reverter algumas memórias existentes"
-
-#: command-list.h:160
msgid "Lists commit objects in reverse chronological order"
-msgstr ""
+msgstr "Listar objetos de memória em ordem cronológica inversa"
-#: command-list.h:161
+#: command-list.h:160
msgid "Pick out and massage parameters"
msgstr "demasiados parâmetros"
+#: command-list.h:161
+msgid "Revert some existing commits"
+msgstr "Reverter algumas memórias existentes"
+
#: command-list.h:162
msgid "Remove files from the working tree and from the index"
msgstr ""
@@ -24641,49 +25647,50 @@ msgid "Push objects over Git protocol to another repository"
msgstr ""
#: command-list.h:165
-msgid "Restricted login shell for Git-only SSH access"
+msgid "Git's i18n setup code for shell scripts"
msgstr ""
#: command-list.h:166
-msgid "Summarize 'git log' output"
+msgid "Common Git shell script setup code"
msgstr ""
#: command-list.h:167
-msgid "Show various types of objects"
-msgstr "Mostrar vários tipos objetos"
+msgid "Restricted login shell for Git-only SSH access"
+msgstr ""
#: command-list.h:168
-msgid "Show branches and their commits"
-msgstr "Mostrar ramos e as suas memórias"
+msgid "Summarize 'git log' output"
+msgstr ""
#: command-list.h:169
-msgid "Show packed archive index"
-msgstr ""
+msgid "Show various types of objects"
+msgstr "Mostrar vários tipos objetos"
#: command-list.h:170
-msgid "List references in a local repository"
-msgstr "Lista referências num repositório local"
+msgid "Show branches and their commits"
+msgstr "Mostrar ramos e suas memórias"
#: command-list.h:171
-msgid "Git's i18n setup code for shell scripts"
+msgid "Show packed archive index"
msgstr ""
#: command-list.h:172
-msgid "Common Git shell script setup code"
-msgstr ""
+msgid "List references in a local repository"
+msgstr "Lista referências num repositório local"
#: command-list.h:173
-msgid "Initialize and modify the sparse-checkout"
+msgid "Reduce your working tree to a subset of tracked files"
msgstr ""
+"Reduzir tua árvore-trabalho para um subgrupo de ficheiros monitorizados"
#: command-list.h:174
-msgid "Stash the changes in a dirty working directory away"
-msgstr "Esconde as alterações de pasta-trabalho suja"
-
-#: command-list.h:175
msgid "Add file contents to the staging area"
msgstr "Adicionar conteúdos de ficheiro ao cenário"
+#: command-list.h:175
+msgid "Stash the changes in a dirty working directory away"
+msgstr "Esconde as alterações duma pasta-trabalho suja"
+
#: command-list.h:176
msgid "Show the working tree status"
msgstr "Mostrar status de árvore-trabalho"
@@ -24702,11 +25709,11 @@ msgstr ""
#: command-list.h:180
msgid "Switch branches"
-msgstr "Troca branches"
+msgstr "Trocar ramos"
#: command-list.h:181
msgid "Read, modify and delete symbolic refs"
-msgstr "eliminar referências simbólicas"
+msgstr "Ler, modificar e eliminar refs simbólicas"
#: command-list.h:182
msgid "Create, list, delete or verify a tag object signed with GPG"
@@ -24731,6 +25738,7 @@ msgstr ""
#: command-list.h:187
msgid "Update auxiliary info file to help dumb servers"
msgstr ""
+"Atualizar ficheiro auxiliar de informação para ajudar servidores burros"
#: command-list.h:188
msgid "Send archive back to git-archive"
@@ -24738,7 +25746,7 @@ msgstr ""
#: command-list.h:189
msgid "Send objects packed back to git-fetch-pack"
-msgstr ""
+msgstr "Enviar objetos empacotados de volta a git-fetch-pack"
#: command-list.h:190
msgid "Show a Git logical variable"
@@ -24750,76 +25758,76 @@ msgstr "Verifica assinatura GPG de memórias"
#: command-list.h:192
msgid "Validate packed Git archive files"
-msgstr "Validar ficheiros pacote de arquivo Git"
+msgstr "Validar ficheiros pacote de repositório"
#: command-list.h:193
msgid "Check the GPG signature of tags"
-msgstr "Verifica assinatura GPG de tags"
+msgstr "Verifica assinatura GPG de etiquetas"
#: command-list.h:194
-msgid "Git web interface (web frontend to Git repositories)"
-msgstr "Interface web de Git (frontend web para repositórios Git)"
-
-#: command-list.h:195
msgid "Show logs with difference each commit introduces"
-msgstr "Mostrar logs com diferenças que cada memória introduz"
+msgstr "Mostrar registro com as diferenças que cada memória introduz"
-#: command-list.h:196
+#: command-list.h:195
msgid "Manage multiple working trees"
-msgstr "Gerir múltiplas working trees"
+msgstr "Gerir múltiplas árvores-trabalho"
-#: command-list.h:197
+#: command-list.h:196
msgid "Create a tree object from the current index"
-msgstr "Criar um objeto tree a partir de index atual"
+msgstr "Criar um objeto-árvore a partir de cenário atual"
-#: command-list.h:198
+#: command-list.h:197
msgid "Defining attributes per path"
msgstr "Definir atributos por path"
-#: command-list.h:199
+#: command-list.h:198
msgid "Git command-line interface and conventions"
msgstr ""
-#: command-list.h:200
+#: command-list.h:199
msgid "A Git core tutorial for developers"
-msgstr ""
+msgstr "Um tutorial para programadores sobre o núcleo de Git"
-#: command-list.h:201
+#: command-list.h:200
msgid "Providing usernames and passwords to Git"
msgstr ""
-#: command-list.h:202
+#: command-list.h:201
msgid "Git for CVS users"
msgstr ""
-#: command-list.h:203
+#: command-list.h:202
msgid "Tweaking diff output"
msgstr "Mexendo com saída de diff"
-#: command-list.h:204
+#: command-list.h:203
msgid "A useful minimum set of commands for Everyday Git"
msgstr ""
-#: command-list.h:205
+#: command-list.h:204
msgid "Frequently asked questions about using Git"
msgstr ""
-#: command-list.h:206
+#: command-list.h:205
msgid "A Git Glossary"
msgstr "Um Glossário de Git"
-#: command-list.h:207
+#: command-list.h:206
msgid "Hooks used by Git"
msgstr ""
-#: command-list.h:208
+#: command-list.h:207
msgid "Specifies intentionally untracked files to ignore"
msgstr ""
"Especificar ficheiros por monitorizar intencionalmente, para serem ignorados"
+#: command-list.h:208
+msgid "The Git repository browser"
+msgstr "O browser de repositórios Git"
+
#: command-list.h:209
msgid "Map author/committer names and/or E-Mail addresses"
-msgstr ""
+msgstr "Mapear nomes de autor/memorizador e/ou endereços de E-Mail"
#: command-list.h:210
msgid "Defining submodule properties"
@@ -24846,59 +25854,28 @@ msgid "Mounting one repository inside another"
msgstr ""
#: command-list.h:216
-msgid "A tutorial introduction to Git: part two"
-msgstr "Um tutorial de introdução a Git: parte dois"
-
-#: command-list.h:217
msgid "A tutorial introduction to Git"
msgstr "Um tutorial de introdução a Git"
+#: command-list.h:217
+msgid "A tutorial introduction to Git: part two"
+msgstr "Um tutorial de introdução a Git: parte dois"
+
#: command-list.h:218
+msgid "Git web interface (web frontend to Git repositories)"
+msgstr "Interface web de Git (frontend web para repositórios Git)"
+
+#: command-list.h:219
msgid "An overview of recommended workflows with Git"
msgstr "Uma descrição geral dos fluxos de trabalho recomendados para o Git"
-#: git-bisect.sh:68
-msgid "bisect run failed: no command provided."
-msgstr ""
-
-#: git-bisect.sh:73
-#, sh-format
-msgid "running $command"
-msgstr "executando $command"
-
-#: git-bisect.sh:80
-#, sh-format
-msgid ""
-"bisect run failed:\n"
-"exit code $res from '$command' is < 0 or >= 128"
-msgstr ""
-"bissetar impossível:\n"
-"exit code $res de '$command' é < 0 ou >= 128"
-
-#: git-bisect.sh:105
-msgid "bisect run cannot continue any more"
-msgstr "bisseção incapaz de continuar"
-
-#: git-bisect.sh:111
-#, sh-format
-msgid ""
-"bisect run failed:\n"
-"'bisect-state $state' exited with error code $res"
-msgstr ""
-"bisseção impossível:\n"
-"'bisect-state $state' retornou código de erro $res"
-
-#: git-bisect.sh:118
-msgid "bisect run success"
-msgstr "bissecção concluída com sucesso"
-
#: git-merge-octopus.sh:46
msgid ""
"Error: Your local changes to the following files would be overwritten by "
"merge"
msgstr ""
-"Erro: As suas alterações locais nos seguintes ficheiros seriam substituídas "
-"ao integrar"
+"Erro: Tuas alterações locais nos seguintes ficheiros seriam sobrescritas ao "
+"juntar"
#: git-merge-octopus.sh:61
msgid "Automated merge did not work."
@@ -24911,7 +25888,7 @@ msgstr "Deverias estar a fazer polvo nenhum."
#: git-merge-octopus.sh:73
#, sh-format
msgid "Unable to find common commit with $pretty_name"
-msgstr "Incapaz de encontrar commit comum com $pretty_name"
+msgstr "Incapaz de encontrar memória comum com $pretty_name"
#: git-merge-octopus.sh:77
#, sh-format
@@ -24921,514 +25898,55 @@ msgstr "Já está atualizado com $pretty_name"
#: git-merge-octopus.sh:89
#, sh-format
msgid "Fast-forwarding to: $pretty_name"
-msgstr "A avançar rapidamente para: $pretty_name"
+msgstr "Avançando para: $pretty_name"
#: git-merge-octopus.sh:97
#, sh-format
msgid "Trying simple merge with $pretty_name"
-msgstr "A tentar integração simples com $pretty_name"
+msgstr "Tentando junção simples com $pretty_name"
#: git-merge-octopus.sh:102
msgid "Simple merge did not work, trying automatic merge."
msgstr "Junção simples falhou, tentando junção automática."
-#: git-submodule.sh:179
-msgid "Relative path can only be used from the toplevel of the working tree"
-msgstr ""
-"Os caminhos relativos só podem ser usados a partir do topo da árvore de "
-"trabalho"
-
-#: git-submodule.sh:189
-#, sh-format
-msgid "repo URL: '$repo' must be absolute or begin with ./|../"
-msgstr "URL do repositório: '$repo' deve ser absoluto ou começar com ./|../"
-
-#: git-submodule.sh:208
-#, sh-format
-msgid "'$sm_path' already exists in the index"
-msgstr "'$sm_path' já existe no índice"
-
-#: git-submodule.sh:211
-#, sh-format
-msgid "'$sm_path' already exists in the index and is not a submodule"
-msgstr "'$sm_path' já existe no index e é submódulo nenhum"
-
-#: git-submodule.sh:218
-#, sh-format
-msgid "'$sm_path' does not have a commit checked out"
-msgstr "'$sm_path' tem memória nenhuma checked out"
-
-#: git-submodule.sh:248
-#, sh-format
-msgid "Failed to add submodule '$sm_path'"
-msgstr "Falhou ao adicionar submódulo '$sm_path'"
-
-#: git-submodule.sh:257
-#, sh-format
-msgid "Failed to register submodule '$sm_path'"
-msgstr "Falha ao registar submódulo '$sm_path'"
-
-#: git-submodule.sh:532
-#, sh-format
-msgid "Unable to find current revision in submodule path '$displaypath'"
-msgstr "Incapaz encontrar revisão atual em path de submódulo '$displaypath'"
-
-#: git-submodule.sh:542
-#, sh-format
-msgid "Unable to fetch in submodule path '$sm_path'"
-msgstr "Incapaz de buscar em path de submódulo '$sm_path'"
-
-#: git-submodule.sh:547
-#, sh-format
-msgid ""
-"Unable to find current ${remote_name}/${branch} revision in submodule path "
-"'$sm_path'"
-msgstr ""
-"Incapaz de encontrar revisão atual ${remote_name}/${branch} em path de "
-"submódulo '$sm_path'"
-
-#: git-submodule.sh:565
-#, sh-format
-msgid ""
-"Unable to fetch in submodule path '$displaypath'; trying to directly fetch "
-"$sha1:"
-msgstr ""
-"Incapaz de buscar em path de submódulo '$displaypath'; tentando buscar $sha1 "
-"directamente:"
-
-#: git-submodule.sh:571
-#, sh-format
-msgid ""
-"Fetched in submodule path '$displaypath', but it did not contain $sha1. "
-"Direct fetching of that commit failed."
-msgstr ""
-"Buscado na path de submódulo '$displaypath', mas continha nenhum $sha1. "
-"Falha ao buscar aquela memória diretamente."
-
-#: git-submodule.sh:578
-#, sh-format
-msgid "Unable to checkout '$sha1' in submodule path '$displaypath'"
-msgstr "Incapaz de checkout '$sha1' no path de submódulo '$displaypath'"
-
-#: git-submodule.sh:579
-#, sh-format
-msgid "Submodule path '$displaypath': checked out '$sha1'"
-msgstr "Path de submódulo '$displaypath': '$sha1' checked out"
-
-#: git-submodule.sh:583
-#, sh-format
-msgid "Unable to rebase '$sha1' in submodule path '$displaypath'"
-msgstr "Incapaz de rebasear '$sha1' em path de submódulo '$displaypath'"
-
-#: git-submodule.sh:584
-#, sh-format
-msgid "Submodule path '$displaypath': rebased into '$sha1'"
-msgstr "Path de submódulo '$displaypath': rebaseado em '$sha1'"
-
-#: git-submodule.sh:589
-#, sh-format
-msgid "Unable to merge '$sha1' in submodule path '$displaypath'"
-msgstr "Incapaz juntar '$sha1' em path de submódulo '$displaypath'"
-
-#: git-submodule.sh:590
-#, sh-format
-msgid "Submodule path '$displaypath': merged in '$sha1'"
-msgstr "Caminho de submódulo '$displaypath': integrado em '$sha1'"
-
-#: git-submodule.sh:595
-#, sh-format
-msgid "Execution of '$command $sha1' failed in submodule path '$displaypath'"
-msgstr ""
-"Falha ao executar '$command $sha1' no caminho de submódulo '$displaypath'"
-
-#: git-submodule.sh:596
-#, sh-format
-msgid "Submodule path '$displaypath': '$command $sha1'"
-msgstr "Caminho de submódulo '$displaypath': '$command $sha1'"
-
-#: git-submodule.sh:627
-#, sh-format
-msgid "Failed to recurse into submodule path '$displaypath'"
-msgstr "Falha ao percorrer o caminho de submódulo '$displaypath'"
-
-#: git-rebase--preserve-merges.sh:109
-msgid "Applied autostash."
-msgstr "Pilha automática (autostash) aplicada."
-
-#: git-rebase--preserve-merges.sh:112
-#, sh-format
-msgid "Cannot store $stash_sha1"
-msgstr "Incapaz guardar $stash_sha1"
-
-#: git-rebase--preserve-merges.sh:113
-msgid ""
-"Applying autostash resulted in conflicts.\n"
-"Your changes are safe in the stash.\n"
-"You can run \"git stash pop\" or \"git stash drop\" at any time.\n"
-msgstr ""
-"Realizando autostash existem sobreposições.\n"
-"As tuas mudanças estão salvas na stash.\n"
-"Podes executar \"git stash pop\" ou \"git stash drop\" oportunamente.\n"
-
-#: git-rebase--preserve-merges.sh:191
-#, sh-format
-msgid "Rebasing ($new_count/$total)"
-msgstr "A rebasear ($new_count/$total)"
-
-#: git-rebase--preserve-merges.sh:197
-msgid ""
-"\n"
-"Commands:\n"
-"p, pick <commit> = use commit\n"
-"r, reword <commit> = use commit, but edit the commit message\n"
-"e, edit <commit> = use commit, but stop for amending\n"
-"s, squash <commit> = use commit, but meld into previous commit\n"
-"f, fixup <commit> = like \"squash\", but discard this commit's log message\n"
-"x, exec <commit> = run command (the rest of the line) using shell\n"
-"d, drop <commit> = remove commit\n"
-"l, label <label> = label current HEAD with a name\n"
-"t, reset <label> = reset HEAD to a label\n"
-"m, merge [-C <commit> | -c <commit>] <label> [# <oneline>]\n"
-". create a merge commit using the original merge commit's\n"
-". message (or the oneline, if no original merge commit was\n"
-". specified). Use -c <commit> to reword the commit message.\n"
-"\n"
-"These lines can be re-ordered; they are executed from top to bottom.\n"
-msgstr ""
-"\n"
-"Comandos:\n"
-"p, pick <commit> = usa commit\n"
-"r, reword <commit> = usa commit, editando a mensagem commit\n"
-"e, edit <commit> = usa commit, mas pára para emendar\n"
-"s, squash <commit> = usa commit, fundindo no commit anterior\n"
-"f, fixup <commit> = como \"squash\", mas descarta mensagem deste commit\n"
-"x, exec <commit> = executa comando (do resto da linha) usando a shell\n"
-"d, drop <commit> = larga commit\n"
-"l, label <label> = dá um label a HEAD atual\n"
-"t, reset <label> = reinicia a HEAD em label\n"
-"m, merge [-C <commit> | -c <commit>] <label> [# <oneline>]\n"
-". cria merge commit usando a commit message original (a única\n"
-". linha também poderá ser utlilizada). Usa -c <commit> para \n"
-". modificar a commit message.\n"
-"\n"
-"Estas linhas podem ser reordenadas; são executadas de cima para baixo.\n"
-
-#: git-rebase--preserve-merges.sh:260
-#, sh-format
-msgid ""
-"You can amend the commit now, with\n"
-"\n"
-"\tgit commit --amend $gpg_sign_opt_quoted\n"
-"\n"
-"Once you are satisfied with your changes, run\n"
-"\n"
-"\tgit rebase --continue"
-msgstr ""
-"Podes emendar o commit agora, com\n"
-"\n"
-"\tgit commit --amend $gpg_sign_opt_quoted\n"
-"\n"
-"Quando modificações estão correctas, executa\n"
-"\n"
-"\tgit rebase --continue"
-
-#: git-rebase--preserve-merges.sh:285
-#, sh-format
-msgid "$sha1: not a commit that can be picked"
-msgstr "$sha1: é memória nenhuma que possa ser escolhida"
-
-#: git-rebase--preserve-merges.sh:324
-#, sh-format
-msgid "Invalid commit name: $sha1"
-msgstr "Nome de commit inválido: $sha1"
-
-#: git-rebase--preserve-merges.sh:354
-msgid "Cannot write current commit's replacement sha1"
-msgstr "Incapaz escrever sha1 substituto atual de commit"
-
-#: git-rebase--preserve-merges.sh:405
-#, sh-format
-msgid "Fast-forward to $sha1"
-msgstr "Avanço para $sha1"
-
-#: git-rebase--preserve-merges.sh:407
-#, sh-format
-msgid "Cannot fast-forward to $sha1"
-msgstr "Incapaz fast-forward até $sha1"
-
-#: git-rebase--preserve-merges.sh:416
-#, sh-format
-msgid "Cannot move HEAD to $first_parent"
-msgstr "Incapaz mover HEAD até $first_parent"
-
-#: git-rebase--preserve-merges.sh:421
-#, sh-format
-msgid "Refusing to squash a merge: $sha1"
-msgstr "Recusa-se a esmagar uma integração: $sha1"
-
-#: git-rebase--preserve-merges.sh:439
-#, sh-format
-msgid "Error redoing merge $sha1"
-msgstr "Erro ao refazer integração $sha1"
-
-#: git-rebase--preserve-merges.sh:448
-#, sh-format
-msgid "Could not pick $sha1"
-msgstr "Incapaz apanhar $sha1"
-
-#: git-rebase--preserve-merges.sh:457
-#, sh-format
-msgid "This is the commit message #${n}:"
-msgstr "Esta é a mensagem de memória #${n}:"
-
-#: git-rebase--preserve-merges.sh:462
-#, sh-format
-msgid "The commit message #${n} will be skipped:"
-msgstr "Mensagem de memória #${n} será ignorada:"
-
-#: git-rebase--preserve-merges.sh:473
-#, sh-format
-msgid "This is a combination of $count commit."
-msgid_plural "This is a combination of $count commits."
-msgstr[0] "Isto é a combinação de $count commit."
-msgstr[1] "Isto é a combinação de $count commits."
-
-#: git-rebase--preserve-merges.sh:482
-#, sh-format
-msgid "Cannot write $fixup_msg"
-msgstr "Incapaz escrever $fixup_msg"
-
-#: git-rebase--preserve-merges.sh:485
-msgid "This is a combination of 2 commits."
-msgstr "Isto é a combinação de 2 commits."
-
-#: git-rebase--preserve-merges.sh:526 git-rebase--preserve-merges.sh:569
-#: git-rebase--preserve-merges.sh:572
-#, sh-format
-msgid "Could not apply $sha1... $rest"
-msgstr "Incapaz submeter $sha1... $rest"
-
-#: git-rebase--preserve-merges.sh:601
-#, sh-format
-msgid ""
-"Could not amend commit after successfully picking $sha1... $rest\n"
-"This is most likely due to an empty commit message, or the pre-commit hook\n"
-"failed. If the pre-commit hook failed, you may need to resolve the issue "
-"before\n"
-"you are able to reword the commit."
-msgstr ""
-"Impossível emendar commit pós um sucesso do picking $sha1... $rest\n"
-" devido a um commit message vazio, ou o pre-commit hook falhou. Se o \n"
-"pre-commit hook falhou, pode ser preciso resolver o issue antes de \n"
-"tentares modificar a mensagem commit."
-
-#: git-rebase--preserve-merges.sh:616
-#, sh-format
-msgid "Stopped at $sha1_abbrev... $rest"
-msgstr "Parou em $sha1_abbrev... $rest"
-
-#: git-rebase--preserve-merges.sh:631
-#, sh-format
-msgid "Cannot '$squash_style' without a previous commit"
-msgstr "Incapaz '$squash_style' sem um commit anterior"
-
-#: git-rebase--preserve-merges.sh:673
-#, sh-format
-msgid "Executing: $rest"
-msgstr "A executar: $rest"
-
-#: git-rebase--preserve-merges.sh:681
-#, sh-format
-msgid "Execution failed: $rest"
-msgstr "Execução falhou: $rest"
-
-#: git-rebase--preserve-merges.sh:683
-msgid "and made changes to the index and/or the working tree"
-msgstr "e fiz alterações ao cenário e/ou à árvore-trabalho"
-
-#: git-rebase--preserve-merges.sh:685
-msgid ""
-"You can fix the problem, and then run\n"
-"\n"
-"\tgit rebase --continue"
-msgstr ""
-"Podes resolver o problema, e executar\n"
-"\n"
-"\tgit rebase --continue"
-
-#. TRANSLATORS: after these lines is a command to be issued by the user
-#: git-rebase--preserve-merges.sh:698
-#, sh-format
-msgid ""
-"Execution succeeded: $rest\n"
-"but left changes to the index and/or the working tree\n"
-"Commit or stash your changes, and then run\n"
-"\n"
-"\tgit rebase --continue"
-msgstr ""
-"Executado com sucesso: $rest\n"
-"e tens alterações em índice e/ou em working tree\n"
-"Põe no commit ou stash, e corre\n"
-"\n"
-"\tgit rebase --continue"
-
-#: git-rebase--preserve-merges.sh:709
-#, sh-format
-msgid "Unknown command: $command $sha1 $rest"
-msgstr "Comando desconhecido: $command $sha1 $rest"
-
-#: git-rebase--preserve-merges.sh:710
-msgid "Please fix this using 'git rebase --edit-todo'."
-msgstr "Por favor corrige isto usando 'git rebase --edit-todo'."
-
-#: git-rebase--preserve-merges.sh:745
-#, sh-format
-msgid "Successfully rebased and updated $head_name."
-msgstr "$head_name rebaseado e atualizado com sucesso."
-
-#: git-rebase--preserve-merges.sh:802
-msgid "Could not remove CHERRY_PICK_HEAD"
-msgstr "Incapaz remover CHERRY_PICK_HEAD"
-
-#: git-rebase--preserve-merges.sh:807
-#, sh-format
-msgid ""
-"You have staged changes in your working tree.\n"
-"If these changes are meant to be\n"
-"squashed into the previous commit, run:\n"
-"\n"
-" git commit --amend $gpg_sign_opt_quoted\n"
-"\n"
-"If they are meant to go into a new commit, run:\n"
-"\n"
-" git commit $gpg_sign_opt_quoted\n"
-"\n"
-"In both cases, once you're done, continue with:\n"
-"\n"
-" git rebase --continue\n"
-msgstr ""
-"Tens modificações staged na working tree.\n"
-"Se tenciona squash as modificações no último\n"
-"commit, execute:\n"
-"\n"
-" git commit --amend $gpg_sign_opt_quoted\n"
-"\n"
-"Se tenciona pô-las em novo commit, execute:\n"
-"\n"
-" git commit $gpg_sign_opt_quoted\n"
-"\n"
-"Em ambos os casos, quando feito, continue com:\n"
-"\n"
-" git rebase --continue\n"
-
-#: git-rebase--preserve-merges.sh:824
-msgid "Error trying to find the author identity to amend commit"
-msgstr "Erro ao tentar encontrar a identidade do autor para emendar o commit"
-
-#: git-rebase--preserve-merges.sh:829
-msgid ""
-"You have uncommitted changes in your working tree. Please commit them\n"
-"first and then run 'git rebase --continue' again."
-msgstr ""
-"Tem alterações por submeter na árvore de trabalho. Submeta-as primeiro\n"
-"e execute 'git rebase --continue' de novo."
-
-#: git-rebase--preserve-merges.sh:834 git-rebase--preserve-merges.sh:838
-msgid "Could not commit staged changes."
-msgstr "Incapaz de commit alterações preparadas."
-
-#: git-rebase--preserve-merges.sh:869 git-rebase--preserve-merges.sh:955
-msgid "Could not execute editor"
-msgstr "Incapaz executar editor"
-
-#: git-rebase--preserve-merges.sh:890
-#, sh-format
-msgid "Could not checkout $switch_to"
-msgstr "Incapaz checkout $switch_to"
-
-#: git-rebase--preserve-merges.sh:897
-msgid "No HEAD?"
-msgstr "HEAD nenhuma?"
-
-#: git-rebase--preserve-merges.sh:898
-#, sh-format
-msgid "Could not create temporary $state_dir"
-msgstr "Incapaz criar $state_dir temporário"
-
-#: git-rebase--preserve-merges.sh:901
-msgid "Could not mark as interactive"
-msgstr "Incapaz marcar como interativo"
-
-#: git-rebase--preserve-merges.sh:933
-#, sh-format
-msgid "Rebase $shortrevisions onto $shortonto ($todocount command)"
-msgid_plural "Rebase $shortrevisions onto $shortonto ($todocount commands)"
-msgstr[0] "Rebasear $shortrevisions sobre $shortonto ($todocount comando)"
-msgstr[1] "Rebasear $shortrevisions sobre $shortonto ($todocount comandos)"
-
-#: git-rebase--preserve-merges.sh:945
-msgid "Note that empty commits are commented out"
-msgstr "Note que memórias vazias são comentadas"
-
-#: git-rebase--preserve-merges.sh:987 git-rebase--preserve-merges.sh:992
-msgid "Could not init rewritten commits"
-msgstr "Incapaz inicializar memórias reescritas"
-
#: git-sh-setup.sh:89 git-sh-setup.sh:94
#, sh-format
msgid "usage: $dashless $USAGE"
-msgstr "utilização: $dashless $USAGE"
+msgstr "uso: $dashless $USAGE"
-#: git-sh-setup.sh:191
+#: git-sh-setup.sh:182
#, sh-format
msgid "Cannot chdir to $cdup, the toplevel of the working tree"
-msgstr "Incapaz chdir para $cdup, o topo da árvore de trabalho"
+msgstr "Incapaz chdir para $cdup, o topo da árvore-trabalho"
-#: git-sh-setup.sh:200 git-sh-setup.sh:207
+#: git-sh-setup.sh:191 git-sh-setup.sh:198
#, sh-format
msgid "fatal: $program_name cannot be used without a working tree."
-msgstr "fatal: $program_name apenas pode ser usado com uma árvore de trabalho."
-
-#: git-sh-setup.sh:221
-msgid "Cannot rebase: You have unstaged changes."
-msgstr "Incapaz rebasear: Tens alterações despreparadas."
+msgstr "fatal: $program_name apenas pode ser usado com uma árvore-trabalho."
-#: git-sh-setup.sh:224
+#: git-sh-setup.sh:212
msgid "Cannot rewrite branches: You have unstaged changes."
-msgstr "Incapaz reescrever ramos: Tens alterações despreparadas."
-
-#: git-sh-setup.sh:227
-msgid "Cannot pull with rebase: You have unstaged changes."
-msgstr "Incapaz agarrar com rebase: Tens alterações despreparadas."
+msgstr "Incapaz reescrever ramos: Tens alterações desencenadas."
-#: git-sh-setup.sh:230
+#: git-sh-setup.sh:215
#, sh-format
msgid "Cannot $action: You have unstaged changes."
-msgstr "Incapaz $action: Tens alterações despreparadas."
-
-#: git-sh-setup.sh:243
-msgid "Cannot rebase: Your index contains uncommitted changes."
-msgstr "Incapaz rebasear: Teu index contém alterações por memorizar."
-
-#: git-sh-setup.sh:246
-msgid "Cannot pull with rebase: Your index contains uncommitted changes."
-msgstr "Incapaz agarrar com rebase: Teu index contém alterações por memorizar."
+msgstr "Incapaz $action: Tens alterações desencenadas."
-#: git-sh-setup.sh:249
+#: git-sh-setup.sh:226
#, sh-format
msgid "Cannot $action: Your index contains uncommitted changes."
-msgstr "Incapaz $action: Teu index contém alterações por memorizar."
+msgstr "Incapaz $action: Teu cenário contém alterações por memorizar."
-#: git-sh-setup.sh:253
+#: git-sh-setup.sh:228
msgid "Additionally, your index contains uncommitted changes."
-msgstr "Além disso, teu index contém alterações por memorizar."
+msgstr "Além disso, teu cenário contém alterações por memorizar."
-#: git-sh-setup.sh:373
+#: git-sh-setup.sh:348
msgid "You need to run this command from the toplevel of the working tree."
-msgstr ""
-"Precisa de executar este comando a partir do topo da árvore de trabalho."
+msgstr "Precisas executar este comando a partir do topo da árvore-trabalho."
-#: git-sh-setup.sh:378
+#: git-sh-setup.sh:353
msgid "Unable to determine absolute path of git directory"
msgstr "Incapaz determinar caminho absoluto de pasta git"
@@ -25450,24 +25968,24 @@ msgid ""
"If the patch applies cleanly, the edited hunk will immediately be\n"
"marked for staging."
msgstr ""
-"Se patch aplica-se correctamente, a edição do hunk será marcada\n"
-"imediatamente como preparado."
+"Se remendo aplica-se correctamente, a edição do hunk será imediatamente\n"
+"marcada para encenar."
#: git-add--interactive.perl:1059
msgid ""
"If the patch applies cleanly, the edited hunk will immediately be\n"
"marked for stashing."
msgstr ""
-"Se patch aplica-se corretamente, a edição do hunk será marcada\n"
-"imediatamente como stashed."
+"Se remendo aplica-se corretamente, a edição do hunk será imediatamente\n"
+"marcada para esconder."
#: git-add--interactive.perl:1062
msgid ""
"If the patch applies cleanly, the edited hunk will immediately be\n"
"marked for unstaging."
msgstr ""
-"Se patch aplica-se corretamente, a edição do hunk será marcada\n"
-"imediatamente como despreparada."
+"Se remendo aplica-se corretamente, a edição do hunk será imediatamente\n"
+"marcada para desencenar."
#: git-add--interactive.perl:1065 git-add--interactive.perl:1074
#: git-add--interactive.perl:1080
@@ -25475,8 +25993,8 @@ msgid ""
"If the patch applies cleanly, the edited hunk will immediately be\n"
"marked for applying."
msgstr ""
-"Se patch aplica-se corretamente, a edição do hunk será marcada\n"
-"imediatamente como aplicada."
+"Se remendo aplica-se corretamente, a edição do hunk será imediatamente\n"
+"marcada para aplicação."
#: git-add--interactive.perl:1068 git-add--interactive.perl:1071
#: git-add--interactive.perl:1077
@@ -25484,8 +26002,8 @@ msgid ""
"If the patch applies cleanly, the edited hunk will immediately be\n"
"marked for discarding."
msgstr ""
-"Se patch aplica-se corretamente, o pedaço editado será marcado\n"
-"imediatamente como descartado."
+"Se remendo aplica-se corretamente, o pedaço editado será imediatamente\n"
+"marcada para descartar."
#: git-add--interactive.perl:1114
#, perl-format
@@ -25510,7 +26028,7 @@ msgstr ""
msgid "failed to open hunk edit file for reading: %s"
msgstr "falha a abrir ficheiro de edição do pedaço para leitura: %s"
-#: git-add--interactive.perl:1251
+#: git-add--interactive.perl:1253
msgid ""
"y - stage this hunk\n"
"n - do not stage this hunk\n"
@@ -25518,13 +26036,13 @@ msgid ""
"a - stage this hunk and all later hunks in the file\n"
"d - do not stage this hunk or any of the later hunks in the file"
msgstr ""
-"y - preparar este pedaço\n"
-"n - despreparar este pedaço\n"
-"q - sair; despreparar este pedaço e os restantes\n"
-"a - preparar este pedaço e os próximos deste ficheiro\n"
-"d - despreparar este pedaço e os próximos deste ficheiro"
+"y - encenar este pedaço\n"
+"n - deixar por encenar este pedaço\n"
+"q - sair; deixar por encenar este pedaço ou qualquer um dos que permaneçam\n"
+"a - encenar este pedaço e todos os próximos pedaços deste ficheiro\n"
+"d - deixar por encenar este pedaço ou qualquer próximo pedaço deste ficheiro"
-#: git-add--interactive.perl:1257
+#: git-add--interactive.perl:1259
msgid ""
"y - stash this hunk\n"
"n - do not stash this hunk\n"
@@ -25532,13 +26050,13 @@ msgid ""
"a - stash this hunk and all later hunks in the file\n"
"d - do not stash this hunk or any of the later hunks in the file"
msgstr ""
-"y - arrumar este pedaço\n"
-"n - deixar este pedaço fora dos arrumos\n"
-"q - sair; deixar este pedaço e os restantes fora dos arrumos\n"
-"a - arrumar este pedaço e os próximos deste ficheiro\n"
-"d - deixar este pedaço e os próximos deste ficheiro fora dos arrumos"
+"y - esconder este pedaço\n"
+"n - deixar por esconder este pedaço\n"
+"q - sair; deixar por esconder este pedaço ou qualquer um dos que permaneçam\n"
+"a - esconder este pedaço e todos os próximos pedaços neste ficheiro\n"
+"d - deixar por esconder este pedaço ou qualquer próximo pedaço neste ficheiro"
-#: git-add--interactive.perl:1263
+#: git-add--interactive.perl:1265
msgid ""
"y - unstage this hunk\n"
"n - do not unstage this hunk\n"
@@ -25546,13 +26064,14 @@ msgid ""
"a - unstage this hunk and all later hunks in the file\n"
"d - do not unstage this hunk or any of the later hunks in the file"
msgstr ""
-"y - despreparar este pedaço\n"
-"n - preparar este pedaço\n"
-"q - sair; preparar este pedaço e os restantes\n"
-"a - despreparar este pedaço e os próximos deste ficheiro\n"
-"d - preparar este pedaço e os próximos deste ficheiro"
+"y - desencenar este pedaço\n"
+"n - deixar por desencenar este pedaço\n"
+"q - sair; deixar por encenar este pedaço ou qualquer um dos que permaneçam\n"
+"a - desencenar este pedaço e todos os próximos pedaços neste ficheiro\n"
+"d - deixar por desencenar este pedaço ou qualquer próximo pedaço neste "
+"ficheiro"
-#: git-add--interactive.perl:1269
+#: git-add--interactive.perl:1271
msgid ""
"y - apply this hunk to index\n"
"n - do not apply this hunk to index\n"
@@ -25560,13 +26079,13 @@ msgid ""
"a - apply this hunk and all later hunks in the file\n"
"d - do not apply this hunk or any of the later hunks in the file"
msgstr ""
-"y - submeter este pedaço ao index\n"
-"n - deixar este pedaço de fora do index\n"
-"q - sair; deixar de fora este pedaço e os restantes\n"
-"a - submeter este pedaço e os próximos deste ficheiro\n"
-"d - deixar de fora este pedaço e os próximos deste ficheiro"
+"y - submeter este pedaço no cenário\n"
+"n - deixar por submeter este pedaço no cenário\n"
+"q - sair; deixar por submeter este pedaço ou qualquer um dos que permaneçam\n"
+"a - submeter este pedaço e todos os próximos pedaços neste ficheiro\n"
+"d - deixar por submeter este pedaço ou qualquer próximo pedaço neste ficheiro"
-#: git-add--interactive.perl:1275 git-add--interactive.perl:1293
+#: git-add--interactive.perl:1277 git-add--interactive.perl:1295
msgid ""
"y - discard this hunk from worktree\n"
"n - do not discard this hunk from worktree\n"
@@ -25574,13 +26093,15 @@ msgid ""
"a - discard this hunk and all later hunks in the file\n"
"d - do not discard this hunk or any of the later hunks in the file"
msgstr ""
-"y - descartar este pedaço da árvore de trabalho\n"
-"n - manter este pedaço na árvore de trabalho\n"
-"q - sair; considerar este pedaço e os restantes\n"
-"a - descartar este pedaço e os os próximos deste ficheiro\n"
-"d - manter este pedaço e os próximos deste ficheiro"
+"y - descartar este pedaço da árvore-trabalho\n"
+"n - deixar por descartar este pedaço da árvore-trabalho\n"
+"q - sair; deixar por descartar este pedaço ou qualquer um dos que "
+"permaneçam\n"
+"a - descartar este pedaço e qualquer próximos pedaço neste ficheiro\n"
+"d - deixar por descartar este pedaço ou qualquer próximo pedaço neste "
+"ficheiro"
-#: git-add--interactive.perl:1281
+#: git-add--interactive.perl:1283
msgid ""
"y - discard this hunk from index and worktree\n"
"n - do not discard this hunk from index and worktree\n"
@@ -25588,13 +26109,15 @@ msgid ""
"a - discard this hunk and all later hunks in the file\n"
"d - do not discard this hunk or any of the later hunks in the file"
msgstr ""
-"y - descartar este pedaço de index e árvore de trabalho\n"
-"n - manter este pedaço no index e árvore de trabalho\n"
-"q - sair; manter este pedaço e os restante\n"
-"a - descartar este pedaço e os próximos deste ficheiro\n"
-"d - manter este pedaço e os próximos deste ficheiro"
+"y - descartar este pedaço do cenário e árvore-trabalho\n"
+"n - deixar por descartar este pedaço do cenário e árvore-trabalho\n"
+"q - sair; deixar por descartar este pedaço ou qualquer um dos que "
+"permaneçam\n"
+"a - descartar este pedaço e qualquer próximos pedaço neste ficheiro\n"
+"d - deixar por descartar este pedaço ou qualquer próximo pedaço neste "
+"ficheiro"
-#: git-add--interactive.perl:1287
+#: git-add--interactive.perl:1289
msgid ""
"y - apply this hunk to index and worktree\n"
"n - do not apply this hunk to index and worktree\n"
@@ -25602,13 +26125,13 @@ msgid ""
"a - apply this hunk and all later hunks in the file\n"
"d - do not apply this hunk or any of the later hunks in the file"
msgstr ""
-"y - submeter este pedaço ao index e à árvore de trabalho\n"
-"n - deixar este pedaço fora de índice e à árvore de trabalho\n"
-"q - sair; deixar de fora este pedaço e restantes\n"
-"a - submeter este pedaço e os próximos deste ficheiro\n"
-"d - deixar de fora este pedaço e os próximos deste ficheiro"
+"y - submeter este pedaço ao cenário e à árvore-trabalho\n"
+"n - deixar por submeter este pedaço ao cenário e à árvore-trabalho\n"
+"q - sair; deixar por submeter este pedaço ou qualquer um dos que permaneçam\n"
+"a - submeter este pedaço e qualquer próximos pedaço neste ficheiro\n"
+"d - deixar por submeter este pedaço ou qualquer próximo pedaço neste ficheiro"
-#: git-add--interactive.perl:1299
+#: git-add--interactive.perl:1301
msgid ""
"y - apply this hunk to worktree\n"
"n - do not apply this hunk to worktree\n"
@@ -25616,13 +26139,13 @@ msgid ""
"a - apply this hunk and all later hunks in the file\n"
"d - do not apply this hunk or any of the later hunks in the file"
msgstr ""
-"y - submeter este pedaço à árvore de trabalho\n"
-"n - deixar este pedaço de fora da árvore de trabalho\n"
-"q - sair; deixar de fora este pedaço e restantes\n"
-"a - submeter este pedaço e os próximos deste ficheiro\n"
-"d - deixar de fora este pedaço e os próximos deste ficheiro"
+"y - submeter este pedaço à árvore-trabalho\n"
+"n - deixar por submeter este pedaço à árvore-trabalho\n"
+"q - sair; deixar por submeter este pedaço ou qualquer um dos que permaneçam\n"
+"a - submeter este pedaço e qualquer próximos pedaço neste ficheiro\n"
+"d - deixar por submeter este pedaço ou qualquer próximo pedaço neste ficheiro"
-#: git-add--interactive.perl:1314
+#: git-add--interactive.perl:1316
msgid ""
"g - select a hunk to go to\n"
"/ - search for a hunk matching the given regex\n"
@@ -25644,95 +26167,90 @@ msgstr ""
"e - editar manualmente o pedaço atual\n"
"? - imprimir ajuda\n"
-#: git-add--interactive.perl:1345
+#: git-add--interactive.perl:1347
msgid "The selected hunks do not apply to the index!\n"
-msgstr "Os pedaços selecionados ficam de fora de index!\n"
+msgstr "Os pedaços selecionados ficam de fora de cenário!\n"
-#: git-add--interactive.perl:1360
+#: git-add--interactive.perl:1362
#, perl-format
msgid "ignoring unmerged: %s\n"
msgstr "ignorando por juntar: %s\n"
-#: git-add--interactive.perl:1479
+#: git-add--interactive.perl:1481
#, perl-format
msgid "Apply mode change to worktree [y,n,q,a,d%s,?]? "
-msgstr ""
-"Aplicar alteração de modo ao índice e à árvore de trabalho [y,n,q,a,d,/"
-"%s,?]? "
+msgstr "Submeter alteração de modo à árvore-trabalho [y,n,q,a,d%s,?]? "
-#: git-add--interactive.perl:1480
+#: git-add--interactive.perl:1482
#, perl-format
msgid "Apply deletion to worktree [y,n,q,a,d%s,?]? "
-msgstr ""
-"Aplicar eliminação ao índice e à árvore de trabalho [y,n,q,a,d,/%s,?]? "
+msgstr "Submeter eliminação à árvore-trabalho [y,n,q,a,d%s,?]? "
-#: git-add--interactive.perl:1481
+#: git-add--interactive.perl:1483
#, perl-format
msgid "Apply addition to worktree [y,n,q,a,d%s,?]? "
-msgstr ""
-"Aplicar eliminação ao índice e à árvore de trabalho [y,n,q,a,d,/%s,?]? "
+msgstr "Submeter adição à árvore-trabalho [y,n,q,a,d%s,?]? "
-#: git-add--interactive.perl:1482
+#: git-add--interactive.perl:1484
#, perl-format
msgid "Apply this hunk to worktree [y,n,q,a,d%s,?]? "
-msgstr ""
-"Aplicar este pedaço ao índice e à árvore de trabalho [y,n,q,a,d,/%s,?]? "
+msgstr "Aplicar este pedaço à árvore-trabalho [y,n,q,a,d%s,?]? "
-#: git-add--interactive.perl:1599
+#: git-add--interactive.perl:1601
msgid "No other hunks to goto\n"
msgstr ""
-#: git-add--interactive.perl:1617
+#: git-add--interactive.perl:1619
#, perl-format
msgid "Invalid number: '%s'\n"
msgstr "Número inválido: '%s'\n"
-#: git-add--interactive.perl:1622
+#: git-add--interactive.perl:1624
#, perl-format
msgid "Sorry, only %d hunk available.\n"
msgid_plural "Sorry, only %d hunks available.\n"
msgstr[0] "Lamento, apenas %d pedaço disponível.\n"
msgstr[1] "Lamento, apenas %d pedaços disponíveis.\n"
-#: git-add--interactive.perl:1657
+#: git-add--interactive.perl:1659
msgid "No other hunks to search\n"
msgstr ""
-#: git-add--interactive.perl:1674
+#: git-add--interactive.perl:1676
#, perl-format
msgid "Malformed search regexp %s: %s\n"
msgstr "Regexp de pesquisa malformada %s: %s\n"
-#: git-add--interactive.perl:1684
+#: git-add--interactive.perl:1686
msgid "No hunk matches the given pattern\n"
msgstr "Nenhum pedaço corresponde ao padrão fornecido\n"
-#: git-add--interactive.perl:1696 git-add--interactive.perl:1718
+#: git-add--interactive.perl:1698 git-add--interactive.perl:1720
msgid "No previous hunk\n"
msgstr "Nenhum pedaço anterior\n"
-#: git-add--interactive.perl:1705 git-add--interactive.perl:1724
+#: git-add--interactive.perl:1707 git-add--interactive.perl:1726
msgid "No next hunk\n"
msgstr "Nenhum pedaço seguinte\n"
-#: git-add--interactive.perl:1730
+#: git-add--interactive.perl:1732
msgid "Sorry, cannot split this hunk\n"
msgstr ""
-#: git-add--interactive.perl:1736
+#: git-add--interactive.perl:1738
#, perl-format
msgid "Split into %d hunk.\n"
msgid_plural "Split into %d hunks.\n"
msgstr[0] "Dividir em %d pedaço.\n"
msgstr[1] "Dividir em %d pedaços.\n"
-#: git-add--interactive.perl:1746
+#: git-add--interactive.perl:1748
msgid "Sorry, cannot edit this hunk\n"
msgstr ""
#. TRANSLATORS: please do not translate the command names
#. 'status', 'update', 'revert', etc.
-#: git-add--interactive.perl:1811
+#: git-add--interactive.perl:1813
msgid ""
"status - show paths with changes\n"
"update - add working tree state to the staged set of changes\n"
@@ -25742,113 +26260,113 @@ msgid ""
"add untracked - add contents of untracked files to the staged set of "
"changes\n"
msgstr ""
-"status - mostrar paths com alterações\n"
-"update - adicionar o estado da árvore de trabalho ao conjunto de "
-"alterações preparadas\n"
-"revert - reverter conjunto de alterações preparadas de volta à versão "
+"status - mostrar caminhos com alterações\n"
+"update - adicionar estado de árvore-trabalho ao conjunto de "
+"alterações encenadas\n"
+"revert - reverter conjunto de alterações encenadas de volta à versão "
"HEAD\n"
"patch - escolher pedaços e atualizar seletivamente\n"
-"diff - ver diff entre HEAD e index\n"
-"add untracked - adicionar conteúdos de ficheiros por monitorizar ao conjunto "
-"de alterações preparadas\n"
-
-#: git-add--interactive.perl:1828 git-add--interactive.perl:1840
-#: git-add--interactive.perl:1843 git-add--interactive.perl:1850
-#: git-add--interactive.perl:1853 git-add--interactive.perl:1860
-#: git-add--interactive.perl:1864 git-add--interactive.perl:1870
+"diff - ver diff entre HEAD e cenário\n"
+"add untracked - adicionar conteúdos de ficheiros desmonitorizados ao "
+"conjunto de alterações encenadas\n"
+
+#: git-add--interactive.perl:1830 git-add--interactive.perl:1842
+#: git-add--interactive.perl:1845 git-add--interactive.perl:1852
+#: git-add--interactive.perl:1855 git-add--interactive.perl:1862
+#: git-add--interactive.perl:1866 git-add--interactive.perl:1872
msgid "missing --"
msgstr "falta --"
-#: git-add--interactive.perl:1866
+#: git-add--interactive.perl:1868
#, perl-format
msgid "unknown --patch mode: %s"
msgstr "modo --patch desconhecido: %s"
-#: git-add--interactive.perl:1872 git-add--interactive.perl:1878
+#: git-add--interactive.perl:1874 git-add--interactive.perl:1880
#, perl-format
msgid "invalid argument %s, expecting --"
msgstr "argumento inválido %s, esperando --"
-#: git-send-email.perl:129
+#: git-send-email.perl:159
msgid "local zone differs from GMT by a non-minute interval\n"
msgstr "zona local difere de GMT por um intervalo diferente de minuto\n"
-#: git-send-email.perl:136 git-send-email.perl:142
+#: git-send-email.perl:166 git-send-email.perl:172
msgid "local time offset greater than or equal to 24 hours\n"
msgstr "a diferença de tempo local é maior ou igual a 24 horas\n"
-#: git-send-email.perl:214
+#: git-send-email.perl:244
#, perl-format
msgid "fatal: command '%s' died with exit code %d"
msgstr ""
-#: git-send-email.perl:227
+#: git-send-email.perl:257
msgid "the editor exited uncleanly, aborting everything"
-msgstr "o editor saiu com erros, abortar tudo"
+msgstr "o editor saiu incorretamente, abortar tudo"
-#: git-send-email.perl:316
+#: git-send-email.perl:346
#, perl-format
msgid ""
"'%s' contains an intermediate version of the email you were composing.\n"
-msgstr "'%s' contém uma versão intermédia do e-mail que esteve a compor.\n"
+msgstr "'%s' contém uma versão intermédia do email que estavas a compor.\n"
-#: git-send-email.perl:321
+#: git-send-email.perl:351
#, perl-format
msgid "'%s.final' contains the composed email.\n"
msgstr "'%s.final' contém o e-mail composto.\n"
-#: git-send-email.perl:450
+#: git-send-email.perl:484
msgid "--dump-aliases incompatible with other options\n"
msgstr "--dump-aliases incompatível com outras opções\n"
-#: git-send-email.perl:525
+#: git-send-email.perl:561
msgid ""
"fatal: found configuration options for 'sendmail'\n"
"git-send-email is configured with the sendemail.* options - note the 'e'.\n"
"Set sendemail.forbidSendmailVariables to false to disable this check.\n"
msgstr ""
-#: git-send-email.perl:530 git-send-email.perl:746
+#: git-send-email.perl:566 git-send-email.perl:782
msgid "Cannot run git format-patch from outside a repository\n"
msgstr "Incapaz executar git format-patch fora de um repositório\n"
-#: git-send-email.perl:533
+#: git-send-email.perl:569
msgid ""
"`batch-size` and `relogin` must be specified together (via command-line or "
"configuration option)\n"
msgstr ""
-#: git-send-email.perl:546
+#: git-send-email.perl:582
#, perl-format
msgid "Unknown --suppress-cc field: '%s'\n"
msgstr "Campo de --suppress-cc desconhecido: '%s'\n"
-#: git-send-email.perl:577
+#: git-send-email.perl:613
#, perl-format
msgid "Unknown --confirm setting: '%s'\n"
msgstr "Definidição --confirm desconhecida: '%s'\n"
-#: git-send-email.perl:617
+#: git-send-email.perl:653
#, perl-format
msgid "warning: sendmail alias with quotes is not supported: %s\n"
msgstr "aviso: alias sendmail com aspas é insustentado: %s\n"
-#: git-send-email.perl:619
+#: git-send-email.perl:655
#, perl-format
msgid "warning: `:include:` not supported: %s\n"
msgstr "aviso: `:include:` insustentado: %s\n"
-#: git-send-email.perl:621
+#: git-send-email.perl:657
#, perl-format
msgid "warning: `/file` or `|pipe` redirection not supported: %s\n"
msgstr "aviso: `/file` ou redireção `|pipe` é insustentado: %s\n"
-#: git-send-email.perl:626
+#: git-send-email.perl:662
#, perl-format
msgid "warning: sendmail line is not recognized: %s\n"
msgstr "aviso: linha sendmail está por reconhecer: %s\n"
-#: git-send-email.perl:711
+#: git-send-email.perl:747
#, perl-format
msgid ""
"File '%s' exists but it could also be the range of commits\n"
@@ -25857,18 +26375,18 @@ msgid ""
" * Saying \"./%s\" if you mean a file; or\n"
" * Giving --format-patch option if you mean a range.\n"
msgstr ""
-"O ficheiro '%s' existe mas também pode ser um intervalo de commits\n"
-"para os quais produzir patches. Por favor desambigue...\n"
+"Ficheiro '%s' existe mas também pode ser o intervalo de memórias\n"
+"para as quais produzir remendos. Por favor desambigue...\n"
"\n"
-" * Dizendo \"./%s\" se pretende um ficheiro; ou\n"
-" * Passando a opção --format-patch se pretende um intervalo de commits.\n"
+" * Dizendo \"./%s\" se pretendes um ficheiro; ou\n"
+" * Passando a opção --format-patch se pretendes um intervalo.\n"
-#: git-send-email.perl:732
+#: git-send-email.perl:768
#, perl-format
msgid "Failed to opendir %s: %s"
-msgstr "Falha ao abrir diretório %s: %s"
+msgstr "Falhou ao opendir %s: %s"
-#: git-send-email.perl:767
+#: git-send-email.perl:803
msgid ""
"\n"
"No patch files specified!\n"
@@ -25878,17 +26396,17 @@ msgstr ""
"Nenhum ficheiro patch especificado!\n"
"\n"
-#: git-send-email.perl:780
+#: git-send-email.perl:816
#, perl-format
msgid "No subject line in %s?"
msgstr "Nenhum linha de assunto em %s?"
-#: git-send-email.perl:791
+#: git-send-email.perl:827
#, perl-format
msgid "Failed to open for writing %s: %s"
msgstr "Falha ao abrir %s para escrita: %s"
-#: git-send-email.perl:802
+#: git-send-email.perl:838
msgid ""
"Lines beginning in \"GIT:\" will be removed.\n"
"Consider including an overall diffstat or table of contents\n"
@@ -25902,27 +26420,27 @@ msgstr ""
"\n"
"Apague o conteúdo do corpo se deseja enviar um sumário nenhum.\n"
-#: git-send-email.perl:826
+#: git-send-email.perl:862
#, perl-format
msgid "Failed to open %s: %s"
msgstr "Falha ao abrir %s: %s"
-#: git-send-email.perl:843
+#: git-send-email.perl:879
#, perl-format
msgid "Failed to open %s.final: %s"
msgstr "Falha ao abrir %s.final: %s"
-#: git-send-email.perl:886
+#: git-send-email.perl:922
msgid "Summary email is empty, skipping it\n"
-msgstr "O e-mail de sumário está vazio, saltá-lo à frente\n"
+msgstr "O email de sumário está vazio, saltá-lo à frente\n"
#. TRANSLATORS: please keep [y/N] as is.
-#: git-send-email.perl:935
+#: git-send-email.perl:971
#, perl-format
msgid "Are you sure you want to use <%s> [y/N]? "
-msgstr "Tem a certeza que quer usar <%s> [y/N]? "
+msgstr "Tens a certeza que queres usar <%s> [y/N]? "
-#: git-send-email.perl:990
+#: git-send-email.perl:1026
msgid ""
"The following files are 8bit, but do not declare a Content-Transfer-"
"Encoding.\n"
@@ -25930,11 +26448,11 @@ msgstr ""
"Os seguintes ficheiros são 8bit, mas declaram Content-Transfer-Encoding "
"nenhum.\n"
-#: git-send-email.perl:995
+#: git-send-email.perl:1031
msgid "Which 8bit encoding should I declare [UTF-8]? "
-msgstr "Que codificação 8bit se deve declarar [UTF-8]? "
+msgstr "Que codificação 8bit queres que eu declare [UTF-8]? "
-#: git-send-email.perl:1003
+#: git-send-email.perl:1039
#, perl-format
msgid ""
"Refusing to send because the patch\n"
@@ -25947,22 +26465,22 @@ msgstr ""
"tem o assunto modelo '*** SUBJECT HERE ***'. Passe --force se pretende mesmo "
"enviar.\n"
-#: git-send-email.perl:1022
+#: git-send-email.perl:1058
msgid "To whom should the emails be sent (if anyone)?"
-msgstr "Para quem devem ser enviados os e-mails (se alguém)?"
+msgstr "Para quem devem ser enviados os emails (se alguém)?"
-#: git-send-email.perl:1040
+#: git-send-email.perl:1076
#, perl-format
msgid "fatal: alias '%s' expands to itself\n"
msgstr "fatal: alias '%s' expande para si próprio\n"
-#: git-send-email.perl:1052
+#: git-send-email.perl:1088
msgid "Message-ID to be used as In-Reply-To for the first email (if any)? "
msgstr ""
"Message-ID para ser usado como In-Reply-To para o primeiro e-mail (se "
"algum)? "
-#: git-send-email.perl:1114 git-send-email.perl:1122
+#: git-send-email.perl:1150 git-send-email.perl:1158
#, perl-format
msgid "error: unable to extract a valid address from: %s\n"
msgstr "erro: incapaz extrair endereço válido de: %s\n"
@@ -25970,16 +26488,16 @@ msgstr "erro: incapaz extrair endereço válido de: %s\n"
#. TRANSLATORS: Make sure to include [q] [d] [e] in your
#. translation. The program will only accept English input
#. at this point.
-#: git-send-email.perl:1126
+#: git-send-email.perl:1162
msgid "What to do with this address? ([q]uit|[d]rop|[e]dit): "
msgstr "O que fazer com este endereço? ([q]uit|[d]rop|[e]dit): "
-#: git-send-email.perl:1446
+#: git-send-email.perl:1482
#, perl-format
msgid "CA path \"%s\" does not exist"
msgstr "Path CA \"%s\" é inexistente"
-#: git-send-email.perl:1529
+#: git-send-email.perl:1565
msgid ""
" The Cc list above has been expanded by additional\n"
" addresses found in the patch commit message. By default\n"
@@ -25993,140 +26511,141 @@ msgid ""
"\n"
msgstr ""
" A lista de Cc acima foi expandida com endereços\n"
-" adicionais encontrados na mensagem de commit do patch.\n"
+" adicionais encontrados na mensagem de memória do remendo.\n"
" Por omissão send-email pergunta antes de enviar quando\n"
" isto ocorre. Este comportamento é controlado pela definição\n"
-" de configuração sendemail.confirm.\n"
+" de configuração sendemail.confirm .\n"
"\n"
-" Para informação adicional, execute 'git send-email --help'.\n"
+" Para informação adicional, executa 'git send-email --help'.\n"
" Para reter o comportamento atual, mas suprimir esta mensagem,\n"
-" execute 'git config --global sendemail.confirm auto'.\n"
+" executa 'git config --global sendemail.confirm auto'.\n"
"\n"
#. TRANSLATORS: Make sure to include [y] [n] [e] [q] [a] in your
#. translation. The program will only accept English input
#. at this point.
-#: git-send-email.perl:1544
+#: git-send-email.perl:1580
msgid "Send this email? ([y]es|[n]o|[e]dit|[q]uit|[a]ll): "
msgstr "Enviar este e-mail? ([y]es|[n]o|[q]uit|[a]ll): "
-#: git-send-email.perl:1547
+#: git-send-email.perl:1583
msgid "Send this email reply required"
-msgstr "É necessária resposta se deseja enviar este e-mail"
+msgstr "É exigido enviar esta resposta a email"
-#: git-send-email.perl:1581
+#: git-send-email.perl:1617
msgid "The required SMTP server is not properly defined."
msgstr "O servidor SMTP necessário está definido incorretamente."
-#: git-send-email.perl:1628
+#: git-send-email.perl:1664
#, perl-format
msgid "Server does not support STARTTLS! %s"
msgstr "O servidor insustenta STARTTLS! %s"
-#: git-send-email.perl:1633 git-send-email.perl:1637
+#: git-send-email.perl:1669 git-send-email.perl:1673
#, perl-format
msgid "STARTTLS failed! %s"
msgstr "Falhou STARTTLS! %s"
-#: git-send-email.perl:1646
+#: git-send-email.perl:1682
msgid "Unable to initialize SMTP properly. Check config and use --smtp-debug."
-msgstr "Incapaz inicializar SMTP devidamente. Verifica config e usa --smtp-debug."
+msgstr ""
+"Incapaz inicializar SMTP devidamente. Verifica config e usa --smtp-debug."
-#: git-send-email.perl:1664
+#: git-send-email.perl:1700
#, perl-format
msgid "Failed to send %s\n"
msgstr "Falha ao enviar %s\n"
-#: git-send-email.perl:1667
+#: git-send-email.perl:1703
#, perl-format
msgid "Dry-Sent %s\n"
msgstr "Simulado-Enviado %s\n"
-#: git-send-email.perl:1667
+#: git-send-email.perl:1703
#, perl-format
msgid "Sent %s\n"
msgstr "Enviado %s\n"
-#: git-send-email.perl:1669
+#: git-send-email.perl:1705
msgid "Dry-OK. Log says:\n"
msgstr "Simulado-OK. O registo diz:\n"
-#: git-send-email.perl:1669
+#: git-send-email.perl:1705
msgid "OK. Log says:\n"
msgstr "OK. O registo diz:\n"
-#: git-send-email.perl:1688
+#: git-send-email.perl:1724
msgid "Result: "
msgstr "Resultado: "
-#: git-send-email.perl:1691
+#: git-send-email.perl:1727
msgid "Result: OK\n"
msgstr "Resultado: OK\n"
-#: git-send-email.perl:1709
+#: git-send-email.perl:1744
#, perl-format
msgid "can't open file %s"
msgstr "incapaz abrir ficheiro %s"
-#: git-send-email.perl:1756 git-send-email.perl:1776
+#: git-send-email.perl:1792 git-send-email.perl:1812
#, perl-format
msgid "(mbox) Adding cc: %s from line '%s'\n"
msgstr "(mbox) Adicionar cc: %s da linha '%s'\n"
-#: git-send-email.perl:1762
+#: git-send-email.perl:1798
#, perl-format
msgid "(mbox) Adding to: %s from line '%s'\n"
msgstr "(mbox) Adicionar para: %s da linha '%s'\n"
-#: git-send-email.perl:1819
+#: git-send-email.perl:1855
#, perl-format
msgid "(non-mbox) Adding cc: %s from line '%s'\n"
msgstr "(non-mbox) Adicionar cc: %s da linha '%s'\n"
-#: git-send-email.perl:1854
+#: git-send-email.perl:1890
#, perl-format
msgid "(body) Adding cc: %s from line '%s'\n"
msgstr "(body) Adicionar cc: %s da linha '%s'\n"
-#: git-send-email.perl:1965
+#: git-send-email.perl:2009
#, perl-format
msgid "(%s) Could not execute '%s'"
msgstr "(%s) Incapaz executar '%s'"
-#: git-send-email.perl:1972
+#: git-send-email.perl:2016
#, perl-format
msgid "(%s) Adding %s: %s from: '%s'\n"
msgstr "(%s) Adicionar %s: %s de: '%s'\n"
-#: git-send-email.perl:1976
+#: git-send-email.perl:2020
#, perl-format
msgid "(%s) failed to close pipe to '%s'"
msgstr "(%s) falha ao fechar pipe para '%s'"
-#: git-send-email.perl:2006
+#: git-send-email.perl:2050
msgid "cannot send message as 7bit"
msgstr "incapaz enviar mensagem como 7bit"
-#: git-send-email.perl:2014
+#: git-send-email.perl:2058
msgid "invalid transfer encoding"
msgstr "codificação de transferência inválida"
-#: git-send-email.perl:2051
-#, perl-format
+#: git-send-email.perl:2100
+#, fuzzy, perl-format
msgid ""
-"fatal: %s: rejected by sendemail-validate hook\n"
+"fatal: %s: rejected by %s hook\n"
"%s\n"
"warning: no patches were sent\n"
msgstr ""
-"fatal: %s: %s\n"
-"aviso: enviado patch nenhum\n"
+"fatal: %s:%d é mais longo que 998 caracteres\n"
+"aviso: enviado remendo nenhum\n"
-#: git-send-email.perl:2061 git-send-email.perl:2114 git-send-email.perl:2124
+#: git-send-email.perl:2110 git-send-email.perl:2163 git-send-email.perl:2173
#, perl-format
msgid "unable to open %s: %s\n"
msgstr "incapaz abrir %s: %s\n"
-#: git-send-email.perl:2064
+#: git-send-email.perl:2113
#, perl-format
msgid ""
"fatal: %s:%d is longer than 998 characters\n"
@@ -26135,13 +26654,13 @@ msgstr ""
"fatal: %s:%d é mais longo que 998 caracteres\n"
"aviso: enviado remendo nenhum\n"
-#: git-send-email.perl:2082
+#: git-send-email.perl:2131
#, perl-format
msgid "Skipping %s with backup suffix '%s'.\n"
-msgstr "Saltar %s com sufixo de backup '%s'.\n"
+msgstr "Saltando %s com sufixo de backup '%s'.\n"
#. TRANSLATORS: please keep "[y|N]" as is.
-#: git-send-email.perl:2086
+#: git-send-email.perl:2135
#, perl-format
msgid "Do you really want to send %s? [y|N]: "
-msgstr "Deseja mesmo enviar %s? [y|N]: "
+msgstr "Queres mesmo enviar %s? [y|N]: "
diff --git a/po/sv.po b/po/sv.po
index fd32edee89..14176ac6fb 100644
--- a/po/sv.po
+++ b/po/sv.po
@@ -5,10 +5,10 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: git 2.34.0\n"
+"Project-Id-Version: git 2.36.0\n"
"Report-Msgid-Bugs-To: Git Mailing List <git@vger.kernel.org>\n"
-"POT-Creation-Date: 2022-01-17 08:34+0800\n"
-"PO-Revision-Date: 2022-01-11 16:34+0100\n"
+"POT-Creation-Date: 2022-04-13 14:52+0800\n"
+"PO-Revision-Date: 2022-04-17 18:08+0100\n"
"Last-Translator: Peter Krefting <peter@softwolves.pp.se>\n"
"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
"Language: sv\n"
@@ -16,215 +16,213 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Gtranslator 3.38.0\n"
-#: add-interactive.c:380
+#: add-interactive.c:382
#, c-format
msgid "Huh (%s)?"
msgstr "Vadå (%s)?"
-#: add-interactive.c:533 add-interactive.c:834 reset.c:65 sequencer.c:3509
-#: sequencer.c:3974 sequencer.c:4136 builtin/rebase.c:1233
-#: builtin/rebase.c:1642
+#: add-interactive.c:535 add-interactive.c:836 reset.c:136 sequencer.c:3505
+#: sequencer.c:3970 sequencer.c:4127 builtin/rebase.c:1261
+#: builtin/rebase.c:1671
msgid "could not read index"
msgstr "kunde inte läsa indexet"
-#: add-interactive.c:588 git-add--interactive.perl:269
+#: add-interactive.c:590 git-add--interactive.perl:269
#: git-add--interactive.perl:294
msgid "binary"
msgstr "binär"
-#: add-interactive.c:646 git-add--interactive.perl:278
+#: add-interactive.c:648 git-add--interactive.perl:278
#: git-add--interactive.perl:332
msgid "nothing"
msgstr "ingenting"
-#: add-interactive.c:647 git-add--interactive.perl:314
+#: add-interactive.c:649 git-add--interactive.perl:314
#: git-add--interactive.perl:329
msgid "unchanged"
msgstr "oändrad"
-#: add-interactive.c:684 git-add--interactive.perl:641
+#: add-interactive.c:686 git-add--interactive.perl:641
msgid "Update"
msgstr "Uppdatera"
-#: add-interactive.c:701 add-interactive.c:889
+#: add-interactive.c:703 add-interactive.c:891
#, c-format
msgid "could not stage '%s'"
msgstr "kunde inte köa \"%s\""
-#: add-interactive.c:707 add-interactive.c:896 reset.c:89 sequencer.c:3713
+#: add-interactive.c:709 add-interactive.c:898 reset.c:160 sequencer.c:3709
msgid "could not write index"
msgstr "kunde inte skriva indexet"
-#: add-interactive.c:710 git-add--interactive.perl:626
+#: add-interactive.c:712 git-add--interactive.perl:626
#, c-format, perl-format
msgid "updated %d path\n"
msgid_plural "updated %d paths\n"
msgstr[0] "uppdaterade %d sökväg\n"
msgstr[1] "uppdaterade %d sökvägar\n"
-#: add-interactive.c:728 git-add--interactive.perl:676
+#: add-interactive.c:730 git-add--interactive.perl:676
#, c-format, perl-format
msgid "note: %s is untracked now.\n"
msgstr "observera: %s spåras inte längre.\n"
-#: add-interactive.c:733 apply.c:4151 builtin/checkout.c:306
+#: add-interactive.c:735 apply.c:4133 builtin/checkout.c:311
#: builtin/reset.c:167
#, c-format
msgid "make_cache_entry failed for path '%s'"
msgstr "make_cache_entry misslyckades för sökvägen \"%s\""
-#: add-interactive.c:763 git-add--interactive.perl:653
+#: add-interactive.c:765 git-add--interactive.perl:653
msgid "Revert"
msgstr "Återställ"
-#: add-interactive.c:779
+#: add-interactive.c:781
msgid "Could not parse HEAD^{tree}"
msgstr "kunde inte tolka HEAD^{tree}"
-#: add-interactive.c:817 git-add--interactive.perl:629
+#: add-interactive.c:819 git-add--interactive.perl:629
#, c-format, perl-format
msgid "reverted %d path\n"
msgid_plural "reverted %d paths\n"
msgstr[0] "återställde %d sökväg\n"
msgstr[1] "återställde %d sökvägar\n"
-#: add-interactive.c:868 git-add--interactive.perl:693
+#: add-interactive.c:870 git-add--interactive.perl:693
#, c-format
msgid "No untracked files.\n"
msgstr "Inga ospårade filer.\n"
-#: add-interactive.c:872 git-add--interactive.perl:687
+#: add-interactive.c:874 git-add--interactive.perl:687
msgid "Add untracked"
msgstr "Lägg till ospårad"
-#: add-interactive.c:899 git-add--interactive.perl:623
+#: add-interactive.c:901 git-add--interactive.perl:623
#, c-format, perl-format
msgid "added %d path\n"
msgid_plural "added %d paths\n"
msgstr[0] "lade till %d sökväg\n"
msgstr[1] "lade till %d sökvägar\n"
-#: add-interactive.c:929
+#: add-interactive.c:931
#, c-format
msgid "ignoring unmerged: %s"
msgstr "ignorerar ej sammanslagen: %s"
-#: add-interactive.c:941 add-patch.c:1752 git-add--interactive.perl:1371
+#: add-interactive.c:943 add-patch.c:1758 git-add--interactive.perl:1371
#, c-format
msgid "Only binary files changed.\n"
msgstr "Endast binära filer ändrade.\n"
-#: add-interactive.c:943 add-patch.c:1750 git-add--interactive.perl:1373
+#: add-interactive.c:945 add-patch.c:1756 git-add--interactive.perl:1373
#, c-format
msgid "No changes.\n"
msgstr "Inga ändringar.\n"
-#: add-interactive.c:947 git-add--interactive.perl:1381
+#: add-interactive.c:949 git-add--interactive.perl:1381
msgid "Patch update"
msgstr "Uppdatera patch"
-#: add-interactive.c:986 git-add--interactive.perl:1794
+#: add-interactive.c:988 git-add--interactive.perl:1794
msgid "Review diff"
msgstr "Granska diff"
-#: add-interactive.c:1014
+#: add-interactive.c:1016
msgid "show paths with changes"
msgstr "visa sökvägar med ändringar"
-#: add-interactive.c:1016
+#: add-interactive.c:1018
msgid "add working tree state to the staged set of changes"
msgstr "lägg arbetskatalogens tillstånd till köade ändringar"
-#: add-interactive.c:1018
+#: add-interactive.c:1020
msgid "revert staged set of changes back to the HEAD version"
msgstr "återställ köade ändringar tillbaka till HEAD-versionen"
-#: add-interactive.c:1020
+#: add-interactive.c:1022
msgid "pick hunks and update selectively"
msgstr "välj stycken och uppdatera selektivt"
-#: add-interactive.c:1022
+#: add-interactive.c:1024
msgid "view diff between HEAD and index"
msgstr "visa skillnad mellan HEAD och index"
-#: add-interactive.c:1024
+#: add-interactive.c:1026
msgid "add contents of untracked files to the staged set of changes"
msgstr "lägg innehåll i ospårade filer till köade ändringar"
-#: add-interactive.c:1032 add-interactive.c:1081
+#: add-interactive.c:1034 add-interactive.c:1083
msgid "Prompt help:"
msgstr "Kommandoradshjälp:"
-#: add-interactive.c:1034
+#: add-interactive.c:1036
msgid "select a single item"
msgstr "markera en post"
-#: add-interactive.c:1036
+#: add-interactive.c:1038
msgid "select a range of items"
msgstr "markera intervall av poster"
-#: add-interactive.c:1038
+#: add-interactive.c:1040
msgid "select multiple ranges"
msgstr "markera flera intervall"
-#: add-interactive.c:1040 add-interactive.c:1085
+#: add-interactive.c:1042 add-interactive.c:1087
msgid "select item based on unique prefix"
msgstr "markera post baserad på unikt prefix"
-#: add-interactive.c:1042
+#: add-interactive.c:1044
msgid "unselect specified items"
msgstr "avmarkera angivna poster"
-#: add-interactive.c:1044
+#: add-interactive.c:1046
msgid "choose all items"
msgstr "välj alla poster"
-#: add-interactive.c:1046
+#: add-interactive.c:1048
msgid "(empty) finish selecting"
msgstr "(tomt) avsluta markering"
-#: add-interactive.c:1083
+#: add-interactive.c:1085
msgid "select a numbered item"
msgstr "markera en numrerad post"
-#: add-interactive.c:1087
+#: add-interactive.c:1089
msgid "(empty) select nothing"
msgstr "(tomt) markera ingenting"
-#: add-interactive.c:1095 builtin/clean.c:839 git-add--interactive.perl:1898
+#: add-interactive.c:1097 builtin/clean.c:839 git-add--interactive.perl:1898
msgid "*** Commands ***"
msgstr "*** Kommandon ***"
-#: add-interactive.c:1096 builtin/clean.c:840 git-add--interactive.perl:1895
+#: add-interactive.c:1098 builtin/clean.c:840 git-add--interactive.perl:1895
msgid "What now"
msgstr "Vad nu"
-#: add-interactive.c:1148 git-add--interactive.perl:213
+#: add-interactive.c:1150 git-add--interactive.perl:213
msgid "staged"
msgstr "köad"
-#: add-interactive.c:1148 git-add--interactive.perl:213
+#: add-interactive.c:1150 git-add--interactive.perl:213
msgid "unstaged"
msgstr "ej köad"
-#: add-interactive.c:1148 apply.c:5020 apply.c:5023 builtin/am.c:2367
-#: builtin/am.c:2370 builtin/bugreport.c:107 builtin/clone.c:128
-#: builtin/fetch.c:153 builtin/merge.c:287 builtin/pull.c:194
-#: builtin/submodule--helper.c:404 builtin/submodule--helper.c:1858
-#: builtin/submodule--helper.c:1861 builtin/submodule--helper.c:2504
-#: builtin/submodule--helper.c:2507 builtin/submodule--helper.c:2574
-#: builtin/submodule--helper.c:2579 builtin/submodule--helper.c:2812
+#: add-interactive.c:1150 apply.c:5002 apply.c:5005 builtin/am.c:2370
+#: builtin/am.c:2373 builtin/bugreport.c:107 builtin/clone.c:132
+#: builtin/fetch.c:154 builtin/merge.c:287 builtin/pull.c:194
+#: builtin/submodule--helper.c:412 builtin/submodule--helper.c:1872
+#: builtin/submodule--helper.c:1875 builtin/submodule--helper.c:2709
+#: builtin/submodule--helper.c:2712 builtin/submodule--helper.c:2891
#: git-add--interactive.perl:213
msgid "path"
msgstr "sökväg"
-#: add-interactive.c:1155
+#: add-interactive.c:1157
msgid "could not refresh index"
msgstr "kunde inte uppdatera indexet"
-#: add-interactive.c:1169 builtin/clean.c:804 git-add--interactive.perl:1805
+#: add-interactive.c:1171 builtin/clean.c:804 git-add--interactive.perl:1805
#, c-format
msgid "Bye.\n"
msgstr "Hej då.\n"
@@ -535,24 +533,24 @@ msgstr "kunde inte tolka styckehuvudet \"%.*s\""
msgid "could not parse colored hunk header '%.*s'"
msgstr "kunde inte tolka färgat styckehuvud \"%.*s\""
-#: add-patch.c:420
+#: add-patch.c:431
msgid "could not parse diff"
msgstr "kunde inte tolka diff"
-#: add-patch.c:439
+#: add-patch.c:450
msgid "could not parse colored diff"
msgstr "kunde inte tolka färgad diff"
-#: add-patch.c:453
+#: add-patch.c:464
#, c-format
msgid "failed to run '%s'"
msgstr "misslyckades att köra \"%s\""
-#: add-patch.c:612
+#: add-patch.c:618
msgid "mismatched output from interactive.diffFilter"
msgstr "omaka utdata från interactive.diffFilter"
-#: add-patch.c:613
+#: add-patch.c:619
msgid ""
"Your filter must maintain a one-to-one correspondence\n"
"between its input and output lines."
@@ -560,7 +558,7 @@ msgstr ""
"Alla rader i indata måste ha en motsvarande rad i utdata från\n"
"ditt filter."
-#: add-patch.c:791
+#: add-patch.c:797
#, c-format
msgid ""
"expected context line #%d in\n"
@@ -569,7 +567,7 @@ msgstr ""
"förväntade sammanhangsrad %d i\n"
"%.*s"
-#: add-patch.c:806
+#: add-patch.c:812
#, c-format
msgid ""
"hunks do not overlap:\n"
@@ -582,11 +580,11 @@ msgstr ""
"\tavslutas inte med:\n"
"%.*s"
-#: add-patch.c:1082 git-add--interactive.perl:1115
+#: add-patch.c:1088 git-add--interactive.perl:1115
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:1086
+#: add-patch.c:1092
#, c-format
msgid ""
"---\n"
@@ -600,7 +598,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:1100 git-add--interactive.perl:1129
+#: add-patch.c:1106 git-add--interactive.perl:1129
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"
@@ -610,11 +608,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:1133
+#: add-patch.c:1139
msgid "could not parse hunk header"
msgstr "kunde inte tolka styckehuvud"
-#: add-patch.c:1178
+#: add-patch.c:1184
msgid "'git apply --cached' failed"
msgstr "\"git apply --cached\" misslyckades"
@@ -630,26 +628,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:1247 git-add--interactive.perl:1244
+#: add-patch.c:1253 git-add--interactive.perl:1244
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:1290
+#: add-patch.c:1296
msgid "The selected hunks do not apply to the index!"
msgstr "Markerade stycken kan inte appliceras på indexet!"
-#: add-patch.c:1291 git-add--interactive.perl:1348
+#: add-patch.c:1297 git-add--interactive.perl:1348
msgid "Apply them to the worktree anyway? "
msgstr "Applicera dem på arbetskatalogen trots det? "
-#: add-patch.c:1298 git-add--interactive.perl:1351
+#: add-patch.c:1304 git-add--interactive.perl:1351
msgid "Nothing was applied.\n"
msgstr "Ingenting applicerades.\n"
-#: add-patch.c:1355
+#: add-patch.c:1361
msgid ""
"j - leave this hunk undecided, see next undecided hunk\n"
"J - leave this hunk undecided, see next hunk\n"
@@ -671,73 +669,73 @@ msgstr ""
"e - redigera aktuellt stycke manuellt\n"
"? - visa hjälp\n"
-#: add-patch.c:1517 add-patch.c:1527
+#: add-patch.c:1523 add-patch.c:1533
msgid "No previous hunk"
msgstr "Inget föregående stycke"
-#: add-patch.c:1522 add-patch.c:1532
+#: add-patch.c:1528 add-patch.c:1538
msgid "No next hunk"
msgstr "Inget följande stycke"
-#: add-patch.c:1538
+#: add-patch.c:1544
msgid "No other hunks to goto"
msgstr "Inga andra stycken att gå till"
-#: add-patch.c:1549 git-add--interactive.perl:1608
+#: add-patch.c:1555 git-add--interactive.perl:1608
msgid "go to which hunk (<ret> to see more)? "
msgstr "gå till vilket stycke (<ret> för att se fler)? "
-#: add-patch.c:1550 git-add--interactive.perl:1610
+#: add-patch.c:1556 git-add--interactive.perl:1610
msgid "go to which hunk? "
msgstr "gå till vilket stycke? "
-#: add-patch.c:1561
+#: add-patch.c:1567
#, c-format
msgid "Invalid number: '%s'"
msgstr "Ogiltigt siffervärde: \"%s\""
-#: add-patch.c:1566
+#: add-patch.c:1572
#, 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:1575
+#: add-patch.c:1581
msgid "No other hunks to search"
msgstr "Inga andra stycken att söka efter"
-#: add-patch.c:1581 git-add--interactive.perl:1663
+#: add-patch.c:1587 git-add--interactive.perl:1663
msgid "search for regex? "
msgstr "sök efter reguljärt uttryck? "
-#: add-patch.c:1596
+#: add-patch.c:1602
#, c-format
msgid "Malformed search regexp %s: %s"
msgstr "Felaktigt format på reguljärt sökuttryck %s: %s"
-#: add-patch.c:1613
+#: add-patch.c:1619
msgid "No hunk matches the given pattern"
msgstr "Inga stycken motsvarar givet mönster"
-#: add-patch.c:1620
+#: add-patch.c:1626
msgid "Sorry, cannot split this hunk"
msgstr "Beklagar, kan inte dela stycket"
-#: add-patch.c:1624
+#: add-patch.c:1630
#, c-format
msgid "Split into %d hunks."
msgstr "Dela i %d stycken."
-#: add-patch.c:1628
+#: add-patch.c:1634
msgid "Sorry, cannot edit this hunk"
msgstr "Beklagar, kan inte redigera stycket"
-#: add-patch.c:1680
+#: add-patch.c:1686
msgid "'git apply' failed"
msgstr "\"git apply\" misslyckades"
-#: advice.c:78
+#: advice.c:81
#, c-format
msgid ""
"\n"
@@ -746,47 +744,47 @@ msgstr ""
"\n"
"Slå av meddelandet med \"git config advice.%s false\""
-#: advice.c:94
+#: advice.c:97
#, c-format
msgid "%shint: %.*s%s\n"
msgstr "%stips: %.*s%s\n"
-#: advice.c:178
+#: advice.c:181
msgid "Cherry-picking is not possible because you have unmerged files."
msgstr ""
"Du kan inte utföra en cherry-pick eftersom du har filer som inte slagits "
"samman."
-#: advice.c:180
+#: advice.c:183
msgid "Committing is not possible because you have unmerged files."
msgstr ""
"Du kan inte utföra en incheckning eftersom du har filer som inte slagits "
"samman."
-#: advice.c:182
+#: advice.c:185
msgid "Merging is not possible because you have unmerged files."
msgstr ""
"Du kan inte utföra en sammanslagning eftersom du har filer som inte slagits "
"samman."
-#: advice.c:184
+#: advice.c:187
msgid "Pulling is not possible because you have unmerged files."
msgstr ""
"Du kan inte utföra en \"pull\" eftersom du har filer som inte slagits samman."
-#: advice.c:186
+#: advice.c:189
msgid "Reverting is not possible because you have unmerged files."
msgstr ""
"Du kan inte utföra en \"revert\" eftersom du har filer som inte slagits "
"samman."
-#: advice.c:188
+#: advice.c:191
#, c-format
msgid "It is not possible to %s because you have unmerged files."
msgstr ""
"Du kan inte utföra en \"%s\" eftersom du har filer som inte slagits samman."
-#: advice.c:196
+#: advice.c:199
msgid ""
"Fix them up in the work tree, and then use 'git add/rm <file>'\n"
"as appropriate to mark resolution and make a commit."
@@ -794,27 +792,27 @@ msgstr ""
"Rätta dem i din arbetskatalog och använd sedan \"git add/rm <fil>\"\n"
"som lämpligt för att ange lösning och checka in."
-#: advice.c:204
+#: advice.c:207
msgid "Exiting because of an unresolved conflict."
msgstr "Avslutar på grund av olöst konflikgt."
-#: advice.c:209 builtin/merge.c:1382
+#: advice.c:212 builtin/merge.c:1388
msgid "You have not concluded your merge (MERGE_HEAD exists)."
msgstr "Du har inte avslutat sammanslagningen (MERGE_HEAD finns)."
-#: advice.c:211
+#: advice.c:214
msgid "Please, commit your changes before merging."
msgstr "Checka in dina ändringar innan du utför sammanslagningen."
-#: advice.c:212
+#: advice.c:215
msgid "Exiting because of unfinished merge."
msgstr "Avslutar på grund av ofullbordad sammanslagning."
-#: advice.c:217
+#: advice.c:220
msgid "Not possible to fast-forward, aborting."
msgstr "Kan inte snabbspola, avbryter."
-#: advice.c:227
+#: advice.c:230
#, c-format
msgid ""
"The following paths and/or pathspecs matched paths that exist\n"
@@ -825,7 +823,7 @@ msgstr ""
"utanför din \"sparse-checkout\"-definition, så de kommer inte\n"
"uppdateras i indexet:\n"
-#: advice.c:234
+#: advice.c:237
msgid ""
"If you intend to update such entries, try one of the following:\n"
"* Use the --sparse option.\n"
@@ -835,7 +833,7 @@ msgstr ""
"* Använd flaggan --sparse.\n"
"* Inaktivera eller ändra reglerna för gles utcheckning."
-#: advice.c:242
+#: advice.c:245
#, c-format
msgid ""
"Note: switching to '%s'.\n"
@@ -896,80 +894,83 @@ msgstr "okänt alternativ för whitespace: \"%s\""
msgid "unrecognized whitespace ignore option '%s'"
msgstr "okänt alternativ för ignore-whitespace: \"%s\""
-#: apply.c:136 archive.c:584 range-diff.c:559 revision.c:2303 revision.c:2307
-#: revision.c:2316 revision.c:2321 revision.c:2527 revision.c:2870
-#: revision.c:2874 revision.c:2880 revision.c:2883 revision.c:2885
-#: builtin/add.c:510 builtin/add.c:512 builtin/add.c:529 builtin/add.c:541
-#: builtin/branch.c:727 builtin/checkout.c:467 builtin/checkout.c:470
-#: builtin/checkout.c:1644 builtin/checkout.c:1754 builtin/checkout.c:1757
-#: builtin/clone.c:906 builtin/commit.c:358 builtin/commit.c:361
-#: builtin/commit.c:1196 builtin/describe.c:593 builtin/diff-tree.c:155
-#: builtin/difftool.c:733 builtin/fast-export.c:1245 builtin/fetch.c:2038
-#: builtin/fetch.c:2043 builtin/index-pack.c:1852 builtin/init-db.c:560
-#: builtin/log.c:1946 builtin/log.c:1948 builtin/ls-files.c:778
-#: builtin/merge.c:1403 builtin/merge.c:1405 builtin/pack-objects.c:4073
-#: builtin/push.c:592 builtin/push.c:630 builtin/push.c:636 builtin/push.c:641
-#: builtin/rebase.c:1193 builtin/rebase.c:1195 builtin/rebase.c:1199
-#: builtin/repack.c:684 builtin/repack.c:715 builtin/reset.c:426
-#: builtin/reset.c:462 builtin/rev-list.c:541 builtin/show-branch.c:710
-#: builtin/stash.c:1707 builtin/stash.c:1710 builtin/submodule--helper.c:1316
-#: builtin/submodule--helper.c:2975 builtin/tag.c:526 builtin/tag.c:572
-#: builtin/worktree.c:702
+#: apply.c:138 archive.c:584 parse-options.c:1122 range-diff.c:555
+#: revision.c:2314 revision.c:2318 revision.c:2327 revision.c:2332
+#: revision.c:2560 revision.c:2895 revision.c:2899 revision.c:2907
+#: revision.c:2910 revision.c:2912 builtin/add.c:507 builtin/add.c:509
+#: builtin/add.c:515 builtin/add.c:527 builtin/branch.c:755
+#: builtin/checkout.c:472 builtin/checkout.c:475 builtin/checkout.c:1663
+#: builtin/checkout.c:1773 builtin/checkout.c:1776 builtin/clone.c:921
+#: builtin/commit.c:359 builtin/commit.c:362 builtin/commit.c:1200
+#: builtin/commit.c:1256 builtin/commit.c:1273 builtin/describe.c:593
+#: builtin/diff-tree.c:155 builtin/difftool.c:733 builtin/fast-export.c:1245
+#: builtin/fetch.c:2141 builtin/fetch.c:2162 builtin/fetch.c:2167
+#: builtin/help.c:602 builtin/index-pack.c:1858 builtin/init-db.c:560
+#: builtin/log.c:1968 builtin/log.c:1970 builtin/ls-files.c:778
+#: builtin/merge-base.c:163 builtin/merge-base.c:169 builtin/merge.c:1409
+#: builtin/merge.c:1411 builtin/pack-objects.c:4098 builtin/push.c:592
+#: builtin/push.c:630 builtin/push.c:636 builtin/push.c:641
+#: builtin/rebase.c:1221 builtin/rebase.c:1223 builtin/rebase.c:1227
+#: builtin/repack.c:688 builtin/repack.c:719 builtin/reset.c:433
+#: builtin/reset.c:469 builtin/rev-list.c:537 builtin/show-branch.c:711
+#: builtin/stash.c:1696 builtin/stash.c:1699 builtin/submodule--helper.c:1328
+#: builtin/submodule--helper.c:3054 builtin/tag.c:527 builtin/tag.c:573
+#: builtin/worktree.c:779
#, c-format
msgid "options '%s' and '%s' cannot be used together"
msgstr "flaggorna \"%s\" och \"%s\" kan inte användas samtidigt"
-#: apply.c:139 apply.c:150 apply.c:153
+#: apply.c:141 apply.c:152 apply.c:155
#, c-format
msgid "'%s' outside a repository"
msgstr "\"%s\" utanför arkiv"
-#: apply.c:800
+#: apply.c:807
#, c-format
msgid "Cannot prepare timestamp regexp %s"
msgstr "Kan inte förbereda reguljärt uttryck för tidsstämpeln %s"
-#: apply.c:809
+#: apply.c:816
#, c-format
msgid "regexec returned %d for input: %s"
msgstr "regexec returnerade %d för indata: %s"
-#: apply.c:883
+#: apply.c:890
#, c-format
msgid "unable to find filename in patch at line %d"
msgstr "kan inte hitta filnamn i patchen på rad %d"
-#: apply.c:921
+#: apply.c:928
#, c-format
msgid "git apply: bad git-diff - expected /dev/null, got %s on line %d"
msgstr "git apply: dålig git-diff - förväntade /dev/null, fick %s på rad %d"
-#: apply.c:927
+#: apply.c:934
#, c-format
msgid "git apply: bad git-diff - inconsistent new filename on line %d"
msgstr "git apply: dålig git-diff - motsägande nytt filnamn på rad %d"
-#: apply.c:928
+#: apply.c:935
#, c-format
msgid "git apply: bad git-diff - inconsistent old filename on line %d"
msgstr "git apply: dålig git-diff - motsägande gammalt filnamn på rad %d"
-#: apply.c:933
+#: apply.c:940
#, c-format
msgid "git apply: bad git-diff - expected /dev/null on line %d"
msgstr "git apply: dålig git-diff - förväntade /dev/null på rad %d"
-#: apply.c:962
+#: apply.c:969
#, c-format
msgid "invalid mode on line %d: %s"
msgstr "ogiltigt läge på rad %d: %s"
-#: apply.c:1281
+#: apply.c:1288
#, c-format
msgid "inconsistent header lines %d and %d"
msgstr "huvudet är inkonsekvent mellan rad %d och %d"
-#: apply.c:1371
+#: apply.c:1378
#, c-format
msgid ""
"git diff header lacks filename information when removing %d leading pathname "
@@ -985,92 +986,92 @@ msgstr[1] ""
"sökvägskomponenter\n"
"tas bort (rad %d)"
-#: apply.c:1384
+#: apply.c:1391
#, c-format
msgid "git diff header lacks filename information (line %d)"
msgstr "git-diff-huvudet saknar filnamnsinformation (rad %d)"
-#: apply.c:1480
+#: apply.c:1487
#, c-format
msgid "recount: unexpected line: %.*s"
msgstr "recount: oväntad rad: %.*s"
-#: apply.c:1549
+#: apply.c:1556
#, c-format
msgid "patch fragment without header at line %d: %.*s"
msgstr "patch-fragment utan huvud på rad %d: %.*s"
-#: apply.c:1752
+#: apply.c:1759
msgid "new file depends on old contents"
msgstr "ny fil beror på gammalt innehåll"
-#: apply.c:1754
+#: apply.c:1761
msgid "deleted file still has contents"
msgstr "borttagen fil har fortfarande innehåll"
-#: apply.c:1788
+#: apply.c:1795
#, c-format
msgid "corrupt patch at line %d"
msgstr "trasig patch på rad %d"
-#: apply.c:1825
+#: apply.c:1832
#, c-format
msgid "new file %s depends on old contents"
msgstr "nya filen %s beror på gammalt innehåll"
-#: apply.c:1827
+#: apply.c:1834
#, c-format
msgid "deleted file %s still has contents"
msgstr "borttagna filen %s har fortfarande innehåll"
-#: apply.c:1830
+#: apply.c:1837
#, c-format
msgid "** warning: file %s becomes empty but is not deleted"
msgstr "** varning: filen %s blir tom men har inte tagits bort"
-#: apply.c:1978
+#: apply.c:1985
#, c-format
msgid "corrupt binary patch at line %d: %.*s"
msgstr "trasig binärpatch på rad %d: %.*s"
-#: apply.c:2015
+#: apply.c:2022
#, c-format
msgid "unrecognized binary patch at line %d"
msgstr "binärpatchen på rad %d känns inte igen"
-#: apply.c:2177
+#: apply.c:2184
#, c-format
msgid "patch with only garbage at line %d"
msgstr "patch med bara skräp på rad %d"
-#: apply.c:2263
+#: apply.c:2270
#, c-format
msgid "unable to read symlink %s"
msgstr "kunde inte läsa symboliska länken %s"
-#: apply.c:2267
+#: apply.c:2274
#, c-format
msgid "unable to open or read %s"
msgstr "kunde inte öppna eller läsa %s"
-#: apply.c:2936
+#: apply.c:2943
#, c-format
msgid "invalid start of line: '%c'"
msgstr "felaktig inledning på rad: \"%c\""
-#: apply.c:3057
+#: apply.c:3064
#, c-format
msgid "Hunk #%d succeeded at %d (offset %d line)."
msgid_plural "Hunk #%d succeeded at %d (offset %d lines)."
msgstr[0] "Stycke %d lyckades på %d (offset %d rad)."
msgstr[1] "Stycke %d lyckades på %d (offset %d rader)."
-#: apply.c:3069
+#: apply.c:3076
#, c-format
msgid "Context reduced to (%ld/%ld) to apply fragment at %d"
msgstr "Sammanhang reducerat till (%ld/%ld) för att tillämpa fragment vid %d"
-#: apply.c:3075
+#: apply.c:3082
#, c-format
msgid ""
"while searching for:\n"
@@ -1079,25 +1080,25 @@ msgstr ""
"vid sökning efter:\n"
"%.*s"
-#: apply.c:3097
+#: apply.c:3104
#, c-format
msgid "missing binary patch data for '%s'"
msgstr "saknar binära patchdata för \"%s\""
-#: apply.c:3105
+#: apply.c:3112
#, c-format
msgid "cannot reverse-apply a binary patch without the reverse hunk to '%s'"
msgstr ""
"kan inte applicera en binärpatch baklänges utan den omvända patchen för \"%s"
"\""
-#: apply.c:3152
+#: apply.c:3159
#, c-format
msgid "cannot apply binary patch to '%s' without full index line"
msgstr ""
"kan inte applicera binärpatch på \"%s\" utan den fullständiga indexraden"
-#: apply.c:3163
+#: apply.c:3170
#, c-format
msgid ""
"the patch applies to '%s' (%s), which does not match the current contents."
@@ -1105,427 +1106,427 @@ msgstr ""
"patchen appliceras på \"%s\" (%s), som inte motsvarar det nuvarande "
"innehållet."
-#: apply.c:3171
+#: apply.c:3178
#, c-format
msgid "the patch applies to an empty '%s' but it is not empty"
msgstr "patchen appliceras på en tom \"%s\", men den är inte tom"
-#: apply.c:3189
+#: apply.c:3196
#, c-format
msgid "the necessary postimage %s for '%s' cannot be read"
msgstr "nödvändig efterbild %s för \"%s\" kan inte läsas"
-#: apply.c:3202
+#: apply.c:3209
#, c-format
msgid "binary patch does not apply to '%s'"
msgstr "binärpatchen kan inte tillämpas på \"%s\""
-#: apply.c:3209
+#: apply.c:3216
#, c-format
msgid "binary patch to '%s' creates incorrect result (expecting %s, got %s)"
msgstr "binärpatchen på \"%s\" ger felaktigt resultat (förväntade %s, fick %s)"
-#: apply.c:3230
+#: apply.c:3237
#, c-format
msgid "patch failed: %s:%ld"
msgstr "patch misslyckades: %s:%ld"
-#: apply.c:3353
+#: apply.c:3360
#, c-format
msgid "cannot checkout %s"
msgstr "kan inte checka ut %s"
-#: apply.c:3405 apply.c:3416 apply.c:3462 midx.c:104 pack-revindex.c:214
-#: setup.c:309
+#: apply.c:3412 apply.c:3423 apply.c:3469 midx.c:105 pack-revindex.c:214
+#: setup.c:310
#, c-format
msgid "failed to read %s"
msgstr "misslyckades läsa %s"
-#: apply.c:3413
+#: apply.c:3420
#, c-format
msgid "reading from '%s' beyond a symbolic link"
msgstr "läser från \"%s\" som är på andra sidan av en symbolisk länk"
-#: apply.c:3442 apply.c:3711
+#: apply.c:3449 apply.c:3721
#, c-format
msgid "path %s has been renamed/deleted"
msgstr "sökvägen %s har ändrat namn/tagits bort"
-#: apply.c:3549 apply.c:3726
+#: apply.c:3559 apply.c:3736
#, c-format
msgid "%s: does not exist in index"
msgstr "%s: finns inte i indexet"
-#: apply.c:3558 apply.c:3734 apply.c:3978
+#: apply.c:3568 apply.c:3744 apply.c:3960
#, c-format
msgid "%s: does not match index"
msgstr "%s: motsvarar inte indexet"
-#: apply.c:3595
+#: apply.c:3605
msgid "repository lacks the necessary blob to perform 3-way merge."
msgstr "arkivet saknar objekt som behövs för att utföra 3-vägssammanslagning."
-#: apply.c:3598
+#: apply.c:3608
#, c-format
msgid "Performing three-way merge...\n"
msgstr "Utför trevägssammanslagning...\n"
-#: apply.c:3614 apply.c:3618
+#: apply.c:3624 apply.c:3628
#, c-format
msgid "cannot read the current contents of '%s'"
msgstr "kunde inte läsa aktuellt innehåll i \"%s\""
-#: apply.c:3630
+#: apply.c:3640
#, c-format
msgid "Failed to perform three-way merge...\n"
msgstr "Misslyckades utföra trevägssammanslagning...\n"
-#: apply.c:3644
+#: apply.c:3654
#, c-format
msgid "Applied patch to '%s' with conflicts.\n"
msgstr "Applicerade patchen på \"%s\" med konflikter.\n"
-#: apply.c:3649
+#: apply.c:3659
#, c-format
msgid "Applied patch to '%s' cleanly.\n"
msgstr "Tillämpade patchen på \"%s\" rent.\n"
-#: apply.c:3666
+#: apply.c:3676
#, c-format
msgid "Falling back to direct application...\n"
msgstr "Faller tillbaka på direkt tillämpning...\n"
-#: apply.c:3678
+#: apply.c:3688
msgid "removal patch leaves file contents"
msgstr "patch för borttagning lämnar kvar filinnehåll"
-#: apply.c:3751
+#: apply.c:3761
#, c-format
msgid "%s: wrong type"
msgstr "%s: fel typ"
-#: apply.c:3753
+#: apply.c:3763
#, c-format
msgid "%s has type %o, expected %o"
msgstr "%s har typen %o, förväntade %o"
-#: apply.c:3918 apply.c:3920 read-cache.c:889 read-cache.c:918
-#: read-cache.c:1381
+#: apply.c:3900 apply.c:3902 read-cache.c:903 read-cache.c:932
+#: read-cache.c:1399
#, c-format
msgid "invalid path '%s'"
msgstr "ogiltig sökväg \"%s\""
-#: apply.c:3976
+#: apply.c:3958
#, c-format
msgid "%s: already exists in index"
msgstr "%s: finns redan i indexet"
-#: apply.c:3980
+#: apply.c:3962
#, c-format
msgid "%s: already exists in working directory"
msgstr "%s: finns redan i arbetskatalogen"
-#: apply.c:4000
+#: apply.c:3982
#, c-format
msgid "new mode (%o) of %s does not match old mode (%o)"
msgstr "nytt läge (%o) för %s motsvarar inte gammalt läge (%o)"
-#: apply.c:4005
+#: apply.c:3987
#, c-format
msgid "new mode (%o) of %s does not match old mode (%o) of %s"
msgstr "nytt läge (%o) för %s motsvarar inte gammalt läge (%o) för %s"
-#: apply.c:4025
+#: apply.c:4007
#, c-format
msgid "affected file '%s' is beyond a symbolic link"
msgstr "den berörda filen \"%s\" är på andra sidan av en symbolisk länk"
-#: apply.c:4029
+#: apply.c:4011
#, c-format
msgid "%s: patch does not apply"
msgstr "%s: patchen kan inte tillämpas"
-#: apply.c:4044
+#: apply.c:4026
#, c-format
msgid "Checking patch %s..."
msgstr "Kontrollerar patchen %s..."
-#: apply.c:4136
+#: apply.c:4118
#, c-format
msgid "sha1 information is lacking or useless for submodule %s"
msgstr "sha1-informationen saknas eller är oanvändbar för undermodulen %s"
-#: apply.c:4143
+#: apply.c:4125
#, c-format
msgid "mode change for %s, which is not in current HEAD"
msgstr "nytt läge för %s, som inte finns i nuvarande HEAD"
-#: apply.c:4146
+#: apply.c:4128
#, c-format
msgid "sha1 information is lacking or useless (%s)."
msgstr "sha1-informationen saknas eller är oanvändbar (%s)."
-#: apply.c:4155
+#: apply.c:4137
#, c-format
msgid "could not add %s to temporary index"
msgstr "kunde inte lägga till %s till temporärt index"
-#: apply.c:4165
+#: apply.c:4147
#, c-format
msgid "could not write temporary index to %s"
msgstr "kunde inte skriva temporärt index till %s"
-#: apply.c:4303
+#: apply.c:4285
#, c-format
msgid "unable to remove %s from index"
msgstr "kan inte ta bort %s från indexet"
-#: apply.c:4337
+#: apply.c:4319
#, c-format
msgid "corrupt patch for submodule %s"
msgstr "trasig patch för undermodulen %s"
-#: apply.c:4343
+#: apply.c:4325
#, c-format
msgid "unable to stat newly created file '%s'"
msgstr "kan inte ta status på nyligen skapade filen \"%s\""
-#: apply.c:4351
+#: apply.c:4333
#, c-format
msgid "unable to create backing store for newly created file %s"
msgstr "kan inte skapa säkerhetsminne för nyligen skapade filen %s"
-#: apply.c:4357 apply.c:4502
+#: apply.c:4339 apply.c:4484
#, c-format
msgid "unable to add cache entry for %s"
msgstr "kan inte lägga till cachepost för %s"
-#: apply.c:4400 builtin/bisect--helper.c:540 builtin/gc.c:2258
+#: apply.c:4382 builtin/bisect--helper.c:540 builtin/gc.c:2258
#: builtin/gc.c:2293
#, c-format
msgid "failed to write to '%s'"
msgstr "misslyckades skriva till \"%s\""
-#: apply.c:4404
+#: apply.c:4386
#, c-format
msgid "closing file '%s'"
msgstr "stänger filen \"%s\""
-#: apply.c:4474
+#: apply.c:4456
#, c-format
msgid "unable to write file '%s' mode %o"
msgstr "kan inte skriva filen \"%s\" läge %o"
-#: apply.c:4572
+#: apply.c:4554
#, c-format
msgid "Applied patch %s cleanly."
msgstr "Tillämpade patchen %s rent."
-#: apply.c:4580
+#: apply.c:4562
msgid "internal error"
msgstr "internt fel"
-#: apply.c:4583
+#: apply.c:4565
#, c-format
msgid "Applying patch %%s with %d reject..."
msgid_plural "Applying patch %%s with %d rejects..."
msgstr[0] "Tillämpade patchen %%s med %d refuserad..."
msgstr[1] "Tillämpade patchen %%s med %d refuserade..."
-#: apply.c:4594
+#: apply.c:4576
#, c-format
msgid "truncating .rej filename to %.*s.rej"
msgstr "trunkerar .rej-filnamnet till %.*s.rej"
-#: apply.c:4602
+#: apply.c:4584
#, c-format
msgid "cannot open %s"
msgstr "kan inte öppna %s"
-#: apply.c:4616
+#: apply.c:4598
#, c-format
msgid "Hunk #%d applied cleanly."
msgstr "Stycke %d tillämpades rent."
-#: apply.c:4620
+#: apply.c:4602
#, c-format
msgid "Rejected hunk #%d."
msgstr "Refuserar stycke %d."
-#: apply.c:4749
+#: apply.c:4731
#, c-format
msgid "Skipped patch '%s'."
msgstr "Ignorerar patch \"%s\"."
-#: apply.c:4758
+#: apply.c:4740
msgid "No valid patches in input (allow with \"--allow-empty\")"
msgstr "Inga giltiga patchar i indata (tillåt med \"--allow-empty\")"
-#: apply.c:4779
+#: apply.c:4761
msgid "unable to read index file"
msgstr "kan inte läsa indexfilen"
-#: apply.c:4936
+#: apply.c:4918
#, c-format
msgid "can't open patch '%s': %s"
msgstr "kan inte öppna patchen \"%s\": %s"
-#: apply.c:4963
+#: apply.c:4945
#, c-format
msgid "squelched %d whitespace error"
msgid_plural "squelched %d whitespace errors"
msgstr[0] "undertryckte %d fel i blanksteg"
msgstr[1] "undertryckte %d fel i blanksteg"
-#: apply.c:4969 apply.c:4984
+#: apply.c:4951 apply.c:4966
#, c-format
msgid "%d line adds whitespace errors."
msgid_plural "%d lines add whitespace errors."
msgstr[0] "%d rad lägger till fel i blanksteg."
msgstr[1] "%d rader lägger till fel i blanksteg."
-#: apply.c:4977
+#: apply.c:4959
#, c-format
msgid "%d line applied after fixing whitespace errors."
msgid_plural "%d lines applied after fixing whitespace errors."
msgstr[0] "%d rad applicerade efter att ha rättat fel i blanksteg."
msgstr[1] "%d rader applicerade efter att ha rättat fel i blanksteg."
-#: apply.c:4993 builtin/add.c:704 builtin/mv.c:338 builtin/rm.c:430
+#: apply.c:4975 builtin/add.c:690 builtin/mv.c:338 builtin/rm.c:430
msgid "Unable to write new index file"
msgstr "Kunde inte skriva ny indexfil"
-#: apply.c:5021
+#: apply.c:5003
msgid "don't apply changes matching the given path"
msgstr "tillämpa inte ändringar som motsvarar given sökväg"
-#: apply.c:5024
+#: apply.c:5006
msgid "apply changes matching the given path"
msgstr "tillämpa ändringar som motsvarar given sökväg"
-#: apply.c:5026 builtin/am.c:2376
+#: apply.c:5008 builtin/am.c:2379
msgid "num"
msgstr "antal"
-#: apply.c:5027
+#: apply.c:5009
msgid "remove <num> leading slashes from traditional diff paths"
msgstr "ta bort <antal> inledande snedstreck från traditionella diff-sökvägar"
-#: apply.c:5030
+#: apply.c:5012
msgid "ignore additions made by the patch"
msgstr "ignorera tillägg gjorda av patchen"
-#: apply.c:5032
+#: apply.c:5014
msgid "instead of applying the patch, output diffstat for the input"
msgstr "istället för att tillämpa patchen, skriv ut diffstat för indata"
-#: apply.c:5036
+#: apply.c:5018
msgid "show number of added and deleted lines in decimal notation"
msgstr "visa antal tillagda och borttagna rader decimalt"
-#: apply.c:5038
+#: apply.c:5020
msgid "instead of applying the patch, output a summary for the input"
msgstr "istället för att tillämpa patchen, skriv ut en summering av indata"
-#: apply.c:5040
+#: apply.c:5022
msgid "instead of applying the patch, see if the patch is applicable"
msgstr "istället för att tillämpa patchen, se om patchen kan tillämpas"
-#: apply.c:5042
+#: apply.c:5024
msgid "make sure the patch is applicable to the current index"
msgstr "se till att patchen kan tillämpas på aktuellt index"
-#: apply.c:5044
+#: apply.c:5026
msgid "mark new files with `git add --intent-to-add`"
msgstr "markera nya filer med \"git add --intent-to-add\""
-#: apply.c:5046
+#: apply.c:5028
msgid "apply a patch without touching the working tree"
msgstr "tillämpa en patch utan att röra arbetskatalogen"
-#: apply.c:5048
+#: apply.c:5030
msgid "accept a patch that touches outside the working area"
msgstr "godta en patch som rör filer utanför arbetskatalogen"
-#: apply.c:5051
+#: apply.c:5033
msgid "also apply the patch (use with --stat/--summary/--check)"
msgstr "tillämpa också patchen (använd med --stat/--summary/--check)"
-#: apply.c:5053
+#: apply.c:5035
msgid "attempt three-way merge, fall back on normal patch if that fails"
msgstr ""
"försök en trevägssammanslagning, fall tillbaka på normal patch om det "
"misslyckas"
-#: apply.c:5055
+#: apply.c:5037
msgid "build a temporary index based on embedded index information"
msgstr "bygg ett temporärt index baserat på inbyggd indexinformation"
-#: apply.c:5058 builtin/checkout-index.c:196
+#: apply.c:5040 builtin/checkout-index.c:230
msgid "paths are separated with NUL character"
msgstr "sökvägar avdelas med NUL-tecken"
-#: apply.c:5060
+#: apply.c:5042
msgid "ensure at least <n> lines of context match"
msgstr "se till att åtminstone <n> rader sammanhang är lika"
-#: apply.c:5061 builtin/am.c:2352 builtin/am.c:2355
+#: apply.c:5043 builtin/am.c:2355 builtin/am.c:2358
#: builtin/interpret-trailers.c:98 builtin/interpret-trailers.c:100
-#: builtin/interpret-trailers.c:102 builtin/pack-objects.c:3960
-#: builtin/rebase.c:1051
+#: builtin/interpret-trailers.c:102 builtin/pack-objects.c:3983
+#: builtin/rebase.c:1079
msgid "action"
msgstr "åtgärd"
-#: apply.c:5062
+#: apply.c:5044
msgid "detect new or modified lines that have whitespace errors"
msgstr "detektera nya eller ändrade rader som har fel i blanktecken"
-#: apply.c:5065 apply.c:5068
+#: apply.c:5047 apply.c:5050
msgid "ignore changes in whitespace when finding context"
msgstr "ignorera ändringar i blanktecken för sammanhang"
-#: apply.c:5071
+#: apply.c:5053
msgid "apply the patch in reverse"
msgstr "tillämpa patchen baklänges"
-#: apply.c:5073
+#: apply.c:5055
msgid "don't expect at least one line of context"
msgstr "förvänta inte minst en rad sammanhang"
-#: apply.c:5075
+#: apply.c:5057
msgid "leave the rejected hunks in corresponding *.rej files"
msgstr "lämna refuserade stycken i motsvarande *.rej-filer"
-#: apply.c:5077
+#: apply.c:5059
msgid "allow overlapping hunks"
msgstr "tillåt överlappande stycken"
-#: apply.c:5080
+#: apply.c:5062
msgid "tolerate incorrectly detected missing new-line at the end of file"
msgstr "tolerera felaktigt detekterade saknade nyradstecken vid filslut"
-#: apply.c:5083
+#: apply.c:5065
msgid "do not trust the line counts in the hunk headers"
msgstr "lite inte på antalet linjer i styckehuvuden"
-#: apply.c:5085 builtin/am.c:2364
+#: apply.c:5067 builtin/am.c:2367
msgid "root"
msgstr "rot"
-#: apply.c:5086
+#: apply.c:5068
msgid "prepend <root> to all filenames"
msgstr "lägg till <rot> i alla filnamn"
-#: apply.c:5089
+#: apply.c:5071
msgid "don't return error for empty patches"
msgstr "ge inte någon felkod för tomma patchar"
-#: archive-tar.c:125 archive-zip.c:345
+#: archive-tar.c:125 archive-zip.c:346
#, c-format
msgid "cannot stream blob %s"
msgstr "kan inte strömma blob:en %s"
-#: archive-tar.c:265 archive-zip.c:358
+#: archive-tar.c:265 archive-zip.c:359
#, c-format
msgid "unsupported file mode: 0%o (SHA1: %s)"
msgstr "filens läge stöds ej: 0%o (SHA1: %s)"
@@ -1544,22 +1545,22 @@ msgstr "kan inte omdirigera handtag"
msgid "'%s' filter reported error"
msgstr "filtret \"%s\" rapporterade fel"
-#: archive-zip.c:318
+#: archive-zip.c:319
#, c-format
msgid "path is not valid UTF-8: %s"
msgstr "sökvägen är inte giltig UTF-8: %s"
-#: archive-zip.c:322
+#: archive-zip.c:323
#, c-format
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:469 builtin/pack-objects.c:365 builtin/pack-objects.c:368
+#: archive-zip.c:470 builtin/pack-objects.c:363 builtin/pack-objects.c:366
#, c-format
msgid "deflate error (%d)"
msgstr "fel i deflate (%d)"
-#: archive-zip.c:603
+#: archive-zip.c:604
#, c-format
msgid "timestamp too large for this system: %<PRIuMAX>"
msgstr "tidsstämpeln för stor för detta system: %<PRIuMAX>"
@@ -1568,10 +1569,6 @@ msgstr "tidsstämpeln för stor för detta system: %<PRIuMAX>"
msgid "git archive [<options>] <tree-ish> [<path>...]"
msgstr "git archive [<flaggor>] <träd-igt> [<sökväg>...]"
-#: archive.c:15
-msgid "git archive --list"
-msgstr "git archive --list"
-
#: archive.c:16
msgid ""
"git archive --remote <repo> [--exec <cmd>] [<options>] <tree-ish> [<path>...]"
@@ -1584,12 +1581,12 @@ msgid "git archive --remote <repo> [--exec <cmd>] --list"
msgstr "git archive --remote <arkiv> [--exec <kmd>] --list"
#: archive.c:188 archive.c:341 builtin/gc.c:497 builtin/notes.c:238
-#: builtin/tag.c:578
+#: builtin/tag.c:579
#, c-format
msgid "cannot read '%s'"
msgstr "kunde inte läsa \"%s\""
-#: archive.c:426 builtin/add.c:215 builtin/add.c:671 builtin/rm.c:334
+#: archive.c:426 builtin/add.c:214 builtin/add.c:657 builtin/rm.c:334
#, c-format
msgid "pathspec '%s' did not match any files"
msgstr "sökvägsangivelsen \"%s\" motsvarade inte några filer"
@@ -1631,7 +1628,7 @@ msgstr "fmt"
msgid "archive format"
msgstr "arkivformat"
-#: archive.c:552 builtin/log.c:1790
+#: archive.c:552 builtin/log.c:1809
msgid "prefix"
msgstr "prefix"
@@ -1639,12 +1636,12 @@ msgstr "prefix"
msgid "prepend prefix to each pathname in the archive"
msgstr "lägg till prefix till varje sökväg i arkivet"
-#: archive.c:554 archive.c:557 builtin/blame.c:880 builtin/blame.c:884
-#: builtin/blame.c:885 builtin/commit-tree.c:115 builtin/config.c:135
+#: archive.c:554 archive.c:557 builtin/blame.c:881 builtin/blame.c:885
+#: builtin/blame.c:886 builtin/commit-tree.c:115 builtin/config.c:135
#: builtin/fast-export.c:1181 builtin/fast-export.c:1183
-#: builtin/fast-export.c:1187 builtin/grep.c:935 builtin/hash-object.c:103
+#: builtin/fast-export.c:1187 builtin/grep.c:936 builtin/hash-object.c:104
#: builtin/ls-files.c:654 builtin/ls-files.c:657 builtin/notes.c:410
-#: builtin/notes.c:576 builtin/read-tree.c:115 parse-options.h:190
+#: builtin/notes.c:576 builtin/read-tree.c:115 parse-options.h:195
msgid "file"
msgstr "fil"
@@ -1672,8 +1669,8 @@ msgstr "välj komprimeringsgrad"
msgid "list supported archive formats"
msgstr "visa understödda arkivformat"
-#: archive.c:568 builtin/archive.c:89 builtin/clone.c:118 builtin/clone.c:121
-#: builtin/submodule--helper.c:1870 builtin/submodule--helper.c:2513
+#: archive.c:568 builtin/archive.c:89 builtin/clone.c:122 builtin/clone.c:125
+#: builtin/submodule--helper.c:1884 builtin/submodule--helper.c:2718
msgid "repo"
msgstr "arkiv"
@@ -1694,11 +1691,12 @@ msgstr "sökväg till kommandot git-upload-archive på fjärren"
msgid "Unexpected option --remote"
msgstr "Oväntad flagga --remote"
-#: archive.c:580 fetch-pack.c:300 revision.c:2887 builtin/add.c:544
-#: builtin/add.c:576 builtin/checkout.c:1763 builtin/commit.c:370
-#: builtin/fast-export.c:1230 builtin/index-pack.c:1848 builtin/log.c:2115
-#: builtin/reset.c:435 builtin/reset.c:493 builtin/rm.c:281
-#: builtin/stash.c:1719 builtin/worktree.c:508 http-fetch.c:144
+#: archive.c:580 fetch-pack.c:300 revision.c:2914 builtin/add.c:530
+#: builtin/add.c:562 builtin/checkout.c:1782 builtin/clone.c:1099
+#: builtin/clone.c:1102 builtin/commit.c:371 builtin/fast-export.c:1230
+#: builtin/index-pack.c:1854 builtin/log.c:2140 builtin/reset.c:442
+#: builtin/reset.c:500 builtin/rm.c:281 builtin/stash.c:1708
+#: builtin/worktree.c:580 builtin/worktree.c:781 http-fetch.c:144
#: http-fetch.c:153
#, c-format
msgid "the option '%s' requires '%s'"
@@ -1718,17 +1716,17 @@ msgstr "Okänt arkivformat \"%s\""
msgid "Argument not supported for format '%s': -%d"
msgstr "Argumentet stöd inte för formatet \"%s\": -%d"
-#: attr.c:203
+#: attr.c:202
#, c-format
msgid "%.*s is not a valid attribute name"
msgstr "%-*s är inte ett giltigt namn på attribut"
-#: attr.c:364
+#: attr.c:363
#, c-format
msgid "%s not allowed: %s:%d"
msgstr "%s inte tillåtet: %s:%d"
-#: attr.c:404
+#: attr.c:403
msgid ""
"Negative patterns are ignored in git attributes\n"
"Use '\\!' for literal leading exclamation."
@@ -1746,12 +1744,12 @@ msgstr "Felaktigt citerat innehåll i filen \"%s\": %s"
msgid "We cannot bisect more!\n"
msgstr "Det finns inte mer att göra \"bisect\" på!\n"
-#: bisect.c:764
+#: bisect.c:765
#, c-format
msgid "Not a valid commit name %s"
msgstr "Namnet på incheckningen är inte giltigt: %s"
-#: bisect.c:789
+#: bisect.c:790
#, c-format
msgid ""
"The merge base %s is bad.\n"
@@ -1760,7 +1758,7 @@ msgstr ""
"Sammanslagningsbasen %s är trasig.\n"
"Det betyder att felet har rättats mellan %s och [%s].\n"
-#: bisect.c:794
+#: bisect.c:795
#, c-format
msgid ""
"The merge base %s is new.\n"
@@ -1769,7 +1767,7 @@ msgstr ""
"Sammanslagningsbasen %s är ny.\n"
"Egenskapen har ändrats mellan %s och [%s].\n"
-#: bisect.c:799
+#: bisect.c:800
#, c-format
msgid ""
"The merge base %s is %s.\n"
@@ -1778,7 +1776,7 @@ msgstr ""
"Sammanslagningsbasen %s är %s.\n"
"Det betyder att den första \"%s\" incheckningen är mellan %s och [%s].\n"
-#: bisect.c:807
+#: bisect.c:808
#, c-format
msgid ""
"Some %s revs are not ancestors of the %s rev.\n"
@@ -1789,7 +1787,7 @@ msgstr ""
"git bisect kan inte fungera korrekt i detta fall.\n"
"Kanske du skrev fel %s- och %s-revisioner?\n"
-#: bisect.c:820
+#: bisect.c:821
#, c-format
msgid ""
"the merge base between %s and [%s] must be skipped.\n"
@@ -1801,36 +1799,36 @@ msgstr ""
"%s.\n"
"Vi fortsätter ändå."
-#: bisect.c:859
+#: bisect.c:860
#, c-format
msgid "Bisecting: a merge base must be tested\n"
msgstr "Bisect: en sammanslagningsbas måste testas\n"
-#: bisect.c:909
+#: bisect.c:910
#, c-format
msgid "a %s revision is needed"
msgstr "en %s-revision behövs"
-#: bisect.c:939
+#: bisect.c:940
#, c-format
msgid "could not create file '%s'"
msgstr "kunde inte skapa filen \"%s\""
-#: bisect.c:985 builtin/merge.c:155
+#: bisect.c:986 builtin/merge.c:155
#, c-format
msgid "could not read file '%s'"
msgstr "kunde inte läsa filen \"%s\""
-#: bisect.c:1025
+#: bisect.c:1026
msgid "reading bisect refs failed"
msgstr "misslyckades läsa bisect-referenser"
-#: bisect.c:1055
+#: bisect.c:1056
#, c-format
msgid "%s was both %s and %s\n"
msgstr "%s var både %s och %s\n"
-#: bisect.c:1064
+#: bisect.c:1065
#, c-format
msgid ""
"No testable commit found.\n"
@@ -1839,7 +1837,7 @@ msgstr ""
"Ingen testbar incheckning hittades.\n"
"Kanske du startade med felaktiga sökvägsargument?\n"
-#: bisect.c:1093
+#: bisect.c:1094
#, c-format
msgid "(roughly %d step)"
msgid_plural "(roughly %d steps)"
@@ -1849,54 +1847,54 @@ msgstr[1] "(ungefär %d steg)"
#. TRANSLATORS: the last %s will be replaced with "(roughly %d
#. steps)" translation.
#.
-#: bisect.c:1099
+#: bisect.c:1100
#, c-format
msgid "Bisecting: %d revision left to test after this %s\n"
msgid_plural "Bisecting: %d revisions left to test after this %s\n"
msgstr[0] "Bisect: %d revision kvar att testa efter denna %s\n"
msgstr[1] "Bisect: %d revisioner kvar att testa efter denna %s\n"
-#: blame.c:2776
+#: blame.c:2773
msgid "--contents and --reverse do not blend well."
msgstr "--contents och --reverse fungerar inte så bra tillsammans."
-#: blame.c:2790
+#: blame.c:2787
msgid "cannot use --contents with final commit object name"
msgstr "kan inte använda --contents med namn på slutgiltigt incheckningsobjekt"
-#: blame.c:2811
+#: blame.c:2808
msgid "--reverse and --first-parent together require specified latest commit"
msgstr ""
"--reverse och --first-parent tillsammans kräver att du anger senaste "
"incheckningen"
-#: blame.c:2820 bundle.c:224 midx.c:1042 ref-filter.c:2370 remote.c:2158
-#: sequencer.c:2352 sequencer.c:4899 submodule.c:883 builtin/commit.c:1114
-#: builtin/log.c:429 builtin/log.c:1036 builtin/log.c:1644 builtin/log.c:2071
-#: builtin/log.c:2362 builtin/merge.c:431 builtin/pack-objects.c:3373
-#: builtin/pack-objects.c:3775 builtin/pack-objects.c:3790
+#: blame.c:2817 bundle.c:231 midx.c:1058 ref-filter.c:2371 remote.c:2157
+#: sequencer.c:2348 sequencer.c:4872 submodule.c:913 builtin/commit.c:1118
+#: builtin/log.c:437 builtin/log.c:1055 builtin/log.c:1663 builtin/log.c:2096
+#: builtin/log.c:2387 builtin/merge.c:431 builtin/pack-objects.c:3381
+#: builtin/pack-objects.c:3781 builtin/pack-objects.c:3796
#: builtin/shortlog.c:255
msgid "revision walk setup failed"
msgstr "misslyckades skapa revisionstraversering"
-#: blame.c:2838
+#: blame.c:2835
msgid ""
"--reverse --first-parent together require range along first-parent chain"
msgstr ""
"--reverse --first-parent tillsammans kräver ett intervall på första-förälder-"
"kedjan"
-#: blame.c:2849
+#: blame.c:2846
#, c-format
msgid "no such path %s in %s"
msgstr "sökvägen %s i %s finns inte"
-#: blame.c:2860
+#: blame.c:2857
#, c-format
msgid "cannot read blob %s for path %s"
msgstr "kan inte läsa objektet %s för sökvägen %s"
-#: branch.c:77
+#: branch.c:93
msgid ""
"cannot inherit upstream tracking configuration of multiple refs when "
"rebasing is requested"
@@ -1904,31 +1902,31 @@ msgstr ""
"kan inte ärva uppströmsspårningsinformation från flera referenser när "
"ombasering är vald"
-#: branch.c:88
+#: branch.c:104
#, c-format
msgid "not setting branch '%s' as its own upstream"
msgstr "ställer inte in grenen %s som sin egen uppströmsgren"
-#: branch.c:144
+#: branch.c:160
#, c-format
msgid "branch '%s' set up to track '%s' by rebasing."
msgstr "grenen \"%s\" inställd på att spåra \"%s\" genom ombasering."
-#: branch.c:145
+#: branch.c:161
#, c-format
msgid "branch '%s' set up to track '%s'."
msgstr "grenen \"%s\" inställd på att spåra \"%s\"."
-#: branch.c:148
+#: branch.c:164
#, c-format
msgid "branch '%s' set up to track:"
msgstr "grenen \"%s\" inställd på att spåra:"
-#: branch.c:160
+#: branch.c:176
msgid "unable to write upstream branch configuration"
msgstr "kan inte skriva inställningar för uppströmsgren"
-#: branch.c:162
+#: branch.c:178
msgid ""
"\n"
"After fixing the error cause you may try to fix up\n"
@@ -1938,51 +1936,89 @@ msgstr ""
"När du har rättat felorsaken kan du försöka rätta\n"
"fjärrspårningsinformationen genom att utföra:"
-#: branch.c:203
+#: branch.c:219
#, c-format
msgid "asked to inherit tracking from '%s', but no remote is set"
msgstr "bad om att ärva spårning från \"%s\", men ingen fjärr är vald"
-#: branch.c:209
+#: branch.c:225
#, c-format
msgid "asked to inherit tracking from '%s', but no merge configuration is set"
msgstr ""
"bad om att ärva spårning från \"%s\", men ingen sammanslagningsinställning "
"är vald"
-#: branch.c:252
+#: branch.c:277
#, c-format
-msgid "not tracking: ambiguous information for ref %s"
-msgstr "spårar inte: tvetydig information för referensen %s"
+msgid "not tracking: ambiguous information for ref '%s'"
+msgstr "spårar inte: tvetydig information för referensen \"%s\""
-#: branch.c:287
+#. TRANSLATORS: This is a line listing a remote with duplicate
+#. refspecs in the advice message below. For RTL languages you'll
+#. probably want to swap the "%s" and leading " " space around.
+#.
+#. TRANSLATORS: This is line item of ambiguous object output
+#. from describe_ambiguous_object() above. For RTL languages
+#. you'll probably want to swap the "%s" and leading " " space
+#. around.
+#.
+#: branch.c:289 object-name.c:464
+#, c-format
+msgid " %s\n"
+msgstr " %s\n"
+
+#. TRANSLATORS: The second argument is a \n-delimited list of
+#. duplicate refspecs, composed above.
+#.
+#: branch.c:295
+#, c-format
+msgid ""
+"There are multiple remotes whose fetch refspecs map to the remote\n"
+"tracking ref '%s':\n"
+"%s\n"
+"This is typically a configuration error.\n"
+"\n"
+"To support setting up tracking branches, ensure that\n"
+"different remotes' fetch refspecs map into different\n"
+"tracking namespaces."
+msgstr ""
+"Flera fjärrars hämtnings-referensspecifikationer motsvarar fjärr-\n"
+"spårningsreferensen \"%s\":\n"
+"%s\n"
+"Detta är vanligtvis ett fel i konfigurationen.\n"
+"\n"
+"För att möjliggöra konfiguration av spårande grenar, se till att\n"
+"olika fjärrars hämtnings-referensspecifikationer kopplas till\n"
+"olika spårningsnamnrymder."
+
+#: branch.c:344
#, c-format
msgid "'%s' is not a valid branch name"
msgstr "\"%s\" är inte ett giltigt grennamn"
-#: branch.c:307
+#: branch.c:364
#, c-format
msgid "a branch named '%s' already exists"
msgstr "det finns redan en gren som heter \"%s\""
-#: branch.c:313
+#: branch.c:370
#, c-format
msgid "cannot force update the branch '%s' checked out at '%s'"
msgstr ""
"kan inte tvinga uppdatering av grenen \"%s\" som är utcheckad på \"%s\""
-#: branch.c:336
+#: branch.c:393
#, c-format
msgid "cannot set up tracking information; starting point '%s' is not a branch"
msgstr ""
"kan inte ställa in spårningsinformation; startpunkten \"%s\" är inte en gren"
-#: branch.c:338
+#: branch.c:395
#, c-format
msgid "the requested upstream branch '%s' does not exist"
msgstr "den efterfrågade uppströmsgrenen \"%s\" finns inte"
-#: branch.c:340
+#: branch.c:397
msgid ""
"\n"
"If you are planning on basing your work on an upstream\n"
@@ -2002,126 +2038,145 @@ msgstr ""
"spåra dess fjärrmotsvarighet kan du använda \"git push -u\"\n"
"för att ställa in uppströmskonfigurationen när du sänder in."
-#: branch.c:384 builtin/replace.c:321 builtin/replace.c:377
+#: branch.c:445 builtin/replace.c:321 builtin/replace.c:377
#: builtin/replace.c:423 builtin/replace.c:453
#, c-format
msgid "not a valid object name: '%s'"
msgstr "objektnamnet är inte giltigt: \"%s\""
-#: branch.c:404
+#: branch.c:465
#, c-format
msgid "ambiguous object name: '%s'"
msgstr "objektnamnet är tvetydigt: \"%s\""
-#: branch.c:409
+#: branch.c:470
#, c-format
msgid "not a valid branch point: '%s'"
msgstr "avgreningspunkten är inte giltig: \"%s\""
-#: branch.c:469
+#: branch.c:658
+#, c-format
+msgid "submodule '%s': unable to find submodule"
+msgstr "undermodulen \"%s\": kan inte hitta undermodulen"
+
+#: branch.c:661
+#, c-format
+msgid ""
+"You may try updating the submodules using 'git checkout %s && git submodule "
+"update --init'"
+msgstr ""
+"Du kan försöka uppdatera undermodulerna med \"git checkout %s && git "
+"submodule update --init\""
+
+#: branch.c:672 branch.c:698
+#, c-format
+msgid "submodule '%s': cannot create branch '%s'"
+msgstr "undermodulen \"%s\": kan inte skapa grenen \"%s\""
+
+#: branch.c:730
#, c-format
msgid "'%s' is already checked out at '%s'"
msgstr "\"%s\" är redan utcheckad på \"%s\""
-#: branch.c:494
+#: branch.c:755
#, c-format
msgid "HEAD of working tree %s is not updated"
msgstr "HEAD i arbetskatalogen %s har inte uppdaterats"
-#: bundle.c:44
+#: bundle.c:45
#, c-format
msgid "unrecognized bundle hash algorithm: %s"
msgstr "okänd hashningsalgoritm för bunt: \"%s\""
-#: bundle.c:48
+#: bundle.c:53
#, c-format
msgid "unknown capability '%s'"
msgstr "okänd kapabilitet \"%s\""
-#: bundle.c:74
+#: bundle.c:79
#, c-format
msgid "'%s' does not look like a v2 or v3 bundle file"
msgstr "'%s' ser inte ut som en v2- eller v3-bunt-fil"
-#: bundle.c:113
+#: bundle.c:118
#, c-format
msgid "unrecognized header: %s%s (%d)"
msgstr "okänt huvud: %s%s (%d)"
-#: bundle.c:140 rerere.c:464 rerere.c:674 sequencer.c:2620 sequencer.c:3406
-#: builtin/commit.c:862
+#: bundle.c:145 rerere.c:464 rerere.c:675 sequencer.c:2616 sequencer.c:3402
+#: builtin/commit.c:865
#, c-format
msgid "could not open '%s'"
msgstr "kunde inte öppna \"%s\""
-#: bundle.c:198
+#: bundle.c:203
msgid "Repository lacks these prerequisite commits:"
msgstr "Arkivet saknar dessa nödvändiga incheckningar:"
-#: bundle.c:201
+#: bundle.c:206
msgid "need a repository to verify a bundle"
msgstr "behöver ett arkiv för att bekräfta en bunt."
-#: bundle.c:257
+#: bundle.c:264
#, c-format
msgid "The bundle contains this ref:"
-msgid_plural "The bundle contains these %d refs:"
+msgid_plural "The bundle contains these %<PRIuMAX> refs:"
msgstr[0] "Bunten innehåller denna referens:"
-msgstr[1] "Bunten innehåller dessa %d referenser:"
+msgstr[1] "Bunten innehåller dessa %<PRIuMAX> referenser:"
-#: bundle.c:264
+#: bundle.c:272
msgid "The bundle records a complete history."
msgstr "Bunten beskriver en komplett historik."
-#: bundle.c:266
+#: bundle.c:274
#, c-format
msgid "The bundle requires this ref:"
-msgid_plural "The bundle requires these %d refs:"
+msgid_plural "The bundle requires these %<PRIuMAX> refs:"
msgstr[0] "Bunten kräver denna referens:"
-msgstr[1] "Bunten kräver dessa %d referenser:"
+msgstr[1] "Bunten kräver dessa %<PRIuMAX> referenser:"
-#: bundle.c:333
+#: bundle.c:350
msgid "unable to dup bundle descriptor"
msgstr "kan inte duplicera bunthandtag"
-#: bundle.c:340
+#: bundle.c:357
msgid "Could not spawn pack-objects"
msgstr "Kunde inte starta pack-objects"
-#: bundle.c:351
+#: bundle.c:368
msgid "pack-objects died"
msgstr "pack-objects misslyckades"
-#: bundle.c:400
+#: bundle.c:417
#, c-format
msgid "ref '%s' is excluded by the rev-list options"
msgstr "referensen \"%s\" exkluderas av argumenten till rev-list"
-#: bundle.c:504
+#: bundle.c:533 builtin/log.c:211 builtin/log.c:1975 builtin/shortlog.c:400
+#, c-format
+msgid "unrecognized argument: %s"
+msgstr "okänt argument: %s"
+
+#: bundle.c:548
#, c-format
msgid "unsupported bundle version %d"
msgstr "version %d för bunt stöds ej"
-#: bundle.c:506
+#: bundle.c:550
#, c-format
msgid "cannot write bundle version %d with algorithm %s"
msgstr "kan inte skriva bunt med version %d med algoritmen %s"
-#: bundle.c:524 builtin/log.c:210 builtin/log.c:1953 builtin/shortlog.c:399
-#, c-format
-msgid "unrecognized argument: %s"
-msgstr "okänt argument: %s"
-
-#: bundle.c:553
+#: bundle.c:600
msgid "Refusing to create empty bundle."
msgstr "Vägrar skapa en tom bunt."
-#: bundle.c:563
+#: bundle.c:610
#, c-format
msgid "cannot create '%s'"
msgstr "kan inte skapa \"%s\""
-#: bundle.c:588
+#: bundle.c:639
msgid "index-pack died"
msgstr "index-pack dog"
@@ -2149,7 +2204,7 @@ msgstr "avslutande stycke har id %<PRIx32> som inte är noll"
msgid "invalid color value: %.*s"
msgstr "felaktigt färgvärde: %.*s"
-#: commit-graph.c:204 midx.c:51
+#: commit-graph.c:204 midx.c:52
msgid "invalid hash version"
msgstr "felaktig hashnings-version"
@@ -2177,207 +2232,208 @@ msgstr "incheckningsgrafens hashversion %X stämmer inte med versionen %X"
msgid "commit-graph file is too small to hold %u chunks"
msgstr "incheckningsgraffilen är för liten för att innehålla %u stycken"
-#: commit-graph.c:482
+#: commit-graph.c:485
msgid "commit-graph has no base graphs chunk"
msgstr "incheckningsgrafen har inga bas-graf-stycken"
-#: commit-graph.c:492
+#: commit-graph.c:495
msgid "commit-graph chain does not match"
msgstr "incheckningsgrafens kedja stämmer inte"
-#: commit-graph.c:540
+#: commit-graph.c:543
#, 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:564
+#: commit-graph.c:567
msgid "unable to find all commit-graph files"
msgstr "kan inte hitta alla incheckingsgraffiler"
-#: commit-graph.c:749 commit-graph.c:786
+#: commit-graph.c:752 commit-graph.c:789
msgid "invalid commit position. commit-graph is likely corrupt"
msgstr "ogiltig incheckningsposition. incheckningsgrafen är troligtvis trasig"
-#: commit-graph.c:770
+#: commit-graph.c:773
#, c-format
msgid "could not find commit %s"
msgstr "kunde inte hitta incheckningen %s"
-#: commit-graph.c:803
+#: commit-graph.c:806
msgid "commit-graph requires overflow generation data but has none"
msgstr "incheckningsgraf kräver spillgenerationsdata, men har ingen"
-#: commit-graph.c:1108 builtin/am.c:1369
+#: commit-graph.c:1111 builtin/am.c:1370 builtin/checkout.c:775
+#: builtin/clone.c:705
#, c-format
msgid "unable to parse commit %s"
msgstr "kunde inte tolka incheckningen %s"
-#: commit-graph.c:1370 builtin/pack-objects.c:3070
+#: commit-graph.c:1373 builtin/pack-objects.c:3078
#, c-format
msgid "unable to get type of object %s"
msgstr "kunde inte hämta typ för objektet %s"
-#: commit-graph.c:1401
+#: commit-graph.c:1404
msgid "Loading known commits in commit graph"
msgstr "Läser in kända incheckningar i incheckningsgraf"
-#: commit-graph.c:1418
+#: commit-graph.c:1421
msgid "Expanding reachable commits in commit graph"
msgstr "Expanderar nåbara incheckningar i incheckningsgraf"
-#: commit-graph.c:1438
+#: commit-graph.c:1441
msgid "Clearing commit marks in commit graph"
msgstr "Rensar incheckningsmärken i incheckningsgraf"
-#: commit-graph.c:1457
+#: commit-graph.c:1460
msgid "Computing commit graph topological levels"
msgstr "Beräknar topografiska nivåer för incheckningsgraf"
-#: commit-graph.c:1510
+#: commit-graph.c:1513
msgid "Computing commit graph generation numbers"
msgstr "Beräknar generationsvärden för incheckningsgraf"
-#: commit-graph.c:1591
+#: commit-graph.c:1598
msgid "Computing commit changed paths Bloom filters"
msgstr "Beräknar Bloom-filter för sökvägar ändrade av incheckningen"
-#: commit-graph.c:1668
+#: commit-graph.c:1675
msgid "Collecting referenced commits"
msgstr "Samlar refererade incheckningar"
-#: commit-graph.c:1693
+#: commit-graph.c:1701
#, 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"
+msgid "Finding commits for commit graph in %<PRIuMAX> pack"
+msgid_plural "Finding commits for commit graph in %<PRIuMAX> packs"
+msgstr[0] "Söker incheckningar för incheckingsgraf i %<PRIuMAX> paket"
+msgstr[1] "Söker incheckningar för incheckingsgraf i %<PRIuMAX> paket"
-#: commit-graph.c:1706
+#: commit-graph.c:1714
#, c-format
msgid "error adding pack %s"
msgstr "fel vid tillägg av paketet %s"
-#: commit-graph.c:1710
+#: commit-graph.c:1718
#, c-format
msgid "error opening index for %s"
msgstr "fel vid öppning av indexet för %s"
-#: commit-graph.c:1747
+#: commit-graph.c:1756
msgid "Finding commits for commit graph among packed objects"
msgstr "Söker incheckningar för incheckingsgraf i packade objekt"
-#: commit-graph.c:1765
+#: commit-graph.c:1774
msgid "Finding extra edges in commit graph"
msgstr "Söker ytterligare kanter i incheckingsgraf"
-#: commit-graph.c:1814
+#: commit-graph.c:1823
msgid "failed to write correct number of base graph ids"
msgstr "kunde inte skriva korrekt antal bas-graf-id:n"
-#: commit-graph.c:1845 midx.c:1149
+#: commit-graph.c:1854 midx.c:1168 builtin/sparse-checkout.c:475
#, c-format
msgid "unable to create leading directories of %s"
msgstr "kunde inte skapa inledande kataloger för %s"
-#: commit-graph.c:1858
+#: commit-graph.c:1868
msgid "unable to create temporary graph layer"
msgstr "kan inte skapa temporärt graflager"
-#: commit-graph.c:1863
+#: commit-graph.c:1873
#, c-format
msgid "unable to adjust shared permissions for '%s'"
msgstr "kan inte justera delade behörigheter för \"%s\""
-#: commit-graph.c:1920
+#: commit-graph.c:1930
#, 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:1956
+#: commit-graph.c:1967
msgid "unable to open commit-graph chain file"
msgstr "Kunde inte öppna incheckningsgrafkedjefilen"
-#: commit-graph.c:1972
+#: commit-graph.c:1983
msgid "failed to rename base commit-graph file"
msgstr "kunde inte byta namn på bas-incheckingsgraffilen"
-#: commit-graph.c:1992
+#: commit-graph.c:2004
msgid "failed to rename temporary commit-graph file"
msgstr "kunde inte byta namn på temporär incheckningsgraffil"
-#: commit-graph.c:2125
+#: commit-graph.c:2137
msgid "Scanning merged commits"
msgstr "Söker sammanslagna incheckningar"
-#: commit-graph.c:2169
+#: commit-graph.c:2181
msgid "Merging commit-graph"
msgstr "Slår ihop incheckningsgraf"
-#: commit-graph.c:2277
+#: commit-graph.c:2289
msgid "attempting to write a commit-graph, but 'core.commitGraph' is disabled"
msgstr ""
"försöker skriva en incheckningsgraf, men \"core.commitGraph\" är inaktiverad"
-#: commit-graph.c:2384
+#: commit-graph.c:2396
msgid "too many commits to write graph"
msgstr "för många incheckningar för att skriva graf"
-#: commit-graph.c:2482
+#: commit-graph.c:2494
msgid "the commit-graph file has incorrect checksum and is likely corrupt"
msgstr ""
"filen med incheckningsgraf har felaktig kontrollsumma och är troligtvis "
"trasig"
-#: commit-graph.c:2492
+#: commit-graph.c:2504
#, c-format
msgid "commit-graph has incorrect OID order: %s then %s"
msgstr "incheckningsgrafen har felaktig OID-ordning: %s så %s"
-#: commit-graph.c:2502 commit-graph.c:2517
+#: commit-graph.c:2514 commit-graph.c:2529
#, 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:2509
+#: commit-graph.c:2521
#, c-format
msgid "failed to parse commit %s from commit-graph"
msgstr "kunde inte tolka incheckning %s från incheckningsgraf"
-#: commit-graph.c:2527
+#: commit-graph.c:2539
msgid "Verifying commits in commit graph"
msgstr "Bekräftar incheckningar i incheckningsgrafen"
-#: commit-graph.c:2542
+#: commit-graph.c:2554
#, 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:2549
+#: commit-graph.c:2561
#, 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:2559
+#: commit-graph.c:2571
#, 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:2568
+#: commit-graph.c:2580
#, 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:2582
+#: commit-graph.c:2594
#, 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:2587
+#: commit-graph.c:2599
#, c-format
msgid ""
"commit-graph has generation number zero for commit %s, but non-zero elsewhere"
@@ -2385,7 +2441,7 @@ msgstr ""
"incheckningsgrafen har generationsnummer noll för incheckningen %s, men icke-"
"noll på annan plats"
-#: commit-graph.c:2591
+#: commit-graph.c:2603
#, c-format
msgid ""
"commit-graph has non-zero generation number for commit %s, but zero elsewhere"
@@ -2393,32 +2449,32 @@ msgstr ""
"incheckningsgrafen har generationsnummer skilt från noll för incheckningen "
"%s, men noll på annan plats"
-#: commit-graph.c:2608
+#: commit-graph.c:2620
#, c-format
msgid "commit-graph generation for commit %s is %<PRIuMAX> < %<PRIuMAX>"
msgstr ""
"incheckningsgrafens generation för incheckningen %s är %<PRIuMAX> < "
"%<PRIuMAX>"
-#: commit-graph.c:2614
+#: commit-graph.c:2626
#, c-format
msgid "commit date for commit %s in commit-graph is %<PRIuMAX> != %<PRIuMAX>"
msgstr ""
"incheckningsdatumet för incheckningen %s i incheckningsgrafen är %<PRIuMAX> !"
"= %<PRIuMAX>"
-#: commit.c:53 sequencer.c:3109 builtin/am.c:399 builtin/am.c:444
-#: builtin/am.c:449 builtin/am.c:1448 builtin/am.c:2123 builtin/replace.c:456
+#: commit.c:54 sequencer.c:3105 builtin/am.c:400 builtin/am.c:445
+#: builtin/am.c:450 builtin/am.c:1449 builtin/am.c:2124 builtin/replace.c:456
#, c-format
msgid "could not parse %s"
msgstr "kunde inte tolka %s"
-#: commit.c:55
+#: commit.c:56
#, c-format
msgid "%s %s is not a commit!"
msgstr "%s %s är inte en incheckning!"
-#: commit.c:196
+#: commit.c:197
msgid ""
"Support for <GIT_DIR>/info/grafts is deprecated\n"
"and will be removed in a future Git version.\n"
@@ -2438,29 +2494,29 @@ msgstr ""
"Slå av detta meddelande genom att skriva\n"
"\"git config advice.graftFileDeprecated false\""
-#: commit.c:1241
+#: commit.c:1252
#, 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:1245
+#: commit.c:1256
#, 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:1248
+#: commit.c:1259
#, c-format
msgid "Commit %s does not have a GPG signature."
msgstr "Incheckning %s har inte någon GPG-signatur."
-#: commit.c:1251
+#: commit.c:1262
#, 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:1505
+#: commit.c:1516
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"
@@ -2474,7 +2530,15 @@ msgstr ""
msgid "memory exhausted"
msgstr "minnet slut"
-#: config.c:125
+#: compat/terminal.c:167
+msgid "cannot resume in the background, please use 'fg' to resume"
+msgstr "kan inte fortsätta i bakgrunden, använd \"fg\" för att återuppta"
+
+#: compat/terminal.c:168
+msgid "cannot restore terminal settings"
+msgstr "kan inte återställa terminalinställningar"
+
+#: config.c:143
#, c-format
msgid ""
"exceeded maximum include depth (%d) while including\n"
@@ -2489,341 +2553,368 @@ msgstr ""
"\t%s\n"
"Det kan bero på cirkulära inkluderingar."
-#: config.c:141
+#: config.c:159
#, c-format
msgid "could not expand include path '%s'"
msgstr "kunde inte expandera inkluderingssökväg \"%s\""
-#: config.c:152
+#: config.c:170
msgid "relative config includes must come from files"
msgstr "relativa konfigureringsinkluderingar måste komma från filer"
-#: config.c:201
+#: config.c:219
msgid "relative config include conditionals must come from files"
msgstr "relativa konfigureringsinkluderingsvillkor måste komma från filer"
-#: config.c:398
+#: config.c:364
+msgid ""
+"remote URLs cannot be configured in file directly or indirectly included by "
+"includeIf.hasconfig:remote.*.url"
+msgstr ""
+"fjärr-URL:er kan inte konfigureras direkt eller indirekt i en fil inkluderad "
+"med includeIf.hasconfig:remote.*.url"
+
+#: config.c:508
#, c-format
msgid "invalid config format: %s"
msgstr "felaktigt konfigurationsformat: %s"
-#: config.c:402
+#: config.c:512
#, c-format
msgid "missing environment variable name for configuration '%.*s'"
msgstr "miljövariabelnamn saknas för konfigurationen \"%.*s\""
-#: config.c:407
+#: config.c:517
#, c-format
msgid "missing environment variable '%s' for configuration '%.*s'"
msgstr "miljövariabeln \"%s\" saknas för konfigurationen \"%.*s\""
-#: config.c:443
+#: config.c:553
#, c-format
msgid "key does not contain a section: %s"
msgstr "nyckeln innehåller inte ett stycke: %s"
-#: config.c:448
+#: config.c:558
#, c-format
msgid "key does not contain variable name: %s"
msgstr "nyckeln innehåller inte variabelnamn: %s"
-#: config.c:470 sequencer.c:2806
+#: config.c:580 sequencer.c:2802
#, c-format
msgid "invalid key: %s"
msgstr "felaktig nyckel: %s"
-#: config.c:475
+#: config.c:585
#, c-format
msgid "invalid key (newline): %s"
msgstr "ogiltig nyckel (nyradstecken): %s"
-#: config.c:495
+#: config.c:605
msgid "empty config key"
msgstr "tom konfigurationsnyckel"
-#: config.c:513 config.c:525
+#: config.c:623 config.c:635
#, c-format
msgid "bogus config parameter: %s"
msgstr "falsk konfigureringsparameter: %s"
-#: config.c:539 config.c:556 config.c:563 config.c:572
+#: config.c:649 config.c:666 config.c:673 config.c:682
#, c-format
msgid "bogus format in %s"
msgstr "felaktigt format i %s"
-#: config.c:606
+#: config.c:716
#, c-format
msgid "bogus count in %s"
msgstr "felaktigt antal i %s"
-#: config.c:610
+#: config.c:720
#, c-format
msgid "too many entries in %s"
msgstr "för många poster i %s"
-#: config.c:620
+#: config.c:730
#, c-format
msgid "missing config key %s"
msgstr "konfigurationsnyckel saknas för %s"
-#: config.c:628
+#: config.c:738
#, c-format
msgid "missing config value %s"
msgstr "konfigurationsvärde saknas för %s"
-#: config.c:979
+#: config.c:1089
#, c-format
msgid "bad config line %d in blob %s"
msgstr "felaktig konfigurationsfil rad %d i blob:en %s"
-#: config.c:983
+#: config.c:1093
#, c-format
msgid "bad config line %d in file %s"
msgstr "felaktig konfigurationsfil rad %d i filen %s"
-#: config.c:987
+#: config.c:1097
#, c-format
msgid "bad config line %d in standard input"
msgstr "felaktig konfigurationsfil rad %d i standard in"
-#: config.c:991
+#: config.c:1101
#, c-format
msgid "bad config line %d in submodule-blob %s"
msgstr "felaktig konfigurationsfil rad %d i undermoduls-blob:en %s"
-#: config.c:995
+#: config.c:1105
#, c-format
msgid "bad config line %d in command line %s"
msgstr "felaktig konfigurationsfil rad %d i kommandoraden %s"
-#: config.c:999
+#: config.c:1109
#, c-format
msgid "bad config line %d in %s"
msgstr "felaktig konfigurationsfil rad %d i %s"
-#: config.c:1136
+#: config.c:1246
msgid "out of range"
msgstr "utanför intervallet"
-#: config.c:1136
+#: config.c:1246
msgid "invalid unit"
msgstr "ogiltig enhet"
-#: config.c:1137
+#: config.c:1247
#, c-format
msgid "bad numeric config value '%s' for '%s': %s"
msgstr "felaktigt numeriskt konfigurationsvärde \"%s\" för \"%s\": %s"
-#: config.c:1147
+#: config.c:1257
#, c-format
msgid "bad numeric config value '%s' for '%s' in blob %s: %s"
msgstr ""
"felaktigt numeriskt konfigurationsvärde \"%s\" för \"%s\" i blob:en %s: %s"
-#: config.c:1150
+#: config.c:1260
#, c-format
msgid "bad numeric config value '%s' for '%s' in file %s: %s"
msgstr ""
"felaktigt numeriskt konfigurationsvärde \"%s\" för \"%s\" i filen %s: %s"
-#: config.c:1153
+#: config.c:1263
#, c-format
msgid "bad numeric config value '%s' for '%s' in standard input: %s"
msgstr ""
"felaktigt numeriskt konfigurationsvärde \"%s\" för \"%s\" i standard in: %s"
-#: config.c:1156
+#: config.c:1266
#, c-format
msgid "bad numeric config value '%s' for '%s' in submodule-blob %s: %s"
msgstr ""
"felaktigt numeriskt konfigurationsvärde \"%s\" för \"%s\" i undermodul-blob:"
"en %s: %s"
-#: config.c:1159
+#: config.c:1269
#, c-format
msgid "bad numeric config value '%s' for '%s' in command line %s: %s"
msgstr ""
"felaktigt numeriskt konfigurationsvärde \"%s\" för \"%s\" i kommandoraden "
"%s: %s"
-#: config.c:1162
+#: config.c:1272
#, c-format
msgid "bad numeric config value '%s' for '%s' in %s: %s"
msgstr "felaktigt numeriskt konfigurationsvärde \"%s\" för \"%s\" i %s: %s"
-#: config.c:1241
+#: config.c:1368
+#, c-format
+msgid "invalid value for variable %s"
+msgstr "ogiltigt värde för variabeln %s"
+
+#: config.c:1389
+#, c-format
+msgid "ignoring unknown core.fsync component '%s'"
+msgstr "ignorerar okänd core.fsync-komponent \"%s\""
+
+#: config.c:1425
#, c-format
msgid "bad boolean config value '%s' for '%s'"
msgstr "felaktigt booleskt konfigurationsvärde \"%s\" för \"%s\""
-#: config.c:1259
+#: config.c:1443
#, c-format
msgid "failed to expand user dir in: '%s'"
msgstr "misslyckades expandera användarkatalog i: \"%s\""
-#: config.c:1268
+#: config.c:1452
#, c-format
msgid "'%s' for '%s' is not a valid timestamp"
msgstr "\"%s\" för \"%s\" är inte en giltig tidsstämpel"
-#: config.c:1361
+#: config.c:1545
#, c-format
msgid "abbrev length out of range: %d"
msgstr "förkortningslängd utanför intervallet: %d"
-#: config.c:1375 config.c:1386
+#: config.c:1559 config.c:1570
#, c-format
msgid "bad zlib compression level %d"
msgstr "felaktigt zlib-komprimeringsgrad %d"
-#: config.c:1476
+#: config.c:1660
msgid "core.commentChar should only be one character"
msgstr "core.commentChar kan bara vara ett tecken"
-#: config.c:1509
+#: config.c:1692
+#, c-format
+msgid "ignoring unknown core.fsyncMethod value '%s'"
+msgstr "ignorerar okänt core.fsyncMethod-värde \"%s\""
+
+#: config.c:1698
+msgid "core.fsyncObjectFiles is deprecated; use core.fsync instead"
+msgstr "core.fsyncObjectFiles avråds från; använd core.fsync istället"
+
+#: config.c:1714
#, c-format
msgid "invalid mode for object creation: %s"
msgstr "felaktigt läge för skapande av objekt: %s"
-#: config.c:1584
+#: config.c:1800
#, c-format
msgid "malformed value for %s"
msgstr "felformat värde för %s"
-#: config.c:1610
+#: config.c:1826
#, c-format
msgid "malformed value for %s: %s"
msgstr "felformat värde för %s: %s"
-#: config.c:1611
+#: config.c:1827
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:1672 builtin/pack-objects.c:4053
+#: config.c:1888 builtin/pack-objects.c:4078
#, c-format
msgid "bad pack compression level %d"
msgstr "felaktig paketkomprimeringsgrad %d"
-#: config.c:1795
+#: config.c:2014
#, c-format
msgid "unable to load config blob object '%s'"
msgstr "kunde inte läsa konfigurerings-blobobjektet \"%s\""
-#: config.c:1798
+#: config.c:2017
#, c-format
msgid "reference '%s' does not point to a blob"
msgstr "referensen \"%s\" pekar inte på en blob"
-#: config.c:1816
+#: config.c:2035
#, c-format
msgid "unable to resolve config blob '%s'"
msgstr "kan inte slå upp konfigurerings-bloben \"%s\""
-#: config.c:1861
+#: config.c:2080
#, c-format
msgid "failed to parse %s"
msgstr "kunde inte tolka %s"
-#: config.c:1917
+#: config.c:2136
msgid "unable to parse command-line config"
msgstr "kan inte tolka kommandoradskonfiguration"
-#: config.c:2285
+#: config.c:2512
msgid "unknown error occurred while reading the configuration files"
msgstr "okänt fel uppstod vid läsning av konfigurationsfilerna"
-#: config.c:2459
+#: config.c:2686
#, c-format
msgid "Invalid %s: '%s'"
msgstr "Felaktigt %s: \"%s\""
-#: config.c:2504
+#: config.c:2731
#, c-format
msgid "splitIndex.maxPercentChange value '%d' should be between 0 and 100"
msgstr ""
"värdet \"%d\" för splitIndex.maxPercentChange borde vara mellan 0 och 100"
-#: config.c:2550
+#: config.c:2763
#, c-format
msgid "unable to parse '%s' from command-line config"
msgstr "kunde inte tolka värdet \"%s\" från kommandoradskonfiguration"
-#: config.c:2552
+#: config.c:2765
#, c-format
msgid "bad config variable '%s' in file '%s' at line %d"
msgstr "felaktig konfigurationsvariabel \"%s\" i filen \"%s\" på rad %d"
-#: config.c:2637
+#: config.c:2850
#, c-format
msgid "invalid section name '%s'"
msgstr "felaktigt sektionsnamn \"%s\""
-#: config.c:2669
+#: config.c:2882
#, c-format
msgid "%s has multiple values"
msgstr "%s har flera värden"
-#: config.c:2698
+#: config.c:2911
#, c-format
msgid "failed to write new configuration file %s"
msgstr "kan inte skriva nya konfigurationsfilen \"%s\""
-#: config.c:2950 config.c:3277
+#: config.c:3177 config.c:3518
#, c-format
msgid "could not lock config file %s"
msgstr "kunde inte låsa konfigurationsfilen %s"
-#: config.c:2961
+#: config.c:3188
#, c-format
msgid "opening %s"
msgstr "öppnar %s"
-#: config.c:2998 builtin/config.c:361
+#: config.c:3225 builtin/config.c:361
#, c-format
msgid "invalid pattern: %s"
msgstr "ogiltigt mönster: %s"
-#: config.c:3023
+#: config.c:3250
#, c-format
msgid "invalid config file %s"
msgstr "ogiltig konfigurationsfil: \"%s\""
-#: config.c:3036 config.c:3290
+#: config.c:3263 config.c:3531
#, c-format
msgid "fstat on %s failed"
msgstr "fstat misslyckades på %s"
-#: config.c:3047
+#: config.c:3274
#, c-format
msgid "unable to mmap '%s'%s"
msgstr "kunde inte utföra mmap på \"%s\"%s"
-#: config.c:3057 config.c:3295
+#: config.c:3284 config.c:3536
#, c-format
msgid "chmod on %s failed"
msgstr "chmod misslyckades på %s"
-#: config.c:3142 config.c:3392
+#: config.c:3369 config.c:3633
#, c-format
msgid "could not write config file %s"
msgstr "kunde inte skriva konfigurationsfilen %s"
-#: config.c:3176
+#: config.c:3403
#, c-format
msgid "could not set '%s' to '%s'"
msgstr "kunde inte ställa in \"%s\" till \"%s\""
-#: config.c:3178 builtin/remote.c:662 builtin/remote.c:860 builtin/remote.c:868
+#: config.c:3405 builtin/remote.c:666 builtin/remote.c:885 builtin/remote.c:893
#, c-format
msgid "could not unset '%s'"
msgstr "kunde inte ta bort inställning för \"%s\""
-#: config.c:3268
+#: config.c:3509
#, c-format
msgid "invalid section name: %s"
msgstr "felaktigt namn på stycke: %s"
-#: config.c:3435
+#: config.c:3676
#, c-format
msgid "missing value for '%s'"
msgstr "värde saknas för \"%s\""
@@ -3159,68 +3250,68 @@ msgstr "vägrar arbeta med inloggningsuppgifter utan värdfält"
msgid "refusing to work with credential missing protocol field"
msgstr "vägrar arbeta med inloggningsuppgifter utan protokollfält"
-#: credential.c:395
+#: credential.c:396
#, c-format
msgid "url contains a newline in its %s component: %s"
msgstr "url innehåller radbrytning i komponenten %s: %s"
-#: credential.c:439
+#: credential.c:440
#, c-format
msgid "url has no scheme: %s"
msgstr "url saknar protokoll: %s"
-#: credential.c:512
+#: credential.c:513
#, c-format
msgid "credential url cannot be parsed: %s"
msgstr "kan inte tolka url för inloggingsuppgifter: %s"
-#: date.c:138
+#: date.c:139
msgid "in the future"
msgstr "i framtiden"
-#: date.c:144
+#: date.c:145
#, c-format
msgid "%<PRIuMAX> second ago"
msgid_plural "%<PRIuMAX> seconds ago"
msgstr[0] "%<PRIuMAX> sekund sedan"
msgstr[1] "%<PRIuMAX> sekunder sedan"
-#: date.c:151
+#: date.c:152
#, c-format
msgid "%<PRIuMAX> minute ago"
msgid_plural "%<PRIuMAX> minutes ago"
msgstr[0] "%<PRIuMAX> minut sedan"
msgstr[1] "%<PRIuMAX> minuter sedan"
-#: date.c:158
+#: date.c:159
#, c-format
msgid "%<PRIuMAX> hour ago"
msgid_plural "%<PRIuMAX> hours ago"
msgstr[0] "%<PRIuMAX> timme sedan"
msgstr[1] "%<PRIuMAX> timmar sedan"
-#: date.c:165
+#: date.c:166
#, c-format
msgid "%<PRIuMAX> day ago"
msgid_plural "%<PRIuMAX> days ago"
msgstr[0] "%<PRIuMAX> dag sedan"
msgstr[1] "%<PRIuMAX> dagar sedan"
-#: date.c:171
+#: date.c:172
#, c-format
msgid "%<PRIuMAX> week ago"
msgid_plural "%<PRIuMAX> weeks ago"
msgstr[0] "%<PRIuMAX> vecka sedan"
msgstr[1] "%<PRIuMAX> veckor sedan"
-#: date.c:178
+#: date.c:179
#, c-format
msgid "%<PRIuMAX> month ago"
msgid_plural "%<PRIuMAX> months ago"
msgstr[0] "%<PRIuMAX> månad sedan"
msgstr[1] "%<PRIuMAX> månader sedan"
-#: date.c:189
+#: date.c:190
#, c-format
msgid "%<PRIuMAX> year"
msgid_plural "%<PRIuMAX> years"
@@ -3228,14 +3319,14 @@ msgstr[0] "%<PRIuMAX> år"
msgstr[1] "%<PRIuMAX> år"
#. TRANSLATORS: "%s" is "<n> years"
-#: date.c:192
+#: date.c:193
#, c-format
msgid "%s, %<PRIuMAX> month ago"
msgid_plural "%s, %<PRIuMAX> months ago"
msgstr[0] "%s, %<PRIuMAX> månad sedan"
msgstr[1] "%s, %<PRIuMAX> månader sedan"
-#: date.c:197 date.c:202
+#: date.c:198 date.c:203
#, c-format
msgid "%<PRIuMAX> year ago"
msgid_plural "%<PRIuMAX> years ago"
@@ -3266,10 +3357,14 @@ msgstr "ö-regex från konfiguration har för många fångstgrupper (max=%d)"
msgid "Marked %d islands, done.\n"
msgstr "Markerade %d öar, klar.\n"
-#: diff-merges.c:70
+#: diff-merges.c:81 gpg-interface.c:719 gpg-interface.c:734 ls-refs.c:37
+#: parallel-checkout.c:42 sequencer.c:2805 setup.c:563 builtin/am.c:203
+#: builtin/am.c:2243 builtin/am.c:2287 builtin/blame.c:724 builtin/blame.c:742
+#: builtin/fetch.c:792 builtin/pack-objects.c:3515 builtin/pull.c:45
+#: builtin/pull.c:47 builtin/pull.c:321
#, c-format
-msgid "unknown value for --diff-merges: %s"
-msgstr "okänt värde för --diff-merges: %s"
+msgid "invalid value for '%s': '%s'"
+msgstr "felaktigt värde för \"%s\": \"%s\""
#: diff-lib.c:561
msgid "--merge-base does not work with ranges"
@@ -3303,17 +3398,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:158
+#: diff.c:159
#, c-format
msgid " Failed to parse dirstat cut-off percentage '%s'\n"
msgstr " Misslyckades tolka dirstat-avskärningsprocentandel \"%s\"\n"
-#: diff.c:163
+#: diff.c:164
#, c-format
msgid " Unknown dirstat parameter '%s'\n"
msgstr " Okänd dirstat-parameter \"%s\"\n"
-#: diff.c:299
+#: diff.c:300
msgid ""
"color moved setting must be one of 'no', 'default', 'blocks', 'zebra', "
"'dimmed-zebra', 'plain'"
@@ -3321,7 +3416,7 @@ msgstr ""
"färginställningen för flyttade block måste vara en av \"no\", \"default\", "
"\"blocks\", \"zebra\", \"dimmed-zebra\", \"plain\""
-#: diff.c:327
+#: diff.c:328
#, c-format
msgid ""
"unknown color-moved-ws mode '%s', possible values are 'ignore-space-change', "
@@ -3331,7 +3426,7 @@ msgstr ""
"\", \"ignore-space-at-eol\", \"ignore-all-space\", \"allow-indentation-change"
"\""
-#: diff.c:335
+#: diff.c:336
msgid ""
"color-moved-ws: allow-indentation-change cannot be combined with other "
"whitespace modes"
@@ -3339,12 +3434,12 @@ msgstr ""
"color-moved-ws: allow-indentation-change kan inte kombineras med andra "
"blankstegslägen"
-#: diff.c:412
+#: diff.c:413
#, c-format
msgid "Unknown value for 'diff.submodule' config variable: '%s'"
msgstr "Okänt värde för konfigurationsvariabeln \"diff.submodule\": \"%s\""
-#: diff.c:472
+#: diff.c:473
#, c-format
msgid ""
"Found errors in 'diff.dirstat' config variable:\n"
@@ -3353,30 +3448,30 @@ msgstr ""
"Hittade fel i konfigurationsvariabeln \"diff.dirstat\":\n"
"%s"
-#: diff.c:4237
+#: diff.c:4282
#, c-format
msgid "external diff died, stopping at %s"
msgstr "extern diff dog, stannar vid %s"
-#: diff.c:4589
+#: diff.c:4677 parse-options.c:1114
#, c-format
msgid "options '%s', '%s', '%s', and '%s' cannot be used together"
msgstr ""
"flaggorna \"%s\", \"%s\", \"%s\" och \"%s\" kan inte användas samtidigt"
-#: diff.c:4593 builtin/difftool.c:736 builtin/log.c:1982 builtin/worktree.c:506
+#: diff.c:4681 parse-options.c:1118 builtin/worktree.c:578
#, c-format
msgid "options '%s', '%s', and '%s' cannot be used together"
msgstr "flaggorna \"%s\", \"%s\" och \"%s\" kan inte användas samtidigt"
-#: diff.c:4597
+#: diff.c:4685
#, c-format
msgid "options '%s' and '%s' cannot be used together, use '%s' with '%s'"
msgstr ""
"flaggorna \"%s\" och \"%s\" kan inte användas samtidigt, använd \"%s\" med "
"\"%s\""
-#: diff.c:4601
+#: diff.c:4689
#, c-format
msgid ""
"options '%s' and '%s' cannot be used together, use '%s' with '%s' and '%s'"
@@ -3384,22 +3479,22 @@ msgstr ""
"flaggorna \"%s\" och \"%s\" kan inte användas samtidigt, använd \"%s\" med "
"\"%s\" och \"%s\""
-#: diff.c:4681
+#: diff.c:4769
msgid "--follow requires exactly one pathspec"
msgstr "--follow kräver exakt en sökvägsangivelse"
-#: diff.c:4729
+#: diff.c:4823
#, c-format
msgid "invalid --stat value: %s"
msgstr "ogiltigt värde för --stat: %s"
-#: diff.c:4734 diff.c:4739 diff.c:4744 diff.c:4749 diff.c:5277
+#: diff.c:4828 diff.c:4833 diff.c:4838 diff.c:4843 diff.c:5319
#: parse-options.c:217 parse-options.c:221
#, c-format
msgid "%s expects a numerical value"
msgstr "%s förväntar ett numeriskt värde"
-#: diff.c:4766
+#: diff.c:4860
#, c-format
msgid ""
"Failed to parse --dirstat/-X option parameter:\n"
@@ -3408,42 +3503,42 @@ msgstr ""
"Misslyckades tolka argument till flaggan --dirstat/-X;\n"
"%s"
-#: diff.c:4851
+#: diff.c:4893
#, c-format
msgid "unknown change class '%c' in --diff-filter=%s"
msgstr "okänd ändringsklass \"%c\" i --diff-filter=%s"
-#: diff.c:4875
+#: diff.c:4917
#, c-format
msgid "unknown value after ws-error-highlight=%.*s"
msgstr "okänt värde efter ws-error-highlight=%.*s"
-#: diff.c:4889
+#: diff.c:4931
#, c-format
msgid "unable to resolve '%s'"
msgstr "kunde inte slå upp \"%s\""
-#: diff.c:4939 diff.c:4945
+#: diff.c:4981 diff.c:4987
#, c-format
msgid "%s expects <n>/<m> form"
msgstr "%s förväntar formen <n>/<m>"
-#: diff.c:4957
+#: diff.c:4999
#, c-format
msgid "%s expects a character, got '%s'"
msgstr "%s förväntar ett tecken, fick \"%s\""
-#: diff.c:4978
+#: diff.c:5020
#, c-format
msgid "bad --color-moved argument: %s"
msgstr "felaktigt argument till --color-moved: %s"
-#: diff.c:4997
+#: diff.c:5039
#, c-format
msgid "invalid mode '%s' in --color-moved-ws"
msgstr "ogiltigt läge %s\" i --color-moved-ws"
-#: diff.c:5037
+#: diff.c:5079
msgid ""
"option diff-algorithm accepts \"myers\", \"minimal\", \"patience\" and "
"\"histogram\""
@@ -3451,154 +3546,154 @@ msgstr ""
"flaggan diff-algorithm godtar\"myers\", \"minimal\", \"patience\" och "
"\"histogram\""
-#: diff.c:5073 diff.c:5093
+#: diff.c:5115 diff.c:5135
#, c-format
msgid "invalid argument to %s"
msgstr "ogiltigt argument för %s"
-#: diff.c:5197
+#: diff.c:5239
#, c-format
msgid "invalid regex given to -I: '%s'"
msgstr "ogiltigt reguljärt uttryck angavs för -I: \"%s\""
-#: diff.c:5246
+#: diff.c:5288
#, c-format
msgid "failed to parse --submodule option parameter: '%s'"
msgstr "misslyckades tolka argument till flaggan --submodule: \"%s\""
-#: diff.c:5302
+#: diff.c:5344
#, c-format
msgid "bad --word-diff argument: %s"
msgstr "felaktigt argument --word-diff: %s"
-#: diff.c:5338
+#: diff.c:5380
msgid "Diff output format options"
msgstr "Formatflaggor för diff-utdata"
-#: diff.c:5340 diff.c:5346
+#: diff.c:5382 diff.c:5388
msgid "generate patch"
msgstr "skapar patch"
-#: diff.c:5343 builtin/log.c:179
+#: diff.c:5385 builtin/log.c:180
msgid "suppress diff output"
msgstr "undertryck diff-utdata"
-#: diff.c:5348 diff.c:5462 diff.c:5469
+#: diff.c:5390 diff.c:5504 diff.c:5511
msgid "<n>"
msgstr "<n>"
-#: diff.c:5349 diff.c:5352
+#: diff.c:5391 diff.c:5394
msgid "generate diffs with <n> lines context"
msgstr "skapa diffar med <n> rader sammanhang"
-#: diff.c:5354
+#: diff.c:5396
msgid "generate the diff in raw format"
msgstr "generera diff i råformat"
-#: diff.c:5357
+#: diff.c:5399
msgid "synonym for '-p --raw'"
msgstr "synonym till \"-p --raw\""
-#: diff.c:5361
+#: diff.c:5403
msgid "synonym for '-p --stat'"
msgstr "synonym till \"-p --stat\""
-#: diff.c:5365
+#: diff.c:5407
msgid "machine friendly --stat"
msgstr "maskinläsbar --stat"
-#: diff.c:5368
+#: diff.c:5410
msgid "output only the last line of --stat"
msgstr "skriv bara ut den sista raden för --stat"
-#: diff.c:5370 diff.c:5378
+#: diff.c:5412 diff.c:5420
msgid "<param1,param2>..."
msgstr "<param1,param2>..."
-#: diff.c:5371
+#: diff.c:5413
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:5375
+#: diff.c:5417
msgid "synonym for --dirstat=cumulative"
msgstr "synonym för --dirstat=cumulative"
-#: diff.c:5379
+#: diff.c:5421
msgid "synonym for --dirstat=files,param1,param2..."
msgstr "synonym för --dirstat=filer,param1,param2..."
-#: diff.c:5383
+#: diff.c:5425
msgid "warn if changes introduce conflict markers or whitespace errors"
msgstr "varna om ändringar introducerar konfliktmarkörer eller blankstegsfel"
-#: diff.c:5386
+#: diff.c:5428
msgid "condensed summary such as creations, renames and mode changes"
msgstr "kortfattad summering såsom skapade, namnbyten och ändrade lägen"
-#: diff.c:5389
+#: diff.c:5431
msgid "show only names of changed files"
msgstr "visa endast namnen på ändrade filer"
-#: diff.c:5392
+#: diff.c:5434
msgid "show only names and status of changed files"
msgstr "visa endast namn och status för ändrade filer"
-#: diff.c:5394
+#: diff.c:5436
msgid "<width>[,<name-width>[,<count>]]"
msgstr "<bredd>[,<namn-bredd>[,<antal>]]"
-#: diff.c:5395
+#: diff.c:5437
msgid "generate diffstat"
msgstr "skapa diffstat"
-#: diff.c:5397 diff.c:5400 diff.c:5403
+#: diff.c:5439 diff.c:5442 diff.c:5445
msgid "<width>"
msgstr "<bredd>"
-#: diff.c:5398
+#: diff.c:5440
msgid "generate diffstat with a given width"
msgstr "generera en diffstat med given bredd"
-#: diff.c:5401
+#: diff.c:5443
msgid "generate diffstat with a given name width"
msgstr "generera en diffstat med given namnbredd"
-#: diff.c:5404
+#: diff.c:5446
msgid "generate diffstat with a given graph width"
msgstr "generera en diffstat med given grafbredd"
-#: diff.c:5406
+#: diff.c:5448
msgid "<count>"
msgstr "<antal>"
-#: diff.c:5407
+#: diff.c:5449
msgid "generate diffstat with limited lines"
msgstr "generera diffstat med begränsade rader"
-#: diff.c:5410
+#: diff.c:5452
msgid "generate compact summary in diffstat"
msgstr "skapa kompakt översikt i diffstat"
-#: diff.c:5413
+#: diff.c:5455
msgid "output a binary diff that can be applied"
msgstr "skapa en binärdiff som kan appliceras"
-#: diff.c:5416
+#: diff.c:5458
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:5418
+#: diff.c:5460
msgid "show colored diff"
msgstr "visa färgad diff"
-#: diff.c:5419
+#: diff.c:5461
msgid "<kind>"
msgstr "<typ>"
-#: diff.c:5420
+#: diff.c:5462
msgid ""
"highlight whitespace errors in the 'context', 'old' or 'new' lines in the "
"diff"
@@ -3606,7 +3701,7 @@ msgstr ""
"ljusmarkera blankstegsfel i \"context\" (sammanhang), \"old\" (gamla) eller "
"\"new\" (nya) rader i diffen"
-#: diff.c:5423
+#: diff.c:5465
msgid ""
"do not munge pathnames and use NULs as output field terminators in --raw or "
"--numstat"
@@ -3614,87 +3709,87 @@ msgstr ""
"skriv inte om sökvägsnamn och använd NUL-tecken som fältseparerare i --raw "
"eller --numstat"
-#: diff.c:5426 diff.c:5429 diff.c:5432 diff.c:5541
+#: diff.c:5468 diff.c:5471 diff.c:5474 diff.c:5583
msgid "<prefix>"
msgstr "<prefix>"
-#: diff.c:5427
+#: diff.c:5469
msgid "show the given source prefix instead of \"a/\""
msgstr "visa givet källprefix istället för \"a/\""
-#: diff.c:5430
+#: diff.c:5472
msgid "show the given destination prefix instead of \"b/\""
msgstr "visa givet målprefix istället för \"b/\""
-#: diff.c:5433
+#: diff.c:5475
msgid "prepend an additional prefix to every line of output"
msgstr "lägg till ytterligare prefix på alla rader i utdata"
-#: diff.c:5436
+#: diff.c:5478
msgid "do not show any source or destination prefix"
msgstr "visa inte käll- eller målprefix"
-#: diff.c:5439
+#: diff.c:5481
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:5443 diff.c:5448 diff.c:5453
+#: diff.c:5485 diff.c:5490 diff.c:5495
msgid "<char>"
msgstr "<tecken>"
-#: diff.c:5444
+#: diff.c:5486
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:5449
+#: diff.c:5491
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:5454
+#: diff.c:5496
msgid "specify the character to indicate a context instead of ' '"
msgstr "ange tecken för att ange sammanhang istället för \" \""
-#: diff.c:5457
+#: diff.c:5499
msgid "Diff rename options"
msgstr "Diff-namnbytesflaggor"
-#: diff.c:5458
+#: diff.c:5500
msgid "<n>[/<m>]"
msgstr "<n>[/<m>]"
-#: diff.c:5459
+#: diff.c:5501
msgid "break complete rewrite changes into pairs of delete and create"
msgstr "dela upp kompletta omskrivningar till ta bort och skapa-par"
-#: diff.c:5463
+#: diff.c:5505
msgid "detect renames"
msgstr "detektera namnändringar"
-#: diff.c:5467
+#: diff.c:5509
msgid "omit the preimage for deletes"
msgstr "ta bort för-version för borttagningar"
-#: diff.c:5470
+#: diff.c:5512
msgid "detect copies"
msgstr "detektera kopior"
-#: diff.c:5474
+#: diff.c:5516
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:5476
+#: diff.c:5518
msgid "disable rename detection"
msgstr "inaktivera detektering av namnbyten"
-#: diff.c:5479
+#: diff.c:5521
msgid "use empty blobs as rename source"
msgstr "använd tomma blob:ar som namnändringskälla"
-#: diff.c:5481
+#: diff.c:5523
msgid "continue listing the history of a file beyond renames"
msgstr "fortsätt lista historiken för en fil bortom namnändringar"
-#: diff.c:5484
+#: diff.c:5526
msgid ""
"prevent rename/copy detection if the number of rename/copy targets exceeds "
"given limit"
@@ -3702,163 +3797,163 @@ msgstr ""
"förhindra namnbyte/kopie-detektering om antalet namnbyten/kopior överskriver "
"given gräns"
-#: diff.c:5486
+#: diff.c:5528
msgid "Diff algorithm options"
msgstr "Alternativ för diff-algoritm"
-#: diff.c:5488
+#: diff.c:5530
msgid "produce the smallest possible diff"
msgstr "skapa minsta möjliga diff"
-#: diff.c:5491
+#: diff.c:5533
msgid "ignore whitespace when comparing lines"
msgstr "ignorera blanktecken vid radjämförelse"
-#: diff.c:5494
+#: diff.c:5536
msgid "ignore changes in amount of whitespace"
msgstr "ignorera ändringar i antal blanktecken vid radjämförelse"
-#: diff.c:5497
+#: diff.c:5539
msgid "ignore changes in whitespace at EOL"
msgstr "ignorera blanktecken vid radslut"
-#: diff.c:5500
+#: diff.c:5542
msgid "ignore carrier-return at the end of line"
msgstr "ignorera CR-tecken vid radslut"
-#: diff.c:5503
+#: diff.c:5545
msgid "ignore changes whose lines are all blank"
msgstr "ignorera ändringar i rader som är helt blanka"
-#: diff.c:5505 diff.c:5527 diff.c:5530 diff.c:5575
+#: diff.c:5547 diff.c:5569 diff.c:5572 diff.c:5617
msgid "<regex>"
msgstr "<reguttr>"
-#: diff.c:5506
+#: diff.c:5548
msgid "ignore changes whose all lines match <regex>"
msgstr "ignorera ändringar där samtliga rader motsvarar <reguttr>"
-#: diff.c:5509
+#: diff.c:5551
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:5512
+#: diff.c:5554
msgid "generate diff using the \"patience diff\" algorithm"
msgstr "skapa diffar med algoritmen \"patience diff\""
-#: diff.c:5516
+#: diff.c:5558
msgid "generate diff using the \"histogram diff\" algorithm"
msgstr "skapa diffar med algoritmen \"histogram diff\""
-#: diff.c:5518
+#: diff.c:5560
msgid "<algorithm>"
msgstr "<algoritm>"
-#: diff.c:5519
+#: diff.c:5561
msgid "choose a diff algorithm"
msgstr "välj en diff-algoritm"
-#: diff.c:5521
+#: diff.c:5563
msgid "<text>"
msgstr "<text>"
-#: diff.c:5522
+#: diff.c:5564
msgid "generate diff using the \"anchored diff\" algorithm"
msgstr "skapa diffar med algoritmen \"anchored diff\""
-#: diff.c:5524 diff.c:5533 diff.c:5536
+#: diff.c:5566 diff.c:5575 diff.c:5578
msgid "<mode>"
msgstr "<läge>"
-#: diff.c:5525
+#: diff.c:5567
msgid "show word diff, using <mode> to delimit changed words"
msgstr "visa orddiff, där <läge> avgränsar ändrade ord"
-#: diff.c:5528
+#: diff.c:5570
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:5531
+#: diff.c:5573
msgid "equivalent to --word-diff=color --word-diff-regex=<regex>"
msgstr "motsvarar --word-diff=color --word-diff-regex=<reguttr>"
-#: diff.c:5534
+#: diff.c:5576
msgid "moved lines of code are colored differently"
msgstr "flyttade kodrader färgas på annat sätt"
-#: diff.c:5537
+#: diff.c:5579
msgid "how white spaces are ignored in --color-moved"
msgstr "hur blanktecken ignoreras i --color-moved"
-#: diff.c:5540
+#: diff.c:5582
msgid "Other diff options"
msgstr "Andra diff-flaggor"
-#: diff.c:5542
+#: diff.c:5584
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:5546
+#: diff.c:5588
msgid "treat all files as text"
msgstr "hantera alla filer som text"
-#: diff.c:5548
+#: diff.c:5590
msgid "swap two inputs, reverse the diff"
msgstr "växla två indatafiler, vänd diffen"
-#: diff.c:5550
+#: diff.c:5592
msgid "exit with 1 if there were differences, 0 otherwise"
msgstr "avsluta med 1 vid ändringar, annars 0"
-#: diff.c:5552
+#: diff.c:5594
msgid "disable all output of the program"
msgstr "slå av alla utdata från programmet"
-#: diff.c:5554
+#: diff.c:5596
msgid "allow an external diff helper to be executed"
msgstr "tillåt köra en extern diff-hjälpare"
-#: diff.c:5556
+#: diff.c:5598
msgid "run external text conversion filters when comparing binary files"
msgstr "kör externt textkonverteringsfiler när binärfiler jämförs"
-#: diff.c:5558
+#: diff.c:5600
msgid "<when>"
msgstr "<när>"
-#: diff.c:5559
+#: diff.c:5601
msgid "ignore changes to submodules in the diff generation"
msgstr "ignorera ändringar i undermoduler när diffen skapas"
-#: diff.c:5562
+#: diff.c:5604
msgid "<format>"
msgstr "<format>"
-#: diff.c:5563
+#: diff.c:5605
msgid "specify how differences in submodules are shown"
msgstr "ange hur ändringar i undermoduler visas"
-#: diff.c:5567
+#: diff.c:5609
msgid "hide 'git add -N' entries from the index"
msgstr "dölj \"git add -N\"-poster från indexet"
-#: diff.c:5570
+#: diff.c:5612
msgid "treat 'git add -N' entries as real in the index"
msgstr "tolka \"git add -N\"-poster som äkta i indexet"
-#: diff.c:5572
+#: diff.c:5614
msgid "<string>"
msgstr "<sträng>"
-#: diff.c:5573
+#: diff.c:5615
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:5576
+#: diff.c:5618
msgid ""
"look for differences that change the number of occurrences of the specified "
"regex"
@@ -3866,66 +3961,66 @@ msgstr ""
"se efter ändringar som ändrar antalet förekomster av angivet reguljärt "
"uttryck"
-#: diff.c:5579
+#: diff.c:5621
msgid "show all changes in the changeset with -S or -G"
msgstr "visa alla ändringar i ändringsuppsättningen med -S eller -G"
-#: diff.c:5582
+#: diff.c:5624
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:5585
+#: diff.c:5627
msgid "control the order in which files appear in the output"
msgstr "styr ordningen i vilken filer visas i utdata"
-#: diff.c:5586 diff.c:5589
+#: diff.c:5628 diff.c:5631
msgid "<path>"
msgstr "<sökväg>"
-#: diff.c:5587
+#: diff.c:5629
msgid "show the change in the specified path first"
msgstr "visa ändringen i angiven sökväg först"
-#: diff.c:5590
+#: diff.c:5632
msgid "skip the output to the specified path"
msgstr "hoppa över utdata fram till angiven sökväg"
-#: diff.c:5592
+#: diff.c:5634
msgid "<object-id>"
msgstr "<objekt-id>"
-#: diff.c:5593
+#: diff.c:5635
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:5595
+#: diff.c:5637
msgid "[(A|C|D|M|R|T|U|X|B)...[*]]"
msgstr "[(A|C|D|M|R|T|U|X|B)...[*]]"
-#: diff.c:5596
+#: diff.c:5638
msgid "select files by diff type"
msgstr "välj filter efter diff-typ"
-#: diff.c:5598
+#: diff.c:5640
msgid "<file>"
msgstr "<fil>"
-#: diff.c:5599
-msgid "Output to a specific file"
-msgstr "Skriv utdata till en specifik fil"
+#: diff.c:5641
+msgid "output to a specific file"
+msgstr "skriv utdata till en specifik fil"
-#: diff.c:6257
+#: diff.c:6321
msgid "exhaustive rename detection was skipped due to too many files."
msgstr ""
"uttömmande namnbytesdetektering hoppades över på grund av för många filer."
-#: diff.c:6260
+#: diff.c:6324
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:6263
+#: diff.c:6327
#, c-format
msgid ""
"you may want to set your %s variable to at least %d and retry the command."
@@ -3977,20 +4072,20 @@ msgstr "inaktiverar konmönstermatchning"
msgid "cannot use %s as an exclude file"
msgstr "kan inte använda %s som exkluderingsfil"
-#: dir.c:2418
+#: dir.c:2419
#, c-format
msgid "could not open directory '%s'"
msgstr "kunde inte öppna katalogen \"%s\""
-#: dir.c:2720
+#: dir.c:2721
msgid "failed to get kernel name and information"
msgstr "misslyckades hämta kärnans namn och information"
-#: dir.c:2844
+#: dir.c:2846
msgid "untracked cache is disabled on this system or location"
msgstr "ospårad cache är inaktiverad på systemet eller platsen"
-#: dir.c:3112
+#: dir.c:3119
msgid ""
"No directory name could be guessed.\n"
"Please specify a directory on the command line"
@@ -3998,17 +4093,17 @@ msgstr ""
"Kunde inte gissa katalognamn.\n"
"Ange en katalog på kommandoraden"
-#: dir.c:3800
+#: dir.c:3807
#, c-format
msgid "index file corrupt in repo %s"
msgstr "indexfilen trasig i arkivet %s"
-#: dir.c:3847 dir.c:3852
+#: dir.c:3854 dir.c:3859
#, c-format
msgid "could not create directories for %s"
msgstr "kunde inte skapa kataloger för %s"
-#: dir.c:3881
+#: dir.c:3888
#, c-format
msgid "could not migrate git directory from '%s' to '%s'"
msgstr "kunde inte migrera git-katalog från \"%s\" till \"%s\""
@@ -4027,7 +4122,7 @@ msgstr "Filtrerar innehåll"
msgid "could not stat file '%s'"
msgstr "kunde inte ta status på filen \"%s\""
-#: environment.c:145
+#: environment.c:147
#, c-format
msgid "bad git namespace path \"%s\""
msgstr "felaktig git-namnrymdssökväg \"%s\""
@@ -4058,248 +4153,275 @@ msgstr "git fetch-pack: förväntade ACK/NAK, fick \"%s\""
msgid "unable to write to remote"
msgstr "kunde inte skriva till fjärren"
-#: fetch-pack.c:395 fetch-pack.c:1439
+#: fetch-pack.c:397 fetch-pack.c:1460
#, c-format
msgid "invalid shallow line: %s"
msgstr "ogiltig \"shallow\"-rad: %s"
-#: fetch-pack.c:401 fetch-pack.c:1445
+#: fetch-pack.c:403 fetch-pack.c:1466
#, c-format
msgid "invalid unshallow line: %s"
msgstr "ogiltig \"unshallow\"-rad: %s"
-#: fetch-pack.c:403 fetch-pack.c:1447
+#: fetch-pack.c:405 fetch-pack.c:1468
#, c-format
msgid "object not found: %s"
msgstr "objektet hittades inte: %s"
-#: fetch-pack.c:406 fetch-pack.c:1450
+#: fetch-pack.c:408 fetch-pack.c:1471
#, c-format
msgid "error in object: %s"
msgstr "fel i objekt: %s"
-#: fetch-pack.c:408 fetch-pack.c:1452
+#: fetch-pack.c:410 fetch-pack.c:1473
#, c-format
msgid "no shallow found: %s"
msgstr "ingen \"shallow\" hittades: %s"
-#: fetch-pack.c:411 fetch-pack.c:1456
+#: fetch-pack.c:413 fetch-pack.c:1477
#, c-format
msgid "expected shallow/unshallow, got %s"
msgstr "förväntade shallow/unshallow, fick %s"
-#: fetch-pack.c:451
+#: fetch-pack.c:453
#, c-format
msgid "got %s %d %s"
msgstr "fick %s %d %s"
-#: fetch-pack.c:468
+#: fetch-pack.c:470
#, c-format
msgid "invalid commit %s"
msgstr "ogiltig incheckning %s"
-#: fetch-pack.c:499
+#: fetch-pack.c:501
msgid "giving up"
msgstr "ger upp"
-#: fetch-pack.c:512 progress.c:339
+#: fetch-pack.c:514 progress.h:25
msgid "done"
msgstr "klart"
-#: fetch-pack.c:524
+#: fetch-pack.c:526
#, c-format
msgid "got %s (%d) %s"
msgstr "fick %s (%d) %s"
-#: fetch-pack.c:560
+#: fetch-pack.c:562
#, c-format
msgid "Marking %s as complete"
msgstr "Markerar %s som komplett"
-#: fetch-pack.c:775
+#: fetch-pack.c:784
#, c-format
msgid "already have %s (%s)"
msgstr "har redan %s (%s)"
-#: fetch-pack.c:861
+#: fetch-pack.c:870
msgid "fetch-pack: unable to fork off sideband demultiplexer"
msgstr "fetch-patch: kunde inte grena av sidbandsmultiplexare"
-#: fetch-pack.c:869
+#: fetch-pack.c:878
msgid "protocol error: bad pack header"
msgstr "protokollfel: felaktigt packhuvud"
-#: fetch-pack.c:965
+#: fetch-pack.c:974
#, c-format
msgid "fetch-pack: unable to fork off %s"
msgstr "fetch-patch: kunde inte grena av %s"
-#: fetch-pack.c:971
+#: fetch-pack.c:980
msgid "fetch-pack: invalid index-pack output"
msgstr "fetch-patch: ogiltig utdata från index-pack"
-#: fetch-pack.c:988
+#: fetch-pack.c:997
#, c-format
msgid "%s failed"
msgstr "%s misslyckades"
-#: fetch-pack.c:990
+#: fetch-pack.c:999
msgid "error in sideband demultiplexer"
msgstr "fel i sidbands-avmultiplexare"
-#: fetch-pack.c:1035
+#: fetch-pack.c:1048
#, c-format
msgid "Server version is %.*s"
msgstr "Serverversionen är %.*s"
-#: fetch-pack.c:1043 fetch-pack.c:1049 fetch-pack.c:1052 fetch-pack.c:1058
-#: fetch-pack.c:1062 fetch-pack.c:1066 fetch-pack.c:1070 fetch-pack.c:1074
-#: fetch-pack.c:1078 fetch-pack.c:1082 fetch-pack.c:1086 fetch-pack.c:1090
-#: fetch-pack.c:1096 fetch-pack.c:1102 fetch-pack.c:1107 fetch-pack.c:1112
+#: fetch-pack.c:1056 fetch-pack.c:1062 fetch-pack.c:1065 fetch-pack.c:1071
+#: fetch-pack.c:1075 fetch-pack.c:1079 fetch-pack.c:1083 fetch-pack.c:1087
+#: fetch-pack.c:1091 fetch-pack.c:1095 fetch-pack.c:1099 fetch-pack.c:1103
+#: fetch-pack.c:1109 fetch-pack.c:1115 fetch-pack.c:1120 fetch-pack.c:1125
#, c-format
msgid "Server supports %s"
msgstr "Servern stöder %s"
-#: fetch-pack.c:1045
+#: fetch-pack.c:1058
msgid "Server does not support shallow clients"
msgstr "Servern stöder inte klienter med grunda arkiv"
-#: fetch-pack.c:1105
+#: fetch-pack.c:1118
msgid "Server does not support --shallow-since"
msgstr "Servern stöder inte --shallow-since"
-#: fetch-pack.c:1110
+#: fetch-pack.c:1123
msgid "Server does not support --shallow-exclude"
msgstr "Servern stöder inte --shallow-exclude"
-#: fetch-pack.c:1114
+#: fetch-pack.c:1127
msgid "Server does not support --deepen"
msgstr "Servern stöder inte --deepen"
-#: fetch-pack.c:1116
+#: fetch-pack.c:1129
msgid "Server does not support this repository's object format"
msgstr "Servern stöder inte det här arkivets objektformat"
-#: fetch-pack.c:1129
+#: fetch-pack.c:1142
msgid "no common commits"
msgstr "inga gemensamma incheckningar"
-#: fetch-pack.c:1138 fetch-pack.c:1485 builtin/clone.c:1130
+#: fetch-pack.c:1151 fetch-pack.c:1506 builtin/clone.c:1166
msgid "source repository is shallow, reject to clone."
msgstr "källarkivet är grunt, tillåter inte kloning."
-#: fetch-pack.c:1144 fetch-pack.c:1681
+#: fetch-pack.c:1157 fetch-pack.c:1705
msgid "git fetch-pack: fetch failed."
msgstr "git fetch-pack: hämtning misslyckades."
-#: fetch-pack.c:1258
+#: fetch-pack.c:1271
#, c-format
msgid "mismatched algorithms: client %s; server %s"
msgstr "omaka algoritmer: klient %s; server %s"
-#: fetch-pack.c:1262
+#: fetch-pack.c:1275
#, c-format
msgid "the server does not support algorithm '%s'"
msgstr "servern stöder inte algoritmen \"%s\""
-#: fetch-pack.c:1295
+#: fetch-pack.c:1308
msgid "Server does not support shallow requests"
msgstr "Servern stöder inte grunda förfrågningar"
-#: fetch-pack.c:1302
+#: fetch-pack.c:1315
msgid "Server supports filter"
msgstr "Servern stöder filter"
-#: fetch-pack.c:1345 fetch-pack.c:2063
+#: fetch-pack.c:1358 fetch-pack.c:2087
msgid "unable to write request to remote"
msgstr "kunde inte skriva anrop till fjärren"
-#: fetch-pack.c:1363
+#: fetch-pack.c:1376
#, c-format
msgid "error reading section header '%s'"
msgstr "fel vid läsning av styckehuvudet \"%s\""
-#: fetch-pack.c:1369
+#: fetch-pack.c:1382
#, c-format
msgid "expected '%s', received '%s'"
msgstr "förväntade \"%s\", tog emot \"%s\""
-#: fetch-pack.c:1403
+#: fetch-pack.c:1416
#, c-format
msgid "unexpected acknowledgment line: '%s'"
msgstr "oväntad bekräftelserad: \"%s\""
-#: fetch-pack.c:1408
+#: fetch-pack.c:1421
#, c-format
msgid "error processing acks: %d"
msgstr "fel vid hantering av bekräftelser: %d"
-#: fetch-pack.c:1418
-msgid "expected packfile to be sent after 'ready'"
-msgstr "väntade att paketfil skulle sändas efter \"ready\""
+#. TRANSLATORS: The parameter will be 'ready', a protocol
+#. keyword.
+#.
+#: fetch-pack.c:1435
+#, c-format
+msgid "expected packfile to be sent after '%s'"
+msgstr "väntade att paketfil skulle sändas efter \"%s\""
-#: fetch-pack.c:1420
-msgid "expected no other sections to be sent after no 'ready'"
+#. TRANSLATORS: The parameter will be 'ready', a protocol
+#. keyword.
+#.
+#: fetch-pack.c:1441
+#, c-format
+msgid "expected no other sections to be sent after no '%s'"
msgstr ""
-"väntade inte att några ytterligare sektioner skulle sändas efter \"ready\""
+"väntade inte att några ytterligare sektioner skulle sändas efter \"%s\""
-#: fetch-pack.c:1461
+#: fetch-pack.c:1482
#, c-format
msgid "error processing shallow info: %d"
msgstr "fel vid hantering av grund (\"shallow\") info: %d"
-#: fetch-pack.c:1510
+#: fetch-pack.c:1531
#, c-format
msgid "expected wanted-ref, got '%s'"
msgstr "förväntade wanted-ref, fick %s"
-#: fetch-pack.c:1515
+#: fetch-pack.c:1536
#, c-format
msgid "unexpected wanted-ref: '%s'"
msgstr "oväntad wanted-ref: \"%s\""
-#: fetch-pack.c:1520
+#: fetch-pack.c:1541
#, c-format
msgid "error processing wanted refs: %d"
msgstr "fel vid hantering av önskade referenser: %d"
-#: fetch-pack.c:1550
+#: fetch-pack.c:1571
msgid "git fetch-pack: expected response end packet"
msgstr "git fetch-pack: förväntade svarsavslutningspaket"
-#: fetch-pack.c:1959
+#: fetch-pack.c:1983
msgid "no matching remote head"
msgstr "inget motsvarande fjärrhuvud"
-#: fetch-pack.c:1982 builtin/clone.c:581
+#: fetch-pack.c:2006 builtin/clone.c:587
msgid "remote did not send all necessary objects"
msgstr "fjärren sände inte alla nödvändiga objekt"
-#: fetch-pack.c:2085
+#: fetch-pack.c:2109
msgid "unexpected 'ready' from remote"
msgstr "oväntat \"ready\" från fjärr"
-#: fetch-pack.c:2108
+#: fetch-pack.c:2132
#, c-format
msgid "no such remote ref %s"
msgstr "ingen sådan fjärreferens: %s"
-#: fetch-pack.c:2111
+#: fetch-pack.c:2135
#, 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"
-#: gpg-interface.c:329 gpg-interface.c:457 gpg-interface.c:974
-#: gpg-interface.c:990
+#: fsmonitor-ipc.c:119
+#, c-format
+msgid "fsmonitor_ipc__send_query: invalid path '%s'"
+msgstr "fsmonitor_ipc__send_query: ogilitg sökväg \"%s\""
+
+#: fsmonitor-ipc.c:125
+#, c-format
+msgid "fsmonitor_ipc__send_query: unspecified error on '%s'"
+msgstr "fsmonitor_ipc__send_query: ospecificerat fel på \"%s\""
+
+#: fsmonitor-ipc.c:155
+msgid "fsmonitor--daemon is not running"
+msgstr "fsmonitor--daemon kör inte"
+
+#: fsmonitor-ipc.c:164
+#, c-format
+msgid "could not send '%s' command to fsmonitor--daemon"
+msgstr "kunde inte sända kommandot \"%s\" till fsmonitor--daemon"
+
+#: gpg-interface.c:329 gpg-interface.c:456 gpg-interface.c:995
+#: gpg-interface.c:1011
msgid "could not create temporary file"
msgstr "kunde inte skapa temporära fil"
-#: gpg-interface.c:332 gpg-interface.c:460
+#: gpg-interface.c:332 gpg-interface.c:459
#, c-format
msgid "failed writing detached signature to '%s'"
msgstr "misslyckades skriva fristående signatur till \"%s\""
-#: gpg-interface.c:451
+#: gpg-interface.c:450
msgid ""
"gpg.ssh.allowedSignersFile needs to be configured and exist for ssh "
"signature verification"
@@ -4307,7 +4429,7 @@ msgstr ""
"gpg.ssh.allowedSignersFile måste ställas in och finnas för att bekräfta ssh-"
"signaturer"
-#: gpg-interface.c:480
+#: gpg-interface.c:479
msgid ""
"ssh-keygen -Y find-principals/verify is needed for ssh signature "
"verification (available in openssh version 8.2p1+)"
@@ -4315,56 +4437,56 @@ msgstr ""
"\"ssh-keygen -Y find-principals/verify\" behövs för att bekräfta ssh-"
"signaturer (tillgängligt i openssh version 8.2p1+)"
-#: gpg-interface.c:536
+#: gpg-interface.c:550
#, c-format
msgid "ssh signing revocation file configured but not found: %s"
msgstr "återkallningsfilen för ssh-signering inställd men saknas: %s"
-#: gpg-interface.c:624
+#: gpg-interface.c:638
#, c-format
msgid "bad/incompatible signature '%s'"
msgstr "felaktig/inkompatibel signatur \"%s\""
-#: gpg-interface.c:801 gpg-interface.c:806
+#: gpg-interface.c:815 gpg-interface.c:820
#, c-format
msgid "failed to get the ssh fingerprint for key '%s'"
msgstr "misslyckades hämta ssh-fingeravtrycket för nyckeln \"%s\""
-#: gpg-interface.c:829
+#: gpg-interface.c:843
msgid ""
"either user.signingkey or gpg.ssh.defaultKeyCommand needs to be configured"
msgstr ""
"måste konfigurera antingen user.signingkey eller gpg.ssh.defaultKeyCommand"
-#: gpg-interface.c:851
+#: gpg-interface.c:865
#, c-format
msgid "gpg.ssh.defaultKeyCommand succeeded but returned no keys: %s %s"
msgstr "gpg.ssh.defaultKeyCommand lyckades men gav inga nycklar: %s %s"
-#: gpg-interface.c:857
+#: gpg-interface.c:871
#, c-format
msgid "gpg.ssh.defaultKeyCommand failed: %s %s"
msgstr "gpg.ssh.defaultKeyCommand misslyckades: %s %s"
-#: gpg-interface.c:945
+#: gpg-interface.c:966
msgid "gpg failed to sign the data"
msgstr "gpg misslyckades signera data"
-#: gpg-interface.c:967
+#: gpg-interface.c:988
msgid "user.signingkey needs to be set for ssh signing"
msgstr "user.signingkey måste anges för ssh-signering"
-#: gpg-interface.c:978
+#: gpg-interface.c:999
#, c-format
msgid "failed writing ssh signing key to '%s'"
msgstr "misslyckades skriva ssh-signeringsnyckel till \"%s\""
-#: gpg-interface.c:996
+#: gpg-interface.c:1017
#, c-format
msgid "failed writing ssh signing key buffer to '%s'"
msgstr "misslyckades skriva ssh-signeringsnyckelbuffert till \"%s\""
-#: gpg-interface.c:1014
+#: gpg-interface.c:1035
msgid ""
"ssh-keygen -Y sign is needed for ssh signing (available in openssh version "
"8.2p1+)"
@@ -4372,7 +4494,7 @@ msgstr ""
"\"ssh-keygen -Y sign\" behövs för ssh-signering (tillgängligt i openssh "
"version 8.2p1+)"
-#: gpg-interface.c:1026
+#: gpg-interface.c:1047
#, c-format
msgid "failed reading ssh signing data buffer from '%s'"
msgstr "misslyckades läsa ssh-signeringsdatabuffert från \"%s\""
@@ -4382,7 +4504,7 @@ msgstr "misslyckades läsa ssh-signeringsdatabuffert från \"%s\""
msgid "ignored invalid color '%.*s' in log.graphColors"
msgstr "ignorerade felaktig färg \"%.*s\" i log.graphColors"
-#: grep.c:531
+#: grep.c:446
msgid ""
"given pattern contains NULL byte (via -f <file>). This is only supported "
"with -P under PCRE v2"
@@ -4390,109 +4512,109 @@ msgstr ""
"angivet mönster innehåller NULL-byte (via -f <fil>). Detta stöds endast med -"
"P under PCRE v2"
-#: grep.c:1942
+#: grep.c:1859
#, c-format
msgid "'%s': unable to read %s"
msgstr "\"%s\" kunde inte läsa %s"
-#: grep.c:1959 setup.c:177 builtin/clone.c:302 builtin/diff.c:90
+#: grep.c:1876 setup.c:178 builtin/clone.c:308 builtin/diff.c:90
#: builtin/rm.c:136
#, c-format
msgid "failed to stat '%s'"
msgstr "misslyckades ta status på \"%s\""
-#: grep.c:1970
+#: grep.c:1887
#, c-format
msgid "'%s': short read"
msgstr "\"%s\": kort läsning"
-#: help.c:24
+#: help.c:25
msgid "start a working area (see also: git help tutorial)"
msgstr "starta arbetskatalog (se också: git help tutorial)"
-#: help.c:25
+#: help.c:26
msgid "work on the current change (see also: git help everyday)"
msgstr "jobba med aktuell förändring (se också: git help everyday)"
-#: help.c:26
+#: help.c:27
msgid "examine the history and state (see also: git help revisions)"
msgstr "utforska historiken och tillståndet (se också: git help revisions)"
-#: help.c:27
+#: help.c:28
msgid "grow, mark and tweak your common history"
msgstr "utöka, markera och justera din gemensamma historik"
-#: help.c:28
+#: help.c:29
msgid "collaborate (see also: git help workflows)"
msgstr "samarbeta (se också: git help workflows)"
-#: help.c:32
+#: help.c:33
msgid "Main Porcelain Commands"
msgstr "Huvudsakliga porslinskommandon"
-#: help.c:33
+#: help.c:34
msgid "Ancillary Commands / Manipulators"
msgstr "Tilläggskommandon / manipulerare"
-#: help.c:34
+#: help.c:35
msgid "Ancillary Commands / Interrogators"
msgstr "Tilläggskommandon / frågare"
-#: help.c:35
+#: help.c:36
msgid "Interacting with Others"
msgstr "Interaktion med andra"
-#: help.c:36
+#: help.c:37
msgid "Low-level Commands / Manipulators"
msgstr "Lågnivåkommandon / maniupulerare"
-#: help.c:37
+#: help.c:38
msgid "Low-level Commands / Interrogators"
msgstr "Lågnivåkommandon / frågare"
-#: help.c:38
+#: help.c:39
msgid "Low-level Commands / Syncing Repositories"
msgstr "Lågnivåkommandon / synka arkiv"
-#: help.c:39
+#: help.c:40
msgid "Low-level Commands / Internal Helpers"
msgstr "Lågnivåkommandon / interna hjälpare"
-#: help.c:313
+#: help.c:316
#, c-format
msgid "available git commands in '%s'"
msgstr "git-kommandon tillgängliga i \"%s\""
-#: help.c:320
+#: help.c:323
msgid "git commands available from elsewhere on your $PATH"
msgstr "git-kommandon från andra platser i din $PATH"
-#: help.c:329
+#: help.c:332
msgid "These are common Git commands used in various situations:"
msgstr "Dessa vanliga Git-kommandon används i olika situationer:"
-#: help.c:378 git.c:100
+#: help.c:382 git.c:100
#, c-format
msgid "unsupported command listing type '%s'"
msgstr "okänd kommandolisttyp \"%s\""
-#: help.c:418
+#: help.c:422
msgid "The Git concept guides are:"
msgstr "Vägledningar för Git-koncept:"
-#: help.c:442
-msgid "See 'git help <command>' to read about a specific subcommand"
-msgstr "Se \"git help <kommando>\" för att läsa om ett specifikt underkommando"
-
-#: help.c:447
+#: help.c:446
msgid "External commands"
msgstr "Externa kommandon"
-#: help.c:462
+#: help.c:468
msgid "Command aliases"
msgstr "Kommadoalias"
-#: help.c:543
+#: help.c:486
+msgid "See 'git help <command>' to read about a specific subcommand"
+msgstr "Se \"git help <kommando>\" för att läsa om ett specifikt underkommando"
+
+#: help.c:563
#, c-format
msgid ""
"'%s' appears to be a git command, but we were not\n"
@@ -4501,37 +4623,37 @@ msgstr ""
"\"%s\" verkar vara ett git-kommando, men vi kan inte\n"
"köra det. Kanske git-%s är trasigt?"
-#: help.c:565 help.c:662
+#: help.c:585 help.c:682
#, c-format
msgid "git: '%s' is not a git command. See 'git --help'."
msgstr "git: \"%s\" är inte ett git-kommando. Se \"git --help\"."
-#: help.c:613
+#: help.c:633
msgid "Uh oh. Your system reports no Git commands at all."
msgstr "Oj då. Ditt system rapporterar inga Git-kommandon alls."
-#: help.c:635
+#: help.c:655
#, c-format
msgid "WARNING: You called a Git command named '%s', which does not exist."
msgstr "VARNING: Du anropade ett Git-kommando vid namn \"%s\", som inte finns."
-#: help.c:640
+#: help.c:660
#, c-format
msgid "Continuing under the assumption that you meant '%s'."
msgstr "Fortsätter under förutsättningen att du menade \"%s\"."
-#: help.c:646
+#: help.c:666
#, c-format
msgid "Run '%s' instead [y/N]? "
msgstr "Köra \"%s\" istället (j/N)?"
-#: help.c:654
+#: help.c:674
#, c-format
msgid "Continuing in %0.1f seconds, assuming that you meant '%s'."
msgstr ""
"Fortsätter om %0.1f sekunder, under förutsättningen att du menade \"%s\"."
-#: help.c:666
+#: help.c:686
msgid ""
"\n"
"The most similar command is"
@@ -4545,16 +4667,16 @@ msgstr[1] ""
"\n"
"Mest lika kommandon är"
-#: help.c:706
+#: help.c:729
msgid "git version [<options>]"
msgstr "git version [<flaggor>]"
-#: help.c:761
+#: help.c:784
#, c-format
msgid "%s: %s - %s"
msgstr "%s: %s - %s"
-#: help.c:765
+#: help.c:788
msgid ""
"\n"
"Did you mean this?"
@@ -4568,7 +4690,7 @@ msgstr[1] ""
"\n"
"Menade du ett av dessa?"
-#: hook.c:27
+#: hook.c:28
#, c-format
msgid ""
"The '%s' hook was ignored because it's not set as executable.\n"
@@ -4577,15 +4699,20 @@ msgstr ""
"Kroken \"%s\" ignorerades eftersom den inte är markerad som körbar.\n"
"Du kan inaktivera varningen med \"git config advice.ignoredHook false\"."
-#: ident.c:353
+#: hook.c:87
+#, c-format
+msgid "Couldn't start hook '%s'\n"
+msgstr "Kunde inte starta kroken \"%s\"\n"
+
+#: ident.c:354
msgid "Author identity unknown\n"
msgstr "Författar-identitet okänd\n"
-#: ident.c:356
+#: ident.c:357
msgid "Committer identity unknown\n"
msgstr "Incheckar-identitet okänd\n"
-#: ident.c:362
+#: ident.c:363
msgid ""
"\n"
"*** Please tell me who you are.\n"
@@ -4611,71 +4738,71 @@ msgstr ""
"Kör utan --global för att endast ändra i aktuellt arkiv.\n"
"\n"
-#: ident.c:397
+#: ident.c:398
msgid "no email was given and auto-detection is disabled"
msgstr "ingen e-post angavs och autodetektering är inaktiverad"
-#: ident.c:402
+#: ident.c:403
#, c-format
msgid "unable to auto-detect email address (got '%s')"
msgstr "kunde inte autodetektera e-postadress (fick \"%s\")"
-#: ident.c:419
+#: ident.c:420
msgid "no name was given and auto-detection is disabled"
msgstr "inget namn angavs och autodetektering är inaktiverad"
-#: ident.c:425
+#: ident.c:426
#, c-format
msgid "unable to auto-detect name (got '%s')"
msgstr "kunde inte autodetektera namn (fick \"%s\")"
-#: ident.c:433
+#: ident.c:434
#, c-format
msgid "empty ident name (for <%s>) not allowed"
msgstr "tomt ident-namn (för <%s>) ej tillåtet"
-#: ident.c:439
+#: ident.c:440
#, c-format
msgid "name consists only of disallowed characters: %s"
msgstr "namnet består enbart av ej tillåtna tecken: %s"
-#: ident.c:454 builtin/commit.c:648
+#: ident.c:455 builtin/commit.c:649
#, c-format
msgid "invalid date format: %s"
msgstr "felaktigt datumformat: %s"
-#: list-objects-filter-options.c:83
+#: list-objects-filter-options.c:68
msgid "expected 'tree:<depth>'"
msgstr "förväntade \"tree:<djup>\""
-#: list-objects-filter-options.c:98
+#: list-objects-filter-options.c:83
msgid "sparse:path filters support has been dropped"
msgstr "sparse:sökväg-filter stöds inte längre"
-#: list-objects-filter-options.c:105
+#: list-objects-filter-options.c:90
#, c-format
msgid "'%s' for 'object:type=<type>' is not a valid object type"
msgstr "\"%s\" för \"object:type=<typ>\" är inte en giltig objekttyp"
-#: list-objects-filter-options.c:124
+#: list-objects-filter-options.c:109
#, c-format
msgid "invalid filter-spec '%s'"
msgstr "felaktig filterspecifikation: \"%s\""
-#: list-objects-filter-options.c:140
+#: list-objects-filter-options.c:125
#, c-format
msgid "must escape char in sub-filter-spec: '%c'"
msgstr "måste använda specialsekvens i delfilter-spec: \"%c\""
-#: list-objects-filter-options.c:182
+#: list-objects-filter-options.c:167
msgid "expected something after combine:"
msgstr "förväntade någonting efter combine:"
-#: list-objects-filter-options.c:264
+#: list-objects-filter-options.c:249
msgid "multiple filter-specs cannot be combined"
msgstr "flera filterspecifikationer kan inte kombineras"
-#: list-objects-filter-options.c:376
+#: list-objects-filter-options.c:365
msgid "unable to upgrade repository format to support partial clone"
msgstr "kunde inte uppgradera arkivformat till att stöda delvis klon"
@@ -4689,17 +4816,17 @@ msgstr "kunde inte nå gles blob på \"%s\""
msgid "unable to parse sparse filter data in %s"
msgstr "kunde inte tolka gles filterdata i %s"
-#: list-objects.c:127
+#: list-objects.c:144
#, c-format
msgid "entry '%s' in tree %s has tree mode, but is not a tree"
msgstr "posten \"%s\" i trädet %s har träd-läge, men är inte ett träd"
-#: list-objects.c:140
+#: list-objects.c:157
#, c-format
msgid "entry '%s' in tree %s has blob mode, but is not a blob"
msgstr "posten \"%s\" i trädet %s har blob-läge, men är inte en blob"
-#: list-objects.c:398
+#: list-objects.c:415
#, c-format
msgid "unable to load root tree for commit %s"
msgstr "kunde inte läsa in rot-trädet för incheckningen %s"
@@ -4729,17 +4856,12 @@ msgstr ""
msgid "Unable to create '%s.lock': %s"
msgstr "Kunde inte skapa \"%s.lock\": %s"
-#: ls-refs.c:37
-#, c-format
-msgid "invalid value '%s' for lsrefs.unborn"
-msgstr "ogiltigt värde \"%s\" för lsrefs.unborn"
-
-#: ls-refs.c:174
+#: ls-refs.c:175
#, c-format
msgid "unexpected line: '%s'"
msgstr "oväntad rad: \"%s\""
-#: ls-refs.c:178
+#: ls-refs.c:179
msgid "expected flush after ls-refs arguments"
msgstr "förväntade \"flush\" efter ls-refs-argument"
@@ -4747,39 +4869,39 @@ msgstr "förväntade \"flush\" efter ls-refs-argument"
msgid "quoted CRLF detected"
msgstr "citerad CRLF upptäcktes"
-#: mailinfo.c:1254 builtin/am.c:184 builtin/mailinfo.c:46
+#: mailinfo.c:1254 builtin/am.c:185 builtin/mailinfo.c:46
#, c-format
msgid "bad action '%s' for '%s'"
msgstr "felaktig funktion \"%s\" för \"%s\""
-#: merge-ort.c:1584 merge-recursive.c:1211
+#: merge-ort.c:1630 merge-recursive.c:1214
#, c-format
msgid "Failed to merge submodule %s (not checked out)"
msgstr "Misslyckades slå ihop undermodulen %s (ej utcheckad)"
-#: merge-ort.c:1593 merge-recursive.c:1218
+#: merge-ort.c:1639 merge-recursive.c:1221
#, c-format
msgid "Failed to merge submodule %s (commits not present)"
msgstr "Misslyckades slå ihop undermodulen %s (incheckningar saknas)"
-#: merge-ort.c:1602 merge-recursive.c:1225
+#: merge-ort.c:1648 merge-recursive.c:1228
#, c-format
msgid "Failed to merge submodule %s (commits don't follow merge-base)"
msgstr ""
"Misslyckades slå ihop undermodulen %s (incheckningar följer inte "
"sammanslagningsbasen)"
-#: merge-ort.c:1612 merge-ort.c:1620
+#: merge-ort.c:1658 merge-ort.c:1666
#, c-format
msgid "Note: Fast-forwarding submodule %s to %s"
msgstr "Obs: Snabbspolar undermodulen %s till %s"
-#: merge-ort.c:1642
+#: merge-ort.c:1688
#, c-format
msgid "Failed to merge submodule %s"
msgstr "Misslyckades slå ihop undermodulen %s"
-#: merge-ort.c:1649
+#: merge-ort.c:1695
#, c-format
msgid ""
"Failed to merge submodule %s, but a possible merge resolution exists:\n"
@@ -4788,7 +4910,7 @@ msgstr ""
"Misslyckades slå ihop undermodulen %s, men en möjlig lösning finns:\n"
"%s\n"
-#: merge-ort.c:1653 merge-recursive.c:1281
+#: merge-ort.c:1699 merge-recursive.c:1284
#, c-format
msgid ""
"If this is correct simply add it to the index for example\n"
@@ -4805,7 +4927,7 @@ msgstr ""
"\n"
"vilket godtar lösningen.\n"
-#: merge-ort.c:1666
+#: merge-ort.c:1712
#, c-format
msgid ""
"Failed to merge submodule %s, but multiple possible merges exist:\n"
@@ -4815,21 +4937,21 @@ msgstr ""
"finns:\n"
"%s"
-#: merge-ort.c:1887 merge-recursive.c:1372
+#: merge-ort.c:1937 merge-recursive.c:1375
msgid "Failed to execute internal merge"
msgstr "Misslyckades exekvera intern sammanslagning"
-#: merge-ort.c:1892 merge-recursive.c:1377
+#: merge-ort.c:1942 merge-recursive.c:1380
#, c-format
msgid "Unable to add %s to database"
msgstr "Kunde inte lägga till %s till databasen"
-#: merge-ort.c:1899 merge-recursive.c:1410
+#: merge-ort.c:1949 merge-recursive.c:1413
#, c-format
msgid "Auto-merging %s"
msgstr "Slår ihop %s automatiskt"
-#: merge-ort.c:2038 merge-recursive.c:2132
+#: merge-ort.c:2088 merge-recursive.c:2135
#, c-format
msgid ""
"CONFLICT (implicit dir rename): Existing file/dir at %s in the way of "
@@ -4838,7 +4960,7 @@ msgstr ""
"KONFLIKT (implicit nämnändrad kat): Befintlig fil/kat vid %s är i vägen för "
"implicit namnändrad(e) katalog(er) som lägger dit följande sökväg(ar): %s."
-#: merge-ort.c:2048 merge-recursive.c:2142
+#: merge-ort.c:2098 merge-recursive.c:2145
#, c-format
msgid ""
"CONFLICT (implicit dir rename): Cannot map more than one path to %s; "
@@ -4847,7 +4969,7 @@ msgstr ""
"KONFLIKT (implicit namnändrad kat): Kan inte koppla mer än en sökväg till "
"%s; implicita katalognamnändringar försökte lägga följande sökvägar där: %s"
-#: merge-ort.c:2106
+#: merge-ort.c:2156
#, c-format
msgid ""
"CONFLICT (directory rename split): Unclear where to rename %s to; it was "
@@ -4858,7 +4980,7 @@ msgstr ""
"den har namnbytts till flera andra kataloger, utan att någon destination "
"fick en majoritet av filerna."
-#: merge-ort.c:2260 merge-recursive.c:2478
+#: merge-ort.c:2310 merge-recursive.c:2481
#, c-format
msgid ""
"WARNING: Avoiding applying %s -> %s rename to %s, because %s itself was "
@@ -4867,7 +4989,7 @@ msgstr ""
"VARNING: Undviker att applicera namnändring %s -> %s på %s, då %s själv har "
"bytt namn."
-#: merge-ort.c:2400 merge-recursive.c:3261
+#: merge-ort.c:2450 merge-recursive.c:3264
#, c-format
msgid ""
"Path updated: %s added in %s inside a directory that was renamed in %s; "
@@ -4876,7 +4998,7 @@ msgstr ""
"Uppdaterad sökväg: %s lade till %s inuti en katalog som bytte namn i %s; "
"flyttar den till %s."
-#: merge-ort.c:2407 merge-recursive.c:3268
+#: merge-ort.c:2457 merge-recursive.c:3271
#, c-format
msgid ""
"Path updated: %s renamed to %s in %s, inside a directory that was renamed in "
@@ -4885,7 +5007,7 @@ msgstr ""
"Uppdaterad sökväg: %s bytte namn till %s i %s, inuti en katalog som bytte "
"namn i %s; flyttar den till %s."
-#: merge-ort.c:2420 merge-recursive.c:3264
+#: merge-ort.c:2470 merge-recursive.c:3267
#, c-format
msgid ""
"CONFLICT (file location): %s added in %s inside a directory that was renamed "
@@ -4894,7 +5016,7 @@ msgstr ""
"KONFLIKT (filplacering): %s lade till %s inuti en katalog som bytte namn i "
"%s, föreslår att den bör flyttas till%s."
-#: merge-ort.c:2428 merge-recursive.c:3271
+#: merge-ort.c:2478 merge-recursive.c:3274
#, c-format
msgid ""
"CONFLICT (file location): %s renamed to %s in %s, inside a directory that "
@@ -4903,13 +5025,13 @@ msgstr ""
"KONFLIKT (filplacering): %s bytte namn till %s i %s, inuti en katalog som "
"bytte namn i %s; flyttar den till %s."
-#: merge-ort.c:2584
+#: merge-ort.c:2634
#, c-format
msgid "CONFLICT (rename/rename): %s renamed to %s in %s and to %s in %s."
msgstr ""
"KONFLIKT (namnbyte/namnbyte): %s namnbytt till %s i %s och till %s i %s."
-#: merge-ort.c:2679
+#: merge-ort.c:2729
#, c-format
msgid ""
"CONFLICT (rename involved in collision): rename of %s -> %s has content "
@@ -4920,23 +5042,23 @@ msgstr ""
"innehållskonflikter OCH krockar med en annan sökväg; detta kan leda till "
"nästlade konfliktmarkörer."
-#: merge-ort.c:2698 merge-ort.c:2722
+#: merge-ort.c:2748 merge-ort.c:2772
#, c-format
msgid "CONFLICT (rename/delete): %s renamed to %s in %s, but deleted in %s."
msgstr ""
"KONFLIKT (namnbyte/radera): %s namnbytt till %s i %s, men borttagen i %s."
-#: merge-ort.c:3212 merge-recursive.c:3022
+#: merge-ort.c:3261 merge-recursive.c:3025
#, c-format
msgid "cannot read object %s"
msgstr "kan inte läsa objektet %s"
-#: merge-ort.c:3215 merge-recursive.c:3025
+#: merge-ort.c:3264 merge-recursive.c:3028
#, c-format
msgid "object %s is not a blob"
msgstr "objektet %s är inte en blob"
-#: merge-ort.c:3644
+#: merge-ort.c:3693
#, c-format
msgid ""
"CONFLICT (file/directory): directory in the way of %s from %s; moving it to "
@@ -4945,7 +5067,7 @@ msgstr ""
"KONFLIKT (fil/katalog): katalogen är i vägen för %s från %s; flyttar den "
"till %s istället."
-#: merge-ort.c:3721
+#: merge-ort.c:3770
#, c-format
msgid ""
"CONFLICT (distinct types): %s had different types on each side; renamed both "
@@ -4954,7 +5076,7 @@ msgstr ""
"KONFLIKT (olika typer): %s hade olika typer på varje sida; namnbytte bägge "
"så att de kan protokollföras någonstans."
-#: merge-ort.c:3728
+#: merge-ort.c:3777
#, c-format
msgid ""
"CONFLICT (distinct types): %s had different types on each side; renamed one "
@@ -4963,24 +5085,24 @@ msgstr ""
"KONFLIKT (olika typer): %s hade olika typer på varje sida; namnbytte den ena "
"så att de kan protokollföras någonstans."
-#: merge-ort.c:3819 merge-recursive.c:3101
+#: merge-ort.c:3866 merge-recursive.c:3104
msgid "content"
msgstr "innehåll"
-#: merge-ort.c:3821 merge-recursive.c:3105
+#: merge-ort.c:3868 merge-recursive.c:3108
msgid "add/add"
msgstr "tillägg/tillägg"
-#: merge-ort.c:3823 merge-recursive.c:3150
+#: merge-ort.c:3870 merge-recursive.c:3153
msgid "submodule"
msgstr "undermodul"
-#: merge-ort.c:3825 merge-recursive.c:3151
+#: merge-ort.c:3872 merge-recursive.c:3154
#, c-format
msgid "CONFLICT (%s): Merge conflict in %s"
msgstr "KONFLIKT (%s): Sammanslagningskonflikt i %s"
-#: merge-ort.c:3869
+#: merge-ort.c:3916
#, c-format
msgid ""
"CONFLICT (modify/delete): %s deleted in %s and modified in %s. Version %s "
@@ -4989,7 +5111,7 @@ msgstr ""
"KONFLIKT (ändra/radera): %s raderad i %s och ändrad i %s. Versionen %s av %s "
"lämnad i trädet."
-#: merge-ort.c:4165
+#: merge-ort.c:4212
#, c-format
msgid ""
"Note: %s not up to date and in way of checking out conflicted version; old "
@@ -5001,12 +5123,12 @@ msgstr ""
#. TRANSLATORS: The %s arguments are: 1) tree hash of a merge
#. base, and 2-3) the trees for the two trees we're merging.
#.
-#: merge-ort.c:4534
+#: merge-ort.c:4586
#, c-format
msgid "collecting merge info failed for trees %s, %s, %s"
msgstr "samling av sammanslagningsinfo misslyckades för träden %s, %s, %s"
-#: merge-ort-wrappers.c:13 merge-recursive.c:3716
+#: merge-ort-wrappers.c:13 merge-recursive.c:3723
#, c-format
msgid ""
"Your local changes to the following files would be overwritten by merge:\n"
@@ -5016,7 +5138,7 @@ msgstr ""
"sammanslagning:\n"
" %s"
-#: merge-ort-wrappers.c:33 merge-recursive.c:3482 builtin/merge.c:405
+#: merge-ort-wrappers.c:33 merge-recursive.c:3485 builtin/merge.c:405
msgid "Already up to date."
msgstr "Redan à jour."
@@ -5056,7 +5178,7 @@ msgstr ": kanske en K/F-konflikt?"
msgid "refusing to lose untracked file at '%s'"
msgstr "vägrar förlora ospårad fil vid \"%s\""
-#: merge-recursive.c:956 builtin/cat-file.c:41
+#: merge-recursive.c:956 builtin/cat-file.c:47
#, c-format
msgid "cannot read object %s '%s'"
msgstr "kan inte läsa objektet %s: \"%s\""
@@ -5081,44 +5203,44 @@ msgstr "misslyckades skapa symboliska länken \"%s\": %s"
msgid "do not know what to do with %06o %s '%s'"
msgstr "vet inte hur %06o %s \"%s\" ska hanteras"
-#: merge-recursive.c:1233 merge-recursive.c:1246
+#: merge-recursive.c:1236 merge-recursive.c:1249
#, c-format
msgid "Fast-forwarding submodule %s to the following commit:"
msgstr "Snabbspolar undermodulen %s till följande incheckning:"
-#: merge-recursive.c:1236 merge-recursive.c:1249
+#: merge-recursive.c:1239 merge-recursive.c:1252
#, c-format
msgid "Fast-forwarding submodule %s"
msgstr "Snabbspolar undermodulen %s"
-#: merge-recursive.c:1273
+#: merge-recursive.c:1276
#, c-format
msgid "Failed to merge submodule %s (merge following commits not found)"
msgstr ""
"Misslyckades slå ihop undermodulen %s (sammanslagning efter incheckningar "
"hittades inte)"
-#: merge-recursive.c:1277
+#: merge-recursive.c:1280
#, c-format
msgid "Failed to merge submodule %s (not fast-forward)"
msgstr "Misslyckades slå ihop undermodulen %s (ej snabbspolning)"
-#: merge-recursive.c:1278
+#: merge-recursive.c:1281
msgid "Found a possible merge resolution for the submodule:\n"
msgstr "Hittade en möjlig lösning av sammanslagning för undermodulen:\n"
-#: merge-recursive.c:1290
+#: merge-recursive.c:1293
#, c-format
msgid "Failed to merge submodule %s (multiple merges found)"
msgstr ""
"Misslyckades slå ihop undermodulen %s (flera sammanslagningar hittades)"
-#: merge-recursive.c:1434
+#: merge-recursive.c:1437
#, c-format
msgid "Error: Refusing to lose untracked file at %s; writing to %s instead."
msgstr "Fel: Vägrar förlora ospårad fil vid %s; skriver till %s istället."
-#: merge-recursive.c:1506
+#: merge-recursive.c:1509
#, c-format
msgid ""
"CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left "
@@ -5127,7 +5249,7 @@ msgstr ""
"KONFLIKT (%s/radera): %s raderad i %s och %s i %s. Versionen %s av %s lämnad "
"i trädet."
-#: merge-recursive.c:1511
+#: merge-recursive.c:1514
#, c-format
msgid ""
"CONFLICT (%s/delete): %s deleted in %s and %s to %s in %s. Version %s of %s "
@@ -5136,7 +5258,7 @@ msgstr ""
"KONFLIKT (%s/radera): %s raderad i %s och %s till %s i %s. Versionen %s av "
"%s lämnad i trädet."
-#: merge-recursive.c:1518
+#: merge-recursive.c:1521
#, c-format
msgid ""
"CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left "
@@ -5145,7 +5267,7 @@ msgstr ""
"KONFLIKT (%s/radera): %s raderad i %s och %s i %s. Versionen %s av %s lämnad "
"i trädet vid %s."
-#: merge-recursive.c:1523
+#: merge-recursive.c:1526
#, c-format
msgid ""
"CONFLICT (%s/delete): %s deleted in %s and %s to %s in %s. Version %s of %s "
@@ -5154,40 +5276,40 @@ msgstr ""
"KONFLIKT (%s/radera): %s raderad i %s och %s till %s i %s. Versionen %s av "
"%s lämnad i trädet vid %s."
-#: merge-recursive.c:1558
+#: merge-recursive.c:1561
msgid "rename"
msgstr "namnbyte"
-#: merge-recursive.c:1558
+#: merge-recursive.c:1561
msgid "renamed"
msgstr "namnbytt"
-#: merge-recursive.c:1609 merge-recursive.c:2515 merge-recursive.c:3178
+#: merge-recursive.c:1612 merge-recursive.c:2518 merge-recursive.c:3181
#, c-format
msgid "Refusing to lose dirty file at %s"
msgstr "Vägrar förlora lortig fil vid \"%s\""
-#: merge-recursive.c:1619
+#: merge-recursive.c:1622
#, c-format
msgid "Refusing to lose untracked file at %s, even though it's in the way."
msgstr "Vägrar förlora ospårad fil vid %s, trots att den är i vägen."
-#: merge-recursive.c:1677
+#: merge-recursive.c:1680
#, c-format
msgid "CONFLICT (rename/add): Rename %s->%s in %s. Added %s in %s"
msgstr "KONFLIKT (namnbyte/tillägg): Namnbyte %s->%s i %s. Lade till %s i %s"
-#: merge-recursive.c:1708
+#: merge-recursive.c:1711
#, c-format
msgid "%s is a directory in %s adding as %s instead"
msgstr "%s är en katalog i %s lägger till som %s istället"
-#: merge-recursive.c:1713
+#: merge-recursive.c:1716
#, c-format
msgid "Refusing to lose untracked file at %s; adding as %s instead"
msgstr "Vägrar förlora ospårad fil vid %s; lägger till som %s istället"
-#: merge-recursive.c:1740
+#: merge-recursive.c:1743
#, c-format
msgid ""
"CONFLICT (rename/rename): Rename \"%s\"->\"%s\" in branch \"%s\" rename \"%s"
@@ -5196,17 +5318,17 @@ msgstr ""
"KONFLIKT (namnbyte/namnbyte): Namnbyte \"%s\"->\"%s\" på grenen \"%s\" "
"namnbyte \"%s\"->\"%s\" i \"%s\"%s"
-#: merge-recursive.c:1745
+#: merge-recursive.c:1748
msgid " (left unresolved)"
msgstr " (lämnad olöst)"
-#: merge-recursive.c:1837
+#: merge-recursive.c:1840
#, c-format
msgid "CONFLICT (rename/rename): Rename %s->%s in %s. Rename %s->%s in %s"
msgstr ""
"KONFLIKT (namnbyte/namnbyte): Namnbyte %s->%s i %s. Namnbyte %s->%s i %s"
-#: merge-recursive.c:2100
+#: merge-recursive.c:2103
#, c-format
msgid ""
"CONFLICT (directory rename split): Unclear where to place %s because "
@@ -5217,7 +5339,7 @@ msgstr ""
"katalogen %s bytte namn till flera andra kataloger, utan att någon "
"destination fick en majoritet av filerna."
-#: merge-recursive.c:2234
+#: merge-recursive.c:2237
#, c-format
msgid ""
"CONFLICT (rename/rename): Rename directory %s->%s in %s. Rename directory %s-"
@@ -5226,79 +5348,79 @@ msgstr ""
"KONFLIKT (namnbyte/namnbyte): Namnbytt katalog %s->%s i %s. Namnbytt katalog "
"%s->%s i %s"
-#: merge-recursive.c:3089
+#: merge-recursive.c:3092
msgid "modify"
msgstr "ändra"
-#: merge-recursive.c:3089
+#: merge-recursive.c:3092
msgid "modified"
msgstr "ändrad"
-#: merge-recursive.c:3128
+#: merge-recursive.c:3131
#, c-format
msgid "Skipped %s (merged same as existing)"
msgstr "Hoppade över %s (sammanslagen samma som befintlig)"
-#: merge-recursive.c:3181
+#: merge-recursive.c:3184
#, c-format
msgid "Adding as %s instead"
msgstr "Lägger till som %s istället"
-#: merge-recursive.c:3385
+#: merge-recursive.c:3388
#, c-format
msgid "Removing %s"
msgstr "Tar bort %s"
-#: merge-recursive.c:3408
+#: merge-recursive.c:3411
msgid "file/directory"
msgstr "fil/katalog"
-#: merge-recursive.c:3413
+#: merge-recursive.c:3416
msgid "directory/file"
msgstr "katalog/fil"
-#: merge-recursive.c:3420
+#: merge-recursive.c:3423
#, c-format
msgid "CONFLICT (%s): There is a directory with name %s in %s. Adding %s as %s"
msgstr ""
"KONFLIKT (%s): Det finns en katalog med namnet %s i %s. Lägger till %s som %s"
-#: merge-recursive.c:3429
+#: merge-recursive.c:3432
#, c-format
msgid "Adding %s"
msgstr "Lägger till %s"
-#: merge-recursive.c:3438
+#: merge-recursive.c:3441
#, c-format
msgid "CONFLICT (add/add): Merge conflict in %s"
msgstr "KONFLIKT (tillägg/tillägg): Sammanslagningskonflikt i %s"
-#: merge-recursive.c:3491
+#: merge-recursive.c:3494
#, c-format
msgid "merging of trees %s and %s failed"
msgstr "sammanslagning av träden %s och %s misslyckades"
-#: merge-recursive.c:3585
+#: merge-recursive.c:3588
msgid "Merging:"
msgstr "Slår ihop:"
-#: merge-recursive.c:3598
+#: merge-recursive.c:3601
#, c-format
msgid "found %u common ancestor:"
msgid_plural "found %u common ancestors:"
msgstr[0] "hittade %u gemensam förfader:"
msgstr[1] "hittade %u gemensamma förfäder:"
-#: merge-recursive.c:3648
+#: merge-recursive.c:3651
msgid "merge returned no commit"
msgstr "sammanslagningen returnerade ingen incheckning"
-#: merge-recursive.c:3816
+#: merge-recursive.c:3823
#, c-format
msgid "Could not parse object '%s'"
msgstr "Kunde inte tolka objektet \"%s\""
-#: merge-recursive.c:3834 builtin/merge.c:720 builtin/merge.c:906
+#: merge-recursive.c:3841 builtin/merge.c:720 builtin/merge.c:912
#: builtin/stash.c:489
msgid "Unable to write index."
msgstr "Kunde inte skriva indexet."
@@ -5307,222 +5429,226 @@ msgstr "Kunde inte skriva indexet."
msgid "failed to read the cache"
msgstr "misslyckades läsa cachen"
-#: merge.c:102 rerere.c:704 builtin/am.c:1988 builtin/am.c:2022
-#: builtin/checkout.c:598 builtin/checkout.c:853 builtin/clone.c:706
+#: merge.c:102 rerere.c:705 builtin/am.c:1989 builtin/am.c:2023
+#: builtin/checkout.c:603 builtin/checkout.c:865 builtin/clone.c:714
#: builtin/stash.c:269
msgid "unable to write new index file"
msgstr "kunde inte skriva ny indexfil"
-#: midx.c:78
+#: midx.c:79
msgid "multi-pack-index OID fanout is of the wrong size"
msgstr "multi-pack-indexets OID-utbredning har fel storlek"
-#: midx.c:111
+#: midx.c:112
#, c-format
msgid "multi-pack-index file %s is too small"
msgstr "multi-pack-indexfilen %s är för liten"
-#: midx.c:127
+#: midx.c:128
#, c-format
msgid "multi-pack-index signature 0x%08x does not match signature 0x%08x"
msgstr "multi-pack-indexsignaturen 0x%08x stämmer inte med signaturen 0x%08x"
-#: midx.c:132
+#: midx.c:133
#, c-format
msgid "multi-pack-index version %d not recognized"
msgstr "multi-pack-indexversionen %d stöds inte"
-#: midx.c:137
+#: midx.c:138
#, c-format
msgid "multi-pack-index hash version %u does not match version %u"
msgstr "multi-pack-index-hashversionen %u stämmer inte med versionen %u"
-#: midx.c:154
+#: midx.c:155
msgid "multi-pack-index missing required pack-name chunk"
msgstr "multi-pack-index saknar krävd paketnamn-stycke"
-#: midx.c:156
+#: midx.c:157
msgid "multi-pack-index missing required OID fanout chunk"
msgstr "multi-pack-index saknar krävt OID-utbredningsstycke"
-#: midx.c:158
+#: midx.c:159
msgid "multi-pack-index missing required OID lookup chunk"
msgstr "multi-pack-index saknar krävt OID-uppslagnignsstycke"
-#: midx.c:160
+#: midx.c:161
msgid "multi-pack-index missing required object offsets chunk"
msgstr "multi-pack-index saknar krävt objekt-offsetstycke"
-#: midx.c:176
+#: midx.c:180
#, c-format
msgid "multi-pack-index pack names out of order: '%s' before '%s'"
msgstr "multi-pack-index-paketnamn i fel ordning: \"%s\" före \"%s\""
-#: midx.c:224
+#: midx.c:228
#, c-format
msgid "bad pack-int-id: %u (%u total packs)"
msgstr "bad pack-int-id: %u (%u paket totalt)"
-#: midx.c:274
+#: midx.c:278
msgid "multi-pack-index stores a 64-bit offset, but off_t is too small"
msgstr "multi-pack-index skriver 64-bitars offset, men off_t är för liten"
-#: midx.c:505
+#: midx.c:509
#, c-format
msgid "failed to add packfile '%s'"
msgstr "misslyckades läsa paketfilen \"%s\""
-#: midx.c:511
+#: midx.c:515
#, c-format
msgid "failed to open pack-index '%s'"
msgstr "misslyckades öppna paketindexet \"%s\""
-#: midx.c:579
+#: midx.c:583
#, c-format
msgid "failed to locate object %d in packfile"
msgstr "misslyckades hitta objekt %d i paketfilen"
-#: midx.c:895
+#: midx.c:911
msgid "cannot store reverse index file"
msgstr "kan inte spara reverse-index-fil"
-#: midx.c:993
+#: midx.c:1009
#, c-format
msgid "could not parse line: %s"
msgstr "kunde inte tolka rad: %s"
-#: midx.c:995
+#: midx.c:1011
#, c-format
msgid "malformed line: %s"
msgstr "felaktig rad: %s"
-#: midx.c:1162
+#: midx.c:1181
msgid "ignoring existing multi-pack-index; checksum mismatch"
msgstr "ignorerar befintlig multi-pack-index; felaktig kontrollsumma"
-#: midx.c:1187
+#: midx.c:1206
msgid "could not load pack"
msgstr "kunde inte läsa paket{"
-#: midx.c:1193
+#: midx.c:1212
#, c-format
msgid "could not open index for %s"
msgstr "kunde inte öppna indexet för %s"
-#: midx.c:1204
+#: midx.c:1223
msgid "Adding packfiles to multi-pack-index"
msgstr "Lägger till paketfiler till multi-pack-index"
-#: midx.c:1247
+#: midx.c:1266
#, c-format
msgid "unknown preferred pack: '%s'"
msgstr "okänt föredraget paket: %s"
-#: midx.c:1292
+#: midx.c:1311
#, c-format
msgid "cannot select preferred pack %s with no objects"
msgstr "kan inte välja föredraget paket %s som inte har några objekt"
-#: midx.c:1324
+#: midx.c:1343
#, c-format
msgid "did not see pack-file %s to drop"
msgstr "såg inte paketfilen %s som skulle kastas"
-#: midx.c:1370
+#: midx.c:1389
#, c-format
msgid "preferred pack '%s' is expired"
msgstr "föredraget paket \"%s\" har löpt ut"
-#: midx.c:1383
+#: midx.c:1402
msgid "no pack files to index."
msgstr "inga paketfiler att indexera."
-#: midx.c:1420
+#: midx.c:1409
+msgid "refusing to write multi-pack .bitmap without any objects"
+msgstr "kunde inte skriva fler-paketsbitkarta utan några objekt"
+
+#: midx.c:1451
msgid "could not write multi-pack bitmap"
msgstr "kunde inte skriva fler-paketsbitkarta"
-#: midx.c:1430
+#: midx.c:1461
msgid "could not write multi-pack-index"
msgstr "kunde inte skriva flerpakets-index"
-#: midx.c:1489 builtin/clean.c:37
+#: midx.c:1520 builtin/clean.c:37
#, c-format
msgid "failed to remove %s"
msgstr "misslyckades ta bort %s"
-#: midx.c:1522
+#: midx.c:1553
#, c-format
msgid "failed to clear multi-pack-index at %s"
msgstr "misslyckades städa multi-pack-index på %s"
-#: midx.c:1585
+#: midx.c:1616
msgid "multi-pack-index file exists, but failed to parse"
msgstr "multi-pack-indexfilen finns, men kunde inte tolkas"
-#: midx.c:1593
+#: midx.c:1624
msgid "incorrect checksum"
msgstr "felaktig kontrollsumma"
-#: midx.c:1596
+#: midx.c:1627
msgid "Looking for referenced packfiles"
msgstr "Ser efter refererade packfiler"
-#: midx.c:1611
+#: midx.c:1642
#, c-format
msgid ""
"oid fanout out of order: fanout[%d] = %<PRIx32> > %<PRIx32> = fanout[%d]"
msgstr ""
"oid-utbredning i fel ordning: fanout[%d] = %<PRIx32> > %<PRIx32> = fanout[%d]"
-#: midx.c:1616
+#: midx.c:1647
msgid "the midx contains no oid"
msgstr "midx saknar oid"
-#: midx.c:1625
+#: midx.c:1656
msgid "Verifying OID order in multi-pack-index"
msgstr "Bekräftar OID-ordning i multi-pack-index"
-#: midx.c:1634
+#: midx.c:1665
#, c-format
msgid "oid lookup out of order: oid[%d] = %s >= %s = oid[%d]"
msgstr "oid-uppslagning i fel ordning: oid[%d] = %s >= %s = oid[%d]"
-#: midx.c:1654
+#: midx.c:1685
msgid "Sorting objects by packfile"
msgstr "Sorterar objekt efter packfil"
-#: midx.c:1661
+#: midx.c:1692
msgid "Verifying object offsets"
msgstr "Bekräftar offset för objekt"
-#: midx.c:1677
+#: midx.c:1708
#, c-format
msgid "failed to load pack entry for oid[%d] = %s"
msgstr "misslyckades läsa paketpost för oid[%d] = %s"
-#: midx.c:1683
+#: midx.c:1714
#, c-format
msgid "failed to load pack-index for packfile %s"
msgstr "misslyckades läsa paketindex för paketfil %s"
-#: midx.c:1692
+#: midx.c:1723
#, c-format
msgid "incorrect object offset for oid[%d] = %s: %<PRIx64> != %<PRIx64>"
msgstr "felaktigt objekt-offset för oid[%d] = %s: %<PRIx64> != %<PRIx64>"
-#: midx.c:1719
+#: midx.c:1750
msgid "Counting referenced objects"
msgstr "Räknar refererade objekt"
-#: midx.c:1729
+#: midx.c:1760
msgid "Finding and deleting unreferenced packfiles"
msgstr "Ser efter och tar bort orefererade packfiler"
-#: midx.c:1921
+#: midx.c:1952
msgid "could not start pack-objects"
msgstr "kunde inte starta pack-objects"
-#: midx.c:1941
+#: midx.c:1972
msgid "could not finish pack-objects"
msgstr "kunde inte avsluta pack-objects"
@@ -5541,7 +5667,7 @@ msgstr "misslyckades skapa lazy_name-tråd: %s"
msgid "unable to join lazy_name thread: %s"
msgstr "misslyckades utföra join på lazy_name-tråd: %s"
-#: notes-merge.c:277
+#: notes-merge.c:276
#, c-format
msgid ""
"You have not concluded your previous notes merge (%s exists).\n"
@@ -5553,7 +5679,7 @@ msgstr ""
"att checka in eller avbryta föregående sammanslagning innan du påbörjar en "
"ny antecknings-sammanslagning."
-#: notes-merge.c:284
+#: notes-merge.c:283
#, c-format
msgid "You have not concluded your notes merge (%s exists)."
msgstr "Du har inte avslutat antecknings-sammanslagningen (%s finns)."
@@ -5581,272 +5707,343 @@ msgstr "Vägrar skriva över anteckningar i %s (utanför refs/notes/)"
msgid "Bad %s value: '%s'"
msgstr "Felaktigt värde på %s: \"%s\""
-#: object-file.c:456
+#: object-file.c:457
#, c-format
msgid "object directory %s does not exist; check .git/objects/info/alternates"
msgstr "objektkatalogen %s finns inte; se .git/objects/info/alternates"
-#: object-file.c:514
+#: object-file.c:515
#, c-format
msgid "unable to normalize alternate object path: %s"
msgstr "kunde inte normalisera supplerande objektsökväg: %s"
-#: object-file.c:588
+#: object-file.c:589
#, c-format
msgid "%s: ignoring alternate object stores, nesting too deep"
msgstr "%s: ignorerar supplerande objektlager, för djup nästling"
-#: object-file.c:595
+#: object-file.c:596
#, c-format
msgid "unable to normalize object directory: %s"
msgstr "kan inte normalisera objektkatalogen: %s"
-#: object-file.c:638
+#: object-file.c:639
msgid "unable to fdopen alternates lockfile"
msgstr "kan inte utföra \"fdopen\" på suppleantlåsfil"
-#: object-file.c:656
+#: object-file.c:657
msgid "unable to read alternates file"
msgstr "kan inte läsa \"alternates\"-filen"
-#: object-file.c:663
+#: object-file.c:664
msgid "unable to move new alternates file into place"
msgstr "kan inte flytta ny \"alternates\"-fil på plats"
-#: object-file.c:741
+#: object-file.c:742
#, c-format
msgid "path '%s' does not exist"
msgstr "sökvägen \"%s\" finns inte"
-#: object-file.c:762
+#: object-file.c:763
#, c-format
msgid "reference repository '%s' as a linked checkout is not supported yet."
msgstr "referensarkivet \"%s\" som en länkad utcheckning stöds inte ännu."
-#: object-file.c:768
+#: object-file.c:769
#, c-format
msgid "reference repository '%s' is not a local repository."
msgstr "referensarkivet \"%s\" är inte ett lokalt arkiv."
-#: object-file.c:774
+#: object-file.c:775
#, c-format
msgid "reference repository '%s' is shallow"
msgstr "referensarkivet \"%s\" är grunt"
-#: object-file.c:782
+#: object-file.c:783
#, c-format
msgid "reference repository '%s' is grafted"
msgstr "referensarkivet \"%s\" är ympat"
-#: object-file.c:813
+#: object-file.c:814
#, c-format
msgid "could not find object directory matching %s"
msgstr "kunde inte hitta objektkatalog för %s"
-#: object-file.c:863
+#: object-file.c:864
#, c-format
msgid "invalid line while parsing alternate refs: %s"
msgstr "felaktig rad vid tolkning av supplerande referenser: %s"
-#: object-file.c:1013
+#: object-file.c:1014
#, c-format
msgid "attempting to mmap %<PRIuMAX> over limit %<PRIuMAX>"
msgstr "försök att utföra \"mmap\" på %<PRIuMAX> över gränsen %<PRIuMAX>"
-#: object-file.c:1048
+#: object-file.c:1049
#, c-format
msgid "mmap failed%s"
msgstr "mmap misslyckades%s"
-#: object-file.c:1214
+#: object-file.c:1230
#, c-format
msgid "object file %s is empty"
msgstr "objektfilen %s är tom"
-#: object-file.c:1333 object-file.c:2542
+#: object-file.c:1349 object-file.c:2588
#, c-format
msgid "corrupt loose object '%s'"
msgstr "trasigt löst objekt \"%s\""
-#: object-file.c:1335 object-file.c:2546
+#: object-file.c:1351 object-file.c:2592
#, c-format
msgid "garbage at end of loose object '%s'"
msgstr "skräp i slutet av löst objekt \"%s\""
-#: object-file.c:1457
+#: object-file.c:1473
#, c-format
msgid "unable to parse %s header"
msgstr "kan inte tolka %s-huvud"
-#: object-file.c:1459
+#: object-file.c:1475
msgid "invalid object type"
msgstr "felaktig objekttyp"
-#: object-file.c:1470
+#: object-file.c:1486
#, c-format
msgid "unable to unpack %s header"
msgstr "kan inte packa upp %s-huvudet"
-#: object-file.c:1474
+#: object-file.c:1490
#, c-format
msgid "header for %s too long, exceeds %d bytes"
msgstr "huvudet för %s är för långt, mer än %d byte"
-#: object-file.c:1704
+#: object-file.c:1720
#, c-format
msgid "failed to read object %s"
msgstr "misslyckades läsa objektet %s"
-#: object-file.c:1708
+#: object-file.c:1724
#, c-format
msgid "replacement %s not found for %s"
msgstr "ersättningen %s hittades inte för %s"
-#: object-file.c:1712
+#: object-file.c:1728
#, c-format
msgid "loose object %s (stored in %s) is corrupt"
msgstr "löst objekt %s (lagrat i %s) är trasigt"
-#: object-file.c:1716
+#: object-file.c:1732
#, c-format
msgid "packed object %s (stored in %s) is corrupt"
msgstr "packat objekt %s (lagrat i %s) är trasigt"
-#: object-file.c:1821
+#: object-file.c:1855
#, c-format
msgid "unable to write file %s"
msgstr "kunde inte skriva filen %s"
-#: object-file.c:1828
+#: object-file.c:1862
#, c-format
msgid "unable to set permission to '%s'"
msgstr "kan inte sätta behörigheten till \"%s\""
-#: object-file.c:1835
+#: object-file.c:1869
msgid "file write error"
msgstr "fel vid skrivning av fil"
-#: object-file.c:1858
+#: object-file.c:1904
msgid "error when closing loose object file"
msgstr "fel vid stängning av fil för löst objekt"
-#: object-file.c:1925
+#: object-file.c:1971
#, c-format
msgid "insufficient permission for adding an object to repository database %s"
msgstr ""
"otillräcklig behörighet för att lägga till objekt till arkivdatabasen %s"
-#: object-file.c:1927
+#: object-file.c:1973
msgid "unable to create temporary file"
msgstr "kan inte skapa temporär fil"
-#: object-file.c:1951
+#: object-file.c:1997
msgid "unable to write loose object file"
msgstr "kunde inte skriva fil för löst objekt"
-#: object-file.c:1957
+#: object-file.c:2003
#, c-format
msgid "unable to deflate new object %s (%d)"
msgstr "kan inte utföra \"deflate\" på nytt objekt %s (%d)"
-#: object-file.c:1961
+#: object-file.c:2007
#, c-format
msgid "deflateEnd on object %s failed (%d)"
msgstr "\"deflateend\" på objektet %s misslyckades (%d)"
-#: object-file.c:1965
+#: object-file.c:2011
#, c-format
msgid "confused by unstable object source data for %s"
msgstr "förvirrad av instabil objektkälldata för %s"
-#: object-file.c:1976 builtin/pack-objects.c:1243
+#: object-file.c:2022 builtin/pack-objects.c:1251
#, c-format
msgid "failed utime() on %s"
msgstr "\"utime()\" misslyckades på %s"
-#: object-file.c:2054
+#: object-file.c:2100
#, c-format
msgid "cannot read object for %s"
msgstr "kan inte läsa objekt för %s"
-#: object-file.c:2105
+#: object-file.c:2151
msgid "corrupt commit"
msgstr "trasik incheckning"
-#: object-file.c:2113
+#: object-file.c:2159
msgid "corrupt tag"
msgstr "trasig tagg"
-#: object-file.c:2213
+#: object-file.c:2259
#, c-format
msgid "read error while indexing %s"
msgstr "läsfel vid indexering av %s"
-#: object-file.c:2216
+#: object-file.c:2262
#, c-format
msgid "short read while indexing %s"
msgstr "för lite lästes vid indexering av %s"
-#: object-file.c:2289 object-file.c:2299
+#: object-file.c:2335 object-file.c:2345
#, c-format
msgid "%s: failed to insert into database"
msgstr "%s: misslyckades lägga in i databasen"
-#: object-file.c:2305
+#: object-file.c:2351
#, c-format
msgid "%s: unsupported file type"
msgstr "%s: filtypen stöds ej"
-#: object-file.c:2329 builtin/fetch.c:1453
+#: object-file.c:2375 builtin/fetch.c:1494
#, c-format
msgid "%s is not a valid object"
msgstr "%s är inte ett giltigt objekt"
-#: object-file.c:2331
+#: object-file.c:2377
#, c-format
msgid "%s is not a valid '%s' object"
msgstr "%s är inte ett giltigt \"%s\"-objekt"
-#: object-file.c:2358
+#: object-file.c:2404
#, c-format
msgid "unable to open %s"
msgstr "kan inte öppna %s"
-#: object-file.c:2553
+#: object-file.c:2599
#, c-format
msgid "hash mismatch for %s (expected %s)"
msgstr "hash stämmer inte för %s (förväntade %s)"
-#: object-file.c:2576
+#: object-file.c:2622
#, c-format
msgid "unable to mmap %s"
msgstr "kan inte utföra \"mmap\" för %s"
-#: object-file.c:2582
+#: object-file.c:2628
#, c-format
msgid "unable to unpack header of %s"
msgstr "kan inte packa upp huvud för %s"
-#: object-file.c:2587
+#: object-file.c:2633
#, c-format
msgid "unable to parse header of %s"
msgstr "kan inte tolka huvud för %s"
-#: object-file.c:2598
+#: object-file.c:2644
#, c-format
msgid "unable to unpack contents of %s"
msgstr "kan inte tolka innehåll i %s"
-#: object-name.c:480
+#. TRANSLATORS: This is a line of ambiguous object
+#. output shown when we cannot look up or parse the
+#. object in question. E.g. "deadbeef [bad object]".
+#.
+#: object-name.c:382
+#, c-format
+msgid "%s [bad object]"
+msgstr "%s [felaktig objekt]."
+
+#. TRANSLATORS: This is a line of ambiguous commit
+#. object output. E.g.:
+#. *
+#. "deadbeef commit 2021-01-01 - Some Commit Message"
+#.
+#: object-name.c:407
+#, c-format
+msgid "%s commit %s - %s"
+msgstr "%s incheckning %s - %s"
+
+#. TRANSLATORS: This is a line of ambiguous
+#. tag object output. E.g.:
+#. *
+#. "deadbeef tag 2022-01-01 - Some Tag Message"
+#. *
+#. The second argument is the YYYY-MM-DD found
+#. in the tag.
+#. *
+#. The third argument is the "tag" string
+#. from object.c.
+#.
+#: object-name.c:428
+#, c-format
+msgid "%s tag %s - %s"
+msgstr "%s tagg %s - %s"
+
+#. TRANSLATORS: This is a line of ambiguous
+#. tag object output where we couldn't parse
+#. the tag itself. E.g.:
+#. *
+#. "deadbeef [bad tag, could not parse it]"
+#.
+#: object-name.c:439
+#, c-format
+msgid "%s [bad tag, could not parse it]"
+msgstr "%s [felaktig tagg, kunde inte tolka]"
+
+#. TRANSLATORS: This is a line of ambiguous <type>
+#. object output. E.g. "deadbeef tree".
+#.
+#: object-name.c:447
+#, c-format
+msgid "%s tree"
+msgstr "%s-träd"
+
+#. TRANSLATORS: This is a line of ambiguous <type>
+#. object output. E.g. "deadbeef blob".
+#.
+#: object-name.c:453
+#, c-format
+msgid "%s blob"
+msgstr "%s blob"
+
+#: object-name.c:569
#, c-format
msgid "short object ID %s is ambiguous"
msgstr "kort objekt-ID %s är tvetydigt"
-#: object-name.c:491
-msgid "The candidates are:"
-msgstr "Kandidaterna är:"
+#. TRANSLATORS: The argument is the list of ambiguous
+#. objects composed in show_ambiguous_object(). See
+#. its "TRANSLATORS" comments for details.
+#.
+#: object-name.c:591
+#, c-format
+msgid ""
+"The candidates are:\n"
+"%s"
+msgstr ""
+"Kandidaterna är:\n"
+"%s"
-#: object-name.c:790
+#: object-name.c:888
msgid ""
"Git normally never creates a ref that ends with 40 hex characters\n"
"because it will be ignored when you just specify 40-hex. These refs\n"
@@ -5868,22 +6065,22 @@ msgstr ""
"Undersök referenserna och ta kanske bort dem. Stäng av meddelandet\n"
"genom att köra \"git config advice.objectNameWarning false\""
-#: object-name.c:910
+#: object-name.c:1008
#, c-format
msgid "log for '%.*s' only goes back to %s"
msgstr "loggen för \"%.*s\" räcker bara tillbaka till %s"
-#: object-name.c:918
+#: object-name.c:1016
#, c-format
msgid "log for '%.*s' only has %d entries"
msgstr "loggen för \"%.*s\" har bara %d poster"
-#: object-name.c:1696
+#: object-name.c:1794
#, c-format
msgid "path '%s' exists on disk, but not in '%.*s'"
msgstr "Sökvägen \"%s\" finns på disken, men inte i \"%.*s\""
-#: object-name.c:1702
+#: object-name.c:1800
#, c-format
msgid ""
"path '%s' exists, but not '%s'\n"
@@ -5892,12 +6089,12 @@ msgstr ""
"sökvägen \"%s\" finns, men inte i \"%s\"\n"
"tips: Menade du \"%.*s:%s\", även känd som \"%.*s:./%s\"?"
-#: object-name.c:1711
+#: object-name.c:1809
#, c-format
msgid "path '%s' does not exist in '%.*s'"
msgstr "sökvägen \"%s\" finns inte i \"%.*s\""
-#: object-name.c:1739
+#: object-name.c:1837
#, c-format
msgid ""
"path '%s' is in the index, but not at stage %d\n"
@@ -5906,7 +6103,7 @@ msgstr ""
"sökvägen \"%s\" finns i indexet men inte i etapp %d\n"
"tips: Menade du \":%d:%s\"?"
-#: object-name.c:1755
+#: object-name.c:1853
#, c-format
msgid ""
"path '%s' is in the index, but not '%s'\n"
@@ -5915,21 +6112,26 @@ msgstr ""
"sökvägen \"%s\" finns i indexet, men inte i \"%s\"\n"
"tips: Menade du \":%d:%s\", även känd som \":%d:./%s\"?"
-#: object-name.c:1763
+#: object-name.c:1861
#, c-format
msgid "path '%s' exists on disk, but not in the index"
msgstr "sökvägen \"%s\" finns på disk, men inte i indexet"
-#: object-name.c:1765
+#: object-name.c:1863
#, c-format
msgid "path '%s' does not exist (neither on disk nor in the index)"
msgstr "sökvägen \"%s\" finns inte (varken i disken eller i indexet)"
-#: object-name.c:1778
+#: object-name.c:1876
msgid "relative path syntax can't be used outside working tree"
msgstr "relativ sökväg kan inte användas utanför arbetskatalogen"
-#: object-name.c:1916
+#: object-name.c:1901
+#, c-format
+msgid "<object>:<path> required, only <object> '%s' given"
+msgstr "<objekt>:<sökväg> krävs, endast <objekt> \"%s\" har angivits"
+
+#: object-name.c:2014
#, c-format
msgid "invalid object name '%.*s'."
msgstr "felaktigt objektnamn \"%.*s\"."
@@ -5954,7 +6156,7 @@ msgstr "objektet %s har okänd typ-id %d"
msgid "unable to parse object: %s"
msgstr "kunde inte tolka objektet: %s"
-#: object.c:283 object.c:295
+#: object.c:283 object.c:294
#, c-format
msgid "hash mismatch %s"
msgstr "hashvärde stämmer inte överens %s"
@@ -5963,21 +6165,21 @@ msgstr "hashvärde stämmer inte överens %s"
msgid "multi-pack bitmap is missing required reverse index"
msgstr "flerpaketsbitkarta saknar nödvändigt omvänt index"
-#: pack-bitmap.c:429
+#: pack-bitmap.c:433
msgid "load_reverse_index: could not open pack"
msgstr "load_reverse_index: kunde inte öppna paket"
-#: pack-bitmap.c:1069 pack-bitmap.c:1075 builtin/pack-objects.c:2424
+#: pack-bitmap.c:1072 pack-bitmap.c:1078 builtin/pack-objects.c:2432
#, c-format
msgid "unable to get size of %s"
msgstr "kan inte hämta storlek på %s"
-#: pack-bitmap.c:1935
+#: pack-bitmap.c:1937
#, c-format
msgid "could not find %s in pack %s at offset %<PRIuMAX>"
msgstr "kunde inte hitta %s i paketet %s på offset %<PRIuMAX>"
-#: pack-bitmap.c:1971 builtin/rev-list.c:92
+#: pack-bitmap.c:1973 builtin/rev-list.c:91
#, c-format
msgid "unable to get disk usage of %s"
msgstr "kan inte hämta diskanvändning för %s"
@@ -6021,7 +6223,7 @@ msgstr "kunde inte ta status: %s"
msgid "failed to make %s readable"
msgstr "kunde inte göra %s läsbar"
-#: pack-write.c:520
+#: pack-write.c:521
#, c-format
msgid "could not write '%s' promisor file"
msgstr "kunde inte skriva kontraktsfilen \"%s\""
@@ -6360,20 +6562,20 @@ msgstr "object-info: förväntade \"flush\" efter argument"
msgid "Removing duplicate objects"
msgstr "Tar bort duplicerade objekt"
-#: range-diff.c:67
+#: range-diff.c:68
msgid "could not start `log`"
msgstr "kunde inte starta \"log\""
-#: range-diff.c:69
+#: range-diff.c:70
msgid "could not read `log` output"
msgstr "kunde inte läsa utdata från \"log\""
-#: range-diff.c:97 sequencer.c:5602
+#: range-diff.c:98 sequencer.c:5575
#, c-format
msgid "could not parse commit '%s'"
msgstr "kunde inte tolka incheckningen \"%s\""
-#: range-diff.c:111
+#: range-diff.c:109
#, c-format
msgid ""
"could not parse first line of `log` output: did not start with 'commit ': "
@@ -6382,65 +6584,65 @@ msgstr ""
"kunde inte tolka första raden i \"log\"-updata: börjar inte med \"commit \": "
"\"%s\""
-#: range-diff.c:137
+#: range-diff.c:132
#, c-format
msgid "could not parse git header '%.*s'"
msgstr "kunde inte tolka git-huvudet \"%.*s\""
-#: range-diff.c:304
+#: range-diff.c:300
msgid "failed to generate diff"
msgstr "misslyckades skapa diff"
-#: range-diff.c:562 range-diff.c:564
+#: range-diff.c:558 range-diff.c:560
#, c-format
msgid "could not parse log for '%s'"
msgstr "kunde inte tolka loggen för \"%s\""
-#: read-cache.c:723
+#: read-cache.c:737
#, c-format
msgid "will not add file alias '%s' ('%s' already exists in index)"
msgstr "lägger inte till filalias \"%s\" (\"%s\" finns redan i indexet)"
-#: read-cache.c:739
+#: read-cache.c:753
msgid "cannot create an empty blob in the object database"
msgstr "kan inte skapa tom blob i objektdatabasen"
-#: read-cache.c:761
+#: read-cache.c:775
#, c-format
msgid "%s: can only add regular files, symbolic links or git-directories"
msgstr ""
"%s: kan bara lägga till vanliga filer, symboliska länkar och git-kataloger"
-#: read-cache.c:766 builtin/submodule--helper.c:3242
+#: read-cache.c:780 builtin/submodule--helper.c:3359
#, c-format
msgid "'%s' does not have a commit checked out"
msgstr "\"%s\" har inte någon utcheckad incheckning"
-#: read-cache.c:818
+#: read-cache.c:832
#, c-format
msgid "unable to index file '%s'"
msgstr "kan inte indexera filen \"%s\""
-#: read-cache.c:837
+#: read-cache.c:851
#, c-format
msgid "unable to add '%s' to index"
msgstr "kan inte lägga till \"%s\" till indexet"
-#: read-cache.c:848
+#: read-cache.c:862
#, c-format
msgid "unable to stat '%s'"
msgstr "kan inte ta status på \"%s\""
-#: read-cache.c:1386
+#: read-cache.c:1404
#, c-format
msgid "'%s' appears as both a file and as a directory"
msgstr "\"%s\" finns både som en fil och en katalog"
-#: read-cache.c:1601
+#: read-cache.c:1619
msgid "Refresh index"
msgstr "Uppdatera indexet"
-#: read-cache.c:1733
+#: read-cache.c:1751
#, c-format
msgid ""
"index.version set, but the value is invalid.\n"
@@ -6449,7 +6651,7 @@ msgstr ""
"index.version satt, men värdet är ogiltigt.\n"
"Använder version %i"
-#: read-cache.c:1743
+#: read-cache.c:1761
#, c-format
msgid ""
"GIT_INDEX_VERSION set, but the value is invalid.\n"
@@ -6458,143 +6660,147 @@ msgstr ""
"GIT_INDEX_VERSION satt, men värdet är ogiltigt.\n"
"Använder version %i"
-#: read-cache.c:1799
+#: read-cache.c:1817
#, c-format
msgid "bad signature 0x%08x"
msgstr "felaktig signatur 0x%08x"
-#: read-cache.c:1802
+#: read-cache.c:1820
#, c-format
msgid "bad index version %d"
msgstr "felaktig indexversion %d"
-#: read-cache.c:1811
+#: read-cache.c:1829
msgid "bad index file sha1 signature"
msgstr "felaktig sha1-signatur för indexfil"
-#: read-cache.c:1845
+#: read-cache.c:1863
#, c-format
msgid "index uses %.4s extension, which we do not understand"
msgstr "index använder filtillägget %.4s, vilket vi inte förstår"
-#: read-cache.c:1847
+#: read-cache.c:1865
#, c-format
msgid "ignoring %.4s extension"
msgstr "ignorerar filtillägget %.4s"
-#: read-cache.c:1884
+#: read-cache.c:1902
#, c-format
msgid "unknown index entry format 0x%08x"
msgstr "okänt format 0x%08x på indexpost"
-#: read-cache.c:1900
+#: read-cache.c:1918
#, c-format
msgid "malformed name field in the index, near path '%s'"
msgstr "felformat namnfält i indexet, nära sökvägen \"%s\""
-#: read-cache.c:1957
+#: read-cache.c:1975
msgid "unordered stage entries in index"
msgstr "osorterade köposter i index"
-#: read-cache.c:1960
+#: read-cache.c:1978
#, c-format
msgid "multiple stage entries for merged file '%s'"
msgstr "flera köposter för den sammanslagna filen \"%s\""
-#: read-cache.c:1963
+#: read-cache.c:1981
#, c-format
msgid "unordered stage entries for '%s'"
msgstr "osorterade köposter för \"%s\""
-#: read-cache.c:2078 read-cache.c:2384 rerere.c:549 rerere.c:583 rerere.c:1095
-#: submodule.c:1662 builtin/add.c:600 builtin/check-ignore.c:183
-#: builtin/checkout.c:527 builtin/checkout.c:719 builtin/clean.c:1013
-#: builtin/commit.c:378 builtin/diff-tree.c:122 builtin/grep.c:519
-#: builtin/mv.c:148 builtin/reset.c:499 builtin/rm.c:293
-#: builtin/submodule--helper.c:327 builtin/submodule--helper.c:3202
+#: read-cache.c:2096 read-cache.c:2402 rerere.c:549 rerere.c:583 rerere.c:1096
+#: submodule.c:1831 builtin/add.c:586 builtin/check-ignore.c:183
+#: builtin/checkout.c:532 builtin/checkout.c:724 builtin/clean.c:1016
+#: builtin/commit.c:379 builtin/diff-tree.c:122 builtin/grep.c:521
+#: builtin/mv.c:148 builtin/reset.c:506 builtin/rm.c:293
+#: builtin/submodule--helper.c:335 builtin/submodule--helper.c:3319
msgid "index file corrupt"
msgstr "indexfilen trasig"
-#: read-cache.c:2222
+#: read-cache.c:2240
#, c-format
msgid "unable to create load_cache_entries thread: %s"
msgstr "kunde inte skapa tråd för load_cache_entries: %s"
-#: read-cache.c:2235
+#: read-cache.c:2253
#, c-format
msgid "unable to join load_cache_entries thread: %s"
msgstr "kunde inte ansluta till tråden för load_cache_entries: %s"
-#: read-cache.c:2268
+#: read-cache.c:2286
#, c-format
msgid "%s: index file open failed"
msgstr "%s: öppning av indexfilen misslyckades"
-#: read-cache.c:2272
+#: read-cache.c:2290
#, c-format
msgid "%s: cannot stat the open index"
msgstr "%s: kan inte ta startus på det öppna indexet"
-#: read-cache.c:2276
+#: read-cache.c:2294
#, c-format
msgid "%s: index file smaller than expected"
msgstr "%s: indexfilen mindre än förväntat"
-#: read-cache.c:2280
+#: read-cache.c:2298
#, c-format
msgid "%s: unable to map index file%s"
msgstr "%s: kan inte koppla indexfilen%s"
-#: read-cache.c:2323
+#: read-cache.c:2341
#, c-format
msgid "unable to create load_index_extensions thread: %s"
msgstr "kunde inte skapa load_index_extensions-tråden: %s"
-#: read-cache.c:2350
+#: read-cache.c:2368
#, c-format
msgid "unable to join load_index_extensions thread: %s"
msgstr "kunde inte utföra join på load_index_extensions-tråden: %s"
-#: read-cache.c:2396
+#: read-cache.c:2414
#, c-format
msgid "could not freshen shared index '%s'"
msgstr "kunde inte uppdatera delat index \"%s\""
-#: read-cache.c:2455
+#: read-cache.c:2473
#, c-format
msgid "broken index, expect %s in %s, got %s"
msgstr "trasigt index, förväntade %s i %s, fick %s"
-#: read-cache.c:3086 strbuf.c:1191 wrapper.c:641 builtin/merge.c:1150
+#: read-cache.c:3032
+msgid "cannot write split index for a sparse index"
+msgstr "kan inte skriva delat index för ett glest index"
+
+#: read-cache.c:3114 strbuf.c:1192 wrapper.c:717 builtin/merge.c:1156
#, c-format
msgid "could not close '%s'"
msgstr "kunde inte stänga \"%s\""
-#: read-cache.c:3129
+#: read-cache.c:3157
msgid "failed to convert to a sparse-index"
msgstr "misslyckades omvandla till glest index"
-#: read-cache.c:3200
+#: read-cache.c:3228
#, c-format
msgid "could not stat '%s'"
msgstr "kunde inte ta status på \"%s\""
-#: read-cache.c:3213
+#: read-cache.c:3241
#, c-format
msgid "unable to open git dir: %s"
msgstr "kunde inte öppna git-katalog: %s"
-#: read-cache.c:3225
+#: read-cache.c:3253
#, c-format
msgid "unable to unlink: %s"
msgstr "misslyckades ta bort länken: %s"
-#: read-cache.c:3254
+#: read-cache.c:3282
#, c-format
msgid "cannot fix permission bits on '%s'"
msgstr "kan inte rätta behörighetsbitar på \"%s\""
-#: read-cache.c:3411
+#: read-cache.c:3439
#, c-format
msgid "%s: cannot drop to stage #0"
msgstr "%s: kan inte återgå till kö 0"
@@ -6718,9 +6924,9 @@ msgstr ""
"Ombaseringen kommer dock att avbrytas om du tar bort allting.\n"
"\n"
-#: rebase-interactive.c:113 rerere.c:469 rerere.c:676 sequencer.c:3883
-#: sequencer.c:3909 sequencer.c:5708 builtin/fsck.c:328 builtin/gc.c:1791
-#: builtin/rebase.c:190
+#: rebase-interactive.c:113 rerere.c:469 rerere.c:677 sequencer.c:3879
+#: sequencer.c:3905 sequencer.c:5681 builtin/fsck.c:328 builtin/gc.c:1791
+#: builtin/rebase.c:191
#, c-format
msgid "could not write '%s'"
msgstr "kunde inte skriva \"%s\""
@@ -6764,7 +6970,7 @@ msgstr ""
msgid "%s: 'preserve' superseded by 'merges'"
msgstr "%s: \"preserve\" har ersatts av \"merges\""
-#: ref-filter.c:42 wt-status.c:2048
+#: ref-filter.c:42 wt-status.c:2057
msgid "gone"
msgstr "försvunnen"
@@ -6931,81 +7137,91 @@ msgstr "kommandot förkastar atom %%(%.*s)"
msgid "--format=%.*s cannot be used with --python, --shell, --tcl"
msgstr "--format=%.*s kan inte användas med --python, --shell, --tcl"
-#: ref-filter.c:1706
+#: ref-filter.c:1707
#, c-format
msgid "(no branch, rebasing %s)"
msgstr "(ingen gren, ombaserar %s)"
-#: ref-filter.c:1709
+#: ref-filter.c:1710
#, c-format
msgid "(no branch, rebasing detached HEAD %s)"
msgstr "(ingen gren, ombaserar frånkopplat HEAD %s)"
-#: ref-filter.c:1712
+#: ref-filter.c:1713
#, c-format
msgid "(no branch, bisect started on %s)"
msgstr "(ingen gren, \"bisect\" startad på %s)"
-#: ref-filter.c:1716
+#: ref-filter.c:1717
#, c-format
msgid "(HEAD detached at %s)"
msgstr "(HEAD frånkopplat vid %s)"
-#: ref-filter.c:1719
+#: ref-filter.c:1720
#, c-format
msgid "(HEAD detached from %s)"
msgstr "(HEAD frånkopplat från %s)"
-#: ref-filter.c:1722
+#: ref-filter.c:1723
msgid "(no branch)"
msgstr "(ingen gren)"
-#: ref-filter.c:1754 ref-filter.c:1972
+#: ref-filter.c:1755 ref-filter.c:1973
#, c-format
msgid "missing object %s for %s"
msgstr "objektet %s saknas för %s"
-#: ref-filter.c:1764
+#: ref-filter.c:1765
#, c-format
msgid "parse_object_buffer failed on %s for %s"
msgstr "parse_object_buffer misslyckades på %s för %s"
-#: ref-filter.c:2155
+#: ref-filter.c:2156
#, c-format
msgid "malformed object at '%s'"
msgstr "felformat objekt vid \"%s\""
-#: ref-filter.c:2245
+#: ref-filter.c:2246
#, c-format
msgid "ignoring ref with broken name %s"
msgstr "ignorerar referens med trasigt namn %s"
-#: ref-filter.c:2250 refs.c:676
+#: ref-filter.c:2251 refs.c:672
#, c-format
msgid "ignoring broken ref %s"
msgstr "ignorerar trasig referens %s"
-#: ref-filter.c:2629
+#: ref-filter.c:2630
#, c-format
msgid "format: %%(end) atom missing"
msgstr "format: atomen %%(end) saknas"
-#: ref-filter.c:2740
+#: ref-filter.c:2741
#, c-format
msgid "malformed object name %s"
msgstr "felformat objektnamn %s"
-#: ref-filter.c:2745
+#: ref-filter.c:2746
#, c-format
msgid "option `%s' must point to a commit"
msgstr "flaggan \"%s\" måste peka på en incheckning"
-#: refs.c:261
+#: reflog.c:407
+#, c-format
+msgid "not a reflog: %s"
+msgstr "inte en referenslogg: %s"
+
+#: reflog.c:410
+#, c-format
+msgid "no reflog for '%s'"
+msgstr "ingen referenslogg för \"%s\""
+
+#: refs.c:262
#, c-format
msgid "%s does not point to a valid object!"
msgstr "\"%s\" pekar inte på ett giltigt objekt!"
-#: refs.c:563
+#: refs.c:561
#, c-format
msgid ""
"Using '%s' as the name for the initial branch. This default branch name\n"
@@ -7030,81 +7246,81 @@ msgstr ""
"\n"
"\tgit branch -m <namn>\n"
-#: refs.c:585
+#: refs.c:583
#, c-format
msgid "could not retrieve `%s`"
msgstr "kunde inte hämta \"%s\""
-#: refs.c:595
+#: refs.c:593
#, c-format
msgid "invalid branch name: %s = %s"
msgstr "felaktigt namn på gren: %s = %s"
-#: refs.c:674
+#: refs.c:670
#, c-format
msgid "ignoring dangling symref %s"
msgstr "ignorerar dinglande symbolisk referens %s"
-#: refs.c:925
+#: refs.c:919
#, c-format
msgid "log for ref %s has gap after %s"
msgstr "loggen för referensen %s har lucka efter %s"
-#: refs.c:932
+#: refs.c:926
#, c-format
msgid "log for ref %s unexpectedly ended on %s"
msgstr "loggen för referensen %s slutade oväntat på %s"
-#: refs.c:997
+#: refs.c:991
#, c-format
msgid "log for %s is empty"
msgstr "loggen för %s är tom"
-#: refs.c:1090
+#: refs.c:1086
#, c-format
msgid "refusing to update ref with bad name '%s'"
msgstr "vägrar uppdatera referens med trasigt namn \"%s\""
-#: refs.c:1168
+#: refs.c:1164
#, c-format
msgid "update_ref failed for ref '%s': %s"
msgstr "update_ref misslyckades för referensen \"%s\": %s"
-#: refs.c:2067
+#: refs.c:2059
#, c-format
msgid "multiple updates for ref '%s' not allowed"
msgstr "flera uppdateringar för referensen \"%s\" tillåts inte"
-#: refs.c:2150
+#: refs.c:2145
msgid "ref updates forbidden inside quarantine environment"
msgstr "referensuppdateringar förbjudna i karantänmiljö"
-#: refs.c:2161
+#: refs.c:2156
msgid "ref updates aborted by hook"
msgstr "referensuppdateringar avbrutna av krok"
-#: refs.c:2269 refs.c:2299
+#: refs.c:2264 refs.c:2294
#, c-format
msgid "'%s' exists; cannot create '%s'"
msgstr "\"%s\" finns; kan inte skapa \"%s\""
-#: refs.c:2275 refs.c:2310
+#: refs.c:2270 refs.c:2305
#, c-format
msgid "cannot process '%s' and '%s' at the same time"
msgstr "kan inte hantera \"%s\" och \"%s\" samtidigt"
-#: refs/files-backend.c:1267
+#: refs/files-backend.c:1295
#, c-format
msgid "could not remove reference %s"
msgstr "kunde inte ta bort referensen %s"
-#: refs/files-backend.c:1281 refs/packed-backend.c:1549
-#: refs/packed-backend.c:1559
+#: refs/files-backend.c:1310 refs/packed-backend.c:1565
+#: refs/packed-backend.c:1575
#, c-format
msgid "could not delete reference %s: %s"
msgstr "kunde inte ta bort referensen %s: %s"
-#: refs/files-backend.c:1284 refs/packed-backend.c:1562
+#: refs/files-backend.c:1313 refs/packed-backend.c:1578
#, c-format
msgid "could not delete references: %s"
msgstr "kunde inte ta bort referenser: %s"
@@ -7127,37 +7343,37 @@ msgstr "mer än en receivepack angavs, använder den första"
msgid "more than one uploadpack given, using the first"
msgstr "mer än en uploadpack angavs, använder den första"
-#: remote.c:699
+#: remote.c:698
#, c-format
msgid "Cannot fetch both %s and %s to %s"
msgstr "Kan inte hämta både %s och %s till %s"
-#: remote.c:703
+#: remote.c:702
#, c-format
msgid "%s usually tracks %s, not %s"
msgstr "%s spårar vanligtvis %s, inte %s"
-#: remote.c:707
+#: remote.c:706
#, c-format
msgid "%s tracks both %s and %s"
msgstr "%s spårar både %s och %s"
-#: remote.c:775
+#: remote.c:774
#, c-format
msgid "key '%s' of pattern had no '*'"
msgstr "nyckeln \"%s\" i mönstret innehåller ingen \"*\""
-#: remote.c:785
+#: remote.c:784
#, c-format
msgid "value '%s' of pattern has no '*'"
msgstr "värdet \"%s\" i mönstret innehåller ingen \"*\""
-#: remote.c:1192
+#: remote.c:1191
#, c-format
msgid "src refspec %s does not match any"
msgstr "käll-referensspecifikationen %s motsvarar ingen"
-#: remote.c:1197
+#: remote.c:1196
#, c-format
msgid "src refspec %s matches more than one"
msgstr "käll-referensspecifikationen %s motsvarar mer än en"
@@ -7166,7 +7382,7 @@ msgstr "käll-referensspecifikationen %s motsvarar mer än en"
#. <remote> <src>:<dst>" push, and "being pushed ('%s')" is
#. the <src>.
#.
-#: remote.c:1212
+#: remote.c:1211
#, c-format
msgid ""
"The destination you provided is not a full refname (i.e.,\n"
@@ -7189,7 +7405,7 @@ msgstr ""
"\n"
"Inget av dem fungerade, så vi gav upp. Ange fullständig referens."
-#: remote.c:1232
+#: remote.c:1231
#, c-format
msgid ""
"The <src> part of the refspec is a commit object.\n"
@@ -7200,7 +7416,7 @@ msgstr ""
"Var det meningen att skapa en ny gren genom att sända\n"
"till \"%s:refs/heads/%s\"?"
-#: remote.c:1237
+#: remote.c:1236
#, c-format
msgid ""
"The <src> part of the refspec is a tag object.\n"
@@ -7211,7 +7427,7 @@ msgstr ""
"Var det meningen att skapa en ny tagg genom att sända\n"
"till \"%s:refs/tags/%s\"?"
-#: remote.c:1242
+#: remote.c:1241
#, c-format
msgid ""
"The <src> part of the refspec is a tree object.\n"
@@ -7222,7 +7438,7 @@ msgstr ""
"Var det meningen att tagga ett nytt träd genom att sända\n"
"till \"%s:refs/tags/%s\"?"
-#: remote.c:1247
+#: remote.c:1246
#, c-format
msgid ""
"The <src> part of the refspec is a blob object.\n"
@@ -7233,114 +7449,114 @@ msgstr ""
"Var det meningen att tagga en ny blob genom att sända\n"
"till \"%s:refs/tags/%s\"?"
-#: remote.c:1283
+#: remote.c:1282
#, c-format
msgid "%s cannot be resolved to branch"
msgstr "%s kan inte slås upp till en gren"
-#: remote.c:1294
+#: remote.c:1293
#, c-format
msgid "unable to delete '%s': remote ref does not exist"
msgstr "kan inte ta bort \"%s\": fjärreferensen finns inte"
-#: remote.c:1306
+#: remote.c:1305
#, c-format
msgid "dst refspec %s matches more than one"
msgstr "fjärr-referensspecifikationen \"%s\" motsvarar mer än en"
-#: remote.c:1313
+#: remote.c:1312
#, c-format
msgid "dst ref %s receives from more than one src"
msgstr "fjärr-referensen \"%s\" hämtar från mer än en källa"
-#: remote.c:1834 remote.c:1941
+#: remote.c:1833 remote.c:1940
msgid "HEAD does not point to a branch"
msgstr "HEAD pekar inte på en gren"
-#: remote.c:1843
+#: remote.c:1842
#, c-format
msgid "no such branch: '%s'"
msgstr "okänd gren: \"%s\""
-#: remote.c:1846
+#: remote.c:1845
#, c-format
msgid "no upstream configured for branch '%s'"
msgstr "ingen standarduppström angiven för grenen \"%s\""
-#: remote.c:1852
+#: remote.c:1851
#, c-format
msgid "upstream branch '%s' not stored as a remote-tracking branch"
msgstr "uppströmsgrenen \"%s\" är inte lagrad som en fjärrspårande gren"
-#: remote.c:1867
+#: remote.c:1866
#, c-format
msgid "push destination '%s' on remote '%s' has no local tracking branch"
msgstr "push-målet \"%s\" på fjärren \"%s\" har ingen lokalt spårande gren"
-#: remote.c:1882
+#: remote.c:1881
#, c-format
msgid "branch '%s' has no remote for pushing"
msgstr "grenen \"%s\" har ingen fjärr för \"push\""
-#: remote.c:1892
+#: remote.c:1891
#, c-format
msgid "push refspecs for '%s' do not include '%s'"
msgstr "\"push\"-referensspecifikation för \"%s\" innehåller inte \"%s\""
-#: remote.c:1905
+#: remote.c:1904
msgid "push has no destination (push.default is 'nothing')"
msgstr "\"push\" har inget mål (push.default är \"ingenting\")"
-#: remote.c:1927
+#: remote.c:1926
msgid "cannot resolve 'simple' push to a single destination"
msgstr "\"enkel push\" motsvarar flera olika mål"
-#: remote.c:2060
+#: remote.c:2059
#, c-format
msgid "couldn't find remote ref %s"
msgstr "Kunde inte hitta fjärr-referensen %s"
-#: remote.c:2073
+#: remote.c:2072
#, c-format
msgid "* Ignoring funny ref '%s' locally"
msgstr "* Ignorerar märklig referens \"%s\" lokalt"
-#: remote.c:2236
+#: remote.c:2235
#, c-format
msgid "Your branch is based on '%s', but the upstream is gone.\n"
msgstr "Din gren är baserad på \"%s\", men den har försvunnit uppströms.\n"
-#: remote.c:2240
+#: remote.c:2239
msgid " (use \"git branch --unset-upstream\" to fixup)\n"
msgstr " (använd \"git branch --unset-upstream\" för att rätta)\n"
-#: remote.c:2243
+#: remote.c:2242
#, c-format
msgid "Your branch is up to date with '%s'.\n"
msgstr "Din gren är à jour med \"%s\".\n"
-#: remote.c:2247
+#: remote.c:2246
#, c-format
msgid "Your branch and '%s' refer to different commits.\n"
msgstr "Din gren och \"%s\" pekar på olika incheckningar.\n"
-#: remote.c:2250
+#: remote.c:2249
#, c-format
msgid " (use \"%s\" for details)\n"
msgstr " (använd \"%s\" för detaljer)\n"
-#: remote.c:2254
+#: remote.c:2253
#, c-format
msgid "Your branch is ahead of '%s' by %d commit.\n"
msgid_plural "Your branch is ahead of '%s' by %d commits.\n"
msgstr[0] "Din gren ligger före \"%s\" med %d incheckning.\n"
msgstr[1] "Din gren ligger före \"%s\" med %d incheckningar.\n"
-#: remote.c:2260
+#: remote.c:2259
msgid " (use \"git push\" to publish your local commits)\n"
msgstr " (använd \"git push\" för att publicera dina lokala incheckningar)\n"
-#: remote.c:2263
+#: remote.c:2262
#, c-format
msgid "Your branch is behind '%s' by %d commit, and can be fast-forwarded.\n"
msgid_plural ""
@@ -7350,11 +7566,11 @@ msgstr[0] ""
msgstr[1] ""
"Din gren ligger efter \"%s\" med %d incheckningar, och kan snabbspolas.\n"
-#: remote.c:2271
+#: remote.c:2270
msgid " (use \"git pull\" to update your local branch)\n"
msgstr " (använd \"git pull\" för att uppdatera din lokala gren)\n"
-#: remote.c:2274
+#: remote.c:2273
#, c-format
msgid ""
"Your branch and '%s' have diverged,\n"
@@ -7369,11 +7585,11 @@ msgstr[1] ""
"Din gren och \"%s\" har divergerat,\n"
"och har %d respektive %d olika incheckningar.\n"
-#: remote.c:2284
+#: remote.c:2283
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:2476
+#: remote.c:2475
#, c-format
msgid "cannot parse expected object name '%s'"
msgstr "kan inte tolka förväntat objektnamn \"%s\""
@@ -7411,104 +7627,108 @@ msgstr "fel vid skrivning av \"%s\" (%s)"
msgid "failed to flush '%s'"
msgstr "misslyckades spola \"%s\""
-#: rerere.c:487 rerere.c:1023
+#: rerere.c:487 rerere.c:1024
#, c-format
msgid "could not parse conflict hunks in '%s'"
msgstr "kunde inte tolka konflikt-stycket i \"%s\""
-#: rerere.c:668
+#: rerere.c:669
#, c-format
msgid "failed utime() on '%s'"
msgstr "\"utime()\" misslyckades på \"%s\""
-#: rerere.c:678
+#: rerere.c:679
#, c-format
msgid "writing '%s' failed"
msgstr "misslyckades skriva \"%s\""
-#: rerere.c:698
+#: rerere.c:699
#, c-format
msgid "Staged '%s' using previous resolution."
msgstr "Köade \"%s\" med sparad lösning."
-#: rerere.c:737
+#: rerere.c:738
#, c-format
msgid "Recorded resolution for '%s'."
msgstr "Sparade lösning för \"%s\"."
-#: rerere.c:772
+#: rerere.c:773
#, c-format
msgid "Resolved '%s' using previous resolution."
msgstr "Löste \"%s\" med tidigare lösning."
-#: rerere.c:787
+#: rerere.c:788
#, c-format
msgid "cannot unlink stray '%s'"
msgstr "kan inte ta bort lös länk \"%s\""
-#: rerere.c:791
+#: rerere.c:792
#, c-format
msgid "Recorded preimage for '%s'"
msgstr "Sparade förhandsbild för \"%s\""
-#: rerere.c:865 submodule.c:2121 builtin/log.c:2017
-#: builtin/submodule--helper.c:1777 builtin/submodule--helper.c:1820
+#: rerere.c:866 submodule.c:2290 builtin/log.c:2042
+#: builtin/submodule--helper.c:1786 builtin/submodule--helper.c:1833
#, c-format
msgid "could not create directory '%s'"
msgstr "kunde inte skapa katalogen \"%s\""
-#: rerere.c:1041
+#: rerere.c:1042
#, c-format
msgid "failed to update conflicted state in '%s'"
msgstr "misslyckades uppdatera tillstånd för sammanslagningsproblem i \"%s\""
-#: rerere.c:1052 rerere.c:1059
+#: rerere.c:1053 rerere.c:1060
#, c-format
msgid "no remembered resolution for '%s'"
msgstr "inget sparat sammanslagningsresultat för \"%s\""
-#: rerere.c:1061
+#: rerere.c:1062
#, c-format
msgid "cannot unlink '%s'"
msgstr "kan inte ta bort länken \"%s\""
-#: rerere.c:1071
+#: rerere.c:1072
#, c-format
msgid "Updated preimage for '%s'"
msgstr "Uppdaterade förhandsbild för \"%s\""
-#: rerere.c:1080
+#: rerere.c:1081
#, c-format
msgid "Forgot resolution for '%s'\n"
msgstr "Glömde lösning för \"%s\"\n"
-#: rerere.c:1191
+#: rerere.c:1192
msgid "unable to open rr-cache directory"
msgstr "kan inte uppdatera katalogen rr-cache"
-#: reset.c:42
+#: reset.c:112
msgid "could not determine HEAD revision"
msgstr "kunde inte bestämma HEAD-revision"
-#: reset.c:70 reset.c:76 sequencer.c:3700
+#: reset.c:141 reset.c:147 sequencer.c:3696
#, c-format
msgid "failed to find tree of %s"
msgstr "kunde inte hitta trädet för %s."
-#: revision.c:2347
+#: revision.c:2358
msgid "--unpacked=<packfile> no longer supported"
msgstr "--unpacked=<paketfil> stöds inte längre"
-#: revision.c:2686
+#: revision.c:2712
msgid "your current branch appears to be broken"
msgstr "din nuvarande gren verkar vara trasig"
-#: revision.c:2689
+#: revision.c:2715
#, 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:2891
+#: revision.c:2901
+msgid "object filtering requires --objects"
+msgstr "objektfiltrering kräver --objects"
+
+#: revision.c:2918
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"
@@ -7577,7 +7797,7 @@ msgstr "felaktigt incheckningsmeddelandestädningsläge \"%s\""
msgid "could not delete '%s'"
msgstr "kunde inte ta bort \"%s\""
-#: sequencer.c:345 sequencer.c:4751 builtin/rebase.c:563 builtin/rebase.c:1297
+#: sequencer.c:345 sequencer.c:4724 builtin/rebase.c:564 builtin/rebase.c:1326
#: builtin/rm.c:409
#, c-format
msgid "could not remove '%s'"
@@ -7640,13 +7860,13 @@ msgstr ""
"För att avbryta och återgå till där du var före \"git revert\",\n"
"kör \"git revert --abort\"."
-#: sequencer.c:448 sequencer.c:3292
+#: sequencer.c:448 sequencer.c:3288
#, c-format
msgid "could not lock '%s'"
msgstr "kunde inte låsa \"%s\""
-#: sequencer.c:450 sequencer.c:3091 sequencer.c:3296 sequencer.c:3310
-#: sequencer.c:3561 sequencer.c:5618 strbuf.c:1188 wrapper.c:639
+#: sequencer.c:450 sequencer.c:3087 sequencer.c:3292 sequencer.c:3306
+#: sequencer.c:3557 sequencer.c:5591 strbuf.c:1189 wrapper.c:715
#, c-format
msgid "could not write to '%s'"
msgstr "kunde inte skriva till \"%s\""
@@ -7656,14 +7876,14 @@ msgstr "kunde inte skriva till \"%s\""
msgid "could not write eol to '%s'"
msgstr "kunde inte skriva radslut till \"%s\""
-#: sequencer.c:460 sequencer.c:3096 sequencer.c:3298 sequencer.c:3312
-#: sequencer.c:3569
+#: sequencer.c:460 sequencer.c:3092 sequencer.c:3294 sequencer.c:3308
+#: sequencer.c:3565
#, c-format
msgid "failed to finalize '%s'"
msgstr "misslyckades färdigställa \"%s\""
-#: sequencer.c:473 sequencer.c:1934 sequencer.c:3116 sequencer.c:3551
-#: sequencer.c:3679 builtin/am.c:289 builtin/commit.c:834 builtin/merge.c:1148
+#: sequencer.c:473 sequencer.c:1930 sequencer.c:3112 sequencer.c:3547
+#: sequencer.c:3675 builtin/am.c:290 builtin/commit.c:837 builtin/merge.c:1154
#, c-format
msgid "could not read '%s'"
msgstr "kunde inte läsa \"%s\""
@@ -7682,7 +7902,7 @@ msgstr "checka in dina ändringar eller använd \"stash\" för att fortsätta."
msgid "%s: fast-forward"
msgstr "%s: snabbspola"
-#: sequencer.c:574 builtin/tag.c:614
+#: sequencer.c:574 builtin/tag.c:615
#, c-format
msgid "Invalid cleanup mode %s"
msgstr "Felaktigt städningsläge %s"
@@ -7713,8 +7933,8 @@ msgstr "ingen nyckel i \"%.*s\""
msgid "unable to dequote value of '%s'"
msgstr "kan inte ta bort citering av värdet \"%s\""
-#: sequencer.c:841 wrapper.c:209 wrapper.c:379 builtin/am.c:756
-#: builtin/am.c:848 builtin/rebase.c:694
+#: sequencer.c:841 wrapper.c:219 wrapper.c:389 builtin/am.c:757
+#: builtin/am.c:849 builtin/rebase.c:699
#, c-format
msgid "could not open '%s' for reading"
msgstr "kunde inte öppna \"%s\" för läsning"
@@ -7833,351 +8053,346 @@ msgstr ""
"\n"
" git commit --amend --reset-author\n"
-#: sequencer.c:1288
+#: sequencer.c:1287
msgid "couldn't look up newly created commit"
msgstr "kunde inte slå upp en precis skapad incheckning"
-#: sequencer.c:1290
+#: sequencer.c:1289
msgid "could not parse newly created commit"
msgstr "kunde inte tolka en precis skapad incheckning"
-#: sequencer.c:1339
+#: sequencer.c:1336
msgid "unable to resolve HEAD after creating commit"
msgstr "kunde inte bestämma HEAD efter att ha skapat incheckning"
-#: sequencer.c:1342
+#: sequencer.c:1338
msgid "detached HEAD"
msgstr "frånkopplad HEAD"
-#: sequencer.c:1346
+#: sequencer.c:1342
msgid " (root-commit)"
msgstr " (rotincheckning)"
-#: sequencer.c:1367
+#: sequencer.c:1363
msgid "could not parse HEAD"
msgstr "kunde inte tolka HEAD"
-#: sequencer.c:1369
+#: sequencer.c:1365
#, c-format
msgid "HEAD %s is not a commit!"
msgstr "HEAD %s är inte en incheckning!"
-#: sequencer.c:1373 sequencer.c:1451 builtin/commit.c:1708
+#: sequencer.c:1369 sequencer.c:1447 builtin/commit.c:1707
msgid "could not parse HEAD commit"
msgstr "kunde inte tolka HEAD:s incheckning"
-#: sequencer.c:1429 sequencer.c:2314
+#: sequencer.c:1425 sequencer.c:2310
msgid "unable to parse commit author"
msgstr "kunde inte tolka incheckningens författare"
-#: sequencer.c:1440 builtin/am.c:1643 builtin/merge.c:710
+#: sequencer.c:1436 builtin/am.c:1644 builtin/merge.c:710
msgid "git write-tree failed to write a tree"
msgstr "git write-tree misslyckades skriva ett träd"
-#: sequencer.c:1473 sequencer.c:1593
+#: sequencer.c:1469 sequencer.c:1589
#, c-format
msgid "unable to read commit message from '%s'"
msgstr "kunde inte läsa incheckningsmeddelande från \"%s\""
-#: sequencer.c:1504 sequencer.c:1536
+#: sequencer.c:1500 sequencer.c:1532
#, c-format
msgid "invalid author identity '%s'"
msgstr "ogiltig författar-identitet \"%s\""
-#: sequencer.c:1510
+#: sequencer.c:1506
msgid "corrupt author: missing date information"
msgstr "trasig författare: saknar datuminformation"
-#: sequencer.c:1549 builtin/am.c:1670 builtin/commit.c:1822 builtin/merge.c:915
-#: builtin/merge.c:940 t/helper/test-fast-rebase.c:78
+#: sequencer.c:1545 builtin/am.c:1671 builtin/commit.c:1821 builtin/merge.c:921
+#: builtin/merge.c:946 t/helper/test-fast-rebase.c:78
msgid "failed to write commit object"
msgstr "kunde inte skriva incheckningsobjekt"
-#: sequencer.c:1576 sequencer.c:4523 t/helper/test-fast-rebase.c:199
+#: sequencer.c:1572 sequencer.c:4496 t/helper/test-fast-rebase.c:199
#: t/helper/test-fast-rebase.c:217
#, c-format
msgid "could not update %s"
msgstr "kunde inte uppdatera %s"
-#: sequencer.c:1625
+#: sequencer.c:1621
#, c-format
msgid "could not parse commit %s"
msgstr "kunde inte tolka incheckningen %s"
-#: sequencer.c:1630
+#: sequencer.c:1626
#, c-format
msgid "could not parse parent commit %s"
msgstr "kunde inte tolka föräldraincheckningen %s"
-#: sequencer.c:1713 sequencer.c:1994
+#: sequencer.c:1709 sequencer.c:1990
#, c-format
msgid "unknown command: %d"
msgstr "okänt kommando: %d"
-#: sequencer.c:1755
+#: sequencer.c:1751
msgid "This is the 1st commit message:"
msgstr "Det här är 1:a incheckningsmeddelandet:"
-#: sequencer.c:1756
+#: sequencer.c:1752
#, c-format
msgid "This is the commit message #%d:"
msgstr "Det här är incheckningsmeddelande %d:"
-#: sequencer.c:1757
+#: sequencer.c:1753
msgid "The 1st commit message will be skipped:"
msgstr "1:a incheckningsmeddelandet kommer hoppas över:"
-#: sequencer.c:1758
+#: sequencer.c:1754
#, c-format
msgid "The commit message #%d will be skipped:"
msgstr "Incheckningsmeddelande %d kommer hoppas över:"
-#: sequencer.c:1759
+#: sequencer.c:1755
#, c-format
msgid "This is a combination of %d commits."
msgstr "Det här är en kombination av %d incheckningar."
-#: sequencer.c:1906 sequencer.c:1963
+#: sequencer.c:1902 sequencer.c:1959
#, c-format
msgid "cannot write '%s'"
msgstr "kan inte skriva \"%s\""
-#: sequencer.c:1953
+#: sequencer.c:1949
msgid "need a HEAD to fixup"
msgstr "behöver en HEAD-incheckning att rätta"
-#: sequencer.c:1955 sequencer.c:3596
+#: sequencer.c:1951 sequencer.c:3592
msgid "could not read HEAD"
msgstr "kunde inte läsa HEAD"
-#: sequencer.c:1957
+#: sequencer.c:1953
msgid "could not read HEAD's commit message"
msgstr "kunde inte läsa HEAD:s incheckningsmeddelande"
-#: sequencer.c:1981
+#: sequencer.c:1977
#, c-format
msgid "could not read commit message of %s"
msgstr "kunde inte läsa incheckningsmeddelande för %s"
-#: sequencer.c:2091
+#: sequencer.c:2087
msgid "your index file is unmerged."
msgstr "din indexfil har inte slagits ihop."
-#: sequencer.c:2098
+#: sequencer.c:2094
msgid "cannot fixup root commit"
msgstr "kan inte göra \"fixup\" på rotincheckning"
-#: sequencer.c:2117
+#: sequencer.c:2113
#, c-format
msgid "commit %s is a merge but no -m option was given."
msgstr "incheckning %s är en sammanslagning, men flaggan -m angavs inte."
-#: sequencer.c:2125 sequencer.c:2133
+#: sequencer.c:2121 sequencer.c:2129
#, c-format
msgid "commit %s does not have parent %d"
msgstr "incheckning %s har inte förälder %d"
-#: sequencer.c:2139
+#: sequencer.c:2135
#, c-format
msgid "cannot get commit message for %s"
msgstr "kan inte hämta incheckningsmeddelande för %s"
#. TRANSLATORS: The first %s will be a "todo" command like
#. "revert" or "pick", the second %s a SHA1.
-#: sequencer.c:2158
+#: sequencer.c:2154
#, c-format
msgid "%s: cannot parse parent commit %s"
msgstr "%s: kan inte tolka föräldraincheckningen %s"
-#: sequencer.c:2224
+#: sequencer.c:2220
#, c-format
msgid "could not rename '%s' to '%s'"
msgstr "kunde inte byta namn på \"%s\" till \"%s\""
-#: sequencer.c:2284
+#: sequencer.c:2280
#, c-format
msgid "could not revert %s... %s"
msgstr "kunde inte ångra %s... %s"
-#: sequencer.c:2285
+#: sequencer.c:2281
#, c-format
msgid "could not apply %s... %s"
msgstr "kunde inte tillämpa %s... %s"
-#: sequencer.c:2306
+#: sequencer.c:2302
#, c-format
msgid "dropping %s %s -- patch contents already upstream\n"
msgstr "utelämnar %s %s -- patchinnehållet finns redan uppströms\n"
-#: sequencer.c:2364
+#: sequencer.c:2360
#, c-format
msgid "git %s: failed to read the index"
msgstr "git %s: misslyckades läsa indexet"
-#: sequencer.c:2372
+#: sequencer.c:2368
#, c-format
msgid "git %s: failed to refresh the index"
msgstr "git %s: misslyckades uppdatera indexet"
-#: sequencer.c:2452
+#: sequencer.c:2448
#, c-format
msgid "%s does not accept arguments: '%s'"
msgstr "%s tar inte argument: \"%s\""
-#: sequencer.c:2461
+#: sequencer.c:2457
#, c-format
msgid "missing arguments for %s"
msgstr "argument saknas för %s"
-#: sequencer.c:2504
+#: sequencer.c:2500
#, c-format
msgid "could not parse '%s'"
msgstr "kunde inte tolka \"%s\""
-#: sequencer.c:2565
+#: sequencer.c:2561
#, c-format
msgid "invalid line %d: %.*s"
msgstr "ogiltig rad %d: %.*s"
-#: sequencer.c:2576
+#: sequencer.c:2572
#, c-format
msgid "cannot '%s' without a previous commit"
msgstr "kan inte utföra \"%s\" utan en föregående incheckning"
-#: sequencer.c:2624 builtin/rebase.c:184
+#: sequencer.c:2620 builtin/rebase.c:185
#, c-format
msgid "could not read '%s'."
msgstr "kunde inte läsa \"%s\"."
-#: sequencer.c:2662
+#: sequencer.c:2658
msgid "cancelling a cherry picking in progress"
msgstr "avbryter pågående \"cherry-pick\""
-#: sequencer.c:2671
+#: sequencer.c:2667
msgid "cancelling a revert in progress"
msgstr "avbryter pågående \"revert\""
-#: sequencer.c:2711
+#: sequencer.c:2707
msgid "please fix this using 'git rebase --edit-todo'."
msgstr "rätta det med \"git rebase --edit-todo\"."
-#: sequencer.c:2713
+#: sequencer.c:2709
#, c-format
msgid "unusable instruction sheet: '%s'"
msgstr "oanvändbart manus: \"%s\""
-#: sequencer.c:2718
+#: sequencer.c:2714
msgid "no commits parsed."
msgstr "inga incheckningar lästes."
-#: sequencer.c:2729
+#: sequencer.c:2725
msgid "cannot cherry-pick during a revert."
msgstr "kan inte utföra \"cherry-pick\" under en \"revert\"."
-#: sequencer.c:2731
+#: sequencer.c:2727
msgid "cannot revert during a cherry-pick."
msgstr "kan inte utföra \"revert\" under en \"cherry-pick\"."
-#: sequencer.c:2809
-#, c-format
-msgid "invalid value for %s: %s"
-msgstr "felaktigt värde för %s: %s"
-
-#: sequencer.c:2918
+#: sequencer.c:2914
msgid "unusable squash-onto"
msgstr "oanvändbar squash-onto"
-#: sequencer.c:2938
+#: sequencer.c:2934
#, c-format
msgid "malformed options sheet: '%s'"
msgstr "trasigt manus: \"%s\""
-#: sequencer.c:3033 sequencer.c:4902
+#: sequencer.c:3029 sequencer.c:4875
msgid "empty commit set passed"
msgstr "den angivna uppsättningen incheckningar är tom"
-#: sequencer.c:3050
+#: sequencer.c:3046
msgid "revert is already in progress"
msgstr "en \"revert\" pågår redan"
-#: sequencer.c:3052
+#: sequencer.c:3048
#, c-format
msgid "try \"git revert (--continue | %s--abort | --quit)\""
msgstr "testa \"git revert (--continue | %s--abort | --quit)\""
-#: sequencer.c:3055
+#: sequencer.c:3051
msgid "cherry-pick is already in progress"
msgstr "en \"cherry-pick\" pågår redan"
-#: sequencer.c:3057
+#: sequencer.c:3053
#, c-format
msgid "try \"git cherry-pick (--continue | %s--abort | --quit)\""
msgstr "testa \"git cherry-pick (--continue | %s--abort | --quit)\""
-#: sequencer.c:3071
+#: sequencer.c:3067
#, c-format
msgid "could not create sequencer directory '%s'"
msgstr "kunde inte skapa \"sequencer\"-katalogen \"%s\""
-#: sequencer.c:3086
+#: sequencer.c:3082
msgid "could not lock HEAD"
msgstr "kunde inte låsa HEAD"
-#: sequencer.c:3146 sequencer.c:4612
+#: sequencer.c:3142 sequencer.c:4585
msgid "no cherry-pick or revert in progress"
msgstr "ingen \"cherry-pick\" eller \"revert\" pågår"
-#: sequencer.c:3148 sequencer.c:3159
+#: sequencer.c:3144 sequencer.c:3155
msgid "cannot resolve HEAD"
msgstr "kan inte bestämma HEAD"
-#: sequencer.c:3150 sequencer.c:3194
+#: sequencer.c:3146 sequencer.c:3190
msgid "cannot abort from a branch yet to be born"
msgstr "kan inte avbryta från en gren som ännu inte är född"
-#: sequencer.c:3180 builtin/fetch.c:1004 builtin/fetch.c:1416
-#: builtin/grep.c:772
+#: sequencer.c:3176 builtin/fetch.c:1030 builtin/fetch.c:1457
+#: builtin/grep.c:774
#, c-format
msgid "cannot open '%s'"
msgstr "kan inte öppna \"%s\""
-#: sequencer.c:3182
+#: sequencer.c:3178
#, c-format
msgid "cannot read '%s': %s"
msgstr "kan inte läsa \"%s\": %s"
-#: sequencer.c:3183
+#: sequencer.c:3179
msgid "unexpected end of file"
msgstr "oväntat filslut"
-#: sequencer.c:3189
+#: sequencer.c:3185
#, c-format
msgid "stored pre-cherry-pick HEAD file '%s' is corrupt"
msgstr "sparad HEAD-fil från före \"cherry-pick\", \"%s\", är trasig"
-#: sequencer.c:3200
+#: sequencer.c:3196
msgid "You seem to have moved HEAD. Not rewinding, check your HEAD!"
msgstr ""
"Du verkar ha flyttat HEAD.\n"
"Spolar inte tillbaka, kontrollera HEAD!"
-#: sequencer.c:3241
+#: sequencer.c:3237
msgid "no revert in progress"
msgstr "ingen \"revers\" pågår"
-#: sequencer.c:3250
+#: sequencer.c:3246
msgid "no cherry-pick in progress"
msgstr "ingen \"cherry-pick\" pågår"
-#: sequencer.c:3260
+#: sequencer.c:3256
msgid "failed to skip the commit"
msgstr "kunde inte hoppa över incheckningen"
-#: sequencer.c:3267
+#: sequencer.c:3263
msgid "there is nothing to skip"
msgstr "ingenting att hoppa över"
-#: sequencer.c:3270
+#: sequencer.c:3266
#, c-format
msgid ""
"have you committed already?\n"
@@ -8186,16 +8401,16 @@ msgstr ""
"har du redan checkat in?\n"
"testa \"git %s --continue\""
-#: sequencer.c:3432 sequencer.c:4503
+#: sequencer.c:3428 sequencer.c:4476
msgid "cannot read HEAD"
msgstr "kan inte läsa HEAD"
-#: sequencer.c:3449
+#: sequencer.c:3445
#, c-format
msgid "unable to copy '%s' to '%s'"
msgstr "kan inte kopiera in \"%s\" till \"%s\""
-#: sequencer.c:3457
+#: sequencer.c:3453
#, c-format
msgid ""
"You can amend the commit now, with\n"
@@ -8214,27 +8429,27 @@ msgstr ""
"\n"
"\tgit rebase --continue\n"
-#: sequencer.c:3467
+#: sequencer.c:3463
#, c-format
msgid "Could not apply %s... %.*s"
msgstr "Kunde inte tillämpa %s... %.*s"
-#: sequencer.c:3474
+#: sequencer.c:3470
#, c-format
msgid "Could not merge %.*s"
msgstr "Kunde inte slå ihop %.*s"
-#: sequencer.c:3488 sequencer.c:3492 builtin/difftool.c:633
+#: sequencer.c:3484 sequencer.c:3488 builtin/difftool.c:633
#, c-format
msgid "could not copy '%s' to '%s'"
msgstr "kunde inte kopiera in \"%s\" till \"%s\""
-#: sequencer.c:3503
+#: sequencer.c:3499
#, c-format
msgid "Executing: %s\n"
msgstr "Kör: %s\n"
-#: sequencer.c:3514
+#: sequencer.c:3510
#, c-format
msgid ""
"execution failed: %s\n"
@@ -8249,11 +8464,11 @@ msgstr ""
"\tgit rebase --continue\n"
"\n"
-#: sequencer.c:3520
+#: sequencer.c:3516
msgid "and made changes to the index and/or the working tree\n"
msgstr "och gjorde ändringar till indexet och/eller arbetskatalogen\n"
-#: sequencer.c:3526
+#: sequencer.c:3522
#, c-format
msgid ""
"execution succeeded: %s\n"
@@ -8270,90 +8485,90 @@ msgstr ""
"\tgit rebase --continue\n"
"\n"
-#: sequencer.c:3586
+#: sequencer.c:3582
#, c-format
msgid "illegal label name: '%.*s'"
msgstr "ogiltigt etikettnamn: \"%.*s\""
-#: sequencer.c:3659
+#: sequencer.c:3655
msgid "writing fake root commit"
msgstr "skriver fejkad rotincheckning"
-#: sequencer.c:3664
+#: sequencer.c:3660
msgid "writing squash-onto"
msgstr "skriver squash-onto"
-#: sequencer.c:3743
+#: sequencer.c:3739
#, c-format
msgid "could not resolve '%s'"
msgstr "kunde inte upplösa \"%s\""
-#: sequencer.c:3775
+#: sequencer.c:3771
msgid "cannot merge without a current revision"
msgstr "kan inte slå ihop utan en aktuell incheckning"
-#: sequencer.c:3797
+#: sequencer.c:3793
#, c-format
msgid "unable to parse '%.*s'"
msgstr "kan inte tolka \"%.*s\""
-#: sequencer.c:3806
+#: sequencer.c:3802
#, c-format
msgid "nothing to merge: '%.*s'"
msgstr "inget att slå samman: \"%.*s\""
-#: sequencer.c:3818
+#: sequencer.c:3814
msgid "octopus merge cannot be executed on top of a [new root]"
msgstr "\"octopus\"-sammanslagning kan inte köras ovanpå en [ny rot]"
-#: sequencer.c:3873
+#: sequencer.c:3869
#, c-format
msgid "could not get commit message of '%s'"
msgstr "kunde inte läsa incheckningsmeddelande för \"%s\""
-#: sequencer.c:4019
+#: sequencer.c:4013
#, c-format
msgid "could not even attempt to merge '%.*s'"
msgstr "kunde inte ens försöka slå ihop \"%.*s\""
-#: sequencer.c:4035
+#: sequencer.c:4029
msgid "merge: Unable to write new index file"
msgstr "sammanslagning: Kunde inte skriva ny indexfil"
-#: sequencer.c:4116
+#: sequencer.c:4110
msgid "Cannot autostash"
msgstr "Kan inte utföra \"autostash\""
-#: sequencer.c:4119
+#: sequencer.c:4113
#, c-format
msgid "Unexpected stash response: '%s'"
msgstr "Oväntat svar från stash: \"%s\""
-#: sequencer.c:4125
+#: sequencer.c:4119
#, c-format
msgid "Could not create directory for '%s'"
msgstr "Kunde inte skapa katalog för \"%s\""
-#: sequencer.c:4128
+#: sequencer.c:4122
#, c-format
msgid "Created autostash: %s\n"
msgstr "Skapade autostash: %s\n"
-#: sequencer.c:4132
+#: sequencer.c:4124
msgid "could not reset --hard"
msgstr "kunde inte utföra \"reset --hard\""
-#: sequencer.c:4157
+#: sequencer.c:4148
#, c-format
msgid "Applied autostash.\n"
msgstr "Tillämpade autostash.\n"
-#: sequencer.c:4169
+#: sequencer.c:4160
#, c-format
msgid "cannot store %s"
msgstr "kan inte spara %s"
-#: sequencer.c:4172
+#: sequencer.c:4163
#, c-format
msgid ""
"%s\n"
@@ -8364,29 +8579,29 @@ msgstr ""
"Dina ändringar är säkra i stashen.\n"
"Du kan när som helst använda \"git stash pop\" eller \"git stash drop\".\n"
-#: sequencer.c:4177
+#: sequencer.c:4168
msgid "Applying autostash resulted in conflicts."
msgstr "Tillämpning av autostash gav konflikter."
-#: sequencer.c:4178
+#: sequencer.c:4169
msgid "Autostash exists; creating a new stash entry."
msgstr "Autostash finns; skapar ny stash-post."
-#: sequencer.c:4252
+#: sequencer.c:4225
msgid "could not detach HEAD"
msgstr "kunde inte koppla från HEAD"
-#: sequencer.c:4267
+#: sequencer.c:4240
#, c-format
msgid "Stopped at HEAD\n"
msgstr "Stoppade på HEAD\n"
-#: sequencer.c:4269
+#: sequencer.c:4242
#, c-format
msgid "Stopped at %s\n"
msgstr "Stoppade på %s\n"
-#: sequencer.c:4301
+#: sequencer.c:4274
#, c-format
msgid ""
"Could not execute the todo command\n"
@@ -8407,58 +8622,58 @@ msgstr ""
" git rebase --edit-todo\n"
" git rebase --continue\n"
-#: sequencer.c:4347
+#: sequencer.c:4320
#, c-format
msgid "Rebasing (%d/%d)%s"
msgstr "Ombaserar (%d/%d)%s"
-#: sequencer.c:4393
+#: sequencer.c:4366
#, c-format
msgid "Stopped at %s... %.*s\n"
msgstr "Stoppade på %s... %.*s\n"
-#: sequencer.c:4463
+#: sequencer.c:4436
#, c-format
msgid "unknown command %d"
msgstr "okänt kommando %d"
-#: sequencer.c:4511
+#: sequencer.c:4484
msgid "could not read orig-head"
msgstr "kunde inte läsa orig-head"
-#: sequencer.c:4516
+#: sequencer.c:4489
msgid "could not read 'onto'"
msgstr "kunde inte läsa \"onto\""
-#: sequencer.c:4530
+#: sequencer.c:4503
#, c-format
msgid "could not update HEAD to %s"
msgstr "kunde inte uppdatera HEAD till %s"
-#: sequencer.c:4590
+#: sequencer.c:4563
#, c-format
msgid "Successfully rebased and updated %s.\n"
msgstr "Lyckades ombasera och uppdatera %s.\n"
-#: sequencer.c:4642
+#: sequencer.c:4615
msgid "cannot rebase: You have unstaged changes."
msgstr "kan inte ombasera: Du har oköade ändringar."
-#: sequencer.c:4651
+#: sequencer.c:4624
msgid "cannot amend non-existing commit"
msgstr "kan inte lägga till incheckning som inte finns"
-#: sequencer.c:4653
+#: sequencer.c:4626
#, c-format
msgid "invalid file: '%s'"
msgstr "ogiltig fil: \"%s\""
-#: sequencer.c:4655
+#: sequencer.c:4628
#, c-format
msgid "invalid contents: '%s'"
msgstr "ogiltigt innehåll: \"%s\""
-#: sequencer.c:4658
+#: sequencer.c:4631
msgid ""
"\n"
"You have uncommitted changes in your working tree. Please, commit them\n"
@@ -8468,68 +8683,68 @@ msgstr ""
"Du har ändringar i arbetskatalogen som inte checkats in. Checka in dem\n"
"först och kör sedan \"git rebase --continue\" igen."
-#: sequencer.c:4694 sequencer.c:4733
+#: sequencer.c:4667 sequencer.c:4706
#, c-format
msgid "could not write file: '%s'"
msgstr "kunde inte skriva fil: \"%s\""
-#: sequencer.c:4749
+#: sequencer.c:4722
msgid "could not remove CHERRY_PICK_HEAD"
msgstr "kunde inte ta bort CHERRY_PICK_HEAD"
-#: sequencer.c:4759
+#: sequencer.c:4732
msgid "could not commit staged changes."
msgstr "kunde inte checka in köade ändringar."
-#: sequencer.c:4879
+#: sequencer.c:4852
#, c-format
msgid "%s: can't cherry-pick a %s"
msgstr "%s: kan inte göra \"cherry-pick\" på typen \"%s\""
-#: sequencer.c:4883
+#: sequencer.c:4856
#, c-format
msgid "%s: bad revision"
msgstr "%s: felaktig revision"
-#: sequencer.c:4918
+#: sequencer.c:4891
msgid "can't revert as initial commit"
msgstr "kan inte ångra som första incheckning"
-#: sequencer.c:5189 sequencer.c:5418
+#: sequencer.c:5162 sequencer.c:5391
#, c-format
msgid "skipped previously applied commit %s"
msgstr "hoppade över tidigare applicerad incheckning %s"
-#: sequencer.c:5259 sequencer.c:5434
+#: sequencer.c:5232 sequencer.c:5407
msgid "use --reapply-cherry-picks to include skipped commits"
msgstr "använd --reapply-cherry-picks för att ta med överhoppade incheckningar"
-#: sequencer.c:5405
+#: sequencer.c:5378
msgid "make_script: unhandled options"
msgstr "make_script: flaggor som inte stöds"
-#: sequencer.c:5408
+#: sequencer.c:5381
msgid "make_script: error preparing revisions"
msgstr "make_script: fel när revisioner skulle förberedas"
-#: sequencer.c:5666 sequencer.c:5683
+#: sequencer.c:5639 sequencer.c:5656
msgid "nothing to do"
msgstr "inget att göra"
-#: sequencer.c:5702
+#: sequencer.c:5675
msgid "could not skip unnecessary pick commands"
msgstr "kunde inte hoppa över onödiga \"pick\"-kommandon"
-#: sequencer.c:5802
+#: sequencer.c:5775
msgid "the script was already rearranged."
msgstr "skriptet har redan omordnats."
-#: setup.c:134
+#: setup.c:135
#, c-format
msgid "'%s' is outside repository at '%s'"
msgstr "\"%s\" är utanför arkivet på \"%s\""
-#: setup.c:186
+#: setup.c:187
#, c-format
msgid ""
"%s: no such path in the working tree.\n"
@@ -8539,7 +8754,7 @@ msgstr ""
"Använd \"git <kommando> -- <sökväg>..\" för att ange sökvägar som inte finns "
"lokalt."
-#: setup.c:199
+#: setup.c:200
#, c-format
msgid ""
"ambiguous argument '%s': unknown revision or path not in the working tree.\n"
@@ -8551,12 +8766,12 @@ msgstr ""
"Använd \"--\" för att skilja sökvägar från revisioner, så här:\n"
"\"git <kommando> [<revision>...] -- [<fil>...]\""
-#: setup.c:265
+#: setup.c:266
#, c-format
msgid "option '%s' must come before non-option arguments"
msgstr "flaggan \"%s\" måste anges före argument som inte är flaggor"
-#: setup.c:284
+#: setup.c:285
#, c-format
msgid ""
"ambiguous argument '%s': both revision and filename\n"
@@ -8567,100 +8782,100 @@ msgstr ""
"Använd \"--\" för att skilja sökvägar från revisioner, så här:\n"
"\"git <kommando> [<revision>...] -- [<fil>...]\""
-#: setup.c:420
+#: setup.c:421
msgid "unable to set up work tree using invalid config"
msgstr "kan inte skapa arbetskatalog med felaktig konfiguration"
-#: setup.c:424 builtin/rev-parse.c:895
+#: setup.c:425 builtin/rev-parse.c:895
msgid "this operation must be run in a work tree"
msgstr "funktionen måste köras i en arbetskatalog"
-#: setup.c:722
+#: setup.c:724
#, c-format
msgid "Expected git repo version <= %d, found %d"
msgstr "Förväntade git-arkivversion <= %d, hittade %d"
-#: setup.c:730
+#: setup.c:732
msgid "unknown repository extension found:"
msgid_plural "unknown repository extensions found:"
msgstr[0] "okänd arkivutökning hittades:"
msgstr[1] "okända arkivutökningar hittades:"
-#: setup.c:744
+#: setup.c:746
msgid "repo version is 0, but v1-only extension found:"
msgid_plural "repo version is 0, but v1-only extensions found:"
msgstr[0] "arkivversionen är 0, men utökning som bara finns i v1 upptäcktes:"
msgstr[1] "arkivversionen är 0, men utökningar som bara finns i v1 upptäcktes:"
-#: setup.c:765
+#: setup.c:767
#, c-format
msgid "error opening '%s'"
msgstr "fel vid öppning av \"%s\""
-#: setup.c:767
+#: setup.c:769
#, 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:769
+#: setup.c:771
#, c-format
msgid "error reading %s"
msgstr "fel vid läsning av %s"
-#: setup.c:771
+#: setup.c:773
#, c-format
msgid "invalid gitfile format: %s"
msgstr "ogiltigt gitfilformat: %s"
-#: setup.c:773
+#: setup.c:775
#, c-format
msgid "no path in gitfile: %s"
msgstr "ingen sökväg i gitfil: %s"
-#: setup.c:775
+#: setup.c:777
#, c-format
msgid "not a git repository: %s"
msgstr "inte ett git-arkiv: %s"
-#: setup.c:877
+#: setup.c:879
#, c-format
msgid "'$%s' too big"
msgstr "\"$%s\" för stor"
-#: setup.c:891
+#: setup.c:893
#, c-format
msgid "not a git repository: '%s'"
msgstr "inte ett git-arkiv: \"%s\""
-#: setup.c:920 setup.c:922 setup.c:953
+#: setup.c:922 setup.c:924 setup.c:955
#, c-format
msgid "cannot chdir to '%s'"
msgstr "kan inte byta katalog (chdir) till \"%s\""
-#: setup.c:925 setup.c:981 setup.c:991 setup.c:1030 setup.c:1038
+#: setup.c:927 setup.c:983 setup.c:993 setup.c:1032 setup.c:1040
msgid "cannot come back to cwd"
msgstr "kan inte gå tillbaka till arbetskatalogen (cwd)"
-#: setup.c:1052
+#: setup.c:1054
#, c-format
msgid "failed to stat '%*s%s%s'"
msgstr "misslyckades ta status på \"%*ss%s%s\""
-#: setup.c:1295
+#: setup.c:1338
msgid "Unable to read current working directory"
msgstr "Kan inte läsa aktuell arbetskatalog"
-#: setup.c:1304 setup.c:1310
+#: setup.c:1347 setup.c:1353
#, c-format
msgid "cannot change to '%s'"
msgstr "kan inte byta till \"%s\""
-#: setup.c:1315
+#: setup.c:1358
#, 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:1321
+#: setup.c:1364
#, c-format
msgid ""
"not a git repository (or any parent up to mount point %s)\n"
@@ -8670,7 +8885,20 @@ msgstr ""
"monteringspunkten %s)\n"
"Stoppar vid filsystemsgräns (GIT_DISCOVERY_ACROSS_FILESYSTEM är inte satt)."
-#: setup.c:1446
+#: setup.c:1374
+#, c-format
+msgid ""
+"unsafe repository ('%s' is owned by someone else)\n"
+"To add an exception for this directory, call:\n"
+"\n"
+"\tgit config --global --add safe.directory %s"
+msgstr ""
+"osäkert arkiv (\"%s\" ägs av någon annan)\n"
+"För att lägga till ett undantag för denna katalog, kör:\n"
+"\n"
+"\tgit config --global --add safe.directory %s"
+
+#: setup.c:1502
#, c-format
msgid ""
"problem with core.sharedRepository filemode value (0%.3o).\n"
@@ -8679,57 +8907,61 @@ 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:1508
+#: setup.c:1564
msgid "fork failed"
msgstr "\"fork\" misslyckades"
-#: setup.c:1513
+#: setup.c:1569
msgid "setsid failed"
msgstr "\"setsid\" misslyckades"
-#: sparse-index.c:289
+#: sparse-index.c:285
#, c-format
msgid "index entry is a directory, but not sparse (%08x)"
msgstr "indexposten är en katalog, men inte gles (%08x)"
+#: split-index.c:9
+msgid "cannot use split index with a sparse index"
+msgstr "kan inte dela indexet med ett glest index"
+
#. TRANSLATORS: IEC 80000-13:2008 gibibyte
-#: strbuf.c:850
+#: strbuf.c:851
#, c-format
msgid "%u.%2.2u GiB"
msgstr "%u,%2.2u GiB"
#. TRANSLATORS: IEC 80000-13:2008 gibibyte/second
-#: strbuf.c:852
+#: strbuf.c:853
#, c-format
msgid "%u.%2.2u GiB/s"
msgstr "%u,%2.2u GiB/s"
#. TRANSLATORS: IEC 80000-13:2008 mebibyte
-#: strbuf.c:860
+#: strbuf.c:861
#, c-format
msgid "%u.%2.2u MiB"
msgstr "%u,%2.2u MiB"
#. TRANSLATORS: IEC 80000-13:2008 mebibyte/second
-#: strbuf.c:862
+#: strbuf.c:863
#, c-format
msgid "%u.%2.2u MiB/s"
msgstr "%u,%2.2u MiB/s"
#. TRANSLATORS: IEC 80000-13:2008 kibibyte
-#: strbuf.c:869
+#: strbuf.c:870
#, c-format
msgid "%u.%2.2u KiB"
msgstr "%u,%2.2u KiB"
#. TRANSLATORS: IEC 80000-13:2008 kibibyte/second
-#: strbuf.c:871
+#: strbuf.c:872
#, c-format
msgid "%u.%2.2u KiB/s"
msgstr "%u,%2.2u KiB/s"
#. TRANSLATORS: IEC 80000-13:2008 byte
-#: strbuf.c:877
+#: strbuf.c:878
#, c-format
msgid "%u byte"
msgid_plural "%u bytes"
@@ -8737,84 +8969,84 @@ msgstr[0] "%u byte"
msgstr[1] "%u bytes"
#. TRANSLATORS: IEC 80000-13:2008 byte/second
-#: strbuf.c:879
+#: strbuf.c:880
#, c-format
msgid "%u byte/s"
msgid_plural "%u bytes/s"
msgstr[0] "%u byte/s"
msgstr[1] "%u bytes/s"
-#: strbuf.c:1186 wrapper.c:207 wrapper.c:377 builtin/am.c:765
-#: builtin/rebase.c:650
+#: strbuf.c:1187 wrapper.c:217 wrapper.c:387 builtin/am.c:766
+#: builtin/rebase.c:653
#, c-format
msgid "could not open '%s' for writing"
msgstr "kunde inte öppna \"%s\" för skrivning"
-#: strbuf.c:1195
+#: strbuf.c:1196
#, c-format
msgid "could not edit '%s'"
msgstr "kunde inte redigera \"%s\""
-#: submodule-config.c:237
+#: submodule-config.c:238
#, c-format
msgid "ignoring suspicious submodule name: %s"
msgstr "ignorerar misstänkt undermodulnamn: %s"
-#: submodule-config.c:304
+#: submodule-config.c:305
msgid "negative values not allowed for submodule.fetchjobs"
msgstr "negativa värden är inte tillåtna för submodule.fetchjobs"
-#: submodule-config.c:402
+#: submodule-config.c:403
#, c-format
msgid "ignoring '%s' which may be interpreted as a command-line option: %s"
msgstr "ignorerar \"%s\" som kan tolkas som en kommandoradsflagga: %s"
-#: submodule-config.c:499
+#: submodule-config.c:500 builtin/push.c:489 builtin/send-pack.c:148
#, c-format
-msgid "invalid value for %s"
-msgstr "ogiltigt värde för %s"
+msgid "invalid value for '%s'"
+msgstr "ogiltigt värde för \"%s\""
-#: submodule-config.c:767
+#: submodule-config.c:828
#, c-format
msgid "Could not update .gitmodules entry %s"
msgstr "Kunde inte uppdatera .gitmodules-posten %s"
-#: submodule.c:114 submodule.c:143
+#: submodule.c:115 submodule.c:144
msgid "Cannot change unmerged .gitmodules, resolve merge conflicts first"
msgstr ""
"Kan inte ändra .gitmodules-fil som inte slagits ihop, lös "
"sammanslagningskonflikter först"
-#: submodule.c:118 submodule.c:147
+#: submodule.c:119 submodule.c:148
#, c-format
msgid "Could not find section in .gitmodules where path=%s"
msgstr "Hittade inte någon sektion i .gitmodules där sökväg=%s"
-#: submodule.c:154
+#: submodule.c:155
#, c-format
msgid "Could not remove .gitmodules entry for %s"
msgstr "Kunde inte ta bort .gitmodules-posten för %s"
-#: submodule.c:165
+#: submodule.c:166
msgid "staging updated .gitmodules failed"
msgstr "misslyckades köa uppdaterad .gitmodules"
-#: submodule.c:358
+#: submodule.c:346
#, c-format
msgid "in unpopulated submodule '%s'"
msgstr "i ej utcheckad undermodul \"%s\""
-#: submodule.c:389
+#: submodule.c:377
#, c-format
msgid "Pathspec '%s' is in submodule '%.*s'"
msgstr "Sökvägsangivelsen \"%s\" är i undermodulen \"%.*s\""
-#: submodule.c:466
+#: submodule.c:454
#, c-format
msgid "bad --ignore-submodules argument: %s"
msgstr "felaktigt argument till --ignore-submodules: %s"
-#: submodule.c:844
+#: submodule.c:866
#, c-format
msgid ""
"Submodule in commit %s at path: '%s' collides with a submodule named the "
@@ -8823,12 +9055,12 @@ msgstr ""
"Undermodulen i incheckning %s på sökvägen: \"%s\" krockar med en undermodul "
"med samma namn. Hoppar över den."
-#: submodule.c:954
+#: submodule.c:987
#, c-format
msgid "submodule entry '%s' (%s) is a %s, not a commit"
msgstr "undermodulposten \"%s\" (%s) är en %s, inte en incheckning"
-#: submodule.c:1042
+#: submodule.c:1069
#, c-format
msgid ""
"Could not run 'git rev-list <commits> --not --remotes -n 1' command in "
@@ -8837,36 +9069,46 @@ msgstr ""
"kunde inte köra \"git rev-list <incheckningar> --not --remotes -n 1\" i "
"undermodulen \"%s\""
-#: submodule.c:1165
+#: submodule.c:1192
#, c-format
msgid "process for submodule '%s' failed"
msgstr "process för undermodulen \"%s\" misslyckades"
-#: submodule.c:1194 builtin/branch.c:699 builtin/submodule--helper.c:2714
+#: submodule.c:1221 builtin/branch.c:714 builtin/submodule--helper.c:2827
msgid "Failed to resolve HEAD as a valid ref."
msgstr "Misslyckades slå upp HEAD som giltig referens."
-#: submodule.c:1205
+#: submodule.c:1232
#, c-format
msgid "Pushing submodule '%s'\n"
msgstr "Sänder undermodulen \"%s\"\n"
-#: submodule.c:1208
+#: submodule.c:1235
#, c-format
msgid "Unable to push submodule '%s'\n"
msgstr "Kunde inte sända undermodulen \"%s\"\n"
-#: submodule.c:1491
+#: submodule.c:1567
#, c-format
msgid "Fetching submodule %s%s\n"
msgstr "Hämtar undermodulen %s%s\n"
-#: submodule.c:1525
+#: submodule.c:1589
#, c-format
msgid "Could not access submodule '%s'\n"
msgstr "Kunde inte komma åt undermodulen \"%s\"\n"
-#: submodule.c:1680
+#: submodule.c:1618
+#, c-format
+msgid "Could not access submodule '%s' at commit %s\n"
+msgstr "Kunde inte komma åt undermodulen \"%s\" vid incheckningen %s\n"
+
+#: submodule.c:1629
+#, c-format
+msgid "Fetching submodule %s%s at commit %s\n"
+msgstr "Hämtar undermodulen %s%s vvid incheckningen %s\n"
+
+#: submodule.c:1849
#, c-format
msgid ""
"Errors during submodule fetch:\n"
@@ -8875,61 +9117,61 @@ msgstr ""
"Fel vid hämtning av undermodul:\n"
"%s"
-#: submodule.c:1705
+#: submodule.c:1874
#, c-format
msgid "'%s' not recognized as a git repository"
msgstr "\"%s\" känns inte igen som ett git-arkiv"
-#: submodule.c:1722
+#: submodule.c:1891
#, c-format
msgid "Could not run 'git status --porcelain=2' in submodule %s"
msgstr "Kunde inte köra \"git status --porcelain=2\" i undermodulen \"%s\""
-#: submodule.c:1763
+#: submodule.c:1932
#, c-format
msgid "'git status --porcelain=2' failed in submodule %s"
msgstr "\"git status --porcelain=2\" misslyckades i undermodulen \"%s\""
-#: submodule.c:1838
+#: submodule.c:2007
#, c-format
msgid "could not start 'git status' in submodule '%s'"
msgstr "kunde inte starta \"git status\" i undermodulen \"%s\""
-#: submodule.c:1851
+#: submodule.c:2020
#, c-format
msgid "could not run 'git status' in submodule '%s'"
msgstr "kunde inte köra \"git status\" i undermodulen \"%s\""
-#: submodule.c:1868
+#: submodule.c:2037
#, c-format
msgid "Could not unset core.worktree setting in submodule '%s'"
msgstr "Kunde inte ta bort inställningen core.worktree i undermodulen \"%s\""
-#: submodule.c:1895 submodule.c:2210
+#: submodule.c:2064 submodule.c:2379
#, c-format
msgid "could not recurse into submodule '%s'"
msgstr "kunde inte rekursera in i undermodulen \"%s\""
-#: submodule.c:1917
+#: submodule.c:2086
msgid "could not reset submodule index"
msgstr "kunde inte återställa indexet i undermodul"
-#: submodule.c:1959
+#: submodule.c:2128
#, c-format
msgid "submodule '%s' has dirty index"
msgstr "undermodulen \"%s\" har ett smutsigt index"
-#: submodule.c:2013
+#: submodule.c:2182
#, c-format
msgid "Submodule '%s' could not be updated."
msgstr "Undermoduler \"%s\" kunde inte uppdateras."
-#: submodule.c:2081
+#: submodule.c:2250
#, c-format
msgid "submodule git dir '%s' is inside git dir '%.*s'"
msgstr "undermodul-gitkatalogen \"%s\" är inuti gitkatalogen \"%.*s\""
-#: submodule.c:2102
+#: submodule.c:2271
#, c-format
msgid ""
"relocate_gitdir for submodule '%s' with more than one worktree not supported"
@@ -8937,17 +9179,17 @@ msgstr ""
"relocate_gitdir för undermodulen \"%s\", som har mer än en arbetskatalog, "
"stöds ej"
-#: submodule.c:2114 submodule.c:2174
+#: submodule.c:2283 submodule.c:2343
#, c-format
msgid "could not lookup name for submodule '%s'"
msgstr "kunde inte slå upp namnet för undermodulen \"%s\""
-#: submodule.c:2118
+#: submodule.c:2287
#, c-format
msgid "refusing to move '%s' into an existing git dir"
msgstr "vägrar flytta \"%s\" till en befintlig gitkatalog"
-#: submodule.c:2124
+#: submodule.c:2293
#, c-format
msgid ""
"Migrating git directory of '%s%s' from\n"
@@ -8958,11 +9200,11 @@ msgstr ""
"\"%s\" till\n"
"\"%s\"\n"
-#: submodule.c:2255
+#: submodule.c:2424
msgid "could not start ls-files in .."
msgstr "kunde inte starta ls-files i .."
-#: submodule.c:2295
+#: submodule.c:2464
#, c-format
msgid "ls-tree returned unexpected return code %d"
msgstr "ls-tree returnerade en oväntad returkod %d"
@@ -8983,8 +9225,8 @@ msgstr "misslyckades utföra släpradskommandot \"%s\""
msgid "unknown value '%s' for key '%s'"
msgstr "okänt värde \"%s\" för nyckeln \"%s\""
-#: trailer.c:547 trailer.c:552 trailer.c:557 builtin/remote.c:299
-#: builtin/remote.c:327
+#: trailer.c:547 trailer.c:552 trailer.c:557 builtin/remote.c:300
+#: builtin/remote.c:328
#, c-format
msgid "more than one %s"
msgstr "mer än en %s"
@@ -8999,11 +9241,11 @@ msgstr "tom släpradssymbol i släpraden \"%.*s\""
msgid "could not read input file '%s'"
msgstr "kunde inte läsa indatafilen \"%s\""
-#: trailer.c:766 builtin/mktag.c:89 imap-send.c:1573
+#: trailer.c:766 builtin/mktag.c:88 imap-send.c:1563
msgid "could not read from stdin"
msgstr "kunde inte läsa från standard in"
-#: trailer.c:1024 wrapper.c:684
+#: trailer.c:1024 wrapper.c:760
#, c-format
msgid "could not stat %s"
msgstr "kunde inte ta status på %s"
@@ -9073,7 +9315,7 @@ msgstr "kunde inte köra fast-import"
msgid "error while running fast-import"
msgstr "fel när fast-import kördes"
-#: transport-helper.c:549 transport-helper.c:1251
+#: transport-helper.c:549 transport-helper.c:1254
#, c-format
msgid "could not read ref %s"
msgstr "kunde inte läsa referensen %s"
@@ -9091,7 +9333,7 @@ msgstr "protkollet stöder inte att sätta sökväg till fjärrtjänst"
msgid "invalid remote service path"
msgstr "felaktig sökväg till fjärrtjänst"
-#: transport-helper.c:661 transport.c:1479
+#: transport-helper.c:661 transport.c:1496
msgid "operation not supported by protocol"
msgstr "funktionen stöds inte av protokollet"
@@ -9100,72 +9342,72 @@ msgstr "funktionen stöds inte av protokollet"
msgid "can't connect to subservice %s"
msgstr "kan inte ansluta till undertjänsten %s"
-#: transport-helper.c:693 transport.c:404
+#: transport-helper.c:693 transport.c:415
msgid "--negotiate-only requires protocol v2"
msgstr "--negotiate-only kräver protokoll v2"
-#: transport-helper.c:755
+#: transport-helper.c:758
msgid "'option' without a matching 'ok/error' directive"
msgstr "\"option\" utan mostsvarande \"ok/error\"-direktiv"
-#: transport-helper.c:798
+#: transport-helper.c:801
#, c-format
msgid "expected ok/error, helper said '%s'"
msgstr "förväntade ok/error, hjälpprogrammet svarade \"%s\""
-#: transport-helper.c:859
+#: transport-helper.c:862
#, c-format
msgid "helper reported unexpected status of %s"
msgstr "hjälparen returnerade oväntad status %s"
-#: transport-helper.c:942
+#: transport-helper.c:945
#, c-format
msgid "helper %s does not support dry-run"
msgstr "hjälparen %s stöder inte dry-run"
-#: transport-helper.c:945
+#: transport-helper.c:948
#, c-format
msgid "helper %s does not support --signed"
msgstr "hjälparen %s stöder inte --signed"
-#: transport-helper.c:948
+#: transport-helper.c:951
#, c-format
msgid "helper %s does not support --signed=if-asked"
msgstr "hjälparen %s stöder inte --signed=if-asked"
-#: transport-helper.c:953
+#: transport-helper.c:956
#, c-format
msgid "helper %s does not support --atomic"
msgstr "hjälparen %s stöder inte --atomic"
-#: transport-helper.c:957
+#: transport-helper.c:960
#, c-format
msgid "helper %s does not support --%s"
msgstr "hjälparen %s stöder inte --%s"
-#: transport-helper.c:964
+#: transport-helper.c:967
#, c-format
msgid "helper %s does not support 'push-option'"
msgstr "hjälparen %s stöder inte \"push-option\""
-#: transport-helper.c:1064
+#: transport-helper.c:1067
msgid "remote-helper doesn't support push; refspec needed"
msgstr "fjärrhjälparen stöder inte push; referensspecifikation krävs"
-#: transport-helper.c:1069
+#: transport-helper.c:1072
#, c-format
msgid "helper %s does not support 'force'"
msgstr "hjälparen %s stöder inte \"force\""
-#: transport-helper.c:1116
+#: transport-helper.c:1119
msgid "couldn't run fast-export"
msgstr "kunde inte köra fast-export"
-#: transport-helper.c:1121
+#: transport-helper.c:1124
msgid "error while running fast-export"
msgstr "fel vid körning av fast-export"
-#: transport-helper.c:1146
+#: transport-helper.c:1149
#, c-format
msgid ""
"No refs in common and none specified; doing nothing.\n"
@@ -9174,52 +9416,52 @@ msgstr ""
"Inga gemensamma referenser och inga angavs; gör inget.\n"
"Du kanske borde ange en gren.\n"
-#: transport-helper.c:1228
+#: transport-helper.c:1231
#, c-format
msgid "unsupported object format '%s'"
msgstr "objektformatet \"%s\" stöds ej"
-#: transport-helper.c:1237
+#: transport-helper.c:1240
#, c-format
msgid "malformed response in ref list: %s"
msgstr "felformat svar i referenslistan: %s"
-#: transport-helper.c:1389
+#: transport-helper.c:1392
#, c-format
msgid "read(%s) failed"
msgstr "läs(%s) misslyckades"
-#: transport-helper.c:1416
+#: transport-helper.c:1419
#, c-format
msgid "write(%s) failed"
msgstr "skriv(%s) misslyckades"
-#: transport-helper.c:1465
+#: transport-helper.c:1468
#, c-format
msgid "%s thread failed"
msgstr "%s-tråden misslyckades"
-#: transport-helper.c:1469
+#: transport-helper.c:1472
#, c-format
msgid "%s thread failed to join: %s"
msgstr "%s-tråden misslyckades ansluta: %s"
-#: transport-helper.c:1488 transport-helper.c:1492
+#: transport-helper.c:1491 transport-helper.c:1495
#, 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:1529
+#: transport-helper.c:1532
#, c-format
msgid "%s process failed to wait"
msgstr "processen %s misslyckades vänta"
-#: transport-helper.c:1533
+#: transport-helper.c:1536
#, c-format
msgid "%s process failed"
msgstr "processen %s misslyckades"
-#: transport-helper.c:1551 transport-helper.c:1560
+#: transport-helper.c:1554 transport-helper.c:1563
msgid "can't start thread for copying data"
msgstr "kan inte skapa tråd för kopiering av data"
@@ -9228,51 +9470,51 @@ msgstr "kan inte skapa tråd för kopiering av data"
msgid "Would set upstream of '%s' to '%s' of '%s'\n"
msgstr "Skulle sätta uppströms för \"%s\" till \"%s\" från \"%s\"\n"
-#: transport.c:145
+#: transport.c:138
#, c-format
msgid "could not read bundle '%s'"
msgstr "kunde inte läsa bunten \"%s\""
-#: transport.c:227
+#: transport.c:234
#, c-format
msgid "transport: invalid depth option '%s'"
msgstr "transport: ogiltig flagga för depth: \"%s\""
-#: transport.c:279
+#: transport.c:289
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:280
+#: transport.c:290
msgid "server options require protocol version 2 or later"
msgstr "serverflaggor kräver protokollversion 2 eller senare"
-#: transport.c:407
+#: transport.c:418
msgid "server does not support wait-for-done"
msgstr "servern stöder inte wait-for-done"
-#: transport.c:759
+#: transport.c:770
msgid "could not parse transport.color.* config"
msgstr "kunde inte tolka inställningen för transport.color.*"
-#: transport.c:834
+#: transport.c:845
msgid "support for protocol v2 not implemented yet"
msgstr "stöd för protokoll v2 ännu ej implementerat"
-#: transport.c:967
+#: transport.c:978
#, c-format
msgid "unknown value for config '%s': %s"
msgstr "okänt värde för inställningen \"%s\": %s"
-#: transport.c:1033
+#: transport.c:1044
#, c-format
msgid "transport '%s' not allowed"
msgstr "transporten \"%s\" tillåts inte"
-#: transport.c:1082
+#: transport.c:1093
msgid "git-over-rsync is no longer supported"
msgstr "git-over-rsync stöds inte längre"
-#: transport.c:1185
+#: transport.c:1196
#, c-format
msgid ""
"The following submodule paths contain changes that can\n"
@@ -9281,7 +9523,7 @@ msgstr ""
"Följande undermodulsökvägar innehåller ändringar som\n"
"inte kan hittas av fjärrarna:\n"
-#: transport.c:1189
+#: transport.c:1200
#, c-format
msgid ""
"\n"
@@ -9308,11 +9550,11 @@ msgstr ""
"för att sända dem till fjärren.\n"
"\n"
-#: transport.c:1197
+#: transport.c:1208
msgid "Aborting."
msgstr "Avbryter."
-#: transport.c:1343
+#: transport.c:1354
msgid "failed to push all needed submodules"
msgstr "kunde inte sända alla nödvändiga undermoduler"
@@ -9596,16 +9838,16 @@ msgstr ""
"sökvägar på ett okänsligt filsystem) och endast en från samma\n"
"kollisionsgrupp finns i arbetskatalogen:\n"
-#: unpack-trees.c:1636
+#: unpack-trees.c:1664
msgid "Updating index flags"
msgstr "Uppdaterar indexflaggor"
-#: unpack-trees.c:2803
+#: unpack-trees.c:2925
#, c-format
msgid "worktree and untracked commit have duplicate entries: %s"
msgstr "arbetskatalog och ospårad incheckning har dublettposter: %s"
-#: upload-pack.c:1565
+#: upload-pack.c:1579
msgid "expected flush after fetch arguments"
msgstr "förväntade \"flush\" efter \"fetch\"-argument"
@@ -9642,123 +9884,137 @@ msgstr "felaktigt \"..\"-sökvägssegment"
msgid "Fetching objects"
msgstr "Hämtar objekt"
-#: worktree.c:238 builtin/am.c:2209 builtin/bisect--helper.c:156
+#: worktree.c:237 builtin/am.c:2210 builtin/bisect--helper.c:156
#, c-format
msgid "failed to read '%s'"
msgstr "misslyckades läsa \"%s\""
-#: worktree.c:305
+#: worktree.c:304
#, c-format
msgid "'%s' at main working tree is not the repository directory"
msgstr "\"%s\" i huvudarbetskatalogen är inte arkivkatalogen"
-#: worktree.c:316
+#: worktree.c:315
#, 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:328
+#: worktree.c:327
#, c-format
msgid "'%s' does not exist"
msgstr "\"%s\" finns inte"
-#: worktree.c:334
+#: worktree.c:333
#, c-format
msgid "'%s' is not a .git file, error code %d"
msgstr "\"%s\" är inte en .git-fil, felkod %d"
-#: worktree.c:343
+#: worktree.c:342
#, c-format
msgid "'%s' does not point back to '%s'"
msgstr "\"%s\" pekar inte tillbaka till \"%s\""
-#: worktree.c:604
+#: worktree.c:600
msgid "not a directory"
msgstr "inte en katalog"
-#: worktree.c:613
+#: worktree.c:609
msgid ".git is not a file"
msgstr ".git är inte en fil"
-#: worktree.c:615
+#: worktree.c:611
msgid ".git file broken"
msgstr ".git-filen är trasig"
-#: worktree.c:617
+#: worktree.c:613
msgid ".git file incorrect"
msgstr ".git-filen är felaktig"
-#: worktree.c:723
+#: worktree.c:719
msgid "not a valid path"
msgstr "inte en giltig sökväg"
-#: worktree.c:729
+#: worktree.c:725
msgid "unable to locate repository; .git is not a file"
msgstr "hittar inte arkivet; .git är inte en fil"
-#: worktree.c:733
+#: worktree.c:729
msgid "unable to locate repository; .git file does not reference a repository"
msgstr "hittar inte arkivet; .git-filen hänvisar inte till ett arkiv"
-#: worktree.c:737
+#: worktree.c:733
msgid "unable to locate repository; .git file broken"
msgstr "hittar inte arkivet; .git-filen är trasig"
-#: worktree.c:743
+#: worktree.c:739
msgid "gitdir unreadable"
msgstr "gitdir är oläsbar"
-#: worktree.c:747
+#: worktree.c:743
msgid "gitdir incorrect"
msgstr "gitdir är felaktig"
-#: worktree.c:772
+#: worktree.c:768
msgid "not a valid directory"
msgstr "inte i en giltig katalog"
-#: worktree.c:778
+#: worktree.c:774
msgid "gitdir file does not exist"
msgstr "gitdir-filen existerar inte"
-#: worktree.c:783 worktree.c:792
+#: worktree.c:779 worktree.c:788
#, c-format
msgid "unable to read gitdir file (%s)"
msgstr "kunde inte läsa gitdir-filen (%s)"
-#: worktree.c:802
+#: worktree.c:798
#, c-format
msgid "short read (expected %<PRIuMAX> bytes, read %<PRIuMAX>)"
msgstr "kort läsning (förväntade %<PRIuMAX> byte, läste %<PRIuMAX>)"
-#: worktree.c:810
+#: worktree.c:806
msgid "invalid gitdir file"
msgstr "ogiltig gitdir-fil"
-#: worktree.c:818
+#: worktree.c:814
msgid "gitdir file points to non-existent location"
msgstr "gitdir-filen pekar på en ickeexisterande plats"
-#: wrapper.c:151
+#: worktree.c:830
+#, c-format
+msgid "unable to set %s in '%s'"
+msgstr "kan inte sätta %s i \"%s\""
+
+#: worktree.c:832
+#, c-format
+msgid "unable to unset %s in '%s'"
+msgstr "kan inte slå av %s i \"%s\""
+
+#: worktree.c:852
+msgid "failed to set extensions.worktreeConfig setting"
+msgstr "misslyckades ändra inställningen extensions.worktreeConfig"
+
+#: wrapper.c:161
#, c-format
msgid "could not setenv '%s'"
msgstr "kunde inte lagra miljövariabeln \"%s\""
-#: wrapper.c:203
+#: wrapper.c:213
#, c-format
msgid "unable to create '%s'"
msgstr "kunde inte skapa \"%s\""
-#: wrapper.c:205 wrapper.c:375
+#: wrapper.c:215 wrapper.c:385
#, c-format
msgid "could not open '%s' for reading and writing"
msgstr "kunde inte öppna \"%s\" för läsning och skrivning"
-#: wrapper.c:406 wrapper.c:607
+#: wrapper.c:416 wrapper.c:683
#, c-format
msgid "unable to access '%s'"
msgstr "kan inte komma åt \"%s\""
-#: wrapper.c:615
+#: wrapper.c:691
msgid "unable to get current working directory"
msgstr "kan inte hämta aktuell arbetskatalog"
@@ -9793,11 +10049,11 @@ msgstr " (använd \"git add/rm <fil>...\" som lämpligt för att ange lösning)
msgid " (use \"git rm <file>...\" to mark resolution)"
msgstr " (använd \"git rm <fil>...\" för att ange lösning)"
-#: wt-status.c:211 wt-status.c:1131
+#: wt-status.c:211 wt-status.c:1140
msgid "Changes to be committed:"
msgstr "Ändringar att checka in:"
-#: wt-status.c:234 wt-status.c:1140
+#: wt-status.c:234 wt-status.c:1149
msgid "Changes not staged for commit:"
msgstr "Ändringar ej i incheckningskön:"
@@ -9900,22 +10156,22 @@ msgstr "ändrat innehåll, "
msgid "untracked content, "
msgstr "ospårat innehåll, "
-#: wt-status.c:964
+#: wt-status.c:973
#, c-format
msgid "Your stash currently has %d entry"
msgid_plural "Your stash currently has %d entries"
msgstr[0] "Stashen innehåller just nu %d post"
msgstr[1] "Stashen innehåller just nu %d poster"
-#: wt-status.c:995
+#: wt-status.c:1004
msgid "Submodules changed but not updated:"
msgstr "Undermoduler ändrade men inte uppdaterade:"
-#: wt-status.c:997
+#: wt-status.c:1006
msgid "Submodule changes to be committed:"
msgstr "Undermodulers ändringar att checka in:"
-#: wt-status.c:1079
+#: wt-status.c:1088
msgid ""
"Do not modify or remove the line above.\n"
"Everything below it will be ignored."
@@ -9923,7 +10179,7 @@ msgstr ""
"Raden ovan får inte ändras eller tas bort.\n"
"Allt under den kommer tas bort."
-#: wt-status.c:1171
+#: wt-status.c:1180
#, c-format
msgid ""
"\n"
@@ -9934,114 +10190,114 @@ msgstr ""
"Det tog %.2f sekunder att räkna före/bakom-värden.\n"
"Du kan använda \"--no-ahead-behind\" för undvika detta.\n"
-#: wt-status.c:1201
+#: wt-status.c:1210
msgid "You have unmerged paths."
msgstr "Du har ej sammanslagna sökvägar."
-#: wt-status.c:1204
+#: wt-status.c:1213
msgid " (fix conflicts and run \"git commit\")"
msgstr " (rätta konflikter och kör \"git commit\")"
-#: wt-status.c:1206
+#: wt-status.c:1215
msgid " (use \"git merge --abort\" to abort the merge)"
msgstr " (använd \"git merge --abort\" för att avbryta sammanslagningen)"
-#: wt-status.c:1210
+#: wt-status.c:1219
msgid "All conflicts fixed but you are still merging."
msgstr "Alla konflikter har rättats men du är fortfarande i en sammanslagning."
-#: wt-status.c:1213
+#: wt-status.c:1222
msgid " (use \"git commit\" to conclude merge)"
msgstr " (använd \"git commit\" för att slutföra sammanslagningen)"
-#: wt-status.c:1224
+#: wt-status.c:1233
msgid "You are in the middle of an am session."
msgstr "Du är i mitten av en körning av \"git am\"."
-#: wt-status.c:1227
+#: wt-status.c:1236
msgid "The current patch is empty."
msgstr "Aktuell patch är tom."
-#: wt-status.c:1232
+#: wt-status.c:1241
msgid " (fix conflicts and then run \"git am --continue\")"
msgstr " (rätta konflikter och kör sedan \"git am --continue\")"
-#: wt-status.c:1234
+#: wt-status.c:1243
msgid " (use \"git am --skip\" to skip this patch)"
msgstr " (använd \"git am --skip\" för att hoppa över patchen)"
-#: wt-status.c:1237
+#: wt-status.c:1246
msgid ""
" (use \"git am --allow-empty\" to record this patch as an empty commit)"
msgstr ""
" (använd \"git am --allow-empty\" för att registrera patchen som en tom "
"incheckning)"
-#: wt-status.c:1239
+#: wt-status.c:1248
msgid " (use \"git am --abort\" to restore the original branch)"
msgstr " (använd \"git am --abort\" för att återställa ursprungsgrenen)"
-#: wt-status.c:1372
+#: wt-status.c:1381
msgid "git-rebase-todo is missing."
msgstr "git-rebase-todo saknas."
-#: wt-status.c:1374
+#: wt-status.c:1383
msgid "No commands done."
msgstr "Inga kommandon utförda."
-#: wt-status.c:1377
+#: wt-status.c:1386
#, c-format
-msgid "Last command done (%d command done):"
-msgid_plural "Last commands done (%d commands done):"
-msgstr[0] "Sista kommandot utfört (%d kommando utfört):"
-msgstr[1] "Sista kommandot utfört (%d kommandon utfört):"
+msgid "Last command done (%<PRIuMAX> command done):"
+msgid_plural "Last commands done (%<PRIuMAX> commands done):"
+msgstr[0] "Sista kommandot utfört (%<PRIuMAX> kommando utfört):"
+msgstr[1] "Sista kommandot utfört (%<PRIuMAX> kommandon utfört):"
-#: wt-status.c:1388
+#: wt-status.c:1397
#, c-format
msgid " (see more in file %s)"
msgstr " (se fler i filen %s)"
-#: wt-status.c:1393
+#: wt-status.c:1402
msgid "No commands remaining."
msgstr "Inga kommandon återstår."
-#: wt-status.c:1396
+#: wt-status.c:1405
#, c-format
-msgid "Next command to do (%d remaining command):"
-msgid_plural "Next commands to do (%d remaining commands):"
-msgstr[0] "Nästa kommando att utföra (%d kommando återstår):"
-msgstr[1] "Följande kommandon att utföra (%d kommandon återstår):"
+msgid "Next command to do (%<PRIuMAX> remaining command):"
+msgid_plural "Next commands to do (%<PRIuMAX> remaining commands):"
+msgstr[0] "Nästa kommando att utföra (%<PRIuMAX> kommando återstår):"
+msgstr[1] "Följande kommandon att utföra (%<PRIuMAX> kommandon återstår):"
-#: wt-status.c:1404
+#: wt-status.c:1413
msgid " (use \"git rebase --edit-todo\" to view and edit)"
msgstr " (använd \"git rebase --edit-todo\" för att visa och redigera)"
-#: wt-status.c:1416
+#: wt-status.c:1425
#, c-format
msgid "You are currently rebasing branch '%s' on '%s'."
msgstr "Du håller på att ombasera grenen \"%s\" ovanpå \"%s\"."
-#: wt-status.c:1421
+#: wt-status.c:1430
msgid "You are currently rebasing."
msgstr "Du håller på med en ombasering."
-#: wt-status.c:1434
+#: wt-status.c:1443
msgid " (fix conflicts and then run \"git rebase --continue\")"
msgstr " (rätta konflikter och kör sedan \"git rebase --continue\")"
-#: wt-status.c:1436
+#: wt-status.c:1445
msgid " (use \"git rebase --skip\" to skip this patch)"
msgstr " (använd \"git rebase --skip\" för att hoppa över patchen)"
-#: wt-status.c:1438
+#: wt-status.c:1447
msgid " (use \"git rebase --abort\" to check out the original branch)"
msgstr " (använd \"git rebase --abort\" för att checka ut ursprungsgrenen)"
-#: wt-status.c:1445
+#: wt-status.c:1454
msgid " (all conflicts fixed: run \"git rebase --continue\")"
msgstr " (alla konflikter rättade: kör \"git rebase --continue\")"
-#: wt-status.c:1449
+#: wt-status.c:1458
#, c-format
msgid ""
"You are currently splitting a commit while rebasing branch '%s' on '%s'."
@@ -10049,159 +10305,159 @@ msgstr ""
"Du håller på att dela upp en incheckning medan du ombaserar grenen \"%s\" "
"ovanpå \"%s\"."
-#: wt-status.c:1454
+#: wt-status.c:1463
msgid "You are currently splitting a commit during a rebase."
msgstr "Du håller på att dela upp en incheckning i en ombasering."
-#: wt-status.c:1457
+#: wt-status.c:1466
msgid " (Once your working directory is clean, run \"git rebase --continue\")"
msgstr " (Så fort din arbetskatalog är ren, kör \"git rebase --continue\")"
-#: wt-status.c:1461
+#: wt-status.c:1470
#, c-format
msgid "You are currently editing a commit while rebasing branch '%s' on '%s'."
msgstr ""
"Du håller på att redigera en incheckning medan du ombaserar grenen \"%s\" "
"ovanpå \"%s\"."
-#: wt-status.c:1466
+#: wt-status.c:1475
msgid "You are currently editing a commit during a rebase."
msgstr "Du håller på att redigera en incheckning under en ombasering."
-#: wt-status.c:1469
+#: wt-status.c:1478
msgid " (use \"git commit --amend\" to amend the current commit)"
msgstr ""
" (använd \"git commit --amend\" för att lägga till på aktuell incheckning)"
-#: wt-status.c:1471
+#: wt-status.c:1480
msgid ""
" (use \"git rebase --continue\" once you are satisfied with your changes)"
msgstr " (använd \"git rebase --continue\" när du är nöjd med dina ändringar)"
-#: wt-status.c:1482
+#: wt-status.c:1491
msgid "Cherry-pick currently in progress."
msgstr "Cherry-pick pågår."
-#: wt-status.c:1485
+#: wt-status.c:1494
#, c-format
msgid "You are currently cherry-picking commit %s."
msgstr "Du håller på med en \"cherry-pick\" av incheckningen %s."
-#: wt-status.c:1492
+#: wt-status.c:1501
msgid " (fix conflicts and run \"git cherry-pick --continue\")"
msgstr " (rätta konflikter och kör sedan \"git cherry-pick --continue\")"
-#: wt-status.c:1495
+#: wt-status.c:1504
msgid " (run \"git cherry-pick --continue\" to continue)"
msgstr " (kör \"git cherry-pick --continue\" för att fortsätta)"
-#: wt-status.c:1498
+#: wt-status.c:1507
msgid " (all conflicts fixed: run \"git cherry-pick --continue\")"
msgstr " (alla konflikter rättade: kör \"git cherry-pick --continue\")"
-#: wt-status.c:1500
+#: wt-status.c:1509
msgid " (use \"git cherry-pick --skip\" to skip this patch)"
msgstr " (använd \"git cherry-pick --skip\" för att hoppa över patchen)"
-#: wt-status.c:1502
+#: wt-status.c:1511
msgid " (use \"git cherry-pick --abort\" to cancel the cherry-pick operation)"
msgstr ""
" (använd \"git cherry-pick --abort\" för att avbryta \"cherry-pick\"-"
"operationen)"
-#: wt-status.c:1512
+#: wt-status.c:1521
msgid "Revert currently in progress."
msgstr "Ångring pågår."
-#: wt-status.c:1515
+#: wt-status.c:1524
#, c-format
msgid "You are currently reverting commit %s."
msgstr "Du håller på med att ångra incheckningen %s."
-#: wt-status.c:1521
+#: wt-status.c:1530
msgid " (fix conflicts and run \"git revert --continue\")"
msgstr " (rätta konflikter och kör sedan \"git revert --continue\")"
-#: wt-status.c:1524
+#: wt-status.c:1533
msgid " (run \"git revert --continue\" to continue)"
msgstr " (kör \"git revert --continue\" för att fortsätta)"
-#: wt-status.c:1527
+#: wt-status.c:1536
msgid " (all conflicts fixed: run \"git revert --continue\")"
msgstr " (alla konflikter rättade: kör \"git revert --continue\")"
-#: wt-status.c:1529
+#: wt-status.c:1538
msgid " (use \"git revert --skip\" to skip this patch)"
msgstr " (använd \"git revert --skip\" för att hoppa över patchen)"
-#: wt-status.c:1531
+#: wt-status.c:1540
msgid " (use \"git revert --abort\" to cancel the revert operation)"
msgstr " (använd \"git revert --abort\" för att avbryta ångrandet)"
-#: wt-status.c:1541
+#: wt-status.c:1550
#, c-format
msgid "You are currently bisecting, started from branch '%s'."
msgstr "Du håller på med en \"bisect\", startad från grenen \"%s\"."
-#: wt-status.c:1545
+#: wt-status.c:1554
msgid "You are currently bisecting."
msgstr "Du håller på med en \"bisect\"."
-#: wt-status.c:1548
+#: wt-status.c:1557
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:1559
+#: wt-status.c:1568
msgid "You are in a sparse checkout."
msgstr "Du är i en gles utcheckning."
-#: wt-status.c:1562
+#: wt-status.c:1571
#, 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:1806
+#: wt-status.c:1815
msgid "On branch "
msgstr "PÃ¥ grenen "
-#: wt-status.c:1813
+#: wt-status.c:1822
msgid "interactive rebase in progress; onto "
msgstr "interaktiv ombasering pågår; ovanpå "
-#: wt-status.c:1815
+#: wt-status.c:1824
msgid "rebase in progress; onto "
msgstr "ombasering pågår; ovanpå "
-#: wt-status.c:1820
+#: wt-status.c:1829
msgid "HEAD detached at "
msgstr "HEAD frånkopplad vid "
-#: wt-status.c:1822
+#: wt-status.c:1831
msgid "HEAD detached from "
msgstr "HEAD frånkopplad från "
-#: wt-status.c:1825
+#: wt-status.c:1834
msgid "Not currently on any branch."
msgstr "Inte på någon gren för närvarande."
-#: wt-status.c:1842
+#: wt-status.c:1851
msgid "Initial commit"
msgstr "Första incheckning"
-#: wt-status.c:1843
+#: wt-status.c:1852
msgid "No commits yet"
msgstr "Inga incheckningar ännu"
-#: wt-status.c:1857
+#: wt-status.c:1866
msgid "Untracked files"
msgstr "Ospårade filer"
-#: wt-status.c:1859
+#: wt-status.c:1868
msgid "Ignored files"
msgstr "Ignorerade filer"
-#: wt-status.c:1863
+#: wt-status.c:1872
#, c-format
msgid ""
"It took %.2f seconds to enumerate untracked files. 'status -uno'\n"
@@ -10213,32 +10469,32 @@ msgstr ""
"lägga till nya filer själv (se \"git help status\")."
# %s är nästa sträng eller tom.
-#: wt-status.c:1869
+#: wt-status.c:1878
#, c-format
msgid "Untracked files not listed%s"
msgstr "Ospårade filer visas ej%s"
-#: wt-status.c:1871
+#: wt-status.c:1880
msgid " (use -u option to show untracked files)"
msgstr " (använd flaggan -u för att visa ospårade filer)"
-#: wt-status.c:1877
+#: wt-status.c:1886
msgid "No changes"
msgstr "Inga ändringar"
-#: wt-status.c:1882
+#: wt-status.c:1891
#, 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:1886
+#: wt-status.c:1895
#, c-format
msgid "no changes added to commit\n"
msgstr "inga ändringar att checka in\n"
-#: wt-status.c:1890
+#: wt-status.c:1899
#, c-format
msgid ""
"nothing added to commit but untracked files present (use \"git add\" to "
@@ -10247,62 +10503,62 @@ msgstr ""
"inget köat för incheckning, men ospårade filer finns (spåra med \"git add"
"\")\n"
-#: wt-status.c:1894
+#: wt-status.c:1903
#, 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:1898
+#: wt-status.c:1907
#, 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:1902 wt-status.c:1908
+#: wt-status.c:1911 wt-status.c:1917
#, c-format
msgid "nothing to commit\n"
msgstr "inget att checka in\n"
-#: wt-status.c:1905
+#: wt-status.c:1914
#, 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:1910
+#: wt-status.c:1919
#, c-format
msgid "nothing to commit, working tree clean\n"
msgstr "inget att checka in, arbetskatalogen ren\n"
-#: wt-status.c:2015
+#: wt-status.c:2024
msgid "No commits yet on "
msgstr "Inga incheckningar ännu på "
-#: wt-status.c:2019
+#: wt-status.c:2028
msgid "HEAD (no branch)"
msgstr "HEAD (ingen gren)"
-#: wt-status.c:2050
+#: wt-status.c:2059
msgid "different"
msgstr "olika"
-#: wt-status.c:2052 wt-status.c:2060
+#: wt-status.c:2061 wt-status.c:2069
msgid "behind "
msgstr "efter "
-#: wt-status.c:2055 wt-status.c:2058
+#: wt-status.c:2064 wt-status.c:2067
msgid "ahead "
msgstr "före "
#. TRANSLATORS: the action is e.g. "pull with rebase"
-#: wt-status.c:2596
+#: wt-status.c:2605
#, c-format
msgid "cannot %s: You have unstaged changes."
msgstr "kan inte %s: Du har oköade ändringar."
-#: wt-status.c:2602
+#: wt-status.c:2611
msgid "additionally, your index contains uncommitted changes."
msgstr "dessutom innehåller dit index ändringar som inte har checkats in."
-#: wt-status.c:2604
+#: wt-status.c:2613
#, c-format
msgid "cannot %s: Your index contains uncommitted changes."
msgstr "kan inte %s: Ditt index innehåller ändringar som inte checkats in."
@@ -10325,145 +10581,149 @@ msgstr "kunde inte ta status \"accept_thread\" \"%s\""
msgid "could not start worker[0] for '%s'"
msgstr "kunde inte starta \"worker[0]\" för \"%s\""
-#: compat/precompose_utf8.c:58 builtin/clone.c:347
+#: compat/precompose_utf8.c:58 builtin/clone.c:353
#, c-format
msgid "failed to unlink '%s'"
msgstr "misslyckades ta bort länken \"%s\""
+#: compat/fsmonitor/fsm-listen-darwin.c:355
+msgid "Unable to create FSEventStream."
+msgstr "kunde inte skapa FSEventStream."
+
+#: compat/fsmonitor/fsm-listen-darwin.c:403
+msgid "Failed to start the FSEventStream"
+msgstr "Misslyckades starta FSEventStream:en"
+
#: builtin/add.c:26
msgid "git add [<options>] [--] <pathspec>..."
msgstr "git add [<flaggor>] [--] <sökväg>..."
-#: builtin/add.c:64
+#: builtin/add.c:63
#, c-format
msgid "cannot chmod %cx '%s'"
msgstr "kan inte utföra chmod %cx \"%s\""
-#: builtin/add.c:106
+#: builtin/add.c:105
#, c-format
msgid "unexpected diff status %c"
msgstr "diff-status %c förväntades inte"
-#: builtin/add.c:111 builtin/commit.c:298
+#: builtin/add.c:110 builtin/commit.c:299
msgid "updating files failed"
msgstr "misslyckades uppdatera filer"
-#: builtin/add.c:121
+#: builtin/add.c:120
#, c-format
msgid "remove '%s'\n"
msgstr "ta bort \"%s\"\n"
-#: builtin/add.c:205
+#: builtin/add.c:204
msgid "Unstaged changes after refreshing the index:"
msgstr "Oköade ändringar efter att ha uppdaterat indexet:"
-#: builtin/add.c:313 builtin/rev-parse.c:993
+#: builtin/add.c:312 builtin/rev-parse.c:993
msgid "Could not read the index"
msgstr "Kunde inte läsa indexet"
-#: builtin/add.c:326
+#: builtin/add.c:325
msgid "Could not write patch"
msgstr "Kunde inte skriva patch"
-#: builtin/add.c:329
+#: builtin/add.c:328
msgid "editing patch failed"
msgstr "redigering av patch misslyckades"
-#: builtin/add.c:332
+#: builtin/add.c:331
#, c-format
msgid "Could not stat '%s'"
msgstr "Kunde inte ta status på \"%s\""
-#: builtin/add.c:334
+#: builtin/add.c:333
msgid "Empty patch. Aborted."
msgstr "Tom patch. Avbryter."
-#: builtin/add.c:340
+#: builtin/add.c:339
#, c-format
msgid "Could not apply '%s'"
msgstr "Kunde inte tillämpa \"%s\""
-#: builtin/add.c:348
+#: builtin/add.c:347
msgid "The following paths are ignored by one of your .gitignore files:\n"
msgstr "Följande sökvägar ignoreras av en av dina .gitignore-filer:\n"
-#: builtin/add.c:368 builtin/clean.c:927 builtin/fetch.c:174 builtin/mv.c:124
+#: builtin/add.c:367 builtin/clean.c:927 builtin/fetch.c:175 builtin/mv.c:124
#: builtin/prune-packed.c:14 builtin/pull.c:208 builtin/push.c:550
-#: builtin/remote.c:1429 builtin/rm.c:244 builtin/send-pack.c:194
+#: builtin/remote.c:1454 builtin/rm.c:244 builtin/send-pack.c:194
msgid "dry run"
msgstr "testkörning"
-#: builtin/add.c:369 builtin/check-ignore.c:22 builtin/commit.c:1484
-#: builtin/count-objects.c:98 builtin/fsck.c:789 builtin/log.c:2313
+#: builtin/add.c:368 builtin/check-ignore.c:22 builtin/commit.c:1483
+#: builtin/count-objects.c:98 builtin/fsck.c:789 builtin/log.c:2338
#: builtin/mv.c:123 builtin/read-tree.c:120
msgid "be verbose"
msgstr "var pratsam"
-#: builtin/add.c:371
+#: builtin/add.c:370
msgid "interactive picking"
msgstr "plocka interaktivt"
-#: builtin/add.c:372 builtin/checkout.c:1581 builtin/reset.c:409
+#: builtin/add.c:371 builtin/checkout.c:1599 builtin/reset.c:417
msgid "select hunks interactively"
msgstr "välj stycken interaktivt"
-#: builtin/add.c:373
+#: builtin/add.c:372
msgid "edit current diff and apply"
msgstr "redigera aktuell diff och applicera"
-#: builtin/add.c:374
+#: builtin/add.c:373
msgid "allow adding otherwise ignored files"
msgstr "tillåt lägga till annars ignorerade filer"
-#: builtin/add.c:375
+#: builtin/add.c:374
msgid "update tracked files"
msgstr "uppdatera spårade filer"
-#: builtin/add.c:376
+#: builtin/add.c:375
msgid "renormalize EOL of tracked files (implies -u)"
msgstr "åternormalisera radslut i spårade filer (implicerar -u)"
-#: builtin/add.c:377
+#: builtin/add.c:376
msgid "record only the fact that the path will be added later"
msgstr "registrera endast att sökvägen kommer läggas till senare"
-#: builtin/add.c:378
+#: builtin/add.c:377
msgid "add changes from all tracked and untracked files"
msgstr "lägg till ändringar från alla spårade och ospårade filer"
-#: builtin/add.c:381
+#: builtin/add.c:380
msgid "ignore paths removed in the working tree (same as --no-all)"
msgstr "ignorera sökvägar borttagna i arbetskatalogen (samma som --no-all)"
-#: builtin/add.c:383
+#: builtin/add.c:382
msgid "don't add, only refresh the index"
msgstr "lägg inte till, uppdatera endast indexet"
-#: builtin/add.c:384
+#: builtin/add.c:383
msgid "just skip files which cannot be added because of errors"
msgstr "hoppa bara över filer som inte kan läggas till på grund av fel"
-#: builtin/add.c:385
+#: builtin/add.c:384
msgid "check if - even missing - files are ignored in dry run"
msgstr "se om - även saknade - filer ignoreras i testkörning"
-#: builtin/add.c:386 builtin/mv.c:128 builtin/rm.c:251
+#: builtin/add.c:385 builtin/mv.c:128 builtin/rm.c:251
msgid "allow updating entries outside of the sparse-checkout cone"
msgstr "tillåt uppdatera poster utanför området angivet i \"sparse-checkout\""
-#: builtin/add.c:388 builtin/update-index.c:1004
+#: builtin/add.c:387 builtin/update-index.c:1023
msgid "override the executable bit of the listed files"
msgstr "överstyr exekveringsbiten för angivna filer"
-#: builtin/add.c:390
+#: builtin/add.c:389
msgid "warn when adding an embedded repository"
msgstr "varna när ett inbyggt arkiv läggs till"
-#: builtin/add.c:392
-msgid "backend for `git stash -p`"
-msgstr "bakända för \"git stash -p\""
-
-#: builtin/add.c:410
+#: builtin/add.c:407
#, c-format
msgid ""
"You've added another git repository inside your current repository.\n"
@@ -10494,12 +10754,12 @@ msgstr ""
"\n"
"Se \"git help submodule\" för ytterligare information."
-#: builtin/add.c:439
+#: builtin/add.c:436
#, c-format
msgid "adding embedded git repository: %s"
msgstr "lägger till inbäddat git-arkiv: %s"
-#: builtin/add.c:459
+#: builtin/add.c:456
msgid ""
"Use -f if you really want to add them.\n"
"Turn this message off by running\n"
@@ -10509,27 +10769,27 @@ msgstr ""
"Slå av detta meddelande med\n"
"\"git config advice.addIgnoredFile false\""
-#: builtin/add.c:474
+#: builtin/add.c:471
msgid "adding files failed"
msgstr "misslyckades lägga till filer"
-#: builtin/add.c:548
+#: builtin/add.c:534
#, c-format
msgid "--chmod param '%s' must be either -x or +x"
msgstr "\"--chmod\"-parametern \"%s\" måste antingen vara -x eller +x"
-#: builtin/add.c:569 builtin/checkout.c:1751 builtin/commit.c:364
-#: builtin/reset.c:429 builtin/rm.c:275 builtin/stash.c:1713
+#: builtin/add.c:555 builtin/checkout.c:1770 builtin/commit.c:365
+#: builtin/reset.c:436 builtin/rm.c:275 builtin/stash.c:1702
#, c-format
msgid "'%s' and pathspec arguments cannot be used together"
msgstr "\"%s\" kan inte användas tillsammans med sökvägsangivelser"
-#: builtin/add.c:580
+#: builtin/add.c:566
#, c-format
msgid "Nothing specified, nothing added.\n"
msgstr "Inget angivet, inget tillagt.\n"
-#: builtin/add.c:582
+#: builtin/add.c:568
msgid ""
"Maybe you wanted to say 'git add .'?\n"
"Turn this message off by running\n"
@@ -10539,117 +10799,112 @@ msgstr ""
"Slå av detta meddelande genom att köra\n"
"\"git config advice.addEmptyPathspec false\""
-#: builtin/am.c:202
-#, c-format
-msgid "Invalid value for --empty: %s"
-msgstr "Felaktigt värde för --empty: %s"
-
-#: builtin/am.c:392
+#: builtin/am.c:393
msgid "could not parse author script"
msgstr "kunde inte tolka författarskript"
-#: builtin/am.c:482
+#: builtin/am.c:483
#, c-format
msgid "'%s' was deleted by the applypatch-msg hook"
msgstr "\"%s\" togs bort av kroken applypatch-msg"
-#: builtin/am.c:524
+#: builtin/am.c:525
#, c-format
msgid "Malformed input line: '%s'."
msgstr "Felaktig indatarad: \"%s\"."
-#: builtin/am.c:562
+#: builtin/am.c:563
#, c-format
msgid "Failed to copy notes from '%s' to '%s'"
msgstr "Misslyckades kopiera anteckningar från \"%s\" till \"%s\""
-#: builtin/am.c:588
+#: builtin/am.c:589
msgid "fseek failed"
msgstr "\"fseek\" misslyckades"
-#: builtin/am.c:776
+#: builtin/am.c:777
#, c-format
msgid "could not parse patch '%s'"
msgstr "kunde inte tolka patchen \"%s\""
-#: builtin/am.c:841
+#: builtin/am.c:842
msgid "Only one StGIT patch series can be applied at once"
msgstr "Endast en StGIT-patchserie kan tillämpas åt gången"
-#: builtin/am.c:889
+#: builtin/am.c:890
msgid "invalid timestamp"
msgstr "ogiltig tidsstämpel"
-#: builtin/am.c:894 builtin/am.c:906
+#: builtin/am.c:895 builtin/am.c:907
msgid "invalid Date line"
msgstr "ogiltig \"Date\"-rad"
-#: builtin/am.c:901
+#: builtin/am.c:902
msgid "invalid timezone offset"
msgstr "ogiltig tidszons-offset"
-#: builtin/am.c:994
+#: builtin/am.c:995
msgid "Patch format detection failed."
msgstr "Misslyckades detektera patchformat."
-#: builtin/am.c:999 builtin/clone.c:300
+#: builtin/am.c:1000 builtin/clone.c:306
#, c-format
msgid "failed to create directory '%s'"
msgstr "misslyckades skapa katalogen \"%s\""
-#: builtin/am.c:1004
+#: builtin/am.c:1005
msgid "Failed to split patches."
msgstr "Misslyckades dela patchar."
-#: builtin/am.c:1153
+#: builtin/am.c:1154
#, c-format
msgid "When you have resolved this problem, run \"%s --continue\"."
msgstr "När du har löst problemet, kör \"%s --continue\"."
-#: builtin/am.c:1154
+#: builtin/am.c:1155
#, c-format
msgid "If you prefer to skip this patch, run \"%s --skip\" instead."
msgstr "Om du hellre vill hoppa över patchen, kör \"%s --skip\" i stället."
-#: builtin/am.c:1159
+#: builtin/am.c:1160
#, c-format
msgid "To record the empty patch as an empty commit, run \"%s --allow-empty\"."
msgstr ""
"För att registrera den tomma patchen som en tom incheckning, kör \"%s --"
"allow-empty\"."
-#: builtin/am.c:1161
+#: builtin/am.c:1162
#, c-format
msgid "To restore the original branch and stop patching, run \"%s --abort\"."
msgstr ""
"För att återgå till ursprunglig gren och sluta patcha, kör \"%s --abort\"."
-#: builtin/am.c:1256
+#: builtin/am.c:1257
msgid "Patch sent with format=flowed; space at the end of lines might be lost."
msgstr ""
"Patch sänd med format=flowed; blanksteg på slut av rader kan ha tappats."
-#: builtin/am.c:1344
+#: builtin/am.c:1345
#, c-format
msgid "missing author line in commit %s"
msgstr "saknad \"author\"-rad i incheckningen %s"
-#: builtin/am.c:1347
+#: builtin/am.c:1348
#, c-format
msgid "invalid ident line: %.*s"
msgstr "ogiltig ident-rad: %.*s"
-#: builtin/am.c:1566
+#: builtin/am.c:1567
msgid "Repository lacks necessary blobs to fall back on 3-way merge."
msgstr ""
"Arkivet saknar objekt som behövs för att falla tillbaka på 3-"
"vägssammanslagning."
-#: builtin/am.c:1568
+#: builtin/am.c:1569
msgid "Using index info to reconstruct a base tree..."
msgstr "Använder indexinfo för att återskapa ett basträd..."
-#: builtin/am.c:1587
+#: builtin/am.c:1588
msgid ""
"Did you hand edit your patch?\n"
"It does not apply to blobs recorded in its index."
@@ -10657,25 +10912,25 @@ msgstr ""
"Har du handredigerat din patch?\n"
"Den kan inte tillämpas på blobbar som antecknats i dess index."
-#: builtin/am.c:1593
+#: builtin/am.c:1594
msgid "Falling back to patching base and 3-way merge..."
msgstr ""
"Faller tillbaka på att patcha grundversionen och trevägssammanslagning..."
-#: builtin/am.c:1619
+#: builtin/am.c:1620
msgid "Failed to merge in the changes."
msgstr "Misslyckades slå ihop ändringarna."
-#: builtin/am.c:1651
+#: builtin/am.c:1652
msgid "applying to an empty history"
msgstr "tillämpar på en tom historik"
-#: builtin/am.c:1703 builtin/am.c:1707
+#: builtin/am.c:1704 builtin/am.c:1708
#, c-format
msgid "cannot resume: %s does not exist."
msgstr "kan inte återuppta: %s finns inte."
-#: builtin/am.c:1725
+#: builtin/am.c:1726
msgid "Commit Body is:"
msgstr "Incheckningskroppen är:"
@@ -10683,59 +10938,59 @@ msgstr "Incheckningskroppen är:"
#. in your translation. The program will only accept English
#. input at this point.
#.
-#: builtin/am.c:1735
+#: builtin/am.c:1736
#, c-format
msgid "Apply? [y]es/[n]o/[e]dit/[v]iew patch/[a]ccept all: "
msgstr "Tillämpa? Y=ja/N=nej/E=redigera/V=visa patch/A=godta alla: "
-#: builtin/am.c:1781 builtin/commit.c:409
+#: builtin/am.c:1782 builtin/commit.c:410
msgid "unable to write index file"
msgstr "kan inte skriva indexfil"
-#: builtin/am.c:1785
+#: builtin/am.c:1786
#, c-format
msgid "Dirty index: cannot apply patches (dirty: %s)"
msgstr "Smutsigt index: kan inte tillämpa patchar (smutsiga: %s)"
-#: builtin/am.c:1827
+#: builtin/am.c:1828
#, c-format
msgid "Skipping: %.*s"
msgstr "Hoppar över: %.*s"
-#: builtin/am.c:1832
+#: builtin/am.c:1833
#, c-format
msgid "Creating an empty commit: %.*s"
msgstr "Skapar en tom incheckningar: %.*s"
-#: builtin/am.c:1836
+#: builtin/am.c:1837
msgid "Patch is empty."
msgstr "Patchen är tom."
-#: builtin/am.c:1847 builtin/am.c:1916
+#: builtin/am.c:1848 builtin/am.c:1917
#, c-format
msgid "Applying: %.*s"
msgstr "Tillämpar: %.*s"
-#: builtin/am.c:1864
+#: builtin/am.c:1865
msgid "No changes -- Patch already applied."
msgstr "Inga ändringar -- Patchen har redan tillämpats."
-#: builtin/am.c:1870
+#: builtin/am.c:1871
#, c-format
msgid "Patch failed at %s %.*s"
msgstr "Patch misslyckades på %s %.*s"
-#: builtin/am.c:1874
+#: builtin/am.c:1875
msgid "Use 'git am --show-current-patch=diff' to see the failed patch"
msgstr ""
"Använd \"git am --show-current-patch=diff\" för att se patchen som "
"misslyckades"
-#: builtin/am.c:1920
+#: builtin/am.c:1921
msgid "No changes - recorded it as an empty commit."
msgstr "Inga ändringar - sparat som en tom incheckning."
-#: builtin/am.c:1922
+#: builtin/am.c:1923
msgid ""
"No changes - did you forget to use 'git add'?\n"
"If there is nothing left to stage, chances are that something else\n"
@@ -10745,7 +11000,7 @@ msgstr ""
"Om det inte är något kvar att köa kan det hända att något annat redan\n"
"introducerat samma ändringar; kanske du bör hoppa över patchen."
-#: builtin/am.c:1930
+#: builtin/am.c:1931
msgid ""
"You still have unmerged paths in your index.\n"
"You should 'git add' each file with resolved conflicts to mark them as "
@@ -10757,17 +11012,17 @@ msgstr ""
"lösta.\n"
"Du kan köra \"git rm\" för att godta \"borttagen av dem\" för den."
-#: builtin/am.c:2038 builtin/am.c:2042 builtin/am.c:2054 builtin/reset.c:448
-#: builtin/reset.c:456
+#: builtin/am.c:2039 builtin/am.c:2043 builtin/am.c:2055 builtin/reset.c:455
+#: builtin/reset.c:463
#, c-format
msgid "Could not parse object '%s'."
msgstr "Kan inte tolka objektet \"%s\"."
-#: builtin/am.c:2090 builtin/am.c:2166
+#: builtin/am.c:2091 builtin/am.c:2167
msgid "failed to clean index"
msgstr "misslyckades städa upp indexet"
-#: builtin/am.c:2134
+#: builtin/am.c:2135
msgid ""
"You seem to have moved HEAD since the last 'am' failure.\n"
"Not rewinding to ORIG_HEAD"
@@ -10775,167 +11030,158 @@ msgstr ""
"Du verkar ha flyttat HEAD sedan \"am\" sist misslyckades.\n"
"Återställer inte till ORIG_HEAD"
-#: builtin/am.c:2242
-#, c-format
-msgid "Invalid value for --patch-format: %s"
-msgstr "Felaktigt värde för --patch-format: %s"
-
-#: builtin/am.c:2285
-#, c-format
-msgid "Invalid value for --show-current-patch: %s"
-msgstr "Felaktigt värde för --show-current-patch: %s"
-
-#: builtin/am.c:2289
+#: builtin/am.c:2292
#, c-format
msgid "options '%s=%s' and '%s=%s' cannot be used together"
msgstr "flaggorna \"%s=%s\" och \"%s=%s\" kan inte användas samtidigt"
-#: builtin/am.c:2320
+#: builtin/am.c:2323
msgid "git am [<options>] [(<mbox> | <Maildir>)...]"
msgstr "git am [<flaggor>] [(<mbox> | <Maildir>)...]"
-#: builtin/am.c:2321
+#: builtin/am.c:2324
msgid "git am [<options>] (--continue | --skip | --abort)"
msgstr "git am [<flaggor>] (--continue | --skip | --abort)"
-#: builtin/am.c:2327
+#: builtin/am.c:2330
msgid "run interactively"
msgstr "kör interaktivt"
-#: builtin/am.c:2329
+#: builtin/am.c:2332
msgid "historical option -- no-op"
msgstr "historisk flagga -- no-op"
-#: builtin/am.c:2331
+#: builtin/am.c:2334
msgid "allow fall back on 3way merging if needed"
msgstr "tillåt falla tillbaka på trevägssammanslagning om nödvändigt"
-#: builtin/am.c:2332 builtin/init-db.c:547 builtin/prune-packed.c:16
-#: builtin/repack.c:642 builtin/stash.c:962
+#: builtin/am.c:2335 builtin/init-db.c:547 builtin/prune-packed.c:16
+#: builtin/repack.c:646 builtin/stash.c:946
msgid "be quiet"
msgstr "var tyst"
-#: builtin/am.c:2334
+#: builtin/am.c:2337
msgid "add a Signed-off-by trailer to the commit message"
msgstr "lägg till \"Signed-off-by\"-släprad i incheckningsmeddelandet"
-#: builtin/am.c:2337
+#: builtin/am.c:2340
msgid "recode into utf8 (default)"
msgstr "koda om till utf8 (standard)"
-#: builtin/am.c:2339
+#: builtin/am.c:2342
msgid "pass -k flag to git-mailinfo"
msgstr "sänd flaggan -k till git-mailinfo"
-#: builtin/am.c:2341
+#: builtin/am.c:2344
msgid "pass -b flag to git-mailinfo"
msgstr "sänd flaggan -b till git-mailinfo"
-#: builtin/am.c:2343
+#: builtin/am.c:2346
msgid "pass -m flag to git-mailinfo"
msgstr "sänd flaggan -m till git-mailinfo"
-#: builtin/am.c:2345
+#: builtin/am.c:2348
msgid "pass --keep-cr flag to git-mailsplit for mbox format"
msgstr "sänd flaggan --keep-cr till git-mailsplit för mbox-formatet"
-#: builtin/am.c:2348
+#: builtin/am.c:2351
msgid "do not pass --keep-cr flag to git-mailsplit independent of am.keepcr"
msgstr "sänd inte flaggan --keep-cr till git-mailsplit oberoende av am.keepcr"
-#: builtin/am.c:2351
+#: builtin/am.c:2354
msgid "strip everything before a scissors line"
msgstr "ta bort allting före en saxlinje"
-#: builtin/am.c:2353
+#: builtin/am.c:2356
msgid "pass it through git-mailinfo"
msgstr "sänd det genom git-mailinfo"
-#: builtin/am.c:2356 builtin/am.c:2359 builtin/am.c:2362 builtin/am.c:2365
-#: builtin/am.c:2368 builtin/am.c:2371 builtin/am.c:2374 builtin/am.c:2377
-#: builtin/am.c:2383
+#: builtin/am.c:2359 builtin/am.c:2362 builtin/am.c:2365 builtin/am.c:2368
+#: builtin/am.c:2371 builtin/am.c:2374 builtin/am.c:2377 builtin/am.c:2380
+#: builtin/am.c:2386
msgid "pass it through git-apply"
msgstr "sänd det genom git-apply"
-#: builtin/am.c:2373 builtin/commit.c:1515 builtin/fmt-merge-msg.c:18
-#: builtin/fmt-merge-msg.c:21 builtin/grep.c:919 builtin/merge.c:263
+#: builtin/am.c:2376 builtin/commit.c:1514 builtin/fmt-merge-msg.c:18
+#: builtin/fmt-merge-msg.c:21 builtin/grep.c:920 builtin/merge.c:263
#: builtin/pull.c:142 builtin/pull.c:204 builtin/pull.c:221
-#: builtin/rebase.c:1046 builtin/repack.c:653 builtin/repack.c:657
-#: builtin/repack.c:659 builtin/show-branch.c:649 builtin/show-ref.c:172
-#: builtin/tag.c:445 parse-options.h:154 parse-options.h:175
-#: parse-options.h:317
+#: builtin/rebase.c:1074 builtin/repack.c:657 builtin/repack.c:661
+#: builtin/repack.c:663 builtin/show-branch.c:650 builtin/show-ref.c:172
+#: builtin/tag.c:446 parse-options.h:159 parse-options.h:180
+#: parse-options.h:348
msgid "n"
msgstr "n"
-#: builtin/am.c:2379 builtin/branch.c:680 builtin/bugreport.c:109
-#: builtin/for-each-ref.c:41 builtin/replace.c:555 builtin/tag.c:479
-#: builtin/verify-tag.c:38
+#: builtin/am.c:2382 builtin/branch.c:695 builtin/bugreport.c:109
+#: builtin/cat-file.c:848 builtin/cat-file.c:852 builtin/cat-file.c:856
+#: builtin/for-each-ref.c:41 builtin/ls-tree.c:357 builtin/replace.c:555
+#: builtin/tag.c:480 builtin/verify-tag.c:38
msgid "format"
msgstr "format"
-#: builtin/am.c:2380
+#: builtin/am.c:2383
msgid "format the patch(es) are in"
msgstr "format för patch(ar)"
-#: builtin/am.c:2386
+#: builtin/am.c:2389
msgid "override error message when patch failure occurs"
msgstr "överstyr felmeddelanden när patchfel uppstår"
-#: builtin/am.c:2388
+#: builtin/am.c:2391
msgid "continue applying patches after resolving a conflict"
msgstr "fortsätt applicera patchar efter att ha löst en konflikt"
-#: builtin/am.c:2391
+#: builtin/am.c:2394
msgid "synonyms for --continue"
msgstr "synonymer till --continue"
-#: builtin/am.c:2394
+#: builtin/am.c:2397
msgid "skip the current patch"
msgstr "hoppa över den aktuella grenen"
-#: builtin/am.c:2397
+#: builtin/am.c:2400
msgid "restore the original branch and abort the patching operation"
msgstr "återställ originalgrenen och avbryt patchningen"
-#: builtin/am.c:2400
+#: builtin/am.c:2403
msgid "abort the patching operation but keep HEAD where it is"
msgstr "avbryt patchningen men behåll HEAD där det är"
-#: builtin/am.c:2404
+#: builtin/am.c:2407
msgid "show the patch being applied"
msgstr "visa patchen som tillämpas"
-#: builtin/am.c:2408
+#: builtin/am.c:2411
msgid "record the empty patch as an empty commit"
msgstr "lagra den tomma patchen som en tom incheckning"
-#: builtin/am.c:2412
+#: builtin/am.c:2415
msgid "lie about committer date"
msgstr "ljug om incheckningsdatum"
-#: builtin/am.c:2414
+#: builtin/am.c:2417
msgid "use current timestamp for author date"
msgstr "använd nuvarande tidsstämpel för författardatum"
-#: builtin/am.c:2416 builtin/commit-tree.c:118 builtin/commit.c:1643
-#: builtin/merge.c:302 builtin/pull.c:179 builtin/rebase.c:1099
-#: builtin/revert.c:117 builtin/tag.c:460
+#: builtin/am.c:2419 builtin/commit-tree.c:118 builtin/commit.c:1642
+#: builtin/merge.c:302 builtin/pull.c:179 builtin/rebase.c:1127
+#: builtin/revert.c:117 builtin/tag.c:461
msgid "key-id"
msgstr "nyckel-id"
-#: builtin/am.c:2417 builtin/rebase.c:1100
+#: builtin/am.c:2420 builtin/rebase.c:1128
msgid "GPG-sign commits"
msgstr "GPG-signera incheckningar"
-#: builtin/am.c:2420
+#: builtin/am.c:2423
msgid "how to handle empty patches"
msgstr "hantering av tomma patchar"
-#: builtin/am.c:2423
+#: builtin/am.c:2426
msgid "(internal use for git-rebase)"
msgstr "(används internt av git-rebase)"
-#: builtin/am.c:2441
+#: builtin/am.c:2444
msgid ""
"The -b/--binary option has been a no-op for long time, and\n"
"it will be removed. Please do not use it anymore."
@@ -10943,16 +11189,16 @@ msgstr ""
"Flaggan -b/--binary har varit utan funktion länge, och\n"
"kommer tas bort. Vi ber dig att inte använda den längre."
-#: builtin/am.c:2448
+#: builtin/am.c:2451
msgid "failed to read the index"
msgstr "misslyckades läsa indexet"
-#: builtin/am.c:2463
+#: builtin/am.c:2466
#, c-format
msgid "previous rebase directory %s still exists but mbox given."
msgstr "tidigare rebase-katalog %s finns fortfarande, men mbox angavs."
-#: builtin/am.c:2487
+#: builtin/am.c:2490
#, c-format
msgid ""
"Stray %s directory found.\n"
@@ -10961,11 +11207,11 @@ msgstr ""
"Kvarbliven katalog %s hittades.\n"
"Använd \"git am --abort\" för att ta bort den."
-#: builtin/am.c:2493
+#: builtin/am.c:2496
msgid "Resolve operation not in progress, we are not resuming."
msgstr "Lösningsoperation pågår inte, vi återupptar inte."
-#: builtin/am.c:2503
+#: builtin/am.c:2506
msgid "interactive mode requires patches on the command line"
msgstr "interaktivt läge kräver patchar på kommandoraden"
@@ -11002,14 +11248,6 @@ msgstr "git archive: förväntade en tömning (flush)"
msgid "git bisect--helper --bisect-reset [<commit>]"
msgstr "git bisect--helper --bisect-reset [<incheckning>]"
-#: builtin/bisect--helper.c:25
-msgid ""
-"git bisect--helper --bisect-terms [--term-good | --term-old | --term-bad | --"
-"term-new]"
-msgstr ""
-"git bisect--helper --bisect-terms [--term-good | --term-old | --term-bad | --"
-"term-new]"
-
#: builtin/bisect--helper.c:26
msgid ""
"git bisect--helper --bisect-start [--term-{new,bad}=<term> --term-{old,good}"
@@ -11020,10 +11258,6 @@ msgstr ""
"=<term>] [--no-checkout] [--first-parent] [<dålig> [<bra>...]] [--] "
"[<sökvägar>...]"
-#: builtin/bisect--helper.c:28
-msgid "git bisect--helper --bisect-next"
-msgstr "git bisect--helper --bisect-next"
-
#: builtin/bisect--helper.c:29
msgid "git bisect--helper --bisect-state (bad|new) [<rev>]"
msgstr "git bisect--helper --bisect-state (bad|new) [<incheckning>]"
@@ -11040,10 +11274,6 @@ msgstr "git bisect--helper --bisect-replay <filnamn>"
msgid "git bisect--helper --bisect-skip [(<rev>|<range>)...]"
msgstr "git bisect--helper --bisect-skip [(<incheckning>|<intervall>)...]"
-#: builtin/bisect--helper.c:33
-msgid "git bisect--helper --bisect-visualize"
-msgstr "git bisect--helper --bisect-visualize"
-
#: builtin/bisect--helper.c:34
msgid "git bisect--helper --bisect-run <cmd>..."
msgstr "git bisect--helper --bisect-run <kommando>..."
@@ -11267,41 +11497,51 @@ msgstr "\"%s\"?? vad menar du?"
msgid "cannot read file '%s' for replaying"
msgstr "kan inte läsa filen \"%s\" för återuppspelning"
-#: builtin/bisect--helper.c:1107 builtin/bisect--helper.c:1274
+#: builtin/bisect--helper.c:1120 builtin/bisect--helper.c:1152
+#, c-format
+msgid "running %s\n"
+msgstr "kör %s\n"
+
+#: builtin/bisect--helper.c:1145 builtin/bisect--helper.c:1335
msgid "bisect run failed: no command provided."
msgstr "bisect-körning misslyckades: inget kommando gavs."
-#: builtin/bisect--helper.c:1116
+#: builtin/bisect--helper.c:1166
#, c-format
-msgid "running %s\n"
-msgstr "kör %s\n"
+msgid "unable to verify '%s' on good revision"
+msgstr "kan inte bekräfta \"%s\" på bra revision"
+
+#: builtin/bisect--helper.c:1172
+#, c-format
+msgid "bogus exit code %d for good revision"
+msgstr "falsk slutkod %d för bra revision"
-#: builtin/bisect--helper.c:1120
+#: builtin/bisect--helper.c:1180
#, c-format
msgid "bisect run failed: exit code %d from '%s' is < 0 or >= 128"
msgstr ""
"\"bisect\"-körningen misslyckades: felkod %d från \"%s\" är < 0 eller >= 128"
-#: builtin/bisect--helper.c:1136
+#: builtin/bisect--helper.c:1195
#, c-format
msgid "cannot open file '%s' for writing"
msgstr "kan inte öppna \"%s\" för skrivning"
-#: builtin/bisect--helper.c:1152
+#: builtin/bisect--helper.c:1213
msgid "bisect run cannot continue any more"
msgstr "\"bisect\"-körningen kan inte fortsätta längre"
-#: builtin/bisect--helper.c:1154
+#: builtin/bisect--helper.c:1215
#, c-format
msgid "bisect run success"
msgstr "\"bisect\"-körningen lyckades"
-#: builtin/bisect--helper.c:1157
+#: builtin/bisect--helper.c:1218
#, c-format
msgid "bisect found first bad commit"
msgstr "bisect hittade första trasiga incheckning"
-#: builtin/bisect--helper.c:1160
+#: builtin/bisect--helper.c:1221
#, c-format
msgid ""
"bisect run failed: 'git bisect--helper --bisect-state %s' exited with error "
@@ -11310,71 +11550,71 @@ msgstr ""
"\"bisect\"-körningen misslyckades: \"git bisect--helper --bisect-state %s\" "
"avslutades med felkoden %d"
-#: builtin/bisect--helper.c:1192
+#: builtin/bisect--helper.c:1253
msgid "reset the bisection state"
msgstr "återställ bisect-tillstånd"
-#: builtin/bisect--helper.c:1194
+#: builtin/bisect--helper.c:1255
msgid "check whether bad or good terms exist"
msgstr "se efter om termer för rätt och fel finns"
-#: builtin/bisect--helper.c:1196
+#: builtin/bisect--helper.c:1257
msgid "print out the bisect terms"
msgstr "skriv ut termer för bisect"
-#: builtin/bisect--helper.c:1198
+#: builtin/bisect--helper.c:1259
msgid "start the bisect session"
msgstr "påbörja bisect-körningen"
-#: builtin/bisect--helper.c:1200
+#: builtin/bisect--helper.c:1261
msgid "find the next bisection commit"
msgstr "hitta nästa incheckning i bisect"
-#: builtin/bisect--helper.c:1202
+#: builtin/bisect--helper.c:1263
msgid "mark the state of ref (or refs)"
msgstr "markera tillståndet för en eller flera referenser"
-#: builtin/bisect--helper.c:1204
+#: builtin/bisect--helper.c:1265
msgid "list the bisection steps so far"
msgstr "lista \"bisect\"-stegen som utförts så långt"
-#: builtin/bisect--helper.c:1206
+#: builtin/bisect--helper.c:1267
msgid "replay the bisection process from the given file"
msgstr "spela upp \"bisect\"-processen från angiven fil"
-#: builtin/bisect--helper.c:1208
+#: builtin/bisect--helper.c:1269
msgid "skip some commits for checkout"
msgstr "hoppa över ett par incheckningar"
-#: builtin/bisect--helper.c:1210
+#: builtin/bisect--helper.c:1271
msgid "visualize the bisection"
msgstr "visualisera \"bisect\"-körningen"
-#: builtin/bisect--helper.c:1212
-msgid "use <cmd>... to automatically bisect."
-msgstr "använd <kommando>... för att utföra \"bisect\" automatiskt."
+#: builtin/bisect--helper.c:1273
+msgid "use <cmd>... to automatically bisect"
+msgstr "använd <kommando>... för att utföra \"bisect\" automatiskt"
-#: builtin/bisect--helper.c:1214
+#: builtin/bisect--helper.c:1275
msgid "no log for BISECT_WRITE"
msgstr "ingen logg för BISECT_WRITE"
-#: builtin/bisect--helper.c:1229
+#: builtin/bisect--helper.c:1290
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:1234
+#: builtin/bisect--helper.c:1295
msgid "--bisect-terms requires 0 or 1 argument"
msgstr "--bisect-terms kräver noll eller ett argument"
-#: builtin/bisect--helper.c:1243
+#: builtin/bisect--helper.c:1304
msgid "--bisect-next requires 0 arguments"
msgstr "--bisect-next kräver 0 argument"
-#: builtin/bisect--helper.c:1254
+#: builtin/bisect--helper.c:1315
msgid "--bisect-log requires 0 arguments"
msgstr "--bisect-log kräver 0 argument"
-#: builtin/bisect--helper.c:1259
+#: builtin/bisect--helper.c:1320
msgid "no logfile given"
msgstr "ingen loggfil angiven"
@@ -11395,143 +11635,134 @@ msgstr "förväntade en färg: %s"
msgid "must end with a color"
msgstr "måste sluta med en färg"
-#: builtin/blame.c:724
-#, c-format
-msgid "invalid color '%s' in color.blame.repeatedLines"
-msgstr "felaktig färg \"%s\" i color.blame.repeatedLines"
-
-#: builtin/blame.c:742
-msgid "invalid value for blame.coloring"
-msgstr "ogiltigt värde för blame.coloring"
-
-#: builtin/blame.c:841
+#: builtin/blame.c:842
#, c-format
msgid "cannot find revision %s to ignore"
msgstr "kan inte hitta revision %s att ignorera"
-#: builtin/blame.c:863
+#: builtin/blame.c:864
msgid "show blame entries as we find them, incrementally"
msgstr "visa klandringsposter när vi hittar dem, interaktivt"
-#: builtin/blame.c:864
+#: builtin/blame.c:865
msgid "do not show object names of boundary commits (Default: off)"
msgstr "visa inte objektnamn för gränsincheckningar (Standard: av)"
-#: builtin/blame.c:865
+#: builtin/blame.c:866
msgid "do not treat root commits as boundaries (Default: off)"
msgstr "vehandla inte rotincheckningar som gränser (Standard: av)"
-#: builtin/blame.c:866
+#: builtin/blame.c:867
msgid "show work cost statistics"
msgstr "visa statistik över arbetskostnad"
-#: builtin/blame.c:867 builtin/checkout.c:1536 builtin/clone.c:94
-#: builtin/commit-graph.c:75 builtin/commit-graph.c:228 builtin/fetch.c:180
+#: builtin/blame.c:868 builtin/checkout.c:1554 builtin/clone.c:98
+#: builtin/commit-graph.c:75 builtin/commit-graph.c:228 builtin/fetch.c:181
#: builtin/merge.c:301 builtin/multi-pack-index.c:103
#: builtin/multi-pack-index.c:154 builtin/multi-pack-index.c:180
#: builtin/multi-pack-index.c:208 builtin/pull.c:120 builtin/push.c:566
-#: builtin/send-pack.c:202
+#: builtin/remote.c:683 builtin/send-pack.c:202
msgid "force progress reporting"
msgstr "tvinga förloppsrapportering"
-#: builtin/blame.c:868
+#: builtin/blame.c:869
msgid "show output score for blame entries"
msgstr "visa utdatapoäng för klandringsposter"
-#: builtin/blame.c:869
+#: builtin/blame.c:870
msgid "show original filename (Default: auto)"
msgstr "visa originalfilnamn (Standard: auto)"
-#: builtin/blame.c:870
+#: builtin/blame.c:871
msgid "show original linenumber (Default: off)"
msgstr "visa ursprungligt radnummer (Standard: av)"
-#: builtin/blame.c:871
+#: builtin/blame.c:872
msgid "show in a format designed for machine consumption"
msgstr "visa i ett format avsett för maskinkonsumtion"
-#: builtin/blame.c:872
+#: builtin/blame.c:873
msgid "show porcelain format with per-line commit information"
msgstr "visa porslinsformat med per-rad-incheckningsinformation"
-#: builtin/blame.c:873
+#: builtin/blame.c:874
msgid "use the same output mode as git-annotate (Default: off)"
msgstr "använd samma utdataläge som git-annotate (Standard: av)"
-#: builtin/blame.c:874
+#: builtin/blame.c:875
msgid "show raw timestamp (Default: off)"
msgstr "visa rå tidsstämpel (Standard: av)"
-#: builtin/blame.c:875
+#: builtin/blame.c:876
msgid "show long commit SHA1 (Default: off)"
msgstr "visa lång inchecknings-SHA1 (Standard: av)"
-#: builtin/blame.c:876
+#: builtin/blame.c:877
msgid "suppress author name and timestamp (Default: off)"
msgstr "undertryck författarnamn och tidsstämpel (Standard: av)"
-#: builtin/blame.c:877
+#: builtin/blame.c:878
msgid "show author email instead of name (Default: off)"
msgstr "visa författarens e-post istället för namn (Standard: av)"
-#: builtin/blame.c:878
+#: builtin/blame.c:879
msgid "ignore whitespace differences"
msgstr "ignorera ändringar i blanksteg"
-#: builtin/blame.c:879 builtin/log.c:1838
+#: builtin/blame.c:880 builtin/log.c:1857
msgid "rev"
msgstr "incheckning"
-#: builtin/blame.c:879
+#: builtin/blame.c:880
msgid "ignore <rev> when blaming"
msgstr "ignorera <incheckning> vid klandringen"
-#: builtin/blame.c:880
+#: builtin/blame.c:881
msgid "ignore revisions from <file>"
msgstr "ignorera incheckningar från <fil>"
-#: builtin/blame.c:881
+#: builtin/blame.c:882
msgid "color redundant metadata from previous line differently"
msgstr "färglägg redundant metadata från tidigare rader annorlunda"
-#: builtin/blame.c:882
+#: builtin/blame.c:883
msgid "color lines by age"
msgstr "färglägg rader efter ålder"
-#: builtin/blame.c:883
+#: builtin/blame.c:884
msgid "spend extra cycles to find better match"
msgstr "slösa extra cykler med att hitta bättre träff"
-#: builtin/blame.c:884
+#: builtin/blame.c:885
msgid "use revisions from <file> instead of calling git-rev-list"
msgstr "använd revisioner från <fil> istället för att anropa git-rev-list"
-#: builtin/blame.c:885
+#: builtin/blame.c:886
msgid "use <file>'s contents as the final image"
msgstr "använd <fil>s innehåll som slutgiltig bild"
-#: builtin/blame.c:886 builtin/blame.c:887
+#: builtin/blame.c:887 builtin/blame.c:888
msgid "score"
msgstr "poäng"
-#: builtin/blame.c:886
+#: builtin/blame.c:887
msgid "find line copies within and across files"
msgstr "hitta kopierade rader inuti och mellan filer"
-#: builtin/blame.c:887
+#: builtin/blame.c:888
msgid "find line movements within and across files"
msgstr "hitta flyttade rader inuti och mellan filer"
-#: builtin/blame.c:888
+#: builtin/blame.c:889
msgid "range"
msgstr "intervall"
-#: builtin/blame.c:889
+#: builtin/blame.c:890
msgid "process only line range <start>,<end> or function :<funcname>"
msgstr ""
"behandla endast intervallet <start>,<slut> eller funktionen :<funknamn>"
-#: builtin/blame.c:947
+#: builtin/blame.c:949
msgid "--progress can't be used with --incremental or porcelain formats"
msgstr "--progress kan inte användas med --incremental eller porslinsformat"
@@ -11543,18 +11774,18 @@ msgstr "--progress kan inte användas med --incremental eller porslinsformat"
#. your language may need more or fewer display
#. columns.
#.
-#: builtin/blame.c:998
+#: builtin/blame.c:1000
msgid "4 years, 11 months ago"
msgstr "4 år, 11 månader sedan"
-#: builtin/blame.c:1114
+#: builtin/blame.c:1116
#, c-format
msgid "file %s has only %lu line"
msgid_plural "file %s has only %lu lines"
msgstr[0] "filen %s har bara %lu rad"
msgstr[1] "filen %s har bara %lu rader"
-#: builtin/blame.c:1159
+#: builtin/blame.c:1161
msgid "Blaming lines"
msgstr "Klandra rader"
@@ -11563,30 +11794,37 @@ msgid "git branch [<options>] [-r | -a] [--merged] [--no-merged]"
msgstr "git branch [<flaggor>] [-r | -a] [--merged] [--no-merged]"
#: builtin/branch.c:30
-msgid "git branch [<options>] [-l] [-f] <branch-name> [<start-point>]"
-msgstr "git branch [<flaggor>] [-l] [-f] <grennamn> [<startpunkt>]"
+msgid ""
+"git branch [<options>] [-f] [--recurse-submodules] <branch-name> [<start-"
+"point>]"
+msgstr ""
+"git branch [<flaggor>] [-f] [--recurse-submodules] <grennamn> [<startpunkt>]"
#: builtin/branch.c:31
+msgid "git branch [<options>] [-l] [<pattern>...]"
+msgstr "git branch [<flaggor>] [-l] [<mönster>...]"
+
+#: builtin/branch.c:32
msgid "git branch [<options>] [-r] (-d | -D) <branch-name>..."
msgstr "git branch [<flaggor>] [-r] (-d | -D) <grennamn>..."
-#: builtin/branch.c:32
+#: builtin/branch.c:33
msgid "git branch [<options>] (-m | -M) [<old-branch>] <new-branch>"
msgstr "git branch [<flaggor>] (-m | -M) [<gammal_gren>] <ny_gren>"
-#: builtin/branch.c:33
+#: builtin/branch.c:34
msgid "git branch [<options>] (-c | -C) [<old-branch>] <new-branch>"
msgstr "git branch [<flaggor>] (-c | -C) [<gammal_gren>] <ny_gren>"
-#: builtin/branch.c:34
+#: builtin/branch.c:35
msgid "git branch [<options>] [-r | -a] [--points-at]"
msgstr "git branch [<flaggor>] [-r | -a] [--points-at]"
-#: builtin/branch.c:35
+#: builtin/branch.c:36
msgid "git branch [<options>] [-r | -a] [--format]"
msgstr "git branch [<flaggor>] [-r | -a] [--format]"
-#: builtin/branch.c:153
+#: builtin/branch.c:165
#, c-format
msgid ""
"deleting branch '%s' that has been merged to\n"
@@ -11595,7 +11833,7 @@ msgstr ""
"tar bort grenen \"%s\" som har slagits ihop med\n"
" \"%s\", men ännu inte slagits ihop med HEAD."
-#: builtin/branch.c:157
+#: builtin/branch.c:169
#, c-format
msgid ""
"not deleting branch '%s' that is not yet merged to\n"
@@ -11604,12 +11842,12 @@ msgstr ""
"tar inte bort grenen \"%s\" som inte har slagits ihop med\n"
" \"%s\", trots att den har slagits ihop med HEAD."
-#: builtin/branch.c:171
+#: builtin/branch.c:183
#, c-format
msgid "Couldn't look up commit object for '%s'"
msgstr "Kunde inte slå upp incheckningsobjekt för \"%s\""
-#: builtin/branch.c:175
+#: builtin/branch.c:187
#, c-format
msgid ""
"The branch '%s' is not fully merged.\n"
@@ -11618,112 +11856,112 @@ msgstr ""
"Grenen \"%s\" har inte slagits samman i sin helhet.\n"
"Om du är säker på att du vill ta bort den, kör \"git branch -D %s\"."
-#: builtin/branch.c:188
+#: builtin/branch.c:200
msgid "Update of config-file failed"
msgstr "Misslyckades uppdatera konfigurationsfil"
-#: builtin/branch.c:223
+#: builtin/branch.c:235
msgid "cannot use -a with -d"
msgstr "kan inte ange -a med -d"
-#: builtin/branch.c:230
+#: builtin/branch.c:242
msgid "Couldn't look up commit object for HEAD"
msgstr "Kunde inte slå upp incheckningsobjekt för HEAD"
-#: builtin/branch.c:247
+#: builtin/branch.c:259
#, c-format
msgid "Cannot delete branch '%s' checked out at '%s'"
msgstr "Kan inte ta bort grenen \"%s\" som är utcheckad på \"%s\""
-#: builtin/branch.c:262
+#: builtin/branch.c:274
#, c-format
msgid "remote-tracking branch '%s' not found."
msgstr "fjärrspårande grenen \"%s\" hittades inte."
-#: builtin/branch.c:263
+#: builtin/branch.c:275
#, c-format
msgid "branch '%s' not found."
msgstr "grenen \"%s\" hittades inte."
-#: builtin/branch.c:294
+#: builtin/branch.c:306
#, c-format
msgid "Deleted remote-tracking branch %s (was %s).\n"
msgstr "Tog bort fjärrspårande grenen %s (var %s).\n"
-#: builtin/branch.c:295
+#: builtin/branch.c:307
#, c-format
msgid "Deleted branch %s (was %s).\n"
msgstr "Tog bort grenen %s (var %s).\n"
-#: builtin/branch.c:445 builtin/tag.c:63
+#: builtin/branch.c:457 builtin/tag.c:64
msgid "unable to parse format string"
msgstr "kan inte tolka formatsträng"
-#: builtin/branch.c:476
+#: builtin/branch.c:488
msgid "could not resolve HEAD"
msgstr "kunde inte slå upp HEAD"
-#: builtin/branch.c:482
+#: builtin/branch.c:494
#, c-format
msgid "HEAD (%s) points outside of refs/heads/"
msgstr "HEAD (%s) pekar utenför refs/heads/"
-#: builtin/branch.c:497
+#: builtin/branch.c:509
#, c-format
msgid "Branch %s is being rebased at %s"
msgstr "Grenen %s ombaseras på %s"
-#: builtin/branch.c:501
+#: builtin/branch.c:513
#, c-format
msgid "Branch %s is being bisected at %s"
msgstr "Grenen %s är i en \"bisect\" på %s"
-#: builtin/branch.c:518
+#: builtin/branch.c:530
msgid "cannot copy the current branch while not on any."
msgstr "kunde inte kopiera aktuell gren när du inte befinner dig på någon."
-#: builtin/branch.c:520
+#: builtin/branch.c:532
msgid "cannot rename the current branch while not on any."
msgstr ""
"kunde inte byta namn på aktuell gren när du inte befinner dig på någon."
-#: builtin/branch.c:531
+#: builtin/branch.c:543
#, c-format
msgid "Invalid branch name: '%s'"
msgstr "Felaktigt namn på gren: \"%s\""
-#: builtin/branch.c:560
+#: builtin/branch.c:572
msgid "Branch rename failed"
msgstr "Misslyckades byta namn på gren"
-#: builtin/branch.c:562
+#: builtin/branch.c:574
msgid "Branch copy failed"
msgstr "Misslyckades kopiera gren"
-#: builtin/branch.c:566
+#: builtin/branch.c:578
#, c-format
msgid "Created a copy of a misnamed branch '%s'"
msgstr "Skapade kopia av felaktigt namngiven gren \"%s\""
-#: builtin/branch.c:569
+#: builtin/branch.c:581
#, c-format
msgid "Renamed a misnamed branch '%s' away"
msgstr "Bytte bort namn på en felaktigt namngiven gren \"%s\""
-#: builtin/branch.c:575
+#: builtin/branch.c:587
#, c-format
msgid "Branch renamed to %s, but HEAD is not updated!"
msgstr "Grenen namnbytt till %s, men HEAD har inte uppdaterats!"
-#: builtin/branch.c:584
+#: builtin/branch.c:596
msgid "Branch is renamed, but update of config-file failed"
msgstr "Grenen namnbytt, men misslyckades uppdatera konfigurationsfilen"
-#: builtin/branch.c:586
+#: builtin/branch.c:598
msgid "Branch is copied, but update of config-file failed"
msgstr "Grenen kopierades, men misslyckades uppdatera konfigurationsfilen"
-#: builtin/branch.c:602
+#: builtin/branch.c:614
#, c-format
msgid ""
"Please edit the description for the branch\n"
@@ -11734,207 +11972,224 @@ msgstr ""
" %s\n"
"Rader som inleds med \"%c\" ignoreras.\n"
-#: builtin/branch.c:637
+#: builtin/branch.c:651
msgid "Generic options"
msgstr "Allmänna flaggor"
-#: builtin/branch.c:639
+#: builtin/branch.c:653
msgid "show hash and subject, give twice for upstream branch"
msgstr "visa hash och ärenderad, ange två gånger för uppströmsgren"
-#: builtin/branch.c:640
+#: builtin/branch.c:654
msgid "suppress informational messages"
msgstr "undertryck informationsmeddelanden"
-#: builtin/branch.c:642
+#: builtin/branch.c:656 builtin/checkout.c:1571
+#: builtin/submodule--helper.c:3077
msgid "set branch tracking configuration"
msgstr "ställ in inställningar för spårad gren"
-#: builtin/branch.c:645
+#: builtin/branch.c:659
msgid "do not use"
msgstr "använd ej"
-#: builtin/branch.c:647
+#: builtin/branch.c:661
msgid "upstream"
msgstr "uppströms"
-#: builtin/branch.c:647
+#: builtin/branch.c:661
msgid "change the upstream info"
msgstr "ändra uppströmsinformationen"
-#: builtin/branch.c:648
+#: builtin/branch.c:662
msgid "unset the upstream info"
msgstr "ta bort uppströmsinformationen"
-#: builtin/branch.c:649
+#: builtin/branch.c:663
msgid "use colored output"
msgstr "använd färgad utdata"
-#: builtin/branch.c:650
+#: builtin/branch.c:664
msgid "act on remote-tracking branches"
msgstr "arbeta på fjärrspårande grenar"
-#: builtin/branch.c:652 builtin/branch.c:654
+#: builtin/branch.c:666 builtin/branch.c:668
msgid "print only branches that contain the commit"
msgstr "visa endast grenar som innehåller incheckningen"
-#: builtin/branch.c:653 builtin/branch.c:655
+#: builtin/branch.c:667 builtin/branch.c:669
msgid "print only branches that don't contain the commit"
msgstr "visa endast grenar som inte innehåller incheckningen"
-#: builtin/branch.c:658
+#: builtin/branch.c:672
msgid "Specific git-branch actions:"
msgstr "Specifika git-branch-åtgärder:"
-#: builtin/branch.c:659
+#: builtin/branch.c:673
msgid "list both remote-tracking and local branches"
msgstr "visa både fjärrspårande och lokala grenar"
-#: builtin/branch.c:661
+#: builtin/branch.c:675
msgid "delete fully merged branch"
msgstr "ta bort helt sammanslagen gren"
-#: builtin/branch.c:662
+#: builtin/branch.c:676
msgid "delete branch (even if not merged)"
msgstr "ta bort gren (även om inte helt sammanslagen)"
-#: builtin/branch.c:663
+#: builtin/branch.c:677
msgid "move/rename a branch and its reflog"
msgstr "flytta/ta bort en gren och dess reflogg"
-#: builtin/branch.c:664
+#: builtin/branch.c:678
msgid "move/rename a branch, even if target exists"
msgstr "flytta/ta bort en gren, även om målet finns"
-#: builtin/branch.c:665
+#: builtin/branch.c:679
msgid "copy a branch and its reflog"
msgstr "kopiera en gren och dess reflogg"
-#: builtin/branch.c:666
+#: builtin/branch.c:680
msgid "copy a branch, even if target exists"
msgstr "kopiera en gren, även om målet finns"
-#: builtin/branch.c:667
+#: builtin/branch.c:681
msgid "list branch names"
msgstr "lista namn på grenar"
-#: builtin/branch.c:668
+#: builtin/branch.c:682
msgid "show current branch name"
msgstr "visa namn på aktuell gren"
-#: builtin/branch.c:669
+#: builtin/branch.c:683 builtin/submodule--helper.c:3075
msgid "create the branch's reflog"
msgstr "skapa grenens reflogg"
-#: builtin/branch.c:671
+#: builtin/branch.c:685
msgid "edit the description for the branch"
msgstr "redigera beskrivning för grenen"
-#: builtin/branch.c:672
+#: builtin/branch.c:686
msgid "force creation, move/rename, deletion"
msgstr "tvinga skapande, flytt/namnändring, borttagande"
-#: builtin/branch.c:673
+#: builtin/branch.c:687
msgid "print only branches that are merged"
msgstr "visa endast sammanslagna grenar"
-#: builtin/branch.c:674
+#: builtin/branch.c:688
msgid "print only branches that are not merged"
msgstr "visa endast ej sammanslagna grenar"
-#: builtin/branch.c:675
+#: builtin/branch.c:689
msgid "list branches in columns"
msgstr "visa grenar i spalter"
-#: builtin/branch.c:677 builtin/for-each-ref.c:45 builtin/notes.c:413
+#: builtin/branch.c:691 builtin/for-each-ref.c:45 builtin/notes.c:413
#: builtin/notes.c:416 builtin/notes.c:579 builtin/notes.c:582
-#: builtin/tag.c:475
+#: builtin/tag.c:476
msgid "object"
msgstr "objekt"
-#: builtin/branch.c:678
+#: builtin/branch.c:692
msgid "print only branches of the object"
msgstr "visa endast grenar för objektet"
-#: builtin/branch.c:679 builtin/for-each-ref.c:51 builtin/tag.c:482
+#: builtin/branch.c:693 builtin/for-each-ref.c:51 builtin/tag.c:483
msgid "sorting and filtering are case insensitive"
msgstr "sortering och filtrering skiljer gemener och VERSALER"
-#: builtin/branch.c:680 builtin/for-each-ref.c:41 builtin/tag.c:480
-#: builtin/verify-tag.c:38
+#: builtin/branch.c:694 builtin/ls-files.c:667
+msgid "recurse through submodules"
+msgstr "rekursera ner i undermoduler"
+
+#: builtin/branch.c:695 builtin/for-each-ref.c:41 builtin/ls-tree.c:358
+#: builtin/tag.c:481 builtin/verify-tag.c:38
msgid "format to use for the output"
msgstr "format att använda för utdata"
-#: builtin/branch.c:703 builtin/clone.c:678
+#: builtin/branch.c:718 builtin/clone.c:684
msgid "HEAD not found below refs/heads!"
msgstr "HEAD hittades inte under refs/heads!"
-#: builtin/branch.c:742 builtin/branch.c:798 builtin/branch.c:807
+#: builtin/branch.c:739
+msgid ""
+"branch with --recurse-submodules can only be used if submodule."
+"propagateBranches is enabled"
+msgstr ""
+"gren med --recurse-submodules kan endast användas om submodule."
+"propagateBranches har aktiverats"
+
+#: builtin/branch.c:741
+msgid "--recurse-submodules can only be used to create branches"
+msgstr "--recurse-submodules jan endast användas för att skapa grenar"
+
+#: builtin/branch.c:770 builtin/branch.c:826 builtin/branch.c:835
msgid "branch name required"
msgstr "grennamn krävs"
-#: builtin/branch.c:774
+#: builtin/branch.c:802
msgid "Cannot give description to detached HEAD"
msgstr "Kan inte beskriva frånkopplad HEAD"
-#: builtin/branch.c:779
+#: builtin/branch.c:807
msgid "cannot edit description of more than one branch"
msgstr "kan inte redigera beskrivning för mer än en gren"
-#: builtin/branch.c:786
+#: builtin/branch.c:814
#, c-format
msgid "No commit on branch '%s' yet."
msgstr "Inga incheckningar på grenen \"%s\" ännu."
-#: builtin/branch.c:789
+#: builtin/branch.c:817
#, c-format
msgid "No branch named '%s'."
msgstr "Ingen gren vid namnet \"%s\"."
-#: builtin/branch.c:804
+#: builtin/branch.c:832
msgid "too many branches for a copy operation"
msgstr "för många grenar för kopiering"
-#: builtin/branch.c:813
+#: builtin/branch.c:841
msgid "too many arguments for a rename operation"
msgstr "för många flaggor för namnbyte"
-#: builtin/branch.c:818
+#: builtin/branch.c:846
msgid "too many arguments to set new upstream"
msgstr "för många flaggor för att byta uppström"
-#: builtin/branch.c:822
+#: builtin/branch.c:850
#, c-format
msgid ""
"could not set upstream of HEAD to %s when it does not point to any branch."
msgstr ""
"kunde inte sätta uppström för HEAD till %s när det inte pekar mot någon gren."
-#: builtin/branch.c:825 builtin/branch.c:848
+#: builtin/branch.c:853 builtin/branch.c:873
#, c-format
msgid "no such branch '%s'"
msgstr "okänd gren \"%s\""
-#: builtin/branch.c:829
+#: builtin/branch.c:857
#, c-format
msgid "branch '%s' does not exist"
msgstr "grenen \"%s\" finns inte"
-#: builtin/branch.c:842
+#: builtin/branch.c:867
msgid "too many arguments to unset upstream"
msgstr "för många flaggor för att ta bort uppström"
-#: builtin/branch.c:846
+#: builtin/branch.c:871
msgid "could not unset upstream of HEAD when it does not point to any branch."
msgstr ""
"kunde inte ta bort uppström för HEAD när det inte pekar mot någon gren."
-#: builtin/branch.c:852
+#: builtin/branch.c:877
#, c-format
msgid "Branch '%s' has no upstream information"
msgstr "Grenen \"%s\" har ingen uppströmsinformation"
-#: builtin/branch.c:862
+#: builtin/branch.c:890
msgid ""
"The -a, and -r, options to 'git branch' do not take a branch name.\n"
"Did you mean to use: -a|-r --list <pattern>?"
@@ -11942,7 +12197,7 @@ msgstr ""
"Flaggorna -a och -r på \"git branch\" tar inte ett namn på gren.\n"
"Menade du att använda: -a|-r --list <mönster>?"
-#: builtin/branch.c:866
+#: builtin/branch.c:894
msgid ""
"the '--set-upstream' option is no longer supported. Please use '--track' or "
"'--set-upstream-to' instead."
@@ -12058,19 +12313,19 @@ msgstr "git bundle list-heads <fil> [<refnamn>...]"
msgid "git bundle unbundle <file> [<refname>...]"
msgstr "git bundle unbundle <fil> [<refnamn>...]"
-#: builtin/bundle.c:65 builtin/pack-objects.c:3876
+#: builtin/bundle.c:65 builtin/pack-objects.c:3899
msgid "do not show progress meter"
msgstr "visa inte förloppsindikator"
-#: builtin/bundle.c:67 builtin/bundle.c:167 builtin/pack-objects.c:3878
+#: builtin/bundle.c:67 builtin/bundle.c:168 builtin/pack-objects.c:3901
msgid "show progress meter"
msgstr "visa förloppsindikator"
-#: builtin/bundle.c:69 builtin/pack-objects.c:3880
+#: builtin/bundle.c:69 builtin/pack-objects.c:3903
msgid "show progress meter during object writing phase"
msgstr "visa förloppsindikator under objektskrivningsfasen"
-#: builtin/bundle.c:72 builtin/pack-objects.c:3883
+#: builtin/bundle.c:72 builtin/pack-objects.c:3906
msgid "similar to --all-progress when progress meter is shown"
msgstr "som --all-progress när förloppsindikatorn visas"
@@ -12082,112 +12337,226 @@ msgstr "ange formatversion för bunten."
msgid "Need a repository to create a bundle."
msgstr "Behöver ett arkiv för att skapa en bunt."
-#: builtin/bundle.c:107
+#: builtin/bundle.c:108
msgid "do not show bundle details"
msgstr "visa inte buntdetaljer"
-#: builtin/bundle.c:126
+#: builtin/bundle.c:127
#, c-format
msgid "%s is okay\n"
msgstr "%s är okej\n"
-#: builtin/bundle.c:182
+#: builtin/bundle.c:183
msgid "Need a repository to unbundle."
msgstr "Behöver ett arkiv för att packa upp en bunt."
-#: builtin/bundle.c:185
+#: builtin/bundle.c:186
msgid "Unbundling objects"
msgstr "Packar upp objektbunt"
-#: builtin/bundle.c:219 builtin/remote.c:1733
+#: builtin/bundle.c:220 builtin/remote.c:1758
#, c-format
msgid "Unknown subcommand: %s"
msgstr "Okänt underkommando: %s"
-#: builtin/cat-file.c:622
+#: builtin/cat-file.c:568
+msgid "flush is only for --buffer mode"
+msgstr "flush är endast till för --buffer-läge"
+
+#: builtin/cat-file.c:612
+msgid "empty command in input"
+msgstr "tomt kommando i indata"
+
+#: builtin/cat-file.c:614
+#, c-format
+msgid "whitespace before command: '%s'"
+msgstr "blanksteg före kommando: \"%s\""
+
+#: builtin/cat-file.c:623
+#, c-format
+msgid "%s requires arguments"
+msgstr "%s kräver ett argument"
+
+#: builtin/cat-file.c:628
+#, c-format
+msgid "%s takes no arguments"
+msgstr "%s tar inget argument"
+
+#: builtin/cat-file.c:636
+#, c-format
+msgid "unknown command: '%s'"
+msgstr "okänt kommando: \"%s\""
+
+#: builtin/cat-file.c:795
+msgid "only one batch option may be specified"
+msgstr "endast en buntflagga kan anges"
+
+#: builtin/cat-file.c:824
+msgid "git cat-file <type> <object>"
+msgstr "git cat-file <typ> <objekt>"
+
+#: builtin/cat-file.c:825
+msgid "git cat-file (-e | -p) <object>"
+msgstr "git cat-file (-e | -p) <objekt>"
+
+#: builtin/cat-file.c:826
+msgid "git cat-file (-t | -s) [--allow-unknown-type] <object>"
+msgstr "git cat-file (-t | -s) [--allow-unknown-type] <objekt>"
+
+#: builtin/cat-file.c:827
msgid ""
-"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 | --batch-command) [--batch-all-"
+"objects]\n"
+" [--buffer] [--follow-symlinks] [--unordered]\n"
+" [--textconv | --filters]"
msgstr ""
-"git cat-file (-t [--allow-unknown-type] | -s [--allow-unknown-type] | -e | -"
-"p | <typ> | --textconv | --filters) [--path=<sökväg>] <objekt>"
+"git cat-file (--batch | --batch-check | --batch-command) [--batch-all-"
+"objects]\n"
+" [--buffer] [--follow-symlinks] [--unordered]\n"
+" [--textconv | --filters]"
-#: builtin/cat-file.c:623
+#: builtin/cat-file.c:830
msgid ""
-"git cat-file (--batch[=<format>] | --batch-check[=<format>]) [--follow-"
-"symlinks] [--textconv | --filters]"
+"git cat-file (--textconv | --filters)\n"
+" [<rev>:<path|tree-ish> | --path=<path|tree-ish> <rev>]"
msgstr ""
-"git cat-file (--batch[=<format>] | --batch-check[=<format>]) [--follow-"
-"symlinks] [--textconv | --filters]"
+"git cat-file (--textconv | --filters)\n"
+" [<revision>:<sökväg|träd-igt> | --path=<sökväg|träd-igt> "
+"<revision>]"
-#: builtin/cat-file.c:644
-msgid "only one batch option may be specified"
-msgstr "endast en buntflagga kan anges"
+#: builtin/cat-file.c:836
+msgid "Check object existence or emit object contents"
+msgstr "Kontrollera om objektet finns eller mata ut objektets innehåll"
+
+#: builtin/cat-file.c:838
+msgid "check if <object> exists"
+msgstr "kontrollera om <objekt> finns"
+
+#: builtin/cat-file.c:839
+msgid "pretty-print <object> content"
+msgstr "visa <objekt>-innehåll snyggt"
-#: builtin/cat-file.c:662
-msgid "<type> can be one of: blob, tree, commit, tag"
-msgstr "<typ> kan vara en av: blob, tree, commit, tag"
+#: builtin/cat-file.c:841
+msgid "Emit [broken] object attributes"
+msgstr "Skriv ut [trasiga] objektattribut"
-#: builtin/cat-file.c:663
-msgid "show object type"
-msgstr "visa objekttyp"
+#: builtin/cat-file.c:842
+msgid "show object type (one of 'blob', 'tree', 'commit', 'tag', ...)"
+msgstr "visa objekttyp (en av: \"blob\", \"tree\", \"commit\", \"tag\", ...)"
-#: builtin/cat-file.c:664
+#: builtin/cat-file.c:843
msgid "show object size"
msgstr "visa objektstorlek"
-#: builtin/cat-file.c:666
-msgid "exit with zero when there's no error"
-msgstr "avsluta med noll när det inte uppstått något fel"
+#: builtin/cat-file.c:845
+msgid "allow -s and -t to work with broken/corrupt objects"
+msgstr "låter -s och -t att fungera med trasiga/sönderskrivna objekt"
-#: builtin/cat-file.c:667
-msgid "pretty-print object's content"
-msgstr "visa objektets innehåll snyggt"
+#: builtin/cat-file.c:847
+msgid "Batch objects requested on stdin (or --batch-all-objects)"
+msgstr "Buntobjekt ombeds på standard in (eller --batch-all-objects)"
-#: builtin/cat-file.c:669
-msgid "for blob objects, run textconv on object's content"
-msgstr "för blob-objekt, kör filter på objektets innehåll"
+#: builtin/cat-file.c:849
+msgid "show full <object> or <rev> contents"
+msgstr "visa komplett innehåll för <objekt> eller <rev>"
-#: builtin/cat-file.c:671
-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:853
+msgid "like --batch, but don't emit <contents>"
+msgstr "som --batch, men mata inte ut <innehåll>"
-#: builtin/cat-file.c:672
-msgid "blob"
-msgstr "blob"
+#: builtin/cat-file.c:857
+msgid "read commands from stdin"
+msgstr "läs kommandon från standard in"
-#: builtin/cat-file.c:673
-msgid "use a specific path for --textconv/--filters"
-msgstr "använd specifik sökväg för --textconv/--filters"
+#: builtin/cat-file.c:861
+msgid "with --batch[-check]: ignores stdin, batches all known objects"
+msgstr "med --batch[-check]: ignorear standard in, buntar alla kända objekt"
-#: builtin/cat-file.c:675
-msgid "allow -s and -t to work with broken/corrupt objects"
-msgstr "låter -s och -t att fungera med trasiga/sönderskrivna objekt"
+#: builtin/cat-file.c:863
+msgid "Change or optimize batch output"
+msgstr "Ändra eller optimera buntutdata"
-#: builtin/cat-file.c:676
+#: builtin/cat-file.c:864
msgid "buffer --batch output"
msgstr "buffra utdata från --batch"
-#: builtin/cat-file.c:678
-msgid "show info and content of objects fed from the standard input"
-msgstr "visa information och innehåll för objekt som listas på standard in"
+#: builtin/cat-file.c:866
+msgid "follow in-tree symlinks"
+msgstr "följ symboliska länkar inom trädet"
-#: builtin/cat-file.c:682
-msgid "show info about objects fed from the standard input"
-msgstr "visa information för objekt som listas på standard in"
+#: builtin/cat-file.c:868
+msgid "do not order objects before emitting them"
+msgstr "sortera inte objekt innan de matas ut"
-#: builtin/cat-file.c:686
-msgid "follow in-tree symlinks (used with --batch or --batch-check)"
+#: builtin/cat-file.c:870
+msgid ""
+"Emit object (blob or tree) with conversion or filter (stand-alone, or with "
+"batch)"
msgstr ""
-"följ symboliska länkar i trädet (använd med --batch eller --batch-check)"
+"Mata ut objekt (blob eller träd) med konvertering eller filter (fristående "
+"eller med bunt)"
+
+#: builtin/cat-file.c:872
+msgid "run textconv on object's content"
+msgstr "kör textconv på objektets innehåll"
+
+#: builtin/cat-file.c:874
+msgid "run filters on object's content"
+msgstr "kör filter på objektets innehåll"
+
+#: builtin/cat-file.c:875
+msgid "blob|tree"
+msgstr "blob|träd"
+
+#: builtin/cat-file.c:876
+msgid "use a <path> for (--textconv | --filters); Not with 'batch'"
+msgstr "använd en <sökväg> för (--textconv | --filters): Inte med 'batch'"
+
+#: builtin/cat-file.c:894
+#, c-format
+msgid "'%s=<%s>' needs '%s' or '%s'"
+msgstr "'%s=<%s>' behöver '%s' eller '%s'"
+
+#: builtin/cat-file.c:896
+msgid "path|tree-ish"
+msgstr "sökväg|träd-igt"
+
+#: builtin/cat-file.c:903 builtin/cat-file.c:906 builtin/cat-file.c:909
+#, c-format
+msgid "'%s' requires a batch mode"
+msgstr "\"%s\" behöver ett buntläge"
+
+#: builtin/cat-file.c:921
+#, c-format
+msgid "'-%c' is incompatible with batch mode"
+msgstr "\"-%c\" är inkompatibel med buntläge"
-#: builtin/cat-file.c:688
-msgid "show all objects with --batch or --batch-check"
-msgstr "visa alla objekt med --batch eller --batch-check"
+#: builtin/cat-file.c:924
+msgid "batch modes take no arguments"
+msgstr "buntlägen inte några argument"
-#: builtin/cat-file.c:690
-msgid "do not order --batch-all-objects output"
-msgstr "ordna inte --batch-all-objects output"
+#: builtin/cat-file.c:932 builtin/cat-file.c:935
+#, c-format
+msgid "<rev> required with '%s'"
+msgstr "<rev> krävs med \"%s\""
+
+#: builtin/cat-file.c:938
+#, c-format
+msgid "<object> required with '-%c'"
+msgstr "<objekt> krävs med \"-%c\""
+
+#: builtin/cat-file.c:943 builtin/notes.c:374 builtin/notes.c:429
+#: builtin/notes.c:507 builtin/notes.c:519 builtin/notes.c:596
+#: builtin/notes.c:663 builtin/notes.c:813 builtin/notes.c:965
+#: builtin/notes.c:987 builtin/prune-packed.c:25 builtin/receive-pack.c:2489
+#: builtin/tag.c:592
+msgid "too many arguments"
+msgstr "för många argument"
+
+#: builtin/cat-file.c:947
+#, c-format
+msgid "only two arguments allowed in <type> <object> mode, not %d"
+msgstr "endast två argument krävs i <typ> <objekt>-läge, inte %d"
#: builtin/check-attr.c:13
msgid "git check-attr [-a | --all | <attr>...] [--] <pathname>..."
@@ -12205,7 +12574,7 @@ msgstr "visa alla attribut som satts på filen"
msgid "use .gitattributes only from the index"
msgstr "använd .gitattributes endast från indexet"
-#: builtin/check-attr.c:23 builtin/check-ignore.c:25 builtin/hash-object.c:100
+#: builtin/check-attr.c:23 builtin/check-ignore.c:25 builtin/hash-object.c:101
msgid "read file names from stdin"
msgstr "läs filnamn från standard in"
@@ -12213,8 +12582,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:1532 builtin/gc.c:550
-#: builtin/worktree.c:493
+#: builtin/check-ignore.c:21 builtin/checkout.c:1550 builtin/gc.c:550
+#: builtin/worktree.c:565
msgid "suppress progress reporting"
msgstr "undertryck förloppsrapportering"
@@ -12271,161 +12640,165 @@ msgstr "inga kontakter angavs"
msgid "git checkout--worker [<options>]"
msgstr "git checkout--worker [<flaggor>]"
-#: builtin/checkout--worker.c:118 builtin/checkout-index.c:201
-#: builtin/column.c:31 builtin/column.c:32 builtin/submodule--helper.c:1864
-#: builtin/submodule--helper.c:1867 builtin/submodule--helper.c:1875
-#: builtin/submodule--helper.c:2511 builtin/submodule--helper.c:2577
-#: builtin/worktree.c:491 builtin/worktree.c:728
+#: builtin/checkout--worker.c:118 builtin/checkout-index.c:235
+#: builtin/column.c:31 builtin/column.c:32 builtin/submodule--helper.c:1878
+#: builtin/submodule--helper.c:1881 builtin/submodule--helper.c:1889
+#: builtin/submodule--helper.c:2716 builtin/worktree.c:563
+#: builtin/worktree.c:808
msgid "string"
msgstr "sträng"
-#: builtin/checkout--worker.c:119 builtin/checkout-index.c:202
+#: builtin/checkout--worker.c:119 builtin/checkout-index.c:236
msgid "when creating files, prepend <string>"
msgstr "när filer skapas, lägg till <sträng> först"
-#: builtin/checkout-index.c:152
+#: builtin/checkout-index.c:184
msgid "git checkout-index [<options>] [--] [<file>...]"
msgstr "git checkout-index [<flaggor>] [--] [<fil>...]"
-#: builtin/checkout-index.c:169
+#: builtin/checkout-index.c:201
msgid "stage should be between 1 and 3 or all"
msgstr "etapp måste vara mellan 1 och 3 eller \"all\""
-#: builtin/checkout-index.c:187
+#: builtin/checkout-index.c:219
msgid "check out all files in the index"
msgstr "checka ut alla filer i indexet"
-#: builtin/checkout-index.c:188
+#: builtin/checkout-index.c:221
+msgid "do not skip files with skip-worktree set"
+msgstr "hoppa inte över filer med skip-worktree satt"
+
+#: builtin/checkout-index.c:222
msgid "force overwrite of existing files"
msgstr "tvinga överskrivning av befintliga filer"
-#: builtin/checkout-index.c:190
+#: builtin/checkout-index.c:224
msgid "no warning for existing files and files not in index"
msgstr "ingen varning för existerande filer och filer ej i indexet"
-#: builtin/checkout-index.c:192
+#: builtin/checkout-index.c:226
msgid "don't checkout new files"
msgstr "checka inte ut nya filer"
-#: builtin/checkout-index.c:194
+#: builtin/checkout-index.c:228
msgid "update stat information in the index file"
msgstr "uppdatera stat-information i indexfilen"
-#: builtin/checkout-index.c:198
+#: builtin/checkout-index.c:232
msgid "read list of paths from the standard input"
msgstr "läs listan över sökvägar från standard in"
-#: builtin/checkout-index.c:200
+#: builtin/checkout-index.c:234
msgid "write the content to temporary files"
msgstr "skriv innehåll till temporära filer"
-#: builtin/checkout-index.c:204
+#: builtin/checkout-index.c:238
msgid "copy out the files from named stage"
msgstr "kopiera ut filer från namngiven etapp"
-#: builtin/checkout.c:33
+#: builtin/checkout.c:34
msgid "git checkout [<options>] <branch>"
msgstr "git checkout [<flaggor>] <gren>"
-#: builtin/checkout.c:34
+#: builtin/checkout.c:35
msgid "git checkout [<options>] [<branch>] -- <file>..."
msgstr "git checkout [<flaggor>] [<gren>] -- <fil>..."
-#: builtin/checkout.c:39
+#: builtin/checkout.c:40
msgid "git switch [<options>] [<branch>]"
msgstr "git switch [<flaggor>] [<gren>]"
-#: builtin/checkout.c:44
+#: builtin/checkout.c:45
msgid "git restore [<options>] [--source=<branch>] <file>..."
msgstr "git restore [<flaggor>] [--source=<gren>] <fil>..."
-#: builtin/checkout.c:198 builtin/checkout.c:237
+#: builtin/checkout.c:199 builtin/checkout.c:238
#, c-format
msgid "path '%s' does not have our version"
msgstr "sökvägen \"%s\" har inte vår version"
-#: builtin/checkout.c:200 builtin/checkout.c:239
+#: builtin/checkout.c:201 builtin/checkout.c:240
#, c-format
msgid "path '%s' does not have their version"
msgstr "sökvägen \"%s\" har inte deras version"
-#: builtin/checkout.c:216
+#: builtin/checkout.c:217
#, c-format
msgid "path '%s' does not have all necessary versions"
msgstr "sökvägen \"%s\" innehåller inte alla nödvändiga versioner"
-#: builtin/checkout.c:269
+#: builtin/checkout.c:271
#, c-format
msgid "path '%s' does not have necessary versions"
msgstr "sökvägen \"%s\" innehåller inte nödvändiga versioner"
-#: builtin/checkout.c:286
+#: builtin/checkout.c:291
#, c-format
msgid "path '%s': cannot merge"
msgstr "sökväg \"%s\": kan inte slå ihop"
-#: builtin/checkout.c:302
+#: builtin/checkout.c:307
#, c-format
msgid "Unable to add merge result for '%s'"
msgstr "Kunde inte lägga till sammanslagningsresultat för \"%s\""
-#: builtin/checkout.c:419
+#: builtin/checkout.c:424
#, c-format
msgid "Recreated %d merge conflict"
msgid_plural "Recreated %d merge conflicts"
msgstr[0] "Ã…terskapade %d sammanslagningskonflikt"
msgstr[1] "Ã…terskapade %d sammanslagningskonflikter"
-#: builtin/checkout.c:424
+#: builtin/checkout.c:429
#, c-format
msgid "Updated %d path from %s"
msgid_plural "Updated %d paths from %s"
msgstr[0] "Uppdaterade %d sökväg från %s"
msgstr[1] "Uppdaterade %d sökvägar från %s"
-#: builtin/checkout.c:431
+#: builtin/checkout.c:436
#, c-format
msgid "Updated %d path from the index"
msgid_plural "Updated %d paths from the index"
msgstr[0] "Uppdaterade %d sökväg från indexet"
msgstr[1] "Uppdaterade %d sökvägar från indexet"
-#: builtin/checkout.c:454 builtin/checkout.c:457 builtin/checkout.c:460
-#: builtin/checkout.c:464
+#: builtin/checkout.c:459 builtin/checkout.c:462 builtin/checkout.c:465
+#: builtin/checkout.c:469
#, c-format
msgid "'%s' cannot be used with updating paths"
msgstr "\"%s\" kan inte användas vid uppdatering av sökvägar"
-#: builtin/checkout.c:474
+#: builtin/checkout.c:479
#, c-format
msgid "Cannot update paths and switch to branch '%s' at the same time."
msgstr "Kan inte uppdatera sökvägar och växla till grenen \"%s\" samtidigt."
-#: builtin/checkout.c:478
+#: builtin/checkout.c:483
#, c-format
msgid "neither '%s' or '%s' is specified"
msgstr "varken \"%s\" eller \"%s\" har angivits"
-#: builtin/checkout.c:482
+#: builtin/checkout.c:487
#, c-format
msgid "'%s' must be used when '%s' is not specified"
msgstr "\"%s\" måste användas när \"%s\" inte anges"
-#: builtin/checkout.c:487 builtin/checkout.c:492
+#: builtin/checkout.c:492 builtin/checkout.c:497
#, c-format
msgid "'%s' or '%s' cannot be used with %s"
msgstr "\"%s\" eller \"%s\" kan inte användas med %s"
-#: builtin/checkout.c:566 builtin/checkout.c:573
+#: builtin/checkout.c:571 builtin/checkout.c:578
#, c-format
msgid "path '%s' is unmerged"
msgstr "sökvägen \"%s\" har inte slagits ihop"
-#: builtin/checkout.c:747
+#: builtin/checkout.c:753
msgid "you need to resolve your current index first"
msgstr "du måste lösa ditt befintliga index först"
-#: builtin/checkout.c:797
+#: builtin/checkout.c:809
#, c-format
msgid ""
"cannot continue with staged changes in the following files:\n"
@@ -12434,50 +12807,50 @@ msgstr ""
"kan inte fortsätta med köade ändringar i följande filer:\n"
"%s"
-#: builtin/checkout.c:890
+#: builtin/checkout.c:902
#, c-format
msgid "Can not do reflog for '%s': %s\n"
msgstr "Kan inte skapa referenslogg för \"%s\": %s\n"
-#: builtin/checkout.c:934
+#: builtin/checkout.c:947
msgid "HEAD is now at"
msgstr "HEAD är nu på"
-#: builtin/checkout.c:938 builtin/clone.c:609 t/helper/test-fast-rebase.c:203
+#: builtin/checkout.c:951 builtin/clone.c:615 t/helper/test-fast-rebase.c:203
msgid "unable to update HEAD"
msgstr "kan inte uppdatera HEAD"
-#: builtin/checkout.c:942
+#: builtin/checkout.c:955
#, c-format
msgid "Reset branch '%s'\n"
msgstr "Återställ gren \"%s\"\n"
-#: builtin/checkout.c:945
+#: builtin/checkout.c:958
#, c-format
msgid "Already on '%s'\n"
msgstr "Redan på \"%s\"\n"
-#: builtin/checkout.c:949
+#: builtin/checkout.c:962
#, c-format
msgid "Switched to and reset branch '%s'\n"
msgstr "Växlade till och nollställde grenen \"%s\"\n"
-#: builtin/checkout.c:951 builtin/checkout.c:1388
+#: builtin/checkout.c:964 builtin/checkout.c:1398
#, c-format
msgid "Switched to a new branch '%s'\n"
msgstr "Växlade till en ny gren \"%s\"\n"
-#: builtin/checkout.c:953
+#: builtin/checkout.c:966
#, c-format
msgid "Switched to branch '%s'\n"
msgstr "Växlade till grenen \"%s\"\n"
-#: builtin/checkout.c:1004
+#: builtin/checkout.c:1017
#, c-format
msgid " ... and %d more.\n"
msgstr " ... och %d till.\n"
-#: builtin/checkout.c:1010
+#: builtin/checkout.c:1023
#, c-format
msgid ""
"Warning: you are leaving %d commit behind, not connected to\n"
@@ -12500,7 +12873,7 @@ msgstr[1] ""
"\n"
"%s\n"
-#: builtin/checkout.c:1029
+#: builtin/checkout.c:1042
#, c-format
msgid ""
"If you want to keep it by creating a new branch, this may be a good time\n"
@@ -12527,19 +12900,19 @@ msgstr[1] ""
" git branch <nytt_grennamn> %s\n"
"\n"
-#: builtin/checkout.c:1064
+#: builtin/checkout.c:1077
msgid "internal error in revision walk"
msgstr "internt fel vid genomgång av revisioner (revision walk)"
-#: builtin/checkout.c:1068
+#: builtin/checkout.c:1081
msgid "Previous HEAD position was"
msgstr "Tidigare position för HEAD var"
-#: builtin/checkout.c:1114 builtin/checkout.c:1383
+#: builtin/checkout.c:1124 builtin/checkout.c:1393
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:1196
+#: builtin/checkout.c:1206
#, c-format
msgid ""
"'%s' could be both a local file and a tracking branch.\n"
@@ -12548,7 +12921,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:1203
+#: builtin/checkout.c:1213
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"
@@ -12568,51 +12941,58 @@ 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:1213
+#: builtin/checkout.c:1223
#, c-format
msgid "'%s' matched multiple (%d) remote tracking branches"
msgstr "\"%s\" motsvarar flera (%d) spårade fjärrgrenar"
-#: builtin/checkout.c:1279
+#: builtin/checkout.c:1289
msgid "only one reference expected"
msgstr "endast en referens förväntades"
-#: builtin/checkout.c:1296
+#: builtin/checkout.c:1306
#, c-format
msgid "only one reference expected, %d given."
msgstr "endast en referens förväntades, %d gavs."
-#: builtin/checkout.c:1342 builtin/worktree.c:269 builtin/worktree.c:436
+#: builtin/checkout.c:1352 builtin/worktree.c:338 builtin/worktree.c:508
#, c-format
msgid "invalid reference: %s"
msgstr "felaktig referens: %s"
-#: builtin/checkout.c:1355 builtin/checkout.c:1725
+#: builtin/checkout.c:1365 builtin/checkout.c:1744
#, c-format
msgid "reference is not a tree: %s"
msgstr "referensen är inte ett träd: %s"
-#: builtin/checkout.c:1402
+#: builtin/checkout.c:1413
#, c-format
msgid "a branch is expected, got tag '%s'"
msgstr "förväntade gren, fick taggen \"%s\""
-#: builtin/checkout.c:1404
+#: builtin/checkout.c:1415
#, c-format
msgid "a branch is expected, got remote branch '%s'"
msgstr "förväntade gren, fick fjärrgrenen \"%s\""
-#: builtin/checkout.c:1405 builtin/checkout.c:1413
+#: builtin/checkout.c:1417 builtin/checkout.c:1426
#, c-format
msgid "a branch is expected, got '%s'"
msgstr "förväntade gren, fick \"%s\""
-#: builtin/checkout.c:1408
+#: builtin/checkout.c:1420
#, c-format
msgid "a branch is expected, got commit '%s'"
msgstr "förväntade gren, fick incheckningen \"%s\""
-#: builtin/checkout.c:1424
+#: builtin/checkout.c:1429
+msgid ""
+"If you want to detach HEAD at the commit, try again with the --detach option."
+msgstr ""
+"Om du vill koppla från HEAD vid incheckningen, försök igen med flaggan --"
+"detach."
+
+#: builtin/checkout.c:1442
msgid ""
"cannot switch branch while merging\n"
"Consider \"git merge --quit\" or \"git worktree add\"."
@@ -12620,7 +13000,7 @@ msgstr ""
"kan inte växla gren vid sammanslagning\n"
"Överväg \"git merge --quit\" eller \"git worktree add\"."
-#: builtin/checkout.c:1428
+#: builtin/checkout.c:1446
msgid ""
"cannot switch branch in the middle of an am session\n"
"Consider \"git am --quit\" or \"git worktree add\"."
@@ -12628,7 +13008,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:1432
+#: builtin/checkout.c:1450
msgid ""
"cannot switch branch while rebasing\n"
"Consider \"git rebase --quit\" or \"git worktree add\"."
@@ -12636,7 +13016,7 @@ msgstr ""
"kan inte växla gren vid ombasering\n"
"Överväg \"git rebase --quit\" eller \"git worktree add\"."
-#: builtin/checkout.c:1436
+#: builtin/checkout.c:1454
msgid ""
"cannot switch branch while cherry-picking\n"
"Consider \"git cherry-pick --quit\" or \"git worktree add\"."
@@ -12644,7 +13024,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:1440
+#: builtin/checkout.c:1458
msgid ""
"cannot switch branch while reverting\n"
"Consider \"git revert --quit\" or \"git worktree add\"."
@@ -12652,127 +13032,123 @@ msgstr ""
"kan inte växla gren i en \"revert\"\n"
"Överväg \"git revert --quit\" eller \"git worktree add\"."
-#: builtin/checkout.c:1444
+#: builtin/checkout.c:1462
msgid "you are switching branch while bisecting"
msgstr "då växlar grenar medan du gör en \"bisect\""
-#: builtin/checkout.c:1451
+#: builtin/checkout.c:1469
msgid "paths cannot be used with switching branches"
msgstr "sökvägar kan inte användas vid byte av gren"
-#: builtin/checkout.c:1454 builtin/checkout.c:1458 builtin/checkout.c:1462
+#: builtin/checkout.c:1472 builtin/checkout.c:1476 builtin/checkout.c:1480
#, c-format
msgid "'%s' cannot be used with switching branches"
msgstr "\"%s\" kan inte användas vid byte av gren"
-#: builtin/checkout.c:1466 builtin/checkout.c:1469 builtin/checkout.c:1472
-#: builtin/checkout.c:1477 builtin/checkout.c:1482
+#: builtin/checkout.c:1484 builtin/checkout.c:1487 builtin/checkout.c:1490
+#: builtin/checkout.c:1495 builtin/checkout.c:1500
#, c-format
msgid "'%s' cannot be used with '%s'"
msgstr "\"%s\" kan inte användas med \"%s\""
-#: builtin/checkout.c:1479
+#: builtin/checkout.c:1497
#, c-format
msgid "'%s' cannot take <start-point>"
msgstr "\"%s\" kan inte ta <startpunkt>"
-#: builtin/checkout.c:1487
+#: builtin/checkout.c:1505
#, c-format
msgid "Cannot switch branch to a non-commit '%s'"
msgstr "Kan inte växla gren till icke-incheckningen \"%s\""
-#: builtin/checkout.c:1494
+#: builtin/checkout.c:1512
msgid "missing branch or commit argument"
msgstr "saknar gren- eller incheckingsargument"
-#: builtin/checkout.c:1537
+#: builtin/checkout.c:1555
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:1538 builtin/log.c:1825 parse-options.h:323
+#: builtin/checkout.c:1556 builtin/log.c:1844 parse-options.h:354
msgid "style"
msgstr "stil"
-#: builtin/checkout.c:1539
+#: builtin/checkout.c:1557
msgid "conflict style (merge, diff3, or zdiff3)"
msgstr "konfliktstil (merge, diff3 eller zdiff3)"
-#: builtin/checkout.c:1551 builtin/worktree.c:488
+#: builtin/checkout.c:1569 builtin/worktree.c:560
msgid "detach HEAD at named commit"
msgstr "koppla från HEAD vid namngiven incheckning"
-#: builtin/checkout.c:1553
-msgid "set up tracking mode (see git-pull(1))"
-msgstr "ställ in spårningsläge (se git-pull(1))"
-
-#: builtin/checkout.c:1556
+#: builtin/checkout.c:1574
msgid "force checkout (throw away local modifications)"
msgstr "tvinga utcheckning (kasta bort lokala ändringar)"
-#: builtin/checkout.c:1558
+#: builtin/checkout.c:1576
msgid "new-branch"
msgstr "ny-gren"
-#: builtin/checkout.c:1558
+#: builtin/checkout.c:1576
msgid "new unparented branch"
msgstr "ny gren utan förälder"
-#: builtin/checkout.c:1560 builtin/merge.c:305
+#: builtin/checkout.c:1578 builtin/merge.c:305
msgid "update ignored files (default)"
msgstr "uppdatera ignorerade filer (standard)"
-#: builtin/checkout.c:1563
+#: builtin/checkout.c:1581
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:1576
+#: builtin/checkout.c:1594
msgid "checkout our version for unmerged files"
msgstr "checka ut vår version för ej sammanslagna filer"
-#: builtin/checkout.c:1579
+#: builtin/checkout.c:1597
msgid "checkout their version for unmerged files"
msgstr "checka ut deras version för ej sammanslagna filer"
-#: builtin/checkout.c:1583
+#: builtin/checkout.c:1601
msgid "do not limit pathspecs to sparse entries only"
msgstr "begränsa inte sökvägar till endast glesa poster"
-#: builtin/checkout.c:1640
+#: builtin/checkout.c:1659
#, c-format
msgid "options '-%c', '-%c', and '%s' cannot be used together"
msgstr "flaggorna \"%-c\", \"-%c\" och \"%s\" kan inte användas samtidigt"
-#: builtin/checkout.c:1681
+#: builtin/checkout.c:1700
msgid "--track needs a branch name"
msgstr "--track behöver ett namn på en gren"
-#: builtin/checkout.c:1686
+#: builtin/checkout.c:1705
#, c-format
msgid "missing branch name; try -%c"
msgstr "grennamn saknas; försök med -%c"
-#: builtin/checkout.c:1718
+#: builtin/checkout.c:1737
#, c-format
msgid "could not resolve %s"
msgstr "kunde inte upplösa %s"
-#: builtin/checkout.c:1734
+#: builtin/checkout.c:1753
msgid "invalid path specification"
msgstr "felaktig sökvägsangivelse"
-#: builtin/checkout.c:1741
+#: builtin/checkout.c:1760
#, 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:1745
+#: builtin/checkout.c:1764
#, 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:1770
+#: builtin/checkout.c:1789
msgid ""
"git checkout: --ours/--theirs, --force and --merge are incompatible when\n"
"checking out of the index."
@@ -12780,71 +13156,71 @@ msgstr ""
"git checkout: --ours/--theirs, --force och --merge är inkompatibla när\n"
"du checkar ut från indexet."
-#: builtin/checkout.c:1775
+#: builtin/checkout.c:1794
msgid "you must specify path(s) to restore"
msgstr "du måste ange katalog(er) att återställa"
-#: builtin/checkout.c:1800 builtin/checkout.c:1802 builtin/checkout.c:1854
-#: builtin/checkout.c:1856 builtin/clone.c:126 builtin/remote.c:170
-#: builtin/remote.c:172 builtin/submodule--helper.c:2959
-#: builtin/submodule--helper.c:3253 builtin/worktree.c:484
-#: builtin/worktree.c:486
+#: builtin/checkout.c:1819 builtin/checkout.c:1821 builtin/checkout.c:1873
+#: builtin/checkout.c:1875 builtin/clone.c:130 builtin/remote.c:171
+#: builtin/remote.c:173 builtin/submodule--helper.c:3038
+#: builtin/submodule--helper.c:3371 builtin/worktree.c:556
+#: builtin/worktree.c:558
msgid "branch"
msgstr "gren"
-#: builtin/checkout.c:1801
+#: builtin/checkout.c:1820
msgid "create and checkout a new branch"
msgstr "skapa och checka ut en ny gren"
-#: builtin/checkout.c:1803
+#: builtin/checkout.c:1822
msgid "create/reset and checkout a branch"
msgstr "skapa/nollställ och checka ut en gren"
-#: builtin/checkout.c:1804
+#: builtin/checkout.c:1823
msgid "create reflog for new branch"
msgstr "skapa reflogg för ny gren"
-#: builtin/checkout.c:1806
+#: builtin/checkout.c:1825
msgid "second guess 'git checkout <no-such-branch>' (default)"
msgstr "förutspå \"git checkout <gren-saknas>\" (förval)"
-#: builtin/checkout.c:1807
+#: builtin/checkout.c:1826
msgid "use overlay mode (default)"
msgstr "använd överläggsläge (standard)"
-#: builtin/checkout.c:1855
+#: builtin/checkout.c:1874
msgid "create and switch to a new branch"
msgstr "skapa och växla till en ny gren"
-#: builtin/checkout.c:1857
+#: builtin/checkout.c:1876
msgid "create/reset and switch to a branch"
msgstr "skapa/nollställ och växla till en gren"
-#: builtin/checkout.c:1859
+#: builtin/checkout.c:1878
msgid "second guess 'git switch <no-such-branch>'"
msgstr "förutspå \"git checkout <gren-saknas>\""
-#: builtin/checkout.c:1861
+#: builtin/checkout.c:1880
msgid "throw away local modifications"
msgstr "kasta bort lokala ändringar"
-#: builtin/checkout.c:1897
+#: builtin/checkout.c:1916
msgid "which tree-ish to checkout from"
msgstr "vilken träd-igt att checka ut från"
-#: builtin/checkout.c:1899
+#: builtin/checkout.c:1918
msgid "restore the index"
msgstr "återställ indexet"
-#: builtin/checkout.c:1901
+#: builtin/checkout.c:1920
msgid "restore the working tree (default)"
msgstr "återställ arbetskatalogen (förval)"
-#: builtin/checkout.c:1903
+#: builtin/checkout.c:1922
msgid "ignore unmerged entries"
msgstr "ignorera ej sammanslagna poster"
-#: builtin/checkout.c:1904
+#: builtin/checkout.c:1923
msgid "use overlay mode"
msgstr "använd överläggsläge"
@@ -12993,8 +13369,8 @@ msgid "remove whole directories"
msgstr "ta bort hela kataloger"
#: builtin/clean.c:932 builtin/describe.c:565 builtin/describe.c:567
-#: builtin/grep.c:937 builtin/log.c:184 builtin/log.c:186
-#: builtin/ls-files.c:651 builtin/name-rev.c:535 builtin/name-rev.c:537
+#: builtin/grep.c:938 builtin/log.c:185 builtin/log.c:187
+#: builtin/ls-files.c:651 builtin/name-rev.c:585 builtin/name-rev.c:587
#: builtin/show-ref.c:179
msgid "pattern"
msgstr "mönster"
@@ -13031,208 +13407,212 @@ msgstr ""
msgid "-x and -X cannot be used together"
msgstr "-x och -X kan inte användas samtidigt"
-#: builtin/clone.c:45
+#: builtin/clone.c:47
msgid "git clone [<options>] [--] <repo> [<dir>]"
msgstr "git clone [<flaggor>] [--] <arkiv> [<kat>]"
-#: builtin/clone.c:96
+#: builtin/clone.c:100
msgid "don't clone shallow repository"
msgstr "klona inte grunt arkiv"
-#: builtin/clone.c:98
+#: builtin/clone.c:102
msgid "don't create a checkout"
msgstr "skapa inte någon utcheckning"
-#: builtin/clone.c:99 builtin/clone.c:101 builtin/init-db.c:542
+#: builtin/clone.c:103 builtin/clone.c:105 builtin/init-db.c:542
msgid "create a bare repository"
msgstr "skapa ett naket (\"bare\") arkiv"
-#: builtin/clone.c:103
+#: builtin/clone.c:107
msgid "create a mirror repository (implies bare)"
msgstr "skapa ett spegelarkiv (implicerar \"bare\")"
-#: builtin/clone.c:105
+#: builtin/clone.c:109
msgid "to clone from a local repository"
msgstr "för att klona från ett lokalt arkiv"
-#: builtin/clone.c:107
+#: builtin/clone.c:111
msgid "don't use local hardlinks, always copy"
msgstr "skapa inte lokala hårda länkar, kopiera alltid"
-#: builtin/clone.c:109
+#: builtin/clone.c:113
msgid "setup as shared repository"
msgstr "skapa som ett delat arkiv"
-#: builtin/clone.c:111
+#: builtin/clone.c:115
msgid "pathspec"
msgstr "sökvägsangivelse"
-#: builtin/clone.c:111
+#: builtin/clone.c:115
msgid "initialize submodules in the clone"
msgstr "initiera undermoduler i klonen"
-#: builtin/clone.c:115
+#: builtin/clone.c:119
msgid "number of submodules cloned in parallel"
msgstr "antal undermoduler som klonas parallellt"
-#: builtin/clone.c:116 builtin/init-db.c:539
+#: builtin/clone.c:120 builtin/init-db.c:539
msgid "template-directory"
msgstr "mallkatalog"
-#: builtin/clone.c:117 builtin/init-db.c:540
+#: builtin/clone.c:121 builtin/init-db.c:540
msgid "directory from which templates will be used"
msgstr "katalog att använda mallar från"
-#: builtin/clone.c:119 builtin/clone.c:121 builtin/submodule--helper.c:1871
-#: builtin/submodule--helper.c:2514 builtin/submodule--helper.c:3260
+#: builtin/clone.c:123 builtin/clone.c:125 builtin/submodule--helper.c:1885
+#: builtin/submodule--helper.c:2719 builtin/submodule--helper.c:3378
msgid "reference repository"
msgstr "referensarkiv"
-#: builtin/clone.c:123 builtin/submodule--helper.c:1873
-#: builtin/submodule--helper.c:2516
+#: builtin/clone.c:127 builtin/submodule--helper.c:1887
+#: builtin/submodule--helper.c:2721
msgid "use --reference only while cloning"
msgstr "använd --reference endast under kloningen"
-#: builtin/clone.c:124 builtin/column.c:27 builtin/fmt-merge-msg.c:27
+#: builtin/clone.c:128 builtin/column.c:27 builtin/fmt-merge-msg.c:27
#: builtin/init-db.c:550 builtin/merge-file.c:48 builtin/merge.c:290
-#: builtin/pack-objects.c:3944 builtin/repack.c:665
-#: builtin/submodule--helper.c:3262 t/helper/test-simple-ipc.c:595
+#: builtin/pack-objects.c:3967 builtin/repack.c:669
+#: builtin/submodule--helper.c:3380 t/helper/test-simple-ipc.c:595
#: t/helper/test-simple-ipc.c:597
msgid "name"
msgstr "namn"
-#: builtin/clone.c:125
+#: builtin/clone.c:129
msgid "use <name> instead of 'origin' to track upstream"
msgstr "använd <namn> istället för \"origin\" för att spåra uppströms"
-#: builtin/clone.c:127
+#: builtin/clone.c:131
msgid "checkout <branch> instead of the remote's HEAD"
msgstr "checka ut <gren> istället för fjärrens HEAD"
-#: builtin/clone.c:129
+#: builtin/clone.c:133
msgid "path to git-upload-pack on the remote"
msgstr "sökväg till git-upload-pack på fjärren"
-#: builtin/clone.c:130 builtin/fetch.c:181 builtin/grep.c:876
+#: builtin/clone.c:134 builtin/fetch.c:182 builtin/grep.c:877
#: builtin/pull.c:212
msgid "depth"
msgstr "djup"
-#: builtin/clone.c:131
+#: builtin/clone.c:135
msgid "create a shallow clone of that depth"
msgstr "skapa en grund klon på detta djup"
-#: builtin/clone.c:132 builtin/fetch.c:183 builtin/pack-objects.c:3933
+#: builtin/clone.c:136 builtin/fetch.c:184 builtin/pack-objects.c:3956
#: builtin/pull.c:215
msgid "time"
msgstr "tid"
-#: builtin/clone.c:133
+#: builtin/clone.c:137
msgid "create a shallow clone since a specific time"
msgstr "skapa en grund klon från en angiven tidpunkt"
-#: builtin/clone.c:134 builtin/fetch.c:185 builtin/fetch.c:208
-#: builtin/pull.c:218 builtin/pull.c:243 builtin/rebase.c:1022
+#: builtin/clone.c:138 builtin/fetch.c:186 builtin/fetch.c:212
+#: builtin/pull.c:218 builtin/pull.c:243 builtin/rebase.c:1050
msgid "revision"
msgstr "revision"
-#: builtin/clone.c:135 builtin/fetch.c:186 builtin/pull.c:219
+#: builtin/clone.c:139 builtin/fetch.c:187 builtin/pull.c:219
msgid "deepen history of shallow clone, excluding rev"
msgstr "fördjupa historik för grund klon, exkludera revisionen"
-#: builtin/clone.c:137 builtin/submodule--helper.c:1883
-#: builtin/submodule--helper.c:2530
+#: builtin/clone.c:141 builtin/submodule--helper.c:1897
+#: builtin/submodule--helper.c:2735
msgid "clone only one branch, HEAD or --branch"
msgstr "klona endast en gren, HEAD eller --branch"
-#: builtin/clone.c:139
+#: builtin/clone.c:143
msgid "don't clone any tags, and make later fetches not to follow them"
msgstr "klona inga taggar och gör att senare hämtningar inte följer dem"
-#: builtin/clone.c:141
+#: builtin/clone.c:145
msgid "any cloned submodules will be shallow"
msgstr "klonade undermoduler kommer vara grunda"
-#: builtin/clone.c:142 builtin/init-db.c:548
+#: builtin/clone.c:146 builtin/init-db.c:548
msgid "gitdir"
msgstr "gitkat"
-#: builtin/clone.c:143 builtin/init-db.c:549
+#: builtin/clone.c:147 builtin/init-db.c:549
msgid "separate git dir from working tree"
msgstr "separera gitkatalogen från arbetskatalogen"
-#: builtin/clone.c:144
+#: builtin/clone.c:148
msgid "key=value"
msgstr "nyckel=värde"
-#: builtin/clone.c:145
+#: builtin/clone.c:149
msgid "set config inside the new repository"
msgstr "ställ in konfiguration i det nya arkivet"
-#: builtin/clone.c:147 builtin/fetch.c:203 builtin/ls-remote.c:77
+#: builtin/clone.c:151 builtin/fetch.c:207 builtin/ls-remote.c:77
#: builtin/pull.c:234 builtin/push.c:575 builtin/send-pack.c:200
msgid "server-specific"
msgstr "serverspecifik"
-#: builtin/clone.c:147 builtin/fetch.c:203 builtin/ls-remote.c:77
+#: builtin/clone.c:151 builtin/fetch.c:207 builtin/ls-remote.c:77
#: builtin/pull.c:235 builtin/push.c:575 builtin/send-pack.c:201
msgid "option to transmit"
msgstr "flagga att sända"
-#: builtin/clone.c:148 builtin/fetch.c:204 builtin/pull.c:238
+#: builtin/clone.c:152 builtin/fetch.c:208 builtin/pull.c:238
#: builtin/push.c:576
msgid "use IPv4 addresses only"
msgstr "använd endast IPv4-adresser"
-#: builtin/clone.c:150 builtin/fetch.c:206 builtin/pull.c:241
+#: builtin/clone.c:154 builtin/fetch.c:210 builtin/pull.c:241
#: builtin/push.c:578
msgid "use IPv6 addresses only"
msgstr "använd endast IPv6-adresser"
-#: builtin/clone.c:154
+#: builtin/clone.c:158
+msgid "apply partial clone filters to submodules"
+msgstr "tillämpa delvisa klonfilter på undermoduler"
+
+#: builtin/clone.c:160
msgid "any cloned submodules will use their remote-tracking branch"
msgstr "klonade undermoduler kommer använda sin fjärrspårningsgren"
-#: builtin/clone.c:156
+#: builtin/clone.c:162
msgid "initialize sparse-checkout file to include only files at root"
msgstr "initiera sparse-checkout-filen till att bara ta med filer i roten"
-#: builtin/clone.c:231
+#: builtin/clone.c:237
#, c-format
msgid "info: Could not add alternate for '%s': %s\n"
msgstr "info: Kan inte skapa suppleant för \"%s\": %s\n"
-#: builtin/clone.c:304
+#: builtin/clone.c:310
#, c-format
msgid "%s exists and is not a directory"
msgstr "%s finns och är ingen katalog"
-#: builtin/clone.c:322
+#: builtin/clone.c:328
#, c-format
msgid "failed to start iterator over '%s'"
msgstr "misslyckades starta iterator över \"%s\""
-#: builtin/clone.c:353
+#: builtin/clone.c:359
#, c-format
msgid "failed to create link '%s'"
msgstr "misslyckades skapa länken \"%s\""
-#: builtin/clone.c:357
+#: builtin/clone.c:363
#, c-format
msgid "failed to copy file to '%s'"
msgstr "misslyckades kopiera filen till \"%s\""
-#: builtin/clone.c:362
+#: builtin/clone.c:368
#, c-format
msgid "failed to iterate over '%s'"
msgstr "misslyckades iterera över \"%s\""
-#: builtin/clone.c:389
+#: builtin/clone.c:395
#, c-format
msgid "done.\n"
msgstr "klart.\n"
-#: builtin/clone.c:403
+#: builtin/clone.c:409
msgid ""
"Clone succeeded, but checkout failed.\n"
"You can inspect what was checked out with 'git status'\n"
@@ -13242,147 +13622,151 @@ msgstr ""
"Du kan inspektera det som checkades ut med \"git status\"\n"
"och försöka med \"git restore --source=HEAD :/\"\n"
-#: builtin/clone.c:480
+#: builtin/clone.c:486
#, c-format
msgid "Could not find remote branch %s to clone."
msgstr "Kunde inte hitta fjärrgrenen %s för att klona."
-#: builtin/clone.c:597
+#: builtin/clone.c:603
#, c-format
msgid "unable to update %s"
msgstr "kan inte uppdatera %s"
-#: builtin/clone.c:645
+#: builtin/clone.c:651
msgid "failed to initialize sparse-checkout"
msgstr "misslyckades initiera sparse-checkout"
-#: builtin/clone.c:668
+#: builtin/clone.c:674
msgid "remote HEAD refers to nonexistent ref, unable to checkout.\n"
msgstr ""
"HEAD hos fjärren pekar på en obefintlig referens, kan inte checka ut.\n"
-#: builtin/clone.c:701
+#: builtin/clone.c:709
msgid "unable to checkout working tree"
msgstr "kunde inte checka ut arbetskatalogen"
-#: builtin/clone.c:779
+#: builtin/clone.c:793
msgid "unable to write parameters to config file"
msgstr "kunde inte skriva parametrar till konfigurationsfilen"
-#: builtin/clone.c:842
+#: builtin/clone.c:856
msgid "cannot repack to clean up"
msgstr "kan inte packa om för att städa upp"
-#: builtin/clone.c:844
+#: builtin/clone.c:858
msgid "cannot unlink temporary alternates file"
msgstr "kunde inte ta bort temporär \"alternates\"-fil"
-#: builtin/clone.c:886
+#: builtin/clone.c:901
msgid "Too many arguments."
msgstr "För många argument."
-#: builtin/clone.c:890 contrib/scalar/scalar.c:414
+#: builtin/clone.c:905 contrib/scalar/scalar.c:413
msgid "You must specify a repository to clone."
msgstr "Du måste ange ett arkiv att klona."
-#: builtin/clone.c:903
+#: builtin/clone.c:918
#, c-format
msgid "options '%s' and '%s %s' cannot be used together"
msgstr "flaggorna \"%s\" och \"%s %s\" kan inte användas samtidigt"
-#: builtin/clone.c:920
+#: builtin/clone.c:935
#, c-format
msgid "repository '%s' does not exist"
msgstr "arkivet \"%s\" finns inte"
-#: builtin/clone.c:924 builtin/fetch.c:2052
+#: builtin/clone.c:939 builtin/fetch.c:2176
#, c-format
msgid "depth %s is not a positive number"
msgstr "djupet %s är inte ett positivt tal"
-#: builtin/clone.c:934
+#: builtin/clone.c:949
#, 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:940
+#: builtin/clone.c:955
#, c-format
msgid "repository path '%s' already exists and is not an empty directory."
msgstr "arkivsökvägen \"%s\" finns redan och är inte en tom katalog."
-#: builtin/clone.c:954
+#: builtin/clone.c:969
#, c-format
msgid "working tree '%s' already exists."
msgstr "arbetsträdet \"%s\" finns redan."
-#: builtin/clone.c:969 builtin/clone.c:990 builtin/difftool.c:256
-#: builtin/log.c:2012 builtin/worktree.c:281 builtin/worktree.c:313
+#: builtin/clone.c:984 builtin/clone.c:1005 builtin/difftool.c:256
+#: builtin/log.c:2037 builtin/worktree.c:350 builtin/worktree.c:382
#, c-format
msgid "could not create leading directories of '%s'"
msgstr "kunde inte skapa inledande kataloger för \"%s\""
-#: builtin/clone.c:974
+#: builtin/clone.c:989
#, c-format
msgid "could not create work tree dir '%s'"
msgstr "kunde inte skapa arbetskatalogen \"%s\""
-#: builtin/clone.c:994
+#: builtin/clone.c:1009
#, c-format
msgid "Cloning into bare repository '%s'...\n"
msgstr "Klonar till ett naket arkiv \"%s\"...\n"
-#: builtin/clone.c:996
+#: builtin/clone.c:1011
#, c-format
msgid "Cloning into '%s'...\n"
msgstr "Klonar till \"%s\"...\n"
-#: builtin/clone.c:1025
+#: builtin/clone.c:1040
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:1080 builtin/remote.c:200 builtin/remote.c:710
+#: builtin/clone.c:1116 builtin/remote.c:201 builtin/remote.c:721
#, c-format
msgid "'%s' is not a valid remote name"
msgstr "\"%s\" är inte ett giltigt namn på fjärrarkiv"
-#: builtin/clone.c:1121
+#: builtin/clone.c:1157
msgid "--depth is ignored in local clones; use file:// instead."
msgstr "--depth ignoreras i lokala kloningar; använd file:// istället."
-#: builtin/clone.c:1123
+#: builtin/clone.c:1159
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:1125
+#: builtin/clone.c:1161
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:1127
+#: builtin/clone.c:1163
msgid "--filter is ignored in local clones; use file:// instead."
msgstr "--filter ignoreras i lokala kloningar; använd file:// istället."
-#: builtin/clone.c:1132
+#: builtin/clone.c:1168
msgid "source repository is shallow, ignoring --local"
msgstr "källarkivet är grunt, ignorerar --local"
-#: builtin/clone.c:1137
+#: builtin/clone.c:1173
msgid "--local is ignored"
msgstr "--local ignoreras"
-#: builtin/clone.c:1216 builtin/clone.c:1276
+#: builtin/clone.c:1185
+msgid "cannot clone from filtered bundle"
+msgstr "kan inte klona från filtrerad bunt"
+
+#: builtin/clone.c:1265 builtin/clone.c:1324
msgid "remote transport reported error"
msgstr "fjärrtransport rapporterade fel"
-#: builtin/clone.c:1228 builtin/clone.c:1239
+#: builtin/clone.c:1277 builtin/clone.c:1289
#, c-format
msgid "Remote branch %s not found in upstream %s"
msgstr "Fjärrgrenen %s hittades inte i uppströmsarkivet %s"
-#: builtin/clone.c:1242
+#: builtin/clone.c:1292
msgid "You appear to have cloned an empty repository."
msgstr "Du verkar ha klonat ett tomt arkiv."
@@ -13434,7 +13818,7 @@ msgstr ""
"split[=<strategi>]] [--reachable|--stdin-packs|--stdin-commits] [--changed-"
"paths] [--[no-]max-new-filters <n>] [--[no-]progress] <delnings-flaggor>"
-#: builtin/commit-graph.c:51 builtin/fetch.c:192 builtin/log.c:1794
+#: builtin/commit-graph.c:51 builtin/fetch.c:196 builtin/log.c:1813
msgid "dir"
msgstr "kat"
@@ -13533,7 +13917,7 @@ msgstr ""
msgid "duplicate parent %s ignored"
msgstr "duplicerad förälder %s ignorerades"
-#: builtin/commit-tree.c:56 builtin/commit-tree.c:134 builtin/log.c:577
+#: builtin/commit-tree.c:56 builtin/commit-tree.c:134 builtin/log.c:590
#, c-format
msgid "not a valid object name %s"
msgstr "objektnamnet är inte giltigt: %s"
@@ -13556,13 +13940,13 @@ msgstr "förälder"
msgid "id of a parent commit object"
msgstr "id på ett förälderincheckningsobjekt"
-#: builtin/commit-tree.c:112 builtin/commit.c:1627 builtin/merge.c:284
-#: builtin/notes.c:407 builtin/notes.c:573 builtin/stash.c:1677
-#: builtin/tag.c:454
+#: builtin/commit-tree.c:112 builtin/commit.c:1626 builtin/merge.c:284
+#: builtin/notes.c:407 builtin/notes.c:573 builtin/stash.c:1666
+#: builtin/tag.c:455
msgid "message"
msgstr "meddelande"
-#: builtin/commit-tree.c:113 builtin/commit.c:1627
+#: builtin/commit-tree.c:113 builtin/commit.c:1626
msgid "commit message"
msgstr "incheckningsmeddelande"
@@ -13570,7 +13954,7 @@ msgstr "incheckningsmeddelande"
msgid "read commit log message from file"
msgstr "läs incheckningsloggmeddelande från fil"
-#: builtin/commit-tree.c:119 builtin/commit.c:1644 builtin/merge.c:303
+#: builtin/commit-tree.c:119 builtin/commit.c:1643 builtin/merge.c:303
#: builtin/pull.c:180 builtin/revert.c:118
msgid "GPG sign commit"
msgstr "GPG-signera incheckning"
@@ -13583,15 +13967,15 @@ msgstr "måste ange exakt ett träd"
msgid "git commit-tree: failed to read"
msgstr "git commit-tree: misslyckades läsa"
-#: builtin/commit.c:42
+#: builtin/commit.c:43
msgid "git commit [<options>] [--] <pathspec>..."
msgstr "git commit [<flaggor>] [--] <sökväg>..."
-#: builtin/commit.c:47
+#: builtin/commit.c:48
msgid "git status [<options>] [--] <pathspec>..."
msgstr "git status [<flaggor>] [--] <sökväg>..."
-#: builtin/commit.c:52
+#: builtin/commit.c:53
msgid ""
"You asked to amend the most recent commit, but doing so would make\n"
"it empty. You can repeat your command with --allow-empty, or you can\n"
@@ -13601,7 +13985,7 @@ msgstr ""
"blir den tom. Du kan köra kommandot på nytt med --allow-empty, eller\n"
"så kan du ta bort incheckningen helt med \"git reset HEAD^\".\n"
-#: builtin/commit.c:57
+#: builtin/commit.c:58
msgid ""
"The previous cherry-pick is now empty, possibly due to conflict resolution.\n"
"If you wish to commit it anyway, use:\n"
@@ -13615,15 +13999,15 @@ msgstr ""
" git commit --allow-empty\n"
"\n"
-#: builtin/commit.c:64
+#: builtin/commit.c:65
msgid "Otherwise, please use 'git rebase --skip'\n"
msgstr "Använd annars \"git rebase --skip\"\n"
-#: builtin/commit.c:67
+#: builtin/commit.c:68
msgid "Otherwise, please use 'git cherry-pick --skip'\n"
msgstr "Använd annars \"git cherry-pick --skip\"\n"
-#: builtin/commit.c:70
+#: builtin/commit.c:71
msgid ""
"and then use:\n"
"\n"
@@ -13645,69 +14029,69 @@ msgstr ""
" git cherry-pick --skip\n"
"\n"
-#: builtin/commit.c:325
+#: builtin/commit.c:326
msgid "failed to unpack HEAD tree object"
msgstr "misslyckades packa upp HEAD:s trädobjekt"
-#: builtin/commit.c:375
+#: builtin/commit.c:376
msgid "No paths with --include/--only does not make sense."
msgstr "Du måste ange sökvägar tillsammans med --include/--only."
-#: builtin/commit.c:387
+#: builtin/commit.c:388
msgid "unable to create temporary index"
msgstr "kunde inte skapa temporär indexfil"
-#: builtin/commit.c:396
+#: builtin/commit.c:397
msgid "interactive add failed"
msgstr "interaktiv tilläggning misslyckades"
-#: builtin/commit.c:411
+#: builtin/commit.c:412
msgid "unable to update temporary index"
msgstr "kan inte uppdatera temporärt index"
-#: builtin/commit.c:413
+#: builtin/commit.c:414
msgid "Failed to update main cache tree"
msgstr "Misslyckades uppdatera huvud-cacheträdet"
-#: builtin/commit.c:438 builtin/commit.c:461 builtin/commit.c:509
+#: builtin/commit.c:439 builtin/commit.c:462 builtin/commit.c:510
msgid "unable to write new_index file"
msgstr "kunde inte skriva filen new_index"
-#: builtin/commit.c:490
+#: builtin/commit.c:491
msgid "cannot do a partial commit during a merge."
msgstr "kan inte utföra en delvis incheckning under en sammanslagning."
-#: builtin/commit.c:492
+#: builtin/commit.c:493
msgid "cannot do a partial commit during a cherry-pick."
msgstr "kan inte utföra en delvis incheckning under en cherry-pick."
-#: builtin/commit.c:494
+#: builtin/commit.c:495
msgid "cannot do a partial commit during a rebase."
msgstr "kan inte utföra en delvis incheckning under en ombasering."
-#: builtin/commit.c:502
+#: builtin/commit.c:503
msgid "cannot read the index"
msgstr "kan inte läsa indexet"
-#: builtin/commit.c:521
+#: builtin/commit.c:522
msgid "unable to write temporary index file"
msgstr "kunde inte skriva temporär indexfil"
-#: builtin/commit.c:619
+#: builtin/commit.c:620
#, c-format
msgid "commit '%s' lacks author header"
msgstr "incheckningen \"%s\" saknar författarhuvud"
-#: builtin/commit.c:621
+#: builtin/commit.c:622
#, c-format
msgid "commit '%s' has malformed author line"
msgstr "incheckningen \"%s\" har felformaterat författarhuvud"
-#: builtin/commit.c:640
+#: builtin/commit.c:641
msgid "malformed --author parameter"
msgstr "felformad \"--author\"-flagga"
-#: builtin/commit.c:693
+#: builtin/commit.c:694
msgid ""
"unable to select a comment character that is not used\n"
"in the current commit message"
@@ -13715,43 +14099,43 @@ msgstr ""
"kunde inte välja ett kommentarstecken som inte använts\n"
"i det befintliga incheckningsmeddelandet"
-#: builtin/commit.c:747 builtin/commit.c:781 builtin/commit.c:1166
+#: builtin/commit.c:750 builtin/commit.c:784 builtin/commit.c:1170
#, c-format
msgid "could not lookup commit %s"
msgstr "kunde inte slå upp incheckningen %s"
-#: builtin/commit.c:759 builtin/shortlog.c:416
+#: builtin/commit.c:762 builtin/shortlog.c:417
#, c-format
msgid "(reading log message from standard input)\n"
msgstr "(läser loggmeddelande från standard in)\n"
-#: builtin/commit.c:761
+#: builtin/commit.c:764
msgid "could not read log from standard input"
msgstr "kunde inte läsa logg från standard in"
-#: builtin/commit.c:765
+#: builtin/commit.c:768
#, c-format
msgid "could not read log file '%s'"
msgstr "kunde inte läsa loggfilen \"%s\""
-#: builtin/commit.c:802
+#: builtin/commit.c:805
#, c-format
msgid "options '%s' and '%s:%s' cannot be used together"
msgstr "flaggorna \"%s\" och \"%s:%s\" kan inte användas samtidigt"
-#: builtin/commit.c:814 builtin/commit.c:830
+#: builtin/commit.c:817 builtin/commit.c:833
msgid "could not read SQUASH_MSG"
msgstr "kunde inte läsa SQUASH_MSG"
-#: builtin/commit.c:821
+#: builtin/commit.c:824
msgid "could not read MERGE_MSG"
msgstr "kunde inte läsa MERGE_MSG"
-#: builtin/commit.c:881
+#: builtin/commit.c:884
msgid "could not write commit template"
msgstr "kunde inte skriva incheckningsmall"
-#: builtin/commit.c:894
+#: builtin/commit.c:897
#, c-format
msgid ""
"Please enter the commit message for your changes. Lines starting\n"
@@ -13760,7 +14144,7 @@ msgstr ""
"Ange incheckningsmeddelandet för dina ändringar. Rader som inleds\n"
"med \"%c\" kommer ignoreras.\n"
-#: builtin/commit.c:896
+#: builtin/commit.c:899
#, c-format
msgid ""
"Please enter the commit message for your changes. Lines starting\n"
@@ -13770,7 +14154,7 @@ msgstr ""
"med \"%c\" kommer ignoreras, och ett tomt meddelande avbryter "
"incheckningen.\n"
-#: builtin/commit.c:900
+#: builtin/commit.c:903
#, c-format
msgid ""
"Please enter the commit message for your changes. Lines starting\n"
@@ -13779,7 +14163,7 @@ msgstr ""
"Ange incheckningsmeddelandet för dina ändringar. Rader som inleds\n"
"med \"%c\" kommer behållas; du kan själv ta bort dem om du vill.\n"
-#: builtin/commit.c:904
+#: builtin/commit.c:907
#, c-format
msgid ""
"Please enter the commit message for your changes. Lines starting\n"
@@ -13790,7 +14174,7 @@ msgstr ""
"med \"%c\" kommer behållas; du kan själv ta bort dem om du vill.\n"
"Ett tomt meddelande avbryter incheckningen.\n"
-#: builtin/commit.c:916
+#: builtin/commit.c:919
msgid ""
"\n"
"It looks like you may be committing a merge.\n"
@@ -13804,7 +14188,7 @@ msgstr ""
"\tgit update-ref -d MERGE_HEAD\n"
"och försöker igen.\n"
-#: builtin/commit.c:921
+#: builtin/commit.c:924
msgid ""
"\n"
"It looks like you may be committing a cherry-pick.\n"
@@ -13818,168 +14202,147 @@ msgstr ""
"\tgit update-ref -d CHERRY_PICK_HEAD\n"
"och försöker igen.\n"
-#: builtin/commit.c:948
+#: builtin/commit.c:951
#, c-format
msgid "%sAuthor: %.*s <%.*s>"
msgstr "%sFörfattare: %.*s <%.*s>"
-#: builtin/commit.c:956
+#: builtin/commit.c:959
#, c-format
msgid "%sDate: %s"
msgstr "%sDatum: %s"
-#: builtin/commit.c:963
+#: builtin/commit.c:966
#, c-format
msgid "%sCommitter: %.*s <%.*s>"
msgstr "%sIncheckare: %.*s <%.*s>"
-#: builtin/commit.c:981
+#: builtin/commit.c:984
msgid "Cannot read index"
msgstr "Kan inte läsa indexet"
-#: builtin/commit.c:1026
+#: builtin/commit.c:1029
msgid "unable to pass trailers to --trailers"
msgstr "kan inte sända släprader till --trailers"
-#: builtin/commit.c:1066
+#: builtin/commit.c:1069
msgid "Error building trees"
msgstr "Fel vid byggande av träd"
-#: builtin/commit.c:1080 builtin/tag.c:316
+#: builtin/commit.c:1083 builtin/tag.c:317
#, c-format
msgid "Please supply the message using either -m or -F option.\n"
msgstr "Ange meddelandet en av flaggorna -m eller -F.\n"
-#: builtin/commit.c:1124
+#: builtin/commit.c:1128
#, c-format
msgid "--author '%s' is not 'Name <email>' and matches no existing author"
msgstr ""
"--author '%s' är inte 'Namn <epost>' och motsvarar ingen befintlig författare"
-#: builtin/commit.c:1138
+#: builtin/commit.c:1142
#, c-format
msgid "Invalid ignored mode '%s'"
msgstr "Ogiltigt ignorerat läge \"%s\""
-#: builtin/commit.c:1156 builtin/commit.c:1451
+#: builtin/commit.c:1160 builtin/commit.c:1450
#, c-format
msgid "Invalid untracked files mode '%s'"
msgstr "Ogiltigt läge för ospårade filer: \"%s\""
-#: builtin/commit.c:1227
+#: builtin/commit.c:1231
msgid "You are in the middle of a merge -- cannot reword."
msgstr "Du är i mitten av en sammanslagning -- kan inte omformulera."
-#: builtin/commit.c:1229
+#: builtin/commit.c:1233
msgid "You are in the middle of a cherry-pick -- cannot reword."
msgstr "Du är i mitten av en cherry-pick -- kan inte omformulera."
-#: builtin/commit.c:1232
+#: builtin/commit.c:1236
#, c-format
msgid "reword option of '%s' and path '%s' cannot be used together"
msgstr ""
"reword-flaggan till \"%s\" och sökvägen \"%s\" kan inte användas tillsammans"
-#: builtin/commit.c:1234
+#: builtin/commit.c:1238
#, c-format
msgid "reword option of '%s' and '%s' cannot be used together"
msgstr "reword-flaggan till \"%s\" och \"%s\" kan inte användas tillsammans"
-#: builtin/commit.c:1254
-msgid "Using both --reset-author and --author does not make sense"
-msgstr "Kan inte använda både --reset-author och --author"
-
-#: builtin/commit.c:1261
+#: builtin/commit.c:1263
msgid "You have nothing to amend."
msgstr "Du har inget att utöka."
-#: builtin/commit.c:1264
+#: builtin/commit.c:1266
msgid "You are in the middle of a merge -- cannot amend."
msgstr "Du är i mitten av en sammanslagning -- kan inte utöka."
-#: builtin/commit.c:1266
+#: builtin/commit.c:1268
msgid "You are in the middle of a cherry-pick -- cannot amend."
msgstr "Du är i mitten av en cherry-pick -- kan inte utöka."
-#: builtin/commit.c:1268
+#: builtin/commit.c:1270
msgid "You are in the middle of a rebase -- cannot amend."
msgstr "Du är i mitten av en ombasering -- kan inte utöka."
-#: builtin/commit.c:1271
-msgid "Options --squash and --fixup cannot be used together"
-msgstr "Flaggorna --squash och --fixup kan inte användas samtidigt"
-
-#: builtin/commit.c:1281
-msgid "Only one of -c/-C/-F/--fixup can be used."
-msgstr "Endast en av -c/-C/-F/--fixup kan användas."
-
-#: builtin/commit.c:1283
-msgid "Option -m cannot be combined with -c/-C/-F."
-msgstr "Flaggan -m kan inte kombineras med -c/-C/-F."
-
-#: builtin/commit.c:1292
+#: builtin/commit.c:1290
msgid "--reset-author can be used only with -C, -c or --amend."
msgstr "--reset-author kan endast användas med -C, -c eller --amend."
-#: builtin/commit.c:1310
-msgid "Only one of --include/--only/--all/--interactive/--patch can be used."
-msgstr ""
-"Endast en av --include/--only/--all/--interactive/--patch kan användas."
-
-#: builtin/commit.c:1338
+#: builtin/commit.c:1337
#, c-format
msgid "unknown option: --fixup=%s:%s"
msgstr "okänd flagga: --fixup=%s:%s"
-#: builtin/commit.c:1355
+#: builtin/commit.c:1354
#, c-format
msgid "paths '%s ...' with -a does not make sense"
msgstr "sökvägarna \"%s ...\" med -a ger ingen mening"
-#: builtin/commit.c:1486 builtin/commit.c:1655
+#: builtin/commit.c:1485 builtin/commit.c:1654
msgid "show status concisely"
msgstr "visa koncis status"
-#: builtin/commit.c:1488 builtin/commit.c:1657
+#: builtin/commit.c:1487 builtin/commit.c:1656
msgid "show branch information"
msgstr "visa information om gren"
-#: builtin/commit.c:1490
+#: builtin/commit.c:1489
msgid "show stash information"
msgstr "visa information om stash"
-#: builtin/commit.c:1492 builtin/commit.c:1659
+#: builtin/commit.c:1491 builtin/commit.c:1658
msgid "compute full ahead/behind values"
msgstr "beräkna fullständiga före-/efter-värden"
-#: builtin/commit.c:1494
+#: builtin/commit.c:1493
msgid "version"
msgstr "version"
-#: builtin/commit.c:1494 builtin/commit.c:1661 builtin/push.c:551
-#: builtin/worktree.c:690
+#: builtin/commit.c:1493 builtin/commit.c:1660 builtin/push.c:551
+#: builtin/worktree.c:765
msgid "machine-readable output"
msgstr "maskinläsbar utdata"
-#: builtin/commit.c:1497 builtin/commit.c:1663
+#: builtin/commit.c:1496 builtin/commit.c:1662
msgid "show status in long format (default)"
msgstr "visa status i långt format (standard)"
-#: builtin/commit.c:1500 builtin/commit.c:1666
+#: builtin/commit.c:1499 builtin/commit.c:1665
msgid "terminate entries with NUL"
msgstr "terminera poster med NUL"
-#: builtin/commit.c:1502 builtin/commit.c:1506 builtin/commit.c:1669
+#: builtin/commit.c:1501 builtin/commit.c:1505 builtin/commit.c:1668
#: builtin/fast-export.c:1172 builtin/fast-export.c:1175
-#: builtin/fast-export.c:1178 builtin/rebase.c:1111 parse-options.h:337
+#: builtin/fast-export.c:1178 builtin/rebase.c:1139 parse-options.h:368
msgid "mode"
msgstr "läge"
-#: builtin/commit.c:1503 builtin/commit.c:1669
+#: builtin/commit.c:1502 builtin/commit.c:1668
msgid "show untracked files, optional modes: all, normal, no. (Default: all)"
msgstr "visa ospårade filer, valfria lägen: all, normal, no. (Standard: all)"
-#: builtin/commit.c:1507
+#: builtin/commit.c:1506
msgid ""
"show ignored files, optional modes: traditional, matching, no. (Default: "
"traditional)"
@@ -13987,11 +14350,11 @@ msgstr ""
"visa ignorerade filer, valfria lägen: traditional, matching, no (Standard: "
"traditional)"
-#: builtin/commit.c:1509 parse-options.h:192
+#: builtin/commit.c:1508 parse-options.h:197
msgid "when"
msgstr "när"
-#: builtin/commit.c:1510
+#: builtin/commit.c:1509
msgid ""
"ignore changes to submodules, optional when: all, dirty, untracked. "
"(Default: all)"
@@ -13999,194 +14362,194 @@ msgstr ""
"ignorera ändringar i undermoduler, valfritt när: all, dirty, untracked. "
"(Default: all)"
-#: builtin/commit.c:1512
+#: builtin/commit.c:1511
msgid "list untracked files in columns"
msgstr "visa ospårade filer i spalter"
-#: builtin/commit.c:1513
+#: builtin/commit.c:1512
msgid "do not detect renames"
msgstr "detektera inte namnändringar"
-#: builtin/commit.c:1515
+#: builtin/commit.c:1514
msgid "detect renames, optionally set similarity index"
msgstr "detektera namnändringar, möjligen sätt likhetsindex"
-#: builtin/commit.c:1538
+#: builtin/commit.c:1537
msgid "Unsupported combination of ignored and untracked-files arguments"
msgstr "Kombinationen av argument för ignorerade och ospårade filer stöds ej"
-#: builtin/commit.c:1620
+#: builtin/commit.c:1619
msgid "suppress summary after successful commit"
msgstr "undertryck sammanfattning efter framgångsrik incheckning"
-#: builtin/commit.c:1621
+#: builtin/commit.c:1620
msgid "show diff in commit message template"
msgstr "visa diff i mallen för incheckningsmeddelandet"
-#: builtin/commit.c:1623
+#: builtin/commit.c:1622
msgid "Commit message options"
msgstr "Alternativ för incheckningsmeddelande"
-#: builtin/commit.c:1624 builtin/merge.c:288 builtin/tag.c:456
+#: builtin/commit.c:1623 builtin/merge.c:288 builtin/tag.c:457
msgid "read message from file"
msgstr "läs meddelande från fil"
-#: builtin/commit.c:1625
+#: builtin/commit.c:1624
msgid "author"
msgstr "författare"
-#: builtin/commit.c:1625
+#: builtin/commit.c:1624
msgid "override author for commit"
msgstr "överstyr författare för incheckningen"
-#: builtin/commit.c:1626 builtin/gc.c:551
+#: builtin/commit.c:1625 builtin/gc.c:551
msgid "date"
msgstr "datum"
-#: builtin/commit.c:1626
+#: builtin/commit.c:1625
msgid "override date for commit"
msgstr "överstyr datum för incheckningen"
-#: builtin/commit.c:1628 builtin/commit.c:1629 builtin/commit.c:1635
-#: parse-options.h:329 ref-filter.h:89
+#: builtin/commit.c:1627 builtin/commit.c:1628 builtin/commit.c:1634
+#: parse-options.h:360 ref-filter.h:89
msgid "commit"
msgstr "incheckning"
-#: builtin/commit.c:1628
+#: builtin/commit.c:1627
msgid "reuse and edit message from specified commit"
msgstr "återanvänd och redigera meddelande från angiven incheckning"
-#: builtin/commit.c:1629
+#: builtin/commit.c:1628
msgid "reuse message from specified commit"
msgstr "återanvänd meddelande från angiven incheckning"
#. TRANSLATORS: Leave "[(amend|reword):]" as-is,
#. and only translate <commit>.
#.
-#: builtin/commit.c:1634
+#: builtin/commit.c:1633
msgid "[(amend|reword):]commit"
msgstr "[(amend|reword):]incheckning"
-#: builtin/commit.c:1634
+#: builtin/commit.c:1633
msgid ""
"use autosquash formatted message to fixup or amend/reword specified commit"
msgstr ""
"använd autosquash-formaterat meddelande för att fixa/omformulera angiven "
"incheckning"
-#: builtin/commit.c:1635
+#: builtin/commit.c:1634
msgid "use autosquash formatted message to squash specified commit"
msgstr ""
"använd autosquash-formaterat meddelande för att slå ihop med angiven "
"incheckning"
-#: builtin/commit.c:1636
+#: builtin/commit.c:1635
msgid "the commit is authored by me now (used with -C/-c/--amend)"
msgstr "jag är nu författare av incheckningen (används med -C/-c/--amend)"
-#: builtin/commit.c:1637 builtin/interpret-trailers.c:111
+#: builtin/commit.c:1636 builtin/interpret-trailers.c:111
msgid "trailer"
msgstr "släprad"
-#: builtin/commit.c:1637
+#: builtin/commit.c:1636
msgid "add custom trailer(s)"
msgstr "använd skräddarsydd(a) släprad(er)"
-#: builtin/commit.c:1638 builtin/log.c:1769 builtin/merge.c:306
+#: builtin/commit.c:1637 builtin/log.c:1788 builtin/merge.c:306
#: builtin/pull.c:146 builtin/revert.c:110
msgid "add a Signed-off-by trailer"
msgstr "lägg till Signed-off-by-släprad"
-#: builtin/commit.c:1639
+#: builtin/commit.c:1638
msgid "use specified template file"
msgstr "använd angiven mallfil"
-#: builtin/commit.c:1640
+#: builtin/commit.c:1639
msgid "force edit of commit"
msgstr "tvinga redigering av incheckning"
-#: builtin/commit.c:1642
+#: builtin/commit.c:1641
msgid "include status in commit message template"
msgstr "ta med status i mallen för incheckningsmeddelandet"
-#: builtin/commit.c:1647
+#: builtin/commit.c:1646
msgid "Commit contents options"
msgstr "Alternativ för incheckningens innehåll"
-#: builtin/commit.c:1648
+#: builtin/commit.c:1647
msgid "commit all changed files"
msgstr "checka in alla ändrade filer"
-#: builtin/commit.c:1649
+#: builtin/commit.c:1648
msgid "add specified files to index for commit"
msgstr "lägg till angivna filer till indexet för incheckning"
-#: builtin/commit.c:1650
+#: builtin/commit.c:1649
msgid "interactively add files"
msgstr "lägg till filer interaktivt"
-#: builtin/commit.c:1651
+#: builtin/commit.c:1650
msgid "interactively add changes"
msgstr "lägg till ändringar interaktivt"
-#: builtin/commit.c:1652
+#: builtin/commit.c:1651
msgid "commit only specified files"
msgstr "checka endast in angivna filer"
-#: builtin/commit.c:1653
+#: builtin/commit.c:1652
msgid "bypass pre-commit and commit-msg hooks"
msgstr "förbigå pre-commit- och commit-msg-krokar"
-#: builtin/commit.c:1654
+#: builtin/commit.c:1653
msgid "show what would be committed"
msgstr "visa vad som skulle checkas in"
-#: builtin/commit.c:1667
+#: builtin/commit.c:1666
msgid "amend previous commit"
msgstr "lägg till föregående incheckning"
-#: builtin/commit.c:1668
+#: builtin/commit.c:1667
msgid "bypass post-rewrite hook"
msgstr "förbigå post-rewrite-krok"
-#: builtin/commit.c:1675
+#: builtin/commit.c:1674
msgid "ok to record an empty change"
msgstr "ok att registrera en tom ändring"
-#: builtin/commit.c:1677
+#: builtin/commit.c:1676
msgid "ok to record a change with an empty message"
msgstr "ok att registrera en ändring med tomt meddelande"
-#: builtin/commit.c:1753
+#: builtin/commit.c:1752
#, c-format
msgid "Corrupt MERGE_HEAD file (%s)"
msgstr "Trasig MERGE_HEAD-fil (%s)"
-#: builtin/commit.c:1760
+#: builtin/commit.c:1759
msgid "could not read MERGE_MODE"
msgstr "kunde inte läsa MERGE_MODE"
-#: builtin/commit.c:1781
+#: builtin/commit.c:1780
#, c-format
msgid "could not read commit message: %s"
msgstr "kunde inte läsa incheckningsmeddelande: %s"
-#: builtin/commit.c:1788
+#: builtin/commit.c:1787
#, c-format
msgid "Aborting commit due to empty commit message.\n"
msgstr "Avbryter på grund av tomt incheckningsmeddelande.\n"
-#: builtin/commit.c:1793
+#: builtin/commit.c:1792
#, c-format
msgid "Aborting commit; you did not edit the message.\n"
msgstr "Avbryter incheckning; meddelandet inte redigerat.\n"
-#: builtin/commit.c:1804
+#: builtin/commit.c:1803
#, c-format
msgid "Aborting commit due to empty commit message body.\n"
msgstr "Avbryter på grund av tom incheckningsmeddelandekropp.\n"
-#: builtin/commit.c:1840
+#: builtin/commit.c:1839
msgid ""
"repository has been updated, but unable to write\n"
"new_index file. Check that disk is not full and quota is\n"
@@ -14310,6 +14673,10 @@ msgstr "hitta färginställningen: slot [stdout-is-tty]"
msgid "Type"
msgstr "Typ"
+#: builtin/config.c:154 builtin/env--helper.c:42 builtin/hash-object.c:97
+msgid "type"
+msgstr "typ"
+
#: builtin/config.c:154 builtin/env--helper.c:43
msgid "value is given this type"
msgstr "värdet har givits denna typ"
@@ -14521,10 +14888,6 @@ msgstr ""
msgid "no such section: %s"
msgstr "ingen sådan sektion: %s"
-#: builtin/count-objects.c:90
-msgid "git count-objects [-v] [-H | --human-readable]"
-msgstr "git count-objects [-v] [-H | --human-readable]"
-
#: builtin/count-objects.c:100
msgid "print sizes in human readable format"
msgstr "skriv storlekar i människoläsbart format"
@@ -14693,7 +15056,7 @@ msgstr "överväg endast taggar som motsvarar <mönster>"
msgid "do not consider tags matching <pattern>"
msgstr "överväg inte taggar som motsvarar <mönster>"
-#: builtin/describe.c:570 builtin/name-rev.c:544
+#: builtin/describe.c:570 builtin/name-rev.c:595
msgid "show abbreviated commit object as fallback"
msgstr "visa förkortade incheckningsobjekt som standard"
@@ -14741,7 +15104,7 @@ msgstr "%s...%s: ingen sammanslagningsbas"
msgid "Not a git repository"
msgstr "Inte ett git-arkiv"
-#: builtin/diff.c:537 builtin/grep.c:698
+#: builtin/diff.c:537 builtin/grep.c:700
#, c-format
msgid "invalid object '%s' given."
msgstr "objektet \"%s\" som angavs är felaktigt."
@@ -14860,11 +15223,11 @@ msgstr "sändes till \"diff\""
msgid "difftool requires worktree or --no-index"
msgstr "difftool kräver en arbetskatalog eller --no-index"
-#: builtin/difftool.c:744
+#: builtin/difftool.c:745
msgid "no <tool> given for --tool=<tool>"
msgstr "inget <verktyg> angavs för --tool=<verktyg>"
-#: builtin/difftool.c:751
+#: builtin/difftool.c:752
msgid "no <cmd> given for --extcmd=<cmd>"
msgstr "inget <kommando> angavs för --extcmd=<kommando>"
@@ -14872,10 +15235,6 @@ msgstr "inget <kommando> angavs för --extcmd=<kommando>"
msgid "git env--helper --type=[bool|ulong] <options> <env-var>"
msgstr "git env--helper --type=[bool|ulong] <flaggor> <miljövariabel>"
-#: builtin/env--helper.c:42 builtin/hash-object.c:96
-msgid "type"
-msgstr "typ"
-
#: builtin/env--helper.c:46
msgid "default for git_env_*(...) to fall back on"
msgstr "standard för git_env_*(...) att falla tillbaka på"
@@ -14901,8 +15260,8 @@ msgstr ""
"\", inte \"%s\""
#: builtin/fast-export.c:29
-msgid "git fast-export [rev-list-opts]"
-msgstr "git fast-export [rev-list-flaggor]"
+msgid "git fast-export [<rev-list-opts>]"
+msgstr "git fast-export [<rev-list-flaggor>]"
#: builtin/fast-export.c:843
msgid "Error: Cannot export nested tags unless --mark-tags is specified."
@@ -14956,7 +15315,7 @@ msgstr "använd done-funktionen för att avsluta strömmen"
msgid "skip output of blob data"
msgstr "hoppa över skrivning av blob-data"
-#: builtin/fast-export.c:1196 builtin/log.c:1841
+#: builtin/fast-export.c:1196 builtin/log.c:1860
msgid "refspec"
msgstr "referensspecifikation"
@@ -14988,36 +15347,36 @@ msgstr "visa ursprungliga objekt-id för blobbar/incheckningar"
msgid "label tags with mark ids"
msgstr "märk taggar med märke-id"
-#: builtin/fast-import.c:3090
+#: builtin/fast-import.c:3097
#, c-format
msgid "Missing from marks for submodule '%s'"
msgstr "Saknar från-märken för undermodulen \"%s\""
-#: builtin/fast-import.c:3092
+#: builtin/fast-import.c:3099
#, c-format
msgid "Missing to marks for submodule '%s'"
msgstr "Saknar till-märken för undermodulen \"%s\""
-#: builtin/fast-import.c:3227
+#: builtin/fast-import.c:3234
#, c-format
msgid "Expected 'mark' command, got %s"
msgstr "Förväntade \"mark\"-kommando, fick %s"
-#: builtin/fast-import.c:3232
+#: builtin/fast-import.c:3239
#, c-format
msgid "Expected 'to' command, got %s"
msgstr "Förväntade \"to\"-kommando, fick %s"
-#: builtin/fast-import.c:3324
+#: builtin/fast-import.c:3331
msgid "Expected format name:filename for submodule rewrite option"
msgstr "Förvändae formatet namn:filnamn för undermodul-omskrivningsflaggan"
-#: builtin/fast-import.c:3379
+#: builtin/fast-import.c:3386
#, c-format
msgid "feature '%s' forbidden in input without --allow-unsafe-features"
msgstr "funktionen \"%s\" förbjuden i indata utan --allow-unsafe-features"
-#: builtin/fetch-pack.c:242
+#: builtin/fetch-pack.c:246
#, c-format
msgid "Lockfile created but not reported: %s"
msgstr "LÃ¥sfil skapad men inte rapporterad: %s"
@@ -15038,103 +15397,107 @@ msgstr "git fetch --multiple [<flaggor>] [(<arkiv> | <grupp>)...]"
msgid "git fetch --all [<options>]"
msgstr "git fetch --all [<flaggor>]"
-#: builtin/fetch.c:123
+#: builtin/fetch.c:124
msgid "fetch.parallel cannot be negative"
msgstr "fetch.parallel kan inte vara negativt"
-#: builtin/fetch.c:146 builtin/pull.c:189
+#: builtin/fetch.c:147 builtin/pull.c:189
msgid "fetch from all remotes"
msgstr "hämta från alla fjärrar"
-#: builtin/fetch.c:148 builtin/pull.c:249
+#: builtin/fetch.c:149 builtin/pull.c:249
msgid "set upstream for git pull/fetch"
msgstr "ställ in uppström för git pull/fetch"
-#: builtin/fetch.c:150 builtin/pull.c:192
+#: builtin/fetch.c:151 builtin/pull.c:192
msgid "append to .git/FETCH_HEAD instead of overwriting"
msgstr "lägg till i .git/FETCH_HEAD istället för att skriva över"
-#: builtin/fetch.c:152
+#: builtin/fetch.c:153
msgid "use atomic transaction to update references"
msgstr "använd atomiska transaktioner för att uppdatera referenser"
-#: builtin/fetch.c:154 builtin/pull.c:195
+#: builtin/fetch.c:155 builtin/pull.c:195
msgid "path to upload pack on remote end"
msgstr "sökväg till upload pack på fjärren"
-#: builtin/fetch.c:155
+#: builtin/fetch.c:156
msgid "force overwrite of local reference"
msgstr "tvinga överskrivning av lokal referens"
-#: builtin/fetch.c:157
+#: builtin/fetch.c:158
msgid "fetch from multiple remotes"
msgstr "hämta från flera fjärrar"
-#: builtin/fetch.c:159 builtin/pull.c:199
+#: builtin/fetch.c:160 builtin/pull.c:199
msgid "fetch all tags and associated objects"
msgstr "hämta alla taggar och associerade objekt"
-#: builtin/fetch.c:161
+#: builtin/fetch.c:162
msgid "do not fetch all tags (--no-tags)"
msgstr "hämta inte alla taggar (--no-tags)"
-#: builtin/fetch.c:163
+#: builtin/fetch.c:164
msgid "number of submodules fetched in parallel"
msgstr "antal undermoduler som hämtas parallellt"
-#: builtin/fetch.c:165
+#: builtin/fetch.c:166
msgid "modify the refspec to place all refs within refs/prefetch/"
msgstr ""
"modifiera referensspecifikationen så att alla referenser hamnar i refs/"
"prefetch/"
-#: builtin/fetch.c:167 builtin/pull.c:202
+#: builtin/fetch.c:168 builtin/pull.c:202
msgid "prune remote-tracking branches no longer on remote"
msgstr "rensa fjärrspårande grenar ej längre på fjärren"
-#: builtin/fetch.c:169
+#: builtin/fetch.c:170
msgid "prune local tags no longer on remote and clobber changed tags"
msgstr ""
"rensa lokala taggar inte längre på fjärren och skriv över ändrade taggar"
-#: builtin/fetch.c:170 builtin/fetch.c:195 builtin/pull.c:123
+#: builtin/fetch.c:171 builtin/fetch.c:199 builtin/pull.c:123
msgid "on-demand"
msgstr "on-demand"
-#: builtin/fetch.c:171
+#: builtin/fetch.c:172
msgid "control recursive fetching of submodules"
msgstr "styr rekursiv hämtning av undermoduler"
-#: builtin/fetch.c:176
+#: builtin/fetch.c:177
msgid "write fetched references to the FETCH_HEAD file"
msgstr "skriv hämtade referenser till FETCH_HEAD-filen"
-#: builtin/fetch.c:177 builtin/pull.c:210
+#: builtin/fetch.c:178 builtin/pull.c:210
msgid "keep downloaded pack"
msgstr "behåll hämtade paket"
-#: builtin/fetch.c:179
+#: builtin/fetch.c:180
msgid "allow updating of HEAD ref"
msgstr "tillåt uppdatering av HEAD-referens"
-#: builtin/fetch.c:182 builtin/fetch.c:188 builtin/pull.c:213
+#: builtin/fetch.c:183 builtin/fetch.c:189 builtin/pull.c:213
#: builtin/pull.c:222
msgid "deepen history of shallow clone"
msgstr "fördjupa historik för grund klon"
-#: builtin/fetch.c:184 builtin/pull.c:216
+#: builtin/fetch.c:185 builtin/pull.c:216
msgid "deepen history of shallow repository based on time"
msgstr "fördjupa historik för grund klon baserad på tid"
-#: builtin/fetch.c:190 builtin/pull.c:225
+#: builtin/fetch.c:191 builtin/pull.c:225
msgid "convert to a complete repository"
msgstr "konvertera till komplett arkiv"
-#: builtin/fetch.c:193
+#: builtin/fetch.c:194
+msgid "re-fetch without negotiating common commits"
+msgstr "hämta om utan att förhandla om gemensamma incheckningar"
+
+#: builtin/fetch.c:197
msgid "prepend this to submodule path output"
msgstr "lägg till i början av undermodulens sökvägsutdata"
-#: builtin/fetch.c:196
+#: builtin/fetch.c:200
msgid ""
"default for recursive fetching of submodules (lower priority than config "
"files)"
@@ -15142,106 +15505,101 @@ msgstr ""
"standard för rekursiv hämtning av undermoduler (lägre prioritet än "
"konfigurationsfiler)"
-#: builtin/fetch.c:200 builtin/pull.c:228
+#: builtin/fetch.c:204 builtin/pull.c:228
msgid "accept refs that update .git/shallow"
msgstr "tar emot referenser som uppdaterar .git/shallow"
-#: builtin/fetch.c:201 builtin/pull.c:230
+#: builtin/fetch.c:205 builtin/pull.c:230
msgid "refmap"
msgstr "referenskarta"
-#: builtin/fetch.c:202 builtin/pull.c:231
+#: builtin/fetch.c:206 builtin/pull.c:231
msgid "specify fetch refmap"
msgstr "ange referenskarta för \"fetch\""
-#: builtin/fetch.c:209 builtin/pull.c:244
+#: builtin/fetch.c:213 builtin/pull.c:244
msgid "report that we have only objects reachable from this object"
msgstr "rapportera att vi bara har objekt nåbara från detta objektet"
-#: builtin/fetch.c:211
+#: builtin/fetch.c:215
msgid "do not fetch a packfile; instead, print ancestors of negotiation tips"
msgstr "hämta inte paketfil; skriv istället förfäder till förhandlingstips"
-#: builtin/fetch.c:214 builtin/fetch.c:216
+#: builtin/fetch.c:218 builtin/fetch.c:220
msgid "run 'maintenance --auto' after fetching"
msgstr "kör \"maintenance --auto\" efter hämtning"
-#: builtin/fetch.c:218 builtin/pull.c:247
+#: builtin/fetch.c:222 builtin/pull.c:247
msgid "check for forced-updates on all updated branches"
msgstr "se efter tvingade uppdateringar i alla uppdaterade grenar"
-#: builtin/fetch.c:220
+#: builtin/fetch.c:224
msgid "write the commit-graph after fetching"
msgstr "skriv incheckingsgrafen efter hämtning"
-#: builtin/fetch.c:222
+#: builtin/fetch.c:226
msgid "accept refspecs from stdin"
msgstr "ta emot referenser från standard in"
-#: builtin/fetch.c:592
+#: builtin/fetch.c:618
msgid "couldn't find remote ref HEAD"
msgstr "kunde inte hitta fjärr-referensen HEAD"
-#: builtin/fetch.c:766
-#, c-format
-msgid "configuration fetch.output contains invalid value %s"
-msgstr "konfigurationen för fetch.output innehåller ogiltigt värde %s"
-
-#: builtin/fetch.c:867
+#: builtin/fetch.c:893
#, c-format
msgid "object %s not found"
msgstr "objektet %s hittades inte"
-#: builtin/fetch.c:871
+#: builtin/fetch.c:897
msgid "[up to date]"
msgstr "[àjour]"
-#: builtin/fetch.c:883 builtin/fetch.c:901 builtin/fetch.c:973
+#: builtin/fetch.c:909 builtin/fetch.c:927 builtin/fetch.c:999
msgid "[rejected]"
msgstr "[refuserad]"
-#: builtin/fetch.c:885
+#: builtin/fetch.c:911
msgid "can't fetch in current branch"
msgstr "kan inte hämta i aktuell gren"
-#: builtin/fetch.c:886
+#: builtin/fetch.c:912
msgid "checked out in another worktree"
msgstr "utcheckat i en annan arbetskatalog"
-#: builtin/fetch.c:896
+#: builtin/fetch.c:922
msgid "[tag update]"
msgstr "[uppdaterad tagg]"
-#: builtin/fetch.c:897 builtin/fetch.c:934 builtin/fetch.c:956
-#: builtin/fetch.c:968
+#: builtin/fetch.c:923 builtin/fetch.c:960 builtin/fetch.c:982
+#: builtin/fetch.c:994
msgid "unable to update local ref"
msgstr "kunde inte uppdatera lokal ref"
-#: builtin/fetch.c:901
+#: builtin/fetch.c:927
msgid "would clobber existing tag"
msgstr "skulle skriva över befintlig tagg"
-#: builtin/fetch.c:923
+#: builtin/fetch.c:949
msgid "[new tag]"
msgstr "[ny tagg]"
-#: builtin/fetch.c:926
+#: builtin/fetch.c:952
msgid "[new branch]"
msgstr "[ny gren]"
-#: builtin/fetch.c:929
+#: builtin/fetch.c:955
msgid "[new ref]"
msgstr "[ny ref]"
-#: builtin/fetch.c:968
+#: builtin/fetch.c:994
msgid "forced update"
msgstr "tvingad uppdatering"
-#: builtin/fetch.c:973
+#: builtin/fetch.c:999
msgid "non-fast-forward"
msgstr "ej snabbspolad"
-#: builtin/fetch.c:1076
+#: builtin/fetch.c:1102
msgid ""
"fetch normally indicates which branches had a forced update,\n"
"but that check has been disabled; to re-enable, use '--show-forced-updates'\n"
@@ -15252,7 +15610,7 @@ msgstr ""
"av; för att slå på igen, använd flaggan \"--show-forced-updates\" eller kör\n"
"\"git config fetch.showForcedUpdates true\""
-#: builtin/fetch.c:1080
+#: builtin/fetch.c:1106
#, c-format
msgid ""
"it took %.2f seconds to check forced updates; you can use\n"
@@ -15265,22 +15623,22 @@ msgstr ""
"showForcedUpdates\n"
"false\" för att undvika testet\n"
-#: builtin/fetch.c:1112
+#: builtin/fetch.c:1136
#, c-format
msgid "%s did not send all necessary objects\n"
msgstr "%s sände inte alla nödvändiga objekt\n"
-#: builtin/fetch.c:1141
+#: builtin/fetch.c:1156
#, c-format
msgid "rejected %s because shallow roots are not allowed to be updated"
msgstr "avvisade %s då grunda rötter inte tillåts uppdateras"
-#: builtin/fetch.c:1231 builtin/fetch.c:1379
+#: builtin/fetch.c:1259 builtin/fetch.c:1418
#, c-format
msgid "From %.*s\n"
msgstr "Från %.*s\n"
-#: builtin/fetch.c:1252
+#: builtin/fetch.c:1269
#, c-format
msgid ""
"some local refs could not be updated; try running\n"
@@ -15289,49 +15647,49 @@ msgstr ""
"vissa lokala referenser kunde inte uppdateras; testa att köra\n"
" \"git remote prune %s\" för att ta bort gamla grenar som står i konflikt"
-#: builtin/fetch.c:1349
+#: builtin/fetch.c:1377
#, c-format
msgid " (%s will become dangling)"
msgstr " (%s kommer bli dinglande)"
-#: builtin/fetch.c:1350
+#: builtin/fetch.c:1378
#, c-format
msgid " (%s has become dangling)"
msgstr " (%s har blivit dinglande)"
-#: builtin/fetch.c:1382
+#: builtin/fetch.c:1421
msgid "[deleted]"
msgstr "[borttagen]"
-#: builtin/fetch.c:1383 builtin/remote.c:1128
+#: builtin/fetch.c:1422 builtin/remote.c:1153
msgid "(none)"
msgstr "(ingen)"
-#: builtin/fetch.c:1405
+#: builtin/fetch.c:1446
#, c-format
msgid "refusing to fetch into branch '%s' checked out at '%s'"
msgstr "vägrar hämta till grenen \"%s\" som är utcheckad på \"%s\""
-#: builtin/fetch.c:1425
+#: builtin/fetch.c:1466
#, c-format
msgid "option \"%s\" value \"%s\" is not valid for %s"
msgstr "flaggan \"%s\" med värdet \"%s\" är inte giltigt för %s"
-#: builtin/fetch.c:1428
+#: builtin/fetch.c:1469
#, c-format
msgid "option \"%s\" is ignored for %s\n"
msgstr "flaggan \"%s\" ignoreras för %s\n"
-#: builtin/fetch.c:1455
+#: builtin/fetch.c:1496
#, c-format
msgid "the object %s does not exist"
msgstr "objektet %s finns inte"
-#: builtin/fetch.c:1643
+#: builtin/fetch.c:1748
msgid "multiple branches detected, incompatible with --set-upstream"
msgstr "flera grenar upptäcktes, inkompatibelt med --set-upstream"
-#: builtin/fetch.c:1655
+#: builtin/fetch.c:1760
#, c-format
msgid ""
"could not set upstream of HEAD to '%s' from '%s' when it does not point to "
@@ -15340,19 +15698,19 @@ msgstr ""
"kunde inte sätta uppström för HEAD till \"%s\" från \"%s\" när det inte "
"pekar mot någon gren."
-#: builtin/fetch.c:1668
+#: builtin/fetch.c:1773
msgid "not setting upstream for a remote remote-tracking branch"
msgstr "ställer inte in uppströmsgren för en fjärrspårande gren på fjärren"
-#: builtin/fetch.c:1670
+#: builtin/fetch.c:1775
msgid "not setting upstream for a remote tag"
msgstr "ställer inte in uppström för en fjärrtag"
-#: builtin/fetch.c:1672
+#: builtin/fetch.c:1777
msgid "unknown branch type"
msgstr "okänd grentyp"
-#: builtin/fetch.c:1674
+#: builtin/fetch.c:1779
msgid ""
"no source branch found;\n"
"you need to specify exactly one branch with the --set-upstream option"
@@ -15360,22 +15718,22 @@ msgstr ""
"hittade ingen källgren;\n"
"du måste ange exakt en gren med flaggan --set-upstream"
-#: builtin/fetch.c:1804 builtin/fetch.c:1867
+#: builtin/fetch.c:1904 builtin/fetch.c:1967
#, c-format
msgid "Fetching %s\n"
msgstr "Hämtar %s\n"
-#: builtin/fetch.c:1814 builtin/fetch.c:1869
+#: builtin/fetch.c:1914 builtin/fetch.c:1969
#, c-format
msgid "could not fetch %s"
msgstr "kunde inte hämta %s"
-#: builtin/fetch.c:1826
+#: builtin/fetch.c:1926
#, c-format
msgid "could not fetch '%s' (exit code: %d)\n"
msgstr "kunde inte hämta \"%s\" (felkod: %d)\n"
-#: builtin/fetch.c:1930
+#: builtin/fetch.c:2030
msgid ""
"no remote repository specified; please specify either a URL or a\n"
"remote name from which new revisions should be fetched"
@@ -15383,48 +15741,48 @@ msgstr ""
"inget fjärrarkiv angavs; ange antingen en URL eller namnet på ett\n"
"fjärrarkiv som nya incheckningar ska hämtas från"
-#: builtin/fetch.c:1966
+#: builtin/fetch.c:2066
msgid "you need to specify a tag name"
msgstr "du måste ange namnet på en tagg"
-#: builtin/fetch.c:2032
-msgid "--negotiate-only needs one or more --negotiate-tip=*"
-msgstr "--negotiate-only behöver en eller flera --negotiate-tip=*"
+#: builtin/fetch.c:2156
+msgid "--negotiate-only needs one or more --negotiation-tip=*"
+msgstr "--negotiate-only behöver en eller flera --negotiation-tip=*"
-#: builtin/fetch.c:2036
+#: builtin/fetch.c:2160
msgid "negative depth in --deepen is not supported"
msgstr "negativa djup stöds inte i --deepen"
-#: builtin/fetch.c:2045
+#: builtin/fetch.c:2169
msgid "--unshallow on a complete repository does not make sense"
msgstr "--unshallow kan inte användas på ett komplett arkiv"
-#: builtin/fetch.c:2062
+#: builtin/fetch.c:2186
msgid "fetch --all does not take a repository argument"
msgstr "fetch --all tar inte namnet på ett arkiv som argument"
-#: builtin/fetch.c:2064
+#: builtin/fetch.c:2188
msgid "fetch --all does not make sense with refspecs"
msgstr "fetch --all kan inte anges med referensspecifikationer"
-#: builtin/fetch.c:2073
+#: builtin/fetch.c:2197
#, c-format
msgid "no such remote or remote group: %s"
msgstr "fjärren eller fjärrgruppen finns inte: %s"
-#: builtin/fetch.c:2081
+#: builtin/fetch.c:2205
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:2097
+#: builtin/fetch.c:2221
msgid "must supply remote when using --negotiate-only"
msgstr "måste ange fjärr när --negotiate-only anges"
-#: builtin/fetch.c:2102
+#: builtin/fetch.c:2226
msgid "protocol does not support --negotiate-only, exiting"
msgstr "protokollet stöder inte --negotiate-only, avslutar"
-#: builtin/fetch.c:2121
+#: builtin/fetch.c:2246
msgid ""
"--filter can only be used with the remote configured in extensions."
"partialclone"
@@ -15432,11 +15790,11 @@ msgstr ""
"--filter kan endast användas med fjärren konfigurerad i extensions."
"partialclone"
-#: builtin/fetch.c:2125
+#: builtin/fetch.c:2250
msgid "--atomic can only be used when fetching from one remote"
msgstr "--atomic kan bara användas vid hämtning från en fjärr"
-#: builtin/fetch.c:2129
+#: builtin/fetch.c:2254
msgid "--stdin can only be used when fetching from one remote"
msgstr "--stdin kan bara användas vid hämtning fårn en fjärr"
@@ -15508,7 +15866,7 @@ msgstr "citera platshållare passande för Tcl"
msgid "show only <n> matched refs"
msgstr "visa endast <n> träffade refs"
-#: builtin/for-each-ref.c:42 builtin/tag.c:481
+#: builtin/for-each-ref.c:42 builtin/tag.c:482
msgid "respect format colors"
msgstr "använd formatfärger"
@@ -15704,7 +16062,7 @@ msgstr "Kontrollerar objektkataloger"
msgid "Checking %s link"
msgstr "Kontrollerar %s-länk"
-#: builtin/fsck.c:710 builtin/index-pack.c:859
+#: builtin/fsck.c:710 builtin/index-pack.c:862
#, c-format
msgid "invalid %s"
msgstr "ogiltigt %s"
@@ -15775,7 +16133,7 @@ msgstr "ta även hänsyn till paket och supplerande objekt"
msgid "check only connectivity"
msgstr "kontrollera endast konnektivitet"
-#: builtin/fsck.c:798 builtin/mktag.c:76
+#: builtin/fsck.c:798 builtin/mktag.c:75
msgid "enable more strict checking"
msgstr "aktivera striktare kontroll"
@@ -15805,6 +16163,118 @@ msgstr "%s: objekt saknas"
msgid "invalid parameter: expected sha1, got '%s'"
msgstr "ogiltig parameter: förväntade sha1, fick \"%s\""
+#: builtin/fsmonitor--daemon.c:13
+msgid "git fsmonitor--daemon start [<options>]"
+msgstr "git fsmonitor--daemon start [<flaggor>]"
+
+#: builtin/fsmonitor--daemon.c:14
+msgid "git fsmonitor--daemon run [<options>]"
+msgstr "git fsmonitor--daemon run [<flaggor>]"
+
+#: builtin/fsmonitor--daemon.c:15
+msgid "git fsmonitor--daemon stop"
+msgstr "git fsmonitor--daemon stop"
+
+#: builtin/fsmonitor--daemon.c:16
+msgid "git fsmonitor--daemon status"
+msgstr "git fsmonitor--daemon status"
+
+#: builtin/fsmonitor--daemon.c:38 builtin/fsmonitor--daemon.c:47
+#, c-format
+msgid "value of '%s' out of range: %d"
+msgstr "värdet för \"%s\" utanför intervallet: %d"
+
+#: builtin/fsmonitor--daemon.c:57
+#, c-format
+msgid "value of '%s' not bool or int: %d"
+msgstr "värdet för \"%s\" är inte bool eller int: %d"
+
+#: builtin/fsmonitor--daemon.c:99
+#, c-format
+msgid "fsmonitor-daemon is watching '%s'\n"
+msgstr "fsmonitor-daemon bevakar \"%s\"\n"
+
+#: builtin/fsmonitor--daemon.c:104
+#, c-format
+msgid "fsmonitor-daemon is not watching '%s'\n"
+msgstr "fsmonitor-daemon bevakar inte \"%s\"\n"
+
+#: builtin/fsmonitor--daemon.c:170
+#, c-format
+msgid "could not create fsmonitor cookie '%s'"
+msgstr "kunde inte skapa fsmonitor-kaka \"%s\""
+
+#: builtin/fsmonitor--daemon.c:753
+#, c-format
+msgid "fsmonitor: cookie_result '%d' != SEEN"
+msgstr "fsmonitor: cookie_result '%d' != SEEN"
+
+#: builtin/fsmonitor--daemon.c:1187
+#, c-format
+msgid "could not start IPC thread pool on '%s'"
+msgstr "kunde inte starta IPC-trådpol på \"%s\""
+
+#: builtin/fsmonitor--daemon.c:1199
+msgid "could not start fsmonitor listener thread"
+msgstr "kunde inte starta fsmonitor-lyssnartråd"
+
+#: builtin/fsmonitor--daemon.c:1297
+msgid "could not initialize listener thread"
+msgstr "kunde inte initiera lyssnartråd"
+
+#: builtin/fsmonitor--daemon.c:1328 builtin/fsmonitor--daemon.c:1383
+#, c-format
+msgid "fsmonitor--daemon is already running '%s'"
+msgstr "fsmonitor--daemon körs redan på \"%s\""
+
+#: builtin/fsmonitor--daemon.c:1332
+#, c-format
+msgid "running fsmonitor-daemon in '%s'\n"
+msgstr "kör fsmonitor-daemon i \"%s\"\n"
+
+#: builtin/fsmonitor--daemon.c:1387
+#, c-format
+msgid "starting fsmonitor-daemon in '%s'\n"
+msgstr "startar fsmonitor-daemon i \"%s\"\n"
+
+#: builtin/fsmonitor--daemon.c:1413
+msgid "daemon failed to start"
+msgstr "serverprocessen kunde inte startas"
+
+#: builtin/fsmonitor--daemon.c:1416
+msgid "daemon not online yet"
+msgstr "serverprocessen ännu inte operativ"
+
+#: builtin/fsmonitor--daemon.c:1419
+msgid "daemon terminated"
+msgstr "serverprocessen avslutades"
+
+#: builtin/fsmonitor--daemon.c:1429
+msgid "detach from console"
+msgstr "koppla från konsolen"
+
+#: builtin/fsmonitor--daemon.c:1432
+msgid "use <n> ipc worker threads"
+msgstr "använd <n> ipc-jobbtrådar"
+
+#: builtin/fsmonitor--daemon.c:1435
+msgid "max seconds to wait for background daemon startup"
+msgstr "max sekunder att vänta på att serverprocessen startar"
+
+#: builtin/fsmonitor--daemon.c:1449
+#, c-format
+msgid "invalid 'ipc-threads' value (%d)"
+msgstr "ogiltigt värde för \"ipc-threads\" (%d)"
+
+#: builtin/fsmonitor--daemon.c:1464
+#, c-format
+msgid "Unhandled subcommand '%s'"
+msgstr "Ej hanterat underkommando \"%s\""
+
+#: builtin/fsmonitor--daemon.c:1477
+msgid "fsmonitor--daemon not supported on this platform"
+msgstr "fsmonitor--daemon stöds inte på denna plattform"
+
#: builtin/gc.c:39
msgid "git gc [<options>]"
msgstr "git gc [<flaggor>]"
@@ -16053,8 +16523,8 @@ msgstr "misslyckades starta systemctl"
msgid "failed to run systemctl"
msgstr "misslyckades att köra systemctl"
-#: builtin/gc.c:2210 builtin/gc.c:2215 builtin/worktree.c:62
-#: builtin/worktree.c:944
+#: builtin/gc.c:2210 builtin/gc.c:2215 builtin/worktree.c:63
+#: builtin/worktree.c:1024
#, c-format
msgid "failed to delete '%s'"
msgstr "misslyckades ta bort \"%s\""
@@ -16102,16 +16572,16 @@ msgstr "git maintenance <underkommando> [<flaggor>]"
msgid "invalid subcommand: %s"
msgstr "felaktigt underkommando: %s"
-#: builtin/grep.c:30
+#: builtin/grep.c:32
msgid "git grep [<options>] [-e] <pattern> [<rev>...] [[--] <path>...]"
msgstr "git grep [<flaggor>] [-e] <mönster> [<rev>...] [[--] <sökväg>...]"
-#: builtin/grep.c:239
+#: builtin/grep.c:241
#, c-format
msgid "grep: failed to create thread: %s"
msgstr "grep: misslyckades skapa tråd. %s"
-#: builtin/grep.c:293
+#: builtin/grep.c:295
#, c-format
msgid "invalid number of threads specified (%d) for %s"
msgstr "felaktigt antal trådar angivet (%d) för %s"
@@ -16120,258 +16590,250 @@ msgstr "felaktigt antal trådar angivet (%d) för %s"
#. variable for tweaking threads, currently
#. grep.threads
#.
-#: builtin/grep.c:301 builtin/index-pack.c:1582 builtin/index-pack.c:1785
-#: builtin/pack-objects.c:3142
+#: builtin/grep.c:303 builtin/index-pack.c:1587 builtin/index-pack.c:1791
+#: builtin/pack-objects.c:3150
#, c-format
msgid "no threads support, ignoring %s"
msgstr "trådstöd saknas, ignorerar %s"
-#: builtin/grep.c:488 builtin/grep.c:617 builtin/grep.c:657
+#: builtin/grep.c:490 builtin/grep.c:619 builtin/grep.c:659
#, c-format
msgid "unable to read tree (%s)"
msgstr "kunde inte läsa träd (%s)"
-#: builtin/grep.c:672
+#: builtin/grep.c:674
#, c-format
msgid "unable to grep from object of type %s"
msgstr "kunde inte \"grep\" från objekt av typen %s"
-#: builtin/grep.c:752
+#: builtin/grep.c:754
#, c-format
msgid "switch `%c' expects a numerical value"
msgstr "flaggan \"%c\" antar ett numeriskt värde"
-#: builtin/grep.c:851
+#: builtin/grep.c:852
msgid "search in index instead of in the work tree"
msgstr "sök i indexet istället för i arbetskatalogen"
-#: builtin/grep.c:853
+#: builtin/grep.c:854
msgid "find in contents not managed by git"
msgstr "sök i innehåll som inte hanteras av git"
-#: builtin/grep.c:855
+#: builtin/grep.c:856
msgid "search in both tracked and untracked files"
msgstr "sök i både spårade och ospårade filer"
-#: builtin/grep.c:857
+#: builtin/grep.c:858
msgid "ignore files specified via '.gitignore'"
msgstr "ignorera filer angivna i \".gitignore\""
-#: builtin/grep.c:859
+#: builtin/grep.c:860
msgid "recursively search in each submodule"
msgstr "sök varje undermodul rekursivt"
-#: builtin/grep.c:862
+#: builtin/grep.c:863
msgid "show non-matching lines"
msgstr "visa rader som inte träffas"
-#: builtin/grep.c:864
+#: builtin/grep.c:865
msgid "case insensitive matching"
msgstr "skiftlägesokänslig sökning"
-#: builtin/grep.c:866
+#: builtin/grep.c:867
msgid "match patterns only at word boundaries"
msgstr "träffa endast mönster vid ordgränser"
-#: builtin/grep.c:868
+#: builtin/grep.c:869
msgid "process binary files as text"
msgstr "hantera binärfiler som text"
-#: builtin/grep.c:870
+#: builtin/grep.c:871
msgid "don't match patterns in binary files"
msgstr "träffa inte mönster i binärfiler"
-#: builtin/grep.c:873
+#: builtin/grep.c:874
msgid "process binary files with textconv filters"
msgstr "hantera binärfiler med textconv-filter"
-#: builtin/grep.c:875
+#: builtin/grep.c:876
msgid "search in subdirectories (default)"
msgstr "sök i underkataloger (standard)"
-#: builtin/grep.c:877
+#: builtin/grep.c:878
msgid "descend at most <depth> levels"
msgstr "gå som mest ned <djup> nivåer"
-#: builtin/grep.c:881
+#: builtin/grep.c:882
msgid "use extended POSIX regular expressions"
msgstr "använd utökade POSIX-reguljära uttryck"
-#: builtin/grep.c:884
+#: builtin/grep.c:885
msgid "use basic POSIX regular expressions (default)"
msgstr "använd grundläggande POSIX-reguljära uttryck (standard)"
-#: builtin/grep.c:887
+#: builtin/grep.c:888
msgid "interpret patterns as fixed strings"
msgstr "tolka mönster som fixerade strängar"
-#: builtin/grep.c:890
+#: builtin/grep.c:891
msgid "use Perl-compatible regular expressions"
msgstr "använd Perlkompatibla reguljära uttryck"
-#: builtin/grep.c:893
+#: builtin/grep.c:894
msgid "show line numbers"
msgstr "visa radnummer"
-#: builtin/grep.c:894
+#: builtin/grep.c:895
msgid "show column number of first match"
msgstr "visa kolumnnummer för första träff"
-#: builtin/grep.c:895
+#: builtin/grep.c:896
msgid "don't show filenames"
msgstr "visa inte filnamn"
-#: builtin/grep.c:896
+#: builtin/grep.c:897
msgid "show filenames"
msgstr "visa filnamn"
-#: builtin/grep.c:898
+#: builtin/grep.c:899
msgid "show filenames relative to top directory"
msgstr "visa filnamn relativa till toppkatalogen"
-#: builtin/grep.c:900
+#: builtin/grep.c:901
msgid "show only filenames instead of matching lines"
msgstr "visa endast filnamn istället för träffade rader"
-#: builtin/grep.c:902
+#: builtin/grep.c:903
msgid "synonym for --files-with-matches"
msgstr "synonym för --files-with-matches"
-#: builtin/grep.c:905
+#: builtin/grep.c:906
msgid "show only the names of files without match"
msgstr "visa endast namn på filer utan träffar"
-#: builtin/grep.c:907
+#: builtin/grep.c:908
msgid "print NUL after filenames"
msgstr "skriv NUL efter filnamn"
-#: builtin/grep.c:910
+#: builtin/grep.c:911
msgid "show only matching parts of a line"
msgstr "visa endast träffade delar av rader"
-#: builtin/grep.c:912
+#: builtin/grep.c:913
msgid "show the number of matches instead of matching lines"
msgstr "visa antal träffar istället för träffade rader"
-#: builtin/grep.c:913
+#: builtin/grep.c:914
msgid "highlight matches"
msgstr "ljusmarkera träffar"
-#: builtin/grep.c:915
+#: builtin/grep.c:916
msgid "print empty line between matches from different files"
msgstr "skriv tomma rader mellan träffar från olika filer"
-#: builtin/grep.c:917
+#: builtin/grep.c:918
msgid "show filename only once above matches from same file"
msgstr "visa filnamn endast en gång ovanför träffar från samma fil"
-#: builtin/grep.c:920
+#: builtin/grep.c:921
msgid "show <n> context lines before and after matches"
msgstr "visa <n> rader sammanhang före och efter träffar"
-#: builtin/grep.c:923
+#: builtin/grep.c:924
msgid "show <n> context lines before matches"
msgstr "visa <n> rader sammanhang före träffar"
-#: builtin/grep.c:925
+#: builtin/grep.c:926
msgid "show <n> context lines after matches"
msgstr "visa <n> rader sammanhang efter träffar"
-#: builtin/grep.c:927
+#: builtin/grep.c:928
msgid "use <n> worker threads"
msgstr "använd <n> jobbtrådar"
-#: builtin/grep.c:928
+#: builtin/grep.c:929
msgid "shortcut for -C NUM"
msgstr "genväg för -C NUM"
-#: builtin/grep.c:931
+#: builtin/grep.c:932
msgid "show a line with the function name before matches"
msgstr "visa en rad med funktionsnamnet före träffen"
-#: builtin/grep.c:933
+#: builtin/grep.c:934
msgid "show the surrounding function"
msgstr "visa den omkringliggande funktionen"
-#: builtin/grep.c:936
+#: builtin/grep.c:937
msgid "read patterns from file"
msgstr "läs mönster från fil"
-#: builtin/grep.c:938
+#: builtin/grep.c:939
msgid "match <pattern>"
msgstr "träffa <mönster>"
-#: builtin/grep.c:940
+#: builtin/grep.c:941
msgid "combine patterns specified with -e"
msgstr "kombinera mönster som anges med -e"
-#: builtin/grep.c:952
+#: builtin/grep.c:953
msgid "indicate hit with exit status without output"
msgstr "ange träff med slutstatuskod utan utdata"
-#: builtin/grep.c:954
+#: builtin/grep.c:955
msgid "show only matches from files that match all patterns"
msgstr "visa endast träffar från filer som träffar alla mönster"
-#: builtin/grep.c:957
+#: builtin/grep.c:958
msgid "pager"
msgstr "bläddrare"
-#: builtin/grep.c:957
+#: builtin/grep.c:958
msgid "show matching files in the pager"
msgstr "visa träffade filer i filbläddraren"
-#: builtin/grep.c:961
+#: builtin/grep.c:962
msgid "allow calling of grep(1) (ignored by this build)"
msgstr "tillåt anropa grep(1) (ignoreras av detta bygge)"
-#: builtin/grep.c:1027
+#: builtin/grep.c:1028
msgid "no pattern given"
msgstr "inget mönster angavs"
-#: builtin/grep.c:1063
+#: builtin/grep.c:1064
msgid "--no-index or --untracked cannot be used with revs"
msgstr "--no-index och --untracked kan inte användas med revisioner"
-#: builtin/grep.c:1071
+#: builtin/grep.c:1072
#, c-format
msgid "unable to resolve revision: %s"
msgstr "kan inte slå upp revision: %s"
-#: builtin/grep.c:1101
+#: builtin/grep.c:1102
msgid "--untracked not supported with --recurse-submodules"
msgstr "--untracked stöds inte med --recurse-submodules"
-#: builtin/grep.c:1105
+#: builtin/grep.c:1106
msgid "invalid option combination, ignoring --threads"
msgstr "ogiltig kombination av flaggor, ignorerar --threads"
-#: builtin/grep.c:1108 builtin/pack-objects.c:4059
+#: builtin/grep.c:1109 builtin/pack-objects.c:4084
msgid "no threads support, ignoring --threads"
msgstr "trådstöd saknas, ignorerar --threads"
-#: builtin/grep.c:1111 builtin/index-pack.c:1579 builtin/pack-objects.c:3139
+#: builtin/grep.c:1112 builtin/index-pack.c:1584 builtin/pack-objects.c:3147
#, c-format
msgid "invalid number of threads specified (%d)"
msgstr "felaktigt antal trådar angivet (%d)"
-#: builtin/grep.c:1145
+#: builtin/grep.c:1146
msgid "--open-files-in-pager only works on the worktree"
msgstr "--open-files-in-pager fungerar endast i arbetskatalogen"
-#: builtin/grep.c:1171
-msgid "--cached or --untracked cannot be used with --no-index"
-msgstr "--cached och --untracked kan inte användas med --no-index"
-
-#: builtin/grep.c:1174
-msgid "--untracked cannot be used with --cached"
-msgstr "--untracked kan inte användas med --cached"
-
-#: builtin/grep.c:1180
+#: builtin/grep.c:1179
msgid "--[no-]exclude-standard cannot be used for tracked contents"
msgstr "--[no-]exclude-standard kan inte användas för spårat innehåll"
-#: builtin/grep.c:1188
+#: builtin/grep.c:1187
msgid "both --cached and trees are given"
msgstr "både --cached och träd angavs"
@@ -16383,108 +16845,100 @@ msgstr ""
"git hash-object [-t <typ>] [-w] [--path=<fil> | --no-filters] [--stdin] [--] "
"<fil>..."
-#: builtin/hash-object.c:84
-msgid "git hash-object --stdin-paths"
-msgstr "git hash-object --stdin-paths"
-
-#: builtin/hash-object.c:96
+#: builtin/hash-object.c:97
msgid "object type"
msgstr "objekttyp"
-#: builtin/hash-object.c:97
+#: builtin/hash-object.c:98
msgid "write the object into the object database"
msgstr "skriv objektet till objektdatabasen"
-#: builtin/hash-object.c:99
+#: builtin/hash-object.c:100
msgid "read the object from stdin"
msgstr "läs objektet från standard in"
-#: builtin/hash-object.c:101
+#: builtin/hash-object.c:102
msgid "store file as is without filters"
msgstr "spara filen som den är utan filer"
-#: builtin/hash-object.c:102
+#: builtin/hash-object.c:103
msgid ""
"just hash any random garbage to create corrupt objects for debugging Git"
msgstr ""
"hasha slumpmässigt skräp för att skapa korrupta objekt för felsökning av Git"
-#: builtin/hash-object.c:103
+#: builtin/hash-object.c:104
msgid "process file as it were from this path"
msgstr "hantera filen som om den kom från sökvägen"
-#: builtin/help.c:55
+#: builtin/help.c:57
msgid "print all available commands"
msgstr "visa alla tillgängliga kommandon"
-#: builtin/help.c:57
+#: builtin/help.c:60
+msgid "show external commands in --all"
+msgstr "visa externa kommandon i --all"
+
+#: builtin/help.c:61
+msgid "show aliases in --all"
+msgstr "visa alias i --all"
+
+#: builtin/help.c:62
msgid "exclude guides"
msgstr "uteslut vägledningar"
-#: builtin/help.c:58
+#: builtin/help.c:63
msgid "show man page"
msgstr "visa manualsida"
-#: builtin/help.c:59
+#: builtin/help.c:64
msgid "show manual in web browser"
msgstr "visa manual i webbläsare"
-#: builtin/help.c:61
+#: builtin/help.c:66
msgid "show info page"
msgstr "visa info-sida"
-#: builtin/help.c:63
+#: builtin/help.c:68
msgid "print command description"
msgstr "visa kommandobeskrivning"
-#: builtin/help.c:65
+#: builtin/help.c:70
msgid "print list of useful guides"
msgstr "lista användbara vägledningar"
-#: builtin/help.c:67
+#: builtin/help.c:72
msgid "print all configuration variable names"
msgstr "visa namn på alla konfigurationsvariabler"
-#: builtin/help.c:78
-msgid ""
-"git help [-a|--all] [--[no-]verbose]]\n"
-" [[-i|--info] [-m|--man] [-w|--web]] [<command>]"
-msgstr ""
-"git help [-a|--all] [--[no-]verbose]]\n"
-" [[-i|--info] [-m|--man] [-w|--web]] [<kommando>]"
-
-#: builtin/help.c:80
-msgid "git help [-g|--guides]"
-msgstr "git help [-g|--guides]"
+#: builtin/help.c:84
+msgid "git help [[-i|--info] [-m|--man] [-w|--web]] [<command>]"
+msgstr "git help [[-i|--info] [-m|--man] [-w|--web]] [<kommando>]"
-#: builtin/help.c:81
-msgid "git help [-c|--config]"
-msgstr "git help [-c|--config]"
-
-#: builtin/help.c:196
+#: builtin/help.c:201
#, c-format
msgid "unrecognized help format '%s'"
msgstr "okänt hjälpformat: \"%s\""
-#: builtin/help.c:222
+#: builtin/help.c:227
msgid "Failed to start emacsclient."
msgstr "Misslyckades starta emacsclient."
-#: builtin/help.c:235
+#: builtin/help.c:240
msgid "Failed to parse emacsclient version."
msgstr "Kunde inte tolka emacsclient-version."
-#: builtin/help.c:243
+#: builtin/help.c:248
#, c-format
msgid "emacsclient version '%d' too old (< 22)."
msgstr "emacsclient version \"%d\" för gammal (< 22)."
-#: builtin/help.c:261 builtin/help.c:283 builtin/help.c:293 builtin/help.c:301
+#: builtin/help.c:266 builtin/help.c:288 builtin/help.c:298 builtin/help.c:306
#, c-format
msgid "failed to exec '%s'"
msgstr "exec misslyckades för \"%s\""
-#: builtin/help.c:339
+#: builtin/help.c:344
#, c-format
msgid ""
"'%s': path for unsupported man viewer.\n"
@@ -16493,7 +16947,7 @@ msgstr ""
"\"%s\": sökväg för man-visare som ej stöds.\n"
"Använd \"man.<verktyg>.cmd\" istället."
-#: builtin/help.c:351
+#: builtin/help.c:356
#, c-format
msgid ""
"'%s': cmd for supported man viewer.\n"
@@ -16502,42 +16956,58 @@ msgstr ""
"\"%s\": kommando för man-visare som stöds.\n"
"Använd \"man.<verktyg>.path\" istället."
-#: builtin/help.c:466
+#: builtin/help.c:471
#, c-format
msgid "'%s': unknown man viewer."
msgstr "\"%s\": okänd man-visare."
-#: builtin/help.c:482
+#: builtin/help.c:487
msgid "no man viewer handled the request"
msgstr "ingen man-visare hanterade förfrågan"
-#: builtin/help.c:489
+#: builtin/help.c:494
msgid "no info viewer handled the request"
msgstr "ingen info-visare hanterade förfrågan"
-#: builtin/help.c:550 builtin/help.c:561 git.c:348
+#: builtin/help.c:555 builtin/help.c:566 git.c:348
#, c-format
msgid "'%s' is aliased to '%s'"
msgstr "\"%s\" är ett alias för \"%s\""
-#: builtin/help.c:564 git.c:380
+#: builtin/help.c:569 git.c:380
#, c-format
msgid "bad alias.%s string: %s"
msgstr "felaktig alias.%s-sträng: %s"
-#: builtin/help.c:580
-msgid "this option doesn't take any other arguments"
-msgstr "flaggan tar inte några andra argument"
+#: builtin/help.c:611
+#, c-format
+msgid "the '%s' option doesn't take any non-option arguments"
+msgstr "flaggan \"%s\" tar inte några argument som inte är flaggor"
-#: builtin/help.c:601 builtin/help.c:628
+#: builtin/help.c:631
+msgid ""
+"the '--no-[external-commands|aliases]' options can only be used with '--all'"
+msgstr ""
+"flaggorna '--no-[external-commands|aliases]' kan endast användas med \"--all"
+"\""
+
+#: builtin/help.c:643 builtin/help.c:671
#, c-format
msgid "usage: %s%s"
msgstr "användning: %s%s"
-#: builtin/help.c:623
+#: builtin/help.c:666
msgid "'git help config' for more information"
msgstr "\"git help config\" för mer information"
+#: builtin/hook.c:10
+msgid "git hook run [--ignore-missing] <hook-name> [-- <hook-args>]"
+msgstr "git hook run [--ignore-missing] <krok-namn> [-- <krok-argument>]"
+
+#: builtin/hook.c:30
+msgid "silently ignore missing requested <hook-name>"
+msgstr "ignorera tyst om önskat <krok-namn> saknas"
+
#: builtin/index-pack.c:221
#, c-format
msgid "object type mismatch at %s"
@@ -16572,244 +17042,245 @@ msgstr "indataläsfel"
msgid "used more bytes than were available"
msgstr "använde fler byte än tillgängligt"
-#: builtin/index-pack.c:324 builtin/pack-objects.c:756
+#: builtin/index-pack.c:324 builtin/pack-objects.c:754
msgid "pack too large for current definition of off_t"
msgstr "paket för stort för nuvarande definition av off_t"
-#: builtin/index-pack.c:327 builtin/unpack-objects.c:95
-msgid "pack exceeds maximum allowed size"
-msgstr "paket är större än tillåten maximal storlek"
+#: builtin/index-pack.c:329
+#, c-format
+msgid "pack exceeds maximum allowed size (%s)"
+msgstr "paket är större än tillåten maximal storlek (%s)"
-#: builtin/index-pack.c:358
+#: builtin/index-pack.c:362
msgid "pack signature mismatch"
msgstr "paketsignatur stämmer inte överens"
-#: builtin/index-pack.c:360
+#: builtin/index-pack.c:364
#, c-format
msgid "pack version %<PRIu32> unsupported"
msgstr "paketversion %<PRIu32> stöds ej"
-#: builtin/index-pack.c:376
+#: builtin/index-pack.c:380
#, c-format
msgid "pack has bad object at offset %<PRIuMAX>: %s"
msgstr "paketet har felaktigt objekt vid index %<PRIuMAX>: %s"
-#: builtin/index-pack.c:482
+#: builtin/index-pack.c:485
#, c-format
msgid "inflate returned %d"
msgstr "inflate returnerade %d"
-#: builtin/index-pack.c:531
+#: builtin/index-pack.c:534
msgid "offset value overflow for delta base object"
msgstr "indexvärdespill för deltabasobjekt"
-#: builtin/index-pack.c:539
+#: builtin/index-pack.c:542
msgid "delta base offset is out of bound"
msgstr "deltabasindex utanför gränsen"
-#: builtin/index-pack.c:547
+#: builtin/index-pack.c:550
#, c-format
msgid "unknown object type %d"
msgstr "okänd objekttyp %d"
-#: builtin/index-pack.c:578
+#: builtin/index-pack.c:581
msgid "cannot pread pack file"
msgstr "kan inte utföra \"pread\" på paketfil"
-#: builtin/index-pack.c:580
+#: builtin/index-pack.c:583
#, c-format
msgid "premature end of pack file, %<PRIuMAX> byte missing"
msgid_plural "premature end of pack file, %<PRIuMAX> bytes missing"
msgstr[0] "för tidigt slut på paketfilen, %<PRIuMAX> byte saknas"
msgstr[1] "för tidigt slut på paketfilen, %<PRIuMAX> byte saknas"
-#: builtin/index-pack.c:606
+#: builtin/index-pack.c:609
msgid "serious inflate inconsistency"
msgstr "allvarlig inflate-inkonsekvens"
-#: builtin/index-pack.c:751 builtin/index-pack.c:757 builtin/index-pack.c:781
-#: builtin/index-pack.c:820 builtin/index-pack.c:829
+#: builtin/index-pack.c:754 builtin/index-pack.c:760 builtin/index-pack.c:784
+#: builtin/index-pack.c:823 builtin/index-pack.c:832
#, c-format
msgid "SHA1 COLLISION FOUND WITH %s !"
msgstr "SHA1-KOLLISION UPPTÄCKT VID %s !"
-#: builtin/index-pack.c:754 builtin/pack-objects.c:292
-#: builtin/pack-objects.c:352 builtin/pack-objects.c:458
+#: builtin/index-pack.c:757 builtin/pack-objects.c:290
+#: builtin/pack-objects.c:350 builtin/pack-objects.c:456
#, c-format
msgid "unable to read %s"
msgstr "kunde inte läsa %s"
-#: builtin/index-pack.c:818
+#: builtin/index-pack.c:821
#, c-format
msgid "cannot read existing object info %s"
msgstr "kan inte läsa information om befintligt objekt %s"
-#: builtin/index-pack.c:826
+#: builtin/index-pack.c:829
#, c-format
msgid "cannot read existing object %s"
msgstr "kan inte läsa befintligt objekt %s"
-#: builtin/index-pack.c:840
+#: builtin/index-pack.c:843
#, c-format
msgid "invalid blob object %s"
msgstr "ogiltigt blob-objekt %s"
-#: builtin/index-pack.c:843 builtin/index-pack.c:862
+#: builtin/index-pack.c:846 builtin/index-pack.c:865
msgid "fsck error in packed object"
msgstr "fsck-fel i packat objekt"
-#: builtin/index-pack.c:864
+#: builtin/index-pack.c:867
#, c-format
msgid "Not all child objects of %s are reachable"
msgstr "Inte alla barnobjekt för %s kan nås"
-#: builtin/index-pack.c:925 builtin/index-pack.c:972
+#: builtin/index-pack.c:928 builtin/index-pack.c:975
msgid "failed to apply delta"
msgstr "misslyckades tillämpa delta"
-#: builtin/index-pack.c:1156
+#: builtin/index-pack.c:1161
msgid "Receiving objects"
msgstr "Tar emot objekt"
-#: builtin/index-pack.c:1156
+#: builtin/index-pack.c:1161
msgid "Indexing objects"
msgstr "Skapar index för objekt"
-#: builtin/index-pack.c:1190
+#: builtin/index-pack.c:1195
msgid "pack is corrupted (SHA1 mismatch)"
msgstr "paketet är trasigt (SHA1 stämmer inte)"
-#: builtin/index-pack.c:1195
+#: builtin/index-pack.c:1200
msgid "cannot fstat packfile"
msgstr "kan inte utföra \"fstat\" på paketfil"
-#: builtin/index-pack.c:1198
+#: builtin/index-pack.c:1203
msgid "pack has junk at the end"
msgstr "paket har skräp i slutet"
-#: builtin/index-pack.c:1210
+#: builtin/index-pack.c:1215
msgid "confusion beyond insanity in parse_pack_objects()"
msgstr "förvirrad bortom vanvett i parse_pack_objects()"
-#: builtin/index-pack.c:1233
+#: builtin/index-pack.c:1238
msgid "Resolving deltas"
msgstr "Analyserar delta"
-#: builtin/index-pack.c:1244 builtin/pack-objects.c:2905
+#: builtin/index-pack.c:1249 builtin/pack-objects.c:2913
#, c-format
msgid "unable to create thread: %s"
msgstr "kunde inte skapa tråd: %s"
-#: builtin/index-pack.c:1277
+#: builtin/index-pack.c:1282
msgid "confusion beyond insanity"
msgstr "förvirrad bortom vanvett"
-#: builtin/index-pack.c:1283
+#: builtin/index-pack.c:1288
#, c-format
msgid "completed with %d local object"
msgid_plural "completed with %d local objects"
msgstr[0] "slutfördes med %d lokalt objekt"
msgstr[1] "slutfördes med %d lokala objekt"
-#: builtin/index-pack.c:1295
+#: builtin/index-pack.c:1300
#, c-format
msgid "Unexpected tail checksum for %s (disk corruption?)"
msgstr "Oväntad svanskontrollsumma för %s (trasig disk?)"
-#: builtin/index-pack.c:1299
+#: builtin/index-pack.c:1304
#, c-format
msgid "pack has %d unresolved delta"
msgid_plural "pack has %d unresolved deltas"
msgstr[0] "paketet har %d oanalyserat delta"
msgstr[1] "paketet har %d oanalyserade delta"
-#: builtin/index-pack.c:1323
+#: builtin/index-pack.c:1328
#, c-format
msgid "unable to deflate appended object (%d)"
msgstr "kunde inte utföra \"deflate\" på tillagt objekt (%d)"
-#: builtin/index-pack.c:1419
+#: builtin/index-pack.c:1423
#, c-format
msgid "local object %s is corrupt"
msgstr "lokalt objekt %s är trasigt"
-#: builtin/index-pack.c:1440
+#: builtin/index-pack.c:1445
#, c-format
msgid "packfile name '%s' does not end with '.%s'"
msgstr "paketfilnamnet \"%s\" slutar inte med \".%s\""
-#: builtin/index-pack.c:1464
+#: builtin/index-pack.c:1469
#, c-format
msgid "cannot write %s file '%s'"
msgstr "kan inte ta skriva %s-fil \"%s\""
-#: builtin/index-pack.c:1472
+#: builtin/index-pack.c:1477
#, c-format
msgid "cannot close written %s file '%s'"
msgstr "kan inte stänga skriven %s-fil \"%s\""
-#: builtin/index-pack.c:1489
+#: builtin/index-pack.c:1494
#, c-format
msgid "unable to rename temporary '*.%s' file to '%s'"
msgstr "kunde inte byta namn på temporär \"*.%s\"-fil till \"%s\""
-#: builtin/index-pack.c:1514
+#: builtin/index-pack.c:1519
msgid "error while closing pack file"
msgstr "fel vid stängning av paketfil"
-#: builtin/index-pack.c:1573 builtin/pack-objects.c:3150
+#: builtin/index-pack.c:1578 builtin/pack-objects.c:3158
#, c-format
msgid "bad pack.indexversion=%<PRIu32>"
msgstr "felaktig pack.indexversion=%<PRIu32>"
-#: builtin/index-pack.c:1643
+#: builtin/index-pack.c:1648
#, c-format
msgid "Cannot open existing pack file '%s'"
msgstr "Kan inte öppna befintlig paketfil \"%s\""
-#: builtin/index-pack.c:1645
+#: builtin/index-pack.c:1650
#, 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:1693
+#: builtin/index-pack.c:1698
#, 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:1700
+#: builtin/index-pack.c:1705
#, 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:1742
+#: builtin/index-pack.c:1748
msgid "Cannot come back to cwd"
msgstr "Kan inte gå tillbaka till arbetskatalogen (cwd)"
-#: builtin/index-pack.c:1796 builtin/index-pack.c:1799
-#: builtin/index-pack.c:1819 builtin/index-pack.c:1823
+#: builtin/index-pack.c:1802 builtin/index-pack.c:1805
+#: builtin/index-pack.c:1825 builtin/index-pack.c:1829
#, c-format
msgid "bad %s"
msgstr "felaktig %s"
-#: builtin/index-pack.c:1829 builtin/init-db.c:379 builtin/init-db.c:614
+#: builtin/index-pack.c:1835 builtin/init-db.c:379 builtin/init-db.c:614
#, c-format
msgid "unknown hash algorithm '%s'"
msgstr "okänd hashningsalgoritm \"%s\""
-#: builtin/index-pack.c:1850
+#: builtin/index-pack.c:1856
msgid "--stdin requires a git repository"
msgstr "--stdin kräver ett git-arkiv"
-#: builtin/index-pack.c:1867
+#: builtin/index-pack.c:1873
msgid "--verify with no packfile name given"
msgstr "--verify angavs utan paketfilnamn"
-#: builtin/index-pack.c:1933 builtin/unpack-objects.c:584
+#: builtin/index-pack.c:1939 builtin/unpack-objects.c:584
msgid "fsck error in pack objects"
msgstr "fsck-fel i packat objekt"
@@ -17018,40 +17489,40 @@ msgstr "--trailer med --only-input ger ingen mening"
msgid "no input file given for in-place editing"
msgstr "ingen indatafil angiven för redigering på plats"
-#: builtin/log.c:59
+#: builtin/log.c:60
msgid "git log [<options>] [<revision-range>] [[--] <path>...]"
msgstr "git log [<flaggor>] [<versionsintervall>] [[--] <sökväg>...]"
-#: builtin/log.c:60
+#: builtin/log.c:61
msgid "git show [<options>] <object>..."
msgstr "git show [<flaggor>] <objekt>..."
-#: builtin/log.c:113
+#: builtin/log.c:114
#, c-format
msgid "invalid --decorate option: %s"
msgstr "ogiltig flagga för --decorate: %s"
-#: builtin/log.c:180
+#: builtin/log.c:181
msgid "show source"
msgstr "visa källkod"
-#: builtin/log.c:181
+#: builtin/log.c:182
msgid "use mail map file"
msgstr "använd e-postmappningsfil"
-#: builtin/log.c:184
+#: builtin/log.c:185
msgid "only decorate refs that match <pattern>"
msgstr "dekorera endast referenser som motsvarar <mönster>"
-#: builtin/log.c:186
+#: builtin/log.c:187
msgid "do not decorate refs that match <pattern>"
msgstr "dekorera inte referenser som motsvarar <mönster>"
-#: builtin/log.c:187
+#: builtin/log.c:188
msgid "decorate options"
msgstr "dekoreringsflaggor"
-#: builtin/log.c:190
+#: builtin/log.c:191
msgid ""
"trace the evolution of line range <start>,<end> or function :<funcname> in "
"<file>"
@@ -17059,89 +17530,93 @@ msgstr ""
"spåra utvecklingen av radintervallet <start>,<slut> eller funktionen :"
"<funknamn> i <fil>"
-#: builtin/log.c:213
+#: builtin/log.c:214
msgid "-L<range>:<file> cannot be used with pathspec"
msgstr "-L<intervall>:<fil> kan inte användas med sökvägsspecifikation"
-#: builtin/log.c:321
+#: builtin/log.c:322
#, c-format
msgid "Final output: %d %s\n"
msgstr "Slututdata: %d %s\n"
-#: builtin/log.c:586
+#: builtin/log.c:429
+msgid "unable to create temporary object directory"
+msgstr "kunde inte skapa temporär objektkatalog"
+
+#: builtin/log.c:599
#, c-format
msgid "git show %s: bad file"
msgstr "git show %s: felaktig fil"
-#: builtin/log.c:601 builtin/log.c:691
+#: builtin/log.c:614 builtin/log.c:706
#, c-format
msgid "could not read object %s"
msgstr "kunde inte läsa objektet %s"
-#: builtin/log.c:716
+#: builtin/log.c:731
#, c-format
msgid "unknown type: %d"
msgstr "okänd typ: %d"
-#: builtin/log.c:861
+#: builtin/log.c:880
#, c-format
msgid "%s: invalid cover from description mode"
msgstr "%s: ogiltigt omslag från beskrivningsläge"
-#: builtin/log.c:868
+#: builtin/log.c:887
msgid "format.headers without value"
msgstr "format.headers utan värde"
-#: builtin/log.c:997
+#: builtin/log.c:1016
#, c-format
msgid "cannot open patch file %s"
msgstr "kan inte öppna patchfilen %s"
-#: builtin/log.c:1014
+#: builtin/log.c:1033
msgid "need exactly one range"
msgstr "behöver precis ett intervall"
-#: builtin/log.c:1024
+#: builtin/log.c:1043
msgid "not a range"
msgstr "inte ett intervall"
-#: builtin/log.c:1188
+#: builtin/log.c:1207
msgid "cover letter needs email format"
msgstr "omslagsbrevet behöver e-postformat"
-#: builtin/log.c:1194
+#: builtin/log.c:1213
msgid "failed to create cover-letter file"
msgstr "misslyckades skapa fil för omslagsbrev"
-#: builtin/log.c:1281
+#: builtin/log.c:1300
#, c-format
msgid "insane in-reply-to: %s"
msgstr "tokigt in-reply-to: %s"
-#: builtin/log.c:1308
+#: builtin/log.c:1327
msgid "git format-patch [<options>] [<since> | <revision-range>]"
msgstr "git format-patch [<flaggor>] [<sedan> | <revisionsintervall>]"
-#: builtin/log.c:1366
+#: builtin/log.c:1385
msgid "two output directories?"
msgstr "två utdatakataloger?"
-#: builtin/log.c:1517 builtin/log.c:2344 builtin/log.c:2346 builtin/log.c:2358
+#: builtin/log.c:1536 builtin/log.c:2369 builtin/log.c:2371 builtin/log.c:2383
#, c-format
msgid "unknown commit %s"
msgstr "okänd incheckning %s"
-#: builtin/log.c:1528 builtin/replace.c:58 builtin/replace.c:207
+#: builtin/log.c:1547 builtin/replace.c:58 builtin/replace.c:207
#: builtin/replace.c:210
#, c-format
msgid "failed to resolve '%s' as a valid ref"
msgstr "misslyckades slå upp \"%s\" som en giltig referens"
-#: builtin/log.c:1537
+#: builtin/log.c:1556
msgid "could not find exact merge base"
msgstr "kunde inte hitta exakt sammanslagningsbas"
-#: builtin/log.c:1547
+#: builtin/log.c:1566
msgid ""
"failed to get upstream, if you want to record base commit automatically,\n"
"please use git branch --set-upstream-to to track a remote branch.\n"
@@ -17151,272 +17626,276 @@ msgstr ""
"använd git branch --set-upstream-to för att spåra en fjärrgren.\n"
"Eller så kan du ange basincheckning med --base=<bas-inchecknings-id> manuellt"
-#: builtin/log.c:1570
+#: builtin/log.c:1589
msgid "failed to find exact merge base"
msgstr "kunde inte hitta exakt sammanslagningsbas"
-#: builtin/log.c:1587
+#: builtin/log.c:1606
msgid "base commit should be the ancestor of revision list"
msgstr "basincheckningen bör vara förfader till revisionslistan"
-#: builtin/log.c:1597
+#: builtin/log.c:1616
msgid "base commit shouldn't be in revision list"
msgstr "basincheckningen bör inte vara i revisionslistan"
-#: builtin/log.c:1655
+#: builtin/log.c:1674
msgid "cannot get patch id"
msgstr "kan inte hämta patch-id"
-#: builtin/log.c:1718
+#: builtin/log.c:1737
msgid "failed to infer range-diff origin of current series"
msgstr "misslyckades räkna ut intervalldiff-ursprung för aktuell serie"
-#: builtin/log.c:1720
+#: builtin/log.c:1739
#, c-format
msgid "using '%s' as range-diff origin of current series"
msgstr "använd \"%s\" som intervalldiff-ursprung för aktuell serie"
-#: builtin/log.c:1764
+#: builtin/log.c:1783
msgid "use [PATCH n/m] even with a single patch"
msgstr "använd [PATCH n/m] även för en ensam patch"
-#: builtin/log.c:1767
+#: builtin/log.c:1786
msgid "use [PATCH] even with multiple patches"
msgstr "använd [PATCH] även för flera patchar"
-#: builtin/log.c:1771
+#: builtin/log.c:1790
msgid "print patches to standard out"
msgstr "skriv patcharna på standard ut"
-#: builtin/log.c:1773
+#: builtin/log.c:1792
msgid "generate a cover letter"
msgstr "generera ett följebrev"
-#: builtin/log.c:1775
+#: builtin/log.c:1794
msgid "use simple number sequence for output file names"
msgstr "använd enkel nummersekvens för utdatafilnamn"
-#: builtin/log.c:1776
+#: builtin/log.c:1795
msgid "sfx"
msgstr "sfx"
-#: builtin/log.c:1777
+#: builtin/log.c:1796
msgid "use <sfx> instead of '.patch'"
msgstr "använd <sfx> istället för \".patch\""
-#: builtin/log.c:1779
+#: builtin/log.c:1798
msgid "start numbering patches at <n> instead of 1"
msgstr "börja numrera patchar på <n> istället för 1"
-#: builtin/log.c:1780
+#: builtin/log.c:1799
msgid "reroll-count"
msgstr "antal iterationer"
-#: builtin/log.c:1781
+#: builtin/log.c:1800
msgid "mark the series as Nth re-roll"
msgstr "markera serien som N:te försök"
-#: builtin/log.c:1783
+#: builtin/log.c:1802
msgid "max length of output filename"
msgstr "maximal längd för utdatafilnamn"
-#: builtin/log.c:1785
+#: builtin/log.c:1804
msgid "use [RFC PATCH] instead of [PATCH]"
msgstr "använd [RFC PATCH] istället för [PATCH]"
-#: builtin/log.c:1788
+#: builtin/log.c:1807
msgid "cover-from-description-mode"
msgstr "cover-from-description-läge"
-#: builtin/log.c:1789
+#: builtin/log.c:1808
msgid "generate parts of a cover letter based on a branch's description"
msgstr "skapa delar av omslagsbrevet baserat på grenbeskrivelsen"
-#: builtin/log.c:1791
+#: builtin/log.c:1810
msgid "use [<prefix>] instead of [PATCH]"
msgstr "använd [<prefix>] istället för [PATCH]"
-#: builtin/log.c:1794
+#: builtin/log.c:1813
msgid "store resulting files in <dir>"
msgstr "spara filerna i <katalog>"
-#: builtin/log.c:1797
+#: builtin/log.c:1816
msgid "don't strip/add [PATCH]"
msgstr "ta inte bort eller lägg till [PATCH]"
-#: builtin/log.c:1800
+#: builtin/log.c:1819
msgid "don't output binary diffs"
msgstr "skriv inte binära diffar"
-#: builtin/log.c:1802
+#: builtin/log.c:1821
msgid "output all-zero hash in From header"
msgstr "använd hashvärde med nollor i From-huvud"
-#: builtin/log.c:1804
+#: builtin/log.c:1823
msgid "don't include a patch matching a commit upstream"
msgstr "ta inte med patchar som motsvarar en uppströmsincheckning"
-#: builtin/log.c:1806
+#: builtin/log.c:1825
msgid "show patch format instead of default (patch + stat)"
msgstr "visa patchformat istället för standard (patch + stat)"
-#: builtin/log.c:1808
+#: builtin/log.c:1827
msgid "Messaging"
msgstr "E-post"
-#: builtin/log.c:1809
+#: builtin/log.c:1828
msgid "header"
msgstr "huvud"
-#: builtin/log.c:1810
+#: builtin/log.c:1829
msgid "add email header"
msgstr "lägg till e-posthuvud"
-#: builtin/log.c:1811 builtin/log.c:1812
+#: builtin/log.c:1830 builtin/log.c:1831
msgid "email"
msgstr "epost"
-#: builtin/log.c:1811
+#: builtin/log.c:1830
msgid "add To: header"
msgstr "lägg till mottagarhuvud (\"To:\")"
-#: builtin/log.c:1812
+#: builtin/log.c:1831
msgid "add Cc: header"
msgstr "lägg till kopiehuvud (\"Cc:\")"
-#: builtin/log.c:1813
+#: builtin/log.c:1832
msgid "ident"
msgstr "ident"
-#: builtin/log.c:1814
+#: builtin/log.c:1833
msgid "set From address to <ident> (or committer ident if absent)"
msgstr "sätt Från-adress till <ident> (eller incheckare om ident saknas)"
-#: builtin/log.c:1816
+#: builtin/log.c:1835
msgid "message-id"
msgstr "meddelande-id"
-#: builtin/log.c:1817
+#: builtin/log.c:1836
msgid "make first mail a reply to <message-id>"
msgstr "gör det första brevet ett svar till <meddelande-id>"
-#: builtin/log.c:1818 builtin/log.c:1821
+#: builtin/log.c:1837 builtin/log.c:1840
msgid "boundary"
msgstr "gräns"
-#: builtin/log.c:1819
+#: builtin/log.c:1838
msgid "attach the patch"
msgstr "bifoga patchen"
-#: builtin/log.c:1822
+#: builtin/log.c:1841
msgid "inline the patch"
msgstr "gör patchen ett inline-objekt"
-#: builtin/log.c:1826
+#: builtin/log.c:1845
msgid "enable message threading, styles: shallow, deep"
msgstr "aktivera brevtrådning, typer: shallow, deep"
-#: builtin/log.c:1828
+#: builtin/log.c:1847
msgid "signature"
msgstr "signatur"
-#: builtin/log.c:1829
+#: builtin/log.c:1848
msgid "add a signature"
msgstr "lägg till signatur"
-#: builtin/log.c:1830
+#: builtin/log.c:1849
msgid "base-commit"
msgstr "basincheckning"
-#: builtin/log.c:1831
+#: builtin/log.c:1850
msgid "add prerequisite tree info to the patch series"
msgstr "lägg till förhandskrävd trädinfo i patchserien"
-#: builtin/log.c:1834
+#: builtin/log.c:1853
msgid "add a signature from a file"
msgstr "lägg till signatur från fil"
-#: builtin/log.c:1835
+#: builtin/log.c:1854
msgid "don't print the patch filenames"
msgstr "visa inte filnamn för patchar"
-#: builtin/log.c:1837
+#: builtin/log.c:1856
msgid "show progress while generating patches"
msgstr "visa förloppsindikator medan patchar skapas"
-#: builtin/log.c:1839
+#: builtin/log.c:1858
msgid "show changes against <rev> in cover letter or single patch"
msgstr "visa ändringar mot <rev> i omslagsbrev eller ensam patch"
-#: builtin/log.c:1842
+#: builtin/log.c:1861
msgid "show changes against <refspec> in cover letter or single patch"
msgstr "visa ändringar mot <refspec> i omslagsbrev eller ensam patch"
-#: builtin/log.c:1844 builtin/range-diff.c:28
+#: builtin/log.c:1863 builtin/range-diff.c:28
msgid "percentage by which creation is weighted"
msgstr "procent som skapelse vägs med"
-#: builtin/log.c:1931
+#: builtin/log.c:1953
#, c-format
msgid "invalid ident line: %s"
msgstr "ogiltig ident-rad: %s"
-#: builtin/log.c:1956
+#: builtin/log.c:1978
msgid "--name-only does not make sense"
msgstr "kan inte använda --name-only"
-#: builtin/log.c:1958
+#: builtin/log.c:1980
msgid "--name-status does not make sense"
msgstr "kan inte använda --name-status"
-#: builtin/log.c:1960
+#: builtin/log.c:1982
msgid "--check does not make sense"
msgstr "kan inte använda --check"
-#: builtin/log.c:2104
+#: builtin/log.c:1984
+msgid "--remerge-diff does not make sense"
+msgstr "kan inte använda --remerge-diff"
+
+#: builtin/log.c:2129
msgid "--interdiff requires --cover-letter or single patch"
msgstr "--interdiff kräver --cover-letter eller ensam patch"
-#: builtin/log.c:2108
+#: builtin/log.c:2133
msgid "Interdiff:"
msgstr "Interdiff:"
-#: builtin/log.c:2109
+#: builtin/log.c:2134
#, c-format
msgid "Interdiff against v%d:"
msgstr "Interdiff mot v%d:"
-#: builtin/log.c:2119
+#: builtin/log.c:2144
msgid "--range-diff requires --cover-letter or single patch"
msgstr "--range-diff kräver --cover-letter eller ensam patch"
-#: builtin/log.c:2127
+#: builtin/log.c:2152
msgid "Range-diff:"
msgstr "Intervall-diff:"
-#: builtin/log.c:2128
+#: builtin/log.c:2153
#, c-format
msgid "Range-diff against v%d:"
msgstr "Intervall-diff mot v%d:"
-#: builtin/log.c:2139
+#: builtin/log.c:2164
#, c-format
msgid "unable to read signature file '%s'"
msgstr "kunde inte läsa signaturfil \"%s\""
-#: builtin/log.c:2175
+#: builtin/log.c:2200
msgid "Generating patches"
msgstr "Skapar patchar"
-#: builtin/log.c:2219
+#: builtin/log.c:2244
msgid "failed to create output files"
msgstr "misslyckades skapa utdatafiler"
-#: builtin/log.c:2279
+#: builtin/log.c:2304
msgid "git cherry [-v] [<upstream> [<head> [<limit>]]]"
msgstr "git cherry [-v] [<uppström> [<huvud> [<gräns>]]]"
-#: builtin/log.c:2333
+#: builtin/log.c:2358
#, c-format
msgid ""
"Could not find a tracked remote branch, please specify <upstream> manually.\n"
@@ -17510,10 +17989,6 @@ msgstr "lägg till git:s standardexkluderingar"
msgid "make the output relative to the project top directory"
msgstr "gör utdata relativ till projektets toppkatalog"
-#: builtin/ls-files.c:667
-msgid "recurse through submodules"
-msgstr "rekursera ner i undermoduler"
-
#: builtin/ls-files.c:669
msgid "if any <file> is not in the index, treat this as an error"
msgstr "om en <fil> inte är indexet, betrakta det som ett fel"
@@ -17552,7 +18027,7 @@ msgstr ""
msgid "do not print remote URL"
msgstr "visa inte fjärr-URL"
-#: builtin/ls-remote.c:61 builtin/ls-remote.c:63 builtin/rebase.c:1103
+#: builtin/ls-remote.c:61 builtin/ls-remote.c:63 builtin/rebase.c:1131
msgid "exec"
msgstr "exec"
@@ -17584,42 +18059,70 @@ msgstr "avsluta med felkod 2 om motsvarande referenser inte hittas"
msgid "show underlying ref in addition to the object pointed by it"
msgstr "visa underliggande referens och objektet det pekar på"
-#: builtin/ls-tree.c:30
+#: builtin/ls-tree.c:36
msgid "git ls-tree [<options>] <tree-ish> [<path>...]"
msgstr "git ls-tree [<flaggor>] <träd-igt> [<sökväg>...]"
-#: builtin/ls-tree.c:128
+#: builtin/ls-tree.c:54
+#, c-format
+msgid "could not get object info about '%s'"
+msgstr "kunde inte hämta objektinfo om \"%s\""
+
+#: builtin/ls-tree.c:79
+#, c-format
+msgid "bad ls-tree format: element '%s' does not start with '('"
+msgstr "felaktigt ls-tree-format: elementet \"%s\" börjar inte med \"(\""
+
+#: builtin/ls-tree.c:83
+#, c-format
+msgid "bad ls-tree format: element '%s' does not end in ')'"
+msgstr "felaktigt ls-tree-format: elementet \"%s\" slutar inte med \")\""
+
+#: builtin/ls-tree.c:109
+#, c-format
+msgid "bad ls-tree format: %%%.*s"
+msgstr "felaktigt ls-tree-format: %%%.*s"
+
+#: builtin/ls-tree.c:336
msgid "only show trees"
msgstr "visa endast träd"
-#: builtin/ls-tree.c:130
+#: builtin/ls-tree.c:338
msgid "recurse into subtrees"
msgstr "rekursera ner i underträd"
-#: builtin/ls-tree.c:132
+#: builtin/ls-tree.c:340
msgid "show trees when recursing"
msgstr "visa träd medan rekursering"
-#: builtin/ls-tree.c:135
+#: builtin/ls-tree.c:343
msgid "terminate entries with NUL byte"
msgstr "terminera poster med NUL-byte"
-#: builtin/ls-tree.c:136
+#: builtin/ls-tree.c:344
msgid "include object size"
msgstr "ta med objektstorlek"
-#: builtin/ls-tree.c:138 builtin/ls-tree.c:140
+#: builtin/ls-tree.c:346 builtin/ls-tree.c:348
msgid "list only filenames"
msgstr "visa endast filnamn"
-#: builtin/ls-tree.c:143
+#: builtin/ls-tree.c:350
+msgid "list only objects"
+msgstr "lista endast objekt"
+
+#: builtin/ls-tree.c:353
msgid "use full path names"
msgstr "använd fullständiga sökvägsnamn"
-#: builtin/ls-tree.c:145
+#: builtin/ls-tree.c:355
msgid "list entire tree; not just current directory (implies --full-name)"
msgstr "visa hela trädet; inte bara aktuell katalog (implicerar --full-name)"
+#: builtin/ls-tree.c:391
+msgid "--format can't be combined with other format-altering options"
+msgstr "--format kan inte kombineras med andra formatändrande flaggor"
+
#. TRANSLATORS: keep <> in "<" mail ">" info.
#: builtin/mailinfo.c:14
msgid "git mailinfo [<options>] <msg> <patch> < mail >info"
@@ -17669,7 +18172,11 @@ msgstr "åtgärd när citerad vagnretur hittas"
msgid "use headers in message's body"
msgstr "använd huvuden i brevkroppen"
-#: builtin/mailsplit.c:239
+#: builtin/mailsplit.c:227
+msgid "reading patches from stdin/tty..."
+msgstr "läser patchar från standard in/tty..."
+
+#: builtin/mailsplit.c:242
#, c-format
msgid "empty mbox: '%s'"
msgstr "tom mbox: \"%s\""
@@ -17694,23 +18201,23 @@ msgstr "git merge-base --is-ancestor <incheckning> <incheckning>"
msgid "git merge-base --fork-point <ref> [<commit>]"
msgstr "git merge-base --fork-point <ref> [<incheckning>]"
-#: builtin/merge-base.c:143
+#: builtin/merge-base.c:144
msgid "output all common ancestors"
msgstr "skriv ut alla gemensamma anfäder"
-#: builtin/merge-base.c:145
+#: builtin/merge-base.c:146
msgid "find ancestors for a single n-way merge"
msgstr "hitta anfader för enkel n-vägssammanslagning"
-#: builtin/merge-base.c:147
+#: builtin/merge-base.c:148
msgid "list revs not reachable from others"
msgstr "visa revisioner som inte kan nås från andra"
-#: builtin/merge-base.c:149
+#: builtin/merge-base.c:150
msgid "is the first one ancestor of the other?"
msgstr "är den första anfader till den andra?"
-#: builtin/merge-base.c:151
+#: builtin/merge-base.c:152
msgid "find where <commit> forked from reflog of <ref>"
msgstr "se var <incheckning> grenades av från referensloggen från <ref>"
@@ -17859,7 +18366,7 @@ msgid "verify that the named commit has a valid GPG signature"
msgstr "bekräfta att den namngivna incheckningen har en giltig GPG-signatur"
#: builtin/merge.c:280 builtin/notes.c:785 builtin/pull.c:172
-#: builtin/rebase.c:1117 builtin/revert.c:114
+#: builtin/rebase.c:1145 builtin/revert.c:114
msgid "strategy"
msgstr "strategi"
@@ -17994,73 +18501,73 @@ msgstr ""
"Rader som inleds med \"%c\" kommer ignoreras, och ett tomt meddelande\n"
"avbryter incheckningen.\n"
-#: builtin/merge.c:894
+#: builtin/merge.c:900
msgid "Empty commit message."
msgstr "Tomt incheckningsmeddelande."
-#: builtin/merge.c:909
+#: builtin/merge.c:915
#, c-format
msgid "Wonderful.\n"
msgstr "Underbart.\n"
-#: builtin/merge.c:970
+#: builtin/merge.c:976
#, c-format
msgid "Automatic merge failed; fix conflicts and then commit the result.\n"
msgstr ""
"Kunde inte slå ihop automatiskt; fixa konflikter och checka in resultatet.\n"
-#: builtin/merge.c:1009
+#: builtin/merge.c:1015
msgid "No current branch."
msgstr "Inte på någon gren."
-#: builtin/merge.c:1011
+#: builtin/merge.c:1017
msgid "No remote for the current branch."
msgstr "Ingen fjärr för aktuell gren."
-#: builtin/merge.c:1013
+#: builtin/merge.c:1019
msgid "No default upstream defined for the current branch."
msgstr "Ingen standarduppström angiven för aktuell gren."
-#: builtin/merge.c:1018
+#: builtin/merge.c:1024
#, c-format
msgid "No remote-tracking branch for %s from %s"
msgstr "Ingen fjärrspårande gren för %s från %s"
-#: builtin/merge.c:1075
+#: builtin/merge.c:1081
#, c-format
msgid "Bad value '%s' in environment '%s'"
msgstr "Felaktigt värde \"%s\" i miljövariabeln \"%s\""
-#: builtin/merge.c:1177
+#: builtin/merge.c:1183
#, c-format
msgid "not something we can merge in %s: %s"
msgstr "inte något vi kan slå ihop med %s: %s"
-#: builtin/merge.c:1211
+#: builtin/merge.c:1217
msgid "not something we can merge"
msgstr "inte något vi kan slå ihop"
-#: builtin/merge.c:1324
+#: builtin/merge.c:1330
msgid "--abort expects no arguments"
msgstr "--abort tar inga argument"
-#: builtin/merge.c:1328
+#: builtin/merge.c:1334
msgid "There is no merge to abort (MERGE_HEAD missing)."
msgstr "Ingen sammanslagning att avbryta (MERGE_HEAD saknas)."
-#: builtin/merge.c:1346
+#: builtin/merge.c:1352
msgid "--quit expects no arguments"
msgstr "--quit tar inga argument"
-#: builtin/merge.c:1359
+#: builtin/merge.c:1365
msgid "--continue expects no arguments"
msgstr "--continue tar inga argument"
-#: builtin/merge.c:1363
+#: builtin/merge.c:1369
msgid "There is no merge in progress (MERGE_HEAD missing)."
msgstr "Ingen sammanslagning pågår (MERGE_HEAD saknas)."
-#: builtin/merge.c:1379
+#: builtin/merge.c:1385
msgid ""
"You have not concluded your merge (MERGE_HEAD exists).\n"
"Please, commit your changes before you merge."
@@ -18068,7 +18575,7 @@ msgstr ""
"Du har inte avslutat sammanslagningen (MERGE_HEAD finns).\n"
"Checka in dina ändringar innan du slår ihop."
-#: builtin/merge.c:1386
+#: builtin/merge.c:1392
msgid ""
"You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists).\n"
"Please, commit your changes before you merge."
@@ -18076,85 +18583,81 @@ msgstr ""
"Du har inte avslutat din \"cherry-pick\" (CHERRY_PICK_HEAD finns).\n"
"Checka in dina ändringar innan du slår ihop."
-#: builtin/merge.c:1389
+#: builtin/merge.c:1395
msgid "You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists)."
msgstr "Du har inte avslutat din \"cherry-pick\" (CHERRY_PICK_HEAD finns)."
-#: builtin/merge.c:1421
+#: builtin/merge.c:1427
msgid "No commit specified and merge.defaultToUpstream not set."
msgstr "Ingen incheckning angiven och merge.defaultToUpstream är ej satt."
-#: builtin/merge.c:1438
+#: builtin/merge.c:1444
msgid "Squash commit into empty head not supported yet"
msgstr "Stöder inte en tillplattningsincheckning på ett tomt huvud ännu"
-#: builtin/merge.c:1440
+#: builtin/merge.c:1446
msgid "Non-fast-forward commit does not make sense into an empty head"
msgstr "Icke-snabbspolad incheckning kan inte användas med ett tomt huvud"
-#: builtin/merge.c:1445
+#: builtin/merge.c:1451
#, c-format
msgid "%s - not something we can merge"
msgstr "%s - inte något vi kan slå ihop"
-#: builtin/merge.c:1447
+#: builtin/merge.c:1453
msgid "Can merge only exactly one commit into empty head"
msgstr "Kan endast slå ihop en enda incheckning i ett tomt huvud"
-#: builtin/merge.c:1534
+#: builtin/merge.c:1540
msgid "refusing to merge unrelated histories"
msgstr "vägrar slå samman orelaterad historik"
-#: builtin/merge.c:1553
+#: builtin/merge.c:1559
#, c-format
msgid "Updating %s..%s\n"
msgstr "Uppdaterar %s..%s\n"
-#: builtin/merge.c:1601
+#: builtin/merge.c:1606
#, c-format
msgid "Trying really trivial in-index merge...\n"
msgstr "Försöker riktigt enkel sammanslagning i indexet...\n"
-#: builtin/merge.c:1608
+#: builtin/merge.c:1613
#, c-format
msgid "Nope.\n"
msgstr "Nej.\n"
-#: builtin/merge.c:1667 builtin/merge.c:1733
+#: builtin/merge.c:1671 builtin/merge.c:1737
#, c-format
msgid "Rewinding the tree to pristine...\n"
msgstr "Återspolar trädet till orört...\n"
-#: builtin/merge.c:1671
+#: builtin/merge.c:1675
#, c-format
msgid "Trying merge strategy %s...\n"
msgstr "Försöker sammanslagningsstrategin %s...\n"
-#: builtin/merge.c:1723
+#: builtin/merge.c:1727
#, c-format
msgid "No merge strategy handled the merge.\n"
msgstr "Ingen sammanslagningsstrategi hanterade sammanslagningen.\n"
-#: builtin/merge.c:1725
+#: builtin/merge.c:1729
#, c-format
msgid "Merge with strategy %s failed.\n"
msgstr "Sammanslagning med strategin %s misslyckades.\n"
-#: builtin/merge.c:1735
+#: builtin/merge.c:1739
#, c-format
msgid "Using the %s strategy to prepare resolving by hand.\n"
msgstr "Använder strategin %s för att förbereda lösning för hand.\n"
-#: builtin/merge.c:1749
+#: builtin/merge.c:1753
#, c-format
msgid "Automatic merge went well; stopped before committing as requested\n"
msgstr ""
"Automatisk sammanslagning lyckades; stoppar före incheckning som önskat\n"
-#: builtin/mktag.c:10
-msgid "git mktag"
-msgstr "git mktag"
-
#: builtin/mktag.c:27
#, c-format
msgid "warning: tag input does not pass fsck: %s"
@@ -18180,22 +18683,18 @@ msgstr "kunde inte läsa det taggade objektet \"%s\""
msgid "object '%s' tagged as '%s', but is a '%s' type"
msgstr "objektet \"%s\" taggat som \"%s\", men är av typen \"%s\""
-#: builtin/mktag.c:98
+#: builtin/mktag.c:97
msgid "tag on stdin did not pass our strict fsck check"
msgstr "tagg på stdin godkänns inte av vår strikta fsck-kontroll"
-#: builtin/mktag.c:101
+#: builtin/mktag.c:100
msgid "tag on stdin did not refer to a valid object"
msgstr "taggen på stdin pekar inte på ett giltigt objekt"
-#: builtin/mktag.c:104 builtin/tag.c:242
+#: builtin/mktag.c:103 builtin/tag.c:243
msgid "unable to write tag file"
msgstr "kunde inte skriva tagg-filen"
-#: builtin/mktree.c:66
-msgid "git mktree [-z] [--missing] [--batch]"
-msgstr "git mktree [-z] [--missing] [--batch]"
-
#: builtin/mktree.c:154
msgid "input is NUL terminated"
msgstr "indata är NUL-terminerad"
@@ -18352,52 +18851,56 @@ msgstr "%s, källa=%s, mål=%s"
msgid "Renaming %s to %s\n"
msgstr "Byter namn på %s till %s\n"
-#: builtin/mv.c:314 builtin/remote.c:790 builtin/repack.c:857
+#: builtin/mv.c:314 builtin/remote.c:812 builtin/repack.c:861
#, c-format
msgid "renaming '%s' failed"
msgstr "misslyckades byta namn på \"%s\""
-#: builtin/name-rev.c:474
+#: builtin/name-rev.c:524
msgid "git name-rev [<options>] <commit>..."
msgstr "git name-rev [<flaggor>] <incheckning>..."
-#: builtin/name-rev.c:475
+#: builtin/name-rev.c:525
msgid "git name-rev [<options>] --all"
msgstr "git name-rev [<flaggor>] --all"
-#: builtin/name-rev.c:476
-msgid "git name-rev [<options>] --stdin"
-msgstr "git name-rev [<flaggor>] --stdin"
+#: builtin/name-rev.c:526
+msgid "git name-rev [<options>] --annotate-stdin"
+msgstr "git name-rev [<flaggor>] --annotate-stdin"
-#: builtin/name-rev.c:533
+#: builtin/name-rev.c:583
msgid "print only ref-based names (no object names)"
msgstr "skriv endast referensbaserade namn (inga objektnamn)"
-#: builtin/name-rev.c:534
+#: builtin/name-rev.c:584
msgid "only use tags to name the commits"
msgstr "använd endast taggar för att namnge incheckningar"
-#: builtin/name-rev.c:536
+#: builtin/name-rev.c:586
msgid "only use refs matching <pattern>"
msgstr "använd endast referenser som motsvarar <mönster>"
-#: builtin/name-rev.c:538
+#: builtin/name-rev.c:588
msgid "ignore refs matching <pattern>"
msgstr "ignorera referenser som motsvarar <mönster>"
-#: builtin/name-rev.c:540
+#: builtin/name-rev.c:590
msgid "list all commits reachable from all refs"
msgstr "lista alla incheckningar som kan nås alla referenser"
-#: builtin/name-rev.c:541
-msgid "read from stdin"
-msgstr "läs från standard in"
+#: builtin/name-rev.c:591
+msgid "deprecated: use annotate-stdin instead"
+msgstr "avråds: använd annotate-stdin istället"
-#: builtin/name-rev.c:542
+#: builtin/name-rev.c:592
+msgid "annotate text from stdin"
+msgstr "annotera text från standard in"
+
+#: builtin/name-rev.c:593
msgid "allow to print `undefined` names (default)"
msgstr "tillåt att skriva \"odefinierade\" namn (standard)"
-#: builtin/name-rev.c:548
+#: builtin/name-rev.c:599
msgid "dereference tags in the input (internal use)"
msgstr "avreferera taggar i indata (används internt)"
@@ -18441,14 +18944,6 @@ msgstr ""
"git notes [--ref <anteckningsref>] merge [-v | -q] [-s <strategi>] "
"<anteckningsref>"
-#: builtin/notes.c:35
-msgid "git notes merge --commit [-v | -q]"
-msgstr "git notes merge --commit [-v | -q]"
-
-#: builtin/notes.c:36
-msgid "git notes merge --abort [-v | -q]"
-msgstr "git notes merge --abort [-v | -q]"
-
#: builtin/notes.c:37
msgid "git notes [--ref <notes-ref>] remove [<object>...]"
msgstr "git notes [--ref <anteckningsref>] remove [<objekt>...]"
@@ -18509,10 +19004,6 @@ msgstr "git notes remove [<objekt>]"
msgid "git notes prune [<options>]"
msgstr "git notes prune [<flaggor>]"
-#: builtin/notes.c:92
-msgid "git notes get-ref"
-msgstr "git notes get-ref"
-
#: builtin/notes.c:97
msgid "Write/edit the notes for the following object:"
msgstr "Skriv/redigera anteckningar för följande objekt:"
@@ -18544,7 +19035,7 @@ msgstr "kunde inte skriva anteckningsobjekt"
msgid "the note contents have been left in %s"
msgstr "anteckningens innehåll har lämnats kvar i %s"
-#: builtin/notes.c:240 builtin/tag.c:581
+#: builtin/notes.c:240 builtin/tag.c:582
#, c-format
msgid "could not open or read '%s'"
msgstr "kunde inte öppna eller läsa \"%s\""
@@ -18584,13 +19075,6 @@ msgstr "misslyckades kopiera anteckningar från \"%s\" till \"%s\""
msgid "refusing to %s notes in %s (outside of refs/notes/)"
msgstr "vägrar utföra \"%s\" på anteckningar i %s (utanför refs/notes/)"
-#: builtin/notes.c:374 builtin/notes.c:429 builtin/notes.c:507
-#: builtin/notes.c:519 builtin/notes.c:596 builtin/notes.c:663
-#: builtin/notes.c:813 builtin/notes.c:965 builtin/notes.c:987
-#: builtin/prune-packed.c:25 builtin/receive-pack.c:2487 builtin/tag.c:591
-msgid "too many arguments"
-msgstr "för många argument"
-
#: builtin/notes.c:387 builtin/notes.c:676
#, c-format
msgid "no note found for object %s."
@@ -18779,7 +19263,7 @@ msgstr ""
"%s och checka in resultatet med \"git notes merge --commit\", eller avbryt "
"sammanslagningen med \"git notes merge --abort\".\n"
-#: builtin/notes.c:899 builtin/tag.c:594
+#: builtin/notes.c:899 builtin/tag.c:595
#, c-format
msgid "Failed to resolve '%s' as a valid ref."
msgstr "Kunde inte slå upp \"%s\" som en giltig referens."
@@ -18797,7 +19281,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:956 builtin/prune.c:144 builtin/worktree.c:147
+#: builtin/notes.c:956 builtin/prune.c:144 builtin/worktree.c:148
msgid "do not remove, show only"
msgstr "ta inte bort, bara visa"
@@ -18813,7 +19297,7 @@ msgstr "anteckningar-ref"
msgid "use notes from <notes-ref>"
msgstr "använd anteckningar från <anteckningsref>"
-#: builtin/notes.c:1036 builtin/stash.c:1818
+#: builtin/notes.c:1036 builtin/stash.c:1802
#, c-format
msgid "unknown subcommand: %s"
msgstr "okänt underkommando: %s"
@@ -18830,7 +19314,7 @@ msgid ""
msgstr ""
"git pack-objects [<flaggor>...] <basnamn> [< <reflista> | < <objektlista>]"
-#: builtin/pack-objects.c:572
+#: builtin/pack-objects.c:570
#, c-format
msgid ""
"write_reuse_object: could not locate %s, expected at offset %<PRIuMAX> in "
@@ -18839,111 +19323,111 @@ msgstr ""
"write_reuse_object: kunde inte hitta %s, förväntat på position %<PRIuMAX> i "
"paketet %s"
-#: builtin/pack-objects.c:580
+#: builtin/pack-objects.c:578
#, c-format
msgid "bad packed object CRC for %s"
msgstr "felaktig CRC för packat objekt %s"
-#: builtin/pack-objects.c:591
+#: builtin/pack-objects.c:589
#, c-format
msgid "corrupt packed object for %s"
msgstr "trasigt packat objekt för %s"
-#: builtin/pack-objects.c:722
+#: builtin/pack-objects.c:720
#, c-format
msgid "recursive delta detected for object %s"
msgstr "rekursivt delta upptäcktes för objektet %s"
-#: builtin/pack-objects.c:941
+#: builtin/pack-objects.c:939
#, c-format
msgid "ordered %u objects, expected %<PRIu32>"
msgstr "ordnade %u objekt, förväntade %<PRIu32>"
-#: builtin/pack-objects.c:1036
+#: builtin/pack-objects.c:1034
#, c-format
msgid "expected object at offset %<PRIuMAX> in pack %s"
msgstr "förväntade objekt på position %<PRIuMAX> i paketet %s"
-#: builtin/pack-objects.c:1160
+#: builtin/pack-objects.c:1158
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:1173
+#: builtin/pack-objects.c:1171
msgid "Writing objects"
msgstr "Skriver objekt"
-#: builtin/pack-objects.c:1235 builtin/update-index.c:90
+#: builtin/pack-objects.c:1243 builtin/update-index.c:90
#, c-format
msgid "failed to stat %s"
msgstr "misslyckades ta status på %s"
-#: builtin/pack-objects.c:1268
+#: builtin/pack-objects.c:1276
msgid "failed to write bitmap index"
msgstr "misslyckade skriva bitkarteindex"
-#: builtin/pack-objects.c:1294
+#: builtin/pack-objects.c:1302
#, c-format
msgid "wrote %<PRIu32> objects while expecting %<PRIu32>"
msgstr "skrev %<PRIu32> objekt medan %<PRIu32> förväntades"
-#: builtin/pack-objects.c:1536
+#: builtin/pack-objects.c:1544
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:1984
+#: builtin/pack-objects.c:1992
#, 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:1993
+#: builtin/pack-objects.c:2001
#, 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:2274
+#: builtin/pack-objects.c:2282
msgid "Counting objects"
msgstr "Räknar objekt"
-#: builtin/pack-objects.c:2439
+#: builtin/pack-objects.c:2447
#, c-format
msgid "unable to parse object header of %s"
msgstr "kunde inte tolka objekthuvud för %s"
-#: builtin/pack-objects.c:2509 builtin/pack-objects.c:2525
-#: builtin/pack-objects.c:2535
+#: builtin/pack-objects.c:2517 builtin/pack-objects.c:2533
+#: builtin/pack-objects.c:2543
#, c-format
msgid "object %s cannot be read"
msgstr "objektet %s kunde inte läsas"
-#: builtin/pack-objects.c:2512 builtin/pack-objects.c:2539
+#: builtin/pack-objects.c:2520 builtin/pack-objects.c:2547
#, 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:2549
+#: builtin/pack-objects.c:2557
msgid "suboptimal pack - out of memory"
msgstr "icke-optimalt pack - minnet slut"
-#: builtin/pack-objects.c:2864
+#: builtin/pack-objects.c:2872
#, c-format
msgid "Delta compression using up to %d threads"
msgstr "Deltakomprimering använder upp till %d trådar"
-#: builtin/pack-objects.c:3003
+#: builtin/pack-objects.c:3011
#, 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:3089
+#: builtin/pack-objects.c:3097
msgid "Compressing objects"
msgstr "Komprimerar objekt"
-#: builtin/pack-objects.c:3095
+#: builtin/pack-objects.c:3103
msgid "inconsistency with delta count"
msgstr "deltaräknaren är inkonsekvent"
-#: builtin/pack-objects.c:3174
+#: builtin/pack-objects.c:3182
#, c-format
msgid ""
"value of uploadpack.blobpackfileuri must be of the form '<object-hash> <pack-"
@@ -18952,25 +19436,25 @@ msgstr ""
"värdet på uploadpack.blobpackfileuri måste vara på formen '<objekt-hash> "
"<paket-hash> <uri>' (fick '%s')"
-#: builtin/pack-objects.c:3177
+#: builtin/pack-objects.c:3185
#, 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:3212
+#: builtin/pack-objects.c:3220
#, c-format
msgid "could not get type of object %s in pack %s"
msgstr "kunde inte hämta typ för objektet %s i paketet %s"
-#: builtin/pack-objects.c:3340 builtin/pack-objects.c:3351
-#: builtin/pack-objects.c:3365
+#: builtin/pack-objects.c:3348 builtin/pack-objects.c:3359
+#: builtin/pack-objects.c:3373
#, c-format
msgid "could not find pack '%s'"
msgstr "kunde inte hitta paketet \"%s\""
-#: builtin/pack-objects.c:3408
+#: builtin/pack-objects.c:3416
#, c-format
msgid ""
"expected edge object ID, got garbage:\n"
@@ -18979,7 +19463,7 @@ msgstr ""
"förväntade kant-objekt-id, fick skräp:\n"
" %s"
-#: builtin/pack-objects.c:3414
+#: builtin/pack-objects.c:3422
#, c-format
msgid ""
"expected object ID, got garbage:\n"
@@ -18988,244 +19472,240 @@ msgstr ""
"förväntade objekt-id, fick skräp:\n"
" %s"
-#: builtin/pack-objects.c:3507
-msgid "invalid value for --missing"
-msgstr "ogiltigt värde för --missing"
-
-#: builtin/pack-objects.c:3532 builtin/pack-objects.c:3619
+#: builtin/pack-objects.c:3540 builtin/pack-objects.c:3627
msgid "cannot open pack index"
msgstr "kan inte öppna paketfilen"
-#: builtin/pack-objects.c:3541
+#: builtin/pack-objects.c:3549
#, 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:3627
+#: builtin/pack-objects.c:3635
msgid "unable to force loose object"
msgstr "kan inte tvinga lösa objekt"
-#: builtin/pack-objects.c:3757
+#: builtin/pack-objects.c:3763
#, c-format
msgid "not a rev '%s'"
msgstr "inte en referens \"%s\""
-#: builtin/pack-objects.c:3760 builtin/rev-parse.c:1061
+#: builtin/pack-objects.c:3766 builtin/rev-parse.c:1061
#, c-format
msgid "bad revision '%s'"
msgstr "felaktig revision \"%s\""
-#: builtin/pack-objects.c:3788
+#: builtin/pack-objects.c:3794
msgid "unable to add recent objects"
msgstr "kan inte lägga till nya objekt"
-#: builtin/pack-objects.c:3841
+#: builtin/pack-objects.c:3847
#, c-format
msgid "unsupported index version %s"
msgstr "indexversionen %s stöds ej"
-#: builtin/pack-objects.c:3845
+#: builtin/pack-objects.c:3851
#, c-format
msgid "bad index version '%s'"
msgstr "felaktig indexversion \"%s\""
-#: builtin/pack-objects.c:3884
+#: builtin/pack-objects.c:3907
msgid "<version>[,<offset>]"
msgstr "<version>[,<offset>]"
-#: builtin/pack-objects.c:3885
+#: builtin/pack-objects.c:3908
msgid "write the pack index file in the specified idx format version"
msgstr "skriv paketindexfilen i angiven indexformatversion"
-#: builtin/pack-objects.c:3888
+#: builtin/pack-objects.c:3911
msgid "maximum size of each output pack file"
msgstr "maximal storlek på varje utdatapaketfil"
-#: builtin/pack-objects.c:3890
+#: builtin/pack-objects.c:3913
msgid "ignore borrowed objects from alternate object store"
msgstr "ignorera lånade objekt från supplerande objektlager"
-#: builtin/pack-objects.c:3892
+#: builtin/pack-objects.c:3915
msgid "ignore packed objects"
msgstr "ignorera packade objekt"
-#: builtin/pack-objects.c:3894
+#: builtin/pack-objects.c:3917
msgid "limit pack window by objects"
msgstr "begränsa paketfönster efter objekt"
-#: builtin/pack-objects.c:3896
+#: builtin/pack-objects.c:3919
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:3898
+#: builtin/pack-objects.c:3921
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:3900
+#: builtin/pack-objects.c:3923
msgid "reuse existing deltas"
msgstr "återanvänd befintliga delta"
-#: builtin/pack-objects.c:3902
+#: builtin/pack-objects.c:3925
msgid "reuse existing objects"
msgstr "återanvänd befintliga objekt"
-#: builtin/pack-objects.c:3904
+#: builtin/pack-objects.c:3927
msgid "use OFS_DELTA objects"
msgstr "använd OFS_DELTA-objekt"
-#: builtin/pack-objects.c:3906
+#: builtin/pack-objects.c:3929
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:3908
+#: builtin/pack-objects.c:3931
msgid "do not create an empty pack output"
msgstr "försök inte skapa tom paketutdata"
-#: builtin/pack-objects.c:3910
+#: builtin/pack-objects.c:3933
msgid "read revision arguments from standard input"
msgstr "läs revisionsargument från standard in"
-#: builtin/pack-objects.c:3912
+#: builtin/pack-objects.c:3935
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:3915
+#: builtin/pack-objects.c:3938
msgid "include objects reachable from any reference"
msgstr "ta med objekt som kan nås från någon referens"
-#: builtin/pack-objects.c:3918
+#: builtin/pack-objects.c:3941
msgid "include objects referred by reflog entries"
msgstr "ta med objekt som refereras från referensloggposter"
-#: builtin/pack-objects.c:3921
+#: builtin/pack-objects.c:3944
msgid "include objects referred to by the index"
msgstr "ta med objekt som refereras från indexet"
-#: builtin/pack-objects.c:3924
+#: builtin/pack-objects.c:3947
msgid "read packs from stdin"
msgstr "läs paket från standard in"
-#: builtin/pack-objects.c:3926
+#: builtin/pack-objects.c:3949
msgid "output pack to stdout"
msgstr "skriv paket på standard ut"
-#: builtin/pack-objects.c:3928
+#: builtin/pack-objects.c:3951
msgid "include tag objects that refer to objects to be packed"
msgstr "ta med taggobjekt som refererar objekt som ska packas"
-#: builtin/pack-objects.c:3930
+#: builtin/pack-objects.c:3953
msgid "keep unreachable objects"
msgstr "behåll onåbara objekt"
-#: builtin/pack-objects.c:3932
+#: builtin/pack-objects.c:3955
msgid "pack loose unreachable objects"
msgstr "packa lösa onåbara objekt"
-#: builtin/pack-objects.c:3934
+#: builtin/pack-objects.c:3957
msgid "unpack unreachable objects newer than <time>"
msgstr "packa upp onåbara objekt nyare än <tid>"
-#: builtin/pack-objects.c:3937
+#: builtin/pack-objects.c:3960
msgid "use the sparse reachability algorithm"
msgstr "använd gles-nåbarhetsalgoritmen"
-#: builtin/pack-objects.c:3939
+#: builtin/pack-objects.c:3962
msgid "create thin packs"
msgstr "skapa tunna paket"
-#: builtin/pack-objects.c:3941
+#: builtin/pack-objects.c:3964
msgid "create packs suitable for shallow fetches"
msgstr "skapa packfiler lämpade för grunda hämtningar"
-#: builtin/pack-objects.c:3943
+#: builtin/pack-objects.c:3966
msgid "ignore packs that have companion .keep file"
msgstr "ignorera paket som har tillhörande .keep-fil"
-#: builtin/pack-objects.c:3945
+#: builtin/pack-objects.c:3968
msgid "ignore this pack"
msgstr "ignorera detta paket"
-#: builtin/pack-objects.c:3947
+#: builtin/pack-objects.c:3970
msgid "pack compression level"
msgstr "komprimeringsgrad för paket"
-#: builtin/pack-objects.c:3949
+#: builtin/pack-objects.c:3972
msgid "do not hide commits by grafts"
msgstr "göm inte incheckningar med ympningar (\"grafts\")"
-#: builtin/pack-objects.c:3951
+#: builtin/pack-objects.c:3974
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:3953
+#: builtin/pack-objects.c:3976
msgid "write a bitmap index together with the pack index"
msgstr "använd bitkartindex tillsammans med packindexet"
-#: builtin/pack-objects.c:3957
+#: builtin/pack-objects.c:3980
msgid "write a bitmap index if possible"
msgstr "skriv bitkartindex om möjligt"
-#: builtin/pack-objects.c:3961
+#: builtin/pack-objects.c:3984
msgid "handling for missing objects"
msgstr "hantering av saknade objekt"
-#: builtin/pack-objects.c:3964
+#: builtin/pack-objects.c:3987
msgid "do not pack objects in promisor packfiles"
msgstr "packa inte objekt i kontraktspackfiler"
-#: builtin/pack-objects.c:3966
+#: builtin/pack-objects.c:3989
msgid "respect islands during delta compression"
msgstr "respektera öar under deltakomprimering"
-#: builtin/pack-objects.c:3968
+#: builtin/pack-objects.c:3991
msgid "protocol"
msgstr "protokoll"
-#: builtin/pack-objects.c:3969
+#: builtin/pack-objects.c:3992
msgid "exclude any configured uploadpack.blobpackfileuri with this protocol"
msgstr ""
"uteslut redan konfigurerade uploadpack.blobpackfileuri med detta protokoll"
-#: builtin/pack-objects.c:4002
+#: builtin/pack-objects.c:4027
#, 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:4007
+#: builtin/pack-objects.c:4032
#, 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:4063
+#: builtin/pack-objects.c:4088
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:4065
+#: builtin/pack-objects.c:4090
msgid "minimum pack size limit is 1 MiB"
msgstr "minsta packstorlek är 1 MiB"
-#: builtin/pack-objects.c:4070
+#: builtin/pack-objects.c:4095
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:4079
+#: builtin/pack-objects.c:4104
msgid "cannot use --filter without --stdout"
msgstr "kan inte använda --filter utan --stdout"
-#: builtin/pack-objects.c:4081
+#: builtin/pack-objects.c:4106
msgid "cannot use --filter with --stdin-packs"
msgstr "kan inte använda --filter med --stdin-packs"
-#: builtin/pack-objects.c:4085
+#: builtin/pack-objects.c:4110
msgid "cannot use internal rev list with --stdin-packs"
msgstr "kan inte använda intern revisionslista med --stdin-packs"
-#: builtin/pack-objects.c:4144
+#: builtin/pack-objects.c:4169
msgid "Enumerating objects"
msgstr "Räknar upp objekt"
-#: builtin/pack-objects.c:4180
+#: builtin/pack-objects.c:4210
#, c-format
msgid ""
"Total %<PRIu32> (delta %<PRIu32>), reused %<PRIu32> (delta %<PRIu32>), pack-"
@@ -19260,10 +19740,6 @@ msgstr "packa allt"
msgid "prune loose refs (default)"
msgstr "ta bort lösa referenser (standard)"
-#: builtin/prune-packed.c:6
-msgid "git prune-packed [-n | --dry-run] [-q | --quiet]"
-msgstr "git prune-packed [-n | --dry-run] [-q | --quiet]"
-
#: builtin/prune.c:14
msgid "git prune [-n] [-v] [--progress] [--expire <time>] [--] [<head>...]"
msgstr "git prune [-n] [-v] [--progress] [--expire <tid>] [--] [<huvud>...]"
@@ -19284,11 +19760,6 @@ msgstr "begränsa vandring av objekt utanför kontraktspackfiler."
msgid "cannot prune in a precious-objects repo"
msgstr "kan inte rensa i ett \"precious-objekt\"-arkiv"
-#: builtin/pull.c:45 builtin/pull.c:47
-#, c-format
-msgid "Invalid value for %s: %s"
-msgstr "Felaktigt värde för %s: %s"
-
#: builtin/pull.c:67
msgid "git pull [<options>] [<repository> [<refspec>...]]"
msgstr "git pull [<flaggor>] [<arkiv> [<refspec>...]]"
@@ -19313,7 +19784,7 @@ msgstr "tillåt snabbspolning"
msgid "control use of pre-merge-commit and commit-msg hooks"
msgstr "styr användning av pre-merge-commit- och commit-msg-krokar"
-#: builtin/pull.c:171 parse-options.h:340
+#: builtin/pull.c:171 parse-options.h:371
msgid "automatically stash/stash pop before and after"
msgstr "utför automatiskt stash/stash pop före och efter"
@@ -19329,11 +19800,6 @@ msgstr "tvinga överskrivning av lokal gren"
msgid "number of submodules pulled in parallel"
msgstr "antal undermoduler som hämtas parallellt"
-#: builtin/pull.c:321
-#, c-format
-msgid "Invalid value for pull.ff: %s"
-msgstr "Felaktigt värde för pull.ff: %s"
-
#: builtin/pull.c:449
msgid ""
"There is no candidate for rebasing against among the refs that you just "
@@ -19368,7 +19834,7 @@ msgstr ""
"gren. Eftersom det inte är den fjärr som är konfigurerad som\n"
"standard för aktuell gren måste du ange en gren på kommandoraden."
-#: builtin/pull.c:460 builtin/rebase.c:951
+#: builtin/pull.c:460 builtin/rebase.c:978
msgid "You are not currently on a branch."
msgstr "Du är inte på någon gren för närvarande."
@@ -19385,16 +19851,16 @@ msgid "See git-pull(1) for details."
msgstr "Se git-pull(1) för detaljer."
#: builtin/pull.c:467 builtin/pull.c:473 builtin/pull.c:482
-#: builtin/rebase.c:957
+#: builtin/rebase.c:984
msgid "<remote>"
msgstr "<fjärr>"
#: builtin/pull.c:467 builtin/pull.c:482 builtin/pull.c:487
-#: contrib/scalar/scalar.c:375
+#: contrib/scalar/scalar.c:374
msgid "<branch>"
msgstr "<gren>"
-#: builtin/pull.c:475 builtin/rebase.c:949
+#: builtin/pull.c:475 builtin/rebase.c:976
msgid "There is no tracking information for the current branch."
msgstr "Det finns ingen spårningsinformation för aktuell gren."
@@ -19450,19 +19916,19 @@ msgstr ""
"eller --ff-only på kommandoraden för att överstyra det konfigurerade\n"
"förvalet vid körning.\n"
-#: builtin/pull.c:1046
+#: builtin/pull.c:1047
msgid "Updating an unborn branch with changes added to the index."
msgstr "Uppdaterar en ofödd gren med ändringar som lagts till i indexet."
-#: builtin/pull.c:1050
+#: builtin/pull.c:1051
msgid "pull with rebase"
msgstr "pull med ombasering"
-#: builtin/pull.c:1051
+#: builtin/pull.c:1052
msgid "please commit or stash them."
msgstr "checka in eller använd \"stash\" på dem."
-#: builtin/pull.c:1076
+#: builtin/pull.c:1077
#, c-format
msgid ""
"fetch updated the current branch head.\n"
@@ -19473,7 +19939,7 @@ msgstr ""
"snabbspolar din arbetskatalog från\n"
"incheckningen %s."
-#: builtin/pull.c:1082
+#: builtin/pull.c:1083
#, c-format
msgid ""
"Cannot fast-forward your working tree.\n"
@@ -19490,23 +19956,23 @@ msgstr ""
"$ git reset --hard\n"
"för att återgå."
-#: builtin/pull.c:1097
+#: builtin/pull.c:1098
msgid "Cannot merge multiple branches into empty head."
msgstr "Kan inte slå ihop flera grenar i ett tomt huvud."
-#: builtin/pull.c:1102
+#: builtin/pull.c:1103
msgid "Cannot rebase onto multiple branches."
msgstr "Kan inte ombasera ovanpå flera grenar."
-#: builtin/pull.c:1104
+#: builtin/pull.c:1105
msgid "Cannot fast-forward to multiple branches."
msgstr "Kan inte snabbspola till flera grenar."
-#: builtin/pull.c:1119
+#: builtin/pull.c:1120
msgid "Need to specify how to reconcile divergent branches."
msgstr "Måste ange hur avvikande grenar skall förlikas."
-#: builtin/pull.c:1133
+#: builtin/pull.c:1134
msgid "cannot rebase with locally recorded submodule modifications"
msgstr "kan inte ombasera med lokalt lagrade ändringar i undermoful"
@@ -19682,7 +20148,7 @@ msgstr "Sänder till %s\n"
msgid "failed to push some refs to '%s'"
msgstr "misslyckades sända vissa referenser till \"%s\""
-#: builtin/push.c:544 builtin/submodule--helper.c:3259
+#: builtin/push.c:544 builtin/submodule--helper.c:3377
msgid "repository"
msgstr "arkiv"
@@ -19921,11 +20387,11 @@ msgstr "felsök unpack-trees"
msgid "suppress feedback messages"
msgstr "undertryck återkopplingsmeddelanden"
-#: builtin/read-tree.c:183
+#: builtin/read-tree.c:190
msgid "You need to resolve your current index first"
msgstr "Du måste lösa ditt befintliga index först"
-#: builtin/rebase.c:35
+#: builtin/rebase.c:36
msgid ""
"git rebase [-i] [options] [--exec <cmd>] [--onto <newbase> | --keep-base] "
"[<upstream> [<branch>]]"
@@ -19933,54 +20399,50 @@ msgstr ""
"git rebase [-i] [flaggor] [--exec <kmd>] [--onto <nybas> | --keep-base] "
"[<uppström> [<gren>]]"
-#: builtin/rebase.c:37
+#: builtin/rebase.c:38
msgid ""
"git rebase [-i] [options] [--exec <cmd>] [--onto <newbase>] --root [<branch>]"
msgstr ""
"git rebase [-i] [flaggor] [--exec <kmd>] [--onto <nybas>] --root [<gren>]"
-#: builtin/rebase.c:39
-msgid "git rebase --continue | --abort | --skip | --edit-todo"
-msgstr "git rebase --continue | --abort | --skip | --edit-todo"
-
-#: builtin/rebase.c:230
+#: builtin/rebase.c:231
#, c-format
msgid "could not create temporary %s"
msgstr "kunde inte skapa temporär %s"
-#: builtin/rebase.c:236
+#: builtin/rebase.c:237
msgid "could not mark as interactive"
msgstr "kunde inte markera som interaktiv"
-#: builtin/rebase.c:289
+#: builtin/rebase.c:290
msgid "could not generate todo list"
msgstr "Kunde inte skapa attgöra-lista"
-#: builtin/rebase.c:331
+#: builtin/rebase.c:332
msgid "a base commit must be provided with --upstream or --onto"
msgstr "en basincheckning måste anges med --upstream eller --onto"
-#: builtin/rebase.c:390
+#: builtin/rebase.c:391
#, c-format
msgid "%s requires the merge backend"
msgstr "%s kräver \"merge\"-bakändan"
-#: builtin/rebase.c:432
+#: builtin/rebase.c:433
#, c-format
msgid "could not get 'onto': '%s'"
msgstr "kunde inte hämta \"onto\": \"%s\""
-#: builtin/rebase.c:449
+#: builtin/rebase.c:450
#, c-format
msgid "invalid orig-head: '%s'"
msgstr "ogiltigt orig-head: \"%s\""
-#: builtin/rebase.c:474
+#: builtin/rebase.c:475
#, c-format
msgid "ignoring invalid allow_rerere_autoupdate: '%s'"
msgstr "ignorera ogiltigt allow_rerere_autoupdate: \"%s\""
-#: builtin/rebase.c:597
+#: builtin/rebase.c:600
msgid ""
"Resolve all conflicts manually, mark them as resolved with\n"
"\"git add/rm <conflicted_files>\", then run \"git rebase --continue\".\n"
@@ -19994,7 +20456,7 @@ msgstr ""
"För att avbryta och återgå till där du var före ombaseringen, kör \"git "
"rebase --abort\"."
-#: builtin/rebase.c:680
+#: builtin/rebase.c:685
#, c-format
msgid ""
"\n"
@@ -20013,7 +20475,12 @@ msgstr ""
"\n"
"Därför kan inte git ombasera dessa."
-#: builtin/rebase.c:925
+#: builtin/rebase.c:836
+#, c-format
+msgid "could not switch to %s"
+msgstr "kunde inte växla till %s"
+
+#: builtin/rebase.c:952
#, c-format
msgid ""
"unrecognized empty type '%s'; valid values are \"drop\", \"keep\", and \"ask"
@@ -20021,7 +20488,7 @@ msgid ""
msgstr ""
"okänd tom-typ \"%s\"; giltiga värden är \"drop\", \"keep\" och \"ask\"."
-#: builtin/rebase.c:943
+#: builtin/rebase.c:970
#, c-format
msgid ""
"%s\n"
@@ -20038,7 +20505,7 @@ msgstr ""
" git rebase '<gren>'\n"
"\n"
-#: builtin/rebase.c:959
+#: builtin/rebase.c:986
#, c-format
msgid ""
"If you wish to set tracking information for this branch you can do so with:\n"
@@ -20051,180 +20518,180 @@ msgstr ""
" git branch --set-upstream-to=%s/<gren> %s\n"
"\n"
-#: builtin/rebase.c:989
+#: builtin/rebase.c:1016
msgid "exec commands cannot contain newlines"
msgstr "exec-kommandon kan inte innehålla nyradstecken"
-#: builtin/rebase.c:993
+#: builtin/rebase.c:1020
msgid "empty exec command"
msgstr "tomt exec-kommando"
-#: builtin/rebase.c:1023
+#: builtin/rebase.c:1051
msgid "rebase onto given branch instead of upstream"
msgstr "ombasera mot given grenen istället för uppström"
-#: builtin/rebase.c:1025
+#: builtin/rebase.c:1053
msgid "use the merge-base of upstream and branch as the current base"
msgstr "använd sammanslagningsbasen mellan uppströms och gren som aktuell bas"
-#: builtin/rebase.c:1027
+#: builtin/rebase.c:1055
msgid "allow pre-rebase hook to run"
msgstr "tillåt pre-rebase-krok att köra"
-#: builtin/rebase.c:1029
+#: builtin/rebase.c:1057
msgid "be quiet. implies --no-stat"
msgstr "var tyst. implicerar --no-stat"
-#: builtin/rebase.c:1032
+#: builtin/rebase.c:1060
msgid "display a diffstat of what changed upstream"
msgstr "vis diffstat för vad som ändrats uppströms"
-#: builtin/rebase.c:1035
+#: builtin/rebase.c:1063
msgid "do not show diffstat of what changed upstream"
msgstr "visa inte en diffstat för vad som ändrats uppströms"
-#: builtin/rebase.c:1038
+#: builtin/rebase.c:1066
msgid "add a Signed-off-by trailer to each commit"
msgstr "lägg \"Signed-off-by:\"-släprad till varje incheckning"
-#: builtin/rebase.c:1041
+#: builtin/rebase.c:1069
msgid "make committer date match author date"
msgstr "sätt incheckningsdatum till författardatum"
-#: builtin/rebase.c:1043
+#: builtin/rebase.c:1071
msgid "ignore author date and use current date"
msgstr "ignorera författardatum och använd nuvarande"
-#: builtin/rebase.c:1045
+#: builtin/rebase.c:1073
msgid "synonym of --reset-author-date"
msgstr "synonym för --reset-author-date"
-#: builtin/rebase.c:1047 builtin/rebase.c:1051
+#: builtin/rebase.c:1075 builtin/rebase.c:1079
msgid "passed to 'git apply'"
msgstr "sänds till \"git apply\""
-#: builtin/rebase.c:1049
+#: builtin/rebase.c:1077
msgid "ignore changes in whitespace"
msgstr "ignorera ändringar i blanksteg"
-#: builtin/rebase.c:1053 builtin/rebase.c:1056
+#: builtin/rebase.c:1081 builtin/rebase.c:1084
msgid "cherry-pick all commits, even if unchanged"
msgstr "utför cherry-pick på alla incheckningar, även om oändrad"
-#: builtin/rebase.c:1058
+#: builtin/rebase.c:1086
msgid "continue"
msgstr "fortsätt"
-#: builtin/rebase.c:1061
+#: builtin/rebase.c:1089
msgid "skip current patch and continue"
msgstr "hoppa över nuvarande patch och fortsätt"
-#: builtin/rebase.c:1063
+#: builtin/rebase.c:1091
msgid "abort and check out the original branch"
msgstr "avbryt och checka ut ursprungsgrenen"
-#: builtin/rebase.c:1066
+#: builtin/rebase.c:1094
msgid "abort but keep HEAD where it is"
msgstr "avbryt men behåll HEAD där det är"
-#: builtin/rebase.c:1067
+#: builtin/rebase.c:1095
msgid "edit the todo list during an interactive rebase"
msgstr "redigera attgöra-listan under interaktiv ombasering."
-#: builtin/rebase.c:1070
+#: builtin/rebase.c:1098
msgid "show the patch file being applied or merged"
msgstr "visa patchen som tillämpas eller slås samman"
-#: builtin/rebase.c:1073
+#: builtin/rebase.c:1101
msgid "use apply strategies to rebase"
msgstr "använd appliceringstrategier för ombasering"
-#: builtin/rebase.c:1077
+#: builtin/rebase.c:1105
msgid "use merging strategies to rebase"
msgstr "använd sammanslagningsstrategier för ombasering"
-#: builtin/rebase.c:1081
+#: builtin/rebase.c:1109
msgid "let the user edit the list of commits to rebase"
msgstr "låt användaren redigera listan över incheckningar att ombasera"
-#: builtin/rebase.c:1085
+#: builtin/rebase.c:1113
msgid "(DEPRECATED) try to recreate merges instead of ignoring them"
msgstr ""
"(AVRÅDS) försök återskapa sammanslagningar istället för att ignorera dem"
-#: builtin/rebase.c:1090
+#: builtin/rebase.c:1118
msgid "how to handle commits that become empty"
msgstr "hur incheckningar som blir tomma ska hanteras"
-#: builtin/rebase.c:1093
+#: builtin/rebase.c:1121
msgid "keep commits which start empty"
msgstr "behåller incheckningar som är tomma från början"
-#: builtin/rebase.c:1097
+#: builtin/rebase.c:1125
msgid "move commits that begin with squash!/fixup! under -i"
msgstr "flytta incheckningar som börjar med squash!/fixup! under -i"
-#: builtin/rebase.c:1104
+#: builtin/rebase.c:1132
msgid "add exec lines after each commit of the editable list"
msgstr "lägg till exec-rader efter varje incheckning i den redigerbara listan"
-#: builtin/rebase.c:1108
+#: builtin/rebase.c:1136
msgid "allow rebasing commits with empty messages"
msgstr "tillåt ombasering av incheckningar med tomt meddelande"
-#: builtin/rebase.c:1112
+#: builtin/rebase.c:1140
msgid "try to rebase merges instead of skipping them"
msgstr "försök ombasera sammanslagningar istället för att ignorera dem"
-#: builtin/rebase.c:1115
+#: builtin/rebase.c:1143
msgid "use 'merge-base --fork-point' to refine upstream"
msgstr "använd \"merge-base --fork-point\" för att förfina uppström"
-#: builtin/rebase.c:1117
+#: builtin/rebase.c:1145
msgid "use the given merge strategy"
msgstr "använd angiven sammanslagningsstrategi"
-#: builtin/rebase.c:1119 builtin/revert.c:115
+#: builtin/rebase.c:1147 builtin/revert.c:115
msgid "option"
msgstr "alternativ"
-#: builtin/rebase.c:1120
+#: builtin/rebase.c:1148
msgid "pass the argument through to the merge strategy"
msgstr "sänd flaggan till sammanslagningsstrategin"
-#: builtin/rebase.c:1123
+#: builtin/rebase.c:1151
msgid "rebase all reachable commits up to the root(s)"
msgstr "ombasera alla nåbara incheckningar upp till roten/rötterna"
-#: builtin/rebase.c:1126
+#: builtin/rebase.c:1154
msgid "automatically re-schedule any `exec` that fails"
msgstr "kör automatiskt alla \"exec\" som misslyckas på nytt"
-#: builtin/rebase.c:1128
+#: builtin/rebase.c:1156
msgid "apply all changes, even those already present upstream"
msgstr "applicera alla ändringar, även de som redan finns uppströms"
-#: builtin/rebase.c:1149
+#: builtin/rebase.c:1177
msgid "It looks like 'git am' is in progress. Cannot rebase."
msgstr "Det verkar som en \"git am\" körs. Kan inte ombasera."
-#: builtin/rebase.c:1180
+#: builtin/rebase.c:1208
msgid "--preserve-merges was replaced by --rebase-merges"
msgstr "--preserve-merges har ersatts av --rebase-merges"
-#: builtin/rebase.c:1202
+#: builtin/rebase.c:1230
msgid "No rebase in progress?"
msgstr "Ingen ombasering pågår?"
-#: builtin/rebase.c:1206
+#: builtin/rebase.c:1234
msgid "The --edit-todo action can only be used during interactive rebase."
msgstr "Åtgärden --edit-todo kan endast användas under interaktiv ombasering."
-#: builtin/rebase.c:1229 t/helper/test-fast-rebase.c:122
+#: builtin/rebase.c:1257 t/helper/test-fast-rebase.c:122
msgid "Cannot read HEAD"
msgstr "Kan inte läsa HEAD"
-#: builtin/rebase.c:1241
+#: builtin/rebase.c:1269
msgid ""
"You must edit all merge conflicts and then\n"
"mark them as resolved using git add"
@@ -20232,16 +20699,16 @@ msgstr ""
"Du måste redigera alla sammanslagningskonflikter och\n"
"därefter markera dem som lösta med git add"
-#: builtin/rebase.c:1260
+#: builtin/rebase.c:1287
msgid "could not discard worktree changes"
msgstr "kunde inte kasta ändringar i arbetskatalogen"
-#: builtin/rebase.c:1279
+#: builtin/rebase.c:1308
#, c-format
msgid "could not move back to %s"
msgstr "kunde inte flytta tillbaka till %s"
-#: builtin/rebase.c:1325
+#: builtin/rebase.c:1354
#, c-format
msgid ""
"It seems that there is already a %s directory, and\n"
@@ -20262,124 +20729,119 @@ msgstr ""
"och kör programmet igen. Jag avslutar ifall du fortfarande har\n"
"något av värde där.\n"
-#: builtin/rebase.c:1353
+#: builtin/rebase.c:1382
msgid "switch `C' expects a numerical value"
msgstr "flaggan \"C\" förväntar ett numeriskt värde"
-#: builtin/rebase.c:1395
+#: builtin/rebase.c:1424
#, c-format
msgid "Unknown mode: %s"
msgstr "Okänt läge: %s"
-#: builtin/rebase.c:1434
+#: builtin/rebase.c:1463
msgid "--strategy requires --merge or --interactive"
msgstr "--strategy kräver --merge eller --interactive"
-#: builtin/rebase.c:1463
+#: builtin/rebase.c:1492
msgid "apply options and merge options cannot be used together"
msgstr ""
"appliceringsflaggor och sammanslagningsflaggor kan inte användas tillsammans"
-#: builtin/rebase.c:1476
+#: builtin/rebase.c:1505
#, c-format
msgid "Unknown rebase backend: %s"
msgstr "Okänd rebase-bakända: %s"
-#: builtin/rebase.c:1505
+#: builtin/rebase.c:1534
msgid "--reschedule-failed-exec requires --exec or --interactive"
msgstr "--reschedule-failed-exec kräver --exec eller --interactive"
-#: builtin/rebase.c:1536
+#: builtin/rebase.c:1565
#, c-format
msgid "invalid upstream '%s'"
msgstr "felaktig uppström \"%s\""
-#: builtin/rebase.c:1542
+#: builtin/rebase.c:1571
msgid "Could not create new root commit"
msgstr "kunde inte skapa ny rotincheckning"
-#: builtin/rebase.c:1568
+#: builtin/rebase.c:1597
#, c-format
msgid "'%s': need exactly one merge base with branch"
msgstr "\"%s\": behöver precis en sammanslagningsbas med gren"
-#: builtin/rebase.c:1571
+#: builtin/rebase.c:1600
#, c-format
msgid "'%s': need exactly one merge base"
msgstr "\"%s\": behöver precis en sammanslagningsbas"
-#: builtin/rebase.c:1580
+#: builtin/rebase.c:1609
#, c-format
msgid "Does not point to a valid commit '%s'"
msgstr "Pekar inte på en giltig incheckning: \"%s\""
-#: builtin/rebase.c:1607
+#: builtin/rebase.c:1636
#, c-format
msgid "no such branch/commit '%s'"
msgstr "ingen sådan gren/incheckning: \"%s\""
-#: builtin/rebase.c:1618 builtin/submodule--helper.c:39
-#: builtin/submodule--helper.c:2659
+#: builtin/rebase.c:1647 builtin/submodule--helper.c:43
+#: builtin/submodule--helper.c:2477
#, c-format
msgid "No such ref: %s"
msgstr "Ingen sådan referens: %s"
-#: builtin/rebase.c:1629
+#: builtin/rebase.c:1658
msgid "Could not resolve HEAD to a revision"
msgstr "Kunde inte bestämma HEAD:s incheckning"
-#: builtin/rebase.c:1650
+#: builtin/rebase.c:1679
msgid "Please commit or stash them."
msgstr "Checka in eller använd \"stash\" på dem."
-#: builtin/rebase.c:1686
-#, c-format
-msgid "could not switch to %s"
-msgstr "kunde inte växla till %s"
-
-#: builtin/rebase.c:1697
+#: builtin/rebase.c:1714
msgid "HEAD is up to date."
msgstr "HEAD är à jour."
-#: builtin/rebase.c:1699
+#: builtin/rebase.c:1716
#, c-format
msgid "Current branch %s is up to date.\n"
msgstr "Aktuell gren %s är à jour.\n"
-#: builtin/rebase.c:1707
+#: builtin/rebase.c:1724
msgid "HEAD is up to date, rebase forced."
msgstr "HEAD är à jour, ombasering framtvingad."
-#: builtin/rebase.c:1709
+#: builtin/rebase.c:1726
#, c-format
msgid "Current branch %s is up to date, rebase forced.\n"
msgstr "Aktuell gren %s är à jour, ombasering framtvingad.\n"
-#: builtin/rebase.c:1717
+#: builtin/rebase.c:1734
msgid "The pre-rebase hook refused to rebase."
msgstr "Kroken pre-rebase vägrade ombaseringen."
-#: builtin/rebase.c:1724
+#: builtin/rebase.c:1741
#, c-format
msgid "Changes to %s:\n"
msgstr "Ändringar till %s:\n"
-#: builtin/rebase.c:1727
+#: builtin/rebase.c:1744
#, c-format
msgid "Changes from %s to %s:\n"
msgstr "Ändringar från %s till %s:\n"
-#: builtin/rebase.c:1752
+#: builtin/rebase.c:1769
#, c-format
msgid "First, rewinding head to replay your work on top of it...\n"
msgstr ""
"Först, spolar tillbaka huvudet för att spela av ditt arbete ovanpå det...\n"
-#: builtin/rebase.c:1761
+#: builtin/rebase.c:1781
msgid "Could not detach HEAD"
msgstr "Kunde inte koppla från HEAD"
-#: builtin/rebase.c:1770
+#: builtin/rebase.c:1790
#, c-format
msgid "Fast-forwarded %s to %s.\n"
msgstr "Snabbspolade %s till %s.\n"
@@ -20388,7 +20850,7 @@ msgstr "Snabbspolade %s till %s.\n"
msgid "git receive-pack <git-dir>"
msgstr "git receive-pack <git-katalog>"
-#: builtin/receive-pack.c:1275
+#: builtin/receive-pack.c:1263
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"
@@ -20418,7 +20880,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:1295
+#: builtin/receive-pack.c:1283
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"
@@ -20439,79 +20901,111 @@ msgstr ""
"\n"
"För att undvika detta meddelande kan du sätta det till \"refuse\"."
-#: builtin/receive-pack.c:2474
+#: builtin/receive-pack.c:2476
msgid "quiet"
msgstr "tyst"
-#: builtin/receive-pack.c:2489
+#: builtin/receive-pack.c:2491
msgid "you must specify a directory"
msgstr "du måste ange en katalog"
-#: builtin/reflog.c:17
+#: builtin/reflog.c:9
+msgid "git reflog [show] [<log-options>] [<ref>]"
+msgstr "git reflog [show] [<log-flaggor>] [<ref>]"
+
+#: builtin/reflog.c:12
msgid ""
-"git reflog expire [--expire=<time>] [--expire-unreachable=<time>] [--"
-"rewrite] [--updateref] [--stale-fix] [--dry-run | -n] [--verbose] [--all] "
-"<refs>..."
+"git reflog expire [--expire=<time>] [--expire-unreachable=<time>]\n"
+" [--rewrite] [--updateref] [--stale-fix]\n"
+" [--dry-run | -n] [--verbose] [--all [--single-worktree] | "
+"<refs>...]"
msgstr ""
-"git reflog expire [--expire=<tid>] [--expire-unreachable=<tid>] [--rewrite] "
-"[--updateref] [--stale-fix] [--dry-run | -n] [--verbose] [--all] "
-"<referenser>..."
+"git reflog expire [--expire=<time>] [--expire-unreachable=<time>]\n"
+" [--rewrite] [--updateref] [--stale-fix]\n"
+" [--dry-run | -n] [--verbose] [--all [--single-worktree] | "
+"<referenser>...]"
-#: builtin/reflog.c:22
+#: builtin/reflog.c:17
msgid ""
-"git reflog delete [--rewrite] [--updateref] [--dry-run | -n] [--verbose] "
-"<refs>..."
+"git reflog delete [--rewrite] [--updateref]\n"
+" [--dry-run | -n] [--verbose] <ref>@{<specifier>}..."
msgstr ""
-"git reflog delete [--rewrite] [--updateref] [--dry-run | -n] [--verbose] "
-"<referenser>..."
+"git reflog delete [--rewrite] [--updateref]\n"
+" [--dry-run | -n] [--verbose] <ref>@{<specificering>}..."
-#: builtin/reflog.c:25
+#: builtin/reflog.c:21
msgid "git reflog exists <ref>"
msgstr "git reflog exists <referens>"
-#: builtin/reflog.c:585 builtin/reflog.c:590
+#: builtin/reflog.c:197 builtin/reflog.c:211
#, c-format
-msgid "'%s' is not a valid timestamp"
-msgstr "\"%s\" är inte en giltig tidsstämpel"
+msgid "invalid timestamp '%s' given to '--%s'"
+msgstr "ogiltig tidsstämpel \"%s\" given i \"--%s\""
+
+#: builtin/reflog.c:240 builtin/reflog.c:359
+msgid "do not actually prune any entries"
+msgstr "rensa faktiskt inte några poster"
+
+#: builtin/reflog.c:243 builtin/reflog.c:362
+msgid ""
+"rewrite the old SHA1 with the new SHA1 of the entry that now precedes it"
+msgstr "skriv om gammal SHA1 med ny SHA1 i posten som nu föregår den"
+
+#: builtin/reflog.c:246 builtin/reflog.c:365
+msgid "update the reference to the value of the top reflog entry"
+msgstr "uppdatera referensen till värdet i översta referensloggposten"
+
+#: builtin/reflog.c:248 builtin/reflog.c:367
+msgid "print extra information on screen"
+msgstr "visa extra information på skärm"
-#: builtin/reflog.c:631
+#: builtin/reflog.c:249 builtin/reflog.c:253
+msgid "timestamp"
+msgstr "tidsstämpel"
+
+#: builtin/reflog.c:250
+msgid "prune entries older than the specified time"
+msgstr "rensa poster äldre än angiven tid"
+
+#: builtin/reflog.c:254
+msgid ""
+"prune entries older than <time> that are not reachable from the current tip "
+"of the branch"
+msgstr ""
+"rensa poster äldre än <tid> som inte kan nås från nuvarande ände av grenen"
+
+#: builtin/reflog.c:258
+msgid "prune any reflog entries that point to broken commits"
+msgstr "rensa alla referensloggposter som pekar på trasiga incheckningar"
+
+#: builtin/reflog.c:259
+msgid "process the reflogs of all references"
+msgstr "hantera referensloggar för alla referenser"
+
+#: builtin/reflog.c:261
+msgid "limits processing to reflogs from the current worktree only"
+msgstr "begränsar hantering av referensloggar till endst aktuell arbetskatalog"
+
+#: builtin/reflog.c:294
#, c-format
msgid "Marking reachable objects..."
msgstr "Markerar nåbara objekt..."
-#: builtin/reflog.c:675
+#: builtin/reflog.c:338
#, c-format
msgid "%s points nowhere!"
msgstr "%s pekar ingenstans!"
-#: builtin/reflog.c:731
+#: builtin/reflog.c:374
msgid "no reflog specified to delete"
msgstr "ingen referenslogg att ta bort angavs"
-#: builtin/reflog.c:742
-#, c-format
-msgid "not a reflog: %s"
-msgstr "inte en referenslogg: %s"
-
-#: builtin/reflog.c:747
-#, c-format
-msgid "no reflog for '%s'"
-msgstr "ingen referenslogg för \"%s\""
-
-#: builtin/reflog.c:794
+#: builtin/reflog.c:396
#, c-format
msgid "invalid ref format: %s"
msgstr "felaktigt referensformat: %s"
-#: builtin/reflog.c:803
-msgid "git reflog [ show | expire | delete | exists ]"
-msgstr "git reflog [ show | expire | delete | exists ]"
-
-#: builtin/remote.c:17
-msgid "git remote [-v | --verbose]"
-msgstr "git remote [-v | --verbose]"
-
-#: builtin/remote.c:18
+#: builtin/remote.c:19
msgid ""
"git remote add [-t <branch>] [-m <master>] [-f] [--tags | --no-tags] [--"
"mirror=<fetch|push>] <name> <url>"
@@ -20519,87 +21013,87 @@ msgstr ""
"git remote add [-t <gren>] [-m <master>] [-f] [--tags | --no-tags] [--"
"mirror=<fetch|push>] <namn> <url>"
-#: builtin/remote.c:19 builtin/remote.c:39
-msgid "git remote rename <old> <new>"
-msgstr "git remote rename <gammal> <ny>"
+#: builtin/remote.c:20 builtin/remote.c:40
+msgid "git remote rename [--[no-]progress] <old> <new>"
+msgstr "git remote rename [--[no-]progress] <gammal> <ny>"
-#: builtin/remote.c:20 builtin/remote.c:44
+#: builtin/remote.c:21 builtin/remote.c:45
msgid "git remote remove <name>"
msgstr "git remote remove <namn>"
-#: builtin/remote.c:21 builtin/remote.c:49
+#: builtin/remote.c:22 builtin/remote.c:50
msgid "git remote set-head <name> (-a | --auto | -d | --delete | <branch>)"
msgstr "git remote set-head <namn> (-a | --auto | -d | --delete | <gren>)"
-#: builtin/remote.c:22
+#: builtin/remote.c:23
msgid "git remote [-v | --verbose] show [-n] <name>"
msgstr "git remote [-v | --verbose] show [-n] <namn>"
-#: builtin/remote.c:23
+#: builtin/remote.c:24
msgid "git remote prune [-n | --dry-run] <name>"
msgstr "git remote prune [-n | --dry-run] <namn>"
-#: builtin/remote.c:24
+#: builtin/remote.c:25
msgid ""
"git remote [-v | --verbose] update [-p | --prune] [(<group> | <remote>)...]"
msgstr ""
"git remote [-v | --verbose] update [-p | --prune] [(<grupp> | <fjärr>)...]"
-#: builtin/remote.c:25
+#: builtin/remote.c:26
msgid "git remote set-branches [--add] <name> <branch>..."
msgstr "git remote set-branches [--add] <namn> <gren>..."
-#: builtin/remote.c:26 builtin/remote.c:75
+#: builtin/remote.c:27 builtin/remote.c:76
msgid "git remote get-url [--push] [--all] <name>"
msgstr "git remote get-url [--push] [--all] <namn>"
-#: builtin/remote.c:27 builtin/remote.c:80
+#: builtin/remote.c:28 builtin/remote.c:81
msgid "git remote set-url [--push] <name> <newurl> [<oldurl>]"
msgstr "git remote set-url [--push] <namn> <nyurl> [<gammalurl>]"
-#: builtin/remote.c:28 builtin/remote.c:81
+#: builtin/remote.c:29 builtin/remote.c:82
msgid "git remote set-url --add <name> <newurl>"
msgstr "git remote set-url --add <namn> <nyurl>"
-#: builtin/remote.c:29 builtin/remote.c:82
+#: builtin/remote.c:30 builtin/remote.c:83
msgid "git remote set-url --delete <name> <url>"
msgstr "git remote set-url --delete <namn> <url>"
-#: builtin/remote.c:34
+#: builtin/remote.c:35
msgid "git remote add [<options>] <name> <url>"
msgstr "git remote add [<flaggor>] <namn> <url>"
-#: builtin/remote.c:54
+#: builtin/remote.c:55
msgid "git remote set-branches <name> <branch>..."
msgstr "git remote set-branches <namn> <gren>..."
-#: builtin/remote.c:55
+#: builtin/remote.c:56
msgid "git remote set-branches --add <name> <branch>..."
msgstr "git remote set-branches --add <namn> <gren>..."
-#: builtin/remote.c:60
+#: builtin/remote.c:61
msgid "git remote show [<options>] <name>"
msgstr "git remote show [<flaggor>] <namn>"
-#: builtin/remote.c:65
+#: builtin/remote.c:66
msgid "git remote prune [<options>] <name>"
msgstr "git remote prune [<flaggor>] <namn>"
-#: builtin/remote.c:70
+#: builtin/remote.c:71
msgid "git remote update [<options>] [<group> | <remote>]..."
msgstr "git remote update [<flaggor>] [<grupp> | <fjärr>]..."
-#: builtin/remote.c:99
+#: builtin/remote.c:100
#, c-format
msgid "Updating %s"
msgstr "Uppdaterar %s"
-#: builtin/remote.c:101
+#: builtin/remote.c:102
#, c-format
msgid "Could not fetch %s"
msgstr "Kunde inte hämta %s"
-#: builtin/remote.c:131
+#: builtin/remote.c:132
msgid ""
"--mirror is dangerous and deprecated; please\n"
"\t use --mirror=fetch or --mirror=push instead"
@@ -20607,77 +21101,77 @@ msgstr ""
"--mirror är farlig och föråldrad; använd\n"
"\t --mirror=fetch eller --mirror=push istället"
-#: builtin/remote.c:148
+#: builtin/remote.c:149
#, c-format
msgid "unknown mirror argument: %s"
msgstr "okänt argument till mirror: %s"
-#: builtin/remote.c:164
+#: builtin/remote.c:165
msgid "fetch the remote branches"
msgstr "hämta fjärrgrenarna"
-#: builtin/remote.c:166
+#: builtin/remote.c:167
msgid "import all tags and associated objects when fetching"
msgstr "importera alla taggar och associerade objekt vid hämtning"
-#: builtin/remote.c:169
+#: builtin/remote.c:170
msgid "or do not fetch any tag at all (--no-tags)"
msgstr "eller hämta inte några taggar alls (--no-tags)"
-#: builtin/remote.c:171
+#: builtin/remote.c:172
msgid "branch(es) to track"
msgstr "gren(ar) att spåra"
-#: builtin/remote.c:172
+#: builtin/remote.c:173
msgid "master branch"
msgstr "huvudgren"
-#: builtin/remote.c:174
+#: builtin/remote.c:175
msgid "set up remote as a mirror to push to or fetch from"
msgstr "ställ in arkiv som spegel att sända eller ta emot från"
-#: builtin/remote.c:186
+#: builtin/remote.c:187
msgid "specifying a master branch makes no sense with --mirror"
msgstr "att ange en master-gren ger ingen mening med --mirror"
-#: builtin/remote.c:188
+#: builtin/remote.c:189
msgid "specifying branches to track makes sense only with fetch mirrors"
msgstr "att ange grenar att spåra ger mening bara med hämtningsspeglar"
-#: builtin/remote.c:195 builtin/remote.c:705
+#: builtin/remote.c:196 builtin/remote.c:716
#, c-format
msgid "remote %s already exists."
msgstr "fjärrarkivet %s finns redan."
-#: builtin/remote.c:240
+#: builtin/remote.c:241
#, c-format
msgid "Could not setup master '%s'"
msgstr "Kunde inte skapa master \"%s\""
-#: builtin/remote.c:322
+#: builtin/remote.c:323
#, c-format
msgid "unhandled branch.%s.rebase=%s; assuming 'true'"
msgstr "ohanterad branch.%s.rebase=%s; antar \"true\""
-#: builtin/remote.c:366
+#: builtin/remote.c:367
#, c-format
msgid "Could not get fetch map for refspec %s"
msgstr "Kunde inte hämta mappning för referensspecifikation %s"
-#: builtin/remote.c:460 builtin/remote.c:468
+#: builtin/remote.c:461 builtin/remote.c:469
msgid "(matching)"
msgstr "(träffande)"
-#: builtin/remote.c:472
+#: builtin/remote.c:473
msgid "(delete)"
msgstr "(ta bort)"
-#: builtin/remote.c:660
+#: builtin/remote.c:664
#, c-format
msgid "could not set '%s'"
msgstr "kunde inte ställa in \"%s\""
-#: builtin/remote.c:665
+#: builtin/remote.c:669
#, c-format
msgid ""
"The %s configuration remote.pushDefault in:\n"
@@ -20688,17 +21182,17 @@ msgstr ""
"\t%s:%d\n"
"anger nu den icke-existerande fjärren \"%s\""
-#: builtin/remote.c:696 builtin/remote.c:841 builtin/remote.c:948
+#: builtin/remote.c:707 builtin/remote.c:866 builtin/remote.c:973
#, c-format
msgid "No such remote: '%s'"
msgstr "Ingen sådan fjärr: \"%s\""
-#: builtin/remote.c:715
+#: builtin/remote.c:726
#, c-format
msgid "Could not rename config section '%s' to '%s'"
msgstr "Kunde inte byta namn på konfigurationssektionen \"%s\" till \"%s\""
-#: builtin/remote.c:735
+#: builtin/remote.c:746
#, c-format
msgid ""
"Not updating non-default fetch refspec\n"
@@ -20709,17 +21203,21 @@ msgstr ""
"\t%s\n"
"\tUppdatera konfigurationen manuellt om nödvändigt."
-#: builtin/remote.c:775
+#: builtin/remote.c:783
+msgid "Renaming remote references"
+msgstr "Byter namn på fjärreferenser"
+
+#: builtin/remote.c:794
#, c-format
msgid "deleting '%s' failed"
msgstr "misslyckades ta bort \"%s\""
-#: builtin/remote.c:809
+#: builtin/remote.c:832
#, c-format
msgid "creating '%s' failed"
msgstr "misslyckades skapa \"%s\""
-#: builtin/remote.c:887
+#: builtin/remote.c:912
msgid ""
"Note: A branch outside the refs/remotes/ hierarchy was not removed;\n"
"to delete it, use:"
@@ -20733,118 +21231,118 @@ msgstr[1] ""
"Observera: Några grenar utanför hierarkin refs/remotes/ togs inte bort;\n"
"för att ta bort dem, använd:"
-#: builtin/remote.c:901
+#: builtin/remote.c:926
#, c-format
msgid "Could not remove config section '%s'"
msgstr "Kunde inte ta bort konfigurationssektionen \"%s\""
-#: builtin/remote.c:1009
+#: builtin/remote.c:1034
#, c-format
msgid " new (next fetch will store in remotes/%s)"
msgstr " ny (nästa hämtning sparar i remotes/%s)"
-#: builtin/remote.c:1012
+#: builtin/remote.c:1037
msgid " tracked"
msgstr " spårad"
-#: builtin/remote.c:1014
+#: builtin/remote.c:1039
msgid " stale (use 'git remote prune' to remove)"
msgstr " förlegad (använd \"git remote prune\" för att ta bort)"
-#: builtin/remote.c:1016
+#: builtin/remote.c:1041
msgid " ???"
msgstr " ???"
-#: builtin/remote.c:1057
+#: builtin/remote.c:1082
#, c-format
msgid "invalid branch.%s.merge; cannot rebase onto > 1 branch"
msgstr "ogiltig branch.%s.merge; kan inte ombasera över > 1 gren"
-#: builtin/remote.c:1066
+#: builtin/remote.c:1091
#, c-format
msgid "rebases interactively onto remote %s"
msgstr "ombaseras interaktivt på fjärren %s"
-#: builtin/remote.c:1068
+#: builtin/remote.c:1093
#, c-format
msgid "rebases interactively (with merges) onto remote %s"
msgstr "ombaseras interaktivt (med sammanslagningar) på fjärren %s"
-#: builtin/remote.c:1071
+#: builtin/remote.c:1096
#, c-format
msgid "rebases onto remote %s"
msgstr "ombaseras på fjärren %s"
-#: builtin/remote.c:1075
+#: builtin/remote.c:1100
#, c-format
msgid " merges with remote %s"
msgstr " sammanslås med fjärren %s"
-#: builtin/remote.c:1078
+#: builtin/remote.c:1103
#, c-format
msgid "merges with remote %s"
msgstr "sammanslås med fjärren %s"
-#: builtin/remote.c:1081
+#: builtin/remote.c:1106
#, c-format
msgid "%-*s and with remote %s\n"
msgstr "%-*s och med fjärren %s\n"
-#: builtin/remote.c:1124
+#: builtin/remote.c:1149
msgid "create"
msgstr "skapa"
-#: builtin/remote.c:1127
+#: builtin/remote.c:1152
msgid "delete"
msgstr "ta bort"
-#: builtin/remote.c:1131
+#: builtin/remote.c:1156
msgid "up to date"
msgstr "àjour"
-#: builtin/remote.c:1134
+#: builtin/remote.c:1159
msgid "fast-forwardable"
msgstr "kan snabbspolas"
-#: builtin/remote.c:1137
+#: builtin/remote.c:1162
msgid "local out of date"
msgstr "lokal föråldrad"
-#: builtin/remote.c:1144
+#: builtin/remote.c:1169
#, c-format
msgid " %-*s forces to %-*s (%s)"
msgstr " %-*s tvingar till %-*s (%s)"
-#: builtin/remote.c:1147
+#: builtin/remote.c:1172
#, c-format
msgid " %-*s pushes to %-*s (%s)"
msgstr " %-*s sänder till %-*s (%s)"
-#: builtin/remote.c:1151
+#: builtin/remote.c:1176
#, c-format
msgid " %-*s forces to %s"
msgstr " %-*s tvingar till %s"
-#: builtin/remote.c:1154
+#: builtin/remote.c:1179
#, c-format
msgid " %-*s pushes to %s"
msgstr " %-*s sänder till %s"
-#: builtin/remote.c:1222
+#: builtin/remote.c:1247
msgid "do not query remotes"
msgstr "fråga inte fjärrar"
-#: builtin/remote.c:1243
+#: builtin/remote.c:1268
#, c-format
msgid "* remote %s"
msgstr "* fjärr %s"
-#: builtin/remote.c:1244
+#: builtin/remote.c:1269
#, c-format
msgid " Fetch URL: %s"
msgstr " Hämt-URL: %s"
-#: builtin/remote.c:1245 builtin/remote.c:1261 builtin/remote.c:1398
+#: builtin/remote.c:1270 builtin/remote.c:1286 builtin/remote.c:1423
msgid "(no URL)"
msgstr "(ingen URL)"
@@ -20852,188 +21350,188 @@ msgstr "(ingen URL)"
#. with the one in " Fetch URL: %s"
#. translation.
#.
-#: builtin/remote.c:1259 builtin/remote.c:1261
+#: builtin/remote.c:1284 builtin/remote.c:1286
#, c-format
msgid " Push URL: %s"
msgstr " Sänd-URL: %s"
-#: builtin/remote.c:1263 builtin/remote.c:1265 builtin/remote.c:1267
+#: builtin/remote.c:1288 builtin/remote.c:1290 builtin/remote.c:1292
#, c-format
msgid " HEAD branch: %s"
msgstr " HEAD-gren: %s"
-#: builtin/remote.c:1263
+#: builtin/remote.c:1288
msgid "(not queried)"
msgstr "(inte förfrågad)"
-#: builtin/remote.c:1265
+#: builtin/remote.c:1290
msgid "(unknown)"
msgstr "(okänd)"
-#: builtin/remote.c:1269
+#: builtin/remote.c:1294
#, c-format
msgid ""
" HEAD branch (remote HEAD is ambiguous, may be one of the following):\n"
msgstr " HEAD-gren (HEAD på fjärr är tvetydig, kan vara en av följande):\n"
-#: builtin/remote.c:1281
+#: builtin/remote.c:1306
#, c-format
msgid " Remote branch:%s"
msgid_plural " Remote branches:%s"
msgstr[0] " Fjärrgren:%s"
msgstr[1] " Fjärrgrenar:%s"
-#: builtin/remote.c:1284 builtin/remote.c:1310
+#: builtin/remote.c:1309 builtin/remote.c:1335
msgid " (status not queried)"
msgstr " (status inte förfrågad)"
-#: builtin/remote.c:1293
+#: builtin/remote.c:1318
msgid " Local branch configured for 'git pull':"
msgid_plural " Local branches configured for 'git pull':"
msgstr[0] " Lokal gren konfigurerad för \"git pull\":"
msgstr[1] " Lokala grenar konfigurerade för \"git pull\":"
-#: builtin/remote.c:1301
+#: builtin/remote.c:1326
msgid " Local refs will be mirrored by 'git push'"
msgstr " Lokala referenser speglas av \"git push\""
-#: builtin/remote.c:1307
+#: builtin/remote.c:1332
#, c-format
msgid " Local ref configured for 'git push'%s:"
msgid_plural " Local refs configured for 'git push'%s:"
msgstr[0] " Lokal referens konfigurerad för \"git push\"%s:"
msgstr[1] " Lokala referenser konfigurerade för \"git push\"%s:"
-#: builtin/remote.c:1328
+#: builtin/remote.c:1353
msgid "set refs/remotes/<name>/HEAD according to remote"
msgstr "sätt refs/remotes/<namn>/HEAD enligt fjärren"
-#: builtin/remote.c:1330
+#: builtin/remote.c:1355
msgid "delete refs/remotes/<name>/HEAD"
msgstr "ta bort refs/remotes/<namn>/HEAD"
-#: builtin/remote.c:1344
+#: builtin/remote.c:1369
msgid "Cannot determine remote HEAD"
msgstr "Kan inte bestämma HEAD på fjärren"
-#: builtin/remote.c:1346
+#: builtin/remote.c:1371
msgid "Multiple remote HEAD branches. Please choose one explicitly with:"
msgstr "Flera HEAD-grenar på fjärren. Välj en explicit med:"
-#: builtin/remote.c:1356
+#: builtin/remote.c:1381
#, c-format
msgid "Could not delete %s"
msgstr "Kunde inte ta bort %s"
-#: builtin/remote.c:1364
+#: builtin/remote.c:1389
#, c-format
msgid "Not a valid ref: %s"
msgstr "Inte en giltig referens: %s"
-#: builtin/remote.c:1366
+#: builtin/remote.c:1391
#, c-format
msgid "Could not setup %s"
msgstr "Kunde inte ställa in %s"
-#: builtin/remote.c:1384
+#: builtin/remote.c:1409
#, c-format
msgid " %s will become dangling!"
msgstr " %s kommer bli dinglande!"
-#: builtin/remote.c:1385
+#: builtin/remote.c:1410
#, c-format
msgid " %s has become dangling!"
msgstr " %s har blivit dinglande!"
-#: builtin/remote.c:1394
+#: builtin/remote.c:1419
#, c-format
msgid "Pruning %s"
msgstr "Rensar %s"
-#: builtin/remote.c:1395
+#: builtin/remote.c:1420
#, c-format
msgid "URL: %s"
msgstr "URL: %s"
-#: builtin/remote.c:1411
+#: builtin/remote.c:1436
#, c-format
msgid " * [would prune] %s"
msgstr " * [skulle rensa] %s"
-#: builtin/remote.c:1414
+#: builtin/remote.c:1439
#, c-format
msgid " * [pruned] %s"
msgstr " * [rensad] %s"
-#: builtin/remote.c:1459
+#: builtin/remote.c:1484
msgid "prune remotes after fetching"
msgstr "rensa fjärrar efter hämtning"
-#: builtin/remote.c:1523 builtin/remote.c:1579 builtin/remote.c:1649
+#: builtin/remote.c:1548 builtin/remote.c:1604 builtin/remote.c:1674
#, c-format
msgid "No such remote '%s'"
msgstr "Ingen sådan fjärr \"%s\""
-#: builtin/remote.c:1541
+#: builtin/remote.c:1566
msgid "add branch"
msgstr "lägg till gren"
-#: builtin/remote.c:1548
+#: builtin/remote.c:1573
msgid "no remote specified"
msgstr "ingen fjärr angavs"
-#: builtin/remote.c:1565
+#: builtin/remote.c:1590
msgid "query push URLs rather than fetch URLs"
msgstr "fråga sänd-URL:er istället för hämta-URL:er"
-#: builtin/remote.c:1567
+#: builtin/remote.c:1592
msgid "return all URLs"
msgstr "returnera alla URL:er"
-#: builtin/remote.c:1597
+#: builtin/remote.c:1622
#, c-format
msgid "no URLs configured for remote '%s'"
msgstr "ingen URL:er angivna för fjärren \"%s\""
-#: builtin/remote.c:1623
+#: builtin/remote.c:1648
msgid "manipulate push URLs"
msgstr "manipulera URL:ar för sändning"
-#: builtin/remote.c:1625
+#: builtin/remote.c:1650
msgid "add URL"
msgstr "lägg till URL"
-#: builtin/remote.c:1627
+#: builtin/remote.c:1652
msgid "delete URLs"
msgstr "ta bort URL:ar"
-#: builtin/remote.c:1634
+#: builtin/remote.c:1659
msgid "--add --delete doesn't make sense"
msgstr "--add --delete ger ingen mening"
-#: builtin/remote.c:1675
+#: builtin/remote.c:1700
#, c-format
msgid "Invalid old URL pattern: %s"
msgstr "Felaktig gammalt URL-mönster: %s"
-#: builtin/remote.c:1683
+#: builtin/remote.c:1708
#, c-format
msgid "No such URL found: %s"
msgstr "Ingen sådan URL hittades: %s"
-#: builtin/remote.c:1685
+#: builtin/remote.c:1710
msgid "Will not delete all non-push URLs"
msgstr "Kommer inte ta bort alla icke-sänd-URL:er"
-#: builtin/remote.c:1702
+#: builtin/remote.c:1727
msgid "be verbose; must be placed before a subcommand"
msgstr "var pratsam; måste skrivas före ett underkommando"
-#: builtin/repack.c:28
+#: builtin/repack.c:29
msgid "git repack [<options>]"
msgstr "git repack [<flaggor>]"
-#: builtin/repack.c:33
+#: builtin/repack.c:34
msgid ""
"Incremental repacks are incompatible with bitmap indexes. Use\n"
"--no-write-bitmap-index or disable the pack.writebitmaps configuration."
@@ -21042,145 +21540,145 @@ msgstr ""
"Använd --no-write-bitmap-index eller inaktivera inställningen\n"
"pack.writebitmaps"
-#: builtin/repack.c:201
+#: builtin/repack.c:206
msgid "could not start pack-objects to repack promisor objects"
msgstr "kunde inte starta pack-objects för att packa om kontraktsobjekt"
-#: builtin/repack.c:275 builtin/repack.c:820
+#: builtin/repack.c:280 builtin/repack.c:824
msgid "repack: Expecting full hex object ID lines only from pack-objects."
msgstr ""
"repack: Förväntar kompletta hex-objekt-id-rader endast från pack-objects."
-#: builtin/repack.c:299
+#: builtin/repack.c:304
msgid "could not finish pack-objects to repack promisor objects"
msgstr "kunde inte avsluta pack-objects för att packa om kontraktsobjekt"
-#: builtin/repack.c:314
+#: builtin/repack.c:319
#, c-format
msgid "cannot open index for %s"
msgstr "kunde inte öppna indexet för %s"
-#: builtin/repack.c:373
+#: builtin/repack.c:378
#, c-format
msgid "pack %s too large to consider in geometric progression"
msgstr "paketet %s för stort för att tas med i geometriskt förlopp"
-#: builtin/repack.c:406 builtin/repack.c:413 builtin/repack.c:418
+#: builtin/repack.c:411 builtin/repack.c:418 builtin/repack.c:423
#, c-format
msgid "pack %s too large to roll up"
msgstr "paketet %s för stort att rulla upp"
-#: builtin/repack.c:498
+#: builtin/repack.c:503
#, c-format
msgid "could not open tempfile %s for writing"
msgstr "kunde inte öppna temporär fil %s för skrivning"
-#: builtin/repack.c:516
+#: builtin/repack.c:521
msgid "could not close refs snapshot tempfile"
msgstr "kunde inte stänga temporär fil för refs-ögonblicksbild"
-#: builtin/repack.c:630
+#: builtin/repack.c:634
msgid "pack everything in a single pack"
msgstr "packa allt i ett enda paket"
-#: builtin/repack.c:632
+#: builtin/repack.c:636
msgid "same as -a, and turn unreachable objects loose"
msgstr "samma som -a, och gör onåbara objekt lösa"
-#: builtin/repack.c:635
+#: builtin/repack.c:639
msgid "remove redundant packs, and run git-prune-packed"
msgstr "ta bort överflödiga paket, och kör git-prune-packed"
-#: builtin/repack.c:637
+#: builtin/repack.c:641
msgid "pass --no-reuse-delta to git-pack-objects"
msgstr "sänd --no-reuse-delta till git-pack-objects"
-#: builtin/repack.c:639
+#: builtin/repack.c:643
msgid "pass --no-reuse-object to git-pack-objects"
msgstr "sänd --no-reuse-object till git-pack-objects"
-#: builtin/repack.c:641
+#: builtin/repack.c:645
msgid "do not run git-update-server-info"
msgstr "kör inte git-update-server-info"
-#: builtin/repack.c:644
+#: builtin/repack.c:648
msgid "pass --local to git-pack-objects"
msgstr "sänd --local till git-pack-objects"
-#: builtin/repack.c:646
+#: builtin/repack.c:650
msgid "write bitmap index"
msgstr "skriv bitkartindex"
-#: builtin/repack.c:648
+#: builtin/repack.c:652
msgid "pass --delta-islands to git-pack-objects"
msgstr "sänd --delta-islands till git-pack-objects"
-#: builtin/repack.c:649
+#: builtin/repack.c:653
msgid "approxidate"
msgstr "cirkadatum"
-#: builtin/repack.c:650
+#: builtin/repack.c:654
msgid "with -A, do not loosen objects older than this"
msgstr "med -A, lös inte upp objekt äldre än detta"
-#: builtin/repack.c:652
+#: builtin/repack.c:656
msgid "with -a, repack unreachable objects"
msgstr "med -a, packa om onåbara objekt"
-#: builtin/repack.c:654
+#: builtin/repack.c:658
msgid "size of the window used for delta compression"
msgstr "storlek på fönster använt för deltakomprimering"
-#: builtin/repack.c:655 builtin/repack.c:661
+#: builtin/repack.c:659 builtin/repack.c:665
msgid "bytes"
msgstr "byte"
-#: builtin/repack.c:656
+#: builtin/repack.c:660
msgid "same as the above, but limit memory size instead of entries count"
msgstr "samma som ovan, men begränsa minnesstorleken istället för postantal"
-#: builtin/repack.c:658
+#: builtin/repack.c:662
msgid "limits the maximum delta depth"
msgstr "begränsa maximalt deltadjup"
-#: builtin/repack.c:660
+#: builtin/repack.c:664
msgid "limits the maximum number of threads"
msgstr "begränsar maximalt antal trådar"
-#: builtin/repack.c:662
+#: builtin/repack.c:666
msgid "maximum size of each packfile"
msgstr "maximal storlek på varje paketfil"
-#: builtin/repack.c:664
+#: builtin/repack.c:668
msgid "repack objects in packs marked with .keep"
msgstr "packa om objekt i paket märkta med .keep"
-#: builtin/repack.c:666
+#: builtin/repack.c:670
msgid "do not repack this pack"
msgstr "packa inte om detta paket"
-#: builtin/repack.c:668
+#: builtin/repack.c:672
msgid "find a geometric progression with factor <N>"
msgstr "hitta ett geometrisk förlopp med faktor <N>"
-#: builtin/repack.c:670
+#: builtin/repack.c:674
msgid "write a multi-pack index of the resulting packs"
msgstr "skriv ett flerpaketsindex för de skapade paketen"
-#: builtin/repack.c:680
+#: builtin/repack.c:684
msgid "cannot delete packs in a precious-objects repo"
msgstr "kan inte ta bort paket i ett \"precious-objects\"-arkiv"
-#: builtin/repack.c:829
+#: builtin/repack.c:833
msgid "Nothing new to pack."
msgstr "Inget nytt att packa."
-#: builtin/repack.c:859
+#: builtin/repack.c:863
#, c-format
msgid "missing required file: %s"
msgstr "nödvändig fil saknas: %s"
-#: builtin/repack.c:861
+#: builtin/repack.c:865
#, c-format
msgid "could not unlink: %s"
msgstr "kunde inte ta bort: \"%s\""
@@ -21197,10 +21695,6 @@ msgstr "git replace [-f] --edit <objekt>"
msgid "git replace [-f] --graft <commit> [<parent>...]"
msgstr "git replace [-f] --graft <incheckning> [<förälder>...]"
-#: builtin/replace.c:25
-msgid "git replace [-f] --convert-graft-file"
-msgstr "git replace [-f] --convert-graft-file"
-
#: builtin/replace.c:26
msgid "git replace -d <object>..."
msgstr "git replace -d <objekt>..."
@@ -21502,97 +21996,92 @@ msgstr "Kunde inte hitta trädet för %s."
msgid "HEAD is now at %s"
msgstr "HEAD är nu på %s"
-#: builtin/reset.c:299
+#: builtin/reset.c:304
#, c-format
msgid "Cannot do a %s reset in the middle of a merge."
msgstr "Kan inte utföra en %s återställning mitt i en sammanslagning."
-#: builtin/reset.c:396 builtin/stash.c:606 builtin/stash.c:680
-#: builtin/stash.c:704
+#: builtin/reset.c:402 builtin/stash.c:606 builtin/stash.c:669
+#: builtin/stash.c:693
msgid "be quiet, only report errors"
msgstr "var tyst, rapportera endast fel"
-#: builtin/reset.c:398
+#: builtin/reset.c:404
+msgid "skip refreshing the index after reset"
+msgstr "hoppa över uppdatering av indexet efter nollställning"
+
+#: builtin/reset.c:406
msgid "reset HEAD and index"
msgstr "återställ HEAD och index"
-#: builtin/reset.c:399
+#: builtin/reset.c:407
msgid "reset only HEAD"
msgstr "återställ endast HEAD"
-#: builtin/reset.c:401 builtin/reset.c:403
+#: builtin/reset.c:409 builtin/reset.c:411
msgid "reset HEAD, index and working tree"
msgstr "återställ HEAD, index och arbetskatalog"
-#: builtin/reset.c:405
+#: builtin/reset.c:413
msgid "reset HEAD but keep local changes"
msgstr "återställ HEAD men behåll lokala ändringar"
-#: builtin/reset.c:411
+#: builtin/reset.c:419
msgid "record only the fact that removed paths will be added later"
msgstr "registrera endast att borttagna sökvägar kommer läggas till senare"
-#: builtin/reset.c:445
+#: builtin/reset.c:452
#, c-format
msgid "Failed to resolve '%s' as a valid revision."
msgstr "Kunde inte slå upp \"%s\" som en giltig revision."
-#: builtin/reset.c:453
+#: builtin/reset.c:460
#, c-format
msgid "Failed to resolve '%s' as a valid tree."
msgstr "Kunde inte slå upp \"%s\" som ett giltigt träd."
-#: builtin/reset.c:472
+#: builtin/reset.c:479
msgid "--mixed with paths is deprecated; use 'git reset -- <paths>' instead."
msgstr ""
"--mixed rekommenderas inte med sökvägar; använd \"git reset -- <sökvägar>\"."
-#: builtin/reset.c:474
+#: builtin/reset.c:481
#, c-format
msgid "Cannot do %s reset with paths."
msgstr "Kan inte göra %s återställning med sökvägar."
-#: builtin/reset.c:489
+#: builtin/reset.c:496
#, c-format
msgid "%s reset is not allowed in a bare repository"
msgstr "%s återställning tillåts inte i ett naket arkiv"
-#: builtin/reset.c:520
+#: builtin/reset.c:527
msgid "Unstaged changes after reset:"
msgstr "Oköade ändringar efter återställning:"
-#: builtin/reset.c:523
+#: builtin/reset.c:530
#, c-format
msgid ""
-"\n"
-"It took %.2f seconds to enumerate unstaged changes after reset. You can\n"
-"use '--quiet' to avoid this. Set the config setting reset.quiet to true\n"
-"to make this the default.\n"
+"It took %.2f seconds to refresh the index after reset. You can use\n"
+"'--no-refresh' to avoid this."
msgstr ""
-"\n"
-"Det tog %.2f sekunder att räkna upp oköade ändringar efter återställning.\n"
-"Du kan använda \"--quiet\" för att förhindra detta. Ställ "
-"konfigurationsvariabeln\n"
-"reset.quiet till true för att göra detta till förval.\n"
+"Det tog %.2f sekunder att uppdatera indexet efter återställning.\n"
+"Du kan använda \"--no-refresh\" för undvika detta."
-#: builtin/reset.c:541
+#: builtin/reset.c:547
#, c-format
msgid "Could not reset index file to revision '%s'."
msgstr "Kunde inte återställa indexfilen till versionen \"%s\"."
-#: builtin/reset.c:546
+#: builtin/reset.c:552
msgid "Could not write new index file."
msgstr "Kunde inte skriva ny indexfil."
-#: builtin/rev-list.c:602
-msgid "object filtering requires --objects"
-msgstr "objektfiltrering kräver --objects"
-
-#: builtin/rev-list.c:674
+#: builtin/rev-list.c:659
msgid "rev-list does not support display of notes"
msgstr "rev-list stöder inte visning av anteckningar"
-#: builtin/rev-list.c:679
+#: builtin/rev-list.c:664
#, c-format
msgid "marked counting and '%s' cannot be used together"
msgstr "markerad räkning och \"%s\" kan inte användas samtidigt."
@@ -21938,11 +22427,11 @@ msgstr "föt"
msgid "group by field"
msgstr "gruppera efter fält"
-#: builtin/shortlog.c:394
+#: builtin/shortlog.c:395
msgid "too many arguments given outside repository"
msgstr "för många flaggor givna utanför arkivet"
-#: builtin/show-branch.c:13
+#: builtin/show-branch.c:14
msgid ""
"git show-branch [-a | --all] [-r | --remotes] [--topo-order | --date-order]\n"
" [--current] [--color[=<when>] | --no-color] [--sparse]\n"
@@ -21954,119 +22443,119 @@ msgstr ""
" [--more=<n> | --list | --independent | --merge-base]\n"
" [--no-name | --sha1-name] [--topics] [(<rev> | <mönster>)...]"
-#: builtin/show-branch.c:17
+#: builtin/show-branch.c:18
msgid "git show-branch (-g | --reflog)[=<n>[,<base>]] [--list] [<ref>]"
msgstr "git show-branch (-g | --reflog)[=<n>[,<bas>]] [--list] [<ref>]"
-#: builtin/show-branch.c:395
+#: builtin/show-branch.c:396
#, c-format
msgid "ignoring %s; cannot handle more than %d ref"
msgid_plural "ignoring %s; cannot handle more than %d refs"
msgstr[0] "ignorerar %s; kan inte hantera mer än %d referens"
msgstr[1] "ignorerar %s; kan inte hantera mer än %d referenser"
-#: builtin/show-branch.c:547
+#: builtin/show-branch.c:548
#, c-format
msgid "no matching refs with %s"
msgstr "inga motsvarande referenser med %s"
-#: builtin/show-branch.c:644
+#: builtin/show-branch.c:645
msgid "show remote-tracking and local branches"
msgstr "visa fjärrspårande och lokala grenar"
-#: builtin/show-branch.c:646
+#: builtin/show-branch.c:647
msgid "show remote-tracking branches"
msgstr "visa fjärrspårande grenar"
-#: builtin/show-branch.c:648
+#: builtin/show-branch.c:649
msgid "color '*!+-' corresponding to the branch"
msgstr "färga \"*!+-\" enligt grenen"
-#: builtin/show-branch.c:650
+#: builtin/show-branch.c:651
msgid "show <n> more commits after the common ancestor"
msgstr "visa <n> ytterligare incheckningar efter gemensam anfader"
-#: builtin/show-branch.c:652
+#: builtin/show-branch.c:653
msgid "synonym to more=-1"
msgstr "synonym till more=-1"
-#: builtin/show-branch.c:653
+#: builtin/show-branch.c:654
msgid "suppress naming strings"
msgstr "undertyck namnsträngar"
-#: builtin/show-branch.c:655
+#: builtin/show-branch.c:656
msgid "include the current branch"
msgstr "ta med aktuell gren"
-#: builtin/show-branch.c:657
+#: builtin/show-branch.c:658
msgid "name commits with their object names"
msgstr "namnge incheckningar med deras objektnamn"
-#: builtin/show-branch.c:659
+#: builtin/show-branch.c:660
msgid "show possible merge bases"
msgstr "visa möjliga sammanslagningsbaser"
-#: builtin/show-branch.c:661
+#: builtin/show-branch.c:662
msgid "show refs unreachable from any other ref"
msgstr "visa referenser som inte kan nås från någon annan referens"
-#: builtin/show-branch.c:663
+#: builtin/show-branch.c:664
msgid "show commits in topological order"
msgstr "visa incheckningar i topologisk ordning"
-#: builtin/show-branch.c:666
+#: builtin/show-branch.c:667
msgid "show only commits not on the first branch"
msgstr "visa endast incheckningar inte på den första grenen"
-#: builtin/show-branch.c:668
+#: builtin/show-branch.c:669
msgid "show merges reachable from only one tip"
msgstr "visa sammanslagningar som endast kan nås från en spets"
-#: builtin/show-branch.c:670
+#: builtin/show-branch.c:671
msgid "topologically sort, maintaining date order where possible"
msgstr "sortera topologiskt, behåll datumordning när möjligt"
-#: builtin/show-branch.c:673
+#: builtin/show-branch.c:674
msgid "<n>[,<base>]"
msgstr "<n>[,<bas>]"
-#: builtin/show-branch.c:674
+#: builtin/show-branch.c:675
msgid "show <n> most recent ref-log entries starting at base"
msgstr "visa <n> nyaste refloggposter med början på bas"
-#: builtin/show-branch.c:734
+#: builtin/show-branch.c:735
msgid "no branches given, and HEAD is not valid"
msgstr "inga grenar angavs, och HEAD är inte giltigt"
-#: builtin/show-branch.c:737
+#: builtin/show-branch.c:738
msgid "--reflog option needs one branch name"
msgstr "--reflog behöver ett namn på en gren"
-#: builtin/show-branch.c:740
+#: builtin/show-branch.c:741
#, c-format
msgid "only %d entry can be shown at one time."
msgid_plural "only %d entries can be shown at one time."
msgstr[0] "maximalt %d poster kan visas samtidigt."
msgstr[1] "maximalt %d poster kan visas samtidigt."
-#: builtin/show-branch.c:744
+#: builtin/show-branch.c:745
#, c-format
msgid "no such ref %s"
msgstr "ingen sådan referens %s"
-#: builtin/show-branch.c:830
+#: builtin/show-branch.c:831
#, c-format
msgid "cannot handle more than %d rev."
msgid_plural "cannot handle more than %d revs."
msgstr[0] "kan inte hantera mer än %d revision."
msgstr[1] "kan inte hantera mer än %d revisioner."
-#: builtin/show-branch.c:834
+#: builtin/show-branch.c:835
#, c-format
msgid "'%s' is not a valid ref."
msgstr "\"%s\" är inte en giltig referens."
-#: builtin/show-branch.c:837
+#: builtin/show-branch.c:838
#, c-format
msgid "cannot find commit %s (%s)"
msgstr "hittar inte incheckning %s (%s)"
@@ -22123,24 +22612,20 @@ msgstr "visa inte resultat på standard ut (användbart med --verify)"
msgid "show refs from stdin that aren't in local repository"
msgstr "visa referenser från standard in som inte finns i lokalt arkiv"
-#: builtin/sparse-checkout.c:22
+#: builtin/sparse-checkout.c:23
msgid "git sparse-checkout (init|list|set|add|reapply|disable) <options>"
msgstr "git sparse-checkout (init|list|set|add|reapply|disable) <flaggor>"
-#: builtin/sparse-checkout.c:46
-msgid "git sparse-checkout list"
-msgstr "git sparse-checkout list"
-
-#: builtin/sparse-checkout.c:60
+#: builtin/sparse-checkout.c:61
msgid "this worktree is not sparse"
msgstr "arbetskatalogen är inte gren"
-#: builtin/sparse-checkout.c:75
+#: builtin/sparse-checkout.c:76
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:176
+#: builtin/sparse-checkout.c:177
#, c-format
msgid ""
"directory '%s' contains untracked files, but is not in the sparse-checkout "
@@ -22149,98 +22634,131 @@ msgstr ""
"katalogen \"%s\" innehåller ospårade filer, men är inte i området som ages i "
"\"sparse-checkout\""
-#: builtin/sparse-checkout.c:184
+#: builtin/sparse-checkout.c:185
#, c-format
msgid "failed to remove directory '%s'"
msgstr "misslyckades ta bort katalogen \"%s\""
-#: builtin/sparse-checkout.c:324
+#: builtin/sparse-checkout.c:327
msgid "failed to create directory for sparse-checkout file"
msgstr "misslyckades skapa katalog för \"sparse-checkout\"-filen"
-#: builtin/sparse-checkout.c:365
-msgid "unable to upgrade repository format to enable worktreeConfig"
-msgstr "kunde inte uppgradera arkivformat för att aktivera worktreeConfig"
-
-#: builtin/sparse-checkout.c:367
-msgid "failed to set extensions.worktreeConfig setting"
-msgstr "misslyckades ändra inställningen extensions.worktreeConfig"
+#: builtin/sparse-checkout.c:366
+msgid "failed to initialize worktree config"
+msgstr "misslyckades initiera arbetskataloginställning"
#: builtin/sparse-checkout.c:411
msgid "failed to modify sparse-index config"
msgstr "misslyckades ändra inställning för sparse-index"
-#: builtin/sparse-checkout.c:422
-msgid "git sparse-checkout init [--cone] [--[no-]sparse-index]"
-msgstr "git sparse-checkout init [--cone] [--[no-]sparse-index]"
-
-#: builtin/sparse-checkout.c:441 builtin/sparse-checkout.c:729
-#: builtin/sparse-checkout.c:778
+#: builtin/sparse-checkout.c:441 builtin/sparse-checkout.c:793
+#: builtin/sparse-checkout.c:847
msgid "initialize the sparse-checkout in cone mode"
msgstr "initiera sparse-checkout i konläge"
-#: builtin/sparse-checkout.c:443 builtin/sparse-checkout.c:731
-#: builtin/sparse-checkout.c:780
+#: builtin/sparse-checkout.c:443 builtin/sparse-checkout.c:795
+#: builtin/sparse-checkout.c:849
msgid "toggle the use of a sparse index"
msgstr "slå på/av använding av glest index"
-#: builtin/sparse-checkout.c:476
+#: builtin/sparse-checkout.c:479
#, c-format
msgid "failed to open '%s'"
msgstr "misslyckades öppna \"%s\""
-#: builtin/sparse-checkout.c:528
+#: builtin/sparse-checkout.c:531
#, c-format
msgid "could not normalize path %s"
msgstr "kunde inte normalisera sökvägen \"%s\""
-#: builtin/sparse-checkout.c:557
+#: builtin/sparse-checkout.c:560
#, 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:612 builtin/sparse-checkout.c:640
+#: builtin/sparse-checkout.c:615 builtin/sparse-checkout.c:643
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:616
+#: builtin/sparse-checkout.c:619
msgid "existing sparse-checkout patterns do not use cone mode"
msgstr "befintliga filter för gles utcheckning använder inte konläge"
-#: builtin/sparse-checkout.c:682
-msgid "git sparse-checkout add (--stdin | <patterns>)"
-msgstr "git sparse-checkout add (--stdin | <mönster>)"
+#: builtin/sparse-checkout.c:707
+msgid "please run from the toplevel directory in non-cone mode"
+msgstr "vänligen kör från toppnivåkatalogen i icke-konläge"
+
+#: builtin/sparse-checkout.c:712
+msgid "specify directories rather than patterns (no leading slash)"
+msgstr "ange kataloger istället för mönster (utan inledande snedstreck)"
+
+#: builtin/sparse-checkout.c:714
+msgid ""
+"specify directories rather than patterns. If your directory starts with a "
+"'!', pass --skip-checks"
+msgstr ""
+"ange kataloger istället för mönster. Om din katalog börjar med ett \"!\", "
+"sänd med --skip-checks"
+
+#: builtin/sparse-checkout.c:716
+msgid ""
+"specify directories rather than patterns. If your directory really has any "
+"of '*?[]\\' in it, pass --skip-checks"
+msgstr ""
+"ange kataloger istället för mönster. Om din katalog faktiskt har tecknen '*?"
+"[]\\' i namnet, sänd med --skip-checks"
+
+#: builtin/sparse-checkout.c:732
+#, c-format
+msgid ""
+"'%s' is not a directory; to treat it as a directory anyway, rerun with --"
+"skip-checks"
+msgstr ""
+"\"%s\" är inte en katalog: för att ändå behandla det som en katalog, kör på "
+"nytt med --skip-checks"
+
+#: builtin/sparse-checkout.c:734
+#, c-format
+msgid ""
+"pass a leading slash before paths such as '%s' if you want a single file "
+"(see NON-CONE PROBLEMS in the git-sparse-checkout manual)."
+msgstr ""
+"sänd med ett inledande snedstreck före sökvägar som \"%s\" om du vill ha en "
+"enstaka file (se NON-CONE PROBLEMS i manualen git-sparse-checkout)."
+
+#: builtin/sparse-checkout.c:739
+msgid "git sparse-checkout add [--skip-checks] (--stdin | <patterns>)"
+msgstr "git sparse-checkout add [--skip-checks] (--stdin | <mönster>)"
+
+#: builtin/sparse-checkout.c:752 builtin/sparse-checkout.c:797
+msgid ""
+"skip some sanity checks on the given paths that might give false positives"
+msgstr ""
+"hoppa över några kontroller på de angivna sökvägarna som kan ge falska "
+"positiva"
-#: builtin/sparse-checkout.c:694 builtin/sparse-checkout.c:733
+#: builtin/sparse-checkout.c:755 builtin/sparse-checkout.c:800
msgid "read patterns from standard in"
msgstr "läs mönster från standard in"
-#: builtin/sparse-checkout.c:699
+#: builtin/sparse-checkout.c:760
msgid "no sparse-checkout to add to"
msgstr "ingen sparse-checkout att utöka"
-#: builtin/sparse-checkout.c:712
+#: builtin/sparse-checkout.c:775
msgid ""
-"git sparse-checkout set [--[no-]cone] [--[no-]sparse-index] (--stdin | "
-"<patterns>)"
+"git sparse-checkout set [--[no-]cone] [--[no-]sparse-index] [--skip-checks] "
+"(--stdin | <patterns>)"
msgstr ""
-"git sparse-checkout set [--[no-]cone] [--[no-]sparse-index] (--stdin | "
-"<mönster>)"
-
-#: builtin/sparse-checkout.c:765
-msgid "git sparse-checkout reapply [--[no-]cone] [--[no-]sparse-index]"
-msgstr "git sparse-checkout reapply [--[no-]cone] [--[no-]sparse-index]"
+"git sparse-checkout set [--[no-]cone] [--[no-]sparse-index] [--skip-checks] "
+"(--stdin | <mönster>)"
-#: builtin/sparse-checkout.c:785
+#: builtin/sparse-checkout.c:854
msgid "must be in a sparse-checkout to reapply sparsity patterns"
msgstr ""
"måste vara i en gles utcheckning för att tillämpa gleshetsmönster på nytt"
-#: builtin/sparse-checkout.c:803
-msgid "git sparse-checkout disable"
-msgstr "git sparse-checkout disable"
-
-#: builtin/sparse-checkout.c:845
+#: builtin/sparse-checkout.c:914
msgid "error while refreshing working directory"
msgstr "fel vid uppdatering av arbetskatalog"
@@ -22382,168 +22900,152 @@ msgstr "Indexet har inte tagits upp ur \"stash\":en"
msgid "could not restore untracked files from stash"
msgstr "kunde inte återställa ospårade filer från stash-post"
-#: builtin/stash.c:608 builtin/stash.c:706
+#: builtin/stash.c:608 builtin/stash.c:695
msgid "attempt to recreate the index"
msgstr "försök återskapa indexet"
-#: builtin/stash.c:652
+#: builtin/stash.c:641
#, c-format
msgid "Dropped %s (%s)"
msgstr "Kastade %s (%s)"
-#: builtin/stash.c:655
+#: builtin/stash.c:644
#, c-format
msgid "%s: Could not drop stash entry"
msgstr "%s: Kunde inte kasta \"stash\"-post"
-#: builtin/stash.c:668
+#: builtin/stash.c:657
#, c-format
msgid "'%s' is not a stash reference"
msgstr "\"%s\" är inte en \"stash\"-referens"
-#: builtin/stash.c:718
+#: builtin/stash.c:707
msgid "The stash entry is kept in case you need it again."
msgstr "Stash-posten behålls ifall du behöver den igen."
-#: builtin/stash.c:741
+#: builtin/stash.c:730
msgid "No branch name specified"
msgstr "Inget grennamn angavs"
-#: builtin/stash.c:825
+#: builtin/stash.c:809
msgid "failed to parse tree"
msgstr "misslyckades tolka träd"
-#: builtin/stash.c:836
+#: builtin/stash.c:820
msgid "failed to unpack trees"
msgstr "misslyckades packa upp träd"
-#: builtin/stash.c:856
+#: builtin/stash.c:840
msgid "include untracked files in the stash"
msgstr "ta med ospårade filer i \"stash\""
-#: builtin/stash.c:859
+#: builtin/stash.c:843
msgid "only show untracked files in the stash"
msgstr "visa bara ospårade filer i \"stash\""
-#: builtin/stash.c:946 builtin/stash.c:983
+#: builtin/stash.c:930 builtin/stash.c:967
#, c-format
msgid "Cannot update %s with %s"
msgstr "Kan inte uppdatera %s med %s"
-#: builtin/stash.c:964 builtin/stash.c:1678 builtin/stash.c:1750
+#: builtin/stash.c:948 builtin/stash.c:1667 builtin/stash.c:1739
msgid "stash message"
msgstr "\"stash\"-meddelande"
-#: builtin/stash.c:974
+#: builtin/stash.c:958
msgid "\"git stash store\" requires one <commit> argument"
msgstr "\"git stash store\" kräver ett <incheckning>-argument"
-#: builtin/stash.c:1159
+#: builtin/stash.c:1143
msgid "No staged changes"
msgstr "Inga köade ändringar"
-#: builtin/stash.c:1220
+#: builtin/stash.c:1204
msgid "No changes selected"
msgstr "Inga ändringar valda"
-#: builtin/stash.c:1320
+#: builtin/stash.c:1304
msgid "You do not have the initial commit yet"
msgstr "Du har inte den första incheckningen ännu"
-#: builtin/stash.c:1347
+#: builtin/stash.c:1331
msgid "Cannot save the current index state"
msgstr "Kan inte spara aktuellt tillstånd för indexet"
-#: builtin/stash.c:1356
+#: builtin/stash.c:1340
msgid "Cannot save the untracked files"
msgstr "Kan inte spara ospårade filer"
-#: builtin/stash.c:1367 builtin/stash.c:1386
+#: builtin/stash.c:1351 builtin/stash.c:1370
msgid "Cannot save the current worktree state"
msgstr "Kan inte spara aktuellt tillstånd för arbetskatalogen"
-#: builtin/stash.c:1377
+#: builtin/stash.c:1361
msgid "Cannot save the current staged state"
msgstr "Kan inte spara aktuellt tillstånd kö"
-#: builtin/stash.c:1414
+#: builtin/stash.c:1398
msgid "Cannot record working tree state"
msgstr "Kan inte registrera tillstånd för arbetskatalog"
-#: builtin/stash.c:1463
+#: builtin/stash.c:1447
msgid "Can't use --patch and --include-untracked or --all at the same time"
msgstr "Kan inte använda --patch och --include-untracked eller --all samtidigt"
-#: builtin/stash.c:1474
+#: builtin/stash.c:1458
msgid "Can't use --staged and --include-untracked or --all at the same time"
msgstr ""
"Kan inte använda --staged och --include-untracked eller --all samtidigt"
-#: builtin/stash.c:1492
+#: builtin/stash.c:1476
msgid "Did you forget to 'git add'?"
msgstr "Glömde du använda \"git add\"?"
-#: builtin/stash.c:1507
+#: builtin/stash.c:1491
msgid "No local changes to save"
msgstr "Inga lokala ändringar att spara"
-#: builtin/stash.c:1514
+#: builtin/stash.c:1498
msgid "Cannot initialize stash"
msgstr "Kan inte initiera \"stash\""
-#: builtin/stash.c:1529
+#: builtin/stash.c:1513
msgid "Cannot save the current status"
msgstr "Kan inte spara aktuell status"
-#: builtin/stash.c:1534
+#: builtin/stash.c:1518
#, c-format
msgid "Saved working directory and index state %s"
msgstr "Sparade arbetskatalogen och indexstatus %s"
-#: builtin/stash.c:1627
+#: builtin/stash.c:1615
msgid "Cannot remove worktree changes"
msgstr "Kan inte ta bort ändringar i arbetskatalogen"
-#: builtin/stash.c:1667 builtin/stash.c:1739
+#: builtin/stash.c:1656 builtin/stash.c:1728
msgid "keep index"
msgstr "behåll indexet"
-#: builtin/stash.c:1669 builtin/stash.c:1741
+#: builtin/stash.c:1658 builtin/stash.c:1730
msgid "stash staged changes only"
msgstr "stash:a endast köade ändringar"
-#: builtin/stash.c:1671 builtin/stash.c:1743
+#: builtin/stash.c:1660 builtin/stash.c:1732
msgid "stash in patch mode"
msgstr "\"stash\" i \"patch\"-läge"
-#: builtin/stash.c:1672 builtin/stash.c:1744
+#: builtin/stash.c:1661 builtin/stash.c:1733
msgid "quiet mode"
msgstr "tyst läge"
-#: builtin/stash.c:1674 builtin/stash.c:1746
+#: builtin/stash.c:1663 builtin/stash.c:1735
msgid "include untracked files in stash"
msgstr "ta med ospårade filer i \"stash\""
-#: builtin/stash.c:1676 builtin/stash.c:1748
+#: builtin/stash.c:1665 builtin/stash.c:1737
msgid "include ignore files"
msgstr "ta med ignorerade filer"
-#: builtin/stash.c:1783
-msgid ""
-"the stash.useBuiltin support has been removed!\n"
-"See its entry in 'git help config' for details."
-msgstr ""
-"stödet för stash.useBuiltin har tagits bort!\n"
-"Se posten för det i \"git help config\" för detaljer."
-
-#: builtin/stripspace.c:18
-msgid "git stripspace [-s | --strip-comments]"
-msgstr "git stripspace [-s | --strip-comments]"
-
-#: builtin/stripspace.c:19
-msgid "git stripspace [-c | --comment-lines]"
-msgstr "git stripspace [-c | --comment-lines]"
-
#: builtin/stripspace.c:37
msgid "skip and remove all lines starting with comment character"
msgstr "hoppa över och ta bort alla rader som inleds med kommentarstecken"
@@ -22552,21 +23054,17 @@ msgstr "hoppa över och ta bort alla rader som inleds med kommentarstecken"
msgid "prepend comment character and space to each line"
msgstr "lägg in kommentarstecken och blanksteg först på varje rad"
-#: builtin/submodule--helper.c:46 builtin/submodule--helper.c:2668
+#: builtin/submodule--helper.c:50 builtin/submodule--helper.c:2486
#, c-format
msgid "Expecting a full ref name, got %s"
msgstr "Förväntade fullt referensnamn, fick %s"
-#: builtin/submodule--helper.c:63
-msgid "submodule--helper print-default-remote takes no arguments"
-msgstr "submodule--helper print-default-remote tar inga argument"
-
-#: builtin/submodule--helper.c:101
+#: builtin/submodule--helper.c:103
#, c-format
msgid "cannot strip one component off url '%s'"
msgstr "kan inte ta bort en komponent från url:en \"%s\""
-#: builtin/submodule--helper.c:211
+#: builtin/submodule--helper.c:213
#, c-format
msgid ""
"could not look up configuration '%s'. Assuming this repository is its own "
@@ -22575,26 +23073,26 @@ msgstr ""
"kunde inte slå upp konfigurationen \"%s\". Antar att arkivet är sin eget "
"officiella uppström."
-#: builtin/submodule--helper.c:405 builtin/submodule--helper.c:1859
+#: builtin/submodule--helper.c:413 builtin/submodule--helper.c:1873
msgid "alternative anchor for relative paths"
msgstr "alternativa ankare för relativa sökvägar"
-#: builtin/submodule--helper.c:410
+#: builtin/submodule--helper.c:418
msgid "git submodule--helper list [--prefix=<path>] [<path>...]"
msgstr "git submodule--helper list [--prefix=<sökväg>] [<sökväg>...]"
-#: builtin/submodule--helper.c:468 builtin/submodule--helper.c:605
-#: builtin/submodule--helper.c:628
+#: builtin/submodule--helper.c:476 builtin/submodule--helper.c:617
+#: builtin/submodule--helper.c:640
#, c-format
msgid "No url found for submodule path '%s' in .gitmodules"
msgstr "Hittade ingen url för undermodulsökvägen \"%s\" i .gitmodules"
-#: builtin/submodule--helper.c:520
+#: builtin/submodule--helper.c:528
#, c-format
msgid "Entering '%s'\n"
msgstr "GÃ¥r in i \"%s\"\n"
-#: builtin/submodule--helper.c:523
+#: builtin/submodule--helper.c:531
#, c-format
msgid ""
"run_command returned non-zero status for %s\n"
@@ -22603,7 +23101,7 @@ msgstr ""
"run_command returnerade icke-nollstatus för %s\n"
"."
-#: builtin/submodule--helper.c:545
+#: builtin/submodule--helper.c:553
#, c-format
msgid ""
"run_command returned non-zero status while recursing in the nested "
@@ -22614,67 +23112,67 @@ msgstr ""
"undermoduler för %s\n"
"."
-#: builtin/submodule--helper.c:561
+#: builtin/submodule--helper.c:569
msgid "suppress output of entering each submodule command"
msgstr "dölj utdata från för varje undermodulskommando som startas"
-#: builtin/submodule--helper.c:563 builtin/submodule--helper.c:864
-#: builtin/submodule--helper.c:1453
+#: builtin/submodule--helper.c:571 builtin/submodule--helper.c:876
+#: builtin/submodule--helper.c:1458
msgid "recurse into nested submodules"
msgstr "rekursera in i nästlade undermoduler"
-#: builtin/submodule--helper.c:568
+#: builtin/submodule--helper.c:576
msgid "git submodule--helper foreach [--quiet] [--recursive] [--] <command>"
msgstr "git submodule--helper sync [--quiet] [--recursive] [--] [<kommando>]"
-#: builtin/submodule--helper.c:642
+#: builtin/submodule--helper.c:654
#, c-format
msgid "Failed to register url for submodule path '%s'"
msgstr "Misslyckades registrera url för undermodulsökväg \"%s\""
-#: builtin/submodule--helper.c:646
+#: builtin/submodule--helper.c:658
#, c-format
msgid "Submodule '%s' (%s) registered for path '%s'\n"
msgstr "Undermodulen \"%s\" (%s) registrerad för sökvägen \"%s\"\n"
-#: builtin/submodule--helper.c:656
+#: builtin/submodule--helper.c:668
#, c-format
msgid "warning: command update mode suggested for submodule '%s'\n"
msgstr "varning: kommandouppdateringsläge föreslogs för undermodulen \"%s\"\n"
-#: builtin/submodule--helper.c:663
+#: builtin/submodule--helper.c:675
#, c-format
msgid "Failed to register update mode for submodule path '%s'"
msgstr "Misslyckades registrera uppdateringsläge för undermodulsökväg \"%s\""
-#: builtin/submodule--helper.c:685
+#: builtin/submodule--helper.c:697
msgid "suppress output for initializing a submodule"
msgstr "dölj utdata från initiering av undermodul"
-#: builtin/submodule--helper.c:690
+#: builtin/submodule--helper.c:702
msgid "git submodule--helper init [<options>] [<path>]"
msgstr "git submodule--helper init [<flaggor>] [<sökväg>]"
-#: builtin/submodule--helper.c:763 builtin/submodule--helper.c:898
+#: builtin/submodule--helper.c:775 builtin/submodule--helper.c:910
#, c-format
msgid "no submodule mapping found in .gitmodules for path '%s'"
msgstr "hittade ingen undermodulmappning i .gitmodules för sökvägen \"%s\""
-#: builtin/submodule--helper.c:811
+#: builtin/submodule--helper.c:823
#, c-format
msgid "could not resolve HEAD ref inside the submodule '%s'"
msgstr "kunde inte bestämma HEAD:s incheckning i undermodulen \"%s\""
-#: builtin/submodule--helper.c:838 builtin/submodule--helper.c:1423
+#: builtin/submodule--helper.c:850 builtin/submodule--helper.c:1428
#, c-format
msgid "failed to recurse into submodule '%s'"
msgstr "misslyckades rekursera in i undermodulen \"%s\""
-#: builtin/submodule--helper.c:862 builtin/submodule--helper.c:1590
+#: builtin/submodule--helper.c:874 builtin/submodule--helper.c:1595
msgid "suppress submodule status output"
msgstr "hindra statusutskrift för undermodul"
-#: builtin/submodule--helper.c:863
+#: builtin/submodule--helper.c:875
msgid ""
"use commit stored in the index instead of the one stored in the submodule "
"HEAD"
@@ -22682,94 +23180,94 @@ msgstr ""
"visa incheckning från indexet istället för den som lagrats i undermodulens "
"HEAD"
-#: builtin/submodule--helper.c:869
+#: builtin/submodule--helper.c:881
msgid "git submodule status [--quiet] [--cached] [--recursive] [<path>...]"
msgstr "git submodule status [--quitet] [--cached] [--recursive] [<sökväg>...]"
-#: builtin/submodule--helper.c:893
+#: builtin/submodule--helper.c:905
msgid "git submodule--helper name <path>"
msgstr "git submodule--helper name <sökväg>"
-#: builtin/submodule--helper.c:965
+#: builtin/submodule--helper.c:977
#, c-format
msgid "* %s %s(blob)->%s(submodule)"
msgstr "* %s %s(blob)->%s(submodule)"
-#: builtin/submodule--helper.c:968
+#: builtin/submodule--helper.c:980
#, c-format
msgid "* %s %s(submodule)->%s(blob)"
msgstr "* %s %s(submodule)->%s(blob)"
-#: builtin/submodule--helper.c:981
+#: builtin/submodule--helper.c:993
#, c-format
msgid "%s"
msgstr "%s"
-#: builtin/submodule--helper.c:1031
+#: builtin/submodule--helper.c:1043
#, c-format
msgid "couldn't hash object from '%s'"
msgstr "kunde inte hasha objekt från \"%s\""
-#: builtin/submodule--helper.c:1035
+#: builtin/submodule--helper.c:1047
#, c-format
msgid "unexpected mode %o\n"
msgstr "okänt läge %o\n"
-#: builtin/submodule--helper.c:1276
+#: builtin/submodule--helper.c:1288
msgid "use the commit stored in the index instead of the submodule HEAD"
msgstr "använd incechkning lagrad i indexet istället för undermodulens HEAD"
-#: builtin/submodule--helper.c:1278
+#: builtin/submodule--helper.c:1290
msgid "compare the commit in the index with that in the submodule HEAD"
msgstr "jämför incheckningen i indexet med den i undermodulens HEAD"
-#: builtin/submodule--helper.c:1280
+#: builtin/submodule--helper.c:1292
msgid "skip submodules with 'ignore_config' value set to 'all'"
msgstr ""
"hoppa över undermoduler där värdet för \"ignore_config\" är satt till \"all\""
-#: builtin/submodule--helper.c:1282
+#: builtin/submodule--helper.c:1294
msgid "limit the summary size"
msgstr "begränsa översiktsstorleken"
-#: builtin/submodule--helper.c:1287
+#: builtin/submodule--helper.c:1299
msgid "git submodule--helper summary [<options>] [<commit>] [--] [<path>]"
msgstr ""
"git submodule--helper summary [<flaggor>] [<incheckning>] [--] [<sökväg>]"
-#: builtin/submodule--helper.c:1311
+#: builtin/submodule--helper.c:1323
msgid "could not fetch a revision for HEAD"
msgstr "kunde inte hämta en version för HEAD"
-#: builtin/submodule--helper.c:1373
+#: builtin/submodule--helper.c:1384
#, c-format
msgid "Synchronizing submodule url for '%s'\n"
msgstr "Synkroniserar undermodul-url för \"%s\"\n"
-#: builtin/submodule--helper.c:1379
+#: builtin/submodule--helper.c:1390
#, c-format
msgid "failed to register url for submodule path '%s'"
msgstr "misslyckades registrera url för undermodulsökväg \"%s\""
-#: builtin/submodule--helper.c:1393
+#: builtin/submodule--helper.c:1399
#, c-format
msgid "failed to get the default remote for submodule '%s'"
msgstr "misslyckades hämta standardfjärr för undermodulsökväg \"%s\""
-#: builtin/submodule--helper.c:1404
+#: builtin/submodule--helper.c:1409
#, c-format
msgid "failed to update remote for submodule '%s'"
msgstr "misslyckades uppdatera fjärr för undermodulsökväg \"%s\""
-#: builtin/submodule--helper.c:1451
+#: builtin/submodule--helper.c:1456
msgid "suppress output of synchronizing submodule url"
msgstr "dölj utdata från synkronisering av undermodul-url"
-#: builtin/submodule--helper.c:1458
+#: builtin/submodule--helper.c:1463
msgid "git submodule--helper sync [--quiet] [--recursive] [<path>]"
msgstr "git submodule--helper sync [--quiet] [--recursive] [<sökväg>]"
-#: builtin/submodule--helper.c:1508
+#: builtin/submodule--helper.c:1513
#, c-format
msgid ""
"Submodule work tree '%s' contains a .git directory. This will be replaced "
@@ -22778,7 +23276,7 @@ msgstr ""
"Undermodulsarbetskatalogen \"%s\" innehåller en .git-katalog. Denna kommer "
"ersättas med en .git-fil med absorbgitdirs."
-#: builtin/submodule--helper.c:1525
+#: builtin/submodule--helper.c:1530
#, c-format
msgid ""
"Submodule work tree '%s' contains local modifications; use '-f' to discard "
@@ -22787,46 +23285,46 @@ msgstr ""
"Undermodulens arbetskatalog \"%s\" har lokala ändringar; \"-f\" kastar bort "
"dem"
-#: builtin/submodule--helper.c:1533
+#: builtin/submodule--helper.c:1538
#, c-format
msgid "Cleared directory '%s'\n"
msgstr "Rensade katalogen \"%s\"\n"
-#: builtin/submodule--helper.c:1535
+#: builtin/submodule--helper.c:1540
#, c-format
msgid "Could not remove submodule work tree '%s'\n"
msgstr "Kunde inte ta bort undermodulens arbetskatalog \"%s\"\n"
-#: builtin/submodule--helper.c:1546
+#: builtin/submodule--helper.c:1551
#, c-format
msgid "could not create empty submodule directory %s"
msgstr "kunde inte skapa tom undermodulskatalog %s"
-#: builtin/submodule--helper.c:1562
+#: builtin/submodule--helper.c:1567
#, c-format
msgid "Submodule '%s' (%s) unregistered for path '%s'\n"
msgstr "Undermodulen \"%s\" (%s) registrerad för sökvägen \"%s\"\n"
-#: builtin/submodule--helper.c:1591
+#: builtin/submodule--helper.c:1596
msgid "remove submodule working trees even if they contain local changes"
msgstr ""
"ta bort undermodulers arbetskataloger även om de innehåller lokala ändringar"
-#: builtin/submodule--helper.c:1592
+#: builtin/submodule--helper.c:1597
msgid "unregister all submodules"
msgstr "avregistrera alla undermoduler"
-#: builtin/submodule--helper.c:1597
+#: builtin/submodule--helper.c:1602
msgid ""
"git submodule deinit [--quiet] [-f | --force] [--all | [--] [<path>...]]"
msgstr ""
"git submodule deinit [--quiet] [-f | --force] [--all | [--] [<sökväg>...]]"
-#: builtin/submodule--helper.c:1611
+#: builtin/submodule--helper.c:1616
msgid "Use '--all' if you really want to deinitialize all submodules"
msgstr "Använd \"--all\" om du verkligen vill avinitiera alla undermoduler"
-#: builtin/submodule--helper.c:1656
+#: builtin/submodule--helper.c:1665
msgid ""
"An alternate computed from a superproject's alternate is invalid.\n"
"To allow Git to clone without an alternate in such a case, set\n"
@@ -22838,102 +23336,102 @@ msgstr ""
"submodule.alternateErrorStrategy till \"info\" eller, likvärdigt, klona\n"
"med \"--reference-if-able\" istället för \"--reference\"."
-#: builtin/submodule--helper.c:1701 builtin/submodule--helper.c:1704
+#: builtin/submodule--helper.c:1710 builtin/submodule--helper.c:1713
#, c-format
msgid "submodule '%s' cannot add alternate: %s"
msgstr "undermodulen \"%s\" kan inte lägga till suppleant: %s"
-#: builtin/submodule--helper.c:1740
+#: builtin/submodule--helper.c:1749
#, c-format
msgid "Value '%s' for submodule.alternateErrorStrategy is not recognized"
msgstr "Värdet \"%s\" i submodule.alternateErrorStrategy förstås inte"
-#: builtin/submodule--helper.c:1747
+#: builtin/submodule--helper.c:1756
#, c-format
msgid "Value '%s' for submodule.alternateLocation is not recognized"
msgstr "Värdet \"%s\" i submodule.alternateLocation förstås inte"
-#: builtin/submodule--helper.c:1772
+#: builtin/submodule--helper.c:1781
#, c-format
msgid "refusing to create/use '%s' in another submodule's git dir"
msgstr "vägrar skapa/använda \"%s\" i en annan undermoduls gitkatalog"
-#: builtin/submodule--helper.c:1813
+#: builtin/submodule--helper.c:1826
#, c-format
msgid "clone of '%s' into submodule path '%s' failed"
msgstr "misslyckades klona \"%s\" till undermodulsökvägen \"%s\""
-#: builtin/submodule--helper.c:1818
+#: builtin/submodule--helper.c:1831
#, c-format
msgid "directory not empty: '%s'"
msgstr "katalogen inte tom: \"%s\""
-#: builtin/submodule--helper.c:1830
+#: builtin/submodule--helper.c:1843
#, c-format
msgid "could not get submodule directory for '%s'"
msgstr "kunde inte få tag i undermodulkatalog för \"%s\""
-#: builtin/submodule--helper.c:1862
+#: builtin/submodule--helper.c:1876
msgid "where the new submodule will be cloned to"
msgstr "var den nya undermodulen ska klonas till"
-#: builtin/submodule--helper.c:1865
+#: builtin/submodule--helper.c:1879
msgid "name of the new submodule"
msgstr "namn på den nya undermodulen"
-#: builtin/submodule--helper.c:1868
+#: builtin/submodule--helper.c:1882
msgid "url where to clone the submodule from"
msgstr "URL att klona undermodulen från"
-#: builtin/submodule--helper.c:1876 builtin/submodule--helper.c:3265
+#: builtin/submodule--helper.c:1890 builtin/submodule--helper.c:3383
msgid "depth for shallow clones"
msgstr "djup för grunda kloner"
-#: builtin/submodule--helper.c:1879 builtin/submodule--helper.c:2526
-#: builtin/submodule--helper.c:3258
+#: builtin/submodule--helper.c:1893 builtin/submodule--helper.c:2731
+#: builtin/submodule--helper.c:3376
msgid "force cloning progress"
msgstr "tvinga kloningsförlopp"
-#: builtin/submodule--helper.c:1881 builtin/submodule--helper.c:2528
+#: builtin/submodule--helper.c:1895 builtin/submodule--helper.c:2733
msgid "disallow cloning into non-empty directory"
msgstr "förhindra kloning till icke-tom katalog"
-#: builtin/submodule--helper.c:1888
+#: builtin/submodule--helper.c:1903
msgid ""
"git submodule--helper clone [--prefix=<path>] [--quiet] [--reference "
-"<repository>] [--name <name>] [--depth <depth>] [--single-branch] --url "
-"<url> --path <path>"
+"<repository>] [--name <name>] [--depth <depth>] [--single-branch] [--filter "
+"<filter-spec>] --url <url> --path <path>"
msgstr ""
"git submodule--helper clone [--prefix=<sökväg>] [--quiet] [--reference "
-"<arkiv>] [--name <namn>] [--depth <djup>] [--single-branch] --url <url> --"
-"path <sökväg>"
+"<arkiv>] [--name <namn>] [--depth <djup>] [--single-branch] [--filter "
+"<filterangivelse>] --url <url> --path <sökväg>"
-#: builtin/submodule--helper.c:1925
+#: builtin/submodule--helper.c:1943
#, c-format
msgid "Invalid update mode '%s' for submodule path '%s'"
msgstr "Ogiltigt uppdateringsläge \"%s\" för undermodulsökväg \"%s\""
-#: builtin/submodule--helper.c:1929
+#: builtin/submodule--helper.c:1947
#, c-format
msgid "Invalid update mode '%s' configured for submodule path '%s'"
msgstr ""
"Ogiltigt uppdateringsläge \"%s\" konfigurerat för undermodulsökväg \"%s\""
-#: builtin/submodule--helper.c:2044
+#: builtin/submodule--helper.c:2041
#, c-format
msgid "Submodule path '%s' not initialized"
msgstr "Undermodulsökvägen \"%s\" har inte initierats"
-#: builtin/submodule--helper.c:2048
+#: builtin/submodule--helper.c:2045
msgid "Maybe you want to use 'update --init'?"
msgstr "Kanske menade du att använda \"update --init\"?"
-#: builtin/submodule--helper.c:2078
+#: builtin/submodule--helper.c:2075
#, c-format
msgid "Skipping unmerged submodule %s"
msgstr "Hoppar över ej sammanslagen undermodul %s"
-#: builtin/submodule--helper.c:2107
+#: builtin/submodule--helper.c:2104
#, c-format
msgid "Skipping submodule '%s'"
msgstr "Hoppar över undermodulen \"%s\""
@@ -22948,52 +23446,52 @@ msgstr "Misslyckades klona \"%s\". Nytt försök planlagt"
msgid "Failed to clone '%s' a second time, aborting"
msgstr "Misslyckades klona \"%s\" för andra gången, avbryter"
-#: builtin/submodule--helper.c:2373
+#: builtin/submodule--helper.c:2371
#, c-format
msgid "Unable to checkout '%s' in submodule path '%s'"
msgstr "Kan inte checka ut \"%s\" i undermodulsökvägen \"%s\""
-#: builtin/submodule--helper.c:2377
+#: builtin/submodule--helper.c:2375
#, c-format
msgid "Unable to rebase '%s' in submodule path '%s'"
msgstr "Kan inte ombasera \"%s\" i undermodulsökvägen \"%s\""
-#: builtin/submodule--helper.c:2381
+#: builtin/submodule--helper.c:2379
#, c-format
msgid "Unable to merge '%s' in submodule path '%s'"
msgstr "Kan inte slå ihop \"%s\" i undermodulsökvägen \"%s\""
-#: builtin/submodule--helper.c:2385
+#: builtin/submodule--helper.c:2383
#, c-format
msgid "Execution of '%s %s' failed in submodule path '%s'"
msgstr "Misslyckades köra \"%s %s\" i undermodulsökvägen \"%s\""
-#: builtin/submodule--helper.c:2409
+#: builtin/submodule--helper.c:2402
#, c-format
msgid "Submodule path '%s': checked out '%s'\n"
msgstr "Undermodulsökvägen \"%s\": checkade ut \"%s\"\n"
-#: builtin/submodule--helper.c:2413
+#: builtin/submodule--helper.c:2406
#, c-format
msgid "Submodule path '%s': rebased into '%s'\n"
msgstr "Undermodulsökvägen \"%s\": ombaserade in i \"%s\"\n"
-#: builtin/submodule--helper.c:2417
+#: builtin/submodule--helper.c:2410
#, c-format
msgid "Submodule path '%s': merged in '%s'\n"
msgstr "Undermodulsökvägen \"%s\": sammanslagen i \"%s\"\n"
-#: builtin/submodule--helper.c:2421
+#: builtin/submodule--helper.c:2414
#, c-format
msgid "Submodule path '%s': '%s %s'\n"
msgstr "Undermodulsökvägen \"%s\": \"%s %s\"\n"
-#: builtin/submodule--helper.c:2445
+#: builtin/submodule--helper.c:2438
#, c-format
msgid "Unable to fetch in submodule path '%s'; trying to directly fetch %s:"
msgstr "Kan inte hämta i undermodulsökväg \"%s\"; försökte hämta %s direkt:"
-#: builtin/submodule--helper.c:2454
+#: builtin/submodule--helper.c:2447
#, c-format
msgid ""
"Fetched in submodule path '%s', but it did not contain %s. Direct fetching "
@@ -23002,176 +23500,204 @@ msgstr ""
"Hämtade i undermodulssökvägen \"%s\", men den innehöll inte %s. Direkt "
"hämtning av incheckningen misslyckades."
-#: builtin/submodule--helper.c:2505 builtin/submodule--helper.c:2575
-#: builtin/submodule--helper.c:2813
+#: builtin/submodule--helper.c:2481
+#, c-format
+msgid ""
+"Submodule (%s) branch configured to inherit branch from superproject, but "
+"the superproject is not on any branch"
+msgstr ""
+"Undermodulens (%s) gren inställd på att ärva gren från huvudprojektet, men "
+"huvudprojektet är inte på någon gren"
+
+#: builtin/submodule--helper.c:2499
+#, c-format
+msgid "could not get a repository handle for submodule '%s'"
+msgstr "kunde inte få tag i arkivhandtag för undermodulen \"%s\""
+
+#: builtin/submodule--helper.c:2588
+#, c-format
+msgid "Unable to find current revision in submodule path '%s'"
+msgstr "Kan inte hitta aktuell revision i undermodulsökvägen \"%s\""
+
+#: builtin/submodule--helper.c:2599
+#, c-format
+msgid "Unable to fetch in submodule path '%s'"
+msgstr "Kan inte hämta i undermodulsökväg \"%s\""
+
+#: builtin/submodule--helper.c:2604
+#, c-format
+msgid "Unable to find %s revision in submodule path '%s'"
+msgstr "Kan inte hitta %s revision i undermodulsökvägen \"%s\""
+
+#: builtin/submodule--helper.c:2640
+#, c-format
+msgid "Failed to recurse into submodule path '%s'"
+msgstr "Misslyckades rekursera in i undermodulsökväg \"%s\""
+
+#: builtin/submodule--helper.c:2699
+msgid "force checkout updates"
+msgstr "tvinga utcheckningsuppdateringar"
+
+#: builtin/submodule--helper.c:2701
+msgid "initialize uninitialized submodules before update"
+msgstr "initiera oinitierade undermoduler före uppdateringen"
+
+#: builtin/submodule--helper.c:2703
+msgid "use SHA-1 of submodule's remote tracking branch"
+msgstr "använd SHA-1 från undermodulers fjärrspårningsgren"
+
+#: builtin/submodule--helper.c:2705
+msgid "traverse submodules recursively"
+msgstr "traversera undermoduler rekursivt"
+
+#: builtin/submodule--helper.c:2707
+msgid "don't fetch new objects from the remote site"
+msgstr "hämta inte nya objekt från fjärrplatsen"
+
+#: builtin/submodule--helper.c:2710 builtin/submodule--helper.c:2892
msgid "path into the working tree"
msgstr "sökväg inuti arbetskatalogen"
-#: builtin/submodule--helper.c:2508 builtin/submodule--helper.c:2580
+#: builtin/submodule--helper.c:2713
msgid "path into the working tree, across nested submodule boundaries"
msgstr "sökväg inuti arbetskatalogen, genom nästlade undermodulgränser"
-#: builtin/submodule--helper.c:2512 builtin/submodule--helper.c:2578
+#: builtin/submodule--helper.c:2717
msgid "rebase, merge, checkout or none"
msgstr "rebase, merge, checkout eller none"
-#: builtin/submodule--helper.c:2518
+#: builtin/submodule--helper.c:2723
msgid "create a shallow clone truncated to the specified number of revisions"
msgstr "skapa en grund klon trunkerad till angivet antal revisioner"
-#: builtin/submodule--helper.c:2521
+#: builtin/submodule--helper.c:2726
msgid "parallel jobs"
msgstr "parallella jobb"
-#: builtin/submodule--helper.c:2523
+#: builtin/submodule--helper.c:2728
msgid "whether the initial clone should follow the shallow recommendation"
msgstr "om den första klonen ska följa rekommendation för grund kloning"
-#: builtin/submodule--helper.c:2524
+#: builtin/submodule--helper.c:2729
msgid "don't print cloning progress"
msgstr "skriv inte klonförlopp"
-#: builtin/submodule--helper.c:2535
-msgid "git submodule--helper update-clone [--prefix=<path>] [<path>...]"
-msgstr "git submodule--helper update-clone [--prefix=<sökväg>] [<sökväg>...]"
-
-#: builtin/submodule--helper.c:2548
-msgid "bad value for update parameter"
-msgstr "felaktigt värde för parametern update"
-
-#: builtin/submodule--helper.c:2566
-msgid "suppress output for update by rebase or merge"
-msgstr "dölj utdata för uppdatering via ombasering eller sammanslagning{"
-
-#: builtin/submodule--helper.c:2567
-msgid "force checkout updates"
-msgstr "tvinga utcheckningsuppdateringar"
-
-#: builtin/submodule--helper.c:2569
-msgid "don't fetch new objects from the remote site"
-msgstr "hämta inte nya objekt från fjärrplatsen"
-
-#: builtin/submodule--helper.c:2571
-msgid "overrides update mode in case the repository is a fresh clone"
-msgstr "överstyr uppdateringsläge om arkviet är en färsk klon"
-
-#: builtin/submodule--helper.c:2572
-msgid "depth for shallow fetch"
-msgstr "djup för grund hämtning"
-
-#: builtin/submodule--helper.c:2582
-msgid "sha1"
-msgstr "sha1"
-
-#: builtin/submodule--helper.c:2583
-msgid "SHA1 expected by superproject"
-msgstr "SHA1 förväntades av överprojekt{"
-
-#: builtin/submodule--helper.c:2585
-msgid "subsha1"
-msgstr "subsha1"
-
-#: builtin/submodule--helper.c:2586
-msgid "SHA1 of submodule's HEAD"
-msgstr "SHA1 för undermodulens \"HEAD\""
-
-#: builtin/submodule--helper.c:2592
-msgid "git submodule--helper run-update-procedure [<options>] <path>"
-msgstr "git submodule--helper run-update-procedure [<flaggor>] <sökväg>"
-
-#: builtin/submodule--helper.c:2663
-#, c-format
+#: builtin/submodule--helper.c:2741
msgid ""
-"Submodule (%s) branch configured to inherit branch from superproject, but "
-"the superproject is not on any branch"
+"git submodule [--quiet] update [--init [--filter=<filter-spec>]] [--remote] "
+"[-N|--no-fetch] [-f|--force] [--checkout|--merge|--rebase] [--[no-]recommend-"
+"shallow] [--reference <repository>] [--recursive] [--[no-]single-branch] "
+"[--] [<path>...]"
msgstr ""
-"Undermodulens (%s) gren inställd på att ärva gren från huvudprojektet, men "
-"huvudprojektet är inte på någon gren"
+"git submodule [--quiet] update [--init [--filter=<filterspecifikationer>]] "
+"[--remote] [-N|--no-fetch] [-f|--force] [--checkout|--merge|--rebase] [--"
+"[no-]recommend-shallow] [--reference <arkiv>] [--recursive] [--[no-]single-"
+"branch] [--] [<sökväg>...]"
-#: builtin/submodule--helper.c:2781
-#, c-format
-msgid "could not get a repository handle for submodule '%s'"
-msgstr "kunde inte få tag i arkivhandtag för undermodulen \"%s\""
+#: builtin/submodule--helper.c:2767
+msgid "bad value for update parameter"
+msgstr "felaktigt värde för parametern update"
-#: builtin/submodule--helper.c:2814
+#: builtin/submodule--helper.c:2893
msgid "recurse into submodules"
msgstr "rekursera ner i undermoduler"
-#: builtin/submodule--helper.c:2820
+#: builtin/submodule--helper.c:2899
msgid "git submodule--helper absorb-git-dirs [<options>] [<path>...]"
msgstr "git submodule--helper absorb-git-dirs [<flaggor>] [<sökväg>...]"
-#: builtin/submodule--helper.c:2876
+#: builtin/submodule--helper.c:2955
msgid "check if it is safe to write to the .gitmodules file"
msgstr "se om det är säkert att skriva till .gitmodules-filen"
-#: builtin/submodule--helper.c:2879
+#: builtin/submodule--helper.c:2958
msgid "unset the config in the .gitmodules file"
msgstr "ta bort konfigurationen från .gitmodules-filen"
-#: builtin/submodule--helper.c:2884
+#: builtin/submodule--helper.c:2963
msgid "git submodule--helper config <name> [<value>]"
msgstr "git submodule--helper config <namn> [<värde>]"
-#: builtin/submodule--helper.c:2885
+#: builtin/submodule--helper.c:2964
msgid "git submodule--helper config --unset <name>"
msgstr "git submodule--helper config --unset <namn>"
-#: builtin/submodule--helper.c:2886
-msgid "git submodule--helper config --check-writeable"
-msgstr "git submodule--helper config --check-writeable"
-
-#: builtin/submodule--helper.c:2905 builtin/submodule--helper.c:3121
-#: builtin/submodule--helper.c:3277
+#: builtin/submodule--helper.c:2984 builtin/submodule--helper.c:3238
+#: builtin/submodule--helper.c:3395
msgid "please make sure that the .gitmodules file is in the working tree"
msgstr "se till att .gitmodules finns i arbetskatalogen"
-#: builtin/submodule--helper.c:2921
+#: builtin/submodule--helper.c:3000
msgid "suppress output for setting url of a submodule"
msgstr "dölj utdata från inställning av url för undermodul"
-#: builtin/submodule--helper.c:2925
+#: builtin/submodule--helper.c:3004
msgid "git submodule--helper set-url [--quiet] <path> <newurl>"
msgstr "git submodule--helper set-url [--quiet] <sökväg> <nyurl>"
-#: builtin/submodule--helper.c:2958
+#: builtin/submodule--helper.c:3037
msgid "set the default tracking branch to master"
msgstr "välj master som förvald spårad gren"
-#: builtin/submodule--helper.c:2960
+#: builtin/submodule--helper.c:3039
msgid "set the default tracking branch"
msgstr "välj förvald spårad gren"
-#: builtin/submodule--helper.c:2964
+#: builtin/submodule--helper.c:3043
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:2965
+#: builtin/submodule--helper.c:3044
msgid ""
"git submodule--helper set-branch [-q|--quiet] (-b|--branch) <branch> <path>"
msgstr ""
"git submodule--helper set-branch [-q|--quiet] (-b|--branch) <gren> <sökväg>"
-#: builtin/submodule--helper.c:2972
+#: builtin/submodule--helper.c:3051
msgid "--branch or --default required"
msgstr "--branch eller --default krävs"
-#: builtin/submodule--helper.c:3038
+#: builtin/submodule--helper.c:3072 builtin/submodule--helper.c:3375
+msgid "print only error messages"
+msgstr "visa endast felmeddelanden"
+
+#: builtin/submodule--helper.c:3073
+msgid "force creation"
+msgstr "tvinga skapande"
+
+#: builtin/submodule--helper.c:3081
+msgid "show whether the branch would be created"
+msgstr "visa om grenen skulle skapas"
+
+#: builtin/submodule--helper.c:3085
+msgid ""
+"git submodule--helper create-branch [-f|--force] [--create-reflog] [-q|--"
+"quiet] [-t|--track] [-n|--dry-run] <name> <start-oid> <start-name>"
+msgstr ""
+"git submodule--helper create-branch [-f|--force] [--create-reflog] [-q|--"
+"quiet] [-t|--track] [-n|--dry-run] <namn> <start-oid> <start-namn>"
+
+#: builtin/submodule--helper.c:3097
+#, c-format
+msgid "creating branch '%s'"
+msgstr "skapar grenen \"%s\""
+
+#: builtin/submodule--helper.c:3155
#, c-format
msgid "Adding existing repo at '%s' to the index\n"
msgstr "Lägger till befintligt arkiv i \"%s\" i indexet\n"
-#: builtin/submodule--helper.c:3041
+#: builtin/submodule--helper.c:3158
#, c-format
msgid "'%s' already exists and is not a valid git repo"
msgstr "\"%s\" finns redan och är inte ett giltigt git-arkiv"
-#: builtin/submodule--helper.c:3054
+#: builtin/submodule--helper.c:3171
#, c-format
msgid "A git directory for '%s' is found locally with remote(s):\n"
msgstr "En git-katalog för \"%s\" hittades lokalt med fjärr(ar):\n"
-#: builtin/submodule--helper.c:3061
+#: builtin/submodule--helper.c:3178
#, c-format
msgid ""
"If you want to reuse this local git directory instead of cloning again from\n"
@@ -23189,54 +23715,50 @@ msgstr ""
"arkiv eller om du är osäker på vad det här betyder, välj ett annat namn med\n"
"flaggan \"--name\"."
-#: builtin/submodule--helper.c:3073
+#: builtin/submodule--helper.c:3190
#, c-format
msgid "Reactivating local git directory for submodule '%s'\n"
msgstr "Aktiverar lokal git-katalog för undermodulen \"%s\" på nytt.\n"
-#: builtin/submodule--helper.c:3110
+#: builtin/submodule--helper.c:3227
#, c-format
msgid "unable to checkout submodule '%s'"
msgstr "Kan inte checka ut undermodulen \"%s\""
-#: builtin/submodule--helper.c:3149
+#: builtin/submodule--helper.c:3266
#, c-format
msgid "Failed to add submodule '%s'"
msgstr "Misslyckades lägga till undermodulen \"%s\""
-#: builtin/submodule--helper.c:3153 builtin/submodule--helper.c:3158
-#: builtin/submodule--helper.c:3166
+#: builtin/submodule--helper.c:3270 builtin/submodule--helper.c:3275
+#: builtin/submodule--helper.c:3283
#, c-format
msgid "Failed to register submodule '%s'"
msgstr "Misslyckades registrera undermodulen \"%s\""
-#: builtin/submodule--helper.c:3222
+#: builtin/submodule--helper.c:3339
#, c-format
msgid "'%s' already exists in the index"
msgstr "\"%s\" finns redan i indexet"
-#: builtin/submodule--helper.c:3225
+#: builtin/submodule--helper.c:3342
#, c-format
msgid "'%s' already exists in the index and is not a submodule"
msgstr "\"%s\" finns redan i indexet och är inte en undermodul"
-#: builtin/submodule--helper.c:3254
+#: builtin/submodule--helper.c:3372
msgid "branch of repository to add as submodule"
msgstr "gren från arkivet att lägga till som undermodul"
-#: builtin/submodule--helper.c:3255
+#: builtin/submodule--helper.c:3373
msgid "allow adding an otherwise ignored submodule path"
msgstr "tillåt lägga till en annars ignorerad undermodulsökväg"
-#: builtin/submodule--helper.c:3257
-msgid "print only error messages"
-msgstr "visa endast felmeddelanden"
-
-#: builtin/submodule--helper.c:3261
+#: builtin/submodule--helper.c:3379
msgid "borrow the objects from reference repositories"
msgstr "låna objekt från referensarkiv"
-#: builtin/submodule--helper.c:3263
+#: builtin/submodule--helper.c:3381
msgid ""
"sets the submodule’s name to the given string instead of defaulting to its "
"path"
@@ -23244,30 +23766,30 @@ msgstr ""
"sätter undermodulens namn till den angivna strängen istället för att använda "
"sökvägen"
-#: builtin/submodule--helper.c:3270
+#: builtin/submodule--helper.c:3388
msgid "git submodule--helper add [<options>] [--] <repository> [<path>]"
msgstr "git submodule--helper add [<flaggor>] [--] <arkiv> [<sökväg>]"
-#: builtin/submodule--helper.c:3298
+#: builtin/submodule--helper.c:3416
msgid "Relative path can only be used from the toplevel of the working tree"
msgstr "Relativ sökväg kan endast användas från arbetskatalogens toppnivå"
-#: builtin/submodule--helper.c:3306
+#: builtin/submodule--helper.c:3425
#, c-format
msgid "repo URL: '%s' must be absolute or begin with ./|../"
msgstr "arkiv-URL: \"%s\" måste vara absolut eller börja med ./|../"
-#: builtin/submodule--helper.c:3341
+#: builtin/submodule--helper.c:3460
#, c-format
msgid "'%s' is not a valid submodule name"
msgstr "\"%s\" är inte ett giltigt namn på undermodul"
-#: builtin/submodule--helper.c:3405 git.c:452 git.c:726
+#: builtin/submodule--helper.c:3520 git.c:453 git.c:729
#, c-format
msgid "%s doesn't support --super-prefix"
msgstr "%s stöder inte --super-prefix"
-#: builtin/submodule--helper.c:3411
+#: builtin/submodule--helper.c:3526
#, c-format
msgid "'%s' is not a valid submodule--helper subcommand"
msgstr "\"%s\" är inte ett giltigt underkommando till submodule--helper"
@@ -23301,7 +23823,7 @@ msgstr "skäl"
msgid "reason of the update"
msgstr "skäl till uppdateringen"
-#: builtin/tag.c:25
+#: builtin/tag.c:26
msgid ""
"git tag [-a | -s | -u <key-id>] [-f] [-m <msg> | -F <file>]\n"
" <tagname> [<head>]"
@@ -23309,11 +23831,11 @@ msgstr ""
"git tag [-a | -s | -u <nyckel-id>] [-f] [-m <medd> | -F <fil>]\n"
" <taggnamn> [<huvud>]"
-#: builtin/tag.c:27
+#: builtin/tag.c:28
msgid "git tag -d <tagname>..."
msgstr "git tag -d <taggnamn>..."
-#: builtin/tag.c:28
+#: builtin/tag.c:29
msgid ""
"git tag -l [-n[<num>]] [--contains <commit>] [--no-contains <commit>] [--"
"points-at <object>]\n"
@@ -23325,21 +23847,21 @@ msgstr ""
" [--format=<format>] [--merged <incheckning>] [--no-merged "
"<incheckning>] [<mönster>...]"
-#: builtin/tag.c:30
+#: builtin/tag.c:31
msgid "git tag -v [--format=<format>] <tagname>..."
msgstr "git tag -v [--format=<format>] <taggnamn>..."
-#: builtin/tag.c:100
+#: builtin/tag.c:101
#, c-format
msgid "tag '%s' not found."
msgstr "taggen \"%s\" hittades inte."
-#: builtin/tag.c:135
+#: builtin/tag.c:136
#, c-format
msgid "Deleted tag '%s' (was %s)\n"
msgstr "Tog bort tagg \"%s\" (var %s)\n"
-#: builtin/tag.c:170
+#: builtin/tag.c:171
#, c-format
msgid ""
"\n"
@@ -23352,7 +23874,7 @@ msgstr ""
" %s\n"
"Rader som inleds med \"%c\" ignoreras.\n"
-#: builtin/tag.c:174
+#: builtin/tag.c:175
#, c-format
msgid ""
"\n"
@@ -23367,11 +23889,11 @@ msgstr ""
"Rader som inleds med \"%c\" kommer behållas; du kan själv ta bort dem om\n"
"du vill.\n"
-#: builtin/tag.c:240
+#: builtin/tag.c:241
msgid "unable to sign the tag"
msgstr "kunde inte signera taggen"
-#: builtin/tag.c:258
+#: builtin/tag.c:259
#, c-format
msgid ""
"You have created a nested tag. The object referred to by your new tag is\n"
@@ -23384,115 +23906,119 @@ msgstr ""
"\n"
"\tgit tag -f %s %s^{}"
-#: builtin/tag.c:274
+#: builtin/tag.c:275
msgid "bad object type."
msgstr "felaktig objekttyp."
-#: builtin/tag.c:325
+#: builtin/tag.c:326
msgid "no tag message?"
msgstr "inget taggmeddelande?"
-#: builtin/tag.c:332
+#: builtin/tag.c:333
#, c-format
msgid "The tag message has been left in %s\n"
msgstr "Taggmeddelandet har lämnats i %s\n"
-#: builtin/tag.c:444
+#: builtin/tag.c:445
msgid "list tag names"
msgstr "lista taggnamn"
-#: builtin/tag.c:446
+#: builtin/tag.c:447
msgid "print <n> lines of each tag message"
msgstr "visa <n> rader från varje taggmeddelande"
-#: builtin/tag.c:448
+#: builtin/tag.c:449
msgid "delete tags"
msgstr "ta bort taggar"
-#: builtin/tag.c:449
+#: builtin/tag.c:450
msgid "verify tags"
msgstr "verifiera taggar"
-#: builtin/tag.c:451
+#: builtin/tag.c:452
msgid "Tag creation options"
msgstr "Alternativ för att skapa taggar"
-#: builtin/tag.c:453
+#: builtin/tag.c:454
msgid "annotated tag, needs a message"
msgstr "annoterad tagg, behöver meddelande"
-#: builtin/tag.c:455
+#: builtin/tag.c:456
msgid "tag message"
msgstr "taggmeddelande"
-#: builtin/tag.c:457
+#: builtin/tag.c:458
msgid "force edit of tag message"
msgstr "tvinga redigering av incheckningsmeddelande"
-#: builtin/tag.c:458
+#: builtin/tag.c:459
msgid "annotated and GPG-signed tag"
msgstr "annoterad och GPG-signerad tagg"
-#: builtin/tag.c:461
+#: builtin/tag.c:462
msgid "use another key to sign the tag"
msgstr "använd annan nyckel för att signera taggen"
-#: builtin/tag.c:462
+#: builtin/tag.c:463
msgid "replace the tag if exists"
msgstr "ersätt taggen om den finns"
-#: builtin/tag.c:463 builtin/update-ref.c:511
+#: builtin/tag.c:464 builtin/update-ref.c:511
msgid "create a reflog"
msgstr "skapa en reflog"
-#: builtin/tag.c:465
+#: builtin/tag.c:466
msgid "Tag listing options"
msgstr "Alternativ för listning av taggar"
-#: builtin/tag.c:466
+#: builtin/tag.c:467
msgid "show tag list in columns"
msgstr "lista taggar i spalter"
-#: builtin/tag.c:467 builtin/tag.c:469
+#: builtin/tag.c:468 builtin/tag.c:470
msgid "print only tags that contain the commit"
msgstr "visa endast taggar som innehåller incheckningen"
-#: builtin/tag.c:468 builtin/tag.c:470
+#: builtin/tag.c:469 builtin/tag.c:471
msgid "print only tags that don't contain the commit"
msgstr "visa endast taggar som inte innehåller incheckningen"
-#: builtin/tag.c:471
+#: builtin/tag.c:472
msgid "print only tags that are merged"
msgstr "visa endast taggar som slagits samman"
-#: builtin/tag.c:472
+#: builtin/tag.c:473
msgid "print only tags that are not merged"
msgstr "visa endast taggar som ej slagits samman"
-#: builtin/tag.c:476
+#: builtin/tag.c:477
msgid "print only tags of the object"
msgstr "visa endast taggar för objektet"
-#: builtin/tag.c:558
+#: builtin/tag.c:559
#, c-format
msgid "the '%s' option is only allowed in list mode"
msgstr "flaggan \"%s\" är endast tillåten i listläge"
-#: builtin/tag.c:597
+#: builtin/tag.c:598
#, c-format
msgid "'%s' is not a valid tag name."
msgstr "\"%s\" är inte ett giltigt taggnamn."
-#: builtin/tag.c:602
+#: builtin/tag.c:603
#, c-format
msgid "tag '%s' already exists"
msgstr "taggen \"%s\" finns redan"
-#: builtin/tag.c:633
+#: builtin/tag.c:634
#, c-format
msgid "Updated tag '%s' (was %s)\n"
msgstr "Uppdaterad tagg \"%s\" (var %s)\n"
+#: builtin/unpack-objects.c:95
+msgid "pack exceeds maximum allowed size"
+msgstr "paket är större än tillåten maximal storlek"
+
#: builtin/unpack-objects.c:504
msgid "Unpacking objects"
msgstr "Packar upp objekt"
@@ -23552,143 +24078,143 @@ msgstr " OK"
msgid "git update-index [<options>] [--] [<file>...]"
msgstr "git update-index [<flaggor>] [--] [<fil>...]"
-#: builtin/update-index.c:974
+#: builtin/update-index.c:993
msgid "continue refresh even when index needs update"
msgstr "fortsätt uppdatera även när index inte är àjour"
-#: builtin/update-index.c:977
+#: builtin/update-index.c:996
msgid "refresh: ignore submodules"
msgstr "refresh: ignorera undermoduler"
-#: builtin/update-index.c:980
+#: builtin/update-index.c:999
msgid "do not ignore new files"
msgstr "ignorera inte nya filer"
-#: builtin/update-index.c:982
+#: builtin/update-index.c:1001
msgid "let files replace directories and vice-versa"
msgstr "låt filer ersätta kataloger och omvänt"
-#: builtin/update-index.c:984
+#: builtin/update-index.c:1003
msgid "notice files missing from worktree"
msgstr "lägg märke till filer som saknas i arbetskatalogen"
-#: builtin/update-index.c:986
+#: builtin/update-index.c:1005
msgid "refresh even if index contains unmerged entries"
msgstr "uppdatera även om indexet innehåller ej sammanslagna poster"
-#: builtin/update-index.c:989
+#: builtin/update-index.c:1008
msgid "refresh stat information"
msgstr "uppdatera statusinformation"
-#: builtin/update-index.c:993
+#: builtin/update-index.c:1012
msgid "like --refresh, but ignore assume-unchanged setting"
msgstr "som --refresh, men ignorera assume-unchanged-inställning"
-#: builtin/update-index.c:997
+#: builtin/update-index.c:1016
msgid "<mode>,<object>,<path>"
msgstr "<läge>,<objekt>,<sökväg>"
-#: builtin/update-index.c:998
+#: builtin/update-index.c:1017
msgid "add the specified entry to the index"
msgstr "lägg till angiven post i indexet"
-#: builtin/update-index.c:1008
+#: builtin/update-index.c:1027
msgid "mark files as \"not changing\""
msgstr "markera filer som \"ändras inte\""
-#: builtin/update-index.c:1011
+#: builtin/update-index.c:1030
msgid "clear assumed-unchanged bit"
msgstr "rensa \"assume-unchanged\"-biten"
-#: builtin/update-index.c:1014
+#: builtin/update-index.c:1033
msgid "mark files as \"index-only\""
msgstr "markera filer som \"endast index\""
-#: builtin/update-index.c:1017
+#: builtin/update-index.c:1036
msgid "clear skip-worktree bit"
msgstr "töm \"skip-worktree\"-biten"
-#: builtin/update-index.c:1020
+#: builtin/update-index.c:1039
msgid "do not touch index-only entries"
msgstr "rör inte \"endast index\"-poster"
-#: builtin/update-index.c:1022
+#: builtin/update-index.c:1041
msgid "add to index only; do not add content to object database"
msgstr "lägg endast till indexet; lägg inte till innehållet i objektdatabasen"
-#: builtin/update-index.c:1024
+#: builtin/update-index.c:1043
msgid "remove named paths even if present in worktree"
msgstr "ta bort namngivna sökvägar även om de finns i arbetskatalogen"
-#: builtin/update-index.c:1026
+#: builtin/update-index.c:1045
msgid "with --stdin: input lines are terminated by null bytes"
msgstr "med --stdin: indatarader termineras med null-byte"
-#: builtin/update-index.c:1028
+#: builtin/update-index.c:1047
msgid "read list of paths to be updated from standard input"
msgstr "läs lista över sökvägar att uppdatera från standard in"
-#: builtin/update-index.c:1032
+#: builtin/update-index.c:1051
msgid "add entries from standard input to the index"
msgstr "lägg poster från standard in till indexet"
-#: builtin/update-index.c:1036
+#: builtin/update-index.c:1055
msgid "repopulate stages #2 and #3 for the listed paths"
msgstr "återfyll etapp 2 och 3 från angivna sökvägar"
-#: builtin/update-index.c:1040
+#: builtin/update-index.c:1059
msgid "only update entries that differ from HEAD"
msgstr "uppdatera endast poster som skiljer sig från HEAD"
-#: builtin/update-index.c:1044
+#: builtin/update-index.c:1063
msgid "ignore files missing from worktree"
msgstr "ignorera filer som saknas i arbetskatalogen"
-#: builtin/update-index.c:1047
+#: builtin/update-index.c:1066
msgid "report actions to standard output"
msgstr "rapportera åtgärder på standard ut"
-#: builtin/update-index.c:1049
+#: builtin/update-index.c:1068
msgid "(for porcelains) forget saved unresolved conflicts"
msgstr "(för porslin) glöm sparade olösta konflikter"
-#: builtin/update-index.c:1053
+#: builtin/update-index.c:1072
msgid "write index in this format"
msgstr "skriv index i detta format"
-#: builtin/update-index.c:1055
+#: builtin/update-index.c:1074
msgid "enable or disable split index"
msgstr "aktivera eller inaktivera delat index"
-#: builtin/update-index.c:1057
+#: builtin/update-index.c:1076
msgid "enable/disable untracked cache"
msgstr "aktivera/inaktivera ospårad cache"
-#: builtin/update-index.c:1059
+#: builtin/update-index.c:1078
msgid "test if the filesystem supports untracked cache"
msgstr "testa om filsystemet stöder ospårad cache"
-#: builtin/update-index.c:1061
+#: builtin/update-index.c:1080
msgid "enable untracked cache without testing the filesystem"
msgstr "aktivera ospårad cache utan att testa filsystemet"
-#: builtin/update-index.c:1063
+#: builtin/update-index.c:1082
msgid "write out the index even if is not flagged as changed"
msgstr "skriv ut indexet även om det inte angivits som ändrat"
-#: builtin/update-index.c:1065
+#: builtin/update-index.c:1084
msgid "enable or disable file system monitor"
msgstr "aktivera eller inaktivera filsystemsövervakning"
-#: builtin/update-index.c:1067
+#: builtin/update-index.c:1086
msgid "mark files as fsmonitor valid"
msgstr "markera filer som \"fsmonitor valid\""
-#: builtin/update-index.c:1070
+#: builtin/update-index.c:1089
msgid "clear fsmonitor valid bit"
msgstr "töm \"fsmonitor valid\"-bit"
-#: builtin/update-index.c:1173
+#: builtin/update-index.c:1195
msgid ""
"core.splitIndex is set to false; remove or change it, if you really want to "
"enable split index"
@@ -23696,7 +24222,7 @@ msgstr ""
"core.splitIndex är satt till false; ta bort eller ändra det om du verkligen "
"vill aktivera delat index"
-#: builtin/update-index.c:1182
+#: builtin/update-index.c:1204
msgid ""
"core.splitIndex is set to true; remove or change it, if you really want to "
"disable split index"
@@ -23704,7 +24230,7 @@ msgstr ""
"core.splitIndex är satt till true; ta bort eller ändra det om du verkligen "
"vill inaktivera delat index"
-#: builtin/update-index.c:1194
+#: builtin/update-index.c:1216
msgid ""
"core.untrackedCache is set to true; remove or change it, if you really want "
"to disable the untracked cache"
@@ -23712,11 +24238,11 @@ msgstr ""
"core.untrackedCache är satt till true; ta bort eller ändra det om du "
"verkligen vill inaktivera den ospårade cachen"
-#: builtin/update-index.c:1198
+#: builtin/update-index.c:1220
msgid "Untracked cache disabled"
msgstr "Ospårad cache är inaktiverad"
-#: builtin/update-index.c:1206
+#: builtin/update-index.c:1228
msgid ""
"core.untrackedCache is set to false; remove or change it, if you really want "
"to enable the untracked cache"
@@ -23724,26 +24250,26 @@ msgstr ""
"core.untrackedCache är satt till false; ta bort eller ändra det om du "
"verkligen vill aktivera den ospårade cachen"
-#: builtin/update-index.c:1210
+#: builtin/update-index.c:1232
#, c-format
msgid "Untracked cache enabled for '%s'"
msgstr "Ospårad cache är aktiverad för \"%s\""
-#: builtin/update-index.c:1218
+#: builtin/update-index.c:1241
msgid "core.fsmonitor is unset; set it if you really want to enable fsmonitor"
msgstr "core.fsmonitor inte satt; sätt om du verkligen vill aktivera fsmonitor"
-#: builtin/update-index.c:1222
+#: builtin/update-index.c:1246
msgid "fsmonitor enabled"
msgstr "fsmonitor aktiverat"
-#: builtin/update-index.c:1225
+#: builtin/update-index.c:1250
msgid ""
"core.fsmonitor is set; remove it if you really want to disable fsmonitor"
msgstr ""
"core.fsmonitor är satt; ta bort om du verkligen vill inaktivera fsmonitor"
-#: builtin/update-index.c:1229
+#: builtin/update-index.c:1254
msgid "fsmonitor disabled"
msgstr "fsmonitor inaktiverat"
@@ -23775,10 +24301,6 @@ msgstr "standard in har NUL-terminerade argument"
msgid "read updates from stdin"
msgstr "läs uppdateringar från standard in"
-#: builtin/update-server-info.c:7
-msgid "git update-server-info [--force]"
-msgstr "git update-server-info [--force]"
-
#: builtin/update-server-info.c:15
msgid "update the info files from scratch"
msgstr "uppdatera informationsfilerna från grunden"
@@ -23860,33 +24382,37 @@ msgid "git worktree remove [<options>] <worktree>"
msgstr "git worktree remove [<flaggor>] <arbetskatalog>"
#: builtin/worktree.c:25
+msgid "git worktree repair [<path>...]"
+msgstr "git worktree repair [<sökväg>...]"
+
+#: builtin/worktree.c:26
msgid "git worktree unlock <path>"
msgstr "git worktree unlock <sökväg>"
-#: builtin/worktree.c:75
+#: builtin/worktree.c:76
#, c-format
msgid "Removing %s/%s: %s"
msgstr "Tar bort %s/%s: %s"
-#: builtin/worktree.c:148
+#: builtin/worktree.c:149
msgid "report pruned working trees"
msgstr "rapportera borttagna arbetskataloger"
-#: builtin/worktree.c:150
+#: builtin/worktree.c:151
msgid "expire working trees older than <time>"
msgstr "låt tid gå ut för arbetskataloger äldre än <tid>"
-#: builtin/worktree.c:220
+#: builtin/worktree.c:221
#, c-format
msgid "'%s' already exists"
msgstr "\"%s\" finns redan"
-#: builtin/worktree.c:229
+#: builtin/worktree.c:230
#, c-format
msgid "unusable worktree destination '%s'"
msgstr "oanvändbar mål för arbetskatalog \"%s\""
-#: builtin/worktree.c:234
+#: builtin/worktree.c:235
#, c-format
msgid ""
"'%s' is a missing but locked worktree;\n"
@@ -23896,7 +24422,7 @@ msgstr ""
"använd \"%s -f -f\" för att överstyra, eller \"unlock\" och \"prune\" eller "
"\"remove\" för att rensa"
-#: builtin/worktree.c:236
+#: builtin/worktree.c:237
#, c-format
msgid ""
"'%s' is a missing but already registered worktree;\n"
@@ -23906,129 +24432,151 @@ msgstr ""
"använd \"%s -f\" för att överstyra, eller \"prune\" eller \"remove\" för att "
"rensa"
-#: builtin/worktree.c:287
+#: builtin/worktree.c:248
+#, c-format
+msgid "failed to copy '%s' to '%s'; sparse-checkout may not work correctly"
+msgstr ""
+"misslyckades kopiera \"%s\" till \"%s\"; sparse-checkout kanske inte kommer "
+"att fungera korrekt"
+
+#: builtin/worktree.c:268
+#, c-format
+msgid "failed to copy worktree config from '%s' to '%s'"
+msgstr ""
+"misslyckades kopiera arbetskatalogkonfiguration från \"%s\" till \"%s\""
+
+#: builtin/worktree.c:280 builtin/worktree.c:285
+#, c-format
+msgid "failed to unset '%s' in '%s'"
+msgstr "misslyckades slå av \"%s\" i \"%s\""
+
+#: builtin/worktree.c:356
#, c-format
msgid "could not create directory of '%s'"
msgstr "kunde inte skapa katalogen \"%s\""
-#: builtin/worktree.c:309
+#: builtin/worktree.c:378
msgid "initializing"
msgstr "initierar"
-#: builtin/worktree.c:420 builtin/worktree.c:426
+#: builtin/worktree.c:492 builtin/worktree.c:498
#, c-format
msgid "Preparing worktree (new branch '%s')"
msgstr "Förbereder arbetskatalog (ny gren \"%s\")"
-#: builtin/worktree.c:422
+#: builtin/worktree.c:494
#, 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:431
+#: builtin/worktree.c:503
#, c-format
msgid "Preparing worktree (checking out '%s')"
msgstr "Förbereder arbetskatalog (checkar ut \"%s\")"
-#: builtin/worktree.c:437
+#: builtin/worktree.c:509
#, c-format
msgid "Preparing worktree (detached HEAD %s)"
msgstr "Förbereder arbetskatalog (frånkopplat HEAD %s)"
-#: builtin/worktree.c:482
+#: builtin/worktree.c:554
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:485
+#: builtin/worktree.c:557
msgid "create a new branch"
msgstr "skapa en ny gren"
-#: builtin/worktree.c:487
+#: builtin/worktree.c:559
msgid "create or reset a branch"
msgstr "skapa eller återställ en gren"
-#: builtin/worktree.c:489
+#: builtin/worktree.c:561
msgid "populate the new working tree"
msgstr "befolka den nya arbetskatalogen"
-#: builtin/worktree.c:490
+#: builtin/worktree.c:562
msgid "keep the new working tree locked"
msgstr "låt arbetskatalogen förbli låst"
-#: builtin/worktree.c:492 builtin/worktree.c:729
+#: builtin/worktree.c:564 builtin/worktree.c:809
msgid "reason for locking"
msgstr "orsak till lås"
-#: builtin/worktree.c:495
+#: builtin/worktree.c:567
msgid "set up tracking mode (see git-branch(1))"
msgstr "ställ in spårningsläge (se git-branch(1))"
-#: builtin/worktree.c:498
+#: builtin/worktree.c:570
msgid "try to match the new branch name with a remote-tracking branch"
msgstr "försök träffa namn på ny gren mot en fjärrspårande gren"
-#: builtin/worktree.c:512
+#: builtin/worktree.c:584
msgid "added with --lock"
msgstr "lagt till med --lock"
-#: builtin/worktree.c:574
+#: builtin/worktree.c:646
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:691
+#: builtin/worktree.c:766
msgid "show extended annotations and reasons, if available"
msgstr "visa utökade annoteringar och grunder, om tillgängliga"
-#: builtin/worktree.c:693
+#: builtin/worktree.c:768
msgid "add 'prunable' annotation to worktrees older than <time>"
msgstr ""
"lägg till \"prunable\"-annoteringar till arbetskataloger äldre än <tid>"
-#: builtin/worktree.c:741 builtin/worktree.c:774 builtin/worktree.c:848
-#: builtin/worktree.c:972
+#: builtin/worktree.c:770
+msgid "terminate records with a NUL character"
+msgstr "avsluta poster med NUL-tecken"
+
+#: builtin/worktree.c:821 builtin/worktree.c:854 builtin/worktree.c:928
+#: builtin/worktree.c:1052
#, c-format
msgid "'%s' is not a working tree"
msgstr "\"%s\" är inte en arbetskatalog"
-#: builtin/worktree.c:743 builtin/worktree.c:776
+#: builtin/worktree.c:823 builtin/worktree.c:856
msgid "The main working tree cannot be locked or unlocked"
msgstr "Huvudarbetskatalogen kan inte låsas eller låsas upp"
-#: builtin/worktree.c:748
+#: builtin/worktree.c:828
#, c-format
msgid "'%s' is already locked, reason: %s"
msgstr "\"%s\" är redan låst, orsak: %s"
-#: builtin/worktree.c:750
+#: builtin/worktree.c:830
#, c-format
msgid "'%s' is already locked"
msgstr "\"%s\" är redan låst"
-#: builtin/worktree.c:778
+#: builtin/worktree.c:858
#, c-format
msgid "'%s' is not locked"
msgstr "\"%s\" är inte låst"
-#: builtin/worktree.c:819
+#: builtin/worktree.c:899
msgid "working trees containing submodules cannot be moved or removed"
msgstr "arbetskataloger med undermoduler kan inte flyttas eller tas bort"
-#: builtin/worktree.c:827
+#: builtin/worktree.c:907
msgid "force move even if worktree is dirty or locked"
msgstr "tvinga flyttning även om arbetskatalogen är smutsig eller låst"
-#: builtin/worktree.c:850 builtin/worktree.c:974
+#: builtin/worktree.c:930 builtin/worktree.c:1054
#, c-format
msgid "'%s' is a main working tree"
msgstr "\"%s\" är inte en huvudarbetskatalog"
-#: builtin/worktree.c:855
+#: builtin/worktree.c:935
#, c-format
msgid "could not figure out destination name from '%s'"
msgstr "kunde inte lista ut målnamn från \"%s\""
-#: builtin/worktree.c:868
+#: builtin/worktree.c:948
#, c-format
msgid ""
"cannot move a locked working tree, lock reason: %s\n"
@@ -24037,7 +24585,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:870
+#: builtin/worktree.c:950
msgid ""
"cannot move a locked working tree;\n"
"use 'move -f -f' to override or unlock first"
@@ -24045,38 +24593,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:873
+#: builtin/worktree.c:953
#, c-format
msgid "validation failed, cannot move working tree: %s"
msgstr "kontroll misslyckades, kan inte flytta arbetskatalog: %s"
-#: builtin/worktree.c:878
+#: builtin/worktree.c:958
#, c-format
msgid "failed to move '%s' to '%s'"
msgstr "misslyckades flytta \"%s\" till \"%s\""
-#: builtin/worktree.c:924
+#: builtin/worktree.c:1004
#, c-format
msgid "failed to run 'git status' on '%s'"
msgstr "misslyckades köra \"git status\" på \"%s\""
-#: builtin/worktree.c:928
+#: builtin/worktree.c:1008
#, 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:933
+#: builtin/worktree.c:1013
#, 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:956
+#: builtin/worktree.c:1036
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:979
+#: builtin/worktree.c:1059
#, c-format
msgid ""
"cannot remove a locked working tree, lock reason: %s\n"
@@ -24085,7 +24633,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:981
+#: builtin/worktree.c:1061
msgid ""
"cannot remove a locked working tree;\n"
"use 'remove -f -f' to override or unlock first"
@@ -24093,17 +24641,17 @@ 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:984
+#: builtin/worktree.c:1064
#, c-format
msgid "validation failed, cannot remove working tree: %s"
msgstr "kontroll misslyckades, kan inte ta bort arbetskatalog: %s"
-#: builtin/worktree.c:1008
+#: builtin/worktree.c:1088
#, c-format
msgid "repair: %s: %s"
msgstr "reparera: %s: %s"
-#: builtin/worktree.c:1011
+#: builtin/worktree.c:1091
#, c-format
msgid "error: %s: %s"
msgstr "fel: %s: %s"
@@ -24209,29 +24757,29 @@ msgstr "tomt alias för %s"
msgid "recursive alias: %s"
msgstr "rekursivt alias: %s"
-#: git.c:479
+#: git.c:480
msgid "write failure on standard output"
msgstr "skrivfel på standard ut"
-#: git.c:481
+#: git.c:482
msgid "unknown write failure on standard output"
msgstr "okänt skrivfel på standard ut"
-#: git.c:483
+#: git.c:484
msgid "close failed on standard output"
msgstr "stäng misslyckades på standard ut"
-#: git.c:835
+#: git.c:838
#, c-format
msgid "alias loop detected: expansion of '%s' does not terminate:%s"
msgstr "alias-slinga detekterades: expansionen av \"%s\" avslutas aldrig:%s"
-#: git.c:885
+#: git.c:888
#, c-format
msgid "cannot handle %s as a builtin"
msgstr "kan inte hantera %s som inbyggd"
-#: git.c:898
+#: git.c:901
#, c-format
msgid ""
"usage: %s\n"
@@ -24240,13 +24788,13 @@ msgstr ""
"användning: %s\n"
"\n"
-#: git.c:918
+#: git.c:921
#, c-format
msgid "expansion of alias '%s' failed; '%s' is not a git command\n"
msgstr ""
"expandering av alias \"%s\" misslyckades; \"%s\" är inte ett git-kommando\n"
-#: git.c:930
+#: git.c:933
#, c-format
msgid "failed to run command '%s': %s\n"
msgstr "misslyckades köra kommandot \"%s\": %s\n"
@@ -24402,139 +24950,139 @@ msgstr ""
" bad om: %s\n"
" omdirigering: %s"
-#: remote-curl.c:183
+#: remote-curl.c:184
#, c-format
msgid "invalid quoting in push-option value: '%s'"
msgstr "felaktig citering på värde för push-option: \"%s\""
-#: remote-curl.c:304
+#: remote-curl.c:308
#, 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:405
+#: remote-curl.c:409
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:436
+#: remote-curl.c:440
#, c-format
msgid "invalid server response; got '%s'"
msgstr "ogiltigt svar från servern; fick \"%s\""
-#: remote-curl.c:496
+#: remote-curl.c:500
#, c-format
msgid "repository '%s' not found"
msgstr "arkivet \"%s\" hittades inte"
-#: remote-curl.c:500
+#: remote-curl.c:504
#, c-format
msgid "Authentication failed for '%s'"
msgstr "Autentisering misslyckades \"%s\""
-#: remote-curl.c:504
+#: remote-curl.c:508
#, c-format
msgid "unable to access '%s' with http.pinnedPubkey configuration: %s"
msgstr "kan inte nå \"%s\" med http.pinnedPubkey inställt till: %s"
-#: remote-curl.c:508
+#: remote-curl.c:512
#, c-format
msgid "unable to access '%s': %s"
msgstr "kan inte komma åt \"%s\": %s"
-#: remote-curl.c:514
+#: remote-curl.c:518
#, c-format
msgid "redirecting to %s"
msgstr "omdirigerar till %s"
-#: remote-curl.c:645
+#: remote-curl.c:649
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:657
+#: remote-curl.c:661
msgid "remote server sent unexpected response end packet"
msgstr "fjärrservern sände oväntat svarsavslutningspaketet"
-#: remote-curl.c:726
+#: remote-curl.c:730
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:755
+#: remote-curl.c:759
#, c-format
msgid "remote-curl: bad line length character: %.4s"
msgstr "remote-curl: felaktig radlängdstecken: %.4s"
-#: remote-curl.c:757
+#: remote-curl.c:761
msgid "remote-curl: unexpected response end packet"
msgstr "remote-curl: oväntat svarsavslutningspaketet"
-#: remote-curl.c:833
+#: remote-curl.c:837
#, c-format
msgid "RPC failed; %s"
msgstr "RPC misslyckades; %s"
-#: remote-curl.c:873
+#: remote-curl.c:877
msgid "cannot handle pushes this big"
msgstr "kan inte hantera så stora sändningar"
-#: remote-curl.c:986
+#: remote-curl.c:990
#, c-format
msgid "cannot deflate request; zlib deflate error %d"
msgstr "kan inte packa upp anrop; zlib-deflate-fel %d"
-#: remote-curl.c:990
+#: remote-curl.c:994
#, c-format
msgid "cannot deflate request; zlib end error %d"
msgstr "kan inte packa upp anrop; zlib-slutfel %d"
-#: remote-curl.c:1040
+#: remote-curl.c:1044
#, c-format
msgid "%d bytes of length header were received"
msgstr "%d byte av längd-huvudet togs emot"
-#: remote-curl.c:1042
+#: remote-curl.c:1046
#, c-format
msgid "%d bytes of body are still expected"
msgstr "%d byte av kroppen väntas fortfarande"
-#: remote-curl.c:1131
+#: remote-curl.c:1135
msgid "dumb http transport does not support shallow capabilities"
msgstr "dum http-transport stöder inte grunda arkiv"
-#: remote-curl.c:1146
+#: remote-curl.c:1150
msgid "fetch failed."
msgstr "mottagning misslyckades."
-#: remote-curl.c:1192
+#: remote-curl.c:1198
msgid "cannot fetch by sha1 over smart http"
msgstr "kan inte hämta med sha1 över smart http"
-#: remote-curl.c:1236 remote-curl.c:1242
+#: remote-curl.c:1242 remote-curl.c:1248
#, c-format
msgid "protocol error: expected sha/ref, got '%s'"
msgstr "protokollfel: förväntade sha/ref, fick \"%s\""
-#: remote-curl.c:1254 remote-curl.c:1372
+#: remote-curl.c:1260 remote-curl.c:1378
#, c-format
msgid "http transport does not support %s"
msgstr "http-transporten stöder inte %s"
-#: remote-curl.c:1290
+#: remote-curl.c:1296
msgid "git-http-push failed"
msgstr "git-http-push misslyckades"
-#: remote-curl.c:1478
+#: remote-curl.c:1485
msgid "remote-curl: usage: git remote-curl <remote> [<url>]"
msgstr "remote-curl: användning: git remote-curl <fjärr> [<url>]"
-#: remote-curl.c:1510
+#: remote-curl.c:1517
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:1517
+#: remote-curl.c:1524
msgid "remote-curl: fetch attempted without a local repo"
msgstr "remote-curl: försökte ta emot utan lokalt arkiv"
-#: remote-curl.c:1558
+#: remote-curl.c:1565
#, c-format
msgid "remote-curl: unknown command '%s' from git"
msgstr "remote-curl: okänt kommando \"%s\" från git"
@@ -24547,122 +25095,122 @@ msgstr "behöver en arbetskatalog"
msgid "could not find enlistment root"
msgstr "kunde inte hitta enrolleringsroten"
-#: contrib/scalar/scalar.c:89 contrib/scalar/scalar.c:351
-#: contrib/scalar/scalar.c:436 contrib/scalar/scalar.c:579
+#: contrib/scalar/scalar.c:89 contrib/scalar/scalar.c:350
+#: contrib/scalar/scalar.c:435 contrib/scalar/scalar.c:578
#, c-format
msgid "could not switch to '%s'"
msgstr "kunde inte växla till \"%s\""
-#: contrib/scalar/scalar.c:180
+#: contrib/scalar/scalar.c:179
#, c-format
msgid "could not configure %s=%s"
msgstr "kunde inte ställa in %s=%s"
-#: contrib/scalar/scalar.c:198
+#: contrib/scalar/scalar.c:197
msgid "could not configure log.excludeDecoration"
msgstr "kunde inte ställa in log.excludeDecoration"
-#: contrib/scalar/scalar.c:219
+#: contrib/scalar/scalar.c:218
msgid "Scalar enlistments require a worktree"
msgstr "Scalar-enrolleringar kräver en arbetskatalog"
-#: contrib/scalar/scalar.c:311
+#: contrib/scalar/scalar.c:310
#, c-format
msgid "remote HEAD is not a branch: '%.*s'"
msgstr "HEAD hos fjärren är inte en gren: \"%.*s\""
-#: contrib/scalar/scalar.c:317
+#: contrib/scalar/scalar.c:316
msgid "failed to get default branch name from remote; using local default"
msgstr ""
"misslyckades hämta namn på standardgren för fjärr; använder lokalt förval"
-#: contrib/scalar/scalar.c:330
+#: contrib/scalar/scalar.c:329
msgid "failed to get default branch name"
msgstr "misslyckades hämta namn på standardgren"
-#: contrib/scalar/scalar.c:341
+#: contrib/scalar/scalar.c:340
msgid "failed to unregister repository"
msgstr "misslyckades avregistrera arkivet"
-#: contrib/scalar/scalar.c:356
+#: contrib/scalar/scalar.c:355
msgid "failed to delete enlistment directory"
msgstr "misslyckades ta bort enrolleringskatalogen"
-#: contrib/scalar/scalar.c:376
+#: contrib/scalar/scalar.c:375
msgid "branch to checkout after clone"
msgstr "gren att checka ut efter kloning"
-#: contrib/scalar/scalar.c:378
+#: contrib/scalar/scalar.c:377
msgid "when cloning, create full working directory"
msgstr "skapa komplett arbetskatalog vid kloning"
-#: contrib/scalar/scalar.c:380
+#: contrib/scalar/scalar.c:379
msgid "only download metadata for the branch that will be checked out"
msgstr "hämta endast metadata för grenen som skall checkas ut"
-#: contrib/scalar/scalar.c:385
+#: contrib/scalar/scalar.c:384
msgid "scalar clone [<options>] [--] <repo> [<dir>]"
msgstr "scalar clone [<flaggor>] [--] <arkiv> [<kat>]"
-#: contrib/scalar/scalar.c:410
+#: contrib/scalar/scalar.c:409
#, c-format
msgid "cannot deduce worktree name from '%s'"
msgstr "Kan inte härleda arbetsträdsnamn från \"%s\""
-#: contrib/scalar/scalar.c:419
+#: contrib/scalar/scalar.c:418
#, c-format
msgid "directory '%s' exists already"
msgstr "katalogen \"%s\" finns redan"
-#: contrib/scalar/scalar.c:446
+#: contrib/scalar/scalar.c:445
#, c-format
msgid "failed to get default branch for '%s'"
msgstr "misslyckades hämta standardgren för \"%s\""
-#: contrib/scalar/scalar.c:457
+#: contrib/scalar/scalar.c:456
#, c-format
msgid "could not configure remote in '%s'"
msgstr "kunde inte ställa in fjärr i \"%s\""
-#: contrib/scalar/scalar.c:466
+#: contrib/scalar/scalar.c:465
#, c-format
msgid "could not configure '%s'"
msgstr "kunde inte ställa in \"%s\""
-#: contrib/scalar/scalar.c:469
+#: contrib/scalar/scalar.c:468
msgid "partial clone failed; attempting full clone"
msgstr "delvis klon misslyckades; försöker med fullständig klon"
-#: contrib/scalar/scalar.c:473
+#: contrib/scalar/scalar.c:472
msgid "could not configure for full clone"
msgstr "kunde inte ställa in för komplett klon"
-#: contrib/scalar/scalar.c:505
+#: contrib/scalar/scalar.c:504
msgid "`scalar list` does not take arguments"
msgstr "\"scalar list\" tar inte argument"
-#: contrib/scalar/scalar.c:518
+#: contrib/scalar/scalar.c:517
msgid "scalar register [<enlistment>]"
msgstr "scalar register [<enrollering>]"
-#: contrib/scalar/scalar.c:545
+#: contrib/scalar/scalar.c:544
msgid "reconfigure all registered enlistments"
msgstr "konfigurera alla registrerade enrolleringar på nytt"
-#: contrib/scalar/scalar.c:549
+#: contrib/scalar/scalar.c:548
msgid "scalar reconfigure [--all | <enlistment>]"
msgstr "scalar reconfigure [--all | <enrollering>]"
-#: contrib/scalar/scalar.c:567
+#: contrib/scalar/scalar.c:566
msgid "--all or <enlistment>, but not both"
msgstr "--all eller <enrollering>, men inte bägge"
-#: contrib/scalar/scalar.c:582
+#: contrib/scalar/scalar.c:581
#, c-format
msgid "git repository gone in '%s'"
msgstr "git-arkiv försvunnet i \"%s\""
-#: contrib/scalar/scalar.c:622
+#: contrib/scalar/scalar.c:621
msgid ""
"scalar run <task> [<enlistment>]\n"
"Tasks:\n"
@@ -24670,42 +25218,55 @@ msgstr ""
"scalar run <uppgift> [<enrollering>]\n"
"Uppgifter:\n"
-#: contrib/scalar/scalar.c:640
+#: contrib/scalar/scalar.c:639
#, c-format
msgid "no such task: '%s'"
msgstr "okänd uppgift: \"%s\""
-#: contrib/scalar/scalar.c:690
+#: contrib/scalar/scalar.c:689
msgid "scalar unregister [<enlistment>]"
msgstr "scalar unregister [<enrollering>]"
-#: contrib/scalar/scalar.c:737
+#: contrib/scalar/scalar.c:736
msgid "scalar delete <enlistment>"
msgstr "scalar delete <enrollering>"
-#: contrib/scalar/scalar.c:752
+#: contrib/scalar/scalar.c:751
msgid "refusing to delete current working directory"
msgstr "vägrar ta bort aktuell arbetskatalog"
-#: contrib/scalar/scalar.c:767
+#: contrib/scalar/scalar.c:766
msgid "include Git version"
msgstr "ta med Git-version"
-#: contrib/scalar/scalar.c:769
+#: contrib/scalar/scalar.c:768
msgid "include Git's build options"
msgstr "ta med Gits byggflaggor"
-#: contrib/scalar/scalar.c:773
+#: contrib/scalar/scalar.c:772
msgid "scalar verbose [-v | --verbose] [--build-options]"
msgstr "scalar verbose [-v | --verbose] [--build-options]"
+#: contrib/scalar/scalar.c:813
+msgid "-C requires a <directory>"
+msgstr "-C kräver en <katalog>"
+
+#: contrib/scalar/scalar.c:815
+#, c-format
+msgid "could not change to '%s'"
+msgstr "kunde inte byta till \"%s\""
+
#: contrib/scalar/scalar.c:821
+msgid "-c requires a <key>=<value> argument"
+msgstr "-c kräver ett argument på formen <nyckel>=<värde>"
+
+#: contrib/scalar/scalar.c:839
msgid ""
-"scalar <command> [<options>]\n"
+"scalar [-C <directory>] [-c <key>=<value>] <command> [<options>]\n"
"\n"
"Commands:\n"
msgstr ""
-"scalar <kommando> [<flaggor>]\n"
+"scalar [-C <katalog>] [-c <nyckel>=<värde>] <kommando> [<flaggor>]\n"
"\n"
"Kommandon:\n"
@@ -24717,43 +25278,43 @@ msgstr "ingen kompilatorinformation tillgänglig\n"
msgid "no libc information available\n"
msgstr "ingen libc-information tillgänglig\n"
-#: list-objects-filter-options.h:94
+#: list-objects-filter-options.h:126
msgid "args"
msgstr "argument"
-#: list-objects-filter-options.h:95
+#: list-objects-filter-options.h:127
msgid "object filtering"
msgstr "objektfiltrering"
-#: parse-options.h:183
+#: parse-options.h:188
msgid "expiry-date"
msgstr "giltig-till"
-#: parse-options.h:197
+#: parse-options.h:202
msgid "no-op (backward compatibility)"
msgstr "ingen funktion (bakåtkompatibilitet)"
-#: parse-options.h:310
+#: parse-options.h:341
msgid "be more verbose"
msgstr "var mer pratsam"
-#: parse-options.h:312
+#: parse-options.h:343
msgid "be more quiet"
msgstr "var mer tyst"
-#: parse-options.h:318
+#: parse-options.h:349
msgid "use <n> digits to display object names"
msgstr "använd <n> siffror för att visa objektnamn"
-#: parse-options.h:337
+#: parse-options.h:368
msgid "how to strip spaces and #comments from message"
msgstr "hur blanksteg och #kommentarer ska tas bort från meddelande"
-#: parse-options.h:338
+#: parse-options.h:369
msgid "read pathspec from file"
msgstr "läs sökvägsangivelse från fil"
-#: parse-options.h:339
+#: parse-options.h:370
msgid ""
"with --pathspec-from-file, pathspec elements are separated with NUL character"
msgstr "med --pathspec-from-file, sökvägsangivelser avdelas med NUL-tecken"
@@ -25004,447 +25565,451 @@ msgid "Display help information about Git"
msgstr "Visa hjälpinformation om Git"
#: command-list.h:108
+msgid "Run git hooks"
+msgstr "Kör git-krokar"
+
+#: command-list.h:109
msgid "Server side implementation of Git over HTTP"
msgstr "Serversideimplementation av Git över HTTP"
-#: command-list.h:109
+#: command-list.h:110
msgid "Download from a remote Git repository via HTTP"
msgstr "Hämta objekt och referenser från annat Git-arkiv över HTTP"
-#: command-list.h:110
+#: command-list.h:111
msgid "Push objects over HTTP/DAV to another repository"
msgstr "Sänd objekt över HTTP/DAV till ett annat arkiv"
-#: command-list.h:111
+#: command-list.h:112
msgid "Send a collection of patches from stdin to an IMAP folder"
msgstr "Sänd en samling patchar från stdin till en IMAP-mapp"
-#: command-list.h:112
+#: command-list.h:113
msgid "Build pack index file for an existing packed archive"
msgstr "SKapa pack-indexfiler för ett befintligt packat arkiv"
-#: command-list.h:113
+#: command-list.h:114
msgid "Create an empty Git repository or reinitialize an existing one"
msgstr "Skapa tomt Git-arkiv eller ominitiera ett befintligt"
-#: command-list.h:114
+#: command-list.h:115
msgid "Instantly browse your working repository in gitweb"
msgstr "Omedelbart bläddra i din arbetskatalog med gitweb"
-#: command-list.h:115
+#: command-list.h:116
msgid "Add or parse structured information in commit messages"
msgstr ""
"Lägg till eller tolka strukturerad information i incheckningsmeddelanden"
-#: command-list.h:116
+#: command-list.h:117
msgid "Show commit logs"
msgstr "Visa incheckningsloggar"
-#: command-list.h:117
+#: command-list.h:118
msgid "Show information about files in the index and the working tree"
msgstr "Visa information om filer i indexet och arbetskatalogen"
-#: command-list.h:118
+#: command-list.h:119
msgid "List references in a remote repository"
msgstr "Lista referenser i ett fjärrarkiv"
-#: command-list.h:119
+#: command-list.h:120
msgid "List the contents of a tree object"
msgstr "Visa innehållet i ett trädobjekt"
-#: command-list.h:120
+#: command-list.h:121
msgid "Extracts patch and authorship from a single e-mail message"
msgstr "Hämta patch och ägarskap från ett enkelt e-postmeddelande"
-#: command-list.h:121
+#: command-list.h:122
msgid "Simple UNIX mbox splitter program"
msgstr "Enkelt program för att dela en UNIX mbox"
-#: command-list.h:122
+#: command-list.h:123
msgid "Run tasks to optimize Git repository data"
msgstr "Utför uppgifter för att optimera Git-arkivdata"
-#: command-list.h:123
+#: command-list.h:124
msgid "Join two or more development histories together"
msgstr "Slå ihop två eller flera utvecklingshistorier"
-#: command-list.h:124
+#: command-list.h:125
msgid "Find as good common ancestors as possible for a merge"
msgstr "Hitta en så bra anfader som möjligt för sammanslagning"
-#: command-list.h:125
+#: command-list.h:126
msgid "Run a three-way file merge"
msgstr "Kör en trevägs-filsammanslagning"
-#: command-list.h:126
+#: command-list.h:127
msgid "Run a merge for files needing merging"
msgstr "Kör en sammanslagning för filer som behöver det"
-#: command-list.h:127
+#: command-list.h:128
msgid "The standard helper program to use with git-merge-index"
msgstr "Förvalt hjälpprogram att använda tillsammans med git-merge-index"
-#: command-list.h:128
+#: command-list.h:129
msgid "Show three-way merge without touching index"
msgstr "Visa trevägssammanslagning utan att röra indexet"
-#: command-list.h:129
+#: command-list.h:130
msgid "Run merge conflict resolution tools to resolve merge conflicts"
msgstr "Kör verktyg för lösning av sammanslagningskonflikter"
-#: command-list.h:130
+#: command-list.h:131
msgid "Creates a tag object with extra validation"
msgstr "skapar ett taggobjekt med extra validering"
-#: command-list.h:131
+#: command-list.h:132
msgid "Build a tree-object from ls-tree formatted text"
msgstr "Bygg ett trädobjekt från ls-tree-formaterad text"
-#: command-list.h:132
+#: command-list.h:133
msgid "Write and verify multi-pack-indexes"
msgstr "Skriv och verifiera multi-pack-index"
-#: command-list.h:133
+#: command-list.h:134
msgid "Move or rename a file, a directory, or a symlink"
msgstr "Flytta eller byt namn på en fil, katalog eller symbolisk länk"
-#: command-list.h:134
+#: command-list.h:135
msgid "Find symbolic names for given revs"
msgstr "Hitta symboliska namn för givna referenser"
-#: command-list.h:135
+#: command-list.h:136
msgid "Add or inspect object notes"
msgstr "Lägg till eller inspektera objektanteckningar"
-#: command-list.h:136
+#: command-list.h:137
msgid "Import from and submit to Perforce repositories"
msgstr "Importera från eller sänd till Perforce-arkiv"
-#: command-list.h:137
+#: command-list.h:138
msgid "Create a packed archive of objects"
msgstr "Skapa ett packat arkiv med objekt"
-#: command-list.h:138
+#: command-list.h:139
msgid "Find redundant pack files"
msgstr "Hitta redundanta pack-filer"
-#: command-list.h:139
+#: command-list.h:140
msgid "Pack heads and tags for efficient repository access"
msgstr "Packa huvuden och taggar för effektiv arkivåtkomst"
-#: command-list.h:140
+#: command-list.h:141
msgid "Compute unique ID for a patch"
msgstr "Beräkna unik ID för en patch"
-#: command-list.h:141
+#: command-list.h:142
msgid "Prune all unreachable objects from the object database"
msgstr "Ta bort alla onåbara objekt från objektdatabasen"
-#: command-list.h:142
+#: command-list.h:143
msgid "Remove extra objects that are already in pack files"
msgstr "Ta bort extraobjekt som redan finns i pack-filerna"
-#: command-list.h:143
+#: command-list.h:144
msgid "Fetch from and integrate with another repository or a local branch"
msgstr "Hämta från och integrera med annat arkiv eller en lokal gren"
-#: command-list.h:144
+#: command-list.h:145
msgid "Update remote refs along with associated objects"
msgstr "Uppdatera fjärr-referenser och tillhörande objekt"
-#: command-list.h:145
+#: command-list.h:146
msgid "Applies a quilt patchset onto the current branch"
msgstr "Tillämpar en quilt-patchuppsättning på aktiv gren"
-#: command-list.h:146
+#: command-list.h:147
msgid "Compare two commit ranges (e.g. two versions of a branch)"
msgstr "Jämför två incheckningsintervall (dvs. två versioner av en gren)"
-#: command-list.h:147
+#: command-list.h:148
msgid "Reads tree information into the index"
msgstr "Läser trädinformation in i indexet"
-#: command-list.h:148
+#: command-list.h:149
msgid "Reapply commits on top of another base tip"
msgstr "Applicera incheckningar på nytt ovanpå en annan bastopp"
-#: command-list.h:149
+#: command-list.h:150
msgid "Receive what is pushed into the repository"
msgstr "Ta emot det som sänds till arkivet"
-#: command-list.h:150
+#: command-list.h:151
msgid "Manage reflog information"
msgstr "Hantera referenslogg-information"
-#: command-list.h:151
+#: command-list.h:152
msgid "Manage set of tracked repositories"
msgstr "Hantera uppsättningen spårade arkiv"
-#: command-list.h:152
+#: command-list.h:153
msgid "Pack unpacked objects in a repository"
msgstr "Packa opackade objekt i ett arkiv"
-#: command-list.h:153
+#: command-list.h:154
msgid "Create, list, delete refs to replace objects"
msgstr "Skapa, visa, ta bort referenser för att ersätta objekt"
-#: command-list.h:154
+#: command-list.h:155
msgid "Generates a summary of pending changes"
msgstr "Skapar en sammanfattning av väntande ändringar"
-#: command-list.h:155
+#: command-list.h:156
msgid "Reuse recorded resolution of conflicted merges"
msgstr "Återanvänd sparad lösning av sammanslagningskonflikter"
-#: command-list.h:156
+#: command-list.h:157
msgid "Reset current HEAD to the specified state"
msgstr "Återställ aktuell HEAD till angivet tillstånd"
-#: command-list.h:157
+#: command-list.h:158
msgid "Restore working tree files"
msgstr "Återställ filer i arbetskatalogen"
-#: command-list.h:158
+#: command-list.h:159
msgid "Lists commit objects in reverse chronological order"
msgstr "Visa incheckningsobjekt i omvänd kronologisk ordning"
-#: command-list.h:159
+#: command-list.h:160
msgid "Pick out and massage parameters"
msgstr "Plocka ut och massera parametrar"
-#: command-list.h:160
+#: command-list.h:161
msgid "Revert some existing commits"
msgstr "Återställ några befintliga incheckningar"
-#: command-list.h:161
+#: command-list.h:162
msgid "Remove files from the working tree and from the index"
msgstr "Ta bort filer från arbetskatalogen och från indexet"
-#: command-list.h:162
+#: command-list.h:163
msgid "Send a collection of patches as emails"
msgstr "Sänd en uppsättning patchar som e-post"
-#: command-list.h:163
+#: command-list.h:164
msgid "Push objects over Git protocol to another repository"
msgstr "Sänd objekt över Git-protokollet till annat arkiv"
-#: command-list.h:164
+#: command-list.h:165
msgid "Git's i18n setup code for shell scripts"
msgstr "Git:s i18n-startkod för skalskript"
-#: command-list.h:165
+#: command-list.h:166
msgid "Common Git shell script setup code"
msgstr "Gemensam skriptstartkod för Git"
-#: command-list.h:166
+#: command-list.h:167
msgid "Restricted login shell for Git-only SSH access"
msgstr "Begränsat inloggningsskal för SSH-åtkomst till bara Git"
-#: command-list.h:167
+#: command-list.h:168
msgid "Summarize 'git log' output"
msgstr "Summera \"git log\"-utdata"
-#: command-list.h:168
+#: command-list.h:169
msgid "Show various types of objects"
msgstr "Visa olika sorters objekt"
-#: command-list.h:169
+#: command-list.h:170
msgid "Show branches and their commits"
msgstr "Visa grenar och deras incheckningar"
-#: command-list.h:170
+#: command-list.h:171
msgid "Show packed archive index"
msgstr "Skapa packat arkivindex"
-#: command-list.h:171
+#: command-list.h:172
msgid "List references in a local repository"
msgstr "Visa referenser i ett lokalt arkiv"
-#: command-list.h:172
-msgid "Initialize and modify the sparse-checkout"
-msgstr "Initiera och modifiera sparse-checkout"
-
#: command-list.h:173
+msgid "Reduce your working tree to a subset of tracked files"
+msgstr "Reducera din arbetskatalog till en undermängd av de spårade filerna"
+
+#: command-list.h:174
msgid "Add file contents to the staging area"
msgstr "Lägg filinnehållet till indexet"
-#: command-list.h:174
+#: command-list.h:175
msgid "Stash the changes in a dirty working directory away"
msgstr "Spara undan ändringar i en lortig arbetskatalog"
-#: command-list.h:175
+#: command-list.h:176
msgid "Show the working tree status"
msgstr "Visa status för arbetskatalogen"
-#: command-list.h:176
+#: command-list.h:177
msgid "Remove unnecessary whitespace"
msgstr "Ta bort onödiga blanksteg"
-#: command-list.h:177
+#: command-list.h:178
msgid "Initialize, update or inspect submodules"
msgstr "Initiera, uppdatera eller inspektera undermoduler"
-#: command-list.h:178
+#: command-list.h:179
msgid "Bidirectional operation between a Subversion repository and Git"
msgstr "Dubbelriktad verkan mellan ett Subversion-arkiv och Git"
-#: command-list.h:179
+#: command-list.h:180
msgid "Switch branches"
msgstr "Byt gren"
-#: command-list.h:180
+#: command-list.h:181
msgid "Read, modify and delete symbolic refs"
msgstr "Läs, modifiera eller ta bort symbolisk referens"
-#: command-list.h:181
+#: command-list.h:182
msgid "Create, list, delete or verify a tag object signed with GPG"
msgstr "Skapa, visa, ta bort eller verifiera GPG-signerat taggobjekt"
-#: command-list.h:182
+#: command-list.h:183
msgid "Creates a temporary file with a blob's contents"
msgstr "Skapar temporära filer med innehållet från en blob"
-#: command-list.h:183
+#: command-list.h:184
msgid "Unpack objects from a packed archive"
msgstr "Packa upp objekt från ett pakat arkiv"
-#: command-list.h:184
+#: command-list.h:185
msgid "Register file contents in the working tree to the index"
msgstr "Registrera filinnehållet från arbetskatalogen i indexet"
-#: command-list.h:185
+#: command-list.h:186
msgid "Update the object name stored in a ref safely"
msgstr "Uppdatera objektnamnet i en referens på ett säkert sätt"
-#: command-list.h:186
+#: command-list.h:187
msgid "Update auxiliary info file to help dumb servers"
msgstr "Uppdatera tilläggsinfofil för att hjälpa dumma servrar"
-#: command-list.h:187
+#: command-list.h:188
msgid "Send archive back to git-archive"
msgstr "Sänd arkivet tillbaka till git-archive"
-#: command-list.h:188
+#: command-list.h:189
msgid "Send objects packed back to git-fetch-pack"
msgstr "Sänd packade objekt tillbaka till git-fetch-pack"
-#: command-list.h:189
+#: command-list.h:190
msgid "Show a Git logical variable"
msgstr "Visa en logisk Git-variabel"
-#: command-list.h:190
+#: command-list.h:191
msgid "Check the GPG signature of commits"
msgstr "Kontrollera GPG-signaturer för incheckningar"
-#: command-list.h:191
+#: command-list.h:192
msgid "Validate packed Git archive files"
msgstr "Bekräfta packade Git-arkivfiler"
-#: command-list.h:192
+#: command-list.h:193
msgid "Check the GPG signature of tags"
msgstr "Kontrollera GPG-signaturer i taggar"
-#: command-list.h:193
+#: command-list.h:194
msgid "Show logs with difference each commit introduces"
msgstr "Visa loggar med differenser varje incheckning introducerar"
-#: command-list.h:194
+#: command-list.h:195
msgid "Manage multiple working trees"
msgstr "Hantera ytterligare arbetskataloger"
-#: command-list.h:195
+#: command-list.h:196
msgid "Create a tree object from the current index"
msgstr "Skapa ett trädobjekt från aktuellt index"
-#: command-list.h:196
+#: command-list.h:197
msgid "Defining attributes per path"
msgstr "Definierar attribut per sökväg"
-#: command-list.h:197
+#: command-list.h:198
msgid "Git command-line interface and conventions"
msgstr "Gits kommandoradsgränssnitt och -konventioner"
-#: command-list.h:198
+#: command-list.h:199
msgid "A Git core tutorial for developers"
msgstr "Grundläggande Git-handledning för utvecklare"
-#: command-list.h:199
+#: command-list.h:200
msgid "Providing usernames and passwords to Git"
msgstr "Tillhandahåll användarnamn och lösenord till Git"
-#: command-list.h:200
+#: command-list.h:201
msgid "Git for CVS users"
msgstr "Git för CVS-användare"
-#: command-list.h:201
+#: command-list.h:202
msgid "Tweaking diff output"
msgstr "Justrea diff-utdata"
-#: command-list.h:202
+#: command-list.h:203
msgid "A useful minimum set of commands for Everyday Git"
msgstr "Ett användbart minsta uppsättning kommandon för vardags-Git"
-#: command-list.h:203
+#: command-list.h:204
msgid "Frequently asked questions about using Git"
msgstr "Ofta ställda frågor om att använda Git"
-#: command-list.h:204
+#: command-list.h:205
msgid "A Git Glossary"
msgstr "En Git-ordlista"
-#: command-list.h:205
+#: command-list.h:206
msgid "Hooks used by Git"
msgstr "Krokar som används av Git"
-#: command-list.h:206
+#: command-list.h:207
msgid "Specifies intentionally untracked files to ignore"
msgstr "Ange avsiktligen ospårade filer att ignorera"
-#: command-list.h:207
+#: command-list.h:208
msgid "The Git repository browser"
msgstr "Bläddraren för Git-arkiv"
-#: command-list.h:208
+#: command-list.h:209
msgid "Map author/committer names and/or E-Mail addresses"
msgstr "Kopplar författar-/incheckarnamn och/eller -e-postadresser"
-#: command-list.h:209
+#: command-list.h:210
msgid "Defining submodule properties"
msgstr "Ange egenskaper för undermoduler"
-#: command-list.h:210
+#: command-list.h:211
msgid "Git namespaces"
msgstr "Git-namnrymder"
-#: command-list.h:211
+#: command-list.h:212
msgid "Helper programs to interact with remote repositories"
msgstr "Hjälpprogram för att interagera med fjärrarkiv"
-#: command-list.h:212
+#: command-list.h:213
msgid "Git Repository Layout"
msgstr "Gits arkivlayout"
-#: command-list.h:213
+#: command-list.h:214
msgid "Specifying revisions and ranges for Git"
msgstr "Ange versioner och intervall i Git"
-#: command-list.h:214
+#: command-list.h:215
msgid "Mounting one repository inside another"
msgstr "Monterar ett arkiv inuti ett annat"
-#: command-list.h:215
+#: command-list.h:216
msgid "A tutorial introduction to Git"
msgstr "Introduktion till Git"
-#: command-list.h:216
+#: command-list.h:217
msgid "A tutorial introduction to Git: part two"
msgstr "Introduktion till Git: del två"
-#: command-list.h:217
+#: command-list.h:218
msgid "Git web interface (web frontend to Git repositories)"
msgstr "Git-webbgränssnitt (webbframända för Git-arkiv)"
-#: command-list.h:218
+#: command-list.h:219
msgid "An overview of recommended workflows with Git"
msgstr "Översikt över rekommenderade arbetsflöden med Git"
@@ -25488,69 +26053,45 @@ msgstr "Försök enkel sammanslagning med $pretty_name"
msgid "Simple merge did not work, trying automatic merge."
msgstr "Enkel sammanslagning misslyckades, försöker automatisk sammanslagning."
-#: git-submodule.sh:401
-#, sh-format
-msgid "Unable to find current revision in submodule path '$displaypath'"
-msgstr "Kan inte hitta aktuell revision i undermodulsökvägen \"$displaypath\""
-
-#: git-submodule.sh:411
-#, sh-format
-msgid "Unable to fetch in submodule path '$sm_path'"
-msgstr "Kan inte hämta i undermodulsökväg \"$sm_path\""
-
-#: git-submodule.sh:416
-#, sh-format
-msgid ""
-"Unable to find current ${remote_name}/${branch} revision in submodule path "
-"'$sm_path'"
-msgstr ""
-"Kan inte hitta aktuell revision för ${remote_name}/${branch} i "
-"undermodulsökvägen \"$sm_path\""
-
-#: git-submodule.sh:464
-#, sh-format
-msgid "Failed to recurse into submodule path '$displaypath'"
-msgstr "Misslyckades rekursera in i undermodulsökvägen \"$displaypath\""
-
#: git-sh-setup.sh:89 git-sh-setup.sh:94
#, sh-format
msgid "usage: $dashless $USAGE"
msgstr "använd: $dashless $USAGE"
-#: git-sh-setup.sh:183
+#: git-sh-setup.sh:182
#, sh-format
msgid "Cannot chdir to $cdup, the toplevel of the working tree"
msgstr "Kunde inte byta katalog till $cdup, toppnivån på arbetskatalogen"
-#: git-sh-setup.sh:192 git-sh-setup.sh:199
+#: git-sh-setup.sh:191 git-sh-setup.sh:198
#, sh-format
msgid "fatal: $program_name cannot be used without a working tree."
msgstr "ödesdigetrt: $program_name kan inte användas utan arbetskatalog."
-#: git-sh-setup.sh:213
+#: git-sh-setup.sh:212
msgid "Cannot rewrite branches: You have unstaged changes."
msgstr "Kan inte skriva om grenar: Du har oköade ändringar."
-#: git-sh-setup.sh:216
+#: git-sh-setup.sh:215
#, sh-format
msgid "Cannot $action: You have unstaged changes."
msgstr "Kan inte $action: Du har oköade ändringar."
-#: git-sh-setup.sh:227
+#: git-sh-setup.sh:226
#, sh-format
msgid "Cannot $action: Your index contains uncommitted changes."
msgstr ""
"Kan inte $action: Ditt index innehåller ändringar som inte checkats in."
-#: git-sh-setup.sh:229
+#: git-sh-setup.sh:228
msgid "Additionally, your index contains uncommitted changes."
msgstr "Dessutom innehåller dit index ändringar som inte har checkats in."
-#: git-sh-setup.sh:349
+#: git-sh-setup.sh:348
msgid "You need to run this command from the toplevel of the working tree."
msgstr "Du måste köra kommandot från arbetskatalogens toppnivå."
-#: git-sh-setup.sh:354
+#: git-sh-setup.sh:353
msgid "Unable to determine absolute path of git directory"
msgstr "Kunde inte bestämma absolut sökväg till git-katalogen"
@@ -26233,23 +26774,23 @@ msgstr "kan inte sända brev som sjubitars"
msgid "invalid transfer encoding"
msgstr "ogiltig överföringskondning"
-#: git-send-email.perl:2095
+#: git-send-email.perl:2100
#, perl-format
msgid ""
-"fatal: %s: rejected by sendemail-validate hook\n"
+"fatal: %s: rejected by %s hook\n"
"%s\n"
"warning: no patches were sent\n"
msgstr ""
-"ödesdigert: %s: refuserad av sendemail-validate-kroken\n"
+"ödesdigert: %s: refuserad av kroken %s\n"
"%s\n"
"varning: inga patchar har sänts\n"
-#: git-send-email.perl:2105 git-send-email.perl:2158 git-send-email.perl:2168
+#: git-send-email.perl:2110 git-send-email.perl:2163 git-send-email.perl:2173
#, perl-format
msgid "unable to open %s: %s\n"
msgstr "kunde inte öppna %s: %s\n"
-#: git-send-email.perl:2108
+#: git-send-email.perl:2113
#, perl-format
msgid ""
"fatal: %s:%d is longer than 998 characters\n"
@@ -26258,7 +26799,7 @@ msgstr ""
"ödesdigert: %s:%d är längre än 998 tecken\n"
"varning: inga patchar har sänts\n"
-#: git-send-email.perl:2126
+#: git-send-email.perl:2131
#, perl-format
msgid "Skipping %s with backup suffix '%s'.\n"
msgstr ""
@@ -26266,11 +26807,270 @@ msgstr ""
"säkerhetskopior.\n"
#. TRANSLATORS: please keep "[y|N]" as is.
-#: git-send-email.perl:2130
+#: git-send-email.perl:2135
#, perl-format
msgid "Do you really want to send %s? [y|N]: "
msgstr "Vill du verkligen sända %s? [y=ja, n=nej]: "
+#~ msgid "git archive --list"
+#~ msgstr "git archive --list"
+
+#, c-format
+#~ msgid "unknown value for --diff-merges: %s"
+#~ msgstr "okänt värde för --diff-merges: %s"
+
+#, c-format
+#~ msgid "invalid value '%s' for lsrefs.unborn"
+#~ msgstr "ogiltigt värde \"%s\" för lsrefs.unborn"
+
+#~ msgid "backend for `git stash -p`"
+#~ msgstr "bakända för \"git stash -p\""
+
+#, c-format
+#~ msgid "Invalid value for --empty: %s"
+#~ msgstr "Felaktigt värde för --empty: %s"
+
+#, c-format
+#~ msgid "Invalid value for --patch-format: %s"
+#~ msgstr "Felaktigt värde för --patch-format: %s"
+
+#, c-format
+#~ msgid "Invalid value for --show-current-patch: %s"
+#~ msgstr "Felaktigt värde för --show-current-patch: %s"
+
+#~ msgid ""
+#~ "git bisect--helper --bisect-terms [--term-good | --term-old | --term-bad "
+#~ "| --term-new]"
+#~ msgstr ""
+#~ "git bisect--helper --bisect-terms [--term-good | --term-old | --term-bad "
+#~ "| --term-new]"
+
+#~ msgid "git bisect--helper --bisect-next"
+#~ msgstr "git bisect--helper --bisect-next"
+
+#~ msgid "git bisect--helper --bisect-visualize"
+#~ msgstr "git bisect--helper --bisect-visualize"
+
+#, c-format
+#~ msgid "invalid color '%s' in color.blame.repeatedLines"
+#~ msgstr "felaktig färg \"%s\" i color.blame.repeatedLines"
+
+#~ msgid "invalid value for blame.coloring"
+#~ msgstr "ogiltigt värde för blame.coloring"
+
+#~ msgid ""
+#~ "git cat-file (-t [--allow-unknown-type] | -s [--allow-unknown-type] | -e "
+#~ "| -p | <type> | --textconv | --filters) [--path=<path>] <object>"
+#~ msgstr ""
+#~ "git cat-file (-t [--allow-unknown-type] | -s [--allow-unknown-type] | -e "
+#~ "| -p | <typ> | --textconv | --filters) [--path=<sökväg>] <objekt>"
+
+#~ msgid "show object type"
+#~ msgstr "visa objekttyp"
+
+#~ msgid "exit with zero when there's no error"
+#~ msgstr "avsluta med noll när det inte uppstått något fel"
+
+#~ msgid "show info and content of objects fed from the standard input"
+#~ msgstr "visa information och innehåll för objekt som listas på standard in"
+
+#~ msgid "show info about objects fed from the standard input"
+#~ msgstr "visa information för objekt som listas på standard in"
+
+#~ msgid "follow in-tree symlinks (used with --batch or --batch-check)"
+#~ msgstr ""
+#~ "följ symboliska länkar i trädet (använd med --batch eller --batch-check)"
+
+#~ msgid "show all objects with --batch or --batch-check"
+#~ msgstr "visa alla objekt med --batch eller --batch-check"
+
+#~ msgid "do not order --batch-all-objects output"
+#~ msgstr "ordna inte --batch-all-objects output"
+
+#~ msgid "set up tracking mode (see git-pull(1))"
+#~ msgstr "ställ in spårningsläge (se git-pull(1))"
+
+#~ msgid "Using both --reset-author and --author does not make sense"
+#~ msgstr "Kan inte använda både --reset-author och --author"
+
+#~ msgid "Options --squash and --fixup cannot be used together"
+#~ msgstr "Flaggorna --squash och --fixup kan inte användas samtidigt"
+
+#~ msgid "Only one of -c/-C/-F/--fixup can be used."
+#~ msgstr "Endast en av -c/-C/-F/--fixup kan användas."
+
+#~ msgid "Option -m cannot be combined with -c/-C/-F."
+#~ msgstr "Flaggan -m kan inte kombineras med -c/-C/-F."
+
+#~ msgid ""
+#~ "Only one of --include/--only/--all/--interactive/--patch can be used."
+#~ msgstr ""
+#~ "Endast en av --include/--only/--all/--interactive/--patch kan användas."
+
+#~ msgid "git count-objects [-v] [-H | --human-readable]"
+#~ msgstr "git count-objects [-v] [-H | --human-readable]"
+
+#, c-format
+#~ msgid "configuration fetch.output contains invalid value %s"
+#~ msgstr "konfigurationen för fetch.output innehåller ogiltigt värde %s"
+
+#~ msgid "--cached or --untracked cannot be used with --no-index"
+#~ msgstr "--cached och --untracked kan inte användas med --no-index"
+
+#~ msgid "--untracked cannot be used with --cached"
+#~ msgstr "--untracked kan inte användas med --cached"
+
+#~ msgid "git hash-object --stdin-paths"
+#~ msgstr "git hash-object --stdin-paths"
+
+#~ msgid "git help [-g|--guides]"
+#~ msgstr "git help [-g|--guides]"
+
+#~ msgid "git help [-c|--config]"
+#~ msgstr "git help [-c|--config]"
+
+#~ msgid "git mktag"
+#~ msgstr "git mktag"
+
+#~ msgid "git mktree [-z] [--missing] [--batch]"
+#~ msgstr "git mktree [-z] [--missing] [--batch]"
+
+#~ msgid "read from stdin"
+#~ msgstr "läs från standard in"
+
+#~ msgid "git notes merge --commit [-v | -q]"
+#~ msgstr "git notes merge --commit [-v | -q]"
+
+#~ msgid "git notes merge --abort [-v | -q]"
+#~ msgstr "git notes merge --abort [-v | -q]"
+
+#~ msgid "git notes get-ref"
+#~ msgstr "git notes get-ref"
+
+#~ msgid "invalid value for --missing"
+#~ msgstr "ogiltigt värde för --missing"
+
+#~ msgid "git prune-packed [-n | --dry-run] [-q | --quiet]"
+#~ msgstr "git prune-packed [-n | --dry-run] [-q | --quiet]"
+
+#, c-format
+#~ msgid "Invalid value for %s: %s"
+#~ msgstr "Felaktigt värde för %s: %s"
+
+#, c-format
+#~ msgid "Invalid value for pull.ff: %s"
+#~ msgstr "Felaktigt värde för pull.ff: %s"
+
+#~ msgid "git rebase --continue | --abort | --skip | --edit-todo"
+#~ msgstr "git rebase --continue | --abort | --skip | --edit-todo"
+
+#, c-format
+#~ msgid "'%s' is not a valid timestamp"
+#~ msgstr "\"%s\" är inte en giltig tidsstämpel"
+
+#~ msgid "git reflog [ show | expire | delete | exists ]"
+#~ msgstr "git reflog [ show | expire | delete | exists ]"
+
+#~ msgid "git remote [-v | --verbose]"
+#~ msgstr "git remote [-v | --verbose]"
+
+#~ msgid "git replace [-f] --convert-graft-file"
+#~ msgstr "git replace [-f] --convert-graft-file"
+
+#, c-format
+#~ msgid ""
+#~ "\n"
+#~ "It took %.2f seconds to enumerate unstaged changes after reset. You can\n"
+#~ "use '--quiet' to avoid this. Set the config setting reset.quiet to true\n"
+#~ "to make this the default.\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Det tog %.2f sekunder att räkna upp oköade ändringar efter "
+#~ "återställning.\n"
+#~ "Du kan använda \"--quiet\" för att förhindra detta. Ställ "
+#~ "konfigurationsvariabeln\n"
+#~ "reset.quiet till true för att göra detta till förval.\n"
+
+#~ msgid "git sparse-checkout list"
+#~ msgstr "git sparse-checkout list"
+
+#~ msgid "unable to upgrade repository format to enable worktreeConfig"
+#~ msgstr "kunde inte uppgradera arkivformat för att aktivera worktreeConfig"
+
+#~ msgid "git sparse-checkout init [--cone] [--[no-]sparse-index]"
+#~ msgstr "git sparse-checkout init [--cone] [--[no-]sparse-index]"
+
+#~ msgid "git sparse-checkout reapply [--[no-]cone] [--[no-]sparse-index]"
+#~ msgstr "git sparse-checkout reapply [--[no-]cone] [--[no-]sparse-index]"
+
+#~ msgid "git sparse-checkout disable"
+#~ msgstr "git sparse-checkout disable"
+
+#~ msgid ""
+#~ "the stash.useBuiltin support has been removed!\n"
+#~ "See its entry in 'git help config' for details."
+#~ msgstr ""
+#~ "stödet för stash.useBuiltin har tagits bort!\n"
+#~ "Se posten för det i \"git help config\" för detaljer."
+
+#~ msgid "git stripspace [-s | --strip-comments]"
+#~ msgstr "git stripspace [-s | --strip-comments]"
+
+#~ msgid "git stripspace [-c | --comment-lines]"
+#~ msgstr "git stripspace [-c | --comment-lines]"
+
+#~ msgid "submodule--helper print-default-remote takes no arguments"
+#~ msgstr "submodule--helper print-default-remote tar inga argument"
+
+#~ msgid "git submodule--helper update-clone [--prefix=<path>] [<path>...]"
+#~ msgstr ""
+#~ "git submodule--helper update-clone [--prefix=<sökväg>] [<sökväg>...]"
+
+#~ msgid "suppress output for update by rebase or merge"
+#~ msgstr "dölj utdata för uppdatering via ombasering eller sammanslagning{"
+
+#~ msgid "overrides update mode in case the repository is a fresh clone"
+#~ msgstr "överstyr uppdateringsläge om arkviet är en färsk klon"
+
+#~ msgid "depth for shallow fetch"
+#~ msgstr "djup för grund hämtning"
+
+#~ msgid "sha1"
+#~ msgstr "sha1"
+
+#~ msgid "SHA1 expected by superproject"
+#~ msgstr "SHA1 förväntades av överprojekt{"
+
+#~ msgid "subsha1"
+#~ msgstr "subsha1"
+
+#~ msgid "SHA1 of submodule's HEAD"
+#~ msgstr "SHA1 för undermodulens \"HEAD\""
+
+#~ msgid "git submodule--helper run-update-procedure [<options>] <path>"
+#~ msgstr "git submodule--helper run-update-procedure [<flaggor>] <sökväg>"
+
+#~ msgid "git submodule--helper config --check-writeable"
+#~ msgstr "git submodule--helper config --check-writeable"
+
+#~ msgid "git update-server-info [--force]"
+#~ msgstr "git update-server-info [--force]"
+
+#~ msgid "Initialize and modify the sparse-checkout"
+#~ msgstr "Initiera och modifiera sparse-checkout"
+
+#, sh-format
+#~ msgid ""
+#~ "Unable to find current ${remote_name}/${branch} revision in submodule "
+#~ "path '$sm_path'"
+#~ msgstr ""
+#~ "Kan inte hitta aktuell revision för ${remote_name}/${branch} i "
+#~ "undermodulsökvägen \"$sm_path\""
+
+#, sh-format
+#~ msgid "Failed to recurse into submodule path '$displaypath'"
+#~ msgstr "Misslyckades rekursera in i undermodulsökvägen \"$displaypath\""
+
#~ msgid "--index outside a repository"
#~ msgstr "--index utanför arkiv"
@@ -26723,9 +27523,6 @@ msgstr "Vill du verkligen sända %s? [y=ja, n=nej]: "
#~ msgid "cannot store pack file"
#~ msgstr "kan inte spara paketfil"
-#~ msgid "cannot store index file"
-#~ msgstr "kan inte spara indexfil"
-
#~ msgid "exclude patterns are read from <file>"
#~ msgstr "exkludera mönster som läses från <fil>"
@@ -26853,21 +27650,12 @@ msgstr "Vill du verkligen sända %s? [y=ja, n=nej]: "
#~ msgid "socket/pipe already in use: '%s'"
#~ msgstr "uttag/rör används redan: \"%s\""
-#~ msgid "could not start server on: '%s'"
-#~ msgstr "kunde inte starta server på: \"%s\""
-
#~ msgid "could not spawn daemon in the background"
#~ msgstr "kunde inte starta serverprocess i bakgrunden"
#~ msgid "waitpid failed"
#~ msgstr "\"waitpid\" misslyckades"
-#~ msgid "daemon not online yet"
-#~ msgstr "serverprocessen ännu inte operativ"
-
-#~ msgid "daemon failed to start"
-#~ msgstr "serverprocessen kunde inte startas"
-
#~ msgid "waitpid is confused"
#~ msgstr "waitpid är förvirrad"
@@ -27271,9 +28059,6 @@ msgstr "Vill du verkligen sända %s? [y=ja, n=nej]: "
#~ msgid "Error deleting remote-tracking branch '%s'"
#~ msgstr "Fel vid borttagning av fjärrspårande grenen \"%s\""
-#~ msgid "Error deleting branch '%s'"
-#~ msgstr "Fel vid borttagning av grenen \"%s\""
-
#~ msgid "show parse tree for grep expression"
#~ msgstr "visa analysträd för grep-uttryck"
@@ -27709,9 +28494,6 @@ msgstr "Vill du verkligen sända %s? [y=ja, n=nej]: "
#~ msgid "error building trees"
#~ msgstr "fel vid byggande av träd"
-#~ msgid "invalid date format '%s' in '%s'"
-#~ msgstr "ogiltigt datumformat \"%s\" i \"%s\""
-
#~ msgid "writing root commit"
#~ msgstr "skriver rotincheckning"
@@ -27917,9 +28699,6 @@ msgstr "Vill du verkligen sända %s? [y=ja, n=nej]: "
#~ msgstr ""
#~ "Först, spolar tillbaka huvudet för att spela av ditt arbete ovanpå det..."
-#~ msgid "ignoring unknown color-moved-ws mode '%s'"
-#~ msgstr "ignorerar okänt läge för color-mode-ws \"%s\""
-
#~ msgid "only 'tree:0' is supported"
#~ msgstr "endast \"tree:0\" stöds"
@@ -28707,9 +29486,6 @@ msgstr "Vill du verkligen sända %s? [y=ja, n=nej]: "
#~ msgid "Invalid gc.pruneexpire: '%s'"
#~ msgstr "Ogiltig gc.pruneexpire: '%s'"
-#~ msgid "(detached from %s)"
-#~ msgstr "(frånkopplad från %s)"
-
#~ msgid "No existing author found with '%s'"
#~ msgstr "Hittade ingen befintlig författare med \"%s\""
diff --git a/po/tr.po b/po/tr.po
index 6afb871846..45d66c66af 100644
--- a/po/tr.po
+++ b/po/tr.po
@@ -90,8 +90,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: 2022-01-17 08:34+0800\n"
-"PO-Revision-Date: 2022-01-11 18:00+0300\n"
+"POT-Creation-Date: 2022-04-13 14:52+0800\n"
+"PO-Revision-Date: 2022-04-06 16:00+0300\n"
"Last-Translator: Emir SARI <emir_sari@icloud.com>\n"
"Language-Team: Turkish (https://github.com/bitigchi/git-po/)\n"
"Language: tr\n"
@@ -100,213 +100,212 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: add-interactive.c:380
+#: add-interactive.c:382
#, c-format
msgid "Huh (%s)?"
msgstr "Pardon (%s)?"
-#: add-interactive.c:533 add-interactive.c:834 reset.c:65 sequencer.c:3509
-#: sequencer.c:3974 sequencer.c:4136 builtin/rebase.c:1233
-#: builtin/rebase.c:1642
+#: add-interactive.c:535 add-interactive.c:836 reset.c:136 sequencer.c:3505
+#: sequencer.c:3970 sequencer.c:4127 builtin/rebase.c:1261
+#: builtin/rebase.c:1671
msgid "could not read index"
msgstr "indeks okunamadı"
-#: add-interactive.c:588 git-add--interactive.perl:269
+#: add-interactive.c:590 git-add--interactive.perl:269
#: git-add--interactive.perl:294
msgid "binary"
msgstr "ikili"
-#: add-interactive.c:646 git-add--interactive.perl:278
+#: add-interactive.c:648 git-add--interactive.perl:278
#: git-add--interactive.perl:332
msgid "nothing"
msgstr "hiçbir şey"
-#: add-interactive.c:647 git-add--interactive.perl:314
+#: add-interactive.c:649 git-add--interactive.perl:314
#: git-add--interactive.perl:329
msgid "unchanged"
msgstr "deÄŸiÅŸtirilmemiÅŸ"
-#: add-interactive.c:684 git-add--interactive.perl:641
+#: add-interactive.c:686 git-add--interactive.perl:641
msgid "Update"
msgstr "Güncelle"
-#: add-interactive.c:701 add-interactive.c:889
+#: add-interactive.c:703 add-interactive.c:891
#, c-format
msgid "could not stage '%s'"
msgstr "'%s' hazırlanamadı"
-#: add-interactive.c:707 add-interactive.c:896 reset.c:89 sequencer.c:3713
+#: add-interactive.c:709 add-interactive.c:898 reset.c:160 sequencer.c:3709
msgid "could not write index"
msgstr "indeks yazılamadı"
-#: add-interactive.c:710 git-add--interactive.perl:626
+#: add-interactive.c:712 git-add--interactive.perl:626
#, c-format, perl-format
msgid "updated %d path\n"
msgid_plural "updated %d paths\n"
msgstr[0] "%d yol güncellendi\n"
msgstr[1] "%d yol güncellendi\n"
-#: add-interactive.c:728 git-add--interactive.perl:676
+#: add-interactive.c:730 git-add--interactive.perl:676
#, c-format, perl-format
msgid "note: %s is untracked now.\n"
msgstr "not: %s artık izlenmiyor.\n"
-#: add-interactive.c:733 apply.c:4151 builtin/checkout.c:306
+#: add-interactive.c:735 apply.c:4133 builtin/checkout.c:311
#: builtin/reset.c:167
#, c-format
msgid "make_cache_entry failed for path '%s'"
msgstr "'%s' yolu için make_cache_entry başarısız oldu"
-#: add-interactive.c:763 git-add--interactive.perl:653
+#: add-interactive.c:765 git-add--interactive.perl:653
msgid "Revert"
msgstr "Geri al"
-#: add-interactive.c:779
+#: add-interactive.c:781
msgid "Could not parse HEAD^{tree}"
msgstr "HEAD^{tree} ayrıştırılamadı"
-#: add-interactive.c:817 git-add--interactive.perl:629
+#: add-interactive.c:819 git-add--interactive.perl:629
#, c-format, perl-format
msgid "reverted %d path\n"
msgid_plural "reverted %d paths\n"
msgstr[0] "%d yol geri alındı\n"
msgstr[1] "%d yol geri alındı\n"
-#: add-interactive.c:868 git-add--interactive.perl:693
+#: add-interactive.c:870 git-add--interactive.perl:693
#, c-format
msgid "No untracked files.\n"
msgstr "Ä°zlenmeyen dosya yok.\n"
-#: add-interactive.c:872 git-add--interactive.perl:687
+#: add-interactive.c:874 git-add--interactive.perl:687
msgid "Add untracked"
msgstr "Ä°zlenmeyenleri ekle"
-#: add-interactive.c:899 git-add--interactive.perl:623
+#: add-interactive.c:901 git-add--interactive.perl:623
#, c-format, perl-format
msgid "added %d path\n"
msgid_plural "added %d paths\n"
msgstr[0] "%d yol eklendi\n"
msgstr[1] "%d yol eklendi\n"
-#: add-interactive.c:929
+#: add-interactive.c:931
#, c-format
msgid "ignoring unmerged: %s"
msgstr "birleştirilmeyenler yok sayılıyor: %s"
-#: add-interactive.c:941 add-patch.c:1752 git-add--interactive.perl:1371
+#: add-interactive.c:943 add-patch.c:1758 git-add--interactive.perl:1371
#, c-format
msgid "Only binary files changed.\n"
msgstr "Yalnızca ikili dosyalar değiştirildi.\n"
-#: add-interactive.c:943 add-patch.c:1750 git-add--interactive.perl:1373
+#: add-interactive.c:945 add-patch.c:1756 git-add--interactive.perl:1373
#, c-format
msgid "No changes.\n"
msgstr "DeÄŸiÅŸiklik yok.\n"
-#: add-interactive.c:947 git-add--interactive.perl:1381
+#: add-interactive.c:949 git-add--interactive.perl:1381
msgid "Patch update"
msgstr "Yama güncellemesi"
-#: add-interactive.c:986 git-add--interactive.perl:1794
+#: add-interactive.c:988 git-add--interactive.perl:1794
msgid "Review diff"
msgstr "diff'i gözden geçir"
-#: add-interactive.c:1014
+#: add-interactive.c:1016
msgid "show paths with changes"
msgstr "değiştirilmiş yolları göster"
-#: add-interactive.c:1016
+#: add-interactive.c:1018
msgid "add working tree state to the staged set of changes"
msgstr "hazırlanan değişikliklere çalışma ağacı durumunu ekle"
-#: add-interactive.c:1018
+#: add-interactive.c:1020
msgid "revert staged set of changes back to the HEAD version"
msgstr "hazırlanan değişiklikleri HEAD sürümüne geri al"
-#: add-interactive.c:1020
+#: add-interactive.c:1022
msgid "pick hunks and update selectively"
msgstr "parçaları seç ve seçerek güncelle"
-#: add-interactive.c:1022
+#: add-interactive.c:1024
msgid "view diff between HEAD and index"
msgstr "HEAD ve indeks arasındaki diff'i gör"
-#: add-interactive.c:1024
+#: add-interactive.c:1026
msgid "add contents of untracked files to the staged set of changes"
msgstr "izlenmeyen dosyaların içeriğini hazırlanan değişikliklere ekle"
-#: add-interactive.c:1032 add-interactive.c:1081
+#: add-interactive.c:1034 add-interactive.c:1083
msgid "Prompt help:"
msgstr "İstem yardımı:"
-#: add-interactive.c:1034
+#: add-interactive.c:1036
msgid "select a single item"
msgstr "tek bir öge seç"
-#: add-interactive.c:1036
+#: add-interactive.c:1038
msgid "select a range of items"
msgstr "bir öge erimi seç"
-#: add-interactive.c:1038
+#: add-interactive.c:1040
msgid "select multiple ranges"
msgstr "birden çok erim seç"
-#: add-interactive.c:1040 add-interactive.c:1085
+#: add-interactive.c:1042 add-interactive.c:1087
msgid "select item based on unique prefix"
msgstr "benzersiz öneke dayanarak öge seç"
-#: add-interactive.c:1042
+#: add-interactive.c:1044
msgid "unselect specified items"
msgstr "belirtilen ögelerin seçimini kaldır"
-#: add-interactive.c:1044
+#: add-interactive.c:1046
msgid "choose all items"
msgstr "tüm ögeleri seç"
-#: add-interactive.c:1046
+#: add-interactive.c:1048
msgid "(empty) finish selecting"
msgstr "(boş) seçimi bitir"
-#: add-interactive.c:1083
+#: add-interactive.c:1085
msgid "select a numbered item"
msgstr "numaralandırılmış bir öge seç"
-#: add-interactive.c:1087
+#: add-interactive.c:1089
msgid "(empty) select nothing"
msgstr "(boş) hiçbir şey seçme"
-#: add-interactive.c:1095 builtin/clean.c:839 git-add--interactive.perl:1898
+#: add-interactive.c:1097 builtin/clean.c:839 git-add--interactive.perl:1898
msgid "*** Commands ***"
msgstr "*** Komutlar ***"
-#: add-interactive.c:1096 builtin/clean.c:840 git-add--interactive.perl:1895
+#: add-interactive.c:1098 builtin/clean.c:840 git-add--interactive.perl:1895
msgid "What now"
msgstr "Åžimdi ne olacak"
-#: add-interactive.c:1148 git-add--interactive.perl:213
+#: add-interactive.c:1150 git-add--interactive.perl:213
msgid "staged"
msgstr "hazırlanmış"
-#: add-interactive.c:1148 git-add--interactive.perl:213
+#: add-interactive.c:1150 git-add--interactive.perl:213
msgid "unstaged"
msgstr "hazırlanmamış"
-#: add-interactive.c:1148 apply.c:5020 apply.c:5023 builtin/am.c:2367
-#: builtin/am.c:2370 builtin/bugreport.c:107 builtin/clone.c:128
-#: builtin/fetch.c:153 builtin/merge.c:287 builtin/pull.c:194
-#: builtin/submodule--helper.c:404 builtin/submodule--helper.c:1858
-#: builtin/submodule--helper.c:1861 builtin/submodule--helper.c:2504
-#: builtin/submodule--helper.c:2507 builtin/submodule--helper.c:2574
-#: builtin/submodule--helper.c:2579 builtin/submodule--helper.c:2812
+#: add-interactive.c:1150 apply.c:5002 apply.c:5005 builtin/am.c:2370
+#: builtin/am.c:2373 builtin/bugreport.c:107 builtin/clone.c:132
+#: builtin/fetch.c:154 builtin/merge.c:287 builtin/pull.c:194
+#: builtin/submodule--helper.c:412 builtin/submodule--helper.c:1872
+#: builtin/submodule--helper.c:1875 builtin/submodule--helper.c:2709
+#: builtin/submodule--helper.c:2712 builtin/submodule--helper.c:2891
#: git-add--interactive.perl:213
msgid "path"
msgstr "yol"
-#: add-interactive.c:1155
+#: add-interactive.c:1157
msgid "could not refresh index"
msgstr "indeks yenilenemedi"
-#: add-interactive.c:1169 builtin/clean.c:804 git-add--interactive.perl:1805
+#: add-interactive.c:1171 builtin/clean.c:804 git-add--interactive.perl:1805
#, c-format
msgid "Bye.\n"
msgstr "Güle güle.\n"
@@ -619,24 +618,24 @@ msgstr "parça üstbilgisi '%.*s' ayrıştırılamadı"
msgid "could not parse colored hunk header '%.*s'"
msgstr "renklendirilmiş parça üstbilgisi '%.*s' ayrıştırılamadı"
-#: add-patch.c:420
+#: add-patch.c:431
msgid "could not parse diff"
msgstr "diff ayrıştırılamadı"
-#: add-patch.c:439
+#: add-patch.c:450
msgid "could not parse colored diff"
msgstr "renklendirilmiş diff ayrıştırılamadı"
-#: add-patch.c:453
+#: add-patch.c:464
#, c-format
msgid "failed to run '%s'"
msgstr "'%s' çalıştırılamadı"
-#: add-patch.c:612
+#: add-patch.c:618
msgid "mismatched output from interactive.diffFilter"
msgstr "interactive.diffFilter ögesinden eşleşmeyen çıktı"
-#: add-patch.c:613
+#: add-patch.c:619
msgid ""
"Your filter must maintain a one-to-one correspondence\n"
"between its input and output lines."
@@ -644,7 +643,7 @@ msgstr ""
"Süzgeciniz kendisinin girdi ve çıktı satırları arasında\n"
"birebir karşılık sağlamalıdır."
-#: add-patch.c:791
+#: add-patch.c:797
#, c-format
msgid ""
"expected context line #%d in\n"
@@ -653,7 +652,7 @@ msgstr ""
"şurada bağlam satırı #%d bekleniyordu:\n"
"%.*s"
-#: add-patch.c:806
+#: add-patch.c:812
#, c-format
msgid ""
"hunks do not overlap:\n"
@@ -666,11 +665,11 @@ msgstr ""
"\tÅŸununla bitmiyor:\n"
"%.*s"
-#: add-patch.c:1082 git-add--interactive.perl:1115
+#: add-patch.c:1088 git-add--interactive.perl:1115
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:1086
+#: add-patch.c:1092
#, c-format
msgid ""
"---\n"
@@ -684,7 +683,7 @@ msgstr ""
"%c kaldırılacak.\n"
#. TRANSLATORS: 'it' refers to the patch mentioned in the previous messages.
-#: add-patch.c:1100 git-add--interactive.perl:1129
+#: add-patch.c:1106 git-add--interactive.perl:1129
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"
@@ -694,11 +693,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:1133
+#: add-patch.c:1139
msgid "could not parse hunk header"
msgstr "parça üstbilgisi ayrıştırılamadı"
-#: add-patch.c:1178
+#: add-patch.c:1184
msgid "'git apply --cached' failed"
msgstr "'git apply --cached' başarısız oldu"
@@ -714,26 +713,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:1247 git-add--interactive.perl:1244
+#: add-patch.c:1253 git-add--interactive.perl:1244
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)\" "
"ıskartaya çıkarır!) [y/n]? "
-#: add-patch.c:1290
+#: add-patch.c:1296
msgid "The selected hunks do not apply to the index!"
msgstr "Seçili parçalar indekse uygulanamıyor!"
-#: add-patch.c:1291 git-add--interactive.perl:1348
+#: add-patch.c:1297 git-add--interactive.perl:1348
msgid "Apply them to the worktree anyway? "
msgstr "Çalışma ağacına yine de uygulansın mı? "
-#: add-patch.c:1298 git-add--interactive.perl:1351
+#: add-patch.c:1304 git-add--interactive.perl:1351
msgid "Nothing was applied.\n"
msgstr "Hiçbir şey uygulanmadı.\n"
-#: add-patch.c:1355
+#: add-patch.c:1361
msgid ""
"j - leave this hunk undecided, see next undecided hunk\n"
"J - leave this hunk undecided, see next hunk\n"
@@ -755,73 +754,73 @@ msgstr ""
"e - geçerli parçayı el ile düzenle\n"
"? - yardımı yazdır\n"
-#: add-patch.c:1517 add-patch.c:1527
+#: add-patch.c:1523 add-patch.c:1533
msgid "No previous hunk"
msgstr "Öncesinde parça yok"
-#: add-patch.c:1522 add-patch.c:1532
+#: add-patch.c:1528 add-patch.c:1538
msgid "No next hunk"
msgstr "Sonrasında parça yok"
-#: add-patch.c:1538
+#: add-patch.c:1544
msgid "No other hunks to goto"
msgstr "Gidilecek başka bir parça yok"
-#: add-patch.c:1549 git-add--interactive.perl:1608
+#: add-patch.c:1555 git-add--interactive.perl:1608
msgid "go to which hunk (<ret> to see more)? "
msgstr "hangi parçaya gidilsin (daha fazla görmek için <ret>)? "
-#: add-patch.c:1550 git-add--interactive.perl:1610
+#: add-patch.c:1556 git-add--interactive.perl:1610
msgid "go to which hunk? "
msgstr "hangi parçaya gidilsin? "
-#: add-patch.c:1561
+#: add-patch.c:1567
#, c-format
msgid "Invalid number: '%s'"
msgstr "Geçersiz sayı: '%s'"
-#: add-patch.c:1566
+#: add-patch.c:1572
#, 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:1575
+#: add-patch.c:1581
msgid "No other hunks to search"
msgstr "Aranacak başka parça yok"
-#: add-patch.c:1581 git-add--interactive.perl:1663
+#: add-patch.c:1587 git-add--interactive.perl:1663
msgid "search for regex? "
msgstr "düzenli ifade aransın mı? "
-#: add-patch.c:1596
+#: add-patch.c:1602
#, c-format
msgid "Malformed search regexp %s: %s"
msgstr "Hatalı oluşturulmuş düzenli ifade %s: %s"
-#: add-patch.c:1613
+#: add-patch.c:1619
msgid "No hunk matches the given pattern"
msgstr "Verilen dizgi ile eşleşen bir parça yok"
-#: add-patch.c:1620
+#: add-patch.c:1626
msgid "Sorry, cannot split this hunk"
msgstr "Üzgünüm, bu parça bölünemiyor"
-#: add-patch.c:1624
+#: add-patch.c:1630
#, c-format
msgid "Split into %d hunks."
msgstr "%d parçaya bölündü."
-#: add-patch.c:1628
+#: add-patch.c:1634
msgid "Sorry, cannot edit this hunk"
msgstr "Üzgünüm, bu parça düzenlenemiyor"
-#: add-patch.c:1680
+#: add-patch.c:1686
msgid "'git apply' failed"
msgstr "'git apply' başarısız oldu"
-#: advice.c:78
+#: advice.c:81
#, c-format
msgid ""
"\n"
@@ -830,37 +829,37 @@ msgstr ""
"\n"
"Bu iletiyi \"git config advice.%s false\" ile devre dışı bırakın"
-#: advice.c:94
+#: advice.c:97
#, c-format
msgid "%shint: %.*s%s\n"
msgstr "%sipucu: %.*s%s\n"
-#: advice.c:178
+#: advice.c:181
msgid "Cherry-picking is not possible because you have unmerged files."
msgstr "Seç-al yapılamaz; birleştirmesi tamamlanmamış dosyalarınız var."
-#: advice.c:180
+#: advice.c:183
msgid "Committing is not possible because you have unmerged files."
msgstr "İşleme yapılamaz; birleştirmesi tamamlanmamış dosyalarınız var."
-#: advice.c:182
+#: advice.c:185
msgid "Merging is not possible because you have unmerged files."
msgstr "Birleştirme yapılamaz; birleştirmesi tamamlanmamış dosyalarınız var."
-#: advice.c:184
+#: advice.c:187
msgid "Pulling is not possible because you have unmerged files."
msgstr "Çekme yapılamaz; birleştirmesi tamamlanmamış dosyalarınız var."
-#: advice.c:186
+#: advice.c:189
msgid "Reverting is not possible because you have unmerged files."
msgstr "Geriye al yapılamaz; birleştirmesi tamamlanmamış dosyalarınız var."
-#: advice.c:188
+#: advice.c:191
#, c-format
msgid "It is not possible to %s because you have unmerged files."
msgstr "%s yapılamıyor; birleştirmesi tamamlanmamış dosyalarınız var."
-#: advice.c:196
+#: advice.c:199
msgid ""
"Fix them up in the work tree, and then use 'git add/rm <file>'\n"
"as appropriate to mark resolution and make a commit."
@@ -868,27 +867,27 @@ msgstr ""
"Onları çalışma ağacında onarın, ardından hazırlığı bitirmek için uygun\n"
"görüldüğü biçimde 'git add/rm <dosya>' yaptıktan sonra işleyin."
-#: advice.c:204
+#: advice.c:207
msgid "Exiting because of an unresolved conflict."
msgstr "Çözüme kavuşturulmamış bir çakışmadan dolayı çıkılıyor."
-#: advice.c:209 builtin/merge.c:1382
+#: advice.c:212 builtin/merge.c:1388
msgid "You have not concluded your merge (MERGE_HEAD exists)."
msgstr "Birleştirmenizi sonuçlandırmadınız (MERGE_HEAD mevcut)."
-#: advice.c:211
+#: advice.c:214
msgid "Please, commit your changes before merging."
msgstr "Birleştirme öncesinde değişikliklerinizi işleyin."
-#: advice.c:212
+#: advice.c:215
msgid "Exiting because of unfinished merge."
msgstr "Tamamlanmamış birleştirmeden dolayı çıkılıyor."
-#: advice.c:217
+#: advice.c:220
msgid "Not possible to fast-forward, aborting."
msgstr "İleri sarma olanaklı değil, iptal ediliyor."
-#: advice.c:227
+#: advice.c:230
#, c-format
msgid ""
"The following paths and/or pathspecs matched paths that exist\n"
@@ -899,7 +898,7 @@ msgstr ""
"tanımınızın dışında kalan yollarla eşleştiğinden dolayı\n"
"indeksinizde güncellenmeyecek:\n"
-#: advice.c:234
+#: advice.c:237
msgid ""
"If you intend to update such entries, try one of the following:\n"
"* Use the --sparse option.\n"
@@ -910,7 +909,7 @@ msgstr ""
"* --sparse seçeneğini kullanın.\n"
"* Aralıklandırma kurallarını devre dışı bırakın veya değiştirin."
-#: advice.c:242
+#: advice.c:245
#, c-format
msgid ""
"Note: switching to '%s'.\n"
@@ -969,81 +968,84 @@ msgstr "tanımlanamayan boşluk seçeneği '%s'"
msgid "unrecognized whitespace ignore option '%s'"
msgstr "tanımlanamayan boşluk yok sayma seçeneği '%s'"
-#: apply.c:136 archive.c:584 range-diff.c:559 revision.c:2303 revision.c:2307
-#: revision.c:2316 revision.c:2321 revision.c:2527 revision.c:2870
-#: revision.c:2874 revision.c:2880 revision.c:2883 revision.c:2885
-#: builtin/add.c:510 builtin/add.c:512 builtin/add.c:529 builtin/add.c:541
-#: builtin/branch.c:727 builtin/checkout.c:467 builtin/checkout.c:470
-#: builtin/checkout.c:1644 builtin/checkout.c:1754 builtin/checkout.c:1757
-#: builtin/clone.c:906 builtin/commit.c:358 builtin/commit.c:361
-#: builtin/commit.c:1196 builtin/describe.c:593 builtin/diff-tree.c:155
-#: builtin/difftool.c:733 builtin/fast-export.c:1245 builtin/fetch.c:2038
-#: builtin/fetch.c:2043 builtin/index-pack.c:1852 builtin/init-db.c:560
-#: builtin/log.c:1946 builtin/log.c:1948 builtin/ls-files.c:778
-#: builtin/merge.c:1403 builtin/merge.c:1405 builtin/pack-objects.c:4073
-#: builtin/push.c:592 builtin/push.c:630 builtin/push.c:636 builtin/push.c:641
-#: builtin/rebase.c:1193 builtin/rebase.c:1195 builtin/rebase.c:1199
-#: builtin/repack.c:684 builtin/repack.c:715 builtin/reset.c:426
-#: builtin/reset.c:462 builtin/rev-list.c:541 builtin/show-branch.c:710
-#: builtin/stash.c:1707 builtin/stash.c:1710 builtin/submodule--helper.c:1316
-#: builtin/submodule--helper.c:2975 builtin/tag.c:526 builtin/tag.c:572
-#: builtin/worktree.c:702
+#: apply.c:138 archive.c:584 parse-options.c:1122 range-diff.c:555
+#: revision.c:2314 revision.c:2318 revision.c:2327 revision.c:2332
+#: revision.c:2560 revision.c:2895 revision.c:2899 revision.c:2907
+#: revision.c:2910 revision.c:2912 builtin/add.c:507 builtin/add.c:509
+#: builtin/add.c:515 builtin/add.c:527 builtin/branch.c:755
+#: builtin/checkout.c:472 builtin/checkout.c:475 builtin/checkout.c:1663
+#: builtin/checkout.c:1773 builtin/checkout.c:1776 builtin/clone.c:921
+#: builtin/commit.c:359 builtin/commit.c:362 builtin/commit.c:1200
+#: builtin/commit.c:1256 builtin/commit.c:1273 builtin/describe.c:593
+#: builtin/diff-tree.c:155 builtin/difftool.c:733 builtin/fast-export.c:1245
+#: builtin/fetch.c:2141 builtin/fetch.c:2162 builtin/fetch.c:2167
+#: builtin/help.c:602 builtin/index-pack.c:1858 builtin/init-db.c:560
+#: builtin/log.c:1968 builtin/log.c:1970 builtin/ls-files.c:778
+#: builtin/merge-base.c:163 builtin/merge-base.c:169 builtin/merge.c:1409
+#: builtin/merge.c:1411 builtin/pack-objects.c:4098 builtin/push.c:592
+#: builtin/push.c:630 builtin/push.c:636 builtin/push.c:641
+#: builtin/rebase.c:1221 builtin/rebase.c:1223 builtin/rebase.c:1227
+#: builtin/repack.c:688 builtin/repack.c:719 builtin/reset.c:433
+#: builtin/reset.c:469 builtin/rev-list.c:537 builtin/show-branch.c:711
+#: builtin/stash.c:1696 builtin/stash.c:1699 builtin/submodule--helper.c:1328
+#: builtin/submodule--helper.c:3054 builtin/tag.c:527 builtin/tag.c:573
+#: builtin/worktree.c:779
#, c-format
msgid "options '%s' and '%s' cannot be used together"
msgstr "'%s' ve '%s' seçenekleri birlikte kullanılamaz"
-#: apply.c:139 apply.c:150 apply.c:153
+#: apply.c:141 apply.c:152 apply.c:155
#, c-format
msgid "'%s' outside a repository"
msgstr "'%s' bir depo dışında"
-#: apply.c:800
+#: apply.c:807
#, c-format
msgid "Cannot prepare timestamp regexp %s"
msgstr "Zaman damgası düzenli ifadesi %s hazırlanamıyor"
-#: apply.c:809
+#: apply.c:816
#, c-format
msgid "regexec returned %d for input: %s"
msgstr "düzenli ifade girdi için %d döndürdü: %s"
-#: apply.c:883
+#: apply.c:890
#, c-format
msgid "unable to find filename in patch at line %d"
msgstr "yamanın %d. satırında dosya adı bulunamıyor"
-#: apply.c:921
+#: apply.c:928
#, c-format
msgid "git apply: bad git-diff - expected /dev/null, got %s on line %d"
msgstr ""
"git apply: hatalı git-diff - /dev/null bekleniyordu, %s alındı, satır %d"
-#: apply.c:927
+#: apply.c:934
#, c-format
msgid "git apply: bad git-diff - inconsistent new filename on line %d"
msgstr "git apply: hatalı git-diff - %d. satırda tutarsız yeni dosya adı"
-#: apply.c:928
+#: apply.c:935
#, c-format
msgid "git apply: bad git-diff - inconsistent old filename on line %d"
msgstr "git apply: hatalı git-diff - %d. satırda tutarsız eski dosya adı"
-#: apply.c:933
+#: apply.c:940
#, c-format
msgid "git apply: bad git-diff - expected /dev/null on line %d"
msgstr "git apply: hatalı git-diff - %d. satırda /dev/null bekleniyordu"
-#: apply.c:962
+#: apply.c:969
#, c-format
msgid "invalid mode on line %d: %s"
msgstr "%d. satırda geçersiz kip: %s"
-#: apply.c:1281
+#: apply.c:1288
#, c-format
msgid "inconsistent header lines %d and %d"
msgstr "tutarsız üstbilgi satırları %d ve %d"
-#: apply.c:1371
+#: apply.c:1378
#, c-format
msgid ""
"git diff header lacks filename information when removing %d leading pathname "
@@ -1058,93 +1060,93 @@ msgstr[1] ""
"%d öncü yol adı bileşeni kaldırılırken git diff üstbilgisi dosya adı "
"bilgisine iye değil (%d. satır)"
-#: apply.c:1384
+#: apply.c:1391
#, c-format
msgid "git diff header lacks filename information (line %d)"
msgstr "git diff üstbilgisi dosya adı bilgisine iye değil (%d. satır)"
-#: apply.c:1480
+#: apply.c:1487
#, c-format
msgid "recount: unexpected line: %.*s"
msgstr "recount: beklenmedik satır: %.*s"
-#: apply.c:1549
+#: apply.c:1556
#, c-format
msgid "patch fragment without header at line %d: %.*s"
msgstr "%d. satırda üstbilgisi olmayan yama parçacığı: %.*s"
-#: apply.c:1752
+#: apply.c:1759
msgid "new file depends on old contents"
msgstr "yeni dosyanın eski içeriğe bağımlılığı var"
-#: apply.c:1754
+#: apply.c:1761
msgid "deleted file still has contents"
msgstr "silinen dosya içinde hâlâ bir şeyler var"
-#: apply.c:1788
+#: apply.c:1795
#, c-format
msgid "corrupt patch at line %d"
msgstr "hasarlı yama, %d. satır"
-#: apply.c:1825
+#: apply.c:1832
#, c-format
msgid "new file %s depends on old contents"
msgstr "%s yeni dosyasının eski içeriğe bağımlılığı var"
-#: apply.c:1827
+#: apply.c:1834
#, c-format
msgid "deleted file %s still has contents"
msgstr "%s silinen dosyasının içinde hâlâ bir şeyler var"
-#: apply.c:1830
+#: apply.c:1837
#, c-format
msgid "** warning: file %s becomes empty but is not deleted"
msgstr "** uyarı: %s dosyası boş duruma gelir; ancak silinmez"
-#: apply.c:1978
+#: apply.c:1985
#, c-format
msgid "corrupt binary patch at line %d: %.*s"
msgstr "hasarlı ikili yama, %d. satır: %.*s"
-#: apply.c:2015
+#: apply.c:2022
#, c-format
msgid "unrecognized binary patch at line %d"
msgstr "tanımlanamayan ikili yama, %d. satır"
-#: apply.c:2177
+#: apply.c:2184
#, c-format
msgid "patch with only garbage at line %d"
msgstr "yalnızca anlamsız veri içeren yama, %d. satır"
-#: apply.c:2263
+#: apply.c:2270
#, c-format
msgid "unable to read symlink %s"
msgstr "%s sembolik bağı okunamıyor"
-#: apply.c:2267
+#: apply.c:2274
#, c-format
msgid "unable to open or read %s"
msgstr "%s açılamıyor veya okunamıyor"
-#: apply.c:2936
+#: apply.c:2943
#, c-format
msgid "invalid start of line: '%c'"
msgstr "geçersiz satır başlangıcı: '%c'"
-#: apply.c:3057
+#: apply.c:3064
#, c-format
msgid "Hunk #%d succeeded at %d (offset %d line)."
msgid_plural "Hunk #%d succeeded at %d (offset %d lines)."
msgstr[0] "Parça #%d başarılı oldu, %d (%d satır ofset)."
msgstr[1] "Parça #%d başarılı oldu, %d (%d satır ofset)."
-#: apply.c:3069
+#: apply.c:3076
#, c-format
msgid "Context reduced to (%ld/%ld) to apply fragment at %d"
msgstr ""
"Bağlam şuna indirildi: (%ld/%ld) (%d konumundaki parçacığı uygulamak için)"
-#: apply.c:3075
+#: apply.c:3082
#, c-format
msgid ""
"while searching for:\n"
@@ -1153,447 +1155,447 @@ msgstr ""
"ÅŸunu ararken:\n"
"%.*s"
-#: apply.c:3097
+#: apply.c:3104
#, c-format
msgid "missing binary patch data for '%s'"
msgstr "'%s' için ikili yama verisi eksik"
-#: apply.c:3105
+#: apply.c:3112
#, c-format
msgid "cannot reverse-apply a binary patch without the reverse hunk to '%s'"
msgstr "'%s' parçası geri alınmadan bir ikili yama reverse-apply yapılamıyor"
-#: apply.c:3152
+#: apply.c:3159
#, c-format
msgid "cannot apply binary patch to '%s' without full index line"
msgstr "tam indeks satırı olmadan '%s' üzerine bir ikili yama uygulanamıyor"
-#: apply.c:3163
+#: apply.c:3170
#, c-format
msgid ""
"the patch applies to '%s' (%s), which does not match the current contents."
msgstr "Bu yama geçerli içerik ile eşleşmeyen '%s' üzerine uygulanır (%s)."
-#: apply.c:3171
+#: apply.c:3178
#, c-format
msgid "the patch applies to an empty '%s' but it is not empty"
msgstr "yama boş bir '%s' üzerine uygulanır; ancak o boş değil"
-#: apply.c:3189
+#: apply.c:3196
#, c-format
msgid "the necessary postimage %s for '%s' cannot be read"
msgstr "gereken songörüntü %s ('%s' için) okunamıyor"
-#: apply.c:3202
+#: apply.c:3209
#, c-format
msgid "binary patch does not apply to '%s'"
msgstr "ikili yama '%s' üzerine uygulanamıyor"
-#: apply.c:3209
+#: apply.c:3216
#, c-format
msgid "binary patch to '%s' creates incorrect result (expecting %s, got %s)"
msgstr ""
"'%s' üzerine ikili yama yanlış sonuç doğuruyor (%s bekleniyordu, %s alındı)"
-#: apply.c:3230
+#: apply.c:3237
#, c-format
msgid "patch failed: %s:%ld"
msgstr "yama başarısız oldu: %s:%ld"
-#: apply.c:3353
+#: apply.c:3360
#, c-format
msgid "cannot checkout %s"
msgstr "%s çıkışı yapılamıyor"
-#: apply.c:3405 apply.c:3416 apply.c:3462 midx.c:104 pack-revindex.c:214
-#: setup.c:309
+#: apply.c:3412 apply.c:3423 apply.c:3469 midx.c:105 pack-revindex.c:214
+#: setup.c:310
#, c-format
msgid "failed to read %s"
msgstr "%s okunamadı"
-#: apply.c:3413
+#: apply.c:3420
#, c-format
msgid "reading from '%s' beyond a symbolic link"
msgstr "'%s' bir sembolik bağın ötesinden okunuyor"
-#: apply.c:3442 apply.c:3711
+#: apply.c:3449 apply.c:3721
#, c-format
msgid "path %s has been renamed/deleted"
msgstr "%s yolu yeniden adlandırıldı/silindi"
-#: apply.c:3549 apply.c:3726
+#: apply.c:3559 apply.c:3736
#, c-format
msgid "%s: does not exist in index"
msgstr "%s: indekste bulunmuyor"
-#: apply.c:3558 apply.c:3734 apply.c:3978
+#: apply.c:3568 apply.c:3744 apply.c:3960
#, c-format
msgid "%s: does not match index"
msgstr "%s: indeks ile eÅŸleÅŸmiyor"
-#: apply.c:3595
+#: apply.c:3605
msgid "repository lacks the necessary blob to perform 3-way merge."
msgstr "Depo, 3 yönlü birleştirme için gereken ikili nesneye iye değil."
-#: apply.c:3598
+#: apply.c:3608
#, c-format
msgid "Performing three-way merge...\n"
msgstr "3 yönlü birleştirme gerçekleştiriliyor...\n"
-#: apply.c:3614 apply.c:3618
+#: apply.c:3624 apply.c:3628
#, c-format
msgid "cannot read the current contents of '%s'"
msgstr "'%s' ögesinin geçerli içeriği okunamıyor"
-#: apply.c:3630
+#: apply.c:3640
#, c-format
msgid "Failed to perform three-way merge...\n"
msgstr "3 yönlü birleştirme gerçekleştirilemedi...\n"
-#: apply.c:3644
+#: apply.c:3654
#, c-format
msgid "Applied patch to '%s' with conflicts.\n"
msgstr "'%s' üzerine yama çakışmalarla birlikte uygulandı.\n"
-#: apply.c:3649
+#: apply.c:3659
#, c-format
msgid "Applied patch to '%s' cleanly.\n"
msgstr "'%s' üzerine yama sorunsuzca uygulandı.\n"
-#: apply.c:3666
+#: apply.c:3676
#, c-format
msgid "Falling back to direct application...\n"
msgstr "Doğrudan uygulamaya geri çekiliniyor...\n"
-#: apply.c:3678
+#: apply.c:3688
msgid "removal patch leaves file contents"
msgstr "kaldırma yaması dosya içeriğini bırakır"
-#: apply.c:3751
+#: apply.c:3761
#, c-format
msgid "%s: wrong type"
msgstr "%s: yanlış tür"
-#: apply.c:3753
+#: apply.c:3763
#, c-format
msgid "%s has type %o, expected %o"
msgstr "%s, %o türüne iye, %o bekleniyordu"
-#: apply.c:3918 apply.c:3920 read-cache.c:889 read-cache.c:918
-#: read-cache.c:1381
+#: apply.c:3900 apply.c:3902 read-cache.c:903 read-cache.c:932
+#: read-cache.c:1399
#, c-format
msgid "invalid path '%s'"
msgstr "geçersiz yol '%s'"
-#: apply.c:3976
+#: apply.c:3958
#, c-format
msgid "%s: already exists in index"
msgstr "%s: indekste halihazırda var"
-#: apply.c:3980
+#: apply.c:3962
#, c-format
msgid "%s: already exists in working directory"
msgstr "%s: çalışma dizininde halihazırda var"
-#: apply.c:4000
+#: apply.c:3982
#, c-format
msgid "new mode (%o) of %s does not match old mode (%o)"
msgstr "ÅŸunun yeni kipi (%o): %s, eski kip (%o) ile eÅŸleÅŸmiyor"
-#: apply.c:4005
+#: apply.c:3987
#, c-format
msgid "new mode (%o) of %s does not match old mode (%o) of %s"
msgstr "ÅŸunun yeni kipi (%o): %s, ÅŸunun eski kipi (%o): %s, ile eÅŸleÅŸmiyor"
-#: apply.c:4025
+#: apply.c:4007
#, c-format
msgid "affected file '%s' is beyond a symbolic link"
msgstr "etkilenen dosya '%s' bir sembolik bağın ötesinde"
-#: apply.c:4029
+#: apply.c:4011
#, c-format
msgid "%s: patch does not apply"
msgstr "%s: yama uygulanamıyor"
-#: apply.c:4044
+#: apply.c:4026
#, c-format
msgid "Checking patch %s..."
msgstr "%s yaması denetleniyor..."
-#: apply.c:4136
+#: apply.c:4118
#, c-format
msgid "sha1 information is lacking or useless for submodule %s"
msgstr "%s altmodülü için sha1 bilgisi eksik veya yararsız"
-#: apply.c:4143
+#: apply.c:4125
#, c-format
msgid "mode change for %s, which is not in current HEAD"
msgstr "geçerli HEAD'de olmayan %s için kip değişimi"
-#: apply.c:4146
+#: apply.c:4128
#, c-format
msgid "sha1 information is lacking or useless (%s)."
msgstr "sha1 bilgisi eksik veya yararsız (%s)."
-#: apply.c:4155
+#: apply.c:4137
#, c-format
msgid "could not add %s to temporary index"
msgstr "%s geçici indekse eklenemedi"
-#: apply.c:4165
+#: apply.c:4147
#, c-format
msgid "could not write temporary index to %s"
msgstr "geçici indeks şuraya yazılamadı: %s"
-#: apply.c:4303
+#: apply.c:4285
#, c-format
msgid "unable to remove %s from index"
msgstr "%s indeksten kaldırılamıyor"
-#: apply.c:4337
+#: apply.c:4319
#, c-format
msgid "corrupt patch for submodule %s"
msgstr "%s altmodülü için hasarlı yama"
-#: apply.c:4343
+#: apply.c:4325
#, c-format
msgid "unable to stat newly created file '%s'"
msgstr "yeni oluşturulan '%s' dosyasının bilgileri alınamıyor"
-#: apply.c:4351
+#: apply.c:4333
#, c-format
msgid "unable to create backing store for newly created file %s"
msgstr "yeni oluşturulan %s dosyası için yardımcı bellek oluşturulamıyor"
-#: apply.c:4357 apply.c:4502
+#: apply.c:4339 apply.c:4484
#, c-format
msgid "unable to add cache entry for %s"
msgstr "%s için önbellek girdisi eklenemiyor"
-#: apply.c:4400 builtin/bisect--helper.c:540 builtin/gc.c:2258
+#: apply.c:4382 builtin/bisect--helper.c:540 builtin/gc.c:2258
#: builtin/gc.c:2293
#, c-format
msgid "failed to write to '%s'"
msgstr "şuraya yazılamadı: '%s'"
-#: apply.c:4404
+#: apply.c:4386
#, c-format
msgid "closing file '%s'"
msgstr "'%s' dosyası kapatılıyor"
-#: apply.c:4474
+#: apply.c:4456
#, c-format
msgid "unable to write file '%s' mode %o"
msgstr "'%s' dosyası yazılamıyor, %o kipi"
-#: apply.c:4572
+#: apply.c:4554
#, c-format
msgid "Applied patch %s cleanly."
msgstr "%s yaması sorunsuzca uygulandı."
-#: apply.c:4580
+#: apply.c:4562
msgid "internal error"
msgstr "iç hata"
-#: apply.c:4583
+#: apply.c:4565
#, c-format
msgid "Applying patch %%s with %d reject..."
msgid_plural "Applying patch %%s with %d rejects..."
msgstr[0] "%%s yaması %d geri çevirme ile uygulanıyor..."
msgstr[1] "%%s yaması %d geri çevirme ile uygulanıyor..."
-#: apply.c:4594
+#: apply.c:4576
#, c-format
msgid "truncating .rej filename to %.*s.rej"
msgstr ".rej dosya adı %.*s.rej olarak kısaltılıyor"
-#: apply.c:4602
+#: apply.c:4584
#, c-format
msgid "cannot open %s"
msgstr "%s açılamıyor"
-#: apply.c:4616
+#: apply.c:4598
#, c-format
msgid "Hunk #%d applied cleanly."
msgstr "Parça #%d sorunsuzca uygulandı."
-#: apply.c:4620
+#: apply.c:4602
#, c-format
msgid "Rejected hunk #%d."
msgstr "Parça %d geri çevrildi."
-#: apply.c:4749
+#: apply.c:4731
#, c-format
msgid "Skipped patch '%s'."
msgstr "'%s' yaması atlandı."
-#: apply.c:4758
+#: apply.c:4740
msgid "No valid patches in input (allow with \"--allow-empty\")"
msgstr "Girdide geçerli yama yok (\"--allow-empty\" ile izin ver)"
-#: apply.c:4779
+#: apply.c:4761
msgid "unable to read index file"
msgstr "indeks dosyası okunamıyor"
-#: apply.c:4936
+#: apply.c:4918
#, c-format
msgid "can't open patch '%s': %s"
msgstr "'%s' yaması açılamıyor: %s"
-#: apply.c:4963
+#: apply.c:4945
#, c-format
msgid "squelched %d whitespace error"
msgid_plural "squelched %d whitespace errors"
msgstr[0] "%d boşluk hatası susturuldu"
msgstr[1] "%d boşluk hatası susturuldu"
-#: apply.c:4969 apply.c:4984
+#: apply.c:4951 apply.c:4966
#, c-format
msgid "%d line adds whitespace errors."
msgid_plural "%d lines add whitespace errors."
msgstr[0] "%d satır boşluk hatası ekliyor."
msgstr[1] "%d satır boşluk hatası ekliyor."
-#: apply.c:4977
+#: apply.c:4959
#, c-format
msgid "%d line applied after fixing whitespace errors."
msgid_plural "%d lines applied after fixing whitespace errors."
msgstr[0] "Boşluk hataları düzeltildikten sonra %d satır uygulandı."
msgstr[1] "Boşluk hataları düzeltildikten sonra %d satır uygulandı."
-#: apply.c:4993 builtin/add.c:704 builtin/mv.c:338 builtin/rm.c:430
+#: apply.c:4975 builtin/add.c:690 builtin/mv.c:338 builtin/rm.c:430
msgid "Unable to write new index file"
msgstr "Yeni indeks dosyası yazılamıyor"
-#: apply.c:5021
+#: apply.c:5003
msgid "don't apply changes matching the given path"
msgstr "verilen yol ile eÅŸleÅŸen deÄŸiÅŸiklikleri uygulama"
-#: apply.c:5024
+#: apply.c:5006
msgid "apply changes matching the given path"
msgstr "verilen yol ile eÅŸleÅŸen deÄŸiÅŸiklikleri uygula"
-#: apply.c:5026 builtin/am.c:2376
+#: apply.c:5008 builtin/am.c:2379
msgid "num"
msgstr "sayı"
-#: apply.c:5027
+#: apply.c:5009
msgid "remove <num> leading slashes from traditional diff paths"
msgstr "geleneksel diff yollarından <sayı> öncü eğik çizgiyi kaldır"
-#: apply.c:5030
+#: apply.c:5012
msgid "ignore additions made by the patch"
msgstr "yamanın yaptığı eklemeleri yok say"
-#: apply.c:5032
+#: apply.c:5014
msgid "instead of applying the patch, output diffstat for the input"
msgstr "yamayı uygulama yerine girdi için diffstat çıktısı ver"
-#: apply.c:5036
+#: apply.c:5018
msgid "show number of added and deleted lines in decimal notation"
msgstr "eklenen ve silinen satırların sayısını onluk birimde göster"
-#: apply.c:5038
+#: apply.c:5020
msgid "instead of applying the patch, output a summary for the input"
msgstr "yamayı uygulama yerine girdi için bir özet çıktısı ver"
-#: apply.c:5040
+#: apply.c:5022
msgid "instead of applying the patch, see if the patch is applicable"
msgstr "yamayı uygulama yerine yamanın uygulanabilir olup olmadığına bak"
-#: apply.c:5042
+#: apply.c:5024
msgid "make sure the patch is applicable to the current index"
msgstr "yamanın geçerli indekse uygulanabilir olduğundan emin ol"
-#: apply.c:5044
+#: apply.c:5026
msgid "mark new files with `git add --intent-to-add`"
msgstr "yeni dosyaları `git add --intent-to-add` ile imle"
-#: apply.c:5046
+#: apply.c:5028
msgid "apply a patch without touching the working tree"
msgstr "çalışma ağacına dokunmadan bir yama uygula"
-#: apply.c:5048
+#: apply.c:5030
msgid "accept a patch that touches outside the working area"
msgstr "çalışma ağacının dışına dokunan bir yamayı kabul et"
-#: apply.c:5051
+#: apply.c:5033
msgid "also apply the patch (use with --stat/--summary/--check)"
msgstr "ek olarak yamayı da uygula (--stat/--summary/--check ile kullan)"
-#: apply.c:5053
+#: apply.c:5035
msgid "attempt three-way merge, fall back on normal patch if that fails"
msgstr "3 yönlü birleştirme dene, başarısız olursa normal yamaya geri çekil"
-#: apply.c:5055
+#: apply.c:5037
msgid "build a temporary index based on embedded index information"
msgstr "gömülü indeks bilgisini temel alan geçici bir indeks oluştur"
-#: apply.c:5058 builtin/checkout-index.c:196
+#: apply.c:5040 builtin/checkout-index.c:230
msgid "paths are separated with NUL character"
msgstr "yollar NUL karakteri ile ayrılır"
-#: apply.c:5060
+#: apply.c:5042
msgid "ensure at least <n> lines of context match"
msgstr "en az <n> bağlam satırının eşleştiğinden emin ol"
-#: apply.c:5061 builtin/am.c:2352 builtin/am.c:2355
+#: apply.c:5043 builtin/am.c:2355 builtin/am.c:2358
#: builtin/interpret-trailers.c:98 builtin/interpret-trailers.c:100
-#: builtin/interpret-trailers.c:102 builtin/pack-objects.c:3960
-#: builtin/rebase.c:1051
+#: builtin/interpret-trailers.c:102 builtin/pack-objects.c:3983
+#: builtin/rebase.c:1079
msgid "action"
msgstr "eylem"
-#: apply.c:5062
+#: apply.c:5044
msgid "detect new or modified lines that have whitespace errors"
msgstr "boşluk hatası içeren yeni veya değiştirilmiş satırları algıla"
-#: apply.c:5065 apply.c:5068
+#: apply.c:5047 apply.c:5050
msgid "ignore changes in whitespace when finding context"
msgstr "baÄŸlam bulurken boÅŸluk deÄŸiÅŸikliklerini yok say"
-#: apply.c:5071
+#: apply.c:5053
msgid "apply the patch in reverse"
msgstr "yamayı tersten uygula"
-#: apply.c:5073
+#: apply.c:5055
msgid "don't expect at least one line of context"
msgstr "en az bir satır bağlam bekleme"
-#: apply.c:5075
+#: apply.c:5057
msgid "leave the rejected hunks in corresponding *.rej files"
msgstr "reddedilmiş parçaları ilgili *.rej dosyalarında bırak"
-#: apply.c:5077
+#: apply.c:5059
msgid "allow overlapping hunks"
msgstr "üst üste binen parçalara izin ver"
-#: apply.c:5080
+#: apply.c:5062
msgid "tolerate incorrectly detected missing new-line at the end of file"
msgstr "dosya sonunda yanlışlıkla algılanan eksik yenisatırı hoş gör"
-#: apply.c:5083
+#: apply.c:5065
msgid "do not trust the line counts in the hunk headers"
msgstr "parça üstbilgisindeki satır sayımına güvenme"
-#: apply.c:5085 builtin/am.c:2364
+#: apply.c:5067 builtin/am.c:2367
msgid "root"
msgstr "kök"
-#: apply.c:5086
+#: apply.c:5068
msgid "prepend <root> to all filenames"
msgstr "tüm dosya adlarının başına <kök> ekle"
-#: apply.c:5089
+#: apply.c:5071
msgid "don't return error for empty patches"
msgstr "boş yamalar için hata döndürme"
-#: archive-tar.c:125 archive-zip.c:345
+#: archive-tar.c:125 archive-zip.c:346
#, c-format
msgid "cannot stream blob %s"
msgstr "%s ikili nesnesi akıtılamıyor"
-#: archive-tar.c:265 archive-zip.c:358
+#: archive-tar.c:265 archive-zip.c:359
#, c-format
msgid "unsupported file mode: 0%o (SHA1: %s)"
msgstr "desteklenmeyen dosya kipi: 0%o (SHA1: %s)"
@@ -1612,22 +1614,22 @@ msgstr "açıklayıcı yeniden yönlendirilemiyor"
msgid "'%s' filter reported error"
msgstr "'%s' süzgeci hata bildirdi"
-#: archive-zip.c:318
+#: archive-zip.c:319
#, c-format
msgid "path is not valid UTF-8: %s"
msgstr "yol geçerli UTF-8 değil: %s"
-#: archive-zip.c:322
+#: archive-zip.c:323
#, c-format
msgid "path too long (%d chars, SHA1: %s): %s"
msgstr "yol çok uzun (%d karakter, SHA1: %s): %s"
-#: archive-zip.c:469 builtin/pack-objects.c:365 builtin/pack-objects.c:368
+#: archive-zip.c:470 builtin/pack-objects.c:363 builtin/pack-objects.c:366
#, c-format
msgid "deflate error (%d)"
msgstr "söndürme hatası (%d)"
-#: archive-zip.c:603
+#: archive-zip.c:604
#, c-format
msgid "timestamp too large for this system: %<PRIuMAX>"
msgstr "zaman damgası bu sistem için çok büyük: %<PRIuMAX>"
@@ -1636,10 +1638,6 @@ msgstr "zaman damgası bu sistem için çok büyük: %<PRIuMAX>"
msgid "git archive [<options>] <tree-ish> [<path>...]"
msgstr "git archive [<seçenekler>] <ağacımsı> [<yol>...]"
-#: archive.c:15
-msgid "git archive --list"
-msgstr "git archive --list"
-
#: archive.c:16
msgid ""
"git archive --remote <repo> [--exec <cmd>] [<options>] <tree-ish> [<path>...]"
@@ -1651,12 +1649,12 @@ msgid "git archive --remote <repo> [--exec <cmd>] --list"
msgstr "git archive --remote <depo> [--exec <komut>] --list"
#: archive.c:188 archive.c:341 builtin/gc.c:497 builtin/notes.c:238
-#: builtin/tag.c:578
+#: builtin/tag.c:579
#, c-format
msgid "cannot read '%s'"
msgstr "'%s' okunamıyor"
-#: archive.c:426 builtin/add.c:215 builtin/add.c:671 builtin/rm.c:334
+#: archive.c:426 builtin/add.c:214 builtin/add.c:657 builtin/rm.c:334
#, c-format
msgid "pathspec '%s' did not match any files"
msgstr "yol belirteci '%s' hiçbir dosya ile eşleşmedi"
@@ -1698,7 +1696,7 @@ msgstr "biçim"
msgid "archive format"
msgstr "arşiv biçimi"
-#: archive.c:552 builtin/log.c:1790
+#: archive.c:552 builtin/log.c:1809
msgid "prefix"
msgstr "önek"
@@ -1706,12 +1704,12 @@ msgstr "önek"
msgid "prepend prefix to each pathname in the archive"
msgstr "öneki arşivdeki tüm yol adlarının başına ekle"
-#: archive.c:554 archive.c:557 builtin/blame.c:880 builtin/blame.c:884
-#: builtin/blame.c:885 builtin/commit-tree.c:115 builtin/config.c:135
+#: archive.c:554 archive.c:557 builtin/blame.c:881 builtin/blame.c:885
+#: builtin/blame.c:886 builtin/commit-tree.c:115 builtin/config.c:135
#: builtin/fast-export.c:1181 builtin/fast-export.c:1183
-#: builtin/fast-export.c:1187 builtin/grep.c:935 builtin/hash-object.c:103
+#: builtin/fast-export.c:1187 builtin/grep.c:936 builtin/hash-object.c:104
#: builtin/ls-files.c:654 builtin/ls-files.c:657 builtin/notes.c:410
-#: builtin/notes.c:576 builtin/read-tree.c:115 parse-options.h:190
+#: builtin/notes.c:576 builtin/read-tree.c:115 parse-options.h:195
msgid "file"
msgstr "dosya"
@@ -1739,8 +1737,8 @@ msgstr "sıkıştırma düzeyini ayarla"
msgid "list supported archive formats"
msgstr "desteklenen arşiv biçimlerini listele"
-#: archive.c:568 builtin/archive.c:89 builtin/clone.c:118 builtin/clone.c:121
-#: builtin/submodule--helper.c:1870 builtin/submodule--helper.c:2513
+#: archive.c:568 builtin/archive.c:89 builtin/clone.c:122 builtin/clone.c:125
+#: builtin/submodule--helper.c:1884 builtin/submodule--helper.c:2718
msgid "repo"
msgstr "depo"
@@ -1761,11 +1759,12 @@ msgstr "uzak konum komutu git-upload-archive'e olan yol"
msgid "Unexpected option --remote"
msgstr "Beklenmedik seçenek --remote"
-#: archive.c:580 fetch-pack.c:300 revision.c:2887 builtin/add.c:544
-#: builtin/add.c:576 builtin/checkout.c:1763 builtin/commit.c:370
-#: builtin/fast-export.c:1230 builtin/index-pack.c:1848 builtin/log.c:2115
-#: builtin/reset.c:435 builtin/reset.c:493 builtin/rm.c:281
-#: builtin/stash.c:1719 builtin/worktree.c:508 http-fetch.c:144
+#: archive.c:580 fetch-pack.c:300 revision.c:2914 builtin/add.c:530
+#: builtin/add.c:562 builtin/checkout.c:1782 builtin/clone.c:1099
+#: builtin/clone.c:1102 builtin/commit.c:371 builtin/fast-export.c:1230
+#: builtin/index-pack.c:1854 builtin/log.c:2140 builtin/reset.c:442
+#: builtin/reset.c:500 builtin/rm.c:281 builtin/stash.c:1708
+#: builtin/worktree.c:580 builtin/worktree.c:781 http-fetch.c:144
#: http-fetch.c:153
#, c-format
msgid "the option '%s' requires '%s'"
@@ -1785,17 +1784,17 @@ msgstr "Bilinmeyen arşiv biçimi '%s'"
msgid "Argument not supported for format '%s': -%d"
msgstr "'%s' biçimi için desteklenmeyen argüman: -%d"
-#: attr.c:203
+#: attr.c:202
#, c-format
msgid "%.*s is not a valid attribute name"
msgstr "%.*s geçerli bir öznitelik adı değil"
-#: attr.c:364
+#: attr.c:363
#, c-format
msgid "%s not allowed: %s:%d"
msgstr "%s izin verilmiyor: %s:%d"
-#: attr.c:404
+#: attr.c:403
msgid ""
"Negative patterns are ignored in git attributes\n"
"Use '\\!' for literal leading exclamation."
@@ -1813,12 +1812,12 @@ msgstr "'%s' dosyasında hatalı tırnağa alınmış içerik: %s"
msgid "We cannot bisect more!\n"
msgstr "Daha fazla ikili arama yapılamıyor!\n"
-#: bisect.c:764
+#: bisect.c:765
#, c-format
msgid "Not a valid commit name %s"
msgstr "Geçerli bir işleme adı değil: %s"
-#: bisect.c:789
+#: bisect.c:790
#, c-format
msgid ""
"The merge base %s is bad.\n"
@@ -1827,7 +1826,7 @@ msgstr ""
"Birleştirme temeli %s hatalı.\n"
"Bu demek oluyor ki hata %s ve [%s] arasında düzeltilmiş.\n"
-#: bisect.c:794
+#: bisect.c:795
#, c-format
msgid ""
"The merge base %s is new.\n"
@@ -1836,7 +1835,7 @@ msgstr ""
"BirleÅŸtirme temeli %s yeni.\n"
"Özellik %s ve [%s] arasında değişmiş.\n"
-#: bisect.c:799
+#: bisect.c:800
#, c-format
msgid ""
"The merge base %s is %s.\n"
@@ -1845,7 +1844,7 @@ msgstr ""
"BirleÅŸtirme temeli %s, %s.\n"
"Bu demek oluyor ki ilk '%s' işlemesi %s ve [%s] arasında.\n"
-#: bisect.c:807
+#: bisect.c:808
#, c-format
msgid ""
"Some %s revs are not ancestors of the %s rev.\n"
@@ -1856,7 +1855,7 @@ msgstr ""
"git bisect bu durumda düzgünce çalışamaz.\n"
"%s ve %s revizyonlarını birbirine mi karıştırdınız?\n"
-#: bisect.c:820
+#: bisect.c:821
#, c-format
msgid ""
"the merge base between %s and [%s] must be skipped.\n"
@@ -1867,36 +1866,36 @@ msgstr ""
"%s işlemesinin %s ve [%s] arasında olduğundan emin olamıyoruz.\n"
"Yine de sürdüreceğiz."
-#: bisect.c:859
+#: bisect.c:860
#, c-format
msgid "Bisecting: a merge base must be tested\n"
msgstr "İkili arama: Birleştirme temelleri sınanmalı\n"
-#: bisect.c:909
+#: bisect.c:910
#, c-format
msgid "a %s revision is needed"
msgstr "bir %s revizyonu gerekiyor"
-#: bisect.c:939
+#: bisect.c:940
#, c-format
msgid "could not create file '%s'"
msgstr "'%s' dosyası oluşturulamadı"
-#: bisect.c:985 builtin/merge.c:155
+#: bisect.c:986 builtin/merge.c:155
#, c-format
msgid "could not read file '%s'"
msgstr "'%s' dosyası okunamadı"
-#: bisect.c:1025
+#: bisect.c:1026
msgid "reading bisect refs failed"
msgstr "ikili arama başvurularını okuma başarısız oldu"
-#: bisect.c:1055
+#: bisect.c:1056
#, c-format
msgid "%s was both %s and %s\n"
msgstr "%s hem %s hem %s idi\n"
-#: bisect.c:1064
+#: bisect.c:1065
#, c-format
msgid ""
"No testable commit found.\n"
@@ -1905,7 +1904,7 @@ msgstr ""
"Sınanabilir bir işleme bulunamadı.\n"
"Hatalı yol argümanları ile mi başladınız?\n"
-#: bisect.c:1093
+#: bisect.c:1094
#, c-format
msgid "(roughly %d step)"
msgid_plural "(roughly %d steps)"
@@ -1915,54 +1914,54 @@ msgstr[1] "(aşağı yukarı %d adım)"
#. TRANSLATORS: the last %s will be replaced with "(roughly %d
#. steps)" translation.
#.
-#: bisect.c:1099
+#: bisect.c:1100
#, c-format
msgid "Bisecting: %d revision left to test after this %s\n"
msgid_plural "Bisecting: %d revisions left to test after this %s\n"
msgstr[0] "İkili arama: Şundan sonra sınanacak %d revizyon kaldı: %s\n"
msgstr[1] "İkili arama: Şundan sonra sınanacak %d revizyon kaldı: %s\n"
-#: blame.c:2776
+#: blame.c:2773
msgid "--contents and --reverse do not blend well."
msgstr "--contents ve --reverse birlikte pek iyi gitmiyor."
-#: blame.c:2790
+#: blame.c:2787
msgid "cannot use --contents with final commit object name"
msgstr "--contents son işleme nesnesi adı ile kullanılamıyor"
-#: blame.c:2811
+#: blame.c:2808
msgid "--reverse and --first-parent together require specified latest commit"
msgstr ""
"--reverse ve --first-parent birlikte en son iÅŸlemenin belirtilmesini "
"gerektiriyor"
-#: blame.c:2820 bundle.c:224 midx.c:1042 ref-filter.c:2370 remote.c:2158
-#: sequencer.c:2352 sequencer.c:4899 submodule.c:883 builtin/commit.c:1114
-#: builtin/log.c:429 builtin/log.c:1036 builtin/log.c:1644 builtin/log.c:2071
-#: builtin/log.c:2362 builtin/merge.c:431 builtin/pack-objects.c:3373
-#: builtin/pack-objects.c:3775 builtin/pack-objects.c:3790
+#: blame.c:2817 bundle.c:231 midx.c:1058 ref-filter.c:2371 remote.c:2157
+#: sequencer.c:2348 sequencer.c:4872 submodule.c:913 builtin/commit.c:1118
+#: builtin/log.c:437 builtin/log.c:1055 builtin/log.c:1663 builtin/log.c:2096
+#: builtin/log.c:2387 builtin/merge.c:431 builtin/pack-objects.c:3381
+#: builtin/pack-objects.c:3781 builtin/pack-objects.c:3796
#: builtin/shortlog.c:255
msgid "revision walk setup failed"
msgstr "revizyonda gezinme ayarlaması başarısız oldu"
-#: blame.c:2838
+#: blame.c:2835
msgid ""
"--reverse --first-parent together require range along first-parent chain"
msgstr ""
"--reverse --first-parent birlikte ilk üst öge zincirinin yanında erim "
"gerektiriyor"
-#: blame.c:2849
+#: blame.c:2846
#, c-format
msgid "no such path %s in %s"
msgstr "şurada %s yolu bulunamadı: %s"
-#: blame.c:2860
+#: blame.c:2857
#, c-format
msgid "cannot read blob %s for path %s"
msgstr "%s ikili nesnesi %s yolunda okunamıyor"
-#: branch.c:77
+#: branch.c:93
msgid ""
"cannot inherit upstream tracking configuration of multiple refs when "
"rebasing is requested"
@@ -1970,32 +1969,32 @@ msgstr ""
"yeniden temellendirme istendiğinde birden çok başvurunun üst kaynak izleme "
"yapılandırması miras alınamıyor"
-#: branch.c:88
+#: branch.c:104
#, c-format
msgid "not setting branch '%s' as its own upstream"
msgstr "'%s' dalı kendi üst kaynağı olarak ayarlanamaz"
-#: branch.c:144
+#: branch.c:160
#, c-format
msgid "branch '%s' set up to track '%s' by rebasing."
msgstr ""
"'%s' dalı '%s' ögesini yeniden temellendirme ile izlemek üzere ayarlandı."
-#: branch.c:145
+#: branch.c:161
#, c-format
msgid "branch '%s' set up to track '%s'."
msgstr "'%s' dalı '%s' ögesini izlemek üzere ayarlandı."
-#: branch.c:148
+#: branch.c:164
#, c-format
msgid "branch '%s' set up to track:"
msgstr "'%s' dalı şunu izlemek üzere ayarlandı:"
-#: branch.c:160
+#: branch.c:176
msgid "unable to write upstream branch configuration"
msgstr "üstkaynak dal yapılandırması yazılamıyor"
-#: branch.c:162
+#: branch.c:178
msgid ""
"\n"
"After fixing the error cause you may try to fix up\n"
@@ -2005,50 +2004,88 @@ msgstr ""
"Hata nedenini ortadan kaldırdıktan sonra uzak konum izleme\n"
"bilgisini onarmayı şunu çalıştırarak deneyebilirsiniz:"
-#: branch.c:203
+#: branch.c:219
#, c-format
msgid "asked to inherit tracking from '%s', but no remote is set"
msgstr ""
"'%s' konumundan izleme miras istendi; ancak bir uzak konum ayarlanmamış"
-#: branch.c:209
+#: branch.c:225
#, c-format
msgid "asked to inherit tracking from '%s', but no merge configuration is set"
msgstr ""
"'%s' konumundan izleme miras istendi; ancak bir birleştirme yapılandırması "
"ayarlanmamış"
-#: branch.c:252
+#: branch.c:277
#, c-format
-msgid "not tracking: ambiguous information for ref %s"
-msgstr "izlenmiyor: %s başvurusu için belirsiz bilgi"
+msgid "not tracking: ambiguous information for ref '%s'"
+msgstr "izlenmiyor: '%s' başvurusu için belirsiz bilgi"
-#: branch.c:287
+#. TRANSLATORS: This is a line listing a remote with duplicate
+#. refspecs in the advice message below. For RTL languages you'll
+#. probably want to swap the "%s" and leading " " space around.
+#.
+#. TRANSLATORS: This is line item of ambiguous object output
+#. from describe_ambiguous_object() above. For RTL languages
+#. you'll probably want to swap the "%s" and leading " " space
+#. around.
+#.
+#: branch.c:289 object-name.c:464
+#, c-format
+msgid " %s\n"
+msgstr " %s\n"
+
+#. TRANSLATORS: The second argument is a \n-delimited list of
+#. duplicate refspecs, composed above.
+#.
+#: branch.c:295
+#, c-format
+msgid ""
+"There are multiple remotes whose fetch refspecs map to the remote\n"
+"tracking ref '%s':\n"
+"%s\n"
+"This is typically a configuration error.\n"
+"\n"
+"To support setting up tracking branches, ensure that\n"
+"different remotes' fetch refspecs map into different\n"
+"tracking namespaces."
+msgstr ""
+"Getirme başvuru belirteçleri, '%s' uzak izleyen başvurusuna\n"
+"eşlemlenen birden çok uzak konum var:\n"
+"%s\n"
+"Bu, genelde bir yapılandırma hatasıdır.\n"
+"\n"
+"İzleyen dalları ayarlamayı desteklemek için, farklı uzak\n"
+"konumların getirme belirteçlerinin değişik izleme ad alanlarına\n"
+"eÅŸlemlendiÄŸinden emin olun."
+
+#: branch.c:344
#, c-format
msgid "'%s' is not a valid branch name"
msgstr "'%s' geçerli bir dal adı değil"
-#: branch.c:307
+#: branch.c:364
#, c-format
msgid "a branch named '%s' already exists"
msgstr "'%s' adında bir dal halihazırda var"
-#: branch.c:313
+#: branch.c:370
#, c-format
msgid "cannot force update the branch '%s' checked out at '%s'"
msgstr "'%s' dalı zorla güncellenemiyor, '%s' konumunda çıkış yapılmış"
-#: branch.c:336
+#: branch.c:393
#, c-format
msgid "cannot set up tracking information; starting point '%s' is not a branch"
msgstr "izleme bilgisi ayarlanamıyor; başlangıç noktası '%s' bir dal değil"
-#: branch.c:338
+#: branch.c:395
#, c-format
msgid "the requested upstream branch '%s' does not exist"
msgstr "istenen üstkaynak dalı '%s' mevcut değil"
-#: branch.c:340
+#: branch.c:397
msgid ""
"\n"
"If you are planning on basing your work on an upstream\n"
@@ -2068,126 +2105,145 @@ msgstr ""
"tasarlıyorsanız itme sırasında üstkaynak yapılandırmasını\n"
"da ayarlamak için \"git push -u\" kullanmak isteyebilirsiniz."
-#: branch.c:384 builtin/replace.c:321 builtin/replace.c:377
+#: branch.c:445 builtin/replace.c:321 builtin/replace.c:377
#: builtin/replace.c:423 builtin/replace.c:453
#, c-format
msgid "not a valid object name: '%s'"
msgstr "geçerli bir nesne adı değil: '%s'"
-#: branch.c:404
+#: branch.c:465
#, c-format
msgid "ambiguous object name: '%s'"
msgstr "belirsiz nesne adı: '%s'"
-#: branch.c:409
+#: branch.c:470
#, c-format
msgid "not a valid branch point: '%s'"
msgstr "geçerli bir dal noktası değil: '%s'"
-#: branch.c:469
+#: branch.c:658
+#, c-format
+msgid "submodule '%s': unable to find submodule"
+msgstr "'%s' altmodülü: altmodül bulunamıyor"
+
+#: branch.c:661
+#, c-format
+msgid ""
+"You may try updating the submodules using 'git checkout %s && git submodule "
+"update --init'"
+msgstr ""
+"Altmodülleri güncellemeyi 'git checkout %s && git submodule update --init' "
+"kullanarak deneyebilirsiniz."
+
+#: branch.c:672 branch.c:698
+#, c-format
+msgid "submodule '%s': cannot create branch '%s'"
+msgstr "'%s' altmodülü: '%s' dalı oluşturulamıyor"
+
+#: branch.c:730
#, c-format
msgid "'%s' is already checked out at '%s'"
msgstr "'%s' çıkışı '%s' konumunda halihazırda yapılmış"
-#: branch.c:494
+#: branch.c:755
#, c-format
msgid "HEAD of working tree %s is not updated"
msgstr "%s çalışma ağacının HEAD'i güncellenmemiş"
-#: bundle.c:44
+#: bundle.c:45
#, c-format
msgid "unrecognized bundle hash algorithm: %s"
msgstr "bilinmeyen demet sağlama algoritması: %s"
-#: bundle.c:48
+#: bundle.c:53
#, c-format
msgid "unknown capability '%s'"
msgstr "bilinmeyen yetenek '%s'"
-#: bundle.c:74
+#: bundle.c:79
#, c-format
msgid "'%s' does not look like a v2 or v3 bundle file"
msgstr "'%s' bir v2 veya v3 demet dosyası gibi görünmüyor"
-#: bundle.c:113
+#: bundle.c:118
#, c-format
msgid "unrecognized header: %s%s (%d)"
msgstr "tanımlanamayan üstbilgi: %s%s (%d)"
-#: bundle.c:140 rerere.c:464 rerere.c:674 sequencer.c:2620 sequencer.c:3406
-#: builtin/commit.c:862
+#: bundle.c:145 rerere.c:464 rerere.c:675 sequencer.c:2616 sequencer.c:3402
+#: builtin/commit.c:865
#, c-format
msgid "could not open '%s'"
msgstr "'%s' açılamadı"
-#: bundle.c:198
+#: bundle.c:203
msgid "Repository lacks these prerequisite commits:"
msgstr "Depo aşağıdaki önkoşul işlemelere iye değil:"
-#: bundle.c:201
+#: bundle.c:206
msgid "need a repository to verify a bundle"
msgstr "bir demeti doğrulamak için bir depo gerekiyor"
-#: bundle.c:257
+#: bundle.c:264
#, 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:"
+msgid_plural "The bundle contains these %<PRIuMAX> refs:"
+msgstr[0] "Demet bu başvuruyu içeriyor:"
+msgstr[1] "Demet bu %<PRIuMAX> başvuruyu içeriyor:"
-#: bundle.c:264
+#: bundle.c:272
msgid "The bundle records a complete history."
msgstr "Demet tam bir geçmiş kaydını yazar."
-#: bundle.c:266
+#: bundle.c:274
#, c-format
msgid "The bundle requires this ref:"
-msgid_plural "The bundle requires these %d refs:"
-msgstr[0] "Demet ÅŸu iÅŸlemeyi gerektiriyor:"
-msgstr[1] "Demet ÅŸu %d iÅŸlemeyi gerektiriyor:"
+msgid_plural "The bundle requires these %<PRIuMAX> refs:"
+msgstr[0] "Demet bu baÅŸvuruyu gerektiriyor:"
+msgstr[1] "Demet bu %<PRIuMAX> baÅŸvuruyu gerektiriyor:"
-#: bundle.c:333
+#: bundle.c:350
msgid "unable to dup bundle descriptor"
msgstr "demet açıklayıcısı çoğaltılamıyor"
-#: bundle.c:340
+#: bundle.c:357
msgid "Could not spawn pack-objects"
msgstr "pack-objects ortaya çıkarılamadı"
-#: bundle.c:351
+#: bundle.c:368
msgid "pack-objects died"
msgstr "pack-objects sonlandı"
-#: bundle.c:400
+#: bundle.c:417
#, 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:504
+#: bundle.c:533 builtin/log.c:211 builtin/log.c:1975 builtin/shortlog.c:400
+#, c-format
+msgid "unrecognized argument: %s"
+msgstr "tanımlanamayan argüman: %s"
+
+#: bundle.c:548
#, c-format
msgid "unsupported bundle version %d"
msgstr "desteklenmeyen demet sürümü %d"
-#: bundle.c:506
+#: bundle.c:550
#, c-format
msgid "cannot write bundle version %d with algorithm %s"
msgstr "demet sürümü %d, %s algoritması ile yazılamıyor"
-#: bundle.c:524 builtin/log.c:210 builtin/log.c:1953 builtin/shortlog.c:399
-#, c-format
-msgid "unrecognized argument: %s"
-msgstr "tanımlanamayan argüman: %s"
-
-#: bundle.c:553
+#: bundle.c:600
msgid "Refusing to create empty bundle."
msgstr "BoÅŸ demet oluÅŸturma reddediliyor."
-#: bundle.c:563
+#: bundle.c:610
#, c-format
msgid "cannot create '%s'"
msgstr "'%s' oluşturulamıyor"
-#: bundle.c:588
+#: bundle.c:639
msgid "index-pack died"
msgstr "index-pack sonlandı"
@@ -2215,7 +2271,7 @@ msgstr "en son iri parçanın numarası sıfır olmayan %<PRIx32>"
msgid "invalid color value: %.*s"
msgstr "geçersiz renk değeri: %.*s"
-#: commit-graph.c:204 midx.c:51
+#: commit-graph.c:204 midx.c:52
msgid "invalid hash version"
msgstr "geçersiz sağlama sürümü"
@@ -2243,207 +2299,208 @@ msgstr "commit-graph sağlama sürümü %X, %X ile eşleşmiyor"
msgid "commit-graph file is too small to hold %u chunks"
msgstr "commit-graph dosyası %u iri parça tutmak için pek küçük"
-#: commit-graph.c:482
+#: commit-graph.c:485
msgid "commit-graph has no base graphs chunk"
msgstr "commit-graph temel grafiği iri parçasına iye değil"
-#: commit-graph.c:492
+#: commit-graph.c:495
msgid "commit-graph chain does not match"
msgstr "commit-graph zinciri eÅŸleÅŸmiyor"
-#: commit-graph.c:540
+#: commit-graph.c:543
#, 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:564
+#: commit-graph.c:567
msgid "unable to find all commit-graph files"
msgstr "tüm commit-graph dosyaları bulunamıyor"
-#: commit-graph.c:749 commit-graph.c:786
+#: commit-graph.c:752 commit-graph.c:789
msgid "invalid commit position. commit-graph is likely corrupt"
msgstr "geçersiz işleme konumu, commit-graph büyük olasılıkla hasar görmüş"
-#: commit-graph.c:770
+#: commit-graph.c:773
#, c-format
msgid "could not find commit %s"
msgstr "%s işlemesi bulunamadı"
-#: commit-graph.c:803
+#: commit-graph.c:806
msgid "commit-graph requires overflow generation data but has none"
msgstr "commit-graph, taşım oluşturma verisi gerektiriyor; ancak hiç yok"
-#: commit-graph.c:1108 builtin/am.c:1369
+#: commit-graph.c:1111 builtin/am.c:1370 builtin/checkout.c:775
+#: builtin/clone.c:705
#, c-format
msgid "unable to parse commit %s"
msgstr "%s işlemesi ayrıştırılamıyor"
-#: commit-graph.c:1370 builtin/pack-objects.c:3070
+#: commit-graph.c:1373 builtin/pack-objects.c:3078
#, c-format
msgid "unable to get type of object %s"
msgstr "%s nesnesinin türü alınamıyor"
-#: commit-graph.c:1401
+#: commit-graph.c:1404
msgid "Loading known commits in commit graph"
msgstr "İşleme grafiğindeki bilinen işlemeler yükleniyor"
-#: commit-graph.c:1418
+#: commit-graph.c:1421
msgid "Expanding reachable commits in commit graph"
msgstr "İşleme grafiğindeki ulaşılabilir işlemeler genişletiliyor"
-#: commit-graph.c:1438
+#: commit-graph.c:1441
msgid "Clearing commit marks in commit graph"
msgstr "Ä°ÅŸleme grafiÄŸindeki iÅŸleme imleri temizleniyor"
-#: commit-graph.c:1457
+#: commit-graph.c:1460
msgid "Computing commit graph topological levels"
msgstr "İşleme grafiği ilingesel düzeyleri hesaplanıyor"
-#: commit-graph.c:1510
+#: commit-graph.c:1513
msgid "Computing commit graph generation numbers"
msgstr "İşleme grafiği kuşak sayıları hesaplanıyor"
-#: commit-graph.c:1591
+#: commit-graph.c:1598
msgid "Computing commit changed paths Bloom filters"
msgstr ""
"Geçerli işlemelerdeki değiştirilmiş yollar için Bloom süzgeci hesaplanıyor"
-#: commit-graph.c:1668
+#: commit-graph.c:1675
msgid "Collecting referenced commits"
msgstr "Başvurulmuş işlemeler toplanıyor"
-#: commit-graph.c:1693
+#: commit-graph.c:1701
#, c-format
-msgid "Finding commits for commit graph in %d pack"
-msgid_plural "Finding commits for commit graph in %d packs"
-msgstr[0] "%d pakette işleme grafiği için işlemeler bulunuyor"
-msgstr[1] "%d pakette işleme grafiği için işlemeler bulunuyor"
+msgid "Finding commits for commit graph in %<PRIuMAX> pack"
+msgid_plural "Finding commits for commit graph in %<PRIuMAX> packs"
+msgstr[0] "%<PRIuMAX> pakette işleme grafiği için işlemeler bulunuyor"
+msgstr[1] "%<PRIuMAX> pakette işleme grafiği için işlemeler bulunuyor"
-#: commit-graph.c:1706
+#: commit-graph.c:1714
#, c-format
msgid "error adding pack %s"
msgstr "%s paketi eklenirken hata"
-#: commit-graph.c:1710
+#: commit-graph.c:1718
#, c-format
msgid "error opening index for %s"
msgstr "%s için indeks açılırken hata"
-#: commit-graph.c:1747
+#: commit-graph.c:1756
msgid "Finding commits for commit graph among packed objects"
msgstr "Paketlenmiş nesneler arasından işleme grafiği için işlemeler bulunuyor"
-#: commit-graph.c:1765
+#: commit-graph.c:1774
msgid "Finding extra edges in commit graph"
msgstr "İşleme grafiğindeki ek sınırlar bulunuyor"
-#: commit-graph.c:1814
+#: commit-graph.c:1823
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:1845 midx.c:1149
+#: commit-graph.c:1854 midx.c:1168 builtin/sparse-checkout.c:475
#, c-format
msgid "unable to create leading directories of %s"
msgstr "%s öncü dizinleri oluşturulamıyor"
-#: commit-graph.c:1858
+#: commit-graph.c:1868
msgid "unable to create temporary graph layer"
msgstr "geçici grafik katmanı oluşturulamıyor"
-#: commit-graph.c:1863
+#: commit-graph.c:1873
#, c-format
msgid "unable to adjust shared permissions for '%s'"
msgstr "'%s' için paylaşılan izinler ayarlanamıyor"
-#: commit-graph.c:1920
+#: commit-graph.c:1930
#, c-format
msgid "Writing out commit graph in %d pass"
msgid_plural "Writing out commit graph in %d passes"
msgstr[0] "İşleme grafiği %d geçişte yazılıyor"
msgstr[1] "İşleme grafiği %d geçişte yazılıyor"
-#: commit-graph.c:1956
+#: commit-graph.c:1967
msgid "unable to open commit-graph chain file"
msgstr "commit-graph zincir dosyası açılamıyor"
-#: commit-graph.c:1972
+#: commit-graph.c:1983
msgid "failed to rename base commit-graph file"
msgstr "temel commit-graph dosyası yeniden adlandırılamadı"
-#: commit-graph.c:1992
+#: commit-graph.c:2004
msgid "failed to rename temporary commit-graph file"
msgstr "geçici commit-graph dosyası yeniden adlandırılamadı"
-#: commit-graph.c:2125
+#: commit-graph.c:2137
msgid "Scanning merged commits"
msgstr "Birleştirilen işlemeler taranıyor"
-#: commit-graph.c:2169
+#: commit-graph.c:2181
msgid "Merging commit-graph"
msgstr "commit-graph birleÅŸtiriliyor"
-#: commit-graph.c:2277
+#: commit-graph.c:2289
msgid "attempting to write a commit-graph, but 'core.commitGraph' is disabled"
msgstr ""
"bir commit-graph yazılmaya çalışılıyor; ancak 'core.commitGraph' devre dışı"
-#: commit-graph.c:2384
+#: commit-graph.c:2396
msgid "too many commits to write graph"
msgstr "grafik yazımı için çok fazla işleme"
-#: commit-graph.c:2482
+#: commit-graph.c:2494
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:2492
+#: commit-graph.c:2504
#, 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:2502 commit-graph.c:2517
+#: commit-graph.c:2514 commit-graph.c:2529
#, 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:2509
+#: commit-graph.c:2521
#, c-format
msgid "failed to parse commit %s from commit-graph"
msgstr "%s işlemesi commit-graph'tan ayrıştırılamadı"
-#: commit-graph.c:2527
+#: commit-graph.c:2539
msgid "Verifying commits in commit graph"
msgstr "İşleme grafiğindeki işlemeler doğrulanıyor"
-#: commit-graph.c:2542
+#: commit-graph.c:2554
#, c-format
msgid "failed to parse commit %s from object database for commit-graph"
msgstr ""
"%s işlemesi commit-graph için olan nesne veritabanından ayrıştırılamadı"
-#: commit-graph.c:2549
+#: commit-graph.c:2561
#, c-format
msgid "root tree OID for commit %s in commit-graph is %s != %s"
msgstr ""
"commit-graph'teki %s işlemesi için olan kök ağaç nesne tanımlayıcısı %s != %s"
-#: commit-graph.c:2559
+#: commit-graph.c:2571
#, c-format
msgid "commit-graph parent list for commit %s is too long"
msgstr "%s işlemesi için olan commit-graph üst öge listesi çok uzun"
-#: commit-graph.c:2568
+#: commit-graph.c:2580
#, 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:2582
+#: commit-graph.c:2594
#, c-format
msgid "commit-graph parent list for commit %s terminates early"
msgstr "%s işlemesi için olan commit-graph üst öge listesi erkenden sonlanıyor"
-#: commit-graph.c:2587
+#: commit-graph.c:2599
#, c-format
msgid ""
"commit-graph has generation number zero for commit %s, but non-zero elsewhere"
@@ -2451,7 +2508,7 @@ msgstr ""
"%s işlemesi için commit-graph kuşak sayısı sıfır; ancak başka yerlerde "
"sıfırdan farklı"
-#: commit-graph.c:2591
+#: commit-graph.c:2603
#, c-format
msgid ""
"commit-graph has non-zero generation number for commit %s, but zero elsewhere"
@@ -2459,29 +2516,29 @@ msgstr ""
"%s işlemesi için commit-graph kuşak sayısı sıfırdan farklı; ancak başka "
"yerlerde sıfır"
-#: commit-graph.c:2608
+#: commit-graph.c:2620
#, c-format
msgid "commit-graph generation for commit %s is %<PRIuMAX> < %<PRIuMAX>"
msgstr "%s işlemesi için commit-graph kuşağı %<PRIuMAX> < %<PRIuMAX>"
-#: commit-graph.c:2614
+#: commit-graph.c:2626
#, c-format
msgid "commit date for commit %s in commit-graph is %<PRIuMAX> != %<PRIuMAX>"
msgstr ""
"%s işlemesi için commit-graph içindeki işleme tarihi %<PRIuMAX> != %<PRIuMAX>"
-#: commit.c:53 sequencer.c:3109 builtin/am.c:399 builtin/am.c:444
-#: builtin/am.c:449 builtin/am.c:1448 builtin/am.c:2123 builtin/replace.c:456
+#: commit.c:54 sequencer.c:3105 builtin/am.c:400 builtin/am.c:445
+#: builtin/am.c:450 builtin/am.c:1449 builtin/am.c:2124 builtin/replace.c:456
#, c-format
msgid "could not parse %s"
msgstr "%s ayrıştırılamadı"
-#: commit.c:55
+#: commit.c:56
#, c-format
msgid "%s %s is not a commit!"
msgstr "%s %s bir iÅŸleme deÄŸil!"
-#: commit.c:196
+#: commit.c:197
msgid ""
"Support for <GIT_DIR>/info/grafts is deprecated\n"
"and will be removed in a future Git version.\n"
@@ -2501,28 +2558,28 @@ msgstr ""
"\"git config advice.graftFileDeprecated false\"\n"
"kullanarak bu iletiyi kapatabilirsiniz."
-#: commit.c:1241
+#: commit.c:1252
#, c-format
msgid "Commit %s has an untrusted GPG signature, allegedly by %s."
msgstr ""
"%s işlemesinin güvenilmeyen bir GPG imzası var, iddiaya göre %s tarafından."
-#: commit.c:1245
+#: commit.c:1256
#, c-format
msgid "Commit %s has a bad GPG signature allegedly by %s."
msgstr "%s işlemesinin hatalı bir GPG imzası var, iddiaya göre %s tarafından."
-#: commit.c:1248
+#: commit.c:1259
#, c-format
msgid "Commit %s does not have a GPG signature."
msgstr "%s işlemesinin bir GPG imzası yok."
-#: commit.c:1251
+#: commit.c:1262
#, c-format
msgid "Commit %s has a good GPG signature by %s\n"
msgstr "%s işlemesinin %s tarafından sağlanan düzgün bir GPG imzası var\n"
-#: commit.c:1505
+#: commit.c:1516
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"
@@ -2537,7 +2594,15 @@ msgstr ""
msgid "memory exhausted"
msgstr "bellek tükendi"
-#: config.c:125
+#: compat/terminal.c:167
+msgid "cannot resume in the background, please use 'fg' to resume"
+msgstr "arka planda sürdürülemiyor, sürdürmek için 'fg' kullanın"
+
+#: compat/terminal.c:168
+msgid "cannot restore terminal settings"
+msgstr "uçbirim ayarları geri yüklenemiyor"
+
+#: config.c:143
#, c-format
msgid ""
"exceeded maximum include depth (%d) while including\n"
@@ -2552,341 +2617,368 @@ msgstr ""
"\t%s\n"
"Bu dairesel içermelerden dolayı olabilir."
-#: config.c:141
+#: config.c:159
#, c-format
msgid "could not expand include path '%s'"
msgstr "içerme yolu '%s' genişletilemedi"
-#: config.c:152
+#: config.c:170
msgid "relative config includes must come from files"
msgstr "göreceli yapılandırma içermeleri dosyalardan gelmeli"
-#: config.c:201
+#: config.c:219
msgid "relative config include conditionals must come from files"
msgstr "göreceli yapılandırma içerme koşulluları dosyalardan gelmeli"
-#: config.c:398
+#: config.c:364
+msgid ""
+"remote URLs cannot be configured in file directly or indirectly included by "
+"includeIf.hasconfig:remote.*.url"
+msgstr ""
+"uzak URL'ler dosya içinde doğrudan veya başka türlü includeIf.hasconfig:"
+"remote.*.url kullanarak yapılandırılamaz"
+
+#: config.c:508
#, c-format
msgid "invalid config format: %s"
msgstr "geçersiz yapılandırma biçimi: %s"
-#: config.c:402
+#: config.c:512
#, c-format
msgid "missing environment variable name for configuration '%.*s'"
msgstr "'%.*s' yapılandırması için ortam değişkeni adı eksik"
-#: config.c:407
+#: config.c:517
#, c-format
msgid "missing environment variable '%s' for configuration '%.*s'"
msgstr "şu yapılandırma için '%s' ortam değişkeni eksik: '%.*s'"
-#: config.c:443
+#: config.c:553
#, c-format
msgid "key does not contain a section: %s"
msgstr "anahtar, bir bölüm içermiyor: %s"
-#: config.c:448
+#: config.c:558
#, c-format
msgid "key does not contain variable name: %s"
msgstr "anahtar, bir değişken adı içermiyor: %s"
-#: config.c:470 sequencer.c:2806
+#: config.c:580 sequencer.c:2802
#, c-format
msgid "invalid key: %s"
msgstr "geçersiz anahtar: %s"
-#: config.c:475
+#: config.c:585
#, c-format
msgid "invalid key (newline): %s"
msgstr "geçersiz anahtar (yenisatır): %s"
-#: config.c:495
+#: config.c:605
msgid "empty config key"
msgstr "boş yapılandırma anahtarı"
-#: config.c:513 config.c:525
+#: config.c:623 config.c:635
#, c-format
msgid "bogus config parameter: %s"
msgstr "düzmece yapılandırma parametresi: %s"
-#: config.c:539 config.c:556 config.c:563 config.c:572
+#: config.c:649 config.c:666 config.c:673 config.c:682
#, c-format
msgid "bogus format in %s"
msgstr "%s içinde düzmece biçim"
-#: config.c:606
+#: config.c:716
#, c-format
msgid "bogus count in %s"
msgstr "%s içinde düzmece sayım"
-#: config.c:610
+#: config.c:720
#, c-format
msgid "too many entries in %s"
msgstr "%s içinde çok fazla girdi"
-#: config.c:620
+#: config.c:730
#, c-format
msgid "missing config key %s"
msgstr "%s yapılandırma anahtarı eksik"
-#: config.c:628
+#: config.c:738
#, c-format
msgid "missing config value %s"
msgstr "%s yapılandırma değeri eksik"
-#: config.c:979
+#: config.c:1089
#, c-format
msgid "bad config line %d in blob %s"
msgstr "hatalı yapılandırma satırı %d, %s ikili nesnesi içinde"
-#: config.c:983
+#: config.c:1093
#, c-format
msgid "bad config line %d in file %s"
msgstr "hatalı yapılandırma satırı %d, %s dosyası içinde"
-#: config.c:987
+#: config.c:1097
#, c-format
msgid "bad config line %d in standard input"
msgstr "standart girdi içinde hatalı yapılandırma satırı %d"
-#: config.c:991
+#: config.c:1101
#, c-format
msgid "bad config line %d in submodule-blob %s"
msgstr "hatalı yapılandırma satırı %d, %s altmodül ikili nesnesi içinde"
-#: config.c:995
+#: config.c:1105
#, c-format
msgid "bad config line %d in command line %s"
msgstr "hatalı yapılandırma satırı %d, %s komut satırı içinde"
-#: config.c:999
+#: config.c:1109
#, c-format
msgid "bad config line %d in %s"
msgstr "hatalı yapılandırma satırı %d (%s içinde)"
-#: config.c:1136
+#: config.c:1246
msgid "out of range"
msgstr "erim dışı"
-#: config.c:1136
+#: config.c:1246
msgid "invalid unit"
msgstr "geçersiz birim"
-#: config.c:1137
+#: config.c:1247
#, c-format
msgid "bad numeric config value '%s' for '%s': %s"
msgstr "hatalı sayısal yapılandırma değeri '%s', '%s' için: %s"
-#: config.c:1147
+#: config.c:1257
#, c-format
msgid "bad numeric config value '%s' for '%s' in blob %s: %s"
msgstr ""
"hatalı sayısal yapılandırma değeri '%s', '%s' için, %s ikili nesnesi içinde: "
"%s"
-#: config.c:1150
+#: config.c:1260
#, c-format
msgid "bad numeric config value '%s' for '%s' in file %s: %s"
msgstr ""
"hatalı sayısal yapılandırma değeri '%s', '%s' için, %s dosyası içinde: %s"
-#: config.c:1153
+#: config.c:1263
#, c-format
msgid "bad numeric config value '%s' for '%s' in standard input: %s"
msgstr ""
"hatalı sayısal yapılandırma değeri '%s', '%s' için, standart girdi içinde: %s"
-#: config.c:1156
+#: config.c:1266
#, c-format
msgid "bad numeric config value '%s' for '%s' in submodule-blob %s: %s"
msgstr ""
"hatalı sayısal yapılandırma değeri '%s', '%s' için, %s altmodül ikili "
"nesnesi içinde: %s"
-#: config.c:1159
+#: config.c:1269
#, c-format
msgid "bad numeric config value '%s' for '%s' in command line %s: %s"
msgstr ""
"hatalı sayısal yapılandırma değeri '%s', '%s' için, %s komut satırı içinde: "
"%s"
-#: config.c:1162
+#: config.c:1272
#, c-format
msgid "bad numeric config value '%s' for '%s' in %s: %s"
msgstr "hatalı sayısal yapılandırma değeri '%s', '%s' için (%s içinde): %s"
-#: config.c:1241
+#: config.c:1368
+#, c-format
+msgid "invalid value for variable %s"
+msgstr "%s değişkeni için geçersiz değer"
+
+#: config.c:1389
+#, c-format
+msgid "ignoring unknown core.fsync component '%s'"
+msgstr "bilinmeyen core.fsync bileşeni '%s' yok sayılıyor"
+
+#: config.c:1425
#, c-format
msgid "bad boolean config value '%s' for '%s'"
msgstr "hatalı Boole yapılandırma değeri '%s', '%s' için"
-#: config.c:1259
+#: config.c:1443
#, c-format
msgid "failed to expand user dir in: '%s'"
msgstr "şuradaki kullanıcı dizini genişletilemedi: '%s'"
-#: config.c:1268
+#: config.c:1452
#, c-format
msgid "'%s' for '%s' is not a valid timestamp"
msgstr "%s', '%s' için geçerli bir zaman damgası değil"
-#: config.c:1361
+#: config.c:1545
#, c-format
msgid "abbrev length out of range: %d"
msgstr "kısaltma uzunluğu erim dışında: %d"
-#: config.c:1375 config.c:1386
+#: config.c:1559 config.c:1570
#, c-format
msgid "bad zlib compression level %d"
msgstr "hatalı zlib sıkıştırma düzeyi %d"
-#: config.c:1476
+#: config.c:1660
msgid "core.commentChar should only be one character"
msgstr "core.commentChar yalnızca bir karakter olmalı"
-#: config.c:1509
+#: config.c:1692
+#, c-format
+msgid "ignoring unknown core.fsyncMethod value '%s'"
+msgstr "bilinmeyen core.fsyncMethod değeri '%s' yok sayılıyor"
+
+#: config.c:1698
+msgid "core.fsyncObjectFiles is deprecated; use core.fsync instead"
+msgstr "core.fsyncObjectFiles artık kullanılmıyor; yerine core.fsync kullanın"
+
+#: config.c:1714
#, c-format
msgid "invalid mode for object creation: %s"
msgstr "nesne oluşturma için geçersiz kip: %s"
-#: config.c:1584
+#: config.c:1800
#, c-format
msgid "malformed value for %s"
msgstr "%s için hatalı oluşturulmuş değer"
-#: config.c:1610
+#: config.c:1826
#, c-format
msgid "malformed value for %s: %s"
msgstr "%s için hatalı oluşturulmuş değer: %s"
-#: config.c:1611
+#: config.c:1827
msgid "must be one of nothing, matching, simple, upstream or current"
msgstr "nothing, matching, simple, upstream veya current içinden biri olmalı"
-#: config.c:1672 builtin/pack-objects.c:4053
+#: config.c:1888 builtin/pack-objects.c:4078
#, c-format
msgid "bad pack compression level %d"
msgstr "hatalı paket sıkıştırma düzeyi %d"
-#: config.c:1795
+#: config.c:2014
#, c-format
msgid "unable to load config blob object '%s'"
msgstr "'%s' yapılandırma ikili nesnesi yüklenemiyor"
-#: config.c:1798
+#: config.c:2017
#, c-format
msgid "reference '%s' does not point to a blob"
msgstr "'%s' baÅŸvurusu ikili bir nesneye iÅŸaret etmiyor"
-#: config.c:1816
+#: config.c:2035
#, c-format
msgid "unable to resolve config blob '%s'"
msgstr "'%s' yapılandırma ikili nesnesi çözülemiyor"
-#: config.c:1861
+#: config.c:2080
#, c-format
msgid "failed to parse %s"
msgstr "%s ayrıştırılamadı"
-#: config.c:1917
+#: config.c:2136
msgid "unable to parse command-line config"
msgstr "komut satırı yapılandırması ayrıştırılamıyor"
-#: config.c:2285
+#: config.c:2512
msgid "unknown error occurred while reading the configuration files"
msgstr "yapılandırma dosyaları okunurken beklenmedik bir hata oluştu"
-#: config.c:2459
+#: config.c:2686
#, c-format
msgid "Invalid %s: '%s'"
msgstr "Geçersiz %s: '%s'"
-#: config.c:2504
+#: config.c:2731
#, c-format
msgid "splitIndex.maxPercentChange value '%d' should be between 0 and 100"
msgstr "splitIndex.maxPercentChange değeri '%d' 0 ve 100 arasında olmalı"
-#: config.c:2550
+#: config.c:2763
#, c-format
msgid "unable to parse '%s' from command-line config"
msgstr "'%s' komut satırı yapılandırmasından ayrıştırılamıyor"
-#: config.c:2552
+#: config.c:2765
#, c-format
msgid "bad config variable '%s' in file '%s' at line %d"
msgstr "hatalı yapılandırma değişkeni '%s', '%s' dosyası %d. satırda"
-#: config.c:2637
+#: config.c:2850
#, c-format
msgid "invalid section name '%s'"
msgstr "geçersiz bölüm adı '%s'"
-#: config.c:2669
+#: config.c:2882
#, c-format
msgid "%s has multiple values"
msgstr "%s birden çok değere iye"
-#: config.c:2698
+#: config.c:2911
#, c-format
msgid "failed to write new configuration file %s"
msgstr "yeni yapılandırma dosyası %s yazılamadı"
-#: config.c:2950 config.c:3277
+#: config.c:3177 config.c:3518
#, c-format
msgid "could not lock config file %s"
msgstr "%s yapılandırma dosyası kilitlenemedi"
-#: config.c:2961
+#: config.c:3188
#, c-format
msgid "opening %s"
msgstr "%s açılıyor"
-#: config.c:2998 builtin/config.c:361
+#: config.c:3225 builtin/config.c:361
#, c-format
msgid "invalid pattern: %s"
msgstr "geçersiz dizgi: %s"
-#: config.c:3023
+#: config.c:3250
#, c-format
msgid "invalid config file %s"
msgstr "geçersiz yapılandırma dosyası %s"
-#: config.c:3036 config.c:3290
+#: config.c:3263 config.c:3531
#, c-format
msgid "fstat on %s failed"
msgstr "%s üzerinde fstat başarısız oldu"
-#: config.c:3047
+#: config.c:3274
#, c-format
msgid "unable to mmap '%s'%s"
msgstr "'%s'%s mmap yapılamıyor"
-#: config.c:3057 config.c:3295
+#: config.c:3284 config.c:3536
#, c-format
msgid "chmod on %s failed"
msgstr "%s üzerinde chmod başarısız oldu"
-#: config.c:3142 config.c:3392
+#: config.c:3369 config.c:3633
#, c-format
msgid "could not write config file %s"
msgstr "%s yapılandırma dosyası yazılamadı"
-#: config.c:3176
+#: config.c:3403
#, c-format
msgid "could not set '%s' to '%s'"
msgstr "'%s', '%s' olarak ayarlanamadı"
-#: config.c:3178 builtin/remote.c:662 builtin/remote.c:860 builtin/remote.c:868
+#: config.c:3405 builtin/remote.c:666 builtin/remote.c:885 builtin/remote.c:893
#, c-format
msgid "could not unset '%s'"
msgstr "'%s' ayarı kapatılamadı"
-#: config.c:3268
+#: config.c:3509
#, c-format
msgid "invalid section name: %s"
msgstr "geçersiz bölüm adı: %s"
-#: config.c:3435
+#: config.c:3676
#, c-format
msgid "missing value for '%s'"
msgstr "'%s' için değer eksik"
@@ -3213,74 +3305,74 @@ msgstr "şu anahtar için yetki araması atlanıyor: credential.%s"
#: credential.c:112
msgid "refusing to work with credential missing host field"
-msgstr "anamakine bilgisi eksik yetki ile çalışma reddediliyor"
+msgstr "ana makine bilgisi eksik yetki ile çalışma reddediliyor"
#: credential.c:114
msgid "refusing to work with credential missing protocol field"
msgstr "protokol bilgisi eksik yetki ile çalışma reddediliyor"
-#: credential.c:395
+#: credential.c:396
#, c-format
msgid "url contains a newline in its %s component: %s"
msgstr "url, kendisinin %s bileşeninde bir yenisatır içeriyor: %s"
-#: credential.c:439
+#: credential.c:440
#, c-format
msgid "url has no scheme: %s"
msgstr "url'nin şeması yok: %s"
-#: credential.c:512
+#: credential.c:513
#, c-format
msgid "credential url cannot be parsed: %s"
msgstr "yetki url'si ayrıştırılamıyor: %s"
-#: date.c:138
+#: date.c:139
msgid "in the future"
msgstr "gelecekte"
-#: date.c:144
+#: date.c:145
#, c-format
msgid "%<PRIuMAX> second ago"
msgid_plural "%<PRIuMAX> seconds ago"
msgstr[0] "%<PRIuMAX> saniye önce"
msgstr[1] "%<PRIuMAX> saniye önce"
-#: date.c:151
+#: date.c:152
#, c-format
msgid "%<PRIuMAX> minute ago"
msgid_plural "%<PRIuMAX> minutes ago"
msgstr[0] "%<PRIuMAX> dakika önce"
msgstr[1] "%<PRIuMAX> dakika önce"
-#: date.c:158
+#: date.c:159
#, c-format
msgid "%<PRIuMAX> hour ago"
msgid_plural "%<PRIuMAX> hours ago"
msgstr[0] "%<PRIuMAX> saat önce"
msgstr[1] "%<PRIuMAX> saat önce"
-#: date.c:165
+#: date.c:166
#, c-format
msgid "%<PRIuMAX> day ago"
msgid_plural "%<PRIuMAX> days ago"
msgstr[0] "%<PRIuMAX> gün önce"
msgstr[1] "%<PRIuMAX> gün önce"
-#: date.c:171
+#: date.c:172
#, c-format
msgid "%<PRIuMAX> week ago"
msgid_plural "%<PRIuMAX> weeks ago"
msgstr[0] "%<PRIuMAX> hafta önce"
msgstr[1] "%<PRIuMAX> hafta önce"
-#: date.c:178
+#: date.c:179
#, c-format
msgid "%<PRIuMAX> month ago"
msgid_plural "%<PRIuMAX> months ago"
msgstr[0] "%<PRIuMAX> ay önce"
msgstr[1] "%<PRIuMAX> ay önce"
-#: date.c:189
+#: date.c:190
#, c-format
msgid "%<PRIuMAX> year"
msgid_plural "%<PRIuMAX> years"
@@ -3288,14 +3380,14 @@ msgstr[0] "%<PRIuMAX> yıl"
msgstr[1] "%<PRIuMAX> yıl"
#. TRANSLATORS: "%s" is "<n> years"
-#: date.c:192
+#: date.c:193
#, c-format
msgid "%s, %<PRIuMAX> month ago"
msgid_plural "%s, %<PRIuMAX> months ago"
msgstr[0] "%s, %<PRIuMAX> ay önce"
msgstr[1] "%s, %<PRIuMAX> ay önce"
-#: date.c:197 date.c:202
+#: date.c:198 date.c:203
#, c-format
msgid "%<PRIuMAX> year ago"
msgid_plural "%<PRIuMAX> years ago"
@@ -3328,10 +3420,14 @@ msgstr ""
msgid "Marked %d islands, done.\n"
msgstr "%d delta adası imlendi, bitti.\n"
-#: diff-merges.c:70
+#: diff-merges.c:81 gpg-interface.c:719 gpg-interface.c:734 ls-refs.c:37
+#: parallel-checkout.c:42 sequencer.c:2805 setup.c:563 builtin/am.c:203
+#: builtin/am.c:2243 builtin/am.c:2287 builtin/blame.c:724 builtin/blame.c:742
+#: builtin/fetch.c:792 builtin/pack-objects.c:3515 builtin/pull.c:45
+#: builtin/pull.c:47 builtin/pull.c:321
#, c-format
-msgid "unknown value for --diff-merges: %s"
-msgstr "--diff-merges için bilinmeyen değer: %s"
+msgid "invalid value for '%s': '%s'"
+msgstr "'%s' için geçersiz değer: '%s'"
#: diff-lib.c:561
msgid "--merge-base does not work with ranges"
@@ -3365,17 +3461,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:158
+#: diff.c:159
#, 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:163
+#: diff.c:164
#, c-format
msgid " Unknown dirstat parameter '%s'\n"
msgstr " Bilinmeyen dirstat parametresi '%s'\n"
-#: diff.c:299
+#: diff.c:300
msgid ""
"color moved setting must be one of 'no', 'default', 'blocks', 'zebra', "
"'dimmed-zebra', 'plain'"
@@ -3383,7 +3479,7 @@ msgstr ""
"\"color-moved\" ayarı 'no', 'default', 'blocks', 'zebra', 'dimmed-zebra', "
"'plain' seçeneklerinden biri olmalıdır"
-#: diff.c:327
+#: diff.c:328
#, c-format
msgid ""
"unknown color-moved-ws mode '%s', possible values are 'ignore-space-change', "
@@ -3392,7 +3488,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:335
+#: diff.c:336
msgid ""
"color-moved-ws: allow-indentation-change cannot be combined with other "
"whitespace modes"
@@ -3400,12 +3496,12 @@ msgstr ""
"color-moved-ws: allow-indentation-change diÄŸer boÅŸluk kipleri ile birlikte "
"kullanılamaz"
-#: diff.c:412
+#: diff.c:413
#, 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:472
+#: diff.c:473
#, c-format
msgid ""
"Found errors in 'diff.dirstat' config variable:\n"
@@ -3414,29 +3510,29 @@ msgstr ""
"'diff.dirstat' yapılandırma değişkeninde hatalar bulundu:\n"
"%s"
-#: diff.c:4237
+#: diff.c:4282
#, c-format
msgid "external diff died, stopping at %s"
msgstr "dış diff sonlandı, %s konumunda durdu"
-#: diff.c:4589
+#: diff.c:4677 parse-options.c:1114
#, c-format
msgid "options '%s', '%s', '%s', and '%s' cannot be used together"
msgstr "'%s', '%s', '%s' ve '%s' seçenekleri birlikte kullanılamaz"
-#: diff.c:4593 builtin/difftool.c:736 builtin/log.c:1982 builtin/worktree.c:506
+#: diff.c:4681 parse-options.c:1118 builtin/worktree.c:578
#, c-format
msgid "options '%s', '%s', and '%s' cannot be used together"
msgstr "'%s', '%s' ve '%s' seçenekleri birlikte kullanılamaz"
-#: diff.c:4597
+#: diff.c:4685
#, c-format
msgid "options '%s' and '%s' cannot be used together, use '%s' with '%s'"
msgstr ""
"'%s' ve '%s' seçenekleri birlikte kullanılamaz, '%s' seçeneğini '%s' ile "
"kullanın"
-#: diff.c:4601
+#: diff.c:4689
#, c-format
msgid ""
"options '%s' and '%s' cannot be used together, use '%s' with '%s' and '%s'"
@@ -3444,22 +3540,22 @@ msgstr ""
"'%s' ve '%s' seçenekleri birlikte kullanılamaz, '%s' seçeneğini '%s' ve '%s' "
"ile kullanın"
-#: diff.c:4681
+#: diff.c:4769
msgid "--follow requires exactly one pathspec"
msgstr "--follow tam olarak yalnızca bir yol belirteci gerektiriyor"
-#: diff.c:4729
+#: diff.c:4823
#, c-format
msgid "invalid --stat value: %s"
msgstr "geçersiz --stat değeri: %s"
-#: diff.c:4734 diff.c:4739 diff.c:4744 diff.c:4749 diff.c:5277
+#: diff.c:4828 diff.c:4833 diff.c:4838 diff.c:4843 diff.c:5319
#: parse-options.c:217 parse-options.c:221
#, c-format
msgid "%s expects a numerical value"
msgstr "%s bir sayısal değer bekliyor"
-#: diff.c:4766
+#: diff.c:4860
#, c-format
msgid ""
"Failed to parse --dirstat/-X option parameter:\n"
@@ -3468,42 +3564,42 @@ msgstr ""
"--dirstat/-X seçenek parametresi ayrıştırılamadı:\n"
"%s"
-#: diff.c:4851
+#: diff.c:4893
#, 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:4875
+#: diff.c:4917
#, c-format
msgid "unknown value after ws-error-highlight=%.*s"
msgstr "ÅŸundan sonra bilinmeyen deÄŸer: ws-error-highlight=%.*s"
-#: diff.c:4889
+#: diff.c:4931
#, c-format
msgid "unable to resolve '%s'"
msgstr "'%s' çözülemiyor"
-#: diff.c:4939 diff.c:4945
+#: diff.c:4981 diff.c:4987
#, c-format
msgid "%s expects <n>/<m> form"
msgstr "%s <n>/<m> biçimi bekliyor"
-#: diff.c:4957
+#: diff.c:4999
#, c-format
msgid "%s expects a character, got '%s'"
msgstr "%s bir karakter bekliyor, '%s' aldı"
-#: diff.c:4978
+#: diff.c:5020
#, c-format
msgid "bad --color-moved argument: %s"
msgstr "hatalı --color-moved argümanı: %s"
-#: diff.c:4997
+#: diff.c:5039
#, c-format
msgid "invalid mode '%s' in --color-moved-ws"
msgstr "--color-moved-ws içinde geçersiz kip '%s'"
-#: diff.c:5037
+#: diff.c:5079
msgid ""
"option diff-algorithm accepts \"myers\", \"minimal\", \"patience\" and "
"\"histogram\""
@@ -3511,162 +3607,162 @@ msgstr ""
"diff-algorithm seçeneği şunları kabul eder: \"myers\", \"minimal\", "
"\"patience\" ve \"histogram\""
-#: diff.c:5073 diff.c:5093
+#: diff.c:5115 diff.c:5135
#, c-format
msgid "invalid argument to %s"
msgstr "%s için geçersiz argüman"
-#: diff.c:5197
+#: diff.c:5239
#, c-format
msgid "invalid regex given to -I: '%s'"
msgstr "-I'ya geçersiz düzenli ifade verildi: '%s'"
-#: diff.c:5246
+#: diff.c:5288
#, c-format
msgid "failed to parse --submodule option parameter: '%s'"
msgstr "--submodule seçenek parametresi ayrıştırılamadı: '%s'"
-#: diff.c:5302
+#: diff.c:5344
#, c-format
msgid "bad --word-diff argument: %s"
msgstr "hatalı --word-diff argümanı: %s"
-#: diff.c:5338
+#: diff.c:5380
msgid "Diff output format options"
msgstr "Diff çıktısı biçimlendirme seçenekleri"
-#: diff.c:5340 diff.c:5346
+#: diff.c:5382 diff.c:5388
msgid "generate patch"
msgstr "yama oluÅŸtur"
-#: diff.c:5343 builtin/log.c:179
+#: diff.c:5385 builtin/log.c:180
msgid "suppress diff output"
msgstr "diff çıktısını gizle"
-#: diff.c:5348 diff.c:5462 diff.c:5469
+#: diff.c:5390 diff.c:5504 diff.c:5511
msgid "<n>"
msgstr "<n>"
-#: diff.c:5349 diff.c:5352
+#: diff.c:5391 diff.c:5394
msgid "generate diffs with <n> lines context"
msgstr "diff'leri <n> satır bağlamlı oluştur"
-#: diff.c:5354
+#: diff.c:5396
msgid "generate the diff in raw format"
msgstr "diff'i ham biçimde oluştur"
-#: diff.c:5357
+#: diff.c:5399
msgid "synonym for '-p --raw'"
msgstr "'-p --raw eşanlamlısı"
-#: diff.c:5361
+#: diff.c:5403
msgid "synonym for '-p --stat'"
msgstr "'-p --stat eşanlamlısı"
-#: diff.c:5365
+#: diff.c:5407
msgid "machine friendly --stat"
msgstr "makinede okunabilen --stat"
-#: diff.c:5368
+#: diff.c:5410
msgid "output only the last line of --stat"
msgstr "--stat'ın yalnızca son satırını çıktı ver"
-#: diff.c:5370 diff.c:5378
+#: diff.c:5412 diff.c:5420
msgid "<param1,param2>..."
msgstr "<param1,param2>..."
-#: diff.c:5371
+#: diff.c:5413
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:5375
+#: diff.c:5417
msgid "synonym for --dirstat=cumulative"
msgstr "--dirstat=cumulative eşanlamlısı"
-#: diff.c:5379
+#: diff.c:5421
msgid "synonym for --dirstat=files,param1,param2..."
msgstr "--dirstat=files,param1,param2... eşanlamlısı"
-#: diff.c:5383
+#: diff.c:5425
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:5386
+#: diff.c:5428
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:5389
+#: diff.c:5431
msgid "show only names of changed files"
msgstr "yalnızca değiştirilen dosyaların adlarını göster"
-#: diff.c:5392
+#: diff.c:5434
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:5394
+#: diff.c:5436
msgid "<width>[,<name-width>[,<count>]]"
msgstr "<genişlik>[,<ad-genişlik>[,<sayım>]]"
-#: diff.c:5395
+#: diff.c:5437
msgid "generate diffstat"
msgstr "diffstat oluÅŸtur"
-#: diff.c:5397 diff.c:5400 diff.c:5403
+#: diff.c:5439 diff.c:5442 diff.c:5445
msgid "<width>"
msgstr "<geniÅŸlik>"
-#: diff.c:5398
+#: diff.c:5440
msgid "generate diffstat with a given width"
msgstr "diffstat'ı verilmiş bir genişlik ile oluştur"
-#: diff.c:5401
+#: diff.c:5443
msgid "generate diffstat with a given name width"
msgstr "diffstat'ı verilmiş bir ad genişliği ile oluştur"
-#: diff.c:5404
+#: diff.c:5446
msgid "generate diffstat with a given graph width"
msgstr "diffstat'ı verilmiş bir grafik genişliği ile oluştur"
-#: diff.c:5406
+#: diff.c:5448
msgid "<count>"
msgstr "<sayım>"
-#: diff.c:5407
+#: diff.c:5449
msgid "generate diffstat with limited lines"
msgstr "diffstat'ı kısıtlı satırlarla oluştur"
-#: diff.c:5410
+#: diff.c:5452
msgid "generate compact summary in diffstat"
msgstr "diffstat içinde ufak özet oluştur"
-#: diff.c:5413
+#: diff.c:5455
msgid "output a binary diff that can be applied"
msgstr "uygulanabilir bir ikili diff çıktısı ver"
-#: diff.c:5416
+#: diff.c:5458
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:5418
+#: diff.c:5460
msgid "show colored diff"
msgstr "renkli diff göster"
-#: diff.c:5419
+#: diff.c:5461
msgid "<kind>"
msgstr "<çeşit>"
-#: diff.c:5420
+#: diff.c:5462
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:5423
+#: diff.c:5465
msgid ""
"do not munge pathnames and use NULs as output field terminators in --raw or "
"--numstat"
@@ -3674,88 +3770,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:5426 diff.c:5429 diff.c:5432 diff.c:5541
+#: diff.c:5468 diff.c:5471 diff.c:5474 diff.c:5583
msgid "<prefix>"
msgstr "<önek>"
-#: diff.c:5427
+#: diff.c:5469
msgid "show the given source prefix instead of \"a/\""
msgstr "\"a/\" yerine verilmiş kaynak önekini göster"
-#: diff.c:5430
+#: diff.c:5472
msgid "show the given destination prefix instead of \"b/\""
msgstr "\"b/\"yerine verilmiş kaynak önekini göster"
-#: diff.c:5433
+#: diff.c:5475
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:5436
+#: diff.c:5478
msgid "do not show any source or destination prefix"
msgstr "hiçbir kaynak ve hedef önekini gösterme"
-#: diff.c:5439
+#: diff.c:5481
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:5443 diff.c:5448 diff.c:5453
+#: diff.c:5485 diff.c:5490 diff.c:5495
msgid "<char>"
msgstr "<karakter>"
-#: diff.c:5444
+#: diff.c:5486
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:5449
+#: diff.c:5491
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:5454
+#: diff.c:5496
msgid "specify the character to indicate a context instead of ' '"
msgstr "bağlam belirtmek için ' ' yerine kullanılacak karakteri belirle"
-#: diff.c:5457
+#: diff.c:5499
msgid "Diff rename options"
msgstr "Diff yeniden adlandırma seçenekleri"
-#: diff.c:5458
+#: diff.c:5500
msgid "<n>[/<m>]"
msgstr "<n>[/<m>]"
-#: diff.c:5459
+#: diff.c:5501
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:5463
+#: diff.c:5505
msgid "detect renames"
msgstr "yeniden adlandırmaları algıla"
-#: diff.c:5467
+#: diff.c:5509
msgid "omit the preimage for deletes"
msgstr "silmeler için öngörüntüyü atla"
-#: diff.c:5470
+#: diff.c:5512
msgid "detect copies"
msgstr "kopyaları algıla"
-#: diff.c:5474
+#: diff.c:5516
msgid "use unmodified files as source to find copies"
msgstr "değiştirilmemiş dosyaları kopyaları bulmak için kaynak olarak kullan"
-#: diff.c:5476
+#: diff.c:5518
msgid "disable rename detection"
msgstr "yeniden adlandırma algılamasını devre dışı bırak"
-#: diff.c:5479
+#: diff.c:5521
msgid "use empty blobs as rename source"
msgstr "boş ikili nesneleri yeniden adlandırma kaynağı olarak kullan"
-#: diff.c:5481
+#: diff.c:5523
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:5484
+#: diff.c:5526
msgid ""
"prevent rename/copy detection if the number of rename/copy targets exceeds "
"given limit"
@@ -3763,234 +3859,234 @@ 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:5486
+#: diff.c:5528
msgid "Diff algorithm options"
msgstr "Diff algoritma seçenekleri"
-#: diff.c:5488
+#: diff.c:5530
msgid "produce the smallest possible diff"
msgstr "olabilecek en küçük diff'i üret"
-#: diff.c:5491
+#: diff.c:5533
msgid "ignore whitespace when comparing lines"
msgstr "satırları karşılaştırırken boşlukları yok say"
-#: diff.c:5494
+#: diff.c:5536
msgid "ignore changes in amount of whitespace"
msgstr "boşluk sayısındaki değişiklikleri yok say"
-#: diff.c:5497
+#: diff.c:5539
msgid "ignore changes in whitespace at EOL"
msgstr "satır sonundaki boşluk değişikliklerini yok say"
-#: diff.c:5500
+#: diff.c:5542
msgid "ignore carrier-return at the end of line"
msgstr "satır sonundaki satırbaşı karakterini yok say"
-#: diff.c:5503
+#: diff.c:5545
msgid "ignore changes whose lines are all blank"
msgstr "satırlarının tümü boş olan değişiklikleri yok say"
-#: diff.c:5505 diff.c:5527 diff.c:5530 diff.c:5575
+#: diff.c:5547 diff.c:5569 diff.c:5572 diff.c:5617
msgid "<regex>"
msgstr "<ifade>"
-#: diff.c:5506
+#: diff.c:5548
msgid "ignore changes whose all lines match <regex>"
msgstr "satırlarının tümü <ifade> ile eşleşen değişiklikleri yok say"
-#: diff.c:5509
+#: diff.c:5551
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:5512
+#: diff.c:5554
msgid "generate diff using the \"patience diff\" algorithm"
msgstr "diff'i \"patience diff\" algoritmasını kullanarak oluştur"
-#: diff.c:5516
+#: diff.c:5558
msgid "generate diff using the \"histogram diff\" algorithm"
msgstr "diff'i \"histogram diff\" algoritmasını kullanarak oluştur"
-#: diff.c:5518
+#: diff.c:5560
msgid "<algorithm>"
msgstr "<algoritma>"
-#: diff.c:5519
+#: diff.c:5561
msgid "choose a diff algorithm"
msgstr "bir diff algoritması seç"
-#: diff.c:5521
+#: diff.c:5563
msgid "<text>"
msgstr "<metin>"
-#: diff.c:5522
+#: diff.c:5564
msgid "generate diff using the \"anchored diff\" algorithm"
msgstr "diff'i \"anchored diff\" algoritmasını kullanarak oluştur"
-#: diff.c:5524 diff.c:5533 diff.c:5536
+#: diff.c:5566 diff.c:5575 diff.c:5578
msgid "<mode>"
msgstr "<kip>"
-#: diff.c:5525
+#: diff.c:5567
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:5528
+#: diff.c:5570
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:5531
+#: diff.c:5573
msgid "equivalent to --word-diff=color --word-diff-regex=<regex>"
msgstr "ÅŸuna eÅŸdeÄŸer: --word-diff=color --word-diff-regex=<ifade>"
-#: diff.c:5534
+#: diff.c:5576
msgid "moved lines of code are colored differently"
msgstr "taşınan kod satırları farklı renklendirilir"
-#: diff.c:5537
+#: diff.c:5579
msgid "how white spaces are ignored in --color-moved"
msgstr "boşluklar --color-moved içinde nasıl yok sayılır"
-#: diff.c:5540
+#: diff.c:5582
msgid "Other diff options"
msgstr "Diğer diff seçenekleri"
-#: diff.c:5542
+#: diff.c:5584
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:5546
+#: diff.c:5588
msgid "treat all files as text"
msgstr "tüm dosyaları metin olarak varsay"
-#: diff.c:5548
+#: diff.c:5590
msgid "swap two inputs, reverse the diff"
msgstr "iki girdiyi değiştir, diff'i tersine döndür"
-#: diff.c:5550
+#: diff.c:5592
msgid "exit with 1 if there were differences, 0 otherwise"
msgstr "ayrımlar varsa 1 ile, yoksa 0 ile çık"
-#: diff.c:5552
+#: diff.c:5594
msgid "disable all output of the program"
msgstr "tüm program çıktısını devre dışı bırak"
-#: diff.c:5554
+#: diff.c:5596
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:5556
+#: diff.c:5598
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:5558
+#: diff.c:5600
msgid "<when>"
msgstr "<ne-zaman>"
-#: diff.c:5559
+#: diff.c:5601
msgid "ignore changes to submodules in the diff generation"
msgstr "diff oluştururken altmodüllere olan değişiklikleri yok say"
-#: diff.c:5562
+#: diff.c:5604
msgid "<format>"
msgstr "<biçim>"
-#: diff.c:5563
+#: diff.c:5605
msgid "specify how differences in submodules are shown"
msgstr "altmodüllerdeki değişikliklerin nasıl gösterileceğini belirt"
-#: diff.c:5567
+#: diff.c:5609
msgid "hide 'git add -N' entries from the index"
msgstr "indeksten 'git add -N' girdilerini gizle"
-#: diff.c:5570
+#: diff.c:5612
msgid "treat 'git add -N' entries as real in the index"
msgstr "indekste 'git add -N' girdilerine gerçekmiş gibi davran"
-#: diff.c:5572
+#: diff.c:5614
msgid "<string>"
msgstr "<dizi>"
-#: diff.c:5573
+#: diff.c:5615
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:5576
+#: diff.c:5618
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:5579
+#: diff.c:5621
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:5582
+#: diff.c:5624
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:5585
+#: diff.c:5627
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:5586 diff.c:5589
+#: diff.c:5628 diff.c:5631
msgid "<path>"
msgstr "<yol>"
-#: diff.c:5587
+#: diff.c:5629
msgid "show the change in the specified path first"
msgstr "öncelikle belirtilen yoldaki değişikliği göster"
-#: diff.c:5590
+#: diff.c:5632
msgid "skip the output to the specified path"
msgstr "belirtilen yola olan çıktıyı atla"
-#: diff.c:5592
+#: diff.c:5634
msgid "<object-id>"
msgstr "<nesne-no>"
-#: diff.c:5593
+#: diff.c:5635
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:5595
+#: diff.c:5637
msgid "[(A|C|D|M|R|T|U|X|B)...[*]]"
msgstr "[(A|C|D|M|R|T|U|X|B)...[*]]"
-#: diff.c:5596
+#: diff.c:5638
msgid "select files by diff type"
msgstr "dosyaları diff türüne göre seç"
-#: diff.c:5598
+#: diff.c:5640
msgid "<file>"
msgstr "<dosya>"
-#: diff.c:5599
-msgid "Output to a specific file"
-msgstr "belirli bir dosyaya çıktı ver"
+#: diff.c:5641
+msgid "output to a specific file"
+msgstr "belirli bir dosyaya çıktıla"
-#: diff.c:6257
+#: diff.c:6321
msgid "exhaustive rename detection was skipped due to too many files."
msgstr ""
"Geniş kapsamlı yeniden adlandırma algılaması çok fazla dosya olmasından "
"dolayı atlandı."
-#: diff.c:6260
+#: diff.c:6324
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:6263
+#: diff.c:6327
#, c-format
msgid ""
"you may want to set your %s variable to at least %d and retry the command."
@@ -4041,20 +4137,20 @@ msgstr "koni dizgi eşleşmesi devre dışı bırakılıyor"
msgid "cannot use %s as an exclude file"
msgstr "%s bir 'exclude' dosyası olarak kullanılamıyor"
-#: dir.c:2418
+#: dir.c:2419
#, c-format
msgid "could not open directory '%s'"
msgstr "'%s' dizini açılamadı"
-#: dir.c:2720
+#: dir.c:2721
msgid "failed to get kernel name and information"
msgstr "çekirdek adı ve bilgisi alınamadı"
-#: dir.c:2844
+#: dir.c:2846
msgid "untracked cache is disabled on this system or location"
msgstr "izlenmeyen önbellek bu sistemde veya konumda devre dışı bırakılmış"
-#: dir.c:3112
+#: dir.c:3119
msgid ""
"No directory name could be guessed.\n"
"Please specify a directory on the command line"
@@ -4062,17 +4158,17 @@ msgstr ""
"Bir dizin adı tahmin edilemedi.\n"
"Lütfen komut satırında bir dizin belirtin."
-#: dir.c:3800
+#: dir.c:3807
#, c-format
msgid "index file corrupt in repo %s"
msgstr "%s deposundaki indeks dosyası hasarlı"
-#: dir.c:3847 dir.c:3852
+#: dir.c:3854 dir.c:3859
#, c-format
msgid "could not create directories for %s"
msgstr "%s için dizinler oluşturulamadı"
-#: dir.c:3881
+#: dir.c:3888
#, c-format
msgid "could not migrate git directory from '%s' to '%s'"
msgstr "git dizini '%s' konumundan '%s' konumuna göç ettirilemedi"
@@ -4091,7 +4187,7 @@ msgstr "İçerik süzülüyor"
msgid "could not stat file '%s'"
msgstr "'%s' dosyasının bilgileri alınamadı"
-#: environment.c:145
+#: environment.c:147
#, c-format
msgid "bad git namespace path \"%s\""
msgstr "hatalı git ad alanı yolu \"%s\""
@@ -4122,247 +4218,274 @@ msgstr "git fetch-pack: ACK/NAK bekleniyordu, '%s' alındı"
msgid "unable to write to remote"
msgstr "uzak konuma yazılamıyor"
-#: fetch-pack.c:395 fetch-pack.c:1439
+#: fetch-pack.c:397 fetch-pack.c:1460
#, c-format
msgid "invalid shallow line: %s"
msgstr "geçersiz sığ satır: %s"
-#: fetch-pack.c:401 fetch-pack.c:1445
+#: fetch-pack.c:403 fetch-pack.c:1466
#, c-format
msgid "invalid unshallow line: %s"
msgstr "geçersiz sığ olmayan satır: %s"
-#: fetch-pack.c:403 fetch-pack.c:1447
+#: fetch-pack.c:405 fetch-pack.c:1468
#, c-format
msgid "object not found: %s"
msgstr "nesne bulunamadı: %s"
-#: fetch-pack.c:406 fetch-pack.c:1450
+#: fetch-pack.c:408 fetch-pack.c:1471
#, c-format
msgid "error in object: %s"
msgstr "nesne içinde hata: %s"
-#: fetch-pack.c:408 fetch-pack.c:1452
+#: fetch-pack.c:410 fetch-pack.c:1473
#, c-format
msgid "no shallow found: %s"
msgstr "sığ bulunamadı: %s"
-#: fetch-pack.c:411 fetch-pack.c:1456
+#: fetch-pack.c:413 fetch-pack.c:1477
#, c-format
msgid "expected shallow/unshallow, got %s"
msgstr "sığ/sığ olmayan bekleniyordu, %s alındı"
-#: fetch-pack.c:451
+#: fetch-pack.c:453
#, c-format
msgid "got %s %d %s"
msgstr "%s %d %s alındı"
-#: fetch-pack.c:468
+#: fetch-pack.c:470
#, c-format
msgid "invalid commit %s"
msgstr "geçersiz işleme %s"
-#: fetch-pack.c:499
+#: fetch-pack.c:501
msgid "giving up"
msgstr "vazgeçiliyor"
-#: fetch-pack.c:512 progress.c:339
+#: fetch-pack.c:514 progress.h:25
msgid "done"
msgstr "bitti"
-#: fetch-pack.c:524
+#: fetch-pack.c:526
#, c-format
msgid "got %s (%d) %s"
msgstr "%s (%d) %s alındı"
-#: fetch-pack.c:560
+#: fetch-pack.c:562
#, c-format
msgid "Marking %s as complete"
msgstr "%s tamam olarak imleniyor"
-#: fetch-pack.c:775
+#: fetch-pack.c:784
#, c-format
msgid "already have %s (%s)"
msgstr "%s halihazırda var (%s)"
-#: fetch-pack.c:861
+#: fetch-pack.c:870
msgid "fetch-pack: unable to fork off sideband demultiplexer"
msgstr "fetch-pack: yanbant çoğullama çözücüsü ayrı çatallanamıyor"
-#: fetch-pack.c:869
+#: fetch-pack.c:878
msgid "protocol error: bad pack header"
msgstr "protokol hatası: hatalı paket üstbilgisi"
-#: fetch-pack.c:965
+#: fetch-pack.c:974
#, c-format
msgid "fetch-pack: unable to fork off %s"
msgstr "fetch-pack: %s ayrı çatallanamıyor"
-#: fetch-pack.c:971
+#: fetch-pack.c:980
msgid "fetch-pack: invalid index-pack output"
msgstr "fetch-pack: geçersiz index-pack çıktısı"
-#: fetch-pack.c:988
+#: fetch-pack.c:997
#, c-format
msgid "%s failed"
msgstr "%s başarısız oldu"
-#: fetch-pack.c:990
+#: fetch-pack.c:999
msgid "error in sideband demultiplexer"
msgstr "yanbant çoğullama çözücüsünde hata"
-#: fetch-pack.c:1035
+#: fetch-pack.c:1048
#, c-format
msgid "Server version is %.*s"
msgstr "Sunucu sürümü %.*s"
-#: fetch-pack.c:1043 fetch-pack.c:1049 fetch-pack.c:1052 fetch-pack.c:1058
-#: fetch-pack.c:1062 fetch-pack.c:1066 fetch-pack.c:1070 fetch-pack.c:1074
-#: fetch-pack.c:1078 fetch-pack.c:1082 fetch-pack.c:1086 fetch-pack.c:1090
-#: fetch-pack.c:1096 fetch-pack.c:1102 fetch-pack.c:1107 fetch-pack.c:1112
+#: fetch-pack.c:1056 fetch-pack.c:1062 fetch-pack.c:1065 fetch-pack.c:1071
+#: fetch-pack.c:1075 fetch-pack.c:1079 fetch-pack.c:1083 fetch-pack.c:1087
+#: fetch-pack.c:1091 fetch-pack.c:1095 fetch-pack.c:1099 fetch-pack.c:1103
+#: fetch-pack.c:1109 fetch-pack.c:1115 fetch-pack.c:1120 fetch-pack.c:1125
#, c-format
msgid "Server supports %s"
msgstr "Sunucu %s destekliyor"
-#: fetch-pack.c:1045
+#: fetch-pack.c:1058
msgid "Server does not support shallow clients"
msgstr "Sunucu sığ istemcileri desteklemiyor"
-#: fetch-pack.c:1105
+#: fetch-pack.c:1118
msgid "Server does not support --shallow-since"
msgstr "Sunucu --shallow-since desteklemiyor"
-#: fetch-pack.c:1110
+#: fetch-pack.c:1123
msgid "Server does not support --shallow-exclude"
msgstr "Sunucu --shallow-exclude desteklemiyor"
-#: fetch-pack.c:1114
+#: fetch-pack.c:1127
msgid "Server does not support --deepen"
msgstr "Sunucu --deepen desteklemiyor"
-#: fetch-pack.c:1116
+#: fetch-pack.c:1129
msgid "Server does not support this repository's object format"
msgstr "Sunucu bu deponun nesne türünü desteklemiyor"
-#: fetch-pack.c:1129
+#: fetch-pack.c:1142
msgid "no common commits"
msgstr "ortak iÅŸleme yok"
-#: fetch-pack.c:1138 fetch-pack.c:1485 builtin/clone.c:1130
+#: fetch-pack.c:1151 fetch-pack.c:1506 builtin/clone.c:1166
msgid "source repository is shallow, reject to clone."
msgstr "kaynak depo sığ, klonlama için reddet."
-#: fetch-pack.c:1144 fetch-pack.c:1681
+#: fetch-pack.c:1157 fetch-pack.c:1705
msgid "git fetch-pack: fetch failed."
msgstr "git fetch-pack: Getirme başarısız."
-#: fetch-pack.c:1258
+#: fetch-pack.c:1271
#, c-format
msgid "mismatched algorithms: client %s; server %s"
msgstr "eÅŸleÅŸmeyen algoritmalar: Ä°stemci %s; sunucu %s"
-#: fetch-pack.c:1262
+#: fetch-pack.c:1275
#, c-format
msgid "the server does not support algorithm '%s'"
msgstr "sunucu '%s' algoritmasını desteklemiyor"
-#: fetch-pack.c:1295
+#: fetch-pack.c:1308
msgid "Server does not support shallow requests"
msgstr "Sunucu sığ istekleri desteklemiyor"
-#: fetch-pack.c:1302
+#: fetch-pack.c:1315
msgid "Server supports filter"
msgstr "Sunucu süzgeç destekliyor"
-#: fetch-pack.c:1345 fetch-pack.c:2063
+#: fetch-pack.c:1358 fetch-pack.c:2087
msgid "unable to write request to remote"
msgstr "uzak konuma istek yazılamıyor"
-#: fetch-pack.c:1363
+#: fetch-pack.c:1376
#, c-format
msgid "error reading section header '%s'"
msgstr "bölüm üstbilgisi '%s' okunurken hata"
-#: fetch-pack.c:1369
+#: fetch-pack.c:1382
#, c-format
msgid "expected '%s', received '%s'"
msgstr "'%s' bekleniyordu, '%s' alındı"
-#: fetch-pack.c:1403
+#: fetch-pack.c:1416
#, c-format
msgid "unexpected acknowledgment line: '%s'"
msgstr "beklenmedik alındı satırı: '%s'"
-#: fetch-pack.c:1408
+#: fetch-pack.c:1421
#, c-format
msgid "error processing acks: %d"
msgstr "alındılar işlenirken hata: %d"
-#: fetch-pack.c:1418
-msgid "expected packfile to be sent after 'ready'"
-msgstr "paket dosyasının 'ready'den sonra gönderilmesi gerekiyordu"
+#. TRANSLATORS: The parameter will be 'ready', a protocol
+#. keyword.
+#.
+#: fetch-pack.c:1435
+#, c-format
+msgid "expected packfile to be sent after '%s'"
+msgstr "paket dosyasının '%s' ögesinden sonra gönderilmesi bekleniyordu"
-#: fetch-pack.c:1420
-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"
+#. TRANSLATORS: The parameter will be 'ready', a protocol
+#. keyword.
+#.
+#: fetch-pack.c:1441
+#, c-format
+msgid "expected no other sections to be sent after no '%s'"
+msgstr "'%s' \"yok\" iken başka hiçbir bölümün gönderilmemesi bekleniyordu"
-#: fetch-pack.c:1461
+#: fetch-pack.c:1482
#, c-format
msgid "error processing shallow info: %d"
msgstr "sığ bilgi işlenirken hata: %d"
-#: fetch-pack.c:1510
+#: fetch-pack.c:1531
#, c-format
msgid "expected wanted-ref, got '%s'"
msgstr "wanted-ref bekleniyordu, '%s' alındı"
-#: fetch-pack.c:1515
+#: fetch-pack.c:1536
#, c-format
msgid "unexpected wanted-ref: '%s'"
msgstr "beklenmedik wanted-ref: '%s'"
-#: fetch-pack.c:1520
+#: fetch-pack.c:1541
#, c-format
msgid "error processing wanted refs: %d"
msgstr "aranan baÅŸvurular iÅŸlenirken hata: %d"
-#: fetch-pack.c:1550
+#: fetch-pack.c:1571
msgid "git fetch-pack: expected response end packet"
msgstr "git fetch-pack: yanıt sonu paketi bekleniyordu"
-#: fetch-pack.c:1959
+#: fetch-pack.c:1983
msgid "no matching remote head"
msgstr "eÅŸleÅŸen uzak dal ucu yok"
-#: fetch-pack.c:1982 builtin/clone.c:581
+#: fetch-pack.c:2006 builtin/clone.c:587
msgid "remote did not send all necessary objects"
msgstr "uzak konum gereken tüm nesneleri göndermedi"
-#: fetch-pack.c:2085
+#: fetch-pack.c:2109
msgid "unexpected 'ready' from remote"
msgstr "uzak konumdan beklenmedik 'ready'"
-#: fetch-pack.c:2108
+#: fetch-pack.c:2132
#, c-format
msgid "no such remote ref %s"
msgstr "böyle bir uzak başvuru yok: %s"
-#: fetch-pack.c:2111
+#: fetch-pack.c:2135
#, 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"
-#: gpg-interface.c:329 gpg-interface.c:457 gpg-interface.c:974
-#: gpg-interface.c:990
+#: fsmonitor-ipc.c:119
+#, c-format
+msgid "fsmonitor_ipc__send_query: invalid path '%s'"
+msgstr "fsmonitor_ipc__send_query: geçersiz yol '%s'"
+
+#: fsmonitor-ipc.c:125
+#, c-format
+msgid "fsmonitor_ipc__send_query: unspecified error on '%s'"
+msgstr "fsmonitor_ipc__send_query: '%s' üzerinde belirtilmemiş hata"
+
+#: fsmonitor-ipc.c:155
+msgid "fsmonitor--daemon is not running"
+msgstr "fsmonitor--daemon çalışmıyor"
+
+#: fsmonitor-ipc.c:164
+#, c-format
+msgid "could not send '%s' command to fsmonitor--daemon"
+msgstr "fsmonitor--daemon'a '%s' komutu gönderilemedi"
+
+#: gpg-interface.c:329 gpg-interface.c:456 gpg-interface.c:995
+#: gpg-interface.c:1011
msgid "could not create temporary file"
msgstr "geçici dosya oluşturulamadı"
-#: gpg-interface.c:332 gpg-interface.c:460
+#: gpg-interface.c:332 gpg-interface.c:459
#, c-format
msgid "failed writing detached signature to '%s'"
msgstr "şuna ayrık imza yazılamadı: '%s'"
-#: gpg-interface.c:451
+#: gpg-interface.c:450
msgid ""
"gpg.ssh.allowedSignersFile needs to be configured and exist for ssh "
"signature verification"
@@ -4370,7 +4493,7 @@ msgstr ""
"gpg.ssh.allowedSignersFile'ın ssh imza doğrulaması için yapılandırılması ve "
"var olması gerekiyor"
-#: gpg-interface.c:480
+#: gpg-interface.c:479
msgid ""
"ssh-keygen -Y find-principals/verify is needed for ssh signature "
"verification (available in openssh version 8.2p1+)"
@@ -4378,59 +4501,59 @@ msgstr ""
"ssh-keygen -Y find-principals/verify, ssh imza doğrulaması için gerekli "
"(openssh 8.21p1+ sürümünde mevcut)"
-#: gpg-interface.c:536
+#: gpg-interface.c:550
#, c-format
msgid "ssh signing revocation file configured but not found: %s"
msgstr "ssh imza geri alım dosyası yapılandırıldı; ancak bulunamadı: %s"
-#: gpg-interface.c:624
+#: gpg-interface.c:638
#, c-format
msgid "bad/incompatible signature '%s'"
msgstr "hatalı/uyumsuz imza '%s'"
-#: gpg-interface.c:801 gpg-interface.c:806
+#: gpg-interface.c:815 gpg-interface.c:820
#, c-format
msgid "failed to get the ssh fingerprint for key '%s'"
msgstr "'%s' anahtarı için ssh parmak izi alınamadı"
-#: gpg-interface.c:829
+#: gpg-interface.c:843
msgid ""
"either user.signingkey or gpg.ssh.defaultKeyCommand needs to be configured"
msgstr ""
"ya user.signingkey ya da gpg.ssh.defaultKeyCommand'in yapılandırılması "
"gerekiyor"
-#: gpg-interface.c:851
+#: gpg-interface.c:865
#, c-format
msgid "gpg.ssh.defaultKeyCommand succeeded but returned no keys: %s %s"
msgstr ""
"gpg.ssh.defaultKeyCommand başarılı oldu; ancak herhangi bir anahtar "
"döndürmedi: %s %s"
-#: gpg-interface.c:857
+#: gpg-interface.c:871
#, c-format
msgid "gpg.ssh.defaultKeyCommand failed: %s %s"
msgstr "gpg.ssh.defaultKeyCommand başarısız oldu: %s %s"
-#: gpg-interface.c:945
+#: gpg-interface.c:966
msgid "gpg failed to sign the data"
msgstr "gpg veriyi imzalayamadı"
-#: gpg-interface.c:967
+#: gpg-interface.c:988
msgid "user.signingkey needs to be set for ssh signing"
msgstr "user.signingkey'in ssh imzalaması için ayarlanması gerekiyor"
-#: gpg-interface.c:978
+#: gpg-interface.c:999
#, c-format
msgid "failed writing ssh signing key to '%s'"
msgstr "ssh imzalama anahtarı '%s' konumuna yazılamadı"
-#: gpg-interface.c:996
+#: gpg-interface.c:1017
#, c-format
msgid "failed writing ssh signing key buffer to '%s'"
msgstr "ssh imzalama anahtarı arabelleği '%s' konumuna yazılamadı"
-#: gpg-interface.c:1014
+#: gpg-interface.c:1035
msgid ""
"ssh-keygen -Y sign is needed for ssh signing (available in openssh version "
"8.2p1+)"
@@ -4438,7 +4561,7 @@ msgstr ""
"ssh-keygen -Y imzası, ssh imzalaması için gerekli (openssh 8.21p1+ sürümünde "
"mevcut)"
-#: gpg-interface.c:1026
+#: gpg-interface.c:1047
#, c-format
msgid "failed reading ssh signing data buffer from '%s'"
msgstr "ssh imzalama verisi arabelleği '%s' konumundan okunamadı"
@@ -4448,7 +4571,7 @@ msgstr "ssh imzalama verisi arabelleği '%s' konumundan okunamadı"
msgid "ignored invalid color '%.*s' in log.graphColors"
msgstr "log.graphColors içindeki '%.*s' geçersiz renk yok sayıldı"
-#: grep.c:531
+#: grep.c:446
msgid ""
"given pattern contains NULL byte (via -f <file>). This is only supported "
"with -P under PCRE v2"
@@ -4456,110 +4579,110 @@ msgstr ""
"verilen dizgi NULL baytı içeriyor (-f <dosya> aracılığıyla). Bu yalnızca "
"PCRE v2 altında -P ile desteklenir"
-#: grep.c:1942
+#: grep.c:1859
#, c-format
msgid "'%s': unable to read %s"
msgstr "'%s': %s okunamıyor"
-#: grep.c:1959 setup.c:177 builtin/clone.c:302 builtin/diff.c:90
+#: grep.c:1876 setup.c:178 builtin/clone.c:308 builtin/diff.c:90
#: builtin/rm.c:136
#, c-format
msgid "failed to stat '%s'"
msgstr "'%s' dosyasının bilgileri alınamadı"
-#: grep.c:1970
+#: grep.c:1887
#, c-format
msgid "'%s': short read"
msgstr "'%s': kısa okuma"
-#: help.c:24
+#: help.c:25
msgid "start a working area (see also: git help tutorial)"
msgstr "bir çalışma alanı başlatın (ayrıca bkz: git help tutorial)"
-#: help.c:25
+#: help.c:26
msgid "work on the current change (see also: git help everyday)"
msgstr "güncel değişiklikler üzerinde çalışın (ayrıca bkz: git help everyday)"
-#: help.c:26
+#: help.c:27
msgid "examine the history and state (see also: git help revisions)"
msgstr ""
"geçmişi ve geçerli durumu gözden geçirin (ayrıca bkz: git help revisions)"
-#: help.c:27
+#: help.c:28
msgid "grow, mark and tweak your common history"
msgstr "ortak geçmişinizi büyütün, imleyin ve geliştirin"
-#: help.c:28
+#: help.c:29
msgid "collaborate (see also: git help workflows)"
msgstr "birlikte çalışın (ayrıca bkz: git help workflows)"
-#: help.c:32
+#: help.c:33
msgid "Main Porcelain Commands"
msgstr "Ana Komutlar"
-#: help.c:33
+#: help.c:34
msgid "Ancillary Commands / Manipulators"
msgstr "Yan Komutlar / Yönlendiriciler"
-#: help.c:34
+#: help.c:35
msgid "Ancillary Commands / Interrogators"
msgstr "Yan Komutlar / Sorgucular"
-#: help.c:35
+#: help.c:36
msgid "Interacting with Others"
msgstr "Başkaları ile Etkileşim"
-#: help.c:36
+#: help.c:37
msgid "Low-level Commands / Manipulators"
msgstr "Düşük Düzeyli Komutlar / Yönlendiriciler"
-#: help.c:37
+#: help.c:38
msgid "Low-level Commands / Interrogators"
msgstr "Düşük Düzeyli Komutlar / Sorgucular"
-#: help.c:38
+#: help.c:39
msgid "Low-level Commands / Syncing Repositories"
msgstr "Düşük Düzeyli Komutlar / Depo Eşitleme"
-#: help.c:39
+#: help.c:40
msgid "Low-level Commands / Internal Helpers"
msgstr "Düşük Düzeyli Komutlar / İç Yardımcılar"
-#: help.c:313
+#: help.c:316
#, c-format
msgid "available git commands in '%s'"
msgstr "'%s' içindeki kullanılabilir git komutları"
-#: help.c:320
+#: help.c:323
msgid "git commands available from elsewhere on your $PATH"
msgstr "$PATH içindeki başka yerlerden kullanılabilen git komutları"
-#: help.c:329
+#: help.c:332
msgid "These are common Git commands used in various situations:"
msgstr "En çok kullanılan temel Git komutlarının bir listesi aşağıdadır:"
-#: help.c:378 git.c:100
+#: help.c:382 git.c:100
#, c-format
msgid "unsupported command listing type '%s'"
msgstr "desteklenmeyen komut listeleme türü '%s'"
-#: help.c:418
+#: help.c:422
msgid "The Git concept guides are:"
msgstr "Git konsept kılavuzları şunlardır:"
-#: help.c:442
-msgid "See 'git help <command>' to read about a specific subcommand"
-msgstr "Belirli bir altkomut üzerine okumak için 'git help <komut>' kullanın"
-
-#: help.c:447
+#: help.c:446
msgid "External commands"
msgstr "Dış komutlar"
-#: help.c:462
+#: help.c:468
msgid "Command aliases"
msgstr "Komut armaları"
-#: help.c:543
+#: help.c:486
+msgid "See 'git help <command>' to read about a specific subcommand"
+msgstr "Belirli bir altkomut üzerine okumak için 'git help <komut>' kullanın"
+
+#: help.c:563
#, c-format
msgid ""
"'%s' appears to be a git command, but we were not\n"
@@ -4568,37 +4691,37 @@ msgstr ""
"'%s' bir git komutu gibi görünüyor; ancak biz onu\n"
"çalıştıramadık. git-%s bozuk olabilir mi?"
-#: help.c:565 help.c:662
+#: help.c:585 help.c:682
#, c-format
msgid "git: '%s' is not a git command. See 'git --help'."
msgstr "git: '%s' bir git komutu değil. Yardım için: 'git --help'."
-#: help.c:613
+#: help.c:633
msgid "Uh oh. Your system reports no Git commands at all."
msgstr "Tüh. Sisteminiz hiçbir Git komutu bildirmiyor."
-#: help.c:635
+#: help.c:655
#, c-format
msgid "WARNING: You called a Git command named '%s', which does not exist."
msgstr ""
"UYARI: '%s' adında bir Git komutunu çağırdınız; ancak böyle bir komut yok."
-#: help.c:640
+#: help.c:660
#, c-format
msgid "Continuing under the assumption that you meant '%s'."
msgstr "'%s' demek istediğiniz varsayılarak sürdürülüyor."
-#: help.c:646
+#: help.c:666
#, c-format
msgid "Run '%s' instead [y/N]? "
msgstr "Bunun yerine '%s' çalıştırılsın mı? (y/N)? "
-#: help.c:654
+#: help.c:674
#, c-format
msgid "Continuing in %0.1f seconds, assuming that you meant '%s'."
msgstr "%0.1f saniye içinde sürdürülüyor, '%s' demek istediğiniz varsayılacak."
-#: help.c:666
+#: help.c:686
msgid ""
"\n"
"The most similar command is"
@@ -4612,16 +4735,16 @@ msgstr[1] ""
"\n"
"Buna en yakın komutlar:"
-#: help.c:706
+#: help.c:729
msgid "git version [<options>]"
msgstr "git version [<seçenekler>]"
-#: help.c:761
+#: help.c:784
#, c-format
msgid "%s: %s - %s"
msgstr "%s: %s - %s"
-#: help.c:765
+#: help.c:788
msgid ""
"\n"
"Did you mean this?"
@@ -4635,7 +4758,7 @@ msgstr[1] ""
"\n"
"Åžunlardan birini mi demek istediniz?"
-#: hook.c:27
+#: hook.c:28
#, c-format
msgid ""
"The '%s' hook was ignored because it's not set as executable.\n"
@@ -4644,15 +4767,20 @@ msgstr ""
"'%s' kancası yok sayıldı; çünkü bir çalıştırılabilir olarak ayarlanmamış.\n"
"Bu uyarıyı 'git config advice.ignoredHook false' ile kapatabilirsiniz."
-#: ident.c:353
+#: hook.c:87
+#, c-format
+msgid "Couldn't start hook '%s'\n"
+msgstr "'%s' kancası başlatılamadı\n"
+
+#: ident.c:354
msgid "Author identity unknown\n"
msgstr "Yazar kimliÄŸi bilinmiyor\n"
-#: ident.c:356
+#: ident.c:357
msgid "Committer identity unknown\n"
msgstr "Ä°ÅŸleyici kimliÄŸi bilinmiyor\n"
-#: ident.c:362
+#: ident.c:363
msgid ""
"\n"
"*** Please tell me who you are.\n"
@@ -4679,71 +4807,71 @@ msgstr ""
"değişkenini kullanmayın.\n"
"\n"
-#: ident.c:397
+#: ident.c:398
msgid "no email was given and auto-detection is disabled"
msgstr "bir e-posta verilmedi ve kendiliğinden algılama devre dışı"
-#: ident.c:402
+#: ident.c:403
#, c-format
msgid "unable to auto-detect email address (got '%s')"
msgstr "e-posta adresi kendiliğinden algılanamıyor ('%s' alındı)"
-#: ident.c:419
+#: ident.c:420
msgid "no name was given and auto-detection is disabled"
msgstr "bir ad verilmedi ve kendiliğinden algılama devre dışı"
-#: ident.c:425
+#: ident.c:426
#, c-format
msgid "unable to auto-detect name (got '%s')"
msgstr "ad kendiliğinden algılanamıyor ('%s' alındı)"
-#: ident.c:433
+#: ident.c:434
#, c-format
msgid "empty ident name (for <%s>) not allowed"
msgstr "boş tanımlayıcı adına (<%s> için) izin verilmiyor"
-#: ident.c:439
+#: ident.c:440
#, c-format
msgid "name consists only of disallowed characters: %s"
msgstr "ad yalnızca izin verilmeyen karakterlerden oluşuyor: %s"
-#: ident.c:454 builtin/commit.c:648
+#: ident.c:455 builtin/commit.c:649
#, c-format
msgid "invalid date format: %s"
msgstr "geçersiz tarih biçimi: %s"
-#: list-objects-filter-options.c:83
+#: list-objects-filter-options.c:68
msgid "expected 'tree:<depth>'"
msgstr "'tree:<derinlik>' bekleniyordu"
-#: list-objects-filter-options.c:98
+#: list-objects-filter-options.c:83
msgid "sparse:path filters support has been dropped"
msgstr "sparse:path süzgeçleri desteği artık yok"
-#: list-objects-filter-options.c:105
+#: list-objects-filter-options.c:90
#, c-format
msgid "'%s' for 'object:type=<type>' is not a valid object type"
msgstr "'object:type=<tür>' için '%s' geçerli bir nesne türü değil"
-#: list-objects-filter-options.c:124
+#: list-objects-filter-options.c:109
#, c-format
msgid "invalid filter-spec '%s'"
msgstr "geçersiz filter-spec '%s'"
-#: list-objects-filter-options.c:140
+#: list-objects-filter-options.c:125
#, c-format
msgid "must escape char in sub-filter-spec: '%c'"
msgstr "sub-filter-spec içinde kaçış karakteri olmalı: '%c'"
-#: list-objects-filter-options.c:182
+#: list-objects-filter-options.c:167
msgid "expected something after combine:"
msgstr "birlikte kullanımdan sonra bir şeyler bekleniyordu:"
-#: list-objects-filter-options.c:264
+#: list-objects-filter-options.c:249
msgid "multiple filter-specs cannot be combined"
msgstr "çoklu filter-specs birlikte kullanılamaz"
-#: list-objects-filter-options.c:376
+#: list-objects-filter-options.c:365
msgid "unable to upgrade repository format to support partial clone"
msgstr "depo biçimi kısımsal klonları desteklemesi için yükseltilemiyor"
@@ -4757,19 +4885,19 @@ msgstr "'%s' içindeki aralıklı ikili nesneye erişilemiyor"
msgid "unable to parse sparse filter data in %s"
msgstr "%s içindeki aralıklı süzgeç verisi ayrıştırılamıyor"
-#: list-objects.c:127
+#: list-objects.c:144
#, c-format
msgid "entry '%s' in tree %s has tree mode, but is not a tree"
msgstr "'%s' girdisi (%s ağacında) ağaç kipine iye; ancak bir ağaç değil"
-#: list-objects.c:140
+#: list-objects.c:157
#, c-format
msgid "entry '%s' in tree %s has blob mode, but is not a blob"
msgstr ""
-"'%s' girdisi (%s ağacında) ikili nesne kipine iye; ancak bir ikili geniş "
-"nesne deÄŸil"
+"'%s' girdisi (%s ağacında) ikili nesne kipine iye; ancak bir ikili nesne "
+"deÄŸil"
-#: list-objects.c:398
+#: list-objects.c:415
#, c-format
msgid "unable to load root tree for commit %s"
msgstr "%s işlemesi için kök ağacı yüklenemiyor"
@@ -4798,17 +4926,12 @@ msgstr ""
msgid "Unable to create '%s.lock': %s"
msgstr "'%s.lock' oluşturulamıyor: %s"
-#: ls-refs.c:37
-#, c-format
-msgid "invalid value '%s' for lsrefs.unborn"
-msgstr "lsrefs.unborn için '%s' geçersiz değeri"
-
-#: ls-refs.c:174
+#: ls-refs.c:175
#, c-format
msgid "unexpected line: '%s'"
msgstr "beklenmedik satır: '%s'"
-#: ls-refs.c:178
+#: ls-refs.c:179
msgid "expected flush after ls-refs arguments"
msgstr "ls-refs argümanlarından sonra floş bekleniyordu"
@@ -4816,37 +4939,37 @@ msgstr "ls-refs argümanlarından sonra floş bekleniyordu"
msgid "quoted CRLF detected"
msgstr "alıntılanmış CRLF algılandı"
-#: mailinfo.c:1254 builtin/am.c:184 builtin/mailinfo.c:46
+#: mailinfo.c:1254 builtin/am.c:185 builtin/mailinfo.c:46
#, c-format
msgid "bad action '%s' for '%s'"
msgstr "hatalı eylem '%s', '%s' için"
-#: merge-ort.c:1584 merge-recursive.c:1211
+#: merge-ort.c:1630 merge-recursive.c:1214
#, c-format
msgid "Failed to merge submodule %s (not checked out)"
msgstr "%s altmodülü birleştirilemedi (çıkış yapılmadı)"
-#: merge-ort.c:1593 merge-recursive.c:1218
+#: merge-ort.c:1639 merge-recursive.c:1221
#, c-format
msgid "Failed to merge submodule %s (commits not present)"
msgstr "%s altmodülü birleştirilemedi (işlemeler mevcut değil)"
-#: merge-ort.c:1602 merge-recursive.c:1225
+#: merge-ort.c:1648 merge-recursive.c:1228
#, c-format
msgid "Failed to merge submodule %s (commits don't follow merge-base)"
msgstr "%s altmodülü birleştirilemedi (işlemeler merge-base'i takip etmiyor)"
-#: merge-ort.c:1612 merge-ort.c:1620
+#: merge-ort.c:1658 merge-ort.c:1666
#, c-format
msgid "Note: Fast-forwarding submodule %s to %s"
msgstr "Not: %s altmodülü %s yönüne ileri sarılıyor"
-#: merge-ort.c:1642
+#: merge-ort.c:1688
#, c-format
msgid "Failed to merge submodule %s"
-msgstr "'%s' altmodülünü birleştirilemedi"
+msgstr "'%s' altmodülü birleştirilemedi"
-#: merge-ort.c:1649
+#: merge-ort.c:1695
#, c-format
msgid ""
"Failed to merge submodule %s, but a possible merge resolution exists:\n"
@@ -4855,7 +4978,7 @@ msgstr ""
"%s altmodülü birleştirilemedi; ancak olası bir birleştirme çözümü mevcut:\n"
"%s\n"
-#: merge-ort.c:1653 merge-recursive.c:1281
+#: merge-ort.c:1699 merge-recursive.c:1284
#, c-format
msgid ""
"If this is correct simply add it to the index for example\n"
@@ -4871,7 +4994,7 @@ msgstr ""
"\n"
"komutu bu öneriyi kabul edecektir.\n"
-#: merge-ort.c:1666
+#: merge-ort.c:1712
#, c-format
msgid ""
"Failed to merge submodule %s, but multiple possible merges exist:\n"
@@ -4881,21 +5004,21 @@ msgstr ""
"mevcut:\n"
"%s"
-#: merge-ort.c:1887 merge-recursive.c:1372
+#: merge-ort.c:1937 merge-recursive.c:1375
msgid "Failed to execute internal merge"
msgstr "İç birleştirme çalıştırılamadı"
-#: merge-ort.c:1892 merge-recursive.c:1377
+#: merge-ort.c:1942 merge-recursive.c:1380
#, c-format
msgid "Unable to add %s to database"
msgstr "%s veritabanına eklenemedi"
-#: merge-ort.c:1899 merge-recursive.c:1410
+#: merge-ort.c:1949 merge-recursive.c:1413
#, c-format
msgid "Auto-merging %s"
msgstr "%s kendiliÄŸinden birleÅŸtiriliyor"
-#: merge-ort.c:2038 merge-recursive.c:2132
+#: merge-ort.c:2088 merge-recursive.c:2135
#, c-format
msgid ""
"CONFLICT (implicit dir rename): Existing file/dir at %s in the way of "
@@ -4905,7 +5028,7 @@ msgstr ""
"örtülü yeniden adlandırmanın aşağıdaki yolları oraya koymasına engel oluyor: "
"%s."
-#: merge-ort.c:2048 merge-recursive.c:2142
+#: merge-ort.c:2098 merge-recursive.c:2145
#, c-format
msgid ""
"CONFLICT (implicit dir rename): Cannot map more than one path to %s; "
@@ -4915,7 +5038,7 @@ msgstr ""
"eşlemlenemiyor; örtülü dizin yeniden adlandırmaları aşağıdaki yolları oraya "
"koymayı denedi: %s."
-#: merge-ort.c:2106
+#: merge-ort.c:2156
#, c-format
msgid ""
"CONFLICT (directory rename split): Unclear where to rename %s to; it was "
@@ -4926,7 +5049,7 @@ msgstr ""
"adlandırılacağı belirsiz; herhangi bir hedef dosyaların çoğunu almadan "
"birden çok başka dizine yeniden adlandırılmıştı."
-#: merge-ort.c:2260 merge-recursive.c:2478
+#: merge-ort.c:2310 merge-recursive.c:2481
#, c-format
msgid ""
"WARNING: Avoiding applying %s -> %s rename to %s, because %s itself was "
@@ -4935,7 +5058,7 @@ msgstr ""
"UYARI: %s -> %s yeniden adlandırmasını %s ögesine uygulamadan kaçınılıyor, "
"çünkü %s ögesinin kendisi yeniden adlandırıldı."
-#: merge-ort.c:2400 merge-recursive.c:3261
+#: merge-ort.c:2450 merge-recursive.c:3264
#, c-format
msgid ""
"Path updated: %s added in %s inside a directory that was renamed in %s; "
@@ -4944,7 +5067,7 @@ msgstr ""
"Yol güncellendi: %s, (%s içinde eklenen) %s içinde yeniden adlandırılan bir "
"dizinde; onu %s konumuna taşıdı."
-#: merge-ort.c:2407 merge-recursive.c:3268
+#: merge-ort.c:2457 merge-recursive.c:3271
#, c-format
msgid ""
"Path updated: %s renamed to %s in %s, inside a directory that was renamed in "
@@ -4953,7 +5076,7 @@ msgstr ""
"Yol güncellendi: %s, %s olarak yeniden adlandırıldı (%s içinde), %s içinde "
"yeniden adlandırılan bir dizinde; onu %s konumuna taşıdı."
-#: merge-ort.c:2420 merge-recursive.c:3264
+#: merge-ort.c:2470 merge-recursive.c:3267
#, c-format
msgid ""
"CONFLICT (file location): %s added in %s inside a directory that was renamed "
@@ -4962,7 +5085,7 @@ msgstr ""
"ÇAKIŞMA (dosya konumu): %s, (%s içinde eklenen) %s içinde yeniden "
"adlandırılan bir dizinde, belki de %s konumuna taşınmalı."
-#: merge-ort.c:2428 merge-recursive.c:3271
+#: merge-ort.c:2478 merge-recursive.c:3274
#, c-format
msgid ""
"CONFLICT (file location): %s renamed to %s in %s, inside a directory that "
@@ -4971,14 +5094,14 @@ msgstr ""
"ÇAKIŞMA (dosya konumu): %s, %s olarak yeniden adlandırıldı (%s içinde), %s "
"içinde yeniden adlandırılan bir dizinde, belki de %s konumuna taşınmalı."
-#: merge-ort.c:2584
+#: merge-ort.c:2634
#, c-format
msgid "CONFLICT (rename/rename): %s renamed to %s in %s and to %s in %s."
msgstr ""
"ÇAKIŞMA (y. adlandır/y. adlandır): %s->%s olarak adlandırıldı (%s içinde) ve "
"ek olarak %s olarak da adlandırıldı (%s içinde)."
-#: merge-ort.c:2679
+#: merge-ort.c:2729
#, c-format
msgid ""
"CONFLICT (rename involved in collision): rename of %s -> %s has content "
@@ -4987,26 +5110,26 @@ msgid ""
msgstr ""
"ÇAKIŞMA (yeniden adlandırma çarpışması): %s -> %s yeniden adlandırmasının "
"içerik çakışmaları var ve başka bir yolla çarpışıyor; bu iç içe geçmiş "
-"çakışmaimleyicilerine neden olabilir."
+"çakışma imleyicilerine neden olabilir."
-#: merge-ort.c:2698 merge-ort.c:2722
+#: merge-ort.c:2748 merge-ort.c:2772
#, c-format
msgid "CONFLICT (rename/delete): %s renamed to %s in %s, but deleted in %s."
msgstr ""
"ÇAKIŞMA (yeniden adlandır/sil): %s->%s olarak adlandırıldı (%s içinde); "
"ancak %s içinde silindi."
-#: merge-ort.c:3212 merge-recursive.c:3022
+#: merge-ort.c:3261 merge-recursive.c:3025
#, c-format
msgid "cannot read object %s"
msgstr "%s nesnesi okunamıyor"
-#: merge-ort.c:3215 merge-recursive.c:3025
+#: merge-ort.c:3264 merge-recursive.c:3028
#, c-format
msgid "object %s is not a blob"
msgstr "%s nesnesi ikili bir nesne deÄŸil"
-#: merge-ort.c:3644
+#: merge-ort.c:3693
#, c-format
msgid ""
"CONFLICT (file/directory): directory in the way of %s from %s; moving it to "
@@ -5015,7 +5138,7 @@ msgstr ""
"ÇAKIŞMA (dosya/dizin): Dizin, şuradan %s yolunda: %s; bunun yerine %s "
"konumuna taşınıyor."
-#: merge-ort.c:3721
+#: merge-ort.c:3770
#, c-format
msgid ""
"CONFLICT (distinct types): %s had different types on each side; renamed both "
@@ -5025,7 +5148,7 @@ msgstr ""
"ikisi de yeniden adlandırıldı; böylelikle başka bir yerde kayıtları "
"yazılabilir."
-#: merge-ort.c:3728
+#: merge-ort.c:3777
#, c-format
msgid ""
"CONFLICT (distinct types): %s had different types on each side; renamed one "
@@ -5035,24 +5158,24 @@ msgstr ""
"bir tanesi yeniden adlandırıldı; böylelikle her birinin başka bir yerde "
"kayıtları yazılabilir."
-#: merge-ort.c:3819 merge-recursive.c:3101
+#: merge-ort.c:3866 merge-recursive.c:3104
msgid "content"
msgstr "içerik"
-#: merge-ort.c:3821 merge-recursive.c:3105
+#: merge-ort.c:3868 merge-recursive.c:3108
msgid "add/add"
msgstr "ekle/ekle"
-#: merge-ort.c:3823 merge-recursive.c:3150
+#: merge-ort.c:3870 merge-recursive.c:3153
msgid "submodule"
msgstr "altmodül"
-#: merge-ort.c:3825 merge-recursive.c:3151
+#: merge-ort.c:3872 merge-recursive.c:3154
#, c-format
msgid "CONFLICT (%s): Merge conflict in %s"
msgstr "ÇAKIŞMA (%s): %s içinde birleştirme çakışması"
-#: merge-ort.c:3869
+#: merge-ort.c:3916
#, c-format
msgid ""
"CONFLICT (modify/delete): %s deleted in %s and modified in %s. Version %s "
@@ -5061,7 +5184,7 @@ msgstr ""
"ÇAKIŞMA (değiştir/sil): %s silindi (%s içinde) ve %s içinde değiştirildi. %s "
"sürümü (şunun: %s) ağaçta bırakıldı."
-#: merge-ort.c:4165
+#: merge-ort.c:4212
#, c-format
msgid ""
"Note: %s not up to date and in way of checking out conflicted version; old "
@@ -5073,12 +5196,12 @@ msgstr ""
#. TRANSLATORS: The %s arguments are: 1) tree hash of a merge
#. base, and 2-3) the trees for the two trees we're merging.
#.
-#: merge-ort.c:4534
+#: merge-ort.c:4586
#, c-format
msgid "collecting merge info failed for trees %s, %s, %s"
msgstr "şu ağaçlar için birleştirme bilgisi toplama başarısız: %s, %s, %s"
-#: merge-ort-wrappers.c:13 merge-recursive.c:3716
+#: merge-ort-wrappers.c:13 merge-recursive.c:3723
#, c-format
msgid ""
"Your local changes to the following files would be overwritten by merge:\n"
@@ -5088,7 +5211,7 @@ msgstr ""
"yazılacak:\n"
"\t%s"
-#: merge-ort-wrappers.c:33 merge-recursive.c:3482 builtin/merge.c:405
+#: merge-ort-wrappers.c:33 merge-recursive.c:3485 builtin/merge.c:405
msgid "Already up to date."
msgstr "Tümü güncel."
@@ -5126,7 +5249,7 @@ msgstr ": bir D/F çakışması olabilir mi?"
msgid "refusing to lose untracked file at '%s'"
msgstr "'%s' konumundaki izlenmeyen dosyayı kaybetme reddediliyor"
-#: merge-recursive.c:956 builtin/cat-file.c:41
+#: merge-recursive.c:956 builtin/cat-file.c:47
#, c-format
msgid "cannot read object %s '%s'"
msgstr "%s '%s' nesnesi okunamıyor"
@@ -5151,44 +5274,44 @@ msgstr "'%s' için sembolik bağ oluşturulamadı: %s"
msgid "do not know what to do with %06o %s '%s'"
msgstr "şununla ne yapılacağı bilinmiyor: %06o %s '%s'"
-#: merge-recursive.c:1233 merge-recursive.c:1246
+#: merge-recursive.c:1236 merge-recursive.c:1249
#, c-format
msgid "Fast-forwarding submodule %s to the following commit:"
msgstr "%s altmodülü şu işlemeye ileri sarılıyor:"
-#: merge-recursive.c:1236 merge-recursive.c:1249
+#: merge-recursive.c:1239 merge-recursive.c:1252
#, c-format
msgid "Fast-forwarding submodule %s"
msgstr "%s altmodülü ileri sarılıyor"
-#: merge-recursive.c:1273
+#: merge-recursive.c:1276
#, c-format
msgid "Failed to merge submodule %s (merge following commits not found)"
msgstr ""
"%s altmodülü birleştirilemedi (işlemeleri takip eden birleştirme bulunamadı)"
-#: merge-recursive.c:1277
+#: merge-recursive.c:1280
#, c-format
msgid "Failed to merge submodule %s (not fast-forward)"
msgstr "%s altmodülü birleştirilemedi (ileri sarım değil)"
-#: merge-recursive.c:1278
+#: merge-recursive.c:1281
msgid "Found a possible merge resolution for the submodule:\n"
msgstr "Şu altmodül için olası bir birleştirme çözümü bulundu:\n"
-#: merge-recursive.c:1290
+#: merge-recursive.c:1293
#, c-format
msgid "Failed to merge submodule %s (multiple merges found)"
msgstr "%s altmodülü birleştirilemedi (birden çok birleştirme bulundu)"
-#: merge-recursive.c:1434
+#: merge-recursive.c:1437
#, c-format
msgid "Error: Refusing to lose untracked file at %s; writing to %s instead."
msgstr ""
"Hata: %s konumundaki izlenmeyen dosyayı kaybetme reddediliyor, bunun yerine "
"%s konumuna yazılacak."
-#: merge-recursive.c:1506
+#: merge-recursive.c:1509
#, c-format
msgid ""
"CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left "
@@ -5197,7 +5320,7 @@ msgstr ""
"ÇAKIŞMA (%s/silme): %s silindi (%s içinde) ve %s (%s içinde). %s (%s) sürümü "
"ağaçta bırakıldı."
-#: merge-recursive.c:1511
+#: merge-recursive.c:1514
#, c-format
msgid ""
"CONFLICT (%s/delete): %s deleted in %s and %s to %s in %s. Version %s of %s "
@@ -5206,7 +5329,7 @@ msgstr ""
"ÇAKIŞMA (%s/silme): %s silindi (%s içinde) ve %s şuraya: %s (%s içinde). %s "
"(%s) sürümü ağaçta bırakıldı."
-#: merge-recursive.c:1518
+#: merge-recursive.c:1521
#, c-format
msgid ""
"CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left "
@@ -5215,7 +5338,7 @@ msgstr ""
"ÇAKIŞMA (%s/silme): %s silindi (%s içinde) ve %s (%s içinde). %s (%s) sürümü "
"ağaçta %s konumunda bırakıldı."
-#: merge-recursive.c:1523
+#: merge-recursive.c:1526
#, c-format
msgid ""
"CONFLICT (%s/delete): %s deleted in %s and %s to %s in %s. Version %s of %s "
@@ -5224,45 +5347,45 @@ msgstr ""
"ÇAKIŞMA (%s/silme): %s silindi (%s içinde) ve %s şuraya: %s (%s içinde). %s "
"(%s) sürümü ağaçta %s konumunda bırakıldı."
-#: merge-recursive.c:1558
+#: merge-recursive.c:1561
msgid "rename"
msgstr "yeniden adlandır"
-#: merge-recursive.c:1558
+#: merge-recursive.c:1561
msgid "renamed"
msgstr "yeniden adlandırıldı"
-#: merge-recursive.c:1609 merge-recursive.c:2515 merge-recursive.c:3178
+#: merge-recursive.c:1612 merge-recursive.c:2518 merge-recursive.c:3181
#, c-format
msgid "Refusing to lose dirty file at %s"
msgstr "%s konumundaki kirli dosyayı kaybetme reddediliyor"
-#: merge-recursive.c:1619
+#: merge-recursive.c:1622
#, c-format
msgid "Refusing to lose untracked file at %s, even though it's in the way."
msgstr ""
"Engel olduğu halde %s konumundaki izlenmeyen dosyayı kaybetme reddediliyor."
-#: merge-recursive.c:1677
+#: merge-recursive.c:1680
#, c-format
msgid "CONFLICT (rename/add): Rename %s->%s in %s. Added %s in %s"
msgstr ""
"ÇAKIŞMA (yeniden adlandır/ekle): %s->%s olarak adlandırıldı (%s içinde). %s "
"eklendi (%s içinde)."
-#: merge-recursive.c:1708
+#: merge-recursive.c:1711
#, c-format
msgid "%s is a directory in %s adding as %s instead"
msgstr "%s bir dizin (%s içinde), bunun yerine %s olarak ekleniyor"
-#: merge-recursive.c:1713
+#: merge-recursive.c:1716
#, c-format
msgid "Refusing to lose untracked file at %s; adding as %s instead"
msgstr ""
"%s konumundaki izlenmeyen dosyayı kaybetme reddediliyor, bunun yerine %s "
"olarak ekleniyor"
-#: merge-recursive.c:1740
+#: merge-recursive.c:1743
#, c-format
msgid ""
"CONFLICT (rename/rename): Rename \"%s\"->\"%s\" in branch \"%s\" rename \"%s"
@@ -5271,18 +5394,18 @@ msgstr ""
"ÇAKIŞMA (y. adlandır/y. adlandır): \"%s\"->\"%s\" olarak adlandır (\"%s\" "
"dalında), \"%s\"->\"%s\" olarak adlandır (\"%s\"%s içinde)"
-#: merge-recursive.c:1745
+#: merge-recursive.c:1748
msgid " (left unresolved)"
msgstr " (çözülmeden bırakıldı)"
-#: merge-recursive.c:1837
+#: merge-recursive.c:1840
#, c-format
msgid "CONFLICT (rename/rename): Rename %s->%s in %s. Rename %s->%s in %s"
msgstr ""
"ÇAKIŞMA (y. adlandır/y. adlandır): %s->%s olarak adlandır (%s içinde). %s->"
"%s olarak adlandır (%s içinde)"
-#: merge-recursive.c:2100
+#: merge-recursive.c:2103
#, c-format
msgid ""
"CONFLICT (directory rename split): Unclear where to place %s because "
@@ -5293,7 +5416,7 @@ msgstr ""
"yerleştirileceği belirsiz; çünkü %s dizini birden çok başka dizine yeniden "
"adlandırılırken hiçbir hedef dosyaların büyük çoğunluğunu almadı."
-#: merge-recursive.c:2234
+#: merge-recursive.c:2237
#, c-format
msgid ""
"CONFLICT (rename/rename): Rename directory %s->%s in %s. Rename directory %s-"
@@ -5302,79 +5425,79 @@ msgstr ""
"ÇAKIŞMA (y. adlandır/y. adlandır): Dizini %s->%s olarak adlandır (%s "
"içinde). Dizini %s->%s olarak adlandır (%s içinde)."
-#: merge-recursive.c:3089
+#: merge-recursive.c:3092
msgid "modify"
msgstr "deÄŸiÅŸtir"
-#: merge-recursive.c:3089
+#: merge-recursive.c:3092
msgid "modified"
msgstr "deÄŸiÅŸtirilmiÅŸ"
-#: merge-recursive.c:3128
+#: merge-recursive.c:3131
#, c-format
msgid "Skipped %s (merged same as existing)"
msgstr "%s atlandı (mevcut ile aynı biçimde birleştirildi)"
-#: merge-recursive.c:3181
+#: merge-recursive.c:3184
#, c-format
msgid "Adding as %s instead"
msgstr "Bunun yerine %s olarak ekleniyor"
-#: merge-recursive.c:3385
+#: merge-recursive.c:3388
#, c-format
msgid "Removing %s"
msgstr "%s kaldırılıyor"
-#: merge-recursive.c:3408
+#: merge-recursive.c:3411
msgid "file/directory"
msgstr "dosya/dizin"
-#: merge-recursive.c:3413
+#: merge-recursive.c:3416
msgid "directory/file"
msgstr "dizin/dosya"
-#: merge-recursive.c:3420
+#: merge-recursive.c:3423
#, c-format
msgid "CONFLICT (%s): There is a directory with name %s in %s. Adding %s as %s"
msgstr ""
"ÇAKIŞMA (%s): %s adıyla bir dizin var (%s içinde). %s, %s olarak ekleniyor."
-#: merge-recursive.c:3429
+#: merge-recursive.c:3432
#, c-format
msgid "Adding %s"
msgstr "%s ekleniyor"
-#: merge-recursive.c:3438
+#: merge-recursive.c:3441
#, c-format
msgid "CONFLICT (add/add): Merge conflict in %s"
msgstr "ÇAKIŞMA (ekle/ekle): %s içinde birleştirme çakışması"
-#: merge-recursive.c:3491
+#: merge-recursive.c:3494
#, c-format
msgid "merging of trees %s and %s failed"
msgstr "%s ve %s ağaçlarının birleştirilmesi başarısız"
-#: merge-recursive.c:3585
+#: merge-recursive.c:3588
msgid "Merging:"
msgstr "BirleÅŸtiriliyor:"
-#: merge-recursive.c:3598
+#: merge-recursive.c:3601
#, c-format
msgid "found %u common ancestor:"
msgid_plural "found %u common ancestors:"
msgstr[0] "%u ortak ata bulundu:"
msgstr[1] "%u ortak ata bulundu:"
-#: merge-recursive.c:3648
+#: merge-recursive.c:3651
msgid "merge returned no commit"
msgstr "birleştirme herhangi bir işleme döndürmedi"
-#: merge-recursive.c:3816
+#: merge-recursive.c:3823
#, c-format
msgid "Could not parse object '%s'"
msgstr "'%s' nesnesi ayrıştırılamadı"
-#: merge-recursive.c:3834 builtin/merge.c:720 builtin/merge.c:906
+#: merge-recursive.c:3841 builtin/merge.c:720 builtin/merge.c:912
#: builtin/stash.c:489
msgid "Unable to write index."
msgstr "İndeks yazılamıyor."
@@ -5383,221 +5506,225 @@ msgstr "İndeks yazılamıyor."
msgid "failed to read the cache"
msgstr "önbellek okunamadı"
-#: merge.c:102 rerere.c:704 builtin/am.c:1988 builtin/am.c:2022
-#: builtin/checkout.c:598 builtin/checkout.c:853 builtin/clone.c:706
+#: merge.c:102 rerere.c:705 builtin/am.c:1989 builtin/am.c:2023
+#: builtin/checkout.c:603 builtin/checkout.c:865 builtin/clone.c:714
#: builtin/stash.c:269
msgid "unable to write new index file"
msgstr "yeni indeks dosyası yazılamıyor"
-#: midx.c:78
+#: midx.c:79
msgid "multi-pack-index OID fanout is of the wrong size"
msgstr "multi-pack-index OID ikiye bölümünün boyutu hatalı"
-#: midx.c:111
+#: midx.c:112
#, c-format
msgid "multi-pack-index file %s is too small"
msgstr "multi-pack-index dosyası %s pek küçük"
-#: midx.c:127
+#: midx.c:128
#, c-format
msgid "multi-pack-index signature 0x%08x does not match signature 0x%08x"
msgstr "multi-pack-index imzası 0x%08x, 0x%08x imzası ile eşleşmiyor"
-#: midx.c:132
+#: midx.c:133
#, c-format
msgid "multi-pack-index version %d not recognized"
msgstr "multi-pack-index sürümü %d tanımlanamıyor"
-#: midx.c:137
+#: midx.c:138
#, c-format
msgid "multi-pack-index hash version %u does not match version %u"
msgstr "multi-pack-index sağlama sürümü %u, %u sürümü ile eşleşmiyor"
-#: midx.c:154
+#: midx.c:155
msgid "multi-pack-index missing required pack-name chunk"
msgstr "multi-pack-index'ten gerekli pack-name iri parçası eksik"
-#: midx.c:156
+#: midx.c:157
msgid "multi-pack-index missing required OID fanout chunk"
msgstr "multi-pack-index'ten gerekli OID fanout iri parçası eksik"
-#: midx.c:158
+#: midx.c:159
msgid "multi-pack-index missing required OID lookup chunk"
msgstr "multi-pack-index'ten gerekli OID arama iri parçası eksik"
-#: midx.c:160
+#: midx.c:161
msgid "multi-pack-index missing required object offsets chunk"
msgstr "multi-pack-index'ten gerekli nesne ofsetleri iri parçası eksik"
-#: midx.c:176
+#: midx.c:180
#, c-format
msgid "multi-pack-index pack names out of order: '%s' before '%s'"
msgstr "multi-pack-index paket adlarının sırasız: '%s' şundan önce: '%s'"
-#: midx.c:224
+#: midx.c:228
#, c-format
msgid "bad pack-int-id: %u (%u total packs)"
msgstr "hatalı pack-int-id: %u (%u toplam paket)"
-#: midx.c:274
+#: midx.c:278
msgid "multi-pack-index stores a 64-bit offset, but off_t is too small"
msgstr "multi-pack-index bir 64 bit ofset depoluyor; ancak off_t pek küçük"
-#: midx.c:505
+#: midx.c:509
#, c-format
msgid "failed to add packfile '%s'"
msgstr "paket dosyası '%s' eklenemedi"
-#: midx.c:511
+#: midx.c:515
#, c-format
msgid "failed to open pack-index '%s'"
msgstr "pack-index '%s' açılamadı"
-#: midx.c:579
+#: midx.c:583
#, c-format
msgid "failed to locate object %d in packfile"
msgstr "%d nesnesi paket dosyasında bulunamadı"
-#: midx.c:895
+#: midx.c:911
msgid "cannot store reverse index file"
msgstr "ters indeks dosyası depolanamıyor"
-#: midx.c:993
+#: midx.c:1009
#, c-format
msgid "could not parse line: %s"
msgstr "satır ayrıştırılamadı: %s"
-#: midx.c:995
+#: midx.c:1011
#, c-format
msgid "malformed line: %s"
msgstr "hatalı oluşturulmuş satır: %s"
-#: midx.c:1162
+#: midx.c:1181
msgid "ignoring existing multi-pack-index; checksum mismatch"
msgstr "mevcut multi-pack-index yok sayılıyor; sağlama toplamı uyumsuzluğu"
-#: midx.c:1187
+#: midx.c:1206
msgid "could not load pack"
msgstr "paket yüklenemedi"
-#: midx.c:1193
+#: midx.c:1212
#, c-format
msgid "could not open index for %s"
msgstr "%s için indeks açılamadı"
-#: midx.c:1204
+#: midx.c:1223
msgid "Adding packfiles to multi-pack-index"
msgstr "Paket dosyaları multi-pack-index'e ekleniyor"
-#: midx.c:1247
+#: midx.c:1266
#, c-format
msgid "unknown preferred pack: '%s'"
msgstr "bilinmeyen tercih edilen paket: '%s'"
-#: midx.c:1292
+#: midx.c:1311
#, c-format
msgid "cannot select preferred pack %s with no objects"
msgstr "yeğlenen paket %s nesnesiz seçilemiyor"
-#: midx.c:1324
+#: midx.c:1343
#, c-format
msgid "did not see pack-file %s to drop"
msgstr "bırakılacak pack-file %s görülmedi"
-#: midx.c:1370
+#: midx.c:1389
#, c-format
msgid "preferred pack '%s' is expired"
msgstr "tercih edilen '%s' paketinin süresi geçmiş"
-#: midx.c:1383
+#: midx.c:1402
msgid "no pack files to index."
msgstr "indekslenecek paket dosyası yok."
-#: midx.c:1420
+#: midx.c:1409
+msgid "refusing to write multi-pack .bitmap without any objects"
+msgstr "bir nesne olmadan multi-pack .bitmap yazımı reddediliyor"
+
+#: midx.c:1451
msgid "could not write multi-pack bitmap"
msgstr "çoklu paket biteşlem yazılamadı"
-#: midx.c:1430
+#: midx.c:1461
msgid "could not write multi-pack-index"
msgstr "multi-pack-index yazılamadı"
-#: midx.c:1489 builtin/clean.c:37
+#: midx.c:1520 builtin/clean.c:37
#, c-format
msgid "failed to remove %s"
msgstr "%s kaldırılamadı"
-#: midx.c:1522
+#: midx.c:1553
#, c-format
msgid "failed to clear multi-pack-index at %s"
msgstr "multi-pack-index %s konumunda temizlenemedi"
-#: midx.c:1585
+#: midx.c:1616
msgid "multi-pack-index file exists, but failed to parse"
msgstr "multi-pack-index dosyası mevcut, ancak ayrıştırılamadı"
-#: midx.c:1593
+#: midx.c:1624
msgid "incorrect checksum"
msgstr "yanlış sağlama toplamı"
-#: midx.c:1596
+#: midx.c:1627
msgid "Looking for referenced packfiles"
msgstr "Başvurulmuş paket dosyaları aranıyor"
-#: midx.c:1611
+#: midx.c:1642
#, c-format
msgid ""
"oid fanout out of order: fanout[%d] = %<PRIx32> > %<PRIx32> = fanout[%d]"
msgstr "oid fanout sırasız: fanout[%d] = %<PRIx32> > %<PRIx32> = fanout[%d]"
-#: midx.c:1616
+#: midx.c:1647
msgid "the midx contains no oid"
msgstr "midx bir oid içermiyor"
-#: midx.c:1625
+#: midx.c:1656
msgid "Verifying OID order in multi-pack-index"
msgstr "multi-pack-index içindeki OID sırası doğrulanıyor"
-#: midx.c:1634
+#: midx.c:1665
#, c-format
msgid "oid lookup out of order: oid[%d] = %s >= %s = oid[%d]"
msgstr "oid araması sırasız: oid[%d] = %s >= %s = oid[%d]"
-#: midx.c:1654
+#: midx.c:1685
msgid "Sorting objects by packfile"
msgstr "Nesneler paket dosyasına göre sıralanıyor"
-#: midx.c:1661
+#: midx.c:1692
msgid "Verifying object offsets"
msgstr "Nesne ofsetleri doğrulanıyor"
-#: midx.c:1677
+#: midx.c:1708
#, c-format
msgid "failed to load pack entry for oid[%d] = %s"
msgstr "şunun için paket girdisi yüklenemedi: oid[%d] = %s"
-#: midx.c:1683
+#: midx.c:1714
#, c-format
msgid "failed to load pack-index for packfile %s"
msgstr "paket dosyası %s için pack-index yüklenemedi"
-#: midx.c:1692
+#: midx.c:1723
#, c-format
msgid "incorrect object offset for oid[%d] = %s: %<PRIx64> != %<PRIx64>"
msgstr "şunun için yanlış nesne ofseti: oid[%d] = %s: %<PRIx64> != %<PRIx64>"
-#: midx.c:1719
+#: midx.c:1750
msgid "Counting referenced objects"
msgstr "Başvurulmuş nesneler sayılıyor"
-#: midx.c:1729
+#: midx.c:1760
msgid "Finding and deleting unreferenced packfiles"
msgstr "Başvurulmamış paket dosyaları bulunuyor ve siliniyor"
-#: midx.c:1921
+#: midx.c:1952
msgid "could not start pack-objects"
msgstr "pack-objects başlatılamadı"
-#: midx.c:1941
+#: midx.c:1972
msgid "could not finish pack-objects"
msgstr "pack-objects bitirilemedi"
@@ -5616,7 +5743,7 @@ msgstr "lazy_name oluşturulamıyor: %s"
msgid "unable to join lazy_name thread: %s"
msgstr "lazy_name iş parçacığı ucu birleştirilemiyor: %s"
-#: notes-merge.c:277
+#: notes-merge.c:276
#, c-format
msgid ""
"You have not concluded your previous notes merge (%s exists).\n"
@@ -5628,7 +5755,7 @@ msgstr ""
"commit' veya 'git notes merge --abort' kullanarak bir önceki birleştirmeyi "
"iÅŸleyin/durdurun."
-#: notes-merge.c:284
+#: notes-merge.c:283
#, c-format
msgid "You have not concluded your notes merge (%s exists)."
msgstr "Notlar birleştirmenizi sonuçlandırmadınız (%s var)."
@@ -5656,272 +5783,343 @@ msgstr "%s içindeki notları yeniden yazma reddediliyor (refs/notes/ dışında
msgid "Bad %s value: '%s'"
msgstr "Hatalı %s değeri: '%s'"
-#: object-file.c:456
+#: object-file.c:457
#, c-format
msgid "object directory %s does not exist; check .git/objects/info/alternates"
msgstr "nesne dizini %s yok; şurayı denetleyin: .git/objects/info/alternates"
-#: object-file.c:514
+#: object-file.c:515
#, c-format
msgid "unable to normalize alternate object path: %s"
msgstr "alternatif nesne yolu olağanlaştırılamıyor: %s"
-#: object-file.c:588
+#: object-file.c:589
#, c-format
msgid "%s: ignoring alternate object stores, nesting too deep"
msgstr "%s: alternatif nesne depoları yok sayılıyor, iç içe geçme pek derin"
-#: object-file.c:595
+#: object-file.c:596
#, c-format
msgid "unable to normalize object directory: %s"
msgstr "nesne dizini olağanlaştırılamıyor: %s"
-#: object-file.c:638
+#: object-file.c:639
msgid "unable to fdopen alternates lockfile"
msgstr "alternatifler kilit dosyası fdopen yapılamıyor"
-#: object-file.c:656
+#: object-file.c:657
msgid "unable to read alternates file"
msgstr "alternatifler dosyası okunamıyor"
-#: object-file.c:663
+#: object-file.c:664
msgid "unable to move new alternates file into place"
msgstr "yeni alternatifler dosyası yerine taşınamıyor"
-#: object-file.c:741
+#: object-file.c:742
#, c-format
msgid "path '%s' does not exist"
msgstr "'%s' diye bir yol yok"
-#: object-file.c:762
+#: object-file.c:763
#, c-format
msgid "reference repository '%s' as a linked checkout is not supported yet."
msgstr ""
"Bağlantı yapılmış çıkış olarak '%s' başvuru deposu henüz desteklenmiyor."
-#: object-file.c:768
+#: object-file.c:769
#, c-format
msgid "reference repository '%s' is not a local repository."
msgstr "BaÅŸvuru deposu '%s' yerel bir depo deÄŸil."
-#: object-file.c:774
+#: object-file.c:775
#, c-format
msgid "reference repository '%s' is shallow"
msgstr "başvuru deposu '%s' sığ"
-#: object-file.c:782
+#: object-file.c:783
#, c-format
msgid "reference repository '%s' is grafted"
msgstr "başvuru deposu '%s' aşılı"
-#: object-file.c:813
+#: object-file.c:814
#, c-format
msgid "could not find object directory matching %s"
msgstr "'%s' ile eşleşen nesne dizini bulunamadı"
-#: object-file.c:863
+#: object-file.c:864
#, c-format
msgid "invalid line while parsing alternate refs: %s"
msgstr "alternatif başvurular ayrıştırılırken geçersiz satır: %s"
-#: object-file.c:1013
+#: object-file.c:1014
#, c-format
msgid "attempting to mmap %<PRIuMAX> over limit %<PRIuMAX>"
msgstr "%<PRIuMAX>, %<PRIuMAX> sınırı üzerinden mmap yapılmaya çalışılıyor"
-#: object-file.c:1048
+#: object-file.c:1049
#, c-format
msgid "mmap failed%s"
msgstr "mmap başarısız%s"
-#: object-file.c:1214
+#: object-file.c:1230
#, c-format
msgid "object file %s is empty"
msgstr "nesne dosyası %s boş"
-#: object-file.c:1333 object-file.c:2542
+#: object-file.c:1349 object-file.c:2588
#, c-format
msgid "corrupt loose object '%s'"
msgstr "hasar görmüş gevşek nesne '%s'"
-#: object-file.c:1335 object-file.c:2546
+#: object-file.c:1351 object-file.c:2592
#, c-format
msgid "garbage at end of loose object '%s'"
msgstr "gevşek nesne '%s' sonunda anlamsız veri"
-#: object-file.c:1457
+#: object-file.c:1473
#, c-format
msgid "unable to parse %s header"
msgstr "%s üstbilgisi ayrıştırılamıyor"
-#: object-file.c:1459
+#: object-file.c:1475
msgid "invalid object type"
msgstr "geçersiz nesne türü"
-#: object-file.c:1470
+#: object-file.c:1486
#, c-format
msgid "unable to unpack %s header"
msgstr "%s üstbilgisi açılamıyor"
-#: object-file.c:1474
+#: object-file.c:1490
#, c-format
msgid "header for %s too long, exceeds %d bytes"
msgstr "%s üstbilgisi pek uzun, %d bayt'ı aşıyor"
-#: object-file.c:1704
+#: object-file.c:1720
#, c-format
msgid "failed to read object %s"
msgstr "%s nesnesi okunamadı"
-#: object-file.c:1708
+#: object-file.c:1724
#, c-format
msgid "replacement %s not found for %s"
msgstr "%s yedeği %s için bulunamadı"
-#: object-file.c:1712
+#: object-file.c:1728
#, c-format
msgid "loose object %s (stored in %s) is corrupt"
msgstr "%s gevşek nesnesi (%s içinde depolanıyor) hasar görmüş"
-#: object-file.c:1716
+#: object-file.c:1732
#, c-format
msgid "packed object %s (stored in %s) is corrupt"
msgstr "paketlenmiş nesne %s (%s içinde depolanıyor) hasar görmüş"
-#: object-file.c:1821
+#: object-file.c:1855
#, c-format
msgid "unable to write file %s"
msgstr "%s dosyası yazılamıyor"
-#: object-file.c:1828
+#: object-file.c:1862
#, c-format
msgid "unable to set permission to '%s'"
msgstr "'%s' ögesine izin ayarlanamıyor"
-#: object-file.c:1835
+#: object-file.c:1869
msgid "file write error"
msgstr "dosya yazım hatası"
-#: object-file.c:1858
+#: object-file.c:1904
msgid "error when closing loose object file"
msgstr "gevşek nesne dosyası kapatılırken hata"
-#: object-file.c:1925
+#: object-file.c:1971
#, c-format
msgid "insufficient permission for adding an object to repository database %s"
msgstr "%s depo veritabanına nesne eklemek için yetersiz izin"
-#: object-file.c:1927
+#: object-file.c:1973
msgid "unable to create temporary file"
msgstr "geçici dosya oluşturulamıyor"
-#: object-file.c:1951
+#: object-file.c:1997
msgid "unable to write loose object file"
msgstr "gevşek nesne dosyası yazılamıyor"
-#: object-file.c:1957
+#: object-file.c:2003
#, c-format
msgid "unable to deflate new object %s (%d)"
msgstr "yeni nesne %s söndürülemiyor (%d)"
-#: object-file.c:1961
+#: object-file.c:2007
#, c-format
msgid "deflateEnd on object %s failed (%d)"
msgstr "%s nesnesi üzerinde deflateEnd başarısız oldu (%d)"
-#: object-file.c:1965
+#: object-file.c:2011
#, c-format
msgid "confused by unstable object source data for %s"
msgstr "%s için olan nesne kaynak verisinden dolayı kafa karışıklığı"
-#: object-file.c:1976 builtin/pack-objects.c:1243
+#: object-file.c:2022 builtin/pack-objects.c:1251
#, c-format
msgid "failed utime() on %s"
msgstr "%s üzerinde utime() başarısız"
-#: object-file.c:2054
+#: object-file.c:2100
#, c-format
msgid "cannot read object for %s"
msgstr "%s için nesne okunamıyor"
-#: object-file.c:2105
+#: object-file.c:2151
msgid "corrupt commit"
msgstr "hasar görmüş işleme"
-#: object-file.c:2113
+#: object-file.c:2159
msgid "corrupt tag"
msgstr "hasar görmüş etiket"
-#: object-file.c:2213
+#: object-file.c:2259
#, c-format
msgid "read error while indexing %s"
msgstr "%s indekslenirken okuma hatası"
-#: object-file.c:2216
+#: object-file.c:2262
#, c-format
msgid "short read while indexing %s"
msgstr "%s indekslenirken kısa read"
-#: object-file.c:2289 object-file.c:2299
+#: object-file.c:2335 object-file.c:2345
#, c-format
msgid "%s: failed to insert into database"
msgstr "%s: veritabanına ekleme başarısız"
-#: object-file.c:2305
+#: object-file.c:2351
#, c-format
msgid "%s: unsupported file type"
msgstr "%s: desteklenmeyen dosya türü"
-#: object-file.c:2329 builtin/fetch.c:1453
+#: object-file.c:2375 builtin/fetch.c:1494
#, c-format
msgid "%s is not a valid object"
msgstr "%s geçerli bir nesne değil"
-#: object-file.c:2331
+#: object-file.c:2377
#, c-format
msgid "%s is not a valid '%s' object"
msgstr "%s geçerli bir '%s' nesnesi değil"
-#: object-file.c:2358
+#: object-file.c:2404
#, c-format
msgid "unable to open %s"
msgstr "%s açılamıyor"
-#: object-file.c:2553
+#: object-file.c:2599
#, c-format
msgid "hash mismatch for %s (expected %s)"
msgstr "%s için sağlama uyuşmazlığı (%s bekleniyordu)"
-#: object-file.c:2576
+#: object-file.c:2622
#, c-format
msgid "unable to mmap %s"
msgstr "%s mmap yapılamadı"
-#: object-file.c:2582
+#: object-file.c:2628
#, c-format
msgid "unable to unpack header of %s"
msgstr "%s üstbilgisi açılamıyor"
-#: object-file.c:2587
+#: object-file.c:2633
#, c-format
msgid "unable to parse header of %s"
msgstr "%s üstbilgisi ayrıştırılamıyor"
-#: object-file.c:2598
+#: object-file.c:2644
#, c-format
msgid "unable to unpack contents of %s"
msgstr "%s içeriği açılamıyor"
-#: object-name.c:480
+#. TRANSLATORS: This is a line of ambiguous object
+#. output shown when we cannot look up or parse the
+#. object in question. E.g. "deadbeef [bad object]".
+#.
+#: object-name.c:382
+#, c-format
+msgid "%s [bad object]"
+msgstr "%s [hatalı nesne]"
+
+#. TRANSLATORS: This is a line of ambiguous commit
+#. object output. E.g.:
+#. *
+#. "deadbeef commit 2021-01-01 - Some Commit Message"
+#.
+#: object-name.c:407
+#, c-format
+msgid "%s commit %s - %s"
+msgstr "%s %s iÅŸlemesi - %s"
+
+#. TRANSLATORS: This is a line of ambiguous
+#. tag object output. E.g.:
+#. *
+#. "deadbeef tag 2022-01-01 - Some Tag Message"
+#. *
+#. The second argument is the YYYY-MM-DD found
+#. in the tag.
+#. *
+#. The third argument is the "tag" string
+#. from object.c.
+#.
+#: object-name.c:428
+#, c-format
+msgid "%s tag %s - %s"
+msgstr "%s %s etiketi - %s"
+
+#. TRANSLATORS: This is a line of ambiguous
+#. tag object output where we couldn't parse
+#. the tag itself. E.g.:
+#. *
+#. "deadbeef [bad tag, could not parse it]"
+#.
+#: object-name.c:439
+#, c-format
+msgid "%s [bad tag, could not parse it]"
+msgstr "%s [hatalı etiket, ayrıştırılamadı]"
+
+#. TRANSLATORS: This is a line of ambiguous <type>
+#. object output. E.g. "deadbeef tree".
+#.
+#: object-name.c:447
+#, c-format
+msgid "%s tree"
+msgstr "%s ağacı"
+
+#. TRANSLATORS: This is a line of ambiguous <type>
+#. object output. E.g. "deadbeef blob".
+#.
+#: object-name.c:453
+#, c-format
+msgid "%s blob"
+msgstr "%s ikili nesnesi"
+
+#: object-name.c:569
#, c-format
msgid "short object ID %s is ambiguous"
-msgstr "kısa nesne ID'si %s belirsiz"
+msgstr "kısa nesne kimliği %s belirsiz"
-#: object-name.c:491
-msgid "The candidates are:"
-msgstr "Adaylar:"
+#. TRANSLATORS: The argument is the list of ambiguous
+#. objects composed in show_ambiguous_object(). See
+#. its "TRANSLATORS" comments for details.
+#.
+#: object-name.c:591
+#, c-format
+msgid ""
+"The candidates are:\n"
+"%s"
+msgstr ""
+"Adaylar:\n"
+"%s"
-#: object-name.c:790
+#: object-name.c:888
msgid ""
"Git normally never creates a ref that ends with 40 hex characters\n"
"because it will be ignored when you just specify 40-hex. These refs\n"
@@ -5944,22 +6142,22 @@ msgstr ""
"iletiyi\n"
"kapatmak için \"git config advice.objectNameWarning\" yapın."
-#: object-name.c:910
+#: object-name.c:1008
#, c-format
msgid "log for '%.*s' only goes back to %s"
msgstr "'%.*s' günlüğü yalnızca şuna geri gider: %s"
-#: object-name.c:918
+#: object-name.c:1016
#, c-format
msgid "log for '%.*s' only has %d entries"
msgstr "'%.*s' günlüğünde yalnızca %d girdi var"
-#: object-name.c:1696
+#: object-name.c:1794
#, c-format
msgid "path '%s' exists on disk, but not in '%.*s'"
msgstr "'%s' yolu disk üzerinde mevcut; ancak '%.*s' içinde değil"
-#: object-name.c:1702
+#: object-name.c:1800
#, c-format
msgid ""
"path '%s' exists, but not '%s'\n"
@@ -5968,12 +6166,12 @@ msgstr ""
"'%s' yolu mevcut; ancak '%s' deÄŸil\n"
"İpucu: Şunu mu demek istediniz: '%.*s:%s', nam-ı diğer '%.*s:./%s'?"
-#: object-name.c:1711
+#: object-name.c:1809
#, c-format
msgid "path '%s' does not exist in '%.*s'"
msgstr "'%s' yolu '%.*s' içinde mevcut değil"
-#: object-name.c:1739
+#: object-name.c:1837
#, c-format
msgid ""
"path '%s' is in the index, but not at stage %d\n"
@@ -5982,7 +6180,7 @@ msgstr ""
"'%s' yolu indekste; ancak %d numaralı alanda değil\n"
"Ä°pucu: Åžunu mu demek istediniz: ':%d:%s'?"
-#: object-name.c:1755
+#: object-name.c:1853
#, c-format
msgid ""
"path '%s' is in the index, but not '%s'\n"
@@ -5991,21 +6189,26 @@ msgstr ""
"'%s' yolu indekste; ancak '%s' deÄŸil\n"
"İpucu: Şunu mu demek istediniz: '%d:%s', nam-ı diğer ':%d:./%s'?"
-#: object-name.c:1763
+#: object-name.c:1861
#, c-format
msgid "path '%s' exists on disk, but not in the index"
msgstr "'%s' yolu diskte mevcut; ancak indekste deÄŸil"
-#: object-name.c:1765
+#: object-name.c:1863
#, c-format
msgid "path '%s' does not exist (neither on disk nor in the index)"
msgstr "'%s' diye bir yol yok (ne diskte ne de indekste)"
-#: object-name.c:1778
+#: object-name.c:1876
msgid "relative path syntax can't be used outside working tree"
msgstr "göreceli yol sözdizimi çalışma ağacı dışında kullanılamaz"
-#: object-name.c:1916
+#: object-name.c:1901
+#, c-format
+msgid "<object>:<path> required, only <object> '%s' given"
+msgstr "<nesne>:<yol> gerekiyor, yalnızca <nesne> '%s' verildi"
+
+#: object-name.c:2014
#, c-format
msgid "invalid object name '%.*s'."
msgstr "geçersiz nesne adı: '%.*s'"
@@ -6030,7 +6233,7 @@ msgstr "%s nesnesi %d bilinmeyen tür numarasına iye"
msgid "unable to parse object: %s"
msgstr "nesne ayrıştırılamıyor: %s"
-#: object.c:283 object.c:295
+#: object.c:283 object.c:294
#, c-format
msgid "hash mismatch %s"
msgstr "sağlama uyuşmazlığı %s"
@@ -6039,21 +6242,21 @@ msgstr "sağlama uyuşmazlığı %s"
msgid "multi-pack bitmap is missing required reverse index"
msgstr "çoklu paket biteşlemi gereken ters indeksi içermiyor"
-#: pack-bitmap.c:429
+#: pack-bitmap.c:433
msgid "load_reverse_index: could not open pack"
msgstr "load_reverse_index: paket açılamadı"
-#: pack-bitmap.c:1069 pack-bitmap.c:1075 builtin/pack-objects.c:2424
+#: pack-bitmap.c:1072 pack-bitmap.c:1078 builtin/pack-objects.c:2432
#, c-format
msgid "unable to get size of %s"
msgstr "%s boyutu alınamıyor"
-#: pack-bitmap.c:1935
+#: pack-bitmap.c:1937
#, c-format
msgid "could not find %s in pack %s at offset %<PRIuMAX>"
msgstr "%s, %s paketi %<PRIuMAX> ofsetinde bulunamadı"
-#: pack-bitmap.c:1971 builtin/rev-list.c:92
+#: pack-bitmap.c:1973 builtin/rev-list.c:91
#, c-format
msgid "unable to get disk usage of %s"
msgstr "%s ögesinin disk kullanımı alınamıyor"
@@ -6097,7 +6300,7 @@ msgstr "dosya bilgileri alınamadı: %s"
msgid "failed to make %s readable"
msgstr "%s, yazılabilir yapılamadı"
-#: pack-write.c:520
+#: pack-write.c:521
#, c-format
msgid "could not write '%s' promisor file"
msgstr "vaat dosyası '%s' yazılamadı"
@@ -6410,15 +6613,15 @@ msgstr "--pretty biçimi ayrıştırılamıyor"
#: promisor-remote.c:31
msgid "promisor-remote: unable to fork off fetch subprocess"
-msgstr "promisor-remote: getirme altişlemi çatallanamıyor"
+msgstr "promisor-remote: getirme alt süreci çatallanamıyor"
#: promisor-remote.c:38 promisor-remote.c:40
msgid "promisor-remote: could not write to fetch subprocess"
-msgstr "promisor-remote: getirme altişlemine yazılamıyor"
+msgstr "promisor-remote: getirme alt sürecine yazılamıyor"
#: promisor-remote.c:44
msgid "promisor-remote: could not close stdin to fetch subprocess"
-msgstr "promisor-remote: altişlemi getirmek için stdin kapatılamıyor"
+msgstr "promisor-remote: alt sürecine getirmek için stdin kapatılamıyor"
#: promisor-remote.c:54
#, c-format
@@ -6433,20 +6636,20 @@ msgstr "object-info: argümanlardan sonra floş bekleniyordu"
msgid "Removing duplicate objects"
msgstr "Yinelenmiş nesneler kaldırılıyor"
-#: range-diff.c:67
+#: range-diff.c:68
msgid "could not start `log`"
msgstr "'log' başlatılamadı"
-#: range-diff.c:69
+#: range-diff.c:70
msgid "could not read `log` output"
msgstr "'log' çıktısı okunamadı"
-#: range-diff.c:97 sequencer.c:5602
+#: range-diff.c:98 sequencer.c:5575
#, c-format
msgid "could not parse commit '%s'"
msgstr "'%s' işlemesi ayrıştırılamadı"
-#: range-diff.c:111
+#: range-diff.c:109
#, c-format
msgid ""
"could not parse first line of `log` output: did not start with 'commit ': "
@@ -6454,65 +6657,65 @@ msgid ""
msgstr ""
"'log' çıktısının ilk satırı ayrıştırılamadı: 'commit ' ile başlamıyor: '%s'"
-#: range-diff.c:137
+#: range-diff.c:132
#, c-format
msgid "could not parse git header '%.*s'"
msgstr "git üstbilgisi '%.*s' ayrıştırılamadı"
-#: range-diff.c:304
+#: range-diff.c:300
msgid "failed to generate diff"
msgstr "diff oluşturulamadı"
-#: range-diff.c:562 range-diff.c:564
+#: range-diff.c:558 range-diff.c:560
#, c-format
msgid "could not parse log for '%s'"
msgstr "'%s' günlüğü ayrıştırılamadı"
-#: read-cache.c:723
+#: read-cache.c:737
#, c-format
msgid "will not add file alias '%s' ('%s' already exists in index)"
msgstr "dosya arması '%s' eklenmeyecek ('%s' indekste halihazırda var)"
-#: read-cache.c:739
+#: read-cache.c:753
msgid "cannot create an empty blob in the object database"
msgstr "nesne veritabanında boş ikili bir nesne oluşturulamıyor"
-#: read-cache.c:761
+#: read-cache.c:775
#, c-format
msgid "%s: can only add regular files, symbolic links or git-directories"
msgstr ""
"%s: yalnızca sıradan dosyalar, sembolik bağlar ve git dizinleri eklenebilir"
-#: read-cache.c:766 builtin/submodule--helper.c:3242
+#: read-cache.c:780 builtin/submodule--helper.c:3359
#, c-format
msgid "'%s' does not have a commit checked out"
msgstr "'%s' çıkışı yapılmış bir işlemeye iye değil"
-#: read-cache.c:818
+#: read-cache.c:832
#, c-format
msgid "unable to index file '%s'"
msgstr "'%s' dosyası indekslenemiyor"
-#: read-cache.c:837
+#: read-cache.c:851
#, c-format
msgid "unable to add '%s' to index"
msgstr "'%s' indekse eklenemiyor"
-#: read-cache.c:848
+#: read-cache.c:862
#, c-format
msgid "unable to stat '%s'"
msgstr "'%s' dosyasının bilgileri alınamıyor"
-#: read-cache.c:1386
+#: read-cache.c:1404
#, c-format
msgid "'%s' appears as both a file and as a directory"
msgstr "'%s' hem bir dosya hem de bir dizin olarak görünüyor"
-#: read-cache.c:1601
+#: read-cache.c:1619
msgid "Refresh index"
msgstr "Ä°ndeks yenileniyor"
-#: read-cache.c:1733
+#: read-cache.c:1751
#, c-format
msgid ""
"index.version set, but the value is invalid.\n"
@@ -6521,7 +6724,7 @@ msgstr ""
"index.version ayarlanmış; ancak değer geçersiz.\n"
"%i sürümü kullanılıyor"
-#: read-cache.c:1743
+#: read-cache.c:1761
#, c-format
msgid ""
"GIT_INDEX_VERSION set, but the value is invalid.\n"
@@ -6530,143 +6733,147 @@ msgstr ""
"GIT_INDEX_VERSION ayarlanmış; ancak değer geçersiz.\n"
"%i sürümü kullanılıyor"
-#: read-cache.c:1799
+#: read-cache.c:1817
#, c-format
msgid "bad signature 0x%08x"
msgstr "hatalı imza 0x%08x"
-#: read-cache.c:1802
+#: read-cache.c:1820
#, c-format
msgid "bad index version %d"
msgstr "hatalı indeks sürümü %d"
-#: read-cache.c:1811
+#: read-cache.c:1829
msgid "bad index file sha1 signature"
msgstr "hatalı indeks dosyası sha1 imzası"
-#: read-cache.c:1845
+#: read-cache.c:1863
#, c-format
msgid "index uses %.4s extension, which we do not understand"
msgstr "indeks bizim anlamadığımız %.4s imzası kullanıyor"
-#: read-cache.c:1847
+#: read-cache.c:1865
#, c-format
msgid "ignoring %.4s extension"
msgstr "%.4s uzantısı yok sayılıyor"
-#: read-cache.c:1884
+#: read-cache.c:1902
#, c-format
msgid "unknown index entry format 0x%08x"
msgstr "bilinmeyen indeks girdisi biçimi 0x%08x"
-#: read-cache.c:1900
+#: read-cache.c:1918
#, c-format
msgid "malformed name field in the index, near path '%s'"
msgstr "indekste hatalı oluşturulmuş ad alanı, '%s' yolu yakınında"
-#: read-cache.c:1957
+#: read-cache.c:1975
msgid "unordered stage entries in index"
msgstr "indekste sırasız hazırlama alanı girdileri"
-#: read-cache.c:1960
+#: read-cache.c:1978
#, c-format
msgid "multiple stage entries for merged file '%s'"
msgstr "birleştirilmiş dosya '%s' için çoklu hazırlama alanı girdileri"
-#: read-cache.c:1963
+#: read-cache.c:1981
#, c-format
msgid "unordered stage entries for '%s'"
msgstr "'%s' için sırasız hazırlama alanı girdileri"
-#: read-cache.c:2078 read-cache.c:2384 rerere.c:549 rerere.c:583 rerere.c:1095
-#: submodule.c:1662 builtin/add.c:600 builtin/check-ignore.c:183
-#: builtin/checkout.c:527 builtin/checkout.c:719 builtin/clean.c:1013
-#: builtin/commit.c:378 builtin/diff-tree.c:122 builtin/grep.c:519
-#: builtin/mv.c:148 builtin/reset.c:499 builtin/rm.c:293
-#: builtin/submodule--helper.c:327 builtin/submodule--helper.c:3202
+#: read-cache.c:2096 read-cache.c:2402 rerere.c:549 rerere.c:583 rerere.c:1096
+#: submodule.c:1831 builtin/add.c:586 builtin/check-ignore.c:183
+#: builtin/checkout.c:532 builtin/checkout.c:724 builtin/clean.c:1016
+#: builtin/commit.c:379 builtin/diff-tree.c:122 builtin/grep.c:521
+#: builtin/mv.c:148 builtin/reset.c:506 builtin/rm.c:293
+#: builtin/submodule--helper.c:335 builtin/submodule--helper.c:3319
msgid "index file corrupt"
msgstr "indeks dosyası hasar görmüş"
-#: read-cache.c:2222
+#: read-cache.c:2240
#, c-format
msgid "unable to create load_cache_entries thread: %s"
msgstr "load_cache_entries iş parçacığı oluşturulamıyor: %s"
-#: read-cache.c:2235
+#: read-cache.c:2253
#, c-format
msgid "unable to join load_cache_entries thread: %s"
msgstr "load_cache_entries iş parçacığı ucu birleştirilemiyor: %s"
-#: read-cache.c:2268
+#: read-cache.c:2286
#, c-format
msgid "%s: index file open failed"
msgstr "%s: indeks dosyası açılamadı"
-#: read-cache.c:2272
+#: read-cache.c:2290
#, c-format
msgid "%s: cannot stat the open index"
msgstr "%s: açık indeksin bilgileri alınamıyor"
-#: read-cache.c:2276
+#: read-cache.c:2294
#, c-format
msgid "%s: index file smaller than expected"
msgstr "%s: indeks dosyası beklenenden daha küçük"
-#: read-cache.c:2280
+#: read-cache.c:2298
#, c-format
msgid "%s: unable to map index file%s"
msgstr "%s: indeks dosyası eşlemlenemiyor%s"
-#: read-cache.c:2323
+#: read-cache.c:2341
#, c-format
msgid "unable to create load_index_extensions thread: %s"
msgstr "load_index_extensions iş parçacığı oluşturulamıyor: %s"
-#: read-cache.c:2350
+#: read-cache.c:2368
#, c-format
msgid "unable to join load_index_extensions thread: %s"
msgstr "load_index_extensions iş parçacığı ucu birleştirilemiyor: %s"
-#: read-cache.c:2396
+#: read-cache.c:2414
#, c-format
msgid "could not freshen shared index '%s'"
msgstr "paylaşılan indeks '%s' tazelenemedi"
-#: read-cache.c:2455
+#: read-cache.c:2473
#, c-format
msgid "broken index, expect %s in %s, got %s"
msgstr "bozuk indeks, %s bekleniyordu (%s içinde), %s alındı"
-#: read-cache.c:3086 strbuf.c:1191 wrapper.c:641 builtin/merge.c:1150
+#: read-cache.c:3032
+msgid "cannot write split index for a sparse index"
+msgstr "bir aralıklı indeks için bölünmüş indeks yazılamıyor"
+
+#: read-cache.c:3114 strbuf.c:1192 wrapper.c:717 builtin/merge.c:1156
#, c-format
msgid "could not close '%s'"
msgstr "'%s' kapatılamadı"
-#: read-cache.c:3129
+#: read-cache.c:3157
msgid "failed to convert to a sparse-index"
msgstr "bir sparse-index'e dönüştürülemedi"
-#: read-cache.c:3200
+#: read-cache.c:3228
#, c-format
msgid "could not stat '%s'"
msgstr "'%s' bilgileri alınamadı"
-#: read-cache.c:3213
+#: read-cache.c:3241
#, c-format
msgid "unable to open git dir: %s"
msgstr "git dizini açılamıyor: %s"
-#: read-cache.c:3225
+#: read-cache.c:3253
#, c-format
msgid "unable to unlink: %s"
msgstr "bağlantı kesilemiyor: %s"
-#: read-cache.c:3254
+#: read-cache.c:3282
#, c-format
msgid "cannot fix permission bits on '%s'"
msgstr "'%s' üzerindeki izin bitleri onarılamıyor"
-#: read-cache.c:3411
+#: read-cache.c:3439
#, c-format
msgid "%s: cannot drop to stage #0"
msgstr "%s: #0 numaralı hazırlama alanına bırakılamıyor"
@@ -6785,9 +6992,9 @@ msgstr ""
"Ancak tümünü kaldırırsanız yeniden temellendirme iptal edilecektir.\n"
"\n"
-#: rebase-interactive.c:113 rerere.c:469 rerere.c:676 sequencer.c:3883
-#: sequencer.c:3909 sequencer.c:5708 builtin/fsck.c:328 builtin/gc.c:1791
-#: builtin/rebase.c:190
+#: rebase-interactive.c:113 rerere.c:469 rerere.c:677 sequencer.c:3879
+#: sequencer.c:3905 sequencer.c:5681 builtin/fsck.c:328 builtin/gc.c:1791
+#: builtin/rebase.c:191
#, c-format
msgid "could not write '%s'"
msgstr "'%s' yazılamadı"
@@ -6828,7 +7035,7 @@ msgstr ""
msgid "%s: 'preserve' superseded by 'merges'"
msgstr "%s: 'preserve'in yerini 'merges' aldı"
-#: ref-filter.c:42 wt-status.c:2048
+#: ref-filter.c:42 wt-status.c:2057
msgid "gone"
msgstr "gitti"
@@ -6995,81 +7202,91 @@ msgstr "bu komut atom %%(%.*s) reddediyor"
msgid "--format=%.*s cannot be used with --python, --shell, --tcl"
msgstr "--format=%.*s, --python, --shell ve --tcl ile kullanılamaz"
-#: ref-filter.c:1706
+#: ref-filter.c:1707
#, c-format
msgid "(no branch, rebasing %s)"
msgstr "(dal yok, %s yeniden temellendiriliyor)"
-#: ref-filter.c:1709
+#: ref-filter.c:1710
#, c-format
msgid "(no branch, rebasing detached HEAD %s)"
msgstr "(dal yok, ayrık HEAD %s yeniden temellendiriliyor)"
-#: ref-filter.c:1712
+#: ref-filter.c:1713
#, c-format
msgid "(no branch, bisect started on %s)"
msgstr "(dal yok, ikili arama %s üzerinde başladı)"
-#: ref-filter.c:1716
+#: ref-filter.c:1717
#, c-format
msgid "(HEAD detached at %s)"
msgstr "(HEAD, %s konumunda ayrıldı)"
-#: ref-filter.c:1719
+#: ref-filter.c:1720
#, c-format
msgid "(HEAD detached from %s)"
msgstr "(HEAD, %s ögesinden ayrıldı)"
-#: ref-filter.c:1722
+#: ref-filter.c:1723
msgid "(no branch)"
msgstr "(dal yok)"
-#: ref-filter.c:1754 ref-filter.c:1972
+#: ref-filter.c:1755 ref-filter.c:1973
#, c-format
msgid "missing object %s for %s"
msgstr "eksik nesne %s (%s için)"
-#: ref-filter.c:1764
+#: ref-filter.c:1765
#, c-format
msgid "parse_object_buffer failed on %s for %s"
msgstr "parse_object_buffer %s üzerinde başarısız oldu (%s için)"
-#: ref-filter.c:2155
+#: ref-filter.c:2156
#, c-format
msgid "malformed object at '%s'"
msgstr "'%s' konumunda hatalı oluşturulmuş nesne"
-#: ref-filter.c:2245
+#: ref-filter.c:2246
#, c-format
msgid "ignoring ref with broken name %s"
msgstr "bozuk ada iye %s başvurusu yok sayılıyor"
-#: ref-filter.c:2250 refs.c:676
+#: ref-filter.c:2251 refs.c:672
#, c-format
msgid "ignoring broken ref %s"
msgstr "bozuk başvuru %s yok sayılıyor"
-#: ref-filter.c:2629
+#: ref-filter.c:2630
#, c-format
msgid "format: %%(end) atom missing"
msgstr "biçim: %%(end) ögeciği eksik"
-#: ref-filter.c:2740
+#: ref-filter.c:2741
#, c-format
msgid "malformed object name %s"
msgstr "hatalı oluşturulmuş nesne adı %s"
-#: ref-filter.c:2745
+#: ref-filter.c:2746
#, c-format
msgid "option `%s' must point to a commit"
msgstr "'%s' bir iÅŸlemeye iÅŸaret etmeli"
-#: refs.c:261
+#: reflog.c:407
+#, c-format
+msgid "not a reflog: %s"
+msgstr "bir başvuru günlüğü değil: %s"
+
+#: reflog.c:410
+#, c-format
+msgid "no reflog for '%s'"
+msgstr "'%s' için başvuru günlüğü yok"
+
+#: refs.c:262
#, c-format
msgid "%s does not point to a valid object!"
msgstr "%s geçerli bir nesneye işaret etmiyor!"
-#: refs.c:563
+#: refs.c:561
#, c-format
msgid ""
"Using '%s' as the name for the initial branch. This default branch name\n"
@@ -7089,87 +7306,88 @@ msgstr ""
"\n"
"\tgit config --global init.defaultBranch <ad>\n"
"\n"
-"'master' yerine kullanılan diğer yaygın dal adları 'main', 'trunk' ve/veya\n"
-"'development'tır. Yeni oluşturulan dal şu komutla yeniden adlandırılabilir:\n"
+"'master' yerine kullanılan diğer yaygın dal adları 'main', 'trunk'\n"
+"ve/veya 'development'tır. Yeni oluşturulan dal şu komutla yeniden\n"
+"adlandırılabilir:\n"
"\n"
"\tgit branch -m <ad>\n"
-#: refs.c:585
+#: refs.c:583
#, c-format
msgid "could not retrieve `%s`"
msgstr "'%s' alınamadı"
-#: refs.c:595
+#: refs.c:593
#, c-format
msgid "invalid branch name: %s = %s"
msgstr "geçersiz dal adı: %s = %s"
-#: refs.c:674
+#: refs.c:670
#, c-format
msgid "ignoring dangling symref %s"
msgstr "sarkan sembolik başvuru %s yok sayılıyor"
-#: refs.c:925
+#: refs.c:919
#, 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:932
+#: refs.c:926
#, 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:997
+#: refs.c:991
#, c-format
msgid "log for %s is empty"
msgstr "%s için olan günlük boş"
-#: refs.c:1090
+#: refs.c:1086
#, c-format
msgid "refusing to update ref with bad name '%s'"
msgstr "hatalı ada iye '%s' başvurusunu güncelleme reddediliyor"
-#: refs.c:1168
+#: refs.c:1164
#, 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:2067
+#: refs.c:2059
#, c-format
msgid "multiple updates for ref '%s' not allowed"
msgstr "'%s' başvurusu için birden çok güncellemeye izin verilmiyor"
-#: refs.c:2150
+#: refs.c:2145
msgid "ref updates forbidden inside quarantine environment"
msgstr "başvuru güncellemeleri karantina ortamı içinde yasak"
-#: refs.c:2161
+#: refs.c:2156
msgid "ref updates aborted by hook"
msgstr "başvuru güncellemeleri kanca tarafından iptal edildi"
-#: refs.c:2269 refs.c:2299
+#: refs.c:2264 refs.c:2294
#, c-format
msgid "'%s' exists; cannot create '%s'"
msgstr "'%s' mevcut; '%s' oluşturulamıyor"
-#: refs.c:2275 refs.c:2310
+#: refs.c:2270 refs.c:2305
#, c-format
msgid "cannot process '%s' and '%s' at the same time"
msgstr "'%s' ve '%s' aynı anda işlenemiyor"
-#: refs/files-backend.c:1267
+#: refs/files-backend.c:1295
#, c-format
msgid "could not remove reference %s"
msgstr "%s başvurusu kaldırılamadı"
-#: refs/files-backend.c:1281 refs/packed-backend.c:1549
-#: refs/packed-backend.c:1559
+#: refs/files-backend.c:1310 refs/packed-backend.c:1565
+#: refs/packed-backend.c:1575
#, c-format
msgid "could not delete reference %s: %s"
msgstr "%s baÅŸvurusu silinemedi: %s"
-#: refs/files-backend.c:1284 refs/packed-backend.c:1562
+#: refs/files-backend.c:1313 refs/packed-backend.c:1578
#, c-format
msgid "could not delete references: %s"
msgstr "baÅŸvurular silinemedi: %s"
@@ -7192,37 +7410,37 @@ msgstr "birden fazla receivepack verildi, birincisi kullanılıyor"
msgid "more than one uploadpack given, using the first"
msgstr "birden fazla uploadpack verildi, birincisi kullanılıyor"
-#: remote.c:699
+#: remote.c:698
#, c-format
msgid "Cannot fetch both %s and %s to %s"
msgstr "Hem %s hem %s ÅŸuraya getirilemiyor: %s"
-#: remote.c:703
+#: remote.c:702
#, c-format
msgid "%s usually tracks %s, not %s"
msgstr "%s genelde %s ögesini izler, %s değil"
-#: remote.c:707
+#: remote.c:706
#, c-format
msgid "%s tracks both %s and %s"
msgstr "%s hem %s hem %s ögelerini izler"
-#: remote.c:775
+#: remote.c:774
#, c-format
msgid "key '%s' of pattern had no '*'"
msgstr "dizginin '%s' anahtarında '*' yoktu"
-#: remote.c:785
+#: remote.c:784
#, c-format
msgid "value '%s' of pattern has no '*'"
msgstr "dizginin '%s' deÄŸerinde '*' yok"
-#: remote.c:1192
+#: remote.c:1191
#, c-format
msgid "src refspec %s does not match any"
msgstr "kaynak başvuru belirteci %s başka hiçbir şeyle eşleşmiyor"
-#: remote.c:1197
+#: remote.c:1196
#, c-format
msgid "src refspec %s matches more than one"
msgstr "kaynak başvuru belirteci %s birden fazlası ile eşleşiyor"
@@ -7231,7 +7449,7 @@ msgstr "kaynak başvuru belirteci %s birden fazlası ile eşleşiyor"
#. <remote> <src>:<dst>" push, and "being pushed ('%s')" is
#. the <src>.
#.
-#: remote.c:1212
+#: remote.c:1211
#, c-format
msgid ""
"The destination you provided is not a full refname (i.e.,\n"
@@ -7255,7 +7473,7 @@ msgstr ""
"Hiçbiri işe yaramadı, biz de bıraktık. Başvuruyu tam olarak "
"nitelendirmelisiniz."
-#: remote.c:1232
+#: remote.c:1231
#, c-format
msgid ""
"The <src> part of the refspec is a commit object.\n"
@@ -7266,7 +7484,7 @@ msgstr ""
"'%s:refs/heads/%s' konumuna iterek yeni bir dal mı\n"
"oluÅŸturmak istediniz?"
-#: remote.c:1237
+#: remote.c:1236
#, c-format
msgid ""
"The <src> part of the refspec is a tag object.\n"
@@ -7277,7 +7495,7 @@ msgstr ""
"'%s:refs/tags/%s' konumuna iterek yeni bir etiket mi\n"
"oluÅŸturmak istediniz?"
-#: remote.c:1242
+#: remote.c:1241
#, c-format
msgid ""
"The <src> part of the refspec is a tree object.\n"
@@ -7288,7 +7506,7 @@ msgstr ""
"'%s:refs/tags/%s' konumuna iterek yeni bir ağaç mı\n"
"etiketlemek istediniz?"
-#: remote.c:1247
+#: remote.c:1246
#, c-format
msgid ""
"The <src> part of the refspec is a blob object.\n"
@@ -7299,114 +7517,114 @@ msgstr ""
"'%s:refs/tags/%s' konumuna iterek yeni ikili bir nesne mi\n"
"etiketlemek istediniz?"
-#: remote.c:1283
+#: remote.c:1282
#, c-format
msgid "%s cannot be resolved to branch"
msgstr "%s dala çözülemiyor"
-#: remote.c:1294
+#: remote.c:1293
#, c-format
msgid "unable to delete '%s': remote ref does not exist"
msgstr "'%s' silinemiyor: uzak baÅŸvuru yok"
-#: remote.c:1306
+#: remote.c:1305
#, c-format
msgid "dst refspec %s matches more than one"
msgstr "birden çok hedef başvuru belirteci %s eşleşmesi"
-#: remote.c:1313
+#: remote.c:1312
#, c-format
msgid "dst ref %s receives from more than one src"
msgstr "hedef başvurusu %s birden çok kaynaktan alıyor"
-#: remote.c:1834 remote.c:1941
+#: remote.c:1833 remote.c:1940
msgid "HEAD does not point to a branch"
msgstr "HEAD bir dala iÅŸaret etmiyor"
-#: remote.c:1843
+#: remote.c:1842
#, c-format
msgid "no such branch: '%s'"
msgstr "böyle bir dal yok: '%s'"
-#: remote.c:1846
+#: remote.c:1845
#, c-format
msgid "no upstream configured for branch '%s'"
msgstr "'%s' dalı için üstkaynak yapılandırılmamış"
-#: remote.c:1852
+#: remote.c:1851
#, c-format
msgid "upstream branch '%s' not stored as a remote-tracking branch"
msgstr "üstkaynak dalı '%s' bir uzak izleme dalı olarak depolanmıyor"
-#: remote.c:1867
+#: remote.c:1866
#, c-format
msgid "push destination '%s' on remote '%s' has no local tracking branch"
msgstr "'%s' itme hedefinin ('%s' uzak konumunda) yerel izleme dalı yok"
-#: remote.c:1882
+#: remote.c:1881
#, c-format
msgid "branch '%s' has no remote for pushing"
msgstr "'%s' dalının itme için uzak konumu yok"
-#: remote.c:1892
+#: remote.c:1891
#, c-format
msgid "push refspecs for '%s' do not include '%s'"
msgstr "'%s' için olan başvuru belirteçleri '%s' içermiyor"
-#: remote.c:1905
+#: remote.c:1904
msgid "push has no destination (push.default is 'nothing')"
msgstr "itilecek bir hedef yok (push.default: 'nothing')"
-#: remote.c:1927
+#: remote.c:1926
msgid "cannot resolve 'simple' push to a single destination"
msgstr "tek bir konuma 'simple' itme çözülemiyor"
-#: remote.c:2060
+#: remote.c:2059
#, c-format
msgid "couldn't find remote ref %s"
msgstr "%s uzak başvurusu bulunamadı"
-#: remote.c:2073
+#: remote.c:2072
#, c-format
msgid "* Ignoring funny ref '%s' locally"
msgstr "* Eğlenceli başvuru '%s' yerel olarak yok sayılıyor"
-#: remote.c:2236
+#: remote.c:2235
#, c-format
msgid "Your branch is based on '%s', but the upstream is gone.\n"
msgstr "Dalınız '%s' temelli; ancak üstkaynak kaybolmuş.\n"
-#: remote.c:2240
+#: remote.c:2239
msgid " (use \"git branch --unset-upstream\" to fixup)\n"
msgstr " (düzeltmek için \"git branch --unset-upstream\" kullan)\n"
-#: remote.c:2243
+#: remote.c:2242
#, c-format
msgid "Your branch is up to date with '%s'.\n"
msgstr "Dalınız '%s' ile güncel.\n"
-#: remote.c:2247
+#: remote.c:2246
#, c-format
msgid "Your branch and '%s' refer to different commits.\n"
msgstr "Sizin dalınız ve '%s' başka işlemelere başvuruyor.\n"
-#: remote.c:2250
+#: remote.c:2249
#, c-format
msgid " (use \"%s\" for details)\n"
msgstr " (ayrıntılar için \"%s\" kullanın)\n"
-#: remote.c:2254
+#: remote.c:2253
#, c-format
msgid "Your branch is ahead of '%s' by %d commit.\n"
msgid_plural "Your branch is ahead of '%s' by %d commits.\n"
msgstr[0] "Dalınız '%s' dalından %d işleme ileride.\n"
msgstr[1] "Dalınız '%s' dalından %d işleme ileride.\n"
-#: remote.c:2260
+#: remote.c:2259
msgid " (use \"git push\" to publish your local commits)\n"
msgstr " (yerel işlemelerinizi yayımlamak için \"git push\" kullanın)\n"
-#: remote.c:2263
+#: remote.c:2262
#, c-format
msgid "Your branch is behind '%s' by %d commit, and can be fast-forwarded.\n"
msgid_plural ""
@@ -7414,11 +7632,11 @@ msgid_plural ""
msgstr[0] "Dalınız '%s' dalından %d işleme geride ve ileri sarılabilir.\n"
msgstr[1] "Dalınız '%s' dalından %d işleme geride ve ileri sarılabilir.\n"
-#: remote.c:2271
+#: remote.c:2270
msgid " (use \"git pull\" to update your local branch)\n"
msgstr " (yerel dalınızı güncellemek için \"git pull\" kullanın)\n"
-#: remote.c:2274
+#: remote.c:2273
#, c-format
msgid ""
"Your branch and '%s' have diverged,\n"
@@ -7433,11 +7651,11 @@ msgstr[1] ""
"Sizin dalınız ve '%s' birbirinden uzaklaşmış ve sırasıyla\n"
"her birinde %d ve %d iÅŸleme var.\n"
-#: remote.c:2284
+#: remote.c:2283
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:2476
+#: remote.c:2475
#, c-format
msgid "cannot parse expected object name '%s'"
msgstr "beklenen nesne adı '%s' ayrıştırılamıyor"
@@ -7475,104 +7693,108 @@ msgstr "'%s' yazılırken hatalar vardı (%s)"
msgid "failed to flush '%s'"
msgstr "'%s' floş yapılamadı"
-#: rerere.c:487 rerere.c:1023
+#: rerere.c:487 rerere.c:1024
#, c-format
msgid "could not parse conflict hunks in '%s'"
msgstr "'%s' içindeki çakışan parçalar ayrıştırılamadı"
-#: rerere.c:668
+#: rerere.c:669
#, c-format
msgid "failed utime() on '%s'"
msgstr "'%s' üzerinde utime() başarısız"
-#: rerere.c:678
+#: rerere.c:679
#, c-format
msgid "writing '%s' failed"
msgstr "'%s' yazılamadı"
-#: rerere.c:698
+#: rerere.c:699
#, c-format
msgid "Staged '%s' using previous resolution."
msgstr "'%s' bir önceki çözüm kullanılarak hazırlama alanına alındı."
-#: rerere.c:737
+#: rerere.c:738
#, c-format
msgid "Recorded resolution for '%s'."
msgstr "'%s' için çözüm kaydedildi."
-#: rerere.c:772
+#: rerere.c:773
#, c-format
msgid "Resolved '%s' using previous resolution."
msgstr "'%s' bir önceki çözüm kullanılarak çözüldü."
-#: rerere.c:787
+#: rerere.c:788
#, c-format
msgid "cannot unlink stray '%s'"
msgstr "'%s' başıboşunun bağlantısı kesilemiyor"
-#: rerere.c:791
+#: rerere.c:792
#, c-format
msgid "Recorded preimage for '%s'"
msgstr "'%s' için öngörüntü kaydedildi"
-#: rerere.c:865 submodule.c:2121 builtin/log.c:2017
-#: builtin/submodule--helper.c:1777 builtin/submodule--helper.c:1820
+#: rerere.c:866 submodule.c:2290 builtin/log.c:2042
+#: builtin/submodule--helper.c:1786 builtin/submodule--helper.c:1833
#, c-format
msgid "could not create directory '%s'"
msgstr "'%s' dizini oluşturulamadı"
-#: rerere.c:1041
+#: rerere.c:1042
#, c-format
msgid "failed to update conflicted state in '%s'"
msgstr "'%s' içindeki çakışan durum güncellenemedi"
-#: rerere.c:1052 rerere.c:1059
+#: rerere.c:1053 rerere.c:1060
#, c-format
msgid "no remembered resolution for '%s'"
msgstr "'%s' için hatırlanan çözüm yok"
-#: rerere.c:1061
+#: rerere.c:1062
#, c-format
msgid "cannot unlink '%s'"
msgstr "'%s' bağlantısı kesilemiyor"
-#: rerere.c:1071
+#: rerere.c:1072
#, c-format
msgid "Updated preimage for '%s'"
msgstr "'%s' için öngörüntü güncellendi"
-#: rerere.c:1080
+#: rerere.c:1081
#, c-format
msgid "Forgot resolution for '%s'\n"
msgstr "'%s' için çözüm unutuldu\n"
-#: rerere.c:1191
+#: rerere.c:1192
msgid "unable to open rr-cache directory"
msgstr "rr-cache dizini açılamıyor"
-#: reset.c:42
+#: reset.c:112
msgid "could not determine HEAD revision"
msgstr "HEAD revizyonu saptanamadı"
-#: reset.c:70 reset.c:76 sequencer.c:3700
+#: reset.c:141 reset.c:147 sequencer.c:3696
#, c-format
msgid "failed to find tree of %s"
msgstr "%s ögesinin ağacı bulunamadı"
-#: revision.c:2347
+#: revision.c:2358
msgid "--unpacked=<packfile> no longer supported"
msgstr "--unpacked=<paketdosyası> artık desteklenmiyor"
-#: revision.c:2686
+#: revision.c:2712
msgid "your current branch appears to be broken"
msgstr "geçerli dalınız bozuk gibi görünüyor"
-#: revision.c:2689
+#: revision.c:2715
#, 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 işleme yok"
-#: revision.c:2891
+#: revision.c:2901
+msgid "object filtering requires --objects"
+msgstr "nesne süzme --objects gerektiriyor"
+
+#: revision.c:2918
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"
@@ -7601,7 +7823,7 @@ msgstr "itme sertifikası imzalanamadı"
#: send-pack.c:435
msgid "send-pack: unable to fork off fetch subprocess"
-msgstr "send-pack: getirme altişlemi çatallanamıyor"
+msgstr "send-pack: getirme alt süreci çatallanamıyor"
#: send-pack.c:457
msgid "push negotiation failed; proceeding anyway with push"
@@ -7641,7 +7863,7 @@ msgstr "geçersiz işleme iletisi temizleme kipi '%s'"
msgid "could not delete '%s'"
msgstr "'%s' silinemedi"
-#: sequencer.c:345 sequencer.c:4751 builtin/rebase.c:563 builtin/rebase.c:1297
+#: sequencer.c:345 sequencer.c:4724 builtin/rebase.c:564 builtin/rebase.c:1326
#: builtin/rm.c:409
#, c-format
msgid "could not remove '%s'"
@@ -7704,13 +7926,13 @@ msgstr ""
"atlayabilirsiniz. İptal edip \"git revert\" öncesine\n"
"geri dönmek için \"git revert --abort\" çalıştırın."
-#: sequencer.c:448 sequencer.c:3292
+#: sequencer.c:448 sequencer.c:3288
#, c-format
msgid "could not lock '%s'"
msgstr "'%s' kilitlenemedi"
-#: sequencer.c:450 sequencer.c:3091 sequencer.c:3296 sequencer.c:3310
-#: sequencer.c:3561 sequencer.c:5618 strbuf.c:1188 wrapper.c:639
+#: sequencer.c:450 sequencer.c:3087 sequencer.c:3292 sequencer.c:3306
+#: sequencer.c:3557 sequencer.c:5591 strbuf.c:1189 wrapper.c:715
#, c-format
msgid "could not write to '%s'"
msgstr "şuraya yazılamadı: '%s'"
@@ -7720,14 +7942,14 @@ msgstr "şuraya yazılamadı: '%s'"
msgid "could not write eol to '%s'"
msgstr "satır sonu şuraya yazılamadı: '%s'"
-#: sequencer.c:460 sequencer.c:3096 sequencer.c:3298 sequencer.c:3312
-#: sequencer.c:3569
+#: sequencer.c:460 sequencer.c:3092 sequencer.c:3294 sequencer.c:3308
+#: sequencer.c:3565
#, c-format
msgid "failed to finalize '%s'"
msgstr "'%s' tamamlanamadı"
-#: sequencer.c:473 sequencer.c:1934 sequencer.c:3116 sequencer.c:3551
-#: sequencer.c:3679 builtin/am.c:289 builtin/commit.c:834 builtin/merge.c:1148
+#: sequencer.c:473 sequencer.c:1930 sequencer.c:3112 sequencer.c:3547
+#: sequencer.c:3675 builtin/am.c:290 builtin/commit.c:837 builtin/merge.c:1154
#, c-format
msgid "could not read '%s'"
msgstr "'%s' okunamadı"
@@ -7746,7 +7968,7 @@ msgstr "İlerlemek için değişikliklerinizi işleyin veya zulalayın."
msgid "%s: fast-forward"
msgstr "%s: ileri sar"
-#: sequencer.c:574 builtin/tag.c:614
+#: sequencer.c:574 builtin/tag.c:615
#, c-format
msgid "Invalid cleanup mode %s"
msgstr "Geçersiz temizlik kipi %s"
@@ -7777,8 +7999,8 @@ 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:841 wrapper.c:209 wrapper.c:379 builtin/am.c:756
-#: builtin/am.c:848 builtin/rebase.c:694
+#: sequencer.c:841 wrapper.c:219 wrapper.c:389 builtin/am.c:757
+#: builtin/am.c:849 builtin/rebase.c:699
#, c-format
msgid "could not open '%s' for reading"
msgstr "'%s' okuma için açılamadı"
@@ -7896,349 +8118,344 @@ msgstr ""
"\n"
"\tgit commit --amend --reset-author\n"
-#: sequencer.c:1288
+#: sequencer.c:1287
msgid "couldn't look up newly created commit"
msgstr "yeni yapılan işleme aranamadı"
-#: sequencer.c:1290
+#: sequencer.c:1289
msgid "could not parse newly created commit"
msgstr "yeni yapılan işleme ayrıştırılamadı"
-#: sequencer.c:1339
+#: sequencer.c:1336
msgid "unable to resolve HEAD after creating commit"
msgstr "HEAD, işleme yapıldıktan sonra çözülemiyor"
-#: sequencer.c:1342
+#: sequencer.c:1338
msgid "detached HEAD"
msgstr "ayrık HEAD"
-#: sequencer.c:1346
+#: sequencer.c:1342
msgid " (root-commit)"
msgstr " (kök işleme)"
-#: sequencer.c:1367
+#: sequencer.c:1363
msgid "could not parse HEAD"
msgstr "HEAD ayrıştırılamadı"
-#: sequencer.c:1369
+#: sequencer.c:1365
#, c-format
msgid "HEAD %s is not a commit!"
msgstr "HEAD %s bir iÅŸleme deÄŸil"
-#: sequencer.c:1373 sequencer.c:1451 builtin/commit.c:1708
+#: sequencer.c:1369 sequencer.c:1447 builtin/commit.c:1707
msgid "could not parse HEAD commit"
msgstr "HEAD işlemesi ayrıştırılamadı"
-#: sequencer.c:1429 sequencer.c:2314
+#: sequencer.c:1425 sequencer.c:2310
msgid "unable to parse commit author"
msgstr "işleme yazarı ayrıştırılamıyor"
-#: sequencer.c:1440 builtin/am.c:1643 builtin/merge.c:710
+#: sequencer.c:1436 builtin/am.c:1644 builtin/merge.c:710
msgid "git write-tree failed to write a tree"
msgstr "git write-tree bir ağaca yazamadı"
-#: sequencer.c:1473 sequencer.c:1593
+#: sequencer.c:1469 sequencer.c:1589
#, c-format
msgid "unable to read commit message from '%s'"
msgstr "'%s' konumundan işleme iletisi okunamıyor"
-#: sequencer.c:1504 sequencer.c:1536
+#: sequencer.c:1500 sequencer.c:1532
#, c-format
msgid "invalid author identity '%s'"
msgstr "geçersiz yazar kimliği '%s'"
-#: sequencer.c:1510
+#: sequencer.c:1506
msgid "corrupt author: missing date information"
msgstr "hasar görmüş yazar: tarih bilgisi eksik"
-#: sequencer.c:1549 builtin/am.c:1670 builtin/commit.c:1822 builtin/merge.c:915
-#: builtin/merge.c:940 t/helper/test-fast-rebase.c:78
+#: sequencer.c:1545 builtin/am.c:1671 builtin/commit.c:1821 builtin/merge.c:921
+#: builtin/merge.c:946 t/helper/test-fast-rebase.c:78
msgid "failed to write commit object"
msgstr "işleme nesnesi yazılamadı"
-#: sequencer.c:1576 sequencer.c:4523 t/helper/test-fast-rebase.c:199
+#: sequencer.c:1572 sequencer.c:4496 t/helper/test-fast-rebase.c:199
#: t/helper/test-fast-rebase.c:217
#, c-format
msgid "could not update %s"
msgstr "%s güncellenemedi"
-#: sequencer.c:1625
+#: sequencer.c:1621
#, c-format
msgid "could not parse commit %s"
msgstr "%s işlemesi ayrıştırılamadı"
-#: sequencer.c:1630
+#: sequencer.c:1626
#, c-format
msgid "could not parse parent commit %s"
msgstr "üst işleme %s ayrıştırılamadı"
-#: sequencer.c:1713 sequencer.c:1994
+#: sequencer.c:1709 sequencer.c:1990
#, c-format
msgid "unknown command: %d"
msgstr "bilinmeyen komut: %d"
-#: sequencer.c:1755
+#: sequencer.c:1751
msgid "This is the 1st commit message:"
msgstr "Birinci iÅŸleme iletisi bu:"
-#: sequencer.c:1756
+#: sequencer.c:1752
#, c-format
msgid "This is the commit message #%d:"
msgstr "Ä°ÅŸleme iletisi #%d bu:"
-#: sequencer.c:1757
+#: sequencer.c:1753
msgid "The 1st commit message will be skipped:"
msgstr "Birinci iÅŸlemenin iletisi atlanacak:"
-#: sequencer.c:1758
+#: sequencer.c:1754
#, c-format
msgid "The commit message #%d will be skipped:"
msgstr "Ä°ÅŸleme iletisi #%d atlanacak:"
-#: sequencer.c:1759
+#: sequencer.c:1755
#, c-format
msgid "This is a combination of %d commits."
msgstr "Bu %d iÅŸlemenin bir birleÅŸimi."
-#: sequencer.c:1906 sequencer.c:1963
+#: sequencer.c:1902 sequencer.c:1959
#, c-format
msgid "cannot write '%s'"
msgstr "'%s' yazılamıyor"
-#: sequencer.c:1953
+#: sequencer.c:1949
msgid "need a HEAD to fixup"
msgstr "düzeltmek için bir HEAD gerekiyor"
-#: sequencer.c:1955 sequencer.c:3596
+#: sequencer.c:1951 sequencer.c:3592
msgid "could not read HEAD"
msgstr "HEAD okunamadı"
-#: sequencer.c:1957
+#: sequencer.c:1953
msgid "could not read HEAD's commit message"
msgstr "HEAD'in işleme iletisi okunamadı"
-#: sequencer.c:1981
+#: sequencer.c:1977
#, c-format
msgid "could not read commit message of %s"
msgstr "%s işleme iletisi okunamadı"
-#: sequencer.c:2091
+#: sequencer.c:2087
msgid "your index file is unmerged."
msgstr "indeks dosyanız birleştirilmemiş"
-#: sequencer.c:2098
+#: sequencer.c:2094
msgid "cannot fixup root commit"
msgstr "kök işleme düzeltilemiyor"
-#: sequencer.c:2117
+#: sequencer.c:2113
#, c-format
msgid "commit %s is a merge but no -m option was given."
msgstr "%s işlemesi bir birleştirme; ancak bir -m seçeneği verilmedi."
-#: sequencer.c:2125 sequencer.c:2133
+#: sequencer.c:2121 sequencer.c:2129
#, c-format
msgid "commit %s does not have parent %d"
msgstr "%s işlemesinin %d diye bir üst ögesi yok"
-#: sequencer.c:2139
+#: sequencer.c:2135
#, c-format
msgid "cannot get commit message for %s"
msgstr "%s işlemesinin iletisi alınamıyor"
#. TRANSLATORS: The first %s will be a "todo" command like
#. "revert" or "pick", the second %s a SHA1.
-#: sequencer.c:2158
+#: sequencer.c:2154
#, c-format
msgid "%s: cannot parse parent commit %s"
msgstr "%s: üst işleme %s ayrıştırılamıyor"
-#: sequencer.c:2224
+#: sequencer.c:2220
#, c-format
msgid "could not rename '%s' to '%s'"
msgstr "'%s', '%s' olarak yeniden adlandırılamadı"
-#: sequencer.c:2284
+#: sequencer.c:2280
#, c-format
msgid "could not revert %s... %s"
msgstr "%s geri alınamadı... %s"
-#: sequencer.c:2285
+#: sequencer.c:2281
#, c-format
msgid "could not apply %s... %s"
msgstr "%s uygulanamadı... %s"
-#: sequencer.c:2306
+#: sequencer.c:2302
#, c-format
msgid "dropping %s %s -- patch contents already upstream\n"
msgstr "%s %s bırakılıyor -- yama içeriği halihazırda üstkaynakta\n"
-#: sequencer.c:2364
+#: sequencer.c:2360
#, c-format
msgid "git %s: failed to read the index"
msgstr "git %s: indeks okunamadı"
-#: sequencer.c:2372
+#: sequencer.c:2368
#, c-format
msgid "git %s: failed to refresh the index"
msgstr "git %s: indeks yenilenemedi"
-#: sequencer.c:2452
+#: sequencer.c:2448
#, c-format
msgid "%s does not accept arguments: '%s'"
msgstr "%s argüman kabul etmiyor: '%s'"
-#: sequencer.c:2461
+#: sequencer.c:2457
#, c-format
msgid "missing arguments for %s"
msgstr "%s için eksik argüman"
-#: sequencer.c:2504
+#: sequencer.c:2500
#, c-format
msgid "could not parse '%s'"
msgstr "'%s' ayrıştırılamadı"
-#: sequencer.c:2565
+#: sequencer.c:2561
#, c-format
msgid "invalid line %d: %.*s"
msgstr "geçersiz satır %d: %.*s"
-#: sequencer.c:2576
+#: sequencer.c:2572
#, c-format
msgid "cannot '%s' without a previous commit"
msgstr "öncesinde bir işleme olmadan '%s' yapılamıyor"
-#: sequencer.c:2624 builtin/rebase.c:184
+#: sequencer.c:2620 builtin/rebase.c:185
#, c-format
msgid "could not read '%s'."
msgstr "'%s' okunamadı."
-#: sequencer.c:2662
+#: sequencer.c:2658
msgid "cancelling a cherry picking in progress"
msgstr "sürmekte olan bir seç-al iptal ediliyor"
-#: sequencer.c:2671
+#: sequencer.c:2667
msgid "cancelling a revert in progress"
msgstr "sürmekte olan bir geri al iptal ediliyor"
-#: sequencer.c:2711
+#: sequencer.c:2707
msgid "please fix this using 'git rebase --edit-todo'."
msgstr "lütfen bunu 'git rebase --edit-todo' kullanarak onarın."
-#: sequencer.c:2713
+#: sequencer.c:2709
#, c-format
msgid "unusable instruction sheet: '%s'"
msgstr "kullanılabilir olmayan yönerge tablosu: '%s'"
-#: sequencer.c:2718
+#: sequencer.c:2714
msgid "no commits parsed."
msgstr "Hiçbir işleme ayrıştırılmadı."
-#: sequencer.c:2729
+#: sequencer.c:2725
msgid "cannot cherry-pick during a revert."
msgstr "bir geri al sırasında seç-al yapılamıyor"
-#: sequencer.c:2731
+#: sequencer.c:2727
msgid "cannot revert during a cherry-pick."
msgstr "bir seç-al sırasında geri al yapılamıyor"
-#: sequencer.c:2809
-#, c-format
-msgid "invalid value for %s: %s"
-msgstr "%s için geçersiz değer: %s"
-
-#: sequencer.c:2918
+#: sequencer.c:2914
msgid "unusable squash-onto"
msgstr "kullanılabilir olmayan squash-onto"
-#: sequencer.c:2938
+#: sequencer.c:2934
#, c-format
msgid "malformed options sheet: '%s'"
msgstr "hatalı oluşturulmuş seçenekler tablosu: '%s'"
-#: sequencer.c:3033 sequencer.c:4902
+#: sequencer.c:3029 sequencer.c:4875
msgid "empty commit set passed"
msgstr "boş işleme seti aktarıldı"
-#: sequencer.c:3050
+#: sequencer.c:3046
msgid "revert is already in progress"
msgstr "geri al halihazırda sürüyor"
-#: sequencer.c:3052
+#: sequencer.c:3048
#, c-format
msgid "try \"git revert (--continue | %s--abort | --quit)\""
msgstr "\"git revert (--continue | %s--abort | --quit)\" deneyin"
-#: sequencer.c:3055
+#: sequencer.c:3051
msgid "cherry-pick is already in progress"
msgstr "seç-al halihazırda sürüyor"
-#: sequencer.c:3057
+#: sequencer.c:3053
#, c-format
msgid "try \"git cherry-pick (--continue | %s--abort | --quit)\""
msgstr "\"git cherry-pick (--continue | %s--abort | --quit)\" deneyin"
-#: sequencer.c:3071
+#: sequencer.c:3067
#, c-format
msgid "could not create sequencer directory '%s'"
msgstr "ardıştırıcı dizini '%s' oluşturulamadı"
-#: sequencer.c:3086
+#: sequencer.c:3082
msgid "could not lock HEAD"
msgstr "HEAD kilitlenemedi"
-#: sequencer.c:3146 sequencer.c:4612
+#: sequencer.c:3142 sequencer.c:4585
msgid "no cherry-pick or revert in progress"
msgstr "süren bir seç-al veya geri al yok"
-#: sequencer.c:3148 sequencer.c:3159
+#: sequencer.c:3144 sequencer.c:3155
msgid "cannot resolve HEAD"
msgstr "HEAD çözülemiyor"
-#: sequencer.c:3150 sequencer.c:3194
+#: sequencer.c:3146 sequencer.c:3190
msgid "cannot abort from a branch yet to be born"
msgstr "daha doğmamış bir daldan iptal edilemiyor"
-#: sequencer.c:3180 builtin/fetch.c:1004 builtin/fetch.c:1416
-#: builtin/grep.c:772
+#: sequencer.c:3176 builtin/fetch.c:1030 builtin/fetch.c:1457
+#: builtin/grep.c:774
#, c-format
msgid "cannot open '%s'"
msgstr "'%s' açılamıyor"
-#: sequencer.c:3182
+#: sequencer.c:3178
#, c-format
msgid "cannot read '%s': %s"
msgstr "'%s' okunamıyor: %s"
-#: sequencer.c:3183
+#: sequencer.c:3179
msgid "unexpected end of file"
msgstr "beklenmedik dosya sonu"
-#: sequencer.c:3189
+#: sequencer.c:3185
#, c-format
msgid "stored pre-cherry-pick HEAD file '%s' is corrupt"
msgstr "depolanmış seç-al öncesi HEAD dosyası '%s' hasar görmüş"
-#: sequencer.c:3200
+#: sequencer.c:3196
msgid "You seem to have moved HEAD. Not rewinding, check your HEAD!"
msgstr "HEAD'i taşımış görünüyorsunuz. Geri sarılmıyor, HEAD'inizi denetleyin!"
-#: sequencer.c:3241
+#: sequencer.c:3237
msgid "no revert in progress"
msgstr "süren bir geri al yok"
-#: sequencer.c:3250
+#: sequencer.c:3246
msgid "no cherry-pick in progress"
msgstr "süren bir seç-al yok"
-#: sequencer.c:3260
+#: sequencer.c:3256
msgid "failed to skip the commit"
msgstr "işleme atlanamadı"
-#: sequencer.c:3267
+#: sequencer.c:3263
msgid "there is nothing to skip"
msgstr "atlanacak bir ÅŸey yok"
-#: sequencer.c:3270
+#: sequencer.c:3266
#, c-format
msgid ""
"have you committed already?\n"
@@ -8247,16 +8464,16 @@ msgstr ""
"İşlemeyi yaptınız mı?\n"
"\"git %s --continue\" deneyin.\""
-#: sequencer.c:3432 sequencer.c:4503
+#: sequencer.c:3428 sequencer.c:4476
msgid "cannot read HEAD"
msgstr "HEAD okunamıyor"
-#: sequencer.c:3449
+#: sequencer.c:3445
#, c-format
msgid "unable to copy '%s' to '%s'"
msgstr "'%s', '%s' konumuna kopyalanamıyor"
-#: sequencer.c:3457
+#: sequencer.c:3453
#, c-format
msgid ""
"You can amend the commit now, with\n"
@@ -8275,27 +8492,27 @@ msgstr ""
"\n"
"\tgit rebase --continue\n"
-#: sequencer.c:3467
+#: sequencer.c:3463
#, c-format
msgid "Could not apply %s... %.*s"
msgstr "%s uygulanamıyor... %.*s"
-#: sequencer.c:3474
+#: sequencer.c:3470
#, c-format
msgid "Could not merge %.*s"
msgstr "%.*s birleÅŸtirilemedi"
-#: sequencer.c:3488 sequencer.c:3492 builtin/difftool.c:633
+#: sequencer.c:3484 sequencer.c:3488 builtin/difftool.c:633
#, c-format
msgid "could not copy '%s' to '%s'"
msgstr "'%s', '%s' konumuna kopyalanamadı"
-#: sequencer.c:3503
+#: sequencer.c:3499
#, c-format
msgid "Executing: %s\n"
msgstr "Çalıştırılıyor: %s\n"
-#: sequencer.c:3514
+#: sequencer.c:3510
#, c-format
msgid ""
"execution failed: %s\n"
@@ -8310,11 +8527,11 @@ msgstr ""
"\tgit rebase --continue\n"
"\n"
-#: sequencer.c:3520
+#: sequencer.c:3516
msgid "and made changes to the index and/or the working tree\n"
msgstr "ve indekse ve/veya çalışma ağacına değişiklikler yapıldı\n"
-#: sequencer.c:3526
+#: sequencer.c:3522
#, c-format
msgid ""
"execution succeeded: %s\n"
@@ -8331,90 +8548,90 @@ msgstr ""
"\tgit rebase --continue\n"
"\n"
-#: sequencer.c:3586
+#: sequencer.c:3582
#, c-format
msgid "illegal label name: '%.*s'"
msgstr "izin verilmeyen etiket adı: '%.*s'"
-#: sequencer.c:3659
+#: sequencer.c:3655
msgid "writing fake root commit"
msgstr "sahte kök işlemesi yazılıyor"
-#: sequencer.c:3664
+#: sequencer.c:3660
msgid "writing squash-onto"
msgstr "squash-onto yazılıyor"
-#: sequencer.c:3743
+#: sequencer.c:3739
#, c-format
msgid "could not resolve '%s'"
msgstr "'%s' çözülemedi"
-#: sequencer.c:3775
+#: sequencer.c:3771
msgid "cannot merge without a current revision"
msgstr "güncel bir revizyon olmadan birleştirilemiyor"
-#: sequencer.c:3797
+#: sequencer.c:3793
#, c-format
msgid "unable to parse '%.*s'"
msgstr "'%.*s' ayrıştırılamıyor"
-#: sequencer.c:3806
+#: sequencer.c:3802
#, c-format
msgid "nothing to merge: '%.*s'"
msgstr "birleÅŸtirilecek bir ÅŸey yok: '%.*s'"
-#: sequencer.c:3818
+#: sequencer.c:3814
msgid "octopus merge cannot be executed on top of a [new root]"
msgstr "ahtapot birleştirmesi bir [yeni kök]ün üzerinde çalıştırılamaz"
-#: sequencer.c:3873
+#: sequencer.c:3869
#, c-format
msgid "could not get commit message of '%s'"
msgstr "'%s' işlemesinin işleme iletisi alınamadı"
-#: sequencer.c:4019
+#: sequencer.c:4013
#, c-format
msgid "could not even attempt to merge '%.*s'"
msgstr "şunu birleştirme girişiminde bulunulamadı bile: '%.*s'"
-#: sequencer.c:4035
+#: sequencer.c:4029
msgid "merge: Unable to write new index file"
msgstr "merge: Yeni indeks dosyası yazılamıyor"
-#: sequencer.c:4116
+#: sequencer.c:4110
msgid "Cannot autostash"
msgstr "Kendiliğinden zulalanamıyor"
-#: sequencer.c:4119
+#: sequencer.c:4113
#, c-format
msgid "Unexpected stash response: '%s'"
msgstr "Beklenmedik zula yanıtı: '%s'"
-#: sequencer.c:4125
+#: sequencer.c:4119
#, c-format
msgid "Could not create directory for '%s'"
msgstr "'%s' için dizin oluşturulamadı"
-#: sequencer.c:4128
+#: sequencer.c:4122
#, c-format
msgid "Created autostash: %s\n"
msgstr "Zula kendiliÄŸinden oluÅŸturuldu: %s\n"
-#: sequencer.c:4132
+#: sequencer.c:4124
msgid "could not reset --hard"
msgstr "'reset --hard' yapılamadı"
-#: sequencer.c:4157
+#: sequencer.c:4148
#, c-format
msgid "Applied autostash.\n"
msgstr "Kendiliğinden zulalama uygulandı.\n"
-#: sequencer.c:4169
+#: sequencer.c:4160
#, c-format
msgid "cannot store %s"
msgstr "%s depolanamıyor"
-#: sequencer.c:4172
+#: sequencer.c:4163
#, c-format
msgid ""
"%s\n"
@@ -8425,29 +8642,29 @@ msgstr ""
"Değişiklikleriniz zulada güvende.\n"
"Ä°stediÄŸiniz zaman \"git stash pop\" veya \"git stash drop\" yapabilirsiniz.\n"
-#: sequencer.c:4177
+#: sequencer.c:4168
msgid "Applying autostash resulted in conflicts."
msgstr "Kendiliğinden zulalama çakışmalara neden oldu."
-#: sequencer.c:4178
+#: sequencer.c:4169
msgid "Autostash exists; creating a new stash entry."
msgstr "KendiliÄŸinden zulalama mevcut; yeni bir zula girdisi oluÅŸturuluyor."
-#: sequencer.c:4252
+#: sequencer.c:4225
msgid "could not detach HEAD"
msgstr "HEAD ayrılamadı"
-#: sequencer.c:4267
+#: sequencer.c:4240
#, c-format
msgid "Stopped at HEAD\n"
msgstr "HEAD'de duruldu\n"
-#: sequencer.c:4269
+#: sequencer.c:4242
#, c-format
msgid "Stopped at %s\n"
msgstr "%s konumunda duruldu\n"
-#: sequencer.c:4301
+#: sequencer.c:4274
#, c-format
msgid ""
"Could not execute the todo command\n"
@@ -8468,58 +8685,58 @@ msgstr ""
"\tgit rebase --edit-todo\n"
"\tgit rebase --continue\n"
-#: sequencer.c:4347
+#: sequencer.c:4320
#, c-format
msgid "Rebasing (%d/%d)%s"
msgstr "Yeniden temellendiriliyor: (%d/%d)%s"
-#: sequencer.c:4393
+#: sequencer.c:4366
#, c-format
msgid "Stopped at %s... %.*s\n"
msgstr "%s konumunda durdu... %.*s\n"
-#: sequencer.c:4463
+#: sequencer.c:4436
#, c-format
msgid "unknown command %d"
msgstr "bilinmeyen komut %d"
-#: sequencer.c:4511
+#: sequencer.c:4484
msgid "could not read orig-head"
msgstr "orig-head okunamadı"
-#: sequencer.c:4516
+#: sequencer.c:4489
msgid "could not read 'onto'"
msgstr "'onto' okunamadı"
-#: sequencer.c:4530
+#: sequencer.c:4503
#, c-format
msgid "could not update HEAD to %s"
msgstr "HEAD şu konuma güncellenemedi: %s"
-#: sequencer.c:4590
+#: sequencer.c:4563
#, c-format
msgid "Successfully rebased and updated %s.\n"
msgstr "%s başarıyla yeniden temellendirildi ve güncellendi.\n"
-#: sequencer.c:4642
+#: sequencer.c:4615
msgid "cannot rebase: You have unstaged changes."
msgstr "Yeniden temellendirilemiyor: Hazırlanmamış değişiklikleriniz var."
-#: sequencer.c:4651
+#: sequencer.c:4624
msgid "cannot amend non-existing commit"
msgstr "var olmayan iÅŸleme deÄŸiÅŸtirilemiyor"
-#: sequencer.c:4653
+#: sequencer.c:4626
#, c-format
msgid "invalid file: '%s'"
msgstr "geçersiz dosya: '%s'"
-#: sequencer.c:4655
+#: sequencer.c:4628
#, c-format
msgid "invalid contents: '%s'"
msgstr "geçersiz içerik: '%s'"
-#: sequencer.c:4658
+#: sequencer.c:4631
msgid ""
"\n"
"You have uncommitted changes in your working tree. Please, commit them\n"
@@ -8529,68 +8746,68 @@ msgstr ""
"Çalışma ağacınızda işlenmemiş değişiklikleriniz var. Lütfen önce\n"
"onları işleyin ve ardından 'git rebase --continue' yapın."
-#: sequencer.c:4694 sequencer.c:4733
+#: sequencer.c:4667 sequencer.c:4706
#, c-format
msgid "could not write file: '%s'"
msgstr "dosya yazılamadı: '%s'"
-#: sequencer.c:4749
+#: sequencer.c:4722
msgid "could not remove CHERRY_PICK_HEAD"
msgstr "CHERRY_PICK_HEAD kaldırılamadı"
-#: sequencer.c:4759
+#: sequencer.c:4732
msgid "could not commit staged changes."
msgstr "Hazırlanmış değişiklikler işlenemedi."
-#: sequencer.c:4879
+#: sequencer.c:4852
#, c-format
msgid "%s: can't cherry-pick a %s"
msgstr "%s: Bir %s seçip alınamıyor"
-#: sequencer.c:4883
+#: sequencer.c:4856
#, c-format
msgid "%s: bad revision"
msgstr "%s hatalı revizyon"
-#: sequencer.c:4918
+#: sequencer.c:4891
msgid "can't revert as initial commit"
msgstr "ilk işleme geri alınamaz"
-#: sequencer.c:5189 sequencer.c:5418
+#: sequencer.c:5162 sequencer.c:5391
#, c-format
msgid "skipped previously applied commit %s"
msgstr "daha önce uygulanan %s işlemesi atlandı"
-#: sequencer.c:5259 sequencer.c:5434
+#: sequencer.c:5232 sequencer.c:5407
msgid "use --reapply-cherry-picks to include skipped commits"
msgstr "atlanan işlemeleri içermek için --reapply-cherry-picks kullanın"
-#: sequencer.c:5405
+#: sequencer.c:5378
msgid "make_script: unhandled options"
msgstr "make_script: ele alınmayan seçenekler"
-#: sequencer.c:5408
+#: sequencer.c:5381
msgid "make_script: error preparing revisions"
msgstr "make_script: revizyonlar hazırlanırken hata"
-#: sequencer.c:5666 sequencer.c:5683
+#: sequencer.c:5639 sequencer.c:5656
msgid "nothing to do"
msgstr "yapılacak bir şey yok"
-#: sequencer.c:5702
+#: sequencer.c:5675
msgid "could not skip unnecessary pick commands"
msgstr "gerekli olmayan seçim komutları atlanamadı"
-#: sequencer.c:5802
+#: sequencer.c:5775
msgid "the script was already rearranged."
msgstr "betik halihazırda yeniden düzenlenmişti"
-#: setup.c:134
+#: setup.c:135
#, c-format
msgid "'%s' is outside repository at '%s'"
msgstr "'%s', '%s' konumunda depo dışında"
-#: setup.c:186
+#: setup.c:187
#, c-format
msgid ""
"%s: no such path in the working tree.\n"
@@ -8599,7 +8816,7 @@ msgstr ""
"%s: Çalışma ağacında böyle bir yol yok.\n"
"Yerelde var olmayan yolları belirtmek için 'git <komut> -- <yol>... kullanın."
-#: setup.c:199
+#: setup.c:200
#, c-format
msgid ""
"ambiguous argument '%s': unknown revision or path not in the working tree.\n"
@@ -8611,12 +8828,12 @@ msgstr ""
"Yolları revizyonlardan ayırmak için '--' kullanın, şöyle:\n"
"'git <komut> [<revizyon>...] -- [<dosya>...]'"
-#: setup.c:265
+#: setup.c:266
#, c-format
msgid "option '%s' must come before non-option arguments"
msgstr "'%s' seçeneği seçenek olmayan argümanlardan önce gelmeli"
-#: setup.c:284
+#: setup.c:285
#, c-format
msgid ""
"ambiguous argument '%s': both revision and filename\n"
@@ -8627,100 +8844,100 @@ msgstr ""
"Yolları revizyonlardan ayırmak için '--' kullanın, şöyle:\n"
"'git <komut> [<revizyon>...] -- [<dosya>...]'"
-#: setup.c:420
+#: setup.c:421
msgid "unable to set up work tree using invalid config"
msgstr "geçersiz yapılandırma kullanılarak çalışma ağacı kurulamıyor"
-#: setup.c:424 builtin/rev-parse.c:895
+#: setup.c:425 builtin/rev-parse.c:895
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:722
+#: setup.c:724
#, c-format
msgid "Expected git repo version <= %d, found %d"
msgstr "Beklenen git repo sürümü <= %d, %d bulundu"
-#: setup.c:730
+#: setup.c:732
msgid "unknown repository extension found:"
msgid_plural "unknown repository extensions found:"
msgstr[0] "bilinmeyen depo geniÅŸletmesi bulundu:"
msgstr[1] "bilinmeyen depo geniÅŸletmeleri bulundu:"
-#: setup.c:744
+#: setup.c:746
msgid "repo version is 0, but v1-only extension found:"
msgid_plural "repo version is 0, but v1-only extensions found:"
msgstr[0] "depo sürümü 0; ancak v1'e özel genişletme bulundu:"
msgstr[1] "depo sürümü 0; ancak v1'e özel genişletmeler bulundu:"
-#: setup.c:765
+#: setup.c:767
#, c-format
msgid "error opening '%s'"
msgstr "'%s' açılırken hata"
-#: setup.c:767
+#: setup.c:769
#, 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:769
+#: setup.c:771
#, c-format
msgid "error reading %s"
msgstr "%s okunurken hata"
-#: setup.c:771
+#: setup.c:773
#, c-format
msgid "invalid gitfile format: %s"
msgstr "geçersiz gitfile biçimi: %s"
-#: setup.c:773
+#: setup.c:775
#, c-format
msgid "no path in gitfile: %s"
msgstr "gitfile içinde yol yok: %s"
-#: setup.c:775
+#: setup.c:777
#, c-format
msgid "not a git repository: %s"
msgstr "bir git deposu deÄŸil: %s"
-#: setup.c:877
+#: setup.c:879
#, c-format
msgid "'$%s' too big"
msgstr "'$%s' çok büyük"
-#: setup.c:891
+#: setup.c:893
#, c-format
msgid "not a git repository: '%s'"
msgstr "bir git deposu deÄŸil: '%s'"
-#: setup.c:920 setup.c:922 setup.c:953
+#: setup.c:922 setup.c:924 setup.c:955
#, c-format
msgid "cannot chdir to '%s'"
msgstr "'%s' konumuna chdir yapılamıyor"
-#: setup.c:925 setup.c:981 setup.c:991 setup.c:1030 setup.c:1038
+#: setup.c:927 setup.c:983 setup.c:993 setup.c:1032 setup.c:1040
msgid "cannot come back to cwd"
msgstr "cwd'ye geri dönülemiyor"
-#: setup.c:1052
+#: setup.c:1054
#, c-format
msgid "failed to stat '%*s%s%s'"
msgstr "'%*s%s%s' bilgileri alınamadı"
-#: setup.c:1295
+#: setup.c:1338
msgid "Unable to read current working directory"
msgstr "Şu anki çalışma dizini okunamıyor"
-#: setup.c:1304 setup.c:1310
+#: setup.c:1347 setup.c:1353
#, c-format
msgid "cannot change to '%s'"
msgstr "ÅŸuraya deÄŸiÅŸtirilemiyor: '%s'"
-#: setup.c:1315
+#: setup.c:1358
#, 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:1321
+#: setup.c:1364
#, c-format
msgid ""
"not a git repository (or any parent up to mount point %s)\n"
@@ -8730,7 +8947,20 @@ msgstr ""
"Dosya sistemi sınırında duruluyor (GIT_DISCOVERY_ACROSS_FILESYSTEM "
"ayarlanmamış)."
-#: setup.c:1446
+#: setup.c:1374
+#, c-format
+msgid ""
+"unsafe repository ('%s' is owned by someone else)\n"
+"To add an exception for this directory, call:\n"
+"\n"
+"\tgit config --global --add safe.directory %s"
+msgstr ""
+"güvensiz depo ('%s' sahibi bir başkası)\n"
+"Bu dizin için bir istisna eklemek için şunu çağırın:\n"
+"\n"
+"\tgit config --global --add safe.directory %s"
+
+#: setup.c:1502
#, c-format
msgid ""
"problem with core.sharedRepository filemode value (0%.3o).\n"
@@ -8739,57 +8969,61 @@ 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:1508
+#: setup.c:1564
msgid "fork failed"
msgstr "çatallama başarısız"
-#: setup.c:1513
+#: setup.c:1569
msgid "setsid failed"
msgstr "setsid başarısız"
-#: sparse-index.c:289
+#: sparse-index.c:285
#, c-format
msgid "index entry is a directory, but not sparse (%08x)"
msgstr "indeks girdisi bir dizin; ancak aralıklı değil (%08x)"
+#: split-index.c:9
+msgid "cannot use split index with a sparse index"
+msgstr "bir aralıklı indeksle bölünmüş indeks kullanılamıyor"
+
#. TRANSLATORS: IEC 80000-13:2008 gibibyte
-#: strbuf.c:850
+#: strbuf.c:851
#, c-format
msgid "%u.%2.2u GiB"
msgstr "%u.%2.2u GiB"
#. TRANSLATORS: IEC 80000-13:2008 gibibyte/second
-#: strbuf.c:852
+#: strbuf.c:853
#, c-format
msgid "%u.%2.2u GiB/s"
msgstr "%u.%2.2u GiB/sn"
#. TRANSLATORS: IEC 80000-13:2008 mebibyte
-#: strbuf.c:860
+#: strbuf.c:861
#, c-format
msgid "%u.%2.2u MiB"
msgstr "%u.%2.2u MiB"
#. TRANSLATORS: IEC 80000-13:2008 mebibyte/second
-#: strbuf.c:862
+#: strbuf.c:863
#, c-format
msgid "%u.%2.2u MiB/s"
msgstr "%u.%2.2u MiB/sn"
#. TRANSLATORS: IEC 80000-13:2008 kibibyte
-#: strbuf.c:869
+#: strbuf.c:870
#, c-format
msgid "%u.%2.2u KiB"
msgstr "%u.%2.2u KiB"
#. TRANSLATORS: IEC 80000-13:2008 kibibyte/second
-#: strbuf.c:871
+#: strbuf.c:872
#, c-format
msgid "%u.%2.2u KiB/s"
msgstr "%u.%2.2u KiB/sn"
#. TRANSLATORS: IEC 80000-13:2008 byte
-#: strbuf.c:877
+#: strbuf.c:878
#, c-format
msgid "%u byte"
msgid_plural "%u bytes"
@@ -8797,85 +9031,85 @@ msgstr[0] "%u bayt"
msgstr[1] "%u bayt"
#. TRANSLATORS: IEC 80000-13:2008 byte/second
-#: strbuf.c:879
+#: strbuf.c:880
#, c-format
msgid "%u byte/s"
msgid_plural "%u bytes/s"
msgstr[0] "%u bayt/sn"
msgstr[1] "%u bayt/sn"
-#: strbuf.c:1186 wrapper.c:207 wrapper.c:377 builtin/am.c:765
-#: builtin/rebase.c:650
+#: strbuf.c:1187 wrapper.c:217 wrapper.c:387 builtin/am.c:766
+#: builtin/rebase.c:653
#, c-format
msgid "could not open '%s' for writing"
msgstr "'%s' yazma için açılamadı"
-#: strbuf.c:1195
+#: strbuf.c:1196
#, c-format
msgid "could not edit '%s'"
msgstr "'%s' düzenlenemedi"
-#: submodule-config.c:237
+#: submodule-config.c:238
#, c-format
msgid "ignoring suspicious submodule name: %s"
msgstr "kuşku doğuran altmodül yok sayılıyor: %s"
-#: submodule-config.c:304
+#: submodule-config.c:305
msgid "negative values not allowed for submodule.fetchjobs"
msgstr "submodule.fetchjobs için negatif değerlere izin verilmiyor"
-#: submodule-config.c:402
+#: submodule-config.c:403
#, c-format
msgid "ignoring '%s' which may be interpreted as a command-line option: %s"
msgstr ""
"'%s' bir komut satırı seçeneği olarak yorumlanabileceğinden yok sayılıyor: %s"
-#: submodule-config.c:499
+#: submodule-config.c:500 builtin/push.c:489 builtin/send-pack.c:148
#, c-format
-msgid "invalid value for %s"
-msgstr "%s için geçersiz değer"
+msgid "invalid value for '%s'"
+msgstr "'%s' için geçersiz değer"
-#: submodule-config.c:767
+#: submodule-config.c:828
#, c-format
msgid "Could not update .gitmodules entry %s"
msgstr ".gitmodules girdisi %s güncellenemedi"
-#: submodule.c:114 submodule.c:143
+#: submodule.c:115 submodule.c:144
msgid "Cannot change unmerged .gitmodules, resolve merge conflicts first"
msgstr ""
"Birleştirilmemiş .gitmodules değiştirilemiyor, önce birleştirme "
"çakışmalarını çözün"
-#: submodule.c:118 submodule.c:147
+#: submodule.c:119 submodule.c:148
#, c-format
msgid "Could not find section in .gitmodules where path=%s"
msgstr ".gitmodules içinde path=%s olan bölüm bulunamadı"
-#: submodule.c:154
+#: submodule.c:155
#, c-format
msgid "Could not remove .gitmodules entry for %s"
msgstr "%s için .gitmodules girdisi kaldırılamadı"
-#: submodule.c:165
+#: submodule.c:166
msgid "staging updated .gitmodules failed"
msgstr "güncellenmiş .gitmodules'u hazırlama başarısız oldu"
-#: submodule.c:358
+#: submodule.c:346
#, c-format
msgid "in unpopulated submodule '%s'"
msgstr "içi doldurulmamış '%s' altmodülünde"
-#: submodule.c:389
+#: submodule.c:377
#, c-format
msgid "Pathspec '%s' is in submodule '%.*s'"
msgstr "Yol belirteci '%s' '%.*s' altmodülünde"
-#: submodule.c:466
+#: submodule.c:454
#, c-format
msgid "bad --ignore-submodules argument: %s"
msgstr "hatalı --ignore-submodules argümanı: %s"
-#: submodule.c:844
+#: submodule.c:866
#, c-format
msgid ""
"Submodule in commit %s at path: '%s' collides with a submodule named the "
@@ -8884,12 +9118,12 @@ msgstr ""
"%s işlemesinde '%s' yolunda bulunan altmodül, aynı adlı bir altmodülle "
"çarpışıyor. Atlanıyor."
-#: submodule.c:954
+#: submodule.c:987
#, c-format
msgid "submodule entry '%s' (%s) is a %s, not a commit"
msgstr "altmodül girdisi '%s' (%s) bir %s, işleme değil"
-#: submodule.c:1042
+#: submodule.c:1069
#, c-format
msgid ""
"Could not run 'git rev-list <commits> --not --remotes -n 1' command in "
@@ -8898,36 +9132,46 @@ msgstr ""
"'%s' altmodülünde 'git rev-list <commits> --not --remotes -n 1' "
"çalıştırılamadı"
-#: submodule.c:1165
+#: submodule.c:1192
#, c-format
msgid "process for submodule '%s' failed"
msgstr "'%s' altmodülü için işlem başarısız oldu"
-#: submodule.c:1194 builtin/branch.c:699 builtin/submodule--helper.c:2714
+#: submodule.c:1221 builtin/branch.c:714 builtin/submodule--helper.c:2827
msgid "Failed to resolve HEAD as a valid ref."
msgstr "HEAD geçerli bir başvuru olarak çözülemedi."
-#: submodule.c:1205
+#: submodule.c:1232
#, c-format
msgid "Pushing submodule '%s'\n"
msgstr "'%s' altmodülü itiliyor\n"
-#: submodule.c:1208
+#: submodule.c:1235
#, c-format
msgid "Unable to push submodule '%s'\n"
msgstr "'%s' altmodülü itilemiyor\n"
-#: submodule.c:1491
+#: submodule.c:1567
#, c-format
msgid "Fetching submodule %s%s\n"
msgstr "%s%s altmodülü getiriliyor\n"
-#: submodule.c:1525
+#: submodule.c:1589
#, c-format
msgid "Could not access submodule '%s'\n"
msgstr "'%s' altmodülüne erişilemedi\n"
-#: submodule.c:1680
+#: submodule.c:1618
+#, c-format
+msgid "Could not access submodule '%s' at commit %s\n"
+msgstr "'%s' altmodülüne %s işlemesinde erişilemedi\n"
+
+#: submodule.c:1629
+#, c-format
+msgid "Fetching submodule %s%s at commit %s\n"
+msgstr "%s%s altmodülü %s işlemesinde getiriliyor\n"
+
+#: submodule.c:1849
#, c-format
msgid ""
"Errors during submodule fetch:\n"
@@ -8936,78 +9180,78 @@ msgstr ""
"Altmodül getirilirken hata:\n"
"%s"
-#: submodule.c:1705
+#: submodule.c:1874
#, c-format
msgid "'%s' not recognized as a git repository"
msgstr "'%s' bir git deposu olarak tanımlanamadı"
-#: submodule.c:1722
+#: submodule.c:1891
#, c-format
msgid "Could not run 'git status --porcelain=2' in submodule %s"
msgstr "'%s' altmodülü içinde 'git status --porcelain=2' çalıştırılamadı"
-#: submodule.c:1763
+#: submodule.c:1932
#, c-format
msgid "'git status --porcelain=2' failed in submodule %s"
msgstr "'%s' altmodülü içinde 'git status --porcelain=2' başarısız oldu"
-#: submodule.c:1838
+#: submodule.c:2007
#, c-format
msgid "could not start 'git status' in submodule '%s'"
msgstr "'%s' altmodülü içinde 'git status' başlatılamadı"
-#: submodule.c:1851
+#: submodule.c:2020
#, c-format
msgid "could not run 'git status' in submodule '%s'"
msgstr "'%s' altmodülü içinde 'git status' çalıştırılamadı"
-#: submodule.c:1868
+#: submodule.c:2037
#, c-format
msgid "Could not unset core.worktree setting in submodule '%s'"
msgstr "'%s' altmodülü içinde core.worktree ayarı kapatılamadı"
-#: submodule.c:1895 submodule.c:2210
+#: submodule.c:2064 submodule.c:2379
#, c-format
msgid "could not recurse into submodule '%s'"
msgstr "'%s' altmodülüne özyinelenemedi"
-#: submodule.c:1917
+#: submodule.c:2086
msgid "could not reset submodule index"
msgstr "altmodül indeksi sıfırlanamadı"
-#: submodule.c:1959
+#: submodule.c:2128
#, c-format
msgid "submodule '%s' has dirty index"
msgstr "'%s' altmodülü indeksi kirli"
-#: submodule.c:2013
+#: submodule.c:2182
#, c-format
msgid "Submodule '%s' could not be updated."
msgstr "'%s' altmodülü güncellenemedi."
-#: submodule.c:2081
+#: submodule.c:2250
#, c-format
msgid "submodule git dir '%s' is inside git dir '%.*s'"
msgstr "altmodül git dizini '%s', '%.*s' git dizini içinde"
-#: submodule.c:2102
+#: submodule.c:2271
#, c-format
msgid ""
"relocate_gitdir for submodule '%s' with more than one worktree not supported"
msgstr ""
"relocate_gitdir birden çok çalışma ağaçlı '%s' altmodülü için desteklenmiyor"
-#: submodule.c:2114 submodule.c:2174
+#: submodule.c:2283 submodule.c:2343
#, c-format
msgid "could not lookup name for submodule '%s'"
msgstr "'%s' altmodülü adı aranamadı"
-#: submodule.c:2118
+#: submodule.c:2287
#, c-format
msgid "refusing to move '%s' into an existing git dir"
msgstr "'%s' ögesini mevcut bir git dizinine taşıma reddediliyor"
-#: submodule.c:2124
+#: submodule.c:2293
#, c-format
msgid ""
"Migrating git directory of '%s%s' from\n"
@@ -9018,11 +9262,11 @@ msgstr ""
"ÅŸuradan: '%s'\n"
"ÅŸuraya: '%s'\n"
-#: submodule.c:2255
+#: submodule.c:2424
msgid "could not start ls-files in .."
msgstr "ls-files şurada başlatılamadı .."
-#: submodule.c:2295
+#: submodule.c:2464
#, c-format
msgid "ls-tree returned unexpected return code %d"
msgstr "ls-tree beklenmedik bir biçimde %d kodu ile çıktı"
@@ -9043,8 +9287,8 @@ msgstr "'%s' artbilgi komutunu çalıştırma başarısız oldu"
msgid "unknown value '%s' for key '%s'"
msgstr "bilinmeyen değer '%s' ('%s' anahtarı için)"
-#: trailer.c:547 trailer.c:552 trailer.c:557 builtin/remote.c:299
-#: builtin/remote.c:327
+#: trailer.c:547 trailer.c:552 trailer.c:557 builtin/remote.c:300
+#: builtin/remote.c:328
#, c-format
msgid "more than one %s"
msgstr "birden çok %s"
@@ -9059,11 +9303,11 @@ msgstr "'%.*s' artbilgisi içinde boş artbilgi jetonu"
msgid "could not read input file '%s'"
msgstr "'%s' girdi dosyası okunamadı"
-#: trailer.c:766 builtin/mktag.c:89 imap-send.c:1573
+#: trailer.c:766 builtin/mktag.c:88 imap-send.c:1563
msgid "could not read from stdin"
msgstr "stdin'den okunamadı"
-#: trailer.c:1024 wrapper.c:684
+#: trailer.c:1024 wrapper.c:760
#, c-format
msgid "could not stat %s"
msgstr "%s dosya bilgileri alınamadı"
@@ -9131,7 +9375,7 @@ msgstr "fast-import çalıştırılamadı"
msgid "error while running fast-import"
msgstr "fast-import çalıştırılırken hata"
-#: transport-helper.c:549 transport-helper.c:1251
+#: transport-helper.c:549 transport-helper.c:1254
#, c-format
msgid "could not read ref %s"
msgstr "%s başvurusu okunamadı"
@@ -9149,7 +9393,7 @@ msgstr "uzak servis yolu ayarlama protokol tarafından desteklenmiyor"
msgid "invalid remote service path"
msgstr "geçersiz uzak konum servis yolu"
-#: transport-helper.c:661 transport.c:1479
+#: transport-helper.c:661 transport.c:1496
msgid "operation not supported by protocol"
msgstr "işlem protokol tarafından desteklenmiyor"
@@ -9158,72 +9402,72 @@ msgstr "işlem protokol tarafından desteklenmiyor"
msgid "can't connect to subservice %s"
msgstr "%s altservisine bağlanılamıyor"
-#: transport-helper.c:693 transport.c:404
+#: transport-helper.c:693 transport.c:415
msgid "--negotiate-only requires protocol v2"
msgstr "--negotiate-only protokolün ikinci sürümünü gerektiriyor"
-#: transport-helper.c:755
+#: transport-helper.c:758
msgid "'option' without a matching 'ok/error' directive"
msgstr "eÅŸleÅŸen bir 'tamam/hata' direktifi olmadan 'option'"
-#: transport-helper.c:798
+#: transport-helper.c:801
#, c-format
msgid "expected ok/error, helper said '%s'"
msgstr "tamam/hata bekleniyordu, yardımcı şunu söyledi: '%s'"
-#: transport-helper.c:859
+#: transport-helper.c:862
#, c-format
msgid "helper reported unexpected status of %s"
msgstr "yardımcı %s beklenmedik durumu bildirdi"
-#: transport-helper.c:942
+#: transport-helper.c:945
#, c-format
msgid "helper %s does not support dry-run"
msgstr "%s yardımcısı 'dry-run' desteklemiyor"
-#: transport-helper.c:945
+#: transport-helper.c:948
#, c-format
msgid "helper %s does not support --signed"
msgstr "%s yardımcısı --signed desteklemiyor"
-#: transport-helper.c:948
+#: transport-helper.c:951
#, c-format
msgid "helper %s does not support --signed=if-asked"
msgstr "%s yardımcısı --signed=if-asked desteklemiyor"
-#: transport-helper.c:953
+#: transport-helper.c:956
#, c-format
msgid "helper %s does not support --atomic"
msgstr "%s yardımcısı --atomic desteklemiyor"
-#: transport-helper.c:957
+#: transport-helper.c:960
#, c-format
msgid "helper %s does not support --%s"
msgstr "%s yardımcısı --%s desteklemiyor"
-#: transport-helper.c:964
+#: transport-helper.c:967
#, c-format
msgid "helper %s does not support 'push-option'"
msgstr "%s yardımcısı 'push-option' desteklemiyor"
-#: transport-helper.c:1064
+#: transport-helper.c:1067
msgid "remote-helper doesn't support push; refspec needed"
msgstr "remote-helper itme desteklemiyor; baÅŸvuru belirteci gerekli"
-#: transport-helper.c:1069
+#: transport-helper.c:1072
#, c-format
msgid "helper %s does not support 'force'"
msgstr "%s yardımcısı 'force' desteklemiyor"
-#: transport-helper.c:1116
+#: transport-helper.c:1119
msgid "couldn't run fast-export"
msgstr "fast-export çalıştırılamadı"
-#: transport-helper.c:1121
+#: transport-helper.c:1124
msgid "error while running fast-export"
msgstr "fast-export çalıştırılırken hata"
-#: transport-helper.c:1146
+#: transport-helper.c:1149
#, c-format
msgid ""
"No refs in common and none specified; doing nothing.\n"
@@ -9232,52 +9476,52 @@ msgstr ""
"Ortak başvuru yok ve hiç belirtilmemiş; bir şey yapılmayacak.\n"
"Belki de bir dal belirtmelisiniz.\n"
-#: transport-helper.c:1228
+#: transport-helper.c:1231
#, c-format
msgid "unsupported object format '%s'"
msgstr "desteklenmeyen nesne biçimi '%s'"
-#: transport-helper.c:1237
+#: transport-helper.c:1240
#, c-format
msgid "malformed response in ref list: %s"
msgstr "başvuru listesinde hatalı oluşturulmuş yanıt: %s"
-#: transport-helper.c:1389
+#: transport-helper.c:1392
#, c-format
msgid "read(%s) failed"
msgstr "read(%s) başarısız oldu"
-#: transport-helper.c:1416
+#: transport-helper.c:1419
#, c-format
msgid "write(%s) failed"
msgstr "write(%s) başarısız oldu"
-#: transport-helper.c:1465
+#: transport-helper.c:1468
#, c-format
msgid "%s thread failed"
msgstr "%s iş parçacığı başarısız oldu"
-#: transport-helper.c:1469
+#: transport-helper.c:1472
#, c-format
msgid "%s thread failed to join: %s"
msgstr "%s iş parçacığı eklenemedi: %s"
-#: transport-helper.c:1488 transport-helper.c:1492
+#: transport-helper.c:1491 transport-helper.c:1495
#, 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:1529
+#: transport-helper.c:1532
#, c-format
msgid "%s process failed to wait"
msgstr "%s iÅŸlemi bekleyemedi"
-#: transport-helper.c:1533
+#: transport-helper.c:1536
#, c-format
msgid "%s process failed"
msgstr "%s işlemi başarısız oldu"
-#: transport-helper.c:1551 transport-helper.c:1560
+#: transport-helper.c:1554 transport-helper.c:1563
msgid "can't start thread for copying data"
msgstr "veri kopyalama için iş parçacığı başlatılamıyor"
@@ -9286,51 +9530,51 @@ msgstr "veri kopyalama için iş parçacığı başlatılamıyor"
msgid "Would set upstream of '%s' to '%s' of '%s'\n"
msgstr "'%s' üst kaynağı '%s' (kaynak: '%s') olarak ayarlanacak\n"
-#: transport.c:145
+#: transport.c:138
#, c-format
msgid "could not read bundle '%s'"
msgstr "'%s' demeti okunamadı"
-#: transport.c:227
+#: transport.c:234
#, c-format
msgid "transport: invalid depth option '%s'"
msgstr "transport: Geçersiz derinlik seçeneği '%s'"
-#: transport.c:279
+#: transport.c:289
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:280
+#: transport.c:290
msgid "server options require protocol version 2 or later"
msgstr "sunucu seçenekleri protokol sürüm 2 veya sonrasını gerektirir"
-#: transport.c:407
+#: transport.c:418
msgid "server does not support wait-for-done"
msgstr "Sunucu, wait-for-done desteklemiyor"
-#: transport.c:759
+#: transport.c:770
msgid "could not parse transport.color.* config"
msgstr "transport.color.* yapılandırması ayrıştırılamadı"
-#: transport.c:834
+#: transport.c:845
msgid "support for protocol v2 not implemented yet"
msgstr "protokol v2 desteği henüz yerine getirilmedi"
-#: transport.c:967
+#: transport.c:978
#, c-format
msgid "unknown value for config '%s': %s"
msgstr "'%s' yapılandırması için bilinmeyen değer: %s"
-#: transport.c:1033
+#: transport.c:1044
#, c-format
msgid "transport '%s' not allowed"
msgstr "'%s' taşıyıcısına izin verilmiyor"
-#: transport.c:1082
+#: transport.c:1093
msgid "git-over-rsync is no longer supported"
msgstr "git-over-rsync artık desteklenmiyor"
-#: transport.c:1185
+#: transport.c:1196
#, c-format
msgid ""
"The following submodule paths contain changes that can\n"
@@ -9339,7 +9583,7 @@ msgstr ""
"Aşağıdaki altmodül yolları başka hiçbir uzak konumda bulunamayan\n"
"değişiklikler içeriyor:\n"
-#: transport.c:1189
+#: transport.c:1200
#, c-format
msgid ""
"\n"
@@ -9366,11 +9610,11 @@ msgstr ""
"kullanın.\n"
"\n"
-#: transport.c:1197
+#: transport.c:1208
msgid "Aborting."
msgstr "Ä°ptal ediliyor."
-#: transport.c:1343
+#: transport.c:1354
msgid "failed to push all needed submodules"
msgstr "gereken tüm altmodüller itilemedi"
@@ -9650,16 +9894,16 @@ msgstr ""
"olmayan dosya sisteminde BÜYÜK/küçük harf duyarlı yollar) ve aynı çarpışan\n"
"gruptan yalnızca bir tanesi çalışma ağacında:\n"
-#: unpack-trees.c:1636
+#: unpack-trees.c:1664
msgid "Updating index flags"
msgstr "İndeks bayrakları güncelleniyor"
-#: unpack-trees.c:2803
+#: unpack-trees.c:2925
#, c-format
msgid "worktree and untracked commit have duplicate entries: %s"
msgstr "çalışma ağacı ve izlenmeyen işlemenin yinelenmiş girdileri var: %s"
-#: upload-pack.c:1565
+#: upload-pack.c:1579
msgid "expected flush after fetch arguments"
msgstr "getir argümanlarından sonra floş bekleniyordu"
@@ -9696,123 +9940,137 @@ msgstr "geçersiz '..' yol kesimi"
msgid "Fetching objects"
msgstr "Nesneler getiriliyor"
-#: worktree.c:238 builtin/am.c:2209 builtin/bisect--helper.c:156
+#: worktree.c:237 builtin/am.c:2210 builtin/bisect--helper.c:156
#, c-format
msgid "failed to read '%s'"
msgstr "'%s' okunamadı"
-#: worktree.c:305
+#: worktree.c:304
#, 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:316
+#: worktree.c:315
#, 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:328
+#: worktree.c:327
#, c-format
msgid "'%s' does not exist"
msgstr "'%s' mevcut deÄŸil"
-#: worktree.c:334
+#: worktree.c:333
#, c-format
msgid "'%s' is not a .git file, error code %d"
msgstr "'%s' bir .git dosyası değil, hata kodu %d"
-#: worktree.c:343
+#: worktree.c:342
#, c-format
msgid "'%s' does not point back to '%s'"
msgstr "'%s' ÅŸuna geri iÅŸaret etmiyor: '%s'"
-#: worktree.c:604
+#: worktree.c:600
msgid "not a directory"
msgstr "bir dizin deÄŸil"
-#: worktree.c:613
+#: worktree.c:609
msgid ".git is not a file"
msgstr ".git bir dosya deÄŸil"
-#: worktree.c:615
+#: worktree.c:611
msgid ".git file broken"
msgstr ".git dosyası bozuk"
-#: worktree.c:617
+#: worktree.c:613
msgid ".git file incorrect"
msgstr ".git dosyası doğru değil"
-#: worktree.c:723
+#: worktree.c:719
msgid "not a valid path"
msgstr "geçerli bir yol değil"
-#: worktree.c:729
+#: worktree.c:725
msgid "unable to locate repository; .git is not a file"
msgstr "depo konumu bulunamıyor: .git bir dosya değil"
-#: worktree.c:733
+#: worktree.c:729
msgid "unable to locate repository; .git file does not reference a repository"
msgstr "depo konumu bulunamıyor: .git dosyası bir depoya başvurmuyor"
-#: worktree.c:737
+#: worktree.c:733
msgid "unable to locate repository; .git file broken"
msgstr "depo konumu bulunamıyor: .git dosyası bozuk"
-#: worktree.c:743
+#: worktree.c:739
msgid "gitdir unreadable"
msgstr "okunamayan gitdir"
-#: worktree.c:747
+#: worktree.c:743
msgid "gitdir incorrect"
msgstr "doÄŸru olmayan gitdir"
-#: worktree.c:772
+#: worktree.c:768
msgid "not a valid directory"
msgstr "geçerli bir dizin değil"
-#: worktree.c:778
+#: worktree.c:774
msgid "gitdir file does not exist"
msgstr "gitdir dosyası mevcut değil"
-#: worktree.c:783 worktree.c:792
+#: worktree.c:779 worktree.c:788
#, c-format
msgid "unable to read gitdir file (%s)"
msgstr "gitdir dosyası (%s) okunamıyor"
-#: worktree.c:802
+#: worktree.c:798
#, c-format
msgid "short read (expected %<PRIuMAX> bytes, read %<PRIuMAX>)"
msgstr "az okundu (%<PRIuMAX> bayt bekleniyordu, %<PRIuMAX> okundu)"
-#: worktree.c:810
+#: worktree.c:806
msgid "invalid gitdir file"
msgstr "geçersiz gitdir dosyası"
-#: worktree.c:818
+#: worktree.c:814
msgid "gitdir file points to non-existent location"
msgstr "gitdir dosyası var olmayan bir konuma işaret ediyor"
-#: wrapper.c:151
+#: worktree.c:830
+#, c-format
+msgid "unable to set %s in '%s'"
+msgstr "%s, '%s' içinde ayarlanamıyor"
+
+#: worktree.c:832
+#, c-format
+msgid "unable to unset %s in '%s'"
+msgstr "%s, '%s' içinde ayarı kaldırılamıyor"
+
+#: worktree.c:852
+msgid "failed to set extensions.worktreeConfig setting"
+msgstr "extensions.worktreeConfig yapılandırması ayarlanamadı"
+
+#: wrapper.c:161
#, c-format
msgid "could not setenv '%s'"
msgstr "setenv '%s' yapılamadı"
-#: wrapper.c:203
+#: wrapper.c:213
#, c-format
msgid "unable to create '%s'"
msgstr "'%s' oluşturulamıyor"
-#: wrapper.c:205 wrapper.c:375
+#: wrapper.c:215 wrapper.c:385
#, c-format
msgid "could not open '%s' for reading and writing"
msgstr "'%s' okuma ve yazma için açılamadı"
-#: wrapper.c:406 wrapper.c:607
+#: wrapper.c:416 wrapper.c:683
#, c-format
msgid "unable to access '%s'"
msgstr "'%s' eriÅŸilemiyor"
-#: wrapper.c:615
+#: wrapper.c:691
msgid "unable to get current working directory"
msgstr "geçerli çalışma dizini alınamıyor"
@@ -9850,11 +10108,11 @@ msgstr ""
msgid " (use \"git rm <file>...\" to mark resolution)"
msgstr " (hazırlığı bitirmek için \"git rm <dosya>...\" kullanın)"
-#: wt-status.c:211 wt-status.c:1131
+#: wt-status.c:211 wt-status.c:1140
msgid "Changes to be committed:"
msgstr "Ä°ÅŸlenecek deÄŸiÅŸiklikler:"
-#: wt-status.c:234 wt-status.c:1140
+#: wt-status.c:234 wt-status.c:1149
msgid "Changes not staged for commit:"
msgstr "İşleme için hazırlanmamış değişiklikler:"
@@ -9954,22 +10212,22 @@ msgstr "değiştirilen içerik, "
msgid "untracked content, "
msgstr "izlenmeyen içerik, "
-#: wt-status.c:964
+#: wt-status.c:973
#, c-format
msgid "Your stash currently has %d entry"
msgid_plural "Your stash currently has %d entries"
msgstr[0] "Zulanızda şu anda %d girdi var"
msgstr[1] "Zulanızda şu anda %d girdi var"
-#: wt-status.c:995
+#: wt-status.c:1004
msgid "Submodules changed but not updated:"
msgstr "Değiştirilen; ancak güncellenmeyen altmodüller:"
-#: wt-status.c:997
+#: wt-status.c:1006
msgid "Submodule changes to be committed:"
msgstr "İşlenecek altmodül değişiklikleri:"
-#: wt-status.c:1079
+#: wt-status.c:1088
msgid ""
"Do not modify or remove the line above.\n"
"Everything below it will be ignored."
@@ -9977,7 +10235,7 @@ msgstr ""
"Yukarıdaki satırı değiştirmeyin veya kaldırmayın.\n"
"Altındaki her şey yok sayılacaktır."
-#: wt-status.c:1171
+#: wt-status.c:1180
#, c-format
msgid ""
"\n"
@@ -9988,114 +10246,114 @@ msgstr ""
"Dal önünde/arkasında değerlerini hesaplama %.2f saniye sürdü.\n"
"Bundan kaçınmak için --no-ahead-behind kullanabilirsiniz.\n"
-#: wt-status.c:1201
+#: wt-status.c:1210
msgid "You have unmerged paths."
msgstr "Birleştirilmemiş yollarınız var."
-#: wt-status.c:1204
+#: wt-status.c:1213
msgid " (fix conflicts and run \"git commit\")"
msgstr " (çakışmaları onar ve \"git commit\" çalıştır)"
-#: wt-status.c:1206
+#: wt-status.c:1215
msgid " (use \"git merge --abort\" to abort the merge)"
msgstr " (birleştirmeyi iptal etmek için \"git merge --abort\" kullanın)"
-#: wt-status.c:1210
+#: wt-status.c:1219
msgid "All conflicts fixed but you are still merging."
msgstr "Tüm çakışmalar onarıldı; ancak siz hâlâ birleştiriyorsunuz."
-#: wt-status.c:1213
+#: wt-status.c:1222
msgid " (use \"git commit\" to conclude merge)"
msgstr " (birleştirmeyi sonuçlandırmak için \"git commit\" kullanın)"
-#: wt-status.c:1224
+#: wt-status.c:1233
msgid "You are in the middle of an am session."
msgstr "Bir 'am' oturumunun tam ortasındasınız."
-#: wt-status.c:1227
+#: wt-status.c:1236
msgid "The current patch is empty."
msgstr "Mevcut yama boÅŸ."
-#: wt-status.c:1232
+#: wt-status.c:1241
msgid " (fix conflicts and then run \"git am --continue\")"
msgstr " (çakışmaları onar ve ardından \"git am --continue\" çalıştır)"
-#: wt-status.c:1234
+#: wt-status.c:1243
msgid " (use \"git am --skip\" to skip this patch)"
msgstr " (bu yamayı atlamak için \"git am --skip\" kullanın"
-#: wt-status.c:1237
+#: wt-status.c:1246
msgid ""
" (use \"git am --allow-empty\" to record this patch as an empty commit)"
msgstr ""
" (yamayı boş işleme kaydı olarak yazmak için \"git am --allow-empty\" "
"kullanın)"
-#: wt-status.c:1239
+#: wt-status.c:1248
msgid " (use \"git am --abort\" to restore the original branch)"
msgstr " (ilk dalı eski durumuna getirmek için \"git am --abort\" kullanın)"
-#: wt-status.c:1372
+#: wt-status.c:1381
msgid "git-rebase-todo is missing."
msgstr "git-rebase-todo eksik"
-#: wt-status.c:1374
+#: wt-status.c:1383
msgid "No commands done."
msgstr "Yerine getirilen bir komut yok."
-#: wt-status.c:1377
+#: wt-status.c:1386
#, c-format
-msgid "Last command done (%d command done):"
-msgid_plural "Last commands done (%d commands done):"
-msgstr[0] "Son yerine getirilen komut (toplamda %d komut):"
-msgstr[1] "Son yerine getirilen komutlar (toplamda %d komut):"
+msgid "Last command done (%<PRIuMAX> command done):"
+msgid_plural "Last commands done (%<PRIuMAX> commands done):"
+msgstr[0] "Son yerine getirilen komut (%<PRIuMAX> komut yapıldı):"
+msgstr[1] "Son yerine getirilen komutlar (%<PRIuMAX> komut yapıldı):"
-#: wt-status.c:1388
+#: wt-status.c:1397
#, c-format
msgid " (see more in file %s)"
msgstr " (ek bilgi için %s dosyasına bakın)"
-#: wt-status.c:1393
+#: wt-status.c:1402
msgid "No commands remaining."
msgstr "Kalan komut yok."
-#: wt-status.c:1396
+#: wt-status.c:1405
#, c-format
-msgid "Next command to do (%d remaining command):"
-msgid_plural "Next commands to do (%d remaining commands):"
-msgstr[0] "Sıradaki yerine getirilecek komut (%d kalan komut):"
-msgstr[1] "Sıradaki yerine getirilecek komutlar (%d kalan komut):"
+msgid "Next command to do (%<PRIuMAX> remaining command):"
+msgid_plural "Next commands to do (%<PRIuMAX> remaining commands):"
+msgstr[0] "Sıradaki yerine getirilecek komut (%<PRIuMAX> kalan komut):"
+msgstr[1] "Sıradaki yerine getirilecek komutlar (%<PRIuMAX> kalan komut):"
-#: wt-status.c:1404
+#: wt-status.c:1413
msgid " (use \"git rebase --edit-todo\" to view and edit)"
msgstr " (görüntüleme ve düzenleme için \"git rebase --edit-todo\" kullanın)"
-#: wt-status.c:1416
+#: wt-status.c:1425
#, c-format
msgid "You are currently rebasing branch '%s' on '%s'."
msgstr "Şu anda '%s' dalını '%s' üzerine yeniden temellendiriyorsunuz."
-#: wt-status.c:1421
+#: wt-status.c:1430
msgid "You are currently rebasing."
msgstr "Şu anda yeniden temellendirme yapmaktasınız."
-#: wt-status.c:1434
+#: wt-status.c:1443
msgid " (fix conflicts and then run \"git rebase --continue\")"
msgstr " (çakışmaları çözün ve ardından \"git rebase --continue\" çalıştır)"
-#: wt-status.c:1436
+#: wt-status.c:1445
msgid " (use \"git rebase --skip\" to skip this patch)"
msgstr " (bu yamayı atlamak için \"git rebase --skip\" kullanın)"
-#: wt-status.c:1438
+#: wt-status.c:1447
msgid " (use \"git rebase --abort\" to check out the original branch)"
msgstr " (ilk dalı çıkış yapmak için \"git rebase --abort\" kullanın)"
-#: wt-status.c:1445
+#: wt-status.c:1454
msgid " (all conflicts fixed: run \"git rebase --continue\")"
msgstr " (tüm çakışmalar onarıldı: \"git rebase --continue\" çalıştır)"
-#: wt-status.c:1449
+#: wt-status.c:1458
#, c-format
msgid ""
"You are currently splitting a commit while rebasing branch '%s' on '%s'."
@@ -10103,158 +10361,158 @@ msgstr ""
"Şu anda '%s' dalını '%s' üzerine yeniden temellendirirken bir işlemeyi "
"parçalara bölüyorsunuz."
-#: wt-status.c:1454
+#: wt-status.c:1463
msgid "You are currently splitting a commit during a rebase."
msgstr ""
"Şu anda yeniden temellendirme sırasında bir işlemeyi parçalara bölüyorsunuz."
-#: wt-status.c:1457
+#: wt-status.c:1466
msgid " (Once your working directory is clean, run \"git rebase --continue\")"
msgstr ""
" (Çalışma dizininiz temizlendiğinde \"git rebase --continue\" çalıştır)"
-#: wt-status.c:1461
+#: wt-status.c:1470
#, c-format
msgid "You are currently editing a commit while rebasing branch '%s' on '%s'."
msgstr ""
"Şu anda '%s' dalını '%s' üzerine yeniden temellendirirken bir işlemeyi "
"düzenliyorsunuz."
-#: wt-status.c:1466
+#: wt-status.c:1475
msgid "You are currently editing a commit during a rebase."
msgstr "Şu anda yeniden temellendirme sırasında bir işlemeyi düzenliyorsunuz."
-#: wt-status.c:1469
+#: wt-status.c:1478
msgid " (use \"git commit --amend\" to amend the current commit)"
msgstr " (geçerli işlemeyi değiştirmek için \"git commit --amend\" kullanın)"
-#: wt-status.c:1471
+#: wt-status.c:1480
msgid ""
" (use \"git rebase --continue\" once you are satisfied with your changes)"
msgstr ""
" (değişikliklerinizden memnunsanız \"git rebase --continue\" kullanın)"
-#: wt-status.c:1482
+#: wt-status.c:1491
msgid "Cherry-pick currently in progress."
msgstr "Seç-al şu anda sürmekte."
-#: wt-status.c:1485
+#: wt-status.c:1494
#, c-format
msgid "You are currently cherry-picking commit %s."
msgstr "Şu anda %s işlemesini seç-al yapıyorsunuz."
-#: wt-status.c:1492
+#: wt-status.c:1501
msgid " (fix conflicts and run \"git cherry-pick --continue\")"
msgstr " (çakışmaları onar ve \"git cherry-pick --continue\" çalıştır)"
-#: wt-status.c:1495
+#: wt-status.c:1504
msgid " (run \"git cherry-pick --continue\" to continue)"
msgstr " (sürdürmek için \"git cherry-pick --continue\" çalıştır)"
-#: wt-status.c:1498
+#: wt-status.c:1507
msgid " (all conflicts fixed: run \"git cherry-pick --continue\")"
msgstr " (tüm çakışmalar onarıldı: \"git cherry-pick --continue\" çalıştır)"
-#: wt-status.c:1500
+#: wt-status.c:1509
msgid " (use \"git cherry-pick --skip\" to skip this patch)"
msgstr " (bu yamayı atlamak için \"git cherry-pick --skip\" kullanın)"
-#: wt-status.c:1502
+#: wt-status.c:1511
msgid " (use \"git cherry-pick --abort\" to cancel the cherry-pick operation)"
msgstr " (seç-al işlemini iptal için \"git cherry-pick --abort\" kullanın)"
-#: wt-status.c:1512
+#: wt-status.c:1521
msgid "Revert currently in progress."
msgstr "Geriye al şu anda sürmekte."
-#: wt-status.c:1515
+#: wt-status.c:1524
#, c-format
msgid "You are currently reverting commit %s."
msgstr "Şu anda %s işlemesini geri alıyorsunuz."
-#: wt-status.c:1521
+#: wt-status.c:1530
msgid " (fix conflicts and run \"git revert --continue\")"
msgstr " (çakışmaları onar ve \"git revert --continue\" çalıştır)"
-#: wt-status.c:1524
+#: wt-status.c:1533
msgid " (run \"git revert --continue\" to continue)"
msgstr " (sürdürmek için \"git revert --continue\" çalıştır)"
-#: wt-status.c:1527
+#: wt-status.c:1536
msgid " (all conflicts fixed: run \"git revert --continue\")"
msgstr " (tüm çakışmalar onarıldı: \"git revert --continue\" çalıştır)"
-#: wt-status.c:1529
+#: wt-status.c:1538
msgid " (use \"git revert --skip\" to skip this patch)"
msgstr " (bu yamayı atlamak için \"git revert --skip\" kullanın)"
-#: wt-status.c:1531
+#: wt-status.c:1540
msgid " (use \"git revert --abort\" to cancel the revert operation)"
msgstr " (geri al işlemini iptal için \"git revert --abort\" kullanın)"
-#: wt-status.c:1541
+#: wt-status.c:1550
#, c-format
msgid "You are currently bisecting, started from branch '%s'."
msgstr "Şu anda ikili arama yapıyorsunuz, '%s' dalından başlandı."
-#: wt-status.c:1545
+#: wt-status.c:1554
msgid "You are currently bisecting."
msgstr "Şu anda ikili arama yapıyorsunuz."
-#: wt-status.c:1548
+#: wt-status.c:1557
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:1559
+#: wt-status.c:1568
msgid "You are in a sparse checkout."
msgstr "Bir aralıklı çıkış içindesiniz."
-#: wt-status.c:1562
+#: wt-status.c:1571
#, 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:1806
+#: wt-status.c:1815
msgid "On branch "
msgstr "Ãœzerinde bulunulan dal: "
-#: wt-status.c:1813
+#: wt-status.c:1822
msgid "interactive rebase in progress; onto "
msgstr "şunun üzerine etkileşimli yeniden temellendirme sürmekte: "
-#: wt-status.c:1815
+#: wt-status.c:1824
msgid "rebase in progress; onto "
msgstr "şunun üzerine yeniden temellendirme sürmekte: "
-#: wt-status.c:1820
+#: wt-status.c:1829
msgid "HEAD detached at "
msgstr "HEAD şurada ayrıldı: "
-#: wt-status.c:1822
+#: wt-status.c:1831
msgid "HEAD detached from "
msgstr "HEAD şundan ayrıldı: "
-#: wt-status.c:1825
+#: wt-status.c:1834
msgid "Not currently on any branch."
msgstr "Şu anda bir dal üzerinde değil."
-#: wt-status.c:1842
+#: wt-status.c:1851
msgid "Initial commit"
msgstr "Ä°lk iÅŸleme"
-#: wt-status.c:1843
+#: wt-status.c:1852
msgid "No commits yet"
msgstr "Henüz bir işleme yok"
-#: wt-status.c:1857
+#: wt-status.c:1866
msgid "Untracked files"
msgstr "Ä°zlenmeyen dosyalar"
-#: wt-status.c:1859
+#: wt-status.c:1868
msgid "Ignored files"
msgstr "Yok sayılan dosyalar"
-#: wt-status.c:1863
+#: wt-status.c:1872
#, c-format
msgid ""
"It took %.2f seconds to enumerate untracked files. 'status -uno'\n"
@@ -10265,32 +10523,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:1869
+#: wt-status.c:1878
#, c-format
msgid "Untracked files not listed%s"
msgstr "Ä°zlenmeyen dosyalar listelenmiyor%s"
-#: wt-status.c:1871
+#: wt-status.c:1880
msgid " (use -u option to show untracked files)"
msgstr " (izlenmeyen dosyaları göstermek için -u seçeneğini kullanın)"
-#: wt-status.c:1877
+#: wt-status.c:1886
msgid "No changes"
msgstr "DeÄŸiÅŸiklik yok"
-#: wt-status.c:1882
+#: wt-status.c:1891
#, c-format
msgid "no changes added to commit (use \"git add\" and/or \"git commit -a\")\n"
msgstr ""
"Ä°ÅŸlemeye eklenen deÄŸiÅŸiklik yok (\"git add\" ve/veya \"git commit -a\" "
"kullanın)\n"
-#: wt-status.c:1886
+#: wt-status.c:1895
#, c-format
msgid "no changes added to commit\n"
msgstr "Ä°ÅŸlemeye eklenen deÄŸiÅŸiklik yok\n"
-#: wt-status.c:1890
+#: wt-status.c:1899
#, c-format
msgid ""
"nothing added to commit but untracked files present (use \"git add\" to "
@@ -10299,65 +10557,65 @@ msgstr ""
"işlemeye bir şey eklenmedi; ancak izlenmeyen dosyalar var (izlemek için "
"\"git add\" kullanın)\n"
-#: wt-status.c:1894
+#: wt-status.c:1903
#, c-format
msgid "nothing added to commit but untracked files present\n"
msgstr "iÅŸlemeye bir ÅŸey eklenmedi; ancak izlenmeyen dosyalar var\n"
-#: wt-status.c:1898
+#: wt-status.c:1907
#, c-format
msgid "nothing to commit (create/copy files and use \"git add\" to track)\n"
msgstr ""
"İşlenecek bir şey yok (dosyalar oluşturun/kopyalayın ve izlemek için \"git "
"add\" kullanın)\n"
-#: wt-status.c:1902 wt-status.c:1908
+#: wt-status.c:1911 wt-status.c:1917
#, c-format
msgid "nothing to commit\n"
msgstr "Ä°ÅŸlenecek bir ÅŸey yok\n"
-#: wt-status.c:1905
+#: wt-status.c:1914
#, c-format
msgid "nothing to commit (use -u to show untracked files)\n"
msgstr ""
"İşlenecek bir şey yok (izlenmeyen dosyaları göstermek için -u kullanın)\n"
-#: wt-status.c:1910
+#: wt-status.c:1919
#, c-format
msgid "nothing to commit, working tree clean\n"
msgstr "İşlenecek bir şey yok, çalışma ağacı temiz\n"
-#: wt-status.c:2015
+#: wt-status.c:2024
msgid "No commits yet on "
msgstr "Şurada henüz bir işleme yok: "
-#: wt-status.c:2019
+#: wt-status.c:2028
msgid "HEAD (no branch)"
msgstr "HEAD (dal yok)"
-#: wt-status.c:2050
+#: wt-status.c:2059
msgid "different"
msgstr "deÄŸiÅŸik"
-#: wt-status.c:2052 wt-status.c:2060
+#: wt-status.c:2061 wt-status.c:2069
msgid "behind "
msgstr "şunun arkasında: "
-#: wt-status.c:2055 wt-status.c:2058
+#: wt-status.c:2064 wt-status.c:2067
msgid "ahead "
msgstr "şunun önünde: "
#. TRANSLATORS: the action is e.g. "pull with rebase"
-#: wt-status.c:2596
+#: wt-status.c:2605
#, c-format
msgid "cannot %s: You have unstaged changes."
msgstr "%s yapılamıyor: Hazırlanmamış değişiklikleriniz var."
-#: wt-status.c:2602
+#: wt-status.c:2611
msgid "additionally, your index contains uncommitted changes."
msgstr "Ek olarak, indeksiniz işlenmemiş değişiklikler içeriyor."
-#: wt-status.c:2604
+#: wt-status.c:2613
#, c-format
msgid "cannot %s: Your index contains uncommitted changes."
msgstr "%s yapılamıyor: İndeksiniz işlenmemiş değişiklikler içeriyor."
@@ -10380,149 +10638,153 @@ msgstr "accept_thread '%s' başlatılamadı"
msgid "could not start worker[0] for '%s'"
msgstr "'%s' için worker[0] başlatılamadı"
-#: compat/precompose_utf8.c:58 builtin/clone.c:347
+#: compat/precompose_utf8.c:58 builtin/clone.c:353
#, c-format
msgid "failed to unlink '%s'"
msgstr "'%s' bağlantısı kesilemedi"
+#: compat/fsmonitor/fsm-listen-darwin.c:355
+msgid "Unable to create FSEventStream."
+msgstr "FSEventStream oluşturulamadı."
+
+#: compat/fsmonitor/fsm-listen-darwin.c:403
+msgid "Failed to start the FSEventStream"
+msgstr "FSEventStream başlatılamadı"
+
#: builtin/add.c:26
msgid "git add [<options>] [--] <pathspec>..."
msgstr "git add [<seçenekler>] [--] <yol-blrtç>..."
-#: builtin/add.c:64
+#: builtin/add.c:63
#, c-format
msgid "cannot chmod %cx '%s'"
msgstr "%cx '%s' chmod yapılamıyor"
-#: builtin/add.c:106
+#: builtin/add.c:105
#, c-format
msgid "unexpected diff status %c"
msgstr "beklenmedik diff durumu %c"
-#: builtin/add.c:111 builtin/commit.c:298
+#: builtin/add.c:110 builtin/commit.c:299
msgid "updating files failed"
msgstr "dosyaları güncelleme başarısız"
-#: builtin/add.c:121
+#: builtin/add.c:120
#, c-format
msgid "remove '%s'\n"
msgstr "kaldır: '%s'\n"
-#: builtin/add.c:205
+#: builtin/add.c:204
msgid "Unstaged changes after refreshing the index:"
msgstr "İndeksi yeniledikten sonra hazırlanmamış değişiklikler:"
-#: builtin/add.c:313 builtin/rev-parse.c:993
+#: builtin/add.c:312 builtin/rev-parse.c:993
msgid "Could not read the index"
msgstr "İndeks okunamadı"
-#: builtin/add.c:326
+#: builtin/add.c:325
msgid "Could not write patch"
msgstr "Yama yazılamadı"
-#: builtin/add.c:329
+#: builtin/add.c:328
msgid "editing patch failed"
msgstr "yamayı düzenleme başarısız"
-#: builtin/add.c:332
+#: builtin/add.c:331
#, c-format
msgid "Could not stat '%s'"
msgstr "'%s' dosya bilgileri alınamadı"
-#: builtin/add.c:334
+#: builtin/add.c:333
msgid "Empty patch. Aborted."
msgstr "BoÅŸ yama. Ä°ptal edildi."
-#: builtin/add.c:340
+#: builtin/add.c:339
#, c-format
msgid "Could not apply '%s'"
msgstr "'%s' uygulanamadı"
-#: builtin/add.c:348
+#: builtin/add.c:347
msgid "The following paths are ignored by one of your .gitignore files:\n"
msgstr ""
"Aşağıdaki yollar sizin .gitignore dosyalarınızın biri tarafından yok "
"sayılıyor:\n"
-#: builtin/add.c:368 builtin/clean.c:927 builtin/fetch.c:174 builtin/mv.c:124
+#: builtin/add.c:367 builtin/clean.c:927 builtin/fetch.c:175 builtin/mv.c:124
#: builtin/prune-packed.c:14 builtin/pull.c:208 builtin/push.c:550
-#: builtin/remote.c:1429 builtin/rm.c:244 builtin/send-pack.c:194
+#: builtin/remote.c:1454 builtin/rm.c:244 builtin/send-pack.c:194
msgid "dry run"
msgstr "sınama turu"
-#: builtin/add.c:369 builtin/check-ignore.c:22 builtin/commit.c:1484
-#: builtin/count-objects.c:98 builtin/fsck.c:789 builtin/log.c:2313
+#: builtin/add.c:368 builtin/check-ignore.c:22 builtin/commit.c:1483
+#: builtin/count-objects.c:98 builtin/fsck.c:789 builtin/log.c:2338
#: builtin/mv.c:123 builtin/read-tree.c:120
msgid "be verbose"
msgstr "ayrıntı ver"
-#: builtin/add.c:371
+#: builtin/add.c:370
msgid "interactive picking"
msgstr "etkileşimli seçim"
-#: builtin/add.c:372 builtin/checkout.c:1581 builtin/reset.c:409
+#: builtin/add.c:371 builtin/checkout.c:1599 builtin/reset.c:417
msgid "select hunks interactively"
msgstr "parçaları etkileşimli olarak seç"
-#: builtin/add.c:373
+#: builtin/add.c:372
msgid "edit current diff and apply"
msgstr "geçerli diff'i düzenle ve uygula"
-#: builtin/add.c:374
+#: builtin/add.c:373
msgid "allow adding otherwise ignored files"
msgstr "başka türlü yok sayılan dosyaların eklenmesine izin ver"
-#: builtin/add.c:375
+#: builtin/add.c:374
msgid "update tracked files"
msgstr "izlenen dosyaları güncelle"
-#: builtin/add.c:376
+#: builtin/add.c:375
msgid "renormalize EOL of tracked files (implies -u)"
msgstr "izlenen dosyaların satır sonlarını yeniden olağanlaştır (-u ima eder)"
-#: builtin/add.c:377
+#: builtin/add.c:376
msgid "record only the fact that the path will be added later"
msgstr "yalnızca yolun sonra ekleneceği gerçeğinin kaydını yaz"
-#: builtin/add.c:378
+#: builtin/add.c:377
msgid "add changes from all tracked and untracked files"
msgstr "tüm izlenen/izlenmeyen dosyalardan değişiklikleri ekle"
-#: builtin/add.c:381
+#: builtin/add.c:380
msgid "ignore paths removed in the working tree (same as --no-all)"
msgstr "çalışma ağacında kaldırılan yolları yok say (--no-all ile aynı)"
-#: builtin/add.c:383
+#: builtin/add.c:382
msgid "don't add, only refresh the index"
msgstr "ekleme, yalnızca indeksi yenile"
-#: builtin/add.c:384
+#: builtin/add.c:383
msgid "just skip files which cannot be added because of errors"
msgstr "yalnızca hatalardan dolayı eklenemeyen dosyaları atla"
-#: builtin/add.c:385
+#: builtin/add.c:384
msgid "check if - even missing - files are ignored in dry run"
msgstr ""
"dosyaların -eksik olsalar bile- sınama turunda yok sayılıp sayılmadığını "
"denetle"
-#: builtin/add.c:386 builtin/mv.c:128 builtin/rm.c:251
+#: builtin/add.c:385 builtin/mv.c:128 builtin/rm.c:251
msgid "allow updating entries outside of the sparse-checkout cone"
msgstr "aralıklı çıkış konisi dışındaki girdileri güncellemeye izin ver"
-#: builtin/add.c:388 builtin/update-index.c:1004
+#: builtin/add.c:387 builtin/update-index.c:1023
msgid "override the executable bit of the listed files"
msgstr "listelenen dosyaların çalıştırılabilir kısımlarını geçersiz kıl"
-#: builtin/add.c:390
+#: builtin/add.c:389
msgid "warn when adding an embedded repository"
msgstr "gömülü bir depo eklenirken uyar"
-#: builtin/add.c:392
-msgid "backend for `git stash -p`"
-msgstr "'git stash -p' için arka uç"
-
-#: builtin/add.c:410
+#: builtin/add.c:407
#, c-format
msgid ""
"You've added another git repository inside your current repository.\n"
@@ -10553,12 +10815,12 @@ msgstr ""
"\n"
"Ek bilgi için: \"git help submodule\"."
-#: builtin/add.c:439
+#: builtin/add.c:436
#, c-format
msgid "adding embedded git repository: %s"
msgstr "gömülü git deposu ekleniyor: %s"
-#: builtin/add.c:459
+#: builtin/add.c:456
msgid ""
"Use -f if you really want to add them.\n"
"Turn this message off by running\n"
@@ -10568,27 +10830,27 @@ msgstr ""
"Bu iletiyi 'git config advice.addIgnoredFile false'\n"
"kullanarak kapatabilirsiniz."
-#: builtin/add.c:474
+#: builtin/add.c:471
msgid "adding files failed"
msgstr "dosya ekleme başarısız"
-#: builtin/add.c:548
+#: builtin/add.c:534
#, c-format
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:569 builtin/checkout.c:1751 builtin/commit.c:364
-#: builtin/reset.c:429 builtin/rm.c:275 builtin/stash.c:1713
+#: builtin/add.c:555 builtin/checkout.c:1770 builtin/commit.c:365
+#: builtin/reset.c:436 builtin/rm.c:275 builtin/stash.c:1702
#, c-format
msgid "'%s' and pathspec arguments cannot be used together"
msgstr "'%s' ve yol belirteci argümanları birlikte kullanılamaz"
-#: builtin/add.c:580
+#: builtin/add.c:566
#, c-format
msgid "Nothing specified, nothing added.\n"
msgstr "Hiçbir şey belirtilmedi, hiçbir şey eklenmedi.\n"
-#: builtin/add.c:582
+#: builtin/add.c:568
msgid ""
"Maybe you wanted to say 'git add .'?\n"
"Turn this message off by running\n"
@@ -10598,119 +10860,114 @@ msgstr ""
"Bu iletiyi 'git config advice.addEmptyPathspec false'\n"
"yaparak kapatabilirsiniz."
-#: builtin/am.c:202
-#, c-format
-msgid "Invalid value for --empty: %s"
-msgstr "--empty için geçersiz değer: %s"
-
-#: builtin/am.c:392
+#: builtin/am.c:393
msgid "could not parse author script"
msgstr "yazar betiği ayrıştırılamadı"
-#: builtin/am.c:482
+#: builtin/am.c:483
#, c-format
msgid "'%s' was deleted by the applypatch-msg hook"
msgstr "'%s' applypatch-msg kancası tarafından silindi"
-#: builtin/am.c:524
+#: builtin/am.c:525
#, c-format
msgid "Malformed input line: '%s'."
msgstr "Hatalı oluşturulmuş girdi satırı: '%s'."
-#: builtin/am.c:562
+#: builtin/am.c:563
#, c-format
msgid "Failed to copy notes from '%s' to '%s'"
msgstr "Notların '%s' konumundan '%s' konumuna kopyalanması başarısız"
-#: builtin/am.c:588
+#: builtin/am.c:589
msgid "fseek failed"
msgstr "fseek başarısız oldu"
-#: builtin/am.c:776
+#: builtin/am.c:777
#, c-format
msgid "could not parse patch '%s'"
msgstr "'%s' yaması ayrıştırılamadı"
-#: builtin/am.c:841
+#: builtin/am.c:842
msgid "Only one StGIT patch series can be applied at once"
msgstr "Bir kerede yalnızca bir StGIT yama serisi uygulanabilir"
-#: builtin/am.c:889
+#: builtin/am.c:890
msgid "invalid timestamp"
msgstr "geçersiz zaman damgası"
-#: builtin/am.c:894 builtin/am.c:906
+#: builtin/am.c:895 builtin/am.c:907
msgid "invalid Date line"
msgstr "geçersiz tarih satırı"
-#: builtin/am.c:901
+#: builtin/am.c:902
msgid "invalid timezone offset"
msgstr "geçersiz zaman dilimi ofseti"
-#: builtin/am.c:994
+#: builtin/am.c:995
msgid "Patch format detection failed."
msgstr "Yama biçimi algılaması başarısız."
-#: builtin/am.c:999 builtin/clone.c:300
+#: builtin/am.c:1000 builtin/clone.c:306
#, c-format
msgid "failed to create directory '%s'"
msgstr "'%s' dizini oluşturulamadı"
-#: builtin/am.c:1004
+#: builtin/am.c:1005
msgid "Failed to split patches."
msgstr "Yamalar parçalanıp bölünemedi."
-#: builtin/am.c:1153
+#: builtin/am.c:1154
#, c-format
msgid "When you have resolved this problem, run \"%s --continue\"."
msgstr "Bu sorunu çözdüğünüzde \"%s --continue\" çalıştırın."
-#: builtin/am.c:1154
+#: builtin/am.c:1155
#, c-format
msgid "If you prefer to skip this patch, run \"%s --skip\" instead."
msgstr "Eğer bu yamayı atlamayı yeğliyorsanız \"%s --skip\" çalıştırın."
-#: builtin/am.c:1159
+#: builtin/am.c:1160
#, c-format
msgid "To record the empty patch as an empty commit, run \"%s --allow-empty\"."
msgstr ""
"Boş yamayı boş işleme kaydı olarak yazmak için \"%s --allow-empty\" "
"çalıştırın."
-#: builtin/am.c:1161
+#: builtin/am.c:1162
#, c-format
msgid "To restore the original branch and stop patching, run \"%s --abort\"."
msgstr ""
"İlk dalı eski durumuna getirip yamalamayı durdurmak için \"%s --abort\" "
"çalıştır."
-#: builtin/am.c:1256
+#: builtin/am.c:1257
msgid "Patch sent with format=flowed; space at the end of lines might be lost."
msgstr ""
"Yama format=flowed ile gönderildi; satır sonlarındaki boşluk kaybolmuş "
"olabilir."
-#: builtin/am.c:1344
+#: builtin/am.c:1345
#, c-format
msgid "missing author line in commit %s"
msgstr "%s işlemesinde yazar satırı eksik"
-#: builtin/am.c:1347
+#: builtin/am.c:1348
#, c-format
msgid "invalid ident line: %.*s"
msgstr "geçersiz tanımlama satırı: %.*s"
-#: builtin/am.c:1566
+#: builtin/am.c:1567
msgid "Repository lacks necessary blobs to fall back on 3-way merge."
msgstr ""
"Depo 3 yönlü birleştirmeye geri çekilebilme için gereken ikili nesnelere iye "
"deÄŸil."
-#: builtin/am.c:1568
+#: builtin/am.c:1569
msgid "Using index info to reconstruct a base tree..."
msgstr "Bir temel ağacını yeniden yapmak için indeks bilgisi kullanılıyor..."
-#: builtin/am.c:1587
+#: builtin/am.c:1588
msgid ""
"Did you hand edit your patch?\n"
"It does not apply to blobs recorded in its index."
@@ -10718,24 +10975,24 @@ msgstr ""
"Yamanızı elle mi düzenlediniz?\n"
"Kendi indeksinde kaydı yazılan ikili nesnelere uygulanamıyor."
-#: builtin/am.c:1593
+#: builtin/am.c:1594
msgid "Falling back to patching base and 3-way merge..."
msgstr "Temeli yamalamaya ve 3 yönlü birleştirmeye geri çekiliniyor..."
-#: builtin/am.c:1619
+#: builtin/am.c:1620
msgid "Failed to merge in the changes."
msgstr "DeÄŸiÅŸiklikler birleÅŸtirilemedi."
-#: builtin/am.c:1651
+#: builtin/am.c:1652
msgid "applying to an empty history"
msgstr "boş bir geçmişe uygulanıyor"
-#: builtin/am.c:1703 builtin/am.c:1707
+#: builtin/am.c:1704 builtin/am.c:1708
#, c-format
msgid "cannot resume: %s does not exist."
msgstr "sürdürülemiyor: %s yok."
-#: builtin/am.c:1725
+#: builtin/am.c:1726
msgid "Commit Body is:"
msgstr "İşleme gövdesi:"
@@ -10743,59 +11000,59 @@ msgstr "İşleme gövdesi:"
#. in your translation. The program will only accept English
#. input at this point.
#.
-#: builtin/am.c:1735
+#: builtin/am.c:1736
#, c-format
msgid "Apply? [y]es/[n]o/[e]dit/[v]iew patch/[a]ccept all: "
msgstr ""
"Uygula? [y]evet/[n]hayır/düz[e]nle/[v]yamayı görüntüle/tümünü k[a]bul et: "
-#: builtin/am.c:1781 builtin/commit.c:409
+#: builtin/am.c:1782 builtin/commit.c:410
msgid "unable to write index file"
msgstr "indeks dosyası yazılamıyor"
-#: builtin/am.c:1785
+#: builtin/am.c:1786
#, c-format
msgid "Dirty index: cannot apply patches (dirty: %s)"
msgstr "Kirli indeks: Yamalar uygulanamıyor (kirli: %s)"
-#: builtin/am.c:1827
+#: builtin/am.c:1828
#, c-format
msgid "Skipping: %.*s"
-msgstr "Applying: %.*s"
+msgstr "Atlanıyor: %.*s"
-#: builtin/am.c:1832
+#: builtin/am.c:1833
#, c-format
msgid "Creating an empty commit: %.*s"
msgstr "BoÅŸ bir iÅŸleme oluÅŸturuluyor: %.*s"
-#: builtin/am.c:1836
+#: builtin/am.c:1837
msgid "Patch is empty."
msgstr "Yama boÅŸ."
-#: builtin/am.c:1847 builtin/am.c:1916
+#: builtin/am.c:1848 builtin/am.c:1917
#, c-format
msgid "Applying: %.*s"
msgstr "Uygulanıyor: %.*s"
-#: builtin/am.c:1864
+#: builtin/am.c:1865
msgid "No changes -- Patch already applied."
msgstr "Değişiklik yok -- Yama halihazırda uygulandı."
-#: builtin/am.c:1870
+#: builtin/am.c:1871
#, c-format
msgid "Patch failed at %s %.*s"
msgstr "Yama şurada başarısız oldu: %s %.*s"
-#: builtin/am.c:1874
+#: builtin/am.c:1875
msgid "Use 'git am --show-current-patch=diff' to see the failed patch"
msgstr ""
"Başarısız olan yamayı görmek için 'git am --show-current-patch=diff' kullanın"
-#: builtin/am.c:1920
+#: builtin/am.c:1921
msgid "No changes - recorded it as an empty commit."
msgstr "Değişiklik yok -- boş bir işleme olarak kayıt yazıldı."
-#: builtin/am.c:1922
+#: builtin/am.c:1923
msgid ""
"No changes - did you forget to use 'git add'?\n"
"If there is nothing left to stage, chances are that something else\n"
@@ -10805,7 +11062,7 @@ msgstr ""
"Hazırlanacak başka bir şey kalmadıysa büyük olasılıkla başka bir şey\n"
"aynı değişiklikleri uygulamış olabilir; bu yamayı atlamak isteyebilirsiniz."
-#: builtin/am.c:1930
+#: builtin/am.c:1931
msgid ""
"You still have unmerged paths in your index.\n"
"You should 'git add' each file with resolved conflicts to mark them as "
@@ -10818,17 +11075,17 @@ msgstr ""
"Bir dosyanın \"onlar sildi\" olduğunu kabul etmek için dosya ile 'git rm' "
"yapabilirsiniz."
-#: builtin/am.c:2038 builtin/am.c:2042 builtin/am.c:2054 builtin/reset.c:448
-#: builtin/reset.c:456
+#: builtin/am.c:2039 builtin/am.c:2043 builtin/am.c:2055 builtin/reset.c:455
+#: builtin/reset.c:463
#, c-format
msgid "Could not parse object '%s'."
msgstr "'%s' nesnesi ayrıştırılamadı."
-#: builtin/am.c:2090 builtin/am.c:2166
+#: builtin/am.c:2091 builtin/am.c:2167
msgid "failed to clean index"
msgstr "indeks temizlenemedi"
-#: builtin/am.c:2134
+#: builtin/am.c:2135
msgid ""
"You seem to have moved HEAD since the last 'am' failure.\n"
"Not rewinding to ORIG_HEAD"
@@ -10836,168 +11093,159 @@ msgstr ""
"Son 'am' başarısızlığından bu yana HEAD'i hareket ettirmiş görünüyorsunuz.\n"
"ORIG_HEAD'e geri sarılmıyor."
-#: builtin/am.c:2242
-#, c-format
-msgid "Invalid value for --patch-format: %s"
-msgstr "Geçersiz --patch-format değeri: %s"
-
-#: builtin/am.c:2285
-#, c-format
-msgid "Invalid value for --show-current-patch: %s"
-msgstr "--show-current-patch için geçersiz değer: %s"
-
-#: builtin/am.c:2289
+#: builtin/am.c:2292
#, c-format
msgid "options '%s=%s' and '%s=%s' cannot be used together"
msgstr "'%s=%s' ve '%s=%s' seçenekleri birlikte kullanılamaz"
-#: builtin/am.c:2320
+#: builtin/am.c:2323
msgid "git am [<options>] [(<mbox> | <Maildir>)...]"
msgstr "git am [<seçenekler>] [(<mbox> | <posta-dizin>)...]"
-#: builtin/am.c:2321
+#: builtin/am.c:2324
msgid "git am [<options>] (--continue | --skip | --abort)"
msgstr "git am [<seçenekler>] (--continue | --skip | --abort)"
-#: builtin/am.c:2327
+#: builtin/am.c:2330
msgid "run interactively"
msgstr "etkileşimli olarak çalıştır"
-#: builtin/am.c:2329
+#: builtin/am.c:2332
msgid "historical option -- no-op"
msgstr "tarihi seçenek -- no-op"
-#: builtin/am.c:2331
+#: builtin/am.c:2334
msgid "allow fall back on 3way merging if needed"
msgstr "gerekirse 3 yönlü birleştirmeye geri çekilmeye izin ver"
-#: builtin/am.c:2332 builtin/init-db.c:547 builtin/prune-packed.c:16
-#: builtin/repack.c:642 builtin/stash.c:962
+#: builtin/am.c:2335 builtin/init-db.c:547 builtin/prune-packed.c:16
+#: builtin/repack.c:646 builtin/stash.c:946
msgid "be quiet"
msgstr "sessiz ol"
-#: builtin/am.c:2334
+#: builtin/am.c:2337
msgid "add a Signed-off-by trailer to the commit message"
msgstr "işleme iletisine bir Signed-off-by satırı ekle"
-#: builtin/am.c:2337
+#: builtin/am.c:2340
msgid "recode into utf8 (default)"
msgstr "utf8 olarak yeniden kodla (öntanımlı)"
-#: builtin/am.c:2339
+#: builtin/am.c:2342
msgid "pass -k flag to git-mailinfo"
msgstr "'git-mailinfo'ya -k bayrağını geçir"
-#: builtin/am.c:2341
+#: builtin/am.c:2344
msgid "pass -b flag to git-mailinfo"
msgstr "'git-mailinfo'ya -b bayrağını geçir"
-#: builtin/am.c:2343
+#: builtin/am.c:2346
msgid "pass -m flag to git-mailinfo"
msgstr "'git-mailinfo'ya -m bayrağını geçir"
-#: builtin/am.c:2345
+#: builtin/am.c:2348
msgid "pass --keep-cr flag to git-mailsplit for mbox format"
msgstr "'git-mailsplit'e mbox biçimi için --keep-cr bayrağını geçir"
-#: builtin/am.c:2348
+#: builtin/am.c:2351
msgid "do not pass --keep-cr flag to git-mailsplit independent of am.keepcr"
msgstr ""
"'git-mailsplit'e 'am.keepcr'dan bağımsız olarak --keep-cr bayrağını geçirme"
-#: builtin/am.c:2351
+#: builtin/am.c:2354
msgid "strip everything before a scissors line"
msgstr "bir kesim çizgisinden önceki her şeyi çıkar"
-#: builtin/am.c:2353
+#: builtin/am.c:2356
msgid "pass it through git-mailinfo"
msgstr "git-mailinfo içerisinden geçir"
-#: builtin/am.c:2356 builtin/am.c:2359 builtin/am.c:2362 builtin/am.c:2365
-#: builtin/am.c:2368 builtin/am.c:2371 builtin/am.c:2374 builtin/am.c:2377
-#: builtin/am.c:2383
+#: builtin/am.c:2359 builtin/am.c:2362 builtin/am.c:2365 builtin/am.c:2368
+#: builtin/am.c:2371 builtin/am.c:2374 builtin/am.c:2377 builtin/am.c:2380
+#: builtin/am.c:2386
msgid "pass it through git-apply"
msgstr "git-apply aracılığıyla geçir"
-#: builtin/am.c:2373 builtin/commit.c:1515 builtin/fmt-merge-msg.c:18
-#: builtin/fmt-merge-msg.c:21 builtin/grep.c:919 builtin/merge.c:263
+#: builtin/am.c:2376 builtin/commit.c:1514 builtin/fmt-merge-msg.c:18
+#: builtin/fmt-merge-msg.c:21 builtin/grep.c:920 builtin/merge.c:263
#: builtin/pull.c:142 builtin/pull.c:204 builtin/pull.c:221
-#: builtin/rebase.c:1046 builtin/repack.c:653 builtin/repack.c:657
-#: builtin/repack.c:659 builtin/show-branch.c:649 builtin/show-ref.c:172
-#: builtin/tag.c:445 parse-options.h:154 parse-options.h:175
-#: parse-options.h:317
+#: builtin/rebase.c:1074 builtin/repack.c:657 builtin/repack.c:661
+#: builtin/repack.c:663 builtin/show-branch.c:650 builtin/show-ref.c:172
+#: builtin/tag.c:446 parse-options.h:159 parse-options.h:180
+#: parse-options.h:348
msgid "n"
msgstr "n"
-#: builtin/am.c:2379 builtin/branch.c:680 builtin/bugreport.c:109
-#: builtin/for-each-ref.c:41 builtin/replace.c:555 builtin/tag.c:479
-#: builtin/verify-tag.c:38
+#: builtin/am.c:2382 builtin/branch.c:695 builtin/bugreport.c:109
+#: builtin/cat-file.c:848 builtin/cat-file.c:852 builtin/cat-file.c:856
+#: builtin/for-each-ref.c:41 builtin/ls-tree.c:357 builtin/replace.c:555
+#: builtin/tag.c:480 builtin/verify-tag.c:38
msgid "format"
msgstr "biçim"
-#: builtin/am.c:2380
+#: builtin/am.c:2383
msgid "format the patch(es) are in"
msgstr "yama biçimi"
-#: builtin/am.c:2386
+#: builtin/am.c:2389
msgid "override error message when patch failure occurs"
msgstr "yama başarısız olduğunda hata iletisini geçersiz kıl"
-#: builtin/am.c:2388
+#: builtin/am.c:2391
msgid "continue applying patches after resolving a conflict"
msgstr "bir çakışmayı çözdükten sonra yamaları uygulamayı sürdür"
-#: builtin/am.c:2391
+#: builtin/am.c:2394
msgid "synonyms for --continue"
msgstr "--continue eşanlamlıları"
-#: builtin/am.c:2394
+#: builtin/am.c:2397
msgid "skip the current patch"
msgstr "geçerli yamayı atla"
-#: builtin/am.c:2397
+#: builtin/am.c:2400
msgid "restore the original branch and abort the patching operation"
msgstr "orijinal dalı eski durumuna getir ve yamalama işlemini iptal et"
-#: builtin/am.c:2400
+#: builtin/am.c:2403
msgid "abort the patching operation but keep HEAD where it is"
msgstr "yamalama işlemini iptal et; ancak HEAD'i olduğu yerde bırak"
-#: builtin/am.c:2404
+#: builtin/am.c:2407
msgid "show the patch being applied"
msgstr "uygulanmakta olan yamayı göster"
-#: builtin/am.c:2408
+#: builtin/am.c:2411
msgid "record the empty patch as an empty commit"
msgstr "boş yamayı bir boş işleme olarak kayıt yaz"
-#: builtin/am.c:2412
+#: builtin/am.c:2415
msgid "lie about committer date"
msgstr "işleyici tarihi hakkında yalan söyle"
-#: builtin/am.c:2414
+#: builtin/am.c:2417
msgid "use current timestamp for author date"
msgstr "yazar tarihi için geçerli zaman damgasını kullan"
-#: builtin/am.c:2416 builtin/commit-tree.c:118 builtin/commit.c:1643
-#: builtin/merge.c:302 builtin/pull.c:179 builtin/rebase.c:1099
-#: builtin/revert.c:117 builtin/tag.c:460
+#: builtin/am.c:2419 builtin/commit-tree.c:118 builtin/commit.c:1642
+#: builtin/merge.c:302 builtin/pull.c:179 builtin/rebase.c:1127
+#: builtin/revert.c:117 builtin/tag.c:461
msgid "key-id"
msgstr "key-id"
-#: builtin/am.c:2417 builtin/rebase.c:1100
+#: builtin/am.c:2420 builtin/rebase.c:1128
msgid "GPG-sign commits"
msgstr "GPG imzalı işlemeler"
-#: builtin/am.c:2420
+#: builtin/am.c:2423
msgid "how to handle empty patches"
msgstr "boş yamaların nasıl değerlendirileceği"
-#: builtin/am.c:2423
+#: builtin/am.c:2426
msgid "(internal use for git-rebase)"
msgstr "(git-rebase için iç kullanım)"
-#: builtin/am.c:2441
+#: builtin/am.c:2444
msgid ""
"The -b/--binary option has been a no-op for long time, and\n"
"it will be removed. Please do not use it anymore."
@@ -11005,17 +11253,17 @@ msgstr ""
"-b/--binary seçeneği uzunca bir süredir düzgün çalışmıyordu ve\n"
"yakında kaldırılacak. Lütfen artık kullanmayın."
-#: builtin/am.c:2448
+#: builtin/am.c:2451
msgid "failed to read the index"
msgstr "indeks okunamadı"
-#: builtin/am.c:2463
+#: builtin/am.c:2466
#, c-format
msgid "previous rebase directory %s still exists but mbox given."
msgstr ""
"Bir önceki yeniden temellendirme dizini %s hâlâ mevcut; ancak mbox verildi."
-#: builtin/am.c:2487
+#: builtin/am.c:2490
#, c-format
msgid ""
"Stray %s directory found.\n"
@@ -11024,11 +11272,11 @@ msgstr ""
"Başıboş %s dizini bulundu.\n"
"Kaldırmak için \"git am --abort\" kullanın."
-#: builtin/am.c:2493
+#: builtin/am.c:2496
msgid "Resolve operation not in progress, we are not resuming."
msgstr "İlerlemekte olan bir çözüm işlemi yok, sürdürme yapmıyoruz."
-#: builtin/am.c:2503
+#: builtin/am.c:2506
msgid "interactive mode requires patches on the command line"
msgstr "etkileşimli kip yamanın komut satırında olmasını gerektirir"
@@ -11065,14 +11313,6 @@ msgstr "git archive: FloÅŸ bekleniyordu"
msgid "git bisect--helper --bisect-reset [<commit>]"
msgstr "git bisect--helper --bisect-reset [<iÅŸleme>]"
-#: builtin/bisect--helper.c:25
-msgid ""
-"git bisect--helper --bisect-terms [--term-good | --term-old | --term-bad | --"
-"term-new]"
-msgstr ""
-"git bisect--helper --bisect-terms [--term-good | --term-old | --term-bad | --"
-"term-new]"
-
#: builtin/bisect--helper.c:26
msgid ""
"git bisect--helper --bisect-start [--term-{new,bad}=<term> --term-{old,good}"
@@ -11083,10 +11323,6 @@ msgstr ""
"=<terim>] [--no-checkout] [--first-parent] [<kötü> [<iyi>...]] [--] "
"[<yollar>...]"
-#: builtin/bisect--helper.c:28
-msgid "git bisect--helper --bisect-next"
-msgstr "git bisect--helper --bisect-next"
-
#: builtin/bisect--helper.c:29
msgid "git bisect--helper --bisect-state (bad|new) [<rev>]"
msgstr "git bisect--helper --bisect-state (bad|new) [<rev>]"
@@ -11103,10 +11339,6 @@ msgstr "git bisect--helper --bisect-replay <dosyaadı>"
msgid "git bisect--helper --bisect-skip [(<rev>|<range>)...]"
msgstr "git bisect--helper --bisect-skip [(<rev>|<erim>)...]"
-#: builtin/bisect--helper.c:33
-msgid "git bisect--helper --bisect-visualize"
-msgstr "git bisect--helper --bisect-visualize"
-
#: builtin/bisect--helper.c:34
msgid "git bisect--helper --bisect-run <cmd>..."
msgstr "git bisect--helper --bisect-run <komut>..."
@@ -11327,41 +11559,51 @@ msgstr "'%s'?? ney ney?"
msgid "cannot read file '%s' for replaying"
msgstr "'%s' dosyası yeniden oynatım için okunamıyor"
-#: builtin/bisect--helper.c:1107 builtin/bisect--helper.c:1274
+#: builtin/bisect--helper.c:1120 builtin/bisect--helper.c:1152
+#, c-format
+msgid "running %s\n"
+msgstr "%s çalıştırılıyor\n"
+
+#: builtin/bisect--helper.c:1145 builtin/bisect--helper.c:1335
msgid "bisect run failed: no command provided."
msgstr "ikili arama başarısız: Komut verilmedi."
-#: builtin/bisect--helper.c:1116
+#: builtin/bisect--helper.c:1166
#, c-format
-msgid "running %s\n"
-msgstr "%s çalıştırılıyor\n"
+msgid "unable to verify '%s' on good revision"
+msgstr "'%s', iyi revizyonda doğrulanamadı"
-#: builtin/bisect--helper.c:1120
+#: builtin/bisect--helper.c:1172
+#, c-format
+msgid "bogus exit code %d for good revision"
+msgstr "iyi revizyon için anlamsız %d çıkış kodu"
+
+#: builtin/bisect--helper.c:1180
#, c-format
msgid "bisect run failed: exit code %d from '%s' is < 0 or >= 128"
msgstr ""
"bisect çalıştırılamadı: çıkış kodu %d, '%s' konumundan, < 0 veya >= 128"
-#: builtin/bisect--helper.c:1136
+#: builtin/bisect--helper.c:1195
#, c-format
msgid "cannot open file '%s' for writing"
msgstr "'%s' dosyası yazma için açılamadı"
-#: builtin/bisect--helper.c:1152
+#: builtin/bisect--helper.c:1213
msgid "bisect run cannot continue any more"
msgstr "ikili arama artık çalışmayı sürdüremiyor"
-#: builtin/bisect--helper.c:1154
+#: builtin/bisect--helper.c:1215
#, c-format
msgid "bisect run success"
msgstr "ikili arama başarılı"
-#: builtin/bisect--helper.c:1157
+#: builtin/bisect--helper.c:1218
#, c-format
msgid "bisect found first bad commit"
msgstr "ikili arama ilk hatalı işlemeyi buldu"
-#: builtin/bisect--helper.c:1160
+#: builtin/bisect--helper.c:1221
#, c-format
msgid ""
"bisect run failed: 'git bisect--helper --bisect-state %s' exited with error "
@@ -11370,71 +11612,71 @@ msgstr ""
"ikili arama çalıştırılamadı: 'git bisect--helper --bisect-state %s', %d hata "
"koduyla çıktı"
-#: builtin/bisect--helper.c:1192
+#: builtin/bisect--helper.c:1253
msgid "reset the bisection state"
msgstr "ikili arama durumunu sıfırla"
-#: builtin/bisect--helper.c:1194
+#: builtin/bisect--helper.c:1255
msgid "check whether bad or good terms exist"
msgstr "iyi veya kötü terimlerin olup olmadığını denetle"
-#: builtin/bisect--helper.c:1196
+#: builtin/bisect--helper.c:1257
msgid "print out the bisect terms"
msgstr "ikili arama terimlerini yazdır"
-#: builtin/bisect--helper.c:1198
+#: builtin/bisect--helper.c:1259
msgid "start the bisect session"
msgstr "ikili arama oturumunu baÅŸlat"
-#: builtin/bisect--helper.c:1200
+#: builtin/bisect--helper.c:1261
msgid "find the next bisection commit"
msgstr "bir sonraki ikili arama iÅŸlemesini bul"
-#: builtin/bisect--helper.c:1202
+#: builtin/bisect--helper.c:1263
msgid "mark the state of ref (or refs)"
msgstr "başvurunun (veya başvuruların) durumunu imle"
-#: builtin/bisect--helper.c:1204
+#: builtin/bisect--helper.c:1265
msgid "list the bisection steps so far"
msgstr "ÅŸu ana kadarki ikili arama durumunu listele"
-#: builtin/bisect--helper.c:1206
+#: builtin/bisect--helper.c:1267
msgid "replay the bisection process from the given file"
msgstr "verilen dosyadan ikili arama iÅŸlemini yeniden oynat"
-#: builtin/bisect--helper.c:1208
+#: builtin/bisect--helper.c:1269
msgid "skip some commits for checkout"
msgstr "çıkış için birkaç işlemeyi atla"
-#: builtin/bisect--helper.c:1210
+#: builtin/bisect--helper.c:1271
msgid "visualize the bisection"
msgstr "ikili aramayı görselleştir"
-#: builtin/bisect--helper.c:1212
-msgid "use <cmd>... to automatically bisect."
+#: builtin/bisect--helper.c:1273
+msgid "use <cmd>... to automatically bisect"
msgstr "kendiliğinden ikili aramak için <komut>... kullan"
-#: builtin/bisect--helper.c:1214
+#: builtin/bisect--helper.c:1275
msgid "no log for BISECT_WRITE"
msgstr "BISECT_WRITE için günlük yok"
-#: builtin/bisect--helper.c:1229
+#: builtin/bisect--helper.c:1290
msgid "--bisect-reset requires either no argument or a commit"
msgstr "--bisect-reset bir argüman veya işleme gerektirmiyor"
-#: builtin/bisect--helper.c:1234
+#: builtin/bisect--helper.c:1295
msgid "--bisect-terms requires 0 or 1 argument"
msgstr "--bisect-terms 0 veya 1 argüman gerektiriyor"
-#: builtin/bisect--helper.c:1243
+#: builtin/bisect--helper.c:1304
msgid "--bisect-next requires 0 arguments"
msgstr "--bisect-next 0 argüman gerektiriyor"
-#: builtin/bisect--helper.c:1254
+#: builtin/bisect--helper.c:1315
msgid "--bisect-log requires 0 arguments"
msgstr "--bisect-log 0 argüman gerektiriyor"
-#: builtin/bisect--helper.c:1259
+#: builtin/bisect--helper.c:1320
msgid "no logfile given"
msgstr "hiçbir günlük dosyası verilmedi"
@@ -11455,143 +11697,134 @@ msgstr "bir renk bekleniyor: %s"
msgid "must end with a color"
msgstr "bir renk ile bitmeli"
-#: builtin/blame.c:724
-#, c-format
-msgid "invalid color '%s' in color.blame.repeatedLines"
-msgstr "color.blame.repeatedLines içinde geçersiz renk '%s'"
-
-#: builtin/blame.c:742
-msgid "invalid value for blame.coloring"
-msgstr "blame.coloring için geçersiz değer"
-
-#: builtin/blame.c:841
+#: builtin/blame.c:842
#, c-format
msgid "cannot find revision %s to ignore"
msgstr "yok saymak için %s revizyonu bulunamıyor"
-#: builtin/blame.c:863
+#: builtin/blame.c:864
msgid "show blame entries as we find them, incrementally"
msgstr "genel bakış girdilerini biz buldukça artan biçimde göster"
-#: builtin/blame.c:864
+#: builtin/blame.c:865
msgid "do not show object names of boundary commits (Default: off)"
msgstr "sınır işlemeleri için nesne adlarını gösterme (Öntanımlı: Kapalı)"
-#: builtin/blame.c:865
+#: builtin/blame.c:866
msgid "do not treat root commits as boundaries (Default: off)"
msgstr "kök işlemelerini sınır olarak değerlendirme (Öntanımlı: Kapalı)"
-#: builtin/blame.c:866
+#: builtin/blame.c:867
msgid "show work cost statistics"
msgstr "iş maliyet istatistiklerini göster"
-#: builtin/blame.c:867 builtin/checkout.c:1536 builtin/clone.c:94
-#: builtin/commit-graph.c:75 builtin/commit-graph.c:228 builtin/fetch.c:180
+#: builtin/blame.c:868 builtin/checkout.c:1554 builtin/clone.c:98
+#: builtin/commit-graph.c:75 builtin/commit-graph.c:228 builtin/fetch.c:181
#: builtin/merge.c:301 builtin/multi-pack-index.c:103
#: builtin/multi-pack-index.c:154 builtin/multi-pack-index.c:180
#: builtin/multi-pack-index.c:208 builtin/pull.c:120 builtin/push.c:566
-#: builtin/send-pack.c:202
+#: builtin/remote.c:683 builtin/send-pack.c:202
msgid "force progress reporting"
msgstr "durum belirtmeyi zorla"
-#: builtin/blame.c:868
+#: builtin/blame.c:869
msgid "show output score for blame entries"
msgstr "genel bakış girdileri için çıktı skorunu göster"
-#: builtin/blame.c:869
+#: builtin/blame.c:870
msgid "show original filename (Default: auto)"
msgstr "orijinal dosya adını göster (Öntanımlı: Otomatik)"
-#: builtin/blame.c:870
+#: builtin/blame.c:871
msgid "show original linenumber (Default: off)"
msgstr "orijinal satır numarasını göster (Öntanımlı: Kapalı)"
-#: builtin/blame.c:871
+#: builtin/blame.c:872
msgid "show in a format designed for machine consumption"
msgstr "makine işlemesi için tasarlanmış bir biçimde göster"
-#: builtin/blame.c:872
+#: builtin/blame.c:873
msgid "show porcelain format with per-line commit information"
msgstr "okunabilir biçimde her satır için işleme bilgisi ile göster"
-#: builtin/blame.c:873
+#: builtin/blame.c:874
msgid "use the same output mode as git-annotate (Default: off)"
msgstr "git-annotate ile aynı çıktı kipini kullan (Öntanımlı: Kapalı)"
-#: builtin/blame.c:874
+#: builtin/blame.c:875
msgid "show raw timestamp (Default: off)"
msgstr "ham zaman damgasını göster (Öntanımlı: Kapalı)"
-#: builtin/blame.c:875
+#: builtin/blame.c:876
msgid "show long commit SHA1 (Default: off)"
msgstr "uzun işleme SHA1'ini göster (Öntanımlı: Kapalı)"
-#: builtin/blame.c:876
+#: builtin/blame.c:877
msgid "suppress author name and timestamp (Default: off)"
msgstr "yazar adını ve zaman damgasını gizle (Öntanımlı: Kapalı)"
-#: builtin/blame.c:877
+#: builtin/blame.c:878
msgid "show author email instead of name (Default: off)"
msgstr "yazar adı yerine e-postasını göster (Öntanımlı: Kapalı)"
-#: builtin/blame.c:878
+#: builtin/blame.c:879
msgid "ignore whitespace differences"
msgstr "boşluk ayrımlarını yok say"
-#: builtin/blame.c:879 builtin/log.c:1838
+#: builtin/blame.c:880 builtin/log.c:1857
msgid "rev"
msgstr "revizyon"
-#: builtin/blame.c:879
+#: builtin/blame.c:880
msgid "ignore <rev> when blaming"
msgstr "suçlarken <revizyon>'u yok say"
-#: builtin/blame.c:880
+#: builtin/blame.c:881
msgid "ignore revisions from <file>"
msgstr "<dosya>'dan olan revizyonları yok say"
-#: builtin/blame.c:881
+#: builtin/blame.c:882
msgid "color redundant metadata from previous line differently"
msgstr "bir önceki dosyadan gereksiz üstveriyi başka biçimde renklendir"
-#: builtin/blame.c:882
+#: builtin/blame.c:883
msgid "color lines by age"
msgstr "satırları yaşına göre renklendir"
-#: builtin/blame.c:883
+#: builtin/blame.c:884
msgid "spend extra cycles to find better match"
msgstr "daha iyi eşleşme bulmak için ek döngüler harca"
-#: builtin/blame.c:884
+#: builtin/blame.c:885
msgid "use revisions from <file> instead of calling git-rev-list"
msgstr "git-rev-list çağırma yerine <dosya>'dan olan revizyonları kullan"
-#: builtin/blame.c:885
+#: builtin/blame.c:886
msgid "use <file>'s contents as the final image"
msgstr "<dosya>'nın içeriğini son görüntü olarak kullan"
-#: builtin/blame.c:886 builtin/blame.c:887
+#: builtin/blame.c:887 builtin/blame.c:888
msgid "score"
msgstr "skor"
-#: builtin/blame.c:886
+#: builtin/blame.c:887
msgid "find line copies within and across files"
msgstr "satır kopyalarını dosyaların içinde ve aralarında ara"
-#: builtin/blame.c:887
+#: builtin/blame.c:888
msgid "find line movements within and across files"
msgstr "satır hareketlerini dosyaların içinde ve aralarında ara"
-#: builtin/blame.c:888
+#: builtin/blame.c:889
msgid "range"
msgstr "erim"
-#: builtin/blame.c:889
+#: builtin/blame.c:890
msgid "process only line range <start>,<end> or function :<funcname>"
msgstr ""
"Yalnızca <başlangıç>,<bitiş> satır erimini veya :<işlevadı> işlevini işle"
-#: builtin/blame.c:947
+#: builtin/blame.c:949
msgid "--progress can't be used with --incremental or porcelain formats"
msgstr "--progress, --incremental veya okunabilir biçimlerle kullanılamaz"
@@ -11603,18 +11836,18 @@ msgstr "--progress, --incremental veya okunabilir biçimlerle kullanılamaz"
#. your language may need more or fewer display
#. columns.
#.
-#: builtin/blame.c:998
+#: builtin/blame.c:1000
msgid "4 years, 11 months ago"
msgstr "4 yıl 11 ay önce"
-#: builtin/blame.c:1114
+#: builtin/blame.c:1116
#, c-format
msgid "file %s has only %lu line"
msgid_plural "file %s has only %lu lines"
msgstr[0] "%s dosyasında yalnızca %lu satır var"
msgstr[1] "%s dosyasında yalnızca %lu satır var"
-#: builtin/blame.c:1159
+#: builtin/blame.c:1161
msgid "Blaming lines"
msgstr "Genel bakış satırları"
@@ -11623,30 +11856,38 @@ msgid "git branch [<options>] [-r | -a] [--merged] [--no-merged]"
msgstr "git branch [<seçenekler>] [-r | -a] [--merged] [--no-merged]"
#: builtin/branch.c:30
-msgid "git branch [<options>] [-l] [-f] <branch-name> [<start-point>]"
-msgstr "git branch [<seçenekler>] [-l] [-f] <dal-adı> [<başlama-noktası>]"
+msgid ""
+"git branch [<options>] [-f] [--recurse-submodules] <branch-name> [<start-"
+"point>]"
+msgstr ""
+"git branch [<seçenekler>] [-f] [--recurse-submodules] <dal-adı> [<başlangıç-"
+"noktası>]"
#: builtin/branch.c:31
+msgid "git branch [<options>] [-l] [<pattern>...]"
+msgstr "git branch [<seçenekler>] [-l] [<dizgi>...]"
+
+#: builtin/branch.c:32
msgid "git branch [<options>] [-r] (-d | -D) <branch-name>..."
msgstr "git branch [<seçenekler>] [-r] (-d | -D) <dal-adı>..."
-#: builtin/branch.c:32
+#: builtin/branch.c:33
msgid "git branch [<options>] (-m | -M) [<old-branch>] <new-branch>"
msgstr "git branch [<seçenekler>] (-m | -M) [<eski-dal>] <yeni-dal>"
-#: builtin/branch.c:33
+#: builtin/branch.c:34
msgid "git branch [<options>] (-c | -C) [<old-branch>] <new-branch>"
msgstr "git branch [<seçenekler>] (-c | -C) [<eski-dal>] <yeni-dal>"
-#: builtin/branch.c:34
+#: builtin/branch.c:35
msgid "git branch [<options>] [-r | -a] [--points-at]"
msgstr "git branch [<seçenekler>] [-r | -a] [--points-at]"
-#: builtin/branch.c:35
+#: builtin/branch.c:36
msgid "git branch [<options>] [-r | -a] [--format]"
msgstr "git branch [<seçenekler>] [-r | -a] [--format]"
-#: builtin/branch.c:153
+#: builtin/branch.c:165
#, c-format
msgid ""
"deleting branch '%s' that has been merged to\n"
@@ -11655,7 +11896,7 @@ msgstr ""
"'%s' dalı siliniyor: Bu dal '%s'\n"
" dalına birleştirilmiş; ancak HEAD'e henüz birleştirilmemiş."
-#: builtin/branch.c:157
+#: builtin/branch.c:169
#, c-format
msgid ""
"not deleting branch '%s' that is not yet merged to\n"
@@ -11664,12 +11905,12 @@ msgstr ""
"'%s' dalı silinmiyor: Bu dal HEAD'e birleştirilmiş olmasına rağmen\n"
" '%s' dalına birleştirilmemiş."
-#: builtin/branch.c:171
+#: builtin/branch.c:183
#, c-format
msgid "Couldn't look up commit object for '%s'"
msgstr "'%s' için işleme nesnesi aranamadı"
-#: builtin/branch.c:175
+#: builtin/branch.c:187
#, c-format
msgid ""
"The branch '%s' is not fully merged.\n"
@@ -11678,111 +11919,111 @@ msgstr ""
"'%s' dalı tümüyle birleştirilmemiş.\n"
"Eğer silmek istediğinizden eminseniz 'git branch -D %s' çalıştırın."
-#: builtin/branch.c:188
+#: builtin/branch.c:200
msgid "Update of config-file failed"
msgstr "config-file güncellemesi başarısız"
-#: builtin/branch.c:223
+#: builtin/branch.c:235
msgid "cannot use -a with -d"
msgstr "-a, -d ile kullanılamıyor"
-#: builtin/branch.c:230
+#: builtin/branch.c:242
msgid "Couldn't look up commit object for HEAD"
msgstr "HEAD için işleme nesnesi aranamadı."
-#: builtin/branch.c:247
+#: builtin/branch.c:259
#, c-format
msgid "Cannot delete branch '%s' checked out at '%s'"
msgstr "'%s' dalı silinemiyor, şurada çıkış yapılmış: '%s'."
-#: builtin/branch.c:262
+#: builtin/branch.c:274
#, c-format
msgid "remote-tracking branch '%s' not found."
msgstr "Uzak izleme dalı '%s' bulunamadı."
-#: builtin/branch.c:263
+#: builtin/branch.c:275
#, c-format
msgid "branch '%s' not found."
msgstr "'%s' dalı bulunamadı."
-#: builtin/branch.c:294
+#: builtin/branch.c:306
#, c-format
msgid "Deleted remote-tracking branch %s (was %s).\n"
msgstr "Uzak izleme dalı %s silindi (%s idi).\n"
-#: builtin/branch.c:295
+#: builtin/branch.c:307
#, c-format
msgid "Deleted branch %s (was %s).\n"
msgstr "%s dalı silindi (%s idi).\n"
-#: builtin/branch.c:445 builtin/tag.c:63
+#: builtin/branch.c:457 builtin/tag.c:64
msgid "unable to parse format string"
msgstr "biçim dizisi ayrıştırılamıyor"
-#: builtin/branch.c:476
+#: builtin/branch.c:488
msgid "could not resolve HEAD"
msgstr "HEAD çözülemedi"
-#: builtin/branch.c:482
+#: builtin/branch.c:494
#, c-format
msgid "HEAD (%s) points outside of refs/heads/"
msgstr "HEAD (%s), refs/heads/ dışına işaret ediyor"
-#: builtin/branch.c:497
+#: builtin/branch.c:509
#, c-format
msgid "Branch %s is being rebased at %s"
msgstr "%s dalı %s konumunda yeniden temellendiriliyor"
-#: builtin/branch.c:501
+#: builtin/branch.c:513
#, c-format
msgid "Branch %s is being bisected at %s"
msgstr "%s dalı %s konumunda ikili aranıyor"
-#: builtin/branch.c:518
+#: builtin/branch.c:530
msgid "cannot copy the current branch while not on any."
msgstr "Bir dalın üzerinde değilken geçerli dal kopyalanamaz."
-#: builtin/branch.c:520
+#: builtin/branch.c:532
msgid "cannot rename the current branch while not on any."
msgstr "Bir dalın üzerinde değilken geçerli dal yeniden adlandırılamaz."
-#: builtin/branch.c:531
+#: builtin/branch.c:543
#, c-format
msgid "Invalid branch name: '%s'"
msgstr "Geçersiz dal adı: '%s'"
-#: builtin/branch.c:560
+#: builtin/branch.c:572
msgid "Branch rename failed"
msgstr "Dal yeniden adlandırması başarısız"
-#: builtin/branch.c:562
+#: builtin/branch.c:574
msgid "Branch copy failed"
msgstr "Dal kopyalaması başarısız"
-#: builtin/branch.c:566
+#: builtin/branch.c:578
#, c-format
msgid "Created a copy of a misnamed branch '%s'"
msgstr "Yanlış adlandırılan '%s' dalının bir kopyası oluşturuldu"
-#: builtin/branch.c:569
+#: builtin/branch.c:581
#, c-format
msgid "Renamed a misnamed branch '%s' away"
msgstr "Yanlış adlandırılan '%s' dalı yeniden adlandırıldı"
-#: builtin/branch.c:575
+#: builtin/branch.c:587
#, c-format
msgid "Branch renamed to %s, but HEAD is not updated!"
msgstr "Dal %s olarak yeniden adlandırıldı; ancak HEAD güncellenmedi!"
-#: builtin/branch.c:584
+#: builtin/branch.c:596
msgid "Branch is renamed, but update of config-file failed"
msgstr "Dal yeniden adlandırıldı; ancak config-file güncellemesi başarısız"
-#: builtin/branch.c:586
+#: builtin/branch.c:598
msgid "Branch is copied, but update of config-file failed"
msgstr "Dal kopyalandı; ancak config-file güncellemesi başarısız"
-#: builtin/branch.c:602
+#: builtin/branch.c:614
#, c-format
msgid ""
"Please edit the description for the branch\n"
@@ -11793,176 +12034,193 @@ msgstr ""
"\t%s\n"
"'%c' ile başlayan satırlar çıkarılacaktır.\n"
-#: builtin/branch.c:637
+#: builtin/branch.c:651
msgid "Generic options"
msgstr "Genel seçenekler"
-#: builtin/branch.c:639
+#: builtin/branch.c:653
msgid "show hash and subject, give twice for upstream branch"
msgstr "sağlamayı ve konuyu göster, üstkaynak dalı için iki kez ver"
-#: builtin/branch.c:640
+#: builtin/branch.c:654
msgid "suppress informational messages"
msgstr "bilgi iletilerini gizle"
-#: builtin/branch.c:642
+#: builtin/branch.c:656 builtin/checkout.c:1571
+#: builtin/submodule--helper.c:3077
msgid "set branch tracking configuration"
msgstr "dal izleme yapılandırmasını ayarla"
-#: builtin/branch.c:645
+#: builtin/branch.c:659
msgid "do not use"
msgstr "kullanma"
-#: builtin/branch.c:647
+#: builtin/branch.c:661
msgid "upstream"
msgstr "üstkaynak"
-#: builtin/branch.c:647
+#: builtin/branch.c:661
msgid "change the upstream info"
msgstr "üstkaynak bilgisini değiştir"
-#: builtin/branch.c:648
+#: builtin/branch.c:662
msgid "unset the upstream info"
msgstr "üstkaynak bilgisini kaldır"
-#: builtin/branch.c:649
+#: builtin/branch.c:663
msgid "use colored output"
msgstr "renklendirilmiş çıktı kullan"
-#: builtin/branch.c:650
+#: builtin/branch.c:664
msgid "act on remote-tracking branches"
msgstr "uzak izleme dallarında iş yap"
-#: builtin/branch.c:652 builtin/branch.c:654
+#: builtin/branch.c:666 builtin/branch.c:668
msgid "print only branches that contain the commit"
msgstr "yalnızca işlemeyi içeren dalları yazdır"
-#: builtin/branch.c:653 builtin/branch.c:655
+#: builtin/branch.c:667 builtin/branch.c:669
msgid "print only branches that don't contain the commit"
msgstr "yalnızca işlemeyi içermeyen dalları yazdır"
-#: builtin/branch.c:658
+#: builtin/branch.c:672
msgid "Specific git-branch actions:"
msgstr "Özel git-branch eylemleri:"
-#: builtin/branch.c:659
+#: builtin/branch.c:673
msgid "list both remote-tracking and local branches"
msgstr "hem uzak izleme hem de yerel dalları listele"
-#: builtin/branch.c:661
+#: builtin/branch.c:675
msgid "delete fully merged branch"
msgstr "tümüyle birleştirilen dalı sil"
-#: builtin/branch.c:662
+#: builtin/branch.c:676
msgid "delete branch (even if not merged)"
msgstr "dalı sil (birleştirilmemiş olsa bile)"
-#: builtin/branch.c:663
+#: builtin/branch.c:677
msgid "move/rename a branch and its reflog"
msgstr "bir dalı ve onun başvuru günlüğünü taşı/yeniden adlandır"
-#: builtin/branch.c:664
+#: builtin/branch.c:678
msgid "move/rename a branch, even if target exists"
msgstr "bir dalı taşı/yeniden adlandır, hedef var olsa bile"
-#: builtin/branch.c:665
+#: builtin/branch.c:679
msgid "copy a branch and its reflog"
msgstr "bir dalı ve onun başvuru günlüğünü kopyala"
-#: builtin/branch.c:666
+#: builtin/branch.c:680
msgid "copy a branch, even if target exists"
msgstr "bir dalı kopyala, hedef var olsa bile"
-#: builtin/branch.c:667
+#: builtin/branch.c:681
msgid "list branch names"
msgstr "dal adlarını listele"
-#: builtin/branch.c:668
+#: builtin/branch.c:682
msgid "show current branch name"
msgstr "geçerli dal adını göster"
-#: builtin/branch.c:669
+#: builtin/branch.c:683 builtin/submodule--helper.c:3075
msgid "create the branch's reflog"
msgstr "dalın başvuru günlüğünü oluştur"
-#: builtin/branch.c:671
+#: builtin/branch.c:685
msgid "edit the description for the branch"
msgstr "dalın açıklamasını düzenle"
-#: builtin/branch.c:672
+#: builtin/branch.c:686
msgid "force creation, move/rename, deletion"
msgstr "zorla oluştur, taşı/yeniden adlandır, sil"
-#: builtin/branch.c:673
+#: builtin/branch.c:687
msgid "print only branches that are merged"
msgstr "yalnızca birleştirilen dalları yazdır"
-#: builtin/branch.c:674
+#: builtin/branch.c:688
msgid "print only branches that are not merged"
msgstr "yalnızca birleştirilmeyen dalları yazdır"
-#: builtin/branch.c:675
+#: builtin/branch.c:689
msgid "list branches in columns"
msgstr "dalları sütunlarla listele"
-#: builtin/branch.c:677 builtin/for-each-ref.c:45 builtin/notes.c:413
+#: builtin/branch.c:691 builtin/for-each-ref.c:45 builtin/notes.c:413
#: builtin/notes.c:416 builtin/notes.c:579 builtin/notes.c:582
-#: builtin/tag.c:475
+#: builtin/tag.c:476
msgid "object"
msgstr "nesne"
-#: builtin/branch.c:678
+#: builtin/branch.c:692
msgid "print only branches of the object"
msgstr "yalnızca nesnenin dallarını yazdır"
-#: builtin/branch.c:679 builtin/for-each-ref.c:51 builtin/tag.c:482
+#: builtin/branch.c:693 builtin/for-each-ref.c:51 builtin/tag.c:483
msgid "sorting and filtering are case insensitive"
msgstr "sıralama ve süzme BÜYÜK/küçük harf duyarlı değildir"
-#: builtin/branch.c:680 builtin/for-each-ref.c:41 builtin/tag.c:480
-#: builtin/verify-tag.c:38
+#: builtin/branch.c:694 builtin/ls-files.c:667
+msgid "recurse through submodules"
+msgstr "altmodüller içinden özyinele"
+
+#: builtin/branch.c:695 builtin/for-each-ref.c:41 builtin/ls-tree.c:358
+#: builtin/tag.c:481 builtin/verify-tag.c:38
msgid "format to use for the output"
msgstr "çıktı için kullanılacak biçim"
-#: builtin/branch.c:703 builtin/clone.c:678
+#: builtin/branch.c:718 builtin/clone.c:684
msgid "HEAD not found below refs/heads!"
msgstr "HEAD, refs/heads altında bulunamadı!"
-#: builtin/branch.c:742 builtin/branch.c:798 builtin/branch.c:807
+#: builtin/branch.c:739
+msgid ""
+"branch with --recurse-submodules can only be used if submodule."
+"propagateBranches is enabled"
+msgstr ""
+"--recurse-submodules ile dallanma, yalnızca submodule.propagateBranches "
+"etkinleştirilmişse kullanılabilir"
+
+#: builtin/branch.c:741
+msgid "--recurse-submodules can only be used to create branches"
+msgstr "--recurse-submodules, yalnızca dal oluşturmada kullanılabilir"
+
+#: builtin/branch.c:770 builtin/branch.c:826 builtin/branch.c:835
msgid "branch name required"
msgstr "dal adı gerekli"
-#: builtin/branch.c:774
+#: builtin/branch.c:802
msgid "Cannot give description to detached HEAD"
msgstr "Ayrılmış HEAD'e açıklama verilemiyor"
-#: builtin/branch.c:779
+#: builtin/branch.c:807
msgid "cannot edit description of more than one branch"
msgstr "birden çok dalın açıklaması düzenlenemiyor"
-#: builtin/branch.c:786
+#: builtin/branch.c:814
#, c-format
msgid "No commit on branch '%s' yet."
msgstr "'%s' dalında henüz bir işleme yok."
-#: builtin/branch.c:789
+#: builtin/branch.c:817
#, c-format
msgid "No branch named '%s'."
msgstr "'%s' adında bir dal yok."
-#: builtin/branch.c:804
+#: builtin/branch.c:832
msgid "too many branches for a copy operation"
msgstr "bir kopyalama işlemi için çok fazla dal"
-#: builtin/branch.c:813
+#: builtin/branch.c:841
msgid "too many arguments for a rename operation"
msgstr "bir yeniden adlandırma işlemi için çok fazla argüman"
-#: builtin/branch.c:818
+#: builtin/branch.c:846
msgid "too many arguments to set new upstream"
msgstr "yeni üstkaynak ayarlamak için çok fazla argüman"
-#: builtin/branch.c:822
+#: builtin/branch.c:850
#, c-format
msgid ""
"could not set upstream of HEAD to %s when it does not point to any branch."
@@ -11970,31 +12228,31 @@ msgstr ""
"HEAD'in üst kaynağı %s olarak ayarlanamadı; çünkü herhangi bir dala işaret "
"etmiyor."
-#: builtin/branch.c:825 builtin/branch.c:848
+#: builtin/branch.c:853 builtin/branch.c:873
#, c-format
msgid "no such branch '%s'"
msgstr "'%s' diye bir dal yok"
-#: builtin/branch.c:829
+#: builtin/branch.c:857
#, c-format
msgid "branch '%s' does not exist"
msgstr "'%s' diye bir dal mevcut deÄŸil"
-#: builtin/branch.c:842
+#: builtin/branch.c:867
msgid "too many arguments to unset upstream"
msgstr "üst kaynağı kaldırmak için çok fazla argüman"
-#: builtin/branch.c:846
+#: builtin/branch.c:871
msgid "could not unset upstream of HEAD when it does not point to any branch."
msgstr ""
"HEAD'in üst kaynağı kaldırılamadı; çünkü herhangi bir dala işaret etmiyor."
-#: builtin/branch.c:852
+#: builtin/branch.c:877
#, c-format
msgid "Branch '%s' has no upstream information"
msgstr "'%s' dalının üstkaynak bilgisi yok"
-#: builtin/branch.c:862
+#: builtin/branch.c:890
msgid ""
"The -a, and -r, options to 'git branch' do not take a branch name.\n"
"Did you mean to use: -a|-r --list <pattern>?"
@@ -12002,7 +12260,7 @@ msgstr ""
"'git branch'in -a ve -r seçenekleri bir dal adı almaz.\n"
"Åžunu mu demek istediniz: -a|-r --list <dizgi>?"
-#: builtin/branch.c:866
+#: builtin/branch.c:894
msgid ""
"the '--set-upstream' option is no longer supported. Please use '--track' or "
"'--set-upstream-to' instead."
@@ -12117,19 +12375,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:65 builtin/pack-objects.c:3876
+#: builtin/bundle.c:65 builtin/pack-objects.c:3899
msgid "do not show progress meter"
msgstr "ilerleme çubuğunu gösterme"
-#: builtin/bundle.c:67 builtin/bundle.c:167 builtin/pack-objects.c:3878
+#: builtin/bundle.c:67 builtin/bundle.c:168 builtin/pack-objects.c:3901
msgid "show progress meter"
msgstr "ilerleme çubuğunu göster"
-#: builtin/bundle.c:69 builtin/pack-objects.c:3880
+#: builtin/bundle.c:69 builtin/pack-objects.c:3903
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:72 builtin/pack-objects.c:3883
+#: builtin/bundle.c:72 builtin/pack-objects.c:3906
msgid "similar to --all-progress when progress meter is shown"
msgstr "ilerleme çubuğu gösterildiğinde --all-progress'e benzer"
@@ -12141,112 +12399,227 @@ msgstr "demet biçim sürümünü belirt"
msgid "Need a repository to create a bundle."
msgstr "Bir demet oluşturmak için bir depo gerekli."
-#: builtin/bundle.c:107
+#: builtin/bundle.c:108
msgid "do not show bundle details"
msgstr "demet ayrıntılarını gösterme"
-#: builtin/bundle.c:126
+#: builtin/bundle.c:127
#, c-format
msgid "%s is okay\n"
msgstr "%s tamam\n"
-#: builtin/bundle.c:182
+#: builtin/bundle.c:183
msgid "Need a repository to unbundle."
-msgstr "Demeti çözmek için bir depo gerekiyoriyor."
+msgstr "Demeti çözmek için bir depo gerekiyor."
-#: builtin/bundle.c:185
+#: builtin/bundle.c:186
msgid "Unbundling objects"
msgstr "Nesneler demetten çıkarılıyor"
-#: builtin/bundle.c:219 builtin/remote.c:1733
+#: builtin/bundle.c:220 builtin/remote.c:1758
#, c-format
msgid "Unknown subcommand: %s"
msgstr "Bilinmeyen altkomut: %s"
-#: builtin/cat-file.c:622
+#: builtin/cat-file.c:568
+msgid "flush is only for --buffer mode"
+msgstr "floş, yalnızca --buffer kipi içindir"
+
+#: builtin/cat-file.c:612
+msgid "empty command in input"
+msgstr "girdide boÅŸ komut"
+
+#: builtin/cat-file.c:614
+#, c-format
+msgid "whitespace before command: '%s'"
+msgstr "komuttan önce boşluk: '%s'"
+
+#: builtin/cat-file.c:623
+#, c-format
+msgid "%s requires arguments"
+msgstr "%s, argümanlar gerektiriyor"
+
+#: builtin/cat-file.c:628
+#, c-format
+msgid "%s takes no arguments"
+msgstr "%s, bir argüman almıyor"
+
+#: builtin/cat-file.c:636
+#, c-format
+msgid "unknown command: '%s'"
+msgstr "bilinmeyen komut: '%s'"
+
+#: builtin/cat-file.c:795
+msgid "only one batch option may be specified"
+msgstr "yalnızca bir toplu iş seçeneği belirtilebilir"
+
+#: builtin/cat-file.c:824
+msgid "git cat-file <type> <object>"
+msgstr "git cat-file <tür> <nesne>"
+
+#: builtin/cat-file.c:825
+msgid "git cat-file (-e | -p) <object>"
+msgstr "git cat-file (-e | -p) <nesne>"
+
+#: builtin/cat-file.c:826
+msgid "git cat-file (-t | -s) [--allow-unknown-type] <object>"
+msgstr "git cat-file (-t | -s) [--allow-unknown-type] <nesne>"
+
+#: builtin/cat-file.c:827
msgid ""
-"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 | --batch-command) [--batch-all-"
+"objects]\n"
+" [--buffer] [--follow-symlinks] [--unordered]\n"
+" [--textconv | --filters]"
msgstr ""
-"git cat-file (-t [--allow-unknown-type] | -s [--allow-unknown-type] | -e | -"
-"p | <tür> | --textconv | --filters) [--path=<yol>] <nesne>"
+"git cat-file (--batch | --batch-check | --batch-command) [--batch-all-"
+"objects]\n"
+" [--buffer] [--follow-symlinks] [--unordered]\n"
+" [--textconv | --filters]"
-#: builtin/cat-file.c:623
+#: builtin/cat-file.c:830
msgid ""
-"git cat-file (--batch[=<format>] | --batch-check[=<format>]) [--follow-"
-"symlinks] [--textconv | --filters]"
+"git cat-file (--textconv | --filters)\n"
+" [<rev>:<path|tree-ish> | --path=<path|tree-ish> <rev>]"
msgstr ""
-"git cat-file (--batch[=<biçim>] | --batch-check[=<biçim>]) [--follow-"
-"symlinks] [--textconv | --filters]"
+"git cat-file (--textconv | --filters)\n"
+" [<başvuru>:<yol|ağacımsı> | --path=<yol|ağacımsı> <revizyon>]"
-#: builtin/cat-file.c:644
-msgid "only one batch option may be specified"
-msgstr "yalnızca bir toplu iş seçeneği belirtilebilir"
+#: builtin/cat-file.c:836
+msgid "Check object existence or emit object contents"
+msgstr "Nesne varlığını denetle veya nesne içeriğini yay"
+
+#: builtin/cat-file.c:838
+msgid "check if <object> exists"
+msgstr "<nesne> varlığını denetle"
+
+#: builtin/cat-file.c:839
+msgid "pretty-print <object> content"
+msgstr "<nesne> içeriğini okunabilir yap"
-#: builtin/cat-file.c:662
-msgid "<type> can be one of: blob, tree, commit, tag"
-msgstr "<tür> yalnızca şunlardan biri olabilir: blob, tree, commit, tag"
+#: builtin/cat-file.c:841
+msgid "Emit [broken] object attributes"
+msgstr "[Hatalı] nesne özniteliklerini yay"
-#: builtin/cat-file.c:663
-msgid "show object type"
-msgstr "nesne türünü göster"
+#: builtin/cat-file.c:842
+msgid "show object type (one of 'blob', 'tree', 'commit', 'tag', ...)"
+msgstr "nesne türünü göster (türler: 'blob', 'tree', 'commit', 'tag', ...)"
-#: builtin/cat-file.c:664
+#: builtin/cat-file.c:843
msgid "show object size"
msgstr "nesne boyutunu göster"
-#: builtin/cat-file.c:666
-msgid "exit with zero when there's no error"
-msgstr "hata yoksa sıfır koduyla çık"
+#: builtin/cat-file.c:845
+msgid "allow -s and -t to work with broken/corrupt objects"
+msgstr "-s ve -t'nin bozuk/hasar görmüş nesnelerle çalışmasına izin ver"
-#: builtin/cat-file.c:667
-msgid "pretty-print object's content"
-msgstr "nesne içeriğini okunabilir biçimde göster"
+#: builtin/cat-file.c:847
+msgid "Batch objects requested on stdin (or --batch-all-objects)"
+msgstr "Toplu iÅŸ nesneleri stdin'de istendi (veya --batch-all-objects)"
-#: builtin/cat-file.c:669
-msgid "for blob objects, run textconv on object's content"
-msgstr "ikili nesneler için nesne içeriği üzerinde textconv çalıştır"
+#: builtin/cat-file.c:849
+msgid "show full <object> or <rev> contents"
+msgstr "tam <nesne> veya <revizyon> içeriğini göster"
-#: builtin/cat-file.c:671
-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:853
+msgid "like --batch, but don't emit <contents>"
+msgstr "--batch gibi; ancak <içerik> yayma"
-#: builtin/cat-file.c:672
-msgid "blob"
-msgstr "ikili nesne"
+#: builtin/cat-file.c:857
+msgid "read commands from stdin"
+msgstr "komutları stdin'den oku"
-#: builtin/cat-file.c:673
-msgid "use a specific path for --textconv/--filters"
-msgstr "--textconv/--filters için belirli bir yol kullan"
+#: builtin/cat-file.c:861
+msgid "with --batch[-check]: ignores stdin, batches all known objects"
+msgstr ""
+"--batch[-check] ile stdin'i yok sayar, bilinen tüm nesneleri bir araya "
+"getirir"
-#: builtin/cat-file.c:675
-msgid "allow -s and -t to work with broken/corrupt objects"
-msgstr "-s ve -t'nin bozuk/hasar görmüş nesnelerle çalışmasına izin ver"
+#: builtin/cat-file.c:863
+msgid "Change or optimize batch output"
+msgstr "Toplu iş çıktısını değiştir veya eniyile"
-#: builtin/cat-file.c:676
+#: builtin/cat-file.c:864
msgid "buffer --batch output"
msgstr "--batch çıktısını arabelleğe al"
-#: builtin/cat-file.c:678
-msgid "show info and content of objects fed from the standard input"
-msgstr "standart girdi'den beslenen nesnelerin bilgisini ve içeriğini göster"
+#: builtin/cat-file.c:866
+msgid "follow in-tree symlinks"
+msgstr "ağaç içi sembolik bağları izle"
-#: builtin/cat-file.c:682
-msgid "show info about objects fed from the standard input"
-msgstr "standart girdi'den beslenen nesneler hakkında bilgi göster"
+#: builtin/cat-file.c:868
+msgid "do not order objects before emitting them"
+msgstr "onları yaymadan önce nesneleri sıralama"
-#: builtin/cat-file.c:686
-msgid "follow in-tree symlinks (used with --batch or --batch-check)"
+#: builtin/cat-file.c:870
+msgid ""
+"Emit object (blob or tree) with conversion or filter (stand-alone, or with "
+"batch)"
+msgstr ""
+"Nesneyi (ikili veya ağaç), dönüştürme veya süzgeçle yay (tek veya toplu)"
+
+#: builtin/cat-file.c:872
+msgid "run textconv on object's content"
+msgstr "nesnenin içeriği üzerinde textconv çalıştır"
+
+#: builtin/cat-file.c:874
+msgid "run filters on object's content"
+msgstr "nesnenin içeriği üzerinde süzgeçler çalıştır"
+
+#: builtin/cat-file.c:875
+msgid "blob|tree"
+msgstr "ikili nesne/ağaç"
+
+#: builtin/cat-file.c:876
+msgid "use a <path> for (--textconv | --filters); Not with 'batch'"
msgstr ""
-"ağaç içi sembolik bağları izle (--batch veya --batch-check ile kullanılır)"
+"(--textconv | --filters) için bir <yol> kullan; ancak 'batch' ile değil"
-#: builtin/cat-file.c:688
-msgid "show all objects with --batch or --batch-check"
-msgstr "--batch veya --batch-check ile olan tüm nesneleri göster"
+#: builtin/cat-file.c:894
+#, c-format
+msgid "'%s=<%s>' needs '%s' or '%s'"
+msgstr "'%s=<%s>' için '%s' veya '%s' gerekiyor"
-#: builtin/cat-file.c:690
-msgid "do not order --batch-all-objects output"
-msgstr "--batch-all-objects çıktısını sıralama"
+#: builtin/cat-file.c:896
+msgid "path|tree-ish"
+msgstr "yol|ağacımsı"
+
+#: builtin/cat-file.c:903 builtin/cat-file.c:906 builtin/cat-file.c:909
+#, c-format
+msgid "'%s' requires a batch mode"
+msgstr "'%s' bir toplu iÅŸ kipi gerektiriyor"
+
+#: builtin/cat-file.c:921
+#, c-format
+msgid "'-%c' is incompatible with batch mode"
+msgstr "'-%c', toplu iÅŸ kipi ile uyumsuz"
+
+#: builtin/cat-file.c:924
+msgid "batch modes take no arguments"
+msgstr "toplu iş kipleri argüman almaz"
+
+#: builtin/cat-file.c:932 builtin/cat-file.c:935
+#, c-format
+msgid "<rev> required with '%s'"
+msgstr "<revizyon>, '%s' ile gerekiyor"
+
+#: builtin/cat-file.c:938
+#, c-format
+msgid "<object> required with '-%c'"
+msgstr "<nesne>, '-%c' ile gerekiyor"
+
+#: builtin/cat-file.c:943 builtin/notes.c:374 builtin/notes.c:429
+#: builtin/notes.c:507 builtin/notes.c:519 builtin/notes.c:596
+#: builtin/notes.c:663 builtin/notes.c:813 builtin/notes.c:965
+#: builtin/notes.c:987 builtin/prune-packed.c:25 builtin/receive-pack.c:2489
+#: builtin/tag.c:592
+msgid "too many arguments"
+msgstr "çok fazla argüman"
+
+#: builtin/cat-file.c:947
+#, c-format
+msgid "only two arguments allowed in <type> <object> mode, not %d"
+msgstr "<tür> <nesne> kipinde yalnızca iki argümana izin veriliyor, %d değil"
#: builtin/check-attr.c:13
msgid "git check-attr [-a | --all | <attr>...] [--] <pathname>..."
@@ -12264,7 +12637,7 @@ msgstr "tüm dosya özniteliklerini bildir"
msgid "use .gitattributes only from the index"
msgstr "yalnızca indeksteki .gitattributes'u kullan"
-#: builtin/check-attr.c:23 builtin/check-ignore.c:25 builtin/hash-object.c:100
+#: builtin/check-attr.c:23 builtin/check-ignore.c:25 builtin/hash-object.c:101
msgid "read file names from stdin"
msgstr "dosya adlarını stdin'den oku"
@@ -12272,8 +12645,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:1532 builtin/gc.c:550
-#: builtin/worktree.c:493
+#: builtin/check-ignore.c:21 builtin/checkout.c:1550 builtin/gc.c:550
+#: builtin/worktree.c:565
msgid "suppress progress reporting"
msgstr "ilerleme bildirimini gizle"
@@ -12330,161 +12703,165 @@ msgstr "kiÅŸi belirtilmedi"
msgid "git checkout--worker [<options>]"
msgstr "git checkout--worker [<seçenekler>]"
-#: builtin/checkout--worker.c:118 builtin/checkout-index.c:201
-#: builtin/column.c:31 builtin/column.c:32 builtin/submodule--helper.c:1864
-#: builtin/submodule--helper.c:1867 builtin/submodule--helper.c:1875
-#: builtin/submodule--helper.c:2511 builtin/submodule--helper.c:2577
-#: builtin/worktree.c:491 builtin/worktree.c:728
+#: builtin/checkout--worker.c:118 builtin/checkout-index.c:235
+#: builtin/column.c:31 builtin/column.c:32 builtin/submodule--helper.c:1878
+#: builtin/submodule--helper.c:1881 builtin/submodule--helper.c:1889
+#: builtin/submodule--helper.c:2716 builtin/worktree.c:563
+#: builtin/worktree.c:808
msgid "string"
msgstr "dizi"
-#: builtin/checkout--worker.c:119 builtin/checkout-index.c:202
+#: builtin/checkout--worker.c:119 builtin/checkout-index.c:236
msgid "when creating files, prepend <string>"
msgstr "dosyalar oluştururken başına <dizi> ekle"
-#: builtin/checkout-index.c:152
+#: builtin/checkout-index.c:184
msgid "git checkout-index [<options>] [--] [<file>...]"
msgstr "git checkout-index [<seçenekler>] [--] [<dosya>...]"
-#: builtin/checkout-index.c:169
+#: builtin/checkout-index.c:201
msgid "stage should be between 1 and 3 or all"
msgstr "stage 1 ve 3 arasında veya tümü olmalıdır"
-#: builtin/checkout-index.c:187
+#: builtin/checkout-index.c:219
msgid "check out all files in the index"
msgstr "indeksteki tüm dosyaları çıkış yap"
-#: builtin/checkout-index.c:188
+#: builtin/checkout-index.c:221
+msgid "do not skip files with skip-worktree set"
+msgstr "skip-worktree kümesiyle dosyaları atlama"
+
+#: builtin/checkout-index.c:222
msgid "force overwrite of existing files"
msgstr "mevcut dosyaların üzerine yazılmasını zorla"
-#: builtin/checkout-index.c:190
+#: builtin/checkout-index.c:224
msgid "no warning for existing files and files not in index"
msgstr "mevcut dosyalar ve indekste olmayan dosyalar için uyarma"
-#: builtin/checkout-index.c:192
+#: builtin/checkout-index.c:226
msgid "don't checkout new files"
msgstr "yeni dosyaları çıkış yapma"
-#: builtin/checkout-index.c:194
+#: builtin/checkout-index.c:228
msgid "update stat information in the index file"
msgstr "indeks dosyasındaki dosya bilgilerini güncelle"
-#: builtin/checkout-index.c:198
+#: builtin/checkout-index.c:232
msgid "read list of paths from the standard input"
msgstr "yolların listesini standart girdi'den oku"
-#: builtin/checkout-index.c:200
+#: builtin/checkout-index.c:234
msgid "write the content to temporary files"
msgstr "içeriği geçici dosyalara yaz"
-#: builtin/checkout-index.c:204
+#: builtin/checkout-index.c:238
msgid "copy out the files from named stage"
msgstr "dosyaları adı verilen alandan kopyala"
-#: builtin/checkout.c:33
+#: builtin/checkout.c:34
msgid "git checkout [<options>] <branch>"
msgstr "git checkout [<seçenekler>] <dal>"
-#: builtin/checkout.c:34
+#: builtin/checkout.c:35
msgid "git checkout [<options>] [<branch>] -- <file>..."
msgstr "git checkout [<seçenekler>] [<dal>] -- <dosya>..."
-#: builtin/checkout.c:39
+#: builtin/checkout.c:40
msgid "git switch [<options>] [<branch>]"
msgstr "git switch [<seçenekler>] [<dal>]"
-#: builtin/checkout.c:44
+#: builtin/checkout.c:45
msgid "git restore [<options>] [--source=<branch>] <file>..."
msgstr "git restore [<seçenekler>] [--source=<dal>] <dosya>..."
-#: builtin/checkout.c:198 builtin/checkout.c:237
+#: builtin/checkout.c:199 builtin/checkout.c:238
#, c-format
msgid "path '%s' does not have our version"
msgstr "'%s' yolu bizdeki sürüme iye değil"
-#: builtin/checkout.c:200 builtin/checkout.c:239
+#: builtin/checkout.c:201 builtin/checkout.c:240
#, c-format
msgid "path '%s' does not have their version"
msgstr "'%s' yolu onlardaki sürüme iye değil"
-#: builtin/checkout.c:216
+#: builtin/checkout.c:217
#, c-format
msgid "path '%s' does not have all necessary versions"
msgstr "'%s' yolu gereken tüm sürümlere iye değil"
-#: builtin/checkout.c:269
+#: builtin/checkout.c:271
#, c-format
msgid "path '%s' does not have necessary versions"
msgstr "'%s' yolu gereken sürümlere iye değil"
-#: builtin/checkout.c:286
+#: builtin/checkout.c:291
#, c-format
msgid "path '%s': cannot merge"
msgstr "'%s' yolu: BirleÅŸtirilemiyor"
-#: builtin/checkout.c:302
+#: builtin/checkout.c:307
#, c-format
msgid "Unable to add merge result for '%s'"
msgstr "'%s' için birleştirme sonuçları eklenemiyor"
-#: builtin/checkout.c:419
+#: builtin/checkout.c:424
#, c-format
msgid "Recreated %d merge conflict"
msgid_plural "Recreated %d merge conflicts"
msgstr[0] "%d birleştirme çakışması yeniden oluşturuldu"
msgstr[1] "%d birleştirme çakışması yeniden oluşturuldu"
-#: builtin/checkout.c:424
+#: builtin/checkout.c:429
#, c-format
msgid "Updated %d path from %s"
msgid_plural "Updated %d paths from %s"
msgstr[0] "%d yol şuradan güncellendi: %s"
msgstr[1] "%d yol şuradan güncellendi: %s"
-#: builtin/checkout.c:431
+#: builtin/checkout.c:436
#, c-format
msgid "Updated %d path from the index"
msgid_plural "Updated %d paths from the index"
msgstr[0] "%d yol indeksten güncellendi"
msgstr[1] "%d yol indeksten güncellendi"
-#: builtin/checkout.c:454 builtin/checkout.c:457 builtin/checkout.c:460
-#: builtin/checkout.c:464
+#: builtin/checkout.c:459 builtin/checkout.c:462 builtin/checkout.c:465
+#: builtin/checkout.c:469
#, c-format
msgid "'%s' cannot be used with updating paths"
msgstr "'%s' güncellenmekte olan yollarla kullanılamaz"
-#: builtin/checkout.c:474
+#: builtin/checkout.c:479
#, c-format
msgid "Cannot update paths and switch to branch '%s' at the same time."
msgstr "Aynı anda hem yolları güncelleyip hem de '%s' dalına geçilemiyor."
-#: builtin/checkout.c:478
+#: builtin/checkout.c:483
#, c-format
msgid "neither '%s' or '%s' is specified"
msgstr "ne '%s' ne de '%s' belirtilmiÅŸ"
-#: builtin/checkout.c:482
+#: builtin/checkout.c:487
#, c-format
msgid "'%s' must be used when '%s' is not specified"
msgstr "'%s', '%s' ögesinin belirtilmediği durumlarda kullanılmalıdır"
-#: builtin/checkout.c:487 builtin/checkout.c:492
+#: builtin/checkout.c:492 builtin/checkout.c:497
#, c-format
msgid "'%s' or '%s' cannot be used with %s"
msgstr "'%s' veya '%s', %s ile birlikte kullanılamaz"
-#: builtin/checkout.c:566 builtin/checkout.c:573
+#: builtin/checkout.c:571 builtin/checkout.c:578
#, c-format
msgid "path '%s' is unmerged"
msgstr "'%s' yolu birleÅŸtirilmemiÅŸ"
-#: builtin/checkout.c:747
+#: builtin/checkout.c:753
msgid "you need to resolve your current index first"
msgstr "önce geçerli indeksinizi çözmelisiniz"
-#: builtin/checkout.c:797
+#: builtin/checkout.c:809
#, c-format
msgid ""
"cannot continue with staged changes in the following files:\n"
@@ -12493,50 +12870,50 @@ msgstr ""
"aşağıdaki dosyalardaki hazırlanan değişikliklerle sürdürülemiyor:\n"
"%s"
-#: builtin/checkout.c:890
+#: builtin/checkout.c:902
#, 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:934
+#: builtin/checkout.c:947
msgid "HEAD is now at"
msgstr "HEAD konumu:"
-#: builtin/checkout.c:938 builtin/clone.c:609 t/helper/test-fast-rebase.c:203
+#: builtin/checkout.c:951 builtin/clone.c:615 t/helper/test-fast-rebase.c:203
msgid "unable to update HEAD"
msgstr "HEAD güncellenemiyor"
-#: builtin/checkout.c:942
+#: builtin/checkout.c:955
#, c-format
msgid "Reset branch '%s'\n"
msgstr "'%s' dalı sıfırlandı.\n"
-#: builtin/checkout.c:945
+#: builtin/checkout.c:958
#, c-format
msgid "Already on '%s'\n"
msgstr "Halihazırda '%s' üzerinde\n"
-#: builtin/checkout.c:949
+#: builtin/checkout.c:962
#, c-format
msgid "Switched to and reset branch '%s'\n"
msgstr "'%s' dalına geçildi ve sıfırlandı.\n"
-#: builtin/checkout.c:951 builtin/checkout.c:1388
+#: builtin/checkout.c:964 builtin/checkout.c:1398
#, c-format
msgid "Switched to a new branch '%s'\n"
msgstr "Yeni '%s' dalına geçildi.\n"
-#: builtin/checkout.c:953
+#: builtin/checkout.c:966
#, c-format
msgid "Switched to branch '%s'\n"
msgstr "'%s' dalına geçildi.\n"
-#: builtin/checkout.c:1004
+#: builtin/checkout.c:1017
#, c-format
msgid " ... and %d more.\n"
msgstr " ... ve %d daha.\n"
-#: builtin/checkout.c:1010
+#: builtin/checkout.c:1023
#, c-format
msgid ""
"Warning: you are leaving %d commit behind, not connected to\n"
@@ -12559,7 +12936,7 @@ msgstr[1] ""
"\n"
"%s\n"
-#: builtin/checkout.c:1029
+#: builtin/checkout.c:1042
#, c-format
msgid ""
"If you want to keep it by creating a new branch, this may be a good time\n"
@@ -12586,19 +12963,19 @@ msgstr[1] ""
"\tgit branch <yeni-dal-adı> %s\n"
"\n"
-#: builtin/checkout.c:1064
+#: builtin/checkout.c:1077
msgid "internal error in revision walk"
msgstr "revizyonlarda gezinirken iç hata"
-#: builtin/checkout.c:1068
+#: builtin/checkout.c:1081
msgid "Previous HEAD position was"
msgstr "Önceki HEAD konumu şuydu:"
-#: builtin/checkout.c:1114 builtin/checkout.c:1383
+#: builtin/checkout.c:1124 builtin/checkout.c:1393
msgid "You are on a branch yet to be born"
msgstr "Henüz doğmamış bir dal üzerindesiniz"
-#: builtin/checkout.c:1196
+#: builtin/checkout.c:1206
#, c-format
msgid ""
"'%s' could be both a local file and a tracking branch.\n"
@@ -12607,7 +12984,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:1203
+#: builtin/checkout.c:1213
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"
@@ -12627,51 +13004,57 @@ msgstr ""
"isterseniz, örn. 'origin', yapılandırmanızda checkout.defaultRemote=origin\n"
"ayarını yapmayı düşünün."
-#: builtin/checkout.c:1213
+#: builtin/checkout.c:1223
#, 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:1279
+#: builtin/checkout.c:1289
msgid "only one reference expected"
msgstr "yalnızca bir başvuru bekleniyordu"
-#: builtin/checkout.c:1296
+#: builtin/checkout.c:1306
#, c-format
msgid "only one reference expected, %d given."
msgstr "Yalnızca bir başvuru bekleniyordu, %d verildi."
-#: builtin/checkout.c:1342 builtin/worktree.c:269 builtin/worktree.c:436
+#: builtin/checkout.c:1352 builtin/worktree.c:338 builtin/worktree.c:508
#, c-format
msgid "invalid reference: %s"
msgstr "geçersiz başvuru: %s"
-#: builtin/checkout.c:1355 builtin/checkout.c:1725
+#: builtin/checkout.c:1365 builtin/checkout.c:1744
#, c-format
msgid "reference is not a tree: %s"
msgstr "baÅŸvuru bir aÄŸaca deÄŸil: %s"
-#: builtin/checkout.c:1402
+#: builtin/checkout.c:1413
#, c-format
msgid "a branch is expected, got tag '%s'"
msgstr "bir dal bekleniyordu, '%s' etiketi alındı"
-#: builtin/checkout.c:1404
+#: builtin/checkout.c:1415
#, c-format
msgid "a branch is expected, got remote branch '%s'"
msgstr "bir dal bekleniyordu, '%s' uzak dalı alındı"
-#: builtin/checkout.c:1405 builtin/checkout.c:1413
+#: builtin/checkout.c:1417 builtin/checkout.c:1426
#, c-format
msgid "a branch is expected, got '%s'"
msgstr "bir dal bekleniyordu, '%s' alındı"
-#: builtin/checkout.c:1408
+#: builtin/checkout.c:1420
#, c-format
msgid "a branch is expected, got commit '%s'"
msgstr "bir dal bekleniyordu, '%s' işlemesi alındı"
-#: builtin/checkout.c:1424
+#: builtin/checkout.c:1429
+msgid ""
+"If you want to detach HEAD at the commit, try again with the --detach option."
+msgstr ""
+"HEAD'i işlemede ayırmak istiyorsanız --detach seçeneğiyle yeniden deneyin."
+
+#: builtin/checkout.c:1442
msgid ""
"cannot switch branch while merging\n"
"Consider \"git merge --quit\" or \"git worktree add\"."
@@ -12679,7 +13062,7 @@ msgstr ""
"BirleÅŸtirme yaparken dal deÄŸiÅŸtirilemiyor.\n"
"\"git merge --quit\" veya \"git worktree add\" yapmayı düşünün."
-#: builtin/checkout.c:1428
+#: builtin/checkout.c:1446
msgid ""
"cannot switch branch in the middle of an am session\n"
"Consider \"git am --quit\" or \"git worktree add\"."
@@ -12687,7 +13070,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:1432
+#: builtin/checkout.c:1450
msgid ""
"cannot switch branch while rebasing\n"
"Consider \"git rebase --quit\" or \"git worktree add\"."
@@ -12695,7 +13078,7 @@ msgstr ""
"Yeniden temellendirme yaparken dal deÄŸiÅŸtirilemiyor.\n"
"\"git rebase --quit\" veya \"git worktree add\" yapmayı düşünün."
-#: builtin/checkout.c:1436
+#: builtin/checkout.c:1454
msgid ""
"cannot switch branch while cherry-picking\n"
"Consider \"git cherry-pick --quit\" or \"git worktree add\"."
@@ -12703,7 +13086,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:1440
+#: builtin/checkout.c:1458
msgid ""
"cannot switch branch while reverting\n"
"Consider \"git revert --quit\" or \"git worktree add\"."
@@ -12711,126 +13094,122 @@ msgstr ""
"Geriye al yaparken dal deÄŸiÅŸtirilemiyor.\n"
"\"git revert --quit\" veya \"git worktree add\" yapmayı düşünün."
-#: builtin/checkout.c:1444
+#: builtin/checkout.c:1462
msgid "you are switching branch while bisecting"
msgstr "ikili arama yaparken dal deÄŸiÅŸtiriyorsunuz"
-#: builtin/checkout.c:1451
+#: builtin/checkout.c:1469
msgid "paths cannot be used with switching branches"
msgstr "dal değiştirilirken yollar kullanılamaz"
-#: builtin/checkout.c:1454 builtin/checkout.c:1458 builtin/checkout.c:1462
+#: builtin/checkout.c:1472 builtin/checkout.c:1476 builtin/checkout.c:1480
#, c-format
msgid "'%s' cannot be used with switching branches"
msgstr "dal değiştirilirken '%s' kullanılamaz"
-#: builtin/checkout.c:1466 builtin/checkout.c:1469 builtin/checkout.c:1472
-#: builtin/checkout.c:1477 builtin/checkout.c:1482
+#: builtin/checkout.c:1484 builtin/checkout.c:1487 builtin/checkout.c:1490
+#: builtin/checkout.c:1495 builtin/checkout.c:1500
#, c-format
msgid "'%s' cannot be used with '%s'"
msgstr "'%s', '%s' ile birlikte kullanılamaz"
-#: builtin/checkout.c:1479
+#: builtin/checkout.c:1497
#, c-format
msgid "'%s' cannot take <start-point>"
msgstr "'%s', <başlama-noktası> alamaz"
-#: builtin/checkout.c:1487
+#: builtin/checkout.c:1505
#, c-format
msgid "Cannot switch branch to a non-commit '%s'"
msgstr "Dal, işleme olmayan '%s' ögesine değiştirilemez"
-#: builtin/checkout.c:1494
+#: builtin/checkout.c:1512
msgid "missing branch or commit argument"
msgstr "dal veya işleme argümanı eksik"
-#: builtin/checkout.c:1537
+#: builtin/checkout.c:1555
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:1538 builtin/log.c:1825 parse-options.h:323
+#: builtin/checkout.c:1556 builtin/log.c:1844 parse-options.h:354
msgid "style"
msgstr "stil"
-#: builtin/checkout.c:1539
+#: builtin/checkout.c:1557
msgid "conflict style (merge, diff3, or zdiff3)"
msgstr "çakışma stili (birleştirme, diff3 veya zdiff3)"
-#: builtin/checkout.c:1551 builtin/worktree.c:488
+#: builtin/checkout.c:1569 builtin/worktree.c:560
msgid "detach HEAD at named commit"
msgstr "adı verilen işlemede HEAD'i ayır"
-#: builtin/checkout.c:1553
-msgid "set up tracking mode (see git-pull(1))"
-msgstr "izleme kipini ayarla (bilgi için: git-pull(1))"
-
-#: builtin/checkout.c:1556
+#: builtin/checkout.c:1574
msgid "force checkout (throw away local modifications)"
msgstr "zorla çıkış yap (yerel değişiklikleri çöpe at)"
-#: builtin/checkout.c:1558
+#: builtin/checkout.c:1576
msgid "new-branch"
msgstr "yeni dal"
-#: builtin/checkout.c:1558
+#: builtin/checkout.c:1576
msgid "new unparented branch"
msgstr "yeni üst ögesi olmayan dal"
-#: builtin/checkout.c:1560 builtin/merge.c:305
+#: builtin/checkout.c:1578 builtin/merge.c:305
msgid "update ignored files (default)"
msgstr "yok sayılan dosyaları güncelle (öntanımlı)"
-#: builtin/checkout.c:1563
+#: builtin/checkout.c:1581
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:1576
+#: builtin/checkout.c:1594
msgid "checkout our version for unmerged files"
msgstr "birleştirilmeyen dosyalar için bizdeki sürümü çıkış yap"
-#: builtin/checkout.c:1579
+#: builtin/checkout.c:1597
msgid "checkout their version for unmerged files"
msgstr "birleştirilmeyen dosyalar için onlardaki sürümünü çıkış yap"
-#: builtin/checkout.c:1583
+#: builtin/checkout.c:1601
msgid "do not limit pathspecs to sparse entries only"
msgstr "yol belirteçlerini yalnızca aralıklı girdilere kısıtlama"
-#: builtin/checkout.c:1640
+#: builtin/checkout.c:1659
#, c-format
msgid "options '-%c', '-%c', and '%s' cannot be used together"
msgstr "'-%c', '-%c' ve '%s' seçenekleri birlikte kullanılamaz"
-#: builtin/checkout.c:1681
+#: builtin/checkout.c:1700
msgid "--track needs a branch name"
msgstr "--track için bir dal adı gerekli"
-#: builtin/checkout.c:1686
+#: builtin/checkout.c:1705
#, c-format
msgid "missing branch name; try -%c"
msgstr "eksik dal adı; -%c deneyin"
-#: builtin/checkout.c:1718
+#: builtin/checkout.c:1737
#, c-format
msgid "could not resolve %s"
msgstr "%s çözülemedi"
-#: builtin/checkout.c:1734
+#: builtin/checkout.c:1753
msgid "invalid path specification"
msgstr "geçersiz yol belirtimi"
-#: builtin/checkout.c:1741
+#: builtin/checkout.c:1760
#, c-format
msgid "'%s' is not a commit and a branch '%s' cannot be created from it"
msgstr "'%s' bir işleme değil ve ondan bir '%s' dalı oluşturulamaz"
-#: builtin/checkout.c:1745
+#: builtin/checkout.c:1764
#, c-format
msgid "git checkout: --detach does not take a path argument '%s'"
msgstr "git checkout: --detach bir '%s' yol argümanı almıyor"
-#: builtin/checkout.c:1770
+#: builtin/checkout.c:1789
msgid ""
"git checkout: --ours/--theirs, --force and --merge are incompatible when\n"
"checking out of the index."
@@ -12838,71 +13217,71 @@ msgstr ""
"git checkout: --ours/--theirs, --force ve --merge indeks çıkışı yapılırken\n"
"birlikte kullanılamaz."
-#: builtin/checkout.c:1775
+#: builtin/checkout.c:1794
msgid "you must specify path(s) to restore"
msgstr "eski durumuna getirilecek yolları belirtmelisiniz"
-#: builtin/checkout.c:1800 builtin/checkout.c:1802 builtin/checkout.c:1854
-#: builtin/checkout.c:1856 builtin/clone.c:126 builtin/remote.c:170
-#: builtin/remote.c:172 builtin/submodule--helper.c:2959
-#: builtin/submodule--helper.c:3253 builtin/worktree.c:484
-#: builtin/worktree.c:486
+#: builtin/checkout.c:1819 builtin/checkout.c:1821 builtin/checkout.c:1873
+#: builtin/checkout.c:1875 builtin/clone.c:130 builtin/remote.c:171
+#: builtin/remote.c:173 builtin/submodule--helper.c:3038
+#: builtin/submodule--helper.c:3371 builtin/worktree.c:556
+#: builtin/worktree.c:558
msgid "branch"
msgstr "dal"
-#: builtin/checkout.c:1801
+#: builtin/checkout.c:1820
msgid "create and checkout a new branch"
msgstr "yeni bir dal oluştur ve çıkış yap"
-#: builtin/checkout.c:1803
+#: builtin/checkout.c:1822
msgid "create/reset and checkout a branch"
msgstr "bir dal oluştur/sıfırla ve çıkış yap"
-#: builtin/checkout.c:1804
+#: builtin/checkout.c:1823
msgid "create reflog for new branch"
msgstr "yeni dal için başvuru günlüğü oluştur"
-#: builtin/checkout.c:1806
+#: builtin/checkout.c:1825
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:1807
+#: builtin/checkout.c:1826
msgid "use overlay mode (default)"
msgstr "yerpaylaşım kipini kullan (öntanımlı)"
-#: builtin/checkout.c:1855
+#: builtin/checkout.c:1874
msgid "create and switch to a new branch"
msgstr "yeni bir dal oluştur ve ona geç"
-#: builtin/checkout.c:1857
+#: builtin/checkout.c:1876
msgid "create/reset and switch to a branch"
msgstr "bir dal oluştur/sıfırla ve ona geç"
-#: builtin/checkout.c:1859
+#: builtin/checkout.c:1878
msgid "second guess 'git switch <no-such-branch>'"
msgstr "'git switch <böyle-bir-dal-yok>'a temkinli yaklaş"
-#: builtin/checkout.c:1861
+#: builtin/checkout.c:1880
msgid "throw away local modifications"
msgstr "yerel değişiklikleri çöpe at"
-#: builtin/checkout.c:1897
+#: builtin/checkout.c:1916
msgid "which tree-ish to checkout from"
msgstr "çıkış yapılacak ağacımsı"
-#: builtin/checkout.c:1899
+#: builtin/checkout.c:1918
msgid "restore the index"
msgstr "indeksi eski durumuna getir"
-#: builtin/checkout.c:1901
+#: builtin/checkout.c:1920
msgid "restore the working tree (default)"
msgstr "çalışma ağacını eski durumuna getir"
-#: builtin/checkout.c:1903
+#: builtin/checkout.c:1922
msgid "ignore unmerged entries"
msgstr "birleÅŸtirilmemiÅŸ girdileri yok say"
-#: builtin/checkout.c:1904
+#: builtin/checkout.c:1923
msgid "use overlay mode"
msgstr "yerpaylaşım kipini kullan"
@@ -13050,8 +13429,8 @@ msgid "remove whole directories"
msgstr "dizinleri tümüyle kaldır"
#: builtin/clean.c:932 builtin/describe.c:565 builtin/describe.c:567
-#: builtin/grep.c:937 builtin/log.c:184 builtin/log.c:186
-#: builtin/ls-files.c:651 builtin/name-rev.c:535 builtin/name-rev.c:537
+#: builtin/grep.c:938 builtin/log.c:185 builtin/log.c:187
+#: builtin/ls-files.c:651 builtin/name-rev.c:585 builtin/name-rev.c:587
#: builtin/show-ref.c:179
msgid "pattern"
msgstr "dizgi"
@@ -13088,210 +13467,214 @@ msgstr ""
msgid "-x and -X cannot be used together"
msgstr "-x ve -X birlikte kullanılamaz"
-#: builtin/clone.c:45
+#: builtin/clone.c:47
msgid "git clone [<options>] [--] <repo> [<dir>]"
msgstr "git clone [<seçenekler>] [--] <depo> [<dizin>]"
-#: builtin/clone.c:96
+#: builtin/clone.c:100
msgid "don't clone shallow repository"
msgstr "sığ depoyu klonlama"
-#: builtin/clone.c:98
+#: builtin/clone.c:102
msgid "don't create a checkout"
msgstr "çıkış yapma!"
-#: builtin/clone.c:99 builtin/clone.c:101 builtin/init-db.c:542
+#: builtin/clone.c:103 builtin/clone.c:105 builtin/init-db.c:542
msgid "create a bare repository"
msgstr "çıplak bir depo oluştur"
-#: builtin/clone.c:103
+#: builtin/clone.c:107
msgid "create a mirror repository (implies bare)"
msgstr "bir yansı depo oluştur (çıplak ima eder)"
-#: builtin/clone.c:105
+#: builtin/clone.c:109
msgid "to clone from a local repository"
msgstr "bir yerel depodan klonla"
-#: builtin/clone.c:107
+#: builtin/clone.c:111
msgid "don't use local hardlinks, always copy"
msgstr "yerel sabit bağları kullanma, her zaman kopyala"
-#: builtin/clone.c:109
+#: builtin/clone.c:113
msgid "setup as shared repository"
msgstr "paylaşılan depo ayarla"
-#: builtin/clone.c:111
+#: builtin/clone.c:115
msgid "pathspec"
msgstr "yol belirteci"
-#: builtin/clone.c:111
+#: builtin/clone.c:115
msgid "initialize submodules in the clone"
msgstr "klon içerisindeki altmodülleri ilklendir"
-#: builtin/clone.c:115
+#: builtin/clone.c:119
msgid "number of submodules cloned in parallel"
msgstr "paralelde klonlanan altmodüllerin sayısı"
-#: builtin/clone.c:116 builtin/init-db.c:539
+#: builtin/clone.c:120 builtin/init-db.c:539
msgid "template-directory"
msgstr "ÅŸablon dizini"
-#: builtin/clone.c:117 builtin/init-db.c:540
+#: builtin/clone.c:121 builtin/init-db.c:540
msgid "directory from which templates will be used"
msgstr "şablonların kullanılacağı dizin"
-#: builtin/clone.c:119 builtin/clone.c:121 builtin/submodule--helper.c:1871
-#: builtin/submodule--helper.c:2514 builtin/submodule--helper.c:3260
+#: builtin/clone.c:123 builtin/clone.c:125 builtin/submodule--helper.c:1885
+#: builtin/submodule--helper.c:2719 builtin/submodule--helper.c:3378
msgid "reference repository"
msgstr "baÅŸvuru deposu"
-#: builtin/clone.c:123 builtin/submodule--helper.c:1873
-#: builtin/submodule--helper.c:2516
+#: builtin/clone.c:127 builtin/submodule--helper.c:1887
+#: builtin/submodule--helper.c:2721
msgid "use --reference only while cloning"
msgstr "--reference'ı yalnızca klonlarken kullan"
-#: builtin/clone.c:124 builtin/column.c:27 builtin/fmt-merge-msg.c:27
+#: builtin/clone.c:128 builtin/column.c:27 builtin/fmt-merge-msg.c:27
#: builtin/init-db.c:550 builtin/merge-file.c:48 builtin/merge.c:290
-#: builtin/pack-objects.c:3944 builtin/repack.c:665
-#: builtin/submodule--helper.c:3262 t/helper/test-simple-ipc.c:595
+#: builtin/pack-objects.c:3967 builtin/repack.c:669
+#: builtin/submodule--helper.c:3380 t/helper/test-simple-ipc.c:595
#: t/helper/test-simple-ipc.c:597
msgid "name"
msgstr "ad"
-#: builtin/clone.c:125
+#: builtin/clone.c:129
msgid "use <name> instead of 'origin' to track upstream"
msgstr "üstkaynağı izlemek için 'origin' yerine <ad> kullan"
-#: builtin/clone.c:127
+#: builtin/clone.c:131
msgid "checkout <branch> instead of the remote's HEAD"
msgstr "uzak konumun HEAD'i yerine <dal>'ı çıkış yap"
-#: builtin/clone.c:129
+#: builtin/clone.c:133
msgid "path to git-upload-pack on the remote"
msgstr "uzak konumdaki git-upload-pack'e olan yol"
-#: builtin/clone.c:130 builtin/fetch.c:181 builtin/grep.c:876
+#: builtin/clone.c:134 builtin/fetch.c:182 builtin/grep.c:877
#: builtin/pull.c:212
msgid "depth"
msgstr "derinlik"
-#: builtin/clone.c:131
+#: builtin/clone.c:135
msgid "create a shallow clone of that depth"
msgstr "verilen derinlikte sığ bir depo oluştur"
-#: builtin/clone.c:132 builtin/fetch.c:183 builtin/pack-objects.c:3933
+#: builtin/clone.c:136 builtin/fetch.c:184 builtin/pack-objects.c:3956
#: builtin/pull.c:215
msgid "time"
msgstr "zaman"
-#: builtin/clone.c:133
+#: builtin/clone.c:137
msgid "create a shallow clone since a specific time"
msgstr "verilen zamandan sonrasını içeren bir sığ depo oluştur"
-#: builtin/clone.c:134 builtin/fetch.c:185 builtin/fetch.c:208
-#: builtin/pull.c:218 builtin/pull.c:243 builtin/rebase.c:1022
+#: builtin/clone.c:138 builtin/fetch.c:186 builtin/fetch.c:212
+#: builtin/pull.c:218 builtin/pull.c:243 builtin/rebase.c:1050
msgid "revision"
msgstr "revizyon"
-#: builtin/clone.c:135 builtin/fetch.c:186 builtin/pull.c:219
+#: builtin/clone.c:139 builtin/fetch.c:187 builtin/pull.c:219
msgid "deepen history of shallow clone, excluding rev"
msgstr "revizyonu hariç tutarak sığ klonun geçmişini derinleştir"
-#: builtin/clone.c:137 builtin/submodule--helper.c:1883
-#: builtin/submodule--helper.c:2530
+#: builtin/clone.c:141 builtin/submodule--helper.c:1897
+#: builtin/submodule--helper.c:2735
msgid "clone only one branch, HEAD or --branch"
msgstr "yalnızca bir dal klonla, HEAD veya --branch"
-#: builtin/clone.c:139
+#: builtin/clone.c:143
msgid "don't clone any tags, and make later fetches not to follow them"
msgstr "etiket klonlama ve sonraki getirmeler de onları izlemesin"
-#: builtin/clone.c:141
+#: builtin/clone.c:145
msgid "any cloned submodules will be shallow"
msgstr "klonlanan altmodüller sığ olacak"
-#: builtin/clone.c:142 builtin/init-db.c:548
+#: builtin/clone.c:146 builtin/init-db.c:548
msgid "gitdir"
msgstr "git dizini"
-#: builtin/clone.c:143 builtin/init-db.c:549
+#: builtin/clone.c:147 builtin/init-db.c:549
msgid "separate git dir from working tree"
msgstr "git dizinini çalışma ağacından ayır"
-#: builtin/clone.c:144
+#: builtin/clone.c:148
msgid "key=value"
msgstr "anahtar=deÄŸer"
-#: builtin/clone.c:145
+#: builtin/clone.c:149
msgid "set config inside the new repository"
msgstr "yapılandırmayı yeni deponun içinde ayarla"
-#: builtin/clone.c:147 builtin/fetch.c:203 builtin/ls-remote.c:77
+#: builtin/clone.c:151 builtin/fetch.c:207 builtin/ls-remote.c:77
#: builtin/pull.c:234 builtin/push.c:575 builtin/send-pack.c:200
msgid "server-specific"
msgstr "sunucuya özel"
-#: builtin/clone.c:147 builtin/fetch.c:203 builtin/ls-remote.c:77
+#: builtin/clone.c:151 builtin/fetch.c:207 builtin/ls-remote.c:77
#: builtin/pull.c:235 builtin/push.c:575 builtin/send-pack.c:201
msgid "option to transmit"
msgstr "iletme seçeneği"
-#: builtin/clone.c:148 builtin/fetch.c:204 builtin/pull.c:238
+#: builtin/clone.c:152 builtin/fetch.c:208 builtin/pull.c:238
#: builtin/push.c:576
msgid "use IPv4 addresses only"
msgstr "yalnızca IPv4 adresleri kullan"
-#: builtin/clone.c:150 builtin/fetch.c:206 builtin/pull.c:241
+#: builtin/clone.c:154 builtin/fetch.c:210 builtin/pull.c:241
#: builtin/push.c:578
msgid "use IPv6 addresses only"
msgstr "yalnızca IPv6 adresleri kullan"
-#: builtin/clone.c:154
+#: builtin/clone.c:158
+msgid "apply partial clone filters to submodules"
+msgstr "altmodüllere kısımsal klon süzgeçlerini uygula"
+
+#: builtin/clone.c:160
msgid "any cloned submodules will use their remote-tracking branch"
msgstr "klonlanan herhangi bir altmodül kendi uzak izleme dallarını kullanacak"
-#: builtin/clone.c:156
+#: builtin/clone.c:162
msgid "initialize sparse-checkout file to include only files at root"
msgstr ""
"sparse-checkout dosyasını yalnızca kökteki dosyaları içerecek biçimde "
"ilklendir"
-#: builtin/clone.c:231
+#: builtin/clone.c:237
#, c-format
msgid "info: Could not add alternate for '%s': %s\n"
msgstr "info: '%s' için alternatif eklenemedi: %s\n"
-#: builtin/clone.c:304
+#: builtin/clone.c:310
#, c-format
msgid "%s exists and is not a directory"
msgstr "%s var ve bir dizin deÄŸil"
-#: builtin/clone.c:322
+#: builtin/clone.c:328
#, c-format
msgid "failed to start iterator over '%s'"
msgstr "yineleyici '%s' üzerinden çalıştırılamadı"
-#: builtin/clone.c:353
+#: builtin/clone.c:359
#, c-format
msgid "failed to create link '%s'"
msgstr "'%s' bağı oluşturulamadı"
-#: builtin/clone.c:357
+#: builtin/clone.c:363
#, c-format
msgid "failed to copy file to '%s'"
msgstr "dosya şuraya kopyalanamadı: '%s'"
-#: builtin/clone.c:362
+#: builtin/clone.c:368
#, c-format
msgid "failed to iterate over '%s'"
msgstr "'%s' üzerinde yinelenemedi"
-#: builtin/clone.c:389
+#: builtin/clone.c:395
#, c-format
msgid "done.\n"
msgstr "bitti.\n"
-#: builtin/clone.c:403
+#: builtin/clone.c:409
msgid ""
"Clone succeeded, but checkout failed.\n"
"You can inspect what was checked out with 'git status'\n"
@@ -13301,147 +13684,151 @@ msgstr ""
"Neyin çıkış yapılıp yapılmadığını 'git status' ile inceleyebilir\n"
"ve 'git restore --source=HEAD' ile yeniden deneyebilirsiniz.\n"
-#: builtin/clone.c:480
+#: builtin/clone.c:486
#, c-format
msgid "Could not find remote branch %s to clone."
msgstr "Klonlanacak %s uzak dal bulunamadı."
-#: builtin/clone.c:597
+#: builtin/clone.c:603
#, c-format
msgid "unable to update %s"
msgstr "%s güncellenemiyor"
-#: builtin/clone.c:645
+#: builtin/clone.c:651
msgid "failed to initialize sparse-checkout"
msgstr "sparse-checkout ilklendirilemedi"
-#: builtin/clone.c:668
+#: builtin/clone.c:674
msgid "remote HEAD refers to nonexistent ref, unable to checkout.\n"
msgstr ""
"uzak konum HEAD'i var olmayan başvuruya bağlanıyor, çıkış yapılamıyor.\n"
-#: builtin/clone.c:701
+#: builtin/clone.c:709
msgid "unable to checkout working tree"
msgstr "çalışma ağacı çıkış yapılamıyor"
-#: builtin/clone.c:779
+#: builtin/clone.c:793
msgid "unable to write parameters to config file"
msgstr "parametreler yapılandırma dosyasına yazılamıyor"
-#: builtin/clone.c:842
+#: builtin/clone.c:856
msgid "cannot repack to clean up"
msgstr "temizlik için yeniden paketlenemiyor"
-#: builtin/clone.c:844
+#: builtin/clone.c:858
msgid "cannot unlink temporary alternates file"
msgstr "geçici alternatifler dosyasının bağlantısı kesilemiyor"
-#: builtin/clone.c:886
+#: builtin/clone.c:901
msgid "Too many arguments."
msgstr "Çok fazla argüman."
-#: builtin/clone.c:890 contrib/scalar/scalar.c:414
+#: builtin/clone.c:905 contrib/scalar/scalar.c:413
msgid "You must specify a repository to clone."
msgstr "Klonlamak için bir depo belirtmelisiniz."
-#: builtin/clone.c:903
+#: builtin/clone.c:918
#, c-format
msgid "options '%s' and '%s %s' cannot be used together"
msgstr "'%s' ve '%s %s' seçenekleri birlikte kullanılamaz"
-#: builtin/clone.c:920
+#: builtin/clone.c:935
#, c-format
msgid "repository '%s' does not exist"
msgstr "'%s' deposu mevcut deÄŸil"
-#: builtin/clone.c:924 builtin/fetch.c:2052
+#: builtin/clone.c:939 builtin/fetch.c:2176
#, c-format
msgid "depth %s is not a positive number"
msgstr "%s derinliği pozitif bir sayı değil"
-#: builtin/clone.c:934
+#: builtin/clone.c:949
#, 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:940
+#: builtin/clone.c:955
#, c-format
msgid "repository path '%s' already exists and is not an empty directory."
msgstr "Depo yolu '%s' halihazırda mevcut ve boş bir dizin değil."
-#: builtin/clone.c:954
+#: builtin/clone.c:969
#, c-format
msgid "working tree '%s' already exists."
msgstr "Çalışma ağacı '%s' halihazırda mevcut."
-#: builtin/clone.c:969 builtin/clone.c:990 builtin/difftool.c:256
-#: builtin/log.c:2012 builtin/worktree.c:281 builtin/worktree.c:313
+#: builtin/clone.c:984 builtin/clone.c:1005 builtin/difftool.c:256
+#: builtin/log.c:2037 builtin/worktree.c:350 builtin/worktree.c:382
#, c-format
msgid "could not create leading directories of '%s'"
msgstr "şunun öncü dizinleri oluşturulamadı: '%s'"
-#: builtin/clone.c:974
+#: builtin/clone.c:989
#, c-format
msgid "could not create work tree dir '%s'"
msgstr "'%s' çalışma ağacı dizini oluşturulamadı"
-#: builtin/clone.c:994
+#: builtin/clone.c:1009
#, c-format
msgid "Cloning into bare repository '%s'...\n"
msgstr "'%s' çıplak deposuna klonlanıyor...\n"
-#: builtin/clone.c:996
+#: builtin/clone.c:1011
#, c-format
msgid "Cloning into '%s'...\n"
msgstr "Klonlama konumu: '%s'...\n"
-#: builtin/clone.c:1025
+#: builtin/clone.c:1040
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:1080 builtin/remote.c:200 builtin/remote.c:710
+#: builtin/clone.c:1116 builtin/remote.c:201 builtin/remote.c:721
#, c-format
msgid "'%s' is not a valid remote name"
msgstr "'%s' geçerli bir uzak konum adı değil"
-#: builtin/clone.c:1121
+#: builtin/clone.c:1157
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:1123
+#: builtin/clone.c:1159
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:1125
+#: builtin/clone.c:1161
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:1127
+#: builtin/clone.c:1163
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:1132
+#: builtin/clone.c:1168
msgid "source repository is shallow, ignoring --local"
msgstr "kaynak depo sığ, --local yok sayılıyor"
-#: builtin/clone.c:1137
+#: builtin/clone.c:1173
msgid "--local is ignored"
msgstr "--local yok sayıldı"
-#: builtin/clone.c:1216 builtin/clone.c:1276
+#: builtin/clone.c:1185
+msgid "cannot clone from filtered bundle"
+msgstr "süzülmüş demetten klonlanamıyor"
+
+#: builtin/clone.c:1265 builtin/clone.c:1324
msgid "remote transport reported error"
msgstr "uzak konum taşıması hata bildirdi"
-#: builtin/clone.c:1228 builtin/clone.c:1239
+#: builtin/clone.c:1277 builtin/clone.c:1289
#, c-format
msgid "Remote branch %s not found in upstream %s"
msgstr "%s uzak dalı %s üstkaynağında bulunamadı"
-#: builtin/clone.c:1242
+#: builtin/clone.c:1292
msgid "You appear to have cloned an empty repository."
msgstr "Boş bir depoyu klonlamış görünüyorsunuz."
@@ -13493,7 +13880,7 @@ msgstr ""
"split[=<strateji>]] [--reachable|--stdin-packs|--stdin-commits] [--changed-"
"paths] [--[no-]max-new-filters <n>] [--[no-]progress] <bölme-seçenekleri>"
-#: builtin/commit-graph.c:51 builtin/fetch.c:192 builtin/log.c:1794
+#: builtin/commit-graph.c:51 builtin/fetch.c:196 builtin/log.c:1813
msgid "dir"
msgstr "dizin"
@@ -13595,7 +13982,7 @@ msgstr ""
msgid "duplicate parent %s ignored"
msgstr "yinelenmiş üst öge %s yok sayıldı"
-#: builtin/commit-tree.c:56 builtin/commit-tree.c:134 builtin/log.c:577
+#: builtin/commit-tree.c:56 builtin/commit-tree.c:134 builtin/log.c:590
#, c-format
msgid "not a valid object name %s"
msgstr "%s geçerli bir nesne adı değil"
@@ -13618,13 +14005,13 @@ msgstr "üst öge"
msgid "id of a parent commit object"
msgstr "bir üst işleme ögesinin no'su"
-#: builtin/commit-tree.c:112 builtin/commit.c:1627 builtin/merge.c:284
-#: builtin/notes.c:407 builtin/notes.c:573 builtin/stash.c:1677
-#: builtin/tag.c:454
+#: builtin/commit-tree.c:112 builtin/commit.c:1626 builtin/merge.c:284
+#: builtin/notes.c:407 builtin/notes.c:573 builtin/stash.c:1666
+#: builtin/tag.c:455
msgid "message"
msgstr "ileti"
-#: builtin/commit-tree.c:113 builtin/commit.c:1627
+#: builtin/commit-tree.c:113 builtin/commit.c:1626
msgid "commit message"
msgstr "iÅŸleme iletisi"
@@ -13632,7 +14019,7 @@ msgstr "iÅŸleme iletisi"
msgid "read commit log message from file"
msgstr "işleme günlük iletisini dosyadan oku"
-#: builtin/commit-tree.c:119 builtin/commit.c:1644 builtin/merge.c:303
+#: builtin/commit-tree.c:119 builtin/commit.c:1643 builtin/merge.c:303
#: builtin/pull.c:180 builtin/revert.c:118
msgid "GPG sign commit"
msgstr "iÅŸlemeyi GPG ile imzala"
@@ -13645,15 +14032,15 @@ msgstr "bir tam ağaç vermeli"
msgid "git commit-tree: failed to read"
msgstr "git commit-tree: okunamadı"
-#: builtin/commit.c:42
+#: builtin/commit.c:43
msgid "git commit [<options>] [--] <pathspec>..."
msgstr "git commit [<seçenekler>] [--] <yol-blrtç>..."
-#: builtin/commit.c:47
+#: builtin/commit.c:48
msgid "git status [<options>] [--] <pathspec>..."
msgstr "git status [<seçenekler>] [--] <yol-blrtç>..."
-#: builtin/commit.c:52
+#: builtin/commit.c:53
msgid ""
"You asked to amend the most recent commit, but doing so would make\n"
"it empty. You can repeat your command with --allow-empty, or you can\n"
@@ -13663,7 +14050,7 @@ msgstr ""
"boş yapacaktır. Komutunuzu --allow-empty ile yineleyebilir veya\n"
"işlemeyi \"git reset HEAD^\" ile tümüyle kaldırabilirsiniz.\n"
-#: builtin/commit.c:57
+#: builtin/commit.c:58
msgid ""
"The previous cherry-pick is now empty, possibly due to conflict resolution.\n"
"If you wish to commit it anyway, use:\n"
@@ -13677,15 +14064,15 @@ msgstr ""
"\tgit commit --allow-empty\n"
"\n"
-#: builtin/commit.c:64
+#: builtin/commit.c:65
msgid "Otherwise, please use 'git rebase --skip'\n"
msgstr "Aksi durumda, lütfen 'git rebase --skip' kullanın.\n"
-#: builtin/commit.c:67
+#: builtin/commit.c:68
msgid "Otherwise, please use 'git cherry-pick --skip'\n"
msgstr "Aksi durumda, lütfen 'git cherry-pick --skip' kullanın.\n"
-#: builtin/commit.c:70
+#: builtin/commit.c:71
msgid ""
"and then use:\n"
"\n"
@@ -13707,69 +14094,69 @@ msgstr ""
"\tgit cherry-pick --skip\n"
"\n"
-#: builtin/commit.c:325
+#: builtin/commit.c:326
msgid "failed to unpack HEAD tree object"
msgstr "HEAD ağaç nesnesi açılamadı"
-#: builtin/commit.c:375
+#: builtin/commit.c:376
msgid "No paths with --include/--only does not make sense."
msgstr "--include/--only içermeyen yollar bir anlam ifade etmiyor."
-#: builtin/commit.c:387
+#: builtin/commit.c:388
msgid "unable to create temporary index"
msgstr "geçici indeks oluşturulamıyor"
-#: builtin/commit.c:396
+#: builtin/commit.c:397
msgid "interactive add failed"
msgstr "etkileşimli ekleme başarısız"
-#: builtin/commit.c:411
+#: builtin/commit.c:412
msgid "unable to update temporary index"
msgstr "geçici indeks güncellenemiyor"
-#: builtin/commit.c:413
+#: builtin/commit.c:414
msgid "Failed to update main cache tree"
msgstr "Ana önbellek ağacı güncellenemedi"
-#: builtin/commit.c:438 builtin/commit.c:461 builtin/commit.c:509
+#: builtin/commit.c:439 builtin/commit.c:462 builtin/commit.c:510
msgid "unable to write new_index file"
msgstr "new_index dosyası yazılamıyor"
-#: builtin/commit.c:490
+#: builtin/commit.c:491
msgid "cannot do a partial commit during a merge."
msgstr "Bir birleştirme sırasında kısmi işleme yapılamaz."
-#: builtin/commit.c:492
+#: builtin/commit.c:493
msgid "cannot do a partial commit during a cherry-pick."
msgstr "Bir seç-al sırasında kısmi işleme yapılamaz."
-#: builtin/commit.c:494
+#: builtin/commit.c:495
msgid "cannot do a partial commit during a rebase."
msgstr "Bir yeniden temellendirme sırasında kısmi işleme yapılamaz."
-#: builtin/commit.c:502
+#: builtin/commit.c:503
msgid "cannot read the index"
msgstr "indeks okunamıyor"
-#: builtin/commit.c:521
+#: builtin/commit.c:522
msgid "unable to write temporary index file"
msgstr "geçici indeks dosyası yazılamıyor"
-#: builtin/commit.c:619
+#: builtin/commit.c:620
#, c-format
msgid "commit '%s' lacks author header"
msgstr "'%s' işlemesinde yazar üstbilgisi yok"
-#: builtin/commit.c:621
+#: builtin/commit.c:622
#, c-format
msgid "commit '%s' has malformed author line"
msgstr "'%s' işlemesindeki yazar satırı hatalı oluşturulmuş"
-#: builtin/commit.c:640
+#: builtin/commit.c:641
msgid "malformed --author parameter"
msgstr "hatalı oluşturulmuş --author parametresi"
-#: builtin/commit.c:693
+#: builtin/commit.c:694
msgid ""
"unable to select a comment character that is not used\n"
"in the current commit message"
@@ -13777,43 +14164,43 @@ msgstr ""
"mevcut işleme iletisinde kullanılmayan bir yorum\n"
"karakteri seçilemiyor"
-#: builtin/commit.c:747 builtin/commit.c:781 builtin/commit.c:1166
+#: builtin/commit.c:750 builtin/commit.c:784 builtin/commit.c:1170
#, c-format
msgid "could not lookup commit %s"
msgstr "%s işlemesi aranamadı"
-#: builtin/commit.c:759 builtin/shortlog.c:416
+#: builtin/commit.c:762 builtin/shortlog.c:417
#, c-format
msgid "(reading log message from standard input)\n"
msgstr "(günlük iletisi standart girdi'den okunuyor)\n"
-#: builtin/commit.c:761
+#: builtin/commit.c:764
msgid "could not read log from standard input"
msgstr "günlük standart girdi'den okunamadı"
-#: builtin/commit.c:765
+#: builtin/commit.c:768
#, c-format
msgid "could not read log file '%s'"
msgstr "günlük dosyası '%s' okunamadı"
-#: builtin/commit.c:802
+#: builtin/commit.c:805
#, c-format
msgid "options '%s' and '%s:%s' cannot be used together"
msgstr "'%s' ve '%s:%s' seçenekleri birlikte kullanılamaz"
-#: builtin/commit.c:814 builtin/commit.c:830
+#: builtin/commit.c:817 builtin/commit.c:833
msgid "could not read SQUASH_MSG"
msgstr "SQUASH_MSG okunamadı"
-#: builtin/commit.c:821
+#: builtin/commit.c:824
msgid "could not read MERGE_MSG"
msgstr "MERGE_MSG okunamadı"
-#: builtin/commit.c:881
+#: builtin/commit.c:884
msgid "could not write commit template"
msgstr "işleme şablonu yazılamadı"
-#: builtin/commit.c:894
+#: builtin/commit.c:897
#, c-format
msgid ""
"Please enter the commit message for your changes. Lines starting\n"
@@ -13822,7 +14209,7 @@ msgstr ""
"Lütfen değişiklikleriniz için bir işleme iletisi girin. '%c' ile başlayan\n"
"satırlar yok sayılacaktır.\n"
-#: builtin/commit.c:896
+#: builtin/commit.c:899
#, c-format
msgid ""
"Please enter the commit message for your changes. Lines starting\n"
@@ -13831,7 +14218,7 @@ msgstr ""
"Lütfen değişiklikleriniz için bir işleme iletisi girin. '%c' ile başlayan\n"
"satırlar yok sayılacaktır. Boş bir ileti işlemeyi iptal eder.\n"
-#: builtin/commit.c:900
+#: builtin/commit.c:903
#, c-format
msgid ""
"Please enter the commit message for your changes. Lines starting\n"
@@ -13840,7 +14227,7 @@ msgstr ""
"Lütfen değişiklikleriniz için bir işleme iletisi girin. '%c' ile başlayan\n"
"satırlar tutulacaktır; isterseniz onları kaldırabilirsiniz.\n"
-#: builtin/commit.c:904
+#: builtin/commit.c:907
#, c-format
msgid ""
"Please enter the commit message for your changes. Lines starting\n"
@@ -13851,7 +14238,7 @@ msgstr ""
"satırlar tutulacaktır; isterseniz onları kaldırabilirsiniz.\n"
"BoÅŸ bir ileti iÅŸlemeyi iptal eder.\n"
-#: builtin/commit.c:916
+#: builtin/commit.c:919
msgid ""
"\n"
"It looks like you may be committing a merge.\n"
@@ -13865,7 +14252,7 @@ msgstr ""
"\tgit update-ref -d MERGE_HEAD\n"
"ve yeniden deneyin.\n"
-#: builtin/commit.c:921
+#: builtin/commit.c:924
msgid ""
"\n"
"It looks like you may be committing a cherry-pick.\n"
@@ -13879,174 +14266,152 @@ msgstr ""
"\tgit update-ref -d CHERRY_PICK_HEAD\n"
"ve yeniden deneyin.\n"
-#: builtin/commit.c:948
+#: builtin/commit.c:951
#, c-format
msgid "%sAuthor: %.*s <%.*s>"
msgstr "%sYazar: %.*s <%.*s>"
-#: builtin/commit.c:956
+#: builtin/commit.c:959
#, c-format
msgid "%sDate: %s"
msgstr "%sTarih: %s"
-#: builtin/commit.c:963
+#: builtin/commit.c:966
#, c-format
msgid "%sCommitter: %.*s <%.*s>"
msgstr "%sÄ°ÅŸleyici: %.*s <%.*s>"
-#: builtin/commit.c:981
+#: builtin/commit.c:984
msgid "Cannot read index"
msgstr "İndeks okunamıyor"
-#: builtin/commit.c:1026
+#: builtin/commit.c:1029
msgid "unable to pass trailers to --trailers"
msgstr "--trailers'a artbilgiler geçirilemiyor"
-#: builtin/commit.c:1066
+#: builtin/commit.c:1069
msgid "Error building trees"
msgstr "Ağaçlar yapılırken hata"
-#: builtin/commit.c:1080 builtin/tag.c:316
+#: builtin/commit.c:1083 builtin/tag.c:317
#, c-format
msgid "Please supply the message using either -m or -F option.\n"
msgstr "Lütfen iletiyi -m veya -F seçeneğini kullanarak destekleyin.\n"
-#: builtin/commit.c:1124
+#: builtin/commit.c:1128
#, c-format
msgid "--author '%s' is not 'Name <email>' and matches no existing author"
msgstr ""
"--author '%s', 'Ad <e-posta>' biçiminde değil ve mevcut bir yazarla "
"eÅŸleÅŸmiyor"
-#: builtin/commit.c:1138
+#: builtin/commit.c:1142
#, c-format
msgid "Invalid ignored mode '%s'"
msgstr "Geçersiz yok sayılanları göster kipi '%s'"
-#: builtin/commit.c:1156 builtin/commit.c:1451
+#: builtin/commit.c:1160 builtin/commit.c:1450
#, c-format
msgid "Invalid untracked files mode '%s'"
msgstr "Geçersiz izlenmeyen dosyaları göster kipi '%s'"
-#: builtin/commit.c:1227
+#: builtin/commit.c:1231
msgid "You are in the middle of a merge -- cannot reword."
msgstr "Bir birleştirmenin tam ortasındasınız -- ileti değiştirilemiyor."
-#: builtin/commit.c:1229
+#: builtin/commit.c:1233
msgid "You are in the middle of a cherry-pick -- cannot reword."
msgstr "Bir seç-al'ın tam ortasındasınız -- ileti değiştirilemiyor."
-#: builtin/commit.c:1232
+#: builtin/commit.c:1236
#, c-format
msgid "reword option of '%s' and path '%s' cannot be used together"
msgstr ""
"'%s' ögesinin yeniden yazım seçeneği ve '%s' yolu birlikte kullanılamaz"
-#: builtin/commit.c:1234
+#: builtin/commit.c:1238
#, c-format
msgid "reword option of '%s' and '%s' cannot be used together"
msgstr "'%s' ögesinin yeniden yazım seçeneği ve '%s' birlikte kullanılamaz"
-#: builtin/commit.c:1254
-msgid "Using both --reset-author and --author does not make sense"
-msgstr "Hem --reset-author ve hem --author birlikte bir anlam ifade etmiyor"
-
-#: builtin/commit.c:1261
+#: builtin/commit.c:1263
msgid "You have nothing to amend."
msgstr "DeÄŸiÅŸtirecek bir ÅŸeyiniz yok."
-#: builtin/commit.c:1264
+#: builtin/commit.c:1266
msgid "You are in the middle of a merge -- cannot amend."
msgstr "Bir birleştirmenin tam ortasındasınız -- değiştirme yapılamıyor."
-#: builtin/commit.c:1266
+#: builtin/commit.c:1268
msgid "You are in the middle of a cherry-pick -- cannot amend."
msgstr "Bir seç-al'ın tam ortasındasınız -- değiştirme yapılamıyor."
-#: builtin/commit.c:1268
+#: builtin/commit.c:1270
msgid "You are in the middle of a rebase -- cannot amend."
msgstr ""
"Bir yeniden temellendirmenin tam ortasındasınız -- değiştirme yapılamıyor."
-#: builtin/commit.c:1271
-msgid "Options --squash and --fixup cannot be used together"
-msgstr "--squash ve --fixup seçenekleri birlikte kullanılamaz"
-
-#: builtin/commit.c:1281
-msgid "Only one of -c/-C/-F/--fixup can be used."
-msgstr "-c/-C/-F/--fixup arasından yalnızca bir tanesi kullanılabilir."
-
-#: builtin/commit.c:1283
-msgid "Option -m cannot be combined with -c/-C/-F."
-msgstr "-m seçeneği -c/-C/-F ile birlikte kullanılamaz."
-
-#: builtin/commit.c:1292
+#: builtin/commit.c:1290
msgid "--reset-author can be used only with -C, -c or --amend."
msgstr ""
"--reset-author yalnızca -C, -c veya --amend ile birlikte kullanılabilir."
-#: builtin/commit.c:1310
-msgid "Only one of --include/--only/--all/--interactive/--patch can be used."
-msgstr ""
-"--include/--only/--all/--interactive/--patch arasından yalnızca bir tanesi "
-"kullanılabilir."
-
-#: builtin/commit.c:1338
+#: builtin/commit.c:1337
#, c-format
msgid "unknown option: --fixup=%s:%s"
msgstr "bilinmeyen seçenek: --fixup=%s:%s"
-#: builtin/commit.c:1355
+#: builtin/commit.c:1354
#, c-format
msgid "paths '%s ...' with -a does not make sense"
msgstr "'%s ...' yolları -a ile bir anlam ifade etmiyor"
-#: builtin/commit.c:1486 builtin/commit.c:1655
+#: builtin/commit.c:1485 builtin/commit.c:1654
msgid "show status concisely"
msgstr "durumu kısaca göster"
-#: builtin/commit.c:1488 builtin/commit.c:1657
+#: builtin/commit.c:1487 builtin/commit.c:1656
msgid "show branch information"
msgstr "dal bilgisini göster"
-#: builtin/commit.c:1490
+#: builtin/commit.c:1489
msgid "show stash information"
msgstr "zula bilgisini göster"
-#: builtin/commit.c:1492 builtin/commit.c:1659
+#: builtin/commit.c:1491 builtin/commit.c:1658
msgid "compute full ahead/behind values"
msgstr "tam önünde/arkasında değerlerini hesapla"
-#: builtin/commit.c:1494
+#: builtin/commit.c:1493
msgid "version"
msgstr "sürüm"
-#: builtin/commit.c:1494 builtin/commit.c:1661 builtin/push.c:551
-#: builtin/worktree.c:690
+#: builtin/commit.c:1493 builtin/commit.c:1660 builtin/push.c:551
+#: builtin/worktree.c:765
msgid "machine-readable output"
msgstr "makine tarafından okunabilir çıktı"
-#: builtin/commit.c:1497 builtin/commit.c:1663
+#: builtin/commit.c:1496 builtin/commit.c:1662
msgid "show status in long format (default)"
msgstr "durumu uzun biçimde göster (öntanımlı)"
-#: builtin/commit.c:1500 builtin/commit.c:1666
+#: builtin/commit.c:1499 builtin/commit.c:1665
msgid "terminate entries with NUL"
msgstr "girdileri NUL ile sonlandır"
-#: builtin/commit.c:1502 builtin/commit.c:1506 builtin/commit.c:1669
+#: builtin/commit.c:1501 builtin/commit.c:1505 builtin/commit.c:1668
#: builtin/fast-export.c:1172 builtin/fast-export.c:1175
-#: builtin/fast-export.c:1178 builtin/rebase.c:1111 parse-options.h:337
+#: builtin/fast-export.c:1178 builtin/rebase.c:1139 parse-options.h:368
msgid "mode"
msgstr "kip"
-#: builtin/commit.c:1503 builtin/commit.c:1669
+#: builtin/commit.c:1502 builtin/commit.c:1668
msgid "show untracked files, optional modes: all, normal, no. (Default: all)"
msgstr ""
"izlenmeyen dosyaları göster, ist. bağlı kipler: all, normal, no (Öntanım.: "
"all)"
-#: builtin/commit.c:1507
+#: builtin/commit.c:1506
msgid ""
"show ignored files, optional modes: traditional, matching, no. (Default: "
"traditional)"
@@ -14054,11 +14419,11 @@ msgstr ""
"yok sayılan dosyaları göster, isteğe bağlı kipler: traditional (geleneksel) "
"matching (eşleşen), no (hayır) (Öntanımlı: traditional)."
-#: builtin/commit.c:1509 parse-options.h:192
+#: builtin/commit.c:1508 parse-options.h:197
msgid "when"
msgstr "ne zaman"
-#: builtin/commit.c:1510
+#: builtin/commit.c:1509
msgid ""
"ignore changes to submodules, optional when: all, dirty, untracked. "
"(Default: all)"
@@ -14066,198 +14431,198 @@ msgstr ""
"altmodüllere olan değişiklikleri yok say, isteğe bağlı ne zaman: all "
"(hepsi), dirty (kirli), untracked (izlenmeyen) (Öntanımlı: all)."
-#: builtin/commit.c:1512
+#: builtin/commit.c:1511
msgid "list untracked files in columns"
msgstr "izlenmeyen dosyaları sütunlarla göster"
-#: builtin/commit.c:1513
+#: builtin/commit.c:1512
msgid "do not detect renames"
msgstr "yeniden adlandırmaları algılama"
-#: builtin/commit.c:1515
+#: builtin/commit.c:1514
msgid "detect renames, optionally set similarity index"
msgstr ""
"yeniden adlandırmaları algıla, isteğe bağlı olarak benzerlik indeksi ayarla"
-#: builtin/commit.c:1538
+#: builtin/commit.c:1537
msgid "Unsupported combination of ignored and untracked-files arguments"
msgstr ""
"Yok sayılan ve izlenmeyen dosyalar argümanlarının desteklenmeyen birlikte "
"kullanımı"
-#: builtin/commit.c:1620
+#: builtin/commit.c:1619
msgid "suppress summary after successful commit"
msgstr "başarılı işlemenin ardından özeti gizle"
-#: builtin/commit.c:1621
+#: builtin/commit.c:1620
msgid "show diff in commit message template"
msgstr "diff'i işleme iletisi şablonunda göster"
-#: builtin/commit.c:1623
+#: builtin/commit.c:1622
msgid "Commit message options"
msgstr "İşleme iletisi seçenekleri"
-#: builtin/commit.c:1624 builtin/merge.c:288 builtin/tag.c:456
+#: builtin/commit.c:1623 builtin/merge.c:288 builtin/tag.c:457
msgid "read message from file"
msgstr "iletiyi dosyadan oku"
-#: builtin/commit.c:1625
+#: builtin/commit.c:1624
msgid "author"
msgstr "yazar"
-#: builtin/commit.c:1625
+#: builtin/commit.c:1624
msgid "override author for commit"
msgstr "işleme yazarını geçersiz kıl"
-#: builtin/commit.c:1626 builtin/gc.c:551
+#: builtin/commit.c:1625 builtin/gc.c:551
msgid "date"
msgstr "tarih"
-#: builtin/commit.c:1626
+#: builtin/commit.c:1625
msgid "override date for commit"
msgstr "işleme tarihini geçersiz kıl"
-#: builtin/commit.c:1628 builtin/commit.c:1629 builtin/commit.c:1635
-#: parse-options.h:329 ref-filter.h:89
+#: builtin/commit.c:1627 builtin/commit.c:1628 builtin/commit.c:1634
+#: parse-options.h:360 ref-filter.h:89
msgid "commit"
msgstr "iÅŸleme"
-#: builtin/commit.c:1628
+#: builtin/commit.c:1627
msgid "reuse and edit message from specified commit"
msgstr "belirtilen işlemenin iletisini düzenle ve yeniden kullan"
-#: builtin/commit.c:1629
+#: builtin/commit.c:1628
msgid "reuse message from specified commit"
msgstr "belirtilen iÅŸlemenin iletisini yeniden kullan"
#. TRANSLATORS: Leave "[(amend|reword):]" as-is,
#. and only translate <commit>.
#.
-#: builtin/commit.c:1634
+#: builtin/commit.c:1633
msgid "[(amend|reword):]commit"
msgstr "[(amend|reword):]iÅŸleme"
-#: builtin/commit.c:1634
+#: builtin/commit.c:1633
msgid ""
"use autosquash formatted message to fixup or amend/reword specified commit"
msgstr ""
"belirtilen işlemeyi değiştirmek/iletiyi yeniden yazmak için kendiliğinden "
"tıkıştırma tarafından biçimlendirilen iletiyi kullan"
-#: builtin/commit.c:1635
+#: builtin/commit.c:1634
msgid "use autosquash formatted message to squash specified commit"
msgstr ""
"belirtilen işlemeyi tıkıştırmak için kendiliğinden tıkıştırma tarafından "
"biçimlendirilen iletiyi kullan"
-#: builtin/commit.c:1636
+#: builtin/commit.c:1635
msgid "the commit is authored by me now (used with -C/-c/--amend)"
msgstr ""
"işlemenin yazarı şu andan itibaren benim (-C/-c/--amend ile kullanıldı)"
-#: builtin/commit.c:1637 builtin/interpret-trailers.c:111
+#: builtin/commit.c:1636 builtin/interpret-trailers.c:111
msgid "trailer"
msgstr "artbilgi"
-#: builtin/commit.c:1637
+#: builtin/commit.c:1636
msgid "add custom trailer(s)"
msgstr "özel artbilgiler ekle"
-#: builtin/commit.c:1638 builtin/log.c:1769 builtin/merge.c:306
+#: builtin/commit.c:1637 builtin/log.c:1788 builtin/merge.c:306
#: builtin/pull.c:146 builtin/revert.c:110
msgid "add a Signed-off-by trailer"
msgstr "bir Signed-off-by artbilgisi ekle"
-#: builtin/commit.c:1639
+#: builtin/commit.c:1638
msgid "use specified template file"
msgstr "belirtilen şablon dosyasını kullan"
-#: builtin/commit.c:1640
+#: builtin/commit.c:1639
msgid "force edit of commit"
msgstr "işlemeyi zorla düzenle"
-#: builtin/commit.c:1642
+#: builtin/commit.c:1641
msgid "include status in commit message template"
msgstr "işleme iletisi şablonunda durumu içer"
-#: builtin/commit.c:1647
+#: builtin/commit.c:1646
msgid "Commit contents options"
msgstr "İşleme içeriği seçenekleri"
-#: builtin/commit.c:1648
+#: builtin/commit.c:1647
msgid "commit all changed files"
msgstr "değiştirilen tüm dosyaları gönder"
-#: builtin/commit.c:1649
+#: builtin/commit.c:1648
msgid "add specified files to index for commit"
msgstr "belirtilen dosyaları işleme için indekse ekle"
-#: builtin/commit.c:1650
+#: builtin/commit.c:1649
msgid "interactively add files"
msgstr "dosyaları etkileşimli olarak ekle"
-#: builtin/commit.c:1651
+#: builtin/commit.c:1650
msgid "interactively add changes"
msgstr "deÄŸiÅŸiklikleri etkileÅŸimli olarak ekle"
-#: builtin/commit.c:1652
+#: builtin/commit.c:1651
msgid "commit only specified files"
msgstr "yalnızca belirtilen dosyaları gönder"
-#: builtin/commit.c:1653
+#: builtin/commit.c:1652
msgid "bypass pre-commit and commit-msg hooks"
msgstr "pre-commit ve commit-msg kancalarını atla"
-#: builtin/commit.c:1654
+#: builtin/commit.c:1653
msgid "show what would be committed"
msgstr "neyin işleneceğini göster"
-#: builtin/commit.c:1667
+#: builtin/commit.c:1666
msgid "amend previous commit"
msgstr "önceki işlemeyi değiştir"
-#: builtin/commit.c:1668
+#: builtin/commit.c:1667
msgid "bypass post-rewrite hook"
msgstr "post-rewrite kancasını atla"
-#: builtin/commit.c:1675
+#: builtin/commit.c:1674
msgid "ok to record an empty change"
msgstr "boş bir değişikliğin kaydı yazılabilir"
-#: builtin/commit.c:1677
+#: builtin/commit.c:1676
msgid "ok to record a change with an empty message"
msgstr "boş iletili bir değişikliğin kaydı yazılabilir"
-#: builtin/commit.c:1753
+#: builtin/commit.c:1752
#, c-format
msgid "Corrupt MERGE_HEAD file (%s)"
msgstr "Hasar görmüş MERGE_HEAD dosyası (%s)"
-#: builtin/commit.c:1760
+#: builtin/commit.c:1759
msgid "could not read MERGE_MODE"
msgstr "MERGE_MODE okunamadı"
-#: builtin/commit.c:1781
+#: builtin/commit.c:1780
#, c-format
msgid "could not read commit message: %s"
msgstr "işleme iletisi okunamadı: %s"
-#: builtin/commit.c:1788
+#: builtin/commit.c:1787
#, c-format
msgid "Aborting commit due to empty commit message.\n"
msgstr "İşleme iletisinin boş bırakılmasından ötürü iptal ediliyor.\n"
-#: builtin/commit.c:1793
+#: builtin/commit.c:1792
#, c-format
msgid "Aborting commit; you did not edit the message.\n"
msgstr "İşleme iptal ediliyor; iletiyi düzenlenmedi.\n"
-#: builtin/commit.c:1804
+#: builtin/commit.c:1803
#, c-format
msgid "Aborting commit due to empty commit message body.\n"
msgstr "İşleme iletisi gövdesinin boş bırakılmasından ötürü iptal ediliyor.\n"
-#: builtin/commit.c:1840
+#: builtin/commit.c:1839
msgid ""
"repository has been updated, but unable to write\n"
"new_index file. Check that disk is not full and quota is\n"
@@ -14380,6 +14745,10 @@ msgstr "renk ayarını bul: yuva [stdout tty]"
msgid "Type"
msgstr "Tür"
+#: builtin/config.c:154 builtin/env--helper.c:42 builtin/hash-object.c:97
+msgid "type"
+msgstr "tür"
+
#: builtin/config.c:154 builtin/env--helper.c:43
msgid "value is given this type"
msgstr "değer bu türde verildi"
@@ -14594,10 +14963,6 @@ msgstr ""
msgid "no such section: %s"
msgstr "böyle bir bölüm yok: %s"
-#: builtin/count-objects.c:90
-msgid "git count-objects [-v] [-H | --human-readable]"
-msgstr "git count-objects [-v] [-H | --human-readable]"
-
#: builtin/count-objects.c:100
msgid "print sizes in human readable format"
msgstr "yazdırma boyutları kişi tarafından okunabilir biçimde"
@@ -14765,7 +15130,7 @@ msgstr "yalnızca <dizgi> ile eşleşen etiketleri dikkate al"
msgid "do not consider tags matching <pattern>"
msgstr "<dizgi> ile eÅŸleÅŸen etiketleri dikkate alma"
-#: builtin/describe.c:570 builtin/name-rev.c:544
+#: builtin/describe.c:570 builtin/name-rev.c:595
msgid "show abbreviated commit object as fallback"
msgstr "kısaltılmış işleme nesnesini geri çekilinecek nesne olarak göster"
@@ -14813,7 +15178,7 @@ msgstr "%s...%s: birleÅŸtirme temeli yok"
msgid "Not a git repository"
msgstr "Bir git deposu deÄŸil"
-#: builtin/diff.c:537 builtin/grep.c:698
+#: builtin/diff.c:537 builtin/grep.c:700
#, c-format
msgid "invalid object '%s' given."
msgstr "geçersiz nesne '%s' verildi"
@@ -14932,11 +15297,11 @@ msgstr "'diff'e aktarıldı"
msgid "difftool requires worktree or --no-index"
msgstr "difftool, çalışma ağacı veya --no-index gerektiriyor"
-#: builtin/difftool.c:744
+#: builtin/difftool.c:745
msgid "no <tool> given for --tool=<tool>"
msgstr "--tool=<araç> için bir <araç> verilmedi"
-#: builtin/difftool.c:751
+#: builtin/difftool.c:752
msgid "no <cmd> given for --extcmd=<cmd>"
msgstr "--extcmd=<komut> için bir <komut> verilmedi"
@@ -14944,10 +15309,6 @@ msgstr "--extcmd=<komut> için bir <komut> verilmedi"
msgid "git env--helper --type=[bool|ulong] <options> <env-var>"
msgstr "git env--helper --type=[bool|ulong] <seçenekler> <ortam-dğşkn>"
-#: builtin/env--helper.c:42 builtin/hash-object.c:96
-msgid "type"
-msgstr "tür"
-
#: builtin/env--helper.c:46
msgid "default for git_env_*(...) to fall back on"
msgstr "git_env_*(...)'ın geri çekileceği öntanımlı"
@@ -14973,8 +15334,8 @@ msgstr ""
"bekliyor, '%s' deÄŸil"
#: builtin/fast-export.c:29
-msgid "git fast-export [rev-list-opts]"
-msgstr "git fast-export [rev-list-opts]"
+msgid "git fast-export [<rev-list-opts>]"
+msgstr "git fast-export [<revizyon-listesi-seçenekleri>]"
#: builtin/fast-export.c:843
msgid "Error: Cannot export nested tags unless --mark-tags is specified."
@@ -15031,7 +15392,7 @@ msgstr "akışı sonlandırmak için 'done' özelliğini kullan"
msgid "skip output of blob data"
msgstr "ikili nesne verisi çıktısını atla"
-#: builtin/fast-export.c:1196 builtin/log.c:1841
+#: builtin/fast-export.c:1196 builtin/log.c:1860
msgid "refspec"
msgstr "baÅŸvuru belirteci"
@@ -15063,36 +15424,36 @@ msgstr "ikili nesnelerin/işlemelerin orijinal nesne numaralarını göster"
msgid "label tags with mark ids"
msgstr "etiketleri im numaralarıyla adlandır"
-#: builtin/fast-import.c:3090
+#: builtin/fast-import.c:3097
#, c-format
msgid "Missing from marks for submodule '%s'"
msgstr "'%s' altmodülü için '(on)-dan' imleri eksik"
-#: builtin/fast-import.c:3092
+#: builtin/fast-import.c:3099
#, c-format
msgid "Missing to marks for submodule '%s'"
msgstr "'%s' altmodülü için '(o)-na' imleri eksik"
-#: builtin/fast-import.c:3227
+#: builtin/fast-import.c:3234
#, c-format
msgid "Expected 'mark' command, got %s"
msgstr "'mark' komutu bekleniyordu, %s alındı"
-#: builtin/fast-import.c:3232
+#: builtin/fast-import.c:3239
#, c-format
msgid "Expected 'to' command, got %s"
msgstr "'to' komutu bekleniyordu, %s alındı"
-#: builtin/fast-import.c:3324
+#: builtin/fast-import.c:3331
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"
-#: builtin/fast-import.c:3379
+#: builtin/fast-import.c:3386
#, c-format
msgid "feature '%s' forbidden in input without --allow-unsafe-features"
msgstr "'%s' özelliği --allow-unsafe-features olmadan girdide yasaklı"
-#: builtin/fetch-pack.c:242
+#: builtin/fetch-pack.c:246
#, c-format
msgid "Lockfile created but not reported: %s"
msgstr "Kilit dosyası oluşturuldu; ancak raporlanmadı: %s"
@@ -15113,104 +15474,108 @@ msgstr "git fetch --multiple [<seçenekler>] [(<depo> | <grup>)...]"
msgid "git fetch --all [<options>]"
msgstr "git fetch --all [<seçenekler>]"
-#: builtin/fetch.c:123
+#: builtin/fetch.c:124
msgid "fetch.parallel cannot be negative"
msgstr "fetch.parallel negatif olamaz"
-#: builtin/fetch.c:146 builtin/pull.c:189
+#: builtin/fetch.c:147 builtin/pull.c:189
msgid "fetch from all remotes"
msgstr "tüm uzak konumlardan getir"
-#: builtin/fetch.c:148 builtin/pull.c:249
+#: builtin/fetch.c:149 builtin/pull.c:249
msgid "set upstream for git pull/fetch"
msgstr "git pull/fetch için üstkaynak ayarla"
-#: builtin/fetch.c:150 builtin/pull.c:192
+#: builtin/fetch.c:151 builtin/pull.c:192
msgid "append to .git/FETCH_HEAD instead of overwriting"
msgstr ".git/FETCH_HEAD'in üzerine yazmak yerine ona iliştir"
-#: builtin/fetch.c:152
+#: builtin/fetch.c:153
msgid "use atomic transaction to update references"
msgstr "başvuruları güncellemek için atomsal işlem kullan"
-#: builtin/fetch.c:154 builtin/pull.c:195
+#: builtin/fetch.c:155 builtin/pull.c:195
msgid "path to upload pack on remote end"
msgstr "uzak uçtaki yükleme paketine olan yol"
-#: builtin/fetch.c:155
+#: builtin/fetch.c:156
msgid "force overwrite of local reference"
msgstr "yerel başvurunun üzerine zorla yaz"
-#: builtin/fetch.c:157
+#: builtin/fetch.c:158
msgid "fetch from multiple remotes"
msgstr "birden çok uzak konumdan getir"
-#: builtin/fetch.c:159 builtin/pull.c:199
+#: builtin/fetch.c:160 builtin/pull.c:199
msgid "fetch all tags and associated objects"
msgstr "tüm etiketleri ve ilişkilendirilen nesneleri getir"
-#: builtin/fetch.c:161
+#: builtin/fetch.c:162
msgid "do not fetch all tags (--no-tags)"
msgstr "tüm etiketleri getirme (--no-tags)"
-#: builtin/fetch.c:163
+#: builtin/fetch.c:164
msgid "number of submodules fetched in parallel"
msgstr "paralelde getirilen altmodüllerin sayısı"
-#: builtin/fetch.c:165
+#: builtin/fetch.c:166
msgid "modify the refspec to place all refs within refs/prefetch/"
msgstr ""
"başvuru belirtecini tüm başvuruları refs/prefetch/'e yerleştirecek biçimde "
"deÄŸiÅŸtir"
-#: builtin/fetch.c:167 builtin/pull.c:202
+#: builtin/fetch.c:168 builtin/pull.c:202
msgid "prune remote-tracking branches no longer on remote"
msgstr "artık uzak konumda olmayan uzak izleme dallarını buda"
-#: builtin/fetch.c:169
+#: builtin/fetch.c:170
msgid "prune local tags no longer on remote and clobber changed tags"
msgstr ""
"artık uzak konumda olmayan yerel etiketleri buda ve değiştirilen etiketleri "
"güncelle"
-#: builtin/fetch.c:170 builtin/fetch.c:195 builtin/pull.c:123
+#: builtin/fetch.c:171 builtin/fetch.c:199 builtin/pull.c:123
msgid "on-demand"
msgstr "istek üzerine"
-#: builtin/fetch.c:171
+#: builtin/fetch.c:172
msgid "control recursive fetching of submodules"
msgstr "altmodüllerin özyineli getirilmesini denetle"
-#: builtin/fetch.c:176
+#: builtin/fetch.c:177
msgid "write fetched references to the FETCH_HEAD file"
msgstr "getirilen başvuruları FETCH_HEAD dosyasına yaz"
-#: builtin/fetch.c:177 builtin/pull.c:210
+#: builtin/fetch.c:178 builtin/pull.c:210
msgid "keep downloaded pack"
msgstr "indirilen paketi tut"
-#: builtin/fetch.c:179
+#: builtin/fetch.c:180
msgid "allow updating of HEAD ref"
msgstr "HEAD başvurusunun güncellenmesine izin ver"
-#: builtin/fetch.c:182 builtin/fetch.c:188 builtin/pull.c:213
+#: builtin/fetch.c:183 builtin/fetch.c:189 builtin/pull.c:213
#: builtin/pull.c:222
msgid "deepen history of shallow clone"
msgstr "sığ klonun geçmişini derinleştir"
-#: builtin/fetch.c:184 builtin/pull.c:216
+#: builtin/fetch.c:185 builtin/pull.c:216
msgid "deepen history of shallow repository based on time"
msgstr "zamana bağlı olarak sığ deponun geçmişini derinleştir"
-#: builtin/fetch.c:190 builtin/pull.c:225
+#: builtin/fetch.c:191 builtin/pull.c:225
msgid "convert to a complete repository"
msgstr "tam bir depoya dönüştür"
-#: builtin/fetch.c:193
+#: builtin/fetch.c:194
+msgid "re-fetch without negotiating common commits"
+msgstr "ortak işlemeleri pazarlık etmeden yeniden getir"
+
+#: builtin/fetch.c:197
msgid "prepend this to submodule path output"
msgstr "bunu altmodül yol çıktısının başına ekle"
-#: builtin/fetch.c:196
+#: builtin/fetch.c:200
msgid ""
"default for recursive fetching of submodules (lower priority than config "
"files)"
@@ -15218,108 +15583,103 @@ msgstr ""
"altmodüllerin özyineli getirilmesi için öntanımlı (yapılandırma "
"dosyalarından daha az önceliğe iye)"
-#: builtin/fetch.c:200 builtin/pull.c:228
+#: builtin/fetch.c:204 builtin/pull.c:228
msgid "accept refs that update .git/shallow"
msgstr ".git/shallow'u güncelleyen başvuruları kabul et"
-#: builtin/fetch.c:201 builtin/pull.c:230
+#: builtin/fetch.c:205 builtin/pull.c:230
msgid "refmap"
msgstr "ilgili baÅŸvuru"
-#: builtin/fetch.c:202 builtin/pull.c:231
+#: builtin/fetch.c:206 builtin/pull.c:231
msgid "specify fetch refmap"
msgstr "getirme ile ilgili başvuruları belirt"
-#: builtin/fetch.c:209 builtin/pull.c:244
+#: builtin/fetch.c:213 builtin/pull.c:244
msgid "report that we have only objects reachable from this object"
msgstr "yalnızca bu nesneden ulaşılabilir nesnelerimiz olduğunu bildir"
-#: builtin/fetch.c:211
+#: builtin/fetch.c:215
msgid "do not fetch a packfile; instead, print ancestors of negotiation tips"
msgstr ""
"bir paket dosyasını getirme; bunun yerine pazarlık ipuçlarının atalarını "
"yazdır"
-#: builtin/fetch.c:214 builtin/fetch.c:216
+#: builtin/fetch.c:218 builtin/fetch.c:220
msgid "run 'maintenance --auto' after fetching"
msgstr "getirme sonrasında 'maintenance --auto' çalıştır"
-#: builtin/fetch.c:218 builtin/pull.c:247
+#: builtin/fetch.c:222 builtin/pull.c:247
msgid "check for forced-updates on all updated branches"
msgstr "tüm güncellenmiş dalları zorlanmış güncellemeler için denetle"
-#: builtin/fetch.c:220
+#: builtin/fetch.c:224
msgid "write the commit-graph after fetching"
msgstr "getirdikten sonra iÅŸleme grafiÄŸini yaz"
-#: builtin/fetch.c:222
+#: builtin/fetch.c:226
msgid "accept refspecs from stdin"
msgstr "başvuru belirteçlerini stdin'den oku"
-#: builtin/fetch.c:592
+#: builtin/fetch.c:618
msgid "couldn't find remote ref HEAD"
msgstr "uzak HEAD başvurusu bulunamadı"
-#: builtin/fetch.c:766
-#, c-format
-msgid "configuration fetch.output contains invalid value %s"
-msgstr "fetch.output yapılandırması geçersiz değer içeriyor: %s"
-
-#: builtin/fetch.c:867
+#: builtin/fetch.c:893
#, c-format
msgid "object %s not found"
msgstr "%s nesnesi bulunamadı"
-#: builtin/fetch.c:871
+#: builtin/fetch.c:897
msgid "[up to date]"
msgstr "[güncel]"
-#: builtin/fetch.c:883 builtin/fetch.c:901 builtin/fetch.c:973
+#: builtin/fetch.c:909 builtin/fetch.c:927 builtin/fetch.c:999
msgid "[rejected]"
msgstr "[reddedildi]"
-#: builtin/fetch.c:885
+#: builtin/fetch.c:911
msgid "can't fetch in current branch"
msgstr "geçerli dalda getirme yapılamıyor"
-#: builtin/fetch.c:886
+#: builtin/fetch.c:912
msgid "checked out in another worktree"
msgstr "başka bir çalışma ağacında çıkış yapıldı"
-#: builtin/fetch.c:896
+#: builtin/fetch.c:922
msgid "[tag update]"
msgstr "[etiket güncellemesi]"
-#: builtin/fetch.c:897 builtin/fetch.c:934 builtin/fetch.c:956
-#: builtin/fetch.c:968
+#: builtin/fetch.c:923 builtin/fetch.c:960 builtin/fetch.c:982
+#: builtin/fetch.c:994
msgid "unable to update local ref"
msgstr "yerel başvuru güncellenemiyor"
-#: builtin/fetch.c:901
+#: builtin/fetch.c:927
msgid "would clobber existing tag"
msgstr "var olan etiketi deÄŸiÅŸtirecektir"
-#: builtin/fetch.c:923
+#: builtin/fetch.c:949
msgid "[new tag]"
msgstr "[yeni etiket]"
-#: builtin/fetch.c:926
+#: builtin/fetch.c:952
msgid "[new branch]"
msgstr "[yeni dal]"
-#: builtin/fetch.c:929
+#: builtin/fetch.c:955
msgid "[new ref]"
msgstr "[yeni baÅŸvuru]"
-#: builtin/fetch.c:968
+#: builtin/fetch.c:994
msgid "forced update"
msgstr "zorlanmış güncelleme"
-#: builtin/fetch.c:973
+#: builtin/fetch.c:999
msgid "non-fast-forward"
msgstr "ileri sarım değil"
-#: builtin/fetch.c:1076
+#: builtin/fetch.c:1102
msgid ""
"fetch normally indicates which branches had a forced update,\n"
"but that check has been disabled; to re-enable, use '--show-forced-updates'\n"
@@ -15329,7 +15689,7 @@ msgstr ""
"ancak bu denetleme kapatılmış. Yeniden açmak için '--show-forced-updates'\n"
"bayrağını kullanın veya 'git config fetch.showForcedUpdates true' çalıştırın."
-#: builtin/fetch.c:1080
+#: builtin/fetch.c:1106
#, c-format
msgid ""
"it took %.2f seconds to check forced updates; you can use\n"
@@ -15342,22 +15702,22 @@ msgstr ""
"kullanarak veya 'git config fetch.showForcedUpdates false' çalıştırarak\n"
"bu denetlemeden kaçınabilirsiniz.\n"
-#: builtin/fetch.c:1112
+#: builtin/fetch.c:1136
#, c-format
msgid "%s did not send all necessary objects\n"
msgstr "%s tüm gerekli nesneleri göndermedi\n"
-#: builtin/fetch.c:1141
+#: builtin/fetch.c:1156
#, c-format
msgid "rejected %s because shallow roots are not allowed to be updated"
msgstr "%s reddedildi; çünkü sığ köklerin güncellenmesine izin verilmiyor"
-#: builtin/fetch.c:1231 builtin/fetch.c:1379
+#: builtin/fetch.c:1259 builtin/fetch.c:1418
#, c-format
msgid "From %.*s\n"
msgstr "Åžu konumdan: %.*s\n"
-#: builtin/fetch.c:1252
+#: builtin/fetch.c:1269
#, c-format
msgid ""
"some local refs could not be updated; try running\n"
@@ -15366,49 +15726,49 @@ msgstr ""
"bazı yerel başvurular güncellenemedi; 'git remote prune %s'\n"
"kullanarak eski ve çakışan dalları kaldırmayı deneyin"
-#: builtin/fetch.c:1349
+#: builtin/fetch.c:1377
#, c-format
msgid " (%s will become dangling)"
msgstr " (%s sarkacak)"
-#: builtin/fetch.c:1350
+#: builtin/fetch.c:1378
#, c-format
msgid " (%s has become dangling)"
msgstr " (%s sarkmaya başladı)"
-#: builtin/fetch.c:1382
+#: builtin/fetch.c:1421
msgid "[deleted]"
msgstr "[silindi]"
-#: builtin/fetch.c:1383 builtin/remote.c:1128
+#: builtin/fetch.c:1422 builtin/remote.c:1153
msgid "(none)"
msgstr "(hiçbiri)"
-#: builtin/fetch.c:1405
+#: builtin/fetch.c:1446
#, c-format
msgid "refusing to fetch into branch '%s' checked out at '%s'"
msgstr "'%s' dalına getirme reddediliyor, '%s' konumunda çıkış yapıldı"
-#: builtin/fetch.c:1425
+#: builtin/fetch.c:1466
#, c-format
msgid "option \"%s\" value \"%s\" is not valid for %s"
msgstr "\"%s\" seçeneği \"%s\" değeri %s için geçerli değil"
-#: builtin/fetch.c:1428
+#: builtin/fetch.c:1469
#, c-format
msgid "option \"%s\" is ignored for %s\n"
msgstr "\"%s\" seçeneği %s için yok sayılıyor\n"
-#: builtin/fetch.c:1455
+#: builtin/fetch.c:1496
#, c-format
msgid "the object %s does not exist"
msgstr "%s diye bir nesne yok"
-#: builtin/fetch.c:1643
+#: builtin/fetch.c:1748
msgid "multiple branches detected, incompatible with --set-upstream"
msgstr "birden çok dal algılandı, --set-upstream ile uyumsuz"
-#: builtin/fetch.c:1655
+#: builtin/fetch.c:1760
#, c-format
msgid ""
"could not set upstream of HEAD to '%s' from '%s' when it does not point to "
@@ -15417,19 +15777,19 @@ msgstr ""
"HEAD'in üst kaynağı '%s' olarak '%s' konumundan ayarlanamadı; çünkü herhangi "
"bir dala iÅŸaret etmiyor."
-#: builtin/fetch.c:1668
+#: builtin/fetch.c:1773
msgid "not setting upstream for a remote remote-tracking branch"
msgstr "bir uzak konum uzak izleme dalı için üstkaynak ayarlanmıyor"
-#: builtin/fetch.c:1670
+#: builtin/fetch.c:1775
msgid "not setting upstream for a remote tag"
msgstr "bir uzak konum etiketi için üstkaynak ayarlanmıyor"
-#: builtin/fetch.c:1672
+#: builtin/fetch.c:1777
msgid "unknown branch type"
msgstr "bilinmeyen dal türü"
-#: builtin/fetch.c:1674
+#: builtin/fetch.c:1779
msgid ""
"no source branch found;\n"
"you need to specify exactly one branch with the --set-upstream option"
@@ -15437,22 +15797,22 @@ msgstr ""
"Kaynak dal bulunamadı.\n"
"--set-upstream seçeneği ile tam olarak bir dal belirtmeniz gerekiyor."
-#: builtin/fetch.c:1804 builtin/fetch.c:1867
+#: builtin/fetch.c:1904 builtin/fetch.c:1967
#, c-format
msgid "Fetching %s\n"
msgstr "%s getiriliyor\n"
-#: builtin/fetch.c:1814 builtin/fetch.c:1869
+#: builtin/fetch.c:1914 builtin/fetch.c:1969
#, c-format
msgid "could not fetch %s"
msgstr "%s getirilemedi"
-#: builtin/fetch.c:1826
+#: builtin/fetch.c:1926
#, c-format
msgid "could not fetch '%s' (exit code: %d)\n"
msgstr "'%s' getirilemedi (çıkış kodu: %d)\n"
-#: builtin/fetch.c:1930
+#: builtin/fetch.c:2030
msgid ""
"no remote repository specified; please specify either a URL or a\n"
"remote name from which new revisions should be fetched"
@@ -15460,50 +15820,49 @@ msgstr ""
"Bir uzak dal belirtilmedi. Lütfen yeni revizyonların\n"
"getirileceği bir URL veya uzak konum adı belirtin."
-#: builtin/fetch.c:1966
+#: builtin/fetch.c:2066
msgid "you need to specify a tag name"
msgstr "bir etiket adı belirtmeniz gerekiyor"
-#: builtin/fetch.c:2032
-msgid "--negotiate-only needs one or more --negotiate-tip=*"
-msgstr ""
-"--negotiate-only'nin bir veya daha çok --negotiate-tip=* gereksinimi var"
+#: builtin/fetch.c:2156
+msgid "--negotiate-only needs one or more --negotiation-tip=*"
+msgstr "--negotiate-only'e bir veya daha çok --negotiation-tip=* gerekiyor"
-#: builtin/fetch.c:2036
+#: builtin/fetch.c:2160
msgid "negative depth in --deepen is not supported"
msgstr "--deepen içinde negatif derinlik desteklenmiyor"
-#: builtin/fetch.c:2045
+#: builtin/fetch.c:2169
msgid "--unshallow on a complete repository does not make sense"
msgstr "tam bir depo üzerinde --unshallow bir anlam ifade etmiyor"
-#: builtin/fetch.c:2062
+#: builtin/fetch.c:2186
msgid "fetch --all does not take a repository argument"
msgstr "fetch --all bir depo argümanı almıyor"
-#: builtin/fetch.c:2064
+#: builtin/fetch.c:2188
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:2073
+#: builtin/fetch.c:2197
#, 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:2081
+#: builtin/fetch.c:2205
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:2097
+#: builtin/fetch.c:2221
msgid "must supply remote when using --negotiate-only"
msgstr "--negotiate-only kullanırken uzak konum sağlanmalıdır"
-#: builtin/fetch.c:2102
+#: builtin/fetch.c:2226
msgid "protocol does not support --negotiate-only, exiting"
msgstr "protokol, --negotiate-only desteklemediğinden çıkılıyor"
-#: builtin/fetch.c:2121
+#: builtin/fetch.c:2246
msgid ""
"--filter can only be used with the remote configured in extensions."
"partialclone"
@@ -15511,11 +15870,11 @@ msgstr ""
"--filter yalnızca extensions.partialclone içinde yapılandırılmış uzak konum "
"ile kullanılabilir."
-#: builtin/fetch.c:2125
+#: builtin/fetch.c:2250
msgid "--atomic can only be used when fetching from one remote"
msgstr "--atomic yalnızca bir uzak konumdan getirirken kullanılabilir"
-#: builtin/fetch.c:2129
+#: builtin/fetch.c:2254
msgid "--stdin can only be used when fetching from one remote"
msgstr ""
"--stdin seçeneği yalnızca bir uzak konumdan getirilirken kullanılabilir"
@@ -15586,7 +15945,7 @@ msgstr "yer tutucuları Tcl'nin anlayabileceği biçimde tırnak içine al"
msgid "show only <n> matched refs"
msgstr "yalnızca <n> eşleşen başvuruyu göster"
-#: builtin/for-each-ref.c:42 builtin/tag.c:481
+#: builtin/for-each-ref.c:42 builtin/tag.c:482
msgid "respect format colors"
msgstr "biçim renklerine uy"
@@ -15780,7 +16139,7 @@ msgstr "Nesne dizinleri denetleniyor"
msgid "Checking %s link"
msgstr "%s baÄŸ denetleniyor"
-#: builtin/fsck.c:710 builtin/index-pack.c:859
+#: builtin/fsck.c:710 builtin/index-pack.c:862
#, c-format
msgid "invalid %s"
msgstr "geçersiz %s"
@@ -15849,7 +16208,7 @@ msgstr "ek olarak paketleri ve alternatif nesneleri de dikkate al"
msgid "check only connectivity"
msgstr "yalnızca bağlanabilirliği denetle"
-#: builtin/fsck.c:798 builtin/mktag.c:76
+#: builtin/fsck.c:798 builtin/mktag.c:75
msgid "enable more strict checking"
msgstr "daha kesin denetlemeyi etkinleÅŸtir"
@@ -15879,6 +16238,118 @@ msgstr "%s: nesne kayıp"
msgid "invalid parameter: expected sha1, got '%s'"
msgstr "geçersiz parametre: sha1 bekleniyordu, '%s' alındı"
+#: builtin/fsmonitor--daemon.c:13
+msgid "git fsmonitor--daemon start [<options>]"
+msgstr "git fsmonitor--daemon start [<seçenekler>]"
+
+#: builtin/fsmonitor--daemon.c:14
+msgid "git fsmonitor--daemon run [<options>]"
+msgstr "git fsmonitor--daemon run [<seçenekler>]"
+
+#: builtin/fsmonitor--daemon.c:15
+msgid "git fsmonitor--daemon stop"
+msgstr "git fsmonitor--daemon stop"
+
+#: builtin/fsmonitor--daemon.c:16
+msgid "git fsmonitor--daemon status"
+msgstr "git fsmonitor--daemon status"
+
+#: builtin/fsmonitor--daemon.c:38 builtin/fsmonitor--daemon.c:47
+#, c-format
+msgid "value of '%s' out of range: %d"
+msgstr "'%s' değeri erim dışında: %d"
+
+#: builtin/fsmonitor--daemon.c:57
+#, c-format
+msgid "value of '%s' not bool or int: %d"
+msgstr "'%s' değeri Boole veya tamsayı değil: %d"
+
+#: builtin/fsmonitor--daemon.c:99
+#, c-format
+msgid "fsmonitor-daemon is watching '%s'\n"
+msgstr "fsmonitor-daemon, '%s' ögesini izliyor\n"
+
+#: builtin/fsmonitor--daemon.c:104
+#, c-format
+msgid "fsmonitor-daemon is not watching '%s'\n"
+msgstr "fsmonitor-daemon, '%s' ögesini izlemiyor\n"
+
+#: builtin/fsmonitor--daemon.c:170
+#, c-format
+msgid "could not create fsmonitor cookie '%s'"
+msgstr "fsmonitor çerezi '%s' oluşturulamadı"
+
+#: builtin/fsmonitor--daemon.c:753
+#, c-format
+msgid "fsmonitor: cookie_result '%d' != SEEN"
+msgstr "fsmonitor: cookie_result '%d' != SEEN"
+
+#: builtin/fsmonitor--daemon.c:1187
+#, c-format
+msgid "could not start IPC thread pool on '%s'"
+msgstr "'%s' üzerinde IPC iş parçacığı havuzu başlatılamadı"
+
+#: builtin/fsmonitor--daemon.c:1199
+msgid "could not start fsmonitor listener thread"
+msgstr "fsmonitor dinleyici iş parçacığı başlatılamadı"
+
+#: builtin/fsmonitor--daemon.c:1297
+msgid "could not initialize listener thread"
+msgstr "dinleyici iş parçacığı ilklendirilemedi"
+
+#: builtin/fsmonitor--daemon.c:1328 builtin/fsmonitor--daemon.c:1383
+#, c-format
+msgid "fsmonitor--daemon is already running '%s'"
+msgstr "fsmonitor--daemon, halihazırda '%s' çalıştırıyor"
+
+#: builtin/fsmonitor--daemon.c:1332
+#, c-format
+msgid "running fsmonitor-daemon in '%s'\n"
+msgstr "fsmonitor-daemon '%s' içinde çalışıyor\n"
+
+#: builtin/fsmonitor--daemon.c:1387
+#, c-format
+msgid "starting fsmonitor-daemon in '%s'\n"
+msgstr "'%s' içinde fsmonitor-daemon başlatılıyor\n"
+
+#: builtin/fsmonitor--daemon.c:1413
+msgid "daemon failed to start"
+msgstr "ardalan süreci başlatılamadı"
+
+#: builtin/fsmonitor--daemon.c:1416
+msgid "daemon not online yet"
+msgstr "ardalan süreci henüz çalışmaya başlamadı"
+
+#: builtin/fsmonitor--daemon.c:1419
+msgid "daemon terminated"
+msgstr "ardalan süreci sonlandırıldı"
+
+#: builtin/fsmonitor--daemon.c:1429
+msgid "detach from console"
+msgstr "konsoldan ayrıl"
+
+#: builtin/fsmonitor--daemon.c:1432
+msgid "use <n> ipc worker threads"
+msgstr "<n> ipc işçisi iş parçacığı kullan"
+
+#: builtin/fsmonitor--daemon.c:1435
+msgid "max seconds to wait for background daemon startup"
+msgstr "ardalan sürecinin başlaması için beklenecek en çok saniye"
+
+#: builtin/fsmonitor--daemon.c:1449
+#, c-format
+msgid "invalid 'ipc-threads' value (%d)"
+msgstr "geçersiz 'ipc-threads' değeri (%d)"
+
+#: builtin/fsmonitor--daemon.c:1464
+#, c-format
+msgid "Unhandled subcommand '%s'"
+msgstr "Ä°ÅŸlenmemiÅŸ altkomut '%s'"
+
+#: builtin/fsmonitor--daemon.c:1477
+msgid "fsmonitor--daemon not supported on this platform"
+msgstr "fsmonitor--daemon bu platformda desteklenmiyor"
+
#: builtin/gc.c:39
msgid "git gc [<options>]"
msgstr "git gc [<seçenekler>]"
@@ -16124,8 +16595,8 @@ msgstr "systemctl başlatılamadı"
msgid "failed to run systemctl"
msgstr "systemctl çalıştırılamadı"
-#: builtin/gc.c:2210 builtin/gc.c:2215 builtin/worktree.c:62
-#: builtin/worktree.c:944
+#: builtin/gc.c:2210 builtin/gc.c:2215 builtin/worktree.c:63
+#: builtin/worktree.c:1024
#, c-format
msgid "failed to delete '%s'"
msgstr "'%s' silinemedi"
@@ -16173,16 +16644,16 @@ msgstr "git maintenance <altkomut> [<seçenekler>]"
msgid "invalid subcommand: %s"
msgstr "geçersiz altkomut: %s"
-#: builtin/grep.c:30
+#: builtin/grep.c:32
msgid "git grep [<options>] [-e] <pattern> [<rev>...] [[--] <path>...]"
msgstr "git grep [<seçenekler>] [-e] <dizgi> [<rev>...] [[--] <yol>...]"
-#: builtin/grep.c:239
+#: builtin/grep.c:241
#, c-format
msgid "grep: failed to create thread: %s"
msgstr "grep: iş parçacığı oluşturulamadı: %s"
-#: builtin/grep.c:293
+#: builtin/grep.c:295
#, c-format
msgid "invalid number of threads specified (%d) for %s"
msgstr "geçersiz belirtilen iş parçacığı sayısı (%d), %s için"
@@ -16191,259 +16662,251 @@ msgstr "geçersiz belirtilen iş parçacığı sayısı (%d), %s için"
#. variable for tweaking threads, currently
#. grep.threads
#.
-#: builtin/grep.c:301 builtin/index-pack.c:1582 builtin/index-pack.c:1785
-#: builtin/pack-objects.c:3142
+#: builtin/grep.c:303 builtin/index-pack.c:1587 builtin/index-pack.c:1791
+#: builtin/pack-objects.c:3150
#, c-format
msgid "no threads support, ignoring %s"
msgstr "iş parçacığı desteği yok, %s yok sayılıyor"
-#: builtin/grep.c:488 builtin/grep.c:617 builtin/grep.c:657
+#: builtin/grep.c:490 builtin/grep.c:619 builtin/grep.c:659
#, c-format
msgid "unable to read tree (%s)"
msgstr "ağaç okunamıyor (%s)"
-#: builtin/grep.c:672
+#: builtin/grep.c:674
#, c-format
msgid "unable to grep from object of type %s"
msgstr "%s türündeki bir nesneden grep yapılamıyor"
-#: builtin/grep.c:752
+#: builtin/grep.c:754
#, c-format
msgid "switch `%c' expects a numerical value"
msgstr "'%c' anahtarı sayısal bir değer bekliyor"
-#: builtin/grep.c:851
+#: builtin/grep.c:852
msgid "search in index instead of in the work tree"
msgstr "çalışma ağacı yerine indekste ara"
-#: builtin/grep.c:853
+#: builtin/grep.c:854
msgid "find in contents not managed by git"
msgstr "git tarafından yönetilmeyen içerikte bul"
-#: builtin/grep.c:855
+#: builtin/grep.c:856
msgid "search in both tracked and untracked files"
msgstr "hem izlenen hem izlenmeyen dosyalar içinde ara"
-#: builtin/grep.c:857
+#: builtin/grep.c:858
msgid "ignore files specified via '.gitignore'"
msgstr "'.gitignore'da belirtilen dosyaları yok say"
-#: builtin/grep.c:859
+#: builtin/grep.c:860
msgid "recursively search in each submodule"
msgstr "her altmodülde özyineli olarak ara"
-#: builtin/grep.c:862
+#: builtin/grep.c:863
msgid "show non-matching lines"
msgstr "eşleşmeyen satırları göster"
-#: builtin/grep.c:864
+#: builtin/grep.c:865
msgid "case insensitive matching"
msgstr "BÜYÜK/küçük harf duyarsız eşleşme"
-#: builtin/grep.c:866
+#: builtin/grep.c:867
msgid "match patterns only at word boundaries"
msgstr "yalnızca sözcük sınırlarındaki dizgileri eşleştir"
-#: builtin/grep.c:868
+#: builtin/grep.c:869
msgid "process binary files as text"
msgstr "ikili dosyaları metin olarak işle"
-#: builtin/grep.c:870
+#: builtin/grep.c:871
msgid "don't match patterns in binary files"
msgstr "ikili dosyalardaki dizgileri eÅŸleÅŸtirme"
-#: builtin/grep.c:873
+#: builtin/grep.c:874
msgid "process binary files with textconv filters"
msgstr "ikili dosyaları textconv süzgeçleri ile işle"
-#: builtin/grep.c:875
+#: builtin/grep.c:876
msgid "search in subdirectories (default)"
msgstr "altdizinlerde ara (öntanımlı)"
-#: builtin/grep.c:877
+#: builtin/grep.c:878
msgid "descend at most <depth> levels"
msgstr "en çok <derinlik> düzey in"
-#: builtin/grep.c:881
+#: builtin/grep.c:882
msgid "use extended POSIX regular expressions"
msgstr "genişletilmiş POSIX düzenli ifadelerini kullan"
-#: builtin/grep.c:884
+#: builtin/grep.c:885
msgid "use basic POSIX regular expressions (default)"
msgstr "temel POSIX düzenli ifadelerini kullan (öntanımlı)"
-#: builtin/grep.c:887
+#: builtin/grep.c:888
msgid "interpret patterns as fixed strings"
msgstr "dizgileri sabit diziler olarak yorumla"
-#: builtin/grep.c:890
+#: builtin/grep.c:891
msgid "use Perl-compatible regular expressions"
msgstr "Perl uyumlu düzenli ifadeler kullan"
-#: builtin/grep.c:893
+#: builtin/grep.c:894
msgid "show line numbers"
msgstr "satır numaralarını göster"
-#: builtin/grep.c:894
+#: builtin/grep.c:895
msgid "show column number of first match"
msgstr "ilk eşleşmenin sütun numarasını göster"
-#: builtin/grep.c:895
+#: builtin/grep.c:896
msgid "don't show filenames"
msgstr "dosya adlarını gösterme"
-#: builtin/grep.c:896
+#: builtin/grep.c:897
msgid "show filenames"
msgstr "dosya adlarını göster"
-#: builtin/grep.c:898
+#: builtin/grep.c:899
msgid "show filenames relative to top directory"
msgstr "dosya adlarını en üst dizine göreceli olarak göster"
-#: builtin/grep.c:900
+#: builtin/grep.c:901
msgid "show only filenames instead of matching lines"
msgstr "eşleşen satırlar yerine yalnızca dosya adlarını göster"
-#: builtin/grep.c:902
+#: builtin/grep.c:903
msgid "synonym for --files-with-matches"
msgstr "--files-with-matches eşanlamlısı"
-#: builtin/grep.c:905
+#: builtin/grep.c:906
msgid "show only the names of files without match"
msgstr "eşleşme olmadan yalnızca dosya adlarını göster"
-#: builtin/grep.c:907
+#: builtin/grep.c:908
msgid "print NUL after filenames"
msgstr "dosya adlarından sonra NUL yazdır"
-#: builtin/grep.c:910
+#: builtin/grep.c:911
msgid "show only matching parts of a line"
msgstr "yalnızca bir satırın eşleşen kısımlarını göster"
-#: builtin/grep.c:912
+#: builtin/grep.c:913
msgid "show the number of matches instead of matching lines"
msgstr "eşleşen satırlar yerine eşleşme sayısını göster"
-#: builtin/grep.c:913
+#: builtin/grep.c:914
msgid "highlight matches"
msgstr "eÅŸleÅŸmeleri vurgula"
-#: builtin/grep.c:915
+#: builtin/grep.c:916
msgid "print empty line between matches from different files"
msgstr "başka dosyalardan olan eşleşmelerin arasına boş satır yazdır"
-#: builtin/grep.c:917
+#: builtin/grep.c:918
msgid "show filename only once above matches from same file"
msgstr ""
"aynı dosyadan olan eşleşmelerin üzerinde dosya adını yalnızca bir kez göster"
-#: builtin/grep.c:920
+#: builtin/grep.c:921
msgid "show <n> context lines before and after matches"
msgstr "eşleşmelerden önce ve sonra <n> satır bağlam göster"
-#: builtin/grep.c:923
+#: builtin/grep.c:924
msgid "show <n> context lines before matches"
msgstr "eşleşmelerden önce <n> satır bağlam göster"
-#: builtin/grep.c:925
+#: builtin/grep.c:926
msgid "show <n> context lines after matches"
msgstr "eşleşmelerden sonra <n> satır bağlam göster"
-#: builtin/grep.c:927
+#: builtin/grep.c:928
msgid "use <n> worker threads"
msgstr "<n> iş parçacığı kullan"
-#: builtin/grep.c:928
+#: builtin/grep.c:929
msgid "shortcut for -C NUM"
msgstr "-C NUM için kısayol"
-#: builtin/grep.c:931
+#: builtin/grep.c:932
msgid "show a line with the function name before matches"
msgstr "eşleşmelerden önce işlev adının olduğu bir satır göster"
-#: builtin/grep.c:933
+#: builtin/grep.c:934
msgid "show the surrounding function"
msgstr "çevresindeki işlevi göster"
-#: builtin/grep.c:936
+#: builtin/grep.c:937
msgid "read patterns from file"
msgstr "dizgileri dosyadan oku"
-#: builtin/grep.c:938
+#: builtin/grep.c:939
msgid "match <pattern>"
msgstr "<dizgi> ile eÅŸleÅŸ"
-#: builtin/grep.c:940
+#: builtin/grep.c:941
msgid "combine patterns specified with -e"
msgstr "-e ile belirtilen dizgileri birleÅŸtir"
-#: builtin/grep.c:952
+#: builtin/grep.c:953
msgid "indicate hit with exit status without output"
msgstr "çıkış durumu ile olan eşleşmelerde çıktı verme"
-#: builtin/grep.c:954
+#: builtin/grep.c:955
msgid "show only matches from files that match all patterns"
msgstr "yalnızca tüm dizgilerle eşleşen dosyalardan eşleşmeleri göster"
-#: builtin/grep.c:957
+#: builtin/grep.c:958
msgid "pager"
msgstr "sayfalayıcı"
-#: builtin/grep.c:957
+#: builtin/grep.c:958
msgid "show matching files in the pager"
msgstr "sayfalayıcıda eşleşen dosyaları göster"
-#: builtin/grep.c:961
+#: builtin/grep.c:962
msgid "allow calling of grep(1) (ignored by this build)"
msgstr "grep(1)'in çağrılmasına izin ver (bu yapım tarafından yok sayıldı)"
-#: builtin/grep.c:1027
+#: builtin/grep.c:1028
msgid "no pattern given"
msgstr "bir dizgi verilmedi"
-#: builtin/grep.c:1063
+#: builtin/grep.c:1064
msgid "--no-index or --untracked cannot be used with revs"
msgstr "--no-index veya --untracked revizyonlarla birlikte kullanılamaz"
-#: builtin/grep.c:1071
+#: builtin/grep.c:1072
#, c-format
msgid "unable to resolve revision: %s"
msgstr "revizyon çözülemiyor: %s"
-#: builtin/grep.c:1101
+#: builtin/grep.c:1102
msgid "--untracked not supported with --recurse-submodules"
msgstr "--untracked, --recurse-submodules ile desteklenmiyor"
-#: builtin/grep.c:1105
+#: builtin/grep.c:1106
msgid "invalid option combination, ignoring --threads"
msgstr "geçersiz seçenek birleştirmesi, --threads yok sayılıyor"
-#: builtin/grep.c:1108 builtin/pack-objects.c:4059
+#: builtin/grep.c:1109 builtin/pack-objects.c:4084
msgid "no threads support, ignoring --threads"
msgstr "iş parçacığı desteği yok, --threads yok sayılıyor"
-#: builtin/grep.c:1111 builtin/index-pack.c:1579 builtin/pack-objects.c:3139
+#: builtin/grep.c:1112 builtin/index-pack.c:1584 builtin/pack-objects.c:3147
#, c-format
msgid "invalid number of threads specified (%d)"
msgstr "geçersiz belirtilen iş parçacığı sayısı (%d)"
-#: builtin/grep.c:1145
+#: builtin/grep.c:1146
msgid "--open-files-in-pager only works on the worktree"
msgstr "--open-files-in-pager yalnızca çalışma ağacında çalışır"
-#: builtin/grep.c:1171
-msgid "--cached or --untracked cannot be used with --no-index"
-msgstr "--cached veya --untracked, --no-index ile birlikte kullanılamıyor"
-
-#: builtin/grep.c:1174
-msgid "--untracked cannot be used with --cached"
-msgstr "--untracked, --cached ile birlikte kullanılamıyor"
-
-#: builtin/grep.c:1180
+#: builtin/grep.c:1179
msgid "--[no-]exclude-standard cannot be used for tracked contents"
msgstr "--[no-]exclude-standard, izlenen içerik için kullanılamıyor"
-#: builtin/grep.c:1188
+#: builtin/grep.c:1187
msgid "both --cached and trees are given"
msgstr "hem --cached hem ağaçlar verilmiş"
@@ -16455,109 +16918,101 @@ msgstr ""
"git hash-object [-t <tür>] [-w] [--path=<dosya> | --no-filters] [--stdin] "
"[--] <dosya>..."
-#: builtin/hash-object.c:84
-msgid "git hash-object --stdin-paths"
-msgstr "git hash-object --stdin-paths"
-
-#: builtin/hash-object.c:96
+#: builtin/hash-object.c:97
msgid "object type"
msgstr "nesne türü"
-#: builtin/hash-object.c:97
+#: builtin/hash-object.c:98
msgid "write the object into the object database"
msgstr "nesneyi nesne veritabanına yaz"
-#: builtin/hash-object.c:99
+#: builtin/hash-object.c:100
msgid "read the object from stdin"
msgstr "nesneyi stdin'den oku"
-#: builtin/hash-object.c:101
+#: builtin/hash-object.c:102
msgid "store file as is without filters"
msgstr "dosyayı süzgeçler olmadan olduğu gibi depola"
-#: builtin/hash-object.c:102
+#: builtin/hash-object.c:103
msgid ""
"just hash any random garbage to create corrupt objects for debugging Git"
msgstr ""
"Git hata ayıklamasında kullanmak için çer çöp toplayarak hasarlı nesneler "
"oluÅŸtur"
-#: builtin/hash-object.c:103
+#: builtin/hash-object.c:104
msgid "process file as it were from this path"
msgstr "dosyayı sanki bu yoldanmış gibi işle"
-#: builtin/help.c:55
+#: builtin/help.c:57
msgid "print all available commands"
msgstr "tüm kullanılabilir komutları yazdır"
-#: builtin/help.c:57
+#: builtin/help.c:60
+msgid "show external commands in --all"
+msgstr "--all içinde dış komutları göster"
+
+#: builtin/help.c:61
+msgid "show aliases in --all"
+msgstr "--all içinde armaları göster"
+
+#: builtin/help.c:62
msgid "exclude guides"
msgstr "kılavuzları hariç tut"
-#: builtin/help.c:58
+#: builtin/help.c:63
msgid "show man page"
msgstr "man sayfasını göster"
-#: builtin/help.c:59
+#: builtin/help.c:64
msgid "show manual in web browser"
msgstr "kılavuzu web tarayıcısında göster"
-#: builtin/help.c:61
+#: builtin/help.c:66
msgid "show info page"
msgstr "bilgi sayfasını göster"
-#: builtin/help.c:63
+#: builtin/help.c:68
msgid "print command description"
msgstr "komut açıklamasını yazdır"
-#: builtin/help.c:65
+#: builtin/help.c:70
msgid "print list of useful guides"
msgstr "kullanışlı kılavuzların listesini çıkar"
-#: builtin/help.c:67
+#: builtin/help.c:72
msgid "print all configuration variable names"
msgstr "tüm yapılandırma değişkenleri adlarını yazdır"
-#: builtin/help.c:78
-msgid ""
-"git help [-a|--all] [--[no-]verbose]]\n"
-" [[-i|--info] [-m|--man] [-w|--web]] [<command>]"
-msgstr ""
-"git help [-a|--all] [--[no-]verbose]]\n"
-" [[-i|--info] [-m|--man] [-w|--web]] [<komut>]"
-
-#: builtin/help.c:80
-msgid "git help [-g|--guides]"
-msgstr "git help [-g|--guides]"
-
-#: builtin/help.c:81
-msgid "git help [-c|--config]"
-msgstr "git help [-c|--config]"
+#: builtin/help.c:84
+msgid "git help [[-i|--info] [-m|--man] [-w|--web]] [<command>]"
+msgstr "git help [[-i|--info] [-m|--man] [-w|--web]] [<komutlar>]"
-#: builtin/help.c:196
+#: builtin/help.c:201
#, c-format
msgid "unrecognized help format '%s'"
msgstr "tanımlanamayan yardım biçimi '%s'"
-#: builtin/help.c:222
+#: builtin/help.c:227
msgid "Failed to start emacsclient."
msgstr "emacsclient başlatılamadı."
-#: builtin/help.c:235
+#: builtin/help.c:240
msgid "Failed to parse emacsclient version."
msgstr "emacsclient sürümü ayrıştırılamadı."
-#: builtin/help.c:243
+#: builtin/help.c:248
#, c-format
msgid "emacsclient version '%d' too old (< 22)."
msgstr "emacsclient sürümü '%d' pek eski (<22)."
-#: builtin/help.c:261 builtin/help.c:283 builtin/help.c:293 builtin/help.c:301
+#: builtin/help.c:266 builtin/help.c:288 builtin/help.c:298 builtin/help.c:306
#, c-format
msgid "failed to exec '%s'"
msgstr "'%s' çalıştırılamadı"
-#: builtin/help.c:339
+#: builtin/help.c:344
#, c-format
msgid ""
"'%s': path for unsupported man viewer.\n"
@@ -16566,7 +17021,7 @@ msgstr ""
"'%s': desteklenmeyen man görüntüleyicisi yolu.\n"
"Bunun yerine 'man.<araç>.cmd' kullanmayı düşünün."
-#: builtin/help.c:351
+#: builtin/help.c:356
#, c-format
msgid ""
"'%s': cmd for supported man viewer.\n"
@@ -16575,42 +17030,57 @@ msgstr ""
"'%s': desteklenmeyen man görüntüleyicisi komutu.\n"
"Bunun yerine 'man.<araç>.path' kullanmayı düşünün."
-#: builtin/help.c:466
+#: builtin/help.c:471
#, c-format
msgid "'%s': unknown man viewer."
msgstr "'%s': Bilinmeyen man görüntüleyicisi."
-#: builtin/help.c:482
+#: builtin/help.c:487
msgid "no man viewer handled the request"
msgstr "isteğe hiçbir man görüntüleyicisi ele almadı"
-#: builtin/help.c:489
+#: builtin/help.c:494
msgid "no info viewer handled the request"
msgstr "isteğe hiçbir bilgi görüntüleyicisi ele almadı"
-#: builtin/help.c:550 builtin/help.c:561 git.c:348
+#: builtin/help.c:555 builtin/help.c:566 git.c:348
#, c-format
msgid "'%s' is aliased to '%s'"
msgstr "'%s', '%s' olarak armalanmış"
-#: builtin/help.c:564 git.c:380
+#: builtin/help.c:569 git.c:380
#, c-format
msgid "bad alias.%s string: %s"
msgstr "hatalı alias.%s dizisi: %s"
-#: builtin/help.c:580
-msgid "this option doesn't take any other arguments"
-msgstr "bu seçenek başka bir argüman daha almıyor"
+#: builtin/help.c:611
+#, c-format
+msgid "the '%s' option doesn't take any non-option arguments"
+msgstr "'%s', seçenek olmayan bir argüman almıyor"
+
+#: builtin/help.c:631
+msgid ""
+"the '--no-[external-commands|aliases]' options can only be used with '--all'"
+msgstr ""
+"'--no-[external-commands|aliases]', yalnızca '--all' ile kullanılabilir"
-#: builtin/help.c:601 builtin/help.c:628
+#: builtin/help.c:643 builtin/help.c:671
#, c-format
msgid "usage: %s%s"
msgstr "kullanım: %s%s"
-#: builtin/help.c:623
+#: builtin/help.c:666
msgid "'git help config' for more information"
msgstr "ek bilgi için: 'git help config'"
+#: builtin/hook.c:10
+msgid "git hook run [--ignore-missing] <hook-name> [-- <hook-args>]"
+msgstr "git hook run [--ignore-missing] <kanca-adı> [-- <kanca-argümanları>]"
+
+#: builtin/hook.c:30
+msgid "silently ignore missing requested <hook-name>"
+msgstr "istenen eksik <kanca-adı> sessizce yok sayılıyor"
+
#: builtin/index-pack.c:221
#, c-format
msgid "object type mismatch at %s"
@@ -16645,244 +17115,245 @@ msgstr "girdide okuma hatası"
msgid "used more bytes than were available"
msgstr "kullanılabilir olandan daha çok bayt kullanıldı"
-#: builtin/index-pack.c:324 builtin/pack-objects.c:756
+#: builtin/index-pack.c:324 builtin/pack-objects.c:754
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"
-#: builtin/index-pack.c:327 builtin/unpack-objects.c:95
-msgid "pack exceeds maximum allowed size"
-msgstr "paket izin verilen en büyük boyutu aşıyor"
+#: builtin/index-pack.c:329
+#, c-format
+msgid "pack exceeds maximum allowed size (%s)"
+msgstr "paket izin verilen en büyük boyutu aşıyor (%s)"
-#: builtin/index-pack.c:358
+#: builtin/index-pack.c:362
msgid "pack signature mismatch"
msgstr "paket imzası uyuşmazlığı"
-#: builtin/index-pack.c:360
+#: builtin/index-pack.c:364
#, c-format
msgid "pack version %<PRIu32> unsupported"
msgstr "paket sürümü %<PRIu32> desteklenmiyor"
-#: builtin/index-pack.c:376
+#: builtin/index-pack.c:380
#, c-format
msgid "pack has bad object at offset %<PRIuMAX>: %s"
msgstr "paketin %<PRIuMAX> ofsetinde hatalı nesne var: %s"
-#: builtin/index-pack.c:482
+#: builtin/index-pack.c:485
#, c-format
msgid "inflate returned %d"
msgstr "şişirme programı %d döndürdü"
-#: builtin/index-pack.c:531
+#: builtin/index-pack.c:534
msgid "offset value overflow for delta base object"
msgstr "delta tabanı nesnesi için ofset değeri taşımı"
-#: builtin/index-pack.c:539
+#: builtin/index-pack.c:542
msgid "delta base offset is out of bound"
msgstr "delta tabanı ofseti sınırlar dışında"
-#: builtin/index-pack.c:547
+#: builtin/index-pack.c:550
#, c-format
msgid "unknown object type %d"
msgstr "bilinmeyen nesne türü %d"
-#: builtin/index-pack.c:578
+#: builtin/index-pack.c:581
msgid "cannot pread pack file"
msgstr "paket dosyası 'pread' yapılamıyor"
-#: builtin/index-pack.c:580
+#: builtin/index-pack.c:583
#, c-format
msgid "premature end of pack file, %<PRIuMAX> byte missing"
msgid_plural "premature end of pack file, %<PRIuMAX> bytes missing"
msgstr[0] "zamansız paket dosyası sonu, %<PRIuMAX> bayt eksik"
msgstr[1] "zamansız paket dosyası sonu, %<PRIuMAX> bayt eksik"
-#: builtin/index-pack.c:606
+#: builtin/index-pack.c:609
msgid "serious inflate inconsistency"
msgstr "ciddi şişirme programı tutarsızlığı"
-#: builtin/index-pack.c:751 builtin/index-pack.c:757 builtin/index-pack.c:781
-#: builtin/index-pack.c:820 builtin/index-pack.c:829
+#: builtin/index-pack.c:754 builtin/index-pack.c:760 builtin/index-pack.c:784
+#: builtin/index-pack.c:823 builtin/index-pack.c:832
#, c-format
msgid "SHA1 COLLISION FOUND WITH %s !"
msgstr "%s İLE SHA1 ÇARPIŞMASI BULUNDU!"
-#: builtin/index-pack.c:754 builtin/pack-objects.c:292
-#: builtin/pack-objects.c:352 builtin/pack-objects.c:458
+#: builtin/index-pack.c:757 builtin/pack-objects.c:290
+#: builtin/pack-objects.c:350 builtin/pack-objects.c:456
#, c-format
msgid "unable to read %s"
msgstr "%s okunamıyor"
-#: builtin/index-pack.c:818
+#: builtin/index-pack.c:821
#, c-format
msgid "cannot read existing object info %s"
msgstr "mevcut %s nesne bilgisi okunamıyor"
-#: builtin/index-pack.c:826
+#: builtin/index-pack.c:829
#, c-format
msgid "cannot read existing object %s"
msgstr "mevcut %s nesnesi okunamıyor"
-#: builtin/index-pack.c:840
+#: builtin/index-pack.c:843
#, c-format
msgid "invalid blob object %s"
msgstr "geçersiz %s ikili nesnesi"
-#: builtin/index-pack.c:843 builtin/index-pack.c:862
+#: builtin/index-pack.c:846 builtin/index-pack.c:865
msgid "fsck error in packed object"
msgstr "paketlenmiş nesne içinde fsck hatası"
-#: builtin/index-pack.c:864
+#: builtin/index-pack.c:867
#, c-format
msgid "Not all child objects of %s are reachable"
msgstr "%s ögesinin tüm alt ögeleri ulaşılabilir değil"
-#: builtin/index-pack.c:925 builtin/index-pack.c:972
+#: builtin/index-pack.c:928 builtin/index-pack.c:975
msgid "failed to apply delta"
msgstr "delta uygulanamadı"
-#: builtin/index-pack.c:1156
+#: builtin/index-pack.c:1161
msgid "Receiving objects"
msgstr "Nesneler alınıyor"
-#: builtin/index-pack.c:1156
+#: builtin/index-pack.c:1161
msgid "Indexing objects"
msgstr "Nesneler indeksleniyor"
-#: builtin/index-pack.c:1190
+#: builtin/index-pack.c:1195
msgid "pack is corrupted (SHA1 mismatch)"
msgstr "paket hasar görmüş (SHA1 uyumsuzluğu)"
-#: builtin/index-pack.c:1195
+#: builtin/index-pack.c:1200
msgid "cannot fstat packfile"
msgstr "paket dosyası fstat yapılamıyor"
-#: builtin/index-pack.c:1198
+#: builtin/index-pack.c:1203
msgid "pack has junk at the end"
msgstr "paket sonunda döküntüler var"
-#: builtin/index-pack.c:1210
+#: builtin/index-pack.c:1215
msgid "confusion beyond insanity in parse_pack_objects()"
msgstr "parse_pack_objects() içindeki karmaşa akıl almaz düzeyde"
-#: builtin/index-pack.c:1233
+#: builtin/index-pack.c:1238
msgid "Resolving deltas"
msgstr "Deltalar çözülüyor"
-#: builtin/index-pack.c:1244 builtin/pack-objects.c:2905
+#: builtin/index-pack.c:1249 builtin/pack-objects.c:2913
#, c-format
msgid "unable to create thread: %s"
msgstr "iş parçacığı oluşturulamadı: %s"
-#: builtin/index-pack.c:1277
+#: builtin/index-pack.c:1282
msgid "confusion beyond insanity"
msgstr "karmaşa akıl almaz düzeyde"
-#: builtin/index-pack.c:1283
+#: builtin/index-pack.c:1288
#, c-format
msgid "completed with %d local object"
msgid_plural "completed with %d local objects"
msgstr[0] "%d yerel nesneyle tamamlandı"
msgstr[1] "%d yerel nesneyle tamamlandı"
-#: builtin/index-pack.c:1295
+#: builtin/index-pack.c:1300
#, c-format
msgid "Unexpected tail checksum for %s (disk corruption?)"
msgstr "%s için beklenmedik kuyruk sağlaması (disk hasarı?)"
-#: builtin/index-pack.c:1299
+#: builtin/index-pack.c:1304
#, c-format
msgid "pack has %d unresolved delta"
msgid_plural "pack has %d unresolved deltas"
msgstr[0] "paketin %d çözülmemiş deltası var"
msgstr[1] "paketin %d çözülmemiş deltası var"
-#: builtin/index-pack.c:1323
+#: builtin/index-pack.c:1328
#, c-format
msgid "unable to deflate appended object (%d)"
msgstr "iliştirilen nesne söndürülemedi (%d)"
-#: builtin/index-pack.c:1419
+#: builtin/index-pack.c:1423
#, c-format
msgid "local object %s is corrupt"
msgstr "yerel nesne %s hasarlı"
-#: builtin/index-pack.c:1440
+#: builtin/index-pack.c:1445
#, c-format
msgid "packfile name '%s' does not end with '.%s'"
msgstr "paket dosyası adı '%s', '.%s' ile bitmiyor"
-#: builtin/index-pack.c:1464
+#: builtin/index-pack.c:1469
#, c-format
msgid "cannot write %s file '%s'"
msgstr "%s dosyası '%s' yazılamıyor"
-#: builtin/index-pack.c:1472
+#: builtin/index-pack.c:1477
#, c-format
msgid "cannot close written %s file '%s'"
msgstr "yazılmış %s dosyası '%s' kapatılamıyor"
-#: builtin/index-pack.c:1489
+#: builtin/index-pack.c:1494
#, c-format
msgid "unable to rename temporary '*.%s' file to '%s'"
msgstr "geçici '*.%s' dosyası '%s' olarak yeniden adlandırılamıyor"
-#: builtin/index-pack.c:1514
+#: builtin/index-pack.c:1519
msgid "error while closing pack file"
msgstr "paket dosyası kapatılırken hata"
-#: builtin/index-pack.c:1573 builtin/pack-objects.c:3150
+#: builtin/index-pack.c:1578 builtin/pack-objects.c:3158
#, c-format
msgid "bad pack.indexversion=%<PRIu32>"
msgstr "hatalı pack.indexversion=%<PRIu32>"
-#: builtin/index-pack.c:1643
+#: builtin/index-pack.c:1648
#, c-format
msgid "Cannot open existing pack file '%s'"
msgstr "Mevcut paket dosyası '%s' açılamıyor"
-#: builtin/index-pack.c:1645
+#: builtin/index-pack.c:1650
#, 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:1693
+#: builtin/index-pack.c:1698
#, 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:1700
+#: builtin/index-pack.c:1705
#, 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:1742
+#: builtin/index-pack.c:1748
msgid "Cannot come back to cwd"
msgstr "Şu anki çalışma dizinine geri gelinemiyor"
-#: builtin/index-pack.c:1796 builtin/index-pack.c:1799
-#: builtin/index-pack.c:1819 builtin/index-pack.c:1823
+#: builtin/index-pack.c:1802 builtin/index-pack.c:1805
+#: builtin/index-pack.c:1825 builtin/index-pack.c:1829
#, c-format
msgid "bad %s"
msgstr "hatalı %s"
-#: builtin/index-pack.c:1829 builtin/init-db.c:379 builtin/init-db.c:614
+#: builtin/index-pack.c:1835 builtin/init-db.c:379 builtin/init-db.c:614
#, c-format
msgid "unknown hash algorithm '%s'"
msgstr "bilinmeyen sağlama algoritması '%s'"
-#: builtin/index-pack.c:1850
+#: builtin/index-pack.c:1856
msgid "--stdin requires a git repository"
msgstr "--stdin bir git dizini gerektirir"
-#: builtin/index-pack.c:1867
+#: builtin/index-pack.c:1873
msgid "--verify with no packfile name given"
msgstr "--verify ile bir paket dosyası adı verilmedi"
-#: builtin/index-pack.c:1933 builtin/unpack-objects.c:584
+#: builtin/index-pack.c:1939 builtin/unpack-objects.c:584
msgid "fsck error in pack objects"
msgstr "paket nesnelerinde fsck hatası"
@@ -17091,40 +17562,40 @@ msgstr "--trailer ile --only-input bir anlam ifade etmiyor"
msgid "no input file given for in-place editing"
msgstr "yerinde düzenleme için girdi dosyası verilmedi"
-#: builtin/log.c:59
+#: builtin/log.c:60
msgid "git log [<options>] [<revision-range>] [[--] <path>...]"
msgstr "git log [<seçenekler>] [<revizyon-erimi>] [[--] <yol>...]"
-#: builtin/log.c:60
+#: builtin/log.c:61
msgid "git show [<options>] <object>..."
msgstr "git show [<seçenekler>] <nesne>..."
-#: builtin/log.c:113
+#: builtin/log.c:114
#, c-format
msgid "invalid --decorate option: %s"
msgstr "geçersiz --decorate seçeneği: %s"
-#: builtin/log.c:180
+#: builtin/log.c:181
msgid "show source"
msgstr "kaynağı göster"
-#: builtin/log.c:181
+#: builtin/log.c:182
msgid "use mail map file"
msgstr "posta eşlem dosyasını kullan"
-#: builtin/log.c:184
+#: builtin/log.c:185
msgid "only decorate refs that match <pattern>"
msgstr "yalnızca <dizgi> ile eşleşen başvuruları süsle"
-#: builtin/log.c:186
+#: builtin/log.c:187
msgid "do not decorate refs that match <pattern>"
msgstr "<dizgi> ile eşleşen başvuruları süsleme"
-#: builtin/log.c:187
+#: builtin/log.c:188
msgid "decorate options"
msgstr "süsleme seçenekleri"
-#: builtin/log.c:190
+#: builtin/log.c:191
msgid ""
"trace the evolution of line range <start>,<end> or function :<funcname> in "
"<file>"
@@ -17132,89 +17603,93 @@ msgstr ""
"<dosya> içindeki <başlangıç>,<bitiş> satır eriminin veya :<işlevadı> "
"iÅŸlevinin evrimini izle"
-#: builtin/log.c:213
+#: builtin/log.c:214
msgid "-L<range>:<file> cannot be used with pathspec"
msgstr "-L<erim>:<dosya>, yol belirteci ile kullanılamıyor"
-#: builtin/log.c:321
+#: builtin/log.c:322
#, c-format
msgid "Final output: %d %s\n"
msgstr "Son çıktı: %d %s\n"
-#: builtin/log.c:586
+#: builtin/log.c:429
+msgid "unable to create temporary object directory"
+msgstr "geçici nesne dizini oluşturulamıyor"
+
+#: builtin/log.c:599
#, c-format
msgid "git show %s: bad file"
msgstr "git show %s: hatalı dosya"
-#: builtin/log.c:601 builtin/log.c:691
+#: builtin/log.c:614 builtin/log.c:706
#, c-format
msgid "could not read object %s"
msgstr "%s nesnesi okunamadı"
-#: builtin/log.c:716
+#: builtin/log.c:731
#, c-format
msgid "unknown type: %d"
msgstr "bilinmeyen tür: %d"
-#: builtin/log.c:861
+#: builtin/log.c:880
#, c-format
msgid "%s: invalid cover from description mode"
msgstr "%s: açıklama kipinden geçersiz kapak sayfası"
-#: builtin/log.c:868
+#: builtin/log.c:887
msgid "format.headers without value"
msgstr "format.headers deÄŸere iye deÄŸil"
-#: builtin/log.c:997
+#: builtin/log.c:1016
#, c-format
msgid "cannot open patch file %s"
msgstr "%s yama dosyası okunamıyor"
-#: builtin/log.c:1014
+#: builtin/log.c:1033
msgid "need exactly one range"
msgstr "bir tam erim gerekiyor"
-#: builtin/log.c:1024
+#: builtin/log.c:1043
msgid "not a range"
msgstr "bir erim deÄŸil"
-#: builtin/log.c:1188
+#: builtin/log.c:1207
msgid "cover letter needs email format"
msgstr "ön yazı için e-posta biçimi gerekli"
-#: builtin/log.c:1194
+#: builtin/log.c:1213
msgid "failed to create cover-letter file"
msgstr "cover-letter dosyası oluşturulamadı"
-#: builtin/log.c:1281
+#: builtin/log.c:1300
#, c-format
msgid "insane in-reply-to: %s"
msgstr "akıl almaz in-reply-to: %s"
-#: builtin/log.c:1308
+#: builtin/log.c:1327
msgid "git format-patch [<options>] [<since> | <revision-range>]"
msgstr "git format-patch [<seçenekler>] [<-beri> | <revizyon-erimi>]"
-#: builtin/log.c:1366
+#: builtin/log.c:1385
msgid "two output directories?"
msgstr "iki çıktı dizini?"
-#: builtin/log.c:1517 builtin/log.c:2344 builtin/log.c:2346 builtin/log.c:2358
+#: builtin/log.c:1536 builtin/log.c:2369 builtin/log.c:2371 builtin/log.c:2383
#, c-format
msgid "unknown commit %s"
msgstr "bilinmeyen iÅŸleme %s"
-#: builtin/log.c:1528 builtin/replace.c:58 builtin/replace.c:207
+#: builtin/log.c:1547 builtin/replace.c:58 builtin/replace.c:207
#: builtin/replace.c:210
#, c-format
msgid "failed to resolve '%s' as a valid ref"
msgstr "'%s' geçerli bir başvuru olarak çözülemedi"
-#: builtin/log.c:1537
+#: builtin/log.c:1556
msgid "could not find exact merge base"
msgstr "kesin birleştirme temeli bulunamadı"
-#: builtin/log.c:1547
+#: builtin/log.c:1566
msgid ""
"failed to get upstream, if you want to record base commit automatically,\n"
"please use git branch --set-upstream-to to track a remote branch.\n"
@@ -17225,274 +17700,278 @@ msgstr ""
"izleyin. Bunun dışında taban işlemesini kendiniz --base=<taban-işlemesi-no>\n"
"kullanarak el ile belirtebilirsiniz."
-#: builtin/log.c:1570
+#: builtin/log.c:1589
msgid "failed to find exact merge base"
msgstr "kesin birleştirme temeli bulunamadı"
-#: builtin/log.c:1587
+#: builtin/log.c:1606
msgid "base commit should be the ancestor of revision list"
msgstr "taban işlemesi revizyon listesinin atası olmalı"
-#: builtin/log.c:1597
+#: builtin/log.c:1616
msgid "base commit shouldn't be in revision list"
msgstr "taban işlemesi revizyon listesinde olmamalı"
-#: builtin/log.c:1655
+#: builtin/log.c:1674
msgid "cannot get patch id"
msgstr "yama numarası alınamıyor"
-#: builtin/log.c:1718
+#: builtin/log.c:1737
msgid "failed to infer range-diff origin of current series"
msgstr "geçerli dizinin range-diff kökeninden bir anlam çıkartılamadı"
-#: builtin/log.c:1720
+#: builtin/log.c:1739
#, c-format
msgid "using '%s' as range-diff origin of current series"
msgstr "geçerli dizinin range-diff kökeni olarak '%s' kullanılıyor"
-#: builtin/log.c:1764
+#: builtin/log.c:1783
msgid "use [PATCH n/m] even with a single patch"
msgstr "bir yamayla bile olsa [PATCH n/m] kullan"
-#: builtin/log.c:1767
+#: builtin/log.c:1786
msgid "use [PATCH] even with multiple patches"
msgstr "birden çok yama bile olsa [PATCH] kullan"
-#: builtin/log.c:1771
+#: builtin/log.c:1790
msgid "print patches to standard out"
msgstr "yamaları standart çıktıya yazdır"
-#: builtin/log.c:1773
+#: builtin/log.c:1792
msgid "generate a cover letter"
msgstr "bir ön yazı oluştur"
-#: builtin/log.c:1775
+#: builtin/log.c:1794
msgid "use simple number sequence for output file names"
msgstr "çıktı dosya adları için yalın sayı dizisi oluştur"
-#: builtin/log.c:1776
+#: builtin/log.c:1795
msgid "sfx"
msgstr "sonek"
-#: builtin/log.c:1777
+#: builtin/log.c:1796
msgid "use <sfx> instead of '.patch'"
msgstr "'.patch' yerine <sonek> kullan"
-#: builtin/log.c:1779
+#: builtin/log.c:1798
msgid "start numbering patches at <n> instead of 1"
msgstr "yamaları 1 yerine <n>'de numaralandırmaya başla"
-#: builtin/log.c:1780
+#: builtin/log.c:1799
msgid "reroll-count"
msgstr "reroll-count"
-#: builtin/log.c:1781
+#: builtin/log.c:1800
msgid "mark the series as Nth re-roll"
msgstr "diziyi n. deneme olarak imle"
-#: builtin/log.c:1783
+#: builtin/log.c:1802
msgid "max length of output filename"
msgstr "çıktı dosya adının olabilecek en çok uzunluğu"
-#: builtin/log.c:1785
+#: builtin/log.c:1804
msgid "use [RFC PATCH] instead of [PATCH]"
msgstr "[PATCH] yerine [RFC PATCH] kullan"
-#: builtin/log.c:1788
+#: builtin/log.c:1807
msgid "cover-from-description-mode"
msgstr "açıklama kipinden kapak sayfası kipi"
-#: builtin/log.c:1789
+#: builtin/log.c:1808
msgid "generate parts of a cover letter based on a branch's description"
msgstr "ön yazının bazı kısımlarını dalın açıklamasından oluştur"
-#: builtin/log.c:1791
+#: builtin/log.c:1810
msgid "use [<prefix>] instead of [PATCH]"
msgstr "[PATCH] yerine [<önek>] kullan"
-#: builtin/log.c:1794
+#: builtin/log.c:1813
msgid "store resulting files in <dir>"
msgstr "ortaya çıkan dosyaları <dizin>'de depola"
-#: builtin/log.c:1797
+#: builtin/log.c:1816
msgid "don't strip/add [PATCH]"
msgstr "[PATCH]'i soyma/ekleme"
-#: builtin/log.c:1800
+#: builtin/log.c:1819
msgid "don't output binary diffs"
msgstr "ikili diff'leri çıktı verme"
-#: builtin/log.c:1802
+#: builtin/log.c:1821
msgid "output all-zero hash in From header"
msgstr "From başlığında tümü sıfırdan oluşan sağlama çıktısı ver"
-#: builtin/log.c:1804
+#: builtin/log.c:1823
msgid "don't include a patch matching a commit upstream"
msgstr "üstkaynaktaki bir işleme ile eşleşen bir yamayı içerme"
-#: builtin/log.c:1806
+#: builtin/log.c:1825
msgid "show patch format instead of default (patch + stat)"
msgstr "öntanımlı yerine yama biçimini göster (patch + stat)"
-#: builtin/log.c:1808
+#: builtin/log.c:1827
msgid "Messaging"
msgstr "Ä°letileÅŸme"
-#: builtin/log.c:1809
+#: builtin/log.c:1828
msgid "header"
msgstr "üstbilgi"
-#: builtin/log.c:1810
+#: builtin/log.c:1829
msgid "add email header"
msgstr "e-posta üstbilgisi ekle"
-#: builtin/log.c:1811 builtin/log.c:1812
+#: builtin/log.c:1830 builtin/log.c:1831
msgid "email"
msgstr "e-posta"
-#: builtin/log.c:1811
+#: builtin/log.c:1830
msgid "add To: header"
msgstr "To: üstbilgisi ekle"
-#: builtin/log.c:1812
+#: builtin/log.c:1831
msgid "add Cc: header"
msgstr "Cc: üstbilgisi ekle"
-#: builtin/log.c:1813
+#: builtin/log.c:1832
msgid "ident"
msgstr "tanımlayıcı"
-#: builtin/log.c:1814
+#: builtin/log.c:1833
msgid "set From address to <ident> (or committer ident if absent)"
msgstr ""
"From adresini <tanımlayıcı> olarak ayarla (veya yoksa işleyici tanımlayıcısı)"
-#: builtin/log.c:1816
+#: builtin/log.c:1835
msgid "message-id"
msgstr "ileti no"
-#: builtin/log.c:1817
+#: builtin/log.c:1836
msgid "make first mail a reply to <message-id>"
msgstr "ilk postayı <ileti no>'ya bir yanıt yap"
-#: builtin/log.c:1818 builtin/log.c:1821
+#: builtin/log.c:1837 builtin/log.c:1840
msgid "boundary"
msgstr "sınır"
-#: builtin/log.c:1819
+#: builtin/log.c:1838
msgid "attach the patch"
msgstr "yamayı ekle"
-#: builtin/log.c:1822
+#: builtin/log.c:1841
msgid "inline the patch"
msgstr "yamayı iletiye koy"
-#: builtin/log.c:1826
+#: builtin/log.c:1845
msgid "enable message threading, styles: shallow, deep"
msgstr "iletileri kataloglamayı etkinleştir, stiller: shallow, deep"
-#: builtin/log.c:1828
+#: builtin/log.c:1847
msgid "signature"
msgstr "imza"
-#: builtin/log.c:1829
+#: builtin/log.c:1848
msgid "add a signature"
msgstr "imza ekle"
-#: builtin/log.c:1830
+#: builtin/log.c:1849
msgid "base-commit"
msgstr "taban iÅŸleme"
-#: builtin/log.c:1831
+#: builtin/log.c:1850
msgid "add prerequisite tree info to the patch series"
msgstr "yama dizisine önkoşul ağaç bilgisini ekle"
-#: builtin/log.c:1834
+#: builtin/log.c:1853
msgid "add a signature from a file"
msgstr "dosyadan bir imza ekle"
-#: builtin/log.c:1835
+#: builtin/log.c:1854
msgid "don't print the patch filenames"
msgstr "yama dosya adlarını yazdırma"
-#: builtin/log.c:1837
+#: builtin/log.c:1856
msgid "show progress while generating patches"
msgstr "yamalar oluşturulurken ilerlemeyi göster"
-#: builtin/log.c:1839
+#: builtin/log.c:1858
msgid "show changes against <rev> in cover letter or single patch"
msgstr "<rev> karşısındaki değişiklikleri ön yazıda veya tek bir yamada göster"
-#: builtin/log.c:1842
+#: builtin/log.c:1861
msgid "show changes against <refspec> in cover letter or single patch"
msgstr ""
"<bşvr-blrtç> karşısındaki değişiklikleri ön yazıda veya tek bir yamada göster"
-#: builtin/log.c:1844 builtin/range-diff.c:28
+#: builtin/log.c:1863 builtin/range-diff.c:28
msgid "percentage by which creation is weighted"
msgstr "oluşumun tartıldığı yüzde"
-#: builtin/log.c:1931
+#: builtin/log.c:1953
#, c-format
msgid "invalid ident line: %s"
msgstr "geçersiz tanımlayıcı satırı: %s"
-#: builtin/log.c:1956
+#: builtin/log.c:1978
msgid "--name-only does not make sense"
msgstr "--name-only bir anlam ifade etmiyor"
-#: builtin/log.c:1958
+#: builtin/log.c:1980
msgid "--name-status does not make sense"
msgstr "--name-status bir anlam ifade etmiyor"
-#: builtin/log.c:1960
+#: builtin/log.c:1982
msgid "--check does not make sense"
msgstr "--check bir anlam ifade etmiyor"
-#: builtin/log.c:2104
+#: builtin/log.c:1984
+msgid "--remerge-diff does not make sense"
+msgstr "--remerge-diff bir anlam ifade etmiyor"
+
+#: builtin/log.c:2129
msgid "--interdiff requires --cover-letter or single patch"
msgstr "--interdiff, --cover-letter veya tek yama gerektiriyor"
-#: builtin/log.c:2108
+#: builtin/log.c:2133
msgid "Interdiff:"
msgstr "Interdiff:"
-#: builtin/log.c:2109
+#: builtin/log.c:2134
#, c-format
msgid "Interdiff against v%d:"
msgstr "Interdiff v%d karşısında:"
-#: builtin/log.c:2119
+#: builtin/log.c:2144
msgid "--range-diff requires --cover-letter or single patch"
msgstr "--range-diff, --cover-letter veya tek yama gerektiriyor"
-#: builtin/log.c:2127
+#: builtin/log.c:2152
msgid "Range-diff:"
msgstr "Range-diff:"
-#: builtin/log.c:2128
+#: builtin/log.c:2153
#, c-format
msgid "Range-diff against v%d:"
msgstr "Range-diff v%d karşısında:"
-#: builtin/log.c:2139
+#: builtin/log.c:2164
#, c-format
msgid "unable to read signature file '%s'"
msgstr "'%s' imza dosyası okunamıyor"
-#: builtin/log.c:2175
+#: builtin/log.c:2200
msgid "Generating patches"
msgstr "Yamalar oluÅŸturuluyor"
-#: builtin/log.c:2219
+#: builtin/log.c:2244
msgid "failed to create output files"
msgstr "çıktı dosyaları oluşturulamadı"
-#: builtin/log.c:2279
+#: builtin/log.c:2304
msgid "git cherry [-v] [<upstream> [<head> [<limit>]]]"
msgstr "git cherry [-v] [<üstkaynak> [<dal-ucu> [<sınır>]]]"
-#: builtin/log.c:2333
+#: builtin/log.c:2358
#, c-format
msgid ""
"Could not find a tracked remote branch, please specify <upstream> manually.\n"
@@ -17586,10 +18065,6 @@ msgstr "standart git hariç tutmalarını ekle"
msgid "make the output relative to the project top directory"
msgstr "çıktıyı en üst proje dizinine göreceli olarak yap"
-#: builtin/ls-files.c:667
-msgid "recurse through submodules"
-msgstr "altmodüller içinden özyinele"
-
#: builtin/ls-files.c:669
msgid "if any <file> is not in the index, treat this as an error"
msgstr "eğer bir <dosya> indekste değilse bunu bir hata olarak gör"
@@ -17628,7 +18103,7 @@ msgstr ""
msgid "do not print remote URL"
msgstr "uzak konum URL'sini yazdırma"
-#: builtin/ls-remote.c:61 builtin/ls-remote.c:63 builtin/rebase.c:1103
+#: builtin/ls-remote.c:61 builtin/ls-remote.c:63 builtin/rebase.c:1131
msgid "exec"
msgstr "çalıştır"
@@ -17660,42 +18135,70 @@ msgstr "eşleşen başvuru bulunamazsa 2 numaralı çıkış koduyla çık"
msgid "show underlying ref in addition to the object pointed by it"
msgstr "işaret ettiği nesneye ek olarak altında yatan başvuruyu göster"
-#: builtin/ls-tree.c:30
+#: builtin/ls-tree.c:36
msgid "git ls-tree [<options>] <tree-ish> [<path>...]"
msgstr "git ls-tree [<seçenekler>] <ağacımsı> [<yol>...]"
-#: builtin/ls-tree.c:128
+#: builtin/ls-tree.c:54
+#, c-format
+msgid "could not get object info about '%s'"
+msgstr "'%s' hakkında nesne bilgisi alınamadı"
+
+#: builtin/ls-tree.c:79
+#, c-format
+msgid "bad ls-tree format: element '%s' does not start with '('"
+msgstr "hatalı ls-tree biçimi: '%s' ögesi '(' ile başlamıyor"
+
+#: builtin/ls-tree.c:83
+#, c-format
+msgid "bad ls-tree format: element '%s' does not end in ')'"
+msgstr "hatalı ls-tree biçimi: '%s' ögesi ')' ile sonlanmıyor"
+
+#: builtin/ls-tree.c:109
+#, c-format
+msgid "bad ls-tree format: %%%.*s"
+msgstr "hatalı ls-tree biçimi: %%%.*s"
+
+#: builtin/ls-tree.c:336
msgid "only show trees"
msgstr "yalnızca ağaçları göster"
-#: builtin/ls-tree.c:130
+#: builtin/ls-tree.c:338
msgid "recurse into subtrees"
msgstr "altağaçlara özyinele"
-#: builtin/ls-tree.c:132
+#: builtin/ls-tree.c:340
msgid "show trees when recursing"
msgstr "özyinelerken ağaçları göster"
-#: builtin/ls-tree.c:135
+#: builtin/ls-tree.c:343
msgid "terminate entries with NUL byte"
msgstr "girdileri NUL baytı ile sonlandır"
-#: builtin/ls-tree.c:136
+#: builtin/ls-tree.c:344
msgid "include object size"
msgstr "nesne boyutunu içer"
-#: builtin/ls-tree.c:138 builtin/ls-tree.c:140
+#: builtin/ls-tree.c:346 builtin/ls-tree.c:348
msgid "list only filenames"
msgstr "yalnızca dosya adlarını listele"
-#: builtin/ls-tree.c:143
+#: builtin/ls-tree.c:350
+msgid "list only objects"
+msgstr "yalnızca nesneleri listele"
+
+#: builtin/ls-tree.c:353
msgid "use full path names"
msgstr "tam yol adlarını kullan"
-#: builtin/ls-tree.c:145
+#: builtin/ls-tree.c:355
msgid "list entire tree; not just current directory (implies --full-name)"
msgstr "yalnızca geçerli dizini değil tüm ağacı listele (--full-name ima eder)"
+#: builtin/ls-tree.c:391
+msgid "--format can't be combined with other format-altering options"
+msgstr "--format, diğer format-altering seçenekleriyle birlikte kullanılamaz"
+
#. TRANSLATORS: keep <> in "<" mail ">" info.
#: builtin/mailinfo.c:14
msgid "git mailinfo [<options>] <msg> <patch> < mail >info"
@@ -17745,7 +18248,11 @@ msgstr "alıntılanmış CR bulunduğu zaman yapılacak eylem"
msgid "use headers in message's body"
msgstr "ileti gövdesinde üstbilgi kullan"
-#: builtin/mailsplit.c:239
+#: builtin/mailsplit.c:227
+msgid "reading patches from stdin/tty..."
+msgstr "yamalar stdin/tty'den okunuyor..."
+
+#: builtin/mailsplit.c:242
#, c-format
msgid "empty mbox: '%s'"
msgstr "boÅŸ mbox: '%s'"
@@ -17770,23 +18277,23 @@ msgstr "git merge-base --is-ancestor <iÅŸleme> <iÅŸleme>"
msgid "git merge-base --fork-point <ref> [<commit>]"
msgstr "git merge-base --fork-point <baÅŸvuru> [<iÅŸleme>]"
-#: builtin/merge-base.c:143
+#: builtin/merge-base.c:144
msgid "output all common ancestors"
msgstr "tüm ortak ataları çıktı ver"
-#: builtin/merge-base.c:145
+#: builtin/merge-base.c:146
msgid "find ancestors for a single n-way merge"
msgstr "tek bir n yönlü birleştirme için ataları bul"
-#: builtin/merge-base.c:147
+#: builtin/merge-base.c:148
msgid "list revs not reachable from others"
msgstr "başkaları tarafından ulaşılabilir revizyonları listele"
-#: builtin/merge-base.c:149
+#: builtin/merge-base.c:150
msgid "is the first one ancestor of the other?"
msgstr "ilki diğerlerinin atası mı?"
-#: builtin/merge-base.c:151
+#: builtin/merge-base.c:152
msgid "find where <commit> forked from reflog of <ref>"
msgstr "<işleme>'nin nerede <başvuru>'nun günlüğünden çatallandığını bul"
@@ -17935,7 +18442,7 @@ msgid "verify that the named commit has a valid GPG signature"
msgstr "adı verilen işlemenin geçerli bir GPG imzası olduğunu doğrula"
#: builtin/merge.c:280 builtin/notes.c:785 builtin/pull.c:172
-#: builtin/rebase.c:1117 builtin/revert.c:114
+#: builtin/rebase.c:1145 builtin/revert.c:114
msgid "strategy"
msgstr "strateji"
@@ -18068,72 +18575,72 @@ msgstr ""
"'%c' ile başlayan satırlar yok sayılacaktır. Boş bir ileti işlemeyi\n"
"iptal eder.\n"
-#: builtin/merge.c:894
+#: builtin/merge.c:900
msgid "Empty commit message."
msgstr "BoÅŸ iÅŸleme iletisi."
-#: builtin/merge.c:909
+#: builtin/merge.c:915
#, c-format
msgid "Wonderful.\n"
msgstr "Harika.\n"
-#: builtin/merge.c:970
+#: builtin/merge.c:976
#, c-format
msgid "Automatic merge failed; fix conflicts and then commit the result.\n"
msgstr "Otomatik birleştirme başarısız; çakışmaları çözün ve sonucu işleyin.\n"
-#: builtin/merge.c:1009
+#: builtin/merge.c:1015
msgid "No current branch."
msgstr "Geçerli dal yok."
-#: builtin/merge.c:1011
+#: builtin/merge.c:1017
msgid "No remote for the current branch."
msgstr "Geçerli dal için uzak konum yok."
-#: builtin/merge.c:1013
+#: builtin/merge.c:1019
msgid "No default upstream defined for the current branch."
msgstr "Geçerli dal için öntanımlı üstkaynak tanımlanmamış."
-#: builtin/merge.c:1018
+#: builtin/merge.c:1024
#, c-format
msgid "No remote-tracking branch for %s from %s"
msgstr "%s için %s konumundan uzak izleme dalı yok"
-#: builtin/merge.c:1075
+#: builtin/merge.c:1081
#, c-format
msgid "Bad value '%s' in environment '%s'"
msgstr "Hatalı değer '%s', '%s' ortamında"
-#: builtin/merge.c:1177
+#: builtin/merge.c:1183
#, c-format
msgid "not something we can merge in %s: %s"
msgstr "%s içinde birleştirebileceğimiz bir şey değil: %s"
-#: builtin/merge.c:1211
+#: builtin/merge.c:1217
msgid "not something we can merge"
msgstr "birleÅŸtirebileceÄŸimiz bir ÅŸey deÄŸil"
-#: builtin/merge.c:1324
+#: builtin/merge.c:1330
msgid "--abort expects no arguments"
msgstr "--abort bir argüman beklemez"
-#: builtin/merge.c:1328
+#: builtin/merge.c:1334
msgid "There is no merge to abort (MERGE_HEAD missing)."
msgstr "Ä°ptal edilecek bir birleÅŸtirme yok (MERGE_HEAD eksik)."
-#: builtin/merge.c:1346
+#: builtin/merge.c:1352
msgid "--quit expects no arguments"
msgstr "--quit bir argüman beklemez"
-#: builtin/merge.c:1359
+#: builtin/merge.c:1365
msgid "--continue expects no arguments"
msgstr "--continue bir argüman beklemez"
-#: builtin/merge.c:1363
+#: builtin/merge.c:1369
msgid "There is no merge in progress (MERGE_HEAD missing)."
msgstr "Ä°lerlemekte olan bir birleÅŸtirme yok (MERGE_HEAD eksik)."
-#: builtin/merge.c:1379
+#: builtin/merge.c:1385
msgid ""
"You have not concluded your merge (MERGE_HEAD exists).\n"
"Please, commit your changes before you merge."
@@ -18141,7 +18648,7 @@ msgstr ""
"Birleştirmenizi sonuçlandırmadınız (MERGE_HEAD mevcut).\n"
"Lütfen birleştirmeden önce değişikliklerinizi işleyin."
-#: builtin/merge.c:1386
+#: builtin/merge.c:1392
msgid ""
"You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists).\n"
"Please, commit your changes before you merge."
@@ -18149,86 +18656,82 @@ msgstr ""
"Seç-al'ınızı sonuçlandırmadınız (CHERRY_PICK_HEAD mevcut).\n"
"Lütfen birleştirmeden önce değişikliklerinizi işleyin."
-#: builtin/merge.c:1389
+#: builtin/merge.c:1395
msgid "You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists)."
msgstr "Seç-al'ınızı sonuçlandırmadınız (CHERRY_PICK_HEAD mevcut)."
-#: builtin/merge.c:1421
+#: builtin/merge.c:1427
msgid "No commit specified and merge.defaultToUpstream not set."
msgstr "Belirtilen bir işleme yok ve merge.defaultToUpstream ayarlanmamış."
-#: builtin/merge.c:1438
+#: builtin/merge.c:1444
msgid "Squash commit into empty head not supported yet"
msgstr "İşlemeyi boş dal ucuna tıkıştırma henüz desteklenmiyor"
-#: builtin/merge.c:1440
+#: builtin/merge.c:1446
msgid "Non-fast-forward commit does not make sense into an empty head"
msgstr ""
"İleri sarım olmayan işlemeyi boş dal ucuna yapmak bir anlam ifade etmiyor"
-#: builtin/merge.c:1445
+#: builtin/merge.c:1451
#, c-format
msgid "%s - not something we can merge"
msgstr "%s - birleÅŸtirebileceÄŸimiz bir ÅŸey deÄŸil"
-#: builtin/merge.c:1447
+#: builtin/merge.c:1453
msgid "Can merge only exactly one commit into empty head"
msgstr "Boş dal ucuna tam olarak yalnızca bir işleme birleştirilebilir"
-#: builtin/merge.c:1534
+#: builtin/merge.c:1540
msgid "refusing to merge unrelated histories"
msgstr "birbiriyle ilişkisi olmayan geçmişleri birleştirme reddediliyor"
-#: builtin/merge.c:1553
+#: builtin/merge.c:1559
#, c-format
msgid "Updating %s..%s\n"
msgstr "Güncelleniyor: %s..%s\n"
-#: builtin/merge.c:1601
+#: builtin/merge.c:1606
#, c-format
msgid "Trying really trivial in-index merge...\n"
msgstr "Gerçekten önemsiz indeks içi birleştirme deneniyor...\n"
-#: builtin/merge.c:1608
+#: builtin/merge.c:1613
#, c-format
msgid "Nope.\n"
msgstr "Yok.\n"
-#: builtin/merge.c:1667 builtin/merge.c:1733
+#: builtin/merge.c:1671 builtin/merge.c:1737
#, c-format
msgid "Rewinding the tree to pristine...\n"
msgstr "Ağaç bozulmamış durumuna geri sarılıyor...\n"
-#: builtin/merge.c:1671
+#: builtin/merge.c:1675
#, c-format
msgid "Trying merge strategy %s...\n"
msgstr "%s birleÅŸtirme stratejisi deneniyor...\n"
-#: builtin/merge.c:1723
+#: builtin/merge.c:1727
#, c-format
msgid "No merge strategy handled the merge.\n"
msgstr "Birleştirmeyi hiçbir birleştirme stratejisi işlemedi\n"
-#: builtin/merge.c:1725
+#: builtin/merge.c:1729
#, c-format
msgid "Merge with strategy %s failed.\n"
msgstr "%s stratejisi ile birleştirme başarısız oldu.\n"
-#: builtin/merge.c:1735
+#: builtin/merge.c:1739
#, c-format
msgid "Using the %s strategy to prepare resolving by hand.\n"
msgstr "El ile çözümü hazırlamak için %s stratejisi kullanılıyor.\n"
-#: builtin/merge.c:1749
+#: builtin/merge.c:1753
#, c-format
msgid "Automatic merge went well; stopped before committing as requested\n"
msgstr ""
"Otomatik birleştirme iyi geçti; istendiği üzere gönderme öncesinde durdu.\n"
-#: builtin/mktag.c:10
-msgid "git mktag"
-msgstr "git mktag"
-
#: builtin/mktag.c:27
#, c-format
msgid "warning: tag input does not pass fsck: %s"
@@ -18254,22 +18757,18 @@ msgstr "etiketlenmiş nesne '%s' okunamadı"
msgid "object '%s' tagged as '%s', but is a '%s' type"
msgstr "'%s' nesnesi '%s' olarak etiketlenmiş; ancak bir '%s' türü"
-#: builtin/mktag.c:98
+#: builtin/mktag.c:97
msgid "tag on stdin did not pass our strict fsck check"
msgstr "stdin üzerindeki etiket bizim sıkı fsck denetimimizi geçemedi"
-#: builtin/mktag.c:101
+#: builtin/mktag.c:100
msgid "tag on stdin did not refer to a valid object"
msgstr "stdin üzerindeki etiket geçerli bir nesneye başvurmuyor"
-#: builtin/mktag.c:104 builtin/tag.c:242
+#: builtin/mktag.c:103 builtin/tag.c:243
msgid "unable to write tag file"
msgstr "etiket dosyası yazılamıyor"
-#: builtin/mktree.c:66
-msgid "git mktree [-z] [--missing] [--batch]"
-msgstr "git mktree [-z] [--missing] [--batch]"
-
#: builtin/mktree.c:154
msgid "input is NUL terminated"
msgstr "girdi NUL ile sonlandırıldı"
@@ -18427,52 +18926,56 @@ msgstr "%s, kaynak=%s, hedef:%s"
msgid "Renaming %s to %s\n"
msgstr "%s, %s olarak yeniden adlandırılıyor\n"
-#: builtin/mv.c:314 builtin/remote.c:790 builtin/repack.c:857
+#: builtin/mv.c:314 builtin/remote.c:812 builtin/repack.c:861
#, c-format
msgid "renaming '%s' failed"
msgstr "'%s' yeniden adlandırılamadı"
-#: builtin/name-rev.c:474
+#: builtin/name-rev.c:524
msgid "git name-rev [<options>] <commit>..."
msgstr "git name-rev [<seçenekler>] <işleme>..."
-#: builtin/name-rev.c:475
+#: builtin/name-rev.c:525
msgid "git name-rev [<options>] --all"
msgstr "git name-rev [<seçenekler>] --all"
-#: builtin/name-rev.c:476
-msgid "git name-rev [<options>] --stdin"
-msgstr "git name-rev [<seçenekler>] --stdin"
+#: builtin/name-rev.c:526
+msgid "git name-rev [<options>] --annotate-stdin"
+msgstr "git name-rev [<seçenekler>] --annotate-stdin"
-#: builtin/name-rev.c:533
+#: builtin/name-rev.c:583
msgid "print only ref-based names (no object names)"
msgstr "yalnızca başvuru tabanlı adları yazdır (nesne adı yok)"
-#: builtin/name-rev.c:534
+#: builtin/name-rev.c:584
msgid "only use tags to name the commits"
msgstr "işlemeleri adlandırmak için yalnızca etiketleri kullan"
-#: builtin/name-rev.c:536
+#: builtin/name-rev.c:586
msgid "only use refs matching <pattern>"
msgstr "yalnızca <dizgi> ile eşleşen başvuruları kullan"
-#: builtin/name-rev.c:538
+#: builtin/name-rev.c:588
msgid "ignore refs matching <pattern>"
msgstr "<dizgi> ile eşleşen başvuruları yok say"
-#: builtin/name-rev.c:540
+#: builtin/name-rev.c:590
msgid "list all commits reachable from all refs"
msgstr "tüm başvurulardan ulaşılabilir olan tüm işlemeleri listele"
-#: builtin/name-rev.c:541
-msgid "read from stdin"
-msgstr "stdin'den oku"
+#: builtin/name-rev.c:591
+msgid "deprecated: use annotate-stdin instead"
+msgstr "kullanılmıyor: Yerine annotate-stdin kullanın"
+
+#: builtin/name-rev.c:592
+msgid "annotate text from stdin"
+msgstr "metne stdin'den açıklama ekle"
-#: builtin/name-rev.c:542
+#: builtin/name-rev.c:593
msgid "allow to print `undefined` names (default)"
msgstr "'tanımlanmayan' adların yazdırılmasına izin ver (öntanımlı)"
-#: builtin/name-rev.c:548
+#: builtin/name-rev.c:599
msgid "dereference tags in the input (internal use)"
msgstr "girdide etiketlerin başvurularını kaldır (iç kullanım)"
@@ -18514,14 +19017,6 @@ msgid ""
msgstr ""
"git notes [--ref <not-bÅŸvr>] merge [-v | -q] [-s <strateji>] <not-bÅŸvr>"
-#: builtin/notes.c:35
-msgid "git notes merge --commit [-v | -q]"
-msgstr "git notes merge --commit [-v | -q]"
-
-#: builtin/notes.c:36
-msgid "git notes merge --abort [-v | -q]"
-msgstr "git notes merge --abort [-v | -q]"
-
#: builtin/notes.c:37
msgid "git notes [--ref <notes-ref>] remove [<object>...]"
msgstr "git notes [--ref <not-bÅŸvr>] remove [<nesne>...]"
@@ -18582,10 +19077,6 @@ msgstr "git notes remove [<nesne>]"
msgid "git notes prune [<options>]"
msgstr "git notes prune [<seçenekler>]"
-#: builtin/notes.c:92
-msgid "git notes get-ref"
-msgstr "git notes get-ref"
-
#: builtin/notes.c:97
msgid "Write/edit the notes for the following object:"
msgstr "Aşağıdaki nesneler için not yaz/düzenle:"
@@ -18617,7 +19108,7 @@ msgstr "not nesnesi yazılamıyor"
msgid "the note contents have been left in %s"
msgstr "not içeriği %s içinde bırakıldı"
-#: builtin/notes.c:240 builtin/tag.c:581
+#: builtin/notes.c:240 builtin/tag.c:582
#, c-format
msgid "could not open or read '%s'"
msgstr "'%s' açılamadı veya okunamadı"
@@ -18657,13 +19148,6 @@ msgstr "notlar '%s' konumundan '%s' konumuna kopyalanamadı"
msgid "refusing to %s notes in %s (outside of refs/notes/)"
msgstr "notları %s yapma (%s içinde) reddediliyor (refs/notes/ dışında)"
-#: builtin/notes.c:374 builtin/notes.c:429 builtin/notes.c:507
-#: builtin/notes.c:519 builtin/notes.c:596 builtin/notes.c:663
-#: builtin/notes.c:813 builtin/notes.c:965 builtin/notes.c:987
-#: builtin/prune-packed.c:25 builtin/receive-pack.c:2487 builtin/tag.c:591
-msgid "too many arguments"
-msgstr "çok fazla argüman"
-
#: builtin/notes.c:387 builtin/notes.c:676
#, c-format
msgid "no note found for object %s."
@@ -18850,7 +19334,7 @@ msgstr ""
"çözün ve sonucu 'git notes merge --commit' ile işleyin. Birleştirmeyi iptal "
"etmek isterseniz 'git notes merge --abort' kullanarak bunu yapabilirsiniz.\n"
-#: builtin/notes.c:899 builtin/tag.c:594
+#: builtin/notes.c:899 builtin/tag.c:595
#, c-format
msgid "Failed to resolve '%s' as a valid ref."
msgstr "'%s' geçerli bir başvuru olarak çözülemiyor"
@@ -18868,7 +19352,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:956 builtin/prune.c:144 builtin/worktree.c:147
+#: builtin/notes.c:956 builtin/prune.c:144 builtin/worktree.c:148
msgid "do not remove, show only"
msgstr "kaldırma, yalnızca göster"
@@ -18884,7 +19368,7 @@ msgstr "not baÅŸvurusu"
msgid "use notes from <notes-ref>"
msgstr "notları <not-bşvr>'ndan kullan"
-#: builtin/notes.c:1036 builtin/stash.c:1818
+#: builtin/notes.c:1036 builtin/stash.c:1802
#, c-format
msgid "unknown subcommand: %s"
msgstr "bilinmeyen altkomut: %s"
@@ -18902,7 +19386,7 @@ msgid ""
msgstr ""
"git pack-objects [<sçnklr>...] <base-name> [< <bşvr-liste> | < <nesne-liste>]"
-#: builtin/pack-objects.c:572
+#: builtin/pack-objects.c:570
#, c-format
msgid ""
"write_reuse_object: could not locate %s, expected at offset %<PRIuMAX> in "
@@ -18911,112 +19395,112 @@ msgstr ""
"write_reuse_object: %s bulunamıyor, %<PRIuMAX> ofsetinde bekleniyordu (%s "
"paketinde)"
-#: builtin/pack-objects.c:580
+#: builtin/pack-objects.c:578
#, c-format
msgid "bad packed object CRC for %s"
msgstr "%s için hatalı paketlenmiş nesne CRC'si"
-#: builtin/pack-objects.c:591
+#: builtin/pack-objects.c:589
#, c-format
msgid "corrupt packed object for %s"
msgstr "%s için hasar görmüş paketlenmiş nesne"
-#: builtin/pack-objects.c:722
+#: builtin/pack-objects.c:720
#, c-format
msgid "recursive delta detected for object %s"
msgstr "%s nesnesi için özyineli delta algılandı"
-#: builtin/pack-objects.c:941
+#: builtin/pack-objects.c:939
#, c-format
msgid "ordered %u objects, expected %<PRIu32>"
msgstr "%u nesne sipariÅŸ verildi, %<PRIu32> bekleniyordu"
-#: builtin/pack-objects.c:1036
+#: builtin/pack-objects.c:1034
#, c-format
msgid "expected object at offset %<PRIuMAX> in pack %s"
msgstr "ÅŸu paketin %<PRIuMAX> ofsetinde nesne bekleniyordu: %s"
-#: builtin/pack-objects.c:1160
+#: builtin/pack-objects.c:1158
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:1173
+#: builtin/pack-objects.c:1171
msgid "Writing objects"
msgstr "Nesneler yazılıyor"
-#: builtin/pack-objects.c:1235 builtin/update-index.c:90
+#: builtin/pack-objects.c:1243 builtin/update-index.c:90
#, c-format
msgid "failed to stat %s"
msgstr "%s bilgileri alınamıyor"
-#: builtin/pack-objects.c:1268
+#: builtin/pack-objects.c:1276
msgid "failed to write bitmap index"
msgstr "biteşlem indeksi yazılamadı"
-#: builtin/pack-objects.c:1294
+#: builtin/pack-objects.c:1302
#, c-format
msgid "wrote %<PRIu32> objects while expecting %<PRIu32>"
msgstr "%<PRIu32> nesne yazıldı (%<PRIu32> bekleniyordu)"
-#: builtin/pack-objects.c:1536
+#: builtin/pack-objects.c:1544
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:1984
+#: builtin/pack-objects.c:1992
#, 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:1993
+#: builtin/pack-objects.c:2001
#, 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:2274
+#: builtin/pack-objects.c:2282
msgid "Counting objects"
msgstr "Nesneler sayılıyor"
-#: builtin/pack-objects.c:2439
+#: builtin/pack-objects.c:2447
#, c-format
msgid "unable to parse object header of %s"
msgstr "%s nesne üstbilgisi ayrıştırılamıyor"
-#: builtin/pack-objects.c:2509 builtin/pack-objects.c:2525
-#: builtin/pack-objects.c:2535
+#: builtin/pack-objects.c:2517 builtin/pack-objects.c:2533
+#: builtin/pack-objects.c:2543
#, c-format
msgid "object %s cannot be read"
msgstr "%s nesnesi okunamıyor"
-#: builtin/pack-objects.c:2512 builtin/pack-objects.c:2539
+#: builtin/pack-objects.c:2520 builtin/pack-objects.c:2547
#, 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:2549
+#: builtin/pack-objects.c:2557
msgid "suboptimal pack - out of memory"
msgstr "standart altı paket - bellek yetersiz"
-#: builtin/pack-objects.c:2864
+#: builtin/pack-objects.c:2872
#, 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:3003
+#: builtin/pack-objects.c:3011
#, c-format
msgid "unable to pack objects reachable from tag %s"
msgstr "%s etiketinden ulaşılabilir nesneler paketlenemiyor"
-#: builtin/pack-objects.c:3089
+#: builtin/pack-objects.c:3097
msgid "Compressing objects"
msgstr "Nesneler sıkıştırılıyor"
-#: builtin/pack-objects.c:3095
+#: builtin/pack-objects.c:3103
msgid "inconsistency with delta count"
msgstr "delta sayımında tutarsızlık"
-#: builtin/pack-objects.c:3174
+#: builtin/pack-objects.c:3182
#, c-format
msgid ""
"value of uploadpack.blobpackfileuri must be of the form '<object-hash> <pack-"
@@ -19025,7 +19509,7 @@ msgstr ""
"uploadpack.blobpackfileuri değeri '<nesne-sağlaması> <paket-sağlaması> <uri> "
"biçiminde olmalıdır ('%s' alındı)"
-#: builtin/pack-objects.c:3177
+#: builtin/pack-objects.c:3185
#, c-format
msgid ""
"object already configured in another uploadpack.blobpackfileuri (got '%s')"
@@ -19033,18 +19517,18 @@ msgstr ""
"nesne halihazırda başka bir uploadpack.blobpackfileuri içinde yapılandırıldı "
"('%s' alındı)"
-#: builtin/pack-objects.c:3212
+#: builtin/pack-objects.c:3220
#, c-format
msgid "could not get type of object %s in pack %s"
msgstr "%s nesnesinin türü alınamıyor (%s paketinde)"
-#: builtin/pack-objects.c:3340 builtin/pack-objects.c:3351
-#: builtin/pack-objects.c:3365
+#: builtin/pack-objects.c:3348 builtin/pack-objects.c:3359
+#: builtin/pack-objects.c:3373
#, c-format
msgid "could not find pack '%s'"
msgstr "'%s' paketi bulunamadı"
-#: builtin/pack-objects.c:3408
+#: builtin/pack-objects.c:3416
#, c-format
msgid ""
"expected edge object ID, got garbage:\n"
@@ -19053,7 +19537,7 @@ msgstr ""
"sınır nesnesi numarası bekleniyordu, anlamsız veri alındı:\n"
" %s"
-#: builtin/pack-objects.c:3414
+#: builtin/pack-objects.c:3422
#, c-format
msgid ""
"expected object ID, got garbage:\n"
@@ -19062,245 +19546,241 @@ msgstr ""
"nesne numarası bekleniyordu, anlamsız veri alındı:\n"
"%s"
-#: builtin/pack-objects.c:3507
-msgid "invalid value for --missing"
-msgstr "--missing için geçersiz değer"
-
-#: builtin/pack-objects.c:3532 builtin/pack-objects.c:3619
+#: builtin/pack-objects.c:3540 builtin/pack-objects.c:3627
msgid "cannot open pack index"
msgstr "paket indeksi açılamıyor"
-#: builtin/pack-objects.c:3541
+#: builtin/pack-objects.c:3549
#, c-format
msgid "loose object at %s could not be examined"
msgstr "%s konumundaki gevÅŸek nesne incelenemedi"
-#: builtin/pack-objects.c:3627
+#: builtin/pack-objects.c:3635
msgid "unable to force loose object"
msgstr "gevşek nesne zorlanamıyor"
-#: builtin/pack-objects.c:3757
+#: builtin/pack-objects.c:3763
#, c-format
msgid "not a rev '%s'"
msgstr "bir revizyon deÄŸil: '%s'"
-#: builtin/pack-objects.c:3760 builtin/rev-parse.c:1061
+#: builtin/pack-objects.c:3766 builtin/rev-parse.c:1061
#, c-format
msgid "bad revision '%s'"
msgstr "hatalı revizyon: '%s'"
-#: builtin/pack-objects.c:3788
+#: builtin/pack-objects.c:3794
msgid "unable to add recent objects"
msgstr "en son nesneler eklenemiyor"
-#: builtin/pack-objects.c:3841
+#: builtin/pack-objects.c:3847
#, c-format
msgid "unsupported index version %s"
msgstr "desteklenmeyen indeks sürümü %s"
-#: builtin/pack-objects.c:3845
+#: builtin/pack-objects.c:3851
#, c-format
msgid "bad index version '%s'"
msgstr "hatalı indeks sürümü '%s'"
-#: builtin/pack-objects.c:3884
+#: builtin/pack-objects.c:3907
msgid "<version>[,<offset>]"
msgstr "<sürüm>[,<ofset>]"
-#: builtin/pack-objects.c:3885
+#: builtin/pack-objects.c:3908
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:3888
+#: builtin/pack-objects.c:3911
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:3890
+#: builtin/pack-objects.c:3913
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:3892
+#: builtin/pack-objects.c:3915
msgid "ignore packed objects"
msgstr "paketlenmiÅŸ nesneleri yok say"
-#: builtin/pack-objects.c:3894
+#: builtin/pack-objects.c:3917
msgid "limit pack window by objects"
msgstr "paket penceresini nesnelerle sınırla"
-#: builtin/pack-objects.c:3896
+#: builtin/pack-objects.c:3919
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:3898
+#: builtin/pack-objects.c:3921
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:3900
+#: builtin/pack-objects.c:3923
msgid "reuse existing deltas"
msgstr "var olan deltaları yeniden kullan"
-#: builtin/pack-objects.c:3902
+#: builtin/pack-objects.c:3925
msgid "reuse existing objects"
msgstr "var olan nesneleri yeniden kullan"
-#: builtin/pack-objects.c:3904
+#: builtin/pack-objects.c:3927
msgid "use OFS_DELTA objects"
msgstr "OFS_DELTA nesneleri kullan"
-#: builtin/pack-objects.c:3906
+#: builtin/pack-objects.c:3929
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:3908
+#: builtin/pack-objects.c:3931
msgid "do not create an empty pack output"
msgstr "boş bir paket çıktısı oluşturma"
-#: builtin/pack-objects.c:3910
+#: builtin/pack-objects.c:3933
msgid "read revision arguments from standard input"
msgstr "revizyon argümanlarını standart girdi'den oku"
-#: builtin/pack-objects.c:3912
+#: builtin/pack-objects.c:3935
msgid "limit the objects to those that are not yet packed"
msgstr "nesneleri henüz paketlenmeyenlere kısıtla"
-#: builtin/pack-objects.c:3915
+#: builtin/pack-objects.c:3938
msgid "include objects reachable from any reference"
msgstr "herhangi bir başvurudan ulaşılabilir olan nesneleri içer"
-#: builtin/pack-objects.c:3918
+#: builtin/pack-objects.c:3941
msgid "include objects referred by reflog entries"
msgstr "başvuru günlüğü tarafından başvurulan nesneleri içer"
-#: builtin/pack-objects.c:3921
+#: builtin/pack-objects.c:3944
msgid "include objects referred to by the index"
msgstr "indeks tarafından başvurulan nesneleri içer"
-#: builtin/pack-objects.c:3924
+#: builtin/pack-objects.c:3947
msgid "read packs from stdin"
msgstr "paketleri stdin'den oku"
-#: builtin/pack-objects.c:3926
+#: builtin/pack-objects.c:3949
msgid "output pack to stdout"
msgstr "paketi stdout'a çıktı ver"
-#: builtin/pack-objects.c:3928
+#: builtin/pack-objects.c:3951
msgid "include tag objects that refer to objects to be packed"
msgstr "paketlenecek nesnelere başvuran etiket nesnelerini içer"
-#: builtin/pack-objects.c:3930
+#: builtin/pack-objects.c:3953
msgid "keep unreachable objects"
msgstr "ulaşılamayan nesneleri tut"
-#: builtin/pack-objects.c:3932
+#: builtin/pack-objects.c:3955
msgid "pack loose unreachable objects"
msgstr "ulaşılamayan gevşek nesneleri paketle"
-#: builtin/pack-objects.c:3934
+#: builtin/pack-objects.c:3957
msgid "unpack unreachable objects newer than <time>"
msgstr "<zaman>'dan daha yeni ulaşılamayan nesneleri aç"
-#: builtin/pack-objects.c:3937
+#: builtin/pack-objects.c:3960
msgid "use the sparse reachability algorithm"
msgstr "aralıklı ulaşılabilirlik algoritmasını kullan"
-#: builtin/pack-objects.c:3939
+#: builtin/pack-objects.c:3962
msgid "create thin packs"
msgstr "ince paketler oluÅŸtur"
-#: builtin/pack-objects.c:3941
+#: builtin/pack-objects.c:3964
msgid "create packs suitable for shallow fetches"
msgstr "sığ getirmelere uygun paketler oluştur"
-#: builtin/pack-objects.c:3943
+#: builtin/pack-objects.c:3966
msgid "ignore packs that have companion .keep file"
msgstr "eşlik eden .keep dosyasına iye paketleri yok say"
-#: builtin/pack-objects.c:3945
+#: builtin/pack-objects.c:3968
msgid "ignore this pack"
msgstr "bu paketi yok say"
-#: builtin/pack-objects.c:3947
+#: builtin/pack-objects.c:3970
msgid "pack compression level"
msgstr "paket sıkıştırma düzeyi"
-#: builtin/pack-objects.c:3949
+#: builtin/pack-objects.c:3972
msgid "do not hide commits by grafts"
msgstr "aşılarla gelen işlemeleri gizleme"
-#: builtin/pack-objects.c:3951
+#: builtin/pack-objects.c:3974
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:3953
+#: builtin/pack-objects.c:3976
msgid "write a bitmap index together with the pack index"
msgstr "paket indeksiyle birlikte bir biteÅŸlem indeksi de yaz"
-#: builtin/pack-objects.c:3957
+#: builtin/pack-objects.c:3980
msgid "write a bitmap index if possible"
msgstr "eğer olanaklıysa bir biteşlem indeksi yaz"
-#: builtin/pack-objects.c:3961
+#: builtin/pack-objects.c:3984
msgid "handling for missing objects"
msgstr "eksik nesneler için işlem"
-#: builtin/pack-objects.c:3964
+#: builtin/pack-objects.c:3987
msgid "do not pack objects in promisor packfiles"
msgstr "nesneleri vaatçi paket dosyalarıyla paketleme"
-#: builtin/pack-objects.c:3966
+#: builtin/pack-objects.c:3989
msgid "respect islands during delta compression"
msgstr "delta sıkıştırması sırasında adalara uy"
-#: builtin/pack-objects.c:3968
+#: builtin/pack-objects.c:3991
msgid "protocol"
msgstr "protokol"
-#: builtin/pack-objects.c:3969
+#: builtin/pack-objects.c:3992
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:4002
+#: builtin/pack-objects.c:4027
#, 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:4007
+#: builtin/pack-objects.c:4032
#, c-format
msgid "pack.deltaCacheLimit is too high, forcing %d"
msgstr "pack.deltaCacheLimit çok yüksek, %d zorlanıyor"
-#: builtin/pack-objects.c:4063
+#: builtin/pack-objects.c:4088
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:4065
+#: builtin/pack-objects.c:4090
msgid "minimum pack size limit is 1 MiB"
msgstr "olabilecek en küçük paket boyutu limiti 1 MiB'dır"
-#: builtin/pack-objects.c:4070
+#: builtin/pack-objects.c:4095
msgid "--thin cannot be used to build an indexable pack"
msgstr "--thin bir indekslenebilir paket yapımında kullanılamaz"
-#: builtin/pack-objects.c:4079
+#: builtin/pack-objects.c:4104
msgid "cannot use --filter without --stdout"
msgstr "--filter, --stdout olmadan kullanılamaz"
-#: builtin/pack-objects.c:4081
+#: builtin/pack-objects.c:4106
msgid "cannot use --filter with --stdin-packs"
msgstr "--filter, --stdin-packs ile birlikte kullanılamıyor"
-#: builtin/pack-objects.c:4085
+#: builtin/pack-objects.c:4110
msgid "cannot use internal rev list with --stdin-packs"
msgstr "iç revizyon listeleri, --stdin-packs ile birlikte kullanılamıyor"
-#: builtin/pack-objects.c:4144
+#: builtin/pack-objects.c:4169
msgid "Enumerating objects"
msgstr "Nesneler ortaya dökülüyor"
-#: builtin/pack-objects.c:4180
+#: builtin/pack-objects.c:4210
#, c-format
msgid ""
"Total %<PRIu32> (delta %<PRIu32>), reused %<PRIu32> (delta %<PRIu32>), pack-"
@@ -19336,10 +19816,6 @@ msgstr "her ÅŸeyi paketle"
msgid "prune loose refs (default)"
msgstr "gevşek başvuruları buda (öntanımlı)"
-#: builtin/prune-packed.c:6
-msgid "git prune-packed [-n | --dry-run] [-q | --quiet]"
-msgstr "git prune-packed [-n | --dry-run] [-q | --quiet]"
-
#: builtin/prune.c:14
msgid "git prune [-n] [-v] [--progress] [--expire <time>] [--] [<head>...]"
msgstr ""
@@ -19361,11 +19837,6 @@ msgstr "promisor paket dosyalarının dışındaki nesnelere taramayı kısıtla
msgid "cannot prune in a precious-objects repo"
msgstr "bir precious-objects deposu içinde budama yapılamıyor"
-#: builtin/pull.c:45 builtin/pull.c:47
-#, c-format
-msgid "Invalid value for %s: %s"
-msgstr "%s için geçersiz değer: %s"
-
#: builtin/pull.c:67
msgid "git pull [<options>] [<repository> [<refspec>...]]"
msgstr "git pull [<seçenekler>] [<depo> [<bşvr-blrtç>...]]"
@@ -19390,7 +19861,7 @@ msgstr "ileri sarıma izin ver"
msgid "control use of pre-merge-commit and commit-msg hooks"
msgstr "pre-merge-commit ve commit-msg kancalarının kullanımını denetle"
-#: builtin/pull.c:171 parse-options.h:340
+#: builtin/pull.c:171 parse-options.h:371
msgid "automatically stash/stash pop before and after"
msgstr "öncesinde ve sonrasında kendiliğinden zulala/zulaları patlat"
@@ -19406,11 +19877,6 @@ msgstr "zorla yerel dalın üzerine yaz"
msgid "number of submodules pulled in parallel"
msgstr "paralelde çekilen altmodüllerin sayısı"
-#: builtin/pull.c:321
-#, c-format
-msgid "Invalid value for pull.ff: %s"
-msgstr "pull.ff için geçersiz değer: %s"
-
#: builtin/pull.c:449
msgid ""
"There is no candidate for rebasing against among the refs that you just "
@@ -19442,7 +19908,7 @@ msgstr ""
"Bu, geçerli dalınız için öntanımlı yapılandırılmış uzak konum olmadığından,\n"
"komut satırında bir dal belirtmeniz gerekir."
-#: builtin/pull.c:460 builtin/rebase.c:951
+#: builtin/pull.c:460 builtin/rebase.c:978
msgid "You are not currently on a branch."
msgstr "Şu anda bir dal üzerinde değilsiniz."
@@ -19460,16 +19926,16 @@ msgid "See git-pull(1) for details."
msgstr "Ayrıntılar için: git-pull(1)"
#: builtin/pull.c:467 builtin/pull.c:473 builtin/pull.c:482
-#: builtin/rebase.c:957
+#: builtin/rebase.c:984
msgid "<remote>"
msgstr "<uzak-konum>"
#: builtin/pull.c:467 builtin/pull.c:482 builtin/pull.c:487
-#: contrib/scalar/scalar.c:375
+#: contrib/scalar/scalar.c:374
msgid "<branch>"
msgstr "<dal>"
-#: builtin/pull.c:475 builtin/rebase.c:949
+#: builtin/pull.c:475 builtin/rebase.c:976
msgid "There is no tracking information for the current branch."
msgstr "Geçerli dal için izleme bilgisi yok."
@@ -19526,19 +19992,19 @@ msgstr ""
"yapılandırmayı yürütme sırasında --rebase, --no-rebase veya\n"
"--ff-only ile bir kerelik geçersiz kılabilirsiniz.\n"
-#: builtin/pull.c:1046
+#: builtin/pull.c:1047
msgid "Updating an unborn branch with changes added to the index."
msgstr "İndekse eklenen değişikliklerle henüz doğmamış bir dal güncelleniyor."
-#: builtin/pull.c:1050
+#: builtin/pull.c:1051
msgid "pull with rebase"
msgstr "yeniden temellendirme ile çekim"
-#: builtin/pull.c:1051
+#: builtin/pull.c:1052
msgid "please commit or stash them."
msgstr "Lütfen onları işleyin veya zulalayın."
-#: builtin/pull.c:1076
+#: builtin/pull.c:1077
#, c-format
msgid ""
"fetch updated the current branch head.\n"
@@ -19549,7 +20015,7 @@ msgstr ""
"Çalışma ağacınız %s işlemesinden\n"
"ileri sarılıyor."
-#: builtin/pull.c:1082
+#: builtin/pull.c:1083
#, c-format
msgid ""
"Cannot fast-forward your working tree.\n"
@@ -19566,23 +20032,23 @@ msgstr ""
"$ git reset --hard\n"
"komutunu çalıştırın."
-#: builtin/pull.c:1097
+#: builtin/pull.c:1098
msgid "Cannot merge multiple branches into empty head."
msgstr "Boş dal ucuna birden çok dal birleştirilemez."
-#: builtin/pull.c:1102
+#: builtin/pull.c:1103
msgid "Cannot rebase onto multiple branches."
msgstr "Birden çok dala yeniden temellendirme yapılamaz."
-#: builtin/pull.c:1104
+#: builtin/pull.c:1105
msgid "Cannot fast-forward to multiple branches."
msgstr "Birden çok dala ileri sarım yapılamaz."
-#: builtin/pull.c:1119
+#: builtin/pull.c:1120
msgid "Need to specify how to reconcile divergent branches."
msgstr "Iraksak dalların nasıl uzlaştırılacağının belirtilmesi gerekiyor."
-#: builtin/pull.c:1133
+#: builtin/pull.c:1134
msgid "cannot rebase with locally recorded submodule modifications"
msgstr ""
"yerelde kaydı yazılmış altmodül değişiklikleriyle yeniden temellendirme "
@@ -19694,7 +20160,8 @@ msgstr ""
"Güncellemeler reddedildi; çünkü geçerli dalınızın ucu kendisinin\n"
"uzak konum karşıtından geride. Yeniden itmeden önce uzak konumdaki\n"
"değişiklikleri entegre edin (örn. 'git pull ...').\n"
-"Ayrıntılar için 'git push --help' içinde 'Notes about fast-forwards'a bakın."
+"Ayrıntılar için 'git push --help' içinde 'Notes about fast-forwards'a\n"
+"bakın."
#: builtin/push.c:264
msgid ""
@@ -19705,8 +20172,9 @@ msgid ""
msgstr ""
"Güncellemeler reddedildi; çünkü itilmiş bir dal ucu kendisinin\n"
"uzak konum karşıtından geride. Yeniden itmeden önce bu dalı çıkış\n"
-"yapın ve uzak konumdaki değişiklikleri entegre edin (örn. 'git pull ...').\n"
-"Ayrıntılar için 'git push --help' içinde 'Notes about fast-forwards'a bakın."
+"yapın ve uzak konumdaki değişiklikleri entegre edin (örn. 'git pull\n"
+"...'). Ayrıntılar için 'git push --help' içinde 'Notes about\n"
+"fast-forwards'a bakın."
#: builtin/push.c:270
msgid ""
@@ -19720,7 +20188,8 @@ msgstr ""
"değişiklikler var. Bu genelde başka bir deponun aynı başvuruya itmesinden\n"
"dolayı olur. Yeniden itmeden önce uzak konumdaki değişiklikleri entegre\n"
"etmek isteyebilirsiniz (örn. 'git pull ...').\n"
-"Ayrıntılar için 'git push --help' içinde 'Notes about fast-forwards'a bakın."
+"Ayrıntılar için 'git push --help' içinde 'Notes about fast-forwards'a\n"
+"bakın."
#: builtin/push.c:277
msgid "Updates were rejected because the tag already exists in the remote."
@@ -19758,7 +20227,7 @@ msgstr "Ä°tme konumu: %s\n"
msgid "failed to push some refs to '%s'"
msgstr "bazı başvurular '%s' konumuna itilemedi"
-#: builtin/push.c:544 builtin/submodule--helper.c:3259
+#: builtin/push.c:544 builtin/submodule--helper.c:3377
msgid "repository"
msgstr "depo"
@@ -19998,11 +20467,11 @@ msgstr "unpack-trees hatalarını ayıkla"
msgid "suppress feedback messages"
msgstr "geribildirim iletilerini gizle"
-#: builtin/read-tree.c:183
+#: builtin/read-tree.c:190
msgid "You need to resolve your current index first"
msgstr "Öncelikle geçerli indeksinizi çözmelisiniz"
-#: builtin/rebase.c:35
+#: builtin/rebase.c:36
msgid ""
"git rebase [-i] [options] [--exec <cmd>] [--onto <newbase> | --keep-base] "
"[<upstream> [<branch>]]"
@@ -20010,55 +20479,51 @@ msgstr ""
"git rebase [-i] [options] [--exec <komut>] [--onto <yeni-temel> | --keep-"
"base] [<üstkaynak> [<dal>]]"
-#: builtin/rebase.c:37
+#: builtin/rebase.c:38
msgid ""
"git rebase [-i] [options] [--exec <cmd>] [--onto <newbase>] --root [<branch>]"
msgstr ""
"git rebase [-i] [options] [--exec <komut>] [--onto <yeni-temel>] --root "
"[<dal>]"
-#: builtin/rebase.c:39
-msgid "git rebase --continue | --abort | --skip | --edit-todo"
-msgstr "git rebase --continue | --abort | --skip | --edit-todo"
-
-#: builtin/rebase.c:230
+#: builtin/rebase.c:231
#, c-format
msgid "could not create temporary %s"
msgstr "geçici %s oluşturulamadı"
-#: builtin/rebase.c:236
+#: builtin/rebase.c:237
msgid "could not mark as interactive"
msgstr "etkileÅŸimli olarak imlenemedi"
-#: builtin/rebase.c:289
+#: builtin/rebase.c:290
msgid "could not generate todo list"
msgstr "yapılacaklar listesi oluşturulamadı"
-#: builtin/rebase.c:331
+#: builtin/rebase.c:332
msgid "a base commit must be provided with --upstream or --onto"
msgstr "bir taban işlemesi --upstream veya --onto ile sağlanmalıdır"
-#: builtin/rebase.c:390
+#: builtin/rebase.c:391
#, c-format
msgid "%s requires the merge backend"
msgstr "%s birleÅŸtirme arka ucunu gerektiriyor"
-#: builtin/rebase.c:432
+#: builtin/rebase.c:433
#, c-format
msgid "could not get 'onto': '%s'"
msgstr "'onto' alınamadı: '%s'"
-#: builtin/rebase.c:449
+#: builtin/rebase.c:450
#, c-format
msgid "invalid orig-head: '%s'"
msgstr "geçersiz orig-head: '%s'"
-#: builtin/rebase.c:474
+#: builtin/rebase.c:475
#, c-format
msgid "ignoring invalid allow_rerere_autoupdate: '%s'"
msgstr "geçersiz allow_rerere_autoupdate yok sayılıyor: '%s'"
-#: builtin/rebase.c:597
+#: builtin/rebase.c:600
msgid ""
"Resolve all conflicts manually, mark them as resolved with\n"
"\"git add/rm <conflicted_files>\", then run \"git rebase --continue\".\n"
@@ -20067,12 +20532,12 @@ msgid ""
"abort\"."
msgstr ""
"Tüm çakışmaları el ile çözün, onları \"git add/rm <çakışan-dosyalar>\"\n"
-"ile tamam olarak imleyin, ardından \"git rebase --continue\" çalıştırın.\n"
-"Bunun yerine bu işlemeyi atlayabilirsiniz: \"git rebase --skip\" yapın.\n"
-"İptal edip \"git rebase\" öncesine geri dönmek için \"git rebase --abort\"\n"
-"çalıştırın."
+"ile tamam olarak imleyin, ardından \"git rebase --continue\"\n"
+"çalıştırın. Bunun yerine bu işlemeyi atlayabilirsiniz: \"git rebase\n"
+"--skip\" yapın. İptal edip \"git rebase\" öncesine geri dönmek için\n"
+"\"git rebase --abort\" çalıştırın."
-#: builtin/rebase.c:680
+#: builtin/rebase.c:685
#, c-format
msgid ""
"\n"
@@ -20091,15 +20556,20 @@ msgstr ""
"\n"
"Bunun sonucu olarak git onları yeniden temellendiremiyor."
-#: builtin/rebase.c:925
+#: builtin/rebase.c:836
+#, c-format
+msgid "could not switch to %s"
+msgstr "şuraya geçilemedi: %s"
+
+#: builtin/rebase.c:952
#, c-format
msgid ""
"unrecognized empty type '%s'; valid values are \"drop\", \"keep\", and \"ask"
"\"."
msgstr ""
-"tanımlanamayan boş tür '%s'; geçerli türler: \"drop\", \"keep\" ve \"ask\""
+"Tanımlanamayan boş tür '%s'; geçerli türler: \"drop\", \"keep\" ve \"ask\"."
-#: builtin/rebase.c:943
+#: builtin/rebase.c:970
#, c-format
msgid ""
"%s\n"
@@ -20116,7 +20586,7 @@ msgstr ""
"\tgit rebase '<dal>'\n"
"\n"
-#: builtin/rebase.c:959
+#: builtin/rebase.c:986
#, c-format
msgid ""
"If you wish to set tracking information for this branch you can do so with:\n"
@@ -20129,187 +20599,187 @@ msgstr ""
"\tgit branch --set-upstream-to=%s/<dal> %s\n"
"\n"
-#: builtin/rebase.c:989
+#: builtin/rebase.c:1016
msgid "exec commands cannot contain newlines"
msgstr "'exec' komutları yenisatırlar içeremez"
-#: builtin/rebase.c:993
+#: builtin/rebase.c:1020
msgid "empty exec command"
msgstr "boÅŸ 'exec' komutu"
-#: builtin/rebase.c:1023
+#: builtin/rebase.c:1051
msgid "rebase onto given branch instead of upstream"
msgstr "üstkaynak yerine verilen dalın üzerine yeniden temellendir"
-#: builtin/rebase.c:1025
+#: builtin/rebase.c:1053
msgid "use the merge-base of upstream and branch as the current base"
msgstr "üstkaynağın birleştirme temelini ve dalını geçerli temel olarak kullan"
-#: builtin/rebase.c:1027
+#: builtin/rebase.c:1055
msgid "allow pre-rebase hook to run"
msgstr "pre-rebase kancasının çalışmasına izin ver"
-#: builtin/rebase.c:1029
+#: builtin/rebase.c:1057
msgid "be quiet. implies --no-stat"
msgstr "sessiz ol (--no-stat ima eder)"
-#: builtin/rebase.c:1032
+#: builtin/rebase.c:1060
msgid "display a diffstat of what changed upstream"
msgstr "üstkaynakta nelerin değiştiğini gösteren bir diffstat görüntüle"
-#: builtin/rebase.c:1035
+#: builtin/rebase.c:1063
msgid "do not show diffstat of what changed upstream"
msgstr "üstkaynakta nelerin değiştiğini gösteren diffstat gösterme"
-#: builtin/rebase.c:1038
+#: builtin/rebase.c:1066
msgid "add a Signed-off-by trailer to each commit"
msgstr "her iÅŸlemeye bir Signed-off-by artbilgisi ekle"
-#: builtin/rebase.c:1041
+#: builtin/rebase.c:1069
msgid "make committer date match author date"
msgstr "işleyici tarihi ile yazar tarihini aynı yap"
-#: builtin/rebase.c:1043
+#: builtin/rebase.c:1071
msgid "ignore author date and use current date"
msgstr "yazar tarihini yok say ve geçerli tarihi kullan"
-#: builtin/rebase.c:1045
+#: builtin/rebase.c:1073
msgid "synonym of --reset-author-date"
msgstr "--reset-author-date eşanlamlısı"
-#: builtin/rebase.c:1047 builtin/rebase.c:1051
+#: builtin/rebase.c:1075 builtin/rebase.c:1079
msgid "passed to 'git apply'"
msgstr "'git apply'a aktarıldı"
-#: builtin/rebase.c:1049
+#: builtin/rebase.c:1077
msgid "ignore changes in whitespace"
msgstr "boÅŸluk deÄŸiÅŸikliklerini yok say"
-#: builtin/rebase.c:1053 builtin/rebase.c:1056
+#: builtin/rebase.c:1081 builtin/rebase.c:1084
msgid "cherry-pick all commits, even if unchanged"
msgstr "değiştirilmemiş olsa bile tüm işlemeleri seç-al yap"
-#: builtin/rebase.c:1058
+#: builtin/rebase.c:1086
msgid "continue"
msgstr "sürdür"
-#: builtin/rebase.c:1061
+#: builtin/rebase.c:1089
msgid "skip current patch and continue"
msgstr "geçerli yamayı atla ve sürdür"
-#: builtin/rebase.c:1063
+#: builtin/rebase.c:1091
msgid "abort and check out the original branch"
msgstr "iptal et ve orijinal dalı çıkış yap"
-#: builtin/rebase.c:1066
+#: builtin/rebase.c:1094
msgid "abort but keep HEAD where it is"
msgstr "iptal et; ancak HEAD'i olduğu yerde bırak"
-#: builtin/rebase.c:1067
+#: builtin/rebase.c:1095
msgid "edit the todo list during an interactive rebase"
msgstr ""
"bir etkileşimli yeniden temellendirme sırasında yapılacaklar listesini "
"düzenle"
-#: builtin/rebase.c:1070
+#: builtin/rebase.c:1098
msgid "show the patch file being applied or merged"
msgstr "yama dosyası uygulanırken veya birleştirilirken göster"
-#: builtin/rebase.c:1073
+#: builtin/rebase.c:1101
msgid "use apply strategies to rebase"
msgstr "yeniden temellendirmek için \"apply\" stratejilerini kullan"
-#: builtin/rebase.c:1077
+#: builtin/rebase.c:1105
msgid "use merging strategies to rebase"
msgstr "yeniden temellendirmek için birleştirme stratejilerini kullan"
-#: builtin/rebase.c:1081
+#: builtin/rebase.c:1109
msgid "let the user edit the list of commits to rebase"
msgstr ""
"yeniden temellendirilecek işlemelerin listesini kullanıcının düzenlemesine "
"izin ver"
-#: builtin/rebase.c:1085
+#: builtin/rebase.c:1113
msgid "(DEPRECATED) try to recreate merges instead of ignoring them"
msgstr ""
"(KULLANILMAMALI) birleştirmeleri yok saymak yerine onları yeniden "
"oluşturmaya çalış"
-#: builtin/rebase.c:1090
+#: builtin/rebase.c:1118
msgid "how to handle commits that become empty"
msgstr "boşalan işlemelerin nasıl ele alınacağı"
-#: builtin/rebase.c:1093
+#: builtin/rebase.c:1121
msgid "keep commits which start empty"
msgstr "boÅŸ baÅŸlayan iÅŸlemeleri tut"
-#: builtin/rebase.c:1097
+#: builtin/rebase.c:1125
msgid "move commits that begin with squash!/fixup! under -i"
msgstr "-i altındaki squash!/fixup! ile başlayan işlemeleri taşı"
-#: builtin/rebase.c:1104
+#: builtin/rebase.c:1132
msgid "add exec lines after each commit of the editable list"
msgstr "düzenlenebilir listenin her işlemesinden sonra exec satırları ekle"
-#: builtin/rebase.c:1108
+#: builtin/rebase.c:1136
msgid "allow rebasing commits with empty messages"
msgstr "boÅŸ iletili iÅŸlemelerin yeniden temellendirilmesine izin ver"
-#: builtin/rebase.c:1112
+#: builtin/rebase.c:1140
msgid "try to rebase merges instead of skipping them"
msgstr "birleştirmeleri atlamak yerine onları yeniden temellendirmeyi dene"
-#: builtin/rebase.c:1115
+#: builtin/rebase.c:1143
msgid "use 'merge-base --fork-point' to refine upstream"
msgstr "üstkaynağı arılaştırmak için 'merge-base --fork-point' kullan"
-#: builtin/rebase.c:1117
+#: builtin/rebase.c:1145
msgid "use the given merge strategy"
msgstr "verilen birleÅŸtirme stratejisini kullan"
-#: builtin/rebase.c:1119 builtin/revert.c:115
+#: builtin/rebase.c:1147 builtin/revert.c:115
msgid "option"
msgstr "seçenek"
-#: builtin/rebase.c:1120
+#: builtin/rebase.c:1148
msgid "pass the argument through to the merge strategy"
msgstr "argümanı birleştirme stratejisine aktar"
-#: builtin/rebase.c:1123
+#: builtin/rebase.c:1151
msgid "rebase all reachable commits up to the root(s)"
msgstr "ulaşılabilir tüm işlemeleri kök(ler)e kadar yeniden temellendir"
-#: builtin/rebase.c:1126
+#: builtin/rebase.c:1154
msgid "automatically re-schedule any `exec` that fails"
msgstr "başarısız olan her 'exec'i kendiliğinden yeniden zamanla"
-#: builtin/rebase.c:1128
+#: builtin/rebase.c:1156
msgid "apply all changes, even those already present upstream"
msgstr "tüm değişiklikleri uygula, halihazırda üstkaynakta olanları bile"
-#: builtin/rebase.c:1149
+#: builtin/rebase.c:1177
msgid "It looks like 'git am' is in progress. Cannot rebase."
msgstr "Görünüşe göre 'git am' sürmekte. Yeniden temellendirilemiyor."
-#: builtin/rebase.c:1180
+#: builtin/rebase.c:1208
msgid "--preserve-merges was replaced by --rebase-merges"
msgstr "--preserve-merges, --rebase-merges olarak deÄŸiÅŸtirildi"
-#: builtin/rebase.c:1202
+#: builtin/rebase.c:1230
msgid "No rebase in progress?"
msgstr "Sürmekte olan bir yeniden temellendirme yok"
-#: builtin/rebase.c:1206
+#: builtin/rebase.c:1234
msgid "The --edit-todo action can only be used during interactive rebase."
msgstr ""
"--edit-todo seçeneği yalnızca etkileşimli yeniden temellendirme sırasında "
"kullanılabilir."
-#: builtin/rebase.c:1229 t/helper/test-fast-rebase.c:122
+#: builtin/rebase.c:1257 t/helper/test-fast-rebase.c:122
msgid "Cannot read HEAD"
msgstr "HEAD okunamıyor"
-#: builtin/rebase.c:1241
+#: builtin/rebase.c:1269
msgid ""
"You must edit all merge conflicts and then\n"
"mark them as resolved using git add"
@@ -20317,16 +20787,16 @@ msgstr ""
"Önce tüm birleştirme çakışmalarını düzenlemeli ve onları\n"
"git add kullanarak tamamlandı olarak imlemelisiniz."
-#: builtin/rebase.c:1260
+#: builtin/rebase.c:1287
msgid "could not discard worktree changes"
msgstr "çalışma ağacı değişiklikleri atılamadı"
-#: builtin/rebase.c:1279
+#: builtin/rebase.c:1308
#, c-format
msgid "could not move back to %s"
msgstr "%s konumuna geri taşınamadı"
-#: builtin/rebase.c:1325
+#: builtin/rebase.c:1354
#, c-format
msgid ""
"It seems that there is already a %s directory, and\n"
@@ -20347,124 +20817,119 @@ msgstr ""
"yapın ve beni yeniden çalıştırın. Ben sizi belki orada hâlâ değerli bir\n"
"ÅŸeyler olabilir diye durdurdum.\n"
-#: builtin/rebase.c:1353
+#: builtin/rebase.c:1382
msgid "switch `C' expects a numerical value"
msgstr "'C' anahtarı sayısal bir değer bekliyor"
-#: builtin/rebase.c:1395
+#: builtin/rebase.c:1424
#, c-format
msgid "Unknown mode: %s"
msgstr "Bilinmeyen kip: %s"
-#: builtin/rebase.c:1434
+#: builtin/rebase.c:1463
msgid "--strategy requires --merge or --interactive"
msgstr "--strategy, --merge veya --interactive gerektiriyor"
-#: builtin/rebase.c:1463
+#: builtin/rebase.c:1492
msgid "apply options and merge options cannot be used together"
msgstr "uygulama seçenekleri ve birleştirme seçenekleri birlikte kullanılamaz"
-#: builtin/rebase.c:1476
+#: builtin/rebase.c:1505
#, c-format
msgid "Unknown rebase backend: %s"
msgstr "Bilinmeyen yeniden temellendirme arka ucu: %s"
-#: builtin/rebase.c:1505
+#: builtin/rebase.c:1534
msgid "--reschedule-failed-exec requires --exec or --interactive"
msgstr "--reschedule-failed-exec, --exec veya --interactive gerektiriyor"
-#: builtin/rebase.c:1536
+#: builtin/rebase.c:1565
#, c-format
msgid "invalid upstream '%s'"
msgstr "geçersiz üstkaynak '%s'"
-#: builtin/rebase.c:1542
+#: builtin/rebase.c:1571
msgid "Could not create new root commit"
msgstr "Yeni kök işleme oluşturulamadı"
-#: builtin/rebase.c:1568
+#: builtin/rebase.c:1597
#, c-format
msgid "'%s': need exactly one merge base with branch"
msgstr "'%s': tam olarak dallı bir birleştirme temeli gerekli"
-#: builtin/rebase.c:1571
+#: builtin/rebase.c:1600
#, c-format
msgid "'%s': need exactly one merge base"
msgstr "'%s': tam olarak bir birleÅŸtirme temeli gerekiyor"
-#: builtin/rebase.c:1580
+#: builtin/rebase.c:1609
#, c-format
msgid "Does not point to a valid commit '%s'"
msgstr "'%s' geçerli bir işlemeye işaret etmiyor"
-#: builtin/rebase.c:1607
+#: builtin/rebase.c:1636
#, c-format
msgid "no such branch/commit '%s'"
msgstr "böyle bir dal/işleme yok: '%s'"
-#: builtin/rebase.c:1618 builtin/submodule--helper.c:39
-#: builtin/submodule--helper.c:2659
+#: builtin/rebase.c:1647 builtin/submodule--helper.c:43
+#: builtin/submodule--helper.c:2477
#, c-format
msgid "No such ref: %s"
msgstr "Böyle bir başvuru yok: %s"
-#: builtin/rebase.c:1629
+#: builtin/rebase.c:1658
msgid "Could not resolve HEAD to a revision"
msgstr "HEAD bir revizyona çözülemedi"
-#: builtin/rebase.c:1650
+#: builtin/rebase.c:1679
msgid "Please commit or stash them."
msgstr "Lütfen onları işleyin veya zulalayın."
-#: builtin/rebase.c:1686
-#, c-format
-msgid "could not switch to %s"
-msgstr "şuraya geçilemedi: %s"
-
-#: builtin/rebase.c:1697
+#: builtin/rebase.c:1714
msgid "HEAD is up to date."
msgstr "HEAD güncel."
-#: builtin/rebase.c:1699
+#: builtin/rebase.c:1716
#, c-format
msgid "Current branch %s is up to date.\n"
msgstr "Geçerli dal %s güncel.\n"
-#: builtin/rebase.c:1707
+#: builtin/rebase.c:1724
msgid "HEAD is up to date, rebase forced."
msgstr "HEAD güncel, yeniden temellendirme zorla yapıldı."
-#: builtin/rebase.c:1709
+#: builtin/rebase.c:1726
#, c-format
msgid "Current branch %s is up to date, rebase forced.\n"
msgstr "Geçerli dal %s güncel, yeniden temellendirme zorla yapıldı.\n"
-#: builtin/rebase.c:1717
+#: builtin/rebase.c:1734
msgid "The pre-rebase hook refused to rebase."
msgstr "'pre-rebase' kancası yeniden temellendirmeyi reddetti."
-#: builtin/rebase.c:1724
+#: builtin/rebase.c:1741
#, c-format
msgid "Changes to %s:\n"
msgstr "%s için olan değişiklikler:\n"
-#: builtin/rebase.c:1727
+#: builtin/rebase.c:1744
#, c-format
msgid "Changes from %s to %s:\n"
msgstr "%s -> %s deÄŸiÅŸiklikleri:\n"
-#: builtin/rebase.c:1752
+#: builtin/rebase.c:1769
#, c-format
msgid "First, rewinding head to replay your work on top of it...\n"
msgstr ""
"Öncelikle dal ucu üzerindeki çalışmanızı yeniden oynatmak için geri "
"sarılıyor...\n"
-#: builtin/rebase.c:1761
+#: builtin/rebase.c:1781
msgid "Could not detach HEAD"
msgstr "HEAD ayrılamadı"
-#: builtin/rebase.c:1770
+#: builtin/rebase.c:1790
#, c-format
msgid "Fast-forwarded %s to %s.\n"
msgstr "%s, %s konumuna ileri sarıldı.\n"
@@ -20473,7 +20938,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:1275
+#: builtin/receive-pack.c:1263
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"
@@ -20501,7 +20966,7 @@ msgstr ""
"'receive.denyCurrentBranch' yapılandırma değişkenini 'refuse'\n"
"olarak ayarlayın."
-#: builtin/receive-pack.c:1295
+#: builtin/receive-pack.c:1283
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"
@@ -20523,79 +20988,113 @@ msgstr ""
"\n"
"Bu iletiyi susturmak için onu 'refuse' olarak ayarlayın."
-#: builtin/receive-pack.c:2474
+#: builtin/receive-pack.c:2476
msgid "quiet"
msgstr "sessiz"
-#: builtin/receive-pack.c:2489
+#: builtin/receive-pack.c:2491
msgid "you must specify a directory"
msgstr "bir dizin belirtmelisiniz"
-#: builtin/reflog.c:17
+#: builtin/reflog.c:9
+msgid "git reflog [show] [<log-options>] [<ref>]"
+msgstr "git reflog [show] [<günlük-seçenekleri>] [<başvuru>]"
+
+#: builtin/reflog.c:12
msgid ""
-"git reflog expire [--expire=<time>] [--expire-unreachable=<time>] [--"
-"rewrite] [--updateref] [--stale-fix] [--dry-run | -n] [--verbose] [--all] "
-"<refs>..."
+"git reflog expire [--expire=<time>] [--expire-unreachable=<time>]\n"
+" [--rewrite] [--updateref] [--stale-fix]\n"
+" [--dry-run | -n] [--verbose] [--all [--single-worktree] | "
+"<refs>...]"
msgstr ""
-"git reflog expire [--expire=<zaman>] [--expire-unreachable=<zaman>] [--"
-"rewrite] [--updateref] [--stale-fix] [--dry-run | -n] [--verbose] [--all] "
-"<baÅŸvurular>..."
+"git reflog expire [--expire=<zaman>] [--expire-unreachable=<zaman>]\n"
+" [--rewrite] [--updateref] [--stale-fix]\n"
+" [--dry-run | -n] [--verbose] [--all [--single-worktree] | "
+"<zaman>...]"
-#: builtin/reflog.c:22
+#: builtin/reflog.c:17
msgid ""
-"git reflog delete [--rewrite] [--updateref] [--dry-run | -n] [--verbose] "
-"<refs>..."
+"git reflog delete [--rewrite] [--updateref]\n"
+" [--dry-run | -n] [--verbose] <ref>@{<specifier>}..."
msgstr ""
-"git reflog delete [--rewrite] [--updateref] [--dry-run | -n] [--verbose] "
-"<baÅŸvurular>..."
+"git reflog delete [--rewrite] [--updateref]\n"
+" [--dry-run | -n] [--verbose] <başvuru>@{<belirteç>}..."
-#: builtin/reflog.c:25
+#: builtin/reflog.c:21
msgid "git reflog exists <ref>"
msgstr "git reflog exists <baÅŸvuru>"
-#: builtin/reflog.c:585 builtin/reflog.c:590
+#: builtin/reflog.c:197 builtin/reflog.c:211
#, c-format
-msgid "'%s' is not a valid timestamp"
-msgstr "'%s' geçerli bir zaman damgası değil"
+msgid "invalid timestamp '%s' given to '--%s'"
+msgstr "geçersiz zaman damgası '%s', '--%s' argümanına verildi"
-#: builtin/reflog.c:631
+#: builtin/reflog.c:240 builtin/reflog.c:359
+msgid "do not actually prune any entries"
+msgstr "özünde, hiçbir girdiyi budama"
+
+#: builtin/reflog.c:243 builtin/reflog.c:362
+msgid ""
+"rewrite the old SHA1 with the new SHA1 of the entry that now precedes it"
+msgstr ""
+"eski SHA-1'i, onun öncesinde gelen girdinin yeni SHA-1'i ile üzerine yaz"
+
+#: builtin/reflog.c:246 builtin/reflog.c:365
+msgid "update the reference to the value of the top reflog entry"
+msgstr "başvuruyu, en üst başvuru günlüğü girdisinin değerine güncelle"
+
+#: builtin/reflog.c:248 builtin/reflog.c:367
+msgid "print extra information on screen"
+msgstr "ekranda ek bilgi yazdır"
+
+#: builtin/reflog.c:249 builtin/reflog.c:253
+msgid "timestamp"
+msgstr "zaman damgası"
+
+#: builtin/reflog.c:250
+msgid "prune entries older than the specified time"
+msgstr "belirtilen zamandan daha eski girdileri buda"
+
+#: builtin/reflog.c:254
+msgid ""
+"prune entries older than <time> that are not reachable from the current tip "
+"of the branch"
+msgstr ""
+"dalın geçerli ucundan erişilemeyen ve <zaman>'dan daha eski girdileri buda"
+
+#: builtin/reflog.c:258
+msgid "prune any reflog entries that point to broken commits"
+msgstr "hatalı işlemelere işaret eden tüm başvuru günlüğü girdilerini buda"
+
+#: builtin/reflog.c:259
+msgid "process the reflogs of all references"
+msgstr "tüm başvuruların başvuru günlüklerini işle"
+
+#: builtin/reflog.c:261
+msgid "limits processing to reflogs from the current worktree only"
+msgstr ""
+"başvuru günlüklerine işlemeyi yalnızca geçerli çalışma ağacına sınırlar"
+
+#: builtin/reflog.c:294
#, c-format
msgid "Marking reachable objects..."
msgstr "Ulaşılabilir nesneler imleniyor..."
-#: builtin/reflog.c:675
+#: builtin/reflog.c:338
#, c-format
msgid "%s points nowhere!"
msgstr "%s hiçbir yere işaret etmiyor!"
-#: builtin/reflog.c:731
+#: builtin/reflog.c:374
msgid "no reflog specified to delete"
msgstr "silmek için bir başvuru günlüğü belirtilmedi"
-#: builtin/reflog.c:742
-#, c-format
-msgid "not a reflog: %s"
-msgstr "bir başvuru günlüğü değil: %s"
-
-#: builtin/reflog.c:747
-#, c-format
-msgid "no reflog for '%s'"
-msgstr "'%s' için başvuru günlüğü yok"
-
-#: builtin/reflog.c:794
+#: builtin/reflog.c:396
#, c-format
msgid "invalid ref format: %s"
msgstr "geçersiz başvuru biçimi: %s"
-#: builtin/reflog.c:803
-msgid "git reflog [ show | expire | delete | exists ]"
-msgstr "git reflog [ show | expire | delete | exists ]"
-
-#: builtin/remote.c:17
-msgid "git remote [-v | --verbose]"
-msgstr "git remote [-v | --verbose]"
-
-#: builtin/remote.c:18
+#: builtin/remote.c:19
msgid ""
"git remote add [-t <branch>] [-m <master>] [-f] [--tags | --no-tags] [--"
"mirror=<fetch|push>] <name> <url>"
@@ -20603,87 +21102,87 @@ msgstr ""
"git remote add [-t <dal>] [-m <master>] [-f] [--tags | --no-tags] [--"
"mirror=<getir|it>] <ad> <url>"
-#: builtin/remote.c:19 builtin/remote.c:39
-msgid "git remote rename <old> <new>"
-msgstr "git remote rename <eski> <yeni>"
+#: builtin/remote.c:20 builtin/remote.c:40
+msgid "git remote rename [--[no-]progress] <old> <new>"
+msgstr "git remote rename [--[no-]progress] <eski> <yeni>"
-#: builtin/remote.c:20 builtin/remote.c:44
+#: builtin/remote.c:21 builtin/remote.c:45
msgid "git remote remove <name>"
msgstr "git remote remove <ad>"
-#: builtin/remote.c:21 builtin/remote.c:49
+#: builtin/remote.c:22 builtin/remote.c:50
msgid "git remote set-head <name> (-a | --auto | -d | --delete | <branch>)"
msgstr "git remote set-head <ad> (-a | --auto | -d | --delete | <dal>)"
-#: builtin/remote.c:22
+#: builtin/remote.c:23
msgid "git remote [-v | --verbose] show [-n] <name>"
msgstr "git remote [-v | --verbose] show [-n] <ad>"
-#: builtin/remote.c:23
+#: builtin/remote.c:24
msgid "git remote prune [-n | --dry-run] <name>"
msgstr "git remote prune [-n | --dry-run] <ad>"
-#: builtin/remote.c:24
+#: builtin/remote.c:25
msgid ""
"git remote [-v | --verbose] update [-p | --prune] [(<group> | <remote>)...]"
msgstr ""
"git remote [-v | --verbose] update [-p | --prune] [(<grup> | <uzak-k>)...]"
-#: builtin/remote.c:25
+#: builtin/remote.c:26
msgid "git remote set-branches [--add] <name> <branch>..."
msgstr "git remote set-branches [--add] <ad> <dal>..."
-#: builtin/remote.c:26 builtin/remote.c:75
+#: builtin/remote.c:27 builtin/remote.c:76
msgid "git remote get-url [--push] [--all] <name>"
msgstr "git remote get-url [--push] [--all] <ad>"
-#: builtin/remote.c:27 builtin/remote.c:80
+#: builtin/remote.c:28 builtin/remote.c:81
msgid "git remote set-url [--push] <name> <newurl> [<oldurl>]"
msgstr "git remote set-url [--push] <ad> <yeni-url> [<eski-url>]"
-#: builtin/remote.c:28 builtin/remote.c:81
+#: builtin/remote.c:29 builtin/remote.c:82
msgid "git remote set-url --add <name> <newurl>"
msgstr "git remote set-url --add <ad> <yeni-url>"
-#: builtin/remote.c:29 builtin/remote.c:82
+#: builtin/remote.c:30 builtin/remote.c:83
msgid "git remote set-url --delete <name> <url>"
msgstr "git remote set-url --delete <ad> <url>"
-#: builtin/remote.c:34
+#: builtin/remote.c:35
msgid "git remote add [<options>] <name> <url>"
msgstr "git remote add [<seçenekler>] <ad> <url>"
-#: builtin/remote.c:54
+#: builtin/remote.c:55
msgid "git remote set-branches <name> <branch>..."
msgstr "git remote set-branches <ad> <dal>..."
-#: builtin/remote.c:55
+#: builtin/remote.c:56
msgid "git remote set-branches --add <name> <branch>..."
msgstr "git remote set-branches --add <ad> <dal>..."
-#: builtin/remote.c:60
+#: builtin/remote.c:61
msgid "git remote show [<options>] <name>"
msgstr "git remote show [<seçenekler>] <ad>"
-#: builtin/remote.c:65
+#: builtin/remote.c:66
msgid "git remote prune [<options>] <name>"
msgstr "git remote prune [<seçenekler>] <ad>"
-#: builtin/remote.c:70
+#: builtin/remote.c:71
msgid "git remote update [<options>] [<group> | <remote>]..."
msgstr "git remote update [<seçenekler>] [<grup> | <uzak-konum>]..."
-#: builtin/remote.c:99
+#: builtin/remote.c:100
#, c-format
msgid "Updating %s"
msgstr "%s güncelleniyor"
-#: builtin/remote.c:101
+#: builtin/remote.c:102
#, c-format
msgid "Could not fetch %s"
msgstr "%s getirilemedi"
-#: builtin/remote.c:131
+#: builtin/remote.c:132
msgid ""
"--mirror is dangerous and deprecated; please\n"
"\t use --mirror=fetch or --mirror=push instead"
@@ -20691,80 +21190,80 @@ msgstr ""
"--mirror tehlikeli ve artık kullanılmamalı; lütfen\n"
"\t yerine --mirror=fetch veya --mirror=push kullanın."
-#: builtin/remote.c:148
+#: builtin/remote.c:149
#, c-format
msgid "unknown mirror argument: %s"
msgstr "bilinmeyen yansı argümanı: %s"
-#: builtin/remote.c:164
+#: builtin/remote.c:165
msgid "fetch the remote branches"
msgstr "uzak konum dallarını getir"
-#: builtin/remote.c:166
+#: builtin/remote.c:167
msgid "import all tags and associated objects when fetching"
msgstr "getirirken tüm etiketleri ve ilişkili nesneleri içe aktar"
-#: builtin/remote.c:169
+#: builtin/remote.c:170
msgid "or do not fetch any tag at all (--no-tags)"
msgstr "veya hiçbir etiketi getirme (--no-tags)"
-#: builtin/remote.c:171
+#: builtin/remote.c:172
msgid "branch(es) to track"
msgstr "izlenecek dal(lar)"
-#: builtin/remote.c:172
+#: builtin/remote.c:173
msgid "master branch"
msgstr "ana dal"
-#: builtin/remote.c:174
+#: builtin/remote.c:175
msgid "set up remote as a mirror to push to or fetch from"
msgstr ""
"uzak konum deposunu ona itilecek veya ondan getirilecek bir yansı olarak "
"ayarla"
-#: builtin/remote.c:186
+#: builtin/remote.c:187
msgid "specifying a master branch makes no sense with --mirror"
msgstr "--mirror ile bir ana dal belirtmek anlam ifade etmiyor"
-#: builtin/remote.c:188
+#: builtin/remote.c:189
msgid "specifying branches to track makes sense only with fetch mirrors"
msgstr ""
"izlemek için dallar belirtmek yalnızca getirme yansılarıyla anlamifade ediyor"
-#: builtin/remote.c:195 builtin/remote.c:705
+#: builtin/remote.c:196 builtin/remote.c:716
#, c-format
msgid "remote %s already exists."
msgstr "%s uzak konumu halihazırda var."
-#: builtin/remote.c:240
+#: builtin/remote.c:241
#, c-format
msgid "Could not setup master '%s'"
msgstr "'%s' ana dalı ayarlanamadı"
-#: builtin/remote.c:322
+#: builtin/remote.c:323
#, c-format
msgid "unhandled branch.%s.rebase=%s; assuming 'true'"
msgstr "ilgilenilmemiş branch.%s.rebase=%s, 'true' olduğu var sayılıyor"
-#: builtin/remote.c:366
+#: builtin/remote.c:367
#, c-format
msgid "Could not get fetch map for refspec %s"
msgstr "%s başvuru belirteci için getirme haritası alınamadı"
-#: builtin/remote.c:460 builtin/remote.c:468
+#: builtin/remote.c:461 builtin/remote.c:469
msgid "(matching)"
msgstr "(eÅŸleÅŸiyor)"
-#: builtin/remote.c:472
+#: builtin/remote.c:473
msgid "(delete)"
msgstr "(sil)"
-#: builtin/remote.c:660
+#: builtin/remote.c:664
#, c-format
msgid "could not set '%s'"
msgstr "'%s' ayarlanamadı"
-#: builtin/remote.c:665
+#: builtin/remote.c:669
#, c-format
msgid ""
"The %s configuration remote.pushDefault in:\n"
@@ -20775,17 +21274,17 @@ msgstr ""
"\t%s:%d\n"
"artık var olmayan '%s' uzak konumunu adlandırıyor."
-#: builtin/remote.c:696 builtin/remote.c:841 builtin/remote.c:948
+#: builtin/remote.c:707 builtin/remote.c:866 builtin/remote.c:973
#, c-format
msgid "No such remote: '%s'"
msgstr "Böyle bir uzak konum yok: '%s'"
-#: builtin/remote.c:715
+#: builtin/remote.c:726
#, c-format
msgid "Could not rename config section '%s' to '%s'"
msgstr "'%s' yapılandırma bölümü '%s' olarak yeniden adlandırılamadı"
-#: builtin/remote.c:735
+#: builtin/remote.c:746
#, c-format
msgid ""
"Not updating non-default fetch refspec\n"
@@ -20796,17 +21295,21 @@ msgstr ""
"\t%s\n"
"\tLütfen gerekirse yapılandırmayı el ile güncelleyin."
-#: builtin/remote.c:775
+#: builtin/remote.c:783
+msgid "Renaming remote references"
+msgstr "Uzak konum başvuruları yeniden adlandırılıyor"
+
+#: builtin/remote.c:794
#, c-format
msgid "deleting '%s' failed"
msgstr "'%s' silinmesi başarısız"
-#: builtin/remote.c:809
+#: builtin/remote.c:832
#, c-format
msgid "creating '%s' failed"
msgstr "'%s' oluşturulması başarısız"
-#: builtin/remote.c:887
+#: builtin/remote.c:912
msgid ""
"Note: A branch outside the refs/remotes/ hierarchy was not removed;\n"
"to delete it, use:"
@@ -20820,120 +21323,120 @@ msgstr[1] ""
"Not: refs/remotes hiyerarşisi dışındaki bazı dallar kaldırılmadı;\n"
"onları silmek için şunu kullanın:"
-#: builtin/remote.c:901
+#: builtin/remote.c:926
#, c-format
msgid "Could not remove config section '%s'"
msgstr "'%s' yapılandırsa bölümü kaldırılamadı"
-#: builtin/remote.c:1009
+#: builtin/remote.c:1034
#, c-format
msgid " new (next fetch will store in remotes/%s)"
msgstr " yeni (bir sonraki getirme uzak konumlarda depolayacak/%s"
-#: builtin/remote.c:1012
+#: builtin/remote.c:1037
msgid " tracked"
msgstr " izlendi"
-#: builtin/remote.c:1014
+#: builtin/remote.c:1039
msgid " stale (use 'git remote prune' to remove)"
msgstr " eskimiş (kaldırmak için 'git remote prune' kullanın)"
-#: builtin/remote.c:1016
+#: builtin/remote.c:1041
msgid " ???"
msgstr " ???"
-#: builtin/remote.c:1057
+#: builtin/remote.c:1082
#, c-format
msgid "invalid branch.%s.merge; cannot rebase onto > 1 branch"
msgstr "geçersiz branch.%s.merge; birden çok dala yeniden temellendirilemiyor"
-#: builtin/remote.c:1066
+#: builtin/remote.c:1091
#, c-format
msgid "rebases interactively onto remote %s"
msgstr "%s uzak konumuna etkileÅŸimli olarak yeniden temellendirir"
-#: builtin/remote.c:1068
+#: builtin/remote.c:1093
#, c-format
msgid "rebases interactively (with merges) onto remote %s"
msgstr ""
"%s uzak konumuna etkileÅŸimli olarak (birleÅŸtirmelerle birlikte) yeniden "
"temellendirir"
-#: builtin/remote.c:1071
+#: builtin/remote.c:1096
#, c-format
msgid "rebases onto remote %s"
msgstr "%s uzak konumuna yeniden temellendirir"
-#: builtin/remote.c:1075
+#: builtin/remote.c:1100
#, c-format
msgid " merges with remote %s"
msgstr " %s uzak konumu ile birleÅŸtirir"
-#: builtin/remote.c:1078
+#: builtin/remote.c:1103
#, c-format
msgid "merges with remote %s"
msgstr "%s uzak konumu ile birleÅŸtirir"
-#: builtin/remote.c:1081
+#: builtin/remote.c:1106
#, c-format
msgid "%-*s and with remote %s\n"
msgstr "%-*s ve %s uzak konumu ile birlikte\n"
-#: builtin/remote.c:1124
+#: builtin/remote.c:1149
msgid "create"
msgstr "oluÅŸtur"
-#: builtin/remote.c:1127
+#: builtin/remote.c:1152
msgid "delete"
msgstr "sil"
-#: builtin/remote.c:1131
+#: builtin/remote.c:1156
msgid "up to date"
msgstr "güncel"
-#: builtin/remote.c:1134
+#: builtin/remote.c:1159
msgid "fast-forwardable"
msgstr "ileri sarılabilir"
-#: builtin/remote.c:1137
+#: builtin/remote.c:1162
msgid "local out of date"
msgstr "yerelin tarihi geçmiş"
-#: builtin/remote.c:1144
+#: builtin/remote.c:1169
#, c-format
msgid " %-*s forces to %-*s (%s)"
msgstr " %-*s ÅŸuna zorluyor: %-*s (%s)"
-#: builtin/remote.c:1147
+#: builtin/remote.c:1172
#, c-format
msgid " %-*s pushes to %-*s (%s)"
msgstr " %-*s ÅŸuna itiyor: %-*s (%s)"
-#: builtin/remote.c:1151
+#: builtin/remote.c:1176
#, c-format
msgid " %-*s forces to %s"
msgstr " %-*s ÅŸuna zorluyor: %s"
-#: builtin/remote.c:1154
+#: builtin/remote.c:1179
#, c-format
msgid " %-*s pushes to %s"
msgstr " %-*s ÅŸuna itiyor: %s"
-#: builtin/remote.c:1222
+#: builtin/remote.c:1247
msgid "do not query remotes"
msgstr "uzak konumları sorgulama"
-#: builtin/remote.c:1243
+#: builtin/remote.c:1268
#, c-format
msgid "* remote %s"
msgstr "* uzak konum %s"
-#: builtin/remote.c:1244
+#: builtin/remote.c:1269
#, c-format
msgid " Fetch URL: %s"
msgstr " URL'yi getir: %s"
-#: builtin/remote.c:1245 builtin/remote.c:1261 builtin/remote.c:1398
+#: builtin/remote.c:1270 builtin/remote.c:1286 builtin/remote.c:1423
msgid "(no URL)"
msgstr "(URL yok)"
@@ -20941,189 +21444,189 @@ msgstr "(URL yok)"
#. with the one in " Fetch URL: %s"
#. translation.
#.
-#: builtin/remote.c:1259 builtin/remote.c:1261
+#: builtin/remote.c:1284 builtin/remote.c:1286
#, c-format
msgid " Push URL: %s"
msgstr " URL'yi it: %s"
-#: builtin/remote.c:1263 builtin/remote.c:1265 builtin/remote.c:1267
+#: builtin/remote.c:1288 builtin/remote.c:1290 builtin/remote.c:1292
#, c-format
msgid " HEAD branch: %s"
msgstr " HEAD dalı: %s"
-#: builtin/remote.c:1263
+#: builtin/remote.c:1288
msgid "(not queried)"
msgstr "(sorgulanmadı"
-#: builtin/remote.c:1265
+#: builtin/remote.c:1290
msgid "(unknown)"
msgstr "(bilinmiyor)"
-#: builtin/remote.c:1269
+#: builtin/remote.c:1294
#, c-format
msgid ""
" HEAD branch (remote HEAD is ambiguous, may be one of the following):\n"
msgstr ""
" HEAD dalı (uzak konum HEAD'i belirsiz, aşağıdakilerden biri olabilir):\n"
-#: builtin/remote.c:1281
+#: builtin/remote.c:1306
#, c-format
msgid " Remote branch:%s"
msgid_plural " Remote branches:%s"
msgstr[0] " Uzak dal:%s"
msgstr[1] " Uzak dallar:%s"
-#: builtin/remote.c:1284 builtin/remote.c:1310
+#: builtin/remote.c:1309 builtin/remote.c:1335
msgid " (status not queried)"
msgstr " (durum sorgulanmadı)"
-#: builtin/remote.c:1293
+#: builtin/remote.c:1318
msgid " Local branch configured for 'git pull':"
msgid_plural " Local branches configured for 'git pull':"
msgstr[0] " 'git pull' için yapılandırılan yerel dal:"
msgstr[1] " 'git pull' için yapılandırılan yerel dallar:"
-#: builtin/remote.c:1301
+#: builtin/remote.c:1326
msgid " Local refs will be mirrored by 'git push'"
msgstr " Yerel başvurular 'git pull' tarafından yansılanacak"
-#: builtin/remote.c:1307
+#: builtin/remote.c:1332
#, c-format
msgid " Local ref configured for 'git push'%s:"
msgid_plural " Local refs configured for 'git push'%s:"
msgstr[0] " 'git push'%s için yapılandırılan yerel başvuru:"
msgstr[1] " 'git push'%s için yapılandırılan yerel başvurular:"
-#: builtin/remote.c:1328
+#: builtin/remote.c:1353
msgid "set refs/remotes/<name>/HEAD according to remote"
msgstr "refs/remotes/<ad>/HEAD'i uzak konuma göre ayarla"
-#: builtin/remote.c:1330
+#: builtin/remote.c:1355
msgid "delete refs/remotes/<name>/HEAD"
msgstr "refs/remotes/<ad>/HEAD'i sil"
-#: builtin/remote.c:1344
+#: builtin/remote.c:1369
msgid "Cannot determine remote HEAD"
msgstr "Uzak konum HEAD'i belirlenemiyor"
-#: builtin/remote.c:1346
+#: builtin/remote.c:1371
msgid "Multiple remote HEAD branches. Please choose one explicitly with:"
msgstr "Birden çok uzak konum HEAD dalı. Lütfen birini açıkça seçin:"
-#: builtin/remote.c:1356
+#: builtin/remote.c:1381
#, c-format
msgid "Could not delete %s"
msgstr "%s silinemedi"
-#: builtin/remote.c:1364
+#: builtin/remote.c:1389
#, c-format
msgid "Not a valid ref: %s"
msgstr "Geçerli bir başvuru değil: %s"
-#: builtin/remote.c:1366
+#: builtin/remote.c:1391
#, c-format
msgid "Could not setup %s"
msgstr "%s ayarlanamadı"
-#: builtin/remote.c:1384
+#: builtin/remote.c:1409
#, c-format
msgid " %s will become dangling!"
msgstr " %s sarkacak!"
-#: builtin/remote.c:1385
+#: builtin/remote.c:1410
#, c-format
msgid " %s has become dangling!"
msgstr " %s sarkmaya başladı!"
-#: builtin/remote.c:1394
+#: builtin/remote.c:1419
#, c-format
msgid "Pruning %s"
msgstr "%s budanıyor"
-#: builtin/remote.c:1395
+#: builtin/remote.c:1420
#, c-format
msgid "URL: %s"
msgstr "URL: %s"
-#: builtin/remote.c:1411
+#: builtin/remote.c:1436
#, c-format
msgid " * [would prune] %s"
msgstr " * %s [budanacak]"
-#: builtin/remote.c:1414
+#: builtin/remote.c:1439
#, c-format
msgid " * [pruned] %s"
msgstr " * %s [budandı]"
-#: builtin/remote.c:1459
+#: builtin/remote.c:1484
msgid "prune remotes after fetching"
msgstr "getirme sonrasında uzak konumları buda"
-#: builtin/remote.c:1523 builtin/remote.c:1579 builtin/remote.c:1649
+#: builtin/remote.c:1548 builtin/remote.c:1604 builtin/remote.c:1674
#, c-format
msgid "No such remote '%s'"
msgstr "Böyle bir uzak konum yok '%s'"
-#: builtin/remote.c:1541
+#: builtin/remote.c:1566
msgid "add branch"
msgstr "dal ekle"
-#: builtin/remote.c:1548
+#: builtin/remote.c:1573
msgid "no remote specified"
msgstr "uzak konum belirtilmedi"
-#: builtin/remote.c:1565
+#: builtin/remote.c:1590
msgid "query push URLs rather than fetch URLs"
msgstr "itme URL'lerinden çok getirme URL'lerini sorgula"
-#: builtin/remote.c:1567
+#: builtin/remote.c:1592
msgid "return all URLs"
msgstr "tüm URL'leri döndür"
-#: builtin/remote.c:1597
+#: builtin/remote.c:1622
#, c-format
msgid "no URLs configured for remote '%s'"
msgstr "'%s' uzak konumu için URL yapılandırılmamış"
-#: builtin/remote.c:1623
+#: builtin/remote.c:1648
msgid "manipulate push URLs"
msgstr "itme URL'lerini deÄŸiÅŸtir"
-#: builtin/remote.c:1625
+#: builtin/remote.c:1650
msgid "add URL"
msgstr "URL ekle"
-#: builtin/remote.c:1627
+#: builtin/remote.c:1652
msgid "delete URLs"
msgstr "URL'leri sil"
-#: builtin/remote.c:1634
+#: builtin/remote.c:1659
msgid "--add --delete doesn't make sense"
msgstr "--add --delete bir anlam ifade etmiyor"
-#: builtin/remote.c:1675
+#: builtin/remote.c:1700
#, c-format
msgid "Invalid old URL pattern: %s"
msgstr "Geçersiz eski URL dizgisi: %s"
-#: builtin/remote.c:1683
+#: builtin/remote.c:1708
#, c-format
msgid "No such URL found: %s"
msgstr "Böyle bir URL bulunamadı: %s"
-#: builtin/remote.c:1685
+#: builtin/remote.c:1710
msgid "Will not delete all non-push URLs"
msgstr "Tüm itme olmayan URL'ler silinmeyecek"
-#: builtin/remote.c:1702
+#: builtin/remote.c:1727
msgid "be verbose; must be placed before a subcommand"
msgstr "ayrıntılı anlat; bir altkomuttan önce yerleştirilmelidir"
-#: builtin/repack.c:28
+#: builtin/repack.c:29
msgid "git repack [<options>]"
msgstr "git repack [<seçenekler>]"
-#: builtin/repack.c:33
+#: builtin/repack.c:34
msgid ""
"Incremental repacks are incompatible with bitmap indexes. Use\n"
"--no-write-bitmap-index or disable the pack.writebitmaps configuration."
@@ -21132,145 +21635,145 @@ msgstr ""
"--no-write-bitmap-index kullanın veya pack.writebitmaps\n"
"yapılandırmasını devre dışı bırakın."
-#: builtin/repack.c:201
+#: builtin/repack.c:206
msgid "could not start pack-objects to repack promisor objects"
msgstr "vaatçi nesneleri yeniden paketleme için pack-objects başlatılamadı"
-#: builtin/repack.c:275 builtin/repack.c:820
+#: builtin/repack.c:280 builtin/repack.c:824
msgid "repack: Expecting full hex object ID lines only from pack-objects."
msgstr ""
"repack: Onaltılı tam nesne no satırları yalnızca pack-objects'ten bekleniyor."
-#: builtin/repack.c:299
+#: builtin/repack.c:304
msgid "could not finish pack-objects to repack promisor objects"
msgstr "vaatçi nesneleri yeniden paketleme için pack-objects bitirilemedi"
-#: builtin/repack.c:314
+#: builtin/repack.c:319
#, c-format
msgid "cannot open index for %s"
msgstr "%s için indeks açılamıyor"
-#: builtin/repack.c:373
+#: builtin/repack.c:378
#, c-format
msgid "pack %s too large to consider in geometric progression"
msgstr "%s paketi, geometrik ilerlemede kullanmayı düşünmek için pek büyük"
-#: builtin/repack.c:406 builtin/repack.c:413 builtin/repack.c:418
+#: builtin/repack.c:411 builtin/repack.c:418 builtin/repack.c:423
#, c-format
msgid "pack %s too large to roll up"
msgstr "%s paketi, sarmak için pek büyük"
-#: builtin/repack.c:498
+#: builtin/repack.c:503
#, c-format
msgid "could not open tempfile %s for writing"
msgstr "geçici dosya '%s', yazma için açılamadı"
-#: builtin/repack.c:516
+#: builtin/repack.c:521
msgid "could not close refs snapshot tempfile"
msgstr "başvurular anlık görüntü geçici dosyası kapatılamadı"
-#: builtin/repack.c:630
+#: builtin/repack.c:634
msgid "pack everything in a single pack"
msgstr "her şeyi tek bir pakete sığdır"
-#: builtin/repack.c:632
+#: builtin/repack.c:636
msgid "same as -a, and turn unreachable objects loose"
msgstr "-a ile aynı ve ulaşılamayan nesneleri serbest bırakır"
-#: builtin/repack.c:635
+#: builtin/repack.c:639
msgid "remove redundant packs, and run git-prune-packed"
msgstr "gereksiz paketleri kaldır ve 'git-prune-packed' çalıştır"
-#: builtin/repack.c:637
+#: builtin/repack.c:641
msgid "pass --no-reuse-delta to git-pack-objects"
msgstr "'git-pack-objects'e --no-reuse-delta geçir"
-#: builtin/repack.c:639
+#: builtin/repack.c:643
msgid "pass --no-reuse-object to git-pack-objects"
msgstr "'git-pack-objects'e --no-reuse-object geçir"
-#: builtin/repack.c:641
+#: builtin/repack.c:645
msgid "do not run git-update-server-info"
msgstr "'git-update-server-info' çalıştırma"
-#: builtin/repack.c:644
+#: builtin/repack.c:648
msgid "pass --local to git-pack-objects"
msgstr "--local'ı 'git-pack-objects'e geçir"
-#: builtin/repack.c:646
+#: builtin/repack.c:650
msgid "write bitmap index"
msgstr "biteÅŸlem indeksi yaz"
-#: builtin/repack.c:648
+#: builtin/repack.c:652
msgid "pass --delta-islands to git-pack-objects"
msgstr "--delta-islands'ı 'git-pack-objects'e geçir"
-#: builtin/repack.c:649
+#: builtin/repack.c:653
msgid "approxidate"
msgstr "yaklaşık tarih"
-#: builtin/repack.c:650
+#: builtin/repack.c:654
msgid "with -A, do not loosen objects older than this"
msgstr "-A ile, bundan daha eski nesneleri bırakma"
-#: builtin/repack.c:652
+#: builtin/repack.c:656
msgid "with -a, repack unreachable objects"
msgstr "-a ile, ulaşılamayan nesneleri yeniden paketle"
-#: builtin/repack.c:654
+#: builtin/repack.c:658
msgid "size of the window used for delta compression"
msgstr "delta sıkıştırması için kullanılan pencerenin boyutu"
-#: builtin/repack.c:655 builtin/repack.c:661
+#: builtin/repack.c:659 builtin/repack.c:665
msgid "bytes"
msgstr "baytlar"
-#: builtin/repack.c:656
+#: builtin/repack.c:660
msgid "same as the above, but limit memory size instead of entries count"
msgstr "yukarıdakiyle aynı; ancak girdi sayısı yerine bellek boyutunu kısıtla"
-#: builtin/repack.c:658
+#: builtin/repack.c:662
msgid "limits the maximum delta depth"
msgstr "olabilecek en büyük delta derinliğini kısıtlar"
-#: builtin/repack.c:660
+#: builtin/repack.c:664
msgid "limits the maximum number of threads"
msgstr "iş parçacıklarının olabilecek en büyük sayısını kısıtlar"
-#: builtin/repack.c:662
+#: builtin/repack.c:666
msgid "maximum size of each packfile"
msgstr "her paket dosyasının olabilecek en büyük boyutu"
-#: builtin/repack.c:664
+#: builtin/repack.c:668
msgid "repack objects in packs marked with .keep"
msgstr "nesneleri .keep ile imlenmiÅŸ paketlerde yeniden paketle"
-#: builtin/repack.c:666
+#: builtin/repack.c:670
msgid "do not repack this pack"
msgstr "bu paketi yeniden paketleme"
-#: builtin/repack.c:668
+#: builtin/repack.c:672
msgid "find a geometric progression with factor <N>"
msgstr "<N> faktörlü bir geometrik ilerleme bul"
-#: builtin/repack.c:670
+#: builtin/repack.c:674
msgid "write a multi-pack index of the resulting packs"
msgstr "ortaya çıkan paketlerin bir çoklu paket indeksini yaz"
-#: builtin/repack.c:680
+#: builtin/repack.c:684
msgid "cannot delete packs in a precious-objects repo"
msgstr "bir precious-objects deposundaki paketler silinemiyor"
-#: builtin/repack.c:829
+#: builtin/repack.c:833
msgid "Nothing new to pack."
msgstr "Paketlenecek yeni bir ÅŸey yok."
-#: builtin/repack.c:859
+#: builtin/repack.c:863
#, c-format
msgid "missing required file: %s"
msgstr "gereken dosya eksik: %s"
-#: builtin/repack.c:861
+#: builtin/repack.c:865
#, c-format
msgid "could not unlink: %s"
msgstr "bağlantı kaldırılamadı: %s"
@@ -21287,10 +21790,6 @@ msgstr "git replace [-f] --edit <nesne>"
msgid "git replace [-f] --graft <commit> [<parent>...]"
msgstr "git replace [-f] --graft <işleme> [<üst-öge>...]"
-#: builtin/replace.c:25
-msgid "git replace [-f] --convert-graft-file"
-msgstr "git replace [-f] --convert-graft-file"
-
#: builtin/replace.c:26
msgid "git replace -d <object>..."
msgstr "git replace -d <nesne>..."
@@ -21592,98 +22091,95 @@ msgstr "%s ağacı bulunamadı."
msgid "HEAD is now at %s"
msgstr "HEAD ÅŸimdi ÅŸurada: %s"
-#: builtin/reset.c:299
+#: builtin/reset.c:304
#, c-format
msgid "Cannot do a %s reset in the middle of a merge."
msgstr "Bir birleştirmenin ortasında %s sıfırlaması yapılamıyor."
-#: builtin/reset.c:396 builtin/stash.c:606 builtin/stash.c:680
-#: builtin/stash.c:704
+#: builtin/reset.c:402 builtin/stash.c:606 builtin/stash.c:669
+#: builtin/stash.c:693
msgid "be quiet, only report errors"
msgstr "sessiz ol, yalnızca hataları bildir"
-#: builtin/reset.c:398
+#: builtin/reset.c:404
+msgid "skip refreshing the index after reset"
+msgstr "sıfırlama sonrası indeksi yenilemeyi atla"
+
+#: builtin/reset.c:406
msgid "reset HEAD and index"
msgstr "HEAD'i ve indeksi sıfırla"
-#: builtin/reset.c:399
+#: builtin/reset.c:407
msgid "reset only HEAD"
msgstr "yalnızca HEAD'i sıfırla"
-#: builtin/reset.c:401 builtin/reset.c:403
+#: builtin/reset.c:409 builtin/reset.c:411
msgid "reset HEAD, index and working tree"
msgstr "HEAD'i, indeksi ve çalışma ağacını sıfırla"
-#: builtin/reset.c:405
+#: builtin/reset.c:413
msgid "reset HEAD but keep local changes"
msgstr "HEAD'i sıfırla; ancak yerel değişiklikleri tut"
-#: builtin/reset.c:411
+#: builtin/reset.c:419
msgid "record only the fact that removed paths will be added later"
msgstr ""
"yalnızca kaldırılan yolların daha sonra ekleneceği gerçeğinin kaydını yaz"
-#: builtin/reset.c:445
+#: builtin/reset.c:452
#, c-format
msgid "Failed to resolve '%s' as a valid revision."
msgstr "'%s' geçerli bir revizyon olarak çözülemedi."
-#: builtin/reset.c:453
+#: builtin/reset.c:460
#, c-format
msgid "Failed to resolve '%s' as a valid tree."
msgstr "'%s' geçerli bir ağaç olarak çözülemedi."
-#: builtin/reset.c:472
+#: builtin/reset.c:479
msgid "--mixed with paths is deprecated; use 'git reset -- <paths>' instead."
msgstr ""
"belirtilmiş yol ile --mixed artık eski; yerine 'git reset -- <yollar>' "
"kullanın."
-#: builtin/reset.c:474
+#: builtin/reset.c:481
#, c-format
msgid "Cannot do %s reset with paths."
msgstr "Belirtilmiş yol varken %s sıfırlaması yapılamıyor."
-#: builtin/reset.c:489
+#: builtin/reset.c:496
#, c-format
msgid "%s reset is not allowed in a bare repository"
msgstr "%s sıfırlamasına çıplak bir depoda izin verilmiyor"
-#: builtin/reset.c:520
+#: builtin/reset.c:527
msgid "Unstaged changes after reset:"
msgstr "Sıfırlama sonrasında hazırlanmamış değişiklikler:"
-#: builtin/reset.c:523
+#: builtin/reset.c:530
#, c-format
msgid ""
-"\n"
-"It took %.2f seconds to enumerate unstaged changes after reset. You can\n"
-"use '--quiet' to avoid this. Set the config setting reset.quiet to true\n"
-"to make this the default.\n"
+"It took %.2f seconds to refresh the index after reset. You can use\n"
+"'--no-refresh' to avoid this."
msgstr ""
-"\n"
-"Sıfırlama sonrasında hazırlanmamış değişiklikleri ortaya dökme %.2f saniye\n"
-"sürdü. Bundan kaçınmak için --quiet kullanabilir, öntanımlı yapmak içinse\n"
-"reset.quiet yapılandırma değişkenini 'true' olarak değiştirebilirsiniz.\n"
+"Sıfırlamadan sonra indeksi yenilemek %.2f saniye sürdü. Bundan kaçınmak "
+"için\n"
+"'--no-refresh' kullanabilirsiniz."
-#: builtin/reset.c:541
+#: builtin/reset.c:547
#, c-format
msgid "Could not reset index file to revision '%s'."
msgstr "İndeks dosyası '%s' revizyonuna sıfırlanamadı."
-#: builtin/reset.c:546
+#: builtin/reset.c:552
msgid "Could not write new index file."
msgstr "Yeni indeks dosyası yazılamadı."
-#: builtin/rev-list.c:602
-msgid "object filtering requires --objects"
-msgstr "nesne süzme --objects gerektiriyor"
-
-#: builtin/rev-list.c:674
+#: builtin/rev-list.c:659
msgid "rev-list does not support display of notes"
msgstr "rev-list not görüntülemesini desteklemiyor"
-#: builtin/rev-list.c:679
+#: builtin/rev-list.c:664
#, c-format
msgid "marked counting and '%s' cannot be used together"
msgstr "imli sayım ve '%s' birlikte kullanılamaz"
@@ -22031,11 +22527,11 @@ msgstr "alan"
msgid "group by field"
msgstr "alan ile grupla"
-#: builtin/shortlog.c:394
+#: builtin/shortlog.c:395
msgid "too many arguments given outside repository"
msgstr "depo dışında çok fazla argüman verildi"
-#: builtin/show-branch.c:13
+#: builtin/show-branch.c:14
msgid ""
"git show-branch [-a | --all] [-r | --remotes] [--topo-order | --date-order]\n"
" [--current] [--color[=<when>] | --no-color] [--sparse]\n"
@@ -22047,119 +22543,119 @@ msgstr ""
" [--more=<n> | --list | --independent | --merge-base]\n"
" [--no-name | --sha1-name] [--topics] [(<bÅŸvr> | <glob>)...]"
-#: builtin/show-branch.c:17
+#: builtin/show-branch.c:18
msgid "git show-branch (-g | --reflog)[=<n>[,<base>]] [--list] [<ref>]"
msgstr "git show-branch (-g | --reflog)[=<n>[,<temel>]] [--list] [<baÅŸvuru>]"
-#: builtin/show-branch.c:395
+#: builtin/show-branch.c:396
#, c-format
msgid "ignoring %s; cannot handle more than %d ref"
msgid_plural "ignoring %s; cannot handle more than %d refs"
msgstr[0] "%s yok sayılıyor; %d başvurudan fazlası ele alınamıyor"
msgstr[1] "%s yok sayılıyor; %d başvurudan fazlası ele alınamıyor"
-#: builtin/show-branch.c:547
+#: builtin/show-branch.c:548
#, c-format
msgid "no matching refs with %s"
msgstr "%s ile eÅŸleÅŸen baÅŸvuru yok"
-#: builtin/show-branch.c:644
+#: builtin/show-branch.c:645
msgid "show remote-tracking and local branches"
msgstr "uzak izleme dallarını ve yerel dalları göster"
-#: builtin/show-branch.c:646
+#: builtin/show-branch.c:647
msgid "show remote-tracking branches"
msgstr "uzak izleme dallarını göster"
-#: builtin/show-branch.c:648
+#: builtin/show-branch.c:649
msgid "color '*!+-' corresponding to the branch"
msgstr "'*!+-'i dala göre renklendir"
-#: builtin/show-branch.c:650
+#: builtin/show-branch.c:651
msgid "show <n> more commits after the common ancestor"
msgstr "ortak atadan sonra <n> işleme daha göster"
-#: builtin/show-branch.c:652
+#: builtin/show-branch.c:653
msgid "synonym to more=-1"
msgstr "more=-+ eşanlamlısı"
-#: builtin/show-branch.c:653
+#: builtin/show-branch.c:654
msgid "suppress naming strings"
msgstr "adlandırma dizilerini gizle"
-#: builtin/show-branch.c:655
+#: builtin/show-branch.c:656
msgid "include the current branch"
msgstr "geçerli dalı içer"
-#: builtin/show-branch.c:657
+#: builtin/show-branch.c:658
msgid "name commits with their object names"
msgstr "işlemeleri kendi nesne adlarıyla adlandır"
-#: builtin/show-branch.c:659
+#: builtin/show-branch.c:660
msgid "show possible merge bases"
msgstr "olası birleştirme temellerini göster"
-#: builtin/show-branch.c:661
+#: builtin/show-branch.c:662
msgid "show refs unreachable from any other ref"
msgstr "başka başvurudan erişilemeyen başvuruları göster"
-#: builtin/show-branch.c:663
+#: builtin/show-branch.c:664
msgid "show commits in topological order"
msgstr "işlemeleri ilingesel sırada göster"
-#: builtin/show-branch.c:666
+#: builtin/show-branch.c:667
msgid "show only commits not on the first branch"
msgstr "yalnızca birinci dalda olmayan işlemeleri göster"
-#: builtin/show-branch.c:668
+#: builtin/show-branch.c:669
msgid "show merges reachable from only one tip"
msgstr "yalnızca bir uçtan ulaşılabilir olan birleştirmeleri göster"
-#: builtin/show-branch.c:670
+#: builtin/show-branch.c:671
msgid "topologically sort, maintaining date order where possible"
msgstr "olabildiğince tarih sırasını koruyarak ilingesel biçimde sırala"
-#: builtin/show-branch.c:673
+#: builtin/show-branch.c:674
msgid "<n>[,<base>]"
msgstr "<n>[,<temel>]"
-#: builtin/show-branch.c:674
+#: builtin/show-branch.c:675
msgid "show <n> most recent ref-log entries starting at base"
msgstr "tabanda başlayarak en yeni <n> başvuru günlüğü girdilerini göster"
-#: builtin/show-branch.c:734
+#: builtin/show-branch.c:735
msgid "no branches given, and HEAD is not valid"
msgstr "dal verilmedi ve HEAD geçersiz"
-#: builtin/show-branch.c:737
+#: builtin/show-branch.c:738
msgid "--reflog option needs one branch name"
msgstr "--reflog seçeneği için bir dal adı gerekli"
-#: builtin/show-branch.c:740
+#: builtin/show-branch.c:741
#, c-format
msgid "only %d entry can be shown at one time."
msgid_plural "only %d entries can be shown at one time."
-msgstr[0] "aynı anda yalnızca %d girdi gösterilebilir"
-msgstr[1] "aynı anda yalnızca %d girdi gösterilebilir"
+msgstr[0] "Aynı anda yalnızca %d girdi gösterilebilir."
+msgstr[1] "Aynı anda yalnızca %d girdi gösterilebilir."
-#: builtin/show-branch.c:744
+#: builtin/show-branch.c:745
#, c-format
msgid "no such ref %s"
msgstr "böyle bir başvuru yok: %s"
-#: builtin/show-branch.c:830
+#: builtin/show-branch.c:831
#, c-format
msgid "cannot handle more than %d rev."
msgid_plural "cannot handle more than %d revs."
msgstr[0] "%d revizyondan başkası ele alınamıyor."
msgstr[1] "%d revizyondan başkası ele alınamıyor."
-#: builtin/show-branch.c:834
+#: builtin/show-branch.c:835
#, c-format
msgid "'%s' is not a valid ref."
msgstr "'%s' geçerli bir başvuru değil."
-#: builtin/show-branch.c:837
+#: builtin/show-branch.c:838
#, c-format
msgid "cannot find commit %s (%s)"
msgstr "%s işlemesi bulunamıyor (%s)"
@@ -22216,24 +22712,20 @@ msgstr "sonuçları stdout'a yazdırma (--verify ile birlikte kullanışlı)"
msgid "show refs from stdin that aren't in local repository"
msgstr "stdin'den yerel bir depoda olmayan başvuruları göster"
-#: builtin/sparse-checkout.c:22
+#: builtin/sparse-checkout.c:23
msgid "git sparse-checkout (init|list|set|add|reapply|disable) <options>"
msgstr "git sparse-checkout (init|list|set|add|reapply|disable) <seçenekler>"
-#: builtin/sparse-checkout.c:46
-msgid "git sparse-checkout list"
-msgstr "git sparse-checkout list"
-
-#: builtin/sparse-checkout.c:60
+#: builtin/sparse-checkout.c:61
msgid "this worktree is not sparse"
msgstr "bu çalışma ağacı aralıklı değil"
-#: builtin/sparse-checkout.c:75
+#: builtin/sparse-checkout.c:76
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:176
+#: builtin/sparse-checkout.c:177
#, c-format
msgid ""
"directory '%s' contains untracked files, but is not in the sparse-checkout "
@@ -22242,99 +22734,130 @@ msgstr ""
"'%s' dizini izlenmeyen dosyalar içeriyor; ancak aralıklı çıkış konisinde "
"deÄŸil"
-#: builtin/sparse-checkout.c:184
+#: builtin/sparse-checkout.c:185
#, c-format
msgid "failed to remove directory '%s'"
msgstr "'%s' dizini kaldırılamadı"
-#: builtin/sparse-checkout.c:324
+#: builtin/sparse-checkout.c:327
msgid "failed to create directory for sparse-checkout file"
msgstr "aralıklı çıkış dosyası için dizin oluşturulamadı"
-#: builtin/sparse-checkout.c:365
-msgid "unable to upgrade repository format to enable worktreeConfig"
-msgstr "depo biçimi worktreeConfig etkinleştirmesi için yükseltilemiyor"
-
-#: builtin/sparse-checkout.c:367
-msgid "failed to set extensions.worktreeConfig setting"
-msgstr "extensions.worktreeConfig yapılandırması ayarlanamadı"
+#: builtin/sparse-checkout.c:366
+msgid "failed to initialize worktree config"
+msgstr "çalışma ağacı yapılandırması ilklendirilemedi"
#: builtin/sparse-checkout.c:411
msgid "failed to modify sparse-index config"
msgstr "sparse-index yapılandırması değiştirilemedi"
-#: builtin/sparse-checkout.c:422
-msgid "git sparse-checkout init [--cone] [--[no-]sparse-index]"
-msgstr "git sparse-checkout init [--cone] [--[no-]sparse-index]"
-
-#: builtin/sparse-checkout.c:441 builtin/sparse-checkout.c:729
-#: builtin/sparse-checkout.c:778
+#: builtin/sparse-checkout.c:441 builtin/sparse-checkout.c:793
+#: builtin/sparse-checkout.c:847
msgid "initialize the sparse-checkout in cone mode"
msgstr "aralıklı çıkışı koni kipinde ilklendir"
-#: builtin/sparse-checkout.c:443 builtin/sparse-checkout.c:731
-#: builtin/sparse-checkout.c:780
+#: builtin/sparse-checkout.c:443 builtin/sparse-checkout.c:795
+#: builtin/sparse-checkout.c:849
msgid "toggle the use of a sparse index"
msgstr "bir aralıklı indeksin kullanımını aç/kapat"
-#: builtin/sparse-checkout.c:476
+#: builtin/sparse-checkout.c:479
#, c-format
msgid "failed to open '%s'"
msgstr "'%s' açılamadı"
-#: builtin/sparse-checkout.c:528
+#: builtin/sparse-checkout.c:531
#, c-format
msgid "could not normalize path %s"
msgstr "'%s' yolu olağanlaştırılamadı"
-#: builtin/sparse-checkout.c:557
+#: builtin/sparse-checkout.c:560
#, 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:612 builtin/sparse-checkout.c:640
+#: builtin/sparse-checkout.c:615 builtin/sparse-checkout.c:643
msgid "unable to load existing sparse-checkout patterns"
msgstr "mevcut aralıklı çıkış dizgileri yüklenemiyor"
-#: builtin/sparse-checkout.c:616
+#: builtin/sparse-checkout.c:619
msgid "existing sparse-checkout patterns do not use cone mode"
msgstr "mevcut aralıklı çıkış dizgileri koni kipini kullanmıyor"
-#: builtin/sparse-checkout.c:682
-msgid "git sparse-checkout add (--stdin | <patterns>)"
-msgstr "git sparse-checkout add (--stdin | <dizgiler>)"
+#: builtin/sparse-checkout.c:707
+msgid "please run from the toplevel directory in non-cone mode"
+msgstr "koni dışı kipte en üst düzey dizinden çalıştırın"
+
+#: builtin/sparse-checkout.c:712
+msgid "specify directories rather than patterns (no leading slash)"
+msgstr "dizgiler yerine dizinleri belirt (önünde eğik çizgi yok)"
+
+#: builtin/sparse-checkout.c:714
+msgid ""
+"specify directories rather than patterns. If your directory starts with a "
+"'!', pass --skip-checks"
+msgstr ""
+"dizgiler yerine dizinleri belirt; dizininiz bir '!' ile başlıyorsa --skip-"
+"checks'i geç"
+
+#: builtin/sparse-checkout.c:716
+msgid ""
+"specify directories rather than patterns. If your directory really has any "
+"of '*?[]\\' in it, pass --skip-checks"
+msgstr ""
+"dizgiler yerine dizinleri belirt; dizininizin içinde '*?[[\\' varsa --skip-"
+"checks'i geç"
+
+#: builtin/sparse-checkout.c:732
+#, c-format
+msgid ""
+"'%s' is not a directory; to treat it as a directory anyway, rerun with --"
+"skip-checks"
+msgstr ""
+"%s, bir dizin değil; yine de bir dizinmiş gibi davranmak için --skip-checks "
+"ile yeniden çalıştır"
+
+#: builtin/sparse-checkout.c:734
+#, c-format
+msgid ""
+"pass a leading slash before paths such as '%s' if you want a single file "
+"(see NON-CONE PROBLEMS in the git-sparse-checkout manual)."
+msgstr ""
+"Tek bir dosya istiyorsanız yollardan önce bir eğik çizgi geçirin ('%s' gibi) "
+"git-sparse-checkout kılavuzunda NON-CONE PROBLEMS'a bakın)."
+
+#: builtin/sparse-checkout.c:739
+msgid "git sparse-checkout add [--skip-checks] (--stdin | <patterns>)"
+msgstr "git sparse-checkout add [--skip-checks] (--stdin | <dizgiler>)"
-#: builtin/sparse-checkout.c:694 builtin/sparse-checkout.c:733
+#: builtin/sparse-checkout.c:752 builtin/sparse-checkout.c:797
+msgid ""
+"skip some sanity checks on the given paths that might give false positives"
+msgstr "yanlış pozitif verebilen yollarda düzgünlük denetimlerini atla"
+
+#: builtin/sparse-checkout.c:755 builtin/sparse-checkout.c:800
msgid "read patterns from standard in"
msgstr "dizgileri stdin'den oku"
-#: builtin/sparse-checkout.c:699
+#: builtin/sparse-checkout.c:760
msgid "no sparse-checkout to add to"
msgstr "kendisine eklenecek bir aralıklı çıkış yok"
-#: builtin/sparse-checkout.c:712
+#: builtin/sparse-checkout.c:775
msgid ""
-"git sparse-checkout set [--[no-]cone] [--[no-]sparse-index] (--stdin | "
-"<patterns>)"
+"git sparse-checkout set [--[no-]cone] [--[no-]sparse-index] [--skip-checks] "
+"(--stdin | <patterns>)"
msgstr ""
-"git sparse-checkout set [--[no-]cone] [--[no-]sparse-index] (--stdin | "
-"<dizgiler>)"
+"git sparse-checkout set [--[no-]cone] [--[no-]sparse-index] [--skip-checks] "
+"(--stdin | <dizgiler>)"
-#: builtin/sparse-checkout.c:765
-msgid "git sparse-checkout reapply [--[no-]cone] [--[no-]sparse-index]"
-msgstr "git sparse-checkout reapply [--[no-]cone] [--[no-]sparse-index]"
-
-#: builtin/sparse-checkout.c:785
+#: builtin/sparse-checkout.c:854
msgid "must be in a sparse-checkout to reapply sparsity patterns"
msgstr ""
"aralıklılık dizgilerinin yeniden uygulanması için bir aralıklı çıkış içinde "
"olmalı"
-#: builtin/sparse-checkout.c:803
-msgid "git sparse-checkout disable"
-msgstr "git sparse-checkout disable"
-
-#: builtin/sparse-checkout.c:845
+#: builtin/sparse-checkout.c:914
msgid "error while refreshing working directory"
msgstr "çalışma dizini yenilenirken hata"
@@ -22477,167 +23000,151 @@ msgstr "İndeks zuladan çıkartılmamıştı."
msgid "could not restore untracked files from stash"
msgstr "izlenmeyen dosyalar zuladan geri getirilemedi"
-#: builtin/stash.c:608 builtin/stash.c:706
+#: builtin/stash.c:608 builtin/stash.c:695
msgid "attempt to recreate the index"
msgstr "indeks yeniden oluşturulmaya çalışılıyor"
-#: builtin/stash.c:652
+#: builtin/stash.c:641
#, c-format
msgid "Dropped %s (%s)"
msgstr "%s bırakıldı (%s)"
-#: builtin/stash.c:655
+#: builtin/stash.c:644
#, c-format
msgid "%s: Could not drop stash entry"
msgstr "%s: Zula girdisi bırakılamadı"
-#: builtin/stash.c:668
+#: builtin/stash.c:657
#, c-format
msgid "'%s' is not a stash reference"
msgstr "'%s' bir zula baÅŸvurusu deÄŸil"
-#: builtin/stash.c:718
+#: builtin/stash.c:707
msgid "The stash entry is kept in case you need it again."
msgstr "Zula girdisi yeniden gereksiniminiz olursa diye saklanıyor."
-#: builtin/stash.c:741
+#: builtin/stash.c:730
msgid "No branch name specified"
msgstr "Dal adı belirtilmedi"
-#: builtin/stash.c:825
+#: builtin/stash.c:809
msgid "failed to parse tree"
msgstr "ağaç ayrıştırılamadı"
-#: builtin/stash.c:836
+#: builtin/stash.c:820
msgid "failed to unpack trees"
msgstr "ağaçların paketi açılamadı"
-#: builtin/stash.c:856
+#: builtin/stash.c:840
msgid "include untracked files in the stash"
msgstr "zulada izlenmeyen dosyaları içer"
-#: builtin/stash.c:859
+#: builtin/stash.c:843
msgid "only show untracked files in the stash"
msgstr "zulada yalnızca izlenmeyen dosyaları göster"
-#: builtin/stash.c:946 builtin/stash.c:983
+#: builtin/stash.c:930 builtin/stash.c:967
#, c-format
msgid "Cannot update %s with %s"
msgstr "%s, %s ile güncellenemiyor"
-#: builtin/stash.c:964 builtin/stash.c:1678 builtin/stash.c:1750
+#: builtin/stash.c:948 builtin/stash.c:1667 builtin/stash.c:1739
msgid "stash message"
msgstr "zula iletisi"
-#: builtin/stash.c:974
+#: builtin/stash.c:958
msgid "\"git stash store\" requires one <commit> argument"
msgstr "\"git stash store\" bir <işleme> argümanı gerektirir"
-#: builtin/stash.c:1159
+#: builtin/stash.c:1143
msgid "No staged changes"
msgstr "Hazırlanan değişiklik yok"
-#: builtin/stash.c:1220
+#: builtin/stash.c:1204
msgid "No changes selected"
msgstr "Değişiklik seçilmedi"
-#: builtin/stash.c:1320
+#: builtin/stash.c:1304
msgid "You do not have the initial commit yet"
msgstr "Henüz ilk işleme yapılmamış"
-#: builtin/stash.c:1347
+#: builtin/stash.c:1331
msgid "Cannot save the current index state"
msgstr "Geçerli indeks durumu kaydedilemiyor"
-#: builtin/stash.c:1356
+#: builtin/stash.c:1340
msgid "Cannot save the untracked files"
msgstr "Ä°zlenmeyen dosyalar kaydedilemiyor"
-#: builtin/stash.c:1367 builtin/stash.c:1386
+#: builtin/stash.c:1351 builtin/stash.c:1370
msgid "Cannot save the current worktree state"
msgstr "Geçerli çalışma ağacı durumu kaydedilemiyor"
-#: builtin/stash.c:1377
+#: builtin/stash.c:1361
msgid "Cannot save the current staged state"
msgstr "Geçerli hazırlananlar durumu kaydedilemiyor"
-#: builtin/stash.c:1414
+#: builtin/stash.c:1398
msgid "Cannot record working tree state"
msgstr "Çalışma ağacı durumu kaydı yazılamıyor"
-#: builtin/stash.c:1463
+#: builtin/stash.c:1447
msgid "Can't use --patch and --include-untracked or --all at the same time"
msgstr "--patch, --include-untracked veya --all hepsi bir anda kullanılamıyor"
-#: builtin/stash.c:1474
+#: builtin/stash.c:1458
msgid "Can't use --staged and --include-untracked or --all at the same time"
msgstr "--staged, --include-untracked veya --all hepsi bir anda kullanılamıyor"
-#: builtin/stash.c:1492
+#: builtin/stash.c:1476
msgid "Did you forget to 'git add'?"
msgstr "'git add' yapmayı mı unuttunuz?"
-#: builtin/stash.c:1507
+#: builtin/stash.c:1491
msgid "No local changes to save"
msgstr "Kaydedilecek yerel deÄŸiÅŸiklik yok"
-#: builtin/stash.c:1514
+#: builtin/stash.c:1498
msgid "Cannot initialize stash"
msgstr "Zula ilklendirilemiyor"
-#: builtin/stash.c:1529
+#: builtin/stash.c:1513
msgid "Cannot save the current status"
msgstr "Geçerli durum kaydedilemiyor"
-#: builtin/stash.c:1534
+#: builtin/stash.c:1518
#, c-format
msgid "Saved working directory and index state %s"
msgstr "Çalışma dizini ve indeks durumu %s kaydedildi"
-#: builtin/stash.c:1627
+#: builtin/stash.c:1615
msgid "Cannot remove worktree changes"
msgstr "Çalışma ağacı değişiklikleri kaldırılamıyor"
-#: builtin/stash.c:1667 builtin/stash.c:1739
+#: builtin/stash.c:1656 builtin/stash.c:1728
msgid "keep index"
msgstr "indeksi tut"
-#: builtin/stash.c:1669 builtin/stash.c:1741
+#: builtin/stash.c:1658 builtin/stash.c:1730
msgid "stash staged changes only"
msgstr "yalnızca hazırlanan değişiklikleri zulala"
-#: builtin/stash.c:1671 builtin/stash.c:1743
+#: builtin/stash.c:1660 builtin/stash.c:1732
msgid "stash in patch mode"
msgstr "yama kipinde zula"
-#: builtin/stash.c:1672 builtin/stash.c:1744
+#: builtin/stash.c:1661 builtin/stash.c:1733
msgid "quiet mode"
msgstr "sessiz kip"
-#: builtin/stash.c:1674 builtin/stash.c:1746
+#: builtin/stash.c:1663 builtin/stash.c:1735
msgid "include untracked files in stash"
msgstr "zulada izlenmeyen dosyaları içer"
-#: builtin/stash.c:1676 builtin/stash.c:1748
+#: builtin/stash.c:1665 builtin/stash.c:1737
msgid "include ignore files"
msgstr "yok sayma dosyalarını içer"
-#: builtin/stash.c:1783
-msgid ""
-"the stash.useBuiltin support has been removed!\n"
-"See its entry in 'git help config' for details."
-msgstr ""
-"stash.useBuiltin desteği kaldırıldı!\n"
-"Ayrıntılar için 'git help config' içindeki girdisine bakın."
-
-#: builtin/stripspace.c:18
-msgid "git stripspace [-s | --strip-comments]"
-msgstr "git stripspace [-s | --strip-comments]"
-
-#: builtin/stripspace.c:19
-msgid "git stripspace [-c | --comment-lines]"
-msgstr "git stripspace [-c | --comment-lines]"
-
#: builtin/stripspace.c:37
msgid "skip and remove all lines starting with comment character"
msgstr "yorum karakteri ile başlayan tüm satırları atla ve kaldır"
@@ -22646,21 +23153,17 @@ msgstr "yorum karakteri ile başlayan tüm satırları atla ve kaldır"
msgid "prepend comment character and space to each line"
msgstr "her satırın başına yorum karakteri ve boşluk koy"
-#: builtin/submodule--helper.c:46 builtin/submodule--helper.c:2668
+#: builtin/submodule--helper.c:50 builtin/submodule--helper.c:2486
#, c-format
msgid "Expecting a full ref name, got %s"
msgstr "Tam bir başvuru adı bekleniyordu, %s alındı"
-#: builtin/submodule--helper.c:63
-msgid "submodule--helper print-default-remote takes no arguments"
-msgstr "submodule--helper print-default-remote argümanı almaz"
-
-#: builtin/submodule--helper.c:101
+#: builtin/submodule--helper.c:103
#, c-format
msgid "cannot strip one component off url '%s'"
msgstr "'%s' url'sinden bir bileşen çıkarılamıyor"
-#: builtin/submodule--helper.c:211
+#: builtin/submodule--helper.c:213
#, c-format
msgid ""
"could not look up configuration '%s'. Assuming this repository is its own "
@@ -22669,26 +23172,26 @@ msgstr ""
"'%s' yapılandırması aranamadı. Bu deponun kendi yetkili üstkaynağı olduğu "
"varsayılıyor."
-#: builtin/submodule--helper.c:405 builtin/submodule--helper.c:1859
+#: builtin/submodule--helper.c:413 builtin/submodule--helper.c:1873
msgid "alternative anchor for relative paths"
msgstr "göreceli yollar için alternatif tutturucu"
-#: builtin/submodule--helper.c:410
+#: builtin/submodule--helper.c:418
msgid "git submodule--helper list [--prefix=<path>] [<path>...]"
msgstr "git submodule--helper list [--prefix=<yol>] [<yol>...]"
-#: builtin/submodule--helper.c:468 builtin/submodule--helper.c:605
-#: builtin/submodule--helper.c:628
+#: builtin/submodule--helper.c:476 builtin/submodule--helper.c:617
+#: builtin/submodule--helper.c:640
#, c-format
msgid "No url found for submodule path '%s' in .gitmodules"
msgstr ".gitmodules içinde '%s' altmodül yolu için url bulunamadı"
-#: builtin/submodule--helper.c:520
+#: builtin/submodule--helper.c:528
#, c-format
msgid "Entering '%s'\n"
msgstr "Giriliyor: '%s'\n"
-#: builtin/submodule--helper.c:523
+#: builtin/submodule--helper.c:531
#, c-format
msgid ""
"run_command returned non-zero status for %s\n"
@@ -22697,7 +23200,7 @@ msgstr ""
"run_command, %s için sıfır olmayan durum döndürdü\n"
"."
-#: builtin/submodule--helper.c:545
+#: builtin/submodule--helper.c:553
#, c-format
msgid ""
"run_command returned non-zero status while recursing in the nested "
@@ -22707,67 +23210,67 @@ msgstr ""
"run_command, %s ögesinin iç içe geçmiş altmodülleri içinde özyinelerken "
"sıfır olmayan durum döndürdü."
-#: builtin/submodule--helper.c:561
+#: builtin/submodule--helper.c:569
msgid "suppress output of entering each submodule command"
msgstr "her bir altmodül komutu girişinin çıktısını gizle"
-#: builtin/submodule--helper.c:563 builtin/submodule--helper.c:864
-#: builtin/submodule--helper.c:1453
+#: builtin/submodule--helper.c:571 builtin/submodule--helper.c:876
+#: builtin/submodule--helper.c:1458
msgid "recurse into nested submodules"
msgstr "iç içe geçmiş altmodüle özyinele"
-#: builtin/submodule--helper.c:568
+#: builtin/submodule--helper.c:576
msgid "git submodule--helper foreach [--quiet] [--recursive] [--] <command>"
msgstr "git submodule--helper foreach [--quiet] [--recursive] [--] <komut>"
-#: builtin/submodule--helper.c:642
+#: builtin/submodule--helper.c:654
#, c-format
msgid "Failed to register url for submodule path '%s'"
msgstr "Altmodül yolu url'si '%s' kaydı yapılamadı"
-#: builtin/submodule--helper.c:646
+#: builtin/submodule--helper.c:658
#, c-format
msgid "Submodule '%s' (%s) registered for path '%s'\n"
msgstr "'%s' altmodülü (%s), '%s' yoluna kaydı yapıldı\n"
-#: builtin/submodule--helper.c:656
+#: builtin/submodule--helper.c:668
#, c-format
msgid "warning: command update mode suggested for submodule '%s'\n"
msgstr "uyarı: '%s' altmodülü için komut güncellemesi önerilmiyor\n"
-#: builtin/submodule--helper.c:663
+#: builtin/submodule--helper.c:675
#, c-format
msgid "Failed to register update mode for submodule path '%s'"
msgstr "'%s' altmodülü yolu için güncelleme kipi kaydı yapılamadı"
-#: builtin/submodule--helper.c:685
+#: builtin/submodule--helper.c:697
msgid "suppress output for initializing a submodule"
msgstr "bir altmodül ilklendirmesi çıktısını gizle"
-#: builtin/submodule--helper.c:690
+#: builtin/submodule--helper.c:702
msgid "git submodule--helper init [<options>] [<path>]"
msgstr "git submodule--helper init [<seçenekler>] [<yol>]"
-#: builtin/submodule--helper.c:763 builtin/submodule--helper.c:898
+#: builtin/submodule--helper.c:775 builtin/submodule--helper.c:910
#, c-format
msgid "no submodule mapping found in .gitmodules for path '%s'"
msgstr "'%s' yolu için .gitmodules içinde altmodül eşlemi bulunmadı"
-#: builtin/submodule--helper.c:811
+#: builtin/submodule--helper.c:823
#, c-format
msgid "could not resolve HEAD ref inside the submodule '%s'"
msgstr "'%s' altmodülü içinde HEAD başvurusu çözülemedi"
-#: builtin/submodule--helper.c:838 builtin/submodule--helper.c:1423
+#: builtin/submodule--helper.c:850 builtin/submodule--helper.c:1428
#, c-format
msgid "failed to recurse into submodule '%s'"
msgstr "'%s' altmodülüne özyinelenemedi"
-#: builtin/submodule--helper.c:862 builtin/submodule--helper.c:1590
+#: builtin/submodule--helper.c:874 builtin/submodule--helper.c:1595
msgid "suppress submodule status output"
msgstr "altmodül durum çıktısını gizle"
-#: builtin/submodule--helper.c:863
+#: builtin/submodule--helper.c:875
msgid ""
"use commit stored in the index instead of the one stored in the submodule "
"HEAD"
@@ -22775,92 +23278,92 @@ msgstr ""
"altmodül HEAD'i içinde depolanan işleme yerine indekste depolanan işlemeyi "
"kullan"
-#: builtin/submodule--helper.c:869
+#: builtin/submodule--helper.c:881
msgid "git submodule status [--quiet] [--cached] [--recursive] [<path>...]"
msgstr "git submodule status [--quiet] [--cached] [--recursive] [<yol>...]"
-#: builtin/submodule--helper.c:893
+#: builtin/submodule--helper.c:905
msgid "git submodule--helper name <path>"
msgstr "git submodule--helper name <yol>"
-#: builtin/submodule--helper.c:965
+#: builtin/submodule--helper.c:977
#, c-format
msgid "* %s %s(blob)->%s(submodule)"
msgstr "* %s %s(ikili nesne)->%s(altmodül)"
-#: builtin/submodule--helper.c:968
+#: builtin/submodule--helper.c:980
#, c-format
msgid "* %s %s(submodule)->%s(blob)"
msgstr "* %s %s(altmodül)->%s(ikili nesne)"
-#: builtin/submodule--helper.c:981
+#: builtin/submodule--helper.c:993
#, c-format
msgid "%s"
msgstr "%s"
-#: builtin/submodule--helper.c:1031
+#: builtin/submodule--helper.c:1043
#, c-format
msgid "couldn't hash object from '%s'"
msgstr "'%s' üzerinden nesne sağlaması yapılamadı"
-#: builtin/submodule--helper.c:1035
+#: builtin/submodule--helper.c:1047
#, c-format
msgid "unexpected mode %o\n"
msgstr "beklenmedik kip %o\n"
-#: builtin/submodule--helper.c:1276
+#: builtin/submodule--helper.c:1288
msgid "use the commit stored in the index instead of the submodule HEAD"
msgstr "altmodül HEAD'i içindeki işleme ile indekstekini karşılaştırmak için"
-#: builtin/submodule--helper.c:1278
+#: builtin/submodule--helper.c:1290
msgid "compare the commit in the index with that in the submodule HEAD"
msgstr "indeksteki işlemeyi altmodül HEAD'inde olan ile karşılaştır"
-#: builtin/submodule--helper.c:1280
+#: builtin/submodule--helper.c:1292
msgid "skip submodules with 'ignore_config' value set to 'all'"
msgstr "'ignore_config' değeri 'all' olan altmodülleri atla"
-#: builtin/submodule--helper.c:1282
+#: builtin/submodule--helper.c:1294
msgid "limit the summary size"
msgstr "özet boyutunu sınırla"
-#: builtin/submodule--helper.c:1287
+#: builtin/submodule--helper.c:1299
msgid "git submodule--helper summary [<options>] [<commit>] [--] [<path>]"
msgstr "git submodule--helper summary [<seçenekler>] [<işleme>] [--] [<yol>]"
-#: builtin/submodule--helper.c:1311
+#: builtin/submodule--helper.c:1323
msgid "could not fetch a revision for HEAD"
msgstr "HEAD için bir revizyon getirilemedi"
-#: builtin/submodule--helper.c:1373
+#: builtin/submodule--helper.c:1384
#, c-format
msgid "Synchronizing submodule url for '%s'\n"
msgstr "'%s' için altmodül url'si eşitleniyor\n"
-#: builtin/submodule--helper.c:1379
+#: builtin/submodule--helper.c:1390
#, c-format
msgid "failed to register url for submodule path '%s'"
msgstr "'%s' altmodülü yolu için url kaydı yapılamadı"
-#: builtin/submodule--helper.c:1393
+#: builtin/submodule--helper.c:1399
#, c-format
msgid "failed to get the default remote for submodule '%s'"
msgstr "'%s' altmodülü için öntanımlı uzak konum alınamadı"
-#: builtin/submodule--helper.c:1404
+#: builtin/submodule--helper.c:1409
#, c-format
msgid "failed to update remote for submodule '%s'"
msgstr "'%s' altmodülü için uzak konum güncellenemedi"
-#: builtin/submodule--helper.c:1451
+#: builtin/submodule--helper.c:1456
msgid "suppress output of synchronizing submodule url"
msgstr "altmodül url'si eşitleme çıktısını gizle"
-#: builtin/submodule--helper.c:1458
+#: builtin/submodule--helper.c:1463
msgid "git submodule--helper sync [--quiet] [--recursive] [<path>]"
msgstr "git submodule--helper sync [--quiet] [--recursive] [<yol>]"
-#: builtin/submodule--helper.c:1508
+#: builtin/submodule--helper.c:1513
#, c-format
msgid ""
"Submodule work tree '%s' contains a .git directory. This will be replaced "
@@ -22869,7 +23372,7 @@ msgstr ""
"Altmodül çalışma ağacı '%s' bir .git dizini içeriyor. Bu, absorbgitdirs "
"kullanılarak bir .git dosyası ile değiştirilecek."
-#: builtin/submodule--helper.c:1525
+#: builtin/submodule--helper.c:1530
#, c-format
msgid ""
"Submodule work tree '%s' contains local modifications; use '-f' to discard "
@@ -22878,47 +23381,47 @@ msgstr ""
"Altmodül çalışma ağacı '%s' yerel değişiklikler içeriyor; onları atmak için "
"'-f' kullanın"
-#: builtin/submodule--helper.c:1533
+#: builtin/submodule--helper.c:1538
#, c-format
msgid "Cleared directory '%s'\n"
msgstr "'%s' dizini temizlendi\n"
-#: builtin/submodule--helper.c:1535
+#: builtin/submodule--helper.c:1540
#, c-format
msgid "Could not remove submodule work tree '%s'\n"
msgstr "'%s' altmodül çalışma ağacı kaldırılamadı\n"
-#: builtin/submodule--helper.c:1546
+#: builtin/submodule--helper.c:1551
#, c-format
msgid "could not create empty submodule directory %s"
msgstr "boş altmodül dizini %s oluşturulamadı"
-#: builtin/submodule--helper.c:1562
+#: builtin/submodule--helper.c:1567
#, c-format
msgid "Submodule '%s' (%s) unregistered for path '%s'\n"
msgstr "'%s' altmodülü (%s), '%s' yoluna kaydı yapılmamış\n"
-#: builtin/submodule--helper.c:1591
+#: builtin/submodule--helper.c:1596
msgid "remove submodule working trees even if they contain local changes"
msgstr "altmodül çalışma ağaçlarını yerel değişiklikler içerseler bile kaldır"
-#: builtin/submodule--helper.c:1592
+#: builtin/submodule--helper.c:1597
msgid "unregister all submodules"
msgstr "tüm altmodüllerin kaydını kaldır"
-#: builtin/submodule--helper.c:1597
+#: builtin/submodule--helper.c:1602
msgid ""
"git submodule deinit [--quiet] [-f | --force] [--all | [--] [<path>...]]"
msgstr ""
"git submodule deinit [--quiet] [-f | --force] [--all | [--] [<yol>...]]"
-#: builtin/submodule--helper.c:1611
+#: builtin/submodule--helper.c:1616
msgid "Use '--all' if you really want to deinitialize all submodules"
msgstr ""
"Tüm altmodüllerin ilklendirmesini gerçekten geri almak istiyorsanız '--all' "
"kullanın"
-#: builtin/submodule--helper.c:1656
+#: builtin/submodule--helper.c:1665
msgid ""
"An alternate computed from a superproject's alternate is invalid.\n"
"To allow Git to clone without an alternate in such a case, set\n"
@@ -22930,101 +23433,102 @@ msgstr ""
"submodule.alternateErrorStrategy ayarını 'info'ya ayarlayın veya\n"
"--reference yerine --reference-if-able kullanarak klonlayın."
-#: builtin/submodule--helper.c:1701 builtin/submodule--helper.c:1704
+#: builtin/submodule--helper.c:1710 builtin/submodule--helper.c:1713
#, c-format
msgid "submodule '%s' cannot add alternate: %s"
msgstr "'%s' altmodülü alternatif ekleyemiyor: %s"
-#: builtin/submodule--helper.c:1740
+#: builtin/submodule--helper.c:1749
#, c-format
msgid "Value '%s' for submodule.alternateErrorStrategy is not recognized"
msgstr "'%s' submodule.alternateErrorStrategy değeri tanımlanamadı"
-#: builtin/submodule--helper.c:1747
+#: builtin/submodule--helper.c:1756
#, c-format
msgid "Value '%s' for submodule.alternateLocation is not recognized"
msgstr "'%s' submodule.alternateLocation değeri tanımlanamadı"
-#: builtin/submodule--helper.c:1772
+#: builtin/submodule--helper.c:1781
#, c-format
msgid "refusing to create/use '%s' in another submodule's git dir"
msgstr ""
"başka bir altmodülün git dizininde '%s' oluşturma/kullanma reddediliyor"
-#: builtin/submodule--helper.c:1813
+#: builtin/submodule--helper.c:1826
#, c-format
msgid "clone of '%s' into submodule path '%s' failed"
msgstr "'%s' ögesinin '%s' altmodül yoluna klonlanması başarısız"
-#: builtin/submodule--helper.c:1818
+#: builtin/submodule--helper.c:1831
#, c-format
msgid "directory not empty: '%s'"
msgstr "dizin boÅŸ deÄŸil: '%s'"
-#: builtin/submodule--helper.c:1830
+#: builtin/submodule--helper.c:1843
#, c-format
msgid "could not get submodule directory for '%s'"
msgstr "'%s' için altmodül dizini alınamadı"
-#: builtin/submodule--helper.c:1862
+#: builtin/submodule--helper.c:1876
msgid "where the new submodule will be cloned to"
msgstr "yeni altmodülün nereye klonlanacağı"
-#: builtin/submodule--helper.c:1865
+#: builtin/submodule--helper.c:1879
msgid "name of the new submodule"
msgstr "yeni altmodülün adı"
-#: builtin/submodule--helper.c:1868
+#: builtin/submodule--helper.c:1882
msgid "url where to clone the submodule from"
msgstr "altmodülün klonlanacağı url konumu"
-#: builtin/submodule--helper.c:1876 builtin/submodule--helper.c:3265
+#: builtin/submodule--helper.c:1890 builtin/submodule--helper.c:3383
msgid "depth for shallow clones"
msgstr "sığ klonların derinliği"
-#: builtin/submodule--helper.c:1879 builtin/submodule--helper.c:2526
-#: builtin/submodule--helper.c:3258
+#: builtin/submodule--helper.c:1893 builtin/submodule--helper.c:2731
+#: builtin/submodule--helper.c:3376
msgid "force cloning progress"
msgstr "zorla klonla"
-#: builtin/submodule--helper.c:1881 builtin/submodule--helper.c:2528
+#: builtin/submodule--helper.c:1895 builtin/submodule--helper.c:2733
msgid "disallow cloning into non-empty directory"
msgstr "boÅŸ olmayan dizine klonlamaya izin verme"
-#: builtin/submodule--helper.c:1888
+#: builtin/submodule--helper.c:1903
msgid ""
"git submodule--helper clone [--prefix=<path>] [--quiet] [--reference "
-"<repository>] [--name <name>] [--depth <depth>] [--single-branch] --url "
-"<url> --path <path>"
+"<repository>] [--name <name>] [--depth <depth>] [--single-branch] [--filter "
+"<filter-spec>] --url <url> --path <path>"
msgstr ""
-"git submodule--helper clone [--prefix=<yol>] [--quiet] [--reference <depo>] "
-"[--name <ad>] [--depth <derinlik>] [--single-branch] --url <url> --path <yol>"
+"git submodule--helper clone [--prefix=<yol>] [--quiet] [--reference "
+"<depo>] [--name <ad>] [--depth <derinlik>] [--single-branch] [--filter "
+"<süzgeç-belirteci>] --url <url> --path <yol>"
-#: builtin/submodule--helper.c:1925
+#: builtin/submodule--helper.c:1943
#, c-format
msgid "Invalid update mode '%s' for submodule path '%s'"
msgstr "Geçersiz güncelleme kipi '%s', '%s' altmodül yolu için"
-#: builtin/submodule--helper.c:1929
+#: builtin/submodule--helper.c:1947
#, c-format
msgid "Invalid update mode '%s' configured for submodule path '%s'"
msgstr "Geçersiz güncelleme kipi '%s', '%s' altmodül yolu için yapılandırılmış"
-#: builtin/submodule--helper.c:2044
+#: builtin/submodule--helper.c:2041
#, c-format
msgid "Submodule path '%s' not initialized"
msgstr "Altmodül yolu '%s' ilklendirilmedi"
-#: builtin/submodule--helper.c:2048
+#: builtin/submodule--helper.c:2045
msgid "Maybe you want to use 'update --init'?"
msgstr "'update --init' mi kullanmak istersiniz?"
-#: builtin/submodule--helper.c:2078
+#: builtin/submodule--helper.c:2075
#, c-format
msgid "Skipping unmerged submodule %s"
msgstr "Birleştirilmemiş altmodül %s atlanıyor"
-#: builtin/submodule--helper.c:2107
+#: builtin/submodule--helper.c:2104
#, c-format
msgid "Skipping submodule '%s'"
msgstr "'%s' altmodülü atlanıyor"
@@ -23039,54 +23543,54 @@ msgstr "'%s' klonlanamadı. Yeniden deneme zamanlandı."
msgid "Failed to clone '%s' a second time, aborting"
msgstr "'%s' ikinci bir kez klonlanamadı, iptal ediliyor"
-#: builtin/submodule--helper.c:2373
+#: builtin/submodule--helper.c:2371
#, c-format
msgid "Unable to checkout '%s' in submodule path '%s'"
msgstr "Şu altmodül yolunda '%s' çıkışı yapılamadı: '%s'"
-#: builtin/submodule--helper.c:2377
+#: builtin/submodule--helper.c:2375
#, c-format
msgid "Unable to rebase '%s' in submodule path '%s'"
msgstr "Şu altmodül yolunda '%s' yeniden temellendirilemedi: '%s'"
-#: builtin/submodule--helper.c:2381
+#: builtin/submodule--helper.c:2379
#, c-format
msgid "Unable to merge '%s' in submodule path '%s'"
msgstr "Şu altmodül yolunda '%s' birleştirilemedi: '%s'"
-#: builtin/submodule--helper.c:2385
+#: builtin/submodule--helper.c:2383
#, c-format
msgid "Execution of '%s %s' failed in submodule path '%s'"
msgstr "Şu altmodül yolunda '%s %s' çalıştırılamadı: '%s'"
-#: builtin/submodule--helper.c:2409
+#: builtin/submodule--helper.c:2402
#, c-format
msgid "Submodule path '%s': checked out '%s'\n"
msgstr "Altmodül yolu '%s': '%s' çıkışı yapıldı\n"
-#: builtin/submodule--helper.c:2413
+#: builtin/submodule--helper.c:2406
#, c-format
msgid "Submodule path '%s': rebased into '%s'\n"
msgstr "Altmodül yolu '%s': '%s' üzerine yeniden temellendirildi\n"
-#: builtin/submodule--helper.c:2417
+#: builtin/submodule--helper.c:2410
#, c-format
msgid "Submodule path '%s': merged in '%s'\n"
msgstr "Altmodül yolu '%s': '%s' içinde birleştirildi\n"
-#: builtin/submodule--helper.c:2421
+#: builtin/submodule--helper.c:2414
#, c-format
msgid "Submodule path '%s': '%s %s'\n"
msgstr "Altmodül yolu '%s': '%s %s'\n"
-#: builtin/submodule--helper.c:2445
+#: builtin/submodule--helper.c:2438
#, c-format
msgid "Unable to fetch in submodule path '%s'; trying to directly fetch %s:"
msgstr ""
"'%s' altmodül yolunda getirme yapılamadı; %s doğrudan getirilmeye "
"çalışılıyor:"
-#: builtin/submodule--helper.c:2454
+#: builtin/submodule--helper.c:2447
#, c-format
msgid ""
"Fetched in submodule path '%s', but it did not contain %s. Direct fetching "
@@ -23095,177 +23599,204 @@ msgstr ""
"'%s' altmodül yolunda getirme yapıldı; ancak %s içermiyor. Bu işlemenin "
"doğrudan getirilmesi başarısız oldu."
-#: builtin/submodule--helper.c:2505 builtin/submodule--helper.c:2575
-#: builtin/submodule--helper.c:2813
+#: builtin/submodule--helper.c:2481
+#, c-format
+msgid ""
+"Submodule (%s) branch configured to inherit branch from superproject, but "
+"the superproject is not on any branch"
+msgstr ""
+"Altmodül (%s) dalı süperproje dalından devralmak üzere yapılandırıldı; ancak "
+"süperproje herhangi bir dalda değil"
+
+#: builtin/submodule--helper.c:2499
+#, c-format
+msgid "could not get a repository handle for submodule '%s'"
+msgstr "'%s' altmodülü için depo tutacağı alınamadı"
+
+#: builtin/submodule--helper.c:2588
+#, c-format
+msgid "Unable to find current revision in submodule path '%s'"
+msgstr "'%s' altmodül yolunda geçerli revizyon bulunamadı"
+
+#: builtin/submodule--helper.c:2599
+#, c-format
+msgid "Unable to fetch in submodule path '%s'"
+msgstr "'%s' altmodül yolunda getirme yapılamadı"
+
+#: builtin/submodule--helper.c:2604
+#, c-format
+msgid "Unable to find %s revision in submodule path '%s'"
+msgstr "%s revizyonu, '%s' altmodül yolunda bulunamadı"
+
+#: builtin/submodule--helper.c:2640
+#, c-format
+msgid "Failed to recurse into submodule path '%s'"
+msgstr "'%s' altmodül yoluna özyineleme yapılamadı"
+
+#: builtin/submodule--helper.c:2699
+msgid "force checkout updates"
+msgstr "güncellemeleri zorla çıkış yap"
+
+#: builtin/submodule--helper.c:2701
+msgid "initialize uninitialized submodules before update"
+msgstr "güncellemeden önce ilklendirilmemiş altmodülleri ilklendir"
+
+#: builtin/submodule--helper.c:2703
+msgid "use SHA-1 of submodule's remote tracking branch"
+msgstr "altmodül uzak izleme dalının SHA-1'ini kullan"
+
+#: builtin/submodule--helper.c:2705
+msgid "traverse submodules recursively"
+msgstr "altmodülleri özyineli basamaklandır"
+
+#: builtin/submodule--helper.c:2707
+msgid "don't fetch new objects from the remote site"
+msgstr "yeni nesneleri uzak konumdan getirme"
+
+#: builtin/submodule--helper.c:2710 builtin/submodule--helper.c:2892
msgid "path into the working tree"
msgstr "çalışma ağacına giden yol"
-#: builtin/submodule--helper.c:2508 builtin/submodule--helper.c:2580
+#: builtin/submodule--helper.c:2713
msgid "path into the working tree, across nested submodule boundaries"
msgstr "iç içe geçmiş altmodül sınırları üzerinden çalışma ağacına giden yol"
-#: builtin/submodule--helper.c:2512 builtin/submodule--helper.c:2578
+#: builtin/submodule--helper.c:2717
msgid "rebase, merge, checkout or none"
msgstr "rebase, merge, checkout veya none"
-#: builtin/submodule--helper.c:2518
+#: builtin/submodule--helper.c:2723
msgid "create a shallow clone truncated to the specified number of revisions"
msgstr "belirli bir revizyon sayısına kısaltılmış sığ klon oluştur"
-#: builtin/submodule--helper.c:2521
+#: builtin/submodule--helper.c:2726
msgid "parallel jobs"
msgstr "paralel iÅŸler"
-#: builtin/submodule--helper.c:2523
+#: builtin/submodule--helper.c:2728
msgid "whether the initial clone should follow the shallow recommendation"
msgstr "ilk klonun sığlık üzerine olan tavsiyeyi izleyip izlemeyeceği"
-#: builtin/submodule--helper.c:2524
+#: builtin/submodule--helper.c:2729
msgid "don't print cloning progress"
msgstr "klonlama işlemini yazdırma"
-#: builtin/submodule--helper.c:2535
-msgid "git submodule--helper update-clone [--prefix=<path>] [<path>...]"
-msgstr "git submodule--helper update-clone [--prefix=<yol>] [<yol>...]"
-
-#: builtin/submodule--helper.c:2548
-msgid "bad value for update parameter"
-msgstr "güncelleme parametresi için hatalı değer"
-
-#: builtin/submodule--helper.c:2566
-msgid "suppress output for update by rebase or merge"
-msgstr "güncelleme çıktısını yeniden temellendirme veya birleştirme ile sustur"
-
-#: builtin/submodule--helper.c:2567
-msgid "force checkout updates"
-msgstr "güncellemeleri zorla çıkış yap"
-
-#: builtin/submodule--helper.c:2569
-msgid "don't fetch new objects from the remote site"
-msgstr "yeni nesneleri uzak konumdan getirme"
-
-#: builtin/submodule--helper.c:2571
-msgid "overrides update mode in case the repository is a fresh clone"
-msgstr ""
-"deponun taze bir klon olması durumunda güncelleme kipini geçersiz kılar"
-
-#: builtin/submodule--helper.c:2572
-msgid "depth for shallow fetch"
-msgstr "sığ getirme derinliği"
-
-#: builtin/submodule--helper.c:2582
-msgid "sha1"
-msgstr "sha1"
-
-#: builtin/submodule--helper.c:2583
-msgid "SHA1 expected by superproject"
-msgstr "superproject tarafından SHA1 bekleniyordu"
-
-#: builtin/submodule--helper.c:2585
-msgid "subsha1"
-msgstr "subsha1"
-
-#: builtin/submodule--helper.c:2586
-msgid "SHA1 of submodule's HEAD"
-msgstr "altmodülün HEAD'inin SHA1'i"
-
-#: builtin/submodule--helper.c:2592
-msgid "git submodule--helper run-update-procedure [<options>] <path>"
-msgstr "git submodule--helper run-update-procedure [<seçenekler>] [<yol>]"
-
-#: builtin/submodule--helper.c:2663
-#, c-format
+#: builtin/submodule--helper.c:2741
msgid ""
-"Submodule (%s) branch configured to inherit branch from superproject, but "
-"the superproject is not on any branch"
+"git submodule [--quiet] update [--init [--filter=<filter-spec>]] [--remote] "
+"[-N|--no-fetch] [-f|--force] [--checkout|--merge|--rebase] [--[no-]recommend-"
+"shallow] [--reference <repository>] [--recursive] [--[no-]single-branch] "
+"[--] [<path>...]"
msgstr ""
-"Altmodül (%s) dalı süperproje dalından devralmak üzere yapılandırıldı; ancak "
-"süperproje herhangi bir dalda değil"
+"git submodule [--quiet] update [--init [--filter=<süzgeç-blrtç>]] [--remote] "
+"[-N|--no-fetch] [-f|--force] [--checkout|--merge|--rebase] [--[no-]recommend-"
+"shallow] [--reference <depo>] [--recursive] [--[no-]single-branch] [--] "
+"[<yol>...]"
-#: builtin/submodule--helper.c:2781
-#, c-format
-msgid "could not get a repository handle for submodule '%s'"
-msgstr "'%s' altmodülü için depo tutacağı alınamadı"
+#: builtin/submodule--helper.c:2767
+msgid "bad value for update parameter"
+msgstr "güncelleme parametresi için hatalı değer"
-#: builtin/submodule--helper.c:2814
+#: builtin/submodule--helper.c:2893
msgid "recurse into submodules"
msgstr "altmodüllere özyinele"
-#: builtin/submodule--helper.c:2820
+#: builtin/submodule--helper.c:2899
msgid "git submodule--helper absorb-git-dirs [<options>] [<path>...]"
msgstr "git submodule--helper absorb-git-dirs [<seçenekler>] [<yol>...]"
-#: builtin/submodule--helper.c:2876
+#: builtin/submodule--helper.c:2955
msgid "check if it is safe to write to the .gitmodules file"
msgstr ".gitmodules dosyasına yazım güvenli mi değil mi denetle"
-#: builtin/submodule--helper.c:2879
+#: builtin/submodule--helper.c:2958
msgid "unset the config in the .gitmodules file"
msgstr ".gitmodules dosyasındaki yapılandırmayı kaldır"
-#: builtin/submodule--helper.c:2884
+#: builtin/submodule--helper.c:2963
msgid "git submodule--helper config <name> [<value>]"
msgstr "git submodule--helper config <ad> [<deÄŸer>]"
-#: builtin/submodule--helper.c:2885
+#: builtin/submodule--helper.c:2964
msgid "git submodule--helper config --unset <name>"
msgstr "git submodule--helper config --unset <ad>"
-#: builtin/submodule--helper.c:2886
-msgid "git submodule--helper config --check-writeable"
-msgstr "git submodule--helper config --check-writeable"
-
-#: builtin/submodule--helper.c:2905 builtin/submodule--helper.c:3121
-#: builtin/submodule--helper.c:3277
+#: builtin/submodule--helper.c:2984 builtin/submodule--helper.c:3238
+#: builtin/submodule--helper.c:3395
msgid "please make sure that the .gitmodules file is in the working tree"
msgstr ".gitmodules dosyasının çalışma ağacında olduğundan lütfen emin ol"
-#: builtin/submodule--helper.c:2921
+#: builtin/submodule--helper.c:3000
msgid "suppress output for setting url of a submodule"
msgstr "bir altmodül url ayarlanması çıktısını gizle"
-#: builtin/submodule--helper.c:2925
+#: builtin/submodule--helper.c:3004
msgid "git submodule--helper set-url [--quiet] <path> <newurl>"
msgstr "git submodule--helper set-url [--quiet] <yol> <yeniurl>"
-#: builtin/submodule--helper.c:2958
+#: builtin/submodule--helper.c:3037
msgid "set the default tracking branch to master"
msgstr "öntanımlı izleme dalını master olarak ayarla"
-#: builtin/submodule--helper.c:2960
+#: builtin/submodule--helper.c:3039
msgid "set the default tracking branch"
msgstr "öntanımlı izleme dalını ayarla"
-#: builtin/submodule--helper.c:2964
+#: builtin/submodule--helper.c:3043
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:2965
+#: builtin/submodule--helper.c:3044
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:2972
+#: builtin/submodule--helper.c:3051
msgid "--branch or --default required"
msgstr "--branch veya --default gerekli"
-#: builtin/submodule--helper.c:3038
+#: builtin/submodule--helper.c:3072 builtin/submodule--helper.c:3375
+msgid "print only error messages"
+msgstr "yalnızca hata iletilerini yazdır"
+
+#: builtin/submodule--helper.c:3073
+msgid "force creation"
+msgstr "oluşturmayı zorla"
+
+#: builtin/submodule--helper.c:3081
+msgid "show whether the branch would be created"
+msgstr "dalın oluşturulup oluşturulmayacağını göster"
+
+#: builtin/submodule--helper.c:3085
+msgid ""
+"git submodule--helper create-branch [-f|--force] [--create-reflog] [-q|--"
+"quiet] [-t|--track] [-n|--dry-run] <name> <start-oid> <start-name>"
+msgstr ""
+"git submodule--helper create-branch [-f|--force] [--create-reflog] [-q|--"
+"quiet] [-t|--track] [-n|--dry-run] <ad> <başlangıç-oid> <başlangıç-adı>"
+
+#: builtin/submodule--helper.c:3097
+#, c-format
+msgid "creating branch '%s'"
+msgstr "'%s' dalı oluşturuluyor"
+
+#: builtin/submodule--helper.c:3155
#, c-format
msgid "Adding existing repo at '%s' to the index\n"
msgstr "'%s' konumundaki mevcut repo indekse ekleniyor\n"
-#: builtin/submodule--helper.c:3041
+#: builtin/submodule--helper.c:3158
#, c-format
msgid "'%s' already exists and is not a valid git repo"
msgstr "'%s' halihazırda mevcut ve geçerli bir git deposu değil"
-#: builtin/submodule--helper.c:3054
+#: builtin/submodule--helper.c:3171
#, c-format
msgid "A git directory for '%s' is found locally with remote(s):\n"
msgstr "'%s' için bir git deposu yerelde şu uzak konumlarla bulundu:\n"
-#: builtin/submodule--helper.c:3061
+#: builtin/submodule--helper.c:3178
#, c-format
msgid ""
"If you want to reuse this local git directory instead of cloning again from\n"
@@ -23282,85 +23813,81 @@ msgstr ""
"depo deÄŸilse veya bunun ne anlama geldiÄŸinden emin deÄŸilseniz\n"
"'--name' seçeneği ile başka bir ad seçin."
-#: builtin/submodule--helper.c:3073
+#: builtin/submodule--helper.c:3190
#, c-format
msgid "Reactivating local git directory for submodule '%s'\n"
msgstr "'%s' altmodülü için yerel git dizini yeniden etkinleştiriliyor\n"
-#: builtin/submodule--helper.c:3110
+#: builtin/submodule--helper.c:3227
#, c-format
msgid "unable to checkout submodule '%s'"
msgstr "'%s' altmodülü çıkış yapılamıyor"
-#: builtin/submodule--helper.c:3149
+#: builtin/submodule--helper.c:3266
#, c-format
msgid "Failed to add submodule '%s'"
msgstr "'%s' altmodülü eklenemedi"
-#: builtin/submodule--helper.c:3153 builtin/submodule--helper.c:3158
-#: builtin/submodule--helper.c:3166
+#: builtin/submodule--helper.c:3270 builtin/submodule--helper.c:3275
+#: builtin/submodule--helper.c:3283
#, c-format
msgid "Failed to register submodule '%s'"
msgstr "'%s' altmodülü kaydı yapılamadı"
-#: builtin/submodule--helper.c:3222
+#: builtin/submodule--helper.c:3339
#, c-format
msgid "'%s' already exists in the index"
msgstr "'%s' indekste halihazırda var"
-#: builtin/submodule--helper.c:3225
+#: builtin/submodule--helper.c:3342
#, c-format
msgid "'%s' already exists in the index and is not a submodule"
msgstr "'%s' indekste halihazırda var ve bir altmodül değil"
-#: builtin/submodule--helper.c:3254
+#: builtin/submodule--helper.c:3372
msgid "branch of repository to add as submodule"
msgstr "altmodül olarak eklenecek depo dalı"
-#: builtin/submodule--helper.c:3255
+#: builtin/submodule--helper.c:3373
msgid "allow adding an otherwise ignored submodule path"
msgstr "başka bir durumda yok sayılan altmodül yolunun eklenmesine izin ver"
-#: builtin/submodule--helper.c:3257
-msgid "print only error messages"
-msgstr "yalnızca hata iletilerini yazdır"
-
-#: builtin/submodule--helper.c:3261
+#: builtin/submodule--helper.c:3379
msgid "borrow the objects from reference repositories"
msgstr "nesneleri başvuru depolarından ödünç al"
-#: builtin/submodule--helper.c:3263
+#: builtin/submodule--helper.c:3381
msgid ""
"sets the submodule’s name to the given string instead of defaulting to its "
"path"
msgstr ""
"altmodülün adını kendi yoluna öntanımlamak yerine verilen dizi olarak ayarlar"
-#: builtin/submodule--helper.c:3270
+#: builtin/submodule--helper.c:3388
msgid "git submodule--helper add [<options>] [--] <repository> [<path>]"
msgstr "git submodule--helper add [<seçenekler>] [--] <depo> [<yol>]"
-#: builtin/submodule--helper.c:3298
+#: builtin/submodule--helper.c:3416
msgid "Relative path can only be used from the toplevel of the working tree"
msgstr ""
"Göreceli yol yalnızca çalışma ağacının en üst düzeyinden kullanılabilir"
-#: builtin/submodule--helper.c:3306
+#: builtin/submodule--helper.c:3425
#, c-format
msgid "repo URL: '%s' must be absolute or begin with ./|../"
msgstr "depo URL'si: '%s' mutlak olmalı veya ./|../ ile başlamalıdır"
-#: builtin/submodule--helper.c:3341
+#: builtin/submodule--helper.c:3460
#, c-format
msgid "'%s' is not a valid submodule name"
msgstr "'%s' geçerli bir altmodül adı değil"
-#: builtin/submodule--helper.c:3405 git.c:452 git.c:726
+#: builtin/submodule--helper.c:3520 git.c:453 git.c:729
#, c-format
msgid "%s doesn't support --super-prefix"
msgstr "%s, --super-prefix desteklemiyor"
-#: builtin/submodule--helper.c:3411
+#: builtin/submodule--helper.c:3526
#, c-format
msgid "'%s' is not a valid submodule--helper subcommand"
msgstr "'%s' geçerli bir submodule--helper altkomutu değil"
@@ -23393,7 +23920,7 @@ msgstr "neden"
msgid "reason of the update"
msgstr "güncelleme nedeni"
-#: builtin/tag.c:25
+#: builtin/tag.c:26
msgid ""
"git tag [-a | -s | -u <key-id>] [-f] [-m <msg> | -F <file>]\n"
" <tagname> [<head>]"
@@ -23401,11 +23928,11 @@ msgstr ""
"git tag [-a | -s | -u <anahtar-kimliÄŸi>] [-f] [-m <ileti> | -F <dosya>]\n"
" <etiket-adı> [<head>]"
-#: builtin/tag.c:27
+#: builtin/tag.c:28
msgid "git tag -d <tagname>..."
msgstr "git tag -d <etiket-adı>..."
-#: builtin/tag.c:28
+#: builtin/tag.c:29
msgid ""
"git tag -l [-n[<num>]] [--contains <commit>] [--no-contains <commit>] [--"
"points-at <object>]\n"
@@ -23416,21 +23943,21 @@ msgstr ""
" [-- points-at <nesne>] [--format=<biçim>] [--merged <işleme>]\n"
" [--no-merged <iÅŸleme>] [<dizgi>...]"
-#: builtin/tag.c:30
+#: builtin/tag.c:31
msgid "git tag -v [--format=<format>] <tagname>..."
msgstr "git tag -v [--format=<biçim>] <etiket-adı>..."
-#: builtin/tag.c:100
+#: builtin/tag.c:101
#, c-format
msgid "tag '%s' not found."
msgstr "'%s' etiketi bulunamadı."
-#: builtin/tag.c:135
+#: builtin/tag.c:136
#, c-format
msgid "Deleted tag '%s' (was %s)\n"
msgstr "'%s' etiketi silindi (%s idi)\n"
-#: builtin/tag.c:170
+#: builtin/tag.c:171
#, c-format
msgid ""
"\n"
@@ -23443,7 +23970,7 @@ msgstr ""
" %s\n"
"'%c' ile başlayan satırlar yok sayılacaktır.\n"
-#: builtin/tag.c:174
+#: builtin/tag.c:175
#, c-format
msgid ""
"\n"
@@ -23458,11 +23985,11 @@ msgstr ""
"'%c' ile başlayan satırlar tutulacaktır; isterseniz onları "
"kaldırabilirsiniz.\n"
-#: builtin/tag.c:240
+#: builtin/tag.c:241
msgid "unable to sign the tag"
msgstr "etiket imzalanamıyor"
-#: builtin/tag.c:258
+#: builtin/tag.c:259
#, c-format
msgid ""
"You have created a nested tag. The object referred to by your new tag is\n"
@@ -23475,115 +24002,119 @@ msgstr ""
"\n"
"\tgit tag -f %s %s^{}"
-#: builtin/tag.c:274
+#: builtin/tag.c:275
msgid "bad object type."
msgstr "hatalı nesne türü."
-#: builtin/tag.c:325
+#: builtin/tag.c:326
msgid "no tag message?"
msgstr "etiket iletisi yok mu?"
-#: builtin/tag.c:332
+#: builtin/tag.c:333
#, c-format
msgid "The tag message has been left in %s\n"
msgstr "Etiket iletisi %s içinde bırakıldı\n"
-#: builtin/tag.c:444
+#: builtin/tag.c:445
msgid "list tag names"
msgstr "etiket adlarını listele"
-#: builtin/tag.c:446
+#: builtin/tag.c:447
msgid "print <n> lines of each tag message"
msgstr "her etiket iletisinin <n> satırını listele"
-#: builtin/tag.c:448
+#: builtin/tag.c:449
msgid "delete tags"
msgstr "etiketleri sil"
-#: builtin/tag.c:449
+#: builtin/tag.c:450
msgid "verify tags"
msgstr "etiketleri doÄŸrula"
-#: builtin/tag.c:451
+#: builtin/tag.c:452
msgid "Tag creation options"
msgstr "Etiket oluşturma seçenekleri"
-#: builtin/tag.c:453
+#: builtin/tag.c:454
msgid "annotated tag, needs a message"
msgstr "açıklama eklenmiş etiket için bir ileti gerek"
-#: builtin/tag.c:455
+#: builtin/tag.c:456
msgid "tag message"
msgstr "etiket iletisi"
-#: builtin/tag.c:457
+#: builtin/tag.c:458
msgid "force edit of tag message"
msgstr "etiket iletisini zorla düzenle"
-#: builtin/tag.c:458
+#: builtin/tag.c:459
msgid "annotated and GPG-signed tag"
msgstr "açıklama eklenmiş ve GPG imzalı etiket"
-#: builtin/tag.c:461
+#: builtin/tag.c:462
msgid "use another key to sign the tag"
msgstr "etiketi imzalamak için başka bir anahtar kullanın"
-#: builtin/tag.c:462
+#: builtin/tag.c:463
msgid "replace the tag if exists"
msgstr "eğer varsa etiketi başkasıyla değiştir"
-#: builtin/tag.c:463 builtin/update-ref.c:511
+#: builtin/tag.c:464 builtin/update-ref.c:511
msgid "create a reflog"
msgstr "bir başvuru günlüğü oluştur"
-#: builtin/tag.c:465
+#: builtin/tag.c:466
msgid "Tag listing options"
msgstr "Etiket listeleme seçenekleri"
-#: builtin/tag.c:466
+#: builtin/tag.c:467
msgid "show tag list in columns"
msgstr "etiket listesini sütunlarla göster"
-#: builtin/tag.c:467 builtin/tag.c:469
+#: builtin/tag.c:468 builtin/tag.c:470
msgid "print only tags that contain the commit"
msgstr "yalnızca işlemeyi içeren etiketleri yazdır"
-#: builtin/tag.c:468 builtin/tag.c:470
+#: builtin/tag.c:469 builtin/tag.c:471
msgid "print only tags that don't contain the commit"
msgstr "yalnızca işleme içermeyen etiketleri yazdır"
-#: builtin/tag.c:471
+#: builtin/tag.c:472
msgid "print only tags that are merged"
msgstr "yalnızca birleştirilen etiketleri yazdır"
-#: builtin/tag.c:472
+#: builtin/tag.c:473
msgid "print only tags that are not merged"
msgstr "yalnızca birleştirilmeyen etiketleri yazdır"
-#: builtin/tag.c:476
+#: builtin/tag.c:477
msgid "print only tags of the object"
msgstr "yalnızca nesnenin etiketlerini yazdır"
-#: builtin/tag.c:558
+#: builtin/tag.c:559
#, c-format
msgid "the '%s' option is only allowed in list mode"
msgstr "'%s' seçeneğine yalnızca liste kipinde izin verilir"
-#: builtin/tag.c:597
+#: builtin/tag.c:598
#, c-format
msgid "'%s' is not a valid tag name."
msgstr "'%s' geçerli bir etiket adı değil."
-#: builtin/tag.c:602
+#: builtin/tag.c:603
#, c-format
msgid "tag '%s' already exists"
msgstr "'%s' etiketi halihazırda var"
-#: builtin/tag.c:633
+#: builtin/tag.c:634
#, c-format
msgid "Updated tag '%s' (was %s)\n"
msgstr "'%s' etiketi güncellendi (%s idi)\n"
+#: builtin/unpack-objects.c:95
+msgid "pack exceeds maximum allowed size"
+msgstr "paket izin verilen en büyük boyutu aşıyor"
+
#: builtin/unpack-objects.c:504
msgid "Unpacking objects"
msgstr "Nesneler açılıyor"
@@ -23640,143 +24171,143 @@ msgstr " Tamam"
msgid "git update-index [<options>] [--] [<file>...]"
msgstr "git update-index [<seçenekler>] [--] [<dosya>...]"
-#: builtin/update-index.c:974
+#: builtin/update-index.c:993
msgid "continue refresh even when index needs update"
msgstr "indeksin güncellenmesi gerekse bile yenilemeyi sürdür"
-#: builtin/update-index.c:977
+#: builtin/update-index.c:996
msgid "refresh: ignore submodules"
msgstr "refresh: altmodülleri yok say"
-#: builtin/update-index.c:980
+#: builtin/update-index.c:999
msgid "do not ignore new files"
msgstr "yeni dosyaları yok sayma"
-#: builtin/update-index.c:982
+#: builtin/update-index.c:1001
msgid "let files replace directories and vice-versa"
msgstr "dosyaların dizinlerin yerine geçmesine ve tersine izin ver"
-#: builtin/update-index.c:984
+#: builtin/update-index.c:1003
msgid "notice files missing from worktree"
msgstr "çalışma ağacından eksik olan dosyaları fark et"
-#: builtin/update-index.c:986
+#: builtin/update-index.c:1005
msgid "refresh even if index contains unmerged entries"
msgstr "indekste birleÅŸtirilmemiÅŸ girdiler olsa bile yenile"
-#: builtin/update-index.c:989
+#: builtin/update-index.c:1008
msgid "refresh stat information"
msgstr "dosya durum bilgisini yenile"
-#: builtin/update-index.c:993
+#: builtin/update-index.c:1012
msgid "like --refresh, but ignore assume-unchanged setting"
msgstr "--refresh gibi; ancak assume-unchanged ayarını yok sayar"
-#: builtin/update-index.c:997
+#: builtin/update-index.c:1016
msgid "<mode>,<object>,<path>"
msgstr "<kip>,<nesne>,<yol>"
-#: builtin/update-index.c:998
+#: builtin/update-index.c:1017
msgid "add the specified entry to the index"
msgstr "belirtilen girdiyi indekse ekle"
-#: builtin/update-index.c:1008
+#: builtin/update-index.c:1027
msgid "mark files as \"not changing\""
msgstr "dosyaları \"not changing\" olarak imle"
-#: builtin/update-index.c:1011
+#: builtin/update-index.c:1030
msgid "clear assumed-unchanged bit"
msgstr "assumed-unchanged kısmını temizle"
-#: builtin/update-index.c:1014
+#: builtin/update-index.c:1033
msgid "mark files as \"index-only\""
msgstr "dosyaları \"index-only\" olarak imle"
-#: builtin/update-index.c:1017
+#: builtin/update-index.c:1036
msgid "clear skip-worktree bit"
msgstr "skip-worktree kısmını atla"
-#: builtin/update-index.c:1020
+#: builtin/update-index.c:1039
msgid "do not touch index-only entries"
msgstr "'index-only' girdilerine dokunma"
-#: builtin/update-index.c:1022
+#: builtin/update-index.c:1041
msgid "add to index only; do not add content to object database"
msgstr "yalnızca indekse ekle; içeriğe nesne veritabanına ekleme"
-#: builtin/update-index.c:1024
+#: builtin/update-index.c:1043
msgid "remove named paths even if present in worktree"
msgstr "çalışma ağacında mevcut olsa bile ad verilen yolları kaldır"
-#: builtin/update-index.c:1026
+#: builtin/update-index.c:1045
msgid "with --stdin: input lines are terminated by null bytes"
msgstr "--stdin ile: girdi satırları boş baytlarla sonlandırılır"
-#: builtin/update-index.c:1028
+#: builtin/update-index.c:1047
msgid "read list of paths to be updated from standard input"
msgstr "güncellenecek yol listelerini standart girdi'den oku"
-#: builtin/update-index.c:1032
+#: builtin/update-index.c:1051
msgid "add entries from standard input to the index"
msgstr "indekse standart girdi'den girdiler ekle"
-#: builtin/update-index.c:1036
+#: builtin/update-index.c:1055
msgid "repopulate stages #2 and #3 for the listed paths"
msgstr "#2 ve #3 numaralı adımları listelenmiş yollar için yeniden doldur"
-#: builtin/update-index.c:1040
+#: builtin/update-index.c:1059
msgid "only update entries that differ from HEAD"
msgstr "yalnızca HEAD'den farklı olan girdileri güncelle"
-#: builtin/update-index.c:1044
+#: builtin/update-index.c:1063
msgid "ignore files missing from worktree"
msgstr "çalışma ağacından eksik olan dosyaları yok say"
-#: builtin/update-index.c:1047
+#: builtin/update-index.c:1066
msgid "report actions to standard output"
msgstr "eylemleri standart çıktı'ya bildir"
-#: builtin/update-index.c:1049
+#: builtin/update-index.c:1068
msgid "(for porcelains) forget saved unresolved conflicts"
msgstr "(okunabilir veri için) kaydedilmiş çözülmeyen çakışmaları unut"
-#: builtin/update-index.c:1053
+#: builtin/update-index.c:1072
msgid "write index in this format"
msgstr "indeksi bu biçimle yaz"
-#: builtin/update-index.c:1055
+#: builtin/update-index.c:1074
msgid "enable or disable split index"
msgstr "bölünmüş indeksi etkinleştir veya devre dışı bırak"
-#: builtin/update-index.c:1057
+#: builtin/update-index.c:1076
msgid "enable/disable untracked cache"
msgstr "izlenmeyen önbelleği etkinleştir/devre dışı bırak"
-#: builtin/update-index.c:1059
+#: builtin/update-index.c:1078
msgid "test if the filesystem supports untracked cache"
msgstr "dosya sisteminin izlenmeyen önbellek destekleyip desteklemediğini sına"
-#: builtin/update-index.c:1061
+#: builtin/update-index.c:1080
msgid "enable untracked cache without testing the filesystem"
msgstr "dosya sistemini sınamadan izlenmeyen önbelleği etkinleştir"
-#: builtin/update-index.c:1063
+#: builtin/update-index.c:1082
msgid "write out the index even if is not flagged as changed"
msgstr "deÄŸiÅŸtirilmiÅŸ olarak imlenmese bile indeksi yaz"
-#: builtin/update-index.c:1065
+#: builtin/update-index.c:1084
msgid "enable or disable file system monitor"
msgstr "dosya sistemi monitörünü etkinleştir veya devre dışı bırak"
-#: builtin/update-index.c:1067
+#: builtin/update-index.c:1086
msgid "mark files as fsmonitor valid"
msgstr "dosyaları dosya sistemi monitöründe geçerli olarak imle"
-#: builtin/update-index.c:1070
+#: builtin/update-index.c:1089
msgid "clear fsmonitor valid bit"
msgstr "dosya sistemi monitöründe geçerli kısmını temizle"
-#: builtin/update-index.c:1173
+#: builtin/update-index.c:1195
msgid ""
"core.splitIndex is set to false; remove or change it, if you really want to "
"enable split index"
@@ -23784,7 +24315,7 @@ msgstr ""
"core.splitIndex 'false' olarak ayarlanmış; bölünmüş indeksi etkinleştirmeyi "
"gerçekten istiyorsanız bunu kaldırın veya değiştirin"
-#: builtin/update-index.c:1182
+#: builtin/update-index.c:1204
msgid ""
"core.splitIndex is set to true; remove or change it, if you really want to "
"disable split index"
@@ -23792,7 +24323,7 @@ msgstr ""
"core.splitIndex 'true' olarak ayarlanmış; bölünmüş indeksi devre dışı "
"bırakmayı gerçekten istiyorsanız bunu kaldırın veya değiştirin"
-#: builtin/update-index.c:1194
+#: builtin/update-index.c:1216
msgid ""
"core.untrackedCache is set to true; remove or change it, if you really want "
"to disable the untracked cache"
@@ -23800,11 +24331,11 @@ msgstr ""
"core.untrackedCache 'true' olarak ayarlanmış; izlenmeyen önbelleği gerçekten "
"devre dışı bırakmayı istiyorsanız bunu kaldırın veya değiştirin"
-#: builtin/update-index.c:1198
+#: builtin/update-index.c:1220
msgid "Untracked cache disabled"
msgstr "İzlenmeyen önbellek devre dışı bırakıldı"
-#: builtin/update-index.c:1206
+#: builtin/update-index.c:1228
msgid ""
"core.untrackedCache is set to false; remove or change it, if you really want "
"to enable the untracked cache"
@@ -23812,29 +24343,29 @@ msgstr ""
"core.untrackedCache 'false' olarak ayarlanmış; izlenmeyen önbelleği "
"gerçekten etkinleştirmek istiyorsanız bunu kaldırın veya değiştirin"
-#: builtin/update-index.c:1210
+#: builtin/update-index.c:1232
#, c-format
msgid "Untracked cache enabled for '%s'"
msgstr "İzlenmeyen önbellek '%s' için etkinleştirildi"
-#: builtin/update-index.c:1218
+#: builtin/update-index.c:1241
msgid "core.fsmonitor is unset; set it if you really want to enable fsmonitor"
msgstr ""
"core.fsmonitor ayarlanmamış; dosya sistemin monitörünü gerçekten "
"etkinleştirmek istiyorsanız onu ayarlayın"
-#: builtin/update-index.c:1222
+#: builtin/update-index.c:1246
msgid "fsmonitor enabled"
msgstr "dosya sistemi monitörü etkin"
-#: builtin/update-index.c:1225
+#: builtin/update-index.c:1250
msgid ""
"core.fsmonitor is set; remove it if you really want to disable fsmonitor"
msgstr ""
"core.fsmonitor ayarlanmış; dosya sistemi monitörünü gerçekten devre dışı "
"bırakmak istiyorsanız onu kaldırın"
-#: builtin/update-index.c:1229
+#: builtin/update-index.c:1254
msgid "fsmonitor disabled"
msgstr "dosya sistemi monitörü devre dışı"
@@ -23867,10 +24398,6 @@ msgstr "stdin'de NUL ile sonlandırılan argümanlar var"
msgid "read updates from stdin"
msgstr "güncellemeleri stdin'den oku"
-#: builtin/update-server-info.c:7
-msgid "git update-server-info [--force]"
-msgstr "git update-server-info [--force]"
-
#: builtin/update-server-info.c:15
msgid "update the info files from scratch"
msgstr "bilgi dosyalarını en baştan güncelle"
@@ -23952,33 +24479,37 @@ msgid "git worktree remove [<options>] <worktree>"
msgstr "git worktree remove [<seçenekler>] <ç-ağacı>"
#: builtin/worktree.c:25
+msgid "git worktree repair [<path>...]"
+msgstr "git worktree repair [<yol>...]"
+
+#: builtin/worktree.c:26
msgid "git worktree unlock <path>"
msgstr "git worktree unlock <yol>"
-#: builtin/worktree.c:75
+#: builtin/worktree.c:76
#, c-format
msgid "Removing %s/%s: %s"
msgstr "%s/%s kaldırılıyor: %s"
-#: builtin/worktree.c:148
+#: builtin/worktree.c:149
msgid "report pruned working trees"
msgstr "budanan çalışma ağaçlarını bildir"
-#: builtin/worktree.c:150
+#: builtin/worktree.c:151
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:220
+#: builtin/worktree.c:221
#, c-format
msgid "'%s' already exists"
msgstr "'%s' halihazırda var"
-#: builtin/worktree.c:229
+#: builtin/worktree.c:230
#, c-format
msgid "unusable worktree destination '%s'"
msgstr "kullanılamayan çalışma ağacı konumu '%s'"
-#: builtin/worktree.c:234
+#: builtin/worktree.c:235
#, c-format
msgid ""
"'%s' is a missing but locked worktree;\n"
@@ -23988,7 +24519,7 @@ msgstr ""
"geçersiz kılmak için '%s -f -f', temizlemek için 'unlock', 'prune' veya "
"'remove' kullanın"
-#: builtin/worktree.c:236
+#: builtin/worktree.c:237
#, c-format
msgid ""
"'%s' is a missing but already registered worktree;\n"
@@ -23997,127 +24528,146 @@ msgstr ""
"'%s' eksik; ancak halihazırda kaydı yapılmış bir çalışma ağacı;\n"
"geçersiz kılmak için '%s -f', temizlemek için 'prune' veya 'remove' kullanın"
-#: builtin/worktree.c:287
+#: builtin/worktree.c:248
+#, c-format
+msgid "failed to copy '%s' to '%s'; sparse-checkout may not work correctly"
+msgstr "'%s' -> '%s' kopyalanamadı; aralıklı çıkış düzgün çalışmayabilir"
+
+#: builtin/worktree.c:268
+#, c-format
+msgid "failed to copy worktree config from '%s' to '%s'"
+msgstr "çalışma ağacı yapılandırması '%s' -> '%s' konumuna kopyalanamadı"
+
+#: builtin/worktree.c:280 builtin/worktree.c:285
+#, c-format
+msgid "failed to unset '%s' in '%s'"
+msgstr "'%s' ayarı, '%s' içinde kaldırılamadı"
+
+#: builtin/worktree.c:356
#, c-format
msgid "could not create directory of '%s'"
msgstr "'%s' dizini oluşturulamadı"
-#: builtin/worktree.c:309
+#: builtin/worktree.c:378
msgid "initializing"
msgstr "ilklendiriliyor"
-#: builtin/worktree.c:420 builtin/worktree.c:426
+#: builtin/worktree.c:492 builtin/worktree.c:498
#, c-format
msgid "Preparing worktree (new branch '%s')"
msgstr "Çalışma ağacı hazırlanıyor (yeni dal '%s')"
-#: builtin/worktree.c:422
+#: builtin/worktree.c:494
#, 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:431
+#: builtin/worktree.c:503
#, c-format
msgid "Preparing worktree (checking out '%s')"
msgstr "Çalışma ağacı hazırlanıyor ('%s' çıkış yapılıyor)"
-#: builtin/worktree.c:437
+#: builtin/worktree.c:509
#, c-format
msgid "Preparing worktree (detached HEAD %s)"
msgstr "Çalışma ağacı hazırlanıyor (ayrık HEAD %s)"
-#: builtin/worktree.c:482
+#: builtin/worktree.c:554
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:485
+#: builtin/worktree.c:557
msgid "create a new branch"
msgstr "yeni bir dal oluÅŸtur"
-#: builtin/worktree.c:487
+#: builtin/worktree.c:559
msgid "create or reset a branch"
msgstr "yeni bir dal oluştur veya sıfırla"
-#: builtin/worktree.c:489
+#: builtin/worktree.c:561
msgid "populate the new working tree"
msgstr "yeni çalışma ağacını doldur"
-#: builtin/worktree.c:490
+#: builtin/worktree.c:562
msgid "keep the new working tree locked"
msgstr "yeni çalışma ağacını kilitli tut"
-#: builtin/worktree.c:492 builtin/worktree.c:729
+#: builtin/worktree.c:564 builtin/worktree.c:809
msgid "reason for locking"
msgstr "kilitleme nedeni"
-#: builtin/worktree.c:495
+#: builtin/worktree.c:567
msgid "set up tracking mode (see git-branch(1))"
msgstr "izleme kipini ayarla (bkz: git-branch(1))"
-#: builtin/worktree.c:498
+#: builtin/worktree.c:570
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:512
+#: builtin/worktree.c:584
msgid "added with --lock"
msgstr "--lock ile eklendi"
-#: builtin/worktree.c:574
+#: builtin/worktree.c:646
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:691
+#: builtin/worktree.c:766
msgid "show extended annotations and reasons, if available"
msgstr "varsa genişletilmiş açıklamaları ve nedenleri göster"
-#: builtin/worktree.c:693
+#: builtin/worktree.c:768
msgid "add 'prunable' annotation to worktrees older than <time>"
msgstr "<zaman>'dan eski çalışma ağaçlarına 'budanabilir' açıklama ekle"
-#: builtin/worktree.c:741 builtin/worktree.c:774 builtin/worktree.c:848
-#: builtin/worktree.c:972
+#: builtin/worktree.c:770
+msgid "terminate records with a NUL character"
+msgstr "kayıtları bir NUL karakteriyle sonlandır"
+
+#: builtin/worktree.c:821 builtin/worktree.c:854 builtin/worktree.c:928
+#: builtin/worktree.c:1052
#, c-format
msgid "'%s' is not a working tree"
msgstr "'%s' bir çalışma ağacı değil"
-#: builtin/worktree.c:743 builtin/worktree.c:776
+#: builtin/worktree.c:823 builtin/worktree.c:856
msgid "The main working tree cannot be locked or unlocked"
msgstr "Ana çalışma ağacı kilitlenemez veya kilidi açılamaz"
-#: builtin/worktree.c:748
+#: builtin/worktree.c:828
#, c-format
msgid "'%s' is already locked, reason: %s"
msgstr "'%s' halihazırda kilitli, nedeni: %s"
-#: builtin/worktree.c:750
+#: builtin/worktree.c:830
#, c-format
msgid "'%s' is already locked"
msgstr "'%s' halihazırda kilitli"
-#: builtin/worktree.c:778
+#: builtin/worktree.c:858
#, c-format
msgid "'%s' is not locked"
msgstr "'%s' kilitli deÄŸil"
-#: builtin/worktree.c:819
+#: builtin/worktree.c:899
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:827
+#: builtin/worktree.c:907
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:850 builtin/worktree.c:974
+#: builtin/worktree.c:930 builtin/worktree.c:1054
#, c-format
msgid "'%s' is a main working tree"
msgstr "'%s' bir ana çalışma ağacı"
-#: builtin/worktree.c:855
+#: builtin/worktree.c:935
#, c-format
msgid "could not figure out destination name from '%s'"
msgstr "hedef adı şuradan anlaşılamadı: '%s'"
-#: builtin/worktree.c:868
+#: builtin/worktree.c:948
#, c-format
msgid ""
"cannot move a locked working tree, lock reason: %s\n"
@@ -24126,7 +24676,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:870
+#: builtin/worktree.c:950
msgid ""
"cannot move a locked working tree;\n"
"use 'move -f -f' to override or unlock first"
@@ -24134,38 +24684,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:873
+#: builtin/worktree.c:953
#, 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:878
+#: builtin/worktree.c:958
#, c-format
msgid "failed to move '%s' to '%s'"
msgstr "'%s' -> '%s' taşıması başarısız"
-#: builtin/worktree.c:924
+#: builtin/worktree.c:1004
#, c-format
msgid "failed to run 'git status' on '%s'"
msgstr "'%s' üzerinde 'git status' çalıştırılamadı"
-#: builtin/worktree.c:928
+#: builtin/worktree.c:1008
#, 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:933
+#: builtin/worktree.c:1013
#, 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:956
+#: builtin/worktree.c:1036
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:979
+#: builtin/worktree.c:1059
#, c-format
msgid ""
"cannot remove a locked working tree, lock reason: %s\n"
@@ -24174,7 +24724,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:981
+#: builtin/worktree.c:1061
msgid ""
"cannot remove a locked working tree;\n"
"use 'remove -f -f' to override or unlock first"
@@ -24182,17 +24732,17 @@ 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:984
+#: builtin/worktree.c:1064
#, 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"
-#: builtin/worktree.c:1008
+#: builtin/worktree.c:1088
#, c-format
msgid "repair: %s: %s"
msgstr "ÅŸunu onar %s: %s"
-#: builtin/worktree.c:1011
+#: builtin/worktree.c:1091
#, c-format
msgid "error: %s: %s"
msgstr "hata: %s: %s"
@@ -24297,29 +24847,29 @@ msgstr "%s için boş arma"
msgid "recursive alias: %s"
msgstr "özyineli arma: %s"
-#: git.c:479
+#: git.c:480
msgid "write failure on standard output"
msgstr "standart çıktı'da yazma hatası"
-#: git.c:481
+#: git.c:482
msgid "unknown write failure on standard output"
msgstr "standart çıktı'da bilinmeyen yazma hatası"
-#: git.c:483
+#: git.c:484
msgid "close failed on standard output"
msgstr "standart çıktı'da kapatma başarısız"
-#: git.c:835
+#: git.c:838
#, c-format
msgid "alias loop detected: expansion of '%s' does not terminate:%s"
msgstr "arma döngüsü algılandı: '%s' genişletilmesi sonlanmıyor:%s"
-#: git.c:885
+#: git.c:888
#, c-format
msgid "cannot handle %s as a builtin"
msgstr "%s bir yerleşik olarak ele alınamıyor"
-#: git.c:898
+#: git.c:901
#, c-format
msgid ""
"usage: %s\n"
@@ -24328,13 +24878,13 @@ msgstr ""
"kullanım: %s\n"
"\n"
-#: git.c:918
+#: git.c:921
#, c-format
msgid "expansion of alias '%s' failed; '%s' is not a git command\n"
msgstr ""
"'%s' armasının genişletilmesi başarısız oldu; '%s' bir git komutu değil\n"
-#: git.c:930
+#: git.c:933
#, c-format
msgid "failed to run command '%s': %s\n"
msgstr "'%s' komutu çalıştırılamadı: %s\n"
@@ -24420,7 +24970,7 @@ msgstr "sunucu iş parçacığı havuzundaki iş parçacığı sayısı"
#: t/helper/test-simple-ipc.c:600
msgid "seconds to wait for daemon to start or stop"
-msgstr "arka plan servisinin başlaaması veya durması için beklenecek saniye"
+msgstr "ardalan sürecinin başlaması veya durması için beklenecek saniye"
#: t/helper/test-simple-ipc.c:602
msgid "number of bytes"
@@ -24490,140 +25040,140 @@ msgstr ""
" ÅŸu istendi: %s\n"
" yönlenen: %s"
-#: remote-curl.c:183
+#: remote-curl.c:184
#, 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:304
+#: remote-curl.c:308
#, 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:405
+#: remote-curl.c:409
msgid "invalid server response; expected service, got flush packet"
msgstr "geçersiz sunucu yanıtı; servis bekleniyordu, floş paketi alındı"
-#: remote-curl.c:436
+#: remote-curl.c:440
#, c-format
msgid "invalid server response; got '%s'"
msgstr "geçersiz sunucu yanıtı; '%s' alındı"
-#: remote-curl.c:496
+#: remote-curl.c:500
#, c-format
msgid "repository '%s' not found"
msgstr "'%s' deposu bulunamadı"
-#: remote-curl.c:500
+#: remote-curl.c:504
#, c-format
msgid "Authentication failed for '%s'"
msgstr "'%s' için kimlik doğrulaması başarısız"
-#: remote-curl.c:504
+#: remote-curl.c:508
#, c-format
msgid "unable to access '%s' with http.pinnedPubkey configuration: %s"
msgstr "'%s', http.pinnedPubkey yapılandırması ile erişilemiyor: %s"
-#: remote-curl.c:508
+#: remote-curl.c:512
#, c-format
msgid "unable to access '%s': %s"
msgstr "'%s' eriÅŸilemiyor: %s"
-#: remote-curl.c:514
+#: remote-curl.c:518
#, c-format
msgid "redirecting to %s"
msgstr "şuraya yeniden yönlendiriliyor: %s"
-#: remote-curl.c:645
+#: remote-curl.c:649
msgid "shouldn't have EOF when not gentle on EOF"
msgstr "dosya sonuna dikkat edilmiyorsa dosya sonu olmamalıdır"
-#: remote-curl.c:657
+#: remote-curl.c:661
msgid "remote server sent unexpected response end packet"
msgstr "uzak sunucu beklenmedik yanıt sonu paketi gönderdi"
-#: remote-curl.c:726
+#: remote-curl.c:730
msgid "unable to rewind rpc post data - try increasing http.postBuffer"
msgstr ""
"rpc sonrası verisi geri sarılamıyor - http.postBuffer'ı artırmayı deneyin"
-#: remote-curl.c:755
+#: remote-curl.c:759
#, c-format
msgid "remote-curl: bad line length character: %.4s"
msgstr "remote-curl: hatalı satır uzunluğu karakteri: %.4s"
-#: remote-curl.c:757
+#: remote-curl.c:761
msgid "remote-curl: unexpected response end packet"
msgstr "remote-curl: beklenmedik yanıt sonu paketi"
-#: remote-curl.c:833
+#: remote-curl.c:837
#, c-format
msgid "RPC failed; %s"
msgstr "RPC başarısız oldu; %s"
-#: remote-curl.c:873
+#: remote-curl.c:877
msgid "cannot handle pushes this big"
msgstr "bu kadar büyük itmeler ele alınamıyor"
-#: remote-curl.c:986
+#: remote-curl.c:990
#, c-format
msgid "cannot deflate request; zlib deflate error %d"
msgstr "istek söndürülemiyor; 'zlib deflate' hatası %d"
-#: remote-curl.c:990
+#: remote-curl.c:994
#, c-format
msgid "cannot deflate request; zlib end error %d"
msgstr "istek söndürülemiyor; 'zlib end' hatası %d"
-#: remote-curl.c:1040
+#: remote-curl.c:1044
#, c-format
msgid "%d bytes of length header were received"
msgstr "üstbilginin %d baytı alındı"
-#: remote-curl.c:1042
+#: remote-curl.c:1046
#, c-format
msgid "%d bytes of body are still expected"
msgstr "gövdenin %d baytı hâlâ bekleniyor"
-#: remote-curl.c:1131
+#: remote-curl.c:1135
msgid "dumb http transport does not support shallow capabilities"
msgstr "programlanamayan http taşıyıcısı sığ işlevleri desteklemiyor"
-#: remote-curl.c:1146
+#: remote-curl.c:1150
msgid "fetch failed."
msgstr "getirme başarısız."
-#: remote-curl.c:1192
+#: remote-curl.c:1198
msgid "cannot fetch by sha1 over smart http"
msgstr "akıllı http üzerinden sha1 ile getirme yapılamıyor"
-#: remote-curl.c:1236 remote-curl.c:1242
+#: remote-curl.c:1242 remote-curl.c:1248
#, c-format
msgid "protocol error: expected sha/ref, got '%s'"
msgstr "protokol hatası: sha/ref bekleniyordu, '%s' alındı"
-#: remote-curl.c:1254 remote-curl.c:1372
+#: remote-curl.c:1260 remote-curl.c:1378
#, c-format
msgid "http transport does not support %s"
msgstr "http taşıyıcısı %s desteklemiyor"
-#: remote-curl.c:1290
+#: remote-curl.c:1296
msgid "git-http-push failed"
msgstr "git-http-push başarısız"
-#: remote-curl.c:1478
+#: remote-curl.c:1485
msgid "remote-curl: usage: git remote-curl <remote> [<url>]"
msgstr "remote-curl: kullanım: git remote-curl <uzak-konum> [<url>]"
-#: remote-curl.c:1510
+#: remote-curl.c:1517
msgid "remote-curl: error reading command stream from git"
msgstr "remote-curl: git'ten komut akışı okunurken hata"
-#: remote-curl.c:1517
+#: remote-curl.c:1524
msgid "remote-curl: fetch attempted without a local repo"
msgstr "remote-curl: yerel bir depo olmadan getirme yapılmaya çalışıldı"
-#: remote-curl.c:1558
+#: remote-curl.c:1565
#, c-format
msgid "remote-curl: unknown command '%s' from git"
msgstr "remote-curl: git'ten bilinmeyen komut '%s'"
@@ -24636,122 +25186,122 @@ msgstr "bir çalışma dizini gerekiyor"
msgid "could not find enlistment root"
msgstr "gönüllü yazılma kaydı bulunamıyor"
-#: contrib/scalar/scalar.c:89 contrib/scalar/scalar.c:351
-#: contrib/scalar/scalar.c:436 contrib/scalar/scalar.c:579
+#: contrib/scalar/scalar.c:89 contrib/scalar/scalar.c:350
+#: contrib/scalar/scalar.c:435 contrib/scalar/scalar.c:578
#, c-format
msgid "could not switch to '%s'"
msgstr "şuraya geçilemedi: '%s'"
-#: contrib/scalar/scalar.c:180
+#: contrib/scalar/scalar.c:179
#, c-format
msgid "could not configure %s=%s"
msgstr "%s=%s yapılandırılamadı"
-#: contrib/scalar/scalar.c:198
+#: contrib/scalar/scalar.c:197
msgid "could not configure log.excludeDecoration"
msgstr "log.excludeDecoration yapılandırılamadı"
-#: contrib/scalar/scalar.c:219
+#: contrib/scalar/scalar.c:218
msgid "Scalar enlistments require a worktree"
msgstr "Scalar gönüllü kayıtları bir çalışma ağacı gerektiriyor"
-#: contrib/scalar/scalar.c:311
+#: contrib/scalar/scalar.c:310
#, c-format
msgid "remote HEAD is not a branch: '%.*s'"
msgstr "uzak konum HEAD'i bir dal deÄŸil: '%.*s'"
-#: contrib/scalar/scalar.c:317
+#: contrib/scalar/scalar.c:316
msgid "failed to get default branch name from remote; using local default"
msgstr ""
"uzak konumdan öntanımlı dal adı alınamadı; yerel öntanımlı kullanılıyor"
-#: contrib/scalar/scalar.c:330
+#: contrib/scalar/scalar.c:329
msgid "failed to get default branch name"
msgstr "öntanımlı dal adı alınamadı"
-#: contrib/scalar/scalar.c:341
+#: contrib/scalar/scalar.c:340
msgid "failed to unregister repository"
msgstr "depo kaydı silinemedi"
-#: contrib/scalar/scalar.c:356
+#: contrib/scalar/scalar.c:355
msgid "failed to delete enlistment directory"
msgstr "gönüllü kayıt dizini silinemedi"
-#: contrib/scalar/scalar.c:376
+#: contrib/scalar/scalar.c:375
msgid "branch to checkout after clone"
msgstr "klonlama sonrası çıkış yapılacak dal"
-#: contrib/scalar/scalar.c:378
+#: contrib/scalar/scalar.c:377
msgid "when cloning, create full working directory"
msgstr "klonlama sırasında tam çalışma dizini oluştur"
-#: contrib/scalar/scalar.c:380
+#: contrib/scalar/scalar.c:379
msgid "only download metadata for the branch that will be checked out"
msgstr "yalnızca çıkış yapılacak dalın üstverisini indir"
-#: contrib/scalar/scalar.c:385
+#: contrib/scalar/scalar.c:384
msgid "scalar clone [<options>] [--] <repo> [<dir>]"
msgstr "scalar clone [<seçenekler>] [--] <depo> [<dizin>]"
-#: contrib/scalar/scalar.c:410
+#: contrib/scalar/scalar.c:409
#, c-format
msgid "cannot deduce worktree name from '%s'"
msgstr "'%s' ögesinden çalışma ağacı adı ortaya çıkarılamıyor"
-#: contrib/scalar/scalar.c:419
+#: contrib/scalar/scalar.c:418
#, c-format
msgid "directory '%s' exists already"
msgstr "'%s' dizini halihazırda var"
-#: contrib/scalar/scalar.c:446
+#: contrib/scalar/scalar.c:445
#, c-format
msgid "failed to get default branch for '%s'"
msgstr "'%s' için öntanımlı dal alınamadı"
-#: contrib/scalar/scalar.c:457
+#: contrib/scalar/scalar.c:456
#, c-format
msgid "could not configure remote in '%s'"
msgstr "'%s' içindeki uzak konum yapılandırılamadı"
-#: contrib/scalar/scalar.c:466
+#: contrib/scalar/scalar.c:465
#, c-format
msgid "could not configure '%s'"
msgstr "'%s' yapılandırılamadı"
-#: contrib/scalar/scalar.c:469
+#: contrib/scalar/scalar.c:468
msgid "partial clone failed; attempting full clone"
msgstr "kısımsal klonlama başarısız; tam klonlama deneniyor"
-#: contrib/scalar/scalar.c:473
+#: contrib/scalar/scalar.c:472
msgid "could not configure for full clone"
msgstr "tam klonlama için yapılandırılamadı"
-#: contrib/scalar/scalar.c:505
+#: contrib/scalar/scalar.c:504
msgid "`scalar list` does not take arguments"
msgstr "'scalar list' argüman almıyor"
-#: contrib/scalar/scalar.c:518
+#: contrib/scalar/scalar.c:517
msgid "scalar register [<enlistment>]"
msgstr "scalar register [<gönüllükayıt>]"
-#: contrib/scalar/scalar.c:545
+#: contrib/scalar/scalar.c:544
msgid "reconfigure all registered enlistments"
msgstr "tüm kaydı yapılmış gönüllü kayıtları yeniden yapılandır"
-#: contrib/scalar/scalar.c:549
+#: contrib/scalar/scalar.c:548
msgid "scalar reconfigure [--all | <enlistment>]"
msgstr "scalar reconfigure [--all | <gönüllükayıt>]"
-#: contrib/scalar/scalar.c:567
+#: contrib/scalar/scalar.c:566
msgid "--all or <enlistment>, but not both"
msgstr "--all veya <gönüllükayıt>; ancak ikisi değil"
-#: contrib/scalar/scalar.c:582
+#: contrib/scalar/scalar.c:581
#, c-format
msgid "git repository gone in '%s'"
msgstr "git deposu '%s' içinde gitti"
-#: contrib/scalar/scalar.c:622
+#: contrib/scalar/scalar.c:621
msgid ""
"scalar run <task> [<enlistment>]\n"
"Tasks:\n"
@@ -24759,42 +25309,55 @@ msgstr ""
"scalar run <görev> [<gönüllükayıt>]\n"
"Görevler:\n"
-#: contrib/scalar/scalar.c:640
+#: contrib/scalar/scalar.c:639
#, c-format
msgid "no such task: '%s'"
msgstr "böyle bir görev yok: '%s'"
-#: contrib/scalar/scalar.c:690
+#: contrib/scalar/scalar.c:689
msgid "scalar unregister [<enlistment>]"
msgstr "scalar unregister [<enlistment>]"
-#: contrib/scalar/scalar.c:737
+#: contrib/scalar/scalar.c:736
msgid "scalar delete <enlistment>"
msgstr "scalar delete <gönüllükayıt>"
-#: contrib/scalar/scalar.c:752
+#: contrib/scalar/scalar.c:751
msgid "refusing to delete current working directory"
msgstr "geçerli çalışma dizinini silme reddediliyor"
-#: contrib/scalar/scalar.c:767
+#: contrib/scalar/scalar.c:766
msgid "include Git version"
msgstr "Git sürümünü içer"
-#: contrib/scalar/scalar.c:769
+#: contrib/scalar/scalar.c:768
msgid "include Git's build options"
msgstr "Git'in yapı seçeneklerini içer"
-#: contrib/scalar/scalar.c:773
+#: contrib/scalar/scalar.c:772
msgid "scalar verbose [-v | --verbose] [--build-options]"
msgstr "scalar verbose [-v | --verbose] [--build-options]"
+#: contrib/scalar/scalar.c:813
+msgid "-C requires a <directory>"
+msgstr "-C, bir <dizin> gerektiriyor"
+
+#: contrib/scalar/scalar.c:815
+#, c-format
+msgid "could not change to '%s'"
+msgstr "'%s' olarak deÄŸiÅŸtirilemedi"
+
#: contrib/scalar/scalar.c:821
+msgid "-c requires a <key>=<value> argument"
+msgstr "-c, bir <anahtar>=<değer> argümanı gerektiriyor"
+
+#: contrib/scalar/scalar.c:839
msgid ""
-"scalar <command> [<options>]\n"
+"scalar [-C <directory>] [-c <key>=<value>] <command> [<options>]\n"
"\n"
"Commands:\n"
msgstr ""
-"scalar <komut> [<seçenekler>]\n"
+"scalar [-C <dizin>] [-c <anahtar>=<değer>] <komut> [<seçenekler>]\n"
"\n"
"Komutlar:\n"
@@ -24806,43 +25369,43 @@ msgstr "derleyici bilgisi mevcut deÄŸil\n"
msgid "no libc information available\n"
msgstr "libc bilgisi mevcut deÄŸil\n"
-#: list-objects-filter-options.h:94
+#: list-objects-filter-options.h:126
msgid "args"
msgstr "argümanlar"
-#: list-objects-filter-options.h:95
+#: list-objects-filter-options.h:127
msgid "object filtering"
msgstr "nesne süzümü"
-#: parse-options.h:183
+#: parse-options.h:188
msgid "expiry-date"
msgstr "son kullanım tarihi"
-#: parse-options.h:197
+#: parse-options.h:202
msgid "no-op (backward compatibility)"
msgstr "işlem yok (geriye dönük uyumluluk için)"
-#: parse-options.h:310
+#: parse-options.h:341
msgid "be more verbose"
msgstr "daha ayrıntılı anlat"
-#: parse-options.h:312
+#: parse-options.h:343
msgid "be more quiet"
msgstr "daha sessiz ol"
-#: parse-options.h:318
+#: parse-options.h:349
msgid "use <n> digits to display object names"
msgstr "nesne adlarını görüntülemek için <n> basamak kullan"
-#: parse-options.h:337
+#: parse-options.h:368
msgid "how to strip spaces and #comments from message"
msgstr "iletiden boşlukları ve #yorumları çıkart"
-#: parse-options.h:338
+#: parse-options.h:369
msgid "read pathspec from file"
msgstr "yol belirtecini dosyadan oku"
-#: parse-options.h:339
+#: parse-options.h:370
msgid ""
"with --pathspec-from-file, pathspec elements are separated with NUL character"
msgstr ""
@@ -24995,7 +25558,7 @@ msgstr "Bir CVS çıkışına tek bir işlemeyi dışa aktar"
#: command-list.h:83
msgid "Salvage your data out of another SCM people love to hate"
-msgstr "'TiskindiÄŸiniz' baÅŸka bir KDY'den verileri kurtar"
+msgstr "'Tiskindiğiniz' başka bir KDY'den verinizi kurtarın"
#: command-list.h:84
msgid "A CVS server emulator for Git"
@@ -25095,447 +25658,451 @@ msgid "Display help information about Git"
msgstr "Git yardım bilgisini görüntüle"
#: command-list.h:108
+msgid "Run git hooks"
+msgstr "Git kancalarını çalıştır"
+
+#: command-list.h:109
msgid "Server side implementation of Git over HTTP"
msgstr "Git'in HTTP üzerinden sunucu tarafı uygulaması"
-#: command-list.h:109
+#: command-list.h:110
msgid "Download from a remote Git repository via HTTP"
msgstr "HTTP üzerinden uzak bir Git deposundan indir"
-#: command-list.h:110
+#: command-list.h:111
msgid "Push objects over HTTP/DAV to another repository"
msgstr "Nesneleri HTTP/DAV üzerinden başka bir depoya it"
-#: command-list.h:111
+#: command-list.h:112
msgid "Send a collection of patches from stdin to an IMAP folder"
msgstr "stdin'den bir IMAP klasörüne bir yama derlemesi gönder"
-#: command-list.h:112
+#: command-list.h:113
msgid "Build pack index file for an existing packed archive"
msgstr "Mevcut paketli bir arşiv için paket indeks dosyası yap"
-#: command-list.h:113
+#: command-list.h:114
msgid "Create an empty Git repository or reinitialize an existing one"
msgstr "Boş bir Git deposu oluştur veya olanı yeniden ilklendir"
-#: command-list.h:114
+#: command-list.h:115
msgid "Instantly browse your working repository in gitweb"
msgstr "gitweb'deki çalışma deposuna anında göz at"
-#: command-list.h:115
+#: command-list.h:116
msgid "Add or parse structured information in commit messages"
msgstr "İşleme iletilerine düzenli bilgi ekle veya ayrıştır"
-#: command-list.h:116
+#: command-list.h:117
msgid "Show commit logs"
msgstr "İşleme günlüklerini göster"
-#: command-list.h:117
+#: command-list.h:118
msgid "Show information about files in the index and the working tree"
msgstr "İndeks ve çalışma ağacındaki dosya bilgilerini göster"
-#: command-list.h:118
+#: command-list.h:119
msgid "List references in a remote repository"
msgstr "Uzak bir depodaki başvuruları listele"
-#: command-list.h:119
+#: command-list.h:120
msgid "List the contents of a tree object"
msgstr "Bir ağaç nesnesinin içeriğini listele"
-#: command-list.h:120
+#: command-list.h:121
msgid "Extracts patch and authorship from a single e-mail message"
msgstr "E-posta iletisinden yama ve yazar bilgisini çıkart"
-#: command-list.h:121
+#: command-list.h:122
msgid "Simple UNIX mbox splitter program"
msgstr "Yalın UNIX mbox bölücü yazılımı"
-#: command-list.h:122
+#: command-list.h:123
msgid "Run tasks to optimize Git repository data"
msgstr "Git depo verisini eniyilemek için görevler çalıştır"
-#: command-list.h:123
+#: command-list.h:124
msgid "Join two or more development histories together"
msgstr "İki veya daha fazla geliştirme geçmişini birleştir"
-#: command-list.h:124
+#: command-list.h:125
msgid "Find as good common ancestors as possible for a merge"
msgstr "Birleştirme için olabildiğince en iyi ortak ataları bul"
-#: command-list.h:125
+#: command-list.h:126
msgid "Run a three-way file merge"
msgstr "Bir 3 yönlü dosya birleştirmesi çalıştır"
-#: command-list.h:126
+#: command-list.h:127
msgid "Run a merge for files needing merging"
msgstr "Birleştirilmesi gereken dosyaları birleştir"
-#: command-list.h:127
+#: command-list.h:128
msgid "The standard helper program to use with git-merge-index"
msgstr "Bu yardımcı program git-merge-index kullanımı içindir"
-#: command-list.h:128
+#: command-list.h:129
msgid "Show three-way merge without touching index"
msgstr "İndekse dokunmadan üçlü birleştirmeyi göster"
-#: command-list.h:129
+#: command-list.h:130
msgid "Run merge conflict resolution tools to resolve merge conflicts"
msgstr "Çakışmaları çözmek için çözüm araçlarını çalıştır"
-#: command-list.h:130
+#: command-list.h:131
msgid "Creates a tag object with extra validation"
msgstr "Ek doğrulamalı bir etiket nesnesi oluştur"
-#: command-list.h:131
+#: command-list.h:132
msgid "Build a tree-object from ls-tree formatted text"
msgstr "ls-tree biçimli metinden bir ağaç nesnesi yap"
-#: command-list.h:132
+#: command-list.h:133
msgid "Write and verify multi-pack-indexes"
msgstr "multi-pack-index doÄŸrula ve yaz"
-#: command-list.h:133
+#: command-list.h:134
msgid "Move or rename a file, a directory, or a symlink"
msgstr "Dosya, dizin veya sembolik bağları taşı/yeniden adlandır"
-#: command-list.h:134
+#: command-list.h:135
msgid "Find symbolic names for given revs"
msgstr "Verilen revizyonlar için sembolik adları bul"
-#: command-list.h:135
+#: command-list.h:136
msgid "Add or inspect object notes"
msgstr "Nesne notları ekle veya incele"
-#: command-list.h:136
+#: command-list.h:137
msgid "Import from and submit to Perforce repositories"
msgstr "Perforce depolarından içe aktar ve onlara gönder"
-#: command-list.h:137
+#: command-list.h:138
msgid "Create a packed archive of objects"
msgstr "PaketlenmiÅŸ bir nesne arÅŸivi oluÅŸtur"
-#: command-list.h:138
+#: command-list.h:139
msgid "Find redundant pack files"
msgstr "Gereksiz paket dosyalarını bul"
-#: command-list.h:139
+#: command-list.h:140
msgid "Pack heads and tags for efficient repository access"
msgstr "Etkili depo erişimi için dal uçları ve etiketler paketle"
-#: command-list.h:140
+#: command-list.h:141
msgid "Compute unique ID for a patch"
msgstr "Bir yama için eşi olmayan numara hesapla"
-#: command-list.h:141
+#: command-list.h:142
msgid "Prune all unreachable objects from the object database"
msgstr "Ulaşılamayan tüm nesneleri nesne veritabanından buda"
-#: command-list.h:142
+#: command-list.h:143
msgid "Remove extra objects that are already in pack files"
msgstr "Halihazırda paket dosyalarında olan ek nesneleri kaldır"
-#: command-list.h:143
+#: command-list.h:144
msgid "Fetch from and integrate with another repository or a local branch"
msgstr "BaÅŸka bir depo veya yerel daldan getir ve entegre et"
-#: command-list.h:144
+#: command-list.h:145
msgid "Update remote refs along with associated objects"
msgstr "İlişkin nesnelerle birlikte uzak başvuruları da güncelle"
-#: command-list.h:145
+#: command-list.h:146
msgid "Applies a quilt patchset onto the current branch"
msgstr "Geçerli dala bir \"Quilt\" yama seti uygula"
-#: command-list.h:146
+#: command-list.h:147
msgid "Compare two commit ranges (e.g. two versions of a branch)"
msgstr "İki işleme erimini karşılaştır (bir dalın iki sürümü)"
-#: command-list.h:147
+#: command-list.h:148
msgid "Reads tree information into the index"
msgstr "Ağaç bilgisini indekse okur"
-#: command-list.h:148
+#: command-list.h:149
msgid "Reapply commits on top of another base tip"
msgstr "İşlemeleri başka bir temel ucu üzerine uygula"
-#: command-list.h:149
+#: command-list.h:150
msgid "Receive what is pushed into the repository"
msgstr "Depoya ne itildiyse al"
-#: command-list.h:150
+#: command-list.h:151
msgid "Manage reflog information"
msgstr "Başvuru günlüğü bilgisini yönet"
-#: command-list.h:151
+#: command-list.h:152
msgid "Manage set of tracked repositories"
msgstr "İzlenen depolar setini yönet"
-#: command-list.h:152
+#: command-list.h:153
msgid "Pack unpacked objects in a repository"
msgstr "Bir depodaki paketlenmemiÅŸ nesneleri paketle"
-#: command-list.h:153
+#: command-list.h:154
msgid "Create, list, delete refs to replace objects"
msgstr "Nesne değiştirmek için başvurular oluştur, sil, listele"
-#: command-list.h:154
+#: command-list.h:155
msgid "Generates a summary of pending changes"
msgstr "Bekleyen değişikliklerin bir özetini çıkart"
-#: command-list.h:155
+#: command-list.h:156
msgid "Reuse recorded resolution of conflicted merges"
msgstr "Çakışan birleştirmelerin kayıtlı çözümlerini yen. kullan"
-#: command-list.h:156
+#: command-list.h:157
msgid "Reset current HEAD to the specified state"
msgstr "Geçerli HEAD'i belirtilen duruma sıfırla"
-#: command-list.h:157
+#: command-list.h:158
msgid "Restore working tree files"
msgstr "Çalışma ağacı dosyalarını eski durumuna getir"
-#: command-list.h:158
+#: command-list.h:159
msgid "Lists commit objects in reverse chronological order"
msgstr "İşleme nesnelerini ters kronolojik sırada listele"
-#: command-list.h:159
+#: command-list.h:160
msgid "Pick out and massage parameters"
msgstr "Parametreleri al ve üzerinde çalış"
-#: command-list.h:160
+#: command-list.h:161
msgid "Revert some existing commits"
msgstr "Bazı var olan işlemeleri geri al"
-#: command-list.h:161
+#: command-list.h:162
msgid "Remove files from the working tree and from the index"
msgstr "Dosyaları çalışma ağacından ve indeksten kaldır"
-#: command-list.h:162
+#: command-list.h:163
msgid "Send a collection of patches as emails"
msgstr "Bir yama derlemesini e-posta olarak gönder"
-#: command-list.h:163
+#: command-list.h:164
msgid "Push objects over Git protocol to another repository"
msgstr "Nesneleri Git protokolü üzerinden başka bir depoya it"
-#: command-list.h:164
+#: command-list.h:165
msgid "Git's i18n setup code for shell scripts"
msgstr "Kabuk betikleri için Git'in i18n kurulum kodu"
-#: command-list.h:165
+#: command-list.h:166
msgid "Common Git shell script setup code"
msgstr "Ortak Git kabuk betiÄŸi kurulum kodu"
-#: command-list.h:166
+#: command-list.h:167
msgid "Restricted login shell for Git-only SSH access"
msgstr "Yalnızca Git SSH erişimi için kısıtlandırılmış oturum açma kabuğu"
-#: command-list.h:167
+#: command-list.h:168
msgid "Summarize 'git log' output"
msgstr "'git log' çıktısını özetle"
-#: command-list.h:168
+#: command-list.h:169
msgid "Show various types of objects"
msgstr "Çeşitli türlerden nesneleri göster"
-#: command-list.h:169
+#: command-list.h:170
msgid "Show branches and their commits"
msgstr "Dalları ve onların işlemelerini göster"
-#: command-list.h:170
+#: command-list.h:171
msgid "Show packed archive index"
msgstr "Paketlenmiş arşiv indeksini göster"
-#: command-list.h:171
+#: command-list.h:172
msgid "List references in a local repository"
msgstr "Yerel bir depodaki başvuruları listele"
-#: command-list.h:172
-msgid "Initialize and modify the sparse-checkout"
-msgstr "Aralıklı çıkışı ilklendir ve güncelle"
-
#: command-list.h:173
+msgid "Reduce your working tree to a subset of tracked files"
+msgstr "Çalışma ağacını izlenen dosyaların bir alt kümesine küçült"
+
+#: command-list.h:174
msgid "Add file contents to the staging area"
msgstr "Dosya içeriğini hazırlama alanına ekle"
-#: command-list.h:174
+#: command-list.h:175
msgid "Stash the changes in a dirty working directory away"
msgstr "Kirli bir çalışma dizinindeki değişiklikleri zulala"
-#: command-list.h:175
+#: command-list.h:176
msgid "Show the working tree status"
msgstr "Çalışma ağacı durumunu göster"
-#: command-list.h:176
+#: command-list.h:177
msgid "Remove unnecessary whitespace"
msgstr "Gereksiz boşlukları kaldır"
-#: command-list.h:177
+#: command-list.h:178
msgid "Initialize, update or inspect submodules"
msgstr "Altmodülleri ilklendir, güncelle veya incele"
-#: command-list.h:178
+#: command-list.h:179
msgid "Bidirectional operation between a Subversion repository and Git"
msgstr "Bir Subversion ve Git deposu arasında iki yönlü işlemler"
-#: command-list.h:179
+#: command-list.h:180
msgid "Switch branches"
msgstr "Dal deÄŸiÅŸtir"
-#: command-list.h:180
+#: command-list.h:181
msgid "Read, modify and delete symbolic refs"
msgstr "Sembolik başvuruları oku, düzenle ve sil"
-#: command-list.h:181
+#: command-list.h:182
msgid "Create, list, delete or verify a tag object signed with GPG"
msgstr "GPG imzalı bir etiket oluştur, sil, listele veya doğrula"
-#: command-list.h:182
+#: command-list.h:183
msgid "Creates a temporary file with a blob's contents"
msgstr "Bir ikili nesnenin içeriği ile geçici bir dosya oluştur"
-#: command-list.h:183
+#: command-list.h:184
msgid "Unpack objects from a packed archive"
msgstr "Paketlenmiş bir arşivden nesneleri çıkar"
-#: command-list.h:184
+#: command-list.h:185
msgid "Register file contents in the working tree to the index"
msgstr "Çalışma ağacındaki dosya içeriğini indekse kaydet"
-#: command-list.h:185
+#: command-list.h:186
msgid "Update the object name stored in a ref safely"
msgstr "Güvenlice bir başvuruda depolanan nesne adını güncelle"
-#: command-list.h:186
+#: command-list.h:187
msgid "Update auxiliary info file to help dumb servers"
msgstr ""
"Programlanamayan sunuculara destek için yardımcı veri dosyasını güncelle"
-#: command-list.h:187
+#: command-list.h:188
msgid "Send archive back to git-archive"
msgstr "Arşivi git-archive'e geri gönder"
-#: command-list.h:188
+#: command-list.h:189
msgid "Send objects packed back to git-fetch-pack"
msgstr "Nesneleri git-fetch-pack'e paketlenmiş olarak geri gönder"
-#: command-list.h:189
+#: command-list.h:190
msgid "Show a Git logical variable"
msgstr "Bir mantıksal Git değişkeni göster"
-#: command-list.h:190
+#: command-list.h:191
msgid "Check the GPG signature of commits"
msgstr "İşlemelerin GPG imzasını denetle"
-#: command-list.h:191
+#: command-list.h:192
msgid "Validate packed Git archive files"
msgstr "Paketlenmiş Git arşiv dosyalarını doğrula"
-#: command-list.h:192
+#: command-list.h:193
msgid "Check the GPG signature of tags"
msgstr "Etiketlerin GPG imzasını doğrula"
-#: command-list.h:193
+#: command-list.h:194
msgid "Show logs with difference each commit introduces"
msgstr "Günlükleri her işlemenin sunduğu değişikliklerle göster"
-#: command-list.h:194
+#: command-list.h:195
msgid "Manage multiple working trees"
msgstr "Birden çok çalışma ağacını yönet"
-#: command-list.h:195
+#: command-list.h:196
msgid "Create a tree object from the current index"
msgstr "Geçerli indeksten bir ağaç nesnesi oluştur"
-#: command-list.h:196
+#: command-list.h:197
msgid "Defining attributes per path"
msgstr "Öznitelikleri yola göre tanımla"
-#: command-list.h:197
+#: command-list.h:198
msgid "Git command-line interface and conventions"
msgstr "Git komut satırı arabirimi ve kuralları"
-#: command-list.h:198
+#: command-list.h:199
msgid "A Git core tutorial for developers"
msgstr "Geliştiriciler için Git çekirdeği eğitmeni"
-#: command-list.h:199
+#: command-list.h:200
msgid "Providing usernames and passwords to Git"
msgstr "Git'e kullanıcı adları ve parolalar belirt"
-#: command-list.h:200
+#: command-list.h:201
msgid "Git for CVS users"
msgstr "CVS kullanıcıları için Git"
-#: command-list.h:201
+#: command-list.h:202
msgid "Tweaking diff output"
msgstr "diff çıktısı için ince ayarlar"
-#: command-list.h:202
+#: command-list.h:203
msgid "A useful minimum set of commands for Everyday Git"
msgstr "Günlük Git kullanımı için yararlı komutlar"
-#: command-list.h:203
+#: command-list.h:204
msgid "Frequently asked questions about using Git"
msgstr "Git kullanımı hakkında sıkça sorulan sorular"
-#: command-list.h:204
+#: command-list.h:205
msgid "A Git Glossary"
msgstr "Git Kavram Dizini"
-#: command-list.h:205
+#: command-list.h:206
msgid "Hooks used by Git"
msgstr "Git tarafından kullanılan kancalar"
-#: command-list.h:206
+#: command-list.h:207
msgid "Specifies intentionally untracked files to ignore"
msgstr "Özellikle yok sayılması istenen dosyaları belirt"
-#: command-list.h:207
+#: command-list.h:208
msgid "The Git repository browser"
msgstr "Git depo tarayıcısı"
-#: command-list.h:208
+#: command-list.h:209
msgid "Map author/committer names and/or E-Mail addresses"
msgstr "Yazar/İşleyici adlarını ve/veya e-posta adreslerini eşlemle"
-#: command-list.h:209
+#: command-list.h:210
msgid "Defining submodule properties"
msgstr "Altmodül özelliklerini tanımlama"
-#: command-list.h:210
+#: command-list.h:211
msgid "Git namespaces"
msgstr "Git ad alanları"
-#: command-list.h:211
+#: command-list.h:212
msgid "Helper programs to interact with remote repositories"
msgstr "Uzak depolar ile etkileşim için yardımcı programlar"
-#: command-list.h:212
+#: command-list.h:213
msgid "Git Repository Layout"
msgstr "Git Depo YerleÅŸimi"
-#: command-list.h:213
+#: command-list.h:214
msgid "Specifying revisions and ranges for Git"
msgstr "Git için revizyonları ve erimleri belirtme"
-#: command-list.h:214
+#: command-list.h:215
msgid "Mounting one repository inside another"
msgstr "Bir depoyu bir başkasının içine bağlama"
-#: command-list.h:215
+#: command-list.h:216
msgid "A tutorial introduction to Git"
msgstr "Git'e GiriÅŸ"
-#: command-list.h:216
+#: command-list.h:217
msgid "A tutorial introduction to Git: part two"
msgstr "Git'e Giriş: Bölüm 2"
-#: command-list.h:217
+#: command-list.h:218
msgid "Git web interface (web frontend to Git repositories)"
msgstr "Git web arabirimi (Git depoları için web ön ucu)"
-#: command-list.h:218
+#: command-list.h:219
msgid "An overview of recommended workflows with Git"
msgstr "Önerilen Git çalışma akışlarına genel bakış"
@@ -25579,68 +26146,44 @@ msgstr "$pretty_name ile yalın birleştirme deneniyor"
msgid "Simple merge did not work, trying automatic merge."
msgstr "Yalın birleştirme işe yaramadı, otomatik birleştirme deneniyor."
-#: git-submodule.sh:401
-#, sh-format
-msgid "Unable to find current revision in submodule path '$displaypath'"
-msgstr "'$displaypath' altmodül yolunda geçerli revizyon bulunamadı"
-
-#: git-submodule.sh:411
-#, sh-format
-msgid "Unable to fetch in submodule path '$sm_path'"
-msgstr "'$sm_path' altmodül yolunda getirme yapılamadı"
-
-#: git-submodule.sh:416
-#, sh-format
-msgid ""
-"Unable to find current ${remote_name}/${branch} revision in submodule path "
-"'$sm_path'"
-msgstr ""
-"'$sm_path' altmodül yolunda geçerli ${remote_name}/${branch} revizyonu "
-"bulunamadı"
-
-#: git-submodule.sh:464
-#, sh-format
-msgid "Failed to recurse into submodule path '$displaypath'"
-msgstr "'$displaypath' altmodül yoluna özyinelenemedi"
-
#: git-sh-setup.sh:89 git-sh-setup.sh:94
#, sh-format
msgid "usage: $dashless $USAGE"
msgstr "kullanım: $dashless $USAGE"
-#: git-sh-setup.sh:183
+#: git-sh-setup.sh:182
#, sh-format
msgid "Cannot chdir to $cdup, the toplevel of the working tree"
msgstr "$cdup konumuna chdir yapılamıyor, çalışma ağacının en üst düzeyi"
-#: git-sh-setup.sh:192 git-sh-setup.sh:199
+#: git-sh-setup.sh:191 git-sh-setup.sh:198
#, sh-format
msgid "fatal: $program_name cannot be used without a working tree."
msgstr "onulmaz: $program_name bir çalışma ağacı olmadan kullanılamaz."
-#: git-sh-setup.sh:213
+#: git-sh-setup.sh:212
msgid "Cannot rewrite branches: You have unstaged changes."
msgstr "Dallar yeniden yazılamıyor: Hazırlanmamış değişiklikleriniz var."
-#: git-sh-setup.sh:216
+#: git-sh-setup.sh:215
#, sh-format
msgid "Cannot $action: You have unstaged changes."
msgstr "$action yapılamıyor: Hazırlanmamış değişiklikleriniz var."
-#: git-sh-setup.sh:227
+#: git-sh-setup.sh:226
#, sh-format
msgid "Cannot $action: Your index contains uncommitted changes."
msgstr "$action yapılamıyor: İndeksinizde işlenmemiş değişiklikleriniz var."
-#: git-sh-setup.sh:229
+#: git-sh-setup.sh:228
msgid "Additionally, your index contains uncommitted changes."
msgstr "Ek olarak, indeksinizde iÅŸlenmemiÅŸ deÄŸiÅŸiklikleriniz var."
-#: git-sh-setup.sh:349
+#: git-sh-setup.sh:348
msgid "You need to run this command from the toplevel of the working tree."
msgstr "Bu komutu çalışma ağacının en üst düzeyinden çalıştırmanız gerekiyor."
-#: git-sh-setup.sh:354
+#: git-sh-setup.sh:353
msgid "Unable to determine absolute path of git directory"
msgstr "Git dizininin kesin yolu algılanamıyor"
@@ -26323,23 +26866,23 @@ msgstr "ileti 7 bit olarak gönderilemiyor"
msgid "invalid transfer encoding"
msgstr "geçersiz aktarım kodlaması"
-#: git-send-email.perl:2095
+#: git-send-email.perl:2100
#, perl-format
msgid ""
-"fatal: %s: rejected by sendemail-validate hook\n"
+"fatal: %s: rejected by %s hook\n"
"%s\n"
"warning: no patches were sent\n"
msgstr ""
-"onulmaz: %s: sendemail-validate kancası tarafından reddedildi\n"
+"onulmaz: %s: %s kancası tarafından reddedildi\n"
"%s\n"
"uyarı: hiçbir yama gönderilmedi\n"
-#: git-send-email.perl:2105 git-send-email.perl:2158 git-send-email.perl:2168
+#: git-send-email.perl:2110 git-send-email.perl:2163 git-send-email.perl:2173
#, perl-format
msgid "unable to open %s: %s\n"
msgstr "%s açılamıyor: %s\n"
-#: git-send-email.perl:2108
+#: git-send-email.perl:2113
#, perl-format
msgid ""
"fatal: %s:%d is longer than 998 characters\n"
@@ -26348,13 +26891,13 @@ msgstr ""
"onulmaz: %s:%d, 998 karakterden uzun\n"
"uyarı: hiçbir yama gönderilmedi\n"
-#: git-send-email.perl:2126
+#: git-send-email.perl:2131
#, 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:2130
+#: git-send-email.perl:2135
#, 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 0d5b14438a..69c3b93154 100644
--- a/po/vi.po
+++ b/po/vi.po
@@ -7,10 +7,10 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: git v2.35.0 round 2\n"
+"Project-Id-Version: git v2.36.0 round 2\n"
"Report-Msgid-Bugs-To: Git Mailing List <git@vger.kernel.org>\n"
-"POT-Creation-Date: 2022-01-17 08:31+0800\n"
-"PO-Revision-Date: 2022-01-17 14:14+0700\n"
+"POT-Creation-Date: 2022-04-13 14:52+0800\n"
+"PO-Revision-Date: 2022-04-14 15:34+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,216 +21,215 @@ msgstr ""
"X-Language-Team-Website: <http://translationproject.org/team/vi.html>\n"
"X-Generator: Poedit 3.0.1\n"
-#: add-interactive.c:380
+#: add-interactive.c:382
#, c-format
msgid "Huh (%s)?"
msgstr "Hả (%s)?"
-#: add-interactive.c:533 add-interactive.c:834 reset.c:65 sequencer.c:3509
-#: sequencer.c:3974 sequencer.c:4136 builtin/rebase.c:1233
-#: builtin/rebase.c:1642
+#: add-interactive.c:535 add-interactive.c:836 reset.c:136 sequencer.c:3505
+#: sequencer.c:3970 sequencer.c:4127 builtin/rebase.c:1261
+#: builtin/rebase.c:1671
msgid "could not read index"
msgstr "không thể Ä‘á»c bảng mục lục"
-#: add-interactive.c:588 git-add--interactive.perl:269
+#: add-interactive.c:590 git-add--interactive.perl:269
#: git-add--interactive.perl:294
msgid "binary"
msgstr "nhị phân"
-#: add-interactive.c:646 git-add--interactive.perl:278
+#: add-interactive.c:648 git-add--interactive.perl:278
#: git-add--interactive.perl:332
msgid "nothing"
msgstr "không có gì"
-#: add-interactive.c:647 git-add--interactive.perl:314
+#: add-interactive.c:649 git-add--interactive.perl:314
#: git-add--interactive.perl:329
msgid "unchanged"
msgstr "không thay đổi"
-#: add-interactive.c:684 git-add--interactive.perl:641
+#: add-interactive.c:686 git-add--interactive.perl:641
msgid "Update"
msgstr "Cập nhật"
-#: add-interactive.c:701 add-interactive.c:889
+#: add-interactive.c:703 add-interactive.c:891
#, c-format
msgid "could not stage '%s'"
msgstr "không thể đưa “%s†lên bệ phóng"
-#: add-interactive.c:707 add-interactive.c:896 reset.c:89 sequencer.c:3713
+#: add-interactive.c:709 add-interactive.c:898 reset.c:160 sequencer.c:3709
msgid "could not write index"
msgstr "không thể ghi bảng mục lục"
-#: add-interactive.c:710 git-add--interactive.perl:626
+#: add-interactive.c:712 git-add--interactive.perl:626
#, c-format, perl-format
msgid "updated %d path\n"
msgid_plural "updated %d paths\n"
msgstr[0] "đã cập nhật %d Ä‘Æ°á»ng dẫn\n"
-#: add-interactive.c:728 git-add--interactive.perl:676
+#: add-interactive.c:730 git-add--interactive.perl:676
#, c-format, perl-format
msgid "note: %s is untracked now.\n"
msgstr "chú ý: %s giỠđã bỠtheo dõi.\n"
-#: add-interactive.c:733 apply.c:4151 builtin/checkout.c:306
+#: add-interactive.c:735 apply.c:4133 builtin/checkout.c:311
#: builtin/reset.c:167
#, c-format
msgid "make_cache_entry failed for path '%s'"
msgstr "make_cache_entry gặp lá»—i đối vá»›i Ä‘Æ°á»ng dẫn “%sâ€"
-#: add-interactive.c:763 git-add--interactive.perl:653
+#: add-interactive.c:765 git-add--interactive.perl:653
msgid "Revert"
msgstr "Hoàn nguyên"
-#: add-interactive.c:779
+#: add-interactive.c:781
msgid "Could not parse HEAD^{tree}"
msgstr "Không thể phân tích cú pháp HEAD^{tree}"
-#: add-interactive.c:817 git-add--interactive.perl:629
+#: add-interactive.c:819 git-add--interactive.perl:629
#, c-format, perl-format
msgid "reverted %d path\n"
msgid_plural "reverted %d paths\n"
msgstr[0] "đã hoàn nguyên %d Ä‘Æ°á»ng dẫn\n"
-#: add-interactive.c:868 git-add--interactive.perl:693
+#: add-interactive.c:870 git-add--interactive.perl:693
#, c-format
msgid "No untracked files.\n"
msgstr "Không có tập tin nào chưa được theo dõi.\n"
-#: add-interactive.c:872 git-add--interactive.perl:687
+#: add-interactive.c:874 git-add--interactive.perl:687
msgid "Add untracked"
msgstr "Thêm các cái chưa được theo dõi"
-#: add-interactive.c:899 git-add--interactive.perl:623
+#: add-interactive.c:901 git-add--interactive.perl:623
#, c-format, perl-format
msgid "added %d path\n"
msgid_plural "added %d paths\n"
msgstr[0] "đã thêm %d Ä‘Æ°á»ng dẫn\n"
-#: add-interactive.c:929
+#: add-interactive.c:931
#, c-format
msgid "ignoring unmerged: %s"
msgstr "bỠqua những thứ chưa hòa trộn: %s"
-#: add-interactive.c:941 add-patch.c:1752 git-add--interactive.perl:1371
+#: add-interactive.c:943 add-patch.c:1758 git-add--interactive.perl:1371
#, 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:943 add-patch.c:1750 git-add--interactive.perl:1373
+#: add-interactive.c:945 add-patch.c:1756 git-add--interactive.perl:1373
#, c-format
msgid "No changes.\n"
msgstr "Không có thay đổi nào.\n"
-#: add-interactive.c:947 git-add--interactive.perl:1381
+#: add-interactive.c:949 git-add--interactive.perl:1381
msgid "Patch update"
msgstr "Cập nhật miếng vá"
-#: add-interactive.c:986 git-add--interactive.perl:1794
+#: add-interactive.c:988 git-add--interactive.perl:1794
msgid "Review diff"
msgstr "Xem xét lại diff"
-#: add-interactive.c:1014
+#: add-interactive.c:1016
msgid "show paths with changes"
msgstr "hiển thị Ä‘Æ°á»ng dẫn vá»›i các thay đổi"
-#: add-interactive.c:1016
+#: add-interactive.c:1018
msgid "add working tree state to the staged set of changes"
msgstr ""
"thêm trạng thái cây làm việc vào tập hợp các thay đổi đã được đưa lên bệ "
"phóng"
-#: add-interactive.c:1018
+#: add-interactive.c:1020
msgid "revert staged set of changes back to the HEAD version"
msgstr ""
"hoàn nguyên lại tập hợp các thay đổi đã được đưa lên bệ phóng trở lại phiên "
"bản HEAD"
-#: add-interactive.c:1020
+#: add-interactive.c:1022
msgid "pick hunks and update selectively"
msgstr "chá»n các “khúc†và cập nhật có tuyển chá»n"
-#: add-interactive.c:1022
+#: add-interactive.c:1024
msgid "view diff between HEAD and index"
msgstr "xem khác biệt giữa HEAD và mục lục"
-#: add-interactive.c:1024
+#: add-interactive.c:1026
msgid "add contents of untracked files to the staged set of changes"
msgstr ""
"thêm nội dung của các tập tin chưa được theo dõi vào tập hợp các thay đổi đã "
"được đưa lên bệ phóng"
-#: add-interactive.c:1032 add-interactive.c:1081
+#: add-interactive.c:1034 add-interactive.c:1083
msgid "Prompt help:"
msgstr "Trợ giúp vỠnhắc:"
-#: add-interactive.c:1034
+#: add-interactive.c:1036
msgid "select a single item"
msgstr "chá»n má»™t mục Ä‘Æ¡n"
-#: add-interactive.c:1036
+#: add-interactive.c:1038
msgid "select a range of items"
msgstr "chá»n má»™t vùng các mục"
-#: add-interactive.c:1038
+#: add-interactive.c:1040
msgid "select multiple ranges"
msgstr "chá»n nhiá»u vùng"
-#: add-interactive.c:1040 add-interactive.c:1085
+#: add-interactive.c:1042 add-interactive.c:1087
msgid "select item based on unique prefix"
msgstr "chá»n mục dá»±a trên tiá»n tố duy nhất"
-#: add-interactive.c:1042
+#: add-interactive.c:1044
msgid "unselect specified items"
msgstr "bá» chá»n các mục đã cho"
-#: add-interactive.c:1044
+#: add-interactive.c:1046
msgid "choose all items"
msgstr "chá»n tất cả các mục"
-#: add-interactive.c:1046
+#: add-interactive.c:1048
msgid "(empty) finish selecting"
msgstr "(để trống) hoàn tất chá»n lá»±a"
-#: add-interactive.c:1083
+#: add-interactive.c:1085
msgid "select a numbered item"
msgstr "tùy chá»n mục bằng số"
-#: add-interactive.c:1087
+#: add-interactive.c:1089
msgid "(empty) select nothing"
msgstr "(để trống) không chá»n gì"
-#: add-interactive.c:1095 builtin/clean.c:839 git-add--interactive.perl:1898
+#: add-interactive.c:1097 builtin/clean.c:839 git-add--interactive.perl:1898
msgid "*** Commands ***"
msgstr "*** Lệnh ***"
-#: add-interactive.c:1096 builtin/clean.c:840 git-add--interactive.perl:1895
+#: add-interactive.c:1098 builtin/clean.c:840 git-add--interactive.perl:1895
msgid "What now"
msgstr "GiỠthì sao"
-#: add-interactive.c:1148 git-add--interactive.perl:213
+#: add-interactive.c:1150 git-add--interactive.perl:213
msgid "staged"
msgstr "đã đưa lên bệ phóng"
-#: add-interactive.c:1148 git-add--interactive.perl:213
+#: add-interactive.c:1150 git-add--interactive.perl:213
msgid "unstaged"
msgstr "chưa đưa lên bệ phóng"
-#: add-interactive.c:1148 apply.c:5020 apply.c:5023 builtin/am.c:2367
-#: builtin/am.c:2370 builtin/bugreport.c:107 builtin/clone.c:128
-#: builtin/fetch.c:153 builtin/merge.c:287 builtin/pull.c:194
-#: builtin/submodule--helper.c:404 builtin/submodule--helper.c:1858
-#: builtin/submodule--helper.c:1861 builtin/submodule--helper.c:2504
-#: builtin/submodule--helper.c:2507 builtin/submodule--helper.c:2574
-#: builtin/submodule--helper.c:2579 builtin/submodule--helper.c:2812
+#: add-interactive.c:1150 apply.c:5002 apply.c:5005 builtin/am.c:2370
+#: builtin/am.c:2373 builtin/bugreport.c:107 builtin/clone.c:132
+#: builtin/fetch.c:154 builtin/merge.c:287 builtin/pull.c:194
+#: builtin/submodule--helper.c:412 builtin/submodule--helper.c:1872
+#: builtin/submodule--helper.c:1875 builtin/submodule--helper.c:2709
+#: builtin/submodule--helper.c:2712 builtin/submodule--helper.c:2891
#: git-add--interactive.perl:213
msgid "path"
msgstr "Ä‘Æ°á»ng-dẫn"
-#: add-interactive.c:1155
+#: add-interactive.c:1157
msgid "could not refresh index"
msgstr "không thể Ä‘á»c lại bảng mục lục"
-#: add-interactive.c:1169 builtin/clean.c:804 git-add--interactive.perl:1805
+#: add-interactive.c:1171 builtin/clean.c:804 git-add--interactive.perl:1805
#, c-format
msgid "Bye.\n"
msgstr "Tạm biệt.\n"
@@ -544,24 +543,24 @@ msgstr "không thể phân tích cú pháp phần đầu của khúc “%.*sâ€"
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:420
+#: add-patch.c:431
msgid "could not parse diff"
msgstr "không thể phân tích cú pháp khác biệt"
-#: add-patch.c:439
+#: add-patch.c:450
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:453
+#: add-patch.c:464
#, c-format
msgid "failed to run '%s'"
msgstr "gặp lá»—i khi chạy “%sâ€"
-#: add-patch.c:612
+#: add-patch.c:618
msgid "mismatched output from interactive.diffFilter"
msgstr "đầu ra không khớp từ interactive.diffFilter"
-#: add-patch.c:613
+#: add-patch.c:619
msgid ""
"Your filter must maintain a one-to-one correspondence\n"
"between its input and output lines."
@@ -569,7 +568,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:791
+#: add-patch.c:797
#, c-format
msgid ""
"expected context line #%d in\n"
@@ -578,7 +577,7 @@ msgstr ""
"cần dòng ngữ cảnh #%d trong\n"
"%.*s"
-#: add-patch.c:806
+#: add-patch.c:812
#, c-format
msgid ""
"hunks do not overlap:\n"
@@ -591,11 +590,11 @@ msgstr ""
"\tkhông được kết thúc bằng:\n"
"%.*s"
-#: add-patch.c:1082 git-add--interactive.perl:1115
+#: add-patch.c:1088 git-add--interactive.perl:1115
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:1086
+#: add-patch.c:1092
#, c-format
msgid ""
"---\n"
@@ -609,7 +608,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:1100 git-add--interactive.perl:1129
+#: add-patch.c:1106 git-add--interactive.perl:1129
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"
@@ -619,11 +618,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:1133
+#: add-patch.c:1139
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:1178
+#: add-patch.c:1184
msgid "'git apply --cached' failed"
msgstr "“git apply --cached†gặp lỗi"
@@ -639,26 +638,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:1247 git-add--interactive.perl:1244
+#: add-patch.c:1253 git-add--interactive.perl:1244
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:1290
+#: add-patch.c:1296
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:1291 git-add--interactive.perl:1348
+#: add-patch.c:1297 git-add--interactive.perl:1348
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:1298 git-add--interactive.perl:1351
+#: add-patch.c:1304 git-add--interactive.perl:1351
msgid "Nothing was applied.\n"
msgstr "Äã không áp dụng gì cả.\n"
-#: add-patch.c:1355
+#: add-patch.c:1361
msgid ""
"j - leave this hunk undecided, see next undecided hunk\n"
"J - leave this hunk undecided, see next hunk\n"
@@ -680,72 +679,72 @@ msgstr ""
"e - sửa bằng tay khúc hiện hành\n"
"? - hiển thị trợ giúp\n"
-#: add-patch.c:1517 add-patch.c:1527
+#: add-patch.c:1523 add-patch.c:1533
msgid "No previous hunk"
msgstr "Không có khúc kế trước"
-#: add-patch.c:1522 add-patch.c:1532
+#: add-patch.c:1528 add-patch.c:1538
msgid "No next hunk"
msgstr "Không có khúc kế tiếp"
-#: add-patch.c:1538
+#: add-patch.c:1544
msgid "No other hunks to goto"
msgstr "Không còn khúc nào để mà nhảy đến"
-#: add-patch.c:1549 git-add--interactive.perl:1608
+#: add-patch.c:1555 git-add--interactive.perl:1608
msgid "go to which hunk (<ret> to see more)? "
msgstr "nhảy đến khúc nào (<ret> để xem thêm)? "
-#: add-patch.c:1550 git-add--interactive.perl:1610
+#: add-patch.c:1556 git-add--interactive.perl:1610
msgid "go to which hunk? "
msgstr "nhảy đến khúc nào? "
-#: add-patch.c:1561
+#: add-patch.c:1567
#, c-format
msgid "Invalid number: '%s'"
msgstr "Số không hợp lệ: “%sâ€"
-#: add-patch.c:1566
+#: add-patch.c:1572
#, 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:1575
+#: add-patch.c:1581
msgid "No other hunks to search"
msgstr "Không còn khúc nào để mà tìm kiếm"
-#: add-patch.c:1581 git-add--interactive.perl:1663
+#: add-patch.c:1587 git-add--interactive.perl:1663
msgid "search for regex? "
msgstr "tìm kiếm cho biểu thức chính quy? "
-#: add-patch.c:1596
+#: add-patch.c:1602
#, 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:1613
+#: add-patch.c:1619
msgid "No hunk matches the given pattern"
msgstr "Không thấy khúc nào khớp mẫu đã cho"
-#: add-patch.c:1620
+#: add-patch.c:1626
msgid "Sorry, cannot split this hunk"
msgstr "Rất tiếc, không thể chia nhỠkhúc này"
-#: add-patch.c:1624
+#: add-patch.c:1630
#, c-format
msgid "Split into %d hunks."
msgstr "Chi nhỠthành %d khúc."
-#: add-patch.c:1628
+#: add-patch.c:1634
msgid "Sorry, cannot edit this hunk"
msgstr "Rất tiếc, không thể sửa khúc này"
-#: add-patch.c:1680
+#: add-patch.c:1686
msgid "'git apply' failed"
msgstr "“git apply†gặp lỗi"
-#: advice.c:78
+#: advice.c:81
#, c-format
msgid ""
"\n"
@@ -754,47 +753,47 @@ msgstr ""
"\n"
"Tắt lá»i nhắn này bằng \"git config advice.%s false\""
-#: advice.c:94
+#: advice.c:97
#, c-format
msgid "%shint: %.*s%s\n"
msgstr "%sgợi ý: %.*s%s\n"
-#: advice.c:178
+#: advice.c:181
msgid "Cherry-picking is not possible because you have unmerged files."
msgstr ""
"Cherry-picking là không thể thực hiện bởi vì bạn có những tập tin chưa được "
"hòa trộn."
-#: advice.c:180
+#: advice.c:183
msgid "Committing is not possible because you have unmerged files."
msgstr ""
"Không thể thực hiện chuyển giao được bởi vì bạn có những tập tin chưa được "
"hòa trộn."
-#: advice.c:182
+#: advice.c:185
msgid "Merging is not possible because you have unmerged files."
msgstr ""
"Không thể thực hiện hòa trộn bởi vì bạn có những tập tin chưa được hòa trộn."
-#: advice.c:184
+#: advice.c:187
msgid "Pulling is not possible because you have unmerged files."
msgstr ""
"Không thể thực hiện kéo vỠbởi vì bạn có những tập tin chưa được hòa trộn."
-#: advice.c:186
+#: advice.c:189
msgid "Reverting is not possible because you have unmerged files."
msgstr ""
"Không thể thực hiện hoàn nguyên bởi vì bạn có những tập tin chưa được hòa "
"trá»™n."
-#: advice.c:188
+#: advice.c:191
#, c-format
msgid "It is not possible to %s because you have unmerged files."
msgstr ""
"Việc này không thể thực hiện với %s bởi vì bạn có những tập tin chưa được "
"hòa trộn."
-#: advice.c:196
+#: advice.c:199
msgid ""
"Fix them up in the work tree, and then use 'git add/rm <file>'\n"
"as appropriate to mark resolution and make a commit."
@@ -802,27 +801,27 @@ msgstr ""
"Sá»­a chúng trong cây làm việc, và sau đó dùng lệnh “git add/rm <tập-tin>â€\n"
"dành riêng cho việc đánh dấu cần giải quyết và tạo lần chuyển giao."
-#: advice.c:204
+#: advice.c:207
msgid "Exiting because of an unresolved conflict."
msgstr "Thoát ra bởi vì xung đột không thể giải quyết."
-#: advice.c:209 builtin/merge.c:1382
+#: advice.c:212 builtin/merge.c:1388
msgid "You have not concluded your merge (MERGE_HEAD exists)."
msgstr "Bạn chưa kết thúc việc hòa trộn (MERGE_HEAD vẫn tồn tại)."
-#: advice.c:211
+#: advice.c:214
msgid "Please, commit your changes before merging."
msgstr "Vui lòng chuyển giao các thay đổi trước khi hòa trộn."
-#: advice.c:212
+#: advice.c:215
msgid "Exiting because of unfinished merge."
msgstr "Thoát ra bởi vì việc hòa trộn không hoàn tất."
-#: advice.c:217
+#: advice.c:220
msgid "Not possible to fast-forward, aborting."
msgstr "Thực hiện lệnh chuyển-tiếp-nhanh là không thể được, đang bỠqua."
-#: advice.c:227
+#: advice.c:230
#, c-format
msgid ""
"The following paths and/or pathspecs matched paths that exist\n"
@@ -834,7 +833,7 @@ msgstr ""
"bên ngoài định nghĩa “sparse-checkout†của bạn, vì vậy sẽ không\n"
"cập nhật trong chỉ mục:\n"
-#: advice.c:234
+#: advice.c:237
msgid ""
"If you intend to update such entries, try one of the following:\n"
"* Use the --sparse option.\n"
@@ -844,7 +843,7 @@ msgstr ""
"* Sá»­ dụng tùy chá»n --sparse.\n"
"* Vô hiệu hóa hoặc sửa đổi các quy tắc thưa thớt."
-#: advice.c:242
+#: advice.c:245
#, c-format
msgid ""
"Note: switching to '%s'.\n"
@@ -904,83 +903,86 @@ msgstr "không nhận ra tùy chá»n vá» khoảng trắng “%sâ€"
msgid "unrecognized whitespace ignore option '%s'"
msgstr "không nhận ra tùy chá»n bá» qua khoảng trắng “%sâ€"
-#: apply.c:136 archive.c:584 range-diff.c:559 revision.c:2303 revision.c:2307
-#: revision.c:2316 revision.c:2321 revision.c:2527 revision.c:2870
-#: revision.c:2874 revision.c:2880 revision.c:2883 revision.c:2885
-#: builtin/add.c:510 builtin/add.c:512 builtin/add.c:529 builtin/add.c:541
-#: builtin/branch.c:727 builtin/checkout.c:467 builtin/checkout.c:470
-#: builtin/checkout.c:1644 builtin/checkout.c:1754 builtin/checkout.c:1757
-#: builtin/clone.c:906 builtin/commit.c:358 builtin/commit.c:361
-#: builtin/commit.c:1196 builtin/describe.c:593 builtin/diff-tree.c:155
-#: builtin/difftool.c:733 builtin/fast-export.c:1245 builtin/fetch.c:2038
-#: builtin/fetch.c:2043 builtin/index-pack.c:1852 builtin/init-db.c:560
-#: builtin/log.c:1946 builtin/log.c:1948 builtin/ls-files.c:778
-#: builtin/merge.c:1403 builtin/merge.c:1405 builtin/pack-objects.c:4073
-#: builtin/push.c:592 builtin/push.c:630 builtin/push.c:636 builtin/push.c:641
-#: builtin/rebase.c:1193 builtin/rebase.c:1195 builtin/rebase.c:1199
-#: builtin/repack.c:684 builtin/repack.c:715 builtin/reset.c:426
-#: builtin/reset.c:462 builtin/rev-list.c:541 builtin/show-branch.c:710
-#: builtin/stash.c:1707 builtin/stash.c:1710 builtin/submodule--helper.c:1316
-#: builtin/submodule--helper.c:2975 builtin/tag.c:526 builtin/tag.c:572
-#: builtin/worktree.c:702
+#: apply.c:138 archive.c:584 parse-options.c:1122 range-diff.c:555
+#: revision.c:2314 revision.c:2318 revision.c:2327 revision.c:2332
+#: revision.c:2560 revision.c:2895 revision.c:2899 revision.c:2907
+#: revision.c:2910 revision.c:2912 builtin/add.c:507 builtin/add.c:509
+#: builtin/add.c:515 builtin/add.c:527 builtin/branch.c:755
+#: builtin/checkout.c:472 builtin/checkout.c:475 builtin/checkout.c:1663
+#: builtin/checkout.c:1773 builtin/checkout.c:1776 builtin/clone.c:921
+#: builtin/commit.c:359 builtin/commit.c:362 builtin/commit.c:1200
+#: builtin/commit.c:1256 builtin/commit.c:1273 builtin/describe.c:593
+#: builtin/diff-tree.c:155 builtin/difftool.c:733 builtin/fast-export.c:1245
+#: builtin/fetch.c:2141 builtin/fetch.c:2162 builtin/fetch.c:2167
+#: builtin/help.c:602 builtin/index-pack.c:1858 builtin/init-db.c:560
+#: builtin/log.c:1968 builtin/log.c:1970 builtin/ls-files.c:778
+#: builtin/merge-base.c:163 builtin/merge-base.c:169 builtin/merge.c:1409
+#: builtin/merge.c:1411 builtin/pack-objects.c:4098 builtin/push.c:592
+#: builtin/push.c:630 builtin/push.c:636 builtin/push.c:641
+#: builtin/rebase.c:1221 builtin/rebase.c:1223 builtin/rebase.c:1227
+#: builtin/repack.c:688 builtin/repack.c:719 builtin/reset.c:433
+#: builtin/reset.c:469 builtin/rev-list.c:537 builtin/show-branch.c:711
+#: builtin/stash.c:1696 builtin/stash.c:1699 builtin/submodule--helper.c:1328
+#: builtin/submodule--helper.c:3054 builtin/tag.c:527 builtin/tag.c:573
+#: builtin/worktree.c:779
#, c-format
msgid "options '%s' and '%s' cannot be used together"
msgstr "tùy chá»n '%s' và '%s' không thể dùng cùng nhau"
-#: apply.c:139 apply.c:150 apply.c:153
+#: apply.c:141 apply.c:152 apply.c:155
#, c-format
msgid "'%s' outside a repository"
msgstr "'%s' ở ngoài một kho chứa"
-#: apply.c:800
+#: apply.c:807
#, c-format
msgid "Cannot prepare timestamp regexp %s"
msgstr ""
"Không thể chuẩn bị biểu thức chính qui dấu vết thá»i gian (timestamp regexp) "
"%s"
-#: apply.c:809
+#: apply.c:816
#, c-format
msgid "regexec returned %d for input: %s"
msgstr "thi hành biểu thức chính quy trả vỠ%d cho đầu vào: %s"
-#: apply.c:883
+#: apply.c:890
#, c-format
msgid "unable to find filename in patch at line %d"
msgstr "không thể tìm thấy tên tập tin trong miếng vá tại dòng %d"
-#: apply.c:921
+#: apply.c:928
#, c-format
msgid "git apply: bad git-diff - expected /dev/null, got %s on line %d"
msgstr ""
"git apply: git-diff sai - cần /dev/null, nhưng lại nhận được %s trên dòng %d"
-#: apply.c:927
+#: apply.c:934
#, c-format
msgid "git apply: bad git-diff - inconsistent new filename on line %d"
msgstr "git apply: git-diff sai - tên tập tin mới không nhất quán trên dòng %d"
-#: apply.c:928
+#: apply.c:935
#, c-format
msgid "git apply: bad git-diff - inconsistent old filename on line %d"
msgstr "git apply: git-diff sai - tên tập tin cũ không nhất quán trên dòng %d"
-#: apply.c:933
+#: apply.c:940
#, c-format
msgid "git apply: bad git-diff - expected /dev/null on line %d"
msgstr "git apply: git-diff sai - cần “/dev/null†trên dòng %d"
-#: apply.c:962
+#: apply.c:969
#, c-format
msgid "invalid mode on line %d: %s"
msgstr "chế độ không hợp lệ trên dòng %d: %s"
-#: apply.c:1281
+#: apply.c:1288
#, c-format
msgid "inconsistent header lines %d and %d"
msgstr "phần đầu mâu thuẫn dòng %d và %d"
-#: apply.c:1371
+#: apply.c:1378
#, c-format
msgid ""
"git diff header lacks filename information when removing %d leading pathname "
@@ -992,91 +994,91 @@ msgstr[0] ""
"phần đầu diff cho git thiếu thông tin tên tập tin khi gỡ bỠđi %d trong "
"thành phần dẫn đầu tên của Ä‘Æ°á»ng dẫn (dòng %d)"
-#: apply.c:1384
+#: apply.c:1391
#, c-format
msgid "git diff header lacks filename information (line %d)"
msgstr "phần đầu diff cho git thiếu thông tin tên tập tin (dòng %d)"
-#: apply.c:1480
+#: apply.c:1487
#, c-format
msgid "recount: unexpected line: %.*s"
msgstr "chi tiết: dòng không cần: %.*s"
-#: apply.c:1549
+#: apply.c:1556
#, c-format
msgid "patch fragment without header at line %d: %.*s"
msgstr "miếng vá phân mảnh mà không có phần đầu tại dòng %d: %.*s"
-#: apply.c:1752
+#: apply.c:1759
msgid "new file depends on old contents"
msgstr "tập tin mới phụ thuộc vào nội dung cũ"
-#: apply.c:1754
+#: apply.c:1761
msgid "deleted file still has contents"
msgstr "tập tin đã xóa vẫn còn nội dung"
-#: apply.c:1788
+#: apply.c:1795
#, c-format
msgid "corrupt patch at line %d"
msgstr "miếng vá há»ng tại dòng %d"
-#: apply.c:1825
+#: apply.c:1832
#, c-format
msgid "new file %s depends on old contents"
msgstr "tập tin mới %s phụ thuộc vào nội dung cũ"
-#: apply.c:1827
+#: apply.c:1834
#, c-format
msgid "deleted file %s still has contents"
msgstr "tập tin đã xóa %s vẫn còn nội dung"
-#: apply.c:1830
+#: apply.c:1837
#, c-format
msgid "** warning: file %s becomes empty but is not deleted"
msgstr "** cảnh báo: tập tin %s trở nên trống rỗng nhưng không bị xóa"
-#: apply.c:1978
+#: apply.c:1985
#, c-format
msgid "corrupt binary patch at line %d: %.*s"
msgstr "miếng vá định dạng nhị phân sai há»ng tại dòng %d: %.*s"
-#: apply.c:2015
+#: apply.c:2022
#, c-format
msgid "unrecognized binary patch at line %d"
msgstr "miếng vá định dạng nhị phân không được nhận ra tại dòng %d"
-#: apply.c:2177
+#: apply.c:2184
#, c-format
msgid "patch with only garbage at line %d"
msgstr "vá chỉ với “rác†tại dòng %d"
-#: apply.c:2263
+#: apply.c:2270
#, c-format
msgid "unable to read symlink %s"
msgstr "không thể Ä‘á»c liên kết má»m %s"
-#: apply.c:2267
+#: apply.c:2274
#, c-format
msgid "unable to open or read %s"
msgstr "không thể mở hay Ä‘á»c %s"
-#: apply.c:2936
+#: apply.c:2943
#, c-format
msgid "invalid start of line: '%c'"
msgstr "sai khởi đầu dòng: “%câ€"
-#: apply.c:3057
+#: apply.c:3064
#, c-format
msgid "Hunk #%d succeeded at %d (offset %d line)."
msgid_plural "Hunk #%d succeeded at %d (offset %d lines)."
msgstr[0] "Khối dữ liệu #%d thành công tại %d (offset %d dòng)."
-#: apply.c:3069
+#: apply.c:3076
#, c-format
msgid "Context reduced to (%ld/%ld) to apply fragment at %d"
msgstr "Ngữ cảnh bị giảm xuống còn (%ld/%ld) để áp dụng mảnh dữ liệu tại %d"
-#: apply.c:3075
+#: apply.c:3082
#, c-format
msgid ""
"while searching for:\n"
@@ -1085,457 +1087,457 @@ msgstr ""
"trong khi đang tìm kiếm cho:\n"
"%.*s"
-#: apply.c:3097
+#: apply.c:3104
#, c-format
msgid "missing binary patch data for '%s'"
msgstr "thiếu dữ liệu của miếng vá định dạng nhị phân cho “%sâ€"
-#: apply.c:3105
+#: apply.c:3112
#, c-format
msgid "cannot reverse-apply a binary patch without the reverse hunk to '%s'"
msgstr ""
"không thể reverse-apply một miếng vá nhị phân mà không đảo ngược khúc thành "
"“%sâ€"
-#: apply.c:3152
+#: apply.c:3159
#, c-format
msgid "cannot apply binary patch to '%s' without full index line"
msgstr ""
"không thể áp dụng miếng vá nhị phân thành “%s†mà không có dòng chỉ mục đầy "
"đủ"
-#: apply.c:3163
+#: apply.c:3170
#, c-format
msgid ""
"the patch applies to '%s' (%s), which does not match the current contents."
msgstr ""
"miếng vá áp dụng cho “%s†(%s), cái mà không khớp với các nội dung hiện tại."
-#: apply.c:3171
+#: apply.c:3178
#, c-format
msgid "the patch applies to an empty '%s' but it is not empty"
msgstr "miếng vá áp dụng cho một “%s†trống rỗng nhưng nó lại không trống"
-#: apply.c:3189
+#: apply.c:3196
#, c-format
msgid "the necessary postimage %s for '%s' cannot be read"
msgstr "không thể Ä‘á»c postimage %s cần thiết cho “%sâ€"
-#: apply.c:3202
+#: apply.c:3209
#, c-format
msgid "binary patch does not apply to '%s'"
msgstr "miếng vá định dạng nhị phân không được áp dụng cho “%sâ€"
-#: apply.c:3209
+#: apply.c:3216
#, c-format
msgid "binary patch to '%s' creates incorrect result (expecting %s, got %s)"
msgstr ""
"vá nhị phân cho “%s†tạo ra kết quả không chính xác (mong chỠ%s, lại nhận "
"%s)"
-#: apply.c:3230
+#: apply.c:3237
#, c-format
msgid "patch failed: %s:%ld"
msgstr "gặp lỗi khi vá: %s:%ld"
-#: apply.c:3353
+#: apply.c:3360
#, c-format
msgid "cannot checkout %s"
msgstr "không thể lấy ra %s"
-#: apply.c:3405 apply.c:3416 apply.c:3462 midx.c:104 pack-revindex.c:214
-#: setup.c:309
+#: apply.c:3412 apply.c:3423 apply.c:3469 midx.c:105 pack-revindex.c:214
+#: setup.c:310
#, c-format
msgid "failed to read %s"
msgstr "gặp lá»—i khi Ä‘á»c %s"
-#: apply.c:3413
+#: apply.c:3420
#, c-format
msgid "reading from '%s' beyond a symbolic link"
msgstr "Ä‘á»c từ “%s†vượt ra ngoài liên kết má»m"
-#: apply.c:3442 apply.c:3711
+#: apply.c:3449 apply.c:3721
#, c-format
msgid "path %s has been renamed/deleted"
msgstr "Ä‘Æ°á»ng dẫn %s đã bị xóa hoặc đổi tên"
-#: apply.c:3549 apply.c:3726
+#: apply.c:3559 apply.c:3736
#, c-format
msgid "%s: does not exist in index"
msgstr "%s: không tồn tại trong bảng mục lục"
-#: apply.c:3558 apply.c:3734 apply.c:3978
+#: apply.c:3568 apply.c:3744 apply.c:3960
#, c-format
msgid "%s: does not match index"
msgstr "%s: không khớp trong mục lục"
-#: apply.c:3595
+#: apply.c:3605
msgid "repository lacks the necessary blob to perform 3-way merge."
msgstr "kho thiếu đối tượng blob cần thiết để thá»±c hiện hòa trá»™n “3-wayâ€."
-#: apply.c:3598
+#: apply.c:3608
#, c-format
msgid "Performing three-way merge...\n"
msgstr "Äang thá»±c hiện hòa trá»™n “3-Ä‘Æ°á»ngâ€â€¦\n"
-#: apply.c:3614 apply.c:3618
+#: apply.c:3624 apply.c:3628
#, c-format
msgid "cannot read the current contents of '%s'"
msgstr "không thể Ä‘á»c ná»™i dung hiện hành của “%sâ€"
-#: apply.c:3630
+#: apply.c:3640
#, c-format
msgid "Failed to perform three-way merge...\n"
msgstr "Gặp lá»—i khi thá»±c hiện hòa trá»™n kiểu “three-wayâ€â€¦\n"
-#: apply.c:3644
+#: apply.c:3654
#, c-format
msgid "Applied patch to '%s' with conflicts.\n"
msgstr "Äã áp dụng miếng vá %s vá»›i các xung Ä‘á»™t.\n"
-#: apply.c:3649
+#: apply.c:3659
#, c-format
msgid "Applied patch to '%s' cleanly.\n"
msgstr "Äã áp dụng miếng vá %s má»™t cách sạch sẽ.\n"
-#: apply.c:3666
+#: apply.c:3676
#, c-format
msgid "Falling back to direct application...\n"
msgstr "Äang trở lại ứng dụng chi phối…\n"
-#: apply.c:3678
+#: apply.c:3688
msgid "removal patch leaves file contents"
msgstr "loại bỠmiếng vá để lại nội dung tập tin"
-#: apply.c:3751
+#: apply.c:3761
#, c-format
msgid "%s: wrong type"
msgstr "%s: sai kiểu"
-#: apply.c:3753
+#: apply.c:3763
#, c-format
msgid "%s has type %o, expected %o"
msgstr "%s có kiểu %o, cần %o"
-#: apply.c:3918 apply.c:3920 read-cache.c:889 read-cache.c:918
-#: read-cache.c:1381
+#: apply.c:3900 apply.c:3902 read-cache.c:903 read-cache.c:932
+#: read-cache.c:1399
#, c-format
msgid "invalid path '%s'"
msgstr "Ä‘Æ°á»ng dẫn không hợp lệ “%sâ€"
-#: apply.c:3976
+#: apply.c:3958
#, c-format
msgid "%s: already exists in index"
msgstr "%s: đã có từ trước trong bảng mục lục"
-#: apply.c:3980
+#: apply.c:3962
#, c-format
msgid "%s: already exists in working directory"
msgstr "%s: đã sẵn có trong thư mục đang làm việc"
-#: apply.c:4000
+#: apply.c:3982
#, c-format
msgid "new mode (%o) of %s does not match old mode (%o)"
msgstr "chế độ mới (%o) của %s không khớp với chế độ cũ (%o)"
-#: apply.c:4005
+#: apply.c:3987
#, c-format
msgid "new mode (%o) of %s does not match old mode (%o) of %s"
msgstr "chế độ mới (%o) của %s không khớp với chế độ cũ (%o) của %s"
-#: apply.c:4025
+#: apply.c:4007
#, c-format
msgid "affected file '%s' is beyond a symbolic link"
msgstr "tập tin chịu tác Ä‘á»™ng “%s†vượt ra ngoài liên kết má»m"
-#: apply.c:4029
+#: apply.c:4011
#, c-format
msgid "%s: patch does not apply"
msgstr "%s: miếng vá không được áp dụng"
-#: apply.c:4044
+#: apply.c:4026
#, c-format
msgid "Checking patch %s..."
msgstr "Äang kiểm tra miếng vá %s…"
-#: apply.c:4136
+#: apply.c:4118
#, c-format
msgid "sha1 information is lacking or useless for submodule %s"
msgstr "thông tin sha1 thiếu hoặc không dùng được cho mô-đun %s"
-#: apply.c:4143
+#: apply.c:4125
#, c-format
msgid "mode change for %s, which is not in current HEAD"
msgstr "thay đổi chế độ cho %s, cái mà không phải là HEAD hiện tại"
-#: apply.c:4146
+#: apply.c:4128
#, c-format
msgid "sha1 information is lacking or useless (%s)."
msgstr "thông tin sha1 còn thiếu hay không dùng được(%s)."
-#: apply.c:4155
+#: apply.c:4137
#, c-format
msgid "could not add %s to temporary index"
msgstr "không thể thêm %s vào chỉ mục tạm thá»i"
-#: apply.c:4165
+#: apply.c:4147
#, c-format
msgid "could not write temporary index to %s"
msgstr "không thể ghi mục lục tạm vào %s"
-#: apply.c:4303
+#: apply.c:4285
#, c-format
msgid "unable to remove %s from index"
msgstr "không thể gỡ bỠ%s từ mục lục"
-#: apply.c:4337
+#: apply.c:4319
#, c-format
msgid "corrupt patch for submodule %s"
msgstr "miếng vá sai há»ng cho mô-Ä‘un-con %s"
-#: apply.c:4343
+#: apply.c:4325
#, c-format
msgid "unable to stat newly created file '%s'"
msgstr "không thể lấy thống kê vỠtập tin %s mới hơn đã được tạo"
-#: apply.c:4351
+#: apply.c:4333
#, c-format
msgid "unable to create backing store for newly created file %s"
msgstr "không thể tạo “kho lưu đằng sau†cho tập tin được tạo mới hơn %s"
-#: apply.c:4357 apply.c:4502
+#: apply.c:4339 apply.c:4484
#, c-format
msgid "unable to add cache entry for %s"
msgstr "không thể thêm mục nhớ đệm cho %s"
-#: apply.c:4400 builtin/bisect--helper.c:540 builtin/gc.c:2258
+#: apply.c:4382 builtin/bisect--helper.c:540 builtin/gc.c:2258
#: builtin/gc.c:2293
#, c-format
msgid "failed to write to '%s'"
msgstr "gặp lá»—i khi ghi vào “%sâ€"
-#: apply.c:4404
+#: apply.c:4386
#, c-format
msgid "closing file '%s'"
msgstr "Ä‘ang đóng tập tin “%sâ€"
-#: apply.c:4474
+#: apply.c:4456
#, c-format
msgid "unable to write file '%s' mode %o"
msgstr "không thể ghi vào tập tin “%s†chế độ %o"
-#: apply.c:4572
+#: apply.c:4554
#, c-format
msgid "Applied patch %s cleanly."
msgstr "Äã áp dụng miếng vá %s má»™t cách sạch sẽ."
-#: apply.c:4580
+#: apply.c:4562
msgid "internal error"
msgstr "lá»—i ná»™i bá»™"
-#: apply.c:4583
+#: apply.c:4565
#, c-format
msgid "Applying patch %%s with %d reject..."
msgid_plural "Applying patch %%s with %d rejects..."
msgstr[0] "Äang áp dụng miếng vá %%s vá»›i %d lần từ chối…"
-#: apply.c:4594
+#: apply.c:4576
#, c-format
msgid "truncating .rej filename to %.*s.rej"
msgstr "đang cắt ngắn tên tập tin .rej thành %.*s.rej"
-#: apply.c:4602
+#: apply.c:4584
#, c-format
msgid "cannot open %s"
msgstr "không mở được “%sâ€"
-#: apply.c:4616
+#: apply.c:4598
#, c-format
msgid "Hunk #%d applied cleanly."
msgstr "Khối nhá»› #%d được áp dụng gá»n gàng."
-#: apply.c:4620
+#: apply.c:4602
#, c-format
msgid "Rejected hunk #%d."
msgstr "Äoạn dữ liệu #%d bị từ chối."
-#: apply.c:4749
+#: apply.c:4731
#, c-format
msgid "Skipped patch '%s'."
msgstr "Bá» qua Ä‘Æ°á»ng dẫn “%sâ€."
-#: apply.c:4758
+#: apply.c:4740
msgid "No valid patches in input (allow with \"--allow-empty\")"
msgstr ""
"Không có miếng vá hợp lệ nào trong đầu vào (cho phép với \"--allow-empty\")"
-#: apply.c:4779
+#: apply.c:4761
msgid "unable to read index file"
msgstr "không thể Ä‘á»c tập tin lÆ°u bảng mục lục"
-#: apply.c:4936
+#: apply.c:4918
#, c-format
msgid "can't open patch '%s': %s"
msgstr "không thể mở miếng vá “%sâ€: %s"
-#: apply.c:4963
+#: apply.c:4945
#, c-format
msgid "squelched %d whitespace error"
msgid_plural "squelched %d whitespace errors"
msgstr[0] "đã chấm dứt %d lỗi khoảng trắng"
-#: apply.c:4969 apply.c:4984
+#: apply.c:4951 apply.c:4966
#, c-format
msgid "%d line adds whitespace errors."
msgid_plural "%d lines add whitespace errors."
msgstr[0] "%d dòng thêm khoảng trắng lỗi."
-#: apply.c:4977
+#: apply.c:4959
#, c-format
msgid "%d line applied after fixing whitespace errors."
msgid_plural "%d lines applied after fixing whitespace errors."
msgstr[0] "%d dòng được áp dụng sau khi sửa các lỗi khoảng trắng."
-#: apply.c:4993 builtin/add.c:704 builtin/mv.c:338 builtin/rm.c:430
+#: apply.c:4975 builtin/add.c:690 builtin/mv.c:338 builtin/rm.c:430
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"
-#: apply.c:5021
+#: apply.c:5003
msgid "don't apply changes matching the given path"
msgstr "không áp dụng các thay đổi khá»›p vá»›i Ä‘Æ°á»ng dẫn đã cho"
-#: apply.c:5024
+#: apply.c:5006
msgid "apply changes matching the given path"
msgstr "áp dụng các thay đổi khá»›p vá»›i Ä‘Æ°á»ng dẫn đã cho"
-#: apply.c:5026 builtin/am.c:2376
+#: apply.c:5008 builtin/am.c:2379
msgid "num"
msgstr "số"
-#: apply.c:5027
+#: apply.c:5009
msgid "remove <num> leading slashes from traditional diff paths"
msgstr "gỡ bá» <số> dấu gạch chéo dẫn đầu từ Ä‘Æ°á»ng dẫn diff cổ Ä‘iển"
-#: apply.c:5030
+#: apply.c:5012
msgid "ignore additions made by the patch"
msgstr "lỠđi phần bổ xung được tạo ra bởi miếng vá"
-#: apply.c:5032
+#: apply.c:5014
msgid "instead of applying the patch, output diffstat for the input"
msgstr ""
"thay vì áp dụng một miếng vá, kết xuất kết quả từ lệnh diffstat cho đầu ra"
-#: apply.c:5036
+#: apply.c:5018
msgid "show number of added and deleted lines in decimal notation"
msgstr ""
"hiển thị số lượng các dòng được thêm vào và xóa đi theo ký hiệu thập phân"
-#: apply.c:5038
+#: apply.c:5020
msgid "instead of applying the patch, output a summary for the input"
msgstr "thay vì áp dụng một miếng vá, kết xuất kết quả cho đầu vào"
-#: apply.c:5040
+#: apply.c:5022
msgid "instead of applying the patch, see if the patch is applicable"
msgstr "thay vì áp dụng miếng vá, hãy xem xem miếng vá có thích hợp không"
-#: apply.c:5042
+#: apply.c:5024
msgid "make sure the patch is applicable to the current index"
msgstr "hãy chắc chắn là miếng vá thích hợp với bảng mục lục hiện hành"
-#: apply.c:5044
+#: apply.c:5026
msgid "mark new files with `git add --intent-to-add`"
msgstr "đánh dấu các tập tin má»›i vá»›i “git add --intent-to-addâ€"
-#: apply.c:5046
+#: apply.c:5028
msgid "apply a patch without touching the working tree"
msgstr "áp dụng một miếng vá mà không động chạm đến cây làm việc"
-#: apply.c:5048
+#: apply.c:5030
msgid "accept a patch that touches outside the working area"
msgstr "chấp nhận một miếng vá mà không động chạm đến cây làm việc"
-#: apply.c:5051
+#: apply.c:5033
msgid "also apply the patch (use with --stat/--summary/--check)"
msgstr ""
"đồng thá»i áp dụng miếng vá (dùng vá»›i tùy chá»n --stat/--summary/--check)"
-#: apply.c:5053
+#: apply.c:5035
msgid "attempt three-way merge, fall back on normal patch if that fails"
msgstr ""
"thá»­ hòa trá»™n kiểu three-way, quay lại dán bình thÆ°á»ng nếu không thể thá»±c "
"hiện được"
-#: apply.c:5055
+#: apply.c:5037
msgid "build a temporary index based on embedded index information"
msgstr ""
"xây dá»±ng bảng mục lục tạm thá»i trên cÆ¡ sở thông tin bảng mục lục được nhúng"
-#: apply.c:5058 builtin/checkout-index.c:196
+#: apply.c:5040 builtin/checkout-index.c:230
msgid "paths are separated with NUL character"
msgstr "các Ä‘Æ°á»ng dẫn bị ngăn cách bởi ký tá»± NULL"
-#: apply.c:5060
+#: apply.c:5042
msgid "ensure at least <n> lines of context match"
msgstr "đảm bảo rằng có ít nhất <n> dòng ngữ cảnh khớp"
-#: apply.c:5061 builtin/am.c:2352 builtin/am.c:2355
+#: apply.c:5043 builtin/am.c:2355 builtin/am.c:2358
#: builtin/interpret-trailers.c:98 builtin/interpret-trailers.c:100
-#: builtin/interpret-trailers.c:102 builtin/pack-objects.c:3960
-#: builtin/rebase.c:1051
+#: builtin/interpret-trailers.c:102 builtin/pack-objects.c:3983
+#: builtin/rebase.c:1079
msgid "action"
msgstr "hành động"
-#: apply.c:5062
+#: apply.c:5044
msgid "detect new or modified lines that have whitespace errors"
msgstr "tìm thấy một dòng mới hoặc bị sửa đổi mà nó có lỗi do khoảng trắng"
-#: apply.c:5065 apply.c:5068
+#: apply.c:5047 apply.c:5050
msgid "ignore changes in whitespace when finding context"
msgstr "lỠđi sự thay đổi do khoảng trắng gây ra khi tìm ngữ cảnh"
-#: apply.c:5071
+#: apply.c:5053
msgid "apply the patch in reverse"
msgstr "áp dụng miếng vá theo chiá»u ngược"
-#: apply.c:5073
+#: apply.c:5055
msgid "don't expect at least one line of context"
msgstr "đừng hy vá»ng có ít nhất má»™t dòng ngữ cảnh"
-#: apply.c:5075
+#: apply.c:5057
msgid "leave the rejected hunks in corresponding *.rej files"
msgstr "để lại khối dữ liệu bị từ chối trong các tập tin *.rej tương ứng"
-#: apply.c:5077
+#: apply.c:5059
msgid "allow overlapping hunks"
msgstr "cho phép chồng khối nhớ"
-#: apply.c:5080
+#: apply.c:5062
msgid "tolerate incorrectly detected missing new-line at the end of file"
msgstr ""
"đã dò tìm thấy dung sai không chính xác thiếu dòng mới tại cuối tập tin"
-#: apply.c:5083
+#: apply.c:5065
msgid "do not trust the line counts in the hunk headers"
msgstr "không tin số lượng dòng trong phần đầu khối dữ liệu"
-#: apply.c:5085 builtin/am.c:2364
+#: apply.c:5067 builtin/am.c:2367
msgid "root"
msgstr "gốc"
-#: apply.c:5086
+#: apply.c:5068
msgid "prepend <root> to all filenames"
msgstr "treo thêm <root> vào tất cả các tên tập tin"
-#: apply.c:5089
+#: apply.c:5071
msgid "don't return error for empty patches"
msgstr "đừng trả vỠlỗi khi các miếng vá trống rỗng"
-#: archive-tar.c:125 archive-zip.c:345
+#: archive-tar.c:125 archive-zip.c:346
#, c-format
msgid "cannot stream blob %s"
msgstr "không thể stream blob “%sâ€"
-#: archive-tar.c:265 archive-zip.c:358
+#: archive-tar.c:265 archive-zip.c:359
#, c-format
msgid "unsupported file mode: 0%o (SHA1: %s)"
msgstr "chế độ tập tin không được hỗ trợ: 0%o (SHA1: %s)"
@@ -1554,22 +1556,22 @@ msgstr "không thể chuyển hướng mô tả"
msgid "'%s' filter reported error"
msgstr "bá»™ lá»c “%s†đã báo cáo lá»—i"
-#: archive-zip.c:318
+#: archive-zip.c:319
#, c-format
msgid "path is not valid UTF-8: %s"
msgstr "Ä‘Æ°á»ng dẫn không hợp lệ UTF-8: %s"
-#: archive-zip.c:322
+#: archive-zip.c:323
#, c-format
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:469 builtin/pack-objects.c:365 builtin/pack-objects.c:368
+#: archive-zip.c:470 builtin/pack-objects.c:363 builtin/pack-objects.c:366
#, c-format
msgid "deflate error (%d)"
msgstr "lỗi giải nén (%d)"
-#: archive-zip.c:603
+#: archive-zip.c:604
#, c-format
msgid "timestamp too large for this system: %<PRIuMAX>"
msgstr "dấu vết thá»i gian là quá lá»›n cho hệ thống này: %<PRIuMAX>"
@@ -1578,10 +1580,6 @@ msgstr "dấu vết thá»i gian là quá lá»›n cho hệ thống này: %<PRIuMAX>
msgid "git archive [<options>] <tree-ish> [<path>...]"
msgstr "git archive [<các tùy chá»n>] <tree-ish> [</Ä‘Æ°á»ng/dẫn>…]"
-#: archive.c:15
-msgid "git archive --list"
-msgstr "git archive --list"
-
#: archive.c:16
msgid ""
"git archive --remote <repo> [--exec <cmd>] [<options>] <tree-ish> [<path>...]"
@@ -1594,12 +1592,12 @@ msgid "git archive --remote <repo> [--exec <cmd>] --list"
msgstr "git archive --remote <kho> [--exec <lệnh>] --list"
#: archive.c:188 archive.c:341 builtin/gc.c:497 builtin/notes.c:238
-#: builtin/tag.c:578
+#: builtin/tag.c:579
#, c-format
msgid "cannot read '%s'"
msgstr "không thể Ä‘á»c “%sâ€"
-#: archive.c:426 builtin/add.c:215 builtin/add.c:671 builtin/rm.c:334
+#: archive.c:426 builtin/add.c:214 builtin/add.c:657 builtin/rm.c:334
#, c-format
msgid "pathspec '%s' did not match any files"
msgstr "đặc tả Ä‘Æ°á»ng dẫn “%s†không khá»›p vá»›i bất kỳ tập tin nào"
@@ -1641,7 +1639,7 @@ msgstr "định_dạng"
msgid "archive format"
msgstr "định dạng lưu trữ"
-#: archive.c:552 builtin/log.c:1790
+#: archive.c:552 builtin/log.c:1809
msgid "prefix"
msgstr "tiá»n_tố"
@@ -1649,12 +1647,12 @@ msgstr "tiá»n_tố"
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:554 archive.c:557 builtin/blame.c:880 builtin/blame.c:884
-#: builtin/blame.c:885 builtin/commit-tree.c:115 builtin/config.c:135
+#: archive.c:554 archive.c:557 builtin/blame.c:881 builtin/blame.c:885
+#: builtin/blame.c:886 builtin/commit-tree.c:115 builtin/config.c:135
#: builtin/fast-export.c:1181 builtin/fast-export.c:1183
-#: builtin/fast-export.c:1187 builtin/grep.c:935 builtin/hash-object.c:103
+#: builtin/fast-export.c:1187 builtin/grep.c:936 builtin/hash-object.c:104
#: builtin/ls-files.c:654 builtin/ls-files.c:657 builtin/notes.c:410
-#: builtin/notes.c:576 builtin/read-tree.c:115 parse-options.h:190
+#: builtin/notes.c:576 builtin/read-tree.c:115 parse-options.h:195
msgid "file"
msgstr "tập_tin"
@@ -1682,8 +1680,8 @@ msgstr "đặt mức nén"
msgid "list supported archive formats"
msgstr "liệt kê các kiểu nén được hỗ trợ"
-#: archive.c:568 builtin/archive.c:89 builtin/clone.c:118 builtin/clone.c:121
-#: builtin/submodule--helper.c:1870 builtin/submodule--helper.c:2513
+#: archive.c:568 builtin/archive.c:89 builtin/clone.c:122 builtin/clone.c:125
+#: builtin/submodule--helper.c:1884 builtin/submodule--helper.c:2718
msgid "repo"
msgstr "kho"
@@ -1704,11 +1702,12 @@ msgstr "Ä‘Æ°á»ng dẫn đến lệnh git-upload-archive trên máy chủ"
msgid "Unexpected option --remote"
msgstr "Gặp tùy chá»n không cần --remote"
-#: archive.c:580 fetch-pack.c:300 revision.c:2887 builtin/add.c:544
-#: builtin/add.c:576 builtin/checkout.c:1763 builtin/commit.c:370
-#: builtin/fast-export.c:1230 builtin/index-pack.c:1848 builtin/log.c:2115
-#: builtin/reset.c:435 builtin/reset.c:493 builtin/rm.c:281
-#: builtin/stash.c:1719 builtin/worktree.c:508 http-fetch.c:144
+#: archive.c:580 fetch-pack.c:300 revision.c:2914 builtin/add.c:530
+#: builtin/add.c:562 builtin/checkout.c:1782 builtin/clone.c:1099
+#: builtin/clone.c:1102 builtin/commit.c:371 builtin/fast-export.c:1230
+#: builtin/index-pack.c:1854 builtin/log.c:2140 builtin/reset.c:442
+#: builtin/reset.c:500 builtin/rm.c:281 builtin/stash.c:1708
+#: builtin/worktree.c:580 builtin/worktree.c:781 http-fetch.c:144
#: http-fetch.c:153
#, c-format
msgid "the option '%s' requires '%s'"
@@ -1728,17 +1727,17 @@ msgstr "Không hiểu định dạng “%sâ€"
msgid "Argument not supported for format '%s': -%d"
msgstr "Tham số không được há»— trợ cho định dạng “%sâ€: -%d"
-#: attr.c:203
+#: attr.c:202
#, c-format
msgid "%.*s is not a valid attribute name"
msgstr "%.*s không phải tên thuộc tính hợp lệ"
-#: attr.c:364
+#: attr.c:363
#, c-format
msgid "%s not allowed: %s:%d"
msgstr "%s không được phép: %s:%d"
-#: attr.c:404
+#: attr.c:403
msgid ""
"Negative patterns are ignored in git attributes\n"
"Use '\\!' for literal leading exclamation."
@@ -1756,12 +1755,12 @@ msgstr "Ná»™i dung được trích dẫn sai trong tập tin “%sâ€: %s"
msgid "We cannot bisect more!\n"
msgstr "Chúng tôi không bisect thêm nữa!\n"
-#: bisect.c:764
+#: bisect.c:765
#, c-format
msgid "Not a valid commit name %s"
msgstr "Không phải tên đối tượng commit %s hợp lệ"
-#: bisect.c:789
+#: bisect.c:790
#, c-format
msgid ""
"The merge base %s is bad.\n"
@@ -1770,7 +1769,7 @@ msgstr ""
"Hòa trộn trên %s là sai.\n"
"Äiá»u đó có nghÄ©a là lá»—i đã được sá»­a chữa giữa %s và [%s].\n"
-#: bisect.c:794
+#: bisect.c:795
#, c-format
msgid ""
"The merge base %s is new.\n"
@@ -1779,7 +1778,7 @@ msgstr ""
"Hòa trộn trên %s là mới.\n"
"Gần như chắc chắn là có thay đổi giữa %s và [%s].\n"
-#: bisect.c:799
+#: bisect.c:800
#, c-format
msgid ""
"The merge base %s is %s.\n"
@@ -1788,7 +1787,7 @@ msgstr ""
"Hòa trộn trên %s là %s.\n"
"Äiá»u đó có nghÄ©a là lần chuyển giao “%s†đầu tiên là giữa %s và [%s].\n"
-#: bisect.c:807
+#: bisect.c:808
#, c-format
msgid ""
"Some %s revs are not ancestors of the %s rev.\n"
@@ -1799,7 +1798,7 @@ msgstr ""
"git bisect không thể làm việc đúng đắn trong trÆ°á»ng hợp này.\n"
"Liệu có phải bạn nhầm lẫn các điểm %s và %s không?\n"
-#: bisect.c:820
+#: bisect.c:821
#, c-format
msgid ""
"the merge base between %s and [%s] must be skipped.\n"
@@ -1811,36 +1810,36 @@ msgstr ""
"%s.\n"
"Chúng tôi vẫn cứ tiếp tục."
-#: bisect.c:859
+#: bisect.c:860
#, c-format
msgid "Bisecting: a merge base must be tested\n"
msgstr "Bisecting: ná»n hòa trá»™n cần phải được kiểm tra\n"
-#: bisect.c:909
+#: bisect.c:910
#, c-format
msgid "a %s revision is needed"
msgstr "cần một điểm xét duyệt %s"
-#: bisect.c:939
+#: bisect.c:940
#, c-format
msgid "could not create file '%s'"
msgstr "không thể tạo tập tin “%sâ€"
-#: bisect.c:985 builtin/merge.c:155
+#: bisect.c:986 builtin/merge.c:155
#, c-format
msgid "could not read file '%s'"
msgstr "không thể Ä‘á»c tập tin “%sâ€"
-#: bisect.c:1025
+#: bisect.c:1026
msgid "reading bisect refs failed"
msgstr "việc Ä‘á»c tham chiếu bisect gặp lá»—i"
-#: bisect.c:1055
+#: bisect.c:1056
#, c-format
msgid "%s was both %s and %s\n"
msgstr "%s là cả %s và %s\n"
-#: bisect.c:1064
+#: bisect.c:1065
#, c-format
msgid ""
"No testable commit found.\n"
@@ -1849,7 +1848,7 @@ msgstr ""
"Không tìm thấy lần chuyển giao kiểm tra được nào.\n"
"Có lẽ bạn bắt đầu vá»›i các tham số Ä‘Æ°á»ng dẫn sai?\n"
-#: bisect.c:1093
+#: bisect.c:1094
#, c-format
msgid "(roughly %d step)"
msgid_plural "(roughly %d steps)"
@@ -1858,52 +1857,52 @@ msgstr[0] "(ước chừng %d bước)"
#. TRANSLATORS: the last %s will be replaced with "(roughly %d
#. steps)" translation.
#.
-#: bisect.c:1099
+#: bisect.c:1100
#, c-format
msgid "Bisecting: %d revision left to test after this %s\n"
msgid_plural "Bisecting: %d revisions left to test after this %s\n"
msgstr[0] "Bisecting: còn %d điểm xét duyệt để kiểm sau %s này\n"
-#: blame.c:2776
+#: blame.c:2773
msgid "--contents and --reverse do not blend well."
msgstr "tùy chá»n --contents và --reverse không được trá»™n vào nhau."
-#: blame.c:2790
+#: blame.c:2787
msgid "cannot use --contents with final commit object name"
msgstr "không thể dùng --contents với tên đối tượng chuyển giao cuối cùng"
-#: blame.c:2811
+#: blame.c:2808
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:2820 bundle.c:224 midx.c:1042 ref-filter.c:2370 remote.c:2158
-#: sequencer.c:2352 sequencer.c:4899 submodule.c:883 builtin/commit.c:1114
-#: builtin/log.c:429 builtin/log.c:1036 builtin/log.c:1644 builtin/log.c:2071
-#: builtin/log.c:2362 builtin/merge.c:431 builtin/pack-objects.c:3373
-#: builtin/pack-objects.c:3775 builtin/pack-objects.c:3790
+#: blame.c:2817 bundle.c:231 midx.c:1058 ref-filter.c:2371 remote.c:2157
+#: sequencer.c:2348 sequencer.c:4872 submodule.c:913 builtin/commit.c:1118
+#: builtin/log.c:437 builtin/log.c:1055 builtin/log.c:1663 builtin/log.c:2096
+#: builtin/log.c:2387 builtin/merge.c:431 builtin/pack-objects.c:3381
+#: builtin/pack-objects.c:3781 builtin/pack-objects.c:3796
#: builtin/shortlog.c:255
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"
-#: blame.c:2838
+#: blame.c:2835
msgid ""
"--reverse --first-parent together require range along first-parent chain"
msgstr ""
"cùng sử dụng --reverse --first-parent yêu cầu vùng cùng với chuỗi cha-mẹ-đầu-"
"tiên"
-#: blame.c:2849
+#: blame.c:2846
#, c-format
msgid "no such path %s in %s"
msgstr "không có Ä‘Æ°á»ng dẫn %s trong “%sâ€"
-#: blame.c:2860
+#: blame.c:2857
#, c-format
msgid "cannot read blob %s for path %s"
msgstr "không thể Ä‘á»c blob %s cho Ä‘Æ°á»ng dẫn “%sâ€"
-#: branch.c:77
+#: branch.c:93
msgid ""
"cannot inherit upstream tracking configuration of multiple refs when "
"rebasing is requested"
@@ -1911,31 +1910,31 @@ msgstr ""
"không thể kế thừa cấu hình theo dõi thượng nguồn của nhiá»u tham chiếu khi mà "
"lệnh cải tổ được yêu cầu"
-#: branch.c:88
+#: branch.c:104
#, c-format
msgid "not setting branch '%s' as its own upstream"
msgstr "không cài đặt nhánh '%s' như là thượng nguồn của nó"
-#: branch.c:144
+#: branch.c:160
#, c-format
msgid "branch '%s' set up to track '%s' by rebasing."
msgstr "nhánh “%s†cài đặt để theo dõi “%s†bằng cách rebase."
-#: branch.c:145
+#: branch.c:161
#, c-format
msgid "branch '%s' set up to track '%s'."
msgstr "nhánh “%s†cài đặt để theo dõi “%sâ€."
-#: branch.c:148
+#: branch.c:164
#, c-format
msgid "branch '%s' set up to track:"
msgstr "nhánh “%s†cài đặt để theo dõi:"
-#: branch.c:160
+#: branch.c:176
msgid "unable to write upstream branch configuration"
msgstr "không thể ghi cấu hình nhánh thượng nguồn"
-#: branch.c:162
+#: branch.c:178
msgid ""
"\n"
"After fixing the error cause you may try to fix up\n"
@@ -1945,52 +1944,90 @@ msgstr ""
"Sau khi sửa nguyên nhân gây lỗi bạn có lẻ cần thử sửa\n"
"thông tin theo dõi máy chủ bằng cách gá»i lệnh:"
-#: branch.c:203
+#: branch.c:219
#, c-format
msgid "asked to inherit tracking from '%s', but no remote is set"
msgstr ""
"đã há»i để kế thừa theo dõi từ '%s', nhÆ°ng không có máy chủ nào được đặt"
-#: branch.c:209
+#: branch.c:225
#, c-format
msgid "asked to inherit tracking from '%s', but no merge configuration is set"
msgstr ""
"đã há»i để kế thừa theo dõi từ '%s', nhÆ°ng không có cấu hình hòa trá»™n nào "
"được đặt"
-#: branch.c:252
+#: branch.c:277
#, c-format
-msgid "not tracking: ambiguous information for ref %s"
-msgstr "không theo dõi: thông tin chưa rõ ràng cho tham chiếu %s"
+msgid "not tracking: ambiguous information for ref '%s'"
+msgstr "không theo dõi: thông tin chưa rõ ràng cho tham chiếu '%s'"
-#: branch.c:287
+#. TRANSLATORS: This is a line listing a remote with duplicate
+#. refspecs in the advice message below. For RTL languages you'll
+#. probably want to swap the "%s" and leading " " space around.
+#.
+#. TRANSLATORS: This is line item of ambiguous object output
+#. from describe_ambiguous_object() above. For RTL languages
+#. you'll probably want to swap the "%s" and leading " " space
+#. around.
+#.
+#: branch.c:289 object-name.c:464
+#, c-format
+msgid " %s\n"
+msgstr " %s\n"
+
+#. TRANSLATORS: The second argument is a \n-delimited list of
+#. duplicate refspecs, composed above.
+#.
+#: branch.c:295
+#, c-format
+msgid ""
+"There are multiple remotes whose fetch refspecs map to the remote\n"
+"tracking ref '%s':\n"
+"%s\n"
+"This is typically a configuration error.\n"
+"\n"
+"To support setting up tracking branches, ensure that\n"
+"different remotes' fetch refspecs map into different\n"
+"tracking namespaces."
+msgstr ""
+"Có nhiá»u máy chủ những cái lấy ánh xạ refspecs tham chiếu theo\n"
+"dõi máy chủ '%s':\n"
+"%s\n"
+"Äây thÆ°á»ng là lá»—i cấu hình.\n"
+"\n"
+"Äể há»— trợ thiết lập các nhánh theo dõi, hãy đảm bảo rằng\n"
+"các máy chủ khác nhau lấy các refspecs ánh xạ đến\n"
+"không gian tên theo dõi khác."
+
+#: branch.c:344
#, c-format
msgid "'%s' is not a valid branch name"
msgstr "“%s†không phải là một tên nhánh hợp lệ"
-#: branch.c:307
+#: branch.c:364
#, c-format
msgid "a branch named '%s' already exists"
msgstr "đã có nhánh mang tên “%sâ€"
-#: branch.c:313
+#: branch.c:370
#, c-format
msgid "cannot force update the branch '%s' checked out at '%s'"
msgstr "không thể ép buá»™c cập nhật nhánh “%s†đã được lấy ra tại “%sâ€"
-#: branch.c:336
+#: branch.c:393
#, c-format
msgid "cannot set up tracking information; starting point '%s' is not a branch"
msgstr ""
"không thể cài đặt thông tin theo dõi; điểm bắt đầu “%s†không phải là một "
"nhánh"
-#: branch.c:338
+#: branch.c:395
#, c-format
msgid "the requested upstream branch '%s' does not exist"
msgstr "nhánh thượng nguồn đã yêu cầu “%s†không tồn tại"
-#: branch.c:340
+#: branch.c:397
msgid ""
"\n"
"If you are planning on basing your work on an upstream\n"
@@ -2010,124 +2047,143 @@ msgstr ""
"sẽ theo dõi bản đối chiếu máy chủ của nó, bạn cần dùng lệnh\n"
"\"git push -u\" để đặt cấu hình thượng nguồn bạn muốn push."
-#: branch.c:384 builtin/replace.c:321 builtin/replace.c:377
+#: branch.c:445 builtin/replace.c:321 builtin/replace.c:377
#: builtin/replace.c:423 builtin/replace.c:453
#, c-format
msgid "not a valid object name: '%s'"
msgstr "không phải là tên đối tượng hợp lệ: “%sâ€"
-#: branch.c:404
+#: branch.c:465
#, c-format
msgid "ambiguous object name: '%s'"
msgstr "tên đối tượng chÆ°a rõ ràng: “%sâ€."
-#: branch.c:409
+#: branch.c:470
#, c-format
msgid "not a valid branch point: '%s'"
msgstr "không phải là má»™t Ä‘iểm nhánh hợp lệ: “%sâ€"
-#: branch.c:469
+#: branch.c:658
+#, c-format
+msgid "submodule '%s': unable to find submodule"
+msgstr "mô-Ä‘un-con “%sâ€: không thể tìm thấy mô-Ä‘un-con"
+
+#: branch.c:661
+#, c-format
+msgid ""
+"You may try updating the submodules using 'git checkout %s && git submodule "
+"update --init'"
+msgstr ""
+"Bạn có thể thử cập nhật các mô-đun-con bằng cách sử dụng 'git checkout %s && "
+"git submodule update --init'"
+
+#: branch.c:672 branch.c:698
+#, c-format
+msgid "submodule '%s': cannot create branch '%s'"
+msgstr "mô-Ä‘un-con “%sâ€: không thể tạo nhánh “%sâ€"
+
+#: branch.c:730
#, c-format
msgid "'%s' is already checked out at '%s'"
msgstr "“%s†đã được lấy ra tại “%s†rồi"
-#: branch.c:494
+#: branch.c:755
#, c-format
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:44
+#: bundle.c:45
#, c-format
msgid "unrecognized bundle hash algorithm: %s"
msgstr "không hiểu thuật toán băm dữ liệu bundle: %s"
-#: bundle.c:48
+#: bundle.c:53
#, c-format
msgid "unknown capability '%s'"
msgstr "không hiểu dung lượng “%sâ€"
-#: bundle.c:74
+#: bundle.c:79
#, c-format
msgid "'%s' does not look like a v2 or v3 bundle file"
msgstr "“%s†không giống như tập tin v2 hay v3 bundle (định dạng dump của git)"
-#: bundle.c:113
+#: bundle.c:118
#, c-format
msgid "unrecognized header: %s%s (%d)"
msgstr "phần đầu không được thừa nhận: %s%s (%d)"
-#: bundle.c:140 rerere.c:464 rerere.c:674 sequencer.c:2620 sequencer.c:3406
-#: builtin/commit.c:862
+#: bundle.c:145 rerere.c:464 rerere.c:675 sequencer.c:2616 sequencer.c:3402
+#: builtin/commit.c:865
#, c-format
msgid "could not open '%s'"
msgstr "không thể mở “%sâ€"
-#: bundle.c:198
+#: bundle.c:203
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:201
+#: bundle.c:206
msgid "need a repository to verify a bundle"
msgstr "cần một kho chứa để thẩm tra một bundle"
-#: bundle.c:257
+#: bundle.c:264
#, 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:"
+msgid_plural "The bundle contains these %<PRIuMAX> refs:"
+msgstr[0] "Bó dữ liệu chứa %<PRIuMAX> tham chiếu:"
-#: bundle.c:264
+#: bundle.c:272
msgid "The bundle records a complete history."
msgstr "Lệnh bundle ghi lại toàn bộ lịch sử."
-#: bundle.c:266
+#: bundle.c:274
#, 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:"
+msgid_plural "The bundle requires these %<PRIuMAX> refs:"
+msgstr[0] "Lệnh bundle yêu cầu %<PRIuMAX> tham chiếu này:"
-#: bundle.c:333
+#: bundle.c:350
msgid "unable to dup bundle descriptor"
msgstr "không thể nhân đôi bộ mô tả bundle"
-#: bundle.c:340
+#: bundle.c:357
msgid "Could not spawn pack-objects"
msgstr "Không thể sản sinh đối tượng gói"
-#: bundle.c:351
+#: bundle.c:368
msgid "pack-objects died"
msgstr "đối tượng gói đã chết"
-#: bundle.c:400
+#: bundle.c:417
#, 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:504
+#: bundle.c:533 builtin/log.c:211 builtin/log.c:1975 builtin/shortlog.c:400
+#, c-format
+msgid "unrecognized argument: %s"
+msgstr "đối số không được thừa nhận: %s"
+
+#: bundle.c:548
#, c-format
msgid "unsupported bundle version %d"
msgstr "phiên bản bundle %d không được hỗ trợ"
-#: bundle.c:506
+#: bundle.c:550
#, c-format
msgid "cannot write bundle version %d with algorithm %s"
msgstr "không thể ghi phiên bản bundle %d với thuật toán %s"
-#: bundle.c:524 builtin/log.c:210 builtin/log.c:1953 builtin/shortlog.c:399
-#, c-format
-msgid "unrecognized argument: %s"
-msgstr "đối số không được thừa nhận: %s"
-
-#: bundle.c:553
+#: bundle.c:600
msgid "Refusing to create empty bundle."
msgstr "Từ chối tạo một bó dữ liệu trống rỗng."
-#: bundle.c:563
+#: bundle.c:610
#, c-format
msgid "cannot create '%s'"
msgstr "không thể tạo “%sâ€"
-#: bundle.c:588
+#: bundle.c:639
msgid "index-pack died"
msgstr "mục lục gói đã chết"
@@ -2155,7 +2211,7 @@ msgstr "mảnh cuối cùng có id không bằng không %<PRIx32>"
msgid "invalid color value: %.*s"
msgstr "giá trị màu không hợp lệ: %.*s"
-#: commit-graph.c:204 midx.c:51
+#: commit-graph.c:204 midx.c:52
msgid "invalid hash version"
msgstr "phiên bản băm không hợp lệ"
@@ -2183,221 +2239,222 @@ msgstr "phiên bản đồ-thị-các-lần-chuyển-giao %X không khớp phiê
msgid "commit-graph file is too small to hold %u chunks"
msgstr "tập tin đồ-thị-các-lần-chuyển-giao quá nhỠđể giữ %u mảnh dữ liệu"
-#: commit-graph.c:482
+#: commit-graph.c:485
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:492
+#: commit-graph.c:495
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:540
+#: commit-graph.c:543
#, 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:564
+#: commit-graph.c:567
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:749 commit-graph.c:786
+#: commit-graph.c:752 commit-graph.c:789
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:770
+#: commit-graph.c:773
#, 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:803
+#: commit-graph.c:806
msgid "commit-graph requires overflow generation data but has none"
msgstr "commit-graph yêu cầu dữ liệu tạo tràn nhưng không có"
-#: commit-graph.c:1108 builtin/am.c:1369
+#: commit-graph.c:1111 builtin/am.c:1370 builtin/checkout.c:775
+#: builtin/clone.c:705
#, 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:1370 builtin/pack-objects.c:3070
+#: commit-graph.c:1373 builtin/pack-objects.c:3078
#, 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:1401
+#: commit-graph.c:1404
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:1418
+#: commit-graph.c:1421
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:1438
+#: commit-graph.c:1441
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:1457
+#: commit-graph.c:1460
msgid "Computing commit graph topological levels"
msgstr "Äang tính mức hình há»c tô-pô tạo đồ thị các lần chuyển giao"
-#: commit-graph.c:1510
+#: commit-graph.c:1513
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:1591
+#: commit-graph.c:1598
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:1668
+#: commit-graph.c:1675
msgid "Collecting referenced commits"
msgstr "Äang sÆ°u tập các lần chuyển giao được tham chiếu"
-#: commit-graph.c:1693
+#: commit-graph.c:1701
#, c-format
-msgid "Finding commits for commit graph in %d pack"
-msgid_plural "Finding commits for commit graph in %d packs"
+msgid "Finding commits for commit graph in %<PRIuMAX> pack"
+msgid_plural "Finding commits for commit graph in %<PRIuMAX> packs"
msgstr[0] ""
-"Äang tìm các lần chuyển giao cho đồ thị lần chuyển giao trong %d gói"
+"Äang tìm các lần chuyển giao cho đồ thị lần chuyển giao trong %<PRIuMAX> gói"
-#: commit-graph.c:1706
+#: commit-graph.c:1714
#, c-format
msgid "error adding pack %s"
msgstr "gặp lỗi thêm gói %s"
-#: commit-graph.c:1710
+#: commit-graph.c:1718
#, c-format
msgid "error opening index for %s"
msgstr "gặp lá»—i khi mở mục lục cho “%sâ€"
-#: commit-graph.c:1747
+#: commit-graph.c:1756
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:1765
+#: commit-graph.c:1774
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:1814
+#: commit-graph.c:1823
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:1845 midx.c:1149
+#: commit-graph.c:1854 midx.c:1168 builtin/sparse-checkout.c:475
#, 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:1858
+#: commit-graph.c:1868
msgid "unable to create temporary graph layer"
msgstr "không thể tạo lá»›p sÆ¡ đồ tạm thá»i"
-#: commit-graph.c:1863
+#: commit-graph.c:1873
#, 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:1920
+#: commit-graph.c:1930
#, 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:1956
+#: commit-graph.c:1967
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:1972
+#: commit-graph.c:1983
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:1992
+#: commit-graph.c:2004
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:2125
+#: commit-graph.c:2137
msgid "Scanning merged commits"
msgstr "Äang quét các lần chuyển giao đã hòa trá»™n"
-#: commit-graph.c:2169
+#: commit-graph.c:2181
msgid "Merging commit-graph"
msgstr "Äang hòa trá»™n đồ-thị-các-lần-chuyển-giao"
-#: commit-graph.c:2277
+#: commit-graph.c:2289
msgid "attempting to write a commit-graph, but 'core.commitGraph' is disabled"
msgstr ""
"cố gắng để ghi một đồ thị các lần chuyển giao, nhưng “core.commitGraph†bị "
"vô hiệu hóa"
-#: commit-graph.c:2384
+#: commit-graph.c:2396
msgid "too many commits to write graph"
msgstr "có quá nhiá»u lần chuyển giao để ghi đồ thị"
-#: commit-graph.c:2482
+#: commit-graph.c:2494
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:2492
+#: commit-graph.c:2504
#, 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:2502 commit-graph.c:2517
+#: commit-graph.c:2514 commit-graph.c:2529
#, 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:2509
+#: commit-graph.c:2521
#, 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:2527
+#: commit-graph.c:2539
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:2542
+#: commit-graph.c:2554
#, 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:2549
+#: commit-graph.c:2561
#, 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:2559
+#: commit-graph.c:2571
#, 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:2568
+#: commit-graph.c:2580
#, 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:2582
+#: commit-graph.c:2594
#, 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:2587
+#: commit-graph.c:2599
#, c-format
msgid ""
"commit-graph has generation number zero for commit %s, but non-zero elsewhere"
@@ -2405,7 +2462,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:2591
+#: commit-graph.c:2603
#, c-format
msgid ""
"commit-graph has non-zero generation number for commit %s, but zero elsewhere"
@@ -2413,32 +2470,32 @@ 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:2608
+#: commit-graph.c:2620
#, c-format
msgid "commit-graph generation for commit %s is %<PRIuMAX> < %<PRIuMAX>"
msgstr ""
"tạo đồ-thị-các-lần-chuyển-giao cho lần chuyển giao %s là %<PRIuMAX> < "
"%<PRIuMAX>"
-#: commit-graph.c:2614
+#: commit-graph.c:2626
#, c-format
msgid "commit date for commit %s in commit-graph is %<PRIuMAX> != %<PRIuMAX>"
msgstr ""
"ngày chuyển giao cho lần chuyển giao %s trong đồ-thị-các-lần-chuyển-giao là "
"%<PRIuMAX> != %<PRIuMAX>"
-#: commit.c:53 sequencer.c:3109 builtin/am.c:399 builtin/am.c:444
-#: builtin/am.c:449 builtin/am.c:1448 builtin/am.c:2123 builtin/replace.c:456
+#: commit.c:54 sequencer.c:3105 builtin/am.c:400 builtin/am.c:445
+#: builtin/am.c:450 builtin/am.c:1449 builtin/am.c:2124 builtin/replace.c:456
#, c-format
msgid "could not parse %s"
msgstr "không thể phân tích cú pháp %s"
-#: commit.c:55
+#: commit.c:56
#, c-format
msgid "%s %s is not a commit!"
msgstr "%s %s không phải là một lần chuyển giao!"
-#: commit.c:196
+#: commit.c:197
msgid ""
"Support for <GIT_DIR>/info/grafts is deprecated\n"
"and will be removed in a future Git version.\n"
@@ -2458,28 +2515,28 @@ msgstr ""
"Tắt lá»i nhắn này bằng cách chạy\n"
"\"git config advice.graftFileDeprecated false\""
-#: commit.c:1241
+#: commit.c:1252
#, 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:1245
+#: commit.c:1256
#, 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:1248
+#: commit.c:1259
#, 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:1251
+#: commit.c:1262
#, 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:1505
+#: commit.c:1516
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"
@@ -2493,7 +2550,17 @@ msgstr ""
msgid "memory exhausted"
msgstr "hết bộ nhớ"
-#: config.c:125
+#: compat/terminal.c:167
+msgid "cannot resume in the background, please use 'fg' to resume"
+msgstr ""
+"không thể khôi phục lại trong ná»n hệ thống, vui lòng sá»­ dụng 'fg' để khôi "
+"phục lại"
+
+#: compat/terminal.c:168
+msgid "cannot restore terminal settings"
+msgstr "không thể phục hồi lại các cài đặt thiết bị cuối"
+
+#: config.c:143
#, c-format
msgid ""
"exceeded maximum include depth (%d) while including\n"
@@ -2508,335 +2575,362 @@ msgstr ""
"\t%s\n"
"Nguyên nhân có thể là gồm quẩn vòng."
-#: config.c:141
+#: config.c:159
#, c-format
msgid "could not expand include path '%s'"
msgstr "không thể khai triển Ä‘Æ°á»ng dẫn “%sâ€"
-#: config.c:152
+#: config.c:170
msgid "relative config includes must come from files"
msgstr "các bao gồm cấu hình liên quan phải đến từ các tập tin"
-#: config.c:201
+#: config.c:219
msgid "relative config include conditionals must come from files"
msgstr "các Ä‘iá»u kiện bao gồm cấu hình liên quan phải đến từ các tập tin"
-#: config.c:398
+#: config.c:364
+msgid ""
+"remote URLs cannot be configured in file directly or indirectly included by "
+"includeIf.hasconfig:remote.*.url"
+msgstr ""
+"các URL máy chủ không thể được cấu hình trong tệp trực tiếp hoặc gián tiếp "
+"được bao gồm bởi includeIf.hasconfig:remote.*.url"
+
+#: config.c:508
#, c-format
msgid "invalid config format: %s"
msgstr "định dạng cấu hình không hợp lệ: %s"
-#: config.c:402
+#: config.c:512
#, c-format
msgid "missing environment variable name for configuration '%.*s'"
msgstr "thiếu tên biến môi trÆ°á»ng cho cấu hình “%.*sâ€"
-#: config.c:407
+#: config.c:517
#, c-format
msgid "missing environment variable '%s' for configuration '%.*s'"
msgstr "thiếu biến môi trÆ°á»ng “%s†cho cấu hình “%.*sâ€"
-#: config.c:443
+#: config.c:553
#, c-format
msgid "key does not contain a section: %s"
msgstr "khóa không chứa một phần: %s"
-#: config.c:448
+#: config.c:558
#, c-format
msgid "key does not contain variable name: %s"
msgstr "khóa không chứa bất kỳ một tên biến nào: %s"
-#: config.c:470 sequencer.c:2806
+#: config.c:580 sequencer.c:2802
#, c-format
msgid "invalid key: %s"
msgstr "khóa không đúng: %s"
-#: config.c:475
+#: config.c:585
#, c-format
msgid "invalid key (newline): %s"
msgstr "khóa không hợp lệ (dòng mới): %s"
-#: config.c:495
+#: config.c:605
msgid "empty config key"
msgstr "khóa cấu hình trống rỗng"
-#: config.c:513 config.c:525
+#: config.c:623 config.c:635
#, c-format
msgid "bogus config parameter: %s"
msgstr "tham số cấu hình không có thực: %s"
-#: config.c:539 config.c:556 config.c:563 config.c:572
+#: config.c:649 config.c:666 config.c:673 config.c:682
#, c-format
msgid "bogus format in %s"
msgstr "định dạng không có thực trong %s"
-#: config.c:606
+#: config.c:716
#, c-format
msgid "bogus count in %s"
msgstr "số lượng không có thực trong %s"
-#: config.c:610
+#: config.c:720
#, c-format
msgid "too many entries in %s"
msgstr "quá nhiá»u mục tin trong %s"
-#: config.c:620
+#: config.c:730
#, c-format
msgid "missing config key %s"
msgstr "thiếu khóa cấu hình “%sâ€"
-#: config.c:628
+#: config.c:738
#, c-format
msgid "missing config value %s"
msgstr "thiếu giá trị cấu hình “%sâ€"
-#: config.c:979
+#: config.c:1089
#, c-format
msgid "bad config line %d in blob %s"
msgstr "tập tin cấu hình sai tại dòng %d trong blob %s"
-#: config.c:983
+#: config.c:1093
#, c-format
msgid "bad config line %d in file %s"
msgstr "cấu hình sai tại dòng %d trong tập tin %s"
-#: config.c:987
+#: config.c:1097
#, c-format
msgid "bad config line %d in standard input"
msgstr "cấu hình sai tại dòng %d trong đầu vào tiêu chuẩn"
-#: config.c:991
+#: config.c:1101
#, c-format
msgid "bad config line %d in submodule-blob %s"
msgstr "cấu hình sai tại dòng %d trong blob-mô-đun-con %s"
-#: config.c:995
+#: config.c:1105
#, c-format
msgid "bad config line %d in command line %s"
msgstr "cấu hình sai tại dòng %d trong dòng lệnh %s"
-#: config.c:999
+#: config.c:1109
#, c-format
msgid "bad config line %d in %s"
msgstr "cấu hình sai tại dòng %d trong %s"
-#: config.c:1136
+#: config.c:1246
msgid "out of range"
msgstr "nằm ngoài phạm vi"
-#: config.c:1136
+#: config.c:1246
msgid "invalid unit"
msgstr "đơn vị không hợp lệ"
-#: config.c:1137
+#: config.c:1247
#, c-format
msgid "bad numeric config value '%s' for '%s': %s"
msgstr "sai giá trị bằng số của cấu hình “%s†cho “%sâ€: %s"
-#: config.c:1147
+#: config.c:1257
#, c-format
msgid "bad numeric config value '%s' for '%s' in blob %s: %s"
msgstr "sai giá trị bằng số của cấu hình “%s†cho “%s†trong blob %s: %s"
-#: config.c:1150
+#: config.c:1260
#, c-format
msgid "bad numeric config value '%s' for '%s' in file %s: %s"
msgstr "sai giá trị bằng số của cấu hình “%s†cho “%s†trong tập tin %s: %s"
-#: config.c:1153
+#: config.c:1263
#, c-format
msgid "bad numeric config value '%s' for '%s' in standard input: %s"
msgstr ""
"sai giá trị bằng số của cấu hình “%s†cho “%s†trong đầu vào tiêu chuẩn: %s"
-#: config.c:1156
+#: config.c:1266
#, c-format
msgid "bad numeric config value '%s' for '%s' in submodule-blob %s: %s"
msgstr ""
"sai giá trị bằng số của cấu hình “%s†cho “%s†trong submodule-blob %s: %s"
-#: config.c:1159
+#: config.c:1269
#, c-format
msgid "bad numeric config value '%s' for '%s' in command line %s: %s"
msgstr "sai giá trị bằng số của cấu hình “%s†cho “%s†trong dòng lệnh %s: %s"
-#: config.c:1162
+#: config.c:1272
#, c-format
msgid "bad numeric config value '%s' for '%s' in %s: %s"
msgstr "sai giá trị bằng số của cấu hình “%s†cho “%s†trong %s: %s"
-#: config.c:1241
+#: config.c:1368
+#, c-format
+msgid "invalid value for variable %s"
+msgstr "giá trị không hợp lệ cho biến %s"
+
+#: config.c:1389
+#, c-format
+msgid "ignoring unknown core.fsync component '%s'"
+msgstr "bỠqua thành phần core.fsync chưa biết '%s'"
+
+#: config.c:1425
#, c-format
msgid "bad boolean config value '%s' for '%s'"
msgstr "sai giá trị kiểu lô-gíc của cấu hình “%s†cho “%sâ€"
-#: config.c:1259
+#: config.c:1443
#, c-format
msgid "failed to expand user dir in: '%s'"
msgstr "gặp lá»—i mở rá»™ng thÆ° mục ngÆ°á»i dùng trong: “%sâ€"
-#: config.c:1268
+#: config.c:1452
#, c-format
msgid "'%s' for '%s' is not a valid timestamp"
msgstr "“%s†dành cho “%s†không phải là dấu vết thá»i gian hợp lệ"
-#: config.c:1361
+#: config.c:1545
#, c-format
msgid "abbrev length out of range: %d"
msgstr "chiá»u dài abbrev nằm ngoài phạm vi: %d"
-#: config.c:1375 config.c:1386
+#: config.c:1559 config.c:1570
#, c-format
msgid "bad zlib compression level %d"
msgstr "mức nén zlib %d là sai"
-#: config.c:1476
+#: config.c:1660
msgid "core.commentChar should only be one character"
msgstr "core.commentChar chỉ được có một ký tự"
-#: config.c:1509
+#: config.c:1692
+#, c-format
+msgid "ignoring unknown core.fsyncMethod value '%s'"
+msgstr "bỠqua giá trị core.fsyncMethod chưa biết '%s'"
+
+#: config.c:1698
+msgid "core.fsyncObjectFiles is deprecated; use core.fsync instead"
+msgstr "core.fsyncObjectFiles đã lạc hậu; hãy dùng core.fsync để thay thế"
+
+#: config.c:1714
#, c-format
msgid "invalid mode for object creation: %s"
msgstr "chế độ không hợp lệ đối với việc tạo đối tượng: %s"
-#: config.c:1584
+#: config.c:1800
#, c-format
msgid "malformed value for %s"
msgstr "giá trị cho %s sai dạng"
-#: config.c:1610
+#: config.c:1826
#, c-format
msgid "malformed value for %s: %s"
msgstr "giá trị cho %s sai dạng: %s"
-#: config.c:1611
+#: config.c:1827
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:1672 builtin/pack-objects.c:4053
+#: config.c:1888 builtin/pack-objects.c:4078
#, c-format
msgid "bad pack compression level %d"
msgstr "mức nén gói %d không hợp lệ"
-#: config.c:1795
+#: config.c:2014
#, c-format
msgid "unable to load config blob object '%s'"
msgstr "không thể tải đối tượng blob cấu hình “%sâ€"
-#: config.c:1798
+#: config.c:2017
#, c-format
msgid "reference '%s' does not point to a blob"
msgstr "tham chiếu “%s†không chỉ đến một blob nào cả"
-#: config.c:1816
+#: config.c:2035
#, c-format
msgid "unable to resolve config blob '%s'"
msgstr "không thể phân giải Ä‘iểm xét duyệt “%sâ€"
-#: config.c:1861
+#: config.c:2080
#, c-format
msgid "failed to parse %s"
msgstr "gặp lỗi khi phân tích cú pháp %s"
-#: config.c:1917
+#: config.c:2136
msgid "unable to parse command-line config"
msgstr "không thể phân tích cấu hình dòng lệnh"
-#: config.c:2285
+#: config.c:2512
msgid "unknown error occurred while reading the configuration files"
msgstr "đã có lá»—i chÆ°a biết xảy ra trong khi Ä‘á»c các tập tin cấu hình"
-#: config.c:2459
+#: config.c:2686
#, c-format
msgid "Invalid %s: '%s'"
msgstr "%s không hợp lệ: “%sâ€"
-#: config.c:2504
+#: config.c:2731
#, c-format
msgid "splitIndex.maxPercentChange value '%d' should be between 0 and 100"
msgstr "giá trị splitIndex.maxPercentChange “%d†phải nằm giữa 0 và 100"
-#: config.c:2550
+#: config.c:2763
#, c-format
msgid "unable to parse '%s' from command-line config"
msgstr "không thể phân tích “%s†từ cấu hình dòng lệnh"
-#: config.c:2552
+#: config.c:2765
#, c-format
msgid "bad config variable '%s' in file '%s' at line %d"
msgstr "sai biến cấu hình “%s†trong tập tin “%s†tại dòng %d"
-#: config.c:2637
+#: config.c:2850
#, c-format
msgid "invalid section name '%s'"
msgstr "tên của phần không hợp lệ “%sâ€"
-#: config.c:2669
+#: config.c:2882
#, c-format
msgid "%s has multiple values"
msgstr "%s có đa giá trị"
-#: config.c:2698
+#: config.c:2911
#, c-format
msgid "failed to write new configuration file %s"
msgstr "gặp lá»—i khi ghi tập tin cấu hình “%sâ€"
-#: config.c:2950 config.c:3277
+#: config.c:3177 config.c:3518
#, c-format
msgid "could not lock config file %s"
msgstr "không thể khóa tập tin cấu hình %s"
-#: config.c:2961
+#: config.c:3188
#, c-format
msgid "opening %s"
msgstr "Ä‘ang mở “%sâ€"
-#: config.c:2998 builtin/config.c:361
+#: config.c:3225 builtin/config.c:361
#, c-format
msgid "invalid pattern: %s"
msgstr "mẫu không hợp lệ: %s"
-#: config.c:3023
+#: config.c:3250
#, c-format
msgid "invalid config file %s"
msgstr "tập tin cấu hình “%s†không hợp lệ"
-#: config.c:3036 config.c:3290
+#: config.c:3263 config.c:3531
#, c-format
msgid "fstat on %s failed"
msgstr "fstat trên %s gặp lỗi"
-#: config.c:3047
+#: config.c:3274
#, c-format
msgid "unable to mmap '%s'%s"
msgstr "không thể mmap “%sâ€%s"
-#: config.c:3057 config.c:3295
+#: config.c:3284 config.c:3536
#, c-format
msgid "chmod on %s failed"
msgstr "chmod trên %s gặp lỗi"
-#: config.c:3142 config.c:3392
+#: config.c:3369 config.c:3633
#, c-format
msgid "could not write config file %s"
msgstr "không thể ghi tập tin cấu hình “%sâ€"
-#: config.c:3176
+#: config.c:3403
#, c-format
msgid "could not set '%s' to '%s'"
msgstr "không thể đặt “%s†thành “%sâ€"
-#: config.c:3178 builtin/remote.c:662 builtin/remote.c:860 builtin/remote.c:868
+#: config.c:3405 builtin/remote.c:666 builtin/remote.c:885 builtin/remote.c:893
#, c-format
msgid "could not unset '%s'"
msgstr "không thể thôi đặt “%sâ€"
-#: config.c:3268
+#: config.c:3509
#, c-format
msgid "invalid section name: %s"
msgstr "tên của phần không hợp lệ: %s"
-#: config.c:3435
+#: config.c:3676
#, c-format
msgid "missing value for '%s'"
msgstr "thiếu giá trị cho cho “%sâ€"
@@ -3169,75 +3263,75 @@ msgstr "từ chối làm việc vá»›i giấy chứng thá»±c thiếu trÆ°á»ng mÃ
msgid "refusing to work with credential missing protocol field"
msgstr "từ chối làm việc vá»›i giấy chứng thá»±c thiếu trÆ°á»ng giao thức"
-#: credential.c:395
+#: credential.c:396
#, c-format
msgid "url contains a newline in its %s component: %s"
msgstr "url có chứa một dấu xuống dòng trong thành phần %s của nó: %s"
-#: credential.c:439
+#: credential.c:440
#, c-format
msgid "url has no scheme: %s"
msgstr "url không có lược đồ: %s"
-#: credential.c:512
+#: credential.c:513
#, c-format
msgid "credential url cannot be parsed: %s"
msgstr "không thể phân tích cú pháp giấy chứng thực url: %s"
-#: date.c:138
+#: date.c:139
msgid "in the future"
msgstr "ở thá»i tÆ°Æ¡ng lai"
-#: date.c:144
+#: date.c:145
#, c-format
msgid "%<PRIuMAX> second ago"
msgid_plural "%<PRIuMAX> seconds ago"
msgstr[0] "%<PRIuMAX> giây trước"
-#: date.c:151
+#: date.c:152
#, c-format
msgid "%<PRIuMAX> minute ago"
msgid_plural "%<PRIuMAX> minutes ago"
msgstr[0] "%<PRIuMAX> phút trước"
-#: date.c:158
+#: date.c:159
#, c-format
msgid "%<PRIuMAX> hour ago"
msgid_plural "%<PRIuMAX> hours ago"
msgstr[0] "%<PRIuMAX> giá» trÆ°á»›c"
-#: date.c:165
+#: date.c:166
#, c-format
msgid "%<PRIuMAX> day ago"
msgid_plural "%<PRIuMAX> days ago"
msgstr[0] "%<PRIuMAX> ngày trước"
-#: date.c:171
+#: date.c:172
#, c-format
msgid "%<PRIuMAX> week ago"
msgid_plural "%<PRIuMAX> weeks ago"
msgstr[0] "%<PRIuMAX> tuần trước"
-#: date.c:178
+#: date.c:179
#, c-format
msgid "%<PRIuMAX> month ago"
msgid_plural "%<PRIuMAX> months ago"
msgstr[0] "%<PRIuMAX> tháng trước"
-#: date.c:189
+#: date.c:190
#, c-format
msgid "%<PRIuMAX> year"
msgid_plural "%<PRIuMAX> years"
msgstr[0] "%<PRIuMAX> năm"
#. TRANSLATORS: "%s" is "<n> years"
-#: date.c:192
+#: date.c:193
#, c-format
msgid "%s, %<PRIuMAX> month ago"
msgid_plural "%s, %<PRIuMAX> months ago"
msgstr[0] "%s, %<PRIuMAX> tháng trước"
-#: date.c:197 date.c:202
+#: date.c:198 date.c:203
#, c-format
msgid "%<PRIuMAX> year ago"
msgid_plural "%<PRIuMAX> years ago"
@@ -3268,10 +3362,14 @@ msgstr ""
msgid "Marked %d islands, done.\n"
msgstr "Äã đánh dấu %d island, xong.\n"
-#: diff-merges.c:70
+#: diff-merges.c:81 gpg-interface.c:719 gpg-interface.c:734 ls-refs.c:37
+#: parallel-checkout.c:42 sequencer.c:2805 setup.c:563 builtin/am.c:203
+#: builtin/am.c:2243 builtin/am.c:2287 builtin/blame.c:724 builtin/blame.c:742
+#: builtin/fetch.c:792 builtin/pack-objects.c:3515 builtin/pull.c:45
+#: builtin/pull.c:47 builtin/pull.c:321
#, c-format
-msgid "unknown value for --diff-merges: %s"
-msgstr "không hiểu giá trị cho --diff-merges: %s"
+msgid "invalid value for '%s': '%s'"
+msgstr "giá trị không hợp lệ cho '%s': '%s'"
#: diff-lib.c:561
msgid "--merge-base does not work with ranges"
@@ -3305,17 +3403,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:158
+#: diff.c:159
#, 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:163
+#: diff.c:164
#, c-format
msgid " Unknown dirstat parameter '%s'\n"
msgstr " Không hiểu đối số dirstat “%sâ€\n"
-#: diff.c:299
+#: diff.c:300
msgid ""
"color moved setting must be one of 'no', 'default', 'blocks', 'zebra', "
"'dimmed-zebra', 'plain'"
@@ -3323,7 +3421,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:327
+#: diff.c:328
#, c-format
msgid ""
"unknown color-moved-ws mode '%s', possible values are 'ignore-space-change', "
@@ -3333,7 +3431,7 @@ msgstr ""
"changeâ€, “ignore-space-at-eolâ€, “ignore-all-spaceâ€, “allow-indentation-"
"changeâ€"
-#: diff.c:335
+#: diff.c:336
msgid ""
"color-moved-ws: allow-indentation-change cannot be combined with other "
"whitespace modes"
@@ -3341,12 +3439,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:412
+#: diff.c:413
#, 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:472
+#: diff.c:473
#, c-format
msgid ""
"Found errors in 'diff.dirstat' config variable:\n"
@@ -3355,49 +3453,49 @@ msgstr ""
"Tìm thấy các lá»—i trong biến cấu hình “diff.dirstatâ€:\n"
"%s"
-#: diff.c:4237
+#: diff.c:4282
#, 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:4589
+#: diff.c:4677 parse-options.c:1114
#, c-format
msgid "options '%s', '%s', '%s', and '%s' cannot be used together"
msgstr "tùy chá»n '%s', '%s', '%s' và '%s' không thể dùng cùng nhau"
-#: diff.c:4593 builtin/difftool.c:736 builtin/log.c:1982 builtin/worktree.c:506
+#: diff.c:4681 parse-options.c:1118 builtin/worktree.c:578
#, c-format
msgid "options '%s', '%s', and '%s' cannot be used together"
msgstr "tùy chá»n '%s', '%s' và '%s' không thể dùng cùng nhau"
-#: diff.c:4597
+#: diff.c:4685
#, c-format
msgid "options '%s' and '%s' cannot be used together, use '%s' with '%s'"
msgstr "tùy chá»n '%s' và '%s' không thể dùng cùng nhau, dùng '%s' vá»›i '%s'"
-#: diff.c:4601
+#: diff.c:4689
#, c-format
msgid ""
"options '%s' and '%s' cannot be used together, use '%s' with '%s' and '%s'"
msgstr ""
"tùy chá»n '%s' và '%s' không thể dùng cùng nhau, dùng '%s' vá»›i '%s' và '%s'"
-#: diff.c:4681
+#: diff.c:4769
msgid "--follow requires exactly one pathspec"
msgstr "--follow cần chính xác má»™t đặc tả Ä‘Æ°á»ng dẫn"
-#: diff.c:4729
+#: diff.c:4823
#, c-format
msgid "invalid --stat value: %s"
msgstr "giá trị --stat không hợp lệ: “%sâ€"
-#: diff.c:4734 diff.c:4739 diff.c:4744 diff.c:4749 diff.c:5277
+#: diff.c:4828 diff.c:4833 diff.c:4838 diff.c:4843 diff.c:5319
#: parse-options.c:217 parse-options.c:221
#, 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:4766
+#: diff.c:4860
#, c-format
msgid ""
"Failed to parse --dirstat/-X option parameter:\n"
@@ -3406,42 +3504,42 @@ msgstr ""
"Gặp lá»—i khi phân tích đối số tùy chá»n --dirstat/-X:\n"
"%s"
-#: diff.c:4851
+#: diff.c:4893
#, 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:4875
+#: diff.c:4917
#, c-format
msgid "unknown value after ws-error-highlight=%.*s"
msgstr "không hiểu giá trị sau ws-error-highlight=%.*s"
-#: diff.c:4889
+#: diff.c:4931
#, c-format
msgid "unable to resolve '%s'"
msgstr "không thể phân giải “%sâ€"
-#: diff.c:4939 diff.c:4945
+#: diff.c:4981 diff.c:4987
#, c-format
msgid "%s expects <n>/<m> form"
msgstr "%s cần dạng <n>/<m>"
-#: diff.c:4957
+#: diff.c:4999
#, 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:4978
+#: diff.c:5020
#, c-format
msgid "bad --color-moved argument: %s"
msgstr "đối số --color-moved sai: %s"
-#: diff.c:4997
+#: diff.c:5039
#, c-format
msgid "invalid mode '%s' in --color-moved-ws"
msgstr "chế độ “%s†không hợp lệ trong --color-moved-ws"
-#: diff.c:5037
+#: diff.c:5079
msgid ""
"option diff-algorithm accepts \"myers\", \"minimal\", \"patience\" and "
"\"histogram\""
@@ -3449,155 +3547,155 @@ msgstr ""
"tùy chá»n diff-algorithm chấp nhận \"myers\", \"minimal\", \"patience\" và "
"\"histogram\""
-#: diff.c:5073 diff.c:5093
+#: diff.c:5115 diff.c:5135
#, c-format
msgid "invalid argument to %s"
msgstr "tham số cho %s không hợp lệ"
-#: diff.c:5197
+#: diff.c:5239
#, c-format
msgid "invalid regex given to -I: '%s'"
msgstr "Ä‘Æ°a cho -I biểu thức chính quy không hợp lệ: “%sâ€"
-#: diff.c:5246
+#: diff.c:5288
#, 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:5302
+#: diff.c:5344
#, c-format
msgid "bad --word-diff argument: %s"
msgstr "đối số --word-diff sai: %s"
-#: diff.c:5338
+#: diff.c:5380
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:5340 diff.c:5346
+#: diff.c:5382 diff.c:5388
msgid "generate patch"
msgstr "tạo miếng vá"
-#: diff.c:5343 builtin/log.c:179
+#: diff.c:5385 builtin/log.c:180
msgid "suppress diff output"
msgstr "chặn má»i kết xuất từ diff"
-#: diff.c:5348 diff.c:5462 diff.c:5469
+#: diff.c:5390 diff.c:5504 diff.c:5511
msgid "<n>"
msgstr "<n>"
-#: diff.c:5349 diff.c:5352
+#: diff.c:5391 diff.c:5394
msgid "generate diffs with <n> lines context"
msgstr "tạo khác biệt với <n> dòng ngữ cảnh"
-#: diff.c:5354
+#: diff.c:5396
msgid "generate the diff in raw format"
msgstr "tạo khác biệt ở định dạng thô"
-#: diff.c:5357
+#: diff.c:5399
msgid "synonym for '-p --raw'"
msgstr "đồng nghÄ©a vá»›i “-p --rawâ€"
-#: diff.c:5361
+#: diff.c:5403
msgid "synonym for '-p --stat'"
msgstr "đồng nghÄ©a vá»›i “-p --statâ€"
-#: diff.c:5365
+#: diff.c:5407
msgid "machine friendly --stat"
msgstr "--stat thuận tiện cho máy Ä‘á»c"
-#: diff.c:5368
+#: diff.c:5410
msgid "output only the last line of --stat"
msgstr "chỉ xuất những dòng cuối của --stat"
-#: diff.c:5370 diff.c:5378
+#: diff.c:5412 diff.c:5420
msgid "<param1,param2>..."
msgstr "<tham_số_1,tham_số_2>…"
-#: diff.c:5371
+#: diff.c:5413
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:5375
+#: diff.c:5417
msgid "synonym for --dirstat=cumulative"
msgstr "đồng nghĩa với --dirstat=cumulative"
-#: diff.c:5379
+#: diff.c:5421
msgid "synonym for --dirstat=files,param1,param2..."
msgstr "đồng nghĩa với --dirstat=files,param1,param2…"
-#: diff.c:5383
+#: diff.c:5425
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:5386
+#: diff.c:5428
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:5389
+#: diff.c:5431
msgid "show only names of changed files"
msgstr "chỉ hiển thị tên của các tập tin đổi"
-#: diff.c:5392
+#: diff.c:5434
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:5394
+#: diff.c:5436
msgid "<width>[,<name-width>[,<count>]]"
msgstr "<rộng>[,<name-width>[,<số-lượng>]]"
-#: diff.c:5395
+#: diff.c:5437
msgid "generate diffstat"
msgstr "tạo diffstat"
-#: diff.c:5397 diff.c:5400 diff.c:5403
+#: diff.c:5439 diff.c:5442 diff.c:5445
msgid "<width>"
msgstr "<rá»™ng>"
-#: diff.c:5398
+#: diff.c:5440
msgid "generate diffstat with a given width"
msgstr "tạo diffstat với độ rộng đã cho"
-#: diff.c:5401
+#: diff.c:5443
msgid "generate diffstat with a given name width"
msgstr "tạo diffstat với tên độ rộng đã cho"
-#: diff.c:5404
+#: diff.c:5446
msgid "generate diffstat with a given graph width"
msgstr "tạo diffstat với độ rộng đồ thị đã cho"
-#: diff.c:5406
+#: diff.c:5448
msgid "<count>"
msgstr "<số_lượng>"
-#: diff.c:5407
+#: diff.c:5449
msgid "generate diffstat with limited lines"
msgstr "tạo diffstat với các dòng bị giới hạn"
-#: diff.c:5410
+#: diff.c:5452
msgid "generate compact summary in diffstat"
msgstr "tạo tổng hợp xúc tích trong diffstat"
-#: diff.c:5413
+#: diff.c:5455
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:5416
+#: diff.c:5458
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:5418
+#: diff.c:5460
msgid "show colored diff"
msgstr "hiển thị thay đổi được tô màu"
-#: diff.c:5419
+#: diff.c:5461
msgid "<kind>"
msgstr "<kiểu>"
-#: diff.c:5420
+#: diff.c:5462
msgid ""
"highlight whitespace errors in the 'context', 'old' or 'new' lines in the "
"diff"
@@ -3605,7 +3703,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:5423
+#: diff.c:5465
msgid ""
"do not munge pathnames and use NULs as output field terminators in --raw or "
"--numstat"
@@ -3613,89 +3711,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:5426 diff.c:5429 diff.c:5432 diff.c:5541
+#: diff.c:5468 diff.c:5471 diff.c:5474 diff.c:5583
msgid "<prefix>"
msgstr "<tiá»n_tố>"
-#: diff.c:5427
+#: diff.c:5469
msgid "show the given source prefix instead of \"a/\""
msgstr "hiển thị tiá»n tố nguồn đã cho thay cho \"a/\""
-#: diff.c:5430
+#: diff.c:5472
msgid "show the given destination prefix instead of \"b/\""
msgstr "hiển thị tiá»n tố đích đã cho thay cho \"b/\""
-#: diff.c:5433
+#: diff.c:5475
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:5436
+#: diff.c:5478
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:5439
+#: diff.c:5481
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:5443 diff.c:5448 diff.c:5453
+#: diff.c:5485 diff.c:5490 diff.c:5495
msgid "<char>"
msgstr "<ký_tự>"
-#: diff.c:5444
+#: diff.c:5486
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:5449
+#: diff.c:5491
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:5454
+#: diff.c:5496
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:5457
+#: diff.c:5499
msgid "Diff rename options"
msgstr "Tùy chá»n khác biệt đổi tên"
-#: diff.c:5458
+#: diff.c:5500
msgid "<n>[/<m>]"
msgstr "<n>[/<m>]"
-#: diff.c:5459
+#: diff.c:5501
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:5463
+#: diff.c:5505
msgid "detect renames"
msgstr "dò tìm các tên thay đổi"
-#: diff.c:5467
+#: diff.c:5509
msgid "omit the preimage for deletes"
msgstr "bá» qua preimage (tiá»n ảnh??) cho các việc xóa"
-#: diff.c:5470
+#: diff.c:5512
msgid "detect copies"
msgstr "dò bản sao"
-#: diff.c:5474
+#: diff.c:5516
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:5476
+#: diff.c:5518
msgid "disable rename detection"
msgstr "tắt dò tìm đổi tên"
-#: diff.c:5479
+#: diff.c:5521
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:5481
+#: diff.c:5523
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:5484
+#: diff.c:5526
msgid ""
"prevent rename/copy detection if the number of rename/copy targets exceeds "
"given limit"
@@ -3703,160 +3801,160 @@ 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:5486
+#: diff.c:5528
msgid "Diff algorithm options"
msgstr "Tùy chá»n thuật toán khác biệt"
-#: diff.c:5488
+#: diff.c:5530
msgid "produce the smallest possible diff"
msgstr "sản sinh khác biệt ít nhất có thể"
-#: diff.c:5491
+#: diff.c:5533
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:5494
+#: diff.c:5536
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:5497
+#: diff.c:5539
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:5500
+#: diff.c:5542
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:5503
+#: diff.c:5545
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:5505 diff.c:5527 diff.c:5530 diff.c:5575
+#: diff.c:5547 diff.c:5569 diff.c:5572 diff.c:5617
msgid "<regex>"
msgstr "<regex>"
-#: diff.c:5506
+#: diff.c:5548
msgid "ignore changes whose all lines match <regex>"
msgstr "bỠqua các thay đổi có tất cả các dòng khớp <regex>"
-#: diff.c:5509
+#: diff.c:5551
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:5512
+#: diff.c:5554
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:5516
+#: diff.c:5558
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:5518
+#: diff.c:5560
msgid "<algorithm>"
msgstr "<thuật toán>"
-#: diff.c:5519
+#: diff.c:5561
msgid "choose a diff algorithm"
msgstr "chá»n má»™t thuật toán khác biệt"
-#: diff.c:5521
+#: diff.c:5563
msgid "<text>"
msgstr "<văn bản>"
-#: diff.c:5522
+#: diff.c:5564
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:5524 diff.c:5533 diff.c:5536
+#: diff.c:5566 diff.c:5575 diff.c:5578
msgid "<mode>"
msgstr "<chế độ>"
-#: diff.c:5525
+#: diff.c:5567
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:5528
+#: diff.c:5570
msgid "use <regex> to decide what a word is"
msgstr "dùng <regex> để quyết định từ là cái gì"
-#: diff.c:5531
+#: diff.c:5573
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:5534
+#: diff.c:5576
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:5537
+#: diff.c:5579
msgid "how white spaces are ignored in --color-moved"
msgstr "cách bỠqua khoảng trắng trong --color-moved"
-#: diff.c:5540
+#: diff.c:5582
msgid "Other diff options"
msgstr "Các tùy chá»n khác biệt khác"
-#: diff.c:5542
+#: diff.c:5584
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:5546
+#: diff.c:5588
msgid "treat all files as text"
msgstr "coi má»i tập tin là dạng văn bản thÆ°á»ng"
-#: diff.c:5548
+#: diff.c:5590
msgid "swap two inputs, reverse the diff"
msgstr "tráo đổi hai đầu vào, đảo ngược khác biệt"
-#: diff.c:5550
+#: diff.c:5592
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:5552
+#: diff.c:5594
msgid "disable all output of the program"
msgstr "tắt má»i kết xuất của chÆ°Æ¡ng trình"
-#: diff.c:5554
+#: diff.c:5596
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:5556
+#: diff.c:5598
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:5558
+#: diff.c:5600
msgid "<when>"
msgstr "<khi>"
-#: diff.c:5559
+#: diff.c:5601
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:5562
+#: diff.c:5604
msgid "<format>"
msgstr "<định dạng>"
-#: diff.c:5563
+#: diff.c:5605
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:5567
+#: diff.c:5609
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:5570
+#: diff.c:5612
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:5572
+#: diff.c:5614
msgid "<string>"
msgstr "<chuá»—i>"
-#: diff.c:5573
+#: diff.c:5615
msgid ""
"look for differences that change the number of occurrences of the specified "
"string"
@@ -3864,7 +3962,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:5576
+#: diff.c:5618
msgid ""
"look for differences that change the number of occurrences of the specified "
"regex"
@@ -3872,35 +3970,35 @@ 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:5579
+#: diff.c:5621
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:5582
+#: diff.c:5624
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:5585
+#: diff.c:5627
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:5586 diff.c:5589
+#: diff.c:5628 diff.c:5631
msgid "<path>"
msgstr "<Ä‘Æ°á»ng-dẫn>"
-#: diff.c:5587
+#: diff.c:5629
msgid "show the change in the specified path first"
msgstr "hiển thị các thay đổi trong Ä‘Æ°á»ng dẫn đã cho đầu tiên"
-#: diff.c:5590
+#: diff.c:5632
msgid "skip the output to the specified path"
msgstr "bá» qua đầu ra đến Ä‘Æ°á»ng dẫn đã cho"
-#: diff.c:5592
+#: diff.c:5634
msgid "<object-id>"
msgstr "<mã-số-đối-tượng>"
-#: diff.c:5593
+#: diff.c:5635
msgid ""
"look for differences that change the number of occurrences of the specified "
"object"
@@ -3908,32 +4006,32 @@ 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:5595
+#: diff.c:5637
msgid "[(A|C|D|M|R|T|U|X|B)...[*]]"
msgstr "[(A|C|D|M|R|T|U|X|B)…[*]]"
-#: diff.c:5596
+#: diff.c:5638
msgid "select files by diff type"
msgstr "chá»n các tập tin theo kiểu khác biệt"
-#: diff.c:5598
+#: diff.c:5640
msgid "<file>"
msgstr "<tập_tin>"
-#: diff.c:5599
-msgid "Output to a specific file"
-msgstr "Xuất ra một tập tin cụ thể"
+#: diff.c:5641
+msgid "output to a specific file"
+msgstr "xuất ra một tập tin cụ thể"
-#: diff.c:6257
+#: diff.c:6321
msgid "exhaustive rename detection was skipped due to too many files."
msgstr "nhận thấy đổi tên toàn diện đã bị bá» qua bởi có quá nhiá»u tập tin."
-#: diff.c:6260
+#: diff.c:6324
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:6263
+#: diff.c:6327
#, c-format
msgid ""
"you may want to set your %s variable to at least %d and retry the command."
@@ -3984,20 +4082,20 @@ msgstr "vô hiệu khớp mẫu nón"
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:2418
+#: dir.c:2419
#, c-format
msgid "could not open directory '%s'"
msgstr "không thể mở thÆ° mục “%sâ€"
-#: dir.c:2720
+#: dir.c:2721
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:2844
+#: dir.c:2846
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:3112
+#: dir.c:3119
msgid ""
"No directory name could be guessed.\n"
"Please specify a directory on the command line"
@@ -4005,17 +4103,17 @@ msgstr ""
"Không đoán được thư mục tên là gì.\n"
"Vui lòng chỉ định tên một thư mục trên dòng lệnh"
-#: dir.c:3800
+#: dir.c:3807
#, 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:3847 dir.c:3852
+#: dir.c:3854 dir.c:3859
#, c-format
msgid "could not create directories for %s"
msgstr "không thể tạo thư mục cho %s"
-#: dir.c:3881
+#: dir.c:3888
#, 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â€"
@@ -4034,7 +4132,7 @@ msgstr "Ná»™i dung lá»c"
msgid "could not stat file '%s'"
msgstr "không thể lấy thống kê tập tin “%sâ€"
-#: environment.c:145
+#: environment.c:147
#, c-format
msgid "bad git namespace path \"%s\""
msgstr "Ä‘Æ°á»ng dẫn không gian tên git \"%s\" sai"
@@ -4065,248 +4163,275 @@ msgstr "git fetch-pack: cần ACK/NAK, nhÆ°ng lại nhận được “%sâ€"
msgid "unable to write to remote"
msgstr "không thể ghi lên máy phục vụ"
-#: fetch-pack.c:395 fetch-pack.c:1439
+#: fetch-pack.c:397 fetch-pack.c:1460
#, c-format
msgid "invalid shallow line: %s"
msgstr "dòng shallow không hợp lệ: %s"
-#: fetch-pack.c:401 fetch-pack.c:1445
+#: fetch-pack.c:403 fetch-pack.c:1466
#, c-format
msgid "invalid unshallow line: %s"
msgstr "dòng unshallow không hợp lệ: %s"
-#: fetch-pack.c:403 fetch-pack.c:1447
+#: fetch-pack.c:405 fetch-pack.c:1468
#, c-format
msgid "object not found: %s"
msgstr "không tìm thấy đối tượng: %s"
-#: fetch-pack.c:406 fetch-pack.c:1450
+#: fetch-pack.c:408 fetch-pack.c:1471
#, c-format
msgid "error in object: %s"
msgstr "lỗi trong đối tượng: %s"
-#: fetch-pack.c:408 fetch-pack.c:1452
+#: fetch-pack.c:410 fetch-pack.c:1473
#, c-format
msgid "no shallow found: %s"
msgstr "không tìm shallow nào: %s"
-#: fetch-pack.c:411 fetch-pack.c:1456
+#: fetch-pack.c:413 fetch-pack.c:1477
#, c-format
msgid "expected shallow/unshallow, got %s"
msgstr "cần shallow/unshallow, nhưng lại nhận được %s"
-#: fetch-pack.c:451
+#: fetch-pack.c:453
#, c-format
msgid "got %s %d %s"
msgstr "nhận %s %d - %s"
-#: fetch-pack.c:468
+#: fetch-pack.c:470
#, c-format
msgid "invalid commit %s"
msgstr "lần chuyển giao %s không hợp lệ"
-#: fetch-pack.c:499
+#: fetch-pack.c:501
msgid "giving up"
msgstr "chịu thua"
-#: fetch-pack.c:512 progress.c:339
+#: fetch-pack.c:514 progress.h:25
msgid "done"
msgstr "xong"
-#: fetch-pack.c:524
+#: fetch-pack.c:526
#, c-format
msgid "got %s (%d) %s"
msgstr "nhận %s (%d) %s"
-#: fetch-pack.c:560
+#: fetch-pack.c:562
#, c-format
msgid "Marking %s as complete"
msgstr "Äánh dấu %s là đã hoàn thành"
-#: fetch-pack.c:775
+#: fetch-pack.c:784
#, c-format
msgid "already have %s (%s)"
msgstr "đã sẵn có %s (%s)"
-#: fetch-pack.c:861
+#: fetch-pack.c:870
msgid "fetch-pack: unable to fork off sideband demultiplexer"
msgstr "fetch-pack: không thể rẽ nhánh sideband demultiplexer"
-#: fetch-pack.c:869
+#: fetch-pack.c:878
msgid "protocol error: bad pack header"
msgstr "lỗi giao thức: phần đầu gói bị sai"
-#: fetch-pack.c:965
+#: fetch-pack.c:974
#, c-format
msgid "fetch-pack: unable to fork off %s"
msgstr "fetch-pack: không thể rẽ nhánh %s"
-#: fetch-pack.c:971
+#: fetch-pack.c:980
msgid "fetch-pack: invalid index-pack output"
msgstr "fetch-pack: kết xuất index-pack không hợp lệ"
-#: fetch-pack.c:988
+#: fetch-pack.c:997
#, c-format
msgid "%s failed"
msgstr "%s gặp lỗi"
-#: fetch-pack.c:990
+#: fetch-pack.c:999
msgid "error in sideband demultiplexer"
msgstr "có lỗi trong sideband demultiplexer"
-#: fetch-pack.c:1035
+#: fetch-pack.c:1048
#, c-format
msgid "Server version is %.*s"
msgstr "Phiên bản máy chủ là %.*s"
-#: fetch-pack.c:1043 fetch-pack.c:1049 fetch-pack.c:1052 fetch-pack.c:1058
-#: fetch-pack.c:1062 fetch-pack.c:1066 fetch-pack.c:1070 fetch-pack.c:1074
-#: fetch-pack.c:1078 fetch-pack.c:1082 fetch-pack.c:1086 fetch-pack.c:1090
-#: fetch-pack.c:1096 fetch-pack.c:1102 fetch-pack.c:1107 fetch-pack.c:1112
+#: fetch-pack.c:1056 fetch-pack.c:1062 fetch-pack.c:1065 fetch-pack.c:1071
+#: fetch-pack.c:1075 fetch-pack.c:1079 fetch-pack.c:1083 fetch-pack.c:1087
+#: fetch-pack.c:1091 fetch-pack.c:1095 fetch-pack.c:1099 fetch-pack.c:1103
+#: fetch-pack.c:1109 fetch-pack.c:1115 fetch-pack.c:1120 fetch-pack.c:1125
#, c-format
msgid "Server supports %s"
msgstr "Máy chủ hỗ trợ %s"
-#: fetch-pack.c:1045
+#: fetch-pack.c:1058
msgid "Server does not support shallow clients"
msgstr "Máy chủ không hỗ trợ máy khách shallow"
-#: fetch-pack.c:1105
+#: fetch-pack.c:1118
msgid "Server does not support --shallow-since"
msgstr "Máy chủ không hỗ trợ --shallow-since"
-#: fetch-pack.c:1110
+#: fetch-pack.c:1123
msgid "Server does not support --shallow-exclude"
msgstr "Máy chủ không hỗ trợ --shallow-exclude"
-#: fetch-pack.c:1114
+#: fetch-pack.c:1127
msgid "Server does not support --deepen"
msgstr "Máy chủ không hỗ trợ --deepen"
-#: fetch-pack.c:1116
+#: fetch-pack.c:1129
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:1129
+#: fetch-pack.c:1142
msgid "no common commits"
msgstr "không có lần chuyển giao chung nào"
-#: fetch-pack.c:1138 fetch-pack.c:1485 builtin/clone.c:1130
+#: fetch-pack.c:1151 fetch-pack.c:1506 builtin/clone.c:1166
msgid "source repository is shallow, reject to clone."
msgstr "kho nguồn là nông, nên bỠtừ chối nhân bản."
-#: fetch-pack.c:1144 fetch-pack.c:1681
+#: fetch-pack.c:1157 fetch-pack.c:1705
msgid "git fetch-pack: fetch failed."
msgstr "git fetch-pack: fetch gặp lỗi."
-#: fetch-pack.c:1258
+#: fetch-pack.c:1271
#, 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:1262
+#: fetch-pack.c:1275
#, 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:1295
+#: fetch-pack.c:1308
msgid "Server does not support shallow requests"
msgstr "Máy chủ không hỗ trợ yêu cầu shallow"
-#: fetch-pack.c:1302
+#: fetch-pack.c:1315
msgid "Server supports filter"
msgstr "Máy chủ há»— trợ bá»™ lá»c"
-#: fetch-pack.c:1345 fetch-pack.c:2063
+#: fetch-pack.c:1358 fetch-pack.c:2087
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:1363
+#: fetch-pack.c:1376
#, 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:1369
+#: fetch-pack.c:1382
#, c-format
msgid "expected '%s', received '%s'"
msgstr "cần “%sâ€, nhÆ°ng lại nhận “%sâ€"
-#: fetch-pack.c:1403
+#: fetch-pack.c:1416
#, c-format
msgid "unexpected acknowledgment line: '%s'"
msgstr "gặp dòng không được thừa nhận: “%sâ€"
-#: fetch-pack.c:1408
+#: fetch-pack.c:1421
#, 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:1418
-msgid "expected packfile to be sent after 'ready'"
-msgstr "cần tập tin gói để gá»­i sau “readyâ€"
+#. TRANSLATORS: The parameter will be 'ready', a protocol
+#. keyword.
+#.
+#: fetch-pack.c:1435
+#, c-format
+msgid "expected packfile to be sent after '%s'"
+msgstr "cần tập tin gói để gá»­i sau “%sâ€"
-#: fetch-pack.c:1420
-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â€"
+#. TRANSLATORS: The parameter will be 'ready', a protocol
+#. keyword.
+#.
+#: fetch-pack.c:1441
+#, c-format
+msgid "expected no other sections to be sent after no '%s'"
+msgstr "không cần thêm phần nào để gá»­i sau không “%sâ€"
-#: fetch-pack.c:1461
+#: fetch-pack.c:1482
#, c-format
msgid "error processing shallow info: %d"
msgstr "lỗi xử lý thông tin shallow: %d"
-#: fetch-pack.c:1510
+#: fetch-pack.c:1531
#, c-format
msgid "expected wanted-ref, got '%s'"
msgstr "cần wanted-ref, nhÆ°ng lại nhận được “%sâ€"
-#: fetch-pack.c:1515
+#: fetch-pack.c:1536
#, c-format
msgid "unexpected wanted-ref: '%s'"
msgstr "wanted-ref không được mong đợi: “%sâ€"
-#: fetch-pack.c:1520
+#: fetch-pack.c:1541
#, c-format
msgid "error processing wanted refs: %d"
msgstr "lỗi khi xử lý wanted refs: %d"
-#: fetch-pack.c:1550
+#: fetch-pack.c:1571
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:1959
+#: fetch-pack.c:1983
msgid "no matching remote head"
msgstr "không khớp phần đầu máy chủ"
-#: fetch-pack.c:1982 builtin/clone.c:581
+#: fetch-pack.c:2006 builtin/clone.c:587
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:2085
+#: fetch-pack.c:2109
msgid "unexpected 'ready' from remote"
msgstr "gặp “ready†đột xuất từ máy chủ"
-#: fetch-pack.c:2108
+#: fetch-pack.c:2132
#, 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:2111
+#: fetch-pack.c:2135
#, c-format
msgid "Server does not allow request for unadvertised object %s"
msgstr ""
"Máy phục vụ không cho phép yêu cầu cho đối tượng không được báo trước %s"
-#: gpg-interface.c:329 gpg-interface.c:457 gpg-interface.c:974
-#: gpg-interface.c:990
+#: fsmonitor-ipc.c:119
+#, c-format
+msgid "fsmonitor_ipc__send_query: invalid path '%s'"
+msgstr "fsmonitor_ipc__send_query: Ä‘Æ°á»ng dẫn không hợp lệ '%s'"
+
+#: fsmonitor-ipc.c:125
+#, c-format
+msgid "fsmonitor_ipc__send_query: unspecified error on '%s'"
+msgstr "fsmonitor_ipc__send_query: lỗi chưa rõ trên '%s'"
+
+#: fsmonitor-ipc.c:155
+msgid "fsmonitor--daemon is not running"
+msgstr "fsmonitor--daemon hiện tại chưa chạy"
+
+#: fsmonitor-ipc.c:164
+#, c-format
+msgid "could not send '%s' command to fsmonitor--daemon"
+msgstr "không thể gửi lệnh '%s' đến fsmonitor--daemon"
+
+#: gpg-interface.c:329 gpg-interface.c:456 gpg-interface.c:995
+#: gpg-interface.c:1011
msgid "could not create temporary file"
msgstr "không thể tạo tập tin tạm thá»i"
-#: gpg-interface.c:332 gpg-interface.c:460
+#: gpg-interface.c:332 gpg-interface.c:459
#, c-format
msgid "failed writing detached signature to '%s'"
msgstr "gặp lá»—i khi ghi chữ ký đính kèm vào “%sâ€"
-#: gpg-interface.c:451
+#: gpg-interface.c:450
msgid ""
"gpg.ssh.allowedSignersFile needs to be configured and exist for ssh "
"signature verification"
@@ -4314,7 +4439,7 @@ msgstr ""
"gpg.ssh.allowedSignersFile cần được cấu hình và tồn tại để xác minh chữ ký "
"ssh"
-#: gpg-interface.c:480
+#: gpg-interface.c:479
msgid ""
"ssh-keygen -Y find-principals/verify is needed for ssh signature "
"verification (available in openssh version 8.2p1+)"
@@ -4322,57 +4447,57 @@ msgstr ""
"ssh-keygen -Y find-principals/verify là cần thiết để xác minh chữ ký ssh (có "
"sẵn trong phiên bản openssh 8.2p1+)"
-#: gpg-interface.c:536
+#: gpg-interface.c:550
#, c-format
msgid "ssh signing revocation file configured but not found: %s"
msgstr "tập tin thu hồi chữ ký ssh đã được cấu hình nhưng không tìm thấy: %s"
-#: gpg-interface.c:624
+#: gpg-interface.c:638
#, c-format
msgid "bad/incompatible signature '%s'"
msgstr "chữ sai / không tÆ°Æ¡ng thích “%sâ€"
-#: gpg-interface.c:801 gpg-interface.c:806
+#: gpg-interface.c:815 gpg-interface.c:820
#, c-format
msgid "failed to get the ssh fingerprint for key '%s'"
msgstr "gặp lá»—i khi lấy dấu vân tay ssh cho khóa “%sâ€"
-#: gpg-interface.c:829
+#: gpg-interface.c:843
msgid ""
"either user.signingkey or gpg.ssh.defaultKeyCommand needs to be configured"
msgstr ""
"hoặc là user.signingkey hoặc gpg.ssh.defaultKeyCommand cần được cấu hình"
-#: gpg-interface.c:851
+#: gpg-interface.c:865
#, c-format
msgid "gpg.ssh.defaultKeyCommand succeeded but returned no keys: %s %s"
msgstr ""
"gpg.ssh.defaultKeyCommand thành công nhưng lại không trả vỠkhóa nào: %s %s"
-#: gpg-interface.c:857
+#: gpg-interface.c:871
#, c-format
msgid "gpg.ssh.defaultKeyCommand failed: %s %s"
msgstr "gpg.ssh.defaultKeyCommand gặp lỗi: %s %s"
-#: gpg-interface.c:945
+#: gpg-interface.c:966
msgid "gpg failed to sign the data"
msgstr "gpg gặp lỗi khi ký dữ liệu"
-#: gpg-interface.c:967
+#: gpg-interface.c:988
msgid "user.signingkey needs to be set for ssh signing"
msgstr "user.signingkey cần được đặt cho ký ssh"
-#: gpg-interface.c:978
+#: gpg-interface.c:999
#, c-format
msgid "failed writing ssh signing key to '%s'"
msgstr "gặp lá»—i khi ghi chìa khóa ký ssh vào “%sâ€"
-#: gpg-interface.c:996
+#: gpg-interface.c:1017
#, c-format
msgid "failed writing ssh signing key buffer to '%s'"
msgstr "gặp lá»—i khi ghi bá»™ đệm chìa khóa ký ssh vào “%sâ€"
-#: gpg-interface.c:1014
+#: gpg-interface.c:1035
msgid ""
"ssh-keygen -Y sign is needed for ssh signing (available in openssh version "
"8.2p1+)"
@@ -4380,7 +4505,7 @@ msgstr ""
"ssh-keygen -Y sign là cần thiết cho ký ssh (sẵn có trong openssh phiên bản "
"8.2p1+)"
-#: gpg-interface.c:1026
+#: gpg-interface.c:1047
#, c-format
msgid "failed reading ssh signing data buffer from '%s'"
msgstr "gặp lá»—i khi Ä‘á»c bá»™ đệm dữ liệu chữ ký ssh từ “%sâ€"
@@ -4390,7 +4515,7 @@ msgstr "gặp lá»—i khi Ä‘á»c bá»™ đệm dữ liệu chữ ký ssh từ “%sâ
msgid "ignored invalid color '%.*s' in log.graphColors"
msgstr "bỠqua màu không hợp lệ “%.*s†trong log.graphColors"
-#: grep.c:531
+#: grep.c:446
msgid ""
"given pattern contains NULL byte (via -f <file>). This is only supported "
"with -P under PCRE v2"
@@ -4398,109 +4523,109 @@ msgstr ""
"mẫu đã cho có chứa NULL byte (qua -f <file>). Äiá»u này chỉ được há»— trợ vá»›i -"
"P dÆ°á»›i PCRE v2"
-#: grep.c:1942
+#: grep.c:1859
#, c-format
msgid "'%s': unable to read %s"
msgstr "“%sâ€: không thể Ä‘á»c %s"
-#: grep.c:1959 setup.c:177 builtin/clone.c:302 builtin/diff.c:90
+#: grep.c:1876 setup.c:178 builtin/clone.c:308 builtin/diff.c:90
#: builtin/rm.c:136
#, c-format
msgid "failed to stat '%s'"
msgstr "gặp lá»—i khi lấy thống kê vỠ“%sâ€"
-#: grep.c:1970
+#: grep.c:1887
#, c-format
msgid "'%s': short read"
msgstr "“%sâ€: Ä‘á»c ngắn"
-#: help.c:24
+#: help.c:25
msgid "start a working area (see also: git help tutorial)"
msgstr "bắt đầu một vùng làm việc (xem thêm: git help tutorial)"
-#: help.c:25
+#: help.c:26
msgid "work on the current change (see also: git help everyday)"
msgstr "làm việc trên thay đổi hiện tại (xem thêm: git help everyday)"
-#: help.c:26
+#: help.c:27
msgid "examine the history and state (see also: git help revisions)"
msgstr "xem xét lịch sử tình trạng (xem thêm: git help revisions)"
-#: help.c:27
+#: help.c:28
msgid "grow, mark and tweak your common history"
msgstr "thêm, ghi dấu và chỉnh lịch sử chung của bạn"
-#: help.c:28
+#: help.c:29
msgid "collaborate (see also: git help workflows)"
msgstr "làm việc nhóm (xem thêm: git help workflows)"
-#: help.c:32
+#: help.c:33
msgid "Main Porcelain Commands"
msgstr "Các lệnh Porcelain chính"
-#: help.c:33
+#: help.c:34
msgid "Ancillary Commands / Manipulators"
msgstr "Lệnh/thao tác thứ cấp"
-#: help.c:34
+#: help.c:35
msgid "Ancillary Commands / Interrogators"
msgstr "Lệnh/bá»™ há»i thứ cấp"
-#: help.c:35
+#: help.c:36
msgid "Interacting with Others"
msgstr "Tương tác với những cái khác"
-#: help.c:36
+#: help.c:37
msgid "Low-level Commands / Manipulators"
msgstr "Lệnh/thao tác ở mức thấp"
-#: help.c:37
+#: help.c:38
msgid "Low-level Commands / Interrogators"
msgstr "Lệnh/bá»™ há»i ở mức thấp"
-#: help.c:38
+#: help.c:39
msgid "Low-level Commands / Syncing Repositories"
msgstr "Lệnh/Äồng bá»™ kho ở mức thấp"
-#: help.c:39
+#: help.c:40
msgid "Low-level Commands / Internal Helpers"
msgstr "Lệnh/Hỗ trợ nội tại ở mức thấp"
-#: help.c:313
+#: help.c:316
#, c-format
msgid "available git commands in '%s'"
msgstr "các lệnh git sẵn có trong thÆ° mục “%sâ€:"
-#: help.c:320
+#: help.c:323
msgid "git commands available from elsewhere on your $PATH"
msgstr "các lệnh git sẵn có từ một nơi khác trong $PATH của bạn"
-#: help.c:329
+#: help.c:332
msgid "These are common Git commands used in various situations:"
msgstr "Có các lệnh Git chung được sử dụng trong các tình huống khác nhau:"
-#: help.c:378 git.c:100
+#: help.c:382 git.c:100
#, c-format
msgid "unsupported command listing type '%s'"
msgstr "không há»— trợ liệt kê lệnh kiểu “%sâ€"
-#: help.c:418
+#: help.c:422
msgid "The Git concept guides are:"
msgstr "Các chỉ dẫn khái niệm vỠGit là:"
-#: help.c:442
-msgid "See 'git help <command>' to read about a specific subcommand"
-msgstr "Xem “git help <lệnh>†để Ä‘á»c các đặc tả của lệnh con"
-
-#: help.c:447
+#: help.c:446
msgid "External commands"
msgstr "Các lệnh bên ngoài"
-#: help.c:462
+#: help.c:468
msgid "Command aliases"
msgstr "Các bí danh lệnh"
-#: help.c:543
+#: help.c:486
+msgid "See 'git help <command>' to read about a specific subcommand"
+msgstr "Xem “git help <lệnh>†để Ä‘á»c các đặc tả của lệnh con"
+
+#: help.c:563
#, c-format
msgid ""
"'%s' appears to be a git command, but we were not\n"
@@ -4509,36 +4634,36 @@ msgstr ""
"“%s†trông như là một lệnh git, nhưng chúng tôi không\n"
"thể thá»±c thi nó. Có lẽ là lệnh git-%s đã bị há»ng?"
-#: help.c:565 help.c:662
+#: help.c:585 help.c:682
#, c-format
msgid "git: '%s' is not a git command. See 'git --help'."
msgstr "git: “%s†không phải là má»™t lệnh của git. Xem “git --helpâ€."
-#: help.c:613
+#: help.c:633
msgid "Uh oh. Your system reports no Git commands at all."
msgstr "á»i chà. Hệ thống của bạn báo rằng chẳng có lệnh Git nào cả."
-#: help.c:635
+#: help.c:655
#, c-format
msgid "WARNING: You called a Git command named '%s', which does not exist."
msgstr "CẢNH BÃO: Bạn đã gá»i lệnh Git có tên “%sâ€, mà nó lại không có sẵn."
-#: help.c:640
+#: help.c:660
#, c-format
msgid "Continuing under the assumption that you meant '%s'."
msgstr "Tiếp tục và coi rằng ý bạn là “%sâ€."
-#: help.c:646
+#: help.c:666
#, c-format
msgid "Run '%s' instead [y/N]? "
msgstr "Chạy “%s†để thay thế? (y/N)? "
-#: help.c:654
+#: help.c:674
#, c-format
msgid "Continuing in %0.1f seconds, assuming that you meant '%s'."
msgstr "Tiếp tục trong %0.1f giây,và coi rằng ý bạn là “%sâ€."
-#: help.c:666
+#: help.c:686
msgid ""
"\n"
"The most similar command is"
@@ -4549,16 +4674,16 @@ msgstr[0] ""
"\n"
"Những lệnh giống nhất là"
-#: help.c:706
+#: help.c:729
msgid "git version [<options>]"
msgstr "git version [<các tùy chá»n>]"
-#: help.c:761
+#: help.c:784
#, c-format
msgid "%s: %s - %s"
msgstr "%s: %s - %s"
-#: help.c:765
+#: help.c:788
msgid ""
"\n"
"Did you mean this?"
@@ -4569,7 +4694,7 @@ msgstr[0] ""
"\n"
"Có phải ý bạn là một trong số những cái này không?"
-#: hook.c:27
+#: hook.c:28
#, c-format
msgid ""
"The '%s' hook was ignored because it's not set as executable.\n"
@@ -4578,15 +4703,20 @@ msgstr ""
"Móc “%s†bị bỠqua bởi vì nó không thể đặt là thực thi được.\n"
"Bạn có thể tắt cảnh báo này bằng “git config advice.ignoredHook false“."
-#: ident.c:353
+#: hook.c:87
+#, c-format
+msgid "Couldn't start hook '%s'\n"
+msgstr "Không thể khởi chạy móc “%sâ€\n"
+
+#: ident.c:354
msgid "Author identity unknown\n"
msgstr "Chưa biết định danh tác giả\n"
-#: ident.c:356
+#: ident.c:357
msgid "Committer identity unknown\n"
msgstr "ChÆ°a biết định danh ngÆ°á»i chuyển giao\n"
-#: ident.c:362
+#: ident.c:363
msgid ""
"\n"
"*** Please tell me who you are.\n"
@@ -4612,71 +4742,71 @@ msgstr ""
"Bá» tùy chá»n --global nếu chỉ định danh riêng cho kho này.\n"
"\n"
-#: ident.c:397
+#: ident.c:398
msgid "no email was given and auto-detection is disabled"
msgstr "không đưa ra địa chỉ thư điện tử và auto-detection bị tắt"
-#: ident.c:402
+#: ident.c:403
#, c-format
msgid "unable to auto-detect email address (got '%s')"
msgstr "không thể tá»± dò tìm địa chỉ thÆ° Ä‘iện tá»­ (nhận “%sâ€)"
-#: ident.c:419
+#: ident.c:420
msgid "no name was given and auto-detection is disabled"
msgstr "chưa chỉ ra tên và tự-động-dò-tìm bị tắt"
-#: ident.c:425
+#: ident.c:426
#, c-format
msgid "unable to auto-detect name (got '%s')"
msgstr "không thể dò-tìm-tá»± Ä‘á»™ng tên (đã nhận “%sâ€)"
-#: ident.c:433
+#: ident.c:434
#, c-format
msgid "empty ident name (for <%s>) not allowed"
msgstr "không cho phép tên định danh là rỗng (cho <%s>)"
-#: ident.c:439
+#: ident.c:440
#, c-format
msgid "name consists only of disallowed characters: %s"
msgstr "tên chỉ được phép bao gồm các ký tự sau: %s"
-#: ident.c:454 builtin/commit.c:648
+#: ident.c:455 builtin/commit.c:649
#, c-format
msgid "invalid date format: %s"
msgstr "ngày tháng không hợp lệ: %s"
-#: list-objects-filter-options.c:83
+#: list-objects-filter-options.c:68
msgid "expected 'tree:<depth>'"
msgstr "cần “tree:<depth>â€"
-#: list-objects-filter-options.c:98
+#: list-objects-filter-options.c:83
msgid "sparse:path filters support has been dropped"
msgstr "việc há»— trợ bá»™ lá»c sparse:Ä‘Æ°á»ng/dẫn đã bị bá»"
-#: list-objects-filter-options.c:105
+#: list-objects-filter-options.c:90
#, c-format
msgid "'%s' for 'object:type=<type>' is not a valid object type"
msgstr "“%s†dành cho “object:type=<type>†không phải là kiểu đối tượng hợp lệ"
-#: list-objects-filter-options.c:124
+#: list-objects-filter-options.c:109
#, c-format
msgid "invalid filter-spec '%s'"
msgstr "đặc tả bá»™ lá»c không hợp lệ “%sâ€"
-#: list-objects-filter-options.c:140
+#: list-objects-filter-options.c:125
#, c-format
msgid "must escape char in sub-filter-spec: '%c'"
msgstr "phải thoát char trong sub-filter-spec: “%câ€"
-#: list-objects-filter-options.c:182
+#: list-objects-filter-options.c:167
msgid "expected something after combine:"
msgstr "mong đợi một cái gì đó sau khi kết hợp:"
-#: list-objects-filter-options.c:264
+#: list-objects-filter-options.c:249
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:376
+#: list-objects-filter-options.c:365
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ộ"
@@ -4690,17 +4820,17 @@ msgstr "không thể truy cập các blob rải rác trong “%sâ€"
msgid "unable to parse sparse filter data in %s"
msgstr "không thể phân tích dữ liệu bá»™ lá»c rải rác trong %s"
-#: list-objects.c:127
+#: list-objects.c:144
#, c-format
msgid "entry '%s' in tree %s has tree mode, but is not a tree"
msgstr "mục “%s†trong cây %s có nút cây, nhưng không phải là một cây"
-#: list-objects.c:140
+#: list-objects.c:157
#, c-format
msgid "entry '%s' in tree %s has blob mode, but is not a blob"
msgstr "mục “%s†trong cây %s có nút blob, nhưng không phải là một blob"
-#: list-objects.c:398
+#: list-objects.c:415
#, c-format
msgid "unable to load root tree for commit %s"
msgstr "không thể tải cây gốc cho lần chuyển giao “%sâ€"
@@ -4729,17 +4859,12 @@ msgstr ""
msgid "Unable to create '%s.lock': %s"
msgstr "Không thể tạo “%s.lockâ€: %s"
-#: ls-refs.c:37
-#, c-format
-msgid "invalid value '%s' for lsrefs.unborn"
-msgstr "giá trị “%s†không hợp lệ cho lsrefs.unborn"
-
-#: ls-refs.c:174
+#: ls-refs.c:175
#, c-format
msgid "unexpected line: '%s'"
msgstr "dòng không cần: “%sâ€"
-#: ls-refs.c:178
+#: ls-refs.c:179
msgid "expected flush after ls-refs arguments"
msgstr "cần đẩy dữ liệu lên đĩa sau tham số ls-refs (liệt kê tham chiếu)"
@@ -4747,39 +4872,39 @@ msgstr "cần đẩy dữ liệu lên đĩa sau tham số ls-refs (liệt kê th
msgid "quoted CRLF detected"
msgstr "phát hiện CRLF được trích dẫn"
-#: mailinfo.c:1254 builtin/am.c:184 builtin/mailinfo.c:46
+#: mailinfo.c:1254 builtin/am.c:185 builtin/mailinfo.c:46
#, c-format
msgid "bad action '%s' for '%s'"
msgstr "thao tác sai “%s†cho “%sâ€"
-#: merge-ort.c:1584 merge-recursive.c:1211
+#: merge-ort.c:1630 merge-recursive.c:1214
#, c-format
msgid "Failed to merge submodule %s (not checked out)"
msgstr "Gặp lỗi khi hòa trộn mô-đun-con “%s†(không lấy ra được)"
-#: merge-ort.c:1593 merge-recursive.c:1218
+#: merge-ort.c:1639 merge-recursive.c:1221
#, c-format
msgid "Failed to merge submodule %s (commits not present)"
msgstr "Gặp lỗi khi hòa trộn mô-đun-con “%s†(lần chuyển giao không hiện diện)"
-#: merge-ort.c:1602 merge-recursive.c:1225
+#: merge-ort.c:1648 merge-recursive.c:1228
#, c-format
msgid "Failed to merge submodule %s (commits don't follow merge-base)"
msgstr ""
"Gặp lá»—i khi hòa trá»™n mô-Ä‘un-con “%s†(lần chuyển giao không theo sau ná»n-hòa-"
"trá»™n)"
-#: merge-ort.c:1612 merge-ort.c:1620
+#: merge-ort.c:1658 merge-ort.c:1666
#, c-format
msgid "Note: Fast-forwarding submodule %s to %s"
msgstr "Chú ý: Chuyển-tiếp-nhanh mô-Ä‘un-con “%s†sang “%sâ€"
-#: merge-ort.c:1642
+#: merge-ort.c:1688
#, c-format
msgid "Failed to merge submodule %s"
msgstr "Gặp lá»—i khi hòa trá»™n mô-Ä‘un-con “%sâ€"
-#: merge-ort.c:1649
+#: merge-ort.c:1695
#, c-format
msgid ""
"Failed to merge submodule %s, but a possible merge resolution exists:\n"
@@ -4788,7 +4913,7 @@ msgstr ""
"Gặp lá»—i khi hòa trá»™n mô-Ä‘un-con “%sâ€, nhÆ°ng có cách giải quyết:\n"
"%s\n"
-#: merge-ort.c:1653 merge-recursive.c:1281
+#: merge-ort.c:1699 merge-recursive.c:1284
#, c-format
msgid ""
"If this is correct simply add it to the index for example\n"
@@ -4805,7 +4930,7 @@ msgstr ""
"\n"
"cái mà sẽ chấp nhận gợi ý này.\n"
-#: merge-ort.c:1666
+#: merge-ort.c:1712
#, c-format
msgid ""
"Failed to merge submodule %s, but multiple possible merges exist:\n"
@@ -4814,21 +4939,21 @@ msgstr ""
"Gặp lá»—i khi hòa trá»™n mô-Ä‘un-con “%sâ€, nhÆ°ng có nhiá»u cách giải quyết:\n"
"%s"
-#: merge-ort.c:1887 merge-recursive.c:1372
+#: merge-ort.c:1937 merge-recursive.c:1375
msgid "Failed to execute internal merge"
msgstr "Gặp lỗi khi thực hiện trộn nội bộ"
-#: merge-ort.c:1892 merge-recursive.c:1377
+#: merge-ort.c:1942 merge-recursive.c:1380
#, c-format
msgid "Unable to add %s to database"
msgstr "Không thể thêm %s vào cơ sở dữ liệu"
-#: merge-ort.c:1899 merge-recursive.c:1410
+#: merge-ort.c:1949 merge-recursive.c:1413
#, c-format
msgid "Auto-merging %s"
msgstr "Tự-động-hòa-trộn %s"
-#: merge-ort.c:2038 merge-recursive.c:2132
+#: merge-ort.c:2088 merge-recursive.c:2135
#, c-format
msgid ""
"CONFLICT (implicit dir rename): Existing file/dir at %s in the way of "
@@ -4837,7 +4962,7 @@ msgstr ""
"XUNG ÄỘT: (ngầm đổi tên thÆ° mục): Tập tin/thÆ° mục đã sẵn có tại %s theo cách "
"của các đổi tên thÆ° mục ngầm đặt (các) Ä‘Æ°á»ng dẫn sau ở đây: %s."
-#: merge-ort.c:2048 merge-recursive.c:2142
+#: merge-ort.c:2098 merge-recursive.c:2145
#, c-format
msgid ""
"CONFLICT (implicit dir rename): Cannot map more than one path to %s; "
@@ -4846,7 +4971,7 @@ msgstr ""
"XUNG ÄỘT: (ngầm đổi tên thÆ° mục): Không thể ánh xạ má»™t Ä‘Æ°á»ng dẫn thành %s; "
"các đổi tên thÆ° mục ngầm cố đặt các Ä‘Æ°á»ng dẫn ở đây: %s"
-#: merge-ort.c:2106
+#: merge-ort.c:2156
#, c-format
msgid ""
"CONFLICT (directory rename split): Unclear where to rename %s to; it was "
@@ -4857,7 +4982,7 @@ msgstr ""
"thành; nó đã bị đổi tên thành nhiá»u thÆ° mục khác, vá»›i không đích đến nhận "
"má»™t phần nhiá»u của các tập tin."
-#: merge-ort.c:2260 merge-recursive.c:2478
+#: merge-ort.c:2310 merge-recursive.c:2481
#, c-format
msgid ""
"WARNING: Avoiding applying %s -> %s rename to %s, because %s itself was "
@@ -4866,7 +4991,7 @@ msgstr ""
"CẢNH BÃO: tránh áp dụng %s -> %s đổi thên thành %s, bởi vì bản thân %s cÅ©ng "
"bị đổi tên."
-#: merge-ort.c:2400 merge-recursive.c:3261
+#: merge-ort.c:2450 merge-recursive.c:3264
#, c-format
msgid ""
"Path updated: %s added in %s inside a directory that was renamed in %s; "
@@ -4875,7 +5000,7 @@ msgstr ""
"ÄÆ°á»ng dẫn đã được cập nhật: %s được thêm vào trong %s bên trong má»™t thÆ° mục "
"đã được đổi tên trong %s; di chuyển nó đến %s."
-#: merge-ort.c:2407 merge-recursive.c:3268
+#: merge-ort.c:2457 merge-recursive.c:3271
#, c-format
msgid ""
"Path updated: %s renamed to %s in %s, inside a directory that was renamed in "
@@ -4884,7 +5009,7 @@ msgstr ""
"ÄÆ°á»ng dẫn đã được cập nhật: %s được đổi tên thành %s trong %s, bên trong má»™t "
"thư mục đã được đổi tên trong %s; di chuyển nó đến %s."
-#: merge-ort.c:2420 merge-recursive.c:3264
+#: merge-ort.c:2470 merge-recursive.c:3267
#, c-format
msgid ""
"CONFLICT (file location): %s added in %s inside a directory that was renamed "
@@ -4893,7 +5018,7 @@ msgstr ""
"XUNG ÄỘT (vị trí tệp): %s được thêm vào trong %s trong má»™t thÆ° mục đã được "
"đổi tên thành %s, đoán là nó nên được di chuyển đến %s."
-#: merge-ort.c:2428 merge-recursive.c:3271
+#: merge-ort.c:2478 merge-recursive.c:3274
#, c-format
msgid ""
"CONFLICT (file location): %s renamed to %s in %s, inside a directory that "
@@ -4902,13 +5027,13 @@ msgstr ""
"XUNG ÄỘT (vị trí tệp): %s được đổi tên thành %s trong %s, bên trong má»™t thÆ° "
"mục đã được đổi tên thành %s, đoán là nó nên được di chuyển đến %s."
-#: merge-ort.c:2584
+#: merge-ort.c:2634
#, c-format
msgid "CONFLICT (rename/rename): %s renamed to %s in %s and to %s in %s."
msgstr ""
"XUNG ÄỘT (đổi-tên/đổi-tên): Äổi tên %s->%s trong %s và thành %s trong %s."
-#: merge-ort.c:2679
+#: merge-ort.c:2729
#, c-format
msgid ""
"CONFLICT (rename involved in collision): rename of %s -> %s has content "
@@ -4919,23 +5044,23 @@ msgstr ""
"VÀ va chạm vá»›i má»™t Ä‘Æ°á»ng dẫn khác; Ä‘iá»u này có thể dẫn đến tạo ra các xung "
"đột lồng nhau."
-#: merge-ort.c:2698 merge-ort.c:2722
+#: merge-ort.c:2748 merge-ort.c:2772
#, c-format
msgid "CONFLICT (rename/delete): %s renamed to %s in %s, but deleted in %s."
msgstr ""
"XUNG ÄỘT (đổi-tên/xóa): Äổi tên %s->%s trong %s, nhÆ°ng lại bị xóa trong %s."
-#: merge-ort.c:3212 merge-recursive.c:3022
+#: merge-ort.c:3261 merge-recursive.c:3025
#, c-format
msgid "cannot read object %s"
msgstr "không thể Ä‘á»c đối tượng %s"
-#: merge-ort.c:3215 merge-recursive.c:3025
+#: merge-ort.c:3264 merge-recursive.c:3028
#, c-format
msgid "object %s is not a blob"
msgstr "đối tượng %s không phải là một blob"
-#: merge-ort.c:3644
+#: merge-ort.c:3693
#, c-format
msgid ""
"CONFLICT (file/directory): directory in the way of %s from %s; moving it to "
@@ -4944,7 +5069,7 @@ msgstr ""
"XUNG ÄỘT (tập tin/thÆ° mục): thÆ° mục theo cách của %s từ %s; thay vào đó, di "
"chuyển nó đến %s."
-#: merge-ort.c:3721
+#: merge-ort.c:3770
#, c-format
msgid ""
"CONFLICT (distinct types): %s had different types on each side; renamed both "
@@ -4953,7 +5078,7 @@ msgstr ""
"XUNG ÄỘT (các kiểu riêng biệt): %s có các kiểu khác nhau ở má»—i bên; đã đổi "
"tên cả hai trong số chúng để mỗi cái có thể được ghi lại ở đâu đó."
-#: merge-ort.c:3728
+#: merge-ort.c:3777
#, c-format
msgid ""
"CONFLICT (distinct types): %s had different types on each side; renamed one "
@@ -4962,24 +5087,24 @@ msgstr ""
"XUNG ÄỘT (các kiểu riêng biệt): %s có các loại khác nhau ở má»—i bên; đã đổi "
"tên một trong số chúng để mỗi cái có thể được ghi lại ở đâu đó."
-#: merge-ort.c:3819 merge-recursive.c:3101
+#: merge-ort.c:3866 merge-recursive.c:3104
msgid "content"
msgstr "ná»™i dung"
-#: merge-ort.c:3821 merge-recursive.c:3105
+#: merge-ort.c:3868 merge-recursive.c:3108
msgid "add/add"
msgstr "thêm/thêm"
-#: merge-ort.c:3823 merge-recursive.c:3150
+#: merge-ort.c:3870 merge-recursive.c:3153
msgid "submodule"
msgstr "mô-đun-con"
-#: merge-ort.c:3825 merge-recursive.c:3151
+#: merge-ort.c:3872 merge-recursive.c:3154
#, c-format
msgid "CONFLICT (%s): Merge conflict in %s"
msgstr "XUNG ÄỘT (%s): Xung Ä‘á»™t hòa trá»™n trong %s"
-#: merge-ort.c:3869
+#: merge-ort.c:3916
#, c-format
msgid ""
"CONFLICT (modify/delete): %s deleted in %s and modified in %s. Version %s "
@@ -4988,7 +5113,7 @@ msgstr ""
"XUNG ÄỘT (sá»­a/xóa): %s bị xóa trong %s và sá»­a trong %s. Phiên bản %s của %s "
"còn lại trong cây (tree)."
-#: merge-ort.c:4165
+#: merge-ort.c:4212
#, c-format
msgid ""
"Note: %s not up to date and in way of checking out conflicted version; old "
@@ -5000,12 +5125,12 @@ msgstr ""
#. TRANSLATORS: The %s arguments are: 1) tree hash of a merge
#. base, and 2-3) the trees for the two trees we're merging.
#.
-#: merge-ort.c:4534
+#: merge-ort.c:4586
#, c-format
msgid "collecting merge info failed for trees %s, %s, %s"
msgstr "thu thập thông tin hòa trộn gặp lỗi cho cây %s, %s, %s"
-#: merge-ort-wrappers.c:13 merge-recursive.c:3716
+#: merge-ort-wrappers.c:13 merge-recursive.c:3723
#, c-format
msgid ""
"Your local changes to the following files would be overwritten by merge:\n"
@@ -5015,7 +5140,7 @@ msgstr ""
"hòa trộn:\n"
" %s"
-#: merge-ort-wrappers.c:33 merge-recursive.c:3482 builtin/merge.c:405
+#: merge-ort-wrappers.c:33 merge-recursive.c:3485 builtin/merge.c:405
msgid "Already up to date."
msgstr "Äã cập nhật rồi."
@@ -5054,7 +5179,7 @@ msgstr ": có lẽ là một xung đột D/F?"
msgid "refusing to lose untracked file at '%s'"
msgstr "từ chối đóng tập tin không được theo dõi tại “%sâ€"
-#: merge-recursive.c:956 builtin/cat-file.c:41
+#: merge-recursive.c:956 builtin/cat-file.c:47
#, c-format
msgid "cannot read object %s '%s'"
msgstr "không thể Ä‘á»c đối tượng %s “%sâ€"
@@ -5079,45 +5204,45 @@ msgstr "gặp lá»—i khi tạo liên kết má»m (symlink) “%sâ€: %s"
msgid "do not know what to do with %06o %s '%s'"
msgstr "không hiểu phải làm gì vá»›i %06o %s “%sâ€"
-#: merge-recursive.c:1233 merge-recursive.c:1246
+#: merge-recursive.c:1236 merge-recursive.c:1249
#, c-format
msgid "Fast-forwarding submodule %s to the following commit:"
msgstr "Chuyển-tiếp-nhanh mô-đun-con “%s†đến lần chuyển giao sau đây:"
-#: merge-recursive.c:1236 merge-recursive.c:1249
+#: merge-recursive.c:1239 merge-recursive.c:1252
#, c-format
msgid "Fast-forwarding submodule %s"
msgstr "Chuyển-tiếp-nhanh mô-Ä‘un-con “%sâ€"
-#: merge-recursive.c:1273
+#: merge-recursive.c:1276
#, c-format
msgid "Failed to merge submodule %s (merge following commits not found)"
msgstr ""
"Gặp lỗi khi hòa trộn mô-đun-con “%s†(không tìm thấy các lần chuyển giao "
"theo sau hòa trộn)"
-#: merge-recursive.c:1277
+#: merge-recursive.c:1280
#, c-format
msgid "Failed to merge submodule %s (not fast-forward)"
msgstr "Gặp lỗi khi hòa trộn mô-đun-con “%s†(không chuyển tiếp nhanh được)"
-#: merge-recursive.c:1278
+#: merge-recursive.c:1281
msgid "Found a possible merge resolution for the submodule:\n"
msgstr "Tìm thấy một giải pháp hòa trộn có thể cho mô-đun-con:\n"
-#: merge-recursive.c:1290
+#: merge-recursive.c:1293
#, c-format
msgid "Failed to merge submodule %s (multiple merges found)"
msgstr "Gặp lá»—i khi hòa trá»™n mô-Ä‘un-con “%s†(thấy nhiá»u hòa trá»™n Ä‘a trùng)"
-#: merge-recursive.c:1434
+#: merge-recursive.c:1437
#, c-format
msgid "Error: Refusing to lose untracked file at %s; writing to %s instead."
msgstr ""
"Lá»—i: từ chối đóng tập tin không được theo dõi tại “%sâ€; thay vào đó ghi vào "
"%s."
-#: merge-recursive.c:1506
+#: merge-recursive.c:1509
#, c-format
msgid ""
"CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left "
@@ -5126,7 +5251,7 @@ msgstr ""
"XUNG ÄỘT (%s/xóa): %s bị xóa trong %s và %s trong %s. Phiên bản %s của %s "
"còn lại trong cây (tree)."
-#: merge-recursive.c:1511
+#: merge-recursive.c:1514
#, c-format
msgid ""
"CONFLICT (%s/delete): %s deleted in %s and %s to %s in %s. Version %s of %s "
@@ -5135,7 +5260,7 @@ msgstr ""
"XUNG ÄỘT (%s/xóa): %s bị xóa trong %s và %s đến %s trong %s. Phiên bản %s "
"của %s còn lại trong cây (tree)."
-#: merge-recursive.c:1518
+#: merge-recursive.c:1521
#, c-format
msgid ""
"CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left "
@@ -5144,7 +5269,7 @@ msgstr ""
"XUNG ÄỘT (%s/xóa): %s bị xóa trong %s và %s trong %s. Phiên bản %s của %s "
"còn lại trong cây (tree) tại %s."
-#: merge-recursive.c:1523
+#: merge-recursive.c:1526
#, c-format
msgid ""
"CONFLICT (%s/delete): %s deleted in %s and %s to %s in %s. Version %s of %s "
@@ -5153,45 +5278,45 @@ msgstr ""
"XUNG ÄỘT (%s/xóa): %s bị xóa trong %s và %s đến %s trong %s. Phiên bản %s "
"của %s còn lại trong cây (tree) tại %s."
-#: merge-recursive.c:1558
+#: merge-recursive.c:1561
msgid "rename"
msgstr "đổi tên"
-#: merge-recursive.c:1558
+#: merge-recursive.c:1561
msgid "renamed"
msgstr "đã đổi tên"
-#: merge-recursive.c:1609 merge-recursive.c:2515 merge-recursive.c:3178
+#: merge-recursive.c:1612 merge-recursive.c:2518 merge-recursive.c:3181
#, c-format
msgid "Refusing to lose dirty file at %s"
msgstr "Từ chối đóng tập tin không được theo dõi tại “%sâ€"
-#: merge-recursive.c:1619
+#: merge-recursive.c:1622
#, c-format
msgid "Refusing to lose untracked file at %s, even though it's in the way."
msgstr ""
"Từ chối đóng tập tin không được theo dõi tại “%sâ€, ngay cả khi nó ở trên "
"Ä‘Æ°á»ng."
-#: merge-recursive.c:1677
+#: merge-recursive.c:1680
#, c-format
msgid "CONFLICT (rename/add): Rename %s->%s in %s. Added %s in %s"
msgstr ""
"XUNG ÄỘT (đổi-tên/thêm): Äổi tên %s->%s trong %s. %s được thêm trong %s"
-#: merge-recursive.c:1708
+#: merge-recursive.c:1711
#, c-format
msgid "%s is a directory in %s adding as %s instead"
msgstr "%s là một thư mục trong %s thay vào đó thêm vào như là %s"
-#: merge-recursive.c:1713
+#: merge-recursive.c:1716
#, c-format
msgid "Refusing to lose untracked file at %s; adding as %s instead"
msgstr ""
"Từ chối đóng tập tin không được theo dõi tại “%sâ€; thay vào đó Ä‘ang thêm "
"thành %s"
-#: merge-recursive.c:1740
+#: merge-recursive.c:1743
#, c-format
msgid ""
"CONFLICT (rename/rename): Rename \"%s\"->\"%s\" in branch \"%s\" rename \"%s"
@@ -5200,17 +5325,17 @@ msgstr ""
"XUNG ÄỘT (đổi-tên/đổi-tên): Äổi tên \"%s\"->\"%s\" trong nhánh \"%s\" đổi "
"tên \"%s\"->\"%s\" trong \"%s\"%s"
-#: merge-recursive.c:1745
+#: merge-recursive.c:1748
msgid " (left unresolved)"
msgstr " (cần giải quyết)"
-#: merge-recursive.c:1837
+#: merge-recursive.c:1840
#, c-format
msgid "CONFLICT (rename/rename): Rename %s->%s in %s. Rename %s->%s in %s"
msgstr ""
"XUNG ÄỘT (đổi-tên/đổi-tên): Äổi tên %s->%s trong %s. Äổi tên %s->%s trong %s"
-#: merge-recursive.c:2100
+#: merge-recursive.c:2103
#, c-format
msgid ""
"CONFLICT (directory rename split): Unclear where to place %s because "
@@ -5221,7 +5346,7 @@ msgstr ""
"vì thÆ° mục %s đã bị đổi tên thành nhiá»u thÆ° mục khác, vá»›i không đích đến "
"nhận má»™t phần nhiá»u của các tập tin."
-#: merge-recursive.c:2234
+#: merge-recursive.c:2237
#, c-format
msgid ""
"CONFLICT (rename/rename): Rename directory %s->%s in %s. Rename directory %s-"
@@ -5230,79 +5355,79 @@ msgstr ""
"XUNG ÄỘT (đổi-tên/đổi-tên): Äổi tên thÆ° mục %s->%s trong %s. Äổi tên thÆ° mục "
"%s->%s trong %s"
-#: merge-recursive.c:3089
+#: merge-recursive.c:3092
msgid "modify"
msgstr "sửa đổi"
-#: merge-recursive.c:3089
+#: merge-recursive.c:3092
msgid "modified"
msgstr "đã sửa"
-#: merge-recursive.c:3128
+#: merge-recursive.c:3131
#, c-format
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:3181
+#: merge-recursive.c:3184
#, c-format
msgid "Adding as %s instead"
msgstr "Thay vào đó thêm vào %s"
-#: merge-recursive.c:3385
+#: merge-recursive.c:3388
#, c-format
msgid "Removing %s"
msgstr "Äang xóa %s"
-#: merge-recursive.c:3408
+#: merge-recursive.c:3411
msgid "file/directory"
msgstr "tập-tin/thư-mục"
-#: merge-recursive.c:3413
+#: merge-recursive.c:3416
msgid "directory/file"
msgstr "thư-mục/tập-tin"
-#: merge-recursive.c:3420
+#: merge-recursive.c:3423
#, c-format
msgid "CONFLICT (%s): There is a directory with name %s in %s. Adding %s as %s"
msgstr ""
"XUNG ÄỘT (%s): Ở đây không có thÆ° mục nào có tên %s trong %s. Thêm %s nhÆ° là "
"%s"
-#: merge-recursive.c:3429
+#: merge-recursive.c:3432
#, c-format
msgid "Adding %s"
msgstr "Thêm \"%s\""
-#: merge-recursive.c:3438
+#: merge-recursive.c:3441
#, c-format
msgid "CONFLICT (add/add): Merge conflict in %s"
msgstr "XUNG ÄỘT (thêm/thêm): Xung Ä‘á»™t hòa trá»™n trong %s"
-#: merge-recursive.c:3491
+#: merge-recursive.c:3494
#, c-format
msgid "merging of trees %s and %s failed"
msgstr "hòa trộn các cây %s và %s gặp lỗi"
-#: merge-recursive.c:3585
+#: merge-recursive.c:3588
msgid "Merging:"
msgstr "Äang trá»™n:"
-#: merge-recursive.c:3598
+#: merge-recursive.c:3601
#, c-format
msgid "found %u common ancestor:"
msgid_plural "found %u common ancestors:"
msgstr[0] "tìm thấy %u tổ tiên chung:"
-#: merge-recursive.c:3648
+#: merge-recursive.c:3651
msgid "merge returned no commit"
msgstr "hòa trộn không trả vỠlần chuyển giao nào"
-#: merge-recursive.c:3816
+#: merge-recursive.c:3823
#, c-format
msgid "Could not parse object '%s'"
msgstr "Không thể phân tích đối tượng “%sâ€"
-#: merge-recursive.c:3834 builtin/merge.c:720 builtin/merge.c:906
+#: merge-recursive.c:3841 builtin/merge.c:720 builtin/merge.c:912
#: builtin/stash.c:489
msgid "Unable to write index."
msgstr "Không thể ghi bảng mục lục."
@@ -5311,222 +5436,226 @@ msgstr "Không thể ghi bảng mục lục."
msgid "failed to read the cache"
msgstr "gặp lá»—i khi Ä‘á»c bá»™ nhá»› đệm"
-#: merge.c:102 rerere.c:704 builtin/am.c:1988 builtin/am.c:2022
-#: builtin/checkout.c:598 builtin/checkout.c:853 builtin/clone.c:706
+#: merge.c:102 rerere.c:705 builtin/am.c:1989 builtin/am.c:2023
+#: builtin/checkout.c:603 builtin/checkout.c:865 builtin/clone.c:714
#: builtin/stash.c:269
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"
-#: midx.c:78
+#: midx.c:79
msgid "multi-pack-index OID fanout is of the wrong size"
msgstr "fanout OID nhiá»u gói chỉ mục có kích thÆ°á»›c sai"
-#: midx.c:111
+#: midx.c:112
#, c-format
msgid "multi-pack-index file %s is too small"
msgstr "tập tin đồ thị multi-pack-index %s quá nhá»"
-#: midx.c:127
+#: midx.c:128
#, c-format
msgid "multi-pack-index signature 0x%08x does not match signature 0x%08x"
msgstr "chữ ký multi-pack-index 0x%08x không khớp chữ ký 0x%08x"
-#: midx.c:132
+#: midx.c:133
#, c-format
msgid "multi-pack-index version %d not recognized"
msgstr "không nhận ra phiên bản %d của multi-pack-index"
-#: midx.c:137
+#: midx.c:138
#, c-format
msgid "multi-pack-index hash version %u does not match version %u"
msgstr "phiên bản băm multi-pack-index %u không khớp phiên bản %u"
-#: midx.c:154
+#: midx.c:155
msgid "multi-pack-index missing required pack-name chunk"
msgstr "multi-pack-index thiếu mảnh pack-name cần thiết"
-#: midx.c:156
+#: midx.c:157
msgid "multi-pack-index missing required OID fanout chunk"
msgstr "multi-pack-index thiếu mảnh OID fanout cần thiết"
-#: midx.c:158
+#: midx.c:159
msgid "multi-pack-index missing required OID lookup chunk"
msgstr "multi-pack-index thiếu mảnh OID lookup cần thiết"
-#: midx.c:160
+#: midx.c:161
msgid "multi-pack-index missing required object offsets chunk"
msgstr "multi-pack-index thiếu mảnh các khoảng bù đối tượng cần thiết"
-#: midx.c:176
+#: midx.c:180
#, c-format
msgid "multi-pack-index pack names out of order: '%s' before '%s'"
msgstr "các tên gói multi-pack-index không đúng thứ tá»±: “%s†trÆ°á»›c “%sâ€"
-#: midx.c:224
+#: midx.c:228
#, c-format
msgid "bad pack-int-id: %u (%u total packs)"
msgstr "pack-int-id sai: %u (%u các gói tổng)"
-#: midx.c:274
+#: midx.c:278
msgid "multi-pack-index stores a 64-bit offset, but off_t is too small"
msgstr "multi-pack-index lÆ°u trữ má»™t khoảng bù 64-bít, nhÆ°ng off_t là quá nhá»"
-#: midx.c:505
+#: midx.c:509
#, c-format
msgid "failed to add packfile '%s'"
msgstr "gặp lá»—i khi thêm tập tin gói “%sâ€"
-#: midx.c:511
+#: midx.c:515
#, c-format
msgid "failed to open pack-index '%s'"
msgstr "gặp lá»—i khi mở pack-index “%sâ€"
-#: midx.c:579
+#: midx.c:583
#, c-format
msgid "failed to locate object %d in packfile"
msgstr "gặp lỗi khi phân bổ đối tượng “%d†trong tập tin gói"
-#: midx.c:895
+#: midx.c:911
msgid "cannot store reverse index file"
msgstr "không thể lưu trữ tập tin ghi mục lục đảo ngược"
-#: midx.c:993
+#: midx.c:1009
#, c-format
msgid "could not parse line: %s"
msgstr "không thể phân tích cú pháp dòng: %s"
-#: midx.c:995
+#: midx.c:1011
#, c-format
msgid "malformed line: %s"
msgstr "dòng dị hình: %s"
-#: midx.c:1162
+#: midx.c:1181
msgid "ignoring existing multi-pack-index; checksum mismatch"
msgstr "bỠqua multi-pack-index sẵn có; tổng kiểm không khớp"
-#: midx.c:1187
+#: midx.c:1206
msgid "could not load pack"
msgstr "không thể tải gói"
-#: midx.c:1193
+#: midx.c:1212
#, c-format
msgid "could not open index for %s"
msgstr "không thể mở mục lục cho %s"
-#: midx.c:1204
+#: midx.c:1223
msgid "Adding packfiles to multi-pack-index"
msgstr "Äang thêm tập tin gói từ multi-pack-index"
-#: midx.c:1247
+#: midx.c:1266
#, c-format
msgid "unknown preferred pack: '%s'"
msgstr "không hiểu \"preferred pack\": %s"
-#: midx.c:1292
+#: midx.c:1311
#, c-format
msgid "cannot select preferred pack %s with no objects"
msgstr "không thể chá»n gói Æ°a dùng %s vá»›i không đối tượng nào"
-#: midx.c:1324
+#: midx.c:1343
#, c-format
msgid "did not see pack-file %s to drop"
msgstr "đã không thấy tập tin gói %s để mà xóa"
-#: midx.c:1370
+#: midx.c:1389
#, c-format
msgid "preferred pack '%s' is expired"
msgstr "\"preferred pack\" “%s†đã hết hạn"
-#: midx.c:1383
+#: midx.c:1402
msgid "no pack files to index."
msgstr "không có tập tin gói để đánh mục lục."
-#: midx.c:1420
+#: midx.c:1409
+msgid "refusing to write multi-pack .bitmap without any objects"
+msgstr "từ chối ghi “multi-pack bitmap†mà không có bất kỳ đối tượng nào"
+
+#: midx.c:1451
msgid "could not write multi-pack bitmap"
msgstr "không thể ghi “multi-pack bitmapâ€"
-#: midx.c:1430
+#: midx.c:1461
msgid "could not write multi-pack-index"
msgstr "không thể ghi “multi-pack-indexâ€"
-#: midx.c:1489 builtin/clean.c:37
+#: midx.c:1520 builtin/clean.c:37
#, c-format
msgid "failed to remove %s"
msgstr "gặp lỗi khi gỡ bỠ%s"
-#: midx.c:1522
+#: midx.c:1553
#, c-format
msgid "failed to clear multi-pack-index at %s"
msgstr "gặp lỗi khi xóa multi-pack-index tại %s"
-#: midx.c:1585
+#: midx.c:1616
msgid "multi-pack-index file exists, but failed to parse"
msgstr "đã có tập tin multi-pack-index, nhưng gặp lỗi khi phân tích cú pháp"
-#: midx.c:1593
+#: midx.c:1624
msgid "incorrect checksum"
msgstr "tổng kiểm không đúng"
-#: midx.c:1596
+#: midx.c:1627
msgid "Looking for referenced packfiles"
msgstr "Äang khóa cho các gói bị tham chiếu"
-#: midx.c:1611
+#: midx.c:1642
#, c-format
msgid ""
"oid fanout out of order: fanout[%d] = %<PRIx32> > %<PRIx32> = fanout[%d]"
msgstr "fanout cũ sai thứ tự: fanout[%d] = %<PRIx32> > %<PRIx32> = fanout[%d]"
-#: midx.c:1616
+#: midx.c:1647
msgid "the midx contains no oid"
msgstr "midx chẳng chứa oid nào"
-#: midx.c:1625
+#: midx.c:1656
msgid "Verifying OID order in multi-pack-index"
msgstr "Thẩm tra thứ tự OID trong multi-pack-index"
-#: midx.c:1634
+#: midx.c:1665
#, c-format
msgid "oid lookup out of order: oid[%d] = %s >= %s = oid[%d]"
msgstr "lookup cũ sai thứ tự: oid[%d] = %s >= %s = oid[%d]"
-#: midx.c:1654
+#: midx.c:1685
msgid "Sorting objects by packfile"
msgstr "Äang sắp xếp các đối tượng theo tập tin gói"
-#: midx.c:1661
+#: midx.c:1692
msgid "Verifying object offsets"
msgstr "Äang thẩm tra các khoảng bù đối tượng"
-#: midx.c:1677
+#: midx.c:1708
#, c-format
msgid "failed to load pack entry for oid[%d] = %s"
msgstr "gặp lỗi khi tải mục gói cho oid[%d] = %s"
-#: midx.c:1683
+#: midx.c:1714
#, c-format
msgid "failed to load pack-index for packfile %s"
msgstr "gặp lỗi khi tải pack-index cho tập tin gói %s"
-#: midx.c:1692
+#: midx.c:1723
#, c-format
msgid "incorrect object offset for oid[%d] = %s: %<PRIx64> != %<PRIx64>"
msgstr ""
"khoảng bù đối tượng không đúng cho oid[%d] = %s: %<PRIx64> != %<PRIx64>"
-#: midx.c:1719
+#: midx.c:1750
msgid "Counting referenced objects"
msgstr "Äang đếm các đối tượng được tham chiếu"
-#: midx.c:1729
+#: midx.c:1760
msgid "Finding and deleting unreferenced packfiles"
msgstr "Äang tìm và xóa các gói không được tham chiếu"
-#: midx.c:1921
+#: midx.c:1952
msgid "could not start pack-objects"
msgstr "không thể lấy thông tin thống kê vỠcác đối tượng gói"
-#: midx.c:1941
+#: midx.c:1972
msgid "could not finish pack-objects"
msgstr "không thể hoàn thiện các đối tượng gói"
@@ -5545,7 +5674,7 @@ msgstr "không thể tạo tuyến lazy_name: %s"
msgid "unable to join lazy_name thread: %s"
msgstr "không thể gia nhập tuyến lazy_name: %s"
-#: notes-merge.c:277
+#: notes-merge.c:276
#, c-format
msgid ""
"You have not concluded your previous notes merge (%s exists).\n"
@@ -5557,7 +5686,7 @@ msgstr ""
"chuyển giao hay bãi bỠlần hòa trộn trước đây và bắt đầu một hòa trộn ghi "
"chú mới."
-#: notes-merge.c:284
+#: notes-merge.c:283
#, c-format
msgid "You have not concluded your notes merge (%s exists)."
msgstr "Bạn chưa kết thúc việc hòa trộn ghi chú (%s vẫn tồn tại)."
@@ -5587,273 +5716,344 @@ msgstr "Từ chối ghi đè ghi chú trong %s (nằm ngoài refs/notes/)"
msgid "Bad %s value: '%s'"
msgstr "Giá trị %s sai: “%sâ€"
-#: object-file.c:456
+#: object-file.c:457
#, c-format
msgid "object directory %s does not exist; check .git/objects/info/alternates"
msgstr ""
"thư mục đối tượng %s không tồn tại; kiểm tra .git/objects/info/alternates"
-#: object-file.c:514
+#: object-file.c:515
#, c-format
msgid "unable to normalize alternate object path: %s"
msgstr "không thể thÆ°á»ng hóa Ä‘Æ°á»ng dẫn đối tượng thay thế: “%sâ€"
-#: object-file.c:588
+#: object-file.c:589
#, c-format
msgid "%s: ignoring alternate object stores, nesting too deep"
msgstr "%s: đang bỠqua kho đối tượng thay thế, lồng nhau quá sâu"
-#: object-file.c:595
+#: object-file.c:596
#, c-format
msgid "unable to normalize object directory: %s"
msgstr "không thể chuẩn hóa thÆ° mục đối tượng: “%sâ€"
-#: object-file.c:638
+#: object-file.c:639
msgid "unable to fdopen alternates lockfile"
msgstr "không thể fdopen tập tin khóa thay thế"
-#: object-file.c:656
+#: object-file.c:657
msgid "unable to read alternates file"
msgstr "không thể Ä‘á»c tập tin thay thế"
-#: object-file.c:663
+#: object-file.c:664
msgid "unable to move new alternates file into place"
msgstr "không thể di chuyển tập tin thay thế vào chỗ"
-#: object-file.c:741
+#: object-file.c:742
#, c-format
msgid "path '%s' does not exist"
msgstr "Ä‘Æ°á»ng dẫn “%s†không tồn tại"
-#: object-file.c:762
+#: object-file.c:763
#, c-format
msgid "reference repository '%s' as a linked checkout is not supported yet."
msgstr "kho tham chiếu “%s†như là lấy ra liên kết vẫn chưa được hỗ trợ."
-#: object-file.c:768
+#: object-file.c:769
#, c-format
msgid "reference repository '%s' is not a local repository."
msgstr "kho tham chiếu “%s†không phải là một kho nội bộ."
-#: object-file.c:774
+#: object-file.c:775
#, c-format
msgid "reference repository '%s' is shallow"
msgstr "kho tham chiếu “%s†là nông"
-#: object-file.c:782
+#: object-file.c:783
#, c-format
msgid "reference repository '%s' is grafted"
msgstr "kho tham chiếu “%s†bị cấy ghép"
-#: object-file.c:813
+#: object-file.c:814
#, 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â€"
-#: object-file.c:863
+#: object-file.c:864
#, c-format
msgid "invalid line while parsing alternate refs: %s"
msgstr "dòng không hợp lệ trong khi phân tích các tham chiếu thay thế: %s"
-#: object-file.c:1013
+#: object-file.c:1014
#, c-format
msgid "attempting to mmap %<PRIuMAX> over limit %<PRIuMAX>"
msgstr "đang cố để mmap %<PRIuMAX> vượt quá giới hạn %<PRIuMAX>"
-#: object-file.c:1048
+#: object-file.c:1049
#, c-format
msgid "mmap failed%s"
msgstr "mmap gặp lỗi%s"
-#: object-file.c:1214
+#: object-file.c:1230
#, c-format
msgid "object file %s is empty"
msgstr "tập tin đối tượng %s trống rỗng"
-#: object-file.c:1333 object-file.c:2542
+#: object-file.c:1349 object-file.c:2588
#, c-format
msgid "corrupt loose object '%s'"
msgstr "đối tượng mất há»ng “%sâ€"
-#: object-file.c:1335 object-file.c:2546
+#: object-file.c:1351 object-file.c:2592
#, c-format
msgid "garbage at end of loose object '%s'"
msgstr "gặp rác tại cuối của đối tượng bị mất “%sâ€"
-#: object-file.c:1457
+#: object-file.c:1473
#, c-format
msgid "unable to parse %s header"
msgstr "không thể phân tích phần đầu của “%sâ€"
-#: object-file.c:1459
+#: object-file.c:1475
msgid "invalid object type"
msgstr "kiểu đối tượng không hợp lệ"
-#: object-file.c:1470
+#: object-file.c:1486
#, c-format
msgid "unable to unpack %s header"
msgstr "không thể giải gói phần đầu %s"
-#: object-file.c:1474
+#: object-file.c:1490
#, c-format
msgid "header for %s too long, exceeds %d bytes"
msgstr "phần đầu cho %s quá dài, vượt quá %d byte"
-#: object-file.c:1704
+#: object-file.c:1720
#, c-format
msgid "failed to read object %s"
msgstr "gặp lá»—i khi Ä‘á»c đối tượng “%sâ€"
-#: object-file.c:1708
+#: object-file.c:1724
#, c-format
msgid "replacement %s not found for %s"
msgstr "c%s thay thế không được tìm thấy cho %s"
-#: object-file.c:1712
+#: object-file.c:1728
#, c-format
msgid "loose object %s (stored in %s) is corrupt"
msgstr "đối tượng mất %s (được lÆ°u trong %s) bị há»ng"
-#: object-file.c:1716
+#: object-file.c:1732
#, c-format
msgid "packed object %s (stored in %s) is corrupt"
msgstr "đối tượng đã đóng gói %s (được lÆ°u trong %s) bị há»ng"
-#: object-file.c:1821
+#: object-file.c:1855
#, c-format
msgid "unable to write file %s"
msgstr "không thể ghi tập tin %s"
-#: object-file.c:1828
+#: object-file.c:1862
#, c-format
msgid "unable to set permission to '%s'"
msgstr "không thể đặt quyá»n thành “%sâ€"
-#: object-file.c:1835
+#: object-file.c:1869
msgid "file write error"
msgstr "lỗi ghi tập tin"
-#: object-file.c:1858
+#: object-file.c:1904
msgid "error when closing loose object file"
msgstr "gặp lỗi trong khi đóng tập tin đối tượng"
-#: object-file.c:1925
+#: object-file.c:1971
#, c-format
msgid "insufficient permission for adding an object to repository database %s"
msgstr ""
"không đủ thẩm quyá»n để thêm má»™t đối tượng vào cÆ¡ sở dữ liệu kho chứa %s"
-#: object-file.c:1927
+#: object-file.c:1973
msgid "unable to create temporary file"
msgstr "không thể tạo tập tin tạm thá»i"
-#: object-file.c:1951
+#: object-file.c:1997
msgid "unable to write loose object file"
msgstr "không thể ghi tập tin đối tượng đã mất"
-#: object-file.c:1957
+#: object-file.c:2003
#, c-format
msgid "unable to deflate new object %s (%d)"
msgstr "không thể xả nén đối tượng mới %s (%d)"
-#: object-file.c:1961
+#: object-file.c:2007
#, c-format
msgid "deflateEnd on object %s failed (%d)"
msgstr "deflateEnd trên đối tượng %s gặp lỗi (%d)"
-#: object-file.c:1965
+#: object-file.c:2011
#, c-format
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"
-#: object-file.c:1976 builtin/pack-objects.c:1243
+#: object-file.c:2022 builtin/pack-objects.c:1251
#, c-format
msgid "failed utime() on %s"
msgstr "gặp lá»—i utime() trên “%sâ€"
-#: object-file.c:2054
+#: object-file.c:2100
#, c-format
msgid "cannot read object for %s"
msgstr "không thể Ä‘á»c đối tượng cho %s"
-#: object-file.c:2105
+#: object-file.c:2151
msgid "corrupt commit"
msgstr "lần chuyển giao sai há»ng"
-#: object-file.c:2113
+#: object-file.c:2159
msgid "corrupt tag"
msgstr "thẻ sai há»ng"
-#: object-file.c:2213
+#: object-file.c:2259
#, c-format
msgid "read error while indexing %s"
msgstr "gặp lá»—i Ä‘á»c khi đánh mục lục %s"
-#: object-file.c:2216
+#: object-file.c:2262
#, c-format
msgid "short read while indexing %s"
msgstr "không Ä‘á»c ngắn khi đánh mục lục %s"
-#: object-file.c:2289 object-file.c:2299
+#: object-file.c:2335 object-file.c:2345
#, c-format
msgid "%s: failed to insert into database"
msgstr "%s: gặp lỗi khi thêm vào cơ sở dữ liệu"
-#: object-file.c:2305
+#: object-file.c:2351
#, c-format
msgid "%s: unsupported file type"
msgstr "%s: kiểu tập tin không được hỗ trợ"
-#: object-file.c:2329 builtin/fetch.c:1453
+#: object-file.c:2375 builtin/fetch.c:1494
#, c-format
msgid "%s is not a valid object"
msgstr "%s không phải là một đối tượng hợp lệ"
-#: object-file.c:2331
+#: object-file.c:2377
#, c-format
msgid "%s is not a valid '%s' object"
msgstr "%s không phải là một đối tượng “%s†hợp lệ"
-#: object-file.c:2358
+#: object-file.c:2404
#, c-format
msgid "unable to open %s"
msgstr "không thể mở %s"
-#: object-file.c:2553
+#: object-file.c:2599
#, c-format
msgid "hash mismatch for %s (expected %s)"
msgstr "mã băm không khớp cho %s (cần %s)"
-#: object-file.c:2576
+#: object-file.c:2622
#, c-format
msgid "unable to mmap %s"
msgstr "không thể mmap %s"
-#: object-file.c:2582
+#: object-file.c:2628
#, c-format
msgid "unable to unpack header of %s"
msgstr "không thể giải gói phần đầu của “%sâ€"
-#: object-file.c:2587
+#: object-file.c:2633
#, c-format
msgid "unable to parse header of %s"
msgstr "không thể phân tích phần đầu của “%sâ€"
-#: object-file.c:2598
+#: object-file.c:2644
#, c-format
msgid "unable to unpack contents of %s"
msgstr "không thể giải gói ná»™i dung của “%sâ€"
-#: object-name.c:480
+#. TRANSLATORS: This is a line of ambiguous object
+#. output shown when we cannot look up or parse the
+#. object in question. E.g. "deadbeef [bad object]".
+#.
+#: object-name.c:382
+#, c-format
+msgid "%s [bad object]"
+msgstr "%s [đối tượng sai.]"
+
+#. TRANSLATORS: This is a line of ambiguous commit
+#. object output. E.g.:
+#. *
+#. "deadbeef commit 2021-01-01 - Some Commit Message"
+#.
+#: object-name.c:407
+#, c-format
+msgid "%s commit %s - %s"
+msgstr "%s lần chuyển giao %s - %s"
+
+#. TRANSLATORS: This is a line of ambiguous
+#. tag object output. E.g.:
+#. *
+#. "deadbeef tag 2022-01-01 - Some Tag Message"
+#. *
+#. The second argument is the YYYY-MM-DD found
+#. in the tag.
+#. *
+#. The third argument is the "tag" string
+#. from object.c.
+#.
+#: object-name.c:428
+#, c-format
+msgid "%s tag %s - %s"
+msgstr "%s thẻ %s - %s"
+
+#. TRANSLATORS: This is a line of ambiguous
+#. tag object output where we couldn't parse
+#. the tag itself. E.g.:
+#. *
+#. "deadbeef [bad tag, could not parse it]"
+#.
+#: object-name.c:439
+#, c-format
+msgid "%s [bad tag, could not parse it]"
+msgstr "%s [thẻ sai, không thể phân tích cú pháp nó]"
+
+#. TRANSLATORS: This is a line of ambiguous <type>
+#. object output. E.g. "deadbeef tree".
+#.
+#: object-name.c:447
+#, c-format
+msgid "%s tree"
+msgstr "%s tree"
+
+#. TRANSLATORS: This is a line of ambiguous <type>
+#. object output. E.g. "deadbeef blob".
+#.
+#: object-name.c:453
+#, c-format
+msgid "%s blob"
+msgstr "%s blob"
+
+#: object-name.c:569
#, c-format
msgid "short object ID %s is ambiguous"
msgstr "mã đối tượng dạng rút gá»n %s chÆ°a rõ ràng"
-#: object-name.c:491
-msgid "The candidates are:"
-msgstr "Các ứng cử là:"
+#. TRANSLATORS: The argument is the list of ambiguous
+#. objects composed in show_ambiguous_object(). See
+#. its "TRANSLATORS" comments for details.
+#.
+#: object-name.c:591
+#, c-format
+msgid ""
+"The candidates are:\n"
+"%s"
+msgstr ""
+"Các ứng cử là:\n"
+"%s"
-#: object-name.c:790
+#: object-name.c:888
msgid ""
"Git normally never creates a ref that ends with 40 hex characters\n"
"because it will be ignored when you just specify 40-hex. These refs\n"
@@ -5877,22 +6077,22 @@ msgstr ""
"này\n"
"bằng cách chạy lệnh \"git config advice.objectNameWarning false\""
-#: object-name.c:910
+#: object-name.c:1008
#, c-format
msgid "log for '%.*s' only goes back to %s"
msgstr "nhật ký cho “%.*s†chỉ trở lại đến %s"
-#: object-name.c:918
+#: object-name.c:1016
#, c-format
msgid "log for '%.*s' only has %d entries"
msgstr "nhật ký cho “%.*s†chỉ có %d mục"
-#: object-name.c:1696
+#: object-name.c:1794
#, c-format
msgid "path '%s' exists on disk, but not in '%.*s'"
msgstr "Ä‘Æ°á»ng dẫn “%s†có ở trên Ä‘Ä©a, nhÆ°ng không trong “%.*sâ€"
-#: object-name.c:1702
+#: object-name.c:1800
#, c-format
msgid ""
"path '%s' exists, but not '%s'\n"
@@ -5901,12 +6101,12 @@ msgstr ""
"Ä‘Æ°á»ng dẫn “%s†tồn tại, nhÆ°ng không phải “%sâ€\n"
"gợi ý: Có phải ý bạn là “%.*s:%s†aka “%.*s:./%s�"
-#: object-name.c:1711
+#: object-name.c:1809
#, c-format
msgid "path '%s' does not exist in '%.*s'"
msgstr "Ä‘Æ°á»ng dẫn “%s†không tồn tại trong “%.*sâ€"
-#: object-name.c:1739
+#: object-name.c:1837
#, c-format
msgid ""
"path '%s' is in the index, but not at stage %d\n"
@@ -5915,7 +6115,7 @@ msgstr ""
"Ä‘Æ°á»ng dẫn “%s†nằm trong chỉ mục, nhÆ°ng không phải ở giai Ä‘oạn %d\n"
"gợi ý: Có phải ý bạn là “:%d:%s�"
-#: object-name.c:1755
+#: object-name.c:1853
#, c-format
msgid ""
"path '%s' is in the index, but not '%s'\n"
@@ -5924,21 +6124,26 @@ msgstr ""
"Ä‘Æ°á»ng dẫn “%s†nằm trong chỉ mục, nhÆ°ng không phải “%sâ€\n"
"gợi ý: Có phải ý bạn là “:% d:%s “ aka “:%d:./%s�"
-#: object-name.c:1763
+#: object-name.c:1861
#, c-format
msgid "path '%s' exists on disk, but not in the index"
msgstr "Ä‘Æ°á»ng dẫn “%s†tồn tại trên Ä‘Ä©a, nhÆ°ng không có trong chỉ mục"
-#: object-name.c:1765
+#: object-name.c:1863
#, c-format
msgid "path '%s' does not exist (neither on disk nor in the index)"
msgstr "Ä‘Æ°á»ng dẫn “%s†không tồn tại (không trên Ä‘Ä©a cÅ©ng không trong mục lục)"
-#: object-name.c:1778
+#: object-name.c:1876
msgid "relative path syntax can't be used outside working tree"
msgstr "cú pháp Ä‘Æ°á»ng dẫn tÆ°Æ¡ng đối không thể thể dùng ngoài cây làm việc"
-#: object-name.c:1916
+#: object-name.c:1901
+#, c-format
+msgid "<object>:<path> required, only <object> '%s' given"
+msgstr "<object>:<path> cần cả hai, nhưng chỉ <object> '%s' được đưa ra"
+
+#: object-name.c:2014
#, c-format
msgid "invalid object name '%.*s'."
msgstr "“%.*s†không phải là tên đối tượng hợp lệ."
@@ -5963,7 +6168,7 @@ msgstr "đối tượng %s có mã kiểu %d chưa biết"
msgid "unable to parse object: %s"
msgstr "không thể phân tích đối tượng: “%sâ€"
-#: object.c:283 object.c:295
+#: object.c:283 object.c:294
#, c-format
msgid "hash mismatch %s"
msgstr "mã băm không khớp %s"
@@ -5972,21 +6177,21 @@ msgstr "mã băm không khớp %s"
msgid "multi-pack bitmap is missing required reverse index"
msgstr "ánh xạ multi-pack thiếu mục lục để dành cần thiết"
-#: pack-bitmap.c:429
+#: pack-bitmap.c:433
msgid "load_reverse_index: could not open pack"
msgstr "load_reverse_index: không thể mở gói"
-#: pack-bitmap.c:1069 pack-bitmap.c:1075 builtin/pack-objects.c:2424
+#: pack-bitmap.c:1072 pack-bitmap.c:1078 builtin/pack-objects.c:2432
#, c-format
msgid "unable to get size of %s"
msgstr "không thể lấy kích cỡ của %s"
-#: pack-bitmap.c:1935
+#: pack-bitmap.c:1937
#, c-format
msgid "could not find %s in pack %s at offset %<PRIuMAX>"
msgstr "không thể tìm thấy %s trong gói “%s†tại vị trí %<PRIuMAX>"
-#: pack-bitmap.c:1971 builtin/rev-list.c:92
+#: pack-bitmap.c:1973 builtin/rev-list.c:91
#, c-format
msgid "unable to get disk usage of %s"
msgstr "không thể dung lượng đĩa đã dùng của %s"
@@ -6030,7 +6235,7 @@ msgstr "không thể lấy thông tin thống kê: %s"
msgid "failed to make %s readable"
msgstr "gặp lá»—i làm cho %s Ä‘á»c được"
-#: pack-write.c:520
+#: pack-write.c:521
#, c-format
msgid "could not write '%s' promisor file"
msgstr "không thể ghi tập tin promisor “%sâ€"
@@ -6370,20 +6575,20 @@ msgstr "object-info: cần đẩy dữ liệu lên đĩa sau các tham số"
msgid "Removing duplicate objects"
msgstr "Äang gỡ các đối tượng trùng lặp"
-#: range-diff.c:67
+#: range-diff.c:68
msgid "could not start `log`"
msgstr "không thể lấy thông tin thống kê vỠ“log“"
-#: range-diff.c:69
+#: range-diff.c:70
msgid "could not read `log` output"
msgstr "không thể Ä‘á»c kết xuất “logâ€"
-#: range-diff.c:97 sequencer.c:5602
+#: range-diff.c:98 sequencer.c:5575
#, c-format
msgid "could not parse commit '%s'"
msgstr "không thể phân tích lần chuyển giao “%sâ€"
-#: range-diff.c:111
+#: range-diff.c:109
#, c-format
msgid ""
"could not parse first line of `log` output: did not start with 'commit ': "
@@ -6392,66 +6597,66 @@ msgstr ""
"không thể phân tích cú pháp dòng đầu tiên của đầu ra “logâ€: không bắt đầu "
"bằng “commit â€: “%sâ€"
-#: range-diff.c:137
+#: range-diff.c:132
#, c-format
msgid "could not parse git header '%.*s'"
msgstr "không thể phân tích cú pháp phần đầu git “%.*sâ€"
-#: range-diff.c:304
+#: range-diff.c:300
msgid "failed to generate diff"
msgstr "gặp lỗi khi tạo khác biệt"
-#: range-diff.c:562 range-diff.c:564
+#: range-diff.c:558 range-diff.c:560
#, c-format
msgid "could not parse log for '%s'"
msgstr "không thể phân tích nhật ký cho “%sâ€"
-#: read-cache.c:723
+#: read-cache.c:737
#, c-format
msgid "will not add file alias '%s' ('%s' already exists in index)"
msgstr ""
"sẽ không thêm các bí danh “%s†(“%s†đã có từ trước trong bảng mục lục)"
-#: read-cache.c:739
+#: read-cache.c:753
msgid "cannot create an empty blob in the object database"
msgstr "không thể tạo một blob rỗng trong cơ sở dữ liệu đối tượng"
-#: read-cache.c:761
+#: read-cache.c:775
#, c-format
msgid "%s: can only add regular files, symbolic links or git-directories"
msgstr ""
"%s: chỉ có thể thêm tập tin thông thÆ°á»ng, liên kết má»m hoặc git-directories"
-#: read-cache.c:766 builtin/submodule--helper.c:3242
+#: read-cache.c:780 builtin/submodule--helper.c:3359
#, c-format
msgid "'%s' does not have a commit checked out"
msgstr "“%s†không có một lần chuyển giao nào được lấy ra"
-#: read-cache.c:818
+#: read-cache.c:832
#, c-format
msgid "unable to index file '%s'"
msgstr "không thể đánh mục lục tập tin “%sâ€"
-#: read-cache.c:837
+#: read-cache.c:851
#, c-format
msgid "unable to add '%s' to index"
msgstr "không thể thêm %s vào bảng mục lục"
-#: read-cache.c:848
+#: read-cache.c:862
#, c-format
msgid "unable to stat '%s'"
msgstr "không thể lấy thống kê “%sâ€"
-#: read-cache.c:1386
+#: read-cache.c:1404
#, c-format
msgid "'%s' appears as both a file and as a directory"
msgstr "%s có vẻ không phải là tập tin và cũng chẳng phải là một thư mục"
-#: read-cache.c:1601
+#: read-cache.c:1619
msgid "Refresh index"
msgstr "Làm tươi mới bảng mục lục"
-#: read-cache.c:1733
+#: read-cache.c:1751
#, c-format
msgid ""
"index.version set, but the value is invalid.\n"
@@ -6460,7 +6665,7 @@ msgstr ""
"index.version được đặt, nhưng giá trị của nó lại không hợp lệ.\n"
"Dùng phiên bản %i"
-#: read-cache.c:1743
+#: read-cache.c:1761
#, c-format
msgid ""
"GIT_INDEX_VERSION set, but the value is invalid.\n"
@@ -6469,143 +6674,147 @@ msgstr ""
"GIT_INDEX_VERSION được đặt, nhưng giá trị của nó lại không hợp lệ.\n"
"Dùng phiên bản %i"
-#: read-cache.c:1799
+#: read-cache.c:1817
#, c-format
msgid "bad signature 0x%08x"
msgstr "chữ ký sai 0x%08x"
-#: read-cache.c:1802
+#: read-cache.c:1820
#, c-format
msgid "bad index version %d"
msgstr "phiên bản mục lục sai %d"
-#: read-cache.c:1811
+#: read-cache.c:1829
msgid "bad index file sha1 signature"
msgstr "chữ ký dạng sha1 cho tập tin mục lục không đúng"
-#: read-cache.c:1845
+#: read-cache.c:1863
#, c-format
msgid "index uses %.4s extension, which we do not understand"
msgstr "mục lục dùng phần mở rộng %.4s, cái mà chúng tôi không hiểu được"
-#: read-cache.c:1847
+#: read-cache.c:1865
#, c-format
msgid "ignoring %.4s extension"
msgstr "đang lỠđi phần mở rộng %.4s"
-#: read-cache.c:1884
+#: read-cache.c:1902
#, c-format
msgid "unknown index entry format 0x%08x"
msgstr "không hiểu định dạng mục lục 0x%08x"
-#: read-cache.c:1900
+#: read-cache.c:1918
#, c-format
msgid "malformed name field in the index, near path '%s'"
msgstr "trÆ°á»ng tên sai sạng trong mục lục, gần Ä‘Æ°á»ng dẫn “%sâ€"
-#: read-cache.c:1957
+#: read-cache.c:1975
msgid "unordered stage entries in index"
msgstr "các mục tin stage không đúng thứ tự trong mục lục"
-#: read-cache.c:1960
+#: read-cache.c:1978
#, c-format
msgid "multiple stage entries for merged file '%s'"
msgstr "nhiá»u mục stage cho tập tin hòa trá»™n “%sâ€"
-#: read-cache.c:1963
+#: read-cache.c:1981
#, c-format
msgid "unordered stage entries for '%s'"
msgstr "các mục tin stage không đúng thứ tá»± cho “%sâ€"
-#: read-cache.c:2078 read-cache.c:2384 rerere.c:549 rerere.c:583 rerere.c:1095
-#: submodule.c:1662 builtin/add.c:600 builtin/check-ignore.c:183
-#: builtin/checkout.c:527 builtin/checkout.c:719 builtin/clean.c:1013
-#: builtin/commit.c:378 builtin/diff-tree.c:122 builtin/grep.c:519
-#: builtin/mv.c:148 builtin/reset.c:499 builtin/rm.c:293
-#: builtin/submodule--helper.c:327 builtin/submodule--helper.c:3202
+#: read-cache.c:2096 read-cache.c:2402 rerere.c:549 rerere.c:583 rerere.c:1096
+#: submodule.c:1831 builtin/add.c:586 builtin/check-ignore.c:183
+#: builtin/checkout.c:532 builtin/checkout.c:724 builtin/clean.c:1016
+#: builtin/commit.c:379 builtin/diff-tree.c:122 builtin/grep.c:521
+#: builtin/mv.c:148 builtin/reset.c:506 builtin/rm.c:293
+#: builtin/submodule--helper.c:335 builtin/submodule--helper.c:3319
msgid "index file corrupt"
msgstr "tập tin ghi bảng mục lục bị há»ng"
-#: read-cache.c:2222
+#: read-cache.c:2240
#, c-format
msgid "unable to create load_cache_entries thread: %s"
msgstr "không thể tạo tuyến load_cache_entries: %s"
-#: read-cache.c:2235
+#: read-cache.c:2253
#, c-format
msgid "unable to join load_cache_entries thread: %s"
msgstr "không thể gia nhập tuyến load_cache_entries: %s"
-#: read-cache.c:2268
+#: read-cache.c:2286
#, c-format
msgid "%s: index file open failed"
msgstr "%s: mở tập tin mục lục gặp lỗi"
-#: read-cache.c:2272
+#: read-cache.c:2290
#, c-format
msgid "%s: cannot stat the open index"
msgstr "%s: không thể lấy thống kê bảng mục lục đã mở"
-#: read-cache.c:2276
+#: read-cache.c:2294
#, c-format
msgid "%s: index file smaller than expected"
msgstr "%s: tập tin mục lục nhỠhơn mong đợi"
-#: read-cache.c:2280
+#: read-cache.c:2298
#, c-format
msgid "%s: unable to map index file%s"
msgstr "%s: không thể ánh xạ tập tin mục lục%s"
-#: read-cache.c:2323
+#: read-cache.c:2341
#, c-format
msgid "unable to create load_index_extensions thread: %s"
msgstr "không thể tạo tuyến load_index_extensions: %s"
-#: read-cache.c:2350
+#: read-cache.c:2368
#, c-format
msgid "unable to join load_index_extensions thread: %s"
msgstr "không thể gia nhập tuyến load_index_extensions: %s"
-#: read-cache.c:2396
+#: read-cache.c:2414
#, c-format
msgid "could not freshen shared index '%s'"
msgstr "không thể làm tÆ°Æ¡i má»›i mục lục đã chia sẻ “%sâ€"
-#: read-cache.c:2455
+#: read-cache.c:2473
#, c-format
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:3086 strbuf.c:1191 wrapper.c:641 builtin/merge.c:1150
+#: read-cache.c:3032
+msgid "cannot write split index for a sparse index"
+msgstr "không thể ghi mục lục chia tách cho \"sparse index\""
+
+#: read-cache.c:3114 strbuf.c:1192 wrapper.c:717 builtin/merge.c:1156
#, c-format
msgid "could not close '%s'"
msgstr "không thể đóng “%sâ€"
-#: read-cache.c:3129
+#: read-cache.c:3157
msgid "failed to convert to a sparse-index"
msgstr "gặp lỗi khi chuyển đổi sang \"sparse-index\""
-#: read-cache.c:3200
+#: read-cache.c:3228
#, c-format
msgid "could not stat '%s'"
msgstr "không thể lấy thông tin thống kê vỠ“%sâ€"
-#: read-cache.c:3213
+#: read-cache.c:3241
#, c-format
msgid "unable to open git dir: %s"
msgstr "không thể mở thư mục git: %s"
-#: read-cache.c:3225
+#: read-cache.c:3253
#, c-format
msgid "unable to unlink: %s"
msgstr "không thể bá» liên kết (unlink): “%sâ€"
-#: read-cache.c:3254
+#: read-cache.c:3282
#, c-format
msgid "cannot fix permission bits on '%s'"
msgstr "không thể sá»­a các bít phân quyá»n trên “%sâ€"
-#: read-cache.c:3411
+#: read-cache.c:3439
#, c-format
msgid "%s: cannot drop to stage #0"
msgstr "%s: không thể xóa bỠstage #0"
@@ -6728,9 +6937,9 @@ msgstr ""
"Tuy nhiên, nếu bạn xóa bá» má»i thứ, việc cải tổ sẽ bị bãi bá».\n"
"\n"
-#: rebase-interactive.c:113 rerere.c:469 rerere.c:676 sequencer.c:3883
-#: sequencer.c:3909 sequencer.c:5708 builtin/fsck.c:328 builtin/gc.c:1791
-#: builtin/rebase.c:190
+#: rebase-interactive.c:113 rerere.c:469 rerere.c:677 sequencer.c:3879
+#: sequencer.c:3905 sequencer.c:5681 builtin/fsck.c:328 builtin/gc.c:1791
+#: builtin/rebase.c:191
#, c-format
msgid "could not write '%s'"
msgstr "không thể ghi “%sâ€"
@@ -6772,7 +6981,7 @@ msgstr ""
msgid "%s: 'preserve' superseded by 'merges'"
msgstr "%s: “preserve†bị cấm bởi “mergesâ€"
-#: ref-filter.c:42 wt-status.c:2048
+#: ref-filter.c:42 wt-status.c:2057
msgid "gone"
msgstr "đã ra đi"
@@ -6940,81 +7149,91 @@ msgstr "lệnh này từ chối atom %%(%.*s)"
msgid "--format=%.*s cannot be used with --python, --shell, --tcl"
msgstr "--format=%.*s không thể được dùng với --python, --shell, --tcl"
-#: ref-filter.c:1706
+#: ref-filter.c:1707
#, c-format
msgid "(no branch, rebasing %s)"
msgstr "(không nhánh, đang cải tổ %s)"
-#: ref-filter.c:1709
+#: ref-filter.c:1710
#, c-format
msgid "(no branch, rebasing detached HEAD %s)"
msgstr "(không nhánh, Ä‘ang cải tổ HEAD %s đã tách rá»i)"
-#: ref-filter.c:1712
+#: ref-filter.c:1713
#, c-format
msgid "(no branch, bisect started on %s)"
msgstr "(không nhánh, di chuyển nửa bước được bắt đầu tại %s)"
-#: ref-filter.c:1716
+#: ref-filter.c:1717
#, c-format
msgid "(HEAD detached at %s)"
msgstr "(HEAD được tách rá»i tại %s)"
-#: ref-filter.c:1719
+#: ref-filter.c:1720
#, c-format
msgid "(HEAD detached from %s)"
msgstr "(HEAD được tách rá»i khá»i %s)"
-#: ref-filter.c:1722
+#: ref-filter.c:1723
msgid "(no branch)"
msgstr "(không nhánh)"
-#: ref-filter.c:1754 ref-filter.c:1972
+#: ref-filter.c:1755 ref-filter.c:1973
#, c-format
msgid "missing object %s for %s"
msgstr "thiếu đối tượng %s cho %s"
-#: ref-filter.c:1764
+#: ref-filter.c:1765
#, c-format
msgid "parse_object_buffer failed on %s for %s"
msgstr "parse_object_buffer gặp lỗi trên %s cho %s"
-#: ref-filter.c:2155
+#: ref-filter.c:2156
#, c-format
msgid "malformed object at '%s'"
msgstr "đối tượng dị hình tại “%sâ€"
-#: ref-filter.c:2245
+#: ref-filter.c:2246
#, c-format
msgid "ignoring ref with broken name %s"
msgstr "Ä‘ang lá» Ä‘i tham chiếu vá»›i tên há»ng %s"
-#: ref-filter.c:2250 refs.c:676
+#: ref-filter.c:2251 refs.c:672
#, c-format
msgid "ignoring broken ref %s"
msgstr "Ä‘ang lá» Ä‘i tham chiếu há»ng %s"
-#: ref-filter.c:2629
+#: ref-filter.c:2630
#, c-format
msgid "format: %%(end) atom missing"
msgstr "định dạng: thiếu nguyên tử %%(end)"
-#: ref-filter.c:2740
+#: ref-filter.c:2741
#, c-format
msgid "malformed object name %s"
msgstr "tên đối tượng dị hình %s"
-#: ref-filter.c:2745
+#: ref-filter.c:2746
#, c-format
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:261
+#: reflog.c:407
+#, c-format
+msgid "not a reflog: %s"
+msgstr "không phải một reflog: %s"
+
+#: reflog.c:410
+#, c-format
+msgid "no reflog for '%s'"
+msgstr "không reflog cho “%sâ€"
+
+#: refs.c:262
#, 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:563
+#: refs.c:561
#, c-format
msgid ""
"Using '%s' as the name for the initial branch. This default branch name\n"
@@ -7039,81 +7258,81 @@ msgstr ""
"\n"
"\tgit branch -m <tên>\n"
-#: refs.c:585
+#: refs.c:583
#, c-format
msgid "could not retrieve `%s`"
msgstr "không thể lấy vỠ“%sâ€"
-#: refs.c:595
+#: refs.c:593
#, c-format
msgid "invalid branch name: %s = %s"
msgstr "tên nhánh không hợp lệ: %s = %s"
-#: refs.c:674
+#: refs.c:670
#, c-format
msgid "ignoring dangling symref %s"
msgstr "Ä‘ang lá» Ä‘i tham chiếu má»m thừa %s"
-#: refs.c:925
+#: refs.c:919
#, 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:932
+#: refs.c:926
#, 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:997
+#: refs.c:991
#, c-format
msgid "log for %s is empty"
msgstr "nhật ký cho %s trống rỗng"
-#: refs.c:1090
+#: refs.c:1086
#, 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:1168
+#: refs.c:1164
#, c-format
msgid "update_ref failed for ref '%s': %s"
msgstr "update_ref bị lá»—i cho ref “%sâ€: %s"
-#: refs.c:2067
+#: refs.c:2059
#, 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:2150
+#: refs.c:2145
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:2161
+#: refs.c:2156
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:2269 refs.c:2299
+#: refs.c:2264 refs.c:2294
#, c-format
msgid "'%s' exists; cannot create '%s'"
msgstr "“%s†sẵn có; không thể tạo “%sâ€"
-#: refs.c:2275 refs.c:2310
+#: refs.c:2270 refs.c:2305
#, 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"
-#: refs/files-backend.c:1267
+#: refs/files-backend.c:1295
#, c-format
msgid "could not remove reference %s"
msgstr "không thể gỡ bỠtham chiếu: %s"
-#: refs/files-backend.c:1281 refs/packed-backend.c:1549
-#: refs/packed-backend.c:1559
+#: refs/files-backend.c:1310 refs/packed-backend.c:1565
+#: refs/packed-backend.c:1575
#, c-format
msgid "could not delete reference %s: %s"
msgstr "không thể xóa bỠtham chiếu %s: %s"
-#: refs/files-backend.c:1284 refs/packed-backend.c:1562
+#: refs/files-backend.c:1313 refs/packed-backend.c:1578
#, c-format
msgid "could not delete references: %s"
msgstr "không thể xóa bỠtham chiếu: %s"
@@ -7136,37 +7355,37 @@ msgstr "đã Ä‘Æ°a ra nhiá»u hÆ¡n má»™t gói nhận vá», Ä‘ang sá»­ dụng cá
msgid "more than one uploadpack given, using the first"
msgstr "đã Ä‘Æ°a ra nhiá»u hÆ¡n má»™t gói tải lên, Ä‘ang sá»­ dụng cái đầu tiên"
-#: remote.c:699
+#: remote.c:698
#, c-format
msgid "Cannot fetch both %s and %s to %s"
msgstr "Không thể lấy vỠcả %s và %s cho %s"
-#: remote.c:703
+#: remote.c:702
#, c-format
msgid "%s usually tracks %s, not %s"
msgstr "%s thÆ°á»ng theo dõi %s, không phải %s"
-#: remote.c:707
+#: remote.c:706
#, c-format
msgid "%s tracks both %s and %s"
msgstr "%s theo dõi cả %s và %s"
-#: remote.c:775
+#: remote.c:774
#, c-format
msgid "key '%s' of pattern had no '*'"
msgstr "khóa “%s†của mẫu k có “*â€"
-#: remote.c:785
+#: remote.c:784
#, c-format
msgid "value '%s' of pattern has no '*'"
msgstr "giá trị “%s†của mẫu k có “*â€"
-#: remote.c:1192
+#: remote.c:1191
#, c-format
msgid "src refspec %s does not match any"
msgstr "refspec %s nguồn không khớp bất kỳ cái gì"
-#: remote.c:1197
+#: remote.c:1196
#, c-format
msgid "src refspec %s matches more than one"
msgstr "refspec %s nguồn khá»›p nhiá»u hÆ¡n má»™t"
@@ -7175,7 +7394,7 @@ msgstr "refspec %s nguồn khá»›p nhiá»u hÆ¡n má»™t"
#. <remote> <src>:<dst>" push, and "being pushed ('%s')" is
#. the <src>.
#.
-#: remote.c:1212
+#: remote.c:1211
#, c-format
msgid ""
"The destination you provided is not a full refname (i.e.,\n"
@@ -7200,7 +7419,7 @@ msgstr ""
"Nếu cả hai là không thể, thì chúng tôi cũng chịu thua. Bạn phải dùng tham "
"chiếu dạng đầy đủ."
-#: remote.c:1232
+#: remote.c:1231
#, c-format
msgid ""
"The <src> part of the refspec is a commit object.\n"
@@ -7211,7 +7430,7 @@ msgstr ""
"Có phải ý bạn là một tạo một nhánh mới bằng cách đẩy lên\n"
"“%s:refs/heads/%s�"
-#: remote.c:1237
+#: remote.c:1236
#, c-format
msgid ""
"The <src> part of the refspec is a tag object.\n"
@@ -7222,7 +7441,7 @@ msgstr ""
"Có phải ý bạn là một tạo một thẻ mới bằng cách đẩy lên\n"
"“%s:refs/tags/%s�"
-#: remote.c:1242
+#: remote.c:1241
#, c-format
msgid ""
"The <src> part of the refspec is a tree object.\n"
@@ -7233,7 +7452,7 @@ msgstr ""
"Có phải ý bạn là một tạo một cây mới bằng cách đẩy lên\n"
"“%s:refs/tags/%s�"
-#: remote.c:1247
+#: remote.c:1246
#, c-format
msgid ""
"The <src> part of the refspec is a blob object.\n"
@@ -7244,115 +7463,115 @@ msgstr ""
"Có phải ý bạn là một tạo một blob mới bằng cách đẩy lên\n"
"“%s:refs/tags/%s�"
-#: remote.c:1283
+#: remote.c:1282
#, c-format
msgid "%s cannot be resolved to branch"
msgstr "“%s†không thể được phân giải thành nhánh"
-#: remote.c:1294
+#: remote.c:1293
#, c-format
msgid "unable to delete '%s': remote ref does not exist"
msgstr "không thể xóa “%sâ€: tham chiếu trên máy chủ không tồn tại"
-#: remote.c:1306
+#: remote.c:1305
#, c-format
msgid "dst refspec %s matches more than one"
msgstr "dst refspec %s khá»›p nhiá»u hÆ¡n má»™t"
-#: remote.c:1313
+#: remote.c:1312
#, c-format
msgid "dst ref %s receives from more than one src"
msgstr "dst ref %s nhận từ hơn một nguồn"
-#: remote.c:1834 remote.c:1941
+#: remote.c:1833 remote.c:1940
msgid "HEAD does not point to a branch"
msgstr "HEAD không chỉ đến một nhánh nào cả"
-#: remote.c:1843
+#: remote.c:1842
#, c-format
msgid "no such branch: '%s'"
msgstr "không có nhánh nào nhÆ° thế: “%sâ€"
-#: remote.c:1846
+#: remote.c:1845
#, c-format
msgid "no upstream configured for branch '%s'"
msgstr "không có thượng nguồn được cấu hình cho nhánh “%sâ€"
-#: remote.c:1852
+#: remote.c:1851
#, c-format
msgid "upstream branch '%s' not stored as a remote-tracking branch"
msgstr ""
"nhánh thượng nguồn “%s†không được lưu lại như là một nhánh theo dõi máy chủ"
-#: remote.c:1867
+#: remote.c:1866
#, c-format
msgid "push destination '%s' on remote '%s' has no local tracking branch"
msgstr "đẩy lên đích “%s†trên máy chủ “%s†không có nhánh theo dõi nội bộ"
-#: remote.c:1882
+#: remote.c:1881
#, c-format
msgid "branch '%s' has no remote for pushing"
msgstr "nhánh “%s†không có máy chủ để đẩy lên"
-#: remote.c:1892
+#: remote.c:1891
#, c-format
msgid "push refspecs for '%s' do not include '%s'"
msgstr "đẩy refspecs cho “%s†không bao gồm “%sâ€"
-#: remote.c:1905
+#: remote.c:1904
msgid "push has no destination (push.default is 'nothing')"
msgstr "đẩy lên mà không có đích (push.default là “nothingâ€)"
-#: remote.c:1927
+#: remote.c:1926
msgid "cannot resolve 'simple' push to a single destination"
msgstr "không thể phân giải đẩy “đơn giản†đến một đích đơn"
-#: remote.c:2060
+#: remote.c:2059
#, c-format
msgid "couldn't find remote ref %s"
msgstr "không thể tìm thấy tham chiếu máy chủ %s"
-#: remote.c:2073
+#: remote.c:2072
#, c-format
msgid "* Ignoring funny ref '%s' locally"
msgstr "* Äang bá» qua tham chiếu thú vị ná»™i bá»™ “%sâ€"
-#: remote.c:2236
+#: remote.c:2235
#, c-format
msgid "Your branch is based on '%s', but the upstream is gone.\n"
msgstr ""
"Nhánh của bạn dá»±a trên cÆ¡ sở là “%sâ€, nhÆ°ng trên thượng nguồn không còn.\n"
-#: remote.c:2240
+#: remote.c:2239
msgid " (use \"git branch --unset-upstream\" to fixup)\n"
msgstr " (dùng \" git branch --unset-upstream\" để sửa)\n"
-#: remote.c:2243
+#: remote.c:2242
#, c-format
msgid "Your branch is up to date with '%s'.\n"
msgstr "Nhánh của bạn đã cập nhật vá»›i “%sâ€.\n"
-#: remote.c:2247
+#: remote.c:2246
#, c-format
msgid "Your branch and '%s' refer to different commits.\n"
msgstr "Nhánh của bạn và “%s†tham chiếu đến các lần chuyển giao khác nhau.\n"
-#: remote.c:2250
+#: remote.c:2249
#, c-format
msgid " (use \"%s\" for details)\n"
msgstr " (dùng \"%s\" để biết thêm chi tiết)\n"
-#: remote.c:2254
+#: remote.c:2253
#, c-format
msgid "Your branch is ahead of '%s' by %d commit.\n"
msgid_plural "Your branch is ahead of '%s' by %d commits.\n"
msgstr[0] "Nhánh của bạn đứng trước “%s†%d lần chuyển giao.\n"
-#: remote.c:2260
+#: remote.c:2259
msgid " (use \"git push\" to publish your local commits)\n"
msgstr " (dùng \"git push\" để xuất bản các lần chuyển giao nội bộ của bạn)\n"
-#: remote.c:2263
+#: remote.c:2262
#, c-format
msgid "Your branch is behind '%s' by %d commit, and can be fast-forwarded.\n"
msgid_plural ""
@@ -7361,11 +7580,11 @@ msgstr[0] ""
"Nhánh của bạn đứng đằng sau “%s†%d lần chuyển giao, và có thể được chuyển-"
"tiếp-nhanh.\n"
-#: remote.c:2271
+#: remote.c:2270
msgid " (use \"git pull\" to update your local branch)\n"
msgstr " (dùng \"git pull\" để cập nhật nhánh nội bộ của bạn)\n"
-#: remote.c:2274
+#: remote.c:2273
#, c-format
msgid ""
"Your branch and '%s' have diverged,\n"
@@ -7378,13 +7597,13 @@ msgstr[0] ""
"và có %d và %d lần chuyển giao khác nhau cho từng cái,\n"
"tương ứng với mỗi lần.\n"
-#: remote.c:2284
+#: remote.c:2283
msgid " (use \"git pull\" to merge the remote branch into yours)\n"
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:2476
+#: remote.c:2475
#, 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â€"
@@ -7422,104 +7641,108 @@ msgstr "gặp lá»—i Ä‘á»c khi Ä‘ang ghi “%s†(%s)"
msgid "failed to flush '%s'"
msgstr "gặp lỗi khi đẩy dữ liệu “%s†lên đĩa"
-#: rerere.c:487 rerere.c:1023
+#: rerere.c:487 rerere.c:1024
#, c-format
msgid "could not parse conflict hunks in '%s'"
msgstr "không thể phân tích các mảnh xung Ä‘á»™t trong “%sâ€"
-#: rerere.c:668
+#: rerere.c:669
#, c-format
msgid "failed utime() on '%s'"
msgstr "gặp lá»—i utime() trên “%sâ€"
-#: rerere.c:678
+#: rerere.c:679
#, c-format
msgid "writing '%s' failed"
msgstr "gặp lá»—i khi Ä‘ang ghi “%sâ€"
-#: rerere.c:698
+#: rerere.c:699
#, c-format
msgid "Staged '%s' using previous resolution."
msgstr "Äã tạm cất “%s†sá»­ dụng cách phân giải kế trÆ°á»›c."
-#: rerere.c:737
+#: rerere.c:738
#, c-format
msgid "Recorded resolution for '%s'."
msgstr "Cách giải quyết đã ghi lại cho “%sâ€."
-#: rerere.c:772
+#: rerere.c:773
#, c-format
msgid "Resolved '%s' using previous resolution."
msgstr "Äã phân giải giải “%s†sá»­ dụng cách giải quyết kế trÆ°á»›c."
-#: rerere.c:787
+#: rerere.c:788
#, c-format
msgid "cannot unlink stray '%s'"
msgstr "không thể unlink stray “%sâ€"
-#: rerere.c:791
+#: rerere.c:792
#, c-format
msgid "Recorded preimage for '%s'"
msgstr "Preimage đã được ghi lại cho “%sâ€"
-#: rerere.c:865 submodule.c:2121 builtin/log.c:2017
-#: builtin/submodule--helper.c:1777 builtin/submodule--helper.c:1820
+#: rerere.c:866 submodule.c:2290 builtin/log.c:2042
+#: builtin/submodule--helper.c:1786 builtin/submodule--helper.c:1833
#, c-format
msgid "could not create directory '%s'"
msgstr "không thể tạo thÆ° mục “%sâ€"
-#: rerere.c:1041
+#: rerere.c:1042
#, c-format
msgid "failed to update conflicted state in '%s'"
msgstr "gặp lá»—i khi chạy cập nhật trạng thái bị xung Ä‘á»™t trong “%sâ€"
-#: rerere.c:1052 rerere.c:1059
+#: rerere.c:1053 rerere.c:1060
#, c-format
msgid "no remembered resolution for '%s'"
msgstr "đừng nhó các giải quyết cho “%sâ€"
-#: rerere.c:1061
+#: rerere.c:1062
#, c-format
msgid "cannot unlink '%s'"
msgstr "không thể unlink “%sâ€"
-#: rerere.c:1071
+#: rerere.c:1072
#, c-format
msgid "Updated preimage for '%s'"
msgstr "Äã cập nhật preimage cho “%sâ€"
-#: rerere.c:1080
+#: rerere.c:1081
#, c-format
msgid "Forgot resolution for '%s'\n"
msgstr "Quên phân giải cho “%sâ€\n"
-#: rerere.c:1191
+#: rerere.c:1192
msgid "unable to open rr-cache directory"
msgstr "không thể mở thư mục rr-cache"
-#: reset.c:42
+#: reset.c:112
msgid "could not determine HEAD revision"
msgstr "không thể dò tìm điểm xét duyệt HEAD"
-#: reset.c:70 reset.c:76 sequencer.c:3700
+#: reset.c:141 reset.c:147 sequencer.c:3696
#, c-format
msgid "failed to find tree of %s"
msgstr "gặp lỗi khi tìm cây của %s"
-#: revision.c:2347
+#: revision.c:2358
msgid "--unpacked=<packfile> no longer supported"
msgstr "--unpacked=<packfile> không còn được hỗ trợ nữa"
-#: revision.c:2686
+#: revision.c:2712
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:2689
+#: revision.c:2715
#, 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:2891
+#: revision.c:2901
+msgid "object filtering requires --objects"
+msgstr "lá»c đối tượng yêu cầu --objects"
+
+#: revision.c:2918
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"
@@ -7589,7 +7812,7 @@ msgstr "chế Ä‘á»™ dá»n dẹp ghi chú các lần chuyển giao không hợp l
msgid "could not delete '%s'"
msgstr "không thể xóa bỠ“%sâ€"
-#: sequencer.c:345 sequencer.c:4751 builtin/rebase.c:563 builtin/rebase.c:1297
+#: sequencer.c:345 sequencer.c:4724 builtin/rebase.c:564 builtin/rebase.c:1326
#: builtin/rm.c:409
#, c-format
msgid "could not remove '%s'"
@@ -7652,13 +7875,13 @@ msgstr ""
"Äể bãi bá» và quay trở lại trạng thái trÆ°á»›c \"git revert\",\n"
"chạy \"git revert --abort\"."
-#: sequencer.c:448 sequencer.c:3292
+#: sequencer.c:448 sequencer.c:3288
#, c-format
msgid "could not lock '%s'"
msgstr "không thể khóa “%sâ€"
-#: sequencer.c:450 sequencer.c:3091 sequencer.c:3296 sequencer.c:3310
-#: sequencer.c:3561 sequencer.c:5618 strbuf.c:1188 wrapper.c:639
+#: sequencer.c:450 sequencer.c:3087 sequencer.c:3292 sequencer.c:3306
+#: sequencer.c:3557 sequencer.c:5591 strbuf.c:1189 wrapper.c:715
#, c-format
msgid "could not write to '%s'"
msgstr "không thể ghi vào “%sâ€"
@@ -7668,14 +7891,14 @@ msgstr "không thể ghi vào “%sâ€"
msgid "could not write eol to '%s'"
msgstr "không thể ghi eol vào “%sâ€"
-#: sequencer.c:460 sequencer.c:3096 sequencer.c:3298 sequencer.c:3312
-#: sequencer.c:3569
+#: sequencer.c:460 sequencer.c:3092 sequencer.c:3294 sequencer.c:3308
+#: sequencer.c:3565
#, c-format
msgid "failed to finalize '%s'"
msgstr "gặp lá»—i khi hoàn thành “%sâ€"
-#: sequencer.c:473 sequencer.c:1934 sequencer.c:3116 sequencer.c:3551
-#: sequencer.c:3679 builtin/am.c:289 builtin/commit.c:834 builtin/merge.c:1148
+#: sequencer.c:473 sequencer.c:1930 sequencer.c:3112 sequencer.c:3547
+#: sequencer.c:3675 builtin/am.c:290 builtin/commit.c:837 builtin/merge.c:1154
#, c-format
msgid "could not read '%s'"
msgstr "không thể Ä‘á»c “%sâ€"
@@ -7694,7 +7917,7 @@ msgstr "chuyển giao các thay đổi của bạn hay tạm cất (stash) chún
msgid "%s: fast-forward"
msgstr "%s: chuyển-tiếp-nhanh"
-#: sequencer.c:574 builtin/tag.c:614
+#: sequencer.c:574 builtin/tag.c:615
#, c-format
msgid "Invalid cleanup mode %s"
msgstr "Chế Ä‘á»™ dá»n dẹp không hợp lệ %s"
@@ -7725,8 +7948,8 @@ 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:841 wrapper.c:209 wrapper.c:379 builtin/am.c:756
-#: builtin/am.c:848 builtin/rebase.c:694
+#: sequencer.c:841 wrapper.c:219 wrapper.c:389 builtin/am.c:757
+#: builtin/am.c:849 builtin/rebase.c:699
#, c-format
msgid "could not open '%s' for reading"
msgstr "không thể mở “%s†để Ä‘á»c"
@@ -7852,352 +8075,347 @@ msgstr ""
"\n"
" git commit --amend --reset-author\n"
-#: sequencer.c:1288
+#: sequencer.c:1287
msgid "couldn't look up newly created commit"
msgstr "không thể tìm thấy lần chuyển giao mới hơn đã được tạo"
-#: sequencer.c:1290
+#: sequencer.c:1289
msgid "could not parse newly created commit"
msgstr ""
"không thể phân tích cú pháp của đối tượng chuyển giao mới hơn đã được tạo"
-#: sequencer.c:1339
+#: sequencer.c:1336
msgid "unable to resolve HEAD after creating commit"
msgstr "không thể phân giải HEAD sau khi tạo lần chuyển giao"
-#: sequencer.c:1342
+#: sequencer.c:1338
msgid "detached HEAD"
msgstr "đã rá»i khá»i HEAD"
-#: sequencer.c:1346
+#: sequencer.c:1342
msgid " (root-commit)"
msgstr " (root-commit)"
-#: sequencer.c:1367
+#: sequencer.c:1363
msgid "could not parse HEAD"
msgstr "không thể phân tích HEAD"
-#: sequencer.c:1369
+#: sequencer.c:1365
#, c-format
msgid "HEAD %s is not a commit!"
msgstr "HEAD %s không phải là một lần chuyển giao!"
-#: sequencer.c:1373 sequencer.c:1451 builtin/commit.c:1708
+#: sequencer.c:1369 sequencer.c:1447 builtin/commit.c:1707
msgid "could not parse HEAD commit"
msgstr "không thể phân tích commit (lần chuyển giao) HEAD"
-#: sequencer.c:1429 sequencer.c:2314
+#: sequencer.c:1425 sequencer.c:2310
msgid "unable to parse commit author"
msgstr "không thể phân tích tác giả của lần chuyển giao"
-#: sequencer.c:1440 builtin/am.c:1643 builtin/merge.c:710
+#: sequencer.c:1436 builtin/am.c:1644 builtin/merge.c:710
msgid "git write-tree failed to write a tree"
msgstr "lệnh git write-tree gặp lỗi khi ghi một cây"
-#: sequencer.c:1473 sequencer.c:1593
+#: sequencer.c:1469 sequencer.c:1589
#, c-format
msgid "unable to read commit message from '%s'"
msgstr "không thể Ä‘á»c phần chú thích (message) từ “%sâ€"
-#: sequencer.c:1504 sequencer.c:1536
+#: sequencer.c:1500 sequencer.c:1532
#, c-format
msgid "invalid author identity '%s'"
msgstr "định danh tác giả không hợp lệ “%sâ€"
-#: sequencer.c:1510
+#: sequencer.c:1506
msgid "corrupt author: missing date information"
msgstr "tác giả sai há»ng: thiếu thông tin ngày tháng"
-#: sequencer.c:1549 builtin/am.c:1670 builtin/commit.c:1822 builtin/merge.c:915
-#: builtin/merge.c:940 t/helper/test-fast-rebase.c:78
+#: sequencer.c:1545 builtin/am.c:1671 builtin/commit.c:1821 builtin/merge.c:921
+#: builtin/merge.c:946 t/helper/test-fast-rebase.c:78
msgid "failed to write commit object"
msgstr "gặp lỗi khi ghi đối tượng chuyển giao"
-#: sequencer.c:1576 sequencer.c:4523 t/helper/test-fast-rebase.c:199
+#: sequencer.c:1572 sequencer.c:4496 t/helper/test-fast-rebase.c:199
#: t/helper/test-fast-rebase.c:217
#, c-format
msgid "could not update %s"
msgstr "không thể cập nhật %s"
-#: sequencer.c:1625
+#: sequencer.c:1621
#, c-format
msgid "could not parse commit %s"
msgstr "không thể phân tích lần chuyển giao %s"
-#: sequencer.c:1630
+#: sequencer.c:1626
#, c-format
msgid "could not parse parent commit %s"
msgstr "không thể phân tích lần chuyển giao cha mẹ “%sâ€"
-#: sequencer.c:1713 sequencer.c:1994
+#: sequencer.c:1709 sequencer.c:1990
#, c-format
msgid "unknown command: %d"
msgstr "không hiểu câu lệnh %d"
-#: sequencer.c:1755
+#: sequencer.c:1751
msgid "This is the 1st commit message:"
msgstr "Äây là chú thích cho lần chuyển giao thứ nhất:"
-#: sequencer.c:1756
+#: sequencer.c:1752
#, c-format
msgid "This is the commit message #%d:"
msgstr "Äây là chú thích cho lần chuyển giao thứ #%d:"
-#: sequencer.c:1757
+#: sequencer.c:1753
msgid "The 1st commit message will be skipped:"
msgstr "Chú thích cho lần chuyển giao thứ nhất sẽ bị bỠqua:"
-#: sequencer.c:1758
+#: sequencer.c:1754
#, c-format
msgid "The commit message #%d will be skipped:"
msgstr "Chú thích cho lần chuyển giao thứ #%d sẽ bị bỠqua:"
-#: sequencer.c:1759
+#: sequencer.c:1755
#, c-format
msgid "This is a combination of %d commits."
msgstr "Äây là tổ hợp của %d lần chuyển giao."
-#: sequencer.c:1906 sequencer.c:1963
+#: sequencer.c:1902 sequencer.c:1959
#, c-format
msgid "cannot write '%s'"
msgstr "không thể ghi “%sâ€"
-#: sequencer.c:1953
+#: sequencer.c:1949
msgid "need a HEAD to fixup"
msgstr "cần một HEAD để sửa"
-#: sequencer.c:1955 sequencer.c:3596
+#: sequencer.c:1951 sequencer.c:3592
msgid "could not read HEAD"
msgstr "không thể Ä‘á»c HEAD"
-#: sequencer.c:1957
+#: sequencer.c:1953
msgid "could not read HEAD's commit message"
msgstr "không thể Ä‘á»c phần chú thích (message) của HEAD"
-#: sequencer.c:1981
+#: sequencer.c:1977
#, c-format
msgid "could not read commit message of %s"
msgstr "không thể Ä‘á»c phần chú thích (message) của %s"
-#: sequencer.c:2091
+#: sequencer.c:2087
msgid "your index file is unmerged."
msgstr "tập tin lưu mục lục của bạn không được hòa trộn."
-#: sequencer.c:2098
+#: sequencer.c:2094
msgid "cannot fixup root commit"
msgstr "không thể sửa chữa lần chuyển giao gốc"
-#: sequencer.c:2117
+#: sequencer.c:2113
#, c-format
msgid "commit %s is a merge but no -m option was given."
msgstr "lần chuyển giao %s là má»™t lần hòa trá»™n nhÆ°ng không Ä‘Æ°a ra tùy chá»n -m."
-#: sequencer.c:2125 sequencer.c:2133
+#: sequencer.c:2121 sequencer.c:2129
#, c-format
msgid "commit %s does not have parent %d"
msgstr "lần chuyển giao %s không có cha mẹ %d"
-#: sequencer.c:2139
+#: sequencer.c:2135
#, c-format
msgid "cannot get commit message for %s"
msgstr "không thể lấy ghi chú lần chuyển giao cho %s"
#. TRANSLATORS: The first %s will be a "todo" command like
#. "revert" or "pick", the second %s a SHA1.
-#: sequencer.c:2158
+#: sequencer.c:2154
#, c-format
msgid "%s: cannot parse parent commit %s"
msgstr "%s: không thể phân tích lần chuyển giao mẹ của %s"
-#: sequencer.c:2224
+#: sequencer.c:2220
#, c-format
msgid "could not rename '%s' to '%s'"
msgstr "không thể đổi tên “%s†thành “%sâ€"
-#: sequencer.c:2284
+#: sequencer.c:2280
#, c-format
msgid "could not revert %s... %s"
msgstr "không thể hoàn nguyên %s… %s"
-#: sequencer.c:2285
+#: sequencer.c:2281
#, c-format
msgid "could not apply %s... %s"
msgstr "không thể áp dụng miếng vá %s… %s"
-#: sequencer.c:2306
+#: sequencer.c:2302
#, c-format
msgid "dropping %s %s -- patch contents already upstream\n"
msgstr "xóa %s %s -- vá nội dung thượng nguồn đã có\n"
-#: sequencer.c:2364
+#: sequencer.c:2360
#, c-format
msgid "git %s: failed to read the index"
msgstr "git %s: gặp lá»—i Ä‘á»c bảng mục lục"
-#: sequencer.c:2372
+#: sequencer.c:2368
#, c-format
msgid "git %s: failed to refresh the index"
msgstr "git %s: gặp lỗi khi làm tươi mới bảng mục lục"
-#: sequencer.c:2452
+#: sequencer.c:2448
#, c-format
msgid "%s does not accept arguments: '%s'"
msgstr "%s không nhận các đối số: “%sâ€"
-#: sequencer.c:2461
+#: sequencer.c:2457
#, c-format
msgid "missing arguments for %s"
msgstr "thiếu đối số cho %s"
-#: sequencer.c:2504
+#: sequencer.c:2500
#, c-format
msgid "could not parse '%s'"
msgstr "không thể phân tích cú pháp “%sâ€"
-#: sequencer.c:2565
+#: sequencer.c:2561
#, c-format
msgid "invalid line %d: %.*s"
msgstr "dòng không hợp lệ %d: %.*s"
-#: sequencer.c:2576
+#: sequencer.c:2572
#, c-format
msgid "cannot '%s' without a previous commit"
msgstr "không thể “%s†thể mà không có lần chuyển giao kế trước"
-#: sequencer.c:2624 builtin/rebase.c:184
+#: sequencer.c:2620 builtin/rebase.c:185
#, c-format
msgid "could not read '%s'."
msgstr "không thể Ä‘á»c “%sâ€."
-#: sequencer.c:2662
+#: sequencer.c:2658
msgid "cancelling a cherry picking in progress"
msgstr "đang hủy bỠthao tác cherry pick đang thực hiện"
-#: sequencer.c:2671
+#: sequencer.c:2667
msgid "cancelling a revert in progress"
msgstr "đang hủy bỠcác thao tác hoàn nguyên đang thực hiện"
-#: sequencer.c:2711
+#: sequencer.c:2707
msgid "please fix this using 'git rebase --edit-todo'."
msgstr "vui lòng sá»­a lá»—i này bằng cách dùng “git rebase --edit-todoâ€."
-#: sequencer.c:2713
+#: sequencer.c:2709
#, c-format
msgid "unusable instruction sheet: '%s'"
msgstr "bảng chỉ thị không thể dùng được: %s"
-#: sequencer.c:2718
+#: sequencer.c:2714
msgid "no commits parsed."
msgstr "không có lần chuyển giao nào được phân tích."
-#: sequencer.c:2729
+#: sequencer.c:2725
msgid "cannot cherry-pick during a revert."
msgstr "không thể cherry-pick trong khi hoàn nguyên."
-#: sequencer.c:2731
+#: sequencer.c:2727
msgid "cannot revert during a cherry-pick."
msgstr "không thể thực hiện việc hoàn nguyên trong khi đang cherry-pick."
-#: sequencer.c:2809
-#, c-format
-msgid "invalid value for %s: %s"
-msgstr "giá trị cho %s không hợp lệ: %s"
-
-#: sequencer.c:2918
+#: sequencer.c:2914
msgid "unusable squash-onto"
msgstr "squash-onto không dùng được"
-#: sequencer.c:2938
+#: sequencer.c:2934
#, c-format
msgid "malformed options sheet: '%s'"
msgstr "bảng tùy chá»n dị hình: “%sâ€"
-#: sequencer.c:3033 sequencer.c:4902
+#: sequencer.c:3029 sequencer.c:4875
msgid "empty commit set passed"
msgstr "lần chuyển giao trống rỗng đặt là hợp quy cách"
-#: sequencer.c:3050
+#: sequencer.c:3046
msgid "revert is already in progress"
msgstr "có thao tác hoàn nguyên đang được thực hiện"
-#: sequencer.c:3052
+#: sequencer.c:3048
#, c-format
msgid "try \"git revert (--continue | %s--abort | --quit)\""
msgstr "hãy thử \"git revert (--continue | %s--abort | --quit)\""
-#: sequencer.c:3055
+#: sequencer.c:3051
msgid "cherry-pick is already in progress"
msgstr "có thao tác “cherry-pick†đang được thực hiện"
-#: sequencer.c:3057
+#: sequencer.c:3053
#, c-format
msgid "try \"git cherry-pick (--continue | %s--abort | --quit)\""
msgstr "hãy thử \"git cherry-pick (--continue | %s--abort | --quit)\""
-#: sequencer.c:3071
+#: sequencer.c:3067
#, c-format
msgid "could not create sequencer directory '%s'"
msgstr "không thể tạo thÆ° mục xếp dãy “%sâ€"
-#: sequencer.c:3086
+#: sequencer.c:3082
msgid "could not lock HEAD"
msgstr "không thể khóa HEAD"
-#: sequencer.c:3146 sequencer.c:4612
+#: sequencer.c:3142 sequencer.c:4585
msgid "no cherry-pick or revert in progress"
msgstr "không cherry-pick hay hoàn nguyên trong tiến trình"
-#: sequencer.c:3148 sequencer.c:3159
+#: sequencer.c:3144 sequencer.c:3155
msgid "cannot resolve HEAD"
msgstr "không thể phân giải HEAD"
-#: sequencer.c:3150 sequencer.c:3194
+#: sequencer.c:3146 sequencer.c:3190
msgid "cannot abort from a branch yet to be born"
msgstr "không thể hủy bỠtừ một nhánh mà nó còn chưa được tạo ra"
-#: sequencer.c:3180 builtin/fetch.c:1004 builtin/fetch.c:1416
-#: builtin/grep.c:772
+#: sequencer.c:3176 builtin/fetch.c:1030 builtin/fetch.c:1457
+#: builtin/grep.c:774
#, c-format
msgid "cannot open '%s'"
msgstr "không mở được “%sâ€"
-#: sequencer.c:3182
+#: sequencer.c:3178
#, c-format
msgid "cannot read '%s': %s"
msgstr "không thể Ä‘á»c “%sâ€: %s"
-#: sequencer.c:3183
+#: sequencer.c:3179
msgid "unexpected end of file"
msgstr "gặp kết thúc tập tin đột xuất"
-#: sequencer.c:3189
+#: sequencer.c:3185
#, c-format
msgid "stored pre-cherry-pick HEAD file '%s' is corrupt"
msgstr "tập tin HEAD “pre-cherry-pick†đã lÆ°u “%s†bị há»ng"
-#: sequencer.c:3200
+#: sequencer.c:3196
msgid "You seem to have moved HEAD. Not rewinding, check your HEAD!"
msgstr ""
"Bạn có lẽ đã có HEAD đã bị di chuyển đi, Không thể tua, kiểm tra HEAD của "
"bạn!"
-#: sequencer.c:3241
+#: sequencer.c:3237
msgid "no revert in progress"
msgstr "không có tiến trình hoàn nguyên nào"
-#: sequencer.c:3250
+#: sequencer.c:3246
msgid "no cherry-pick in progress"
msgstr "không có cherry-pick đang được thực hiện"
-#: sequencer.c:3260
+#: sequencer.c:3256
msgid "failed to skip the commit"
msgstr "gặp lỗi khi bỠqua đối tượng chuyển giao"
-#: sequencer.c:3267
+#: sequencer.c:3263
msgid "there is nothing to skip"
msgstr "ở đây không có gì để mà bỠqua cả"
-#: sequencer.c:3270
+#: sequencer.c:3266
#, c-format
msgid ""
"have you committed already?\n"
@@ -8206,16 +8424,16 @@ msgstr ""
"bạn đã sẵn sàng chuyển giao chưa?\n"
"thá»­ \"git %s --continue\""
-#: sequencer.c:3432 sequencer.c:4503
+#: sequencer.c:3428 sequencer.c:4476
msgid "cannot read HEAD"
msgstr "không thể Ä‘á»c HEAD"
-#: sequencer.c:3449
+#: sequencer.c:3445
#, c-format
msgid "unable to copy '%s' to '%s'"
msgstr "không thể chép “%s†sang “%sâ€"
-#: sequencer.c:3457
+#: sequencer.c:3453
#, c-format
msgid ""
"You can amend the commit now, with\n"
@@ -8234,27 +8452,27 @@ msgstr ""
"\n"
" git rebase --continue\n"
-#: sequencer.c:3467
+#: sequencer.c:3463
#, c-format
msgid "Could not apply %s... %.*s"
msgstr "Không thể áp dụng %s… %.*s"
-#: sequencer.c:3474
+#: sequencer.c:3470
#, c-format
msgid "Could not merge %.*s"
msgstr "Không hòa trộn %.*s"
-#: sequencer.c:3488 sequencer.c:3492 builtin/difftool.c:633
+#: sequencer.c:3484 sequencer.c:3488 builtin/difftool.c:633
#, c-format
msgid "could not copy '%s' to '%s'"
msgstr "không thể chép “%s†sang “%sâ€"
-#: sequencer.c:3503
+#: sequencer.c:3499
#, c-format
msgid "Executing: %s\n"
msgstr "Äang thá»±c thi: %s\n"
-#: sequencer.c:3514
+#: sequencer.c:3510
#, c-format
msgid ""
"execution failed: %s\n"
@@ -8269,11 +8487,11 @@ msgstr ""
" git rebase --continue\n"
"\n"
-#: sequencer.c:3520
+#: sequencer.c:3516
msgid "and made changes to the index and/or the working tree\n"
msgstr "và tạo các thay đổi bảng mục lục và/hay cây làm việc\n"
-#: sequencer.c:3526
+#: sequencer.c:3522
#, c-format
msgid ""
"execution succeeded: %s\n"
@@ -8290,90 +8508,90 @@ msgstr ""
" git rebase --continue\n"
"\n"
-#: sequencer.c:3586
+#: sequencer.c:3582
#, c-format
msgid "illegal label name: '%.*s'"
msgstr "tên nhãn dị hình: “%.*sâ€"
-#: sequencer.c:3659
+#: sequencer.c:3655
msgid "writing fake root commit"
msgstr "ghi lần chuyển giao gốc giả"
-#: sequencer.c:3664
+#: sequencer.c:3660
msgid "writing squash-onto"
msgstr "Ä‘ang ghi squash-onto"
-#: sequencer.c:3743
+#: sequencer.c:3739
#, c-format
msgid "could not resolve '%s'"
msgstr "không thể phân giải “%sâ€"
-#: sequencer.c:3775
+#: sequencer.c:3771
msgid "cannot merge without a current revision"
msgstr "không thể hòa trộn mà không có một điểm xét duyệt hiện tại"
-#: sequencer.c:3797
+#: sequencer.c:3793
#, c-format
msgid "unable to parse '%.*s'"
msgstr "không thể phân tích “%.*sâ€"
-#: sequencer.c:3806
+#: sequencer.c:3802
#, c-format
msgid "nothing to merge: '%.*s'"
msgstr "chẳng có gì để hòa trá»™n: “%.*sâ€"
-#: sequencer.c:3818
+#: sequencer.c:3814
msgid "octopus merge cannot be executed on top of a [new root]"
msgstr "hòa trộn octopus không thể được thực thi trên đỉnh của một [new root]"
-#: sequencer.c:3873
+#: sequencer.c:3869
#, c-format
msgid "could not get commit message of '%s'"
msgstr "không thể lấy chú thích của lần chuyển giao của “%sâ€"
-#: sequencer.c:4019
+#: sequencer.c:4013
#, c-format
msgid "could not even attempt to merge '%.*s'"
msgstr "không thể ngay cả khi thá»­ hòa trá»™n “%.*sâ€"
-#: sequencer.c:4035
+#: sequencer.c:4029
msgid "merge: Unable to write new index file"
msgstr "merge: Không thể ghi tập tin lưu bảng mục lục mới"
-#: sequencer.c:4116
+#: sequencer.c:4110
msgid "Cannot autostash"
msgstr "Không thể autostash"
-#: sequencer.c:4119
+#: sequencer.c:4113
#, c-format
msgid "Unexpected stash response: '%s'"
msgstr "Gặp đáp ứng stash không cần: “%sâ€"
-#: sequencer.c:4125
+#: sequencer.c:4119
#, c-format
msgid "Could not create directory for '%s'"
msgstr "Không thể tạo thÆ° mục cho “%sâ€"
-#: sequencer.c:4128
+#: sequencer.c:4122
#, c-format
msgid "Created autostash: %s\n"
msgstr "Äã tạo autostash: %s\n"
-#: sequencer.c:4132
+#: sequencer.c:4124
msgid "could not reset --hard"
msgstr "không thể reset --hard"
-#: sequencer.c:4157
+#: sequencer.c:4148
#, c-format
msgid "Applied autostash.\n"
msgstr "Äã áp dụng autostash.\n"
-#: sequencer.c:4169
+#: sequencer.c:4160
#, c-format
msgid "cannot store %s"
msgstr "không thá»­ lÆ°u “%sâ€"
-#: sequencer.c:4172
+#: sequencer.c:4163
#, c-format
msgid ""
"%s\n"
@@ -8385,29 +8603,29 @@ msgstr ""
"Bạn có thể chạy lệnh \"git stash pop\" hay \"git stash drop\" bất kỳ lúc "
"nào.\n"
-#: sequencer.c:4177
+#: sequencer.c:4168
msgid "Applying autostash resulted in conflicts."
msgstr "Ãp dụng autostash có hiệu quả trong các xung Ä‘á»™t."
-#: sequencer.c:4178
+#: sequencer.c:4169
msgid "Autostash exists; creating a new stash entry."
msgstr "Autostash đã sẵn có; nên tạo một mục stash mới."
-#: sequencer.c:4252
+#: sequencer.c:4225
msgid "could not detach HEAD"
msgstr "không thể tách rá»i HEAD"
-#: sequencer.c:4267
+#: sequencer.c:4240
#, c-format
msgid "Stopped at HEAD\n"
msgstr "Dừng lại ở HEAD\n"
-#: sequencer.c:4269
+#: sequencer.c:4242
#, c-format
msgid "Stopped at %s\n"
msgstr "Dừng lại ở %s\n"
-#: sequencer.c:4301
+#: sequencer.c:4274
#, c-format
msgid ""
"Could not execute the todo command\n"
@@ -8428,58 +8646,58 @@ msgstr ""
" git rebase --edit-todo\n"
" git rebase --continue\n"
-#: sequencer.c:4347
+#: sequencer.c:4320
#, c-format
msgid "Rebasing (%d/%d)%s"
msgstr "Äang cải tổ (%d/%d)%s"
-#: sequencer.c:4393
+#: sequencer.c:4366
#, c-format
msgid "Stopped at %s... %.*s\n"
msgstr "Dừng lại ở %s… %.*s\n"
-#: sequencer.c:4463
+#: sequencer.c:4436
#, c-format
msgid "unknown command %d"
msgstr "không hiểu câu lệnh %d"
-#: sequencer.c:4511
+#: sequencer.c:4484
msgid "could not read orig-head"
msgstr "không thể Ä‘á»c orig-head"
-#: sequencer.c:4516
+#: sequencer.c:4489
msgid "could not read 'onto'"
msgstr "không thể Ä‘á»c “ontoâ€."
-#: sequencer.c:4530
+#: sequencer.c:4503
#, c-format
msgid "could not update HEAD to %s"
msgstr "không thể cập nhật HEAD thành %s"
-#: sequencer.c:4590
+#: sequencer.c:4563
#, c-format
msgid "Successfully rebased and updated %s.\n"
msgstr "Cài tổ và cập nhật %s một cách thành công.\n"
-#: sequencer.c:4642
+#: sequencer.c:4615
msgid "cannot rebase: You have unstaged changes."
msgstr "không thể cải tổ: Bạn có các thay đổi chưa được đưa lên bệ phóng."
-#: sequencer.c:4651
+#: sequencer.c:4624
msgid "cannot amend non-existing commit"
msgstr "không thể tu bỠmột lần chuyển giao không tồn tại"
-#: sequencer.c:4653
+#: sequencer.c:4626
#, c-format
msgid "invalid file: '%s'"
msgstr "tập tin không hợp lệ: “%sâ€"
-#: sequencer.c:4655
+#: sequencer.c:4628
#, c-format
msgid "invalid contents: '%s'"
msgstr "ná»™i dung không hợp lệ: “%sâ€"
-#: sequencer.c:4658
+#: sequencer.c:4631
msgid ""
"\n"
"You have uncommitted changes in your working tree. Please, commit them\n"
@@ -8489,69 +8707,69 @@ msgstr ""
"Bạn có các thay đổi chưa chuyển giao trong thư mục làm việc. Vui lòng\n"
"chuyển giao chúng trước và sau đó chạy lệnh “git rebase --continue†lần nữa."
-#: sequencer.c:4694 sequencer.c:4733
+#: sequencer.c:4667 sequencer.c:4706
#, c-format
msgid "could not write file: '%s'"
msgstr "không thể ghi tập tin: “%sâ€"
-#: sequencer.c:4749
+#: sequencer.c:4722
msgid "could not remove CHERRY_PICK_HEAD"
msgstr "không thể xóa bỠCHERRY_PICK_HEAD"
-#: sequencer.c:4759
+#: sequencer.c:4732
msgid "could not commit staged changes."
msgstr "không thể chuyển giao các thay đổi đã đưa lên bệ phóng."
-#: sequencer.c:4879
+#: sequencer.c:4852
#, c-format
msgid "%s: can't cherry-pick a %s"
msgstr "%s: không thể cherry-pick một %s"
-#: sequencer.c:4883
+#: sequencer.c:4856
#, c-format
msgid "%s: bad revision"
msgstr "%s: điểm xét duyệt sai"
-#: sequencer.c:4918
+#: sequencer.c:4891
msgid "can't revert as initial commit"
msgstr "không thể hoàn nguyên một lần chuyển giao khởi tạo"
-#: sequencer.c:5189 sequencer.c:5418
+#: sequencer.c:5162 sequencer.c:5391
#, c-format
msgid "skipped previously applied commit %s"
msgstr "bỠqua lần chuyển giao được áp dụng kế trước %s"
-#: sequencer.c:5259 sequencer.c:5434
+#: sequencer.c:5232 sequencer.c:5407
msgid "use --reapply-cherry-picks to include skipped commits"
msgstr ""
"dùng --reapply-cherry-picks để bao gồm các lần chuyển giao đã bị bỠqua"
-#: sequencer.c:5405
+#: sequencer.c:5378
msgid "make_script: unhandled options"
msgstr "make_script: các tùy chá»n được không xá»­ lý"
-#: sequencer.c:5408
+#: sequencer.c:5381
msgid "make_script: error preparing revisions"
msgstr "make_script: lỗi chuẩn bị điểm hiệu chỉnh"
-#: sequencer.c:5666 sequencer.c:5683
+#: sequencer.c:5639 sequencer.c:5656
msgid "nothing to do"
msgstr "không có gì để làm"
-#: sequencer.c:5702
+#: sequencer.c:5675
msgid "could not skip unnecessary pick commands"
msgstr "không thể bỠqua các lệnh cậy (pick) không cần thiết"
-#: sequencer.c:5802
+#: sequencer.c:5775
msgid "the script was already rearranged."
msgstr "văn lệnh đã sẵn được sắp đặt rồi."
-#: setup.c:134
+#: setup.c:135
#, c-format
msgid "'%s' is outside repository at '%s'"
msgstr "“%s†ngoài má»™t kho chứa tại “%sâ€"
-#: setup.c:186
+#: setup.c:187
#, c-format
msgid ""
"%s: no such path in the working tree.\n"
@@ -8561,7 +8779,7 @@ msgstr ""
"Dùng “git <lệnh> -- <Ä‘Æ°á»ng/dẫn>…†để chỉ định Ä‘Æ°á»ng dẫn mà nó không tồn tại "
"một cách nội bộ."
-#: setup.c:199
+#: setup.c:200
#, c-format
msgid ""
"ambiguous argument '%s': unknown revision or path not in the working tree.\n"
@@ -8573,12 +8791,12 @@ msgstr ""
"Dùng “--†để ngăn cách các Ä‘Æ°á»ng dẫn khá»i Ä‘iểm xem xét, nhÆ° thế này:\n"
"“git <lệnh> [<Ä‘iểm xem xét>…] -- [<tập tin>…]â€"
-#: setup.c:265
+#: setup.c:266
#, c-format
msgid "option '%s' must come before non-option arguments"
msgstr "tùy chá»n “%s†phải trÆ°á»›c các đối số đầu tiên không có tùy chá»n"
-#: setup.c:284
+#: setup.c:285
#, c-format
msgid ""
"ambiguous argument '%s': both revision and filename\n"
@@ -8589,98 +8807,98 @@ msgstr ""
"Dùng “--†để ngăn cách các Ä‘Æ°á»ng dẫn khá»i Ä‘iểm xem xét, nhÆ° thế này:\n"
"“git <lệnh> [<Ä‘iểm xem xét>…] -- [<tập tin>…]â€"
-#: setup.c:420
+#: setup.c:421
msgid "unable to set up work tree using invalid config"
msgstr "không thể cài đặt thư mục làm việc sử dụng cấu hình không hợp lệ"
-#: setup.c:424 builtin/rev-parse.c:895
+#: setup.c:425 builtin/rev-parse.c:895
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:722
+#: setup.c:724
#, 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:730
+#: setup.c:732
msgid "unknown repository extension found:"
msgid_plural "unknown repository extensions found:"
msgstr[0] "tìm thấy phần mở rộng kho chưa biết:"
-#: setup.c:744
+#: setup.c:746
msgid "repo version is 0, but v1-only extension found:"
msgid_plural "repo version is 0, but v1-only extensions found:"
msgstr[0] "phiên bản kho là 0, nhưng lại tìm thấy phần mở rộng chỉ v1:"
-#: setup.c:765
+#: setup.c:767
#, c-format
msgid "error opening '%s'"
msgstr "gặp lá»—i khi mở “%sâ€"
-#: setup.c:767
+#: setup.c:769
#, c-format
msgid "too large to be a .git file: '%s'"
msgstr "tập tin .git là quá lá»›n: “%sâ€"
-#: setup.c:769
+#: setup.c:771
#, c-format
msgid "error reading %s"
msgstr "gặp lá»—i khi Ä‘á»c %s"
-#: setup.c:771
+#: setup.c:773
#, c-format
msgid "invalid gitfile format: %s"
msgstr "định dạng tập tin git không hợp lệ: %s"
-#: setup.c:773
+#: setup.c:775
#, c-format
msgid "no path in gitfile: %s"
msgstr "không có Ä‘Æ°á»ng dẫn trong tập tin git: %s"
-#: setup.c:775
+#: setup.c:777
#, c-format
msgid "not a git repository: %s"
msgstr "không phải là kho git: %s"
-#: setup.c:877
+#: setup.c:879
#, c-format
msgid "'$%s' too big"
msgstr "“$%s†quá lớn"
-#: setup.c:891
+#: setup.c:893
#, c-format
msgid "not a git repository: '%s'"
msgstr "không phải là kho git: “%sâ€"
-#: setup.c:920 setup.c:922 setup.c:953
+#: setup.c:922 setup.c:924 setup.c:955
#, c-format
msgid "cannot chdir to '%s'"
msgstr "không thể chdir (chuyển đổi thÆ° mục) sang “%sâ€"
-#: setup.c:925 setup.c:981 setup.c:991 setup.c:1030 setup.c:1038
+#: setup.c:927 setup.c:983 setup.c:993 setup.c:1032 setup.c:1040
msgid "cannot come back to cwd"
msgstr "không thể quay lại cwd"
-#: setup.c:1052
+#: setup.c:1054
#, 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:1295
+#: setup.c:1338
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:1304 setup.c:1310
+#: setup.c:1347 setup.c:1353
#, c-format
msgid "cannot change to '%s'"
msgstr "không thể chuyển sang “%sâ€"
-#: setup.c:1315
+#: setup.c:1358
#, 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:1321
+#: setup.c:1364
#, c-format
msgid ""
"not a git repository (or any parent up to mount point %s)\n"
@@ -8690,7 +8908,20 @@ msgstr ""
"Dừng tại biên của hệ thống tập tin (GIT_DISCOVERY_ACROSS_FILESYSTEM chưa "
"đặt)."
-#: setup.c:1446
+#: setup.c:1374
+#, c-format
+msgid ""
+"unsafe repository ('%s' is owned by someone else)\n"
+"To add an exception for this directory, call:\n"
+"\n"
+"\tgit config --global --add safe.directory %s"
+msgstr ""
+"kho lÆ°u trữ không an toàn ('%s' thuá»™c sở hữu của ngÆ°á»i khác)\n"
+"Äể thêm ngoại lệ cho thÆ° mục này, hãy gá»i:\n"
+"\n"
+"\tgit config --global --add safe.directory %s"
+
+#: setup.c:1502
#, c-format
msgid ""
"problem with core.sharedRepository filemode value (0%.3o).\n"
@@ -8699,142 +8930,146 @@ 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:1508
+#: setup.c:1564
msgid "fork failed"
msgstr "gặp lỗi khi rẽ nhánh tiến trình"
-#: setup.c:1513
+#: setup.c:1569
msgid "setsid failed"
msgstr "setsid gặp lỗi"
-#: sparse-index.c:289
+#: sparse-index.c:285
#, c-format
msgid "index entry is a directory, but not sparse (%08x)"
msgstr "mục tin mục lục là một thư mục, nhưng không \"sparse\" (%08x)"
+#: split-index.c:9
+msgid "cannot use split index with a sparse index"
+msgstr "không thể sử dụng bảng mục lục chia tách với một \"sparse index\""
+
#. TRANSLATORS: IEC 80000-13:2008 gibibyte
-#: strbuf.c:850
+#: strbuf.c:851
#, c-format
msgid "%u.%2.2u GiB"
msgstr "%u.%2.2u GiB"
#. TRANSLATORS: IEC 80000-13:2008 gibibyte/second
-#: strbuf.c:852
+#: strbuf.c:853
#, c-format
msgid "%u.%2.2u GiB/s"
msgstr "%u.%2.2u GiB/giây"
#. TRANSLATORS: IEC 80000-13:2008 mebibyte
-#: strbuf.c:860
+#: strbuf.c:861
#, c-format
msgid "%u.%2.2u MiB"
msgstr "%u.%2.2u MiB"
#. TRANSLATORS: IEC 80000-13:2008 mebibyte/second
-#: strbuf.c:862
+#: strbuf.c:863
#, c-format
msgid "%u.%2.2u MiB/s"
msgstr "%u.%2.2u MiB/giây"
#. TRANSLATORS: IEC 80000-13:2008 kibibyte
-#: strbuf.c:869
+#: strbuf.c:870
#, c-format
msgid "%u.%2.2u KiB"
msgstr "%u.%2.2u KiB"
#. TRANSLATORS: IEC 80000-13:2008 kibibyte/second
-#: strbuf.c:871
+#: strbuf.c:872
#, c-format
msgid "%u.%2.2u KiB/s"
msgstr "%u.%2.2u KiB/giây"
#. TRANSLATORS: IEC 80000-13:2008 byte
-#: strbuf.c:877
+#: strbuf.c:878
#, c-format
msgid "%u byte"
msgid_plural "%u bytes"
msgstr[0] "%u byte"
#. TRANSLATORS: IEC 80000-13:2008 byte/second
-#: strbuf.c:879
+#: strbuf.c:880
#, c-format
msgid "%u byte/s"
msgid_plural "%u bytes/s"
msgstr[0] "%u byte/giây"
-#: strbuf.c:1186 wrapper.c:207 wrapper.c:377 builtin/am.c:765
-#: builtin/rebase.c:650
+#: strbuf.c:1187 wrapper.c:217 wrapper.c:387 builtin/am.c:766
+#: builtin/rebase.c:653
#, c-format
msgid "could not open '%s' for writing"
msgstr "không thể mở “%s†để ghi"
-#: strbuf.c:1195
+#: strbuf.c:1196
#, c-format
msgid "could not edit '%s'"
msgstr "không thể sá»­a “%sâ€"
-#: submodule-config.c:237
+#: submodule-config.c:238
#, c-format
msgid "ignoring suspicious submodule name: %s"
msgstr "Ä‘ang lá» Ä‘i tên mô-Ä‘un-con mập má»: %s"
-#: submodule-config.c:304
+#: submodule-config.c:305
msgid "negative values not allowed for submodule.fetchjobs"
msgstr "không cho phép giá trị âm ở submodule.fetchjobs"
-#: submodule-config.c:402
+#: submodule-config.c:403
#, c-format
msgid "ignoring '%s' which may be interpreted as a command-line option: %s"
msgstr ""
"Ä‘ang bá» qua “%s†cái mà có thể được phiên dịch nhÆ° là má»™t tùy chá»n dòng "
"lệnh: %s"
-#: submodule-config.c:499
+#: submodule-config.c:500 builtin/push.c:489 builtin/send-pack.c:148
#, c-format
-msgid "invalid value for %s"
-msgstr "giá trị cho %s không hợp lệ"
+msgid "invalid value for '%s'"
+msgstr "giá trị cho '%s' không hợp lệ"
-#: submodule-config.c:767
+#: submodule-config.c:828
#, c-format
msgid "Could not update .gitmodules entry %s"
msgstr "Không thể cập nhật mục .gitmodules %s"
-#: submodule.c:114 submodule.c:143
+#: submodule.c:115 submodule.c:144
msgid "Cannot change unmerged .gitmodules, resolve merge conflicts first"
msgstr ""
"Không thể thay đổi .gitmodules chưa hòa trộn, hãy giải quyết xung đột trộn "
"trÆ°á»›c"
-#: submodule.c:118 submodule.c:147
+#: submodule.c:119 submodule.c:148
#, c-format
msgid "Could not find section in .gitmodules where path=%s"
msgstr "Không thể tìm thấy phần trong .gitmodules nÆ¡i mà Ä‘Æ°á»ng_dẫn=%s"
-#: submodule.c:154
+#: submodule.c:155
#, c-format
msgid "Could not remove .gitmodules entry for %s"
msgstr "Không thể gỡ bỠmục .gitmodules dành cho %s"
-#: submodule.c:165
+#: submodule.c:166
msgid "staging updated .gitmodules failed"
msgstr "gặp lỗi khi tổ chức .gitmodules đã cập nhật"
-#: submodule.c:358
+#: submodule.c:346
#, c-format
msgid "in unpopulated submodule '%s'"
msgstr "trong mô-Ä‘un-con không có gì “%sâ€"
-#: submodule.c:389
+#: submodule.c:377
#, c-format
msgid "Pathspec '%s' is in submodule '%.*s'"
msgstr "Äặc tả Ä‘Æ°á»ng dẫn “%s†thì ở trong mô-Ä‘un-con “%.*sâ€"
-#: submodule.c:466
+#: submodule.c:454
#, c-format
msgid "bad --ignore-submodules argument: %s"
msgstr "đối số --ignore-submodules sai: %s"
-#: submodule.c:844
+#: submodule.c:866
#, c-format
msgid ""
"Submodule in commit %s at path: '%s' collides with a submodule named the "
@@ -8843,13 +9078,13 @@ msgstr ""
"Mô-Ä‘un-con trong lần chuyển giao %s tại Ä‘Æ°á»ng dẫn: “%s†va chạm vá»›i mô-Ä‘un-"
"con cùng tên. Nên bỠqua nó."
-#: submodule.c:954
+#: submodule.c:987
#, c-format
msgid "submodule entry '%s' (%s) is a %s, not a commit"
msgstr ""
"mục tin mô-đun-con “%s†(%s) là một %s, không phải là một lần chuyển giao"
-#: submodule.c:1042
+#: submodule.c:1069
#, c-format
msgid ""
"Could not run 'git rev-list <commits> --not --remotes -n 1' command in "
@@ -8858,36 +9093,46 @@ msgstr ""
"Không thể chạy lệnh “git rev-list <các lần chuyển giao> --not --remotes -n "
"1†trong mô-Ä‘un-con “%sâ€"
-#: submodule.c:1165
+#: submodule.c:1192
#, c-format
msgid "process for submodule '%s' failed"
msgstr "xử lý cho mô-đun-con “%s†gặp lỗi"
-#: submodule.c:1194 builtin/branch.c:699 builtin/submodule--helper.c:2714
+#: submodule.c:1221 builtin/branch.c:714 builtin/submodule--helper.c:2827
msgid "Failed to resolve HEAD as a valid ref."
msgstr "Gặp lỗi khi phân giải HEAD như là một tham chiếu hợp lệ."
-#: submodule.c:1205
+#: submodule.c:1232
#, c-format
msgid "Pushing submodule '%s'\n"
msgstr "Äẩy lên mô-Ä‘un-con “%sâ€\n"
-#: submodule.c:1208
+#: submodule.c:1235
#, c-format
msgid "Unable to push submodule '%s'\n"
msgstr "Không thể đẩy lên mô-Ä‘un-con “%sâ€\n"
-#: submodule.c:1491
+#: submodule.c:1567
#, c-format
msgid "Fetching submodule %s%s\n"
msgstr "Äang lấy vá» mô-Ä‘un-con %s%s\n"
-#: submodule.c:1525
+#: submodule.c:1589
#, c-format
msgid "Could not access submodule '%s'\n"
msgstr "Không thể truy cập mô-Ä‘un-con “%sâ€\n"
-#: submodule.c:1680
+#: submodule.c:1618
+#, c-format
+msgid "Could not access submodule '%s' at commit %s\n"
+msgstr "Không thể truy cập mô-đun-con “%s†ở lần chuyển giao %s\n"
+
+#: submodule.c:1629
+#, c-format
+msgid "Fetching submodule %s%s at commit %s\n"
+msgstr "Äang lấy vá» mô-Ä‘un-con %s%s tại lần chuyển giao %s\n"
+
+#: submodule.c:1849
#, c-format
msgid ""
"Errors during submodule fetch:\n"
@@ -8896,61 +9141,61 @@ msgstr ""
"Có lỗi khi lấy vỠmô-đun-con:\n"
" “%sâ€"
-#: submodule.c:1705
+#: submodule.c:1874
#, c-format
msgid "'%s' not recognized as a git repository"
msgstr "không nhận ra “%s†là một kho git"
-#: submodule.c:1722
+#: submodule.c:1891
#, c-format
msgid "Could not run 'git status --porcelain=2' in submodule %s"
msgstr "Không thể chạy “git status --porcelain=2†trong mô-Ä‘un-con “%sâ€"
-#: submodule.c:1763
+#: submodule.c:1932
#, c-format
msgid "'git status --porcelain=2' failed in submodule %s"
msgstr "“git status --porcelain=2†gặp lá»—i trong mô-Ä‘un-con “%sâ€"
-#: submodule.c:1838
+#: submodule.c:2007
#, c-format
msgid "could not start 'git status' in submodule '%s'"
msgstr "không thể lấy thống kê “git status†trong mô-Ä‘un-con “%sâ€"
-#: submodule.c:1851
+#: submodule.c:2020
#, c-format
msgid "could not run 'git status' in submodule '%s'"
msgstr "không thể chạy “git status†trong mô-Ä‘un-con “%sâ€"
-#: submodule.c:1868
+#: submodule.c:2037
#, c-format
msgid "Could not unset core.worktree setting in submodule '%s'"
msgstr "Không thể đặt core.worktree trong mô-Ä‘un-con “%sâ€"
-#: submodule.c:1895 submodule.c:2210
+#: submodule.c:2064 submodule.c:2379
#, c-format
msgid "could not recurse into submodule '%s'"
msgstr "không thể đệ quy vào trong mô-Ä‘un-con “%sâ€"
-#: submodule.c:1917
+#: submodule.c:2086
msgid "could not reset submodule index"
msgstr "không thể đặt lại mục lục của mô-đun-con"
-#: submodule.c:1959
+#: submodule.c:2128
#, c-format
msgid "submodule '%s' has dirty index"
msgstr "mô-đun-con “%s†có mục lục còn bẩn"
-#: submodule.c:2013
+#: submodule.c:2182
#, c-format
msgid "Submodule '%s' could not be updated."
msgstr "Mô-đun-con “%s†không thể được cập nhật."
-#: submodule.c:2081
+#: submodule.c:2250
#, c-format
msgid "submodule git dir '%s' is inside git dir '%.*s'"
msgstr "thÆ° mục git mô Ä‘un con “%s†là bên trong git DIR “%.*sâ€"
-#: submodule.c:2102
+#: submodule.c:2271
#, c-format
msgid ""
"relocate_gitdir for submodule '%s' with more than one worktree not supported"
@@ -8958,17 +9203,17 @@ msgstr ""
"relocate_gitdir cho mô-Ä‘un-con “%s†vá»›i nhiá»u hÆ¡n má»™t cây làm việc là chÆ°a "
"được hỗ trợ"
-#: submodule.c:2114 submodule.c:2174
+#: submodule.c:2283 submodule.c:2343
#, c-format
msgid "could not lookup name for submodule '%s'"
msgstr "không thể tìm kiếm tên cho mô-Ä‘un-con “%sâ€"
-#: submodule.c:2118
+#: submodule.c:2287
#, c-format
msgid "refusing to move '%s' into an existing git dir"
msgstr "từ chối di chuyển “%s†vào trong một thư mục git sẵn có"
-#: submodule.c:2124
+#: submodule.c:2293
#, c-format
msgid ""
"Migrating git directory of '%s%s' from\n"
@@ -8979,11 +9224,11 @@ msgstr ""
"“%s†sang\n"
"“%sâ€\n"
-#: submodule.c:2255
+#: submodule.c:2424
msgid "could not start ls-files in .."
msgstr "không thể lấy thông tin thống kê vỠls-files trong .."
-#: submodule.c:2295
+#: submodule.c:2464
#, c-format
msgid "ls-tree returned unexpected return code %d"
msgstr "ls-tree trả vỠmã không như mong đợi %d"
@@ -9004,8 +9249,8 @@ msgstr "chạy lệnh kéo theo “%s†gặp lỗi"
msgid "unknown value '%s' for key '%s'"
msgstr "không hiểu giá trị “%s†cho khóa “%sâ€"
-#: trailer.c:547 trailer.c:552 trailer.c:557 builtin/remote.c:299
-#: builtin/remote.c:327
+#: trailer.c:547 trailer.c:552 trailer.c:557 builtin/remote.c:300
+#: builtin/remote.c:328
#, c-format
msgid "more than one %s"
msgstr "nhiá»u hÆ¡n má»™t %s"
@@ -9020,11 +9265,11 @@ msgstr "thẻ thừa trống rá»—ng trong phần thừa “%.*sâ€"
msgid "could not read input file '%s'"
msgstr "không Ä‘á»c được tập tin đầu vào “%sâ€"
-#: trailer.c:766 builtin/mktag.c:89 imap-send.c:1573
+#: trailer.c:766 builtin/mktag.c:88 imap-send.c:1563
msgid "could not read from stdin"
msgstr "không thể Ä‘á»c từ đầu vào tiêu chuẩn"
-#: trailer.c:1024 wrapper.c:684
+#: trailer.c:1024 wrapper.c:760
#, c-format
msgid "could not stat %s"
msgstr "không thể lấy thông tin thống kê vỠ%s"
@@ -9092,7 +9337,7 @@ msgstr "không thể chạy fast-import"
msgid "error while running fast-import"
msgstr "gặp lỗi trong khi chạy fast-import"
-#: transport-helper.c:549 transport-helper.c:1251
+#: transport-helper.c:549 transport-helper.c:1254
#, c-format
msgid "could not read ref %s"
msgstr "không thể Ä‘á»c tham chiếu %s"
@@ -9110,7 +9355,7 @@ msgstr "giao thức này không há»— trợ cài đặt Ä‘Æ°á»ng dẫn dịch vá
msgid "invalid remote service path"
msgstr "Ä‘Æ°á»ng dẫn dịch vụ máy chủ không hợp lệ"
-#: transport-helper.c:661 transport.c:1479
+#: transport-helper.c:661 transport.c:1496
msgid "operation not supported by protocol"
msgstr "thao tác không được gia thức hỗ trợ"
@@ -9119,72 +9364,72 @@ msgstr "thao tác không được gia thức hỗ trợ"
msgid "can't connect to subservice %s"
msgstr "không thể kết nối đến dịch vụ phụ %s"
-#: transport-helper.c:693 transport.c:404
+#: transport-helper.c:693 transport.c:415
msgid "--negotiate-only requires protocol v2"
msgstr "--negotiate-only cần giao thức v2"
-#: transport-helper.c:755
+#: transport-helper.c:758
msgid "'option' without a matching 'ok/error' directive"
msgstr "“option†không có chỉ thị “ok/error†tương ứng"
-#: transport-helper.c:798
+#: transport-helper.c:801
#, 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:859
+#: transport-helper.c:862
#, 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:942
+#: transport-helper.c:945
#, c-format
msgid "helper %s does not support dry-run"
msgstr "helper %s không hỗ trợ dry-run"
-#: transport-helper.c:945
+#: transport-helper.c:948
#, c-format
msgid "helper %s does not support --signed"
msgstr "helper %s không hỗ trợ --signed"
-#: transport-helper.c:948
+#: transport-helper.c:951
#, c-format
msgid "helper %s does not support --signed=if-asked"
msgstr "helper %s không hỗ trợ --signed=if-asked"
-#: transport-helper.c:953
+#: transport-helper.c:956
#, c-format
msgid "helper %s does not support --atomic"
msgstr "helper %s không hỗ trợ --atomic"
-#: transport-helper.c:957
+#: transport-helper.c:960
#, c-format
msgid "helper %s does not support --%s"
msgstr "helper %s không hỗ trợ --%s"
-#: transport-helper.c:964
+#: transport-helper.c:967
#, c-format
msgid "helper %s does not support 'push-option'"
msgstr "helper %s không há»— trợ “push-optionâ€"
-#: transport-helper.c:1064
+#: transport-helper.c:1067
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:1069
+#: transport-helper.c:1072
#, c-format
msgid "helper %s does not support 'force'"
msgstr "helper %s không há»— trợ “forceâ€"
-#: transport-helper.c:1116
+#: transport-helper.c:1119
msgid "couldn't run fast-export"
msgstr "không thể chạy fast-export"
-#: transport-helper.c:1121
+#: transport-helper.c:1124
msgid "error while running fast-export"
msgstr "gặp lỗi trong khi chạy fast-export"
-#: transport-helper.c:1146
+#: transport-helper.c:1149
#, c-format
msgid ""
"No refs in common and none specified; doing nothing.\n"
@@ -9194,52 +9439,52 @@ msgstr ""
"cả.\n"
"Tuy nhiên bạn nên chỉ định một nhánh.\n"
-#: transport-helper.c:1228
+#: transport-helper.c:1231
#, c-format
msgid "unsupported object format '%s'"
msgstr "không há»— trợ định dạng đối tượng “%sâ€"
-#: transport-helper.c:1237
+#: transport-helper.c:1240
#, 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:1389
+#: transport-helper.c:1392
#, c-format
msgid "read(%s) failed"
msgstr "read(%s) gặp lỗi"
-#: transport-helper.c:1416
+#: transport-helper.c:1419
#, c-format
msgid "write(%s) failed"
msgstr "write(%s) gặp lỗi"
-#: transport-helper.c:1465
+#: transport-helper.c:1468
#, c-format
msgid "%s thread failed"
msgstr "tuyến trình %s gặp lỗi"
-#: transport-helper.c:1469
+#: transport-helper.c:1472
#, 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:1488 transport-helper.c:1492
+#: transport-helper.c:1491 transport-helper.c:1495
#, 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:1529
+#: transport-helper.c:1532
#, c-format
msgid "%s process failed to wait"
msgstr "xử lý %s gặp lỗi khi đợi"
-#: transport-helper.c:1533
+#: transport-helper.c:1536
#, c-format
msgid "%s process failed"
msgstr "xử lý %s gặp lỗi"
-#: transport-helper.c:1551 transport-helper.c:1560
+#: transport-helper.c:1554 transport-helper.c:1563
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"
@@ -9248,51 +9493,51 @@ msgstr "không thể khởi chạy tuyến trình cho việc chép dữ liệu"
msgid "Would set upstream of '%s' to '%s' of '%s'\n"
msgstr "Không thể đặt thượng nguồn của “%s†thành “%s†của “%sâ€\n"
-#: transport.c:145
+#: transport.c:138
#, c-format
msgid "could not read bundle '%s'"
msgstr "không thể Ä‘á»c bó “%sâ€"
-#: transport.c:227
+#: transport.c:234
#, 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:279
+#: transport.c:289
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:280
+#: transport.c:290
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:407
+#: transport.c:418
msgid "server does not support wait-for-done"
msgstr "máy chủ không hỗ trợ wait-for-done"
-#: transport.c:759
+#: transport.c:770
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:834
+#: transport.c:845
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:967
+#: transport.c:978
#, 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:1033
+#: transport.c:1044
#, c-format
msgid "transport '%s' not allowed"
msgstr "không cho phép phÆ°Æ¡ng thức vận chuyển “%sâ€"
-#: transport.c:1082
+#: transport.c:1093
msgid "git-over-rsync is no longer supported"
msgstr "git-over-rsync không còn được hỗ trợ nữa"
-#: transport.c:1185
+#: transport.c:1196
#, c-format
msgid ""
"The following submodule paths contain changes that can\n"
@@ -9301,7 +9546,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:1189
+#: transport.c:1200
#, c-format
msgid ""
"\n"
@@ -9328,11 +9573,11 @@ msgstr ""
"để đẩy chúng lên máy phục vụ.\n"
"\n"
-#: transport.c:1197
+#: transport.c:1208
msgid "Aborting."
msgstr "Bãi bá»."
-#: transport.c:1343
+#: transport.c:1354
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"
@@ -9627,17 +9872,17 @@ msgstr ""
"HOA/thÆ°á»ng trên má»™t hệ thống tập tin không phân biệt HOA/thÆ°á»ng)\n"
"và chỉ một từ cùng một nhóm xung đột là trong cây làm việc hiện tại:\n"
-#: unpack-trees.c:1636
+#: unpack-trees.c:1664
msgid "Updating index flags"
msgstr "Äang cập nhật các cá» mục lục"
-#: unpack-trees.c:2803
+#: unpack-trees.c:2925
#, c-format
msgid "worktree and untracked commit have duplicate entries: %s"
msgstr ""
"cây làm việc và lần chuyển giao không được theo dõi có các mục trùng lặp: %s"
-#: upload-pack.c:1565
+#: upload-pack.c:1579
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"
@@ -9674,124 +9919,138 @@ 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:238 builtin/am.c:2209 builtin/bisect--helper.c:156
+#: worktree.c:237 builtin/am.c:2210 builtin/bisect--helper.c:156
#, c-format
msgid "failed to read '%s'"
msgstr "gặp lá»—i khi Ä‘á»c “%sâ€"
-#: worktree.c:305
+#: worktree.c:304
#, 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:316
+#: worktree.c:315
#, 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:328
+#: worktree.c:327
#, c-format
msgid "'%s' does not exist"
msgstr "\"%s\" không tồn tại"
-#: worktree.c:334
+#: worktree.c:333
#, 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:343
+#: worktree.c:342
#, c-format
msgid "'%s' does not point back to '%s'"
msgstr "“%s†không chỉ ngược đến “%sâ€"
-#: worktree.c:604
+#: worktree.c:600
msgid "not a directory"
msgstr "không phải thư mục"
-#: worktree.c:613
+#: worktree.c:609
msgid ".git is not a file"
msgstr ".git không phải là một tập tin"
-#: worktree.c:615
+#: worktree.c:611
msgid ".git file broken"
msgstr "tệp .git bị há»ng"
-#: worktree.c:617
+#: worktree.c:613
msgid ".git file incorrect"
msgstr "tập tin .git không chính xác"
-#: worktree.c:723
+#: worktree.c:719
msgid "not a valid path"
msgstr "không phải là má»™t Ä‘Æ°á»ng dẫn hợp lệ"
-#: worktree.c:729
+#: worktree.c:725
msgid "unable to locate repository; .git is not a file"
msgstr "không thể phân bổ kho chứa; .git không phải là một tập tin"
-#: worktree.c:733
+#: worktree.c:729
msgid "unable to locate repository; .git file does not reference a repository"
msgstr "không thể phân bổ kho chứa; tập tin .git tham chiếu đến một kho"
-#: worktree.c:737
+#: worktree.c:733
msgid "unable to locate repository; .git file broken"
msgstr "không thể phân bổ kho chứa; tập tin .git bị há»ng"
-#: worktree.c:743
+#: worktree.c:739
msgid "gitdir unreadable"
msgstr "gitdir không thể Ä‘á»c được"
-#: worktree.c:747
+#: worktree.c:743
msgid "gitdir incorrect"
msgstr "gitdir không chính xác"
-#: worktree.c:772
+#: worktree.c:768
msgid "not a valid directory"
msgstr "không phải thư mục hợp lệ"
-#: worktree.c:778
+#: worktree.c:774
msgid "gitdir file does not exist"
msgstr "tập tin gitdir không tồn tại"
-#: worktree.c:783 worktree.c:792
+#: worktree.c:779 worktree.c:788
#, c-format
msgid "unable to read gitdir file (%s)"
msgstr "không thể Ä‘á»c tập tin gitdir (%s)"
-#: worktree.c:802
+#: worktree.c:798
#, c-format
msgid "short read (expected %<PRIuMAX> bytes, read %<PRIuMAX>)"
msgstr "Ä‘á»c ngắn (cần %<PRIuMAX> byte, Ä‘á»c %<PRIuMAX>)"
-#: worktree.c:810
+#: worktree.c:806
msgid "invalid gitdir file"
msgstr "tập tin gitdir (thư mục git) không hợp lệ"
-#: worktree.c:818
+#: worktree.c:814
msgid "gitdir file points to non-existent location"
msgstr "tập tin gitdir chỉ đến vị trí không tồn tại"
-#: wrapper.c:151
+#: worktree.c:830
+#, c-format
+msgid "unable to set %s in '%s'"
+msgstr "không thể đặt %s trong “%sâ€"
+
+#: worktree.c:832
+#, c-format
+msgid "unable to unset %s in '%s'"
+msgstr "không thể bỠđặt %s trong '%s'"
+
+#: worktree.c:852
+msgid "failed to set extensions.worktreeConfig setting"
+msgstr "gặp lỗi khi đặt cài đặt extensions.worktreeConfig"
+
+#: wrapper.c:161
#, c-format
msgid "could not setenv '%s'"
msgstr "không thể setenv “%sâ€"
-#: wrapper.c:203
+#: wrapper.c:213
#, c-format
msgid "unable to create '%s'"
msgstr "không thể tạo “%sâ€"
-#: wrapper.c:205 wrapper.c:375
+#: wrapper.c:215 wrapper.c:385
#, c-format
msgid "could not open '%s' for reading and writing"
msgstr "không thể mở “%s†để Ä‘á»c và ghi"
-#: wrapper.c:406 wrapper.c:607
+#: wrapper.c:416 wrapper.c:683
#, c-format
msgid "unable to access '%s'"
msgstr "không thể truy cập “%sâ€"
-#: wrapper.c:615
+#: wrapper.c:691
msgid "unable to get current working directory"
msgstr "không thể lấy thư mục làm việc hiện hành"
@@ -9828,11 +10087,11 @@ msgstr ""
msgid " (use \"git rm <file>...\" to mark resolution)"
msgstr " (dùng \"git rm <tập-tin>…\" để đánh dấu là cần giải quyết)"
-#: wt-status.c:211 wt-status.c:1131
+#: wt-status.c:211 wt-status.c:1140
msgid "Changes to be committed:"
msgstr "Những thay đổi sẽ được chuyển giao:"
-#: wt-status.c:234 wt-status.c:1140
+#: wt-status.c:234 wt-status.c:1149
msgid "Changes not staged for commit:"
msgstr "Các thay đổi chưa được đặt lên bệ phóng để chuyển giao:"
@@ -9936,21 +10195,21 @@ msgstr "nội dung bị sửa đổi, "
msgid "untracked content, "
msgstr "nội dung chưa được theo dõi, "
-#: wt-status.c:964
+#: wt-status.c:973
#, c-format
msgid "Your stash currently has %d entry"
msgid_plural "Your stash currently has %d entries"
msgstr[0] "Bạn hiện nay ở trong phần cất đi đang có %d mục"
-#: wt-status.c:995
+#: wt-status.c:1004
msgid "Submodules changed but not updated:"
msgstr "Những mô-đun-con đã bị thay đổi nhưng chưa được cập nhật:"
-#: wt-status.c:997
+#: wt-status.c:1006
msgid "Submodule changes to be committed:"
msgstr "Những mô-đun-con thay đổi đã được chuyển giao:"
-#: wt-status.c:1079
+#: wt-status.c:1088
msgid ""
"Do not modify or remove the line above.\n"
"Everything below it will be ignored."
@@ -9958,7 +10217,7 @@ msgstr ""
"Không sá»­a hay xóa bá» Ä‘Æ°á»ng ở trên.\n"
"Má»i thứ phía dÆ°á»›i sẽ được xóa bá»."
-#: wt-status.c:1171
+#: wt-status.c:1180
#, c-format
msgid ""
"\n"
@@ -9969,116 +10228,116 @@ msgstr ""
"Nó cần %.2f giây để tính toán giá trị của trước/sau của nhánh.\n"
"Bạn có thể dùng “--no-ahead-behind†tránh phải Ä‘iá»u này.\n"
-#: wt-status.c:1201
+#: wt-status.c:1210
msgid "You have unmerged paths."
msgstr "Bạn có những Ä‘Æ°á»ng dẫn chÆ°a được hòa trá»™n."
-#: wt-status.c:1204
+#: wt-status.c:1213
msgid " (fix conflicts and run \"git commit\")"
msgstr " (sửa các xung đột rồi chạy \"git commit\")"
-#: wt-status.c:1206
+#: wt-status.c:1215
msgid " (use \"git merge --abort\" to abort the merge)"
msgstr " (dùng \"git merge --abort\" để bãi bỠviệc hòa trộn)"
-#: wt-status.c:1210
+#: wt-status.c:1219
msgid "All conflicts fixed but you are still merging."
msgstr "Tất cả các xung đột đã được giải quyết nhưng bạn vẫn đang hòa trộn."
-#: wt-status.c:1213
+#: wt-status.c:1222
msgid " (use \"git commit\" to conclude merge)"
msgstr " (dùng \"git commit\" để hoàn tất việc hòa trộn)"
-#: wt-status.c:1224
+#: wt-status.c:1233
msgid "You are in the middle of an am session."
msgstr "Bạn Ä‘ang ở giữa của má»™t phiên “amâ€."
-#: wt-status.c:1227
+#: wt-status.c:1236
msgid "The current patch is empty."
msgstr "Miếng vá hiện tại bị trống rỗng."
-#: wt-status.c:1232
+#: wt-status.c:1241
msgid " (fix conflicts and then run \"git am --continue\")"
msgstr " (sửa các xung đột và sau đó chạy lệnh \"git am --continue\")"
-#: wt-status.c:1234
+#: wt-status.c:1243
msgid " (use \"git am --skip\" to skip this patch)"
msgstr " (dùng \"git am --skip\" để bỠqua miếng vá này)"
-#: wt-status.c:1237
+#: wt-status.c:1246
msgid ""
" (use \"git am --allow-empty\" to record this patch as an empty commit)"
msgstr ""
" (dùng \"git am --allow-empty\" ghi miếng vá này như một lần chuyển giao "
"rá»—ng)"
-#: wt-status.c:1239
+#: wt-status.c:1248
msgid " (use \"git am --abort\" to restore the original branch)"
msgstr " (dùng \"git am --abort\" để phục hồi lại nhánh nguyên thủy)"
-#: wt-status.c:1372
+#: wt-status.c:1381
msgid "git-rebase-todo is missing."
msgstr "thiếu git-rebase-todo."
-#: wt-status.c:1374
+#: wt-status.c:1383
msgid "No commands done."
msgstr "Không thực hiện lệnh nào."
-#: wt-status.c:1377
+#: wt-status.c:1386
#, c-format
-msgid "Last command done (%d command done):"
-msgid_plural "Last commands done (%d commands done):"
-msgstr[0] "Lệnh thực hiện cuối (%d lệnh được thực thi):"
+msgid "Last command done (%<PRIuMAX> command done):"
+msgid_plural "Last commands done (%<PRIuMAX> commands done):"
+msgstr[0] "Lệnh thực hiện cuối (%<PRIuMAX> lệnh được thực thi):"
-#: wt-status.c:1388
+#: wt-status.c:1397
#, c-format
msgid " (see more in file %s)"
msgstr " (xem thêm trong %s)"
-#: wt-status.c:1393
+#: wt-status.c:1402
msgid "No commands remaining."
msgstr "Không có lệnh nào còn lại."
-#: wt-status.c:1396
+#: wt-status.c:1405
#, c-format
-msgid "Next command to do (%d remaining command):"
-msgid_plural "Next commands to do (%d remaining commands):"
-msgstr[0] "Lệnh cần làm kế tiếp (%d lệnh còn lại):"
+msgid "Next command to do (%<PRIuMAX> remaining command):"
+msgid_plural "Next commands to do (%<PRIuMAX> remaining commands):"
+msgstr[0] "Lệnh cần làm kế tiếp (%<PRIuMAX> lệnh còn lại):"
-#: wt-status.c:1404
+#: wt-status.c:1413
msgid " (use \"git rebase --edit-todo\" to view and edit)"
msgstr " (dùng lệnh \"git rebase --edit-todo\" để xem và sửa)"
-#: wt-status.c:1416
+#: wt-status.c:1425
#, c-format
msgid "You are currently rebasing branch '%s' on '%s'."
msgstr "Bạn hiện nay Ä‘ang thá»±c hiện việc “rebase†nhánh “%s†trên “%sâ€."
-#: wt-status.c:1421
+#: wt-status.c:1430
msgid "You are currently rebasing."
msgstr "Bạn hiện nay đang thực hiện việc “rebase†(cải tổ)."
-#: wt-status.c:1434
+#: wt-status.c:1443
msgid " (fix conflicts and then run \"git rebase --continue\")"
msgstr ""
" (sửa các xung đột và sau đó chạy lệnh “cải tổ†\"git rebase --continue\")"
-#: wt-status.c:1436
+#: wt-status.c:1445
msgid " (use \"git rebase --skip\" to skip this patch)"
msgstr " (dùng lệnh “cải tổ†\"git rebase --skip\" để bỠqua lần vá này)"
-#: wt-status.c:1438
+#: wt-status.c:1447
msgid " (use \"git rebase --abort\" to check out the original branch)"
msgstr ""
" (dùng lệnh “cải tổ†\"git rebase --abort\" để check-out nhánh nguyên thủy)"
-#: wt-status.c:1445
+#: wt-status.c:1454
msgid " (all conflicts fixed: run \"git rebase --continue\")"
msgstr ""
" (khi tất cả các xung đột đã sửa xong: chạy lệnh “cải tổ†\"git rebase --"
"continue\")"
-#: wt-status.c:1449
+#: wt-status.c:1458
#, c-format
msgid ""
"You are currently splitting a commit while rebasing branch '%s' on '%s'."
@@ -10086,169 +10345,169 @@ msgstr ""
"Bạn hiện nay đang thực hiện việc chia tách một lần chuyển giao trong khi "
"Ä‘ang “rebase†nhánh “%s†trên “%sâ€."
-#: wt-status.c:1454
+#: wt-status.c:1463
msgid "You are currently splitting a commit during a rebase."
msgstr ""
"Bạn hiện tại đang cắt đôi một lần chuyển giao trong khi đang thực hiện việc "
"rebase."
-#: wt-status.c:1457
+#: wt-status.c:1466
msgid " (Once your working directory is clean, run \"git rebase --continue\")"
msgstr ""
" (Má»™t khi thÆ° mục làm việc của bạn đã gá»n gàng, chạy lệnh “cải tổ†\"git "
"rebase --continue\")"
-#: wt-status.c:1461
+#: wt-status.c:1470
#, c-format
msgid "You are currently editing a commit while rebasing branch '%s' on '%s'."
msgstr ""
"Bạn hiện nay đang thực hiện việc sửa chữa một lần chuyển giao trong khi đang "
"rebase nhánh “%s†trên “%sâ€."
-#: wt-status.c:1466
+#: wt-status.c:1475
msgid "You are currently editing a commit during a rebase."
msgstr "Bạn hiện đang sửa một lần chuyển giao trong khi bạn thực hiện rebase."
-#: wt-status.c:1469
+#: wt-status.c:1478
msgid " (use \"git commit --amend\" to amend the current commit)"
msgstr " (dùng \"git commit --amend\" để “tu bổ†lần chuyển giao hiện tại)"
-#: wt-status.c:1471
+#: wt-status.c:1480
msgid ""
" (use \"git rebase --continue\" once you are satisfied with your changes)"
msgstr ""
" (chạy lệnh “cải tổ†\"git rebase --continue\" một khi bạn cảm thấy hài "
"lòng vỠnhững thay đổi của mình)"
-#: wt-status.c:1482
+#: wt-status.c:1491
msgid "Cherry-pick currently in progress."
msgstr "Cherry-pick hiện tại đang được thực hiện."
-#: wt-status.c:1485
+#: wt-status.c:1494
#, c-format
msgid "You are currently cherry-picking commit %s."
msgstr "Bạn hiện nay đang thực hiện việc cherry-pick lần chuyển giao %s."
-#: wt-status.c:1492
+#: wt-status.c:1501
msgid " (fix conflicts and run \"git cherry-pick --continue\")"
msgstr ""
" (sửa các xung đột và sau đó chạy lệnh \"git cherry-pick --continue\")"
-#: wt-status.c:1495
+#: wt-status.c:1504
msgid " (run \"git cherry-pick --continue\" to continue)"
msgstr " (chạy lệnh \"git cherry-pick --continue\" để tiếp tục)"
-#: wt-status.c:1498
+#: wt-status.c:1507
msgid " (all conflicts fixed: run \"git cherry-pick --continue\")"
msgstr ""
" (khi tất cả các xung đột đã sửa xong: chạy lệnh \"git cherry-pick --"
"continue\")"
-#: wt-status.c:1500
+#: wt-status.c:1509
msgid " (use \"git cherry-pick --skip\" to skip this patch)"
msgstr " (dùng \"git cherry-pick --skip\" để bỠqua miếng vá này)"
-#: wt-status.c:1502
+#: wt-status.c:1511
msgid " (use \"git cherry-pick --abort\" to cancel the cherry-pick operation)"
msgstr " (dùng \"git cherry-pick --abort\" để hủy bỠthao tác cherry-pick)"
-#: wt-status.c:1512
+#: wt-status.c:1521
msgid "Revert currently in progress."
msgstr "Hoàn nguyên hiện tại đang thực hiện."
-#: wt-status.c:1515
+#: wt-status.c:1524
#, c-format
msgid "You are currently reverting commit %s."
msgstr "Bạn hiện nay Ä‘ang thá»±c hiện thao tác hoàn nguyên lần chuyển giao “%sâ€."
-#: wt-status.c:1521
+#: wt-status.c:1530
msgid " (fix conflicts and run \"git revert --continue\")"
msgstr " (sửa các xung đột và sau đó chạy lệnh \"git revert --continue\")"
-#: wt-status.c:1524
+#: wt-status.c:1533
msgid " (run \"git revert --continue\" to continue)"
msgstr " (chạy lệnh \"git revert --continue\" để tiếp tục)"
-#: wt-status.c:1527
+#: wt-status.c:1536
msgid " (all conflicts fixed: run \"git revert --continue\")"
msgstr ""
" (khi tất cả các xung đột đã sửa xong: chạy lệnh \"git revert --continue\")"
-#: wt-status.c:1529
+#: wt-status.c:1538
msgid " (use \"git revert --skip\" to skip this patch)"
msgstr " (dùng lệnh \"git revert --skip\" để bỠqua lần vá này)"
-#: wt-status.c:1531
+#: wt-status.c:1540
msgid " (use \"git revert --abort\" to cancel the revert operation)"
msgstr " (dùng \"git revert --abort\" để hủy bỠthao tác hoàn nguyên)"
-#: wt-status.c:1541
+#: wt-status.c:1550
#, c-format
msgid "You are currently bisecting, started from branch '%s'."
msgstr ""
"Bạn hiện nay đang thực hiện thao tác di chuyển nửa bước (bisect), bắt đầu từ "
"nhánh “%sâ€."
-#: wt-status.c:1545
+#: wt-status.c:1554
msgid "You are currently bisecting."
msgstr "Bạn hiện tại đang thực hiện việc bisect (di chuyển nửa bước)."
-#: wt-status.c:1548
+#: wt-status.c:1557
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:1559
+#: wt-status.c:1568
msgid "You are in a sparse checkout."
msgstr "Bạn đang trong lần lấy ra sparse."
-#: wt-status.c:1562
+#: wt-status.c:1571
#, 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:1806
+#: wt-status.c:1815
msgid "On branch "
msgstr "Trên nhánh "
-#: wt-status.c:1813
+#: wt-status.c:1822
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:1815
+#: wt-status.c:1824
msgid "rebase in progress; onto "
msgstr "rebase đang được thực hiện: lên trên "
-#: wt-status.c:1820
+#: wt-status.c:1829
msgid "HEAD detached at "
msgstr "HEAD được tách rá»i tại "
-#: wt-status.c:1822
+#: wt-status.c:1831
msgid "HEAD detached from "
msgstr "HEAD được tách rá»i từ "
-#: wt-status.c:1825
+#: wt-status.c:1834
msgid "Not currently on any branch."
msgstr "Hiện tại chẳng ở nhánh nào cả."
-#: wt-status.c:1842
+#: wt-status.c:1851
msgid "Initial commit"
msgstr "Lần chuyển giao khởi tạo"
-#: wt-status.c:1843
+#: wt-status.c:1852
msgid "No commits yet"
msgstr "Vẫn chưa chuyển giao"
-#: wt-status.c:1857
+#: wt-status.c:1866
msgid "Untracked files"
msgstr "Những tập tin chưa được theo dõi"
-#: wt-status.c:1859
+#: wt-status.c:1868
msgid "Ignored files"
msgstr "Những tập tin bị lỠđi"
-#: wt-status.c:1863
+#: wt-status.c:1872
#, c-format
msgid ""
"It took %.2f seconds to enumerate untracked files. 'status -uno'\n"
@@ -10260,32 +10519,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:1869
+#: wt-status.c:1878
#, 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:1871
+#: wt-status.c:1880
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:1877
+#: wt-status.c:1886
msgid "No changes"
msgstr "Không có thay đổi nào"
-#: wt-status.c:1882
+#: wt-status.c:1891
#, 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:1886
+#: wt-status.c:1895
#, 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:1890
+#: wt-status.c:1899
#, c-format
msgid ""
"nothing added to commit but untracked files present (use \"git add\" to "
@@ -10294,68 +10553,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:1894
+#: wt-status.c:1903
#, 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:1898
+#: wt-status.c:1907
#, 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:1902 wt-status.c:1908
+#: wt-status.c:1911 wt-status.c:1917
#, c-format
msgid "nothing to commit\n"
msgstr "không có gì để chuyển giao\n"
-#: wt-status.c:1905
+#: wt-status.c:1914
#, 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:1910
+#: wt-status.c:1919
#, 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:2015
+#: wt-status.c:2024
msgid "No commits yet on "
msgstr "Vẫn không thực hiện lệnh chuyển giao nào "
-#: wt-status.c:2019
+#: wt-status.c:2028
msgid "HEAD (no branch)"
msgstr "HEAD (không nhánh)"
-#: wt-status.c:2050
+#: wt-status.c:2059
msgid "different"
msgstr "khác"
-#: wt-status.c:2052 wt-status.c:2060
+#: wt-status.c:2061 wt-status.c:2069
msgid "behind "
msgstr "đằng sau "
-#: wt-status.c:2055 wt-status.c:2058
+#: wt-status.c:2064 wt-status.c:2067
msgid "ahead "
msgstr "phía trước "
#. TRANSLATORS: the action is e.g. "pull with rebase"
-#: wt-status.c:2596
+#: wt-status.c:2605
#, 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:2602
+#: wt-status.c:2611
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:2604
+#: wt-status.c:2613
#, c-format
msgid "cannot %s: Your index contains uncommitted changes."
msgstr ""
@@ -10379,152 +10638,156 @@ msgstr "không thể khởi chạy accept_thread “%sâ€"
msgid "could not start worker[0] for '%s'"
msgstr "không thể khởi chạy bá»™ làm việc worker[0] cho “%sâ€"
-#: compat/precompose_utf8.c:58 builtin/clone.c:347
+#: compat/precompose_utf8.c:58 builtin/clone.c:353
#, c-format
msgid "failed to unlink '%s'"
msgstr "gặp lá»—i khi bá» liên kết (unlink) “%sâ€"
+#: compat/fsmonitor/fsm-listen-darwin.c:355
+msgid "Unable to create FSEventStream."
+msgstr "Không thể tạo FSEventStream."
+
+#: compat/fsmonitor/fsm-listen-darwin.c:403
+msgid "Failed to start the FSEventStream"
+msgstr "Gặp lỗi khi khởi chạy FSEventStream"
+
#: builtin/add.c:26
msgid "git add [<options>] [--] <pathspec>..."
msgstr "git add [<các tùy chá»n>] [--] <pathspec>…"
-#: builtin/add.c:64
+#: builtin/add.c:63
#, c-format
msgid "cannot chmod %cx '%s'"
msgstr "không thể chmod %cx “%sâ€"
-#: builtin/add.c:106
+#: builtin/add.c:105
#, c-format
msgid "unexpected diff status %c"
msgstr "trạng thái lệnh diff không như mong đợi %c"
-#: builtin/add.c:111 builtin/commit.c:298
+#: builtin/add.c:110 builtin/commit.c:299
msgid "updating files failed"
msgstr "cập nhật tập tin gặp lỗi"
-#: builtin/add.c:121
+#: builtin/add.c:120
#, c-format
msgid "remove '%s'\n"
msgstr "gỡ bỠ“%sâ€\n"
-#: builtin/add.c:205
+#: builtin/add.c:204
msgid "Unstaged changes after refreshing the index:"
msgstr ""
"ÄÆ°a ra khá»i bệ phóng các thay đổi sau khi làm tÆ°Æ¡i má»›i lại bảng mục lục:"
-#: builtin/add.c:313 builtin/rev-parse.c:993
+#: builtin/add.c:312 builtin/rev-parse.c:993
msgid "Could not read the index"
msgstr "Không thể Ä‘á»c bảng mục lục"
-#: builtin/add.c:326
+#: builtin/add.c:325
msgid "Could not write patch"
msgstr "Không thể ghi ra miếng vá"
-#: builtin/add.c:329
+#: builtin/add.c:328
msgid "editing patch failed"
msgstr "gặp lỗi khi sửa miếng vá"
-#: builtin/add.c:332
+#: builtin/add.c:331
#, c-format
msgid "Could not stat '%s'"
msgstr "Không thể lấy thông tin thống kê vỠ“%sâ€"
-#: builtin/add.c:334
+#: builtin/add.c:333
msgid "Empty patch. Aborted."
msgstr "Miếng vá trống rỗng. Nên bỠqua."
-#: builtin/add.c:340
+#: builtin/add.c:339
#, c-format
msgid "Could not apply '%s'"
msgstr "Không thể áp dụng miếng vá “%sâ€"
-#: builtin/add.c:348
+#: builtin/add.c:347
msgid "The following paths are ignored by one of your .gitignore files:\n"
msgstr ""
"Các Ä‘Æ°á»ng dẫn theo sau đây sẽ bị lá» Ä‘i bởi má»™t trong các tập tin .gitignore "
"của bạn:\n"
-#: builtin/add.c:368 builtin/clean.c:927 builtin/fetch.c:174 builtin/mv.c:124
+#: builtin/add.c:367 builtin/clean.c:927 builtin/fetch.c:175 builtin/mv.c:124
#: builtin/prune-packed.c:14 builtin/pull.c:208 builtin/push.c:550
-#: builtin/remote.c:1429 builtin/rm.c:244 builtin/send-pack.c:194
+#: builtin/remote.c:1454 builtin/rm.c:244 builtin/send-pack.c:194
msgid "dry run"
msgstr "chạy thử"
-#: builtin/add.c:369 builtin/check-ignore.c:22 builtin/commit.c:1484
-#: builtin/count-objects.c:98 builtin/fsck.c:789 builtin/log.c:2313
+#: builtin/add.c:368 builtin/check-ignore.c:22 builtin/commit.c:1483
+#: builtin/count-objects.c:98 builtin/fsck.c:789 builtin/log.c:2338
#: builtin/mv.c:123 builtin/read-tree.c:120
msgid "be verbose"
msgstr "chi tiết"
-#: builtin/add.c:371
+#: builtin/add.c:370
msgid "interactive picking"
msgstr "sửa bằng cách tương tác"
-#: builtin/add.c:372 builtin/checkout.c:1581 builtin/reset.c:409
+#: builtin/add.c:371 builtin/checkout.c:1599 builtin/reset.c:417
msgid "select hunks interactively"
msgstr "chá»n “hunks†theo kiểu tÆ°Æ¡ng tác"
-#: builtin/add.c:373
+#: builtin/add.c:372
msgid "edit current diff and apply"
msgstr "sửa diff hiện nay và áp dụng nó"
-#: builtin/add.c:374
+#: builtin/add.c:373
msgid "allow adding otherwise ignored files"
msgstr "cho phép thêm các tập tin bị bỠqua khác"
-#: builtin/add.c:375
+#: builtin/add.c:374
msgid "update tracked files"
msgstr "cập nhật các tập tin được theo dõi"
-#: builtin/add.c:376
+#: builtin/add.c:375
msgid "renormalize EOL of tracked files (implies -u)"
msgstr "thÆ°á»ng hóa lại EOL của các tập tin được theo dõi (ý là -u)"
-#: builtin/add.c:377
+#: builtin/add.c:376
msgid "record only the fact that the path will be added later"
msgstr "chỉ ghi lại sá»± việc mà Ä‘Æ°á»ng dẫn sẽ được thêm vào sau"
-#: builtin/add.c:378
+#: builtin/add.c:377
msgid "add changes from all tracked and untracked files"
msgstr ""
"thêm các thay đổi từ tất cả các tập tin có cũng như không được theo dõi dấu "
"vết"
-#: builtin/add.c:381
+#: builtin/add.c:380
msgid "ignore paths removed in the working tree (same as --no-all)"
msgstr ""
"lá» Ä‘i các Ä‘Æ°á»ng dẫn bị gỡ bá» trong cây thÆ° mục làm việc (giống vá»›i --no-all)"
-#: builtin/add.c:383
+#: builtin/add.c:382
msgid "don't add, only refresh the index"
msgstr "không thêm, chỉ làm tươi mới bảng mục lục"
-#: builtin/add.c:384
+#: builtin/add.c:383
msgid "just skip files which cannot be added because of errors"
msgstr "chie bỠqua những tập tin mà nó không thể được thêm vào bởi vì gặp lỗi"
-#: builtin/add.c:385
+#: builtin/add.c:384
msgid "check if - even missing - files are ignored in dry run"
msgstr ""
"kiểm tra xem - thậm chí thiếu - tập tin bị bỠqua trong quá trình chạy thử"
-#: builtin/add.c:386 builtin/mv.c:128 builtin/rm.c:251
+#: builtin/add.c:385 builtin/mv.c:128 builtin/rm.c:251
msgid "allow updating entries outside of the sparse-checkout cone"
msgstr "cho phép cập nhật các mục ở ngoài “sparse-checkout coneâ€"
-#: builtin/add.c:388 builtin/update-index.c:1004
+#: builtin/add.c:387 builtin/update-index.c:1023
msgid "override the executable bit of the listed files"
msgstr "ghi đè lên bít thi hành của các tập tin được liệt kê"
-#: builtin/add.c:390
+#: builtin/add.c:389
msgid "warn when adding an embedded repository"
msgstr "cảnh báo khi thêm một kho nhúng"
-#: builtin/add.c:392
-msgid "backend for `git stash -p`"
-msgstr "ứng dụng chạy phía sau cho “git stash -pâ€"
-
-#: builtin/add.c:410
+#: builtin/add.c:407
#, c-format
msgid ""
"You've added another git repository inside your current repository.\n"
@@ -10555,12 +10818,12 @@ msgstr ""
"\n"
"Xem \"git help submodule\" để biết thêm chi tiết."
-#: builtin/add.c:439
+#: builtin/add.c:436
#, c-format
msgid "adding embedded git repository: %s"
msgstr "thêm cần một kho git nhúng: %s"
-#: builtin/add.c:459
+#: builtin/add.c:456
msgid ""
"Use -f if you really want to add them.\n"
"Turn this message off by running\n"
@@ -10570,27 +10833,27 @@ msgstr ""
"Tắt thông báo này bằng cách chạy lệnh\n"
"\"git config advice.addIgnoredFile false\""
-#: builtin/add.c:474
+#: builtin/add.c:471
msgid "adding files failed"
msgstr "thêm tập tin gặp lỗi"
-#: builtin/add.c:548
+#: builtin/add.c:534
#, c-format
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:569 builtin/checkout.c:1751 builtin/commit.c:364
-#: builtin/reset.c:429 builtin/rm.c:275 builtin/stash.c:1713
+#: builtin/add.c:555 builtin/checkout.c:1770 builtin/commit.c:365
+#: builtin/reset.c:436 builtin/rm.c:275 builtin/stash.c:1702
#, c-format
msgid "'%s' and pathspec arguments cannot be used together"
msgstr "'%s' và các tham số đặc tả Ä‘Æ°á»ng dẫn không thể dùng cùng nhau"
-#: builtin/add.c:580
+#: builtin/add.c:566
#, c-format
msgid "Nothing specified, nothing added.\n"
msgstr "Không có gì được chỉ ra, không có gì được thêm vào.\n"
-#: builtin/add.c:582
+#: builtin/add.c:568
msgid ""
"Maybe you wanted to say 'git add .'?\n"
"Turn this message off by running\n"
@@ -10600,117 +10863,112 @@ msgstr ""
"Tắt thông báo này bằng cách chạy lệnh\n"
"\"git config advice.addEmptyPathspec false\""
-#: builtin/am.c:202
-#, c-format
-msgid "Invalid value for --empty: %s"
-msgstr "Giá trị cho --empty không hợp lệ: %s"
-
-#: builtin/am.c:392
+#: builtin/am.c:393
msgid "could not parse author script"
msgstr "không thể phân tích cú pháp văn lệnh tác giả"
-#: builtin/am.c:482
+#: builtin/am.c:483
#, c-format
msgid "'%s' was deleted by the applypatch-msg hook"
msgstr "“%s†bị xóa bởi móc applypatch-msg"
-#: builtin/am.c:524
+#: builtin/am.c:525
#, c-format
msgid "Malformed input line: '%s'."
msgstr "Dòng đầu vào dị hình: “%sâ€."
-#: builtin/am.c:562
+#: builtin/am.c:563
#, c-format
msgid "Failed to copy notes from '%s' to '%s'"
msgstr "Gặp lá»—i khi sao chép ghi chú (note) từ “%s†tá»›i “%sâ€"
-#: builtin/am.c:588
+#: builtin/am.c:589
msgid "fseek failed"
msgstr "fseek gặp lỗi"
-#: builtin/am.c:776
+#: builtin/am.c:777
#, c-format
msgid "could not parse patch '%s'"
msgstr "không thể phân tích cú pháp “%sâ€"
-#: builtin/am.c:841
+#: builtin/am.c:842
msgid "Only one StGIT patch series can be applied at once"
msgstr "Chỉ có một sê-ri miếng vá StGIT được áp dụng một lúc"
-#: builtin/am.c:889
+#: builtin/am.c:890
msgid "invalid timestamp"
msgstr "dấu thá»i gian không hợp lệ"
-#: builtin/am.c:894 builtin/am.c:906
+#: builtin/am.c:895 builtin/am.c:907
msgid "invalid Date line"
msgstr "dòng Ngày tháng không hợp lệ"
-#: builtin/am.c:901
+#: builtin/am.c:902
msgid "invalid timezone offset"
msgstr "độ lệch múi giỠkhông hợp lệ"
-#: builtin/am.c:994
+#: builtin/am.c:995
msgid "Patch format detection failed."
msgstr "Dò tìm định dạng miếng vá gặp lỗi."
-#: builtin/am.c:999 builtin/clone.c:300
+#: builtin/am.c:1000 builtin/clone.c:306
#, c-format
msgid "failed to create directory '%s'"
msgstr "tạo thư mục \"%s\" gặp lỗi"
-#: builtin/am.c:1004
+#: builtin/am.c:1005
msgid "Failed to split patches."
msgstr "Gặp lỗi khi chia nhỠcác miếng vá."
-#: builtin/am.c:1153
+#: builtin/am.c:1154
#, c-format
msgid "When you have resolved this problem, run \"%s --continue\"."
msgstr "Khi bạn đã giải quyết xong trục trặc này, hãy chạy \"%s --continue\"."
-#: builtin/am.c:1154
+#: builtin/am.c:1155
#, c-format
msgid "If you prefer to skip this patch, run \"%s --skip\" instead."
msgstr ""
"Nếu bạn muốn bỠqua miếng vá này, hãy chạy lệnh \"%s --skip\" để thay thế."
-#: builtin/am.c:1159
+#: builtin/am.c:1160
#, c-format
msgid "To record the empty patch as an empty commit, run \"%s --allow-empty\"."
msgstr ""
"Äể ghi má»™t miếng vá trống rá»—ng nhÆ° má»™t lần chuyển giao rông, \"%s --allow-"
"empty\"."
-#: builtin/am.c:1161
+#: builtin/am.c:1162
#, c-format
msgid "To restore the original branch and stop patching, run \"%s --abort\"."
msgstr "Äể phục hồi lại nhánh gốc và dừng vá, hãy chạy \"%s --abort\"."
-#: builtin/am.c:1256
+#: builtin/am.c:1257
msgid "Patch sent with format=flowed; space at the end of lines might be lost."
msgstr ""
"Miếng vá được gửi với format=flowed; khoảng trống ở cuối của các dòng có thể "
"bị mất."
-#: builtin/am.c:1344
+#: builtin/am.c:1345
#, c-format
msgid "missing author line in commit %s"
msgstr "thiếu dòng tác giả trong lần chuyển gia %s"
-#: builtin/am.c:1347
+#: builtin/am.c:1348
#, c-format
msgid "invalid ident line: %.*s"
msgstr "dòng định danh không hợp lệ: %.*s"
-#: builtin/am.c:1566
+#: builtin/am.c:1567
msgid "Repository lacks necessary blobs to fall back on 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:1568
+#: builtin/am.c:1569
msgid "Using index info to reconstruct a base tree..."
msgstr ""
"Sử dụng thông tin trong bảng mục lục để cấu trúc lại một cây (tree) cơ sở…"
-#: builtin/am.c:1587
+#: builtin/am.c:1588
msgid ""
"Did you hand edit your patch?\n"
"It does not apply to blobs recorded in its index."
@@ -10718,24 +10976,24 @@ msgstr ""
"Bạn đã sửa miếng vá của mình bằng cách thủ công à?\n"
"Nó không thể áp dụng các blob đã được ghi lại trong bảng mục lục của nó."
-#: builtin/am.c:1593
+#: builtin/am.c:1594
msgid "Falling back to patching base and 3-way merge..."
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:1619
+#: builtin/am.c:1620
msgid "Failed to merge in the changes."
msgstr "Gặp lỗi khi trộn vào các thay đổi."
-#: builtin/am.c:1651
+#: builtin/am.c:1652
msgid "applying to an empty history"
msgstr "áp dụng vào một lịch sử trống rỗng"
-#: builtin/am.c:1703 builtin/am.c:1707
+#: builtin/am.c:1704 builtin/am.c:1708
#, c-format
msgid "cannot resume: %s does not exist."
msgstr "không thể phục hồi: %s không tồn tại."
-#: builtin/am.c:1725
+#: builtin/am.c:1726
msgid "Commit Body is:"
msgstr "Thân của lần chuyển giao là:"
@@ -10743,59 +11001,59 @@ msgstr "Thân của lần chuyển giao là:"
#. in your translation. The program will only accept English
#. input at this point.
#.
-#: builtin/am.c:1735
+#: builtin/am.c:1736
#, c-format
msgid "Apply? [y]es/[n]o/[e]dit/[v]iew patch/[a]ccept all: "
msgstr ""
"Ãp dụng? đồng ý [y]/khô[n]g/chỉnh sá»­a [e]/hiển thị miếng [v]á/chấp nhận tất "
"cả [a]: "
-#: builtin/am.c:1781 builtin/commit.c:409
+#: builtin/am.c:1782 builtin/commit.c:410
msgid "unable to write index file"
msgstr "không thể ghi tập tin lưu mục lục"
-#: builtin/am.c:1785
+#: builtin/am.c:1786
#, c-format
msgid "Dirty index: cannot apply patches (dirty: %s)"
msgstr "Bảng mục lục bẩn: không thể áp dụng các miếng vá (bẩn: %s)"
-#: builtin/am.c:1827
+#: builtin/am.c:1828
#, c-format
msgid "Skipping: %.*s"
msgstr "Äang bá» qua: %.*s"
-#: builtin/am.c:1832
+#: builtin/am.c:1833
#, c-format
msgid "Creating an empty commit: %.*s"
msgstr "Äang tạo má»™t lần chuyển giao trống rá»—ng: %.*s"
-#: builtin/am.c:1836
+#: builtin/am.c:1837
msgid "Patch is empty."
msgstr "Miếng vá trống rỗng."
-#: builtin/am.c:1847 builtin/am.c:1916
+#: builtin/am.c:1848 builtin/am.c:1917
#, c-format
msgid "Applying: %.*s"
msgstr "Ãp dụng: %.*s"
-#: builtin/am.c:1864
+#: builtin/am.c:1865
msgid "No changes -- Patch already applied."
msgstr "Không thay đổi gì cả -- Miếng vá đã được áp dụng rồi."
-#: builtin/am.c:1870
+#: builtin/am.c:1871
#, c-format
msgid "Patch failed at %s %.*s"
msgstr "Gặp lỗi khi vá tại %s %.*s"
-#: builtin/am.c:1874
+#: builtin/am.c:1875
msgid "Use 'git am --show-current-patch=diff' to see the failed patch"
msgstr "Dùng “git am --show-current-patch=diff†để xem miếng vá bị lỗi"
-#: builtin/am.c:1920
+#: builtin/am.c:1921
msgid "No changes - recorded it as an empty commit."
msgstr "Không có thay đổi nào - được ghi thành một lần chuyển giao rỗng."
-#: builtin/am.c:1922
+#: builtin/am.c:1923
msgid ""
"No changes - did you forget to use 'git add'?\n"
"If there is nothing left to stage, chances are that something else\n"
@@ -10806,7 +11064,7 @@ msgstr ""
"đã sẵn được đưa vào với cùng nội dung thay đổi; bạn có lẽ muốn bỠqua miếng "
"vá này."
-#: builtin/am.c:1930
+#: builtin/am.c:1931
msgid ""
"You still have unmerged paths in your index.\n"
"You should 'git add' each file with resolved conflicts to mark them as "
@@ -10819,17 +11077,17 @@ msgstr ""
"Bạn có lẽ muốn chạy “git rm“ trên má»™t tập tin để chấp nhận \"được xóa bởi há»"
"\" cho nó."
-#: builtin/am.c:2038 builtin/am.c:2042 builtin/am.c:2054 builtin/reset.c:448
-#: builtin/reset.c:456
+#: builtin/am.c:2039 builtin/am.c:2043 builtin/am.c:2055 builtin/reset.c:455
+#: builtin/reset.c:463
#, c-format
msgid "Could not parse object '%s'."
msgstr "Không thể phân tích đối tượng “%sâ€."
-#: builtin/am.c:2090 builtin/am.c:2166
+#: builtin/am.c:2091 builtin/am.c:2167
msgid "failed to clean index"
msgstr "gặp lá»—i khi dá»n bảng mục lục"
-#: builtin/am.c:2134
+#: builtin/am.c:2135
msgid ""
"You seem to have moved HEAD since the last 'am' failure.\n"
"Not rewinding to ORIG_HEAD"
@@ -10837,168 +11095,159 @@ msgstr ""
"Bạn có lẽ đã có HEAD đã bị di chuyển đi kể từ lần “am†thất bại cuối cùng.\n"
"Không thể chuyển tới ORIG_HEAD"
-#: builtin/am.c:2242
-#, c-format
-msgid "Invalid value for --patch-format: %s"
-msgstr "Giá trị không hợp lệ cho --patch-format: %s"
-
-#: builtin/am.c:2285
-#, c-format
-msgid "Invalid value for --show-current-patch: %s"
-msgstr "Giá trị không hợp lệ cho --show-current-patch: %s"
-
-#: builtin/am.c:2289
+#: builtin/am.c:2292
#, c-format
msgid "options '%s=%s' and '%s=%s' cannot be used together"
msgstr "tùy chá»n '%s=%s' và '%s=%s' không thể dùng cùng nhau"
-#: builtin/am.c:2320
+#: builtin/am.c:2323
msgid "git am [<options>] [(<mbox> | <Maildir>)...]"
msgstr "git am [<các tùy chá»n>] [(<mbox>|<Maildir>)…]"
-#: builtin/am.c:2321
+#: builtin/am.c:2324
msgid "git am [<options>] (--continue | --skip | --abort)"
msgstr "git am [<các tùy chá»n>] (--continue | --skip | --abort)"
-#: builtin/am.c:2327
+#: builtin/am.c:2330
msgid "run interactively"
msgstr "chạy kiểu tương tác"
-#: builtin/am.c:2329
+#: builtin/am.c:2332
msgid "historical option -- no-op"
msgstr "tùy chá»n lịch sá»­ -- không-toán-tá»­"
-#: builtin/am.c:2331
+#: builtin/am.c:2334
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:2332 builtin/init-db.c:547 builtin/prune-packed.c:16
-#: builtin/repack.c:642 builtin/stash.c:962
+#: builtin/am.c:2335 builtin/init-db.c:547 builtin/prune-packed.c:16
+#: builtin/repack.c:646 builtin/stash.c:946
msgid "be quiet"
msgstr "im lặng"
-#: builtin/am.c:2334
+#: builtin/am.c:2337
msgid "add a Signed-off-by trailer to the commit message"
msgstr "thêm dòng Signed-off-by vào cuối ghi chú của lần chuyển giao"
-#: builtin/am.c:2337
+#: builtin/am.c:2340
msgid "recode into utf8 (default)"
msgstr "chuyển mã thành utf8 (mặc định)"
-#: builtin/am.c:2339
+#: builtin/am.c:2342
msgid "pass -k flag to git-mailinfo"
msgstr "chuyển cỠ-k cho git-mailinfo"
-#: builtin/am.c:2341
+#: builtin/am.c:2344
msgid "pass -b flag to git-mailinfo"
msgstr "chuyển cỠ-b cho git-mailinfo"
-#: builtin/am.c:2343
+#: builtin/am.c:2346
msgid "pass -m flag to git-mailinfo"
msgstr "chuyển cỠ-m cho git-mailinfo"
-#: builtin/am.c:2345
+#: builtin/am.c:2348
msgid "pass --keep-cr flag to git-mailsplit for mbox format"
msgstr "chuyển cỠ--keep-cr cho git-mailsplit với định dạng mbox"
-#: builtin/am.c:2348
+#: builtin/am.c:2351
msgid "do not pass --keep-cr flag to git-mailsplit independent of am.keepcr"
msgstr ""
"đừng chuyển cỠ--keep-cr cho git-mailsplit không phụ thuộc vào am.keepcr"
-#: builtin/am.c:2351
+#: builtin/am.c:2354
msgid "strip everything before a scissors line"
msgstr "cắt má»i thứ trÆ°á»›c dòng scissors"
-#: builtin/am.c:2353
+#: builtin/am.c:2356
msgid "pass it through git-mailinfo"
msgstr "chuyển nó qua git-mailinfo"
-#: builtin/am.c:2356 builtin/am.c:2359 builtin/am.c:2362 builtin/am.c:2365
-#: builtin/am.c:2368 builtin/am.c:2371 builtin/am.c:2374 builtin/am.c:2377
-#: builtin/am.c:2383
+#: builtin/am.c:2359 builtin/am.c:2362 builtin/am.c:2365 builtin/am.c:2368
+#: builtin/am.c:2371 builtin/am.c:2374 builtin/am.c:2377 builtin/am.c:2380
+#: builtin/am.c:2386
msgid "pass it through git-apply"
msgstr "chuyển nó qua git-apply"
-#: builtin/am.c:2373 builtin/commit.c:1515 builtin/fmt-merge-msg.c:18
-#: builtin/fmt-merge-msg.c:21 builtin/grep.c:919 builtin/merge.c:263
+#: builtin/am.c:2376 builtin/commit.c:1514 builtin/fmt-merge-msg.c:18
+#: builtin/fmt-merge-msg.c:21 builtin/grep.c:920 builtin/merge.c:263
#: builtin/pull.c:142 builtin/pull.c:204 builtin/pull.c:221
-#: builtin/rebase.c:1046 builtin/repack.c:653 builtin/repack.c:657
-#: builtin/repack.c:659 builtin/show-branch.c:649 builtin/show-ref.c:172
-#: builtin/tag.c:445 parse-options.h:154 parse-options.h:175
-#: parse-options.h:317
+#: builtin/rebase.c:1074 builtin/repack.c:657 builtin/repack.c:661
+#: builtin/repack.c:663 builtin/show-branch.c:650 builtin/show-ref.c:172
+#: builtin/tag.c:446 parse-options.h:159 parse-options.h:180
+#: parse-options.h:348
msgid "n"
msgstr "n"
-#: builtin/am.c:2379 builtin/branch.c:680 builtin/bugreport.c:109
-#: builtin/for-each-ref.c:41 builtin/replace.c:555 builtin/tag.c:479
-#: builtin/verify-tag.c:38
+#: builtin/am.c:2382 builtin/branch.c:695 builtin/bugreport.c:109
+#: builtin/cat-file.c:848 builtin/cat-file.c:852 builtin/cat-file.c:856
+#: builtin/for-each-ref.c:41 builtin/ls-tree.c:357 builtin/replace.c:555
+#: builtin/tag.c:480 builtin/verify-tag.c:38
msgid "format"
msgstr "định dạng"
-#: builtin/am.c:2380
+#: builtin/am.c:2383
msgid "format the patch(es) are in"
msgstr "định dạng (các) miếng vá theo"
-#: builtin/am.c:2386
+#: builtin/am.c:2389
msgid "override error message when patch failure occurs"
msgstr "đè lên các lá»i nhắn lá»—i khi xảy ra lá»—i vá nghiêm trá»ng"
-#: builtin/am.c:2388
+#: builtin/am.c:2391
msgid "continue applying patches after resolving a conflict"
msgstr "tiếp tục áp dụng các miếng vá sau khi giải quyết xung đột"
-#: builtin/am.c:2391
+#: builtin/am.c:2394
msgid "synonyms for --continue"
msgstr "đồng nghĩa với --continue"
-#: builtin/am.c:2394
+#: builtin/am.c:2397
msgid "skip the current patch"
msgstr "bỠqua miếng vá hiện hành"
-#: builtin/am.c:2397
+#: builtin/am.c:2400
msgid "restore the original branch and abort the patching operation"
msgstr "phục hồi lại nhánh gốc và loại bỠthao tác vá"
-#: builtin/am.c:2400
+#: builtin/am.c:2403
msgid "abort the patching operation but keep HEAD where it is"
msgstr "bỠqua thao tác vá nhưng vẫn giữ HEAD nơi nó chỉ đến"
-#: builtin/am.c:2404
+#: builtin/am.c:2407
msgid "show the patch being applied"
msgstr "hiển thị miếng vá đã được áp dụng rồi"
-#: builtin/am.c:2408
+#: builtin/am.c:2411
msgid "record the empty patch as an empty commit"
msgstr "ghi lại miếng vá trống rỗng như là một lần chuyển giao trống"
-#: builtin/am.c:2412
+#: builtin/am.c:2415
msgid "lie about committer date"
msgstr "nói dối vỠngày chuyển giao"
-#: builtin/am.c:2414
+#: builtin/am.c:2417
msgid "use current timestamp for author date"
msgstr "dùng dấu thá»i gian hiện tại cho ngày tác giả"
-#: builtin/am.c:2416 builtin/commit-tree.c:118 builtin/commit.c:1643
-#: builtin/merge.c:302 builtin/pull.c:179 builtin/rebase.c:1099
-#: builtin/revert.c:117 builtin/tag.c:460
+#: builtin/am.c:2419 builtin/commit-tree.c:118 builtin/commit.c:1642
+#: builtin/merge.c:302 builtin/pull.c:179 builtin/rebase.c:1127
+#: builtin/revert.c:117 builtin/tag.c:461
msgid "key-id"
msgstr "mã-số-khóa"
-#: builtin/am.c:2417 builtin/rebase.c:1100
+#: builtin/am.c:2420 builtin/rebase.c:1128
msgid "GPG-sign commits"
msgstr "Các lần chuyển giao ký-GPG"
-#: builtin/am.c:2420
+#: builtin/am.c:2423
msgid "how to handle empty patches"
msgstr "xử lý các miếng vá trống rỗng như thế nào"
-#: builtin/am.c:2423
+#: builtin/am.c:2426
msgid "(internal use for git-rebase)"
msgstr "(dùng nội bộ cho git-rebase)"
-#: builtin/am.c:2441
+#: builtin/am.c:2444
msgid ""
"The -b/--binary option has been a no-op for long time, and\n"
"it will be removed. Please do not use it anymore."
@@ -11006,16 +11255,16 @@ msgstr ""
"Tùy chá»n -b/--binary đã không dùng từ lâu rồi, và\n"
"nó sẽ được bỠđi. Xin đừng sử dụng nó thêm nữa."
-#: builtin/am.c:2448
+#: builtin/am.c:2451
msgid "failed to read the index"
msgstr "gặp lá»—i Ä‘á»c bảng mục lục"
-#: builtin/am.c:2463
+#: builtin/am.c:2466
#, c-format
msgid "previous rebase directory %s still exists but mbox given."
msgstr "thư mục rebase trước %s không sẵn có nhưng mbox lại đưa ra."
-#: builtin/am.c:2487
+#: builtin/am.c:2490
#, c-format
msgid ""
"Stray %s directory found.\n"
@@ -11024,11 +11273,11 @@ msgstr ""
"Tìm thấy thư mục lạc %s.\n"
"Dùng \"git am --abort\" để loại bỠnó đi."
-#: builtin/am.c:2493
+#: builtin/am.c:2496
msgid "Resolve operation not in progress, we are not resuming."
msgstr "Thao tác phân giải không được tiến hành, chúng ta không phục hồi lại."
-#: builtin/am.c:2503
+#: builtin/am.c:2506
msgid "interactive mode requires patches on the command line"
msgstr "chế độ tương tác yêu cầu có các miếng vá trên dòng lệnh"
@@ -11065,14 +11314,6 @@ msgstr "git archive: cần một flush (đẩy dữ liệu lên đĩa)"
msgid "git bisect--helper --bisect-reset [<commit>]"
msgstr "git bisect--helper --bisect-reset [<lần_chuyển_giao>]"
-#: builtin/bisect--helper.c:25
-msgid ""
-"git bisect--helper --bisect-terms [--term-good | --term-old | --term-bad | --"
-"term-new]"
-msgstr ""
-"git bisect--helper --bisect-terms [--term-good | --term-old | --term-bad | --"
-"term-new]"
-
#: builtin/bisect--helper.c:26
msgid ""
"git bisect--helper --bisect-start [--term-{new,bad}=<term> --term-{old,good}"
@@ -11083,10 +11324,6 @@ msgstr ""
"=<term>] [--no-checkout] [--first-parent] [<bad> [<good>…]] [--] [</các/"
"Ä‘Æ°á»ng/dẫn>…]"
-#: builtin/bisect--helper.c:28
-msgid "git bisect--helper --bisect-next"
-msgstr "git bisect--helper --bisect-next"
-
#: builtin/bisect--helper.c:29
msgid "git bisect--helper --bisect-state (bad|new) [<rev>]"
msgstr "git bisect--helper --bisect-state (bad|new) [<lần_chuyển_giao>]"
@@ -11103,10 +11340,6 @@ msgstr "git bisect--helper --bisect-replay <tên_tập_tin>"
msgid "git bisect--helper --bisect-skip [(<rev>|<range>)...]"
msgstr "git bisect--helper --bisect-skip [(<rev>|<vùng>)…]"
-#: builtin/bisect--helper.c:33
-msgid "git bisect--helper --bisect-visualize"
-msgstr "git bisect--helper --bisect-visualize"
-
#: builtin/bisect--helper.c:34
msgid "git bisect--helper --bisect-run <cmd>..."
msgstr "git bisect--helper --bisect-run <lệnh>…"
@@ -11328,40 +11561,50 @@ msgstr "“%s�? bạn đang nói gì thế?"
msgid "cannot read file '%s' for replaying"
msgstr "không thể Ä‘á»c tập tin “%s†để thao diá»…n lại"
-#: builtin/bisect--helper.c:1107 builtin/bisect--helper.c:1274
+#: builtin/bisect--helper.c:1120 builtin/bisect--helper.c:1152
+#, c-format
+msgid "running %s\n"
+msgstr "đang chạy %s\n"
+
+#: builtin/bisect--helper.c:1145 builtin/bisect--helper.c:1335
msgid "bisect run failed: no command provided."
msgstr "bisect chạy gặp lỗi: không đưa ra lệnh."
-#: builtin/bisect--helper.c:1116
+#: builtin/bisect--helper.c:1166
#, c-format
-msgid "running %s\n"
-msgstr "đang chạy %s\n"
+msgid "unable to verify '%s' on good revision"
+msgstr "không thể xác nhận “%s†trên điểm xét duyệt tốt"
-#: builtin/bisect--helper.c:1120
+#: builtin/bisect--helper.c:1172
+#, c-format
+msgid "bogus exit code %d for good revision"
+msgstr "mã thoát giả %d cho điểm xét duyệt tốt"
+
+#: builtin/bisect--helper.c:1180
#, c-format
msgid "bisect run failed: exit code %d from '%s' is < 0 or >= 128"
msgstr "chạy bisect gặp lỗi: mã trả vỠ%d từ lệnh “%s†là < 0 hoặc >= 128"
-#: builtin/bisect--helper.c:1136
+#: builtin/bisect--helper.c:1195
#, c-format
msgid "cannot open file '%s' for writing"
msgstr "không thể mở “%s†để ghi"
-#: builtin/bisect--helper.c:1152
+#: builtin/bisect--helper.c:1213
msgid "bisect run cannot continue any more"
msgstr "bisect không thể tiếp tục thêm được nữa"
-#: builtin/bisect--helper.c:1154
+#: builtin/bisect--helper.c:1215
#, c-format
msgid "bisect run success"
msgstr "bisect chạy thành công"
-#: builtin/bisect--helper.c:1157
+#: builtin/bisect--helper.c:1218
#, c-format
msgid "bisect found first bad commit"
msgstr "bisect tìm thấy lần chuyển giao sai đầu tiên"
-#: builtin/bisect--helper.c:1160
+#: builtin/bisect--helper.c:1221
#, c-format
msgid ""
"bisect run failed: 'git bisect--helper --bisect-state %s' exited with error "
@@ -11370,72 +11613,72 @@ msgstr ""
"chạy bisect gặp lỗi: “git bisect--helper --bisect-state %s†đã thoát ra với "
"mã lỗi %d"
-#: builtin/bisect--helper.c:1192
+#: builtin/bisect--helper.c:1253
msgid "reset the bisection state"
msgstr "đặt lại trạng di chuyển nửa bước"
-#: builtin/bisect--helper.c:1194
+#: builtin/bisect--helper.c:1255
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:1196
+#: builtin/bisect--helper.c:1257
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:1198
+#: builtin/bisect--helper.c:1259
msgid "start the bisect session"
msgstr "bắt đầu phiên di chuyển nửa bước"
-#: builtin/bisect--helper.c:1200
+#: builtin/bisect--helper.c:1261
msgid "find the next bisection commit"
msgstr "tìm lần chuyển giao không di chuyển phân đôi"
-#: builtin/bisect--helper.c:1202
+#: builtin/bisect--helper.c:1263
msgid "mark the state of ref (or refs)"
msgstr "đánh dấu trạng thái ref (hoặc refs)"
-#: builtin/bisect--helper.c:1204
+#: builtin/bisect--helper.c:1265
msgid "list the bisection steps so far"
msgstr "liệt kê các bước bisection đi quá xa"
-#: builtin/bisect--helper.c:1206
+#: builtin/bisect--helper.c:1267
msgid "replay the bisection process from the given file"
msgstr "phát lại quá trình bisection từ tệp đã cho"
-#: builtin/bisect--helper.c:1208
+#: builtin/bisect--helper.c:1269
msgid "skip some commits for checkout"
msgstr "bỠqua một số lần chuyển giao để lấy ra"
-#: builtin/bisect--helper.c:1210
+#: builtin/bisect--helper.c:1271
msgid "visualize the bisection"
msgstr "trực quan việc di chuyển nửa bước"
-#: builtin/bisect--helper.c:1212
-msgid "use <cmd>... to automatically bisect."
-msgstr "dùng <cmd>… để bisect một cách tự động."
+#: builtin/bisect--helper.c:1273
+msgid "use <cmd>... to automatically bisect"
+msgstr "dùng <cmd>… để bisect một cách tự động"
-#: builtin/bisect--helper.c:1214
+#: builtin/bisect--helper.c:1275
msgid "no log for BISECT_WRITE"
msgstr "không có nhật ký cho BISECT_WRITE"
-#: builtin/bisect--helper.c:1229
+#: builtin/bisect--helper.c:1290
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:1234
+#: builtin/bisect--helper.c:1295
msgid "--bisect-terms requires 0 or 1 argument"
msgstr "--bisect-terms cần 0 hoặc 1 tham số"
-#: builtin/bisect--helper.c:1243
+#: builtin/bisect--helper.c:1304
msgid "--bisect-next requires 0 arguments"
msgstr "--bisect-next cần 0 tham số"
-#: builtin/bisect--helper.c:1254
+#: builtin/bisect--helper.c:1315
msgid "--bisect-log requires 0 arguments"
msgstr "--bisect-log cần 0 tham số"
-#: builtin/bisect--helper.c:1259
+#: builtin/bisect--helper.c:1320
msgid "no logfile given"
msgstr "chưa chỉ ra tập tin ghi nhật ký"
@@ -11456,145 +11699,136 @@ msgstr "cần một màu: %s"
msgid "must end with a color"
msgstr "phải kết thúc bằng một màu"
-#: builtin/blame.c:724
-#, c-format
-msgid "invalid color '%s' in color.blame.repeatedLines"
-msgstr "màu không hợp lệ “%s†trong color.blame.repeatedLines"
-
-#: builtin/blame.c:742
-msgid "invalid value for blame.coloring"
-msgstr "màu không hợp lệ cho blame.coloring"
-
-#: builtin/blame.c:841
+#: builtin/blame.c:842
#, c-format
msgid "cannot find revision %s to ignore"
msgstr "không thể tìm thấy điểm xét duyệt %s để mà bỠqua"
-#: builtin/blame.c:863
+#: builtin/blame.c:864
msgid "show blame entries as we find them, incrementally"
msgstr "hiển thị các mục “blame†như là chúng ta thấy chúng, tăng dần"
-#: builtin/blame.c:864
+#: builtin/blame.c:865
msgid "do not show object names of boundary commits (Default: off)"
msgstr ""
"đừng hiển thị tên đối tượng của những lần chuyển giao biên giới (Mặc định: "
"off)"
-#: builtin/blame.c:865
+#: builtin/blame.c:866
msgid "do not treat root commits as boundaries (Default: off)"
msgstr "không coi các lần chuyển giao gốc là giới hạn (Mặc định: off)"
-#: builtin/blame.c:866
+#: builtin/blame.c:867
msgid "show work cost statistics"
msgstr "hiển thị thống kê công sức làm việc"
-#: builtin/blame.c:867 builtin/checkout.c:1536 builtin/clone.c:94
-#: builtin/commit-graph.c:75 builtin/commit-graph.c:228 builtin/fetch.c:180
+#: builtin/blame.c:868 builtin/checkout.c:1554 builtin/clone.c:98
+#: builtin/commit-graph.c:75 builtin/commit-graph.c:228 builtin/fetch.c:181
#: builtin/merge.c:301 builtin/multi-pack-index.c:103
#: builtin/multi-pack-index.c:154 builtin/multi-pack-index.c:180
#: builtin/multi-pack-index.c:208 builtin/pull.c:120 builtin/push.c:566
-#: builtin/send-pack.c:202
+#: builtin/remote.c:683 builtin/send-pack.c:202
msgid "force progress reporting"
msgstr "ép buộc báo cáo tiến triển công việc"
-#: builtin/blame.c:868
+#: builtin/blame.c:869
msgid "show output score for blame entries"
msgstr "hiển thị kết xuất Ä‘iểm số cho các mục tin “blameâ€"
-#: builtin/blame.c:869
+#: builtin/blame.c:870
msgid "show original filename (Default: auto)"
msgstr "hiển thị tên tập tin gốc (Mặc định: auto)"
-#: builtin/blame.c:870
+#: builtin/blame.c:871
msgid "show original linenumber (Default: off)"
msgstr "hiển thị số dòng gốc (Mặc định: off)"
-#: builtin/blame.c:871
+#: builtin/blame.c:872
msgid "show in a format designed for machine consumption"
msgstr "hiển thị ở định dạng đã thiết kế cho dùng bằng máy"
-#: builtin/blame.c:872
+#: builtin/blame.c:873
msgid "show porcelain format with per-line commit information"
msgstr "hiển thị định dạng “porcelain†với thông tin chuyển giao mỗi dòng"
-#: builtin/blame.c:873
+#: builtin/blame.c:874
msgid "use the same output mode as git-annotate (Default: off)"
msgstr "dùng cùng chế độ xuất ra với git-annotate (Mặc định: off)"
-#: builtin/blame.c:874
+#: builtin/blame.c:875
msgid "show raw timestamp (Default: off)"
msgstr "hiển thị dấu vết thá»i gian dạng thô (Mặc định: off)"
-#: builtin/blame.c:875
+#: builtin/blame.c:876
msgid "show long commit SHA1 (Default: off)"
msgstr "hiển thị SHA1 của lần chuyển giao dạng dài (Mặc định: off)"
-#: builtin/blame.c:876
+#: builtin/blame.c:877
msgid "suppress author name and timestamp (Default: off)"
msgstr "không hiển thị tên tác giả và dấu vết thá»i gian (Mặc định: off)"
-#: builtin/blame.c:877
+#: builtin/blame.c:878
msgid "show author email instead of name (Default: off)"
msgstr "hiển thị thư điện tử của tác giả thay cho tên (Mặc định: off)"
-#: builtin/blame.c:878
+#: builtin/blame.c:879
msgid "ignore whitespace differences"
msgstr "bỠqua các khác biệt do khoảng trắng gây ra"
-#: builtin/blame.c:879 builtin/log.c:1838
+#: builtin/blame.c:880 builtin/log.c:1857
msgid "rev"
msgstr "rev"
-#: builtin/blame.c:879
+#: builtin/blame.c:880
msgid "ignore <rev> when blaming"
msgstr "bá» qua <rev> khi blame"
-#: builtin/blame.c:880
+#: builtin/blame.c:881
msgid "ignore revisions from <file>"
msgstr "bỠqua các điểm xét duyệt từ <tập tin>"
-#: builtin/blame.c:881
+#: builtin/blame.c:882
msgid "color redundant metadata from previous line differently"
msgstr "siêu dữ liệu dư thừa màu từ dòng trước khác hẳn"
-#: builtin/blame.c:882
+#: builtin/blame.c:883
msgid "color lines by age"
msgstr "các dòng màu theo tuổi"
-#: builtin/blame.c:883
+#: builtin/blame.c:884
msgid "spend extra cycles to find better match"
msgstr "tiêu thụ thêm năng tài nguyên máy móc để tìm kiếm tốt hơn nữa"
-#: builtin/blame.c:884
+#: builtin/blame.c:885
msgid "use revisions from <file> instead of calling git-rev-list"
msgstr ""
"sá»­ dụng các Ä‘iểm xét duyệt (revision) từ <tập tin> thay vì gá»i “git-rev-listâ€"
-#: builtin/blame.c:885
+#: builtin/blame.c:886
msgid "use <file>'s contents as the final image"
msgstr "sử dụng nội dung của <tập tin> như là ảnh cuối cùng"
-#: builtin/blame.c:886 builtin/blame.c:887
+#: builtin/blame.c:887 builtin/blame.c:888
msgid "score"
msgstr "điểm số"
-#: builtin/blame.c:886
+#: builtin/blame.c:887
msgid "find line copies within and across files"
msgstr "tìm các bản sao chép dòng trong và ngang qua tập tin"
-#: builtin/blame.c:887
+#: builtin/blame.c:888
msgid "find line movements within and across files"
msgstr "tìm các di chuyển dòng trong và ngang qua tập tin"
-#: builtin/blame.c:888
+#: builtin/blame.c:889
msgid "range"
msgstr "vùng"
-#: builtin/blame.c:889
+#: builtin/blame.c:890
msgid "process only line range <start>,<end> or function :<funcname>"
msgstr "xử lý chỉ dòng vùng <đầu>,<cuối> hoặc tính năng :<funcname>"
-#: builtin/blame.c:947
+#: builtin/blame.c:949
msgid "--progress can't be used with --incremental or porcelain formats"
msgstr ""
"--progress không được dùng cùng với --incremental hay các định dạng porcelain"
@@ -11607,17 +11841,17 @@ msgstr ""
#. your language may need more or fewer display
#. columns.
#.
-#: builtin/blame.c:998
+#: builtin/blame.c:1000
msgid "4 years, 11 months ago"
msgstr "4 năm, 11 tháng trước"
-#: builtin/blame.c:1114
+#: builtin/blame.c:1116
#, c-format
msgid "file %s has only %lu line"
msgid_plural "file %s has only %lu lines"
msgstr[0] "tập tin %s chỉ có %lu dòng"
-#: builtin/blame.c:1159
+#: builtin/blame.c:1161
msgid "Blaming lines"
msgstr "Các dòng blame"
@@ -11626,30 +11860,38 @@ msgid "git branch [<options>] [-r | -a] [--merged] [--no-merged]"
msgstr "git branch [<các tùy chá»n>] [-r | -a] [--merged] [ --no-merged]"
#: builtin/branch.c:30
-msgid "git branch [<options>] [-l] [-f] <branch-name> [<start-point>]"
-msgstr "git branch [<các tùy chá»n>] [-l] [-f] <tên-nhánh> [<Ä‘iểm-đầu>]"
+msgid ""
+"git branch [<options>] [-f] [--recurse-submodules] <branch-name> [<start-"
+"point>]"
+msgstr ""
+"git branch [<các tùy chá»n>] [-f] [--recurse-submodules] <tên-nhánh> [<Ä‘iểm-"
+"đầu>]"
#: builtin/branch.c:31
+msgid "git branch [<options>] [-l] [<pattern>...]"
+msgstr "git branch [<các tùy chá»n>] [-l] [<mẫu>...]"
+
+#: builtin/branch.c:32
msgid "git branch [<options>] [-r] (-d | -D) <branch-name>..."
msgstr "git branch [<các tùy chá»n>] [-r] (-d | -D) <tên-nhánh> …"
-#: builtin/branch.c:32
+#: builtin/branch.c:33
msgid "git branch [<options>] (-m | -M) [<old-branch>] <new-branch>"
msgstr "git branch [<các tùy chá»n>] (-m | -M) [<nhánh-cÅ©>] <nhánh-má»›i>"
-#: builtin/branch.c:33
+#: builtin/branch.c:34
msgid "git branch [<options>] (-c | -C) [<old-branch>] <new-branch>"
msgstr "git branch [<các tùy chá»n>] (-c | -C) [<nhánh-cÅ©>] <nhánh-má»›i>"
-#: builtin/branch.c:34
+#: builtin/branch.c:35
msgid "git branch [<options>] [-r | -a] [--points-at]"
msgstr "git branch [<các tùy chá»n>] [-r | -a] [--points-at]"
-#: builtin/branch.c:35
+#: builtin/branch.c:36
msgid "git branch [<options>] [-r | -a] [--format]"
msgstr "git branch [<các tùy chá»n>] [-r | -a] [--format]"
-#: builtin/branch.c:153
+#: builtin/branch.c:165
#, c-format
msgid ""
"deleting branch '%s' that has been merged to\n"
@@ -11658,7 +11900,7 @@ msgstr ""
"đang xóa nhánh “%s†mà nó lại đã được hòa trộn vào\n"
" “%sâ€, nhÆ°ng vẫn chÆ°a được hòa trá»™n vào HEAD."
-#: builtin/branch.c:157
+#: builtin/branch.c:169
#, c-format
msgid ""
"not deleting branch '%s' that is not yet merged to\n"
@@ -11667,12 +11909,12 @@ msgstr ""
"không xóa nhánh “%s†cái mà chưa được hòa trộn vào\n"
" “%sâ€, cho dù là nó đã được hòa trá»™n vào HEAD."
-#: builtin/branch.c:171
+#: builtin/branch.c:183
#, c-format
msgid "Couldn't look up commit object for '%s'"
msgstr "Không thể tìm kiếm đối tượng chuyển giao cho “%sâ€"
-#: builtin/branch.c:175
+#: builtin/branch.c:187
#, c-format
msgid ""
"The branch '%s' is not fully merged.\n"
@@ -11681,111 +11923,111 @@ msgstr ""
"Nhánh “%s†không được trộn một cách đầy đủ.\n"
"Nếu bạn thá»±c sá»± muốn xóa nó, thì chạy lệnh “git branch -D %sâ€."
-#: builtin/branch.c:188
+#: builtin/branch.c:200
msgid "Update of config-file failed"
msgstr "Cập nhật tập tin cấu hình gặp lỗi"
-#: builtin/branch.c:223
+#: builtin/branch.c:235
msgid "cannot use -a with -d"
msgstr "không thể dùng tùy chá»n -a vá»›i -d"
-#: builtin/branch.c:230
+#: builtin/branch.c:242
msgid "Couldn't look up commit object for HEAD"
msgstr "Không thể tìm kiếm đối tượng chuyển giao cho HEAD"
-#: builtin/branch.c:247
+#: builtin/branch.c:259
#, c-format
msgid "Cannot delete branch '%s' checked out at '%s'"
msgstr "Không thể xóa nhánh “%s†đã được lấy ra tại “%sâ€"
-#: builtin/branch.c:262
+#: builtin/branch.c:274
#, c-format
msgid "remote-tracking branch '%s' not found."
msgstr "không tìm thấy nhánh theo dõi máy chủ “%sâ€."
-#: builtin/branch.c:263
+#: builtin/branch.c:275
#, c-format
msgid "branch '%s' not found."
msgstr "không tìm thấy nhánh “%sâ€."
-#: builtin/branch.c:294
+#: builtin/branch.c:306
#, c-format
msgid "Deleted remote-tracking branch %s (was %s).\n"
msgstr "Äã xóa nhánh theo dõi máy chủ \"%s\" (từng là %s).\n"
-#: builtin/branch.c:295
+#: builtin/branch.c:307
#, c-format
msgid "Deleted branch %s (was %s).\n"
msgstr "Nhánh “%s†đã bị xóa (từng là %s)\n"
-#: builtin/branch.c:445 builtin/tag.c:63
+#: builtin/branch.c:457 builtin/tag.c:64
msgid "unable to parse format string"
msgstr "không thể phân tích chuỗi định dạng"
-#: builtin/branch.c:476
+#: builtin/branch.c:488
msgid "could not resolve HEAD"
msgstr "không thể phân giải HEAD"
-#: builtin/branch.c:482
+#: builtin/branch.c:494
#, c-format
msgid "HEAD (%s) points outside of refs/heads/"
msgstr "HEAD (%s) chỉ bên ngoài của refs/heads/"
-#: builtin/branch.c:497
+#: builtin/branch.c:509
#, c-format
msgid "Branch %s is being rebased at %s"
msgstr "Nhánh %s đang được cải tổ lại tại %s"
-#: builtin/branch.c:501
+#: builtin/branch.c:513
#, c-format
msgid "Branch %s is being bisected at %s"
msgstr "Nhánh %s đang được di chuyển phân đôi (bisect) tại %s"
-#: builtin/branch.c:518
+#: builtin/branch.c:530
msgid "cannot copy the current branch while not on any."
msgstr "không thể sao chép nhánh hiện hành trong khi nó chẳng ở đâu cả."
-#: builtin/branch.c:520
+#: builtin/branch.c:532
msgid "cannot rename the current branch while not on any."
msgstr "không thể đổi tên nhánh hiện hành trong khi nó chẳng ở đâu cả."
-#: builtin/branch.c:531
+#: builtin/branch.c:543
#, c-format
msgid "Invalid branch name: '%s'"
msgstr "Tên nhánh không hợp lệ: “%sâ€"
-#: builtin/branch.c:560
+#: builtin/branch.c:572
msgid "Branch rename failed"
msgstr "Gặp lỗi khi đổi tên nhánh"
-#: builtin/branch.c:562
+#: builtin/branch.c:574
msgid "Branch copy failed"
msgstr "Gặp lỗi khi sao chép nhánh"
-#: builtin/branch.c:566
+#: builtin/branch.c:578
#, c-format
msgid "Created a copy of a misnamed branch '%s'"
msgstr "Äã tạo má»™t bản sao của nhánh khuyết danh “%sâ€"
-#: builtin/branch.c:569
+#: builtin/branch.c:581
#, c-format
msgid "Renamed a misnamed branch '%s' away"
msgstr "Äã đổi tên nhánh khuyết danh “%s†đi"
-#: builtin/branch.c:575
+#: builtin/branch.c:587
#, c-format
msgid "Branch renamed to %s, but HEAD is not updated!"
msgstr "Nhánh bị đổi tên thành %s, nhưng HEAD lại không được cập nhật!"
-#: builtin/branch.c:584
+#: builtin/branch.c:596
msgid "Branch is renamed, but update of config-file failed"
msgstr "Nhánh bị đổi tên, nhưng cập nhật tập tin cấu hình gặp lỗi"
-#: builtin/branch.c:586
+#: builtin/branch.c:598
msgid "Branch is copied, but update of config-file failed"
msgstr "Nhánh đã được sao chép, nhưng cập nhật tập tin cấu hình gặp lỗi"
-#: builtin/branch.c:602
+#: builtin/branch.c:614
#, c-format
msgid ""
"Please edit the description for the branch\n"
@@ -11796,176 +12038,193 @@ msgstr ""
" %s\n"
"Những dòng được bắt đầu bằng “%c†sẽ được cắt bá».\n"
-#: builtin/branch.c:637
+#: builtin/branch.c:651
msgid "Generic options"
msgstr "Tùy chá»n chung"
-#: builtin/branch.c:639
+#: builtin/branch.c:653
msgid "show hash and subject, give twice for upstream branch"
msgstr "hiển thị mã băm và chủ Ä‘á», Ä‘Æ°a ra hai lần cho nhánh thượng nguồn"
-#: builtin/branch.c:640
+#: builtin/branch.c:654
msgid "suppress informational messages"
msgstr "không xuất các thông tin"
-#: builtin/branch.c:642
+#: builtin/branch.c:656 builtin/checkout.c:1571
+#: builtin/submodule--helper.c:3077
msgid "set branch tracking configuration"
msgstr "đặt cấu hình thao dõi nhánh"
-#: builtin/branch.c:645
+#: builtin/branch.c:659
msgid "do not use"
msgstr "không dùng"
-#: builtin/branch.c:647
+#: builtin/branch.c:661
msgid "upstream"
msgstr "thượng nguồn"
-#: builtin/branch.c:647
+#: builtin/branch.c:661
msgid "change the upstream info"
msgstr "thay đổi thông tin thượng nguồn"
-#: builtin/branch.c:648
+#: builtin/branch.c:662
msgid "unset the upstream info"
msgstr "bỠđặt thông tin thượng nguồn"
-#: builtin/branch.c:649
+#: builtin/branch.c:663
msgid "use colored output"
msgstr "tô màu kết xuất"
-#: builtin/branch.c:650
+#: builtin/branch.c:664
msgid "act on remote-tracking branches"
msgstr "thao tác trên nhánh “remote-trackingâ€"
-#: builtin/branch.c:652 builtin/branch.c:654
+#: builtin/branch.c:666 builtin/branch.c:668
msgid "print only branches that contain the commit"
msgstr "chỉ hiển thị những nhánh mà nó chứa lần chuyển giao"
-#: builtin/branch.c:653 builtin/branch.c:655
+#: builtin/branch.c:667 builtin/branch.c:669
msgid "print only branches that don't contain the commit"
msgstr "chỉ hiển thị những nhánh mà nó không chứa lần chuyển giao"
-#: builtin/branch.c:658
+#: builtin/branch.c:672
msgid "Specific git-branch actions:"
msgstr "Hành động git-branch:"
-#: builtin/branch.c:659
+#: builtin/branch.c:673
msgid "list both remote-tracking and local branches"
msgstr "liệt kê cả nhánh “remote-tracking†và nội bộ"
-#: builtin/branch.c:661
+#: builtin/branch.c:675
msgid "delete fully merged branch"
msgstr "xóa một toàn bộ nhánh đã hòa trộn"
-#: builtin/branch.c:662
+#: builtin/branch.c:676
msgid "delete branch (even if not merged)"
msgstr "xóa nhánh (cho dù là chưa được hòa trộn)"
-#: builtin/branch.c:663
+#: builtin/branch.c:677
msgid "move/rename a branch and its reflog"
msgstr "di chuyển hay đổi tên một nhánh và reflog của nó"
-#: builtin/branch.c:664
+#: builtin/branch.c:678
msgid "move/rename a branch, even if target exists"
msgstr "di chuyển hoặc đổi tên một nhánh ngay cả khi đích đã có sẵn"
-#: builtin/branch.c:665
+#: builtin/branch.c:679
msgid "copy a branch and its reflog"
msgstr "sao chép một nhánh và reflog của nó"
-#: builtin/branch.c:666
+#: builtin/branch.c:680
msgid "copy a branch, even if target exists"
msgstr "sao chép một nhánh ngay cả khi đích đã có sẵn"
-#: builtin/branch.c:667
+#: builtin/branch.c:681
msgid "list branch names"
msgstr "liệt kê các tên nhánh"
-#: builtin/branch.c:668
+#: builtin/branch.c:682
msgid "show current branch name"
msgstr "hiển thị nhánh hiện hành"
-#: builtin/branch.c:669
+#: builtin/branch.c:683 builtin/submodule--helper.c:3075
msgid "create the branch's reflog"
msgstr "tạo reflog của nhánh"
-#: builtin/branch.c:671
+#: builtin/branch.c:685
msgid "edit the description for the branch"
msgstr "sửa mô tả cho nhánh"
-#: builtin/branch.c:672
+#: builtin/branch.c:686
msgid "force creation, move/rename, deletion"
msgstr "buộc tạo, di chuyển/đổi tên, xóa"
-#: builtin/branch.c:673
+#: builtin/branch.c:687
msgid "print only branches that are merged"
msgstr "chỉ hiển thị những nhánh mà nó được hòa trộn"
-#: builtin/branch.c:674
+#: builtin/branch.c:688
msgid "print only branches that are not merged"
msgstr "chỉ hiển thị những nhánh mà nó không được hòa trộn"
-#: builtin/branch.c:675
+#: builtin/branch.c:689
msgid "list branches in columns"
msgstr "liệt kê các nhánh trong các cột"
-#: builtin/branch.c:677 builtin/for-each-ref.c:45 builtin/notes.c:413
+#: builtin/branch.c:691 builtin/for-each-ref.c:45 builtin/notes.c:413
#: builtin/notes.c:416 builtin/notes.c:579 builtin/notes.c:582
-#: builtin/tag.c:475
+#: builtin/tag.c:476
msgid "object"
msgstr "đối tượng"
-#: builtin/branch.c:678
+#: builtin/branch.c:692
msgid "print only branches of the object"
msgstr "chỉ hiển thị các nhánh của đối tượng"
-#: builtin/branch.c:679 builtin/for-each-ref.c:51 builtin/tag.c:482
+#: builtin/branch.c:693 builtin/for-each-ref.c:51 builtin/tag.c:483
msgid "sorting and filtering are case insensitive"
msgstr "sắp xếp và lá»c là phân biệt HOA thÆ°á»ng"
-#: builtin/branch.c:680 builtin/for-each-ref.c:41 builtin/tag.c:480
-#: builtin/verify-tag.c:38
+#: builtin/branch.c:694 builtin/ls-files.c:667
+msgid "recurse through submodules"
+msgstr "đệ quy xuyên qua mô-đun con"
+
+#: builtin/branch.c:695 builtin/for-each-ref.c:41 builtin/ls-tree.c:358
+#: builtin/tag.c:481 builtin/verify-tag.c:38
msgid "format to use for the output"
msgstr "định dạng sẽ dùng cho đầu ra"
-#: builtin/branch.c:703 builtin/clone.c:678
+#: builtin/branch.c:718 builtin/clone.c:684
msgid "HEAD not found below refs/heads!"
msgstr "Không tìm thấy HEAD ở dưới refs/heads!"
-#: builtin/branch.c:742 builtin/branch.c:798 builtin/branch.c:807
+#: builtin/branch.c:739
+msgid ""
+"branch with --recurse-submodules can only be used if submodule."
+"propagateBranches is enabled"
+msgstr ""
+"nhánh với --recurse-submodules chỉ có thể được sử dụng nếu submodule."
+"propagateBranches được kích hoạt"
+
+#: builtin/branch.c:741
+msgid "--recurse-submodules can only be used to create branches"
+msgstr "--recurse-submodules chỉ có thể được sử dụng để tạo ra các nhánh"
+
+#: builtin/branch.c:770 builtin/branch.c:826 builtin/branch.c:835
msgid "branch name required"
msgstr "cần chỉ ra tên nhánh"
-#: builtin/branch.c:774
+#: builtin/branch.c:802
msgid "Cannot give description to detached HEAD"
msgstr "Không thể Ä‘Æ°a ra mô tả HEAD đã tách rá»i"
-#: builtin/branch.c:779
+#: builtin/branch.c:807
msgid "cannot edit description of more than one branch"
msgstr "không thể sá»­a mô tả cho nhiá»u hÆ¡n má»™t nhánh"
-#: builtin/branch.c:786
+#: builtin/branch.c:814
#, c-format
msgid "No commit on branch '%s' yet."
msgstr "Vẫn chÆ°a chuyển giao trên nhánh “%sâ€."
-#: builtin/branch.c:789
+#: builtin/branch.c:817
#, c-format
msgid "No branch named '%s'."
msgstr "Không có nhánh nào có tên “%sâ€."
-#: builtin/branch.c:804
+#: builtin/branch.c:832
msgid "too many branches for a copy operation"
msgstr "quá nhiá»u nhánh dành cho thao tác sao chép"
-#: builtin/branch.c:813
+#: builtin/branch.c:841
msgid "too many arguments for a rename operation"
msgstr "quá nhiá»u tham số cho thao tác đổi tên"
-#: builtin/branch.c:818
+#: builtin/branch.c:846
msgid "too many arguments to set new upstream"
msgstr "quá nhiá»u tham số để đặt thượng nguồn má»›i"
-#: builtin/branch.c:822
+#: builtin/branch.c:850
#, c-format
msgid ""
"could not set upstream of HEAD to %s when it does not point to any branch."
@@ -11973,30 +12232,30 @@ msgstr ""
"không thể đặt thượng nguồn của HEAD thành %s khi mà nó chẳng chỉ đến nhánh "
"nào cả."
-#: builtin/branch.c:825 builtin/branch.c:848
+#: builtin/branch.c:853 builtin/branch.c:873
#, c-format
msgid "no such branch '%s'"
msgstr "không có nhánh nào nhÆ° thế “%sâ€"
-#: builtin/branch.c:829
+#: builtin/branch.c:857
#, c-format
msgid "branch '%s' does not exist"
msgstr "chÆ°a có nhánh “%sâ€"
-#: builtin/branch.c:842
+#: builtin/branch.c:867
msgid "too many arguments to unset upstream"
msgstr "quá nhiá»u tham số để bỠđặt thượng nguồn"
-#: builtin/branch.c:846
+#: builtin/branch.c:871
msgid "could not unset upstream of HEAD when it does not point to any branch."
msgstr "không thể bỠđặt thượng nguồn của HEAD không chỉ đến một nhánh nào cả."
-#: builtin/branch.c:852
+#: builtin/branch.c:877
#, c-format
msgid "Branch '%s' has no upstream information"
msgstr "Nhánh “%s†không có thông tin thượng nguồn"
-#: builtin/branch.c:862
+#: builtin/branch.c:890
msgid ""
"The -a, and -r, options to 'git branch' do not take a branch name.\n"
"Did you mean to use: -a|-r --list <pattern>?"
@@ -12005,7 +12264,7 @@ msgstr ""
"nhánh.\n"
"Có phải ý bạn là dùng: -a|-r --list <mẫu>?"
-#: builtin/branch.c:866
+#: builtin/branch.c:894
msgid ""
"the '--set-upstream' option is no longer supported. Please use '--track' or "
"'--set-upstream-to' instead."
@@ -12121,19 +12380,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:65 builtin/pack-objects.c:3876
+#: builtin/bundle.c:65 builtin/pack-objects.c:3899
msgid "do not show progress meter"
msgstr "không hiển thị bộ đo tiến trình"
-#: builtin/bundle.c:67 builtin/bundle.c:167 builtin/pack-objects.c:3878
+#: builtin/bundle.c:67 builtin/bundle.c:168 builtin/pack-objects.c:3901
msgid "show progress meter"
msgstr "hiển thị bộ đo tiến trình"
-#: builtin/bundle.c:69 builtin/pack-objects.c:3880
+#: builtin/bundle.c:69 builtin/pack-objects.c:3903
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:72 builtin/pack-objects.c:3883
+#: builtin/bundle.c:72 builtin/pack-objects.c:3906
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"
@@ -12145,112 +12404,232 @@ msgstr "chỉ điịnh định dạng cho bundle"
msgid "Need a repository to create a bundle."
msgstr "Cần một kho chứa để có thể tạo một bundle."
-#: builtin/bundle.c:107
+#: builtin/bundle.c:108
msgid "do not show bundle details"
msgstr "không hiển thị chi tiết bundle (bó)"
-#: builtin/bundle.c:126
+#: builtin/bundle.c:127
#, c-format
msgid "%s is okay\n"
msgstr "“%s†tốt\n"
-#: builtin/bundle.c:182
+#: builtin/bundle.c:183
msgid "Need a repository to unbundle."
msgstr "Cần một kho chứa để có thể giải nén một bundle."
-#: builtin/bundle.c:185
+#: builtin/bundle.c:186
msgid "Unbundling objects"
msgstr "Tháo rá»i các đối tượng"
-#: builtin/bundle.c:219 builtin/remote.c:1733
+#: builtin/bundle.c:220 builtin/remote.c:1758
#, c-format
msgid "Unknown subcommand: %s"
msgstr "Không hiểu câu lệnh con: %s"
-#: builtin/cat-file.c:622
+#: builtin/cat-file.c:568
+msgid "flush is only for --buffer mode"
+msgstr "flush chỉ dành cho chế độ --buffer"
+
+#: builtin/cat-file.c:612
+msgid "empty command in input"
+msgstr "lệnh thực thi trống rỗng trong đầu vào"
+
+#: builtin/cat-file.c:614
+#, c-format
+msgid "whitespace before command: '%s'"
+msgstr "có khoảng trắng trước lệnh: '%s'"
+
+#: builtin/cat-file.c:623
+#, c-format
+msgid "%s requires arguments"
+msgstr "%s cần các tham số"
+
+#: builtin/cat-file.c:628
+#, c-format
+msgid "%s takes no arguments"
+msgstr "%s không nhận tham số"
+
+#: builtin/cat-file.c:636
+#, c-format
+msgid "unknown command: '%s'"
+msgstr "không hiểu câu lệnh: '%s'"
+
+#: builtin/cat-file.c:795
+msgid "only one batch option may be specified"
+msgstr "chỉ má»™t tùy chá»n batch được chỉ ra"
+
+#: builtin/cat-file.c:824
+msgid "git cat-file <type> <object>"
+msgstr "git cat-file <kiểu> <đối tượng>"
+
+#: builtin/cat-file.c:825
+msgid "git cat-file (-e | -p) <object>"
+msgstr "git cat-file (-e | -p) <đối tượng>"
+
+#: builtin/cat-file.c:826
+msgid "git cat-file (-t | -s) [--allow-unknown-type] <object>"
+msgstr "git cat-file (-t | -s) [--allow-unknown-type] <đối_tượng>"
+
+#: builtin/cat-file.c:827
msgid ""
-"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 | --batch-command) [--batch-all-"
+"objects]\n"
+" [--buffer] [--follow-symlinks] [--unordered]\n"
+" [--textconv | --filters]"
msgstr ""
-"git cat-file (-t [--allow-unknown-type] | -s [--allow-unknown-type] | -e | -"
-"p | <kiểu> | --textconv) | --filters) [--path=<Ä‘Æ°á»ng/dẫn>] <đối_tượng>"
+"git cat-file (--batch | --batch-check | --batch-command) [--batch-all-"
+"objects]\n"
+" [--buffer] [--follow-symlinks] [--unordered]\n"
+" [--textconv | --filters]"
-#: builtin/cat-file.c:623
+#: builtin/cat-file.c:830
msgid ""
-"git cat-file (--batch[=<format>] | --batch-check[=<format>]) [--follow-"
-"symlinks] [--textconv | --filters]"
+"git cat-file (--textconv | --filters)\n"
+" [<rev>:<path|tree-ish> | --path=<path|tree-ish> <rev>]"
msgstr ""
-"git cat-file (--batch[=<định dạng>] | --batch-check[=<định dạng>]) [--follow-"
-"symlinks] [--textconv | --filters]"
+"git cat-file (--textconv | --filters)\n"
+" [<rev>:<path|tree-ish> | --path=<path|tree-ish> <rev>]"
-#: builtin/cat-file.c:644
-msgid "only one batch option may be specified"
-msgstr "chỉ má»™t tùy chá»n batch được chỉ ra"
+#: builtin/cat-file.c:836
+msgid "Check object existence or emit object contents"
+msgstr "Kiểm tra đối tượng có sẵn hay không hoặc phát nội dung của đối tượng"
+
+#: builtin/cat-file.c:838
+msgid "check if <object> exists"
+msgstr "không tra xem <đối tượng> có sẵn hay không"
-#: builtin/cat-file.c:662
-msgid "<type> can be one of: blob, tree, commit, tag"
-msgstr "<kiểu> là một trong số: blob, tree, commit hoặc tag"
+#: builtin/cat-file.c:839
+msgid "pretty-print <object> content"
+msgstr "in ná»™i dung <đối tượng> dạng dá»… Ä‘á»c"
-#: builtin/cat-file.c:663
-msgid "show object type"
-msgstr "hiển thị kiểu đối tượng"
+#: builtin/cat-file.c:841
+msgid "Emit [broken] object attributes"
+msgstr "Phát các thuá»™c tính đối tượng [há»ng]"
-#: builtin/cat-file.c:664
+#: builtin/cat-file.c:842
+msgid "show object type (one of 'blob', 'tree', 'commit', 'tag', ...)"
+msgstr ""
+"hiển thị kiểu của đối tượng (là một trong số 'blob', 'tree', 'commit', "
+"'tag', ...)"
+
+#: builtin/cat-file.c:843
msgid "show object size"
msgstr "hiển thị kích thước đối tượng"
-#: builtin/cat-file.c:666
-msgid "exit with zero when there's no error"
-msgstr "thoát với 0 khi không có lỗi"
+#: builtin/cat-file.c:845
+msgid "allow -s and -t to work with broken/corrupt objects"
+msgstr "cho phép -s và -t để làm việc vá»›i các đối tượng sai/há»ng"
-#: builtin/cat-file.c:667
-msgid "pretty-print object's content"
-msgstr "in ná»™i dung đối tượng dạng dá»… Ä‘á»c"
+#: builtin/cat-file.c:847
+msgid "Batch objects requested on stdin (or --batch-all-objects)"
+msgstr ""
+"Äã yêu cầu các đối tượng batch trên đầu vào tiêu chuẩn stdin (hoặc --batch-"
+"all-objects)"
-#: builtin/cat-file.c:669
-msgid "for blob objects, run textconv on object's content"
-msgstr "với đối tượng blob, chạy lệnh textconv trên nội dung của đối tượng"
+#: builtin/cat-file.c:849
+msgid "show full <object> or <rev> contents"
+msgstr "hiển thị đầy đủ nội dung <object> hay <rev>"
-#: builtin/cat-file.c:671
-msgid "for blob objects, run filters on object's content"
-msgstr "vá»›i đối tượng blob, chạy các bá»™ lá»c ná»™i dung của đối tượng"
+#: builtin/cat-file.c:853
+msgid "like --batch, but don't emit <contents>"
+msgstr "giống --batch, nhưng không phát ra <contents>"
-#: builtin/cat-file.c:672
-msgid "blob"
-msgstr "blob"
+#: builtin/cat-file.c:857
+msgid "read commands from stdin"
+msgstr "Ä‘á»c các lệnh từ đầu vào tiêu chuẩn"
-#: builtin/cat-file.c:673
-msgid "use a specific path for --textconv/--filters"
-msgstr "dùng má»™t Ä‘Æ°á»ng dẫn rõ ràng cho --textconv/--filters"
+#: builtin/cat-file.c:861
+msgid "with --batch[-check]: ignores stdin, batches all known objects"
+msgstr ""
+"vá»›i --batch[-check]: bá» qua đầu vào tiêu chuẩn stdin, batch má»i đối tượng đã "
+"biết"
-#: builtin/cat-file.c:675
-msgid "allow -s and -t to work with broken/corrupt objects"
-msgstr "cho phép -s và -t để làm việc vá»›i các đối tượng sai/há»ng"
+#: builtin/cat-file.c:863
+msgid "Change or optimize batch output"
+msgstr "Thay đổi hay tối ưu hóa đầu ra batch"
-#: builtin/cat-file.c:676
+#: builtin/cat-file.c:864
msgid "buffer --batch output"
msgstr "đệm kết xuất --batch"
-#: builtin/cat-file.c:678
-msgid "show info and content of objects fed from the standard input"
+#: builtin/cat-file.c:866
+msgid "follow in-tree symlinks"
+msgstr "theo liên kết má»m trong-cây"
+
+#: builtin/cat-file.c:868
+msgid "do not order objects before emitting them"
+msgstr "đừng sắp xếp các đối tượng trước khi phát chúng"
+
+#: builtin/cat-file.c:870
+msgid ""
+"Emit object (blob or tree) with conversion or filter (stand-alone, or with "
+"batch)"
msgstr ""
-"hiển thị thông tin và nội dung của các đối tượng lấy từ đầu vào tiêu chuẩn"
+"Phát đối tượng (blob hoặc cây) vá»›i bá»™ chuyển đổi hoặc bá»™ lá»c (stand-alone, "
+"hoặc với batch)"
-#: builtin/cat-file.c:682
-msgid "show info about objects fed from the standard input"
-msgstr "hiển thị các thông tin vỠđối tượng fed từ đầu vào tiêu chuẩn"
+#: builtin/cat-file.c:872
+msgid "run textconv on object's content"
+msgstr "chạy lệnh textconv trên nội dung của đối tượng"
-#: builtin/cat-file.c:686
-msgid "follow in-tree symlinks (used with --batch or --batch-check)"
-msgstr "theo liên kết má»m trong-cây (được dùng vá»›i --batch hay --batch-check)"
+#: builtin/cat-file.c:874
+msgid "run filters on object's content"
+msgstr "chạy các bá»™ lá»c ná»™i dung của đối tượng"
-#: builtin/cat-file.c:688
-msgid "show all objects with --batch or --batch-check"
-msgstr "hiển thị má»i đối tượng vá»›i --batch hay --batch-check"
+#: builtin/cat-file.c:875
+msgid "blob|tree"
+msgstr "blob|tree"
-#: builtin/cat-file.c:690
-msgid "do not order --batch-all-objects output"
-msgstr "đừng sắp xếp đầu ra --batch-all-objects"
+#: builtin/cat-file.c:876
+msgid "use a <path> for (--textconv | --filters); Not with 'batch'"
+msgstr ""
+"dùng má»™t </Ä‘Æ°á»ng/dẫn/> rõ ràng cho (--textconv/--filters); Không vá»›i 'batch'"
+
+#: builtin/cat-file.c:894
+#, c-format
+msgid "'%s=<%s>' needs '%s' or '%s'"
+msgstr "'%s=<%s>' cần '%s' hoặc '%s'"
+
+#: builtin/cat-file.c:896
+msgid "path|tree-ish"
+msgstr "path|tree-ish"
+
+#: builtin/cat-file.c:903 builtin/cat-file.c:906 builtin/cat-file.c:909
+#, c-format
+msgid "'%s' requires a batch mode"
+msgstr "“%s†cần một chế độ batch"
+
+#: builtin/cat-file.c:921
+#, c-format
+msgid "'-%c' is incompatible with batch mode"
+msgstr "'-%c' là xung khắc với chế độ batch"
+
+#: builtin/cat-file.c:924
+msgid "batch modes take no arguments"
+msgstr "chế độ batch không nhận các đối số"
+
+#: builtin/cat-file.c:932 builtin/cat-file.c:935
+#, c-format
+msgid "<rev> required with '%s'"
+msgstr "cần <rev> với '%s'"
+
+#: builtin/cat-file.c:938
+#, c-format
+msgid "<object> required with '-%c'"
+msgstr "cần <object> với '-%c'"
+
+#: builtin/cat-file.c:943 builtin/notes.c:374 builtin/notes.c:429
+#: builtin/notes.c:507 builtin/notes.c:519 builtin/notes.c:596
+#: builtin/notes.c:663 builtin/notes.c:813 builtin/notes.c:965
+#: builtin/notes.c:987 builtin/prune-packed.c:25 builtin/receive-pack.c:2489
+#: builtin/tag.c:592
+msgid "too many arguments"
+msgstr "có quá nhiá»u đối số"
+
+#: builtin/cat-file.c:947
+#, c-format
+msgid "only two arguments allowed in <type> <object> mode, not %d"
+msgstr "chỉ hai đối số được phép trong chế độ <type> <object>, không phải %d"
#: builtin/check-attr.c:13
msgid "git check-attr [-a | --all | <attr>...] [--] <pathname>..."
@@ -12268,7 +12647,7 @@ msgstr "báo cáo tất cả các thuộc tính đặt trên tập tin"
msgid "use .gitattributes only from the index"
msgstr "chỉ dùng .gitattributes từ bảng mục lục"
-#: builtin/check-attr.c:23 builtin/check-ignore.c:25 builtin/hash-object.c:100
+#: builtin/check-attr.c:23 builtin/check-ignore.c:25 builtin/hash-object.c:101
msgid "read file names from stdin"
msgstr "Ä‘á»c tên tập tin từ đầu vào tiêu chuẩn"
@@ -12276,8 +12655,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:1532 builtin/gc.c:550
-#: builtin/worktree.c:493
+#: builtin/check-ignore.c:21 builtin/checkout.c:1550 builtin/gc.c:550
+#: builtin/worktree.c:565
msgid "suppress progress reporting"
msgstr "chặn các báo cáo tiến trình hoạt động"
@@ -12334,160 +12713,164 @@ msgstr "chưa chỉ ra danh bạ"
msgid "git checkout--worker [<options>]"
msgstr "git checkout--worker [<các tùy chá»n>]"
-#: builtin/checkout--worker.c:118 builtin/checkout-index.c:201
-#: builtin/column.c:31 builtin/column.c:32 builtin/submodule--helper.c:1864
-#: builtin/submodule--helper.c:1867 builtin/submodule--helper.c:1875
-#: builtin/submodule--helper.c:2511 builtin/submodule--helper.c:2577
-#: builtin/worktree.c:491 builtin/worktree.c:728
+#: builtin/checkout--worker.c:118 builtin/checkout-index.c:235
+#: builtin/column.c:31 builtin/column.c:32 builtin/submodule--helper.c:1878
+#: builtin/submodule--helper.c:1881 builtin/submodule--helper.c:1889
+#: builtin/submodule--helper.c:2716 builtin/worktree.c:563
+#: builtin/worktree.c:808
msgid "string"
msgstr "chuá»—i"
-#: builtin/checkout--worker.c:119 builtin/checkout-index.c:202
+#: builtin/checkout--worker.c:119 builtin/checkout-index.c:236
msgid "when creating files, prepend <string>"
msgstr "khi tạo các tập tin, nối thêm <chuỗi>"
-#: builtin/checkout-index.c:152
+#: builtin/checkout-index.c:184
msgid "git checkout-index [<options>] [--] [<file>...]"
msgstr "git checkout-index [<các tùy chá»n>] [--] [<tập-tin>…]"
-#: builtin/checkout-index.c:169
+#: builtin/checkout-index.c:201
msgid "stage should be between 1 and 3 or all"
msgstr "stage nên giữa 1 và 3 hay all"
-#: builtin/checkout-index.c:187
+#: builtin/checkout-index.c:219
msgid "check out all files in the index"
msgstr "lấy ra toàn bộ các tập tin trong bảng mục lục"
-#: builtin/checkout-index.c:188
+#: builtin/checkout-index.c:221
+msgid "do not skip files with skip-worktree set"
+msgstr "đừng bỠqua các tập tin với skip-worktree được đặt"
+
+#: builtin/checkout-index.c:222
msgid "force overwrite of existing files"
msgstr "ép buộc ghi đè lên tập tin đã sẵn có từ trước"
-#: builtin/checkout-index.c:190
+#: builtin/checkout-index.c:224
msgid "no warning for existing files and files not in index"
msgstr ""
"không cảnh báo cho những tập tin tồn tại và không có trong bảng mục lục"
-#: builtin/checkout-index.c:192
+#: builtin/checkout-index.c:226
msgid "don't checkout new files"
msgstr "không checkout các tập tin mới"
-#: builtin/checkout-index.c:194
+#: builtin/checkout-index.c:228
msgid "update stat information in the index file"
msgstr "cập nhật thông tin thống kê trong tập tin lưu bảng mục lục mới"
-#: builtin/checkout-index.c:198
+#: builtin/checkout-index.c:232
msgid "read list of paths from the standard input"
msgstr "Ä‘á»c danh sách Ä‘Æ°á»ng dẫn từ đầu vào tiêu chuẩn"
-#: builtin/checkout-index.c:200
+#: builtin/checkout-index.c:234
msgid "write the content to temporary files"
msgstr "ghi nội dung vào tập tin tạm"
-#: builtin/checkout-index.c:204
+#: builtin/checkout-index.c:238
msgid "copy out the files from named stage"
msgstr "sao chép ra các tập tin từ bệ phóng có tên"
-#: builtin/checkout.c:33
+#: builtin/checkout.c:34
msgid "git checkout [<options>] <branch>"
msgstr "git checkout [<các tùy chá»n>] <nhánh>"
-#: builtin/checkout.c:34
+#: builtin/checkout.c:35
msgid "git checkout [<options>] [<branch>] -- <file>..."
msgstr "git checkout [<các tùy chá»n>] [<nhánh>] -- <tập-tin>…"
-#: builtin/checkout.c:39
+#: builtin/checkout.c:40
msgid "git switch [<options>] [<branch>]"
msgstr "git switch [<các tùy chá»n>] [<nhánh>]"
-#: builtin/checkout.c:44
+#: builtin/checkout.c:45
msgid "git restore [<options>] [--source=<branch>] <file>..."
msgstr "git restore [<các tùy chá»n>] [--source=<nhánh>] <tập tin>…"
-#: builtin/checkout.c:198 builtin/checkout.c:237
+#: builtin/checkout.c:199 builtin/checkout.c:238
#, c-format
msgid "path '%s' does not have our version"
msgstr "Ä‘Æ°á»ng dẫn “%s†không có các phiên bản của chúng ta"
-#: builtin/checkout.c:200 builtin/checkout.c:239
+#: builtin/checkout.c:201 builtin/checkout.c:240
#, c-format
msgid "path '%s' does not have their version"
msgstr "Ä‘Æ°á»ng dẫn “%s†không có các phiên bản của chúng"
-#: builtin/checkout.c:216
+#: builtin/checkout.c:217
#, c-format
msgid "path '%s' does not have all necessary versions"
msgstr "Ä‘Æ°á»ng dẫn “%s†không có tất cả các phiên bản cần thiết"
-#: builtin/checkout.c:269
+#: builtin/checkout.c:271
#, c-format
msgid "path '%s' does not have necessary versions"
msgstr "Ä‘Æ°á»ng dẫn “%s†không có các phiên bản cần thiết"
-#: builtin/checkout.c:286
+#: builtin/checkout.c:291
#, c-format
msgid "path '%s': cannot merge"
msgstr "Ä‘Æ°á»ng dẫn “%sâ€: không thể hòa trá»™n"
-#: builtin/checkout.c:302
+#: builtin/checkout.c:307
#, c-format
msgid "Unable to add merge result for '%s'"
msgstr "Không thể thêm kết quả hòa trá»™n cho “%sâ€"
-#: builtin/checkout.c:419
+#: builtin/checkout.c:424
#, c-format
msgid "Recreated %d merge conflict"
msgid_plural "Recreated %d merge conflicts"
msgstr[0] "Äã tạo lại %d xung Ä‘á»™t hòa trá»™n"
-#: builtin/checkout.c:424
+#: builtin/checkout.c:429
#, c-format
msgid "Updated %d path from %s"
msgid_plural "Updated %d paths from %s"
msgstr[0] "Äã cập nhật Ä‘Æ°á»ng dẫn %d từ %s"
-#: builtin/checkout.c:431
+#: builtin/checkout.c:436
#, c-format
msgid "Updated %d path from the index"
msgid_plural "Updated %d paths from the index"
msgstr[0] "Äã cập nhật Ä‘Æ°á»ng dẫn %d từ mục lục"
-#: builtin/checkout.c:454 builtin/checkout.c:457 builtin/checkout.c:460
-#: builtin/checkout.c:464
+#: builtin/checkout.c:459 builtin/checkout.c:462 builtin/checkout.c:465
+#: builtin/checkout.c:469
#, c-format
msgid "'%s' cannot be used with updating paths"
msgstr "không được dùng “%s†vá»›i các Ä‘Æ°á»ng dẫn cập nhật"
-#: builtin/checkout.c:474
+#: builtin/checkout.c:479
#, c-format
msgid "Cannot update paths and switch to branch '%s' at the same time."
msgstr ""
"Không thể cập nhật các Ä‘Æ°á»ng dẫn và chuyển đến nhánh “%s†cùng má»™t lúc."
-#: builtin/checkout.c:478
+#: builtin/checkout.c:483
#, c-format
msgid "neither '%s' or '%s' is specified"
msgstr "không chỉ định “%s†cÅ©ng không “%sâ€"
-#: builtin/checkout.c:482
+#: builtin/checkout.c:487
#, c-format
msgid "'%s' must be used when '%s' is not specified"
msgstr "phải có “%s†khi không chỉ định “%sâ€"
-#: builtin/checkout.c:487 builtin/checkout.c:492
+#: builtin/checkout.c:492 builtin/checkout.c:497
#, c-format
msgid "'%s' or '%s' cannot be used with %s"
msgstr "“%s†hay “%s†không thể được sử dụng với %s"
-#: builtin/checkout.c:566 builtin/checkout.c:573
+#: builtin/checkout.c:571 builtin/checkout.c:578
#, c-format
msgid "path '%s' is unmerged"
msgstr "Ä‘Æ°á»ng dẫn “%s†không được hòa trá»™n"
-#: builtin/checkout.c:747
+#: builtin/checkout.c:753
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:797
+#: builtin/checkout.c:809
#, c-format
msgid ""
"cannot continue with staged changes in the following files:\n"
@@ -12497,50 +12880,50 @@ msgstr ""
"sau:\n"
"%s"
-#: builtin/checkout.c:890
+#: builtin/checkout.c:902
#, 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:934
+#: builtin/checkout.c:947
msgid "HEAD is now at"
msgstr "HEAD hiện giỠtại"
-#: builtin/checkout.c:938 builtin/clone.c:609 t/helper/test-fast-rebase.c:203
+#: builtin/checkout.c:951 builtin/clone.c:615 t/helper/test-fast-rebase.c:203
msgid "unable to update HEAD"
msgstr "không thể cập nhật HEAD"
-#: builtin/checkout.c:942
+#: builtin/checkout.c:955
#, c-format
msgid "Reset branch '%s'\n"
msgstr "Äặt lại nhánh “%sâ€\n"
-#: builtin/checkout.c:945
+#: builtin/checkout.c:958
#, c-format
msgid "Already on '%s'\n"
msgstr "Äã sẵn sàng trên “%sâ€\n"
-#: builtin/checkout.c:949
+#: builtin/checkout.c:962
#, 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:951 builtin/checkout.c:1388
+#: builtin/checkout.c:964 builtin/checkout.c:1398
#, c-format
msgid "Switched to a new branch '%s'\n"
msgstr "Äã chuyển đến nhánh má»›i “%sâ€\n"
-#: builtin/checkout.c:953
+#: builtin/checkout.c:966
#, c-format
msgid "Switched to branch '%s'\n"
msgstr "Äã chuyển đến nhánh “%sâ€\n"
-#: builtin/checkout.c:1004
+#: builtin/checkout.c:1017
#, c-format
msgid " ... and %d more.\n"
msgstr " … và nhiá»u hÆ¡n %d.\n"
-#: builtin/checkout.c:1010
+#: builtin/checkout.c:1023
#, c-format
msgid ""
"Warning: you are leaving %d commit behind, not connected to\n"
@@ -12559,7 +12942,7 @@ msgstr[0] ""
"\n"
"%s\n"
-#: builtin/checkout.c:1029
+#: builtin/checkout.c:1042
#, c-format
msgid ""
"If you want to keep it by creating a new branch, this may be a good time\n"
@@ -12580,19 +12963,19 @@ msgstr[0] ""
" git branch <tên_nhánh_mới> %s\n"
"\n"
-#: builtin/checkout.c:1064
+#: builtin/checkout.c:1077
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:1068
+#: builtin/checkout.c:1081
msgid "Previous HEAD position was"
msgstr "Vị trí trước kia của HEAD là"
-#: builtin/checkout.c:1114 builtin/checkout.c:1383
+#: builtin/checkout.c:1124 builtin/checkout.c:1393
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:1196
+#: builtin/checkout.c:1206
#, c-format
msgid ""
"'%s' could be both a local file and a tracking branch.\n"
@@ -12601,7 +12984,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:1203
+#: builtin/checkout.c:1213
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"
@@ -12621,51 +13004,58 @@ 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:1213
+#: builtin/checkout.c:1223
#, 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:1279
+#: builtin/checkout.c:1289
msgid "only one reference expected"
msgstr "chỉ cần một tham chiếu"
-#: builtin/checkout.c:1296
+#: builtin/checkout.c:1306
#, 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:1342 builtin/worktree.c:269 builtin/worktree.c:436
+#: builtin/checkout.c:1352 builtin/worktree.c:338 builtin/worktree.c:508
#, c-format
msgid "invalid reference: %s"
msgstr "tham chiếu không hợp lệ: %s"
-#: builtin/checkout.c:1355 builtin/checkout.c:1725
+#: builtin/checkout.c:1365 builtin/checkout.c:1744
#, 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:1402
+#: builtin/checkout.c:1413
#, 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:1404
+#: builtin/checkout.c:1415
#, 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:1405 builtin/checkout.c:1413
+#: builtin/checkout.c:1417 builtin/checkout.c:1426
#, 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:1408
+#: builtin/checkout.c:1420
#, 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:1424
+#: builtin/checkout.c:1429
+msgid ""
+"If you want to detach HEAD at the commit, try again with the --detach option."
+msgstr ""
+"Nếu bạn muốn tách rá»i HEAD ở lần chuyển giao, hay thá»­ lại vá»›i tùy chá»n --"
+"detach."
+
+#: builtin/checkout.c:1442
msgid ""
"cannot switch branch while merging\n"
"Consider \"git merge --quit\" or \"git worktree add\"."
@@ -12673,7 +13063,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:1428
+#: builtin/checkout.c:1446
msgid ""
"cannot switch branch in the middle of an am session\n"
"Consider \"git am --quit\" or \"git worktree add\"."
@@ -12681,7 +13071,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:1432
+#: builtin/checkout.c:1450
msgid ""
"cannot switch branch while rebasing\n"
"Consider \"git rebase --quit\" or \"git worktree add\"."
@@ -12689,7 +13079,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:1436
+#: builtin/checkout.c:1454
msgid ""
"cannot switch branch while cherry-picking\n"
"Consider \"git cherry-pick --quit\" or \"git worktree add\"."
@@ -12697,7 +13087,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:1440
+#: builtin/checkout.c:1458
msgid ""
"cannot switch branch while reverting\n"
"Consider \"git revert --quit\" or \"git worktree add\"."
@@ -12705,131 +13095,127 @@ 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:1444
+#: builtin/checkout.c:1462
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:1451
+#: builtin/checkout.c:1469
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:1454 builtin/checkout.c:1458 builtin/checkout.c:1462
+#: builtin/checkout.c:1472 builtin/checkout.c:1476 builtin/checkout.c:1480
#, 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:1466 builtin/checkout.c:1469 builtin/checkout.c:1472
-#: builtin/checkout.c:1477 builtin/checkout.c:1482
+#: builtin/checkout.c:1484 builtin/checkout.c:1487 builtin/checkout.c:1490
+#: builtin/checkout.c:1495 builtin/checkout.c:1500
#, c-format
msgid "'%s' cannot be used with '%s'"
msgstr "“%s†không thể được dùng vá»›i “%sâ€"
-#: builtin/checkout.c:1479
+#: builtin/checkout.c:1497
#, c-format
msgid "'%s' cannot take <start-point>"
msgstr "“%s†không thể nhận <điểm-đầu>"
-#: builtin/checkout.c:1487
+#: builtin/checkout.c:1505
#, 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:1494
+#: builtin/checkout.c:1512
msgid "missing branch or commit argument"
msgstr "thiếu tham số là nhánh hoặc lần chuyển giao"
-#: builtin/checkout.c:1537
+#: builtin/checkout.c:1555
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:1538 builtin/log.c:1825 parse-options.h:323
+#: builtin/checkout.c:1556 builtin/log.c:1844 parse-options.h:354
msgid "style"
msgstr "kiểu"
-#: builtin/checkout.c:1539
+#: builtin/checkout.c:1557
msgid "conflict style (merge, diff3, or zdiff3)"
msgstr "xung đột kiểu (hòa trộn, diff3 hoặc zdiff3)"
-#: builtin/checkout.c:1551 builtin/worktree.c:488
+#: builtin/checkout.c:1569 builtin/worktree.c:560
msgid "detach HEAD at named commit"
msgstr "rá»i bá» HEAD tại lần chuyển giao theo tên"
-#: builtin/checkout.c:1553
-msgid "set up tracking mode (see git-pull(1))"
-msgstr "cài đặt chế độ theo dõi (xem git-pull(1))"
-
-#: builtin/checkout.c:1556
+#: builtin/checkout.c:1574
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:1558
+#: builtin/checkout.c:1576
msgid "new-branch"
msgstr "nhánh-mới"
-#: builtin/checkout.c:1558
+#: builtin/checkout.c:1576
msgid "new unparented branch"
msgstr "nhánh không cha mới"
-#: builtin/checkout.c:1560 builtin/merge.c:305
+#: builtin/checkout.c:1578 builtin/merge.c:305
msgid "update ignored files (default)"
msgstr "cập nhật các tập tin bị bỠqua (mặc định)"
-#: builtin/checkout.c:1563
+#: builtin/checkout.c:1581
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:1576
+#: builtin/checkout.c:1594
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:1579
+#: builtin/checkout.c:1597
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:1583
+#: builtin/checkout.c:1601
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:1640
+#: builtin/checkout.c:1659
#, c-format
msgid "options '-%c', '-%c', and '%s' cannot be used together"
msgstr "tùy chá»n '-%c', '-%c' và '%s' không thể dùng cùng nhau"
-#: builtin/checkout.c:1681
+#: builtin/checkout.c:1700
msgid "--track needs a branch name"
msgstr "--track cần tên một nhánh"
-#: builtin/checkout.c:1686
+#: builtin/checkout.c:1705
#, c-format
msgid "missing branch name; try -%c"
msgstr "thiếu tên nhánh; hãy thử -%c"
-#: builtin/checkout.c:1718
+#: builtin/checkout.c:1737
#, c-format
msgid "could not resolve %s"
msgstr "không thể phân giải “%sâ€"
-#: builtin/checkout.c:1734
+#: builtin/checkout.c:1753
msgid "invalid path specification"
msgstr "Ä‘Æ°á»ng dẫn đã cho không hợp lệ"
-#: builtin/checkout.c:1741
+#: builtin/checkout.c:1760
#, 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:1745
+#: builtin/checkout.c:1764
#, 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:1770
+#: builtin/checkout.c:1789
msgid ""
"git checkout: --ours/--theirs, --force and --merge are incompatible when\n"
"checking out of the index."
@@ -12837,71 +13223,71 @@ 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:1775
+#: builtin/checkout.c:1794
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:1800 builtin/checkout.c:1802 builtin/checkout.c:1854
-#: builtin/checkout.c:1856 builtin/clone.c:126 builtin/remote.c:170
-#: builtin/remote.c:172 builtin/submodule--helper.c:2959
-#: builtin/submodule--helper.c:3253 builtin/worktree.c:484
-#: builtin/worktree.c:486
+#: builtin/checkout.c:1819 builtin/checkout.c:1821 builtin/checkout.c:1873
+#: builtin/checkout.c:1875 builtin/clone.c:130 builtin/remote.c:171
+#: builtin/remote.c:173 builtin/submodule--helper.c:3038
+#: builtin/submodule--helper.c:3371 builtin/worktree.c:556
+#: builtin/worktree.c:558
msgid "branch"
msgstr "nhánh"
-#: builtin/checkout.c:1801
+#: builtin/checkout.c:1820
msgid "create and checkout a new branch"
msgstr "tạo và checkout một nhánh mới"
-#: builtin/checkout.c:1803
+#: builtin/checkout.c:1822
msgid "create/reset and checkout a branch"
msgstr "tạo/đặt_lại và checkout một nhánh"
-#: builtin/checkout.c:1804
+#: builtin/checkout.c:1823
msgid "create reflog for new branch"
msgstr "tạo reflog cho nhánh mới"
-#: builtin/checkout.c:1806
+#: builtin/checkout.c:1825
msgid "second guess 'git checkout <no-such-branch>' (default)"
msgstr "gợi ý thứ hai “git checkout <không-nhánh-nào-như-vậy>†(mặc định)"
-#: builtin/checkout.c:1807
+#: builtin/checkout.c:1826
msgid "use overlay mode (default)"
msgstr "dùng chế độ che phủ (mặc định)"
-#: builtin/checkout.c:1855
+#: builtin/checkout.c:1874
msgid "create and switch to a new branch"
msgstr "tạo và chuyển đến một nhánh mới"
-#: builtin/checkout.c:1857
+#: builtin/checkout.c:1876
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:1859
+#: builtin/checkout.c:1878
msgid "second guess 'git switch <no-such-branch>'"
msgstr "gợi ý thứ hai \"git switch <không-nhánh-nào-như-vậy>\""
-#: builtin/checkout.c:1861
+#: builtin/checkout.c:1880
msgid "throw away local modifications"
msgstr "vứt bỠcác sửa đổi địa phương"
-#: builtin/checkout.c:1897
+#: builtin/checkout.c:1916
msgid "which tree-ish to checkout from"
msgstr "lấy ra từ tree-ish nào"
-#: builtin/checkout.c:1899
+#: builtin/checkout.c:1918
msgid "restore the index"
msgstr "phục hồi bảng mục lục"
-#: builtin/checkout.c:1901
+#: builtin/checkout.c:1920
msgid "restore the working tree (default)"
msgstr "phục hồi cây làm việc (mặc định)"
-#: builtin/checkout.c:1903
+#: builtin/checkout.c:1922
msgid "ignore unmerged entries"
msgstr "bỠqua những thứ chưa hòa trộn: %s"
-#: builtin/checkout.c:1904
+#: builtin/checkout.c:1923
msgid "use overlay mode"
msgstr "dùng chế độ che phủ"
@@ -13049,8 +13435,8 @@ msgid "remove whole directories"
msgstr "gỡ bỠtoàn bộ thư mục"
#: builtin/clean.c:932 builtin/describe.c:565 builtin/describe.c:567
-#: builtin/grep.c:937 builtin/log.c:184 builtin/log.c:186
-#: builtin/ls-files.c:651 builtin/name-rev.c:535 builtin/name-rev.c:537
+#: builtin/grep.c:938 builtin/log.c:185 builtin/log.c:187
+#: builtin/ls-files.c:651 builtin/name-rev.c:585 builtin/name-rev.c:587
#: builtin/show-ref.c:179
msgid "pattern"
msgstr "mẫu"
@@ -13087,210 +13473,214 @@ msgstr ""
msgid "-x and -X cannot be used together"
msgstr "-x và -X không thể dùng cùng nhau"
-#: builtin/clone.c:45
+#: builtin/clone.c:47
msgid "git clone [<options>] [--] <repo> [<dir>]"
msgstr "git clone [<các tùy chá»n>] [--] <kho> [<t.mục>]"
-#: builtin/clone.c:96
+#: builtin/clone.c:100
msgid "don't clone shallow repository"
msgstr "đừng nhân bản từ kho nông"
-#: builtin/clone.c:98
+#: builtin/clone.c:102
msgid "don't create a checkout"
msgstr "không tạo một checkout"
-#: builtin/clone.c:99 builtin/clone.c:101 builtin/init-db.c:542
+#: builtin/clone.c:103 builtin/clone.c:105 builtin/init-db.c:542
msgid "create a bare repository"
msgstr "tạo kho thuần"
-#: builtin/clone.c:103
+#: builtin/clone.c:107
msgid "create a mirror repository (implies bare)"
msgstr "tạo kho bản sao (ý là kho thuần)"
-#: builtin/clone.c:105
+#: builtin/clone.c:109
msgid "to clone from a local repository"
msgstr "để nhân bản từ kho nội bộ"
-#: builtin/clone.c:107
+#: builtin/clone.c:111
msgid "don't use local hardlinks, always copy"
msgstr "không sử dụng liên kết cứng nội bộ, luôn sao chép"
-#: builtin/clone.c:109
+#: builtin/clone.c:113
msgid "setup as shared repository"
msgstr "cài đặt đây là kho chia sẻ"
-#: builtin/clone.c:111
+#: builtin/clone.c:115
msgid "pathspec"
msgstr "đặc-tả-Ä‘Æ°á»ng-dẫn"
-#: builtin/clone.c:111
+#: builtin/clone.c:115
msgid "initialize submodules in the clone"
msgstr "khởi tạo mô-đun-con trong bản sao"
-#: builtin/clone.c:115
+#: builtin/clone.c:119
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:116 builtin/init-db.c:539
+#: builtin/clone.c:120 builtin/init-db.c:539
msgid "template-directory"
msgstr "thư-mục-mẫu"
-#: builtin/clone.c:117 builtin/init-db.c:540
+#: builtin/clone.c:121 builtin/init-db.c:540
msgid "directory from which templates will be used"
msgstr "thư mục mà tại đó các mẫu sẽ được dùng"
-#: builtin/clone.c:119 builtin/clone.c:121 builtin/submodule--helper.c:1871
-#: builtin/submodule--helper.c:2514 builtin/submodule--helper.c:3260
+#: builtin/clone.c:123 builtin/clone.c:125 builtin/submodule--helper.c:1885
+#: builtin/submodule--helper.c:2719 builtin/submodule--helper.c:3378
msgid "reference repository"
msgstr "kho tham chiếu"
-#: builtin/clone.c:123 builtin/submodule--helper.c:1873
-#: builtin/submodule--helper.c:2516
+#: builtin/clone.c:127 builtin/submodule--helper.c:1887
+#: builtin/submodule--helper.c:2721
msgid "use --reference only while cloning"
msgstr "chỉ dùng --reference khi nhân bản"
-#: builtin/clone.c:124 builtin/column.c:27 builtin/fmt-merge-msg.c:27
+#: builtin/clone.c:128 builtin/column.c:27 builtin/fmt-merge-msg.c:27
#: builtin/init-db.c:550 builtin/merge-file.c:48 builtin/merge.c:290
-#: builtin/pack-objects.c:3944 builtin/repack.c:665
-#: builtin/submodule--helper.c:3262 t/helper/test-simple-ipc.c:595
+#: builtin/pack-objects.c:3967 builtin/repack.c:669
+#: builtin/submodule--helper.c:3380 t/helper/test-simple-ipc.c:595
#: t/helper/test-simple-ipc.c:597
msgid "name"
msgstr "tên"
-#: builtin/clone.c:125
+#: builtin/clone.c:129
msgid "use <name> instead of 'origin' to track upstream"
msgstr "dùng <tên> thay cho “origin†để theo dõi thượng nguồn"
-#: builtin/clone.c:127
+#: builtin/clone.c:131
msgid "checkout <branch> instead of the remote's HEAD"
msgstr "lấy ra <nhánh> thay cho HEAD của máy chủ"
-#: builtin/clone.c:129
+#: builtin/clone.c:133
msgid "path to git-upload-pack on the remote"
msgstr "Ä‘Æ°á»ng dẫn đến git-upload-pack trên máy chủ"
-#: builtin/clone.c:130 builtin/fetch.c:181 builtin/grep.c:876
+#: builtin/clone.c:134 builtin/fetch.c:182 builtin/grep.c:877
#: builtin/pull.c:212
msgid "depth"
msgstr "độ-sâu"
-#: builtin/clone.c:131
+#: builtin/clone.c:135
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:132 builtin/fetch.c:183 builtin/pack-objects.c:3933
+#: builtin/clone.c:136 builtin/fetch.c:184 builtin/pack-objects.c:3956
#: builtin/pull.c:215
msgid "time"
msgstr "thá»i-gian"
-#: builtin/clone.c:133
+#: builtin/clone.c:137
msgid "create a shallow clone since a specific time"
msgstr "tạo bản sao không đầy đủ từ thá»i Ä‘iểm đã cho"
-#: builtin/clone.c:134 builtin/fetch.c:185 builtin/fetch.c:208
-#: builtin/pull.c:218 builtin/pull.c:243 builtin/rebase.c:1022
+#: builtin/clone.c:138 builtin/fetch.c:186 builtin/fetch.c:212
+#: builtin/pull.c:218 builtin/pull.c:243 builtin/rebase.c:1050
msgid "revision"
msgstr "điểm xét duyệt"
-#: builtin/clone.c:135 builtin/fetch.c:186 builtin/pull.c:219
+#: builtin/clone.c:139 builtin/fetch.c:187 builtin/pull.c:219
msgid "deepen history of shallow clone, excluding rev"
msgstr "làm sâu hơn lịch sử của bản sao shallow, bằng điểm xét duyệt loại trừ"
-#: builtin/clone.c:137 builtin/submodule--helper.c:1883
-#: builtin/submodule--helper.c:2530
+#: builtin/clone.c:141 builtin/submodule--helper.c:1897
+#: builtin/submodule--helper.c:2735
msgid "clone only one branch, HEAD or --branch"
msgstr "chỉ nhân bản một nhánh, HEAD hoặc --branch"
-#: builtin/clone.c:139
+#: builtin/clone.c:143
msgid "don't clone any tags, and make later fetches not to follow them"
msgstr ""
"đứng có nhân bản bất kỳ nhánh nào, và làm cho những lần lấy vỠsau không "
"theo chúng nữa"
-#: builtin/clone.c:141
+#: builtin/clone.c:145
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:142 builtin/init-db.c:548
+#: builtin/clone.c:146 builtin/init-db.c:548
msgid "gitdir"
msgstr "gitdir"
-#: builtin/clone.c:143 builtin/init-db.c:549
+#: builtin/clone.c:147 builtin/init-db.c:549
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"
-#: builtin/clone.c:144
+#: builtin/clone.c:148
msgid "key=value"
msgstr "khóa=giá_trị"
-#: builtin/clone.c:145
+#: builtin/clone.c:149
msgid "set config inside the new repository"
msgstr "đặt cấu hình bên trong một kho chứa mới"
-#: builtin/clone.c:147 builtin/fetch.c:203 builtin/ls-remote.c:77
+#: builtin/clone.c:151 builtin/fetch.c:207 builtin/ls-remote.c:77
#: builtin/pull.c:234 builtin/push.c:575 builtin/send-pack.c:200
msgid "server-specific"
msgstr "đặc-tả-máy-phục-vụ"
-#: builtin/clone.c:147 builtin/fetch.c:203 builtin/ls-remote.c:77
+#: builtin/clone.c:151 builtin/fetch.c:207 builtin/ls-remote.c:77
#: builtin/pull.c:235 builtin/push.c:575 builtin/send-pack.c:201
msgid "option to transmit"
msgstr "tùy chá»n để chuyển giao"
-#: builtin/clone.c:148 builtin/fetch.c:204 builtin/pull.c:238
+#: builtin/clone.c:152 builtin/fetch.c:208 builtin/pull.c:238
#: builtin/push.c:576
msgid "use IPv4 addresses only"
msgstr "chỉ dùng địa chỉ IPv4"
-#: builtin/clone.c:150 builtin/fetch.c:206 builtin/pull.c:241
+#: builtin/clone.c:154 builtin/fetch.c:210 builtin/pull.c:241
#: builtin/push.c:578
msgid "use IPv6 addresses only"
msgstr "chỉ dùng địa chỉ IPv6"
-#: builtin/clone.c:154
+#: builtin/clone.c:158
+msgid "apply partial clone filters to submodules"
+msgstr "áp dụng các bá»™ lá»c nhân bản má»™t phần cho mô-Ä‘un-con"
+
+#: builtin/clone.c:160
msgid "any cloned submodules will use their remote-tracking branch"
msgstr "má»i mô-Ä‘un-con nhân bản sẽ dung nhánh theo dõi máy chủ của chúng"
-#: builtin/clone.c:156
+#: builtin/clone.c:162
msgid "initialize sparse-checkout file to include only files at root"
msgstr "khởi tạo tập tin sparse-checkout để bao gồm chỉ các tập tin ở gốc"
-#: builtin/clone.c:231
+#: builtin/clone.c:237
#, c-format
msgid "info: Could not add alternate for '%s': %s\n"
msgstr "thông tin: không thể thêm thay thế cho “%sâ€: %s\n"
-#: builtin/clone.c:304
+#: builtin/clone.c:310
#, c-format
msgid "%s exists and is not a directory"
msgstr "%s có tồn tại nhưng lại không phải là một thư mục"
-#: builtin/clone.c:322
+#: builtin/clone.c:328
#, c-format
msgid "failed to start iterator over '%s'"
msgstr "gặp lá»—i khi bắt đầu lặp qua “%sâ€"
-#: builtin/clone.c:353
+#: builtin/clone.c:359
#, c-format
msgid "failed to create link '%s'"
msgstr "gặp lá»—i khi tạo được liên kết má»m %s"
-#: builtin/clone.c:357
+#: builtin/clone.c:363
#, c-format
msgid "failed to copy file to '%s'"
msgstr "gặp lá»—i khi sao chép tập tin và “%sâ€"
-#: builtin/clone.c:362
+#: builtin/clone.c:368
#, c-format
msgid "failed to iterate over '%s'"
msgstr "gặp lá»—i khi lặp qua “%sâ€"
-#: builtin/clone.c:389
+#: builtin/clone.c:395
#, c-format
msgid "done.\n"
msgstr "hoàn tất.\n"
-#: builtin/clone.c:403
+#: builtin/clone.c:409
msgid ""
"Clone succeeded, but checkout failed.\n"
"You can inspect what was checked out with 'git status'\n"
@@ -13300,101 +13690,101 @@ msgstr ""
"Bạn kiểm tra kỹ xem cái gì được lấy ra bằng lệnh “git statusâ€\n"
"và thá»­ lấy ra vá»›i lệnh “git restore --source=HEAD :/â€\n"
-#: builtin/clone.c:480
+#: builtin/clone.c:486
#, c-format
msgid "Could not find remote branch %s to clone."
msgstr "Không tìm thấy nhánh máy chủ %s để nhân bản (clone)."
-#: builtin/clone.c:597
+#: builtin/clone.c:603
#, c-format
msgid "unable to update %s"
msgstr "không thể cập nhật %s"
-#: builtin/clone.c:645
+#: builtin/clone.c:651
msgid "failed to initialize sparse-checkout"
msgstr "gặp lỗi khi khởi tạo sparse-checkout"
-#: builtin/clone.c:668
+#: builtin/clone.c:674
msgid "remote HEAD refers to nonexistent ref, unable to checkout.\n"
msgstr "refers HEAD máy chủ chỉ đến ref không tồn tại, không thể lấy ra.\n"
-#: builtin/clone.c:701
+#: builtin/clone.c:709
msgid "unable to checkout working tree"
msgstr "không thể lấy ra (checkout) cây làm việc"
-#: builtin/clone.c:779
+#: builtin/clone.c:793
msgid "unable to write parameters to config file"
msgstr "không thể ghi các tham số vào tập tin cấu hình"
-#: builtin/clone.c:842
+#: builtin/clone.c:856
msgid "cannot repack to clean up"
msgstr "không thể đóng gói để dá»n dẹp"
-#: builtin/clone.c:844
+#: builtin/clone.c:858
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:886
+#: builtin/clone.c:901
msgid "Too many arguments."
msgstr "Có quá nhiá»u đối số."
-#: builtin/clone.c:890 contrib/scalar/scalar.c:414
+#: builtin/clone.c:905 contrib/scalar/scalar.c:413
msgid "You must specify a repository to clone."
msgstr "Bạn phải chỉ định một kho để mà nhân bản (clone)."
-#: builtin/clone.c:903
+#: builtin/clone.c:918
#, c-format
msgid "options '%s' and '%s %s' cannot be used together"
msgstr "tùy chá»n '%s', và '%s %s' không thể dùng cùng nhau"
-#: builtin/clone.c:920
+#: builtin/clone.c:935
#, c-format
msgid "repository '%s' does not exist"
msgstr "kho chứa “%s†chưa tồn tại"
-#: builtin/clone.c:924 builtin/fetch.c:2052
+#: builtin/clone.c:939 builtin/fetch.c:2176
#, 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:934
+#: builtin/clone.c:949
#, 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:940
+#: builtin/clone.c:955
#, c-format
msgid "repository path '%s' already exists and is not an empty directory."
msgstr ""
"Ä‘Æ°á»ng dẫn kho chứa “%s†đã có từ trÆ°á»›c và không phải là má»™t thÆ° mục rá»—ng."
-#: builtin/clone.c:954
+#: builtin/clone.c:969
#, 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:969 builtin/clone.c:990 builtin/difftool.c:256
-#: builtin/log.c:2012 builtin/worktree.c:281 builtin/worktree.c:313
+#: builtin/clone.c:984 builtin/clone.c:1005 builtin/difftool.c:256
+#: builtin/log.c:2037 builtin/worktree.c:350 builtin/worktree.c:382
#, 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:974
+#: builtin/clone.c:989
#, 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:994
+#: builtin/clone.c:1009
#, 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:996
+#: builtin/clone.c:1011
#, c-format
msgid "Cloning into '%s'...\n"
msgstr "Äang nhân bản thành “%sâ€â€¦\n"
-#: builtin/clone.c:1025
+#: builtin/clone.c:1040
msgid ""
"clone --recursive is not compatible with both --reference and --reference-if-"
"able"
@@ -13402,50 +13792,54 @@ msgstr ""
"nhân bản --recursive không tương thích với cả hai --reference và --reference-"
"if-able"
-#: builtin/clone.c:1080 builtin/remote.c:200 builtin/remote.c:710
+#: builtin/clone.c:1116 builtin/remote.c:201 builtin/remote.c:721
#, c-format
msgid "'%s' is not a valid remote name"
msgstr "“%s†không phải tên máy chủ hợp lệ"
-#: builtin/clone.c:1121
+#: builtin/clone.c:1157
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:1123
+#: builtin/clone.c:1159
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:1125
+#: builtin/clone.c:1161
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:1127
+#: builtin/clone.c:1163
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:1132
+#: builtin/clone.c:1168
msgid "source repository is shallow, ignoring --local"
msgstr "kho nguồn là nông, nên bỠqua --local"
-#: builtin/clone.c:1137
+#: builtin/clone.c:1173
msgid "--local is ignored"
msgstr "--local bị lỠđi"
-#: builtin/clone.c:1216 builtin/clone.c:1276
+#: builtin/clone.c:1185
+msgid "cannot clone from filtered bundle"
+msgstr "không thể nhân bản từ bundle được lá»c ra"
+
+#: builtin/clone.c:1265 builtin/clone.c:1324
msgid "remote transport reported error"
msgstr "vận chuyển máy mạng đã báo cáo lỗi"
-#: builtin/clone.c:1228 builtin/clone.c:1239
+#: builtin/clone.c:1277 builtin/clone.c:1289
#, 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:1242
+#: builtin/clone.c:1292
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."
@@ -13499,7 +13893,7 @@ msgstr ""
"paths] [--[no-]max-new-filters <n>] [--[no-]progress] <các tùy chá»n chia "
"tách>"
-#: builtin/commit-graph.c:51 builtin/fetch.c:192 builtin/log.c:1794
+#: builtin/commit-graph.c:51 builtin/fetch.c:196 builtin/log.c:1813
msgid "dir"
msgstr "tmục"
@@ -13606,7 +14000,7 @@ msgstr ""
msgid "duplicate parent %s ignored"
msgstr "cha mẹ bị trùng lặp %s đã bị bỠqua"
-#: builtin/commit-tree.c:56 builtin/commit-tree.c:134 builtin/log.c:577
+#: builtin/commit-tree.c:56 builtin/commit-tree.c:134 builtin/log.c:590
#, c-format
msgid "not a valid object name %s"
msgstr "không phải là tên đối tượng hợp lệ “%sâ€"
@@ -13629,13 +14023,13 @@ msgstr "cha-mẹ"
msgid "id of a parent commit object"
msgstr "mã số của đối tượng chuyển giao cha mẹ"
-#: builtin/commit-tree.c:112 builtin/commit.c:1627 builtin/merge.c:284
-#: builtin/notes.c:407 builtin/notes.c:573 builtin/stash.c:1677
-#: builtin/tag.c:454
+#: builtin/commit-tree.c:112 builtin/commit.c:1626 builtin/merge.c:284
+#: builtin/notes.c:407 builtin/notes.c:573 builtin/stash.c:1666
+#: builtin/tag.c:455
msgid "message"
msgstr "chú thích"
-#: builtin/commit-tree.c:113 builtin/commit.c:1627
+#: builtin/commit-tree.c:113 builtin/commit.c:1626
msgid "commit message"
msgstr "chú thích của lần chuyển giao"
@@ -13643,7 +14037,7 @@ msgstr "chú thích của lần chuyển giao"
msgid "read commit log message from file"
msgstr "Ä‘á»c chú thích nhật ký lần chuyển giao từ tập tin"
-#: builtin/commit-tree.c:119 builtin/commit.c:1644 builtin/merge.c:303
+#: builtin/commit-tree.c:119 builtin/commit.c:1643 builtin/merge.c:303
#: builtin/pull.c:180 builtin/revert.c:118
msgid "GPG sign commit"
msgstr "Ký lần chuyển giao dùng GPG"
@@ -13656,15 +14050,15 @@ msgstr "phải đưa ra chính xác một cây"
msgid "git commit-tree: failed to read"
msgstr "git commit-tree: gặp lá»—i khi Ä‘á»c"
-#: builtin/commit.c:42
+#: builtin/commit.c:43
msgid "git commit [<options>] [--] <pathspec>..."
msgstr "git commit [<các tùy chá»n>] [--] <pathspec>…"
-#: builtin/commit.c:47
+#: builtin/commit.c:48
msgid "git status [<options>] [--] <pathspec>..."
msgstr "git status [<các tùy chá»n>] [--] <pathspec>…"
-#: builtin/commit.c:52
+#: builtin/commit.c:53
msgid ""
"You asked to amend the most recent commit, but doing so would make\n"
"it empty. You can repeat your command with --allow-empty, or you can\n"
@@ -13677,7 +14071,7 @@ msgstr ""
"hoặc là bạn gỡ bỠcác lần chuyển giao một cách hoàn toàn bằng lệnh:\n"
"\"git reset HEAD^\".\n"
-#: builtin/commit.c:57
+#: builtin/commit.c:58
msgid ""
"The previous cherry-pick is now empty, possibly due to conflict resolution.\n"
"If you wish to commit it anyway, use:\n"
@@ -13692,15 +14086,15 @@ msgstr ""
" git commit --allow-empty\n"
"\n"
-#: builtin/commit.c:64
+#: builtin/commit.c:65
msgid "Otherwise, please use 'git rebase --skip'\n"
msgstr "Nếu không được thì dùng lệnh \"git rebase --skip\"\n"
-#: builtin/commit.c:67
+#: builtin/commit.c:68
msgid "Otherwise, please use 'git cherry-pick --skip'\n"
msgstr "Nếu không được thì dùng lệnh \"git cherry-pick --skip\"\n"
-#: builtin/commit.c:70
+#: builtin/commit.c:71
msgid ""
"and then use:\n"
"\n"
@@ -13722,72 +14116,72 @@ msgstr ""
" git cherry-pick --skip\n"
"\n"
-#: builtin/commit.c:325
+#: builtin/commit.c:326
msgid "failed to unpack HEAD tree object"
msgstr "gặp lỗi khi tháo dỡ HEAD đối tượng cây"
-#: builtin/commit.c:375
+#: builtin/commit.c:376
msgid "No paths with --include/--only does not make sense."
msgstr "Không Ä‘Æ°á»ng dẫn vá»›i các tùy chá»n --include/--only không hợp lý."
-#: builtin/commit.c:387
+#: builtin/commit.c:388
msgid "unable to create temporary index"
msgstr "không thể tạo bảng mục lục tạm thá»i"
-#: builtin/commit.c:396
+#: builtin/commit.c:397
msgid "interactive add failed"
msgstr "gặp lỗi khi thêm bằng cách tương"
-#: builtin/commit.c:411
+#: builtin/commit.c:412
msgid "unable to update temporary index"
msgstr "không thể cập nhật bảng mục lục tạm thá»i"
-#: builtin/commit.c:413
+#: builtin/commit.c:414
msgid "Failed to update main cache tree"
msgstr "Gặp lỗi khi cập nhật cây bộ nhớ đệm"
-#: builtin/commit.c:438 builtin/commit.c:461 builtin/commit.c:509
+#: builtin/commit.c:439 builtin/commit.c:462 builtin/commit.c:510
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 (new_index)"
-#: builtin/commit.c:490
+#: builtin/commit.c:491
msgid "cannot do a partial commit during a merge."
msgstr ""
"không thể thực hiện việc chuyển giao cục bộ trong khi đang được hòa trộn."
-#: builtin/commit.c:492
+#: builtin/commit.c:493
msgid "cannot do a partial commit during a cherry-pick."
msgstr ""
"không thể thực hiện việc chuyển giao bộ phận trong khi đang cherry-pick."
-#: builtin/commit.c:494
+#: builtin/commit.c:495
msgid "cannot do a partial commit during a rebase."
msgstr ""
"không thể thực hiện việc chuyển giao cục bộ trong khi đang thực hiện cải tổ."
-#: builtin/commit.c:502
+#: builtin/commit.c:503
msgid "cannot read the index"
msgstr "không Ä‘á»c được bảng mục lục"
-#: builtin/commit.c:521
+#: builtin/commit.c:522
msgid "unable to write temporary index file"
msgstr "không thể ghi tập tin lÆ°u bảng mục lục tạm thá»i"
-#: builtin/commit.c:619
+#: builtin/commit.c:620
#, c-format
msgid "commit '%s' lacks author header"
msgstr "lần chuyển giao “%s†thiếu phần tác giả ở đầu"
-#: builtin/commit.c:621
+#: builtin/commit.c:622
#, c-format
msgid "commit '%s' has malformed author line"
msgstr "lần chuyển giao “%s†có phần tác giả ở đầu dị dạng"
-#: builtin/commit.c:640
+#: builtin/commit.c:641
msgid "malformed --author parameter"
msgstr "đối số cho --author bị dị hình"
-#: builtin/commit.c:693
+#: builtin/commit.c:694
msgid ""
"unable to select a comment character that is not used\n"
"in the current commit message"
@@ -13795,43 +14189,43 @@ msgstr ""
"không thể chá»n má»™t ký tá»± ghi chú cái mà không được dùng\n"
"trong phần ghi chú hiện tại"
-#: builtin/commit.c:747 builtin/commit.c:781 builtin/commit.c:1166
+#: builtin/commit.c:750 builtin/commit.c:784 builtin/commit.c:1170
#, c-format
msgid "could not lookup commit %s"
msgstr "không thể tìm kiếm commit (lần chuyển giao) %s"
-#: builtin/commit.c:759 builtin/shortlog.c:416
+#: builtin/commit.c:762 builtin/shortlog.c:417
#, c-format
msgid "(reading log message from standard input)\n"
msgstr "(Ä‘ang Ä‘á»c thông Ä‘iệp nhật ký từ đầu vào tiêu chuẩn)\n"
-#: builtin/commit.c:761
+#: builtin/commit.c:764
msgid "could not read log from standard input"
msgstr "không thể Ä‘á»c nhật ký từ đầu vào tiêu chuẩn"
-#: builtin/commit.c:765
+#: builtin/commit.c:768
#, c-format
msgid "could not read log file '%s'"
msgstr "không Ä‘á»c được tệp nhật ký “%sâ€"
-#: builtin/commit.c:802
+#: builtin/commit.c:805
#, c-format
msgid "options '%s' and '%s:%s' cannot be used together"
msgstr "tùy chá»n '%s', và '%s:%s' không thể dùng cùng nhau"
-#: builtin/commit.c:814 builtin/commit.c:830
+#: builtin/commit.c:817 builtin/commit.c:833
msgid "could not read SQUASH_MSG"
msgstr "không thể Ä‘á»c SQUASH_MSG"
-#: builtin/commit.c:821
+#: builtin/commit.c:824
msgid "could not read MERGE_MSG"
msgstr "không thể Ä‘á»c MERGE_MSG"
-#: builtin/commit.c:881
+#: builtin/commit.c:884
msgid "could not write commit template"
msgstr "không thể ghi mẫu chuyển giao"
-#: builtin/commit.c:894
+#: builtin/commit.c:897
#, c-format
msgid ""
"Please enter the commit message for your changes. Lines starting\n"
@@ -13840,7 +14234,7 @@ msgstr ""
"Hãy nhập vào các thông tin để giải thích các thay đổi của bạn. Những\n"
"dòng được bắt đầu bằng “%c†sẽ được bỠqua.\n"
-#: builtin/commit.c:896
+#: builtin/commit.c:899
#, c-format
msgid ""
"Please enter the commit message for your changes. Lines starting\n"
@@ -13851,7 +14245,7 @@ msgstr ""
"bắt đầu bằng “%c†sẽ được bỠqua, nếu phần chú thích rỗng sẽ hủy bỠlần "
"chuyển giao.\n"
-#: builtin/commit.c:900
+#: builtin/commit.c:903
#, c-format
msgid ""
"Please enter the commit message for your changes. Lines starting\n"
@@ -13861,7 +14255,7 @@ msgstr ""
"được\n"
"bắt đầu bằng “%c†sẽ được bỠqua; bạn có thể xóa chúng đi nếu muốn thế.\n"
-#: builtin/commit.c:904
+#: builtin/commit.c:907
#, c-format
msgid ""
"Please enter the commit message for your changes. Lines starting\n"
@@ -13873,7 +14267,7 @@ msgstr ""
"bắt đầu bằng “%c†sẽ được bỠqua; bạn có thể xóa chúng đi nếu muốn thế.\n"
"Phần chú thích này nếu trống rỗng sẽ hủy bỠlần chuyển giao.\n"
-#: builtin/commit.c:916
+#: builtin/commit.c:919
msgid ""
"\n"
"It looks like you may be committing a merge.\n"
@@ -13887,7 +14281,7 @@ msgstr ""
"\tgit update-ref -d MERGE_HEAD\n"
"và thử lại.\n"
-#: builtin/commit.c:921
+#: builtin/commit.c:924
msgid ""
"\n"
"It looks like you may be committing a cherry-pick.\n"
@@ -13901,180 +14295,158 @@ msgstr ""
"\tgit update-ref -d CHERRY_PICK_HEAD\n"
"và thử lại.\n"
-#: builtin/commit.c:948
+#: builtin/commit.c:951
#, c-format
msgid "%sAuthor: %.*s <%.*s>"
msgstr "%sTác giả: %.*s <%.*s>"
-#: builtin/commit.c:956
+#: builtin/commit.c:959
#, c-format
msgid "%sDate: %s"
msgstr "%sNgày tháng: %s"
-#: builtin/commit.c:963
+#: builtin/commit.c:966
#, c-format
msgid "%sCommitter: %.*s <%.*s>"
msgstr "%sNgÆ°á»i chuyển giao: %.*s <%.*s>"
-#: builtin/commit.c:981
+#: builtin/commit.c:984
msgid "Cannot read index"
msgstr "Không Ä‘á»c được bảng mục lục"
-#: builtin/commit.c:1026
+#: builtin/commit.c:1029
msgid "unable to pass trailers to --trailers"
msgstr "không thể chuyển phần Ä‘uôi cho “--trailersâ€"
-#: builtin/commit.c:1066
+#: builtin/commit.c:1069
msgid "Error building trees"
msgstr "Gặp lỗi khi xây dựng cây"
-#: builtin/commit.c:1080 builtin/tag.c:316
+#: builtin/commit.c:1083 builtin/tag.c:317
#, c-format
msgid "Please supply the message using either -m or -F option.\n"
msgstr "Xin hãy cung cấp lá»i chú giải hoặc là dùng tùy chá»n -m hoặc là -F.\n"
-#: builtin/commit.c:1124
+#: builtin/commit.c:1128
#, c-format
msgid "--author '%s' is not 'Name <email>' and matches no existing author"
msgstr ""
"--author “%s†không phải là “HỠvà tên <thư điện tửl>†và không khớp bất kỳ "
"tác giả nào sẵn có"
-#: builtin/commit.c:1138
+#: builtin/commit.c:1142
#, c-format
msgid "Invalid ignored mode '%s'"
msgstr "Chế Ä‘á»™ bá» qua không hợp lệ “%sâ€"
-#: builtin/commit.c:1156 builtin/commit.c:1451
+#: builtin/commit.c:1160 builtin/commit.c:1450
#, c-format
msgid "Invalid untracked files mode '%s'"
msgstr "Chế Ä‘á»™ cho các tập tin chÆ°a được theo dõi không hợp lệ “%sâ€"
-#: builtin/commit.c:1227
+#: builtin/commit.c:1231
msgid "You are in the middle of a merge -- cannot reword."
msgstr ""
"Bạn Ä‘ang ở giữa của quá trình hòa trá»™n -- không thể thá»±c hiện việc “rewordâ€."
-#: builtin/commit.c:1229
+#: builtin/commit.c:1233
msgid "You are in the middle of a cherry-pick -- cannot reword."
msgstr ""
"Bạn đang ở giữa của quá trình cherry-pick -- không thể thực hiện việc "
"“rewordâ€."
-#: builtin/commit.c:1232
+#: builtin/commit.c:1236
#, c-format
msgid "reword option of '%s' and path '%s' cannot be used together"
msgstr ""
"không thể tổ hợp tùy chá»n \"reword\" của '%s' vá»›i Ä‘Æ°á»ng dẫn '%s' cùng nhau"
-#: builtin/commit.c:1234
+#: builtin/commit.c:1238
#, c-format
msgid "reword option of '%s' and '%s' cannot be used together"
msgstr "không thể tổ hợp tùy chá»n \"reword\" của '%s' vá»›i '%s' cùng nhau"
-#: builtin/commit.c:1254
-msgid "Using both --reset-author and --author does not make sense"
-msgstr "Sá»­ dụng cả hai tùy chá»n --reset-author và --author không hợp lý"
-
-#: builtin/commit.c:1261
+#: builtin/commit.c:1263
msgid "You have nothing to amend."
msgstr "Không có gì để mà “tu bổ†cả."
-#: builtin/commit.c:1264
+#: builtin/commit.c:1266
msgid "You are in the middle of a merge -- cannot amend."
msgstr ""
"Bạn Ä‘ang ở giữa của quá trình hòa trá»™n -- không thể thá»±c hiện việc “tu bổâ€."
-#: builtin/commit.c:1266
+#: builtin/commit.c:1268
msgid "You are in the middle of a cherry-pick -- cannot amend."
msgstr ""
"Bạn đang ở giữa của quá trình cherry-pick -- không thể thực hiện việc “tu "
"bổâ€."
-#: builtin/commit.c:1268
+#: builtin/commit.c:1270
msgid "You are in the middle of a rebase -- cannot amend."
msgstr ""
"Bạn Ä‘ang ở giữa của quá trình cải tổ -- nên không thể thá»±c hiện việc “tu bổâ€."
-#: builtin/commit.c:1271
-msgid "Options --squash and --fixup cannot be used together"
-msgstr "Các tùy chá»n --squash và --fixup không thể sá»­ dụng cùng vá»›i nhau"
-
-#: builtin/commit.c:1281
-msgid "Only one of -c/-C/-F/--fixup can be used."
-msgstr "Chỉ được dùng má»™t trong số tùy chá»n trong số -c/-C/-F/--fixup."
-
-#: builtin/commit.c:1283
-msgid "Option -m cannot be combined with -c/-C/-F."
-msgstr "Tùy chá»n -m không thể được tổ hợp cùng vá»›i -c/-C/-F."
-
-#: builtin/commit.c:1292
+#: builtin/commit.c:1290
msgid "--reset-author can be used only with -C, -c or --amend."
msgstr ""
"--reset-author chỉ có thể được sá»­ dụng vá»›i tùy chá»n -C, -c hay --amend."
-#: builtin/commit.c:1310
-msgid "Only one of --include/--only/--all/--interactive/--patch can be used."
-msgstr ""
-"Chỉ má»™t trong các tùy chá»n --include/--only/--all/--interactive/--patch được "
-"sử dụng."
-
-#: builtin/commit.c:1338
+#: builtin/commit.c:1337
#, c-format
msgid "unknown option: --fixup=%s:%s"
msgstr "không hiểu tùy chá»n: --fixup=%s:%s"
-#: builtin/commit.c:1355
+#: builtin/commit.c:1354
#, c-format
msgid "paths '%s ...' with -a does not make sense"
msgstr "các Ä‘Æ°á»ng dẫn “%s …†vá»›i tùy chá»n -a không hợp lý"
-#: builtin/commit.c:1486 builtin/commit.c:1655
+#: builtin/commit.c:1485 builtin/commit.c:1654
msgid "show status concisely"
msgstr "hiển thị trạng thái ở dạng súc tích"
-#: builtin/commit.c:1488 builtin/commit.c:1657
+#: builtin/commit.c:1487 builtin/commit.c:1656
msgid "show branch information"
msgstr "hiển thị thông tin nhánh"
-#: builtin/commit.c:1490
+#: builtin/commit.c:1489
msgid "show stash information"
msgstr "hiển thị thông tin vỠtạm cất"
-#: builtin/commit.c:1492 builtin/commit.c:1659
+#: builtin/commit.c:1491 builtin/commit.c:1658
msgid "compute full ahead/behind values"
msgstr "tính đầy đủ giá trị trước/sau"
-#: builtin/commit.c:1494
+#: builtin/commit.c:1493
msgid "version"
msgstr "phiên bản"
-#: builtin/commit.c:1494 builtin/commit.c:1661 builtin/push.c:551
-#: builtin/worktree.c:690
+#: builtin/commit.c:1493 builtin/commit.c:1660 builtin/push.c:551
+#: builtin/worktree.c:765
msgid "machine-readable output"
msgstr "kết xuất dạng máy-có-thể-Ä‘á»c"
-#: builtin/commit.c:1497 builtin/commit.c:1663
+#: builtin/commit.c:1496 builtin/commit.c:1662
msgid "show status in long format (default)"
msgstr "hiển thị trạng thái ở định dạng dài (mặc định)"
-#: builtin/commit.c:1500 builtin/commit.c:1666
+#: builtin/commit.c:1499 builtin/commit.c:1665
msgid "terminate entries with NUL"
msgstr "chấm dứt các mục bằng NUL"
-#: builtin/commit.c:1502 builtin/commit.c:1506 builtin/commit.c:1669
+#: builtin/commit.c:1501 builtin/commit.c:1505 builtin/commit.c:1668
#: builtin/fast-export.c:1172 builtin/fast-export.c:1175
-#: builtin/fast-export.c:1178 builtin/rebase.c:1111 parse-options.h:337
+#: builtin/fast-export.c:1178 builtin/rebase.c:1139 parse-options.h:368
msgid "mode"
msgstr "chế độ"
-#: builtin/commit.c:1503 builtin/commit.c:1669
+#: builtin/commit.c:1502 builtin/commit.c:1668
msgid "show untracked files, optional modes: all, normal, no. (Default: all)"
msgstr ""
"hiển thị các tập tin chÆ°a được theo dõi dấu vết, các chế Ä‘á»™ tùy chá»n: all, "
"normal, no. (Mặc định: all)"
-#: builtin/commit.c:1507
+#: builtin/commit.c:1506
msgid ""
"show ignored files, optional modes: traditional, matching, no. (Default: "
"traditional)"
@@ -14082,11 +14454,11 @@ msgstr ""
"hiển thị các tập tin bị bá» qua, các chế Ä‘á»™ tùy chá»n: traditional, matching, "
"no. (Mặc định: traditional)"
-#: builtin/commit.c:1509 parse-options.h:192
+#: builtin/commit.c:1508 parse-options.h:197
msgid "when"
msgstr "khi"
-#: builtin/commit.c:1510
+#: builtin/commit.c:1509
msgid ""
"ignore changes to submodules, optional when: all, dirty, untracked. "
"(Default: all)"
@@ -14094,199 +14466,199 @@ msgstr ""
"bá» qua các thay đổi trong mô-Ä‘un-con, tùy chá»n khi: all, dirty, untracked. "
"(Mặc định: all)"
-#: builtin/commit.c:1512
+#: builtin/commit.c:1511
msgid "list untracked files in columns"
msgstr "hiển thị danh sách các tập-tin chưa được theo dõi trong các cột"
-#: builtin/commit.c:1513
+#: builtin/commit.c:1512
msgid "do not detect renames"
msgstr "không dò tìm các tên thay đổi"
-#: builtin/commit.c:1515
+#: builtin/commit.c:1514
msgid "detect renames, optionally set similarity index"
msgstr "dò các tên thay đổi, tùy ý đặt mục lục tương tự"
-#: builtin/commit.c:1538
+#: builtin/commit.c:1537
msgid "Unsupported combination of ignored and untracked-files arguments"
msgstr ""
"Không hỗ trỡ tổ hợp các tham số các tập tin bị bỠqua và không được theo dõi"
-#: builtin/commit.c:1620
+#: builtin/commit.c:1619
msgid "suppress summary after successful commit"
msgstr "không hiển thị tổng kết sau khi chuyển giao thành công"
-#: builtin/commit.c:1621
+#: builtin/commit.c:1620
msgid "show diff in commit message template"
msgstr "hiển thị sự khác biệt trong mẫu tin nhắn chuyển giao"
-#: builtin/commit.c:1623
+#: builtin/commit.c:1622
msgid "Commit message options"
msgstr "Các tùy chá»n ghi chú commit"
-#: builtin/commit.c:1624 builtin/merge.c:288 builtin/tag.c:456
+#: builtin/commit.c:1623 builtin/merge.c:288 builtin/tag.c:457
msgid "read message from file"
msgstr "Ä‘á»c chú thích từ tập tin"
-#: builtin/commit.c:1625
+#: builtin/commit.c:1624
msgid "author"
msgstr "tác giả"
-#: builtin/commit.c:1625
+#: builtin/commit.c:1624
msgid "override author for commit"
msgstr "ghi đè tác giả cho commit"
-#: builtin/commit.c:1626 builtin/gc.c:551
+#: builtin/commit.c:1625 builtin/gc.c:551
msgid "date"
msgstr "ngày tháng"
-#: builtin/commit.c:1626
+#: builtin/commit.c:1625
msgid "override date for commit"
msgstr "ghi đè ngày tháng cho lần chuyển giao"
-#: builtin/commit.c:1628 builtin/commit.c:1629 builtin/commit.c:1635
-#: parse-options.h:329 ref-filter.h:89
+#: builtin/commit.c:1627 builtin/commit.c:1628 builtin/commit.c:1634
+#: parse-options.h:360 ref-filter.h:89
msgid "commit"
msgstr "lần_chuyển_giao"
-#: builtin/commit.c:1628
+#: builtin/commit.c:1627
msgid "reuse and edit message from specified commit"
msgstr "dùng lại các ghi chú từ lần chuyển giao đã cho nhưng có cho sửa chữa"
-#: builtin/commit.c:1629
+#: builtin/commit.c:1628
msgid "reuse message from specified commit"
msgstr "dùng lại các ghi chú từ lần chuyển giao đã cho"
#. TRANSLATORS: Leave "[(amend|reword):]" as-is,
#. and only translate <commit>.
#.
-#: builtin/commit.c:1634
+#: builtin/commit.c:1633
msgid "[(amend|reword):]commit"
msgstr "[(amend|reword):]commit"
-#: builtin/commit.c:1634
+#: builtin/commit.c:1633
msgid ""
"use autosquash formatted message to fixup or amend/reword specified commit"
msgstr ""
"dùng ghi chú có định dạng autosquash để sửa chữa hoặc tu bổ/reword lần "
"chuyển giao đã chỉ ra"
-#: builtin/commit.c:1635
+#: builtin/commit.c:1634
msgid "use autosquash formatted message to squash specified commit"
msgstr ""
"dùng lá»i nhắn có định dạng tá»± Ä‘á»™ng nén để nén lại các lần chuyển giao đã chỉ "
"ra"
-#: builtin/commit.c:1636
+#: builtin/commit.c:1635
msgid "the commit is authored by me now (used with -C/-c/--amend)"
msgstr ""
"lần chuyển giao nhận tôi là tác giả (được dùng vá»›i tùy chá»n -C/-c/--amend)"
-#: builtin/commit.c:1637 builtin/interpret-trailers.c:111
+#: builtin/commit.c:1636 builtin/interpret-trailers.c:111
msgid "trailer"
msgstr "bộ dò vết"
-#: builtin/commit.c:1637
+#: builtin/commit.c:1636
msgid "add custom trailer(s)"
msgstr "thêm Ä‘uôi tá»± chá»n"
-#: builtin/commit.c:1638 builtin/log.c:1769 builtin/merge.c:306
+#: builtin/commit.c:1637 builtin/log.c:1788 builtin/merge.c:306
#: builtin/pull.c:146 builtin/revert.c:110
msgid "add a Signed-off-by trailer"
msgstr "thêm dòng Signed-off-by vào cuối"
-#: builtin/commit.c:1639
+#: builtin/commit.c:1638
msgid "use specified template file"
msgstr "sử dụng tập tin mẫu đã cho"
-#: builtin/commit.c:1640
+#: builtin/commit.c:1639
msgid "force edit of commit"
msgstr "ép buộc sửa lần commit"
-#: builtin/commit.c:1642
+#: builtin/commit.c:1641
msgid "include status in commit message template"
msgstr "bao gồm các trạng thái trong mẫu ghi chú chuyển giao"
-#: builtin/commit.c:1647
+#: builtin/commit.c:1646
msgid "Commit contents options"
msgstr "Các tùy nội dung ghi chú commit"
-#: builtin/commit.c:1648
+#: builtin/commit.c:1647
msgid "commit all changed files"
msgstr "chuyển giao tất cả các tập tin có thay đổi"
-#: builtin/commit.c:1649
+#: builtin/commit.c:1648
msgid "add specified files to index for commit"
msgstr "thêm các tập tin đã chỉ ra vào bảng mục lục để chuyển giao"
-#: builtin/commit.c:1650
+#: builtin/commit.c:1649
msgid "interactively add files"
msgstr "thêm các tập-tin bằng tương tác"
-#: builtin/commit.c:1651
+#: builtin/commit.c:1650
msgid "interactively add changes"
msgstr "thêm các thay đổi bằng tương tác"
-#: builtin/commit.c:1652
+#: builtin/commit.c:1651
msgid "commit only specified files"
msgstr "chỉ chuyển giao các tập tin đã chỉ ra"
-#: builtin/commit.c:1653
+#: builtin/commit.c:1652
msgid "bypass pre-commit and commit-msg hooks"
msgstr "vòng qua móc (hook) pre-commit và commit-msg"
-#: builtin/commit.c:1654
+#: builtin/commit.c:1653
msgid "show what would be committed"
msgstr "hiển thị xem cái gì có thể được chuyển giao"
-#: builtin/commit.c:1667
+#: builtin/commit.c:1666
msgid "amend previous commit"
msgstr "“tu bổ†(amend) lần commit trước"
-#: builtin/commit.c:1668
+#: builtin/commit.c:1667
msgid "bypass post-rewrite hook"
msgstr "vòng qua móc (hook) post-rewrite"
-#: builtin/commit.c:1675
+#: builtin/commit.c:1674
msgid "ok to record an empty change"
msgstr "ok để ghi lại một thay đổi trống rỗng"
-#: builtin/commit.c:1677
+#: builtin/commit.c:1676
msgid "ok to record a change with an empty message"
msgstr "ok để ghi các thay đổi vá»›i lá»i nhắn trống rá»—ng"
-#: builtin/commit.c:1753
+#: builtin/commit.c:1752
#, c-format
msgid "Corrupt MERGE_HEAD file (%s)"
msgstr "Tập tin MERGE_HEAD sai há»ng (%s)"
-#: builtin/commit.c:1760
+#: builtin/commit.c:1759
msgid "could not read MERGE_MODE"
msgstr "không thể Ä‘á»c MERGE_MODE"
-#: builtin/commit.c:1781
+#: builtin/commit.c:1780
#, c-format
msgid "could not read commit message: %s"
msgstr "không thể Ä‘á»c phần chú thích (message) của lần chuyển giao: %s"
-#: builtin/commit.c:1788
+#: builtin/commit.c:1787
#, c-format
msgid "Aborting commit due to empty commit message.\n"
msgstr "Bãi bỠviệc chuyển giao bởi vì phần chú thích của nó trống rỗng.\n"
-#: builtin/commit.c:1793
+#: builtin/commit.c:1792
#, c-format
msgid "Aborting commit; you did not edit the message.\n"
msgstr ""
"Äang bá» qua việc chuyển giao; bạn đã không biên soạn phần chú thích "
"(message).\n"
-#: builtin/commit.c:1804
+#: builtin/commit.c:1803
#, c-format
msgid "Aborting commit due to empty commit message body.\n"
msgstr ""
"Bãi bỠviệc chuyển giao bởi vì phần thân chú thích của nó trống rỗng.\n"
-#: builtin/commit.c:1840
+#: builtin/commit.c:1839
msgid ""
"repository has been updated, but unable to write\n"
"new_index file. Check that disk is not full and quota is\n"
@@ -14410,6 +14782,10 @@ msgstr "tìm các cài đặt vỠmàu sắc: slot [stdout-là-tty]"
msgid "Type"
msgstr "Kiểu"
+#: builtin/config.c:154 builtin/env--helper.c:42 builtin/hash-object.c:97
+msgid "type"
+msgstr "kiểu"
+
#: builtin/config.c:154 builtin/env--helper.c:43
msgid "value is given this type"
msgstr "giá trị được đưa kiểu này"
@@ -14624,10 +15000,6 @@ msgstr ""
msgid "no such section: %s"
msgstr "không có đoạn: %s"
-#: builtin/count-objects.c:90
-msgid "git count-objects [-v] [-H | --human-readable]"
-msgstr "git count-objects [-v] [-H | --human-readable]"
-
#: builtin/count-objects.c:100
msgid "print sizes in human readable format"
msgstr "hiển thị kích cỡ theo định dạng dành cho ngÆ°á»i Ä‘á»c"
@@ -14794,7 +15166,7 @@ msgstr "chỉ cân nhắc đến những thẻ khớp với <mẫu>"
msgid "do not consider tags matching <pattern>"
msgstr "không coi rằng các thẻ khớp với <mẫu>"
-#: builtin/describe.c:570 builtin/name-rev.c:544
+#: builtin/describe.c:570 builtin/name-rev.c:595
msgid "show abbreviated commit object as fallback"
msgstr "hiển thị đối tượng chuyển giao vắn tắt như là fallback"
@@ -14842,7 +15214,7 @@ msgstr "%s…%s: không có cơ sở hòa trộn"
msgid "Not a git repository"
msgstr "Không phải là kho git"
-#: builtin/diff.c:537 builtin/grep.c:698
+#: builtin/diff.c:537 builtin/grep.c:700
#, c-format
msgid "invalid object '%s' given."
msgstr "đối tượng đã cho “%s†không hợp lệ."
@@ -14960,11 +15332,11 @@ msgstr "chuyển cho “diffâ€"
msgid "difftool requires worktree or --no-index"
msgstr "difftool cần cây làm việc hoặc --no-index"
-#: builtin/difftool.c:744
+#: builtin/difftool.c:745
msgid "no <tool> given for --tool=<tool>"
msgstr "chưa đưa ra <công_cụ> cho --tool=<công_cụ>"
-#: builtin/difftool.c:751
+#: builtin/difftool.c:752
msgid "no <cmd> given for --extcmd=<cmd>"
msgstr "chưa đưa ra <lệnh> cho --extcmd=<lệnh>"
@@ -14972,10 +15344,6 @@ msgstr "chưa đưa ra <lệnh> cho --extcmd=<lệnh>"
msgid "git env--helper --type=[bool|ulong] <options> <env-var>"
msgstr "git env--helper --type=[bool|ulong] <các tùy chá»n> <env-var>"
-#: builtin/env--helper.c:42 builtin/hash-object.c:96
-msgid "type"
-msgstr "kiểu"
-
#: builtin/env--helper.c:46
msgid "default for git_env_*(...) to fall back on"
msgstr "mặc định cho git_env_*(…) để quay vá»"
@@ -15000,8 +15368,8 @@ msgstr ""
"type=ulong“, không phải “%s“"
#: builtin/fast-export.c:29
-msgid "git fast-export [rev-list-opts]"
-msgstr "git fast-export [rev-list-opts]"
+msgid "git fast-export [<rev-list-opts>]"
+msgstr "git fast-export [<rev-list-opts>]"
#: builtin/fast-export.c:843
msgid "Error: Cannot export nested tags unless --mark-tags is specified."
@@ -15056,7 +15424,7 @@ msgstr "sử dụng tính năng done để chấm dứt luồng dữ liệu"
msgid "skip output of blob data"
msgstr "bỠqua kết xuất của dữ liệu blob"
-#: builtin/fast-export.c:1196 builtin/log.c:1841
+#: builtin/fast-export.c:1196 builtin/log.c:1860
msgid "refspec"
msgstr "refspec"
@@ -15090,37 +15458,37 @@ msgstr "hiển thị các mã id nguyên gốc của blobs/commits"
msgid "label tags with mark ids"
msgstr "gắn thẻ với các mã ID đánh dấu"
-#: builtin/fast-import.c:3090
+#: builtin/fast-import.c:3097
#, c-format
msgid "Missing from marks for submodule '%s'"
msgstr "Thiếu các đánh dấu cho mô-Ä‘un-con “%sâ€"
-#: builtin/fast-import.c:3092
+#: builtin/fast-import.c:3099
#, c-format
msgid "Missing to marks for submodule '%s'"
msgstr "Thiếu đánh dấu cho mô-Ä‘un-con “%sâ€"
-#: builtin/fast-import.c:3227
+#: builtin/fast-import.c:3234
#, c-format
msgid "Expected 'mark' command, got %s"
msgstr "Cần lệnh “markâ€, nhÆ°ng lại nhận được %s"
-#: builtin/fast-import.c:3232
+#: builtin/fast-import.c:3239
#, c-format
msgid "Expected 'to' command, got %s"
msgstr "Cần lệnh “toâ€, nhÆ°ng lại nhận được %s"
-#: builtin/fast-import.c:3324
+#: builtin/fast-import.c:3331
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"
-#: builtin/fast-import.c:3379
+#: builtin/fast-import.c:3386
#, 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"
-#: builtin/fetch-pack.c:242
+#: builtin/fetch-pack.c:246
#, 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"
@@ -15141,103 +15509,107 @@ msgstr "git fetch --multiple [<các tùy chá»n>] [(<kho> | <nhóm>)…]"
msgid "git fetch --all [<options>]"
msgstr "git fetch --all [<các tùy chá»n>]"
-#: builtin/fetch.c:123
+#: builtin/fetch.c:124
msgid "fetch.parallel cannot be negative"
msgstr "fetch.parallel không thể âm"
-#: builtin/fetch.c:146 builtin/pull.c:189
+#: builtin/fetch.c:147 builtin/pull.c:189
msgid "fetch from all remotes"
msgstr "lấy vỠtừ tất cả các máy chủ"
-#: builtin/fetch.c:148 builtin/pull.c:249
+#: builtin/fetch.c:149 builtin/pull.c:249
msgid "set upstream for git pull/fetch"
msgstr "đặt thượng nguồn cho git pull/fetch"
-#: builtin/fetch.c:150 builtin/pull.c:192
+#: builtin/fetch.c:151 builtin/pull.c:192
msgid "append to .git/FETCH_HEAD instead of overwriting"
msgstr "nối thêm vào .git/FETCH_HEAD thay vì ghi đè lên nó"
-#: builtin/fetch.c:152
+#: builtin/fetch.c:153
msgid "use atomic transaction to update references"
msgstr "sử dụng giao dịch hạt nhân bên phía máy chủ"
-#: builtin/fetch.c:154 builtin/pull.c:195
+#: builtin/fetch.c:155 builtin/pull.c:195
msgid "path to upload pack on remote end"
msgstr "Ä‘Æ°á»ng dẫn đến gói tải lên trên máy chủ cuối"
-#: builtin/fetch.c:155
+#: builtin/fetch.c:156
msgid "force overwrite of local reference"
msgstr "ép buộc ghi đè lên tham chiếu nội bộ"
-#: builtin/fetch.c:157
+#: builtin/fetch.c:158
msgid "fetch from multiple remotes"
msgstr "lấy từ nhiá»u máy chủ cùng lúc"
-#: builtin/fetch.c:159 builtin/pull.c:199
+#: builtin/fetch.c:160 builtin/pull.c:199
msgid "fetch all tags and associated objects"
msgstr "lấy tất cả các thẻ cùng với các đối tượng liên quan đến nó"
-#: builtin/fetch.c:161
+#: builtin/fetch.c:162
msgid "do not fetch all tags (--no-tags)"
msgstr "không lấy tất cả các thẻ (--no-tags)"
-#: builtin/fetch.c:163
+#: builtin/fetch.c:164
msgid "number of submodules fetched in parallel"
msgstr "số lượng mô-Ä‘un-con được lấy đồng thá»i"
-#: builtin/fetch.c:165
+#: builtin/fetch.c:166
msgid "modify the refspec to place all refs within refs/prefetch/"
msgstr ""
"sá»­a đặc tả Ä‘Æ°á»ng dẫn cho các tham chiếu má»i chá»— có trong refs/prefetch/"
-#: builtin/fetch.c:167 builtin/pull.c:202
+#: builtin/fetch.c:168 builtin/pull.c:202
msgid "prune remote-tracking branches no longer on remote"
msgstr ""
"cắt cụt (prune) các nhánh “remote-tracking†không còn tồn tại trên máy chủ "
"nữa"
-#: builtin/fetch.c:169
+#: builtin/fetch.c:170
msgid "prune local tags no longer on remote and clobber changed tags"
msgstr "cắt xém các thẻ nội bộ không còn ở máy chủ và xóa các thẻ đã thay đổi"
-#: builtin/fetch.c:170 builtin/fetch.c:195 builtin/pull.c:123
+#: builtin/fetch.c:171 builtin/fetch.c:199 builtin/pull.c:123
msgid "on-demand"
msgstr "khi-cần"
-#: builtin/fetch.c:171
+#: builtin/fetch.c:172
msgid "control recursive fetching of submodules"
msgstr "Ä‘iá»u khiển việc lấy vỠđệ quy trong các mô-Ä‘un-con"
-#: builtin/fetch.c:176
+#: builtin/fetch.c:177
msgid "write fetched references to the FETCH_HEAD file"
msgstr "ghi các tham chiếu lấy vỠvào tập tin FETCH_HEAD"
-#: builtin/fetch.c:177 builtin/pull.c:210
+#: builtin/fetch.c:178 builtin/pull.c:210
msgid "keep downloaded pack"
msgstr "giữ lại gói đã tải vá»"
-#: builtin/fetch.c:179
+#: builtin/fetch.c:180
msgid "allow updating of HEAD ref"
msgstr "cho phép cập nhật th.chiếu HEAD"
-#: builtin/fetch.c:182 builtin/fetch.c:188 builtin/pull.c:213
+#: builtin/fetch.c:183 builtin/fetch.c:189 builtin/pull.c:213
#: builtin/pull.c:222
msgid "deepen history of shallow clone"
msgstr "làm sâu hơn lịch sử của bản sao"
-#: builtin/fetch.c:184 builtin/pull.c:216
+#: builtin/fetch.c:185 builtin/pull.c:216
msgid "deepen history of shallow repository based on time"
msgstr "làm sâu hÆ¡n lịch sá»­ của kho bản sao shallow dá»±a trên thá»i gian"
-#: builtin/fetch.c:190 builtin/pull.c:225
+#: builtin/fetch.c:191 builtin/pull.c:225
msgid "convert to a complete repository"
msgstr "chuyển đổi hoàn toàn sang kho git"
-#: builtin/fetch.c:193
+#: builtin/fetch.c:194
+msgid "re-fetch without negotiating common commits"
+msgstr "re-fetch mà không dàn xếp các lần chuyển giao chung"
+
+#: builtin/fetch.c:197
msgid "prepend this to submodule path output"
msgstr "soạn sẵn cái này cho kết xuất Ä‘Æ°á»ng dẫn mô-Ä‘un-con"
-#: builtin/fetch.c:196
+#: builtin/fetch.c:200
msgid ""
"default for recursive fetching of submodules (lower priority than config "
"files)"
@@ -15245,108 +15617,103 @@ msgstr ""
"mặc định cho việc lấy đệ quy các mô-đun-con (có mức ưu tiên thấp hơn các tập "
"tin cấu hình config)"
-#: builtin/fetch.c:200 builtin/pull.c:228
+#: builtin/fetch.c:204 builtin/pull.c:228
msgid "accept refs that update .git/shallow"
msgstr "chấp nhận tham chiếu cập nhật .git/shallow"
-#: builtin/fetch.c:201 builtin/pull.c:230
+#: builtin/fetch.c:205 builtin/pull.c:230
msgid "refmap"
msgstr "refmap"
-#: builtin/fetch.c:202 builtin/pull.c:231
+#: builtin/fetch.c:206 builtin/pull.c:231
msgid "specify fetch refmap"
msgstr "chỉ ra refmap cần lấy vá»"
-#: builtin/fetch.c:209 builtin/pull.c:244
+#: builtin/fetch.c:213 builtin/pull.c:244
msgid "report that we have only objects reachable from this object"
msgstr ""
"báo cáo rằng chúng ta chỉ có các đối tượng tiếp cận được từ đối tượng này"
-#: builtin/fetch.c:211
+#: builtin/fetch.c:215
msgid "do not fetch a packfile; instead, print ancestors of negotiation tips"
msgstr ""
"không lấy vỠmột packfile; thay vào đó, hãy in tổ tiên của đỉnh đàm phán"
-#: builtin/fetch.c:214 builtin/fetch.c:216
+#: builtin/fetch.c:218 builtin/fetch.c:220
msgid "run 'maintenance --auto' after fetching"
msgstr "chạy “maintenance --auto†sau khi lấy vá»"
-#: builtin/fetch.c:218 builtin/pull.c:247
+#: builtin/fetch.c:222 builtin/pull.c:247
msgid "check for forced-updates on all updated branches"
msgstr "kiểm cho các-cập-nhật-bắt-buá»™c trên má»i nhánh đã cập nhật"
-#: builtin/fetch.c:220
+#: builtin/fetch.c:224
msgid "write the commit-graph after fetching"
msgstr "ghi ra đồ thị các lần chuyển giao sau khi lấy vá»"
-#: builtin/fetch.c:222
+#: builtin/fetch.c:226
msgid "accept refspecs from stdin"
msgstr "chấp nhận tham chiếu từ đầu vào tiêu chuẩn"
-#: builtin/fetch.c:592
+#: builtin/fetch.c:618
msgid "couldn't find remote ref HEAD"
msgstr "không thể tìm thấy HEAD tham chiếu máy chủ"
-#: builtin/fetch.c:766
-#, c-format
-msgid "configuration fetch.output contains invalid value %s"
-msgstr "phần cấu hình fetch.output có chứa giá-trị không hợp lệ %s"
-
-#: builtin/fetch.c:867
+#: builtin/fetch.c:893
#, c-format
msgid "object %s not found"
msgstr "không tìm thấy đối tượng %s"
-#: builtin/fetch.c:871
+#: builtin/fetch.c:897
msgid "[up to date]"
msgstr "[đã cập nhật]"
-#: builtin/fetch.c:883 builtin/fetch.c:901 builtin/fetch.c:973
+#: builtin/fetch.c:909 builtin/fetch.c:927 builtin/fetch.c:999
msgid "[rejected]"
msgstr "[Bị từ chối]"
-#: builtin/fetch.c:885
+#: builtin/fetch.c:911
msgid "can't fetch in current branch"
msgstr "không thể fetch (lấy) vỠnhánh hiện hành"
-#: builtin/fetch.c:886
+#: builtin/fetch.c:912
msgid "checked out in another worktree"
msgstr "lấy ra trong cây làm việc khác"
-#: builtin/fetch.c:896
+#: builtin/fetch.c:922
msgid "[tag update]"
msgstr "[cập nhật thẻ]"
-#: builtin/fetch.c:897 builtin/fetch.c:934 builtin/fetch.c:956
-#: builtin/fetch.c:968
+#: builtin/fetch.c:923 builtin/fetch.c:960 builtin/fetch.c:982
+#: builtin/fetch.c:994
msgid "unable to update local ref"
msgstr "không thể cập nhật tham chiếu nội bộ"
-#: builtin/fetch.c:901
+#: builtin/fetch.c:927
msgid "would clobber existing tag"
msgstr "nên xóa chồng các thẻ có sẵn"
-#: builtin/fetch.c:923
+#: builtin/fetch.c:949
msgid "[new tag]"
msgstr "[thẻ mới]"
-#: builtin/fetch.c:926
+#: builtin/fetch.c:952
msgid "[new branch]"
msgstr "[nhánh mới]"
-#: builtin/fetch.c:929
+#: builtin/fetch.c:955
msgid "[new ref]"
msgstr "[ref (tham chiếu) mới]"
-#: builtin/fetch.c:968
+#: builtin/fetch.c:994
msgid "forced update"
msgstr "cưỡng bức cập nhật"
-#: builtin/fetch.c:973
+#: builtin/fetch.c:999
msgid "non-fast-forward"
msgstr "không-phải-chuyển-tiếp-nhanh"
-#: builtin/fetch.c:1076
+#: builtin/fetch.c:1102
msgid ""
"fetch normally indicates which branches had a forced update,\n"
"but that check has been disabled; to re-enable, use '--show-forced-updates'\n"
@@ -15356,7 +15723,7 @@ msgstr ""
"nhÆ°ng lá»±a chá»n bị tắt; để kích hoạt lại, sá»­ dụng cá»\n"
"“--show-forced-updates†hoặc chạy “git config fetch.showForcedUpdates trueâ€."
-#: builtin/fetch.c:1080
+#: builtin/fetch.c:1106
#, c-format
msgid ""
"it took %.2f seconds to check forced updates; you can use\n"
@@ -15369,22 +15736,22 @@ msgstr ""
"falseâ€\n"
"để tránh kiểm tra này\n"
-#: builtin/fetch.c:1112
+#: builtin/fetch.c:1136
#, c-format
msgid "%s did not send all necessary objects\n"
msgstr "%s đã không gửi tất cả các đối tượng cần thiết\n"
-#: builtin/fetch.c:1141
+#: builtin/fetch.c:1156
#, c-format
msgid "rejected %s because shallow roots are not allowed to be updated"
msgstr "từ chối %s bởi vì các gốc nông thì không được phép cập nhật"
-#: builtin/fetch.c:1231 builtin/fetch.c:1379
+#: builtin/fetch.c:1259 builtin/fetch.c:1418
#, c-format
msgid "From %.*s\n"
msgstr "Từ %.*s\n"
-#: builtin/fetch.c:1252
+#: builtin/fetch.c:1269
#, c-format
msgid ""
"some local refs could not be updated; try running\n"
@@ -15393,49 +15760,49 @@ msgstr ""
"một số tham chiếu nội bộ không thể được cập nhật; hãy thử chạy\n"
" “git remote prune %s†để bỠđi những nhánh cũ, hay bị xung đột"
-#: builtin/fetch.c:1349
+#: builtin/fetch.c:1377
#, c-format
msgid " (%s will become dangling)"
msgstr " (%s sẽ trở thành không đầu (không được quản lý))"
-#: builtin/fetch.c:1350
+#: builtin/fetch.c:1378
#, c-format
msgid " (%s has become dangling)"
msgstr " (%s đã trở thành không đầu (không được quản lý))"
-#: builtin/fetch.c:1382
+#: builtin/fetch.c:1421
msgid "[deleted]"
msgstr "[đã xóa]"
-#: builtin/fetch.c:1383 builtin/remote.c:1128
+#: builtin/fetch.c:1422 builtin/remote.c:1153
msgid "(none)"
msgstr "(không)"
-#: builtin/fetch.c:1405
+#: builtin/fetch.c:1446
#, c-format
msgid "refusing to fetch into branch '%s' checked out at '%s'"
msgstr "từ chối lấy vá» vào nhánh “%s†đã được lấy ra tại “%sâ€"
-#: builtin/fetch.c:1425
+#: builtin/fetch.c:1466
#, c-format
msgid "option \"%s\" value \"%s\" is not valid for %s"
msgstr "tùy chá»n \"%s\" có giá trị \"%s\" là không hợp lệ cho %s"
-#: builtin/fetch.c:1428
+#: builtin/fetch.c:1469
#, c-format
msgid "option \"%s\" is ignored for %s\n"
msgstr "tùy chá»n \"%s\" bị bá» qua vá»›i %s\n"
-#: builtin/fetch.c:1455
+#: builtin/fetch.c:1496
#, c-format
msgid "the object %s does not exist"
msgstr "đối tượng “%s†không tồn tại"
-#: builtin/fetch.c:1643
+#: builtin/fetch.c:1748
msgid "multiple branches detected, incompatible with --set-upstream"
msgstr "phát hiện nhiá»u nhánh, không tÆ°Æ¡ng thích vá»›i --set-upstream"
-#: builtin/fetch.c:1655
+#: builtin/fetch.c:1760
#, c-format
msgid ""
"could not set upstream of HEAD to '%s' from '%s' when it does not point to "
@@ -15444,19 +15811,19 @@ msgstr ""
"không thể đặt thượng nguồn của HEAD thành '%s' từ '%s' khi mà nó chẳng chỉ "
"đến nhánh nào cả."
-#: builtin/fetch.c:1668
+#: builtin/fetch.c:1773
msgid "not setting upstream for a remote remote-tracking branch"
msgstr "không cài đặt thượng nguồn cho một nhánh được theo dõi trên máy chủ"
-#: builtin/fetch.c:1670
+#: builtin/fetch.c:1775
msgid "not setting upstream for a remote tag"
msgstr "không cài đặt thượng nguồn cho một thẻ nhánh trên máy chủ"
-#: builtin/fetch.c:1672
+#: builtin/fetch.c:1777
msgid "unknown branch type"
msgstr "không hiểu kiểu nhánh"
-#: builtin/fetch.c:1674
+#: builtin/fetch.c:1779
msgid ""
"no source branch found;\n"
"you need to specify exactly one branch with the --set-upstream option"
@@ -15464,22 +15831,22 @@ msgstr ""
"không tìm thấy nhánh nguồn.\n"
"bạn cần phải chỉ định chính xác má»™t nhánh vá»›i tùy chá»n --set-upstream"
-#: builtin/fetch.c:1804 builtin/fetch.c:1867
+#: builtin/fetch.c:1904 builtin/fetch.c:1967
#, c-format
msgid "Fetching %s\n"
msgstr "Äang lấy “%s†vá»\n"
-#: builtin/fetch.c:1814 builtin/fetch.c:1869
+#: builtin/fetch.c:1914 builtin/fetch.c:1969
#, c-format
msgid "could not fetch %s"
msgstr "không thể lấy “%s†vá»"
-#: builtin/fetch.c:1826
+#: builtin/fetch.c:1926
#, c-format
msgid "could not fetch '%s' (exit code: %d)\n"
msgstr "không thể lấy “%s†(mã thoát: %d)\n"
-#: builtin/fetch.c:1930
+#: builtin/fetch.c:2030
msgid ""
"no remote repository specified; please specify either a URL or a\n"
"remote name from which new revisions should be fetched"
@@ -15487,48 +15854,48 @@ msgstr ""
"chưa chỉ ra kho chứa máy chủ; xin hãy chỉ định hoặc là URL hoặc\n"
"tên máy chủ từ cái mà những Ä‘iểm xét duyệt má»›i có thể được fetch (lấy vá»)"
-#: builtin/fetch.c:1966
+#: builtin/fetch.c:2066
msgid "you need to specify a tag name"
msgstr "bạn cần chỉ định một tên thẻ"
-#: builtin/fetch.c:2032
-msgid "--negotiate-only needs one or more --negotiate-tip=*"
-msgstr "--negotiate-only cần má»™t tham số hay nhiá»u --negotiate-tip=* hÆ¡n"
+#: builtin/fetch.c:2156
+msgid "--negotiate-only needs one or more --negotiation-tip=*"
+msgstr "--negotiate-only cần má»™t hay nhiá»u --negotiation-tip=* hÆ¡n"
-#: builtin/fetch.c:2036
+#: builtin/fetch.c:2160
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:2045
+#: builtin/fetch.c:2169
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:2062
+#: builtin/fetch.c:2186
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:2064
+#: builtin/fetch.c:2188
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:2073
+#: builtin/fetch.c:2197
#, 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:2081
+#: builtin/fetch.c:2205
msgid "fetching a group and specifying refspecs does not make sense"
msgstr "việc lấy vỠmột nhóm và chỉ định refspecs là không hợp lý"
-#: builtin/fetch.c:2097
+#: builtin/fetch.c:2221
msgid "must supply remote when using --negotiate-only"
msgstr "phải cung cấp máy chủ khi sử dụng --negotiate-only"
-#: builtin/fetch.c:2102
+#: builtin/fetch.c:2226
msgid "protocol does not support --negotiate-only, exiting"
msgstr "giao thức không hỗ trợ --negotiate-only, nên thoát"
-#: builtin/fetch.c:2121
+#: builtin/fetch.c:2246
msgid ""
"--filter can only be used with the remote configured in extensions."
"partialclone"
@@ -15536,11 +15903,11 @@ msgstr ""
"--filter chỉ có thể được dùng với máy chủ được cấu hình bằng extensions."
"partialclone"
-#: builtin/fetch.c:2125
+#: builtin/fetch.c:2250
msgid "--atomic can only be used when fetching from one remote"
msgstr "--atomic chỉ có thể dùng khi lấy vỠtừ một máy chủ"
-#: builtin/fetch.c:2129
+#: builtin/fetch.c:2254
msgid "--stdin can only be used when fetching from one remote"
msgstr "--stdin chỉ có thể dùng khi lấy vỠtừ một máy chủ"
@@ -15615,7 +15982,7 @@ msgstr "trích dẫn để phù hợp cho Tcl"
msgid "show only <n> matched refs"
msgstr "hiển thị chỉ <n> tham chiếu khớp"
-#: builtin/for-each-ref.c:42 builtin/tag.c:481
+#: builtin/for-each-ref.c:42 builtin/tag.c:482
msgid "respect format colors"
msgstr "các màu định dạng lưu tâm"
@@ -15809,7 +16176,7 @@ msgstr "Äang kiểm tra các thÆ° mục đối tượng"
msgid "Checking %s link"
msgstr "Äang lấy liên kết %s"
-#: builtin/fsck.c:710 builtin/index-pack.c:859
+#: builtin/fsck.c:710 builtin/index-pack.c:862
#, c-format
msgid "invalid %s"
msgstr "%s không hợp lệ"
@@ -15878,7 +16245,7 @@ msgstr "cũng cân nhắc đến các đối tượng gói và thay thế"
msgid "check only connectivity"
msgstr "chỉ kiểm tra kết nối"
-#: builtin/fsck.c:798 builtin/mktag.c:76
+#: builtin/fsck.c:798 builtin/mktag.c:75
msgid "enable more strict checking"
msgstr "cho phép kiểm tra hạn chế hơn"
@@ -15908,6 +16275,118 @@ msgstr "%s: thiếu đối tượng"
msgid "invalid parameter: expected sha1, got '%s'"
msgstr "tham số không hợp lệ: cần sha1, nhÆ°ng lại nhận được “%sâ€"
+#: builtin/fsmonitor--daemon.c:13
+msgid "git fsmonitor--daemon start [<options>]"
+msgstr "git fsmonitor--daemon start [<các tùy chá»n>]"
+
+#: builtin/fsmonitor--daemon.c:14
+msgid "git fsmonitor--daemon run [<options>]"
+msgstr "git fsmonitor--daemon run [<các tùy chá»n>]"
+
+#: builtin/fsmonitor--daemon.c:15
+msgid "git fsmonitor--daemon stop"
+msgstr "git fsmonitor--daemon stop"
+
+#: builtin/fsmonitor--daemon.c:16
+msgid "git fsmonitor--daemon status"
+msgstr "git fsmonitor--daemon status"
+
+#: builtin/fsmonitor--daemon.c:38 builtin/fsmonitor--daemon.c:47
+#, c-format
+msgid "value of '%s' out of range: %d"
+msgstr "siá trị '%s' ngoài phạm vi cho phép: %d"
+
+#: builtin/fsmonitor--daemon.c:57
+#, c-format
+msgid "value of '%s' not bool or int: %d"
+msgstr "giá trị của '%s' không là bool hoặc int: %d"
+
+#: builtin/fsmonitor--daemon.c:99
+#, c-format
+msgid "fsmonitor-daemon is watching '%s'\n"
+msgstr "fsmonitor-daemon đang theo dõi '%s'\n"
+
+#: builtin/fsmonitor--daemon.c:104
+#, c-format
+msgid "fsmonitor-daemon is not watching '%s'\n"
+msgstr "fsmonitor-daemon hiện không theo dõi '%s'\n"
+
+#: builtin/fsmonitor--daemon.c:170
+#, c-format
+msgid "could not create fsmonitor cookie '%s'"
+msgstr "không thể tạo fsmonitor cookie “%sâ€"
+
+#: builtin/fsmonitor--daemon.c:753
+#, c-format
+msgid "fsmonitor: cookie_result '%d' != SEEN"
+msgstr "fsmonitor: cookie_result '%d' != SEEN"
+
+#: builtin/fsmonitor--daemon.c:1187
+#, c-format
+msgid "could not start IPC thread pool on '%s'"
+msgstr "không thể khởi chạy bể tiến trình IPC trêm “%sâ€"
+
+#: builtin/fsmonitor--daemon.c:1199
+msgid "could not start fsmonitor listener thread"
+msgstr "không thể lấy thông tin thống kê vỠtuyến trình lắng nghe fsmonitor"
+
+#: builtin/fsmonitor--daemon.c:1297
+msgid "could not initialize listener thread"
+msgstr "không thể khởi tạo tuyến trình lắng nghe"
+
+#: builtin/fsmonitor--daemon.c:1328 builtin/fsmonitor--daemon.c:1383
+#, c-format
+msgid "fsmonitor--daemon is already running '%s'"
+msgstr "fsmonitor--daemon hiện đang chạy rồi '%s'"
+
+#: builtin/fsmonitor--daemon.c:1332
+#, c-format
+msgid "running fsmonitor-daemon in '%s'\n"
+msgstr "chạy fsmonitor-daemon trong '%s'\n"
+
+#: builtin/fsmonitor--daemon.c:1387
+#, c-format
+msgid "starting fsmonitor-daemon in '%s'\n"
+msgstr "Ä‘ang khởi chạy fsmonitor-daemon trong “%sâ€\n"
+
+#: builtin/fsmonitor--daemon.c:1413
+msgid "daemon failed to start"
+msgstr "gặp lỗi khi khởi chạy dịch vụ chạy ngầm"
+
+#: builtin/fsmonitor--daemon.c:1416
+msgid "daemon not online yet"
+msgstr "ứng dụng chạy ngầm hiện chưa trực tuyến"
+
+#: builtin/fsmonitor--daemon.c:1419
+msgid "daemon terminated"
+msgstr "dịch vụ chạy ngầm đã bị dừng"
+
+#: builtin/fsmonitor--daemon.c:1429
+msgid "detach from console"
+msgstr "tách rá»i khá»i bảng Ä‘iá»u khiển"
+
+#: builtin/fsmonitor--daemon.c:1432
+msgid "use <n> ipc worker threads"
+msgstr "dùng <n> tuyến trình làm việc ipc"
+
+#: builtin/fsmonitor--daemon.c:1435
+msgid "max seconds to wait for background daemon startup"
+msgstr "số giây chá» tối Ä‘a khi khởi Ä‘á»™ng dịch vụ chạy ná»n"
+
+#: builtin/fsmonitor--daemon.c:1449
+#, c-format
+msgid "invalid 'ipc-threads' value (%d)"
+msgstr "giá trị 'ipc-threads' không hợp lệ (%d)"
+
+#: builtin/fsmonitor--daemon.c:1464
+#, c-format
+msgid "Unhandled subcommand '%s'"
+msgstr "Lệnh con không được xử lý '%s'"
+
+#: builtin/fsmonitor--daemon.c:1477
+msgid "fsmonitor--daemon not supported on this platform"
+msgstr "fsmonitor--daemon không há»— trợ trên ná»n tảng này"
+
#: builtin/gc.c:39
msgid "git gc [<options>]"
msgstr "git gc [<các tùy chá»n>]"
@@ -16156,8 +16635,8 @@ msgstr "gặp lỗi khi khởi chạy systemctl"
msgid "failed to run systemctl"
msgstr "gặp lỗi khi chạy systemctl"
-#: builtin/gc.c:2210 builtin/gc.c:2215 builtin/worktree.c:62
-#: builtin/worktree.c:944
+#: builtin/gc.c:2210 builtin/gc.c:2215 builtin/worktree.c:63
+#: builtin/worktree.c:1024
#, c-format
msgid "failed to delete '%s'"
msgstr "gặp lá»—i khi xóa “%sâ€"
@@ -16205,16 +16684,16 @@ msgstr "git maintenance run <lệnh_con> [<các tùy chá»n>]"
msgid "invalid subcommand: %s"
msgstr "lện con không hợp lệ: %s"
-#: builtin/grep.c:30
+#: builtin/grep.c:32
msgid "git grep [<options>] [-e] <pattern> [<rev>...] [[--] <path>...]"
msgstr "git grep [<các tùy chá»n>] [-e] <mẫu> [<rev>…] [[--] </Ä‘Æ°á»ng/dẫn>…]"
-#: builtin/grep.c:239
+#: builtin/grep.c:241
#, c-format
msgid "grep: failed to create thread: %s"
msgstr "grep: gặp lỗi tạo tuyến (thread): %s"
-#: builtin/grep.c:293
+#: builtin/grep.c:295
#, c-format
msgid "invalid number of threads specified (%d) for %s"
msgstr "số tuyến đã cho không hợp lệ (%d) cho %s"
@@ -16223,259 +16702,251 @@ msgstr "số tuyến đã cho không hợp lệ (%d) cho %s"
#. variable for tweaking threads, currently
#. grep.threads
#.
-#: builtin/grep.c:301 builtin/index-pack.c:1582 builtin/index-pack.c:1785
-#: builtin/pack-objects.c:3142
+#: builtin/grep.c:303 builtin/index-pack.c:1587 builtin/index-pack.c:1791
+#: builtin/pack-objects.c:3150
#, c-format
msgid "no threads support, ignoring %s"
msgstr "không hỗ trợ đa tuyến, bỠqua %s"
-#: builtin/grep.c:488 builtin/grep.c:617 builtin/grep.c:657
+#: builtin/grep.c:490 builtin/grep.c:619 builtin/grep.c:659
#, c-format
msgid "unable to read tree (%s)"
msgstr "không thể Ä‘á»c cây (%s)"
-#: builtin/grep.c:672
+#: builtin/grep.c:674
#, c-format
msgid "unable to grep from object of type %s"
msgstr "không thể thá»±c hiện lệnh grep (lá»c tìm) từ đối tượng thuá»™c kiểu %s"
-#: builtin/grep.c:752
+#: builtin/grep.c:754
#, c-format
msgid "switch `%c' expects a numerical value"
msgstr "chuyển đến “%c†cần một giá trị bằng số"
-#: builtin/grep.c:851
+#: builtin/grep.c:852
msgid "search in index instead of in the work tree"
msgstr "tìm trong bảng mục lục thay vì trong cây làm việc"
-#: builtin/grep.c:853
+#: builtin/grep.c:854
msgid "find in contents not managed by git"
msgstr "tìm trong nội dung không được quản lý bởi git"
-#: builtin/grep.c:855
+#: builtin/grep.c:856
msgid "search in both tracked and untracked files"
msgstr "tìm kiếm các tập tin được và chưa được theo dõi dấu vết"
-#: builtin/grep.c:857
+#: builtin/grep.c:858
msgid "ignore files specified via '.gitignore'"
msgstr "các tập tin bị bá» qua được chỉ định thông qua “.gitignoreâ€"
-#: builtin/grep.c:859
+#: builtin/grep.c:860
msgid "recursively search in each submodule"
msgstr "tìm kiếm đệ quy trong từng mô-đun-con"
-#: builtin/grep.c:862
+#: builtin/grep.c:863
msgid "show non-matching lines"
msgstr "hiển thị những dòng không khớp với mẫu"
-#: builtin/grep.c:864
+#: builtin/grep.c:865
msgid "case insensitive matching"
msgstr "phân biệt HOA/thÆ°á»ng"
-#: builtin/grep.c:866
+#: builtin/grep.c:867
msgid "match patterns only at word boundaries"
msgstr "chỉ khá»›p mẫu tại Ä‘Æ°á»ng ranh giá»›i từ"
-#: builtin/grep.c:868
+#: builtin/grep.c:869
msgid "process binary files as text"
msgstr "xá»­ lý tập tin nhị phân nhÆ° là dạng văn bản thÆ°á»ng"
-#: builtin/grep.c:870
+#: builtin/grep.c:871
msgid "don't match patterns in binary files"
msgstr "không khớp mẫu trong các tập tin nhị phân"
-#: builtin/grep.c:873
+#: builtin/grep.c:874
msgid "process binary files with textconv filters"
msgstr "xá»­ lý tập tin nhị phân vá»›i các bá»™ lá»c “textconvâ€"
-#: builtin/grep.c:875
+#: builtin/grep.c:876
msgid "search in subdirectories (default)"
msgstr "tìm kiếm trong thư mục con (mặc định)"
-#: builtin/grep.c:877
+#: builtin/grep.c:878
msgid "descend at most <depth> levels"
msgstr "hạ xuống ít nhất là mức <sâu>"
-#: builtin/grep.c:881
+#: builtin/grep.c:882
msgid "use extended POSIX regular expressions"
msgstr "dùng biểu thức chính qui POSIX có mở rộng"
-#: builtin/grep.c:884
+#: builtin/grep.c:885
msgid "use basic POSIX regular expressions (default)"
msgstr "sử dụng biểu thức chính quy kiểu POSIX (mặc định)"
-#: builtin/grep.c:887
+#: builtin/grep.c:888
msgid "interpret patterns as fixed strings"
msgstr "diễn dịch các mẫu như là chuỗi cố định"
-#: builtin/grep.c:890
+#: builtin/grep.c:891
msgid "use Perl-compatible regular expressions"
msgstr "sử dụng biểu thức chính quy tương thích Perl"
-#: builtin/grep.c:893
+#: builtin/grep.c:894
msgid "show line numbers"
msgstr "hiển thị số của dòng"
-#: builtin/grep.c:894
+#: builtin/grep.c:895
msgid "show column number of first match"
msgstr "hiển thị số cột của khớp với mẫu đầu tiên"
-#: builtin/grep.c:895
+#: builtin/grep.c:896
msgid "don't show filenames"
msgstr "không hiển thị tên tập tin"
-#: builtin/grep.c:896
+#: builtin/grep.c:897
msgid "show filenames"
msgstr "hiển thị các tên tập tin"
-#: builtin/grep.c:898
+#: builtin/grep.c:899
msgid "show filenames relative to top directory"
msgstr "hiển thị tên tập tin tương đối với thư mục đỉnh (top)"
-#: builtin/grep.c:900
+#: builtin/grep.c:901
msgid "show only filenames instead of matching lines"
msgstr "chỉ hiển thị tên tập tin thay vì những dòng khớp với mẫu"
-#: builtin/grep.c:902
+#: builtin/grep.c:903
msgid "synonym for --files-with-matches"
msgstr "đồng nghĩa với --files-with-matches"
-#: builtin/grep.c:905
+#: builtin/grep.c:906
msgid "show only the names of files without match"
msgstr "chỉ hiển thị tên cho những tập tin không khớp với mẫu"
-#: builtin/grep.c:907
+#: builtin/grep.c:908
msgid "print NUL after filenames"
msgstr "thêm NUL vào sau tên tập tin"
-#: builtin/grep.c:910
+#: builtin/grep.c:911
msgid "show only matching parts of a line"
msgstr "chỉ hiển thị những phần khớp với mẫu của một dòng"
-#: builtin/grep.c:912
+#: builtin/grep.c:913
msgid "show the number of matches instead of matching lines"
msgstr "hiển thị số lượng khớp thay vì những dòng khớp với mẫu"
-#: builtin/grep.c:913
+#: builtin/grep.c:914
msgid "highlight matches"
msgstr "tô sáng phần khớp mẫu"
-#: builtin/grep.c:915
+#: builtin/grep.c:916
msgid "print empty line between matches from different files"
msgstr "hiển thị dòng trống giữa các lần khớp từ các tập tin khác biệt"
-#: builtin/grep.c:917
+#: builtin/grep.c:918
msgid "show filename only once above matches from same file"
msgstr ""
"hiển thị tên tập tin một lần phía trên các lần khớp từ cùng một tập tin"
-#: builtin/grep.c:920
+#: builtin/grep.c:921
msgid "show <n> context lines before and after matches"
msgstr "hiển thị <n> dòng nội dung phía trước và sau các lần khớp"
-#: builtin/grep.c:923
+#: builtin/grep.c:924
msgid "show <n> context lines before matches"
msgstr "hiển thị <n> dòng nội dung trước khớp"
-#: builtin/grep.c:925
+#: builtin/grep.c:926
msgid "show <n> context lines after matches"
msgstr "hiển thị <n> dòng nội dung sau khớp"
-#: builtin/grep.c:927
+#: builtin/grep.c:928
msgid "use <n> worker threads"
msgstr "dùng <n> tuyến trình làm việc"
-#: builtin/grep.c:928
+#: builtin/grep.c:929
msgid "shortcut for -C NUM"
msgstr "dạng viết tắt của -C Sá»"
-#: builtin/grep.c:931
+#: builtin/grep.c:932
msgid "show a line with the function name before matches"
msgstr "hiển thị dòng vói tên hàm trước các lần khớp"
-#: builtin/grep.c:933
+#: builtin/grep.c:934
msgid "show the surrounding function"
msgstr "hiển thị hàm bao quanh"
-#: builtin/grep.c:936
+#: builtin/grep.c:937
msgid "read patterns from file"
msgstr "Ä‘á»c mẫu từ tập-tin"
-#: builtin/grep.c:938
+#: builtin/grep.c:939
msgid "match <pattern>"
msgstr "match <mẫu>"
-#: builtin/grep.c:940
+#: builtin/grep.c:941
msgid "combine patterns specified with -e"
msgstr "tổ hợp mẫu được chỉ ra vá»›i tùy chá»n -e"
-#: builtin/grep.c:952
+#: builtin/grep.c:953
msgid "indicate hit with exit status without output"
msgstr "đưa ra gợi ý với trạng thái thoát mà không có kết xuất"
-#: builtin/grep.c:954
+#: builtin/grep.c:955
msgid "show only matches from files that match all patterns"
msgstr "chỉ hiển thị những cái khớp từ tập tin mà nó khớp toàn bộ các mẫu"
-#: builtin/grep.c:957
+#: builtin/grep.c:958
msgid "pager"
msgstr "dàn trang"
-#: builtin/grep.c:957
+#: builtin/grep.c:958
msgid "show matching files in the pager"
msgstr "hiển thị các tập tin khớp trong trang giấy"
-#: builtin/grep.c:961
+#: builtin/grep.c:962
msgid "allow calling of grep(1) (ignored by this build)"
msgstr "cho phép gá»i grep(1) (bị bá» qua bởi lần dịch này)"
-#: builtin/grep.c:1027
+#: builtin/grep.c:1028
msgid "no pattern given"
msgstr "chưa chỉ ra mẫu"
-#: builtin/grep.c:1063
+#: builtin/grep.c:1064
msgid "--no-index or --untracked cannot be used with revs"
msgstr "--no-index hay --untracked không được sử dụng cùng với revs"
-#: builtin/grep.c:1071
+#: builtin/grep.c:1072
#, c-format
msgid "unable to resolve revision: %s"
msgstr "không thể phân giải điểm xét duyệt: %s"
-#: builtin/grep.c:1101
+#: builtin/grep.c:1102
msgid "--untracked not supported with --recurse-submodules"
msgstr "tùy chá»n --untracked không được há»— trợ vá»›i --recurse-submodules"
-#: builtin/grep.c:1105
+#: builtin/grep.c:1106
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:1108 builtin/pack-objects.c:4059
+#: builtin/grep.c:1109 builtin/pack-objects.c:4084
msgid "no threads support, ignoring --threads"
msgstr "không hỗ trợ đa tuyến, bỠqua --threads"
-#: builtin/grep.c:1111 builtin/index-pack.c:1579 builtin/pack-objects.c:3139
+#: builtin/grep.c:1112 builtin/index-pack.c:1584 builtin/pack-objects.c:3147
#, c-format
msgid "invalid number of threads specified (%d)"
msgstr "số tuyến chỉ ra không hợp lệ (%d)"
-#: builtin/grep.c:1145
+#: builtin/grep.c:1146
msgid "--open-files-in-pager only works on the worktree"
msgstr "--open-files-in-pager chỉ làm việc trên cây-làm-việc"
-#: builtin/grep.c:1171
-msgid "--cached or --untracked cannot be used with --no-index"
-msgstr "--cached hay --untracked không được sử dụng với --no-index"
-
-#: builtin/grep.c:1174
-msgid "--untracked cannot be used with --cached"
-msgstr "--untracked không thể được sá»­ dụng vá»›i tùy chá»n --cached"
-
-#: builtin/grep.c:1180
+#: builtin/grep.c:1179
msgid "--[no-]exclude-standard cannot be used for tracked contents"
msgstr "--[no-]exclude-standard không thể sử dụng cho nội dung lưu dấu vết"
-#: builtin/grep.c:1188
+#: builtin/grep.c:1187
msgid "both --cached and trees are given"
msgstr "cả hai --cached và các cây phải được chỉ ra"
@@ -16487,107 +16958,99 @@ msgstr ""
"git hash-object [-t <kiểu>] [-w] [--path=<tập-tin> | --no-filters] [--stdin] "
"[--] <tập-tin>…"
-#: builtin/hash-object.c:84
-msgid "git hash-object --stdin-paths"
-msgstr "git hash-object --stdin-paths"
-
-#: builtin/hash-object.c:96
+#: builtin/hash-object.c:97
msgid "object type"
msgstr "kiểu đối tượng"
-#: builtin/hash-object.c:97
+#: builtin/hash-object.c:98
msgid "write the object into the object database"
msgstr "ghi đối tượng vào dữ liệu đối tượng"
-#: builtin/hash-object.c:99
+#: builtin/hash-object.c:100
msgid "read the object from stdin"
msgstr "Ä‘á»c đối tượng từ đầu vào tiêu chuẩn stdin"
-#: builtin/hash-object.c:101
+#: builtin/hash-object.c:102
msgid "store file as is without filters"
msgstr "lÆ°u các tập tin mà nó không có các bá»™ lá»c"
-#: builtin/hash-object.c:102
+#: builtin/hash-object.c:103
msgid ""
"just hash any random garbage to create corrupt objects for debugging Git"
msgstr "chỉ cần băm rác ngẫu nhiên để tạo má»™t đối tượng há»ng để mà gỡ lá»—i Git"
-#: builtin/hash-object.c:103
+#: builtin/hash-object.c:104
msgid "process file as it were from this path"
msgstr "xử lý tập tin như là nó đang ở thư mục này"
-#: builtin/help.c:55
+#: builtin/help.c:57
msgid "print all available commands"
msgstr "hiển thị danh sách các câu lệnh ngÆ°á»i dùng có thể sá»­ dụng"
-#: builtin/help.c:57
+#: builtin/help.c:60
+msgid "show external commands in --all"
+msgstr "hiển thị các lệnh bên ngoài trong --all"
+
+#: builtin/help.c:61
+msgid "show aliases in --all"
+msgstr "hiển thị các bí danh trong --all"
+
+#: builtin/help.c:62
msgid "exclude guides"
msgstr "hướng dẫn loại trừ"
-#: builtin/help.c:58
+#: builtin/help.c:63
msgid "show man page"
msgstr "hiển thị trang man"
-#: builtin/help.c:59
+#: builtin/help.c:64
msgid "show manual in web browser"
msgstr "hiển thị hướng dẫn sử dụng trong trình duyệt web"
-#: builtin/help.c:61
+#: builtin/help.c:66
msgid "show info page"
msgstr "hiển thị trang info"
-#: builtin/help.c:63
+#: builtin/help.c:68
msgid "print command description"
msgstr "hiển thị mô tả lệnh"
-#: builtin/help.c:65
+#: builtin/help.c:70
msgid "print list of useful guides"
msgstr "hiển thị danh sách các hướng dẫn hữu dụng"
-#: builtin/help.c:67
+#: builtin/help.c:72
msgid "print all configuration variable names"
msgstr "in ra tất cả các tên biến cấu hình"
-#: builtin/help.c:78
-msgid ""
-"git help [-a|--all] [--[no-]verbose]]\n"
-" [[-i|--info] [-m|--man] [-w|--web]] [<command>]"
-msgstr ""
-"git help [-a|--all] [--[no-]verbose]]\n"
-" [[-i|--info] [-m|--man] [-w|--web]] [<lệnh>]"
-
-#: builtin/help.c:80
-msgid "git help [-g|--guides]"
-msgstr "git help [-g|--guides]"
-
-#: builtin/help.c:81
-msgid "git help [-c|--config]"
-msgstr "git help [-c|--config]"
+#: builtin/help.c:84
+msgid "git help [[-i|--info] [-m|--man] [-w|--web]] [<command>]"
+msgstr "git help [[-i|--info] [-m|--man] [-w|--web]] [<lệnh>]"
-#: builtin/help.c:196
+#: builtin/help.c:201
#, c-format
msgid "unrecognized help format '%s'"
msgstr "không nhận ra định dạng trợ giúp “%sâ€"
-#: builtin/help.c:222
+#: builtin/help.c:227
msgid "Failed to start emacsclient."
msgstr "Gặp lỗi khi khởi chạy emacsclient."
-#: builtin/help.c:235
+#: builtin/help.c:240
msgid "Failed to parse emacsclient version."
msgstr "Gặp lỗi khi phân tích phiên bản emacsclient."
-#: builtin/help.c:243
+#: builtin/help.c:248
#, c-format
msgid "emacsclient version '%d' too old (< 22)."
msgstr "phiên bản của emacsclient “%d†quá cũ (< 22)."
-#: builtin/help.c:261 builtin/help.c:283 builtin/help.c:293 builtin/help.c:301
+#: builtin/help.c:266 builtin/help.c:288 builtin/help.c:298 builtin/help.c:306
#, c-format
msgid "failed to exec '%s'"
msgstr "gặp lá»—i khi thá»±c thi “%sâ€"
-#: builtin/help.c:339
+#: builtin/help.c:344
#, c-format
msgid ""
"'%s': path for unsupported man viewer.\n"
@@ -16596,7 +17059,7 @@ msgstr ""
"“%sâ€: Ä‘Æ°á»ng dẫn không há»— trợ bá»™ trình chiếu man.\n"
"Hãy cân nhắc đến việc sử dụng “man.<tool>.cmd†để thay thế."
-#: builtin/help.c:351
+#: builtin/help.c:356
#, c-format
msgid ""
"'%s': cmd for supported man viewer.\n"
@@ -16605,42 +17068,58 @@ msgstr ""
"“%sâ€: cmd (lệnh) há»— trợ bá»™ trình chiếu man.\n"
"Hãy cân nhắc đến việc sử dụng “man.<tool>.path†để thay thế."
-#: builtin/help.c:466
+#: builtin/help.c:471
#, c-format
msgid "'%s': unknown man viewer."
msgstr "“%sâ€: không rõ chÆ°Æ¡ng trình xem man."
-#: builtin/help.c:482
+#: builtin/help.c:487
msgid "no man viewer handled the request"
msgstr "không có trình xem trợ giúp dạng manpage tiếp hợp với yêu cầu"
-#: builtin/help.c:489
+#: builtin/help.c:494
msgid "no info viewer handled the request"
msgstr "không có trình xem trợ giúp dạng info tiếp hợp với yêu cầu"
-#: builtin/help.c:550 builtin/help.c:561 git.c:348
+#: builtin/help.c:555 builtin/help.c:566 git.c:348
#, c-format
msgid "'%s' is aliased to '%s'"
msgstr "“%s†được đặt bí danh thành “%sâ€"
-#: builtin/help.c:564 git.c:380
+#: builtin/help.c:569 git.c:380
#, c-format
msgid "bad alias.%s string: %s"
msgstr "chuá»—i alias.%s sai: %s"
-#: builtin/help.c:580
-msgid "this option doesn't take any other arguments"
-msgstr "tùy chá»n này không nhận tham số nào khác"
+#: builtin/help.c:611
+#, c-format
+msgid "the '%s' option doesn't take any non-option arguments"
+msgstr "tùy chá»n '%s' không nhận bất kỳ tham số không phải tùy chá»n nào khác"
-#: builtin/help.c:601 builtin/help.c:628
+#: builtin/help.c:631
+msgid ""
+"the '--no-[external-commands|aliases]' options can only be used with '--all'"
+msgstr ""
+"tùy chá»n '--no-[external-commands|aliases]' chỉ có thể sá»­ dụng cùng vá»›i '--"
+"all'"
+
+#: builtin/help.c:643 builtin/help.c:671
#, c-format
msgid "usage: %s%s"
msgstr "cách dùng: %s%s"
-#: builtin/help.c:623
+#: builtin/help.c:666
msgid "'git help config' for more information"
msgstr "Chạy lệnh “git help config†để có thêm thông tin"
+#: builtin/hook.c:10
+msgid "git hook run [--ignore-missing] <hook-name> [-- <hook-args>]"
+msgstr "git hook run [--ignore-missing] <tên-móc> [-- <các tham số cho móc>]"
+
+#: builtin/hook.c:30
+msgid "silently ignore missing requested <hook-name>"
+msgstr "bỠqua âm thầm các <hook-name> đã yêu cầu còn thiếu"
+
#: builtin/index-pack.c:221
#, c-format
msgid "object type mismatch at %s"
@@ -16674,239 +17153,240 @@ 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:324 builtin/pack-objects.c:756
+#: builtin/index-pack.c:324 builtin/pack-objects.c:754
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"
-#: builtin/index-pack.c:327 builtin/unpack-objects.c:95
-msgid "pack exceeds maximum allowed size"
-msgstr "gói đã vượt quá cỡ tối đa được phép"
+#: builtin/index-pack.c:329
+#, c-format
+msgid "pack exceeds maximum allowed size (%s)"
+msgstr "gói đã vượt quá cỡ tối đa được phép (%s)"
-#: builtin/index-pack.c:358
+#: builtin/index-pack.c:362
msgid "pack signature mismatch"
msgstr "chữ ký cho gói không khớp"
-#: builtin/index-pack.c:360
+#: builtin/index-pack.c:364
#, c-format
msgid "pack version %<PRIu32> unsupported"
msgstr "không hỗ trợ phiên bản gói %<PRIu32>"
-#: builtin/index-pack.c:376
+#: builtin/index-pack.c:380
#, c-format
msgid "pack has bad object at offset %<PRIuMAX>: %s"
msgstr "gói có đối tượng sai tại khoảng bù %<PRIuMAX>: %s"
-#: builtin/index-pack.c:482
+#: builtin/index-pack.c:485
#, c-format
msgid "inflate returned %d"
msgstr "xả nén trả vỠ%d"
-#: builtin/index-pack.c:531
+#: builtin/index-pack.c:534
msgid "offset value overflow for delta base object"
msgstr "tràn giá trị khoảng bù cho đối tượng delta cơ sở"
-#: builtin/index-pack.c:539
+#: builtin/index-pack.c:542
msgid "delta base offset is out of bound"
msgstr "khoảng bù cơ sở cho delta nằm ngoài phạm vi"
-#: builtin/index-pack.c:547
+#: builtin/index-pack.c:550
#, c-format
msgid "unknown object type %d"
msgstr "không hiểu kiểu đối tượng %d"
-#: builtin/index-pack.c:578
+#: builtin/index-pack.c:581
msgid "cannot pread pack file"
msgstr "không thể chạy hàm pread cho tập tin gói"
-#: builtin/index-pack.c:580
+#: builtin/index-pack.c:583
#, c-format
msgid "premature end of pack file, %<PRIuMAX> byte missing"
msgid_plural "premature end of pack file, %<PRIuMAX> bytes missing"
msgstr[0] "tập tin gói bị kết thúc sớm, thiếu %<PRIuMAX> byte"
-#: builtin/index-pack.c:606
+#: builtin/index-pack.c:609
msgid "serious inflate inconsistency"
msgstr "sá»± mâu thuẫn xả nén nghiêm trá»ng"
-#: builtin/index-pack.c:751 builtin/index-pack.c:757 builtin/index-pack.c:781
-#: builtin/index-pack.c:820 builtin/index-pack.c:829
+#: builtin/index-pack.c:754 builtin/index-pack.c:760 builtin/index-pack.c:784
+#: builtin/index-pack.c:823 builtin/index-pack.c:832
#, c-format
msgid "SHA1 COLLISION FOUND WITH %s !"
msgstr "Sá»° VA CHẠM SHA1 ÄÃ XẢY RA VỚI %s!"
-#: builtin/index-pack.c:754 builtin/pack-objects.c:292
-#: builtin/pack-objects.c:352 builtin/pack-objects.c:458
+#: builtin/index-pack.c:757 builtin/pack-objects.c:290
+#: builtin/pack-objects.c:350 builtin/pack-objects.c:456
#, c-format
msgid "unable to read %s"
msgstr "không thể Ä‘á»c %s"
-#: builtin/index-pack.c:818
+#: builtin/index-pack.c:821
#, c-format
msgid "cannot read existing object info %s"
msgstr "không thể Ä‘á»c thông tin đối tượng sẵn có %s"
-#: builtin/index-pack.c:826
+#: builtin/index-pack.c:829
#, c-format
msgid "cannot read existing object %s"
msgstr "không thể Ä‘á»c đối tượng đã tồn tại %s"
-#: builtin/index-pack.c:840
+#: builtin/index-pack.c:843
#, c-format
msgid "invalid blob object %s"
msgstr "đối tượng blob không hợp lệ %s"
-#: builtin/index-pack.c:843 builtin/index-pack.c:862
+#: builtin/index-pack.c:846 builtin/index-pack.c:865
msgid "fsck error in packed object"
msgstr "lỗi fsck trong đối tượng đóng gói"
-#: builtin/index-pack.c:864
+#: builtin/index-pack.c:867
#, c-format
msgid "Not all child objects of %s are reachable"
msgstr "Không phải tất cả các đối tượng con của %s là có thể với tới được"
-#: builtin/index-pack.c:925 builtin/index-pack.c:972
+#: builtin/index-pack.c:928 builtin/index-pack.c:975
msgid "failed to apply delta"
msgstr "gặp lỗi khi áp dụng delta"
-#: builtin/index-pack.c:1156
+#: builtin/index-pack.c:1161
msgid "Receiving objects"
msgstr "Äang nhận vá» các đối tượng"
-#: builtin/index-pack.c:1156
+#: builtin/index-pack.c:1161
msgid "Indexing objects"
msgstr "Các đối tượng bảng mục lục"
-#: builtin/index-pack.c:1190
+#: builtin/index-pack.c:1195
msgid "pack is corrupted (SHA1 mismatch)"
msgstr "gói bị sai há»ng (SHA1 không khá»›p)"
-#: builtin/index-pack.c:1195
+#: builtin/index-pack.c:1200
msgid "cannot fstat packfile"
msgstr "không thể lấy thông tin thống kê packfile"
-#: builtin/index-pack.c:1198
+#: builtin/index-pack.c:1203
msgid "pack has junk at the end"
msgstr "pack có phần thừa ở cuối"
-#: builtin/index-pack.c:1210
+#: builtin/index-pack.c:1215
msgid "confusion beyond insanity in parse_pack_objects()"
msgstr "lộn xộn hơn cả điên rồ khi chạy hàm parse_pack_objects()"
-#: builtin/index-pack.c:1233
+#: builtin/index-pack.c:1238
msgid "Resolving deltas"
msgstr "Äang phân giải các delta"
-#: builtin/index-pack.c:1244 builtin/pack-objects.c:2905
+#: builtin/index-pack.c:1249 builtin/pack-objects.c:2913
#, c-format
msgid "unable to create thread: %s"
msgstr "không thể tạo tuyến: %s"
-#: builtin/index-pack.c:1277
+#: builtin/index-pack.c:1282
msgid "confusion beyond insanity"
msgstr "lộn xộn hơn cả điên rồ"
-#: builtin/index-pack.c:1283
+#: builtin/index-pack.c:1288
#, c-format
msgid "completed with %d local object"
msgid_plural "completed with %d local objects"
msgstr[0] "đầy đủ với %d đối tượng nội bộ"
-#: builtin/index-pack.c:1295
+#: builtin/index-pack.c:1300
#, c-format
msgid "Unexpected tail checksum for %s (disk corruption?)"
msgstr "Gặp tổng kiểm tra tail không cần cho %s (Ä‘Ä©a há»ng?)"
-#: builtin/index-pack.c:1299
+#: builtin/index-pack.c:1304
#, c-format
msgid "pack has %d unresolved delta"
msgid_plural "pack has %d unresolved deltas"
msgstr[0] "gói có %d delta chưa được giải quyết"
-#: builtin/index-pack.c:1323
+#: builtin/index-pack.c:1328
#, c-format
msgid "unable to deflate appended object (%d)"
msgstr "không thể xả nén đối tượng nối thêm (%d)"
-#: builtin/index-pack.c:1419
+#: builtin/index-pack.c:1423
#, c-format
msgid "local object %s is corrupt"
msgstr "đối tượng ná»™i bá»™ %s bị há»ng"
-#: builtin/index-pack.c:1440
+#: builtin/index-pack.c:1445
#, c-format
msgid "packfile name '%s' does not end with '.%s'"
msgstr "tên tập tin tập tin gói “%s†không được kết thúc “.%sâ€"
-#: builtin/index-pack.c:1464
+#: builtin/index-pack.c:1469
#, c-format
msgid "cannot write %s file '%s'"
msgstr "không thể ghi %s tập tin “%sâ€"
-#: builtin/index-pack.c:1472
+#: builtin/index-pack.c:1477
#, c-format
msgid "cannot close written %s file '%s'"
msgstr "không thể đóng tập tin được ghi %s “%sâ€"
-#: builtin/index-pack.c:1489
+#: builtin/index-pack.c:1494
#, c-format
msgid "unable to rename temporary '*.%s' file to '%s'"
msgstr "không thể đổi tên tập tin tạm thá»i “*.%s†thành “%sâ€"
-#: builtin/index-pack.c:1514
+#: builtin/index-pack.c:1519
msgid "error while closing pack file"
msgstr "gặp lỗi trong khi đóng tập tin gói"
-#: builtin/index-pack.c:1573 builtin/pack-objects.c:3150
+#: builtin/index-pack.c:1578 builtin/pack-objects.c:3158
#, c-format
msgid "bad pack.indexversion=%<PRIu32>"
msgstr "sai pack.indexversion=%<PRIu32>"
-#: builtin/index-pack.c:1643
+#: builtin/index-pack.c:1648
#, 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:1645
+#: builtin/index-pack.c:1650
#, 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:1693
+#: builtin/index-pack.c:1698
#, 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:1700
+#: builtin/index-pack.c:1705
#, 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:1742
+#: builtin/index-pack.c:1748
msgid "Cannot come back to cwd"
msgstr "Không thể quay lại cwd"
-#: builtin/index-pack.c:1796 builtin/index-pack.c:1799
-#: builtin/index-pack.c:1819 builtin/index-pack.c:1823
+#: builtin/index-pack.c:1802 builtin/index-pack.c:1805
+#: builtin/index-pack.c:1825 builtin/index-pack.c:1829
#, c-format
msgid "bad %s"
msgstr "%s sai"
-#: builtin/index-pack.c:1829 builtin/init-db.c:379 builtin/init-db.c:614
+#: builtin/index-pack.c:1835 builtin/init-db.c:379 builtin/init-db.c:614
#, 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:1850
+#: builtin/index-pack.c:1856
msgid "--stdin requires a git repository"
msgstr "--stdin cần một kho git"
-#: builtin/index-pack.c:1867
+#: builtin/index-pack.c:1873
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:1933 builtin/unpack-objects.c:584
+#: builtin/index-pack.c:1939 builtin/unpack-objects.c:584
msgid "fsck error in pack objects"
msgstr "lỗi fsck trong các đối tượng gói"
@@ -17115,40 +17595,40 @@ msgstr "--trailer cùng với --only-input không hợp lý"
msgid "no input file given for in-place editing"
msgstr "không đưa ra tập tin đầu vào để sửa tại-chỗ"
-#: builtin/log.c:59
+#: builtin/log.c:60
msgid "git log [<options>] [<revision-range>] [[--] <path>...]"
msgstr "git log [<các tùy chá»n>] [<vùng-xem-xét>] [[--] </Ä‘Æ°á»ng/dẫn>…]"
-#: builtin/log.c:60
+#: builtin/log.c:61
msgid "git show [<options>] <object>..."
msgstr "git show [<các tùy chá»n>] <đối-tượng>…"
-#: builtin/log.c:113
+#: builtin/log.c:114
#, c-format
msgid "invalid --decorate option: %s"
msgstr "tùy chá»n --decorate không hợp lệ: %s"
-#: builtin/log.c:180
+#: builtin/log.c:181
msgid "show source"
msgstr "hiển thị mã nguồn"
-#: builtin/log.c:181
+#: builtin/log.c:182
msgid "use mail map file"
msgstr "sử dụng tập tin ánh xạ thư"
-#: builtin/log.c:184
+#: builtin/log.c:185
msgid "only decorate refs that match <pattern>"
msgstr "chỉ tô sáng các tham chiếu khớp với <mẫu>"
-#: builtin/log.c:186
+#: builtin/log.c:187
msgid "do not decorate refs that match <pattern>"
msgstr "không tô sáng các tham chiếu khớp với <mẫu>"
-#: builtin/log.c:187
+#: builtin/log.c:188
msgid "decorate options"
msgstr "các tùy chá»n trang trí"
-#: builtin/log.c:190
+#: builtin/log.c:191
msgid ""
"trace the evolution of line range <start>,<end> or function :<funcname> in "
"<file>"
@@ -17156,89 +17636,93 @@ msgstr ""
"theo dõi sự tiến hóa của phạm vi <start><end> dòng, hoặc chức năng:"
"<funcname> trong <file>"
-#: builtin/log.c:213
+#: builtin/log.c:214
msgid "-L<range>:<file> cannot be used with pathspec"
msgstr "-L<vùng>:<tập_tin> không thể được sá»­ dụng vá»›i đặc tả Ä‘Æ°á»ng dẫn"
-#: builtin/log.c:321
+#: builtin/log.c:322
#, c-format
msgid "Final output: %d %s\n"
msgstr "Kết xuất cuối cùng: %d %s\n"
-#: builtin/log.c:586
+#: builtin/log.c:429
+msgid "unable to create temporary object directory"
+msgstr "không thể tạo thÆ° mục đối tượng tạm thá»i"
+
+#: builtin/log.c:599
#, c-format
msgid "git show %s: bad file"
msgstr "git show %s: sai tập tin"
-#: builtin/log.c:601 builtin/log.c:691
+#: builtin/log.c:614 builtin/log.c:706
#, c-format
msgid "could not read object %s"
msgstr "không thể Ä‘á»c đối tượng %s"
-#: builtin/log.c:716
+#: builtin/log.c:731
#, c-format
msgid "unknown type: %d"
msgstr "không nhận ra kiểu: %d"
-#: builtin/log.c:861
+#: builtin/log.c:880
#, c-format
msgid "%s: invalid cover from description mode"
msgstr "%s: bao bá»c không hợp lệ từ chế Ä‘á»™ mô tả"
-#: builtin/log.c:868
+#: builtin/log.c:887
msgid "format.headers without value"
msgstr "format.headers không có giá trị cụ thể"
-#: builtin/log.c:997
+#: builtin/log.c:1016
#, c-format
msgid "cannot open patch file %s"
msgstr "không thể mở tập tin miếng vá: %s"
-#: builtin/log.c:1014
+#: builtin/log.c:1033
msgid "need exactly one range"
msgstr "cần chính xác một vùng"
-#: builtin/log.c:1024
+#: builtin/log.c:1043
msgid "not a range"
msgstr "không phải là một vùng"
-#: builtin/log.c:1188
+#: builtin/log.c:1207
msgid "cover letter needs email format"
msgstr "“cover letter†cần cho định dạng thư"
-#: builtin/log.c:1194
+#: builtin/log.c:1213
msgid "failed to create cover-letter file"
msgstr "gặp lỗi khi tạo các tập tin cover-letter"
-#: builtin/log.c:1281
+#: builtin/log.c:1300
#, c-format
msgid "insane in-reply-to: %s"
msgstr "in-reply-to điên rồ: %s"
-#: builtin/log.c:1308
+#: builtin/log.c:1327
msgid "git format-patch [<options>] [<since> | <revision-range>]"
msgstr "git format-patch [<các tùy chá»n>] [<kể-từ> | <vùng-xem-xét>]"
-#: builtin/log.c:1366
+#: builtin/log.c:1385
msgid "two output directories?"
msgstr "hai thư mục kết xuất?"
-#: builtin/log.c:1517 builtin/log.c:2344 builtin/log.c:2346 builtin/log.c:2358
+#: builtin/log.c:1536 builtin/log.c:2369 builtin/log.c:2371 builtin/log.c:2383
#, c-format
msgid "unknown commit %s"
msgstr "không hiểu lần chuyển giao %s"
-#: builtin/log.c:1528 builtin/replace.c:58 builtin/replace.c:207
+#: builtin/log.c:1547 builtin/replace.c:58 builtin/replace.c:207
#: builtin/replace.c:210
#, c-format
msgid "failed to resolve '%s' as a valid ref"
msgstr "gặp lỗi khi phân giải “%s†như là một tham chiếu hợp lệ"
-#: builtin/log.c:1537
+#: builtin/log.c:1556
msgid "could not find exact merge base"
msgstr "không tìm thấy ná»n hòa trá»™n chính xác"
-#: builtin/log.c:1547
+#: builtin/log.c:1566
msgid ""
"failed to get upstream, if you want to record base commit automatically,\n"
"please use git branch --set-upstream-to to track a remote branch.\n"
@@ -17249,277 +17733,281 @@ msgstr ""
"nhánh máy chủ. Hoặc là bạn có thể chỉ định lần chuyển giao ná»n bằng\n"
"\"--base=<base-commit-id>\" một cách thủ công"
-#: builtin/log.c:1570
+#: builtin/log.c:1589
msgid "failed to find exact merge base"
msgstr "gặp lá»—i khi tìm ná»n hòa trá»™n chính xác"
-#: builtin/log.c:1587
+#: builtin/log.c:1606
msgid "base commit should be the ancestor of revision list"
msgstr "lần chuyển giao ná»n không là tổ tiên của danh sách Ä‘iểm xét duyệt"
-#: builtin/log.c:1597
+#: builtin/log.c:1616
msgid "base commit shouldn't be in revision list"
msgstr "lần chuyển giao ná»n không được trong danh sách Ä‘iểm xét duyệt"
-#: builtin/log.c:1655
+#: builtin/log.c:1674
msgid "cannot get patch id"
msgstr "không thể lấy mã miếng vá"
-#: builtin/log.c:1718
+#: builtin/log.c:1737
msgid "failed to infer range-diff origin of current series"
msgstr ""
"gặp lỗi khi suy luận range-diff (vùng khác biệt) gốc của sê-ri hiện tại"
-#: builtin/log.c:1720
+#: builtin/log.c:1739
#, c-format
msgid "using '%s' as range-diff origin of current series"
msgstr "dùng “%s†như là gốc range-diff của sê-ri hiện tại"
-#: builtin/log.c:1764
+#: builtin/log.c:1783
msgid "use [PATCH n/m] even with a single patch"
msgstr "dùng [PATCH n/m] ngay cả với miếng vá đơn"
-#: builtin/log.c:1767
+#: builtin/log.c:1786
msgid "use [PATCH] even with multiple patches"
msgstr "dùng [VÃ] ngay cả vá»›i các miếng vá phức tạp"
-#: builtin/log.c:1771
+#: builtin/log.c:1790
msgid "print patches to standard out"
msgstr "hiển thị miếng vá ra đầu ra chuẩn"
-#: builtin/log.c:1773
+#: builtin/log.c:1792
msgid "generate a cover letter"
msgstr "tạo bì thư"
-#: builtin/log.c:1775
+#: builtin/log.c:1794
msgid "use simple number sequence for output file names"
msgstr "sử dụng chỗi dãy số dạng đơn giản cho tên tập-tin xuất ra"
-#: builtin/log.c:1776
+#: builtin/log.c:1795
msgid "sfx"
msgstr "sfx"
-#: builtin/log.c:1777
+#: builtin/log.c:1796
msgid "use <sfx> instead of '.patch'"
msgstr "sá»­ dụng <sfx> thay cho “.patchâ€"
-#: builtin/log.c:1779
+#: builtin/log.c:1798
msgid "start numbering patches at <n> instead of 1"
msgstr "bắt đầu đánh số miếng vá từ <n> thay vì 1"
-#: builtin/log.c:1780
+#: builtin/log.c:1799
msgid "reroll-count"
msgstr "đếm reroll"
-#: builtin/log.c:1781
+#: builtin/log.c:1800
msgid "mark the series as Nth re-roll"
msgstr "đánh dấu chuỗi nối tiếp dạng thứ-N re-roll"
-#: builtin/log.c:1783
+#: builtin/log.c:1802
msgid "max length of output filename"
msgstr "chiá»u dài tên tập tin đầu ra tối Ä‘a"
-#: builtin/log.c:1785
+#: builtin/log.c:1804
msgid "use [RFC PATCH] instead of [PATCH]"
msgstr "dùng [Và RFC] thay cho [VÃ]"
-#: builtin/log.c:1788
+#: builtin/log.c:1807
msgid "cover-from-description-mode"
msgstr "cover-from-description-mode"
-#: builtin/log.c:1789
+#: builtin/log.c:1808
msgid "generate parts of a cover letter based on a branch's description"
msgstr "tạo ra các phần của một lá thư bao gồm dựa trên mô tả của nhánh"
-#: builtin/log.c:1791
+#: builtin/log.c:1810
msgid "use [<prefix>] instead of [PATCH]"
msgstr "dùng [<tiá»n-tố>] thay cho [VÃ]"
-#: builtin/log.c:1794
+#: builtin/log.c:1813
msgid "store resulting files in <dir>"
msgstr "lưu các tập tin kết quả trong <t.mục>"
-#: builtin/log.c:1797
+#: builtin/log.c:1816
msgid "don't strip/add [PATCH]"
msgstr "không strip/add [VÃ]"
-#: builtin/log.c:1800
+#: builtin/log.c:1819
msgid "don't output binary diffs"
msgstr "không kết xuất diff (những khác biệt) nhị phân"
-#: builtin/log.c:1802
+#: builtin/log.c:1821
msgid "output all-zero hash in From header"
msgstr "xuất má»i mã băm all-zero trong phần đầu From"
-#: builtin/log.c:1804
+#: builtin/log.c:1823
msgid "don't include a patch matching a commit upstream"
msgstr "không bao gồm miếng vá khớp với một lần chuyển giao thượng nguồn"
-#: builtin/log.c:1806
+#: builtin/log.c:1825
msgid "show patch format instead of default (patch + stat)"
msgstr "hiển thị định dạng miếng vá thay vì mặc định (miếng vá + thống kê)"
-#: builtin/log.c:1808
+#: builtin/log.c:1827
msgid "Messaging"
msgstr "Lá»i nhắn"
-#: builtin/log.c:1809
+#: builtin/log.c:1828
msgid "header"
msgstr "đầu đỠthư"
-#: builtin/log.c:1810
+#: builtin/log.c:1829
msgid "add email header"
msgstr "thêm đầu đỠthư"
-#: builtin/log.c:1811 builtin/log.c:1812
+#: builtin/log.c:1830 builtin/log.c:1831
msgid "email"
msgstr "thư điện tử"
-#: builtin/log.c:1811
+#: builtin/log.c:1830
msgid "add To: header"
msgstr "thêm To: đầu đỠthư"
-#: builtin/log.c:1812
+#: builtin/log.c:1831
msgid "add Cc: header"
msgstr "thêm Cc: đầu đỠthư"
-#: builtin/log.c:1813
+#: builtin/log.c:1832
msgid "ident"
msgstr "thụt lá»"
-#: builtin/log.c:1814
+#: builtin/log.c:1833
msgid "set From address to <ident> (or committer ident if absent)"
msgstr ""
"đặt “Äịa chỉ gá»­i†thành <thụ lá»> (hoặc thụt lá» ngÆ°á»i commit nếu bá» quên)"
-#: builtin/log.c:1816
+#: builtin/log.c:1835
msgid "message-id"
msgstr "message-id"
-#: builtin/log.c:1817
+#: builtin/log.c:1836
msgid "make first mail a reply to <message-id>"
msgstr "dùng thÆ° đầu tiên để trả lá»i <message-id>"
-#: builtin/log.c:1818 builtin/log.c:1821
+#: builtin/log.c:1837 builtin/log.c:1840
msgid "boundary"
msgstr "ranh giá»›i"
-#: builtin/log.c:1819
+#: builtin/log.c:1838
msgid "attach the patch"
msgstr "đính kèm miếng vá"
-#: builtin/log.c:1822
+#: builtin/log.c:1841
msgid "inline the patch"
msgstr "dùng miếng vá làm nội dung"
-#: builtin/log.c:1826
+#: builtin/log.c:1845
msgid "enable message threading, styles: shallow, deep"
msgstr "cho phép luồng lá»i nhắn, kiểu: “shallowâ€, “deepâ€"
-#: builtin/log.c:1828
+#: builtin/log.c:1847
msgid "signature"
msgstr "chữ ký"
-#: builtin/log.c:1829
+#: builtin/log.c:1848
msgid "add a signature"
msgstr "thêm chữ ký"
-#: builtin/log.c:1830
+#: builtin/log.c:1849
msgid "base-commit"
msgstr "lần_chuyển_giao_ná»n"
-#: builtin/log.c:1831
+#: builtin/log.c:1850
msgid "add prerequisite tree info to the patch series"
msgstr "add trÆ°á»›c hết đòi há»i thông tin cây tá»›i sê-ri miếng vá"
-#: builtin/log.c:1834
+#: builtin/log.c:1853
msgid "add a signature from a file"
msgstr "thêm chữ ký từ một tập tin"
-#: builtin/log.c:1835
+#: builtin/log.c:1854
msgid "don't print the patch filenames"
msgstr "không hiển thị các tên tập tin của miếng vá"
-#: builtin/log.c:1837
+#: builtin/log.c:1856
msgid "show progress while generating patches"
msgstr "hiển thị bộ đo tiến triển trong khi tạo các miếng vá"
-#: builtin/log.c:1839
+#: builtin/log.c:1858
msgid "show changes against <rev> in cover letter or single patch"
msgstr ""
"hiển thị các thay đổi dá»±a trên <rev> trong các chữ bao bá»c hoặc miếng vá Ä‘Æ¡n"
-#: builtin/log.c:1842
+#: builtin/log.c:1861
msgid "show changes against <refspec> in cover letter or single patch"
msgstr ""
"hiển thị các thay đổi dá»±a trên <refspec> trong các chữ bao bá»c hoặc miếng vá "
"Ä‘Æ¡n"
-#: builtin/log.c:1844 builtin/range-diff.c:28
+#: builtin/log.c:1863 builtin/range-diff.c:28
msgid "percentage by which creation is weighted"
msgstr "tỷ lệ phần trăm theo cái tạo là weighted"
-#: builtin/log.c:1931
+#: builtin/log.c:1953
#, c-format
msgid "invalid ident line: %s"
msgstr "dòng định danh không hợp lệ: %s"
-#: builtin/log.c:1956
+#: builtin/log.c:1978
msgid "--name-only does not make sense"
msgstr "--name-only không hợp lý"
-#: builtin/log.c:1958
+#: builtin/log.c:1980
msgid "--name-status does not make sense"
msgstr "--name-status không hợp lý"
-#: builtin/log.c:1960
+#: builtin/log.c:1982
msgid "--check does not make sense"
msgstr "--check không hợp lý"
-#: builtin/log.c:2104
+#: builtin/log.c:1984
+msgid "--remerge-diff does not make sense"
+msgstr "--remerge-diff không hợp lý"
+
+#: builtin/log.c:2129
msgid "--interdiff requires --cover-letter or single patch"
msgstr "--interdiff cần --cover-letter hoặc vá đơn"
-#: builtin/log.c:2108
+#: builtin/log.c:2133
msgid "Interdiff:"
msgstr "Interdiff:"
-#: builtin/log.c:2109
+#: builtin/log.c:2134
#, c-format
msgid "Interdiff against v%d:"
msgstr "Interdiff dựa trên v%d:"
-#: builtin/log.c:2119
+#: builtin/log.c:2144
msgid "--range-diff requires --cover-letter or single patch"
msgstr "--range-diff yêu cầu --cover-letter hoặc miếng vá đơn"
-#: builtin/log.c:2127
+#: builtin/log.c:2152
msgid "Range-diff:"
msgstr "Range-diff:"
-#: builtin/log.c:2128
+#: builtin/log.c:2153
#, c-format
msgid "Range-diff against v%d:"
msgstr "Range-diff dựa trên v%d:"
-#: builtin/log.c:2139
+#: builtin/log.c:2164
#, c-format
msgid "unable to read signature file '%s'"
msgstr "không thể Ä‘á»c tập tin chữ ký “%sâ€"
-#: builtin/log.c:2175
+#: builtin/log.c:2200
msgid "Generating patches"
msgstr "Äang tạo các miếng vá"
-#: builtin/log.c:2219
+#: builtin/log.c:2244
msgid "failed to create output files"
msgstr "gặp lỗi khi tạo các tập tin kết xuất"
-#: builtin/log.c:2279
+#: builtin/log.c:2304
msgid "git cherry [-v] [<upstream> [<head> [<limit>]]]"
msgstr "git cherry [-v] [<thượng-nguồn> [<đầu> [<giới-hạn>]]]"
-#: builtin/log.c:2333
+#: builtin/log.c:2358
#, c-format
msgid ""
"Could not find a tracked remote branch, please specify <upstream> manually.\n"
@@ -17617,10 +18105,6 @@ msgstr "thêm loại trừ tiêu chuẩn kiểu git"
msgid "make the output relative to the project top directory"
msgstr "làm cho kết xuất liên quan đến thư mục ở mức cao nhất (gốc) của dự án"
-#: builtin/ls-files.c:667
-msgid "recurse through submodules"
-msgstr "đệ quy xuyên qua mô-đun con"
-
#: builtin/ls-files.c:669
msgid "if any <file> is not in the index, treat this as an error"
msgstr "nếu <tập tin> bất kỳ không ở trong bảng mục lục, xử lý nó như một lỗi"
@@ -17660,7 +18144,7 @@ msgstr ""
msgid "do not print remote URL"
msgstr "không hiển thị URL máy chủ"
-#: builtin/ls-remote.c:61 builtin/ls-remote.c:63 builtin/rebase.c:1103
+#: builtin/ls-remote.c:61 builtin/ls-remote.c:63 builtin/rebase.c:1131
msgid "exec"
msgstr "thá»±c thi"
@@ -17692,42 +18176,71 @@ msgstr "thoát với mã là 2 nếu không tìm thấy tham chiếu nào khớp
msgid "show underlying ref in addition to the object pointed by it"
msgstr "hiển thị tham chiếu nằm dưới để thêm vào đối tượng được chỉ bởi nó"
-#: builtin/ls-tree.c:30
+#: builtin/ls-tree.c:36
msgid "git ls-tree [<options>] <tree-ish> [<path>...]"
msgstr "git ls-tree [<các tùy chá»n>] <tree-ish> [</Ä‘Æ°á»ng/dẫn>…]"
-#: builtin/ls-tree.c:128
+#: builtin/ls-tree.c:54
+#, c-format
+msgid "could not get object info about '%s'"
+msgstr "không thể lấy thông tin đối tượng vỠ“%sâ€"
+
+#: builtin/ls-tree.c:79
+#, c-format
+msgid "bad ls-tree format: element '%s' does not start with '('"
+msgstr "định dạng ls-tree sai: phần tá»­ “%s†không bắt đầu bằng “(â€"
+
+#: builtin/ls-tree.c:83
+#, c-format
+msgid "bad ls-tree format: element '%s' does not end in ')'"
+msgstr "định dạng ls-tree sai: phần tá»­ “%s†không bắt kết thúc bằng “)â€"
+
+#: builtin/ls-tree.c:109
+#, c-format
+msgid "bad ls-tree format: %%%.*s"
+msgstr "định dạng ls-tree sai: %%%.*s"
+
+#: builtin/ls-tree.c:336
msgid "only show trees"
msgstr "chỉ hiển thị các tree"
-#: builtin/ls-tree.c:130
+#: builtin/ls-tree.c:338
msgid "recurse into subtrees"
msgstr "đệ quy vào các thư mục con"
-#: builtin/ls-tree.c:132
+#: builtin/ls-tree.c:340
msgid "show trees when recursing"
msgstr "hiển thị cây khi đệ quy"
-#: builtin/ls-tree.c:135
+#: builtin/ls-tree.c:343
msgid "terminate entries with NUL byte"
msgstr "chấm dứt mục tin với byte NUL"
-#: builtin/ls-tree.c:136
+#: builtin/ls-tree.c:344
msgid "include object size"
msgstr "gồm cả kích thước đối tượng"
-#: builtin/ls-tree.c:138 builtin/ls-tree.c:140
+#: builtin/ls-tree.c:346 builtin/ls-tree.c:348
msgid "list only filenames"
msgstr "chỉ liệt kê tên tập tin"
-#: builtin/ls-tree.c:143
+#: builtin/ls-tree.c:350
+msgid "list only objects"
+msgstr "chỉ liệt kê các đối tượng"
+
+#: builtin/ls-tree.c:353
msgid "use full path names"
msgstr "dùng tên Ä‘Æ°á»ng dẫn đầy đủ"
-#: builtin/ls-tree.c:145
+#: builtin/ls-tree.c:355
msgid "list entire tree; not just current directory (implies --full-name)"
msgstr "liệt kê cây mục tin; không chỉ thư mục hiện hành (ngụ ý --full-name)"
+#: builtin/ls-tree.c:391
+msgid "--format can't be combined with other format-altering options"
+msgstr ""
+"--format không thể được tổ hợp cùng vá»›i các tùy chá»n format-alterin khác"
+
#. TRANSLATORS: keep <> in "<" mail ">" info.
#: builtin/mailinfo.c:14
msgid "git mailinfo [<options>] <msg> <patch> < mail >info"
@@ -17777,7 +18290,11 @@ msgstr "hành động khi CR được trích dẫn được tìm thấy"
msgid "use headers in message's body"
msgstr "sử dụng phần đầu trong nội dung thư"
-#: builtin/mailsplit.c:239
+#: builtin/mailsplit.c:227
+msgid "reading patches from stdin/tty..."
+msgstr "Ä‘á»c các miếng vá từ đầu vào tiêu chuẩn stdin/tty..."
+
+#: builtin/mailsplit.c:242
#, c-format
msgid "empty mbox: '%s'"
msgstr "mbox trống rá»—ng: “%sâ€"
@@ -17802,23 +18319,23 @@ msgstr "git merge-base --is-ancestor <commit> <lần_chuyển_giao>"
msgid "git merge-base --fork-point <ref> [<commit>]"
msgstr "git merge-base --fork-point <tham-chiếu> [<lần_chuyển_giao>]"
-#: builtin/merge-base.c:143
+#: builtin/merge-base.c:144
msgid "output all common ancestors"
msgstr "xuất ra tất cả các ông bà, tổ tiên chung"
-#: builtin/merge-base.c:145
+#: builtin/merge-base.c:146
msgid "find ancestors for a single n-way merge"
msgstr "tìm tổ tiên của hòa trộn n-way đơn"
-#: builtin/merge-base.c:147
+#: builtin/merge-base.c:148
msgid "list revs not reachable from others"
msgstr "liệt kê các “rev†mà nó không thể Ä‘á»c được từ cái khác"
-#: builtin/merge-base.c:149
+#: builtin/merge-base.c:150
msgid "is the first one ancestor of the other?"
msgstr "là cha mẹ đầu tiên của cái khác?"
-#: builtin/merge-base.c:151
+#: builtin/merge-base.c:152
msgid "find where <commit> forked from reflog of <ref>"
msgstr "tìm xem <commit> được rẽ nhánh ở đâu từ reflog của <th.chiếu>"
@@ -17965,7 +18482,7 @@ msgid "verify that the named commit has a valid GPG signature"
msgstr "thẩm tra xem lần chuyển giao có tên đó có chữ ký GPG hợp lệ hay không"
#: builtin/merge.c:280 builtin/notes.c:785 builtin/pull.c:172
-#: builtin/rebase.c:1117 builtin/revert.c:114
+#: builtin/rebase.c:1145 builtin/revert.c:114
msgid "strategy"
msgstr "chiến lược"
@@ -18103,75 +18620,75 @@ msgstr ""
"Những dòng được bắt đầu bằng “%c†sẽ được bỠqua, và nếu phần chú\n"
"thích rỗng sẽ hủy bỠlần chuyển giao.\n"
-#: builtin/merge.c:894
+#: builtin/merge.c:900
msgid "Empty commit message."
msgstr "Chú thích của lần commit (chuyển giao) bị trống rỗng."
-#: builtin/merge.c:909
+#: builtin/merge.c:915
#, c-format
msgid "Wonderful.\n"
msgstr "Tuyệt vá»i.\n"
-#: builtin/merge.c:970
+#: builtin/merge.c:976
#, c-format
msgid "Automatic merge failed; fix conflicts and then commit the result.\n"
msgstr ""
"Việc tự động hòa trộn gặp lỗi; hãy sửa các xung đột sau đó chuyển giao kết "
"quả.\n"
-#: builtin/merge.c:1009
+#: builtin/merge.c:1015
msgid "No current branch."
msgstr "Không phải nhánh hiện hành."
-#: builtin/merge.c:1011
+#: builtin/merge.c:1017
msgid "No remote for the current branch."
msgstr "Không có máy chủ cho nhánh hiện hành."
-#: builtin/merge.c:1013
+#: builtin/merge.c:1019
msgid "No default upstream defined for the current branch."
msgstr "Không có thượng nguồn mặc định được định nghĩa cho nhánh hiện hành."
-#: builtin/merge.c:1018
+#: builtin/merge.c:1024
#, c-format
msgid "No remote-tracking branch for %s from %s"
msgstr "Không nhánh mạng theo dõi cho %s từ %s"
-#: builtin/merge.c:1075
+#: builtin/merge.c:1081
#, c-format
msgid "Bad value '%s' in environment '%s'"
msgstr "Giá trị sai “%s†trong biến môi trÆ°á»ng “%sâ€"
-#: builtin/merge.c:1177
+#: builtin/merge.c:1183
#, c-format
msgid "not something we can merge in %s: %s"
msgstr "không phải là một thứ gì đó mà chúng tôi có thể hòa trộn trong %s: %s"
-#: builtin/merge.c:1211
+#: builtin/merge.c:1217
msgid "not something we can merge"
msgstr "không phải là thứ gì đó mà chúng tôi có thể hòa trộn"
-#: builtin/merge.c:1324
+#: builtin/merge.c:1330
msgid "--abort expects no arguments"
msgstr "--abort không nhận các đối số"
-#: builtin/merge.c:1328
+#: builtin/merge.c:1334
msgid "There is no merge to abort (MERGE_HEAD missing)."
msgstr ""
"Ở đây không có lần hòa trộn nào được hủy bỠgiữa chừng cả (thiếu MERGE_HEAD)."
-#: builtin/merge.c:1346
+#: builtin/merge.c:1352
msgid "--quit expects no arguments"
msgstr "--quit không nhận các đối số"
-#: builtin/merge.c:1359
+#: builtin/merge.c:1365
msgid "--continue expects no arguments"
msgstr "--continue không nhận đối số"
-#: builtin/merge.c:1363
+#: builtin/merge.c:1369
msgid "There is no merge in progress (MERGE_HEAD missing)."
msgstr "Ở đây không có lần hòa trộn nào đang được xử lý cả (thiếu MERGE_HEAD)."
-#: builtin/merge.c:1379
+#: builtin/merge.c:1385
msgid ""
"You have not concluded your merge (MERGE_HEAD exists).\n"
"Please, commit your changes before you merge."
@@ -18179,7 +18696,7 @@ msgstr ""
"Bạn chưa kết thúc việc hòa trộn (MERGE_HEAD vẫn tồn tại).\n"
"Hãy chuyển giao các thay đổi trước khi bạn có thể hòa trộn."
-#: builtin/merge.c:1386
+#: builtin/merge.c:1392
msgid ""
"You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists).\n"
"Please, commit your changes before you merge."
@@ -18187,88 +18704,84 @@ msgstr ""
"Bạn chưa kết thúc việc cherry-pick (CHERRY_PICK_HEAD vẫn tồn tại).\n"
"Hãy chuyển giao các thay đổi trước khi bạn có thể hòa trộn."
-#: builtin/merge.c:1389
+#: builtin/merge.c:1395
msgid "You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists)."
msgstr "Bạn chưa kết thúc việc cherry-pick (CHERRY_PICK_HEAD vẫn tồn tại)."
-#: builtin/merge.c:1421
+#: builtin/merge.c:1427
msgid "No commit specified and merge.defaultToUpstream not set."
msgstr "Không chỉ ra lần chuyển giao và merge.defaultToUpstream chưa được đặt."
-#: builtin/merge.c:1438
+#: builtin/merge.c:1444
msgid "Squash commit into empty head not supported yet"
msgstr "Squash commit vào một head trống rỗng vẫn chưa được hỗ trợ"
-#: builtin/merge.c:1440
+#: builtin/merge.c:1446
msgid "Non-fast-forward commit does not make sense into an empty head"
msgstr ""
"Chuyển giao không-chuyển-tiếp-nhanh không hợp lý ở trong một head trống rỗng"
-#: builtin/merge.c:1445
+#: builtin/merge.c:1451
#, c-format
msgid "%s - not something we can merge"
msgstr "%s - không phải là thứ gì đó mà chúng tôi có thể hòa trộn"
-#: builtin/merge.c:1447
+#: builtin/merge.c:1453
msgid "Can merge only exactly one commit into empty head"
msgstr ""
"Không thể hòa trộn một cách đúng đắn một lần chuyển giao vào một head rỗng"
-#: builtin/merge.c:1534
+#: builtin/merge.c:1540
msgid "refusing to merge unrelated histories"
msgstr "từ chối hòa trộn lịch sử không liên quan"
-#: builtin/merge.c:1553
+#: builtin/merge.c:1559
#, c-format
msgid "Updating %s..%s\n"
msgstr "Äang cập nhật %s..%s\n"
-#: builtin/merge.c:1601
+#: builtin/merge.c:1606
#, c-format
msgid "Trying really trivial in-index merge...\n"
msgstr "Äang thá»­ hòa trá»™n kiểu “trivial in-indexâ€â€¦\n"
-#: builtin/merge.c:1608
+#: builtin/merge.c:1613
#, c-format
msgid "Nope.\n"
msgstr "Không.\n"
-#: builtin/merge.c:1667 builtin/merge.c:1733
+#: builtin/merge.c:1671 builtin/merge.c:1737
#, c-format
msgid "Rewinding the tree to pristine...\n"
msgstr "Äang tua lại cây thành thá»i xa xÆ°a…\n"
-#: builtin/merge.c:1671
+#: builtin/merge.c:1675
#, c-format
msgid "Trying merge strategy %s...\n"
msgstr "Äang thá»­ chiến lược hòa trá»™n %s…\n"
-#: builtin/merge.c:1723
+#: builtin/merge.c:1727
#, c-format
msgid "No merge strategy handled the merge.\n"
msgstr "Không có chiến lược hòa trộn nào được nắm giữ (handle) sự hòa trộn.\n"
-#: builtin/merge.c:1725
+#: builtin/merge.c:1729
#, c-format
msgid "Merge with strategy %s failed.\n"
msgstr "Hòa trộn với chiến lược %s gặp lỗi.\n"
-#: builtin/merge.c:1735
+#: builtin/merge.c:1739
#, c-format
msgid "Using the %s strategy to prepare resolving by hand.\n"
msgstr "Sử dụng chiến lược %s để chuẩn bị giải quyết bằng tay.\n"
-#: builtin/merge.c:1749
+#: builtin/merge.c:1753
#, c-format
msgid "Automatic merge went well; stopped before committing as requested\n"
msgstr ""
"Hòa trộn tự động đã trở nên tốt; bị dừng trước khi việc chuyển giao được yêu "
"cầu\n"
-#: builtin/mktag.c:10
-msgid "git mktag"
-msgstr "git mktag"
-
#: builtin/mktag.c:27
#, c-format
msgid "warning: tag input does not pass fsck: %s"
@@ -18294,24 +18807,20 @@ msgstr "không thể Ä‘á»c đối tượng được đánh thẻ %s"
msgid "object '%s' tagged as '%s', but is a '%s' type"
msgstr "đối tượng %s được đánh thẻ là %s, không phải là kiểu %s"
-#: builtin/mktag.c:98
+#: builtin/mktag.c:97
msgid "tag on stdin did not pass our strict fsck check"
msgstr ""
"thẻ trên stdin đã không vượt qua kiểm tra fsck nghiêm ngặt của chúng tôi"
-#: builtin/mktag.c:101
+#: builtin/mktag.c:100
msgid "tag on stdin did not refer to a valid object"
msgstr ""
"thẻ trên đầu vào tiêu chuẩn không chỉ đến một lần chuyển giao hợp lệ nào cả"
-#: builtin/mktag.c:104 builtin/tag.c:242
+#: builtin/mktag.c:103 builtin/tag.c:243
msgid "unable to write tag file"
msgstr "không thể ghi vào tập tin lưu thẻ"
-#: builtin/mktree.c:66
-msgid "git mktree [-z] [--missing] [--batch]"
-msgstr "git mktree [-z] [--missing] [--batch]"
-
#: builtin/mktree.c:154
msgid "input is NUL terminated"
msgstr "đầu vào được chấm dứt bởi NUL"
@@ -18468,53 +18977,57 @@ msgstr "%s, nguồn=%s, đích=%s"
msgid "Renaming %s to %s\n"
msgstr "Äổi tên %s thành %s\n"
-#: builtin/mv.c:314 builtin/remote.c:790 builtin/repack.c:857
+#: builtin/mv.c:314 builtin/remote.c:812 builtin/repack.c:861
#, c-format
msgid "renaming '%s' failed"
msgstr "gặp lá»—i khi đổi tên “%sâ€"
-#: builtin/name-rev.c:474
+#: builtin/name-rev.c:524
msgid "git name-rev [<options>] <commit>..."
msgstr "git name-rev [<các tùy chá»n>] <commit>…"
-#: builtin/name-rev.c:475
+#: builtin/name-rev.c:525
msgid "git name-rev [<options>] --all"
msgstr "git name-rev [<các tùy chá»n>] --all"
-#: builtin/name-rev.c:476
-msgid "git name-rev [<options>] --stdin"
-msgstr "git name-rev [<các tùy chá»n>] --stdin"
+#: builtin/name-rev.c:526
+msgid "git name-rev [<options>] --annotate-stdin"
+msgstr "git name-rev [<các tùy chá»n>] --annotate-stdin"
-#: builtin/name-rev.c:533
+#: builtin/name-rev.c:583
msgid "print only ref-based names (no object names)"
msgstr "chỉ hiển thị các tham chiếu cơ sở (không phải các tên đối tượng)"
-#: builtin/name-rev.c:534
+#: builtin/name-rev.c:584
msgid "only use tags to name the commits"
msgstr "chỉ dùng các thẻ để đặt tên cho các lần chuyển giao"
-#: builtin/name-rev.c:536
+#: builtin/name-rev.c:586
msgid "only use refs matching <pattern>"
msgstr "chỉ sử dụng các tham chiếu khớp với <mẫu>"
-#: builtin/name-rev.c:538
+#: builtin/name-rev.c:588
msgid "ignore refs matching <pattern>"
msgstr "bỠqua các tham chiếu khớp với <mẫu>"
-#: builtin/name-rev.c:540
+#: builtin/name-rev.c:590
msgid "list all commits reachable from all refs"
msgstr ""
"liệt kê tất cả các lần chuyển giao có thể Ä‘á»c được từ tất cả các tham chiếu"
-#: builtin/name-rev.c:541
-msgid "read from stdin"
-msgstr "Ä‘á»c từ đầu vào tiêu chuẩn"
+#: builtin/name-rev.c:591
+msgid "deprecated: use annotate-stdin instead"
+msgstr "đã lạc hậu: hãy dùng annotate-stdin để thay thế"
-#: builtin/name-rev.c:542
+#: builtin/name-rev.c:592
+msgid "annotate text from stdin"
+msgstr "chú giải chữ từ đầu vào tiêu chuẩn stdin"
+
+#: builtin/name-rev.c:593
msgid "allow to print `undefined` names (default)"
msgstr "cho phép in các tên “chưa định nghĩa†(mặc định)"
-#: builtin/name-rev.c:548
+#: builtin/name-rev.c:599
msgid "dereference tags in the input (internal use)"
msgstr "bãi bỠtham chiếu các thẻ trong đầu vào (dùng nội bộ)"
@@ -18556,14 +19069,6 @@ msgid ""
msgstr ""
"git notes [--ref <notes-ref>] merge [-v | -q] [-s <chiến-lược> ] <notes-ref>"
-#: builtin/notes.c:35
-msgid "git notes merge --commit [-v | -q]"
-msgstr "git notes merge --commit [-v | -q]"
-
-#: builtin/notes.c:36
-msgid "git notes merge --abort [-v | -q]"
-msgstr "git notes merge --abort [-v | -q]"
-
#: builtin/notes.c:37
msgid "git notes [--ref <notes-ref>] remove [<object>...]"
msgstr "git notes [--ref <notes-ref>] remove [<đối-tượng>…]"
@@ -18624,10 +19129,6 @@ msgstr "git notes remove [<đối tượng>]"
msgid "git notes prune [<options>]"
msgstr "git notes prune [<các tùy chá»n>]"
-#: builtin/notes.c:92
-msgid "git notes get-ref"
-msgstr "git notes get-ref"
-
#: builtin/notes.c:97
msgid "Write/edit the notes for the following object:"
msgstr "Ghi hay sửa ghi chú cho đối tượng sau đây:"
@@ -18660,7 +19161,7 @@ msgstr "không thể ghi đối tượng ghi chú (note)"
msgid "the note contents have been left in %s"
msgstr "nội dung ghi chú còn lại %s"
-#: builtin/notes.c:240 builtin/tag.c:581
+#: builtin/notes.c:240 builtin/tag.c:582
#, c-format
msgid "could not open or read '%s'"
msgstr "không thể mở hay Ä‘á»c “%sâ€"
@@ -18700,13 +19201,6 @@ msgstr "gặp lá»—i khi sao chép ghi chú (note) từ “%s†sang “%sâ€"
msgid "refusing to %s notes in %s (outside of refs/notes/)"
msgstr "từ chối %s ghi chú trong %s (nằm ngoài refs/notes/)"
-#: builtin/notes.c:374 builtin/notes.c:429 builtin/notes.c:507
-#: builtin/notes.c:519 builtin/notes.c:596 builtin/notes.c:663
-#: builtin/notes.c:813 builtin/notes.c:965 builtin/notes.c:987
-#: builtin/prune-packed.c:25 builtin/receive-pack.c:2487 builtin/tag.c:591
-msgid "too many arguments"
-msgstr "có quá nhiá»u đối số"
-
#: builtin/notes.c:387 builtin/notes.c:676
#, c-format
msgid "no note found for object %s."
@@ -18895,7 +19389,7 @@ msgstr ""
"chuyển giao kết quả bằng “git notes merge --commitâ€, hoặc bãi bá» việc hòa "
"trá»™n bằng “git notes merge --abortâ€.\n"
-#: builtin/notes.c:899 builtin/tag.c:594
+#: builtin/notes.c:899 builtin/tag.c:595
#, c-format
msgid "Failed to resolve '%s' as a valid ref."
msgstr "Gặp lỗi khi phân giải “%s†như là một tham chiếu hợp lệ."
@@ -18913,7 +19407,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:956 builtin/prune.c:144 builtin/worktree.c:147
+#: builtin/notes.c:956 builtin/prune.c:144 builtin/worktree.c:148
msgid "do not remove, show only"
msgstr "không gỡ bá», chỉ hiển thị"
@@ -18929,7 +19423,7 @@ msgstr "notes-ref"
msgid "use notes from <notes-ref>"
msgstr "dùng “notes†từ <notes-ref>"
-#: builtin/notes.c:1036 builtin/stash.c:1818
+#: builtin/notes.c:1036 builtin/stash.c:1802
#, c-format
msgid "unknown subcommand: %s"
msgstr "không hiểu câu lệnh con: %s"
@@ -18948,7 +19442,7 @@ 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:572
+#: builtin/pack-objects.c:570
#, c-format
msgid ""
"write_reuse_object: could not locate %s, expected at offset %<PRIuMAX> in "
@@ -18957,112 +19451,112 @@ msgstr ""
"write_reuse_object: không thể phân bổ %s, cần tại vị trí bù %<PRIuMAX> trong "
"gói %s"
-#: builtin/pack-objects.c:580
+#: builtin/pack-objects.c:578
#, 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:591
+#: builtin/pack-objects.c:589
#, c-format
msgid "corrupt packed object for %s"
msgstr "đối tượng đã đóng gói sai há»ng cho %s"
-#: builtin/pack-objects.c:722
+#: builtin/pack-objects.c:720
#, c-format
msgid "recursive delta detected for object %s"
msgstr "dò thấy delta đệ quy cho đối tượng %s"
-#: builtin/pack-objects.c:941
+#: builtin/pack-objects.c:939
#, c-format
msgid "ordered %u objects, expected %<PRIu32>"
msgstr "đã sắp xếp %u đối tượng, cần %<PRIu32>"
-#: builtin/pack-objects.c:1036
+#: builtin/pack-objects.c:1034
#, c-format
msgid "expected object at offset %<PRIuMAX> in pack %s"
msgstr "cần đối tượng tại khoảng bù %<PRIuMAX> trong gói: %s"
-#: builtin/pack-objects.c:1160
+#: builtin/pack-objects.c:1158
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:1173
+#: builtin/pack-objects.c:1171
msgid "Writing objects"
msgstr "Äang ghi lại các đối tượng"
-#: builtin/pack-objects.c:1235 builtin/update-index.c:90
+#: builtin/pack-objects.c:1243 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:1268
+#: builtin/pack-objects.c:1276
msgid "failed to write bitmap index"
msgstr "gặp lỗi khi ghi mục lục ánh xạ"
-#: builtin/pack-objects.c:1294
+#: builtin/pack-objects.c:1302
#, c-format
msgid "wrote %<PRIu32> objects while expecting %<PRIu32>"
msgstr "đã ghi %<PRIu32> đối tượng trong khi cần %<PRIu32>"
-#: builtin/pack-objects.c:1536
+#: builtin/pack-objects.c:1544
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:1984
+#: builtin/pack-objects.c:1992
#, 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:1993
+#: builtin/pack-objects.c:2001
#, 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:2274
+#: builtin/pack-objects.c:2282
msgid "Counting objects"
msgstr "Äang đếm các đối tượng"
-#: builtin/pack-objects.c:2439
+#: builtin/pack-objects.c:2447
#, 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:2509 builtin/pack-objects.c:2525
-#: builtin/pack-objects.c:2535
+#: builtin/pack-objects.c:2517 builtin/pack-objects.c:2533
+#: builtin/pack-objects.c:2543
#, c-format
msgid "object %s cannot be read"
msgstr "không thể Ä‘á»c đối tượng %s"
-#: builtin/pack-objects.c:2512 builtin/pack-objects.c:2539
+#: builtin/pack-objects.c:2520 builtin/pack-objects.c:2547
#, 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:2549
+#: builtin/pack-objects.c:2557
msgid "suboptimal pack - out of memory"
msgstr "suboptimal pack - hết bộ nhớ"
-#: builtin/pack-objects.c:2864
+#: builtin/pack-objects.c:2872
#, 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:3003
+#: builtin/pack-objects.c:3011
#, 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:3089
+#: builtin/pack-objects.c:3097
msgid "Compressing objects"
msgstr "Äang nén các đối tượng"
-#: builtin/pack-objects.c:3095
+#: builtin/pack-objects.c:3103
msgid "inconsistency with delta count"
msgstr "mâu thuẫn với số lượng delta"
-#: builtin/pack-objects.c:3174
+#: builtin/pack-objects.c:3182
#, c-format
msgid ""
"value of uploadpack.blobpackfileuri must be of the form '<object-hash> <pack-"
@@ -19071,7 +19565,7 @@ msgstr ""
"giá trị của uploadpack.blobpackfileuri phải có dạng “<object-hash> <pack-"
"hash> <uri>†(nhận “%sâ€)"
-#: builtin/pack-objects.c:3177
+#: builtin/pack-objects.c:3185
#, c-format
msgid ""
"object already configured in another uploadpack.blobpackfileuri (got '%s')"
@@ -19079,18 +19573,18 @@ msgstr ""
"đối tượng đã được cấu hình trong một uploadpack.blobpackfileuri khác (đã "
"nhận “%sâ€)"
-#: builtin/pack-objects.c:3212
+#: builtin/pack-objects.c:3220
#, c-format
msgid "could not get type of object %s in pack %s"
msgstr "không thể lấy kiểu của đối tượng “%s†trong gói “%sâ€"
-#: builtin/pack-objects.c:3340 builtin/pack-objects.c:3351
-#: builtin/pack-objects.c:3365
+#: builtin/pack-objects.c:3348 builtin/pack-objects.c:3359
+#: builtin/pack-objects.c:3373
#, c-format
msgid "could not find pack '%s'"
msgstr "không thể tìm thấy gói “%sâ€"
-#: builtin/pack-objects.c:3408
+#: builtin/pack-objects.c:3416
#, c-format
msgid ""
"expected edge object ID, got garbage:\n"
@@ -19099,7 +19593,7 @@ msgstr ""
"cần ID đối tượng cạnh, nhận được rác:\n"
" %s"
-#: builtin/pack-objects.c:3414
+#: builtin/pack-objects.c:3422
#, c-format
msgid ""
"expected object ID, got garbage:\n"
@@ -19108,244 +19602,240 @@ msgstr ""
"cần ID đối tượng, nhận được rác:\n"
" %s"
-#: builtin/pack-objects.c:3507
-msgid "invalid value for --missing"
-msgstr "giá trị cho --missing không hợp lệ"
-
-#: builtin/pack-objects.c:3532 builtin/pack-objects.c:3619
+#: builtin/pack-objects.c:3540 builtin/pack-objects.c:3627
msgid "cannot open pack index"
msgstr "không thể mở mục lục của gói"
-#: builtin/pack-objects.c:3541
+#: builtin/pack-objects.c:3549
#, 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:3627
+#: builtin/pack-objects.c:3635
msgid "unable to force loose object"
msgstr "không thể buộc mất đối tượng"
-#: builtin/pack-objects.c:3757
+#: builtin/pack-objects.c:3763
#, c-format
msgid "not a rev '%s'"
msgstr "không phải má»™t rev “%sâ€"
-#: builtin/pack-objects.c:3760 builtin/rev-parse.c:1061
+#: builtin/pack-objects.c:3766 builtin/rev-parse.c:1061
#, c-format
msgid "bad revision '%s'"
msgstr "Ä‘iểm xem xét sai “%sâ€"
-#: builtin/pack-objects.c:3788
+#: builtin/pack-objects.c:3794
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:3841
+#: builtin/pack-objects.c:3847
#, 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:3845
+#: builtin/pack-objects.c:3851
#, c-format
msgid "bad index version '%s'"
msgstr "phiên bản mục lục sai “%sâ€"
-#: builtin/pack-objects.c:3884
+#: builtin/pack-objects.c:3907
msgid "<version>[,<offset>]"
msgstr "<phiên bản>[,offset]"
-#: builtin/pack-objects.c:3885
+#: builtin/pack-objects.c:3908
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:3888
+#: builtin/pack-objects.c:3911
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:3890
+#: builtin/pack-objects.c:3913
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:3892
+#: builtin/pack-objects.c:3915
msgid "ignore packed objects"
msgstr "bỠqua các đối tượng đóng gói"
-#: builtin/pack-objects.c:3894
+#: builtin/pack-objects.c:3917
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:3896
+#: builtin/pack-objects.c:3919
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:3898
+#: builtin/pack-objects.c:3921
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:3900
+#: builtin/pack-objects.c:3923
msgid "reuse existing deltas"
msgstr "dùng lại các delta sẵn có"
-#: builtin/pack-objects.c:3902
+#: builtin/pack-objects.c:3925
msgid "reuse existing objects"
msgstr "dùng lại các đối tượng sẵn có"
-#: builtin/pack-objects.c:3904
+#: builtin/pack-objects.c:3927
msgid "use OFS_DELTA objects"
msgstr "dùng các đối tượng OFS_DELTA"
-#: builtin/pack-objects.c:3906
+#: builtin/pack-objects.c:3929
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:3908
+#: builtin/pack-objects.c:3931
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:3910
+#: builtin/pack-objects.c:3933
msgid "read revision arguments from standard input"
msgstr "Ä‘á»c tham số “revision†từ thiết bị nhập chuẩn"
-#: builtin/pack-objects.c:3912
+#: builtin/pack-objects.c:3935
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:3915
+#: builtin/pack-objects.c:3938
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:3918
+#: builtin/pack-objects.c:3941
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:3921
+#: builtin/pack-objects.c:3944
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:3924
+#: builtin/pack-objects.c:3947
msgid "read packs from stdin"
msgstr "Ä‘á»c các gói từ đầu vào tiêu chuẩn"
-#: builtin/pack-objects.c:3926
+#: builtin/pack-objects.c:3949
msgid "output pack to stdout"
msgstr "xuất gói ra đầu ra tiêu chuẩn"
-#: builtin/pack-objects.c:3928
+#: builtin/pack-objects.c:3951
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:3930
+#: builtin/pack-objects.c:3953
msgid "keep unreachable objects"
msgstr "giữ lại các đối tượng không thể Ä‘á»c được"
-#: builtin/pack-objects.c:3932
+#: builtin/pack-objects.c:3955
msgid "pack loose unreachable objects"
msgstr "pack mất các đối tượng không thể Ä‘á»c được"
-#: builtin/pack-objects.c:3934
+#: builtin/pack-objects.c:3957
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:3937
+#: builtin/pack-objects.c:3960
msgid "use the sparse reachability algorithm"
msgstr "sá»­ dụng thuật toán “sparse reachabilityâ€"
-#: builtin/pack-objects.c:3939
+#: builtin/pack-objects.c:3962
msgid "create thin packs"
msgstr "tạo gói nhẹ"
-#: builtin/pack-objects.c:3941
+#: builtin/pack-objects.c:3964
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:3943
+#: builtin/pack-objects.c:3966
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:3945
+#: builtin/pack-objects.c:3968
msgid "ignore this pack"
msgstr "bỠqua gói này"
-#: builtin/pack-objects.c:3947
+#: builtin/pack-objects.c:3970
msgid "pack compression level"
msgstr "mức nén gói"
-#: builtin/pack-objects.c:3949
+#: builtin/pack-objects.c:3972
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:3951
+#: builtin/pack-objects.c:3974
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:3953
+#: builtin/pack-objects.c:3976
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:3957
+#: builtin/pack-objects.c:3980
msgid "write a bitmap index if possible"
msgstr "ghi mục lục ánh xạ nếu được"
-#: builtin/pack-objects.c:3961
+#: builtin/pack-objects.c:3984
msgid "handling for missing objects"
msgstr "xử lý cho thiếu đối tượng"
-#: builtin/pack-objects.c:3964
+#: builtin/pack-objects.c:3987
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:3966
+#: builtin/pack-objects.c:3989
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:3968
+#: builtin/pack-objects.c:3991
msgid "protocol"
msgstr "giao thức"
-#: builtin/pack-objects.c:3969
+#: builtin/pack-objects.c:3992
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:4002
+#: builtin/pack-objects.c:4027
#, 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:4007
+#: builtin/pack-objects.c:4032
#, c-format
msgid "pack.deltaCacheLimit is too high, forcing %d"
msgstr "pack.deltaCacheLimit là quá cao, ép dùng %d"
-#: builtin/pack-objects.c:4063
+#: builtin/pack-objects.c:4088
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:4065
+#: builtin/pack-objects.c:4090
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:4070
+#: builtin/pack-objects.c:4095
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:4079
+#: builtin/pack-objects.c:4104
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:4081
+#: builtin/pack-objects.c:4106
msgid "cannot use --filter with --stdin-packs"
msgstr "không thể dùng tùy chá»n --filter vá»›i --stdin-packs"
-#: builtin/pack-objects.c:4085
+#: builtin/pack-objects.c:4110
msgid "cannot use internal rev list with --stdin-packs"
msgstr "không thể dùng danh sách rev bên trong với --stdin-packs"
-#: builtin/pack-objects.c:4144
+#: builtin/pack-objects.c:4169
msgid "Enumerating objects"
msgstr "Äánh số các đối tượng"
-#: builtin/pack-objects.c:4180
+#: builtin/pack-objects.c:4210
#, c-format
msgid ""
"Total %<PRIu32> (delta %<PRIu32>), reused %<PRIu32> (delta %<PRIu32>), pack-"
@@ -19380,10 +19870,6 @@ msgstr "đóng gói má»i thứ"
msgid "prune loose refs (default)"
msgstr "prune (cắt cụt) những tham chiếu bị mất (mặc định)"
-#: builtin/prune-packed.c:6
-msgid "git prune-packed [-n | --dry-run] [-q | --quiet]"
-msgstr "git prune-packed [-n | --dry-run] [-q | --quiet]"
-
#: builtin/prune.c:14
msgid "git prune [-n] [-v] [--progress] [--expire <time>] [--] [<head>...]"
msgstr "git prune [-n] [-v] [--progress] [--expire <thá»i-gian>] [--] [<head>…]"
@@ -19404,11 +19890,6 @@ msgstr "giới hạn giao đến các đối tượng nằm ngoài các tập ti
msgid "cannot prune in a precious-objects repo"
msgstr "không thể tỉa bớt trong một kho đối_tượng_vĩ_đại"
-#: builtin/pull.c:45 builtin/pull.c:47
-#, c-format
-msgid "Invalid value for %s: %s"
-msgstr "Giá trị không hợp lệ %s: %s"
-
#: builtin/pull.c:67
msgid "git pull [<options>] [<repository> [<refspec>...]]"
msgstr "git pull [<các tùy chá»n>] [<kho-chứa> [<refspec>…]]"
@@ -19433,7 +19914,7 @@ msgstr "cho phép chuyển-tiếp-nhanh"
msgid "control use of pre-merge-commit and commit-msg hooks"
msgstr "Ä‘iá»u khiển cách dùng các móc (hook) pre-merge-commit và commit-msg"
-#: builtin/pull.c:171 parse-options.h:340
+#: builtin/pull.c:171 parse-options.h:371
msgid "automatically stash/stash pop before and after"
msgstr "tự động stash/stash pop trước và sau"
@@ -19449,11 +19930,6 @@ msgstr "ép buộc ghi đè lên nhánh nội bộ"
msgid "number of submodules pulled in parallel"
msgstr "số lượng mô-Ä‘un-con được đẩy lên đồng thá»i"
-#: builtin/pull.c:321
-#, c-format
-msgid "Invalid value for pull.ff: %s"
-msgstr "Giá trị không hợp lệ cho pull.ff: %s"
-
#: builtin/pull.c:449
msgid ""
"There is no candidate for rebasing against among the refs that you just "
@@ -19490,7 +19966,7 @@ msgstr ""
"theo mặc định cho nhánh hiện tại của bạn, bạn phải chỉ định\n"
"một nhánh trên dòng lệnh."
-#: builtin/pull.c:460 builtin/rebase.c:951
+#: builtin/pull.c:460 builtin/rebase.c:978
msgid "You are not currently on a branch."
msgstr "Hiện tại bạn chẳng ở nhánh nào cả."
@@ -19507,16 +19983,16 @@ msgid "See git-pull(1) for details."
msgstr "Xem git-pull(1) để biết thêm chi tiết."
#: builtin/pull.c:467 builtin/pull.c:473 builtin/pull.c:482
-#: builtin/rebase.c:957
+#: builtin/rebase.c:984
msgid "<remote>"
msgstr "<máy chủ>"
#: builtin/pull.c:467 builtin/pull.c:482 builtin/pull.c:487
-#: contrib/scalar/scalar.c:375
+#: contrib/scalar/scalar.c:374
msgid "<branch>"
msgstr "<nhánh>"
-#: builtin/pull.c:475 builtin/rebase.c:949
+#: builtin/pull.c:475 builtin/rebase.c:976
msgid "There is no tracking information for the current branch."
msgstr "Ở đây không có thông tin theo dõi cho nhánh hiện hành."
@@ -19575,21 +20051,21 @@ msgstr ""
"hoặc --ff-only trên dòng lệnh để ghi đè các mặc định đã cấu hình cho mỗi\n"
"lần gá»i.\n"
-#: builtin/pull.c:1046
+#: builtin/pull.c:1047
msgid "Updating an unborn branch with changes added to the index."
msgstr ""
"Äang cập nhật má»™t nhánh chÆ°a được sinh ra vá»›i các thay đổi được thêm vào "
"bảng mục lục."
-#: builtin/pull.c:1050
+#: builtin/pull.c:1051
msgid "pull with rebase"
msgstr "pull vá»›i rebase"
-#: builtin/pull.c:1051
+#: builtin/pull.c:1052
msgid "please commit or stash them."
msgstr "xin hãy chuyển giao hoặc tạm cất (stash) chúng."
-#: builtin/pull.c:1076
+#: builtin/pull.c:1077
#, c-format
msgid ""
"fetch updated the current branch head.\n"
@@ -19600,7 +20076,7 @@ msgstr ""
"đang chuyển-tiếp-nhanh cây làm việc của bạn từ\n"
"lần chuyển giaot %s."
-#: builtin/pull.c:1082
+#: builtin/pull.c:1083
#, c-format
msgid ""
"Cannot fast-forward your working tree.\n"
@@ -19618,23 +20094,23 @@ msgstr ""
"$ git reset --hard\n"
"để khôi phục lại."
-#: builtin/pull.c:1097
+#: builtin/pull.c:1098
msgid "Cannot merge multiple branches into empty head."
msgstr "Không thể hòa trá»™n nhiá»u nhánh vào trong má»™t head trống rá»—ng."
-#: builtin/pull.c:1102
+#: builtin/pull.c:1103
msgid "Cannot rebase onto multiple branches."
msgstr "Không thể thá»±c hiện lệnh rebase (cải tổ) trên nhiá»u nhánh."
-#: builtin/pull.c:1104
+#: builtin/pull.c:1105
msgid "Cannot fast-forward to multiple branches."
msgstr "Không thể thá»±c hiện chuyển tiếp nhanh trên nhiá»u nhánh."
-#: builtin/pull.c:1119
+#: builtin/pull.c:1120
msgid "Need to specify how to reconcile divergent branches."
msgstr "Caanfchir định làm thế nào để giải quyết các nhánh phân kỳ."
-#: builtin/pull.c:1133
+#: builtin/pull.c:1134
msgid "cannot rebase with locally recorded submodule modifications"
msgstr ""
"không thể cải tổ với các thay đổi mô-đun-con được ghi lại một cách cục bộ"
@@ -19818,7 +20294,7 @@ msgstr "Äang đẩy lên %s\n"
msgid "failed to push some refs to '%s'"
msgstr "gặp lá»—i khi đẩy tá»›i má»™t số tham chiếu đến “%sâ€"
-#: builtin/push.c:544 builtin/submodule--helper.c:3259
+#: builtin/push.c:544 builtin/submodule--helper.c:3377
msgid "repository"
msgstr "kho"
@@ -20058,11 +20534,11 @@ msgstr "gỡ lá»—i “unpack-treesâ€"
msgid "suppress feedback messages"
msgstr "không xuất các thông tin phản hồi"
-#: builtin/read-tree.c:183
+#: builtin/read-tree.c:190
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/rebase.c:35
+#: builtin/rebase.c:36
msgid ""
"git rebase [-i] [options] [--exec <cmd>] [--onto <newbase> | --keep-base] "
"[<upstream> [<branch>]]"
@@ -20070,55 +20546,51 @@ msgstr ""
"git rebase [-i] [các tùy chá»n] [--exec <lệnh>] [--onto <newbase> | --keep-"
"base] [<upstream>] [<nhánh>]]"
-#: builtin/rebase.c:37
+#: builtin/rebase.c:38
msgid ""
"git rebase [-i] [options] [--exec <cmd>] [--onto <newbase>] --root [<branch>]"
msgstr ""
"git rebase [-i] [các tùy chá»n] [--exec <lệnh>] [--onto <newbase>] --root "
"[<nhánh>]"
-#: builtin/rebase.c:39
-msgid "git rebase --continue | --abort | --skip | --edit-todo"
-msgstr "git rebase --continue | --abort | --skip | --edit-todo"
-
-#: builtin/rebase.c:230
+#: builtin/rebase.c:231
#, c-format
msgid "could not create temporary %s"
msgstr "không thể tạo %s tạm thá»i"
-#: builtin/rebase.c:236
+#: builtin/rebase.c:237
msgid "could not mark as interactive"
msgstr "không thể đánh dấu là tương tác"
-#: builtin/rebase.c:289
+#: builtin/rebase.c:290
msgid "could not generate todo list"
msgstr "không thể tạo danh sách cần làm"
-#: builtin/rebase.c:331
+#: builtin/rebase.c:332
msgid "a base commit must be provided with --upstream or --onto"
msgstr "lần chuyển giao cơ sỠphải được chỉ định với --upstream hoặc --onto"
-#: builtin/rebase.c:390
+#: builtin/rebase.c:391
#, c-format
msgid "%s requires the merge backend"
msgstr "%s cần một ứng dụng hòa trộn chạy phía sau"
-#: builtin/rebase.c:432
+#: builtin/rebase.c:433
#, c-format
msgid "could not get 'onto': '%s'"
msgstr "không thể đặt lấy “ontoâ€: “%sâ€"
-#: builtin/rebase.c:449
+#: builtin/rebase.c:450
#, c-format
msgid "invalid orig-head: '%s'"
msgstr "orig-head không hợp lệ: “%sâ€"
-#: builtin/rebase.c:474
+#: builtin/rebase.c:475
#, c-format
msgid "ignoring invalid allow_rerere_autoupdate: '%s'"
msgstr "Ä‘ang bá» qua allow_rerere_autoupdate không hợp lệ: “%sâ€"
-#: builtin/rebase.c:597
+#: builtin/rebase.c:600
msgid ""
"Resolve all conflicts manually, mark them as resolved with\n"
"\"git add/rm <conflicted_files>\", then run \"git rebase --continue\".\n"
@@ -20133,7 +20605,7 @@ msgstr ""
"Äể bãi bá» và quay trở lại trạng thái trÆ°á»›c \"git rebase\", chạy \"git rebase "
"--abort\"."
-#: builtin/rebase.c:680
+#: builtin/rebase.c:685
#, c-format
msgid ""
"\n"
@@ -20152,7 +20624,12 @@ msgstr ""
"\n"
"Kết quả là git không thể cải tổ lại chúng."
-#: builtin/rebase.c:925
+#: builtin/rebase.c:836
+#, c-format
+msgid "could not switch to %s"
+msgstr "không thể chuyển đến %s"
+
+#: builtin/rebase.c:952
#, c-format
msgid ""
"unrecognized empty type '%s'; valid values are \"drop\", \"keep\", and \"ask"
@@ -20161,7 +20638,7 @@ msgstr ""
"kiểu rá»—ng không được nhận dạng “%sâ€; giá trị hợp lệ là \"drop\", \"keep\", "
"và \"ask\"."
-#: builtin/rebase.c:943
+#: builtin/rebase.c:970
#, c-format
msgid ""
"%s\n"
@@ -20178,7 +20655,7 @@ msgstr ""
" git rebase “<nhánh>â€\n"
"\n"
-#: builtin/rebase.c:959
+#: builtin/rebase.c:986
#, c-format
msgid ""
"If you wish to set tracking information for this branch you can do so with:\n"
@@ -20192,185 +20669,185 @@ msgstr ""
" git branch --set-upstream-to=%s/<nhánh> %s\n"
"\n"
-#: builtin/rebase.c:989
+#: builtin/rebase.c:1016
msgid "exec commands cannot contain newlines"
msgstr "các lệnh thực thi không thể chứa các ký tự dòng mới"
-#: builtin/rebase.c:993
+#: builtin/rebase.c:1020
msgid "empty exec command"
msgstr "lệnh thực thi trống rỗng"
-#: builtin/rebase.c:1023
+#: builtin/rebase.c:1051
msgid "rebase onto given branch instead of upstream"
msgstr "cải tổ vào nhánh đã cho thay cho thượng nguồn"
-#: builtin/rebase.c:1025
+#: builtin/rebase.c:1053
msgid "use the merge-base of upstream and branch as the current base"
msgstr ""
"sử dụng các cơ sở hòa trộn của thượng nguồn và nhánh như là cơ sở hiện tại"
-#: builtin/rebase.c:1027
+#: builtin/rebase.c:1055
msgid "allow pre-rebase hook to run"
msgstr "cho phép móc (hook) pre-rebase được chạy"
-#: builtin/rebase.c:1029
+#: builtin/rebase.c:1057
msgid "be quiet. implies --no-stat"
msgstr "hãy im lặng. ý là --no-stat"
-#: builtin/rebase.c:1032
+#: builtin/rebase.c:1060
msgid "display a diffstat of what changed upstream"
msgstr "hiển thị một diffstat của những thay đổi thượng nguồn"
-#: builtin/rebase.c:1035
+#: builtin/rebase.c:1063
msgid "do not show diffstat of what changed upstream"
msgstr "đừng hiển thị diffstat của những thay đổi thượng nguồn"
-#: builtin/rebase.c:1038
+#: builtin/rebase.c:1066
msgid "add a Signed-off-by trailer to each commit"
msgstr "thêm dòng Signed-off-by vào cuối cho từng lần chuyển giao"
-#: builtin/rebase.c:1041
+#: builtin/rebase.c:1069
msgid "make committer date match author date"
msgstr "làm ngày tháng chuyển giao khớp với ngày của tác giả"
-#: builtin/rebase.c:1043
+#: builtin/rebase.c:1071
msgid "ignore author date and use current date"
msgstr "bỠqua ngày tác giả và sử dụng ngày tháng hiện tại"
-#: builtin/rebase.c:1045
+#: builtin/rebase.c:1073
msgid "synonym of --reset-author-date"
msgstr "đồng nghĩa với --reset-author-date"
-#: builtin/rebase.c:1047 builtin/rebase.c:1051
+#: builtin/rebase.c:1075 builtin/rebase.c:1079
msgid "passed to 'git apply'"
msgstr "chuyển cho “git applyâ€"
-#: builtin/rebase.c:1049
+#: builtin/rebase.c:1077
msgid "ignore changes in whitespace"
msgstr "lỠđi sự thay đổi do khoảng trắng gây ra"
-#: builtin/rebase.c:1053 builtin/rebase.c:1056
+#: builtin/rebase.c:1081 builtin/rebase.c:1084
msgid "cherry-pick all commits, even if unchanged"
msgstr ""
"cherry-pick tất cả các lần chuyển giao, ngay cả khi không có thay đổi gì"
-#: builtin/rebase.c:1058
+#: builtin/rebase.c:1086
msgid "continue"
msgstr "tiếp tục"
-#: builtin/rebase.c:1061
+#: builtin/rebase.c:1089
msgid "skip current patch and continue"
msgstr "bỠqua miếng vá hiện hành và tiếp tục"
-#: builtin/rebase.c:1063
+#: builtin/rebase.c:1091
msgid "abort and check out the original branch"
msgstr "bãi bỠvà lấy ra nhánh nguyên thủy"
-#: builtin/rebase.c:1066
+#: builtin/rebase.c:1094
msgid "abort but keep HEAD where it is"
msgstr "bãi bỠnhưng vẫn vẫn giữ HEAD chỉ đến nó"
-#: builtin/rebase.c:1067
+#: builtin/rebase.c:1095
msgid "edit the todo list during an interactive rebase"
msgstr "sửa danh sách cần làm trong quá trình “rebase†(cải tổ) tương tác"
-#: builtin/rebase.c:1070
+#: builtin/rebase.c:1098
msgid "show the patch file being applied or merged"
msgstr "hiển thị miếng vá đã được áp dụng hay hòa trộn"
-#: builtin/rebase.c:1073
+#: builtin/rebase.c:1101
msgid "use apply strategies to rebase"
msgstr "dùng chiến lược áp dụng để cải tổ"
-#: builtin/rebase.c:1077
+#: builtin/rebase.c:1105
msgid "use merging strategies to rebase"
msgstr "dùng chiến lược hòa trộn để cải tổ"
-#: builtin/rebase.c:1081
+#: builtin/rebase.c:1109
msgid "let the user edit the list of commits to rebase"
msgstr "để ngÆ°á»i dùng sá»­a danh sách các lần chuyển giao muốn cải tổ"
-#: builtin/rebase.c:1085
+#: builtin/rebase.c:1113
msgid "(DEPRECATED) try to recreate merges instead of ignoring them"
msgstr "(ÄÃ LẠC HẬU) hay thá»­ tạo lại các hòa trá»™n thay vì bá» qua chúng"
-#: builtin/rebase.c:1090
+#: builtin/rebase.c:1118
msgid "how to handle commits that become empty"
msgstr "xử lý các lần chuyển giao mà nó trở thành trống rỗng như thế nào"
-#: builtin/rebase.c:1093
+#: builtin/rebase.c:1121
msgid "keep commits which start empty"
msgstr "bỠqua các lần chuyển giao mà nó bắt đầu trống rỗng"
-#: builtin/rebase.c:1097
+#: builtin/rebase.c:1125
msgid "move commits that begin with squash!/fixup! under -i"
msgstr "di chuyển các lần chuyển giao mà bắt đầu bằng squash!/fixup! dưới -i"
-#: builtin/rebase.c:1104
+#: builtin/rebase.c:1132
msgid "add exec lines after each commit of the editable list"
msgstr "thêm các dòng thực thi sau từng lần chuyển giao của danh sách sửa được"
-#: builtin/rebase.c:1108
+#: builtin/rebase.c:1136
msgid "allow rebasing commits with empty messages"
msgstr "chấp nhận cải tổ các chuyển giao mà không ghi chú gì"
-#: builtin/rebase.c:1112
+#: builtin/rebase.c:1140
msgid "try to rebase merges instead of skipping them"
msgstr "cố thử cải tổ các hòa trộn thay vì bỠqua chúng"
-#: builtin/rebase.c:1115
+#: builtin/rebase.c:1143
msgid "use 'merge-base --fork-point' to refine upstream"
msgstr "dùng “merge-base --fork-point†để định nghĩa lại thượng nguồn"
-#: builtin/rebase.c:1117
+#: builtin/rebase.c:1145
msgid "use the given merge strategy"
msgstr "dùng chiến lược hòa trộn đã cho"
-#: builtin/rebase.c:1119 builtin/revert.c:115
+#: builtin/rebase.c:1147 builtin/revert.c:115
msgid "option"
msgstr "tùy chá»n"
-#: builtin/rebase.c:1120
+#: builtin/rebase.c:1148
msgid "pass the argument through to the merge strategy"
msgstr "chuyển thao số đến chiến lược hòa trộn"
-#: builtin/rebase.c:1123
+#: builtin/rebase.c:1151
msgid "rebase all reachable commits up to the root(s)"
msgstr "cải tổ tất các các lần chuyển giao cho đến root"
-#: builtin/rebase.c:1126
+#: builtin/rebase.c:1154
msgid "automatically re-schedule any `exec` that fails"
msgstr "lập lịch lại một cách tự động bất kỳ “exec“ bị lỗi"
-#: builtin/rebase.c:1128
+#: builtin/rebase.c:1156
msgid "apply all changes, even those already present upstream"
msgstr ""
"áp dụng má»i thay đổi, ngay cả khi những thứ đó đã sẵn có ở thượng nguồn"
-#: builtin/rebase.c:1149
+#: builtin/rebase.c:1177
msgid "It looks like 'git am' is in progress. Cannot rebase."
msgstr ""
"Hình nhÆ° Ä‘ang trong quá trình thá»±c hiện lệnh “git amâ€. Không thể rebase."
-#: builtin/rebase.c:1180
+#: builtin/rebase.c:1208
msgid "--preserve-merges was replaced by --rebase-merges"
msgstr "--preserve-merges đã bị thay thế bằng --rebase-merges"
-#: builtin/rebase.c:1202
+#: builtin/rebase.c:1230
msgid "No rebase in progress?"
msgstr "Không có tiến trình rebase nào phải không?"
-#: builtin/rebase.c:1206
+#: builtin/rebase.c:1234
msgid "The --edit-todo action can only be used during interactive rebase."
msgstr ""
"Hành động “--edit-todo†chỉ có thể dùng trong quá trình “rebase†(sửa lịch "
"sử) tương tác."
-#: builtin/rebase.c:1229 t/helper/test-fast-rebase.c:122
+#: builtin/rebase.c:1257 t/helper/test-fast-rebase.c:122
msgid "Cannot read HEAD"
msgstr "Không thể Ä‘á»c HEAD"
-#: builtin/rebase.c:1241
+#: builtin/rebase.c:1269
msgid ""
"You must edit all merge conflicts and then\n"
"mark them as resolved using git add"
@@ -20378,16 +20855,16 @@ msgstr ""
"Bạn phải sửa tất cả các lần hòa trộn xung đột và sau\n"
"đó đánh dấu chúng là cần xử lý sử dụng lệnh git add"
-#: builtin/rebase.c:1260
+#: builtin/rebase.c:1287
msgid "could not discard worktree changes"
msgstr "không thể loại bỠcác thay đổi cây-làm-việc"
-#: builtin/rebase.c:1279
+#: builtin/rebase.c:1308
#, c-format
msgid "could not move back to %s"
msgstr "không thể quay trở lại %s"
-#: builtin/rebase.c:1325
+#: builtin/rebase.c:1354
#, c-format
msgid ""
"It seems that there is already a %s directory, and\n"
@@ -20408,124 +20885,119 @@ msgstr ""
"và chạy TÔI lần nữa. TÔI dừng lại trong trÆ°á»ng hợp bạn vẫn\n"
"có một số thứ quý giá ở đây.\n"
-#: builtin/rebase.c:1353
+#: builtin/rebase.c:1382
msgid "switch `C' expects a numerical value"
msgstr "tùy chá»n “%c†cần má»™t giá trị bằng số"
-#: builtin/rebase.c:1395
+#: builtin/rebase.c:1424
#, c-format
msgid "Unknown mode: %s"
msgstr "Không hiểu chế độ: %s"
-#: builtin/rebase.c:1434
+#: builtin/rebase.c:1463
msgid "--strategy requires --merge or --interactive"
msgstr "--strategy cần --merge hay --interactive"
-#: builtin/rebase.c:1463
+#: builtin/rebase.c:1492
msgid "apply options and merge options cannot be used together"
msgstr ""
"không thể tổ hợp các tùy chá»n áp dụng vá»›i các tùy chá»n hòa trá»™n vá»›i nhau"
-#: builtin/rebase.c:1476
+#: builtin/rebase.c:1505
#, c-format
msgid "Unknown rebase backend: %s"
msgstr "Không hiểu ứng dụng chạy phía sau lệnh cải tổ: %s"
-#: builtin/rebase.c:1505
+#: builtin/rebase.c:1534
msgid "--reschedule-failed-exec requires --exec or --interactive"
msgstr "--reschedule-failed-exec cần --exec hay --interactive"
-#: builtin/rebase.c:1536
+#: builtin/rebase.c:1565
#, c-format
msgid "invalid upstream '%s'"
msgstr "thượng nguồn không hợp lệ “%sâ€"
-#: builtin/rebase.c:1542
+#: builtin/rebase.c:1571
msgid "Could not create new root commit"
msgstr "Không thể tạo lần chuyển giao gốc mới"
-#: builtin/rebase.c:1568
+#: builtin/rebase.c:1597
#, c-format
msgid "'%s': need exactly one merge base with branch"
msgstr "“%sâ€: cần chính xác má»™t cÆ¡ sở hòa trá»™n vá»›i nhánh"
-#: builtin/rebase.c:1571
+#: builtin/rebase.c:1600
#, c-format
msgid "'%s': need exactly one merge base"
msgstr "“%sâ€: cần chính xác má»™t cÆ¡ sở hòa trá»™n"
-#: builtin/rebase.c:1580
+#: builtin/rebase.c:1609
#, c-format
msgid "Does not point to a valid commit '%s'"
msgstr "Không chỉ đến má»™t lần chuyển giao không hợp lệ “%sâ€"
-#: builtin/rebase.c:1607
+#: builtin/rebase.c:1636
#, c-format
msgid "no such branch/commit '%s'"
msgstr "không có nhánh/lần chuyển giao “%s†như thế"
-#: builtin/rebase.c:1618 builtin/submodule--helper.c:39
-#: builtin/submodule--helper.c:2659
+#: builtin/rebase.c:1647 builtin/submodule--helper.c:43
+#: builtin/submodule--helper.c:2477
#, c-format
msgid "No such ref: %s"
msgstr "Không có tham chiếu nào như thế: %s"
-#: builtin/rebase.c:1629
+#: builtin/rebase.c:1658
msgid "Could not resolve HEAD to a revision"
msgstr "Không thể phân giải lần chuyển giao HEAD đến một điểm xét duyệt"
-#: builtin/rebase.c:1650
+#: builtin/rebase.c:1679
msgid "Please commit or stash them."
msgstr "Xin hãy chuyển giao hoặc tạm cất (stash) chúng."
-#: builtin/rebase.c:1686
-#, c-format
-msgid "could not switch to %s"
-msgstr "không thể chuyển đến %s"
-
-#: builtin/rebase.c:1697
+#: builtin/rebase.c:1714
msgid "HEAD is up to date."
msgstr "HEAD đã cập nhật."
-#: builtin/rebase.c:1699
+#: builtin/rebase.c:1716
#, c-format
msgid "Current branch %s is up to date.\n"
msgstr "Nhánh hiện tại %s đã được cập nhật rồi.\n"
-#: builtin/rebase.c:1707
+#: builtin/rebase.c:1724
msgid "HEAD is up to date, rebase forced."
msgstr "HEAD hiện đã được cập nhật rồi, bị ép buộc rebase."
-#: builtin/rebase.c:1709
+#: builtin/rebase.c:1726
#, c-format
msgid "Current branch %s is up to date, rebase forced.\n"
msgstr "Nhánh hiện tại %s đã được cập nhật rồi, lệnh rebase ép buộc.\n"
-#: builtin/rebase.c:1717
+#: builtin/rebase.c:1734
msgid "The pre-rebase hook refused to rebase."
msgstr "Móc (hook) pre-rebase từ chối rebase."
-#: builtin/rebase.c:1724
+#: builtin/rebase.c:1741
#, c-format
msgid "Changes to %s:\n"
msgstr "Thay đổi thành %s:\n"
-#: builtin/rebase.c:1727
+#: builtin/rebase.c:1744
#, c-format
msgid "Changes from %s to %s:\n"
msgstr "Thay đổi từ %s thành %s:\n"
-#: builtin/rebase.c:1752
+#: builtin/rebase.c:1769
#, c-format
msgid "First, rewinding head to replay your work on top of it...\n"
msgstr ""
"Trước tiên, di chuyển head để xem lại các công việc trên đỉnh của nó…\n"
-#: builtin/rebase.c:1761
+#: builtin/rebase.c:1781
msgid "Could not detach HEAD"
msgstr "Không thể tách rá»i HEAD"
-#: builtin/rebase.c:1770
+#: builtin/rebase.c:1790
#, c-format
msgid "Fast-forwarded %s to %s.\n"
msgstr "Chuyển-tiếp-nhanh %s đến %s.\n"
@@ -20534,7 +21006,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:1275
+#: builtin/receive-pack.c:1263
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"
@@ -20564,7 +21036,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:1295
+#: builtin/receive-pack.c:1283
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"
@@ -20585,79 +21057,112 @@ 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:2474
+#: builtin/receive-pack.c:2476
msgid "quiet"
msgstr "im lặng"
-#: builtin/receive-pack.c:2489
+#: builtin/receive-pack.c:2491
msgid "you must specify a directory"
msgstr "bạn phải chỉ định thư mục"
-#: builtin/reflog.c:17
+#: builtin/reflog.c:9
+msgid "git reflog [show] [<log-options>] [<ref>]"
+msgstr "git reflog [show] [<các tùy chá»n>] [<tham chiếu>]"
+
+#: builtin/reflog.c:12
msgid ""
-"git reflog expire [--expire=<time>] [--expire-unreachable=<time>] [--"
-"rewrite] [--updateref] [--stale-fix] [--dry-run | -n] [--verbose] [--all] "
-"<refs>..."
+"git reflog expire [--expire=<time>] [--expire-unreachable=<time>]\n"
+" [--rewrite] [--updateref] [--stale-fix]\n"
+" [--dry-run | -n] [--verbose] [--all [--single-worktree] | "
+"<refs>...]"
msgstr ""
-"git reflog expire [--expire=<time>] [--expire-unreachable=<time>] [--"
-"rewrite] [--updateref] [--stale-fix] [--dry-run | -n] [--verbose] [--all] "
-"<các tham chiếu>…"
+"git reflog expire [--expire=<time>] [--expire-unreachable=<time>]\n"
+" [--rewrite] [--updateref] [--stale-fix]\n"
+" [--dry-run | -n] [--verbose] [--all [--single-worktree] | "
+"<refs>...]"
-#: builtin/reflog.c:22
+#: builtin/reflog.c:17
msgid ""
-"git reflog delete [--rewrite] [--updateref] [--dry-run | -n] [--verbose] "
-"<refs>..."
+"git reflog delete [--rewrite] [--updateref]\n"
+" [--dry-run | -n] [--verbose] <ref>@{<specifier>}..."
msgstr ""
-"git reflog delete [--rewrite] [--updateref] [--dry-run | -n] [--verbose] "
-"<các tham chiếu>…"
+"git reflog delete [--rewrite] [--updateref]\n"
+" [--dry-run | -n] [--verbose] <ref>@{<specifier>}..."
-#: builtin/reflog.c:25
+#: builtin/reflog.c:21
msgid "git reflog exists <ref>"
msgstr "git reflog exists <tham_chiếu>"
-#: builtin/reflog.c:585 builtin/reflog.c:590
+#: builtin/reflog.c:197 builtin/reflog.c:211
#, c-format
-msgid "'%s' is not a valid timestamp"
-msgstr "“%s†không phải là dấu thá»i gian hợp lệ"
+msgid "invalid timestamp '%s' given to '--%s'"
+msgstr "dấu vết thá»i gian không hợp lệ '%s' Ä‘Æ°a cho '--%s'"
+
+#: builtin/reflog.c:240 builtin/reflog.c:359
+msgid "do not actually prune any entries"
+msgstr "thực tế không cắt ngắn bất kỳ mục tin nào"
+
+#: builtin/reflog.c:243 builtin/reflog.c:362
+msgid ""
+"rewrite the old SHA1 with the new SHA1 of the entry that now precedes it"
+msgstr "ghi lại SHA1 cũ bằng một SHA1 mới của mục tin mà giỠđứng trước nó"
+
+#: builtin/reflog.c:246 builtin/reflog.c:365
+msgid "update the reference to the value of the top reflog entry"
+msgstr "cập nhật tham chiếu đến giá trị của mục tin reflog trên cùng"
+
+#: builtin/reflog.c:248 builtin/reflog.c:367
+msgid "print extra information on screen"
+msgstr "xuất thông tin thêm trên màn hình"
+
+#: builtin/reflog.c:249 builtin/reflog.c:253
+msgid "timestamp"
+msgstr "dấu vết thá»i gian"
+
+#: builtin/reflog.c:250
+msgid "prune entries older than the specified time"
+msgstr "cắt cụt các mục tin cÅ© hÆ¡n khoảng thá»i gian đã cho"
+
+#: builtin/reflog.c:254
+msgid ""
+"prune entries older than <time> that are not reachable from the current tip "
+"of the branch"
+msgstr ""
+"cắt cụt các mục tin cÅ© hÆ¡n <thá»i gian> cái mà không thể tiếp cận được từ "
+"đỉnh hiện tại của nhánh"
+
+#: builtin/reflog.c:258
+msgid "prune any reflog entries that point to broken commits"
+msgstr "cắt ngắn bất kỳ mục tin reflog cái mà chỉ đến lần chuyển giao há»ng"
+
+#: builtin/reflog.c:259
+msgid "process the reflogs of all references"
+msgstr "xá»­ lý các reflogs cho má»i tham chiếu"
+
+#: builtin/reflog.c:261
+msgid "limits processing to reflogs from the current worktree only"
+msgstr "giới hạn xử lý với reflogs chỉ từ thư mục làm việc hiện tại"
-#: builtin/reflog.c:631
+#: builtin/reflog.c:294
#, c-format
msgid "Marking reachable objects..."
msgstr "Äánh dấu các đối tượng tiếp cận được…"
-#: builtin/reflog.c:675
+#: builtin/reflog.c:338
#, c-format
msgid "%s points nowhere!"
msgstr "%s chẳng chỉ đến đâu cả!"
-#: builtin/reflog.c:731
+#: builtin/reflog.c:374
msgid "no reflog specified to delete"
msgstr "chưa chỉ ra reflog để xóa"
-#: builtin/reflog.c:742
-#, c-format
-msgid "not a reflog: %s"
-msgstr "không phải một reflog: %s"
-
-#: builtin/reflog.c:747
-#, c-format
-msgid "no reflog for '%s'"
-msgstr "không reflog cho “%sâ€"
-
-#: builtin/reflog.c:794
+#: builtin/reflog.c:396
#, c-format
msgid "invalid ref format: %s"
msgstr "định dạng tham chiếu không hợp lệ: %s"
-#: builtin/reflog.c:803
-msgid "git reflog [ show | expire | delete | exists ]"
-msgstr "git reflog [ show | expire | delete | exists ]"
-
-#: builtin/remote.c:17
-msgid "git remote [-v | --verbose]"
-msgstr "git remote [-v | --verbose]"
-
-#: builtin/remote.c:18
+#: builtin/remote.c:19
msgid ""
"git remote add [-t <branch>] [-m <master>] [-f] [--tags | --no-tags] [--"
"mirror=<fetch|push>] <name> <url>"
@@ -20665,87 +21170,87 @@ msgstr ""
"git remote add [-t <nhánh>] [-m <master>] [-f] [--tags|--no-tags] [--"
"mirror=<fetch|push>] <tên> <url>"
-#: builtin/remote.c:19 builtin/remote.c:39
-msgid "git remote rename <old> <new>"
-msgstr "git remote rename <tên-cũ> <tên-mới>"
+#: builtin/remote.c:20 builtin/remote.c:40
+msgid "git remote rename [--[no-]progress] <old> <new>"
+msgstr "git remote rename [--[no-]progress] <tên-cũ> <tên-mới>"
-#: builtin/remote.c:20 builtin/remote.c:44
+#: builtin/remote.c:21 builtin/remote.c:45
msgid "git remote remove <name>"
msgstr "git remote remove <tên>"
-#: builtin/remote.c:21 builtin/remote.c:49
+#: builtin/remote.c:22 builtin/remote.c:50
msgid "git remote set-head <name> (-a | --auto | -d | --delete | <branch>)"
msgstr "git remote set-head <tên> (-a | --auto | -d | --delete | <nhánh>)"
-#: builtin/remote.c:22
+#: builtin/remote.c:23
msgid "git remote [-v | --verbose] show [-n] <name>"
msgstr "git remote [-v | --verbose] show [-n] <tên>"
-#: builtin/remote.c:23
+#: builtin/remote.c:24
msgid "git remote prune [-n | --dry-run] <name>"
msgstr "git remote prune [-n | --dry-run] <tên>"
-#: builtin/remote.c:24
+#: builtin/remote.c:25
msgid ""
"git remote [-v | --verbose] update [-p | --prune] [(<group> | <remote>)...]"
msgstr ""
"git remote [-v | --verbose] update [-p | --prune] [(<nhóm> | <máy-chủ>)…]"
-#: builtin/remote.c:25
+#: builtin/remote.c:26
msgid "git remote set-branches [--add] <name> <branch>..."
msgstr "git remote set-branches [--add] <tên> <nhánh>…"
-#: builtin/remote.c:26 builtin/remote.c:75
+#: builtin/remote.c:27 builtin/remote.c:76
msgid "git remote get-url [--push] [--all] <name>"
msgstr "git remote set-url [--push] [--all] <tên>"
-#: builtin/remote.c:27 builtin/remote.c:80
+#: builtin/remote.c:28 builtin/remote.c:81
msgid "git remote set-url [--push] <name> <newurl> [<oldurl>]"
msgstr "git remote set-url [--push] <tên> <url-mới> [<url-cũ>]"
-#: builtin/remote.c:28 builtin/remote.c:81
+#: builtin/remote.c:29 builtin/remote.c:82
msgid "git remote set-url --add <name> <newurl>"
msgstr "git remote set-url --add <tên> <url-mới>"
-#: builtin/remote.c:29 builtin/remote.c:82
+#: builtin/remote.c:30 builtin/remote.c:83
msgid "git remote set-url --delete <name> <url>"
msgstr "git remote set-url --delete <tên> <url>"
-#: builtin/remote.c:34
+#: builtin/remote.c:35
msgid "git remote add [<options>] <name> <url>"
msgstr "git remote add [<các tùy chá»n>] <tên> <url>"
-#: builtin/remote.c:54
+#: builtin/remote.c:55
msgid "git remote set-branches <name> <branch>..."
msgstr "git remote set-branches <tên> <nhánh>…"
-#: builtin/remote.c:55
+#: builtin/remote.c:56
msgid "git remote set-branches --add <name> <branch>..."
msgstr "git remote set-branches --add <tên> <nhánh>…"
-#: builtin/remote.c:60
+#: builtin/remote.c:61
msgid "git remote show [<options>] <name>"
msgstr "git remote show [<các tùy chá»n>] <tên>"
-#: builtin/remote.c:65
+#: builtin/remote.c:66
msgid "git remote prune [<options>] <name>"
msgstr "git remote prune [<các tùy chá»n>] <tên>"
-#: builtin/remote.c:70
+#: builtin/remote.c:71
msgid "git remote update [<options>] [<group> | <remote>]..."
msgstr "git remote update [<các tùy chá»n>] [<nhóm> | <máy-chủ>]…"
-#: builtin/remote.c:99
+#: builtin/remote.c:100
#, c-format
msgid "Updating %s"
msgstr "Äang cập nhật %s"
-#: builtin/remote.c:101
+#: builtin/remote.c:102
#, c-format
msgid "Could not fetch %s"
msgstr "Không thể lấy“%s†vá»"
-#: builtin/remote.c:131
+#: builtin/remote.c:132
msgid ""
"--mirror is dangerous and deprecated; please\n"
"\t use --mirror=fetch or --mirror=push instead"
@@ -20753,77 +21258,77 @@ msgstr ""
"--mirror nguy hiểm và không dùng nữa; xin hãy\n"
"\t sá»­ dụng tùy chá»n --mirror=fetch hoặc --mirror=push để thay thế"
-#: builtin/remote.c:148
+#: builtin/remote.c:149
#, c-format
msgid "unknown mirror argument: %s"
msgstr "không hiểu tham số máy bản sao (mirror): %s"
-#: builtin/remote.c:164
+#: builtin/remote.c:165
msgid "fetch the remote branches"
msgstr "lấy vỠcác nhánh từ máy chủ"
-#: builtin/remote.c:166
+#: builtin/remote.c:167
msgid "import all tags and associated objects when fetching"
msgstr "nhập vào tất cả các đối tượng thẻ và thành phần liên quan khi lấy vá»"
-#: builtin/remote.c:169
+#: builtin/remote.c:170
msgid "or do not fetch any tag at all (--no-tags)"
msgstr "hoặc không lấy vỠbất kỳ thẻ nào (--no-tags)"
-#: builtin/remote.c:171
+#: builtin/remote.c:172
msgid "branch(es) to track"
msgstr "các nhánh để theo dõi"
-#: builtin/remote.c:172
+#: builtin/remote.c:173
msgid "master branch"
msgstr "nhánh master"
-#: builtin/remote.c:174
+#: builtin/remote.c:175
msgid "set up remote as a mirror to push to or fetch from"
msgstr "đặt máy chủ (remote) như là một máy bản sao để push hay fetch từ đó"
-#: builtin/remote.c:186
+#: builtin/remote.c:187
msgid "specifying a master branch makes no sense with --mirror"
msgstr "Ä‘ang chỉ định má»™t nhánh master không hợp lý vá»›i tùy chá»n --mirror"
-#: builtin/remote.c:188
+#: builtin/remote.c:189
msgid "specifying branches to track makes sense only with fetch mirrors"
msgstr "chỉ định những nhánh để theo dõi chỉ hợp lý vá»›i các “fetch mirrorâ€"
-#: builtin/remote.c:195 builtin/remote.c:705
+#: builtin/remote.c:196 builtin/remote.c:716
#, c-format
msgid "remote %s already exists."
msgstr "máy chủ %s đã tồn tại rồi."
-#: builtin/remote.c:240
+#: builtin/remote.c:241
#, c-format
msgid "Could not setup master '%s'"
msgstr "Không thể cài đặt nhánh master “%sâ€"
-#: builtin/remote.c:322
+#: builtin/remote.c:323
#, c-format
msgid "unhandled branch.%s.rebase=%s; assuming 'true'"
msgstr "nhánh chÆ°a được quản lý.%s.rebase=%s; giả định là “trueâ€"
-#: builtin/remote.c:366
+#: builtin/remote.c:367
#, c-format
msgid "Could not get fetch map for refspec %s"
msgstr "Không thể lấy ánh xạ (map) fetch cho đặc tả tham chiếu %s"
-#: builtin/remote.c:460 builtin/remote.c:468
+#: builtin/remote.c:461 builtin/remote.c:469
msgid "(matching)"
msgstr "(khá»›p)"
-#: builtin/remote.c:472
+#: builtin/remote.c:473
msgid "(delete)"
msgstr "(xóa)"
-#: builtin/remote.c:660
+#: builtin/remote.c:664
#, c-format
msgid "could not set '%s'"
msgstr "không thể đặt “%sâ€"
-#: builtin/remote.c:665
+#: builtin/remote.c:669
#, c-format
msgid ""
"The %s configuration remote.pushDefault in:\n"
@@ -20834,17 +21339,17 @@ msgstr ""
"\t%s:%d\n"
"bây giá» tên trên máy chủ không tồn tại “%sâ€"
-#: builtin/remote.c:696 builtin/remote.c:841 builtin/remote.c:948
+#: builtin/remote.c:707 builtin/remote.c:866 builtin/remote.c:973
#, c-format
msgid "No such remote: '%s'"
msgstr "Không có máy chủ nào nhÆ° vậy: “%sâ€"
-#: builtin/remote.c:715
+#: builtin/remote.c:726
#, c-format
msgid "Could not rename config section '%s' to '%s'"
msgstr "Không thể đổi tên phần của cấu hình từ “%s†thành “%sâ€"
-#: builtin/remote.c:735
+#: builtin/remote.c:746
#, c-format
msgid ""
"Not updating non-default fetch refspec\n"
@@ -20855,17 +21360,21 @@ msgstr ""
"\t%s\n"
"\tXin hãy cập nhật phần cấu hình một cách thủ công nếu thấy cần thiết."
-#: builtin/remote.c:775
+#: builtin/remote.c:783
+msgid "Renaming remote references"
+msgstr "Äổi tên các tham chiếu máy chủ"
+
+#: builtin/remote.c:794
#, c-format
msgid "deleting '%s' failed"
msgstr "gặp lá»—i khi xóa “%sâ€"
-#: builtin/remote.c:809
+#: builtin/remote.c:832
#, c-format
msgid "creating '%s' failed"
msgstr "gặp lá»—i khi tạo “%sâ€"
-#: builtin/remote.c:887
+#: builtin/remote.c:912
msgid ""
"Note: A branch outside the refs/remotes/ hierarchy was not removed;\n"
"to delete it, use:"
@@ -20877,119 +21386,119 @@ msgstr[0] ""
"Ä‘i;\n"
"để xóa đi, sử dụng:"
-#: builtin/remote.c:901
+#: builtin/remote.c:926
#, c-format
msgid "Could not remove config section '%s'"
msgstr "Không thể gỡ bá» phần cấu hình “%sâ€"
-#: builtin/remote.c:1009
+#: builtin/remote.c:1034
#, c-format
msgid " new (next fetch will store in remotes/%s)"
msgstr " mới (lần lấy vỠtiếp theo sẽ lưu trong remotes/%s)"
-#: builtin/remote.c:1012
+#: builtin/remote.c:1037
msgid " tracked"
msgstr " được theo dõi"
-#: builtin/remote.c:1014
+#: builtin/remote.c:1039
msgid " stale (use 'git remote prune' to remove)"
msgstr " cÅ© rích (dùng “git remote prune†để gỡ bá»)"
-#: builtin/remote.c:1016
+#: builtin/remote.c:1041
msgid " ???"
msgstr " ???"
-#: builtin/remote.c:1057
+#: builtin/remote.c:1082
#, c-format
msgid "invalid branch.%s.merge; cannot rebase onto > 1 branch"
msgstr "branch.%s.merge không hợp lệ; không thể cải tổ vỠphía > 1 nhánh"
-#: builtin/remote.c:1066
+#: builtin/remote.c:1091
#, c-format
msgid "rebases interactively onto remote %s"
msgstr "thực hiện rebase một cách tương tác trên máy chủ %s"
-#: builtin/remote.c:1068
+#: builtin/remote.c:1093
#, c-format
msgid "rebases interactively (with merges) onto remote %s"
msgstr ""
"thực hiện cải tổ (với các hòa trộn) một cách tương tác lên trên máy chủ %s"
-#: builtin/remote.c:1071
+#: builtin/remote.c:1096
#, c-format
msgid "rebases onto remote %s"
msgstr "thực hiện rebase trên máy chủ %s"
-#: builtin/remote.c:1075
+#: builtin/remote.c:1100
#, c-format
msgid " merges with remote %s"
msgstr " hòa trộn với máy chủ %s"
-#: builtin/remote.c:1078
+#: builtin/remote.c:1103
#, c-format
msgid "merges with remote %s"
msgstr "hòa trộn với máy chủ %s"
-#: builtin/remote.c:1081
+#: builtin/remote.c:1106
#, c-format
msgid "%-*s and with remote %s\n"
msgstr "%-*s và với máy chủ %s\n"
-#: builtin/remote.c:1124
+#: builtin/remote.c:1149
msgid "create"
msgstr "tạo"
-#: builtin/remote.c:1127
+#: builtin/remote.c:1152
msgid "delete"
msgstr "xóa"
-#: builtin/remote.c:1131
+#: builtin/remote.c:1156
msgid "up to date"
msgstr "đã cập nhật"
-#: builtin/remote.c:1134
+#: builtin/remote.c:1159
msgid "fast-forwardable"
msgstr "có-thể-chuyển-tiếp-nhanh"
-#: builtin/remote.c:1137
+#: builtin/remote.c:1162
msgid "local out of date"
msgstr "dữ liệu nội bộ đã cũ"
-#: builtin/remote.c:1144
+#: builtin/remote.c:1169
#, c-format
msgid " %-*s forces to %-*s (%s)"
msgstr " %-*s ép buộc thành %-*s (%s)"
-#: builtin/remote.c:1147
+#: builtin/remote.c:1172
#, c-format
msgid " %-*s pushes to %-*s (%s)"
msgstr " %-*s đẩy lên thành %-*s (%s)"
-#: builtin/remote.c:1151
+#: builtin/remote.c:1176
#, c-format
msgid " %-*s forces to %s"
msgstr " %-*s ép buộc thành %s"
-#: builtin/remote.c:1154
+#: builtin/remote.c:1179
#, c-format
msgid " %-*s pushes to %s"
msgstr " %-*s đẩy lên thành %s"
-#: builtin/remote.c:1222
+#: builtin/remote.c:1247
msgid "do not query remotes"
msgstr "không truy vấn các máy chủ"
-#: builtin/remote.c:1243
+#: builtin/remote.c:1268
#, c-format
msgid "* remote %s"
msgstr "* máy chủ %s"
-#: builtin/remote.c:1244
+#: builtin/remote.c:1269
#, c-format
msgid " Fetch URL: %s"
msgstr " URL để lấy vá»: %s"
-#: builtin/remote.c:1245 builtin/remote.c:1261 builtin/remote.c:1398
+#: builtin/remote.c:1270 builtin/remote.c:1286 builtin/remote.c:1423
msgid "(no URL)"
msgstr "(không có URL)"
@@ -20997,185 +21506,185 @@ msgstr "(không có URL)"
#. with the one in " Fetch URL: %s"
#. translation.
#.
-#: builtin/remote.c:1259 builtin/remote.c:1261
+#: builtin/remote.c:1284 builtin/remote.c:1286
#, c-format
msgid " Push URL: %s"
msgstr " URL để đẩy lên: %s"
-#: builtin/remote.c:1263 builtin/remote.c:1265 builtin/remote.c:1267
+#: builtin/remote.c:1288 builtin/remote.c:1290 builtin/remote.c:1292
#, c-format
msgid " HEAD branch: %s"
msgstr " Nhánh HEAD: %s"
-#: builtin/remote.c:1263
+#: builtin/remote.c:1288
msgid "(not queried)"
msgstr "(không yêu cầu)"
-#: builtin/remote.c:1265
+#: builtin/remote.c:1290
msgid "(unknown)"
msgstr "(không hiểu)"
-#: builtin/remote.c:1269
+#: builtin/remote.c:1294
#, c-format
msgid ""
" HEAD branch (remote HEAD is ambiguous, may be one of the following):\n"
msgstr " nhánh HEAD (HEAD máy chủ chưa rõ ràng, có lẽ là một trong số sau):\n"
-#: builtin/remote.c:1281
+#: builtin/remote.c:1306
#, c-format
msgid " Remote branch:%s"
msgid_plural " Remote branches:%s"
msgstr[0] " Những nhánh trên máy chủ:%s"
-#: builtin/remote.c:1284 builtin/remote.c:1310
+#: builtin/remote.c:1309 builtin/remote.c:1335
msgid " (status not queried)"
msgstr " (trạng thái không được yêu cầu)"
-#: builtin/remote.c:1293
+#: builtin/remote.c:1318
msgid " Local branch configured for 'git pull':"
msgid_plural " Local branches configured for 'git pull':"
msgstr[0] " Những nhánh ná»™i bá»™ đã được cấu hình cho lệnh “git pullâ€:"
-#: builtin/remote.c:1301
+#: builtin/remote.c:1326
msgid " Local refs will be mirrored by 'git push'"
msgstr " refs ná»™i bá»™ sẽ được phản chiếu bởi lệnh “git pushâ€"
-#: builtin/remote.c:1307
+#: builtin/remote.c:1332
#, c-format
msgid " Local ref configured for 'git push'%s:"
msgid_plural " Local refs configured for 'git push'%s:"
msgstr[0] " Những tham chiếu ná»™i bá»™ được cấu hình cho lệnh “git pushâ€%s:"
-#: builtin/remote.c:1328
+#: builtin/remote.c:1353
msgid "set refs/remotes/<name>/HEAD according to remote"
msgstr "đặt refs/remotes/<tên>/HEAD cho phù hợp với máy chủ"
-#: builtin/remote.c:1330
+#: builtin/remote.c:1355
msgid "delete refs/remotes/<name>/HEAD"
msgstr "xóa refs/remotes/<tên>/HEAD"
-#: builtin/remote.c:1344
+#: builtin/remote.c:1369
msgid "Cannot determine remote HEAD"
msgstr "Không thể xác định được HEAD máy chủ"
-#: builtin/remote.c:1346
+#: builtin/remote.c:1371
msgid "Multiple remote HEAD branches. Please choose one explicitly with:"
msgstr "Nhiá»u nhánh HEAD máy chủ. Hãy chá»n rõ ràng má»™t:"
-#: builtin/remote.c:1356
+#: builtin/remote.c:1381
#, c-format
msgid "Could not delete %s"
msgstr "Không thể xóa bỠ%s"
-#: builtin/remote.c:1364
+#: builtin/remote.c:1389
#, c-format
msgid "Not a valid ref: %s"
msgstr "Không phải là tham chiếu hợp lệ: %s"
-#: builtin/remote.c:1366
+#: builtin/remote.c:1391
#, c-format
msgid "Could not setup %s"
msgstr "Không thể cài đặt %s"
-#: builtin/remote.c:1384
+#: builtin/remote.c:1409
#, c-format
msgid " %s will become dangling!"
msgstr " %s sẽ trở thành không đầu (không được quản lý)!"
-#: builtin/remote.c:1385
+#: builtin/remote.c:1410
#, c-format
msgid " %s has become dangling!"
msgstr " %s đã trở thành không đầu (không được quản lý)!"
-#: builtin/remote.c:1394
+#: builtin/remote.c:1419
#, c-format
msgid "Pruning %s"
msgstr "Äang xén bá»›t %s"
-#: builtin/remote.c:1395
+#: builtin/remote.c:1420
#, c-format
msgid "URL: %s"
msgstr "URL: %s"
-#: builtin/remote.c:1411
+#: builtin/remote.c:1436
#, c-format
msgid " * [would prune] %s"
msgstr " * [nên xén bớt] %s"
-#: builtin/remote.c:1414
+#: builtin/remote.c:1439
#, c-format
msgid " * [pruned] %s"
msgstr " * [đã bị xén] %s"
-#: builtin/remote.c:1459
+#: builtin/remote.c:1484
msgid "prune remotes after fetching"
msgstr "cắt máy chủ sau khi lấy vá»"
-#: builtin/remote.c:1523 builtin/remote.c:1579 builtin/remote.c:1649
+#: builtin/remote.c:1548 builtin/remote.c:1604 builtin/remote.c:1674
#, c-format
msgid "No such remote '%s'"
msgstr "Không có máy chủ nào có tên “%sâ€"
-#: builtin/remote.c:1541
+#: builtin/remote.c:1566
msgid "add branch"
msgstr "thêm nhánh"
-#: builtin/remote.c:1548
+#: builtin/remote.c:1573
msgid "no remote specified"
msgstr "chưa chỉ ra máy chủ nào"
-#: builtin/remote.c:1565
+#: builtin/remote.c:1590
msgid "query push URLs rather than fetch URLs"
msgstr "truy vấn đẩy URL thay vì lấy"
-#: builtin/remote.c:1567
+#: builtin/remote.c:1592
msgid "return all URLs"
msgstr "trả vá» má»i URL"
-#: builtin/remote.c:1597
+#: builtin/remote.c:1622
#, c-format
msgid "no URLs configured for remote '%s'"
msgstr "không có URL nào được cấu hình cho nhánh “%sâ€"
-#: builtin/remote.c:1623
+#: builtin/remote.c:1648
msgid "manipulate push URLs"
msgstr "đẩy các “URL†bằng tay"
-#: builtin/remote.c:1625
+#: builtin/remote.c:1650
msgid "add URL"
msgstr "thêm URL"
-#: builtin/remote.c:1627
+#: builtin/remote.c:1652
msgid "delete URLs"
msgstr "xóa URLs"
-#: builtin/remote.c:1634
+#: builtin/remote.c:1659
msgid "--add --delete doesn't make sense"
msgstr "--add --delete không hợp lý"
-#: builtin/remote.c:1675
+#: builtin/remote.c:1700
#, c-format
msgid "Invalid old URL pattern: %s"
msgstr "Kiểu mẫu URL cũ không hợp lệ: %s"
-#: builtin/remote.c:1683
+#: builtin/remote.c:1708
#, c-format
msgid "No such URL found: %s"
msgstr "Không tìm thấy URL như vậy: %s"
-#: builtin/remote.c:1685
+#: builtin/remote.c:1710
msgid "Will not delete all non-push URLs"
msgstr "Sẽ không xóa những địa chỉ URL không-push"
-#: builtin/remote.c:1702
+#: builtin/remote.c:1727
msgid "be verbose; must be placed before a subcommand"
msgstr "chi tiết; phải được đặt trước một lệnh-con"
-#: builtin/repack.c:28
+#: builtin/repack.c:29
msgid "git repack [<options>]"
msgstr "git repack [<các tùy chá»n>]"
-#: builtin/repack.c:33
+#: builtin/repack.c:34
msgid ""
"Incremental repacks are incompatible with bitmap indexes. Use\n"
"--no-write-bitmap-index or disable the pack.writebitmaps configuration."
@@ -21183,148 +21692,148 @@ msgstr ""
"Gia tăng repack là không tương thích với chỉ mục bitmap. Dùng\n"
"--no-write-bitmap-index hay tắt cấu hình pack.writebitmaps."
-#: builtin/repack.c:201
+#: builtin/repack.c:206
msgid "could not start pack-objects to repack promisor objects"
msgstr ""
"không thể lấy thông tin thống kê pack-objects để mà đóng gói lại các đối "
"tượng hứa hẹn"
-#: builtin/repack.c:275 builtin/repack.c:820
+#: builtin/repack.c:280 builtin/repack.c:824
msgid "repack: Expecting full hex object ID lines only from pack-objects."
msgstr ""
"repack: Äang chỉ cần các dòng ID đối tượng dạng thập lục phân đầy dủ từ pack-"
"objects."
-#: builtin/repack.c:299
+#: builtin/repack.c:304
msgid "could not finish pack-objects to repack promisor objects"
msgstr "không thể hoàn tất pack-objects để đóng gói các đối tượng hứa hẹn"
-#: builtin/repack.c:314
+#: builtin/repack.c:319
#, c-format
msgid "cannot open index for %s"
msgstr "không thể mở mục lục cho “%sâ€"
-#: builtin/repack.c:373
+#: builtin/repack.c:378
#, c-format
msgid "pack %s too large to consider in geometric progression"
msgstr "gói %s là quá lá»›n để được xem là trong tiến trình hình há»c"
-#: builtin/repack.c:406 builtin/repack.c:413 builtin/repack.c:418
+#: builtin/repack.c:411 builtin/repack.c:418 builtin/repack.c:423
#, c-format
msgid "pack %s too large to roll up"
msgstr "gói %s là quá lớn để được cuộn lại"
-#: builtin/repack.c:498
+#: builtin/repack.c:503
#, c-format
msgid "could not open tempfile %s for writing"
msgstr "không thể mở tập tin tạm %s để ghi"
-#: builtin/repack.c:516
+#: builtin/repack.c:521
msgid "could not close refs snapshot tempfile"
msgstr "không thể đóng tập tin tạm thá»i chụp nhanh các tham chiếu"
-#: builtin/repack.c:630
+#: builtin/repack.c:634
msgid "pack everything in a single pack"
msgstr "đóng gói má»i thứ trong má»™t gói Ä‘Æ¡n"
-#: builtin/repack.c:632
+#: builtin/repack.c:636
msgid "same as -a, and turn unreachable objects loose"
msgstr "giống vá»›i -a, và chỉnh sá»­a các đối tượng không Ä‘á»c được thiếu sót"
-#: builtin/repack.c:635
+#: builtin/repack.c:639
msgid "remove redundant packs, and run git-prune-packed"
msgstr "xóa bỠcác gói dư thừa, và chạy git-prune-packed"
-#: builtin/repack.c:637
+#: builtin/repack.c:641
msgid "pass --no-reuse-delta to git-pack-objects"
msgstr "chuyển --no-reuse-delta cho git-pack-objects"
-#: builtin/repack.c:639
+#: builtin/repack.c:643
msgid "pass --no-reuse-object to git-pack-objects"
msgstr "chuyển --no-reuse-object cho git-pack-objects"
-#: builtin/repack.c:641
+#: builtin/repack.c:645
msgid "do not run git-update-server-info"
msgstr "không chạy git-update-server-info"
-#: builtin/repack.c:644
+#: builtin/repack.c:648
msgid "pass --local to git-pack-objects"
msgstr "chuyển --local cho git-pack-objects"
-#: builtin/repack.c:646
+#: builtin/repack.c:650
msgid "write bitmap index"
msgstr "ghi mục lục ánh xạ"
-#: builtin/repack.c:648
+#: builtin/repack.c:652
msgid "pass --delta-islands to git-pack-objects"
msgstr "chuyển --delta-islands cho git-pack-objects"
-#: builtin/repack.c:649
+#: builtin/repack.c:653
msgid "approxidate"
msgstr "ngày ước tính"
-#: builtin/repack.c:650
+#: builtin/repack.c:654
msgid "with -A, do not loosen objects older than this"
msgstr "vá»›i -A, các đối tượng cÅ© hÆ¡n khoảng thá»i gian này thì không bị mất"
-#: builtin/repack.c:652
+#: builtin/repack.c:656
msgid "with -a, repack unreachable objects"
msgstr "vá»›i -a, đóng gói lại các đối tượng không thể Ä‘á»c được"
-#: builtin/repack.c:654
+#: builtin/repack.c:658
msgid "size of the window used for delta compression"
msgstr "kích thÆ°á»›c cá»­a sổ được dùng cho nén “deltaâ€"
-#: builtin/repack.c:655 builtin/repack.c:661
+#: builtin/repack.c:659 builtin/repack.c:665
msgid "bytes"
msgstr "byte"
-#: builtin/repack.c:656
+#: builtin/repack.c:660
msgid "same as the above, but limit memory size instead of entries count"
msgstr "giống như trên, nhưng giới hạn kích thước bộ nhớ hay vì số lượng"
-#: builtin/repack.c:658
+#: builtin/repack.c:662
msgid "limits the maximum delta depth"
msgstr "giá»›i hạn Ä‘á»™ sâu tối Ä‘a của “deltaâ€"
-#: builtin/repack.c:660
+#: builtin/repack.c:664
msgid "limits the maximum number of threads"
msgstr "giới hạn số lượng tối đa tuyến trình"
-#: builtin/repack.c:662
+#: builtin/repack.c:666
msgid "maximum size of each packfile"
msgstr "kích thước tối đa cho từng tập tin gói"
-#: builtin/repack.c:664
+#: builtin/repack.c:668
msgid "repack objects in packs marked with .keep"
msgstr "đóng gói lại các đối tượng trong các gói đã đánh dấu bằng .keep"
-#: builtin/repack.c:666
+#: builtin/repack.c:670
msgid "do not repack this pack"
msgstr "đừng đóng gói lại gói này"
-#: builtin/repack.c:668
+#: builtin/repack.c:672
msgid "find a geometric progression with factor <N>"
msgstr "tìm má»™t tiến trình hình há»c vá»›i hệ số <N>"
-#: builtin/repack.c:670
+#: builtin/repack.c:674
msgid "write a multi-pack index of the resulting packs"
msgstr "ghi mục lục “multi-pack†của các gói kết quả"
-#: builtin/repack.c:680
+#: builtin/repack.c:684
msgid "cannot delete packs in a precious-objects repo"
msgstr "không thể xóa các gói trong một kho đối_tượng_vĩ_đại"
-#: builtin/repack.c:829
+#: builtin/repack.c:833
msgid "Nothing new to pack."
msgstr "Không có gì mới để mà đóng gói."
-#: builtin/repack.c:859
+#: builtin/repack.c:863
#, c-format
msgid "missing required file: %s"
msgstr "thiếu tập tin cần thiết: %s"
-#: builtin/repack.c:861
+#: builtin/repack.c:865
#, c-format
msgid "could not unlink: %s"
msgstr "không thể bỠliên kết: %s"
@@ -21341,10 +21850,6 @@ msgstr "git replace [-f] --edit <đối tượng>"
msgid "git replace [-f] --graft <commit> [<parent>...]"
msgstr "git replace [-f] --graft <lần_chuyển_giao> [<cha_mẹ>…]"
-#: builtin/replace.c:25
-msgid "git replace [-f] --convert-graft-file"
-msgstr "git replace [-f] --convert-graft-file"
-
#: builtin/replace.c:26
msgid "git replace -d <object>..."
msgstr "git replace -d <đối tượng>…"
@@ -21647,99 +22152,94 @@ msgstr "Gặp lỗi khi tìm cây của %s."
msgid "HEAD is now at %s"
msgstr "HEAD hiện giỠtại %s"
-#: builtin/reset.c:299
+#: builtin/reset.c:304
#, c-format
msgid "Cannot do a %s reset in the middle of a merge."
msgstr "Không thể thực hiện một %s reset ở giữa của quá trình hòa trộn."
-#: builtin/reset.c:396 builtin/stash.c:606 builtin/stash.c:680
-#: builtin/stash.c:704
+#: builtin/reset.c:402 builtin/stash.c:606 builtin/stash.c:669
+#: builtin/stash.c:693
msgid "be quiet, only report errors"
msgstr "làm việc ở chế độ im lặng, chỉ hiển thị khi có lỗi"
-#: builtin/reset.c:398
+#: builtin/reset.c:404
+msgid "skip refreshing the index after reset"
+msgstr "bỠqua làm tươi mục lục sau khi đặt lại"
+
+#: builtin/reset.c:406
msgid "reset HEAD and index"
msgstr "đặt lại (reset) HEAD và bảng mục lục"
-#: builtin/reset.c:399
+#: builtin/reset.c:407
msgid "reset only HEAD"
msgstr "chỉ đặt lại (reset) HEAD"
-#: builtin/reset.c:401 builtin/reset.c:403
+#: builtin/reset.c:409 builtin/reset.c:411
msgid "reset HEAD, index and working tree"
msgstr "đặt lại HEAD, bảng mục lục và cây làm việc"
-#: builtin/reset.c:405
+#: builtin/reset.c:413
msgid "reset HEAD but keep local changes"
msgstr "đặt lại HEAD nhưng giữ lại các thay đổi nội bộ"
-#: builtin/reset.c:411
+#: builtin/reset.c:419
msgid "record only the fact that removed paths will be added later"
msgstr "chỉ ghi lại những Ä‘Æ°á»ng dẫn thá»±c sá»± sẽ được thêm vào sau này"
-#: builtin/reset.c:445
+#: builtin/reset.c:452
#, c-format
msgid "Failed to resolve '%s' as a valid revision."
msgstr "Gặp lỗi khi phân giải “%s†như là điểm xét duyệt hợp lệ."
-#: builtin/reset.c:453
+#: builtin/reset.c:460
#, c-format
msgid "Failed to resolve '%s' as a valid tree."
msgstr "Gặp lỗi khi phân giải “%s†như là một cây (tree) hợp lệ."
-#: builtin/reset.c:472
+#: builtin/reset.c:479
msgid "--mixed with paths is deprecated; use 'git reset -- <paths>' instead."
msgstr ""
"--mixed vá»›i các Ä‘Æ°á»ng dẫn không còn dùng nữa; hãy thay thế bằng lệnh “git "
"reset -- </các/Ä‘Æ°á»ng/dẫn>â€."
-#: builtin/reset.c:474
+#: builtin/reset.c:481
#, c-format
msgid "Cannot do %s reset with paths."
msgstr "Không thể thá»±c hiện lệnh %s reset vá»›i các Ä‘Æ°á»ng dẫn."
-#: builtin/reset.c:489
+#: builtin/reset.c:496
#, c-format
msgid "%s reset is not allowed in a bare repository"
msgstr "%s reset không được phép trên kho thuần"
-#: builtin/reset.c:520
+#: builtin/reset.c:527
msgid "Unstaged changes after reset:"
msgstr "Những thay đổi được Ä‘Æ°a ra khá»i bệ phóng sau khi reset:"
-#: builtin/reset.c:523
+#: builtin/reset.c:530
#, c-format
msgid ""
-"\n"
-"It took %.2f seconds to enumerate unstaged changes after reset. You can\n"
-"use '--quiet' to avoid this. Set the config setting reset.quiet to true\n"
-"to make this the default.\n"
+"It took %.2f seconds to refresh the index after reset. You can use\n"
+"'--no-refresh' to avoid this."
msgstr ""
-"\n"
-"Cần %.2f giây để kiểm đếm các thay đổi chưa đưa lên bệ phóng sau khi đặt "
-"lại.\n"
-"Bạn có thể sá»­ dụng “--quiet†để tránh việc này. Äặt reset.quiet thành true "
-"trong\n"
-"cài đặt config nếu bạn muốn thực hiện nó như là mặc định.\n"
+"Việc này cần %.2f giây để làm tươi mới mục lục sau khi đặt lại. Bạn có thể "
+"sử dụng\n"
+"“--no-refresh†tránh Ä‘iá»u này."
-#: builtin/reset.c:541
+#: builtin/reset.c:547
#, c-format
msgid "Could not reset index file to revision '%s'."
msgstr "Không thể đặt lại (reset) bảng mục lục thành Ä‘iểm xét duyệt “%sâ€."
-#: builtin/reset.c:546
+#: builtin/reset.c:552
msgid "Could not write new index file."
msgstr "Không thể ghi tập tin lưu bảng mục lục mới."
-#: builtin/rev-list.c:602
-msgid "object filtering requires --objects"
-msgstr "lá»c đối tượng yêu cầu --objects"
-
-#: builtin/rev-list.c:674
+#: builtin/rev-list.c:659
msgid "rev-list does not support display of notes"
msgstr "rev-list không hỗ trợ hiển thị các ghi chú"
-#: builtin/rev-list.c:679
+#: builtin/rev-list.c:664
#, c-format
msgid "marked counting and '%s' cannot be used together"
msgstr "đánh dấu để đếm và '%s' không thể dùng cùng nhau"
@@ -22082,11 +22582,11 @@ msgstr "trÆ°á»ng"
msgid "group by field"
msgstr "nhóm theo trÆ°á»ng"
-#: builtin/shortlog.c:394
+#: builtin/shortlog.c:395
msgid "too many arguments given outside repository"
msgstr "quá nhiá»u tham số Ä‘Æ°a ra ngoài kho chứa"
-#: builtin/show-branch.c:13
+#: builtin/show-branch.c:14
msgid ""
"git show-branch [-a | --all] [-r | --remotes] [--topo-order | --date-order]\n"
" [--current] [--color[=<when>] | --no-color] [--sparse]\n"
@@ -22098,116 +22598,116 @@ msgstr ""
" [--more=<n> | --list | --independent | --merge-base]\n"
" [--no-name | --sha1-name] [--topics] [(<rev> | <glob>)…]"
-#: builtin/show-branch.c:17
+#: builtin/show-branch.c:18
msgid "git show-branch (-g | --reflog)[=<n>[,<base>]] [--list] [<ref>]"
msgstr "git show-branch (-g | --reflog)[=<n>[,<ná»n>]] [--list] [<ref>]"
-#: builtin/show-branch.c:395
+#: builtin/show-branch.c:396
#, c-format
msgid "ignoring %s; cannot handle more than %d ref"
msgid_plural "ignoring %s; cannot handle more than %d refs"
msgstr[0] "Ä‘ang bá» qua %s; không thể xá»­ lý nhiá»u hÆ¡n %d tham chiếu"
-#: builtin/show-branch.c:547
+#: builtin/show-branch.c:548
#, c-format
msgid "no matching refs with %s"
msgstr "không tham chiếu nào khớp với %s"
-#: builtin/show-branch.c:644
+#: builtin/show-branch.c:645
msgid "show remote-tracking and local branches"
msgstr "hiển thị các nhánh remote-tracking và nội bộ"
-#: builtin/show-branch.c:646
+#: builtin/show-branch.c:647
msgid "show remote-tracking branches"
msgstr "hiển thị các nhánh remote-tracking"
-#: builtin/show-branch.c:648
+#: builtin/show-branch.c:649
msgid "color '*!+-' corresponding to the branch"
msgstr "màu “*!+-†tương ứng với nhánh"
-#: builtin/show-branch.c:650
+#: builtin/show-branch.c:651
msgid "show <n> more commits after the common ancestor"
msgstr "hiển thị thêm <n> lần chuyển giao sau cha mẹ chung"
-#: builtin/show-branch.c:652
+#: builtin/show-branch.c:653
msgid "synonym to more=-1"
msgstr "đồng nghĩa với more=-1"
-#: builtin/show-branch.c:653
+#: builtin/show-branch.c:654
msgid "suppress naming strings"
msgstr "chặn các chuỗi đặt tên"
-#: builtin/show-branch.c:655
+#: builtin/show-branch.c:656
msgid "include the current branch"
msgstr "bao gồm nhánh hiện hành"
-#: builtin/show-branch.c:657
+#: builtin/show-branch.c:658
msgid "name commits with their object names"
msgstr "đặt tên các lần chuyển giao bằng các tên của đối tượng của chúng"
-#: builtin/show-branch.c:659
+#: builtin/show-branch.c:660
msgid "show possible merge bases"
msgstr "hiển thị má»i cÆ¡ sở có thể dùng để hòa trá»™n"
-#: builtin/show-branch.c:661
+#: builtin/show-branch.c:662
msgid "show refs unreachable from any other ref"
msgstr "hiển thị các tham chiếu không thể được Ä‘á»c bởi bất kỳ tham chiếu khác"
-#: builtin/show-branch.c:663
+#: builtin/show-branch.c:664
msgid "show commits in topological order"
msgstr "hiển thị các lần chuyển giao theo thứ tự tôpô"
-#: builtin/show-branch.c:666
+#: builtin/show-branch.c:667
msgid "show only commits not on the first branch"
msgstr "chỉ hiển thị các lần chuyển giao không nằm trên nhánh đầu tiên"
-#: builtin/show-branch.c:668
+#: builtin/show-branch.c:669
msgid "show merges reachable from only one tip"
msgstr "hiển thị các lần hòa trá»™n có thể Ä‘á»c được chỉ từ má»™t đầu mút"
-#: builtin/show-branch.c:670
+#: builtin/show-branch.c:671
msgid "topologically sort, maintaining date order where possible"
msgstr "sắp xếp hình thái há»c, bảo trì thứ tá»± ngày nếu có thể"
-#: builtin/show-branch.c:673
+#: builtin/show-branch.c:674
msgid "<n>[,<base>]"
msgstr "<n>[,<cơ_sở>]"
-#: builtin/show-branch.c:674
+#: builtin/show-branch.c:675
msgid "show <n> most recent ref-log entries starting at base"
msgstr "hiển thị <n> các mục “ref-log†gần nhất kể từ ná»n (base)"
-#: builtin/show-branch.c:734
+#: builtin/show-branch.c:735
msgid "no branches given, and HEAD is not valid"
msgstr "chưa đưa ra nhánh, và HEAD không hợp lệ"
-#: builtin/show-branch.c:737
+#: builtin/show-branch.c:738
msgid "--reflog option needs one branch name"
msgstr "--reflog cần tên một nhánh"
-#: builtin/show-branch.c:740
+#: builtin/show-branch.c:741
#, c-format
msgid "only %d entry can be shown at one time."
msgid_plural "only %d entries can be shown at one time."
msgstr[0] "chỉ có thể hiển thị cùng lúc %d hạng mục."
-#: builtin/show-branch.c:744
+#: builtin/show-branch.c:745
#, c-format
msgid "no such ref %s"
msgstr "không có tham chiếu nào như thế %s"
-#: builtin/show-branch.c:830
+#: builtin/show-branch.c:831
#, c-format
msgid "cannot handle more than %d rev."
msgid_plural "cannot handle more than %d revs."
msgstr[0] "không thể xá»­ lý nhiá»u hÆ¡n %d Ä‘iểm xét duyệt."
-#: builtin/show-branch.c:834
+#: builtin/show-branch.c:835
#, c-format
msgid "'%s' is not a valid ref."
msgstr "“%s†không phải tham chiếu hợp lệ."
-#: builtin/show-branch.c:837
+#: builtin/show-branch.c:838
#, c-format
msgid "cannot find commit %s (%s)"
msgstr "không thể tìm thấy lần chuyển giao %s (%s)"
@@ -22268,25 +22768,21 @@ msgstr ""
"hiển thị các tham chiếu từ đầu vào tiêu chuẩn (stdin) cái mà không ở kho nội "
"bá»™"
-#: builtin/sparse-checkout.c:22
+#: builtin/sparse-checkout.c:23
msgid "git sparse-checkout (init|list|set|add|reapply|disable) <options>"
msgstr "git sparse-checkout (init|list|set|add|reapply|disable) <các-tùy-chá»n>"
-#: builtin/sparse-checkout.c:46
-msgid "git sparse-checkout list"
-msgstr "git sparse-checkout list"
-
-#: builtin/sparse-checkout.c:60
+#: builtin/sparse-checkout.c:61
msgid "this worktree is not sparse"
msgstr "cây làm việc này không phải là sparse"
-#: builtin/sparse-checkout.c:75
+#: builtin/sparse-checkout.c:76
msgid "this worktree is not sparse (sparse-checkout file may not exist)"
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:176
+#: builtin/sparse-checkout.c:177
#, c-format
msgid ""
"directory '%s' contains untracked files, but is not in the sparse-checkout "
@@ -22295,97 +22791,130 @@ msgstr ""
"thư mục “%s†có chứa các tập tin chưa được theo dõi, nhưng lại không trong "
"“sparse-checkout coneâ€"
-#: builtin/sparse-checkout.c:184
+#: builtin/sparse-checkout.c:185
#, c-format
msgid "failed to remove directory '%s'"
msgstr "gặp lỗi khi gỡ bỠthư mục \"%s\""
-#: builtin/sparse-checkout.c:324
+#: builtin/sparse-checkout.c:327
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:365
-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:367
-msgid "failed to set extensions.worktreeConfig setting"
-msgstr "gặp lỗi khi đặt cài đặt extensions.worktreeConfig"
+#: builtin/sparse-checkout.c:366
+msgid "failed to initialize worktree config"
+msgstr "gặp lỗi khi khởi tạo cấu hình cây làm việc"
#: builtin/sparse-checkout.c:411
msgid "failed to modify sparse-index config"
msgstr "gặp lỗi khi sửa cấu hình \"sparse-index\""
-#: builtin/sparse-checkout.c:422
-msgid "git sparse-checkout init [--cone] [--[no-]sparse-index]"
-msgstr "git sparse-checkout init [--cone] [--[no-]sparse-index]"
-
-#: builtin/sparse-checkout.c:441 builtin/sparse-checkout.c:729
-#: builtin/sparse-checkout.c:778
+#: builtin/sparse-checkout.c:441 builtin/sparse-checkout.c:793
+#: builtin/sparse-checkout.c:847
msgid "initialize the sparse-checkout in cone mode"
msgstr "khởi tạo sparse-checkout trong chế độ nón"
-#: builtin/sparse-checkout.c:443 builtin/sparse-checkout.c:731
-#: builtin/sparse-checkout.c:780
+#: builtin/sparse-checkout.c:443 builtin/sparse-checkout.c:795
+#: builtin/sparse-checkout.c:849
msgid "toggle the use of a sparse index"
msgstr "bật tắt việc sử dụng một \"sparse index\""
-#: builtin/sparse-checkout.c:476
+#: builtin/sparse-checkout.c:479
#, c-format
msgid "failed to open '%s'"
msgstr "gặp lá»—i khi mở “%sâ€"
-#: builtin/sparse-checkout.c:528
+#: builtin/sparse-checkout.c:531
#, c-format
msgid "could not normalize path %s"
msgstr "không thể thÆ°á»ng hóa Ä‘Æ°á»ng dẫn “%sâ€"
-#: builtin/sparse-checkout.c:557
+#: builtin/sparse-checkout.c:560
#, 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:612 builtin/sparse-checkout.c:640
+#: builtin/sparse-checkout.c:615 builtin/sparse-checkout.c:643
msgid "unable to load existing sparse-checkout patterns"
msgstr "không thể tải các mẫu sparse-checkout"
-#: builtin/sparse-checkout.c:616
+#: builtin/sparse-checkout.c:619
msgid "existing sparse-checkout patterns do not use cone mode"
msgstr "đặt các mẫu sparse-checkout sẵn có không sử dụng chế độ cone"
-#: builtin/sparse-checkout.c:682
-msgid "git sparse-checkout add (--stdin | <patterns>)"
-msgstr "git sparse-checkout add (--stdin | <các mẫu>)"
+#: builtin/sparse-checkout.c:707
+msgid "please run from the toplevel directory in non-cone mode"
+msgstr "vui lòng chạy từ thư mục mức cao nhất trong chế độ non-cone"
+
+#: builtin/sparse-checkout.c:712
+msgid "specify directories rather than patterns (no leading slash)"
+msgstr "chỉ định các thư mục thay mẫu (không có dấu gạch chéo đứng đầu)"
+
+#: builtin/sparse-checkout.c:714
+msgid ""
+"specify directories rather than patterns. If your directory starts with a "
+"'!', pass --skip-checks"
+msgstr ""
+"chỉ định các thư mục thay mẫu. Nếu thư mục của bạn bắt đầu với một '!', "
+"chuyển qua --skip-checks"
+
+#: builtin/sparse-checkout.c:716
+msgid ""
+"specify directories rather than patterns. If your directory really has any "
+"of '*?[]\\' in it, pass --skip-checks"
+msgstr ""
+"chỉ định các thư mục thay mẫu. Nếu thư mục của bạn đã sẵn có chứa một trong "
+"số bất kỳ '*?[]\\', chuyển qua --skip-checks"
+
+#: builtin/sparse-checkout.c:732
+#, c-format
+msgid ""
+"'%s' is not a directory; to treat it as a directory anyway, rerun with --"
+"skip-checks"
+msgstr ""
+"'%s' không phải là một thư mục; để vẫn coi nó là một thư mục hãy chạy với --"
+"skip-checks"
+
+#: builtin/sparse-checkout.c:734
+#, c-format
+msgid ""
+"pass a leading slash before paths such as '%s' if you want a single file "
+"(see NON-CONE PROBLEMS in the git-sparse-checkout manual)."
+msgstr ""
+"chuyển má»™t dấu xổ chéo dẫn đầu Ä‘Æ°á»ng dẫn nhÆ° là '%s' nếu bạn muốn má»™t tập "
+"tin đơn (xem NON-CONE PROBLEMS trong hướng dẫn sử dụng git-sparse-checkout)."
-#: builtin/sparse-checkout.c:694 builtin/sparse-checkout.c:733
+#: builtin/sparse-checkout.c:739
+msgid "git sparse-checkout add [--skip-checks] (--stdin | <patterns>)"
+msgstr "git sparse-checkout add [--skip-checks] (--stdin | <các mẫu>)"
+
+#: builtin/sparse-checkout.c:752 builtin/sparse-checkout.c:797
+msgid ""
+"skip some sanity checks on the given paths that might give false positives"
+msgstr ""
+"bá» qua má»™t số kiểm tra đúng mục trên Ä‘Æ°á»ng dẫn đã cho cái mà có thể Ä‘Æ°a ra "
+"xác thực sai"
+
+#: builtin/sparse-checkout.c:755 builtin/sparse-checkout.c:800
msgid "read patterns from standard in"
msgstr "Ä‘á»c các mẫu từ đầu vào tiêu chuẩn"
-#: builtin/sparse-checkout.c:699
+#: builtin/sparse-checkout.c:760
msgid "no sparse-checkout to add to"
msgstr "không có sparse-checkout để thêm vào"
-#: builtin/sparse-checkout.c:712
+#: builtin/sparse-checkout.c:775
msgid ""
-"git sparse-checkout set [--[no-]cone] [--[no-]sparse-index] (--stdin | "
-"<patterns>)"
+"git sparse-checkout set [--[no-]cone] [--[no-]sparse-index] [--skip-checks] "
+"(--stdin | <patterns>)"
msgstr ""
-"git sparse-checkout set [--[no-]cone] [--[no-]sparse-index] (--stdin | <các "
-"mẫu>)"
-
-#: builtin/sparse-checkout.c:765
-msgid "git sparse-checkout reapply [--[no-]cone] [--[no-]sparse-index]"
-msgstr "git sparse-checkout reapply [--[no-]cone] [--[no-]sparse-index]"
+"git sparse-checkout set [--[no-]cone] [--[no-]sparse-index] [--skip-checks] "
+"(--stdin | <các mẫu>)"
-#: builtin/sparse-checkout.c:785
+#: builtin/sparse-checkout.c:854
msgid "must be in a sparse-checkout to reapply sparsity patterns"
msgstr "phải trong một sparse-checkout để áp dụng lại các mẫu sparse"
-#: builtin/sparse-checkout.c:803
-msgid "git sparse-checkout disable"
-msgstr "git sparse-checkout disable"
-
-#: builtin/sparse-checkout.c:845
+#: builtin/sparse-checkout.c:914
msgid "error while refreshing working directory"
msgstr "gặp lá»—i khi Ä‘á»c lại thÆ° mục làm việc"
@@ -22527,167 +23056,151 @@ msgstr "Bảng mục lục đã không được bỠstash."
msgid "could not restore untracked files from stash"
msgstr "không thể phục hồi các tập tin chưa theo dõi từ mục cất đi (stash)"
-#: builtin/stash.c:608 builtin/stash.c:706
+#: builtin/stash.c:608 builtin/stash.c:695
msgid "attempt to recreate the index"
msgstr "gặp lá»—i Ä‘á»c bảng mục lục"
-#: builtin/stash.c:652
+#: builtin/stash.c:641
#, c-format
msgid "Dropped %s (%s)"
msgstr "Äã xóa %s (%s)"
-#: builtin/stash.c:655
+#: builtin/stash.c:644
#, c-format
msgid "%s: Could not drop stash entry"
msgstr "%s: Không thể xóa bỠmục stash"
-#: builtin/stash.c:668
+#: builtin/stash.c:657
#, c-format
msgid "'%s' is not a stash reference"
msgstr "â€%s†không phải tham chiếu đến stash"
-#: builtin/stash.c:718
+#: builtin/stash.c:707
msgid "The stash entry is kept in case you need it again."
msgstr "Các mục tạm cất (stash) được giữ trong trÆ°á»ng hợp bạn lại cần nó."
-#: builtin/stash.c:741
+#: builtin/stash.c:730
msgid "No branch name specified"
msgstr "Chưa chỉ ra tên của nhánh"
-#: builtin/stash.c:825
+#: builtin/stash.c:809
msgid "failed to parse tree"
msgstr "gặp lỗi khi phân tích cây"
-#: builtin/stash.c:836
+#: builtin/stash.c:820
msgid "failed to unpack trees"
msgstr "gặp lỗi khi tháo dỡ cây"
-#: builtin/stash.c:856
+#: builtin/stash.c:840
msgid "include untracked files in the stash"
msgstr "bao gồm các tập tin không được theo dõi trong stash"
-#: builtin/stash.c:859
+#: builtin/stash.c:843
msgid "only show untracked files in the stash"
msgstr "chỉ hiển thị các tập tin không được theo dõi trong stash"
-#: builtin/stash.c:946 builtin/stash.c:983
+#: builtin/stash.c:930 builtin/stash.c:967
#, c-format
msgid "Cannot update %s with %s"
msgstr "Không thể cập nhật %s với %s"
-#: builtin/stash.c:964 builtin/stash.c:1678 builtin/stash.c:1750
+#: builtin/stash.c:948 builtin/stash.c:1667 builtin/stash.c:1739
msgid "stash message"
msgstr "phần chú thích cho stash"
-#: builtin/stash.c:974
+#: builtin/stash.c:958
msgid "\"git stash store\" requires one <commit> argument"
msgstr "\"git stash store\" cần một đối số <lần chuyển giao>"
-#: builtin/stash.c:1159
+#: builtin/stash.c:1143
msgid "No staged changes"
msgstr "Không có thay đổi đã được đưa lên bệ phóng"
-#: builtin/stash.c:1220
+#: builtin/stash.c:1204
msgid "No changes selected"
msgstr "ChÆ°a có thay đổi nào được chá»n"
-#: builtin/stash.c:1320
+#: builtin/stash.c:1304
msgid "You do not have the initial commit yet"
msgstr "Bạn chưa còn có lần chuyển giao khởi tạo"
-#: builtin/stash.c:1347
+#: builtin/stash.c:1331
msgid "Cannot save the current index state"
msgstr "Không thể ghi lại trạng thái bảng mục lục hiện hành"
-#: builtin/stash.c:1356
+#: builtin/stash.c:1340
msgid "Cannot save the untracked files"
msgstr "Không thể ghi lại các tập tin chưa theo dõi"
-#: builtin/stash.c:1367 builtin/stash.c:1386
+#: builtin/stash.c:1351 builtin/stash.c:1370
msgid "Cannot save the current worktree state"
msgstr "Không thể ghi lại trạng thái cây-làm-việc hiện hành"
-#: builtin/stash.c:1377
+#: builtin/stash.c:1361
msgid "Cannot save the current staged state"
msgstr "Không thể ghi lại trạng thái bệ phóng hiện hành"
-#: builtin/stash.c:1414
+#: builtin/stash.c:1398
msgid "Cannot record working tree state"
msgstr "Không thể ghi lại trạng thái cây làm việc hiện hành"
-#: builtin/stash.c:1463
+#: builtin/stash.c:1447
msgid "Can't use --patch and --include-untracked or --all at the same time"
msgstr "Không thể dùng --patch và --include-untracked hay --all cùng một lúc"
-#: builtin/stash.c:1474
+#: builtin/stash.c:1458
msgid "Can't use --staged and --include-untracked or --all at the same time"
msgstr "Không thể dùng --staged và --include-untracked hay --all cùng một lúc"
-#: builtin/stash.c:1492
+#: builtin/stash.c:1476
msgid "Did you forget to 'git add'?"
msgstr "Có lẽ bạn đã quên “git add †phải không?"
-#: builtin/stash.c:1507
+#: builtin/stash.c:1491
msgid "No local changes to save"
msgstr "Không có thay đổi nội bộ nào được ghi lại"
-#: builtin/stash.c:1514
+#: builtin/stash.c:1498
msgid "Cannot initialize stash"
msgstr "Không thể khởi tạo stash"
-#: builtin/stash.c:1529
+#: builtin/stash.c:1513
msgid "Cannot save the current status"
msgstr "Không thể ghi lại trạng thái hiện hành"
-#: builtin/stash.c:1534
+#: builtin/stash.c:1518
#, c-format
msgid "Saved working directory and index state %s"
msgstr "Äã ghi lại thÆ° mục làm việc và trạng thái mục lục %s"
-#: builtin/stash.c:1627
+#: builtin/stash.c:1615
msgid "Cannot remove worktree changes"
msgstr "Không thể gỡ bỠcác thay đổi cây-làm-việc"
-#: builtin/stash.c:1667 builtin/stash.c:1739
+#: builtin/stash.c:1656 builtin/stash.c:1728
msgid "keep index"
msgstr "giữ nguyên bảng mục lục"
-#: builtin/stash.c:1669 builtin/stash.c:1741
+#: builtin/stash.c:1658 builtin/stash.c:1730
msgid "stash staged changes only"
msgstr "chỉ tạm cất đi các thay đổi đã đưa lên bệ phóng"
-#: builtin/stash.c:1671 builtin/stash.c:1743
+#: builtin/stash.c:1660 builtin/stash.c:1732
msgid "stash in patch mode"
msgstr "cất đi ở chế độ miếng vá"
-#: builtin/stash.c:1672 builtin/stash.c:1744
+#: builtin/stash.c:1661 builtin/stash.c:1733
msgid "quiet mode"
msgstr "chế độ im lặng"
-#: builtin/stash.c:1674 builtin/stash.c:1746
+#: builtin/stash.c:1663 builtin/stash.c:1735
msgid "include untracked files in stash"
msgstr "bao gồm các tập tin không được theo dõi trong stash"
-#: builtin/stash.c:1676 builtin/stash.c:1748
+#: builtin/stash.c:1665 builtin/stash.c:1737
msgid "include ignore files"
msgstr "bao gồm các tập tin bị bỠqua"
-#: builtin/stash.c:1783
-msgid ""
-"the stash.useBuiltin support has been removed!\n"
-"See its entry in 'git help config' for details."
-msgstr ""
-"việc hỗ trợ stash.useBuiltin đã bị xóa!\n"
-"Xem mục tin của nó trong “git help config†để biết chi tiết."
-
-#: builtin/stripspace.c:18
-msgid "git stripspace [-s | --strip-comments]"
-msgstr "git stripspace [-s | --strip-comments]"
-
-#: builtin/stripspace.c:19
-msgid "git stripspace [-c | --comment-lines]"
-msgstr "git stripspace [-c | --comment-lines]"
-
#: builtin/stripspace.c:37
msgid "skip and remove all lines starting with comment character"
msgstr "giữ và xóa bá» má»i dòng bắt đầu bằng ký tá»± ghi chú"
@@ -22696,21 +23209,17 @@ msgstr "giữ và xóa bá» má»i dòng bắt đầu bằng ký tá»± ghi chú"
msgid "prepend comment character and space to each line"
msgstr "treo trước ký tự ghi chú và ký tự khoảng trắng cho từng dòng"
-#: builtin/submodule--helper.c:46 builtin/submodule--helper.c:2668
+#: builtin/submodule--helper.c:50 builtin/submodule--helper.c:2486
#, c-format
msgid "Expecting a full ref name, got %s"
msgstr "Cần tên tham chiếu dạng đầy đủ, nhưng lại nhận được %s"
-#: builtin/submodule--helper.c:63
-msgid "submodule--helper print-default-remote takes no arguments"
-msgstr "submodule--helper print-default-remote takes không nhận tham số"
-
-#: builtin/submodule--helper.c:101
+#: builtin/submodule--helper.c:103
#, c-format
msgid "cannot strip one component off url '%s'"
msgstr "không thể cắt bá» má»™t thành phần ra khá»i “%s†url"
-#: builtin/submodule--helper.c:211
+#: builtin/submodule--helper.c:213
#, c-format
msgid ""
"could not look up configuration '%s'. Assuming this repository is its own "
@@ -22719,26 +23228,26 @@ msgstr ""
"không thể tìm thấy cấu hình “%sâ€. Coi rằng đây là kho thượng nguồn có quyá»n "
"sở hữu chính nó."
-#: builtin/submodule--helper.c:405 builtin/submodule--helper.c:1859
+#: builtin/submodule--helper.c:413 builtin/submodule--helper.c:1873
msgid "alternative anchor for relative paths"
msgstr "Ä‘iểm neo thay thế cho các Ä‘Æ°á»ng dẫn tÆ°Æ¡ng đối"
-#: builtin/submodule--helper.c:410
+#: builtin/submodule--helper.c:418
msgid "git submodule--helper list [--prefix=<path>] [<path>...]"
msgstr "git submodule--helper list [--prefix=</Ä‘Æ°á»ng/dẫn>] [</Ä‘Æ°á»ng/dẫn>…]"
-#: builtin/submodule--helper.c:468 builtin/submodule--helper.c:605
-#: builtin/submodule--helper.c:628
+#: builtin/submodule--helper.c:476 builtin/submodule--helper.c:617
+#: builtin/submodule--helper.c:640
#, c-format
msgid "No url found for submodule path '%s' in .gitmodules"
msgstr "Không tìm thấy url cho Ä‘Æ°á»ng dẫn mô-Ä‘un-con “%s†trong .gitmodules"
-#: builtin/submodule--helper.c:520
+#: builtin/submodule--helper.c:528
#, c-format
msgid "Entering '%s'\n"
msgstr "Äang vào “%sâ€\n"
-#: builtin/submodule--helper.c:523
+#: builtin/submodule--helper.c:531
#, c-format
msgid ""
"run_command returned non-zero status for %s\n"
@@ -22747,7 +23256,7 @@ msgstr ""
"run_command trả vỠtrạng thái khác không cho %s\n"
"."
-#: builtin/submodule--helper.c:545
+#: builtin/submodule--helper.c:553
#, c-format
msgid ""
"run_command returned non-zero status while recursing in the nested "
@@ -22758,69 +23267,69 @@ msgstr ""
"con lồng nhau của %s\n"
"."
-#: builtin/submodule--helper.c:561
+#: builtin/submodule--helper.c:569
msgid "suppress output of entering each submodule command"
msgstr "chặn kết xuất của từng lệnh mô-đun-con"
-#: builtin/submodule--helper.c:563 builtin/submodule--helper.c:864
-#: builtin/submodule--helper.c:1453
+#: builtin/submodule--helper.c:571 builtin/submodule--helper.c:876
+#: builtin/submodule--helper.c:1458
msgid "recurse into nested submodules"
msgstr "đệ quy vào trong mô-đun-con lồng nhau"
-#: builtin/submodule--helper.c:568
+#: builtin/submodule--helper.c:576
msgid "git submodule--helper foreach [--quiet] [--recursive] [--] <command>"
msgstr "git submodule--helper foreach [--quiet] [--recursive] [--] <lệnh>"
-#: builtin/submodule--helper.c:642
+#: builtin/submodule--helper.c:654
#, c-format
msgid "Failed to register url for submodule path '%s'"
msgstr "Gặp lá»—i khi đăng ký url cho Ä‘Æ°á»ng dẫn mô-Ä‘un-con “%sâ€"
-#: builtin/submodule--helper.c:646
+#: builtin/submodule--helper.c:658
#, c-format
msgid "Submodule '%s' (%s) registered for path '%s'\n"
msgstr "Mô-Ä‘un-con “%s†(%s) được đăng ký cho Ä‘Æ°á»ng dẫn “%sâ€\n"
-#: builtin/submodule--helper.c:656
+#: builtin/submodule--helper.c:668
#, c-format
msgid "warning: command update mode suggested for submodule '%s'\n"
msgstr "cảnh báo: chế Ä‘á»™ lệnh cập nhật được gợi ý cho mô-Ä‘un-con “%sâ€\n"
-#: builtin/submodule--helper.c:663
+#: builtin/submodule--helper.c:675
#, c-format
msgid "Failed to register update mode for submodule path '%s'"
msgstr "Gặp lá»—i khi đăng ký chế Ä‘á»™ cập nhật cho Ä‘Æ°á»ng dẫn mô-Ä‘un-con “%sâ€"
-#: builtin/submodule--helper.c:685
+#: builtin/submodule--helper.c:697
msgid "suppress output for initializing a submodule"
msgstr "chặn kết xuất của khởi tạo một mô-đun-con"
-#: builtin/submodule--helper.c:690
+#: builtin/submodule--helper.c:702
msgid "git submodule--helper init [<options>] [<path>]"
msgstr "git submodule--helper init [<các tùy chá»n>] [</Ä‘Æ°á»ng/dẫn>]"
-#: builtin/submodule--helper.c:763 builtin/submodule--helper.c:898
+#: builtin/submodule--helper.c:775 builtin/submodule--helper.c:910
#, c-format
msgid "no submodule mapping found in .gitmodules for path '%s'"
msgstr ""
"không tìm thấy ánh xạ (mapping) mô-Ä‘un-con trong .gitmodules cho Ä‘Æ°á»ng dẫn "
"“%sâ€"
-#: builtin/submodule--helper.c:811
+#: builtin/submodule--helper.c:823
#, c-format
msgid "could not resolve HEAD ref inside the submodule '%s'"
msgstr "không thể phân giải tham chiếu HEAD bên trong mô-Ä‘un-con “%sâ€"
-#: builtin/submodule--helper.c:838 builtin/submodule--helper.c:1423
+#: builtin/submodule--helper.c:850 builtin/submodule--helper.c:1428
#, c-format
msgid "failed to recurse into submodule '%s'"
msgstr "gặp lá»—i khi đệ quy vào trong mô-Ä‘un-con “%sâ€"
-#: builtin/submodule--helper.c:862 builtin/submodule--helper.c:1590
+#: builtin/submodule--helper.c:874 builtin/submodule--helper.c:1595
msgid "suppress submodule status output"
msgstr "chặn kết xuất vỠtình trạng mô-đun-con"
-#: builtin/submodule--helper.c:863
+#: builtin/submodule--helper.c:875
msgid ""
"use commit stored in the index instead of the one stored in the submodule "
"HEAD"
@@ -22828,98 +23337,98 @@ msgstr ""
"dùng lần chuyển giao lưu trong mục lục thay cho cái được lưu trong HEAD mô-"
"Ä‘un-con"
-#: builtin/submodule--helper.c:869
+#: builtin/submodule--helper.c:881
msgid "git submodule status [--quiet] [--cached] [--recursive] [<path>...]"
msgstr ""
"git submodule status [--quiet] [--cached] [--recursive] [</Ä‘Æ°á»ng/dẫn>…]"
-#: builtin/submodule--helper.c:893
+#: builtin/submodule--helper.c:905
msgid "git submodule--helper name <path>"
msgstr "git submodule--helper name </Ä‘Æ°á»ng/dẫn>"
-#: builtin/submodule--helper.c:965
+#: builtin/submodule--helper.c:977
#, c-format
msgid "* %s %s(blob)->%s(submodule)"
msgstr ""
"* %s %s(blob)->%s(\n"
")"
-#: builtin/submodule--helper.c:968
+#: builtin/submodule--helper.c:980
#, c-format
msgid "* %s %s(submodule)->%s(blob)"
msgstr "* %s %s(mô-đun-con)->%s(blob)"
-#: builtin/submodule--helper.c:981
+#: builtin/submodule--helper.c:993
#, c-format
msgid "%s"
msgstr "%s"
-#: builtin/submodule--helper.c:1031
+#: builtin/submodule--helper.c:1043
#, c-format
msgid "couldn't hash object from '%s'"
msgstr "không thể băm đối tượng từ “%sâ€"
-#: builtin/submodule--helper.c:1035
+#: builtin/submodule--helper.c:1047
#, c-format
msgid "unexpected mode %o\n"
msgstr "gặp chế độ không như mong chỠ%o\n"
-#: builtin/submodule--helper.c:1276
+#: builtin/submodule--helper.c:1288
msgid "use the commit stored in the index instead of the submodule HEAD"
msgstr "hùng lần chuyển giao đã lưu trong mục lục thay cho HEAD mô-đun-con"
-#: builtin/submodule--helper.c:1278
+#: builtin/submodule--helper.c:1290
msgid "compare the commit in the index with that in the submodule HEAD"
msgstr "để so sánh lần trong mục lục với cái trong HEAD mô-đun-con"
-#: builtin/submodule--helper.c:1280
+#: builtin/submodule--helper.c:1292
msgid "skip submodules with 'ignore_config' value set to 'all'"
msgstr ""
"bá» qua các mô-Ä‘un-con vá»›i giá trị của “ignore_config†được đặt thành “allâ€"
-#: builtin/submodule--helper.c:1282
+#: builtin/submodule--helper.c:1294
msgid "limit the summary size"
msgstr "giới hạn kích cỡ tổng hợp"
-#: builtin/submodule--helper.c:1287
+#: builtin/submodule--helper.c:1299
msgid "git submodule--helper summary [<options>] [<commit>] [--] [<path>]"
msgstr ""
"git submodule--helper summary [<các tùy chá»n>] [<lần_chuyển_giao>] [--] [</"
"Ä‘Æ°á»ng/dẫn>]"
-#: builtin/submodule--helper.c:1311
+#: builtin/submodule--helper.c:1323
msgid "could not fetch a revision for HEAD"
msgstr "không thể lấy vỠmột điểm xem xét cho HEAD"
-#: builtin/submodule--helper.c:1373
+#: builtin/submodule--helper.c:1384
#, c-format
msgid "Synchronizing submodule url for '%s'\n"
msgstr "Url mô-Ä‘un-con đồng bá»™ hóa cho “%sâ€\n"
-#: builtin/submodule--helper.c:1379
+#: builtin/submodule--helper.c:1390
#, c-format
msgid "failed to register url for submodule path '%s'"
msgstr "gặp lá»—i khi đăng ký url cho Ä‘Æ°á»ng dẫn mô-Ä‘un-con “%sâ€"
-#: builtin/submodule--helper.c:1393
+#: builtin/submodule--helper.c:1399
#, c-format
msgid "failed to get the default remote for submodule '%s'"
msgstr "gặp lá»—i khi lấy máy chủ mặc định cho mô-Ä‘un-con “%sâ€"
-#: builtin/submodule--helper.c:1404
+#: builtin/submodule--helper.c:1409
#, c-format
msgid "failed to update remote for submodule '%s'"
msgstr "gặp lá»—i khi cập nhật cho mô-Ä‘un-con “%sâ€"
-#: builtin/submodule--helper.c:1451
+#: builtin/submodule--helper.c:1456
msgid "suppress output of synchronizing submodule url"
msgstr "chặn kết xuất của url mô-đun-con đồng bộ"
-#: builtin/submodule--helper.c:1458
+#: builtin/submodule--helper.c:1463
msgid "git submodule--helper sync [--quiet] [--recursive] [<path>]"
msgstr "git submodule--helper sync [--quiet] [--recursive] [</Ä‘Æ°á»ng/dẫn>]"
-#: builtin/submodule--helper.c:1508
+#: builtin/submodule--helper.c:1513
#, c-format
msgid ""
"Submodule work tree '%s' contains a .git directory. This will be replaced "
@@ -22928,7 +23437,7 @@ msgstr ""
"Cây làm việc mô-đun-con “%s†có chứa thư mục .git. Việc này sẽ được thay thế "
"với một tập tin .git bằng các sử dụng absorbgitdirs."
-#: builtin/submodule--helper.c:1525
+#: builtin/submodule--helper.c:1530
#, c-format
msgid ""
"Submodule work tree '%s' contains local modifications; use '-f' to discard "
@@ -22937,45 +23446,45 @@ msgstr ""
"Cây làm việc mô-đun-con “%s†chứa các thay đổi nội bộ; hãy dùng “-f†để loại "
"bỠchúng đi"
-#: builtin/submodule--helper.c:1533
+#: builtin/submodule--helper.c:1538
#, c-format
msgid "Cleared directory '%s'\n"
msgstr "Äã xóa thÆ° mục “%sâ€\n"
-#: builtin/submodule--helper.c:1535
+#: builtin/submodule--helper.c:1540
#, c-format
msgid "Could not remove submodule work tree '%s'\n"
msgstr "Không thể gỡ bá» cây làm việc mô-Ä‘un-con “%sâ€\n"
-#: builtin/submodule--helper.c:1546
+#: builtin/submodule--helper.c:1551
#, c-format
msgid "could not create empty submodule directory %s"
msgstr "không thể tạo thÆ° mục mô-Ä‘un-con rá»—ng “%sâ€"
-#: builtin/submodule--helper.c:1562
+#: builtin/submodule--helper.c:1567
#, c-format
msgid "Submodule '%s' (%s) unregistered for path '%s'\n"
msgstr "Mô-Ä‘un-con “%s†(%s) được đăng ký cho Ä‘Æ°á»ng dẫn “%sâ€\n"
-#: builtin/submodule--helper.c:1591
+#: builtin/submodule--helper.c:1596
msgid "remove submodule working trees even if they contain local changes"
msgstr "gỡ bỠcây làm việc của mô-đun-con ngay cả khi nó có thay đổi nội bộ"
-#: builtin/submodule--helper.c:1592
+#: builtin/submodule--helper.c:1597
msgid "unregister all submodules"
msgstr "bỠđăng ký tất cả các trong mô-đun-con"
-#: builtin/submodule--helper.c:1597
+#: builtin/submodule--helper.c:1602
msgid ""
"git submodule deinit [--quiet] [-f | --force] [--all | [--] [<path>...]]"
msgstr ""
"git submodule deinit [--quiet] [-f | --force] [--all | [--] [</Ä‘Æ°á»ng/dẫn>…]]"
-#: builtin/submodule--helper.c:1611
+#: builtin/submodule--helper.c:1616
msgid "Use '--all' if you really want to deinitialize all submodules"
msgstr "Dùng “--all†nếu bạn thá»±c sá»± muốn hủy khởi tạo má»i mô-Ä‘un-con"
-#: builtin/submodule--helper.c:1656
+#: builtin/submodule--helper.c:1665
msgid ""
"An alternate computed from a superproject's alternate is invalid.\n"
"To allow Git to clone without an alternate in such a case, set\n"
@@ -22990,102 +23499,102 @@ msgstr ""
"bằng\n"
"“--reference-if-able†thay vì dùng “--referenceâ€."
-#: builtin/submodule--helper.c:1701 builtin/submodule--helper.c:1704
+#: builtin/submodule--helper.c:1710 builtin/submodule--helper.c:1713
#, c-format
msgid "submodule '%s' cannot add alternate: %s"
msgstr "mô-đun-con “%s†không thể thêm thay thế: %s"
-#: builtin/submodule--helper.c:1740
+#: builtin/submodule--helper.c:1749
#, c-format
msgid "Value '%s' for submodule.alternateErrorStrategy is not recognized"
msgstr "Giá trị “%s†cho submodule.alternateErrorStrategy không được thừa nhận"
-#: builtin/submodule--helper.c:1747
+#: builtin/submodule--helper.c:1756
#, c-format
msgid "Value '%s' for submodule.alternateLocation is not recognized"
msgstr "Giá trị “%s†cho submodule.alternateLocation không được thừa nhận"
-#: builtin/submodule--helper.c:1772
+#: builtin/submodule--helper.c:1781
#, c-format
msgid "refusing to create/use '%s' in another submodule's git dir"
msgstr "từ chối tạo/dùng “%s†trong một thư mục git của mô đun con"
-#: builtin/submodule--helper.c:1813
+#: builtin/submodule--helper.c:1826
#, c-format
msgid "clone of '%s' into submodule path '%s' failed"
msgstr "việc sao “%s†vào Ä‘Æ°á»ng dẫn mô-Ä‘un-con “%s†gặp lá»—i"
-#: builtin/submodule--helper.c:1818
+#: builtin/submodule--helper.c:1831
#, c-format
msgid "directory not empty: '%s'"
msgstr "thÆ° mục không trống: “%sâ€"
-#: builtin/submodule--helper.c:1830
+#: builtin/submodule--helper.c:1843
#, c-format
msgid "could not get submodule directory for '%s'"
msgstr "không thể lấy thÆ° mục mô-Ä‘un-con cho “%sâ€"
-#: builtin/submodule--helper.c:1862
+#: builtin/submodule--helper.c:1876
msgid "where the new submodule will be cloned to"
msgstr "nhân bản mô-đun-con mới vào chỗ nào"
-#: builtin/submodule--helper.c:1865
+#: builtin/submodule--helper.c:1879
msgid "name of the new submodule"
msgstr "tên của mô-đun-con mới"
-#: builtin/submodule--helper.c:1868
+#: builtin/submodule--helper.c:1882
msgid "url where to clone the submodule from"
msgstr "url nơi mà nhân bản mô-đun-con từ đó"
-#: builtin/submodule--helper.c:1876 builtin/submodule--helper.c:3265
+#: builtin/submodule--helper.c:1890 builtin/submodule--helper.c:3383
msgid "depth for shallow clones"
msgstr "chiá»u sâu lịch sá»­ khi tạo bản sao"
-#: builtin/submodule--helper.c:1879 builtin/submodule--helper.c:2526
-#: builtin/submodule--helper.c:3258
+#: builtin/submodule--helper.c:1893 builtin/submodule--helper.c:2731
+#: builtin/submodule--helper.c:3376
msgid "force cloning progress"
msgstr "ép buộc tiến trình nhân bản"
-#: builtin/submodule--helper.c:1881 builtin/submodule--helper.c:2528
+#: builtin/submodule--helper.c:1895 builtin/submodule--helper.c:2733
msgid "disallow cloning into non-empty directory"
msgstr "làm đầy đủ dữ liệu cho bản sao vào trong một thư mục trống rỗng"
-#: builtin/submodule--helper.c:1888
+#: builtin/submodule--helper.c:1903
msgid ""
"git submodule--helper clone [--prefix=<path>] [--quiet] [--reference "
-"<repository>] [--name <name>] [--depth <depth>] [--single-branch] --url "
-"<url> --path <path>"
+"<repository>] [--name <name>] [--depth <depth>] [--single-branch] [--filter "
+"<filter-spec>] --url <url> --path <path>"
msgstr ""
"git submodule--helper clone [--prefix=</Ä‘Æ°á»ng/dẫn>] [--quiet] [--reference "
-"<kho>] [--name <tên>] [--depth <sâu>] [--single-branch] --url <url> --path </"
-"Ä‘Æ°á»ng/dẫn>"
+"<kho>] [--name <tên>] [--depth <sâu>] [--single-branch] [--filter <filter-"
+"spec>] --url <url> --path </Ä‘Æ°á»ng/dẫn>"
-#: builtin/submodule--helper.c:1925
+#: builtin/submodule--helper.c:1943
#, c-format
msgid "Invalid update mode '%s' for submodule path '%s'"
msgstr "Chế Ä‘á»™ cập nhật “%s†không hợp lệ cho Ä‘Æ°á»ng dẫn mô-Ä‘un-con “%sâ€"
-#: builtin/submodule--helper.c:1929
+#: builtin/submodule--helper.c:1947
#, c-format
msgid "Invalid update mode '%s' configured for submodule path '%s'"
msgstr ""
"Chế Ä‘á»™ cập nhật “%s†không hợp lệ được cấu hình cho Ä‘Æ°á»ng dẫn mô-Ä‘un-con “%sâ€"
-#: builtin/submodule--helper.c:2044
+#: builtin/submodule--helper.c:2041
#, c-format
msgid "Submodule path '%s' not initialized"
msgstr "ÄÆ°á»ng dẫn mô-Ä‘un-con “%s†chÆ°a được khởi tạo"
-#: builtin/submodule--helper.c:2048
+#: builtin/submodule--helper.c:2045
msgid "Maybe you want to use 'update --init'?"
msgstr "Có lẽ bạn là bạn muốn dùng \"update --init\" phải không?"
-#: builtin/submodule--helper.c:2078
+#: builtin/submodule--helper.c:2075
#, c-format
msgid "Skipping unmerged submodule %s"
msgstr "BỠqua các mô-đun-con chưa được hòa trộn %s"
-#: builtin/submodule--helper.c:2107
+#: builtin/submodule--helper.c:2104
#, c-format
msgid "Skipping submodule '%s'"
msgstr "Bá» qua mô-Ä‘un-con “%sâ€"
@@ -23100,54 +23609,54 @@ msgstr "Gặp lá»—i khi nhân bản “%sâ€. Thá»­ lại lịch trình"
msgid "Failed to clone '%s' a second time, aborting"
msgstr "Gặp lá»—i khi nhân bản “%s†lần thứ hai nên bãi bá»"
-#: builtin/submodule--helper.c:2373
+#: builtin/submodule--helper.c:2371
#, c-format
msgid "Unable to checkout '%s' in submodule path '%s'"
msgstr "Không thể lấy ra “%s†trong Ä‘Æ°á»ng dẫn mô-Ä‘un-con “%sâ€"
-#: builtin/submodule--helper.c:2377
+#: builtin/submodule--helper.c:2375
#, c-format
msgid "Unable to rebase '%s' in submodule path '%s'"
msgstr "Không thể cải tổ “%s†trong Ä‘Æ°á»ng dẫn mô-Ä‘un-con “%sâ€"
-#: builtin/submodule--helper.c:2381
+#: builtin/submodule--helper.c:2379
#, c-format
msgid "Unable to merge '%s' in submodule path '%s'"
msgstr "Không thể hòa trá»™n (merge) “%s†trong Ä‘Æ°á»ng dẫn mô-Ä‘un-con “%sâ€"
-#: builtin/submodule--helper.c:2385
+#: builtin/submodule--helper.c:2383
#, c-format
msgid "Execution of '%s %s' failed in submodule path '%s'"
msgstr ""
"Thá»±c hiện không thành công lệnh “%s %s†trong Ä‘Æ°á»ng dẫn mô-Ä‘un-con “%sâ€"
-#: builtin/submodule--helper.c:2409
+#: builtin/submodule--helper.c:2402
#, c-format
msgid "Submodule path '%s': checked out '%s'\n"
msgstr "ÄÆ°á»ng dẫn mô-Ä‘un-con “%sâ€: đã checkout “%sâ€\n"
-#: builtin/submodule--helper.c:2413
+#: builtin/submodule--helper.c:2406
#, c-format
msgid "Submodule path '%s': rebased into '%s'\n"
msgstr "ÄÆ°á»ng dẫn mô-Ä‘un-con “%sâ€: được rebase vào trong “%sâ€\n"
-#: builtin/submodule--helper.c:2417
+#: builtin/submodule--helper.c:2410
#, c-format
msgid "Submodule path '%s': merged in '%s'\n"
msgstr "ÄÆ°á»ng dẫn mô-Ä‘un-con “%sâ€: được hòa trá»™n vào “%sâ€\n"
-#: builtin/submodule--helper.c:2421
+#: builtin/submodule--helper.c:2414
#, c-format
msgid "Submodule path '%s': '%s %s'\n"
msgstr "ÄÆ°á»ng dẫn mô-Ä‘un-con “%sâ€: “%s %sâ€\n"
-#: builtin/submodule--helper.c:2445
+#: builtin/submodule--helper.c:2438
#, c-format
msgid "Unable to fetch in submodule path '%s'; trying to directly fetch %s:"
msgstr ""
"Không thể lấy vá» trong Ä‘Æ°á»ng dẫn mô-Ä‘un-con “%sâ€; thá»­ lấy vá» trá»±c tiếp %s:"
-#: builtin/submodule--helper.c:2454
+#: builtin/submodule--helper.c:2447
#, c-format
msgid ""
"Fetched in submodule path '%s', but it did not contain %s. Direct fetching "
@@ -23156,181 +23665,208 @@ msgstr ""
"Äã lấy vá» từ Ä‘Æ°á»ng dẫn mô-Ä‘un con “%sâ€, nhÆ°ng nó không chứa %s. Lấy vá» trá»±c "
"tiếp lần chuyển giao gặp lỗi đó."
-#: builtin/submodule--helper.c:2505 builtin/submodule--helper.c:2575
-#: builtin/submodule--helper.c:2813
+#: builtin/submodule--helper.c:2481
+#, c-format
+msgid ""
+"Submodule (%s) branch configured to inherit branch from superproject, but "
+"the superproject is not on any branch"
+msgstr ""
+"Nhánh mô-đun-con (%s) được cấu hình kế thừa nhánh từ siêu dự án, nhưng siêu "
+"dự án lại không trên bất kỳ nhánh nào"
+
+#: builtin/submodule--helper.c:2499
+#, c-format
+msgid "could not get a repository handle for submodule '%s'"
+msgstr "không thể lấy thẻ quản kho cho mô-Ä‘un-con “%sâ€"
+
+#: builtin/submodule--helper.c:2588
+#, c-format
+msgid "Unable to find current revision in submodule path '%s'"
+msgstr ""
+"Không tìm thấy Ä‘iểm xét duyệt hiện hành trong Ä‘Æ°á»ng dẫn mô-Ä‘un-con “%sâ€"
+
+#: builtin/submodule--helper.c:2599
+#, c-format
+msgid "Unable to fetch in submodule path '%s'"
+msgstr "Không thể lấy vá» trong Ä‘Æ°á»ng dẫn mô-Ä‘un-con “%sâ€"
+
+#: builtin/submodule--helper.c:2604
+#, c-format
+msgid "Unable to find %s revision in submodule path '%s'"
+msgstr "Không tìm thấy Ä‘iểm xét duyệt %s trong Ä‘Æ°á»ng dẫn mô-Ä‘un-con “%sâ€"
+
+#: builtin/submodule--helper.c:2640
+#, c-format
+msgid "Failed to recurse into submodule path '%s'"
+msgstr "Gặp lá»—i khi đệ quy vào trong Ä‘Æ°á»ng dẫn mô-Ä‘un-con “%sâ€"
+
+#: builtin/submodule--helper.c:2699
+msgid "force checkout updates"
+msgstr "ép buộc lấy ra các cập nhật"
+
+#: builtin/submodule--helper.c:2701
+msgid "initialize uninitialized submodules before update"
+msgstr "khởi tạo mô-đun-con chưa khởi tạo trước khi cập nhật"
+
+#: builtin/submodule--helper.c:2703
+msgid "use SHA-1 of submodule's remote tracking branch"
+msgstr "sử dụng SHA-1 của nhánh theo dõi máy chủ của mô-đun-con"
+
+#: builtin/submodule--helper.c:2705
+msgid "traverse submodules recursively"
+msgstr "đi theo mô-đun con một cách đệ quy"
+
+#: builtin/submodule--helper.c:2707
+msgid "don't fetch new objects from the remote site"
+msgstr "đừng lấy các đối tượng mới từ địa chỉ trên mạng"
+
+#: builtin/submodule--helper.c:2710 builtin/submodule--helper.c:2892
msgid "path into the working tree"
msgstr "Ä‘Æ°á»ng dẫn đến cây làm việc"
-#: builtin/submodule--helper.c:2508 builtin/submodule--helper.c:2580
+#: builtin/submodule--helper.c:2713
msgid "path into the working tree, across nested submodule boundaries"
msgstr "Ä‘Æ°á»ng dẫn đến cây làm việc, chéo biên giá»›i mô-Ä‘un-con lồng nhau"
-#: builtin/submodule--helper.c:2512 builtin/submodule--helper.c:2578
+#: builtin/submodule--helper.c:2717
msgid "rebase, merge, checkout or none"
msgstr "rebase, merge, checkout hoặc không làm gì cả"
-#: builtin/submodule--helper.c:2518
+#: builtin/submodule--helper.c:2723
msgid "create a shallow clone truncated to the specified number of revisions"
msgstr ""
"tạo một bản sao nông được cắt ngắn thành số lượng điểm xét duyệt đã cho"
-#: builtin/submodule--helper.c:2521
+#: builtin/submodule--helper.c:2726
msgid "parallel jobs"
msgstr "công việc đồng thá»i"
-#: builtin/submodule--helper.c:2523
+#: builtin/submodule--helper.c:2728
msgid "whether the initial clone should follow the shallow recommendation"
msgstr "nhân bản lần đầu có nên theo khuyến nghị là nông hay không"
-#: builtin/submodule--helper.c:2524
+#: builtin/submodule--helper.c:2729
msgid "don't print cloning progress"
msgstr "đừng in tiến trình nhân bản"
-#: builtin/submodule--helper.c:2535
-msgid "git submodule--helper update-clone [--prefix=<path>] [<path>...]"
+#: builtin/submodule--helper.c:2741
+msgid ""
+"git submodule [--quiet] update [--init [--filter=<filter-spec>]] [--remote] "
+"[-N|--no-fetch] [-f|--force] [--checkout|--merge|--rebase] [--[no-]recommend-"
+"shallow] [--reference <repository>] [--recursive] [--[no-]single-branch] "
+"[--] [<path>...]"
msgstr ""
-"git submodule--helper update-clone [--prefix=</Ä‘Æ°á»ng/dẫn>] [</Ä‘Æ°á»ng/dẫn>…]"
+"git submodule [--quiet] update [--init [--filter=<filter-spec>]] [--remote] "
+"[-N|--no-fetch] [-f|--force] [--checkout|--merge|--rebase] [--[no-]recommend-"
+"shallow] [--reference <kho>] [--recursive] [--[no-]single-branch] [--] [</"
+"Ä‘Æ°á»ng/dẫn/>...]"
-#: builtin/submodule--helper.c:2548
+#: builtin/submodule--helper.c:2767
msgid "bad value for update parameter"
msgstr "giá trị cho tham số cập nhật bị sai"
-#: builtin/submodule--helper.c:2566
-msgid "suppress output for update by rebase or merge"
-msgstr "chặn kết xuất cho cập nhật bởi cải tổ hoặc hòa trộn"
-
-#: builtin/submodule--helper.c:2567
-msgid "force checkout updates"
-msgstr "ép buộc lấy ra các cập nhật"
-
-#: builtin/submodule--helper.c:2569
-msgid "don't fetch new objects from the remote site"
-msgstr "đừng lấy các đối tượng mới từ địa chỉ trên mạng"
-
-#: builtin/submodule--helper.c:2571
-msgid "overrides update mode in case the repository is a fresh clone"
-msgstr "ghi đè chế Ä‘á»™ cập nhật trong trÆ°á»ng hợp kho lÆ°u trữ là bản sao má»›i"
-
-#: builtin/submodule--helper.c:2572
-msgid "depth for shallow fetch"
-msgstr "chiá»u sâu lịch sá»­ muốn lấy vá»"
-
-#: builtin/submodule--helper.c:2582
-msgid "sha1"
-msgstr "sha1"
-
-#: builtin/submodule--helper.c:2583
-msgid "SHA1 expected by superproject"
-msgstr "SHA1 là cần thiết cho superproject"
-
-#: builtin/submodule--helper.c:2585
-msgid "subsha1"
-msgstr "subsha1"
-
-#: builtin/submodule--helper.c:2586
-msgid "SHA1 of submodule's HEAD"
-msgstr "SHA1 của HEAD của mô-đun-con"
-
-#: builtin/submodule--helper.c:2592
-msgid "git submodule--helper run-update-procedure [<options>] <path>"
-msgstr ""
-"git submodule--helper run-update-procedure [<các tùy chá»n>] </Ä‘Æ°á»ng/dẫn>"
-
-#: builtin/submodule--helper.c:2663
-#, c-format
-msgid ""
-"Submodule (%s) branch configured to inherit branch from superproject, but "
-"the superproject is not on any branch"
-msgstr ""
-"Nhánh mô-đun-con (%s) được cấu hình kế thừa nhánh từ siêu dự án, nhưng siêu "
-"dự án lại không trên bất kỳ nhánh nào"
-
-#: builtin/submodule--helper.c:2781
-#, c-format
-msgid "could not get a repository handle for submodule '%s'"
-msgstr "không thể lấy thẻ quản kho cho mô-Ä‘un-con “%sâ€"
-
-#: builtin/submodule--helper.c:2814
+#: builtin/submodule--helper.c:2893
msgid "recurse into submodules"
msgstr "đệ quy vào trong mô-đun-con"
-#: builtin/submodule--helper.c:2820
+#: builtin/submodule--helper.c:2899
msgid "git submodule--helper absorb-git-dirs [<options>] [<path>...]"
msgstr "git submodule--helper absorb-git-dirs [<các tùy chá»n>] [</Ä‘Æ°á»ng/dẫn>…]"
-#: builtin/submodule--helper.c:2876
+#: builtin/submodule--helper.c:2955
msgid "check if it is safe to write to the .gitmodules file"
msgstr "chá»n nếu nó là an toàn để ghi vào tập tin .gitmodules"
-#: builtin/submodule--helper.c:2879
+#: builtin/submodule--helper.c:2958
msgid "unset the config in the .gitmodules file"
msgstr "bỠđặt cấu hình trong tập tin .gitmodules"
-#: builtin/submodule--helper.c:2884
+#: builtin/submodule--helper.c:2963
msgid "git submodule--helper config <name> [<value>]"
msgstr "git submodule--helper config <tên> [<giá trị>]"
-#: builtin/submodule--helper.c:2885
+#: builtin/submodule--helper.c:2964
msgid "git submodule--helper config --unset <name>"
msgstr "git submodule--helper config --unset <tên>"
-#: builtin/submodule--helper.c:2886
-msgid "git submodule--helper config --check-writeable"
-msgstr "git submodule--helper config --check-writeable"
-
-#: builtin/submodule--helper.c:2905 builtin/submodule--helper.c:3121
-#: builtin/submodule--helper.c:3277
+#: builtin/submodule--helper.c:2984 builtin/submodule--helper.c:3238
+#: builtin/submodule--helper.c:3395
msgid "please make sure that the .gitmodules file is in the working tree"
msgstr "hãy đảm bảo rằng tập tin .gitmodules có trong cây làm việc"
-#: builtin/submodule--helper.c:2921
+#: builtin/submodule--helper.c:3000
msgid "suppress output for setting url of a submodule"
msgstr "chặn kết xuất cho cài đặt url của một mô-đun-con"
-#: builtin/submodule--helper.c:2925
+#: builtin/submodule--helper.c:3004
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:2958
+#: builtin/submodule--helper.c:3037
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:2960
+#: builtin/submodule--helper.c:3039
msgid "set the default tracking branch"
msgstr "đặt nhánh theo dõi mặc định"
-#: builtin/submodule--helper.c:2964
+#: builtin/submodule--helper.c:3043
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:2965
+#: builtin/submodule--helper.c:3044
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:2972
+#: builtin/submodule--helper.c:3051
msgid "--branch or --default required"
msgstr "cần --branch hoặc --default"
-#: builtin/submodule--helper.c:3038
+#: builtin/submodule--helper.c:3072 builtin/submodule--helper.c:3375
+msgid "print only error messages"
+msgstr "chỉ hiển thị các thông điệp báo lỗi"
+
+#: builtin/submodule--helper.c:3073
+msgid "force creation"
+msgstr "buộc tạo"
+
+#: builtin/submodule--helper.c:3081
+msgid "show whether the branch would be created"
+msgstr "hiển thị xem nhánh nào nên được tạo ra"
+
+#: builtin/submodule--helper.c:3085
+msgid ""
+"git submodule--helper create-branch [-f|--force] [--create-reflog] [-q|--"
+"quiet] [-t|--track] [-n|--dry-run] <name> <start-oid> <start-name>"
+msgstr ""
+"git submodule--helper create-branch [-f|--force] [--create-reflog] [-q|--"
+"quiet] [-t|--track] [-n|--dry-run] <tên> <start-oid> <start-name>"
+
+#: builtin/submodule--helper.c:3097
+#, c-format
+msgid "creating branch '%s'"
+msgstr "Ä‘ang tạo nhánh “%sâ€"
+
+#: builtin/submodule--helper.c:3155
#, c-format
msgid "Adding existing repo at '%s' to the index\n"
msgstr "Äang thêm repo có sẵn tại “%s†vào bảng mục lục\n"
-#: builtin/submodule--helper.c:3041
+#: builtin/submodule--helper.c:3158
#, c-format
msgid "'%s' already exists and is not a valid git repo"
msgstr "“%s†đã tồn tại từ trước và không phải là một kho git hợp lệ"
-#: builtin/submodule--helper.c:3054
+#: builtin/submodule--helper.c:3171
#, c-format
msgid "A git directory for '%s' is found locally with remote(s):\n"
msgstr "Thư mục git cho “%s†được tìm thấy một cách cục bộ với các máy chủ:\n"
-#: builtin/submodule--helper.c:3061
+#: builtin/submodule--helper.c:3178
#, c-format
msgid ""
"If you want to reuse this local git directory instead of cloning again from\n"
@@ -23348,87 +23884,83 @@ msgstr ""
"là bạn không chắc chắn Ä‘iá»u đó nghÄ©a là gì thì chá»n tên khác vá»›i tùy chá»n “--"
"nameâ€."
-#: builtin/submodule--helper.c:3073
+#: builtin/submodule--helper.c:3190
#, c-format
msgid "Reactivating local git directory for submodule '%s'\n"
msgstr "Phục hồi sá»± hoạt Ä‘á»™ng của thÆ° mục git ná»™i bá»™ cho mô-Ä‘un-con “%sâ€.\n"
-#: builtin/submodule--helper.c:3110
+#: builtin/submodule--helper.c:3227
#, c-format
msgid "unable to checkout submodule '%s'"
msgstr "không thể lấy ra mô-Ä‘un-con “%sâ€"
-#: builtin/submodule--helper.c:3149
+#: builtin/submodule--helper.c:3266
#, c-format
msgid "Failed to add submodule '%s'"
msgstr "Gặp lá»—i khi thêm mô-Ä‘un-con “%sâ€"
-#: builtin/submodule--helper.c:3153 builtin/submodule--helper.c:3158
-#: builtin/submodule--helper.c:3166
+#: builtin/submodule--helper.c:3270 builtin/submodule--helper.c:3275
+#: builtin/submodule--helper.c:3283
#, c-format
msgid "Failed to register submodule '%s'"
msgstr "Gặp lá»—i khi đăng ký mô-Ä‘un-con “%sâ€"
-#: builtin/submodule--helper.c:3222
+#: builtin/submodule--helper.c:3339
#, c-format
msgid "'%s' already exists in the index"
msgstr "â€%s†thá»±c sá»± đã tồn tại ở bảng mục lục rồi"
-#: builtin/submodule--helper.c:3225
+#: builtin/submodule--helper.c:3342
#, c-format
msgid "'%s' already exists in the index and is not a submodule"
msgstr ""
"â€%s†thá»±c sá»± đã tồn tại ở bảng mục lục rồi và không phải là má»™t mô-Ä‘un-con"
-#: builtin/submodule--helper.c:3254
+#: builtin/submodule--helper.c:3372
msgid "branch of repository to add as submodule"
msgstr "nhánh của kho để thêm như là mô-đun-con"
-#: builtin/submodule--helper.c:3255
+#: builtin/submodule--helper.c:3373
msgid "allow adding an otherwise ignored submodule path"
msgstr "cho phép thêm má»™t Ä‘Æ°á»ng dẫn mô-Ä‘un-con bị bá» qua khác"
-#: builtin/submodule--helper.c:3257
-msgid "print only error messages"
-msgstr "chỉ hiển thị các thông điệp báo lỗi"
-
-#: builtin/submodule--helper.c:3261
+#: builtin/submodule--helper.c:3379
msgid "borrow the objects from reference repositories"
msgstr "vay mượn các đối tượng từ kho thay thế"
-#: builtin/submodule--helper.c:3263
+#: builtin/submodule--helper.c:3381
msgid ""
"sets the submodule’s name to the given string instead of defaulting to its "
"path"
msgstr ""
-"đặt tên của submodule bằng chuá»—i đã cho thay vì mặc định là Ä‘Æ°á»ng dẫn của nó"
+"đặt tên của mô-Ä‘un-con bằng chuá»—i đã cho thay vì mặc định là Ä‘Æ°á»ng dẫn của nó"
-#: builtin/submodule--helper.c:3270
+#: builtin/submodule--helper.c:3388
msgid "git submodule--helper add [<options>] [--] <repository> [<path>]"
msgstr "git submodule--helper add [<các tùy chá»n>] [--] <kho> [</Ä‘Æ°á»ng/dẫn>]"
-#: builtin/submodule--helper.c:3298
+#: builtin/submodule--helper.c:3416
msgid "Relative path can only be used from the toplevel of the working tree"
msgstr ""
"ÄÆ°á»ng dẫn tÆ°Æ¡ng đối chỉ có thể dùng từ thÆ° mục ở mức cao nhất của cây làm "
"việc"
-#: builtin/submodule--helper.c:3306
+#: builtin/submodule--helper.c:3425
#, c-format
msgid "repo URL: '%s' must be absolute or begin with ./|../"
msgstr "repo URL: “%s†phải là Ä‘Æ°á»ng dẫn tuyệt đối hoặc là bắt đầu bằng ./|../"
-#: builtin/submodule--helper.c:3341
+#: builtin/submodule--helper.c:3460
#, c-format
msgid "'%s' is not a valid submodule name"
msgstr "“%s†không phải là một tên mô-đun-con hợp lệ"
-#: builtin/submodule--helper.c:3405 git.c:452 git.c:726
+#: builtin/submodule--helper.c:3520 git.c:453 git.c:729
#, c-format
msgid "%s doesn't support --super-prefix"
msgstr "%s không hỗ trợ --super-prefix"
-#: builtin/submodule--helper.c:3411
+#: builtin/submodule--helper.c:3526
#, 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ệ"
@@ -23461,7 +23993,7 @@ msgstr "lý do"
msgid "reason of the update"
msgstr "lý do cập nhật"
-#: builtin/tag.c:25
+#: builtin/tag.c:26
msgid ""
"git tag [-a | -s | -u <key-id>] [-f] [-m <msg> | -F <file>]\n"
" <tagname> [<head>]"
@@ -23469,11 +24001,11 @@ msgstr ""
"git tag [-a | -s | -u <key-id>] [-f] [-m <msg> | -F <tập-tin>]\n"
" <tên-thẻ> [<head>]"
-#: builtin/tag.c:27
+#: builtin/tag.c:28
msgid "git tag -d <tagname>..."
msgstr "git tag -d <tên-thẻ>…"
-#: builtin/tag.c:28
+#: builtin/tag.c:29
msgid ""
"git tag -l [-n[<num>]] [--contains <commit>] [--no-contains <commit>] [--"
"points-at <object>]\n"
@@ -23485,21 +24017,21 @@ msgstr ""
" [--format=<định_dạng>] [--merged <lần_chuyển_giao>] [--no-merged "
"[<lần_chuyển_giao>]] [<mẫu>…]"
-#: builtin/tag.c:30
+#: builtin/tag.c:31
msgid "git tag -v [--format=<format>] <tagname>..."
msgstr "git tag -v [--format=<định_dạng>] <tên-thẻ>…"
-#: builtin/tag.c:100
+#: builtin/tag.c:101
#, c-format
msgid "tag '%s' not found."
msgstr "không tìm thấy tìm thấy thẻ “%sâ€."
-#: builtin/tag.c:135
+#: builtin/tag.c:136
#, c-format
msgid "Deleted tag '%s' (was %s)\n"
msgstr "Thẻ đã bị xóa “%s†(từng là %s)\n"
-#: builtin/tag.c:170
+#: builtin/tag.c:171
#, c-format
msgid ""
"\n"
@@ -23512,7 +24044,7 @@ msgstr ""
" %s\n"
"Những dòng được bắt đầu bằng “%c†sẽ được bỠqua.\n"
-#: builtin/tag.c:174
+#: builtin/tag.c:175
#, c-format
msgid ""
"\n"
@@ -23527,11 +24059,11 @@ msgstr ""
"Những dòng được bắt đầu bằng “%c†sẽ được giữ lại; bạn có thể xóa chúng đi "
"nếu muốn.\n"
-#: builtin/tag.c:240
+#: builtin/tag.c:241
msgid "unable to sign the tag"
msgstr "không thể ký thẻ"
-#: builtin/tag.c:258
+#: builtin/tag.c:259
#, c-format
msgid ""
"You have created a nested tag. The object referred to by your new tag is\n"
@@ -23544,115 +24076,119 @@ msgstr ""
"\n"
"\tgit tag -f %s %s^{}"
-#: builtin/tag.c:274
+#: builtin/tag.c:275
msgid "bad object type."
msgstr "kiểu đối tượng sai."
-#: builtin/tag.c:325
+#: builtin/tag.c:326
msgid "no tag message?"
msgstr "không có chú thích gì cho cho thẻ à?"
-#: builtin/tag.c:332
+#: builtin/tag.c:333
#, c-format
msgid "The tag message has been left in %s\n"
msgstr "Nội dung ghi chú còn lại %s\n"
-#: builtin/tag.c:444
+#: builtin/tag.c:445
msgid "list tag names"
msgstr "chỉ liệt kê tên các thẻ"
-#: builtin/tag.c:446
+#: builtin/tag.c:447
msgid "print <n> lines of each tag message"
msgstr "hiển thị <n> dòng cho mỗi ghi chú"
-#: builtin/tag.c:448
+#: builtin/tag.c:449
msgid "delete tags"
msgstr "xóa thẻ"
-#: builtin/tag.c:449
+#: builtin/tag.c:450
msgid "verify tags"
msgstr "thẩm tra thẻ"
-#: builtin/tag.c:451
+#: builtin/tag.c:452
msgid "Tag creation options"
msgstr "Tùy chá»n tạo thẻ"
-#: builtin/tag.c:453
+#: builtin/tag.c:454
msgid "annotated tag, needs a message"
msgstr "để chú giải cho thẻ, cần má»™t lá»i ghi chú"
-#: builtin/tag.c:455
+#: builtin/tag.c:456
msgid "tag message"
msgstr "phần chú thích cho thẻ"
-#: builtin/tag.c:457
+#: builtin/tag.c:458
msgid "force edit of tag message"
msgstr "ép buộc sửa thẻ lần commit"
-#: builtin/tag.c:458
+#: builtin/tag.c:459
msgid "annotated and GPG-signed tag"
msgstr "thẻ chú giải và ký kiểu GPG"
-#: builtin/tag.c:461
+#: builtin/tag.c:462
msgid "use another key to sign the tag"
msgstr "dùng kháo khác để ký thẻ"
-#: builtin/tag.c:462
+#: builtin/tag.c:463
msgid "replace the tag if exists"
msgstr "thay thế nếu thẻ đó đã có trước"
-#: builtin/tag.c:463 builtin/update-ref.c:511
+#: builtin/tag.c:464 builtin/update-ref.c:511
msgid "create a reflog"
msgstr "tạo một reflog"
-#: builtin/tag.c:465
+#: builtin/tag.c:466
msgid "Tag listing options"
msgstr "Các tùy chá»n liệt kê thẻ"
-#: builtin/tag.c:466
+#: builtin/tag.c:467
msgid "show tag list in columns"
msgstr "hiển thị danh sách thẻ trong các cột"
-#: builtin/tag.c:467 builtin/tag.c:469
+#: builtin/tag.c:468 builtin/tag.c:470
msgid "print only tags that contain the commit"
msgstr "chỉ hiển thị những nhánh mà nó chứa lần chuyển giao"
-#: builtin/tag.c:468 builtin/tag.c:470
+#: builtin/tag.c:469 builtin/tag.c:471
msgid "print only tags that don't contain the commit"
msgstr "chỉ hiển thị những thẻ mà nó không chứa lần chuyển giao"
-#: builtin/tag.c:471
+#: builtin/tag.c:472
msgid "print only tags that are merged"
msgstr "chỉ hiển thị những thẻ mà nó được hòa trộn"
-#: builtin/tag.c:472
+#: builtin/tag.c:473
msgid "print only tags that are not merged"
msgstr "chỉ hiển thị những thẻ mà nó không được hòa trộn"
-#: builtin/tag.c:476
+#: builtin/tag.c:477
msgid "print only tags of the object"
msgstr "chỉ hiển thị các thẻ của đối tượng"
-#: builtin/tag.c:558
+#: builtin/tag.c:559
#, c-format
msgid "the '%s' option is only allowed in list mode"
msgstr "tùy chá»n '%s' chỉ cho phép dùng trong chế Ä‘á»™ liệt kê"
-#: builtin/tag.c:597
+#: builtin/tag.c:598
#, c-format
msgid "'%s' is not a valid tag name."
msgstr "“%s†không phải thẻ hợp lệ."
-#: builtin/tag.c:602
+#: builtin/tag.c:603
#, c-format
msgid "tag '%s' already exists"
msgstr "thẻ “%s†đã tồn tại rồi"
-#: builtin/tag.c:633
+#: builtin/tag.c:634
#, c-format
msgid "Updated tag '%s' (was %s)\n"
msgstr "Äã cập nhật thẻ “%s†(trÆ°á»›c là %s)\n"
+#: builtin/unpack-objects.c:95
+msgid "pack exceeds maximum allowed size"
+msgstr "gói đã vượt quá cỡ tối đa được phép"
+
#: builtin/unpack-objects.c:504
msgid "Unpacking objects"
msgstr "Äang giải nén các đối tượng"
@@ -23711,147 +24247,147 @@ msgstr " Äồng ý"
msgid "git update-index [<options>] [--] [<file>...]"
msgstr "git update-index [<các tùy chá»n>] [--] [<tập-tin>…]"
-#: builtin/update-index.c:974
+#: builtin/update-index.c:993
msgid "continue refresh even when index needs update"
msgstr "tiếp tục làm mới ngay cả khi bảng mục lục cần được cập nhật"
-#: builtin/update-index.c:977
+#: builtin/update-index.c:996
msgid "refresh: ignore submodules"
msgstr "refresh: lỠđi mô-đun-con"
-#: builtin/update-index.c:980
+#: builtin/update-index.c:999
msgid "do not ignore new files"
msgstr "không bỠqua các tập tin mới tạo"
-#: builtin/update-index.c:982
+#: builtin/update-index.c:1001
msgid "let files replace directories and vice-versa"
msgstr "để các tập tin thay thế các thÆ° mục và “vice-versaâ€"
-#: builtin/update-index.c:984
+#: builtin/update-index.c:1003
msgid "notice files missing from worktree"
msgstr "thông báo các tập-tin thiếu trong thư-mục làm việc"
-#: builtin/update-index.c:986
+#: builtin/update-index.c:1005
msgid "refresh even if index contains unmerged entries"
msgstr ""
"làm tươi mới thậm chí khi bảng mục lục chứa các mục tin chưa được hòa trộn"
-#: builtin/update-index.c:989
+#: builtin/update-index.c:1008
msgid "refresh stat information"
msgstr "lấy lại thông tin thống kê"
-#: builtin/update-index.c:993
+#: builtin/update-index.c:1012
msgid "like --refresh, but ignore assume-unchanged setting"
msgstr "giống --refresh, nhÆ°ng bá» qua các cài đặt “assume-unchangedâ€"
-#: builtin/update-index.c:997
+#: builtin/update-index.c:1016
msgid "<mode>,<object>,<path>"
msgstr "<chế_Ä‘á»™>,<đối_tượng>,<Ä‘Æ°á»ng_dẫn>"
-#: builtin/update-index.c:998
+#: builtin/update-index.c:1017
msgid "add the specified entry to the index"
msgstr "thêm các tập tin đã chỉ ra vào bảng mục lục"
-#: builtin/update-index.c:1008
+#: builtin/update-index.c:1027
msgid "mark files as \"not changing\""
msgstr "đánh dấu các tập tin là \"không thay đổi\""
-#: builtin/update-index.c:1011
+#: builtin/update-index.c:1030
msgid "clear assumed-unchanged bit"
msgstr "xóa bít assumed-unchanged (giả định là không thay đổi)"
-#: builtin/update-index.c:1014
+#: builtin/update-index.c:1033
msgid "mark files as \"index-only\""
msgstr "đánh dấu các tập tin là “chỉ-Ä‘á»câ€"
-#: builtin/update-index.c:1017
+#: builtin/update-index.c:1036
msgid "clear skip-worktree bit"
msgstr "xóa bít skip-worktree"
-#: builtin/update-index.c:1020
+#: builtin/update-index.c:1039
msgid "do not touch index-only entries"
msgstr "đừng động vào các mục index-only"
-#: builtin/update-index.c:1022
+#: builtin/update-index.c:1041
msgid "add to index only; do not add content to object database"
msgstr ""
"chỉ thêm vào bảng mục lục; không thêm nội dung vào cơ sở dữ liệu đối tượng"
-#: builtin/update-index.c:1024
+#: builtin/update-index.c:1043
msgid "remove named paths even if present in worktree"
msgstr ""
"gỡ bá» các Ä‘Æ°á»ng dẫn được đặt tên thậm chí cả khi nó hiện diện trong thÆ° mục "
"làm việc"
-#: builtin/update-index.c:1026
+#: builtin/update-index.c:1045
msgid "with --stdin: input lines are terminated by null bytes"
msgstr "vá»›i tùy chá»n --stdin: các dòng đầu vào được chấm dứt bởi ký tá»± null"
-#: builtin/update-index.c:1028
+#: builtin/update-index.c:1047
msgid "read list of paths to be updated from standard input"
msgstr "Ä‘á»c danh sách Ä‘Æ°á»ng dẫn cần cập nhật từ đầu vào tiêu chuẩn"
-#: builtin/update-index.c:1032
+#: builtin/update-index.c:1051
msgid "add entries from standard input to the index"
msgstr "không thể Ä‘á»c các mục từ đầu vào tiêu chuẩn vào bảng mục lục"
-#: builtin/update-index.c:1036
+#: builtin/update-index.c:1055
msgid "repopulate stages #2 and #3 for the listed paths"
msgstr "phục hồi các trạng thái #2 và #3 cho các Ä‘Æ°á»ng dẫn được liệt kê"
-#: builtin/update-index.c:1040
+#: builtin/update-index.c:1059
msgid "only update entries that differ from HEAD"
msgstr "chỉ cập nhật các mục tin mà nó khác biệt so với HEAD"
-#: builtin/update-index.c:1044
+#: builtin/update-index.c:1063
msgid "ignore files missing from worktree"
msgstr "bỠqua các tập-tin thiếu trong thư-mục làm việc"
-#: builtin/update-index.c:1047
+#: builtin/update-index.c:1066
msgid "report actions to standard output"
msgstr "báo cáo các thao tác ra thiết bị xuất chuẩn"
-#: builtin/update-index.c:1049
+#: builtin/update-index.c:1068
msgid "(for porcelains) forget saved unresolved conflicts"
msgstr "(cho “porcelainsâ€) quên các xung Ä‘á»™t chÆ°a được giải quyết đã ghi"
-#: builtin/update-index.c:1053
+#: builtin/update-index.c:1072
msgid "write index in this format"
msgstr "ghi mục lục ở định dạng này"
-#: builtin/update-index.c:1055
+#: builtin/update-index.c:1074
msgid "enable or disable split index"
msgstr "bật/tắt chia cắt bảng mục lục"
-#: builtin/update-index.c:1057
+#: builtin/update-index.c:1076
msgid "enable/disable untracked cache"
msgstr "bật/tắt bộ đệm không theo vết"
-#: builtin/update-index.c:1059
+#: builtin/update-index.c:1078
msgid "test if the filesystem supports untracked cache"
msgstr "kiểm tra xem hệ thống tập tin có hỗ trợ đệm không theo dõi hay không"
-#: builtin/update-index.c:1061
+#: builtin/update-index.c:1080
msgid "enable untracked cache without testing the filesystem"
msgstr "bật bộ đệm không theo vết mà không kiểm tra hệ thống tập tin"
-#: builtin/update-index.c:1063
+#: builtin/update-index.c:1082
msgid "write out the index even if is not flagged as changed"
msgstr "ghi ra mục lục ngay cả khi không được đánh cỠlà có thay đổi"
-#: builtin/update-index.c:1065
+#: builtin/update-index.c:1084
msgid "enable or disable file system monitor"
msgstr "bật/tắt theo dõi hệ thống tập tin"
-#: builtin/update-index.c:1067
+#: builtin/update-index.c:1086
msgid "mark files as fsmonitor valid"
msgstr "đánh dấu các tập tin là hợp lệ fsmonitor"
-#: builtin/update-index.c:1070
+#: builtin/update-index.c:1089
msgid "clear fsmonitor valid bit"
msgstr "xóa bít hợp lệ fsmonitor"
-#: builtin/update-index.c:1173
+#: builtin/update-index.c:1195
msgid ""
"core.splitIndex is set to false; remove or change it, if you really want to "
"enable split index"
@@ -23859,7 +24395,7 @@ msgstr ""
"core.splitIndex được đặt là sai; xóa bỠhay thay đổi nó, nếu bạn thực sự "
"muốn bật chia tách mục lục"
-#: builtin/update-index.c:1182
+#: builtin/update-index.c:1204
msgid ""
"core.splitIndex is set to true; remove or change it, if you really want to "
"disable split index"
@@ -23867,7 +24403,7 @@ msgstr ""
"core.splitIndex được đặt là đúng; xóa bỠhay thay đổi nó, nếu bạn thực sự "
"muốn tắt chia tách mục lục"
-#: builtin/update-index.c:1194
+#: builtin/update-index.c:1216
msgid ""
"core.untrackedCache is set to true; remove or change it, if you really want "
"to disable the untracked cache"
@@ -23875,11 +24411,11 @@ msgstr ""
"core.untrackedCache được đặt là đúng; xóa bỠhay thay đổi nó, nếu bạn thực "
"sự muốn tắt bộ đệm chưa theo dõi"
-#: builtin/update-index.c:1198
+#: builtin/update-index.c:1220
msgid "Untracked cache disabled"
msgstr "Nhớ đệm không theo vết bị tắt"
-#: builtin/update-index.c:1206
+#: builtin/update-index.c:1228
msgid ""
"core.untrackedCache is set to false; remove or change it, if you really want "
"to enable the untracked cache"
@@ -23887,29 +24423,29 @@ msgstr ""
"core.untrackedCache được đặt là sai; xóa bỠhay thay đổi nó, nếu bạn thực sự "
"muốn bật bộ đệm chưa theo dõi"
-#: builtin/update-index.c:1210
+#: builtin/update-index.c:1232
#, c-format
msgid "Untracked cache enabled for '%s'"
msgstr "Nhá»› đệm không theo vết được bật cho “%sâ€"
-#: builtin/update-index.c:1218
+#: builtin/update-index.c:1241
msgid "core.fsmonitor is unset; set it if you really want to enable fsmonitor"
msgstr ""
"core.fsmonitor chưa được đặt; đặt nó nếu bạn thực sự muốn bật theo dõi hệ "
"thống tập tin"
-#: builtin/update-index.c:1222
+#: builtin/update-index.c:1246
msgid "fsmonitor enabled"
msgstr "fsmonitor được bật"
-#: builtin/update-index.c:1225
+#: builtin/update-index.c:1250
msgid ""
"core.fsmonitor is set; remove it if you really want to disable fsmonitor"
msgstr ""
"core.fsmonitor đã được đặt; bỠđặt nó nếu bạn thực sự muốn bật theo dõi hệ "
"thống tập tin"
-#: builtin/update-index.c:1229
+#: builtin/update-index.c:1254
msgid "fsmonitor disabled"
msgstr "fsmonitor bị tắt"
@@ -23941,10 +24477,6 @@ msgstr "đầu vào tiêu chuẩn có các đối số được chấm dứt bá»
msgid "read updates from stdin"
msgstr "Ä‘á»c cập nhật từ đầu vào tiêu chuẩn"
-#: builtin/update-server-info.c:7
-msgid "git update-server-info [--force]"
-msgstr "git update-server-info [--force]"
-
#: builtin/update-server-info.c:15
msgid "update the info files from scratch"
msgstr "cập nhật các tập tin thông tin từ điểm xuất phát"
@@ -24026,33 +24558,37 @@ msgid "git worktree remove [<options>] <worktree>"
msgstr "git worktree remove [<các tùy chá»n>] <worktree>"
#: builtin/worktree.c:25
+msgid "git worktree repair [<path>...]"
+msgstr "git worktree repair [</Ä‘Æ°á»ng/dẫn/>...]"
+
+#: builtin/worktree.c:26
msgid "git worktree unlock <path>"
msgstr "git worktree unlock </Ä‘Æ°á»ng/dẫn>"
-#: builtin/worktree.c:75
+#: builtin/worktree.c:76
#, c-format
msgid "Removing %s/%s: %s"
msgstr "Äang xóa %s/%s: %s"
-#: builtin/worktree.c:148
+#: builtin/worktree.c:149
msgid "report pruned working trees"
msgstr "báo cáo các cây làm việc đã prune"
-#: builtin/worktree.c:150
+#: builtin/worktree.c:151
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:220
+#: builtin/worktree.c:221
#, c-format
msgid "'%s' already exists"
msgstr "“%s†đã có từ trước rồi"
-#: builtin/worktree.c:229
+#: builtin/worktree.c:230
#, c-format
msgid "unusable worktree destination '%s'"
msgstr "đích cây làm việc không sá»­ dụng được “%sâ€"
-#: builtin/worktree.c:234
+#: builtin/worktree.c:235
#, c-format
msgid ""
"'%s' is a missing but locked worktree;\n"
@@ -24061,7 +24597,7 @@ msgstr ""
"“%s†bị mất nhưng cây làm việc bị khóa;\n"
"dùng “%s -f -f†để ghi đè, hoặc “unlock†và “prune†hay “remove†để xóa"
-#: builtin/worktree.c:236
+#: builtin/worktree.c:237
#, c-format
msgid ""
"'%s' is a missing but already registered worktree;\n"
@@ -24070,129 +24606,148 @@ msgstr ""
"“%s†bị mất nhưng cây làm việc đã được đăng ký;\n"
"dùng “%s -f†để ghi đè, hoặc “prune†hay “remove†để xóa"
-#: builtin/worktree.c:287
+#: builtin/worktree.c:248
+#, c-format
+msgid "failed to copy '%s' to '%s'; sparse-checkout may not work correctly"
+msgstr "gặp lỗi khi sao chép '%s' sang '%s'; không thể làm việc đúng được"
+
+#: builtin/worktree.c:268
+#, c-format
+msgid "failed to copy worktree config from '%s' to '%s'"
+msgstr "gặp lá»—i khi sao chép cấu hình cây làm việc từ “%s†sang “%sâ€"
+
+#: builtin/worktree.c:280 builtin/worktree.c:285
+#, c-format
+msgid "failed to unset '%s' in '%s'"
+msgstr "gặp lá»—i bỠđặt “%s†trong “%sâ€"
+
+#: builtin/worktree.c:356
#, c-format
msgid "could not create directory of '%s'"
msgstr "không thể tạo thÆ° mục của “%sâ€"
-#: builtin/worktree.c:309
+#: builtin/worktree.c:378
msgid "initializing"
msgstr "khởi tạo"
-#: builtin/worktree.c:420 builtin/worktree.c:426
+#: builtin/worktree.c:492 builtin/worktree.c:498
#, 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:422
+#: builtin/worktree.c:494
#, 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:431
+#: builtin/worktree.c:503
#, 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:437
+#: builtin/worktree.c:509
#, 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:482
+#: builtin/worktree.c:554
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:485
+#: builtin/worktree.c:557
msgid "create a new branch"
msgstr "tạo nhánh mới"
-#: builtin/worktree.c:487
+#: builtin/worktree.c:559
msgid "create or reset a branch"
msgstr "tạo hay đặt lại một nhánh"
-#: builtin/worktree.c:489
+#: builtin/worktree.c:561
msgid "populate the new working tree"
msgstr "di chuyển cây làm việc mới"
-#: builtin/worktree.c:490
+#: builtin/worktree.c:562
msgid "keep the new working tree locked"
msgstr "giữ cây làm việc mới bị khóa"
-#: builtin/worktree.c:492 builtin/worktree.c:729
+#: builtin/worktree.c:564 builtin/worktree.c:809
msgid "reason for locking"
msgstr "lý do khóa"
-#: builtin/worktree.c:495
+#: builtin/worktree.c:567
msgid "set up tracking mode (see git-branch(1))"
msgstr "cài đặt chế độ theo dõi (xem git-branch(1))"
-#: builtin/worktree.c:498
+#: builtin/worktree.c:570
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:512
+#: builtin/worktree.c:584
msgid "added with --lock"
msgstr "được thêm với --lock"
-#: builtin/worktree.c:574
+#: builtin/worktree.c:646
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:691
+#: builtin/worktree.c:766
msgid "show extended annotations and reasons, if available"
msgstr "hiển thị chú thích và lý do mở rộng, nếu có"
-#: builtin/worktree.c:693
+#: builtin/worktree.c:768
msgid "add 'prunable' annotation to worktrees older than <time>"
msgstr ""
"thêm chú thích kiểu “prunable†cho các cây làm việc hết hạn cũ hơn khoảng "
"<thá»i gian>"
-#: builtin/worktree.c:741 builtin/worktree.c:774 builtin/worktree.c:848
-#: builtin/worktree.c:972
+#: builtin/worktree.c:770
+msgid "terminate records with a NUL character"
+msgstr "chấm dứt các bản ghi bằng ký tự NULL"
+
+#: builtin/worktree.c:821 builtin/worktree.c:854 builtin/worktree.c:928
+#: builtin/worktree.c:1052
#, 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:743 builtin/worktree.c:776
+#: builtin/worktree.c:823 builtin/worktree.c:856
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:748
+#: builtin/worktree.c:828
#, c-format
msgid "'%s' is already locked, reason: %s"
msgstr "“%s†đã được khóa rồi, lý do: %s"
-#: builtin/worktree.c:750
+#: builtin/worktree.c:830
#, c-format
msgid "'%s' is already locked"
msgstr "“%s†đã được khóa rồi"
-#: builtin/worktree.c:778
+#: builtin/worktree.c:858
#, c-format
msgid "'%s' is not locked"
msgstr "“%s†chưa bị khóa"
-#: builtin/worktree.c:819
+#: builtin/worktree.c:899
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:827
+#: builtin/worktree.c:907
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:850 builtin/worktree.c:974
+#: builtin/worktree.c:930 builtin/worktree.c:1054
#, c-format
msgid "'%s' is a main working tree"
msgstr "“%s†là cây làm việc chính"
-#: builtin/worktree.c:855
+#: builtin/worktree.c:935
#, 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:868
+#: builtin/worktree.c:948
#, c-format
msgid ""
"cannot move a locked working tree, lock reason: %s\n"
@@ -24201,7 +24756,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:870
+#: builtin/worktree.c:950
msgid ""
"cannot move a locked working tree;\n"
"use 'move -f -f' to override or unlock first"
@@ -24209,38 +24764,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:873
+#: builtin/worktree.c:953
#, 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:878
+#: builtin/worktree.c:958
#, c-format
msgid "failed to move '%s' to '%s'"
msgstr "gặp lá»—i khi chuyển “%s†sang “%sâ€"
-#: builtin/worktree.c:924
+#: builtin/worktree.c:1004
#, 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:928
+#: builtin/worktree.c:1008
#, 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:933
+#: builtin/worktree.c:1013
#, 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:956
+#: builtin/worktree.c:1036
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:979
+#: builtin/worktree.c:1059
#, c-format
msgid ""
"cannot remove a locked working tree, lock reason: %s\n"
@@ -24249,7 +24804,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:981
+#: builtin/worktree.c:1061
msgid ""
"cannot remove a locked working tree;\n"
"use 'remove -f -f' to override or unlock first"
@@ -24257,17 +24812,17 @@ 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:984
+#: builtin/worktree.c:1064
#, 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"
-#: builtin/worktree.c:1008
+#: builtin/worktree.c:1088
#, c-format
msgid "repair: %s: %s"
msgstr "sửa chữa: %s: %s"
-#: builtin/worktree.c:1011
+#: builtin/worktree.c:1091
#, c-format
msgid "error: %s: %s"
msgstr "lá»—i: %s: %s"
@@ -24374,30 +24929,30 @@ msgstr "làm trống bí danh cho %s"
msgid "recursive alias: %s"
msgstr "đệ quy các bí danh: %s"
-#: git.c:479
+#: git.c:480
msgid "write failure on standard output"
msgstr "lỗi ghi nghiêm trong trên đầu ra tiêu chuẩn"
-#: git.c:481
+#: git.c:482
msgid "unknown write failure on standard output"
msgstr "lá»—i nghiêm trá»ng chÆ°a biết khi ghi ra đầu ra tiêu chuẩn"
-#: git.c:483
+#: git.c:484
msgid "close failed on standard output"
msgstr "gặp lỗi khi đóng đầu ra tiêu chuẩn"
-#: git.c:835
+#: git.c:838
#, c-format
msgid "alias loop detected: expansion of '%s' does not terminate:%s"
msgstr ""
"dò tìm thấy các bí danh quẩn tròn: biểu thức của “%s†không có điểm kết:%s"
-#: git.c:885
+#: git.c:888
#, c-format
msgid "cannot handle %s as a builtin"
msgstr "không thể xử lý %s như là một phần bổ sung"
-#: git.c:898
+#: git.c:901
#, c-format
msgid ""
"usage: %s\n"
@@ -24406,12 +24961,12 @@ msgstr ""
"cách dùng: %s\n"
"\n"
-#: git.c:918
+#: git.c:921
#, c-format
msgid "expansion of alias '%s' failed; '%s' is not a git command\n"
msgstr "gặp lá»—i khi khai triển bí danh “%sâ€; “%s†không phải là lệnh git\n"
-#: git.c:930
+#: git.c:933
#, c-format
msgid "failed to run command '%s': %s\n"
msgstr "gặp lá»—i khi chạy lệnh “%sâ€: %s\n"
@@ -24570,141 +25125,141 @@ msgstr ""
" há»i cho: %s\n"
" chuyển hướng: %s"
-#: remote-curl.c:183
+#: remote-curl.c:184
#, 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:304
+#: remote-curl.c:308
#, 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:405
+#: remote-curl.c:409
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:436
+#: remote-curl.c:440
#, 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:496
+#: remote-curl.c:500
#, c-format
msgid "repository '%s' not found"
msgstr "không tìm thấy kho “%sâ€"
-#: remote-curl.c:500
+#: remote-curl.c:504
#, c-format
msgid "Authentication failed for '%s'"
msgstr "Xác thá»±c gặp lá»—i cho “%sâ€"
-#: remote-curl.c:504
+#: remote-curl.c:508
#, c-format
msgid "unable to access '%s' with http.pinnedPubkey configuration: %s"
msgstr "không thể truy cập “%s†với cấu hình http.pinnedPubkey: %s"
-#: remote-curl.c:508
+#: remote-curl.c:512
#, c-format
msgid "unable to access '%s': %s"
msgstr "không thể truy cập “%sâ€: %s"
-#: remote-curl.c:514
+#: remote-curl.c:518
#, c-format
msgid "redirecting to %s"
msgstr "chuyển hướng đến %s"
-#: remote-curl.c:645
+#: remote-curl.c:649
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:657
+#: remote-curl.c:661
msgid "remote server sent unexpected response end packet"
msgstr "máy phục vụ gửi gói kết thúc không cần"
-#: remote-curl.c:726
+#: remote-curl.c:730
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:755
+#: remote-curl.c:759
#, 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:757
+#: remote-curl.c:761
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:833
+#: remote-curl.c:837
#, c-format
msgid "RPC failed; %s"
msgstr "RPC gặp lỗi; %s"
-#: remote-curl.c:873
+#: remote-curl.c:877
msgid "cannot handle pushes this big"
msgstr "không thể xử lý đẩy cái lớn này"
-#: remote-curl.c:986
+#: remote-curl.c:990
#, 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:990
+#: remote-curl.c:994
#, 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:1040
+#: remote-curl.c:1044
#, 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:1042
+#: remote-curl.c:1046
#, 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:1131
+#: remote-curl.c:1135
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:1146
+#: remote-curl.c:1150
msgid "fetch failed."
msgstr "lấy vỠgặp lỗi."
-#: remote-curl.c:1192
+#: remote-curl.c:1198
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:1236 remote-curl.c:1242
+#: remote-curl.c:1242 remote-curl.c:1248
#, 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:1254 remote-curl.c:1372
+#: remote-curl.c:1260 remote-curl.c:1378
#, c-format
msgid "http transport does not support %s"
msgstr "vận chuyển http không hỗ trợ %s"
-#: remote-curl.c:1290
+#: remote-curl.c:1296
msgid "git-http-push failed"
msgstr "git-http-push gặp lỗi"
-#: remote-curl.c:1478
+#: remote-curl.c:1485
msgid "remote-curl: usage: git remote-curl <remote> [<url>]"
msgstr "remote-curl: usage: git remote-curl <máy chủ> [<url>]"
-#: remote-curl.c:1510
+#: remote-curl.c:1517
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:1517
+#: remote-curl.c:1524
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:1558
+#: remote-curl.c:1565
#, c-format
msgid "remote-curl: unknown command '%s' from git"
msgstr "remote-curl: không hiểu lệnh “%s†từ git"
@@ -24717,121 +25272,121 @@ msgstr "cần một thư mục làm việc"
msgid "could not find enlistment root"
msgstr "không tìm thấy gốc enlistment"
-#: contrib/scalar/scalar.c:89 contrib/scalar/scalar.c:351
-#: contrib/scalar/scalar.c:436 contrib/scalar/scalar.c:579
+#: contrib/scalar/scalar.c:89 contrib/scalar/scalar.c:350
+#: contrib/scalar/scalar.c:435 contrib/scalar/scalar.c:578
#, c-format
msgid "could not switch to '%s'"
msgstr "không thể chuyển đến '%s'"
-#: contrib/scalar/scalar.c:180
+#: contrib/scalar/scalar.c:179
#, c-format
msgid "could not configure %s=%s"
msgstr "không thể đóng cấu hình %s=%s"
-#: contrib/scalar/scalar.c:198
+#: contrib/scalar/scalar.c:197
msgid "could not configure log.excludeDecoration"
msgstr "không thể cấu hình log.excludeDecoration"
-#: contrib/scalar/scalar.c:219
+#: contrib/scalar/scalar.c:218
msgid "Scalar enlistments require a worktree"
msgstr "'Scalar enlistments' cần một cây làm việc"
-#: contrib/scalar/scalar.c:311
+#: contrib/scalar/scalar.c:310
#, c-format
msgid "remote HEAD is not a branch: '%.*s'"
msgstr "HEAD của máy chủ không phải một nhánh: '%.*s'"
-#: contrib/scalar/scalar.c:317
+#: contrib/scalar/scalar.c:316
msgid "failed to get default branch name from remote; using local default"
msgstr "gặp lỗi khi lấy tên nhánh mặc định từ máy chủ; sử dụng mặc định nội bộ"
-#: contrib/scalar/scalar.c:330
+#: contrib/scalar/scalar.c:329
msgid "failed to get default branch name"
msgstr "gặp lỗi khi lấy tên nhánh mặc định"
-#: contrib/scalar/scalar.c:341
+#: contrib/scalar/scalar.c:340
msgid "failed to unregister repository"
msgstr "gặp lỗi khi hủy đăng ký kho chứa"
-#: contrib/scalar/scalar.c:356
+#: contrib/scalar/scalar.c:355
msgid "failed to delete enlistment directory"
msgstr "gặp lỗi khi xóa thư mục dành được"
-#: contrib/scalar/scalar.c:376
+#: contrib/scalar/scalar.c:375
msgid "branch to checkout after clone"
msgstr "nhánh để lấy ra sau khi nhân bản"
-#: contrib/scalar/scalar.c:378
+#: contrib/scalar/scalar.c:377
msgid "when cloning, create full working directory"
msgstr "khi nhân bản, tạo đầy đủ thư mục làm việc"
-#: contrib/scalar/scalar.c:380
+#: contrib/scalar/scalar.c:379
msgid "only download metadata for the branch that will be checked out"
msgstr "chỉ siêu dữ liệu tải vỠcho nhánh mà sẽ được lấy ra"
-#: contrib/scalar/scalar.c:385
+#: contrib/scalar/scalar.c:384
msgid "scalar clone [<options>] [--] <repo> [<dir>]"
msgstr "scalar clone [<các tùy chá»n>] [--] <kho> [<t.mục>]"
-#: contrib/scalar/scalar.c:410
+#: contrib/scalar/scalar.c:409
#, c-format
msgid "cannot deduce worktree name from '%s'"
msgstr "không thể suy diễn tên cây làm việc từ '%s'"
-#: contrib/scalar/scalar.c:419
+#: contrib/scalar/scalar.c:418
#, c-format
msgid "directory '%s' exists already"
msgstr "thư mục '%s' đã sẵn có"
-#: contrib/scalar/scalar.c:446
+#: contrib/scalar/scalar.c:445
#, c-format
msgid "failed to get default branch for '%s'"
msgstr "gặp lỗi khi lấy nhánh mặc định cho '%s'"
-#: contrib/scalar/scalar.c:457
+#: contrib/scalar/scalar.c:456
#, c-format
msgid "could not configure remote in '%s'"
msgstr "không thể cấu hình máy chủ trong '%s'"
-#: contrib/scalar/scalar.c:466
+#: contrib/scalar/scalar.c:465
#, c-format
msgid "could not configure '%s'"
msgstr "không thể cấu hình '%s'"
-#: contrib/scalar/scalar.c:469
+#: contrib/scalar/scalar.c:468
msgid "partial clone failed; attempting full clone"
msgstr "nhân bản từng phần gặp lỗi; đang cố thử nhân bản đầy đủ"
-#: contrib/scalar/scalar.c:473
+#: contrib/scalar/scalar.c:472
msgid "could not configure for full clone"
msgstr "không thể cấu hình cho nhân bản đầy đủ"
-#: contrib/scalar/scalar.c:505
+#: contrib/scalar/scalar.c:504
msgid "`scalar list` does not take arguments"
msgstr "`scalar list` không nhận các tham số"
-#: contrib/scalar/scalar.c:518
+#: contrib/scalar/scalar.c:517
msgid "scalar register [<enlistment>]"
msgstr "scalar register [<enlistment>]"
-#: contrib/scalar/scalar.c:545
+#: contrib/scalar/scalar.c:544
msgid "reconfigure all registered enlistments"
msgstr "cấu hình má»i enlistments đã đăng ký"
-#: contrib/scalar/scalar.c:549
+#: contrib/scalar/scalar.c:548
msgid "scalar reconfigure [--all | <enlistment>]"
msgstr "scalar reconfigure [--all | <enlistment>]"
-#: contrib/scalar/scalar.c:567
+#: contrib/scalar/scalar.c:566
msgid "--all or <enlistment>, but not both"
msgstr "--all hoặc <enlistment>, không thể là cả hai"
-#: contrib/scalar/scalar.c:582
+#: contrib/scalar/scalar.c:581
#, c-format
msgid "git repository gone in '%s'"
msgstr "kho git ra Ä‘i trong '%s'"
-#: contrib/scalar/scalar.c:622
+#: contrib/scalar/scalar.c:621
msgid ""
"scalar run <task> [<enlistment>]\n"
"Tasks:\n"
@@ -24839,42 +25394,55 @@ msgstr ""
"scalar run <task> [<enlistment>]\n"
"Nhiệm vụ:\n"
-#: contrib/scalar/scalar.c:640
+#: contrib/scalar/scalar.c:639
#, c-format
msgid "no such task: '%s'"
msgstr "không có nhiệm vụ nào nhÆ° thế: “%sâ€"
-#: contrib/scalar/scalar.c:690
+#: contrib/scalar/scalar.c:689
msgid "scalar unregister [<enlistment>]"
msgstr "scalar unregister [<enlistment>]"
-#: contrib/scalar/scalar.c:737
+#: contrib/scalar/scalar.c:736
msgid "scalar delete <enlistment>"
msgstr "scalar delete <enlistment>"
-#: contrib/scalar/scalar.c:752
+#: contrib/scalar/scalar.c:751
msgid "refusing to delete current working directory"
msgstr "từ chối gỡ bỠthư mục làm việc hiện tại"
-#: contrib/scalar/scalar.c:767
+#: contrib/scalar/scalar.c:766
msgid "include Git version"
msgstr "bao gồm phiên bản Git"
-#: contrib/scalar/scalar.c:769
+#: contrib/scalar/scalar.c:768
msgid "include Git's build options"
msgstr "bao gồm các tùy chá»n biên dịch của Git"
-#: contrib/scalar/scalar.c:773
+#: contrib/scalar/scalar.c:772
msgid "scalar verbose [-v | --verbose] [--build-options]"
msgstr "scalar verbose [-v | --verbose] [--build-options]"
+#: contrib/scalar/scalar.c:813
+msgid "-C requires a <directory>"
+msgstr "-C cần một <thư_mục>"
+
+#: contrib/scalar/scalar.c:815
+#, c-format
+msgid "could not change to '%s'"
+msgstr "không thể chuyển sang “%sâ€"
+
#: contrib/scalar/scalar.c:821
+msgid "-c requires a <key>=<value> argument"
+msgstr "-c cần một tham số <key>=<value>"
+
+#: contrib/scalar/scalar.c:839
msgid ""
-"scalar <command> [<options>]\n"
+"scalar [-C <directory>] [-c <key>=<value>] <command> [<options>]\n"
"\n"
"Commands:\n"
msgstr ""
-"scalar <lệnh> [<các tùy chá»n>]\n"
+"scalar [-C </thÆ°/mục/>] [-c <khóa>=<giá trị>] <lệnh> [<các tùy chá»n>]\n"
"\n"
"Các lệnh:\n"
@@ -24886,43 +25454,43 @@ msgstr "hiện không có thông tin vỠtrình biên dịch\n"
msgid "no libc information available\n"
msgstr "không có thông tin vỠlibc\n"
-#: list-objects-filter-options.h:94
+#: list-objects-filter-options.h:126
msgid "args"
msgstr "các_tham_số"
-#: list-objects-filter-options.h:95
+#: list-objects-filter-options.h:127
msgid "object filtering"
msgstr "lá»c đối tượng"
-#: parse-options.h:183
+#: parse-options.h:188
msgid "expiry-date"
msgstr "ngày hết hạn"
-#: parse-options.h:197
+#: parse-options.h:202
msgid "no-op (backward compatibility)"
msgstr "no-op (tương thích ngược)"
-#: parse-options.h:310
+#: parse-options.h:341
msgid "be more verbose"
msgstr "chi tiết hơn nữa"
-#: parse-options.h:312
+#: parse-options.h:343
msgid "be more quiet"
msgstr "im lặng hơn nữa"
-#: parse-options.h:318
+#: parse-options.h:349
msgid "use <n> digits to display object names"
msgstr "sử dụng <n> chữ số để hiển thị tên đối tượng"
-#: parse-options.h:337
+#: parse-options.h:368
msgid "how to strip spaces and #comments from message"
msgstr "làm thế nào để cắt bỠkhoảng trắng và #ghichú từ mẩu tin nhắn"
-#: parse-options.h:338
+#: parse-options.h:369
msgid "read pathspec from file"
msgstr "Ä‘á»c đặc tả Ä‘Æ°á»ng dẫn từ tập tin"
-#: parse-options.h:339
+#: parse-options.h:370
msgid ""
"with --pathspec-from-file, pathspec elements are separated with NUL character"
msgstr ""
@@ -25186,450 +25754,456 @@ msgid "Display help information about Git"
msgstr "Hiển thị thông tin trợ giúp vỠGit"
#: command-list.h:108
+msgid "Run git hooks"
+msgstr "Chạy các móc git"
+
+#: command-list.h:109
msgid "Server side implementation of Git over HTTP"
msgstr "Thi hành phía máy chủ của Git qua HTTP"
-#: command-list.h:109
+#: command-list.h:110
msgid "Download from a remote Git repository via HTTP"
msgstr "Tải vỠtừ một kho chứa Git trên mạng thông qua HTTP"
-#: command-list.h:110
+#: command-list.h:111
msgid "Push objects over HTTP/DAV to another repository"
msgstr "Äẩy các đối tượng lên thông qua HTTP/DAV đến kho chứa khác"
-#: command-list.h:111
+#: command-list.h:112
msgid "Send a collection of patches from stdin to an IMAP folder"
msgstr ""
"Gửi một bộ sưu tập các miếng vá từ đầu vào tiêu chuẩn đến một thư mục IMAP"
-#: command-list.h:112
+#: command-list.h:113
msgid "Build pack index file for an existing packed archive"
msgstr "Xây dựng tập tin mục lục gói cho một kho nén đã đóng gói sẵn có"
-#: command-list.h:113
+#: command-list.h:114
msgid "Create an empty Git repository or reinitialize an existing one"
msgstr "Tạo một kho git mới hay khởi tạo lại một kho đã tồn tại từ trước"
-#: command-list.h:114
+#: command-list.h:115
msgid "Instantly browse your working repository in gitweb"
msgstr "Duyệt ngay kho làm việc của bạn trong gitweb"
-#: command-list.h:115
+#: command-list.h:116
msgid "Add or parse structured information in commit messages"
msgstr "Thêm hay phân tích thông tin cấu trúc trong ghi chú lần chuyển giao"
-#: command-list.h:116
+#: command-list.h:117
msgid "Show commit logs"
msgstr "Hiển thị nhật ký các lần chuyển giao"
-#: command-list.h:117
+#: command-list.h:118
msgid "Show information about files in the index and the working tree"
msgstr "Hiển thị thông tin vỠcác tập tin trong bảng mục lục và cây làm việc"
-#: command-list.h:118
+#: command-list.h:119
msgid "List references in a remote repository"
msgstr "Liệt kê các tham chiếu trong một kho chứa trên mạng"
-#: command-list.h:119
+#: command-list.h:120
msgid "List the contents of a tree object"
msgstr "Liệt kê nội dung của đối tượng cây"
-#: command-list.h:120
+#: command-list.h:121
msgid "Extracts patch and authorship from a single e-mail message"
msgstr "Trích xuất miếng và và nguồn tác giả từ một thư điện tử đơn"
-#: command-list.h:121
+#: command-list.h:122
msgid "Simple UNIX mbox splitter program"
msgstr "Chương trình phân tách UNIX mbox đơn giản"
-#: command-list.h:122
+#: command-list.h:123
msgid "Run tasks to optimize Git repository data"
msgstr "Chạy các nhiệm vụ để tối ưu hóa dữ liệu kho Git"
-#: command-list.h:123
+#: command-list.h:124
msgid "Join two or more development histories together"
msgstr "Hợp nhất hai hay nhiá»u hÆ¡n lịch sá»­ của các nhà phát triển"
-#: command-list.h:124
+#: command-list.h:125
msgid "Find as good common ancestors as possible for a merge"
msgstr "Tìm các tổ tiên chung tốt có thể được cho hòa trộn"
-#: command-list.h:125
+#: command-list.h:126
msgid "Run a three-way file merge"
msgstr "Chạy má»™t hòa trá»™n tập tin “3-Ä‘Æ°á»ngâ€"
-#: command-list.h:126
+#: command-list.h:127
msgid "Run a merge for files needing merging"
msgstr "Chạy một hòa trộn cho các tập tin cần hòa trộn"
-#: command-list.h:127
+#: command-list.h:128
msgid "The standard helper program to use with git-merge-index"
msgstr "Một chương trình hỗ trợ tiêu chuẩn dùng với git-merge-index"
-#: command-list.h:128
+#: command-list.h:129
msgid "Show three-way merge without touching index"
msgstr "Hiển thị hòa trá»™n ba-Ä‘Æ°á»ng mà không đụng chạm đến mục lục"
-#: command-list.h:129
+#: command-list.h:130
msgid "Run merge conflict resolution tools to resolve merge conflicts"
msgstr ""
"Chạy công cụ phân giải xung đột hòa trộn để mà giải quyết các xung đột hòa "
"trá»™n"
-#: command-list.h:130
+#: command-list.h:131
msgid "Creates a tag object with extra validation"
msgstr "Tạo một đối tượng thẻ với kiểm tra mở rộng"
-#: command-list.h:131
+#: command-list.h:132
msgid "Build a tree-object from ls-tree formatted text"
msgstr "Xây dựng một tree-object từ văn bản định dạng ls-tree"
-#: command-list.h:132
+#: command-list.h:133
msgid "Write and verify multi-pack-indexes"
msgstr "Ghi và thẩm tra các multi-pack-indexes"
-#: command-list.h:133
+#: command-list.h:134
msgid "Move or rename a file, a directory, or a symlink"
msgstr "Di chuyển hay đổi tên má»™t tập tin, thÆ° mục hoặc liên kết má»m"
-#: command-list.h:134
+#: command-list.h:135
msgid "Find symbolic names for given revs"
msgstr "Tìm các tên liên kết má»m cho Ä‘iểm xét đã cho"
-#: command-list.h:135
+#: command-list.h:136
msgid "Add or inspect object notes"
msgstr "Thêm hoặc Ä‘iá»u tra đối tượng ghi chú"
-#: command-list.h:136
+#: command-list.h:137
msgid "Import from and submit to Perforce repositories"
msgstr "Nhập vào từ và gửi đến các kho cần thiết"
-#: command-list.h:137
+#: command-list.h:138
msgid "Create a packed archive of objects"
msgstr "Tạo một kho lưu được đóng gói cho các đối"
-#: command-list.h:138
+#: command-list.h:139
msgid "Find redundant pack files"
msgstr "Tìm các tập tin gói dư thừa"
-#: command-list.h:139
+#: command-list.h:140
msgid "Pack heads and tags for efficient repository access"
msgstr "Äóng gói các phần đầu và thẻ để truy cập kho hiệu quả hÆ¡n"
-#: command-list.h:140
+#: command-list.h:141
msgid "Compute unique ID for a patch"
msgstr "Tính toán ID duy nhất cho một miếng vá"
-#: command-list.h:141
+#: command-list.h:142
msgid "Prune all unreachable objects from the object database"
msgstr ""
"Xén bớt tất các các đối tượng không tiếp cận được từ cơ sở dữ liệu đối tượng"
-#: command-list.h:142
+#: command-list.h:143
msgid "Remove extra objects that are already in pack files"
msgstr "Xóa bỠcác đối tượng mở rộng cái mà đã sẵn có trong các tập tin gói"
-#: command-list.h:143
+#: command-list.h:144
msgid "Fetch from and integrate with another repository or a local branch"
msgstr "Lấy vỠvà hợp nhất với kho khác hay một nhánh nội bộ"
-#: command-list.h:144
+#: command-list.h:145
msgid "Update remote refs along with associated objects"
msgstr "Cập nhật th.chiếu máy chủ cùng với các đối tượng liên quan đến nó"
-#: command-list.h:145
+#: command-list.h:146
msgid "Applies a quilt patchset onto the current branch"
msgstr "Ấp dụng một bộ miếng vá quilt vào trong nhánh hiện hành"
-#: command-list.h:146
+#: command-list.h:147
msgid "Compare two commit ranges (e.g. two versions of a branch)"
msgstr "So sánh hai vùng chuyển giao (vd: hai phiên bản của một nhánh)"
-#: command-list.h:147
+#: command-list.h:148
msgid "Reads tree information into the index"
msgstr "Äá»c thông tin cây vào trong mục lục"
-#: command-list.h:148
+#: command-list.h:149
msgid "Reapply commits on top of another base tip"
msgstr "Thu hoạch các lần chuyển giao trên đỉnh của đầu mút cơ sở khác"
-#: command-list.h:149
+#: command-list.h:150
msgid "Receive what is pushed into the repository"
msgstr "Nhận cái mà được đẩy vào trong kho"
-#: command-list.h:150
+#: command-list.h:151
msgid "Manage reflog information"
msgstr "Quản lý thông tin reflog"
-#: command-list.h:151
+#: command-list.h:152
msgid "Manage set of tracked repositories"
msgstr "Quản lý tập hợp các kho chứa đã được theo dõi"
-#: command-list.h:152
+#: command-list.h:153
msgid "Pack unpacked objects in a repository"
msgstr "Äóng gói các đối tượng chÆ°a đóng gói ở má»™t kho chứa"
-#: command-list.h:153
+#: command-list.h:154
msgid "Create, list, delete refs to replace objects"
msgstr "Tạo, liệt kê, xóa các tham chiếu để thay thế các đối tượng"
-#: command-list.h:154
+#: command-list.h:155
msgid "Generates a summary of pending changes"
msgstr "Tạo ra một tóm tắt các thay đổi còn treo"
-#: command-list.h:155
+#: command-list.h:156
msgid "Reuse recorded resolution of conflicted merges"
msgstr "Dùng lại các giải pháp đã ghi lại của các hòa trộn bị xung đột"
-#: command-list.h:156
+#: command-list.h:157
msgid "Reset current HEAD to the specified state"
msgstr "Äặt lại HEAD hiện hành thành trạng thái đã cho"
-#: command-list.h:157
+#: command-list.h:158
msgid "Restore working tree files"
msgstr "Hoàn nguyên các tập tin cây làm việc"
-#: command-list.h:158
+#: command-list.h:159
msgid "Lists commit objects in reverse chronological order"
msgstr "Liệt kê các đối tượng chuyển giao theo thứ tự tôpô đảo ngược"
-#: command-list.h:159
+#: command-list.h:160
msgid "Pick out and massage parameters"
msgstr "Cậy ra và xử lý các tham số"
-#: command-list.h:160
+#: command-list.h:161
msgid "Revert some existing commits"
msgstr "Hoàn lại một số lần chuyển giao sẵn có"
-#: command-list.h:161
+#: command-list.h:162
msgid "Remove files from the working tree and from the index"
msgstr "Gỡ bỠcác tập tin từ cây làm việc và từ bảng mục lục"
-#: command-list.h:162
+#: command-list.h:163
msgid "Send a collection of patches as emails"
msgstr "Gửi một tập hợp của các miếng vá ở dạng thư điện tử"
-#: command-list.h:163
+#: command-list.h:164
msgid "Push objects over Git protocol to another repository"
msgstr "Äẩy các đối tượng lên thông qua giao thức Git đến kho chứa khác"
-#: command-list.h:164
+#: command-list.h:165
msgid "Git's i18n setup code for shell scripts"
msgstr "Nã cài đặt quốc tế hóa của Git cho văn lệnh hệ vá»"
-#: command-list.h:165
+#: command-list.h:166
msgid "Common Git shell script setup code"
msgstr "Mã cài đặt văn lệnh hệ vỠGit chung"
-#: command-list.h:166
+#: command-list.h:167
msgid "Restricted login shell for Git-only SSH access"
msgstr "Hệ vỠđăng nhập có hạn chế cho truy cập SSH chỉ-Git"
-#: command-list.h:167
+#: command-list.h:168
msgid "Summarize 'git log' output"
msgstr "Kết xuất “git log†dạng tóm tắt"
-#: command-list.h:168
+#: command-list.h:169
msgid "Show various types of objects"
msgstr "Hiển thị các kiểu khác nhau của các đối tượng"
-#: command-list.h:169
+#: command-list.h:170
msgid "Show branches and their commits"
msgstr "Hiển thị những nhánh và các lần chuyển giao của chúng"
-#: command-list.h:170
+#: command-list.h:171
msgid "Show packed archive index"
msgstr "Hiển thị các muc lục kho nén đã đóng gói"
-#: command-list.h:171
+#: command-list.h:172
msgid "List references in a local repository"
msgstr "Liệt kê các tham chiếu trong một kho nội bộ"
-#: command-list.h:172
-msgid "Initialize and modify the sparse-checkout"
-msgstr "Khởi tạo và sửa đổi sparse-checkout"
-
#: command-list.h:173
+msgid "Reduce your working tree to a subset of tracked files"
+msgstr ""
+"Giảm lược cây làm việc của bạn thành tập hợp con của các tập tin được theo "
+"dõi"
+
+#: command-list.h:174
msgid "Add file contents to the staging area"
msgstr "Thêm nội dung tập tin vào vùng bệ phóng"
-#: command-list.h:174
+#: command-list.h:175
msgid "Stash the changes in a dirty working directory away"
msgstr "Tạm cất đi các thay đổi trong một thư mục làm việc bẩn"
-#: command-list.h:175
+#: command-list.h:176
msgid "Show the working tree status"
msgstr "Hiển thị trạng thái cây làm việc"
-#: command-list.h:176
+#: command-list.h:177
msgid "Remove unnecessary whitespace"
msgstr "Xóa bỠcác khoảng trắng không cần thiết"
-#: command-list.h:177
+#: command-list.h:178
msgid "Initialize, update or inspect submodules"
msgstr "Khởi tạo, cập nhật hay Ä‘iá»u tra các mô-Ä‘un-con"
-#: command-list.h:178
+#: command-list.h:179
msgid "Bidirectional operation between a Subversion repository and Git"
msgstr "Thao tác hai hướng giữ hai kho Subversion và Git"
-#: command-list.h:179
+#: command-list.h:180
msgid "Switch branches"
msgstr "Các nhánh chuyển"
-#: command-list.h:180
+#: command-list.h:181
msgid "Read, modify and delete symbolic refs"
msgstr "Äá»c, sá»­a và xóa tham chiếu má»m"
-#: command-list.h:181
+#: command-list.h:182
msgid "Create, list, delete or verify a tag object signed with GPG"
msgstr "Tạo, liệt kê, xóa hay xác thực một đối tượng thẻ được ký bằng GPG"
-#: command-list.h:182
+#: command-list.h:183
msgid "Creates a temporary file with a blob's contents"
msgstr "Tạo một tập tin tạm với nội dung của blob"
-#: command-list.h:183
+#: command-list.h:184
msgid "Unpack objects from a packed archive"
msgstr "Gỡ các đối tượng khá»i má»™t kho lÆ°u đã đóng gói"
-#: command-list.h:184
+#: command-list.h:185
msgid "Register file contents in the working tree to the index"
msgstr "Äăng ký ná»™i dung tập tin từ cây làm việc đến bảng mục lục"
-#: command-list.h:185
+#: command-list.h:186
msgid "Update the object name stored in a ref safely"
msgstr "Cập nhật tên đối tượng được lưu trong một tham chiếu một cách an toàn"
-#: command-list.h:186
+#: command-list.h:187
msgid "Update auxiliary info file to help dumb servers"
msgstr "Cập nhật tập tin thông tin phụ trợ để giúp đỡ các dịch vụ dumb"
-#: command-list.h:187
+#: command-list.h:188
msgid "Send archive back to git-archive"
msgstr "Gửi kho lưu trở lại cho git-archive"
-#: command-list.h:188
+#: command-list.h:189
msgid "Send objects packed back to git-fetch-pack"
msgstr "Gửi các đối tượng đã đóng gói trở lại cho git-fetch-pack"
-#: command-list.h:189
+#: command-list.h:190
msgid "Show a Git logical variable"
msgstr "Hiển thị một biến Git luận lý"
-#: command-list.h:190
+#: command-list.h:191
msgid "Check the GPG signature of commits"
msgstr "Kiểm tra ký lần chuyển giao dùng GPG"
-#: command-list.h:191
+#: command-list.h:192
msgid "Validate packed Git archive files"
msgstr "Kiểm tra lại các tập tin kho (lưu trữ, nén) Git đã được đóng gói"
-#: command-list.h:192
+#: command-list.h:193
msgid "Check the GPG signature of tags"
msgstr "Kiểm tra chữ ký GPG của các thẻ"
-#: command-list.h:193
+#: command-list.h:194
msgid "Show logs with difference each commit introduces"
msgstr "Hiển thị các nhật ký với từng lần chuyển giao khác nhau đưa ra"
-#: command-list.h:194
+#: command-list.h:195
msgid "Manage multiple working trees"
msgstr "Quản lý nhiá»u cây làm việc"
-#: command-list.h:195
+#: command-list.h:196
msgid "Create a tree object from the current index"
msgstr "Tạo một đối tượng cây từ đầu vào tiêu chuẩn stdin hiện tại"
-#: command-list.h:196
+#: command-list.h:197
msgid "Defining attributes per path"
msgstr "Äịnh nghÄ©a các thuá»™c tính cho má»—i Ä‘Æ°á»ng dẫn"
-#: command-list.h:197
+#: command-list.h:198
msgid "Git command-line interface and conventions"
msgstr "Giao diện dòng lệnh Git và quy ước"
-#: command-list.h:198
+#: command-list.h:199
msgid "A Git core tutorial for developers"
msgstr "Hướng dẫn Git cơ bản cho nhà phát triển"
-#: command-list.h:199
+#: command-list.h:200
msgid "Providing usernames and passwords to Git"
msgstr "Cung cấp tài khoản và mật khẩu cho Git"
-#: command-list.h:200
+#: command-list.h:201
msgid "Git for CVS users"
msgstr "Git dành cho những ngÆ°á»i dùng CVS"
-#: command-list.h:201
+#: command-list.h:202
msgid "Tweaking diff output"
msgstr "Chỉnh kết xuất diff"
-#: command-list.h:202
+#: command-list.h:203
msgid "A useful minimum set of commands for Everyday Git"
msgstr "Một tập hợp lệnh hữu dụng tối thiểu để dùng Git hàng ngày"
-#: command-list.h:203
+#: command-list.h:204
msgid "Frequently asked questions about using Git"
msgstr "Các câu há»i thÆ°á»ng gặp vá» cách sá»­ dụng Git"
-#: command-list.h:204
+#: command-list.h:205
msgid "A Git Glossary"
msgstr "Thuật ngữ chuyên môn Git"
-#: command-list.h:205
+#: command-list.h:206
msgid "Hooks used by Git"
msgstr "Các móc được sử dụng bởi Git"
-#: command-list.h:206
+#: command-list.h:207
msgid "Specifies intentionally untracked files to ignore"
msgstr "Chỉ định các tập tin không cần theo dõi"
-#: command-list.h:207
+#: command-list.h:208
msgid "The Git repository browser"
msgstr "Bộ duyện kho Git"
-#: command-list.h:208
+#: command-list.h:209
msgid "Map author/committer names and/or E-Mail addresses"
msgstr "Ãnh xạ tên tác giả/ngÆ°á»i chuyển giao và/hoặc địa chỉ E-Mail"
-#: command-list.h:209
+#: command-list.h:210
msgid "Defining submodule properties"
msgstr "Äịnh nghÄ©a thuá»™c tính mô-Ä‘un-con"
-#: command-list.h:210
+#: command-list.h:211
msgid "Git namespaces"
msgstr "Không gian tên Git"
-#: command-list.h:211
+#: command-list.h:212
msgid "Helper programs to interact with remote repositories"
msgstr "Các chương trình hỗ trợ để tương tác với các kho chứa trên máy chủ"
-#: command-list.h:212
+#: command-list.h:213
msgid "Git Repository Layout"
msgstr "Bố cục kho Git"
-#: command-list.h:213
+#: command-list.h:214
msgid "Specifying revisions and ranges for Git"
msgstr "Chỉ định điểm xét duyệt và vùng cho Git"
-#: command-list.h:214
+#: command-list.h:215
msgid "Mounting one repository inside another"
msgstr "Gắn một kho chứa vào trong một cái khác"
-#: command-list.h:215
+#: command-list.h:216
msgid "A tutorial introduction to Git"
msgstr "Hướng dẫn cách dùng Git"
-#: command-list.h:216
+#: command-list.h:217
msgid "A tutorial introduction to Git: part two"
msgstr "Hướng dẫn cách dùng Git: phần hai"
-#: command-list.h:217
+#: command-list.h:218
msgid "Git web interface (web frontend to Git repositories)"
msgstr "Giao diện Git trên ná»n web (ứng dụng web chạy trên kho Git)"
-#: command-list.h:218
+#: command-list.h:219
msgid "An overview of recommended workflows with Git"
msgstr "Tổng quan vỠluồng công việc khuyến nghị nên dùng với Git"
@@ -25673,77 +26247,51 @@ msgstr "Äang thá»­ hòa trá»™n Ä‘Æ¡n giản vá»›i $pretty_name"
msgid "Simple merge did not work, trying automatic merge."
msgstr "Hòa trộn đơn giản không làm việc, thử hòa trộn tự động."
-#: git-submodule.sh:401
-#, sh-format
-msgid "Unable to find current revision in submodule path '$displaypath'"
-msgstr ""
-"Không tìm thấy Ä‘iểm xét duyệt hiện hành trong Ä‘Æ°á»ng dẫn mô-Ä‘un-con "
-"“$displaypathâ€"
-
-#: git-submodule.sh:411
-#, sh-format
-msgid "Unable to fetch in submodule path '$sm_path'"
-msgstr "Không thể lấy vá» trong Ä‘Æ°á»ng dẫn mô-Ä‘un-con “$sm_pathâ€"
-
-#: git-submodule.sh:416
-#, sh-format
-msgid ""
-"Unable to find current ${remote_name}/${branch} revision in submodule path "
-"'$sm_path'"
-msgstr ""
-"Không thể tìm thấy điểm xét duyệt hiện hành ${remote_name}/${branch} trong "
-"Ä‘Æ°á»ng dẫn mô-Ä‘un-con “$sm_pathâ€"
-
-#: git-submodule.sh:464
-#, sh-format
-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-sh-setup.sh:89 git-sh-setup.sh:94
#, sh-format
msgid "usage: $dashless $USAGE"
msgstr "cách dùng: $dashless $USAGE"
-#: git-sh-setup.sh:183
+#: git-sh-setup.sh:182
#, sh-format
msgid "Cannot chdir to $cdup, the toplevel of the working tree"
msgstr ""
"Không thể chuyển thư mục (chdir) sang $cdup, thư mục ở mức cao nhất của cây "
"làm việc"
-#: git-sh-setup.sh:192 git-sh-setup.sh:199
+#: git-sh-setup.sh:191 git-sh-setup.sh:198
#, sh-format
msgid "fatal: $program_name cannot be used without a working tree."
msgstr ""
"lá»—i nghiêm trá»ng: $program_name không thể được dùng ngoaoif thÆ° mục làm việc."
-#: git-sh-setup.sh:213
+#: git-sh-setup.sh:212
msgid "Cannot rewrite branches: You have unstaged changes."
msgstr ""
"Không thể ghi lại các nhánh: Bạn có các thay đổi chưa được đưa lên bệ phóng."
-#: git-sh-setup.sh:216
+#: git-sh-setup.sh:215
#, sh-format
msgid "Cannot $action: You have unstaged changes."
msgstr "Không thể $action: Bạn có các thay đổi chưa được đưa lên bệ phóng."
-#: git-sh-setup.sh:227
+#: git-sh-setup.sh:226
#, sh-format
msgid "Cannot $action: Your index contains uncommitted changes."
msgstr ""
"Không thể $action: Mục lục của bạn có chứa các thay đổi chưa được chuyển "
"giao."
-#: git-sh-setup.sh:229
+#: git-sh-setup.sh:228
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."
-#: git-sh-setup.sh:349
+#: git-sh-setup.sh:348
msgid "You need to run this command from the toplevel of the working tree."
msgstr "Bạn cần chạy lệnh này từ thư mục ở mức cao nhất của cây làm việc."
-#: git-sh-setup.sh:354
+#: git-sh-setup.sh:353
msgid "Unable to determine absolute path of git directory"
msgstr "Không thể dò tìm Ä‘Æ°á»ng dẫn tuyệt đối của thÆ° mục git"
@@ -26426,23 +26974,23 @@ msgstr "không thể lấy gửi thư dạng 7 bít"
msgid "invalid transfer encoding"
msgstr "bảng mã truyá»n không hợp lệ"
-#: git-send-email.perl:2095
+#: git-send-email.perl:2100
#, perl-format
msgid ""
-"fatal: %s: rejected by sendemail-validate hook\n"
+"fatal: %s: rejected by %s hook\n"
"%s\n"
"warning: no patches were sent\n"
msgstr ""
-"nghiêm trá»ng: %s: bị từ chối bởi móc sendemail-validate\n"
+"nghiêm trá»ng: %s: bị từ chối bởi móc %s\n"
"%s\n"
"cảnh báo: không có miếng vá nào được gửi đi\n"
-#: git-send-email.perl:2105 git-send-email.perl:2158 git-send-email.perl:2168
+#: git-send-email.perl:2110 git-send-email.perl:2163 git-send-email.perl:2173
#, perl-format
msgid "unable to open %s: %s\n"
msgstr "không thể mở %s: %s\n"
-#: git-send-email.perl:2108
+#: git-send-email.perl:2113
#, perl-format
msgid ""
"fatal: %s:%d is longer than 998 characters\n"
@@ -26451,13 +26999,280 @@ msgstr ""
"nghiêm trá»ng: %s: %d là dài hÆ¡n 998 ký tá»±\n"
"cảnh báo: không có miếng vá nào được gửi đi\n"
-#: git-send-email.perl:2126
+#: git-send-email.perl:2131
#, 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:2130
+#: git-send-email.perl:2135
#, 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): "
+
+#, perl-format
+#~ msgid "fatal: %s: rejected by %s hook\n"
+#~ msgstr "lá»—i nghiêm trá»ng: %s: bị từ chối bởi móc %s\n"
+
+#~ msgid "git archive --list"
+#~ msgstr "git archive --list"
+
+#, c-format
+#~ msgid "unknown value for --diff-merges: %s"
+#~ msgstr "không hiểu giá trị cho --diff-merges: %s"
+
+#, c-format
+#~ msgid "invalid value '%s' for lsrefs.unborn"
+#~ msgstr "giá trị “%s†không hợp lệ cho lsrefs.unborn"
+
+#~ msgid "backend for `git stash -p`"
+#~ msgstr "ứng dụng chạy phía sau cho “git stash -pâ€"
+
+#, c-format
+#~ msgid "Invalid value for --empty: %s"
+#~ msgstr "Giá trị cho --empty không hợp lệ: %s"
+
+#, c-format
+#~ msgid "Invalid value for --patch-format: %s"
+#~ msgstr "Giá trị không hợp lệ cho --patch-format: %s"
+
+#, c-format
+#~ msgid "Invalid value for --show-current-patch: %s"
+#~ msgstr "Giá trị không hợp lệ cho --show-current-patch: %s"
+
+#~ msgid ""
+#~ "git bisect--helper --bisect-terms [--term-good | --term-old | --term-bad "
+#~ "| --term-new]"
+#~ msgstr ""
+#~ "git bisect--helper --bisect-terms [--term-good | --term-old | --term-bad "
+#~ "| --term-new]"
+
+#~ msgid "git bisect--helper --bisect-next"
+#~ msgstr "git bisect--helper --bisect-next"
+
+#~ msgid "git bisect--helper --bisect-visualize"
+#~ msgstr "git bisect--helper --bisect-visualize"
+
+#, c-format
+#~ msgid "invalid color '%s' in color.blame.repeatedLines"
+#~ msgstr "màu không hợp lệ “%s†trong color.blame.repeatedLines"
+
+#~ msgid "invalid value for blame.coloring"
+#~ msgstr "màu không hợp lệ cho blame.coloring"
+
+#~ msgid ""
+#~ "git cat-file (-t [--allow-unknown-type] | -s [--allow-unknown-type] | -e "
+#~ "| -p | <type> | --textconv | --filters) [--path=<path>] <object>"
+#~ msgstr ""
+#~ "git cat-file (-t [--allow-unknown-type] | -s [--allow-unknown-type] | -e "
+#~ "| -p | <kiểu> | --textconv) | --filters) [--path=<Ä‘Æ°á»ng/dẫn>] <đối_tượng>"
+
+#~ msgid "show object type"
+#~ msgstr "hiển thị kiểu đối tượng"
+
+#~ msgid "exit with zero when there's no error"
+#~ msgstr "thoát với 0 khi không có lỗi"
+
+#~ msgid "show info and content of objects fed from the standard input"
+#~ msgstr ""
+#~ "hiển thị thông tin và nội dung của các đối tượng lấy từ đầu vào tiêu chuẩn"
+
+#~ msgid "show info about objects fed from the standard input"
+#~ msgstr "hiển thị các thông tin vỠđối tượng fed từ đầu vào tiêu chuẩn"
+
+#~ msgid "follow in-tree symlinks (used with --batch or --batch-check)"
+#~ msgstr ""
+#~ "theo liên kết má»m trong-cây (được dùng vá»›i --batch hay --batch-check)"
+
+#~ msgid "show all objects with --batch or --batch-check"
+#~ msgstr "hiển thị má»i đối tượng vá»›i --batch hay --batch-check"
+
+#~ msgid "do not order --batch-all-objects output"
+#~ msgstr "đừng sắp xếp đầu ra --batch-all-objects"
+
+#~ msgid "set up tracking mode (see git-pull(1))"
+#~ msgstr "cài đặt chế độ theo dõi (xem git-pull(1))"
+
+#~ msgid "Using both --reset-author and --author does not make sense"
+#~ msgstr "Sá»­ dụng cả hai tùy chá»n --reset-author và --author không hợp lý"
+
+#~ msgid "Options --squash and --fixup cannot be used together"
+#~ msgstr "Các tùy chá»n --squash và --fixup không thể sá»­ dụng cùng vá»›i nhau"
+
+#~ msgid "Only one of -c/-C/-F/--fixup can be used."
+#~ msgstr "Chỉ được dùng má»™t trong số tùy chá»n trong số -c/-C/-F/--fixup."
+
+#~ msgid "Option -m cannot be combined with -c/-C/-F."
+#~ msgstr "Tùy chá»n -m không thể được tổ hợp cùng vá»›i -c/-C/-F."
+
+#~ msgid ""
+#~ "Only one of --include/--only/--all/--interactive/--patch can be used."
+#~ msgstr ""
+#~ "Chỉ má»™t trong các tùy chá»n --include/--only/--all/--interactive/--patch "
+#~ "được sử dụng."
+
+#~ msgid "git count-objects [-v] [-H | --human-readable]"
+#~ msgstr "git count-objects [-v] [-H | --human-readable]"
+
+#, c-format
+#~ msgid "configuration fetch.output contains invalid value %s"
+#~ msgstr "phần cấu hình fetch.output có chứa giá-trị không hợp lệ %s"
+
+#~ msgid "--cached or --untracked cannot be used with --no-index"
+#~ msgstr "--cached hay --untracked không được sử dụng với --no-index"
+
+#~ msgid "--untracked cannot be used with --cached"
+#~ msgstr "--untracked không thể được sá»­ dụng vá»›i tùy chá»n --cached"
+
+#~ msgid "git hash-object --stdin-paths"
+#~ msgstr "git hash-object --stdin-paths"
+
+#~ msgid "git help [-g|--guides]"
+#~ msgstr "git help [-g|--guides]"
+
+#~ msgid "git help [-c|--config]"
+#~ msgstr "git help [-c|--config]"
+
+#~ msgid "git mktag"
+#~ msgstr "git mktag"
+
+#~ msgid "git mktree [-z] [--missing] [--batch]"
+#~ msgstr "git mktree [-z] [--missing] [--batch]"
+
+#~ msgid "read from stdin"
+#~ msgstr "Ä‘á»c từ đầu vào tiêu chuẩn"
+
+#~ msgid "git notes merge --commit [-v | -q]"
+#~ msgstr "git notes merge --commit [-v | -q]"
+
+#~ msgid "git notes merge --abort [-v | -q]"
+#~ msgstr "git notes merge --abort [-v | -q]"
+
+#~ msgid "git notes get-ref"
+#~ msgstr "git notes get-ref"
+
+#~ msgid "invalid value for --missing"
+#~ msgstr "giá trị cho --missing không hợp lệ"
+
+#~ msgid "git prune-packed [-n | --dry-run] [-q | --quiet]"
+#~ msgstr "git prune-packed [-n | --dry-run] [-q | --quiet]"
+
+#, c-format
+#~ msgid "Invalid value for %s: %s"
+#~ msgstr "Giá trị không hợp lệ %s: %s"
+
+#, c-format
+#~ msgid "Invalid value for pull.ff: %s"
+#~ msgstr "Giá trị không hợp lệ cho pull.ff: %s"
+
+#~ msgid "git rebase --continue | --abort | --skip | --edit-todo"
+#~ msgstr "git rebase --continue | --abort | --skip | --edit-todo"
+
+#, c-format
+#~ msgid "'%s' is not a valid timestamp"
+#~ msgstr "“%s†không phải là dấu thá»i gian hợp lệ"
+
+#~ msgid "git reflog [ show | expire | delete | exists ]"
+#~ msgstr "git reflog [ show | expire | delete | exists ]"
+
+#~ msgid "git remote [-v | --verbose]"
+#~ msgstr "git remote [-v | --verbose]"
+
+#~ msgid "git replace [-f] --convert-graft-file"
+#~ msgstr "git replace [-f] --convert-graft-file"
+
+#, c-format
+#~ msgid ""
+#~ "\n"
+#~ "It took %.2f seconds to enumerate unstaged changes after reset. You can\n"
+#~ "use '--quiet' to avoid this. Set the config setting reset.quiet to true\n"
+#~ "to make this the default.\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Cần %.2f giây để kiểm đếm các thay đổi chưa đưa lên bệ phóng sau khi đặt "
+#~ "lại.\n"
+#~ "Bạn có thể sá»­ dụng “--quiet†để tránh việc này. Äặt reset.quiet thành "
+#~ "true trong\n"
+#~ "cài đặt config nếu bạn muốn thực hiện nó như là mặc định.\n"
+
+#~ msgid "git sparse-checkout list"
+#~ msgstr "git sparse-checkout list"
+
+#~ 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"
+
+#~ msgid "git sparse-checkout init [--cone] [--[no-]sparse-index]"
+#~ msgstr "git sparse-checkout init [--cone] [--[no-]sparse-index]"
+
+#~ msgid "git sparse-checkout reapply [--[no-]cone] [--[no-]sparse-index]"
+#~ msgstr "git sparse-checkout reapply [--[no-]cone] [--[no-]sparse-index]"
+
+#~ msgid "git sparse-checkout disable"
+#~ msgstr "git sparse-checkout disable"
+
+#~ msgid ""
+#~ "the stash.useBuiltin support has been removed!\n"
+#~ "See its entry in 'git help config' for details."
+#~ msgstr ""
+#~ "việc hỗ trợ stash.useBuiltin đã bị xóa!\n"
+#~ "Xem mục tin của nó trong “git help config†để biết chi tiết."
+
+#~ msgid "git stripspace [-s | --strip-comments]"
+#~ msgstr "git stripspace [-s | --strip-comments]"
+
+#~ msgid "git stripspace [-c | --comment-lines]"
+#~ msgstr "git stripspace [-c | --comment-lines]"
+
+#~ msgid "submodule--helper print-default-remote takes no arguments"
+#~ msgstr "submodule--helper print-default-remote takes không nhận tham số"
+
+#~ msgid "git submodule--helper update-clone [--prefix=<path>] [<path>...]"
+#~ msgstr ""
+#~ "git submodule--helper update-clone [--prefix=</Ä‘Æ°á»ng/dẫn>] [</Ä‘Æ°á»ng/dẫn>…]"
+
+#~ msgid "suppress output for update by rebase or merge"
+#~ msgstr "chặn kết xuất cho cập nhật bởi cải tổ hoặc hòa trộn"
+
+#~ msgid "overrides update mode in case the repository is a fresh clone"
+#~ msgstr "ghi đè chế Ä‘á»™ cập nhật trong trÆ°á»ng hợp kho lÆ°u trữ là bản sao má»›i"
+
+#~ msgid "depth for shallow fetch"
+#~ msgstr "chiá»u sâu lịch sá»­ muốn lấy vá»"
+
+#~ msgid "sha1"
+#~ msgstr "sha1"
+
+#~ msgid "SHA1 expected by superproject"
+#~ msgstr "SHA1 là cần thiết cho superproject"
+
+#~ msgid "subsha1"
+#~ msgstr "subsha1"
+
+#~ msgid "SHA1 of submodule's HEAD"
+#~ msgstr "SHA1 của HEAD của mô-đun-con"
+
+#~ msgid "git submodule--helper run-update-procedure [<options>] <path>"
+#~ msgstr ""
+#~ "git submodule--helper run-update-procedure [<các tùy chá»n>] </Ä‘Æ°á»ng/dẫn>"
+
+#~ msgid "git submodule--helper config --check-writeable"
+#~ msgstr "git submodule--helper config --check-writeable"
+
+#~ msgid "git update-server-info [--force]"
+#~ msgstr "git update-server-info [--force]"
+
+#~ msgid "Initialize and modify the sparse-checkout"
+#~ msgstr "Khởi tạo và sửa đổi sparse-checkout"
+
+#, sh-format
+#~ msgid ""
+#~ "Unable to find current ${remote_name}/${branch} revision in submodule "
+#~ "path '$sm_path'"
+#~ msgstr ""
+#~ "Không thể tìm thấy điểm xét duyệt hiện hành ${remote_name}/${branch} "
+#~ "trong Ä‘Æ°á»ng dẫn mô-Ä‘un-con “$sm_pathâ€"
+
+#, sh-format
+#~ 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â€"
diff --git a/po/zh_CN.po b/po/zh_CN.po
index 484f2d8aaf..f0551f2c68 100644
--- a/po/zh_CN.po
+++ b/po/zh_CN.po
@@ -144,224 +144,223 @@ msgid ""
msgstr ""
"Project-Id-Version: Git\n"
"Report-Msgid-Bugs-To: Git Mailing List <git@vger.kernel.org>\n"
-"POT-Creation-Date: 2022-01-17 08:34+0800\n"
-"PO-Revision-Date: 2022-01-11 18:18+0000\n"
+"POT-Creation-Date: 2022-04-13 14:52+0800\n"
+"PO-Revision-Date: 2022-04-14 15:39+0100\n"
"Last-Translator: Fangyi Zhou <me@fangyi.io>\n"
-"Language-Team: GitHub <https://github.com/jiangxin/git/>\n"
+"Language-Team: GitHub <https://github.com/fangyi-zhou/git-po/>\n"
"Language: zh_CN\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Gtranslator 41.0\n"
+"X-Generator: Gtranslator 40.0\n"
-#: add-interactive.c:380
+#: add-interactive.c:382
#, c-format
msgid "Huh (%s)?"
msgstr "嗯(%s)?"
-#: add-interactive.c:533 add-interactive.c:834 reset.c:65 sequencer.c:3509
-#: sequencer.c:3974 sequencer.c:4136 builtin/rebase.c:1233
-#: builtin/rebase.c:1642
+#: add-interactive.c:535 add-interactive.c:836 reset.c:136 sequencer.c:3505
+#: sequencer.c:3970 sequencer.c:4127 builtin/rebase.c:1261
+#: builtin/rebase.c:1671
msgid "could not read index"
msgstr "ä¸èƒ½è¯»å–索引"
-#: add-interactive.c:588 git-add--interactive.perl:269
+#: add-interactive.c:590 git-add--interactive.perl:269
#: git-add--interactive.perl:294
msgid "binary"
msgstr "二进制"
-#: add-interactive.c:646 git-add--interactive.perl:278
+#: add-interactive.c:648 git-add--interactive.perl:278
#: git-add--interactive.perl:332
msgid "nothing"
msgstr "æ— "
-#: add-interactive.c:647 git-add--interactive.perl:314
+#: add-interactive.c:649 git-add--interactive.perl:314
#: git-add--interactive.perl:329
msgid "unchanged"
msgstr "没有修改"
-#: add-interactive.c:684 git-add--interactive.perl:641
+#: add-interactive.c:686 git-add--interactive.perl:641
msgid "Update"
msgstr "æ›´æ–°"
-#: add-interactive.c:701 add-interactive.c:889
+#: add-interactive.c:703 add-interactive.c:891
#, c-format
msgid "could not stage '%s'"
msgstr "ä¸èƒ½æš‚å­˜ '%s'"
-#: add-interactive.c:707 add-interactive.c:896 reset.c:89 sequencer.c:3713
+#: add-interactive.c:709 add-interactive.c:898 reset.c:160 sequencer.c:3709
msgid "could not write index"
msgstr "ä¸èƒ½å†™å…¥ç´¢å¼•"
-#: add-interactive.c:710 git-add--interactive.perl:626
+#: add-interactive.c:712 git-add--interactive.perl:626
#, c-format, perl-format
msgid "updated %d path\n"
msgid_plural "updated %d paths\n"
msgstr[0] "更新了 %d 个路径\n"
msgstr[1] "更新了 %d 个路径\n"
-#: add-interactive.c:728 git-add--interactive.perl:676
+#: add-interactive.c:730 git-add--interactive.perl:676
#, c-format, perl-format
msgid "note: %s is untracked now.\n"
msgstr "说明:%s 现已æˆä¸ºæœªè·Ÿè¸ªçš„。\n"
-#: add-interactive.c:733 apply.c:4151 builtin/checkout.c:306
+#: add-interactive.c:735 apply.c:4133 builtin/checkout.c:311
#: builtin/reset.c:167
#, c-format
msgid "make_cache_entry failed for path '%s'"
msgstr "对路径 '%s' çš„ make_cache_entry æ“作失败"
-#: add-interactive.c:763 git-add--interactive.perl:653
+#: add-interactive.c:765 git-add--interactive.perl:653
msgid "Revert"
msgstr "还原"
-#: add-interactive.c:779
+#: add-interactive.c:781
msgid "Could not parse HEAD^{tree}"
msgstr "ä¸èƒ½è§£æž HEAD^{tree}"
-#: add-interactive.c:817 git-add--interactive.perl:629
+#: add-interactive.c:819 git-add--interactive.perl:629
#, c-format, perl-format
msgid "reverted %d path\n"
msgid_plural "reverted %d paths\n"
msgstr[0] "还原了 %d 个路径\n"
msgstr[1] "还原了 %d 个路径\n"
-#: add-interactive.c:868 git-add--interactive.perl:693
+#: add-interactive.c:870 git-add--interactive.perl:693
#, c-format
msgid "No untracked files.\n"
msgstr "没有未跟踪的文件。\n"
-#: add-interactive.c:872 git-add--interactive.perl:687
+#: add-interactive.c:874 git-add--interactive.perl:687
msgid "Add untracked"
msgstr "添加未跟踪的"
-#: add-interactive.c:899 git-add--interactive.perl:623
+#: add-interactive.c:901 git-add--interactive.perl:623
#, c-format, perl-format
msgid "added %d path\n"
msgid_plural "added %d paths\n"
msgstr[0] "增加了 %d 个路径\n"
msgstr[1] "增加了 %d 个路径\n"
-#: add-interactive.c:929
+#: add-interactive.c:931
#, c-format
msgid "ignoring unmerged: %s"
msgstr "忽略未åˆå…¥çš„:%s"
-#: add-interactive.c:941 add-patch.c:1752 git-add--interactive.perl:1371
+#: add-interactive.c:943 add-patch.c:1758 git-add--interactive.perl:1371
#, c-format
msgid "Only binary files changed.\n"
msgstr "åªæœ‰äºŒè¿›åˆ¶æ–‡ä»¶è¢«ä¿®æ”¹ã€‚\n"
-#: add-interactive.c:943 add-patch.c:1750 git-add--interactive.perl:1373
+#: add-interactive.c:945 add-patch.c:1756 git-add--interactive.perl:1373
#, c-format
msgid "No changes.\n"
msgstr "没有修改。\n"
-#: add-interactive.c:947 git-add--interactive.perl:1381
+#: add-interactive.c:949 git-add--interactive.perl:1381
msgid "Patch update"
msgstr "è¡¥ä¸æ›´æ–°"
-#: add-interactive.c:986 git-add--interactive.perl:1794
+#: add-interactive.c:988 git-add--interactive.perl:1794
msgid "Review diff"
msgstr "检视 diff"
-#: add-interactive.c:1014
+#: add-interactive.c:1016
msgid "show paths with changes"
msgstr "显示å«å˜æ›´çš„路径"
-#: add-interactive.c:1016
+#: add-interactive.c:1018
msgid "add working tree state to the staged set of changes"
msgstr "将工作区状æ€æ·»åŠ åˆ°æš‚存区修改集中"
-#: add-interactive.c:1018
+#: add-interactive.c:1020
msgid "revert staged set of changes back to the HEAD version"
msgstr "将暂存的修改集æ¢å¤ä¸º HEAD 版本"
-#: add-interactive.c:1020
+#: add-interactive.c:1022
msgid "pick hunks and update selectively"
msgstr "挑选数æ®å—并有选择地更新"
-#: add-interactive.c:1022
+#: add-interactive.c:1024
msgid "view diff between HEAD and index"
msgstr "显示 HEAD 和索引的差异"
-#: add-interactive.c:1024
+#: add-interactive.c:1026
msgid "add contents of untracked files to the staged set of changes"
msgstr "将未跟踪文件的内容添加到暂存区修改集中"
-#: add-interactive.c:1032 add-interactive.c:1081
+#: add-interactive.c:1034 add-interactive.c:1083
msgid "Prompt help:"
msgstr "帮助:"
-#: add-interactive.c:1034
+#: add-interactive.c:1036
msgid "select a single item"
msgstr "选择一个æ¡ç›®"
-#: add-interactive.c:1036
+#: add-interactive.c:1038
msgid "select a range of items"
msgstr "选择一系列æ¡ç›®"
-#: add-interactive.c:1038
+#: add-interactive.c:1040
msgid "select multiple ranges"
msgstr "选择多个范围"
-#: add-interactive.c:1040 add-interactive.c:1085
+#: add-interactive.c:1042 add-interactive.c:1087
msgid "select item based on unique prefix"
msgstr "基于唯一å‰ç¼€é€‰æ‹©æ¡ç›®"
-#: add-interactive.c:1042
+#: add-interactive.c:1044
msgid "unselect specified items"
msgstr "å选指定的æ¡ç›®"
-#: add-interactive.c:1044
+#: add-interactive.c:1046
msgid "choose all items"
msgstr "选择所有æ¡ç›®"
-#: add-interactive.c:1046
+#: add-interactive.c:1048
msgid "(empty) finish selecting"
msgstr "(空)结æŸé€‰æ‹©"
-#: add-interactive.c:1083
+#: add-interactive.c:1085
msgid "select a numbered item"
msgstr "选择一个编å·æ¡ç›®"
-#: add-interactive.c:1087
+#: add-interactive.c:1089
msgid "(empty) select nothing"
msgstr "(空)ä¸é€‰æ‹©ä»»ä½•å†…容"
-#: add-interactive.c:1095 builtin/clean.c:839 git-add--interactive.perl:1898
+#: add-interactive.c:1097 builtin/clean.c:839 git-add--interactive.perl:1898
msgid "*** Commands ***"
msgstr "*** 命令 ***"
-#: add-interactive.c:1096 builtin/clean.c:840 git-add--interactive.perl:1895
+#: add-interactive.c:1098 builtin/clean.c:840 git-add--interactive.perl:1895
msgid "What now"
msgstr "请选择"
-#: add-interactive.c:1148 git-add--interactive.perl:213
+#: add-interactive.c:1150 git-add--interactive.perl:213
msgid "staged"
msgstr "缓存"
-#: add-interactive.c:1148 git-add--interactive.perl:213
+#: add-interactive.c:1150 git-add--interactive.perl:213
msgid "unstaged"
msgstr "未缓存"
-#: add-interactive.c:1148 apply.c:5020 apply.c:5023 builtin/am.c:2367
-#: builtin/am.c:2370 builtin/bugreport.c:107 builtin/clone.c:128
-#: builtin/fetch.c:153 builtin/merge.c:287 builtin/pull.c:194
-#: builtin/submodule--helper.c:404 builtin/submodule--helper.c:1858
-#: builtin/submodule--helper.c:1861 builtin/submodule--helper.c:2504
-#: builtin/submodule--helper.c:2507 builtin/submodule--helper.c:2574
-#: builtin/submodule--helper.c:2579 builtin/submodule--helper.c:2812
+#: add-interactive.c:1150 apply.c:5002 apply.c:5005 builtin/am.c:2370
+#: builtin/am.c:2373 builtin/bugreport.c:107 builtin/clone.c:132
+#: builtin/fetch.c:154 builtin/merge.c:287 builtin/pull.c:194
+#: builtin/submodule--helper.c:412 builtin/submodule--helper.c:1872
+#: builtin/submodule--helper.c:1875 builtin/submodule--helper.c:2709
+#: builtin/submodule--helper.c:2712 builtin/submodule--helper.c:2891
#: git-add--interactive.perl:213
msgid "path"
msgstr "路径"
-#: add-interactive.c:1155
+#: add-interactive.c:1157
msgid "could not refresh index"
msgstr "ä¸èƒ½åˆ·æ–°ç´¢å¼•"
-#: add-interactive.c:1169 builtin/clean.c:804 git-add--interactive.perl:1805
+#: add-interactive.c:1171 builtin/clean.c:804 git-add--interactive.perl:1805
#, c-format
msgid "Bye.\n"
msgstr "å†è§ã€‚\n"
@@ -662,30 +661,30 @@ msgstr "无法解æžæ•°æ®å—å¤´ä¿¡æ¯ '%.*s'"
msgid "could not parse colored hunk header '%.*s'"
msgstr "无法解æžå½©è‰²æ•°æ®å—å¤´ä¿¡æ¯ '%.*s'"
-#: add-patch.c:420
+#: add-patch.c:431
msgid "could not parse diff"
msgstr "ä¸èƒ½è§£æžå·®å¼‚ä¿¡æ¯"
-#: add-patch.c:439
+#: add-patch.c:450
msgid "could not parse colored diff"
msgstr "ä¸èƒ½è§£æžå½©è‰²å·®å¼‚ä¿¡æ¯"
-#: add-patch.c:453
+#: add-patch.c:464
#, c-format
msgid "failed to run '%s'"
msgstr "无法è¿è¡Œ '%s'"
-#: add-patch.c:612
+#: add-patch.c:618
msgid "mismatched output from interactive.diffFilter"
msgstr "interactive.diffFilter 的输出ä¸åŒ¹é…"
-#: add-patch.c:613
+#: add-patch.c:619
msgid ""
"Your filter must maintain a one-to-one correspondence\n"
"between its input and output lines."
msgstr "您的过滤器必须在其输入和输出的行之间ä¿æŒä¸€ä¸€å¯¹åº”的关系。"
-#: add-patch.c:791
+#: add-patch.c:797
#, c-format
msgid ""
"expected context line #%d in\n"
@@ -694,7 +693,7 @@ msgstr ""
"预期上下文行 #%d 于\n"
"%.*s"
-#: add-patch.c:806
+#: add-patch.c:812
#, c-format
msgid ""
"hunks do not overlap:\n"
@@ -707,11 +706,11 @@ msgstr ""
"\tä¸æ˜¯ç»“尾于:\n"
"%.*s"
-#: add-patch.c:1082 git-add--interactive.perl:1115
+#: add-patch.c:1088 git-add--interactive.perl:1115
msgid "Manual hunk edit mode -- see bottom for a quick guide.\n"
msgstr "手动å—ç¼–è¾‘æ¨¡å¼ -- 查看底部的快速指å—。\n"
-#: add-patch.c:1086
+#: add-patch.c:1092
#, c-format
msgid ""
"---\n"
@@ -725,7 +724,7 @@ msgstr ""
"以 %c 开始的行将被删除。\n"
#. TRANSLATORS: 'it' refers to the patch mentioned in the previous messages.
-#: add-patch.c:1100 git-add--interactive.perl:1129
+#: add-patch.c:1106 git-add--interactive.perl:1129
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"
@@ -734,11 +733,11 @@ msgstr ""
"如果ä¸èƒ½å¹²å‡€åœ°åº”用,您将有机会é‡æ–°ç¼–辑。如果该å—的全部内容删除,则\n"
"此次编辑被终止,该å—ä¸ä¼šè¢«ä¿®æ”¹ã€‚\n"
-#: add-patch.c:1133
+#: add-patch.c:1139
msgid "could not parse hunk header"
msgstr "无法解æžæ•°æ®å—头信æ¯"
-#: add-patch.c:1178
+#: add-patch.c:1184
msgid "'git apply --cached' failed"
msgstr "'git apply --cached' 失败"
@@ -754,24 +753,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:1247 git-add--interactive.perl:1244
+#: add-patch.c:1253 git-add--interactive.perl:1244
msgid ""
"Your edited hunk does not apply. Edit again (saying \"no\" discards!) [y/n]? "
msgstr "您的编辑å—ä¸èƒ½è¢«åº”用。é‡æ–°ç¼–辑(选择 \"no\" 丢弃ï¼ï¼‰ [y/n]? "
-#: add-patch.c:1290
+#: add-patch.c:1296
msgid "The selected hunks do not apply to the index!"
msgstr "选中的å—ä¸èƒ½åº”用到索引ï¼"
-#: add-patch.c:1291 git-add--interactive.perl:1348
+#: add-patch.c:1297 git-add--interactive.perl:1348
msgid "Apply them to the worktree anyway? "
msgstr "无论如何都è¦åº”用到工作区么?"
-#: add-patch.c:1298 git-add--interactive.perl:1351
+#: add-patch.c:1304 git-add--interactive.perl:1351
msgid "Nothing was applied.\n"
msgstr "未应用。\n"
-#: add-patch.c:1355
+#: add-patch.c:1361
msgid ""
"j - leave this hunk undecided, see next undecided hunk\n"
"J - leave this hunk undecided, see next hunk\n"
@@ -793,73 +792,73 @@ msgstr ""
"e - 手动编辑当å‰å—\n"
"? - 显示帮助\n"
-#: add-patch.c:1517 add-patch.c:1527
+#: add-patch.c:1523 add-patch.c:1533
msgid "No previous hunk"
msgstr "没有å‰ä¸€ä¸ªå—"
-#: add-patch.c:1522 add-patch.c:1532
+#: add-patch.c:1528 add-patch.c:1538
msgid "No next hunk"
msgstr "没有下一个å—"
-#: add-patch.c:1538
+#: add-patch.c:1544
msgid "No other hunks to goto"
msgstr "没有其它å¯ä¾›è·³è½¬çš„å—"
-#: add-patch.c:1549 git-add--interactive.perl:1608
+#: add-patch.c:1555 git-add--interactive.perl:1608
msgid "go to which hunk (<ret> to see more)? "
msgstr "跳转到哪个å—(<回车> 查看更多)? "
-#: add-patch.c:1550 git-add--interactive.perl:1610
+#: add-patch.c:1556 git-add--interactive.perl:1610
msgid "go to which hunk? "
msgstr "跳转到哪个å—?"
-#: add-patch.c:1561
+#: add-patch.c:1567
#, c-format
msgid "Invalid number: '%s'"
msgstr "无效数字:'%s'"
-#: add-patch.c:1566
+#: add-patch.c:1572
#, c-format
msgid "Sorry, only %d hunk available."
msgid_plural "Sorry, only %d hunks available."
msgstr[0] "对ä¸èµ·ï¼Œåªæœ‰ %d 个å¯ç”¨å—。"
msgstr[1] "对ä¸èµ·ï¼Œåªæœ‰ %d 个å¯ç”¨å—。"
-#: add-patch.c:1575
+#: add-patch.c:1581
msgid "No other hunks to search"
msgstr "没有其它å¯ä¾›æŸ¥æ‰¾çš„å—"
-#: add-patch.c:1581 git-add--interactive.perl:1663
+#: add-patch.c:1587 git-add--interactive.perl:1663
msgid "search for regex? "
msgstr "使用正则表达å¼æœç´¢ï¼Ÿ"
-#: add-patch.c:1596
+#: add-patch.c:1602
#, c-format
msgid "Malformed search regexp %s: %s"
msgstr "é”™è¯¯çš„æ­£åˆ™è¡¨è¾¾å¼ %s:%s"
-#: add-patch.c:1613
+#: add-patch.c:1619
msgid "No hunk matches the given pattern"
msgstr "没有和给定模å¼ç›¸åŒ¹é…çš„å—"
-#: add-patch.c:1620
+#: add-patch.c:1626
msgid "Sorry, cannot split this hunk"
msgstr "对ä¸èµ·ï¼Œä¸èƒ½æ‹†åˆ†è¿™ä¸ªå—"
-#: add-patch.c:1624
+#: add-patch.c:1630
#, c-format
msgid "Split into %d hunks."
msgstr "拆分为 %d å—。"
-#: add-patch.c:1628
+#: add-patch.c:1634
msgid "Sorry, cannot edit this hunk"
msgstr "对ä¸èµ·ï¼Œä¸èƒ½ç¼–辑这个å—"
-#: add-patch.c:1680
+#: add-patch.c:1686
msgid "'git apply' failed"
msgstr "'git apply' 失败"
-#: advice.c:78
+#: advice.c:81
#, c-format
msgid ""
"\n"
@@ -868,37 +867,37 @@ msgstr ""
"\n"
"使用 \"git config advice.%s false\" æ¥å…³é—­æ­¤æ¶ˆæ¯"
-#: advice.c:94
+#: advice.c:97
#, c-format
msgid "%shint: %.*s%s\n"
msgstr "%sæ示:%.*s%s\n"
-#: advice.c:178
+#: advice.c:181
msgid "Cherry-picking is not possible because you have unmerged files."
msgstr "无法拣选,因为您有未åˆå¹¶çš„文件。"
-#: advice.c:180
+#: advice.c:183
msgid "Committing is not possible because you have unmerged files."
msgstr "无法æ交,因为您有未åˆå¹¶çš„文件。"
-#: advice.c:182
+#: advice.c:185
msgid "Merging is not possible because you have unmerged files."
msgstr "无法åˆå¹¶ï¼Œå› ä¸ºæ‚¨æœ‰æœªåˆå¹¶çš„文件。"
-#: advice.c:184
+#: advice.c:187
msgid "Pulling is not possible because you have unmerged files."
msgstr "无法拉å–,因为您有未åˆå¹¶çš„文件。"
-#: advice.c:186
+#: advice.c:189
msgid "Reverting is not possible because you have unmerged files."
msgstr "无法回退,因为您有未åˆå¹¶çš„文件。"
-#: advice.c:188
+#: advice.c:191
#, c-format
msgid "It is not possible to %s because you have unmerged files."
msgstr "无法 %s,因为您有未åˆå¹¶çš„文件。"
-#: advice.c:196
+#: advice.c:199
msgid ""
"Fix them up in the work tree, and then use 'git add/rm <file>'\n"
"as appropriate to mark resolution and make a commit."
@@ -906,27 +905,27 @@ msgstr ""
"请在工作区改正文件,然åŽé…Œæƒ…使用 'git add/rm <文件>' 命令标记\n"
"解决方案并æ交。"
-#: advice.c:204
+#: advice.c:207
msgid "Exiting because of an unresolved conflict."
msgstr "因为存在未解决的冲çªè€Œé€€å‡ºã€‚"
-#: advice.c:209 builtin/merge.c:1382
+#: advice.c:212 builtin/merge.c:1388
msgid "You have not concluded your merge (MERGE_HEAD exists)."
msgstr "您尚未结æŸæ‚¨çš„åˆå¹¶ï¼ˆå­˜åœ¨ MERGE_HEAD)。"
-#: advice.c:211
+#: advice.c:214
msgid "Please, commit your changes before merging."
msgstr "请在åˆå¹¶å‰å…ˆæ交您的修改。"
-#: advice.c:212
+#: advice.c:215
msgid "Exiting because of unfinished merge."
msgstr "因为存在未完æˆçš„åˆå¹¶è€Œé€€å‡ºã€‚"
-#: advice.c:217
+#: advice.c:220
msgid "Not possible to fast-forward, aborting."
msgstr "无法快进,终止。"
-#: advice.c:227
+#: advice.c:230
#, c-format
msgid ""
"The following paths and/or pathspecs matched paths that exist\n"
@@ -936,7 +935,7 @@ msgstr ""
"下é¢çš„路径和/或者路径规格匹é…了您定义的稀ç–检出以外的路径,\n"
"所以ä¸ä¼šåœ¨ç´¢å¼•ä¸­æ›´æ–°ï¼š\n"
-#: advice.c:234
+#: advice.c:237
msgid ""
"If you intend to update such entries, try one of the following:\n"
"* Use the --sparse option.\n"
@@ -946,7 +945,7 @@ msgstr ""
"* 使用 --sparse 选项。\n"
"* ç¦ç”¨æˆ–者修改稀ç–规则。"
-#: advice.c:242
+#: advice.c:245
#, c-format
msgid ""
"Note: switching to '%s'.\n"
@@ -1003,80 +1002,83 @@ msgstr "未能识别的空白字符选项 '%s'"
msgid "unrecognized whitespace ignore option '%s'"
msgstr "未能识别的空白字符忽略选项 '%s'"
-#: apply.c:136 archive.c:584 range-diff.c:559 revision.c:2303 revision.c:2307
-#: revision.c:2316 revision.c:2321 revision.c:2527 revision.c:2870
-#: revision.c:2874 revision.c:2880 revision.c:2883 revision.c:2885
-#: builtin/add.c:510 builtin/add.c:512 builtin/add.c:529 builtin/add.c:541
-#: builtin/branch.c:727 builtin/checkout.c:467 builtin/checkout.c:470
-#: builtin/checkout.c:1644 builtin/checkout.c:1754 builtin/checkout.c:1757
-#: builtin/clone.c:906 builtin/commit.c:358 builtin/commit.c:361
-#: builtin/commit.c:1196 builtin/describe.c:593 builtin/diff-tree.c:155
-#: builtin/difftool.c:733 builtin/fast-export.c:1245 builtin/fetch.c:2038
-#: builtin/fetch.c:2043 builtin/index-pack.c:1852 builtin/init-db.c:560
-#: builtin/log.c:1946 builtin/log.c:1948 builtin/ls-files.c:778
-#: builtin/merge.c:1403 builtin/merge.c:1405 builtin/pack-objects.c:4073
-#: builtin/push.c:592 builtin/push.c:630 builtin/push.c:636 builtin/push.c:641
-#: builtin/rebase.c:1193 builtin/rebase.c:1195 builtin/rebase.c:1199
-#: builtin/repack.c:684 builtin/repack.c:715 builtin/reset.c:426
-#: builtin/reset.c:462 builtin/rev-list.c:541 builtin/show-branch.c:710
-#: builtin/stash.c:1707 builtin/stash.c:1710 builtin/submodule--helper.c:1316
-#: builtin/submodule--helper.c:2975 builtin/tag.c:526 builtin/tag.c:572
-#: builtin/worktree.c:702
+#: apply.c:138 archive.c:584 parse-options.c:1122 range-diff.c:555
+#: revision.c:2314 revision.c:2318 revision.c:2327 revision.c:2332
+#: revision.c:2560 revision.c:2895 revision.c:2899 revision.c:2907
+#: revision.c:2910 revision.c:2912 builtin/add.c:507 builtin/add.c:509
+#: builtin/add.c:515 builtin/add.c:527 builtin/branch.c:755
+#: builtin/checkout.c:472 builtin/checkout.c:475 builtin/checkout.c:1663
+#: builtin/checkout.c:1773 builtin/checkout.c:1776 builtin/clone.c:921
+#: builtin/commit.c:359 builtin/commit.c:362 builtin/commit.c:1200
+#: builtin/commit.c:1256 builtin/commit.c:1273 builtin/describe.c:593
+#: builtin/diff-tree.c:155 builtin/difftool.c:733 builtin/fast-export.c:1245
+#: builtin/fetch.c:2141 builtin/fetch.c:2162 builtin/fetch.c:2167
+#: builtin/help.c:602 builtin/index-pack.c:1858 builtin/init-db.c:560
+#: builtin/log.c:1968 builtin/log.c:1970 builtin/ls-files.c:778
+#: builtin/merge-base.c:163 builtin/merge-base.c:169 builtin/merge.c:1409
+#: builtin/merge.c:1411 builtin/pack-objects.c:4098 builtin/push.c:592
+#: builtin/push.c:630 builtin/push.c:636 builtin/push.c:641
+#: builtin/rebase.c:1221 builtin/rebase.c:1223 builtin/rebase.c:1227
+#: builtin/repack.c:688 builtin/repack.c:719 builtin/reset.c:433
+#: builtin/reset.c:469 builtin/rev-list.c:537 builtin/show-branch.c:711
+#: builtin/stash.c:1696 builtin/stash.c:1699 builtin/submodule--helper.c:1328
+#: builtin/submodule--helper.c:3054 builtin/tag.c:527 builtin/tag.c:573
+#: builtin/worktree.c:779
#, c-format
msgid "options '%s' and '%s' cannot be used together"
msgstr "选项 '%s' å’Œ '%s' ä¸èƒ½åŒæ—¶ä½¿ç”¨"
-#: apply.c:139 apply.c:150 apply.c:153
+#: apply.c:141 apply.c:152 apply.c:155
#, c-format
msgid "'%s' outside a repository"
msgstr "'%s' 在仓库之外"
-#: apply.c:800
+#: apply.c:807
#, c-format
msgid "Cannot prepare timestamp regexp %s"
msgstr "æ— æ³•å‡†å¤‡æ—¶é—´æˆ³æ­£åˆ™è¡¨è¾¾å¼ %s"
-#: apply.c:809
+#: apply.c:816
#, c-format
msgid "regexec returned %d for input: %s"
msgstr "regexec 返回 %d,输入为:%s"
-#: apply.c:883
+#: apply.c:890
#, c-format
msgid "unable to find filename in patch at line %d"
msgstr "ä¸èƒ½åœ¨è¡¥ä¸çš„第 %d 行找到文件å"
-#: apply.c:921
+#: apply.c:928
#, c-format
msgid "git apply: bad git-diff - expected /dev/null, got %s on line %d"
msgstr "git apply:错误的 git-diff - 应为 /dev/null,但在第 %2$d 行得到 %1$s"
-#: apply.c:927
+#: apply.c:934
#, c-format
msgid "git apply: bad git-diff - inconsistent new filename on line %d"
msgstr "git apply:错误的 git-diff - 第 %d 行上新文件åä¸ä¸€è‡´"
-#: apply.c:928
+#: apply.c:935
#, c-format
msgid "git apply: bad git-diff - inconsistent old filename on line %d"
msgstr "git apply:错误的 git-diff - 第 %d 行上旧文件åä¸ä¸€è‡´"
-#: apply.c:933
+#: apply.c:940
#, c-format
msgid "git apply: bad git-diff - expected /dev/null on line %d"
msgstr "git apply:错误的 git-diff - 第 %d 行处应为 /dev/null"
-#: apply.c:962
+#: apply.c:969
#, c-format
msgid "invalid mode on line %d: %s"
msgstr "第 %d 行包å«æ— æ•ˆæ–‡ä»¶æ¨¡å¼ï¼š%s"
-#: apply.c:1281
+#: apply.c:1288
#, c-format
msgid "inconsistent header lines %d and %d"
msgstr "ä¸ä¸€è‡´çš„文件头,%d 行和 %d è¡Œ"
-#: apply.c:1371
+#: apply.c:1378
#, c-format
msgid ""
"git diff header lacks filename information when removing %d leading pathname "
@@ -1087,92 +1089,92 @@ msgid_plural ""
msgstr[0] "当移除 %d 个å‰å¯¼è·¯å¾„åŽ git diff 头缺ä¹æ–‡ä»¶åä¿¡æ¯ï¼ˆç¬¬ %d 行)"
msgstr[1] "当移除 %d 个å‰å¯¼è·¯å¾„åŽ git diff 头缺ä¹æ–‡ä»¶åä¿¡æ¯ï¼ˆç¬¬ %d 行)"
-#: apply.c:1384
+#: apply.c:1391
#, c-format
msgid "git diff header lacks filename information (line %d)"
msgstr "git diff 的头信æ¯ä¸­ç¼ºä¹æ–‡ä»¶åä¿¡æ¯ï¼ˆç¬¬ %d 行)"
-#: apply.c:1480
+#: apply.c:1487
#, c-format
msgid "recount: unexpected line: %.*s"
msgstr "recount:æ„外的行:%.*s"
-#: apply.c:1549
+#: apply.c:1556
#, c-format
msgid "patch fragment without header at line %d: %.*s"
msgstr "第 %d 行的补ä¸ç‰‡æ®µæ²¡æœ‰å¤´ä¿¡æ¯ï¼š%.*s"
-#: apply.c:1752
+#: apply.c:1759
msgid "new file depends on old contents"
msgstr "新文件ä¾èµ–旧内容"
-#: apply.c:1754
+#: apply.c:1761
msgid "deleted file still has contents"
msgstr "删除的文件ä»æœ‰å†…容"
-#: apply.c:1788
+#: apply.c:1795
#, c-format
msgid "corrupt patch at line %d"
msgstr "è¡¥ä¸åœ¨ç¬¬ %d è¡ŒæŸå"
-#: apply.c:1825
+#: apply.c:1832
#, c-format
msgid "new file %s depends on old contents"
msgstr "新文件 %s ä¾èµ–旧内容"
-#: apply.c:1827
+#: apply.c:1834
#, c-format
msgid "deleted file %s still has contents"
msgstr "删除的文件 %s ä»æœ‰å†…容"
-#: apply.c:1830
+#: apply.c:1837
#, c-format
msgid "** warning: file %s becomes empty but is not deleted"
msgstr "** 警告:文件 %s æˆä¸ºç©ºæ–‡ä»¶ä½†å¹¶æœªåˆ é™¤"
-#: apply.c:1978
+#: apply.c:1985
#, c-format
msgid "corrupt binary patch at line %d: %.*s"
msgstr "二进制补ä¸åœ¨ç¬¬ %d è¡ŒæŸå:%.*s"
-#: apply.c:2015
+#: apply.c:2022
#, c-format
msgid "unrecognized binary patch at line %d"
msgstr "未能识别的二进制补ä¸ä½äºŽç¬¬ %d è¡Œ"
-#: apply.c:2177
+#: apply.c:2184
#, c-format
msgid "patch with only garbage at line %d"
msgstr "è¡¥ä¸æ–‡ä»¶çš„第 %d è¡Œåªæœ‰åžƒåœ¾æ•°æ®"
-#: apply.c:2263
+#: apply.c:2270
#, c-format
msgid "unable to read symlink %s"
msgstr "无法读å–符å·é“¾æŽ¥ %s"
-#: apply.c:2267
+#: apply.c:2274
#, c-format
msgid "unable to open or read %s"
msgstr "ä¸èƒ½æ‰“å¼€æˆ–è¯»å– %s"
-#: apply.c:2936
+#: apply.c:2943
#, c-format
msgid "invalid start of line: '%c'"
msgstr "无效的行首字符:'%c'"
-#: apply.c:3057
+#: apply.c:3064
#, c-format
msgid "Hunk #%d succeeded at %d (offset %d line)."
msgid_plural "Hunk #%d succeeded at %d (offset %d lines)."
msgstr[0] "å— #%d æˆåŠŸåº”用于 %d(å移 %d 行)"
msgstr[1] "å— #%d æˆåŠŸåº”用于 %d(å移 %d 行)"
-#: apply.c:3069
+#: apply.c:3076
#, c-format
msgid "Context reduced to (%ld/%ld) to apply fragment at %d"
msgstr "上下文å‡å°‘到(%ld/%ld)以在第 %d 行应用补ä¸ç‰‡æ®µ"
-#: apply.c:3075
+#: apply.c:3082
#, c-format
msgid ""
"while searching for:\n"
@@ -1181,446 +1183,446 @@ msgstr ""
"当查询:\n"
"%.*s"
-#: apply.c:3097
+#: apply.c:3104
#, c-format
msgid "missing binary patch data for '%s'"
msgstr "缺失 '%s' 的二进制补ä¸æ•°æ®"
-#: apply.c:3105
+#: apply.c:3112
#, c-format
msgid "cannot reverse-apply a binary patch without the reverse hunk to '%s'"
msgstr "ä¸èƒ½åå‘应用一个缺少到 '%s' çš„åå‘æ•°æ®å—的二进制补ä¸"
-#: apply.c:3152
+#: apply.c:3159
#, c-format
msgid "cannot apply binary patch to '%s' without full index line"
msgstr "ä¸èƒ½åœ¨ '%s' 上应用没有完整索引行的二进制补ä¸"
-#: apply.c:3163
+#: apply.c:3170
#, c-format
msgid ""
"the patch applies to '%s' (%s), which does not match the current contents."
msgstr "è¡¥ä¸åº”用到 '%s'(%s),但是和当å‰å†…容ä¸åŒ¹é…。"
-#: apply.c:3171
+#: apply.c:3178
#, c-format
msgid "the patch applies to an empty '%s' but it is not empty"
msgstr "è¡¥ä¸åº”用到空文件 '%s',但其并éžç©ºæ–‡ä»¶"
-#: apply.c:3189
+#: apply.c:3196
#, c-format
msgid "the necessary postimage %s for '%s' cannot be read"
msgstr "æ— æ³•è¯»å– '%2$s' 必需的目标文件 %1$s"
-#: apply.c:3202
+#: apply.c:3209
#, c-format
msgid "binary patch does not apply to '%s'"
msgstr "二进制补ä¸æœªåº”用到 '%s'"
-#: apply.c:3209
+#: apply.c:3216
#, c-format
msgid "binary patch to '%s' creates incorrect result (expecting %s, got %s)"
msgstr "到 '%s' 的二进制补ä¸äº§ç”Ÿäº†ä¸æ­£ç¡®çš„结果(应为 %s,å´ä¸º %s)"
-#: apply.c:3230
+#: apply.c:3237
#, c-format
msgid "patch failed: %s:%ld"
msgstr "打补ä¸å¤±è´¥ï¼š%s:%ld"
-#: apply.c:3353
+#: apply.c:3360
#, c-format
msgid "cannot checkout %s"
msgstr "ä¸èƒ½æ£€å‡º %s"
-#: apply.c:3405 apply.c:3416 apply.c:3462 midx.c:104 pack-revindex.c:214
-#: setup.c:309
+#: apply.c:3412 apply.c:3423 apply.c:3469 midx.c:105 pack-revindex.c:214
+#: setup.c:310
#, c-format
msgid "failed to read %s"
msgstr "æ— æ³•è¯»å– %s"
-#: apply.c:3413
+#: apply.c:3420
#, c-format
msgid "reading from '%s' beyond a symbolic link"
msgstr "读å–ä½äºŽç¬¦å·é“¾æŽ¥ä¸­çš„ '%s'"
-#: apply.c:3442 apply.c:3711
+#: apply.c:3449 apply.c:3721
#, c-format
msgid "path %s has been renamed/deleted"
msgstr "路径 %s å·²ç»è¢«é‡å‘½å/删除"
-#: apply.c:3549 apply.c:3726
+#: apply.c:3559 apply.c:3736
#, c-format
msgid "%s: does not exist in index"
msgstr "%s:ä¸å­˜åœ¨äºŽç´¢å¼•ä¸­"
-#: apply.c:3558 apply.c:3734 apply.c:3978
+#: apply.c:3568 apply.c:3744 apply.c:3960
#, c-format
msgid "%s: does not match index"
msgstr "%s:和索引ä¸åŒ¹é…"
-#: apply.c:3595
+#: apply.c:3605
msgid "repository lacks the necessary blob to perform 3-way merge."
msgstr "仓库缺ä¹æ‰§è¡Œä¸‰æ–¹åˆå¹¶æ‰€å¿…需的数æ®å¯¹è±¡ã€‚"
-#: apply.c:3598
+#: apply.c:3608
#, c-format
msgid "Performing three-way merge...\n"
msgstr "执行三方åˆå¹¶...\n"
-#: apply.c:3614 apply.c:3618
+#: apply.c:3624 apply.c:3628
#, c-format
msgid "cannot read the current contents of '%s'"
msgstr "æ— æ³•è¯»å– '%s' 的当å‰å†…容"
-#: apply.c:3630
+#: apply.c:3640
#, c-format
msgid "Failed to perform three-way merge...\n"
msgstr "无法执行三方åˆå¹¶...\n"
-#: apply.c:3644
+#: apply.c:3654
#, c-format
msgid "Applied patch to '%s' with conflicts.\n"
msgstr "应用补ä¸åˆ° '%s' 存在冲çªã€‚\n"
-#: apply.c:3649
+#: apply.c:3659
#, c-format
msgid "Applied patch to '%s' cleanly.\n"
msgstr "æˆåŠŸåº”用补ä¸åˆ° '%s'。\n"
-#: apply.c:3666
+#: apply.c:3676
#, c-format
msgid "Falling back to direct application...\n"
msgstr "回è½åˆ°ç›´æŽ¥åº”用...\n"
-#: apply.c:3678
+#: apply.c:3688
msgid "removal patch leaves file contents"
msgstr "移除补ä¸ä»ç•™ä¸‹äº†æ–‡ä»¶å†…容"
-#: apply.c:3751
+#: apply.c:3761
#, c-format
msgid "%s: wrong type"
msgstr "%s:错误类型"
-#: apply.c:3753
+#: apply.c:3763
#, c-format
msgid "%s has type %o, expected %o"
msgstr "%s 的类型是 %o,应为 %o"
-#: apply.c:3918 apply.c:3920 read-cache.c:889 read-cache.c:918
-#: read-cache.c:1381
+#: apply.c:3900 apply.c:3902 read-cache.c:903 read-cache.c:932
+#: read-cache.c:1399
#, c-format
msgid "invalid path '%s'"
msgstr "无效路径 '%s'"
-#: apply.c:3976
+#: apply.c:3958
#, c-format
msgid "%s: already exists in index"
msgstr "%s:已ç»å­˜åœ¨äºŽç´¢å¼•ä¸­"
-#: apply.c:3980
+#: apply.c:3962
#, c-format
msgid "%s: already exists in working directory"
msgstr "%s:已ç»å­˜åœ¨äºŽå·¥ä½œåŒºä¸­"
-#: apply.c:4000
+#: apply.c:3982
#, c-format
msgid "new mode (%o) of %s does not match old mode (%o)"
msgstr "%2$s 的新模å¼ï¼ˆ%1$o)和旧模å¼ï¼ˆ%3$o)ä¸åŒ¹é…"
-#: apply.c:4005
+#: apply.c:3987
#, c-format
msgid "new mode (%o) of %s does not match old mode (%o) of %s"
msgstr "%2$s 的新模å¼ï¼ˆ%1$o)和 %4$s 的旧模å¼ï¼ˆ%3$o)ä¸åŒ¹é…"
-#: apply.c:4025
+#: apply.c:4007
#, c-format
msgid "affected file '%s' is beyond a symbolic link"
msgstr "å—å½±å“的文件 '%s' ä½äºŽç¬¦å·é“¾æŽ¥ä¸­"
-#: apply.c:4029
+#: apply.c:4011
#, c-format
msgid "%s: patch does not apply"
msgstr "%s:补ä¸æœªåº”用"
-#: apply.c:4044
+#: apply.c:4026
#, c-format
msgid "Checking patch %s..."
msgstr "æ­£åœ¨æ£€æŸ¥è¡¥ä¸ %s..."
-#: apply.c:4136
+#: apply.c:4118
#, c-format
msgid "sha1 information is lacking or useless for submodule %s"
msgstr "å­æ¨¡ç»„ %s çš„ sha1 ä¿¡æ¯ç¼ºå¤±æˆ–无效"
-#: apply.c:4143
+#: apply.c:4125
#, c-format
msgid "mode change for %s, which is not in current HEAD"
msgstr "%s 的模å¼å˜æ›´ï¼Œä½†å®ƒä¸åœ¨å½“å‰ HEAD 中"
-#: apply.c:4146
+#: apply.c:4128
#, c-format
msgid "sha1 information is lacking or useless (%s)."
msgstr "sha1 ä¿¡æ¯ç¼ºå¤±æˆ–无效(%s)。"
-#: apply.c:4155
+#: apply.c:4137
#, c-format
msgid "could not add %s to temporary index"
msgstr "ä¸èƒ½åœ¨ä¸´æ—¶ç´¢å¼•ä¸­æ·»åŠ  %s"
-#: apply.c:4165
+#: apply.c:4147
#, c-format
msgid "could not write temporary index to %s"
msgstr "ä¸èƒ½æŠŠä¸´æ—¶ç´¢å¼•å†™å…¥åˆ° %s"
-#: apply.c:4303
+#: apply.c:4285
#, c-format
msgid "unable to remove %s from index"
msgstr "ä¸èƒ½ä»Žç´¢å¼•ä¸­ç§»é™¤ %s"
-#: apply.c:4337
+#: apply.c:4319
#, c-format
msgid "corrupt patch for submodule %s"
msgstr "å­æ¨¡ç»„ %s æŸåçš„è¡¥ä¸"
-#: apply.c:4343
+#: apply.c:4325
#, c-format
msgid "unable to stat newly created file '%s'"
msgstr "ä¸èƒ½å¯¹æ–°å»ºæ–‡ä»¶ '%s' 调用 stat"
-#: apply.c:4351
+#: apply.c:4333
#, c-format
msgid "unable to create backing store for newly created file %s"
msgstr "ä¸èƒ½ä¸ºæ–°å»ºæ–‡ä»¶ %s 创建åŽç«¯å­˜å‚¨"
-#: apply.c:4357 apply.c:4502
+#: apply.c:4339 apply.c:4484
#, c-format
msgid "unable to add cache entry for %s"
msgstr "无法为 %s 添加缓存æ¡ç›®"
-#: apply.c:4400 builtin/bisect--helper.c:540 builtin/gc.c:2258
+#: apply.c:4382 builtin/bisect--helper.c:540 builtin/gc.c:2258
#: builtin/gc.c:2293
#, c-format
msgid "failed to write to '%s'"
msgstr "无法写入 '%s'"
-#: apply.c:4404
+#: apply.c:4386
#, c-format
msgid "closing file '%s'"
msgstr "关闭文件 '%s'"
-#: apply.c:4474
+#: apply.c:4456
#, c-format
msgid "unable to write file '%s' mode %o"
msgstr "ä¸èƒ½å†™æ–‡ä»¶ '%s' æƒé™ %o"
-#: apply.c:4572
+#: apply.c:4554
#, c-format
msgid "Applied patch %s cleanly."
msgstr "æˆåŠŸåº”ç”¨è¡¥ä¸ %s。"
-#: apply.c:4580
+#: apply.c:4562
msgid "internal error"
msgstr "内部错误"
-#: apply.c:4583
+#: apply.c:4565
#, c-format
msgid "Applying patch %%s with %d reject..."
msgid_plural "Applying patch %%s with %d rejects..."
msgstr[0] "应用 %%s 个补ä¸ï¼Œå…¶ä¸­ %d 个被拒ç»..."
msgstr[1] "应用 %%s 个补ä¸ï¼Œå…¶ä¸­ %d 个被拒ç»..."
-#: apply.c:4594
+#: apply.c:4576
#, c-format
msgid "truncating .rej filename to %.*s.rej"
msgstr "截短 .rej 文件å为 %.*s.rej"
-#: apply.c:4602
+#: apply.c:4584
#, c-format
msgid "cannot open %s"
msgstr "ä¸èƒ½æ‰“å¼€ %s"
-#: apply.c:4616
+#: apply.c:4598
#, c-format
msgid "Hunk #%d applied cleanly."
msgstr "第 #%d 个片段æˆåŠŸåº”用。"
-#: apply.c:4620
+#: apply.c:4602
#, c-format
msgid "Rejected hunk #%d."
msgstr "æ‹’ç»ç¬¬ #%d 个片段。"
-#: apply.c:4749
+#: apply.c:4731
#, c-format
msgid "Skipped patch '%s'."
msgstr "ç•¥è¿‡è¡¥ä¸ '%s'。"
-#: apply.c:4758
+#: apply.c:4740
msgid "No valid patches in input (allow with \"--allow-empty\")"
msgstr "输入中没有åˆæ³•çš„è¡¥ä¸ ï¼ˆä½¿ç”¨ \"--allow-empty\" æ¥å…许)"
-#: apply.c:4779
+#: apply.c:4761
msgid "unable to read index file"
msgstr "无法读å–索引文件"
-#: apply.c:4936
+#: apply.c:4918
#, c-format
msgid "can't open patch '%s': %s"
msgstr "ä¸èƒ½æ‰“å¼€è¡¥ä¸ '%s':%s"
-#: apply.c:4963
+#: apply.c:4945
#, c-format
msgid "squelched %d whitespace error"
msgid_plural "squelched %d whitespace errors"
msgstr[0] "抑制下ä»æœ‰ %d 个空白字符误用"
msgstr[1] "抑制下ä»æœ‰ %d 个空白字符误用"
-#: apply.c:4969 apply.c:4984
+#: apply.c:4951 apply.c:4966
#, c-format
msgid "%d line adds whitespace errors."
msgid_plural "%d lines add whitespace errors."
msgstr[0] "%d 行新增了空白字符误用。"
msgstr[1] "%d 行新增了空白字符误用。"
-#: apply.c:4977
+#: apply.c:4959
#, c-format
msgid "%d line applied after fixing whitespace errors."
msgid_plural "%d lines applied after fixing whitespace errors."
msgstr[0] "ä¿®å¤ç©ºç™½é”™è¯¯åŽï¼Œåº”用了 %d 行。"
msgstr[1] "ä¿®å¤ç©ºç™½é”™è¯¯åŽï¼Œåº”用了 %d 行。"
-#: apply.c:4993 builtin/add.c:704 builtin/mv.c:338 builtin/rm.c:430
+#: apply.c:4975 builtin/add.c:690 builtin/mv.c:338 builtin/rm.c:430
msgid "Unable to write new index file"
msgstr "无法写入新索引文件"
-#: apply.c:5021
+#: apply.c:5003
msgid "don't apply changes matching the given path"
msgstr "ä¸è¦åº”用与给出路径å‘匹é…çš„å˜æ›´"
-#: apply.c:5024
+#: apply.c:5006
msgid "apply changes matching the given path"
msgstr "应用与给出路径å‘匹é…çš„å˜æ›´"
-#: apply.c:5026 builtin/am.c:2376
+#: apply.c:5008 builtin/am.c:2379
msgid "num"
msgstr "æ•°å­—"
-#: apply.c:5027
+#: apply.c:5009
msgid "remove <num> leading slashes from traditional diff paths"
msgstr "从传统的 diff 路径中移除指定数é‡çš„å‰å¯¼æ–œçº¿"
-#: apply.c:5030
+#: apply.c:5012
msgid "ignore additions made by the patch"
msgstr "忽略补ä¸ä¸­çš„添加的文件"
-#: apply.c:5032
+#: apply.c:5014
msgid "instead of applying the patch, output diffstat for the input"
msgstr "ä¸åº”用补ä¸ï¼Œè€Œæ˜¯æ˜¾ç¤ºè¾“入的差异统计(diffstat)"
-#: apply.c:5036
+#: apply.c:5018
msgid "show number of added and deleted lines in decimal notation"
msgstr "以å进制数显示添加和删除的行数"
-#: apply.c:5038
+#: apply.c:5020
msgid "instead of applying the patch, output a summary for the input"
msgstr "ä¸åº”用补ä¸ï¼Œè€Œæ˜¯æ˜¾ç¤ºè¾“入的概è¦"
-#: apply.c:5040
+#: apply.c:5022
msgid "instead of applying the patch, see if the patch is applicable"
msgstr "ä¸åº”用补ä¸ï¼Œè€Œæ˜¯æŸ¥çœ‹è¡¥ä¸æ˜¯å¦å¯åº”用"
-#: apply.c:5042
+#: apply.c:5024
msgid "make sure the patch is applicable to the current index"
msgstr "确认补ä¸å¯ä»¥åº”用到当å‰ç´¢å¼•"
-#: apply.c:5044
+#: apply.c:5026
msgid "mark new files with `git add --intent-to-add`"
msgstr "使用命令 `git add --intent-to-add` 标记新增文件"
-#: apply.c:5046
+#: apply.c:5028
msgid "apply a patch without touching the working tree"
msgstr "应用补ä¸è€Œä¸ä¿®æ”¹å·¥ä½œåŒº"
-#: apply.c:5048
+#: apply.c:5030
msgid "accept a patch that touches outside the working area"
msgstr "接å—修改工作区之外文件的补ä¸"
-#: apply.c:5051
+#: apply.c:5033
msgid "also apply the patch (use with --stat/--summary/--check)"
msgstr "还应用此补ä¸ï¼ˆä¸Ž --stat/--summary/--check 选项åŒæ—¶ä½¿ç”¨ï¼‰"
-#: apply.c:5053
+#: apply.c:5035
msgid "attempt three-way merge, fall back on normal patch if that fails"
msgstr "å°è¯•ä¸‰è·¯åˆå¹¶ï¼Œå¦‚果失败则回è½è‡³æ­£å¸¸è¡¥ä¸æ¨¡å¼"
-#: apply.c:5055
+#: apply.c:5037
msgid "build a temporary index based on embedded index information"
msgstr "创建一个临时索引基于嵌入的索引信æ¯"
-#: apply.c:5058 builtin/checkout-index.c:196
+#: apply.c:5040 builtin/checkout-index.c:230
msgid "paths are separated with NUL character"
msgstr "路径以 NUL 字符分隔"
-#: apply.c:5060
+#: apply.c:5042
msgid "ensure at least <n> lines of context match"
msgstr "ç¡®ä¿è‡³å°‘åŒ¹é… <n> 行上下文"
-#: apply.c:5061 builtin/am.c:2352 builtin/am.c:2355
+#: apply.c:5043 builtin/am.c:2355 builtin/am.c:2358
#: builtin/interpret-trailers.c:98 builtin/interpret-trailers.c:100
-#: builtin/interpret-trailers.c:102 builtin/pack-objects.c:3960
-#: builtin/rebase.c:1051
+#: builtin/interpret-trailers.c:102 builtin/pack-objects.c:3983
+#: builtin/rebase.c:1079
msgid "action"
msgstr "动作"
-#: apply.c:5062
+#: apply.c:5044
msgid "detect new or modified lines that have whitespace errors"
msgstr "检查新增和修改的行中间的空白字符滥用"
-#: apply.c:5065 apply.c:5068
+#: apply.c:5047 apply.c:5050
msgid "ignore changes in whitespace when finding context"
msgstr "查找上下文时忽略空白字符的å˜æ›´"
-#: apply.c:5071
+#: apply.c:5053
msgid "apply the patch in reverse"
msgstr "åå‘应用补ä¸"
-#: apply.c:5073
+#: apply.c:5055
msgid "don't expect at least one line of context"
msgstr "无需至少一行上下文"
-#: apply.c:5075
+#: apply.c:5057
msgid "leave the rejected hunks in corresponding *.rej files"
msgstr "将拒ç»çš„è¡¥ä¸ç‰‡æ®µä¿å­˜åœ¨å¯¹åº”çš„ *.rej 文件中"
-#: apply.c:5077
+#: apply.c:5059
msgid "allow overlapping hunks"
msgstr "å…许é‡å çš„è¡¥ä¸ç‰‡æ®µ"
-#: apply.c:5080
+#: apply.c:5062
msgid "tolerate incorrectly detected missing new-line at the end of file"
msgstr "å…许ä¸æ­£ç¡®çš„文件末尾æ¢è¡Œç¬¦"
-#: apply.c:5083
+#: apply.c:5065
msgid "do not trust the line counts in the hunk headers"
msgstr "ä¸ä¿¡ä»»è¡¥ä¸ç‰‡æ®µçš„头信æ¯ä¸­çš„è¡Œå·"
-#: apply.c:5085 builtin/am.c:2364
+#: apply.c:5067 builtin/am.c:2367
msgid "root"
msgstr "根目录"
-#: apply.c:5086
+#: apply.c:5068
msgid "prepend <root> to all filenames"
msgstr "为所有文件åå‰æ·»åŠ  <根目录>"
-#: apply.c:5089
+#: apply.c:5071
msgid "don't return error for empty patches"
msgstr "对空的补ä¸ä¸è¿”回错误"
-#: archive-tar.c:125 archive-zip.c:345
+#: archive-tar.c:125 archive-zip.c:346
#, c-format
msgid "cannot stream blob %s"
msgstr "ä¸èƒ½æ‰“开数æ®å¯¹è±¡ %s"
-#: archive-tar.c:265 archive-zip.c:358
+#: archive-tar.c:265 archive-zip.c:359
#, c-format
msgid "unsupported file mode: 0%o (SHA1: %s)"
msgstr "ä¸æ”¯æŒçš„文件模å¼ï¼š0%o (SHA1: %s)"
@@ -1639,22 +1641,22 @@ msgstr "无法é‡å®šå‘æ述符"
msgid "'%s' filter reported error"
msgstr "'%s' 过滤器报告了错误"
-#: archive-zip.c:318
+#: archive-zip.c:319
#, c-format
msgid "path is not valid UTF-8: %s"
msgstr "路径ä¸æ˜¯æœ‰æ•ˆçš„ UTF-8:%s"
-#: archive-zip.c:322
+#: archive-zip.c:323
#, c-format
msgid "path too long (%d chars, SHA1: %s): %s"
msgstr "路径太长(%d 字符,SHA1:%s):%s"
-#: archive-zip.c:469 builtin/pack-objects.c:365 builtin/pack-objects.c:368
+#: archive-zip.c:470 builtin/pack-objects.c:363 builtin/pack-objects.c:366
#, c-format
msgid "deflate error (%d)"
msgstr "压缩错误 (%d)"
-#: archive-zip.c:603
+#: archive-zip.c:604
#, c-format
msgid "timestamp too large for this system: %<PRIuMAX>"
msgstr "对于本系统时间戳太大:%<PRIuMAX>"
@@ -1663,10 +1665,6 @@ msgstr "对于本系统时间戳太大:%<PRIuMAX>"
msgid "git archive [<options>] <tree-ish> [<path>...]"
msgstr "git archive [<选项>] <树对象> [<路径>...]"
-#: archive.c:15
-msgid "git archive --list"
-msgstr "git archive --list"
-
#: archive.c:16
msgid ""
"git archive --remote <repo> [--exec <cmd>] [<options>] <tree-ish> [<path>...]"
@@ -1678,12 +1676,12 @@ msgid "git archive --remote <repo> [--exec <cmd>] --list"
msgstr "git archive --remote <仓库> [--exec <命令>] --list"
#: archive.c:188 archive.c:341 builtin/gc.c:497 builtin/notes.c:238
-#: builtin/tag.c:578
+#: builtin/tag.c:579
#, c-format
msgid "cannot read '%s'"
msgstr "ä¸èƒ½è¯»å– '%s'"
-#: archive.c:426 builtin/add.c:215 builtin/add.c:671 builtin/rm.c:334
+#: archive.c:426 builtin/add.c:214 builtin/add.c:657 builtin/rm.c:334
#, c-format
msgid "pathspec '%s' did not match any files"
msgstr "路径规格 '%s' 未匹é…任何文件"
@@ -1725,7 +1723,7 @@ msgstr "æ ¼å¼"
msgid "archive format"
msgstr "归档格å¼"
-#: archive.c:552 builtin/log.c:1790
+#: archive.c:552 builtin/log.c:1809
msgid "prefix"
msgstr "å‰ç¼€"
@@ -1733,12 +1731,12 @@ msgstr "å‰ç¼€"
msgid "prepend prefix to each pathname in the archive"
msgstr "为归档中æ¯ä¸ªè·¯å¾„å加上å‰ç¼€"
-#: archive.c:554 archive.c:557 builtin/blame.c:880 builtin/blame.c:884
-#: builtin/blame.c:885 builtin/commit-tree.c:115 builtin/config.c:135
+#: archive.c:554 archive.c:557 builtin/blame.c:881 builtin/blame.c:885
+#: builtin/blame.c:886 builtin/commit-tree.c:115 builtin/config.c:135
#: builtin/fast-export.c:1181 builtin/fast-export.c:1183
-#: builtin/fast-export.c:1187 builtin/grep.c:935 builtin/hash-object.c:103
+#: builtin/fast-export.c:1187 builtin/grep.c:936 builtin/hash-object.c:104
#: builtin/ls-files.c:654 builtin/ls-files.c:657 builtin/notes.c:410
-#: builtin/notes.c:576 builtin/read-tree.c:115 parse-options.h:190
+#: builtin/notes.c:576 builtin/read-tree.c:115 parse-options.h:195
msgid "file"
msgstr "文件"
@@ -1766,8 +1764,8 @@ msgstr "设置压缩级别"
msgid "list supported archive formats"
msgstr "列出支æŒçš„归档格å¼"
-#: archive.c:568 builtin/archive.c:89 builtin/clone.c:118 builtin/clone.c:121
-#: builtin/submodule--helper.c:1870 builtin/submodule--helper.c:2513
+#: archive.c:568 builtin/archive.c:89 builtin/clone.c:122 builtin/clone.c:125
+#: builtin/submodule--helper.c:1884 builtin/submodule--helper.c:2718
msgid "repo"
msgstr "仓库"
@@ -1788,11 +1786,12 @@ msgstr "远程 git-upload-archive 命令的路径"
msgid "Unexpected option --remote"
msgstr "未知å‚æ•° --remote"
-#: archive.c:580 fetch-pack.c:300 revision.c:2887 builtin/add.c:544
-#: builtin/add.c:576 builtin/checkout.c:1763 builtin/commit.c:370
-#: builtin/fast-export.c:1230 builtin/index-pack.c:1848 builtin/log.c:2115
-#: builtin/reset.c:435 builtin/reset.c:493 builtin/rm.c:281
-#: builtin/stash.c:1719 builtin/worktree.c:508 http-fetch.c:144
+#: archive.c:580 fetch-pack.c:300 revision.c:2914 builtin/add.c:530
+#: builtin/add.c:562 builtin/checkout.c:1782 builtin/clone.c:1099
+#: builtin/clone.c:1102 builtin/commit.c:371 builtin/fast-export.c:1230
+#: builtin/index-pack.c:1854 builtin/log.c:2140 builtin/reset.c:442
+#: builtin/reset.c:500 builtin/rm.c:281 builtin/stash.c:1708
+#: builtin/worktree.c:580 builtin/worktree.c:781 http-fetch.c:144
#: http-fetch.c:153
#, c-format
msgid "the option '%s' requires '%s'"
@@ -1812,17 +1811,17 @@ msgstr "æœªçŸ¥å½’æ¡£æ ¼å¼ '%s'"
msgid "Argument not supported for format '%s': -%d"
msgstr "å‚æ•°ä¸æ”¯æŒæ­¤æ ¼å¼ '%s':-%d"
-#: attr.c:203
+#: attr.c:202
#, c-format
msgid "%.*s is not a valid attribute name"
msgstr "%.*s ä¸æ˜¯ä¸€ä¸ªæœ‰æ•ˆçš„属性å"
-#: attr.c:364
+#: attr.c:363
#, c-format
msgid "%s not allowed: %s:%d"
msgstr "ä¸å…许 %s:%s:%d"
-#: attr.c:404
+#: attr.c:403
msgid ""
"Negative patterns are ignored in git attributes\n"
"Use '\\!' for literal leading exclamation."
@@ -1840,12 +1839,12 @@ msgstr "文件 '%s' 包å«é”™è¯¯çš„引用格å¼ï¼š%s"
msgid "We cannot bisect more!\n"
msgstr "我们无法进行更多的二分查找ï¼\n"
-#: bisect.c:764
+#: bisect.c:765
#, c-format
msgid "Not a valid commit name %s"
msgstr "ä¸æ˜¯ä¸€ä¸ªæœ‰æ•ˆçš„æ交å %s"
-#: bisect.c:789
+#: bisect.c:790
#, c-format
msgid ""
"The merge base %s is bad.\n"
@@ -1854,7 +1853,7 @@ msgstr ""
"åˆå¹¶åŸºçº¿ %s 是å的。\n"
"è¿™æ„味ç€ä»‹äºŽ %s å’Œ [%s] 之间的 bug å·²ç»è¢«ä¿®å¤ã€‚\n"
-#: bisect.c:794
+#: bisect.c:795
#, c-format
msgid ""
"The merge base %s is new.\n"
@@ -1863,7 +1862,7 @@ msgstr ""
"åˆå¹¶åŸºçº¿ %s 是新的。\n"
"介于 %s å’Œ [%s] 之间的属性已ç»è¢«ä¿®æ”¹ã€‚\n"
-#: bisect.c:799
+#: bisect.c:800
#, c-format
msgid ""
"The merge base %s is %s.\n"
@@ -1872,7 +1871,7 @@ msgstr ""
"åˆå¹¶åŸºçº¿ %s 是 %s。\n"
"è¿™æ„味ç€ç¬¬ä¸€ä¸ª '%s' æ交ä½äºŽ %s å’Œ [%s] 之间。\n"
-#: bisect.c:807
+#: bisect.c:808
#, c-format
msgid ""
"Some %s revs are not ancestors of the %s rev.\n"
@@ -1883,7 +1882,7 @@ msgstr ""
"è¿™ç§æƒ…况下 git 二分查找无法正常工作。\n"
"您å¯èƒ½å¼„错了 %s å’Œ %s 版本?\n"
-#: bisect.c:820
+#: bisect.c:821
#, c-format
msgid ""
"the merge base between %s and [%s] must be skipped.\n"
@@ -1894,36 +1893,36 @@ msgstr ""
"所以我们无法确认第一个 %s æ交是å¦ä»‹äºŽ %s å’Œ %s 之间。\n"
"我们ä»æ—§ç»§ç»­ã€‚"
-#: bisect.c:859
+#: bisect.c:860
#, c-format
msgid "Bisecting: a merge base must be tested\n"
msgstr "二分查找中:åˆå¹¶åŸºçº¿å¿…须是ç»è¿‡æµ‹è¯•çš„\n"
-#: bisect.c:909
+#: bisect.c:910
#, c-format
msgid "a %s revision is needed"
msgstr "需è¦ä¸€ä¸ª %s 版本"
-#: bisect.c:939
+#: bisect.c:940
#, c-format
msgid "could not create file '%s'"
msgstr "ä¸èƒ½åˆ›å»ºæ–‡ä»¶ '%s'"
-#: bisect.c:985 builtin/merge.c:155
+#: bisect.c:986 builtin/merge.c:155
#, c-format
msgid "could not read file '%s'"
msgstr "ä¸èƒ½è¯»å–文件 '%s'"
-#: bisect.c:1025
+#: bisect.c:1026
msgid "reading bisect refs failed"
msgstr "读å–二分查找引用失败"
-#: bisect.c:1055
+#: bisect.c:1056
#, c-format
msgid "%s was both %s and %s\n"
msgstr "%s åŒæ—¶ä¸º %s å’Œ %s\n"
-#: bisect.c:1064
+#: bisect.c:1065
#, c-format
msgid ""
"No testable commit found.\n"
@@ -1932,7 +1931,7 @@ msgstr ""
"没有å‘现å¯æµ‹è¯•çš„æ交。\n"
"å¯èƒ½æ‚¨åœ¨è¿è¡Œæ—¶ä½¿ç”¨äº†é”™è¯¯çš„路径å‚数?\n"
-#: bisect.c:1093
+#: bisect.c:1094
#, c-format
msgid "(roughly %d step)"
msgid_plural "(roughly %d steps)"
@@ -1942,80 +1941,80 @@ msgstr[1] "(大概 %d 步)"
#. TRANSLATORS: the last %s will be replaced with "(roughly %d
#. steps)" translation.
#.
-#: bisect.c:1099
+#: bisect.c:1100
#, c-format
msgid "Bisecting: %d revision left to test after this %s\n"
msgid_plural "Bisecting: %d revisions left to test after this %s\n"
msgstr[0] "二分查找中:在此之åŽï¼Œè¿˜å‰© %d 个版本待测试 %s\n"
msgstr[1] "二分查找中:在此之åŽï¼Œè¿˜å‰© %d 个版本待测试 %s\n"
-#: blame.c:2776
+#: blame.c:2773
msgid "--contents and --reverse do not blend well."
msgstr "--contents å’Œ --reverse ä¸èƒ½æ··ç”¨ã€‚"
-#: blame.c:2790
+#: blame.c:2787
msgid "cannot use --contents with final commit object name"
msgstr "ä¸èƒ½å°† --contents 和最终的æ交对象å共用"
-#: blame.c:2811
+#: blame.c:2808
msgid "--reverse and --first-parent together require specified latest commit"
msgstr "--reverse å’Œ --first-parent 共用,需è¦æŒ‡å®šæœ€æ–°çš„æ交"
-#: blame.c:2820 bundle.c:224 midx.c:1042 ref-filter.c:2370 remote.c:2158
-#: sequencer.c:2352 sequencer.c:4899 submodule.c:883 builtin/commit.c:1114
-#: builtin/log.c:429 builtin/log.c:1036 builtin/log.c:1644 builtin/log.c:2071
-#: builtin/log.c:2362 builtin/merge.c:431 builtin/pack-objects.c:3373
-#: builtin/pack-objects.c:3775 builtin/pack-objects.c:3790
+#: blame.c:2817 bundle.c:231 midx.c:1058 ref-filter.c:2371 remote.c:2157
+#: sequencer.c:2348 sequencer.c:4872 submodule.c:913 builtin/commit.c:1118
+#: builtin/log.c:437 builtin/log.c:1055 builtin/log.c:1663 builtin/log.c:2096
+#: builtin/log.c:2387 builtin/merge.c:431 builtin/pack-objects.c:3381
+#: builtin/pack-objects.c:3781 builtin/pack-objects.c:3796
#: builtin/shortlog.c:255
msgid "revision walk setup failed"
msgstr "版本é历设置失败"
-#: blame.c:2838
+#: blame.c:2835
msgid ""
"--reverse --first-parent together require range along first-parent chain"
msgstr "--reverse å’Œ --first-parent 共用,需è¦ç¬¬ä¸€ç¥–先链上的æ交范围"
-#: blame.c:2849
+#: blame.c:2846
#, c-format
msgid "no such path %s in %s"
msgstr "在 %2$s 中无此路径 %1$s"
-#: blame.c:2860
+#: blame.c:2857
#, c-format
msgid "cannot read blob %s for path %s"
msgstr "ä¸èƒ½ä¸ºè·¯å¾„ %2$s 读å–æ•°æ®å¯¹è±¡ %1$s"
-#: branch.c:77
+#: branch.c:93
msgid ""
"cannot inherit upstream tracking configuration of multiple refs when "
"rebasing is requested"
msgstr "在请求å˜åŸºæ—¶æ— æ³•ç»§æ‰¿ä¸Šæ¸¸å¤šä¸ªå¼•ç”¨çš„跟踪设置"
-#: branch.c:88
+#: branch.c:104
#, c-format
msgid "not setting branch '%s' as its own upstream"
msgstr "没有将分支 '%s' 设置为它自己的上游"
-#: branch.c:144
+#: branch.c:160
#, c-format
msgid "branch '%s' set up to track '%s' by rebasing."
msgstr "分支 '%s' 设置为使用å˜åŸºæ¥è·Ÿè¸ª '%s'。"
-#: branch.c:145
+#: branch.c:161
#, c-format
msgid "branch '%s' set up to track '%s'."
msgstr "分支 '%s' 设置为跟踪 '%s'。"
-#: branch.c:148
+#: branch.c:164
#, c-format
msgid "branch '%s' set up to track:"
msgstr "分支 '%s' 设置为跟踪:"
-#: branch.c:160
+#: branch.c:176
msgid "unable to write upstream branch configuration"
msgstr "无法写入上游分支é…ç½®"
-#: branch.c:162
+#: branch.c:178
msgid ""
"\n"
"After fixing the error cause you may try to fix up\n"
@@ -2024,47 +2023,84 @@ msgstr ""
"\n"
"在修å¤é”™è¯¯åŽï¼Œæ‚¨å¯ä»¥é€šè¿‡æ‰§è¡Œä»¥ä¸‹å‘½ä»¤æ¥å°è¯•ä¿®æ”¹è¿œç¨‹è·Ÿè¸ªåˆ†æ”¯ï¼š"
-#: branch.c:203
+#: branch.c:219
#, c-format
msgid "asked to inherit tracking from '%s', but no remote is set"
msgstr "è¦æ±‚从 '%s' 继承跟踪信æ¯ï¼Œä½†æ˜¯æ²¡æœ‰è®¾ç½®è¿œç¨‹"
-#: branch.c:209
+#: branch.c:225
#, c-format
msgid "asked to inherit tracking from '%s', but no merge configuration is set"
msgstr "è¦æ±‚从 '%s' 继承跟踪信æ¯ï¼Œä½†æ˜¯æ²¡æœ‰è®¾ç½®åˆå¹¶é…ç½®"
-#: branch.c:252
+#: branch.c:277
+#, c-format
+msgid "not tracking: ambiguous information for ref '%s'"
+msgstr "ä¸åœ¨è·Ÿè¸ªä¸­ï¼šå¼•ç”¨ '%s' 有歧义的信æ¯"
+
+# 译者:为ä¿è¯åœ¨è¾“出中对é½ï¼Œæ³¨æ„调整å¥ä¸­ç©ºæ ¼ï¼
+#. TRANSLATORS: This is a line listing a remote with duplicate
+#. refspecs in the advice message below. For RTL languages you'll
+#. probably want to swap the "%s" and leading " " space around.
+#.
+#. TRANSLATORS: This is line item of ambiguous object output
+#. from describe_ambiguous_object() above. For RTL languages
+#. you'll probably want to swap the "%s" and leading " " space
+#. around.
+#.
+#: branch.c:289 object-name.c:464
+#, c-format
+msgid " %s\n"
+msgstr " %s\n"
+
+#. TRANSLATORS: The second argument is a \n-delimited list of
+#. duplicate refspecs, composed above.
+#.
+#: branch.c:295
#, c-format
-msgid "not tracking: ambiguous information for ref %s"
-msgstr "未跟踪:引用 %s 有歧义"
+msgid ""
+"There are multiple remotes whose fetch refspecs map to the remote\n"
+"tracking ref '%s':\n"
+"%s\n"
+"This is typically a configuration error.\n"
+"\n"
+"To support setting up tracking branches, ensure that\n"
+"different remotes' fetch refspecs map into different\n"
+"tracking namespaces."
+msgstr ""
+"有多个远程的获å–引用规格映射到了追踪引用 '%s':\n"
+"%s\n"
+"这一般是个é…置错误。\n"
+"\n"
+"如果è¦æ”¯æŒè®¾ç½®è¿½è¸ªåˆ†æ”¯ï¼Œè¯·ä¿è¯ä¸åŒè¿œç¨‹çš„获å–引用规格映射至ä¸åŒçš„追踪命å空"
+"间。"
-#: branch.c:287
+#: branch.c:344
#, c-format
msgid "'%s' is not a valid branch name"
msgstr "'%s' ä¸æ˜¯ä¸€ä¸ªæœ‰æ•ˆçš„分支å称"
-#: branch.c:307
+#: branch.c:364
#, c-format
msgid "a branch named '%s' already exists"
msgstr "一个å为 '%s' 的分支已ç»å­˜åœ¨"
-#: branch.c:313
+#: branch.c:370
#, c-format
msgid "cannot force update the branch '%s' checked out at '%s'"
msgstr "无法强制更新检出于 '%2$s' 的分支 '%1$s'"
-#: branch.c:336
+#: branch.c:393
#, c-format
msgid "cannot set up tracking information; starting point '%s' is not a branch"
msgstr "无法设置跟踪信æ¯ï¼›èµ·å§‹ç‚¹ '%s' ä¸æ˜¯ä¸€ä¸ªåˆ†æ”¯"
-#: branch.c:338
+#: branch.c:395
#, c-format
msgid "the requested upstream branch '%s' does not exist"
msgstr "请求的上游分支 '%s' ä¸å­˜åœ¨"
-#: branch.c:340
+#: branch.c:397
msgid ""
"\n"
"If you are planning on basing your work on an upstream\n"
@@ -2082,126 +2118,144 @@ msgstr ""
"如果您正计划推é€ä¸€ä¸ªèƒ½ä¸Žå¯¹åº”远程分支建立跟踪的新的本地分支,\n"
"您å¯èƒ½éœ€è¦ä½¿ç”¨ \"git push -u\" 推é€åˆ†æ”¯å¹¶é…置和上游的关è”。"
-#: branch.c:384 builtin/replace.c:321 builtin/replace.c:377
+#: branch.c:445 builtin/replace.c:321 builtin/replace.c:377
#: builtin/replace.c:423 builtin/replace.c:453
#, c-format
msgid "not a valid object name: '%s'"
msgstr "ä¸æ˜¯ä¸€ä¸ªæœ‰æ•ˆçš„对象å:'%s'"
-#: branch.c:404
+#: branch.c:465
#, c-format
msgid "ambiguous object name: '%s'"
msgstr "歧义的对象å:'%s'"
-#: branch.c:409
+#: branch.c:470
#, c-format
msgid "not a valid branch point: '%s'"
msgstr "无效的分支点:'%s'"
-#: branch.c:469
+#: branch.c:658
+#, c-format
+msgid "submodule '%s': unable to find submodule"
+msgstr "å­æ¨¡ç»„ '%s':无法找到å­æ¨¡ç»„"
+
+#: branch.c:661
+#, c-format
+msgid ""
+"You may try updating the submodules using 'git checkout %s && git submodule "
+"update --init'"
+msgstr ""
+"ä½ å¯ä»¥ç”¨ 'git checkout %s && git submodule update --init' æ¥å°è¯•æ›´æ–°å­æ¨¡ç»„"
+
+#: branch.c:672 branch.c:698
+#, c-format
+msgid "submodule '%s': cannot create branch '%s'"
+msgstr "å­æ¨¡ç»„ '%s':ä¸èƒ½åˆ›å»ºåˆ†æ”¯ '%s'"
+
+#: branch.c:730
#, c-format
msgid "'%s' is already checked out at '%s'"
msgstr "'%s' å·²ç»æ£€å‡ºåˆ° '%s'"
-#: branch.c:494
+#: branch.c:755
#, c-format
msgid "HEAD of working tree %s is not updated"
msgstr "工作区 %s çš„ HEAD 指å‘没有被更新"
-#: bundle.c:44
+#: bundle.c:45
#, c-format
msgid "unrecognized bundle hash algorithm: %s"
msgstr "未能识别的归档包哈希算法:%s"
-#: bundle.c:48
+#: bundle.c:53
#, c-format
msgid "unknown capability '%s'"
msgstr "未知能力 '%s'"
-#: bundle.c:74
+#: bundle.c:79
#, c-format
msgid "'%s' does not look like a v2 or v3 bundle file"
msgstr "'%s' ä¸åƒæ˜¯ä¸€ä¸ª v2 或 v3 版本的归档包文件"
-#: bundle.c:113
+#: bundle.c:118
#, c-format
msgid "unrecognized header: %s%s (%d)"
msgstr "未能识别的包头:%s%s (%d)"
-#: bundle.c:140 rerere.c:464 rerere.c:674 sequencer.c:2620 sequencer.c:3406
-#: builtin/commit.c:862
+#: bundle.c:145 rerere.c:464 rerere.c:675 sequencer.c:2616 sequencer.c:3402
+#: builtin/commit.c:865
#, c-format
msgid "could not open '%s'"
msgstr "ä¸èƒ½æ‰“å¼€ '%s'"
-#: bundle.c:198
+#: bundle.c:203
msgid "Repository lacks these prerequisite commits:"
msgstr "仓库中缺少这些必备的æ交:"
-#: bundle.c:201
+#: bundle.c:206
msgid "need a repository to verify a bundle"
msgstr "需è¦ä¸€ä¸ªä»“库æ¥æ ¡éªŒä¸€ä¸ªå½’档包"
-#: bundle.c:257
+#: bundle.c:264
#, c-format
msgid "The bundle contains this ref:"
-msgid_plural "The bundle contains these %d refs:"
+msgid_plural "The bundle contains these %<PRIuMAX> refs:"
msgstr[0] "这个归档包中å«æœ‰è¿™ä¸ªå¼•ç”¨ï¼š"
-msgstr[1] "这个归档包中å«æœ‰ %d 个引用:"
+msgstr[1] "这个归档包中å«æœ‰ %<PRIuMAX> 个引用:"
-#: bundle.c:264
+#: bundle.c:272
msgid "The bundle records a complete history."
msgstr "这个归档包记录一个完整历å²ã€‚"
-#: bundle.c:266
+#: bundle.c:274
#, c-format
msgid "The bundle requires this ref:"
-msgid_plural "The bundle requires these %d refs:"
+msgid_plural "The bundle requires these %<PRIuMAX> refs:"
msgstr[0] "这个归档包需è¦è¿™ä¸ªå¼•ç”¨ï¼š"
-msgstr[1] "è¿™ä¸ªå½’æ¡£åŒ…éœ€è¦ %d 个引用:"
+msgstr[1] "è¿™ä¸ªå½’æ¡£åŒ…éœ€è¦ %<PRIuMAX> 个引用:"
-#: bundle.c:333
+#: bundle.c:350
msgid "unable to dup bundle descriptor"
msgstr "无法å¤åˆ¶å½’档包æ述符"
-#: bundle.c:340
+#: bundle.c:357
msgid "Could not spawn pack-objects"
msgstr "ä¸èƒ½ç”Ÿæˆ pack-objects 进程"
-#: bundle.c:351
+#: bundle.c:368
msgid "pack-objects died"
msgstr "pack-objects 终止"
-#: bundle.c:400
+#: bundle.c:417
#, c-format
msgid "ref '%s' is excluded by the rev-list options"
msgstr "引用 '%s' 被 rev-list 选项排除"
-#: bundle.c:504
+#: bundle.c:533 builtin/log.c:211 builtin/log.c:1975 builtin/shortlog.c:400
+#, c-format
+msgid "unrecognized argument: %s"
+msgstr "未能识别的å‚数:%s"
+
+#: bundle.c:548
#, c-format
msgid "unsupported bundle version %d"
msgstr "ä¸æ”¯æŒçš„归档包版本 %d"
-#: bundle.c:506
+#: bundle.c:550
#, c-format
msgid "cannot write bundle version %d with algorithm %s"
msgstr "ä¸èƒ½å†™å…¥ï¼Œå½’档包版本 %d ä¸æ”¯æŒç®—法 %s"
-#: bundle.c:524 builtin/log.c:210 builtin/log.c:1953 builtin/shortlog.c:399
-#, c-format
-msgid "unrecognized argument: %s"
-msgstr "未能识别的å‚数:%s"
-
-#: bundle.c:553
+#: bundle.c:600
msgid "Refusing to create empty bundle."
msgstr "ä¸èƒ½åˆ›å»ºç©ºçš„归档包。"
-#: bundle.c:563
+#: bundle.c:610
#, c-format
msgid "cannot create '%s'"
msgstr "ä¸èƒ½åˆ›å»º '%s'"
-#: bundle.c:588
+#: bundle.c:639
msgid "index-pack died"
msgstr "index-pack 终止"
@@ -2229,7 +2283,7 @@ msgstr "最终å—有éžé›¶ ID %<PRIx32>"
msgid "invalid color value: %.*s"
msgstr "无效的颜色值:%.*s"
-#: commit-graph.c:204 midx.c:51
+#: commit-graph.c:204 midx.c:52
msgid "invalid hash version"
msgstr "无效的哈希版本"
@@ -2257,234 +2311,235 @@ msgstr "æ交图形哈希版本 %X 和版本 %X ä¸åŒ¹é…"
msgid "commit-graph file is too small to hold %u chunks"
msgstr "æ交图形文件太å°ï¼Œå®¹ä¸ä¸‹ %u 个å—"
-#: commit-graph.c:482
+#: commit-graph.c:485
msgid "commit-graph has no base graphs chunk"
msgstr "æ交图形没有基础图形å—"
-#: commit-graph.c:492
+#: commit-graph.c:495
msgid "commit-graph chain does not match"
msgstr "æ交图形链ä¸åŒ¹é…"
-#: commit-graph.c:540
+#: commit-graph.c:543
#, c-format
msgid "invalid commit-graph chain: line '%s' not a hash"
msgstr "无效的æ交图形链:行 '%s' ä¸æ˜¯ä¸€ä¸ªå“ˆå¸Œå€¼"
-#: commit-graph.c:564
+#: commit-graph.c:567
msgid "unable to find all commit-graph files"
msgstr "无法找到所有æ交图形文件"
-#: commit-graph.c:749 commit-graph.c:786
+#: commit-graph.c:752 commit-graph.c:789
msgid "invalid commit position. commit-graph is likely corrupt"
msgstr "无效的æ交ä½ç½®ã€‚æ交图形å¯èƒ½å·²æŸå"
-#: commit-graph.c:770
+#: commit-graph.c:773
#, c-format
msgid "could not find commit %s"
msgstr "无法找到æ交 %s"
-#: commit-graph.c:803
+#: commit-graph.c:806
msgid "commit-graph requires overflow generation data but has none"
msgstr "æ交图需è¦æº¢å‡ºä¸–代数æ®ï¼Œä½†æ˜¯æ²¡æœ‰"
-#: commit-graph.c:1108 builtin/am.c:1369
+#: commit-graph.c:1111 builtin/am.c:1370 builtin/checkout.c:775
+#: builtin/clone.c:705
#, c-format
msgid "unable to parse commit %s"
msgstr "ä¸èƒ½è§£æžæ交 %s"
-#: commit-graph.c:1370 builtin/pack-objects.c:3070
+#: commit-graph.c:1373 builtin/pack-objects.c:3078
#, c-format
msgid "unable to get type of object %s"
msgstr "无法获得对象 %s 类型"
-#: commit-graph.c:1401
+#: commit-graph.c:1404
msgid "Loading known commits in commit graph"
msgstr "正在加载æ交图中的已知æ交"
-#: commit-graph.c:1418
+#: commit-graph.c:1421
msgid "Expanding reachable commits in commit graph"
msgstr "正在扩展æ交图中的å¯è¾¾æ交"
-#: commit-graph.c:1438
+#: commit-graph.c:1441
msgid "Clearing commit marks in commit graph"
msgstr "正在清除æ交图中的æ交标记"
-#: commit-graph.c:1457
+#: commit-graph.c:1460
msgid "Computing commit graph topological levels"
msgstr "正在计算æ交图拓扑级别"
-#: commit-graph.c:1510
+#: commit-graph.c:1513
msgid "Computing commit graph generation numbers"
msgstr "正在计算æ交图世代数字"
-#: commit-graph.c:1591
+#: commit-graph.c:1598
msgid "Computing commit changed paths Bloom filters"
msgstr "计算æ交å˜æ›´è·¯å¾„的布隆过滤器"
-#: commit-graph.c:1668
+#: commit-graph.c:1675
msgid "Collecting referenced commits"
msgstr "正在收集引用的æ交"
-#: commit-graph.c:1693
+#: commit-graph.c:1701
#, 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 个包中查找æ交图的æ交"
+msgid "Finding commits for commit graph in %<PRIuMAX> pack"
+msgid_plural "Finding commits for commit graph in %<PRIuMAX> packs"
+msgstr[0] "正在 %<PRIuMAX> 个包中查找æ交图的æ交"
+msgstr[1] "正在 %<PRIuMAX> 个包中查找æ交图的æ交"
-#: commit-graph.c:1706
+#: commit-graph.c:1714
#, c-format
msgid "error adding pack %s"
msgstr "添加包 %s 出错"
-#: commit-graph.c:1710
+#: commit-graph.c:1718
#, c-format
msgid "error opening index for %s"
msgstr "为 %s 打开索引出错"
-#: commit-graph.c:1747
+#: commit-graph.c:1756
msgid "Finding commits for commit graph among packed objects"
msgstr "正在打包对象中查找æ交图的æ交"
-#: commit-graph.c:1765
+#: commit-graph.c:1774
msgid "Finding extra edges in commit graph"
msgstr "正在查找æ交图中é¢å¤–çš„è¾¹"
-#: commit-graph.c:1814
+#: commit-graph.c:1823
msgid "failed to write correct number of base graph ids"
msgstr "无法写入正确数é‡çš„基础图形 ID"
-#: commit-graph.c:1845 midx.c:1149
+#: commit-graph.c:1854 midx.c:1168 builtin/sparse-checkout.c:475
#, c-format
msgid "unable to create leading directories of %s"
msgstr "ä¸èƒ½ä¸º %s 创建先导目录"
-#: commit-graph.c:1858
+#: commit-graph.c:1868
msgid "unable to create temporary graph layer"
msgstr "无法创建临时图层"
-#: commit-graph.c:1863
+#: commit-graph.c:1873
#, c-format
msgid "unable to adjust shared permissions for '%s'"
msgstr "无法为 '%s' 调整共享æƒé™"
-#: commit-graph.c:1920
+#: commit-graph.c:1930
#, 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:1956
+#: commit-graph.c:1967
msgid "unable to open commit-graph chain file"
msgstr "无法打开æ交图形链文件"
-#: commit-graph.c:1972
+#: commit-graph.c:1983
msgid "failed to rename base commit-graph file"
msgstr "无法é‡å‘½å基础æ交图形文件"
-#: commit-graph.c:1992
+#: commit-graph.c:2004
msgid "failed to rename temporary commit-graph file"
msgstr "无法é‡å‘½å临时æ交图形文件"
-#: commit-graph.c:2125
+#: commit-graph.c:2137
msgid "Scanning merged commits"
msgstr "正在扫æåˆå¹¶æ交"
-#: commit-graph.c:2169
+#: commit-graph.c:2181
msgid "Merging commit-graph"
msgstr "正在åˆå¹¶æ交图形"
-#: commit-graph.c:2277
+#: commit-graph.c:2289
msgid "attempting to write a commit-graph, but 'core.commitGraph' is disabled"
msgstr "æ­£å°è¯•å†™æ交图,但是 'core.commitGraph' 被ç¦ç”¨"
-#: commit-graph.c:2384
+#: commit-graph.c:2396
msgid "too many commits to write graph"
msgstr "æ交太多ä¸èƒ½ç”»å›¾"
-#: commit-graph.c:2482
+#: commit-graph.c:2494
msgid "the commit-graph file has incorrect checksum and is likely corrupt"
msgstr "æ交图文件的校验ç é”™è¯¯ï¼Œå¯èƒ½å·²ç»æŸå"
-#: commit-graph.c:2492
+#: commit-graph.c:2504
#, c-format
msgid "commit-graph has incorrect OID order: %s then %s"
msgstr "æ交图形的对象 ID 顺åºä¸æ­£ç¡®ï¼š%s ç„¶åŽ %s"
-#: commit-graph.c:2502 commit-graph.c:2517
+#: commit-graph.c:2514 commit-graph.c:2529
#, c-format
msgid "commit-graph has incorrect fanout value: fanout[%d] = %u != %u"
msgstr "æ交图形有ä¸æ­£ç¡®çš„扇出值:fanout[%d] = %u != %u"
-#: commit-graph.c:2509
+#: commit-graph.c:2521
#, c-format
msgid "failed to parse commit %s from commit-graph"
msgstr "无法从æ交图形中解æžæ交 %s"
-#: commit-graph.c:2527
+#: commit-graph.c:2539
msgid "Verifying commits in commit graph"
msgstr "正在校验æ交图中的æ交"
-#: commit-graph.c:2542
+#: commit-graph.c:2554
#, c-format
msgid "failed to parse commit %s from object database for commit-graph"
msgstr "无法从æ交图形的对象库中解æžæ交 %s"
-#: commit-graph.c:2549
+#: commit-graph.c:2561
#, c-format
msgid "root tree OID for commit %s in commit-graph is %s != %s"
msgstr "æ交图形中的æ交 %s 的根树对象 ID 是 %s != %s"
-#: commit-graph.c:2559
+#: commit-graph.c:2571
#, c-format
msgid "commit-graph parent list for commit %s is too long"
msgstr "æ交 %s çš„æ交图形父æ交列表太长了"
-#: commit-graph.c:2568
+#: commit-graph.c:2580
#, c-format
msgid "commit-graph parent for %s is %s != %s"
msgstr "%s çš„æ交图形父æ交是 %s != %s"
-#: commit-graph.c:2582
+#: commit-graph.c:2594
#, c-format
msgid "commit-graph parent list for commit %s terminates early"
msgstr "æ交 %s çš„æ交图形父æ交列表过早终止"
-#: commit-graph.c:2587
+#: commit-graph.c:2599
#, c-format
msgid ""
"commit-graph has generation number zero for commit %s, but non-zero elsewhere"
msgstr "æ交图形中æ交 %s 的世代å·æ˜¯é›¶ï¼Œä½†å…¶å®ƒåœ°æ–¹éžé›¶"
-#: commit-graph.c:2591
+#: commit-graph.c:2603
#, c-format
msgid ""
"commit-graph has non-zero generation number for commit %s, but zero elsewhere"
msgstr "æ交图形中æ交 %s 的世代å·éžé›¶ï¼Œä½†å…¶å®ƒåœ°æ–¹æ˜¯é›¶"
-#: commit-graph.c:2608
+#: commit-graph.c:2620
#, c-format
msgid "commit-graph generation for commit %s is %<PRIuMAX> < %<PRIuMAX>"
msgstr "æ交图形中的æ交 %s 的世代å·æ˜¯ %<PRIuMAX> < %<PRIuMAX>"
-#: commit-graph.c:2614
+#: commit-graph.c:2626
#, c-format
msgid "commit date for commit %s in commit-graph is %<PRIuMAX> != %<PRIuMAX>"
msgstr "æ交图形中æ交 %s çš„æ交日期是 %<PRIuMAX> != %<PRIuMAX>"
-#: commit.c:53 sequencer.c:3109 builtin/am.c:399 builtin/am.c:444
-#: builtin/am.c:449 builtin/am.c:1448 builtin/am.c:2123 builtin/replace.c:456
+#: commit.c:54 sequencer.c:3105 builtin/am.c:400 builtin/am.c:445
+#: builtin/am.c:450 builtin/am.c:1449 builtin/am.c:2124 builtin/replace.c:456
#, c-format
msgid "could not parse %s"
msgstr "ä¸èƒ½è§£æž %s"
-#: commit.c:55
+#: commit.c:56
#, c-format
msgid "%s %s is not a commit!"
msgstr "%s %s ä¸æ˜¯ä¸€ä¸ªæ交ï¼"
-#: commit.c:196
+#: commit.c:197
msgid ""
"Support for <GIT_DIR>/info/grafts is deprecated\n"
"and will be removed in a future Git version.\n"
@@ -2504,27 +2559,27 @@ msgstr ""
"设置 \"git config advice.graftFileDeprecated false\"\n"
"å¯å…³é—­æœ¬æ¶ˆæ¯"
-#: commit.c:1241
+#: commit.c:1252
#, c-format
msgid "Commit %s has an untrusted GPG signature, allegedly by %s."
msgstr "æ交 %s 有一个éžå¯ä¿¡çš„声称æ¥è‡ª %s çš„ GPG ç­¾å。"
-#: commit.c:1245
+#: commit.c:1256
#, c-format
msgid "Commit %s has a bad GPG signature allegedly by %s."
msgstr "æ交 %s 有一个错误的声称æ¥è‡ª %s çš„ GPG ç­¾å。"
-#: commit.c:1248
+#: commit.c:1259
#, c-format
msgid "Commit %s does not have a GPG signature."
msgstr "æ交 %s 没有 GPG ç­¾å。"
-#: commit.c:1251
+#: commit.c:1262
#, c-format
msgid "Commit %s has a good GPG signature by %s\n"
msgstr "æ交 %s 有一个æ¥è‡ª %s 的好的 GPG ç­¾å。\n"
-#: commit.c:1505
+#: commit.c:1516
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"
@@ -2538,7 +2593,15 @@ msgstr ""
msgid "memory exhausted"
msgstr "内存耗尽"
-#: config.c:125
+#: compat/terminal.c:167
+msgid "cannot resume in the background, please use 'fg' to resume"
+msgstr "无法从åŽå°ä¸­æ¢å¤ï¼Œè¯·ä½¿ç”¨ 'fg' æ¥æ¢å¤"
+
+#: compat/terminal.c:168
+msgid "cannot restore terminal settings"
+msgstr "无法æ¢å¤ç»ˆç«¯è®¾ç½®"
+
+#: config.c:143
#, c-format
msgid ""
"exceeded maximum include depth (%d) while including\n"
@@ -2553,333 +2616,360 @@ msgstr ""
"\t%2$s\n"
"è¿™å¯èƒ½æ˜¯å› ä¸ºå¾ªçŽ¯åŒ…å«ã€‚"
-#: config.c:141
+#: config.c:159
#, c-format
msgid "could not expand include path '%s'"
msgstr "无法扩展包å«è·¯å¾„ '%s'"
-#: config.c:152
+#: config.c:170
msgid "relative config includes must come from files"
msgstr "相对路径的é…置文件引用必须æ¥è‡ªäºŽæ–‡ä»¶"
-#: config.c:201
+#: config.c:219
msgid "relative config include conditionals must come from files"
msgstr "相对路径的é…置文件æ¡ä»¶å¼•ç”¨å¿…é¡»æ¥è‡ªäºŽæ–‡ä»¶"
-#: config.c:398
+#: config.c:364
+msgid ""
+"remote URLs cannot be configured in file directly or indirectly included by "
+"includeIf.hasconfig:remote.*.url"
+msgstr ""
+"远程 URL ä¸èƒ½åœ¨æ–‡ä»¶ä¸­é…置,ä¸ç®¡ç›´æŽ¥åœ°è¿˜æ˜¯é€šè¿‡ includeIf.hasconfig:remote.*."
+"url 间接地包å«ã€‚"
+
+#: config.c:508
#, c-format
msgid "invalid config format: %s"
msgstr "无效的é…置格å¼ï¼š%s"
-#: config.c:402
+#: config.c:512
#, c-format
msgid "missing environment variable name for configuration '%.*s'"
msgstr "é…ç½® '%.*s' 缺少环境å˜é‡å称"
-#: config.c:407
+#: config.c:517
#, c-format
msgid "missing environment variable '%s' for configuration '%.*s'"
msgstr "缺少环境å˜é‡ '%s' 于é…ç½® '%.*s' "
-#: config.c:443
+#: config.c:553
#, c-format
msgid "key does not contain a section: %s"
msgstr "é”®å没有包å«ä¸€ä¸ªå°èŠ‚å称:%s"
-#: config.c:448
+#: config.c:558
#, c-format
msgid "key does not contain variable name: %s"
msgstr "é”®å没有包å«å˜é‡å:%s"
-#: config.c:470 sequencer.c:2806
+#: config.c:580 sequencer.c:2802
#, c-format
msgid "invalid key: %s"
msgstr "无效键å:%s"
-#: config.c:475
+#: config.c:585
#, c-format
msgid "invalid key (newline): %s"
msgstr "无效键å(有æ¢è¡Œç¬¦ï¼‰ï¼š%s"
-#: config.c:495
+#: config.c:605
msgid "empty config key"
msgstr "空的é…置键å"
-#: config.c:513 config.c:525
+#: config.c:623 config.c:635
#, c-format
msgid "bogus config parameter: %s"
msgstr "伪é…ç½®å‚数:%s"
-#: config.c:539 config.c:556 config.c:563 config.c:572
+#: config.c:649 config.c:666 config.c:673 config.c:682
#, c-format
msgid "bogus format in %s"
msgstr "%s 中格å¼é”™è¯¯"
-#: config.c:606
+#: config.c:716
#, c-format
msgid "bogus count in %s"
msgstr "%s 中错误计数"
-#: config.c:610
+#: config.c:720
#, c-format
msgid "too many entries in %s"
msgstr "%s 中太多的æ¡ç›®"
-#: config.c:620
+#: config.c:730
#, c-format
msgid "missing config key %s"
msgstr "缺失é…置键å %s"
-#: config.c:628
+#: config.c:738
#, c-format
msgid "missing config value %s"
msgstr "缺失é…ç½®å–值 %s"
-#: config.c:979
+#: config.c:1089
#, c-format
msgid "bad config line %d in blob %s"
msgstr "æ•°æ®å¯¹è±¡ %2$s 中错误的é…置行 %1$d"
-#: config.c:983
+#: config.c:1093
#, c-format
msgid "bad config line %d in file %s"
msgstr "文件 %2$s 中错误的é…置行 %1$d"
-#: config.c:987
+#: config.c:1097
#, c-format
msgid "bad config line %d in standard input"
msgstr "标准输入中错误的é…置行 %d"
-#: config.c:991
+#: config.c:1101
#, c-format
msgid "bad config line %d in submodule-blob %s"
msgstr "å­æ¨¡ç»„æ•°æ®å¯¹è±¡ %2$s 中错误的é…置行 %1$d"
-#: config.c:995
+#: config.c:1105
#, c-format
msgid "bad config line %d in command line %s"
msgstr "命令行 %2$s 中错误的é…置行 %1$d"
-#: config.c:999
+#: config.c:1109
#, c-format
msgid "bad config line %d in %s"
msgstr "在 %2$s 中错误的é…置行 %1$d"
-#: config.c:1136
+#: config.c:1246
msgid "out of range"
msgstr "超出范围"
-#: config.c:1136
+#: config.c:1246
msgid "invalid unit"
msgstr "无效的å•ä½"
-#: config.c:1137
+#: config.c:1247
#, c-format
msgid "bad numeric config value '%s' for '%s': %s"
msgstr "é…ç½®å˜é‡ '%2$s' çš„æ•°å­—å–值 '%1$s' 设置错误:%3$s"
-#: config.c:1147
+#: config.c:1257
#, c-format
msgid "bad numeric config value '%s' for '%s' in blob %s: %s"
msgstr "æ•°æ®å¯¹è±¡ %3$s 中é…ç½®å˜é‡ '%2$s' 错误的å–值 '%1$s':%4$s"
-#: config.c:1150
+#: config.c:1260
#, c-format
msgid "bad numeric config value '%s' for '%s' in file %s: %s"
msgstr "文件 %3$s 中é…ç½®å˜é‡ '%2$s' 错误的å–值 '%1$s':%4$s"
-#: config.c:1153
+#: config.c:1263
#, c-format
msgid "bad numeric config value '%s' for '%s' in standard input: %s"
msgstr "标准输入中é…ç½®å˜é‡ '%2$s' 错误的å–值 '%1$s':%3$s"
-#: config.c:1156
+#: config.c:1266
#, c-format
msgid "bad numeric config value '%s' for '%s' in submodule-blob %s: %s"
msgstr "å­æ¨¡ç»„æ•°æ® %3$s 中é…ç½®å˜é‡ '%2$s' 错误的å–值 '%1$s':%4$s"
-#: config.c:1159
+#: config.c:1269
#, c-format
msgid "bad numeric config value '%s' for '%s' in command line %s: %s"
msgstr "命令行 %3$s 中é…ç½®å˜é‡ '%2$s' 错误的å–值 '%1$s':%4$s"
-#: config.c:1162
+#: config.c:1272
#, c-format
msgid "bad numeric config value '%s' for '%s' in %s: %s"
msgstr "在 %3$s 中é…ç½®å˜é‡ '%2$s' 错误的å–值 '%1$s':%4$s"
-#: config.c:1241
+#: config.c:1368
+#, c-format
+msgid "invalid value for variable %s"
+msgstr "å˜é‡ %s 的值无效"
+
+#: config.c:1389
+#, c-format
+msgid "ignoring unknown core.fsync component '%s'"
+msgstr "忽略未知的 core.fsync 组件 '%s'"
+
+#: config.c:1425
#, c-format
msgid "bad boolean config value '%s' for '%s'"
msgstr "'%2$s' 的错误的布尔å–值 '%1$s'"
-#: config.c:1259
+#: config.c:1443
#, c-format
msgid "failed to expand user dir in: '%s'"
msgstr "无法扩展用户目录:'%s'"
-#: config.c:1268
+#: config.c:1452
#, c-format
msgid "'%s' for '%s' is not a valid timestamp"
msgstr "'%2$s' 的值 '%1$s' ä¸æ˜¯ä¸€ä¸ªæœ‰æ•ˆçš„时间戳"
-#: config.c:1361
+#: config.c:1545
#, c-format
msgid "abbrev length out of range: %d"
msgstr "缩写长度超出范围:%d"
-#: config.c:1375 config.c:1386
+#: config.c:1559 config.c:1570
#, c-format
msgid "bad zlib compression level %d"
msgstr "错误的 zlib 压缩级别 %d"
-#: config.c:1476
+#: config.c:1660
msgid "core.commentChar should only be one character"
msgstr "core.commentChar 应该是一个字符"
-#: config.c:1509
+#: config.c:1692
+#, c-format
+msgid "ignoring unknown core.fsyncMethod value '%s'"
+msgstr "忽略未知的 core.fsyncMethod 值 '%s'"
+
+#: config.c:1698
+msgid "core.fsyncObjectFiles is deprecated; use core.fsync instead"
+msgstr "core.fsyncObjectFiles å·²ç»è¢«å¼ƒç”¨ï¼›å–而代之使用 core.fsync"
+
+#: config.c:1714
#, c-format
msgid "invalid mode for object creation: %s"
msgstr "无效的对象创建模å¼ï¼š%s"
-#: config.c:1584
+#: config.c:1800
#, c-format
msgid "malformed value for %s"
msgstr "%s çš„å–值格å¼é”™è¯¯"
-#: config.c:1610
+#: config.c:1826
#, c-format
msgid "malformed value for %s: %s"
msgstr "%s çš„å–值格å¼é”™è¯¯ï¼š%s"
-#: config.c:1611
+#: config.c:1827
msgid "must be one of nothing, matching, simple, upstream or current"
msgstr "必须是其中之一:nothingã€matchingã€simpleã€upstream 或 current"
-#: config.c:1672 builtin/pack-objects.c:4053
+#: config.c:1888 builtin/pack-objects.c:4078
#, c-format
msgid "bad pack compression level %d"
msgstr "错误的打包压缩级别 %d"
-#: config.c:1795
+#: config.c:2014
#, c-format
msgid "unable to load config blob object '%s'"
msgstr "无法从数æ®å¯¹è±¡ '%s' 加载é…ç½®"
-#: config.c:1798
+#: config.c:2017
#, c-format
msgid "reference '%s' does not point to a blob"
msgstr "引用 '%s' 没有指å‘一个数æ®å¯¹è±¡"
-#: config.c:1816
+#: config.c:2035
#, c-format
msgid "unable to resolve config blob '%s'"
msgstr "ä¸èƒ½è§£æžé…置对象 '%s'"
-#: config.c:1861
+#: config.c:2080
#, c-format
msgid "failed to parse %s"
msgstr "æ— æ³•è§£æž %s"
-#: config.c:1917
+#: config.c:2136
msgid "unable to parse command-line config"
msgstr "无法解æžå‘½ä»¤è¡Œä¸­çš„é…ç½®"
-#: config.c:2285
+#: config.c:2512
msgid "unknown error occurred while reading the configuration files"
msgstr "在读å–é…置文件时é‡åˆ°æœªçŸ¥é”™è¯¯"
-#: config.c:2459
+#: config.c:2686
#, c-format
msgid "Invalid %s: '%s'"
msgstr "无效 %s:'%s'"
-#: config.c:2504
+#: config.c:2731
#, c-format
msgid "splitIndex.maxPercentChange value '%d' should be between 0 and 100"
msgstr "splitIndex.maxPercentChange çš„å–值 '%d' 应该介于 0 å’Œ 100 之间"
-#: config.c:2550
+#: config.c:2763
#, c-format
msgid "unable to parse '%s' from command-line config"
msgstr "无法解æžå‘½ä»¤è¡Œé…置中的 '%s'"
-#: config.c:2552
+#: config.c:2765
#, c-format
msgid "bad config variable '%s' in file '%s' at line %d"
msgstr "在文件 '%2$s' 的第 %3$d è¡Œå‘现错误的é…ç½®å˜é‡ '%1$s'"
-#: config.c:2637
+#: config.c:2850
#, c-format
msgid "invalid section name '%s'"
msgstr "无效的å°èŠ‚å称 '%s'"
-#: config.c:2669
+#: config.c:2882
#, c-format
msgid "%s has multiple values"
msgstr "%s 有多个å–值"
-#: config.c:2698
+#: config.c:2911
#, c-format
msgid "failed to write new configuration file %s"
msgstr "无法写入新的é…置文件 %s"
-#: config.c:2950 config.c:3277
+#: config.c:3177 config.c:3518
#, c-format
msgid "could not lock config file %s"
msgstr "ä¸èƒ½é”定é…置文件 %s"
-#: config.c:2961
+#: config.c:3188
#, c-format
msgid "opening %s"
msgstr "打开 %s"
-#: config.c:2998 builtin/config.c:361
+#: config.c:3225 builtin/config.c:361
#, c-format
msgid "invalid pattern: %s"
msgstr "无效模å¼ï¼š%s"
-#: config.c:3023
+#: config.c:3250
#, c-format
msgid "invalid config file %s"
msgstr "无效的é…置文件 %s"
-#: config.c:3036 config.c:3290
+#: config.c:3263 config.c:3531
#, c-format
msgid "fstat on %s failed"
msgstr "对 %s 调用 fstat 失败"
-#: config.c:3047
+#: config.c:3274
#, c-format
msgid "unable to mmap '%s'%s"
msgstr "ä¸èƒ½ mmap '%s'%s"
-#: config.c:3057 config.c:3295
+#: config.c:3284 config.c:3536
#, c-format
msgid "chmod on %s failed"
msgstr "对 %s 调用 chmod 失败"
-#: config.c:3142 config.c:3392
+#: config.c:3369 config.c:3633
#, c-format
msgid "could not write config file %s"
msgstr "ä¸èƒ½å†™å…¥é…置文件 %s"
-#: config.c:3176
+#: config.c:3403
#, c-format
msgid "could not set '%s' to '%s'"
msgstr "ä¸èƒ½è®¾ç½® '%s' 为 '%s'"
-#: config.c:3178 builtin/remote.c:662 builtin/remote.c:860 builtin/remote.c:868
+#: config.c:3405 builtin/remote.c:666 builtin/remote.c:885 builtin/remote.c:893
#, c-format
msgid "could not unset '%s'"
msgstr "ä¸èƒ½å–消设置 '%s'"
-#: config.c:3268
+#: config.c:3509
#, c-format
msgid "invalid section name: %s"
msgstr "无效的å°èŠ‚å称:%s"
-#: config.c:3435
+#: config.c:3676
#, c-format
msgid "missing value for '%s'"
msgstr "%s çš„å–值缺失"
@@ -3208,68 +3298,68 @@ msgstr "æ‹’ç»ä½¿ç”¨ç¼ºå°‘主机字段的凭æ®"
msgid "refusing to work with credential missing protocol field"
msgstr "æ‹’ç»ä½¿ç”¨ç¼ºå°‘å议字段的凭æ®"
-#: credential.c:395
+#: credential.c:396
#, c-format
msgid "url contains a newline in its %s component: %s"
msgstr "URL çš„ %s 组件中包å«æ¢è¡Œç¬¦ï¼š%s"
-#: credential.c:439
+#: credential.c:440
#, c-format
msgid "url has no scheme: %s"
msgstr "URL 没有 scheme:%s"
-#: credential.c:512
+#: credential.c:513
#, c-format
msgid "credential url cannot be parsed: %s"
msgstr "ä¸èƒ½è§£æžå‡­æ® URL:%s"
-#: date.c:138
+#: date.c:139
msgid "in the future"
msgstr "在将æ¥"
-#: date.c:144
+#: date.c:145
#, c-format
msgid "%<PRIuMAX> second ago"
msgid_plural "%<PRIuMAX> seconds ago"
msgstr[0] "%<PRIuMAX> 秒钟å‰"
msgstr[1] "%<PRIuMAX> 秒钟å‰"
-#: date.c:151
+#: date.c:152
#, c-format
msgid "%<PRIuMAX> minute ago"
msgid_plural "%<PRIuMAX> minutes ago"
msgstr[0] "%<PRIuMAX> 分钟å‰"
msgstr[1] "%<PRIuMAX> 分钟å‰"
-#: date.c:158
+#: date.c:159
#, c-format
msgid "%<PRIuMAX> hour ago"
msgid_plural "%<PRIuMAX> hours ago"
msgstr[0] "%<PRIuMAX> å°æ—¶å‰"
msgstr[1] "%<PRIuMAX> å°æ—¶å‰"
-#: date.c:165
+#: date.c:166
#, c-format
msgid "%<PRIuMAX> day ago"
msgid_plural "%<PRIuMAX> days ago"
msgstr[0] "%<PRIuMAX> 天å‰"
msgstr[1] "%<PRIuMAX> 天å‰"
-#: date.c:171
+#: date.c:172
#, c-format
msgid "%<PRIuMAX> week ago"
msgid_plural "%<PRIuMAX> weeks ago"
msgstr[0] "%<PRIuMAX> 周å‰"
msgstr[1] "%<PRIuMAX> 周å‰"
-#: date.c:178
+#: date.c:179
#, c-format
msgid "%<PRIuMAX> month ago"
msgid_plural "%<PRIuMAX> months ago"
msgstr[0] "%<PRIuMAX> 个月å‰"
msgstr[1] "%<PRIuMAX> 个月å‰"
-#: date.c:189
+#: date.c:190
#, c-format
msgid "%<PRIuMAX> year"
msgid_plural "%<PRIuMAX> years"
@@ -3277,14 +3367,14 @@ msgstr[0] "%<PRIuMAX> å¹´"
msgstr[1] "%<PRIuMAX> å¹´"
#. TRANSLATORS: "%s" is "<n> years"
-#: date.c:192
+#: date.c:193
#, c-format
msgid "%s, %<PRIuMAX> month ago"
msgid_plural "%s, %<PRIuMAX> months ago"
msgstr[0] "%s %<PRIuMAX> 个月å‰"
msgstr[1] "%s %<PRIuMAX> 个月å‰"
-#: date.c:197 date.c:202
+#: date.c:198 date.c:203
#, c-format
msgid "%<PRIuMAX> year ago"
msgid_plural "%<PRIuMAX> years ago"
@@ -3315,10 +3405,14 @@ msgstr "æ¥è‡ª config çš„æ•°æ®å²›æ­£åˆ™è¡¨è¾¾å¼æœ‰å¤ªå¤šçš„æ•èŽ·ç»„(最多
msgid "Marked %d islands, done.\n"
msgstr "已标记 %d 个数æ®å²›ï¼Œç»“æŸã€‚\n"
-#: diff-merges.c:70
+#: diff-merges.c:81 gpg-interface.c:719 gpg-interface.c:734 ls-refs.c:37
+#: parallel-checkout.c:42 sequencer.c:2805 setup.c:563 builtin/am.c:203
+#: builtin/am.c:2243 builtin/am.c:2287 builtin/blame.c:724 builtin/blame.c:742
+#: builtin/fetch.c:792 builtin/pack-objects.c:3515 builtin/pull.c:45
+#: builtin/pull.c:47 builtin/pull.c:321
#, c-format
-msgid "unknown value for --diff-merges: %s"
-msgstr "未知的 --diff-merges å–值:%s"
+msgid "invalid value for '%s': '%s'"
+msgstr "'%s' 的值无效:'%s'"
#: diff-lib.c:561
msgid "--merge-base does not work with ranges"
@@ -3351,18 +3445,18 @@ msgid ""
msgstr "ä¸æ˜¯ git 仓库。使用 --no-index 比较工作区之外的两个路径"
# 译者:注æ„ä¿æŒå‰å¯¼ç©ºæ ¼
-#: diff.c:158
+#: diff.c:159
#, c-format
msgid " Failed to parse dirstat cut-off percentage '%s'\n"
msgstr " æ— æ³•è§£æž dirstat 截止(cut-off)百分比 '%s'\n"
# 译者:注æ„ä¿æŒå‰å¯¼ç©ºæ ¼
-#: diff.c:163
+#: diff.c:164
#, c-format
msgid " Unknown dirstat parameter '%s'\n"
msgstr " 未知的 dirstat å‚æ•° '%s'\n"
-#: diff.c:299
+#: diff.c:300
msgid ""
"color moved setting must be one of 'no', 'default', 'blocks', 'zebra', "
"'dimmed-zebra', 'plain'"
@@ -3370,7 +3464,7 @@ msgstr ""
"移动的颜色设置必须是 'no'ã€'default'ã€'blocks'ã€'zebra'ã€'dimmed-zebra' 或 "
"'plain'"
-#: diff.c:327
+#: diff.c:328
#, c-format
msgid ""
"unknown color-moved-ws mode '%s', possible values are 'ignore-space-change', "
@@ -3379,18 +3473,18 @@ msgstr ""
"未知的 color-moved-ws æ¨¡å¼ '%s',å¯èƒ½çš„å–值有 'ignore-space-change'ã€'ignore-"
"space-at-eol'ã€'ignore-all-space'ã€'allow-indentation-change'"
-#: diff.c:335
+#: diff.c:336
msgid ""
"color-moved-ws: allow-indentation-change cannot be combined with other "
"whitespace modes"
msgstr "color-moved-ws:allow-indentation-change ä¸èƒ½ä¸Žå…¶å®ƒç©ºç™½å­—符模å¼å…±ç”¨"
-#: diff.c:412
+#: diff.c:413
#, c-format
msgid "Unknown value for 'diff.submodule' config variable: '%s'"
msgstr "é…ç½®å˜é‡ 'diff.submodule' 未知的å–值:'%s'"
-#: diff.c:472
+#: diff.c:473
#, c-format
msgid ""
"Found errors in 'diff.dirstat' config variable:\n"
@@ -3399,48 +3493,48 @@ msgstr ""
"å‘现é…ç½®å˜é‡ 'diff.dirstat' 中的错误:\n"
"%s"
-#: diff.c:4237
+#: diff.c:4282
#, c-format
msgid "external diff died, stopping at %s"
msgstr "外部 diff 退出,åœæ­¢åœ¨ %s"
-#: diff.c:4589
+#: diff.c:4677 parse-options.c:1114
#, c-format
msgid "options '%s', '%s', '%s', and '%s' cannot be used together"
msgstr "选项 '%s'ã€'%s'ã€'%s' å’Œ '%s' ä¸èƒ½åŒæ—¶ä½¿ç”¨"
-#: diff.c:4593 builtin/difftool.c:736 builtin/log.c:1982 builtin/worktree.c:506
+#: diff.c:4681 parse-options.c:1118 builtin/worktree.c:578
#, c-format
msgid "options '%s', '%s', and '%s' cannot be used together"
msgstr "选项 '%s'ã€'%s' å’Œ '%s' ä¸èƒ½åŒæ—¶ä½¿ç”¨"
-#: diff.c:4597
+#: diff.c:4685
#, c-format
msgid "options '%s' and '%s' cannot be used together, use '%s' with '%s'"
msgstr "选项 '%1$s'ã€'%2$s' ä¸èƒ½åŒæ—¶ä½¿ç”¨ï¼Œä¸Ž '%4$s' 一起使用 '%3$s'"
-#: diff.c:4601
+#: diff.c:4689
#, c-format
msgid ""
"options '%s' and '%s' cannot be used together, use '%s' with '%s' and '%s'"
msgstr "选项 '%1$s'ã€'%2$s' ä¸èƒ½åŒæ—¶ä½¿ç”¨ï¼Œä¸Ž '%4$s' å’Œ '%5$s' 一起使用 '%3$s'"
-#: diff.c:4681
+#: diff.c:4769
msgid "--follow requires exactly one pathspec"
msgstr "--follow 明确è¦æ±‚åªè·Ÿä¸€ä¸ªè·¯å¾„规格"
-#: diff.c:4729
+#: diff.c:4823
#, c-format
msgid "invalid --stat value: %s"
msgstr "无效的 --stat 值:%s"
-#: diff.c:4734 diff.c:4739 diff.c:4744 diff.c:4749 diff.c:5277
+#: diff.c:4828 diff.c:4833 diff.c:4838 diff.c:4843 diff.c:5319
#: parse-options.c:217 parse-options.c:221
#, c-format
msgid "%s expects a numerical value"
msgstr "%s 期望一个数字值"
-#: diff.c:4766
+#: diff.c:4860
#, c-format
msgid ""
"Failed to parse --dirstat/-X option parameter:\n"
@@ -3449,200 +3543,200 @@ msgstr ""
"æ— æ³•è§£æž --dirstat/-X 选项的å‚数:\n"
"%s"
-#: diff.c:4851
+#: diff.c:4893
#, c-format
msgid "unknown change class '%c' in --diff-filter=%s"
msgstr "--diff-filter=%2$s 中未知的å˜æ›´ç±» '%1$c'"
-#: diff.c:4875
+#: diff.c:4917
#, c-format
msgid "unknown value after ws-error-highlight=%.*s"
msgstr "ws-error-highlight=%.*s 之åŽæœªçŸ¥çš„值"
-#: diff.c:4889
+#: diff.c:4931
#, c-format
msgid "unable to resolve '%s'"
msgstr "ä¸èƒ½è§£æž '%s'"
-#: diff.c:4939 diff.c:4945
+#: diff.c:4981 diff.c:4987
#, c-format
msgid "%s expects <n>/<m> form"
msgstr "%s 期望 <n>/<m> æ ¼å¼"
-#: diff.c:4957
+#: diff.c:4999
#, c-format
msgid "%s expects a character, got '%s'"
msgstr "%s 期望一个字符,得到 '%s'"
-#: diff.c:4978
+#: diff.c:5020
#, c-format
msgid "bad --color-moved argument: %s"
msgstr "åçš„ --color-moved å‚数:%s"
-#: diff.c:4997
+#: diff.c:5039
#, c-format
msgid "invalid mode '%s' in --color-moved-ws"
msgstr "--color-moved-ws ä¸­çš„æ— æ•ˆæ¨¡å¼ '%s' "
-#: diff.c:5037
+#: diff.c:5079
msgid ""
"option diff-algorithm accepts \"myers\", \"minimal\", \"patience\" and "
"\"histogram\""
msgstr ""
"diff-algorithm 选项有 \"myers\"ã€\"minimal\"ã€\"patience\" å’Œ \"histogram\""
-#: diff.c:5073 diff.c:5093
+#: diff.c:5115 diff.c:5135
#, c-format
msgid "invalid argument to %s"
msgstr "%s çš„å‚数无效"
-#: diff.c:5197
+#: diff.c:5239
#, c-format
msgid "invalid regex given to -I: '%s'"
msgstr "选项 -I 的正则表达å¼æ— æ•ˆï¼š'%s'"
-#: diff.c:5246
+#: diff.c:5288
#, c-format
msgid "failed to parse --submodule option parameter: '%s'"
msgstr "æ— æ³•è§£æž --submodule 选项的å‚数:'%s'"
-#: diff.c:5302
+#: diff.c:5344
#, c-format
msgid "bad --word-diff argument: %s"
msgstr "åçš„ --word-diff å‚数:%s"
-#: diff.c:5338
+#: diff.c:5380
msgid "Diff output format options"
msgstr "差异输出格å¼åŒ–选项"
-#: diff.c:5340 diff.c:5346
+#: diff.c:5382 diff.c:5388
msgid "generate patch"
msgstr "生æˆè¡¥ä¸"
-#: diff.c:5343 builtin/log.c:179
+#: diff.c:5385 builtin/log.c:180
msgid "suppress diff output"
msgstr "ä¸æ˜¾ç¤ºå·®å¼‚输出"
-#: diff.c:5348 diff.c:5462 diff.c:5469
+#: diff.c:5390 diff.c:5504 diff.c:5511
msgid "<n>"
msgstr "<n>"
-#: diff.c:5349 diff.c:5352
+#: diff.c:5391 diff.c:5394
msgid "generate diffs with <n> lines context"
msgstr "生æˆå« <n> 行上下文的差异"
-#: diff.c:5354
+#: diff.c:5396
msgid "generate the diff in raw format"
msgstr "生æˆåŽŸå§‹æ ¼å¼çš„差异"
-#: diff.c:5357
+#: diff.c:5399
msgid "synonym for '-p --raw'"
msgstr "å’Œ '-p --raw' åŒä¹‰"
-#: diff.c:5361
+#: diff.c:5403
msgid "synonym for '-p --stat'"
msgstr "å’Œ '-p --stat' åŒä¹‰"
-#: diff.c:5365
+#: diff.c:5407
msgid "machine friendly --stat"
msgstr "机器å‹å¥½çš„ --stat"
-#: diff.c:5368
+#: diff.c:5410
msgid "output only the last line of --stat"
msgstr "åªè¾“出 --stat 的最åŽä¸€è¡Œ"
-#: diff.c:5370 diff.c:5378
+#: diff.c:5412 diff.c:5420
msgid "<param1,param2>..."
msgstr "<å‚æ•°1,å‚æ•°2>..."
-#: diff.c:5371
+#: diff.c:5413
msgid ""
"output the distribution of relative amount of changes for each sub-directory"
msgstr "输出æ¯ä¸ªå­ç›®å½•ç›¸å¯¹å˜æ›´çš„分布"
-#: diff.c:5375
+#: diff.c:5417
msgid "synonym for --dirstat=cumulative"
msgstr "å’Œ --dirstat=cumulative åŒä¹‰"
-#: diff.c:5379
+#: diff.c:5421
msgid "synonym for --dirstat=files,param1,param2..."
msgstr "是 --dirstat=files,param1,param2... çš„åŒä¹‰è¯"
-#: diff.c:5383
+#: diff.c:5425
msgid "warn if changes introduce conflict markers or whitespace errors"
msgstr "如果å˜æ›´ä¸­å¼•å…¥å†²çªå®šç•Œç¬¦æˆ–空白错误,给出警告"
-#: diff.c:5386
+#: diff.c:5428
msgid "condensed summary such as creations, renames and mode changes"
msgstr "精简摘è¦ï¼Œä¾‹å¦‚创建ã€é‡å‘½å和模å¼å˜æ›´"
-#: diff.c:5389
+#: diff.c:5431
msgid "show only names of changed files"
msgstr "åªæ˜¾ç¤ºå˜æ›´æ–‡ä»¶çš„文件å"
-#: diff.c:5392
+#: diff.c:5434
msgid "show only names and status of changed files"
msgstr "åªæ˜¾ç¤ºå˜æ›´æ–‡ä»¶çš„文件å和状æ€"
-#: diff.c:5394
+#: diff.c:5436
msgid "<width>[,<name-width>[,<count>]]"
msgstr "<宽度>[,<文件å宽度>[,<次数>]]"
-#: diff.c:5395
+#: diff.c:5437
msgid "generate diffstat"
msgstr "生æˆå·®å¼‚统计(diffstat)"
-#: diff.c:5397 diff.c:5400 diff.c:5403
+#: diff.c:5439 diff.c:5442 diff.c:5445
msgid "<width>"
msgstr "<宽度>"
-#: diff.c:5398
+#: diff.c:5440
msgid "generate diffstat with a given width"
msgstr "使用给定的长度生æˆå·®å¼‚统计"
-#: diff.c:5401
+#: diff.c:5443
msgid "generate diffstat with a given name width"
msgstr "使用给定的文件å长度生æˆå·®å¼‚统计"
-#: diff.c:5404
+#: diff.c:5446
msgid "generate diffstat with a given graph width"
msgstr "使用给定的图形长度生æˆå·®å¼‚统计"
-#: diff.c:5406
+#: diff.c:5448
msgid "<count>"
msgstr "<次数>"
-#: diff.c:5407
+#: diff.c:5449
msgid "generate diffstat with limited lines"
msgstr "生æˆæœ‰é™è¡Œæ•°çš„差异统计"
-#: diff.c:5410
+#: diff.c:5452
msgid "generate compact summary in diffstat"
msgstr "生æˆå·®å¼‚统计的简æ´æ‘˜è¦"
-#: diff.c:5413
+#: diff.c:5455
msgid "output a binary diff that can be applied"
msgstr "输出一个å¯ä»¥åº”用的二进制差异"
-#: diff.c:5416
+#: diff.c:5458
msgid "show full pre- and post-image object names on the \"index\" lines"
msgstr "在 \"index\" 行显示完整的å‰åŽå¯¹è±¡å称"
-#: diff.c:5418
+#: diff.c:5460
msgid "show colored diff"
msgstr "显示带颜色的差异"
-#: diff.c:5419
+#: diff.c:5461
msgid "<kind>"
msgstr "<类型>"
-#: diff.c:5420
+#: diff.c:5462
msgid ""
"highlight whitespace errors in the 'context', 'old' or 'new' lines in the "
"diff"
msgstr "对于差异中的上下文ã€æ—§çš„和新的行,加亮显示错误的空白字符"
-#: diff.c:5423
+#: diff.c:5465
msgid ""
"do not munge pathnames and use NULs as output field terminators in --raw or "
"--numstat"
@@ -3650,311 +3744,311 @@ msgstr ""
"在 --raw 或者 --numstat 中,ä¸å¯¹è·¯å¾„字符转ç å¹¶ä½¿ç”¨ NUL 字符åšä¸ºè¾“出字段的分隔"
"符"
-#: diff.c:5426 diff.c:5429 diff.c:5432 diff.c:5541
+#: diff.c:5468 diff.c:5471 diff.c:5474 diff.c:5583
msgid "<prefix>"
msgstr "<å‰ç¼€>"
-#: diff.c:5427
+#: diff.c:5469
msgid "show the given source prefix instead of \"a/\""
msgstr "显示给定的æºå‰ç¼€å–代 \"a/\""
-#: diff.c:5430
+#: diff.c:5472
msgid "show the given destination prefix instead of \"b/\""
msgstr "显示给定的目标å‰ç¼€å–代 \"b/\""
-#: diff.c:5433
+#: diff.c:5475
msgid "prepend an additional prefix to every line of output"
msgstr "输出的æ¯ä¸€è¡Œé™„加å‰ç¼€"
-#: diff.c:5436
+#: diff.c:5478
msgid "do not show any source or destination prefix"
msgstr "ä¸æ˜¾ç¤ºä»»ä½•æºå’Œç›®æ ‡å‰ç¼€"
-#: diff.c:5439
+#: diff.c:5481
msgid "show context between diff hunks up to the specified number of lines"
msgstr "显示指定行数的差异å—间的上下文"
-#: diff.c:5443 diff.c:5448 diff.c:5453
+#: diff.c:5485 diff.c:5490 diff.c:5495
msgid "<char>"
msgstr "<字符>"
-#: diff.c:5444
+#: diff.c:5486
msgid "specify the character to indicate a new line instead of '+'"
msgstr "指定一个字符å–代 '+' æ¥è¡¨ç¤ºæ–°çš„一行"
-#: diff.c:5449
+#: diff.c:5491
msgid "specify the character to indicate an old line instead of '-'"
msgstr "指定一个字符å–代 '-' æ¥è¡¨ç¤ºæ—§çš„一行"
-#: diff.c:5454
+#: diff.c:5496
msgid "specify the character to indicate a context instead of ' '"
msgstr "指定一个字符å–代 ' ' æ¥è¡¨ç¤ºä¸€è¡Œä¸Šä¸‹æ–‡"
-#: diff.c:5457
+#: diff.c:5499
msgid "Diff rename options"
msgstr "差异é‡å‘½å选项"
-#: diff.c:5458
+#: diff.c:5500
msgid "<n>[/<m>]"
msgstr "<n>[/<m>]"
-#: diff.c:5459
+#: diff.c:5501
msgid "break complete rewrite changes into pairs of delete and create"
msgstr "将完全é‡å†™çš„å˜æ›´æ‰“破为æˆå¯¹çš„删除和创建"
-#: diff.c:5463
+#: diff.c:5505
msgid "detect renames"
msgstr "检测é‡å‘½å"
-#: diff.c:5467
+#: diff.c:5509
msgid "omit the preimage for deletes"
msgstr "çœç•¥åˆ é™¤æ“作的差异输出"
-#: diff.c:5470
+#: diff.c:5512
msgid "detect copies"
msgstr "检测拷è´"
-#: diff.c:5474
+#: diff.c:5516
msgid "use unmodified files as source to find copies"
msgstr "使用未修改的文件åšä¸ºå‘现拷è´çš„æº"
-#: diff.c:5476
+#: diff.c:5518
msgid "disable rename detection"
msgstr "ç¦ç”¨é‡å‘½å探测"
-#: diff.c:5479
+#: diff.c:5521
msgid "use empty blobs as rename source"
msgstr "使用空的数æ®å¯¹è±¡åšä¸ºé‡å‘½åçš„æº"
-#: diff.c:5481
+#: diff.c:5523
msgid "continue listing the history of a file beyond renames"
msgstr "继续列出文件é‡å‘½å以外的历å²è®°å½•"
-#: diff.c:5484
+#: diff.c:5526
msgid ""
"prevent rename/copy detection if the number of rename/copy targets exceeds "
"given limit"
msgstr "如果é‡å‘½å/æ‹·è´ç›®æ ‡è¶…过给定的é™åˆ¶ï¼Œç¦æ­¢é‡å‘½å/æ‹·è´æ£€æµ‹"
-#: diff.c:5486
+#: diff.c:5528
msgid "Diff algorithm options"
msgstr "差异算法选项"
-#: diff.c:5488
+#: diff.c:5530
msgid "produce the smallest possible diff"
msgstr "生æˆå°½å¯èƒ½å°çš„差异"
-#: diff.c:5491
+#: diff.c:5533
msgid "ignore whitespace when comparing lines"
msgstr "行比较时忽略空白字符"
-#: diff.c:5494
+#: diff.c:5536
msgid "ignore changes in amount of whitespace"
msgstr "忽略空白字符的å˜æ›´"
-#: diff.c:5497
+#: diff.c:5539
msgid "ignore changes in whitespace at EOL"
msgstr "忽略行尾的空白字符å˜æ›´"
-#: diff.c:5500
+#: diff.c:5542
msgid "ignore carrier-return at the end of line"
msgstr "忽略行尾的回车符(CR)"
-#: diff.c:5503
+#: diff.c:5545
msgid "ignore changes whose lines are all blank"
msgstr "忽略整行都是空白的å˜æ›´"
-#: diff.c:5505 diff.c:5527 diff.c:5530 diff.c:5575
+#: diff.c:5547 diff.c:5569 diff.c:5572 diff.c:5617
msgid "<regex>"
msgstr "<正则>"
-#: diff.c:5506
+#: diff.c:5548
msgid "ignore changes whose all lines match <regex>"
msgstr "忽略所有行都和正则表达å¼åŒ¹é…çš„å˜æ›´"
-#: diff.c:5509
+#: diff.c:5551
msgid "heuristic to shift diff hunk boundaries for easy reading"
msgstr "å¯å‘å¼è½¬æ¢å·®å¼‚边界以便阅读"
-#: diff.c:5512
+#: diff.c:5554
msgid "generate diff using the \"patience diff\" algorithm"
msgstr "使用 \"patience diff\" 算法生æˆå·®å¼‚"
-#: diff.c:5516
+#: diff.c:5558
msgid "generate diff using the \"histogram diff\" algorithm"
msgstr "使用 \"histogram diff\" 算法生æˆå·®å¼‚"
-#: diff.c:5518
+#: diff.c:5560
msgid "<algorithm>"
msgstr "<算法>"
-#: diff.c:5519
+#: diff.c:5561
msgid "choose a diff algorithm"
msgstr "选择一个差异算法"
-#: diff.c:5521
+#: diff.c:5563
msgid "<text>"
msgstr "<文本>"
-#: diff.c:5522
+#: diff.c:5564
msgid "generate diff using the \"anchored diff\" algorithm"
msgstr "使用 \"anchored diff\" 算法生æˆå·®å¼‚"
-#: diff.c:5524 diff.c:5533 diff.c:5536
+#: diff.c:5566 diff.c:5575 diff.c:5578
msgid "<mode>"
msgstr "<模å¼>"
-#: diff.c:5525
+#: diff.c:5567
msgid "show word diff, using <mode> to delimit changed words"
msgstr "显示å•è¯å·®å¼‚,使用 <模å¼> 分隔å˜æ›´çš„å•è¯"
-#: diff.c:5528
+#: diff.c:5570
msgid "use <regex> to decide what a word is"
msgstr "使用 <正则表达å¼> 确定何为一个è¯"
-#: diff.c:5531
+#: diff.c:5573
msgid "equivalent to --word-diff=color --word-diff-regex=<regex>"
msgstr "相当于 --word-diff=color --word-diff-regex=<正则>"
-#: diff.c:5534
+#: diff.c:5576
msgid "moved lines of code are colored differently"
msgstr "移动的代ç è¡Œç”¨ä¸åŒæ–¹å¼ç€è‰²"
-#: diff.c:5537
+#: diff.c:5579
msgid "how white spaces are ignored in --color-moved"
msgstr "在 --color-moved 下如何忽略空白字符"
-#: diff.c:5540
+#: diff.c:5582
msgid "Other diff options"
msgstr "其它差异选项"
-#: diff.c:5542
+#: diff.c:5584
msgid "when run from subdir, exclude changes outside and show relative paths"
msgstr "当从å­ç›®å½•è¿è¡Œï¼ŒæŽ’除目录之外的å˜æ›´å¹¶æ˜¾ç¤ºç›¸å¯¹è·¯å¾„"
-#: diff.c:5546
+#: diff.c:5588
msgid "treat all files as text"
msgstr "把所有文件当åšæ–‡æœ¬å¤„ç†"
-#: diff.c:5548
+#: diff.c:5590
msgid "swap two inputs, reverse the diff"
msgstr "交æ¢ä¸¤ä¸ªè¾“入,å转差异"
-#: diff.c:5550
+#: diff.c:5592
msgid "exit with 1 if there were differences, 0 otherwise"
msgstr "有差异时退出ç ä¸º 1,å¦åˆ™ä¸º 0"
-#: diff.c:5552
+#: diff.c:5594
msgid "disable all output of the program"
msgstr "ç¦ç”¨æœ¬ç¨‹åºçš„所有输出"
-#: diff.c:5554
+#: diff.c:5596
msgid "allow an external diff helper to be executed"
msgstr "å…许执行一个外置的差异助手"
-#: diff.c:5556
+#: diff.c:5598
msgid "run external text conversion filters when comparing binary files"
msgstr "当比较二进制文件时,è¿è¡Œå¤–部的文本转æ¢è¿‡æ»¤å™¨"
-#: diff.c:5558
+#: diff.c:5600
msgid "<when>"
msgstr "<何时>"
-#: diff.c:5559
+#: diff.c:5601
msgid "ignore changes to submodules in the diff generation"
msgstr "在生æˆå·®å¼‚时,忽略å­æ¨¡ç»„的更改"
-#: diff.c:5562
+#: diff.c:5604
msgid "<format>"
msgstr "<æ ¼å¼>"
-#: diff.c:5563
+#: diff.c:5605
msgid "specify how differences in submodules are shown"
msgstr "指定å­æ¨¡ç»„的差异如何显示"
-#: diff.c:5567
+#: diff.c:5609
msgid "hide 'git add -N' entries from the index"
msgstr "éšè—索引中 'git add -N' æ¡ç›®"
-#: diff.c:5570
+#: diff.c:5612
msgid "treat 'git add -N' entries as real in the index"
msgstr "将索引中 'git add -N' æ¡ç›®å½“åšçœŸå®žçš„"
-#: diff.c:5572
+#: diff.c:5614
msgid "<string>"
msgstr "<字符串>"
-#: diff.c:5573
+#: diff.c:5615
msgid ""
"look for differences that change the number of occurrences of the specified "
"string"
msgstr "查找改å˜äº†æŒ‡å®šå­—符串出现次数的差异"
-#: diff.c:5576
+#: diff.c:5618
msgid ""
"look for differences that change the number of occurrences of the specified "
"regex"
msgstr "查找改å˜æŒ‡å®šæ­£åˆ™åŒ¹é…出现次数的差异"
-#: diff.c:5579
+#: diff.c:5621
msgid "show all changes in the changeset with -S or -G"
msgstr "显示使用 -S 或 -G çš„å˜æ›´é›†çš„所有å˜æ›´"
-#: diff.c:5582
+#: diff.c:5624
msgid "treat <string> in -S as extended POSIX regular expression"
msgstr "å°† -S çš„ <string> 当åšæ‰©å±•çš„ POSIX 正则表达å¼"
-#: diff.c:5585
+#: diff.c:5627
msgid "control the order in which files appear in the output"
msgstr "控制输出中的文件显示顺åº"
-#: diff.c:5586 diff.c:5589
+#: diff.c:5628 diff.c:5631
msgid "<path>"
msgstr "<路径>"
-#: diff.c:5587
+#: diff.c:5629
msgid "show the change in the specified path first"
msgstr "先显示指定路径的å˜æ›´"
-#: diff.c:5590
+#: diff.c:5632
msgid "skip the output to the specified path"
msgstr "跳过指定路径的输出"
-#: diff.c:5592
+#: diff.c:5634
msgid "<object-id>"
msgstr "<对象 ID>"
-#: diff.c:5593
+#: diff.c:5635
msgid ""
"look for differences that change the number of occurrences of the specified "
"object"
msgstr "查找改å˜æŒ‡å®šå¯¹è±¡å‡ºçŽ°æ¬¡æ•°çš„差异"
-#: diff.c:5595
+#: diff.c:5637
msgid "[(A|C|D|M|R|T|U|X|B)...[*]]"
msgstr "[(A|C|D|M|R|T|U|X|B)...[*]]"
-#: diff.c:5596
+#: diff.c:5638
msgid "select files by diff type"
msgstr "通过差异类型选择文件"
-#: diff.c:5598
+#: diff.c:5640
msgid "<file>"
msgstr "<文件>"
-#: diff.c:5599
-msgid "Output to a specific file"
-msgstr "输出到一个指定的文件"
+#: diff.c:5641
+msgid "output to a specific file"
+msgstr "输出到指定的文件"
-#: diff.c:6257
+#: diff.c:6321
msgid "exhaustive rename detection was skipped due to too many files."
msgstr "由于文件太多,跳过详尽的é‡å‘½å检查。"
-#: diff.c:6260
+#: diff.c:6324
msgid "only found copies from modified paths due to too many files."
msgstr "由于文件太多,åªåœ¨ä¿®æ”¹çš„路径中找到了拷è´ã€‚"
-#: diff.c:6263
+#: diff.c:6327
#, c-format
msgid ""
"you may want to set your %s variable to at least %d and retry the command."
@@ -4003,20 +4097,20 @@ msgstr "åœç”¨é”¥å½¢æ¨¡å¼åŒ¹é…"
msgid "cannot use %s as an exclude file"
msgstr "ä¸èƒ½å°† %s 用作排除文件"
-#: dir.c:2418
+#: dir.c:2419
#, c-format
msgid "could not open directory '%s'"
msgstr "ä¸èƒ½æ‰“开目录 '%s'"
-#: dir.c:2720
+#: dir.c:2721
msgid "failed to get kernel name and information"
msgstr "无法获得内核å称和信æ¯"
-#: dir.c:2844
+#: dir.c:2846
msgid "untracked cache is disabled on this system or location"
msgstr "缓存未跟踪文件在本系统或ä½ç½®ä¸­è¢«ç¦ç”¨"
-#: dir.c:3112
+#: dir.c:3119
msgid ""
"No directory name could be guessed.\n"
"Please specify a directory on the command line"
@@ -4024,17 +4118,17 @@ msgstr ""
"无法猜到目录å。\n"
"请在命令行指定一个目录"
-#: dir.c:3800
+#: dir.c:3807
#, c-format
msgid "index file corrupt in repo %s"
msgstr "仓库 %s 中的索引文件æŸå"
-#: dir.c:3847 dir.c:3852
+#: dir.c:3854 dir.c:3859
#, c-format
msgid "could not create directories for %s"
msgstr "ä¸èƒ½ä¸º %s 创建目录"
-#: dir.c:3881
+#: dir.c:3888
#, c-format
msgid "could not migrate git directory from '%s' to '%s'"
msgstr "ä¸èƒ½ä»Ž '%s' è¿ç§» git 目录到 '%s'"
@@ -4053,7 +4147,7 @@ msgstr "过滤内容"
msgid "could not stat file '%s'"
msgstr "ä¸èƒ½å¯¹æ–‡ä»¶ '%s' 调用 stat"
-#: environment.c:145
+#: environment.c:147
#, c-format
msgid "bad git namespace path \"%s\""
msgstr "错误的 git å字空间路径 \"%s\""
@@ -4084,253 +4178,280 @@ msgstr "git fetch-pack:应为 ACK/NAK,å´å¾—到 '%s'"
msgid "unable to write to remote"
msgstr "无法写到远程"
-#: fetch-pack.c:395 fetch-pack.c:1439
+#: fetch-pack.c:397 fetch-pack.c:1460
#, c-format
msgid "invalid shallow line: %s"
msgstr "无效的 shallow ä¿¡æ¯ï¼š%s"
-#: fetch-pack.c:401 fetch-pack.c:1445
+#: fetch-pack.c:403 fetch-pack.c:1466
#, c-format
msgid "invalid unshallow line: %s"
msgstr "无效的 unshallow ä¿¡æ¯ï¼š%s"
-#: fetch-pack.c:403 fetch-pack.c:1447
+#: fetch-pack.c:405 fetch-pack.c:1468
#, c-format
msgid "object not found: %s"
msgstr "对象未找到:%s"
-#: fetch-pack.c:406 fetch-pack.c:1450
+#: fetch-pack.c:408 fetch-pack.c:1471
#, c-format
msgid "error in object: %s"
msgstr "对象中出错:%s"
-#: fetch-pack.c:408 fetch-pack.c:1452
+#: fetch-pack.c:410 fetch-pack.c:1473
#, c-format
msgid "no shallow found: %s"
msgstr "未å‘现 shallow:%s"
-#: fetch-pack.c:411 fetch-pack.c:1456
+#: fetch-pack.c:413 fetch-pack.c:1477
#, c-format
msgid "expected shallow/unshallow, got %s"
msgstr "应为 shallow/unshallow,å´å¾—到 %s"
-#: fetch-pack.c:451
+#: fetch-pack.c:453
#, c-format
msgid "got %s %d %s"
msgstr "得到 %s %d %s"
-#: fetch-pack.c:468
+#: fetch-pack.c:470
#, c-format
msgid "invalid commit %s"
msgstr "无效æ交 %s"
-#: fetch-pack.c:499
+#: fetch-pack.c:501
msgid "giving up"
msgstr "放弃"
-#: fetch-pack.c:512 progress.c:339
+#: fetch-pack.c:514 progress.h:25
msgid "done"
msgstr "完æˆ"
-#: fetch-pack.c:524
+#: fetch-pack.c:526
#, c-format
msgid "got %s (%d) %s"
msgstr "得到 %s (%d) %s"
-#: fetch-pack.c:560
+#: fetch-pack.c:562
#, c-format
msgid "Marking %s as complete"
msgstr "标记 %s 为完æˆ"
-#: fetch-pack.c:775
+#: fetch-pack.c:784
#, c-format
msgid "already have %s (%s)"
msgstr "å·²ç»æœ‰ %s(%s)"
-#: fetch-pack.c:861
+#: fetch-pack.c:870
msgid "fetch-pack: unable to fork off sideband demultiplexer"
msgstr "fetch-pack:无法派生 sideband 多路输出"
-#: fetch-pack.c:869
+#: fetch-pack.c:878
msgid "protocol error: bad pack header"
msgstr "å议错误:å的包头"
-#: fetch-pack.c:965
+#: fetch-pack.c:974
#, c-format
msgid "fetch-pack: unable to fork off %s"
msgstr "fetch-pack:无法派生进程 %s"
-#: fetch-pack.c:971
+#: fetch-pack.c:980
msgid "fetch-pack: invalid index-pack output"
msgstr "fetch-pack:无效的 index-pack 输出"
-#: fetch-pack.c:988
+#: fetch-pack.c:997
#, c-format
msgid "%s failed"
msgstr "%s 失败"
-#: fetch-pack.c:990
+#: fetch-pack.c:999
msgid "error in sideband demultiplexer"
msgstr "sideband 多路输出出错"
-#: fetch-pack.c:1035
+#: fetch-pack.c:1048
#, c-format
msgid "Server version is %.*s"
msgstr "æœåŠ¡å™¨ç‰ˆæœ¬ %.*s"
-#: fetch-pack.c:1043 fetch-pack.c:1049 fetch-pack.c:1052 fetch-pack.c:1058
-#: fetch-pack.c:1062 fetch-pack.c:1066 fetch-pack.c:1070 fetch-pack.c:1074
-#: fetch-pack.c:1078 fetch-pack.c:1082 fetch-pack.c:1086 fetch-pack.c:1090
-#: fetch-pack.c:1096 fetch-pack.c:1102 fetch-pack.c:1107 fetch-pack.c:1112
+#: fetch-pack.c:1056 fetch-pack.c:1062 fetch-pack.c:1065 fetch-pack.c:1071
+#: fetch-pack.c:1075 fetch-pack.c:1079 fetch-pack.c:1083 fetch-pack.c:1087
+#: fetch-pack.c:1091 fetch-pack.c:1095 fetch-pack.c:1099 fetch-pack.c:1103
+#: fetch-pack.c:1109 fetch-pack.c:1115 fetch-pack.c:1120 fetch-pack.c:1125
#, c-format
msgid "Server supports %s"
msgstr "æœåŠ¡å™¨æ”¯æŒ %s"
-#: fetch-pack.c:1045
+#: fetch-pack.c:1058
msgid "Server does not support shallow clients"
msgstr "æœåŠ¡å™¨ä¸æ”¯æŒæµ…客户端"
-#: fetch-pack.c:1105
+#: fetch-pack.c:1118
msgid "Server does not support --shallow-since"
msgstr "æœåŠ¡å™¨ä¸æ”¯æŒ --shallow-since"
-#: fetch-pack.c:1110
+#: fetch-pack.c:1123
msgid "Server does not support --shallow-exclude"
msgstr "æœåŠ¡å™¨ä¸æ”¯æŒ --shallow-exclude"
-#: fetch-pack.c:1114
+#: fetch-pack.c:1127
msgid "Server does not support --deepen"
msgstr "æœåŠ¡å™¨ä¸æ”¯æŒ --deepen"
-#: fetch-pack.c:1116
+#: fetch-pack.c:1129
msgid "Server does not support this repository's object format"
msgstr "æœåŠ¡å™¨ä¸æ”¯æŒè¿™ä¸ªä»“库的对象格å¼"
-#: fetch-pack.c:1129
+#: fetch-pack.c:1142
msgid "no common commits"
msgstr "没有共åŒçš„æ交"
-#: fetch-pack.c:1138 fetch-pack.c:1485 builtin/clone.c:1130
+#: fetch-pack.c:1151 fetch-pack.c:1506 builtin/clone.c:1166
msgid "source repository is shallow, reject to clone."
msgstr "æºä»“库是浅克隆,拒ç»å…‹éš†ã€‚"
-#: fetch-pack.c:1144 fetch-pack.c:1681
+#: fetch-pack.c:1157 fetch-pack.c:1705
msgid "git fetch-pack: fetch failed."
msgstr "git fetch-pack:获å–失败。"
-#: fetch-pack.c:1258
+#: fetch-pack.c:1271
#, c-format
msgid "mismatched algorithms: client %s; server %s"
msgstr "ä¸åŒ¹é…的算法:客户端 %s,æœåŠ¡ç«¯ %s"
-#: fetch-pack.c:1262
+#: fetch-pack.c:1275
#, c-format
msgid "the server does not support algorithm '%s'"
msgstr "æœåŠ¡å™¨ä¸æ”¯æŒç®—法 '%s'"
-#: fetch-pack.c:1295
+#: fetch-pack.c:1308
msgid "Server does not support shallow requests"
msgstr "æœåŠ¡å™¨ä¸æ”¯æŒæµ…克隆请求"
-#: fetch-pack.c:1302
+#: fetch-pack.c:1315
msgid "Server supports filter"
msgstr "æœåŠ¡å™¨æ”¯æŒ filter"
-#: fetch-pack.c:1345 fetch-pack.c:2063
+#: fetch-pack.c:1358 fetch-pack.c:2087
msgid "unable to write request to remote"
msgstr "无法将请求写到远程"
-#: fetch-pack.c:1363
+#: fetch-pack.c:1376
#, c-format
msgid "error reading section header '%s'"
msgstr "读å–节标题 '%s' 出错"
-#: fetch-pack.c:1369
+#: fetch-pack.c:1382
#, c-format
msgid "expected '%s', received '%s'"
msgstr "预期 '%s',得到 '%s'"
-#: fetch-pack.c:1403
+#: fetch-pack.c:1416
#, c-format
msgid "unexpected acknowledgment line: '%s'"
msgstr "æ„外的确认行:'%s'"
-#: fetch-pack.c:1408
+#: fetch-pack.c:1421
#, c-format
msgid "error processing acks: %d"
msgstr "å¤„ç† ack 出错:%d"
-#: fetch-pack.c:1418
-msgid "expected packfile to be sent after 'ready'"
-msgstr "预期在 'ready' 之åŽå‘é€ packfile"
+#. TRANSLATORS: The parameter will be 'ready', a protocol
+#. keyword.
+#.
+#: fetch-pack.c:1435
+#, c-format
+msgid "expected packfile to be sent after '%s'"
+msgstr "预期在 '%s' 之åŽå‘é€ packfile"
-#: fetch-pack.c:1420
-msgid "expected no other sections to be sent after no 'ready'"
-msgstr "在没有 'ready' ä¸åº”该å‘é€å…¶å®ƒå°èŠ‚"
+#. TRANSLATORS: The parameter will be 'ready', a protocol
+#. keyword.
+#.
+#: fetch-pack.c:1441
+#, c-format
+msgid "expected no other sections to be sent after no '%s'"
+msgstr "在没有 '%s' åŽä¸åº”该å‘é€å…¶å®ƒå°èŠ‚"
-#: fetch-pack.c:1461
+#: fetch-pack.c:1482
#, c-format
msgid "error processing shallow info: %d"
msgstr "处ç†æµ…克隆信æ¯å‡ºé”™ï¼š%d"
-#: fetch-pack.c:1510
+#: fetch-pack.c:1531
#, c-format
msgid "expected wanted-ref, got '%s'"
msgstr "预期 wanted-ref,得到 '%s'"
-#: fetch-pack.c:1515
+#: fetch-pack.c:1536
#, c-format
msgid "unexpected wanted-ref: '%s'"
msgstr "æ„外的 wanted-ref:'%s'"
-#: fetch-pack.c:1520
+#: fetch-pack.c:1541
#, c-format
msgid "error processing wanted refs: %d"
msgstr "处ç†è¦èŽ·å–的引用出错:%d"
-#: fetch-pack.c:1550
+#: fetch-pack.c:1571
msgid "git fetch-pack: expected response end packet"
msgstr "git fetch-pack:预期å“应结æŸåŒ…"
-#: fetch-pack.c:1959
+#: fetch-pack.c:1983
msgid "no matching remote head"
msgstr "没有匹é…的远程分支"
-#: fetch-pack.c:1982 builtin/clone.c:581
+#: fetch-pack.c:2006 builtin/clone.c:587
msgid "remote did not send all necessary objects"
msgstr "远程没有å‘é€æ‰€æœ‰å¿…需的对象"
-#: fetch-pack.c:2085
+#: fetch-pack.c:2109
msgid "unexpected 'ready' from remote"
msgstr "æ¥è‡ªè¿œç¨‹çš„æ„外的 'ready'"
-#: fetch-pack.c:2108
+#: fetch-pack.c:2132
#, c-format
msgid "no such remote ref %s"
msgstr "没有这样的远程引用 %s"
-#: fetch-pack.c:2111
+#: fetch-pack.c:2135
#, c-format
msgid "Server does not allow request for unadvertised object %s"
msgstr "æœåŠ¡å™¨ä¸å…许请求未公开的对象 %s"
-#: gpg-interface.c:329 gpg-interface.c:457 gpg-interface.c:974
-#: gpg-interface.c:990
+#: fsmonitor-ipc.c:119
+#, c-format
+msgid "fsmonitor_ipc__send_query: invalid path '%s'"
+msgstr "fsmonitor_ipc__send_query: 无效路径 '%s'"
+
+#: fsmonitor-ipc.c:125
+#, c-format
+msgid "fsmonitor_ipc__send_query: unspecified error on '%s'"
+msgstr "fsmonitor_ipc__send_query: 未知错误于 '%s'"
+
+#: fsmonitor-ipc.c:155
+msgid "fsmonitor--daemon is not running"
+msgstr "fsmonitor--daemon 没有è¿è¡Œ"
+
+#: fsmonitor-ipc.c:164
+#, c-format
+msgid "could not send '%s' command to fsmonitor--daemon"
+msgstr "无法å‘é€ '%s' 命令至 fsmonitor--daemon"
+
+#: gpg-interface.c:329 gpg-interface.c:456 gpg-interface.c:995
+#: gpg-interface.c:1011
msgid "could not create temporary file"
msgstr "ä¸èƒ½åˆ›å»ºä¸´æ—¶æ–‡ä»¶"
-#: gpg-interface.c:332 gpg-interface.c:460
+#: gpg-interface.c:332 gpg-interface.c:459
#, c-format
msgid "failed writing detached signature to '%s'"
msgstr "无法将分离å¼ç­¾å写入 '%s'"
-#: gpg-interface.c:451
+#: gpg-interface.c:450
msgid ""
"gpg.ssh.allowedSignersFile needs to be configured and exist for ssh "
"signature verification"
msgstr "ssh ç­¾å验è¯éœ€è¦ gpg.ssh.allowedSignersFile 被设置且存在"
-#: gpg-interface.c:480
+#: gpg-interface.c:479
msgid ""
"ssh-keygen -Y find-principals/verify is needed for ssh signature "
"verification (available in openssh version 8.2p1+)"
@@ -4338,61 +4459,61 @@ msgstr ""
"ssh ç­¾å验è¯éœ€è¦ ssh-keygen -Y find-principals/verify \n"
"(openssh 8.2p1+ 版本å¯ç”¨ï¼‰"
-#: gpg-interface.c:536
+#: gpg-interface.c:550
#, c-format
msgid "ssh signing revocation file configured but not found: %s"
msgstr "设置了 ssh ç­¾ååŠé”€æ–‡ä»¶ä½†æ— æ³•æ‰¾åˆ°ï¼š%s"
-#: gpg-interface.c:624
+#: gpg-interface.c:638
#, c-format
msgid "bad/incompatible signature '%s'"
msgstr "åçš„/ä¸å…¼å®¹çš„ç­¾å '%s‘"
-#: gpg-interface.c:801 gpg-interface.c:806
+#: gpg-interface.c:815 gpg-interface.c:820
#, c-format
msgid "failed to get the ssh fingerprint for key '%s'"
msgstr "无法得到密钥 '%s' 的 ssh 指纹"
-#: gpg-interface.c:829
+#: gpg-interface.c:843
msgid ""
"either user.signingkey or gpg.ssh.defaultKeyCommand needs to be configured"
msgstr "需è¦é…ç½® user.signingkey 或者 gpg.ssh.defaultKeyCommand 其中之一"
-#: gpg-interface.c:851
+#: gpg-interface.c:865
#, c-format
msgid "gpg.ssh.defaultKeyCommand succeeded but returned no keys: %s %s"
msgstr "gpg.ssh.defaultKeyCommand æˆåŠŸï¼Œä½†æ²¡æœ‰è¿”回密钥:%s %s"
-#: gpg-interface.c:857
+#: gpg-interface.c:871
#, c-format
msgid "gpg.ssh.defaultKeyCommand failed: %s %s"
msgstr "gpg.ssh.defaultKeyCommand 失败:%s %s"
-#: gpg-interface.c:945
+#: gpg-interface.c:966
msgid "gpg failed to sign the data"
msgstr "gpg 无法为数æ®ç­¾å"
-#: gpg-interface.c:967
+#: gpg-interface.c:988
msgid "user.signingkey needs to be set for ssh signing"
msgstr "ssh ç­¾å需è¦è®¾ç½® user.signingkey"
-#: gpg-interface.c:978
+#: gpg-interface.c:999
#, c-format
msgid "failed writing ssh signing key to '%s'"
msgstr "无法将 ssh ç­¾å密钥写入 '%s'"
-#: gpg-interface.c:996
+#: gpg-interface.c:1017
#, c-format
msgid "failed writing ssh signing key buffer to '%s'"
msgstr "无法将 ssh ç­¾å密钥缓冲区写入 '%s'"
-#: gpg-interface.c:1014
+#: gpg-interface.c:1035
msgid ""
"ssh-keygen -Y sign is needed for ssh signing (available in openssh version "
"8.2p1+)"
msgstr "ssh ç­¾åéœ€è¦ ssh-keygen -Y sign (openssh 8.2p1+ 版本å¯ç”¨ï¼‰"
-#: gpg-interface.c:1026
+#: gpg-interface.c:1047
#, c-format
msgid "failed reading ssh signing data buffer from '%s'"
msgstr "无法从 '%s' 读入 ssh ç­¾åæ•°æ®"
@@ -4402,7 +4523,7 @@ msgstr "无法从 '%s' 读入 ssh ç­¾åæ•°æ®"
msgid "ignored invalid color '%.*s' in log.graphColors"
msgstr "忽略 log.graphColors 中无效的颜色 '%.*s'"
-#: grep.c:531
+#: grep.c:446
msgid ""
"given pattern contains NULL byte (via -f <file>). This is only supported "
"with -P under PCRE v2"
@@ -4410,109 +4531,109 @@ msgstr ""
"给定的模å¼åŒ…å« NULL 字符(通过 -f <文件> å‚数)。åªæœ‰ PCRE v2 下的 -P 支æŒæ­¤"
"功能"
-#: grep.c:1942
+#: grep.c:1859
#, c-format
msgid "'%s': unable to read %s"
msgstr "'%s'ï¼šæ— æ³•è¯»å– %s"
-#: grep.c:1959 setup.c:177 builtin/clone.c:302 builtin/diff.c:90
+#: grep.c:1876 setup.c:178 builtin/clone.c:308 builtin/diff.c:90
#: builtin/rm.c:136
#, c-format
msgid "failed to stat '%s'"
msgstr "无法对 '%s' 调用 stat"
-#: grep.c:1970
+#: grep.c:1887
#, c-format
msgid "'%s': short read"
msgstr "'%s':读å–ä¸å®Œæ•´"
-#: help.c:24
+#: help.c:25
msgid "start a working area (see also: git help tutorial)"
msgstr "开始一个工作区(å‚è§ï¼šgit help tutorial)"
-#: help.c:25
+#: help.c:26
msgid "work on the current change (see also: git help everyday)"
msgstr "在当å‰å˜æ›´ä¸Šå·¥ä½œï¼ˆå‚è§ï¼šgit help everyday)"
-#: help.c:26
+#: help.c:27
msgid "examine the history and state (see also: git help revisions)"
msgstr "检查历å²å’ŒçŠ¶æ€ï¼ˆå‚è§ï¼šgit help revisions)"
-#: help.c:27
+#: help.c:28
msgid "grow, mark and tweak your common history"
msgstr "扩展ã€æ ‡è®°å’Œè°ƒæ ¡æ‚¨çš„历å²è®°å½•"
-#: help.c:28
+#: help.c:29
msgid "collaborate (see also: git help workflows)"
msgstr "ååŒï¼ˆå‚è§ï¼šgit help workflows)"
-#: help.c:32
+#: help.c:33
msgid "Main Porcelain Commands"
msgstr "主è¦çš„上层命令"
-#: help.c:33
+#: help.c:34
msgid "Ancillary Commands / Manipulators"
msgstr "辅助命令/æ“作者"
-#: help.c:34
+#: help.c:35
msgid "Ancillary Commands / Interrogators"
msgstr "辅助命令/询问者"
-#: help.c:35
+#: help.c:36
msgid "Interacting with Others"
msgstr "与其它系统交互"
-#: help.c:36
+#: help.c:37
msgid "Low-level Commands / Manipulators"
msgstr "低级命令/æ“作者"
-#: help.c:37
+#: help.c:38
msgid "Low-level Commands / Interrogators"
msgstr "低级命令/询问者"
-#: help.c:38
+#: help.c:39
msgid "Low-level Commands / Syncing Repositories"
msgstr "低级命令/åŒæ­¥ä»“库"
-#: help.c:39
+#: help.c:40
msgid "Low-level Commands / Internal Helpers"
msgstr "低级命令/内部助手"
-#: help.c:313
+#: help.c:316
#, c-format
msgid "available git commands in '%s'"
msgstr "在 '%s' 下å¯ç”¨çš„ git 命令"
-#: help.c:320
+#: help.c:323
msgid "git commands available from elsewhere on your $PATH"
msgstr "在 $PATH 路径中的其他地方å¯ç”¨çš„ git 命令"
-#: help.c:329
+#: help.c:332
msgid "These are common Git commands used in various situations:"
msgstr "这些是å„ç§åœºåˆå¸¸è§çš„ Git 命令:"
-#: help.c:378 git.c:100
+#: help.c:382 git.c:100
#, c-format
msgid "unsupported command listing type '%s'"
msgstr "ä¸æ”¯æŒçš„命令列表类型 '%s'"
-#: help.c:418
+#: help.c:422
msgid "The Git concept guides are:"
msgstr "Git 概念å‘导有:"
-#: help.c:442
-msgid "See 'git help <command>' to read about a specific subcommand"
-msgstr "执行 'git help <command>' æ¥æŸ¥çœ‹ç‰¹å®šå­å‘½ä»¤"
-
-#: help.c:447
+#: help.c:446
msgid "External commands"
msgstr "外部命令"
-#: help.c:462
+#: help.c:468
msgid "Command aliases"
msgstr "命令别å"
-#: help.c:543
+#: help.c:486
+msgid "See 'git help <command>' to read about a specific subcommand"
+msgstr "执行 'git help <command>' æ¥äº†è§£ç‰¹å®šå­å‘½ä»¤"
+
+#: help.c:563
#, c-format
msgid ""
"'%s' appears to be a git command, but we were not\n"
@@ -4521,36 +4642,36 @@ msgstr ""
"'%s' åƒæ˜¯ä¸€ä¸ª git 命令,但å´æ— æ³•è¿è¡Œã€‚\n"
"å¯èƒ½æ˜¯ git-%s å—æŸï¼Ÿ"
-#: help.c:565 help.c:662
+#: help.c:585 help.c:682
#, c-format
msgid "git: '%s' is not a git command. See 'git --help'."
msgstr "git:'%s' ä¸æ˜¯ä¸€ä¸ª git 命令。å‚è§ 'git --help'。"
-#: help.c:613
+#: help.c:633
msgid "Uh oh. Your system reports no Git commands at all."
msgstr "唉呀,您的系统中未å‘现 Git 命令。"
-#: help.c:635
+#: help.c:655
#, c-format
msgid "WARNING: You called a Git command named '%s', which does not exist."
msgstr "警告:您è¿è¡Œäº†ä¸€ä¸ªå¹¶ä¸å­˜åœ¨çš„ Git 命令 '%s'。"
-#: help.c:640
+#: help.c:660
#, c-format
msgid "Continuing under the assumption that you meant '%s'."
msgstr "å‡å®šæ‚¨æƒ³è¦çš„是 '%s' 并继续。"
-#: help.c:646
+#: help.c:666
#, c-format
msgid "Run '%s' instead [y/N]? "
msgstr "å–而代之è¿è¡Œ '%s' [y/N]?"
-#: help.c:654
+#: help.c:674
#, c-format
msgid "Continuing in %0.1f seconds, assuming that you meant '%s'."
msgstr "å‡å®šæ‚¨æƒ³è¦çš„是 '%2$s',在 %1$0.1f 秒钟åŽç»§ç»­ã€‚"
-#: help.c:666
+#: help.c:686
msgid ""
"\n"
"The most similar command is"
@@ -4564,16 +4685,16 @@ msgstr[1] ""
"\n"
"最相似的命令是"
-#: help.c:706
+#: help.c:729
msgid "git version [<options>]"
msgstr "git version [<选项>]"
-#: help.c:761
+#: help.c:784
#, c-format
msgid "%s: %s - %s"
msgstr "%s:%s - %s"
-#: help.c:765
+#: help.c:788
msgid ""
"\n"
"Did you mean this?"
@@ -4587,7 +4708,7 @@ msgstr[1] ""
"\n"
"您指的是这其中的æŸä¸€ä¸ªä¹ˆï¼Ÿ"
-#: hook.c:27
+#: hook.c:28
#, c-format
msgid ""
"The '%s' hook was ignored because it's not set as executable.\n"
@@ -4596,15 +4717,20 @@ msgstr ""
"å› ä¸ºæ²¡æœ‰å°†é’©å­ '%s' 设置为å¯æ‰§è¡Œï¼Œé’©å­è¢«å¿½ç•¥ã€‚您å¯ä»¥é€šè¿‡\n"
"é…ç½® `git config advice.ignoredHook false` æ¥å…³é—­è¿™æ¡è­¦å‘Šã€‚"
-#: ident.c:353
+#: hook.c:87
+#, c-format
+msgid "Couldn't start hook '%s'\n"
+msgstr "ä¸èƒ½å¯åŠ¨é’©å­ '%s'\n"
+
+#: ident.c:354
msgid "Author identity unknown\n"
msgstr "作者身份未知\n"
-#: ident.c:356
+#: ident.c:357
msgid "Committer identity unknown\n"
msgstr "æ交者身份未知\n"
-#: ident.c:362
+#: ident.c:363
msgid ""
"\n"
"*** Please tell me who you are.\n"
@@ -4629,71 +4755,71 @@ msgstr ""
"æ¥è®¾ç½®æ‚¨è´¦å·çš„缺çœèº«ä»½æ ‡è¯†ã€‚\n"
"如果仅在本仓库设置身份标识,则çœç•¥ --global å‚数。\n"
-#: ident.c:397
+#: ident.c:398
msgid "no email was given and auto-detection is disabled"
msgstr "未æ供邮件地å€ä¸”自动探测被ç¦ç”¨"
-#: ident.c:402
+#: ident.c:403
#, c-format
msgid "unable to auto-detect email address (got '%s')"
msgstr "无法自动探测邮件地å€ï¼ˆå¾—到 '%s')"
-#: ident.c:419
+#: ident.c:420
msgid "no name was given and auto-detection is disabled"
msgstr "未æ供姓å且自动探测被ç¦ç”¨"
-#: ident.c:425
+#: ident.c:426
#, c-format
msgid "unable to auto-detect name (got '%s')"
msgstr "无法自动探测姓å(得到 '%s')"
-#: ident.c:433
+#: ident.c:434
#, c-format
msgid "empty ident name (for <%s>) not allowed"
msgstr "ä¸å…许空的姓å(对于 <%s>)"
-#: ident.c:439
+#: ident.c:440
#, c-format
msgid "name consists only of disallowed characters: %s"
msgstr "姓å中仅包å«ç¦ç”¨å­—符:%s"
-#: ident.c:454 builtin/commit.c:648
+#: ident.c:455 builtin/commit.c:649
#, c-format
msgid "invalid date format: %s"
msgstr "无效的日期格å¼ï¼š%s"
-#: list-objects-filter-options.c:83
+#: list-objects-filter-options.c:68
msgid "expected 'tree:<depth>'"
msgstr "期望 'tree:<深度>'"
-#: list-objects-filter-options.c:98
+#: list-objects-filter-options.c:83
msgid "sparse:path filters support has been dropped"
msgstr "sparse:path 过滤器支æŒå·²è¢«åˆ é™¤"
-#: list-objects-filter-options.c:105
+#: list-objects-filter-options.c:90
#, c-format
msgid "'%s' for 'object:type=<type>' is not a valid object type"
msgstr "'object:type=<type>' 的值 '%s' ä¸æ˜¯æœ‰æ•ˆçš„对象类型"
-#: list-objects-filter-options.c:124
+#: list-objects-filter-options.c:109
#, c-format
msgid "invalid filter-spec '%s'"
msgstr "æ— æ•ˆçš„è¿‡æ»¤å™¨è¡¨è¾¾å¼ '%s'"
-#: list-objects-filter-options.c:140
+#: list-objects-filter-options.c:125
#, c-format
msgid "must escape char in sub-filter-spec: '%c'"
msgstr "必须对 sub-filter-spec 中的字符进行转义:'%c'"
-#: list-objects-filter-options.c:182
+#: list-objects-filter-options.c:167
msgid "expected something after combine:"
msgstr "期望在组åˆåŽæœ‰ä¸€äº›ä¸œè¥¿ï¼š"
-#: list-objects-filter-options.c:264
+#: list-objects-filter-options.c:249
msgid "multiple filter-specs cannot be combined"
msgstr "ä¸èƒ½æ··ç”¨å¤šç§è¿‡æ»¤è§„æ ¼"
-#: list-objects-filter-options.c:376
+#: list-objects-filter-options.c:365
msgid "unable to upgrade repository format to support partial clone"
msgstr "无法å‡çº§ä»“库格å¼ä»¥æ”¯æŒéƒ¨åˆ†å…‹éš†"
@@ -4707,17 +4833,17 @@ msgstr "ä¸èƒ½è®¿é—® '%s' 中的稀ç–æ•°æ®å¯¹è±¡"
msgid "unable to parse sparse filter data in %s"
msgstr "æ— æ³•è§£æž %s 中的稀ç–过滤器数æ®"
-#: list-objects.c:127
+#: list-objects.c:144
#, c-format
msgid "entry '%s' in tree %s has tree mode, but is not a tree"
msgstr "æ ‘ %2$s 中的æ¡ç›® '%1$s' 具有树的模å¼ï¼Œä½†ä¸æ˜¯ä¸€ä¸ªæ ‘对象"
-#: list-objects.c:140
+#: list-objects.c:157
#, c-format
msgid "entry '%s' in tree %s has blob mode, but is not a blob"
msgstr "æ ‘ %2$s 中的æ¡ç›® '%1$s' 具有数æ®å¯¹è±¡çš„模å¼ï¼Œä½†ä¸æ˜¯ä¸€ä¸ªæ•°æ®å¯¹è±¡"
-#: list-objects.c:398
+#: list-objects.c:415
#, c-format
msgid "unable to load root tree for commit %s"
msgstr "无法为æ交 %s 加载根树"
@@ -4745,17 +4871,12 @@ msgstr ""
msgid "Unable to create '%s.lock': %s"
msgstr "ä¸èƒ½åˆ›å»º '%s.lock':%s"
-#: ls-refs.c:37
-#, c-format
-msgid "invalid value '%s' for lsrefs.unborn"
-msgstr "lsrefs.unborn çš„å–值 '%s' 无效"
-
-#: ls-refs.c:174
+#: ls-refs.c:175
#, c-format
msgid "unexpected line: '%s'"
msgstr "æ„外的行:'%s'"
-#: ls-refs.c:178
+#: ls-refs.c:179
msgid "expected flush after ls-refs arguments"
msgstr "在 ls-refs å‚æ•°åŽåº”该有一个 flush 包"
@@ -4763,37 +4884,37 @@ msgstr "在 ls-refs å‚æ•°åŽåº”该有一个 flush 包"
msgid "quoted CRLF detected"
msgstr "检测到被引用的 CRLF"
-#: mailinfo.c:1254 builtin/am.c:184 builtin/mailinfo.c:46
+#: mailinfo.c:1254 builtin/am.c:185 builtin/mailinfo.c:46
#, c-format
msgid "bad action '%s' for '%s'"
msgstr "'%2$s' 的错误动作 '%1$s'"
-#: merge-ort.c:1584 merge-recursive.c:1211
+#: merge-ort.c:1630 merge-recursive.c:1214
#, c-format
msgid "Failed to merge submodule %s (not checked out)"
msgstr "无法åˆå¹¶å­æ¨¡ç»„ %s (没有检出)"
-#: merge-ort.c:1593 merge-recursive.c:1218
+#: merge-ort.c:1639 merge-recursive.c:1221
#, c-format
msgid "Failed to merge submodule %s (commits not present)"
msgstr "无法åˆå¹¶å­æ¨¡ç»„ %s(æ交ä¸å­˜åœ¨ï¼‰"
-#: merge-ort.c:1602 merge-recursive.c:1225
+#: merge-ort.c:1648 merge-recursive.c:1228
#, c-format
msgid "Failed to merge submodule %s (commits don't follow merge-base)"
msgstr "无法åˆå¹¶å­æ¨¡ç»„ %s (æ交未跟éšåˆå¹¶åŸºçº¿ï¼‰"
-#: merge-ort.c:1612 merge-ort.c:1620
+#: merge-ort.c:1658 merge-ort.c:1666
#, c-format
msgid "Note: Fast-forwarding submodule %s to %s"
msgstr "注æ„:快进å­æ¨¡ç»„ %s 到 %s"
-#: merge-ort.c:1642
+#: merge-ort.c:1688
#, c-format
msgid "Failed to merge submodule %s"
msgstr "无法åˆå¹¶å­æ¨¡ç»„ %s"
-#: merge-ort.c:1649
+#: merge-ort.c:1695
#, c-format
msgid ""
"Failed to merge submodule %s, but a possible merge resolution exists:\n"
@@ -4802,7 +4923,7 @@ msgstr ""
"无法åˆå¹¶å­æ¨¡ç»„ %s,但是存在一个å¯èƒ½çš„åˆå¹¶æ–¹æ¡ˆï¼š\n"
"%s\n"
-#: merge-ort.c:1653 merge-recursive.c:1281
+#: merge-ort.c:1699 merge-recursive.c:1284
#, c-format
msgid ""
"If this is correct simply add it to the index for example\n"
@@ -4818,7 +4939,7 @@ msgstr ""
"\n"
"以接å—此建议。\n"
-#: merge-ort.c:1666
+#: merge-ort.c:1712
#, c-format
msgid ""
"Failed to merge submodule %s, but multiple possible merges exist:\n"
@@ -4827,21 +4948,21 @@ msgstr ""
"无法åˆå¹¶å­æ¨¡ç»„ %s,但是存在多个å¯èƒ½çš„åˆå¹¶ï¼š\n"
"%s"
-#: merge-ort.c:1887 merge-recursive.c:1372
+#: merge-ort.c:1937 merge-recursive.c:1375
msgid "Failed to execute internal merge"
msgstr "无法执行内部åˆå¹¶"
-#: merge-ort.c:1892 merge-recursive.c:1377
+#: merge-ort.c:1942 merge-recursive.c:1380
#, c-format
msgid "Unable to add %s to database"
msgstr "ä¸èƒ½æ·»åŠ  %s 至对象库"
-#: merge-ort.c:1899 merge-recursive.c:1410
+#: merge-ort.c:1949 merge-recursive.c:1413
#, c-format
msgid "Auto-merging %s"
msgstr "自动åˆå¹¶ %s"
-#: merge-ort.c:2038 merge-recursive.c:2132
+#: merge-ort.c:2088 merge-recursive.c:2135
#, c-format
msgid ""
"CONFLICT (implicit dir rename): Existing file/dir at %s in the way of "
@@ -4850,7 +4971,7 @@ msgstr ""
"冲çªï¼ˆéšå¼ç›®å½•é‡å‘½å):处于éšå¼ç›®å½•é‡å‘½å的现存文件/目录 %s,将以下路径放"
"在:%s。"
-#: merge-ort.c:2048 merge-recursive.c:2142
+#: merge-ort.c:2098 merge-recursive.c:2145
#, c-format
msgid ""
"CONFLICT (implicit dir rename): Cannot map more than one path to %s; "
@@ -4859,7 +4980,7 @@ msgstr ""
"冲çªï¼ˆéšå¼ç›®å½•é‡å‘½å):无法映射一个以上路径到 %s,éšå¼ç›®å½•é‡å‘½åå°è¯•å°†è¿™äº›è·¯"
"径放置于此:%s"
-#: merge-ort.c:2106
+#: merge-ort.c:2156
#, c-format
msgid ""
"CONFLICT (directory rename split): Unclear where to rename %s to; it was "
@@ -4869,14 +4990,14 @@ msgstr ""
"冲çªï¼ˆåˆ†å‰²çš„目录é‡å‘½å):ä¸æ¸…楚é‡å‘½å %s 到哪里,因为它被é‡å‘½å到多个其他目"
"录中,没有一个目标目录中包å«å¤šæ•°æ–‡ä»¶ã€‚"
-#: merge-ort.c:2260 merge-recursive.c:2478
+#: merge-ort.c:2310 merge-recursive.c:2481
#, c-format
msgid ""
"WARNING: Avoiding applying %s -> %s rename to %s, because %s itself was "
"renamed."
msgstr "警告:é¿å…应用 %s -> %s çš„é‡å‘½å到 %s,因为 %s 本身已被é‡å‘½å。"
-#: merge-ort.c:2400 merge-recursive.c:3261
+#: merge-ort.c:2450 merge-recursive.c:3264
#, c-format
msgid ""
"Path updated: %s added in %s inside a directory that was renamed in %s; "
@@ -4884,7 +5005,7 @@ msgid ""
msgstr ""
"路径已更新:%s 添加到 %s,ä½äºŽä¸€ä¸ªè¢«é‡å‘½å到 %s 的目录中,将其移动到 %s。"
-#: merge-ort.c:2407 merge-recursive.c:3268
+#: merge-ort.c:2457 merge-recursive.c:3271
#, c-format
msgid ""
"Path updated: %s renamed to %s in %s, inside a directory that was renamed in "
@@ -4893,7 +5014,7 @@ msgstr ""
"路径已更新:%1$s é‡å‘½å为 %3$s 中的 %2$s,而该目录被é‡å‘½å到 %4$s 中,将其移"
"动到 %5$s。"
-#: merge-ort.c:2420 merge-recursive.c:3264
+#: merge-ort.c:2470 merge-recursive.c:3267
#, c-format
msgid ""
"CONFLICT (file location): %s added in %s inside a directory that was renamed "
@@ -4902,7 +5023,7 @@ msgstr ""
"冲çªï¼ˆæ–‡ä»¶ä½ç½®ï¼‰ï¼š%s 添加到 %s,ä½äºŽä¸€ä¸ªè¢«é‡å‘½å为 %s 的目录中,建议将其移动"
"到 %s。"
-#: merge-ort.c:2428 merge-recursive.c:3271
+#: merge-ort.c:2478 merge-recursive.c:3274
#, c-format
msgid ""
"CONFLICT (file location): %s renamed to %s in %s, inside a directory that "
@@ -4911,13 +5032,13 @@ msgstr ""
"冲çªï¼ˆæ–‡ä»¶ä½ç½®ï¼‰ï¼š%1$s é‡å‘½å为 %3$s 中的 %2$s,而该目录被é‡å‘½å到 %4$s 中,"
"建议将其移动到 %5$s。"
-#: merge-ort.c:2584
+#: merge-ort.c:2634
#, c-format
msgid "CONFLICT (rename/rename): %s renamed to %s in %s and to %s in %s."
msgstr ""
"冲çªï¼ˆé‡å‘½å/é‡å‘½å):%1$s é‡å‘½å为 %3$s 中的 %2$s,以åŠåœ¨ %5$s 中的 %4$s。"
-#: merge-ort.c:2679
+#: merge-ort.c:2729
#, c-format
msgid ""
"CONFLICT (rename involved in collision): rename of %s -> %s has content "
@@ -4927,29 +5048,29 @@ msgstr ""
"冲çªï¼ˆé‡å‘½åå·å…¥å†²çªï¼‰ï¼šé‡å‘½å %s -> %s 有内容冲çªå¹¶ä¸”å’Œå¦å¤–一个路径碰撞,这"
"å¯èƒ½å¯¼è‡´åµŒå¥—的冲çªæ ‡ç­¾ã€‚"
-#: merge-ort.c:2698 merge-ort.c:2722
+#: merge-ort.c:2748 merge-ort.c:2772
#, c-format
msgid "CONFLICT (rename/delete): %s renamed to %s in %s, but deleted in %s."
msgstr "冲çªï¼ˆé‡å‘½å/删除):%1$s 在 %3$s 中é‡å‘½å为 %2$s,但在 %4$s 中删除。"
-#: merge-ort.c:3212 merge-recursive.c:3022
+#: merge-ort.c:3261 merge-recursive.c:3025
#, c-format
msgid "cannot read object %s"
msgstr "ä¸èƒ½è¯»å–对象 %s"
-#: merge-ort.c:3215 merge-recursive.c:3025
+#: merge-ort.c:3264 merge-recursive.c:3028
#, c-format
msgid "object %s is not a blob"
msgstr "对象 %s ä¸æ˜¯ä¸€ä¸ªæ•°æ®å¯¹è±¡"
-#: merge-ort.c:3644
+#: merge-ort.c:3693
#, c-format
msgid ""
"CONFLICT (file/directory): directory in the way of %s from %s; moving it to "
"%s instead."
msgstr "冲çªï¼ˆæ–‡ä»¶/目录):目录已存在于 %2$s 中的 %1$s,将其移动到 %3$s。"
-#: merge-ort.c:3721
+#: merge-ort.c:3770
#, c-format
msgid ""
"CONFLICT (distinct types): %s had different types on each side; renamed both "
@@ -4958,7 +5079,7 @@ msgstr ""
"冲çªï¼ˆä¸åŒç±»åž‹ï¼‰ï¼š%s 在两侧有ä¸åŒçš„类型,将两者都é‡å‘½å以便它们能记录在ä¸åŒä½"
"置。"
-#: merge-ort.c:3728
+#: merge-ort.c:3777
#, c-format
msgid ""
"CONFLICT (distinct types): %s had different types on each side; renamed one "
@@ -4967,24 +5088,24 @@ msgstr ""
"冲çªï¼ˆä¸åŒç±»åž‹ï¼‰ï¼š%s 在两侧有ä¸åŒçš„类型,将其中之一é‡å‘½å以便它们能记录在ä¸åŒ"
"ä½ç½®ã€‚"
-#: merge-ort.c:3819 merge-recursive.c:3101
+#: merge-ort.c:3866 merge-recursive.c:3104
msgid "content"
msgstr "内容"
-#: merge-ort.c:3821 merge-recursive.c:3105
+#: merge-ort.c:3868 merge-recursive.c:3108
msgid "add/add"
msgstr "添加/添加"
-#: merge-ort.c:3823 merge-recursive.c:3150
+#: merge-ort.c:3870 merge-recursive.c:3153
msgid "submodule"
msgstr "å­æ¨¡ç»„"
-#: merge-ort.c:3825 merge-recursive.c:3151
+#: merge-ort.c:3872 merge-recursive.c:3154
#, c-format
msgid "CONFLICT (%s): Merge conflict in %s"
msgstr "冲çªï¼ˆ%s):åˆå¹¶å†²çªäºŽ %s"
-#: merge-ort.c:3869
+#: merge-ort.c:3916
#, c-format
msgid ""
"CONFLICT (modify/delete): %s deleted in %s and modified in %s. Version %s "
@@ -4993,7 +5114,7 @@ msgstr ""
"冲çªï¼ˆä¿®æ”¹/删除):%1$s 在 %2$s 中被删除,在 %3$s 中被修改。%5$s çš„ %4$s 版本"
"在树中被ä¿ç•™ã€‚"
-#: merge-ort.c:4165
+#: merge-ort.c:4212
#, c-format
msgid ""
"Note: %s not up to date and in way of checking out conflicted version; old "
@@ -5003,12 +5124,12 @@ msgstr "注æ„:%s ä¸æ˜¯æœ€æ–°çš„,并且与è¦æ£€å‡ºçš„版本冲çªã€‚旧副
#. TRANSLATORS: The %s arguments are: 1) tree hash of a merge
#. base, and 2-3) the trees for the two trees we're merging.
#.
-#: merge-ort.c:4534
+#: merge-ort.c:4586
#, c-format
msgid "collecting merge info failed for trees %s, %s, %s"
msgstr "无法收集树 %sã€%sã€%s çš„åˆå¹¶ä¿¡æ¯"
-#: merge-ort-wrappers.c:13 merge-recursive.c:3716
+#: merge-ort-wrappers.c:13 merge-recursive.c:3723
#, c-format
msgid ""
"Your local changes to the following files would be overwritten by merge:\n"
@@ -5017,7 +5138,7 @@ msgstr ""
"您对下列文件的本地修改将被åˆå¹¶æ“作覆盖:\n"
" %s"
-#: merge-ort-wrappers.c:33 merge-recursive.c:3482 builtin/merge.c:405
+#: merge-ort-wrappers.c:33 merge-recursive.c:3485 builtin/merge.c:405
msgid "Already up to date."
msgstr "å·²ç»æ˜¯æœ€æ–°çš„。"
@@ -5054,7 +5175,7 @@ msgstr ":å¯èƒ½æ˜¯ä¸€ä¸ªç›®å½•/文件冲çªï¼Ÿ"
msgid "refusing to lose untracked file at '%s'"
msgstr "æ‹’ç»ä¸¢å¼ƒ '%s' 中的未跟踪文件"
-#: merge-recursive.c:956 builtin/cat-file.c:41
+#: merge-recursive.c:956 builtin/cat-file.c:47
#, c-format
msgid "cannot read object %s '%s'"
msgstr "ä¸èƒ½è¯»å–对象 %s '%s'"
@@ -5079,41 +5200,41 @@ msgstr "无法创建符å·é“¾æŽ¥ '%s':%s"
msgid "do not know what to do with %06o %s '%s'"
msgstr "ä¸çŸ¥é“å¦‚ä½•å¤„ç† %06o %s '%s'"
-#: merge-recursive.c:1233 merge-recursive.c:1246
+#: merge-recursive.c:1236 merge-recursive.c:1249
#, c-format
msgid "Fast-forwarding submodule %s to the following commit:"
msgstr "å­æ¨¡ç»„ %s 快进到如下æ交:"
-#: merge-recursive.c:1236 merge-recursive.c:1249
+#: merge-recursive.c:1239 merge-recursive.c:1252
#, c-format
msgid "Fast-forwarding submodule %s"
msgstr "å¿«è¿›å­æ¨¡ç»„ %s"
-#: merge-recursive.c:1273
+#: merge-recursive.c:1276
#, c-format
msgid "Failed to merge submodule %s (merge following commits not found)"
msgstr "无法åˆå¹¶å­æ¨¡ç»„ %s (没å‘现åˆå¹¶è·Ÿéšçš„æ交)"
-#: merge-recursive.c:1277
+#: merge-recursive.c:1280
#, c-format
msgid "Failed to merge submodule %s (not fast-forward)"
msgstr "无法åˆå¹¶å­æ¨¡ç»„ %s(éžå¿«è¿›ï¼‰"
-#: merge-recursive.c:1278
+#: merge-recursive.c:1281
msgid "Found a possible merge resolution for the submodule:\n"
msgstr "找到å­æ¨¡ç»„的一个å¯èƒ½çš„åˆå¹¶æ–¹æ¡ˆï¼š\n"
-#: merge-recursive.c:1290
+#: merge-recursive.c:1293
#, c-format
msgid "Failed to merge submodule %s (multiple merges found)"
msgstr "无法åˆå¹¶å­æ¨¡ç»„ %s (å‘现多个åˆå¹¶ï¼‰"
-#: merge-recursive.c:1434
+#: merge-recursive.c:1437
#, c-format
msgid "Error: Refusing to lose untracked file at %s; writing to %s instead."
msgstr "错误:拒ç»ä¸¢å¤±æœªè·Ÿè¸ªæ–‡ä»¶ '%s',而是写入 %s。"
-#: merge-recursive.c:1506
+#: merge-recursive.c:1509
#, c-format
msgid ""
"CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left "
@@ -5122,7 +5243,7 @@ msgstr ""
"冲çªï¼ˆ%1$s/删除):%2$s 在 %3$s 中被删除,在 %5$s 中被 %4$s。%7$s çš„ %6$s 版"
"本被ä¿ç•™ã€‚"
-#: merge-recursive.c:1511
+#: merge-recursive.c:1514
#, c-format
msgid ""
"CONFLICT (%s/delete): %s deleted in %s and %s to %s in %s. Version %s of %s "
@@ -5131,7 +5252,7 @@ msgstr ""
"冲çªï¼ˆ%1$s/删除):%2$s 在 %3$s 中被删除,在 %6$s 中的 %5$s 被 %4$s。%8$s çš„ "
"%7$s 版本被ä¿ç•™ã€‚"
-#: merge-recursive.c:1518
+#: merge-recursive.c:1521
#, c-format
msgid ""
"CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left "
@@ -5140,7 +5261,7 @@ msgstr ""
"冲çªï¼ˆ%1$s/删除):%2$s 在 %3$s 中被删除,在 %5$s 中被 %4$s。%7$s çš„ %6$s 版"
"本ä¿ç•™åœ¨ %8$s 中。"
-#: merge-recursive.c:1523
+#: merge-recursive.c:1526
#, c-format
msgid ""
"CONFLICT (%s/delete): %s deleted in %s and %s to %s in %s. Version %s of %s "
@@ -5149,60 +5270,60 @@ msgstr ""
"冲çªï¼ˆ%1$s/删除):%2$s 在 %3$s 中被删除,在 %6$s 中的 %5$s 被 %4$s。%8$s çš„ "
"%7$s 版本ä¿ç•™åœ¨ %9$s 中。"
-#: merge-recursive.c:1558
+#: merge-recursive.c:1561
msgid "rename"
msgstr "é‡å‘½å"
-#: merge-recursive.c:1558
+#: merge-recursive.c:1561
msgid "renamed"
msgstr "é‡å‘½å"
-#: merge-recursive.c:1609 merge-recursive.c:2515 merge-recursive.c:3178
+#: merge-recursive.c:1612 merge-recursive.c:2518 merge-recursive.c:3181
#, c-format
msgid "Refusing to lose dirty file at %s"
msgstr "æ‹’ç»ä¸¢å¤±è„文件 '%s'"
-#: merge-recursive.c:1619
+#: merge-recursive.c:1622
#, c-format
msgid "Refusing to lose untracked file at %s, even though it's in the way."
msgstr "æ‹’ç»åœ¨ '%s' 处失去未跟踪文件,å³ä½¿å®ƒå­˜åœ¨äºŽé‡å‘½å中。"
-#: merge-recursive.c:1677
+#: merge-recursive.c:1680
#, c-format
msgid "CONFLICT (rename/add): Rename %s->%s in %s. Added %s in %s"
msgstr "冲çªï¼ˆé‡å‘½å/添加):在 %3$s 中é‡å‘½å %1$s->%2$s。在 %5$s 中添加 %4$s"
-#: merge-recursive.c:1708
+#: merge-recursive.c:1711
#, c-format
msgid "%s is a directory in %s adding as %s instead"
msgstr "%s 是 %s 中的一个目录而以 %s 为å被添加"
-#: merge-recursive.c:1713
+#: merge-recursive.c:1716
#, c-format
msgid "Refusing to lose untracked file at %s; adding as %s instead"
msgstr "æ‹’ç»ä¸¢å¤±æœªè·Ÿè¸ªæ–‡ä»¶ '%s',而是添加为 %s"
-#: merge-recursive.c:1740
+#: merge-recursive.c:1743
#, c-format
msgid ""
-"CONFLICT (rename/rename): Rename \"%s\"->\"%s\" in branch \"%s\" rename \"%s"
-"\"->\"%s\" in \"%s\"%s"
+"CONFLICT (rename/rename): Rename \"%s\"->\"%s\" in branch \"%s\" rename "
+"\"%s\"->\"%s\" in \"%s\"%s"
msgstr ""
"冲çªï¼ˆé‡å‘½å/é‡å‘½å):在分支 \"%3$s\" 中é‡å‘½å \"%1$s\"->\"%2$s\",在分支 "
"\"%6$s\" 中é‡å‘½å \"%4$s\"->\"%5$s\"%7$s"
-#: merge-recursive.c:1745
+#: merge-recursive.c:1748
msgid " (left unresolved)"
msgstr "(留下未解决)"
-#: merge-recursive.c:1837
+#: merge-recursive.c:1840
#, c-format
msgid "CONFLICT (rename/rename): Rename %s->%s in %s. Rename %s->%s in %s"
msgstr ""
-"冲çªï¼ˆé‡å‘½å/é‡å‘½å):在 %3$s 中é‡å‘½å %1$s->%2$s,在 %6$s 中é‡å‘½å %4$s->"
-"%5$s"
+"冲çªï¼ˆé‡å‘½å/é‡å‘½å):在 %3$s 中é‡å‘½å %1$s->%2$s,在 %6$s 中é‡å‘½å %4$s-"
+">%5$s"
-#: merge-recursive.c:2100
+#: merge-recursive.c:2103
#, c-format
msgid ""
"CONFLICT (directory rename split): Unclear where to place %s because "
@@ -5212,7 +5333,7 @@ msgstr ""
"冲çªï¼ˆåˆ†å‰²çš„目录é‡å‘½å):ä¸æ¸…楚 %s 应该放在哪里,因为目录 %s 被é‡å‘½å到多个"
"其它目录,没有目录包å«å¤§éƒ¨åˆ†æ–‡ä»¶ã€‚"
-#: merge-recursive.c:2234
+#: merge-recursive.c:2237
#, c-format
msgid ""
"CONFLICT (rename/rename): Rename directory %s->%s in %s. Rename directory %s-"
@@ -5221,78 +5342,78 @@ msgstr ""
"冲çªï¼ˆé‡å‘½å/é‡å‘½å):在 %3$s 中é‡å‘½å目录 %1$s->%2$s,在 %6$s 中é‡å‘½å目录 "
"%4$s->%5$s"
-#: merge-recursive.c:3089
+#: merge-recursive.c:3092
msgid "modify"
msgstr "修改"
-#: merge-recursive.c:3089
+#: merge-recursive.c:3092
msgid "modified"
msgstr "修改"
-#: merge-recursive.c:3128
+#: merge-recursive.c:3131
#, c-format
msgid "Skipped %s (merged same as existing)"
msgstr "略过 %s(已ç»åšè¿‡ç›¸åŒåˆå¹¶ï¼‰"
-#: merge-recursive.c:3181
+#: merge-recursive.c:3184
#, c-format
msgid "Adding as %s instead"
msgstr "而是以 %s 为å添加"
-#: merge-recursive.c:3385
+#: merge-recursive.c:3388
#, c-format
msgid "Removing %s"
msgstr "删除 %s"
-#: merge-recursive.c:3408
+#: merge-recursive.c:3411
msgid "file/directory"
msgstr "文件/目录"
-#: merge-recursive.c:3413
+#: merge-recursive.c:3416
msgid "directory/file"
msgstr "目录/文件"
-#: merge-recursive.c:3420
+#: merge-recursive.c:3423
#, c-format
msgid "CONFLICT (%s): There is a directory with name %s in %s. Adding %s as %s"
msgstr "冲çªï¼ˆ%1$s):在 %3$s 中有一个å为 %2$s 的目录。以 %5$s 为å添加 %4$s"
-#: merge-recursive.c:3429
+#: merge-recursive.c:3432
#, c-format
msgid "Adding %s"
msgstr "添加 %s"
-#: merge-recursive.c:3438
+#: merge-recursive.c:3441
#, c-format
msgid "CONFLICT (add/add): Merge conflict in %s"
msgstr "冲çªï¼ˆadd/add):åˆå¹¶å†²çªäºŽ %s"
-#: merge-recursive.c:3491
+#: merge-recursive.c:3494
#, c-format
msgid "merging of trees %s and %s failed"
msgstr "无法åˆå¹¶æ ‘ %s å’Œ %s"
-#: merge-recursive.c:3585
+#: merge-recursive.c:3588
msgid "Merging:"
msgstr "åˆå¹¶ï¼š"
-#: merge-recursive.c:3598
+#: merge-recursive.c:3601
#, c-format
msgid "found %u common ancestor:"
msgid_plural "found %u common ancestors:"
msgstr[0] "å‘现 %u 个共åŒç¥–先:"
msgstr[1] "å‘现 %u 个共åŒç¥–先:"
-#: merge-recursive.c:3648
+#: merge-recursive.c:3651
msgid "merge returned no commit"
msgstr "åˆå¹¶æœªè¿”回æ交"
-#: merge-recursive.c:3816
+#: merge-recursive.c:3823
#, c-format
msgid "Could not parse object '%s'"
msgstr "ä¸èƒ½è§£æžå¯¹è±¡ '%s'"
-#: merge-recursive.c:3834 builtin/merge.c:720 builtin/merge.c:906
+#: merge-recursive.c:3841 builtin/merge.c:720 builtin/merge.c:912
#: builtin/stash.c:489
msgid "Unable to write index."
msgstr "ä¸èƒ½å†™å…¥ç´¢å¼•ã€‚"
@@ -5301,221 +5422,225 @@ msgstr "ä¸èƒ½å†™å…¥ç´¢å¼•ã€‚"
msgid "failed to read the cache"
msgstr "无法读å–缓存"
-#: merge.c:102 rerere.c:704 builtin/am.c:1988 builtin/am.c:2022
-#: builtin/checkout.c:598 builtin/checkout.c:853 builtin/clone.c:706
+#: merge.c:102 rerere.c:705 builtin/am.c:1989 builtin/am.c:2023
+#: builtin/checkout.c:603 builtin/checkout.c:865 builtin/clone.c:714
#: builtin/stash.c:269
msgid "unable to write new index file"
msgstr "无法写新的索引文件"
-#: midx.c:78
+#: midx.c:79
msgid "multi-pack-index OID fanout is of the wrong size"
msgstr "多包索引的对象ID扇出表大å°é”™è¯¯"
-#: midx.c:111
+#: midx.c:112
#, c-format
msgid "multi-pack-index file %s is too small"
msgstr "多包索引文件 %s 太å°"
-#: midx.c:127
+#: midx.c:128
#, c-format
msgid "multi-pack-index signature 0x%08x does not match signature 0x%08x"
msgstr "多包索引签å 0x%08x 和签å 0x%08x ä¸åŒ¹é…"
-#: midx.c:132
+#: midx.c:133
#, c-format
msgid "multi-pack-index version %d not recognized"
msgstr "multi-pack-index 版本 %d ä¸èƒ½è¢«è¯†åˆ«"
-#: midx.c:137
+#: midx.c:138
#, c-format
msgid "multi-pack-index hash version %u does not match version %u"
msgstr "多包索引哈希版本 %u 和版本 %u ä¸åŒ¹é…"
-#: midx.c:154
+#: midx.c:155
msgid "multi-pack-index missing required pack-name chunk"
msgstr "多包索引缺少必需的包åå—"
-#: midx.c:156
+#: midx.c:157
msgid "multi-pack-index missing required OID fanout chunk"
msgstr "多包索引缺少必需的对象 ID 扇出å—"
-#: midx.c:158
+#: midx.c:159
msgid "multi-pack-index missing required OID lookup chunk"
msgstr "多包索引缺少必需的对象 ID 查询å—"
-#: midx.c:160
+#: midx.c:161
msgid "multi-pack-index missing required object offsets chunk"
msgstr "多包索引缺少必需的对象å移å—"
-#: midx.c:176
+#: midx.c:180
#, c-format
msgid "multi-pack-index pack names out of order: '%s' before '%s'"
msgstr "多包索引包åæ— åºï¼š'%s' 在 '%s' 之å‰"
-#: midx.c:224
+#: midx.c:228
#, c-format
msgid "bad pack-int-id: %u (%u total packs)"
msgstr "错的 pack-int-id:%u(共有 %u 个包)"
-#: midx.c:274
+#: midx.c:278
msgid "multi-pack-index stores a 64-bit offset, but off_t is too small"
msgstr "多包索引存储一个64ä½å移,但是 off_t 太å°"
-#: midx.c:505
+#: midx.c:509
#, c-format
msgid "failed to add packfile '%s'"
msgstr "无法添加包文件 '%s'"
-#: midx.c:511
+#: midx.c:515
#, c-format
msgid "failed to open pack-index '%s'"
msgstr "无法打开包索引 '%s'"
-#: midx.c:579
+#: midx.c:583
#, c-format
msgid "failed to locate object %d in packfile"
msgstr "无法在包文件中定ä½å¯¹è±¡ %d"
-#: midx.c:895
+#: midx.c:911
msgid "cannot store reverse index file"
msgstr "无法存储åå‘索引文件"
-#: midx.c:993
+#: midx.c:1009
#, c-format
msgid "could not parse line: %s"
msgstr "ä¸èƒ½è§£æžè¡Œï¼š%s"
-#: midx.c:995
+#: midx.c:1011
#, c-format
msgid "malformed line: %s"
msgstr "æ ¼å¼é”™è¯¯çš„行:%s"
-#: midx.c:1162
+#: midx.c:1181
msgid "ignoring existing multi-pack-index; checksum mismatch"
msgstr "忽略已存在的多包索引,校验ç ä¸åŒ¹é…"
-#: midx.c:1187
+#: midx.c:1206
msgid "could not load pack"
msgstr "ä¸èƒ½è½½å…¥åŒ…"
-#: midx.c:1193
+#: midx.c:1212
#, c-format
msgid "could not open index for %s"
msgstr "ä¸èƒ½æ‰“å¼€ %s 的索引"
-#: midx.c:1204
+#: midx.c:1223
msgid "Adding packfiles to multi-pack-index"
msgstr "添加包文件到多包索引"
-#: midx.c:1247
+#: midx.c:1266
#, c-format
msgid "unknown preferred pack: '%s'"
msgstr "未知的首选包:'%s'"
-#: midx.c:1292
+#: midx.c:1311
#, c-format
msgid "cannot select preferred pack %s with no objects"
msgstr "ä¸èƒ½é€‰æ‹©æ²¡æœ‰å¯¹è±¡çš„首选包 %s"
-#: midx.c:1324
+#: midx.c:1343
#, c-format
msgid "did not see pack-file %s to drop"
msgstr "没有看到è¦ä¸¢å¼ƒçš„包文件 %s"
-#: midx.c:1370
+#: midx.c:1389
#, c-format
msgid "preferred pack '%s' is expired"
msgstr "首选包 '%s' 已过期"
-#: midx.c:1383
+#: midx.c:1402
msgid "no pack files to index."
msgstr "没有è¦ç´¢å¼•çš„包文件。"
-#: midx.c:1420
+#: midx.c:1409
+msgid "refusing to write multi-pack .bitmap without any objects"
+msgstr "æ‹’ç»å†™å…¥æ²¡æœ‰ä»»ä½•å¯¹è±¡çš„多包ä½å›¾ .bitmap"
+
+#: midx.c:1451
msgid "could not write multi-pack bitmap"
msgstr "无法写入多包ä½å›¾"
-#: midx.c:1430
+#: midx.c:1461
msgid "could not write multi-pack-index"
msgstr "无法写入多包索引"
-#: midx.c:1489 builtin/clean.c:37
+#: midx.c:1520 builtin/clean.c:37
#, c-format
msgid "failed to remove %s"
msgstr "无法删除 %s"
-#: midx.c:1522
+#: midx.c:1553
#, c-format
msgid "failed to clear multi-pack-index at %s"
msgstr "无法清ç†ä½äºŽ %s 的多包索引"
-#: midx.c:1585
+#: midx.c:1616
msgid "multi-pack-index file exists, but failed to parse"
msgstr "多包索引文件存在,但无法解æž"
-#: midx.c:1593
+#: midx.c:1624
msgid "incorrect checksum"
msgstr "ä¸æ­£ç¡®çš„校验ç "
-#: midx.c:1596
+#: midx.c:1627
msgid "Looking for referenced packfiles"
msgstr "正在查找引用的包文件"
-#: midx.c:1611
+#: midx.c:1642
#, c-format
msgid ""
"oid fanout out of order: fanout[%d] = %<PRIx32> > %<PRIx32> = fanout[%d]"
msgstr "对象 ID 扇出无åºï¼šfanout[%d] = %<PRIx32> > %<PRIx32> = fanout[%d]"
-#: midx.c:1616
+#: midx.c:1647
msgid "the midx contains no oid"
msgstr "midx ä¸åŒ…å« oid"
-#: midx.c:1625
+#: midx.c:1656
msgid "Verifying OID order in multi-pack-index"
msgstr "校验多包索引中的 OID 顺åº"
-#: midx.c:1634
+#: midx.c:1665
#, c-format
msgid "oid lookup out of order: oid[%d] = %s >= %s = oid[%d]"
msgstr "对象 ID 查询无åºï¼šoid[%d] = %s >= %s = oid[%d]"
-#: midx.c:1654
+#: midx.c:1685
msgid "Sorting objects by packfile"
msgstr "通过包文件为对象排åº"
-#: midx.c:1661
+#: midx.c:1692
msgid "Verifying object offsets"
msgstr "校验对象å移"
-#: midx.c:1677
+#: midx.c:1708
#, c-format
msgid "failed to load pack entry for oid[%d] = %s"
msgstr "无法为 oid[%d] = %s 加载包æ¡ç›®"
-#: midx.c:1683
+#: midx.c:1714
#, c-format
msgid "failed to load pack-index for packfile %s"
msgstr "无法为包文件 %s 加载包索引"
-#: midx.c:1692
+#: midx.c:1723
#, c-format
msgid "incorrect object offset for oid[%d] = %s: %<PRIx64> != %<PRIx64>"
msgstr "oid[%d] = %s 错误的对象å移:%<PRIx64> != %<PRIx64>"
-#: midx.c:1719
+#: midx.c:1750
msgid "Counting referenced objects"
msgstr "正在对引用对象计数"
-#: midx.c:1729
+#: midx.c:1760
msgid "Finding and deleting unreferenced packfiles"
msgstr "正在查找和删除未引用的包文件"
-#: midx.c:1921
+#: midx.c:1952
msgid "could not start pack-objects"
msgstr "ä¸èƒ½å¼€å§‹ pack-objects"
-#: midx.c:1941
+#: midx.c:1972
msgid "could not finish pack-objects"
msgstr "ä¸èƒ½ç»“æŸ pack-objects"
@@ -5534,7 +5659,7 @@ msgstr "ä¸èƒ½åˆ›å»º lazy_name 线程:%s"
msgid "unable to join lazy_name thread: %s"
msgstr "ä¸èƒ½åŠ å…¥ lazy_name 线程:%s"
-#: notes-merge.c:277
+#: notes-merge.c:276
#, c-format
msgid ""
"You have not concluded your previous notes merge (%s exists).\n"
@@ -5545,7 +5670,7 @@ msgstr ""
"在开始一个新的注释åˆå¹¶ä¹‹å‰ï¼Œè¯·ä½¿ç”¨ 'git notes merge --commit' 或者 'git "
"notes merge --abort' æ¥æ交/终止å‰ä¸€æ¬¡åˆå¹¶ã€‚"
-#: notes-merge.c:284
+#: notes-merge.c:283
#, c-format
msgid "You have not concluded your notes merge (%s exists)."
msgstr "您尚未结æŸæ³¨é‡Šåˆå¹¶ï¼ˆå­˜åœ¨ %s)。"
@@ -5573,271 +5698,342 @@ msgstr "æ‹’ç»å‘ %s(在 refs/notes/ 之外)写入注解"
msgid "Bad %s value: '%s'"
msgstr "åçš„ %s 值:'%s'"
-#: object-file.c:456
+#: object-file.c:457
#, c-format
msgid "object directory %s does not exist; check .git/objects/info/alternates"
msgstr "对象目录 %s ä¸å­˜åœ¨ï¼Œæ£€æŸ¥ .git/objects/info/alternates"
-#: object-file.c:514
+#: object-file.c:515
#, c-format
msgid "unable to normalize alternate object path: %s"
msgstr "无法规范化备用对象路径:%s"
-#: object-file.c:588
+#: object-file.c:589
#, c-format
msgid "%s: ignoring alternate object stores, nesting too deep"
msgstr "%s:忽略备用对象库,嵌套太深"
-#: object-file.c:595
+#: object-file.c:596
#, c-format
msgid "unable to normalize object directory: %s"
msgstr "无法规范化对象目录: %s"
-#: object-file.c:638
+#: object-file.c:639
msgid "unable to fdopen alternates lockfile"
msgstr "无法 fdopen 替æ¢é”文件"
-#: object-file.c:656
+#: object-file.c:657
msgid "unable to read alternates file"
msgstr "无法读å–替代文件"
-#: object-file.c:663
+#: object-file.c:664
msgid "unable to move new alternates file into place"
msgstr "无法将新的替代文件移动到ä½"
-#: object-file.c:741
+#: object-file.c:742
#, c-format
msgid "path '%s' does not exist"
msgstr "路径 '%s' ä¸å­˜åœ¨"
-#: object-file.c:762
+#: object-file.c:763
#, c-format
msgid "reference repository '%s' as a linked checkout is not supported yet."
msgstr "å°šä¸æ”¯æŒå°†å‚考仓库 '%s' 作为一个链接检出。"
-#: object-file.c:768
+#: object-file.c:769
#, c-format
msgid "reference repository '%s' is not a local repository."
msgstr "å‚考仓库 '%s' ä¸æ˜¯ä¸€ä¸ªæœ¬åœ°ä»“库。"
-#: object-file.c:774
+#: object-file.c:775
#, c-format
msgid "reference repository '%s' is shallow"
msgstr "å‚考仓库 '%s' 是一个浅克隆"
-#: object-file.c:782
+#: object-file.c:783
#, c-format
msgid "reference repository '%s' is grafted"
msgstr "å‚考仓库 '%s' 已被移æ¤"
-#: object-file.c:813
+#: object-file.c:814
#, c-format
msgid "could not find object directory matching %s"
msgstr "无法找到和 %s 匹é…的对象目录"
-#: object-file.c:863
+#: object-file.c:864
#, c-format
msgid "invalid line while parsing alternate refs: %s"
msgstr "解æžå¤‡ç”¨å¼•ç”¨æ—¶æ— æ•ˆçš„行:%s"
-#: object-file.c:1013
+#: object-file.c:1014
#, c-format
msgid "attempting to mmap %<PRIuMAX> over limit %<PRIuMAX>"
msgstr "å°è¯• mmap %<PRIuMAX>,超过了最大值 %<PRIuMAX>"
-#: object-file.c:1048
+#: object-file.c:1049
#, c-format
msgid "mmap failed%s"
msgstr "mmap 失败%s"
-#: object-file.c:1214
+#: object-file.c:1230
#, c-format
msgid "object file %s is empty"
msgstr "对象文件 %s 为空"
-#: object-file.c:1333 object-file.c:2542
+#: object-file.c:1349 object-file.c:2588
#, c-format
msgid "corrupt loose object '%s'"
msgstr "æŸåçš„æ¾æ•£å¯¹è±¡ '%s'"
-#: object-file.c:1335 object-file.c:2546
+#: object-file.c:1351 object-file.c:2592
#, c-format
msgid "garbage at end of loose object '%s'"
msgstr "æ¾æ•£å¯¹è±¡ '%s' åŽé¢æœ‰åžƒåœ¾æ•°æ®"
-#: object-file.c:1457
+#: object-file.c:1473
#, c-format
msgid "unable to parse %s header"
msgstr "æ— æ³•è§£æž %s 头部"
-#: object-file.c:1459
+#: object-file.c:1475
msgid "invalid object type"
msgstr "无效的对象类型"
-#: object-file.c:1470
+#: object-file.c:1486
#, c-format
msgid "unable to unpack %s header"
msgstr "无法解开 %s 头部"
-#: object-file.c:1474
+#: object-file.c:1490
#, c-format
msgid "header for %s too long, exceeds %d bytes"
msgstr "%s 的头部太长,超出了 %d 字节"
-#: object-file.c:1704
+#: object-file.c:1720
#, c-format
msgid "failed to read object %s"
msgstr "无法读å–对象 %s"
-#: object-file.c:1708
+#: object-file.c:1724
#, c-format
msgid "replacement %s not found for %s"
msgstr "找ä¸åˆ° %2$s 的替代 %1$s"
-#: object-file.c:1712
+#: object-file.c:1728
#, c-format
msgid "loose object %s (stored in %s) is corrupt"
msgstr "æ¾æ•£å¯¹è±¡ %s(ä¿å­˜åœ¨ %s)已æŸå"
-#: object-file.c:1716
+#: object-file.c:1732
#, c-format
msgid "packed object %s (stored in %s) is corrupt"
msgstr "打包对象 %s(ä¿å­˜åœ¨ %s)已æŸå"
-#: object-file.c:1821
+#: object-file.c:1855
#, c-format
msgid "unable to write file %s"
msgstr "无法写文件 %s"
-#: object-file.c:1828
+#: object-file.c:1862
#, c-format
msgid "unable to set permission to '%s'"
msgstr "无法为 '%s' 设置æƒé™"
-#: object-file.c:1835
+#: object-file.c:1869
msgid "file write error"
msgstr "文件写错误"
-#: object-file.c:1858
+#: object-file.c:1904
msgid "error when closing loose object file"
msgstr "关闭æ¾æ•£å¯¹è±¡æ–‡ä»¶æ—¶å‡ºé”™"
-#: object-file.c:1925
+#: object-file.c:1971
#, c-format
msgid "insufficient permission for adding an object to repository database %s"
msgstr "æƒé™ä¸è¶³ï¼Œæ— æ³•åœ¨ä»“库对象库 %s 中添加对象"
-#: object-file.c:1927
+#: object-file.c:1973
msgid "unable to create temporary file"
msgstr "无法创建临时文件"
-#: object-file.c:1951
+#: object-file.c:1997
msgid "unable to write loose object file"
msgstr "ä¸èƒ½å†™æ¾æ•£å¯¹è±¡æ–‡ä»¶"
-#: object-file.c:1957
+#: object-file.c:2003
#, c-format
msgid "unable to deflate new object %s (%d)"
msgstr "ä¸èƒ½åŽ‹ç¼©æ–°å¯¹è±¡ %s(%d)"
-#: object-file.c:1961
+#: object-file.c:2007
#, c-format
msgid "deflateEnd on object %s failed (%d)"
msgstr "在对象 %s 上调用 deflateEnd 失败(%d)"
-#: object-file.c:1965
+#: object-file.c:2011
#, c-format
msgid "confused by unstable object source data for %s"
msgstr "被 %s çš„ä¸ç¨³å®šå¯¹è±¡æºæ•°æ®æžç³Šæ¶‚了"
-#: object-file.c:1976 builtin/pack-objects.c:1243
+#: object-file.c:2022 builtin/pack-objects.c:1251
#, c-format
msgid "failed utime() on %s"
msgstr "在 %s 上调用 utime() 失败"
-#: object-file.c:2054
+#: object-file.c:2100
#, c-format
msgid "cannot read object for %s"
msgstr "ä¸èƒ½è¯»å–对象 %s"
-#: object-file.c:2105
+#: object-file.c:2151
msgid "corrupt commit"
msgstr "æŸåçš„æ交"
-#: object-file.c:2113
+#: object-file.c:2159
msgid "corrupt tag"
msgstr "æŸå的标签"
-#: object-file.c:2213
+#: object-file.c:2259
#, c-format
msgid "read error while indexing %s"
msgstr "索引 %s 时读å–错误"
-#: object-file.c:2216
+#: object-file.c:2262
#, c-format
msgid "short read while indexing %s"
msgstr "索引 %s 时读入ä¸å®Œæ•´"
-#: object-file.c:2289 object-file.c:2299
+#: object-file.c:2335 object-file.c:2345
#, c-format
msgid "%s: failed to insert into database"
msgstr "%s:无法æ’入数æ®åº“"
-#: object-file.c:2305
+#: object-file.c:2351
#, c-format
msgid "%s: unsupported file type"
msgstr "%s:ä¸æ”¯æŒçš„文件类型"
-#: object-file.c:2329 builtin/fetch.c:1453
+#: object-file.c:2375 builtin/fetch.c:1494
#, c-format
msgid "%s is not a valid object"
msgstr "%s ä¸æ˜¯ä¸€ä¸ªæœ‰æ•ˆçš„对象"
-#: object-file.c:2331
+#: object-file.c:2377
#, c-format
msgid "%s is not a valid '%s' object"
msgstr "%s ä¸æ˜¯ä¸€ä¸ªæœ‰æ•ˆçš„ '%s' 对象"
-#: object-file.c:2358
+#: object-file.c:2404
#, c-format
msgid "unable to open %s"
msgstr "ä¸èƒ½æ‰“å¼€ %s"
-#: object-file.c:2553
+#: object-file.c:2599
#, c-format
msgid "hash mismatch for %s (expected %s)"
msgstr "%s 的哈希值ä¸åŒ¹é…(预期 %s)"
-#: object-file.c:2576
+#: object-file.c:2622
#, c-format
msgid "unable to mmap %s"
msgstr "ä¸èƒ½ mmap %s"
-#: object-file.c:2582
+#: object-file.c:2628
#, c-format
msgid "unable to unpack header of %s"
msgstr "无法解压缩 %s 的头部"
-#: object-file.c:2587
+#: object-file.c:2633
#, c-format
msgid "unable to parse header of %s"
msgstr "æ— æ³•è§£æž %s 的头部"
-#: object-file.c:2598
+#: object-file.c:2644
#, c-format
msgid "unable to unpack contents of %s"
msgstr "无法解压缩 %s 的内容"
-#: object-name.c:480
+#. TRANSLATORS: This is a line of ambiguous object
+#. output shown when we cannot look up or parse the
+#. object in question. E.g. "deadbeef [bad object]".
+#.
+#: object-name.c:382
+#, c-format
+msgid "%s [bad object]"
+msgstr "%s [å的对象]"
+
+#. TRANSLATORS: This is a line of ambiguous commit
+#. object output. E.g.:
+#. *
+#. "deadbeef commit 2021-01-01 - Some Commit Message"
+#.
+#: object-name.c:407
+#, c-format
+msgid "%s commit %s - %s"
+msgstr "%s æ交 %s - %s"
+
+#. TRANSLATORS: This is a line of ambiguous
+#. tag object output. E.g.:
+#. *
+#. "deadbeef tag 2022-01-01 - Some Tag Message"
+#. *
+#. The second argument is the YYYY-MM-DD found
+#. in the tag.
+#. *
+#. The third argument is the "tag" string
+#. from object.c.
+#.
+#: object-name.c:428
+#, c-format
+msgid "%s tag %s - %s"
+msgstr "%s 标签 %s - %s"
+
+#. TRANSLATORS: This is a line of ambiguous
+#. tag object output where we couldn't parse
+#. the tag itself. E.g.:
+#. *
+#. "deadbeef [bad tag, could not parse it]"
+#.
+#: object-name.c:439
+#, c-format
+msgid "%s [bad tag, could not parse it]"
+msgstr "%s [å的标签,无法解æž]"
+
+#. TRANSLATORS: This is a line of ambiguous <type>
+#. object output. E.g. "deadbeef tree".
+#.
+#: object-name.c:447
+#, c-format
+msgid "%s tree"
+msgstr "%s æ ‘"
+
+#. TRANSLATORS: This is a line of ambiguous <type>
+#. object output. E.g. "deadbeef blob".
+#.
+#: object-name.c:453
+#, c-format
+msgid "%s blob"
+msgstr "%s æ•°æ®å¯¹è±¡"
+
+#: object-name.c:569
#, c-format
msgid "short object ID %s is ambiguous"
msgstr "短对象ID %s 存在歧义"
-#: object-name.c:491
-msgid "The candidates are:"
-msgstr "候选者有:"
+#. TRANSLATORS: The argument is the list of ambiguous
+#. objects composed in show_ambiguous_object(). See
+#. its "TRANSLATORS" comments for details.
+#.
+#: object-name.c:591
+#, c-format
+msgid ""
+"The candidates are:\n"
+"%s"
+msgstr ""
+"候选者有:\n"
+"%s"
-#: object-name.c:790
+#: object-name.c:888
msgid ""
"Git normally never creates a ref that ends with 40 hex characters\n"
"because it will be ignored when you just specify 40-hex. These refs\n"
@@ -5858,22 +6054,22 @@ msgstr ""
"引用,å¯èƒ½éœ€è¦åˆ é™¤å®ƒä»¬ã€‚è¿è¡Œ \"git config advice.objectNameWarning\n"
"false\" 命令关闭本消æ¯é€šçŸ¥ã€‚"
-#: object-name.c:910
+#: object-name.c:1008
#, c-format
msgid "log for '%.*s' only goes back to %s"
msgstr "'%.*s' 的日志仅能回到 %s"
-#: object-name.c:918
+#: object-name.c:1016
#, c-format
msgid "log for '%.*s' only has %d entries"
msgstr "'%.*s' 的日志仅有 %d 个æ¡ç›®"
-#: object-name.c:1696
+#: object-name.c:1794
#, c-format
msgid "path '%s' exists on disk, but not in '%.*s'"
msgstr "路径 '%s' 在ç£ç›˜ä¸Šï¼Œä½†æ˜¯ä¸åœ¨ '%.*s' 中"
-#: object-name.c:1702
+#: object-name.c:1800
#, c-format
msgid ""
"path '%s' exists, but not '%s'\n"
@@ -5882,12 +6078,12 @@ msgstr ""
"路径 '%s' 存在,而 '%s' ä¸å­˜åœ¨\n"
"æ示:您的æ„æ€æ˜¯ '%.*s:%s' äº¦å³ '%.*s:./%s'?"
-#: object-name.c:1711
+#: object-name.c:1809
#, c-format
msgid "path '%s' does not exist in '%.*s'"
msgstr "路径 '%s' ä¸åœ¨ '%.*s' 中"
-#: object-name.c:1739
+#: object-name.c:1837
#, c-format
msgid ""
"path '%s' is in the index, but not at stage %d\n"
@@ -5896,7 +6092,7 @@ msgstr ""
"路径 '%s' 在索引中,但ä¸åœ¨æš‚存区 %d 中\n"
"æ示:您的æ„æ€æ˜¯ ':%d:%s'?"
-#: object-name.c:1755
+#: object-name.c:1853
#, c-format
msgid ""
"path '%s' is in the index, but not '%s'\n"
@@ -5905,21 +6101,26 @@ msgstr ""
"路径 '%s' 在索引中,但 '%s' ä¸åœ¨\n"
"æ示:您的æ„æ€æ˜¯ ':%d:%s' äº¦å³ ':%d:./%s'?"
-#: object-name.c:1763
+#: object-name.c:1861
#, c-format
msgid "path '%s' exists on disk, but not in the index"
msgstr "路径 '%s' 在ç£ç›˜ä¸Šï¼Œä½†ä¸åœ¨ç´¢å¼•é‡Œ"
-#: object-name.c:1765
+#: object-name.c:1863
#, c-format
msgid "path '%s' does not exist (neither on disk nor in the index)"
msgstr "路径 '%s' ä¸å­˜åœ¨ï¼ˆæ—¢ä¸åœ¨ç£ç›˜ä¸Šï¼Œä¹Ÿä¸åœ¨ç´¢å¼•ä¸­ï¼‰"
-#: object-name.c:1778
+#: object-name.c:1876
msgid "relative path syntax can't be used outside working tree"
msgstr "ä¸èƒ½åœ¨å·¥ä½œåŒºä¹‹å¤–使用相对路径语法"
-#: object-name.c:1916
+#: object-name.c:1901
+#, c-format
+msgid "<object>:<path> required, only <object> '%s' given"
+msgstr "éœ€è¦ <对象>:<路径>,åªç»™å‡ºäº† <对象> '%s'"
+
+#: object-name.c:2014
#, c-format
msgid "invalid object name '%.*s'."
msgstr "无效的对象å '%.*s'。"
@@ -5944,7 +6145,7 @@ msgstr "对象 %s 有未知的类型 id %d"
msgid "unable to parse object: %s"
msgstr "ä¸èƒ½è§£æžå¯¹è±¡ï¼š%s"
-#: object.c:283 object.c:295
+#: object.c:283 object.c:294
#, c-format
msgid "hash mismatch %s"
msgstr "哈希值与 %s ä¸åŒ¹é…"
@@ -5953,21 +6154,21 @@ msgstr "哈希值与 %s ä¸åŒ¹é…"
msgid "multi-pack bitmap is missing required reverse index"
msgstr "多包ä½å›¾ç¼ºå°‘必需的åå‘索引"
-#: pack-bitmap.c:429
+#: pack-bitmap.c:433
msgid "load_reverse_index: could not open pack"
msgstr "load_reverse_index:无法打开包"
-#: pack-bitmap.c:1069 pack-bitmap.c:1075 builtin/pack-objects.c:2424
+#: pack-bitmap.c:1072 pack-bitmap.c:1078 builtin/pack-objects.c:2432
#, c-format
msgid "unable to get size of %s"
msgstr "无法得到 %s 的大å°"
-#: pack-bitmap.c:1935
+#: pack-bitmap.c:1937
#, c-format
msgid "could not find %s in pack %s at offset %<PRIuMAX>"
msgstr "在包 %2$s å移 %3$<PRIuMAX> 中无法找到 %1$s"
-#: pack-bitmap.c:1971 builtin/rev-list.c:92
+#: pack-bitmap.c:1973 builtin/rev-list.c:91
#, c-format
msgid "unable to get disk usage of %s"
msgstr "无法得到 %s çš„ç£ç›˜ä½¿ç”¨é‡"
@@ -6011,7 +6212,7 @@ msgstr "ä¸èƒ½è°ƒç”¨ stat:%s"
msgid "failed to make %s readable"
msgstr "无法设置 %s 为å¯è¯»"
-#: pack-write.c:520
+#: pack-write.c:521
#, c-format
msgid "could not write '%s' promisor file"
msgstr "无法写入 '%s' 承诺者文件"
@@ -6346,84 +6547,84 @@ msgstr "object-info:在å‚数之åŽåº”有一个 flush"
msgid "Removing duplicate objects"
msgstr "正在删除é‡å¤å¯¹è±¡"
-#: range-diff.c:67
+#: range-diff.c:68
msgid "could not start `log`"
msgstr "ä¸èƒ½å¯åŠ¨ `log`"
-#: range-diff.c:69
+#: range-diff.c:70
msgid "could not read `log` output"
msgstr "ä¸èƒ½è¯»å– `log` 的输出"
-#: range-diff.c:97 sequencer.c:5602
+#: range-diff.c:98 sequencer.c:5575
#, c-format
msgid "could not parse commit '%s'"
msgstr "ä¸èƒ½è§£æžæ交 '%s'"
-#: range-diff.c:111
+#: range-diff.c:109
#, c-format
msgid ""
"could not parse first line of `log` output: did not start with 'commit ': "
"'%s'"
msgstr "æ— æ³•è§£æž `log` 输出的首行:ä¸æ˜¯ä»¥ 'commit ' 开头:'%s'"
-#: range-diff.c:137
+#: range-diff.c:132
#, c-format
msgid "could not parse git header '%.*s'"
msgstr "æ— æ³•è§£æž git 头 '%.*s'"
-#: range-diff.c:304
+#: range-diff.c:300
msgid "failed to generate diff"
msgstr "æ— æ³•ç”Ÿæˆ diff"
-#: range-diff.c:562 range-diff.c:564
+#: range-diff.c:558 range-diff.c:560
#, c-format
msgid "could not parse log for '%s'"
msgstr "ä¸èƒ½è§£æž '%s' 的日志"
-#: read-cache.c:723
+#: read-cache.c:737
#, c-format
msgid "will not add file alias '%s' ('%s' already exists in index)"
msgstr "å°†ä¸ä¼šæ·»åŠ æ–‡ä»¶åˆ«å '%s'('%s' å·²ç»å­˜åœ¨äºŽç´¢å¼•ä¸­ï¼‰"
-#: read-cache.c:739
+#: read-cache.c:753
msgid "cannot create an empty blob in the object database"
msgstr "ä¸èƒ½åœ¨å¯¹è±¡æ•°æ®åº“中创建空的数æ®å¯¹è±¡"
-#: read-cache.c:761
+#: read-cache.c:775
#, c-format
msgid "%s: can only add regular files, symbolic links or git-directories"
msgstr "%s:åªèƒ½æ·»åŠ å¸¸è§„文件ã€ç¬¦å·é“¾æŽ¥æˆ– git 目录"
-#: read-cache.c:766 builtin/submodule--helper.c:3242
+#: read-cache.c:780 builtin/submodule--helper.c:3359
#, c-format
msgid "'%s' does not have a commit checked out"
msgstr "'%s' 没有检出一个æ交"
-#: read-cache.c:818
+#: read-cache.c:832
#, c-format
msgid "unable to index file '%s'"
msgstr "无法索引文件 '%s'"
-#: read-cache.c:837
+#: read-cache.c:851
#, c-format
msgid "unable to add '%s' to index"
msgstr "无法在索引中添加 '%s'"
-#: read-cache.c:848
+#: read-cache.c:862
#, c-format
msgid "unable to stat '%s'"
msgstr "无法对 %s 执行 stat"
-#: read-cache.c:1386
+#: read-cache.c:1404
#, c-format
msgid "'%s' appears as both a file and as a directory"
msgstr "'%s' 看起æ¥æ—¢æ˜¯æ–‡ä»¶åˆæ˜¯ç›®å½•"
-#: read-cache.c:1601
+#: read-cache.c:1619
msgid "Refresh index"
msgstr "刷新索引"
-#: read-cache.c:1733
+#: read-cache.c:1751
#, c-format
msgid ""
"index.version set, but the value is invalid.\n"
@@ -6432,7 +6633,7 @@ msgstr ""
"设置了 index.version,但是å–值无效。\n"
"使用版本 %i"
-#: read-cache.c:1743
+#: read-cache.c:1761
#, c-format
msgid ""
"GIT_INDEX_VERSION set, but the value is invalid.\n"
@@ -6441,144 +6642,148 @@ msgstr ""
"设置了 GIT_INDEX_VERSION,但是å–值无效。\n"
"使用版本 %i"
-#: read-cache.c:1799
+#: read-cache.c:1817
#, c-format
msgid "bad signature 0x%08x"
msgstr "åçš„ç­¾å 0x%08x"
-#: read-cache.c:1802
+#: read-cache.c:1820
#, c-format
msgid "bad index version %d"
msgstr "å的索引版本 %d"
-#: read-cache.c:1811
+#: read-cache.c:1829
msgid "bad index file sha1 signature"
msgstr "å的索引文件 sha1 ç­¾å"
-#: read-cache.c:1845
+#: read-cache.c:1863
#, c-format
msgid "index uses %.4s extension, which we do not understand"
msgstr "索引使用ä¸è¢«æ”¯æŒçš„ %.4s 扩展"
#
-#: read-cache.c:1847
+#: read-cache.c:1865
#, c-format
msgid "ignoring %.4s extension"
msgstr "忽略 %.4s 扩展"
-#: read-cache.c:1884
+#: read-cache.c:1902
#, c-format
msgid "unknown index entry format 0x%08x"
msgstr "未知的索引æ¡ç›®æ ¼å¼ 0x%08x"
-#: read-cache.c:1900
+#: read-cache.c:1918
#, c-format
msgid "malformed name field in the index, near path '%s'"
msgstr "索引中é è¿‘路径 '%s' 有错误的å称字段"
-#: read-cache.c:1957
+#: read-cache.c:1975
msgid "unordered stage entries in index"
msgstr "索引中有未排åºçš„æš‚å­˜æ¡ç›®"
-#: read-cache.c:1960
+#: read-cache.c:1978
#, c-format
msgid "multiple stage entries for merged file '%s'"
msgstr "åˆå¹¶æ–‡ä»¶ '%s' 有多个暂存æ¡ç›®"
-#: read-cache.c:1963
+#: read-cache.c:1981
#, c-format
msgid "unordered stage entries for '%s'"
msgstr "'%s' 的未排åºæš‚å­˜æ¡ç›®"
-#: read-cache.c:2078 read-cache.c:2384 rerere.c:549 rerere.c:583 rerere.c:1095
-#: submodule.c:1662 builtin/add.c:600 builtin/check-ignore.c:183
-#: builtin/checkout.c:527 builtin/checkout.c:719 builtin/clean.c:1013
-#: builtin/commit.c:378 builtin/diff-tree.c:122 builtin/grep.c:519
-#: builtin/mv.c:148 builtin/reset.c:499 builtin/rm.c:293
-#: builtin/submodule--helper.c:327 builtin/submodule--helper.c:3202
+#: read-cache.c:2096 read-cache.c:2402 rerere.c:549 rerere.c:583 rerere.c:1096
+#: submodule.c:1831 builtin/add.c:586 builtin/check-ignore.c:183
+#: builtin/checkout.c:532 builtin/checkout.c:724 builtin/clean.c:1016
+#: builtin/commit.c:379 builtin/diff-tree.c:122 builtin/grep.c:521
+#: builtin/mv.c:148 builtin/reset.c:506 builtin/rm.c:293
+#: builtin/submodule--helper.c:335 builtin/submodule--helper.c:3319
msgid "index file corrupt"
msgstr "索引文件æŸå"
-#: read-cache.c:2222
+#: read-cache.c:2240
#, c-format
msgid "unable to create load_cache_entries thread: %s"
msgstr "无法创建 load_cache_entries 线程:%s"
-#: read-cache.c:2235
+#: read-cache.c:2253
#, c-format
msgid "unable to join load_cache_entries thread: %s"
msgstr "无法加入 load_cache_entries 线程:%s"
-#: read-cache.c:2268
+#: read-cache.c:2286
#, c-format
msgid "%s: index file open failed"
msgstr "%s:打开索引文件失败"
-#: read-cache.c:2272
+#: read-cache.c:2290
#, c-format
msgid "%s: cannot stat the open index"
msgstr "%s:ä¸èƒ½å¯¹æ‰“开的索引执行 stat æ“作"
-#: read-cache.c:2276
+#: read-cache.c:2294
#, c-format
msgid "%s: index file smaller than expected"
msgstr "%s:索引文件比预期的å°"
-#: read-cache.c:2280
+#: read-cache.c:2298
#, c-format
msgid "%s: unable to map index file%s"
msgstr "%s:无法映射索引文件%s"
-#: read-cache.c:2323
+#: read-cache.c:2341
#, c-format
msgid "unable to create load_index_extensions thread: %s"
msgstr "无法创建 load_index_extensions 线程:%s"
-#: read-cache.c:2350
+#: read-cache.c:2368
#, c-format
msgid "unable to join load_index_extensions thread: %s"
msgstr "无法加入 load_index_extensions 线程:%s"
-#: read-cache.c:2396
+#: read-cache.c:2414
#, c-format
msgid "could not freshen shared index '%s'"
msgstr "无法刷新共享索引 '%s'"
-#: read-cache.c:2455
+#: read-cache.c:2473
#, c-format
msgid "broken index, expect %s in %s, got %s"
msgstr "æŸå的索引,期望在 %2$s 中的 %1$s,得到 %3$s"
-#: read-cache.c:3086 strbuf.c:1191 wrapper.c:641 builtin/merge.c:1150
+#: read-cache.c:3032
+msgid "cannot write split index for a sparse index"
+msgstr "无法为稀ç–索引写入拆分索引"
+
+#: read-cache.c:3114 strbuf.c:1192 wrapper.c:717 builtin/merge.c:1156
#, c-format
msgid "could not close '%s'"
msgstr "ä¸èƒ½å…³é—­ '%s'"
-#: read-cache.c:3129
+#: read-cache.c:3157
msgid "failed to convert to a sparse-index"
msgstr "无法转æ¢ä¸ºç¨€ç–索引"
-#: read-cache.c:3200
+#: read-cache.c:3228
#, c-format
msgid "could not stat '%s'"
msgstr "ä¸èƒ½å¯¹ '%s' 调用 stat"
-#: read-cache.c:3213
+#: read-cache.c:3241
#, c-format
msgid "unable to open git dir: %s"
msgstr "ä¸èƒ½æ‰“å¼€ git 目录:%s"
-#: read-cache.c:3225
+#: read-cache.c:3253
#, c-format
msgid "unable to unlink: %s"
msgstr "无法删除:%s"
-#: read-cache.c:3254
+#: read-cache.c:3282
#, c-format
msgid "cannot fix permission bits on '%s'"
msgstr "ä¸èƒ½ä¿®å¤ '%s' çš„æƒé™ä½"
-#: read-cache.c:3411
+#: read-cache.c:3439
#, c-format
msgid "%s: cannot drop to stage #0"
msgstr "%s:ä¸èƒ½è½åˆ°æš‚存区 #0"
@@ -6691,9 +6896,9 @@ msgstr ""
"然而,如果您删除全部内容,å˜åŸºæ“作将会终止。\n"
"\n"
-#: rebase-interactive.c:113 rerere.c:469 rerere.c:676 sequencer.c:3883
-#: sequencer.c:3909 sequencer.c:5708 builtin/fsck.c:328 builtin/gc.c:1791
-#: builtin/rebase.c:190
+#: rebase-interactive.c:113 rerere.c:469 rerere.c:677 sequencer.c:3879
+#: sequencer.c:3905 sequencer.c:5681 builtin/fsck.c:328 builtin/gc.c:1791
+#: builtin/rebase.c:191
#, c-format
msgid "could not write '%s'"
msgstr "ä¸èƒ½å†™å…¥ '%s'"
@@ -6733,7 +6938,7 @@ msgstr ""
msgid "%s: 'preserve' superseded by 'merges'"
msgstr "%s:'preserve' 被 'merges' å–代"
-#: ref-filter.c:42 wt-status.c:2048
+#: ref-filter.c:42 wt-status.c:2057
msgid "gone"
msgstr "丢失"
@@ -6899,81 +7104,91 @@ msgstr "这个命令拒ç»å…ƒç´  %%(%.*s)"
msgid "--format=%.*s cannot be used with --python, --shell, --tcl"
msgstr "--format=%.*s ä¸èƒ½å’Œ --pythonã€--shellã€--tcl åŒæ—¶ä½¿ç”¨"
-#: ref-filter.c:1706
+#: ref-filter.c:1707
#, c-format
msgid "(no branch, rebasing %s)"
msgstr "(éžåˆ†æ”¯ï¼Œæ­£å˜åŸº %s)"
-#: ref-filter.c:1709
+#: ref-filter.c:1710
#, c-format
msgid "(no branch, rebasing detached HEAD %s)"
msgstr "(éžåˆ†æ”¯ï¼Œæ­£å˜åŸºåˆ†ç¦»å¤´æŒ‡é’ˆ %s)"
-#: ref-filter.c:1712
+#: ref-filter.c:1713
#, c-format
msgid "(no branch, bisect started on %s)"
msgstr "(éžåˆ†æ”¯ï¼ŒäºŒåˆ†æŸ¥æ‰¾å¼€å§‹äºŽ %s)"
-#: ref-filter.c:1716
+#: ref-filter.c:1717
#, c-format
msgid "(HEAD detached at %s)"
msgstr "(头指针在 %s 分离)"
-#: ref-filter.c:1719
+#: ref-filter.c:1720
#, c-format
msgid "(HEAD detached from %s)"
msgstr "(头指针自 %s 分离)"
-#: ref-filter.c:1722
+#: ref-filter.c:1723
msgid "(no branch)"
msgstr "(éžåˆ†æ”¯ï¼‰"
-#: ref-filter.c:1754 ref-filter.c:1972
+#: ref-filter.c:1755 ref-filter.c:1973
#, c-format
msgid "missing object %s for %s"
msgstr "缺失 %2$s 的对象 %1$s"
-#: ref-filter.c:1764
+#: ref-filter.c:1765
#, c-format
msgid "parse_object_buffer failed on %s for %s"
msgstr "parse_object_buffer 失败于 %2$s 的 %1$s"
-#: ref-filter.c:2155
+#: ref-filter.c:2156
#, c-format
msgid "malformed object at '%s'"
msgstr "æ ¼å¼é”™è¯¯çš„对象 '%s'"
-#: ref-filter.c:2245
+#: ref-filter.c:2246
#, c-format
msgid "ignoring ref with broken name %s"
msgstr "忽略带有错误å称 %s 的引用"
-#: ref-filter.c:2250 refs.c:676
+#: ref-filter.c:2251 refs.c:672
#, c-format
msgid "ignoring broken ref %s"
msgstr "忽略æŸå的引用 %s"
-#: ref-filter.c:2629
+#: ref-filter.c:2630
#, c-format
msgid "format: %%(end) atom missing"
msgstr "æ ¼å¼ï¼šç¼ºå°‘ %%(end) 元素"
-#: ref-filter.c:2740
+#: ref-filter.c:2741
#, c-format
msgid "malformed object name %s"
msgstr "æ ¼å¼é”™è¯¯çš„对象å %s"
-#: ref-filter.c:2745
+#: ref-filter.c:2746
#, c-format
msgid "option `%s' must point to a commit"
msgstr "选项 `%s' 必须指å‘一个æ交"
-#: refs.c:261
+#: reflog.c:407
+#, c-format
+msgid "not a reflog: %s"
+msgstr "ä¸æ˜¯ä¸€ä¸ªå¼•ç”¨æ—¥å¿—:%s"
+
+#: reflog.c:410
+#, c-format
+msgid "no reflog for '%s'"
+msgstr "没有 '%s' 的引用日志"
+
+#: refs.c:262
#, c-format
msgid "%s does not point to a valid object!"
msgstr "%s 没有指å‘一个有效的对象ï¼"
-#: refs.c:563
+#: refs.c:561
#, c-format
msgid ""
"Using '%s' as the name for the initial branch. This default branch name\n"
@@ -6997,81 +7212,81 @@ msgstr ""
"\n"
"\tgit branch -m <name>\n"
-#: refs.c:585
+#: refs.c:583
#, c-format
msgid "could not retrieve `%s`"
msgstr "æ— æ³•èŽ·å– `%s`"
-#: refs.c:595
+#: refs.c:593
#, c-format
msgid "invalid branch name: %s = %s"
msgstr "无效的分支å:%s = %s"
-#: refs.c:674
+#: refs.c:670
#, c-format
msgid "ignoring dangling symref %s"
msgstr "忽略悬空符å·å¼•ç”¨ %s"
-#: refs.c:925
+#: refs.c:919
#, c-format
msgid "log for ref %s has gap after %s"
msgstr "引用 %s 的日志在 %s 之åŽæœ‰ç¼ºå£"
-#: refs.c:932
+#: refs.c:926
#, c-format
msgid "log for ref %s unexpectedly ended on %s"
msgstr "引用 %s 的日志æ„外终止于 %s "
-#: refs.c:997
+#: refs.c:991
#, c-format
msgid "log for %s is empty"
msgstr "%s 的日志为空"
-#: refs.c:1090
+#: refs.c:1086
#, c-format
msgid "refusing to update ref with bad name '%s'"
msgstr "æ‹’ç»æ›´æ–°æœ‰é”™è¯¯å称 '%s' 的引用"
-#: refs.c:1168
+#: refs.c:1164
#, c-format
msgid "update_ref failed for ref '%s': %s"
msgstr "对引用 '%s' 执行 update_ref 失败:%s"
-#: refs.c:2067
+#: refs.c:2059
#, c-format
msgid "multiple updates for ref '%s' not allowed"
msgstr "ä¸å…许对引用 '%s' 多次更新"
-#: refs.c:2150
+#: refs.c:2145
msgid "ref updates forbidden inside quarantine environment"
msgstr "在隔离环境中ç¦æ­¢æ›´æ–°å¼•ç”¨"
-#: refs.c:2161
+#: refs.c:2156
msgid "ref updates aborted by hook"
msgstr "引用更新被钩å­ä¸­æ­¢"
-#: refs.c:2269 refs.c:2299
+#: refs.c:2264 refs.c:2294
#, c-format
msgid "'%s' exists; cannot create '%s'"
msgstr "'%s' 已存在,无法创建 '%s'"
-#: refs.c:2275 refs.c:2310
+#: refs.c:2270 refs.c:2305
#, c-format
msgid "cannot process '%s' and '%s' at the same time"
msgstr "无法åŒæ—¶å¤„ç† '%s' å’Œ '%s'"
-#: refs/files-backend.c:1267
+#: refs/files-backend.c:1295
#, c-format
msgid "could not remove reference %s"
msgstr "无法删除引用 %s"
-#: refs/files-backend.c:1281 refs/packed-backend.c:1549
-#: refs/packed-backend.c:1559
+#: refs/files-backend.c:1310 refs/packed-backend.c:1565
+#: refs/packed-backend.c:1575
#, c-format
msgid "could not delete reference %s: %s"
msgstr "无法删除引用 %s:%s"
-#: refs/files-backend.c:1284 refs/packed-backend.c:1562
+#: refs/files-backend.c:1313 refs/packed-backend.c:1578
#, c-format
msgid "could not delete references: %s"
msgstr "无法删除引用:%s"
@@ -7094,37 +7309,37 @@ msgstr "æ供了一个以上的 receivepack,使用第一个"
msgid "more than one uploadpack given, using the first"
msgstr "æ供了一个以上的 uploadpack,使用第一个"
-#: remote.c:699
+#: remote.c:698
#, c-format
msgid "Cannot fetch both %s and %s to %s"
msgstr "ä¸èƒ½åŒæ—¶èŽ·å– %s å’Œ %s 至 %s"
-#: remote.c:703
+#: remote.c:702
#, c-format
msgid "%s usually tracks %s, not %s"
msgstr "%s 通常跟踪 %sï¼Œè€Œéž %s"
-#: remote.c:707
+#: remote.c:706
#, c-format
msgid "%s tracks both %s and %s"
msgstr "%s åŒæ—¶è·Ÿè¸ª %s å’Œ %s"
-#: remote.c:775
+#: remote.c:774
#, c-format
msgid "key '%s' of pattern had no '*'"
msgstr "模å¼çš„é”® '%s' 没有 '*'"
-#: remote.c:785
+#: remote.c:784
#, c-format
msgid "value '%s' of pattern has no '*'"
msgstr "模å¼çš„值 '%s' 没有 '*'"
-#: remote.c:1192
+#: remote.c:1191
#, c-format
msgid "src refspec %s does not match any"
msgstr "æºå¼•ç”¨è§„æ ¼ %s 没有匹é…"
-#: remote.c:1197
+#: remote.c:1196
#, c-format
msgid "src refspec %s matches more than one"
msgstr "æºå¼•ç”¨è§„æ ¼ %s 匹é…超过一个"
@@ -7133,7 +7348,7 @@ msgstr "æºå¼•ç”¨è§„æ ¼ %s 匹é…超过一个"
#. <remote> <src>:<dst>" push, and "being pushed ('%s')" is
#. the <src>.
#.
-#: remote.c:1212
+#: remote.c:1211
#, c-format
msgid ""
"The destination you provided is not a full refname (i.e.,\n"
@@ -7155,7 +7370,7 @@ msgstr ""
"\n"
"都ä¸è¡Œï¼Œæ‰€ä»¥æˆ‘们已放弃。您必须给出完整的引用。"
-#: remote.c:1232
+#: remote.c:1231
#, c-format
msgid ""
"The <src> part of the refspec is a commit object.\n"
@@ -7165,7 +7380,7 @@ msgstr ""
"引用规格的 <src> 是一个æ交对象。您是想创建一个新的分支而å‘\n"
"'%s:refs/heads/%s' 推é€ä¹ˆï¼Ÿ"
-#: remote.c:1237
+#: remote.c:1236
#, c-format
msgid ""
"The <src> part of the refspec is a tag object.\n"
@@ -7175,7 +7390,7 @@ msgstr ""
"引用规格的 <src> 是一个标签对象。您是想创建一个新的标签而å‘\n"
"'%s:refs/tags/%s' 推é€ä¹ˆï¼Ÿ"
-#: remote.c:1242
+#: remote.c:1241
#, c-format
msgid ""
"The <src> part of the refspec is a tree object.\n"
@@ -7185,7 +7400,7 @@ msgstr ""
"引用规格的 <src> 是一个树对象。您是想为这个树对象创建标签而å‘\n"
"'%s:refs/tags/%s' 推é€ä¹ˆï¼Ÿ"
-#: remote.c:1247
+#: remote.c:1246
#, c-format
msgid ""
"The <src> part of the refspec is a blob object.\n"
@@ -7195,114 +7410,114 @@ msgstr ""
"引用规格的 <src> 是一个数æ®å¯¹è±¡ã€‚您是想为这个数æ®å¯¹è±¡åˆ›å»ºæ ‡ç­¾è€Œå‘\n"
"'%s:refs/tags/%s' 推é€ä¹ˆï¼Ÿ"
-#: remote.c:1283
+#: remote.c:1282
#, c-format
msgid "%s cannot be resolved to branch"
msgstr "%s 无法被解æžä¸ºåˆ†æ”¯"
-#: remote.c:1294
+#: remote.c:1293
#, c-format
msgid "unable to delete '%s': remote ref does not exist"
msgstr "无法删除 '%s':远程引用ä¸å­˜åœ¨"
-#: remote.c:1306
+#: remote.c:1305
#, c-format
msgid "dst refspec %s matches more than one"
msgstr "目标引用规格 %s 匹é…超过一个"
-#: remote.c:1313
+#: remote.c:1312
#, c-format
msgid "dst ref %s receives from more than one src"
msgstr "目标引用 %s 接收超过一个æº"
-#: remote.c:1834 remote.c:1941
+#: remote.c:1833 remote.c:1940
msgid "HEAD does not point to a branch"
msgstr "HEAD 没有指å‘一个分支"
-#: remote.c:1843
+#: remote.c:1842
#, c-format
msgid "no such branch: '%s'"
msgstr "没有此分支:'%s'"
-#: remote.c:1846
+#: remote.c:1845
#, c-format
msgid "no upstream configured for branch '%s'"
msgstr "尚未给分支 '%s' 设置上游"
-#: remote.c:1852
+#: remote.c:1851
#, c-format
msgid "upstream branch '%s' not stored as a remote-tracking branch"
msgstr "上游分支 '%s' 没有存储为一个远程跟踪分支"
-#: remote.c:1867
+#: remote.c:1866
#, c-format
msgid "push destination '%s' on remote '%s' has no local tracking branch"
msgstr "推é€ç›®æ ‡ '%s' 至远程 '%s' 没有本地跟踪分支"
-#: remote.c:1882
+#: remote.c:1881
#, c-format
msgid "branch '%s' has no remote for pushing"
msgstr "分支 '%s' 没有设置è¦æŽ¨é€çš„远程æœåŠ¡å™¨"
-#: remote.c:1892
+#: remote.c:1891
#, c-format
msgid "push refspecs for '%s' do not include '%s'"
msgstr "å‘ '%s' 推é€å¼•ç”¨è§„æ ¼æœªåŒ…å« '%s'"
-#: remote.c:1905
+#: remote.c:1904
msgid "push has no destination (push.default is 'nothing')"
msgstr "推é€æ— ç›®æ ‡ï¼ˆpush.default 是 'nothing')"
-#: remote.c:1927
+#: remote.c:1926
msgid "cannot resolve 'simple' push to a single destination"
msgstr "æ— æ³•è§£æž 'simple' 推é€è‡³ä¸€ä¸ªå•ç‹¬çš„目标"
-#: remote.c:2060
+#: remote.c:2059
#, c-format
msgid "couldn't find remote ref %s"
msgstr "无法找到远程引用 %s"
-#: remote.c:2073
+#: remote.c:2072
#, c-format
msgid "* Ignoring funny ref '%s' locally"
msgstr "* 在本地忽略å¯ç¬‘的引用 '%s'"
-#: remote.c:2236
+#: remote.c:2235
#, c-format
msgid "Your branch is based on '%s', but the upstream is gone.\n"
msgstr "您的分支基于 '%s',但此上游分支已ç»ä¸å­˜åœ¨ã€‚\n"
-#: remote.c:2240
+#: remote.c:2239
msgid " (use \"git branch --unset-upstream\" to fixup)\n"
msgstr " (使用 \"git branch --unset-upstream\" æ¥ä¿®å¤ï¼‰\n"
-#: remote.c:2243
+#: remote.c:2242
#, c-format
msgid "Your branch is up to date with '%s'.\n"
msgstr "您的分支与上游分支 '%s' 一致。\n"
-#: remote.c:2247
+#: remote.c:2246
#, c-format
msgid "Your branch and '%s' refer to different commits.\n"
msgstr "您的分支和 '%s' 指å‘ä¸åŒçš„æ交。\n"
-#: remote.c:2250
+#: remote.c:2249
#, c-format
msgid " (use \"%s\" for details)\n"
msgstr " (使用 \"%s\" 查看详情)\n"
-#: remote.c:2254
+#: remote.c:2253
#, c-format
msgid "Your branch is ahead of '%s' by %d commit.\n"
msgid_plural "Your branch is ahead of '%s' by %d commits.\n"
msgstr[0] "您的分支领先 '%s' å…± %d 个æ交。\n"
msgstr[1] "您的分支领先 '%s' å…± %d 个æ交。\n"
-#: remote.c:2260
+#: remote.c:2259
msgid " (use \"git push\" to publish your local commits)\n"
msgstr " (使用 \"git push\" æ¥å‘布您的本地æ交)\n"
-#: remote.c:2263
+#: remote.c:2262
#, c-format
msgid "Your branch is behind '%s' by %d commit, and can be fast-forwarded.\n"
msgid_plural ""
@@ -7311,11 +7526,11 @@ msgstr[0] "您的分支è½åŽ '%s' å…± %d 个æ交,并且å¯ä»¥å¿«è¿›ã€‚\n"
msgstr[1] "您的分支è½åŽ '%s' å…± %d 个æ交,并且å¯ä»¥å¿«è¿›ã€‚\n"
# 译者:注æ„ä¿æŒå‰å¯¼ç©ºæ ¼
-#: remote.c:2271
+#: remote.c:2270
msgid " (use \"git pull\" to update your local branch)\n"
msgstr " (使用 \"git pull\" æ¥æ›´æ–°æ‚¨çš„本地分支)\n"
-#: remote.c:2274
+#: remote.c:2273
#, c-format
msgid ""
"Your branch and '%s' have diverged,\n"
@@ -7331,11 +7546,11 @@ msgstr[1] ""
"并且分别有 %d å’Œ %d 处ä¸åŒçš„æ交。\n"
# 译者:注æ„ä¿æŒå‰å¯¼ç©ºæ ¼
-#: remote.c:2284
+#: remote.c:2283
msgid " (use \"git pull\" to merge the remote branch into yours)\n"
msgstr " (使用 \"git pull\" æ¥åˆå¹¶è¿œç¨‹åˆ†æ”¯ï¼‰\n"
-#: remote.c:2476
+#: remote.c:2475
#, c-format
msgid "cannot parse expected object name '%s'"
msgstr "无法解æžæœŸæœ›çš„对象å '%s'"
@@ -7373,104 +7588,108 @@ msgstr "写入 '%s' (%s) 时出错"
msgid "failed to flush '%s'"
msgstr "无法刷新 '%s'"
-#: rerere.c:487 rerere.c:1023
+#: rerere.c:487 rerere.c:1024
#, c-format
msgid "could not parse conflict hunks in '%s'"
msgstr "ä¸èƒ½è§£æž '%s' 中的冲çªå—"
-#: rerere.c:668
+#: rerere.c:669
#, c-format
msgid "failed utime() on '%s'"
msgstr "在 '%s' 上调用 utime() 失败"
-#: rerere.c:678
+#: rerere.c:679
#, c-format
msgid "writing '%s' failed"
msgstr "写入 '%s' 失败"
-#: rerere.c:698
+#: rerere.c:699
#, c-format
msgid "Staged '%s' using previous resolution."
msgstr "使用之å‰çš„解决方案暂存 '%s'。"
-#: rerere.c:737
+#: rerere.c:738
#, c-format
msgid "Recorded resolution for '%s'."
msgstr "已记录 '%s' 的解决方案。"
-#: rerere.c:772
+#: rerere.c:773
#, c-format
msgid "Resolved '%s' using previous resolution."
msgstr "使用之å‰çš„解决方案解决 '%s'。"
-#: rerere.c:787
+#: rerere.c:788
#, c-format
msgid "cannot unlink stray '%s'"
msgstr "ä¸èƒ½åˆ é™¤ stray '%s'"
-#: rerere.c:791
+#: rerere.c:792
#, c-format
msgid "Recorded preimage for '%s'"
msgstr "为 '%s' 记录 preimage"
-#: rerere.c:865 submodule.c:2121 builtin/log.c:2017
-#: builtin/submodule--helper.c:1777 builtin/submodule--helper.c:1820
+#: rerere.c:866 submodule.c:2290 builtin/log.c:2042
+#: builtin/submodule--helper.c:1786 builtin/submodule--helper.c:1833
#, c-format
msgid "could not create directory '%s'"
msgstr "ä¸èƒ½åˆ›å»ºç›®å½• '%s'"
-#: rerere.c:1041
+#: rerere.c:1042
#, c-format
msgid "failed to update conflicted state in '%s'"
msgstr "无法更新 '%s' 中的冲çªçŠ¶æ€"
-#: rerere.c:1052 rerere.c:1059
+#: rerere.c:1053 rerere.c:1060
#, c-format
msgid "no remembered resolution for '%s'"
msgstr "没有为 '%s' 记忆的解决方案"
-#: rerere.c:1061
+#: rerere.c:1062
#, c-format
msgid "cannot unlink '%s'"
msgstr "ä¸èƒ½åˆ é™¤ '%s'"
-#: rerere.c:1071
+#: rerere.c:1072
#, c-format
msgid "Updated preimage for '%s'"
msgstr "已为 '%s' 更新 preimage"
-#: rerere.c:1080
+#: rerere.c:1081
#, c-format
msgid "Forgot resolution for '%s'\n"
msgstr "忘记 '%s' 的解决方案\n"
-#: rerere.c:1191
+#: rerere.c:1192
msgid "unable to open rr-cache directory"
msgstr "ä¸èƒ½æ‰“å¼€ rr-cache 目录"
-#: reset.c:42
+#: reset.c:112
msgid "could not determine HEAD revision"
msgstr "ä¸èƒ½ç¡®å®š HEAD 版本"
-#: reset.c:70 reset.c:76 sequencer.c:3700
+#: reset.c:141 reset.c:147 sequencer.c:3696
#, c-format
msgid "failed to find tree of %s"
msgstr "无法找到 %s 指å‘çš„æ ‘"
-#: revision.c:2347
+#: revision.c:2358
msgid "--unpacked=<packfile> no longer supported"
msgstr "ä¸å†æ”¯æŒ --unpacked=<packfile>"
-#: revision.c:2686
+#: revision.c:2712
msgid "your current branch appears to be broken"
msgstr "您的当å‰åˆ†æ”¯å¥½åƒè¢«æŸå"
-#: revision.c:2689
+#: revision.c:2715
#, c-format
msgid "your current branch '%s' does not have any commits yet"
msgstr "您的当å‰åˆ†æ”¯ '%s' 尚无任何æ交"
-#: revision.c:2891
+#: revision.c:2901
+msgid "object filtering requires --objects"
+msgstr "å¯¹è±¡è¿‡æ»¤éœ€è¦ --objects"
+
+#: revision.c:2918
msgid "-L does not yet support diff formats besides -p and -s"
msgstr "-L å°šä¸æ”¯æŒ -p å’Œ -s 之外的差异格å¼"
@@ -7537,7 +7756,7 @@ msgstr "无效的æ交信æ¯æ¸…ç†æ¨¡å¼ '%s'"
msgid "could not delete '%s'"
msgstr "无法删除 '%s'"
-#: sequencer.c:345 sequencer.c:4751 builtin/rebase.c:563 builtin/rebase.c:1297
+#: sequencer.c:345 sequencer.c:4724 builtin/rebase.c:564 builtin/rebase.c:1326
#: builtin/rm.c:409
#, c-format
msgid "could not remove '%s'"
@@ -7596,13 +7815,13 @@ msgstr ""
"\"git revert --skip\" 命令跳过这个æ交。如果想è¦ç»ˆæ­¢æ‰§è¡Œå¹¶å›žåˆ°\n"
"执行 \"git revert\" 之å‰çš„状æ€ï¼Œæ‰§è¡Œ \"git revert --abort\"。"
-#: sequencer.c:448 sequencer.c:3292
+#: sequencer.c:448 sequencer.c:3288
#, c-format
msgid "could not lock '%s'"
msgstr "ä¸èƒ½é”定 '%s'"
-#: sequencer.c:450 sequencer.c:3091 sequencer.c:3296 sequencer.c:3310
-#: sequencer.c:3561 sequencer.c:5618 strbuf.c:1188 wrapper.c:639
+#: sequencer.c:450 sequencer.c:3087 sequencer.c:3292 sequencer.c:3306
+#: sequencer.c:3557 sequencer.c:5591 strbuf.c:1189 wrapper.c:715
#, c-format
msgid "could not write to '%s'"
msgstr "ä¸èƒ½å†™å…¥ '%s'"
@@ -7612,14 +7831,14 @@ msgstr "ä¸èƒ½å†™å…¥ '%s'"
msgid "could not write eol to '%s'"
msgstr "ä¸èƒ½å°†æ¢è¡Œç¬¦å†™å…¥ '%s'"
-#: sequencer.c:460 sequencer.c:3096 sequencer.c:3298 sequencer.c:3312
-#: sequencer.c:3569
+#: sequencer.c:460 sequencer.c:3092 sequencer.c:3294 sequencer.c:3308
+#: sequencer.c:3565
#, c-format
msgid "failed to finalize '%s'"
msgstr "æ— æ³•å®Œæˆ '%s'"
-#: sequencer.c:473 sequencer.c:1934 sequencer.c:3116 sequencer.c:3551
-#: sequencer.c:3679 builtin/am.c:289 builtin/commit.c:834 builtin/merge.c:1148
+#: sequencer.c:473 sequencer.c:1930 sequencer.c:3112 sequencer.c:3547
+#: sequencer.c:3675 builtin/am.c:290 builtin/commit.c:837 builtin/merge.c:1154
#, c-format
msgid "could not read '%s'"
msgstr "ä¸èƒ½è¯»å– '%s'"
@@ -7638,7 +7857,7 @@ msgstr "æ交您的修改或贮è—åŽå†ç»§ç»­ã€‚"
msgid "%s: fast-forward"
msgstr "%s:快进"
-#: sequencer.c:574 builtin/tag.c:614
+#: sequencer.c:574 builtin/tag.c:615
#, c-format
msgid "Invalid cleanup mode %s"
msgstr "无效的清ç†æ¨¡å¼ %s"
@@ -7669,8 +7888,8 @@ msgstr "在 '%.*s' 中没有 key"
msgid "unable to dequote value of '%s'"
msgstr "无法为 '%s' 的值去引å·"
-#: sequencer.c:841 wrapper.c:209 wrapper.c:379 builtin/am.c:756
-#: builtin/am.c:848 builtin/rebase.c:694
+#: sequencer.c:841 wrapper.c:219 wrapper.c:389 builtin/am.c:757
+#: builtin/am.c:849 builtin/rebase.c:699
#, c-format
msgid "could not open '%s' for reading"
msgstr "无法打开 '%s' 进行读å–"
@@ -7784,350 +8003,345 @@ msgstr ""
"\n"
" git commit --amend --reset-author\n"
-#: sequencer.c:1288
+#: sequencer.c:1287
msgid "couldn't look up newly created commit"
msgstr "无法找到新创建的æ交"
-#: sequencer.c:1290
+#: sequencer.c:1289
msgid "could not parse newly created commit"
msgstr "ä¸èƒ½è§£æžæ–°åˆ›å»ºçš„æ交"
-#: sequencer.c:1339
+#: sequencer.c:1336
msgid "unable to resolve HEAD after creating commit"
msgstr "创建æ交åŽï¼Œä¸èƒ½è§£æž HEAD"
-#: sequencer.c:1342
+#: sequencer.c:1338
msgid "detached HEAD"
msgstr "分离头指针"
# 译者:中文字符串拼接,å¯åˆ é™¤å‰å¯¼ç©ºæ ¼
-#: sequencer.c:1346
+#: sequencer.c:1342
msgid " (root-commit)"
msgstr "(根æ交)"
-#: sequencer.c:1367
+#: sequencer.c:1363
msgid "could not parse HEAD"
msgstr "ä¸èƒ½è§£æž HEAD"
-#: sequencer.c:1369
+#: sequencer.c:1365
#, c-format
msgid "HEAD %s is not a commit!"
msgstr "HEAD %s ä¸æ˜¯ä¸€ä¸ªæ交ï¼"
-#: sequencer.c:1373 sequencer.c:1451 builtin/commit.c:1708
+#: sequencer.c:1369 sequencer.c:1447 builtin/commit.c:1707
msgid "could not parse HEAD commit"
msgstr "ä¸èƒ½è§£æž HEAD æ交"
-#: sequencer.c:1429 sequencer.c:2314
+#: sequencer.c:1425 sequencer.c:2310
msgid "unable to parse commit author"
msgstr "ä¸èƒ½è§£æžæ交作者"
-#: sequencer.c:1440 builtin/am.c:1643 builtin/merge.c:710
+#: sequencer.c:1436 builtin/am.c:1644 builtin/merge.c:710
msgid "git write-tree failed to write a tree"
msgstr "git write-tree 无法写入树对象"
-#: sequencer.c:1473 sequencer.c:1593
+#: sequencer.c:1469 sequencer.c:1589
#, c-format
msgid "unable to read commit message from '%s'"
msgstr "ä¸èƒ½ä»Ž '%s' 读å–æ交说明"
-#: sequencer.c:1504 sequencer.c:1536
+#: sequencer.c:1500 sequencer.c:1532
#, c-format
msgid "invalid author identity '%s'"
msgstr "无效的作者身份 '%s'"
-#: sequencer.c:1510
+#: sequencer.c:1506
msgid "corrupt author: missing date information"
msgstr "æŸå的作者:缺失日期信æ¯"
-#: sequencer.c:1549 builtin/am.c:1670 builtin/commit.c:1822 builtin/merge.c:915
-#: builtin/merge.c:940 t/helper/test-fast-rebase.c:78
+#: sequencer.c:1545 builtin/am.c:1671 builtin/commit.c:1821 builtin/merge.c:921
+#: builtin/merge.c:946 t/helper/test-fast-rebase.c:78
msgid "failed to write commit object"
msgstr "无法写æ交对象"
-#: sequencer.c:1576 sequencer.c:4523 t/helper/test-fast-rebase.c:199
+#: sequencer.c:1572 sequencer.c:4496 t/helper/test-fast-rebase.c:199
#: t/helper/test-fast-rebase.c:217
#, c-format
msgid "could not update %s"
msgstr "ä¸èƒ½æ›´æ–° %s"
-#: sequencer.c:1625
+#: sequencer.c:1621
#, c-format
msgid "could not parse commit %s"
msgstr "ä¸èƒ½è§£æžæ交 %s"
-#: sequencer.c:1630
+#: sequencer.c:1626
#, c-format
msgid "could not parse parent commit %s"
msgstr "ä¸èƒ½è§£æžçˆ¶æ交 %s"
-#: sequencer.c:1713 sequencer.c:1994
+#: sequencer.c:1709 sequencer.c:1990
#, c-format
msgid "unknown command: %d"
msgstr "未知命令:%d"
-#: sequencer.c:1755
+#: sequencer.c:1751
msgid "This is the 1st commit message:"
msgstr "这是第一个æ交说明:"
-#: sequencer.c:1756
+#: sequencer.c:1752
#, c-format
msgid "This is the commit message #%d:"
msgstr "这是æ交说明 #%d:"
-#: sequencer.c:1757
+#: sequencer.c:1753
msgid "The 1st commit message will be skipped:"
msgstr "第一个æ交说明将被跳过:"
-#: sequencer.c:1758
+#: sequencer.c:1754
#, c-format
msgid "The commit message #%d will be skipped:"
msgstr "æ交说明 #%d 将被跳过:"
-#: sequencer.c:1759
+#: sequencer.c:1755
#, c-format
msgid "This is a combination of %d commits."
msgstr "这是一个 %d 个æ交的组åˆã€‚"
-#: sequencer.c:1906 sequencer.c:1963
+#: sequencer.c:1902 sequencer.c:1959
#, c-format
msgid "cannot write '%s'"
msgstr "ä¸èƒ½å†™ '%s'"
-#: sequencer.c:1953
+#: sequencer.c:1949
msgid "need a HEAD to fixup"
msgstr "需è¦ä¸€ä¸ª HEAD æ¥ä¿®å¤"
-#: sequencer.c:1955 sequencer.c:3596
+#: sequencer.c:1951 sequencer.c:3592
msgid "could not read HEAD"
msgstr "ä¸èƒ½è¯»å– HEAD"
-#: sequencer.c:1957
+#: sequencer.c:1953
msgid "could not read HEAD's commit message"
msgstr "ä¸èƒ½è¯»å– HEAD çš„æ交说明"
-#: sequencer.c:1981
+#: sequencer.c:1977
#, c-format
msgid "could not read commit message of %s"
msgstr "ä¸èƒ½è¯»å– %s çš„æ交说明"
-#: sequencer.c:2091
+#: sequencer.c:2087
msgid "your index file is unmerged."
msgstr "您的索引文件未完æˆåˆå¹¶ã€‚"
-#: sequencer.c:2098
+#: sequencer.c:2094
msgid "cannot fixup root commit"
msgstr "ä¸èƒ½ä¿®å¤æ ¹æ交"
-#: sequencer.c:2117
+#: sequencer.c:2113
#, c-format
msgid "commit %s is a merge but no -m option was given."
msgstr "æ交 %s 是一个åˆå¹¶æ交但未æä¾› -m 选项。"
-#: sequencer.c:2125 sequencer.c:2133
+#: sequencer.c:2121 sequencer.c:2129
#, c-format
msgid "commit %s does not have parent %d"
msgstr "æ交 %s 没有第 %d 个父æ交"
-#: sequencer.c:2139
+#: sequencer.c:2135
#, c-format
msgid "cannot get commit message for %s"
msgstr "ä¸èƒ½å¾—到 %s çš„æ交说明"
#. TRANSLATORS: The first %s will be a "todo" command like
#. "revert" or "pick", the second %s a SHA1.
-#: sequencer.c:2158
+#: sequencer.c:2154
#, c-format
msgid "%s: cannot parse parent commit %s"
msgstr "%s:ä¸èƒ½è§£æžçˆ¶æ交 %s"
-#: sequencer.c:2224
+#: sequencer.c:2220
#, c-format
msgid "could not rename '%s' to '%s'"
msgstr "ä¸èƒ½å°† '%s' é‡å‘½å为 '%s'"
-#: sequencer.c:2284
+#: sequencer.c:2280
#, c-format
msgid "could not revert %s... %s"
msgstr "ä¸èƒ½è¿˜åŽŸ %s... %s"
-#: sequencer.c:2285
+#: sequencer.c:2281
#, c-format
msgid "could not apply %s... %s"
msgstr "ä¸èƒ½åº”用 %s... %s"
-#: sequencer.c:2306
+#: sequencer.c:2302
#, c-format
msgid "dropping %s %s -- patch contents already upstream\n"
msgstr "丢弃 %s %s -- è¡¥ä¸å†…容已在上游\n"
-#: sequencer.c:2364
+#: sequencer.c:2360
#, c-format
msgid "git %s: failed to read the index"
msgstr "git %s:无法读å–索引"
-#: sequencer.c:2372
+#: sequencer.c:2368
#, c-format
msgid "git %s: failed to refresh the index"
msgstr "git %s:无法刷新索引"
-#: sequencer.c:2452
+#: sequencer.c:2448
#, c-format
msgid "%s does not accept arguments: '%s'"
msgstr "%s ä¸æŽ¥å—å‚数:'%s'"
-#: sequencer.c:2461
+#: sequencer.c:2457
#, c-format
msgid "missing arguments for %s"
msgstr "缺少 %s çš„å‚æ•°"
-#: sequencer.c:2504
+#: sequencer.c:2500
#, c-format
msgid "could not parse '%s'"
msgstr "æ— æ³•è§£æž '%s'"
-#: sequencer.c:2565
+#: sequencer.c:2561
#, c-format
msgid "invalid line %d: %.*s"
msgstr "无效行 %d:%.*s"
-#: sequencer.c:2576
+#: sequencer.c:2572
#, c-format
msgid "cannot '%s' without a previous commit"
msgstr "没有父æ交的情况下ä¸èƒ½ '%s'"
-#: sequencer.c:2624 builtin/rebase.c:184
+#: sequencer.c:2620 builtin/rebase.c:185
#, c-format
msgid "could not read '%s'."
msgstr "ä¸èƒ½è¯»å– '%s'。"
-#: sequencer.c:2662
+#: sequencer.c:2658
msgid "cancelling a cherry picking in progress"
msgstr "正在å–消一个进行中的拣选"
-#: sequencer.c:2671
+#: sequencer.c:2667
msgid "cancelling a revert in progress"
msgstr "正在å–消一个进行中的还原"
-#: sequencer.c:2711
+#: sequencer.c:2707
msgid "please fix this using 'git rebase --edit-todo'."
msgstr "请用 'git rebase --edit-todo' æ¥ä¿®æ”¹ã€‚"
-#: sequencer.c:2713
+#: sequencer.c:2709
#, c-format
msgid "unusable instruction sheet: '%s'"
msgstr "ä¸å¯ç”¨çš„指令清å•ï¼š'%s'"
-#: sequencer.c:2718
+#: sequencer.c:2714
msgid "no commits parsed."
msgstr "没有解æžæ交。"
-#: sequencer.c:2729
+#: sequencer.c:2725
msgid "cannot cherry-pick during a revert."
msgstr "ä¸èƒ½åœ¨å›žé€€ä¸­æ‰§è¡Œæ‹£é€‰ã€‚"
-#: sequencer.c:2731
+#: sequencer.c:2727
msgid "cannot revert during a cherry-pick."
msgstr "ä¸èƒ½åœ¨æ‹£é€‰ä¸­æ‰§è¡Œå›žé€€ã€‚"
-#: sequencer.c:2809
-#, c-format
-msgid "invalid value for %s: %s"
-msgstr "%s 的值无效:%s"
-
-#: sequencer.c:2918
+#: sequencer.c:2914
msgid "unusable squash-onto"
msgstr "ä¸å¯ç”¨çš„ squash-onto"
-#: sequencer.c:2938
+#: sequencer.c:2934
#, c-format
msgid "malformed options sheet: '%s'"
msgstr "æ ¼å¼é”™è¯¯çš„选项清å•ï¼š'%s'"
-#: sequencer.c:3033 sequencer.c:4902
+#: sequencer.c:3029 sequencer.c:4875
msgid "empty commit set passed"
msgstr "æ供了空的æ交集"
-#: sequencer.c:3050
+#: sequencer.c:3046
msgid "revert is already in progress"
msgstr "一个还原æ“作已在进行"
-#: sequencer.c:3052
+#: sequencer.c:3048
#, c-format
msgid "try \"git revert (--continue | %s--abort | --quit)\""
msgstr "å°è¯• \"git revert (--continue | %s--abort | --quit)\""
-#: sequencer.c:3055
+#: sequencer.c:3051
msgid "cherry-pick is already in progress"
msgstr "拣选æ“作已在进行"
-#: sequencer.c:3057
+#: sequencer.c:3053
#, c-format
msgid "try \"git cherry-pick (--continue | %s--abort | --quit)\""
msgstr "å°è¯• \"git cherry-pick (--continue | %s--abort | --quit)\""
-#: sequencer.c:3071
+#: sequencer.c:3067
#, c-format
msgid "could not create sequencer directory '%s'"
msgstr "ä¸èƒ½åˆ›å»ºåºåˆ—目录 '%s'"
-#: sequencer.c:3086
+#: sequencer.c:3082
msgid "could not lock HEAD"
msgstr "ä¸èƒ½é”定 HEAD"
-#: sequencer.c:3146 sequencer.c:4612
+#: sequencer.c:3142 sequencer.c:4585
msgid "no cherry-pick or revert in progress"
msgstr "拣选或还原æ“作并未进行"
-#: sequencer.c:3148 sequencer.c:3159
+#: sequencer.c:3144 sequencer.c:3155
msgid "cannot resolve HEAD"
msgstr "ä¸èƒ½è§£æž HEAD"
-#: sequencer.c:3150 sequencer.c:3194
+#: sequencer.c:3146 sequencer.c:3190
msgid "cannot abort from a branch yet to be born"
msgstr "ä¸èƒ½ä»Žå°šæœªå»ºç«‹çš„分支终止"
-#: sequencer.c:3180 builtin/fetch.c:1004 builtin/fetch.c:1416
-#: builtin/grep.c:772
+#: sequencer.c:3176 builtin/fetch.c:1030 builtin/fetch.c:1457
+#: builtin/grep.c:774
#, c-format
msgid "cannot open '%s'"
msgstr "ä¸èƒ½æ‰“å¼€ '%s'"
-#: sequencer.c:3182
+#: sequencer.c:3178
#, c-format
msgid "cannot read '%s': %s"
msgstr "ä¸èƒ½è¯»å– '%s':%s"
-#: sequencer.c:3183
+#: sequencer.c:3179
msgid "unexpected end of file"
msgstr "æ„外的文件结æŸ"
-#: sequencer.c:3189
+#: sequencer.c:3185
#, c-format
msgid "stored pre-cherry-pick HEAD file '%s' is corrupt"
msgstr "ä¿å­˜æ‹£é€‰æ交å‰çš„ HEAD 文件 '%s' æŸå"
-#: sequencer.c:3200
+#: sequencer.c:3196
msgid "You seem to have moved HEAD. Not rewinding, check your HEAD!"
msgstr "您好åƒç§»åŠ¨äº† HEAD。未能回退,检查您的 HEADï¼"
-#: sequencer.c:3241
+#: sequencer.c:3237
msgid "no revert in progress"
msgstr "没有正在进行的还原"
-#: sequencer.c:3250
+#: sequencer.c:3246
msgid "no cherry-pick in progress"
msgstr "没有正在进行的拣选"
-#: sequencer.c:3260
+#: sequencer.c:3256
msgid "failed to skip the commit"
msgstr "无法跳过这个æ交"
-#: sequencer.c:3267
+#: sequencer.c:3263
msgid "there is nothing to skip"
msgstr "没有è¦è·³è¿‡çš„"
-#: sequencer.c:3270
+#: sequencer.c:3266
#, c-format
msgid ""
"have you committed already?\n"
@@ -8136,16 +8350,16 @@ msgstr ""
"您已ç»æ交了么?\n"
"试试 \"git %s --continue\""
-#: sequencer.c:3432 sequencer.c:4503
+#: sequencer.c:3428 sequencer.c:4476
msgid "cannot read HEAD"
msgstr "ä¸èƒ½è¯»å– HEAD"
-#: sequencer.c:3449
+#: sequencer.c:3445
#, c-format
msgid "unable to copy '%s' to '%s'"
msgstr "æ— æ³•æ‹·è´ '%s' 至 '%s'"
-#: sequencer.c:3457
+#: sequencer.c:3453
#, c-format
msgid ""
"You can amend the commit now, with\n"
@@ -8164,27 +8378,27 @@ msgstr ""
"\n"
" git rebase --continue\n"
-#: sequencer.c:3467
+#: sequencer.c:3463
#, c-format
msgid "Could not apply %s... %.*s"
msgstr "ä¸èƒ½åº”用 %s... %.*s"
-#: sequencer.c:3474
+#: sequencer.c:3470
#, c-format
msgid "Could not merge %.*s"
msgstr "ä¸èƒ½åˆå¹¶ %.*s"
-#: sequencer.c:3488 sequencer.c:3492 builtin/difftool.c:633
+#: sequencer.c:3484 sequencer.c:3488 builtin/difftool.c:633
#, c-format
msgid "could not copy '%s' to '%s'"
msgstr "ä¸èƒ½æ‹·è´ '%s' 至 '%s'"
-#: sequencer.c:3503
+#: sequencer.c:3499
#, c-format
msgid "Executing: %s\n"
msgstr "正在执行:%s\n"
-#: sequencer.c:3514
+#: sequencer.c:3510
#, c-format
msgid ""
"execution failed: %s\n"
@@ -8199,11 +8413,11 @@ msgstr ""
" git rebase --continue\n"
"\n"
-#: sequencer.c:3520
+#: sequencer.c:3516
msgid "and made changes to the index and/or the working tree\n"
msgstr "并且修改索引和/或工作区\n"
-#: sequencer.c:3526
+#: sequencer.c:3522
#, c-format
msgid ""
"execution succeeded: %s\n"
@@ -8220,90 +8434,90 @@ msgstr ""
" git rebase --continue\n"
"\n"
-#: sequencer.c:3586
+#: sequencer.c:3582
#, c-format
msgid "illegal label name: '%.*s'"
msgstr "éžæ³•çš„标签å称:'%.*s'"
-#: sequencer.c:3659
+#: sequencer.c:3655
msgid "writing fake root commit"
msgstr "写伪根æ交"
-#: sequencer.c:3664
+#: sequencer.c:3660
msgid "writing squash-onto"
msgstr "写入 squash-onto"
-#: sequencer.c:3743
+#: sequencer.c:3739
#, c-format
msgid "could not resolve '%s'"
msgstr "æ— æ³•è§£æž '%s'"
-#: sequencer.c:3775
+#: sequencer.c:3771
msgid "cannot merge without a current revision"
msgstr "没有当å‰ç‰ˆæœ¬ä¸èƒ½åˆå¹¶"
-#: sequencer.c:3797
+#: sequencer.c:3793
#, c-format
msgid "unable to parse '%.*s'"
msgstr "æ— æ³•è§£æž '%.*s'"
-#: sequencer.c:3806
+#: sequencer.c:3802
#, c-format
msgid "nothing to merge: '%.*s'"
msgstr "æ— å¯ç”¨åˆå¹¶ï¼š'%.*s'"
-#: sequencer.c:3818
+#: sequencer.c:3814
msgid "octopus merge cannot be executed on top of a [new root]"
msgstr "ç« é±¼åˆå¹¶ä¸èƒ½åœ¨ä¸€ä¸ªæ–°çš„æ ¹æ交上执行"
-#: sequencer.c:3873
+#: sequencer.c:3869
#, c-format
msgid "could not get commit message of '%s'"
msgstr "ä¸èƒ½èŽ·å– '%s' çš„æ交说明"
-#: sequencer.c:4019
+#: sequencer.c:4013
#, c-format
msgid "could not even attempt to merge '%.*s'"
msgstr "甚至ä¸èƒ½å°è¯•åˆå¹¶ '%.*s'"
-#: sequencer.c:4035
+#: sequencer.c:4029
msgid "merge: Unable to write new index file"
msgstr "åˆå¹¶ï¼šæ— æ³•å†™å…¥æ–°ç´¢å¼•æ–‡ä»¶"
-#: sequencer.c:4116
+#: sequencer.c:4110
msgid "Cannot autostash"
msgstr "无法自动贮è—"
-#: sequencer.c:4119
+#: sequencer.c:4113
#, c-format
msgid "Unexpected stash response: '%s'"
msgstr "æ„外的贮è—å“应:'%s'"
-#: sequencer.c:4125
+#: sequencer.c:4119
#, c-format
msgid "Could not create directory for '%s'"
msgstr "ä¸èƒ½ä¸º '%s' 创建目录"
-#: sequencer.c:4128
+#: sequencer.c:4122
#, c-format
msgid "Created autostash: %s\n"
msgstr "创建了自动贮è—:%s\n"
-#: sequencer.c:4132
+#: sequencer.c:4124
msgid "could not reset --hard"
msgstr "无法硬性é‡ç½®ï¼ˆreset --hard)"
-#: sequencer.c:4157
+#: sequencer.c:4148
#, c-format
msgid "Applied autostash.\n"
msgstr "已应用自动贮è—。\n"
-#: sequencer.c:4169
+#: sequencer.c:4160
#, c-format
msgid "cannot store %s"
msgstr "ä¸èƒ½å­˜å‚¨ %s"
-#: sequencer.c:4172
+#: sequencer.c:4163
#, c-format
msgid ""
"%s\n"
@@ -8314,29 +8528,29 @@ msgstr ""
"您的修改在贮è—区中很安全。\n"
"您å¯ä»¥åœ¨ä»»ä½•æ—¶å€™è¿è¡Œ \"git stash pop\" 或 \"git stash drop\"。\n"
-#: sequencer.c:4177
+#: sequencer.c:4168
msgid "Applying autostash resulted in conflicts."
msgstr "应用自动贮è—导致冲çªã€‚"
-#: sequencer.c:4178
+#: sequencer.c:4169
msgid "Autostash exists; creating a new stash entry."
msgstr "自动贮è—å·²ç»å­˜åœ¨ï¼›æ­£åœ¨åˆ›å»ºä¸€ä¸ªæ–°çš„è´®è—æ¡ç›®ã€‚"
-#: sequencer.c:4252
+#: sequencer.c:4225
msgid "could not detach HEAD"
msgstr "ä¸èƒ½åˆ†ç¦»å¤´æŒ‡é’ˆ"
-#: sequencer.c:4267
+#: sequencer.c:4240
#, c-format
msgid "Stopped at HEAD\n"
msgstr "åœæ­¢åœ¨ HEAD\n"
-#: sequencer.c:4269
+#: sequencer.c:4242
#, c-format
msgid "Stopped at %s\n"
msgstr "åœæ­¢åœ¨ %s\n"
-#: sequencer.c:4301
+#: sequencer.c:4274
#, c-format
msgid ""
"Could not execute the todo command\n"
@@ -8356,58 +8570,58 @@ msgstr ""
" git rebase --edit-todo\n"
" git rebase --continue\n"
-#: sequencer.c:4347
+#: sequencer.c:4320
#, c-format
msgid "Rebasing (%d/%d)%s"
msgstr "正在å˜åŸºï¼ˆ%d/%d)%s"
-#: sequencer.c:4393
+#: sequencer.c:4366
#, c-format
msgid "Stopped at %s... %.*s\n"
msgstr "åœæ­¢åœ¨ %s... %.*s\n"
-#: sequencer.c:4463
+#: sequencer.c:4436
#, c-format
msgid "unknown command %d"
msgstr "未知命令 %d"
-#: sequencer.c:4511
+#: sequencer.c:4484
msgid "could not read orig-head"
msgstr "ä¸èƒ½è¯»å– orig-head"
-#: sequencer.c:4516
+#: sequencer.c:4489
msgid "could not read 'onto'"
msgstr "ä¸èƒ½è¯»å– 'onto'"
-#: sequencer.c:4530
+#: sequencer.c:4503
#, c-format
msgid "could not update HEAD to %s"
msgstr "ä¸èƒ½æ›´æ–° HEAD 为 %s"
-#: sequencer.c:4590
+#: sequencer.c:4563
#, c-format
msgid "Successfully rebased and updated %s.\n"
msgstr "æˆåŠŸå˜åŸºå¹¶æ›´æ–° %s。\n"
-#: sequencer.c:4642
+#: sequencer.c:4615
msgid "cannot rebase: You have unstaged changes."
msgstr "ä¸èƒ½å˜åŸºï¼šæ‚¨æœ‰æœªæš‚存的å˜æ›´ã€‚"
-#: sequencer.c:4651
+#: sequencer.c:4624
msgid "cannot amend non-existing commit"
msgstr "ä¸èƒ½ä¿®è¡¥ä¸å­˜åœ¨çš„æ交"
-#: sequencer.c:4653
+#: sequencer.c:4626
#, c-format
msgid "invalid file: '%s'"
msgstr "无效文件:'%s'"
-#: sequencer.c:4655
+#: sequencer.c:4628
#, c-format
msgid "invalid contents: '%s'"
msgstr "无效内容:'%s'"
-#: sequencer.c:4658
+#: sequencer.c:4631
msgid ""
"\n"
"You have uncommitted changes in your working tree. Please, commit them\n"
@@ -8416,68 +8630,68 @@ msgstr ""
"\n"
"您的工作区中有未æ交的å˜æ›´ã€‚请先æ交然åŽå†æ¬¡è¿è¡Œ 'git rebase --continue'。"
-#: sequencer.c:4694 sequencer.c:4733
+#: sequencer.c:4667 sequencer.c:4706
#, c-format
msgid "could not write file: '%s'"
msgstr "ä¸èƒ½å†™å…¥æ–‡ä»¶ï¼š'%s'"
-#: sequencer.c:4749
+#: sequencer.c:4722
msgid "could not remove CHERRY_PICK_HEAD"
msgstr "ä¸èƒ½åˆ é™¤ CHERRY_PICK_HEAD"
-#: sequencer.c:4759
+#: sequencer.c:4732
msgid "could not commit staged changes."
msgstr "ä¸èƒ½æ交暂存的修改。"
-#: sequencer.c:4879
+#: sequencer.c:4852
#, c-format
msgid "%s: can't cherry-pick a %s"
msgstr "%s:ä¸èƒ½æ‹£é€‰ä¸€ä¸ª%s"
-#: sequencer.c:4883
+#: sequencer.c:4856
#, c-format
msgid "%s: bad revision"
msgstr "%s:错误的版本"
-#: sequencer.c:4918
+#: sequencer.c:4891
msgid "can't revert as initial commit"
msgstr "ä¸èƒ½ä½œä¸ºåˆå§‹æ交回退"
-#: sequencer.c:5189 sequencer.c:5418
+#: sequencer.c:5162 sequencer.c:5391
#, c-format
msgid "skipped previously applied commit %s"
msgstr "跳过了先å‰å·²åº”用的æ交 %s"
-#: sequencer.c:5259 sequencer.c:5434
+#: sequencer.c:5232 sequencer.c:5407
msgid "use --reapply-cherry-picks to include skipped commits"
msgstr "使用 --reapply-cherry-picks æ¥åŒ…括跳过的æ交"
-#: sequencer.c:5405
+#: sequencer.c:5378
msgid "make_script: unhandled options"
msgstr "make_script:有未能处ç†çš„选项"
-#: sequencer.c:5408
+#: sequencer.c:5381
msgid "make_script: error preparing revisions"
msgstr "make_script:准备版本时错误"
-#: sequencer.c:5666 sequencer.c:5683
+#: sequencer.c:5639 sequencer.c:5656
msgid "nothing to do"
msgstr "无事å¯åš"
-#: sequencer.c:5702
+#: sequencer.c:5675
msgid "could not skip unnecessary pick commands"
msgstr "无法跳过ä¸å¿…è¦çš„拣选"
-#: sequencer.c:5802
+#: sequencer.c:5775
msgid "the script was already rearranged."
msgstr "脚本已ç»é‡æ–°ç¼–排。"
-#: setup.c:134
+#: setup.c:135
#, c-format
msgid "'%s' is outside repository at '%s'"
msgstr "'%s' 在ä½äºŽ '%s' 的仓库之外"
-#: setup.c:186
+#: setup.c:187
#, c-format
msgid ""
"%s: no such path in the working tree.\n"
@@ -8486,7 +8700,7 @@ msgstr ""
"%s:工作区中无此路径。\n"
"使用命令 'git <命令> -- <路径>...' æ¥æŒ‡å®šæœ¬åœ°ä¸å­˜åœ¨çš„路径。"
-#: setup.c:199
+#: setup.c:200
#, c-format
msgid ""
"ambiguous argument '%s': unknown revision or path not in the working tree.\n"
@@ -8497,12 +8711,12 @@ msgstr ""
"使用 '--' æ¥åˆ†éš”版本和路径,例如:\n"
"'git <命令> [<版本>...] -- [<文件>...]'"
-#: setup.c:265
+#: setup.c:266
#, c-format
msgid "option '%s' must come before non-option arguments"
msgstr "选项 '%s' 必须在其他éžé€‰é¡¹å‚数之å‰"
-#: setup.c:284
+#: setup.c:285
#, c-format
msgid ""
"ambiguous argument '%s': both revision and filename\n"
@@ -8513,100 +8727,100 @@ msgstr ""
"使用 '--' æ¥åˆ†éš”版本和路径,例如:\n"
"'git <命令> [<版本>...] -- [<文件>...]'"
-#: setup.c:420
+#: setup.c:421
msgid "unable to set up work tree using invalid config"
msgstr "无法使用无效é…ç½®æ¥åˆ›å»ºå·¥ä½œåŒº"
-#: setup.c:424 builtin/rev-parse.c:895
+#: setup.c:425 builtin/rev-parse.c:895
msgid "this operation must be run in a work tree"
msgstr "该æ“作必须在一个工作区中è¿è¡Œ"
-#: setup.c:722
+#: setup.c:724
#, c-format
msgid "Expected git repo version <= %d, found %d"
msgstr "期望 git 仓库版本 <= %d,å´å¾—到 %d"
-#: setup.c:730
+#: setup.c:732
msgid "unknown repository extension found:"
msgid_plural "unknown repository extensions found:"
msgstr[0] "å‘现未知的仓库扩展:"
msgstr[1] "å‘现未知的仓库扩展:"
-#: setup.c:744
+#: setup.c:746
msgid "repo version is 0, but v1-only extension found:"
msgid_plural "repo version is 0, but v1-only extensions found:"
msgstr[0] "仓库的版本是 0,但是å‘现仅用于 v1 的扩展:"
msgstr[1] "仓库的版本是 0,但是å‘现仅用于 v1 的扩展:"
-#: setup.c:765
+#: setup.c:767
#, c-format
msgid "error opening '%s'"
msgstr "打开 '%s' 出错"
-#: setup.c:767
+#: setup.c:769
#, c-format
msgid "too large to be a .git file: '%s'"
msgstr "文件太大,无法作为 .git 文件:'%s'"
-#: setup.c:769
+#: setup.c:771
#, c-format
msgid "error reading %s"
msgstr "è¯»å– %s 出错"
-#: setup.c:771
+#: setup.c:773
#, c-format
msgid "invalid gitfile format: %s"
msgstr "无效的 gitfile æ ¼å¼ï¼š%s"
-#: setup.c:773
+#: setup.c:775
#, c-format
msgid "no path in gitfile: %s"
msgstr "在 gitfile 中没有路径:%s"
-#: setup.c:775
+#: setup.c:777
#, c-format
msgid "not a git repository: %s"
msgstr "ä¸æ˜¯ git 仓库:%s"
-#: setup.c:877
+#: setup.c:879
#, c-format
msgid "'$%s' too big"
msgstr "'$%s' 太大"
-#: setup.c:891
+#: setup.c:893
#, c-format
msgid "not a git repository: '%s'"
msgstr "ä¸æ˜¯ git 仓库:'%s'"
-#: setup.c:920 setup.c:922 setup.c:953
+#: setup.c:922 setup.c:924 setup.c:955
#, c-format
msgid "cannot chdir to '%s'"
msgstr "ä¸èƒ½åˆ‡æ¢ç›®å½•åˆ° '%s'"
-#: setup.c:925 setup.c:981 setup.c:991 setup.c:1030 setup.c:1038
+#: setup.c:927 setup.c:983 setup.c:993 setup.c:1032 setup.c:1040
msgid "cannot come back to cwd"
msgstr "无法返回当å‰å·¥ä½œç›®å½•"
-#: setup.c:1052
+#: setup.c:1054
#, c-format
msgid "failed to stat '%*s%s%s'"
msgstr "æ— æ³•èŽ·å– '%*s%s%s' 状æ€ï¼ˆstat)"
-#: setup.c:1295
+#: setup.c:1338
msgid "Unable to read current working directory"
msgstr "ä¸èƒ½è¯»å–当å‰å·¥ä½œç›®å½•"
-#: setup.c:1304 setup.c:1310
+#: setup.c:1347 setup.c:1353
#, c-format
msgid "cannot change to '%s'"
msgstr "ä¸èƒ½åˆ‡æ¢åˆ° '%s'"
-#: setup.c:1315
+#: setup.c:1358
#, c-format
msgid "not a git repository (or any of the parent directories): %s"
msgstr "ä¸æ˜¯ git 仓库(或者任何父目录):%s"
-#: setup.c:1321
+#: setup.c:1364
#, c-format
msgid ""
"not a git repository (or any parent up to mount point %s)\n"
@@ -8615,7 +8829,21 @@ msgstr ""
"ä¸æ˜¯ git 仓库(或者直至挂载点 %s 的任何父目录)\n"
"åœæ­¢åœ¨æ–‡ä»¶ç³»ç»Ÿè¾¹ç•Œï¼ˆæœªè®¾ç½® GIT_DISCOVERY_ACROSS_FILESYSTEM)。"
-#: setup.c:1446
+#: setup.c:1374
+#, c-format
+msgid ""
+"unsafe repository ('%s' is owned by someone else)\n"
+"To add an exception for this directory, call:\n"
+"\n"
+"\tgit config --global --add safe.directory %s"
+msgstr ""
+"仓库ä¸å®‰å…¨ï¼ˆ'%s' 的所有者是其他人)\n"
+"è¦ä¸ºæœ¬ä»“库创建特例,请使用:\n"
+"\n"
+"\tgit config --global --add safe.directory %s"
+
+
+#: setup.c:1502
#, c-format
msgid ""
"problem with core.sharedRepository filemode value (0%.3o).\n"
@@ -8624,57 +8852,61 @@ msgstr ""
"å‚æ•° core.sharedRepository 的文件属性值有问题(0%.3o)。\n"
"文件属主必须始终拥有读写æƒé™ã€‚"
-#: setup.c:1508
+#: setup.c:1564
msgid "fork failed"
msgstr "fork 失败"
-#: setup.c:1513
+#: setup.c:1569
msgid "setsid failed"
msgstr "setsid 失败"
-#: sparse-index.c:289
+#: sparse-index.c:285
#, c-format
msgid "index entry is a directory, but not sparse (%08x)"
msgstr "索引æ¡ç›®æ˜¯ä¸€ä¸ªç›®å½•ï¼Œä½†ä¸æ˜¯ç¨€ç–çš„ (%08x)"
+#: split-index.c:9
+msgid "cannot use split index with a sparse index"
+msgstr "拆分索引无法与稀ç–索引一起使用"
+
#. TRANSLATORS: IEC 80000-13:2008 gibibyte
-#: strbuf.c:850
+#: strbuf.c:851
#, c-format
msgid "%u.%2.2u GiB"
msgstr "%u.%2.2u GiB"
#. TRANSLATORS: IEC 80000-13:2008 gibibyte/second
-#: strbuf.c:852
+#: strbuf.c:853
#, c-format
msgid "%u.%2.2u GiB/s"
msgstr "%u.%2.2u GiB/s"
#. TRANSLATORS: IEC 80000-13:2008 mebibyte
-#: strbuf.c:860
+#: strbuf.c:861
#, c-format
msgid "%u.%2.2u MiB"
msgstr "%u.%2.2u MiB"
#. TRANSLATORS: IEC 80000-13:2008 mebibyte/second
-#: strbuf.c:862
+#: strbuf.c:863
#, c-format
msgid "%u.%2.2u MiB/s"
msgstr "%u.%2.2u MiB/s"
#. TRANSLATORS: IEC 80000-13:2008 kibibyte
-#: strbuf.c:869
+#: strbuf.c:870
#, c-format
msgid "%u.%2.2u KiB"
msgstr "%u.%2.2u KiB"
#. TRANSLATORS: IEC 80000-13:2008 kibibyte/second
-#: strbuf.c:871
+#: strbuf.c:872
#, c-format
msgid "%u.%2.2u KiB/s"
msgstr "%u.%2.2u KiB/s"
#. TRANSLATORS: IEC 80000-13:2008 byte
-#: strbuf.c:877
+#: strbuf.c:878
#, c-format
msgid "%u byte"
msgid_plural "%u bytes"
@@ -8682,130 +8914,140 @@ msgstr[0] "%u 字节"
msgstr[1] "%u 字节"
#. TRANSLATORS: IEC 80000-13:2008 byte/second
-#: strbuf.c:879
+#: strbuf.c:880
#, c-format
msgid "%u byte/s"
msgid_plural "%u bytes/s"
msgstr[0] "%u 字节/秒"
msgstr[1] "%u 字节/秒"
-#: strbuf.c:1186 wrapper.c:207 wrapper.c:377 builtin/am.c:765
-#: builtin/rebase.c:650
+#: strbuf.c:1187 wrapper.c:217 wrapper.c:387 builtin/am.c:766
+#: builtin/rebase.c:653
#, c-format
msgid "could not open '%s' for writing"
msgstr "无法打开 '%s' 进行写入"
-#: strbuf.c:1195
+#: strbuf.c:1196
#, c-format
msgid "could not edit '%s'"
msgstr "ä¸èƒ½ç¼–辑 '%s'"
-#: submodule-config.c:237
+#: submodule-config.c:238
#, c-format
msgid "ignoring suspicious submodule name: %s"
msgstr "忽略å¯ç–‘çš„å­æ¨¡ç»„å称:%s"
-#: submodule-config.c:304
+#: submodule-config.c:305
msgid "negative values not allowed for submodule.fetchjobs"
msgstr "submodule.fetchjobs ä¸å…许为负值"
-#: submodule-config.c:402
+#: submodule-config.c:403
#, c-format
msgid "ignoring '%s' which may be interpreted as a command-line option: %s"
msgstr "忽略å¯èƒ½è¢«è§£æžä¸ºå‘½ä»¤è¡Œé€‰é¡¹çš„ '%s':%s"
-#: submodule-config.c:499
+#: submodule-config.c:500 builtin/push.c:489 builtin/send-pack.c:148
#, c-format
-msgid "invalid value for %s"
-msgstr "%s 的值无效"
+msgid "invalid value for '%s'"
+msgstr "'%s' 的值无效"
-#: submodule-config.c:767
+#: submodule-config.c:828
#, c-format
msgid "Could not update .gitmodules entry %s"
msgstr "ä¸èƒ½æ›´æ–° .gitmodules æ¡ç›® %s"
-#: submodule.c:114 submodule.c:143
+#: submodule.c:115 submodule.c:144
msgid "Cannot change unmerged .gitmodules, resolve merge conflicts first"
msgstr "无法修改未åˆå¹¶çš„ .gitmodules,先解决åˆå¹¶å†²çª"
-#: submodule.c:118 submodule.c:147
+#: submodule.c:119 submodule.c:148
#, c-format
msgid "Could not find section in .gitmodules where path=%s"
msgstr "无法在 .gitmodules 中找到 path=%s çš„å°èŠ‚"
-#: submodule.c:154
+#: submodule.c:155
#, c-format
msgid "Could not remove .gitmodules entry for %s"
msgstr "无法移除 %s çš„ .gitmodules æ¡ç›®"
-#: submodule.c:165
+#: submodule.c:166
msgid "staging updated .gitmodules failed"
msgstr "å°†æ›´æ–°åŽ .gitmodules 添加暂存区失败"
-#: submodule.c:358
+#: submodule.c:346
#, c-format
msgid "in unpopulated submodule '%s'"
msgstr "ä½äºŽæœªæ£€å‡ºçš„å­æ¨¡ç»„ '%s'"
-#: submodule.c:389
+#: submodule.c:377
#, c-format
msgid "Pathspec '%s' is in submodule '%.*s'"
msgstr "路径规格 '%s' 在å­æ¨¡ç»„ '%.*s' 中"
-#: submodule.c:466
+#: submodule.c:454
#, c-format
msgid "bad --ignore-submodules argument: %s"
msgstr "åçš„ --ignore-submodules å‚数:%s"
-#: submodule.c:844
+#: submodule.c:866
#, c-format
msgid ""
"Submodule in commit %s at path: '%s' collides with a submodule named the "
"same. Skipping it."
msgstr "æ交 %s 中ä½äºŽè·¯å¾„ '%s' çš„å­æ¨¡ç»„å’ŒåŒåçš„å­æ¨¡ç»„冲çªã€‚ 跳过它。"
-#: submodule.c:954
+#: submodule.c:987
#, c-format
msgid "submodule entry '%s' (%s) is a %s, not a commit"
msgstr "å­æ¨¡ç»„æ¡ç›® '%s'(%s)是一个 %s,ä¸æ˜¯ä¸€ä¸ªæ交"
-#: submodule.c:1042
+#: submodule.c:1069
#, c-format
msgid ""
"Could not run 'git rev-list <commits> --not --remotes -n 1' command in "
"submodule %s"
msgstr "无法在å­æ¨¡ç»„ %s 中执行 'git rev-list <æ交> --not --remotes -n 1'"
-#: submodule.c:1165
+#: submodule.c:1192
#, c-format
msgid "process for submodule '%s' failed"
msgstr "处ç†å­æ¨¡ç»„ '%s' 失败"
-#: submodule.c:1194 builtin/branch.c:699 builtin/submodule--helper.c:2714
+#: submodule.c:1221 builtin/branch.c:714 builtin/submodule--helper.c:2827
msgid "Failed to resolve HEAD as a valid ref."
msgstr "无法将 HEAD 解æžä¸ºæœ‰æ•ˆå¼•ç”¨ã€‚"
-#: submodule.c:1205
+#: submodule.c:1232
#, c-format
msgid "Pushing submodule '%s'\n"
msgstr "正在推é€å­æ¨¡ç»„ '%s'\n"
-#: submodule.c:1208
+#: submodule.c:1235
#, c-format
msgid "Unable to push submodule '%s'\n"
msgstr "无法推é€å­æ¨¡ç»„ '%s'\n"
-#: submodule.c:1491
+#: submodule.c:1567
#, c-format
msgid "Fetching submodule %s%s\n"
msgstr "正在获å–å­æ¨¡ç»„ %s%s\n"
-#: submodule.c:1525
+#: submodule.c:1589
#, c-format
msgid "Could not access submodule '%s'\n"
msgstr "无法访问å­æ¨¡ç»„ '%s'\n"
-#: submodule.c:1680
+#: submodule.c:1618
+#, c-format
+msgid "Could not access submodule '%s' at commit %s\n"
+msgstr "无法访问å­æ¨¡ç»„ '%s' æ交 %s\n"
+
+#: submodule.c:1629
+#, c-format
+msgid "Fetching submodule %s%s at commit %s\n"
+msgstr "正在获å–å­æ¨¡ç»„ %s%s æ交 %s\n"
+
+#: submodule.c:1849
#, c-format
msgid ""
"Errors during submodule fetch:\n"
@@ -8814,77 +9056,77 @@ msgstr ""
"获å–å­æ¨¡ç»„时的错误:\n"
"%s"
-#: submodule.c:1705
+#: submodule.c:1874
#, c-format
msgid "'%s' not recognized as a git repository"
msgstr "无法将 '%s' 识别为 git 仓库"
-#: submodule.c:1722
+#: submodule.c:1891
#, c-format
msgid "Could not run 'git status --porcelain=2' in submodule %s"
msgstr "无法在å­æ¨¡ç»„ %s 中执行 'git status --porcelain=2'"
-#: submodule.c:1763
+#: submodule.c:1932
#, c-format
msgid "'git status --porcelain=2' failed in submodule %s"
msgstr "在å­æ¨¡ç»„ %s 中执行 'git status --porcelain=2' 失败"
-#: submodule.c:1838
+#: submodule.c:2007
#, c-format
msgid "could not start 'git status' in submodule '%s'"
msgstr "无法在å­æ¨¡ç»„ '%s' 中å¯åŠ¨ 'git status'"
-#: submodule.c:1851
+#: submodule.c:2020
#, c-format
msgid "could not run 'git status' in submodule '%s'"
msgstr "无法在å­æ¨¡ç»„ '%s' 中执行 'git status'"
-#: submodule.c:1868
+#: submodule.c:2037
#, c-format
msgid "Could not unset core.worktree setting in submodule '%s'"
msgstr "无法在å­æ¨¡ç»„ '%s' 中å–消 core.worktree 的设置"
-#: submodule.c:1895 submodule.c:2210
+#: submodule.c:2064 submodule.c:2379
#, c-format
msgid "could not recurse into submodule '%s'"
msgstr "无法递归进å­æ¨¡ç»„路径 '%s'"
-#: submodule.c:1917
+#: submodule.c:2086
msgid "could not reset submodule index"
msgstr "无法é‡ç½®å­æ¨¡ç»„索引"
-#: submodule.c:1959
+#: submodule.c:2128
#, c-format
msgid "submodule '%s' has dirty index"
msgstr "å­æ¨¡ç»„ '%s' 中有è„索引"
-#: submodule.c:2013
+#: submodule.c:2182
#, c-format
msgid "Submodule '%s' could not be updated."
msgstr "å­æ¨¡ç»„ '%s' 无法被更新。"
-#: submodule.c:2081
+#: submodule.c:2250
#, c-format
msgid "submodule git dir '%s' is inside git dir '%.*s'"
msgstr "å­æ¨¡ç»„ git 目录 '%s' ä½äºŽ git 目录 '%.*s' 中"
-#: submodule.c:2102
+#: submodule.c:2271
#, c-format
msgid ""
"relocate_gitdir for submodule '%s' with more than one worktree not supported"
msgstr "ä¸æ”¯æŒå¯¹æœ‰å¤šä¸ªå·¥ä½œåŒºçš„å­æ¨¡ç»„ '%s' 执行 relocate_gitdir"
-#: submodule.c:2114 submodule.c:2174
+#: submodule.c:2283 submodule.c:2343
#, c-format
msgid "could not lookup name for submodule '%s'"
msgstr "ä¸èƒ½æŸ¥è¯¢å­æ¨¡ç»„ '%s' çš„å称"
-#: submodule.c:2118
+#: submodule.c:2287
#, c-format
msgid "refusing to move '%s' into an existing git dir"
msgstr "ç¦æ­¢ç§»åŠ¨ '%s' 到现存 git 目录中"
-#: submodule.c:2124
+#: submodule.c:2293
#, c-format
msgid ""
"Migrating git directory of '%s%s' from\n"
@@ -8895,11 +9137,11 @@ msgstr ""
"'%s' è¿ç§»è‡³\n"
"'%s'\n"
-#: submodule.c:2255
+#: submodule.c:2424
msgid "could not start ls-files in .."
msgstr "无法在 .. 中å¯åŠ¨ ls-files"
-#: submodule.c:2295
+#: submodule.c:2464
#, c-format
msgid "ls-tree returned unexpected return code %d"
msgstr "ls-tree 返回未知返回值 %d"
@@ -8920,8 +9162,8 @@ msgstr "执行 trailer 命令 '%s' 失败"
msgid "unknown value '%s' for key '%s'"
msgstr "é”® '%2$s' 的未知å–值 '%1$s'"
-#: trailer.c:547 trailer.c:552 trailer.c:557 builtin/remote.c:299
-#: builtin/remote.c:327
+#: trailer.c:547 trailer.c:552 trailer.c:557 builtin/remote.c:300
+#: builtin/remote.c:328
#, c-format
msgid "more than one %s"
msgstr "多于一个 %s"
@@ -8936,11 +9178,11 @@ msgstr "尾注 '%.*s' 的键为空"
msgid "could not read input file '%s'"
msgstr "ä¸èƒ½è¯»å–输入文件 '%s'"
-#: trailer.c:766 builtin/mktag.c:89 imap-send.c:1573
+#: trailer.c:766 builtin/mktag.c:88 imap-send.c:1563
msgid "could not read from stdin"
msgstr "ä¸èƒ½è‡ªæ ‡å‡†è¾“入读å–"
-#: trailer.c:1024 wrapper.c:684
+#: trailer.c:1024 wrapper.c:760
#, c-format
msgid "could not stat %s"
msgstr "ä¸èƒ½å¯¹ %s 调用 stat"
@@ -9006,7 +9248,7 @@ msgstr "ä¸èƒ½æ‰§è¡Œ fast-import"
msgid "error while running fast-import"
msgstr "执行 fast-import 出错"
-#: transport-helper.c:549 transport-helper.c:1251
+#: transport-helper.c:549 transport-helper.c:1254
#, c-format
msgid "could not read ref %s"
msgstr "无法读å–引用 %s"
@@ -9024,7 +9266,7 @@ msgstr "åè®®ä¸æ”¯æŒè®¾ç½®è¿œç¨‹æœåŠ¡è·¯å¾„"
msgid "invalid remote service path"
msgstr "无效的远程æœåŠ¡è·¯å¾„"
-#: transport-helper.c:661 transport.c:1479
+#: transport-helper.c:661 transport.c:1496
msgid "operation not supported by protocol"
msgstr "åè®®ä¸æ”¯æŒè¯¥æ“作"
@@ -9033,72 +9275,72 @@ msgstr "åè®®ä¸æ”¯æŒè¯¥æ“作"
msgid "can't connect to subservice %s"
msgstr "ä¸èƒ½è¿žæŽ¥åˆ°å­æœåŠ¡ %s"
-#: transport-helper.c:693 transport.c:404
+#: transport-helper.c:693 transport.c:415
msgid "--negotiate-only requires protocol v2"
msgstr "--negotiate-only 需è¦åè®® v2"
-#: transport-helper.c:755
+#: transport-helper.c:758
msgid "'option' without a matching 'ok/error' directive"
msgstr "'option' 缺ä¹ä¸€ä¸ªåŒ¹é…çš„ 'ok/error' 指令"
-#: transport-helper.c:798
+#: transport-helper.c:801
#, c-format
msgid "expected ok/error, helper said '%s'"
msgstr "预期 ok/error,助手说 '%s'"
-#: transport-helper.c:859
+#: transport-helper.c:862
#, c-format
msgid "helper reported unexpected status of %s"
msgstr "助手报告 %s çš„æ„外状æ€"
-#: transport-helper.c:942
+#: transport-helper.c:945
#, c-format
msgid "helper %s does not support dry-run"
msgstr "助手 %s ä¸æ”¯æŒ dry-run"
-#: transport-helper.c:945
+#: transport-helper.c:948
#, c-format
msgid "helper %s does not support --signed"
msgstr "助手 %s ä¸æ”¯æŒ --signed"
-#: transport-helper.c:948
+#: transport-helper.c:951
#, c-format
msgid "helper %s does not support --signed=if-asked"
msgstr "助手 %s ä¸æ”¯æŒ --signed=if-asked"
-#: transport-helper.c:953
+#: transport-helper.c:956
#, c-format
msgid "helper %s does not support --atomic"
msgstr "助手 %s ä¸æ”¯æŒ --atomic"
-#: transport-helper.c:957
+#: transport-helper.c:960
#, c-format
msgid "helper %s does not support --%s"
msgstr "助手 %s ä¸æ”¯æŒ --%s"
-#: transport-helper.c:964
+#: transport-helper.c:967
#, c-format
msgid "helper %s does not support 'push-option'"
msgstr "助手 %s ä¸æ”¯æŒ 'push-option'"
-#: transport-helper.c:1064
+#: transport-helper.c:1067
msgid "remote-helper doesn't support push; refspec needed"
msgstr "remote-heper ä¸æ”¯æŒæŽ¨é€ï¼Œéœ€è¦å¼•ç”¨è§„æ ¼"
-#: transport-helper.c:1069
+#: transport-helper.c:1072
#, c-format
msgid "helper %s does not support 'force'"
msgstr "助手 %s ä¸æ”¯æŒ 'force'"
-#: transport-helper.c:1116
+#: transport-helper.c:1119
msgid "couldn't run fast-export"
msgstr "无法执行 fast-export"
-#: transport-helper.c:1121
+#: transport-helper.c:1124
msgid "error while running fast-export"
msgstr "执行 fast-export 时出错"
-#: transport-helper.c:1146
+#: transport-helper.c:1149
#, c-format
msgid ""
"No refs in common and none specified; doing nothing.\n"
@@ -9107,52 +9349,52 @@ msgstr ""
"没有共åŒçš„引用并且也没有指定,什么也ä¸ä¼šåšã€‚\n"
"也许您应该指定一个分支。\n"
-#: transport-helper.c:1228
+#: transport-helper.c:1231
#, c-format
msgid "unsupported object format '%s'"
msgstr "ä¸æ”¯æŒçš„å¯¹è±¡æ ¼å¼ '%s'"
-#: transport-helper.c:1237
+#: transport-helper.c:1240
#, c-format
msgid "malformed response in ref list: %s"
msgstr "引用列表中格å¼é”™è¯¯çš„å“应:%s"
-#: transport-helper.c:1389
+#: transport-helper.c:1392
#, c-format
msgid "read(%s) failed"
msgstr "读å–(%s)失败"
-#: transport-helper.c:1416
+#: transport-helper.c:1419
#, c-format
msgid "write(%s) failed"
msgstr "写(%s)失败"
-#: transport-helper.c:1465
+#: transport-helper.c:1468
#, c-format
msgid "%s thread failed"
msgstr "%s 线程失败"
-#: transport-helper.c:1469
+#: transport-helper.c:1472
#, c-format
msgid "%s thread failed to join: %s"
msgstr "%s 线程等待失败:%s"
-#: transport-helper.c:1488 transport-helper.c:1492
+#: transport-helper.c:1491 transport-helper.c:1495
#, c-format
msgid "can't start thread for copying data: %s"
msgstr "ä¸èƒ½å¯åŠ¨çº¿ç¨‹æ¥æ‹·è´æ•°æ®ï¼š%s"
-#: transport-helper.c:1529
+#: transport-helper.c:1532
#, c-format
msgid "%s process failed to wait"
msgstr "%s 进程等待失败"
-#: transport-helper.c:1533
+#: transport-helper.c:1536
#, c-format
msgid "%s process failed"
msgstr "%s 进程失败"
-#: transport-helper.c:1551 transport-helper.c:1560
+#: transport-helper.c:1554 transport-helper.c:1563
msgid "can't start thread for copying data"
msgstr "ä¸èƒ½å¯åŠ¨çº¿ç¨‹æ¥æ‹·è´æ•°æ®"
@@ -9161,58 +9403,58 @@ msgstr "ä¸èƒ½å¯åŠ¨çº¿ç¨‹æ¥æ‹·è´æ•°æ®"
msgid "Would set upstream of '%s' to '%s' of '%s'\n"
msgstr "å°†è¦è®¾ç½® '%1$s' 的上游为 '%3$s' çš„ '%2$s'\n"
-#: transport.c:145
+#: transport.c:138
#, c-format
msgid "could not read bundle '%s'"
msgstr "无法读å–归档包 '%s'"
-#: transport.c:227
+#: transport.c:234
#, c-format
msgid "transport: invalid depth option '%s'"
msgstr "传输:无效的深度选项 '%s'"
-#: transport.c:279
+#: transport.c:289
msgid "see protocol.version in 'git help config' for more details"
msgstr "查看 'git help config' 中的 protocol.version 获å–更多信æ¯"
-#: transport.c:280
+#: transport.c:290
msgid "server options require protocol version 2 or later"
msgstr "æœåŠ¡ç«¯é€‰é¡¹éœ€è¦ç‰ˆæœ¬ 2 å议或更高"
-#: transport.c:407
+#: transport.c:418
msgid "server does not support wait-for-done"
msgstr "æœåŠ¡å™¨ä¸æ”¯æŒ wait-for-done"
-#: transport.c:759
+#: transport.c:770
msgid "could not parse transport.color.* config"
msgstr "ä¸èƒ½è§£æž transport.color.* é…ç½®"
-#: transport.c:834
+#: transport.c:845
msgid "support for protocol v2 not implemented yet"
msgstr "åè®® v2 的支æŒå°šæœªå®žçŽ°"
-#: transport.c:967
+#: transport.c:978
#, c-format
msgid "unknown value for config '%s': %s"
msgstr "é…ç½® '%s' çš„å–值未知:%s"
-#: transport.c:1033
+#: transport.c:1044
#, c-format
msgid "transport '%s' not allowed"
msgstr "传输 '%s' ä¸å…许"
-#: transport.c:1082
+#: transport.c:1093
msgid "git-over-rsync is no longer supported"
msgstr "ä¸å†æ”¯æŒ git-over-rsync"
-#: transport.c:1185
+#: transport.c:1196
#, c-format
msgid ""
"The following submodule paths contain changes that can\n"
"not be found on any remote:\n"
msgstr "下列å­æ¨¡ç»„路径所包å«çš„修改在任何远程æºä¸­éƒ½æ‰¾ä¸åˆ°ï¼š\n"
-#: transport.c:1189
+#: transport.c:1200
#, c-format
msgid ""
"\n"
@@ -9239,11 +9481,11 @@ msgstr ""
"以推é€è‡³è¿œç¨‹ã€‚\n"
"\n"
-#: transport.c:1197
+#: transport.c:1208
msgid "Aborting."
msgstr "正在终止。"
-#: transport.c:1343
+#: transport.c:1354
msgid "failed to push all needed submodules"
msgstr "ä¸èƒ½æŽ¨é€å…¨éƒ¨éœ€è¦çš„å­æ¨¡ç»„"
@@ -9513,16 +9755,16 @@ msgstr ""
"以下路径å‘生碰撞(如:在ä¸åŒºåˆ†å¤§å°å†™çš„文件系统上的区分大å°å†™çš„路径),\n"
"并且碰撞组中åªæœ‰ä¸€ä¸ªæ–‡ä»¶å­˜åœ¨å·¥ä½œåŒºä¸­ï¼š\n"
-#: unpack-trees.c:1636
+#: unpack-trees.c:1664
msgid "Updating index flags"
msgstr "正在更新索引标志"
-#: unpack-trees.c:2803
+#: unpack-trees.c:2925
#, c-format
msgid "worktree and untracked commit have duplicate entries: %s"
msgstr "工作树和未跟踪æ交具有é‡å¤æ¡ç›®ï¼š%s"
-#: upload-pack.c:1565
+#: upload-pack.c:1579
msgid "expected flush after fetch arguments"
msgstr "在 fetch å‚数之åŽåº”该有一个 flush 包"
@@ -9559,123 +9801,137 @@ msgstr "无效的 '..' 路径片段"
msgid "Fetching objects"
msgstr "正在获å–对象"
-#: worktree.c:238 builtin/am.c:2209 builtin/bisect--helper.c:156
+#: worktree.c:237 builtin/am.c:2210 builtin/bisect--helper.c:156
#, c-format
msgid "failed to read '%s'"
msgstr "æ— æ³•è¯»å– '%s'"
-#: worktree.c:305
+#: worktree.c:304
#, c-format
msgid "'%s' at main working tree is not the repository directory"
msgstr "在主工作区的 '%s' ä¸æ˜¯ä»“库目录"
-#: worktree.c:316
+#: worktree.c:315
#, c-format
msgid "'%s' file does not contain absolute path to the working tree location"
msgstr "文件 '%s' ä¸åŒ…å«å·¥ä½œåŒºçš„ç»å¯¹è·¯å¾„"
-#: worktree.c:328
+#: worktree.c:327
#, c-format
msgid "'%s' does not exist"
msgstr "'%s' ä¸å­˜åœ¨"
-#: worktree.c:334
+#: worktree.c:333
#, c-format
msgid "'%s' is not a .git file, error code %d"
msgstr "'%s' ä¸æ˜¯ä¸€ä¸ª .git æ–‡ä»¶ï¼Œé”™è¯¯ç  %d"
-#: worktree.c:343
+#: worktree.c:342
#, c-format
msgid "'%s' does not point back to '%s'"
msgstr "'%s' 没有指回到 '%s'"
-#: worktree.c:604
+#: worktree.c:600
msgid "not a directory"
msgstr "ä¸æ˜¯ä¸€ä¸ªç›®å½•"
-#: worktree.c:613
+#: worktree.c:609
msgid ".git is not a file"
msgstr ".git ä¸æ˜¯ä¸€ä¸ªæ–‡ä»¶"
-#: worktree.c:615
+#: worktree.c:611
msgid ".git file broken"
msgstr ".git 文件æŸå"
-#: worktree.c:617
+#: worktree.c:613
msgid ".git file incorrect"
msgstr ".git 文件ä¸æ­£ç¡®"
-#: worktree.c:723
+#: worktree.c:719
msgid "not a valid path"
msgstr "ä¸æ˜¯ä¸€ä¸ªæœ‰æ•ˆçš„路径"
-#: worktree.c:729
+#: worktree.c:725
msgid "unable to locate repository; .git is not a file"
msgstr "无法定ä½ä»“库,.git ä¸æ˜¯ä¸€ä¸ªæ–‡ä»¶"
-#: worktree.c:733
+#: worktree.c:729
msgid "unable to locate repository; .git file does not reference a repository"
msgstr "无法定ä½ä»“库,.git 文件没有指å‘一个仓库"
-#: worktree.c:737
+#: worktree.c:733
msgid "unable to locate repository; .git file broken"
msgstr "无法定ä½ä»“库,.git 文件æŸå"
-#: worktree.c:743
+#: worktree.c:739
msgid "gitdir unreadable"
msgstr "gitdir ä¸å¯è¯»"
-#: worktree.c:747
+#: worktree.c:743
msgid "gitdir incorrect"
msgstr "gitdir ä¸æ­£ç¡®"
-#: worktree.c:772
+#: worktree.c:768
msgid "not a valid directory"
msgstr "ä¸æ˜¯ä¸€ä¸ªæœ‰æ•ˆçš„目录"
-#: worktree.c:778
+#: worktree.c:774
msgid "gitdir file does not exist"
msgstr "gitdir 文件ä¸å­˜åœ¨"
-#: worktree.c:783 worktree.c:792
+#: worktree.c:779 worktree.c:788
#, c-format
msgid "unable to read gitdir file (%s)"
msgstr "æ— æ³•è¯»å– gitdir 文件(%s)"
-#: worktree.c:802
+#: worktree.c:798
#, c-format
msgid "short read (expected %<PRIuMAX> bytes, read %<PRIuMAX>)"
msgstr "读å–过短(期望 %<PRIuMAX> å­—èŠ‚ï¼Œè¯»å– %<PRIuMAX>)"
-#: worktree.c:810
+#: worktree.c:806
msgid "invalid gitdir file"
msgstr "无效的 gitdir 文件"
-#: worktree.c:818
+#: worktree.c:814
msgid "gitdir file points to non-existent location"
msgstr "gitdir 文件指å‘一个ä¸å­˜åœ¨çš„ä½ç½®"
-#: wrapper.c:151
+#: worktree.c:830
+#, c-format
+msgid "unable to set %s in '%s'"
+msgstr "无法在 '%2$s' 中设置 %1$s"
+
+#: worktree.c:832
+#, c-format
+msgid "unable to unset %s in '%s'"
+msgstr "无法在 '%2$s' 中å–消设置 %1$s"
+
+#: worktree.c:852
+msgid "failed to set extensions.worktreeConfig setting"
+msgstr "无法设置 extensions.worktreeConfig"
+
+#: wrapper.c:161
#, c-format
msgid "could not setenv '%s'"
-msgstr "ä¸èƒ½è®¾ç½®çŽ¯å¢ƒå˜é‡ '%s'"
+msgstr "无法设置环境å˜é‡ '%s'"
-#: wrapper.c:203
+#: wrapper.c:213
#, c-format
msgid "unable to create '%s'"
-msgstr "ä¸èƒ½åˆ›å»º '%s'"
+msgstr "无法创建 '%s'"
-#: wrapper.c:205 wrapper.c:375
+#: wrapper.c:215 wrapper.c:385
#, c-format
msgid "could not open '%s' for reading and writing"
msgstr "无法打开 '%s' 进行读写"
-#: wrapper.c:406 wrapper.c:607
+#: wrapper.c:416 wrapper.c:683
#, c-format
msgid "unable to access '%s'"
msgstr "ä¸èƒ½è®¿é—® '%s'"
-#: wrapper.c:615
+#: wrapper.c:691
msgid "unable to get current working directory"
msgstr "ä¸èƒ½èŽ·å–当å‰å·¥ä½œç›®å½•"
@@ -9714,11 +9970,11 @@ msgstr " (酌情使用 \"git add/rm <文件>...\" 标记解决方案)"
msgid " (use \"git rm <file>...\" to mark resolution)"
msgstr " (使用 \"git rm <文件>...\" 标记解决方案)"
-#: wt-status.c:211 wt-status.c:1131
+#: wt-status.c:211 wt-status.c:1140
msgid "Changes to be committed:"
msgstr "è¦æ交的å˜æ›´ï¼š"
-#: wt-status.c:234 wt-status.c:1140
+#: wt-status.c:234 wt-status.c:1149
msgid "Changes not staged for commit:"
msgstr "尚未暂存以备æ交的å˜æ›´ï¼š"
@@ -9824,22 +10080,22 @@ msgstr "修改的内容, "
msgid "untracked content, "
msgstr "未跟踪的内容, "
-#: wt-status.c:964
+#: wt-status.c:973
#, c-format
msgid "Your stash currently has %d entry"
msgid_plural "Your stash currently has %d entries"
msgstr[0] "您的贮è—区当å‰æœ‰ %d æ¡è®°å½•"
msgstr[1] "您的贮è—区当å‰æœ‰ %d æ¡è®°å½•"
-#: wt-status.c:995
+#: wt-status.c:1004
msgid "Submodules changed but not updated:"
msgstr "å­æ¨¡ç»„已修改但尚未更新:"
-#: wt-status.c:997
+#: wt-status.c:1006
msgid "Submodule changes to be committed:"
msgstr "è¦æ交的å­æ¨¡ç»„å˜æ›´ï¼š"
-#: wt-status.c:1079
+#: wt-status.c:1088
msgid ""
"Do not modify or remove the line above.\n"
"Everything below it will be ignored."
@@ -9847,7 +10103,7 @@ msgstr ""
"ä¸è¦æ”¹åŠ¨æˆ–删除上é¢çš„一行。\n"
"其下所有内容都将被忽略。"
-#: wt-status.c:1171
+#: wt-status.c:1180
#, c-format
msgid ""
"\n"
@@ -9858,290 +10114,290 @@ msgstr ""
"花了 %.2f 秒æ‰è®¡ç®—出分支的领先/è½åŽèŒƒå›´ã€‚\n"
"为é¿å…,您å¯ä»¥ä½¿ç”¨ '--no-ahead-behind'。\n"
-#: wt-status.c:1201
+#: wt-status.c:1210
msgid "You have unmerged paths."
msgstr "您有尚未åˆå¹¶çš„路径。"
# 译者:注æ„ä¿æŒå‰å¯¼ç©ºæ ¼
-#: wt-status.c:1204
+#: wt-status.c:1213
msgid " (fix conflicts and run \"git commit\")"
msgstr " (解决冲çªå¹¶è¿è¡Œ \"git commit\")"
# 译者:注æ„ä¿æŒå‰å¯¼ç©ºæ ¼
-#: wt-status.c:1206
+#: wt-status.c:1215
msgid " (use \"git merge --abort\" to abort the merge)"
msgstr " (使用 \"git merge --abort\" 终止åˆå¹¶ï¼‰"
-#: wt-status.c:1210
+#: wt-status.c:1219
msgid "All conflicts fixed but you are still merging."
msgstr "所有冲çªå·²è§£å†³ä½†æ‚¨ä»å¤„于åˆå¹¶ä¸­ã€‚"
# 译者:注æ„ä¿æŒå‰å¯¼ç©ºæ ¼
-#: wt-status.c:1213
+#: wt-status.c:1222
msgid " (use \"git commit\" to conclude merge)"
msgstr " (使用 \"git commit\" 结æŸåˆå¹¶ï¼‰"
-#: wt-status.c:1224
+#: wt-status.c:1233
msgid "You are in the middle of an am session."
msgstr "您正处于 am æ“作过程中。"
-#: wt-status.c:1227
+#: wt-status.c:1236
msgid "The current patch is empty."
msgstr "当å‰çš„è¡¥ä¸ä¸ºç©ºã€‚"
# 译者:注æ„ä¿æŒå‰å¯¼ç©ºæ ¼
-#: wt-status.c:1232
+#: wt-status.c:1241
msgid " (fix conflicts and then run \"git am --continue\")"
msgstr " (解决冲çªï¼Œç„¶åŽè¿è¡Œ \"git am --continue\")"
# 译者:注æ„ä¿æŒå‰å¯¼ç©ºæ ¼
-#: wt-status.c:1234
+#: wt-status.c:1243
msgid " (use \"git am --skip\" to skip this patch)"
msgstr " (使用 \"git am --skip\" 跳过此补ä¸ï¼‰"
# 译者:注æ„ä¿æŒå‰å¯¼ç©ºæ ¼
-#: wt-status.c:1237
+#: wt-status.c:1246
msgid ""
" (use \"git am --allow-empty\" to record this patch as an empty commit)"
msgstr " (使用 \"git am --allow-empty\" 将这个补ä¸è®°å½•ä¸ºç©ºæ交)"
# 译者:注æ„ä¿æŒå‰å¯¼ç©ºæ ¼
-#: wt-status.c:1239
+#: wt-status.c:1248
msgid " (use \"git am --abort\" to restore the original branch)"
msgstr " (使用 \"git am --abort\" æ¢å¤åŽŸæœ‰åˆ†æ”¯ï¼‰"
-#: wt-status.c:1372
+#: wt-status.c:1381
msgid "git-rebase-todo is missing."
msgstr "git-rebase-todo 丢失。"
-#: wt-status.c:1374
+#: wt-status.c:1383
msgid "No commands done."
msgstr "没有命令被执行。"
-#: wt-status.c:1377
+#: wt-status.c:1386
#, c-format
-msgid "Last command done (%d command done):"
-msgid_plural "Last commands done (%d commands done):"
-msgstr[0] "最åŽä¸€æ¡å‘½ä»¤å·²å®Œæˆï¼ˆ%d æ¡å‘½ä»¤è¢«æ‰§è¡Œï¼‰ï¼š"
-msgstr[1] "最åŽçš„命令已完æˆï¼ˆ%d æ¡å‘½ä»¤è¢«æ‰§è¡Œï¼‰ï¼š"
+msgid "Last command done (%<PRIuMAX> command done):"
+msgid_plural "Last commands done (%<PRIuMAX> commands done):"
+msgstr[0] "最åŽå®Œæˆçš„命令(%<PRIuMAX> æ¡å‘½ä»¤è¢«æ‰§è¡Œï¼‰ï¼š"
+msgstr[1] "最åŽå®Œæˆçš„命令(%<PRIuMAX> æ¡å‘½ä»¤è¢«æ‰§è¡Œï¼‰ï¼š"
-#: wt-status.c:1388
+#: wt-status.c:1397
#, c-format
msgid " (see more in file %s)"
msgstr " (更多å‚è§æ–‡ä»¶ %s)"
-#: wt-status.c:1393
+#: wt-status.c:1402
msgid "No commands remaining."
msgstr "未剩下任何命令。"
-#: wt-status.c:1396
+#: wt-status.c:1405
#, c-format
-msgid "Next command to do (%d remaining command):"
-msgid_plural "Next commands to do (%d remaining commands):"
-msgstr[0] "接下æ¥è¦æ‰§è¡Œçš„命令(剩余 %d æ¡å‘½ä»¤ï¼‰ï¼š"
-msgstr[1] "接下æ¥è¦æ‰§è¡Œçš„命令(剩余 %d æ¡å‘½ä»¤ï¼‰ï¼š"
+msgid "Next command to do (%<PRIuMAX> remaining command):"
+msgid_plural "Next commands to do (%<PRIuMAX> remaining commands):"
+msgstr[0] "接下æ¥è¦æ‰§è¡Œçš„命令(剩余 %<PRIuMAX> æ¡å‘½ä»¤ï¼‰ï¼š"
+msgstr[1] "接下æ¥è¦æ‰§è¡Œçš„命令(剩余 %<PRIuMAX> æ¡å‘½ä»¤ï¼‰ï¼š"
# 译者:注æ„ä¿æŒå‰å¯¼ç©ºæ ¼
-#: wt-status.c:1404
+#: wt-status.c:1413
msgid " (use \"git rebase --edit-todo\" to view and edit)"
msgstr " (使用 \"git rebase --edit-todo\" æ¥æŸ¥çœ‹å’Œç¼–辑)"
-#: wt-status.c:1416
+#: wt-status.c:1425
#, c-format
msgid "You are currently rebasing branch '%s' on '%s'."
msgstr "您在执行将分支 '%s' å˜åŸºåˆ° '%s' çš„æ“作。"
-#: wt-status.c:1421
+#: wt-status.c:1430
msgid "You are currently rebasing."
msgstr "您在执行å˜åŸºæ“作。"
# 译者:注æ„ä¿æŒå‰å¯¼ç©ºæ ¼
-#: wt-status.c:1434
+#: wt-status.c:1443
msgid " (fix conflicts and then run \"git rebase --continue\")"
msgstr " (解决冲çªï¼Œç„¶åŽè¿è¡Œ \"git rebase --continue\")"
# 译者:注æ„ä¿æŒå‰å¯¼ç©ºæ ¼
-#: wt-status.c:1436
+#: wt-status.c:1445
msgid " (use \"git rebase --skip\" to skip this patch)"
msgstr " (使用 \"git rebase --skip\" 跳过此补ä¸ï¼‰"
# 译者:注æ„ä¿æŒå‰å¯¼ç©ºæ ¼
-#: wt-status.c:1438
+#: wt-status.c:1447
msgid " (use \"git rebase --abort\" to check out the original branch)"
msgstr " (使用 \"git rebase --abort\" 以检出原有分支)"
# 译者:注æ„ä¿æŒå‰å¯¼ç©ºæ ¼
-#: wt-status.c:1445
+#: wt-status.c:1454
msgid " (all conflicts fixed: run \"git rebase --continue\")"
msgstr " (所有冲çªå·²è§£å†³ï¼šè¿è¡Œ \"git rebase --continue\")"
-#: wt-status.c:1449
+#: wt-status.c:1458
#, c-format
msgid ""
"You are currently splitting a commit while rebasing branch '%s' on '%s'."
msgstr "您在执行将分支 '%s' å˜åŸºåˆ° '%s' çš„æ“作时拆分æ交。"
-#: wt-status.c:1454
+#: wt-status.c:1463
msgid "You are currently splitting a commit during a rebase."
msgstr "您在执行å˜åŸºæ“作时拆分æ交。"
# 译者:注æ„ä¿æŒå‰å¯¼ç©ºæ ¼
-#: wt-status.c:1457
+#: wt-status.c:1466
msgid " (Once your working directory is clean, run \"git rebase --continue\")"
msgstr " (一旦您工作目录æ交干净åŽï¼Œè¿è¡Œ \"git rebase --continue\")"
-#: wt-status.c:1461
+#: wt-status.c:1470
#, c-format
msgid "You are currently editing a commit while rebasing branch '%s' on '%s'."
msgstr "您在执行将分支 '%s' å˜åŸºåˆ° '%s' çš„æ“作时编辑æ交。"
-#: wt-status.c:1466
+#: wt-status.c:1475
msgid "You are currently editing a commit during a rebase."
msgstr "您在执行å˜åŸºæ“作时编辑æ交。"
# 译者:注æ„ä¿æŒå‰å¯¼ç©ºæ ¼
-#: wt-status.c:1469
+#: wt-status.c:1478
msgid " (use \"git commit --amend\" to amend the current commit)"
msgstr " (使用 \"git commit --amend\" 修补当å‰æ交)"
# 译者:注æ„ä¿æŒå‰å¯¼ç©ºæ ¼
-#: wt-status.c:1471
+#: wt-status.c:1480
msgid ""
" (use \"git rebase --continue\" once you are satisfied with your changes)"
msgstr " (当您对您的修改满æ„åŽæ‰§è¡Œ \"git rebase --continue\")"
-#: wt-status.c:1482
+#: wt-status.c:1491
msgid "Cherry-pick currently in progress."
msgstr "拣选æ“作正在进行中。"
-#: wt-status.c:1485
+#: wt-status.c:1494
#, c-format
msgid "You are currently cherry-picking commit %s."
msgstr "您在执行拣选æ交 %s çš„æ“作。"
# 译者:注æ„ä¿æŒå‰å¯¼ç©ºæ ¼
-#: wt-status.c:1492
+#: wt-status.c:1501
msgid " (fix conflicts and run \"git cherry-pick --continue\")"
msgstr " (解决冲çªå¹¶è¿è¡Œ \"git cherry-pick --continue\")"
# 译者:注æ„ä¿æŒå‰å¯¼ç©ºæ ¼
-#: wt-status.c:1495
+#: wt-status.c:1504
msgid " (run \"git cherry-pick --continue\" to continue)"
msgstr " (执行 \"git cherry-pick --continue\" 以继续)"
# 译者:注æ„ä¿æŒå‰å¯¼ç©ºæ ¼
-#: wt-status.c:1498
+#: wt-status.c:1507
msgid " (all conflicts fixed: run \"git cherry-pick --continue\")"
msgstr " (所有冲çªå·²è§£å†³ï¼šè¿è¡Œ \"git cherry-pick --continue\")"
# 译者:注æ„ä¿æŒå‰å¯¼ç©ºæ ¼
-#: wt-status.c:1500
+#: wt-status.c:1509
msgid " (use \"git cherry-pick --skip\" to skip this patch)"
msgstr " (使用 \"git cherry-pick --skip\" 跳过此补ä¸ï¼‰"
# 译者:注æ„ä¿æŒå‰å¯¼ç©ºæ ¼
-#: wt-status.c:1502
+#: wt-status.c:1511
msgid " (use \"git cherry-pick --abort\" to cancel the cherry-pick operation)"
msgstr " (使用 \"git cherry-pick --abort\" 以å–消拣选æ“作)"
-#: wt-status.c:1512
+#: wt-status.c:1521
msgid "Revert currently in progress."
msgstr "还原æ“作正在行中。"
-#: wt-status.c:1515
+#: wt-status.c:1524
#, c-format
msgid "You are currently reverting commit %s."
msgstr "您在执行å转æ交 %s çš„æ“作。"
# 译者:注æ„ä¿æŒå‰å¯¼ç©ºæ ¼
-#: wt-status.c:1521
+#: wt-status.c:1530
msgid " (fix conflicts and run \"git revert --continue\")"
msgstr " (解决冲çªå¹¶æ‰§è¡Œ \"git revert --continue\")"
# 译者:注æ„ä¿æŒå‰å¯¼ç©ºæ ¼
-#: wt-status.c:1524
+#: wt-status.c:1533
msgid " (run \"git revert --continue\" to continue)"
msgstr " (执行 \"git revert --continue\" 以继续)"
# 译者:注æ„ä¿æŒå‰å¯¼ç©ºæ ¼
-#: wt-status.c:1527
+#: wt-status.c:1536
msgid " (all conflicts fixed: run \"git revert --continue\")"
msgstr " (所有冲çªå·²è§£å†³ï¼šæ‰§è¡Œ \"git revert --continue\")"
# 译者:注æ„ä¿æŒå‰å¯¼ç©ºæ ¼
-#: wt-status.c:1529
+#: wt-status.c:1538
msgid " (use \"git revert --skip\" to skip this patch)"
msgstr " (使用 \"git revert --skip\" 跳过此补ä¸ï¼‰"
# 译者:注æ„ä¿æŒå‰å¯¼ç©ºæ ¼
-#: wt-status.c:1531
+#: wt-status.c:1540
msgid " (use \"git revert --abort\" to cancel the revert operation)"
msgstr " (使用 \"git revert --abort\" 以å–消å转æ交æ“作)"
-#: wt-status.c:1541
+#: wt-status.c:1550
#, c-format
msgid "You are currently bisecting, started from branch '%s'."
msgstr "您在执行从分支 '%s' 开始的二分查找æ“作。"
-#: wt-status.c:1545
+#: wt-status.c:1554
msgid "You are currently bisecting."
msgstr "您在执行二分查找æ“作。"
# 译者:注æ„ä¿æŒå‰å¯¼ç©ºæ ¼
-#: wt-status.c:1548
+#: wt-status.c:1557
msgid " (use \"git bisect reset\" to get back to the original branch)"
msgstr " (使用 \"git bisect reset\" 以回到原有分支)"
-#: wt-status.c:1559
+#: wt-status.c:1568
msgid "You are in a sparse checkout."
msgstr "您处于一个稀ç–检出中。"
-#: wt-status.c:1562
+#: wt-status.c:1571
#, c-format
msgid "You are in a sparse checkout with %d%% of tracked files present."
msgstr "您处于稀ç–检出状æ€ï¼ŒåŒ…å« %d%% 的跟踪文件"
-#: wt-status.c:1806
+#: wt-status.c:1815
msgid "On branch "
msgstr "ä½äºŽåˆ†æ”¯ "
-#: wt-status.c:1813
+#: wt-status.c:1822
msgid "interactive rebase in progress; onto "
msgstr "交互å¼å˜åŸºæ“作正在进行中;至 "
-#: wt-status.c:1815
+#: wt-status.c:1824
msgid "rebase in progress; onto "
msgstr "å˜åŸºæ“作正在进行中;至 "
-#: wt-status.c:1820
+#: wt-status.c:1829
msgid "HEAD detached at "
msgstr "头指针分离于 "
-#: wt-status.c:1822
+#: wt-status.c:1831
msgid "HEAD detached from "
msgstr "头指针分离自 "
-#: wt-status.c:1825
+#: wt-status.c:1834
msgid "Not currently on any branch."
msgstr "当å‰ä¸åœ¨ä»»ä½•åˆ†æ”¯ä¸Šã€‚"
-#: wt-status.c:1842
+#: wt-status.c:1851
msgid "Initial commit"
msgstr "åˆå§‹æ交"
-#: wt-status.c:1843
+#: wt-status.c:1852
msgid "No commits yet"
msgstr "å°šæ— æ交"
-#: wt-status.c:1857
+#: wt-status.c:1866
msgid "Untracked files"
msgstr "未跟踪的文件"
-#: wt-status.c:1859
+#: wt-status.c:1868
msgid "Ignored files"
msgstr "忽略的文件"
-#: wt-status.c:1863
+#: wt-status.c:1872
#, c-format
msgid ""
"It took %.2f seconds to enumerate untracked files. 'status -uno'\n"
@@ -10151,94 +10407,94 @@ msgstr ""
"耗费了 %.2f 秒以枚举未跟踪的文件。'status -uno' 也许能æ高速度,\n"
"但您需è¦å°å¿ƒä¸è¦å¿˜äº†æ·»åŠ æ–°æ–‡ä»¶ï¼ˆå‚è§ 'git help status')。"
-#: wt-status.c:1869
+#: wt-status.c:1878
#, c-format
msgid "Untracked files not listed%s"
msgstr "未跟踪的文件没有列出%s"
# 译者:中文字符串拼接,å¯åˆ é™¤å‰å¯¼ç©ºæ ¼
-#: wt-status.c:1871
+#: wt-status.c:1880
msgid " (use -u option to show untracked files)"
msgstr "(使用 -u å‚数显示未跟踪的文件)"
-#: wt-status.c:1877
+#: wt-status.c:1886
msgid "No changes"
msgstr "没有修改"
-#: wt-status.c:1882
+#: wt-status.c:1891
#, 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:1886
+#: wt-status.c:1895
#, c-format
msgid "no changes added to commit\n"
msgstr "修改尚未加入æ交\n"
-#: wt-status.c:1890
+#: wt-status.c:1899
#, c-format
msgid ""
"nothing added to commit but untracked files present (use \"git add\" to "
"track)\n"
msgstr "æ交为空,但是存在尚未跟踪的文件(使用 \"git add\" 建立跟踪)\n"
-#: wt-status.c:1894
+#: wt-status.c:1903
#, c-format
msgid "nothing added to commit but untracked files present\n"
msgstr "æ交为空,但是存在尚未跟踪的文件\n"
-#: wt-status.c:1898
+#: wt-status.c:1907
#, c-format
msgid "nothing to commit (create/copy files and use \"git add\" to track)\n"
msgstr "无文件è¦æ交(创建/æ‹·è´æ–‡ä»¶å¹¶ä½¿ç”¨ \"git add\" 建立跟踪)\n"
-#: wt-status.c:1902 wt-status.c:1908
+#: wt-status.c:1911 wt-status.c:1917
#, c-format
msgid "nothing to commit\n"
msgstr "无文件è¦æ交\n"
-#: wt-status.c:1905
+#: wt-status.c:1914
#, c-format
msgid "nothing to commit (use -u to show untracked files)\n"
msgstr "无文件è¦æ交(使用 -u 显示未跟踪的文件)\n"
-#: wt-status.c:1910
+#: wt-status.c:1919
#, c-format
msgid "nothing to commit, working tree clean\n"
msgstr "无文件è¦æ交,干净的工作区\n"
-#: wt-status.c:2015
+#: wt-status.c:2024
msgid "No commits yet on "
msgstr "å°šæ— æ交在 "
-#: wt-status.c:2019
+#: wt-status.c:2028
msgid "HEAD (no branch)"
msgstr "HEAD(éžåˆ†æ”¯ï¼‰"
-#: wt-status.c:2050
+#: wt-status.c:2059
msgid "different"
msgstr "ä¸åŒ"
# 译者:注æ„ä¿æŒå¥å°¾ç©ºæ ¼
-#: wt-status.c:2052 wt-status.c:2060
+#: wt-status.c:2061 wt-status.c:2069
msgid "behind "
msgstr "è½åŽ "
-#: wt-status.c:2055 wt-status.c:2058
+#: wt-status.c:2064 wt-status.c:2067
msgid "ahead "
msgstr "领先 "
#. TRANSLATORS: the action is e.g. "pull with rebase"
-#: wt-status.c:2596
+#: wt-status.c:2605
#, c-format
msgid "cannot %s: You have unstaged changes."
msgstr "ä¸èƒ½%s:您有未暂存的å˜æ›´ã€‚"
-#: wt-status.c:2602
+#: wt-status.c:2611
msgid "additionally, your index contains uncommitted changes."
msgstr "å¦å¤–,您的索引中包å«æœªæ交的å˜æ›´ã€‚"
-#: wt-status.c:2604
+#: wt-status.c:2613
#, c-format
msgid "cannot %s: Your index contains uncommitted changes."
msgstr "ä¸èƒ½%s:您的索引中包å«æœªæ交的å˜æ›´ã€‚"
@@ -10261,145 +10517,149 @@ msgstr "无法å¯åŠ¨ accept_thread '%s'"
msgid "could not start worker[0] for '%s'"
msgstr "无法å¯åŠ¨ '%s' çš„ worker[0]"
-#: compat/precompose_utf8.c:58 builtin/clone.c:347
+#: compat/precompose_utf8.c:58 builtin/clone.c:353
#, c-format
msgid "failed to unlink '%s'"
msgstr "无法删除 '%s'"
+#: compat/fsmonitor/fsm-listen-darwin.c:355
+msgid "Unable to create FSEventStream."
+msgstr "无法创建 FSEventStream。"
+
+#: compat/fsmonitor/fsm-listen-darwin.c:403
+msgid "Failed to start the FSEventStream"
+msgstr "无法å¯åŠ¨ FSEventStream"
+
#: builtin/add.c:26
msgid "git add [<options>] [--] <pathspec>..."
msgstr "git add [<选项>] [--] <路径规格>..."
-#: builtin/add.c:64
+#: builtin/add.c:63
#, c-format
msgid "cannot chmod %cx '%s'"
msgstr "ä¸èƒ½ chmod %cx '%s'"
-#: builtin/add.c:106
+#: builtin/add.c:105
#, c-format
msgid "unexpected diff status %c"
msgstr "æ„å¤–çš„å·®å¼‚çŠ¶æ€ %c"
-#: builtin/add.c:111 builtin/commit.c:298
+#: builtin/add.c:110 builtin/commit.c:299
msgid "updating files failed"
msgstr "更新文件失败"
-#: builtin/add.c:121
+#: builtin/add.c:120
#, c-format
msgid "remove '%s'\n"
msgstr "删除 '%s'\n"
-#: builtin/add.c:205
+#: builtin/add.c:204
msgid "Unstaged changes after refreshing the index:"
msgstr "刷新索引之åŽå°šæœªè¢«æš‚存的å˜æ›´ï¼š"
-#: builtin/add.c:313 builtin/rev-parse.c:993
+#: builtin/add.c:312 builtin/rev-parse.c:993
msgid "Could not read the index"
msgstr "ä¸èƒ½è¯»å–索引"
-#: builtin/add.c:326
+#: builtin/add.c:325
msgid "Could not write patch"
msgstr "ä¸èƒ½ç”Ÿæˆè¡¥ä¸"
-#: builtin/add.c:329
+#: builtin/add.c:328
msgid "editing patch failed"
msgstr "编辑补ä¸å¤±è´¥"
-#: builtin/add.c:332
+#: builtin/add.c:331
#, c-format
msgid "Could not stat '%s'"
msgstr "ä¸èƒ½å¯¹ '%s' 调用 stat"
-#: builtin/add.c:334
+#: builtin/add.c:333
msgid "Empty patch. Aborted."
msgstr "空补ä¸ã€‚异常终止。"
-#: builtin/add.c:340
+#: builtin/add.c:339
#, c-format
msgid "Could not apply '%s'"
msgstr "ä¸èƒ½åº”用 '%s'"
-#: builtin/add.c:348
+#: builtin/add.c:347
msgid "The following paths are ignored by one of your .gitignore files:\n"
msgstr "下列路径根æ®æ‚¨çš„一个 .gitignore 文件而被忽略:\n"
-#: builtin/add.c:368 builtin/clean.c:927 builtin/fetch.c:174 builtin/mv.c:124
+#: builtin/add.c:367 builtin/clean.c:927 builtin/fetch.c:175 builtin/mv.c:124
#: builtin/prune-packed.c:14 builtin/pull.c:208 builtin/push.c:550
-#: builtin/remote.c:1429 builtin/rm.c:244 builtin/send-pack.c:194
+#: builtin/remote.c:1454 builtin/rm.c:244 builtin/send-pack.c:194
msgid "dry run"
msgstr "演习"
-#: builtin/add.c:369 builtin/check-ignore.c:22 builtin/commit.c:1484
-#: builtin/count-objects.c:98 builtin/fsck.c:789 builtin/log.c:2313
+#: builtin/add.c:368 builtin/check-ignore.c:22 builtin/commit.c:1483
+#: builtin/count-objects.c:98 builtin/fsck.c:789 builtin/log.c:2338
#: builtin/mv.c:123 builtin/read-tree.c:120
msgid "be verbose"
msgstr "冗长输出"
-#: builtin/add.c:371
+#: builtin/add.c:370
msgid "interactive picking"
msgstr "交互å¼æ‹£é€‰"
-#: builtin/add.c:372 builtin/checkout.c:1581 builtin/reset.c:409
+#: builtin/add.c:371 builtin/checkout.c:1599 builtin/reset.c:417
msgid "select hunks interactively"
msgstr "交互å¼æŒ‘选数æ®å—"
-#: builtin/add.c:373
+#: builtin/add.c:372
msgid "edit current diff and apply"
msgstr "编辑当å‰å·®å¼‚并应用"
-#: builtin/add.c:374
+#: builtin/add.c:373
msgid "allow adding otherwise ignored files"
msgstr "å…许添加忽略的文件"
-#: builtin/add.c:375
+#: builtin/add.c:374
msgid "update tracked files"
msgstr "更新已跟踪的文件"
-#: builtin/add.c:376
+#: builtin/add.c:375
msgid "renormalize EOL of tracked files (implies -u)"
msgstr "å¯¹å·²è·Ÿè¸ªæ–‡ä»¶ï¼ˆæš—å« -u)é‡æ–°å½’一æ¢è¡Œç¬¦"
-#: builtin/add.c:377
+#: builtin/add.c:376
msgid "record only the fact that the path will be added later"
msgstr "åªè®°å½•ï¼Œè¯¥è·¯å¾„ç¨åŽå†æ·»åŠ "
-#: builtin/add.c:378
+#: builtin/add.c:377
msgid "add changes from all tracked and untracked files"
msgstr "添加所有改å˜çš„已跟踪文件和未跟踪文件"
-#: builtin/add.c:381
+#: builtin/add.c:380
msgid "ignore paths removed in the working tree (same as --no-all)"
msgstr "忽略工作区中移除的路径(和 --no-all 相åŒï¼‰"
-#: builtin/add.c:383
+#: builtin/add.c:382
msgid "don't add, only refresh the index"
msgstr "ä¸æ·»åŠ ï¼Œåªåˆ·æ–°ç´¢å¼•"
-#: builtin/add.c:384
+#: builtin/add.c:383
msgid "just skip files which cannot be added because of errors"
msgstr "跳过因出错ä¸èƒ½æ·»åŠ çš„文件"
-#: builtin/add.c:385
+#: builtin/add.c:384
msgid "check if - even missing - files are ignored in dry run"
msgstr "检查在演习模å¼ä¸‹æ–‡ä»¶ï¼ˆå³ä½¿ä¸å­˜åœ¨ï¼‰æ˜¯å¦è¢«å¿½ç•¥"
-#: builtin/add.c:386 builtin/mv.c:128 builtin/rm.c:251
+#: builtin/add.c:385 builtin/mv.c:128 builtin/rm.c:251
msgid "allow updating entries outside of the sparse-checkout cone"
msgstr "å…许更新稀ç–检出锥以外的æ¡ç›®"
-#: builtin/add.c:388 builtin/update-index.c:1004
+#: builtin/add.c:387 builtin/update-index.c:1023
msgid "override the executable bit of the listed files"
msgstr "覆盖列表里文件的å¯æ‰§è¡Œä½"
-#: builtin/add.c:390
+#: builtin/add.c:389
msgid "warn when adding an embedded repository"
msgstr "创建一个嵌入å¼ä»“库时给予警告"
-#: builtin/add.c:392
-msgid "backend for `git stash -p`"
-msgstr "`git stash -p` çš„åŽç«¯"
-
-#: builtin/add.c:410
+#: builtin/add.c:407
#, c-format
msgid ""
"You've added another git repository inside your current repository.\n"
@@ -10427,12 +10687,12 @@ msgstr ""
"\n"
"å‚è§ \"git help submodule\" 获å–更多信æ¯ã€‚"
-#: builtin/add.c:439
+#: builtin/add.c:436
#, c-format
msgid "adding embedded git repository: %s"
msgstr "æ­£åœ¨æ·»åŠ åµŒå…¥å¼ git 仓库:%s"
-#: builtin/add.c:459
+#: builtin/add.c:456
msgid ""
"Use -f if you really want to add them.\n"
"Turn this message off by running\n"
@@ -10442,27 +10702,27 @@ msgstr ""
"è¿è¡Œä¸‹é¢çš„命令æ¥å…³é—­æœ¬æ¶ˆæ¯\n"
"\"git config advice.addIgnoredFile false\""
-#: builtin/add.c:474
+#: builtin/add.c:471
msgid "adding files failed"
msgstr "添加文件失败"
-#: builtin/add.c:548
+#: builtin/add.c:534
#, c-format
msgid "--chmod param '%s' must be either -x or +x"
msgstr "å‚æ•° --chmod å–值 '%s' 必须是 -x 或 +x"
-#: builtin/add.c:569 builtin/checkout.c:1751 builtin/commit.c:364
-#: builtin/reset.c:429 builtin/rm.c:275 builtin/stash.c:1713
+#: builtin/add.c:555 builtin/checkout.c:1770 builtin/commit.c:365
+#: builtin/reset.c:436 builtin/rm.c:275 builtin/stash.c:1702
#, c-format
msgid "'%s' and pathspec arguments cannot be used together"
msgstr "'%s' 和路径规格å‚æ•°ä¸èƒ½åŒæ—¶ä½¿ç”¨"
-#: builtin/add.c:580
+#: builtin/add.c:566
#, c-format
msgid "Nothing specified, nothing added.\n"
msgstr "没有指定文件,也没有文件被添加。\n"
-#: builtin/add.c:582
+#: builtin/add.c:568
msgid ""
"Maybe you wanted to say 'git add .'?\n"
"Turn this message off by running\n"
@@ -10472,111 +10732,106 @@ msgstr ""
"è¿è¡Œä¸‹é¢çš„命令æ¥å…³é—­æœ¬æ¶ˆæ¯\n"
"\"git config advice.addEmptyPathspec false\""
-#: builtin/am.c:202
-#, c-format
-msgid "Invalid value for --empty: %s"
-msgstr "--empty 的值无效:%s"
-
-#: builtin/am.c:392
+#: builtin/am.c:393
msgid "could not parse author script"
msgstr "ä¸èƒ½è§£æžä½œè€…脚本"
-#: builtin/am.c:482
+#: builtin/am.c:483
#, c-format
msgid "'%s' was deleted by the applypatch-msg hook"
msgstr "'%s' 被 applypatch-msg é’©å­åˆ é™¤"
-#: builtin/am.c:524
+#: builtin/am.c:525
#, c-format
msgid "Malformed input line: '%s'."
msgstr "éžæ³•çš„输入行:'%s'。"
-#: builtin/am.c:562
+#: builtin/am.c:563
#, c-format
msgid "Failed to copy notes from '%s' to '%s'"
msgstr "从 '%s' æ‹·è´æ³¨è§£åˆ° '%s' 时失败"
-#: builtin/am.c:588
+#: builtin/am.c:589
msgid "fseek failed"
msgstr "fseek 失败"
-#: builtin/am.c:776
+#: builtin/am.c:777
#, c-format
msgid "could not parse patch '%s'"
msgstr "无法解æžè¡¥ä¸ '%s'"
-#: builtin/am.c:841
+#: builtin/am.c:842
msgid "Only one StGIT patch series can be applied at once"
msgstr "一次åªèƒ½æœ‰ä¸€ä¸ª StGIT è¡¥ä¸é˜Ÿåˆ—被应用"
-#: builtin/am.c:889
+#: builtin/am.c:890
msgid "invalid timestamp"
msgstr "无效的时间戳"
-#: builtin/am.c:894 builtin/am.c:906
+#: builtin/am.c:895 builtin/am.c:907
msgid "invalid Date line"
msgstr "无效的日期行"
-#: builtin/am.c:901
+#: builtin/am.c:902
msgid "invalid timezone offset"
msgstr "无效的时区å移值"
-#: builtin/am.c:994
+#: builtin/am.c:995
msgid "Patch format detection failed."
msgstr "è¡¥ä¸æ ¼å¼æŽ¢æµ‹å¤±è´¥ã€‚"
-#: builtin/am.c:999 builtin/clone.c:300
+#: builtin/am.c:1000 builtin/clone.c:306
#, c-format
msgid "failed to create directory '%s'"
msgstr "无法创建目录 '%s'"
-#: builtin/am.c:1004
+#: builtin/am.c:1005
msgid "Failed to split patches."
msgstr "无法拆分补ä¸ã€‚"
-#: builtin/am.c:1153
+#: builtin/am.c:1154
#, c-format
msgid "When you have resolved this problem, run \"%s --continue\"."
msgstr "当您解决这一问题,执行 \"%s --continue\"。"
-#: builtin/am.c:1154
+#: builtin/am.c:1155
#, c-format
msgid "If you prefer to skip this patch, run \"%s --skip\" instead."
msgstr "如果您想è¦è·³è¿‡è¿™ä¸€è¡¥ä¸ï¼Œåˆ™æ‰§è¡Œ \"%s --skip\"。"
-#: builtin/am.c:1159
+#: builtin/am.c:1160
#, c-format
msgid "To record the empty patch as an empty commit, run \"%s --allow-empty\"."
msgstr "è‹¥è¦æŠŠç©ºè¡¥ä¸è®°å½•ä¸ºç©ºæ交,执行 \"%s --allow-empty\"。"
-#: builtin/am.c:1161
+#: builtin/am.c:1162
#, c-format
msgid "To restore the original branch and stop patching, run \"%s --abort\"."
msgstr "è‹¥è¦å¤åŽŸè‡³åŽŸå§‹åˆ†æ”¯å¹¶åœæ­¢è¡¥ä¸æ“作,执行 \"%s --abort\"。"
-#: builtin/am.c:1256
+#: builtin/am.c:1257
msgid "Patch sent with format=flowed; space at the end of lines might be lost."
msgstr "è¡¥ä¸ä½¿ç”¨ format=flowed æ ¼å¼å‘é€ï¼Œè¡Œå°¾çš„空格å¯èƒ½ä¼šä¸¢å¤±ã€‚"
-#: builtin/am.c:1344
+#: builtin/am.c:1345
#, c-format
msgid "missing author line in commit %s"
msgstr "在æ交 %s 中缺失作者行"
-#: builtin/am.c:1347
+#: builtin/am.c:1348
#, c-format
msgid "invalid ident line: %.*s"
msgstr "无效的身份标识:%.*s"
-#: builtin/am.c:1566
+#: builtin/am.c:1567
msgid "Repository lacks necessary blobs to fall back on 3-way merge."
msgstr "仓库缺ä¹å¿…è¦çš„æ•°æ®å¯¹è±¡ä»¥è¿›è¡Œä¸‰æ–¹åˆå¹¶ã€‚"
-#: builtin/am.c:1568
+#: builtin/am.c:1569
msgid "Using index info to reconstruct a base tree..."
msgstr "使用索引æ¥é‡å»ºä¸€ä¸ªï¼ˆä¸‰æ–¹åˆå¹¶çš„)基础目录树..."
-#: builtin/am.c:1587
+#: builtin/am.c:1588
msgid ""
"Did you hand edit your patch?\n"
"It does not apply to blobs recorded in its index."
@@ -10584,24 +10839,24 @@ msgstr ""
"您是å¦æ›¾æ‰‹åŠ¨ç¼–辑过您的补ä¸ï¼Ÿ\n"
"无法应用补ä¸åˆ°ç´¢å¼•ä¸­çš„æ•°æ®å¯¹è±¡ä¸Šã€‚"
-#: builtin/am.c:1593
+#: builtin/am.c:1594
msgid "Falling back to patching base and 3-way merge..."
msgstr "回è½åˆ°åŸºç¡€ç‰ˆæœ¬ä¸Šæ‰“è¡¥ä¸åŠè¿›è¡Œä¸‰æ–¹åˆå¹¶..."
-#: builtin/am.c:1619
+#: builtin/am.c:1620
msgid "Failed to merge in the changes."
msgstr "无法åˆå¹¶å˜æ›´ã€‚"
-#: builtin/am.c:1651
+#: builtin/am.c:1652
msgid "applying to an empty history"
msgstr "正应用到一个空历å²ä¸Š"
-#: builtin/am.c:1703 builtin/am.c:1707
+#: builtin/am.c:1704 builtin/am.c:1708
#, c-format
msgid "cannot resume: %s does not exist."
msgstr "无法继续:%s ä¸å­˜åœ¨ã€‚"
-#: builtin/am.c:1725
+#: builtin/am.c:1726
msgid "Commit Body is:"
msgstr "æ交内容为:"
@@ -10609,57 +10864,57 @@ msgstr "æ交内容为:"
#. in your translation. The program will only accept English
#. input at this point.
#.
-#: builtin/am.c:1735
+#: builtin/am.c:1736
#, c-format
msgid "Apply? [y]es/[n]o/[e]dit/[v]iew patch/[a]ccept all: "
msgstr "应用?是[y]/å¦[n]/编辑[e]/查看补ä¸[v]/应用所有[a]:"
-#: builtin/am.c:1781 builtin/commit.c:409
+#: builtin/am.c:1782 builtin/commit.c:410
msgid "unable to write index file"
msgstr "无法写入索引文件"
-#: builtin/am.c:1785
+#: builtin/am.c:1786
#, c-format
msgid "Dirty index: cannot apply patches (dirty: %s)"
msgstr "è„索引:ä¸èƒ½åº”用补ä¸ï¼ˆè„文件:%s)"
-#: builtin/am.c:1827
+#: builtin/am.c:1828
#, c-format
msgid "Skipping: %.*s"
msgstr "跳过:%.*s"
-#: builtin/am.c:1832
+#: builtin/am.c:1833
#, c-format
msgid "Creating an empty commit: %.*s"
msgstr "创建空æ交:%.*s"
-#: builtin/am.c:1836
+#: builtin/am.c:1837
msgid "Patch is empty."
msgstr "è¡¥ä¸ä¸ºç©ºã€‚"
-#: builtin/am.c:1847 builtin/am.c:1916
+#: builtin/am.c:1848 builtin/am.c:1917
#, c-format
msgid "Applying: %.*s"
msgstr "应用:%.*s"
-#: builtin/am.c:1864
+#: builtin/am.c:1865
msgid "No changes -- Patch already applied."
msgstr "没有å˜æ›´ —— è¡¥ä¸å·²ç»åº”用过。"
-#: builtin/am.c:1870
+#: builtin/am.c:1871
#, c-format
msgid "Patch failed at %s %.*s"
msgstr "打补ä¸å¤±è´¥äºŽ %s %.*s"
-#: builtin/am.c:1874
+#: builtin/am.c:1875
msgid "Use 'git am --show-current-patch=diff' to see the failed patch"
msgstr "用 'git am --show-current-patch=diff' 命令查看失败的补ä¸"
-#: builtin/am.c:1920
+#: builtin/am.c:1921
msgid "No changes - recorded it as an empty commit."
msgstr "没有å˜æ›´ —— 记录为空æ交。"
-#: builtin/am.c:1922
+#: builtin/am.c:1923
msgid ""
"No changes - did you forget to use 'git add'?\n"
"If there is nothing left to stage, chances are that something else\n"
@@ -10669,7 +10924,7 @@ msgstr ""
"如果没有什么è¦æ·»åŠ åˆ°æš‚存区的,则很å¯èƒ½æ˜¯å…¶å®ƒæ交已ç»å¼•å…¥äº†ç›¸åŒçš„å˜æ›´ã€‚\n"
"您也许想è¦è·³è¿‡è¿™ä¸ªè¡¥ä¸ã€‚"
-#: builtin/am.c:1930
+#: builtin/am.c:1931
msgid ""
"You still have unmerged paths in your index.\n"
"You should 'git add' each file with resolved conflicts to mark them as "
@@ -10680,183 +10935,174 @@ msgstr ""
"您应该对已ç»å†²çªè§£å†³çš„æ¯ä¸€ä¸ªæ–‡ä»¶æ‰§è¡Œ 'git add' æ¥æ ‡è®°å·²ç»å®Œæˆã€‚ \n"
"您å¯ä»¥å¯¹ \"由他们删除\" 的文件执行 `git rm` 命令。"
-#: builtin/am.c:2038 builtin/am.c:2042 builtin/am.c:2054 builtin/reset.c:448
-#: builtin/reset.c:456
+#: builtin/am.c:2039 builtin/am.c:2043 builtin/am.c:2055 builtin/reset.c:455
+#: builtin/reset.c:463
#, c-format
msgid "Could not parse object '%s'."
msgstr "ä¸èƒ½è§£æžå¯¹è±¡ '%s'。"
-#: builtin/am.c:2090 builtin/am.c:2166
+#: builtin/am.c:2091 builtin/am.c:2167
msgid "failed to clean index"
msgstr "无法清空索引"
-#: builtin/am.c:2134
+#: builtin/am.c:2135
msgid ""
"You seem to have moved HEAD since the last 'am' failure.\n"
"Not rewinding to ORIG_HEAD"
msgstr "您好åƒåœ¨ä¸Šä¸€æ¬¡ 'am' 失败åŽç§»åŠ¨äº† HEAD。未回退至 ORIG_HEAD"
-#: builtin/am.c:2242
-#, c-format
-msgid "Invalid value for --patch-format: %s"
-msgstr "无效的 --patch-format 值:%s"
-
-#: builtin/am.c:2285
-#, c-format
-msgid "Invalid value for --show-current-patch: %s"
-msgstr "无效的 --show-current-patch 值:%s"
-
-#: builtin/am.c:2289
+#: builtin/am.c:2292
#, c-format
msgid "options '%s=%s' and '%s=%s' cannot be used together"
msgstr "选项 '%s=%s' å’Œ '%s=%s' ä¸èƒ½åŒæ—¶ä½¿ç”¨"
-#: builtin/am.c:2320
+#: builtin/am.c:2323
msgid "git am [<options>] [(<mbox> | <Maildir>)...]"
msgstr "git am [<选项>] [(<mbox> | <Maildir>)...]"
-#: builtin/am.c:2321
+#: builtin/am.c:2324
msgid "git am [<options>] (--continue | --skip | --abort)"
msgstr "git am [<选项>] (--continue | --skip | --abort)"
-#: builtin/am.c:2327
+#: builtin/am.c:2330
msgid "run interactively"
msgstr "以交互å¼æ–¹å¼è¿è¡Œ"
-#: builtin/am.c:2329
+#: builtin/am.c:2332
msgid "historical option -- no-op"
msgstr "è€çš„å‚æ•° —— 无作用"
-#: builtin/am.c:2331
+#: builtin/am.c:2334
msgid "allow fall back on 3way merging if needed"
msgstr "如果必è¦ï¼Œå…许使用三方åˆå¹¶ã€‚"
-#: builtin/am.c:2332 builtin/init-db.c:547 builtin/prune-packed.c:16
-#: builtin/repack.c:642 builtin/stash.c:962
+#: builtin/am.c:2335 builtin/init-db.c:547 builtin/prune-packed.c:16
+#: builtin/repack.c:646 builtin/stash.c:946
msgid "be quiet"
msgstr "é™é»˜æ¨¡å¼"
-#: builtin/am.c:2334
+#: builtin/am.c:2337
msgid "add a Signed-off-by trailer to the commit message"
msgstr "在æ交说明中添加 Signed-off-by 尾注"
-#: builtin/am.c:2337
+#: builtin/am.c:2340
msgid "recode into utf8 (default)"
msgstr "使用 utf8 字符集(默认)"
-#: builtin/am.c:2339
+#: builtin/am.c:2342
msgid "pass -k flag to git-mailinfo"
msgstr "å‘ git-mailinfo 传递 -k å‚æ•°"
-#: builtin/am.c:2341
+#: builtin/am.c:2344
msgid "pass -b flag to git-mailinfo"
msgstr "å‘ git-mailinfo 传递 -b å‚æ•°"
-#: builtin/am.c:2343
+#: builtin/am.c:2346
msgid "pass -m flag to git-mailinfo"
msgstr "å‘ git-mailinfo 传递 -m å‚æ•°"
-#: builtin/am.c:2345
+#: builtin/am.c:2348
msgid "pass --keep-cr flag to git-mailsplit for mbox format"
msgstr "针对 mbox æ ¼å¼ï¼Œå‘ git-mailsplit 传递 --keep-cr å‚æ•°"
-#: builtin/am.c:2348
+#: builtin/am.c:2351
msgid "do not pass --keep-cr flag to git-mailsplit independent of am.keepcr"
msgstr "ä¸å‘ git-mailsplit 传递 --keep-cr å‚数,覆盖 am.keepcr 的设置"
-#: builtin/am.c:2351
+#: builtin/am.c:2354
msgid "strip everything before a scissors line"
msgstr "丢弃è£åˆ‡çº¿å‰çš„所有内容"
-#: builtin/am.c:2353
+#: builtin/am.c:2356
msgid "pass it through git-mailinfo"
msgstr "传递给 git-mailinfo"
-#: builtin/am.c:2356 builtin/am.c:2359 builtin/am.c:2362 builtin/am.c:2365
-#: builtin/am.c:2368 builtin/am.c:2371 builtin/am.c:2374 builtin/am.c:2377
-#: builtin/am.c:2383
+#: builtin/am.c:2359 builtin/am.c:2362 builtin/am.c:2365 builtin/am.c:2368
+#: builtin/am.c:2371 builtin/am.c:2374 builtin/am.c:2377 builtin/am.c:2380
+#: builtin/am.c:2386
msgid "pass it through git-apply"
msgstr "传递给 git-apply"
-#: builtin/am.c:2373 builtin/commit.c:1515 builtin/fmt-merge-msg.c:18
-#: builtin/fmt-merge-msg.c:21 builtin/grep.c:919 builtin/merge.c:263
+#: builtin/am.c:2376 builtin/commit.c:1514 builtin/fmt-merge-msg.c:18
+#: builtin/fmt-merge-msg.c:21 builtin/grep.c:920 builtin/merge.c:263
#: builtin/pull.c:142 builtin/pull.c:204 builtin/pull.c:221
-#: builtin/rebase.c:1046 builtin/repack.c:653 builtin/repack.c:657
-#: builtin/repack.c:659 builtin/show-branch.c:649 builtin/show-ref.c:172
-#: builtin/tag.c:445 parse-options.h:154 parse-options.h:175
-#: parse-options.h:317
+#: builtin/rebase.c:1074 builtin/repack.c:657 builtin/repack.c:661
+#: builtin/repack.c:663 builtin/show-branch.c:650 builtin/show-ref.c:172
+#: builtin/tag.c:446 parse-options.h:159 parse-options.h:180
+#: parse-options.h:348
msgid "n"
msgstr "n"
-#: builtin/am.c:2379 builtin/branch.c:680 builtin/bugreport.c:109
-#: builtin/for-each-ref.c:41 builtin/replace.c:555 builtin/tag.c:479
-#: builtin/verify-tag.c:38
+#: builtin/am.c:2382 builtin/branch.c:695 builtin/bugreport.c:109
+#: builtin/cat-file.c:848 builtin/cat-file.c:852 builtin/cat-file.c:856
+#: builtin/for-each-ref.c:41 builtin/ls-tree.c:357 builtin/replace.c:555
+#: builtin/tag.c:480 builtin/verify-tag.c:38
msgid "format"
msgstr "æ ¼å¼"
-#: builtin/am.c:2380
+#: builtin/am.c:2383
msgid "format the patch(es) are in"
msgstr "è¡¥ä¸çš„æ ¼å¼"
-#: builtin/am.c:2386
+#: builtin/am.c:2389
msgid "override error message when patch failure occurs"
msgstr "打补ä¸å¤±è´¥æ—¶æ˜¾ç¤ºçš„错误信æ¯"
-#: builtin/am.c:2388
+#: builtin/am.c:2391
msgid "continue applying patches after resolving a conflict"
msgstr "冲çªè§£å†³åŽç»§ç»­åº”用补ä¸"
-#: builtin/am.c:2391
+#: builtin/am.c:2394
msgid "synonyms for --continue"
msgstr "å’Œ --continue åŒä¹‰"
-#: builtin/am.c:2394
+#: builtin/am.c:2397
msgid "skip the current patch"
msgstr "跳过当å‰è¡¥ä¸"
-#: builtin/am.c:2397
+#: builtin/am.c:2400
msgid "restore the original branch and abort the patching operation"
msgstr "æ¢å¤åŽŸå§‹åˆ†æ”¯å¹¶ç»ˆæ­¢æ‰“è¡¥ä¸æ“作"
-#: builtin/am.c:2400
+#: builtin/am.c:2403
msgid "abort the patching operation but keep HEAD where it is"
msgstr "终止补ä¸æ“作但ä¿æŒ HEAD ä¸å˜"
-#: builtin/am.c:2404
+#: builtin/am.c:2407
msgid "show the patch being applied"
msgstr "显示正在应用的补ä¸"
-#: builtin/am.c:2408
+#: builtin/am.c:2411
msgid "record the empty patch as an empty commit"
msgstr "把空补ä¸è®°å½•ä¸ºç©ºæ交"
-#: builtin/am.c:2412
+#: builtin/am.c:2415
msgid "lie about committer date"
msgstr "将作者日期作为æ交日期"
-#: builtin/am.c:2414
+#: builtin/am.c:2417
msgid "use current timestamp for author date"
msgstr "用当å‰æ—¶é—´ä½œä¸ºä½œè€…日期"
-#: builtin/am.c:2416 builtin/commit-tree.c:118 builtin/commit.c:1643
-#: builtin/merge.c:302 builtin/pull.c:179 builtin/rebase.c:1099
-#: builtin/revert.c:117 builtin/tag.c:460
+#: builtin/am.c:2419 builtin/commit-tree.c:118 builtin/commit.c:1642
+#: builtin/merge.c:302 builtin/pull.c:179 builtin/rebase.c:1127
+#: builtin/revert.c:117 builtin/tag.c:461
msgid "key-id"
msgstr "key-id"
-#: builtin/am.c:2417 builtin/rebase.c:1100
+#: builtin/am.c:2420 builtin/rebase.c:1128
msgid "GPG-sign commits"
msgstr "使用 GPG ç­¾åæ交"
-#: builtin/am.c:2420
+#: builtin/am.c:2423
msgid "how to handle empty patches"
msgstr "如何处ç†ç©ºè¡¥ä¸"
-#: builtin/am.c:2423
+#: builtin/am.c:2426
msgid "(internal use for git-rebase)"
msgstr "(内部使用,用于 git-rebase)"
-#: builtin/am.c:2441
+#: builtin/am.c:2444
msgid ""
"The -b/--binary option has been a no-op for long time, and\n"
"it will be removed. Please do not use it anymore."
@@ -10864,16 +11110,16 @@ msgstr ""
"å‚æ•° -b/--binary å·²ç»å¾ˆé•¿æ—¶é—´ä¸åšä»»ä½•å®žè´¨æ“作了,并且将被移除。\n"
"请ä¸è¦å†ä½¿ç”¨å®ƒäº†ã€‚"
-#: builtin/am.c:2448
+#: builtin/am.c:2451
msgid "failed to read the index"
msgstr "无法读å–索引"
-#: builtin/am.c:2463
+#: builtin/am.c:2466
#, c-format
msgid "previous rebase directory %s still exists but mbox given."
msgstr "之å‰çš„å˜åŸºç›®å½• %s ä»ç„¶å­˜åœ¨ï¼Œä½†å´æ供了 mbox。"
-#: builtin/am.c:2487
+#: builtin/am.c:2490
#, c-format
msgid ""
"Stray %s directory found.\n"
@@ -10882,11 +11128,11 @@ msgstr ""
"å‘现了错误的 %s 目录。\n"
"使用 \"git am --abort\" 删除它。"
-#: builtin/am.c:2493
+#: builtin/am.c:2496
msgid "Resolve operation not in progress, we are not resuming."
msgstr "解决æ“作未进行,我们ä¸ä¼šç»§ç»­ã€‚"
-#: builtin/am.c:2503
+#: builtin/am.c:2506
msgid "interactive mode requires patches on the command line"
msgstr "交互å¼æ¨¡å¼éœ€è¦å‘½ä»¤è¡Œä¸Šæ供补ä¸"
@@ -10923,14 +11169,6 @@ msgstr "git archive:应有一个 flush 包"
msgid "git bisect--helper --bisect-reset [<commit>]"
msgstr "git bisect--helper --bisect-reset [<æ交>]"
-#: builtin/bisect--helper.c:25
-msgid ""
-"git bisect--helper --bisect-terms [--term-good | --term-old | --term-bad | --"
-"term-new]"
-msgstr ""
-"git bisect--helper --bisect-terms [--term-good | --term-old | --term-bad | --"
-"term-new]"
-
#: builtin/bisect--helper.c:26
msgid ""
"git bisect--helper --bisect-start [--term-{new,bad}=<term> --term-{old,good}"
@@ -10940,10 +11178,6 @@ msgstr ""
"git bisect--helper --bisect-start [--term-{new,bad}=<术语> --term-{old,good}"
"=<术语>] [--no-checkout] [--first-parent] [<å> [<好>...]] [--] [<路径>...]"
-#: builtin/bisect--helper.c:28
-msgid "git bisect--helper --bisect-next"
-msgstr "git bisect--helper --bisect-next"
-
#: builtin/bisect--helper.c:29
msgid "git bisect--helper --bisect-state (bad|new) [<rev>]"
msgstr "git bisect--helper --bisect-state (bad|new) [<版本>]"
@@ -10960,10 +11194,6 @@ msgstr "git bisect--helper --bisect-replay <文件>"
msgid "git bisect--helper --bisect-skip [(<rev>|<range>)...]"
msgstr "git bisect--helper --bisect-skip [(<版本>|<范围>)...]"
-#: builtin/bisect--helper.c:33
-msgid "git bisect--helper --bisect-visualize"
-msgstr "git bisect--helper --bisect-visualize"
-
#: builtin/bisect--helper.c:34
msgid "git bisect--helper --bisect-run <cmd>..."
msgstr "git bisect--helper --bisect-run <命令>..."
@@ -11181,111 +11411,121 @@ msgstr "'%s'?? 您在说什么?"
msgid "cannot read file '%s' for replaying"
msgstr "ä¸èƒ½è¯»å–文件 '%s' æ¥é‡æ”¾"
-#: builtin/bisect--helper.c:1107 builtin/bisect--helper.c:1274
+#: builtin/bisect--helper.c:1120 builtin/bisect--helper.c:1152
+#, c-format
+msgid "running %s\n"
+msgstr "正在执行 %s\n"
+
+#: builtin/bisect--helper.c:1145 builtin/bisect--helper.c:1335
msgid "bisect run failed: no command provided."
msgstr "二分查找è¿è¡Œå¤±è´¥ï¼šæ²¡æœ‰æ供命令。"
-#: builtin/bisect--helper.c:1116
+#: builtin/bisect--helper.c:1166
#, c-format
-msgid "running %s\n"
-msgstr "正在执行 %s\n"
+msgid "unable to verify '%s' on good revision"
+msgstr "æ— æ³•åœ¨å¥½ç‰ˆæœ¬ä¸­éªŒè¯ '%s'"
+
+#: builtin/bisect--helper.c:1172
+#, c-format
+msgid "bogus exit code %d for good revision"
+msgstr "å¥½ç‰ˆæœ¬è¿”å›žé”™è¯¯çš„é€€å‡ºç  %d"
-#: builtin/bisect--helper.c:1120
+#: builtin/bisect--helper.c:1180
#, c-format
msgid "bisect run failed: exit code %d from '%s' is < 0 or >= 128"
msgstr "二分查找è¿è¡Œå¤±è´¥ï¼šå‘½ä»¤ '%2$s' çš„é€€å‡ºç  %1$d < 0 或 >= 128"
-#: builtin/bisect--helper.c:1136
+#: builtin/bisect--helper.c:1195
#, c-format
msgid "cannot open file '%s' for writing"
msgstr "无法打开文件 '%s' 进行写入"
-#: builtin/bisect--helper.c:1152
+#: builtin/bisect--helper.c:1213
msgid "bisect run cannot continue any more"
msgstr "二分查找ä¸èƒ½ç»§ç»­è¿è¡Œ"
-#: builtin/bisect--helper.c:1154
+#: builtin/bisect--helper.c:1215
#, c-format
msgid "bisect run success"
msgstr "二分查找è¿è¡ŒæˆåŠŸ"
-#: builtin/bisect--helper.c:1157
+#: builtin/bisect--helper.c:1218
#, c-format
msgid "bisect found first bad commit"
msgstr "二分查找找到了第一个åçš„æ交"
-#: builtin/bisect--helper.c:1160
+#: builtin/bisect--helper.c:1221
#, c-format
msgid ""
"bisect run failed: 'git bisect--helper --bisect-state %s' exited with error "
"code %d"
msgstr "二分查找è¿è¡Œå¤±è´¥ï¼š'git bisect--helper --bisect-state %s' 退出ç ä¸º %d"
-#: builtin/bisect--helper.c:1192
+#: builtin/bisect--helper.c:1253
msgid "reset the bisection state"
msgstr "清除二分查找状æ€"
-#: builtin/bisect--helper.c:1194
+#: builtin/bisect--helper.c:1255
msgid "check whether bad or good terms exist"
msgstr "检查å的或好的术语是å¦å­˜åœ¨"
-#: builtin/bisect--helper.c:1196
+#: builtin/bisect--helper.c:1257
msgid "print out the bisect terms"
msgstr "打å°äºŒåˆ†æŸ¥æ‰¾æœ¯è¯­"
-#: builtin/bisect--helper.c:1198
+#: builtin/bisect--helper.c:1259
msgid "start the bisect session"
msgstr "å¯åŠ¨äºŒåˆ†æŸ¥æ‰¾è¿‡ç¨‹"
-#: builtin/bisect--helper.c:1200
+#: builtin/bisect--helper.c:1261
msgid "find the next bisection commit"
msgstr "查询下一个二分查找æ交"
-#: builtin/bisect--helper.c:1202
+#: builtin/bisect--helper.c:1263
msgid "mark the state of ref (or refs)"
msgstr "标记引用的状æ€"
-#: builtin/bisect--helper.c:1204
+#: builtin/bisect--helper.c:1265
msgid "list the bisection steps so far"
msgstr "列出到目å‰ä¸ºæ­¢çš„二分查找步骤"
-#: builtin/bisect--helper.c:1206
+#: builtin/bisect--helper.c:1267
msgid "replay the bisection process from the given file"
msgstr "从给定文件é‡æ”¾äºŒåˆ†æŸ¥æ‰¾è¿›ç¨‹"
-#: builtin/bisect--helper.c:1208
+#: builtin/bisect--helper.c:1269
msgid "skip some commits for checkout"
msgstr "跳过è¦æ£€å‡ºçš„一些æ交"
-#: builtin/bisect--helper.c:1210
+#: builtin/bisect--helper.c:1271
msgid "visualize the bisection"
msgstr "å¯è§†åŒ–二分查找过程"
-#: builtin/bisect--helper.c:1212
-msgid "use <cmd>... to automatically bisect."
-msgstr "使用 <命令>... æ¥è‡ªåŠ¨äºŒåˆ†æŸ¥æ‰¾ã€‚"
+#: builtin/bisect--helper.c:1273
+msgid "use <cmd>... to automatically bisect"
+msgstr "使用 <命令>... æ¥è‡ªåŠ¨äºŒåˆ†æŸ¥æ‰¾"
-#: builtin/bisect--helper.c:1214
+#: builtin/bisect--helper.c:1275
msgid "no log for BISECT_WRITE"
msgstr "BISECT_WRITE 无日志"
-#: builtin/bisect--helper.c:1229
+#: builtin/bisect--helper.c:1290
msgid "--bisect-reset requires either no argument or a commit"
msgstr "--bisect-reset 无需å‚数或者需è¦ä¸€ä¸ªæ交"
-#: builtin/bisect--helper.c:1234
+#: builtin/bisect--helper.c:1295
msgid "--bisect-terms requires 0 or 1 argument"
msgstr "--bisect-terms éœ€è¦ 0 或 1 个å‚æ•°"
-#: builtin/bisect--helper.c:1243
+#: builtin/bisect--helper.c:1304
msgid "--bisect-next requires 0 arguments"
msgstr "--bisect-next éœ€è¦ 0 个å‚æ•°"
-#: builtin/bisect--helper.c:1254
+#: builtin/bisect--helper.c:1315
msgid "--bisect-log requires 0 arguments"
msgstr "--bisect-log éœ€è¦ 0 个å‚æ•°"
-#: builtin/bisect--helper.c:1259
+#: builtin/bisect--helper.c:1320
msgid "no logfile given"
msgstr "未æ供日志文件"
@@ -11306,142 +11546,133 @@ msgstr "期望一个颜色:%s"
msgid "must end with a color"
msgstr "必须以一个颜色结尾"
-#: builtin/blame.c:724
-#, c-format
-msgid "invalid color '%s' in color.blame.repeatedLines"
-msgstr "设置 color.blame.repeatedLines 中的无效颜色 '%s'"
-
-#: builtin/blame.c:742
-msgid "invalid value for blame.coloring"
-msgstr "设置 blame.coloring 中的无效å–值"
-
-#: builtin/blame.c:841
+#: builtin/blame.c:842
#, c-format
msgid "cannot find revision %s to ignore"
msgstr "ä¸èƒ½æ‰¾åˆ°è¦å¿½ç•¥çš„版本 %s"
-#: builtin/blame.c:863
+#: builtin/blame.c:864
msgid "show blame entries as we find them, incrementally"
msgstr "增é‡å¼åœ°æ˜¾ç¤ºå‘现的 blame æ¡ç›®"
-#: builtin/blame.c:864
+#: builtin/blame.c:865
msgid "do not show object names of boundary commits (Default: off)"
msgstr "ä¸æ˜¾ç¤ºè¾¹ç•Œæ交的对象å(默认:关闭)"
-#: builtin/blame.c:865
+#: builtin/blame.c:866
msgid "do not treat root commits as boundaries (Default: off)"
msgstr "ä¸æŠŠæ ¹æ交作为边界(默认:关闭)"
-#: builtin/blame.c:866
+#: builtin/blame.c:867
msgid "show work cost statistics"
msgstr "显示工作消耗统计"
-#: builtin/blame.c:867 builtin/checkout.c:1536 builtin/clone.c:94
-#: builtin/commit-graph.c:75 builtin/commit-graph.c:228 builtin/fetch.c:180
+#: builtin/blame.c:868 builtin/checkout.c:1554 builtin/clone.c:98
+#: builtin/commit-graph.c:75 builtin/commit-graph.c:228 builtin/fetch.c:181
#: builtin/merge.c:301 builtin/multi-pack-index.c:103
#: builtin/multi-pack-index.c:154 builtin/multi-pack-index.c:180
#: builtin/multi-pack-index.c:208 builtin/pull.c:120 builtin/push.c:566
-#: builtin/send-pack.c:202
+#: builtin/remote.c:683 builtin/send-pack.c:202
msgid "force progress reporting"
msgstr "强制显示进度报告"
-#: builtin/blame.c:868
+#: builtin/blame.c:869
msgid "show output score for blame entries"
msgstr "显示 blame æ¡ç›®çš„输出得分"
-#: builtin/blame.c:869
+#: builtin/blame.c:870
msgid "show original filename (Default: auto)"
msgstr "显示原始文件å(默认:自动)"
-#: builtin/blame.c:870
+#: builtin/blame.c:871
msgid "show original linenumber (Default: off)"
msgstr "显示原始的行å·ï¼ˆé»˜è®¤ï¼šå…³é—­ï¼‰"
-#: builtin/blame.c:871
+#: builtin/blame.c:872
msgid "show in a format designed for machine consumption"
msgstr "显示为一个适åˆæœºå™¨è¯»å–çš„æ ¼å¼"
-#: builtin/blame.c:872
+#: builtin/blame.c:873
msgid "show porcelain format with per-line commit information"
msgstr "为æ¯ä¸€è¡Œæ˜¾ç¤ºæœºå™¨é€‚用的æ交信æ¯"
-#: builtin/blame.c:873
+#: builtin/blame.c:874
msgid "use the same output mode as git-annotate (Default: off)"
msgstr "使用和 git-annotate 相åŒçš„输出模å¼ï¼ˆé»˜è®¤ï¼šå…³é—­ï¼‰"
-#: builtin/blame.c:874
+#: builtin/blame.c:875
msgid "show raw timestamp (Default: off)"
msgstr "显示原始时间戳(默认:关闭)"
-#: builtin/blame.c:875
+#: builtin/blame.c:876
msgid "show long commit SHA1 (Default: off)"
msgstr "显示长的 SHA1 æ交å·ï¼ˆé»˜è®¤ï¼šå…³é—­ï¼‰"
-#: builtin/blame.c:876
+#: builtin/blame.c:877
msgid "suppress author name and timestamp (Default: off)"
msgstr "éšè—作者å字和时间戳(默认:关闭)"
-#: builtin/blame.c:877
+#: builtin/blame.c:878
msgid "show author email instead of name (Default: off)"
msgstr "显示作者的邮箱而ä¸æ˜¯å字(默认:关闭)"
-#: builtin/blame.c:878
+#: builtin/blame.c:879
msgid "ignore whitespace differences"
msgstr "忽略空白差异"
-#: builtin/blame.c:879 builtin/log.c:1838
+#: builtin/blame.c:880 builtin/log.c:1857
msgid "rev"
msgstr "版本"
-#: builtin/blame.c:879
+#: builtin/blame.c:880
msgid "ignore <rev> when blaming"
msgstr "在执行 blame æ“作时忽略 <版本>"
-#: builtin/blame.c:880
+#: builtin/blame.c:881
msgid "ignore revisions from <file>"
msgstr "忽略æ¥è‡ª <文件> 中的版本"
-#: builtin/blame.c:881
+#: builtin/blame.c:882
msgid "color redundant metadata from previous line differently"
msgstr "使用颜色间隔输出与å‰ä¸€è¡Œä¸åŒçš„é‡å¤å…ƒä¿¡æ¯"
-#: builtin/blame.c:882
+#: builtin/blame.c:883
msgid "color lines by age"
msgstr "ä¾æ®æ—¶é—´ç€è‰²"
-#: builtin/blame.c:883
+#: builtin/blame.c:884
msgid "spend extra cycles to find better match"
msgstr "花费é¢å¤–的循环æ¥æ‰¾åˆ°æ›´å¥½çš„匹é…"
-#: builtin/blame.c:884
+#: builtin/blame.c:885
msgid "use revisions from <file> instead of calling git-rev-list"
msgstr "使用æ¥è‡ª <文件> 的修订集而ä¸æ˜¯è°ƒç”¨ git-rev-list"
-#: builtin/blame.c:885
+#: builtin/blame.c:886
msgid "use <file>'s contents as the final image"
msgstr "使用 <文件> 的内容作为最终的镜åƒ"
-#: builtin/blame.c:886 builtin/blame.c:887
+#: builtin/blame.c:887 builtin/blame.c:888
msgid "score"
msgstr "得分"
-#: builtin/blame.c:886
+#: builtin/blame.c:887
msgid "find line copies within and across files"
msgstr "找到文件内åŠè·¨æ–‡ä»¶çš„行拷è´"
-#: builtin/blame.c:887
+#: builtin/blame.c:888
msgid "find line movements within and across files"
msgstr "找到文件内åŠè·¨æ–‡ä»¶çš„行移动"
-#: builtin/blame.c:888
+#: builtin/blame.c:889
msgid "range"
msgstr "范围"
-#: builtin/blame.c:889
+#: builtin/blame.c:890
msgid "process only line range <start>,<end> or function :<funcname>"
msgstr "åªå¤„ç†åœ¨ <开始>,<结æŸ> 范围内的行,或者函数:<函数å>"
-#: builtin/blame.c:947
+#: builtin/blame.c:949
msgid "--progress can't be used with --incremental or porcelain formats"
msgstr "--progress ä¸èƒ½å’Œ --incremental 或机器内部格å¼ä¸€èµ·ä½¿ç”¨"
@@ -11453,18 +11684,18 @@ msgstr "--progress ä¸èƒ½å’Œ --incremental 或机器内部格å¼ä¸€èµ·ä½¿ç”¨"
#. your language may need more or fewer display
#. columns.
#.
-#: builtin/blame.c:998
+#: builtin/blame.c:1000
msgid "4 years, 11 months ago"
msgstr "4 å¹´ 11 个月å‰"
-#: builtin/blame.c:1114
+#: builtin/blame.c:1116
#, c-format
msgid "file %s has only %lu line"
msgid_plural "file %s has only %lu lines"
msgstr[0] "文件 %s åªæœ‰ %lu è¡Œ"
msgstr[1] "文件 %s åªæœ‰ %lu è¡Œ"
-#: builtin/blame.c:1159
+#: builtin/blame.c:1161
msgid "Blaming lines"
msgstr "追踪代ç è¡Œ"
@@ -11473,31 +11704,37 @@ msgid "git branch [<options>] [-r | -a] [--merged] [--no-merged]"
msgstr "git branch [<选项>] [-r | -a] [--merged] [--no-merged]"
#: builtin/branch.c:30
-msgid "git branch [<options>] [-l] [-f] <branch-name> [<start-point>]"
-msgstr "git branch [<选项>] [-l] [-f] <分支å> [<起始点>]"
+msgid ""
+"git branch [<options>] [-f] [--recurse-submodules] <branch-name> [<start-"
+"point>]"
+msgstr "git branch [<选项>] [-f] [--recurse-submodules] <分支å> [<起始点>]"
#: builtin/branch.c:31
+msgid "git branch [<options>] [-l] [<pattern>...]"
+msgstr "git branch [<选项>] [-l] [<模å¼>...]"
+
+#: builtin/branch.c:32
msgid "git branch [<options>] [-r] (-d | -D) <branch-name>..."
msgstr "git branch [<选项>] [-r] (-d | -D) <分支å>..."
-#: builtin/branch.c:32
+#: builtin/branch.c:33
msgid "git branch [<options>] (-m | -M) [<old-branch>] <new-branch>"
msgstr "git branch [<选项>] (-m | -M) [<旧分支>] <新分支>"
-#: builtin/branch.c:33
+#: builtin/branch.c:34
msgid "git branch [<options>] (-c | -C) [<old-branch>] <new-branch>"
msgstr "git branch [<选项>] (-c | -C) [<è€åˆ†æ”¯>] <新分支>"
-#: builtin/branch.c:34
+#: builtin/branch.c:35
msgid "git branch [<options>] [-r | -a] [--points-at]"
msgstr "git branch [<选项>] [-r | -a] [--points-at]"
-#: builtin/branch.c:35
+#: builtin/branch.c:36
msgid "git branch [<options>] [-r | -a] [--format]"
msgstr "git branch [<选项>] [-r | -a] [--format]"
# 译者:ä¿æŒåŽŸæ¢è¡Œæ ¼å¼ï¼Œåœ¨è¾“出时 %s 的替代内容会让字符串å˜é•¿
-#: builtin/branch.c:153
+#: builtin/branch.c:165
#, c-format
msgid ""
"deleting branch '%s' that has been merged to\n"
@@ -11507,7 +11744,7 @@ msgstr ""
" '%s',但未åˆå¹¶åˆ° HEAD。"
# 译者:ä¿æŒåŽŸæ¢è¡Œæ ¼å¼ï¼Œåœ¨è¾“出时 %s 的替代内容会让字符串å˜é•¿
-#: builtin/branch.c:157
+#: builtin/branch.c:169
#, c-format
msgid ""
"not deleting branch '%s' that is not yet merged to\n"
@@ -11516,12 +11753,12 @@ msgstr ""
"并未删除分支 '%s', 虽然它已ç»åˆå¹¶åˆ° HEAD,\n"
" 然而å´å°šæœªè¢«åˆå¹¶åˆ°åˆ†æ”¯ '%s' 。"
-#: builtin/branch.c:171
+#: builtin/branch.c:183
#, c-format
msgid "Couldn't look up commit object for '%s'"
msgstr "无法查询 '%s' 指å‘çš„æ交对象"
-#: builtin/branch.c:175
+#: builtin/branch.c:187
#, c-format
msgid ""
"The branch '%s' is not fully merged.\n"
@@ -11530,111 +11767,111 @@ msgstr ""
"分支 '%s' 没有完全åˆå¹¶ã€‚\n"
"如果您确认è¦åˆ é™¤å®ƒï¼Œæ‰§è¡Œ 'git branch -D %s'。"
-#: builtin/branch.c:188
+#: builtin/branch.c:200
msgid "Update of config-file failed"
msgstr "æ›´æ–°é…置文件失败"
-#: builtin/branch.c:223
+#: builtin/branch.c:235
msgid "cannot use -a with -d"
msgstr "ä¸èƒ½å°† -a å’Œ -d åŒæ—¶ä½¿ç”¨"
-#: builtin/branch.c:230
+#: builtin/branch.c:242
msgid "Couldn't look up commit object for HEAD"
msgstr "无法查询 HEAD 指å‘çš„æ交对象"
-#: builtin/branch.c:247
+#: builtin/branch.c:259
#, c-format
msgid "Cannot delete branch '%s' checked out at '%s'"
msgstr "无法删除检出于 '%2$s' 的分支 '%1$s'。"
-#: builtin/branch.c:262
+#: builtin/branch.c:274
#, c-format
msgid "remote-tracking branch '%s' not found."
msgstr "未能找到远程跟踪分支 '%s'。"
-#: builtin/branch.c:263
+#: builtin/branch.c:275
#, c-format
msgid "branch '%s' not found."
msgstr "分支 '%s' 未å‘现。"
-#: builtin/branch.c:294
+#: builtin/branch.c:306
#, c-format
msgid "Deleted remote-tracking branch %s (was %s).\n"
msgstr "已删除远程跟踪分支 %s(曾为 %s)。\n"
-#: builtin/branch.c:295
+#: builtin/branch.c:307
#, c-format
msgid "Deleted branch %s (was %s).\n"
msgstr "已删除分支 %s(曾为 %s)。\n"
-#: builtin/branch.c:445 builtin/tag.c:63
+#: builtin/branch.c:457 builtin/tag.c:64
msgid "unable to parse format string"
msgstr "ä¸èƒ½è§£æžæ ¼å¼åŒ–字符串"
-#: builtin/branch.c:476
+#: builtin/branch.c:488
msgid "could not resolve HEAD"
msgstr "ä¸èƒ½è§£æž HEAD æ交"
-#: builtin/branch.c:482
+#: builtin/branch.c:494
#, c-format
msgid "HEAD (%s) points outside of refs/heads/"
msgstr "HEAD (%s) æŒ‡å‘ refs/heads/ 之外"
-#: builtin/branch.c:497
+#: builtin/branch.c:509
#, c-format
msgid "Branch %s is being rebased at %s"
msgstr "分支 %s 正被å˜åŸºåˆ° %s"
-#: builtin/branch.c:501
+#: builtin/branch.c:513
#, c-format
msgid "Branch %s is being bisected at %s"
msgstr "分支 %s 正被二分查找于 %s"
-#: builtin/branch.c:518
+#: builtin/branch.c:530
msgid "cannot copy the current branch while not on any."
msgstr "无法拷è´å½“å‰åˆ†æ”¯å› ä¸ºä¸å¤„于任何分支上。"
-#: builtin/branch.c:520
+#: builtin/branch.c:532
msgid "cannot rename the current branch while not on any."
msgstr "无法é‡å‘½å当å‰åˆ†æ”¯å› ä¸ºä¸å¤„于任何分支上。"
-#: builtin/branch.c:531
+#: builtin/branch.c:543
#, c-format
msgid "Invalid branch name: '%s'"
msgstr "无效的分支å:'%s'"
-#: builtin/branch.c:560
+#: builtin/branch.c:572
msgid "Branch rename failed"
msgstr "分支é‡å‘½å失败"
-#: builtin/branch.c:562
+#: builtin/branch.c:574
msgid "Branch copy failed"
msgstr "分支拷è´å¤±è´¥"
-#: builtin/branch.c:566
+#: builtin/branch.c:578
#, c-format
msgid "Created a copy of a misnamed branch '%s'"
msgstr "已为错误命å的分支 '%s' 创建了一个副本"
-#: builtin/branch.c:569
+#: builtin/branch.c:581
#, c-format
msgid "Renamed a misnamed branch '%s' away"
msgstr "已将错误命å的分支 '%s' é‡å‘½å"
-#: builtin/branch.c:575
+#: builtin/branch.c:587
#, c-format
msgid "Branch renamed to %s, but HEAD is not updated!"
msgstr "分支é‡å‘½å为 %s,但 HEAD 没有更新ï¼"
-#: builtin/branch.c:584
+#: builtin/branch.c:596
msgid "Branch is renamed, but update of config-file failed"
msgstr "分支被é‡å‘½å,但更新é…置文件失败"
-#: builtin/branch.c:586
+#: builtin/branch.c:598
msgid "Branch is copied, but update of config-file failed"
msgstr "分支已拷è´ï¼Œä½†æ›´æ–°é…置文件失败"
-#: builtin/branch.c:602
+#: builtin/branch.c:614
#, c-format
msgid ""
"Please edit the description for the branch\n"
@@ -11645,205 +11882,221 @@ msgstr ""
" %s\n"
"以 '%c' 开头的行将被过滤。\n"
-#: builtin/branch.c:637
+#: builtin/branch.c:651
msgid "Generic options"
msgstr "通用选项"
-#: builtin/branch.c:639
+#: builtin/branch.c:653
msgid "show hash and subject, give twice for upstream branch"
msgstr "显示哈希值和主题,若å‚数出现两次则显示上游分支"
-#: builtin/branch.c:640
+#: builtin/branch.c:654
msgid "suppress informational messages"
msgstr "ä¸æ˜¾ç¤ºä¿¡æ¯"
-#: builtin/branch.c:642
+#: builtin/branch.c:656 builtin/checkout.c:1571
+#: builtin/submodule--helper.c:3077
msgid "set branch tracking configuration"
msgstr "设置分支跟踪é…ç½®"
-#: builtin/branch.c:645
+#: builtin/branch.c:659
msgid "do not use"
msgstr "ä¸è¦ä½¿ç”¨"
-#: builtin/branch.c:647
+#: builtin/branch.c:661
msgid "upstream"
msgstr "上游"
-#: builtin/branch.c:647
+#: builtin/branch.c:661
msgid "change the upstream info"
msgstr "改å˜ä¸Šæ¸¸ä¿¡æ¯"
-#: builtin/branch.c:648
+#: builtin/branch.c:662
msgid "unset the upstream info"
msgstr "å–消上游信æ¯çš„设置"
-#: builtin/branch.c:649
+#: builtin/branch.c:663
msgid "use colored output"
msgstr "使用彩色输出"
-#: builtin/branch.c:650
+#: builtin/branch.c:664
msgid "act on remote-tracking branches"
msgstr "作用于远程跟踪分支"
-#: builtin/branch.c:652 builtin/branch.c:654
+#: builtin/branch.c:666 builtin/branch.c:668
msgid "print only branches that contain the commit"
msgstr "åªæ‰“å°åŒ…å«è¯¥æ交的分支"
-#: builtin/branch.c:653 builtin/branch.c:655
+#: builtin/branch.c:667 builtin/branch.c:669
msgid "print only branches that don't contain the commit"
msgstr "åªæ‰“å°ä¸åŒ…å«è¯¥æ交的分支"
-#: builtin/branch.c:658
+#: builtin/branch.c:672
msgid "Specific git-branch actions:"
msgstr "具体的 git-branch 动作:"
-#: builtin/branch.c:659
+#: builtin/branch.c:673
msgid "list both remote-tracking and local branches"
msgstr "列出远程跟踪åŠæœ¬åœ°åˆ†æ”¯"
-#: builtin/branch.c:661
+#: builtin/branch.c:675
msgid "delete fully merged branch"
msgstr "删除完全åˆå¹¶çš„分支"
-#: builtin/branch.c:662
+#: builtin/branch.c:676
msgid "delete branch (even if not merged)"
msgstr "删除分支(å³ä½¿æ²¡æœ‰åˆå¹¶ï¼‰"
-#: builtin/branch.c:663
+#: builtin/branch.c:677
msgid "move/rename a branch and its reflog"
msgstr "移动/é‡å‘½å一个分支,以åŠå®ƒçš„引用日志"
-#: builtin/branch.c:664
+#: builtin/branch.c:678
msgid "move/rename a branch, even if target exists"
msgstr "移动/é‡å‘½å一个分支,å³ä½¿ç›®æ ‡å·²å­˜åœ¨"
-#: builtin/branch.c:665
+#: builtin/branch.c:679
msgid "copy a branch and its reflog"
msgstr "æ‹·è´ä¸€ä¸ªåˆ†æ”¯å’Œå®ƒçš„引用日志"
-#: builtin/branch.c:666
+#: builtin/branch.c:680
msgid "copy a branch, even if target exists"
msgstr "æ‹·è´ä¸€ä¸ªåˆ†æ”¯ï¼Œå³ä½¿ç›®æ ‡å·²å­˜åœ¨"
-#: builtin/branch.c:667
+#: builtin/branch.c:681
msgid "list branch names"
msgstr "列出分支å"
-#: builtin/branch.c:668
+#: builtin/branch.c:682
msgid "show current branch name"
msgstr "显示当å‰åˆ†æ”¯å"
-#: builtin/branch.c:669
+#: builtin/branch.c:683 builtin/submodule--helper.c:3075
msgid "create the branch's reflog"
msgstr "创建分支的引用日志"
-#: builtin/branch.c:671
+#: builtin/branch.c:685
msgid "edit the description for the branch"
msgstr "标记分支的æè¿°"
-#: builtin/branch.c:672
+#: builtin/branch.c:686
msgid "force creation, move/rename, deletion"
msgstr "强制创建ã€ç§»åŠ¨/é‡å‘½åã€åˆ é™¤"
-#: builtin/branch.c:673
+#: builtin/branch.c:687
msgid "print only branches that are merged"
msgstr "åªæ‰“å°å·²ç»åˆå¹¶çš„分支"
-#: builtin/branch.c:674
+#: builtin/branch.c:688
msgid "print only branches that are not merged"
msgstr "åªæ‰“å°å°šæœªåˆå¹¶çš„分支"
-#: builtin/branch.c:675
+#: builtin/branch.c:689
msgid "list branches in columns"
msgstr "以列的方å¼æ˜¾ç¤ºåˆ†æ”¯"
-#: builtin/branch.c:677 builtin/for-each-ref.c:45 builtin/notes.c:413
+#: builtin/branch.c:691 builtin/for-each-ref.c:45 builtin/notes.c:413
#: builtin/notes.c:416 builtin/notes.c:579 builtin/notes.c:582
-#: builtin/tag.c:475
+#: builtin/tag.c:476
msgid "object"
msgstr "对象"
-#: builtin/branch.c:678
+#: builtin/branch.c:692
msgid "print only branches of the object"
msgstr "åªæ‰“å°æŒ‡å‘该对象的分支"
-#: builtin/branch.c:679 builtin/for-each-ref.c:51 builtin/tag.c:482
+#: builtin/branch.c:693 builtin/for-each-ref.c:51 builtin/tag.c:483
msgid "sorting and filtering are case insensitive"
msgstr "排åºå’Œè¿‡æ»¤å±žäºŽå¤§å°å†™ä¸æ•æ„Ÿ"
-#: builtin/branch.c:680 builtin/for-each-ref.c:41 builtin/tag.c:480
-#: builtin/verify-tag.c:38
+#: builtin/branch.c:694 builtin/ls-files.c:667
+msgid "recurse through submodules"
+msgstr "在å­æ¨¡ç»„中递归"
+
+#: builtin/branch.c:695 builtin/for-each-ref.c:41 builtin/ls-tree.c:358
+#: builtin/tag.c:481 builtin/verify-tag.c:38
msgid "format to use for the output"
msgstr "输出格å¼"
-#: builtin/branch.c:703 builtin/clone.c:678
+#: builtin/branch.c:718 builtin/clone.c:684
msgid "HEAD not found below refs/heads!"
msgstr "HEAD 没有ä½äºŽ /refs/heads 之下ï¼"
-#: builtin/branch.c:742 builtin/branch.c:798 builtin/branch.c:807
+#: builtin/branch.c:739
+msgid ""
+"branch with --recurse-submodules can only be used if submodule."
+"propagateBranches is enabled"
+msgstr ""
+"带有 --recurse-submodules 的分支åªèƒ½åœ¨ submodule.propagateBranches å¯ç”¨æ—¶ä½¿ç”¨"
+
+#: builtin/branch.c:741
+msgid "--recurse-submodules can only be used to create branches"
+msgstr "--recurse-submodules åªèƒ½ç”¨äºŽåˆ›å»ºåˆ†æ”¯"
+
+#: builtin/branch.c:770 builtin/branch.c:826 builtin/branch.c:835
msgid "branch name required"
msgstr "å¿…é¡»æ供分支å"
-#: builtin/branch.c:774
+#: builtin/branch.c:802
msgid "Cannot give description to detached HEAD"
msgstr "ä¸èƒ½å‘分离头指针æä¾›æè¿°"
-#: builtin/branch.c:779
+#: builtin/branch.c:807
msgid "cannot edit description of more than one branch"
msgstr "ä¸èƒ½ä¸ºä¸€ä¸ªä»¥ä¸Šçš„分支编辑æè¿°"
-#: builtin/branch.c:786
+#: builtin/branch.c:814
#, c-format
msgid "No commit on branch '%s' yet."
msgstr "分支 '%s' å°šæ— æ交。"
-#: builtin/branch.c:789
+#: builtin/branch.c:817
#, c-format
msgid "No branch named '%s'."
msgstr "没有分支 '%s'。"
-#: builtin/branch.c:804
+#: builtin/branch.c:832
msgid "too many branches for a copy operation"
msgstr "为拷è´æ“作æ供了太多的分支å"
-#: builtin/branch.c:813
+#: builtin/branch.c:841
msgid "too many arguments for a rename operation"
msgstr "为é‡å‘½åæ“作æ供了太多的å‚æ•°"
-#: builtin/branch.c:818
+#: builtin/branch.c:846
msgid "too many arguments to set new upstream"
msgstr "为设置新上游æ供了太多的å‚æ•°"
-#: builtin/branch.c:822
+#: builtin/branch.c:850
#, c-format
msgid ""
"could not set upstream of HEAD to %s when it does not point to any branch."
msgstr "无法设置 HEAD 的上游为 %s,因为 HEAD 没有指å‘任何分支。"
-#: builtin/branch.c:825 builtin/branch.c:848
+#: builtin/branch.c:853 builtin/branch.c:873
#, c-format
msgid "no such branch '%s'"
msgstr "没有此分支 '%s'"
-#: builtin/branch.c:829
+#: builtin/branch.c:857
#, c-format
msgid "branch '%s' does not exist"
msgstr "分支 '%s' ä¸å­˜åœ¨"
-#: builtin/branch.c:842
+#: builtin/branch.c:867
msgid "too many arguments to unset upstream"
msgstr "为å–消上游设置æ“作æ供了太多的å‚æ•°"
-#: builtin/branch.c:846
+#: builtin/branch.c:871
msgid "could not unset upstream of HEAD when it does not point to any branch."
msgstr "无法å–消 HEAD 的上游设置因为它没有指å‘一个分支"
-#: builtin/branch.c:852
+#: builtin/branch.c:877
#, c-format
msgid "Branch '%s' has no upstream information"
msgstr "分支 '%s' 没有上游信æ¯"
-#: builtin/branch.c:862
+#: builtin/branch.c:890
msgid ""
"The -a, and -r, options to 'git branch' do not take a branch name.\n"
"Did you mean to use: -a|-r --list <pattern>?"
@@ -11851,7 +12104,7 @@ msgstr ""
"'git branch' çš„ -a å’Œ -r 选项ä¸å¸¦ä¸€ä¸ªåˆ†æ”¯å。\n"
"您是å¦æƒ³è¦ä½¿ç”¨ï¼š-a|-r --list <模å¼>?"
-#: builtin/branch.c:866
+#: builtin/branch.c:894
msgid ""
"the '--set-upstream' option is no longer supported. Please use '--track' or "
"'--set-upstream-to' instead."
@@ -11964,19 +12217,19 @@ msgstr "git bundle list-heads <文件> [<引用å>...]"
msgid "git bundle unbundle <file> [<refname>...]"
msgstr "git bundle unbundle <文件> [<引用å>...]"
-#: builtin/bundle.c:65 builtin/pack-objects.c:3876
+#: builtin/bundle.c:65 builtin/pack-objects.c:3899
msgid "do not show progress meter"
msgstr "ä¸æ˜¾ç¤ºè¿›åº¦è¡¨"
-#: builtin/bundle.c:67 builtin/bundle.c:167 builtin/pack-objects.c:3878
+#: builtin/bundle.c:67 builtin/bundle.c:168 builtin/pack-objects.c:3901
msgid "show progress meter"
msgstr "显示进度表"
-#: builtin/bundle.c:69 builtin/pack-objects.c:3880
+#: builtin/bundle.c:69 builtin/pack-objects.c:3903
msgid "show progress meter during object writing phase"
msgstr "在对象写入阶段显示进度表"
-#: builtin/bundle.c:72 builtin/pack-objects.c:3883
+#: builtin/bundle.c:72 builtin/pack-objects.c:3906
msgid "similar to --all-progress when progress meter is shown"
msgstr "当进度表显示时类似于 --all-progress"
@@ -11988,111 +12241,223 @@ msgstr "指定归档包的格å¼ç‰ˆæœ¬"
msgid "Need a repository to create a bundle."
msgstr "需è¦ä¸€ä¸ªä»“库æ¥åˆ›å»ºå½’档包。"
-#: builtin/bundle.c:107
+#: builtin/bundle.c:108
msgid "do not show bundle details"
msgstr "ä¸æ˜¾ç¤ºå½’档包的细节"
-#: builtin/bundle.c:126
+#: builtin/bundle.c:127
#, c-format
msgid "%s is okay\n"
msgstr "%s å¯ä»¥\n"
-#: builtin/bundle.c:182
+#: builtin/bundle.c:183
msgid "Need a repository to unbundle."
msgstr "需è¦ä¸€ä¸ªä»“库æ¥è§£å¼€å½’档包。"
-#: builtin/bundle.c:185
+#: builtin/bundle.c:186
msgid "Unbundling objects"
msgstr "解包对象中"
-#: builtin/bundle.c:219 builtin/remote.c:1733
+#: builtin/bundle.c:220 builtin/remote.c:1758
#, c-format
msgid "Unknown subcommand: %s"
msgstr "未知å­å‘½ä»¤ï¼š%s"
-#: builtin/cat-file.c:622
+#: builtin/cat-file.c:568
+msgid "flush is only for --buffer mode"
+msgstr "flush åªåœ¨ --buffer 模å¼ä¸­ä½¿ç”¨"
+
+#: builtin/cat-file.c:612
+msgid "empty command in input"
+msgstr "输入为空的命令"
+
+#: builtin/cat-file.c:614
+#, c-format
+msgid "whitespace before command: '%s'"
+msgstr "命令å‰å­˜åœ¨ç©ºç™½ï¼š'%s'"
+
+#: builtin/cat-file.c:623
+#, c-format
+msgid "%s requires arguments"
+msgstr "%s 需è¦å‚æ•°"
+
+#: builtin/cat-file.c:628
+#, c-format
+msgid "%s takes no arguments"
+msgstr "%s ä¸éœ€è¦å‚æ•°"
+
+#: builtin/cat-file.c:636
+#, c-format
+msgid "unknown command: '%s'"
+msgstr "未知命令:'%s'"
+
+#: builtin/cat-file.c:795
+msgid "only one batch option may be specified"
+msgstr "åªèƒ½æŒ‡å®šä¸€ä¸ªæ‰¹å¤„ç†é€‰é¡¹"
+
+#: builtin/cat-file.c:824
+msgid "git cat-file <type> <object>"
+msgstr "git cat-file <类型> <对象>"
+
+#: builtin/cat-file.c:825
+msgid "git cat-file (-e | -p) <object>"
+msgstr "git cat-file (-e | -p) <对象>"
+
+#: builtin/cat-file.c:826
+msgid "git cat-file (-t | -s) [--allow-unknown-type] <object>"
+msgstr "git cat-file (-t | -s) [--allow-unknown-type] <对象>"
+
+#: builtin/cat-file.c:827
msgid ""
-"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 | --batch-command) [--batch-all-"
+"objects]\n"
+" [--buffer] [--follow-symlinks] [--unordered]\n"
+" [--textconv | --filters]"
msgstr ""
-"git cat-file (-t [--allow-unknown-type] | -s [--allow-unknown-type] | -e | -"
-"p | <类型> | --textconv | --filters) [--path=<路径>] <对象>"
+"git cat-file (--batch | --batch-check | --batch-command) [--batch-all-"
+"objects]\n"
+" [--buffer] [--follow-symlinks] [--unordered]\n"
+" [--textconv | --filters]"
-#: builtin/cat-file.c:623
+#: builtin/cat-file.c:830
msgid ""
-"git cat-file (--batch[=<format>] | --batch-check[=<format>]) [--follow-"
-"symlinks] [--textconv | --filters]"
+"git cat-file (--textconv | --filters)\n"
+" [<rev>:<path|tree-ish> | --path=<path|tree-ish> <rev>]"
msgstr ""
-"git cat-file (--batch[=<æ ¼å¼>] | --batch-check[=<æ ¼å¼>]) [--follow-symlinks] "
-"[--textconv | --filters]"
+"git cat-file (--textconv | --filters)\n"
+" [<版本>:<路径|树对象> | --path=<路径|树对象> <版本>]"
-#: builtin/cat-file.c:644
-msgid "only one batch option may be specified"
-msgstr "åªèƒ½æŒ‡å®šä¸€ä¸ªæ‰¹å¤„ç†é€‰é¡¹"
+#: builtin/cat-file.c:836
+msgid "Check object existence or emit object contents"
+msgstr "检查对象存在或输出对象内容"
-#: builtin/cat-file.c:662
-msgid "<type> can be one of: blob, tree, commit, tag"
-msgstr "<类型> å¯ä»¥æ˜¯å…¶ä¸­ä¹‹ä¸€ï¼šblobã€treeã€commitã€tag"
+#: builtin/cat-file.c:838
+msgid "check if <object> exists"
+msgstr "检查 <对象> 是å¦å­˜åœ¨"
-#: builtin/cat-file.c:663
-msgid "show object type"
-msgstr "显示对象类型"
+#: builtin/cat-file.c:839
+msgid "pretty-print <object> content"
+msgstr "ç¾Žè§‚åœ°æ‰“å° <对象> 的内容"
-#: builtin/cat-file.c:664
+#: builtin/cat-file.c:841
+msgid "Emit [broken] object attributes"
+msgstr "输出 [åçš„] 对象属性"
+
+#: builtin/cat-file.c:842
+msgid "show object type (one of 'blob', 'tree', 'commit', 'tag', ...)"
+msgstr "显示对象的类型('blob'ã€'tree'ã€'commit'ã€'tag'……其中之一)"
+
+#: builtin/cat-file.c:843
msgid "show object size"
msgstr "显示对象大å°"
-#: builtin/cat-file.c:666
-msgid "exit with zero when there's no error"
-msgstr "当没有错误时退出并返回零"
+#: builtin/cat-file.c:845
+msgid "allow -s and -t to work with broken/corrupt objects"
+msgstr "å…许 -s å’Œ -t 对æŸå的对象生效"
-#: builtin/cat-file.c:667
-msgid "pretty-print object's content"
-msgstr "美观地打å°å¯¹è±¡çš„内容"
+#: builtin/cat-file.c:847
+msgid "Batch objects requested on stdin (or --batch-all-objects)"
+msgstr "批é‡å¤„ç†æ ‡å‡†è¾“入中请求的对象(或者 --batch-all-objects)"
-#: builtin/cat-file.c:669
-msgid "for blob objects, run textconv on object's content"
-msgstr "对于数æ®å¯¹è±¡ï¼Œå¯¹å…¶å†…容åšæ–‡æœ¬è½¬æ¢"
+#: builtin/cat-file.c:849
+msgid "show full <object> or <rev> contents"
+msgstr "显示完整的 <对象> 或 <版本> 内容"
-#: builtin/cat-file.c:671
-msgid "for blob objects, run filters on object's content"
-msgstr "对于数æ®å¯¹è±¡ï¼Œå¯¹å…¶å†…容åšè¿‡æ»¤"
+#: builtin/cat-file.c:853
+msgid "like --batch, but don't emit <contents>"
+msgstr "类似于 --batch,但ä¸è¾“出 <内容>"
-#: builtin/cat-file.c:672
-msgid "blob"
-msgstr "æ•°æ®å¯¹è±¡"
+#: builtin/cat-file.c:857
+msgid "read commands from stdin"
+msgstr "从标准输入读å–命令"
-#: builtin/cat-file.c:673
-msgid "use a specific path for --textconv/--filters"
-msgstr "对于 --textconv/--filters 使用一个特定的路径"
+#: builtin/cat-file.c:861
+msgid "with --batch[-check]: ignores stdin, batches all known objects"
+msgstr "带有 --batch[-check]:忽略标准输入,批é‡å¤„ç†æ‰€æœ‰å·²çŸ¥çš„对象"
-#: builtin/cat-file.c:675
-msgid "allow -s and -t to work with broken/corrupt objects"
-msgstr "å…许 -s å’Œ -t 对æŸå的对象生效"
+#: builtin/cat-file.c:863
+msgid "Change or optimize batch output"
+msgstr "更改或优化批处ç†è¾“出"
-#: builtin/cat-file.c:676
+#: builtin/cat-file.c:864
msgid "buffer --batch output"
msgstr "缓冲 --batch 的输出"
-#: builtin/cat-file.c:678
-msgid "show info and content of objects fed from the standard input"
-msgstr "显示从标准输入æ供的对象的信æ¯å’Œå†…容"
+#: builtin/cat-file.c:866
+msgid "follow in-tree symlinks"
+msgstr "è·Ÿéšæ ‘内符å·é“¾æŽ¥"
+
+#: builtin/cat-file.c:868
+msgid "do not order objects before emitting them"
+msgstr "在输出对象å‰ä¸è¦æŽ’åº"
+
+#: builtin/cat-file.c:870
+msgid ""
+"Emit object (blob or tree) with conversion or filter (stand-alone, or with "
+"batch)"
+msgstr "转æ¢æˆ–过滤åŽè¾“出对象(数æ®å¯¹è±¡æˆ–树)(å•ç‹¬æˆ–批处ç†ï¼‰"
+
+#: builtin/cat-file.c:872
+msgid "run textconv on object's content"
+msgstr "对对象内容åšæ–‡æœ¬è½¬æ¢"
-#: builtin/cat-file.c:682
-msgid "show info about objects fed from the standard input"
-msgstr "显示从标准输入æ供的对象的信æ¯"
+#: builtin/cat-file.c:874
+msgid "run filters on object's content"
+msgstr "对对象内容åšè¿‡æ»¤"
-#: builtin/cat-file.c:686
-msgid "follow in-tree symlinks (used with --batch or --batch-check)"
-msgstr "è·Ÿéšæ ‘内符å·é“¾æŽ¥ï¼ˆå’Œ --batch 或 --batch-check 共用)"
+#: builtin/cat-file.c:875
+msgid "blob|tree"
+msgstr "æ•°æ®å¯¹è±¡|æ ‘"
-#: builtin/cat-file.c:688
-msgid "show all objects with --batch or --batch-check"
-msgstr "使用 --batch 或 --batch-check å‚数显示所有对象"
+#: builtin/cat-file.c:876
+msgid "use a <path> for (--textconv | --filters); Not with 'batch'"
+msgstr "(--textconv | --filters) 使用 <路径>;而ä¸æ˜¯ 'batch'"
-#: builtin/cat-file.c:690
-msgid "do not order --batch-all-objects output"
-msgstr "ä¸è¦å¯¹ --batch-all-objects 的输出排åº"
+#: builtin/cat-file.c:894
+#, c-format
+msgid "'%s=<%s>' needs '%s' or '%s'"
+msgstr "'%s=<%s>' éœ€è¦ '%s' 或 '%s'"
+
+#: builtin/cat-file.c:896
+msgid "path|tree-ish"
+msgstr "路径|树对象"
+
+#: builtin/cat-file.c:903 builtin/cat-file.c:906 builtin/cat-file.c:909
+#, c-format
+msgid "'%s' requires a batch mode"
+msgstr "'%s' 需è¦æ‰¹å¤„ç†æ¨¡å¼"
+
+#: builtin/cat-file.c:921
+#, c-format
+msgid "'-%c' is incompatible with batch mode"
+msgstr "'-%c' 与批处ç†æ¨¡å¼ä¸å…¼å®¹"
+
+#: builtin/cat-file.c:924
+msgid "batch modes take no arguments"
+msgstr "批处ç†æ¨¡å¼ä¸å¸¦å…¶ä»–å‚æ•°"
+
+#: builtin/cat-file.c:932 builtin/cat-file.c:935
+#, c-format
+msgid "<rev> required with '%s'"
+msgstr "'%s' éœ€è¦ <版本>"
+
+#: builtin/cat-file.c:938
+#, c-format
+msgid "<object> required with '-%c'"
+msgstr "'-%c' éœ€è¦ <对象>"
+
+#: builtin/cat-file.c:943 builtin/notes.c:374 builtin/notes.c:429
+#: builtin/notes.c:507 builtin/notes.c:519 builtin/notes.c:596
+#: builtin/notes.c:663 builtin/notes.c:813 builtin/notes.c:965
+#: builtin/notes.c:987 builtin/prune-packed.c:25 builtin/receive-pack.c:2489
+#: builtin/tag.c:592
+msgid "too many arguments"
+msgstr "太多å‚æ•°"
+
+#: builtin/cat-file.c:947
+#, c-format
+msgid "only two arguments allowed in <type> <object> mode, not %d"
+msgstr "<类型> <对象> 模å¼åªå…许两个å‚数,而ä¸æ˜¯ %d 个"
#: builtin/check-attr.c:13
msgid "git check-attr [-a | --all | <attr>...] [--] <pathname>..."
@@ -12110,7 +12475,7 @@ msgstr "报告设置在文件上的所有属性"
msgid "use .gitattributes only from the index"
msgstr "åªä½¿ç”¨ç´¢å¼•ä¸­çš„ .gitattributes"
-#: builtin/check-attr.c:23 builtin/check-ignore.c:25 builtin/hash-object.c:100
+#: builtin/check-attr.c:23 builtin/check-ignore.c:25 builtin/hash-object.c:101
msgid "read file names from stdin"
msgstr "从标准输入读出文件å"
@@ -12118,8 +12483,8 @@ msgstr "从标准输入读出文件å"
msgid "terminate input and output records by a NUL character"
msgstr "输入和输出的记录使用 NUL 字符终结"
-#: builtin/check-ignore.c:21 builtin/checkout.c:1532 builtin/gc.c:550
-#: builtin/worktree.c:493
+#: builtin/check-ignore.c:21 builtin/checkout.c:1550 builtin/gc.c:550
+#: builtin/worktree.c:565
msgid "suppress progress reporting"
msgstr "ä¸æ˜¾ç¤ºè¿›åº¦æŠ¥å‘Š"
@@ -12176,161 +12541,165 @@ msgstr "未指定è”系地å€"
msgid "git checkout--worker [<options>]"
msgstr "git checkout--worker [<选项>]"
-#: builtin/checkout--worker.c:118 builtin/checkout-index.c:201
-#: builtin/column.c:31 builtin/column.c:32 builtin/submodule--helper.c:1864
-#: builtin/submodule--helper.c:1867 builtin/submodule--helper.c:1875
-#: builtin/submodule--helper.c:2511 builtin/submodule--helper.c:2577
-#: builtin/worktree.c:491 builtin/worktree.c:728
+#: builtin/checkout--worker.c:118 builtin/checkout-index.c:235
+#: builtin/column.c:31 builtin/column.c:32 builtin/submodule--helper.c:1878
+#: builtin/submodule--helper.c:1881 builtin/submodule--helper.c:1889
+#: builtin/submodule--helper.c:2716 builtin/worktree.c:563
+#: builtin/worktree.c:808
msgid "string"
msgstr "字符串"
-#: builtin/checkout--worker.c:119 builtin/checkout-index.c:202
+#: builtin/checkout--worker.c:119 builtin/checkout-index.c:236
msgid "when creating files, prepend <string>"
msgstr "在创建文件时,在å‰é¢åŠ ä¸Š <字符串>"
-#: builtin/checkout-index.c:152
+#: builtin/checkout-index.c:184
msgid "git checkout-index [<options>] [--] [<file>...]"
msgstr "git checkout-index [<选项>] [--] [<文件>...]"
-#: builtin/checkout-index.c:169
+#: builtin/checkout-index.c:201
msgid "stage should be between 1 and 3 or all"
msgstr "索引值应该å–值 1 到 3 或者 all"
-#: builtin/checkout-index.c:187
+#: builtin/checkout-index.c:219
msgid "check out all files in the index"
msgstr "检出索引区的所有文件"
-#: builtin/checkout-index.c:188
+#: builtin/checkout-index.c:221
+msgid "do not skip files with skip-worktree set"
+msgstr "在 skip-worktree 设置时ä¸è¦è·³è¿‡æ–‡ä»¶"
+
+#: builtin/checkout-index.c:222
msgid "force overwrite of existing files"
msgstr "强制覆盖现有的文件"
-#: builtin/checkout-index.c:190
+#: builtin/checkout-index.c:224
msgid "no warning for existing files and files not in index"
msgstr "存在或ä¸åœ¨ç´¢å¼•ä¸­çš„文件都没有警告"
-#: builtin/checkout-index.c:192
+#: builtin/checkout-index.c:226
msgid "don't checkout new files"
msgstr "ä¸æ£€å‡ºæ–°æ–‡ä»¶"
-#: builtin/checkout-index.c:194
+#: builtin/checkout-index.c:228
msgid "update stat information in the index file"
msgstr "更新索引中文件的状æ€ä¿¡æ¯"
-#: builtin/checkout-index.c:198
+#: builtin/checkout-index.c:232
msgid "read list of paths from the standard input"
msgstr "从标准输入读å–路径列表"
-#: builtin/checkout-index.c:200
+#: builtin/checkout-index.c:234
msgid "write the content to temporary files"
msgstr "将内容写入临时文件"
-#: builtin/checkout-index.c:204
+#: builtin/checkout-index.c:238
msgid "copy out the files from named stage"
msgstr "从指定暂存区中拷出文件"
-#: builtin/checkout.c:33
+#: builtin/checkout.c:34
msgid "git checkout [<options>] <branch>"
msgstr "git checkout [<选项>] <分支>"
-#: builtin/checkout.c:34
+#: builtin/checkout.c:35
msgid "git checkout [<options>] [<branch>] -- <file>..."
msgstr "git checkout [<选项>] [<分支>] -- <文件>..."
-#: builtin/checkout.c:39
+#: builtin/checkout.c:40
msgid "git switch [<options>] [<branch>]"
msgstr "git switch [<选项>] [<分支>]"
-#: builtin/checkout.c:44
+#: builtin/checkout.c:45
msgid "git restore [<options>] [--source=<branch>] <file>..."
msgstr "git restore [<选项>] [--source=<分支>] <文件>..."
-#: builtin/checkout.c:198 builtin/checkout.c:237
+#: builtin/checkout.c:199 builtin/checkout.c:238
#, c-format
msgid "path '%s' does not have our version"
msgstr "路径 '%s' 没有我们的版本"
-#: builtin/checkout.c:200 builtin/checkout.c:239
+#: builtin/checkout.c:201 builtin/checkout.c:240
#, c-format
msgid "path '%s' does not have their version"
msgstr "路径 '%s' 没有他们的版本"
-#: builtin/checkout.c:216
+#: builtin/checkout.c:217
#, c-format
msgid "path '%s' does not have all necessary versions"
msgstr "路径 '%s' 没有全部必需的版本"
-#: builtin/checkout.c:269
+#: builtin/checkout.c:271
#, c-format
msgid "path '%s' does not have necessary versions"
msgstr "路径 '%s' 没有必需的版本"
-#: builtin/checkout.c:286
+#: builtin/checkout.c:291
#, c-format
msgid "path '%s': cannot merge"
msgstr "path '%s':无法åˆå¹¶"
-#: builtin/checkout.c:302
+#: builtin/checkout.c:307
#, c-format
msgid "Unable to add merge result for '%s'"
msgstr "无法为 '%s' 添加åˆå¹¶ç»“æžœ"
-#: builtin/checkout.c:419
+#: builtin/checkout.c:424
#, c-format
msgid "Recreated %d merge conflict"
msgid_plural "Recreated %d merge conflicts"
msgstr[0] "é‡æ–°åˆ›å»ºäº† %d 个åˆå¹¶å†²çª"
msgstr[1] "é‡æ–°åˆ›å»ºäº† %d 个åˆå¹¶å†²çª"
-#: builtin/checkout.c:424
+#: builtin/checkout.c:429
#, c-format
msgid "Updated %d path from %s"
msgid_plural "Updated %d paths from %s"
msgstr[0] "从 %2$s 更新了 %1$d 个路径"
msgstr[1] "从 %2$s 更新了 %1$d 个路径"
-#: builtin/checkout.c:431
+#: builtin/checkout.c:436
#, c-format
msgid "Updated %d path from the index"
msgid_plural "Updated %d paths from the index"
msgstr[0] "从索引区更新了 %d 个路径"
msgstr[1] "从索引区更新了 %d 个路径"
-#: builtin/checkout.c:454 builtin/checkout.c:457 builtin/checkout.c:460
-#: builtin/checkout.c:464
+#: builtin/checkout.c:459 builtin/checkout.c:462 builtin/checkout.c:465
+#: builtin/checkout.c:469
#, c-format
msgid "'%s' cannot be used with updating paths"
msgstr "'%s' ä¸èƒ½åœ¨æ›´æ–°è·¯å¾„时使用"
-#: builtin/checkout.c:474
+#: builtin/checkout.c:479
#, c-format
msgid "Cannot update paths and switch to branch '%s' at the same time."
msgstr "ä¸èƒ½åŒæ—¶æ›´æ–°è·¯å¾„并切æ¢åˆ°åˆ†æ”¯'%s'。"
-#: builtin/checkout.c:478
+#: builtin/checkout.c:483
#, c-format
msgid "neither '%s' or '%s' is specified"
msgstr "'%s' 或 '%s' 都没有指定"
-#: builtin/checkout.c:482
+#: builtin/checkout.c:487
#, c-format
msgid "'%s' must be used when '%s' is not specified"
msgstr "未指定 '%2$s' 时,必须使用 '%1$s'"
-#: builtin/checkout.c:487 builtin/checkout.c:492
+#: builtin/checkout.c:492 builtin/checkout.c:497
#, c-format
msgid "'%s' or '%s' cannot be used with %s"
msgstr "'%s' 或 '%s' ä¸èƒ½å’Œ %s 一起使用"
-#: builtin/checkout.c:566 builtin/checkout.c:573
+#: builtin/checkout.c:571 builtin/checkout.c:578
#, c-format
msgid "path '%s' is unmerged"
msgstr "路径 '%s' 未åˆå¹¶"
-#: builtin/checkout.c:747
+#: builtin/checkout.c:753
msgid "you need to resolve your current index first"
msgstr "您需è¦å…ˆè§£å†³å½“å‰ç´¢å¼•çš„冲çª"
-#: builtin/checkout.c:797
+#: builtin/checkout.c:809
#, c-format
msgid ""
"cannot continue with staged changes in the following files:\n"
@@ -12339,51 +12708,51 @@ msgstr ""
"ä¸èƒ½ç»§ç»­ï¼Œä¸‹åˆ—文件有暂存的修改:\n"
"%s"
-#: builtin/checkout.c:890
+#: builtin/checkout.c:902
#, c-format
msgid "Can not do reflog for '%s': %s\n"
msgstr "ä¸èƒ½å¯¹ '%s' 执行 reflog æ“作:%s\n"
-#: builtin/checkout.c:934
+#: builtin/checkout.c:947
msgid "HEAD is now at"
msgstr "HEAD ç›®å‰ä½äºŽ"
-#: builtin/checkout.c:938 builtin/clone.c:609 t/helper/test-fast-rebase.c:203
+#: builtin/checkout.c:951 builtin/clone.c:615 t/helper/test-fast-rebase.c:203
msgid "unable to update HEAD"
msgstr "ä¸èƒ½æ›´æ–° HEAD"
-#: builtin/checkout.c:942
+#: builtin/checkout.c:955
#, c-format
msgid "Reset branch '%s'\n"
msgstr "é‡ç½®åˆ†æ”¯ '%s'\n"
-#: builtin/checkout.c:945
+#: builtin/checkout.c:958
#, c-format
msgid "Already on '%s'\n"
msgstr "å·²ç»ä½äºŽ '%s'\n"
-#: builtin/checkout.c:949
+#: builtin/checkout.c:962
#, c-format
msgid "Switched to and reset branch '%s'\n"
msgstr "切æ¢å¹¶é‡ç½®åˆ†æ”¯ '%s'\n"
-#: builtin/checkout.c:951 builtin/checkout.c:1388
+#: builtin/checkout.c:964 builtin/checkout.c:1398
#, c-format
msgid "Switched to a new branch '%s'\n"
msgstr "切æ¢åˆ°ä¸€ä¸ªæ–°åˆ†æ”¯ '%s'\n"
-#: builtin/checkout.c:953
+#: builtin/checkout.c:966
#, c-format
msgid "Switched to branch '%s'\n"
msgstr "切æ¢åˆ°åˆ†æ”¯ '%s'\n"
# 译者:注æ„ä¿æŒå‰å¯¼ç©ºæ ¼
-#: builtin/checkout.c:1004
+#: builtin/checkout.c:1017
#, c-format
msgid " ... and %d more.\n"
msgstr " ... åŠå…¶å®ƒ %d 个。\n"
-#: builtin/checkout.c:1010
+#: builtin/checkout.c:1023
#, c-format
msgid ""
"Warning: you are leaving %d commit behind, not connected to\n"
@@ -12404,7 +12773,7 @@ msgstr[1] ""
"\n"
"%s\n"
-#: builtin/checkout.c:1029
+#: builtin/checkout.c:1042
#, c-format
msgid ""
"If you want to keep it by creating a new branch, this may be a good time\n"
@@ -12431,19 +12800,19 @@ msgstr[1] ""
" git branch <新分支å> %s\n"
"\n"
-#: builtin/checkout.c:1064
+#: builtin/checkout.c:1077
msgid "internal error in revision walk"
msgstr "在版本é历时é‡åˆ°å†…部错误"
-#: builtin/checkout.c:1068
+#: builtin/checkout.c:1081
msgid "Previous HEAD position was"
msgstr "之å‰çš„ HEAD ä½ç½®æ˜¯"
-#: builtin/checkout.c:1114 builtin/checkout.c:1383
+#: builtin/checkout.c:1124 builtin/checkout.c:1393
msgid "You are on a branch yet to be born"
msgstr "您ä½äºŽä¸€ä¸ªå°šæœªåˆå§‹åŒ–的分支"
-#: builtin/checkout.c:1196
+#: builtin/checkout.c:1206
#, c-format
msgid ""
"'%s' could be both a local file and a tracking branch.\n"
@@ -12452,7 +12821,7 @@ msgstr ""
"'%s' æ—¢å¯ä»¥æ˜¯ä¸€ä¸ªæœ¬åœ°æ–‡ä»¶ï¼Œä¹Ÿå¯ä»¥æ˜¯ä¸€ä¸ªè·Ÿè¸ªåˆ†æ”¯ã€‚\n"
"请使用 --(和å¯é€‰çš„ --no-guess)æ¥æ¶ˆé™¤æ­§ä¹‰"
-#: builtin/checkout.c:1203
+#: builtin/checkout.c:1213
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"
@@ -12471,51 +12840,56 @@ msgstr ""
"如果您总是喜欢使用模糊的简短分支å <å称>,而ä¸å–œæ¬¢å¦‚ 'origin' 的远程\n"
"å称,å¯ä»¥åœ¨é…置中设置 checkout.defaultRemote=origin。"
-#: builtin/checkout.c:1213
+#: builtin/checkout.c:1223
#, c-format
msgid "'%s' matched multiple (%d) remote tracking branches"
msgstr "'%s' 匹é…多个(%d 个)远程跟踪分支"
-#: builtin/checkout.c:1279
+#: builtin/checkout.c:1289
msgid "only one reference expected"
msgstr "åªæœŸæœ›ä¸€ä¸ªå¼•ç”¨"
-#: builtin/checkout.c:1296
+#: builtin/checkout.c:1306
#, c-format
msgid "only one reference expected, %d given."
msgstr "应åªæœ‰ä¸€ä¸ªå¼•ç”¨ï¼Œå´ç»™å‡ºäº† %d 个"
-#: builtin/checkout.c:1342 builtin/worktree.c:269 builtin/worktree.c:436
+#: builtin/checkout.c:1352 builtin/worktree.c:338 builtin/worktree.c:508
#, c-format
msgid "invalid reference: %s"
msgstr "无效引用:%s"
-#: builtin/checkout.c:1355 builtin/checkout.c:1725
+#: builtin/checkout.c:1365 builtin/checkout.c:1744
#, c-format
msgid "reference is not a tree: %s"
msgstr "引用ä¸æ˜¯ä¸€ä¸ªæ ‘:%s"
-#: builtin/checkout.c:1402
+#: builtin/checkout.c:1413
#, c-format
msgid "a branch is expected, got tag '%s'"
msgstr "期望一个分支,得到标签 '%s'"
-#: builtin/checkout.c:1404
+#: builtin/checkout.c:1415
#, c-format
msgid "a branch is expected, got remote branch '%s'"
msgstr "期望一个分支,得到远程分支 '%s'"
-#: builtin/checkout.c:1405 builtin/checkout.c:1413
+#: builtin/checkout.c:1417 builtin/checkout.c:1426
#, c-format
msgid "a branch is expected, got '%s'"
msgstr "期望一个分支,得到 '%s'"
-#: builtin/checkout.c:1408
+#: builtin/checkout.c:1420
#, c-format
msgid "a branch is expected, got commit '%s'"
msgstr "期望一个分支,得到æ交 '%s'"
-#: builtin/checkout.c:1424
+#: builtin/checkout.c:1429
+msgid ""
+"If you want to detach HEAD at the commit, try again with the --detach option."
+msgstr "如果你在本æ交分离头指针,使用 --detach 选项é‡è¯•ã€‚"
+
+#: builtin/checkout.c:1442
msgid ""
"cannot switch branch while merging\n"
"Consider \"git merge --quit\" or \"git worktree add\"."
@@ -12523,7 +12897,7 @@ msgstr ""
"ä¸èƒ½åœ¨åˆå¹¶æ—¶åˆ‡æ¢åˆ†æ”¯\n"
"考虑使用 \"git merge --quit\" 或 \"git worktree add\"。"
-#: builtin/checkout.c:1428
+#: builtin/checkout.c:1446
msgid ""
"cannot switch branch in the middle of an am session\n"
"Consider \"git am --quit\" or \"git worktree add\"."
@@ -12531,7 +12905,7 @@ msgstr ""
"ä¸èƒ½åœ¨ä¸€ä¸ª am 会è¯æœŸé—´åˆ‡æ¢åˆ†æ”¯\n"
"考虑使用 \"git am --quit\" 或 \"git worktree add\"。"
-#: builtin/checkout.c:1432
+#: builtin/checkout.c:1450
msgid ""
"cannot switch branch while rebasing\n"
"Consider \"git rebase --quit\" or \"git worktree add\"."
@@ -12539,7 +12913,7 @@ msgstr ""
"ä¸èƒ½åœ¨å˜åŸºæ—¶åˆ‡æ¢åˆ†æ”¯\n"
"考虑使用 \"git rebase --quit\" 或 \"git worktree add\"。"
-#: builtin/checkout.c:1436
+#: builtin/checkout.c:1454
msgid ""
"cannot switch branch while cherry-picking\n"
"Consider \"git cherry-pick --quit\" or \"git worktree add\"."
@@ -12547,7 +12921,7 @@ msgstr ""
"ä¸èƒ½åœ¨æ‹£é€‰æ—¶åˆ‡æ¢åˆ†æ”¯\n"
"考虑使用 \"git cherry-pick --quit\" 或 \"git worktree add\"。"
-#: builtin/checkout.c:1440
+#: builtin/checkout.c:1458
msgid ""
"cannot switch branch while reverting\n"
"Consider \"git revert --quit\" or \"git worktree add\"."
@@ -12555,196 +12929,192 @@ msgstr ""
"ä¸èƒ½åœ¨è¿˜åŽŸæ—¶åˆ‡æ¢åˆ†æ”¯\n"
"考虑使用 \"git revert --quit\" 或 \"git worktree add\"。"
-#: builtin/checkout.c:1444
+#: builtin/checkout.c:1462
msgid "you are switching branch while bisecting"
msgstr "您在执行二分查找时切æ¢åˆ†æ”¯"
-#: builtin/checkout.c:1451
+#: builtin/checkout.c:1469
msgid "paths cannot be used with switching branches"
msgstr "路径ä¸èƒ½å’Œåˆ‡æ¢åˆ†æ”¯åŒæ—¶ä½¿ç”¨"
-#: builtin/checkout.c:1454 builtin/checkout.c:1458 builtin/checkout.c:1462
+#: builtin/checkout.c:1472 builtin/checkout.c:1476 builtin/checkout.c:1480
#, c-format
msgid "'%s' cannot be used with switching branches"
msgstr "'%s' ä¸èƒ½å’Œåˆ‡æ¢åˆ†æ”¯åŒæ—¶ä½¿ç”¨"
-#: builtin/checkout.c:1466 builtin/checkout.c:1469 builtin/checkout.c:1472
-#: builtin/checkout.c:1477 builtin/checkout.c:1482
+#: builtin/checkout.c:1484 builtin/checkout.c:1487 builtin/checkout.c:1490
+#: builtin/checkout.c:1495 builtin/checkout.c:1500
#, c-format
msgid "'%s' cannot be used with '%s'"
msgstr "'%s' ä¸èƒ½å’Œ '%s' åŒæ—¶ä½¿ç”¨"
-#: builtin/checkout.c:1479
+#: builtin/checkout.c:1497
#, c-format
msgid "'%s' cannot take <start-point>"
msgstr "'%s' ä¸å¸¦ <起始点>"
-#: builtin/checkout.c:1487
+#: builtin/checkout.c:1505
#, c-format
msgid "Cannot switch branch to a non-commit '%s'"
msgstr "ä¸èƒ½åˆ‡æ¢åˆ†æ”¯åˆ°ä¸€ä¸ªéžæ交 '%s'"
-#: builtin/checkout.c:1494
+#: builtin/checkout.c:1512
msgid "missing branch or commit argument"
msgstr "缺少分支或æ交å‚æ•°"
-#: builtin/checkout.c:1537
+#: builtin/checkout.c:1555
msgid "perform a 3-way merge with the new branch"
msgstr "和新的分支执行三方åˆå¹¶"
-#: builtin/checkout.c:1538 builtin/log.c:1825 parse-options.h:323
+#: builtin/checkout.c:1556 builtin/log.c:1844 parse-options.h:354
msgid "style"
msgstr "风格"
-#: builtin/checkout.c:1539
+#: builtin/checkout.c:1557
msgid "conflict style (merge, diff3, or zdiff3)"
msgstr "冲çªè¾“出风格(mergeã€diff3 或 zdiff3)"
-#: builtin/checkout.c:1551 builtin/worktree.c:488
+#: builtin/checkout.c:1569 builtin/worktree.c:560
msgid "detach HEAD at named commit"
msgstr "HEAD 从指定的æ交分离"
-#: builtin/checkout.c:1553
-msgid "set up tracking mode (see git-pull(1))"
-msgstr "设置跟踪模å¼ï¼ˆå‚è§ git-pull(1))"
-
-#: builtin/checkout.c:1556
+#: builtin/checkout.c:1574
msgid "force checkout (throw away local modifications)"
msgstr "强制检出(丢弃本地修改)"
-#: builtin/checkout.c:1558
+#: builtin/checkout.c:1576
msgid "new-branch"
msgstr "新分支"
-#: builtin/checkout.c:1558
+#: builtin/checkout.c:1576
msgid "new unparented branch"
msgstr "新的没有父æ交的分支"
-#: builtin/checkout.c:1560 builtin/merge.c:305
+#: builtin/checkout.c:1578 builtin/merge.c:305
msgid "update ignored files (default)"
msgstr "更新忽略的文件(默认)"
-#: builtin/checkout.c:1563
+#: builtin/checkout.c:1581
msgid "do not check if another worktree is holding the given ref"
msgstr "ä¸æ£€æŸ¥æŒ‡å®šçš„引用是å¦è¢«å…¶ä»–工作区所å ç”¨"
-#: builtin/checkout.c:1576
+#: builtin/checkout.c:1594
msgid "checkout our version for unmerged files"
msgstr "对尚未åˆå¹¶çš„文件检出我们的版本"
-#: builtin/checkout.c:1579
+#: builtin/checkout.c:1597
msgid "checkout their version for unmerged files"
msgstr "对尚未åˆå¹¶çš„文件检出他们的版本"
-#: builtin/checkout.c:1583
+#: builtin/checkout.c:1601
msgid "do not limit pathspecs to sparse entries only"
msgstr "对路径ä¸åšç¨€ç–检出的é™åˆ¶"
-#: builtin/checkout.c:1640
+#: builtin/checkout.c:1659
#, c-format
msgid "options '-%c', '-%c', and '%s' cannot be used together"
msgstr "选项 '-%c'ã€'-%c' å’Œ ‘%s' ä¸èƒ½åŒæ—¶ä½¿ç”¨"
-#: builtin/checkout.c:1681
+#: builtin/checkout.c:1700
msgid "--track needs a branch name"
msgstr "--track 需è¦ä¸€ä¸ªåˆ†æ”¯å"
-#: builtin/checkout.c:1686
+#: builtin/checkout.c:1705
#, c-format
msgid "missing branch name; try -%c"
msgstr "缺少分支å,å°è¯• -%c"
-#: builtin/checkout.c:1718
+#: builtin/checkout.c:1737
#, c-format
msgid "could not resolve %s"
msgstr "æ— æ³•è§£æž %s"
-#: builtin/checkout.c:1734
+#: builtin/checkout.c:1753
msgid "invalid path specification"
msgstr "无效的路径规格"
-#: builtin/checkout.c:1741
+#: builtin/checkout.c:1760
#, c-format
msgid "'%s' is not a commit and a branch '%s' cannot be created from it"
msgstr "'%s' ä¸æ˜¯ä¸€ä¸ªæ交,ä¸èƒ½åŸºäºŽå®ƒåˆ›å»ºåˆ†æ”¯ '%s'"
-#: builtin/checkout.c:1745
+#: builtin/checkout.c:1764
#, c-format
msgid "git checkout: --detach does not take a path argument '%s'"
msgstr "git checkout:--detach ä¸èƒ½æŽ¥æ”¶è·¯å¾„å‚æ•° '%s'"
-#: builtin/checkout.c:1770
+#: builtin/checkout.c:1789
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:1775
+#: builtin/checkout.c:1794
msgid "you must specify path(s) to restore"
msgstr "您必须指定一个è¦æ¢å¤çš„路径"
-#: builtin/checkout.c:1800 builtin/checkout.c:1802 builtin/checkout.c:1854
-#: builtin/checkout.c:1856 builtin/clone.c:126 builtin/remote.c:170
-#: builtin/remote.c:172 builtin/submodule--helper.c:2959
-#: builtin/submodule--helper.c:3253 builtin/worktree.c:484
-#: builtin/worktree.c:486
+#: builtin/checkout.c:1819 builtin/checkout.c:1821 builtin/checkout.c:1873
+#: builtin/checkout.c:1875 builtin/clone.c:130 builtin/remote.c:171
+#: builtin/remote.c:173 builtin/submodule--helper.c:3038
+#: builtin/submodule--helper.c:3371 builtin/worktree.c:556
+#: builtin/worktree.c:558
msgid "branch"
msgstr "分支"
-#: builtin/checkout.c:1801
+#: builtin/checkout.c:1820
msgid "create and checkout a new branch"
msgstr "创建并检出一个新的分支"
-#: builtin/checkout.c:1803
+#: builtin/checkout.c:1822
msgid "create/reset and checkout a branch"
msgstr "创建/é‡ç½®å¹¶æ£€å‡ºä¸€ä¸ªåˆ†æ”¯"
-#: builtin/checkout.c:1804
+#: builtin/checkout.c:1823
msgid "create reflog for new branch"
msgstr "为新的分支创建引用日志"
-#: builtin/checkout.c:1806
+#: builtin/checkout.c:1825
msgid "second guess 'git checkout <no-such-branch>' (default)"
msgstr "二次猜测 'git checkout <无此分支>'(默认)"
-#: builtin/checkout.c:1807
+#: builtin/checkout.c:1826
msgid "use overlay mode (default)"
msgstr "使用å åŠ æ¨¡å¼ï¼ˆé»˜è®¤ï¼‰"
-#: builtin/checkout.c:1855
+#: builtin/checkout.c:1874
msgid "create and switch to a new branch"
msgstr "创建并切æ¢ä¸€ä¸ªæ–°åˆ†æ”¯"
-#: builtin/checkout.c:1857
+#: builtin/checkout.c:1876
msgid "create/reset and switch to a branch"
msgstr "创建/é‡ç½®å¹¶åˆ‡æ¢ä¸€ä¸ªåˆ†æ”¯"
-#: builtin/checkout.c:1859
+#: builtin/checkout.c:1878
msgid "second guess 'git switch <no-such-branch>'"
msgstr "二次猜测 'git switch <无此分支>'"
-#: builtin/checkout.c:1861
+#: builtin/checkout.c:1880
msgid "throw away local modifications"
msgstr "丢弃本地修改"
-#: builtin/checkout.c:1897
+#: builtin/checkout.c:1916
msgid "which tree-ish to checkout from"
msgstr "è¦æ£€å‡ºå“ªä¸€ä¸ªæ ‘"
-#: builtin/checkout.c:1899
+#: builtin/checkout.c:1918
msgid "restore the index"
msgstr "æ¢å¤ç´¢å¼•"
-#: builtin/checkout.c:1901
+#: builtin/checkout.c:1920
msgid "restore the working tree (default)"
msgstr "æ¢å¤å·¥ä½œåŒºï¼ˆé»˜è®¤ï¼‰"
-#: builtin/checkout.c:1903
+#: builtin/checkout.c:1922
msgid "ignore unmerged entries"
msgstr "忽略未åˆå¹¶æ¡ç›®"
-#: builtin/checkout.c:1904
+#: builtin/checkout.c:1923
msgid "use overlay mode"
msgstr "使用å åŠ æ¨¡å¼"
@@ -12892,8 +13262,8 @@ msgid "remove whole directories"
msgstr "删除整个目录"
#: builtin/clean.c:932 builtin/describe.c:565 builtin/describe.c:567
-#: builtin/grep.c:937 builtin/log.c:184 builtin/log.c:186
-#: builtin/ls-files.c:651 builtin/name-rev.c:535 builtin/name-rev.c:537
+#: builtin/grep.c:938 builtin/log.c:185 builtin/log.c:187
+#: builtin/ls-files.c:651 builtin/name-rev.c:585 builtin/name-rev.c:587
#: builtin/show-ref.c:179
msgid "pattern"
msgstr "模å¼"
@@ -12928,208 +13298,212 @@ msgstr ""
msgid "-x and -X cannot be used together"
msgstr "-x å’Œ -X ä¸èƒ½åŒæ—¶ä½¿ç”¨"
-#: builtin/clone.c:45
+#: builtin/clone.c:47
msgid "git clone [<options>] [--] <repo> [<dir>]"
msgstr "git clone [<选项>] [--] <仓库> [<路径>]"
-#: builtin/clone.c:96
+#: builtin/clone.c:100
msgid "don't clone shallow repository"
msgstr "ä¸å…‹éš†æµ…仓库"
-#: builtin/clone.c:98
+#: builtin/clone.c:102
msgid "don't create a checkout"
msgstr "ä¸åˆ›å»ºä¸€ä¸ªæ£€å‡º"
-#: builtin/clone.c:99 builtin/clone.c:101 builtin/init-db.c:542
+#: builtin/clone.c:103 builtin/clone.c:105 builtin/init-db.c:542
msgid "create a bare repository"
msgstr "创建一个纯仓库"
-#: builtin/clone.c:103
+#: builtin/clone.c:107
msgid "create a mirror repository (implies bare)"
msgstr "创建一个镜åƒä»“库(也是纯仓库)"
-#: builtin/clone.c:105
+#: builtin/clone.c:109
msgid "to clone from a local repository"
msgstr "从本地仓库克隆"
-#: builtin/clone.c:107
+#: builtin/clone.c:111
msgid "don't use local hardlinks, always copy"
msgstr "ä¸ä½¿ç”¨æœ¬åœ°ç¡¬é“¾æŽ¥ï¼Œå§‹ç»ˆå¤åˆ¶"
-#: builtin/clone.c:109
+#: builtin/clone.c:113
msgid "setup as shared repository"
msgstr "设置为共享仓库"
-#: builtin/clone.c:111
+#: builtin/clone.c:115
msgid "pathspec"
msgstr "路径规格"
-#: builtin/clone.c:111
+#: builtin/clone.c:115
msgid "initialize submodules in the clone"
msgstr "在克隆时åˆå§‹åŒ–å­æ¨¡ç»„"
-#: builtin/clone.c:115
+#: builtin/clone.c:119
msgid "number of submodules cloned in parallel"
msgstr "并å‘克隆的å­æ¨¡ç»„çš„æ•°é‡"
-#: builtin/clone.c:116 builtin/init-db.c:539
+#: builtin/clone.c:120 builtin/init-db.c:539
msgid "template-directory"
msgstr "模æ¿ç›®å½•"
-#: builtin/clone.c:117 builtin/init-db.c:540
+#: builtin/clone.c:121 builtin/init-db.c:540
msgid "directory from which templates will be used"
msgstr "模æ¿ç›®å½•å°†è¢«ä½¿ç”¨"
-#: builtin/clone.c:119 builtin/clone.c:121 builtin/submodule--helper.c:1871
-#: builtin/submodule--helper.c:2514 builtin/submodule--helper.c:3260
+#: builtin/clone.c:123 builtin/clone.c:125 builtin/submodule--helper.c:1885
+#: builtin/submodule--helper.c:2719 builtin/submodule--helper.c:3378
msgid "reference repository"
msgstr "å‚考仓库"
-#: builtin/clone.c:123 builtin/submodule--helper.c:1873
-#: builtin/submodule--helper.c:2516
+#: builtin/clone.c:127 builtin/submodule--helper.c:1887
+#: builtin/submodule--helper.c:2721
msgid "use --reference only while cloning"
msgstr "仅在克隆时å‚考 --reference 指å‘的本地仓库"
-#: builtin/clone.c:124 builtin/column.c:27 builtin/fmt-merge-msg.c:27
+#: builtin/clone.c:128 builtin/column.c:27 builtin/fmt-merge-msg.c:27
#: builtin/init-db.c:550 builtin/merge-file.c:48 builtin/merge.c:290
-#: builtin/pack-objects.c:3944 builtin/repack.c:665
-#: builtin/submodule--helper.c:3262 t/helper/test-simple-ipc.c:595
+#: builtin/pack-objects.c:3967 builtin/repack.c:669
+#: builtin/submodule--helper.c:3380 t/helper/test-simple-ipc.c:595
#: t/helper/test-simple-ipc.c:597
msgid "name"
msgstr "å称"
-#: builtin/clone.c:125
+#: builtin/clone.c:129
msgid "use <name> instead of 'origin' to track upstream"
msgstr "使用 <å称> 而ä¸æ˜¯ 'origin' 去跟踪上游"
-#: builtin/clone.c:127
+#: builtin/clone.c:131
msgid "checkout <branch> instead of the remote's HEAD"
msgstr "检出 <分支> 而ä¸æ˜¯è¿œç¨‹ HEAD"
-#: builtin/clone.c:129
+#: builtin/clone.c:133
msgid "path to git-upload-pack on the remote"
msgstr "远程 git-upload-pack 路径"
-#: builtin/clone.c:130 builtin/fetch.c:181 builtin/grep.c:876
+#: builtin/clone.c:134 builtin/fetch.c:182 builtin/grep.c:877
#: builtin/pull.c:212
msgid "depth"
msgstr "深度"
-#: builtin/clone.c:131
+#: builtin/clone.c:135
msgid "create a shallow clone of that depth"
msgstr "创建一个指定深度的浅克隆"
-#: builtin/clone.c:132 builtin/fetch.c:183 builtin/pack-objects.c:3933
+#: builtin/clone.c:136 builtin/fetch.c:184 builtin/pack-objects.c:3956
#: builtin/pull.c:215
msgid "time"
msgstr "时间"
-#: builtin/clone.c:133
+#: builtin/clone.c:137
msgid "create a shallow clone since a specific time"
msgstr "从一个特定时间创建一个浅克隆"
-#: builtin/clone.c:134 builtin/fetch.c:185 builtin/fetch.c:208
-#: builtin/pull.c:218 builtin/pull.c:243 builtin/rebase.c:1022
+#: builtin/clone.c:138 builtin/fetch.c:186 builtin/fetch.c:212
+#: builtin/pull.c:218 builtin/pull.c:243 builtin/rebase.c:1050
msgid "revision"
msgstr "版本"
-#: builtin/clone.c:135 builtin/fetch.c:186 builtin/pull.c:219
+#: builtin/clone.c:139 builtin/fetch.c:187 builtin/pull.c:219
msgid "deepen history of shallow clone, excluding rev"
msgstr "深化浅克隆的历å²ï¼Œé™¤äº†ç‰¹å®šç‰ˆæœ¬"
-#: builtin/clone.c:137 builtin/submodule--helper.c:1883
-#: builtin/submodule--helper.c:2530
+#: builtin/clone.c:141 builtin/submodule--helper.c:1897
+#: builtin/submodule--helper.c:2735
msgid "clone only one branch, HEAD or --branch"
msgstr "åªå…‹éš†ä¸€ä¸ªåˆ†æ”¯ã€HEAD 或 --branch"
-#: builtin/clone.c:139
+#: builtin/clone.c:143
msgid "don't clone any tags, and make later fetches not to follow them"
msgstr "ä¸è¦å…‹éš†ä»»ä½•æ ‡ç­¾ï¼Œå¹¶ä¸”åŽç»­èŽ·å–æ“作也ä¸ä¸‹è½½å®ƒä»¬"
-#: builtin/clone.c:141
+#: builtin/clone.c:145
msgid "any cloned submodules will be shallow"
msgstr "å­æ¨¡ç»„将以浅下载模å¼å…‹éš†"
-#: builtin/clone.c:142 builtin/init-db.c:548
+#: builtin/clone.c:146 builtin/init-db.c:548
msgid "gitdir"
msgstr "git目录"
-#: builtin/clone.c:143 builtin/init-db.c:549
+#: builtin/clone.c:147 builtin/init-db.c:549
msgid "separate git dir from working tree"
msgstr "git目录和工作区分离"
-#: builtin/clone.c:144
+#: builtin/clone.c:148
msgid "key=value"
msgstr "key=value"
-#: builtin/clone.c:145
+#: builtin/clone.c:149
msgid "set config inside the new repository"
msgstr "在新仓库中设置é…置信æ¯"
-#: builtin/clone.c:147 builtin/fetch.c:203 builtin/ls-remote.c:77
+#: builtin/clone.c:151 builtin/fetch.c:207 builtin/ls-remote.c:77
#: builtin/pull.c:234 builtin/push.c:575 builtin/send-pack.c:200
msgid "server-specific"
msgstr "server-specific"
-#: builtin/clone.c:147 builtin/fetch.c:203 builtin/ls-remote.c:77
+#: builtin/clone.c:151 builtin/fetch.c:207 builtin/ls-remote.c:77
#: builtin/pull.c:235 builtin/push.c:575 builtin/send-pack.c:201
msgid "option to transmit"
msgstr "传输选项"
-#: builtin/clone.c:148 builtin/fetch.c:204 builtin/pull.c:238
+#: builtin/clone.c:152 builtin/fetch.c:208 builtin/pull.c:238
#: builtin/push.c:576
msgid "use IPv4 addresses only"
msgstr "åªä½¿ç”¨ IPv4 地å€"
-#: builtin/clone.c:150 builtin/fetch.c:206 builtin/pull.c:241
+#: builtin/clone.c:154 builtin/fetch.c:210 builtin/pull.c:241
#: builtin/push.c:578
msgid "use IPv6 addresses only"
msgstr "åªä½¿ç”¨ IPv6 地å€"
-#: builtin/clone.c:154
+#: builtin/clone.c:158
+msgid "apply partial clone filters to submodules"
+msgstr "对å­æ¨¡ç»„使用部分克隆过滤器"
+
+#: builtin/clone.c:160
msgid "any cloned submodules will use their remote-tracking branch"
msgstr "任何克隆的å­æ¨¡ç»„将使用它们的远程跟踪分支"
-#: builtin/clone.c:156
+#: builtin/clone.c:162
msgid "initialize sparse-checkout file to include only files at root"
msgstr "åˆå§‹åŒ–稀ç–检出文件,åªåŒ…å«æ ¹ç›®å½•æ–‡ä»¶"
-#: builtin/clone.c:231
+#: builtin/clone.c:237
#, c-format
msgid "info: Could not add alternate for '%s': %s\n"
msgstr "info: ä¸èƒ½ä¸º '%s' 添加一个备用:%s\n"
-#: builtin/clone.c:304
+#: builtin/clone.c:310
#, c-format
msgid "%s exists and is not a directory"
msgstr "%s 存在且ä¸æ˜¯ä¸€ä¸ªç›®å½•"
-#: builtin/clone.c:322
+#: builtin/clone.c:328
#, c-format
msgid "failed to start iterator over '%s'"
msgstr "无法在 '%s' 上å¯åŠ¨è¿­ä»£å™¨"
-#: builtin/clone.c:353
+#: builtin/clone.c:359
#, c-format
msgid "failed to create link '%s'"
msgstr "无法创建链接 '%s'"
-#: builtin/clone.c:357
+#: builtin/clone.c:363
#, c-format
msgid "failed to copy file to '%s'"
msgstr "无法拷è´æ–‡ä»¶è‡³ '%s'"
-#: builtin/clone.c:362
+#: builtin/clone.c:368
#, c-format
msgid "failed to iterate over '%s'"
msgstr "无法在 '%s' 上迭代"
-#: builtin/clone.c:389
+#: builtin/clone.c:395
#, c-format
msgid "done.\n"
msgstr "完æˆã€‚\n"
-#: builtin/clone.c:403
+#: builtin/clone.c:409
msgid ""
"Clone succeeded, but checkout failed.\n"
"You can inspect what was checked out with 'git status'\n"
@@ -13139,144 +13513,148 @@ msgstr ""
"您å¯ä»¥é€šè¿‡ 'git status' 检查哪些已被检出,然åŽä½¿ç”¨å‘½ä»¤\n"
"'git restore --source=HEAD :/' é‡è¯•\n"
-#: builtin/clone.c:480
+#: builtin/clone.c:486
#, c-format
msgid "Could not find remote branch %s to clone."
msgstr "ä¸èƒ½å‘现è¦å…‹éš†çš„远程分支 %s。"
-#: builtin/clone.c:597
+#: builtin/clone.c:603
#, c-format
msgid "unable to update %s"
msgstr "ä¸èƒ½æ›´æ–° %s"
-#: builtin/clone.c:645
+#: builtin/clone.c:651
msgid "failed to initialize sparse-checkout"
msgstr "无法åˆå§‹åŒ–稀ç–检出"
-#: builtin/clone.c:668
+#: builtin/clone.c:674
msgid "remote HEAD refers to nonexistent ref, unable to checkout.\n"
msgstr "远程 HEAD 指å‘一个ä¸å­˜åœ¨çš„引用,无法检出。\n"
-#: builtin/clone.c:701
+#: builtin/clone.c:709
msgid "unable to checkout working tree"
msgstr "ä¸èƒ½æ£€å‡ºå·¥ä½œåŒº"
-#: builtin/clone.c:779
+#: builtin/clone.c:793
msgid "unable to write parameters to config file"
msgstr "无法将å‚数写入é…置文件"
-#: builtin/clone.c:842
+#: builtin/clone.c:856
msgid "cannot repack to clean up"
msgstr "无法执行 repack æ¥æ¸…ç†"
-#: builtin/clone.c:844
+#: builtin/clone.c:858
msgid "cannot unlink temporary alternates file"
msgstr "无法删除临时的 alternates 文件"
-#: builtin/clone.c:886
+#: builtin/clone.c:901
msgid "Too many arguments."
msgstr "太多å‚数。"
-#: builtin/clone.c:890 contrib/scalar/scalar.c:414
+#: builtin/clone.c:905 contrib/scalar/scalar.c:413
msgid "You must specify a repository to clone."
msgstr "您必须指定一个仓库æ¥å…‹éš†ã€‚"
-#: builtin/clone.c:903
+#: builtin/clone.c:918
#, c-format
msgid "options '%s' and '%s %s' cannot be used together"
msgstr "选项 '%s' å’Œ '%s %s' ä¸èƒ½åŒæ—¶ä½¿ç”¨"
-#: builtin/clone.c:920
+#: builtin/clone.c:935
#, c-format
msgid "repository '%s' does not exist"
msgstr "仓库 '%s' ä¸å­˜åœ¨"
-#: builtin/clone.c:924 builtin/fetch.c:2052
+#: builtin/clone.c:939 builtin/fetch.c:2176
#, c-format
msgid "depth %s is not a positive number"
msgstr "深度 %s ä¸æ˜¯ä¸€ä¸ªæ­£æ•°"
-#: builtin/clone.c:934
+#: builtin/clone.c:949
#, c-format
msgid "destination path '%s' already exists and is not an empty directory."
msgstr "目标路径 '%s' å·²ç»å­˜åœ¨ï¼Œå¹¶ä¸”ä¸æ˜¯ä¸€ä¸ªç©ºç›®å½•ã€‚"
-#: builtin/clone.c:940
+#: builtin/clone.c:955
#, c-format
msgid "repository path '%s' already exists and is not an empty directory."
msgstr "仓库路径 '%s' å·²ç»å­˜åœ¨ï¼Œå¹¶ä¸”ä¸æ˜¯ä¸€ä¸ªç©ºç›®å½•ã€‚"
-#: builtin/clone.c:954
+#: builtin/clone.c:969
#, c-format
msgid "working tree '%s' already exists."
msgstr "工作区 '%s' å·²ç»å­˜åœ¨ã€‚"
-#: builtin/clone.c:969 builtin/clone.c:990 builtin/difftool.c:256
-#: builtin/log.c:2012 builtin/worktree.c:281 builtin/worktree.c:313
+#: builtin/clone.c:984 builtin/clone.c:1005 builtin/difftool.c:256
+#: builtin/log.c:2037 builtin/worktree.c:350 builtin/worktree.c:382
#, c-format
msgid "could not create leading directories of '%s'"
msgstr "ä¸èƒ½ä¸º '%s' 创建先导目录"
-#: builtin/clone.c:974
+#: builtin/clone.c:989
#, c-format
msgid "could not create work tree dir '%s'"
msgstr "ä¸èƒ½åˆ›å»ºå·¥ä½œåŒºç›®å½• '%s'"
-#: builtin/clone.c:994
+#: builtin/clone.c:1009
#, c-format
msgid "Cloning into bare repository '%s'...\n"
msgstr "克隆到纯仓库 '%s'...\n"
-#: builtin/clone.c:996
+#: builtin/clone.c:1011
#, c-format
msgid "Cloning into '%s'...\n"
msgstr "正克隆到 '%s'...\n"
-#: builtin/clone.c:1025
+#: builtin/clone.c:1040
msgid ""
"clone --recursive is not compatible with both --reference and --reference-if-"
"able"
msgstr "clone --recursive å’Œ --reference ä»¥åŠ --reference-if-able ä¸å…¼å®¹"
-#: builtin/clone.c:1080 builtin/remote.c:200 builtin/remote.c:710
+#: builtin/clone.c:1116 builtin/remote.c:201 builtin/remote.c:721
#, c-format
msgid "'%s' is not a valid remote name"
msgstr "'%s' ä¸æ˜¯ä¸€ä¸ªæœ‰æ•ˆçš„远程å称"
-#: builtin/clone.c:1121
+#: builtin/clone.c:1157
msgid "--depth is ignored in local clones; use file:// instead."
msgstr "--depth 在本地克隆时被忽略,请改用 file:// å议。"
-#: builtin/clone.c:1123
+#: builtin/clone.c:1159
msgid "--shallow-since is ignored in local clones; use file:// instead."
msgstr "--shallow-since 在本地克隆时被忽略,请改用 file:// å议。"
-#: builtin/clone.c:1125
+#: builtin/clone.c:1161
msgid "--shallow-exclude is ignored in local clones; use file:// instead."
msgstr "--shallow-exclude 在本地克隆时被忽略,请改用 file:// å议。"
-#: builtin/clone.c:1127
+#: builtin/clone.c:1163
msgid "--filter is ignored in local clones; use file:// instead."
msgstr "--filter 在本地克隆时被忽略,请改用 file:// å议。"
-#: builtin/clone.c:1132
+#: builtin/clone.c:1168
msgid "source repository is shallow, ignoring --local"
msgstr "æºä»“库是浅克隆,忽略 --local"
-#: builtin/clone.c:1137
+#: builtin/clone.c:1173
msgid "--local is ignored"
msgstr "--local 被忽略"
-#: builtin/clone.c:1216 builtin/clone.c:1276
+#: builtin/clone.c:1185
+msgid "cannot clone from filtered bundle"
+msgstr "无法从ç»è¿‡è¿‡æ»¤çš„归档包克隆"
+
+#: builtin/clone.c:1265 builtin/clone.c:1324
msgid "remote transport reported error"
msgstr "远程传输报告错误"
-#: builtin/clone.c:1228 builtin/clone.c:1239
+#: builtin/clone.c:1277 builtin/clone.c:1289
#, c-format
msgid "Remote branch %s not found in upstream %s"
msgstr "远程分支 %s 在上游 %s 未å‘现"
-#: builtin/clone.c:1242
+#: builtin/clone.c:1292
msgid "You appear to have cloned an empty repository."
msgstr "您似乎克隆了一个空仓库。"
@@ -13329,7 +13707,7 @@ msgstr ""
">]] [--reachable|--stdin-packs|--stdin-commits] [--changed-paths] [--"
"[no-]max-new-filters <n>] [--[no-]progress] <切分选项>"
-#: builtin/commit-graph.c:51 builtin/fetch.c:192 builtin/log.c:1794
+#: builtin/commit-graph.c:51 builtin/fetch.c:196 builtin/log.c:1813
msgid "dir"
msgstr "目录"
@@ -13427,7 +13805,7 @@ msgstr ""
msgid "duplicate parent %s ignored"
msgstr "忽略é‡å¤çš„父æ交 %s"
-#: builtin/commit-tree.c:56 builtin/commit-tree.c:134 builtin/log.c:577
+#: builtin/commit-tree.c:56 builtin/commit-tree.c:134 builtin/log.c:590
#, c-format
msgid "not a valid object name %s"
msgstr "ä¸æ˜¯ä¸€ä¸ªæœ‰æ•ˆçš„对象å %s"
@@ -13450,13 +13828,13 @@ msgstr "父æ交"
msgid "id of a parent commit object"
msgstr "父æ交对象 ID"
-#: builtin/commit-tree.c:112 builtin/commit.c:1627 builtin/merge.c:284
-#: builtin/notes.c:407 builtin/notes.c:573 builtin/stash.c:1677
-#: builtin/tag.c:454
+#: builtin/commit-tree.c:112 builtin/commit.c:1626 builtin/merge.c:284
+#: builtin/notes.c:407 builtin/notes.c:573 builtin/stash.c:1666
+#: builtin/tag.c:455
msgid "message"
msgstr "说明"
-#: builtin/commit-tree.c:113 builtin/commit.c:1627
+#: builtin/commit-tree.c:113 builtin/commit.c:1626
msgid "commit message"
msgstr "æ交说明"
@@ -13464,7 +13842,7 @@ msgstr "æ交说明"
msgid "read commit log message from file"
msgstr "从文件中读å–æ交说明"
-#: builtin/commit-tree.c:119 builtin/commit.c:1644 builtin/merge.c:303
+#: builtin/commit-tree.c:119 builtin/commit.c:1643 builtin/merge.c:303
#: builtin/pull.c:180 builtin/revert.c:118
msgid "GPG sign commit"
msgstr "GPG æ交签å"
@@ -13477,15 +13855,15 @@ msgstr "必须精确地æ供一个树"
msgid "git commit-tree: failed to read"
msgstr "git commit-tree:无法读å–"
-#: builtin/commit.c:42
+#: builtin/commit.c:43
msgid "git commit [<options>] [--] <pathspec>..."
msgstr "git commit [<选项>] [--] <路径规格>..."
-#: builtin/commit.c:47
+#: builtin/commit.c:48
msgid "git status [<options>] [--] <pathspec>..."
msgstr "git status [<选项>] [--] <路径规格>..."
-#: builtin/commit.c:52
+#: builtin/commit.c:53
msgid ""
"You asked to amend the most recent commit, but doing so would make\n"
"it empty. You can repeat your command with --allow-empty, or you can\n"
@@ -13494,7 +13872,7 @@ msgstr ""
"您è¦ä¿®è¡¥æœ€è¿‘çš„æ交,但这么åšä¼šè®©å®ƒæˆä¸ºç©ºæ交。您å¯ä»¥é‡å¤æ‚¨çš„命令并带上\n"
"--allow-empty 选项,或者您å¯ç”¨å‘½ä»¤ \"git reset HEAD^\" 整个删除该æ交。\n"
-#: builtin/commit.c:57
+#: builtin/commit.c:58
msgid ""
"The previous cherry-pick is now empty, possibly due to conflict resolution.\n"
"If you wish to commit it anyway, use:\n"
@@ -13508,15 +13886,15 @@ msgstr ""
" git commit --allow-empty\n"
"\n"
-#: builtin/commit.c:64
+#: builtin/commit.c:65
msgid "Otherwise, please use 'git rebase --skip'\n"
msgstr "å¦åˆ™ï¼Œè¯·ä½¿ç”¨ 'git rebase --skip'\n"
-#: builtin/commit.c:67
+#: builtin/commit.c:68
msgid "Otherwise, please use 'git cherry-pick --skip'\n"
msgstr "å¦åˆ™ï¼Œè¯·ä½¿ç”¨ 'git cherry-pick --skip'\n"
-#: builtin/commit.c:70
+#: builtin/commit.c:71
msgid ""
"and then use:\n"
"\n"
@@ -13537,118 +13915,118 @@ msgstr ""
" git cherry-pick --skip\n"
"\n"
-#: builtin/commit.c:325
+#: builtin/commit.c:326
msgid "failed to unpack HEAD tree object"
msgstr "无法解包 HEAD 树对象"
-#: builtin/commit.c:375
+#: builtin/commit.c:376
msgid "No paths with --include/--only does not make sense."
msgstr "å‚æ•° --include/--only ä¸è·Ÿè·¯å¾„没有æ„义。"
-#: builtin/commit.c:387
+#: builtin/commit.c:388
msgid "unable to create temporary index"
msgstr "ä¸èƒ½åˆ›å»ºä¸´æ—¶ç´¢å¼•"
-#: builtin/commit.c:396
+#: builtin/commit.c:397
msgid "interactive add failed"
msgstr "交互å¼æ·»åŠ å¤±è´¥"
-#: builtin/commit.c:411
+#: builtin/commit.c:412
msgid "unable to update temporary index"
msgstr "无法更新临时索引"
-#: builtin/commit.c:413
+#: builtin/commit.c:414
msgid "Failed to update main cache tree"
msgstr "ä¸èƒ½æ›´æ–°æ ‘的主缓存"
-#: builtin/commit.c:438 builtin/commit.c:461 builtin/commit.c:509
+#: builtin/commit.c:439 builtin/commit.c:462 builtin/commit.c:510
msgid "unable to write new_index file"
msgstr "无法写 new_index 文件"
-#: builtin/commit.c:490
+#: builtin/commit.c:491
msgid "cannot do a partial commit during a merge."
msgstr "在åˆå¹¶è¿‡ç¨‹ä¸­ä¸èƒ½åšéƒ¨åˆ†æ交。"
-#: builtin/commit.c:492
+#: builtin/commit.c:493
msgid "cannot do a partial commit during a cherry-pick."
msgstr "在拣选过程中ä¸èƒ½åšéƒ¨åˆ†æ交。"
-#: builtin/commit.c:494
+#: builtin/commit.c:495
msgid "cannot do a partial commit during a rebase."
msgstr "在å˜åŸºè¿‡ç¨‹ä¸­ä¸èƒ½åšéƒ¨åˆ†æ交。"
-#: builtin/commit.c:502
+#: builtin/commit.c:503
msgid "cannot read the index"
msgstr "无法读å–索引"
-#: builtin/commit.c:521
+#: builtin/commit.c:522
msgid "unable to write temporary index file"
msgstr "无法写临时索引文件"
-#: builtin/commit.c:619
+#: builtin/commit.c:620
#, c-format
msgid "commit '%s' lacks author header"
msgstr "æ交 '%s' 缺少作者信æ¯"
-#: builtin/commit.c:621
+#: builtin/commit.c:622
#, c-format
msgid "commit '%s' has malformed author line"
msgstr "æ交 '%s' 有格å¼é”™è¯¯çš„作者信æ¯"
-#: builtin/commit.c:640
+#: builtin/commit.c:641
msgid "malformed --author parameter"
msgstr "æ ¼å¼é”™è¯¯çš„ --author å‚æ•°"
-#: builtin/commit.c:693
+#: builtin/commit.c:694
msgid ""
"unable to select a comment character that is not used\n"
"in the current commit message"
msgstr "无法选择一个未被当å‰æ交说明使用的注释字符"
-#: builtin/commit.c:747 builtin/commit.c:781 builtin/commit.c:1166
+#: builtin/commit.c:750 builtin/commit.c:784 builtin/commit.c:1170
#, c-format
msgid "could not lookup commit %s"
msgstr "ä¸èƒ½æŸ¥è¯¢æ交 %s"
-#: builtin/commit.c:759 builtin/shortlog.c:416
+#: builtin/commit.c:762 builtin/shortlog.c:417
#, c-format
msgid "(reading log message from standard input)\n"
msgstr "(正从标准输入中读å–日志信æ¯ï¼‰\n"
-#: builtin/commit.c:761
+#: builtin/commit.c:764
msgid "could not read log from standard input"
msgstr "ä¸èƒ½ä»Žæ ‡å‡†è¾“入中读å–日志信æ¯"
-#: builtin/commit.c:765
+#: builtin/commit.c:768
#, c-format
msgid "could not read log file '%s'"
msgstr "ä¸èƒ½è¯»å–日志文件 '%s'"
-#: builtin/commit.c:802
+#: builtin/commit.c:805
#, c-format
msgid "options '%s' and '%s:%s' cannot be used together"
msgstr "选项 '%s' å’Œ '%s:%s' ä¸èƒ½åŒæ—¶ä½¿ç”¨"
-#: builtin/commit.c:814 builtin/commit.c:830
+#: builtin/commit.c:817 builtin/commit.c:833
msgid "could not read SQUASH_MSG"
msgstr "ä¸èƒ½è¯»å– SQUASH_MSG"
-#: builtin/commit.c:821
+#: builtin/commit.c:824
msgid "could not read MERGE_MSG"
msgstr "ä¸èƒ½è¯»å– MERGE_MSG"
-#: builtin/commit.c:881
+#: builtin/commit.c:884
msgid "could not write commit template"
msgstr "ä¸èƒ½å†™æ交模版"
-#: builtin/commit.c:894
+#: builtin/commit.c:897
#, c-format
msgid ""
"Please enter the commit message for your changes. Lines starting\n"
"with '%c' will be ignored.\n"
msgstr "请为您的å˜æ›´è¾“å…¥æ交说明。以 '%c' 开始的行将被忽略。\n"
-#: builtin/commit.c:896
+#: builtin/commit.c:899
#, c-format
msgid ""
"Please enter the commit message for your changes. Lines starting\n"
@@ -13657,7 +14035,7 @@ msgstr ""
"请为您的å˜æ›´è¾“å…¥æ交说明。以 '%c' 开始的行将被忽略,而一个空的æ交\n"
"说明将会终止æ交。\n"
-#: builtin/commit.c:900
+#: builtin/commit.c:903
#, c-format
msgid ""
"Please enter the commit message for your changes. Lines starting\n"
@@ -13666,7 +14044,7 @@ msgstr ""
"请为您的å˜æ›´è¾“å…¥æ交说明。以 '%c' 开始的行将被ä¿ç•™ï¼Œå¦‚果您愿æ„\n"
"也å¯ä»¥åˆ é™¤å®ƒä»¬ã€‚\n"
-#: builtin/commit.c:904
+#: builtin/commit.c:907
#, c-format
msgid ""
"Please enter the commit message for your changes. Lines starting\n"
@@ -13676,7 +14054,7 @@ msgstr ""
"请为您的å˜æ›´è¾“å…¥æ交说明。以 '%c' 开始的行将被ä¿ç•™ï¼Œå¦‚果您愿æ„\n"
"也å¯ä»¥åˆ é™¤å®ƒä»¬ã€‚一个空的æ交说明将会终止æ交。\n"
-#: builtin/commit.c:916
+#: builtin/commit.c:919
msgid ""
"\n"
"It looks like you may be committing a merge.\n"
@@ -13689,7 +14067,7 @@ msgstr ""
"\tgit update-ref -d MERGE_HEAD\n"
"然åŽé‡è¯•ã€‚\n"
-#: builtin/commit.c:921
+#: builtin/commit.c:924
msgid ""
"\n"
"It looks like you may be committing a cherry-pick.\n"
@@ -13703,368 +14081,348 @@ msgstr ""
"然åŽé‡è¯•ã€‚\n"
# 译者:为ä¿è¯åœ¨è¾“出中对é½ï¼Œæ³¨æ„调整å¥ä¸­ç©ºæ ¼ï¼
-#: builtin/commit.c:948
+#: builtin/commit.c:951
#, c-format
msgid "%sAuthor: %.*s <%.*s>"
msgstr "%s作者: %.*s <%.*s>"
# 译者:为ä¿è¯åœ¨è¾“出中对é½ï¼Œæ³¨æ„调整å¥ä¸­ç©ºæ ¼ï¼
-#: builtin/commit.c:956
+#: builtin/commit.c:959
#, c-format
msgid "%sDate: %s"
msgstr "%s日期: %s"
# 译者:为ä¿è¯åœ¨è¾“出中对é½ï¼Œæ³¨æ„调整å¥ä¸­ç©ºæ ¼ï¼
-#: builtin/commit.c:963
+#: builtin/commit.c:966
#, c-format
msgid "%sCommitter: %.*s <%.*s>"
msgstr "%sæ交者:%.*s <%.*s>"
-#: builtin/commit.c:981
+#: builtin/commit.c:984
msgid "Cannot read index"
msgstr "无法读å–索引"
-#: builtin/commit.c:1026
+#: builtin/commit.c:1029
msgid "unable to pass trailers to --trailers"
msgstr "无法将尾注传递给 --trailers"
-#: builtin/commit.c:1066
+#: builtin/commit.c:1069
msgid "Error building trees"
msgstr "无法创建树对象"
-#: builtin/commit.c:1080 builtin/tag.c:316
+#: builtin/commit.c:1083 builtin/tag.c:317
#, c-format
msgid "Please supply the message using either -m or -F option.\n"
msgstr "请使用 -m 或 -F 选项æä¾›æ交说明。\n"
-#: builtin/commit.c:1124
+#: builtin/commit.c:1128
#, c-format
msgid "--author '%s' is not 'Name <email>' and matches no existing author"
msgstr "--author '%s' ä¸æ˜¯ '姓å <邮箱>' æ ¼å¼ï¼Œä¸”未能在现有作者中找到匹é…"
-#: builtin/commit.c:1138
+#: builtin/commit.c:1142
#, c-format
msgid "Invalid ignored mode '%s'"
msgstr "æ— æ•ˆçš„å¿½ç•¥æ¨¡å¼ '%s'"
-#: builtin/commit.c:1156 builtin/commit.c:1451
+#: builtin/commit.c:1160 builtin/commit.c:1450
#, c-format
msgid "Invalid untracked files mode '%s'"
msgstr "无效的未跟踪文件å‚æ•° '%s'"
-#: builtin/commit.c:1227
+#: builtin/commit.c:1231
msgid "You are in the middle of a merge -- cannot reword."
msgstr "您正处于一个åˆå¹¶è¿‡ç¨‹ä¸­ -- 无法改写说明。"
-#: builtin/commit.c:1229
+#: builtin/commit.c:1233
msgid "You are in the middle of a cherry-pick -- cannot reword."
msgstr "您正处于一个拣选过程中 -- 无法改写说明。"
-#: builtin/commit.c:1232
+#: builtin/commit.c:1236
#, c-format
msgid "reword option of '%s' and path '%s' cannot be used together"
msgstr "改写说明选项 '%s' 和路径 '%s' ä¸èƒ½åŒæ—¶ä½¿ç”¨"
-#: builtin/commit.c:1234
+#: builtin/commit.c:1238
#, c-format
msgid "reword option of '%s' and '%s' cannot be used together"
msgstr "改写说明选项 '%s' å’Œ '%s' ä¸èƒ½åŒæ—¶ä½¿ç”¨"
-#: builtin/commit.c:1254
-msgid "Using both --reset-author and --author does not make sense"
-msgstr "åŒæ—¶ä½¿ç”¨ --reset-author å’Œ --author 没有æ„义"
-
-#: builtin/commit.c:1261
+#: builtin/commit.c:1263
msgid "You have nothing to amend."
msgstr "您没有å¯ä¿®è¡¥çš„æ交。"
-#: builtin/commit.c:1264
+#: builtin/commit.c:1266
msgid "You are in the middle of a merge -- cannot amend."
msgstr "您正处于一个åˆå¹¶è¿‡ç¨‹ä¸­ -- 无法修补æ交。"
-#: builtin/commit.c:1266
+#: builtin/commit.c:1268
msgid "You are in the middle of a cherry-pick -- cannot amend."
msgstr "您正处于一个拣选过程中 -- 无法修补æ交。"
-#: builtin/commit.c:1268
+#: builtin/commit.c:1270
msgid "You are in the middle of a rebase -- cannot amend."
msgstr "您正处于一个å˜åŸºè¿‡ç¨‹ä¸­ -- 无法修补æ交。"
-#: builtin/commit.c:1271
-msgid "Options --squash and --fixup cannot be used together"
-msgstr "选项 --squash å’Œ --fixup ä¸èƒ½åŒæ—¶ä½¿ç”¨"
-
-#: builtin/commit.c:1281
-msgid "Only one of -c/-C/-F/--fixup can be used."
-msgstr "åªèƒ½ç”¨ä¸€ä¸ª -c/-C/-F/--fixup 选项。"
-
-#: builtin/commit.c:1283
-msgid "Option -m cannot be combined with -c/-C/-F."
-msgstr "选项 -m ä¸èƒ½å’Œ -c/-C/-F åŒæ—¶ä½¿ç”¨ã€‚"
-
-#: builtin/commit.c:1292
+#: builtin/commit.c:1290
msgid "--reset-author can be used only with -C, -c or --amend."
msgstr "--reset-author åªèƒ½å’Œ -Cã€-c 或 --amend åŒæ—¶ä½¿ç”¨ã€‚"
-#: builtin/commit.c:1310
-msgid "Only one of --include/--only/--all/--interactive/--patch can be used."
-msgstr "åªèƒ½ç”¨ä¸€ä¸ª --include/--only/--all/--interactive/--patch 选项。"
-
-#: builtin/commit.c:1338
+#: builtin/commit.c:1337
#, c-format
msgid "unknown option: --fixup=%s:%s"
msgstr "未知选项:--fixup=%s:%s"
-#: builtin/commit.c:1355
+#: builtin/commit.c:1354
#, c-format
msgid "paths '%s ...' with -a does not make sense"
msgstr "路径 '%s ...' å’Œ -a 选项åŒæ—¶ä½¿ç”¨æ²¡æœ‰æ„义"
-#: builtin/commit.c:1486 builtin/commit.c:1655
+#: builtin/commit.c:1485 builtin/commit.c:1654
msgid "show status concisely"
msgstr "以简æ´çš„æ ¼å¼æ˜¾ç¤ºçŠ¶æ€"
-#: builtin/commit.c:1488 builtin/commit.c:1657
+#: builtin/commit.c:1487 builtin/commit.c:1656
msgid "show branch information"
msgstr "显示分支信æ¯"
-#: builtin/commit.c:1490
+#: builtin/commit.c:1489
msgid "show stash information"
msgstr "显示贮è—区信æ¯"
-#: builtin/commit.c:1492 builtin/commit.c:1659
+#: builtin/commit.c:1491 builtin/commit.c:1658
msgid "compute full ahead/behind values"
msgstr "计算完整的领先/è½åŽå€¼"
-#: builtin/commit.c:1494
+#: builtin/commit.c:1493
msgid "version"
msgstr "版本"
-#: builtin/commit.c:1494 builtin/commit.c:1661 builtin/push.c:551
-#: builtin/worktree.c:690
+#: builtin/commit.c:1493 builtin/commit.c:1660 builtin/push.c:551
+#: builtin/worktree.c:765
msgid "machine-readable output"
msgstr "机器å¯è¯»çš„输出"
-#: builtin/commit.c:1497 builtin/commit.c:1663
+#: builtin/commit.c:1496 builtin/commit.c:1662
msgid "show status in long format (default)"
msgstr "以长格å¼æ˜¾ç¤ºçŠ¶æ€ï¼ˆé»˜è®¤ï¼‰"
-#: builtin/commit.c:1500 builtin/commit.c:1666
+#: builtin/commit.c:1499 builtin/commit.c:1665
msgid "terminate entries with NUL"
msgstr "æ¡ç›®ä»¥ NUL 字符结尾"
-#: builtin/commit.c:1502 builtin/commit.c:1506 builtin/commit.c:1669
+#: builtin/commit.c:1501 builtin/commit.c:1505 builtin/commit.c:1668
#: builtin/fast-export.c:1172 builtin/fast-export.c:1175
-#: builtin/fast-export.c:1178 builtin/rebase.c:1111 parse-options.h:337
+#: builtin/fast-export.c:1178 builtin/rebase.c:1139 parse-options.h:368
msgid "mode"
msgstr "模å¼"
-#: builtin/commit.c:1503 builtin/commit.c:1669
+#: builtin/commit.c:1502 builtin/commit.c:1668
msgid "show untracked files, optional modes: all, normal, no. (Default: all)"
msgstr "显示未跟踪的文件,“模å¼â€çš„å¯é€‰å‚数:allã€normalã€no。(默认:all)"
-#: builtin/commit.c:1507
+#: builtin/commit.c:1506
msgid ""
"show ignored files, optional modes: traditional, matching, no. (Default: "
"traditional)"
msgstr ""
"显示已忽略的文件,å¯é€‰æ¨¡å¼ï¼štraditionalã€matchingã€no。(默认:traditional)"
-#: builtin/commit.c:1509 parse-options.h:192
+#: builtin/commit.c:1508 parse-options.h:197
msgid "when"
msgstr "何时"
-#: builtin/commit.c:1510
+#: builtin/commit.c:1509
msgid ""
"ignore changes to submodules, optional when: all, dirty, untracked. "
"(Default: all)"
msgstr ""
"忽略å­æ¨¡ç»„的更改,“何时â€çš„å¯é€‰å‚数:allã€dirtyã€untracked。(默认:all)"
-#: builtin/commit.c:1512
+#: builtin/commit.c:1511
msgid "list untracked files in columns"
msgstr "以列的方å¼æ˜¾ç¤ºæœªè·Ÿè¸ªçš„文件"
-#: builtin/commit.c:1513
+#: builtin/commit.c:1512
msgid "do not detect renames"
msgstr "ä¸æ£€æµ‹é‡å‘½å"
-#: builtin/commit.c:1515
+#: builtin/commit.c:1514
msgid "detect renames, optionally set similarity index"
msgstr "检测é‡å‘½å,å¯ä»¥è®¾ç½®ç´¢å¼•ç›¸ä¼¼åº¦"
-#: builtin/commit.c:1538
+#: builtin/commit.c:1537
msgid "Unsupported combination of ignored and untracked-files arguments"
msgstr "ä¸æ”¯æŒå·²å¿½ç•¥å’Œæœªè·Ÿè¸ªæ–‡ä»¶å‚数的组åˆ"
-#: builtin/commit.c:1620
+#: builtin/commit.c:1619
msgid "suppress summary after successful commit"
msgstr "æ交æˆåŠŸåŽä¸æ˜¾ç¤ºæ¦‚è¿°ä¿¡æ¯"
-#: builtin/commit.c:1621
+#: builtin/commit.c:1620
msgid "show diff in commit message template"
msgstr "在æ交说明模æ¿é‡Œæ˜¾ç¤ºå·®å¼‚"
-#: builtin/commit.c:1623
+#: builtin/commit.c:1622
msgid "Commit message options"
msgstr "æ交说明选项"
-#: builtin/commit.c:1624 builtin/merge.c:288 builtin/tag.c:456
+#: builtin/commit.c:1623 builtin/merge.c:288 builtin/tag.c:457
msgid "read message from file"
msgstr "从文件中读å–æ交说明"
-#: builtin/commit.c:1625
+#: builtin/commit.c:1624
msgid "author"
msgstr "作者"
-#: builtin/commit.c:1625
+#: builtin/commit.c:1624
msgid "override author for commit"
msgstr "æ交时覆盖作者"
-#: builtin/commit.c:1626 builtin/gc.c:551
+#: builtin/commit.c:1625 builtin/gc.c:551
msgid "date"
msgstr "日期"
-#: builtin/commit.c:1626
+#: builtin/commit.c:1625
msgid "override date for commit"
msgstr "æ交时覆盖日期"
-#: builtin/commit.c:1628 builtin/commit.c:1629 builtin/commit.c:1635
-#: parse-options.h:329 ref-filter.h:89
+#: builtin/commit.c:1627 builtin/commit.c:1628 builtin/commit.c:1634
+#: parse-options.h:360 ref-filter.h:89
msgid "commit"
msgstr "æ交"
-#: builtin/commit.c:1628
+#: builtin/commit.c:1627
msgid "reuse and edit message from specified commit"
msgstr "é‡ç”¨å¹¶ç¼–辑指定æ交的æ交说明"
-#: builtin/commit.c:1629
+#: builtin/commit.c:1628
msgid "reuse message from specified commit"
msgstr "é‡ç”¨æŒ‡å®šæ交的æ交说明"
#. TRANSLATORS: Leave "[(amend|reword):]" as-is,
#. and only translate <commit>.
#.
-#: builtin/commit.c:1634
+#: builtin/commit.c:1633
msgid "[(amend|reword):]commit"
msgstr "[(amend|reword):]æ交"
-#: builtin/commit.c:1634
+#: builtin/commit.c:1633
msgid ""
"use autosquash formatted message to fixup or amend/reword specified commit"
msgstr "使用自动挤压格å¼çš„æ交说明对指定的æ交进行修正ã€ä¿®è¡¥æˆ–改写说明"
-#: builtin/commit.c:1635
+#: builtin/commit.c:1634
msgid "use autosquash formatted message to squash specified commit"
msgstr "使用自动挤压格å¼çš„æ交说明用以挤压至指定的æ交"
-#: builtin/commit.c:1636
+#: builtin/commit.c:1635
msgid "the commit is authored by me now (used with -C/-c/--amend)"
msgstr "现在将该æ交的作者改为我(和 -C/-c/--amend å‚数共用)"
-#: builtin/commit.c:1637 builtin/interpret-trailers.c:111
+#: builtin/commit.c:1636 builtin/interpret-trailers.c:111
msgid "trailer"
msgstr "尾注"
-#: builtin/commit.c:1637
+#: builtin/commit.c:1636
msgid "add custom trailer(s)"
msgstr "添加自定义尾注"
-#: builtin/commit.c:1638 builtin/log.c:1769 builtin/merge.c:306
+#: builtin/commit.c:1637 builtin/log.c:1788 builtin/merge.c:306
#: builtin/pull.c:146 builtin/revert.c:110
msgid "add a Signed-off-by trailer"
msgstr "添加 Signed-off-by 尾注"
-#: builtin/commit.c:1639
+#: builtin/commit.c:1638
msgid "use specified template file"
msgstr "使用指定的模æ¿æ–‡ä»¶"
-#: builtin/commit.c:1640
+#: builtin/commit.c:1639
msgid "force edit of commit"
msgstr "强制编辑æ交"
-#: builtin/commit.c:1642
+#: builtin/commit.c:1641
msgid "include status in commit message template"
msgstr "在æ交说明模æ¿é‡ŒåŒ…å«çŠ¶æ€ä¿¡æ¯"
-#: builtin/commit.c:1647
+#: builtin/commit.c:1646
msgid "Commit contents options"
msgstr "æ交内容选项"
-#: builtin/commit.c:1648
+#: builtin/commit.c:1647
msgid "commit all changed files"
msgstr "æ交所有改动的文件"
-#: builtin/commit.c:1649
+#: builtin/commit.c:1648
msgid "add specified files to index for commit"
msgstr "添加指定的文件到索引区等待æ交"
-#: builtin/commit.c:1650
+#: builtin/commit.c:1649
msgid "interactively add files"
msgstr "交互å¼æ·»åŠ æ–‡ä»¶"
-#: builtin/commit.c:1651
+#: builtin/commit.c:1650
msgid "interactively add changes"
msgstr "交互å¼æ·»åŠ å˜æ›´"
-#: builtin/commit.c:1652
+#: builtin/commit.c:1651
msgid "commit only specified files"
msgstr "åªæ交指定的文件"
-#: builtin/commit.c:1653
+#: builtin/commit.c:1652
msgid "bypass pre-commit and commit-msg hooks"
msgstr "绕过 pre-commit å’Œ commit-msg é’©å­"
-#: builtin/commit.c:1654
+#: builtin/commit.c:1653
msgid "show what would be committed"
msgstr "显示将è¦æ交的内容"
-#: builtin/commit.c:1667
+#: builtin/commit.c:1666
msgid "amend previous commit"
msgstr "修改先å‰çš„æ交"
-#: builtin/commit.c:1668
+#: builtin/commit.c:1667
msgid "bypass post-rewrite hook"
msgstr "绕过 post-rewrite é’©å­"
-#: builtin/commit.c:1675
+#: builtin/commit.c:1674
msgid "ok to record an empty change"
msgstr "å…许一个空æ交"
-#: builtin/commit.c:1677
+#: builtin/commit.c:1676
msgid "ok to record a change with an empty message"
msgstr "å…许空的æ交说明"
-#: builtin/commit.c:1753
+#: builtin/commit.c:1752
#, c-format
msgid "Corrupt MERGE_HEAD file (%s)"
msgstr "æŸåçš„ MERGE_HEAD 文件(%s)"
-#: builtin/commit.c:1760
+#: builtin/commit.c:1759
msgid "could not read MERGE_MODE"
msgstr "ä¸èƒ½è¯»å– MERGE_MODE"
-#: builtin/commit.c:1781
+#: builtin/commit.c:1780
#, c-format
msgid "could not read commit message: %s"
msgstr "ä¸èƒ½è¯»å–æ交说明:%s"
-#: builtin/commit.c:1788
+#: builtin/commit.c:1787
#, c-format
msgid "Aborting commit due to empty commit message.\n"
msgstr "终止æ交因为æ交说明为空。\n"
-#: builtin/commit.c:1793
+#: builtin/commit.c:1792
#, c-format
msgid "Aborting commit; you did not edit the message.\n"
msgstr "终止æ交;您未更改æ¥è‡ªæ¨¡ç‰ˆçš„æ交说明。\n"
-#: builtin/commit.c:1804
+#: builtin/commit.c:1803
#, c-format
msgid "Aborting commit due to empty commit message body.\n"
msgstr "å› æ交说明的正文为空而终止æ交。\n"
-#: builtin/commit.c:1840
+#: builtin/commit.c:1839
msgid ""
"repository has been updated, but unable to write\n"
"new_index file. Check that disk is not full and quota is\n"
@@ -14186,6 +14544,10 @@ msgstr "获得颜色设置:é…ç½® [stdout-is-tty]"
msgid "Type"
msgstr "类型"
+#: builtin/config.c:154 builtin/env--helper.c:42 builtin/hash-object.c:97
+msgid "type"
+msgstr "类型"
+
#: builtin/config.c:154 builtin/env--helper.c:43
msgid "value is given this type"
msgstr "å–值为该类型"
@@ -14393,10 +14755,6 @@ msgstr ""
msgid "no such section: %s"
msgstr "æ— æ­¤å°èŠ‚:%s"
-#: builtin/count-objects.c:90
-msgid "git count-objects [-v] [-H | --human-readable]"
-msgstr "git count-objects [-v] [-H | --human-readable]"
-
#: builtin/count-objects.c:100
msgid "print sizes in human readable format"
msgstr "以用户å¯è¯»çš„æ ¼å¼æ˜¾ç¤ºå¤§å°"
@@ -14563,7 +14921,7 @@ msgstr "åªè€ƒè™‘åŒ¹é… <模å¼> 的标签"
msgid "do not consider tags matching <pattern>"
msgstr "ä¸è€ƒè™‘åŒ¹é… <模å¼> 的标签"
-#: builtin/describe.c:570 builtin/name-rev.c:544
+#: builtin/describe.c:570 builtin/name-rev.c:595
msgid "show abbreviated commit object as fallback"
msgstr "显示简写的æ交å·ä½œä¸ºåŽå¤‡"
@@ -14611,7 +14969,7 @@ msgstr "%s...%s:无åˆå¹¶åŸºçº¿"
msgid "Not a git repository"
msgstr "ä¸æ˜¯ git 仓库"
-#: builtin/diff.c:537 builtin/grep.c:698
+#: builtin/diff.c:537 builtin/grep.c:700
#, c-format
msgid "invalid object '%s' given."
msgstr "æ供了无效对象 '%s'。"
@@ -14727,11 +15085,11 @@ msgstr "传递给 `diff`"
msgid "difftool requires worktree or --no-index"
msgstr "difftool è¦æ±‚工作区或者 --no-index"
-#: builtin/difftool.c:744
+#: builtin/difftool.c:745
msgid "no <tool> given for --tool=<tool>"
msgstr "没有为 --tool=<工具> å‚æ•°æä¾› <工具>"
-#: builtin/difftool.c:751
+#: builtin/difftool.c:752
msgid "no <cmd> given for --extcmd=<cmd>"
msgstr "没有为 --extcmd=<命令> å‚æ•°æä¾› <命令>"
@@ -14739,10 +15097,6 @@ msgstr "没有为 --extcmd=<命令> å‚æ•°æä¾› <命令>"
msgid "git env--helper --type=[bool|ulong] <options> <env-var>"
msgstr "git env--helper --type=[bool|ulong] <选项> <环境å˜é‡>"
-#: builtin/env--helper.c:42 builtin/hash-object.c:96
-msgid "type"
-msgstr "类型"
-
#: builtin/env--helper.c:46
msgid "default for git_env_*(...) to fall back on"
msgstr "git_env_*(...) 的默认值"
@@ -14759,13 +15113,13 @@ msgstr "选项 `--default' å’Œ `--type=bool` 期望一个布尔值,ä¸æ˜¯ `%s`
#: builtin/env--helper.c:82
#, c-format
msgid ""
-"option `--default' expects an unsigned long value with `--type=ulong`, not `"
-"%s`"
+"option `--default' expects an unsigned long value with `--type=ulong`, not "
+"`%s`"
msgstr "选项 `--default' å’Œ `--type=ulong` 期望一个无符å·é•¿æ•´åž‹ï¼Œä¸æ˜¯ `%s`"
#: builtin/fast-export.c:29
-msgid "git fast-export [rev-list-opts]"
-msgstr "git fast-export [rev-list-opts]"
+msgid "git fast-export [<rev-list-opts>]"
+msgstr "git fast-export [<rev-list 选项>]"
#: builtin/fast-export.c:843
msgid "Error: Cannot export nested tags unless --mark-tags is specified."
@@ -14819,7 +15173,7 @@ msgstr "使用 done 功能æ¥ç»ˆæ­¢æµ"
msgid "skip output of blob data"
msgstr "跳过数æ®å¯¹è±¡çš„输出"
-#: builtin/fast-export.c:1196 builtin/log.c:1841
+#: builtin/fast-export.c:1196 builtin/log.c:1860
msgid "refspec"
msgstr "引用规格"
@@ -14851,36 +15205,36 @@ msgstr "显示数æ®å¯¹è±¡/æ交的原始对象 ID"
msgid "label tags with mark ids"
msgstr "对带有标记 ID 的标签åšæ ‡è®°"
-#: builtin/fast-import.c:3090
+#: builtin/fast-import.c:3097
#, c-format
msgid "Missing from marks for submodule '%s'"
msgstr "å­æ¨¡ç»„ '%s' 缺少 from 标记"
-#: builtin/fast-import.c:3092
+#: builtin/fast-import.c:3099
#, c-format
msgid "Missing to marks for submodule '%s'"
msgstr "å­æ¨¡ç»„ '%s' 缺少 to 标记"
-#: builtin/fast-import.c:3227
+#: builtin/fast-import.c:3234
#, c-format
msgid "Expected 'mark' command, got %s"
msgstr "预期 'mark' 命令,得到 %s"
-#: builtin/fast-import.c:3232
+#: builtin/fast-import.c:3239
#, c-format
msgid "Expected 'to' command, got %s"
msgstr "预期 'to' 命令,得到 %s"
-#: builtin/fast-import.c:3324
+#: builtin/fast-import.c:3331
msgid "Expected format name:filename for submodule rewrite option"
msgstr "å­æ¨¡ç»„é‡å†™é€‰é¡¹çš„预期格å¼ä¸º name:filename"
-#: builtin/fast-import.c:3379
+#: builtin/fast-import.c:3386
#, c-format
msgid "feature '%s' forbidden in input without --allow-unsafe-features"
msgstr "ä¸å¸¦ --allow-unsafe-features 的输入中ç¦æ­¢ä½¿ç”¨åŠŸèƒ½ '%s'"
-#: builtin/fetch-pack.c:242
+#: builtin/fetch-pack.c:246
#, c-format
msgid "Lockfile created but not reported: %s"
msgstr "Lockfile 已创建但未报告:%s"
@@ -14901,206 +15255,205 @@ msgstr "git fetch --multiple [<选项>] [(<仓库> | <组>)...]"
msgid "git fetch --all [<options>]"
msgstr "git fetch --all [<选项>]"
-#: builtin/fetch.c:123
+#: builtin/fetch.c:124
msgid "fetch.parallel cannot be negative"
msgstr "fetch.parallel ä¸èƒ½ä¸ºè´Ÿæ•°"
-#: builtin/fetch.c:146 builtin/pull.c:189
+#: builtin/fetch.c:147 builtin/pull.c:189
msgid "fetch from all remotes"
msgstr "从所有的远程抓å–"
-#: builtin/fetch.c:148 builtin/pull.c:249
+#: builtin/fetch.c:149 builtin/pull.c:249
msgid "set upstream for git pull/fetch"
msgstr "为 git pull/fetch 设置上游"
-#: builtin/fetch.c:150 builtin/pull.c:192
+#: builtin/fetch.c:151 builtin/pull.c:192
msgid "append to .git/FETCH_HEAD instead of overwriting"
msgstr "追加到 .git/FETCH_HEAD 而ä¸æ˜¯è¦†ç›–它"
-#: builtin/fetch.c:152
+#: builtin/fetch.c:153
msgid "use atomic transaction to update references"
msgstr "使用原å­äº‹åŠ¡æ›´æ–°å¼•ç”¨"
-#: builtin/fetch.c:154 builtin/pull.c:195
+#: builtin/fetch.c:155 builtin/pull.c:195
msgid "path to upload pack on remote end"
msgstr "上传包到远程的路径"
-#: builtin/fetch.c:155
+#: builtin/fetch.c:156
msgid "force overwrite of local reference"
msgstr "强制覆盖本地引用"
-#: builtin/fetch.c:157
+#: builtin/fetch.c:158
msgid "fetch from multiple remotes"
msgstr "从多个远程抓å–"
-#: builtin/fetch.c:159 builtin/pull.c:199
+#: builtin/fetch.c:160 builtin/pull.c:199
msgid "fetch all tags and associated objects"
msgstr "抓å–所有的标签和关è”对象"
-#: builtin/fetch.c:161
+#: builtin/fetch.c:162
msgid "do not fetch all tags (--no-tags)"
msgstr "ä¸æŠ“å–任何标签(--no-tags)"
-#: builtin/fetch.c:163
+#: builtin/fetch.c:164
msgid "number of submodules fetched in parallel"
msgstr "å­æ¨¡ç»„获å–的并å‘æ•°"
-#: builtin/fetch.c:165
+#: builtin/fetch.c:166
msgid "modify the refspec to place all refs within refs/prefetch/"
msgstr "修改引用规格以将所有引用放入 refs/prefetch/"
-#: builtin/fetch.c:167 builtin/pull.c:202
+#: builtin/fetch.c:168 builtin/pull.c:202
msgid "prune remote-tracking branches no longer on remote"
msgstr "清除远程已ç»ä¸å­˜åœ¨çš„分支的跟踪分支"
-#: builtin/fetch.c:169
+#: builtin/fetch.c:170
msgid "prune local tags no longer on remote and clobber changed tags"
msgstr "清除远程ä¸å­˜åœ¨çš„本地标签,并且替æ¢å˜æ›´æ ‡ç­¾"
# 译者:å¯é€‰å€¼ï¼Œä¸èƒ½ç¿»è¯‘
-#: builtin/fetch.c:170 builtin/fetch.c:195 builtin/pull.c:123
+#: builtin/fetch.c:171 builtin/fetch.c:199 builtin/pull.c:123
msgid "on-demand"
msgstr "on-demand"
-#: builtin/fetch.c:171
+#: builtin/fetch.c:172
msgid "control recursive fetching of submodules"
msgstr "控制å­æ¨¡ç»„的递归抓å–"
-#: builtin/fetch.c:176
+#: builtin/fetch.c:177
msgid "write fetched references to the FETCH_HEAD file"
msgstr "将获å–到的引用写入 FETCH_HEAD 文件"
-#: builtin/fetch.c:177 builtin/pull.c:210
+#: builtin/fetch.c:178 builtin/pull.c:210
msgid "keep downloaded pack"
msgstr "ä¿æŒä¸‹è½½åŒ…"
-#: builtin/fetch.c:179
+#: builtin/fetch.c:180
msgid "allow updating of HEAD ref"
msgstr "å…许更新 HEAD 引用"
-#: builtin/fetch.c:182 builtin/fetch.c:188 builtin/pull.c:213
+#: builtin/fetch.c:183 builtin/fetch.c:189 builtin/pull.c:213
#: builtin/pull.c:222
msgid "deepen history of shallow clone"
msgstr "深化浅克隆的历å²"
-#: builtin/fetch.c:184 builtin/pull.c:216
+#: builtin/fetch.c:185 builtin/pull.c:216
msgid "deepen history of shallow repository based on time"
msgstr "基于时间æ¥æ·±åŒ–浅克隆的历å²"
-#: builtin/fetch.c:190 builtin/pull.c:225
+#: builtin/fetch.c:191 builtin/pull.c:225
msgid "convert to a complete repository"
msgstr "转æ¢ä¸ºä¸€ä¸ªå®Œæ•´çš„仓库"
-#: builtin/fetch.c:193
+#: builtin/fetch.c:194
+msgid "re-fetch without negotiating common commits"
+msgstr "ä¸å商共有æ交é‡æ–°èŽ·å–"
+
+#: builtin/fetch.c:197
msgid "prepend this to submodule path output"
msgstr "在å­æ¨¡ç»„路径输出的å‰é¢åŠ ä¸Šæ­¤ç›®å½•"
-#: builtin/fetch.c:196
+#: builtin/fetch.c:200
msgid ""
"default for recursive fetching of submodules (lower priority than config "
"files)"
msgstr "递归获å–å­æ¨¡ç»„的缺çœå€¼ï¼ˆæ¯”é…置文件优先级低)"
-#: builtin/fetch.c:200 builtin/pull.c:228
+#: builtin/fetch.c:204 builtin/pull.c:228
msgid "accept refs that update .git/shallow"
msgstr "接å—æ›´æ–° .git/shallow 的引用"
-#: builtin/fetch.c:201 builtin/pull.c:230
+#: builtin/fetch.c:205 builtin/pull.c:230
msgid "refmap"
msgstr "引用映射"
-#: builtin/fetch.c:202 builtin/pull.c:231
+#: builtin/fetch.c:206 builtin/pull.c:231
msgid "specify fetch refmap"
msgstr "指定获å–æ“作的引用映射"
-#: builtin/fetch.c:209 builtin/pull.c:244
+#: builtin/fetch.c:213 builtin/pull.c:244
msgid "report that we have only objects reachable from this object"
msgstr "报告我们åªæ‹¥æœ‰ä»Žè¯¥å¯¹è±¡å¼€å§‹å¯è¾¾çš„对象"
-#: builtin/fetch.c:211
+#: builtin/fetch.c:215
msgid "do not fetch a packfile; instead, print ancestors of negotiation tips"
msgstr "ä¸èŽ·å–包文件;而是打å°å商的祖先æ交"
-#: builtin/fetch.c:214 builtin/fetch.c:216
+#: builtin/fetch.c:218 builtin/fetch.c:220
msgid "run 'maintenance --auto' after fetching"
msgstr "获å–åŽæ‰§è¡Œ 'maintenance --auto'"
-#: builtin/fetch.c:218 builtin/pull.c:247
+#: builtin/fetch.c:222 builtin/pull.c:247
msgid "check for forced-updates on all updated branches"
msgstr "在所有更新分支上检查强制更新"
-#: builtin/fetch.c:220
+#: builtin/fetch.c:224
msgid "write the commit-graph after fetching"
msgstr "抓å–åŽå†™æ交图"
-#: builtin/fetch.c:222
+#: builtin/fetch.c:226
msgid "accept refspecs from stdin"
msgstr "从标准输入获å–引用规格"
-#: builtin/fetch.c:592
+#: builtin/fetch.c:618
msgid "couldn't find remote ref HEAD"
msgstr "无法å‘现远程 HEAD 引用"
-#: builtin/fetch.c:766
-#, c-format
-msgid "configuration fetch.output contains invalid value %s"
-msgstr "é…ç½®å˜é‡ fetch.output 包å«æ— æ•ˆå€¼ %s"
-
-#: builtin/fetch.c:867
+#: builtin/fetch.c:893
#, c-format
msgid "object %s not found"
msgstr "对象 %s 未å‘现"
-#: builtin/fetch.c:871
+#: builtin/fetch.c:897
msgid "[up to date]"
msgstr "[最新]"
-#: builtin/fetch.c:883 builtin/fetch.c:901 builtin/fetch.c:973
+#: builtin/fetch.c:909 builtin/fetch.c:927 builtin/fetch.c:999
msgid "[rejected]"
msgstr "[已拒ç»]"
-#: builtin/fetch.c:885
+#: builtin/fetch.c:911
msgid "can't fetch in current branch"
msgstr "当å‰åˆ†æ”¯ä¸‹ä¸èƒ½æ‰§è¡ŒèŽ·å–æ“作"
-#: builtin/fetch.c:886
+#: builtin/fetch.c:912
msgid "checked out in another worktree"
msgstr "已在å¦ä¸€ä¸ªå·¥ä½œæ ‘中检出"
-#: builtin/fetch.c:896
+#: builtin/fetch.c:922
msgid "[tag update]"
msgstr "[标签更新]"
-#: builtin/fetch.c:897 builtin/fetch.c:934 builtin/fetch.c:956
-#: builtin/fetch.c:968
+#: builtin/fetch.c:923 builtin/fetch.c:960 builtin/fetch.c:982
+#: builtin/fetch.c:994
msgid "unable to update local ref"
msgstr "ä¸èƒ½æ›´æ–°æœ¬åœ°å¼•ç”¨"
-#: builtin/fetch.c:901
+#: builtin/fetch.c:927
msgid "would clobber existing tag"
msgstr "会破å现有的标签"
-#: builtin/fetch.c:923
+#: builtin/fetch.c:949
msgid "[new tag]"
msgstr "[新标签]"
-#: builtin/fetch.c:926
+#: builtin/fetch.c:952
msgid "[new branch]"
msgstr "[新分支]"
-#: builtin/fetch.c:929
+#: builtin/fetch.c:955
msgid "[new ref]"
msgstr "[新引用]"
-#: builtin/fetch.c:968
+#: builtin/fetch.c:994
msgid "forced update"
msgstr "强制更新"
-#: builtin/fetch.c:973
+#: builtin/fetch.c:999
msgid "non-fast-forward"
msgstr "éžå¿«è¿›"
-#: builtin/fetch.c:1076
+#: builtin/fetch.c:1102
msgid ""
"fetch normally indicates which branches had a forced update,\n"
"but that check has been disabled; to re-enable, use '--show-forced-updates'\n"
@@ -15110,7 +15463,7 @@ msgstr ""
"è¦é‡æ–°å¯ç”¨ï¼Œè¯·ä½¿ç”¨ '--show-forced-updates' 选项或è¿è¡Œ\n"
"'git config fetch.showForcedUpdates true'"
-#: builtin/fetch.c:1080
+#: builtin/fetch.c:1106
#, c-format
msgid ""
"it took %.2f seconds to check forced updates; you can use\n"
@@ -15121,22 +15474,22 @@ msgstr ""
"花了 %.2f 秒æ¥æ£€æŸ¥å¼ºåˆ¶æ›´æ–°ï¼›æ‚¨å¯ä»¥ä½¿ç”¨ '--no-show-forced-updates'\n"
"或è¿è¡Œ 'git config fetch.showForcedUpdates false' 以é¿å…此项检查\n"
-#: builtin/fetch.c:1112
+#: builtin/fetch.c:1136
#, c-format
msgid "%s did not send all necessary objects\n"
msgstr "%s 未å‘é€æ‰€æœ‰å¿…需的对象\n"
-#: builtin/fetch.c:1141
+#: builtin/fetch.c:1156
#, c-format
msgid "rejected %s because shallow roots are not allowed to be updated"
msgstr "æ‹’ç» %s 因为浅克隆的根ä¸å…许被更新"
-#: builtin/fetch.c:1231 builtin/fetch.c:1379
+#: builtin/fetch.c:1259 builtin/fetch.c:1418
#, c-format
msgid "From %.*s\n"
msgstr "æ¥è‡ª %.*s\n"
-#: builtin/fetch.c:1252
+#: builtin/fetch.c:1269
#, c-format
msgid ""
"some local refs could not be updated; try running\n"
@@ -15146,69 +15499,69 @@ msgstr ""
" 'git remote prune %s' æ¥åˆ é™¤æ—§çš„ã€æœ‰å†²çªçš„分支"
# 译者:注æ„ä¿æŒå‰å¯¼ç©ºæ ¼
-#: builtin/fetch.c:1349
+#: builtin/fetch.c:1377
#, c-format
msgid " (%s will become dangling)"
msgstr " (%s å°†æˆä¸ºæ‚¬ç©ºçŠ¶æ€ï¼‰"
# 译者:注æ„ä¿æŒå‰å¯¼ç©ºæ ¼
-#: builtin/fetch.c:1350
+#: builtin/fetch.c:1378
#, c-format
msgid " (%s has become dangling)"
msgstr " (%s å·²æˆä¸ºæ‚¬ç©ºçŠ¶æ€ï¼‰"
-#: builtin/fetch.c:1382
+#: builtin/fetch.c:1421
msgid "[deleted]"
msgstr "[已删除]"
-#: builtin/fetch.c:1383 builtin/remote.c:1128
+#: builtin/fetch.c:1422 builtin/remote.c:1153
msgid "(none)"
msgstr "(无)"
-#: builtin/fetch.c:1405
+#: builtin/fetch.c:1446
#, c-format
msgid "refusing to fetch into branch '%s' checked out at '%s'"
msgstr "æ‹’ç»èŽ·å–于 '%2$s' 检出的分支 '%1$s'"
-#: builtin/fetch.c:1425
+#: builtin/fetch.c:1466
#, c-format
msgid "option \"%s\" value \"%s\" is not valid for %s"
msgstr "选项 \"%s\" 的值 \"%s\" 对于 %s 是无效的"
-#: builtin/fetch.c:1428
+#: builtin/fetch.c:1469
#, c-format
msgid "option \"%s\" is ignored for %s\n"
msgstr "选项 \"%s\" 为 %s 所忽略\n"
-#: builtin/fetch.c:1455
+#: builtin/fetch.c:1496
#, c-format
msgid "the object %s does not exist"
msgstr "对象 '%s' ä¸å­˜åœ¨"
-#: builtin/fetch.c:1643
+#: builtin/fetch.c:1748
msgid "multiple branches detected, incompatible with --set-upstream"
msgstr "检测到多分支,和 --set-upstream ä¸å…¼å®¹"
-#: builtin/fetch.c:1655
+#: builtin/fetch.c:1760
#, c-format
msgid ""
"could not set upstream of HEAD to '%s' from '%s' when it does not point to "
"any branch."
msgstr "无法在ä¸æŒ‡å‘任何分支时将 HEAD 的上游从 '%s' 设置为 '%s'。"
-#: builtin/fetch.c:1668
+#: builtin/fetch.c:1773
msgid "not setting upstream for a remote remote-tracking branch"
msgstr "没有为一个远程跟踪分支设置上游"
-#: builtin/fetch.c:1670
+#: builtin/fetch.c:1775
msgid "not setting upstream for a remote tag"
msgstr "没有为一个远程标签设置上游"
-#: builtin/fetch.c:1672
+#: builtin/fetch.c:1777
msgid "unknown branch type"
msgstr "未知的分支类型"
-#: builtin/fetch.c:1674
+#: builtin/fetch.c:1779
msgid ""
"no source branch found;\n"
"you need to specify exactly one branch with the --set-upstream option"
@@ -15216,79 +15569,79 @@ msgstr ""
"未å‘现æºåˆ†æ”¯ï¼›\n"
"您需è¦ä½¿ç”¨ --set-upstream 选项指定一个分支"
-#: builtin/fetch.c:1804 builtin/fetch.c:1867
+#: builtin/fetch.c:1904 builtin/fetch.c:1967
#, c-format
msgid "Fetching %s\n"
msgstr "æ­£åœ¨èŽ·å– %s\n"
-#: builtin/fetch.c:1814 builtin/fetch.c:1869
+#: builtin/fetch.c:1914 builtin/fetch.c:1969
#, c-format
msgid "could not fetch %s"
msgstr "ä¸èƒ½èŽ·å– %s"
-#: builtin/fetch.c:1826
+#: builtin/fetch.c:1926
#, c-format
msgid "could not fetch '%s' (exit code: %d)\n"
msgstr "æ— æ³•èŽ·å– '%s'(退出ç ï¼š%d)\n"
-#: builtin/fetch.c:1930
+#: builtin/fetch.c:2030
msgid ""
"no remote repository specified; please specify either a URL or a\n"
"remote name from which new revisions should be fetched"
msgstr "未指定远程仓库;请指定一个用于获å–新版本的 URL 或远程仓库å"
-#: builtin/fetch.c:1966
+#: builtin/fetch.c:2066
msgid "you need to specify a tag name"
msgstr "您需è¦æŒ‡å®šä¸€ä¸ªæ ‡ç­¾å称"
-#: builtin/fetch.c:2032
-msgid "--negotiate-only needs one or more --negotiate-tip=*"
-msgstr "--negotiate-only 需è¦ä¸€ä¸ªæˆ–多个 --negotiate-tip=*"
+#: builtin/fetch.c:2156
+msgid "--negotiate-only needs one or more --negotiation-tip=*"
+msgstr "--negotiate-only 需è¦ä¸€ä¸ªæˆ–多个 --negotiation-tip=*"
-#: builtin/fetch.c:2036
+#: builtin/fetch.c:2160
msgid "negative depth in --deepen is not supported"
msgstr "--deepen ä¸æ”¯æŒè´Ÿæ•°æ·±åº¦"
-#: builtin/fetch.c:2045
+#: builtin/fetch.c:2169
msgid "--unshallow on a complete repository does not make sense"
msgstr "对于一个完整的仓库,å‚æ•° --unshallow 没有æ„义"
-#: builtin/fetch.c:2062
+#: builtin/fetch.c:2186
msgid "fetch --all does not take a repository argument"
msgstr "fetch --all ä¸èƒ½å¸¦ä¸€ä¸ªä»“库å‚æ•°"
-#: builtin/fetch.c:2064
+#: builtin/fetch.c:2188
msgid "fetch --all does not make sense with refspecs"
msgstr "fetch --all 带引用规格没有任何æ„义"
-#: builtin/fetch.c:2073
+#: builtin/fetch.c:2197
#, c-format
msgid "no such remote or remote group: %s"
msgstr "没有这样的远程或远程组:%s"
-#: builtin/fetch.c:2081
+#: builtin/fetch.c:2205
msgid "fetching a group and specifying refspecs does not make sense"
msgstr "获å–组并指定引用规格没有æ„义"
-#: builtin/fetch.c:2097
+#: builtin/fetch.c:2221
msgid "must supply remote when using --negotiate-only"
msgstr "在使用 --negotiate-only 时必须æ供远程仓库"
-#: builtin/fetch.c:2102
+#: builtin/fetch.c:2226
msgid "protocol does not support --negotiate-only, exiting"
msgstr "åè®®ä¸æ”¯æŒ --negotiate-only,退出"
-#: builtin/fetch.c:2121
+#: builtin/fetch.c:2246
msgid ""
"--filter can only be used with the remote configured in extensions."
"partialclone"
msgstr "åªå¯ä»¥å°† --filter 用于在 extensions.partialclone 中é…置的远程仓库"
-#: builtin/fetch.c:2125
+#: builtin/fetch.c:2250
msgid "--atomic can only be used when fetching from one remote"
msgstr "--atomic 仅在从一个远程仓库获å–的时候å¯ç”¨"
-#: builtin/fetch.c:2129
+#: builtin/fetch.c:2254
msgid "--stdin can only be used when fetching from one remote"
msgstr "--stdin 仅在从一个远程仓库获å–的时候å¯ç”¨"
@@ -15357,7 +15710,7 @@ msgstr "引用å ä½ç¬¦é€‚用于 Tcl"
msgid "show only <n> matched refs"
msgstr "åªæ˜¾ç¤º <n> 个匹é…的引用"
-#: builtin/for-each-ref.c:42 builtin/tag.c:481
+#: builtin/for-each-ref.c:42 builtin/tag.c:482
msgid "respect format colors"
msgstr "éµç…§æ ¼å¼ä¸­çš„颜色输出"
@@ -15551,7 +15904,7 @@ msgstr "正在检查对象目录"
msgid "Checking %s link"
msgstr "正在检查 %s 链接"
-#: builtin/fsck.c:710 builtin/index-pack.c:859
+#: builtin/fsck.c:710 builtin/index-pack.c:862
#, c-format
msgid "invalid %s"
msgstr "无效的 %s"
@@ -15620,7 +15973,7 @@ msgstr "也考虑包和备用对象"
msgid "check only connectivity"
msgstr "仅检查连通性"
-#: builtin/fsck.c:798 builtin/mktag.c:76
+#: builtin/fsck.c:798 builtin/mktag.c:75
msgid "enable more strict checking"
msgstr "å¯ç”¨æ›´ä¸¥æ ¼çš„检查"
@@ -15650,6 +16003,118 @@ msgstr "%s:对象缺失"
msgid "invalid parameter: expected sha1, got '%s'"
msgstr "无效的å‚数:期望 sha1,得到 '%s'"
+#: builtin/fsmonitor--daemon.c:13
+msgid "git fsmonitor--daemon start [<options>]"
+msgstr "git fsmonitor--daemon start [<选项>]"
+
+#: builtin/fsmonitor--daemon.c:14
+msgid "git fsmonitor--daemon run [<options>]"
+msgstr "git fsmonitor--daemon run [<选项>]"
+
+#: builtin/fsmonitor--daemon.c:15
+msgid "git fsmonitor--daemon stop"
+msgstr "git fsmonitor--daemon stop"
+
+#: builtin/fsmonitor--daemon.c:16
+msgid "git fsmonitor--daemon status"
+msgstr "git fsmonitor--daemon status"
+
+#: builtin/fsmonitor--daemon.c:38 builtin/fsmonitor--daemon.c:47
+#, c-format
+msgid "value of '%s' out of range: %d"
+msgstr "'%s' 的值超出范围:%d"
+
+#: builtin/fsmonitor--daemon.c:57
+#, c-format
+msgid "value of '%s' not bool or int: %d"
+msgstr "'%s' 的值ä¸æ˜¯ bool 或 int:%d"
+
+#: builtin/fsmonitor--daemon.c:99
+#, c-format
+msgid "fsmonitor-daemon is watching '%s'\n"
+msgstr "fsmonitor-daemon 正在监视 '%s'\n"
+
+#: builtin/fsmonitor--daemon.c:104
+#, c-format
+msgid "fsmonitor-daemon is not watching '%s'\n"
+msgstr "fsmonitor-daemon ä¸åœ¨ç›‘视 '%s'\n"
+
+#: builtin/fsmonitor--daemon.c:170
+#, c-format
+msgid "could not create fsmonitor cookie '%s'"
+msgstr "无法创建 fsmonitor cookie '%s'"
+
+#: builtin/fsmonitor--daemon.c:753
+#, c-format
+msgid "fsmonitor: cookie_result '%d' != SEEN"
+msgstr "fsmonitor: cookie_result '%d' != SEEN"
+
+#: builtin/fsmonitor--daemon.c:1187
+#, c-format
+msgid "could not start IPC thread pool on '%s'"
+msgstr "无法在 '%s' å¯åŠ¨ IPC 线程池"
+
+#: builtin/fsmonitor--daemon.c:1199
+msgid "could not start fsmonitor listener thread"
+msgstr "无法å¯åŠ¨ fsmonitor 监å¬çº¿ç¨‹"
+
+#: builtin/fsmonitor--daemon.c:1297
+msgid "could not initialize listener thread"
+msgstr "无法åˆå§‹åŒ–监å¬çº¿ç¨‹"
+
+#: builtin/fsmonitor--daemon.c:1328 builtin/fsmonitor--daemon.c:1383
+#, c-format
+msgid "fsmonitor--daemon is already running '%s'"
+msgstr "fsmonitor--daemon å·²ç»åœ¨è¿è¡Œ '%s'"
+
+#: builtin/fsmonitor--daemon.c:1332
+#, c-format
+msgid "running fsmonitor-daemon in '%s'\n"
+msgstr "在 '%s' 中è¿è¡Œ fsmonitor-daemon\n"
+
+#: builtin/fsmonitor--daemon.c:1387
+#, c-format
+msgid "starting fsmonitor-daemon in '%s'\n"
+msgstr "在 '%s' 中å¯åŠ¨ fsmonitor-daemon\n"
+
+#: builtin/fsmonitor--daemon.c:1413
+msgid "daemon failed to start"
+msgstr "守护进程无法å¯åŠ¨"
+
+#: builtin/fsmonitor--daemon.c:1416
+msgid "daemon not online yet"
+msgstr "守护进程尚未在线"
+
+#: builtin/fsmonitor--daemon.c:1419
+msgid "daemon terminated"
+msgstr "守护进程被终结"
+
+#: builtin/fsmonitor--daemon.c:1429
+msgid "detach from console"
+msgstr "从控制å°åˆ†ç¦»"
+
+#: builtin/fsmonitor--daemon.c:1432
+msgid "use <n> ipc worker threads"
+msgstr "使用 <n> 个 IPC 工作线程"
+
+#: builtin/fsmonitor--daemon.c:1435
+msgid "max seconds to wait for background daemon startup"
+msgstr "等待守护进程å¯åŠ¨çš„最大秒数"
+
+#: builtin/fsmonitor--daemon.c:1449
+#, c-format
+msgid "invalid 'ipc-threads' value (%d)"
+msgstr "无效的 'ipc-threads' 值(%d)"
+
+#: builtin/fsmonitor--daemon.c:1464
+#, c-format
+msgid "Unhandled subcommand '%s'"
+msgstr "未处ç†çš„å­å‘½ä»¤ '%s'"
+
+#: builtin/fsmonitor--daemon.c:1477
+msgid "fsmonitor--daemon not supported on this platform"
+msgstr "fsmonitor--daemon ä¸æ”¯æŒæœ¬å¹³å°"
+
#: builtin/gc.c:39
msgid "git gc [<options>]"
msgstr "git gc [<选项>]"
@@ -15891,8 +16356,8 @@ msgstr "无法å¯åŠ¨ systemctl"
msgid "failed to run systemctl"
msgstr "无法è¿è¡Œ systemctl"
-#: builtin/gc.c:2210 builtin/gc.c:2215 builtin/worktree.c:62
-#: builtin/worktree.c:944
+#: builtin/gc.c:2210 builtin/gc.c:2215 builtin/worktree.c:63
+#: builtin/worktree.c:1024
#, c-format
msgid "failed to delete '%s'"
msgstr "无法删除 '%s'"
@@ -15940,16 +16405,16 @@ msgstr "git maintenance <å­å‘½ä»¤> [<选项>]"
msgid "invalid subcommand: %s"
msgstr "无效å­å‘½ä»¤ï¼š%s"
-#: builtin/grep.c:30
+#: builtin/grep.c:32
msgid "git grep [<options>] [-e] <pattern> [<rev>...] [[--] <path>...]"
msgstr "git grep [<选项>] [-e] <模å¼> [<版本>...] [[--] <路径>...]"
-#: builtin/grep.c:239
+#: builtin/grep.c:241
#, c-format
msgid "grep: failed to create thread: %s"
msgstr "grep:无法创建线程:%s"
-#: builtin/grep.c:293
+#: builtin/grep.c:295
#, c-format
msgid "invalid number of threads specified (%d) for %s"
msgstr "为 %2$s 设定的线程数 (%1$d) 无效"
@@ -15958,258 +16423,250 @@ msgstr "为 %2$s 设定的线程数 (%1$d) 无效"
#. variable for tweaking threads, currently
#. grep.threads
#.
-#: builtin/grep.c:301 builtin/index-pack.c:1582 builtin/index-pack.c:1785
-#: builtin/pack-objects.c:3142
+#: builtin/grep.c:303 builtin/index-pack.c:1587 builtin/index-pack.c:1791
+#: builtin/pack-objects.c:3150
#, c-format
msgid "no threads support, ignoring %s"
msgstr "没有线程支æŒï¼Œå¿½ç•¥ %s"
-#: builtin/grep.c:488 builtin/grep.c:617 builtin/grep.c:657
+#: builtin/grep.c:490 builtin/grep.c:619 builtin/grep.c:659
#, c-format
msgid "unable to read tree (%s)"
msgstr "无法读å–树(%s)"
-#: builtin/grep.c:672
+#: builtin/grep.c:674
#, c-format
msgid "unable to grep from object of type %s"
msgstr "无法抓å–æ¥è‡ªäºŽ %s 类型的对象"
-#: builtin/grep.c:752
+#: builtin/grep.c:754
#, c-format
msgid "switch `%c' expects a numerical value"
msgstr "开关 `%c' 期望一个数字值"
-#: builtin/grep.c:851
+#: builtin/grep.c:852
msgid "search in index instead of in the work tree"
msgstr "在索引区æœç´¢è€Œä¸æ˜¯åœ¨å·¥ä½œåŒº"
-#: builtin/grep.c:853
+#: builtin/grep.c:854
msgid "find in contents not managed by git"
msgstr "在未被 git 管ç†çš„内容中查找"
-#: builtin/grep.c:855
+#: builtin/grep.c:856
msgid "search in both tracked and untracked files"
msgstr "在跟踪和未跟踪的文件中æœç´¢"
-#: builtin/grep.c:857
+#: builtin/grep.c:858
msgid "ignore files specified via '.gitignore'"
msgstr "忽略 '.gitignore' 包å«çš„文件"
-#: builtin/grep.c:859
+#: builtin/grep.c:860
msgid "recursively search in each submodule"
msgstr "在æ¯ä¸€ä¸ªå­æ¨¡ç»„中递归æœç´¢"
-#: builtin/grep.c:862
+#: builtin/grep.c:863
msgid "show non-matching lines"
msgstr "显示未匹é…çš„è¡Œ"
-#: builtin/grep.c:864
+#: builtin/grep.c:865
msgid "case insensitive matching"
msgstr "ä¸åŒºåˆ†å¤§å°å†™åŒ¹é…"
-#: builtin/grep.c:866
+#: builtin/grep.c:867
msgid "match patterns only at word boundaries"
msgstr "åªåœ¨å•è¯è¾¹ç•ŒåŒ¹é…模å¼"
-#: builtin/grep.c:868
+#: builtin/grep.c:869
msgid "process binary files as text"
msgstr "把二进制文件当åšæ–‡æœ¬å¤„ç†"
-#: builtin/grep.c:870
+#: builtin/grep.c:871
msgid "don't match patterns in binary files"
msgstr "ä¸åœ¨äºŒè¿›åˆ¶æ–‡ä»¶ä¸­åŒ¹é…模å¼"
-#: builtin/grep.c:873
+#: builtin/grep.c:874
msgid "process binary files with textconv filters"
msgstr "用 textconv 过滤器处ç†äºŒè¿›åˆ¶æ–‡ä»¶"
-#: builtin/grep.c:875
+#: builtin/grep.c:876
msgid "search in subdirectories (default)"
msgstr "在å­ç›®å½•ä¸­å¯»æ‰¾ï¼ˆé»˜è®¤ï¼‰"
-#: builtin/grep.c:877
+#: builtin/grep.c:878
msgid "descend at most <depth> levels"
msgstr "最多以指定的深度å‘下寻找"
-#: builtin/grep.c:881
+#: builtin/grep.c:882
msgid "use extended POSIX regular expressions"
msgstr "使用扩展的 POSIX 正则表达å¼"
-#: builtin/grep.c:884
+#: builtin/grep.c:885
msgid "use basic POSIX regular expressions (default)"
msgstr "使用基本的 POSIX 正则表达å¼ï¼ˆé»˜è®¤ï¼‰"
-#: builtin/grep.c:887
+#: builtin/grep.c:888
msgid "interpret patterns as fixed strings"
msgstr "把模å¼è§£æžä¸ºå›ºå®šçš„字符串"
-#: builtin/grep.c:890
+#: builtin/grep.c:891
msgid "use Perl-compatible regular expressions"
msgstr "使用 Perl 兼容的正则表达å¼"
-#: builtin/grep.c:893
+#: builtin/grep.c:894
msgid "show line numbers"
msgstr "显示行å·"
-#: builtin/grep.c:894
+#: builtin/grep.c:895
msgid "show column number of first match"
msgstr "显示第一个匹é…的列å·"
-#: builtin/grep.c:895
+#: builtin/grep.c:896
msgid "don't show filenames"
msgstr "ä¸æ˜¾ç¤ºæ–‡ä»¶å"
-#: builtin/grep.c:896
+#: builtin/grep.c:897
msgid "show filenames"
msgstr "显示文件å"
-#: builtin/grep.c:898
+#: builtin/grep.c:899
msgid "show filenames relative to top directory"
msgstr "显示相对于顶级目录的文件å"
-#: builtin/grep.c:900
+#: builtin/grep.c:901
msgid "show only filenames instead of matching lines"
msgstr "åªæ˜¾ç¤ºæ–‡ä»¶å而ä¸æ˜¾ç¤ºåŒ¹é…çš„è¡Œ"
-#: builtin/grep.c:902
+#: builtin/grep.c:903
msgid "synonym for --files-with-matches"
msgstr "å’Œ --files-with-matches åŒä¹‰"
-#: builtin/grep.c:905
+#: builtin/grep.c:906
msgid "show only the names of files without match"
msgstr "åªæ˜¾ç¤ºæœªåŒ¹é…的文件å"
-#: builtin/grep.c:907
+#: builtin/grep.c:908
msgid "print NUL after filenames"
msgstr "在文件ååŽè¾“出 NUL 字符"
-#: builtin/grep.c:910
+#: builtin/grep.c:911
msgid "show only matching parts of a line"
msgstr "åªæ˜¾ç¤ºè¡Œä¸­çš„匹é…的部分"
-#: builtin/grep.c:912
+#: builtin/grep.c:913
msgid "show the number of matches instead of matching lines"
msgstr "显示总匹é…行数,而ä¸æ˜¾ç¤ºåŒ¹é…çš„è¡Œ"
-#: builtin/grep.c:913
+#: builtin/grep.c:914
msgid "highlight matches"
msgstr "高亮显示匹é…项"
-#: builtin/grep.c:915
+#: builtin/grep.c:916
msgid "print empty line between matches from different files"
msgstr "在ä¸åŒæ–‡ä»¶çš„匹é…项之间打å°ç©ºè¡Œ"
-#: builtin/grep.c:917
+#: builtin/grep.c:918
msgid "show filename only once above matches from same file"
msgstr "åªåœ¨åŒä¸€æ–‡ä»¶çš„匹é…项的上é¢æ˜¾ç¤ºä¸€æ¬¡æ–‡ä»¶å"
-#: builtin/grep.c:920
+#: builtin/grep.c:921
msgid "show <n> context lines before and after matches"
msgstr "显示匹é…项å‰åŽçš„ <n> 行上下文"
-#: builtin/grep.c:923
+#: builtin/grep.c:924
msgid "show <n> context lines before matches"
msgstr "显示匹é…é¡¹å‰ <n> 行上下文"
-#: builtin/grep.c:925
+#: builtin/grep.c:926
msgid "show <n> context lines after matches"
msgstr "显示匹é…é¡¹åŽ <n> 行上下文"
-#: builtin/grep.c:927
+#: builtin/grep.c:928
msgid "use <n> worker threads"
msgstr "使用 <n> 个工作线程"
-#: builtin/grep.c:928
+#: builtin/grep.c:929
msgid "shortcut for -C NUM"
msgstr "å¿«æ·é”® -C æ•°å­—"
-#: builtin/grep.c:931
+#: builtin/grep.c:932
msgid "show a line with the function name before matches"
msgstr "在匹é…çš„å‰é¢æ˜¾ç¤ºä¸€è¡Œå‡½æ•°å"
-#: builtin/grep.c:933
+#: builtin/grep.c:934
msgid "show the surrounding function"
msgstr "显示所在函数的å‰åŽå†…容"
-#: builtin/grep.c:936
+#: builtin/grep.c:937
msgid "read patterns from file"
msgstr "从文件读å–模å¼"
-#: builtin/grep.c:938
+#: builtin/grep.c:939
msgid "match <pattern>"
msgstr "åŒ¹é… <模å¼>"
-#: builtin/grep.c:940
+#: builtin/grep.c:941
msgid "combine patterns specified with -e"
msgstr "组åˆç”¨ -e å‚数设定的模å¼"
-#: builtin/grep.c:952
+#: builtin/grep.c:953
msgid "indicate hit with exit status without output"
msgstr "ä¸è¾“出,而用退出ç æ ‡è¯†å‘½ä¸­çŠ¶æ€"
-#: builtin/grep.c:954
+#: builtin/grep.c:955
msgid "show only matches from files that match all patterns"
msgstr "åªæ˜¾ç¤ºåŒ¹é…所有模å¼çš„文件中的匹é…"
-#: builtin/grep.c:957
+#: builtin/grep.c:958
msgid "pager"
msgstr "分页"
-#: builtin/grep.c:957
+#: builtin/grep.c:958
msgid "show matching files in the pager"
msgstr "分页显示匹é…的文件"
-#: builtin/grep.c:961
+#: builtin/grep.c:962
msgid "allow calling of grep(1) (ignored by this build)"
msgstr "å…许调用 grep(1)(本次构建忽略)"
-#: builtin/grep.c:1027
+#: builtin/grep.c:1028
msgid "no pattern given"
msgstr "未æ供匹é…模å¼"
-#: builtin/grep.c:1063
+#: builtin/grep.c:1064
msgid "--no-index or --untracked cannot be used with revs"
msgstr "--no-index 或 --untracked ä¸èƒ½å’Œç‰ˆæœ¬åŒæ—¶ä½¿ç”¨"
-#: builtin/grep.c:1071
+#: builtin/grep.c:1072
#, c-format
msgid "unable to resolve revision: %s"
msgstr "ä¸èƒ½è§£æžç‰ˆæœ¬ï¼š%s"
-#: builtin/grep.c:1101
+#: builtin/grep.c:1102
msgid "--untracked not supported with --recurse-submodules"
msgstr "--untracked ä¸æ”¯æŒå’Œ --recurse-submodules 共用"
-#: builtin/grep.c:1105
+#: builtin/grep.c:1106
msgid "invalid option combination, ignoring --threads"
msgstr "无效的选项组åˆï¼Œå¿½ç•¥ --threads"
-#: builtin/grep.c:1108 builtin/pack-objects.c:4059
+#: builtin/grep.c:1109 builtin/pack-objects.c:4084
msgid "no threads support, ignoring --threads"
msgstr "没有线程支æŒï¼Œå¿½ç•¥ --threads"
-#: builtin/grep.c:1111 builtin/index-pack.c:1579 builtin/pack-objects.c:3139
+#: builtin/grep.c:1112 builtin/index-pack.c:1584 builtin/pack-objects.c:3147
#, c-format
msgid "invalid number of threads specified (%d)"
msgstr "指定的线程数无效(%d)"
-#: builtin/grep.c:1145
+#: builtin/grep.c:1146
msgid "--open-files-in-pager only works on the worktree"
msgstr "--open-files-in-pager 仅用于工作区"
-#: builtin/grep.c:1171
-msgid "--cached or --untracked cannot be used with --no-index"
-msgstr "--cached 或 --untracked ä¸èƒ½ä¸Ž --no-index åŒæ—¶ä½¿ç”¨"
-
-#: builtin/grep.c:1174
-msgid "--untracked cannot be used with --cached"
-msgstr "--untracked ä¸èƒ½ä¸Ž --cached åŒæ—¶ä½¿ç”¨"
-
-#: builtin/grep.c:1180
+#: builtin/grep.c:1179
msgid "--[no-]exclude-standard cannot be used for tracked contents"
msgstr "--[no-]exclude-standard ä¸èƒ½ç”¨äºŽå·²è·Ÿè¸ªå†…容"
-#: builtin/grep.c:1188
+#: builtin/grep.c:1187
msgid "both --cached and trees are given"
msgstr "åŒæ—¶ç»™å‡ºäº† --cached 和树对象"
@@ -16221,107 +16678,99 @@ msgstr ""
"git hash-object [-t <类型>] [-w] [--path=<文件> | --no-filters] [--stdin] "
"[--] <文件>..."
-#: builtin/hash-object.c:84
-msgid "git hash-object --stdin-paths"
-msgstr "git hash-object --stdin-paths"
-
-#: builtin/hash-object.c:96
+#: builtin/hash-object.c:97
msgid "object type"
msgstr "对象类型"
-#: builtin/hash-object.c:97
+#: builtin/hash-object.c:98
msgid "write the object into the object database"
msgstr "将对象写入对象数æ®åº“"
-#: builtin/hash-object.c:99
+#: builtin/hash-object.c:100
msgid "read the object from stdin"
msgstr "从标准输入读å–对象"
-#: builtin/hash-object.c:101
+#: builtin/hash-object.c:102
msgid "store file as is without filters"
msgstr "原样存储文件ä¸ä½¿ç”¨è¿‡æ»¤å™¨"
-#: builtin/hash-object.c:102
+#: builtin/hash-object.c:103
msgid ""
"just hash any random garbage to create corrupt objects for debugging Git"
msgstr "å…许对任æ„éšæœºåžƒåœ¾æ•°æ®åšæ•£åˆ—æ¥åˆ›å»ºæŸå的对象以便调试 Git"
-#: builtin/hash-object.c:103
+#: builtin/hash-object.c:104
msgid "process file as it were from this path"
msgstr "处ç†æ–‡ä»¶å¹¶å‡è®¾å…¶æ¥è‡ªäºŽæ­¤è·¯å¾„"
-#: builtin/help.c:55
+#: builtin/help.c:57
msgid "print all available commands"
msgstr "打å°æ‰€æœ‰å¯ç”¨çš„命令"
-#: builtin/help.c:57
+#: builtin/help.c:60
+msgid "show external commands in --all"
+msgstr "在 --all 中显示外部命令"
+
+#: builtin/help.c:61
+msgid "show aliases in --all"
+msgstr "在 --all 中显示别å"
+
+#: builtin/help.c:62
msgid "exclude guides"
msgstr "排除å‘导"
-#: builtin/help.c:58
+#: builtin/help.c:63
msgid "show man page"
msgstr "显示 man 手册"
-#: builtin/help.c:59
+#: builtin/help.c:64
msgid "show manual in web browser"
msgstr "在 web æµè§ˆå™¨ä¸­æ˜¾ç¤ºæ‰‹å†Œ"
-#: builtin/help.c:61
+#: builtin/help.c:66
msgid "show info page"
msgstr "显示 info 手册"
-#: builtin/help.c:63
+#: builtin/help.c:68
msgid "print command description"
msgstr "打å°å‘½ä»¤æè¿°"
-#: builtin/help.c:65
+#: builtin/help.c:70
msgid "print list of useful guides"
msgstr "显示有用的指å—列表"
-#: builtin/help.c:67
+#: builtin/help.c:72
msgid "print all configuration variable names"
msgstr "打å°æ‰€æœ‰é…ç½®å˜é‡å称"
-#: builtin/help.c:78
-msgid ""
-"git help [-a|--all] [--[no-]verbose]]\n"
-" [[-i|--info] [-m|--man] [-w|--web]] [<command>]"
-msgstr ""
-"git help [-a|--all] [--[no-]verbose]]\n"
-" [[-i|--info] [-m|--man] [-w|--web]] [<命令>]"
-
-#: builtin/help.c:80
-msgid "git help [-g|--guides]"
-msgstr "git help [-g|--guides]"
+#: builtin/help.c:84
+msgid "git help [[-i|--info] [-m|--man] [-w|--web]] [<command>]"
+msgstr "git help [[-i|--info] [-m|--man] [-w|--web]] [<命令>]"
-#: builtin/help.c:81
-msgid "git help [-c|--config]"
-msgstr "git help [-c|--config]"
-
-#: builtin/help.c:196
+#: builtin/help.c:201
#, c-format
msgid "unrecognized help format '%s'"
msgstr "æœªèƒ½è¯†åˆ«çš„å¸®åŠ©æ ¼å¼ '%s'"
-#: builtin/help.c:222
+#: builtin/help.c:227
msgid "Failed to start emacsclient."
msgstr "无法å¯åŠ¨ emacsclient。"
-#: builtin/help.c:235
+#: builtin/help.c:240
msgid "Failed to parse emacsclient version."
msgstr "æ— æ³•è§£æž emacsclient 版本。"
-#: builtin/help.c:243
+#: builtin/help.c:248
#, c-format
msgid "emacsclient version '%d' too old (< 22)."
msgstr "emacsclient 版本 '%d' 太è€ï¼ˆ< 22)。"
-#: builtin/help.c:261 builtin/help.c:283 builtin/help.c:293 builtin/help.c:301
+#: builtin/help.c:266 builtin/help.c:288 builtin/help.c:298 builtin/help.c:306
#, c-format
msgid "failed to exec '%s'"
msgstr "无法执行 '%s'"
-#: builtin/help.c:339
+#: builtin/help.c:344
#, c-format
msgid ""
"'%s': path for unsupported man viewer.\n"
@@ -16330,7 +16779,7 @@ msgstr ""
"'%s':ä¸æ”¯æŒçš„ man 手册查看器的路径。\n"
"请使用 'man.<工具>.cmd'。"
-#: builtin/help.c:351
+#: builtin/help.c:356
#, c-format
msgid ""
"'%s': cmd for supported man viewer.\n"
@@ -16339,42 +16788,56 @@ msgstr ""
"'%s': 支æŒçš„ man 手册查看器命令。\n"
"请使用 'man.<工具>.path'。"
-#: builtin/help.c:466
+#: builtin/help.c:471
#, c-format
msgid "'%s': unknown man viewer."
msgstr "'%s':未知的 man 查看器。"
-#: builtin/help.c:482
+#: builtin/help.c:487
msgid "no man viewer handled the request"
msgstr "没有 man 查看器处ç†æ­¤è¯·æ±‚"
-#: builtin/help.c:489
+#: builtin/help.c:494
msgid "no info viewer handled the request"
msgstr "没有 info 查看器处ç†æ­¤è¯·æ±‚"
-#: builtin/help.c:550 builtin/help.c:561 git.c:348
+#: builtin/help.c:555 builtin/help.c:566 git.c:348
#, c-format
msgid "'%s' is aliased to '%s'"
msgstr "'%s' 是 '%s' 的别å"
-#: builtin/help.c:564 git.c:380
+#: builtin/help.c:569 git.c:380
#, c-format
msgid "bad alias.%s string: %s"
msgstr "åçš„ alias.%s 字符串:%s"
-#: builtin/help.c:580
-msgid "this option doesn't take any other arguments"
-msgstr "这个选项ä¸å¸¦å…¶ä»–å‚æ•°"
+#: builtin/help.c:611
+#, c-format
+msgid "the '%s' option doesn't take any non-option arguments"
+msgstr "'%s' 选项ä¸å¸¦ä»»ä½•éžé€‰é¡¹å‚æ•°"
-#: builtin/help.c:601 builtin/help.c:628
+#: builtin/help.c:631
+msgid ""
+"the '--no-[external-commands|aliases]' options can only be used with '--all'"
+msgstr "'--no-[external-commands|aliases]' 选项åªèƒ½å’Œ '--all' 一起使用"
+
+#: builtin/help.c:643 builtin/help.c:671
#, c-format
msgid "usage: %s%s"
msgstr "用法:%s%s"
-#: builtin/help.c:623
+#: builtin/help.c:666
msgid "'git help config' for more information"
msgstr "'git help config' 获å–更多信æ¯"
+#: builtin/hook.c:10
+msgid "git hook run [--ignore-missing] <hook-name> [-- <hook-args>]"
+msgstr "git hook run [--ignore-missing] <é’©å­å称> [-- <é’©å­å‚æ•°>]"
+
+#: builtin/hook.c:30
+msgid "silently ignore missing requested <hook-name>"
+msgstr "é™é»˜åœ°å¿½ç•¥ç¼ºå¤±çš„ <é’©å­å称>"
+
#: builtin/index-pack.c:221
#, c-format
msgid "object type mismatch at %s"
@@ -16409,244 +16872,245 @@ msgstr "输入上的读错误"
msgid "used more bytes than were available"
msgstr "用掉了超过å¯ç”¨çš„字节"
-#: builtin/index-pack.c:324 builtin/pack-objects.c:756
+#: builtin/index-pack.c:324 builtin/pack-objects.c:754
msgid "pack too large for current definition of off_t"
msgstr "åŒ…å¤ªå¤§è¶…è¿‡äº†å½“å‰ off_t 的定义"
-#: builtin/index-pack.c:327 builtin/unpack-objects.c:95
-msgid "pack exceeds maximum allowed size"
-msgstr "包超过了最大å…许值"
+#: builtin/index-pack.c:329
+#, c-format
+msgid "pack exceeds maximum allowed size (%s)"
+msgstr "包超过了最大å…许大å°ï¼ˆ%s)"
-#: builtin/index-pack.c:358
+#: builtin/index-pack.c:362
msgid "pack signature mismatch"
msgstr "包签åä¸åŒ¹é…"
-#: builtin/index-pack.c:360
+#: builtin/index-pack.c:364
#, c-format
msgid "pack version %<PRIu32> unsupported"
msgstr "ä¸æ”¯æŒåŒ…版本 %<PRIu32>"
-#: builtin/index-pack.c:376
+#: builtin/index-pack.c:380
#, c-format
msgid "pack has bad object at offset %<PRIuMAX>: %s"
msgstr "包中有错误的对象ä½äºŽåç§»é‡ %<PRIuMAX>:%s"
-#: builtin/index-pack.c:482
+#: builtin/index-pack.c:485
#, c-format
msgid "inflate returned %d"
msgstr "解压缩返回 %d"
-#: builtin/index-pack.c:531
+#: builtin/index-pack.c:534
msgid "offset value overflow for delta base object"
msgstr "å移值覆盖了 delta 基准对象"
-#: builtin/index-pack.c:539
+#: builtin/index-pack.c:542
msgid "delta base offset is out of bound"
msgstr "delta 基准å移越界"
-#: builtin/index-pack.c:547
+#: builtin/index-pack.c:550
#, c-format
msgid "unknown object type %d"
msgstr "未知对象类型 %d"
-#: builtin/index-pack.c:578
+#: builtin/index-pack.c:581
msgid "cannot pread pack file"
msgstr "无法读å–包文件"
-#: builtin/index-pack.c:580
+#: builtin/index-pack.c:583
#, c-format
msgid "premature end of pack file, %<PRIuMAX> byte missing"
msgid_plural "premature end of pack file, %<PRIuMAX> bytes missing"
msgstr[0] "包文件过早结æŸï¼Œç¼ºå°‘ %<PRIuMAX> 字节"
msgstr[1] "包文件过早结æŸï¼Œç¼ºå°‘ %<PRIuMAX> 字节"
-#: builtin/index-pack.c:606
+#: builtin/index-pack.c:609
msgid "serious inflate inconsistency"
msgstr "解压缩严é‡çš„ä¸ä¸€è‡´"
-#: builtin/index-pack.c:751 builtin/index-pack.c:757 builtin/index-pack.c:781
-#: builtin/index-pack.c:820 builtin/index-pack.c:829
+#: builtin/index-pack.c:754 builtin/index-pack.c:760 builtin/index-pack.c:784
+#: builtin/index-pack.c:823 builtin/index-pack.c:832
#, c-format
msgid "SHA1 COLLISION FOUND WITH %s !"
msgstr "å‘现 %s 出现 SHA1 冲çªï¼"
-#: builtin/index-pack.c:754 builtin/pack-objects.c:292
-#: builtin/pack-objects.c:352 builtin/pack-objects.c:458
+#: builtin/index-pack.c:757 builtin/pack-objects.c:290
+#: builtin/pack-objects.c:350 builtin/pack-objects.c:456
#, c-format
msgid "unable to read %s"
msgstr "ä¸èƒ½è¯» %s"
-#: builtin/index-pack.c:818
+#: builtin/index-pack.c:821
#, c-format
msgid "cannot read existing object info %s"
msgstr "ä¸èƒ½è¯»å–çŽ°å­˜å¯¹è±¡ä¿¡æ¯ %s"
-#: builtin/index-pack.c:826
+#: builtin/index-pack.c:829
#, c-format
msgid "cannot read existing object %s"
msgstr "ä¸èƒ½è¯»å–现存对象 %s"
-#: builtin/index-pack.c:840
+#: builtin/index-pack.c:843
#, c-format
msgid "invalid blob object %s"
msgstr "无效的数æ®å¯¹è±¡ %s"
-#: builtin/index-pack.c:843 builtin/index-pack.c:862
+#: builtin/index-pack.c:846 builtin/index-pack.c:865
msgid "fsck error in packed object"
msgstr "对打包对象 fsck 检查出错"
-#: builtin/index-pack.c:864
+#: builtin/index-pack.c:867
#, c-format
msgid "Not all child objects of %s are reachable"
msgstr "%s 的所有å­å¯¹è±¡å¹¶éžéƒ½å¯è¾¾"
-#: builtin/index-pack.c:925 builtin/index-pack.c:972
+#: builtin/index-pack.c:928 builtin/index-pack.c:975
msgid "failed to apply delta"
msgstr "无法应用 delta"
-#: builtin/index-pack.c:1156
+#: builtin/index-pack.c:1161
msgid "Receiving objects"
msgstr "接收对象中"
-#: builtin/index-pack.c:1156
+#: builtin/index-pack.c:1161
msgid "Indexing objects"
msgstr "索引对象中"
-#: builtin/index-pack.c:1190
+#: builtin/index-pack.c:1195
msgid "pack is corrupted (SHA1 mismatch)"
msgstr "包冲çªï¼ˆSHA1 ä¸åŒ¹é…)"
-#: builtin/index-pack.c:1195
+#: builtin/index-pack.c:1200
msgid "cannot fstat packfile"
msgstr "ä¸èƒ½å¯¹åŒ…文件调用 fstat"
-#: builtin/index-pack.c:1198
+#: builtin/index-pack.c:1203
msgid "pack has junk at the end"
msgstr "包的结尾有垃圾数æ®"
-#: builtin/index-pack.c:1210
+#: builtin/index-pack.c:1215
msgid "confusion beyond insanity in parse_pack_objects()"
msgstr "parse_pack_objects() 中é‡åˆ°ä¸å¯ç†å–»çš„问题"
-#: builtin/index-pack.c:1233
+#: builtin/index-pack.c:1238
msgid "Resolving deltas"
msgstr "å¤„ç† delta 中"
-#: builtin/index-pack.c:1244 builtin/pack-objects.c:2905
+#: builtin/index-pack.c:1249 builtin/pack-objects.c:2913
#, c-format
msgid "unable to create thread: %s"
msgstr "ä¸èƒ½åˆ›å»ºçº¿ç¨‹ï¼š%s"
-#: builtin/index-pack.c:1277
+#: builtin/index-pack.c:1282
msgid "confusion beyond insanity"
msgstr "ä¸å¯ç†å–»"
-#: builtin/index-pack.c:1283
+#: builtin/index-pack.c:1288
#, c-format
msgid "completed with %d local object"
msgid_plural "completed with %d local objects"
msgstr[0] "å®Œæˆ %d 个本地对象"
msgstr[1] "å®Œæˆ %d 个本地对象"
-#: builtin/index-pack.c:1295
+#: builtin/index-pack.c:1300
#, c-format
msgid "Unexpected tail checksum for %s (disk corruption?)"
msgstr "对 %s 的尾部校验出现æ„外(ç£ç›˜æŸå?)"
-#: builtin/index-pack.c:1299
+#: builtin/index-pack.c:1304
#, c-format
msgid "pack has %d unresolved delta"
msgid_plural "pack has %d unresolved deltas"
msgstr[0] "包有 %d 个未解决的 delta"
msgstr[1] "包有 %d 个未解决的 delta"
-#: builtin/index-pack.c:1323
+#: builtin/index-pack.c:1328
#, c-format
msgid "unable to deflate appended object (%d)"
msgstr "ä¸èƒ½åŽ‹ç¼©é™„加对象(%d)"
-#: builtin/index-pack.c:1419
+#: builtin/index-pack.c:1423
#, c-format
msgid "local object %s is corrupt"
msgstr "本地对象 %s å·²æŸå"
-#: builtin/index-pack.c:1440
+#: builtin/index-pack.c:1445
#, c-format
msgid "packfile name '%s' does not end with '.%s'"
msgstr "包文件å '%s' 没有以 '.%s' 结尾"
-#: builtin/index-pack.c:1464
+#: builtin/index-pack.c:1469
#, c-format
msgid "cannot write %s file '%s'"
msgstr "无法写入 %s 文件 '%s'"
-#: builtin/index-pack.c:1472
+#: builtin/index-pack.c:1477
#, c-format
msgid "cannot close written %s file '%s'"
msgstr "无法关闭已写入的 %s 文件 '%s'"
-#: builtin/index-pack.c:1489
+#: builtin/index-pack.c:1494
#, c-format
msgid "unable to rename temporary '*.%s' file to '%s'"
msgstr "ä¸èƒ½é‡å‘½å临时文件 '*.%s' 为 '%s'"
-#: builtin/index-pack.c:1514
+#: builtin/index-pack.c:1519
msgid "error while closing pack file"
msgstr "关闭包文件时出错"
-#: builtin/index-pack.c:1573 builtin/pack-objects.c:3150
+#: builtin/index-pack.c:1578 builtin/pack-objects.c:3158
#, c-format
msgid "bad pack.indexversion=%<PRIu32>"
msgstr "åçš„ pack.indexversion=%<PRIu32>"
-#: builtin/index-pack.c:1643
+#: builtin/index-pack.c:1648
#, c-format
msgid "Cannot open existing pack file '%s'"
msgstr "无法打开现存包文件 '%s'"
-#: builtin/index-pack.c:1645
+#: builtin/index-pack.c:1650
#, c-format
msgid "Cannot open existing pack idx file for '%s'"
msgstr "无法为 %s 打开包索引文件"
-#: builtin/index-pack.c:1693
+#: builtin/index-pack.c:1698
#, 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:1700
+#: builtin/index-pack.c:1705
#, 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:1742
+#: builtin/index-pack.c:1748
msgid "Cannot come back to cwd"
msgstr "无法返回当å‰å·¥ä½œç›®å½•"
-#: builtin/index-pack.c:1796 builtin/index-pack.c:1799
-#: builtin/index-pack.c:1819 builtin/index-pack.c:1823
+#: builtin/index-pack.c:1802 builtin/index-pack.c:1805
+#: builtin/index-pack.c:1825 builtin/index-pack.c:1829
#, c-format
msgid "bad %s"
msgstr "错误选项 %s"
-#: builtin/index-pack.c:1829 builtin/init-db.c:379 builtin/init-db.c:614
+#: builtin/index-pack.c:1835 builtin/init-db.c:379 builtin/init-db.c:614
#, c-format
msgid "unknown hash algorithm '%s'"
msgstr "未知的哈希算法 '%s'"
-#: builtin/index-pack.c:1850
+#: builtin/index-pack.c:1856
msgid "--stdin requires a git repository"
msgstr "--stdin éœ€è¦ git 仓库"
-#: builtin/index-pack.c:1867
+#: builtin/index-pack.c:1873
msgid "--verify with no packfile name given"
msgstr "--verify 没有æ供包文件åå‚æ•°"
-#: builtin/index-pack.c:1933 builtin/unpack-objects.c:584
+#: builtin/index-pack.c:1939 builtin/unpack-objects.c:584
msgid "fsck error in pack objects"
msgstr "在打包对象中 fsck 检查出错"
@@ -16853,128 +17317,132 @@ msgstr "--trailer å’Œ --only-input åŒæ—¶ä½¿ç”¨æ²¡æœ‰æ„义"
msgid "no input file given for in-place editing"
msgstr "没有给出è¦åŽŸä½ç¼–辑的文件"
-#: builtin/log.c:59
+#: builtin/log.c:60
msgid "git log [<options>] [<revision-range>] [[--] <path>...]"
msgstr "git log [<选项>] [<版本范围>] [[--] <路径>...]"
-#: builtin/log.c:60
+#: builtin/log.c:61
msgid "git show [<options>] <object>..."
msgstr "git show [<选项>] <对象>..."
-#: builtin/log.c:113
+#: builtin/log.c:114
#, c-format
msgid "invalid --decorate option: %s"
msgstr "无效的 --decorate 选项:%s"
-#: builtin/log.c:180
+#: builtin/log.c:181
msgid "show source"
msgstr "显示æº"
-#: builtin/log.c:181
+#: builtin/log.c:182
msgid "use mail map file"
msgstr "使用邮件映射文件"
-#: builtin/log.c:184
+#: builtin/log.c:185
msgid "only decorate refs that match <pattern>"
msgstr "åªä¿®é¥°ä¸Ž <模å¼> 匹é…的引用"
-#: builtin/log.c:186
+#: builtin/log.c:187
msgid "do not decorate refs that match <pattern>"
msgstr "ä¸ä¿®é¥°å’Œ <模å¼> 匹é…的引用"
-#: builtin/log.c:187
+#: builtin/log.c:188
msgid "decorate options"
msgstr "修饰选项"
-#: builtin/log.c:190
+#: builtin/log.c:191
msgid ""
"trace the evolution of line range <start>,<end> or function :<funcname> in "
"<file>"
msgstr "跟踪 <文件> 中 <开始>,<结æŸ> 范围内的行或函数 :<函数å> çš„æ¼”å˜"
-#: builtin/log.c:213
+#: builtin/log.c:214
msgid "-L<range>:<file> cannot be used with pathspec"
msgstr "-L<范围>:<文件> ä¸èƒ½å’Œè·¯å¾„表达å¼å…±ç”¨"
-#: builtin/log.c:321
+#: builtin/log.c:322
#, c-format
msgid "Final output: %d %s\n"
msgstr "最终输出:%d %s\n"
-#: builtin/log.c:586
+#: builtin/log.c:429
+msgid "unable to create temporary object directory"
+msgstr "无法创建临时对象目录"
+
+#: builtin/log.c:599
#, c-format
msgid "git show %s: bad file"
msgstr "git show %s: æŸå的文件"
-#: builtin/log.c:601 builtin/log.c:691
+#: builtin/log.c:614 builtin/log.c:706
#, c-format
msgid "could not read object %s"
msgstr "ä¸èƒ½è¯»å–对象 %s"
-#: builtin/log.c:716
+#: builtin/log.c:731
#, c-format
msgid "unknown type: %d"
msgstr "未知类型:%d"
-#: builtin/log.c:861
+#: builtin/log.c:880
#, c-format
msgid "%s: invalid cover from description mode"
msgstr "%s:从æ述生æˆé™„函的模å¼æ— æ•ˆ"
-#: builtin/log.c:868
+#: builtin/log.c:887
msgid "format.headers without value"
msgstr "format.headers 没有值"
-#: builtin/log.c:997
+#: builtin/log.c:1016
#, c-format
msgid "cannot open patch file %s"
msgstr "无法打开补ä¸æ–‡ä»¶ %s"
-#: builtin/log.c:1014
+#: builtin/log.c:1033
msgid "need exactly one range"
msgstr "åªéœ€è¦ä¸€ä¸ªèŒƒå›´"
-#: builtin/log.c:1024
+#: builtin/log.c:1043
msgid "not a range"
msgstr "ä¸æ˜¯ä¸€ä¸ªèŒƒå›´"
-#: builtin/log.c:1188
+#: builtin/log.c:1207
msgid "cover letter needs email format"
msgstr "附函需è¦é‚®ä»¶åœ°å€æ ¼å¼"
-#: builtin/log.c:1194
+#: builtin/log.c:1213
msgid "failed to create cover-letter file"
msgstr "无法创建附函文件"
-#: builtin/log.c:1281
+#: builtin/log.c:1300
#, c-format
msgid "insane in-reply-to: %s"
msgstr "ä¸æ­£å¸¸çš„ in-reply-to:%s"
-#: builtin/log.c:1308
+#: builtin/log.c:1327
msgid "git format-patch [<options>] [<since> | <revision-range>]"
msgstr "git format-patch [<选项>] [<从> | <版本范围>]"
-#: builtin/log.c:1366
+#: builtin/log.c:1385
msgid "two output directories?"
msgstr "两个输出目录?"
-#: builtin/log.c:1517 builtin/log.c:2344 builtin/log.c:2346 builtin/log.c:2358
+#: builtin/log.c:1536 builtin/log.c:2369 builtin/log.c:2371 builtin/log.c:2383
#, c-format
msgid "unknown commit %s"
msgstr "未知æ交 %s"
-#: builtin/log.c:1528 builtin/replace.c:58 builtin/replace.c:207
+#: builtin/log.c:1547 builtin/replace.c:58 builtin/replace.c:207
#: builtin/replace.c:210
#, c-format
msgid "failed to resolve '%s' as a valid ref"
msgstr "无法将 '%s' 解æžä¸ºä¸€ä¸ªæœ‰æ•ˆå¼•ç”¨"
-#: builtin/log.c:1537
+#: builtin/log.c:1556
msgid "could not find exact merge base"
msgstr "ä¸èƒ½æ‰¾åˆ°å‡†ç¡®çš„åˆå¹¶åŸºçº¿"
-#: builtin/log.c:1547
+#: builtin/log.c:1566
msgid ""
"failed to get upstream, if you want to record base commit automatically,\n"
"please use git branch --set-upstream-to to track a remote branch.\n"
@@ -16984,272 +17452,276 @@ msgstr ""
"git branch --set-upstream-to æ¥è·Ÿè¸ªä¸€ä¸ªè¿œç¨‹åˆ†æ”¯ã€‚或者您å¯ä»¥é€šè¿‡\n"
"å‚æ•° --base=<基线æ交> 手动指定一个基线æ交"
-#: builtin/log.c:1570
+#: builtin/log.c:1589
msgid "failed to find exact merge base"
msgstr "无法找到准确的åˆå¹¶åŸºçº¿"
-#: builtin/log.c:1587
+#: builtin/log.c:1606
msgid "base commit should be the ancestor of revision list"
msgstr "基线æ交应该是版本列表的祖先"
-#: builtin/log.c:1597
+#: builtin/log.c:1616
msgid "base commit shouldn't be in revision list"
msgstr "基线æ交ä¸åº”该出现在版本列表中"
-#: builtin/log.c:1655
+#: builtin/log.c:1674
msgid "cannot get patch id"
msgstr "æ— æ³•å¾—åˆ°è¡¥ä¸ id"
-#: builtin/log.c:1718
+#: builtin/log.c:1737
msgid "failed to infer range-diff origin of current series"
msgstr "无法推断当å‰ç³»åˆ—çš„ range-diff 起始"
-#: builtin/log.c:1720
+#: builtin/log.c:1739
#, c-format
msgid "using '%s' as range-diff origin of current series"
msgstr "使用 '%s' 作为当å‰ç³»åˆ—çš„ range-diff æº"
-#: builtin/log.c:1764
+#: builtin/log.c:1783
msgid "use [PATCH n/m] even with a single patch"
msgstr "使用 [PATCH n/m],å³ä½¿åªæœ‰ä¸€ä¸ªè¡¥ä¸"
-#: builtin/log.c:1767
+#: builtin/log.c:1786
msgid "use [PATCH] even with multiple patches"
msgstr "使用 [PATCH],å³ä½¿æœ‰å¤šä¸ªè¡¥ä¸"
-#: builtin/log.c:1771
+#: builtin/log.c:1790
msgid "print patches to standard out"
msgstr "打å°è¡¥ä¸åˆ°æ ‡å‡†è¾“出"
-#: builtin/log.c:1773
+#: builtin/log.c:1792
msgid "generate a cover letter"
msgstr "生æˆä¸€å°é™„函"
-#: builtin/log.c:1775
+#: builtin/log.c:1794
msgid "use simple number sequence for output file names"
msgstr "使用简å•çš„æ•°å­—åºåˆ—作为输出文件å"
-#: builtin/log.c:1776
+#: builtin/log.c:1795
msgid "sfx"
msgstr "åŽç¼€"
-#: builtin/log.c:1777
+#: builtin/log.c:1796
msgid "use <sfx> instead of '.patch'"
msgstr "使用 <åŽç¼€> 代替 '.patch'"
-#: builtin/log.c:1779
+#: builtin/log.c:1798
msgid "start numbering patches at <n> instead of 1"
msgstr "è¡¥ä¸ä»¥ <n> 开始编å·ï¼Œè€Œä¸æ˜¯1"
-#: builtin/log.c:1780
+#: builtin/log.c:1799
msgid "reroll-count"
msgstr "é‡åˆ¶-计数"
-#: builtin/log.c:1781
+#: builtin/log.c:1800
msgid "mark the series as Nth re-roll"
msgstr "标记补ä¸ç³»åˆ—是第几次é‡åˆ¶"
-#: builtin/log.c:1783
+#: builtin/log.c:1802
msgid "max length of output filename"
msgstr "输出文件å的最大长度"
-#: builtin/log.c:1785
+#: builtin/log.c:1804
msgid "use [RFC PATCH] instead of [PATCH]"
msgstr "使用 [RFC PATCH] 代替 [PATCH]"
-#: builtin/log.c:1788
+#: builtin/log.c:1807
msgid "cover-from-description-mode"
msgstr "从分支æ述获å–附函的模å¼"
-#: builtin/log.c:1789
+#: builtin/log.c:1808
msgid "generate parts of a cover letter based on a branch's description"
msgstr "基于一个分支æ述生æˆéƒ¨åˆ†é™„函"
-#: builtin/log.c:1791
+#: builtin/log.c:1810
msgid "use [<prefix>] instead of [PATCH]"
msgstr "使用 [<å‰ç¼€>] 代替 [PATCH]"
-#: builtin/log.c:1794
+#: builtin/log.c:1813
msgid "store resulting files in <dir>"
msgstr "把结果文件存储在 <目录>"
-#: builtin/log.c:1797
+#: builtin/log.c:1816
msgid "don't strip/add [PATCH]"
msgstr "ä¸åˆ é™¤/添加 [PATCH]"
-#: builtin/log.c:1800
+#: builtin/log.c:1819
msgid "don't output binary diffs"
msgstr "ä¸è¾“出二进制差异"
-#: builtin/log.c:1802
+#: builtin/log.c:1821
msgid "output all-zero hash in From header"
msgstr "在 From 头信æ¯ä¸­è¾“出全为零的哈希值"
-#: builtin/log.c:1804
+#: builtin/log.c:1823
msgid "don't include a patch matching a commit upstream"
msgstr "ä¸åŒ…å«å·²åœ¨ä¸Šæ¸¸æ交中的补ä¸"
-#: builtin/log.c:1806
+#: builtin/log.c:1825
msgid "show patch format instead of default (patch + stat)"
msgstr "显示纯补ä¸æ ¼å¼è€Œéžé»˜è®¤çš„(补ä¸+状æ€ï¼‰"
-#: builtin/log.c:1808
+#: builtin/log.c:1827
msgid "Messaging"
msgstr "邮件å‘é€"
-#: builtin/log.c:1809
+#: builtin/log.c:1828
msgid "header"
msgstr "header"
-#: builtin/log.c:1810
+#: builtin/log.c:1829
msgid "add email header"
msgstr "添加邮件头"
-#: builtin/log.c:1811 builtin/log.c:1812
+#: builtin/log.c:1830 builtin/log.c:1831
msgid "email"
msgstr "邮件地å€"
-#: builtin/log.c:1811
+#: builtin/log.c:1830
msgid "add To: header"
msgstr "添加收件人"
-#: builtin/log.c:1812
+#: builtin/log.c:1831
msgid "add Cc: header"
msgstr "添加抄é€"
-#: builtin/log.c:1813
+#: builtin/log.c:1832
msgid "ident"
msgstr "标识"
-#: builtin/log.c:1814
+#: builtin/log.c:1833
msgid "set From address to <ident> (or committer ident if absent)"
msgstr "å°† From 地å€è®¾ç½®ä¸º <标识>(如若ä¸æ供,则用æ交者 ID åšä¸ºåœ°å€ï¼‰"
-#: builtin/log.c:1816
+#: builtin/log.c:1835
msgid "message-id"
msgstr "邮件标识"
-#: builtin/log.c:1817
+#: builtin/log.c:1836
msgid "make first mail a reply to <message-id>"
msgstr "使第一å°é‚®ä»¶ä½œä¸ºå¯¹ <邮件标识> 的回å¤"
-#: builtin/log.c:1818 builtin/log.c:1821
+#: builtin/log.c:1837 builtin/log.c:1840
msgid "boundary"
msgstr "边界"
-#: builtin/log.c:1819
+#: builtin/log.c:1838
msgid "attach the patch"
msgstr "附件方å¼æ·»åŠ è¡¥ä¸"
-#: builtin/log.c:1822
+#: builtin/log.c:1841
msgid "inline the patch"
msgstr "内è”显示补ä¸"
-#: builtin/log.c:1826
+#: builtin/log.c:1845
msgid "enable message threading, styles: shallow, deep"
msgstr "å¯ç”¨é‚®ä»¶çº¿ç´¢ï¼Œé£Žæ ¼ï¼šæµ…,深"
-#: builtin/log.c:1828
+#: builtin/log.c:1847
msgid "signature"
msgstr "ç­¾å"
-#: builtin/log.c:1829
+#: builtin/log.c:1848
msgid "add a signature"
msgstr "添加一个签å"
-#: builtin/log.c:1830
+#: builtin/log.c:1849
msgid "base-commit"
msgstr "基线æ交"
-#: builtin/log.c:1831
+#: builtin/log.c:1850
msgid "add prerequisite tree info to the patch series"
msgstr "为补ä¸åˆ—表添加å‰ç½®æ ‘ä¿¡æ¯"
-#: builtin/log.c:1834
+#: builtin/log.c:1853
msgid "add a signature from a file"
msgstr "从文件添加一个签å"
-#: builtin/log.c:1835
+#: builtin/log.c:1854
msgid "don't print the patch filenames"
msgstr "ä¸è¦æ‰“å°è¡¥ä¸æ–‡ä»¶å"
-#: builtin/log.c:1837
+#: builtin/log.c:1856
msgid "show progress while generating patches"
msgstr "在生æˆè¡¥ä¸æ—¶æ˜¾ç¤ºè¿›åº¦"
-#: builtin/log.c:1839
+#: builtin/log.c:1858
msgid "show changes against <rev> in cover letter or single patch"
msgstr "在附函或å•ä¸ªè¡¥ä¸ä¸­æ˜¾ç¤ºå’Œ <版本> 的差异"
-#: builtin/log.c:1842
+#: builtin/log.c:1861
msgid "show changes against <refspec> in cover letter or single patch"
msgstr "在附函或å•ä¸ªè¡¥ä¸ä¸­æ˜¾ç¤ºå’Œ <引用规格> 的差异"
-#: builtin/log.c:1844 builtin/range-diff.c:28
+#: builtin/log.c:1863 builtin/range-diff.c:28
msgid "percentage by which creation is weighted"
msgstr "创建æƒé‡çš„百分比"
-#: builtin/log.c:1931
+#: builtin/log.c:1953
#, c-format
msgid "invalid ident line: %s"
msgstr "包å«æ— æ•ˆçš„身份标识:%s"
-#: builtin/log.c:1956
+#: builtin/log.c:1978
msgid "--name-only does not make sense"
msgstr "--name-only æ— æ„义"
-#: builtin/log.c:1958
+#: builtin/log.c:1980
msgid "--name-status does not make sense"
msgstr "--name-status æ— æ„义"
-#: builtin/log.c:1960
+#: builtin/log.c:1982
msgid "--check does not make sense"
msgstr "--check æ— æ„义"
-#: builtin/log.c:2104
+#: builtin/log.c:1984
+msgid "--remerge-diff does not make sense"
+msgstr "--remerge-diff æ— æ„义"
+
+#: builtin/log.c:2129
msgid "--interdiff requires --cover-letter or single patch"
msgstr "--interdiff éœ€è¦ --cover-letter 或å•ä¸€è¡¥ä¸"
-#: builtin/log.c:2108
+#: builtin/log.c:2133
msgid "Interdiff:"
msgstr "版本间差异:"
-#: builtin/log.c:2109
+#: builtin/log.c:2134
#, c-format
msgid "Interdiff against v%d:"
msgstr "对 v%d 的版本差异:"
-#: builtin/log.c:2119
+#: builtin/log.c:2144
msgid "--range-diff requires --cover-letter or single patch"
msgstr "--range-diff éœ€è¦ --cover-letter 或å•ä¸€è¡¥ä¸"
-#: builtin/log.c:2127
+#: builtin/log.c:2152
msgid "Range-diff:"
msgstr "范围差异:"
-#: builtin/log.c:2128
+#: builtin/log.c:2153
#, c-format
msgid "Range-diff against v%d:"
msgstr "对 v%d 的范围差异:"
-#: builtin/log.c:2139
+#: builtin/log.c:2164
#, c-format
msgid "unable to read signature file '%s'"
msgstr "无法读å–ç­¾å文件 '%s'"
-#: builtin/log.c:2175
+#: builtin/log.c:2200
msgid "Generating patches"
msgstr "生æˆè¡¥ä¸"
-#: builtin/log.c:2219
+#: builtin/log.c:2244
msgid "failed to create output files"
msgstr "无法创建输出文件"
-#: builtin/log.c:2279
+#: builtin/log.c:2304
msgid "git cherry [-v] [<upstream> [<head> [<limit>]]]"
msgstr "git cherry [-v] [<上游> [<头> [<é™åˆ¶>]]]"
-#: builtin/log.c:2333
+#: builtin/log.c:2358
#, c-format
msgid ""
"Could not find a tracked remote branch, please specify <upstream> manually.\n"
@@ -17343,10 +17815,6 @@ msgstr "添加标准的 git 排除"
msgid "make the output relative to the project top directory"
msgstr "显示相对于顶级目录的文件å"
-#: builtin/ls-files.c:667
-msgid "recurse through submodules"
-msgstr "在å­æ¨¡ç»„中递归"
-
#: builtin/ls-files.c:669
msgid "if any <file> is not in the index, treat this as an error"
msgstr "如果任何 <文件> 都ä¸åœ¨ç´¢å¼•åŒºï¼Œè§†ä¸ºé”™è¯¯"
@@ -17385,7 +17853,7 @@ msgstr ""
msgid "do not print remote URL"
msgstr "ä¸æ‰“å°è¿œç¨‹ URL"
-#: builtin/ls-remote.c:61 builtin/ls-remote.c:63 builtin/rebase.c:1103
+#: builtin/ls-remote.c:61 builtin/ls-remote.c:63 builtin/rebase.c:1131
msgid "exec"
msgstr "exec"
@@ -17417,42 +17885,70 @@ msgstr "若未找到匹é…的引用则以退出ç 2退出"
msgid "show underlying ref in addition to the object pointed by it"
msgstr "除了显示指å‘的对象外,显示指å‘的引用å"
-#: builtin/ls-tree.c:30
+#: builtin/ls-tree.c:36
msgid "git ls-tree [<options>] <tree-ish> [<path>...]"
msgstr "git ls-tree [<选项>] <树对象> [<路径>...]"
-#: builtin/ls-tree.c:128
+#: builtin/ls-tree.c:54
+#, c-format
+msgid "could not get object info about '%s'"
+msgstr "无法获得关于 '%s' 的对象信æ¯"
+
+#: builtin/ls-tree.c:79
+#, c-format
+msgid "bad ls-tree format: element '%s' does not start with '('"
+msgstr "åçš„ ls-tree æ ¼å¼ï¼šå…ƒç´  '%s' 没有以 '(' 开头"
+
+#: builtin/ls-tree.c:83
+#, c-format
+msgid "bad ls-tree format: element '%s' does not end in ')'"
+msgstr "åçš„ ls-tree æ ¼å¼ï¼šå…ƒç´  '%s' 没有以 ')' 结尾"
+
+#: builtin/ls-tree.c:109
+#, c-format
+msgid "bad ls-tree format: %%%.*s"
+msgstr "åçš„ ls-tree æ ¼å¼: %%%.*s"
+
+#: builtin/ls-tree.c:336
msgid "only show trees"
msgstr "åªæ˜¾ç¤ºæ ‘"
-#: builtin/ls-tree.c:130
+#: builtin/ls-tree.c:338
msgid "recurse into subtrees"
msgstr "递归到å­æ ‘"
-#: builtin/ls-tree.c:132
+#: builtin/ls-tree.c:340
msgid "show trees when recursing"
msgstr "当递归时显示树"
-#: builtin/ls-tree.c:135
+#: builtin/ls-tree.c:343
msgid "terminate entries with NUL byte"
msgstr "æ¡ç›®ä»¥ NUL 字符终止"
-#: builtin/ls-tree.c:136
+#: builtin/ls-tree.c:344
msgid "include object size"
msgstr "包括对象大å°"
-#: builtin/ls-tree.c:138 builtin/ls-tree.c:140
+#: builtin/ls-tree.c:346 builtin/ls-tree.c:348
msgid "list only filenames"
msgstr "åªåˆ—出文件å"
-#: builtin/ls-tree.c:143
+#: builtin/ls-tree.c:350
+msgid "list only objects"
+msgstr "åªåˆ—出对象"
+
+#: builtin/ls-tree.c:353
msgid "use full path names"
msgstr "使用文件的全路径"
-#: builtin/ls-tree.c:145
+#: builtin/ls-tree.c:355
msgid "list entire tree; not just current directory (implies --full-name)"
msgstr "列出整个树;ä¸ä»…仅当å‰ç›®å½•ï¼ˆéšå« --full-name)"
+#: builtin/ls-tree.c:391
+msgid "--format can't be combined with other format-altering options"
+msgstr "--format ä¸èƒ½å’Œæ”¹å˜æ ¼å¼çš„选项åŒæ—¶ä½¿ç”¨"
+
#. TRANSLATORS: keep <> in "<" mail ">" info.
#: builtin/mailinfo.c:14
msgid "git mailinfo [<options>] <msg> <patch> < mail >info"
@@ -17502,7 +17998,11 @@ msgstr "找到引å·ä¸­çš„ CR 时的æ“作"
msgid "use headers in message's body"
msgstr "在消æ¯æ­£æ–‡ä¸­ä½¿ç”¨æ ‡å¤´"
-#: builtin/mailsplit.c:239
+#: builtin/mailsplit.c:227
+msgid "reading patches from stdin/tty..."
+msgstr "从标准输入或tty读å–è¡¥ä¸â€¦â€¦"
+
+#: builtin/mailsplit.c:242
#, c-format
msgid "empty mbox: '%s'"
msgstr "空的 mbox:'%s'"
@@ -17527,23 +18027,23 @@ msgstr "git merge-base --is-ancestor <æ交> <æ交>"
msgid "git merge-base --fork-point <ref> [<commit>]"
msgstr "git merge-base --fork-point <引用> [<æ交>]"
-#: builtin/merge-base.c:143
+#: builtin/merge-base.c:144
msgid "output all common ancestors"
msgstr "输出所有共åŒçš„祖先"
-#: builtin/merge-base.c:145
+#: builtin/merge-base.c:146
msgid "find ancestors for a single n-way merge"
msgstr "查找一个多路åˆå¹¶çš„祖先æ交"
-#: builtin/merge-base.c:147
+#: builtin/merge-base.c:148
msgid "list revs not reachable from others"
msgstr "显示ä¸èƒ½è¢«å…¶ä»–访问到的版本"
-#: builtin/merge-base.c:149
+#: builtin/merge-base.c:150
msgid "is the first one ancestor of the other?"
msgstr "第一个是其他的祖先æ交么?"
-#: builtin/merge-base.c:151
+#: builtin/merge-base.c:152
msgid "find where <commit> forked from reflog of <ref>"
msgstr "æ ¹æ® <引用> 的引用日志查找 <æ交> 的分å‰ç‚¹"
@@ -17691,7 +18191,7 @@ msgid "verify that the named commit has a valid GPG signature"
msgstr "验è¯æŒ‡å®šçš„æ交是å¦åŒ…å«ä¸€ä¸ªæœ‰æ•ˆçš„ GPG ç­¾å"
#: builtin/merge.c:280 builtin/notes.c:785 builtin/pull.c:172
-#: builtin/rebase.c:1117 builtin/revert.c:114
+#: builtin/rebase.c:1145 builtin/revert.c:114
msgid "strategy"
msgstr "ç­–ç•¥"
@@ -17822,72 +18322,72 @@ msgid ""
"the commit.\n"
msgstr "以 '%c' 开始的行将被忽略,而空的æ交说明将终止æ交。\n"
-#: builtin/merge.c:894
+#: builtin/merge.c:900
msgid "Empty commit message."
msgstr "空æ交信æ¯ã€‚"
-#: builtin/merge.c:909
+#: builtin/merge.c:915
#, c-format
msgid "Wonderful.\n"
msgstr "太棒了。\n"
-#: builtin/merge.c:970
+#: builtin/merge.c:976
#, c-format
msgid "Automatic merge failed; fix conflicts and then commit the result.\n"
msgstr "自动åˆå¹¶å¤±è´¥ï¼Œä¿®æ­£å†²çªç„¶åŽæ交修正的结果。\n"
-#: builtin/merge.c:1009
+#: builtin/merge.c:1015
msgid "No current branch."
msgstr "没有当å‰åˆ†æ”¯ã€‚"
-#: builtin/merge.c:1011
+#: builtin/merge.c:1017
msgid "No remote for the current branch."
msgstr "当å‰åˆ†æ”¯æ²¡æœ‰å¯¹åº”的远程仓库。"
-#: builtin/merge.c:1013
+#: builtin/merge.c:1019
msgid "No default upstream defined for the current branch."
msgstr "当å‰åˆ†æ”¯æ²¡æœ‰å®šä¹‰é»˜è®¤çš„上游分支。"
-#: builtin/merge.c:1018
+#: builtin/merge.c:1024
#, c-format
msgid "No remote-tracking branch for %s from %s"
msgstr "对于 %s 没有æ¥è‡ª %s 的远程跟踪分支"
-#: builtin/merge.c:1075
+#: builtin/merge.c:1081
#, c-format
msgid "Bad value '%s' in environment '%s'"
msgstr "环境 '%2$s' 中存在åçš„å–值 '%1$s'"
-#: builtin/merge.c:1177
+#: builtin/merge.c:1183
#, c-format
msgid "not something we can merge in %s: %s"
msgstr "ä¸èƒ½åœ¨ %s 中åˆå¹¶ï¼š%s"
-#: builtin/merge.c:1211
+#: builtin/merge.c:1217
msgid "not something we can merge"
msgstr "ä¸èƒ½åˆå¹¶"
-#: builtin/merge.c:1324
+#: builtin/merge.c:1330
msgid "--abort expects no arguments"
msgstr "--abort ä¸å¸¦å‚æ•°"
-#: builtin/merge.c:1328
+#: builtin/merge.c:1334
msgid "There is no merge to abort (MERGE_HEAD missing)."
msgstr "没有è¦ç»ˆæ­¢çš„åˆå¹¶ï¼ˆMERGE_HEAD 丢失)。"
-#: builtin/merge.c:1346
+#: builtin/merge.c:1352
msgid "--quit expects no arguments"
msgstr "--quit ä¸å¸¦å‚æ•°"
-#: builtin/merge.c:1359
+#: builtin/merge.c:1365
msgid "--continue expects no arguments"
msgstr "--continue ä¸å¸¦å‚æ•°"
-#: builtin/merge.c:1363
+#: builtin/merge.c:1369
msgid "There is no merge in progress (MERGE_HEAD missing)."
msgstr "没有进行中的åˆå¹¶ï¼ˆMERGE_HEAD 丢失)。"
-#: builtin/merge.c:1379
+#: builtin/merge.c:1385
msgid ""
"You have not concluded your merge (MERGE_HEAD exists).\n"
"Please, commit your changes before you merge."
@@ -17895,7 +18395,7 @@ msgstr ""
"您尚未结æŸæ‚¨çš„åˆå¹¶ï¼ˆå­˜åœ¨ MERGE_HEAD)。\n"
"请在åˆå¹¶å‰å…ˆæ交您的修改。"
-#: builtin/merge.c:1386
+#: builtin/merge.c:1392
msgid ""
"You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists).\n"
"Please, commit your changes before you merge."
@@ -17903,84 +18403,80 @@ msgstr ""
"您尚未结æŸæ‚¨çš„拣选(存在 CHERRY_PICK_HEAD)。\n"
"请在åˆå¹¶å‰å…ˆæ交您的修改。"
-#: builtin/merge.c:1389
+#: builtin/merge.c:1395
msgid "You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists)."
msgstr "您尚未结æŸæ‚¨çš„拣选(存在 CHERRY_PICK_HEAD)。"
-#: builtin/merge.c:1421
+#: builtin/merge.c:1427
msgid "No commit specified and merge.defaultToUpstream not set."
msgstr "未指定æ交并且 merge.defaultToUpstream 未设置。"
-#: builtin/merge.c:1438
+#: builtin/merge.c:1444
msgid "Squash commit into empty head not supported yet"
msgstr "å°šä¸æ”¯æŒåˆ°ç©ºåˆ†æ”¯çš„压缩æ交"
-#: builtin/merge.c:1440
+#: builtin/merge.c:1446
msgid "Non-fast-forward commit does not make sense into an empty head"
msgstr "到空分支的éžå¿«è¿›å¼æ交没有æ„义"
-#: builtin/merge.c:1445
+#: builtin/merge.c:1451
#, c-format
msgid "%s - not something we can merge"
msgstr "%s - ä¸èƒ½è¢«åˆå¹¶"
-#: builtin/merge.c:1447
+#: builtin/merge.c:1453
msgid "Can merge only exactly one commit into empty head"
msgstr "åªèƒ½å°†ä¸€ä¸ªæ交åˆå¹¶åˆ°ç©ºåˆ†æ”¯ä¸Š"
-#: builtin/merge.c:1534
+#: builtin/merge.c:1540
msgid "refusing to merge unrelated histories"
msgstr "æ‹’ç»åˆå¹¶æ— å…³çš„历å²"
-#: builtin/merge.c:1553
+#: builtin/merge.c:1559
#, c-format
msgid "Updating %s..%s\n"
msgstr "æ›´æ–° %s..%s\n"
-#: builtin/merge.c:1601
+#: builtin/merge.c:1606
#, c-format
msgid "Trying really trivial in-index merge...\n"
msgstr "å°è¯•éžå¸¸å°çš„索引内åˆå¹¶...\n"
-#: builtin/merge.c:1608
+#: builtin/merge.c:1613
#, c-format
msgid "Nope.\n"
msgstr "无。\n"
-#: builtin/merge.c:1667 builtin/merge.c:1733
+#: builtin/merge.c:1671 builtin/merge.c:1737
#, c-format
msgid "Rewinding the tree to pristine...\n"
msgstr "将树回滚至原始状æ€...\n"
-#: builtin/merge.c:1671
+#: builtin/merge.c:1675
#, c-format
msgid "Trying merge strategy %s...\n"
msgstr "å°è¯•åˆå¹¶ç­–ç•¥ %s...\n"
-#: builtin/merge.c:1723
+#: builtin/merge.c:1727
#, c-format
msgid "No merge strategy handled the merge.\n"
msgstr "没有åˆå¹¶ç­–略处ç†æ­¤åˆå¹¶ã€‚\n"
-#: builtin/merge.c:1725
+#: builtin/merge.c:1729
#, c-format
msgid "Merge with strategy %s failed.\n"
msgstr "使用策略 %s åˆå¹¶å¤±è´¥ã€‚\n"
-#: builtin/merge.c:1735
+#: builtin/merge.c:1739
#, c-format
msgid "Using the %s strategy to prepare resolving by hand.\n"
msgstr "使用 %s 策略以准备手工解决。\n"
-#: builtin/merge.c:1749
+#: builtin/merge.c:1753
#, c-format
msgid "Automatic merge went well; stopped before committing as requested\n"
msgstr "自动åˆå¹¶è¿›å±•é¡ºåˆ©ï¼ŒæŒ‰è¦æ±‚在æ交å‰åœæ­¢\n"
-#: builtin/mktag.c:10
-msgid "git mktag"
-msgstr "git mktag"
-
#: builtin/mktag.c:27
#, c-format
msgid "warning: tag input does not pass fsck: %s"
@@ -18006,22 +18502,18 @@ msgstr "ä¸èƒ½è¯»å–被标记的对象 '%s'"
msgid "object '%s' tagged as '%s', but is a '%s' type"
msgstr "对象 '%s' 被标记为 '%s',然而是一个 '%s' 类型"
-#: builtin/mktag.c:98
+#: builtin/mktag.c:97
msgid "tag on stdin did not pass our strict fsck check"
msgstr "标准输入上的标签未通过我们严格的 fsck 检查"
-#: builtin/mktag.c:101
+#: builtin/mktag.c:100
msgid "tag on stdin did not refer to a valid object"
msgstr "标准输入上的标签未指å‘一个有效的对象"
-#: builtin/mktag.c:104 builtin/tag.c:242
+#: builtin/mktag.c:103 builtin/tag.c:243
msgid "unable to write tag file"
msgstr "无法写标签文件"
-#: builtin/mktree.c:66
-msgid "git mktree [-z] [--missing] [--batch]"
-msgstr "git mktree [-z] [--missing] [--batch]"
-
#: builtin/mktree.c:154
msgid "input is NUL terminated"
msgstr "输入以 NUL 字符终止"
@@ -18175,52 +18667,56 @@ msgstr "%s,æº=%s,目标=%s"
msgid "Renaming %s to %s\n"
msgstr "é‡å‘½å %s 至 %s\n"
-#: builtin/mv.c:314 builtin/remote.c:790 builtin/repack.c:857
+#: builtin/mv.c:314 builtin/remote.c:812 builtin/repack.c:861
#, c-format
msgid "renaming '%s' failed"
msgstr "é‡å‘½å '%s' 失败"
-#: builtin/name-rev.c:474
+#: builtin/name-rev.c:524
msgid "git name-rev [<options>] <commit>..."
msgstr "git name-rev [<选项>] <æ交>..."
-#: builtin/name-rev.c:475
+#: builtin/name-rev.c:525
msgid "git name-rev [<options>] --all"
msgstr "git name-rev [<选项>] --all"
-#: builtin/name-rev.c:476
-msgid "git name-rev [<options>] --stdin"
-msgstr "git name-rev [<选项>] --stdin"
+#: builtin/name-rev.c:526
+msgid "git name-rev [<options>] --annotate-stdin"
+msgstr "git name-rev [<选项>] --annotate-stdin"
-#: builtin/name-rev.c:533
+#: builtin/name-rev.c:583
msgid "print only ref-based names (no object names)"
msgstr "åªæ‰“å°åŸºäºŽå¼•ç”¨çš„å称(éžå¯¹è±¡å)"
-#: builtin/name-rev.c:534
+#: builtin/name-rev.c:584
msgid "only use tags to name the commits"
msgstr "åªä½¿ç”¨æ ‡ç­¾æ¥å‘½åæ交"
-#: builtin/name-rev.c:536
+#: builtin/name-rev.c:586
msgid "only use refs matching <pattern>"
msgstr "åªä½¿ç”¨å’Œ <模å¼> 相匹é…的引用"
-#: builtin/name-rev.c:538
+#: builtin/name-rev.c:588
msgid "ignore refs matching <pattern>"
msgstr "忽略和 <模å¼> 相匹é…的引用"
-#: builtin/name-rev.c:540
+#: builtin/name-rev.c:590
msgid "list all commits reachable from all refs"
msgstr "列出å¯ä»¥ä»Žæ‰€æœ‰å¼•ç”¨è®¿é—®çš„æ交"
-#: builtin/name-rev.c:541
-msgid "read from stdin"
-msgstr "从标准输入读å–"
+#: builtin/name-rev.c:591
+msgid "deprecated: use annotate-stdin instead"
+msgstr "已弃用:å–而代之使用 annotate-stdin"
+
+#: builtin/name-rev.c:592
+msgid "annotate text from stdin"
+msgstr "标注标准输入的文字"
-#: builtin/name-rev.c:542
+#: builtin/name-rev.c:593
msgid "allow to print `undefined` names (default)"
msgstr "å…è®¸æ‰“å° `未定义` çš„å称(默认)"
-#: builtin/name-rev.c:548
+#: builtin/name-rev.c:599
msgid "dereference tags in the input (internal use)"
msgstr "åå‘解æžè¾“入中的标签(内部使用)"
@@ -18261,14 +18757,6 @@ msgid ""
"git notes [--ref <notes-ref>] merge [-v | -q] [-s <strategy>] <notes-ref>"
msgstr "git notes [--ref <注解引用>] merge [-v | -q] [-s <策略> ] <注解引用>"
-#: builtin/notes.c:35
-msgid "git notes merge --commit [-v | -q]"
-msgstr "git notes merge --commit [-v | -q]"
-
-#: builtin/notes.c:36
-msgid "git notes merge --abort [-v | -q]"
-msgstr "git notes merge --abort [-v | -q]"
-
#: builtin/notes.c:37
msgid "git notes [--ref <notes-ref>] remove [<object>...]"
msgstr "git notes [--ref <注解引用>] remove [<对象>...]"
@@ -18329,10 +18817,6 @@ msgstr "git notes remove [<对象>]"
msgid "git notes prune [<options>]"
msgstr "git notes prune [<选项>]"
-#: builtin/notes.c:92
-msgid "git notes get-ref"
-msgstr "git notes get-ref"
-
#: builtin/notes.c:97
msgid "Write/edit the notes for the following object:"
msgstr "为下é¢çš„对象写/编辑说明:"
@@ -18364,7 +18848,7 @@ msgstr "ä¸èƒ½å†™æ³¨è§£å¯¹è±¡"
msgid "the note contents have been left in %s"
msgstr "注解内容被留在 %s 中"
-#: builtin/notes.c:240 builtin/tag.c:581
+#: builtin/notes.c:240 builtin/tag.c:582
#, c-format
msgid "could not open or read '%s'"
msgstr "ä¸èƒ½æ‰“å¼€æˆ–è¯»å– '%s'"
@@ -18404,13 +18888,6 @@ msgstr "无法把注解从 '%s' æ‹·è´åˆ° '%s'"
msgid "refusing to %s notes in %s (outside of refs/notes/)"
msgstr "æ‹’ç»å‘ %2$s(在 refs/notes/ 之外)%1$s注解"
-#: builtin/notes.c:374 builtin/notes.c:429 builtin/notes.c:507
-#: builtin/notes.c:519 builtin/notes.c:596 builtin/notes.c:663
-#: builtin/notes.c:813 builtin/notes.c:965 builtin/notes.c:987
-#: builtin/prune-packed.c:25 builtin/receive-pack.c:2487 builtin/tag.c:591
-msgid "too many arguments"
-msgstr "太多å‚æ•°"
-
#: builtin/notes.c:387 builtin/notes.c:676
#, c-format
msgid "no note found for object %s."
@@ -18590,7 +19067,7 @@ msgstr ""
"自动åˆå¹¶è¯´æ˜Žå¤±è´¥ã€‚修改 %s 中的冲çªå¹¶ä¸”使用命令 'git notes merge --commit' æ"
"交结果,或者使用命令 'git notes merge --abort' 终止åˆå¹¶ã€‚\n"
-#: builtin/notes.c:899 builtin/tag.c:594
+#: builtin/notes.c:899 builtin/tag.c:595
#, c-format
msgid "Failed to resolve '%s' as a valid ref."
msgstr "æ— æ³•è§£æž '%s' 为一个有效引用。"
@@ -18608,7 +19085,7 @@ msgstr "å°è¯•åˆ é™¤ä¸å­˜åœ¨çš„注解ä¸æ˜¯ä¸€ä¸ªé”™è¯¯"
msgid "read object names from the standard input"
msgstr "从标准输入读å–对象å称"
-#: builtin/notes.c:956 builtin/prune.c:144 builtin/worktree.c:147
+#: builtin/notes.c:956 builtin/prune.c:144 builtin/worktree.c:148
msgid "do not remove, show only"
msgstr "ä¸åˆ é™¤ï¼Œåªæ˜¾ç¤º"
@@ -18624,7 +19101,7 @@ msgstr "注解引用"
msgid "use notes from <notes-ref>"
msgstr "从 <注解引用> 使用注解"
-#: builtin/notes.c:1036 builtin/stash.c:1818
+#: builtin/notes.c:1036 builtin/stash.c:1802
#, c-format
msgid "unknown subcommand: %s"
msgstr "未知å­å‘½ä»¤ï¼š%s"
@@ -18639,7 +19116,7 @@ msgid ""
"git pack-objects [<options>...] <base-name> [< <ref-list> | < <object-list>]"
msgstr "git pack-objects [<选项>...] <å‰ç¼€å称> [< <引用列表> | < <对象列表>]"
-#: builtin/pack-objects.c:572
+#: builtin/pack-objects.c:570
#, c-format
msgid ""
"write_reuse_object: could not locate %s, expected at offset %<PRIuMAX> in "
@@ -18647,110 +19124,110 @@ msgid ""
msgstr ""
"write_reuse_objectï¼šæ— æ³•å®šä½ %1$s,预期在包 %3$s 中的åç§»é‡ %2$<PRIuMAX> 上"
-#: builtin/pack-objects.c:580
+#: builtin/pack-objects.c:578
#, c-format
msgid "bad packed object CRC for %s"
msgstr "%s 错的包对象 CRC"
-#: builtin/pack-objects.c:591
+#: builtin/pack-objects.c:589
#, c-format
msgid "corrupt packed object for %s"
msgstr "%s æŸå的包对象"
-#: builtin/pack-objects.c:722
+#: builtin/pack-objects.c:720
#, c-format
msgid "recursive delta detected for object %s"
msgstr "å‘现对象 %s 递归 delta"
-#: builtin/pack-objects.c:941
+#: builtin/pack-objects.c:939
#, c-format
msgid "ordered %u objects, expected %<PRIu32>"
msgstr "排åºäº† %u 个对象,预期 %<PRIu32> 个"
-#: builtin/pack-objects.c:1036
+#: builtin/pack-objects.c:1034
#, c-format
msgid "expected object at offset %<PRIuMAX> in pack %s"
msgstr "预期对象在包文件 %2$s çš„åç§»é‡ %1$<PRIuMAX> 上"
-#: builtin/pack-objects.c:1160
+#: builtin/pack-objects.c:1158
msgid "disabling bitmap writing, packs are split due to pack.packSizeLimit"
msgstr "ç¦ç”¨ bitmap 写入,因为 pack.packSizeLimit 设置使得包被切分为多个"
-#: builtin/pack-objects.c:1173
+#: builtin/pack-objects.c:1171
msgid "Writing objects"
msgstr "写入对象中"
-#: builtin/pack-objects.c:1235 builtin/update-index.c:90
+#: builtin/pack-objects.c:1243 builtin/update-index.c:90
#, c-format
msgid "failed to stat %s"
msgstr "无法对 %s 调用 stat"
-#: builtin/pack-objects.c:1268
+#: builtin/pack-objects.c:1276
msgid "failed to write bitmap index"
msgstr "无法写入ä½å›¾ç´¢å¼•"
-#: builtin/pack-objects.c:1294
+#: builtin/pack-objects.c:1302
#, c-format
msgid "wrote %<PRIu32> objects while expecting %<PRIu32>"
msgstr "写入 %<PRIu32> 个对象而预期 %<PRIu32> 个"
-#: builtin/pack-objects.c:1536
+#: builtin/pack-objects.c:1544
msgid "disabling bitmap writing, as some objects are not being packed"
msgstr "ç¦ç”¨ bitmap 写入,因为一些对象将ä¸ä¼šè¢«æ‰“包"
-#: builtin/pack-objects.c:1984
+#: builtin/pack-objects.c:1992
#, c-format
msgid "delta base offset overflow in pack for %s"
msgstr "%s 压缩中 delta 基准å移越界"
-#: builtin/pack-objects.c:1993
+#: builtin/pack-objects.c:2001
#, c-format
msgid "delta base offset out of bound for %s"
msgstr "%s çš„ delta 基准å移越界"
-#: builtin/pack-objects.c:2274
+#: builtin/pack-objects.c:2282
msgid "Counting objects"
msgstr "对象计数中"
-#: builtin/pack-objects.c:2439
+#: builtin/pack-objects.c:2447
#, c-format
msgid "unable to parse object header of %s"
msgstr "无法解æžå¯¹è±¡ %s 头信æ¯"
-#: builtin/pack-objects.c:2509 builtin/pack-objects.c:2525
-#: builtin/pack-objects.c:2535
+#: builtin/pack-objects.c:2517 builtin/pack-objects.c:2533
+#: builtin/pack-objects.c:2543
#, c-format
msgid "object %s cannot be read"
msgstr "对象 %s 无法读å–"
-#: builtin/pack-objects.c:2512 builtin/pack-objects.c:2539
+#: builtin/pack-objects.c:2520 builtin/pack-objects.c:2547
#, c-format
msgid "object %s inconsistent object length (%<PRIuMAX> vs %<PRIuMAX>)"
msgstr "对象 %s ä¸ä¸€è‡´çš„对象长度(%<PRIuMAX> vs %<PRIuMAX>)"
-#: builtin/pack-objects.c:2549
+#: builtin/pack-objects.c:2557
msgid "suboptimal pack - out of memory"
msgstr "次优(suboptimal)打包 - 内存ä¸è¶³"
-#: builtin/pack-objects.c:2864
+#: builtin/pack-objects.c:2872
#, c-format
msgid "Delta compression using up to %d threads"
msgstr "使用 %d 个线程进行压缩"
-#: builtin/pack-objects.c:3003
+#: builtin/pack-objects.c:3011
#, c-format
msgid "unable to pack objects reachable from tag %s"
msgstr "无法为标签 %s 压缩对象"
-#: builtin/pack-objects.c:3089
+#: builtin/pack-objects.c:3097
msgid "Compressing objects"
msgstr "压缩对象中"
-#: builtin/pack-objects.c:3095
+#: builtin/pack-objects.c:3103
msgid "inconsistency with delta count"
msgstr "ä¸ä¸€è‡´çš„差异计数"
-#: builtin/pack-objects.c:3174
+#: builtin/pack-objects.c:3182
#, c-format
msgid ""
"value of uploadpack.blobpackfileuri must be of the form '<object-hash> <pack-"
@@ -18759,24 +19236,24 @@ msgstr ""
"uploadpack.blobpackfileuri çš„å–值必须是 '<object-hash> <pack-hash> <uri>' æ ¼"
"å¼ï¼ˆå¾—到 '%s')"
-#: builtin/pack-objects.c:3177
+#: builtin/pack-objects.c:3185
#, c-format
msgid ""
"object already configured in another uploadpack.blobpackfileuri (got '%s')"
msgstr "对象已ç»åœ¨å¦å¤–çš„ uploadpack.blobpackfileuri 中é…置(得到 '%s')"
-#: builtin/pack-objects.c:3212
+#: builtin/pack-objects.c:3220
#, c-format
msgid "could not get type of object %s in pack %s"
msgstr "无法获得包 %2$s 中对象 %1$s 的类型"
-#: builtin/pack-objects.c:3340 builtin/pack-objects.c:3351
-#: builtin/pack-objects.c:3365
+#: builtin/pack-objects.c:3348 builtin/pack-objects.c:3359
+#: builtin/pack-objects.c:3373
#, c-format
msgid "could not find pack '%s'"
msgstr "ä¸èƒ½æ‰¾åˆ°åŒ… '%s'"
-#: builtin/pack-objects.c:3408
+#: builtin/pack-objects.c:3416
#, c-format
msgid ""
"expected edge object ID, got garbage:\n"
@@ -18785,7 +19262,7 @@ msgstr ""
"预期边界对象(edge object)ID,å´å¾—到垃圾数æ®ï¼š\n"
" %s"
-#: builtin/pack-objects.c:3414
+#: builtin/pack-objects.c:3422
#, c-format
msgid ""
"expected object ID, got garbage:\n"
@@ -18794,242 +19271,238 @@ msgstr ""
"预期对象 ID,å´å¾—到垃圾数æ®ï¼š\n"
" %s"
-#: builtin/pack-objects.c:3507
-msgid "invalid value for --missing"
-msgstr "选项 --missing 的值无效"
-
-#: builtin/pack-objects.c:3532 builtin/pack-objects.c:3619
+#: builtin/pack-objects.c:3540 builtin/pack-objects.c:3627
msgid "cannot open pack index"
msgstr "无法打开包文件索引"
-#: builtin/pack-objects.c:3541
+#: builtin/pack-objects.c:3549
#, c-format
msgid "loose object at %s could not be examined"
msgstr "无法检查 %s 处的æ¾æ•£å¯¹è±¡"
-#: builtin/pack-objects.c:3627
+#: builtin/pack-objects.c:3635
msgid "unable to force loose object"
msgstr "无法强制æ¾æ•£å¯¹è±¡"
-#: builtin/pack-objects.c:3757
+#: builtin/pack-objects.c:3763
#, c-format
msgid "not a rev '%s'"
msgstr "ä¸æ˜¯ä¸€ä¸ªç‰ˆæœ¬ '%s'"
-#: builtin/pack-objects.c:3760 builtin/rev-parse.c:1061
+#: builtin/pack-objects.c:3766 builtin/rev-parse.c:1061
#, c-format
msgid "bad revision '%s'"
msgstr "å的版本 '%s'"
-#: builtin/pack-objects.c:3788
+#: builtin/pack-objects.c:3794
msgid "unable to add recent objects"
msgstr "无法添加最近的对象"
-#: builtin/pack-objects.c:3841
+#: builtin/pack-objects.c:3847
#, c-format
msgid "unsupported index version %s"
msgstr "ä¸æ”¯æŒçš„索引版本 %s"
-#: builtin/pack-objects.c:3845
+#: builtin/pack-objects.c:3851
#, c-format
msgid "bad index version '%s'"
msgstr "å的索引版本 '%s'"
-#: builtin/pack-objects.c:3884
+#: builtin/pack-objects.c:3907
msgid "<version>[,<offset>]"
msgstr "<版本>[,<å移>]"
-#: builtin/pack-objects.c:3885
+#: builtin/pack-objects.c:3908
msgid "write the pack index file in the specified idx format version"
msgstr "用指定的 idx æ ¼å¼ç‰ˆæœ¬æ¥å†™åŒ…索引文件"
-#: builtin/pack-objects.c:3888
+#: builtin/pack-objects.c:3911
msgid "maximum size of each output pack file"
msgstr "æ¯ä¸ªè¾“出包的最大尺寸"
-#: builtin/pack-objects.c:3890
+#: builtin/pack-objects.c:3913
msgid "ignore borrowed objects from alternate object store"
msgstr "忽略从备用对象存储里借用对象"
-#: builtin/pack-objects.c:3892
+#: builtin/pack-objects.c:3915
msgid "ignore packed objects"
msgstr "忽略包对象"
-#: builtin/pack-objects.c:3894
+#: builtin/pack-objects.c:3917
msgid "limit pack window by objects"
msgstr "é™åˆ¶æ‰“包窗å£çš„对象数"
-#: builtin/pack-objects.c:3896
+#: builtin/pack-objects.c:3919
msgid "limit pack window by memory in addition to object limit"
msgstr "除对象数é‡é™åˆ¶å¤–设置打包窗å£çš„内存é™åˆ¶"
-#: builtin/pack-objects.c:3898
+#: builtin/pack-objects.c:3921
msgid "maximum length of delta chain allowed in the resulting pack"
msgstr "打包å…许的 delta 链的最大长度"
-#: builtin/pack-objects.c:3900
+#: builtin/pack-objects.c:3923
msgid "reuse existing deltas"
msgstr "é‡ç”¨å·²å­˜åœ¨çš„ deltas"
-#: builtin/pack-objects.c:3902
+#: builtin/pack-objects.c:3925
msgid "reuse existing objects"
msgstr "é‡ç”¨å·²å­˜åœ¨çš„对象"
-#: builtin/pack-objects.c:3904
+#: builtin/pack-objects.c:3927
msgid "use OFS_DELTA objects"
msgstr "使用 OFS_DELTA 对象"
-#: builtin/pack-objects.c:3906
+#: builtin/pack-objects.c:3929
msgid "use threads when searching for best delta matches"
msgstr "使用线程查询最佳 delta 匹é…"
-#: builtin/pack-objects.c:3908
+#: builtin/pack-objects.c:3931
msgid "do not create an empty pack output"
msgstr "ä¸åˆ›å»ºç©ºçš„包输出"
-#: builtin/pack-objects.c:3910
+#: builtin/pack-objects.c:3933
msgid "read revision arguments from standard input"
msgstr "从标准输入读å–版本å·å‚æ•°"
-#: builtin/pack-objects.c:3912
+#: builtin/pack-objects.c:3935
msgid "limit the objects to those that are not yet packed"
msgstr "é™åˆ¶é‚£äº›å°šæœªæ‰“包的对象"
-#: builtin/pack-objects.c:3915
+#: builtin/pack-objects.c:3938
msgid "include objects reachable from any reference"
msgstr "包括å¯ä»¥ä»Žä»»ä½•å¼•ç”¨è®¿é—®åˆ°çš„对象"
-#: builtin/pack-objects.c:3918
+#: builtin/pack-objects.c:3941
msgid "include objects referred by reflog entries"
msgstr "包括被引用日志引用到的对象"
-#: builtin/pack-objects.c:3921
+#: builtin/pack-objects.c:3944
msgid "include objects referred to by the index"
msgstr "包括被索引引用到的对象"
-#: builtin/pack-objects.c:3924
+#: builtin/pack-objects.c:3947
msgid "read packs from stdin"
msgstr "从标准输入读å–包"
-#: builtin/pack-objects.c:3926
+#: builtin/pack-objects.c:3949
msgid "output pack to stdout"
msgstr "输出包到标准输出"
-#: builtin/pack-objects.c:3928
+#: builtin/pack-objects.c:3951
msgid "include tag objects that refer to objects to be packed"
msgstr "包括那些引用了待打包对象的标签对象"
-#: builtin/pack-objects.c:3930
+#: builtin/pack-objects.c:3953
msgid "keep unreachable objects"
msgstr "ç»´æŒä¸å¯è¾¾çš„对象"
-#: builtin/pack-objects.c:3932
+#: builtin/pack-objects.c:3955
msgid "pack loose unreachable objects"
msgstr "打包æ¾æ•£çš„ä¸å¯è¾¾å¯¹è±¡"
-#: builtin/pack-objects.c:3934
+#: builtin/pack-objects.c:3957
msgid "unpack unreachable objects newer than <time>"
msgstr "将比给定 <时间> 新的无法访问的对象解包"
-#: builtin/pack-objects.c:3937
+#: builtin/pack-objects.c:3960
msgid "use the sparse reachability algorithm"
msgstr "使用稀ç–å¯è¾¾æ€§ç®—法"
-#: builtin/pack-objects.c:3939
+#: builtin/pack-objects.c:3962
msgid "create thin packs"
msgstr "创建精简包"
-#: builtin/pack-objects.c:3941
+#: builtin/pack-objects.c:3964
msgid "create packs suitable for shallow fetches"
msgstr "创建适åˆæµ…克隆仓库获å–的包"
-#: builtin/pack-objects.c:3943
+#: builtin/pack-objects.c:3966
msgid "ignore packs that have companion .keep file"
msgstr "忽略é…有 .keep 文件的包"
-#: builtin/pack-objects.c:3945
+#: builtin/pack-objects.c:3968
msgid "ignore this pack"
msgstr "忽略该 pack"
-#: builtin/pack-objects.c:3947
+#: builtin/pack-objects.c:3970
msgid "pack compression level"
msgstr "打包压缩级别"
-#: builtin/pack-objects.c:3949
+#: builtin/pack-objects.c:3972
msgid "do not hide commits by grafts"
msgstr "显示被移æ¤éšè—çš„æ交"
-#: builtin/pack-objects.c:3951
+#: builtin/pack-objects.c:3974
msgid "use a bitmap index if available to speed up counting objects"
msgstr "使用 bitmap 索引(如果有的è¯ï¼‰ä»¥æ高对象计数时的速度"
-#: builtin/pack-objects.c:3953
+#: builtin/pack-objects.c:3976
msgid "write a bitmap index together with the pack index"
msgstr "在建立包索引的åŒæ—¶åˆ›å»º bitmap 索引"
-#: builtin/pack-objects.c:3957
+#: builtin/pack-objects.c:3980
msgid "write a bitmap index if possible"
msgstr "如果å¯èƒ½ï¼Œå†™ bitmap 索引"
-#: builtin/pack-objects.c:3961
+#: builtin/pack-objects.c:3984
msgid "handling for missing objects"
msgstr "处ç†ä¸¢å¤±çš„对象"
-#: builtin/pack-objects.c:3964
+#: builtin/pack-objects.c:3987
msgid "do not pack objects in promisor packfiles"
msgstr "ä¸è¦æ‰“包 promisor 包文件中的对象"
-#: builtin/pack-objects.c:3966
+#: builtin/pack-objects.c:3989
msgid "respect islands during delta compression"
msgstr "在增é‡åŽ‹ç¼©æ—¶å‚考数æ®å²›"
-#: builtin/pack-objects.c:3968
+#: builtin/pack-objects.c:3991
msgid "protocol"
msgstr "åè®®"
-#: builtin/pack-objects.c:3969
+#: builtin/pack-objects.c:3992
msgid "exclude any configured uploadpack.blobpackfileuri with this protocol"
msgstr "使用此å议排除任何已é…置的 uploadpack.blobpackfileuri"
-#: builtin/pack-objects.c:4002
+#: builtin/pack-objects.c:4027
#, c-format
msgid "delta chain depth %d is too deep, forcing %d"
msgstr "增é‡é“¾æ·±åº¦ %d 太深了,强制为 %d"
-#: builtin/pack-objects.c:4007
+#: builtin/pack-objects.c:4032
#, c-format
msgid "pack.deltaCacheLimit is too high, forcing %d"
msgstr "é…ç½® pack.deltaCacheLimit 太高了,强制为 %d"
-#: builtin/pack-objects.c:4063
+#: builtin/pack-objects.c:4088
msgid "--max-pack-size cannot be used to build a pack for transfer"
msgstr "ä¸èƒ½ä½¿ç”¨ --max-pack-size æ¥æž„建传输用的包文件"
-#: builtin/pack-objects.c:4065
+#: builtin/pack-objects.c:4090
msgid "minimum pack size limit is 1 MiB"
msgstr "最å°çš„包文件大å°æ˜¯ 1 MiB"
-#: builtin/pack-objects.c:4070
+#: builtin/pack-objects.c:4095
msgid "--thin cannot be used to build an indexable pack"
msgstr "--thin ä¸èƒ½ç”¨äºŽåˆ›å»ºä¸€ä¸ªå¯ç´¢å¼•åŒ…"
-#: builtin/pack-objects.c:4079
+#: builtin/pack-objects.c:4104
msgid "cannot use --filter without --stdout"
msgstr "ä¸èƒ½åœ¨æ²¡æœ‰ --stdout 的情况下使用 --filter"
-#: builtin/pack-objects.c:4081
+#: builtin/pack-objects.c:4106
msgid "cannot use --filter with --stdin-packs"
msgstr "ä¸èƒ½åŒæ—¶ä½¿ç”¨ --filter å’Œ --stdin-packs"
-#: builtin/pack-objects.c:4085
+#: builtin/pack-objects.c:4110
msgid "cannot use internal rev list with --stdin-packs"
msgstr "ä¸èƒ½åŒæ—¶ä½¿ç”¨å†…部版本列表和 --stdin-packs"
-#: builtin/pack-objects.c:4144
+#: builtin/pack-objects.c:4169
msgid "Enumerating objects"
msgstr "枚举对象中"
-#: builtin/pack-objects.c:4180
+#: builtin/pack-objects.c:4210
#, c-format
msgid ""
"Total %<PRIu32> (delta %<PRIu32>), reused %<PRIu32> (delta %<PRIu32>), pack-"
@@ -19063,10 +19536,6 @@ msgstr "打包一切"
msgid "prune loose refs (default)"
msgstr "清除æ¾æ•£çš„引用(默认)"
-#: builtin/prune-packed.c:6
-msgid "git prune-packed [-n | --dry-run] [-q | --quiet]"
-msgstr "git prune-packed [-n | --dry-run] [-q | --quiet]"
-
#: builtin/prune.c:14
msgid "git prune [-n] [-v] [--progress] [--expire <time>] [--] [<head>...]"
msgstr "git prune [-n] [-v] [--progress] [--expire <时间>] [--] [<head>...]"
@@ -19087,11 +19556,6 @@ msgstr "é™åˆ¶é历 promisor 包以外的对象"
msgid "cannot prune in a precious-objects repo"
msgstr "ä¸èƒ½åœ¨çå“仓库中执行清ç†æ“作"
-#: builtin/pull.c:45 builtin/pull.c:47
-#, c-format
-msgid "Invalid value for %s: %s"
-msgstr "%s 的值无效:%s"
-
#: builtin/pull.c:67
msgid "git pull [<options>] [<repository> [<refspec>...]]"
msgstr "git pull [<选项>] [<仓库> [<引用规格>...]]"
@@ -19116,7 +19580,7 @@ msgstr "å…许快进å¼"
msgid "control use of pre-merge-commit and commit-msg hooks"
msgstr "控制 pre-merge-commit å’Œ commit-msg é’©å­çš„使用"
-#: builtin/pull.c:171 parse-options.h:340
+#: builtin/pull.c:171 parse-options.h:371
msgid "automatically stash/stash pop before and after"
msgstr "在æ“作å‰åŽæ‰§è¡Œè‡ªåŠ¨è´®è—和弹出贮è—"
@@ -19132,11 +19596,6 @@ msgstr "强制覆盖本地分支"
msgid "number of submodules pulled in parallel"
msgstr "并å‘拉å–çš„å­æ¨¡ç»„çš„æ•°é‡"
-#: builtin/pull.c:321
-#, c-format
-msgid "Invalid value for pull.ff: %s"
-msgstr "pull.ff çš„å–值无效:%s"
-
#: builtin/pull.c:449
msgid ""
"There is no candidate for rebasing against among the refs that you just "
@@ -19164,7 +19623,7 @@ msgstr ""
"您è¦æ±‚从远程 '%s' 拉å–,但是未指定一个分支。因为这ä¸æ˜¯å½“å‰\n"
"分支默认的远程仓库,您必须在命令行中指定一个分支å。"
-#: builtin/pull.c:460 builtin/rebase.c:951
+#: builtin/pull.c:460 builtin/rebase.c:978
msgid "You are not currently on a branch."
msgstr "您当å‰ä¸åœ¨ä¸€ä¸ªåˆ†æ”¯ä¸Šã€‚"
@@ -19181,16 +19640,16 @@ msgid "See git-pull(1) for details."
msgstr "è¯¦è§ git-pull(1)。"
#: builtin/pull.c:467 builtin/pull.c:473 builtin/pull.c:482
-#: builtin/rebase.c:957
+#: builtin/rebase.c:984
msgid "<remote>"
msgstr "<远程>"
#: builtin/pull.c:467 builtin/pull.c:482 builtin/pull.c:487
-#: contrib/scalar/scalar.c:375
+#: contrib/scalar/scalar.c:374
msgid "<branch>"
msgstr "<分支>"
-#: builtin/pull.c:475 builtin/rebase.c:949
+#: builtin/pull.c:475 builtin/rebase.c:976
msgid "There is no tracking information for the current branch."
msgstr "当å‰åˆ†æ”¯æ²¡æœ‰è·Ÿè¸ªä¿¡æ¯ã€‚"
@@ -19244,19 +19703,19 @@ msgstr ""
"缺çœçš„é…置项。您也å¯ä»¥åœ¨æ¯æ¬¡æ‰§è¡Œ pull 命令时添加 --rebaseã€--no-rebase,\n"
"或者 --ff-only å‚数覆盖缺çœè®¾ç½®ã€‚\n"
-#: builtin/pull.c:1046
+#: builtin/pull.c:1047
msgid "Updating an unborn branch with changes added to the index."
msgstr "更新尚未诞生的分支,å˜æ›´æ·»åŠ è‡³ç´¢å¼•ã€‚"
-#: builtin/pull.c:1050
+#: builtin/pull.c:1051
msgid "pull with rebase"
msgstr "å˜åŸºå¼æ‹‰å–"
-#: builtin/pull.c:1051
+#: builtin/pull.c:1052
msgid "please commit or stash them."
msgstr "请æ交或贮è—它们。"
-#: builtin/pull.c:1076
+#: builtin/pull.c:1077
#, c-format
msgid ""
"fetch updated the current branch head.\n"
@@ -19266,7 +19725,7 @@ msgstr ""
"fetch 更新了当å‰çš„分支。快进您的工作区\n"
"至æ交 %s。"
-#: builtin/pull.c:1082
+#: builtin/pull.c:1083
#, c-format
msgid ""
"Cannot fast-forward your working tree.\n"
@@ -19283,23 +19742,23 @@ msgstr ""
"$ git reset --hard\n"
"æ¢å¤ä¹‹å‰çš„状æ€ã€‚"
-#: builtin/pull.c:1097
+#: builtin/pull.c:1098
msgid "Cannot merge multiple branches into empty head."
msgstr "无法将多个分支åˆå¹¶åˆ°ç©ºåˆ†æ”¯ã€‚"
-#: builtin/pull.c:1102
+#: builtin/pull.c:1103
msgid "Cannot rebase onto multiple branches."
msgstr "无法å˜åŸºåˆ°å¤šä¸ªåˆ†æ”¯ã€‚"
-#: builtin/pull.c:1104
+#: builtin/pull.c:1105
msgid "Cannot fast-forward to multiple branches."
msgstr "无法快进到多个分支。"
-#: builtin/pull.c:1119
+#: builtin/pull.c:1120
msgid "Need to specify how to reconcile divergent branches."
msgstr "需è¦æŒ‡å®šå¦‚何调和å离的分支。"
-#: builtin/pull.c:1133
+#: builtin/pull.c:1134
msgid "cannot rebase with locally recorded submodule modifications"
msgstr "本地å­æ¨¡ç»„中有修改,无法å˜åŸº"
@@ -19462,7 +19921,7 @@ msgstr "推é€åˆ° %s\n"
msgid "failed to push some refs to '%s'"
msgstr "无法推é€ä¸€äº›å¼•ç”¨åˆ° '%s'"
-#: builtin/push.c:544 builtin/submodule--helper.c:3259
+#: builtin/push.c:544 builtin/submodule--helper.c:3377
msgid "repository"
msgstr "仓库"
@@ -19700,11 +20159,11 @@ msgstr "调试 unpack-trees"
msgid "suppress feedback messages"
msgstr "抑制å馈信æ¯"
-#: builtin/read-tree.c:183
+#: builtin/read-tree.c:190
msgid "You need to resolve your current index first"
msgstr "您需è¦å…ˆè§£å†³å½“å‰ç´¢å¼•çš„冲çª"
-#: builtin/rebase.c:35
+#: builtin/rebase.c:36
msgid ""
"git rebase [-i] [options] [--exec <cmd>] [--onto <newbase> | --keep-base] "
"[<upstream> [<branch>]]"
@@ -19712,54 +20171,50 @@ msgstr ""
"git rebase [-i] [options] [--exec <命令>] [--onto <新基线> | --keep-base] [<"
"上游> [<分支>]]"
-#: builtin/rebase.c:37
+#: builtin/rebase.c:38
msgid ""
"git rebase [-i] [options] [--exec <cmd>] [--onto <newbase>] --root [<branch>]"
msgstr ""
"git rebase [-i] [选项] [--exec <命令>] [--onto <新基线>] --root [<分支>]"
-#: builtin/rebase.c:39
-msgid "git rebase --continue | --abort | --skip | --edit-todo"
-msgstr "git rebase --continue | --abort | --skip | --edit-todo"
-
-#: builtin/rebase.c:230
+#: builtin/rebase.c:231
#, c-format
msgid "could not create temporary %s"
msgstr "无法创建临时的 %s"
-#: builtin/rebase.c:236
+#: builtin/rebase.c:237
msgid "could not mark as interactive"
msgstr "无法标记为交互å¼"
-#: builtin/rebase.c:289
+#: builtin/rebase.c:290
msgid "could not generate todo list"
msgstr "无法生æˆå¾…办列表"
-#: builtin/rebase.c:331
+#: builtin/rebase.c:332
msgid "a base commit must be provided with --upstream or --onto"
msgstr "使用 --upstream 或 --onto å¿…é¡»æ供一个基线æ交"
-#: builtin/rebase.c:390
+#: builtin/rebase.c:391
#, c-format
msgid "%s requires the merge backend"
msgstr "%s 需è¦åˆå¹¶åŽç«¯"
-#: builtin/rebase.c:432
+#: builtin/rebase.c:433
#, c-format
msgid "could not get 'onto': '%s'"
msgstr "æ— æ³•èŽ·å– 'onto':'%s'"
-#: builtin/rebase.c:449
+#: builtin/rebase.c:450
#, c-format
msgid "invalid orig-head: '%s'"
msgstr "无效的原始 head:'%s'"
-#: builtin/rebase.c:474
+#: builtin/rebase.c:475
#, c-format
msgid "ignoring invalid allow_rerere_autoupdate: '%s'"
msgstr "忽略无效的 allow_rerere_autoupdate:'%s'"
-#: builtin/rebase.c:597
+#: builtin/rebase.c:600
msgid ""
"Resolve all conflicts manually, mark them as resolved with\n"
"\"git add/rm <conflicted_files>\", then run \"git rebase --continue\".\n"
@@ -19772,7 +20227,7 @@ msgstr ""
"\"git rebase --skip\" 命令跳过这个æ交。如果想è¦ç»ˆæ­¢æ‰§è¡Œå¹¶å›žåˆ°\n"
"\"git rebase\" 执行之å‰çš„状æ€ï¼Œæ‰§è¡Œ \"git rebase --abort\"。"
-#: builtin/rebase.c:680
+#: builtin/rebase.c:685
#, c-format
msgid ""
"\n"
@@ -19790,14 +20245,19 @@ msgstr ""
"\n"
"å› æ­¤ git 无法对其å˜åŸºã€‚"
-#: builtin/rebase.c:925
+#: builtin/rebase.c:836
+#, c-format
+msgid "could not switch to %s"
+msgstr "无法切æ¢åˆ° %s"
+
+#: builtin/rebase.c:952
#, c-format
msgid ""
-"unrecognized empty type '%s'; valid values are \"drop\", \"keep\", and \"ask"
-"\"."
+"unrecognized empty type '%s'; valid values are \"drop\", \"keep\", and "
+"\"ask\"."
msgstr "无法识别的空类型 '%s';有效值有 \"drop\"ã€\"keep\" å’Œ \"ask\"。"
-#: builtin/rebase.c:943
+#: builtin/rebase.c:970
#, c-format
msgid ""
"%s\n"
@@ -19814,7 +20274,7 @@ msgstr ""
" git rebase '<branch>'\n"
"\n"
-#: builtin/rebase.c:959
+#: builtin/rebase.c:986
#, c-format
msgid ""
"If you wish to set tracking information for this branch you can do so with:\n"
@@ -19827,179 +20287,179 @@ msgstr ""
" git branch --set-upstream-to=%s/<branch> %s\n"
"\n"
-#: builtin/rebase.c:989
+#: builtin/rebase.c:1016
msgid "exec commands cannot contain newlines"
msgstr "exec 命令ä¸èƒ½åŒ…å«æ¢è¡Œç¬¦"
-#: builtin/rebase.c:993
+#: builtin/rebase.c:1020
msgid "empty exec command"
msgstr "空的 exec 命令"
-#: builtin/rebase.c:1023
+#: builtin/rebase.c:1051
msgid "rebase onto given branch instead of upstream"
msgstr "å˜åŸºåˆ°ç»™å®šçš„分支而éžä¸Šæ¸¸"
-#: builtin/rebase.c:1025
+#: builtin/rebase.c:1053
msgid "use the merge-base of upstream and branch as the current base"
msgstr "使用上游和分支的åˆå¹¶åŸºçº¿åšä¸ºå½“å‰åŸºçº¿"
-#: builtin/rebase.c:1027
+#: builtin/rebase.c:1055
msgid "allow pre-rebase hook to run"
msgstr "å…许执行 pre-rebase é’©å­"
-#: builtin/rebase.c:1029
+#: builtin/rebase.c:1057
msgid "be quiet. implies --no-stat"
msgstr "安é™ã€‚暗示 --no-stat"
-#: builtin/rebase.c:1032
+#: builtin/rebase.c:1060
msgid "display a diffstat of what changed upstream"
msgstr "显示上游å˜åŒ–的差异统计"
-#: builtin/rebase.c:1035
+#: builtin/rebase.c:1063
msgid "do not show diffstat of what changed upstream"
msgstr "ä¸æ˜¾ç¤ºä¸Šæ¸¸å˜åŒ–的差异统计"
-#: builtin/rebase.c:1038
+#: builtin/rebase.c:1066
msgid "add a Signed-off-by trailer to each commit"
msgstr "为æ¯ä¸€ä¸ªæ交添加 Signed-off-by 尾注"
-#: builtin/rebase.c:1041
+#: builtin/rebase.c:1069
msgid "make committer date match author date"
msgstr "使æ交者日期和作者日期一致"
-#: builtin/rebase.c:1043
+#: builtin/rebase.c:1071
msgid "ignore author date and use current date"
msgstr "忽略作者日期,使用当å‰æ—¥æœŸ"
-#: builtin/rebase.c:1045
+#: builtin/rebase.c:1073
msgid "synonym of --reset-author-date"
msgstr "--reset-author-date çš„åŒä¹‰è¯"
-#: builtin/rebase.c:1047 builtin/rebase.c:1051
+#: builtin/rebase.c:1075 builtin/rebase.c:1079
msgid "passed to 'git apply'"
msgstr "传递给 'git apply'"
-#: builtin/rebase.c:1049
+#: builtin/rebase.c:1077
msgid "ignore changes in whitespace"
msgstr "忽略空白字符的å˜æ›´"
-#: builtin/rebase.c:1053 builtin/rebase.c:1056
+#: builtin/rebase.c:1081 builtin/rebase.c:1084
msgid "cherry-pick all commits, even if unchanged"
msgstr "拣选所有æ交,å³ä½¿æœªä¿®æ”¹"
-#: builtin/rebase.c:1058
+#: builtin/rebase.c:1086
msgid "continue"
msgstr "继续"
-#: builtin/rebase.c:1061
+#: builtin/rebase.c:1089
msgid "skip current patch and continue"
msgstr "跳过当å‰è¡¥ä¸å¹¶ç»§ç»­"
-#: builtin/rebase.c:1063
+#: builtin/rebase.c:1091
msgid "abort and check out the original branch"
msgstr "终止并检出原有分支"
-#: builtin/rebase.c:1066
+#: builtin/rebase.c:1094
msgid "abort but keep HEAD where it is"
msgstr "终止但ä¿æŒ HEAD ä¸å˜"
-#: builtin/rebase.c:1067
+#: builtin/rebase.c:1095
msgid "edit the todo list during an interactive rebase"
msgstr "在交互å¼å˜åŸºä¸­ç¼–辑待办列表"
-#: builtin/rebase.c:1070
+#: builtin/rebase.c:1098
msgid "show the patch file being applied or merged"
msgstr "显示正在应用或åˆå¹¶çš„è¡¥ä¸æ–‡ä»¶"
-#: builtin/rebase.c:1073
+#: builtin/rebase.c:1101
msgid "use apply strategies to rebase"
msgstr "使用应用策略进行å˜åŸº"
-#: builtin/rebase.c:1077
+#: builtin/rebase.c:1105
msgid "use merging strategies to rebase"
msgstr "使用åˆå¹¶ç­–略进行å˜åŸº"
-#: builtin/rebase.c:1081
+#: builtin/rebase.c:1109
msgid "let the user edit the list of commits to rebase"
msgstr "让用户编辑è¦å˜åŸºçš„æ交列表"
-#: builtin/rebase.c:1085
+#: builtin/rebase.c:1113
msgid "(DEPRECATED) try to recreate merges instead of ignoring them"
msgstr "(已弃用)å°è¯•é‡å»ºåˆå¹¶æ交而éžå¿½ç•¥å®ƒä»¬"
-#: builtin/rebase.c:1090
+#: builtin/rebase.c:1118
msgid "how to handle commits that become empty"
msgstr "如何处ç†æˆä¸ºç©ºæ交的æ交"
-#: builtin/rebase.c:1093
+#: builtin/rebase.c:1121
msgid "keep commits which start empty"
msgstr "ä¿ç•™åˆå§‹ä¸ºç©ºçš„æ交"
-#: builtin/rebase.c:1097
+#: builtin/rebase.c:1125
msgid "move commits that begin with squash!/fixup! under -i"
msgstr "在 -i 交互模å¼ä¸‹ï¼Œç§»åŠ¨ä»¥ squash!/fixup! 开头的æ交"
-#: builtin/rebase.c:1104
+#: builtin/rebase.c:1132
msgid "add exec lines after each commit of the editable list"
msgstr "å¯ç¼–辑列表的æ¯ä¸€ä¸ªæ交下é¢å¢žåŠ ä¸€è¡Œ exec"
-#: builtin/rebase.c:1108
+#: builtin/rebase.c:1136
msgid "allow rebasing commits with empty messages"
msgstr "å…许针对空æ交说明的æ交å˜åŸº"
-#: builtin/rebase.c:1112
+#: builtin/rebase.c:1140
msgid "try to rebase merges instead of skipping them"
msgstr "å°è¯•å¯¹åˆå¹¶æ交å˜åŸºè€Œä¸æ˜¯å¿½ç•¥å®ƒä»¬"
-#: builtin/rebase.c:1115
+#: builtin/rebase.c:1143
msgid "use 'merge-base --fork-point' to refine upstream"
msgstr "使用 'merge-base --fork-point' æ¥ä¼˜åŒ–上游"
-#: builtin/rebase.c:1117
+#: builtin/rebase.c:1145
msgid "use the given merge strategy"
msgstr "使用给定的åˆå¹¶ç­–ç•¥"
-#: builtin/rebase.c:1119 builtin/revert.c:115
+#: builtin/rebase.c:1147 builtin/revert.c:115
msgid "option"
msgstr "选项"
-#: builtin/rebase.c:1120
+#: builtin/rebase.c:1148
msgid "pass the argument through to the merge strategy"
msgstr "å°†å‚数传递给åˆå¹¶ç­–ç•¥"
-#: builtin/rebase.c:1123
+#: builtin/rebase.c:1151
msgid "rebase all reachable commits up to the root(s)"
msgstr "将所有å¯è¾¾çš„æ交å˜åŸºåˆ°æ ¹æ交"
-#: builtin/rebase.c:1126
+#: builtin/rebase.c:1154
msgid "automatically re-schedule any `exec` that fails"
msgstr "自动é‡æ–°å®‰æŽ’任何失败的 `exec`"
-#: builtin/rebase.c:1128
+#: builtin/rebase.c:1156
msgid "apply all changes, even those already present upstream"
msgstr "应用所有更改,甚至那些已在上游存在的"
-#: builtin/rebase.c:1149
+#: builtin/rebase.c:1177
msgid "It looks like 'git am' is in progress. Cannot rebase."
msgstr "çœ‹èµ·æ¥ 'git am' 正在执行中。无法å˜åŸºã€‚"
-#: builtin/rebase.c:1180
+#: builtin/rebase.c:1208
msgid "--preserve-merges was replaced by --rebase-merges"
msgstr "--preserve-merges 被 --rebase-merges 代替。"
-#: builtin/rebase.c:1202
+#: builtin/rebase.c:1230
msgid "No rebase in progress?"
msgstr "没有正在进行的å˜åŸºï¼Ÿ"
-#: builtin/rebase.c:1206
+#: builtin/rebase.c:1234
msgid "The --edit-todo action can only be used during interactive rebase."
msgstr "动作 --edit-todo åªèƒ½ç”¨åœ¨äº¤äº’å¼å˜åŸºè¿‡ç¨‹ä¸­ã€‚"
-#: builtin/rebase.c:1229 t/helper/test-fast-rebase.c:122
+#: builtin/rebase.c:1257 t/helper/test-fast-rebase.c:122
msgid "Cannot read HEAD"
msgstr "ä¸èƒ½è¯»å– HEAD"
-#: builtin/rebase.c:1241
+#: builtin/rebase.c:1269
msgid ""
"You must edit all merge conflicts and then\n"
"mark them as resolved using git add"
@@ -20007,16 +20467,16 @@ msgstr ""
"您必须编辑所有的åˆå¹¶å†²çªï¼Œç„¶åŽé€šè¿‡ git add\n"
"命令将它们标记为已解决"
-#: builtin/rebase.c:1260
+#: builtin/rebase.c:1287
msgid "could not discard worktree changes"
msgstr "无法丢弃工作区å˜æ›´"
-#: builtin/rebase.c:1279
+#: builtin/rebase.c:1308
#, c-format
msgid "could not move back to %s"
msgstr "无法移回 %s"
-#: builtin/rebase.c:1325
+#: builtin/rebase.c:1354
#, c-format
msgid ""
"It seems that there is already a %s directory, and\n"
@@ -20035,122 +20495,117 @@ msgstr ""
"\t%s\n"
"然åŽå†é‡æ–°æ‰§è¡Œã€‚ 为é¿å…丢失é‡è¦æ•°æ®ï¼Œæˆ‘å·²ç»åœæ­¢å½“å‰æ“作。\n"
-#: builtin/rebase.c:1353
+#: builtin/rebase.c:1382
msgid "switch `C' expects a numerical value"
msgstr "开关 `C' 期望一个数字值"
-#: builtin/rebase.c:1395
+#: builtin/rebase.c:1424
#, c-format
msgid "Unknown mode: %s"
msgstr "未知模å¼ï¼š%s"
-#: builtin/rebase.c:1434
+#: builtin/rebase.c:1463
msgid "--strategy requires --merge or --interactive"
msgstr "--strategy éœ€è¦ --merge 或 --interactive"
-#: builtin/rebase.c:1463
+#: builtin/rebase.c:1492
msgid "apply options and merge options cannot be used together"
msgstr "应用选项和åˆå¹¶é€‰é¡¹ä¸èƒ½åŒæ—¶ä½¿ç”¨"
-#: builtin/rebase.c:1476
+#: builtin/rebase.c:1505
#, c-format
msgid "Unknown rebase backend: %s"
msgstr "未知的å˜åŸºåŽç«¯ï¼š%s"
-#: builtin/rebase.c:1505
+#: builtin/rebase.c:1534
msgid "--reschedule-failed-exec requires --exec or --interactive"
msgstr "--reschedule-failed-exec éœ€è¦ --exec 或 --interactive"
-#: builtin/rebase.c:1536
+#: builtin/rebase.c:1565
#, c-format
msgid "invalid upstream '%s'"
msgstr "无效的上游 '%s'"
-#: builtin/rebase.c:1542
+#: builtin/rebase.c:1571
msgid "Could not create new root commit"
msgstr "ä¸èƒ½åˆ›å»ºæ–°çš„æ ¹æ交"
-#: builtin/rebase.c:1568
+#: builtin/rebase.c:1597
#, c-format
msgid "'%s': need exactly one merge base with branch"
msgstr "'%s':åªéœ€è¦ä¸Žåˆ†æ”¯çš„一个åˆå¹¶åŸºçº¿"
-#: builtin/rebase.c:1571
+#: builtin/rebase.c:1600
#, c-format
msgid "'%s': need exactly one merge base"
msgstr "'%s':åªéœ€è¦ä¸€ä¸ªåˆå¹¶åŸºçº¿"
-#: builtin/rebase.c:1580
+#: builtin/rebase.c:1609
#, c-format
msgid "Does not point to a valid commit '%s'"
msgstr "没有指å‘一个有效的æ交 '%s'"
-#: builtin/rebase.c:1607
+#: builtin/rebase.c:1636
#, c-format
msgid "no such branch/commit '%s'"
msgstr "无此分支/æ交 '%s'"
-#: builtin/rebase.c:1618 builtin/submodule--helper.c:39
-#: builtin/submodule--helper.c:2659
+#: builtin/rebase.c:1647 builtin/submodule--helper.c:43
+#: builtin/submodule--helper.c:2477
#, c-format
msgid "No such ref: %s"
msgstr "没有这样的引用:%s"
-#: builtin/rebase.c:1629
+#: builtin/rebase.c:1658
msgid "Could not resolve HEAD to a revision"
msgstr "无法将 HEAD 解æžä¸ºä¸€ä¸ªç‰ˆæœ¬"
-#: builtin/rebase.c:1650
+#: builtin/rebase.c:1679
msgid "Please commit or stash them."
msgstr "请æ交或贮è—修改。"
-#: builtin/rebase.c:1686
-#, c-format
-msgid "could not switch to %s"
-msgstr "无法切æ¢åˆ° %s"
-
-#: builtin/rebase.c:1697
+#: builtin/rebase.c:1714
msgid "HEAD is up to date."
msgstr "HEAD 是最新的。"
-#: builtin/rebase.c:1699
+#: builtin/rebase.c:1716
#, c-format
msgid "Current branch %s is up to date.\n"
msgstr "当å‰åˆ†æ”¯ %s 是最新的。\n"
-#: builtin/rebase.c:1707
+#: builtin/rebase.c:1724
msgid "HEAD is up to date, rebase forced."
msgstr "HEAD 是最新的,强制å˜åŸºã€‚"
-#: builtin/rebase.c:1709
+#: builtin/rebase.c:1726
#, c-format
msgid "Current branch %s is up to date, rebase forced.\n"
msgstr "当å‰åˆ†æ”¯ %s 是最新的,强制å˜åŸºã€‚\n"
-#: builtin/rebase.c:1717
+#: builtin/rebase.c:1734
msgid "The pre-rebase hook refused to rebase."
msgstr "pre-rebase é’©å­æ‹’ç»äº†å˜åŸºæ“作。"
-#: builtin/rebase.c:1724
+#: builtin/rebase.c:1741
#, c-format
msgid "Changes to %s:\n"
msgstr "到 %s çš„å˜æ›´ï¼š\n"
-#: builtin/rebase.c:1727
+#: builtin/rebase.c:1744
#, c-format
msgid "Changes from %s to %s:\n"
msgstr "从 %s 到 %s çš„å˜æ›´ï¼š\n"
-#: builtin/rebase.c:1752
+#: builtin/rebase.c:1769
#, c-format
msgid "First, rewinding head to replay your work on top of it...\n"
msgstr "首先,回退头指针以便在其上é‡æ”¾æ‚¨çš„工作...\n"
-#: builtin/rebase.c:1761
+#: builtin/rebase.c:1781
msgid "Could not detach HEAD"
msgstr "无法分离头指针"
-#: builtin/rebase.c:1770
+#: builtin/rebase.c:1790
#, c-format
msgid "Fast-forwarded %s to %s.\n"
msgstr "快进 %s 到 %s。\n"
@@ -20159,7 +20614,7 @@ msgstr "快进 %s 到 %s。\n"
msgid "git receive-pack <git-dir>"
msgstr "git receive-pack <仓库目录>"
-#: builtin/receive-pack.c:1275
+#: builtin/receive-pack.c:1263
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"
@@ -20185,7 +20640,7 @@ msgstr ""
"è‹¥è¦å±è”½æ­¤ä¿¡æ¯ä¸”ä¿æŒé»˜è®¤è¡Œä¸ºï¼Œè®¾ç½® 'receive.denyCurrentBranch'\n"
"é…ç½®å˜é‡ä¸º 'refuse'。"
-#: builtin/receive-pack.c:1295
+#: builtin/receive-pack.c:1283
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"
@@ -20204,79 +20659,110 @@ msgstr ""
"\n"
"è‹¥è¦å±è”½æ­¤ä¿¡æ¯ï¼Œæ‚¨å¯ä»¥è®¾ç½®å®ƒä¸º 'refuse'。"
-#: builtin/receive-pack.c:2474
+#: builtin/receive-pack.c:2476
msgid "quiet"
msgstr "é™é»˜æ¨¡å¼"
-#: builtin/receive-pack.c:2489
+#: builtin/receive-pack.c:2491
msgid "you must specify a directory"
msgstr "您必须指定一个目录"
-#: builtin/reflog.c:17
+#: builtin/reflog.c:9
+msgid "git reflog [show] [<log-options>] [<ref>]"
+msgstr "git reflog [show] [<log 选项>] [<引用>]"
+
+#: builtin/reflog.c:12
msgid ""
-"git reflog expire [--expire=<time>] [--expire-unreachable=<time>] [--"
-"rewrite] [--updateref] [--stale-fix] [--dry-run | -n] [--verbose] [--all] "
-"<refs>..."
+"git reflog expire [--expire=<time>] [--expire-unreachable=<time>]\n"
+" [--rewrite] [--updateref] [--stale-fix]\n"
+" [--dry-run | -n] [--verbose] [--all [--single-worktree] | "
+"<refs>...]"
msgstr ""
-"git reflog expire [--expire=<时间>] [--expire-unreachable=<时间>] [--"
-"rewrite] [--updateref] [--stale-fix] [--dry-run | -n] [--verbose] [--all] <引"
-"用>..."
+"git reflog expire [--expire=<时间>] [--expire-unreachable=<时间>]\n"
+" [--rewrite] [--updateref] [--stale-fix]\n"
+" [--dry-run | -n] [--verbose] [--all [--single-worktree] | <"
+"引用>...]"
-#: builtin/reflog.c:22
+#: builtin/reflog.c:17
msgid ""
-"git reflog delete [--rewrite] [--updateref] [--dry-run | -n] [--verbose] "
-"<refs>..."
+"git reflog delete [--rewrite] [--updateref]\n"
+" [--dry-run | -n] [--verbose] <ref>@{<specifier>}..."
msgstr ""
-"git reflog delete [--rewrite] [--updateref] [--dry-run | -n] [--verbose] <引"
-"用>..."
+"git reflog delete [--rewrite] [--updateref]\n"
+" [--dry-run | -n] [--verbose] <引用>@{<指定符>}..."
-#: builtin/reflog.c:25
+#: builtin/reflog.c:21
msgid "git reflog exists <ref>"
msgstr "git reflog exists <引用>"
-#: builtin/reflog.c:585 builtin/reflog.c:590
+#: builtin/reflog.c:197 builtin/reflog.c:211
#, c-format
-msgid "'%s' is not a valid timestamp"
-msgstr "'%s' ä¸æ˜¯ä¸€ä¸ªæœ‰æ•ˆçš„时间戳"
+msgid "invalid timestamp '%s' given to '--%s'"
+msgstr "给 '--%2$s' 的时间戳 '%1$s' 无效"
+
+#: builtin/reflog.c:240 builtin/reflog.c:359
+msgid "do not actually prune any entries"
+msgstr "ä¸è¦å®žé™…清除任何æ¡ç›®"
+
+#: builtin/reflog.c:243 builtin/reflog.c:362
+msgid ""
+"rewrite the old SHA1 with the new SHA1 of the entry that now precedes it"
+msgstr "用现在å‰ç»§æ¡ç›®çš„ SHA1 æ¥é‡å†™æ—§çš„ SHA1"
-#: builtin/reflog.c:631
+#: builtin/reflog.c:246 builtin/reflog.c:365
+msgid "update the reference to the value of the top reflog entry"
+msgstr "更新引用至引用日志顶部的æ¡ç›®"
+
+#: builtin/reflog.c:248 builtin/reflog.c:367
+msgid "print extra information on screen"
+msgstr "在å±å¹•ä¸Šæ‰“å°é¢å¤–ä¿¡æ¯"
+
+#: builtin/reflog.c:249 builtin/reflog.c:253
+msgid "timestamp"
+msgstr "时间戳"
+
+#: builtin/reflog.c:250
+msgid "prune entries older than the specified time"
+msgstr "清除早于指定时间之å‰çš„æ¡ç›®"
+
+#: builtin/reflog.c:254
+msgid ""
+"prune entries older than <time> that are not reachable from the current tip "
+"of the branch"
+msgstr "清除早于 <时间> 且自当å‰åˆ†æ”¯é¡¶éƒ¨ä¸å¯è¾¾çš„æ¡ç›®"
+
+#: builtin/reflog.c:258
+msgid "prune any reflog entries that point to broken commits"
+msgstr "清除指å‘æŸåæ交的引用æ¡ç›®"
+
+#: builtin/reflog.c:259
+msgid "process the reflogs of all references"
+msgstr "处ç†æ‰€æœ‰å¼•ç”¨çš„引用日志"
+
+#: builtin/reflog.c:261
+msgid "limits processing to reflogs from the current worktree only"
+msgstr "仅处ç†å½“å‰å·¥ä½œæ ‘的引用日志"
+
+#: builtin/reflog.c:294
#, c-format
msgid "Marking reachable objects..."
msgstr "正在标记å¯è¾¾å¯¹è±¡..."
-#: builtin/reflog.c:675
+#: builtin/reflog.c:338
#, c-format
msgid "%s points nowhere!"
msgstr "%s 指å‘ä¸å­˜åœ¨ï¼"
-#: builtin/reflog.c:731
+#: builtin/reflog.c:374
msgid "no reflog specified to delete"
msgstr "未指定è¦åˆ é™¤çš„引用日志"
-#: builtin/reflog.c:742
-#, c-format
-msgid "not a reflog: %s"
-msgstr "ä¸æ˜¯ä¸€ä¸ªå¼•ç”¨æ—¥å¿—:%s"
-
-#: builtin/reflog.c:747
-#, c-format
-msgid "no reflog for '%s'"
-msgstr "没有 '%s' 的引用日志"
-
-#: builtin/reflog.c:794
+#: builtin/reflog.c:396
#, c-format
msgid "invalid ref format: %s"
msgstr "无效的引用格å¼ï¼š%s"
-#: builtin/reflog.c:803
-msgid "git reflog [ show | expire | delete | exists ]"
-msgstr "git reflog [ show | expire | delete | exists ]"
-
-#: builtin/remote.c:17
-msgid "git remote [-v | --verbose]"
-msgstr "git remote [-v | --verbose]"
-
-#: builtin/remote.c:18
+#: builtin/remote.c:19
msgid ""
"git remote add [-t <branch>] [-m <master>] [-f] [--tags | --no-tags] [--"
"mirror=<fetch|push>] <name> <url>"
@@ -20284,86 +20770,86 @@ msgstr ""
"git remote add [-t <分支>] [-m <master>] [-f] [--tags | --no-tags] [--"
"mirror=<fetch|push>] <å称> <地å€>"
-#: builtin/remote.c:19 builtin/remote.c:39
-msgid "git remote rename <old> <new>"
-msgstr "git remote rename <æ—§å称> <æ–°å称>"
+#: builtin/remote.c:20 builtin/remote.c:40
+msgid "git remote rename [--[no-]progress] <old> <new>"
+msgstr "git remote rename [--[no-]progress] <æ—§> <æ–°>"
-#: builtin/remote.c:20 builtin/remote.c:44
+#: builtin/remote.c:21 builtin/remote.c:45
msgid "git remote remove <name>"
msgstr "git remote remove <å称>"
-#: builtin/remote.c:21 builtin/remote.c:49
+#: builtin/remote.c:22 builtin/remote.c:50
msgid "git remote set-head <name> (-a | --auto | -d | --delete | <branch>)"
msgstr "git remote set-head <å称> (-a | --auto | -d | --delete | <分支>)"
-#: builtin/remote.c:22
+#: builtin/remote.c:23
msgid "git remote [-v | --verbose] show [-n] <name>"
msgstr "git remote [-v | --verbose] show [-n] <å称>"
-#: builtin/remote.c:23
+#: builtin/remote.c:24
msgid "git remote prune [-n | --dry-run] <name>"
msgstr "git remote prune [-n | --dry-run] <å称>"
-#: builtin/remote.c:24
+#: builtin/remote.c:25
msgid ""
"git remote [-v | --verbose] update [-p | --prune] [(<group> | <remote>)...]"
msgstr "git remote [-v | --verbose] update [-p | --prune] [(<组> | <远程>)...]"
-#: builtin/remote.c:25
+#: builtin/remote.c:26
msgid "git remote set-branches [--add] <name> <branch>..."
msgstr "git remote set-branches [--add] <å称> <分支>..."
-#: builtin/remote.c:26 builtin/remote.c:75
+#: builtin/remote.c:27 builtin/remote.c:76
msgid "git remote get-url [--push] [--all] <name>"
msgstr "git remote get-url [--push] [--all] <å称>"
-#: builtin/remote.c:27 builtin/remote.c:80
+#: builtin/remote.c:28 builtin/remote.c:81
msgid "git remote set-url [--push] <name> <newurl> [<oldurl>]"
msgstr "git remote set-url [--push] <å称> <新的地å€> [<旧的地å€>]"
-#: builtin/remote.c:28 builtin/remote.c:81
+#: builtin/remote.c:29 builtin/remote.c:82
msgid "git remote set-url --add <name> <newurl>"
msgstr "git remote set-url --add <å称> <新的地å€>"
-#: builtin/remote.c:29 builtin/remote.c:82
+#: builtin/remote.c:30 builtin/remote.c:83
msgid "git remote set-url --delete <name> <url>"
msgstr "git remote set-url --delete <å称> <地å€>"
-#: builtin/remote.c:34
+#: builtin/remote.c:35
msgid "git remote add [<options>] <name> <url>"
msgstr "git remote add [<选项>] <å称> <地å€>"
-#: builtin/remote.c:54
+#: builtin/remote.c:55
msgid "git remote set-branches <name> <branch>..."
msgstr "git remote set-branches <å称> <分支>..."
-#: builtin/remote.c:55
+#: builtin/remote.c:56
msgid "git remote set-branches --add <name> <branch>..."
msgstr "git remote set-branches --add <å称> <分支>..."
-#: builtin/remote.c:60
+#: builtin/remote.c:61
msgid "git remote show [<options>] <name>"
msgstr "git remote show [<选项>] <å称>"
-#: builtin/remote.c:65
+#: builtin/remote.c:66
msgid "git remote prune [<options>] <name>"
msgstr "git remote prune [<选项>] <å称>"
-#: builtin/remote.c:70
+#: builtin/remote.c:71
msgid "git remote update [<options>] [<group> | <remote>]..."
msgstr "git remote update [<选项>] [<组> | <远程>]..."
-#: builtin/remote.c:99
+#: builtin/remote.c:100
#, c-format
msgid "Updating %s"
msgstr "更新 %s 中"
-#: builtin/remote.c:101
+#: builtin/remote.c:102
#, c-format
msgid "Could not fetch %s"
msgstr "ä¸èƒ½èŽ·å– %s"
-#: builtin/remote.c:131
+#: builtin/remote.c:132
msgid ""
"--mirror is dangerous and deprecated; please\n"
"\t use --mirror=fetch or --mirror=push instead"
@@ -20371,77 +20857,77 @@ msgstr ""
"--mirror 选项å±é™©ä¸”过时,请使用 --mirror=fetch\n"
"\t 或 --mirror=push"
-#: builtin/remote.c:148
+#: builtin/remote.c:149
#, c-format
msgid "unknown mirror argument: %s"
msgstr "未知的镜åƒå‚数:%s"
-#: builtin/remote.c:164
+#: builtin/remote.c:165
msgid "fetch the remote branches"
msgstr "抓å–远程的分支"
-#: builtin/remote.c:166
+#: builtin/remote.c:167
msgid "import all tags and associated objects when fetching"
msgstr "抓å–时导入所有的标签和关è”对象"
-#: builtin/remote.c:169
+#: builtin/remote.c:170
msgid "or do not fetch any tag at all (--no-tags)"
msgstr "或ä¸æŠ“å–任何标签(--no-tags)"
-#: builtin/remote.c:171
+#: builtin/remote.c:172
msgid "branch(es) to track"
msgstr "跟踪的分支"
-#: builtin/remote.c:172
+#: builtin/remote.c:173
msgid "master branch"
msgstr "主线分支"
-#: builtin/remote.c:174
+#: builtin/remote.c:175
msgid "set up remote as a mirror to push to or fetch from"
msgstr "把远程设置为用以推é€æˆ–抓å–çš„é•œåƒ"
-#: builtin/remote.c:186
+#: builtin/remote.c:187
msgid "specifying a master branch makes no sense with --mirror"
msgstr "指定一个 master 分支并使用 --mirror 选项没有æ„义"
-#: builtin/remote.c:188
+#: builtin/remote.c:189
msgid "specifying branches to track makes sense only with fetch mirrors"
msgstr "指定è¦è·Ÿè¸ªçš„分支åªåœ¨ä¸ŽèŽ·å–é•œåƒåŒæ—¶ä½¿ç”¨æ‰æœ‰æ„义"
-#: builtin/remote.c:195 builtin/remote.c:705
+#: builtin/remote.c:196 builtin/remote.c:716
#, c-format
msgid "remote %s already exists."
msgstr "远程 %s å·²ç»å­˜åœ¨ã€‚"
-#: builtin/remote.c:240
+#: builtin/remote.c:241
#, c-format
msgid "Could not setup master '%s'"
msgstr "无法设置 master '%s'"
-#: builtin/remote.c:322
+#: builtin/remote.c:323
#, c-format
msgid "unhandled branch.%s.rebase=%s; assuming 'true'"
msgstr "未处ç†çš„ branch.%s.rebase=%s; å‡å®šä¸º 'true'"
-#: builtin/remote.c:366
+#: builtin/remote.c:367
#, c-format
msgid "Could not get fetch map for refspec %s"
msgstr "无法得到引用规格 %s 的获å–列表"
-#: builtin/remote.c:460 builtin/remote.c:468
+#: builtin/remote.c:461 builtin/remote.c:469
msgid "(matching)"
msgstr "(匹é…)"
-#: builtin/remote.c:472
+#: builtin/remote.c:473
msgid "(delete)"
msgstr "(删除)"
-#: builtin/remote.c:660
+#: builtin/remote.c:664
#, c-format
msgid "could not set '%s'"
msgstr "ä¸èƒ½è®¾ç½® '%s'"
-#: builtin/remote.c:665
+#: builtin/remote.c:669
#, c-format
msgid ""
"The %s configuration remote.pushDefault in:\n"
@@ -20452,17 +20938,17 @@ msgstr ""
"\t%s:%d\n"
"现在在为ä¸å­˜åœ¨çš„远程å '%s' 命å"
-#: builtin/remote.c:696 builtin/remote.c:841 builtin/remote.c:948
+#: builtin/remote.c:707 builtin/remote.c:866 builtin/remote.c:973
#, c-format
msgid "No such remote: '%s'"
msgstr "没有此远程仓库:'%s'"
-#: builtin/remote.c:715
+#: builtin/remote.c:726
#, c-format
msgid "Could not rename config section '%s' to '%s'"
msgstr "ä¸èƒ½é‡å‘½åé…ç½®å°èŠ‚ '%s' 到 '%s'"
-#: builtin/remote.c:735
+#: builtin/remote.c:746
#, c-format
msgid ""
"Not updating non-default fetch refspec\n"
@@ -20473,17 +20959,21 @@ msgstr ""
"\t%s\n"
"\t如果必è¦è¯·æ‰‹åŠ¨æ›´æ–°é…置。"
-#: builtin/remote.c:775
+#: builtin/remote.c:783
+msgid "Renaming remote references"
+msgstr "正在é‡å‘½å远程引用"
+
+#: builtin/remote.c:794
#, c-format
msgid "deleting '%s' failed"
msgstr "删除 '%s' 失败"
-#: builtin/remote.c:809
+#: builtin/remote.c:832
#, c-format
msgid "creating '%s' failed"
msgstr "创建 '%s' 失败"
-#: builtin/remote.c:887
+#: builtin/remote.c:912
msgid ""
"Note: A branch outside the refs/remotes/ hierarchy was not removed;\n"
"to delete it, use:"
@@ -20493,118 +20983,118 @@ msgid_plural ""
msgstr[0] "注æ„:ref/remotes 层级之外的一个分支未被移除。è¦åˆ é™¤å®ƒï¼Œä½¿ç”¨ï¼š"
msgstr[1] "注æ„:ref/remotes 层级之外的一些分支未被移除。è¦åˆ é™¤å®ƒä»¬ï¼Œä½¿ç”¨ï¼š"
-#: builtin/remote.c:901
+#: builtin/remote.c:926
#, c-format
msgid "Could not remove config section '%s'"
msgstr "ä¸èƒ½ç§»é™¤é…ç½®å°èŠ‚ '%s'"
-#: builtin/remote.c:1009
+#: builtin/remote.c:1034
#, c-format
msgid " new (next fetch will store in remotes/%s)"
msgstr " 新的(下一次获å–将存储于 remotes/%s)"
-#: builtin/remote.c:1012
+#: builtin/remote.c:1037
msgid " tracked"
msgstr " 已跟踪"
-#: builtin/remote.c:1014
+#: builtin/remote.c:1039
msgid " stale (use 'git remote prune' to remove)"
msgstr " 过时(使用 'git remote prune' æ¥ç§»é™¤ï¼‰"
-#: builtin/remote.c:1016
+#: builtin/remote.c:1041
msgid " ???"
msgstr " ???"
-#: builtin/remote.c:1057
+#: builtin/remote.c:1082
#, c-format
msgid "invalid branch.%s.merge; cannot rebase onto > 1 branch"
msgstr "无效的 branch.%s.merge,ä¸èƒ½å˜åŸºåˆ°ä¸€ä¸ªä»¥ä¸Šçš„分支"
-#: builtin/remote.c:1066
+#: builtin/remote.c:1091
#, c-format
msgid "rebases interactively onto remote %s"
msgstr "交互å¼å˜åŸºåˆ°è¿œç¨‹ %s"
-#: builtin/remote.c:1068
+#: builtin/remote.c:1093
#, c-format
msgid "rebases interactively (with merges) onto remote %s"
msgstr "交互å¼å˜åŸºï¼ˆå«åˆå¹¶æ交)到远程 %s"
-#: builtin/remote.c:1071
+#: builtin/remote.c:1096
#, c-format
msgid "rebases onto remote %s"
msgstr "å˜åŸºåˆ°è¿œç¨‹ %s"
-#: builtin/remote.c:1075
+#: builtin/remote.c:1100
#, c-format
msgid " merges with remote %s"
msgstr " 与远程 %s åˆå¹¶"
-#: builtin/remote.c:1078
+#: builtin/remote.c:1103
#, c-format
msgid "merges with remote %s"
msgstr "与远程 %s åˆå¹¶"
-#: builtin/remote.c:1081
+#: builtin/remote.c:1106
#, c-format
msgid "%-*s and with remote %s\n"
msgstr "%-*s 以åŠå’Œè¿œç¨‹ %s\n"
-#: builtin/remote.c:1124
+#: builtin/remote.c:1149
msgid "create"
msgstr "创建"
-#: builtin/remote.c:1127
+#: builtin/remote.c:1152
msgid "delete"
msgstr "删除"
-#: builtin/remote.c:1131
+#: builtin/remote.c:1156
msgid "up to date"
msgstr "最新"
-#: builtin/remote.c:1134
+#: builtin/remote.c:1159
msgid "fast-forwardable"
msgstr "å¯å¿«è¿›"
-#: builtin/remote.c:1137
+#: builtin/remote.c:1162
msgid "local out of date"
msgstr "本地已过时"
-#: builtin/remote.c:1144
+#: builtin/remote.c:1169
#, c-format
msgid " %-*s forces to %-*s (%s)"
msgstr " %-*s 强制推é€è‡³ %-*s (%s)"
-#: builtin/remote.c:1147
+#: builtin/remote.c:1172
#, c-format
msgid " %-*s pushes to %-*s (%s)"
msgstr " %-*s 推é€è‡³ %-*s (%s)"
-#: builtin/remote.c:1151
+#: builtin/remote.c:1176
#, c-format
msgid " %-*s forces to %s"
msgstr " %-*s 强制推é€è‡³ %s"
-#: builtin/remote.c:1154
+#: builtin/remote.c:1179
#, c-format
msgid " %-*s pushes to %s"
msgstr " %-*s 推é€è‡³ %s"
-#: builtin/remote.c:1222
+#: builtin/remote.c:1247
msgid "do not query remotes"
msgstr "ä¸æŸ¥è¯¢è¿œç¨‹"
-#: builtin/remote.c:1243
+#: builtin/remote.c:1268
#, c-format
msgid "* remote %s"
msgstr "* 远程 %s"
-#: builtin/remote.c:1244
+#: builtin/remote.c:1269
#, c-format
msgid " Fetch URL: %s"
msgstr " 获å–地å€ï¼š%s"
-#: builtin/remote.c:1245 builtin/remote.c:1261 builtin/remote.c:1398
+#: builtin/remote.c:1270 builtin/remote.c:1286 builtin/remote.c:1423
msgid "(no URL)"
msgstr "(æ—  URL)"
@@ -20612,31 +21102,31 @@ msgstr "(æ—  URL)"
#. with the one in " Fetch URL: %s"
#. translation.
#.
-#: builtin/remote.c:1259 builtin/remote.c:1261
+#: builtin/remote.c:1284 builtin/remote.c:1286
#, c-format
msgid " Push URL: %s"
msgstr " 推é€åœ°å€ï¼š%s"
-#: builtin/remote.c:1263 builtin/remote.c:1265 builtin/remote.c:1267
+#: builtin/remote.c:1288 builtin/remote.c:1290 builtin/remote.c:1292
#, c-format
msgid " HEAD branch: %s"
msgstr " HEAD 分支:%s"
-#: builtin/remote.c:1263
+#: builtin/remote.c:1288
msgid "(not queried)"
msgstr "(未查询)"
-#: builtin/remote.c:1265
+#: builtin/remote.c:1290
msgid "(unknown)"
msgstr "(未知)"
-#: builtin/remote.c:1269
+#: builtin/remote.c:1294
#, c-format
msgid ""
" HEAD branch (remote HEAD is ambiguous, may be one of the following):\n"
msgstr " HEAD 分支(远程 HEAD 模糊,å¯èƒ½æ˜¯ä¸‹åˆ—中的一个):\n"
-#: builtin/remote.c:1281
+#: builtin/remote.c:1306
#, c-format
msgid " Remote branch:%s"
msgid_plural " Remote branches:%s"
@@ -20644,159 +21134,159 @@ msgstr[0] " 远程分支:%s"
msgstr[1] " 远程分支:%s"
# 译者:中文字符串拼接,å¯åˆ é™¤å‰å¯¼ç©ºæ ¼
-#: builtin/remote.c:1284 builtin/remote.c:1310
+#: builtin/remote.c:1309 builtin/remote.c:1335
msgid " (status not queried)"
msgstr "(状æ€æœªæŸ¥è¯¢ï¼‰"
-#: builtin/remote.c:1293
+#: builtin/remote.c:1318
msgid " Local branch configured for 'git pull':"
msgid_plural " Local branches configured for 'git pull':"
msgstr[0] " 为 'git pull' é…置的本地分支:"
msgstr[1] " 为 'git pull' é…置的本地分支:"
-#: builtin/remote.c:1301
+#: builtin/remote.c:1326
msgid " Local refs will be mirrored by 'git push'"
msgstr " 本地引用将在 'git push' 时被镜åƒ"
-#: builtin/remote.c:1307
+#: builtin/remote.c:1332
#, c-format
msgid " Local ref configured for 'git push'%s:"
msgid_plural " Local refs configured for 'git push'%s:"
msgstr[0] " 为 'git push' é…置的本地引用%s:"
msgstr[1] " 为 'git push' é…置的本地引用%s:"
-#: builtin/remote.c:1328
+#: builtin/remote.c:1353
msgid "set refs/remotes/<name>/HEAD according to remote"
msgstr "æ ¹æ®è¿œç¨‹è®¾ç½® refs/remotes/<å称>/HEAD"
-#: builtin/remote.c:1330
+#: builtin/remote.c:1355
msgid "delete refs/remotes/<name>/HEAD"
msgstr "删除 refs/remotes/<å称>/HEAD"
-#: builtin/remote.c:1344
+#: builtin/remote.c:1369
msgid "Cannot determine remote HEAD"
msgstr "无法确定远程 HEAD"
-#: builtin/remote.c:1346
+#: builtin/remote.c:1371
msgid "Multiple remote HEAD branches. Please choose one explicitly with:"
msgstr "多个远程 HEAD 分支。请明确地选择一个用命令:"
-#: builtin/remote.c:1356
+#: builtin/remote.c:1381
#, c-format
msgid "Could not delete %s"
msgstr "无法删除 %s"
-#: builtin/remote.c:1364
+#: builtin/remote.c:1389
#, c-format
msgid "Not a valid ref: %s"
msgstr "ä¸æ˜¯ä¸€ä¸ªæœ‰æ•ˆå¼•ç”¨ï¼š%s"
-#: builtin/remote.c:1366
+#: builtin/remote.c:1391
#, c-format
msgid "Could not setup %s"
msgstr "ä¸èƒ½è®¾ç½® %s"
# 译者:注æ„ä¿æŒå‰å¯¼ç©ºæ ¼
-#: builtin/remote.c:1384
+#: builtin/remote.c:1409
#, c-format
msgid " %s will become dangling!"
msgstr " %s å°†æˆä¸ºæ‚¬ç©ºçŠ¶æ€ï¼"
# 译者:注æ„ä¿æŒå‰å¯¼ç©ºæ ¼
-#: builtin/remote.c:1385
+#: builtin/remote.c:1410
#, c-format
msgid " %s has become dangling!"
msgstr " %s å·²æˆä¸ºæ‚¬ç©ºçŠ¶æ€ï¼"
-#: builtin/remote.c:1394
+#: builtin/remote.c:1419
#, c-format
msgid "Pruning %s"
msgstr "修剪 %s"
-#: builtin/remote.c:1395
+#: builtin/remote.c:1420
#, c-format
msgid "URL: %s"
msgstr "URL:%s"
-#: builtin/remote.c:1411
+#: builtin/remote.c:1436
#, c-format
msgid " * [would prune] %s"
msgstr " * [将删除] %s"
-#: builtin/remote.c:1414
+#: builtin/remote.c:1439
#, c-format
msgid " * [pruned] %s"
msgstr " * [已删除] %s"
-#: builtin/remote.c:1459
+#: builtin/remote.c:1484
msgid "prune remotes after fetching"
msgstr "抓å–åŽæ¸…除远程"
-#: builtin/remote.c:1523 builtin/remote.c:1579 builtin/remote.c:1649
+#: builtin/remote.c:1548 builtin/remote.c:1604 builtin/remote.c:1674
#, c-format
msgid "No such remote '%s'"
msgstr "没有此远程 '%s'"
-#: builtin/remote.c:1541
+#: builtin/remote.c:1566
msgid "add branch"
msgstr "添加分支"
-#: builtin/remote.c:1548
+#: builtin/remote.c:1573
msgid "no remote specified"
msgstr "未指定远程"
-#: builtin/remote.c:1565
+#: builtin/remote.c:1590
msgid "query push URLs rather than fetch URLs"
msgstr "æŸ¥è¯¢æŽ¨é€ URL 地å€ï¼Œè€ŒéžèŽ·å– URL 地å€"
-#: builtin/remote.c:1567
+#: builtin/remote.c:1592
msgid "return all URLs"
msgstr "返回所有 URL 地å€"
-#: builtin/remote.c:1597
+#: builtin/remote.c:1622
#, c-format
msgid "no URLs configured for remote '%s'"
msgstr "没有给远程仓库 '%s' 设定 URL"
-#: builtin/remote.c:1623
+#: builtin/remote.c:1648
msgid "manipulate push URLs"
msgstr "æ“ä½œæŽ¨é€ URLS"
-#: builtin/remote.c:1625
+#: builtin/remote.c:1650
msgid "add URL"
msgstr "添加 URL"
-#: builtin/remote.c:1627
+#: builtin/remote.c:1652
msgid "delete URLs"
msgstr "删除 URLS"
-#: builtin/remote.c:1634
+#: builtin/remote.c:1659
msgid "--add --delete doesn't make sense"
msgstr "--add --delete æ— æ„义"
-#: builtin/remote.c:1675
+#: builtin/remote.c:1700
#, c-format
msgid "Invalid old URL pattern: %s"
msgstr "无效的旧 URL 匹é…模版:%s"
-#: builtin/remote.c:1683
+#: builtin/remote.c:1708
#, c-format
msgid "No such URL found: %s"
msgstr "未找到此 URL:%s"
-#: builtin/remote.c:1685
+#: builtin/remote.c:1710
msgid "Will not delete all non-push URLs"
msgstr "å°†ä¸ä¼šåˆ é™¤æ‰€æœ‰éžæŽ¨é€ URL 地å€"
-#: builtin/remote.c:1702
+#: builtin/remote.c:1727
msgid "be verbose; must be placed before a subcommand"
msgstr "冗长输出;必须置于å­å‘½ä»¤ä¹‹å‰"
-#: builtin/repack.c:28
+#: builtin/repack.c:29
msgid "git repack [<options>]"
msgstr "git repack [<选项>]"
-#: builtin/repack.c:33
+#: builtin/repack.c:34
msgid ""
"Incremental repacks are incompatible with bitmap indexes. Use\n"
"--no-write-bitmap-index or disable the pack.writebitmaps configuration."
@@ -20804,144 +21294,144 @@ msgstr ""
"å¢žé‡ repack å’Œ bitmap 索引ä¸å…¼å®¹ã€‚ 使用 --no-write-bitmap-index\n"
"或ç¦ç”¨ pack.writebitmaps é…置。"
-#: builtin/repack.c:201
+#: builtin/repack.c:206
msgid "could not start pack-objects to repack promisor objects"
msgstr "无法开始 pack-objects æ¥é‡æ–°æ‰“包 promisor 对象"
-#: builtin/repack.c:275 builtin/repack.c:820
+#: builtin/repack.c:280 builtin/repack.c:824
msgid "repack: Expecting full hex object ID lines only from pack-objects."
msgstr "repack:期望æ¥è‡ª pack-objects 的完整å六进制对象 ID。"
-#: builtin/repack.c:299
+#: builtin/repack.c:304
msgid "could not finish pack-objects to repack promisor objects"
msgstr "æ— æ³•å®Œæˆ pack-objects æ¥é‡æ–°æ‰“包 promisor 对象"
-#: builtin/repack.c:314
+#: builtin/repack.c:319
#, c-format
msgid "cannot open index for %s"
msgstr "ä¸èƒ½æ‰“å¼€ %s 的索引"
-#: builtin/repack.c:373
+#: builtin/repack.c:378
#, c-format
msgid "pack %s too large to consider in geometric progression"
msgstr "包 %s 太大,ä¸åœ¨å‡ ä½•çº§æ•°ä¸­è€ƒè™‘"
-#: builtin/repack.c:406 builtin/repack.c:413 builtin/repack.c:418
+#: builtin/repack.c:411 builtin/repack.c:418 builtin/repack.c:423
#, c-format
msgid "pack %s too large to roll up"
msgstr "包 %s 太大导致数字溢出"
-#: builtin/repack.c:498
+#: builtin/repack.c:503
#, c-format
msgid "could not open tempfile %s for writing"
msgstr "无法打开临时文件 %s 进行写入"
-#: builtin/repack.c:516
+#: builtin/repack.c:521
msgid "could not close refs snapshot tempfile"
msgstr "ä¸èƒ½å…³é—­å¼•ç”¨å¿«ç…§ä¸´æ—¶æ–‡ä»¶"
-#: builtin/repack.c:630
+#: builtin/repack.c:634
msgid "pack everything in a single pack"
msgstr "所有内容打包到一个包文件中"
-#: builtin/repack.c:632
+#: builtin/repack.c:636
msgid "same as -a, and turn unreachable objects loose"
msgstr "å’Œ -a 相åŒï¼Œå¹¶å°†ä¸å¯è¾¾çš„对象设为æ¾æ•£å¯¹è±¡"
-#: builtin/repack.c:635
+#: builtin/repack.c:639
msgid "remove redundant packs, and run git-prune-packed"
msgstr "删除多余的包,è¿è¡Œ git-prune-packed"
-#: builtin/repack.c:637
+#: builtin/repack.c:641
msgid "pass --no-reuse-delta to git-pack-objects"
msgstr "å‘ git-pack-objects 传递å‚æ•° --no-reuse-delta"
-#: builtin/repack.c:639
+#: builtin/repack.c:643
msgid "pass --no-reuse-object to git-pack-objects"
msgstr "å‘ git-pack-objects 传递å‚æ•° --no-reuse-object"
-#: builtin/repack.c:641
+#: builtin/repack.c:645
msgid "do not run git-update-server-info"
msgstr "ä¸è¿è¡Œ git-update-server-info"
-#: builtin/repack.c:644
+#: builtin/repack.c:648
msgid "pass --local to git-pack-objects"
msgstr "å‘ git-pack-objects 传递å‚æ•° --local"
-#: builtin/repack.c:646
+#: builtin/repack.c:650
msgid "write bitmap index"
msgstr "写 bitmap 索引"
-#: builtin/repack.c:648
+#: builtin/repack.c:652
msgid "pass --delta-islands to git-pack-objects"
msgstr "å‘ git-pack-objects 传递å‚æ•° --delta-islands"
-#: builtin/repack.c:649
+#: builtin/repack.c:653
msgid "approxidate"
msgstr "近似日期"
-#: builtin/repack.c:650
+#: builtin/repack.c:654
msgid "with -A, do not loosen objects older than this"
msgstr "使用 -A,ä¸è¦å°†æ—©äºŽç»™å®šæ—¶é—´çš„对象过期"
-#: builtin/repack.c:652
+#: builtin/repack.c:656
msgid "with -a, repack unreachable objects"
msgstr "使用 -a ,é‡æ–°å¯¹ä¸å¯è¾¾å¯¹è±¡æ‰“包"
-#: builtin/repack.c:654
+#: builtin/repack.c:658
msgid "size of the window used for delta compression"
msgstr "用于增é‡åŽ‹ç¼©çš„窗å£å€¼"
-#: builtin/repack.c:655 builtin/repack.c:661
+#: builtin/repack.c:659 builtin/repack.c:665
msgid "bytes"
msgstr "字节"
-#: builtin/repack.c:656
+#: builtin/repack.c:660
msgid "same as the above, but limit memory size instead of entries count"
msgstr "和上é¢çš„相似,但é™åˆ¶å†…存大å°è€Œéžæ¡ç›®æ•°"
-#: builtin/repack.c:658
+#: builtin/repack.c:662
msgid "limits the maximum delta depth"
msgstr "é™åˆ¶æœ€å¤§å¢žé‡æ·±åº¦"
-#: builtin/repack.c:660
+#: builtin/repack.c:664
msgid "limits the maximum number of threads"
msgstr "é™åˆ¶æœ€å¤§çº¿ç¨‹æ•°"
-#: builtin/repack.c:662
+#: builtin/repack.c:666
msgid "maximum size of each packfile"
msgstr "æ¯ä¸ªåŒ…文件的最大尺寸"
-#: builtin/repack.c:664
+#: builtin/repack.c:668
msgid "repack objects in packs marked with .keep"
msgstr "对标记为 .keep 的包中的对象é‡æ–°æ‰“包"
-#: builtin/repack.c:666
+#: builtin/repack.c:670
msgid "do not repack this pack"
msgstr "ä¸è¦å¯¹è¯¥åŒ…文件é‡æ–°æ‰“包"
-#: builtin/repack.c:668
+#: builtin/repack.c:672
msgid "find a geometric progression with factor <N>"
msgstr "ä½¿ç”¨å› å­ <n> 查找几何级数"
-#: builtin/repack.c:670
+#: builtin/repack.c:674
msgid "write a multi-pack index of the resulting packs"
msgstr "写入结果包的多包索引"
-#: builtin/repack.c:680
+#: builtin/repack.c:684
msgid "cannot delete packs in a precious-objects repo"
msgstr "ä¸èƒ½åˆ é™¤çå“仓库中的打包文件"
-#: builtin/repack.c:829
+#: builtin/repack.c:833
msgid "Nothing new to pack."
msgstr "没有新的è¦æ‰“包。"
-#: builtin/repack.c:859
+#: builtin/repack.c:863
#, c-format
msgid "missing required file: %s"
msgstr "缺少需è¦çš„文件:%s"
-#: builtin/repack.c:861
+#: builtin/repack.c:865
#, c-format
msgid "could not unlink: %s"
msgstr "ä¸èƒ½åˆ é™¤ï¼š%s"
@@ -20958,10 +21448,6 @@ msgstr "git replace [-f] --edit <对象>"
msgid "git replace [-f] --graft <commit> [<parent>...]"
msgstr "git replace [-f] --graft <æ交> [<父æ交>...]"
-#: builtin/replace.c:25
-msgid "git replace [-f] --convert-graft-file"
-msgstr "git replace [-f] --convert-graft-file"
-
#: builtin/replace.c:26
msgid "git replace -d <object>..."
msgstr "git replace -d <对象>..."
@@ -21260,96 +21746,91 @@ msgid "HEAD is now at %s"
msgstr "HEAD 现在ä½äºŽ %s"
# 译者:汉字之间无空格,故删除%så‰åŽç©ºæ ¼
-#: builtin/reset.c:299
+#: builtin/reset.c:304
#, c-format
msgid "Cannot do a %s reset in the middle of a merge."
msgstr "在åˆå¹¶è¿‡ç¨‹ä¸­ä¸èƒ½åš%sé‡ç½®æ“作。"
-#: builtin/reset.c:396 builtin/stash.c:606 builtin/stash.c:680
-#: builtin/stash.c:704
+#: builtin/reset.c:402 builtin/stash.c:606 builtin/stash.c:669
+#: builtin/stash.c:693
msgid "be quiet, only report errors"
msgstr "安é™æ¨¡å¼ï¼ŒåªæŠ¥å‘Šé”™è¯¯"
-#: builtin/reset.c:398
+#: builtin/reset.c:404
+msgid "skip refreshing the index after reset"
+msgstr "é‡ç½®åŽè·³è¿‡åˆ·æ–°ç´¢å¼•"
+
+#: builtin/reset.c:406
msgid "reset HEAD and index"
msgstr "é‡ç½® HEAD 和索引"
-#: builtin/reset.c:399
+#: builtin/reset.c:407
msgid "reset only HEAD"
msgstr "åªé‡ç½® HEAD"
-#: builtin/reset.c:401 builtin/reset.c:403
+#: builtin/reset.c:409 builtin/reset.c:411
msgid "reset HEAD, index and working tree"
msgstr "é‡ç½® HEADã€ç´¢å¼•å’Œå·¥ä½œåŒº"
-#: builtin/reset.c:405
+#: builtin/reset.c:413
msgid "reset HEAD but keep local changes"
msgstr "é‡ç½® HEAD 但ä¿å­˜æœ¬åœ°å˜æ›´"
-#: builtin/reset.c:411
+#: builtin/reset.c:419
msgid "record only the fact that removed paths will be added later"
msgstr "将删除的路径标记为ç¨åŽæ·»åŠ "
-#: builtin/reset.c:445
+#: builtin/reset.c:452
#, c-format
msgid "Failed to resolve '%s' as a valid revision."
msgstr "无法将 '%s' 解æžä¸ºä¸€ä¸ªæœ‰æ•ˆçš„版本。"
-#: builtin/reset.c:453
+#: builtin/reset.c:460
#, c-format
msgid "Failed to resolve '%s' as a valid tree."
msgstr "无法将 '%s' 解æžä¸ºä¸€ä¸ªæœ‰æ•ˆçš„树对象。"
-#: builtin/reset.c:472
+#: builtin/reset.c:479
msgid "--mixed with paths is deprecated; use 'git reset -- <paths>' instead."
msgstr "--mixed 带路径已弃用,而是用 'git reset -- <路径>'。"
# 译者:汉字之间无空格,故删除%så‰åŽç©ºæ ¼
-#: builtin/reset.c:474
+#: builtin/reset.c:481
#, c-format
msgid "Cannot do %s reset with paths."
msgstr "ä¸èƒ½å¸¦è·¯å¾„进行%sé‡ç½®ã€‚"
# 译者:汉字之间无空格,故删除%så‰åŽç©ºæ ¼
-#: builtin/reset.c:489
+#: builtin/reset.c:496
#, c-format
msgid "%s reset is not allowed in a bare repository"
msgstr "ä¸èƒ½å¯¹çº¯ä»“库进行%sé‡ç½®"
-#: builtin/reset.c:520
+#: builtin/reset.c:527
msgid "Unstaged changes after reset:"
msgstr "é‡ç½®åŽå–消暂存的å˜æ›´ï¼š"
-#: builtin/reset.c:523
+#: builtin/reset.c:530
#, c-format
msgid ""
-"\n"
-"It took %.2f seconds to enumerate unstaged changes after reset. You can\n"
-"use '--quiet' to avoid this. Set the config setting reset.quiet to true\n"
-"to make this the default.\n"
-msgstr ""
-"\n"
-"é‡ç½®åŽï¼Œæžšä¸¾æœªæš‚å­˜å˜æ›´èŠ±è´¹äº† %.2f 秒。 您å¯ä»¥ä½¿ç”¨ '--quiet' é¿å…此情况。\n"
-"å°†é…ç½®å˜é‡ reset.quiet 设置为 true å¯ä½¿å…¶æˆä¸ºé»˜è®¤å€¼ã€‚\n"
+"It took %.2f seconds to refresh the index after reset. You can use\n"
+"'--no-refresh' to avoid this."
+msgstr "在é‡ç½®åŽèŠ±äº† %.2f 秒æ¥åˆ·æ–°ç´¢å¼•ã€‚使用 '--no-refresh' 以é¿å…之。"
-#: builtin/reset.c:541
+#: builtin/reset.c:547
#, c-format
msgid "Could not reset index file to revision '%s'."
msgstr "ä¸èƒ½é‡ç½®ç´¢å¼•æ–‡ä»¶è‡³ç‰ˆæœ¬ '%s'。"
-#: builtin/reset.c:546
+#: builtin/reset.c:552
msgid "Could not write new index file."
msgstr "ä¸èƒ½å†™å…¥æ–°çš„索引文件。"
-#: builtin/rev-list.c:602
-msgid "object filtering requires --objects"
-msgstr "å¯¹è±¡è¿‡æ»¤éœ€è¦ --objects"
-
-#: builtin/rev-list.c:674
+#: builtin/rev-list.c:659
msgid "rev-list does not support display of notes"
msgstr "rev-list ä¸æ”¯æŒæ˜¾ç¤ºæ³¨è§£"
-#: builtin/rev-list.c:679
+#: builtin/rev-list.c:664
#, c-format
msgid "marked counting and '%s' cannot be used together"
msgstr "标记计数和 '%s' ä¸èƒ½åŒæ—¶ä½¿ç”¨"
@@ -21691,11 +22172,11 @@ msgstr "字段"
msgid "group by field"
msgstr "按字段分组"
-#: builtin/shortlog.c:394
+#: builtin/shortlog.c:395
msgid "too many arguments given outside repository"
msgstr "仓库外执行æ供了太多的å‚æ•°"
-#: builtin/show-branch.c:13
+#: builtin/show-branch.c:14
msgid ""
"git show-branch [-a | --all] [-r | --remotes] [--topo-order | --date-order]\n"
" [--current] [--color[=<when>] | --no-color] [--sparse]\n"
@@ -21707,119 +22188,119 @@ msgstr ""
" [--more=<n> | --list | --independent | --merge-base]\n"
" [--no-name | --sha1-name] [--topics] [(<版本> | <通é…符>)...]"
-#: builtin/show-branch.c:17
+#: builtin/show-branch.c:18
msgid "git show-branch (-g | --reflog)[=<n>[,<base>]] [--list] [<ref>]"
msgstr "git show-branch (-g | --reflog)[=<n>[,<起始点>]] [--list] [<引用>]"
-#: builtin/show-branch.c:395
+#: builtin/show-branch.c:396
#, c-format
msgid "ignoring %s; cannot handle more than %d ref"
msgid_plural "ignoring %s; cannot handle more than %d refs"
msgstr[0] "忽略 %sï¼Œæ— æ³•å¤„ç† %d 个以上的引用"
msgstr[1] "忽略 %sï¼Œæ— æ³•å¤„ç† %d 个以上的引用"
-#: builtin/show-branch.c:547
+#: builtin/show-branch.c:548
#, c-format
msgid "no matching refs with %s"
msgstr "没有和 %s 匹é…的引用"
-#: builtin/show-branch.c:644
+#: builtin/show-branch.c:645
msgid "show remote-tracking and local branches"
msgstr "显示远程跟踪的和本地的分支"
-#: builtin/show-branch.c:646
+#: builtin/show-branch.c:647
msgid "show remote-tracking branches"
msgstr "显示远程跟踪的分支"
-#: builtin/show-branch.c:648
+#: builtin/show-branch.c:649
msgid "color '*!+-' corresponding to the branch"
msgstr "ç€è‰² '*!+-' 到相应的分支"
-#: builtin/show-branch.c:650
+#: builtin/show-branch.c:651
msgid "show <n> more commits after the common ancestor"
msgstr "显示共åŒç¥–å…ˆåŽçš„ <n> 个æ交"
-#: builtin/show-branch.c:652
+#: builtin/show-branch.c:653
msgid "synonym to more=-1"
msgstr "å’Œ more=-1 åŒä¹‰"
-#: builtin/show-branch.c:653
+#: builtin/show-branch.c:654
msgid "suppress naming strings"
msgstr "ä¸æ˜¾ç¤ºå­—符串命å"
-#: builtin/show-branch.c:655
+#: builtin/show-branch.c:656
msgid "include the current branch"
msgstr "包括当å‰åˆ†æ”¯"
-#: builtin/show-branch.c:657
+#: builtin/show-branch.c:658
msgid "name commits with their object names"
msgstr "以对象å字命åæ交"
-#: builtin/show-branch.c:659
+#: builtin/show-branch.c:660
msgid "show possible merge bases"
msgstr "显示å¯èƒ½åˆå¹¶çš„基线"
-#: builtin/show-branch.c:661
+#: builtin/show-branch.c:662
msgid "show refs unreachable from any other ref"
msgstr "显示没有任何引用的的引用"
-#: builtin/show-branch.c:663
+#: builtin/show-branch.c:664
msgid "show commits in topological order"
msgstr "以拓扑顺åºæ˜¾ç¤ºæ交"
-#: builtin/show-branch.c:666
+#: builtin/show-branch.c:667
msgid "show only commits not on the first branch"
msgstr "åªæ˜¾ç¤ºä¸åœ¨ç¬¬ä¸€ä¸ªåˆ†æ”¯ä¸Šçš„æ交"
-#: builtin/show-branch.c:668
+#: builtin/show-branch.c:669
msgid "show merges reachable from only one tip"
msgstr "显示仅一个分支å¯è®¿é—®çš„åˆå¹¶æ交"
-#: builtin/show-branch.c:670
+#: builtin/show-branch.c:671
msgid "topologically sort, maintaining date order where possible"
msgstr "拓扑方å¼æŽ’åºï¼Œå¹¶å°½å¯èƒ½åœ°ä¿æŒæ—¥æœŸé¡ºåº"
-#: builtin/show-branch.c:673
+#: builtin/show-branch.c:674
msgid "<n>[,<base>]"
msgstr "<n>[,<base>]"
-#: builtin/show-branch.c:674
+#: builtin/show-branch.c:675
msgid "show <n> most recent ref-log entries starting at base"
msgstr "显示从起始点开始的 <n> æ¡æœ€è¿‘的引用日志记录"
-#: builtin/show-branch.c:734
+#: builtin/show-branch.c:735
msgid "no branches given, and HEAD is not valid"
msgstr "未æ供分支,且 HEAD 无效"
-#: builtin/show-branch.c:737
+#: builtin/show-branch.c:738
msgid "--reflog option needs one branch name"
msgstr "选项 --reflog 需è¦ä¸€ä¸ªåˆ†æ”¯å"
-#: builtin/show-branch.c:740
+#: builtin/show-branch.c:741
#, c-format
msgid "only %d entry can be shown at one time."
msgid_plural "only %d entries can be shown at one time."
msgstr[0] "一次åªèƒ½æ˜¾ç¤º %d 个æ¡ç›®ã€‚"
msgstr[1] "一次åªèƒ½æ˜¾ç¤º %d 个æ¡ç›®ã€‚"
-#: builtin/show-branch.c:744
+#: builtin/show-branch.c:745
#, c-format
msgid "no such ref %s"
msgstr "无此引用 %s"
-#: builtin/show-branch.c:830
+#: builtin/show-branch.c:831
#, c-format
msgid "cannot handle more than %d rev."
msgid_plural "cannot handle more than %d revs."
msgstr[0] "ä¸èƒ½å¤„ç† %d 个以上的版本。"
msgstr[1] "ä¸èƒ½å¤„ç† %d 个以上的版本。"
-#: builtin/show-branch.c:834
+#: builtin/show-branch.c:835
#, c-format
msgid "'%s' is not a valid ref."
msgstr "'%s' ä¸æ˜¯ä¸€ä¸ªæœ‰æ•ˆçš„引用。"
-#: builtin/show-branch.c:837
+#: builtin/show-branch.c:838
#, c-format
msgid "cannot find commit %s (%s)"
msgstr "ä¸èƒ½æ‰¾åˆ°æ交 %s(%s)"
@@ -21876,120 +22357,142 @@ msgstr "ä¸æ‰“å°ç»“果到标准输出(例如与 --verify å‚数共用)"
msgid "show refs from stdin that aren't in local repository"
msgstr "显示从标准输入中读入的ä¸åœ¨æœ¬åœ°ä»“库中的引用"
-#: builtin/sparse-checkout.c:22
+#: builtin/sparse-checkout.c:23
msgid "git sparse-checkout (init|list|set|add|reapply|disable) <options>"
msgstr "git sparse-checkout (init|list|set|add|reapply|disable) <选项>"
-#: builtin/sparse-checkout.c:46
-msgid "git sparse-checkout list"
-msgstr "git sparse-checkout list"
-
-#: builtin/sparse-checkout.c:60
+#: builtin/sparse-checkout.c:61
msgid "this worktree is not sparse"
msgstr "这个工作区ä¸æ˜¯ç¨€ç–çš„"
-#: builtin/sparse-checkout.c:75
+#: builtin/sparse-checkout.c:76
msgid "this worktree is not sparse (sparse-checkout file may not exist)"
msgstr "本工作区ä¸æ˜¯ç¨€ç–模å¼ï¼ˆç¨€ç–检出文件å¯èƒ½ä¸å­˜åœ¨ï¼‰"
-#: builtin/sparse-checkout.c:176
+#: builtin/sparse-checkout.c:177
#, c-format
msgid ""
"directory '%s' contains untracked files, but is not in the sparse-checkout "
"cone"
msgstr "目录 '%s' 包括了未跟踪文件,但ä¸åœ¨ç¨€ç–检出锥中"
-#: builtin/sparse-checkout.c:184
+#: builtin/sparse-checkout.c:185
#, c-format
msgid "failed to remove directory '%s'"
msgstr "无法删除目录 '%s'"
-#: builtin/sparse-checkout.c:324
+#: builtin/sparse-checkout.c:327
msgid "failed to create directory for sparse-checkout file"
msgstr "无法为稀ç–检出文件创建目录"
-#: builtin/sparse-checkout.c:365
-msgid "unable to upgrade repository format to enable worktreeConfig"
-msgstr "无法å‡çº§ä»“库格å¼ä»¥å¯ç”¨ worktreeConfig"
-
-#: builtin/sparse-checkout.c:367
-msgid "failed to set extensions.worktreeConfig setting"
-msgstr "无法设置 extensions.worktreeConfig"
+#: builtin/sparse-checkout.c:366
+msgid "failed to initialize worktree config"
+msgstr "无法åˆå§‹åŒ–工作树é…ç½®"
#: builtin/sparse-checkout.c:411
msgid "failed to modify sparse-index config"
msgstr "无法修改 sparse-index é…ç½®"
-#: builtin/sparse-checkout.c:422
-msgid "git sparse-checkout init [--cone] [--[no-]sparse-index]"
-msgstr "git sparse-checkout init [--cone] [--[no-]sparse-index]"
-
-#: builtin/sparse-checkout.c:441 builtin/sparse-checkout.c:729
-#: builtin/sparse-checkout.c:778
+#: builtin/sparse-checkout.c:441 builtin/sparse-checkout.c:793
+#: builtin/sparse-checkout.c:847
msgid "initialize the sparse-checkout in cone mode"
msgstr "åˆå§‹åŒ–稀ç–检出为锥形模å¼"
-#: builtin/sparse-checkout.c:443 builtin/sparse-checkout.c:731
-#: builtin/sparse-checkout.c:780
+#: builtin/sparse-checkout.c:443 builtin/sparse-checkout.c:795
+#: builtin/sparse-checkout.c:849
msgid "toggle the use of a sparse index"
msgstr "切æ¢ç¨€ç–索引的使用"
-#: builtin/sparse-checkout.c:476
+#: builtin/sparse-checkout.c:479
#, c-format
msgid "failed to open '%s'"
msgstr "无法打开 '%s'"
-#: builtin/sparse-checkout.c:528
+#: builtin/sparse-checkout.c:531
#, c-format
msgid "could not normalize path %s"
msgstr "无法规范化路径 %s"
-#: builtin/sparse-checkout.c:557
+#: builtin/sparse-checkout.c:560
#, c-format
msgid "unable to unquote C-style string '%s'"
msgstr "无法为 C 语言风格的字符串 '%s' 去引å·"
-#: builtin/sparse-checkout.c:612 builtin/sparse-checkout.c:640
+#: builtin/sparse-checkout.c:615 builtin/sparse-checkout.c:643
msgid "unable to load existing sparse-checkout patterns"
msgstr "无法加载现存的稀ç–检出模å¼"
-#: builtin/sparse-checkout.c:616
+#: builtin/sparse-checkout.c:619
msgid "existing sparse-checkout patterns do not use cone mode"
msgstr "已有的稀ç–检出模å¼ä¸ä½¿ç”¨é”¥å½¢æ¨¡å¼"
-#: builtin/sparse-checkout.c:682
-msgid "git sparse-checkout add (--stdin | <patterns>)"
-msgstr "git sparse-checkout add (--stdin | <模å¼>)"
+#: builtin/sparse-checkout.c:707
+msgid "please run from the toplevel directory in non-cone mode"
+msgstr "请在éžé”¥å½¢æ¨¡å¼çš„顶级目录中è¿è¡Œ"
+
+#: builtin/sparse-checkout.c:712
+msgid "specify directories rather than patterns (no leading slash)"
+msgstr "指定目录而ä¸æ˜¯æ¨¡å¼ï¼ˆæ— å‰å¯¼æ–œçº¿ï¼‰"
+
+#: builtin/sparse-checkout.c:714
+msgid ""
+"specify directories rather than patterns. If your directory starts with a "
+"'!', pass --skip-checks"
+msgstr "指定目录而ä¸æ˜¯æ¨¡å¼ã€‚若你的目录以 '!' 开头,传入 --skip-checks"
+
+#: builtin/sparse-checkout.c:716
+msgid ""
+"specify directories rather than patterns. If your directory really has any "
+"of '*?[]\\' in it, pass --skip-checks"
+msgstr ""
+"指定目录而ä¸æ˜¯æ¨¡å¼ã€‚è‹¥ä½ çš„ç›®å½•çœŸçš„åŒ…å« '*?[]\\' 中的字符,传入 --skip-checks"
+
+#: builtin/sparse-checkout.c:732
+#, c-format
+msgid ""
+"'%s' is not a directory; to treat it as a directory anyway, rerun with --"
+"skip-checks"
+msgstr "'%s' ä¸æ˜¯ç›®å½•ï¼›è‹¥æ— è®ºå¦‚何都è¦å°†å®ƒå½“作目录,使用 --skip-checks é‡æ–°è¿è¡Œ"
+
+#: builtin/sparse-checkout.c:734
+#, c-format
+msgid ""
+"pass a leading slash before paths such as '%s' if you want a single file "
+"(see NON-CONE PROBLEMS in the git-sparse-checkout manual)."
+msgstr ""
+"如果您想è¦å•ç‹¬ä¸€ä¸ªæ–‡ä»¶ï¼Œåœ¨ç±»ä¼¼äºŽ '%s' 的路径å‰ä¼ å…¥å‰ç½®æ–œçº¿ (å‚è§ git-sparse-"
+"checkout 手册中的 NON-CONE PROBLEMS)。"
+
+#: builtin/sparse-checkout.c:739
+msgid "git sparse-checkout add [--skip-checks] (--stdin | <patterns>)"
+msgstr "git sparse-checkout add [--skip-checks] (--stdin | <模å¼>)"
+
+#: builtin/sparse-checkout.c:752 builtin/sparse-checkout.c:797
+msgid ""
+"skip some sanity checks on the given paths that might give false positives"
+msgstr "跳过å¯èƒ½å¯¹ä¸€äº›ç›®å½•äº§ç”Ÿå‡é˜³æ€§é”™è¯¯çš„åˆç†æ€§æ£€æŸ¥"
-#: builtin/sparse-checkout.c:694 builtin/sparse-checkout.c:733
+#: builtin/sparse-checkout.c:755 builtin/sparse-checkout.c:800
msgid "read patterns from standard in"
msgstr "从标准输入读å–模å¼"
-#: builtin/sparse-checkout.c:699
+#: builtin/sparse-checkout.c:760
msgid "no sparse-checkout to add to"
msgstr "没有å¯ä»¥æ·»åŠ åˆ°çš„稀ç–检出"
-#: builtin/sparse-checkout.c:712
+#: builtin/sparse-checkout.c:775
msgid ""
-"git sparse-checkout set [--[no-]cone] [--[no-]sparse-index] (--stdin | "
-"<patterns>)"
+"git sparse-checkout set [--[no-]cone] [--[no-]sparse-index] [--skip-checks] "
+"(--stdin | <patterns>)"
msgstr ""
-"git sparse-checkout set [--[no-]cone] [--[no-]sparse-index] (--stdin | <模å¼"
-">)"
-
-#: builtin/sparse-checkout.c:765
-msgid "git sparse-checkout reapply [--[no-]cone] [--[no-]sparse-index]"
-msgstr "git sparse-checkout reapply [--[no-]cone] [--[no-]sparse-index]"
+"git sparse-checkout set [--[no-]cone] [--[no-]sparse-index] [--skip-checks] "
+"(--stdin | <模å¼>)"
-#: builtin/sparse-checkout.c:785
+#: builtin/sparse-checkout.c:854
msgid "must be in a sparse-checkout to reapply sparsity patterns"
msgstr "必须在稀ç–检出中é‡åº”用稀ç–模å¼"
-#: builtin/sparse-checkout.c:803
-msgid "git sparse-checkout disable"
-msgstr "git sparse-checkout disable"
-
-#: builtin/sparse-checkout.c:845
+#: builtin/sparse-checkout.c:914
msgid "error while refreshing working directory"
msgstr "刷新工作目录时出错"
@@ -22131,167 +22634,151 @@ msgstr "索引未从贮è—中æ¢å¤ã€‚"
msgid "could not restore untracked files from stash"
msgstr "无法从贮è—æ¡ç›®ä¸­æ¢å¤æœªè·Ÿè¸ªæ–‡ä»¶"
-#: builtin/stash.c:608 builtin/stash.c:706
+#: builtin/stash.c:608 builtin/stash.c:695
msgid "attempt to recreate the index"
msgstr "å°è¯•é‡å»ºç´¢å¼•"
-#: builtin/stash.c:652
+#: builtin/stash.c:641
#, c-format
msgid "Dropped %s (%s)"
msgstr "丢弃了 %s(%s)"
-#: builtin/stash.c:655
+#: builtin/stash.c:644
#, c-format
msgid "%s: Could not drop stash entry"
msgstr "%s:无法丢弃贮è—æ¡ç›®"
-#: builtin/stash.c:668
+#: builtin/stash.c:657
#, c-format
msgid "'%s' is not a stash reference"
msgstr "'%s' ä¸æ˜¯ä¸€ä¸ªè´®è—引用"
-#: builtin/stash.c:718
+#: builtin/stash.c:707
msgid "The stash entry is kept in case you need it again."
msgstr "è´®è—æ¡ç›®è¢«ä¿ç•™ä»¥å¤‡æ‚¨å†æ¬¡éœ€è¦ã€‚"
-#: builtin/stash.c:741
+#: builtin/stash.c:730
msgid "No branch name specified"
msgstr "未指定分支å"
-#: builtin/stash.c:825
+#: builtin/stash.c:809
msgid "failed to parse tree"
msgstr "无法解æžæ ‘"
-#: builtin/stash.c:836
+#: builtin/stash.c:820
msgid "failed to unpack trees"
msgstr "无法解包目录树"
-#: builtin/stash.c:856
+#: builtin/stash.c:840
msgid "include untracked files in the stash"
msgstr "在贮è—中包å«æœªè·Ÿè¸ªæ–‡ä»¶"
-#: builtin/stash.c:859
+#: builtin/stash.c:843
msgid "only show untracked files in the stash"
msgstr "仅显示贮è—中的未跟踪文件"
-#: builtin/stash.c:946 builtin/stash.c:983
+#: builtin/stash.c:930 builtin/stash.c:967
#, c-format
msgid "Cannot update %s with %s"
msgstr "无法用 %2$s 更新 %1$s"
-#: builtin/stash.c:964 builtin/stash.c:1678 builtin/stash.c:1750
+#: builtin/stash.c:948 builtin/stash.c:1667 builtin/stash.c:1739
msgid "stash message"
msgstr "è´®è—说明"
-#: builtin/stash.c:974
+#: builtin/stash.c:958
msgid "\"git stash store\" requires one <commit> argument"
msgstr "\"git stash store\" 需è¦ä¸€ä¸ª <æ交> å‚æ•°"
-#: builtin/stash.c:1159
+#: builtin/stash.c:1143
msgid "No staged changes"
msgstr "没有暂存的修改"
-#: builtin/stash.c:1220
+#: builtin/stash.c:1204
msgid "No changes selected"
msgstr "没有选择å˜æ›´"
-#: builtin/stash.c:1320
+#: builtin/stash.c:1304
msgid "You do not have the initial commit yet"
msgstr "您尚未建立åˆå§‹æ交"
-#: builtin/stash.c:1347
+#: builtin/stash.c:1331
msgid "Cannot save the current index state"
msgstr "无法ä¿å­˜å½“å‰ç´¢å¼•çŠ¶æ€"
-#: builtin/stash.c:1356
+#: builtin/stash.c:1340
msgid "Cannot save the untracked files"
msgstr "无法ä¿å­˜æœªè·Ÿè¸ªæ–‡ä»¶"
-#: builtin/stash.c:1367 builtin/stash.c:1386
+#: builtin/stash.c:1351 builtin/stash.c:1370
msgid "Cannot save the current worktree state"
msgstr "无法ä¿å­˜å½“å‰å·¥ä½œåŒºçŠ¶æ€"
-#: builtin/stash.c:1377
+#: builtin/stash.c:1361
msgid "Cannot save the current staged state"
msgstr "无法ä¿å­˜å½“å‰æš‚存状æ€"
-#: builtin/stash.c:1414
+#: builtin/stash.c:1398
msgid "Cannot record working tree state"
msgstr "ä¸èƒ½è®°å½•å·¥ä½œåŒºçŠ¶æ€"
-#: builtin/stash.c:1463
+#: builtin/stash.c:1447
msgid "Can't use --patch and --include-untracked or --all at the same time"
msgstr "ä¸èƒ½åŒæ—¶ä½¿ç”¨å‚æ•° --patch å’Œ --include-untracked 或 --all"
-#: builtin/stash.c:1474
+#: builtin/stash.c:1458
msgid "Can't use --staged and --include-untracked or --all at the same time"
msgstr "ä¸èƒ½åŒæ—¶ä½¿ç”¨å‚æ•° --staged å’Œ --include-untracked 或 --all"
-#: builtin/stash.c:1492
+#: builtin/stash.c:1476
msgid "Did you forget to 'git add'?"
msgstr "您是å¦å¿˜äº†æ‰§è¡Œ 'git add'?"
-#: builtin/stash.c:1507
+#: builtin/stash.c:1491
msgid "No local changes to save"
msgstr "没有è¦ä¿å­˜çš„本地修改"
-#: builtin/stash.c:1514
+#: builtin/stash.c:1498
msgid "Cannot initialize stash"
msgstr "无法åˆå§‹åŒ–è´®è—"
-#: builtin/stash.c:1529
+#: builtin/stash.c:1513
msgid "Cannot save the current status"
msgstr "无法ä¿å­˜å½“å‰çŠ¶æ€"
-#: builtin/stash.c:1534
+#: builtin/stash.c:1518
#, c-format
msgid "Saved working directory and index state %s"
msgstr "ä¿å­˜å·¥ä½œç›®å½•å’Œç´¢å¼•çŠ¶æ€ %s"
-#: builtin/stash.c:1627
+#: builtin/stash.c:1615
msgid "Cannot remove worktree changes"
msgstr "无法删除工作区å˜æ›´"
-#: builtin/stash.c:1667 builtin/stash.c:1739
+#: builtin/stash.c:1656 builtin/stash.c:1728
msgid "keep index"
msgstr "ä¿æŒç´¢å¼•"
-#: builtin/stash.c:1669 builtin/stash.c:1741
+#: builtin/stash.c:1658 builtin/stash.c:1730
msgid "stash staged changes only"
msgstr "åªè´®è—暂存的å˜æ›´"
-#: builtin/stash.c:1671 builtin/stash.c:1743
+#: builtin/stash.c:1660 builtin/stash.c:1732
msgid "stash in patch mode"
msgstr "以补ä¸æ¨¡å¼è´®è—"
-#: builtin/stash.c:1672 builtin/stash.c:1744
+#: builtin/stash.c:1661 builtin/stash.c:1733
msgid "quiet mode"
msgstr "é™é»˜æ¨¡å¼"
-#: builtin/stash.c:1674 builtin/stash.c:1746
+#: builtin/stash.c:1663 builtin/stash.c:1735
msgid "include untracked files in stash"
msgstr "è´®è—中包å«æœªè·Ÿè¸ªæ–‡ä»¶"
-#: builtin/stash.c:1676 builtin/stash.c:1748
+#: builtin/stash.c:1665 builtin/stash.c:1737
msgid "include ignore files"
msgstr "包å«å¿½ç•¥çš„文件"
-#: builtin/stash.c:1783
-msgid ""
-"the stash.useBuiltin support has been removed!\n"
-"See its entry in 'git help config' for details."
-msgstr ""
-"对 stash.useBuiltin 的支æŒå·²è¢«åˆ é™¤ï¼\n"
-"è¯¦è§ 'git help config' 中的æ¡ç›®ã€‚"
-
-#: builtin/stripspace.c:18
-msgid "git stripspace [-s | --strip-comments]"
-msgstr "git stripspace [-s | --strip-comments]"
-
-#: builtin/stripspace.c:19
-msgid "git stripspace [-c | --comment-lines]"
-msgstr "git stripspace [-c | --comment-lines]"
-
#: builtin/stripspace.c:37
msgid "skip and remove all lines starting with comment character"
msgstr "跳过和移除所有的注释行"
@@ -22300,47 +22787,43 @@ msgstr "跳过和移除所有的注释行"
msgid "prepend comment character and space to each line"
msgstr "为æ¯ä¸€è¡Œçš„行首添加注释符和空格"
-#: builtin/submodule--helper.c:46 builtin/submodule--helper.c:2668
+#: builtin/submodule--helper.c:50 builtin/submodule--helper.c:2486
#, c-format
msgid "Expecting a full ref name, got %s"
msgstr "期望一个完整的引用å称,å´å¾—到 %s"
-#: builtin/submodule--helper.c:63
-msgid "submodule--helper print-default-remote takes no arguments"
-msgstr "submodule--helper print-default-remote ä¸å¸¦å‚æ•°"
-
-#: builtin/submodule--helper.c:101
+#: builtin/submodule--helper.c:103
#, c-format
msgid "cannot strip one component off url '%s'"
msgstr "无法从 url '%s' 剥离一个组件"
-#: builtin/submodule--helper.c:211
+#: builtin/submodule--helper.c:213
#, c-format
msgid ""
"could not look up configuration '%s'. Assuming this repository is its own "
"authoritative upstream."
msgstr "无法找到é…ç½® '%s'。å‡å®šè¿™ä¸ªä»“库是其自身的官方上游。"
-#: builtin/submodule--helper.c:405 builtin/submodule--helper.c:1859
+#: builtin/submodule--helper.c:413 builtin/submodule--helper.c:1873
msgid "alternative anchor for relative paths"
msgstr "相对路径的替代锚记(anchor)"
-#: builtin/submodule--helper.c:410
+#: builtin/submodule--helper.c:418
msgid "git submodule--helper list [--prefix=<path>] [<path>...]"
msgstr "git submodule--helper list [--prefix=<路径>] [<路径>...]"
-#: builtin/submodule--helper.c:468 builtin/submodule--helper.c:605
-#: builtin/submodule--helper.c:628
+#: builtin/submodule--helper.c:476 builtin/submodule--helper.c:617
+#: builtin/submodule--helper.c:640
#, c-format
msgid "No url found for submodule path '%s' in .gitmodules"
msgstr "在 .gitmodules 中未找到å­æ¨¡ç»„路径 '%s' çš„ url"
-#: builtin/submodule--helper.c:520
+#: builtin/submodule--helper.c:528
#, c-format
msgid "Entering '%s'\n"
msgstr "进入 '%s'\n"
-#: builtin/submodule--helper.c:523
+#: builtin/submodule--helper.c:531
#, c-format
msgid ""
"run_command returned non-zero status for %s\n"
@@ -22349,7 +22832,7 @@ msgstr ""
"对 %s 执行 run_command 返回éžé›¶å€¼ã€‚\n"
"."
-#: builtin/submodule--helper.c:545
+#: builtin/submodule--helper.c:553
#, c-format
msgid ""
"run_command returned non-zero status while recursing in the nested "
@@ -22359,158 +22842,158 @@ msgstr ""
"在递归 %s çš„å­æ¨¡ç»„执行 run_command 时返回éžé›¶å€¼ã€‚\n"
"."
-#: builtin/submodule--helper.c:561
+#: builtin/submodule--helper.c:569
msgid "suppress output of entering each submodule command"
msgstr "抑制进入æ¯ä¸€ä¸ªå­æ¨¡ç»„命令的输出"
-#: builtin/submodule--helper.c:563 builtin/submodule--helper.c:864
-#: builtin/submodule--helper.c:1453
+#: builtin/submodule--helper.c:571 builtin/submodule--helper.c:876
+#: builtin/submodule--helper.c:1458
msgid "recurse into nested submodules"
msgstr "递归进入嵌套å­æ¨¡ç»„中"
-#: builtin/submodule--helper.c:568
+#: builtin/submodule--helper.c:576
msgid "git submodule--helper foreach [--quiet] [--recursive] [--] <command>"
msgstr "git submodule--helper foreach [--quiet] [--recursive] [--] <命令>"
-#: builtin/submodule--helper.c:642
+#: builtin/submodule--helper.c:654
#, c-format
msgid "Failed to register url for submodule path '%s'"
msgstr "无法为å­æ¨¡ç»„路径 '%s' 注册 url"
-#: builtin/submodule--helper.c:646
+#: builtin/submodule--helper.c:658
#, c-format
msgid "Submodule '%s' (%s) registered for path '%s'\n"
msgstr "å­æ¨¡ç»„ '%s'(%s)已对路径 '%s' 注册\n"
-#: builtin/submodule--helper.c:656
+#: builtin/submodule--helper.c:668
#, c-format
msgid "warning: command update mode suggested for submodule '%s'\n"
msgstr "警告:建议å­æ¨¡ç»„ '%s' 使用命令更新模å¼\n"
-#: builtin/submodule--helper.c:663
+#: builtin/submodule--helper.c:675
#, c-format
msgid "Failed to register update mode for submodule path '%s'"
msgstr "无法为å­æ¨¡ç»„路径 '%s' 注册更新模å¼"
-#: builtin/submodule--helper.c:685
+#: builtin/submodule--helper.c:697
msgid "suppress output for initializing a submodule"
msgstr "抑制å­æ¨¡ç»„åˆå§‹åŒ–的输出"
-#: builtin/submodule--helper.c:690
+#: builtin/submodule--helper.c:702
msgid "git submodule--helper init [<options>] [<path>]"
msgstr "git submodule--helper init [<选项>] [<路径>]"
-#: builtin/submodule--helper.c:763 builtin/submodule--helper.c:898
+#: builtin/submodule--helper.c:775 builtin/submodule--helper.c:910
#, c-format
msgid "no submodule mapping found in .gitmodules for path '%s'"
msgstr "在 .gitmodules 中没有å‘现路径 '%s' çš„å­æ¨¡ç»„映射"
-#: builtin/submodule--helper.c:811
+#: builtin/submodule--helper.c:823
#, c-format
msgid "could not resolve HEAD ref inside the submodule '%s'"
msgstr "无法解æžå­æ¨¡ç»„ '%s' çš„ HEAD 引用"
-#: builtin/submodule--helper.c:838 builtin/submodule--helper.c:1423
+#: builtin/submodule--helper.c:850 builtin/submodule--helper.c:1428
#, c-format
msgid "failed to recurse into submodule '%s'"
msgstr "无法递归进入å­æ¨¡ç»„ '%s'"
-#: builtin/submodule--helper.c:862 builtin/submodule--helper.c:1590
+#: builtin/submodule--helper.c:874 builtin/submodule--helper.c:1595
msgid "suppress submodule status output"
msgstr "抑制å­æ¨¡ç»„状æ€è¾“出"
-#: builtin/submodule--helper.c:863
+#: builtin/submodule--helper.c:875
msgid ""
"use commit stored in the index instead of the one stored in the submodule "
"HEAD"
msgstr "使用存储在索引中的æ交,而éžå­˜å‚¨åœ¨å­æ¨¡ç»„ HEAD 中的æ交"
-#: builtin/submodule--helper.c:869
+#: builtin/submodule--helper.c:881
msgid "git submodule status [--quiet] [--cached] [--recursive] [<path>...]"
msgstr "git submodule status [--quiet] [--cached] [--recursive] [<路径>...]"
-#: builtin/submodule--helper.c:893
+#: builtin/submodule--helper.c:905
msgid "git submodule--helper name <path>"
msgstr "git submodule--helper name <路径>"
-#: builtin/submodule--helper.c:965
+#: builtin/submodule--helper.c:977
#, c-format
msgid "* %s %s(blob)->%s(submodule)"
msgstr "* %s %s(数æ®å¯¹è±¡ï¼‰->%s(å­æ¨¡ç»„)"
-#: builtin/submodule--helper.c:968
+#: builtin/submodule--helper.c:980
#, c-format
msgid "* %s %s(submodule)->%s(blob)"
msgstr "* %s %s(å­æ¨¡ç»„)->%s(数æ®å¯¹è±¡ï¼‰"
-#: builtin/submodule--helper.c:981
+#: builtin/submodule--helper.c:993
#, c-format
msgid "%s"
msgstr "%s"
-#: builtin/submodule--helper.c:1031
+#: builtin/submodule--helper.c:1043
#, c-format
msgid "couldn't hash object from '%s'"
msgstr "ä¸èƒ½ä»Ž '%s' 创建哈希对象"
-#: builtin/submodule--helper.c:1035
+#: builtin/submodule--helper.c:1047
#, c-format
msgid "unexpected mode %o\n"
msgstr "æ„å¤–çš„æ¨¡å¼ %o\n"
-#: builtin/submodule--helper.c:1276
+#: builtin/submodule--helper.c:1288
msgid "use the commit stored in the index instead of the submodule HEAD"
msgstr "使用存储在索引中的æ交,而éžå­˜å‚¨åœ¨å­æ¨¡ç»„ HEAD 中的æ交"
-#: builtin/submodule--helper.c:1278
+#: builtin/submodule--helper.c:1290
msgid "compare the commit in the index with that in the submodule HEAD"
msgstr "比较存储在索引和å­æ¨¡ç»„ HEAD 中的æ交"
-#: builtin/submodule--helper.c:1280
+#: builtin/submodule--helper.c:1292
msgid "skip submodules with 'ignore_config' value set to 'all'"
msgstr "跳过设置了 'ignore_config' 为 'all' çš„å­æ¨¡ç»„"
-#: builtin/submodule--helper.c:1282
+#: builtin/submodule--helper.c:1294
msgid "limit the summary size"
msgstr "é™åˆ¶æ€»ç»“的大å°"
-#: builtin/submodule--helper.c:1287
+#: builtin/submodule--helper.c:1299
msgid "git submodule--helper summary [<options>] [<commit>] [--] [<path>]"
msgstr "git submodule--helper summary [<选项>] [<æ交>] [--] [<路径>]"
-#: builtin/submodule--helper.c:1311
+#: builtin/submodule--helper.c:1323
msgid "could not fetch a revision for HEAD"
msgstr "ä¸èƒ½ä¸º HEAD 获å–一个版本"
-#: builtin/submodule--helper.c:1373
+#: builtin/submodule--helper.c:1384
#, c-format
msgid "Synchronizing submodule url for '%s'\n"
msgstr "为 '%s' åŒæ­¥å­æ¨¡ç»„ url\n"
-#: builtin/submodule--helper.c:1379
+#: builtin/submodule--helper.c:1390
#, c-format
msgid "failed to register url for submodule path '%s'"
msgstr "无法为å­æ¨¡ç»„路径 '%s' 注册 url"
-#: builtin/submodule--helper.c:1393
+#: builtin/submodule--helper.c:1399
#, c-format
msgid "failed to get the default remote for submodule '%s'"
msgstr "无法得到å­æ¨¡ç»„ '%s' 的默认远程关è”"
-#: builtin/submodule--helper.c:1404
+#: builtin/submodule--helper.c:1409
#, c-format
msgid "failed to update remote for submodule '%s'"
msgstr "无法为å­æ¨¡ç»„ '%s' 更新远程关è”"
-#: builtin/submodule--helper.c:1451
+#: builtin/submodule--helper.c:1456
msgid "suppress output of synchronizing submodule url"
msgstr "抑制å­æ¨¡ç»„ URL åŒæ­¥çš„输出"
-#: builtin/submodule--helper.c:1458
+#: builtin/submodule--helper.c:1463
msgid "git submodule--helper sync [--quiet] [--recursive] [<path>]"
msgstr "git submodule--helper sync [--quiet] [--recursive] [<路径>]"
-#: builtin/submodule--helper.c:1508
+#: builtin/submodule--helper.c:1513
#, c-format
msgid ""
"Submodule work tree '%s' contains a .git directory. This will be replaced "
@@ -22519,52 +23002,52 @@ msgstr ""
"å­æ¨¡ç»„工作区 '%s' 包å«ä¸€ä¸ª .git 目录。这将会用 absorbgitdirs å­å‘½ä»¤æ›¿æ¢æˆä¸€"
"个 .git 文件。"
-#: builtin/submodule--helper.c:1525
+#: builtin/submodule--helper.c:1530
#, c-format
msgid ""
"Submodule work tree '%s' contains local modifications; use '-f' to discard "
"them"
msgstr "å­æ¨¡ç»„工作区 '%s' 包å«æœ¬åœ°ä¿®æ”¹ï¼›ä½¿ç”¨ '-f' 丢弃它们"
-#: builtin/submodule--helper.c:1533
+#: builtin/submodule--helper.c:1538
#, c-format
msgid "Cleared directory '%s'\n"
msgstr "已清除目录 '%s'\n"
-#: builtin/submodule--helper.c:1535
+#: builtin/submodule--helper.c:1540
#, c-format
msgid "Could not remove submodule work tree '%s'\n"
msgstr "无法移除å­æ¨¡ç»„工作区 '%s'\n"
-#: builtin/submodule--helper.c:1546
+#: builtin/submodule--helper.c:1551
#, c-format
msgid "could not create empty submodule directory %s"
msgstr "ä¸èƒ½åˆ›å»ºç©ºçš„å­æ¨¡ç»„目录 %s"
-#: builtin/submodule--helper.c:1562
+#: builtin/submodule--helper.c:1567
#, c-format
msgid "Submodule '%s' (%s) unregistered for path '%s'\n"
msgstr "å­æ¨¡ç»„ '%s'(%s)未对路径 '%s' 注册\n"
-#: builtin/submodule--helper.c:1591
+#: builtin/submodule--helper.c:1596
msgid "remove submodule working trees even if they contain local changes"
msgstr "删除å­æ¨¡ç»„工作区,å³ä½¿åŒ…å«æœ¬åœ°ä¿®æ”¹"
-#: builtin/submodule--helper.c:1592
+#: builtin/submodule--helper.c:1597
msgid "unregister all submodules"
msgstr "将所有å­æ¨¡ç»„å–消注册"
-#: builtin/submodule--helper.c:1597
+#: builtin/submodule--helper.c:1602
msgid ""
"git submodule deinit [--quiet] [-f | --force] [--all | [--] [<path>...]]"
msgstr ""
"git submodule deinit [--quiet] [-f | --force] [--all | [--] [<路径>...]]"
-#: builtin/submodule--helper.c:1611
+#: builtin/submodule--helper.c:1616
msgid "Use '--all' if you really want to deinitialize all submodules"
msgstr "如果您确实想è¦å¯¹æ‰€æœ‰å­æ¨¡ç»„执行å–消åˆå§‹åŒ–,请使用 '--all'"
-#: builtin/submodule--helper.c:1656
+#: builtin/submodule--helper.c:1665
msgid ""
"An alternate computed from a superproject's alternate is invalid.\n"
"To allow Git to clone without an alternate in such a case, set\n"
@@ -22576,100 +23059,101 @@ msgstr ""
"Git ä¸ä½¿ç”¨å¤‡ç”¨ä»“库克隆,或者等效地使用 '--reference-if-able' 而éž\n"
"'--reference' æ¥å…‹éš†ã€‚"
-#: builtin/submodule--helper.c:1701 builtin/submodule--helper.c:1704
+#: builtin/submodule--helper.c:1710 builtin/submodule--helper.c:1713
#, c-format
msgid "submodule '%s' cannot add alternate: %s"
msgstr "å­æ¨¡ç»„ '%s' ä¸èƒ½æ·»åŠ ä»“库备选:%s"
-#: builtin/submodule--helper.c:1740
+#: builtin/submodule--helper.c:1749
#, c-format
msgid "Value '%s' for submodule.alternateErrorStrategy is not recognized"
msgstr "ä¸èƒ½è¯†åˆ« submodule.alternateErrorStrategy çš„å–值 '%s'"
-#: builtin/submodule--helper.c:1747
+#: builtin/submodule--helper.c:1756
#, c-format
msgid "Value '%s' for submodule.alternateLocation is not recognized"
msgstr "ä¸èƒ½è¯†åˆ« submodule.alternateLocation çš„å–值 '%s'"
-#: builtin/submodule--helper.c:1772
+#: builtin/submodule--helper.c:1781
#, c-format
msgid "refusing to create/use '%s' in another submodule's git dir"
msgstr "æ‹’ç»åœ¨å¦ä¸€ä¸ªå­æ¨¡ç»„çš„ git 目录中创建/使用 '%s'"
-#: builtin/submodule--helper.c:1813
+#: builtin/submodule--helper.c:1826
#, c-format
msgid "clone of '%s' into submodule path '%s' failed"
msgstr "无法克隆 '%s' 到å­æ¨¡ç»„路径 '%s'"
-#: builtin/submodule--helper.c:1818
+#: builtin/submodule--helper.c:1831
#, c-format
msgid "directory not empty: '%s'"
msgstr "目录éžç©ºï¼š'%s'"
-#: builtin/submodule--helper.c:1830
+#: builtin/submodule--helper.c:1843
#, c-format
msgid "could not get submodule directory for '%s'"
msgstr "无法得到 '%s' çš„å­æ¨¡ç»„目录"
-#: builtin/submodule--helper.c:1862
+#: builtin/submodule--helper.c:1876
msgid "where the new submodule will be cloned to"
msgstr "æ–°çš„å­æ¨¡ç»„å°†è¦å…‹éš†çš„路径"
-#: builtin/submodule--helper.c:1865
+#: builtin/submodule--helper.c:1879
msgid "name of the new submodule"
msgstr "æ–°å­æ¨¡ç»„çš„å称"
-#: builtin/submodule--helper.c:1868
+#: builtin/submodule--helper.c:1882
msgid "url where to clone the submodule from"
msgstr "克隆å­æ¨¡ç»„çš„ url 地å€"
-#: builtin/submodule--helper.c:1876 builtin/submodule--helper.c:3265
+#: builtin/submodule--helper.c:1890 builtin/submodule--helper.c:3383
msgid "depth for shallow clones"
msgstr "浅克隆的深度"
-#: builtin/submodule--helper.c:1879 builtin/submodule--helper.c:2526
-#: builtin/submodule--helper.c:3258
+#: builtin/submodule--helper.c:1893 builtin/submodule--helper.c:2731
+#: builtin/submodule--helper.c:3376
msgid "force cloning progress"
msgstr "强制显示克隆进度"
-#: builtin/submodule--helper.c:1881 builtin/submodule--helper.c:2528
+#: builtin/submodule--helper.c:1895 builtin/submodule--helper.c:2733
msgid "disallow cloning into non-empty directory"
msgstr "ä¸å…许克隆到一个éžç©ºç›®å½•"
-#: builtin/submodule--helper.c:1888
+#: builtin/submodule--helper.c:1903
msgid ""
"git submodule--helper clone [--prefix=<path>] [--quiet] [--reference "
-"<repository>] [--name <name>] [--depth <depth>] [--single-branch] --url "
-"<url> --path <path>"
+"<repository>] [--name <name>] [--depth <depth>] [--single-branch] [--filter "
+"<filter-spec>] --url <url> --path <path>"
msgstr ""
"git submodule--helper clone [--prefix=<路径>] [--quiet] [--reference <仓库>] "
-"[--name <åå­—>] [--depth <深度>] [--single-branch] --url <url> --path <路径>"
+"[--name <åå­—>] [--depth <深度>] [--single-branch] [--filter <过滤器规格>] --"
+"url <url> --path <路径>"
-#: builtin/submodule--helper.c:1925
+#: builtin/submodule--helper.c:1943
#, c-format
msgid "Invalid update mode '%s' for submodule path '%s'"
msgstr "å­æ¨¡ç»„路径 '%2$s' çš„æ›´æ–°æ¨¡å¼ '%1$s' 无效"
-#: builtin/submodule--helper.c:1929
+#: builtin/submodule--helper.c:1947
#, c-format
msgid "Invalid update mode '%s' configured for submodule path '%s'"
msgstr "为å­æ¨¡ç»„路径 '%2$s' é…ç½®çš„æ›´æ–°æ¨¡å¼ '%1$s' 无效"
-#: builtin/submodule--helper.c:2044
+#: builtin/submodule--helper.c:2041
#, c-format
msgid "Submodule path '%s' not initialized"
msgstr "å­æ¨¡ç»„路径 '%s' 尚未åˆå§‹åŒ–"
-#: builtin/submodule--helper.c:2048
+#: builtin/submodule--helper.c:2045
msgid "Maybe you want to use 'update --init'?"
msgstr "也许您想è¦æ‰§è¡Œ 'update --init'?"
-#: builtin/submodule--helper.c:2078
+#: builtin/submodule--helper.c:2075
#, c-format
msgid "Skipping unmerged submodule %s"
msgstr "略过未åˆå¹¶çš„å­æ¨¡ç»„ %s"
-#: builtin/submodule--helper.c:2107
+#: builtin/submodule--helper.c:2104
#, c-format
msgid "Skipping submodule '%s'"
msgstr "略过å­æ¨¡ç»„ '%s'"
@@ -22684,226 +23168,254 @@ msgstr "克隆 '%s' 失败。按计划é‡è¯•"
msgid "Failed to clone '%s' a second time, aborting"
msgstr "第二次å°è¯•å…‹éš† '%s' 失败,退出"
-#: builtin/submodule--helper.c:2373
+#: builtin/submodule--helper.c:2371
#, c-format
msgid "Unable to checkout '%s' in submodule path '%s'"
msgstr "无法在å­æ¨¡ç»„路径 '%2$s' 中检出 '%1$s'"
-#: builtin/submodule--helper.c:2377
+#: builtin/submodule--helper.c:2375
#, c-format
msgid "Unable to rebase '%s' in submodule path '%s'"
msgstr "无法在å­æ¨¡ç»„路径 '%2$s' 中å˜åŸº '%1$s'"
-#: builtin/submodule--helper.c:2381
+#: builtin/submodule--helper.c:2379
#, c-format
msgid "Unable to merge '%s' in submodule path '%s'"
msgstr "无法在å­æ¨¡ç»„路径 '%2$s' 中åˆå¹¶ '%1$s'"
-#: builtin/submodule--helper.c:2385
+#: builtin/submodule--helper.c:2383
#, c-format
msgid "Execution of '%s %s' failed in submodule path '%s'"
msgstr "在å­æ¨¡ç»„路径 '%3$s' 中执行 '%1$s %2$s' 失败"
-#: builtin/submodule--helper.c:2409
+#: builtin/submodule--helper.c:2402
#, c-format
msgid "Submodule path '%s': checked out '%s'\n"
msgstr "å­æ¨¡ç»„路径 '%s':检出 '%s'\n"
-#: builtin/submodule--helper.c:2413
+#: builtin/submodule--helper.c:2406
#, c-format
msgid "Submodule path '%s': rebased into '%s'\n"
msgstr "å­æ¨¡ç»„路径 '%s':å˜åŸºè‡³ '%s'\n"
-#: builtin/submodule--helper.c:2417
+#: builtin/submodule--helper.c:2410
#, c-format
msgid "Submodule path '%s': merged in '%s'\n"
msgstr "å­æ¨¡ç»„路径 '%s':åˆå¹¶å…¥ '%s'\n"
-#: builtin/submodule--helper.c:2421
+#: builtin/submodule--helper.c:2414
#, c-format
msgid "Submodule path '%s': '%s %s'\n"
msgstr "å­æ¨¡ç»„路径 '%s':'%s %s'\n"
-#: builtin/submodule--helper.c:2445
+#: builtin/submodule--helper.c:2438
#, c-format
msgid "Unable to fetch in submodule path '%s'; trying to directly fetch %s:"
msgstr "无法在å­æ¨¡ç»„路径 '%s' 中获å–ï¼›å°è¯•ç›´æŽ¥èŽ·å– %s:"
-#: builtin/submodule--helper.c:2454
+#: builtin/submodule--helper.c:2447
#, c-format
msgid ""
"Fetched in submodule path '%s', but it did not contain %s. Direct fetching "
"of that commit failed."
msgstr "获å–了å­æ¨¡ç»„路径 '%s'ï¼Œä½†æ˜¯å®ƒæ²¡æœ‰åŒ…å« %s。直接获å–该æ交失败。"
-#: builtin/submodule--helper.c:2505 builtin/submodule--helper.c:2575
-#: builtin/submodule--helper.c:2813
+#: builtin/submodule--helper.c:2481
+#, c-format
+msgid ""
+"Submodule (%s) branch configured to inherit branch from superproject, but "
+"the superproject is not on any branch"
+msgstr "å­æ¨¡ç»„(%s)的分支é…置为继承上级项目的分支,但是上级项目ä¸åœ¨ä»»ä½•åˆ†æ”¯ä¸Š"
+
+#: builtin/submodule--helper.c:2499
+#, c-format
+msgid "could not get a repository handle for submodule '%s'"
+msgstr "无法获得å­æ¨¡ç»„ '%s' 的仓库å¥æŸ„"
+
+#: builtin/submodule--helper.c:2588
+#, c-format
+msgid "Unable to find current revision in submodule path '%s'"
+msgstr "无法在å­æ¨¡ç»„路径 '%s' 中找到当å‰ç‰ˆæœ¬"
+
+#: builtin/submodule--helper.c:2599
+#, c-format
+msgid "Unable to fetch in submodule path '%s'"
+msgstr "无法在å­æ¨¡ç»„路径 '%s' 中获å–"
+
+#: builtin/submodule--helper.c:2604
+#, c-format
+msgid "Unable to find %s revision in submodule path '%s'"
+msgstr "无法在å­æ¨¡ç»„路径 '%2$s' 中找到当å‰ç‰ˆæœ¬ %1$s"
+
+#: builtin/submodule--helper.c:2640
+#, c-format
+msgid "Failed to recurse into submodule path '%s'"
+msgstr "无法递归进入å­æ¨¡ç»„路径 '%s'"
+
+#: builtin/submodule--helper.c:2699
+msgid "force checkout updates"
+msgstr "强制检出更新"
+
+#: builtin/submodule--helper.c:2701
+msgid "initialize uninitialized submodules before update"
+msgstr "在更新å‰åˆå§‹åŒ–尚未åˆå§‹åŒ–çš„å­æ¨¡ç»„"
+
+#: builtin/submodule--helper.c:2703
+msgid "use SHA-1 of submodule's remote tracking branch"
+msgstr "使用å­æ¨¡ç»„远程追踪分支的 SHA-1"
+
+#: builtin/submodule--helper.c:2705
+msgid "traverse submodules recursively"
+msgstr "递归é历å­æ¨¡ç»„"
+
+#: builtin/submodule--helper.c:2707
+msgid "don't fetch new objects from the remote site"
+msgstr "ä¸è¦ä»Žè¿œç¨‹åœ°å€èŽ·å–新对象"
+
+#: builtin/submodule--helper.c:2710 builtin/submodule--helper.c:2892
msgid "path into the working tree"
msgstr "到工作区的路径"
-#: builtin/submodule--helper.c:2508 builtin/submodule--helper.c:2580
+#: builtin/submodule--helper.c:2713
msgid "path into the working tree, across nested submodule boundaries"
msgstr "工作区中的路径,递归嵌套å­æ¨¡ç»„"
-#: builtin/submodule--helper.c:2512 builtin/submodule--helper.c:2578
+#: builtin/submodule--helper.c:2717
msgid "rebase, merge, checkout or none"
msgstr "rebaseã€mergeã€checkout 或 none"
-#: builtin/submodule--helper.c:2518
+#: builtin/submodule--helper.c:2723
msgid "create a shallow clone truncated to the specified number of revisions"
msgstr "创建一个指定深度的浅克隆"
-#: builtin/submodule--helper.c:2521
+#: builtin/submodule--helper.c:2726
msgid "parallel jobs"
msgstr "并å‘任务"
-#: builtin/submodule--helper.c:2523
+#: builtin/submodule--helper.c:2728
msgid "whether the initial clone should follow the shallow recommendation"
msgstr "åˆå§‹å…‹éš†æ˜¯å¦åº”该éµå®ˆæŽ¨è的浅克隆选项"
-#: builtin/submodule--helper.c:2524
+#: builtin/submodule--helper.c:2729
msgid "don't print cloning progress"
msgstr "ä¸è¦è¾“出克隆进度"
-#: builtin/submodule--helper.c:2535
-msgid "git submodule--helper update-clone [--prefix=<path>] [<path>...]"
-msgstr "git submodule--helper update-clone [--prefix=<路径>] [<路径>...]"
+#: builtin/submodule--helper.c:2741
+msgid ""
+"git submodule [--quiet] update [--init [--filter=<filter-spec>]] [--remote] "
+"[-N|--no-fetch] [-f|--force] [--checkout|--merge|--rebase] [--[no-]recommend-"
+"shallow] [--reference <repository>] [--recursive] [--[no-]single-branch] "
+"[--] [<path>...]"
+msgstr ""
+"git submodule [--quiet] update [--init [--filter=<过滤器规格>]] [--remote] [-"
+"N|--no-fetch] [-f|--force] [--checkout|--merge|--rebase] [--[no-]recommend-"
+"shallow] [--reference <仓库>] [--recursive] [--[no-]single-branch] [--] [<路"
+"径>...]"
-#: builtin/submodule--helper.c:2548
+#: builtin/submodule--helper.c:2767
msgid "bad value for update parameter"
msgstr "update å‚æ•°å–值错误"
-#: builtin/submodule--helper.c:2566
-msgid "suppress output for update by rebase or merge"
-msgstr "抑制å˜åŸºæˆ–åˆå¹¶æ›´æ–°çš„输出"
-
-#: builtin/submodule--helper.c:2567
-msgid "force checkout updates"
-msgstr "强制检出更新"
-
-#: builtin/submodule--helper.c:2569
-msgid "don't fetch new objects from the remote site"
-msgstr "ä¸è¦ä»Žè¿œç¨‹åœ°å€èŽ·å–新对象"
-
-#: builtin/submodule--helper.c:2571
-msgid "overrides update mode in case the repository is a fresh clone"
-msgstr "当仓库是新的克隆时,覆盖更新模å¼"
-
-#: builtin/submodule--helper.c:2572
-msgid "depth for shallow fetch"
-msgstr "浅获å–的深度"
-
-#: builtin/submodule--helper.c:2582
-msgid "sha1"
-msgstr "sha1"
-
-#: builtin/submodule--helper.c:2583
-msgid "SHA1 expected by superproject"
-msgstr "上层项目期待的 SHA1"
-
-#: builtin/submodule--helper.c:2585
-msgid "subsha1"
-msgstr "subsha1"
-
-#: builtin/submodule--helper.c:2586
-msgid "SHA1 of submodule's HEAD"
-msgstr "å­æ¨¡å—头指针的 SHA1"
-
-#: builtin/submodule--helper.c:2592
-msgid "git submodule--helper run-update-procedure [<options>] <path>"
-msgstr "git submodule--helper run-update-procedure [<选项>] <路径>"
-
-#: builtin/submodule--helper.c:2663
-#, c-format
-msgid ""
-"Submodule (%s) branch configured to inherit branch from superproject, but "
-"the superproject is not on any branch"
-msgstr "å­æ¨¡ç»„(%s)的分支é…置为继承上级项目的分支,但是上级项目ä¸åœ¨ä»»ä½•åˆ†æ”¯ä¸Š"
-
-#: builtin/submodule--helper.c:2781
-#, c-format
-msgid "could not get a repository handle for submodule '%s'"
-msgstr "无法获得å­æ¨¡ç»„ '%s' 的仓库å¥æŸ„"
-
-#: builtin/submodule--helper.c:2814
+#: builtin/submodule--helper.c:2893
msgid "recurse into submodules"
msgstr "在å­æ¨¡ç»„中递归"
-#: builtin/submodule--helper.c:2820
+#: builtin/submodule--helper.c:2899
msgid "git submodule--helper absorb-git-dirs [<options>] [<path>...]"
msgstr "git submodule--helper absorb-git-dirs [<选项>] [<路径>...]"
-#: builtin/submodule--helper.c:2876
+#: builtin/submodule--helper.c:2955
msgid "check if it is safe to write to the .gitmodules file"
msgstr "检查写入 .gitmodules 文件是å¦å®‰å…¨"
-#: builtin/submodule--helper.c:2879
+#: builtin/submodule--helper.c:2958
msgid "unset the config in the .gitmodules file"
msgstr "å–消 .gitmodules 文件中的设置"
-#: builtin/submodule--helper.c:2884
+#: builtin/submodule--helper.c:2963
msgid "git submodule--helper config <name> [<value>]"
msgstr "git submodule--helper config <å称> [<值>]"
-#: builtin/submodule--helper.c:2885
+#: builtin/submodule--helper.c:2964
msgid "git submodule--helper config --unset <name>"
msgstr "git submodule--helper config --unset <å称>"
-#: builtin/submodule--helper.c:2886
-msgid "git submodule--helper config --check-writeable"
-msgstr "git submodule--helper config --check-writeable"
-
-#: builtin/submodule--helper.c:2905 builtin/submodule--helper.c:3121
-#: builtin/submodule--helper.c:3277
+#: builtin/submodule--helper.c:2984 builtin/submodule--helper.c:3238
+#: builtin/submodule--helper.c:3395
msgid "please make sure that the .gitmodules file is in the working tree"
msgstr "请确认 .gitmodules 文件在工作区里"
-#: builtin/submodule--helper.c:2921
+#: builtin/submodule--helper.c:3000
msgid "suppress output for setting url of a submodule"
msgstr "抑制设置å­æ¨¡ç»„ URL 的输出"
-#: builtin/submodule--helper.c:2925
+#: builtin/submodule--helper.c:3004
msgid "git submodule--helper set-url [--quiet] <path> <newurl>"
msgstr "git submodule--helper set-url [--quiet] <路径> <新地å€>"
-#: builtin/submodule--helper.c:2958
+#: builtin/submodule--helper.c:3037
msgid "set the default tracking branch to master"
msgstr "设置默认跟踪分支为 master"
-#: builtin/submodule--helper.c:2960
+#: builtin/submodule--helper.c:3039
msgid "set the default tracking branch"
msgstr "设置默认跟踪分支"
-#: builtin/submodule--helper.c:2964
+#: builtin/submodule--helper.c:3043
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:2965
+#: builtin/submodule--helper.c:3044
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:2972
+#: builtin/submodule--helper.c:3051
msgid "--branch or --default required"
msgstr "éœ€è¦ --branch 或 --default"
-#: builtin/submodule--helper.c:3038
+#: builtin/submodule--helper.c:3072 builtin/submodule--helper.c:3375
+msgid "print only error messages"
+msgstr "åªæ‰“å°é”™è¯¯æ¶ˆæ¯"
+
+#: builtin/submodule--helper.c:3073
+msgid "force creation"
+msgstr "强制创建"
+
+#: builtin/submodule--helper.c:3081
+msgid "show whether the branch would be created"
+msgstr "显示是å¦å°†è¦åˆ›å»ºåˆ†æ”¯"
+
+#: builtin/submodule--helper.c:3085
+msgid ""
+"git submodule--helper create-branch [-f|--force] [--create-reflog] [-q|--"
+"quiet] [-t|--track] [-n|--dry-run] <name> <start-oid> <start-name>"
+msgstr ""
+"git submodule--helper create-branch [-f|--force] [--create-reflog] [-q|--"
+"quiet] [-t|--track] [-n|--dry-run] <å称> <起始对象 ID> <起始å称>"
+
+#: builtin/submodule--helper.c:3097
+#, c-format
+msgid "creating branch '%s'"
+msgstr "正在创建分支 '%s'"
+
+#: builtin/submodule--helper.c:3155
#, c-format
msgid "Adding existing repo at '%s' to the index\n"
msgstr "å‘索引中添加ä½äºŽ '%s' 的已存在的仓库\n"
-#: builtin/submodule--helper.c:3041
+#: builtin/submodule--helper.c:3158
#, c-format
msgid "'%s' already exists and is not a valid git repo"
msgstr "'%s' 已存在并且ä¸æ˜¯ä¸€ä¸ªæœ‰æ•ˆçš„ git 仓库"
-#: builtin/submodule--helper.c:3054
+#: builtin/submodule--helper.c:3171
#, c-format
msgid "A git directory for '%s' is found locally with remote(s):\n"
msgstr "å‘现一个本地 git 目录 '%s' åŠå…¶è¿œç¨‹ä»“库:\n"
-#: builtin/submodule--helper.c:3061
+#: builtin/submodule--helper.c:3178
#, c-format
msgid ""
"If you want to reuse this local git directory instead of cloning again from\n"
@@ -22918,83 +23430,79 @@ msgstr ""
"使用 '--force' 选项。如果本地 git 目录ä¸æ˜¯æ­£ç¡®çš„仓库,或者如果您ä¸ç¡®å®šè¿™é‡Œ\n"
"çš„å«ä¹‰ï¼Œä½¿ç”¨ '--name' 选项指定å¦å¤–çš„å称。"
-#: builtin/submodule--helper.c:3073
+#: builtin/submodule--helper.c:3190
#, c-format
msgid "Reactivating local git directory for submodule '%s'\n"
msgstr "为å­æ¨¡ç»„ '%s' é‡æ–°æ¿€æ´»æœ¬åœ° git 目录\n"
-#: builtin/submodule--helper.c:3110
+#: builtin/submodule--helper.c:3227
#, c-format
msgid "unable to checkout submodule '%s'"
msgstr "无法检出å­æ¨¡ç»„ '%s'"
-#: builtin/submodule--helper.c:3149
+#: builtin/submodule--helper.c:3266
#, c-format
msgid "Failed to add submodule '%s'"
msgstr "无法添加å­æ¨¡ç»„ '%s'"
-#: builtin/submodule--helper.c:3153 builtin/submodule--helper.c:3158
-#: builtin/submodule--helper.c:3166
+#: builtin/submodule--helper.c:3270 builtin/submodule--helper.c:3275
+#: builtin/submodule--helper.c:3283
#, c-format
msgid "Failed to register submodule '%s'"
msgstr "无法注册å­æ¨¡ç»„ '%s'"
-#: builtin/submodule--helper.c:3222
+#: builtin/submodule--helper.c:3339
#, c-format
msgid "'%s' already exists in the index"
msgstr "'%s' å·²ç»å­˜åœ¨äºŽç´¢å¼•ä¸­"
-#: builtin/submodule--helper.c:3225
+#: builtin/submodule--helper.c:3342
#, c-format
msgid "'%s' already exists in the index and is not a submodule"
msgstr "'%s' å·²ç»å­˜åœ¨äºŽç´¢å¼•ä¸­ä¸”ä¸æ˜¯ä¸€ä¸ªå­æ¨¡ç»„"
-#: builtin/submodule--helper.c:3254
+#: builtin/submodule--helper.c:3372
msgid "branch of repository to add as submodule"
msgstr "è¦æ·»åŠ ä¸ºå­æ¨¡ç»„的仓库的分支"
-#: builtin/submodule--helper.c:3255
+#: builtin/submodule--helper.c:3373
msgid "allow adding an otherwise ignored submodule path"
msgstr "å…许添加一个被忽略的å­æ¨¡ç»„路径"
-#: builtin/submodule--helper.c:3257
-msgid "print only error messages"
-msgstr "åªæ‰“å°é”™è¯¯æ¶ˆæ¯"
-
-#: builtin/submodule--helper.c:3261
+#: builtin/submodule--helper.c:3379
msgid "borrow the objects from reference repositories"
msgstr "从引用仓库中借用对象"
-#: builtin/submodule--helper.c:3263
+#: builtin/submodule--helper.c:3381
msgid ""
"sets the submodule’s name to the given string instead of defaulting to its "
"path"
msgstr "å°†å­æ¨¡ç»„çš„å称设置为给定的字符串,而éžé»˜è®¤ä¸ºå…¶è·¯å¾„"
-#: builtin/submodule--helper.c:3270
+#: builtin/submodule--helper.c:3388
msgid "git submodule--helper add [<options>] [--] <repository> [<path>]"
msgstr "git submodule--helper add [<选项>] [--] <仓库> [<路径>]"
-#: builtin/submodule--helper.c:3298
+#: builtin/submodule--helper.c:3416
msgid "Relative path can only be used from the toplevel of the working tree"
msgstr "åªèƒ½åœ¨å·¥ä½œåŒºçš„顶级目录中使用相对路径"
-#: builtin/submodule--helper.c:3306
+#: builtin/submodule--helper.c:3425
#, c-format
msgid "repo URL: '%s' must be absolute or begin with ./|../"
msgstr "仓库 URL:'%s' 必须是ç»å¯¹è·¯å¾„或以 ./|../ 起始"
-#: builtin/submodule--helper.c:3341
+#: builtin/submodule--helper.c:3460
#, c-format
msgid "'%s' is not a valid submodule name"
msgstr "'%s' ä¸æ˜¯ä¸€ä¸ªæœ‰æ•ˆçš„å­æ¨¡ç»„å称"
-#: builtin/submodule--helper.c:3405 git.c:452 git.c:726
+#: builtin/submodule--helper.c:3520 git.c:453 git.c:729
#, c-format
msgid "%s doesn't support --super-prefix"
msgstr "%s ä¸æ”¯æŒ --super-prefix"
-#: builtin/submodule--helper.c:3411
+#: builtin/submodule--helper.c:3526
#, c-format
msgid "'%s' is not a valid submodule--helper subcommand"
msgstr "'%s' ä¸æ˜¯ä¸€ä¸ªæœ‰æ•ˆçš„ submodule--helper å­å‘½ä»¤"
@@ -23027,7 +23535,7 @@ msgstr "原因"
msgid "reason of the update"
msgstr "更新的原因"
-#: builtin/tag.c:25
+#: builtin/tag.c:26
msgid ""
"git tag [-a | -s | -u <key-id>] [-f] [-m <msg> | -F <file>]\n"
" <tagname> [<head>]"
@@ -23035,11 +23543,11 @@ msgstr ""
"git tag [-a | -s | -u <key-id>] [-f] [-m <消æ¯> | -F <文件>]\n"
" <标签å> [<头>]"
-#: builtin/tag.c:27
+#: builtin/tag.c:28
msgid "git tag -d <tagname>..."
msgstr "git tag -d <标签å>..."
-#: builtin/tag.c:28
+#: builtin/tag.c:29
msgid ""
"git tag -l [-n[<num>]] [--contains <commit>] [--no-contains <commit>] [--"
"points-at <object>]\n"
@@ -23050,21 +23558,21 @@ msgstr ""
"at <对象>]\n"
" [--format=<æ ¼å¼>] [--merged <æ交>] [--no-merged <æ交>] [<模å¼>...]"
-#: builtin/tag.c:30
+#: builtin/tag.c:31
msgid "git tag -v [--format=<format>] <tagname>..."
msgstr "git tag -v [--format=<æ ¼å¼>] <标签å>..."
-#: builtin/tag.c:100
+#: builtin/tag.c:101
#, c-format
msgid "tag '%s' not found."
msgstr "未å‘现标签 '%s'。"
-#: builtin/tag.c:135
+#: builtin/tag.c:136
#, c-format
msgid "Deleted tag '%s' (was %s)\n"
msgstr "已删除标签 '%s'(曾为 %s)\n"
-#: builtin/tag.c:170
+#: builtin/tag.c:171
#, c-format
msgid ""
"\n"
@@ -23077,7 +23585,7 @@ msgstr ""
" %s\n"
"以 '%c' 开头的行将被忽略。\n"
-#: builtin/tag.c:174
+#: builtin/tag.c:175
#, c-format
msgid ""
"\n"
@@ -23091,11 +23599,11 @@ msgstr ""
" %s\n"
"以 '%c' 开头的行将被ä¿ç•™ï¼Œå¦‚果您愿æ„也å¯ä»¥åˆ é™¤å®ƒä»¬ã€‚\n"
-#: builtin/tag.c:240
+#: builtin/tag.c:241
msgid "unable to sign the tag"
msgstr "无法签署标签"
-#: builtin/tag.c:258
+#: builtin/tag.c:259
#, c-format
msgid ""
"You have created a nested tag. The object referred to by your new tag is\n"
@@ -23108,115 +23616,119 @@ msgstr ""
"\n"
"\tgit tag -f %s %s^{}"
-#: builtin/tag.c:274
+#: builtin/tag.c:275
msgid "bad object type."
msgstr "å的对象类型。"
-#: builtin/tag.c:325
+#: builtin/tag.c:326
msgid "no tag message?"
msgstr "无标签说明?"
-#: builtin/tag.c:332
+#: builtin/tag.c:333
#, c-format
msgid "The tag message has been left in %s\n"
msgstr "标签说明被ä¿ç•™åœ¨ %s\n"
-#: builtin/tag.c:444
+#: builtin/tag.c:445
msgid "list tag names"
msgstr "列出标签å称"
-#: builtin/tag.c:446
+#: builtin/tag.c:447
msgid "print <n> lines of each tag message"
msgstr "æ¯ä¸ªæ ‡ç­¾ä¿¡æ¯æ‰“å° <n> è¡Œ"
-#: builtin/tag.c:448
+#: builtin/tag.c:449
msgid "delete tags"
msgstr "删除标签"
-#: builtin/tag.c:449
+#: builtin/tag.c:450
msgid "verify tags"
msgstr "验è¯æ ‡ç­¾"
-#: builtin/tag.c:451
+#: builtin/tag.c:452
msgid "Tag creation options"
msgstr "标签创建选项"
-#: builtin/tag.c:453
+#: builtin/tag.c:454
msgid "annotated tag, needs a message"
msgstr "附注标签,需è¦ä¸€ä¸ªè¯´æ˜Ž"
-#: builtin/tag.c:455
+#: builtin/tag.c:456
msgid "tag message"
msgstr "标签说明"
-#: builtin/tag.c:457
+#: builtin/tag.c:458
msgid "force edit of tag message"
msgstr "强制编辑标签说明"
-#: builtin/tag.c:458
+#: builtin/tag.c:459
msgid "annotated and GPG-signed tag"
msgstr "附注并附加 GPG ç­¾å的标签"
-#: builtin/tag.c:461
+#: builtin/tag.c:462
msgid "use another key to sign the tag"
msgstr "使用å¦å¤–çš„ç§é’¥ç­¾å该标签"
-#: builtin/tag.c:462
+#: builtin/tag.c:463
msgid "replace the tag if exists"
msgstr "如果存在,替æ¢çŽ°æœ‰çš„标签"
-#: builtin/tag.c:463 builtin/update-ref.c:511
+#: builtin/tag.c:464 builtin/update-ref.c:511
msgid "create a reflog"
msgstr "创建引用日志"
-#: builtin/tag.c:465
+#: builtin/tag.c:466
msgid "Tag listing options"
msgstr "标签列表选项"
-#: builtin/tag.c:466
+#: builtin/tag.c:467
msgid "show tag list in columns"
msgstr "以列的方å¼æ˜¾ç¤ºæ ‡ç­¾åˆ—表"
-#: builtin/tag.c:467 builtin/tag.c:469
+#: builtin/tag.c:468 builtin/tag.c:470
msgid "print only tags that contain the commit"
msgstr "åªæ‰“å°åŒ…å«è¯¥æ交的标签"
-#: builtin/tag.c:468 builtin/tag.c:470
+#: builtin/tag.c:469 builtin/tag.c:471
msgid "print only tags that don't contain the commit"
msgstr "åªæ‰“å°ä¸åŒ…å«è¯¥æ交的标签"
-#: builtin/tag.c:471
+#: builtin/tag.c:472
msgid "print only tags that are merged"
msgstr "åªæ‰“å°å·²ç»åˆå¹¶çš„标签"
-#: builtin/tag.c:472
+#: builtin/tag.c:473
msgid "print only tags that are not merged"
msgstr "åªæ‰“å°å°šæœªåˆå¹¶çš„标签"
-#: builtin/tag.c:476
+#: builtin/tag.c:477
msgid "print only tags of the object"
msgstr "åªæ‰“å°æŒ‡å‘该对象的标签"
-#: builtin/tag.c:558
+#: builtin/tag.c:559
#, c-format
msgid "the '%s' option is only allowed in list mode"
msgstr "'%s' 选项åªå…许用在列表显示模å¼"
-#: builtin/tag.c:597
+#: builtin/tag.c:598
#, c-format
msgid "'%s' is not a valid tag name."
msgstr "'%s' ä¸æ˜¯ä¸€ä¸ªæœ‰æ•ˆçš„标签å称。"
-#: builtin/tag.c:602
+#: builtin/tag.c:603
#, c-format
msgid "tag '%s' already exists"
msgstr "标签 '%s' 已存在"
-#: builtin/tag.c:633
+#: builtin/tag.c:634
#, c-format
msgid "Updated tag '%s' (was %s)\n"
msgstr "已更新标签 '%s'(曾为 %s)\n"
+#: builtin/unpack-objects.c:95
+msgid "pack exceeds maximum allowed size"
+msgstr "包超过了最大å…许大å°"
+
#: builtin/unpack-objects.c:504
msgid "Unpacking objects"
msgstr "展开对象中"
@@ -23273,157 +23785,157 @@ msgstr " OK"
msgid "git update-index [<options>] [--] [<file>...]"
msgstr "git update-index [<选项>] [--] [<文件>...]"
-#: builtin/update-index.c:974
+#: builtin/update-index.c:993
msgid "continue refresh even when index needs update"
msgstr "当索引需è¦æ›´æ–°æ—¶ç»§ç»­åˆ·æ–°"
-#: builtin/update-index.c:977
+#: builtin/update-index.c:996
msgid "refresh: ignore submodules"
msgstr "刷新:忽略å­æ¨¡ç»„"
-#: builtin/update-index.c:980
+#: builtin/update-index.c:999
msgid "do not ignore new files"
msgstr "ä¸å¿½ç•¥æ–°çš„文件"
-#: builtin/update-index.c:982
+#: builtin/update-index.c:1001
msgid "let files replace directories and vice-versa"
msgstr "让文件替æ¢ç›®å½•ï¼ˆå之亦然)"
-#: builtin/update-index.c:984
+#: builtin/update-index.c:1003
msgid "notice files missing from worktree"
msgstr "通知文件从工作区丢失"
-#: builtin/update-index.c:986
+#: builtin/update-index.c:1005
msgid "refresh even if index contains unmerged entries"
msgstr "å³ä½¿ç´¢å¼•åŒºåŒ…å«æœªåˆå¹¶çš„æ¡ç›®ä¹Ÿæ‰§è¡Œåˆ·æ–°"
-#: builtin/update-index.c:989
+#: builtin/update-index.c:1008
msgid "refresh stat information"
msgstr "刷新统计信æ¯"
-#: builtin/update-index.c:993
+#: builtin/update-index.c:1012
msgid "like --refresh, but ignore assume-unchanged setting"
msgstr "类似于 --refresh,但是忽略 assume-unchanged 设置"
-#: builtin/update-index.c:997
+#: builtin/update-index.c:1016
msgid "<mode>,<object>,<path>"
msgstr "<å­˜å–模å¼>,<对象>,<路径>"
-#: builtin/update-index.c:998
+#: builtin/update-index.c:1017
msgid "add the specified entry to the index"
msgstr "添加指定的æ¡ç›®åˆ°ç´¢å¼•åŒº"
-#: builtin/update-index.c:1008
+#: builtin/update-index.c:1027
msgid "mark files as \"not changing\""
msgstr "把文件标记为 \"没有å˜æ›´\""
-#: builtin/update-index.c:1011
+#: builtin/update-index.c:1030
msgid "clear assumed-unchanged bit"
msgstr "清除 assumed-unchanged ä½"
-#: builtin/update-index.c:1014
+#: builtin/update-index.c:1033
msgid "mark files as \"index-only\""
msgstr "把文件标记为 \"仅索引\""
-#: builtin/update-index.c:1017
+#: builtin/update-index.c:1036
msgid "clear skip-worktree bit"
msgstr "清除 skip-worktree ä½"
-#: builtin/update-index.c:1020
+#: builtin/update-index.c:1039
msgid "do not touch index-only entries"
msgstr "ä¸è¦è§¦ç¢°ä»…索引æ¡ç›®"
-#: builtin/update-index.c:1022
+#: builtin/update-index.c:1041
msgid "add to index only; do not add content to object database"
msgstr "åªæ·»åŠ åˆ°ç´¢å¼•åŒºï¼›ä¸æ·»åŠ å¯¹è±¡åˆ°å¯¹è±¡åº“"
-#: builtin/update-index.c:1024
+#: builtin/update-index.c:1043
msgid "remove named paths even if present in worktree"
msgstr "å³ä½¿å­˜åœ¨å·¥ä½œåŒºé‡Œï¼Œä¹Ÿåˆ é™¤è·¯å¾„"
-#: builtin/update-index.c:1026
+#: builtin/update-index.c:1045
msgid "with --stdin: input lines are terminated by null bytes"
msgstr "æºå¸¦ --stdin:输入的行以 null 字符终止"
-#: builtin/update-index.c:1028
+#: builtin/update-index.c:1047
msgid "read list of paths to be updated from standard input"
msgstr "从标准输入中读å–需è¦æ›´æ–°çš„路径列表"
-#: builtin/update-index.c:1032
+#: builtin/update-index.c:1051
msgid "add entries from standard input to the index"
msgstr "从标准输入添加æ¡ç›®åˆ°ç´¢å¼•åŒº"
-#: builtin/update-index.c:1036
+#: builtin/update-index.c:1055
msgid "repopulate stages #2 and #3 for the listed paths"
msgstr "为指定文件é‡æ–°ç”Ÿæˆç¬¬2和第3暂存区"
-#: builtin/update-index.c:1040
+#: builtin/update-index.c:1059
msgid "only update entries that differ from HEAD"
msgstr "åªæ›´æ–°ä¸Ž HEAD ä¸åŒçš„æ¡ç›®"
-#: builtin/update-index.c:1044
+#: builtin/update-index.c:1063
msgid "ignore files missing from worktree"
msgstr "忽略工作区丢失的文件"
-#: builtin/update-index.c:1047
+#: builtin/update-index.c:1066
msgid "report actions to standard output"
msgstr "在标准输出显示æ“作"
-#: builtin/update-index.c:1049
+#: builtin/update-index.c:1068
msgid "(for porcelains) forget saved unresolved conflicts"
msgstr "(for porcelains) 忘记ä¿å­˜çš„未解决的冲çª"
-#: builtin/update-index.c:1053
+#: builtin/update-index.c:1072
msgid "write index in this format"
msgstr "以这ç§æ ¼å¼å†™å…¥ç´¢å¼•åŒº"
-#: builtin/update-index.c:1055
+#: builtin/update-index.c:1074
msgid "enable or disable split index"
msgstr "å¯ç”¨æˆ–ç¦ç”¨ç´¢å¼•æ‹†åˆ†"
-#: builtin/update-index.c:1057
+#: builtin/update-index.c:1076
msgid "enable/disable untracked cache"
msgstr "å¯ç”¨/ç¦ç”¨å¯¹æœªè·Ÿè¸ªæ–‡ä»¶çš„缓存"
-#: builtin/update-index.c:1059
+#: builtin/update-index.c:1078
msgid "test if the filesystem supports untracked cache"
msgstr "测试文件系统是å¦æ”¯æŒæœªè·Ÿè¸ªæ–‡ä»¶ç¼“å­˜"
-#: builtin/update-index.c:1061
+#: builtin/update-index.c:1080
msgid "enable untracked cache without testing the filesystem"
msgstr "无需检测文件系统,å¯ç”¨å¯¹æœªè·Ÿè¸ªæ–‡ä»¶çš„缓存"
-#: builtin/update-index.c:1063
+#: builtin/update-index.c:1082
msgid "write out the index even if is not flagged as changed"
msgstr "å³ä½¿æ²¡æœ‰è¢«æ ‡è®°ä¸ºå·²æ›´æ”¹ï¼Œä¹Ÿè¦å†™å‡ºç´¢å¼•"
-#: builtin/update-index.c:1065
+#: builtin/update-index.c:1084
msgid "enable or disable file system monitor"
msgstr "å¯ç”¨æˆ–ç¦ç”¨æ–‡ä»¶ç³»ç»Ÿç›‘控"
-#: builtin/update-index.c:1067
+#: builtin/update-index.c:1086
msgid "mark files as fsmonitor valid"
msgstr "标记文件为 fsmonitor 有效"
-#: builtin/update-index.c:1070
+#: builtin/update-index.c:1089
msgid "clear fsmonitor valid bit"
msgstr "清除 fsmonitor 有效ä½"
-#: builtin/update-index.c:1173
+#: builtin/update-index.c:1195
msgid ""
"core.splitIndex is set to false; remove or change it, if you really want to "
"enable split index"
msgstr ""
"core.splitIndex 被设置为 false。如果您确实è¦å¯ç”¨ç´¢å¼•æ‹†åˆ†ï¼Œè¯·åˆ é™¤æˆ–修改它。"
-#: builtin/update-index.c:1182
+#: builtin/update-index.c:1204
msgid ""
"core.splitIndex is set to true; remove or change it, if you really want to "
"disable split index"
msgstr ""
"core.splitIndex 被设置为 true。如果您确实è¦ç¦ç”¨ç´¢å¼•æ‹†åˆ†ï¼Œè¯·åˆ é™¤æˆ–修改它。"
-#: builtin/update-index.c:1194
+#: builtin/update-index.c:1216
msgid ""
"core.untrackedCache is set to true; remove or change it, if you really want "
"to disable the untracked cache"
@@ -23431,11 +23943,11 @@ msgstr ""
"core.untrackedCache 被设置为 true。如果您确实è¦ç¦ç”¨æœªè·Ÿè¸ªæ–‡ä»¶ç¼“存,请删除或修"
"改它。"
-#: builtin/update-index.c:1198
+#: builtin/update-index.c:1220
msgid "Untracked cache disabled"
msgstr "缓存未跟踪文件被ç¦ç”¨"
-#: builtin/update-index.c:1206
+#: builtin/update-index.c:1228
msgid ""
"core.untrackedCache is set to false; remove or change it, if you really want "
"to enable the untracked cache"
@@ -23443,25 +23955,25 @@ msgstr ""
"core.untrackedCache 被设置为 false。如果您确实è¦å¯ç”¨æœªè·Ÿè¸ªæ–‡ä»¶ç¼“存,请删除或"
"修改它。"
-#: builtin/update-index.c:1210
+#: builtin/update-index.c:1232
#, c-format
msgid "Untracked cache enabled for '%s'"
msgstr "缓存未跟踪文件在 '%s' å¯ç”¨"
-#: builtin/update-index.c:1218
+#: builtin/update-index.c:1241
msgid "core.fsmonitor is unset; set it if you really want to enable fsmonitor"
msgstr "core.fsmonitor 未设置;如果想è¦å¯ç”¨ fsmonitor 请设置该选项"
-#: builtin/update-index.c:1222
+#: builtin/update-index.c:1246
msgid "fsmonitor enabled"
msgstr "fsmonitor 被å¯ç”¨"
-#: builtin/update-index.c:1225
+#: builtin/update-index.c:1250
msgid ""
"core.fsmonitor is set; remove it if you really want to disable fsmonitor"
msgstr "core.fsmonitor 已设置;如果想è¦ç¦ç”¨ fsmonitor 请移除该选项"
-#: builtin/update-index.c:1229
+#: builtin/update-index.c:1254
msgid "fsmonitor disabled"
msgstr "fsmonitor 被ç¦ç”¨"
@@ -23493,10 +24005,6 @@ msgstr "标准输入有以 NUL 字符终止的å‚æ•°"
msgid "read updates from stdin"
msgstr "从标准输入读å–æ›´æ–°"
-#: builtin/update-server-info.c:7
-msgid "git update-server-info [--force]"
-msgstr "git update-server-info [--force]"
-
#: builtin/update-server-info.c:15
msgid "update the info files from scratch"
msgstr "从头开始更新文件信æ¯"
@@ -23578,33 +24086,37 @@ msgid "git worktree remove [<options>] <worktree>"
msgstr "git worktree remove [<选项>] <工作区>"
#: builtin/worktree.c:25
+msgid "git worktree repair [<path>...]"
+msgstr "git worktree repair [<路径>...]"
+
+#: builtin/worktree.c:26
msgid "git worktree unlock <path>"
msgstr "git worktree unlock <路径>"
-#: builtin/worktree.c:75
+#: builtin/worktree.c:76
#, c-format
msgid "Removing %s/%s: %s"
msgstr "删除 %s/%s: %s"
-#: builtin/worktree.c:148
+#: builtin/worktree.c:149
msgid "report pruned working trees"
msgstr "报告清除的工作区"
-#: builtin/worktree.c:150
+#: builtin/worktree.c:151
msgid "expire working trees older than <time>"
msgstr "将早于 <时间> 的工作区过期"
-#: builtin/worktree.c:220
+#: builtin/worktree.c:221
#, c-format
msgid "'%s' already exists"
msgstr "'%s' å·²ç»å­˜åœ¨"
-#: builtin/worktree.c:229
+#: builtin/worktree.c:230
#, c-format
msgid "unusable worktree destination '%s'"
msgstr "无法使用的工作区目标 '%s'"
-#: builtin/worktree.c:234
+#: builtin/worktree.c:235
#, c-format
msgid ""
"'%s' is a missing but locked worktree;\n"
@@ -23613,7 +24125,7 @@ msgstr ""
"'%s' 是一个丢失但é”定的工作区,\n"
"使用 '%s -f -f' 覆盖,或用 'unlock' 和 'prune' 或 'remove' 清除"
-#: builtin/worktree.c:236
+#: builtin/worktree.c:237
#, c-format
msgid ""
"'%s' is a missing but already registered worktree;\n"
@@ -23622,127 +24134,146 @@ msgstr ""
"'%s' 是一个丢失但已ç»æ³¨å†Œçš„工作区,\n"
"使用 '%s -f' 覆盖,或用 'prune' 或 'remove' 清除"
-#: builtin/worktree.c:287
+#: builtin/worktree.c:248
+#, c-format
+msgid "failed to copy '%s' to '%s'; sparse-checkout may not work correctly"
+msgstr "无法将 '%s' å¤åˆ¶è‡³ '%s';稀ç–检出å¯èƒ½æ— æ³•æ­£ç¡®å·¥ä½œ"
+
+#: builtin/worktree.c:268
+#, c-format
+msgid "failed to copy worktree config from '%s' to '%s'"
+msgstr "无法把工作树é…置从 '%s' æ‹·è´åˆ° '%s'"
+
+#: builtin/worktree.c:280 builtin/worktree.c:285
+#, c-format
+msgid "failed to unset '%s' in '%s'"
+msgstr "无法在 '%2$s' 中å–消é…ç½® '%1$s'"
+
+#: builtin/worktree.c:356
#, c-format
msgid "could not create directory of '%s'"
msgstr "ä¸èƒ½åˆ›å»ºç›®å½• '%s'"
-#: builtin/worktree.c:309
+#: builtin/worktree.c:378
msgid "initializing"
msgstr "åˆå§‹åŒ–"
-#: builtin/worktree.c:420 builtin/worktree.c:426
+#: builtin/worktree.c:492 builtin/worktree.c:498
#, c-format
msgid "Preparing worktree (new branch '%s')"
msgstr "准备工作区(新分支 '%s')"
-#: builtin/worktree.c:422
+#: builtin/worktree.c:494
#, c-format
msgid "Preparing worktree (resetting branch '%s'; was at %s)"
msgstr "准备工作区(é‡ç½®åˆ†æ”¯ '%s',之å‰ä¸º %s)"
-#: builtin/worktree.c:431
+#: builtin/worktree.c:503
#, c-format
msgid "Preparing worktree (checking out '%s')"
msgstr "准备工作区(检出 '%s')"
-#: builtin/worktree.c:437
+#: builtin/worktree.c:509
#, c-format
msgid "Preparing worktree (detached HEAD %s)"
msgstr "准备工作区(分离头指针 %s)"
-#: builtin/worktree.c:482
+#: builtin/worktree.c:554
msgid "checkout <branch> even if already checked out in other worktree"
msgstr "检出 <分支>,å³ä½¿å·²ç»è¢«æ£€å‡ºåˆ°å…¶å®ƒå·¥ä½œåŒº"
-#: builtin/worktree.c:485
+#: builtin/worktree.c:557
msgid "create a new branch"
msgstr "创建一个新分支"
-#: builtin/worktree.c:487
+#: builtin/worktree.c:559
msgid "create or reset a branch"
msgstr "创建或é‡ç½®ä¸€ä¸ªåˆ†æ”¯"
-#: builtin/worktree.c:489
+#: builtin/worktree.c:561
msgid "populate the new working tree"
msgstr "生æˆæ–°çš„工作区"
-#: builtin/worktree.c:490
+#: builtin/worktree.c:562
msgid "keep the new working tree locked"
msgstr "é”定新工作区"
-#: builtin/worktree.c:492 builtin/worktree.c:729
+#: builtin/worktree.c:564 builtin/worktree.c:809
msgid "reason for locking"
msgstr "é”定原因"
-#: builtin/worktree.c:495
+#: builtin/worktree.c:567
msgid "set up tracking mode (see git-branch(1))"
msgstr "设置跟踪模å¼ï¼ˆå‚è§ git-branch(1))"
-#: builtin/worktree.c:498
+#: builtin/worktree.c:570
msgid "try to match the new branch name with a remote-tracking branch"
msgstr "å°è¯•ä¸ºæ–°åˆ†æ”¯å匹é…一个远程跟踪分支"
-#: builtin/worktree.c:512
+#: builtin/worktree.c:584
msgid "added with --lock"
msgstr "由 --lock 添加"
-#: builtin/worktree.c:574
+#: builtin/worktree.c:646
msgid "--[no-]track can only be used if a new branch is created"
msgstr "åªèƒ½åœ¨åˆ›å»ºæ–°åˆ†æ”¯æ—¶ä½¿ç”¨é€‰é¡¹ --[no-]track "
-#: builtin/worktree.c:691
+#: builtin/worktree.c:766
msgid "show extended annotations and reasons, if available"
msgstr "显示扩展的注释和原因(如果有)"
-#: builtin/worktree.c:693
+#: builtin/worktree.c:768
msgid "add 'prunable' annotation to worktrees older than <time>"
msgstr "å‘早于 <时间> 的工作区添添加“å¯ä¿®å‰ªâ€æ³¨é‡Š"
-#: builtin/worktree.c:741 builtin/worktree.c:774 builtin/worktree.c:848
-#: builtin/worktree.c:972
+#: builtin/worktree.c:770
+msgid "terminate records with a NUL character"
+msgstr "使用 NUL 字符终结记录"
+
+#: builtin/worktree.c:821 builtin/worktree.c:854 builtin/worktree.c:928
+#: builtin/worktree.c:1052
#, c-format
msgid "'%s' is not a working tree"
msgstr "'%s' ä¸æ˜¯ä¸€ä¸ªå·¥ä½œåŒº"
-#: builtin/worktree.c:743 builtin/worktree.c:776
+#: builtin/worktree.c:823 builtin/worktree.c:856
msgid "The main working tree cannot be locked or unlocked"
msgstr "主工作区无法被加é”或解é”"
-#: builtin/worktree.c:748
+#: builtin/worktree.c:828
#, c-format
msgid "'%s' is already locked, reason: %s"
msgstr "'%s' 已被é”定,原因:%s"
-#: builtin/worktree.c:750
+#: builtin/worktree.c:830
#, c-format
msgid "'%s' is already locked"
msgstr "'%s' 已被é”定"
-#: builtin/worktree.c:778
+#: builtin/worktree.c:858
#, c-format
msgid "'%s' is not locked"
msgstr "'%s' 未被é”定"
-#: builtin/worktree.c:819
+#: builtin/worktree.c:899
msgid "working trees containing submodules cannot be moved or removed"
msgstr "ä¸èƒ½ç§»åŠ¨æˆ–删除包å«å­æ¨¡ç»„的工作区"
-#: builtin/worktree.c:827
+#: builtin/worktree.c:907
msgid "force move even if worktree is dirty or locked"
msgstr "强制移动,å³ä½¿å·¥ä½œåŒºæ˜¯è„的或已é”定"
-#: builtin/worktree.c:850 builtin/worktree.c:974
+#: builtin/worktree.c:930 builtin/worktree.c:1054
#, c-format
msgid "'%s' is a main working tree"
msgstr "'%s' 是一个主工作区"
-#: builtin/worktree.c:855
+#: builtin/worktree.c:935
#, c-format
msgid "could not figure out destination name from '%s'"
msgstr "无法从 '%s' 算出目标å称"
-#: builtin/worktree.c:868
+#: builtin/worktree.c:948
#, c-format
msgid ""
"cannot move a locked working tree, lock reason: %s\n"
@@ -23751,7 +24282,7 @@ msgstr ""
"无法移动一个é”定的工作区,é”定原因:%s\n"
"使用 'move -f -f' 覆盖或先解é”"
-#: builtin/worktree.c:870
+#: builtin/worktree.c:950
msgid ""
"cannot move a locked working tree;\n"
"use 'move -f -f' to override or unlock first"
@@ -23759,36 +24290,36 @@ msgstr ""
"无法移动一个é”定的工作区,\n"
"使用 'move -f -f' 覆盖或先解é”"
-#: builtin/worktree.c:873
+#: builtin/worktree.c:953
#, c-format
msgid "validation failed, cannot move working tree: %s"
msgstr "验è¯å¤±è´¥ï¼Œæ— æ³•ç§»åŠ¨å·¥ä½œåŒºï¼š%s"
-#: builtin/worktree.c:878
+#: builtin/worktree.c:958
#, c-format
msgid "failed to move '%s' to '%s'"
msgstr "无法移动 '%s' 到 '%s'"
-#: builtin/worktree.c:924
+#: builtin/worktree.c:1004
#, c-format
msgid "failed to run 'git status' on '%s'"
msgstr "无法在 '%s' 中执行 'git status'"
-#: builtin/worktree.c:928
+#: builtin/worktree.c:1008
#, c-format
msgid "'%s' contains modified or untracked files, use --force to delete it"
msgstr "'%s' 包å«ä¿®æ”¹æˆ–未跟踪的文件,使用 --force 删除"
-#: builtin/worktree.c:933
+#: builtin/worktree.c:1013
#, c-format
msgid "failed to run 'git status' on '%s', code %d"
msgstr "无法在 '%s' 中执行 'git status'ï¼Œé€€å‡ºç  %d"
-#: builtin/worktree.c:956
+#: builtin/worktree.c:1036
msgid "force removal even if worktree is dirty or locked"
msgstr "强制删除,å³ä½¿å·¥ä½œåŒºæ˜¯è„的或已é”定"
-#: builtin/worktree.c:979
+#: builtin/worktree.c:1059
#, c-format
msgid ""
"cannot remove a locked working tree, lock reason: %s\n"
@@ -23797,7 +24328,7 @@ msgstr ""
"无法删除一个é”定的工作区,é”定原因:%s\n"
"使用 'remove -f -f' 覆盖或先解é”"
-#: builtin/worktree.c:981
+#: builtin/worktree.c:1061
msgid ""
"cannot remove a locked working tree;\n"
"use 'remove -f -f' to override or unlock first"
@@ -23805,17 +24336,17 @@ msgstr ""
"无法删除一个é”定的工作区,\n"
"使用 'remove -f -f' 覆盖或先解é”"
-#: builtin/worktree.c:984
+#: builtin/worktree.c:1064
#, c-format
msgid "validation failed, cannot remove working tree: %s"
msgstr "验è¯å¤±è´¥ï¼Œæ— æ³•åˆ é™¤å·¥ä½œåŒºï¼š%s"
-#: builtin/worktree.c:1008
+#: builtin/worktree.c:1088
#, c-format
msgid "repair: %s: %s"
msgstr "ä¿®ç†ï¼š%s:%s"
-#: builtin/worktree.c:1011
+#: builtin/worktree.c:1091
#, c-format
msgid "error: %s: %s"
msgstr "错误:%s:%s"
@@ -23920,29 +24451,29 @@ msgstr "%s 的空别å"
msgid "recursive alias: %s"
msgstr "递归的别å:%s"
-#: git.c:479
+#: git.c:480
msgid "write failure on standard output"
msgstr "在标准输出写入失败"
-#: git.c:481
+#: git.c:482
msgid "unknown write failure on standard output"
msgstr "到标准输出的未知写入错误"
-#: git.c:483
+#: git.c:484
msgid "close failed on standard output"
msgstr "标准输出关闭失败"
-#: git.c:835
+#: git.c:838
#, c-format
msgid "alias loop detected: expansion of '%s' does not terminate:%s"
msgstr "检测到别å循环:'%s'的扩展未终止:%s"
-#: git.c:885
+#: git.c:888
#, c-format
msgid "cannot handle %s as a builtin"
msgstr "ä¸èƒ½ä½œä¸ºå†…ç½®å‘½ä»¤å¤„ç† %s"
-#: git.c:898
+#: git.c:901
#, c-format
msgid ""
"usage: %s\n"
@@ -23951,12 +24482,12 @@ msgstr ""
"用法:%s\n"
"\n"
-#: git.c:918
+#: git.c:921
#, c-format
msgid "expansion of alias '%s' failed; '%s' is not a git command\n"
msgstr "展开别å命令 '%s' 失败,'%s' ä¸æ˜¯ä¸€ä¸ª git 命令\n"
-#: git.c:930
+#: git.c:933
#, c-format
msgid "failed to run command '%s': %s\n"
msgstr "无法è¿è¡Œå‘½ä»¤ '%s':%s\n"
@@ -24110,139 +24641,139 @@ msgstr ""
" 请求:%s\n"
" é‡å®šå‘:%s"
-#: remote-curl.c:183
+#: remote-curl.c:184
#, c-format
msgid "invalid quoting in push-option value: '%s'"
msgstr "在 push-option å–值中无效的引å·ï¼š'%s'"
-#: remote-curl.c:304
+#: remote-curl.c:308
#, c-format
msgid "%sinfo/refs not valid: is this a git repository?"
msgstr "%sinfo/refs 无效:这是 git 仓库么?"
-#: remote-curl.c:405
+#: remote-curl.c:409
msgid "invalid server response; expected service, got flush packet"
msgstr "无效的æœåŠ¡ç«¯å“应。预期æœåŠ¡ï¼Œå¾—到 flush 包"
-#: remote-curl.c:436
+#: remote-curl.c:440
#, c-format
msgid "invalid server response; got '%s'"
msgstr "无效的æœåŠ¡ç«¯å“应,得到 '%s'"
-#: remote-curl.c:496
+#: remote-curl.c:500
#, c-format
msgid "repository '%s' not found"
msgstr "仓库 '%s' 未找到"
-#: remote-curl.c:500
+#: remote-curl.c:504
#, c-format
msgid "Authentication failed for '%s'"
msgstr "'%s' 鉴æƒå¤±è´¥"
-#: remote-curl.c:504
+#: remote-curl.c:508
#, c-format
msgid "unable to access '%s' with http.pinnedPubkey configuration: %s"
msgstr "无法以 http.pinnedPubkey 设置访问 '%s':%s"
-#: remote-curl.c:508
+#: remote-curl.c:512
#, c-format
msgid "unable to access '%s': %s"
msgstr "无法访问 '%s':%s"
-#: remote-curl.c:514
+#: remote-curl.c:518
#, c-format
msgid "redirecting to %s"
msgstr "é‡å®šå‘到 %s"
-#: remote-curl.c:645
+#: remote-curl.c:649
msgid "shouldn't have EOF when not gentle on EOF"
msgstr "当没有设置温和处ç†æ–‡ä»¶ç»“æŸç¬¦ï¼ˆEOF)时,ä¸åº”该有文件结æŸç¬¦"
-#: remote-curl.c:657
+#: remote-curl.c:661
msgid "remote server sent unexpected response end packet"
msgstr "远程æœåŠ¡å™¨å‘é€æ„外的å“应结æŸæ•°æ®åŒ…"
-#: remote-curl.c:726
+#: remote-curl.c:730
msgid "unable to rewind rpc post data - try increasing http.postBuffer"
msgstr "无法倒回 rpc post æ•°æ® - å°è¯•å¢žåŠ  http.postBuffer"
-#: remote-curl.c:755
+#: remote-curl.c:759
#, c-format
msgid "remote-curl: bad line length character: %.4s"
msgstr "remote-curl:错误的行宽字符:%.4s"
-#: remote-curl.c:757
+#: remote-curl.c:761
msgid "remote-curl: unexpected response end packet"
msgstr "remote-curl:æ„外å“应结æŸåŒ…"
-#: remote-curl.c:833
+#: remote-curl.c:837
#, c-format
msgid "RPC failed; %s"
msgstr "RPC 失败。%s"
-#: remote-curl.c:873
+#: remote-curl.c:877
msgid "cannot handle pushes this big"
msgstr "ä¸èƒ½å¤„ç†è¿™ä¹ˆå¤§çš„推é€"
-#: remote-curl.c:986
+#: remote-curl.c:990
#, c-format
msgid "cannot deflate request; zlib deflate error %d"
msgstr "ä¸èƒ½åŽ‹ç¼©è¯·æ±‚,zlib 压缩错误 %d"
-#: remote-curl.c:990
+#: remote-curl.c:994
#, c-format
msgid "cannot deflate request; zlib end error %d"
msgstr "ä¸èƒ½åŽ‹ç¼©è¯·æ±‚,zlib 结æŸé”™è¯¯ %d"
-#: remote-curl.c:1040
+#: remote-curl.c:1044
#, c-format
msgid "%d bytes of length header were received"
msgstr "收到了 %d 字节长度的头信æ¯"
-#: remote-curl.c:1042
+#: remote-curl.c:1046
#, c-format
msgid "%d bytes of body are still expected"
msgstr "预期ä»ç„¶éœ€è¦ %d 个字节的正文"
-#: remote-curl.c:1131
+#: remote-curl.c:1135
msgid "dumb http transport does not support shallow capabilities"
msgstr "å“‘ http 传输ä¸æ”¯æŒæµ…克隆能力"
-#: remote-curl.c:1146
+#: remote-curl.c:1150
msgid "fetch failed."
msgstr "获å–失败。"
-#: remote-curl.c:1192
+#: remote-curl.c:1198
msgid "cannot fetch by sha1 over smart http"
msgstr "无法通过智能 HTTP èŽ·å– sha1"
-#: remote-curl.c:1236 remote-curl.c:1242
+#: remote-curl.c:1242 remote-curl.c:1248
#, c-format
msgid "protocol error: expected sha/ref, got '%s'"
msgstr "å议错误:期望 sha/ref,å´å¾—到 '%s'"
-#: remote-curl.c:1254 remote-curl.c:1372
+#: remote-curl.c:1260 remote-curl.c:1378
#, c-format
msgid "http transport does not support %s"
msgstr "http 传输åè®®ä¸æ”¯æŒ %s"
-#: remote-curl.c:1290
+#: remote-curl.c:1296
msgid "git-http-push failed"
msgstr "git-http-push 失败"
-#: remote-curl.c:1478
+#: remote-curl.c:1485
msgid "remote-curl: usage: git remote-curl <remote> [<url>]"
msgstr "remote-curl:用法:git remote-curl <远程> [<url>]"
-#: remote-curl.c:1510
+#: remote-curl.c:1517
msgid "remote-curl: error reading command stream from git"
msgstr "remote-curl:错误读å–æ¥è‡ª git 的命令æµ"
-#: remote-curl.c:1517
+#: remote-curl.c:1524
msgid "remote-curl: fetch attempted without a local repo"
msgstr "remote-curl:å°è¯•æ²¡æœ‰æœ¬åœ°ä»“库下获å–"
-#: remote-curl.c:1558
+#: remote-curl.c:1565
#, c-format
msgid "remote-curl: unknown command '%s' from git"
msgstr "remote-curl:未知的æ¥è‡ª git 的命令 '%s'"
@@ -24255,121 +24786,121 @@ msgstr "需è¦ä¸€ä¸ªå·¥ä½œç›®å½•"
msgid "could not find enlistment root"
msgstr "无法找到登记根"
-#: contrib/scalar/scalar.c:89 contrib/scalar/scalar.c:351
-#: contrib/scalar/scalar.c:436 contrib/scalar/scalar.c:579
+#: contrib/scalar/scalar.c:89 contrib/scalar/scalar.c:350
+#: contrib/scalar/scalar.c:435 contrib/scalar/scalar.c:578
#, c-format
msgid "could not switch to '%s'"
msgstr "无法切æ¢åˆ° '%s'"
-#: contrib/scalar/scalar.c:180
+#: contrib/scalar/scalar.c:179
#, c-format
msgid "could not configure %s=%s"
msgstr "无法é…ç½® %s=%s"
-#: contrib/scalar/scalar.c:198
+#: contrib/scalar/scalar.c:197
msgid "could not configure log.excludeDecoration"
msgstr "无法é…ç½® log.excludeDecoration"
-#: contrib/scalar/scalar.c:219
+#: contrib/scalar/scalar.c:218
msgid "Scalar enlistments require a worktree"
msgstr "Scalar 登记需è¦ä¸€ä¸ªå·¥ä½œæ ‘"
-#: contrib/scalar/scalar.c:311
+#: contrib/scalar/scalar.c:310
#, c-format
msgid "remote HEAD is not a branch: '%.*s'"
msgstr "远程 HEAD ä¸æ˜¯ä¸€ä¸ªåˆ†æ”¯ï¼š'%.*s'"
-#: contrib/scalar/scalar.c:317
+#: contrib/scalar/scalar.c:316
msgid "failed to get default branch name from remote; using local default"
msgstr "无法从远程获å–默认分支å称;使用本地默认值"
-#: contrib/scalar/scalar.c:330
+#: contrib/scalar/scalar.c:329
msgid "failed to get default branch name"
msgstr "无法获å–默认分支å称"
-#: contrib/scalar/scalar.c:341
+#: contrib/scalar/scalar.c:340
msgid "failed to unregister repository"
msgstr "无法å–消注册仓库"
-#: contrib/scalar/scalar.c:356
+#: contrib/scalar/scalar.c:355
msgid "failed to delete enlistment directory"
msgstr "无法删除登记目录"
-#: contrib/scalar/scalar.c:376
+#: contrib/scalar/scalar.c:375
msgid "branch to checkout after clone"
msgstr "克隆åŽè¦æ£€å‡ºçš„分支"
-#: contrib/scalar/scalar.c:378
+#: contrib/scalar/scalar.c:377
msgid "when cloning, create full working directory"
msgstr "在克隆时,创建完整的工作目录"
-#: contrib/scalar/scalar.c:380
+#: contrib/scalar/scalar.c:379
msgid "only download metadata for the branch that will be checked out"
msgstr "åªä¸‹è½½è¦æ£€å‡ºçš„分支的元信æ¯"
-#: contrib/scalar/scalar.c:385
+#: contrib/scalar/scalar.c:384
msgid "scalar clone [<options>] [--] <repo> [<dir>]"
msgstr "scalar clone [<选项>] [--] <仓库> [<目录>]"
-#: contrib/scalar/scalar.c:410
+#: contrib/scalar/scalar.c:409
#, c-format
msgid "cannot deduce worktree name from '%s'"
msgstr "无法从 '%s' 猜测工作区å称"
-#: contrib/scalar/scalar.c:419
+#: contrib/scalar/scalar.c:418
#, c-format
msgid "directory '%s' exists already"
msgstr "目录 '%s' 已存在"
-#: contrib/scalar/scalar.c:446
+#: contrib/scalar/scalar.c:445
#, c-format
msgid "failed to get default branch for '%s'"
msgstr "æ— æ³•èŽ·å– '%s' 的默认分支"
-#: contrib/scalar/scalar.c:457
+#: contrib/scalar/scalar.c:456
#, c-format
msgid "could not configure remote in '%s'"
msgstr "无法在 '%s' 中é…置远程"
-#: contrib/scalar/scalar.c:466
+#: contrib/scalar/scalar.c:465
#, c-format
msgid "could not configure '%s'"
msgstr "无法é…ç½® '%s'"
-#: contrib/scalar/scalar.c:469
+#: contrib/scalar/scalar.c:468
msgid "partial clone failed; attempting full clone"
msgstr "部分克隆失败;å°è¯•å®Œæ•´å…‹éš†"
-#: contrib/scalar/scalar.c:473
+#: contrib/scalar/scalar.c:472
msgid "could not configure for full clone"
msgstr "无法é…置完整克隆"
-#: contrib/scalar/scalar.c:505
+#: contrib/scalar/scalar.c:504
msgid "`scalar list` does not take arguments"
msgstr "`scalar list` ä¸å¸¦å‚æ•°"
-#: contrib/scalar/scalar.c:518
+#: contrib/scalar/scalar.c:517
msgid "scalar register [<enlistment>]"
msgstr "scalar register [<登记>]"
-#: contrib/scalar/scalar.c:545
+#: contrib/scalar/scalar.c:544
msgid "reconfigure all registered enlistments"
msgstr "é‡æ–°é…置所有注册的登记"
-#: contrib/scalar/scalar.c:549
+#: contrib/scalar/scalar.c:548
msgid "scalar reconfigure [--all | <enlistment>]"
msgstr "scalar reconfigure [--all | <登记>]"
-#: contrib/scalar/scalar.c:567
+#: contrib/scalar/scalar.c:566
msgid "--all or <enlistment>, but not both"
msgstr "--all 或者 <登记>,而ä¸æ˜¯ä¸¤ä¸ªä¸€èµ·"
-#: contrib/scalar/scalar.c:582
+#: contrib/scalar/scalar.c:581
#, c-format
msgid "git repository gone in '%s'"
msgstr "在 '%s' 的 git 仓库已消失"
-#: contrib/scalar/scalar.c:622
+#: contrib/scalar/scalar.c:621
msgid ""
"scalar run <task> [<enlistment>]\n"
"Tasks:\n"
@@ -24377,42 +24908,55 @@ msgstr ""
"scalar run <任务> [<登记>]\n"
"任务:\n"
-#: contrib/scalar/scalar.c:640
+#: contrib/scalar/scalar.c:639
#, c-format
msgid "no such task: '%s'"
msgstr "没有此任务:'%s'"
-#: contrib/scalar/scalar.c:690
+#: contrib/scalar/scalar.c:689
msgid "scalar unregister [<enlistment>]"
msgstr "scalar unregister [<登记>]"
-#: contrib/scalar/scalar.c:737
+#: contrib/scalar/scalar.c:736
msgid "scalar delete <enlistment>"
msgstr "scalar delete <登记>"
-#: contrib/scalar/scalar.c:752
+#: contrib/scalar/scalar.c:751
msgid "refusing to delete current working directory"
msgstr "æ‹’ç»åˆ é™¤å½“å‰å·¥ä½œç›®å½•"
-#: contrib/scalar/scalar.c:767
+#: contrib/scalar/scalar.c:766
msgid "include Git version"
msgstr "包括 Git 的版本"
-#: contrib/scalar/scalar.c:769
+#: contrib/scalar/scalar.c:768
msgid "include Git's build options"
msgstr "包括 Git 的构建选项"
-#: contrib/scalar/scalar.c:773
+#: contrib/scalar/scalar.c:772
msgid "scalar verbose [-v | --verbose] [--build-options]"
msgstr "scalar verbose [-v | --verbose] [--build-options]"
+#: contrib/scalar/scalar.c:813
+msgid "-C requires a <directory>"
+msgstr "-C éœ€è¦ <目录>"
+
+#: contrib/scalar/scalar.c:815
+#, c-format
+msgid "could not change to '%s'"
+msgstr "无法å˜æ›´åˆ° '%s'"
+
#: contrib/scalar/scalar.c:821
+msgid "-c requires a <key>=<value> argument"
+msgstr "-c éœ€è¦ <é”®>=<值> å‚æ•°"
+
+#: contrib/scalar/scalar.c:839
msgid ""
-"scalar <command> [<options>]\n"
+"scalar [-C <directory>] [-c <key>=<value>] <command> [<options>]\n"
"\n"
"Commands:\n"
msgstr ""
-"scalar <命令> [<选项>]\n"
+"scalar [-C <目录>] [-c <键>=<值>] <命令> [<选项>]\n"
"\n"
"命令:\n"
@@ -24424,43 +24968,43 @@ msgstr "编译器信æ¯ä¸å¯ç”¨\n"
msgid "no libc information available\n"
msgstr "libc ä¿¡æ¯ä¸å¯ç”¨\n"
-#: list-objects-filter-options.h:94
+#: list-objects-filter-options.h:126
msgid "args"
msgstr "å‚æ•°"
-#: list-objects-filter-options.h:95
+#: list-objects-filter-options.h:127
msgid "object filtering"
msgstr "对象过滤"
-#: parse-options.h:183
+#: parse-options.h:188
msgid "expiry-date"
msgstr "到期时间"
-#: parse-options.h:197
+#: parse-options.h:202
msgid "no-op (backward compatibility)"
msgstr "空æ“作(å‘åŽå…¼å®¹ï¼‰"
-#: parse-options.h:310
+#: parse-options.h:341
msgid "be more verbose"
msgstr "更加详细"
-#: parse-options.h:312
+#: parse-options.h:343
msgid "be more quiet"
msgstr "更加安é™"
-#: parse-options.h:318
+#: parse-options.h:349
msgid "use <n> digits to display object names"
msgstr "用 <n> ä½æ•°å­—显示对象å"
-#: parse-options.h:337
+#: parse-options.h:368
msgid "how to strip spaces and #comments from message"
msgstr "设置如何删除æ交说明里的空格和#注释"
-#: parse-options.h:338
+#: parse-options.h:369
msgid "read pathspec from file"
msgstr "从文件读å–路径表达å¼"
-#: parse-options.h:339
+#: parse-options.h:370
msgid ""
"with --pathspec-from-file, pathspec elements are separated with NUL character"
msgstr "使用 --pathspec-from-file,路径表达å¼ç”¨ç©ºå­—符分隔"
@@ -24710,447 +25254,452 @@ msgid "Display help information about Git"
msgstr "显示 Git 的帮助信æ¯"
#: command-list.h:108
+msgid "Run git hooks"
+msgstr "è¿è¡Œ git é’©å­"
+
+#: command-list.h:109
msgid "Server side implementation of Git over HTTP"
msgstr "Git HTTP å议的æœåŠ¡ç«¯å®žçŽ°"
-#: command-list.h:109
+#: command-list.h:110
msgid "Download from a remote Git repository via HTTP"
msgstr "通过 HTTP 从远程 Git 仓库下载"
-#: command-list.h:110
+#: command-list.h:111
msgid "Push objects over HTTP/DAV to another repository"
msgstr "通过 HTTP/DAV 推é€å¯¹è±¡å¦ä¸€ä¸ªä»“库"
-#: command-list.h:111
+#: command-list.h:112
msgid "Send a collection of patches from stdin to an IMAP folder"
msgstr "从标准输入将一组补ä¸å‘é€åˆ°IMAP文件夹"
-#: command-list.h:112
+#: command-list.h:113
msgid "Build pack index file for an existing packed archive"
msgstr "从一个现存的包存档文件创建包索引"
-#: command-list.h:113
+#: command-list.h:114
msgid "Create an empty Git repository or reinitialize an existing one"
msgstr "创建一个空的 Git 仓库或é‡æ–°åˆå§‹åŒ–一个已存在的仓库"
-#: command-list.h:114
+#: command-list.h:115
msgid "Instantly browse your working repository in gitweb"
msgstr "在 gitweb 中å³æ—¶æµè§ˆæ‚¨çš„工作仓库"
-#: command-list.h:115
+#: command-list.h:116
msgid "Add or parse structured information in commit messages"
msgstr "添加或解æžæ交说明中的结构化信æ¯"
-#: command-list.h:116
+#: command-list.h:117
msgid "Show commit logs"
msgstr "显示æ交日志"
-#: command-list.h:117
+#: command-list.h:118
msgid "Show information about files in the index and the working tree"
msgstr "显示索引和工作区中文件的信æ¯"
-#: command-list.h:118
+#: command-list.h:119
msgid "List references in a remote repository"
msgstr "显示一个远程仓库的引用"
-#: command-list.h:119
+#: command-list.h:120
msgid "List the contents of a tree object"
msgstr "显示一个树对象的内容"
-#: command-list.h:120
+#: command-list.h:121
msgid "Extracts patch and authorship from a single e-mail message"
msgstr "从å•ä¸ªç”µå­é‚®ä»¶ä¸­æå–è¡¥ä¸å’Œä½œè€…身份"
-#: command-list.h:121
+#: command-list.h:122
msgid "Simple UNIX mbox splitter program"
msgstr "简å•çš„ UNIX mbox 邮箱切分程åº"
-#: command-list.h:122
+#: command-list.h:123
msgid "Run tasks to optimize Git repository data"
msgstr "è¿è¡Œä»»åŠ¡ä»¥ä¼˜åŒ–仓库数æ®"
-#: command-list.h:123
+#: command-list.h:124
msgid "Join two or more development histories together"
msgstr "åˆå¹¶ä¸¤ä¸ªæˆ–更多开å‘历å²"
-#: command-list.h:124
+#: command-list.h:125
msgid "Find as good common ancestors as possible for a merge"
msgstr "为了åˆå¹¶æŸ¥æ‰¾å°½å¯èƒ½å¥½çš„公共祖先æ交"
-#: command-list.h:125
+#: command-list.h:126
msgid "Run a three-way file merge"
msgstr "è¿è¡Œä¸€ä¸ªä¸‰è·¯æ–‡ä»¶åˆå¹¶"
-#: command-list.h:126
+#: command-list.h:127
msgid "Run a merge for files needing merging"
msgstr "对于需è¦åˆå¹¶çš„文件执行åˆå¹¶"
-#: command-list.h:127
+#: command-list.h:128
msgid "The standard helper program to use with git-merge-index"
msgstr "与 git-merge-index 一起使用的标准å‘导程åº"
-#: command-list.h:128
+#: command-list.h:129
msgid "Show three-way merge without touching index"
msgstr "在ä¸åŠ¨ç´¢å¼•çš„情况下显示三路åˆå¹¶"
-#: command-list.h:129
+#: command-list.h:130
msgid "Run merge conflict resolution tools to resolve merge conflicts"
msgstr "è¿è¡Œåˆå¹¶å†²çªè§£å†³å·¥å…·ä»¥è§£å†³åˆå¹¶å†²çª"
-#: command-list.h:130
+#: command-list.h:131
msgid "Creates a tag object with extra validation"
msgstr "创建一个有é¢å¤–验è¯çš„标签对象"
-#: command-list.h:131
+#: command-list.h:132
msgid "Build a tree-object from ls-tree formatted text"
msgstr "基于 ls-tree çš„æ ¼å¼åŒ–文本创建一个树对象"
-#: command-list.h:132
+#: command-list.h:133
msgid "Write and verify multi-pack-indexes"
msgstr "写入和校验多包索引"
-#: command-list.h:133
+#: command-list.h:134
msgid "Move or rename a file, a directory, or a symlink"
msgstr "移动或é‡å‘½å一个文件ã€ç›®å½•æˆ–符å·é“¾æŽ¥"
# 查找给定版本的符å·å称
-#: command-list.h:134
+#: command-list.h:135
msgid "Find symbolic names for given revs"
msgstr "查找给定版本的符å·å称"
-#: command-list.h:135
+#: command-list.h:136
msgid "Add or inspect object notes"
msgstr "添加或检查对象注释"
-#: command-list.h:136
+#: command-list.h:137
msgid "Import from and submit to Perforce repositories"
msgstr "导入和æ交到 Perforce 仓库中"
-#: command-list.h:137
+#: command-list.h:138
msgid "Create a packed archive of objects"
msgstr "创建对象的存档包"
-#: command-list.h:138
+#: command-list.h:139
msgid "Find redundant pack files"
msgstr "查找冗余的包文件"
-#: command-list.h:139
+#: command-list.h:140
msgid "Pack heads and tags for efficient repository access"
msgstr "打包头和标签以实现高效的仓库访问"
-#: command-list.h:140
+#: command-list.h:141
msgid "Compute unique ID for a patch"
msgstr "计算一个补ä¸çš„唯一 ID"
-#: command-list.h:141
+#: command-list.h:142
msgid "Prune all unreachable objects from the object database"
msgstr "删除对象库中所有ä¸å¯è¾¾å¯¹è±¡"
-#: command-list.h:142
+#: command-list.h:143
msgid "Remove extra objects that are already in pack files"
msgstr "删除已ç»åœ¨åŒ…文件中的多余对象"
-#: command-list.h:143
+#: command-list.h:144
msgid "Fetch from and integrate with another repository or a local branch"
msgstr "获å–并整åˆå¦å¤–的仓库或一个本地分支"
-#: command-list.h:144
+#: command-list.h:145
msgid "Update remote refs along with associated objects"
msgstr "更新远程引用和相关的对象"
-#: command-list.h:145
+#: command-list.h:146
msgid "Applies a quilt patchset onto the current branch"
msgstr "将一个 quilt è¡¥ä¸é›†åº”用到当å‰åˆ†æ”¯ã€‚"
-#: command-list.h:146
+#: command-list.h:147
msgid "Compare two commit ranges (e.g. two versions of a branch)"
msgstr "比较两个æ交范围(如一个分支的两个版本)"
-#: command-list.h:147
+#: command-list.h:148
msgid "Reads tree information into the index"
msgstr "将树信æ¯è¯»å–到索引"
-#: command-list.h:148
+#: command-list.h:149
msgid "Reapply commits on top of another base tip"
msgstr "在å¦ä¸€ä¸ªåˆ†æ”¯ä¸Šé‡æ–°åº”用æ交"
-#: command-list.h:149
+#: command-list.h:150
msgid "Receive what is pushed into the repository"
msgstr "接收推é€åˆ°ä»“库中的对象"
-#: command-list.h:150
+#: command-list.h:151
msgid "Manage reflog information"
msgstr "ç®¡ç† reflog ä¿¡æ¯"
-#: command-list.h:151
+#: command-list.h:152
msgid "Manage set of tracked repositories"
msgstr "管ç†å·²è·Ÿè¸ªä»“库"
-#: command-list.h:152
+#: command-list.h:153
msgid "Pack unpacked objects in a repository"
msgstr "打包仓库中未打包对象"
-#: command-list.h:153
+#: command-list.h:154
msgid "Create, list, delete refs to replace objects"
msgstr "创建ã€åˆ—出ã€åˆ é™¤å¯¹è±¡æ›¿æ¢å¼•ç”¨"
-#: command-list.h:154
+#: command-list.h:155
msgid "Generates a summary of pending changes"
msgstr "生æˆå¾…定更改的摘è¦"
-#: command-list.h:155
+#: command-list.h:156
msgid "Reuse recorded resolution of conflicted merges"
msgstr "é‡ç”¨å†²çªåˆå¹¶çš„解决方案记录"
-#: command-list.h:156
+#: command-list.h:157
msgid "Reset current HEAD to the specified state"
msgstr "é‡ç½®å½“å‰ HEAD 到指定状æ€"
-#: command-list.h:157
+#: command-list.h:158
msgid "Restore working tree files"
msgstr "æ¢å¤å·¥ä½œåŒºæ–‡ä»¶"
-#: command-list.h:158
+#: command-list.h:159
msgid "Lists commit objects in reverse chronological order"
msgstr "按时间顺åºåˆ—出æ交对象"
-#: command-list.h:159
+#: command-list.h:160
msgid "Pick out and massage parameters"
msgstr "选出并处ç†å‚æ•°"
-#: command-list.h:160
+#: command-list.h:161
msgid "Revert some existing commits"
msgstr "回退一些现存æ交"
-#: command-list.h:161
+#: command-list.h:162
msgid "Remove files from the working tree and from the index"
msgstr "从工作区和索引中删除文件"
-#: command-list.h:162
+#: command-list.h:163
msgid "Send a collection of patches as emails"
msgstr "通过电å­é‚®ä»¶å‘é€ä¸€ç»„è¡¥ä¸"
-#: command-list.h:163
+#: command-list.h:164
msgid "Push objects over Git protocol to another repository"
msgstr "使用 Git å议推é€å¯¹è±¡åˆ°å¦ä¸€ä¸ªä»“库"
-#: command-list.h:164
+#: command-list.h:165
msgid "Git's i18n setup code for shell scripts"
msgstr "为 shell 脚本准备的 Git 国际化设置代ç "
-#: command-list.h:165
+#: command-list.h:166
msgid "Common Git shell script setup code"
msgstr "常用的 Git shell 脚本设置代ç "
-#: command-list.h:166
+#: command-list.h:167
msgid "Restricted login shell for Git-only SSH access"
msgstr "åªå…许 Git SSH 访问的å—é™ç™»å½•shell"
-#: command-list.h:167
+#: command-list.h:168
msgid "Summarize 'git log' output"
msgstr "'git log' 输出摘è¦"
-#: command-list.h:168
+#: command-list.h:169
msgid "Show various types of objects"
msgstr "显示å„ç§ç±»åž‹çš„对象"
-#: command-list.h:169
+#: command-list.h:170
msgid "Show branches and their commits"
msgstr "显示分支和æ交"
-#: command-list.h:170
+#: command-list.h:171
msgid "Show packed archive index"
msgstr "显示打包归档索引"
-#: command-list.h:171
+#: command-list.h:172
msgid "List references in a local repository"
msgstr "显示本地仓库中的引用"
-#: command-list.h:172
-msgid "Initialize and modify the sparse-checkout"
-msgstr "åˆå§‹åŒ–åŠä¿®æ”¹ç¨€ç–检出"
-
+# 译者:中文字符串拼接,å¯åˆ é™¤å‰å¯¼ç©ºæ ¼
#: command-list.h:173
+msgid "Reduce your working tree to a subset of tracked files"
+msgstr "将您的工作树缩å‡è‡³å·²è¿½è¸ªæ–‡ä»¶çš„å­é›†"
+
+#: command-list.h:174
msgid "Add file contents to the staging area"
msgstr "将文件内容添加到暂存区"
-#: command-list.h:174
+#: command-list.h:175
msgid "Stash the changes in a dirty working directory away"
msgstr "è´®è—è„工作区中的修改"
-#: command-list.h:175
+#: command-list.h:176
msgid "Show the working tree status"
msgstr "显示工作区状æ€"
-#: command-list.h:176
+#: command-list.h:177
msgid "Remove unnecessary whitespace"
msgstr "删除ä¸å¿…è¦çš„空白字符"
-#: command-list.h:177
+#: command-list.h:178
msgid "Initialize, update or inspect submodules"
msgstr "åˆå§‹åŒ–ã€æ›´æ–°æˆ–检查å­æ¨¡ç»„"
-#: command-list.h:178
+#: command-list.h:179
msgid "Bidirectional operation between a Subversion repository and Git"
msgstr "Subersion 仓库和 Git 之间的åŒå‘æ“作"
-#: command-list.h:179
+#: command-list.h:180
msgid "Switch branches"
msgstr "切æ¢åˆ†æ”¯"
-#: command-list.h:180
+#: command-list.h:181
msgid "Read, modify and delete symbolic refs"
msgstr "读å–ã€ä¿®æ”¹å’Œåˆ é™¤ç¬¦å·å¼•ç”¨"
-#: command-list.h:181
+#: command-list.h:182
msgid "Create, list, delete or verify a tag object signed with GPG"
msgstr "创建ã€åˆ—出ã€åˆ é™¤æˆ–校验一个 GPG ç­¾å的标签对象"
-#: command-list.h:182
+#: command-list.h:183
msgid "Creates a temporary file with a blob's contents"
msgstr "用 blob æ•°æ®å¯¹è±¡çš„内容创建一个临时文件"
-#: command-list.h:183
+#: command-list.h:184
msgid "Unpack objects from a packed archive"
msgstr "从打包文件中解压缩对象"
-#: command-list.h:184
+#: command-list.h:185
msgid "Register file contents in the working tree to the index"
msgstr "将工作区的文件内容注册到索引"
-#: command-list.h:185
+#: command-list.h:186
msgid "Update the object name stored in a ref safely"
msgstr "安全地更新存储于引用中的对象å称"
-#: command-list.h:186
+#: command-list.h:187
msgid "Update auxiliary info file to help dumb servers"
msgstr "更新辅助信æ¯æ–‡ä»¶ä»¥å¸®åŠ©å“‘åè®®æœåŠ¡"
-#: command-list.h:187
+#: command-list.h:188
msgid "Send archive back to git-archive"
msgstr "将存档å‘é€å›ž git-archive"
-#: command-list.h:188
+#: command-list.h:189
msgid "Send objects packed back to git-fetch-pack"
msgstr "将对象压缩包å‘é€å›ž git-fetch-pack"
-#: command-list.h:189
+#: command-list.h:190
msgid "Show a Git logical variable"
msgstr "显示一个Git逻辑å˜é‡"
-#: command-list.h:190
+#: command-list.h:191
msgid "Check the GPG signature of commits"
msgstr "检查 GPG æ交签å"
-#: command-list.h:191
+#: command-list.h:192
msgid "Validate packed Git archive files"
msgstr "校验打包的Git存仓文件"
-#: command-list.h:192
+#: command-list.h:193
msgid "Check the GPG signature of tags"
msgstr "检查标签的 GPG ç­¾å"
-#: command-list.h:193
+#: command-list.h:194
msgid "Show logs with difference each commit introduces"
msgstr "显示æ¯ä¸€ä¸ªæ交引入的差异日志"
-#: command-list.h:194
+#: command-list.h:195
msgid "Manage multiple working trees"
msgstr "管ç†å¤šä¸ªå·¥ä½œåŒº"
-#: command-list.h:195
+#: command-list.h:196
msgid "Create a tree object from the current index"
msgstr "从当å‰ç´¢å¼•åˆ›å»ºä¸€ä¸ªæ ‘对象"
-#: command-list.h:196
+#: command-list.h:197
msgid "Defining attributes per path"
msgstr "定义路径的属性"
-#: command-list.h:197
+#: command-list.h:198
msgid "Git command-line interface and conventions"
msgstr "Git 命令行界é¢å’Œçº¦å®š"
-#: command-list.h:198
+#: command-list.h:199
msgid "A Git core tutorial for developers"
msgstr "é¢å‘å¼€å‘人员的 Git 核心教程"
-#: command-list.h:199
+#: command-list.h:200
msgid "Providing usernames and passwords to Git"
msgstr "为 Git æ供用户åå’Œå£ä»¤"
-#: command-list.h:200
+#: command-list.h:201
msgid "Git for CVS users"
msgstr "é€‚åˆ CVS 用户的 Git 帮助"
-#: command-list.h:201
+#: command-list.h:202
msgid "Tweaking diff output"
msgstr "调整差异输出"
-#: command-list.h:202
+#: command-list.h:203
msgid "A useful minimum set of commands for Everyday Git"
msgstr "æ¯ä¸€å¤© Git 的一组有用的最å°å‘½ä»¤é›†åˆ"
-#: command-list.h:203
+#: command-list.h:204
msgid "Frequently asked questions about using Git"
msgstr "关于使用 Git 的常è§é—®é¢˜"
-#: command-list.h:204
+#: command-list.h:205
msgid "A Git Glossary"
msgstr "Git è¯æ±‡è¡¨"
-#: command-list.h:205
+#: command-list.h:206
msgid "Hooks used by Git"
msgstr "Git 使用的钩å­"
-#: command-list.h:206
+#: command-list.h:207
msgid "Specifies intentionally untracked files to ignore"
msgstr "忽略指定的未跟踪文件"
-#: command-list.h:207
+#: command-list.h:208
msgid "The Git repository browser"
msgstr "Git 仓库æµè§ˆå™¨"
-#: command-list.h:208
+#: command-list.h:209
msgid "Map author/committer names and/or E-Mail addresses"
msgstr "映射作者/æ交者的å称和/或邮件地å€"
-#: command-list.h:209
+#: command-list.h:210
msgid "Defining submodule properties"
msgstr "定义å­æ¨¡ç»„属性"
-#: command-list.h:210
+#: command-list.h:211
msgid "Git namespaces"
msgstr "Git å字空间"
-#: command-list.h:211
+#: command-list.h:212
msgid "Helper programs to interact with remote repositories"
msgstr "与远程仓库交互的助手程åº"
-#: command-list.h:212
+#: command-list.h:213
msgid "Git Repository Layout"
msgstr "Git 仓库布局"
-#: command-list.h:213
+#: command-list.h:214
msgid "Specifying revisions and ranges for Git"
msgstr "指定 Git 的版本和版本范围"
-#: command-list.h:214
+#: command-list.h:215
msgid "Mounting one repository inside another"
msgstr "将一个仓库安装到å¦å¤–一个仓库中"
-#: command-list.h:215
+#: command-list.h:216
msgid "A tutorial introduction to Git"
msgstr "Git 入门教程"
-#: command-list.h:216
+#: command-list.h:217
msgid "A tutorial introduction to Git: part two"
msgstr "Git 入门教程:第二部分"
-#: command-list.h:217
+#: command-list.h:218
msgid "Git web interface (web frontend to Git repositories)"
msgstr "Git web ç•Œé¢ï¼ˆGit 仓库的 web å‰ç«¯ï¼‰"
-#: command-list.h:218
+#: command-list.h:219
msgid "An overview of recommended workflows with Git"
msgstr "Git 推è的工作æµæ¦‚览"
@@ -25192,66 +25741,44 @@ msgstr "å°è¯•å’Œ $pretty_name 的简å•åˆå¹¶"
msgid "Simple merge did not work, trying automatic merge."
msgstr "简å•åˆå¹¶æœªç”Ÿæ•ˆï¼Œå°è¯•è‡ªåŠ¨åˆå¹¶ã€‚"
-#: git-submodule.sh:401
-#, sh-format
-msgid "Unable to find current revision in submodule path '$displaypath'"
-msgstr "无法在å­æ¨¡ç»„路径 '$displaypath' 中找到当å‰ç‰ˆæœ¬"
-
-#: git-submodule.sh:411
-#, sh-format
-msgid "Unable to fetch in submodule path '$sm_path'"
-msgstr "无法在å­æ¨¡ç»„路径 '$sm_path' 中获å–"
-
-#: git-submodule.sh:416
-#, sh-format
-msgid ""
-"Unable to find current ${remote_name}/${branch} revision in submodule path "
-"'$sm_path'"
-msgstr "无法在å­æ¨¡ç»„路径 '$sm_path' 中找到当å‰ç‰ˆæœ¬ ${remote_name}/${branch}"
-
-#: git-submodule.sh:464
-#, sh-format
-msgid "Failed to recurse into submodule path '$displaypath'"
-msgstr "无法递归进å­æ¨¡ç»„路径 '$displaypath'"
-
#: git-sh-setup.sh:89 git-sh-setup.sh:94
#, sh-format
msgid "usage: $dashless $USAGE"
msgstr "用法:$dashless $USAGE"
-#: git-sh-setup.sh:183
+#: git-sh-setup.sh:182
#, sh-format
msgid "Cannot chdir to $cdup, the toplevel of the working tree"
msgstr "ä¸èƒ½åˆ‡æ¢ç›®å½•åˆ° $cdup,工作区的顶级目录"
-#: git-sh-setup.sh:192 git-sh-setup.sh:199
+#: git-sh-setup.sh:191 git-sh-setup.sh:198
#, sh-format
msgid "fatal: $program_name cannot be used without a working tree."
msgstr "致命错误:$program_name ä¸èƒ½åœ¨æ²¡æœ‰å·¥ä½œåŒºçš„情况下使用"
-#: git-sh-setup.sh:213
+#: git-sh-setup.sh:212
msgid "Cannot rewrite branches: You have unstaged changes."
msgstr "ä¸èƒ½é‡å†™åˆ†æ”¯ï¼šæ‚¨æœ‰æœªæš‚存的å˜æ›´ã€‚"
-#: git-sh-setup.sh:216
+#: git-sh-setup.sh:215
#, sh-format
msgid "Cannot $action: You have unstaged changes."
msgstr "ä¸èƒ½ $action:您有未暂存的å˜æ›´ã€‚"
-#: git-sh-setup.sh:227
+#: git-sh-setup.sh:226
#, sh-format
msgid "Cannot $action: Your index contains uncommitted changes."
msgstr "ä¸èƒ½ $action:您的索引中包å«æœªæ交的å˜æ›´ã€‚"
-#: git-sh-setup.sh:229
+#: git-sh-setup.sh:228
msgid "Additionally, your index contains uncommitted changes."
msgstr "而且您的索引中包å«æœªæ交的å˜æ›´ã€‚"
-#: git-sh-setup.sh:349
+#: git-sh-setup.sh:348
msgid "You need to run this command from the toplevel of the working tree."
msgstr "您需è¦åœ¨å·¥ä½œåŒºçš„顶级目录中è¿è¡Œè¿™ä¸ªå‘½ä»¤ã€‚"
-#: git-sh-setup.sh:354
+#: git-sh-setup.sh:353
msgid "Unable to determine absolute path of git directory"
msgstr "ä¸èƒ½ç¡®å®š git 目录的ç»å¯¹è·¯å¾„"
@@ -25911,23 +26438,23 @@ msgstr "ä¸èƒ½ä»¥ 7bit å½¢å¼å‘é€ä¿¡æ¯"
msgid "invalid transfer encoding"
msgstr "无效的传é€ç¼–ç "
-#: git-send-email.perl:2095
+#: git-send-email.perl:2100
#, perl-format
msgid ""
-"fatal: %s: rejected by sendemail-validate hook\n"
+"fatal: %s: rejected by %s hook\n"
"%s\n"
"warning: no patches were sent\n"
msgstr ""
-"致命错误:%s:被 sendemail-validate 挂钩拒ç»\n"
+"致命错误:%s:被 %s é’©å­æ‹’ç»\n"
"%s\n"
"警告:补ä¸æœªèƒ½å‘é€\n"
-#: git-send-email.perl:2105 git-send-email.perl:2158 git-send-email.perl:2168
+#: git-send-email.perl:2110 git-send-email.perl:2163 git-send-email.perl:2173
#, perl-format
msgid "unable to open %s: %s\n"
msgstr "ä¸èƒ½æ‰“å¼€ %s:%s\n"
-#: git-send-email.perl:2108
+#: git-send-email.perl:2113
#, perl-format
msgid ""
"fatal: %s:%d is longer than 998 characters\n"
@@ -25936,13 +26463,13 @@ msgstr ""
"致命错误:%s:%d 超过 998 字符\n"
"警告:补ä¸æœªèƒ½å‘é€\n"
-#: git-send-email.perl:2126
+#: git-send-email.perl:2131
#, 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:2130
+#: git-send-email.perl:2135
#, 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 60fe1235b6..caf6057332 100644
--- a/po/zh_TW.po
+++ b/po/zh_TW.po
@@ -22,8 +22,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Git\n"
"Report-Msgid-Bugs-To: Git Mailing List <git@vger.kernel.org>\n"
-"POT-Creation-Date: 2022-01-17 08:31+0800\n"
-"PO-Revision-Date: 2022-01-22 07:05+0800\n"
+"POT-Creation-Date: 2022-04-13 14:52+0800\n"
+"PO-Revision-Date: 2022-04-14 08:04+0800\n"
"Last-Translator: Yi-Jyun Pan <pan93412@gmail.com>\n"
"Language-Team: Chinese (Traditional) <http://weblate.slat.org/projects/git-"
"po/git-cli/zh_Hant/>\n"
@@ -36,210 +36,209 @@ msgstr ""
"X-ZhConverter: ç¹åŒ–姬 dict-f4bc617e-r910 @ 2019/11/16 20:23:12 | https://"
"zhconvert.org\n"
-#: add-interactive.c:380
+#: add-interactive.c:382
#, c-format
msgid "Huh (%s)?"
msgstr "嗯(%s)?"
-#: add-interactive.c:533 add-interactive.c:834 reset.c:65 sequencer.c:3509
-#: sequencer.c:3974 sequencer.c:4136 builtin/rebase.c:1233
-#: builtin/rebase.c:1642
+#: add-interactive.c:535 add-interactive.c:836 reset.c:136 sequencer.c:3505
+#: sequencer.c:3970 sequencer.c:4127 builtin/rebase.c:1261
+#: builtin/rebase.c:1671
msgid "could not read index"
msgstr "無法讀å–索引"
-#: add-interactive.c:588 git-add--interactive.perl:269
+#: add-interactive.c:590 git-add--interactive.perl:269
#: git-add--interactive.perl:294
msgid "binary"
msgstr "二進ä½"
-#: add-interactive.c:646 git-add--interactive.perl:278
+#: add-interactive.c:648 git-add--interactive.perl:278
#: git-add--interactive.perl:332
msgid "nothing"
msgstr "ç„¡"
-#: add-interactive.c:647 git-add--interactive.perl:314
+#: add-interactive.c:649 git-add--interactive.perl:314
#: git-add--interactive.perl:329
msgid "unchanged"
msgstr "未變更"
-#: add-interactive.c:684 git-add--interactive.perl:641
+#: add-interactive.c:686 git-add--interactive.perl:641
msgid "Update"
msgstr "æ›´æ–°"
-#: add-interactive.c:701 add-interactive.c:889
+#: add-interactive.c:703 add-interactive.c:891
#, c-format
msgid "could not stage '%s'"
msgstr "無法暫存「%sã€"
-#: add-interactive.c:707 add-interactive.c:896 reset.c:89 sequencer.c:3713
+#: add-interactive.c:709 add-interactive.c:898 reset.c:160 sequencer.c:3709
msgid "could not write index"
msgstr "無法寫入索引"
-#: add-interactive.c:710 git-add--interactive.perl:626
+#: add-interactive.c:712 git-add--interactive.perl:626
#, c-format, perl-format
msgid "updated %d path\n"
msgid_plural "updated %d paths\n"
msgstr[0] "已更新 %d 個路徑\n"
-#: add-interactive.c:728 git-add--interactive.perl:676
+#: add-interactive.c:730 git-add--interactive.perl:676
#, c-format, perl-format
msgid "note: %s is untracked now.\n"
msgstr "注æ„:%s ç¾å·²ä¸å†è¿½è¹¤ã€‚\n"
-#: add-interactive.c:733 apply.c:4151 builtin/checkout.c:306
+#: add-interactive.c:735 apply.c:4133 builtin/checkout.c:311
#: builtin/reset.c:167
#, c-format
msgid "make_cache_entry failed for path '%s'"
msgstr "「%sã€è·¯å¾‘執行 make_cache_entry 失敗"
-#: add-interactive.c:763 git-add--interactive.perl:653
+#: add-interactive.c:765 git-add--interactive.perl:653
msgid "Revert"
msgstr "還原"
-#: add-interactive.c:779
+#: add-interactive.c:781
msgid "Could not parse HEAD^{tree}"
msgstr "ä¸èƒ½è§£æž HEAD^{樹}"
-#: add-interactive.c:817 git-add--interactive.perl:629
+#: add-interactive.c:819 git-add--interactive.perl:629
#, c-format, perl-format
msgid "reverted %d path\n"
msgid_plural "reverted %d paths\n"
msgstr[0] "還原了 %d 個路徑\n"
-#: add-interactive.c:868 git-add--interactive.perl:693
+#: add-interactive.c:870 git-add--interactive.perl:693
#, c-format
msgid "No untracked files.\n"
msgstr "沒有未追蹤的檔案。\n"
-#: add-interactive.c:872 git-add--interactive.perl:687
+#: add-interactive.c:874 git-add--interactive.perl:687
msgid "Add untracked"
msgstr "新增未追蹤的"
-#: add-interactive.c:899 git-add--interactive.perl:623
+#: add-interactive.c:901 git-add--interactive.perl:623
#, c-format, perl-format
msgid "added %d path\n"
msgid_plural "added %d paths\n"
msgstr[0] "增加了 %d 個路徑\n"
-#: add-interactive.c:929
+#: add-interactive.c:931
#, c-format
msgid "ignoring unmerged: %s"
msgstr "忽略未åˆä½µï¼š%s"
-#: add-interactive.c:941 add-patch.c:1752 git-add--interactive.perl:1371
+#: add-interactive.c:943 add-patch.c:1758 git-add--interactive.perl:1371
#, c-format
msgid "Only binary files changed.\n"
msgstr "åªæœ‰äºŒé€²ä½æª”案被修改。\n"
-#: add-interactive.c:943 add-patch.c:1750 git-add--interactive.perl:1373
+#: add-interactive.c:945 add-patch.c:1756 git-add--interactive.perl:1373
#, c-format
msgid "No changes.\n"
msgstr "沒有修改。\n"
-#: add-interactive.c:947 git-add--interactive.perl:1381
+#: add-interactive.c:949 git-add--interactive.perl:1381
msgid "Patch update"
msgstr "修補檔更新"
-#: add-interactive.c:986 git-add--interactive.perl:1794
+#: add-interactive.c:988 git-add--interactive.perl:1794
msgid "Review diff"
msgstr "檢視 diff"
-#: add-interactive.c:1014
+#: add-interactive.c:1016
msgid "show paths with changes"
msgstr "顯示有變更的路徑"
-#: add-interactive.c:1016
+#: add-interactive.c:1018
msgid "add working tree state to the staged set of changes"
msgstr "加入工作å€ç‹€æ…‹è‡³æš«å­˜åˆ—表"
-#: add-interactive.c:1018
+#: add-interactive.c:1020
msgid "revert staged set of changes back to the HEAD version"
msgstr "還原修改的暫存集至 HEAD 版本"
-#: add-interactive.c:1020
+#: add-interactive.c:1022
msgid "pick hunks and update selectively"
msgstr "挑é¸å€å¡Šä¸¦é¸æ“‡æ€§æ›´æ–°"
-#: add-interactive.c:1022
+#: add-interactive.c:1024
msgid "view diff between HEAD and index"
msgstr "檢視 HEAD åŠç´¢å¼•ä¹‹é–“的差異"
-#: add-interactive.c:1024
+#: add-interactive.c:1026
msgid "add contents of untracked files to the staged set of changes"
msgstr "加入未追蹤檔案的內容至暫存列表"
-#: add-interactive.c:1032 add-interactive.c:1081
+#: add-interactive.c:1034 add-interactive.c:1083
msgid "Prompt help:"
msgstr "æ示說明:"
-#: add-interactive.c:1034
+#: add-interactive.c:1036
msgid "select a single item"
msgstr "é¸æ“‡å–®ä¸€é …ç›®"
-#: add-interactive.c:1036
+#: add-interactive.c:1038
msgid "select a range of items"
msgstr "é¸æ“‡é …目範åœ"
-#: add-interactive.c:1038
+#: add-interactive.c:1040
msgid "select multiple ranges"
msgstr "é¸æ“‡å¤šå€‹ç¯„åœ"
-#: add-interactive.c:1040 add-interactive.c:1085
+#: add-interactive.c:1042 add-interactive.c:1087
msgid "select item based on unique prefix"
msgstr "基於唯一å‰ç¶´é¸æ“‡é …ç›®"
-#: add-interactive.c:1042
+#: add-interactive.c:1044
msgid "unselect specified items"
msgstr "å–消é¸æ“‡æŒ‡å®šé …ç›®"
-#: add-interactive.c:1044
+#: add-interactive.c:1046
msgid "choose all items"
msgstr "é¸æ“‡æ‰€æœ‰é …ç›®"
-#: add-interactive.c:1046
+#: add-interactive.c:1048
msgid "(empty) finish selecting"
msgstr "(空)完æˆé¸å–"
-#: add-interactive.c:1083
+#: add-interactive.c:1085
msgid "select a numbered item"
msgstr "é¸æ“‡ç·¨è™ŸéŽçš„é …ç›®"
-#: add-interactive.c:1087
+#: add-interactive.c:1089
msgid "(empty) select nothing"
msgstr "(空)全ä¸é¸å–"
-#: add-interactive.c:1095 builtin/clean.c:839 git-add--interactive.perl:1898
+#: add-interactive.c:1097 builtin/clean.c:839 git-add--interactive.perl:1898
msgid "*** Commands ***"
msgstr "*** 指令 ***"
-#: add-interactive.c:1096 builtin/clean.c:840 git-add--interactive.perl:1895
+#: add-interactive.c:1098 builtin/clean.c:840 git-add--interactive.perl:1895
msgid "What now"
msgstr "è«‹é¸æ“‡"
-#: add-interactive.c:1148 git-add--interactive.perl:213
+#: add-interactive.c:1150 git-add--interactive.perl:213
msgid "staged"
msgstr "å¿«å–"
-#: add-interactive.c:1148 git-add--interactive.perl:213
+#: add-interactive.c:1150 git-add--interactive.perl:213
msgid "unstaged"
msgstr "未快å–"
-#: add-interactive.c:1148 apply.c:5020 apply.c:5023 builtin/am.c:2367
-#: builtin/am.c:2370 builtin/bugreport.c:107 builtin/clone.c:128
-#: builtin/fetch.c:153 builtin/merge.c:287 builtin/pull.c:194
-#: builtin/submodule--helper.c:404 builtin/submodule--helper.c:1858
-#: builtin/submodule--helper.c:1861 builtin/submodule--helper.c:2504
-#: builtin/submodule--helper.c:2507 builtin/submodule--helper.c:2574
-#: builtin/submodule--helper.c:2579 builtin/submodule--helper.c:2812
+#: add-interactive.c:1150 apply.c:5002 apply.c:5005 builtin/am.c:2370
+#: builtin/am.c:2373 builtin/bugreport.c:107 builtin/clone.c:132
+#: builtin/fetch.c:154 builtin/merge.c:287 builtin/pull.c:194
+#: builtin/submodule--helper.c:412 builtin/submodule--helper.c:1872
+#: builtin/submodule--helper.c:1875 builtin/submodule--helper.c:2709
+#: builtin/submodule--helper.c:2712 builtin/submodule--helper.c:2891
#: git-add--interactive.perl:213
msgid "path"
msgstr "路徑"
-#: add-interactive.c:1155
+#: add-interactive.c:1157
msgid "could not refresh index"
msgstr "無法é‡æ–°æ•´ç†ç´¢å¼•"
-#: add-interactive.c:1169 builtin/clean.c:804 git-add--interactive.perl:1805
+#: add-interactive.c:1171 builtin/clean.c:804 git-add--interactive.perl:1805
#, c-format
msgid "Bye.\n"
msgstr "å†è¦‹ã€‚\n"
@@ -540,24 +539,24 @@ msgstr "無法解æžå€å¡Šæ¨™é ­ '%.*s'"
msgid "could not parse colored hunk header '%.*s'"
msgstr "無法解æžä¸Šè‰²éŽçš„å€å¡Šæ¨™é ­ '%.*s'"
-#: add-patch.c:420
+#: add-patch.c:431
msgid "could not parse diff"
msgstr "無法解æžå·®ç•° (diff)"
-#: add-patch.c:439
+#: add-patch.c:450
msgid "could not parse colored diff"
msgstr "無法解æžä¸Šè‰²éŽçš„差異 (diff)"
-#: add-patch.c:453
+#: add-patch.c:464
#, c-format
msgid "failed to run '%s'"
msgstr "無法執行 '%s'"
-#: add-patch.c:612
+#: add-patch.c:618
msgid "mismatched output from interactive.diffFilter"
msgstr "interactive.diffFilter 的輸出ä¸ç¬¦"
-#: add-patch.c:613
+#: add-patch.c:619
msgid ""
"Your filter must maintain a one-to-one correspondence\n"
"between its input and output lines."
@@ -565,7 +564,7 @@ msgstr ""
"您的éŽæ¿¾å™¨å¿…須在其輸入åŠè¼¸å‡ºè¡Œ\n"
"維æŒä¸€å°ä¸€çš„å°æ‡‰é—œä¿‚。"
-#: add-patch.c:791
+#: add-patch.c:797
#, c-format
msgid ""
"expected context line #%d in\n"
@@ -574,7 +573,7 @@ msgstr ""
"應有上下文行 #%d 於\n"
"%.*s"
-#: add-patch.c:806
+#: add-patch.c:812
#, c-format
msgid ""
"hunks do not overlap:\n"
@@ -587,11 +586,11 @@ msgstr ""
"\tä¸ä»¥ä¸‹è¿°çµå°¾ï¼š\n"
"%.*s"
-#: add-patch.c:1082 git-add--interactive.perl:1115
+#: add-patch.c:1088 git-add--interactive.perl:1115
msgid "Manual hunk edit mode -- see bottom for a quick guide.\n"
msgstr "手動å€å¡Šç·¨è¼¯æ¨¡å¼ -- 檢視底部的快速指å—。\n"
-#: add-patch.c:1086
+#: add-patch.c:1092
#, c-format
msgid ""
"---\n"
@@ -605,7 +604,7 @@ msgstr ""
"以 %c 開始的行將被刪除。\n"
#. TRANSLATORS: 'it' refers to the patch mentioned in the previous messages.
-#: add-patch.c:1100 git-add--interactive.perl:1129
+#: add-patch.c:1106 git-add--interactive.perl:1129
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"
@@ -615,11 +614,11 @@ msgstr ""
"若刪掉此å€å¡Šçš„全部內容,則會中止\n"
"本次編輯,å€å¡Šå‰‡ä¸æœƒè¢«ä¿®æ”¹ã€‚\n"
-#: add-patch.c:1133
+#: add-patch.c:1139
msgid "could not parse hunk header"
msgstr "無法解æžå€å¡Šæ¨™é ­"
-#: add-patch.c:1178
+#: add-patch.c:1184
msgid "'git apply --cached' failed"
msgstr "「git apply --cachedã€å¤±æ•—"
@@ -635,24 +634,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:1247 git-add--interactive.perl:1244
+#: add-patch.c:1253 git-add--interactive.perl:1244
msgid ""
"Your edited hunk does not apply. Edit again (saying \"no\" discards!) [y/n]? "
msgstr "未套用編輯å€å¡Šã€‚是å¦é‡æ–°ç·¨è¼¯ï¼ˆè¼¸å…¥ “no†æ¨æ£„ï¼ï¼‰ [y/n]? "
-#: add-patch.c:1290
+#: add-patch.c:1296
msgid "The selected hunks do not apply to the index!"
msgstr "é¸å–çš„å€å¡Šä¸æœƒå¥—用進索引ï¼"
-#: add-patch.c:1291 git-add--interactive.perl:1348
+#: add-patch.c:1297 git-add--interactive.perl:1348
msgid "Apply them to the worktree anyway? "
msgstr "無論如何都è¦å¥—用到工作å€å—Žï¼Ÿ "
-#: add-patch.c:1298 git-add--interactive.perl:1351
+#: add-patch.c:1304 git-add--interactive.perl:1351
msgid "Nothing was applied.\n"
msgstr "未套用。\n"
-#: add-patch.c:1355
+#: add-patch.c:1361
msgid ""
"j - leave this hunk undecided, see next undecided hunk\n"
"J - leave this hunk undecided, see next hunk\n"
@@ -674,72 +673,72 @@ msgstr ""
"e - 手動編輯目å‰å€å¡Š\n"
"? - 顯示說明\n"
-#: add-patch.c:1517 add-patch.c:1527
+#: add-patch.c:1523 add-patch.c:1533
msgid "No previous hunk"
msgstr "沒有上一個å€å¡Š"
-#: add-patch.c:1522 add-patch.c:1532
+#: add-patch.c:1528 add-patch.c:1538
msgid "No next hunk"
msgstr "沒有下一個å€å¡Š"
-#: add-patch.c:1538
+#: add-patch.c:1544
msgid "No other hunks to goto"
msgstr "沒有其它å¯ä¾›è·³è½‰çš„å€å¡Š"
-#: add-patch.c:1549 git-add--interactive.perl:1608
+#: add-patch.c:1555 git-add--interactive.perl:1608
msgid "go to which hunk (<ret> to see more)? "
msgstr "è¦è·³è½‰åˆ°å“ªå€‹å€å¡Šï¼ˆ<Enter> 檢視更多)? "
-#: add-patch.c:1550 git-add--interactive.perl:1610
+#: add-patch.c:1556 git-add--interactive.perl:1610
msgid "go to which hunk? "
msgstr "跳轉到哪個å€å¡Šï¼Ÿ "
-#: add-patch.c:1561
+#: add-patch.c:1567
#, c-format
msgid "Invalid number: '%s'"
msgstr "無效數字:'%s'"
-#: add-patch.c:1566
+#: add-patch.c:1572
#, c-format
msgid "Sorry, only %d hunk available."
msgid_plural "Sorry, only %d hunks available."
msgstr[0] "å°ä¸èµ·ï¼Œåªæœ‰ %d 個å¯ç”¨å€å¡Šã€‚"
-#: add-patch.c:1575
+#: add-patch.c:1581
msgid "No other hunks to search"
msgstr "沒有其它å¯ä¾›å°‹æ‰¾çš„å€å¡Š"
-#: add-patch.c:1581 git-add--interactive.perl:1663
+#: add-patch.c:1587 git-add--interactive.perl:1663
msgid "search for regex? "
msgstr "使用常è¦è¡¨ç¤ºå¼æœå°‹ï¼Ÿ "
-#: add-patch.c:1596
+#: add-patch.c:1602
#, c-format
msgid "Malformed search regexp %s: %s"
msgstr "錯誤的常è¦è¡¨ç¤ºå¼ %s:%s"
-#: add-patch.c:1613
+#: add-patch.c:1619
msgid "No hunk matches the given pattern"
msgstr "沒有和æ供模å¼ç›¸ç¬¦åˆçš„å€å¡Š"
-#: add-patch.c:1620
+#: add-patch.c:1626
msgid "Sorry, cannot split this hunk"
msgstr "å°ä¸èµ·ï¼Œä¸èƒ½åˆ†å‰²é€™å€‹å€å¡Š"
-#: add-patch.c:1624
+#: add-patch.c:1630
#, c-format
msgid "Split into %d hunks."
msgstr "分割為 %d 個å€å¡Šã€‚"
-#: add-patch.c:1628
+#: add-patch.c:1634
msgid "Sorry, cannot edit this hunk"
msgstr "å°ä¸èµ·ï¼Œä¸èƒ½ç·¨è¼¯é€™å€‹å€å¡Š"
-#: add-patch.c:1680
+#: add-patch.c:1686
msgid "'git apply' failed"
msgstr "'git apply' 失敗"
-#: advice.c:78
+#: advice.c:81
#, c-format
msgid ""
"\n"
@@ -748,37 +747,37 @@ msgstr ""
"\n"
"請使用「git config advice.%s falseã€ä¾†åœç”¨æ­¤è¨Šæ¯"
-#: advice.c:94
+#: advice.c:97
#, c-format
msgid "%shint: %.*s%s\n"
msgstr "%sæ示:%.*s%s\n"
-#: advice.c:178
+#: advice.c:181
msgid "Cherry-picking is not possible because you have unmerged files."
msgstr "無法æ€é¸ï¼Œå› ç‚ºæ‚¨æœ‰æœªåˆä½µçš„檔案。"
-#: advice.c:180
+#: advice.c:183
msgid "Committing is not possible because you have unmerged files."
msgstr "無法æ交,因為您有未åˆä½µçš„檔案。"
-#: advice.c:182
+#: advice.c:185
msgid "Merging is not possible because you have unmerged files."
msgstr "無法åˆä½µï¼Œå› ç‚ºæ‚¨æœ‰æœªåˆä½µçš„檔案。"
-#: advice.c:184
+#: advice.c:187
msgid "Pulling is not possible because you have unmerged files."
msgstr "無法拉å–,因為您有未åˆä½µçš„檔案。"
-#: advice.c:186
+#: advice.c:189
msgid "Reverting is not possible because you have unmerged files."
msgstr "無法還原æ交,因為您有未åˆä½µçš„檔案。"
-#: advice.c:188
+#: advice.c:191
#, c-format
msgid "It is not possible to %s because you have unmerged files."
msgstr "無法 %s,因為您有未åˆä½µçš„檔案。"
-#: advice.c:196
+#: advice.c:199
msgid ""
"Fix them up in the work tree, and then use 'git add/rm <file>'\n"
"as appropriate to mark resolution and make a commit."
@@ -786,27 +785,27 @@ msgstr ""
"請在工作å€æ”¹æ­£æª”案,然後酌情使用 'git add/rm <檔案>' 指令標記\n"
"解決方案並æ交。"
-#: advice.c:204
+#: advice.c:207
msgid "Exiting because of an unresolved conflict."
msgstr "因為存在未解決的è¡çªè€Œé›¢é–‹ã€‚"
-#: advice.c:209 builtin/merge.c:1382
+#: advice.c:212 builtin/merge.c:1388
msgid "You have not concluded your merge (MERGE_HEAD exists)."
msgstr "您尚未çµæŸæ‚¨çš„åˆä½µï¼ˆå­˜åœ¨ MERGE_HEAD)。"
-#: advice.c:211
+#: advice.c:214
msgid "Please, commit your changes before merging."
msgstr "請在åˆä½µå‰å…ˆæ交您的修改。"
-#: advice.c:212
+#: advice.c:215
msgid "Exiting because of unfinished merge."
msgstr "因為存在未完æˆçš„åˆä½µè€Œé›¢é–‹ã€‚"
-#: advice.c:217
+#: advice.c:220
msgid "Not possible to fast-forward, aborting."
msgstr "無法快轉,終止。"
-#: advice.c:227
+#: advice.c:230
#, c-format
msgid ""
"The following paths and/or pathspecs matched paths that exist\n"
@@ -817,7 +816,7 @@ msgstr ""
"符åˆç¨€ç–簽出定義外且存在的路徑,\n"
"所以ä¸æœƒåœ¨ç´¢å¼•ä¸­æ›´æ–°ï¼š\n"
-#: advice.c:234
+#: advice.c:237
msgid ""
"If you intend to update such entries, try one of the following:\n"
"* Use the --sparse option.\n"
@@ -827,7 +826,7 @@ msgstr ""
"* 使用 --sparse é¸é …。\n"
"* åœç”¨æˆ–修改稀ç–è¦å‰‡ã€‚"
-#: advice.c:242
+#: advice.c:245
#, c-format
msgid ""
"Note: switching to '%s'.\n"
@@ -885,80 +884,83 @@ msgstr "無法識別的空白字元é¸é … '%s'"
msgid "unrecognized whitespace ignore option '%s'"
msgstr "無法識別的空白字元忽略é¸é … '%s'"
-#: apply.c:136 archive.c:584 range-diff.c:559 revision.c:2303 revision.c:2307
-#: revision.c:2316 revision.c:2321 revision.c:2527 revision.c:2870
-#: revision.c:2874 revision.c:2880 revision.c:2883 revision.c:2885
-#: builtin/add.c:510 builtin/add.c:512 builtin/add.c:529 builtin/add.c:541
-#: builtin/branch.c:727 builtin/checkout.c:467 builtin/checkout.c:470
-#: builtin/checkout.c:1644 builtin/checkout.c:1754 builtin/checkout.c:1757
-#: builtin/clone.c:906 builtin/commit.c:358 builtin/commit.c:361
-#: builtin/commit.c:1196 builtin/describe.c:593 builtin/diff-tree.c:155
-#: builtin/difftool.c:733 builtin/fast-export.c:1245 builtin/fetch.c:2038
-#: builtin/fetch.c:2043 builtin/index-pack.c:1852 builtin/init-db.c:560
-#: builtin/log.c:1946 builtin/log.c:1948 builtin/ls-files.c:778
-#: builtin/merge.c:1403 builtin/merge.c:1405 builtin/pack-objects.c:4073
-#: builtin/push.c:592 builtin/push.c:630 builtin/push.c:636 builtin/push.c:641
-#: builtin/rebase.c:1193 builtin/rebase.c:1195 builtin/rebase.c:1199
-#: builtin/repack.c:684 builtin/repack.c:715 builtin/reset.c:426
-#: builtin/reset.c:462 builtin/rev-list.c:541 builtin/show-branch.c:710
-#: builtin/stash.c:1707 builtin/stash.c:1710 builtin/submodule--helper.c:1316
-#: builtin/submodule--helper.c:2975 builtin/tag.c:526 builtin/tag.c:572
-#: builtin/worktree.c:702
+#: apply.c:138 archive.c:584 parse-options.c:1122 range-diff.c:555
+#: revision.c:2314 revision.c:2318 revision.c:2327 revision.c:2332
+#: revision.c:2560 revision.c:2895 revision.c:2899 revision.c:2907
+#: revision.c:2910 revision.c:2912 builtin/add.c:507 builtin/add.c:509
+#: builtin/add.c:515 builtin/add.c:527 builtin/branch.c:755
+#: builtin/checkout.c:472 builtin/checkout.c:475 builtin/checkout.c:1663
+#: builtin/checkout.c:1773 builtin/checkout.c:1776 builtin/clone.c:921
+#: builtin/commit.c:359 builtin/commit.c:362 builtin/commit.c:1200
+#: builtin/commit.c:1256 builtin/commit.c:1273 builtin/describe.c:593
+#: builtin/diff-tree.c:155 builtin/difftool.c:733 builtin/fast-export.c:1245
+#: builtin/fetch.c:2141 builtin/fetch.c:2162 builtin/fetch.c:2167
+#: builtin/help.c:602 builtin/index-pack.c:1858 builtin/init-db.c:560
+#: builtin/log.c:1968 builtin/log.c:1970 builtin/ls-files.c:778
+#: builtin/merge-base.c:163 builtin/merge-base.c:169 builtin/merge.c:1409
+#: builtin/merge.c:1411 builtin/pack-objects.c:4098 builtin/push.c:592
+#: builtin/push.c:630 builtin/push.c:636 builtin/push.c:641
+#: builtin/rebase.c:1221 builtin/rebase.c:1223 builtin/rebase.c:1227
+#: builtin/repack.c:688 builtin/repack.c:719 builtin/reset.c:433
+#: builtin/reset.c:469 builtin/rev-list.c:537 builtin/show-branch.c:711
+#: builtin/stash.c:1696 builtin/stash.c:1699 builtin/submodule--helper.c:1328
+#: builtin/submodule--helper.c:3054 builtin/tag.c:527 builtin/tag.c:573
+#: builtin/worktree.c:779
#, c-format
msgid "options '%s' and '%s' cannot be used together"
msgstr "ä¸èƒ½åŒæ™‚使用 '%s' å’Œ '%s' é¸é …"
-#: apply.c:139 apply.c:150 apply.c:153
+#: apply.c:141 apply.c:152 apply.c:155
#, c-format
msgid "'%s' outside a repository"
msgstr "'%s' 在版本庫之外"
-#: apply.c:800
+#: apply.c:807
#, c-format
msgid "Cannot prepare timestamp regexp %s"
msgstr "無法準備時間戳常è¦è¡¨ç¤ºå¼ %s"
-#: apply.c:809
+#: apply.c:816
#, c-format
msgid "regexec returned %d for input: %s"
msgstr "regexec 返回 %d,輸入為:%s"
-#: apply.c:883
+#: apply.c:890
#, c-format
msgid "unable to find filename in patch at line %d"
msgstr "ä¸èƒ½åœ¨ä¿®è£œæª”的第 %d 行找到檔案å"
-#: apply.c:921
+#: apply.c:928
#, c-format
msgid "git apply: bad git-diff - expected /dev/null, got %s on line %d"
msgstr "git apply:錯誤的 git-diff - 應為 /dev/null,但在第 %2$d 行得到 %1$s"
-#: apply.c:927
+#: apply.c:934
#, c-format
msgid "git apply: bad git-diff - inconsistent new filename on line %d"
msgstr "git apply:錯誤的 git-diff - 第 %d 行上新檔案åä¸ä¸€è‡´"
-#: apply.c:928
+#: apply.c:935
#, c-format
msgid "git apply: bad git-diff - inconsistent old filename on line %d"
msgstr "git apply:錯誤的 git-diff - 第 %d 行上舊檔案åä¸ä¸€è‡´"
-#: apply.c:933
+#: apply.c:940
#, c-format
msgid "git apply: bad git-diff - expected /dev/null on line %d"
msgstr "git apply:錯誤的 git-diff - 第 %d 行處應為 /dev/null"
-#: apply.c:962
+#: apply.c:969
#, c-format
msgid "invalid mode on line %d: %s"
msgstr "第 %d 行包å«ç„¡æ•ˆæª”案模å¼ï¼š%s"
-#: apply.c:1281
+#: apply.c:1288
#, c-format
msgid "inconsistent header lines %d and %d"
msgstr "ä¸ä¸€è‡´çš„檔案頭,%d 行和 %d è¡Œ"
-#: apply.c:1371
+#: apply.c:1378
#, c-format
msgid ""
"git diff header lacks filename information when removing %d leading pathname "
@@ -968,91 +970,91 @@ msgid_plural ""
"components (line %d)"
msgstr[0] "當移除 %d 個å‰å°Žè·¯å¾‘後 git diff 頭缺ä¹æª”案å訊æ¯ï¼ˆç¬¬ %d 行)"
-#: apply.c:1384
+#: apply.c:1391
#, c-format
msgid "git diff header lacks filename information (line %d)"
msgstr "git diff 的標頭訊æ¯ä¸­ç¼ºä¹æª”案å訊æ¯ï¼ˆç¬¬ %d 行)"
-#: apply.c:1480
+#: apply.c:1487
#, c-format
msgid "recount: unexpected line: %.*s"
msgstr "recount:æ„外的行:%.*s"
-#: apply.c:1549
+#: apply.c:1556
#, c-format
msgid "patch fragment without header at line %d: %.*s"
msgstr "第 %d 行的修補檔å€å¡Šæ²’有標頭訊æ¯ï¼š%.*s"
-#: apply.c:1752
+#: apply.c:1759
msgid "new file depends on old contents"
msgstr "新檔案ä¾è³´èˆŠå…§å®¹"
-#: apply.c:1754
+#: apply.c:1761
msgid "deleted file still has contents"
msgstr "刪除的檔案ä»æœ‰å…§å®¹"
-#: apply.c:1788
+#: apply.c:1795
#, c-format
msgid "corrupt patch at line %d"
msgstr "修補檔在第 %d 行發ç¾æ壞"
-#: apply.c:1825
+#: apply.c:1832
#, c-format
msgid "new file %s depends on old contents"
msgstr "新檔案 %s ä¾è³´èˆŠå…§å®¹"
-#: apply.c:1827
+#: apply.c:1834
#, c-format
msgid "deleted file %s still has contents"
msgstr "刪除的檔案 %s ä»æœ‰å…§å®¹"
-#: apply.c:1830
+#: apply.c:1837
#, c-format
msgid "** warning: file %s becomes empty but is not deleted"
msgstr "** 警告:檔案 %s æˆç‚ºç©ºæª”案但並未刪除"
-#: apply.c:1978
+#: apply.c:1985
#, c-format
msgid "corrupt binary patch at line %d: %.*s"
msgstr "二進ä½ä¿®è£œæª”在第 %d è¡Œæ壞:%.*s"
-#: apply.c:2015
+#: apply.c:2022
#, c-format
msgid "unrecognized binary patch at line %d"
msgstr "無法識別的二進ä½ä¿®è£œæª”ä½æ–¼ç¬¬ %d è¡Œ"
-#: apply.c:2177
+#: apply.c:2184
#, c-format
msgid "patch with only garbage at line %d"
msgstr "修補檔案的第 %d è¡Œåªæœ‰åžƒåœ¾è³‡æ–™"
-#: apply.c:2263
+#: apply.c:2270
#, c-format
msgid "unable to read symlink %s"
msgstr "無法讀å–ç¬¦è™Ÿé€£çµ %s"
-#: apply.c:2267
+#: apply.c:2274
#, c-format
msgid "unable to open or read %s"
msgstr "ä¸èƒ½é–‹å•Ÿæˆ–è®€å– %s"
-#: apply.c:2936
+#: apply.c:2943
#, c-format
msgid "invalid start of line: '%c'"
msgstr "無效的行首字元:'%c'"
-#: apply.c:3057
+#: apply.c:3064
#, c-format
msgid "Hunk #%d succeeded at %d (offset %d line)."
msgid_plural "Hunk #%d succeeded at %d (offset %d lines)."
msgstr[0] "å€å¡Š #%d æˆåŠŸå¥—用於 %d(ä½ç§» %d 行)。"
-#: apply.c:3069
+#: apply.c:3076
#, c-format
msgid "Context reduced to (%ld/%ld) to apply fragment at %d"
msgstr "上下文減少到(%ld/%ld)以在第 %d 行套用修補檔å€å¡Š"
-#: apply.c:3075
+#: apply.c:3082
#, c-format
msgid ""
"while searching for:\n"
@@ -1061,442 +1063,442 @@ msgstr ""
"當查詢:\n"
"%.*s"
-#: apply.c:3097
+#: apply.c:3104
#, c-format
msgid "missing binary patch data for '%s'"
msgstr "缺少 '%s' 的二進ä½ä¿®è£œæª”資料"
-#: apply.c:3105
+#: apply.c:3112
#, c-format
msgid "cannot reverse-apply a binary patch without the reverse hunk to '%s'"
msgstr "ä¸èƒ½åå‘套用一個缺少到 '%s' çš„åå‘資料å€å¡Šçš„二進ä½ä¿®è£œæª”"
-#: apply.c:3152
+#: apply.c:3159
#, c-format
msgid "cannot apply binary patch to '%s' without full index line"
msgstr "ä¸èƒ½åœ¨ '%s' 上套用沒有完整索引行的二進ä½ä¿®è£œæª”"
-#: apply.c:3163
+#: apply.c:3170
#, c-format
msgid ""
"the patch applies to '%s' (%s), which does not match the current contents."
msgstr "修補檔套用到 '%s'(%s),但是和目å‰å…§å®¹ä¸ç¬¦åˆã€‚"
-#: apply.c:3171
+#: apply.c:3178
#, c-format
msgid "the patch applies to an empty '%s' but it is not empty"
msgstr "修補檔套用到空檔案 '%s',但其並éžç©ºæª”案"
-#: apply.c:3189
+#: apply.c:3196
#, c-format
msgid "the necessary postimage %s for '%s' cannot be read"
msgstr "ç„¡æ³•è®€å– '%2$s' 必需的目標檔案 %1$s"
-#: apply.c:3202
+#: apply.c:3209
#, c-format
msgid "binary patch does not apply to '%s'"
msgstr "二進ä½ä¿®è£œæª”未套用到 '%s'"
-#: apply.c:3209
+#: apply.c:3216
#, c-format
msgid "binary patch to '%s' creates incorrect result (expecting %s, got %s)"
msgstr "到 '%s' 的二進ä½ä¿®è£œæª”產生了ä¸æ­£ç¢ºçš„çµæžœï¼ˆæ‡‰ç‚º %s,å»ç‚º %s)"
-#: apply.c:3230
+#: apply.c:3237
#, c-format
msgid "patch failed: %s:%ld"
msgstr "打修補檔失敗:%s:%ld"
-#: apply.c:3353
+#: apply.c:3360
#, c-format
msgid "cannot checkout %s"
msgstr "ä¸èƒ½ç°½å‡º %s"
-#: apply.c:3405 apply.c:3416 apply.c:3462 midx.c:104 pack-revindex.c:214
-#: setup.c:309
+#: apply.c:3412 apply.c:3423 apply.c:3469 midx.c:105 pack-revindex.c:214
+#: setup.c:310
#, c-format
msgid "failed to read %s"
msgstr "ç„¡æ³•è®€å– %s"
-#: apply.c:3413
+#: apply.c:3420
#, c-format
msgid "reading from '%s' beyond a symbolic link"
msgstr "讀å–ä½æ–¼ç¬¦è™Ÿé€£çµä¸­çš„ '%s'"
-#: apply.c:3442 apply.c:3711
+#: apply.c:3449 apply.c:3721
#, c-format
msgid "path %s has been renamed/deleted"
msgstr "路徑 %s 已經被é‡æ–°å‘½å/刪除"
-#: apply.c:3549 apply.c:3726
+#: apply.c:3559 apply.c:3736
#, c-format
msgid "%s: does not exist in index"
msgstr "%s:ä¸å­˜åœ¨æ–¼ç´¢å¼•ä¸­"
-#: apply.c:3558 apply.c:3734 apply.c:3978
+#: apply.c:3568 apply.c:3744 apply.c:3960
#, c-format
msgid "%s: does not match index"
msgstr "%s:和索引ä¸ç¬¦åˆ"
-#: apply.c:3595
+#: apply.c:3605
msgid "repository lacks the necessary blob to perform 3-way merge."
msgstr "版本庫缺少用來進行三方åˆä½µæ‰€éœ€è¦çš„資料物件。"
-#: apply.c:3598
+#: apply.c:3608
#, c-format
msgid "Performing three-way merge...\n"
msgstr "正在進行三方åˆä½µâ‹¯â‹¯\n"
-#: apply.c:3614 apply.c:3618
+#: apply.c:3624 apply.c:3628
#, c-format
msgid "cannot read the current contents of '%s'"
msgstr "ç„¡æ³•è®€å– '%s' çš„ç›®å‰å…§å®¹"
-#: apply.c:3630
+#: apply.c:3640
#, c-format
msgid "Failed to perform three-way merge...\n"
msgstr "無法進行三方åˆä½µâ‹¯â‹¯\n"
-#: apply.c:3644
+#: apply.c:3654
#, c-format
msgid "Applied patch to '%s' with conflicts.\n"
msgstr "套用修補檔到 '%s' 存在è¡çªã€‚\n"
-#: apply.c:3649
+#: apply.c:3659
#, c-format
msgid "Applied patch to '%s' cleanly.\n"
msgstr "æˆåŠŸå¥—用修補檔到 '%s'。\n"
-#: apply.c:3666
+#: apply.c:3676
#, c-format
msgid "Falling back to direct application...\n"
msgstr "回復至直接套用模å¼â‹¯â‹¯\n"
-#: apply.c:3678
+#: apply.c:3688
msgid "removal patch leaves file contents"
msgstr "移除修補檔ä»ç•™ä¸‹äº†æª”案內容"
-#: apply.c:3751
+#: apply.c:3761
#, c-format
msgid "%s: wrong type"
msgstr "%s:錯誤類型"
-#: apply.c:3753
+#: apply.c:3763
#, c-format
msgid "%s has type %o, expected %o"
msgstr "%s 的類型是 %o,應為 %o"
-#: apply.c:3918 apply.c:3920 read-cache.c:889 read-cache.c:918
-#: read-cache.c:1381
+#: apply.c:3900 apply.c:3902 read-cache.c:903 read-cache.c:932
+#: read-cache.c:1399
#, c-format
msgid "invalid path '%s'"
msgstr "無效路徑 '%s'"
-#: apply.c:3976
+#: apply.c:3958
#, c-format
msgid "%s: already exists in index"
msgstr "%s:已經存在於索引中"
-#: apply.c:3980
+#: apply.c:3962
#, c-format
msgid "%s: already exists in working directory"
msgstr "%s:已經存在於工作å€ä¸­"
-#: apply.c:4000
+#: apply.c:3982
#, c-format
msgid "new mode (%o) of %s does not match old mode (%o)"
msgstr "%2$s 的新模å¼ï¼ˆ%1$o)和舊模å¼ï¼ˆ%3$o)ä¸ç¬¦åˆ"
-#: apply.c:4005
+#: apply.c:3987
#, c-format
msgid "new mode (%o) of %s does not match old mode (%o) of %s"
msgstr "%2$s 的新模å¼ï¼ˆ%1$o)和 %4$s 的舊模å¼ï¼ˆ%3$o)ä¸ç¬¦åˆ"
-#: apply.c:4025
+#: apply.c:4007
#, c-format
msgid "affected file '%s' is beyond a symbolic link"
msgstr "å—影響的檔案 '%s' ä½æ–¼ç¬¦è™Ÿé€£çµä¸­"
-#: apply.c:4029
+#: apply.c:4011
#, c-format
msgid "%s: patch does not apply"
msgstr "%s:修補檔未套用"
-#: apply.c:4044
+#: apply.c:4026
#, c-format
msgid "Checking patch %s..."
msgstr "正在檢查修補檔 %s..."
-#: apply.c:4136
+#: apply.c:4118
#, c-format
msgid "sha1 information is lacking or useless for submodule %s"
msgstr "å­æ¨¡çµ„ %s çš„ sha1 訊æ¯ç¼ºå°‘或無效"
-#: apply.c:4143
+#: apply.c:4125
#, c-format
msgid "mode change for %s, which is not in current HEAD"
msgstr "%s 的模å¼è®Šæ›´ï¼Œä½†å®ƒä¸åœ¨ç›®å‰ HEAD 中"
-#: apply.c:4146
+#: apply.c:4128
#, c-format
msgid "sha1 information is lacking or useless (%s)."
msgstr "sha1 訊æ¯ç¼ºå°‘或無效(%s)。"
-#: apply.c:4155
+#: apply.c:4137
#, c-format
msgid "could not add %s to temporary index"
msgstr "ä¸èƒ½åœ¨æš«æ™‚索引中新增 %s"
-#: apply.c:4165
+#: apply.c:4147
#, c-format
msgid "could not write temporary index to %s"
msgstr "ä¸èƒ½æŠŠæš«æ™‚索引寫入到 %s"
-#: apply.c:4303
+#: apply.c:4285
#, c-format
msgid "unable to remove %s from index"
msgstr "ä¸èƒ½å¾žç´¢å¼•ä¸­ç§»é™¤ %s"
-#: apply.c:4337
+#: apply.c:4319
#, c-format
msgid "corrupt patch for submodule %s"
msgstr "å­æ¨¡çµ„ %s æ壞的修補檔"
-#: apply.c:4343
+#: apply.c:4325
#, c-format
msgid "unable to stat newly created file '%s'"
msgstr "ä¸èƒ½å°å»ºç«‹æª”案 '%s' å‘¼å« stat"
-#: apply.c:4351
+#: apply.c:4333
#, c-format
msgid "unable to create backing store for newly created file %s"
msgstr "ä¸èƒ½ç‚ºå»ºç«‹æª”案 %s 建立後端儲存"
-#: apply.c:4357 apply.c:4502
+#: apply.c:4339 apply.c:4484
#, c-format
msgid "unable to add cache entry for %s"
msgstr "無法為 %s 新增快å–æ¢ç›®"
-#: apply.c:4400 builtin/bisect--helper.c:540 builtin/gc.c:2258
+#: apply.c:4382 builtin/bisect--helper.c:540 builtin/gc.c:2258
#: builtin/gc.c:2293
#, c-format
msgid "failed to write to '%s'"
msgstr "寫入 '%s' 失敗"
-#: apply.c:4404
+#: apply.c:4386
#, c-format
msgid "closing file '%s'"
msgstr "關閉檔案 '%s'"
-#: apply.c:4474
+#: apply.c:4456
#, c-format
msgid "unable to write file '%s' mode %o"
msgstr "ä¸èƒ½å¯«å…¥æª”案 '%s' æ¬Šé™ %o"
-#: apply.c:4572
+#: apply.c:4554
#, c-format
msgid "Applied patch %s cleanly."
msgstr "æˆåŠŸå¥—用修補檔 %s。"
-#: apply.c:4580
+#: apply.c:4562
msgid "internal error"
msgstr "內部錯誤"
-#: apply.c:4583
+#: apply.c:4565
#, c-format
msgid "Applying patch %%s with %d reject..."
msgid_plural "Applying patch %%s with %d rejects..."
msgstr[0] "套用 %%s 個修補檔,其中 %d 個被拒絕..."
-#: apply.c:4594
+#: apply.c:4576
#, c-format
msgid "truncating .rej filename to %.*s.rej"
msgstr "截短 .rej 檔案å為 %.*s.rej"
-#: apply.c:4602
+#: apply.c:4584
#, c-format
msgid "cannot open %s"
msgstr "ä¸èƒ½é–‹å•Ÿ %s"
-#: apply.c:4616
+#: apply.c:4598
#, c-format
msgid "Hunk #%d applied cleanly."
msgstr "æˆåŠŸå¥—用第 #%d 個å€å¡Šã€‚"
-#: apply.c:4620
+#: apply.c:4602
#, c-format
msgid "Rejected hunk #%d."
msgstr "拒絕第 #%d 個å€å¡Šã€‚"
-#: apply.c:4749
+#: apply.c:4731
#, c-format
msgid "Skipped patch '%s'."
msgstr "ç•¥éŽä¿®è£œæª” '%s'。"
-#: apply.c:4758
+#: apply.c:4740
msgid "No valid patches in input (allow with \"--allow-empty\")"
msgstr "輸入中沒有有效的修補檔內容(傳入「--allow-emptyã€å…許)"
-#: apply.c:4779
+#: apply.c:4761
msgid "unable to read index file"
msgstr "無法讀å–索引檔案"
-#: apply.c:4936
+#: apply.c:4918
#, c-format
msgid "can't open patch '%s': %s"
msgstr "ä¸èƒ½é–‹å•Ÿä¿®è£œæª” '%s':%s"
-#: apply.c:4963
+#: apply.c:4945
#, c-format
msgid "squelched %d whitespace error"
msgid_plural "squelched %d whitespace errors"
msgstr[0] "抑制下ä»æœ‰ %d 個空白字元誤用"
-#: apply.c:4969 apply.c:4984
+#: apply.c:4951 apply.c:4966
#, c-format
msgid "%d line adds whitespace errors."
msgid_plural "%d lines add whitespace errors."
msgstr[0] "%d 行新增了空白字元誤用。"
-#: apply.c:4977
+#: apply.c:4959
#, c-format
msgid "%d line applied after fixing whitespace errors."
msgid_plural "%d lines applied after fixing whitespace errors."
msgstr[0] "修復空白錯誤後,套用了 %d 行。"
-#: apply.c:4993 builtin/add.c:704 builtin/mv.c:338 builtin/rm.c:430
+#: apply.c:4975 builtin/add.c:690 builtin/mv.c:338 builtin/rm.c:430
msgid "Unable to write new index file"
msgstr "無法寫入新索引檔案"
-#: apply.c:5021
+#: apply.c:5003
msgid "don't apply changes matching the given path"
msgstr "ä¸è¦å¥—用符åˆæ供路徑的變更"
-#: apply.c:5024
+#: apply.c:5006
msgid "apply changes matching the given path"
msgstr "套用符åˆæ供路徑的變更"
-#: apply.c:5026 builtin/am.c:2376
+#: apply.c:5008 builtin/am.c:2379
msgid "num"
msgstr "數字"
-#: apply.c:5027
+#: apply.c:5009
msgid "remove <num> leading slashes from traditional diff paths"
msgstr "從傳統的 diff 路徑中移除指定數é‡çš„å‰å°Žæ–œç·š"
-#: apply.c:5030
+#: apply.c:5012
msgid "ignore additions made by the patch"
msgstr "忽略修補檔中的新增的檔案"
-#: apply.c:5032
+#: apply.c:5014
msgid "instead of applying the patch, output diffstat for the input"
msgstr "ä¸å¥—用修補檔,而是顯示輸入的差異統計(diffstat)"
-#: apply.c:5036
+#: apply.c:5018
msgid "show number of added and deleted lines in decimal notation"
msgstr "以å進ä½æ•¸é¡¯ç¤ºæ–°å¢žå’Œåˆªé™¤çš„行數"
-#: apply.c:5038
+#: apply.c:5020
msgid "instead of applying the patch, output a summary for the input"
msgstr "ä¸å¥—用修補檔,而是顯示輸入的概è¦"
-#: apply.c:5040
+#: apply.c:5022
msgid "instead of applying the patch, see if the patch is applicable"
msgstr "ä¸å¥—用修補檔,而是檢視修補檔是å¦å¯å¥—用"
-#: apply.c:5042
+#: apply.c:5024
msgid "make sure the patch is applicable to the current index"
msgstr "確èªä¿®è£œæª”å¯ä»¥å¥—用到目å‰ç´¢å¼•"
-#: apply.c:5044
+#: apply.c:5026
msgid "mark new files with `git add --intent-to-add`"
msgstr "使用指令 `git add --intent-to-add` 標記新增檔案"
-#: apply.c:5046
+#: apply.c:5028
msgid "apply a patch without touching the working tree"
msgstr "套用修補檔而ä¸ä¿®æ”¹å·¥ä½œå€"
-#: apply.c:5048
+#: apply.c:5030
msgid "accept a patch that touches outside the working area"
msgstr "接å—修改工作å€ä¹‹å¤–檔案的修補檔"
-#: apply.c:5051
+#: apply.c:5033
msgid "also apply the patch (use with --stat/--summary/--check)"
msgstr "還套用此修補檔(與 --stat/--summary/--check é¸é …åŒæ™‚使用)"
-#: apply.c:5053
+#: apply.c:5035
msgid "attempt three-way merge, fall back on normal patch if that fails"
msgstr "嘗試三方åˆä½µã€‚如果失敗,則回到正常修補檔 (patch) 模å¼"
-#: apply.c:5055
+#: apply.c:5037
msgid "build a temporary index based on embedded index information"
msgstr "建立一個暫時索引基於嵌入的索引訊æ¯"
-#: apply.c:5058 builtin/checkout-index.c:196
+#: apply.c:5040 builtin/checkout-index.c:230
msgid "paths are separated with NUL character"
msgstr "路徑以 NUL 字元分隔"
-#: apply.c:5060
+#: apply.c:5042
msgid "ensure at least <n> lines of context match"
msgstr "確ä¿è‡³å°‘ç¬¦åˆ <n> 行上下文"
-#: apply.c:5061 builtin/am.c:2352 builtin/am.c:2355
+#: apply.c:5043 builtin/am.c:2355 builtin/am.c:2358
#: builtin/interpret-trailers.c:98 builtin/interpret-trailers.c:100
-#: builtin/interpret-trailers.c:102 builtin/pack-objects.c:3960
-#: builtin/rebase.c:1051
+#: builtin/interpret-trailers.c:102 builtin/pack-objects.c:3983
+#: builtin/rebase.c:1079
msgid "action"
msgstr "動作"
-#: apply.c:5062
+#: apply.c:5044
msgid "detect new or modified lines that have whitespace errors"
msgstr "檢查新增和修改的行中間的空白字元濫用"
-#: apply.c:5065 apply.c:5068
+#: apply.c:5047 apply.c:5050
msgid "ignore changes in whitespace when finding context"
msgstr "尋找上下文時忽略空白字元的變更"
-#: apply.c:5071
+#: apply.c:5053
msgid "apply the patch in reverse"
msgstr "åå‘套用修補檔"
-#: apply.c:5073
+#: apply.c:5055
msgid "don't expect at least one line of context"
msgstr "無需至少一行上下文"
-#: apply.c:5075
+#: apply.c:5057
msgid "leave the rejected hunks in corresponding *.rej files"
msgstr "將拒絕的修補檔å€å¡Šå„²å­˜åœ¨å°æ‡‰çš„ *.rej 檔案中"
-#: apply.c:5077
+#: apply.c:5059
msgid "allow overlapping hunks"
msgstr "å…許é‡ç–Šçš„修補檔å€å¡Š"
-#: apply.c:5080
+#: apply.c:5062
msgid "tolerate incorrectly detected missing new-line at the end of file"
msgstr "å…許ä¸æ­£ç¢ºçš„檔案末尾æ›è¡Œç¬¦è™Ÿ"
-#: apply.c:5083
+#: apply.c:5065
msgid "do not trust the line counts in the hunk headers"
msgstr "ä¸ä¿¡ä»»ä¿®è£œæª”å€å¡Šçš„標頭訊æ¯ä¸­çš„行號"
-#: apply.c:5085 builtin/am.c:2364
+#: apply.c:5067 builtin/am.c:2367
msgid "root"
msgstr "根目錄"
-#: apply.c:5086
+#: apply.c:5068
msgid "prepend <root> to all filenames"
msgstr "為所有檔案åå‰æ–°å¢ž <根目錄>"
-#: apply.c:5089
+#: apply.c:5071
msgid "don't return error for empty patches"
msgstr "é‡åˆ°ç©ºç™½ä¿®è£œæª”時ä¸å›žå‚³éŒ¯èª¤"
-#: archive-tar.c:125 archive-zip.c:345
+#: archive-tar.c:125 archive-zip.c:346
#, c-format
msgid "cannot stream blob %s"
msgstr "ä¸èƒ½é–‹å•Ÿè³‡æ–™ç‰©ä»¶ %s"
-#: archive-tar.c:265 archive-zip.c:358
+#: archive-tar.c:265 archive-zip.c:359
#, c-format
msgid "unsupported file mode: 0%o (SHA1: %s)"
msgstr "ä¸æ”¯æ´çš„檔案模å¼ï¼š0%o (SHA1: %s)"
@@ -1515,22 +1517,22 @@ msgstr "無法é‡å®šå‘æ述符"
msgid "'%s' filter reported error"
msgstr "'%s' éŽæ¿¾å™¨å ±å‘Šäº†éŒ¯èª¤"
-#: archive-zip.c:318
+#: archive-zip.c:319
#, c-format
msgid "path is not valid UTF-8: %s"
msgstr "路徑ä¸æ˜¯æœ‰æ•ˆçš„ UTF-8:%s"
-#: archive-zip.c:322
+#: archive-zip.c:323
#, c-format
msgid "path too long (%d chars, SHA1: %s): %s"
msgstr "路徑太長(%d 字元,SHA1:%s):%s"
-#: archive-zip.c:469 builtin/pack-objects.c:365 builtin/pack-objects.c:368
+#: archive-zip.c:470 builtin/pack-objects.c:363 builtin/pack-objects.c:366
#, c-format
msgid "deflate error (%d)"
msgstr "壓縮錯誤 (%d)"
-#: archive-zip.c:603
+#: archive-zip.c:604
#, c-format
msgid "timestamp too large for this system: %<PRIuMAX>"
msgstr "å°æ–¼æœ¬ç³»çµ±æ™‚間戳太大:%<PRIuMAX>"
@@ -1539,10 +1541,6 @@ msgstr "å°æ–¼æœ¬ç³»çµ±æ™‚間戳太大:%<PRIuMAX>"
msgid "git archive [<options>] <tree-ish> [<path>...]"
msgstr "git archive [<é¸é …>] <樹或æ交> [<路徑>...]"
-#: archive.c:15
-msgid "git archive --list"
-msgstr "git archive --list"
-
#: archive.c:16
msgid ""
"git archive --remote <repo> [--exec <cmd>] [<options>] <tree-ish> [<path>...]"
@@ -1554,12 +1552,12 @@ msgid "git archive --remote <repo> [--exec <cmd>] --list"
msgstr "git archive --remote <版本庫> [--exec <命令>] --list"
#: archive.c:188 archive.c:341 builtin/gc.c:497 builtin/notes.c:238
-#: builtin/tag.c:578
+#: builtin/tag.c:579
#, c-format
msgid "cannot read '%s'"
msgstr "ä¸èƒ½è®€å– '%s'"
-#: archive.c:426 builtin/add.c:215 builtin/add.c:671 builtin/rm.c:334
+#: archive.c:426 builtin/add.c:214 builtin/add.c:657 builtin/rm.c:334
#, c-format
msgid "pathspec '%s' did not match any files"
msgstr "路徑è¦æ ¼ '%s' 未符åˆä»»ä½•æª”案"
@@ -1601,7 +1599,7 @@ msgstr "æ ¼å¼"
msgid "archive format"
msgstr "歸檔格å¼"
-#: archive.c:552 builtin/log.c:1790
+#: archive.c:552 builtin/log.c:1809
msgid "prefix"
msgstr "å‰ç¶´"
@@ -1609,12 +1607,12 @@ msgstr "å‰ç¶´"
msgid "prepend prefix to each pathname in the archive"
msgstr "為歸檔中æ¯å€‹è·¯å¾‘å加上å‰ç¶´"
-#: archive.c:554 archive.c:557 builtin/blame.c:880 builtin/blame.c:884
-#: builtin/blame.c:885 builtin/commit-tree.c:115 builtin/config.c:135
+#: archive.c:554 archive.c:557 builtin/blame.c:881 builtin/blame.c:885
+#: builtin/blame.c:886 builtin/commit-tree.c:115 builtin/config.c:135
#: builtin/fast-export.c:1181 builtin/fast-export.c:1183
-#: builtin/fast-export.c:1187 builtin/grep.c:935 builtin/hash-object.c:103
+#: builtin/fast-export.c:1187 builtin/grep.c:936 builtin/hash-object.c:104
#: builtin/ls-files.c:654 builtin/ls-files.c:657 builtin/notes.c:410
-#: builtin/notes.c:576 builtin/read-tree.c:115 parse-options.h:190
+#: builtin/notes.c:576 builtin/read-tree.c:115 parse-options.h:195
msgid "file"
msgstr "檔案"
@@ -1642,8 +1640,8 @@ msgstr "設定壓縮級別"
msgid "list supported archive formats"
msgstr "列出支æ´çš„歸檔格å¼"
-#: archive.c:568 builtin/archive.c:89 builtin/clone.c:118 builtin/clone.c:121
-#: builtin/submodule--helper.c:1870 builtin/submodule--helper.c:2513
+#: archive.c:568 builtin/archive.c:89 builtin/clone.c:122 builtin/clone.c:125
+#: builtin/submodule--helper.c:1884 builtin/submodule--helper.c:2718
msgid "repo"
msgstr "版本庫"
@@ -1664,11 +1662,12 @@ msgstr "é ç«¯ git-upload-archive 指令的路徑"
msgid "Unexpected option --remote"
msgstr "未知åƒæ•¸ --remote"
-#: archive.c:580 fetch-pack.c:300 revision.c:2887 builtin/add.c:544
-#: builtin/add.c:576 builtin/checkout.c:1763 builtin/commit.c:370
-#: builtin/fast-export.c:1230 builtin/index-pack.c:1848 builtin/log.c:2115
-#: builtin/reset.c:435 builtin/reset.c:493 builtin/rm.c:281
-#: builtin/stash.c:1719 builtin/worktree.c:508 http-fetch.c:144
+#: archive.c:580 fetch-pack.c:300 revision.c:2914 builtin/add.c:530
+#: builtin/add.c:562 builtin/checkout.c:1782 builtin/clone.c:1099
+#: builtin/clone.c:1102 builtin/commit.c:371 builtin/fast-export.c:1230
+#: builtin/index-pack.c:1854 builtin/log.c:2140 builtin/reset.c:442
+#: builtin/reset.c:500 builtin/rm.c:281 builtin/stash.c:1708
+#: builtin/worktree.c:580 builtin/worktree.c:781 http-fetch.c:144
#: http-fetch.c:153
#, c-format
msgid "the option '%s' requires '%s'"
@@ -1688,17 +1687,17 @@ msgstr "æœªçŸ¥æ­¸æª”æ ¼å¼ '%s'"
msgid "Argument not supported for format '%s': -%d"
msgstr "åƒæ•¸ä¸æ”¯æ´æ­¤æ ¼å¼ '%s':-%d"
-#: attr.c:203
+#: attr.c:202
#, c-format
msgid "%.*s is not a valid attribute name"
msgstr "%.*s ä¸æ˜¯ä¸€å€‹æœ‰æ•ˆçš„屬性å"
-#: attr.c:364
+#: attr.c:363
#, c-format
msgid "%s not allowed: %s:%d"
msgstr "ä¸å…許 %s:%s:%d"
-#: attr.c:404
+#: attr.c:403
msgid ""
"Negative patterns are ignored in git attributes\n"
"Use '\\!' for literal leading exclamation."
@@ -1716,12 +1715,12 @@ msgstr "檔案 '%s' 包å«éŒ¯èª¤çš„引用格å¼ï¼š%s"
msgid "We cannot bisect more!\n"
msgstr "我們無法進行更多的二分æœå°‹ï¼\n"
-#: bisect.c:764
+#: bisect.c:765
#, c-format
msgid "Not a valid commit name %s"
msgstr "ä¸æ˜¯ä¸€å€‹æœ‰æ•ˆçš„æ交å %s"
-#: bisect.c:789
+#: bisect.c:790
#, c-format
msgid ""
"The merge base %s is bad.\n"
@@ -1730,7 +1729,7 @@ msgstr ""
"åˆä½µåŸºç¤Ž %s 是壞的。\n"
"這æ„味著介於 %s å’Œ [%s] 之間的 bug 已經被修復。\n"
-#: bisect.c:794
+#: bisect.c:795
#, c-format
msgid ""
"The merge base %s is new.\n"
@@ -1739,7 +1738,7 @@ msgstr ""
"åˆä½µåŸºç¤Ž %s 是新的。\n"
"介於 %s 和 [%s] 之間的屬性已經被修改。\n"
-#: bisect.c:799
+#: bisect.c:800
#, c-format
msgid ""
"The merge base %s is %s.\n"
@@ -1748,7 +1747,7 @@ msgstr ""
"åˆä½µåŸºç¤Ž %s 是 %s。\n"
"這æ„味著第一個 '%s' æ交ä½æ–¼ %s å’Œ [%s] 之間。\n"
-#: bisect.c:807
+#: bisect.c:808
#, c-format
msgid ""
"Some %s revs are not ancestors of the %s rev.\n"
@@ -1759,7 +1758,7 @@ msgstr ""
"這種情æ³ä¸‹ git 二分æœå°‹ç„¡æ³•æ­£å¸¸å·¥ä½œã€‚\n"
"您å¯èƒ½å¼„錯了 %s å’Œ %s 版本?\n"
-#: bisect.c:820
+#: bisect.c:821
#, c-format
msgid ""
"the merge base between %s and [%s] must be skipped.\n"
@@ -1770,36 +1769,36 @@ msgstr ""
"所以我們無法確èªç¬¬ä¸€å€‹ %s æ交是å¦ä»‹æ–¼ %s å’Œ %s 之間。\n"
"我們ä»èˆŠç¹¼çºŒã€‚"
-#: bisect.c:859
+#: bisect.c:860
#, c-format
msgid "Bisecting: a merge base must be tested\n"
msgstr "二分æœå°‹ä¸­ï¼šåˆä½µåŸºç¤Žå¿…須是經éŽæ¸¬è©¦çš„\n"
-#: bisect.c:909
+#: bisect.c:910
#, c-format
msgid "a %s revision is needed"
msgstr "需è¦ä¸€å€‹ %s 版本"
-#: bisect.c:939
+#: bisect.c:940
#, c-format
msgid "could not create file '%s'"
msgstr "ä¸èƒ½å»ºç«‹æª”案 '%s'"
-#: bisect.c:985 builtin/merge.c:155
+#: bisect.c:986 builtin/merge.c:155
#, c-format
msgid "could not read file '%s'"
msgstr "ä¸èƒ½è®€å–檔案 '%s'"
-#: bisect.c:1025
+#: bisect.c:1026
msgid "reading bisect refs failed"
msgstr "讀å–二分æœå°‹å¼•ç”¨å¤±æ•—"
-#: bisect.c:1055
+#: bisect.c:1056
#, c-format
msgid "%s was both %s and %s\n"
msgstr "%s åŒæ™‚為 %s å’Œ %s\n"
-#: bisect.c:1064
+#: bisect.c:1065
#, c-format
msgid ""
"No testable commit found.\n"
@@ -1808,7 +1807,7 @@ msgstr ""
"沒找到能夠測試的æ交。\n"
"å¯èƒ½æ˜¯åŸ·è¡Œå‚³å…¥çš„路徑引數是錯誤的?\n"
-#: bisect.c:1093
+#: bisect.c:1094
#, c-format
msgid "(roughly %d step)"
msgid_plural "(roughly %d steps)"
@@ -1817,79 +1816,79 @@ msgstr[0] "(大概 %d 步)"
#. TRANSLATORS: the last %s will be replaced with "(roughly %d
#. steps)" translation.
#.
-#: bisect.c:1099
+#: bisect.c:1100
#, c-format
msgid "Bisecting: %d revision left to test after this %s\n"
msgid_plural "Bisecting: %d revisions left to test after this %s\n"
msgstr[0] "二分æœå°‹ä¸­ï¼šåœ¨æ­¤ä¹‹å¾Œï¼Œé‚„剩 %d 個版本待測試 %s\n"
-#: blame.c:2776
+#: blame.c:2773
msgid "--contents and --reverse do not blend well."
msgstr "--contents å’Œ --reverse ä¸èƒ½æ··ç”¨ã€‚"
-#: blame.c:2790
+#: blame.c:2787
msgid "cannot use --contents with final commit object name"
msgstr "ä¸èƒ½å°‡ --contents 和最終的æ交物件å共用"
-#: blame.c:2811
+#: blame.c:2808
msgid "--reverse and --first-parent together require specified latest commit"
msgstr "--reverse å’Œ --first-parent 共用,需è¦æŒ‡å®šæœ€æ–°çš„æ交"
-#: blame.c:2820 bundle.c:224 midx.c:1042 ref-filter.c:2370 remote.c:2158
-#: sequencer.c:2352 sequencer.c:4899 submodule.c:883 builtin/commit.c:1114
-#: builtin/log.c:429 builtin/log.c:1036 builtin/log.c:1644 builtin/log.c:2071
-#: builtin/log.c:2362 builtin/merge.c:431 builtin/pack-objects.c:3373
-#: builtin/pack-objects.c:3775 builtin/pack-objects.c:3790
+#: blame.c:2817 bundle.c:231 midx.c:1058 ref-filter.c:2371 remote.c:2157
+#: sequencer.c:2348 sequencer.c:4872 submodule.c:913 builtin/commit.c:1118
+#: builtin/log.c:437 builtin/log.c:1055 builtin/log.c:1663 builtin/log.c:2096
+#: builtin/log.c:2387 builtin/merge.c:431 builtin/pack-objects.c:3381
+#: builtin/pack-objects.c:3781 builtin/pack-objects.c:3796
#: builtin/shortlog.c:255
msgid "revision walk setup failed"
msgstr "版本é歷設定失敗"
-#: blame.c:2838
+#: blame.c:2835
msgid ""
"--reverse --first-parent together require range along first-parent chain"
msgstr "--reverse å’Œ --first-parent 共用,需è¦ç¬¬ä¸€ç¥–å…ˆéˆä¸Šçš„æ交範åœ"
-#: blame.c:2849
+#: blame.c:2846
#, c-format
msgid "no such path %s in %s"
msgstr "在 %2$s 中無此路徑 %1$s"
-#: blame.c:2860
+#: blame.c:2857
#, c-format
msgid "cannot read blob %s for path %s"
msgstr "ä¸èƒ½ç‚ºè·¯å¾‘ %2$s 讀å–資料物件 %1$s"
-#: branch.c:77
+#: branch.c:93
msgid ""
"cannot inherit upstream tracking configuration of multiple refs when "
"rebasing is requested"
msgstr "請求é‡å®šåŸºåº•æ™‚,無法繼承多個åƒç…§çš„上游追蹤設定"
-#: branch.c:88
+#: branch.c:104
#, c-format
msgid "not setting branch '%s' as its own upstream"
msgstr "未將「%sã€åˆ†æ”¯è¨­å®šç‚ºå…¶è‡ªå·±çš„上游"
-#: branch.c:144
+#: branch.c:160
#, c-format
msgid "branch '%s' set up to track '%s' by rebasing."
msgstr "已將「%sã€åˆ†æ”¯è¨­å®šç‚ºé€éŽé‡å®šåŸºåº•è¿½è¹¤ã€Œ%sã€ã€‚"
-#: branch.c:145
+#: branch.c:161
#, c-format
msgid "branch '%s' set up to track '%s'."
msgstr "已將「%sã€åˆ†æ”¯è¨­å®šç‚ºè¿½è¹¤ã€Œ%sã€ã€‚"
-#: branch.c:148
+#: branch.c:164
#, c-format
msgid "branch '%s' set up to track:"
msgstr "「%sã€åˆ†æ”¯å·²è¨­å®šè¿½è¹¤ï¼š"
-#: branch.c:160
+#: branch.c:176
msgid "unable to write upstream branch configuration"
msgstr "無法寫入上游分支設定"
-#: branch.c:162
+#: branch.c:178
msgid ""
"\n"
"After fixing the error cause you may try to fix up\n"
@@ -1899,47 +1898,84 @@ msgstr ""
"修正錯誤後,您å¯ä»¥åŸ·è¡Œä¸‹è¿°å‘½ä»¤\n"
"命令修正é ç«¯è¿½è¹¤è³‡è¨Šï¼š"
-#: branch.c:203
+#: branch.c:219
#, c-format
msgid "asked to inherit tracking from '%s', but no remote is set"
msgstr "請求繼承「%sã€çš„追蹤設定,但未設定é ç«¯"
-#: branch.c:209
+#: branch.c:225
#, c-format
msgid "asked to inherit tracking from '%s', but no merge configuration is set"
msgstr "請求繼承「%sã€çš„追蹤設定,但未設定åˆä½µè¨­å®š"
-#: branch.c:252
+#: branch.c:277
#, c-format
-msgid "not tracking: ambiguous information for ref %s"
-msgstr "未追蹤:%s 引用有歧義"
+msgid "not tracking: ambiguous information for ref '%s'"
+msgstr "未追蹤:「%sã€å¼•ç”¨æœ‰æ­§ç¾©"
-#: branch.c:287
+# 譯者:為ä¿è­‰åœ¨è¼¸å‡ºä¸­å°é½Šï¼Œæ³¨æ„調整å¥ä¸­ç©ºæ ¼ï¼
+#. TRANSLATORS: This is a line listing a remote with duplicate
+#. refspecs in the advice message below. For RTL languages you'll
+#. probably want to swap the "%s" and leading " " space around.
+#.
+#. TRANSLATORS: This is line item of ambiguous object output
+#. from describe_ambiguous_object() above. For RTL languages
+#. you'll probably want to swap the "%s" and leading " " space
+#. around.
+#.
+#: branch.c:289 object-name.c:464
+#, c-format
+msgid " %s\n"
+msgstr " %s\n"
+
+#. TRANSLATORS: The second argument is a \n-delimited list of
+#. duplicate refspecs, composed above.
+#.
+#: branch.c:295
+#, c-format
+msgid ""
+"There are multiple remotes whose fetch refspecs map to the remote\n"
+"tracking ref '%s':\n"
+"%s\n"
+"This is typically a configuration error.\n"
+"\n"
+"To support setting up tracking branches, ensure that\n"
+"different remotes' fetch refspecs map into different\n"
+"tracking namespaces."
+msgstr ""
+"有多個é ç«¯çš„抓å–引用è¦æ ¼æ˜ å°„到é ç«¯è¿½è¹¤å¼•ç”¨ã€Œ%sã€çš„è¦æ ¼ï¼š\n"
+"%s\n"
+"這通常是設定錯誤。\n"
+"\n"
+"è‹¥è¦æ”¯æ´è¨­å®šè¿½è¹¤åˆ†æ”¯ï¼Œè«‹ç¢ºå®šä¸åŒé ç«¯çš„抓å–引用è¦æ ¼\n"
+"映射到ä¸åŒçš„追蹤命å空間。"
+
+#: branch.c:344
#, c-format
msgid "'%s' is not a valid branch name"
msgstr "「%sã€ä¸æ˜¯ä¸€å€‹æœ‰æ•ˆçš„分支å稱"
-#: branch.c:307
+#: branch.c:364
#, c-format
msgid "a branch named '%s' already exists"
msgstr "已有åŒå「%sã€åˆ†æ”¯"
-#: branch.c:313
+#: branch.c:370
#, c-format
msgid "cannot force update the branch '%s' checked out at '%s'"
msgstr "無法強制更新在「%2$sã€ç°½å‡ºçš„「%1$sã€åˆ†æ”¯"
-#: branch.c:336
+#: branch.c:393
#, c-format
msgid "cannot set up tracking information; starting point '%s' is not a branch"
msgstr "無法設定追蹤資訊:起始點「%sã€ä¸æ˜¯åˆ†æ”¯"
-#: branch.c:338
+#: branch.c:395
#, c-format
msgid "the requested upstream branch '%s' does not exist"
msgstr "請求的上游分支 '%s' ä¸å­˜åœ¨"
-#: branch.c:340
+#: branch.c:397
msgid ""
"\n"
"If you are planning on basing your work on an upstream\n"
@@ -1958,124 +1994,143 @@ msgstr ""
"且建立兩個分支間的追蹤關係,\n"
"您å¯èƒ½éœ€è¦ä½¿ç”¨ã€Œgit push -uã€æŽ¨é€åˆ†æ”¯ä¸¦è¨­å®šå’Œä¸Šæ¸¸çš„é—œè¯ã€‚"
-#: branch.c:384 builtin/replace.c:321 builtin/replace.c:377
+#: branch.c:445 builtin/replace.c:321 builtin/replace.c:377
#: builtin/replace.c:423 builtin/replace.c:453
#, c-format
msgid "not a valid object name: '%s'"
msgstr "ä¸æ˜¯ä¸€å€‹æœ‰æ•ˆçš„物件å:'%s'"
-#: branch.c:404
+#: branch.c:465
#, c-format
msgid "ambiguous object name: '%s'"
msgstr "物件å稱有歧義:「%sã€"
-#: branch.c:409
+#: branch.c:470
#, c-format
msgid "not a valid branch point: '%s'"
msgstr "無效的分支點:「%sã€"
-#: branch.c:469
+#: branch.c:658
+#, c-format
+msgid "submodule '%s': unable to find submodule"
+msgstr "「%sã€å­æ¨¡çµ„:找ä¸åˆ°å­æ¨¡çµ„"
+
+#: branch.c:661
+#, c-format
+msgid ""
+"You may try updating the submodules using 'git checkout %s && git submodule "
+"update --init'"
+msgstr ""
+"您å¯ä»¥å˜—試使用「git checkout %s && git submodule update --initã€å‘½ä»¤æ›´æ–°å­æ¨¡"
+"組"
+
+#: branch.c:672 branch.c:698
+#, c-format
+msgid "submodule '%s': cannot create branch '%s'"
+msgstr "「%sã€å­æ¨¡çµ„:無法建立「%sã€åˆ†æ”¯"
+
+#: branch.c:730
#, c-format
msgid "'%s' is already checked out at '%s'"
msgstr "'%s' 已經簽出到 '%s'"
-#: branch.c:494
+#: branch.c:755
#, c-format
msgid "HEAD of working tree %s is not updated"
msgstr "å·¥ä½œå€ %s çš„ HEAD 指å‘沒有被更新"
-#: bundle.c:44
+#: bundle.c:45
#, c-format
msgid "unrecognized bundle hash algorithm: %s"
-msgstr "無法識別的包雜湊演算法:%s"
+msgstr "無法識別的套件雜湊演算法:%s"
-#: bundle.c:48
+#: bundle.c:53
#, c-format
msgid "unknown capability '%s'"
msgstr "未知功能 '%s'"
-#: bundle.c:74
+#: bundle.c:79
#, c-format
msgid "'%s' does not look like a v2 or v3 bundle file"
-msgstr "'%s' ä¸åƒæ˜¯ä¸€å€‹ v2 或 v3 版本的包檔案"
+msgstr "'%s' ä¸åƒæ˜¯ä¸€å€‹ v2 或 v3 版本的套件檔案"
-#: bundle.c:113
+#: bundle.c:118
#, c-format
msgid "unrecognized header: %s%s (%d)"
msgstr "無法識別的包頭:%s%s (%d)"
-#: bundle.c:140 rerere.c:464 rerere.c:674 sequencer.c:2620 sequencer.c:3406
-#: builtin/commit.c:862
+#: bundle.c:145 rerere.c:464 rerere.c:675 sequencer.c:2616 sequencer.c:3402
+#: builtin/commit.c:865
#, c-format
msgid "could not open '%s'"
msgstr "ä¸èƒ½é–‹å•Ÿ '%s'"
-#: bundle.c:198
+#: bundle.c:203
msgid "Repository lacks these prerequisite commits:"
msgstr "版本庫中缺少這些必備的æ交:"
-#: bundle.c:201
+#: bundle.c:206
msgid "need a repository to verify a bundle"
-msgstr "需è¦ç‰ˆæœ¬åº«é©—證一個包"
+msgstr "需è¦ç‰ˆæœ¬åº«é©—證套件"
-#: bundle.c:257
+#: bundle.c:264
#, c-format
msgid "The bundle contains this ref:"
-msgid_plural "The bundle contains these %d refs:"
-msgstr[0] "這個包中å«æœ‰é€™ %d 個引用:"
+msgid_plural "The bundle contains these %<PRIuMAX> refs:"
+msgstr[0] "這個套件å«æœ‰é€™ %<PRIuMAX> 個引用:"
-#: bundle.c:264
+#: bundle.c:272
msgid "The bundle records a complete history."
-msgstr "這個包記錄一個完整歷å²ã€‚"
+msgstr "這個套件記錄完整歷å²ç´€éŒ„。"
-#: bundle.c:266
+#: bundle.c:274
#, c-format
msgid "The bundle requires this ref:"
-msgid_plural "The bundle requires these %d refs:"
-msgstr[0] "這個包需è¦é€™ %d 個引用:"
+msgid_plural "The bundle requires these %<PRIuMAX> refs:"
+msgstr[0] "這個套件需è¦é€™ %<PRIuMAX> 個引用:"
-#: bundle.c:333
+#: bundle.c:350
msgid "unable to dup bundle descriptor"
-msgstr "無法複製 bundle æ述符"
+msgstr "無法複製套件æ述符"
-#: bundle.c:340
+#: bundle.c:357
msgid "Could not spawn pack-objects"
msgstr "ä¸èƒ½ç”Ÿæˆ pack-objects 進程"
-#: bundle.c:351
+#: bundle.c:368
msgid "pack-objects died"
msgstr "pack-objects 終止"
-#: bundle.c:400
+#: bundle.c:417
#, c-format
msgid "ref '%s' is excluded by the rev-list options"
msgstr "引用 '%s' 被 rev-list é¸é …排除"
-#: bundle.c:504
+#: bundle.c:533 builtin/log.c:211 builtin/log.c:1975 builtin/shortlog.c:400
#, c-format
-msgid "unsupported bundle version %d"
-msgstr "ä¸æ”¯æ´çš„包版本 %d"
+msgid "unrecognized argument: %s"
+msgstr "無法識別的åƒæ•¸ï¼š%s"
-#: bundle.c:506
+#: bundle.c:548
#, c-format
-msgid "cannot write bundle version %d with algorithm %s"
-msgstr "無法寫入 %2$s 演算法的包版本 %1$d"
+msgid "unsupported bundle version %d"
+msgstr "ä¸æ”¯æ´çš„套件版本 %d"
-#: bundle.c:524 builtin/log.c:210 builtin/log.c:1953 builtin/shortlog.c:399
+#: bundle.c:550
#, c-format
-msgid "unrecognized argument: %s"
-msgstr "無法識別的åƒæ•¸ï¼š%s"
+msgid "cannot write bundle version %d with algorithm %s"
+msgstr "無法寫入 %2$s 演算法的套件版本 %1$d"
-#: bundle.c:553
+#: bundle.c:600
msgid "Refusing to create empty bundle."
-msgstr "ä¸èƒ½å»ºç«‹ç©ºåŒ…。"
+msgstr "ä¸èƒ½å»ºç«‹ç©ºå¥—件。"
-#: bundle.c:563
+#: bundle.c:610
#, c-format
msgid "cannot create '%s'"
msgstr "ä¸èƒ½å»ºç«‹ '%s'"
-#: bundle.c:588
+#: bundle.c:639
msgid "index-pack died"
msgstr "index-pack 終止"
@@ -2103,7 +2158,7 @@ msgstr "最終å€å¡Šæœ‰éžé›¶ ID %<PRIx32>"
msgid "invalid color value: %.*s"
msgstr "無效的é¡è‰²å€¼ï¼š%.*s"
-#: commit-graph.c:204 midx.c:51
+#: commit-graph.c:204 midx.c:52
msgid "invalid hash version"
msgstr "無效的雜湊版本"
@@ -2131,232 +2186,233 @@ msgstr "æ交圖形雜湊版本 %X 和版本 %X ä¸ç¬¦åˆ"
msgid "commit-graph file is too small to hold %u chunks"
msgstr "commit-graph 檔案ä¸å¤ æ”¾ç½® %u 個å€å¡Š"
-#: commit-graph.c:482
+#: commit-graph.c:485
msgid "commit-graph has no base graphs chunk"
msgstr "æ交圖形沒有基礎圖形å€å¡Š"
-#: commit-graph.c:492
+#: commit-graph.c:495
msgid "commit-graph chain does not match"
msgstr "æ交圖形éˆä¸ç¬¦åˆ"
-#: commit-graph.c:540
+#: commit-graph.c:543
#, c-format
msgid "invalid commit-graph chain: line '%s' not a hash"
msgstr "無效的æ交圖形éˆï¼šè¡Œ '%s' ä¸æ˜¯ä¸€å€‹é›œæ¹Šå€¼"
-#: commit-graph.c:564
+#: commit-graph.c:567
msgid "unable to find all commit-graph files"
msgstr "無法找到所有æ交圖形檔案"
-#: commit-graph.c:749 commit-graph.c:786
+#: commit-graph.c:752 commit-graph.c:789
msgid "invalid commit position. commit-graph is likely corrupt"
msgstr "無效的æ交ä½ç½®ã€‚æ交圖形å¯èƒ½å·²æ壞"
-#: commit-graph.c:770
+#: commit-graph.c:773
#, c-format
msgid "could not find commit %s"
msgstr "無法找到æ交 %s"
-#: commit-graph.c:803
+#: commit-graph.c:806
msgid "commit-graph requires overflow generation data but has none"
msgstr "æ交圖需è¦æ¯”ç›®å‰æ›´å¤šçš„世代資料,但沒有相關資料"
-#: commit-graph.c:1108 builtin/am.c:1369
+#: commit-graph.c:1111 builtin/am.c:1370 builtin/checkout.c:775
+#: builtin/clone.c:705
#, c-format
msgid "unable to parse commit %s"
msgstr "ä¸èƒ½è§£æžæ交 %s"
-#: commit-graph.c:1370 builtin/pack-objects.c:3070
+#: commit-graph.c:1373 builtin/pack-objects.c:3078
#, c-format
msgid "unable to get type of object %s"
msgstr "無法ç²å¾—物件 %s é¡žåž‹"
-#: commit-graph.c:1401
+#: commit-graph.c:1404
msgid "Loading known commits in commit graph"
msgstr "正在載入æ交圖中的已知æ交"
-#: commit-graph.c:1418
+#: commit-graph.c:1421
msgid "Expanding reachable commits in commit graph"
msgstr "正在展開æ交圖中的å¯ä»¥å–å¾—çš„æ交"
-#: commit-graph.c:1438
+#: commit-graph.c:1441
msgid "Clearing commit marks in commit graph"
msgstr "正在清除æ交圖中的æ交標記"
-#: commit-graph.c:1457
+#: commit-graph.c:1460
msgid "Computing commit graph topological levels"
msgstr "正在計算æ交圖拓樸級別"
-#: commit-graph.c:1510
+#: commit-graph.c:1513
msgid "Computing commit graph generation numbers"
msgstr "正在計算æ交圖世代數字"
-#: commit-graph.c:1591
+#: commit-graph.c:1598
msgid "Computing commit changed paths Bloom filters"
msgstr "正在計算æ交變更路徑的布隆éŽæ¿¾å™¨"
-#: commit-graph.c:1668
+#: commit-graph.c:1675
msgid "Collecting referenced commits"
msgstr "正在收集引用æ交"
-#: commit-graph.c:1693
+#: commit-graph.c:1701
#, c-format
-msgid "Finding commits for commit graph in %d pack"
-msgid_plural "Finding commits for commit graph in %d packs"
-msgstr[0] "正在 %d 個包中尋找æ交圖的æ交"
+msgid "Finding commits for commit graph in %<PRIuMAX> pack"
+msgid_plural "Finding commits for commit graph in %<PRIuMAX> packs"
+msgstr[0] "正在從 %<PRIuMAX> 個包中尋找æ交圖的æ交"
-#: commit-graph.c:1706
+#: commit-graph.c:1714
#, c-format
msgid "error adding pack %s"
msgstr "新增包 %s 發生錯誤"
-#: commit-graph.c:1710
+#: commit-graph.c:1718
#, c-format
msgid "error opening index for %s"
msgstr "為 %s 開啟索引發生錯誤"
-#: commit-graph.c:1747
+#: commit-graph.c:1756
msgid "Finding commits for commit graph among packed objects"
msgstr "正在打包物件中尋找æ交圖的æ交"
-#: commit-graph.c:1765
+#: commit-graph.c:1774
msgid "Finding extra edges in commit graph"
msgstr "正在尋找æ交圖中é¡å¤–çš„é‚Š"
-#: commit-graph.c:1814
+#: commit-graph.c:1823
msgid "failed to write correct number of base graph ids"
msgstr "無法寫入正確數é‡çš„基礎圖形 ID"
-#: commit-graph.c:1845 midx.c:1149
+#: commit-graph.c:1854 midx.c:1168 builtin/sparse-checkout.c:475
#, c-format
msgid "unable to create leading directories of %s"
msgstr "ä¸èƒ½ç‚º %s 建立先導目錄"
-#: commit-graph.c:1858
+#: commit-graph.c:1868
msgid "unable to create temporary graph layer"
msgstr "無法建立暫時的圖形層"
-#: commit-graph.c:1863
+#: commit-graph.c:1873
#, c-format
msgid "unable to adjust shared permissions for '%s'"
msgstr "無法調整「%sã€çš„共用權é™"
-#: commit-graph.c:1920
+#: commit-graph.c:1930
#, 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:1956
+#: commit-graph.c:1967
msgid "unable to open commit-graph chain file"
msgstr "無法開啟æ交圖形éˆæª”案"
-#: commit-graph.c:1972
+#: commit-graph.c:1983
msgid "failed to rename base commit-graph file"
msgstr "無法é‡æ–°å‘½å基礎æ交圖形檔案"
-#: commit-graph.c:1992
+#: commit-graph.c:2004
msgid "failed to rename temporary commit-graph file"
msgstr "無法é‡æ–°å‘½å暫時æ交圖形檔案"
-#: commit-graph.c:2125
+#: commit-graph.c:2137
msgid "Scanning merged commits"
msgstr "正在掃æåˆä½µæ交"
-#: commit-graph.c:2169
+#: commit-graph.c:2181
msgid "Merging commit-graph"
msgstr "正在åˆä½µæ交圖形"
-#: commit-graph.c:2277
+#: commit-graph.c:2289
msgid "attempting to write a commit-graph, but 'core.commitGraph' is disabled"
msgstr "嘗試寫入æ交圖形,但 “core.commitGraph†已被åœç”¨"
-#: commit-graph.c:2384
+#: commit-graph.c:2396
msgid "too many commits to write graph"
msgstr "æ交太多ä¸èƒ½ç•«åœ–"
-#: commit-graph.c:2482
+#: commit-graph.c:2494
msgid "the commit-graph file has incorrect checksum and is likely corrupt"
msgstr "æ交圖檔案的總和檢查碼錯誤,å¯èƒ½å·²ç¶“æ壞"
-#: commit-graph.c:2492
+#: commit-graph.c:2504
#, c-format
msgid "commit-graph has incorrect OID order: %s then %s"
msgstr "æ交圖形的物件 ID é †åºä¸æ­£ç¢ºï¼š%s 然後 %s"
-#: commit-graph.c:2502 commit-graph.c:2517
+#: commit-graph.c:2514 commit-graph.c:2529
#, c-format
msgid "commit-graph has incorrect fanout value: fanout[%d] = %u != %u"
msgstr "æ交圖形有ä¸æ­£ç¢ºçš„扇出值:fanout[%d] = %u != %u"
-#: commit-graph.c:2509
+#: commit-graph.c:2521
#, c-format
msgid "failed to parse commit %s from commit-graph"
msgstr "無法從æ交圖形中解æžæ交 %s"
-#: commit-graph.c:2527
+#: commit-graph.c:2539
msgid "Verifying commits in commit graph"
msgstr "正在驗證æ交圖中的æ交"
-#: commit-graph.c:2542
+#: commit-graph.c:2554
#, c-format
msgid "failed to parse commit %s from object database for commit-graph"
msgstr "無法從æ交圖形的物件庫中解æžæ交 %s"
-#: commit-graph.c:2549
+#: commit-graph.c:2561
#, c-format
msgid "root tree OID for commit %s in commit-graph is %s != %s"
msgstr "æ交圖形中的æ交 %s 的根樹狀物件 ID 是 %s != %s"
-#: commit-graph.c:2559
+#: commit-graph.c:2571
#, c-format
msgid "commit-graph parent list for commit %s is too long"
msgstr "æ交 %s çš„æ交圖形父æ交列表太長了"
-#: commit-graph.c:2568
+#: commit-graph.c:2580
#, c-format
msgid "commit-graph parent for %s is %s != %s"
msgstr "%s çš„æ交圖形父æ交是 %s != %s"
-#: commit-graph.c:2582
+#: commit-graph.c:2594
#, c-format
msgid "commit-graph parent list for commit %s terminates early"
msgstr "æ交 %s çš„æ交圖形父æ交列表éŽæ—©çµ‚æ­¢"
-#: commit-graph.c:2587
+#: commit-graph.c:2599
#, c-format
msgid ""
"commit-graph has generation number zero for commit %s, but non-zero elsewhere"
msgstr "æ交圖形中æ交 %s 的世代號是零,但其它地方éžé›¶"
-#: commit-graph.c:2591
+#: commit-graph.c:2603
#, c-format
msgid ""
"commit-graph has non-zero generation number for commit %s, but zero elsewhere"
msgstr "æ交圖形中æ交 %s 的世代號éžé›¶ï¼Œä½†å…¶å®ƒåœ°æ–¹æ˜¯é›¶"
-#: commit-graph.c:2608
+#: commit-graph.c:2620
#, c-format
msgid "commit-graph generation for commit %s is %<PRIuMAX> < %<PRIuMAX>"
msgstr "æ交 %s çš„æ交圖形處於 %<PRIuMAX> < %<PRIuMAX> 世代"
-#: commit-graph.c:2614
+#: commit-graph.c:2626
#, c-format
msgid "commit date for commit %s in commit-graph is %<PRIuMAX> != %<PRIuMAX>"
msgstr "æ交圖形中æ交 %s çš„æ交日期是 %<PRIuMAX> != %<PRIuMAX>"
-#: commit.c:53 sequencer.c:3109 builtin/am.c:399 builtin/am.c:444
-#: builtin/am.c:449 builtin/am.c:1448 builtin/am.c:2123 builtin/replace.c:456
+#: commit.c:54 sequencer.c:3105 builtin/am.c:400 builtin/am.c:445
+#: builtin/am.c:450 builtin/am.c:1449 builtin/am.c:2124 builtin/replace.c:456
#, c-format
msgid "could not parse %s"
msgstr "ä¸èƒ½è§£æž %s"
-#: commit.c:55
+#: commit.c:56
#, c-format
msgid "%s %s is not a commit!"
msgstr "%s %s ä¸æ˜¯ä¸€å€‹æ交ï¼"
-#: commit.c:196
+#: commit.c:197
msgid ""
"Support for <GIT_DIR>/info/grafts is deprecated\n"
"and will be removed in a future Git version.\n"
@@ -2376,27 +2432,27 @@ msgstr ""
"設定 \"git config advice.graftFileDeprecated false\"\n"
"å¯é—œé–‰æœ¬æ¶ˆæ¯"
-#: commit.c:1241
+#: commit.c:1252
#, c-format
msgid "Commit %s has an untrusted GPG signature, allegedly by %s."
msgstr "æ交 %s 有一個éžå¯ä¿¡çš„è²ç¨±ä¾†è‡ª %s çš„ GPG ç°½å。"
-#: commit.c:1245
+#: commit.c:1256
#, c-format
msgid "Commit %s has a bad GPG signature allegedly by %s."
msgstr "æ交 %s 有一個錯誤的è²ç¨±ä¾†è‡ª %s çš„ GPG ç°½å。"
-#: commit.c:1248
+#: commit.c:1259
#, c-format
msgid "Commit %s does not have a GPG signature."
msgstr "æ交 %s 沒有 GPG ç°½å。"
-#: commit.c:1251
+#: commit.c:1262
#, c-format
msgid "Commit %s has a good GPG signature by %s\n"
msgstr "æ交 %s 有一個來自 %s 的好的 GPG ç°½å。\n"
-#: commit.c:1505
+#: commit.c:1516
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"
@@ -2410,7 +2466,15 @@ msgstr ""
msgid "memory exhausted"
msgstr "記憶體耗盡"
-#: config.c:125
+#: compat/terminal.c:167
+msgid "cannot resume in the background, please use 'fg' to resume"
+msgstr "無法在背景繼續;請使用 “fg†繼續"
+
+#: compat/terminal.c:168
+msgid "cannot restore terminal settings"
+msgstr "無法復原終端機設定"
+
+#: config.c:143
#, c-format
msgid ""
"exceeded maximum include depth (%d) while including\n"
@@ -2425,333 +2489,360 @@ msgstr ""
"\t%2$s\n"
"這å¯èƒ½æ˜¯å› ç‚ºå¾ªç’°åŒ…å«ã€‚"
-#: config.c:141
+#: config.c:159
#, c-format
msgid "could not expand include path '%s'"
msgstr "無法展開包å«è·¯å¾‘ '%s'"
-#: config.c:152
+#: config.c:170
msgid "relative config includes must come from files"
msgstr "相å°è·¯å¾‘的設定檔案引用必須來自於檔案"
-#: config.c:201
+#: config.c:219
msgid "relative config include conditionals must come from files"
msgstr "相å°è·¯å¾‘的設定檔案æ¢ä»¶å¼•ç”¨å¿…須來自於檔案"
-#: config.c:398
+#: config.c:364
+msgid ""
+"remote URLs cannot be configured in file directly or indirectly included by "
+"includeIf.hasconfig:remote.*.url"
+msgstr ""
+"無法在檔案設定é ç«¯ URL,無論是直接或間接é€éŽ includeIf.hasconfig:remote.*."
+"url 引入"
+
+#: config.c:508
#, c-format
msgid "invalid config format: %s"
msgstr "無效的設定檔格å¼ï¼š%s"
-#: config.c:402
+#: config.c:512
#, c-format
msgid "missing environment variable name for configuration '%.*s'"
msgstr "缺少「%.*sã€çµ„態設定的環境變數å稱"
-#: config.c:407
+#: config.c:517
#, c-format
msgid "missing environment variable '%s' for configuration '%.*s'"
msgstr "缺少環境變數「%sã€ï¼ˆæ–¼ã€Œ%.*sã€çµ„態設定)"
-#: config.c:443
+#: config.c:553
#, c-format
msgid "key does not contain a section: %s"
msgstr "éµå沒有包å«ä¸€å€‹å°ç¯€å稱:%s"
-#: config.c:448
+#: config.c:558
#, c-format
msgid "key does not contain variable name: %s"
msgstr "éµå沒有包å«è®Šæ•¸å:%s"
-#: config.c:470 sequencer.c:2806
+#: config.c:580 sequencer.c:2802
#, c-format
msgid "invalid key: %s"
msgstr "無效éµå:%s"
-#: config.c:475
+#: config.c:585
#, c-format
msgid "invalid key (newline): %s"
msgstr "無效éµå(有æ›è¡Œç¬¦è™Ÿï¼‰ï¼š%s"
-#: config.c:495
+#: config.c:605
msgid "empty config key"
msgstr "空白設定éµ"
-#: config.c:513 config.c:525
+#: config.c:623 config.c:635
#, c-format
msgid "bogus config parameter: %s"
msgstr "å½è¨­å®šåƒæ•¸ï¼š%s"
-#: config.c:539 config.c:556 config.c:563 config.c:572
+#: config.c:649 config.c:666 config.c:673 config.c:682
#, c-format
msgid "bogus format in %s"
msgstr "%s 中格å¼éŒ¯èª¤"
-#: config.c:606
+#: config.c:716
#, c-format
msgid "bogus count in %s"
msgstr "%s 中有å½è¨ˆæ•¸"
-#: config.c:610
+#: config.c:720
#, c-format
msgid "too many entries in %s"
msgstr "%s 中的項目éŽå¤š"
-#: config.c:620
+#: config.c:730
#, c-format
msgid "missing config key %s"
msgstr "缺少 %s 設定éµ"
-#: config.c:628
+#: config.c:738
#, c-format
msgid "missing config value %s"
msgstr "缺少 %s 設定值"
-#: config.c:979
+#: config.c:1089
#, c-format
msgid "bad config line %d in blob %s"
msgstr "資料物件 %2$s 中錯誤的設定行 %1$d"
-#: config.c:983
+#: config.c:1093
#, c-format
msgid "bad config line %d in file %s"
msgstr "檔案 %2$s 中錯誤的設定行 %1$d"
-#: config.c:987
+#: config.c:1097
#, c-format
msgid "bad config line %d in standard input"
msgstr "標準輸入中錯誤的設定行 %d"
-#: config.c:991
+#: config.c:1101
#, c-format
msgid "bad config line %d in submodule-blob %s"
msgstr "å­æ¨¡çµ„資料物件 %2$s 中錯誤的設定行 %1$d"
-#: config.c:995
+#: config.c:1105
#, c-format
msgid "bad config line %d in command line %s"
msgstr "指令列 %2$s 中錯誤的設定行 %1$d"
-#: config.c:999
+#: config.c:1109
#, c-format
msgid "bad config line %d in %s"
msgstr "在 %2$s 中錯誤的設定行 %1$d"
-#: config.c:1136
+#: config.c:1246
msgid "out of range"
msgstr "超出範åœ"
-#: config.c:1136
+#: config.c:1246
msgid "invalid unit"
msgstr "無效的單ä½"
-#: config.c:1137
+#: config.c:1247
#, c-format
msgid "bad numeric config value '%s' for '%s': %s"
msgstr "設定變數 '%2$s' 的數字å–值 '%1$s' 設定錯誤:%3$s"
-#: config.c:1147
+#: config.c:1257
#, c-format
msgid "bad numeric config value '%s' for '%s' in blob %s: %s"
msgstr "資料物件 %3$s 中設定變數 '%2$s' 錯誤的å–值 '%1$s':%4$s"
-#: config.c:1150
+#: config.c:1260
#, c-format
msgid "bad numeric config value '%s' for '%s' in file %s: %s"
msgstr "檔案 %3$s 中設定變數 '%2$s' 錯誤的å–值 '%1$s':%4$s"
-#: config.c:1153
+#: config.c:1263
#, c-format
msgid "bad numeric config value '%s' for '%s' in standard input: %s"
msgstr "標準輸入中設定變數 '%2$s' 錯誤的å–值 '%1$s':%3$s"
-#: config.c:1156
+#: config.c:1266
#, c-format
msgid "bad numeric config value '%s' for '%s' in submodule-blob %s: %s"
msgstr "å­æ¨¡çµ„資料 %3$s 中設定變數 '%2$s' 錯誤的å–值 '%1$s':%4$s"
-#: config.c:1159
+#: config.c:1269
#, c-format
msgid "bad numeric config value '%s' for '%s' in command line %s: %s"
msgstr "指令列 %3$s 中設定變數 '%2$s' 錯誤的å–值 '%1$s':%4$s"
-#: config.c:1162
+#: config.c:1272
#, c-format
msgid "bad numeric config value '%s' for '%s' in %s: %s"
msgstr "在 %3$s 中設定變數 '%2$s' 錯誤的å–值 '%1$s':%4$s"
-#: config.c:1241
+#: config.c:1368
+#, c-format
+msgid "invalid value for variable %s"
+msgstr "%s 變數的值無效"
+
+#: config.c:1389
+#, c-format
+msgid "ignoring unknown core.fsync component '%s'"
+msgstr "忽略未知的 core.fsync 組件「%sã€"
+
+#: config.c:1425
#, c-format
msgid "bad boolean config value '%s' for '%s'"
msgstr "「%2$sã€çš„「%1$sã€å¸ƒæž—設定值無效"
-#: config.c:1259
+#: config.c:1443
#, c-format
msgid "failed to expand user dir in: '%s'"
msgstr "無法展開使用者目錄於:’%s’"
-#: config.c:1268
+#: config.c:1452
#, c-format
msgid "'%s' for '%s' is not a valid timestamp"
msgstr "'%2$s' 的值 '%1$s' ä¸æ˜¯ä¸€å€‹æœ‰æ•ˆçš„時間戳"
-#: config.c:1361
+#: config.c:1545
#, c-format
msgid "abbrev length out of range: %d"
msgstr "縮寫長度超出範åœï¼š%d"
-#: config.c:1375 config.c:1386
+#: config.c:1559 config.c:1570
#, c-format
msgid "bad zlib compression level %d"
msgstr "錯誤的 zlib 壓縮級別 %d"
-#: config.c:1476
+#: config.c:1660
msgid "core.commentChar should only be one character"
msgstr "core.commentChar 應該是一個字元"
-#: config.c:1509
+#: config.c:1692
+#, c-format
+msgid "ignoring unknown core.fsyncMethod value '%s'"
+msgstr "忽略未知的 core.fsyncMethod 值「%sã€"
+
+#: config.c:1698
+msgid "core.fsyncObjectFiles is deprecated; use core.fsync instead"
+msgstr "core.fsyncObjectFiles 已被å–代。請改用 core.fsync"
+
+#: config.c:1714
#, c-format
msgid "invalid mode for object creation: %s"
msgstr "無效的物件建立模å¼ï¼š%s"
-#: config.c:1584
+#: config.c:1800
#, c-format
msgid "malformed value for %s"
msgstr "%s çš„å–值格å¼éŒ¯èª¤"
-#: config.c:1610
+#: config.c:1826
#, c-format
msgid "malformed value for %s: %s"
msgstr "%s çš„å–值格å¼éŒ¯èª¤ï¼š%s"
-#: config.c:1611
+#: config.c:1827
msgid "must be one of nothing, matching, simple, upstream or current"
msgstr "必須是其中之一:nothingã€matchingã€simpleã€upstream 或 current"
-#: config.c:1672 builtin/pack-objects.c:4053
+#: config.c:1888 builtin/pack-objects.c:4078
#, c-format
msgid "bad pack compression level %d"
msgstr "錯誤的打包壓縮級別 %d"
-#: config.c:1795
+#: config.c:2014
#, c-format
msgid "unable to load config blob object '%s'"
msgstr "無法從資料物件 '%s' 載入設定"
-#: config.c:1798
+#: config.c:2017
#, c-format
msgid "reference '%s' does not point to a blob"
msgstr "引用 '%s' 沒有指å‘一個資料物件"
-#: config.c:1816
+#: config.c:2035
#, c-format
msgid "unable to resolve config blob '%s'"
msgstr "ä¸èƒ½è§£æžè¨­å®šç‰©ä»¶ '%s'"
-#: config.c:1861
+#: config.c:2080
#, c-format
msgid "failed to parse %s"
msgstr "è§£æž %s 失敗"
-#: config.c:1917
+#: config.c:2136
msgid "unable to parse command-line config"
msgstr "無法解æžæŒ‡ä»¤åˆ—中的設定"
-#: config.c:2285
+#: config.c:2512
msgid "unknown error occurred while reading the configuration files"
msgstr "在讀å–設定檔案時é‡åˆ°æœªçŸ¥éŒ¯èª¤"
-#: config.c:2459
+#: config.c:2686
#, c-format
msgid "Invalid %s: '%s'"
msgstr "無效 %s:'%s'"
-#: config.c:2504
+#: config.c:2731
#, c-format
msgid "splitIndex.maxPercentChange value '%d' should be between 0 and 100"
msgstr "splitIndex.maxPercentChange çš„å–值 '%d' 應該介於 0 å’Œ 100 之間"
-#: config.c:2550
+#: config.c:2763
#, c-format
msgid "unable to parse '%s' from command-line config"
msgstr "無法解æžæŒ‡ä»¤åˆ—設定中的 '%s'"
-#: config.c:2552
+#: config.c:2765
#, c-format
msgid "bad config variable '%s' in file '%s' at line %d"
msgstr "在檔案 '%2$s' 的第 %3$d 行發ç¾éŒ¯èª¤çš„設定變數 '%1$s'"
-#: config.c:2637
+#: config.c:2850
#, c-format
msgid "invalid section name '%s'"
msgstr "無效的å°ç¯€å稱 '%s'"
-#: config.c:2669
+#: config.c:2882
#, c-format
msgid "%s has multiple values"
msgstr "%s 有多個å–值"
-#: config.c:2698
+#: config.c:2911
#, c-format
msgid "failed to write new configuration file %s"
msgstr "寫入新的設定檔案 %s 失敗"
-#: config.c:2950 config.c:3277
+#: config.c:3177 config.c:3518
#, c-format
msgid "could not lock config file %s"
msgstr "ä¸èƒ½éŽ–定設定檔案 %s"
-#: config.c:2961
+#: config.c:3188
#, c-format
msgid "opening %s"
msgstr "é–‹å•Ÿ %s"
-#: config.c:2998 builtin/config.c:361
+#: config.c:3225 builtin/config.c:361
#, c-format
msgid "invalid pattern: %s"
msgstr "無效模å¼ï¼š%s"
-#: config.c:3023
+#: config.c:3250
#, c-format
msgid "invalid config file %s"
msgstr "無效的設定檔案 %s"
-#: config.c:3036 config.c:3290
+#: config.c:3263 config.c:3531
#, c-format
msgid "fstat on %s failed"
msgstr "å° %s å‘¼å« fstat 失敗"
-#: config.c:3047
+#: config.c:3274
#, c-format
msgid "unable to mmap '%s'%s"
msgstr "無法 mmap '%s'%s"
-#: config.c:3057 config.c:3295
+#: config.c:3284 config.c:3536
#, c-format
msgid "chmod on %s failed"
msgstr "å° %s å‘¼å« chmod 失敗"
-#: config.c:3142 config.c:3392
+#: config.c:3369 config.c:3633
#, c-format
msgid "could not write config file %s"
msgstr "ä¸èƒ½å¯«å…¥è¨­å®šæª”案 %s"
-#: config.c:3176
+#: config.c:3403
#, c-format
msgid "could not set '%s' to '%s'"
msgstr "ä¸èƒ½è¨­å®š '%s' 為 '%s'"
-#: config.c:3178 builtin/remote.c:662 builtin/remote.c:860 builtin/remote.c:868
+#: config.c:3405 builtin/remote.c:666 builtin/remote.c:885 builtin/remote.c:893
#, c-format
msgid "could not unset '%s'"
msgstr "ä¸èƒ½å–消設定 '%s'"
-#: config.c:3268
+#: config.c:3509
#, c-format
msgid "invalid section name: %s"
msgstr "無效的å°ç¯€å稱:%s"
-#: config.c:3435
+#: config.c:3676
#, c-format
msgid "missing value for '%s'"
msgstr "%s çš„å–值缺少"
@@ -3079,75 +3170,75 @@ msgstr "拒絕使用缺少主機欄ä½çš„憑證"
msgid "refusing to work with credential missing protocol field"
msgstr "拒絕使用缺少通訊å”定欄ä½çš„憑證"
-#: credential.c:395
+#: credential.c:396
#, c-format
msgid "url contains a newline in its %s component: %s"
msgstr "URL çš„ %s 部分有æ›è¡Œï¼š%s"
-#: credential.c:439
+#: credential.c:440
#, c-format
msgid "url has no scheme: %s"
msgstr "URL 沒有 Scheme:%s"
-#: credential.c:512
+#: credential.c:513
#, c-format
msgid "credential url cannot be parsed: %s"
msgstr "無法解æžæ†‘è­‰ URL:%s"
-#: date.c:138
+#: date.c:139
msgid "in the future"
msgstr "在將來"
-#: date.c:144
+#: date.c:145
#, c-format
msgid "%<PRIuMAX> second ago"
msgid_plural "%<PRIuMAX> seconds ago"
msgstr[0] "%<PRIuMAX> 秒é˜å‰"
-#: date.c:151
+#: date.c:152
#, c-format
msgid "%<PRIuMAX> minute ago"
msgid_plural "%<PRIuMAX> minutes ago"
msgstr[0] "%<PRIuMAX> 分é˜å‰"
-#: date.c:158
+#: date.c:159
#, c-format
msgid "%<PRIuMAX> hour ago"
msgid_plural "%<PRIuMAX> hours ago"
msgstr[0] "%<PRIuMAX> å°æ™‚å‰"
-#: date.c:165
+#: date.c:166
#, c-format
msgid "%<PRIuMAX> day ago"
msgid_plural "%<PRIuMAX> days ago"
msgstr[0] "%<PRIuMAX> 天å‰"
-#: date.c:171
+#: date.c:172
#, c-format
msgid "%<PRIuMAX> week ago"
msgid_plural "%<PRIuMAX> weeks ago"
msgstr[0] "%<PRIuMAX> 周å‰"
-#: date.c:178
+#: date.c:179
#, c-format
msgid "%<PRIuMAX> month ago"
msgid_plural "%<PRIuMAX> months ago"
msgstr[0] "%<PRIuMAX> 個月å‰"
-#: date.c:189
+#: date.c:190
#, c-format
msgid "%<PRIuMAX> year"
msgid_plural "%<PRIuMAX> years"
msgstr[0] "%<PRIuMAX> å¹´"
#. TRANSLATORS: "%s" is "<n> years"
-#: date.c:192
+#: date.c:193
#, c-format
msgid "%s, %<PRIuMAX> month ago"
msgid_plural "%s, %<PRIuMAX> months ago"
msgstr[0] "%s %<PRIuMAX> 個月å‰"
-#: date.c:197 date.c:202
+#: date.c:198 date.c:203
#, c-format
msgid "%<PRIuMAX> year ago"
msgid_plural "%<PRIuMAX> years ago"
@@ -3177,10 +3268,14 @@ msgstr "來自 config 的資料島常è¦è¡¨ç¤ºå¼æœ‰å¤ªå¤šçš„æ“·å–群組(最å
msgid "Marked %d islands, done.\n"
msgstr "已標記 %d 個資料島,çµæŸã€‚\n"
-#: diff-merges.c:70
+#: diff-merges.c:81 gpg-interface.c:719 gpg-interface.c:734 ls-refs.c:37
+#: parallel-checkout.c:42 sequencer.c:2805 setup.c:563 builtin/am.c:203
+#: builtin/am.c:2243 builtin/am.c:2287 builtin/blame.c:724 builtin/blame.c:742
+#: builtin/fetch.c:792 builtin/pack-objects.c:3515 builtin/pull.c:45
+#: builtin/pull.c:47 builtin/pull.c:321
#, c-format
-msgid "unknown value for --diff-merges: %s"
-msgstr "--diff-merges 的值無效:%s"
+msgid "invalid value for '%s': '%s'"
+msgstr "「%sã€çš„值無效:「%sã€"
#: diff-lib.c:561
msgid "--merge-base does not work with ranges"
@@ -3213,18 +3308,18 @@ msgid ""
msgstr "ä¸æ˜¯ä¸€å€‹ git 版本庫。使用 --no-index 比較工作å€ä¹‹å¤–的兩個路徑"
# 譯者:請維æŒå‰å°Žç©ºæ ¼
-#: diff.c:158
+#: diff.c:159
#, c-format
msgid " Failed to parse dirstat cut-off percentage '%s'\n"
msgstr " ç„¡æ³•è§£æž dirstat 截止(cut-off)百分比 '%s'\n"
# 譯者:請維æŒå‰å°Žç©ºæ ¼
-#: diff.c:163
+#: diff.c:164
#, c-format
msgid " Unknown dirstat parameter '%s'\n"
msgstr " 未知的 dirstat åƒæ•¸ '%s'\n"
-#: diff.c:299
+#: diff.c:300
msgid ""
"color moved setting must be one of 'no', 'default', 'blocks', 'zebra', "
"'dimmed-zebra', 'plain'"
@@ -3232,7 +3327,7 @@ msgstr ""
"移動的é¡è‰²è¨­å®šå¿…須是 'no'ã€'default'ã€'blocks'ã€'zebra'ã€'dimmed-"
"zebra'ã€'plain'"
-#: diff.c:327
+#: diff.c:328
#, c-format
msgid ""
"unknown color-moved-ws mode '%s', possible values are 'ignore-space-change', "
@@ -3241,18 +3336,18 @@ msgstr ""
"未知的 color-moved-ws æ¨¡å¼ '%s',å¯èƒ½çš„å–值有 'ignore-space-change'ã€'ignore-"
"space-at-eol'ã€'ignore-all-space'ã€'allow-indentation-change'"
-#: diff.c:335
+#: diff.c:336
msgid ""
"color-moved-ws: allow-indentation-change cannot be combined with other "
"whitespace modes"
msgstr "color-moved-ws:allow-indentation-change ä¸èƒ½èˆ‡å…¶å®ƒç©ºç™½å­—元模å¼å…±ç”¨"
-#: diff.c:412
+#: diff.c:413
#, c-format
msgid "Unknown value for 'diff.submodule' config variable: '%s'"
msgstr "設定變數 'diff.submodule' 未知的å–值:'%s'"
-#: diff.c:472
+#: diff.c:473
#, c-format
msgid ""
"Found errors in 'diff.dirstat' config variable:\n"
@@ -3261,48 +3356,48 @@ msgstr ""
"發ç¾è¨­å®šè®Šæ•¸ 'diff.dirstat' 中的錯誤:\n"
"%s"
-#: diff.c:4237
+#: diff.c:4282
#, c-format
msgid "external diff died, stopping at %s"
msgstr "外部 diff 離開,åœæ­¢åœ¨ %s"
-#: diff.c:4589
+#: diff.c:4677 parse-options.c:1114
#, c-format
msgid "options '%s', '%s', '%s', and '%s' cannot be used together"
msgstr "「%sã€ã€ã€Œ%sã€ã€ã€Œ%sã€å’Œã€Œ%sã€é¸é …ä¸å¾—åŒæ™‚使用"
-#: diff.c:4593 builtin/difftool.c:736 builtin/log.c:1982 builtin/worktree.c:506
+#: diff.c:4681 parse-options.c:1118 builtin/worktree.c:578
#, c-format
msgid "options '%s', '%s', and '%s' cannot be used together"
msgstr "「%sã€ã€ã€Œ%sã€å’Œã€Œ%sã€é¸é …ä¸å¾—åŒæ™‚使用"
-#: diff.c:4597
+#: diff.c:4685
#, c-format
msgid "options '%s' and '%s' cannot be used together, use '%s' with '%s'"
msgstr "「%sã€å’Œã€Œ%sã€é¸é …ä¸å¾—åŒæ™‚使用,請使用「%sã€æ­é…「%sã€"
-#: diff.c:4601
+#: diff.c:4689
#, c-format
msgid ""
"options '%s' and '%s' cannot be used together, use '%s' with '%s' and '%s'"
msgstr "「%sã€å’Œã€Œ%sã€é¸é …ä¸å¾—åŒæ™‚使用,請使用「%sã€æ­é…「%sã€ã€ã€Œ%sã€"
-#: diff.c:4681
+#: diff.c:4769
msgid "--follow requires exactly one pathspec"
msgstr "--follow 明確è¦æ±‚åªè·Ÿä¸€å€‹è·¯å¾‘è¦æ ¼"
-#: diff.c:4729
+#: diff.c:4823
#, c-format
msgid "invalid --stat value: %s"
msgstr "無效的 --stat 值:%s"
-#: diff.c:4734 diff.c:4739 diff.c:4744 diff.c:4749 diff.c:5277
+#: diff.c:4828 diff.c:4833 diff.c:4838 diff.c:4843 diff.c:5319
#: parse-options.c:217 parse-options.c:221
#, c-format
msgid "%s expects a numerical value"
msgstr "%s 期望一個數字值"
-#: diff.c:4766
+#: diff.c:4860
#, c-format
msgid ""
"Failed to parse --dirstat/-X option parameter:\n"
@@ -3311,200 +3406,200 @@ msgstr ""
"ç„¡æ³•è§£æž --dirstat/-X é¸é …çš„åƒæ•¸ï¼š\n"
"%s"
-#: diff.c:4851
+#: diff.c:4893
#, c-format
msgid "unknown change class '%c' in --diff-filter=%s"
msgstr "--diff-filter=%2$s 中未知的變更類 '%1$c'"
-#: diff.c:4875
+#: diff.c:4917
#, c-format
msgid "unknown value after ws-error-highlight=%.*s"
msgstr "ws-error-highlight=%.*s 之後未知的值"
-#: diff.c:4889
+#: diff.c:4931
#, c-format
msgid "unable to resolve '%s'"
msgstr "ä¸èƒ½è§£æž '%s'"
-#: diff.c:4939 diff.c:4945
+#: diff.c:4981 diff.c:4987
#, c-format
msgid "%s expects <n>/<m> form"
msgstr "%s 期望 <n>/<m> æ ¼å¼"
-#: diff.c:4957
+#: diff.c:4999
#, c-format
msgid "%s expects a character, got '%s'"
msgstr "%s 期望一個字元,得到 '%s'"
-#: diff.c:4978
+#: diff.c:5020
#, c-format
msgid "bad --color-moved argument: %s"
msgstr "壞的 --color-moved åƒæ•¸ï¼š%s"
-#: diff.c:4997
+#: diff.c:5039
#, c-format
msgid "invalid mode '%s' in --color-moved-ws"
msgstr "--color-moved-ws ä¸­çš„ç„¡æ•ˆæ¨¡å¼ '%s'"
-#: diff.c:5037
+#: diff.c:5079
msgid ""
"option diff-algorithm accepts \"myers\", \"minimal\", \"patience\" and "
"\"histogram\""
msgstr ""
"diff-algorithm é¸é …有 \"myers\"ã€\"minimal\"ã€\"patience\" å’Œ \"histogram\""
-#: diff.c:5073 diff.c:5093
+#: diff.c:5115 diff.c:5135
#, c-format
msgid "invalid argument to %s"
msgstr "%s çš„åƒæ•¸ç„¡æ•ˆ"
-#: diff.c:5197
+#: diff.c:5239
#, c-format
msgid "invalid regex given to -I: '%s'"
msgstr "傳入 -I 的常è¦è¡¨ç¤ºå¼ç„¡æ•ˆï¼šã€Œ%sã€"
-#: diff.c:5246
+#: diff.c:5288
#, c-format
msgid "failed to parse --submodule option parameter: '%s'"
msgstr "ç„¡æ³•è§£æž --submodule é¸é …çš„åƒæ•¸ï¼š'%s'"
-#: diff.c:5302
+#: diff.c:5344
#, c-format
msgid "bad --word-diff argument: %s"
msgstr "壞的 --word-diff åƒæ•¸ï¼š%s"
-#: diff.c:5338
+#: diff.c:5380
msgid "Diff output format options"
msgstr "差異輸出格å¼åŒ–é¸é …"
-#: diff.c:5340 diff.c:5346
+#: diff.c:5382 diff.c:5388
msgid "generate patch"
msgstr "生æˆä¿®è£œæª”"
-#: diff.c:5343 builtin/log.c:179
+#: diff.c:5385 builtin/log.c:180
msgid "suppress diff output"
msgstr "ä¸é¡¯ç¤ºå·®ç•°è¼¸å‡º"
-#: diff.c:5348 diff.c:5462 diff.c:5469
+#: diff.c:5390 diff.c:5504 diff.c:5511
msgid "<n>"
msgstr "<n>"
-#: diff.c:5349 diff.c:5352
+#: diff.c:5391 diff.c:5394
msgid "generate diffs with <n> lines context"
msgstr "生æˆå« <n> 行上下文的差異"
-#: diff.c:5354
+#: diff.c:5396
msgid "generate the diff in raw format"
msgstr "生æˆåŽŸå§‹æ ¼å¼çš„差異"
-#: diff.c:5357
+#: diff.c:5399
msgid "synonym for '-p --raw'"
msgstr "å’Œ '-p --raw' åŒç¾©"
-#: diff.c:5361
+#: diff.c:5403
msgid "synonym for '-p --stat'"
msgstr "å’Œ '-p --stat' åŒç¾©"
-#: diff.c:5365
+#: diff.c:5407
msgid "machine friendly --stat"
msgstr "機器å‹å¥½çš„ --stat"
-#: diff.c:5368
+#: diff.c:5410
msgid "output only the last line of --stat"
msgstr "åªè¼¸å‡º --stat 的最後一行"
-#: diff.c:5370 diff.c:5378
+#: diff.c:5412 diff.c:5420
msgid "<param1,param2>..."
msgstr "<åƒæ•¸1,åƒæ•¸2>..."
-#: diff.c:5371
+#: diff.c:5413
msgid ""
"output the distribution of relative amount of changes for each sub-directory"
msgstr "輸出æ¯å€‹å­ç›®éŒ„相å°è®Šæ›´çš„分布"
-#: diff.c:5375
+#: diff.c:5417
msgid "synonym for --dirstat=cumulative"
msgstr "å’Œ --dirstat=cumulative åŒç¾©"
-#: diff.c:5379
+#: diff.c:5421
msgid "synonym for --dirstat=files,param1,param2..."
msgstr "是 --dirstat=files,param1,param2... çš„åŒç¾©è©ž"
-#: diff.c:5383
+#: diff.c:5425
msgid "warn if changes introduce conflict markers or whitespace errors"
msgstr "如果變更中引入è¡çªå®šç•Œç¬¦æˆ–空白錯誤,給出警告"
-#: diff.c:5386
+#: diff.c:5428
msgid "condensed summary such as creations, renames and mode changes"
msgstr "精簡摘è¦ï¼Œä¾‹å¦‚建立ã€é‡æ–°å‘½å和模å¼è®Šæ›´"
-#: diff.c:5389
+#: diff.c:5431
msgid "show only names of changed files"
msgstr "åªé¡¯ç¤ºè®Šæ›´æª”案的檔案å"
-#: diff.c:5392
+#: diff.c:5434
msgid "show only names and status of changed files"
msgstr "åªé¡¯ç¤ºè®Šæ›´æª”案的檔案å和狀態"
-#: diff.c:5394
+#: diff.c:5436
msgid "<width>[,<name-width>[,<count>]]"
msgstr "<寬度>[,<檔案å寬度>[,<次數>]]"
-#: diff.c:5395
+#: diff.c:5437
msgid "generate diffstat"
msgstr "生æˆå·®ç•°çµ±è¨ˆï¼ˆdiffstat)"
-#: diff.c:5397 diff.c:5400 diff.c:5403
+#: diff.c:5439 diff.c:5442 diff.c:5445
msgid "<width>"
msgstr "<寬度>"
-#: diff.c:5398
+#: diff.c:5440
msgid "generate diffstat with a given width"
msgstr "使用æ供的長度生æˆå·®ç•°çµ±è¨ˆ"
-#: diff.c:5401
+#: diff.c:5443
msgid "generate diffstat with a given name width"
msgstr "使用æ供的檔案å長度生æˆå·®ç•°çµ±è¨ˆ"
-#: diff.c:5404
+#: diff.c:5446
msgid "generate diffstat with a given graph width"
msgstr "使用æ供的圖形長度生æˆå·®ç•°çµ±è¨ˆ"
-#: diff.c:5406
+#: diff.c:5448
msgid "<count>"
msgstr "<次數>"
-#: diff.c:5407
+#: diff.c:5449
msgid "generate diffstat with limited lines"
msgstr "生æˆæœ‰é™è¡Œæ•¸çš„差異統計"
-#: diff.c:5410
+#: diff.c:5452
msgid "generate compact summary in diffstat"
msgstr "生æˆå·®ç•°çµ±è¨ˆçš„簡潔摘è¦"
-#: diff.c:5413
+#: diff.c:5455
msgid "output a binary diff that can be applied"
msgstr "輸出一個å¯ä»¥å¥—用的二進ä½å·®ç•°"
-#: diff.c:5416
+#: diff.c:5458
msgid "show full pre- and post-image object names on the \"index\" lines"
msgstr "在 \"index\" 行顯示完整的å‰å¾Œç‰©ä»¶å稱"
-#: diff.c:5418
+#: diff.c:5460
msgid "show colored diff"
msgstr "顯示帶é¡è‰²çš„差異"
-#: diff.c:5419
+#: diff.c:5461
msgid "<kind>"
msgstr "<é¡žåž‹>"
-#: diff.c:5420
+#: diff.c:5462
msgid ""
"highlight whitespace errors in the 'context', 'old' or 'new' lines in the "
"diff"
msgstr "å°æ–¼å·®ç•°ä¸­çš„上下文ã€èˆŠçš„和新的行,加亮顯示錯誤的空白字元"
-#: diff.c:5423
+#: diff.c:5465
msgid ""
"do not munge pathnames and use NULs as output field terminators in --raw or "
"--numstat"
@@ -3512,311 +3607,311 @@ msgstr ""
"在 --raw 或者 --numstat 中,ä¸å°è·¯å¾‘字元轉檔並使用 NUL å­—å…ƒåšç‚ºè¼¸å‡ºæ¬„ä½çš„分隔"
"符"
-#: diff.c:5426 diff.c:5429 diff.c:5432 diff.c:5541
+#: diff.c:5468 diff.c:5471 diff.c:5474 diff.c:5583
msgid "<prefix>"
msgstr "<å‰ç¶´>"
-#: diff.c:5427
+#: diff.c:5469
msgid "show the given source prefix instead of \"a/\""
msgstr "顯示æ供的來æºå‰ç¶´ï¼Œè€Œéž \"a/\""
-#: diff.c:5430
+#: diff.c:5472
msgid "show the given destination prefix instead of \"b/\""
msgstr "顯示æ供的目的地å‰ç¶´å–代 \"b/\""
-#: diff.c:5433
+#: diff.c:5475
msgid "prepend an additional prefix to every line of output"
msgstr "輸出的æ¯ä¸€è¡Œé™„加å‰ç¶´"
-#: diff.c:5436
+#: diff.c:5478
msgid "do not show any source or destination prefix"
msgstr "ä¸é¡¯ç¤ºä»»ä½•ä¾†æºå’Œç›®çš„地å‰ç¶´"
-#: diff.c:5439
+#: diff.c:5481
msgid "show context between diff hunks up to the specified number of lines"
msgstr "顯示指定行數的差異å€å¡Šé–“的上下文"
-#: diff.c:5443 diff.c:5448 diff.c:5453
+#: diff.c:5485 diff.c:5490 diff.c:5495
msgid "<char>"
msgstr "<å­—å…ƒ>"
-#: diff.c:5444
+#: diff.c:5486
msgid "specify the character to indicate a new line instead of '+'"
msgstr "指定一個字元å–代 '+' 來表示新的一行"
-#: diff.c:5449
+#: diff.c:5491
msgid "specify the character to indicate an old line instead of '-'"
msgstr "指定一個字元å–代 '-' 來表示舊的一行"
-#: diff.c:5454
+#: diff.c:5496
msgid "specify the character to indicate a context instead of ' '"
msgstr "指定一個字元å–代 ' ' 來表示一行上下文"
-#: diff.c:5457
+#: diff.c:5499
msgid "Diff rename options"
msgstr "差異é‡æ–°å‘½åé¸é …"
-#: diff.c:5458
+#: diff.c:5500
msgid "<n>[/<m>]"
msgstr "<n>[/<m>]"
-#: diff.c:5459
+#: diff.c:5501
msgid "break complete rewrite changes into pairs of delete and create"
msgstr "將完全é‡å¯«çš„變更打破為æˆå°çš„刪除和建立"
-#: diff.c:5463
+#: diff.c:5505
msgid "detect renames"
msgstr "檢測é‡æ–°å‘½å"
-#: diff.c:5467
+#: diff.c:5509
msgid "omit the preimage for deletes"
msgstr "çœç•¥åˆªé™¤è®Šæ›´çš„差異輸出"
-#: diff.c:5470
+#: diff.c:5512
msgid "detect copies"
msgstr "檢測複製"
-#: diff.c:5474
+#: diff.c:5516
msgid "use unmodified files as source to find copies"
msgstr "使用未修改的檔案åšç‚ºç™¼ç¾æ‹·è²çš„來æº"
-#: diff.c:5476
+#: diff.c:5518
msgid "disable rename detection"
msgstr "åœç”¨é‡æ–°å‘½ååµæ¸¬"
-#: diff.c:5479
+#: diff.c:5521
msgid "use empty blobs as rename source"
msgstr "使用空的資料物件åšç‚ºé‡æ–°å‘½å的來æº"
-#: diff.c:5481
+#: diff.c:5523
msgid "continue listing the history of a file beyond renames"
msgstr "繼續列出檔案é‡æ–°å‘½å以外的歷å²è¨˜éŒ„"
-#: diff.c:5484
+#: diff.c:5526
msgid ""
"prevent rename/copy detection if the number of rename/copy targets exceeds "
"given limit"
msgstr "如果é‡æ–°å‘½å/複製目標超éŽæ供的é™åˆ¶ï¼Œç¦æ­¢é‡æ–°å‘½å/複製檢測"
-#: diff.c:5486
+#: diff.c:5528
msgid "Diff algorithm options"
msgstr "差異演算法é¸é …"
-#: diff.c:5488
+#: diff.c:5530
msgid "produce the smallest possible diff"
msgstr "生æˆå„˜å¯èƒ½å°çš„差異"
-#: diff.c:5491
+#: diff.c:5533
msgid "ignore whitespace when comparing lines"
msgstr "行比較時忽略空白字元"
-#: diff.c:5494
+#: diff.c:5536
msgid "ignore changes in amount of whitespace"
msgstr "忽略空白字元的變更"
-#: diff.c:5497
+#: diff.c:5539
msgid "ignore changes in whitespace at EOL"
msgstr "忽略行尾的空白字元變更"
-#: diff.c:5500
+#: diff.c:5542
msgid "ignore carrier-return at the end of line"
msgstr "忽略行尾的Enter符(CR)"
-#: diff.c:5503
+#: diff.c:5545
msgid "ignore changes whose lines are all blank"
msgstr "忽略整行都是空白的變更"
-#: diff.c:5505 diff.c:5527 diff.c:5530 diff.c:5575
+#: diff.c:5547 diff.c:5569 diff.c:5572 diff.c:5617
msgid "<regex>"
msgstr "<正則>"
-#: diff.c:5506
+#: diff.c:5548
msgid "ignore changes whose all lines match <regex>"
msgstr "å¿½ç•¥æ•´è¡Œç¬¦åˆ <regex> 的變更"
-#: diff.c:5509
+#: diff.c:5551
msgid "heuristic to shift diff hunk boundaries for easy reading"
msgstr "啟發å¼è½‰æ›å·®ç•°é‚Šç•Œä»¥ä¾¿é–±è®€"
-#: diff.c:5512
+#: diff.c:5554
msgid "generate diff using the \"patience diff\" algorithm"
msgstr "使用 \"patience diff\" 演算法生æˆå·®ç•°"
-#: diff.c:5516
+#: diff.c:5558
msgid "generate diff using the \"histogram diff\" algorithm"
msgstr "使用 \"histogram diff\" 演算法生æˆå·®ç•°"
-#: diff.c:5518
+#: diff.c:5560
msgid "<algorithm>"
msgstr "<演算法>"
-#: diff.c:5519
+#: diff.c:5561
msgid "choose a diff algorithm"
msgstr "é¸æ“‡ä¸€å€‹å·®ç•°æ¼”算法"
-#: diff.c:5521
+#: diff.c:5563
msgid "<text>"
msgstr "<文字>"
-#: diff.c:5522
+#: diff.c:5564
msgid "generate diff using the \"anchored diff\" algorithm"
msgstr "使用 \"anchored diff\" 演算法生æˆå·®ç•°"
-#: diff.c:5524 diff.c:5533 diff.c:5536
+#: diff.c:5566 diff.c:5575 diff.c:5578
msgid "<mode>"
msgstr "<模å¼>"
-#: diff.c:5525
+#: diff.c:5567
msgid "show word diff, using <mode> to delimit changed words"
msgstr "顯示單詞差異,使用 <模å¼> 分隔變更的單詞"
-#: diff.c:5528
+#: diff.c:5570
msgid "use <regex> to decide what a word is"
msgstr "使用 <常è¦è¡¨ç¤ºå¼> 確定何為一個詞"
-#: diff.c:5531
+#: diff.c:5573
msgid "equivalent to --word-diff=color --word-diff-regex=<regex>"
msgstr "相當於 --word-diff=color --word-diff-regex=<正則>"
-#: diff.c:5534
+#: diff.c:5576
msgid "moved lines of code are colored differently"
msgstr "移動的程å¼ç¢¼è¡Œç”¨ä¸åŒæ–¹å¼è‘—色"
-#: diff.c:5537
+#: diff.c:5579
msgid "how white spaces are ignored in --color-moved"
msgstr "在 --color-moved 下如何忽略空白字元"
-#: diff.c:5540
+#: diff.c:5582
msgid "Other diff options"
msgstr "其它差異é¸é …"
-#: diff.c:5542
+#: diff.c:5584
msgid "when run from subdir, exclude changes outside and show relative paths"
msgstr "當從å­ç›®éŒ„執行,排除目錄之外的變更並顯示相å°è·¯å¾‘"
-#: diff.c:5546
+#: diff.c:5588
msgid "treat all files as text"
msgstr "把所有檔案當åšæ–‡å­—處ç†"
-#: diff.c:5548
+#: diff.c:5590
msgid "swap two inputs, reverse the diff"
msgstr "交æ›å…©å€‹è¼¸å…¥ï¼Œå轉差異"
-#: diff.c:5550
+#: diff.c:5592
msgid "exit with 1 if there were differences, 0 otherwise"
msgstr "有差異時離開碼為 1,å¦å‰‡ç‚º 0"
-#: diff.c:5552
+#: diff.c:5594
msgid "disable all output of the program"
msgstr "åœç”¨æœ¬ç¨‹å¼çš„所有輸出"
-#: diff.c:5554
+#: diff.c:5596
msgid "allow an external diff helper to be executed"
msgstr "å…許執行一個外部的差異å”助工具"
-#: diff.c:5556
+#: diff.c:5598
msgid "run external text conversion filters when comparing binary files"
msgstr "當比較二進ä½æª”案時,執行外部的文字轉æ›éŽæ¿¾å™¨"
-#: diff.c:5558
+#: diff.c:5600
msgid "<when>"
msgstr "<何時>"
-#: diff.c:5559
+#: diff.c:5601
msgid "ignore changes to submodules in the diff generation"
msgstr "在生æˆå·®ç•°æ™‚,忽略å­æ¨¡çµ„的更改"
-#: diff.c:5562
+#: diff.c:5604
msgid "<format>"
msgstr "<æ ¼å¼>"
-#: diff.c:5563
+#: diff.c:5605
msgid "specify how differences in submodules are shown"
msgstr "指定å­æ¨¡çµ„的差異如何顯示"
-#: diff.c:5567
+#: diff.c:5609
msgid "hide 'git add -N' entries from the index"
msgstr "éš±è—索引中 'git add -N' æ¢ç›®"
-#: diff.c:5570
+#: diff.c:5612
msgid "treat 'git add -N' entries as real in the index"
msgstr "將索引中 'git add -N' æ¢ç›®ç•¶åšçœŸå¯¦çš„"
-#: diff.c:5572
+#: diff.c:5614
msgid "<string>"
msgstr "<字串>"
-#: diff.c:5573
+#: diff.c:5615
msgid ""
"look for differences that change the number of occurrences of the specified "
"string"
msgstr "尋找改變了指定字串出ç¾æ¬¡æ•¸çš„差異"
-#: diff.c:5576
+#: diff.c:5618
msgid ""
"look for differences that change the number of occurrences of the specified "
"regex"
msgstr "尋找改變指定正則符åˆå‡ºç¾æ¬¡æ•¸çš„差異"
-#: diff.c:5579
+#: diff.c:5621
msgid "show all changes in the changeset with -S or -G"
msgstr "顯示使用 -S 或 -G 的變更集的所有變更"
-#: diff.c:5582
+#: diff.c:5624
msgid "treat <string> in -S as extended POSIX regular expression"
msgstr "å°‡ -S çš„ <string> 當åšå»¶ä¼¸ POSIX 常è¦è¡¨ç¤ºå¼"
-#: diff.c:5585
+#: diff.c:5627
msgid "control the order in which files appear in the output"
msgstr "控制輸出中的檔案顯示順åº"
-#: diff.c:5586 diff.c:5589
+#: diff.c:5628 diff.c:5631
msgid "<path>"
msgstr "<路徑>"
-#: diff.c:5587
+#: diff.c:5629
msgid "show the change in the specified path first"
msgstr "先顯示指定路徑的變更"
-#: diff.c:5590
+#: diff.c:5632
msgid "skip the output to the specified path"
msgstr "ç•¥éŽè¼¸å‡ºè‡³æŒ‡å®šè·¯å¾‘"
-#: diff.c:5592
+#: diff.c:5634
msgid "<object-id>"
msgstr "<物件 ID>"
-#: diff.c:5593
+#: diff.c:5635
msgid ""
"look for differences that change the number of occurrences of the specified "
"object"
msgstr "尋找改變指定物件出ç¾æ¬¡æ•¸çš„差異"
-#: diff.c:5595
+#: diff.c:5637
msgid "[(A|C|D|M|R|T|U|X|B)...[*]]"
msgstr "[(A|C|D|M|R|T|U|X|B)...[*]]"
-#: diff.c:5596
+#: diff.c:5638
msgid "select files by diff type"
msgstr "é€éŽå·®ç•°é¡žåž‹é¸æ“‡æª”案"
-#: diff.c:5598
+#: diff.c:5640
msgid "<file>"
msgstr "<檔案>"
-#: diff.c:5599
-msgid "Output to a specific file"
-msgstr "輸出到一個指定的檔案"
+#: diff.c:5641
+msgid "output to a specific file"
+msgstr "輸出至指定檔案"
-#: diff.c:6257
+#: diff.c:6321
msgid "exhaustive rename detection was skipped due to too many files."
msgstr "因為檔案太多,已略éŽè©³ç´°é‡æ–°å‘½ååµæ¸¬ã€‚"
-#: diff.c:6260
+#: diff.c:6324
msgid "only found copies from modified paths due to too many files."
msgstr "因為檔案太多,åªåœ¨ä¿®æ”¹çš„路徑中尋找複製。"
-#: diff.c:6263
+#: diff.c:6327
#, c-format
msgid ""
"you may want to set your %s variable to at least %d and retry the command."
@@ -3865,20 +3960,20 @@ msgstr "åœç”¨ cone 樣å¼ç¬¦åˆæ¨¡å¼"
msgid "cannot use %s as an exclude file"
msgstr "ä¸èƒ½å°‡ %s 用作排除檔案"
-#: dir.c:2418
+#: dir.c:2419
#, c-format
msgid "could not open directory '%s'"
msgstr "ä¸èƒ½é–‹å•Ÿç›®éŒ„ '%s'"
-#: dir.c:2720
+#: dir.c:2721
msgid "failed to get kernel name and information"
msgstr "無法ç²å¾—核心å稱和訊æ¯"
-#: dir.c:2844
+#: dir.c:2846
msgid "untracked cache is disabled on this system or location"
msgstr "å¿«å–未追蹤檔案在本系統或ä½ç½®ä¸­è¢«åœç”¨"
-#: dir.c:3112
+#: dir.c:3119
msgid ""
"No directory name could be guessed.\n"
"Please specify a directory on the command line"
@@ -3886,17 +3981,17 @@ msgstr ""
"無法猜到目錄å。\n"
"請在指令列指定一個目錄"
-#: dir.c:3800
+#: dir.c:3807
#, c-format
msgid "index file corrupt in repo %s"
msgstr "版本庫 %s 中的索引檔案æ壞"
-#: dir.c:3847 dir.c:3852
+#: dir.c:3854 dir.c:3859
#, c-format
msgid "could not create directories for %s"
msgstr "ä¸èƒ½ç‚º %s 建立目錄"
-#: dir.c:3881
+#: dir.c:3888
#, c-format
msgid "could not migrate git directory from '%s' to '%s'"
msgstr "ä¸èƒ½å¾ž '%s' é·ç§» git 目錄到 '%s'"
@@ -3915,7 +4010,7 @@ msgstr "éŽæ¿¾å…§å®¹"
msgid "could not stat file '%s'"
msgstr "ä¸èƒ½å°æª”案 '%s' å‘¼å« stat"
-#: environment.c:145
+#: environment.c:147
#, c-format
msgid "bad git namespace path \"%s\""
msgstr "錯誤的 git å字空間路徑 \"%s\""
@@ -3946,253 +4041,280 @@ msgstr "git fetch-pack:應為 ACK/NAK,å»å¾—到 '%s'"
msgid "unable to write to remote"
msgstr "無法寫到é ç«¯"
-#: fetch-pack.c:395 fetch-pack.c:1439
+#: fetch-pack.c:397 fetch-pack.c:1460
#, c-format
msgid "invalid shallow line: %s"
msgstr "無效的 shallow 訊æ¯ï¼š%s"
-#: fetch-pack.c:401 fetch-pack.c:1445
+#: fetch-pack.c:403 fetch-pack.c:1466
#, c-format
msgid "invalid unshallow line: %s"
msgstr "無效的 unshallow 訊æ¯ï¼š%s"
-#: fetch-pack.c:403 fetch-pack.c:1447
+#: fetch-pack.c:405 fetch-pack.c:1468
#, c-format
msgid "object not found: %s"
msgstr "物件未找到:%s"
-#: fetch-pack.c:406 fetch-pack.c:1450
+#: fetch-pack.c:408 fetch-pack.c:1471
#, c-format
msgid "error in object: %s"
msgstr "物件中發生錯誤:%s"
-#: fetch-pack.c:408 fetch-pack.c:1452
+#: fetch-pack.c:410 fetch-pack.c:1473
#, c-format
msgid "no shallow found: %s"
msgstr "æœªç™¼ç¾ shallow:%s"
-#: fetch-pack.c:411 fetch-pack.c:1456
+#: fetch-pack.c:413 fetch-pack.c:1477
#, c-format
msgid "expected shallow/unshallow, got %s"
msgstr "應為 shallow/unshallow,å»å¾—到 %s"
-#: fetch-pack.c:451
+#: fetch-pack.c:453
#, c-format
msgid "got %s %d %s"
msgstr "得到 %s %d %s"
-#: fetch-pack.c:468
+#: fetch-pack.c:470
#, c-format
msgid "invalid commit %s"
msgstr "無效æ交 %s"
-#: fetch-pack.c:499
+#: fetch-pack.c:501
msgid "giving up"
msgstr "放棄"
-#: fetch-pack.c:512 progress.c:339
+#: fetch-pack.c:514 progress.h:25
msgid "done"
msgstr "完æˆ"
-#: fetch-pack.c:524
+#: fetch-pack.c:526
#, c-format
msgid "got %s (%d) %s"
msgstr "得到 %s (%d) %s"
-#: fetch-pack.c:560
+#: fetch-pack.c:562
#, c-format
msgid "Marking %s as complete"
msgstr "標記 %s 為完æˆ"
-#: fetch-pack.c:775
+#: fetch-pack.c:784
#, c-format
msgid "already have %s (%s)"
msgstr "已經有 %s(%s)"
-#: fetch-pack.c:861
+#: fetch-pack.c:870
msgid "fetch-pack: unable to fork off sideband demultiplexer"
msgstr "fetch-pack:無法è¡ç”Ÿ sideband 多路輸出"
-#: fetch-pack.c:869
+#: fetch-pack.c:878
msgid "protocol error: bad pack header"
msgstr "å”定錯誤:壞的包頭"
-#: fetch-pack.c:965
+#: fetch-pack.c:974
#, c-format
msgid "fetch-pack: unable to fork off %s"
msgstr "fetch-pack:無法 fork %s 處ç†ç¨‹åº"
-#: fetch-pack.c:971
+#: fetch-pack.c:980
msgid "fetch-pack: invalid index-pack output"
msgstr "fetch-pack:無效的 index-pack 輸出"
-#: fetch-pack.c:988
+#: fetch-pack.c:997
#, c-format
msgid "%s failed"
msgstr "%s 失敗"
-#: fetch-pack.c:990
+#: fetch-pack.c:999
msgid "error in sideband demultiplexer"
msgstr "sideband 多路輸出發生錯誤"
-#: fetch-pack.c:1035
+#: fetch-pack.c:1048
#, c-format
msgid "Server version is %.*s"
msgstr "伺æœå™¨ç‰ˆæœ¬ %.*s"
-#: fetch-pack.c:1043 fetch-pack.c:1049 fetch-pack.c:1052 fetch-pack.c:1058
-#: fetch-pack.c:1062 fetch-pack.c:1066 fetch-pack.c:1070 fetch-pack.c:1074
-#: fetch-pack.c:1078 fetch-pack.c:1082 fetch-pack.c:1086 fetch-pack.c:1090
-#: fetch-pack.c:1096 fetch-pack.c:1102 fetch-pack.c:1107 fetch-pack.c:1112
+#: fetch-pack.c:1056 fetch-pack.c:1062 fetch-pack.c:1065 fetch-pack.c:1071
+#: fetch-pack.c:1075 fetch-pack.c:1079 fetch-pack.c:1083 fetch-pack.c:1087
+#: fetch-pack.c:1091 fetch-pack.c:1095 fetch-pack.c:1099 fetch-pack.c:1103
+#: fetch-pack.c:1109 fetch-pack.c:1115 fetch-pack.c:1120 fetch-pack.c:1125
#, c-format
msgid "Server supports %s"
msgstr "伺æœå™¨æ”¯æ´ %s"
-#: fetch-pack.c:1045
+#: fetch-pack.c:1058
msgid "Server does not support shallow clients"
msgstr "伺æœå™¨ä¸æ”¯æ´ shallow 用戶端"
-#: fetch-pack.c:1105
+#: fetch-pack.c:1118
msgid "Server does not support --shallow-since"
msgstr "伺æœå™¨ä¸æ”¯æ´ --shallow-since"
-#: fetch-pack.c:1110
+#: fetch-pack.c:1123
msgid "Server does not support --shallow-exclude"
msgstr "伺æœå™¨ä¸æ”¯æ´ --shallow-exclude"
-#: fetch-pack.c:1114
+#: fetch-pack.c:1127
msgid "Server does not support --deepen"
msgstr "伺æœå™¨ä¸æ”¯æ´ --deepen"
-#: fetch-pack.c:1116
+#: fetch-pack.c:1129
msgid "Server does not support this repository's object format"
msgstr "伺æœå™¨ä¸æ”¯æ´æ­¤ç‰ˆæœ¬åº«çš„物件格å¼"
-#: fetch-pack.c:1129
+#: fetch-pack.c:1142
msgid "no common commits"
msgstr "沒有共åŒçš„æ交"
-#: fetch-pack.c:1138 fetch-pack.c:1485 builtin/clone.c:1130
+#: fetch-pack.c:1151 fetch-pack.c:1506 builtin/clone.c:1166
msgid "source repository is shallow, reject to clone."
msgstr "來æºç‰ˆæœ¬åº«æ˜¯æ·ºç‰ˆæœ¬åº« (shallow)。拒絕複製。"
-#: fetch-pack.c:1144 fetch-pack.c:1681
+#: fetch-pack.c:1157 fetch-pack.c:1705
msgid "git fetch-pack: fetch failed."
msgstr "git fetch-pack:å–得失敗。"
-#: fetch-pack.c:1258
+#: fetch-pack.c:1271
#, c-format
msgid "mismatched algorithms: client %s; server %s"
msgstr "算法ä¸ä¸€è‡´ï¼šç”¨æˆ¶ç«¯ %s;伺æœå™¨ %s"
-#: fetch-pack.c:1262
+#: fetch-pack.c:1275
#, c-format
msgid "the server does not support algorithm '%s'"
msgstr "伺æœå™¨ä¸æ”¯æ´ã€Œ%sã€ç®—法"
-#: fetch-pack.c:1295
+#: fetch-pack.c:1308
msgid "Server does not support shallow requests"
msgstr "伺æœå™¨ä¸æ”¯æ´ shallow 請求"
-#: fetch-pack.c:1302
+#: fetch-pack.c:1315
msgid "Server supports filter"
msgstr "伺æœå™¨æ”¯æ´ filter"
-#: fetch-pack.c:1345 fetch-pack.c:2063
+#: fetch-pack.c:1358 fetch-pack.c:2087
msgid "unable to write request to remote"
msgstr "無法將請求寫到é ç«¯"
-#: fetch-pack.c:1363
+#: fetch-pack.c:1376
#, c-format
msgid "error reading section header '%s'"
msgstr "讀å–節標題 '%s' 發生錯誤"
-#: fetch-pack.c:1369
+#: fetch-pack.c:1382
#, c-format
msgid "expected '%s', received '%s'"
msgstr "é æœŸ '%s',得到 '%s'"
-#: fetch-pack.c:1403
+#: fetch-pack.c:1416
#, c-format
msgid "unexpected acknowledgment line: '%s'"
msgstr "æ„外的確èªè¡Œï¼š'%s'"
-#: fetch-pack.c:1408
+#: fetch-pack.c:1421
#, c-format
msgid "error processing acks: %d"
msgstr "è™•ç† ack 發生錯誤:%d"
-#: fetch-pack.c:1418
-msgid "expected packfile to be sent after 'ready'"
-msgstr "é æœŸåœ¨ 'ready' ä¹‹å¾Œå‚³é€ packfile"
+#. TRANSLATORS: The parameter will be 'ready', a protocol
+#. keyword.
+#.
+#: fetch-pack.c:1435
+#, c-format
+msgid "expected packfile to be sent after '%s'"
+msgstr "é æœŸåœ¨ 「%sã€å¾Œå‚³é€ packfile"
-#: fetch-pack.c:1420
-msgid "expected no other sections to be sent after no 'ready'"
-msgstr "在沒有 'ready' ä¸æ‡‰è©²å‚³é€å…¶å®ƒå°ç¯€"
+#. TRANSLATORS: The parameter will be 'ready', a protocol
+#. keyword.
+#.
+#: fetch-pack.c:1441
+#, c-format
+msgid "expected no other sections to be sent after no '%s'"
+msgstr "é æœŸåœ¨æ²’有「%sã€å¾Œä¸å‚³é€å…¶ä»–å€æ®µ"
-#: fetch-pack.c:1461
+#: fetch-pack.c:1482
#, c-format
msgid "error processing shallow info: %d"
msgstr "處ç†æ·ºè¤‡è£½è¨Šæ¯ç™¼ç”ŸéŒ¯èª¤ï¼š%d"
-#: fetch-pack.c:1510
+#: fetch-pack.c:1531
#, c-format
msgid "expected wanted-ref, got '%s'"
msgstr "é æœŸ wanted-ref,得到 '%s'"
-#: fetch-pack.c:1515
+#: fetch-pack.c:1536
#, c-format
msgid "unexpected wanted-ref: '%s'"
msgstr "æ„外的 wanted-ref:'%s'"
-#: fetch-pack.c:1520
+#: fetch-pack.c:1541
#, c-format
msgid "error processing wanted refs: %d"
msgstr "處ç†è¦å–得的引用發生錯誤:%d"
-#: fetch-pack.c:1550
+#: fetch-pack.c:1571
msgid "git fetch-pack: expected response end packet"
msgstr "git fetch-pack: é æœŸè¦æœ‰å›žæ‡‰çµæŸå°åŒ…"
-#: fetch-pack.c:1959
+#: fetch-pack.c:1983
msgid "no matching remote head"
msgstr "沒有符åˆçš„é ç«¯åˆ†æ”¯"
-#: fetch-pack.c:1982 builtin/clone.c:581
+#: fetch-pack.c:2006 builtin/clone.c:587
msgid "remote did not send all necessary objects"
msgstr "é ç«¯æ²’有傳é€æ‰€æœ‰å¿…需的物件"
-#: fetch-pack.c:2085
+#: fetch-pack.c:2109
msgid "unexpected 'ready' from remote"
msgstr "從é ç«¯æ”¶åˆ°éžé æœŸçš„ ‘ready’"
-#: fetch-pack.c:2108
+#: fetch-pack.c:2132
#, c-format
msgid "no such remote ref %s"
msgstr "沒有這樣的é ç«¯å¼•ç”¨ %s"
-#: fetch-pack.c:2111
+#: fetch-pack.c:2135
#, c-format
msgid "Server does not allow request for unadvertised object %s"
msgstr "伺æœå™¨ä¸å…許請求未公開的物件 %s"
-#: gpg-interface.c:329 gpg-interface.c:457 gpg-interface.c:974
-#: gpg-interface.c:990
+#: fsmonitor-ipc.c:119
+#, c-format
+msgid "fsmonitor_ipc__send_query: invalid path '%s'"
+msgstr "fsmonitor_ipc__send_query:路徑「%sã€ç„¡æ•ˆ"
+
+#: fsmonitor-ipc.c:125
+#, c-format
+msgid "fsmonitor_ipc__send_query: unspecified error on '%s'"
+msgstr "fsmonitor_ipc__send_query:「%sã€ä¸Šæœ‰æœªæŒ‡å®šçš„錯誤"
+
+#: fsmonitor-ipc.c:155
+msgid "fsmonitor--daemon is not running"
+msgstr "fsmonitor--daemon 未在é‹ä½œ"
+
+#: fsmonitor-ipc.c:164
+#, c-format
+msgid "could not send '%s' command to fsmonitor--daemon"
+msgstr "無法將「%sã€å‘½ä»¤å‚³é€åˆ° fsmonitor--daemon"
+
+#: gpg-interface.c:329 gpg-interface.c:456 gpg-interface.c:995
+#: gpg-interface.c:1011
msgid "could not create temporary file"
msgstr "ä¸èƒ½å»ºç«‹æš«å­˜æª”"
-#: gpg-interface.c:332 gpg-interface.c:460
+#: gpg-interface.c:332 gpg-interface.c:459
#, c-format
msgid "failed writing detached signature to '%s'"
msgstr "無法將分離å¼ç°½å寫入 '%s'"
-#: gpg-interface.c:451
+#: gpg-interface.c:450
msgid ""
"gpg.ssh.allowedSignersFile needs to be configured and exist for ssh "
"signature verification"
msgstr "SSH ç°½å驗證需è¦è¨­å®š gpg.ssh.allowedSignersFile,簽å檔案也è¦å­˜åœ¨"
-#: gpg-interface.c:480
+#: gpg-interface.c:479
msgid ""
"ssh-keygen -Y find-principals/verify is needed for ssh signature "
"verification (available in openssh version 8.2p1+)"
@@ -4200,61 +4322,61 @@ msgstr ""
"SSH ç°½åé©—è­‰éœ€è¦ ssh-keygen -Y find-principals/verify(å¯ä»¥åœ¨ openssh 8.2p1+ "
"版本使用)"
-#: gpg-interface.c:536
+#: gpg-interface.c:550
#, c-format
msgid "ssh signing revocation file configured but not found: %s"
msgstr "有設定 SSH ç°½å廢止檔案,但找ä¸åˆ°æª”案本體:%s"
-#: gpg-interface.c:624
+#: gpg-interface.c:638
#, c-format
msgid "bad/incompatible signature '%s'"
msgstr "ç°½å「%sã€æ壞或者ä¸ç›¸å®¹"
-#: gpg-interface.c:801 gpg-interface.c:806
+#: gpg-interface.c:815 gpg-interface.c:820
#, c-format
msgid "failed to get the ssh fingerprint for key '%s'"
msgstr "無法å–得「%sã€é‡‘é‘°çš„ SSH 指紋"
-#: gpg-interface.c:829
+#: gpg-interface.c:843
msgid ""
"either user.signingkey or gpg.ssh.defaultKeyCommand needs to be configured"
msgstr "需è¦è¨­å®š user.signingkey 或 gpg.ssh.defaultKeyCommand 任一"
-#: gpg-interface.c:851
+#: gpg-interface.c:865
#, c-format
msgid "gpg.ssh.defaultKeyCommand succeeded but returned no keys: %s %s"
msgstr "gpg.ssh.defaultKeyCommand 執行æˆåŠŸï¼Œä½†æ²’回傳按éµï¼š%s %s"
-#: gpg-interface.c:857
+#: gpg-interface.c:871
#, c-format
msgid "gpg.ssh.defaultKeyCommand failed: %s %s"
msgstr "gpg.ssh.defaultKeyCommand 執行失敗:%s %s"
-#: gpg-interface.c:945
+#: gpg-interface.c:966
msgid "gpg failed to sign the data"
msgstr "gpg 無法為資料簽å"
-#: gpg-interface.c:967
+#: gpg-interface.c:988
msgid "user.signingkey needs to be set for ssh signing"
msgstr "需è¦è¨­å®š user.signingkey æ‰èƒ½é€²è¡Œ SSH ç°½å"
-#: gpg-interface.c:978
+#: gpg-interface.c:999
#, c-format
msgid "failed writing ssh signing key to '%s'"
msgstr "無法將 SSH ç°½å金鑰寫入「%sã€"
-#: gpg-interface.c:996
+#: gpg-interface.c:1017
#, c-format
msgid "failed writing ssh signing key buffer to '%s'"
msgstr "無法將 SSH ç°½å金鑰緩è¡å€å¯«å…¥ã€Œ%sã€"
-#: gpg-interface.c:1014
+#: gpg-interface.c:1035
msgid ""
"ssh-keygen -Y sign is needed for ssh signing (available in openssh version "
"8.2p1+)"
msgstr "SSH ç°½åéœ€è¦ ssh-keygen -Y sign(å¯ä»¥åœ¨ openssh 8.2p1+ 版本使用)"
-#: gpg-interface.c:1026
+#: gpg-interface.c:1047
#, c-format
msgid "failed reading ssh signing data buffer from '%s'"
msgstr "無法從「%sã€è®€å– SSH ç°½å資料緩è¡å€"
@@ -4264,7 +4386,7 @@ msgstr "無法從「%sã€è®€å– SSH ç°½å資料緩è¡å€"
msgid "ignored invalid color '%.*s' in log.graphColors"
msgstr "已忽略 log.graphColors 中無效的 “%.*s†色彩"
-#: grep.c:531
+#: grep.c:446
msgid ""
"given pattern contains NULL byte (via -f <file>). This is only supported "
"with -P under PCRE v2"
@@ -4272,109 +4394,109 @@ msgstr ""
"æ供的模å¼åŒ…å« NULL å­—å…ƒï¼ˆé€šéŽ -f <檔案> åƒæ•¸ï¼‰ã€‚åªæœ‰ PCRE v2 下的 -P 支æ´æ­¤"
"功能"
-#: grep.c:1942
+#: grep.c:1859
#, c-format
msgid "'%s': unable to read %s"
msgstr "'%s'ï¼šç„¡æ³•è®€å– %s"
-#: grep.c:1959 setup.c:177 builtin/clone.c:302 builtin/diff.c:90
+#: grep.c:1876 setup.c:178 builtin/clone.c:308 builtin/diff.c:90
#: builtin/rm.c:136
#, c-format
msgid "failed to stat '%s'"
msgstr "å° '%s' å‘¼å« stat 失敗"
-#: grep.c:1970
+#: grep.c:1887
#, c-format
msgid "'%s': short read"
msgstr "'%s':讀å–ä¸å®Œæ•´"
-#: help.c:24
+#: help.c:25
msgid "start a working area (see also: git help tutorial)"
msgstr "開始一個工作å€ï¼ˆåƒè¦‹ï¼šgit help tutorial)"
-#: help.c:25
+#: help.c:26
msgid "work on the current change (see also: git help everyday)"
msgstr "在目å‰è®Šæ›´ä¸Šå·¥ä½œï¼ˆåƒè¦‹ï¼šgit help everyday)"
-#: help.c:26
+#: help.c:27
msgid "examine the history and state (see also: git help revisions)"
msgstr "檢查歷å²å’Œç‹€æ…‹ï¼ˆåƒè¦‹ï¼šgit help revisions)"
-#: help.c:27
+#: help.c:28
msgid "grow, mark and tweak your common history"
msgstr "擴展ã€æ¨™è¨˜å’Œèª¿æ ¡æ‚¨çš„æ­·å²è¨˜éŒ„"
-#: help.c:28
+#: help.c:29
msgid "collaborate (see also: git help workflows)"
msgstr "å”åŒï¼ˆåƒè¦‹ï¼šgit help workflows)"
-#: help.c:32
+#: help.c:33
msgid "Main Porcelain Commands"
msgstr "主è¦çš„上層指令"
-#: help.c:33
+#: help.c:34
msgid "Ancillary Commands / Manipulators"
msgstr "輔助指令/動作者"
-#: help.c:34
+#: help.c:35
msgid "Ancillary Commands / Interrogators"
msgstr "輔助指令/è©¢å•è€…"
-#: help.c:35
+#: help.c:36
msgid "Interacting with Others"
msgstr "與其它系統互動"
-#: help.c:36
+#: help.c:37
msgid "Low-level Commands / Manipulators"
msgstr "低級指令/動作者"
-#: help.c:37
+#: help.c:38
msgid "Low-level Commands / Interrogators"
msgstr "低級指令/è©¢å•è€…"
-#: help.c:38
+#: help.c:39
msgid "Low-level Commands / Syncing Repositories"
msgstr "低級指令 / åŒæ­¥ç‰ˆæœ¬åº«"
-#: help.c:39
+#: help.c:40
msgid "Low-level Commands / Internal Helpers"
msgstr "低級指令/內部å”助工具"
-#: help.c:313
+#: help.c:316
#, c-format
msgid "available git commands in '%s'"
msgstr "在 '%s' 下å¯ç”¨çš„ git 指令"
-#: help.c:320
+#: help.c:323
msgid "git commands available from elsewhere on your $PATH"
msgstr "在 $PATH 路徑中的其他地方å¯ç”¨çš„ git 指令"
-#: help.c:329
+#: help.c:332
msgid "These are common Git commands used in various situations:"
msgstr "這些是å„種場åˆå¸¸è¦‹çš„ Git 指令:"
-#: help.c:378 git.c:100
+#: help.c:382 git.c:100
#, c-format
msgid "unsupported command listing type '%s'"
msgstr "ä¸æ”¯æ´çš„指令列表類型 '%s'"
-#: help.c:418
+#: help.c:422
msgid "The Git concept guides are:"
msgstr "Git 概念嚮導有:"
-#: help.c:442
-msgid "See 'git help <command>' to read about a specific subcommand"
-msgstr "執行 'git help <command>' 來檢視特定å­æŒ‡ä»¤"
-
-#: help.c:447
+#: help.c:446
msgid "External commands"
msgstr "外部指令"
-#: help.c:462
+#: help.c:468
msgid "Command aliases"
msgstr "指令別å"
-#: help.c:543
+#: help.c:486
+msgid "See 'git help <command>' to read about a specific subcommand"
+msgstr "執行 'git help <command>' 來檢視特定å­æŒ‡ä»¤"
+
+#: help.c:563
#, c-format
msgid ""
"'%s' appears to be a git command, but we were not\n"
@@ -4383,36 +4505,36 @@ msgstr ""
"'%s' åƒæ˜¯ä¸€å€‹ git 指令,但å»ç„¡æ³•åŸ·è¡Œã€‚\n"
"å¯èƒ½æ˜¯ git-%s å—æ?"
-#: help.c:565 help.c:662
+#: help.c:585 help.c:682
#, c-format
msgid "git: '%s' is not a git command. See 'git --help'."
msgstr "git:'%s' ä¸æ˜¯ä¸€å€‹ git 指令。åƒè¦‹ 'git --help'。"
-#: help.c:613
+#: help.c:633
msgid "Uh oh. Your system reports no Git commands at all."
msgstr "å”‰å‘€ï¼Œæ‚¨çš„ç³»çµ±ä¸­æœªç™¼ç¾ Git 指令。"
-#: help.c:635
+#: help.c:655
#, c-format
msgid "WARNING: You called a Git command named '%s', which does not exist."
msgstr "警告:您執行了一個並ä¸å­˜åœ¨çš„ Git 指令 '%s'。"
-#: help.c:640
+#: help.c:660
#, c-format
msgid "Continuing under the assumption that you meant '%s'."
msgstr "å‡å®šä½ æƒ³è¦çš„是 '%s' 並繼續。"
-#: help.c:646
+#: help.c:666
#, c-format
msgid "Run '%s' instead [y/N]? "
msgstr "改執行「%sã€[y/N]? "
-#: help.c:654
+#: help.c:674
#, c-format
msgid "Continuing in %0.1f seconds, assuming that you meant '%s'."
msgstr "å‡å®šä½ æƒ³è¦çš„是 '%2$s',在 %1$0.1f 秒é˜å¾Œç¹¼çºŒã€‚"
-#: help.c:666
+#: help.c:686
msgid ""
"\n"
"The most similar command is"
@@ -4423,16 +4545,16 @@ msgstr[0] ""
"\n"
"最類似的指令有"
-#: help.c:706
+#: help.c:729
msgid "git version [<options>]"
msgstr "git version [<é¸é …>]"
-#: help.c:761
+#: help.c:784
#, c-format
msgid "%s: %s - %s"
msgstr "%s:%s - %s"
-#: help.c:765
+#: help.c:788
msgid ""
"\n"
"Did you mean this?"
@@ -4443,7 +4565,7 @@ msgstr[0] ""
"\n"
"您指的是這個嗎?"
-#: hook.c:27
+#: hook.c:28
#, c-format
msgid ""
"The '%s' hook was ignored because it's not set as executable.\n"
@@ -4452,15 +4574,20 @@ msgstr ""
"因為沒有將掛鉤 '%s' 設定為å¯åŸ·è¡Œï¼ŒæŽ›é‰¤è¢«å¿½ç•¥ã€‚您å¯ä»¥é€éŽ\n"
"設定 `git config advice.ignoredHook false` 來關閉這æ¢è­¦å‘Šã€‚"
-#: ident.c:353
+#: hook.c:87
+#, c-format
+msgid "Couldn't start hook '%s'\n"
+msgstr "無法啟動「%sã€æŽ›é‰¤\n"
+
+#: ident.c:354
msgid "Author identity unknown\n"
msgstr "作者身分未知\n"
-#: ident.c:356
+#: ident.c:357
msgid "Committer identity unknown\n"
msgstr "æ交者身分未知\n"
-#: ident.c:362
+#: ident.c:363
msgid ""
"\n"
"*** Please tell me who you are.\n"
@@ -4486,71 +4613,71 @@ msgstr ""
"è‹¥åªè¦åœ¨é€™å€‹ç‰ˆæœ¬åº«è¨­å®šèº«ä»½æ¨™è¨˜ï¼Œè«‹çœç•¥ --global åƒæ•¸ã€‚\n"
"\n"
-#: ident.c:397
+#: ident.c:398
msgid "no email was given and auto-detection is disabled"
msgstr "未æ供信件ä½å€ä¸”自動åµæ¸¬è¢«åœç”¨"
-#: ident.c:402
+#: ident.c:403
#, c-format
msgid "unable to auto-detect email address (got '%s')"
msgstr "無法自動åµæ¸¬ä¿¡ä»¶ä½å€ï¼ˆå¾—到 '%s')"
-#: ident.c:419
+#: ident.c:420
msgid "no name was given and auto-detection is disabled"
msgstr "未æ供姓å且自動åµæ¸¬è¢«åœç”¨"
-#: ident.c:425
+#: ident.c:426
#, c-format
msgid "unable to auto-detect name (got '%s')"
msgstr "無法自動åµæ¸¬å§“å(得到 '%s')"
-#: ident.c:433
+#: ident.c:434
#, c-format
msgid "empty ident name (for <%s>) not allowed"
msgstr "ä¸å…許空的姓å(å°æ–¼ <%s>)"
-#: ident.c:439
+#: ident.c:440
#, c-format
msgid "name consists only of disallowed characters: %s"
msgstr "姓å中僅包å«åœç”¨å­—元:%s"
-#: ident.c:454 builtin/commit.c:648
+#: ident.c:455 builtin/commit.c:649
#, c-format
msgid "invalid date format: %s"
msgstr "無效的日期格å¼ï¼š%s"
-#: list-objects-filter-options.c:83
+#: list-objects-filter-options.c:68
msgid "expected 'tree:<depth>'"
msgstr "期望 'tree:<深度>'"
-#: list-objects-filter-options.c:98
+#: list-objects-filter-options.c:83
msgid "sparse:path filters support has been dropped"
msgstr "sparse:path éŽæ¿¾å™¨æ”¯æ´å·²è¢«åˆªé™¤"
-#: list-objects-filter-options.c:105
+#: list-objects-filter-options.c:90
#, c-format
msgid "'%s' for 'object:type=<type>' is not a valid object type"
msgstr "“object:type=<type>†的 “%s†ä¸æ˜¯æœ‰æ•ˆçš„物件格å¼"
-#: list-objects-filter-options.c:124
+#: list-objects-filter-options.c:109
#, c-format
msgid "invalid filter-spec '%s'"
msgstr "無效的éŽæ¿¾å™¨è¦æ ¼ '%s'"
-#: list-objects-filter-options.c:140
+#: list-objects-filter-options.c:125
#, c-format
msgid "must escape char in sub-filter-spec: '%c'"
msgstr "å¿…é ˆå° sub-filter-spec 中的字元進行轉義:'%c'"
-#: list-objects-filter-options.c:182
+#: list-objects-filter-options.c:167
msgid "expected something after combine:"
msgstr "期望在組åˆå¾Œæœ‰ä¸€äº›æ±è¥¿ï¼š"
-#: list-objects-filter-options.c:264
+#: list-objects-filter-options.c:249
msgid "multiple filter-specs cannot be combined"
msgstr "ä¸èƒ½æ··ç”¨å¤šç¨®éŽæ¿¾è¦æ ¼"
-#: list-objects-filter-options.c:376
+#: list-objects-filter-options.c:365
msgid "unable to upgrade repository format to support partial clone"
msgstr "無法å‡ç´šç‰ˆæœ¬åº«æ ¼å¼ï¼Œä»¥è‡´ä¸æ”¯æ´éƒ¨åˆ†è¤‡è£½"
@@ -4564,17 +4691,17 @@ msgstr "ä¸èƒ½å­˜å– '%s' 中的稀ç–資料物件"
msgid "unable to parse sparse filter data in %s"
msgstr "ç„¡æ³•è§£æž %s 中的稀ç–éŽæ¿¾å™¨è³‡æ–™"
-#: list-objects.c:127
+#: list-objects.c:144
#, c-format
msgid "entry '%s' in tree %s has tree mode, but is not a tree"
msgstr "樹 %2$s 中的æ¢ç›® '%1$s' 具有樹的屬性,但ä¸æ˜¯ä¸€å€‹æ¨¹ç‹€ç‰©ä»¶"
-#: list-objects.c:140
+#: list-objects.c:157
#, c-format
msgid "entry '%s' in tree %s has blob mode, but is not a blob"
msgstr "樹 %2$s 中的æ¢ç›® '%1$s' 具有資料物件的屬性,但ä¸æ˜¯ä¸€å€‹è³‡æ–™ç‰©ä»¶"
-#: list-objects.c:398
+#: list-objects.c:415
#, c-format
msgid "unable to load root tree for commit %s"
msgstr "無法為æ交 %s 載入根樹"
@@ -4603,17 +4730,12 @@ msgstr ""
msgid "Unable to create '%s.lock': %s"
msgstr "ä¸èƒ½å»ºç«‹ '%s.lock':%s"
-#: ls-refs.c:37
-#, c-format
-msgid "invalid value '%s' for lsrefs.unborn"
-msgstr "lsrefs.unborn 的值「%sã€ç„¡æ•ˆ"
-
-#: ls-refs.c:174
+#: ls-refs.c:175
#, c-format
msgid "unexpected line: '%s'"
msgstr "é‡åˆ°éžé æœŸæ©«åˆ—:「%sã€"
-#: ls-refs.c:178
+#: ls-refs.c:179
msgid "expected flush after ls-refs arguments"
msgstr "在 ls-refs 引數之後應該有一個 flush 包"
@@ -4621,37 +4743,37 @@ msgstr "在 ls-refs 引數之後應該有一個 flush 包"
msgid "quoted CRLF detected"
msgstr "åµæ¸¬åˆ°ç”±å¯åˆ—å°å­—å…ƒ (quoted) 所組æˆçš„ CRLF"
-#: mailinfo.c:1254 builtin/am.c:184 builtin/mailinfo.c:46
+#: mailinfo.c:1254 builtin/am.c:185 builtin/mailinfo.c:46
#, c-format
msgid "bad action '%s' for '%s'"
msgstr "「%sã€å‹•ä½œå°ã€Œ%sã€ç„¡æ•ˆ"
-#: merge-ort.c:1584 merge-recursive.c:1211
+#: merge-ort.c:1630 merge-recursive.c:1214
#, c-format
msgid "Failed to merge submodule %s (not checked out)"
msgstr "無法åˆä½µå­æ¨¡çµ„ %s (沒有簽出)"
-#: merge-ort.c:1593 merge-recursive.c:1218
+#: merge-ort.c:1639 merge-recursive.c:1221
#, c-format
msgid "Failed to merge submodule %s (commits not present)"
msgstr "無法åˆä½µå­æ¨¡çµ„ %s(æ交ä¸å­˜åœ¨ï¼‰"
-#: merge-ort.c:1602 merge-recursive.c:1225
+#: merge-ort.c:1648 merge-recursive.c:1228
#, c-format
msgid "Failed to merge submodule %s (commits don't follow merge-base)"
msgstr "無法åˆä½µå­æ¨¡çµ„ %s (æ交未跟隨åˆä½µåŸºç¤Žï¼‰"
-#: merge-ort.c:1612 merge-ort.c:1620
+#: merge-ort.c:1658 merge-ort.c:1666
#, c-format
msgid "Note: Fast-forwarding submodule %s to %s"
msgstr "注æ„:正在將 %s å­æ¨¡çµ„快轉到 %s"
-#: merge-ort.c:1642
+#: merge-ort.c:1688
#, c-format
msgid "Failed to merge submodule %s"
msgstr "無法åˆä½µ %s å­æ¨¡çµ„"
-#: merge-ort.c:1649
+#: merge-ort.c:1695
#, c-format
msgid ""
"Failed to merge submodule %s, but a possible merge resolution exists:\n"
@@ -4660,7 +4782,7 @@ msgstr ""
"無法åˆä½µ %s å­æ¨¡çµ„,但有找到一個å¯è¡Œçš„åˆä½µæ–¹æ¡ˆï¼š\n"
"%s\n"
-#: merge-ort.c:1653 merge-recursive.c:1281
+#: merge-ort.c:1699 merge-recursive.c:1284
#, c-format
msgid ""
"If this is correct simply add it to the index for example\n"
@@ -4676,7 +4798,7 @@ msgstr ""
"\n"
"接å—本建議。\n"
-#: merge-ort.c:1666
+#: merge-ort.c:1712
#, c-format
msgid ""
"Failed to merge submodule %s, but multiple possible merges exist:\n"
@@ -4685,21 +4807,21 @@ msgstr ""
"無法åˆä½µ %s å­æ¨¡çµ„,但有找到幾個å¯è¡Œçš„åˆä½µæ–¹æ¡ˆï¼š\n"
"%s"
-#: merge-ort.c:1887 merge-recursive.c:1372
+#: merge-ort.c:1937 merge-recursive.c:1375
msgid "Failed to execute internal merge"
msgstr "無法執行內部åˆä½µ"
-#: merge-ort.c:1892 merge-recursive.c:1377
+#: merge-ort.c:1942 merge-recursive.c:1380
#, c-format
msgid "Unable to add %s to database"
msgstr "ä¸èƒ½æ–°å¢ž %s 至物件庫"
-#: merge-ort.c:1899 merge-recursive.c:1410
+#: merge-ort.c:1949 merge-recursive.c:1413
#, c-format
msgid "Auto-merging %s"
msgstr "自動åˆä½µ %s"
-#: merge-ort.c:2038 merge-recursive.c:2132
+#: merge-ort.c:2088 merge-recursive.c:2135
#, c-format
msgid ""
"CONFLICT (implicit dir rename): Existing file/dir at %s in the way of "
@@ -4708,7 +4830,7 @@ msgstr ""
"è¡çªï¼ˆéš±å¼ç›®éŒ„é‡æ–°å‘½å):處於隱å¼ç›®éŒ„é‡æ–°å‘½åçš„ç¾å­˜æª”案/目錄 %s,將以下路徑"
"放在:%s。"
-#: merge-ort.c:2048 merge-recursive.c:2142
+#: merge-ort.c:2098 merge-recursive.c:2145
#, c-format
msgid ""
"CONFLICT (implicit dir rename): Cannot map more than one path to %s; "
@@ -4717,7 +4839,7 @@ msgstr ""
"è¡çªï¼ˆéš±å¼ç›®éŒ„é‡æ–°å‘½å):無法映射一個以上路徑到 %s,隱å¼ç›®éŒ„é‡æ–°å‘½å嘗試將這"
"些路徑放置於此:%s"
-#: merge-ort.c:2106
+#: merge-ort.c:2156
#, c-format
msgid ""
"CONFLICT (directory rename split): Unclear where to rename %s to; it was "
@@ -4727,14 +4849,14 @@ msgstr ""
"è¡çªï¼ˆåˆ†å‰²çš„目錄é‡æ–°å‘½å):未知 %s é‡æ–°å‘½åçš„ä½ç½®ã€‚它被é‡æ–°å‘½å為多個其他目"
"錄,但沒有目的地å–å¾—éŽåŠæª”案。"
-#: merge-ort.c:2260 merge-recursive.c:2478
+#: merge-ort.c:2310 merge-recursive.c:2481
#, c-format
msgid ""
"WARNING: Avoiding applying %s -> %s rename to %s, because %s itself was "
"renamed."
msgstr "警告:é¿å…套用 %s -> %s çš„é‡æ–°å‘½å到 %s,因為 %s 本身已被é‡æ–°å‘½å。"
-#: merge-ort.c:2400 merge-recursive.c:3261
+#: merge-ort.c:2450 merge-recursive.c:3264
#, c-format
msgid ""
"Path updated: %s added in %s inside a directory that was renamed in %s; "
@@ -4742,7 +4864,7 @@ msgid ""
msgstr ""
"路徑已更新:%s 新增到 %s,ä½æ–¼ä¸€å€‹è¢«é‡æ–°å‘½å到 %s 的目錄中,將其移動到 %s。"
-#: merge-ort.c:2407 merge-recursive.c:3268
+#: merge-ort.c:2457 merge-recursive.c:3271
#, c-format
msgid ""
"Path updated: %s renamed to %s in %s, inside a directory that was renamed in "
@@ -4751,7 +4873,7 @@ msgstr ""
"路徑已更新:%1$s é‡æ–°å‘½å為 %3$s 中的 %2$s,而該目錄被é‡æ–°å‘½å到 %4$s 中,將"
"其移動到 %5$s。"
-#: merge-ort.c:2420 merge-recursive.c:3264
+#: merge-ort.c:2470 merge-recursive.c:3267
#, c-format
msgid ""
"CONFLICT (file location): %s added in %s inside a directory that was renamed "
@@ -4760,7 +4882,7 @@ msgstr ""
"è¡çªï¼ˆæª”案ä½ç½®ï¼‰ï¼š%s 新增到 %s,ä½æ–¼ä¸€å€‹è¢«é‡æ–°å‘½å為 %s 的目錄中,建議將其移"
"動到 %s。"
-#: merge-ort.c:2428 merge-recursive.c:3271
+#: merge-ort.c:2478 merge-recursive.c:3274
#, c-format
msgid ""
"CONFLICT (file location): %s renamed to %s in %s, inside a directory that "
@@ -4769,14 +4891,14 @@ msgstr ""
"è¡çªï¼ˆæª”案ä½ç½®ï¼‰ï¼š%1$s é‡æ–°å‘½å為 %3$s 中的 %2$s,而該目錄被é‡æ–°å‘½å到 %4$s "
"中,建議將其移動到 %5$s。"
-#: merge-ort.c:2584
+#: merge-ort.c:2634
#, c-format
msgid "CONFLICT (rename/rename): %s renamed to %s in %s and to %s in %s."
msgstr ""
"è¡çªï¼ˆé‡æ–°å‘½å/é‡æ–°å‘½å):%1$s å·²é‡æ–°å‘½å為 %3$s 中的 %2$s å’Œ %5$s 中的 "
"%4$s。"
-#: merge-ort.c:2679
+#: merge-ort.c:2729
#, c-format
msgid ""
"CONFLICT (rename involved in collision): rename of %s -> %s has content "
@@ -4786,30 +4908,30 @@ msgstr ""
"è¡çªï¼ˆé‡æ–°å‘½å陷入相撞):%s -> %s 這個é‡æ–°å‘½å有內容è¡çªä¸¦èˆ‡å…¶ä»–路徑相撞,å¯"
"能會因此出ç¾å·¢ç‹€è¡çªæ¨™è¨˜ã€‚"
-#: merge-ort.c:2698 merge-ort.c:2722
+#: merge-ort.c:2748 merge-ort.c:2772
#, c-format
msgid "CONFLICT (rename/delete): %s renamed to %s in %s, but deleted in %s."
msgstr ""
"è¡çªï¼ˆé‡æ–°å‘½å/刪除):%1$s å·²é‡æ–°å‘½å為 %3$s 中的 %2$s å»åœ¨ %4$s 中被刪除。"
-#: merge-ort.c:3212 merge-recursive.c:3022
+#: merge-ort.c:3261 merge-recursive.c:3025
#, c-format
msgid "cannot read object %s"
msgstr "ä¸èƒ½è®€å–物件 %s"
-#: merge-ort.c:3215 merge-recursive.c:3025
+#: merge-ort.c:3264 merge-recursive.c:3028
#, c-format
msgid "object %s is not a blob"
msgstr "物件 %s ä¸æ˜¯ä¸€å€‹è³‡æ–™ç‰©ä»¶"
-#: merge-ort.c:3644
+#: merge-ort.c:3693
#, c-format
msgid ""
"CONFLICT (file/directory): directory in the way of %s from %s; moving it to "
"%s instead."
msgstr "è¡çªï¼ˆæª”案/ç›®éŒ„ï¼‰ï¼šç›®éŒ„ä½”ä½ %2$s 中 %1$s çš„ä½ç½®ã€‚改移動到 %3$s。"
-#: merge-ort.c:3721
+#: merge-ort.c:3770
#, c-format
msgid ""
"CONFLICT (distinct types): %s had different types on each side; renamed both "
@@ -4818,7 +4940,7 @@ msgstr ""
"è¡çªï¼ˆé¡žåž‹æœ‰ç•°ï¼‰ï¼šå…©æ–¹çš„ %s 類型皆ä¸åŒã€‚已經é‡æ–°å‘½å這兩個來æºï¼Œé€™æ¨£å°±å¯ä»¥åˆ†"
"別記錄這兩方檔案。"
-#: merge-ort.c:3728
+#: merge-ort.c:3777
#, c-format
msgid ""
"CONFLICT (distinct types): %s had different types on each side; renamed one "
@@ -4827,24 +4949,24 @@ msgstr ""
"è¡çªï¼ˆé¡žåž‹æœ‰ç•°ï¼‰ï¼šå…©æ–¹çš„ %s 類型皆ä¸åŒã€‚已經é‡æ–°å‘½å其中一個來æºï¼Œé€™æ¨£å°±å¯ä»¥"
"分別記錄這兩方檔案。"
-#: merge-ort.c:3819 merge-recursive.c:3101
+#: merge-ort.c:3866 merge-recursive.c:3104
msgid "content"
msgstr "內容"
-#: merge-ort.c:3821 merge-recursive.c:3105
+#: merge-ort.c:3868 merge-recursive.c:3108
msgid "add/add"
msgstr "新增/新增"
-#: merge-ort.c:3823 merge-recursive.c:3150
+#: merge-ort.c:3870 merge-recursive.c:3153
msgid "submodule"
msgstr "å­æ¨¡çµ„"
-#: merge-ort.c:3825 merge-recursive.c:3151
+#: merge-ort.c:3872 merge-recursive.c:3154
#, c-format
msgid "CONFLICT (%s): Merge conflict in %s"
msgstr "è¡çªï¼ˆ%s):åˆä½µè¡çªæ–¼ %s"
-#: merge-ort.c:3869
+#: merge-ort.c:3916
#, c-format
msgid ""
"CONFLICT (modify/delete): %s deleted in %s and modified in %s. Version %s "
@@ -4853,7 +4975,7 @@ msgstr ""
"è¡çªï¼ˆä¿®æ”¹/刪除):%1$s 已在 %2$s 刪除和在 %3$s 修改。%5$s çš„ %4$s 版本留在樹"
"上。"
-#: merge-ort.c:4165
+#: merge-ort.c:4212
#, c-format
msgid ""
"Note: %s not up to date and in way of checking out conflicted version; old "
@@ -4863,12 +4985,12 @@ msgstr "註:%s ä¸æ˜¯æœ€æ–°ä¸”干擾到簽出è¡çªç‰ˆæœ¬ã€‚已將舊拷è²é‡
#. TRANSLATORS: The %s arguments are: 1) tree hash of a merge
#. base, and 2-3) the trees for the two trees we're merging.
#.
-#: merge-ort.c:4534
+#: merge-ort.c:4586
#, c-format
msgid "collecting merge info failed for trees %s, %s, %s"
msgstr "%s, %s, %s 樹的åˆä½µè³‡è¨Šæ”¶é›†å¤±æ•—"
-#: merge-ort-wrappers.c:13 merge-recursive.c:3716
+#: merge-ort-wrappers.c:13 merge-recursive.c:3723
#, c-format
msgid ""
"Your local changes to the following files would be overwritten by merge:\n"
@@ -4877,7 +4999,7 @@ msgstr ""
"您å°ä¸‹åˆ—檔案的本機修改將被åˆä½µå‹•ä½œè¦†è“‹ï¼š\n"
" %s"
-#: merge-ort-wrappers.c:33 merge-recursive.c:3482 builtin/merge.c:405
+#: merge-ort-wrappers.c:33 merge-recursive.c:3485 builtin/merge.c:405
msgid "Already up to date."
msgstr "已經是最新的。"
@@ -4914,7 +5036,7 @@ msgstr ":å¯èƒ½æ˜¯ä¸€å€‹ç›®éŒ„/檔案è¡çªï¼Ÿ"
msgid "refusing to lose untracked file at '%s'"
msgstr "拒絕æ¨æ£„ '%s' 中的未追蹤檔案"
-#: merge-recursive.c:956 builtin/cat-file.c:41
+#: merge-recursive.c:956 builtin/cat-file.c:47
#, c-format
msgid "cannot read object %s '%s'"
msgstr "ä¸èƒ½è®€å–物件 %s '%s'"
@@ -4939,41 +5061,41 @@ msgstr "å»ºç«‹ç¬¦è™Ÿé€£çµ '%s' 失敗:%s"
msgid "do not know what to do with %06o %s '%s'"
msgstr "ä¸çŸ¥é“å¦‚ä½•è™•ç† %06o %s '%s'"
-#: merge-recursive.c:1233 merge-recursive.c:1246
+#: merge-recursive.c:1236 merge-recursive.c:1249
#, c-format
msgid "Fast-forwarding submodule %s to the following commit:"
msgstr "å­æ¨¡çµ„ %s 快轉到如下æ交:"
-#: merge-recursive.c:1236 merge-recursive.c:1249
+#: merge-recursive.c:1239 merge-recursive.c:1252
#, c-format
msgid "Fast-forwarding submodule %s"
msgstr "快轉å­æ¨¡çµ„ %s"
-#: merge-recursive.c:1273
+#: merge-recursive.c:1276
#, c-format
msgid "Failed to merge submodule %s (merge following commits not found)"
msgstr "無法åˆä½µå­æ¨¡çµ„ %s (沒發ç¾åˆä½µè·Ÿéš¨çš„æ交)"
-#: merge-recursive.c:1277
+#: merge-recursive.c:1280
#, c-format
msgid "Failed to merge submodule %s (not fast-forward)"
msgstr "無法åˆä½µå­æ¨¡çµ„ %s(éžå¿«è½‰ï¼‰"
-#: merge-recursive.c:1278
+#: merge-recursive.c:1281
msgid "Found a possible merge resolution for the submodule:\n"
msgstr "找到å­æ¨¡çµ„的一個å¯èƒ½çš„åˆä½µæ–¹æ¡ˆï¼š\n"
-#: merge-recursive.c:1290
+#: merge-recursive.c:1293
#, c-format
msgid "Failed to merge submodule %s (multiple merges found)"
msgstr "無法åˆä½µå­æ¨¡çµ„ %s (發ç¾å¤šå€‹åˆä½µï¼‰"
-#: merge-recursive.c:1434
+#: merge-recursive.c:1437
#, c-format
msgid "Error: Refusing to lose untracked file at %s; writing to %s instead."
msgstr "錯誤:拒絕éºå¤±æœªè¿½è¹¤æª”案 '%s',而是寫入 %s。"
-#: merge-recursive.c:1506
+#: merge-recursive.c:1509
#, c-format
msgid ""
"CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left "
@@ -4982,7 +5104,7 @@ msgstr ""
"è¡çªï¼ˆ%1$s/刪除):%2$s 在 %3$s 中被刪除,在 %5$s 中被 %4$s。%7$s çš„ %6$s 版"
"本被ä¿ç•™ã€‚"
-#: merge-recursive.c:1511
+#: merge-recursive.c:1514
#, c-format
msgid ""
"CONFLICT (%s/delete): %s deleted in %s and %s to %s in %s. Version %s of %s "
@@ -4991,7 +5113,7 @@ msgstr ""
"è¡çªï¼ˆ%1$s/刪除):%2$s 在 %3$s 中被刪除,在 %6$s 中的 %5$s 被 %4$s。%8$s çš„ "
"%7$s 版本被ä¿ç•™ã€‚"
-#: merge-recursive.c:1518
+#: merge-recursive.c:1521
#, c-format
msgid ""
"CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left "
@@ -5000,7 +5122,7 @@ msgstr ""
"è¡çªï¼ˆ%1$s/刪除):%2$s 在 %3$s 中被刪除,在 %5$s 中被 %4$s。%7$s çš„ %6$s 版"
"本ä¿ç•™åœ¨ %8$s 中。"
-#: merge-recursive.c:1523
+#: merge-recursive.c:1526
#, c-format
msgid ""
"CONFLICT (%s/delete): %s deleted in %s and %s to %s in %s. Version %s of %s "
@@ -5009,41 +5131,41 @@ msgstr ""
"è¡çªï¼ˆ%1$s/刪除):%2$s 在 %3$s 中被刪除,在 %6$s 中的 %5$s 被 %4$s。%8$s çš„ "
"%7$s 版本ä¿ç•™åœ¨ %9$s 中。"
-#: merge-recursive.c:1558
+#: merge-recursive.c:1561
msgid "rename"
msgstr "é‡æ–°å‘½å"
-#: merge-recursive.c:1558
+#: merge-recursive.c:1561
msgid "renamed"
msgstr "é‡æ–°å‘½å"
-#: merge-recursive.c:1609 merge-recursive.c:2515 merge-recursive.c:3178
+#: merge-recursive.c:1612 merge-recursive.c:2518 merge-recursive.c:3181
#, c-format
msgid "Refusing to lose dirty file at %s"
msgstr "拒絕éºå¤±é«’檔案 '%s'"
-#: merge-recursive.c:1619
+#: merge-recursive.c:1622
#, c-format
msgid "Refusing to lose untracked file at %s, even though it's in the way."
msgstr "拒絕在 '%s' 處失去未追蹤檔案,å³ä½¿å®ƒå­˜åœ¨æ–¼é‡æ–°å‘½å中。"
-#: merge-recursive.c:1677
+#: merge-recursive.c:1680
#, c-format
msgid "CONFLICT (rename/add): Rename %s->%s in %s. Added %s in %s"
msgstr ""
"è¡çªï¼ˆé‡æ–°å‘½å/新增):在 %3$s 中é‡æ–°å‘½å %1$s->%2$s。在 %5$s 中新增 %4$s"
-#: merge-recursive.c:1708
+#: merge-recursive.c:1711
#, c-format
msgid "%s is a directory in %s adding as %s instead"
msgstr "%s 是 %s 中的一個目錄而已 %s 為å被新增"
-#: merge-recursive.c:1713
+#: merge-recursive.c:1716
#, c-format
msgid "Refusing to lose untracked file at %s; adding as %s instead"
msgstr "拒絕éºå¤±æœªè¿½è¹¤æª”案 '%s',而是新增為 %s"
-#: merge-recursive.c:1740
+#: merge-recursive.c:1743
#, c-format
msgid ""
"CONFLICT (rename/rename): Rename \"%s\"->\"%s\" in branch \"%s\" rename \"%s"
@@ -5052,18 +5174,18 @@ msgstr ""
"è¡çªï¼ˆé‡æ–°å‘½å/é‡æ–°å‘½å):在分支 \"%3$s\" 中é‡æ–°å‘½å \"%1$s\"->\"%2$s\",在"
"分支 \"%6$s\" 中é‡æ–°å‘½å \"%4$s\"->\"%5$s\"%7$s"
-#: merge-recursive.c:1745
+#: merge-recursive.c:1748
msgid " (left unresolved)"
msgstr " (留下未解決)"
-#: merge-recursive.c:1837
+#: merge-recursive.c:1840
#, c-format
msgid "CONFLICT (rename/rename): Rename %s->%s in %s. Rename %s->%s in %s"
msgstr ""
"è¡çªï¼ˆé‡æ–°å‘½å/é‡æ–°å‘½å):在 %3$s 中é‡æ–°å‘½å %1$s->%2$s,在 %6$s 中é‡æ–°å‘½å "
"%4$s->%5$s"
-#: merge-recursive.c:2100
+#: merge-recursive.c:2103
#, c-format
msgid ""
"CONFLICT (directory rename split): Unclear where to place %s because "
@@ -5073,7 +5195,7 @@ msgstr ""
"è¡çªï¼ˆåˆ†å‰²çš„目錄é‡æ–°å‘½å):ä¸æ¸…楚 %s 應該放在哪裡,因為目錄 %s 被é‡æ–°å‘½å到"
"多個其它目錄,沒有目錄包å«å¤§éƒ¨åˆ†æª”案。"
-#: merge-recursive.c:2234
+#: merge-recursive.c:2237
#, c-format
msgid ""
"CONFLICT (rename/rename): Rename directory %s->%s in %s. Rename directory %s-"
@@ -5082,77 +5204,77 @@ msgstr ""
"è¡çªï¼ˆé‡æ–°å‘½å/é‡æ–°å‘½å):在 %3$s 中é‡æ–°å‘½å目錄 %1$s->%2$s,在 %6$s 中é‡æ–°"
"命å目錄 %4$s->%5$s"
-#: merge-recursive.c:3089
+#: merge-recursive.c:3092
msgid "modify"
msgstr "修改"
-#: merge-recursive.c:3089
+#: merge-recursive.c:3092
msgid "modified"
msgstr "修改"
-#: merge-recursive.c:3128
+#: merge-recursive.c:3131
#, c-format
msgid "Skipped %s (merged same as existing)"
msgstr "ç•¥éŽ %s(已經åšéŽç›¸åŒåˆä½µï¼‰"
-#: merge-recursive.c:3181
+#: merge-recursive.c:3184
#, c-format
msgid "Adding as %s instead"
msgstr "而是以 %s 為å新增"
-#: merge-recursive.c:3385
+#: merge-recursive.c:3388
#, c-format
msgid "Removing %s"
msgstr "刪除 %s"
-#: merge-recursive.c:3408
+#: merge-recursive.c:3411
msgid "file/directory"
msgstr "檔案/目錄"
-#: merge-recursive.c:3413
+#: merge-recursive.c:3416
msgid "directory/file"
msgstr "目錄/檔案"
-#: merge-recursive.c:3420
+#: merge-recursive.c:3423
#, c-format
msgid "CONFLICT (%s): There is a directory with name %s in %s. Adding %s as %s"
msgstr "è¡çªï¼ˆ%1$s):在 %3$s 中有一個å為 %2$s 的目錄。以 %5$s 為å新增 %4$s"
-#: merge-recursive.c:3429
+#: merge-recursive.c:3432
#, c-format
msgid "Adding %s"
msgstr "新增 %s"
-#: merge-recursive.c:3438
+#: merge-recursive.c:3441
#, c-format
msgid "CONFLICT (add/add): Merge conflict in %s"
msgstr "è¡çªï¼ˆadd/add):åˆä½µè¡çªæ–¼ %s"
-#: merge-recursive.c:3491
+#: merge-recursive.c:3494
#, c-format
msgid "merging of trees %s and %s failed"
msgstr "無法åˆä½µæ¨¹ %s å’Œ %s"
-#: merge-recursive.c:3585
+#: merge-recursive.c:3588
msgid "Merging:"
msgstr "åˆä½µï¼š"
-#: merge-recursive.c:3598
+#: merge-recursive.c:3601
#, c-format
msgid "found %u common ancestor:"
msgid_plural "found %u common ancestors:"
msgstr[0] "ç™¼ç¾ %u 個共åŒç¥–先:"
-#: merge-recursive.c:3648
+#: merge-recursive.c:3651
msgid "merge returned no commit"
msgstr "åˆä½µæœªè¿”回æ交"
-#: merge-recursive.c:3816
+#: merge-recursive.c:3823
#, c-format
msgid "Could not parse object '%s'"
msgstr "ä¸èƒ½è§£æžç‰©ä»¶ '%s'"
-#: merge-recursive.c:3834 builtin/merge.c:720 builtin/merge.c:906
+#: merge-recursive.c:3841 builtin/merge.c:720 builtin/merge.c:912
#: builtin/stash.c:489
msgid "Unable to write index."
msgstr "ä¸èƒ½å¯«å…¥ç´¢å¼•ã€‚"
@@ -5161,221 +5283,225 @@ msgstr "ä¸èƒ½å¯«å…¥ç´¢å¼•ã€‚"
msgid "failed to read the cache"
msgstr "讀å–å¿«å–失敗"
-#: merge.c:102 rerere.c:704 builtin/am.c:1988 builtin/am.c:2022
-#: builtin/checkout.c:598 builtin/checkout.c:853 builtin/clone.c:706
+#: merge.c:102 rerere.c:705 builtin/am.c:1989 builtin/am.c:2023
+#: builtin/checkout.c:603 builtin/checkout.c:865 builtin/clone.c:714
#: builtin/stash.c:269
msgid "unable to write new index file"
msgstr "無法寫新的索引檔案"
-#: midx.c:78
+#: midx.c:79
msgid "multi-pack-index OID fanout is of the wrong size"
msgstr "多包索引的物件 ID fanout 大å°éŒ¯èª¤"
-#: midx.c:111
+#: midx.c:112
#, c-format
msgid "multi-pack-index file %s is too small"
msgstr "多包索引檔案 %s 太å°"
-#: midx.c:127
+#: midx.c:128
#, c-format
msgid "multi-pack-index signature 0x%08x does not match signature 0x%08x"
msgstr "多包索引簽å 0x%08x 和簽å 0x%08x ä¸ç¬¦åˆ"
-#: midx.c:132
+#: midx.c:133
#, c-format
msgid "multi-pack-index version %d not recognized"
msgstr "multi-pack-index 版本 %d ä¸èƒ½è¢«è­˜åˆ¥"
-#: midx.c:137
+#: midx.c:138
#, c-format
msgid "multi-pack-index hash version %u does not match version %u"
msgstr "multi-pack-index 雜湊版本 %u 與版本 %u ä¸ç¬¦åˆ"
-#: midx.c:154
+#: midx.c:155
msgid "multi-pack-index missing required pack-name chunk"
msgstr "多包索引缺少必需的包åå€å¡Š"
-#: midx.c:156
+#: midx.c:157
msgid "multi-pack-index missing required OID fanout chunk"
msgstr "多包索引缺少必需的物件 ID fanout å€å¡Š"
-#: midx.c:158
+#: midx.c:159
msgid "multi-pack-index missing required OID lookup chunk"
msgstr "多包索引缺少必需的物件 ID 查詢å€å¡Š"
-#: midx.c:160
+#: midx.c:161
msgid "multi-pack-index missing required object offsets chunk"
msgstr "多包索引缺少必需的物件ä½ç§»å€å¡Š"
-#: midx.c:176
+#: midx.c:180
#, c-format
msgid "multi-pack-index pack names out of order: '%s' before '%s'"
msgstr "多包索引包åç„¡åºï¼š'%s' 在 '%s' 之å‰"
-#: midx.c:224
+#: midx.c:228
#, c-format
msgid "bad pack-int-id: %u (%u total packs)"
msgstr "錯的 pack-int-id:%u(共有 %u 個包)"
-#: midx.c:274
+#: midx.c:278
msgid "multi-pack-index stores a 64-bit offset, but off_t is too small"
msgstr "多包索引儲存一個64ä½ä½ç§»ï¼Œä½†æ˜¯ off_t 太å°"
-#: midx.c:505
+#: midx.c:509
#, c-format
msgid "failed to add packfile '%s'"
msgstr "新增 packfile '%s' 失敗"
-#: midx.c:511
+#: midx.c:515
#, c-format
msgid "failed to open pack-index '%s'"
msgstr "開啟包索引 '%s' 失敗"
-#: midx.c:579
+#: midx.c:583
#, c-format
msgid "failed to locate object %d in packfile"
msgstr "在 packfile 中定ä½ç‰©ä»¶ %d 失敗"
-#: midx.c:895
+#: midx.c:911
msgid "cannot store reverse index file"
msgstr "無法儲存倒排索引檔案"
-#: midx.c:993
+#: midx.c:1009
#, c-format
msgid "could not parse line: %s"
msgstr "無法解æžæ©«åˆ—:%s"
-#: midx.c:995
+#: midx.c:1011
#, c-format
msgid "malformed line: %s"
msgstr "橫列格å¼éŒ¯èª¤ï¼š%s"
-#: midx.c:1162
+#: midx.c:1181
msgid "ignoring existing multi-pack-index; checksum mismatch"
msgstr "忽略ç¾æœ‰çš„多包索引:總和檢查碼ä¸ç¬¦"
-#: midx.c:1187
+#: midx.c:1206
msgid "could not load pack"
msgstr "無法載入包"
-#: midx.c:1193
+#: midx.c:1212
#, c-format
msgid "could not open index for %s"
msgstr "無法開啟 %s 的索引"
-#: midx.c:1204
+#: midx.c:1223
msgid "Adding packfiles to multi-pack-index"
msgstr "正在新增 packfile 至多包索引"
-#: midx.c:1247
+#: midx.c:1266
#, c-format
msgid "unknown preferred pack: '%s'"
msgstr "未知å好包:「%sã€"
-#: midx.c:1292
+#: midx.c:1311
#, c-format
msgid "cannot select preferred pack %s with no objects"
msgstr "無法é¸å–å好,沒有物件的 %s 包"
-#: midx.c:1324
+#: midx.c:1343
#, c-format
msgid "did not see pack-file %s to drop"
msgstr "沒有看到è¦æ¨æ£„的包檔案 %s"
-#: midx.c:1370
+#: midx.c:1389
#, c-format
msgid "preferred pack '%s' is expired"
msgstr "å好包「%sã€å·²ç¶“éŽæœŸ"
-#: midx.c:1383
+#: midx.c:1402
msgid "no pack files to index."
msgstr "沒有è¦ç´¢å¼•çš„ pack 檔案。"
-#: midx.c:1420
+#: midx.c:1409
+msgid "refusing to write multi-pack .bitmap without any objects"
+msgstr "拒絕寫入無任何物件的多包 .bitmap"
+
+#: midx.c:1451
msgid "could not write multi-pack bitmap"
msgstr "無法寫入多包ä½åœ–"
-#: midx.c:1430
+#: midx.c:1461
msgid "could not write multi-pack-index"
msgstr "無法寫入多包索引"
-#: midx.c:1489 builtin/clean.c:37
+#: midx.c:1520 builtin/clean.c:37
#, c-format
msgid "failed to remove %s"
msgstr "刪除 %s 失敗"
-#: midx.c:1522
+#: midx.c:1553
#, c-format
msgid "failed to clear multi-pack-index at %s"
msgstr "清ç†ä½æ–¼ %s 的多包索引失敗"
-#: midx.c:1585
+#: midx.c:1616
msgid "multi-pack-index file exists, but failed to parse"
msgstr "有 multi-pack-index 檔案,但無法解æž"
-#: midx.c:1593
+#: midx.c:1624
msgid "incorrect checksum"
msgstr "總和檢查碼ä¸æ­£ç¢º"
-#: midx.c:1596
+#: midx.c:1627
msgid "Looking for referenced packfiles"
msgstr "正在尋找引用的 packfile"
-#: midx.c:1611
+#: midx.c:1642
#, c-format
msgid ""
"oid fanout out of order: fanout[%d] = %<PRIx32> > %<PRIx32> = fanout[%d]"
msgstr "物件 ID 扇出無åºï¼šfanout[%d] = %<PRIx32> > %<PRIx32> = fanout[%d]"
-#: midx.c:1616
+#: midx.c:1647
msgid "the midx contains no oid"
msgstr "midx 沒有 oid"
-#: midx.c:1625
+#: midx.c:1656
msgid "Verifying OID order in multi-pack-index"
msgstr "正在驗證多包索引中的物件 ID é †åº"
-#: midx.c:1634
+#: midx.c:1665
#, c-format
msgid "oid lookup out of order: oid[%d] = %s >= %s = oid[%d]"
msgstr "物件 ID 查詢無åºï¼šoid[%d] = %s >= %s = oid[%d]"
-#: midx.c:1654
+#: midx.c:1685
msgid "Sorting objects by packfile"
msgstr "é€éŽ packfile 為物件排åº"
-#: midx.c:1661
+#: midx.c:1692
msgid "Verifying object offsets"
msgstr "正在驗證物件ä½ç§»"
-#: midx.c:1677
+#: midx.c:1708
#, c-format
msgid "failed to load pack entry for oid[%d] = %s"
msgstr "為 oid[%d] = %s 載入包æ¢ç›®å¤±æ•—"
-#: midx.c:1683
+#: midx.c:1714
#, c-format
msgid "failed to load pack-index for packfile %s"
msgstr "為 packfile %s 載入包索引失敗"
-#: midx.c:1692
+#: midx.c:1723
#, c-format
msgid "incorrect object offset for oid[%d] = %s: %<PRIx64> != %<PRIx64>"
msgstr "oid[%d] = %s 錯誤的物件ä½ç§»ï¼š%<PRIx64> != %<PRIx64>"
-#: midx.c:1719
+#: midx.c:1750
msgid "Counting referenced objects"
msgstr "正在計算引用物件"
-#: midx.c:1729
+#: midx.c:1760
msgid "Finding and deleting unreferenced packfiles"
msgstr "正在尋找並刪除沒有引用的 packfile"
-#: midx.c:1921
+#: midx.c:1952
msgid "could not start pack-objects"
msgstr "ä¸èƒ½é–‹å§‹ pack-objects"
-#: midx.c:1941
+#: midx.c:1972
msgid "could not finish pack-objects"
msgstr "ä¸èƒ½çµæŸ pack-objects"
@@ -5394,7 +5520,7 @@ msgstr "ä¸èƒ½å»ºç«‹ lazy_name 執行緒:%s"
msgid "unable to join lazy_name thread: %s"
msgstr "ä¸èƒ½åŠ å…¥ lazy_name 執行緒:%s"
-#: notes-merge.c:277
+#: notes-merge.c:276
#, c-format
msgid ""
"You have not concluded your previous notes merge (%s exists).\n"
@@ -5405,7 +5531,7 @@ msgstr ""
"在開始一個新的備註åˆä½µä¹‹å‰ï¼Œè«‹ä½¿ç”¨ 'git notes merge --commit' 或者 'git "
"notes merge --abort' 來æ交/終止å‰ä¸€æ¬¡åˆä½µã€‚"
-#: notes-merge.c:284
+#: notes-merge.c:283
#, c-format
msgid "You have not concluded your notes merge (%s exists)."
msgstr "您尚未çµæŸå‚™è¨»åˆä½µï¼ˆå­˜åœ¨ %s)。"
@@ -5433,271 +5559,342 @@ msgstr "æ‹’çµ•å‘ %s(在 refs/notes/ 之外)寫入註解"
msgid "Bad %s value: '%s'"
msgstr "壞的 %s 值:'%s'"
-#: object-file.c:456
+#: object-file.c:457
#, c-format
msgid "object directory %s does not exist; check .git/objects/info/alternates"
msgstr "物件目錄 %s ä¸å­˜åœ¨ï¼Œæª¢æŸ¥ .git/objects/info/alternates"
-#: object-file.c:514
+#: object-file.c:515
#, c-format
msgid "unable to normalize alternate object path: %s"
msgstr "無法è¦ç¯„化備用物件路徑:%s"
-#: object-file.c:588
+#: object-file.c:589
#, c-format
msgid "%s: ignoring alternate object stores, nesting too deep"
msgstr "%s:忽略備用物件庫,嵌套太深"
-#: object-file.c:595
+#: object-file.c:596
#, c-format
msgid "unable to normalize object directory: %s"
msgstr "無法è¦ç¯„化物件目錄: %s"
-#: object-file.c:638
+#: object-file.c:639
msgid "unable to fdopen alternates lockfile"
msgstr "無法 fdopen å–代鎖檔案"
-#: object-file.c:656
+#: object-file.c:657
msgid "unable to read alternates file"
msgstr "無法讀å–替代檔案"
-#: object-file.c:663
+#: object-file.c:664
msgid "unable to move new alternates file into place"
msgstr "無法將新的替代檔案移動到ä½"
-#: object-file.c:741
+#: object-file.c:742
#, c-format
msgid "path '%s' does not exist"
msgstr "路徑 '%s' ä¸å­˜åœ¨"
-#: object-file.c:762
+#: object-file.c:763
#, c-format
msgid "reference repository '%s' as a linked checkout is not supported yet."
msgstr "å°šä¸æ”¯æ´å°‡å¼•ç”¨ç‰ˆæœ¬åº« '%s' 作為一個連çµç°½å‡ºã€‚"
-#: object-file.c:768
+#: object-file.c:769
#, c-format
msgid "reference repository '%s' is not a local repository."
msgstr "引用版本庫 '%s' ä¸æ˜¯ä¸€å€‹æœ¬æ©Ÿç‰ˆæœ¬åº«ã€‚"
-#: object-file.c:774
+#: object-file.c:775
#, c-format
msgid "reference repository '%s' is shallow"
msgstr "引用版本庫 '%s' 是一個淺複製"
-#: object-file.c:782
+#: object-file.c:783
#, c-format
msgid "reference repository '%s' is grafted"
msgstr "引用版本庫 '%s' 已被移æ¤"
-#: object-file.c:813
+#: object-file.c:814
#, c-format
msgid "could not find object directory matching %s"
msgstr "找ä¸åˆ°ç¬¦åˆ %s 的物件目錄"
-#: object-file.c:863
+#: object-file.c:864
#, c-format
msgid "invalid line while parsing alternate refs: %s"
msgstr "解æžå‚™ç”¨å¼•ç”¨æ™‚無效的行:%s"
-#: object-file.c:1013
+#: object-file.c:1014
#, c-format
msgid "attempting to mmap %<PRIuMAX> over limit %<PRIuMAX>"
msgstr "嘗試 mmap %<PRIuMAX>,超éŽäº†æœ€å¤§å€¼ %<PRIuMAX>"
-#: object-file.c:1048
+#: object-file.c:1049
#, c-format
msgid "mmap failed%s"
msgstr "mmap 失敗%s"
-#: object-file.c:1214
+#: object-file.c:1230
#, c-format
msgid "object file %s is empty"
msgstr "物件檔案 %s 為空"
-#: object-file.c:1333 object-file.c:2542
+#: object-file.c:1349 object-file.c:2588
#, c-format
msgid "corrupt loose object '%s'"
msgstr "æ壞的鬆散物件 '%s'"
-#: object-file.c:1335 object-file.c:2546
+#: object-file.c:1351 object-file.c:2592
#, c-format
msgid "garbage at end of loose object '%s'"
msgstr "鬆散物件 '%s' 後é¢æœ‰åžƒåœ¾è³‡æ–™"
-#: object-file.c:1457
+#: object-file.c:1473
#, c-format
msgid "unable to parse %s header"
msgstr "ç„¡æ³•è§£æž %s 頭部"
-#: object-file.c:1459
+#: object-file.c:1475
msgid "invalid object type"
msgstr "無效的物件類型"
-#: object-file.c:1470
+#: object-file.c:1486
#, c-format
msgid "unable to unpack %s header"
msgstr "無法解開 %s 頭部"
-#: object-file.c:1474
+#: object-file.c:1490
#, c-format
msgid "header for %s too long, exceeds %d bytes"
msgstr "%s 的標頭éŽé•·ï¼Œè¶…出 %d ä½å…ƒçµ„"
-#: object-file.c:1704
+#: object-file.c:1720
#, c-format
msgid "failed to read object %s"
msgstr "讀å–物件 %s 失敗"
-#: object-file.c:1708
+#: object-file.c:1724
#, c-format
msgid "replacement %s not found for %s"
msgstr "找ä¸åˆ° %2$s 的替代 %1$s"
-#: object-file.c:1712
+#: object-file.c:1728
#, c-format
msgid "loose object %s (stored in %s) is corrupt"
msgstr "鬆散物件 %s(儲存在 %s)已æ壞"
-#: object-file.c:1716
+#: object-file.c:1732
#, c-format
msgid "packed object %s (stored in %s) is corrupt"
msgstr "打包物件 %s(儲存在 %s)已æ壞"
-#: object-file.c:1821
+#: object-file.c:1855
#, c-format
msgid "unable to write file %s"
msgstr "無法寫檔案 %s"
-#: object-file.c:1828
+#: object-file.c:1862
#, c-format
msgid "unable to set permission to '%s'"
msgstr "無法為 '%s' 設定權é™"
-#: object-file.c:1835
+#: object-file.c:1869
msgid "file write error"
msgstr "檔案寫錯誤"
-#: object-file.c:1858
+#: object-file.c:1904
msgid "error when closing loose object file"
msgstr "關閉鬆散物件檔案時發生錯誤"
-#: object-file.c:1925
+#: object-file.c:1971
#, c-format
msgid "insufficient permission for adding an object to repository database %s"
msgstr "權é™ä¸è¶³ï¼Œç„¡æ³•åœ¨ç‰ˆæœ¬åº«ç‰©ä»¶åº« %s 中新增物件"
-#: object-file.c:1927
+#: object-file.c:1973
msgid "unable to create temporary file"
msgstr "無法建立暫存檔"
-#: object-file.c:1951
+#: object-file.c:1997
msgid "unable to write loose object file"
msgstr "ä¸èƒ½å¯«é¬†æ•£ç‰©ä»¶æª”案"
-#: object-file.c:1957
+#: object-file.c:2003
#, c-format
msgid "unable to deflate new object %s (%d)"
msgstr "ä¸èƒ½å£“縮新物件 %s(%d)"
-#: object-file.c:1961
+#: object-file.c:2007
#, c-format
msgid "deflateEnd on object %s failed (%d)"
msgstr "在物件 %s ä¸Šå‘¼å« deflateEnd 失敗(%d)"
-#: object-file.c:1965
+#: object-file.c:2011
#, c-format
msgid "confused by unstable object source data for %s"
msgstr "被 %s çš„ä¸ç©©å®šç‰©ä»¶ä¾†æºè³‡æ–™æ··æ·†"
-#: object-file.c:1976 builtin/pack-objects.c:1243
+#: object-file.c:2022 builtin/pack-objects.c:1251
#, c-format
msgid "failed utime() on %s"
msgstr "在 %s ä¸Šå‘¼å« utime() 失敗"
-#: object-file.c:2054
+#: object-file.c:2100
#, c-format
msgid "cannot read object for %s"
msgstr "ä¸èƒ½è®€å–物件 %s"
-#: object-file.c:2105
+#: object-file.c:2151
msgid "corrupt commit"
msgstr "æ壞的æ交"
-#: object-file.c:2113
+#: object-file.c:2159
msgid "corrupt tag"
msgstr "æ壞的標籤"
-#: object-file.c:2213
+#: object-file.c:2259
#, c-format
msgid "read error while indexing %s"
msgstr "索引 %s 時讀å–錯誤"
-#: object-file.c:2216
+#: object-file.c:2262
#, c-format
msgid "short read while indexing %s"
msgstr "索引 %s 時讀入ä¸å®Œæ•´"
-#: object-file.c:2289 object-file.c:2299
+#: object-file.c:2335 object-file.c:2345
#, c-format
msgid "%s: failed to insert into database"
msgstr "%s:æ’入資料庫失敗"
-#: object-file.c:2305
+#: object-file.c:2351
#, c-format
msgid "%s: unsupported file type"
msgstr "%s:ä¸æ”¯æ´çš„檔案類型"
-#: object-file.c:2329 builtin/fetch.c:1453
+#: object-file.c:2375 builtin/fetch.c:1494
#, c-format
msgid "%s is not a valid object"
msgstr "%s ä¸æ˜¯ä¸€å€‹æœ‰æ•ˆçš„物件"
-#: object-file.c:2331
+#: object-file.c:2377
#, c-format
msgid "%s is not a valid '%s' object"
msgstr "%s ä¸æ˜¯ä¸€å€‹æœ‰æ•ˆçš„ '%s' 物件"
-#: object-file.c:2358
+#: object-file.c:2404
#, c-format
msgid "unable to open %s"
msgstr "ä¸èƒ½é–‹å•Ÿ %s"
-#: object-file.c:2553
+#: object-file.c:2599
#, c-format
msgid "hash mismatch for %s (expected %s)"
msgstr "%s 的雜湊值ä¸ç¬¦åˆï¼ˆé æœŸ %s)"
-#: object-file.c:2576
+#: object-file.c:2622
#, c-format
msgid "unable to mmap %s"
msgstr "ä¸èƒ½ mmap %s"
-#: object-file.c:2582
+#: object-file.c:2628
#, c-format
msgid "unable to unpack header of %s"
msgstr "無法解壓縮 %s 的頭部"
-#: object-file.c:2587
+#: object-file.c:2633
#, c-format
msgid "unable to parse header of %s"
msgstr "ç„¡æ³•è§£æž %s 的頭部"
-#: object-file.c:2598
+#: object-file.c:2644
#, c-format
msgid "unable to unpack contents of %s"
msgstr "無法解壓縮 %s 的內容"
-#: object-name.c:480
+#. TRANSLATORS: This is a line of ambiguous object
+#. output shown when we cannot look up or parse the
+#. object in question. E.g. "deadbeef [bad object]".
+#.
+#: object-name.c:382
+#, c-format
+msgid "%s [bad object]"
+msgstr "%s [無效物件]"
+
+#. TRANSLATORS: This is a line of ambiguous commit
+#. object output. E.g.:
+#. *
+#. "deadbeef commit 2021-01-01 - Some Commit Message"
+#.
+#: object-name.c:407
+#, c-format
+msgid "%s commit %s - %s"
+msgstr "%s æ交 %s - %s"
+
+#. TRANSLATORS: This is a line of ambiguous
+#. tag object output. E.g.:
+#. *
+#. "deadbeef tag 2022-01-01 - Some Tag Message"
+#. *
+#. The second argument is the YYYY-MM-DD found
+#. in the tag.
+#. *
+#. The third argument is the "tag" string
+#. from object.c.
+#.
+#: object-name.c:428
+#, c-format
+msgid "%s tag %s - %s"
+msgstr "%s 標籤 %s - %s"
+
+#. TRANSLATORS: This is a line of ambiguous
+#. tag object output where we couldn't parse
+#. the tag itself. E.g.:
+#. *
+#. "deadbeef [bad tag, could not parse it]"
+#.
+#: object-name.c:439
+#, c-format
+msgid "%s [bad tag, could not parse it]"
+msgstr "%s [無效標籤,無法解æž]"
+
+#. TRANSLATORS: This is a line of ambiguous <type>
+#. object output. E.g. "deadbeef tree".
+#.
+#: object-name.c:447
+#, c-format
+msgid "%s tree"
+msgstr "%s 樹"
+
+#. TRANSLATORS: This is a line of ambiguous <type>
+#. object output. E.g. "deadbeef blob".
+#.
+#: object-name.c:453
+#, c-format
+msgid "%s blob"
+msgstr "%s blob"
+
+#: object-name.c:569
#, c-format
msgid "short object ID %s is ambiguous"
msgstr "短物件 ID %s 存在歧義"
-#: object-name.c:491
-msgid "The candidates are:"
-msgstr "候é¸è€…有:"
+#. TRANSLATORS: The argument is the list of ambiguous
+#. objects composed in show_ambiguous_object(). See
+#. its "TRANSLATORS" comments for details.
+#.
+#: object-name.c:591
+#, c-format
+msgid ""
+"The candidates are:\n"
+"%s"
+msgstr ""
+"候é¸ç‰©ä»¶æœ‰ï¼š\n"
+"%s"
-#: object-name.c:790
+#: object-name.c:888
msgid ""
"Git normally never creates a ref that ends with 40 hex characters\n"
"because it will be ignored when you just specify 40-hex. These refs\n"
@@ -5719,22 +5916,22 @@ msgstr ""
"請檢查這些引用,並視需è¦åˆªé™¤ã€‚執行\n"
"「git config advice.objectNameWarning falseã€å‘½ä»¤ä»¥é—œé–‰æœ¬è¨Šæ¯é€šçŸ¥"
-#: object-name.c:910
+#: object-name.c:1008
#, c-format
msgid "log for '%.*s' only goes back to %s"
msgstr "'%.*s' 的日誌åªèƒ½å›žåˆ° %s"
-#: object-name.c:918
+#: object-name.c:1016
#, c-format
msgid "log for '%.*s' only has %d entries"
msgstr "'%.*s' 的日誌åªæœ‰ %d 個項目"
-#: object-name.c:1696
+#: object-name.c:1794
#, c-format
msgid "path '%s' exists on disk, but not in '%.*s'"
msgstr "ç£ç¢Ÿä¸Šå­˜åœ¨ '%s' 路徑,但ä¸å­˜åœ¨æ–¼ '%.*s'"
-#: object-name.c:1702
+#: object-name.c:1800
#, c-format
msgid ""
"path '%s' exists, but not '%s'\n"
@@ -5743,12 +5940,12 @@ msgstr ""
"'%s' 路徑存在,但ä¸æ˜¯ '%s'\n"
"æ示:你在說 '%.*s:%s'ï¼Œå³ '%.*s:./%s' 嗎?"
-#: object-name.c:1711
+#: object-name.c:1809
#, c-format
msgid "path '%s' does not exist in '%.*s'"
msgstr "'%s' 路徑ä¸å­˜åœ¨æ–¼ '%.*s'"
-#: object-name.c:1739
+#: object-name.c:1837
#, c-format
msgid ""
"path '%s' is in the index, but not at stage %d\n"
@@ -5757,7 +5954,7 @@ msgstr ""
"'%s' 路徑在索引,但ä¸åœ¨ %d æš«å­˜å€\n"
"æ示:你在說 ':%d:%s' 嗎?"
-#: object-name.c:1755
+#: object-name.c:1853
#, c-format
msgid ""
"path '%s' is in the index, but not '%s'\n"
@@ -5766,21 +5963,26 @@ msgstr ""
"'%s' 路徑在索引,但ä¸æ˜¯ '%s'\n"
"æ示:你在說 ':%d:%s'ï¼Œå³ ':%d:%s' 嗎?"
-#: object-name.c:1763
+#: object-name.c:1861
#, c-format
msgid "path '%s' exists on disk, but not in the index"
msgstr "ç£ç¢Ÿä¸Šå­˜åœ¨ '%s' 路徑,但ä¸åœ¨ç´¢å¼•ä¸­"
-#: object-name.c:1765
+#: object-name.c:1863
#, c-format
msgid "path '%s' does not exist (neither on disk nor in the index)"
msgstr "'%s' 路徑ä¸å­˜åœ¨ (æ—¢ä¸å­˜åœ¨ç£ç¢Ÿï¼Œä¹Ÿä¸å­˜åœ¨ç´¢å¼•)"
-#: object-name.c:1778
+#: object-name.c:1876
msgid "relative path syntax can't be used outside working tree"
msgstr "相å°è·¯å¾‘與法ä¸èƒ½ç”¨åœ¨å·¥ä½œå€å¤–"
-#: object-name.c:1916
+#: object-name.c:1901
+#, c-format
+msgid "<object>:<path> required, only <object> '%s' given"
+msgstr "需è¦æŒ‡å®š <object>:<path>,å»åªæŒ‡å®š <object>「%sã€"
+
+#: object-name.c:2014
#, c-format
msgid "invalid object name '%.*s'."
msgstr "'%.*s' 物件å稱無效。"
@@ -5805,7 +6007,7 @@ msgstr "物件 %s 有未知的類型 id %d"
msgid "unable to parse object: %s"
msgstr "ä¸èƒ½è§£æžç‰©ä»¶ï¼š%s"
-#: object.c:283 object.c:295
+#: object.c:283 object.c:294
#, c-format
msgid "hash mismatch %s"
msgstr "雜湊值與 %s ä¸ç¬¦åˆ"
@@ -5814,21 +6016,21 @@ msgstr "雜湊值與 %s ä¸ç¬¦åˆ"
msgid "multi-pack bitmap is missing required reverse index"
msgstr "多包ä½åœ–缺少需è¦çš„åå‘索引"
-#: pack-bitmap.c:429
+#: pack-bitmap.c:433
msgid "load_reverse_index: could not open pack"
msgstr "load_reverse_index:無法開啟包"
-#: pack-bitmap.c:1069 pack-bitmap.c:1075 builtin/pack-objects.c:2424
+#: pack-bitmap.c:1072 pack-bitmap.c:1078 builtin/pack-objects.c:2432
#, c-format
msgid "unable to get size of %s"
msgstr "ä¸èƒ½å¾—到 %s 的大å°"
-#: pack-bitmap.c:1935
+#: pack-bitmap.c:1937
#, c-format
msgid "could not find %s in pack %s at offset %<PRIuMAX>"
msgstr "找ä¸åˆ° %2$s 包,å移ä½ç½® %3$<PRIuMAX> çš„ %1$s"
-#: pack-bitmap.c:1971 builtin/rev-list.c:92
+#: pack-bitmap.c:1973 builtin/rev-list.c:91
#, c-format
msgid "unable to get disk usage of %s"
msgstr "無法å–å¾— %s çš„ç£ç¢Ÿç”¨é‡"
@@ -5872,7 +6074,7 @@ msgstr "無法 stat:%s"
msgid "failed to make %s readable"
msgstr "無法讓 %s 能夠寫入"
-#: pack-write.c:520
+#: pack-write.c:521
#, c-format
msgid "could not write '%s' promisor file"
msgstr "無法寫入「%sã€promisor 檔案"
@@ -6207,84 +6409,84 @@ msgstr "object-info:引數後é æœŸè¦æœ‰ flush"
msgid "Removing duplicate objects"
msgstr "正在刪除é‡è¤‡ç‰©ä»¶"
-#: range-diff.c:67
+#: range-diff.c:68
msgid "could not start `log`"
msgstr "ä¸èƒ½å•Ÿå‹• `log`"
-#: range-diff.c:69
+#: range-diff.c:70
msgid "could not read `log` output"
msgstr "ä¸èƒ½è®€å– `log` 的輸出"
-#: range-diff.c:97 sequencer.c:5602
+#: range-diff.c:98 sequencer.c:5575
#, c-format
msgid "could not parse commit '%s'"
msgstr "ä¸èƒ½è§£æžæ交 '%s'"
-#: range-diff.c:111
+#: range-diff.c:109
#, c-format
msgid ""
"could not parse first line of `log` output: did not start with 'commit ': "
"'%s'"
msgstr "無法解æžç¬¬ä¸€è¡Œã€Œlogã€è¼¸å‡ºï¼šé–‹é ­ä¸æ˜¯ã€Œcommitã€ï¼šã€Œ%sã€"
-#: range-diff.c:137
+#: range-diff.c:132
#, c-format
msgid "could not parse git header '%.*s'"
msgstr "ç„¡æ³•è§£æž git é ­ '%.*s'"
-#: range-diff.c:304
+#: range-diff.c:300
msgid "failed to generate diff"
msgstr "ç”Ÿæˆ diff 失敗"
-#: range-diff.c:562 range-diff.c:564
+#: range-diff.c:558 range-diff.c:560
#, c-format
msgid "could not parse log for '%s'"
msgstr "ä¸èƒ½è§£æž '%s' 的日誌"
-#: read-cache.c:723
+#: read-cache.c:737
#, c-format
msgid "will not add file alias '%s' ('%s' already exists in index)"
msgstr "å°‡ä¸æœƒæ–°å¢žæª”案別å '%s'('%s' 已經存在於索引中)"
-#: read-cache.c:739
+#: read-cache.c:753
msgid "cannot create an empty blob in the object database"
msgstr "ä¸èƒ½åœ¨ç‰©ä»¶è³‡æ–™åº«ä¸­å»ºç«‹ç©ºçš„資料物件"
-#: read-cache.c:761
+#: read-cache.c:775
#, c-format
msgid "%s: can only add regular files, symbolic links or git-directories"
msgstr "%s:åªèƒ½æ–°å¢žä¸€èˆ¬æª”案ã€ç¬¦è™Ÿé€£çµæˆ– git 目錄"
-#: read-cache.c:766 builtin/submodule--helper.c:3242
+#: read-cache.c:780 builtin/submodule--helper.c:3359
#, c-format
msgid "'%s' does not have a commit checked out"
msgstr "'%s' 沒有簽出一個æ交"
-#: read-cache.c:818
+#: read-cache.c:832
#, c-format
msgid "unable to index file '%s'"
msgstr "無法索引檔案 '%s'"
-#: read-cache.c:837
+#: read-cache.c:851
#, c-format
msgid "unable to add '%s' to index"
msgstr "無法在索引中新增 '%s'"
-#: read-cache.c:848
+#: read-cache.c:862
#, c-format
msgid "unable to stat '%s'"
msgstr "ç„¡æ³•å° %s 執行 stat"
-#: read-cache.c:1386
+#: read-cache.c:1404
#, c-format
msgid "'%s' appears as both a file and as a directory"
msgstr "'%s' 看起來既是檔案åˆæ˜¯ç›®éŒ„"
-#: read-cache.c:1601
+#: read-cache.c:1619
msgid "Refresh index"
msgstr "é‡æ–°æ•´ç†ç´¢å¼•"
-#: read-cache.c:1733
+#: read-cache.c:1751
#, c-format
msgid ""
"index.version set, but the value is invalid.\n"
@@ -6293,7 +6495,7 @@ msgstr ""
"設定了 index.version,但是å–值無效。\n"
"使用版本 %i"
-#: read-cache.c:1743
+#: read-cache.c:1761
#, c-format
msgid ""
"GIT_INDEX_VERSION set, but the value is invalid.\n"
@@ -6302,144 +6504,148 @@ msgstr ""
"設定了 GIT_INDEX_VERSION,但是å–值無效。\n"
"使用版本 %i"
-#: read-cache.c:1799
+#: read-cache.c:1817
#, c-format
msgid "bad signature 0x%08x"
msgstr "壞的簽å 0x%08x"
-#: read-cache.c:1802
+#: read-cache.c:1820
#, c-format
msgid "bad index version %d"
msgstr "壞的索引版本 %d"
-#: read-cache.c:1811
+#: read-cache.c:1829
msgid "bad index file sha1 signature"
msgstr "壞的索引檔案 sha1 ç°½å"
-#: read-cache.c:1845
+#: read-cache.c:1863
#, c-format
msgid "index uses %.4s extension, which we do not understand"
msgstr "索引使用ä¸è¢«æ”¯æ´çš„ %.4s 副檔å"
#
-#: read-cache.c:1847
+#: read-cache.c:1865
#, c-format
msgid "ignoring %.4s extension"
msgstr "忽略 %.4s 副檔å"
-#: read-cache.c:1884
+#: read-cache.c:1902
#, c-format
msgid "unknown index entry format 0x%08x"
msgstr "未知的索引æ¢ç›®æ ¼å¼ 0x%08x"
-#: read-cache.c:1900
+#: read-cache.c:1918
#, c-format
msgid "malformed name field in the index, near path '%s'"
msgstr "索引中é è¿‘路徑 '%s' 有錯誤的å稱欄ä½"
-#: read-cache.c:1957
+#: read-cache.c:1975
msgid "unordered stage entries in index"
msgstr "索引中有未排åºçš„æš«å­˜æ¢ç›®"
-#: read-cache.c:1960
+#: read-cache.c:1978
#, c-format
msgid "multiple stage entries for merged file '%s'"
msgstr "åˆä½µæª”案 '%s' 有多個暫存æ¢ç›®"
-#: read-cache.c:1963
+#: read-cache.c:1981
#, c-format
msgid "unordered stage entries for '%s'"
msgstr "'%s' 的未排åºæš«å­˜æ¢ç›®"
-#: read-cache.c:2078 read-cache.c:2384 rerere.c:549 rerere.c:583 rerere.c:1095
-#: submodule.c:1662 builtin/add.c:600 builtin/check-ignore.c:183
-#: builtin/checkout.c:527 builtin/checkout.c:719 builtin/clean.c:1013
-#: builtin/commit.c:378 builtin/diff-tree.c:122 builtin/grep.c:519
-#: builtin/mv.c:148 builtin/reset.c:499 builtin/rm.c:293
-#: builtin/submodule--helper.c:327 builtin/submodule--helper.c:3202
+#: read-cache.c:2096 read-cache.c:2402 rerere.c:549 rerere.c:583 rerere.c:1096
+#: submodule.c:1831 builtin/add.c:586 builtin/check-ignore.c:183
+#: builtin/checkout.c:532 builtin/checkout.c:724 builtin/clean.c:1016
+#: builtin/commit.c:379 builtin/diff-tree.c:122 builtin/grep.c:521
+#: builtin/mv.c:148 builtin/reset.c:506 builtin/rm.c:293
+#: builtin/submodule--helper.c:335 builtin/submodule--helper.c:3319
msgid "index file corrupt"
msgstr "索引檔案æ壞"
-#: read-cache.c:2222
+#: read-cache.c:2240
#, c-format
msgid "unable to create load_cache_entries thread: %s"
msgstr "無法建立 load_cache_entries 執行緒:%s"
-#: read-cache.c:2235
+#: read-cache.c:2253
#, c-format
msgid "unable to join load_cache_entries thread: %s"
msgstr "無法加入 load_cache_entries 執行緒:%s"
-#: read-cache.c:2268
+#: read-cache.c:2286
#, c-format
msgid "%s: index file open failed"
msgstr "%s:開啟索引檔案失敗"
-#: read-cache.c:2272
+#: read-cache.c:2290
#, c-format
msgid "%s: cannot stat the open index"
msgstr "%s:ä¸èƒ½å°é–‹å•Ÿçš„索引執行 stat 動作"
-#: read-cache.c:2276
+#: read-cache.c:2294
#, c-format
msgid "%s: index file smaller than expected"
msgstr "%s:索引檔案比é æœŸçš„å°"
-#: read-cache.c:2280
+#: read-cache.c:2298
#, c-format
msgid "%s: unable to map index file%s"
msgstr "%s:無法 map 索引檔案%s"
-#: read-cache.c:2323
+#: read-cache.c:2341
#, c-format
msgid "unable to create load_index_extensions thread: %s"
msgstr "無法建立 load_index_extensions 執行緒:%s"
-#: read-cache.c:2350
+#: read-cache.c:2368
#, c-format
msgid "unable to join load_index_extensions thread: %s"
msgstr "無法加入 load_index_extensions 執行緒:%s"
-#: read-cache.c:2396
+#: read-cache.c:2414
#, c-format
msgid "could not freshen shared index '%s'"
msgstr "無法é‡æ–°æ•´ç†å…±äº«ç´¢å¼• '%s'"
-#: read-cache.c:2455
+#: read-cache.c:2473
#, c-format
msgid "broken index, expect %s in %s, got %s"
msgstr "æ壞的索引,期望在 %2$s 中的 %1$s,得到 %3$s"
-#: read-cache.c:3086 strbuf.c:1191 wrapper.c:641 builtin/merge.c:1150
+#: read-cache.c:3032
+msgid "cannot write split index for a sparse index"
+msgstr "無法寫入稀ç–索引的索引分割"
+
+#: read-cache.c:3114 strbuf.c:1192 wrapper.c:717 builtin/merge.c:1156
#, c-format
msgid "could not close '%s'"
msgstr "ä¸èƒ½é—œé–‰ '%s'"
-#: read-cache.c:3129
+#: read-cache.c:3157
msgid "failed to convert to a sparse-index"
msgstr "無法轉æ›æˆç¨€ç–索引"
-#: read-cache.c:3200
+#: read-cache.c:3228
#, c-format
msgid "could not stat '%s'"
msgstr "ä¸èƒ½å° '%s' å‘¼å« stat"
-#: read-cache.c:3213
+#: read-cache.c:3241
#, c-format
msgid "unable to open git dir: %s"
msgstr "ä¸èƒ½é–‹å•Ÿ git 目錄:%s"
-#: read-cache.c:3225
+#: read-cache.c:3253
#, c-format
msgid "unable to unlink: %s"
msgstr "無法刪除:%s"
-#: read-cache.c:3254
+#: read-cache.c:3282
#, c-format
msgid "cannot fix permission bits on '%s'"
msgstr "ä¸èƒ½ä¿®å¾© '%s' 的權é™ä½"
-#: read-cache.c:3411
+#: read-cache.c:3439
#, c-format
msgid "%s: cannot drop to stage #0"
msgstr "%s:ä¸èƒ½è½åˆ°æš«å­˜å€ #0"
@@ -6550,9 +6756,9 @@ msgstr ""
"然而,如果您刪除全部內容,é‡å®šåŸºåº•å‹•ä½œå°‡æœƒçµ‚止。\n"
"\n"
-#: rebase-interactive.c:113 rerere.c:469 rerere.c:676 sequencer.c:3883
-#: sequencer.c:3909 sequencer.c:5708 builtin/fsck.c:328 builtin/gc.c:1791
-#: builtin/rebase.c:190
+#: rebase-interactive.c:113 rerere.c:469 rerere.c:677 sequencer.c:3879
+#: sequencer.c:3905 sequencer.c:5681 builtin/fsck.c:328 builtin/gc.c:1791
+#: builtin/rebase.c:191
#, c-format
msgid "could not write '%s'"
msgstr "ä¸èƒ½å¯«å…¥ '%s'"
@@ -6592,7 +6798,7 @@ msgstr ""
msgid "%s: 'preserve' superseded by 'merges'"
msgstr "%s:「preserveã€å·²ç¶“改æˆã€Œmergesã€"
-#: ref-filter.c:42 wt-status.c:2048
+#: ref-filter.c:42 wt-status.c:2057
msgid "gone"
msgstr "éºå¤±"
@@ -6758,81 +6964,91 @@ msgstr "本命令拒絕 atom %%(%.*s)"
msgid "--format=%.*s cannot be used with --python, --shell, --tcl"
msgstr "--format=%.*s ä¸èƒ½å’Œ --pythonã€--shellã€--tcl 一起使用"
-#: ref-filter.c:1706
+#: ref-filter.c:1707
#, c-format
msgid "(no branch, rebasing %s)"
msgstr "(無分支,é‡å®š %s 的基底)"
-#: ref-filter.c:1709
+#: ref-filter.c:1710
#, c-format
msgid "(no branch, rebasing detached HEAD %s)"
msgstr "(無分支,é‡å®š %s 分離開頭指標的基底)"
-#: ref-filter.c:1712
+#: ref-filter.c:1713
#, c-format
msgid "(no branch, bisect started on %s)"
msgstr "(無分支,二分æœå°‹å¾ž %s 開始)"
-#: ref-filter.c:1716
+#: ref-filter.c:1717
#, c-format
msgid "(HEAD detached at %s)"
msgstr "(開頭指標分離於 %s)"
-#: ref-filter.c:1719
+#: ref-filter.c:1720
#, c-format
msgid "(HEAD detached from %s)"
msgstr "(開頭指標分離自 %s)"
-#: ref-filter.c:1722
+#: ref-filter.c:1723
msgid "(no branch)"
msgstr "(無分支)"
-#: ref-filter.c:1754 ref-filter.c:1972
+#: ref-filter.c:1755 ref-filter.c:1973
#, c-format
msgid "missing object %s for %s"
msgstr "缺少 %2$s 的物件 %1$s"
-#: ref-filter.c:1764
+#: ref-filter.c:1765
#, c-format
msgid "parse_object_buffer failed on %s for %s"
msgstr "parse_object_buffer 失敗於 %2$s 的 %1$s"
-#: ref-filter.c:2155
+#: ref-filter.c:2156
#, c-format
msgid "malformed object at '%s'"
msgstr "æ ¼å¼éŒ¯èª¤çš„物件 '%s'"
-#: ref-filter.c:2245
+#: ref-filter.c:2246
#, c-format
msgid "ignoring ref with broken name %s"
msgstr "忽略帶有錯誤å稱 %s 的引用"
-#: ref-filter.c:2250 refs.c:676
+#: ref-filter.c:2251 refs.c:672
#, c-format
msgid "ignoring broken ref %s"
msgstr "忽略æ壞的引用 %s"
-#: ref-filter.c:2629
+#: ref-filter.c:2630
#, c-format
msgid "format: %%(end) atom missing"
msgstr "æ ¼å¼ï¼šç¼ºå°‘ %%(end) 元素"
-#: ref-filter.c:2740
+#: ref-filter.c:2741
#, c-format
msgid "malformed object name %s"
msgstr "æ ¼å¼éŒ¯èª¤çš„物件å %s"
-#: ref-filter.c:2745
+#: ref-filter.c:2746
#, c-format
msgid "option `%s' must point to a commit"
msgstr "é¸é … `%s' 必須指å‘一個æ交"
-#: refs.c:261
+#: reflog.c:407
+#, c-format
+msgid "not a reflog: %s"
+msgstr "ä¸æ˜¯å¼•ç”¨æ—¥èªŒï¼š%s"
+
+#: reflog.c:410
+#, c-format
+msgid "no reflog for '%s'"
+msgstr "沒有 '%s' 的引用日誌"
+
+#: refs.c:262
#, c-format
msgid "%s does not point to a valid object!"
msgstr "%s 沒有指å‘一個有效的物件ï¼"
-#: refs.c:563
+#: refs.c:561
#, c-format
msgid ""
"Using '%s' as the name for the initial branch. This default branch name\n"
@@ -6857,81 +7073,81 @@ msgstr ""
"\n"
"\tgit branch -m <name>\n"
-#: refs.c:585
+#: refs.c:583
#, c-format
msgid "could not retrieve `%s`"
msgstr "無法擷å–「%sã€"
-#: refs.c:595
+#: refs.c:593
#, c-format
msgid "invalid branch name: %s = %s"
msgstr "分支å稱無效:%s = %s"
-#: refs.c:674
+#: refs.c:670
#, c-format
msgid "ignoring dangling symref %s"
msgstr "忽略懸空符號引用 %s"
-#: refs.c:925
+#: refs.c:919
#, c-format
msgid "log for ref %s has gap after %s"
msgstr "引用 %s 的日誌在 %s 之後有缺å£"
-#: refs.c:932
+#: refs.c:926
#, c-format
msgid "log for ref %s unexpectedly ended on %s"
msgstr "引用 %s 的日誌æ„外終止於 %s"
-#: refs.c:997
+#: refs.c:991
#, c-format
msgid "log for %s is empty"
msgstr "%s 的日誌為空"
-#: refs.c:1090
+#: refs.c:1086
#, c-format
msgid "refusing to update ref with bad name '%s'"
msgstr "拒絕更新有錯誤å稱 '%s' 的引用"
-#: refs.c:1168
+#: refs.c:1164
#, c-format
msgid "update_ref failed for ref '%s': %s"
msgstr "å°å¼•ç”¨ '%s' 執行 update_ref 失敗:%s"
-#: refs.c:2067
+#: refs.c:2059
#, c-format
msgid "multiple updates for ref '%s' not allowed"
msgstr "ä¸å…許å°å¼•ç”¨ '%s' 多次更新"
-#: refs.c:2150
+#: refs.c:2145
msgid "ref updates forbidden inside quarantine environment"
msgstr "在隔離環境中ç¦æ­¢æ›´æ–°å¼•ç”¨"
-#: refs.c:2161
+#: refs.c:2156
msgid "ref updates aborted by hook"
msgstr "引用更新被掛鉤拒絕"
-#: refs.c:2269 refs.c:2299
+#: refs.c:2264 refs.c:2294
#, c-format
msgid "'%s' exists; cannot create '%s'"
msgstr "'%s' 已存在,無法建立 '%s'"
-#: refs.c:2275 refs.c:2310
+#: refs.c:2270 refs.c:2305
#, c-format
msgid "cannot process '%s' and '%s' at the same time"
msgstr "無法åŒæ™‚è™•ç† '%s' å’Œ '%s'"
-#: refs/files-backend.c:1267
+#: refs/files-backend.c:1295
#, c-format
msgid "could not remove reference %s"
msgstr "無法刪除引用 %s"
-#: refs/files-backend.c:1281 refs/packed-backend.c:1549
-#: refs/packed-backend.c:1559
+#: refs/files-backend.c:1310 refs/packed-backend.c:1565
+#: refs/packed-backend.c:1575
#, c-format
msgid "could not delete reference %s: %s"
msgstr "無法刪除引用 %s:%s"
-#: refs/files-backend.c:1284 refs/packed-backend.c:1562
+#: refs/files-backend.c:1313 refs/packed-backend.c:1578
#, c-format
msgid "could not delete references: %s"
msgstr "無法刪除引用:%s"
@@ -6954,37 +7170,37 @@ msgstr "æ供了一個以上的 receivepack,使用第一個"
msgid "more than one uploadpack given, using the first"
msgstr "æ供了一個以上的 uploadpack,使用第一個"
-#: remote.c:699
+#: remote.c:698
#, c-format
msgid "Cannot fetch both %s and %s to %s"
msgstr "ä¸èƒ½åŒæ™‚å–å¾— %s å’Œ %s 至 %s"
-#: remote.c:703
+#: remote.c:702
#, c-format
msgid "%s usually tracks %s, not %s"
msgstr "%s 通常追蹤 %sï¼Œè€Œéž %s"
-#: remote.c:707
+#: remote.c:706
#, c-format
msgid "%s tracks both %s and %s"
msgstr "%s åŒæ™‚追蹤 %s å’Œ %s"
-#: remote.c:775
+#: remote.c:774
#, c-format
msgid "key '%s' of pattern had no '*'"
msgstr "模å¼çš„éµ '%s' 沒有 '*'"
-#: remote.c:785
+#: remote.c:784
#, c-format
msgid "value '%s' of pattern has no '*'"
msgstr "模å¼çš„值 '%s' 沒有 '*'"
-#: remote.c:1192
+#: remote.c:1191
#, c-format
msgid "src refspec %s does not match any"
msgstr "來æºå¼•ç”¨è¦æ ¼ %s 沒有符åˆé …ç›®"
-#: remote.c:1197
+#: remote.c:1196
#, c-format
msgid "src refspec %s matches more than one"
msgstr "來æºå¼•ç”¨è¦æ ¼ %s 符åˆè¶…éŽä¸€å€‹"
@@ -6993,7 +7209,7 @@ msgstr "來æºå¼•ç”¨è¦æ ¼ %s 符åˆè¶…éŽä¸€å€‹"
#. <remote> <src>:<dst>" push, and "being pushed ('%s')" is
#. the <src>.
#.
-#: remote.c:1212
+#: remote.c:1211
#, c-format
msgid ""
"The destination you provided is not a full refname (i.e.,\n"
@@ -7015,7 +7231,7 @@ msgstr ""
"\n"
"由於這些猜測都ä¸æ­£ç¢ºï¼Œæˆ‘們放棄了。您必須給出完整引用。"
-#: remote.c:1232
+#: remote.c:1231
#, c-format
msgid ""
"The <src> part of the refspec is a commit object.\n"
@@ -7026,7 +7242,7 @@ msgstr ""
"您是想é€éŽæŽ¨é€è‡³ã€Œ%s:refs/heads/%sã€\n"
"來建立新分支嗎?"
-#: remote.c:1237
+#: remote.c:1236
#, c-format
msgid ""
"The <src> part of the refspec is a tag object.\n"
@@ -7037,7 +7253,7 @@ msgstr ""
"您是想é€éŽæŽ¨é€è‡³ã€Œ%s:refs/tags/%sã€\n"
"來建立新標籤嗎?"
-#: remote.c:1242
+#: remote.c:1241
#, c-format
msgid ""
"The <src> part of the refspec is a tree object.\n"
@@ -7048,7 +7264,7 @@ msgstr ""
"您是想é€éŽæŽ¨é€è‡³ã€Œ%s:refs/tags/%sã€\n"
"為新樹狀物件貼上標籤嗎?"
-#: remote.c:1247
+#: remote.c:1246
#, c-format
msgid ""
"The <src> part of the refspec is a blob object.\n"
@@ -7059,113 +7275,113 @@ msgstr ""
"您是想é€éŽæŽ¨é€è‡³ã€Œ%s:refs/tags/%sã€\n"
"為新資料物件貼上標籤嗎?"
-#: remote.c:1283
+#: remote.c:1282
#, c-format
msgid "%s cannot be resolved to branch"
msgstr "%s 無法被解æžç‚ºåˆ†æ”¯"
-#: remote.c:1294
+#: remote.c:1293
#, c-format
msgid "unable to delete '%s': remote ref does not exist"
msgstr "無法刪除 '%s':é ç«¯å¼•ç”¨ä¸å­˜åœ¨"
-#: remote.c:1306
+#: remote.c:1305
#, c-format
msgid "dst refspec %s matches more than one"
msgstr "目的地引用è¦æ ¼ %s 符åˆè¶…éŽä¸€å€‹"
-#: remote.c:1313
+#: remote.c:1312
#, c-format
msgid "dst ref %s receives from more than one src"
msgstr "目的地引用 %s 接收超éŽä¸€å€‹ä¾†æº"
-#: remote.c:1834 remote.c:1941
+#: remote.c:1833 remote.c:1940
msgid "HEAD does not point to a branch"
msgstr "HEAD 沒有指å‘一個分支"
-#: remote.c:1843
+#: remote.c:1842
#, c-format
msgid "no such branch: '%s'"
msgstr "沒有此分支:'%s'"
-#: remote.c:1846
+#: remote.c:1845
#, c-format
msgid "no upstream configured for branch '%s'"
msgstr "尚未給分支 '%s' 設定上游"
-#: remote.c:1852
+#: remote.c:1851
#, c-format
msgid "upstream branch '%s' not stored as a remote-tracking branch"
msgstr "上游分支 '%s' 沒有儲存為一個é ç«¯è¿½è¹¤åˆ†æ”¯"
-#: remote.c:1867
+#: remote.c:1866
#, c-format
msgid "push destination '%s' on remote '%s' has no local tracking branch"
msgstr "推é€ç›®çš„地 '%s' 至é ç«¯ '%s' 沒有本機追蹤分支"
-#: remote.c:1882
+#: remote.c:1881
#, c-format
msgid "branch '%s' has no remote for pushing"
msgstr "分支 '%s' 沒有設定è¦æŽ¨é€çš„é ç«¯ä¼ºæœå™¨"
-#: remote.c:1892
+#: remote.c:1891
#, c-format
msgid "push refspecs for '%s' do not include '%s'"
msgstr "å‘ '%s' 推é€å¼•ç”¨è¦æ ¼æœªåŒ…å« '%s'"
-#: remote.c:1905
+#: remote.c:1904
msgid "push has no destination (push.default is 'nothing')"
msgstr "推é€æ²’有目的地(push.default 是 'nothing')"
-#: remote.c:1927
+#: remote.c:1926
msgid "cannot resolve 'simple' push to a single destination"
msgstr "ç„¡æ³•è§£æž 'simple' 推é€è‡³å–®ç¨ç›®çš„地"
-#: remote.c:2060
+#: remote.c:2059
#, c-format
msgid "couldn't find remote ref %s"
msgstr "無法找到é ç«¯å¼•ç”¨ %s"
-#: remote.c:2073
+#: remote.c:2072
#, c-format
msgid "* Ignoring funny ref '%s' locally"
msgstr "* 在本機忽略å¯ç¬‘的引用 '%s'"
-#: remote.c:2236
+#: remote.c:2235
#, c-format
msgid "Your branch is based on '%s', but the upstream is gone.\n"
msgstr "您的分支基於 '%s',但此上游分支已經ä¸å­˜åœ¨ã€‚\n"
-#: remote.c:2240
+#: remote.c:2239
msgid " (use \"git branch --unset-upstream\" to fixup)\n"
msgstr " (使用 \"git branch --unset-upstream\" 來修復)\n"
-#: remote.c:2243
+#: remote.c:2242
#, c-format
msgid "Your branch is up to date with '%s'.\n"
msgstr "您的分支與上游分支 '%s' 一致。\n"
-#: remote.c:2247
+#: remote.c:2246
#, c-format
msgid "Your branch and '%s' refer to different commits.\n"
msgstr "您的分支和 '%s' 指å‘ä¸åŒçš„æ交。\n"
-#: remote.c:2250
+#: remote.c:2249
#, c-format
msgid " (use \"%s\" for details)\n"
msgstr " (使用 \"%s\" 檢視詳情)\n"
-#: remote.c:2254
+#: remote.c:2253
#, c-format
msgid "Your branch is ahead of '%s' by %d commit.\n"
msgid_plural "Your branch is ahead of '%s' by %d commits.\n"
msgstr[0] "您的分支領先 '%s' å…± %d 個æ交。\n"
-#: remote.c:2260
+#: remote.c:2259
msgid " (use \"git push\" to publish your local commits)\n"
msgstr " (使用 \"git push\" 來發布您的本機æ交)\n"
-#: remote.c:2263
+#: remote.c:2262
#, c-format
msgid "Your branch is behind '%s' by %d commit, and can be fast-forwarded.\n"
msgid_plural ""
@@ -7173,11 +7389,11 @@ msgid_plural ""
msgstr[0] "您的分支è½å¾Œ '%s' å…± %d 個æ交,並且å¯ä»¥å¿«è½‰ã€‚\n"
# 譯者:請維æŒå‰å°Žç©ºæ ¼
-#: remote.c:2271
+#: remote.c:2270
msgid " (use \"git pull\" to update your local branch)\n"
msgstr " (使用 \"git pull\" 來更新您的本機分支)\n"
-#: remote.c:2274
+#: remote.c:2273
#, c-format
msgid ""
"Your branch and '%s' have diverged,\n"
@@ -7190,11 +7406,11 @@ msgstr[0] ""
"並且分別有 %d å’Œ %d 處ä¸åŒçš„æ交。\n"
# 譯者:請維æŒå‰å°Žç©ºæ ¼
-#: remote.c:2284
+#: remote.c:2283
msgid " (use \"git pull\" to merge the remote branch into yours)\n"
msgstr " (使用 \"git pull\" 來åˆä½µé ç«¯åˆ†æ”¯ï¼‰\n"
-#: remote.c:2476
+#: remote.c:2475
#, c-format
msgid "cannot parse expected object name '%s'"
msgstr "無法解æžæœŸæœ›çš„物件å '%s'"
@@ -7230,106 +7446,110 @@ msgstr "寫入 '%s' (%s) 時發生錯誤"
#: rerere.c:482 builtin/gc.c:2263 builtin/gc.c:2298
#, c-format
msgid "failed to flush '%s'"
-msgstr "é‡æ–°æ•´ç† '%s' 失敗"
+msgstr "排清 '%s' 失敗"
-#: rerere.c:487 rerere.c:1023
+#: rerere.c:487 rerere.c:1024
#, c-format
msgid "could not parse conflict hunks in '%s'"
msgstr "ä¸èƒ½è§£æž '%s' 中的è¡çªå€å¡Š"
-#: rerere.c:668
+#: rerere.c:669
#, c-format
msgid "failed utime() on '%s'"
msgstr "在 '%s' ä¸Šå‘¼å« utime() 失敗"
-#: rerere.c:678
+#: rerere.c:679
#, c-format
msgid "writing '%s' failed"
msgstr "寫入 '%s' 失敗"
-#: rerere.c:698
+#: rerere.c:699
#, c-format
msgid "Staged '%s' using previous resolution."
msgstr "使用之å‰çš„解決方案暫存 '%s'。"
-#: rerere.c:737
+#: rerere.c:738
#, c-format
msgid "Recorded resolution for '%s'."
msgstr "已記錄 '%s' 的解決方案。"
-#: rerere.c:772
+#: rerere.c:773
#, c-format
msgid "Resolved '%s' using previous resolution."
msgstr "使用之å‰çš„解決方案解決 '%s'。"
-#: rerere.c:787
+#: rerere.c:788
#, c-format
msgid "cannot unlink stray '%s'"
msgstr "ä¸èƒ½åˆªé™¤ stray '%s'"
-#: rerere.c:791
+#: rerere.c:792
#, c-format
msgid "Recorded preimage for '%s'"
msgstr "為 '%s' 記錄 preimage"
-#: rerere.c:865 submodule.c:2121 builtin/log.c:2017
-#: builtin/submodule--helper.c:1777 builtin/submodule--helper.c:1820
+#: rerere.c:866 submodule.c:2290 builtin/log.c:2042
+#: builtin/submodule--helper.c:1786 builtin/submodule--helper.c:1833
#, c-format
msgid "could not create directory '%s'"
msgstr "ä¸èƒ½å»ºç«‹ç›®éŒ„ '%s'"
-#: rerere.c:1041
+#: rerere.c:1042
#, c-format
msgid "failed to update conflicted state in '%s'"
msgstr "æ›´æ–° '%s' 中的è¡çªç‹€æ…‹å¤±æ•—"
-#: rerere.c:1052 rerere.c:1059
+#: rerere.c:1053 rerere.c:1060
#, c-format
msgid "no remembered resolution for '%s'"
msgstr "沒有為 '%s' 記憶的解決方案"
-#: rerere.c:1061
+#: rerere.c:1062
#, c-format
msgid "cannot unlink '%s'"
msgstr "ä¸èƒ½åˆªé™¤ '%s'"
-#: rerere.c:1071
+#: rerere.c:1072
#, c-format
msgid "Updated preimage for '%s'"
msgstr "已為 '%s' 更新 preimage"
-#: rerere.c:1080
+#: rerere.c:1081
#, c-format
msgid "Forgot resolution for '%s'\n"
msgstr "忘記 '%s' 的解決方案\n"
-#: rerere.c:1191
+#: rerere.c:1192
msgid "unable to open rr-cache directory"
msgstr "ä¸èƒ½é–‹å•Ÿ rr-cache 目錄"
-#: reset.c:42
+#: reset.c:112
msgid "could not determine HEAD revision"
msgstr "ä¸èƒ½ç¢ºå®š HEAD 版本"
-#: reset.c:70 reset.c:76 sequencer.c:3700
+#: reset.c:141 reset.c:147 sequencer.c:3696
#, c-format
msgid "failed to find tree of %s"
msgstr "無法找到 %s 指å‘的樹"
-#: revision.c:2347
+#: revision.c:2358
msgid "--unpacked=<packfile> no longer supported"
msgstr "--unpacked=<packfile> å·²ä¸å—支æ´"
-#: revision.c:2686
+#: revision.c:2712
msgid "your current branch appears to be broken"
msgstr "您的目å‰åˆ†æ”¯å¥½åƒè¢«æ壞"
-#: revision.c:2689
+#: revision.c:2715
#, c-format
msgid "your current branch '%s' does not have any commits yet"
msgstr "您的目å‰åˆ†æ”¯ '%s' 尚無任何æ交"
-#: revision.c:2891
+#: revision.c:2901
+msgid "object filtering requires --objects"
+msgstr "物件éŽæ¿¾éœ€è¦ --objects"
+
+#: revision.c:2918
msgid "-L does not yet support diff formats besides -p and -s"
msgstr "-L å°šä¸æ”¯æ´ -p å’Œ -s 之外的差異格å¼"
@@ -7396,7 +7616,7 @@ msgstr "無效的æ交說明清ç†æ¨¡å¼ '%s'"
msgid "could not delete '%s'"
msgstr "無法刪除 '%s'"
-#: sequencer.c:345 sequencer.c:4751 builtin/rebase.c:563 builtin/rebase.c:1297
+#: sequencer.c:345 sequencer.c:4724 builtin/rebase.c:564 builtin/rebase.c:1326
#: builtin/rm.c:409
#, c-format
msgid "could not remove '%s'"
@@ -7459,13 +7679,13 @@ msgstr ""
"è‹¥è¦å–消並返回 \"git revert\" å‰çš„狀態,\n"
"請執行 \"git revert --abort\"。"
-#: sequencer.c:448 sequencer.c:3292
+#: sequencer.c:448 sequencer.c:3288
#, c-format
msgid "could not lock '%s'"
msgstr "ä¸èƒ½éŽ–定 '%s'"
-#: sequencer.c:450 sequencer.c:3091 sequencer.c:3296 sequencer.c:3310
-#: sequencer.c:3561 sequencer.c:5618 strbuf.c:1188 wrapper.c:639
+#: sequencer.c:450 sequencer.c:3087 sequencer.c:3292 sequencer.c:3306
+#: sequencer.c:3557 sequencer.c:5591 strbuf.c:1189 wrapper.c:715
#, c-format
msgid "could not write to '%s'"
msgstr "ä¸èƒ½å¯«å…¥ '%s'"
@@ -7475,14 +7695,14 @@ msgstr "ä¸èƒ½å¯«å…¥ '%s'"
msgid "could not write eol to '%s'"
msgstr "ä¸èƒ½å°‡æ›è¡Œç¬¦è™Ÿå¯«å…¥ '%s'"
-#: sequencer.c:460 sequencer.c:3096 sequencer.c:3298 sequencer.c:3312
-#: sequencer.c:3569
+#: sequencer.c:460 sequencer.c:3092 sequencer.c:3294 sequencer.c:3308
+#: sequencer.c:3565
#, c-format
msgid "failed to finalize '%s'"
msgstr "ç„¡æ³•å®Œæˆ '%s'"
-#: sequencer.c:473 sequencer.c:1934 sequencer.c:3116 sequencer.c:3551
-#: sequencer.c:3679 builtin/am.c:289 builtin/commit.c:834 builtin/merge.c:1148
+#: sequencer.c:473 sequencer.c:1930 sequencer.c:3112 sequencer.c:3547
+#: sequencer.c:3675 builtin/am.c:290 builtin/commit.c:837 builtin/merge.c:1154
#, c-format
msgid "could not read '%s'"
msgstr "ä¸èƒ½è®€å– '%s'"
@@ -7501,7 +7721,7 @@ msgstr "æ交您的修改或儲è—後å†ç¹¼çºŒã€‚"
msgid "%s: fast-forward"
msgstr "%s:快轉"
-#: sequencer.c:574 builtin/tag.c:614
+#: sequencer.c:574 builtin/tag.c:615
#, c-format
msgid "Invalid cleanup mode %s"
msgstr "無效的清ç†æ¨¡å¼ %s"
@@ -7532,8 +7752,8 @@ msgstr "在 '%.*s' 中沒有 key"
msgid "unable to dequote value of '%s'"
msgstr "無法為 '%s' 的值去引號"
-#: sequencer.c:841 wrapper.c:209 wrapper.c:379 builtin/am.c:756
-#: builtin/am.c:848 builtin/rebase.c:694
+#: sequencer.c:841 wrapper.c:219 wrapper.c:389 builtin/am.c:757
+#: builtin/am.c:849 builtin/rebase.c:699
#, c-format
msgid "could not open '%s' for reading"
msgstr "無法開啟 '%s' 進行讀å–"
@@ -7647,350 +7867,345 @@ msgstr ""
"\n"
" git commit --amend --reset-author\n"
-#: sequencer.c:1288
+#: sequencer.c:1287
msgid "couldn't look up newly created commit"
msgstr "無法找到新建立的æ交"
-#: sequencer.c:1290
+#: sequencer.c:1289
msgid "could not parse newly created commit"
msgstr "ä¸èƒ½è§£æžæ–°å»ºç«‹çš„æ交"
-#: sequencer.c:1339
+#: sequencer.c:1336
msgid "unable to resolve HEAD after creating commit"
msgstr "建立æ交後,ä¸èƒ½è§£æž HEAD"
-#: sequencer.c:1342
+#: sequencer.c:1338
msgid "detached HEAD"
msgstr "分離 HEAD"
# 譯者:中文字串拼接,å¯åˆªé™¤å‰å°Žç©ºæ ¼
-#: sequencer.c:1346
+#: sequencer.c:1342
msgid " (root-commit)"
msgstr " (æ ¹æ交)"
-#: sequencer.c:1367
+#: sequencer.c:1363
msgid "could not parse HEAD"
msgstr "ä¸èƒ½è§£æž HEAD"
-#: sequencer.c:1369
+#: sequencer.c:1365
#, c-format
msgid "HEAD %s is not a commit!"
msgstr "HEAD %s ä¸æ˜¯ä¸€å€‹æ交ï¼"
-#: sequencer.c:1373 sequencer.c:1451 builtin/commit.c:1708
+#: sequencer.c:1369 sequencer.c:1447 builtin/commit.c:1707
msgid "could not parse HEAD commit"
msgstr "ä¸èƒ½è§£æž HEAD æ交"
-#: sequencer.c:1429 sequencer.c:2314
+#: sequencer.c:1425 sequencer.c:2310
msgid "unable to parse commit author"
msgstr "ä¸èƒ½è§£æžæ交作者"
-#: sequencer.c:1440 builtin/am.c:1643 builtin/merge.c:710
+#: sequencer.c:1436 builtin/am.c:1644 builtin/merge.c:710
msgid "git write-tree failed to write a tree"
msgstr "git write-tree 無法寫入樹狀物件"
-#: sequencer.c:1473 sequencer.c:1593
+#: sequencer.c:1469 sequencer.c:1589
#, c-format
msgid "unable to read commit message from '%s'"
msgstr "ä¸èƒ½å¾ž '%s' 讀å–æ交說明"
-#: sequencer.c:1504 sequencer.c:1536
+#: sequencer.c:1500 sequencer.c:1532
#, c-format
msgid "invalid author identity '%s'"
msgstr "無效的作者身分 '%s'"
-#: sequencer.c:1510
+#: sequencer.c:1506
msgid "corrupt author: missing date information"
msgstr "作者資訊æ壞:缺少日期資訊"
-#: sequencer.c:1549 builtin/am.c:1670 builtin/commit.c:1822 builtin/merge.c:915
-#: builtin/merge.c:940 t/helper/test-fast-rebase.c:78
+#: sequencer.c:1545 builtin/am.c:1671 builtin/commit.c:1821 builtin/merge.c:921
+#: builtin/merge.c:946 t/helper/test-fast-rebase.c:78
msgid "failed to write commit object"
msgstr "寫æ交物件失敗"
-#: sequencer.c:1576 sequencer.c:4523 t/helper/test-fast-rebase.c:199
+#: sequencer.c:1572 sequencer.c:4496 t/helper/test-fast-rebase.c:199
#: t/helper/test-fast-rebase.c:217
#, c-format
msgid "could not update %s"
msgstr "ä¸èƒ½æ›´æ–° %s"
-#: sequencer.c:1625
+#: sequencer.c:1621
#, c-format
msgid "could not parse commit %s"
msgstr "ä¸èƒ½è§£æžæ交 %s"
-#: sequencer.c:1630
+#: sequencer.c:1626
#, c-format
msgid "could not parse parent commit %s"
msgstr "ä¸èƒ½è§£æžçˆ¶æ交 %s"
-#: sequencer.c:1713 sequencer.c:1994
+#: sequencer.c:1709 sequencer.c:1990
#, c-format
msgid "unknown command: %d"
msgstr "未知指令:%d"
-#: sequencer.c:1755
+#: sequencer.c:1751
msgid "This is the 1st commit message:"
msgstr "這是第一個æ交說明:"
-#: sequencer.c:1756
+#: sequencer.c:1752
#, c-format
msgid "This is the commit message #%d:"
msgstr "這是æ交說明 #%d:"
-#: sequencer.c:1757
+#: sequencer.c:1753
msgid "The 1st commit message will be skipped:"
msgstr "ç•¥éŽç¬¬ 1 個æ交說明:"
-#: sequencer.c:1758
+#: sequencer.c:1754
#, c-format
msgid "The commit message #%d will be skipped:"
msgstr "ç•¥éŽç¬¬ %d 個æ交說明:"
-#: sequencer.c:1759
+#: sequencer.c:1755
#, c-format
msgid "This is a combination of %d commits."
msgstr "é€™æ˜¯æ•´åˆ %d 個æ交的集åˆæ交。"
-#: sequencer.c:1906 sequencer.c:1963
+#: sequencer.c:1902 sequencer.c:1959
#, c-format
msgid "cannot write '%s'"
msgstr "ä¸èƒ½å¯« '%s'"
-#: sequencer.c:1953
+#: sequencer.c:1949
msgid "need a HEAD to fixup"
msgstr "需è¦ä¸€å€‹ HEAD 來修復"
-#: sequencer.c:1955 sequencer.c:3596
+#: sequencer.c:1951 sequencer.c:3592
msgid "could not read HEAD"
msgstr "ä¸èƒ½è®€å– HEAD"
-#: sequencer.c:1957
+#: sequencer.c:1953
msgid "could not read HEAD's commit message"
msgstr "ä¸èƒ½è®€å– HEAD çš„æ交說明"
-#: sequencer.c:1981
+#: sequencer.c:1977
#, c-format
msgid "could not read commit message of %s"
msgstr "ä¸èƒ½è®€å– %s çš„æ交說明"
-#: sequencer.c:2091
+#: sequencer.c:2087
msgid "your index file is unmerged."
msgstr "您的索引檔案未完æˆåˆä½µã€‚"
-#: sequencer.c:2098
+#: sequencer.c:2094
msgid "cannot fixup root commit"
msgstr "ä¸èƒ½ä¿®å¾©æ ¹æ交"
-#: sequencer.c:2117
+#: sequencer.c:2113
#, c-format
msgid "commit %s is a merge but no -m option was given."
msgstr "æ交 %s 是一個åˆä½µæ交但未æä¾› -m é¸é …。"
-#: sequencer.c:2125 sequencer.c:2133
+#: sequencer.c:2121 sequencer.c:2129
#, c-format
msgid "commit %s does not have parent %d"
msgstr "æ交 %s 沒有第 %d 個父æ交"
-#: sequencer.c:2139
+#: sequencer.c:2135
#, c-format
msgid "cannot get commit message for %s"
msgstr "ä¸èƒ½å¾—到 %s çš„æ交說明"
#. TRANSLATORS: The first %s will be a "todo" command like
#. "revert" or "pick", the second %s a SHA1.
-#: sequencer.c:2158
+#: sequencer.c:2154
#, c-format
msgid "%s: cannot parse parent commit %s"
msgstr "%s:ä¸èƒ½è§£æžçˆ¶æ交 %s"
-#: sequencer.c:2224
+#: sequencer.c:2220
#, c-format
msgid "could not rename '%s' to '%s'"
msgstr "ä¸èƒ½å°‡ '%s' é‡æ–°å‘½å為 '%s'"
-#: sequencer.c:2284
+#: sequencer.c:2280
#, c-format
msgid "could not revert %s... %s"
msgstr "ä¸èƒ½é‚„原 %s... %s"
-#: sequencer.c:2285
+#: sequencer.c:2281
#, c-format
msgid "could not apply %s... %s"
msgstr "ä¸èƒ½å¥—用 %s... %s"
-#: sequencer.c:2306
+#: sequencer.c:2302
#, c-format
msgid "dropping %s %s -- patch contents already upstream\n"
msgstr "拋棄 %s %s -- 修補檔的內容已在上游\n"
-#: sequencer.c:2364
+#: sequencer.c:2360
#, c-format
msgid "git %s: failed to read the index"
msgstr "git %s:無法讀å–索引"
-#: sequencer.c:2372
+#: sequencer.c:2368
#, c-format
msgid "git %s: failed to refresh the index"
msgstr "git %s:無法é‡æ–°æ•´ç†ç´¢å¼•"
-#: sequencer.c:2452
+#: sequencer.c:2448
#, c-format
msgid "%s does not accept arguments: '%s'"
msgstr "%s ä¸æŽ¥å—åƒæ•¸ï¼š'%s'"
-#: sequencer.c:2461
+#: sequencer.c:2457
#, c-format
msgid "missing arguments for %s"
msgstr "缺少 %s çš„åƒæ•¸"
-#: sequencer.c:2504
+#: sequencer.c:2500
#, c-format
msgid "could not parse '%s'"
msgstr "ç„¡æ³•è§£æž '%s'"
-#: sequencer.c:2565
+#: sequencer.c:2561
#, c-format
msgid "invalid line %d: %.*s"
msgstr "無效行 %d:%.*s"
-#: sequencer.c:2576
+#: sequencer.c:2572
#, c-format
msgid "cannot '%s' without a previous commit"
msgstr "沒有父æ交的情æ³ä¸‹ä¸èƒ½ '%s'"
-#: sequencer.c:2624 builtin/rebase.c:184
+#: sequencer.c:2620 builtin/rebase.c:185
#, c-format
msgid "could not read '%s'."
msgstr "ä¸èƒ½è®€å– '%s'。"
-#: sequencer.c:2662
+#: sequencer.c:2658
msgid "cancelling a cherry picking in progress"
msgstr "正在å–消一個進行中的æ€é¸"
-#: sequencer.c:2671
+#: sequencer.c:2667
msgid "cancelling a revert in progress"
msgstr "正在å–消一個進行中的還原"
-#: sequencer.c:2711
+#: sequencer.c:2707
msgid "please fix this using 'git rebase --edit-todo'."
msgstr "請用 'git rebase --edit-todo' 來修改。"
-#: sequencer.c:2713
+#: sequencer.c:2709
#, c-format
msgid "unusable instruction sheet: '%s'"
msgstr "ä¸å¯ç”¨çš„指令清單:'%s'"
-#: sequencer.c:2718
+#: sequencer.c:2714
msgid "no commits parsed."
msgstr "沒有解æžæ交。"
-#: sequencer.c:2729
+#: sequencer.c:2725
msgid "cannot cherry-pick during a revert."
msgstr "ä¸èƒ½åœ¨é‚„原æ交中執行æ€é¸ã€‚"
-#: sequencer.c:2731
+#: sequencer.c:2727
msgid "cannot revert during a cherry-pick."
msgstr "ä¸èƒ½åœ¨æ€é¸ä¸­åŸ·è¡Œé‚„原æ交。"
-#: sequencer.c:2809
-#, c-format
-msgid "invalid value for %s: %s"
-msgstr "%s 的值無效:%s"
-
-#: sequencer.c:2918
+#: sequencer.c:2914
msgid "unusable squash-onto"
msgstr "ä¸å¯ç”¨çš„ squash-onto"
-#: sequencer.c:2938
+#: sequencer.c:2934
#, c-format
msgid "malformed options sheet: '%s'"
msgstr "æ ¼å¼éŒ¯èª¤çš„é¸é …清單:'%s'"
-#: sequencer.c:3033 sequencer.c:4902
+#: sequencer.c:3029 sequencer.c:4875
msgid "empty commit set passed"
msgstr "æ供了空的æ交集"
-#: sequencer.c:3050
+#: sequencer.c:3046
msgid "revert is already in progress"
msgstr "一個還原動作已在進行"
-#: sequencer.c:3052
+#: sequencer.c:3048
#, c-format
msgid "try \"git revert (--continue | %s--abort | --quit)\""
msgstr "嘗試 \"git revert (--continue | %s--abort | --quit)\""
-#: sequencer.c:3055
+#: sequencer.c:3051
msgid "cherry-pick is already in progress"
msgstr "æ€é¸å‹•ä½œå·²åœ¨é€²è¡Œ"
-#: sequencer.c:3057
+#: sequencer.c:3053
#, c-format
msgid "try \"git cherry-pick (--continue | %s--abort | --quit)\""
msgstr "嘗試 \"git cherry-pick (--continue | %s--abort | --quit)\""
-#: sequencer.c:3071
+#: sequencer.c:3067
#, c-format
msgid "could not create sequencer directory '%s'"
msgstr "ä¸èƒ½å»ºç«‹åºåˆ—目錄 '%s'"
-#: sequencer.c:3086
+#: sequencer.c:3082
msgid "could not lock HEAD"
msgstr "ä¸èƒ½éŽ–定 HEAD"
-#: sequencer.c:3146 sequencer.c:4612
+#: sequencer.c:3142 sequencer.c:4585
msgid "no cherry-pick or revert in progress"
msgstr "æ€é¸æˆ–還原動作並未進行"
-#: sequencer.c:3148 sequencer.c:3159
+#: sequencer.c:3144 sequencer.c:3155
msgid "cannot resolve HEAD"
msgstr "ä¸èƒ½è§£æž HEAD"
-#: sequencer.c:3150 sequencer.c:3194
+#: sequencer.c:3146 sequencer.c:3190
msgid "cannot abort from a branch yet to be born"
msgstr "ä¸èƒ½å¾žå°šæœªå»ºç«‹çš„分支終止"
-#: sequencer.c:3180 builtin/fetch.c:1004 builtin/fetch.c:1416
-#: builtin/grep.c:772
+#: sequencer.c:3176 builtin/fetch.c:1030 builtin/fetch.c:1457
+#: builtin/grep.c:774
#, c-format
msgid "cannot open '%s'"
msgstr "ä¸èƒ½é–‹å•Ÿ '%s'"
-#: sequencer.c:3182
+#: sequencer.c:3178
#, c-format
msgid "cannot read '%s': %s"
msgstr "ä¸èƒ½è®€å– '%s':%s"
-#: sequencer.c:3183
+#: sequencer.c:3179
msgid "unexpected end of file"
msgstr "æ„外的檔案çµæŸ"
-#: sequencer.c:3189
+#: sequencer.c:3185
#, c-format
msgid "stored pre-cherry-pick HEAD file '%s' is corrupt"
msgstr "儲存æ€é¸æ交å‰çš„ HEAD 檔案 '%s' æ壞"
-#: sequencer.c:3200
+#: sequencer.c:3196
msgid "You seem to have moved HEAD. Not rewinding, check your HEAD!"
msgstr "您好åƒç§»å‹•äº† HEAD。未能還原,檢查您的 HEADï¼"
-#: sequencer.c:3241
+#: sequencer.c:3237
msgid "no revert in progress"
msgstr "沒有正在進行的還原"
-#: sequencer.c:3250
+#: sequencer.c:3246
msgid "no cherry-pick in progress"
msgstr "沒有正在進行的æ€é¸"
-#: sequencer.c:3260
+#: sequencer.c:3256
msgid "failed to skip the commit"
msgstr "無法略éŽé€™å€‹æ交"
-#: sequencer.c:3267
+#: sequencer.c:3263
msgid "there is nothing to skip"
msgstr "沒有è¦ç•¥éŽçš„"
-#: sequencer.c:3270
+#: sequencer.c:3266
#, c-format
msgid ""
"have you committed already?\n"
@@ -7999,16 +8214,16 @@ msgstr ""
"您已經æ交了嗎?\n"
"試試 \"git %s --continue\""
-#: sequencer.c:3432 sequencer.c:4503
+#: sequencer.c:3428 sequencer.c:4476
msgid "cannot read HEAD"
msgstr "ä¸èƒ½è®€å– HEAD"
-#: sequencer.c:3449
+#: sequencer.c:3445
#, c-format
msgid "unable to copy '%s' to '%s'"
msgstr "無法複製 '%s' 至 '%s'"
-#: sequencer.c:3457
+#: sequencer.c:3453
#, c-format
msgid ""
"You can amend the commit now, with\n"
@@ -8027,28 +8242,28 @@ msgstr ""
"\n"
" git rebase --continue\n"
-#: sequencer.c:3467
+#: sequencer.c:3463
#, c-format
msgid "Could not apply %s... %.*s"
msgstr "ä¸èƒ½å¥—用 %s... %.*s"
-#: sequencer.c:3474
+#: sequencer.c:3470
#, c-format
msgid "Could not merge %.*s"
msgstr "ä¸èƒ½åˆä½µ %.*s"
-#: sequencer.c:3488 sequencer.c:3492 builtin/difftool.c:633
+#: sequencer.c:3484 sequencer.c:3488 builtin/difftool.c:633
#, c-format
msgid "could not copy '%s' to '%s'"
msgstr "ä¸èƒ½è¤‡è£½ '%s' 至 '%s'"
-#: sequencer.c:3503
+#: sequencer.c:3499
#, c-format
msgid "Executing: %s\n"
msgstr "執行:%s\n"
# 譯者:請維æŒå‰å°Žç©ºæ ¼
-#: sequencer.c:3514
+#: sequencer.c:3510
#, c-format
msgid ""
"execution failed: %s\n"
@@ -8063,11 +8278,11 @@ msgstr ""
" git rebase --continue\n"
"\n"
-#: sequencer.c:3520
+#: sequencer.c:3516
msgid "and made changes to the index and/or the working tree\n"
msgstr "並且修改索引和/或工作å€\n"
-#: sequencer.c:3526
+#: sequencer.c:3522
#, c-format
msgid ""
"execution succeeded: %s\n"
@@ -8084,90 +8299,90 @@ msgstr ""
" git rebase --continue\n"
"\n"
-#: sequencer.c:3586
+#: sequencer.c:3582
#, c-format
msgid "illegal label name: '%.*s'"
msgstr "éžæ³•çš„標籤å稱:'%.*s'"
-#: sequencer.c:3659
+#: sequencer.c:3655
msgid "writing fake root commit"
msgstr "寫å½æ ¹æ交"
-#: sequencer.c:3664
+#: sequencer.c:3660
msgid "writing squash-onto"
msgstr "寫入 squash-onto"
-#: sequencer.c:3743
+#: sequencer.c:3739
#, c-format
msgid "could not resolve '%s'"
msgstr "ç„¡æ³•è§£æž '%s'"
-#: sequencer.c:3775
+#: sequencer.c:3771
msgid "cannot merge without a current revision"
msgstr "沒有目å‰ç‰ˆæœ¬ä¸èƒ½åˆä½µ"
-#: sequencer.c:3797
+#: sequencer.c:3793
#, c-format
msgid "unable to parse '%.*s'"
msgstr "ç„¡æ³•è§£æž '%.*s'"
-#: sequencer.c:3806
+#: sequencer.c:3802
#, c-format
msgid "nothing to merge: '%.*s'"
msgstr "ç„¡å¯ç”¨åˆä½µï¼š'%.*s'"
-#: sequencer.c:3818
+#: sequencer.c:3814
msgid "octopus merge cannot be executed on top of a [new root]"
msgstr "ç« é­šåˆä¸¦ä¸èƒ½åœ¨ä¸€å€‹æ–°çš„æ ¹æ交上執行"
-#: sequencer.c:3873
+#: sequencer.c:3869
#, c-format
msgid "could not get commit message of '%s'"
msgstr "ä¸èƒ½å–å¾— '%s' çš„æ交說明"
-#: sequencer.c:4019
+#: sequencer.c:4013
#, c-format
msgid "could not even attempt to merge '%.*s'"
msgstr "甚至ä¸èƒ½å˜—試åˆä½µ '%.*s'"
-#: sequencer.c:4035
+#: sequencer.c:4029
msgid "merge: Unable to write new index file"
msgstr "åˆä½µï¼šç„¡æ³•å¯«å…¥æ–°ç´¢å¼•æª”案"
-#: sequencer.c:4116
+#: sequencer.c:4110
msgid "Cannot autostash"
msgstr "無法 autostash"
-#: sequencer.c:4119
+#: sequencer.c:4113
#, c-format
msgid "Unexpected stash response: '%s'"
msgstr "æ„外的 stash 回應:'%s'"
-#: sequencer.c:4125
+#: sequencer.c:4119
#, c-format
msgid "Could not create directory for '%s'"
msgstr "ä¸èƒ½ç‚º '%s' 建立目錄"
-#: sequencer.c:4128
+#: sequencer.c:4122
#, c-format
msgid "Created autostash: %s\n"
msgstr "建立了 autostash:%s\n"
-#: sequencer.c:4132
+#: sequencer.c:4124
msgid "could not reset --hard"
msgstr "無法 reset --hard"
-#: sequencer.c:4157
+#: sequencer.c:4148
#, c-format
msgid "Applied autostash.\n"
msgstr "已套用 autostash。\n"
-#: sequencer.c:4169
+#: sequencer.c:4160
#, c-format
msgid "cannot store %s"
msgstr "ä¸èƒ½å„²å­˜ %s"
-#: sequencer.c:4172
+#: sequencer.c:4163
#, c-format
msgid ""
"%s\n"
@@ -8178,29 +8393,29 @@ msgstr ""
"您的修改安全地儲存在儲è—å€ä¸­ã€‚\n"
"您å¯ä»¥åœ¨ä»»ä½•æ™‚候執行 \"git stash pop\" 或 \"git stash drop\"。\n"
-#: sequencer.c:4177
+#: sequencer.c:4168
msgid "Applying autostash resulted in conflicts."
msgstr "因套用自動儲è—而導致è¡çªã€‚"
-#: sequencer.c:4178
+#: sequencer.c:4169
msgid "Autostash exists; creating a new stash entry."
msgstr "已有自動儲è—;建立新儲è—項目。"
-#: sequencer.c:4252
+#: sequencer.c:4225
msgid "could not detach HEAD"
msgstr "ä¸èƒ½åˆ†é›¢é–‹é ­æŒ‡æ¨™"
-#: sequencer.c:4267
+#: sequencer.c:4240
#, c-format
msgid "Stopped at HEAD\n"
msgstr "åœæ­¢åœ¨ HEAD\n"
-#: sequencer.c:4269
+#: sequencer.c:4242
#, c-format
msgid "Stopped at %s\n"
msgstr "åœæ­¢åœ¨ %s\n"
-#: sequencer.c:4301
+#: sequencer.c:4274
#, c-format
msgid ""
"Could not execute the todo command\n"
@@ -8220,58 +8435,58 @@ msgstr ""
" git rebase --edit-todo\n"
" git rebase --continue\n"
-#: sequencer.c:4347
+#: sequencer.c:4320
#, c-format
msgid "Rebasing (%d/%d)%s"
msgstr "正在é‡å®šåŸºåº• (%d/%d)%s"
-#: sequencer.c:4393
+#: sequencer.c:4366
#, c-format
msgid "Stopped at %s... %.*s\n"
msgstr "åœæ­¢åœ¨ %s... %.*s\n"
-#: sequencer.c:4463
+#: sequencer.c:4436
#, c-format
msgid "unknown command %d"
msgstr "未知指令 %d"
-#: sequencer.c:4511
+#: sequencer.c:4484
msgid "could not read orig-head"
msgstr "ä¸èƒ½è®€å– orig-head"
-#: sequencer.c:4516
+#: sequencer.c:4489
msgid "could not read 'onto'"
msgstr "ä¸èƒ½è®€å– 'onto'"
-#: sequencer.c:4530
+#: sequencer.c:4503
#, c-format
msgid "could not update HEAD to %s"
msgstr "ä¸èƒ½æ›´æ–° HEAD 為 %s"
-#: sequencer.c:4590
+#: sequencer.c:4563
#, c-format
msgid "Successfully rebased and updated %s.\n"
msgstr "æˆåŠŸé‡å®šåŸºåº•ä¸¦æ›´æ–° %s。\n"
-#: sequencer.c:4642
+#: sequencer.c:4615
msgid "cannot rebase: You have unstaged changes."
msgstr "ä¸èƒ½é‡å®šåŸºåº•ï¼šæ‚¨æœ‰æœªæš«å­˜çš„變更。"
-#: sequencer.c:4651
+#: sequencer.c:4624
msgid "cannot amend non-existing commit"
msgstr "ä¸èƒ½ä¿®è£œä¸å­˜åœ¨çš„æ交"
-#: sequencer.c:4653
+#: sequencer.c:4626
#, c-format
msgid "invalid file: '%s'"
msgstr "無效檔案:'%s'"
-#: sequencer.c:4655
+#: sequencer.c:4628
#, c-format
msgid "invalid contents: '%s'"
msgstr "無效內容:'%s'"
-#: sequencer.c:4658
+#: sequencer.c:4631
msgid ""
"\n"
"You have uncommitted changes in your working tree. Please, commit them\n"
@@ -8280,68 +8495,68 @@ msgstr ""
"\n"
"您的工作å€ä¸­æœ‰æœªæ交的變更。請先æ交然後å†æ¬¡åŸ·è¡Œ 'git rebase --continue'。"
-#: sequencer.c:4694 sequencer.c:4733
+#: sequencer.c:4667 sequencer.c:4706
#, c-format
msgid "could not write file: '%s'"
msgstr "ä¸èƒ½å¯«å…¥æª”案:'%s'"
-#: sequencer.c:4749
+#: sequencer.c:4722
msgid "could not remove CHERRY_PICK_HEAD"
msgstr "ä¸èƒ½åˆªé™¤ CHERRY_PICK_HEAD"
-#: sequencer.c:4759
+#: sequencer.c:4732
msgid "could not commit staged changes."
msgstr "ä¸èƒ½æ交暫存的修改。"
-#: sequencer.c:4879
+#: sequencer.c:4852
#, c-format
msgid "%s: can't cherry-pick a %s"
msgstr "%s:ä¸èƒ½æ€é¸ä¸€å€‹%s"
-#: sequencer.c:4883
+#: sequencer.c:4856
#, c-format
msgid "%s: bad revision"
msgstr "%s:錯誤的版本"
-#: sequencer.c:4918
+#: sequencer.c:4891
msgid "can't revert as initial commit"
msgstr "ä¸èƒ½ä½œç‚ºåˆå§‹æ交還原æ交"
-#: sequencer.c:5189 sequencer.c:5418
+#: sequencer.c:5162 sequencer.c:5391
#, c-format
msgid "skipped previously applied commit %s"
msgstr "已略éŽå…ˆå‰å¥—用的 %s æ交"
-#: sequencer.c:5259 sequencer.c:5434
+#: sequencer.c:5232 sequencer.c:5407
msgid "use --reapply-cherry-picks to include skipped commits"
msgstr "使用 --reapply-cherry-picks 以包å«ç•¥éŽæ交"
-#: sequencer.c:5405
+#: sequencer.c:5378
msgid "make_script: unhandled options"
msgstr "make_script:有未能處ç†çš„é¸é …"
-#: sequencer.c:5408
+#: sequencer.c:5381
msgid "make_script: error preparing revisions"
msgstr "make_script:準備版本時錯誤"
-#: sequencer.c:5666 sequencer.c:5683
+#: sequencer.c:5639 sequencer.c:5656
msgid "nothing to do"
msgstr "無事å¯åš"
-#: sequencer.c:5702
+#: sequencer.c:5675
msgid "could not skip unnecessary pick commands"
msgstr "無法略éŽä¸å¿…è¦çš„æ€é¸"
-#: sequencer.c:5802
+#: sequencer.c:5775
msgid "the script was already rearranged."
msgstr "腳本已經é‡æ–°ç·¨æŽ’。"
-#: setup.c:134
+#: setup.c:135
#, c-format
msgid "'%s' is outside repository at '%s'"
msgstr "'%s' 在ä½æ–¼ '%s' 的版本庫之外"
-#: setup.c:186
+#: setup.c:187
#, c-format
msgid ""
"%s: no such path in the working tree.\n"
@@ -8350,7 +8565,7 @@ msgstr ""
"%s:工作å€ä¸­ç„¡æ­¤è·¯å¾‘。\n"
"使用指令 'git <命令> -- <路徑>...' 來指定本機ä¸å­˜åœ¨çš„路徑。"
-#: setup.c:199
+#: setup.c:200
#, c-format
msgid ""
"ambiguous argument '%s': unknown revision or path not in the working tree.\n"
@@ -8361,12 +8576,12 @@ msgstr ""
"使用 '--' 來分隔版本和路徑,例如:\n"
"'git <命令> [<版本>...] -- [<檔案>...]'"
-#: setup.c:265
+#: setup.c:266
#, c-format
msgid "option '%s' must come before non-option arguments"
msgstr "é¸é … '%s' 必須在其他éžé¸é …åƒæ•¸ä¹‹å‰"
-#: setup.c:284
+#: setup.c:285
#, c-format
msgid ""
"ambiguous argument '%s': both revision and filename\n"
@@ -8377,98 +8592,98 @@ msgstr ""
"使用 '--' 來分隔版本和路徑,例如:\n"
"'git <命令> [<版本>...] -- [<檔案>...]'"
-#: setup.c:420
+#: setup.c:421
msgid "unable to set up work tree using invalid config"
msgstr "無法使用無效設定來建立工作å€"
-#: setup.c:424 builtin/rev-parse.c:895
+#: setup.c:425 builtin/rev-parse.c:895
msgid "this operation must be run in a work tree"
msgstr "該動作必須在一個工作å€ä¸­åŸ·è¡Œ"
-#: setup.c:722
+#: setup.c:724
#, c-format
msgid "Expected git repo version <= %d, found %d"
msgstr "期望 git 版本庫版本 <= %d,å»å¾—到 %d"
-#: setup.c:730
+#: setup.c:732
msgid "unknown repository extension found:"
msgid_plural "unknown repository extensions found:"
msgstr[0] "找到未知的儲存庫擴充元件:"
-#: setup.c:744
+#: setup.c:746
msgid "repo version is 0, but v1-only extension found:"
msgid_plural "repo version is 0, but v1-only extensions found:"
msgstr[0] "repo 版本是 0 (v0),但找到åªæ”¯æ´ v1 的擴充元件:"
-#: setup.c:765
+#: setup.c:767
#, c-format
msgid "error opening '%s'"
msgstr "開啟 '%s' 發生錯誤"
-#: setup.c:767
+#: setup.c:769
#, c-format
msgid "too large to be a .git file: '%s'"
msgstr "檔案太大,無法作為 .git 檔案:'%s'"
-#: setup.c:769
+#: setup.c:771
#, c-format
msgid "error reading %s"
msgstr "è®€å– %s 發生錯誤"
-#: setup.c:771
+#: setup.c:773
#, c-format
msgid "invalid gitfile format: %s"
msgstr "無效的 gitfile æ ¼å¼ï¼š%s"
-#: setup.c:773
+#: setup.c:775
#, c-format
msgid "no path in gitfile: %s"
msgstr "在 gitfile 中沒有路徑:%s"
-#: setup.c:775
+#: setup.c:777
#, c-format
msgid "not a git repository: %s"
msgstr "ä¸æ˜¯ä¸€å€‹ git 版本庫:%s"
-#: setup.c:877
+#: setup.c:879
#, c-format
msgid "'$%s' too big"
msgstr "'$%s' 太大"
-#: setup.c:891
+#: setup.c:893
#, c-format
msgid "not a git repository: '%s'"
msgstr "ä¸æ˜¯ä¸€å€‹ git 版本庫:'%s'"
-#: setup.c:920 setup.c:922 setup.c:953
+#: setup.c:922 setup.c:924 setup.c:955
#, c-format
msgid "cannot chdir to '%s'"
msgstr "ä¸èƒ½åˆ‡æ›ç›®éŒ„到 '%s'"
-#: setup.c:925 setup.c:981 setup.c:991 setup.c:1030 setup.c:1038
+#: setup.c:927 setup.c:983 setup.c:993 setup.c:1032 setup.c:1040
msgid "cannot come back to cwd"
msgstr "無法返回目å‰å·¥ä½œç›®éŒ„"
-#: setup.c:1052
+#: setup.c:1054
#, c-format
msgid "failed to stat '%*s%s%s'"
msgstr "å–å¾— '%*s%s%s' 狀態(stat)失敗"
-#: setup.c:1295
+#: setup.c:1338
msgid "Unable to read current working directory"
msgstr "ä¸èƒ½è®€å–ç›®å‰å·¥ä½œç›®éŒ„"
-#: setup.c:1304 setup.c:1310
+#: setup.c:1347 setup.c:1353
#, c-format
msgid "cannot change to '%s'"
msgstr "ä¸èƒ½åˆ‡æ›åˆ° '%s'"
-#: setup.c:1315
+#: setup.c:1358
#, c-format
msgid "not a git repository (or any of the parent directories): %s"
msgstr "ä¸æ˜¯ä¸€å€‹ git 版本庫(或者任何父目錄):%s"
-#: setup.c:1321
+#: setup.c:1364
#, c-format
msgid ""
"not a git repository (or any parent up to mount point %s)\n"
@@ -8477,7 +8692,20 @@ msgstr ""
"ä¸æ˜¯ä¸€å€‹ git 版本庫(或者直至掛載點 %s 的任何父目錄)\n"
"åœæ­¢åœ¨æª”案系統邊界(未設定 GIT_DISCOVERY_ACROSS_FILESYSTEM)。"
-#: setup.c:1446
+#: setup.c:1374
+#, c-format
+msgid ""
+"unsafe repository ('%s' is owned by someone else)\n"
+"To add an exception for this directory, call:\n"
+"\n"
+"\tgit config --global --add safe.directory %s"
+msgstr ""
+"ä¸å®‰å…¨ç‰ˆæœ¬åº«ï¼ˆã€Œ%sã€ç”±å…¶ä»–人所有)\n"
+"è‹¥è¦æ”¾è¡Œæœ¬ç›®éŒ„,請呼å«ï¼š\n"
+"\n"
+"\tgit config --global --add safe.directory %s"
+
+#: setup.c:1502
#, c-format
msgid ""
"problem with core.sharedRepository filemode value (0%.3o).\n"
@@ -8486,186 +8714,200 @@ msgstr ""
"åƒæ•¸ core.sharedRepository 的檔案屬性值有å•é¡Œï¼ˆ0%.3o)。\n"
"檔案所有者必須始終æ“有讀寫權é™ã€‚"
-#: setup.c:1508
+#: setup.c:1564
msgid "fork failed"
msgstr "fork 失敗"
-#: setup.c:1513
+#: setup.c:1569
msgid "setsid failed"
msgstr "setsid 失敗"
-#: sparse-index.c:289
+#: sparse-index.c:285
#, c-format
msgid "index entry is a directory, but not sparse (%08x)"
msgstr "索引項目是資料夾,但ä¸æ˜¯ç¨€ç–資料夾(%08x)"
+#: split-index.c:9
+msgid "cannot use split index with a sparse index"
+msgstr "無法在稀ç–索引使用索引分割"
+
#. TRANSLATORS: IEC 80000-13:2008 gibibyte
-#: strbuf.c:850
+#: strbuf.c:851
#, c-format
msgid "%u.%2.2u GiB"
msgstr "%u.%2.2u GiB"
#. TRANSLATORS: IEC 80000-13:2008 gibibyte/second
-#: strbuf.c:852
+#: strbuf.c:853
#, c-format
msgid "%u.%2.2u GiB/s"
msgstr "%u.%2.2u GiB/s"
#. TRANSLATORS: IEC 80000-13:2008 mebibyte
-#: strbuf.c:860
+#: strbuf.c:861
#, c-format
msgid "%u.%2.2u MiB"
msgstr "%u.%2.2u MiB"
#. TRANSLATORS: IEC 80000-13:2008 mebibyte/second
-#: strbuf.c:862
+#: strbuf.c:863
#, c-format
msgid "%u.%2.2u MiB/s"
msgstr "%u.%2.2u MiB/s"
#. TRANSLATORS: IEC 80000-13:2008 kibibyte
-#: strbuf.c:869
+#: strbuf.c:870
#, c-format
msgid "%u.%2.2u KiB"
msgstr "%u.%2.2u KiB"
#. TRANSLATORS: IEC 80000-13:2008 kibibyte/second
-#: strbuf.c:871
+#: strbuf.c:872
#, c-format
msgid "%u.%2.2u KiB/s"
msgstr "%u.%2.2u KiB/s"
#. TRANSLATORS: IEC 80000-13:2008 byte
-#: strbuf.c:877
+#: strbuf.c:878
#, c-format
msgid "%u byte"
msgid_plural "%u bytes"
msgstr[0] "%u ä½å…ƒçµ„"
#. TRANSLATORS: IEC 80000-13:2008 byte/second
-#: strbuf.c:879
+#: strbuf.c:880
#, c-format
msgid "%u byte/s"
msgid_plural "%u bytes/s"
msgstr[0] "%u ä½å…ƒçµ„/秒"
-#: strbuf.c:1186 wrapper.c:207 wrapper.c:377 builtin/am.c:765
-#: builtin/rebase.c:650
+#: strbuf.c:1187 wrapper.c:217 wrapper.c:387 builtin/am.c:766
+#: builtin/rebase.c:653
#, c-format
msgid "could not open '%s' for writing"
msgstr "無法開啟 '%s' 進行寫入"
-#: strbuf.c:1195
+#: strbuf.c:1196
#, c-format
msgid "could not edit '%s'"
msgstr "無法編輯 '%s'"
-#: submodule-config.c:237
+#: submodule-config.c:238
#, c-format
msgid "ignoring suspicious submodule name: %s"
msgstr "忽略å¯ç–‘çš„å­æ¨¡çµ„å稱:%s"
-#: submodule-config.c:304
+#: submodule-config.c:305
msgid "negative values not allowed for submodule.fetchjobs"
msgstr "submodule.fetchjobs ä¸å…許為負值"
-#: submodule-config.c:402
+#: submodule-config.c:403
#, c-format
msgid "ignoring '%s' which may be interpreted as a command-line option: %s"
msgstr "忽略å¯èƒ½è¢«è§£æžç‚ºæŒ‡ä»¤åˆ—é¸é …çš„ '%s':%s"
-#: submodule-config.c:499
+#: submodule-config.c:500 builtin/push.c:489 builtin/send-pack.c:148
#, c-format
-msgid "invalid value for %s"
-msgstr "%s 的值無效"
+msgid "invalid value for '%s'"
+msgstr "「%sã€çš„值無效"
-#: submodule-config.c:767
+#: submodule-config.c:828
#, c-format
msgid "Could not update .gitmodules entry %s"
msgstr "ä¸èƒ½æ›´æ–° .gitmodules æ¢ç›® %s"
-#: submodule.c:114 submodule.c:143
+#: submodule.c:115 submodule.c:144
msgid "Cannot change unmerged .gitmodules, resolve merge conflicts first"
msgstr "無法修改未åˆä½µçš„ .gitmodules,先解決åˆä½µè¡çª"
-#: submodule.c:118 submodule.c:147
+#: submodule.c:119 submodule.c:148
#, c-format
msgid "Could not find section in .gitmodules where path=%s"
msgstr "無法在 .gitmodules 中找到 path=%s çš„å°ç¯€"
-#: submodule.c:154
+#: submodule.c:155
#, c-format
msgid "Could not remove .gitmodules entry for %s"
msgstr "無法移除 %s çš„ .gitmodules æ¢ç›®"
-#: submodule.c:165
+#: submodule.c:166
msgid "staging updated .gitmodules failed"
msgstr "將更新後 .gitmodules 新增暫存å€å¤±æ•—"
-#: submodule.c:358
+#: submodule.c:346
#, c-format
msgid "in unpopulated submodule '%s'"
msgstr "ä½æ–¼æœªç°½å‡ºçš„å­æ¨¡çµ„ '%s'"
-#: submodule.c:389
+#: submodule.c:377
#, c-format
msgid "Pathspec '%s' is in submodule '%.*s'"
msgstr "路徑è¦æ ¼ '%s' 在å­æ¨¡çµ„ '%.*s' 中"
-#: submodule.c:466
+#: submodule.c:454
#, c-format
msgid "bad --ignore-submodules argument: %s"
msgstr "無效 --ignore-submodules åƒæ•¸ï¼š%s"
-#: submodule.c:844
+#: submodule.c:866
#, c-format
msgid ""
"Submodule in commit %s at path: '%s' collides with a submodule named the "
"same. Skipping it."
msgstr "%s æ交ä½æ–¼è·¯å¾‘:'%s' çš„å­æ¨¡çµ„與åŒåçš„å­æ¨¡çµ„è¡çªã€‚ç•¥éŽã€‚"
-#: submodule.c:954
+#: submodule.c:987
#, c-format
msgid "submodule entry '%s' (%s) is a %s, not a commit"
msgstr "å­æ¨¡çµ„æ¢ç›® '%s'(%s)是一個 %s,ä¸æ˜¯ä¸€å€‹æ交"
-#: submodule.c:1042
+#: submodule.c:1069
#, c-format
msgid ""
"Could not run 'git rev-list <commits> --not --remotes -n 1' command in "
"submodule %s"
msgstr "無法在 %s å­æ¨¡çµ„執行 'git rev-list <æ交> --not --remotes -n 1' 命令"
-#: submodule.c:1165
+#: submodule.c:1192
#, c-format
msgid "process for submodule '%s' failed"
msgstr "è™•ç† '%s' å­æ¨¡çµ„失敗"
-#: submodule.c:1194 builtin/branch.c:699 builtin/submodule--helper.c:2714
+#: submodule.c:1221 builtin/branch.c:714 builtin/submodule--helper.c:2827
msgid "Failed to resolve HEAD as a valid ref."
msgstr "無法將 HEAD 解æžç‚ºæœ‰æ•ˆå¼•ç”¨ã€‚"
-#: submodule.c:1205
+#: submodule.c:1232
#, c-format
msgid "Pushing submodule '%s'\n"
msgstr "æ­£åœ¨æŽ¨é€ '%s' å­æ¨¡çµ„\n"
-#: submodule.c:1208
+#: submodule.c:1235
#, c-format
msgid "Unable to push submodule '%s'\n"
msgstr "ç„¡æ³•æŽ¨é€ '%s' å­æ¨¡çµ„\n"
-#: submodule.c:1491
+#: submodule.c:1567
#, c-format
msgid "Fetching submodule %s%s\n"
msgstr "æ­£åœ¨æŠ“å– %s%s å­æ¨¡çµ„\n"
-#: submodule.c:1525
+#: submodule.c:1589
#, c-format
msgid "Could not access submodule '%s'\n"
msgstr "無法存å–å­æ¨¡çµ„ '%s'\n"
-#: submodule.c:1680
+#: submodule.c:1618
+#, c-format
+msgid "Could not access submodule '%s' at commit %s\n"
+msgstr "ç„¡æ³•å­˜å– %2$s æ交的å­æ¨¡çµ„「%1$sã€\n"
+
+#: submodule.c:1629
+#, c-format
+msgid "Fetching submodule %s%s at commit %s\n"
+msgstr "æ­£åœ¨æŠ“å– %3$s æ交的 %1$s%2$s å­æ¨¡çµ„\n"
+
+#: submodule.c:1849
#, c-format
msgid ""
"Errors during submodule fetch:\n"
@@ -8674,77 +8916,77 @@ msgstr ""
"抓å–å­æ¨¡çµ„時發生錯誤:\n"
"%s"
-#: submodule.c:1705
+#: submodule.c:1874
#, c-format
msgid "'%s' not recognized as a git repository"
msgstr "無法將 '%s' 識別為一個 git 版本庫"
-#: submodule.c:1722
+#: submodule.c:1891
#, c-format
msgid "Could not run 'git status --porcelain=2' in submodule %s"
msgstr "無法在 %s å­æ¨¡çµ„執行 'git status --porcelain=2'"
-#: submodule.c:1763
+#: submodule.c:1932
#, c-format
msgid "'git status --porcelain=2' failed in submodule %s"
msgstr "%s å­æ¨¡çµ„執行 'git status --porcelain=2' 失敗"
-#: submodule.c:1838
+#: submodule.c:2007
#, c-format
msgid "could not start 'git status' in submodule '%s'"
msgstr "無法在å­æ¨¡çµ„ '%s' 中啟動 'git status'"
-#: submodule.c:1851
+#: submodule.c:2020
#, c-format
msgid "could not run 'git status' in submodule '%s'"
msgstr "無法在å­æ¨¡çµ„ '%s' 中執行 'git status'"
-#: submodule.c:1868
+#: submodule.c:2037
#, c-format
msgid "Could not unset core.worktree setting in submodule '%s'"
msgstr "無法在å­æ¨¡çµ„ '%s' 中å–消 core.worktree 的設定"
-#: submodule.c:1895 submodule.c:2210
+#: submodule.c:2064 submodule.c:2379
#, c-format
msgid "could not recurse into submodule '%s'"
msgstr "無法éžè¿´å­æ¨¡çµ„路徑 '%s'"
-#: submodule.c:1917
+#: submodule.c:2086
msgid "could not reset submodule index"
msgstr "無法é‡è¨­å­æ¨¡çµ„的索引"
-#: submodule.c:1959
+#: submodule.c:2128
#, c-format
msgid "submodule '%s' has dirty index"
msgstr "å­æ¨¡çµ„ '%s' 中有髒索引"
-#: submodule.c:2013
+#: submodule.c:2182
#, c-format
msgid "Submodule '%s' could not be updated."
msgstr "å­æ¨¡çµ„ '%s' 無法被更新。"
-#: submodule.c:2081
+#: submodule.c:2250
#, c-format
msgid "submodule git dir '%s' is inside git dir '%.*s'"
msgstr "「%sã€å­æ¨¡çµ„ git 目錄在「%.*sã€git 路徑中"
-#: submodule.c:2102
+#: submodule.c:2271
#, c-format
msgid ""
"relocate_gitdir for submodule '%s' with more than one worktree not supported"
msgstr "ä¸æ”¯æ´å°æœ‰å¤šå€‹å·¥ä½œå€çš„å­æ¨¡çµ„ '%s' 執行 relocate_gitdir"
-#: submodule.c:2114 submodule.c:2174
+#: submodule.c:2283 submodule.c:2343
#, c-format
msgid "could not lookup name for submodule '%s'"
msgstr "ä¸èƒ½æŸ¥è©¢å­æ¨¡çµ„ '%s' çš„å稱"
-#: submodule.c:2118
+#: submodule.c:2287
#, c-format
msgid "refusing to move '%s' into an existing git dir"
msgstr "拒絕移動「%sã€è‡³ç¾å­˜ git 目錄"
-#: submodule.c:2124
+#: submodule.c:2293
#, c-format
msgid ""
"Migrating git directory of '%s%s' from\n"
@@ -8755,11 +8997,11 @@ msgstr ""
"'%s' é·ç§»è‡³\n"
"'%s'\n"
-#: submodule.c:2255
+#: submodule.c:2424
msgid "could not start ls-files in .."
msgstr "無法在 .. 中啟動 ls-files"
-#: submodule.c:2295
+#: submodule.c:2464
#, c-format
msgid "ls-tree returned unexpected return code %d"
msgstr "ls-tree 返回未知返回值 %d"
@@ -8780,8 +9022,8 @@ msgstr "執行 trailer 指令 '%s' 失敗"
msgid "unknown value '%s' for key '%s'"
msgstr "éµ '%2$s' 的未知å–值 '%1$s'"
-#: trailer.c:547 trailer.c:552 trailer.c:557 builtin/remote.c:299
-#: builtin/remote.c:327
+#: trailer.c:547 trailer.c:552 trailer.c:557 builtin/remote.c:300
+#: builtin/remote.c:328
#, c-format
msgid "more than one %s"
msgstr "多於一個 %s"
@@ -8796,11 +9038,11 @@ msgstr "ç°½å '%.*s' çš„éµç‚ºç©º"
msgid "could not read input file '%s'"
msgstr "ä¸èƒ½è®€å–輸入檔案 '%s'"
-#: trailer.c:766 builtin/mktag.c:89 imap-send.c:1573
+#: trailer.c:766 builtin/mktag.c:88 imap-send.c:1563
msgid "could not read from stdin"
msgstr "ä¸èƒ½è‡ªæ¨™æº–輸入讀å–"
-#: trailer.c:1024 wrapper.c:684
+#: trailer.c:1024 wrapper.c:760
#, c-format
msgid "could not stat %s"
msgstr "ä¸èƒ½å° %s å‘¼å« stat"
@@ -8866,7 +9108,7 @@ msgstr "ä¸èƒ½åŸ·è¡Œ fast-import"
msgid "error while running fast-import"
msgstr "執行 fast-import 發生錯誤"
-#: transport-helper.c:549 transport-helper.c:1251
+#: transport-helper.c:549 transport-helper.c:1254
#, c-format
msgid "could not read ref %s"
msgstr "無法讀å–引用 %s"
@@ -8884,7 +9126,7 @@ msgstr "å”定ä¸æ”¯æ´è¨­å®šé ç«¯æœå‹™è·¯å¾‘"
msgid "invalid remote service path"
msgstr "無效的é ç«¯æœå‹™è·¯å¾‘"
-#: transport-helper.c:661 transport.c:1479
+#: transport-helper.c:661 transport.c:1496
msgid "operation not supported by protocol"
msgstr "å”定ä¸æ”¯æ´è©²å‹•ä½œ"
@@ -8893,72 +9135,72 @@ msgstr "å”定ä¸æ”¯æ´è©²å‹•ä½œ"
msgid "can't connect to subservice %s"
msgstr "ä¸èƒ½é€£ç·šåˆ°å­æœå‹™ %s"
-#: transport-helper.c:693 transport.c:404
+#: transport-helper.c:693 transport.c:415
msgid "--negotiate-only requires protocol v2"
msgstr "--negotiate-only éœ€è¦ v2 版å”定"
-#: transport-helper.c:755
+#: transport-helper.c:758
msgid "'option' without a matching 'ok/error' directive"
msgstr "'option' 缺少å°æ‡‰çš„ 'ok/error' 指令"
-#: transport-helper.c:798
+#: transport-helper.c:801
#, c-format
msgid "expected ok/error, helper said '%s'"
msgstr "é æœŸ ok/error,å”助工具說 '%s'"
-#: transport-helper.c:859
+#: transport-helper.c:862
#, c-format
msgid "helper reported unexpected status of %s"
msgstr "å”助工具報告 %s çš„æ„外狀態"
-#: transport-helper.c:942
+#: transport-helper.c:945
#, c-format
msgid "helper %s does not support dry-run"
msgstr "å”助工具 %s ä¸æ”¯æ´ dry-run"
-#: transport-helper.c:945
+#: transport-helper.c:948
#, c-format
msgid "helper %s does not support --signed"
msgstr "å”助工具 %s ä¸æ”¯æ´ --signed"
-#: transport-helper.c:948
+#: transport-helper.c:951
#, c-format
msgid "helper %s does not support --signed=if-asked"
msgstr "å”助工具 %s ä¸æ”¯æ´ --signed=if-asked"
-#: transport-helper.c:953
+#: transport-helper.c:956
#, c-format
msgid "helper %s does not support --atomic"
msgstr "å”助工具 %s ä¸æ”¯æ´ --atomic"
-#: transport-helper.c:957
+#: transport-helper.c:960
#, c-format
msgid "helper %s does not support --%s"
msgstr "å”助工具 %s ä¸æ”¯æ´ --%s"
-#: transport-helper.c:964
+#: transport-helper.c:967
#, c-format
msgid "helper %s does not support 'push-option'"
msgstr "å”助工具 %s ä¸æ”¯æ´ 'push-option'"
-#: transport-helper.c:1064
+#: transport-helper.c:1067
msgid "remote-helper doesn't support push; refspec needed"
msgstr "remote-heper ä¸æ”¯æ´ push,需è¦å¼•ç”¨è¦æ ¼"
-#: transport-helper.c:1069
+#: transport-helper.c:1072
#, c-format
msgid "helper %s does not support 'force'"
msgstr "å”助工具 %s ä¸æ”¯æ´ 'force'"
-#: transport-helper.c:1116
+#: transport-helper.c:1119
msgid "couldn't run fast-export"
msgstr "無法執行 fast-export"
-#: transport-helper.c:1121
+#: transport-helper.c:1124
msgid "error while running fast-export"
msgstr "執行 fast-export 時發生錯誤"
-#: transport-helper.c:1146
+#: transport-helper.c:1149
#, c-format
msgid ""
"No refs in common and none specified; doing nothing.\n"
@@ -8967,52 +9209,52 @@ msgstr ""
"沒有共åŒçš„引用並且也沒有指定,什麼也ä¸æœƒåšã€‚\n"
"您或許得指定一個分支。\n"
-#: transport-helper.c:1228
+#: transport-helper.c:1231
#, c-format
msgid "unsupported object format '%s'"
msgstr "ä¸æ”¯æ´çš„物件格å¼ã€Œ%sã€"
-#: transport-helper.c:1237
+#: transport-helper.c:1240
#, c-format
msgid "malformed response in ref list: %s"
msgstr "引用列表中格å¼éŒ¯èª¤çš„回應:%s"
-#: transport-helper.c:1389
+#: transport-helper.c:1392
#, c-format
msgid "read(%s) failed"
msgstr "讀å–(%s)失敗"
-#: transport-helper.c:1416
+#: transport-helper.c:1419
#, c-format
msgid "write(%s) failed"
msgstr "寫(%s)失敗"
-#: transport-helper.c:1465
+#: transport-helper.c:1468
#, c-format
msgid "%s thread failed"
msgstr "%s 執行緒失敗"
-#: transport-helper.c:1469
+#: transport-helper.c:1472
#, c-format
msgid "%s thread failed to join: %s"
msgstr "%s 執行緒等待失敗:%s"
-#: transport-helper.c:1488 transport-helper.c:1492
+#: transport-helper.c:1491 transport-helper.c:1495
#, c-format
msgid "can't start thread for copying data: %s"
msgstr "ä¸èƒ½å•Ÿå‹•åŸ·è¡Œç·’來複製資料:%s"
-#: transport-helper.c:1529
+#: transport-helper.c:1532
#, c-format
msgid "%s process failed to wait"
msgstr "%s 進程等待失敗"
-#: transport-helper.c:1533
+#: transport-helper.c:1536
#, c-format
msgid "%s process failed"
msgstr "%s 進程失敗"
-#: transport-helper.c:1551 transport-helper.c:1560
+#: transport-helper.c:1554 transport-helper.c:1563
msgid "can't start thread for copying data"
msgstr "ä¸èƒ½å•Ÿå‹•åŸ·è¡Œç·’來複製資料"
@@ -9021,58 +9263,58 @@ msgstr "ä¸èƒ½å•Ÿå‹•åŸ·è¡Œç·’來複製資料"
msgid "Would set upstream of '%s' to '%s' of '%s'\n"
msgstr "å°‡è¦è¨­å®š '%1$s' 的上游為 '%3$s' çš„ '%2$s'\n"
-#: transport.c:145
+#: transport.c:138
#, c-format
msgid "could not read bundle '%s'"
-msgstr "ç„¡æ³•è®€å– bundle '%s'"
+msgstr "無法讀å–「%sã€å¥—件"
-#: transport.c:227
+#: transport.c:234
#, c-format
msgid "transport: invalid depth option '%s'"
msgstr "傳輸:無效的深度é¸é … '%s'"
-#: transport.c:279
+#: transport.c:289
msgid "see protocol.version in 'git help config' for more details"
msgstr "檢視 'git help config' 中的 protocol.version å–得更多訊æ¯"
-#: transport.c:280
+#: transport.c:290
msgid "server options require protocol version 2 or later"
msgstr "æœå‹™ç«¯é¸é …需è¦ç‰ˆæœ¬ 2 å”定或更高"
-#: transport.c:407
+#: transport.c:418
msgid "server does not support wait-for-done"
msgstr "伺æœå™¨ä¸æ”¯æ´ã€Œç­‰å¾…完æˆã€(wait-for-done) 功能"
-#: transport.c:759
+#: transport.c:770
msgid "could not parse transport.color.* config"
msgstr "ä¸èƒ½è§£æž transport.color.* 設定"
-#: transport.c:834
+#: transport.c:845
msgid "support for protocol v2 not implemented yet"
msgstr "å”定 v2 的支æ´å°šæœªå¯¦ç¾"
-#: transport.c:967
+#: transport.c:978
#, c-format
msgid "unknown value for config '%s': %s"
msgstr "設定 '%s' çš„å–值未知:%s"
-#: transport.c:1033
+#: transport.c:1044
#, c-format
msgid "transport '%s' not allowed"
msgstr "傳輸 '%s' ä¸å…許"
-#: transport.c:1082
+#: transport.c:1093
msgid "git-over-rsync is no longer supported"
msgstr "ä¸å†æ”¯æ´ git-over-rsync"
-#: transport.c:1185
+#: transport.c:1196
#, c-format
msgid ""
"The following submodule paths contain changes that can\n"
"not be found on any remote:\n"
msgstr "下列å­æ¨¡çµ„路徑所包å«çš„修改在任何é ç«¯ä¾†æºä¸­éƒ½æ‰¾ä¸åˆ°ï¼š\n"
-#: transport.c:1189
+#: transport.c:1200
#, c-format
msgid ""
"\n"
@@ -9099,11 +9341,11 @@ msgstr ""
"以推é€è‡³é ç«¯ã€‚\n"
"\n"
-#: transport.c:1197
+#: transport.c:1208
msgid "Aborting."
msgstr "正在終止。"
-#: transport.c:1343
+#: transport.c:1354
msgid "failed to push all needed submodules"
msgstr "ä¸èƒ½æŽ¨é€å…¨éƒ¨éœ€è¦çš„å­æ¨¡çµ„"
@@ -9373,16 +9615,16 @@ msgstr ""
"以下路徑發生碰撞(如:在ä¸å€åˆ†å¤§å°å¯«çš„檔案系統上的å€åˆ†å¤§å°å¯«çš„路徑),\n"
"並且碰撞組中åªæœ‰ä¸€å€‹æª”案存在工作å€ä¸­ï¼š\n"
-#: unpack-trees.c:1636
+#: unpack-trees.c:1664
msgid "Updating index flags"
msgstr "正在更新索引旗標"
-#: unpack-trees.c:2803
+#: unpack-trees.c:2925
#, c-format
msgid "worktree and untracked commit have duplicate entries: %s"
msgstr "工作å€å’Œæœªè¿½è¹¤æ交有é‡è¤‡é …目:%s"
-#: upload-pack.c:1565
+#: upload-pack.c:1579
msgid "expected flush after fetch arguments"
msgstr "在 fetch 引數應為一個 flush 包"
@@ -9419,123 +9661,137 @@ msgstr "無效的 '..' 路徑å€å¡Š"
msgid "Fetching objects"
msgstr "正在抓å–物件"
-#: worktree.c:238 builtin/am.c:2209 builtin/bisect--helper.c:156
+#: worktree.c:237 builtin/am.c:2210 builtin/bisect--helper.c:156
#, c-format
msgid "failed to read '%s'"
msgstr "è®€å– '%s' 失敗"
-#: worktree.c:305
+#: worktree.c:304
#, c-format
msgid "'%s' at main working tree is not the repository directory"
msgstr "在主工作å€çš„ '%s' ä¸æ˜¯ç‰ˆæœ¬åº«ç›®éŒ„"
-#: worktree.c:316
+#: worktree.c:315
#, c-format
msgid "'%s' file does not contain absolute path to the working tree location"
msgstr "檔案 '%s' ä¸åŒ…å«å·¥ä½œå€çš„絕å°è·¯å¾‘"
-#: worktree.c:328
+#: worktree.c:327
#, c-format
msgid "'%s' does not exist"
msgstr "'%s' ä¸å­˜åœ¨"
-#: worktree.c:334
+#: worktree.c:333
#, c-format
msgid "'%s' is not a .git file, error code %d"
msgstr "'%s' ä¸æ˜¯ä¸€å€‹ .git 檔案,錯誤碼 %d"
-#: worktree.c:343
+#: worktree.c:342
#, c-format
msgid "'%s' does not point back to '%s'"
msgstr "'%s' 沒有指回到 '%s'"
-#: worktree.c:604
+#: worktree.c:600
msgid "not a directory"
msgstr "ä¸æ˜¯ç›®éŒ„"
-#: worktree.c:613
+#: worktree.c:609
msgid ".git is not a file"
msgstr ".git ä¸æ˜¯æª”案"
-#: worktree.c:615
+#: worktree.c:611
msgid ".git file broken"
msgstr ".git 檔案æ毀"
-#: worktree.c:617
+#: worktree.c:613
msgid ".git file incorrect"
msgstr ".git 檔案ä¸æ­£ç¢º"
-#: worktree.c:723
+#: worktree.c:719
msgid "not a valid path"
msgstr "éžæœ‰æ•ˆè·¯å¾‘"
-#: worktree.c:729
+#: worktree.c:725
msgid "unable to locate repository; .git is not a file"
msgstr "無法定ä½ç‰ˆæœ¬åº«ï¼›.git ä¸æ˜¯æª”案"
-#: worktree.c:733
+#: worktree.c:729
msgid "unable to locate repository; .git file does not reference a repository"
msgstr "無法定ä½ç‰ˆæœ¬åº«ï¼š.git 檔案未指å‘版本庫"
-#: worktree.c:737
+#: worktree.c:733
msgid "unable to locate repository; .git file broken"
msgstr "無法定ä½ç‰ˆæœ¬åº«ï¼›.git 檔案æ壞"
-#: worktree.c:743
+#: worktree.c:739
msgid "gitdir unreadable"
msgstr "ç„¡æ³•è®€å– gitdir"
-#: worktree.c:747
+#: worktree.c:743
msgid "gitdir incorrect"
msgstr "ä¸æ­£ç¢ºçš„ gitdir"
-#: worktree.c:772
+#: worktree.c:768
msgid "not a valid directory"
msgstr "éžæœ‰æ•ˆç›®éŒ„"
-#: worktree.c:778
+#: worktree.c:774
msgid "gitdir file does not exist"
msgstr "找ä¸åˆ° gitdir 檔案"
-#: worktree.c:783 worktree.c:792
+#: worktree.c:779 worktree.c:788
#, c-format
msgid "unable to read gitdir file (%s)"
msgstr "ç„¡æ³•è®€å– gitdir 檔案 (%s)"
-#: worktree.c:802
+#: worktree.c:798
#, c-format
msgid "short read (expected %<PRIuMAX> bytes, read %<PRIuMAX>)"
msgstr "讀å–éŽçŸ­ï¼ˆé æœŸæœ‰ %<PRIuMAX> ä½å…ƒçµ„,åªè®€åˆ° %<PRIuMAX>)"
-#: worktree.c:810
+#: worktree.c:806
msgid "invalid gitdir file"
msgstr "gitdir 檔案無效"
-#: worktree.c:818
+#: worktree.c:814
msgid "gitdir file points to non-existent location"
msgstr "gitdir 檔案指å‘çš„ä½ç½®ä¸å­˜åœ¨"
-#: wrapper.c:151
+#: worktree.c:830
+#, c-format
+msgid "unable to set %s in '%s'"
+msgstr "無法在「%2$sã€è¨­å®š %1$s"
+
+#: worktree.c:832
+#, c-format
+msgid "unable to unset %s in '%s'"
+msgstr "無法å–消在「%2$sã€è¨­å®šçš„ %1$s"
+
+#: worktree.c:852
+msgid "failed to set extensions.worktreeConfig setting"
+msgstr "無法設定 extensions.worktreeConfig 設定"
+
+#: wrapper.c:161
#, c-format
msgid "could not setenv '%s'"
msgstr "無法 setenv '%s'"
-#: wrapper.c:203
+#: wrapper.c:213
#, c-format
msgid "unable to create '%s'"
msgstr "ä¸èƒ½å»ºç«‹ '%s'"
-#: wrapper.c:205 wrapper.c:375
+#: wrapper.c:215 wrapper.c:385
#, c-format
msgid "could not open '%s' for reading and writing"
msgstr "無法開啟 '%s' 進行讀寫"
-#: wrapper.c:406 wrapper.c:607
+#: wrapper.c:416 wrapper.c:683
#, c-format
msgid "unable to access '%s'"
msgstr "ä¸èƒ½å­˜å– '%s'"
-#: wrapper.c:615
+#: wrapper.c:691
msgid "unable to get current working directory"
msgstr "ä¸èƒ½å–å¾—ç›®å‰å·¥ä½œç›®éŒ„"
@@ -9574,11 +9830,11 @@ msgstr " (酌情使用 \"git add/rm <檔案>...\" 標記解決方案)"
msgid " (use \"git rm <file>...\" to mark resolution)"
msgstr " (使用 \"git rm <檔案>...\" 標記解決方案)"
-#: wt-status.c:211 wt-status.c:1131
+#: wt-status.c:211 wt-status.c:1140
msgid "Changes to be committed:"
msgstr "è¦æ交的變更:"
-#: wt-status.c:234 wt-status.c:1140
+#: wt-status.c:234 wt-status.c:1149
msgid "Changes not staged for commit:"
msgstr "尚未暫存以備æ交的變更:"
@@ -9684,21 +9940,21 @@ msgstr "修改的內容, "
msgid "untracked content, "
msgstr "未追蹤的內容, "
-#: wt-status.c:964
+#: wt-status.c:973
#, c-format
msgid "Your stash currently has %d entry"
msgid_plural "Your stash currently has %d entries"
msgstr[0] "您的儲è—å€ç›®å‰æœ‰ %d æ¢ç´€éŒ„"
-#: wt-status.c:995
+#: wt-status.c:1004
msgid "Submodules changed but not updated:"
msgstr "å­æ¨¡çµ„已修改但尚未更新:"
-#: wt-status.c:997
+#: wt-status.c:1006
msgid "Submodule changes to be committed:"
msgstr "è¦æ交的å­æ¨¡çµ„變更:"
-#: wt-status.c:1079
+#: wt-status.c:1088
msgid ""
"Do not modify or remove the line above.\n"
"Everything below it will be ignored."
@@ -9706,7 +9962,7 @@ msgstr ""
"ä¸è¦æ”¹å‹•æˆ–刪除上é¢çš„一行。\n"
"其下所有內容都將被忽略。"
-#: wt-status.c:1171
+#: wt-status.c:1180
#, c-format
msgid ""
"\n"
@@ -9717,288 +9973,288 @@ msgstr ""
"花了 %.2f 秒æ‰è¨ˆç®—出分支的領先/è½å¾Œç¯„åœã€‚\n"
"為é¿å…,您å¯ä»¥ä½¿ç”¨ '--no-ahead-behind'。\n"
-#: wt-status.c:1201
+#: wt-status.c:1210
msgid "You have unmerged paths."
msgstr "您有尚未åˆä½µçš„路徑。"
# 譯者:請維æŒå‰å°Žç©ºæ ¼
-#: wt-status.c:1204
+#: wt-status.c:1213
msgid " (fix conflicts and run \"git commit\")"
msgstr " (解決è¡çªä¸¦åŸ·è¡Œ \"git commit\")"
# 譯者:請維æŒå‰å°Žç©ºæ ¼
-#: wt-status.c:1206
+#: wt-status.c:1215
msgid " (use \"git merge --abort\" to abort the merge)"
msgstr " (使用 \"git merge --abort\" 終止åˆä½µï¼‰"
-#: wt-status.c:1210
+#: wt-status.c:1219
msgid "All conflicts fixed but you are still merging."
msgstr "所有è¡çªå·²è§£æ±ºä½†æ‚¨ä»è™•æ–¼åˆä½µä¸­ã€‚"
# 譯者:請維æŒå‰å°Žç©ºæ ¼
-#: wt-status.c:1213
+#: wt-status.c:1222
msgid " (use \"git commit\" to conclude merge)"
msgstr " (使用 \"git commit\" çµæŸåˆä½µï¼‰"
-#: wt-status.c:1224
+#: wt-status.c:1233
msgid "You are in the middle of an am session."
msgstr "您正處於 am 動作éŽç¨‹ä¸­ã€‚"
-#: wt-status.c:1227
+#: wt-status.c:1236
msgid "The current patch is empty."
msgstr "ç›®å‰çš„修補檔為空。"
# 譯者:請維æŒå‰å°Žç©ºæ ¼
-#: wt-status.c:1232
+#: wt-status.c:1241
msgid " (fix conflicts and then run \"git am --continue\")"
msgstr " (解決è¡çªï¼Œç„¶å¾ŒåŸ·è¡Œ \"git am --continue\")"
# 譯者:請維æŒå‰å°Žç©ºæ ¼
-#: wt-status.c:1234
+#: wt-status.c:1243
msgid " (use \"git am --skip\" to skip this patch)"
msgstr " (使用 \"git am --skip\" ç•¥éŽæ­¤ä¿®è£œæª”)"
# 譯者:請維æŒå‰å°Žç©ºæ ¼
-#: wt-status.c:1237
+#: wt-status.c:1246
msgid ""
" (use \"git am --allow-empty\" to record this patch as an empty commit)"
msgstr " (使用 \"git am --allow-empty\" 將目å‰ä¿®è£œæª”錄製為空白æ交)"
# 譯者:請維æŒå‰å°Žç©ºæ ¼
-#: wt-status.c:1239
+#: wt-status.c:1248
msgid " (use \"git am --abort\" to restore the original branch)"
msgstr " (使用 \"git am --abort\" 復原原有分支)"
-#: wt-status.c:1372
+#: wt-status.c:1381
msgid "git-rebase-todo is missing."
msgstr "git-rebase-todo éºå¤±ã€‚"
-#: wt-status.c:1374
+#: wt-status.c:1383
msgid "No commands done."
msgstr "沒有指令被執行。"
-#: wt-status.c:1377
+#: wt-status.c:1386
#, c-format
-msgid "Last command done (%d command done):"
-msgid_plural "Last commands done (%d commands done):"
-msgstr[0] "最後一æ¢æŒ‡ä»¤å·²å®Œæˆï¼ˆ%d æ¢æŒ‡ä»¤è¢«åŸ·è¡Œï¼‰ï¼š"
+msgid "Last command done (%<PRIuMAX> command done):"
+msgid_plural "Last commands done (%<PRIuMAX> commands done):"
+msgstr[0] "上次完æˆçš„å‘½ä»¤ï¼ˆå®Œæˆ %<PRIuMAX> æ¢æŒ‡ä»¤ï¼‰ï¼š"
-#: wt-status.c:1388
+#: wt-status.c:1397
#, c-format
msgid " (see more in file %s)"
msgstr " (更多åƒè¦‹æª”案 %s)"
-#: wt-status.c:1393
+#: wt-status.c:1402
msgid "No commands remaining."
msgstr "未剩下任何指令。"
-#: wt-status.c:1396
+#: wt-status.c:1405
#, c-format
-msgid "Next command to do (%d remaining command):"
-msgid_plural "Next commands to do (%d remaining commands):"
-msgstr[0] "接下來è¦åŸ·è¡Œçš„指令(剩餘 %d æ¢æŒ‡ä»¤ï¼‰ï¼š"
+msgid "Next command to do (%<PRIuMAX> remaining command):"
+msgid_plural "Next commands to do (%<PRIuMAX> remaining commands):"
+msgstr[0] "接下來è¦åŸ·è¡Œçš„命令(剩餘 %<PRIuMAX> æ¢å‘½ä»¤ï¼‰ï¼š"
# 譯者:請維æŒå‰å°Žç©ºæ ¼
-#: wt-status.c:1404
+#: wt-status.c:1413
msgid " (use \"git rebase --edit-todo\" to view and edit)"
msgstr " (使用 \"git rebase --edit-todo\" 來檢視和編輯)"
-#: wt-status.c:1416
+#: wt-status.c:1425
#, c-format
msgid "You are currently rebasing branch '%s' on '%s'."
msgstr "您在執行將分支 '%s' é‡å®šåŸºåº•åˆ° '%s' 的動作。"
-#: wt-status.c:1421
+#: wt-status.c:1430
msgid "You are currently rebasing."
msgstr "您在執行é‡å®šåŸºåº•å‹•ä½œã€‚"
# 譯者:請維æŒå‰å°Žç©ºæ ¼
-#: wt-status.c:1434
+#: wt-status.c:1443
msgid " (fix conflicts and then run \"git rebase --continue\")"
msgstr " (解決è¡çªï¼Œç„¶å¾ŒåŸ·è¡Œ \"git rebase --continue\")"
# 譯者:請維æŒå‰å°Žç©ºæ ¼
-#: wt-status.c:1436
+#: wt-status.c:1445
msgid " (use \"git rebase --skip\" to skip this patch)"
msgstr " (使用 \"git rebase --skip\" ç•¥éŽæ­¤ä¿®è£œæª”)"
# 譯者:請維æŒå‰å°Žç©ºæ ¼
-#: wt-status.c:1438
+#: wt-status.c:1447
msgid " (use \"git rebase --abort\" to check out the original branch)"
msgstr " (使用 \"git rebase --abort\" 以簽出原有分支)"
# 譯者:請維æŒå‰å°Žç©ºæ ¼
-#: wt-status.c:1445
+#: wt-status.c:1454
msgid " (all conflicts fixed: run \"git rebase --continue\")"
msgstr " (所有è¡çªå·²è§£æ±ºï¼šåŸ·è¡Œ \"git rebase --continue\")"
-#: wt-status.c:1449
+#: wt-status.c:1458
#, c-format
msgid ""
"You are currently splitting a commit while rebasing branch '%s' on '%s'."
msgstr "您在執行將分支 '%s' é‡å®šåŸºåº•åˆ° '%s' 的動作時分割æ交。"
-#: wt-status.c:1454
+#: wt-status.c:1463
msgid "You are currently splitting a commit during a rebase."
msgstr "您在執行é‡å®šåŸºåº•å‹•ä½œæ™‚分割æ交。"
# 譯者:請維æŒå‰å°Žç©ºæ ¼
-#: wt-status.c:1457
+#: wt-status.c:1466
msgid " (Once your working directory is clean, run \"git rebase --continue\")"
msgstr " (一旦您工作目錄æ交乾淨後,執行 \"git rebase --continue\")"
-#: wt-status.c:1461
+#: wt-status.c:1470
#, c-format
msgid "You are currently editing a commit while rebasing branch '%s' on '%s'."
msgstr "您在執行將分支 '%s' é‡å®šåŸºåº•åˆ° '%s' 的動作時編輯æ交。"
-#: wt-status.c:1466
+#: wt-status.c:1475
msgid "You are currently editing a commit during a rebase."
msgstr "您在執行é‡å®šåŸºåº•å‹•ä½œæ™‚編輯æ交。"
# 譯者:請維æŒå‰å°Žç©ºæ ¼
-#: wt-status.c:1469
+#: wt-status.c:1478
msgid " (use \"git commit --amend\" to amend the current commit)"
msgstr " (使用 \"git commit --amend\" 修補目å‰æ交)"
# 譯者:請維æŒå‰å°Žç©ºæ ¼
-#: wt-status.c:1471
+#: wt-status.c:1480
msgid ""
" (use \"git rebase --continue\" once you are satisfied with your changes)"
msgstr " (當您å°æ‚¨çš„修改滿æ„後執行 \"git rebase --continue\")"
-#: wt-status.c:1482
+#: wt-status.c:1491
msgid "Cherry-pick currently in progress."
msgstr "æ€é¸å‹•ä½œæ­£åœ¨é€²è¡Œä¸­ã€‚"
-#: wt-status.c:1485
+#: wt-status.c:1494
#, c-format
msgid "You are currently cherry-picking commit %s."
msgstr "您在執行æ€é¸æ交 %s 的動作。"
# 譯者:請維æŒå‰å°Žç©ºæ ¼
-#: wt-status.c:1492
+#: wt-status.c:1501
msgid " (fix conflicts and run \"git cherry-pick --continue\")"
msgstr " (解決è¡çªä¸¦åŸ·è¡Œ \"git cherry-pick --continue\")"
# 譯者:請維æŒå‰å°Žç©ºæ ¼
-#: wt-status.c:1495
+#: wt-status.c:1504
msgid " (run \"git cherry-pick --continue\" to continue)"
msgstr " (執行 \"git cherry-pick --continue\" 以繼續)"
# 譯者:請維æŒå‰å°Žç©ºæ ¼
-#: wt-status.c:1498
+#: wt-status.c:1507
msgid " (all conflicts fixed: run \"git cherry-pick --continue\")"
msgstr " (所有è¡çªå·²è§£æ±ºï¼šåŸ·è¡Œ \"git cherry-pick --continue\")"
# 譯者:請維æŒå‰å°Žç©ºæ ¼
-#: wt-status.c:1500
+#: wt-status.c:1509
msgid " (use \"git cherry-pick --skip\" to skip this patch)"
msgstr " (使用 \"git cherry-pick --skip\" ç•¥éŽæ­¤ä¿®è£œæª”)"
# 譯者:請維æŒå‰å°Žç©ºæ ¼
-#: wt-status.c:1502
+#: wt-status.c:1511
msgid " (use \"git cherry-pick --abort\" to cancel the cherry-pick operation)"
msgstr " (使用 \"git cherry-pick --abort\" 以å–消æ€é¸å‹•ä½œï¼‰"
-#: wt-status.c:1512
+#: wt-status.c:1521
msgid "Revert currently in progress."
msgstr "還原動作正在進行中。"
-#: wt-status.c:1515
+#: wt-status.c:1524
#, c-format
msgid "You are currently reverting commit %s."
msgstr "您在執行å轉æ交 %s 的動作。"
# 譯者:請維æŒå‰å°Žç©ºæ ¼
-#: wt-status.c:1521
+#: wt-status.c:1530
msgid " (fix conflicts and run \"git revert --continue\")"
msgstr " (解決è¡çªä¸¦åŸ·è¡Œ \"git revert --continue\")"
# 譯者:請維æŒå‰å°Žç©ºæ ¼
-#: wt-status.c:1524
+#: wt-status.c:1533
msgid " (run \"git revert --continue\" to continue)"
msgstr " (執行 \"git revert --continue\" 以繼續)"
# 譯者:請維æŒå‰å°Žç©ºæ ¼
-#: wt-status.c:1527
+#: wt-status.c:1536
msgid " (all conflicts fixed: run \"git revert --continue\")"
msgstr " (所有è¡çªå·²è§£æ±ºï¼šåŸ·è¡Œ \"git revert --continue\")"
# 譯者:請維æŒå‰å°Žç©ºæ ¼
-#: wt-status.c:1529
+#: wt-status.c:1538
msgid " (use \"git revert --skip\" to skip this patch)"
msgstr " (使用 \"git revert --skip\" ç•¥éŽæ­¤ä¿®è£œæª”)"
# 譯者:請維æŒå‰å°Žç©ºæ ¼
-#: wt-status.c:1531
+#: wt-status.c:1540
msgid " (use \"git revert --abort\" to cancel the revert operation)"
msgstr " (使用 \"git revert --abort\" 以å–消å轉æ交動作)"
-#: wt-status.c:1541
+#: wt-status.c:1550
#, c-format
msgid "You are currently bisecting, started from branch '%s'."
msgstr "您在執行從分支 '%s' 開始的二分æœå°‹å‹•ä½œã€‚"
-#: wt-status.c:1545
+#: wt-status.c:1554
msgid "You are currently bisecting."
msgstr "您在執行二分æœå°‹å‹•ä½œã€‚"
# 譯者:請維æŒå‰å°Žç©ºæ ¼
-#: wt-status.c:1548
+#: wt-status.c:1557
msgid " (use \"git bisect reset\" to get back to the original branch)"
msgstr " (使用 \"git bisect reset\" 簽出原有分支)"
-#: wt-status.c:1559
+#: wt-status.c:1568
msgid "You are in a sparse checkout."
msgstr "您正在稀ç–簽出的工作å€ä¸­ã€‚"
-#: wt-status.c:1562
+#: wt-status.c:1571
#, c-format
msgid "You are in a sparse checkout with %d%% of tracked files present."
msgstr "您處於稀ç–ç°½å‡ºç‹€æ…‹ï¼ŒåŒ…å« %d%% 的追蹤檔案。"
-#: wt-status.c:1806
+#: wt-status.c:1815
msgid "On branch "
msgstr "ä½æ–¼åˆ†æ”¯ "
-#: wt-status.c:1813
+#: wt-status.c:1822
msgid "interactive rebase in progress; onto "
msgstr "互動å¼é‡å®šåŸºåº•å‹•ä½œæ­£åœ¨é€²è¡Œä¸­ï¼›è‡³ "
-#: wt-status.c:1815
+#: wt-status.c:1824
msgid "rebase in progress; onto "
msgstr "é‡å®šåŸºåº•å‹•ä½œæ­£åœ¨é€²è¡Œä¸­ï¼›è‡³ "
-#: wt-status.c:1820
+#: wt-status.c:1829
msgid "HEAD detached at "
msgstr "開頭指標分離於 "
-#: wt-status.c:1822
+#: wt-status.c:1831
msgid "HEAD detached from "
msgstr "開頭指標分離自 "
-#: wt-status.c:1825
+#: wt-status.c:1834
msgid "Not currently on any branch."
msgstr "ç›®å‰ä¸åœ¨ä»»ä½•åˆ†æ”¯ä¸Šã€‚"
-#: wt-status.c:1842
+#: wt-status.c:1851
msgid "Initial commit"
msgstr "åˆå§‹æ交"
-#: wt-status.c:1843
+#: wt-status.c:1852
msgid "No commits yet"
msgstr "å°šç„¡æ交"
-#: wt-status.c:1857
+#: wt-status.c:1866
msgid "Untracked files"
msgstr "未追蹤的檔案"
-#: wt-status.c:1859
+#: wt-status.c:1868
msgid "Ignored files"
msgstr "忽略的檔案"
-#: wt-status.c:1863
+#: wt-status.c:1872
#, c-format
msgid ""
"It took %.2f seconds to enumerate untracked files. 'status -uno'\n"
@@ -10008,97 +10264,97 @@ msgstr ""
"耗費了 %.2f 秒以枚舉未追蹤的檔案。'status -uno' 也許能æ高速度,\n"
"但您需è¦å°å¿ƒä¸è¦å¿˜äº†æ–°å¢žæ–°æª”案(åƒè¦‹ 'git help status')。"
-#: wt-status.c:1869
+#: wt-status.c:1878
#, c-format
msgid "Untracked files not listed%s"
msgstr "未追蹤的檔案沒有列出%s"
# 譯者:中文字串拼接,å¯åˆªé™¤å‰å°Žç©ºæ ¼
-#: wt-status.c:1871
+#: wt-status.c:1880
msgid " (use -u option to show untracked files)"
msgstr " (使用 -u åƒæ•¸é¡¯ç¤ºæœªè¿½è¹¤çš„檔案)"
-#: wt-status.c:1877
+#: wt-status.c:1886
msgid "No changes"
msgstr "沒有修改"
-#: wt-status.c:1882
+#: wt-status.c:1891
#, 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:1886
+#: wt-status.c:1895
#, c-format
msgid "no changes added to commit\n"
msgstr "修改尚未加入æ交\n"
-#: wt-status.c:1890
+#: wt-status.c:1899
#, c-format
msgid ""
"nothing added to commit but untracked files present (use \"git add\" to "
"track)\n"
msgstr "æ交為空,但是存在尚未追蹤的檔案(使用 \"git add\" 建立追蹤)\n"
-#: wt-status.c:1894
+#: wt-status.c:1903
#, c-format
msgid "nothing added to commit but untracked files present\n"
msgstr "æ交為空,但是存在尚未追蹤的檔案\n"
# 譯者:中文字串拼接,å¯åˆªé™¤å‰å°Žç©ºæ ¼
-#: wt-status.c:1898
+#: wt-status.c:1907
#, c-format
msgid "nothing to commit (create/copy files and use \"git add\" to track)\n"
msgstr "無檔案è¦æ交(建立/複製檔案並使用 \"git add\" 建立追蹤)\n"
-#: wt-status.c:1902 wt-status.c:1908
+#: wt-status.c:1911 wt-status.c:1917
#, c-format
msgid "nothing to commit\n"
msgstr "無檔案è¦æ交\n"
# 譯者:中文字串拼接,å¯åˆªé™¤å‰å°Žç©ºæ ¼
-#: wt-status.c:1905
+#: wt-status.c:1914
#, c-format
msgid "nothing to commit (use -u to show untracked files)\n"
msgstr "無檔案è¦æ交(使用 -u 顯示未追蹤的檔案)\n"
# 譯者:中文字串拼接,å¯åˆªé™¤å‰å°Žç©ºæ ¼
-#: wt-status.c:1910
+#: wt-status.c:1919
#, c-format
msgid "nothing to commit, working tree clean\n"
msgstr "沒有è¦æ交的檔案,工作å€ç‚ºä¹¾æ·¨ç‹€æ…‹\n"
-#: wt-status.c:2015
+#: wt-status.c:2024
msgid "No commits yet on "
msgstr "å°šç„¡æ交在 "
-#: wt-status.c:2019
+#: wt-status.c:2028
msgid "HEAD (no branch)"
msgstr "HEAD(éžåˆ†æ”¯ï¼‰"
-#: wt-status.c:2050
+#: wt-status.c:2059
msgid "different"
msgstr "ä¸åŒ"
# 譯者:請維æŒå¥å°¾ç©ºæ ¼
-#: wt-status.c:2052 wt-status.c:2060
+#: wt-status.c:2061 wt-status.c:2069
msgid "behind "
msgstr "è½å¾Œ "
-#: wt-status.c:2055 wt-status.c:2058
+#: wt-status.c:2064 wt-status.c:2067
msgid "ahead "
msgstr "領先 "
#. TRANSLATORS: the action is e.g. "pull with rebase"
-#: wt-status.c:2596
+#: wt-status.c:2605
#, c-format
msgid "cannot %s: You have unstaged changes."
msgstr "ä¸èƒ½%s:您有未暫存的變更。"
-#: wt-status.c:2602
+#: wt-status.c:2611
msgid "additionally, your index contains uncommitted changes."
msgstr "å¦å¤–,您的索引中包å«æœªæ交的變更。"
-#: wt-status.c:2604
+#: wt-status.c:2613
#, c-format
msgid "cannot %s: Your index contains uncommitted changes."
msgstr "ä¸èƒ½%s:您的索引中包å«æœªæ交的變更。"
@@ -10121,145 +10377,149 @@ msgstr "無法啟動 accept_thread “%sâ€"
msgid "could not start worker[0] for '%s'"
msgstr "無法啟動「%sã€çš„ worker[0]"
-#: compat/precompose_utf8.c:58 builtin/clone.c:347
+#: compat/precompose_utf8.c:58 builtin/clone.c:353
#, c-format
msgid "failed to unlink '%s'"
msgstr "刪除 '%s' 失敗"
+#: compat/fsmonitor/fsm-listen-darwin.c:355
+msgid "Unable to create FSEventStream."
+msgstr "無法建立 FSEventStream。"
+
+#: compat/fsmonitor/fsm-listen-darwin.c:403
+msgid "Failed to start the FSEventStream"
+msgstr "無法啟動 FSEventStream"
+
#: builtin/add.c:26
msgid "git add [<options>] [--] <pathspec>..."
msgstr "git add [<é¸é …>] [--] <路徑è¦æ ¼>..."
-#: builtin/add.c:64
+#: builtin/add.c:63
#, c-format
msgid "cannot chmod %cx '%s'"
msgstr "無法 chmod %cx ‘%s’"
-#: builtin/add.c:106
+#: builtin/add.c:105
#, c-format
msgid "unexpected diff status %c"
msgstr "æ„外的差異狀態 %c"
-#: builtin/add.c:111 builtin/commit.c:298
+#: builtin/add.c:110 builtin/commit.c:299
msgid "updating files failed"
msgstr "更新檔案失敗"
-#: builtin/add.c:121
+#: builtin/add.c:120
#, c-format
msgid "remove '%s'\n"
msgstr "刪除 '%s'\n"
-#: builtin/add.c:205
+#: builtin/add.c:204
msgid "Unstaged changes after refreshing the index:"
msgstr "é‡æ–°æ•´ç†ç´¢å¼•ä¹‹å¾Œå°šæœªè¢«æš«å­˜çš„變更:"
-#: builtin/add.c:313 builtin/rev-parse.c:993
+#: builtin/add.c:312 builtin/rev-parse.c:993
msgid "Could not read the index"
msgstr "ä¸èƒ½è®€å–索引"
-#: builtin/add.c:326
+#: builtin/add.c:325
msgid "Could not write patch"
msgstr "ä¸èƒ½ç”Ÿæˆä¿®è£œæª”"
-#: builtin/add.c:329
+#: builtin/add.c:328
msgid "editing patch failed"
msgstr "編輯修補檔失敗"
-#: builtin/add.c:332
+#: builtin/add.c:331
#, c-format
msgid "Could not stat '%s'"
msgstr "ä¸èƒ½å° '%s' å‘¼å« stat"
-#: builtin/add.c:334
+#: builtin/add.c:333
msgid "Empty patch. Aborted."
msgstr "空修補檔。異常終止。"
-#: builtin/add.c:340
+#: builtin/add.c:339
#, c-format
msgid "Could not apply '%s'"
msgstr "ä¸èƒ½å¥—用 '%s'"
-#: builtin/add.c:348
+#: builtin/add.c:347
msgid "The following paths are ignored by one of your .gitignore files:\n"
msgstr "下列路徑根據您的一個 .gitignore 檔案而被忽略:\n"
-#: builtin/add.c:368 builtin/clean.c:927 builtin/fetch.c:174 builtin/mv.c:124
+#: builtin/add.c:367 builtin/clean.c:927 builtin/fetch.c:175 builtin/mv.c:124
#: builtin/prune-packed.c:14 builtin/pull.c:208 builtin/push.c:550
-#: builtin/remote.c:1429 builtin/rm.c:244 builtin/send-pack.c:194
+#: builtin/remote.c:1454 builtin/rm.c:244 builtin/send-pack.c:194
msgid "dry run"
msgstr "測試執行"
-#: builtin/add.c:369 builtin/check-ignore.c:22 builtin/commit.c:1484
-#: builtin/count-objects.c:98 builtin/fsck.c:789 builtin/log.c:2313
+#: builtin/add.c:368 builtin/check-ignore.c:22 builtin/commit.c:1483
+#: builtin/count-objects.c:98 builtin/fsck.c:789 builtin/log.c:2338
#: builtin/mv.c:123 builtin/read-tree.c:120
msgid "be verbose"
msgstr "詳細輸出"
-#: builtin/add.c:371
+#: builtin/add.c:370
msgid "interactive picking"
msgstr "互動å¼æ€é¸"
-#: builtin/add.c:372 builtin/checkout.c:1581 builtin/reset.c:409
+#: builtin/add.c:371 builtin/checkout.c:1599 builtin/reset.c:417
msgid "select hunks interactively"
msgstr "互動å¼æŒ‘é¸è³‡æ–™å€å¡Š"
-#: builtin/add.c:373
+#: builtin/add.c:372
msgid "edit current diff and apply"
msgstr "編輯目å‰å·®ç•°ä¸¦å¥—用"
-#: builtin/add.c:374
+#: builtin/add.c:373
msgid "allow adding otherwise ignored files"
msgstr "å…許新增忽略的檔案"
-#: builtin/add.c:375
+#: builtin/add.c:374
msgid "update tracked files"
msgstr "更新已追蹤的檔案"
-#: builtin/add.c:376
+#: builtin/add.c:375
msgid "renormalize EOL of tracked files (implies -u)"
msgstr "å°å·²è¿½è¹¤æª”æ¡ˆï¼ˆéš±å« -u)é‡æ–°æ­¸ä¸€æ›è¡Œç¬¦è™Ÿ"
-#: builtin/add.c:377
+#: builtin/add.c:376
msgid "record only the fact that the path will be added later"
msgstr "åªè¨˜éŒ„,該路徑ç¨å¾Œå†æ–°å¢ž"
-#: builtin/add.c:378
+#: builtin/add.c:377
msgid "add changes from all tracked and untracked files"
msgstr "新增所有改變的已追蹤檔案和未追蹤檔案"
-#: builtin/add.c:381
+#: builtin/add.c:380
msgid "ignore paths removed in the working tree (same as --no-all)"
msgstr "忽略工作å€ä¸­ç§»é™¤çš„路徑(和 --no-all 相åŒï¼‰"
-#: builtin/add.c:383
+#: builtin/add.c:382
msgid "don't add, only refresh the index"
msgstr "ä¸æ–°å¢žï¼Œåªé‡æ–°æ•´ç†ç´¢å¼•"
-#: builtin/add.c:384
+#: builtin/add.c:383
msgid "just skip files which cannot be added because of errors"
msgstr "ç•¥éŽå› ç™¼ç”ŸéŒ¯èª¤ä¸èƒ½æ–°å¢žçš„檔案"
-#: builtin/add.c:385
+#: builtin/add.c:384
msgid "check if - even missing - files are ignored in dry run"
msgstr "檢查在測試執行模å¼ä¸‹æª”案(å³ä½¿ä¸å­˜åœ¨ï¼‰æ˜¯å¦è¢«å¿½ç•¥"
-#: builtin/add.c:386 builtin/mv.c:128 builtin/rm.c:251
+#: builtin/add.c:385 builtin/mv.c:128 builtin/rm.c:251
msgid "allow updating entries outside of the sparse-checkout cone"
msgstr "å…許更新稀ç–簽出 cone 外的項目"
-#: builtin/add.c:388 builtin/update-index.c:1004
+#: builtin/add.c:387 builtin/update-index.c:1023
msgid "override the executable bit of the listed files"
msgstr "覆蓋列表裡檔案的å¯åŸ·è¡Œä½"
-#: builtin/add.c:390
+#: builtin/add.c:389
msgid "warn when adding an embedded repository"
msgstr "建立一個嵌入å¼ç‰ˆæœ¬åº«æ™‚給予警告"
-#: builtin/add.c:392
-msgid "backend for `git stash -p`"
-msgstr "`git stash -p` 的後端"
-
-#: builtin/add.c:410
+#: builtin/add.c:407
#, c-format
msgid ""
"You've added another git repository inside your current repository.\n"
@@ -10288,12 +10548,12 @@ msgstr ""
"\n"
"åƒè¦‹ \"git help submodule\" å–得更多訊æ¯ã€‚"
-#: builtin/add.c:439
+#: builtin/add.c:436
#, c-format
msgid "adding embedded git repository: %s"
msgstr "æ­£åœ¨æ–°å¢žåµŒå…¥å¼ git 版本庫:%s"
-#: builtin/add.c:459
+#: builtin/add.c:456
msgid ""
"Use -f if you really want to add them.\n"
"Turn this message off by running\n"
@@ -10303,27 +10563,27 @@ msgstr ""
"如è¦é—œé–‰æ­¤è¨Šæ¯ï¼Œè«‹åŸ·è¡Œ\n"
"\"git config advice.addIgnoredFile false\""
-#: builtin/add.c:474
+#: builtin/add.c:471
msgid "adding files failed"
msgstr "新增檔案失敗"
-#: builtin/add.c:548
+#: builtin/add.c:534
#, c-format
msgid "--chmod param '%s' must be either -x or +x"
msgstr "åƒæ•¸ --chmod å–值 '%s' 必須是 -x 或 +x"
-#: builtin/add.c:569 builtin/checkout.c:1751 builtin/commit.c:364
-#: builtin/reset.c:429 builtin/rm.c:275 builtin/stash.c:1713
+#: builtin/add.c:555 builtin/checkout.c:1770 builtin/commit.c:365
+#: builtin/reset.c:436 builtin/rm.c:275 builtin/stash.c:1702
#, c-format
msgid "'%s' and pathspec arguments cannot be used together"
msgstr "「%sã€å’Œè·¯å¾‘è¦æ ¼å¼•æ•¸ä¸å¾—åŒæ™‚使用"
-#: builtin/add.c:580
+#: builtin/add.c:566
#, c-format
msgid "Nothing specified, nothing added.\n"
msgstr "沒有指定檔案,也沒有檔案被新增。\n"
-#: builtin/add.c:582
+#: builtin/add.c:568
msgid ""
"Maybe you wanted to say 'git add .'?\n"
"Turn this message off by running\n"
@@ -10333,111 +10593,106 @@ msgstr ""
"如è¦é—œé–‰æ­¤è¨Šæ¯ï¼Œè«‹åŸ·è¡Œ\n"
"\"git config advice.addEmptyPathspec false\""
-#: builtin/am.c:202
-#, c-format
-msgid "Invalid value for --empty: %s"
-msgstr "傳入 --empty 的值無效:%s"
-
-#: builtin/am.c:392
+#: builtin/am.c:393
msgid "could not parse author script"
msgstr "ä¸èƒ½è§£æžä½œè€…腳本"
-#: builtin/am.c:482
+#: builtin/am.c:483
#, c-format
msgid "'%s' was deleted by the applypatch-msg hook"
msgstr "'%s' 被 applypatch-msg 掛鉤刪除"
-#: builtin/am.c:524
+#: builtin/am.c:525
#, c-format
msgid "Malformed input line: '%s'."
msgstr "éžæ³•çš„輸入行:'%s'。"
-#: builtin/am.c:562
+#: builtin/am.c:563
#, c-format
msgid "Failed to copy notes from '%s' to '%s'"
msgstr "從 '%s' 複製註解到 '%s' 時失敗"
-#: builtin/am.c:588
+#: builtin/am.c:589
msgid "fseek failed"
msgstr "fseek 失敗"
-#: builtin/am.c:776
+#: builtin/am.c:777
#, c-format
msgid "could not parse patch '%s'"
msgstr "無法解æžä¿®è£œæª” '%s'"
-#: builtin/am.c:841
+#: builtin/am.c:842
msgid "Only one StGIT patch series can be applied at once"
msgstr "一次åªèƒ½æœ‰ä¸€å€‹ StGIT 修補檔佇列被套用"
-#: builtin/am.c:889
+#: builtin/am.c:890
msgid "invalid timestamp"
msgstr "無效的時間戳"
-#: builtin/am.c:894 builtin/am.c:906
+#: builtin/am.c:895 builtin/am.c:907
msgid "invalid Date line"
msgstr "無效的日期行"
-#: builtin/am.c:901
+#: builtin/am.c:902
msgid "invalid timezone offset"
msgstr "無效的時å€ä½ç§»å€¼"
-#: builtin/am.c:994
+#: builtin/am.c:995
msgid "Patch format detection failed."
msgstr "修補檔格å¼åµæ¸¬å¤±æ•—。"
-#: builtin/am.c:999 builtin/clone.c:300
+#: builtin/am.c:1000 builtin/clone.c:306
#, c-format
msgid "failed to create directory '%s'"
msgstr "建立目錄 '%s' 失敗"
-#: builtin/am.c:1004
+#: builtin/am.c:1005
msgid "Failed to split patches."
msgstr "分割修補檔失敗。"
-#: builtin/am.c:1153
+#: builtin/am.c:1154
#, c-format
msgid "When you have resolved this problem, run \"%s --continue\"."
msgstr "當您解決這一å•é¡Œï¼ŒåŸ·è¡Œ \"%s --continue\"。"
-#: builtin/am.c:1154
+#: builtin/am.c:1155
#, c-format
msgid "If you prefer to skip this patch, run \"%s --skip\" instead."
msgstr "如果您想è¦ç•¥éŽé€™ä¸€ä¿®è£œæª”,則執行 \"%s --skip\"。"
-#: builtin/am.c:1159
+#: builtin/am.c:1160
#, c-format
msgid "To record the empty patch as an empty commit, run \"%s --allow-empty\"."
msgstr "è‹¥è¦å°‡ç©ºç™½ä¿®è£œæª”錄製為空白æ交,請執行「%s --allow-emptyã€ã€‚"
-#: builtin/am.c:1161
+#: builtin/am.c:1162
#, c-format
msgid "To restore the original branch and stop patching, run \"%s --abort\"."
msgstr "è‹¥è¦å¾©åŽŸè‡³åŽŸå§‹åˆ†æ”¯ä¸¦åœæ­¢ä¿®è£œå‹•ä½œï¼ŒåŸ·è¡Œ \"%s --abort\"。"
-#: builtin/am.c:1256
+#: builtin/am.c:1257
msgid "Patch sent with format=flowed; space at the end of lines might be lost."
msgstr "修補檔使用 format=flowed æ ¼å¼å‚³é€ï¼Œè¡Œå°¾çš„空格å¯èƒ½æœƒéºå¤±ã€‚"
-#: builtin/am.c:1344
+#: builtin/am.c:1345
#, c-format
msgid "missing author line in commit %s"
msgstr "在æ交 %s 中缺少作者行"
-#: builtin/am.c:1347
+#: builtin/am.c:1348
#, c-format
msgid "invalid ident line: %.*s"
msgstr "無效的身份標記:%.*s"
-#: builtin/am.c:1566
+#: builtin/am.c:1567
msgid "Repository lacks necessary blobs to fall back on 3-way merge."
msgstr "版本庫缺ä¹å¿…è¦çš„資料物件以進行三方åˆä½µã€‚"
-#: builtin/am.c:1568
+#: builtin/am.c:1569
msgid "Using index info to reconstruct a base tree..."
msgstr "使用索引來é‡å»ºä¸€å€‹ï¼ˆä¸‰æ–¹åˆä½µçš„)基礎目錄樹..."
-#: builtin/am.c:1587
+#: builtin/am.c:1588
msgid ""
"Did you hand edit your patch?\n"
"It does not apply to blobs recorded in its index."
@@ -10445,24 +10700,24 @@ msgstr ""
"您是å¦æ›¾æ‰‹å‹•ç·¨è¼¯éŽæ‚¨çš„修補檔?\n"
"無法套用修補檔到索引中的資料物件上。"
-#: builtin/am.c:1593
+#: builtin/am.c:1594
msgid "Falling back to patching base and 3-way merge..."
msgstr "回è½åˆ°åŸºç¤Žç‰ˆæœ¬ä¸Šä¿®è£œåŠé€²è¡Œä¸‰æ–¹åˆä½µ..."
-#: builtin/am.c:1619
+#: builtin/am.c:1620
msgid "Failed to merge in the changes."
msgstr "無法åˆä½µè®Šæ›´ã€‚"
-#: builtin/am.c:1651
+#: builtin/am.c:1652
msgid "applying to an empty history"
msgstr "正套用到一個空歷å²ä¸Š"
-#: builtin/am.c:1703 builtin/am.c:1707
+#: builtin/am.c:1704 builtin/am.c:1708
#, c-format
msgid "cannot resume: %s does not exist."
msgstr "無法繼續:%s ä¸å­˜åœ¨ã€‚"
-#: builtin/am.c:1725
+#: builtin/am.c:1726
msgid "Commit Body is:"
msgstr "æ交內容為:"
@@ -10471,57 +10726,57 @@ msgstr "æ交內容為:"
#. in your translation. The program will only accept English
#. input at this point.
#.
-#: builtin/am.c:1735
+#: builtin/am.c:1736
#, c-format
msgid "Apply? [y]es/[n]o/[e]dit/[v]iew patch/[a]ccept all: "
msgstr "套用?是[y]/å¦[n]/編輯[e]/檢視修補檔[v]/全部接å—[a]: "
-#: builtin/am.c:1781 builtin/commit.c:409
+#: builtin/am.c:1782 builtin/commit.c:410
msgid "unable to write index file"
msgstr "無法寫入索引檔案"
-#: builtin/am.c:1785
+#: builtin/am.c:1786
#, c-format
msgid "Dirty index: cannot apply patches (dirty: %s)"
msgstr "髒索引:ä¸èƒ½å¥—用修補檔(髒檔案:%s)"
-#: builtin/am.c:1827
+#: builtin/am.c:1828
#, c-format
msgid "Skipping: %.*s"
msgstr "ç•¥éŽï¼š%.*s"
-#: builtin/am.c:1832
+#: builtin/am.c:1833
#, c-format
msgid "Creating an empty commit: %.*s"
msgstr "建立空白æ交:%.*s"
-#: builtin/am.c:1836
+#: builtin/am.c:1837
msgid "Patch is empty."
msgstr "修補檔為空。"
-#: builtin/am.c:1847 builtin/am.c:1916
+#: builtin/am.c:1848 builtin/am.c:1917
#, c-format
msgid "Applying: %.*s"
msgstr "套用:%.*s"
-#: builtin/am.c:1864
+#: builtin/am.c:1865
msgid "No changes -- Patch already applied."
msgstr "沒有變更——修補檔已經套用éŽã€‚"
-#: builtin/am.c:1870
+#: builtin/am.c:1871
#, c-format
msgid "Patch failed at %s %.*s"
msgstr "打修補檔失敗於 %s %.*s"
-#: builtin/am.c:1874
+#: builtin/am.c:1875
msgid "Use 'git am --show-current-patch=diff' to see the failed patch"
msgstr "用 'git am --show-current-patch=diff' 命令檢視失敗的修補檔"
-#: builtin/am.c:1920
+#: builtin/am.c:1921
msgid "No changes - recorded it as an empty commit."
msgstr "沒有變更 ï¼ å°‡å…¶éŒ„è£½ç‚ºç©ºç™½æ交。"
-#: builtin/am.c:1922
+#: builtin/am.c:1923
msgid ""
"No changes - did you forget to use 'git add'?\n"
"If there is nothing left to stage, chances are that something else\n"
@@ -10531,7 +10786,7 @@ msgstr ""
"如果沒有什麼è¦æ–°å¢žåˆ°æš«å­˜å€çš„,則很å¯èƒ½æ˜¯å…¶å®ƒæ交已經引入了相åŒçš„變更。\n"
"您也許想è¦ç•¥éŽé€™å€‹ä¿®è£œæª”。"
-#: builtin/am.c:1930
+#: builtin/am.c:1931
msgid ""
"You still have unmerged paths in your index.\n"
"You should 'git add' each file with resolved conflicts to mark them as "
@@ -10542,183 +10797,174 @@ msgstr ""
"您應該å°å·²ç¶“è¡çªè§£æ±ºçš„æ¯ä¸€å€‹æª”案執行 'git add' 來標記已經完æˆã€‚ \n"
"ä½ å¯ä»¥å° \"由他們刪除\" 的檔案執行 `git rm` 指令。"
-#: builtin/am.c:2038 builtin/am.c:2042 builtin/am.c:2054 builtin/reset.c:448
-#: builtin/reset.c:456
+#: builtin/am.c:2039 builtin/am.c:2043 builtin/am.c:2055 builtin/reset.c:455
+#: builtin/reset.c:463
#, c-format
msgid "Could not parse object '%s'."
msgstr "ä¸èƒ½è§£æžç‰©ä»¶ '%s'。"
-#: builtin/am.c:2090 builtin/am.c:2166
+#: builtin/am.c:2091 builtin/am.c:2167
msgid "failed to clean index"
msgstr "清空索引失敗"
-#: builtin/am.c:2134
+#: builtin/am.c:2135
msgid ""
"You seem to have moved HEAD since the last 'am' failure.\n"
"Not rewinding to ORIG_HEAD"
msgstr "您好åƒåœ¨ä¸Šä¸€æ¬¡ 'am' 失敗後移動了 HEAD。未還原至 ORIG_HEAD"
-#: builtin/am.c:2242
-#, c-format
-msgid "Invalid value for --patch-format: %s"
-msgstr "無效的 --patch-format 值:%s"
-
-#: builtin/am.c:2285
-#, c-format
-msgid "Invalid value for --show-current-patch: %s"
-msgstr "無效的 --show-current-patch 值:%s"
-
-#: builtin/am.c:2289
+#: builtin/am.c:2292
#, c-format
msgid "options '%s=%s' and '%s=%s' cannot be used together"
msgstr "「%s=%sã€å’Œã€Œ%s=%sã€é¸é …ä¸å¾—åŒæ™‚使用"
-#: builtin/am.c:2320
+#: builtin/am.c:2323
msgid "git am [<options>] [(<mbox> | <Maildir>)...]"
msgstr "git am [<é¸é …>] [(<mbox> | <Maildir>)...]"
-#: builtin/am.c:2321
+#: builtin/am.c:2324
msgid "git am [<options>] (--continue | --skip | --abort)"
msgstr "git am [<é¸é …>] (--continue | --skip | --abort)"
-#: builtin/am.c:2327
+#: builtin/am.c:2330
msgid "run interactively"
msgstr "以互動å¼æ–¹å¼åŸ·è¡Œ"
-#: builtin/am.c:2329
+#: builtin/am.c:2332
msgid "historical option -- no-op"
msgstr "è€çš„åƒæ•¸ —— 無作用"
-#: builtin/am.c:2331
+#: builtin/am.c:2334
msgid "allow fall back on 3way merging if needed"
msgstr "如果必è¦ï¼Œå…許使用三方åˆä½µ"
-#: builtin/am.c:2332 builtin/init-db.c:547 builtin/prune-packed.c:16
-#: builtin/repack.c:642 builtin/stash.c:962
+#: builtin/am.c:2335 builtin/init-db.c:547 builtin/prune-packed.c:16
+#: builtin/repack.c:646 builtin/stash.c:946
msgid "be quiet"
msgstr "éœé»˜æ¨¡å¼"
-#: builtin/am.c:2334
+#: builtin/am.c:2337
msgid "add a Signed-off-by trailer to the commit message"
msgstr "在æ交說明çµå°¾åŠ å…¥ Signed-off-by"
-#: builtin/am.c:2337
+#: builtin/am.c:2340
msgid "recode into utf8 (default)"
msgstr "使用 utf8 字元集(é è¨­ï¼‰"
-#: builtin/am.c:2339
+#: builtin/am.c:2342
msgid "pass -k flag to git-mailinfo"
msgstr "å‘ git-mailinfo å‚³éž -k åƒæ•¸"
-#: builtin/am.c:2341
+#: builtin/am.c:2344
msgid "pass -b flag to git-mailinfo"
msgstr "å‘ git-mailinfo å‚³éž -b åƒæ•¸"
-#: builtin/am.c:2343
+#: builtin/am.c:2346
msgid "pass -m flag to git-mailinfo"
msgstr "å‘ git-mailinfo å‚³éž -m åƒæ•¸"
-#: builtin/am.c:2345
+#: builtin/am.c:2348
msgid "pass --keep-cr flag to git-mailsplit for mbox format"
msgstr "é‡å° mbox æ ¼å¼ï¼Œå‘ git-mailsplit å‚³éž --keep-cr åƒæ•¸"
-#: builtin/am.c:2348
+#: builtin/am.c:2351
msgid "do not pass --keep-cr flag to git-mailsplit independent of am.keepcr"
msgstr "ä¸å‘ git-mailsplit å‚³éž --keep-cr åƒæ•¸ï¼Œè¦†è“‹ am.keepcr 的設定"
-#: builtin/am.c:2351
+#: builtin/am.c:2354
msgid "strip everything before a scissors line"
msgstr "æ¨æ£„è£åˆ‡ç·šå‰çš„所有內容"
-#: builtin/am.c:2353
+#: builtin/am.c:2356
msgid "pass it through git-mailinfo"
msgstr "é€éŽ git-mailinfo 傳éž"
-#: builtin/am.c:2356 builtin/am.c:2359 builtin/am.c:2362 builtin/am.c:2365
-#: builtin/am.c:2368 builtin/am.c:2371 builtin/am.c:2374 builtin/am.c:2377
-#: builtin/am.c:2383
+#: builtin/am.c:2359 builtin/am.c:2362 builtin/am.c:2365 builtin/am.c:2368
+#: builtin/am.c:2371 builtin/am.c:2374 builtin/am.c:2377 builtin/am.c:2380
+#: builtin/am.c:2386
msgid "pass it through git-apply"
msgstr "傳éžçµ¦ git-apply"
-#: builtin/am.c:2373 builtin/commit.c:1515 builtin/fmt-merge-msg.c:18
-#: builtin/fmt-merge-msg.c:21 builtin/grep.c:919 builtin/merge.c:263
+#: builtin/am.c:2376 builtin/commit.c:1514 builtin/fmt-merge-msg.c:18
+#: builtin/fmt-merge-msg.c:21 builtin/grep.c:920 builtin/merge.c:263
#: builtin/pull.c:142 builtin/pull.c:204 builtin/pull.c:221
-#: builtin/rebase.c:1046 builtin/repack.c:653 builtin/repack.c:657
-#: builtin/repack.c:659 builtin/show-branch.c:649 builtin/show-ref.c:172
-#: builtin/tag.c:445 parse-options.h:154 parse-options.h:175
-#: parse-options.h:317
+#: builtin/rebase.c:1074 builtin/repack.c:657 builtin/repack.c:661
+#: builtin/repack.c:663 builtin/show-branch.c:650 builtin/show-ref.c:172
+#: builtin/tag.c:446 parse-options.h:159 parse-options.h:180
+#: parse-options.h:348
msgid "n"
msgstr "n"
-#: builtin/am.c:2379 builtin/branch.c:680 builtin/bugreport.c:109
-#: builtin/for-each-ref.c:41 builtin/replace.c:555 builtin/tag.c:479
-#: builtin/verify-tag.c:38
+#: builtin/am.c:2382 builtin/branch.c:695 builtin/bugreport.c:109
+#: builtin/cat-file.c:848 builtin/cat-file.c:852 builtin/cat-file.c:856
+#: builtin/for-each-ref.c:41 builtin/ls-tree.c:357 builtin/replace.c:555
+#: builtin/tag.c:480 builtin/verify-tag.c:38
msgid "format"
msgstr "æ ¼å¼"
-#: builtin/am.c:2380
+#: builtin/am.c:2383
msgid "format the patch(es) are in"
msgstr "修補檔的格å¼"
-#: builtin/am.c:2386
+#: builtin/am.c:2389
msgid "override error message when patch failure occurs"
msgstr "打修補檔失敗時顯示的錯誤訊æ¯"
-#: builtin/am.c:2388
+#: builtin/am.c:2391
msgid "continue applying patches after resolving a conflict"
msgstr "è¡çªè§£æ±ºå¾Œç¹¼çºŒå¥—用修補檔"
-#: builtin/am.c:2391
+#: builtin/am.c:2394
msgid "synonyms for --continue"
msgstr "å’Œ --continue åŒç¾©"
-#: builtin/am.c:2394
+#: builtin/am.c:2397
msgid "skip the current patch"
msgstr "ç•¥éŽç›®å‰ä¿®è£œæª”"
-#: builtin/am.c:2397
+#: builtin/am.c:2400
msgid "restore the original branch and abort the patching operation"
msgstr "還原原始分支並中止修補動作"
-#: builtin/am.c:2400
+#: builtin/am.c:2403
msgid "abort the patching operation but keep HEAD where it is"
msgstr "終止修補動作但ä¿æŒ HEAD ä¸è®Š"
-#: builtin/am.c:2404
+#: builtin/am.c:2407
msgid "show the patch being applied"
msgstr "顯示正在套用的修補檔"
-#: builtin/am.c:2408
+#: builtin/am.c:2411
msgid "record the empty patch as an empty commit"
msgstr "將空白修補檔錄製為空白æ交"
-#: builtin/am.c:2412
+#: builtin/am.c:2415
msgid "lie about committer date"
msgstr "將作者日期作為æ交日期"
-#: builtin/am.c:2414
+#: builtin/am.c:2417
msgid "use current timestamp for author date"
msgstr "用目å‰æ™‚間作為作者日期"
-#: builtin/am.c:2416 builtin/commit-tree.c:118 builtin/commit.c:1643
-#: builtin/merge.c:302 builtin/pull.c:179 builtin/rebase.c:1099
-#: builtin/revert.c:117 builtin/tag.c:460
+#: builtin/am.c:2419 builtin/commit-tree.c:118 builtin/commit.c:1642
+#: builtin/merge.c:302 builtin/pull.c:179 builtin/rebase.c:1127
+#: builtin/revert.c:117 builtin/tag.c:461
msgid "key-id"
msgstr "key-id"
-#: builtin/am.c:2417 builtin/rebase.c:1100
+#: builtin/am.c:2420 builtin/rebase.c:1128
msgid "GPG-sign commits"
msgstr "使用 GPG ç°½åæ交"
-#: builtin/am.c:2420
+#: builtin/am.c:2423
msgid "how to handle empty patches"
msgstr "空白修補檔的處ç†æ–¹å¼"
-#: builtin/am.c:2423
+#: builtin/am.c:2426
msgid "(internal use for git-rebase)"
msgstr "(內部使用,用於 git-rebase)"
-#: builtin/am.c:2441
+#: builtin/am.c:2444
msgid ""
"The -b/--binary option has been a no-op for long time, and\n"
"it will be removed. Please do not use it anymore."
@@ -10726,16 +10972,16 @@ msgstr ""
"åƒæ•¸ -b/--binary 已經很長時間ä¸åšä»»ä½•å¯¦è³ªå‹•ä½œäº†ï¼Œä¸¦ä¸”將被移除。\n"
"è«‹ä¸è¦å†ä½¿ç”¨å®ƒäº†ã€‚"
-#: builtin/am.c:2448
+#: builtin/am.c:2451
msgid "failed to read the index"
msgstr "讀å–索引失敗"
-#: builtin/am.c:2463
+#: builtin/am.c:2466
#, c-format
msgid "previous rebase directory %s still exists but mbox given."
msgstr "之å‰çš„é‡å®šåŸºåº•ç›®éŒ„ %s ä»ç„¶å­˜åœ¨ï¼Œä½†å»æ供了 mbox。"
-#: builtin/am.c:2487
+#: builtin/am.c:2490
#, c-format
msgid ""
"Stray %s directory found.\n"
@@ -10744,11 +10990,11 @@ msgstr ""
"發ç¾äº†éŒ¯èª¤çš„ %s 目錄。\n"
"使用 \"git am --abort\" 刪除它。"
-#: builtin/am.c:2493
+#: builtin/am.c:2496
msgid "Resolve operation not in progress, we are not resuming."
msgstr "解決動作未進行,我們ä¸æœƒç¹¼çºŒã€‚"
-#: builtin/am.c:2503
+#: builtin/am.c:2506
msgid "interactive mode requires patches on the command line"
msgstr "互動å¼æ¨¡å¼éœ€è¦æŒ‡ä»¤åˆ—上æ供修補檔"
@@ -10785,14 +11031,6 @@ msgstr "git archive:應有一個 flush 包"
msgid "git bisect--helper --bisect-reset [<commit>]"
msgstr "git bisect--helper --bisect-reset [<æ交>]"
-#: builtin/bisect--helper.c:25
-msgid ""
-"git bisect--helper --bisect-terms [--term-good | --term-old | --term-bad | --"
-"term-new]"
-msgstr ""
-"git bisect--helper --bisect-terms [--term-good | --term-old | --term-bad | --"
-"term-new]"
-
#: builtin/bisect--helper.c:26
msgid ""
"git bisect--helper --bisect-start [--term-{new,bad}=<term> --term-{old,good}"
@@ -10802,10 +11040,6 @@ msgstr ""
"git bisect--helper --bisect-start [--term-{new,bad}=<術語> --term-{old,good}"
"=<術語>] [--no-checkout] [--first-parent] [<壞> [<好>...]] [--] [<路徑>...]"
-#: builtin/bisect--helper.c:28
-msgid "git bisect--helper --bisect-next"
-msgstr "git bisect--helper --bisect-next"
-
#: builtin/bisect--helper.c:29
msgid "git bisect--helper --bisect-state (bad|new) [<rev>]"
msgstr "git bisect--helper --bisect-state (bad|new) [<修訂版>]"
@@ -10822,10 +11056,6 @@ msgstr "git bisect--helper --bisect-replay <檔å>"
msgid "git bisect--helper --bisect-skip [(<rev>|<range>)...]"
msgstr "git bisect--helper --bisect-skip [(<修訂版>|<範åœ>)...]"
-#: builtin/bisect--helper.c:33
-msgid "git bisect--helper --bisect-visualize"
-msgstr "git bisect--helper --bisect-visualize"
-
#: builtin/bisect--helper.c:34
msgid "git bisect--helper --bisect-run <cmd>..."
msgstr "git bisect--helper --bisect-run <cmd>..."
@@ -11045,40 +11275,50 @@ msgstr "「%sã€ï¼Ÿï¼Ÿæ‚¨åœ¨èªªä»€éº¼ï¼Ÿ"
msgid "cannot read file '%s' for replaying"
msgstr "無法讀å–「%sã€æª”案來é‡æ”¾"
-#: builtin/bisect--helper.c:1107 builtin/bisect--helper.c:1274
+#: builtin/bisect--helper.c:1120 builtin/bisect--helper.c:1152
+#, c-format
+msgid "running %s\n"
+msgstr "正在執行 %s\n"
+
+#: builtin/bisect--helper.c:1145 builtin/bisect--helper.c:1335
msgid "bisect run failed: no command provided."
msgstr "二分æœå°‹åŸ·è¡Œå¤±æ•—:沒有æ供指令。"
-#: builtin/bisect--helper.c:1116
+#: builtin/bisect--helper.c:1166
#, c-format
-msgid "running %s\n"
-msgstr "正在執行 %s\n"
+msgid "unable to verify '%s' on good revision"
+msgstr "無法在正確修訂版上驗證「%sã€"
-#: builtin/bisect--helper.c:1120
+#: builtin/bisect--helper.c:1172
+#, c-format
+msgid "bogus exit code %d for good revision"
+msgstr "正確修訂版回傳å½é€ çš„錯誤代碼 %d"
+
+#: builtin/bisect--helper.c:1180
#, c-format
msgid "bisect run failed: exit code %d from '%s' is < 0 or >= 128"
msgstr "二分æœå°‹åŸ·è¡Œå¤±æ•—:「%2$sã€è¿”回的離開碼 %1$d å°æ–¼ 0 或 >= 128"
-#: builtin/bisect--helper.c:1136
+#: builtin/bisect--helper.c:1195
#, c-format
msgid "cannot open file '%s' for writing"
msgstr "無法開啟「%sã€æª”案進行寫入"
-#: builtin/bisect--helper.c:1152
+#: builtin/bisect--helper.c:1213
msgid "bisect run cannot continue any more"
msgstr "二分æœå°‹ä¸èƒ½ç¹¼çºŒåŸ·è¡Œ"
-#: builtin/bisect--helper.c:1154
+#: builtin/bisect--helper.c:1215
#, c-format
msgid "bisect run success"
msgstr "二分æœå°‹åŸ·è¡ŒæˆåŠŸ"
-#: builtin/bisect--helper.c:1157
+#: builtin/bisect--helper.c:1218
#, c-format
msgid "bisect found first bad commit"
msgstr "二分æœå°‹ç™¼ç¾åˆ°ç¬¬ä¸€å€‹æœ‰å•é¡Œçš„æ交"
-#: builtin/bisect--helper.c:1160
+#: builtin/bisect--helper.c:1221
#, c-format
msgid ""
"bisect run failed: 'git bisect--helper --bisect-state %s' exited with error "
@@ -11086,71 +11326,71 @@ msgid ""
msgstr ""
"二分æœå°‹åŸ·è¡Œå¤±æ•—:'git bisect--helper --bisect-state %s' 以錯誤代碼 %d 離開"
-#: builtin/bisect--helper.c:1192
+#: builtin/bisect--helper.c:1253
msgid "reset the bisection state"
msgstr "清除二分æœå°‹ç‹€æ…‹"
-#: builtin/bisect--helper.c:1194
+#: builtin/bisect--helper.c:1255
msgid "check whether bad or good terms exist"
msgstr "檢查壞的或好的術語是å¦å­˜åœ¨"
-#: builtin/bisect--helper.c:1196
+#: builtin/bisect--helper.c:1257
msgid "print out the bisect terms"
msgstr "列å°äºŒåˆ†æœå°‹è¡“語"
-#: builtin/bisect--helper.c:1198
+#: builtin/bisect--helper.c:1259
msgid "start the bisect session"
msgstr "啟動二分æœå°‹éŽç¨‹"
-#: builtin/bisect--helper.c:1200
+#: builtin/bisect--helper.c:1261
msgid "find the next bisection commit"
msgstr "尋找下一個二分æœå°‹æ交"
-#: builtin/bisect--helper.c:1202
+#: builtin/bisect--helper.c:1263
msgid "mark the state of ref (or refs)"
msgstr "標記 ref (或 refs) 的狀態"
-#: builtin/bisect--helper.c:1204
+#: builtin/bisect--helper.c:1265
msgid "list the bisection steps so far"
msgstr "列出迄今的二分æœå°‹æ­¥é©Ÿ"
-#: builtin/bisect--helper.c:1206
+#: builtin/bisect--helper.c:1267
msgid "replay the bisection process from the given file"
msgstr "從指定檔案é‡æ”¾äºŒåˆ†æœå°‹éŽç¨‹"
-#: builtin/bisect--helper.c:1208
+#: builtin/bisect--helper.c:1269
msgid "skip some commits for checkout"
msgstr "ç•¥éŽè¦ç°½å‡ºçš„部分æ交"
-#: builtin/bisect--helper.c:1210
+#: builtin/bisect--helper.c:1271
msgid "visualize the bisection"
msgstr "視覺化二分æœå°‹éŽç¨‹"
-#: builtin/bisect--helper.c:1212
-msgid "use <cmd>... to automatically bisect."
-msgstr "使用 <cmd>... 自動進行二分æœå°‹ã€‚"
+#: builtin/bisect--helper.c:1273
+msgid "use <cmd>... to automatically bisect"
+msgstr "使用 <cmd>... 自動進行二分æœå°‹"
-#: builtin/bisect--helper.c:1214
+#: builtin/bisect--helper.c:1275
msgid "no log for BISECT_WRITE"
msgstr "BISECT_WRITE 無日誌"
-#: builtin/bisect--helper.c:1229
+#: builtin/bisect--helper.c:1290
msgid "--bisect-reset requires either no argument or a commit"
msgstr "--bisect-reset 無需åƒæ•¸æˆ–者需è¦ä¸€å€‹æ交"
-#: builtin/bisect--helper.c:1234
+#: builtin/bisect--helper.c:1295
msgid "--bisect-terms requires 0 or 1 argument"
msgstr "--bisect-terms éœ€è¦ 0 或 1 個åƒæ•¸"
-#: builtin/bisect--helper.c:1243
+#: builtin/bisect--helper.c:1304
msgid "--bisect-next requires 0 arguments"
msgstr "--bisect-next éœ€è¦ 0 個引數"
-#: builtin/bisect--helper.c:1254
+#: builtin/bisect--helper.c:1315
msgid "--bisect-log requires 0 arguments"
msgstr "--bisect-log éœ€è¦ 0 個引數"
-#: builtin/bisect--helper.c:1259
+#: builtin/bisect--helper.c:1320
msgid "no logfile given"
msgstr "未æ供日誌檔案"
@@ -11171,142 +11411,133 @@ msgstr "期望一個é¡è‰²ï¼š%s"
msgid "must end with a color"
msgstr "必須以一個é¡è‰²çµå°¾"
-#: builtin/blame.c:724
-#, c-format
-msgid "invalid color '%s' in color.blame.repeatedLines"
-msgstr "設定 color.blame.repeatedLines 中的無效é¡è‰² '%s'"
-
-#: builtin/blame.c:742
-msgid "invalid value for blame.coloring"
-msgstr "設定 blame.coloring 中的無效å–值"
-
-#: builtin/blame.c:841
+#: builtin/blame.c:842
#, c-format
msgid "cannot find revision %s to ignore"
msgstr "ä¸èƒ½æ‰¾åˆ°è¦å¿½ç•¥çš„版本 %s"
-#: builtin/blame.c:863
+#: builtin/blame.c:864
msgid "show blame entries as we find them, incrementally"
msgstr "增é‡å¼é¡¯ç¤ºç™¼ç¾çš„ blame æ¢ç›®"
-#: builtin/blame.c:864
+#: builtin/blame.c:865
msgid "do not show object names of boundary commits (Default: off)"
msgstr "ä¸è¦é¡¯ç¤ºé‚Šç•Œæ交的物件å稱(é è¨­å€¼: off)"
-#: builtin/blame.c:865
+#: builtin/blame.c:866
msgid "do not treat root commits as boundaries (Default: off)"
msgstr "ä¸å°‡æ ¹æ交看作邊界(é è¨­å€¼ï¼šoff)"
-#: builtin/blame.c:866
+#: builtin/blame.c:867
msgid "show work cost statistics"
msgstr "顯示工作é‡çµ±è¨ˆ"
-#: builtin/blame.c:867 builtin/checkout.c:1536 builtin/clone.c:94
-#: builtin/commit-graph.c:75 builtin/commit-graph.c:228 builtin/fetch.c:180
+#: builtin/blame.c:868 builtin/checkout.c:1554 builtin/clone.c:98
+#: builtin/commit-graph.c:75 builtin/commit-graph.c:228 builtin/fetch.c:181
#: builtin/merge.c:301 builtin/multi-pack-index.c:103
#: builtin/multi-pack-index.c:154 builtin/multi-pack-index.c:180
#: builtin/multi-pack-index.c:208 builtin/pull.c:120 builtin/push.c:566
-#: builtin/send-pack.c:202
+#: builtin/remote.c:683 builtin/send-pack.c:202
msgid "force progress reporting"
msgstr "強制顯示進度報告"
-#: builtin/blame.c:868
+#: builtin/blame.c:869
msgid "show output score for blame entries"
msgstr "顯示判斷 blame æ¢ç›®ä½ç§»çš„得分診斷訊æ¯"
-#: builtin/blame.c:869
+#: builtin/blame.c:870
msgid "show original filename (Default: auto)"
msgstr "顯示原始檔案å稱(é è¨­å€¼ï¼šauto)"
-#: builtin/blame.c:870
+#: builtin/blame.c:871
msgid "show original linenumber (Default: off)"
msgstr "顯示原始檔案å稱(é è¨­å€¼ï¼šoff)"
-#: builtin/blame.c:871
+#: builtin/blame.c:872
msgid "show in a format designed for machine consumption"
msgstr "顯示æˆé©åˆæ©Ÿå™¨è®€å–çš„æ ¼å¼"
-#: builtin/blame.c:872
+#: builtin/blame.c:873
msgid "show porcelain format with per-line commit information"
msgstr "顯示æ¯ä¸€åˆ—é©åˆæ©Ÿå™¨çš„æ交說明"
-#: builtin/blame.c:873
+#: builtin/blame.c:874
msgid "use the same output mode as git-annotate (Default: off)"
msgstr "使用和 git-annotate 相åŒçš„輸出模å¼ï¼ˆé è¨­å€¼ï¼šoff)"
-#: builtin/blame.c:874
+#: builtin/blame.c:875
msgid "show raw timestamp (Default: off)"
msgstr "顯示原始時間戳(é è¨­å€¼ï¼šoff)"
-#: builtin/blame.c:875
+#: builtin/blame.c:876
msgid "show long commit SHA1 (Default: off)"
msgstr "顯示較長的 SHA1 æ交編號(é è¨­å€¼ï¼šoff)"
-#: builtin/blame.c:876
+#: builtin/blame.c:877
msgid "suppress author name and timestamp (Default: off)"
msgstr "éš±è—作者åå­—åŠæ™‚間戳(é è¨­å€¼ï¼šoff)"
-#: builtin/blame.c:877
+#: builtin/blame.c:878
msgid "show author email instead of name (Default: off)"
msgstr "顯示作者信箱而éžå稱(é è¨­å€¼ï¼šoff)"
-#: builtin/blame.c:878
+#: builtin/blame.c:879
msgid "ignore whitespace differences"
msgstr "忽略空白差異"
-#: builtin/blame.c:879 builtin/log.c:1838
+#: builtin/blame.c:880 builtin/log.c:1857
msgid "rev"
msgstr "版本"
-#: builtin/blame.c:879
+#: builtin/blame.c:880
msgid "ignore <rev> when blaming"
msgstr "在執行 blame 動作時忽略 <修訂版>"
-#: builtin/blame.c:880
+#: builtin/blame.c:881
msgid "ignore revisions from <file>"
msgstr "忽略 <檔案> 中的修訂版"
-#: builtin/blame.c:881
+#: builtin/blame.c:882
msgid "color redundant metadata from previous line differently"
msgstr "使用é¡è‰²é–“隔輸出與å‰ä¸€è¡Œä¸åŒçš„é‡è¤‡ä¸­ä»‹è³‡æ–™"
-#: builtin/blame.c:882
+#: builtin/blame.c:883
msgid "color lines by age"
msgstr "ä¾æ“šæ™‚間著色"
-#: builtin/blame.c:883
+#: builtin/blame.c:884
msgid "spend extra cycles to find better match"
msgstr "循環更多次以找到更佳符åˆ"
-#: builtin/blame.c:884
+#: builtin/blame.c:885
msgid "use revisions from <file> instead of calling git-rev-list"
msgstr "使用來自 <檔案> 的修訂集而ä¸æ˜¯å‘¼å« git-rev-list"
-#: builtin/blame.c:885
+#: builtin/blame.c:886
msgid "use <file>'s contents as the final image"
msgstr "å°‡ <檔案> 的內容當æˆæ˜¯æœ€çµ‚ image"
-#: builtin/blame.c:886 builtin/blame.c:887
+#: builtin/blame.c:887 builtin/blame.c:888
msgid "score"
msgstr "得分"
-#: builtin/blame.c:886
+#: builtin/blame.c:887
msgid "find line copies within and across files"
msgstr "找到檔案內åŠè·¨æª”案的複製列"
-#: builtin/blame.c:887
+#: builtin/blame.c:888
msgid "find line movements within and across files"
msgstr "找到檔案內åŠè·¨æª”案的移動列"
-#: builtin/blame.c:888
+#: builtin/blame.c:889
msgid "range"
msgstr "range"
-#: builtin/blame.c:889
+#: builtin/blame.c:890
msgid "process only line range <start>,<end> or function :<funcname>"
msgstr "åªè™•ç†ç¯„åœåœ¨ <開始>,<çµå°¾> 的列,或是 :<函數å稱> 函數"
-#: builtin/blame.c:947
+#: builtin/blame.c:949
msgid "--progress can't be used with --incremental or porcelain formats"
msgstr "--progress ä¸èƒ½è·Ÿ --incremental 或 porcelain æ ¼å¼åŒæ™‚使用"
@@ -11318,17 +11549,17 @@ msgstr "--progress ä¸èƒ½è·Ÿ --incremental 或 porcelain æ ¼å¼åŒæ™‚使用"
#. your language may need more or fewer display
#. columns.
#.
-#: builtin/blame.c:998
+#: builtin/blame.c:1000
msgid "4 years, 11 months ago"
msgstr "4 å¹´ 11 個月å‰"
-#: builtin/blame.c:1114
+#: builtin/blame.c:1116
#, c-format
msgid "file %s has only %lu line"
msgid_plural "file %s has only %lu lines"
msgstr[0] "檔案 %s åªæœ‰ %lu è¡Œ"
-#: builtin/blame.c:1159
+#: builtin/blame.c:1161
msgid "Blaming lines"
msgstr "追蹤程å¼ç¢¼è¡Œ"
@@ -11337,31 +11568,37 @@ msgid "git branch [<options>] [-r | -a] [--merged] [--no-merged]"
msgstr "git branch [<é¸é …>] [-r | -a] [--merged] [--no-merged]"
#: builtin/branch.c:30
-msgid "git branch [<options>] [-l] [-f] <branch-name> [<start-point>]"
-msgstr "git branch [<é¸é …>] [-l] [-f] <分支å> [<起始點>]"
+msgid ""
+"git branch [<options>] [-f] [--recurse-submodules] <branch-name> [<start-"
+"point>]"
+msgstr "git branch [<é¸é …>] [-f] [--recurse-submodules] <分支å> [<起始點>]"
#: builtin/branch.c:31
+msgid "git branch [<options>] [-l] [<pattern>...]"
+msgstr "git branch [<é¸é …>] [-l] [<模å¼>...]"
+
+#: builtin/branch.c:32
msgid "git branch [<options>] [-r] (-d | -D) <branch-name>..."
msgstr "git branch [<é¸é …>] [-r] (-d | -D) <分支å>..."
-#: builtin/branch.c:32
+#: builtin/branch.c:33
msgid "git branch [<options>] (-m | -M) [<old-branch>] <new-branch>"
msgstr "git branch [<é¸é …>] (-m | -M) [<舊分支>] <新分支>"
-#: builtin/branch.c:33
+#: builtin/branch.c:34
msgid "git branch [<options>] (-c | -C) [<old-branch>] <new-branch>"
msgstr "git branch [<é¸é …>] (-c | -C) [<è€åˆ†æ”¯>] <新分支>"
-#: builtin/branch.c:34
+#: builtin/branch.c:35
msgid "git branch [<options>] [-r | -a] [--points-at]"
msgstr "git branch [<é¸é …>] [-r | -a] [--points-at]"
-#: builtin/branch.c:35
+#: builtin/branch.c:36
msgid "git branch [<options>] [-r | -a] [--format]"
msgstr "git branch [<é¸é …>] [-r | -a] [--format]"
# 譯者:ä¿æŒåŽŸæ›è¡Œæ ¼å¼ï¼Œåœ¨è¼¸å‡ºæ™‚ %s 的替代內容會讓字串變長
-#: builtin/branch.c:153
+#: builtin/branch.c:165
#, c-format
msgid ""
"deleting branch '%s' that has been merged to\n"
@@ -11371,7 +11608,7 @@ msgstr ""
" '%s',但未åˆä½µåˆ° HEAD。"
# 譯者:ä¿æŒåŽŸæ›è¡Œæ ¼å¼ï¼Œåœ¨è¼¸å‡ºæ™‚ %s 的替代內容會讓字串變長
-#: builtin/branch.c:157
+#: builtin/branch.c:169
#, c-format
msgid ""
"not deleting branch '%s' that is not yet merged to\n"
@@ -11380,12 +11617,12 @@ msgstr ""
"並未刪除分支 '%s', 雖然它已經åˆä½µåˆ° HEAD,\n"
" 然而å»å°šæœªè¢«åˆä½µåˆ°åˆ†æ”¯ '%s' 。"
-#: builtin/branch.c:171
+#: builtin/branch.c:183
#, c-format
msgid "Couldn't look up commit object for '%s'"
msgstr "無法查詢 '%s' 指å‘çš„æ交物件"
-#: builtin/branch.c:175
+#: builtin/branch.c:187
#, c-format
msgid ""
"The branch '%s' is not fully merged.\n"
@@ -11394,111 +11631,111 @@ msgstr ""
"分支 '%s' 沒有完全åˆä½µã€‚\n"
"如果您確èªè¦åˆªé™¤å®ƒï¼ŒåŸ·è¡Œ 'git branch -D %s'。"
-#: builtin/branch.c:188
+#: builtin/branch.c:200
msgid "Update of config-file failed"
msgstr "更新設定檔案失敗"
-#: builtin/branch.c:223
+#: builtin/branch.c:235
msgid "cannot use -a with -d"
msgstr "ä¸èƒ½å°‡ -a å’Œ -d åŒæ™‚使用"
-#: builtin/branch.c:230
+#: builtin/branch.c:242
msgid "Couldn't look up commit object for HEAD"
msgstr "無法查詢 HEAD 指å‘çš„æ交物件"
-#: builtin/branch.c:247
+#: builtin/branch.c:259
#, c-format
msgid "Cannot delete branch '%s' checked out at '%s'"
msgstr "無法刪除在「%2$sã€ç°½å‡ºçš„「%1$sã€åˆ†æ”¯"
-#: builtin/branch.c:262
+#: builtin/branch.c:274
#, c-format
msgid "remote-tracking branch '%s' not found."
msgstr "未能找到é ç«¯è¿½è¹¤åˆ†æ”¯ '%s'。"
-#: builtin/branch.c:263
+#: builtin/branch.c:275
#, c-format
msgid "branch '%s' not found."
msgstr "分支 '%s' 未發ç¾ã€‚"
-#: builtin/branch.c:294
+#: builtin/branch.c:306
#, c-format
msgid "Deleted remote-tracking branch %s (was %s).\n"
msgstr "已刪除é ç«¯è¿½è¹¤åˆ†æ”¯ %s(曾為 %s)。\n"
-#: builtin/branch.c:295
+#: builtin/branch.c:307
#, c-format
msgid "Deleted branch %s (was %s).\n"
msgstr "已刪除分支 %s(曾為 %s)。\n"
-#: builtin/branch.c:445 builtin/tag.c:63
+#: builtin/branch.c:457 builtin/tag.c:64
msgid "unable to parse format string"
msgstr "ä¸èƒ½è§£æžæ ¼å¼åŒ–字串"
-#: builtin/branch.c:476
+#: builtin/branch.c:488
msgid "could not resolve HEAD"
msgstr "ä¸èƒ½è§£æž HEAD æ交"
-#: builtin/branch.c:482
+#: builtin/branch.c:494
#, c-format
msgid "HEAD (%s) points outside of refs/heads/"
msgstr "HEAD (%s) æŒ‡å‘ refs/heads/ 之外"
-#: builtin/branch.c:497
+#: builtin/branch.c:509
#, c-format
msgid "Branch %s is being rebased at %s"
msgstr "分支 %s 正被é‡å®šåŸºåº•åˆ° %s"
-#: builtin/branch.c:501
+#: builtin/branch.c:513
#, c-format
msgid "Branch %s is being bisected at %s"
msgstr "分支 %s 正被二分æœå°‹æ–¼ %s"
-#: builtin/branch.c:518
+#: builtin/branch.c:530
msgid "cannot copy the current branch while not on any."
msgstr "無法複製目å‰åˆ†æ”¯å› ç‚ºä¸è™•æ–¼ä»»ä½•åˆ†æ”¯ä¸Šã€‚"
-#: builtin/branch.c:520
+#: builtin/branch.c:532
msgid "cannot rename the current branch while not on any."
msgstr "無法é‡æ–°å‘½åç›®å‰åˆ†æ”¯å› ç‚ºä¸è™•æ–¼ä»»ä½•åˆ†æ”¯ä¸Šã€‚"
-#: builtin/branch.c:531
+#: builtin/branch.c:543
#, c-format
msgid "Invalid branch name: '%s'"
msgstr "無效的分支å:'%s'"
-#: builtin/branch.c:560
+#: builtin/branch.c:572
msgid "Branch rename failed"
msgstr "分支é‡æ–°å‘½å失敗"
-#: builtin/branch.c:562
+#: builtin/branch.c:574
msgid "Branch copy failed"
msgstr "分支複製失敗"
-#: builtin/branch.c:566
+#: builtin/branch.c:578
#, c-format
msgid "Created a copy of a misnamed branch '%s'"
msgstr "已為錯誤命å的分支 '%s' 建立了一個副本"
-#: builtin/branch.c:569
+#: builtin/branch.c:581
#, c-format
msgid "Renamed a misnamed branch '%s' away"
msgstr "已將錯誤命å的分支 '%s' é‡æ–°å‘½å"
-#: builtin/branch.c:575
+#: builtin/branch.c:587
#, c-format
msgid "Branch renamed to %s, but HEAD is not updated!"
msgstr "分支é‡æ–°å‘½å為 %s,但 HEAD 沒有更新ï¼"
-#: builtin/branch.c:584
+#: builtin/branch.c:596
msgid "Branch is renamed, but update of config-file failed"
msgstr "分支被é‡æ–°å‘½å,但更新設定檔案失敗"
-#: builtin/branch.c:586
+#: builtin/branch.c:598
msgid "Branch is copied, but update of config-file failed"
msgstr "分支已複製,但更新設定檔案失敗"
-#: builtin/branch.c:602
+#: builtin/branch.c:614
#, c-format
msgid ""
"Please edit the description for the branch\n"
@@ -11509,205 +11746,221 @@ msgstr ""
" %s\n"
"以 '%c' 開頭的行將被éŽæ¿¾ã€‚\n"
-#: builtin/branch.c:637
+#: builtin/branch.c:651
msgid "Generic options"
msgstr "通用é¸é …"
-#: builtin/branch.c:639
+#: builtin/branch.c:653
msgid "show hash and subject, give twice for upstream branch"
msgstr "顯示雜湊值和主題,若åƒæ•¸å‡ºç¾å…©æ¬¡å‰‡é¡¯ç¤ºä¸Šæ¸¸åˆ†æ”¯"
-#: builtin/branch.c:640
+#: builtin/branch.c:654
msgid "suppress informational messages"
msgstr "ä¸é¡¯ç¤ºè¨Šæ¯"
-#: builtin/branch.c:642
+#: builtin/branch.c:656 builtin/checkout.c:1571
+#: builtin/submodule--helper.c:3077
msgid "set branch tracking configuration"
msgstr "設定分支追蹤設定"
-#: builtin/branch.c:645
+#: builtin/branch.c:659
msgid "do not use"
msgstr "ä¸è¦ä½¿ç”¨"
-#: builtin/branch.c:647
+#: builtin/branch.c:661
msgid "upstream"
msgstr "上游"
-#: builtin/branch.c:647
+#: builtin/branch.c:661
msgid "change the upstream info"
msgstr "改變上游訊æ¯"
-#: builtin/branch.c:648
+#: builtin/branch.c:662
msgid "unset the upstream info"
msgstr "å–消上游資訊設定"
-#: builtin/branch.c:649
+#: builtin/branch.c:663
msgid "use colored output"
msgstr "使用彩色輸出"
-#: builtin/branch.c:650
+#: builtin/branch.c:664
msgid "act on remote-tracking branches"
msgstr "作用於é ç«¯è¿½è¹¤åˆ†æ”¯"
-#: builtin/branch.c:652 builtin/branch.c:654
+#: builtin/branch.c:666 builtin/branch.c:668
msgid "print only branches that contain the commit"
msgstr "åªåˆ—å°åŒ…å«è©²æ交的分支"
-#: builtin/branch.c:653 builtin/branch.c:655
+#: builtin/branch.c:667 builtin/branch.c:669
msgid "print only branches that don't contain the commit"
msgstr "åªåˆ—å°ä¸åŒ…å«è©²æ交的分支"
-#: builtin/branch.c:658
+#: builtin/branch.c:672
msgid "Specific git-branch actions:"
msgstr "具體的 git-branch 動作:"
-#: builtin/branch.c:659
+#: builtin/branch.c:673
msgid "list both remote-tracking and local branches"
msgstr "列出é ç«¯è¿½è¹¤åŠæœ¬æ©Ÿåˆ†æ”¯"
-#: builtin/branch.c:661
+#: builtin/branch.c:675
msgid "delete fully merged branch"
msgstr "刪除完全åˆä½µçš„分支"
-#: builtin/branch.c:662
+#: builtin/branch.c:676
msgid "delete branch (even if not merged)"
msgstr "刪除分支(å³ä½¿æ²’有åˆä½µï¼‰"
-#: builtin/branch.c:663
+#: builtin/branch.c:677
msgid "move/rename a branch and its reflog"
msgstr "移動/é‡æ–°å‘½å一個分支,以åŠå®ƒçš„引用日誌"
-#: builtin/branch.c:664
+#: builtin/branch.c:678
msgid "move/rename a branch, even if target exists"
msgstr "移動/é‡æ–°å‘½å一個分支,å³ä½¿ç›®æ¨™å·²å­˜åœ¨"
-#: builtin/branch.c:665
+#: builtin/branch.c:679
msgid "copy a branch and its reflog"
-msgstr "複製一個分支和它的引用日誌"
+msgstr "複製分支åŠå…¶å¼•ç”¨æ—¥èªŒ"
-#: builtin/branch.c:666
+#: builtin/branch.c:680
msgid "copy a branch, even if target exists"
msgstr "複製一個分支,å³ä½¿ç›®æ¨™å·²å­˜åœ¨"
-#: builtin/branch.c:667
+#: builtin/branch.c:681
msgid "list branch names"
msgstr "列出分支å"
-#: builtin/branch.c:668
+#: builtin/branch.c:682
msgid "show current branch name"
msgstr "顯示目å‰åˆ†æ”¯å"
-#: builtin/branch.c:669
+#: builtin/branch.c:683 builtin/submodule--helper.c:3075
msgid "create the branch's reflog"
msgstr "建立分支的引用日誌"
-#: builtin/branch.c:671
+#: builtin/branch.c:685
msgid "edit the description for the branch"
msgstr "標記分支的æè¿°"
-#: builtin/branch.c:672
+#: builtin/branch.c:686
msgid "force creation, move/rename, deletion"
msgstr "強制建立ã€ç§»å‹•/é‡æ–°å‘½åã€åˆªé™¤"
-#: builtin/branch.c:673
+#: builtin/branch.c:687
msgid "print only branches that are merged"
msgstr "åªåˆ—å°å·²ç¶“åˆä½µçš„分支"
-#: builtin/branch.c:674
+#: builtin/branch.c:688
msgid "print only branches that are not merged"
msgstr "åªåˆ—å°å°šæœªåˆä½µçš„分支"
-#: builtin/branch.c:675
+#: builtin/branch.c:689
msgid "list branches in columns"
msgstr "以列的方å¼é¡¯ç¤ºåˆ†æ”¯"
-#: builtin/branch.c:677 builtin/for-each-ref.c:45 builtin/notes.c:413
+#: builtin/branch.c:691 builtin/for-each-ref.c:45 builtin/notes.c:413
#: builtin/notes.c:416 builtin/notes.c:579 builtin/notes.c:582
-#: builtin/tag.c:475
+#: builtin/tag.c:476
msgid "object"
msgstr "物件"
-#: builtin/branch.c:678
+#: builtin/branch.c:692
msgid "print only branches of the object"
msgstr "åªåˆ—å°æŒ‡å‘該物件的分支"
-#: builtin/branch.c:679 builtin/for-each-ref.c:51 builtin/tag.c:482
+#: builtin/branch.c:693 builtin/for-each-ref.c:51 builtin/tag.c:483
msgid "sorting and filtering are case insensitive"
msgstr "排åºå’ŒéŽæ¿¾å±¬æ–¼å¤§å°å¯«ä¸æ•æ„Ÿ"
-#: builtin/branch.c:680 builtin/for-each-ref.c:41 builtin/tag.c:480
-#: builtin/verify-tag.c:38
+#: builtin/branch.c:694 builtin/ls-files.c:667
+msgid "recurse through submodules"
+msgstr "在å­æ¨¡çµ„中éžè¿´"
+
+#: builtin/branch.c:695 builtin/for-each-ref.c:41 builtin/ls-tree.c:358
+#: builtin/tag.c:481 builtin/verify-tag.c:38
msgid "format to use for the output"
msgstr "輸出格å¼"
-#: builtin/branch.c:703 builtin/clone.c:678
+#: builtin/branch.c:718 builtin/clone.c:684
msgid "HEAD not found below refs/heads!"
msgstr "HEAD 沒有ä½æ–¼ /refs/heads 之下ï¼"
-#: builtin/branch.c:742 builtin/branch.c:798 builtin/branch.c:807
+#: builtin/branch.c:739
+msgid ""
+"branch with --recurse-submodules can only be used if submodule."
+"propagateBranches is enabled"
+msgstr ""
+"有 --recurse-submodules 的分支åªèƒ½åœ¨å•Ÿç”¨ submodule.propagateBranches 時使用"
+
+#: builtin/branch.c:741
+msgid "--recurse-submodules can only be used to create branches"
+msgstr "--recurse-submodules åªèƒ½ç”¨ä¾†å»ºç«‹åˆ†æ”¯"
+
+#: builtin/branch.c:770 builtin/branch.c:826 builtin/branch.c:835
msgid "branch name required"
msgstr "å¿…é ˆæ供分支å"
-#: builtin/branch.c:774
+#: builtin/branch.c:802
msgid "Cannot give description to detached HEAD"
msgstr "ä¸èƒ½å‘分離開頭指標æä¾›æè¿°"
-#: builtin/branch.c:779
+#: builtin/branch.c:807
msgid "cannot edit description of more than one branch"
msgstr "ä¸èƒ½ç‚ºä¸€å€‹ä»¥ä¸Šçš„分支編輯æè¿°"
-#: builtin/branch.c:786
+#: builtin/branch.c:814
#, c-format
msgid "No commit on branch '%s' yet."
msgstr "分支 '%s' å°šç„¡æ交。"
-#: builtin/branch.c:789
+#: builtin/branch.c:817
#, c-format
msgid "No branch named '%s'."
msgstr "沒有分支 '%s'。"
-#: builtin/branch.c:804
+#: builtin/branch.c:832
msgid "too many branches for a copy operation"
msgstr "為複製動作æ供了太多的分支å"
-#: builtin/branch.c:813
+#: builtin/branch.c:841
msgid "too many arguments for a rename operation"
msgstr "為é‡æ–°å‘½å動作æ供了太多的åƒæ•¸"
-#: builtin/branch.c:818
+#: builtin/branch.c:846
msgid "too many arguments to set new upstream"
msgstr "為設定新上游æ供了太多的åƒæ•¸"
-#: builtin/branch.c:822
+#: builtin/branch.c:850
#, c-format
msgid ""
"could not set upstream of HEAD to %s when it does not point to any branch."
msgstr "無法設定 HEAD 的上游為 %s,因為 HEAD 沒有指å‘任何分支。"
-#: builtin/branch.c:825 builtin/branch.c:848
+#: builtin/branch.c:853 builtin/branch.c:873
#, c-format
msgid "no such branch '%s'"
msgstr "沒有此分支 '%s'"
-#: builtin/branch.c:829
+#: builtin/branch.c:857
#, c-format
msgid "branch '%s' does not exist"
msgstr "分支 '%s' ä¸å­˜åœ¨"
-#: builtin/branch.c:842
+#: builtin/branch.c:867
msgid "too many arguments to unset upstream"
msgstr "為å–消上游設定動作æ供了太多的åƒæ•¸"
-#: builtin/branch.c:846
+#: builtin/branch.c:871
msgid "could not unset upstream of HEAD when it does not point to any branch."
msgstr "在 HEAD 的上游未指å‘任何分支時無法å–消設定。"
-#: builtin/branch.c:852
+#: builtin/branch.c:877
#, c-format
msgid "Branch '%s' has no upstream information"
msgstr "分支 '%s' 沒有上游訊æ¯"
-#: builtin/branch.c:862
+#: builtin/branch.c:890
msgid ""
"The -a, and -r, options to 'git branch' do not take a branch name.\n"
"Did you mean to use: -a|-r --list <pattern>?"
@@ -11715,7 +11968,7 @@ msgstr ""
"'git branch' çš„ -a å’Œ -r é¸é …ä¸å¸¶ä¸€å€‹åˆ†æ”¯å。\n"
"您是å¦æƒ³è¦ä½¿ç”¨ï¼š-a|-r --list <模å¼>?"
-#: builtin/branch.c:866
+#: builtin/branch.c:894
msgid ""
"the '--set-upstream' option is no longer supported. Please use '--track' or "
"'--set-upstream-to' instead."
@@ -11828,135 +12081,247 @@ msgstr "git bundle list-heads <檔案> [<引用å稱>...]"
msgid "git bundle unbundle <file> [<refname>...]"
msgstr "git bundle unbundle <檔案> [<引用å稱>...]"
-#: builtin/bundle.c:65 builtin/pack-objects.c:3876
+#: builtin/bundle.c:65 builtin/pack-objects.c:3899
msgid "do not show progress meter"
msgstr "ä¸é¡¯ç¤ºé€²åº¦è¡¨"
-#: builtin/bundle.c:67 builtin/bundle.c:167 builtin/pack-objects.c:3878
+#: builtin/bundle.c:67 builtin/bundle.c:168 builtin/pack-objects.c:3901
msgid "show progress meter"
msgstr "顯示進度表"
-#: builtin/bundle.c:69 builtin/pack-objects.c:3880
+#: builtin/bundle.c:69 builtin/pack-objects.c:3903
msgid "show progress meter during object writing phase"
msgstr "在物件寫入階段顯示進度表"
-#: builtin/bundle.c:72 builtin/pack-objects.c:3883
+#: builtin/bundle.c:72 builtin/pack-objects.c:3906
msgid "similar to --all-progress when progress meter is shown"
msgstr "當進度表顯示時類似於 --all-progress"
#: builtin/bundle.c:74
msgid "specify bundle format version"
-msgstr "指定包格å¼ç‰ˆæœ¬"
+msgstr "指定套件的格å¼ç‰ˆæœ¬"
#: builtin/bundle.c:94
msgid "Need a repository to create a bundle."
-msgstr "需è¦ä¸€å€‹ç‰ˆæœ¬åº«ä¾†å»ºç«‹åŒ…。"
+msgstr "需è¦ç‰ˆæœ¬åº«ä¾†å»ºç«‹å¥—件。"
-#: builtin/bundle.c:107
+#: builtin/bundle.c:108
msgid "do not show bundle details"
-msgstr "ä¸é¡¯ç¤ºåŒ… (bundle) 詳細資訊"
+msgstr "ä¸é¡¯ç¤ºå¥—件詳細資訊"
-#: builtin/bundle.c:126
+#: builtin/bundle.c:127
#, c-format
msgid "%s is okay\n"
msgstr "%s å¯ä»¥\n"
-#: builtin/bundle.c:182
+#: builtin/bundle.c:183
msgid "Need a repository to unbundle."
-msgstr "需è¦ç‰ˆæœ¬åº«æ‰èƒ½æ‹†åˆ†ã€‚"
+msgstr "需è¦ç‰ˆæœ¬åº«æ‰èƒ½æ‹†åˆ†å¥—件。"
-#: builtin/bundle.c:185
+#: builtin/bundle.c:186
msgid "Unbundling objects"
msgstr "正在解包物件"
-#: builtin/bundle.c:219 builtin/remote.c:1733
+#: builtin/bundle.c:220 builtin/remote.c:1758
#, c-format
msgid "Unknown subcommand: %s"
msgstr "未知å­æŒ‡ä»¤ï¼š%s"
-#: builtin/cat-file.c:622
+#: builtin/cat-file.c:568
+msgid "flush is only for --buffer mode"
+msgstr "排清功能åªèƒ½ç”¨æ–¼ --buffer 模å¼"
+
+#: builtin/cat-file.c:612
+msgid "empty command in input"
+msgstr "輸入中沒有命令"
+
+#: builtin/cat-file.c:614
+#, c-format
+msgid "whitespace before command: '%s'"
+msgstr "命令å‰ç©ºæ ¼ï¼šã€Œ%sã€"
+
+#: builtin/cat-file.c:623
+#, c-format
+msgid "%s requires arguments"
+msgstr "%s 需è¦å¼•æ•¸"
+
+#: builtin/cat-file.c:628
+#, c-format
+msgid "%s takes no arguments"
+msgstr "%s ä¸å–引數"
+
+#: builtin/cat-file.c:636
+#, c-format
+msgid "unknown command: '%s'"
+msgstr "未知命令:「%sã€"
+
+#: builtin/cat-file.c:795
+msgid "only one batch option may be specified"
+msgstr "åªèƒ½æŒ‡å®šä¸€å€‹æ‰¹æ¬¡è™•ç†é¸é …"
+
+#: builtin/cat-file.c:824
+msgid "git cat-file <type> <object>"
+msgstr "git cat-file <type> <object>"
+
+#: builtin/cat-file.c:825
+msgid "git cat-file (-e | -p) <object>"
+msgstr "git cat-file (-e | -p) <object>"
+
+#: builtin/cat-file.c:826
+msgid "git cat-file (-t | -s) [--allow-unknown-type] <object>"
+msgstr "git cat-file (-t | -s) [--allow-unknown-type] <object>"
+
+#: builtin/cat-file.c:827
msgid ""
-"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 | --batch-command) [--batch-all-"
+"objects]\n"
+" [--buffer] [--follow-symlinks] [--unordered]\n"
+" [--textconv | --filters]"
msgstr ""
-"git cat-file (-t [--allow-unknown-type] | -s [--allow-unknown-type] | -e | -"
-"p | <類型> | --textconv | --filters) [--path=<路徑>] <物件>"
+"git cat-file (--batch | --batch-check | --batch-command) [--batch-all-"
+"objects]\n"
+" [--buffer] [--follow-symlinks] [--unordered]\n"
+" [--textconv | --filters]"
-#: builtin/cat-file.c:623
+#: builtin/cat-file.c:830
msgid ""
-"git cat-file (--batch[=<format>] | --batch-check[=<format>]) [--follow-"
-"symlinks] [--textconv | --filters]"
+"git cat-file (--textconv | --filters)\n"
+" [<rev>:<path|tree-ish> | --path=<path|tree-ish> <rev>]"
msgstr ""
-"git cat-file (--batch[=<format>] | --batch-check[=<format>]) [--follow-"
-"symlinks] [--textconv | --filters]"
+"git cat-file (--textconv | --filters)\n"
+" [<rev>:<path|tree-ish> | --path=<path|tree-ish> <rev>]"
-#: builtin/cat-file.c:644
-msgid "only one batch option may be specified"
-msgstr "åªèƒ½æŒ‡å®šä¸€å€‹æ‰¹æ¬¡è™•ç†é¸é …"
+#: builtin/cat-file.c:836
+msgid "Check object existence or emit object contents"
+msgstr "檢查物件的存在狀態,或輸出物件內容"
+
+#: builtin/cat-file.c:838
+msgid "check if <object> exists"
+msgstr "檢查 <object> 是å¦å­˜åœ¨"
-#: builtin/cat-file.c:662
-msgid "<type> can be one of: blob, tree, commit, tag"
-msgstr "<é¡žåž‹> å¯ä»¥æ˜¯å…¶ä¸­ä¹‹ä¸€ï¼šblobã€treeã€commitã€tag"
+#: builtin/cat-file.c:839
+msgid "pretty-print <object> content"
+msgstr "美化輸出 <object> 的內容"
-#: builtin/cat-file.c:663
-msgid "show object type"
-msgstr "顯示物件類型"
+#: builtin/cat-file.c:841
+msgid "Emit [broken] object attributes"
+msgstr "輸出 [æ壞的] 物件屬性"
-#: builtin/cat-file.c:664
+#: builtin/cat-file.c:842
+msgid "show object type (one of 'blob', 'tree', 'commit', 'tag', ...)"
+msgstr "顯示物件類型(å¯ä»¥æ˜¯ “blobâ€ã€â€œtreeâ€ã€â€œcommitâ€ã€â€œtag†等其中一個)"
+
+#: builtin/cat-file.c:843
msgid "show object size"
msgstr "顯示物件大å°"
-#: builtin/cat-file.c:666
-msgid "exit with zero when there's no error"
-msgstr "當沒有錯誤時離開並返回零"
+#: builtin/cat-file.c:845
+msgid "allow -s and -t to work with broken/corrupt objects"
+msgstr "å…許 -s å’Œ -t å°æ壞的物件生效"
-#: builtin/cat-file.c:667
-msgid "pretty-print object's content"
-msgstr "美觀地列å°ç‰©ä»¶çš„內容"
+#: builtin/cat-file.c:847
+msgid "Batch objects requested on stdin (or --batch-all-objects)"
+msgstr "æ‰¹æ¬¡è™•ç† stdin 上請求的物件(或 --batch-all-objects)"
-#: builtin/cat-file.c:669
-msgid "for blob objects, run textconv on object's content"
-msgstr "å°æ–¼è³‡æ–™ç‰©ä»¶ï¼Œå°å…¶å…§å®¹åšæ–‡å­—轉æ›"
+#: builtin/cat-file.c:849
+msgid "show full <object> or <rev> contents"
+msgstr "顯示完整的 <object> 或 <rev> 內容"
-#: builtin/cat-file.c:671
-msgid "for blob objects, run filters on object's content"
-msgstr "å°æ–¼è³‡æ–™ç‰©ä»¶ï¼Œå°å…¶å…§å®¹åšéŽæ¿¾"
+#: builtin/cat-file.c:853
+msgid "like --batch, but don't emit <contents>"
+msgstr "é¡žä¼¼ --batch 但ä¸è¼¸å‡º <contents>"
-#: builtin/cat-file.c:672
-msgid "blob"
-msgstr "blob"
+#: builtin/cat-file.c:857
+msgid "read commands from stdin"
+msgstr "從標準輸入讀å–命令"
-#: builtin/cat-file.c:673
-msgid "use a specific path for --textconv/--filters"
-msgstr "å°æ–¼ --textconv/--filters 使用一個特定的路徑"
+#: builtin/cat-file.c:861
+msgid "with --batch[-check]: ignores stdin, batches all known objects"
+msgstr "傳入 --batch[-check]:忽略標準輸入,批次處ç†æ‰€æœ‰å·²çŸ¥ç‰©ä»¶"
-#: builtin/cat-file.c:675
-msgid "allow -s and -t to work with broken/corrupt objects"
-msgstr "å…許 -s å’Œ -t å°æ壞的物件生效"
+#: builtin/cat-file.c:863
+msgid "Change or optimize batch output"
+msgstr "變更或最佳化批次處ç†çš„輸出"
-#: builtin/cat-file.c:676
+#: builtin/cat-file.c:864
msgid "buffer --batch output"
msgstr "ç·©è¡ --batch 的輸出"
-#: builtin/cat-file.c:678
-msgid "show info and content of objects fed from the standard input"
-msgstr "顯示從標準輸入æ供的物件的訊æ¯å’Œå…§å®¹"
+#: builtin/cat-file.c:866
+msgid "follow in-tree symlinks"
+msgstr "追蹤樹中的符號連çµ"
+
+#: builtin/cat-file.c:868
+msgid "do not order objects before emitting them"
+msgstr "ä¸è¦åœ¨è¼¸å‡ºç‰©ä»¶å‰æŽ’åº"
+
+#: builtin/cat-file.c:870
+msgid ""
+"Emit object (blob or tree) with conversion or filter (stand-alone, or with "
+"batch)"
+msgstr "轉æ›æˆ–éŽæ¿¾å¾Œè¼¸å‡ºç‰©ä»¶ï¼ˆblob 或樹)(單ç¨æˆ–批次處ç†ï¼‰"
-#: builtin/cat-file.c:682
-msgid "show info about objects fed from the standard input"
-msgstr "顯示從標準輸入æ供的物件的訊æ¯"
+#: builtin/cat-file.c:872
+msgid "run textconv on object's content"
+msgstr "在物件內容執行 textconv"
-#: builtin/cat-file.c:686
-msgid "follow in-tree symlinks (used with --batch or --batch-check)"
-msgstr "跟隨樹內符號連çµï¼ˆå’Œ --batch 或 --batch-check 共用)"
+#: builtin/cat-file.c:874
+msgid "run filters on object's content"
+msgstr "在物件內容執行éŽæ¿¾å™¨"
-#: builtin/cat-file.c:688
-msgid "show all objects with --batch or --batch-check"
-msgstr "使用 --batch 或 --batch-check åƒæ•¸é¡¯ç¤ºæ‰€æœ‰ç‰©ä»¶"
+#: builtin/cat-file.c:875
+msgid "blob|tree"
+msgstr "blob|tree"
-#: builtin/cat-file.c:690
-msgid "do not order --batch-all-objects output"
-msgstr "ä¸è¦å° --batch-all-objects 的輸出排åº"
+#: builtin/cat-file.c:876
+msgid "use a <path> for (--textconv | --filters); Not with 'batch'"
+msgstr "請在 (--textconv | --filters) 使用 <path>ï¼Œè€Œéž â€œbatchâ€"
+
+#: builtin/cat-file.c:894
+#, c-format
+msgid "'%s=<%s>' needs '%s' or '%s'"
+msgstr "「%s=<%s>ã€éœ€è¦ã€Œ%sã€æˆ–「%sã€"
+
+#: builtin/cat-file.c:896
+msgid "path|tree-ish"
+msgstr "path|tree-ish"
+
+#: builtin/cat-file.c:903 builtin/cat-file.c:906 builtin/cat-file.c:909
+#, c-format
+msgid "'%s' requires a batch mode"
+msgstr "「%sã€éœ€è¦æ‰¹æ¬¡è™•ç†æ¨¡å¼"
+
+#: builtin/cat-file.c:921
+#, c-format
+msgid "'-%c' is incompatible with batch mode"
+msgstr "「-%cã€èˆ‡æ‰¹æ¬¡è™•ç†æ¨¡å¼ä¸ç›¸å®¹"
+
+#: builtin/cat-file.c:924
+msgid "batch modes take no arguments"
+msgstr "批次處ç†æ¨¡å¼ä¸å–引數"
+
+#: builtin/cat-file.c:932 builtin/cat-file.c:935
+#, c-format
+msgid "<rev> required with '%s'"
+msgstr "<rev> 需è¦æ­é…「%sã€"
+
+#: builtin/cat-file.c:938
+#, c-format
+msgid "<object> required with '-%c'"
+msgstr "<object> 需è¦æ­é…「-%cã€"
+
+#: builtin/cat-file.c:943 builtin/notes.c:374 builtin/notes.c:429
+#: builtin/notes.c:507 builtin/notes.c:519 builtin/notes.c:596
+#: builtin/notes.c:663 builtin/notes.c:813 builtin/notes.c:965
+#: builtin/notes.c:987 builtin/prune-packed.c:25 builtin/receive-pack.c:2489
+#: builtin/tag.c:592
+msgid "too many arguments"
+msgstr "太多åƒæ•¸"
+
+#: builtin/cat-file.c:947
+#, c-format
+msgid "only two arguments allowed in <type> <object> mode, not %d"
+msgstr "åªå…許在 <type> <object> 模å¼å‚³å…¥å…©å€‹å¼•æ•¸ï¼Œä½†å‚³äº† %d 個"
#: builtin/check-attr.c:13
msgid "git check-attr [-a | --all | <attr>...] [--] <pathname>..."
@@ -11974,7 +12339,7 @@ msgstr "報告設定在檔案上的所有屬性"
msgid "use .gitattributes only from the index"
msgstr "åªä½¿ç”¨ç´¢å¼•ä¸­çš„ .gitattributes"
-#: builtin/check-attr.c:23 builtin/check-ignore.c:25 builtin/hash-object.c:100
+#: builtin/check-attr.c:23 builtin/check-ignore.c:25 builtin/hash-object.c:101
msgid "read file names from stdin"
msgstr "從標準輸入讀出檔案å"
@@ -11982,8 +12347,8 @@ msgstr "從標準輸入讀出檔案å"
msgid "terminate input and output records by a NUL character"
msgstr "輸入和輸出的紀錄使用 NUL 字元終çµ"
-#: builtin/check-ignore.c:21 builtin/checkout.c:1532 builtin/gc.c:550
-#: builtin/worktree.c:493
+#: builtin/check-ignore.c:21 builtin/checkout.c:1550 builtin/gc.c:550
+#: builtin/worktree.c:565
msgid "suppress progress reporting"
msgstr "ä¸é¡¯ç¤ºé€²åº¦å ±å‘Š"
@@ -12040,158 +12405,162 @@ msgstr "未指定è¯ç¹«ä½å€"
msgid "git checkout--worker [<options>]"
msgstr "git checkout--worker [<é¸é …>]"
-#: builtin/checkout--worker.c:118 builtin/checkout-index.c:201
-#: builtin/column.c:31 builtin/column.c:32 builtin/submodule--helper.c:1864
-#: builtin/submodule--helper.c:1867 builtin/submodule--helper.c:1875
-#: builtin/submodule--helper.c:2511 builtin/submodule--helper.c:2577
-#: builtin/worktree.c:491 builtin/worktree.c:728
+#: builtin/checkout--worker.c:118 builtin/checkout-index.c:235
+#: builtin/column.c:31 builtin/column.c:32 builtin/submodule--helper.c:1878
+#: builtin/submodule--helper.c:1881 builtin/submodule--helper.c:1889
+#: builtin/submodule--helper.c:2716 builtin/worktree.c:563
+#: builtin/worktree.c:808
msgid "string"
msgstr "字串"
-#: builtin/checkout--worker.c:119 builtin/checkout-index.c:202
+#: builtin/checkout--worker.c:119 builtin/checkout-index.c:236
msgid "when creating files, prepend <string>"
msgstr "在建立檔案時,在å‰é¢åŠ ä¸Š <字串>"
-#: builtin/checkout-index.c:152
+#: builtin/checkout-index.c:184
msgid "git checkout-index [<options>] [--] [<file>...]"
msgstr "git checkout-index [<é¸é …>] [--] [<檔案>...]"
-#: builtin/checkout-index.c:169
+#: builtin/checkout-index.c:201
msgid "stage should be between 1 and 3 or all"
msgstr "索引值應該å–值 1 到 3 或者 all"
-#: builtin/checkout-index.c:187
+#: builtin/checkout-index.c:219
msgid "check out all files in the index"
msgstr "簽出索引å€çš„所有檔案"
-#: builtin/checkout-index.c:188
+#: builtin/checkout-index.c:221
+msgid "do not skip files with skip-worktree set"
+msgstr "設定 skip-worktree 時ä¸ç•¥éŽæª”案"
+
+#: builtin/checkout-index.c:222
msgid "force overwrite of existing files"
msgstr "強制覆蓋ç¾æœ‰çš„檔案"
-#: builtin/checkout-index.c:190
+#: builtin/checkout-index.c:224
msgid "no warning for existing files and files not in index"
msgstr "存在或ä¸åœ¨ç´¢å¼•ä¸­çš„檔案都沒有警告"
-#: builtin/checkout-index.c:192
+#: builtin/checkout-index.c:226
msgid "don't checkout new files"
msgstr "ä¸ç°½å‡ºæ–°æª”案"
-#: builtin/checkout-index.c:194
+#: builtin/checkout-index.c:228
msgid "update stat information in the index file"
msgstr "更新索引中檔案的狀態訊æ¯"
-#: builtin/checkout-index.c:198
+#: builtin/checkout-index.c:232
msgid "read list of paths from the standard input"
msgstr "從標準輸入讀å–路徑列表"
-#: builtin/checkout-index.c:200
+#: builtin/checkout-index.c:234
msgid "write the content to temporary files"
msgstr "將內容寫入暫存檔"
-#: builtin/checkout-index.c:204
+#: builtin/checkout-index.c:238
msgid "copy out the files from named stage"
msgstr "從指定暫存å€ä¸­æ‹·å‡ºæª”案"
-#: builtin/checkout.c:33
+#: builtin/checkout.c:34
msgid "git checkout [<options>] <branch>"
msgstr "git checkout [<é¸é …>] <分支>"
-#: builtin/checkout.c:34
+#: builtin/checkout.c:35
msgid "git checkout [<options>] [<branch>] -- <file>..."
msgstr "git checkout [<é¸é …>] [<分支>] -- <檔案>..."
-#: builtin/checkout.c:39
+#: builtin/checkout.c:40
msgid "git switch [<options>] [<branch>]"
msgstr "git switch [<é¸é …>] [<分支>]"
-#: builtin/checkout.c:44
+#: builtin/checkout.c:45
msgid "git restore [<options>] [--source=<branch>] <file>..."
msgstr "git restore [<é¸é …>] [--source=<分支>] <檔案>..."
-#: builtin/checkout.c:198 builtin/checkout.c:237
+#: builtin/checkout.c:199 builtin/checkout.c:238
#, c-format
msgid "path '%s' does not have our version"
msgstr "路徑 '%s' 沒有我們的版本"
-#: builtin/checkout.c:200 builtin/checkout.c:239
+#: builtin/checkout.c:201 builtin/checkout.c:240
#, c-format
msgid "path '%s' does not have their version"
msgstr "路徑 '%s' 沒有他們的版本"
-#: builtin/checkout.c:216
+#: builtin/checkout.c:217
#, c-format
msgid "path '%s' does not have all necessary versions"
msgstr "路徑 '%s' 沒有全部必需的版本"
-#: builtin/checkout.c:269
+#: builtin/checkout.c:271
#, c-format
msgid "path '%s' does not have necessary versions"
msgstr "路徑 '%s' 沒有必需的版本"
-#: builtin/checkout.c:286
+#: builtin/checkout.c:291
#, c-format
msgid "path '%s': cannot merge"
msgstr "path '%s':無法åˆä½µ"
-#: builtin/checkout.c:302
+#: builtin/checkout.c:307
#, c-format
msgid "Unable to add merge result for '%s'"
msgstr "無法為 '%s' 新增åˆä½µçµæžœ"
-#: builtin/checkout.c:419
+#: builtin/checkout.c:424
#, c-format
msgid "Recreated %d merge conflict"
msgid_plural "Recreated %d merge conflicts"
msgstr[0] "é‡æ–°å»ºç«‹äº† %d 個åˆä½µè¡çª"
-#: builtin/checkout.c:424
+#: builtin/checkout.c:429
#, c-format
msgid "Updated %d path from %s"
msgid_plural "Updated %d paths from %s"
msgstr[0] "從 %2$s 更新了 %1$d 個路徑"
-#: builtin/checkout.c:431
+#: builtin/checkout.c:436
#, c-format
msgid "Updated %d path from the index"
msgid_plural "Updated %d paths from the index"
msgstr[0] "從索引å€æ›´æ–°äº† %d 個路徑"
-#: builtin/checkout.c:454 builtin/checkout.c:457 builtin/checkout.c:460
-#: builtin/checkout.c:464
+#: builtin/checkout.c:459 builtin/checkout.c:462 builtin/checkout.c:465
+#: builtin/checkout.c:469
#, c-format
msgid "'%s' cannot be used with updating paths"
msgstr "'%s' ä¸èƒ½åœ¨æ›´æ–°è·¯å¾‘時使用"
-#: builtin/checkout.c:474
+#: builtin/checkout.c:479
#, c-format
msgid "Cannot update paths and switch to branch '%s' at the same time."
msgstr "ä¸èƒ½åŒæ™‚更新路徑並切æ›åˆ°åˆ†æ”¯'%s'。"
-#: builtin/checkout.c:478
+#: builtin/checkout.c:483
#, c-format
msgid "neither '%s' or '%s' is specified"
msgstr "'%s' 或 '%s' 都沒有指定"
-#: builtin/checkout.c:482
+#: builtin/checkout.c:487
#, c-format
msgid "'%s' must be used when '%s' is not specified"
msgstr "未指定 '%2$s' 時,必須使用 '%1$s'"
-#: builtin/checkout.c:487 builtin/checkout.c:492
+#: builtin/checkout.c:492 builtin/checkout.c:497
#, c-format
msgid "'%s' or '%s' cannot be used with %s"
msgstr "'%s' 或 '%s' ä¸èƒ½å’Œ %s 一起使用"
-#: builtin/checkout.c:566 builtin/checkout.c:573
+#: builtin/checkout.c:571 builtin/checkout.c:578
#, c-format
msgid "path '%s' is unmerged"
msgstr "路徑 '%s' 未åˆä½µ"
-#: builtin/checkout.c:747
+#: builtin/checkout.c:753
msgid "you need to resolve your current index first"
msgstr "您需è¦å…ˆè§£æ±ºç›®å‰ç´¢å¼•çš„è¡çª"
-#: builtin/checkout.c:797
+#: builtin/checkout.c:809
#, c-format
msgid ""
"cannot continue with staged changes in the following files:\n"
@@ -12200,51 +12569,51 @@ msgstr ""
"ä¸èƒ½ç¹¼çºŒï¼Œä¸‹åˆ—檔案有暫存的修改:\n"
"%s"
-#: builtin/checkout.c:890
+#: builtin/checkout.c:902
#, c-format
msgid "Can not do reflog for '%s': %s\n"
msgstr "ä¸èƒ½å° '%s' 執行 reflog 動作:%s\n"
-#: builtin/checkout.c:934
+#: builtin/checkout.c:947
msgid "HEAD is now at"
msgstr "HEAD ç›®å‰ä½æ–¼"
-#: builtin/checkout.c:938 builtin/clone.c:609 t/helper/test-fast-rebase.c:203
+#: builtin/checkout.c:951 builtin/clone.c:615 t/helper/test-fast-rebase.c:203
msgid "unable to update HEAD"
msgstr "ä¸èƒ½æ›´æ–° HEAD"
-#: builtin/checkout.c:942
+#: builtin/checkout.c:955
#, c-format
msgid "Reset branch '%s'\n"
msgstr "é‡è¨­åˆ†æ”¯ '%s'\n"
-#: builtin/checkout.c:945
+#: builtin/checkout.c:958
#, c-format
msgid "Already on '%s'\n"
msgstr "已經ä½æ–¼ '%s'\n"
-#: builtin/checkout.c:949
+#: builtin/checkout.c:962
#, c-format
msgid "Switched to and reset branch '%s'\n"
msgstr "切æ›ä¸¦é‡è¨­åˆ†æ”¯ '%s'\n"
-#: builtin/checkout.c:951 builtin/checkout.c:1388
+#: builtin/checkout.c:964 builtin/checkout.c:1398
#, c-format
msgid "Switched to a new branch '%s'\n"
msgstr "切æ›åˆ°ä¸€å€‹æ–°åˆ†æ”¯ '%s'\n"
-#: builtin/checkout.c:953
+#: builtin/checkout.c:966
#, c-format
msgid "Switched to branch '%s'\n"
msgstr "切æ›åˆ°åˆ†æ”¯ '%s'\n"
# 譯者:請維æŒå‰å°Žç©ºæ ¼
-#: builtin/checkout.c:1004
+#: builtin/checkout.c:1017
#, c-format
msgid " ... and %d more.\n"
msgstr " ... åŠå…¶å®ƒ %d 個。\n"
-#: builtin/checkout.c:1010
+#: builtin/checkout.c:1023
#, c-format
msgid ""
"Warning: you are leaving %d commit behind, not connected to\n"
@@ -12261,7 +12630,7 @@ msgstr[0] ""
"\n"
"%s\n"
-#: builtin/checkout.c:1029
+#: builtin/checkout.c:1042
#, c-format
msgid ""
"If you want to keep it by creating a new branch, this may be a good time\n"
@@ -12282,19 +12651,19 @@ msgstr[0] ""
" git branch <新分支å> %s\n"
"\n"
-#: builtin/checkout.c:1064
+#: builtin/checkout.c:1077
msgid "internal error in revision walk"
msgstr "在版本é歷時é‡åˆ°å…§éƒ¨éŒ¯èª¤"
-#: builtin/checkout.c:1068
+#: builtin/checkout.c:1081
msgid "Previous HEAD position was"
msgstr "之å‰çš„ HEAD ä½ç½®æ˜¯"
-#: builtin/checkout.c:1114 builtin/checkout.c:1383
+#: builtin/checkout.c:1124 builtin/checkout.c:1393
msgid "You are on a branch yet to be born"
msgstr "您ä½æ–¼ä¸€å€‹å°šæœªåˆå§‹åŒ–的分支"
-#: builtin/checkout.c:1196
+#: builtin/checkout.c:1206
#, c-format
msgid ""
"'%s' could be both a local file and a tracking branch.\n"
@@ -12303,7 +12672,7 @@ msgstr ""
"'%s' æ—¢å¯ä»¥æ˜¯ä¸€å€‹æœ¬æ©Ÿæª”案,也å¯ä»¥æ˜¯ä¸€å€‹è¿½è¹¤åˆ†æ”¯ã€‚\n"
"請使用 --(和å¯é¸çš„ --no-guess)來消除歧義"
-#: builtin/checkout.c:1203
+#: builtin/checkout.c:1213
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"
@@ -12322,51 +12691,56 @@ msgstr ""
"如果您總是喜歡使用模糊的簡短分支å <name>,而ä¸å–œæ­¡å¦‚ 'origin' çš„é ç«¯\n"
"版本庫å,å¯ä»¥åœ¨è¨­å®šä¸­è¨­å®š checkout.defaultRemote=origin。"
-#: builtin/checkout.c:1213
+#: builtin/checkout.c:1223
#, c-format
msgid "'%s' matched multiple (%d) remote tracking branches"
msgstr "'%s' 符åˆå¤šå€‹ (%d) é ç«¯è¿½è¹¤åˆ†æ”¯"
-#: builtin/checkout.c:1279
+#: builtin/checkout.c:1289
msgid "only one reference expected"
msgstr "é æœŸåªæœ‰ä¸€å€‹å¼•ç”¨"
-#: builtin/checkout.c:1296
+#: builtin/checkout.c:1306
#, c-format
msgid "only one reference expected, %d given."
msgstr "應åªæœ‰ä¸€å€‹å¼•ç”¨ï¼Œå»æ供了 %d 個。"
-#: builtin/checkout.c:1342 builtin/worktree.c:269 builtin/worktree.c:436
+#: builtin/checkout.c:1352 builtin/worktree.c:338 builtin/worktree.c:508
#, c-format
msgid "invalid reference: %s"
msgstr "無效引用:%s"
-#: builtin/checkout.c:1355 builtin/checkout.c:1725
+#: builtin/checkout.c:1365 builtin/checkout.c:1744
#, c-format
msgid "reference is not a tree: %s"
msgstr "引用ä¸æ˜¯ä¸€å€‹æ¨¹ï¼š%s"
-#: builtin/checkout.c:1402
+#: builtin/checkout.c:1413
#, c-format
msgid "a branch is expected, got tag '%s'"
msgstr "期望一個分支,得到標籤 '%s'"
-#: builtin/checkout.c:1404
+#: builtin/checkout.c:1415
#, c-format
msgid "a branch is expected, got remote branch '%s'"
msgstr "期望一個分支,得到é ç«¯åˆ†æ”¯ '%s'"
-#: builtin/checkout.c:1405 builtin/checkout.c:1413
+#: builtin/checkout.c:1417 builtin/checkout.c:1426
#, c-format
msgid "a branch is expected, got '%s'"
msgstr "期望一個分支,得到 '%s'"
-#: builtin/checkout.c:1408
+#: builtin/checkout.c:1420
#, c-format
msgid "a branch is expected, got commit '%s'"
msgstr "期望一個分支,得到æ交 '%s'"
-#: builtin/checkout.c:1424
+#: builtin/checkout.c:1429
+msgid ""
+"If you want to detach HEAD at the commit, try again with the --detach option."
+msgstr "若您想è¦åˆ†é›¢æ交的 HEAD,請傳入 --detach é¸é …é‡è©¦ã€‚"
+
+#: builtin/checkout.c:1442
msgid ""
"cannot switch branch while merging\n"
"Consider \"git merge --quit\" or \"git worktree add\"."
@@ -12374,7 +12748,7 @@ msgstr ""
"ä¸èƒ½åœ¨åˆä½µæ™‚切æ›åˆ†æ”¯\n"
"考慮使用 \"git merge --quit\" 或 \"git worktree add\"。"
-#: builtin/checkout.c:1428
+#: builtin/checkout.c:1446
msgid ""
"cannot switch branch in the middle of an am session\n"
"Consider \"git am --quit\" or \"git worktree add\"."
@@ -12382,7 +12756,7 @@ msgstr ""
"ä¸èƒ½åœ¨ am 工作階段期間切æ›åˆ†æ”¯\n"
"考慮使用 \"git am --quit\" 或 \"git worktree add\"。"
-#: builtin/checkout.c:1432
+#: builtin/checkout.c:1450
msgid ""
"cannot switch branch while rebasing\n"
"Consider \"git rebase --quit\" or \"git worktree add\"."
@@ -12390,7 +12764,7 @@ msgstr ""
"ä¸èƒ½åœ¨é‡å®šåŸºåº•æ™‚切æ›åˆ†æ”¯\n"
"考慮使用 \"git rebase --quit\" 或 \"git worktree add\"。"
-#: builtin/checkout.c:1436
+#: builtin/checkout.c:1454
msgid ""
"cannot switch branch while cherry-picking\n"
"Consider \"git cherry-pick --quit\" or \"git worktree add\"."
@@ -12398,7 +12772,7 @@ msgstr ""
"ä¸èƒ½åœ¨æ€é¸æ™‚切æ›åˆ†æ”¯\n"
"考慮使用 \"git cherry-pick --quit\" 或 \"git worktree add\"。"
-#: builtin/checkout.c:1440
+#: builtin/checkout.c:1458
msgid ""
"cannot switch branch while reverting\n"
"Consider \"git revert --quit\" or \"git worktree add\"."
@@ -12406,196 +12780,192 @@ msgstr ""
"ä¸èƒ½åœ¨é‚„原時切æ›åˆ†æ”¯\n"
"考慮使用 \"git revert --quit\" 或 \"git worktree add\"。"
-#: builtin/checkout.c:1444
+#: builtin/checkout.c:1462
msgid "you are switching branch while bisecting"
msgstr "您在執行二分æœå°‹æ™‚切æ›åˆ†æ”¯"
-#: builtin/checkout.c:1451
+#: builtin/checkout.c:1469
msgid "paths cannot be used with switching branches"
msgstr "路徑ä¸èƒ½å’Œåˆ‡æ›åˆ†æ”¯åŒæ™‚使用"
-#: builtin/checkout.c:1454 builtin/checkout.c:1458 builtin/checkout.c:1462
+#: builtin/checkout.c:1472 builtin/checkout.c:1476 builtin/checkout.c:1480
#, c-format
msgid "'%s' cannot be used with switching branches"
msgstr "'%s' ä¸èƒ½å’Œåˆ‡æ›åˆ†æ”¯åŒæ™‚使用"
-#: builtin/checkout.c:1466 builtin/checkout.c:1469 builtin/checkout.c:1472
-#: builtin/checkout.c:1477 builtin/checkout.c:1482
+#: builtin/checkout.c:1484 builtin/checkout.c:1487 builtin/checkout.c:1490
+#: builtin/checkout.c:1495 builtin/checkout.c:1500
#, c-format
msgid "'%s' cannot be used with '%s'"
msgstr "'%s' ä¸èƒ½å’Œ '%s' åŒæ™‚使用"
-#: builtin/checkout.c:1479
+#: builtin/checkout.c:1497
#, c-format
msgid "'%s' cannot take <start-point>"
msgstr "'%s' ä¸å¸¶ <起始點>"
-#: builtin/checkout.c:1487
+#: builtin/checkout.c:1505
#, c-format
msgid "Cannot switch branch to a non-commit '%s'"
msgstr "ä¸èƒ½åˆ‡æ›åˆ†æ”¯åˆ°ä¸€å€‹éžæ交 '%s'"
-#: builtin/checkout.c:1494
+#: builtin/checkout.c:1512
msgid "missing branch or commit argument"
msgstr "缺少分支或æ交åƒæ•¸"
-#: builtin/checkout.c:1537
+#: builtin/checkout.c:1555
msgid "perform a 3-way merge with the new branch"
msgstr "和新的分支執行三方åˆä½µ"
-#: builtin/checkout.c:1538 builtin/log.c:1825 parse-options.h:323
+#: builtin/checkout.c:1556 builtin/log.c:1844 parse-options.h:354
msgid "style"
msgstr "風格"
-#: builtin/checkout.c:1539
+#: builtin/checkout.c:1557
msgid "conflict style (merge, diff3, or zdiff3)"
msgstr "è¡çªè¼¸å‡ºé¢¨æ ¼ï¼ˆmergeã€diff3 或 zdiff3)"
-#: builtin/checkout.c:1551 builtin/worktree.c:488
+#: builtin/checkout.c:1569 builtin/worktree.c:560
msgid "detach HEAD at named commit"
msgstr "HEAD 從指定的æ交分離"
-#: builtin/checkout.c:1553
-msgid "set up tracking mode (see git-pull(1))"
-msgstr "設定追蹤模å¼ï¼ˆåƒè¦‹ git-pull(1))"
-
-#: builtin/checkout.c:1556
+#: builtin/checkout.c:1574
msgid "force checkout (throw away local modifications)"
msgstr "強制簽出(æ¨æ£„本機修改)"
-#: builtin/checkout.c:1558
+#: builtin/checkout.c:1576
msgid "new-branch"
msgstr "新分支"
-#: builtin/checkout.c:1558
+#: builtin/checkout.c:1576
msgid "new unparented branch"
msgstr "新的沒有父æ交的分支"
-#: builtin/checkout.c:1560 builtin/merge.c:305
+#: builtin/checkout.c:1578 builtin/merge.c:305
msgid "update ignored files (default)"
msgstr "更新忽略的檔案(é è¨­ï¼‰"
-#: builtin/checkout.c:1563
+#: builtin/checkout.c:1581
msgid "do not check if another worktree is holding the given ref"
msgstr "ä¸æª¢æŸ¥æŒ‡å®šçš„引用是å¦è¢«å…¶ä»–工作å€æ‰€å ç”¨"
-#: builtin/checkout.c:1576
+#: builtin/checkout.c:1594
msgid "checkout our version for unmerged files"
msgstr "å°å°šæœªåˆä½µçš„檔案簽出我們的版本"
-#: builtin/checkout.c:1579
+#: builtin/checkout.c:1597
msgid "checkout their version for unmerged files"
msgstr "å°å°šæœªåˆä½µçš„檔案簽出他們的版本"
-#: builtin/checkout.c:1583
+#: builtin/checkout.c:1601
msgid "do not limit pathspecs to sparse entries only"
msgstr "å°è·¯å¾‘ä¸åšç¨€ç–簽出的é™åˆ¶"
-#: builtin/checkout.c:1640
+#: builtin/checkout.c:1659
#, c-format
msgid "options '-%c', '-%c', and '%s' cannot be used together"
msgstr "「-%cã€ã€ã€Œ-%cã€å’Œã€Œ%sã€é¸é …ä¸å¾—åŒæ™‚使用"
-#: builtin/checkout.c:1681
+#: builtin/checkout.c:1700
msgid "--track needs a branch name"
msgstr "--track 需è¦ä¸€å€‹åˆ†æ”¯å"
-#: builtin/checkout.c:1686
+#: builtin/checkout.c:1705
#, c-format
msgid "missing branch name; try -%c"
msgstr "缺少分支å稱,請嘗試 -%c"
-#: builtin/checkout.c:1718
+#: builtin/checkout.c:1737
#, c-format
msgid "could not resolve %s"
msgstr "ç„¡æ³•è§£æž %s"
-#: builtin/checkout.c:1734
+#: builtin/checkout.c:1753
msgid "invalid path specification"
msgstr "無效的路徑è¦æ ¼"
-#: builtin/checkout.c:1741
+#: builtin/checkout.c:1760
#, c-format
msgid "'%s' is not a commit and a branch '%s' cannot be created from it"
msgstr "'%s' ä¸æ˜¯ä¸€å€‹æ交,ä¸èƒ½åŸºæ–¼å®ƒå»ºç«‹åˆ†æ”¯ '%s'"
-#: builtin/checkout.c:1745
+#: builtin/checkout.c:1764
#, c-format
msgid "git checkout: --detach does not take a path argument '%s'"
msgstr "git checkout:--detach ä¸èƒ½æŽ¥æ”¶è·¯å¾‘åƒæ•¸ '%s'"
-#: builtin/checkout.c:1770
+#: builtin/checkout.c:1789
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:1775
+#: builtin/checkout.c:1794
msgid "you must specify path(s) to restore"
msgstr "您必須指定一個è¦å¾©åŽŸçš„路徑"
-#: builtin/checkout.c:1800 builtin/checkout.c:1802 builtin/checkout.c:1854
-#: builtin/checkout.c:1856 builtin/clone.c:126 builtin/remote.c:170
-#: builtin/remote.c:172 builtin/submodule--helper.c:2959
-#: builtin/submodule--helper.c:3253 builtin/worktree.c:484
-#: builtin/worktree.c:486
+#: builtin/checkout.c:1819 builtin/checkout.c:1821 builtin/checkout.c:1873
+#: builtin/checkout.c:1875 builtin/clone.c:130 builtin/remote.c:171
+#: builtin/remote.c:173 builtin/submodule--helper.c:3038
+#: builtin/submodule--helper.c:3371 builtin/worktree.c:556
+#: builtin/worktree.c:558
msgid "branch"
msgstr "分支"
-#: builtin/checkout.c:1801
+#: builtin/checkout.c:1820
msgid "create and checkout a new branch"
msgstr "建立並簽出一個新的分支"
-#: builtin/checkout.c:1803
+#: builtin/checkout.c:1822
msgid "create/reset and checkout a branch"
msgstr "建立/é‡è¨­ä¸¦ç°½å‡ºä¸€å€‹åˆ†æ”¯"
-#: builtin/checkout.c:1804
+#: builtin/checkout.c:1823
msgid "create reflog for new branch"
msgstr "為新的分支建立引用日誌"
-#: builtin/checkout.c:1806
+#: builtin/checkout.c:1825
msgid "second guess 'git checkout <no-such-branch>' (default)"
msgstr "二次猜測 'git checkout <無此分支>'(é è¨­ï¼‰"
-#: builtin/checkout.c:1807
+#: builtin/checkout.c:1826
msgid "use overlay mode (default)"
msgstr "使用疊加模å¼ï¼ˆé è¨­ï¼‰"
-#: builtin/checkout.c:1855
+#: builtin/checkout.c:1874
msgid "create and switch to a new branch"
msgstr "建立並切æ›ä¸€å€‹æ–°åˆ†æ”¯"
-#: builtin/checkout.c:1857
+#: builtin/checkout.c:1876
msgid "create/reset and switch to a branch"
msgstr "建立/é‡è¨­ä¸¦åˆ‡æ›ä¸€å€‹åˆ†æ”¯"
-#: builtin/checkout.c:1859
+#: builtin/checkout.c:1878
msgid "second guess 'git switch <no-such-branch>'"
msgstr "二次猜測 'git switch <無此分支>'"
-#: builtin/checkout.c:1861
+#: builtin/checkout.c:1880
msgid "throw away local modifications"
msgstr "æ¨æ£„本機修改"
-#: builtin/checkout.c:1897
+#: builtin/checkout.c:1916
msgid "which tree-ish to checkout from"
msgstr "è¦ç°½å‡ºå“ªä¸€å€‹æ¨¹"
-#: builtin/checkout.c:1899
+#: builtin/checkout.c:1918
msgid "restore the index"
msgstr "復原索引"
-#: builtin/checkout.c:1901
+#: builtin/checkout.c:1920
msgid "restore the working tree (default)"
msgstr "復原工作å€ï¼ˆé è¨­ï¼‰"
-#: builtin/checkout.c:1903
+#: builtin/checkout.c:1922
msgid "ignore unmerged entries"
msgstr "忽略未åˆä½µæ¢ç›®"
-#: builtin/checkout.c:1904
+#: builtin/checkout.c:1923
msgid "use overlay mode"
msgstr "使用疊加模å¼"
@@ -12742,8 +13112,8 @@ msgid "remove whole directories"
msgstr "刪除整個目錄"
#: builtin/clean.c:932 builtin/describe.c:565 builtin/describe.c:567
-#: builtin/grep.c:937 builtin/log.c:184 builtin/log.c:186
-#: builtin/ls-files.c:651 builtin/name-rev.c:535 builtin/name-rev.c:537
+#: builtin/grep.c:938 builtin/log.c:185 builtin/log.c:187
+#: builtin/ls-files.c:651 builtin/name-rev.c:585 builtin/name-rev.c:587
#: builtin/show-ref.c:179
msgid "pattern"
msgstr "模å¼"
@@ -12778,208 +13148,212 @@ msgstr ""
msgid "-x and -X cannot be used together"
msgstr "-x å’Œ -X ä¸èƒ½åŒæ™‚使用"
-#: builtin/clone.c:45
+#: builtin/clone.c:47
msgid "git clone [<options>] [--] <repo> [<dir>]"
msgstr "git clone [<é¸é …>] [--] <版本庫> [<路徑>]"
-#: builtin/clone.c:96
+#: builtin/clone.c:100
msgid "don't clone shallow repository"
msgstr "ä¸è¦è¤‡è£½æ·ºç‰ˆæœ¬åº«"
-#: builtin/clone.c:98
+#: builtin/clone.c:102
msgid "don't create a checkout"
msgstr "ä¸å»ºç«‹ä¸€å€‹ç°½å‡º"
-#: builtin/clone.c:99 builtin/clone.c:101 builtin/init-db.c:542
+#: builtin/clone.c:103 builtin/clone.c:105 builtin/init-db.c:542
msgid "create a bare repository"
msgstr "建立一個純版本庫"
-#: builtin/clone.c:103
+#: builtin/clone.c:107
msgid "create a mirror repository (implies bare)"
msgstr "建立一個é¡åƒç‰ˆæœ¬åº«ï¼ˆä¹Ÿæ˜¯ç´”版本庫)"
-#: builtin/clone.c:105
+#: builtin/clone.c:109
msgid "to clone from a local repository"
msgstr "從本機版本庫複製"
-#: builtin/clone.c:107
+#: builtin/clone.c:111
msgid "don't use local hardlinks, always copy"
msgstr "ä¸ä½¿ç”¨æœ¬æ©Ÿç¡¬é€£çµï¼Œå§‹çµ‚複製"
-#: builtin/clone.c:109
+#: builtin/clone.c:113
msgid "setup as shared repository"
msgstr "設定為共享版本庫"
-#: builtin/clone.c:111
+#: builtin/clone.c:115
msgid "pathspec"
msgstr "路徑è¦æ ¼"
-#: builtin/clone.c:111
+#: builtin/clone.c:115
msgid "initialize submodules in the clone"
msgstr "在複製時åˆå§‹åŒ–å­æ¨¡çµ„"
-#: builtin/clone.c:115
+#: builtin/clone.c:119
msgid "number of submodules cloned in parallel"
msgstr "並行複製的å­æ¨¡çµ„數"
-#: builtin/clone.c:116 builtin/init-db.c:539
+#: builtin/clone.c:120 builtin/init-db.c:539
msgid "template-directory"
msgstr "範本目錄"
-#: builtin/clone.c:117 builtin/init-db.c:540
+#: builtin/clone.c:121 builtin/init-db.c:540
msgid "directory from which templates will be used"
msgstr "範本目錄將被使用"
-#: builtin/clone.c:119 builtin/clone.c:121 builtin/submodule--helper.c:1871
-#: builtin/submodule--helper.c:2514 builtin/submodule--helper.c:3260
+#: builtin/clone.c:123 builtin/clone.c:125 builtin/submodule--helper.c:1885
+#: builtin/submodule--helper.c:2719 builtin/submodule--helper.c:3378
msgid "reference repository"
msgstr "引用版本庫"
-#: builtin/clone.c:123 builtin/submodule--helper.c:1873
-#: builtin/submodule--helper.c:2516
+#: builtin/clone.c:127 builtin/submodule--helper.c:1887
+#: builtin/submodule--helper.c:2721
msgid "use --reference only while cloning"
msgstr "僅在複製時åƒè€ƒ --reference 指å‘的本機版本庫"
-#: builtin/clone.c:124 builtin/column.c:27 builtin/fmt-merge-msg.c:27
+#: builtin/clone.c:128 builtin/column.c:27 builtin/fmt-merge-msg.c:27
#: builtin/init-db.c:550 builtin/merge-file.c:48 builtin/merge.c:290
-#: builtin/pack-objects.c:3944 builtin/repack.c:665
-#: builtin/submodule--helper.c:3262 t/helper/test-simple-ipc.c:595
+#: builtin/pack-objects.c:3967 builtin/repack.c:669
+#: builtin/submodule--helper.c:3380 t/helper/test-simple-ipc.c:595
#: t/helper/test-simple-ipc.c:597
msgid "name"
msgstr "å稱"
-#: builtin/clone.c:125
+#: builtin/clone.c:129
msgid "use <name> instead of 'origin' to track upstream"
msgstr "使用 <å稱> 而ä¸æ˜¯ 'origin' 去追蹤上游"
-#: builtin/clone.c:127
+#: builtin/clone.c:131
msgid "checkout <branch> instead of the remote's HEAD"
msgstr "簽出 <分支> 而ä¸æ˜¯é ç«¯ HEAD"
-#: builtin/clone.c:129
+#: builtin/clone.c:133
msgid "path to git-upload-pack on the remote"
msgstr "é ç«¯ git-upload-pack 路徑"
-#: builtin/clone.c:130 builtin/fetch.c:181 builtin/grep.c:876
+#: builtin/clone.c:134 builtin/fetch.c:182 builtin/grep.c:877
#: builtin/pull.c:212
msgid "depth"
msgstr "深度"
-#: builtin/clone.c:131
+#: builtin/clone.c:135
msgid "create a shallow clone of that depth"
msgstr "建立一個指定深度的淺複製"
-#: builtin/clone.c:132 builtin/fetch.c:183 builtin/pack-objects.c:3933
+#: builtin/clone.c:136 builtin/fetch.c:184 builtin/pack-objects.c:3956
#: builtin/pull.c:215
msgid "time"
msgstr "時間"
-#: builtin/clone.c:133
+#: builtin/clone.c:137
msgid "create a shallow clone since a specific time"
msgstr "建立從指定時間到ç¾åœ¨çš„淺複製"
-#: builtin/clone.c:134 builtin/fetch.c:185 builtin/fetch.c:208
-#: builtin/pull.c:218 builtin/pull.c:243 builtin/rebase.c:1022
+#: builtin/clone.c:138 builtin/fetch.c:186 builtin/fetch.c:212
+#: builtin/pull.c:218 builtin/pull.c:243 builtin/rebase.c:1050
msgid "revision"
msgstr "修訂版"
-#: builtin/clone.c:135 builtin/fetch.c:186 builtin/pull.c:219
+#: builtin/clone.c:139 builtin/fetch.c:187 builtin/pull.c:219
msgid "deepen history of shallow clone, excluding rev"
msgstr "å–得更多淺複製的éŽåŽ»æ­·å²è¨˜éŒ„,除了特定版本"
-#: builtin/clone.c:137 builtin/submodule--helper.c:1883
-#: builtin/submodule--helper.c:2530
+#: builtin/clone.c:141 builtin/submodule--helper.c:1897
+#: builtin/submodule--helper.c:2735
msgid "clone only one branch, HEAD or --branch"
msgstr "åªè¤‡è£½ä¸€å€‹åˆ†æ”¯ã€HEAD 或 --branch"
-#: builtin/clone.c:139
+#: builtin/clone.c:143
msgid "don't clone any tags, and make later fetches not to follow them"
msgstr "ä¸è¦è¤‡è£½ä»»ä½•æ¨™ç±¤ï¼Œä¹‹å¾Œå–得也ä¸è¦è¿½è¹¤é€™äº›æ¨™ç±¤"
-#: builtin/clone.c:141
+#: builtin/clone.c:145
msgid "any cloned submodules will be shallow"
msgstr "å­æ¨¡çµ„將以淺下載模å¼è¤‡è£½"
-#: builtin/clone.c:142 builtin/init-db.c:548
+#: builtin/clone.c:146 builtin/init-db.c:548
msgid "gitdir"
msgstr "git目錄"
-#: builtin/clone.c:143 builtin/init-db.c:549
+#: builtin/clone.c:147 builtin/init-db.c:549
msgid "separate git dir from working tree"
msgstr "git目錄和工作å€åˆ†é›¢"
-#: builtin/clone.c:144
+#: builtin/clone.c:148
msgid "key=value"
msgstr "key=value"
-#: builtin/clone.c:145
+#: builtin/clone.c:149
msgid "set config inside the new repository"
msgstr "在新版本庫中設定設定訊æ¯"
-#: builtin/clone.c:147 builtin/fetch.c:203 builtin/ls-remote.c:77
+#: builtin/clone.c:151 builtin/fetch.c:207 builtin/ls-remote.c:77
#: builtin/pull.c:234 builtin/push.c:575 builtin/send-pack.c:200
msgid "server-specific"
msgstr "server-specific"
-#: builtin/clone.c:147 builtin/fetch.c:203 builtin/ls-remote.c:77
+#: builtin/clone.c:151 builtin/fetch.c:207 builtin/ls-remote.c:77
#: builtin/pull.c:235 builtin/push.c:575 builtin/send-pack.c:201
msgid "option to transmit"
msgstr "傳輸é¸é …"
-#: builtin/clone.c:148 builtin/fetch.c:204 builtin/pull.c:238
+#: builtin/clone.c:152 builtin/fetch.c:208 builtin/pull.c:238
#: builtin/push.c:576
msgid "use IPv4 addresses only"
msgstr "åªä½¿ç”¨ IPv4 ä½å€"
-#: builtin/clone.c:150 builtin/fetch.c:206 builtin/pull.c:241
+#: builtin/clone.c:154 builtin/fetch.c:210 builtin/pull.c:241
#: builtin/push.c:578
msgid "use IPv6 addresses only"
msgstr "åªä½¿ç”¨ IPv6 ä½å€"
-#: builtin/clone.c:154
+#: builtin/clone.c:158
+msgid "apply partial clone filters to submodules"
+msgstr "將部分複製éŽæ¿¾å™¨å¥—用至å­æ¨¡çµ„"
+
+#: builtin/clone.c:160
msgid "any cloned submodules will use their remote-tracking branch"
msgstr "任何複製的å­æ¨¡çµ„都將使用它們的é ç«¯è¿½è¹¤åˆ†æ”¯"
-#: builtin/clone.c:156
+#: builtin/clone.c:162
msgid "initialize sparse-checkout file to include only files at root"
msgstr "åˆå§‹åŒ–稀ç–簽出檔案,åªåŒ…å«æ ¹ç›®éŒ„中的檔案"
-#: builtin/clone.c:231
+#: builtin/clone.c:237
#, c-format
msgid "info: Could not add alternate for '%s': %s\n"
msgstr "info: ä¸èƒ½ç‚º '%s' 新增一個備用:%s\n"
-#: builtin/clone.c:304
+#: builtin/clone.c:310
#, c-format
msgid "%s exists and is not a directory"
msgstr "%s 存在且ä¸æ˜¯ä¸€å€‹ç›®éŒ„"
-#: builtin/clone.c:322
+#: builtin/clone.c:328
#, c-format
msgid "failed to start iterator over '%s'"
msgstr "無法在 '%s' 上啟動疊代器"
-#: builtin/clone.c:353
+#: builtin/clone.c:359
#, c-format
msgid "failed to create link '%s'"
msgstr "å»ºç«‹é€£çµ '%s' 失敗"
-#: builtin/clone.c:357
+#: builtin/clone.c:363
#, c-format
msgid "failed to copy file to '%s'"
msgstr "複製檔案至 '%s' 失敗"
-#: builtin/clone.c:362
+#: builtin/clone.c:368
#, c-format
msgid "failed to iterate over '%s'"
msgstr "無法在 '%s' 上疊代"
-#: builtin/clone.c:389
+#: builtin/clone.c:395
#, c-format
msgid "done.\n"
msgstr "完æˆã€‚\n"
-#: builtin/clone.c:403
+#: builtin/clone.c:409
msgid ""
"Clone succeeded, but checkout failed.\n"
"You can inspect what was checked out with 'git status'\n"
@@ -12989,144 +13363,148 @@ msgstr ""
"您å¯ä»¥é€éŽ 'git status' 檢查哪些已被簽出,然後使用指令\n"
"'git restore --source=HEAD :/' é‡è©¦\n"
-#: builtin/clone.c:480
+#: builtin/clone.c:486
#, c-format
msgid "Could not find remote branch %s to clone."
msgstr "找ä¸åˆ°è¦è¤‡è£½çš„é ç«¯åˆ†æ”¯ %s。"
-#: builtin/clone.c:597
+#: builtin/clone.c:603
#, c-format
msgid "unable to update %s"
msgstr "ä¸èƒ½æ›´æ–° %s"
-#: builtin/clone.c:645
+#: builtin/clone.c:651
msgid "failed to initialize sparse-checkout"
msgstr "無法åˆå§‹åŒ–稀ç–簽出"
-#: builtin/clone.c:668
+#: builtin/clone.c:674
msgid "remote HEAD refers to nonexistent ref, unable to checkout.\n"
msgstr "é ç«¯ HEAD 指å‘一個ä¸å­˜åœ¨çš„引用,無法簽出。\n"
-#: builtin/clone.c:701
+#: builtin/clone.c:709
msgid "unable to checkout working tree"
msgstr "ä¸èƒ½ç°½å‡ºå·¥ä½œå€"
-#: builtin/clone.c:779
+#: builtin/clone.c:793
msgid "unable to write parameters to config file"
msgstr "無法將åƒæ•¸å¯«å…¥è¨­å®šæª”案"
-#: builtin/clone.c:842
+#: builtin/clone.c:856
msgid "cannot repack to clean up"
msgstr "無法執行 repack 來清ç†"
-#: builtin/clone.c:844
+#: builtin/clone.c:858
msgid "cannot unlink temporary alternates file"
msgstr "無法刪除暫時的 alternates 檔案"
-#: builtin/clone.c:886
+#: builtin/clone.c:901
msgid "Too many arguments."
msgstr "太多åƒæ•¸ã€‚"
-#: builtin/clone.c:890 contrib/scalar/scalar.c:414
+#: builtin/clone.c:905 contrib/scalar/scalar.c:413
msgid "You must specify a repository to clone."
msgstr "您必須指定è¦è¤‡è£½çš„版本庫。"
-#: builtin/clone.c:903
+#: builtin/clone.c:918
#, c-format
msgid "options '%s' and '%s %s' cannot be used together"
msgstr "「%sã€å’Œã€Œ%s %sã€é¸é …ä¸å¾—åŒæ™‚使用"
-#: builtin/clone.c:920
+#: builtin/clone.c:935
#, c-format
msgid "repository '%s' does not exist"
msgstr "版本庫 '%s' ä¸å­˜åœ¨"
-#: builtin/clone.c:924 builtin/fetch.c:2052
+#: builtin/clone.c:939 builtin/fetch.c:2176
#, c-format
msgid "depth %s is not a positive number"
msgstr "深度 %s ä¸æ˜¯ä¸€å€‹æ­£æ•¸"
-#: builtin/clone.c:934
+#: builtin/clone.c:949
#, c-format
msgid "destination path '%s' already exists and is not an empty directory."
msgstr "目的地路徑 '%s' 已經存在,並且ä¸æ˜¯ä¸€å€‹ç©ºç›®éŒ„。"
-#: builtin/clone.c:940
+#: builtin/clone.c:955
#, c-format
msgid "repository path '%s' already exists and is not an empty directory."
msgstr "版本庫路徑 '%s' 已經存在,並且ä¸æ˜¯ä¸€å€‹ç©ºç›®éŒ„。"
-#: builtin/clone.c:954
+#: builtin/clone.c:969
#, c-format
msgid "working tree '%s' already exists."
msgstr "å·¥ä½œå€ '%s' 已經存在。"
-#: builtin/clone.c:969 builtin/clone.c:990 builtin/difftool.c:256
-#: builtin/log.c:2012 builtin/worktree.c:281 builtin/worktree.c:313
+#: builtin/clone.c:984 builtin/clone.c:1005 builtin/difftool.c:256
+#: builtin/log.c:2037 builtin/worktree.c:350 builtin/worktree.c:382
#, c-format
msgid "could not create leading directories of '%s'"
msgstr "ä¸èƒ½ç‚º '%s' 建立先導目錄"
-#: builtin/clone.c:974
+#: builtin/clone.c:989
#, c-format
msgid "could not create work tree dir '%s'"
msgstr "ä¸èƒ½å»ºç«‹å·¥ä½œå€ç›®éŒ„ '%s'"
-#: builtin/clone.c:994
+#: builtin/clone.c:1009
#, c-format
msgid "Cloning into bare repository '%s'...\n"
msgstr "複製到純版本庫 '%s'...\n"
-#: builtin/clone.c:996
+#: builtin/clone.c:1011
#, c-format
msgid "Cloning into '%s'...\n"
msgstr "正複製到 '%s'...\n"
-#: builtin/clone.c:1025
+#: builtin/clone.c:1040
msgid ""
"clone --recursive is not compatible with both --reference and --reference-if-"
"able"
msgstr "clone --recursive 與 --reference å’Œ --reference-if-able ä¸ç›¸å®¹"
-#: builtin/clone.c:1080 builtin/remote.c:200 builtin/remote.c:710
+#: builtin/clone.c:1116 builtin/remote.c:201 builtin/remote.c:721
#, c-format
msgid "'%s' is not a valid remote name"
msgstr "'%s' ä¸æ˜¯ä¸€å€‹æœ‰æ•ˆçš„é ç«¯å稱"
-#: builtin/clone.c:1121
+#: builtin/clone.c:1157
msgid "--depth is ignored in local clones; use file:// instead."
msgstr "本機複製會忽略 --depth。請改用 file:// 通訊å”定。"
-#: builtin/clone.c:1123
+#: builtin/clone.c:1159
msgid "--shallow-since is ignored in local clones; use file:// instead."
msgstr "本機複製會忽略 --shallow-since。請改用 file:// å”定。"
-#: builtin/clone.c:1125
+#: builtin/clone.c:1161
msgid "--shallow-exclude is ignored in local clones; use file:// instead."
msgstr "本機複製會忽略 --shallow-exclude。請改用 file:// å”定。"
-#: builtin/clone.c:1127
+#: builtin/clone.c:1163
msgid "--filter is ignored in local clones; use file:// instead."
msgstr "本機複製會忽略 --filter。請改用 file:// å”定。"
-#: builtin/clone.c:1132
+#: builtin/clone.c:1168
msgid "source repository is shallow, ignoring --local"
msgstr "來æºç‰ˆæœ¬åº«æ˜¯æ·ºè¤‡è£½ï¼Œå¿½ç•¥ --local"
-#: builtin/clone.c:1137
+#: builtin/clone.c:1173
msgid "--local is ignored"
msgstr "--local 被忽略"
-#: builtin/clone.c:1216 builtin/clone.c:1276
+#: builtin/clone.c:1185
+msgid "cannot clone from filtered bundle"
+msgstr "無法從éŽæ¿¾å¾Œçš„套件複製"
+
+#: builtin/clone.c:1265 builtin/clone.c:1324
msgid "remote transport reported error"
msgstr "é ç«¯å‚³è¼¸å›žå ±éŒ¯èª¤"
-#: builtin/clone.c:1228 builtin/clone.c:1239
+#: builtin/clone.c:1277 builtin/clone.c:1289
#, c-format
msgid "Remote branch %s not found in upstream %s"
msgstr "é ç«¯åˆ†æ”¯ %s 在上游 %s 未發ç¾"
-#: builtin/clone.c:1242
+#: builtin/clone.c:1292
msgid "You appear to have cloned an empty repository."
msgstr "您複製的版本庫似乎是空的。"
@@ -13179,7 +13557,7 @@ msgstr ""
"split[=<strategy>]] [--reachable|--stdin-packs|--stdin-commits] [--changed-"
"paths] [--[no-]max-new-filters <n>] [--[no-]progress] <split options>"
-#: builtin/commit-graph.c:51 builtin/fetch.c:192 builtin/log.c:1794
+#: builtin/commit-graph.c:51 builtin/fetch.c:196 builtin/log.c:1813
msgid "dir"
msgstr "目錄"
@@ -13277,7 +13655,7 @@ msgstr ""
msgid "duplicate parent %s ignored"
msgstr "忽略é‡è¤‡çš„父æ交 %s"
-#: builtin/commit-tree.c:56 builtin/commit-tree.c:134 builtin/log.c:577
+#: builtin/commit-tree.c:56 builtin/commit-tree.c:134 builtin/log.c:590
#, c-format
msgid "not a valid object name %s"
msgstr "ä¸æ˜¯ä¸€å€‹æœ‰æ•ˆçš„物件å %s"
@@ -13300,13 +13678,13 @@ msgstr "父æ交"
msgid "id of a parent commit object"
msgstr "父æ交物件 ID"
-#: builtin/commit-tree.c:112 builtin/commit.c:1627 builtin/merge.c:284
-#: builtin/notes.c:407 builtin/notes.c:573 builtin/stash.c:1677
-#: builtin/tag.c:454
+#: builtin/commit-tree.c:112 builtin/commit.c:1626 builtin/merge.c:284
+#: builtin/notes.c:407 builtin/notes.c:573 builtin/stash.c:1666
+#: builtin/tag.c:455
msgid "message"
msgstr "訊æ¯"
-#: builtin/commit-tree.c:113 builtin/commit.c:1627
+#: builtin/commit-tree.c:113 builtin/commit.c:1626
msgid "commit message"
msgstr "æ交說明"
@@ -13314,7 +13692,7 @@ msgstr "æ交說明"
msgid "read commit log message from file"
msgstr "從檔案中讀å–æ交說明"
-#: builtin/commit-tree.c:119 builtin/commit.c:1644 builtin/merge.c:303
+#: builtin/commit-tree.c:119 builtin/commit.c:1643 builtin/merge.c:303
#: builtin/pull.c:180 builtin/revert.c:118
msgid "GPG sign commit"
msgstr "GPG æ交簽å"
@@ -13327,15 +13705,15 @@ msgstr "必須精確地æ供一個樹"
msgid "git commit-tree: failed to read"
msgstr "git commit-tree:讀å–失敗"
-#: builtin/commit.c:42
+#: builtin/commit.c:43
msgid "git commit [<options>] [--] <pathspec>..."
msgstr "git commit [<é¸é …>] [--] <路徑è¦æ ¼>..."
-#: builtin/commit.c:47
+#: builtin/commit.c:48
msgid "git status [<options>] [--] <pathspec>..."
msgstr "git status [<é¸é …>] [--] <路徑è¦æ ¼>..."
-#: builtin/commit.c:52
+#: builtin/commit.c:53
msgid ""
"You asked to amend the most recent commit, but doing so would make\n"
"it empty. You can repeat your command with --allow-empty, or you can\n"
@@ -13344,7 +13722,7 @@ msgstr ""
"您è¦ä¿®è£œæœ€è¿‘çš„æ交,但這麼åšæœƒè®“它æˆç‚ºç©ºæ交。您å¯ä»¥é‡è¤‡æ‚¨çš„指令並帶上\n"
"--allow-empty é¸é …,或者您å¯ç”¨æŒ‡ä»¤ \"git reset HEAD^\" 整個刪除該æ交。\n"
-#: builtin/commit.c:57
+#: builtin/commit.c:58
msgid ""
"The previous cherry-pick is now empty, possibly due to conflict resolution.\n"
"If you wish to commit it anyway, use:\n"
@@ -13358,15 +13736,15 @@ msgstr ""
" git commit --allow-empty\n"
"\n"
-#: builtin/commit.c:64
+#: builtin/commit.c:65
msgid "Otherwise, please use 'git rebase --skip'\n"
msgstr "å¦å‰‡ï¼Œè«‹ä½¿ç”¨ 'git rebase --skip'\n"
-#: builtin/commit.c:67
+#: builtin/commit.c:68
msgid "Otherwise, please use 'git cherry-pick --skip'\n"
msgstr "å¦å‰‡ï¼Œè«‹ä½¿ç”¨ 'git cherry-pick --skip'\n"
-#: builtin/commit.c:70
+#: builtin/commit.c:71
msgid ""
"and then use:\n"
"\n"
@@ -13387,111 +13765,111 @@ msgstr ""
" git cherry-pick --skip\n"
"\n"
-#: builtin/commit.c:325
+#: builtin/commit.c:326
msgid "failed to unpack HEAD tree object"
msgstr "解包 HEAD 樹狀物件失敗"
-#: builtin/commit.c:375
+#: builtin/commit.c:376
msgid "No paths with --include/--only does not make sense."
msgstr "åƒæ•¸ --include/--only ä¸è·Ÿè·¯å¾‘沒有æ„義。"
-#: builtin/commit.c:387
+#: builtin/commit.c:388
msgid "unable to create temporary index"
msgstr "ä¸èƒ½å»ºç«‹æš«æ™‚索引"
-#: builtin/commit.c:396
+#: builtin/commit.c:397
msgid "interactive add failed"
msgstr "互動å¼æ–°å¢žå¤±æ•—"
-#: builtin/commit.c:411
+#: builtin/commit.c:412
msgid "unable to update temporary index"
msgstr "無法更新暫時索引"
-#: builtin/commit.c:413
+#: builtin/commit.c:414
msgid "Failed to update main cache tree"
msgstr "ä¸èƒ½æ›´æ–°æ¨¹çš„主快å–"
-#: builtin/commit.c:438 builtin/commit.c:461 builtin/commit.c:509
+#: builtin/commit.c:439 builtin/commit.c:462 builtin/commit.c:510
msgid "unable to write new_index file"
msgstr "無法寫 new_index 檔案"
-#: builtin/commit.c:490
+#: builtin/commit.c:491
msgid "cannot do a partial commit during a merge."
msgstr "在åˆä½µéŽç¨‹ä¸­ä¸èƒ½åšéƒ¨åˆ†æ交。"
-#: builtin/commit.c:492
+#: builtin/commit.c:493
msgid "cannot do a partial commit during a cherry-pick."
msgstr "在æ€é¸éŽç¨‹ä¸­ä¸èƒ½åšéƒ¨åˆ†æ交。"
-#: builtin/commit.c:494
+#: builtin/commit.c:495
msgid "cannot do a partial commit during a rebase."
msgstr "在é‡å®šåŸºåº•éŽç¨‹ä¸­ä¸èƒ½åšéƒ¨åˆ†æ交。"
-#: builtin/commit.c:502
+#: builtin/commit.c:503
msgid "cannot read the index"
msgstr "無法讀å–索引"
-#: builtin/commit.c:521
+#: builtin/commit.c:522
msgid "unable to write temporary index file"
msgstr "無法寫暫時索引檔案"
-#: builtin/commit.c:619
+#: builtin/commit.c:620
#, c-format
msgid "commit '%s' lacks author header"
msgstr "æ交 '%s' 缺少作者訊æ¯"
-#: builtin/commit.c:621
+#: builtin/commit.c:622
#, c-format
msgid "commit '%s' has malformed author line"
msgstr "æ交 '%s' 有格å¼éŒ¯èª¤çš„作者訊æ¯"
-#: builtin/commit.c:640
+#: builtin/commit.c:641
msgid "malformed --author parameter"
msgstr "æ ¼å¼éŒ¯èª¤çš„ --author åƒæ•¸"
-#: builtin/commit.c:693
+#: builtin/commit.c:694
msgid ""
"unable to select a comment character that is not used\n"
"in the current commit message"
msgstr "無法é¸æ“‡ä¸€å€‹æœªè¢«ç›®å‰æ交說明使用的備註字元"
-#: builtin/commit.c:747 builtin/commit.c:781 builtin/commit.c:1166
+#: builtin/commit.c:750 builtin/commit.c:784 builtin/commit.c:1170
#, c-format
msgid "could not lookup commit %s"
msgstr "ä¸èƒ½æŸ¥è©¢æ交 %s"
-#: builtin/commit.c:759 builtin/shortlog.c:416
+#: builtin/commit.c:762 builtin/shortlog.c:417
#, c-format
msgid "(reading log message from standard input)\n"
msgstr "(正從標準輸入中讀å–日誌訊æ¯ï¼‰\n"
-#: builtin/commit.c:761
+#: builtin/commit.c:764
msgid "could not read log from standard input"
msgstr "ä¸èƒ½å¾žæ¨™æº–輸入中讀å–日誌訊æ¯"
-#: builtin/commit.c:765
+#: builtin/commit.c:768
#, c-format
msgid "could not read log file '%s'"
msgstr "ä¸èƒ½è®€å–日誌檔案 '%s'"
-#: builtin/commit.c:802
+#: builtin/commit.c:805
#, c-format
msgid "options '%s' and '%s:%s' cannot be used together"
msgstr "「%sã€å’Œã€Œ%s:%sã€é¸é …ä¸å¾—åŒæ™‚使用"
-#: builtin/commit.c:814 builtin/commit.c:830
+#: builtin/commit.c:817 builtin/commit.c:833
msgid "could not read SQUASH_MSG"
msgstr "ä¸èƒ½è®€å– SQUASH_MSG"
-#: builtin/commit.c:821
+#: builtin/commit.c:824
msgid "could not read MERGE_MSG"
msgstr "ä¸èƒ½è®€å– MERGE_MSG"
-#: builtin/commit.c:881
+#: builtin/commit.c:884
msgid "could not write commit template"
msgstr "ä¸èƒ½å¯«æ交範本"
-#: builtin/commit.c:894
+#: builtin/commit.c:897
#, c-format
msgid ""
"Please enter the commit message for your changes. Lines starting\n"
@@ -13500,7 +13878,7 @@ msgstr ""
"請輸入æ述您變更的æ交訊æ¯ã€‚\n"
"開頭是「%cã€çš„行皆會忽略。\n"
-#: builtin/commit.c:896
+#: builtin/commit.c:899
#, c-format
msgid ""
"Please enter the commit message for your changes. Lines starting\n"
@@ -13509,7 +13887,7 @@ msgstr ""
"請輸入æ述您變更的æ交訊æ¯ã€‚開頭是「%cã€\n"
"的行皆會忽略。æ交訊æ¯ç©ºç™½å‰‡å–消本次æ交作業。\n"
-#: builtin/commit.c:900
+#: builtin/commit.c:903
#, c-format
msgid ""
"Please enter the commit message for your changes. Lines starting\n"
@@ -13518,7 +13896,7 @@ msgstr ""
"請輸入æ述您變更的æ交訊æ¯ã€‚會ä¿ç•™é–‹é ­æ˜¯ã€Œ%cã€\n"
"的行,但也å¯ä»¥è‡ªå·±ç§»é™¤æŽ‰é€™äº›è¡Œã€‚\n"
-#: builtin/commit.c:904
+#: builtin/commit.c:907
#, c-format
msgid ""
"Please enter the commit message for your changes. Lines starting\n"
@@ -13529,7 +13907,7 @@ msgstr ""
"「%cã€çš„行,但也å¯ä»¥è‡ªå·±ç§»é™¤æŽ‰é€™äº›è¡Œã€‚\n"
"æ交訊æ¯ç©ºç™½å‰‡å–消本次æ交作業。\n"
-#: builtin/commit.c:916
+#: builtin/commit.c:919
msgid ""
"\n"
"It looks like you may be committing a merge.\n"
@@ -13543,7 +13921,7 @@ msgstr ""
"\tgit update-ref -d MERGE_HEAD\n"
"後é‡è©¦ã€‚\n"
-#: builtin/commit.c:921
+#: builtin/commit.c:924
msgid ""
"\n"
"It looks like you may be committing a cherry-pick.\n"
@@ -13558,167 +13936,147 @@ msgstr ""
"後é‡è©¦ã€‚\n"
# 譯者:為ä¿è­‰åœ¨è¼¸å‡ºä¸­å°é½Šï¼Œæ³¨æ„調整å¥ä¸­ç©ºæ ¼ï¼
-#: builtin/commit.c:948
+#: builtin/commit.c:951
#, c-format
msgid "%sAuthor: %.*s <%.*s>"
msgstr "%s作者: %.*s <%.*s>"
# 譯者:為ä¿è­‰åœ¨è¼¸å‡ºä¸­å°é½Šï¼Œæ³¨æ„調整å¥ä¸­ç©ºæ ¼ï¼
-#: builtin/commit.c:956
+#: builtin/commit.c:959
#, c-format
msgid "%sDate: %s"
msgstr "%s日期: %s"
# 譯者:為ä¿è­‰åœ¨è¼¸å‡ºä¸­å°é½Šï¼Œæ³¨æ„調整å¥ä¸­ç©ºæ ¼ï¼
-#: builtin/commit.c:963
+#: builtin/commit.c:966
#, c-format
msgid "%sCommitter: %.*s <%.*s>"
msgstr "%sæ交者:%.*s <%.*s>"
-#: builtin/commit.c:981
+#: builtin/commit.c:984
msgid "Cannot read index"
msgstr "無法讀å–索引"
-#: builtin/commit.c:1026
+#: builtin/commit.c:1029
msgid "unable to pass trailers to --trailers"
msgstr "無法將尾部署å傳éžè‡³ --trailers"
-#: builtin/commit.c:1066
+#: builtin/commit.c:1069
msgid "Error building trees"
msgstr "無法建立樹狀物件"
-#: builtin/commit.c:1080 builtin/tag.c:316
+#: builtin/commit.c:1083 builtin/tag.c:317
#, c-format
msgid "Please supply the message using either -m or -F option.\n"
msgstr "請使用 -m 或 -F é¸é …æä¾›æ交說明。\n"
-#: builtin/commit.c:1124
+#: builtin/commit.c:1128
#, c-format
msgid "--author '%s' is not 'Name <email>' and matches no existing author"
msgstr "--author '%s' ä¸æ˜¯ '姓å <ä¿¡ç®±>' æ ¼å¼ï¼Œä¸”未能在ç¾æœ‰ä½œè€…中找到符åˆ"
-#: builtin/commit.c:1138
+#: builtin/commit.c:1142
#, c-format
msgid "Invalid ignored mode '%s'"
msgstr "ç„¡æ•ˆçš„å¿½ç•¥æ¨¡å¼ '%s'"
-#: builtin/commit.c:1156 builtin/commit.c:1451
+#: builtin/commit.c:1160 builtin/commit.c:1450
#, c-format
msgid "Invalid untracked files mode '%s'"
msgstr "無效的未追蹤檔案åƒæ•¸ '%s'"
-#: builtin/commit.c:1227
+#: builtin/commit.c:1231
msgid "You are in the middle of a merge -- cannot reword."
msgstr "正在åˆä½µä¸­â€”—ä¸èƒ½é‡æ–°è¼¸å…¥ã€‚"
-#: builtin/commit.c:1229
+#: builtin/commit.c:1233
msgid "You are in the middle of a cherry-pick -- cannot reword."
msgstr "正在æ€é¸ä¸­â€”—ä¸èƒ½é‡æ–°è¼¸å…¥ã€‚"
-#: builtin/commit.c:1232
+#: builtin/commit.c:1236
#, c-format
msgid "reword option of '%s' and path '%s' cannot be used together"
msgstr "「%sã€çš„改寫é¸é …和「%sã€è·¯å¾‘ä¸å¾—åŒæ™‚使用"
-#: builtin/commit.c:1234
+#: builtin/commit.c:1238
#, c-format
msgid "reword option of '%s' and '%s' cannot be used together"
msgstr "「%sã€çš„改寫é¸é …和「%sã€ä¸å¾—åŒæ™‚使用"
-#: builtin/commit.c:1254
-msgid "Using both --reset-author and --author does not make sense"
-msgstr "åŒæ™‚使用 --reset-author å’Œ --author 沒有æ„義"
-
-#: builtin/commit.c:1261
+#: builtin/commit.c:1263
msgid "You have nothing to amend."
msgstr "您沒有å¯ä¿®è£œçš„æ交。"
-#: builtin/commit.c:1264
+#: builtin/commit.c:1266
msgid "You are in the middle of a merge -- cannot amend."
msgstr "您正處於一個åˆä½µéŽç¨‹ä¸­ -- 無法修補æ交。"
-#: builtin/commit.c:1266
+#: builtin/commit.c:1268
msgid "You are in the middle of a cherry-pick -- cannot amend."
msgstr "您正處於一個æ€é¸éŽç¨‹ä¸­ -- 無法修補æ交。"
-#: builtin/commit.c:1268
+#: builtin/commit.c:1270
msgid "You are in the middle of a rebase -- cannot amend."
msgstr "您正處於é‡å®šåŸºåº•çš„éŽç¨‹ä¸­ -- 無法修訂。"
-#: builtin/commit.c:1271
-msgid "Options --squash and --fixup cannot be used together"
-msgstr "é¸é … --squash å’Œ --fixup ä¸èƒ½åŒæ™‚使用"
-
-#: builtin/commit.c:1281
-msgid "Only one of -c/-C/-F/--fixup can be used."
-msgstr "åªèƒ½ç”¨ä¸€å€‹ -c/-C/-F/--fixup é¸é …。"
-
-#: builtin/commit.c:1283
-msgid "Option -m cannot be combined with -c/-C/-F."
-msgstr "é¸é … -m ä¸èƒ½å’Œ -c/-C/-F åŒæ™‚使用。"
-
-#: builtin/commit.c:1292
+#: builtin/commit.c:1290
msgid "--reset-author can be used only with -C, -c or --amend."
msgstr "--reset-author åªèƒ½å’Œ -Cã€-c 或 --amend åŒæ™‚使用。"
-#: builtin/commit.c:1310
-msgid "Only one of --include/--only/--all/--interactive/--patch can be used."
-msgstr "åªèƒ½ç”¨ä¸€å€‹ --include/--only/--all/--interactive/--patch é¸é …。"
-
-#: builtin/commit.c:1338
+#: builtin/commit.c:1337
#, c-format
msgid "unknown option: --fixup=%s:%s"
msgstr "未知é¸é …:--fixup=%s:%s"
-#: builtin/commit.c:1355
+#: builtin/commit.c:1354
#, c-format
msgid "paths '%s ...' with -a does not make sense"
msgstr "路徑 '%s ...' å’Œ -a é¸é …åŒæ™‚使用沒有æ„義"
-#: builtin/commit.c:1486 builtin/commit.c:1655
+#: builtin/commit.c:1485 builtin/commit.c:1654
msgid "show status concisely"
msgstr "以簡潔的格å¼é¡¯ç¤ºç‹€æ…‹"
-#: builtin/commit.c:1488 builtin/commit.c:1657
+#: builtin/commit.c:1487 builtin/commit.c:1656
msgid "show branch information"
msgstr "顯示分支訊æ¯"
-#: builtin/commit.c:1490
+#: builtin/commit.c:1489
msgid "show stash information"
msgstr "顯示儲è—å€è¨Šæ¯"
-#: builtin/commit.c:1492 builtin/commit.c:1659
+#: builtin/commit.c:1491 builtin/commit.c:1658
msgid "compute full ahead/behind values"
msgstr "計算完整的領先/è½å¾Œå€¼"
-#: builtin/commit.c:1494
+#: builtin/commit.c:1493
msgid "version"
msgstr "版本"
-#: builtin/commit.c:1494 builtin/commit.c:1661 builtin/push.c:551
-#: builtin/worktree.c:690
+#: builtin/commit.c:1493 builtin/commit.c:1660 builtin/push.c:551
+#: builtin/worktree.c:765
msgid "machine-readable output"
msgstr "機器å¯è®€çš„輸出"
-#: builtin/commit.c:1497 builtin/commit.c:1663
+#: builtin/commit.c:1496 builtin/commit.c:1662
msgid "show status in long format (default)"
msgstr "以長格å¼é¡¯ç¤ºç‹€æ…‹ï¼ˆé è¨­ï¼‰"
-#: builtin/commit.c:1500 builtin/commit.c:1666
+#: builtin/commit.c:1499 builtin/commit.c:1665
msgid "terminate entries with NUL"
msgstr "æ¢ç›®ä»¥ NUL å­—å…ƒçµå°¾"
-#: builtin/commit.c:1502 builtin/commit.c:1506 builtin/commit.c:1669
+#: builtin/commit.c:1501 builtin/commit.c:1505 builtin/commit.c:1668
#: builtin/fast-export.c:1172 builtin/fast-export.c:1175
-#: builtin/fast-export.c:1178 builtin/rebase.c:1111 parse-options.h:337
+#: builtin/fast-export.c:1178 builtin/rebase.c:1139 parse-options.h:368
msgid "mode"
msgstr "模å¼"
-#: builtin/commit.c:1503 builtin/commit.c:1669
+#: builtin/commit.c:1502 builtin/commit.c:1668
msgid "show untracked files, optional modes: all, normal, no. (Default: all)"
msgstr "顯示未追蹤的檔案,「模å¼ã€çš„å¯é¸åƒæ•¸ï¼šallã€normalã€no。(é è¨­å€¼ï¼šall)"
-#: builtin/commit.c:1507
+#: builtin/commit.c:1506
msgid ""
"show ignored files, optional modes: traditional, matching, no. (Default: "
"traditional)"
@@ -13726,201 +14084,201 @@ msgstr ""
"顯示已忽略的檔案,å¯é¸æ¨¡å¼ï¼štraditionalã€matchingã€no。(é è¨­å€¼ï¼š"
"traditional)"
-#: builtin/commit.c:1509 parse-options.h:192
+#: builtin/commit.c:1508 parse-options.h:197
msgid "when"
msgstr "何時"
-#: builtin/commit.c:1510
+#: builtin/commit.c:1509
msgid ""
"ignore changes to submodules, optional when: all, dirty, untracked. "
"(Default: all)"
msgstr ""
"忽略å­æ¨¡çµ„的更改,「何時ã€çš„å¯é¸åƒæ•¸ï¼šallã€dirtyã€untracked。(é è¨­å€¼ï¼šall)"
-#: builtin/commit.c:1512
+#: builtin/commit.c:1511
msgid "list untracked files in columns"
msgstr "以列的方å¼é¡¯ç¤ºæœªè¿½è¹¤çš„檔案"
-#: builtin/commit.c:1513
+#: builtin/commit.c:1512
msgid "do not detect renames"
msgstr "ä¸æª¢æ¸¬é‡æ–°å‘½å"
-#: builtin/commit.c:1515
+#: builtin/commit.c:1514
msgid "detect renames, optionally set similarity index"
msgstr "檢測é‡æ–°å‘½å,å¯ä»¥è¨­å®šç´¢å¼•ç›¸ä¼¼åº¦"
-#: builtin/commit.c:1538
+#: builtin/commit.c:1537
msgid "Unsupported combination of ignored and untracked-files arguments"
msgstr "ä¸æ”¯æ´å·²å¿½ç•¥å’Œæœªè¿½è¹¤æª”案åƒæ•¸çš„組åˆ"
-#: builtin/commit.c:1620
+#: builtin/commit.c:1619
msgid "suppress summary after successful commit"
msgstr "æ交æˆåŠŸå¾Œä¸é¡¯ç¤ºæ¦‚述訊æ¯"
-#: builtin/commit.c:1621
+#: builtin/commit.c:1620
msgid "show diff in commit message template"
msgstr "在æ交說明範本裡顯示差異"
-#: builtin/commit.c:1623
+#: builtin/commit.c:1622
msgid "Commit message options"
msgstr "æ交說明é¸é …"
-#: builtin/commit.c:1624 builtin/merge.c:288 builtin/tag.c:456
+#: builtin/commit.c:1623 builtin/merge.c:288 builtin/tag.c:457
msgid "read message from file"
msgstr "從檔案中讀å–æ交說明"
-#: builtin/commit.c:1625
+#: builtin/commit.c:1624
msgid "author"
msgstr "作者"
-#: builtin/commit.c:1625
+#: builtin/commit.c:1624
msgid "override author for commit"
msgstr "æ交時覆蓋作者"
-#: builtin/commit.c:1626 builtin/gc.c:551
+#: builtin/commit.c:1625 builtin/gc.c:551
msgid "date"
msgstr "日期"
-#: builtin/commit.c:1626
+#: builtin/commit.c:1625
msgid "override date for commit"
msgstr "æ交時覆蓋日期"
-#: builtin/commit.c:1628 builtin/commit.c:1629 builtin/commit.c:1635
-#: parse-options.h:329 ref-filter.h:89
+#: builtin/commit.c:1627 builtin/commit.c:1628 builtin/commit.c:1634
+#: parse-options.h:360 ref-filter.h:89
msgid "commit"
msgstr "æ交"
-#: builtin/commit.c:1628
+#: builtin/commit.c:1627
msgid "reuse and edit message from specified commit"
msgstr "é‡ç”¨ä¸¦ç·¨è¼¯æŒ‡å®šæ交的æ交說明"
-#: builtin/commit.c:1629
+#: builtin/commit.c:1628
msgid "reuse message from specified commit"
msgstr "é‡ç”¨æŒ‡å®šæ交的æ交說明"
#. TRANSLATORS: Leave "[(amend|reword):]" as-is,
#. and only translate <commit>.
#.
-#: builtin/commit.c:1634
+#: builtin/commit.c:1633
msgid "[(amend|reword):]commit"
msgstr "[(amend|reword):]commit"
-#: builtin/commit.c:1634
+#: builtin/commit.c:1633
msgid ""
"use autosquash formatted message to fixup or amend/reword specified commit"
msgstr "使用 autosquash æ ¼å¼åŒ–後的說明來 fixup 或是 amend/reword 指定æ交"
-#: builtin/commit.c:1635
+#: builtin/commit.c:1634
msgid "use autosquash formatted message to squash specified commit"
msgstr "使用 autosquash æ ¼å¼çš„æ交說明用以壓縮至指定的æ交"
-#: builtin/commit.c:1636
+#: builtin/commit.c:1635
msgid "the commit is authored by me now (used with -C/-c/--amend)"
msgstr "ç¾åœ¨å°‡è©²æ交的作者改為我(和 -C/-c/--amend åƒæ•¸å…±ç”¨ï¼‰"
-#: builtin/commit.c:1637 builtin/interpret-trailers.c:111
+#: builtin/commit.c:1636 builtin/interpret-trailers.c:111
msgid "trailer"
msgstr "尾部署å"
-#: builtin/commit.c:1637
+#: builtin/commit.c:1636
msgid "add custom trailer(s)"
msgstr "加入自訂尾部署å"
-#: builtin/commit.c:1638 builtin/log.c:1769 builtin/merge.c:306
+#: builtin/commit.c:1637 builtin/log.c:1788 builtin/merge.c:306
#: builtin/pull.c:146 builtin/revert.c:110
msgid "add a Signed-off-by trailer"
msgstr "在çµå°¾åŠ å…¥ Signed-off-by"
-#: builtin/commit.c:1639
+#: builtin/commit.c:1638
msgid "use specified template file"
msgstr "使用指定的範本檔案"
-#: builtin/commit.c:1640
+#: builtin/commit.c:1639
msgid "force edit of commit"
msgstr "強制編輯æ交"
-#: builtin/commit.c:1642
+#: builtin/commit.c:1641
msgid "include status in commit message template"
msgstr "在æ交說明範本裡包å«ç‹€æ…‹è¨Šæ¯"
-#: builtin/commit.c:1647
+#: builtin/commit.c:1646
msgid "Commit contents options"
msgstr "æ交內容é¸é …"
-#: builtin/commit.c:1648
+#: builtin/commit.c:1647
msgid "commit all changed files"
msgstr "æ交所有改動的檔案"
-#: builtin/commit.c:1649
+#: builtin/commit.c:1648
msgid "add specified files to index for commit"
msgstr "新增指定的檔案到索引å€ç­‰å¾…æ交"
-#: builtin/commit.c:1650
+#: builtin/commit.c:1649
msgid "interactively add files"
msgstr "互動å¼æ–°å¢žæª”案"
-#: builtin/commit.c:1651
+#: builtin/commit.c:1650
msgid "interactively add changes"
msgstr "互動å¼æ–°å¢žè®Šæ›´"
-#: builtin/commit.c:1652
+#: builtin/commit.c:1651
msgid "commit only specified files"
msgstr "åªæ交指定的檔案"
-#: builtin/commit.c:1653
+#: builtin/commit.c:1652
msgid "bypass pre-commit and commit-msg hooks"
msgstr "ç¹žéŽ pre-commit å’Œ commit-msg 掛鉤"
-#: builtin/commit.c:1654
+#: builtin/commit.c:1653
msgid "show what would be committed"
msgstr "顯示將è¦æ交的內容"
-#: builtin/commit.c:1667
+#: builtin/commit.c:1666
msgid "amend previous commit"
msgstr "修改先å‰çš„æ交"
-#: builtin/commit.c:1668
+#: builtin/commit.c:1667
msgid "bypass post-rewrite hook"
msgstr "ç¹žéŽ post-rewrite 掛鉤"
-#: builtin/commit.c:1675
+#: builtin/commit.c:1674
msgid "ok to record an empty change"
msgstr "å…許一個空æ交"
-#: builtin/commit.c:1677
+#: builtin/commit.c:1676
msgid "ok to record a change with an empty message"
msgstr "å…許空的æ交說明"
-#: builtin/commit.c:1753
+#: builtin/commit.c:1752
#, c-format
msgid "Corrupt MERGE_HEAD file (%s)"
msgstr "æ壞的 MERGE_HEAD 檔案(%s)"
-#: builtin/commit.c:1760
+#: builtin/commit.c:1759
msgid "could not read MERGE_MODE"
msgstr "ä¸èƒ½è®€å– MERGE_MODE"
-#: builtin/commit.c:1781
+#: builtin/commit.c:1780
#, c-format
msgid "could not read commit message: %s"
msgstr "ä¸èƒ½è®€å–æ交說明:%s"
-#: builtin/commit.c:1788
+#: builtin/commit.c:1787
#, c-format
msgid "Aborting commit due to empty commit message.\n"
msgstr "終止æ交因為æ交說明為空。\n"
-#: builtin/commit.c:1793
+#: builtin/commit.c:1792
#, c-format
msgid "Aborting commit; you did not edit the message.\n"
msgstr "終止æ交;您未更改來自範本的æ交說明。\n"
-#: builtin/commit.c:1804
+#: builtin/commit.c:1803
#, c-format
msgid "Aborting commit due to empty commit message body.\n"
msgstr "æ交說明內文空白,中止æ交作業。\n"
-#: builtin/commit.c:1840
+#: builtin/commit.c:1839
msgid ""
"repository has been updated, but unable to write\n"
"new_index file. Check that disk is not full and quota is\n"
@@ -14042,6 +14400,10 @@ msgstr "ç²å¾—é¡è‰²è¨­å®šï¼šè¨­å®š [stdout-is-tty]"
msgid "Type"
msgstr "é¡žåž‹"
+#: builtin/config.c:154 builtin/env--helper.c:42 builtin/hash-object.c:97
+msgid "type"
+msgstr "é¡žåž‹"
+
#: builtin/config.c:154 builtin/env--helper.c:43
msgid "value is given this type"
msgstr "å–值為該類型"
@@ -14251,10 +14613,6 @@ msgstr ""
msgid "no such section: %s"
msgstr "ç„¡æ­¤å°ç¯€ï¼š%s"
-#: builtin/count-objects.c:90
-msgid "git count-objects [-v] [-H | --human-readable]"
-msgstr "git count-objects [-v] [-H | --human-readable]"
-
#: builtin/count-objects.c:100
msgid "print sizes in human readable format"
msgstr "以使用者å¯è®€çš„æ ¼å¼é¡¯ç¤ºå¤§å°"
@@ -14421,7 +14779,7 @@ msgstr "åªè€ƒæ…®ç¬¦åˆ <模å¼> 的標籤"
msgid "do not consider tags matching <pattern>"
msgstr "ä¸è€ƒæ…®ç¬¦åˆ <模å¼> 的標籤"
-#: builtin/describe.c:570 builtin/name-rev.c:544
+#: builtin/describe.c:570 builtin/name-rev.c:595
msgid "show abbreviated commit object as fallback"
msgstr "顯示簡寫的æ交號作為後備"
@@ -14469,7 +14827,7 @@ msgstr "%s...%s: ç„¡åˆä½µåŸºåº•"
msgid "Not a git repository"
msgstr "ä¸æ˜¯ä¸€å€‹ git 版本庫"
-#: builtin/diff.c:537 builtin/grep.c:698
+#: builtin/diff.c:537 builtin/grep.c:700
#, c-format
msgid "invalid object '%s' given."
msgstr "æ供了無效物件 '%s'。"
@@ -14585,11 +14943,11 @@ msgstr "傳éžçµ¦ `diff`"
msgid "difftool requires worktree or --no-index"
msgstr "difftool è¦æ±‚工作å€æˆ–者 --no-index"
-#: builtin/difftool.c:744
+#: builtin/difftool.c:745
msgid "no <tool> given for --tool=<tool>"
msgstr "沒有為 --tool=<工具> åƒæ•¸æä¾› <工具>"
-#: builtin/difftool.c:751
+#: builtin/difftool.c:752
msgid "no <cmd> given for --extcmd=<cmd>"
msgstr "沒有為 --extcmd=<命令> åƒæ•¸æä¾› <命令>"
@@ -14597,10 +14955,6 @@ msgstr "沒有為 --extcmd=<命令> åƒæ•¸æä¾› <命令>"
msgid "git env--helper --type=[bool|ulong] <options> <env-var>"
msgstr "git env--helper --type=[bool|ulong] <é¸é …> <環境變數>"
-#: builtin/env--helper.c:42 builtin/hash-object.c:96
-msgid "type"
-msgstr "é¡žåž‹"
-
#: builtin/env--helper.c:46
msgid "default for git_env_*(...) to fall back on"
msgstr "git_env_*(...) çš„é è¨­å€¼"
@@ -14622,8 +14976,8 @@ msgid ""
msgstr "é¸é …「--defaultã€é æœŸæ”¶åˆ°ã€Œ--type=ulongã€çš„無號 long 數值,而éžã€Œ%sã€"
#: builtin/fast-export.c:29
-msgid "git fast-export [rev-list-opts]"
-msgstr "git fast-export [rev-list-opts]"
+msgid "git fast-export [<rev-list-opts>]"
+msgstr "git fast-export [<rev-list-opts>]"
#: builtin/fast-export.c:843
msgid "Error: Cannot export nested tags unless --mark-tags is specified."
@@ -14677,7 +15031,7 @@ msgstr "使用 done 功能終止串æµ"
msgid "skip output of blob data"
msgstr "ç•¥éŽè³‡æ–™ç‰©ä»¶è³‡æ–™çš„輸出"
-#: builtin/fast-export.c:1196 builtin/log.c:1841
+#: builtin/fast-export.c:1196 builtin/log.c:1860
msgid "refspec"
msgstr "引用è¦æ ¼"
@@ -14709,36 +15063,36 @@ msgstr "顯示資料物件åŠæ交的原始物件 ID"
msgid "label tags with mark ids"
msgstr "為包å«æ¨™è¨˜ ID 的標籤打上標記"
-#: builtin/fast-import.c:3090
+#: builtin/fast-import.c:3097
#, c-format
msgid "Missing from marks for submodule '%s'"
msgstr "「%sã€å­æ¨¡çµ„缺少 from 標記"
-#: builtin/fast-import.c:3092
+#: builtin/fast-import.c:3099
#, c-format
msgid "Missing to marks for submodule '%s'"
msgstr "「%sã€å­æ¨¡çµ„缺少 to 標記"
-#: builtin/fast-import.c:3227
+#: builtin/fast-import.c:3234
#, c-format
msgid "Expected 'mark' command, got %s"
msgstr "é æœŸ 'mark' 指令,得到 %s"
-#: builtin/fast-import.c:3232
+#: builtin/fast-import.c:3239
#, c-format
msgid "Expected 'to' command, got %s"
msgstr "é æœŸ 'to' 指令,得到 %s"
-#: builtin/fast-import.c:3324
+#: builtin/fast-import.c:3331
msgid "Expected format name:filename for submodule rewrite option"
msgstr "期望å­æ¨¡çµ„ rewrite é¸é …çš„æ ¼å¼æ˜¯ name:filename"
-#: builtin/fast-import.c:3379
+#: builtin/fast-import.c:3386
#, c-format
msgid "feature '%s' forbidden in input without --allow-unsafe-features"
msgstr "沒有 --allow-unsafe-features 時,ç¦æ­¢åœ¨è¼¸å…¥ä¸­ä½¿ç”¨ '%s' 功能"
-#: builtin/fetch-pack.c:242
+#: builtin/fetch-pack.c:246
#, c-format
msgid "Lockfile created but not reported: %s"
msgstr "已建立鎖定檔案,但尚未回報:%s"
@@ -14759,206 +15113,205 @@ msgstr "git fetch --multiple [<é¸é …>] [(<版本庫> | <組>)...]"
msgid "git fetch --all [<options>]"
msgstr "git fetch --all [<é¸é …>]"
-#: builtin/fetch.c:123
+#: builtin/fetch.c:124
msgid "fetch.parallel cannot be negative"
msgstr "fetch.parallel ä¸èƒ½ç‚ºè² æ•¸"
-#: builtin/fetch.c:146 builtin/pull.c:189
+#: builtin/fetch.c:147 builtin/pull.c:189
msgid "fetch from all remotes"
msgstr "從所有的é ç«¯æŠ“å–"
-#: builtin/fetch.c:148 builtin/pull.c:249
+#: builtin/fetch.c:149 builtin/pull.c:249
msgid "set upstream for git pull/fetch"
msgstr "為 git pull/fetch 設定上游"
-#: builtin/fetch.c:150 builtin/pull.c:192
+#: builtin/fetch.c:151 builtin/pull.c:192
msgid "append to .git/FETCH_HEAD instead of overwriting"
msgstr "追加到 .git/FETCH_HEAD 而ä¸æ˜¯è¦†è“‹å®ƒ"
-#: builtin/fetch.c:152
+#: builtin/fetch.c:153
msgid "use atomic transaction to update references"
msgstr "使用 atomic 事務更新引用"
-#: builtin/fetch.c:154 builtin/pull.c:195
+#: builtin/fetch.c:155 builtin/pull.c:195
msgid "path to upload pack on remote end"
msgstr "上傳包到é ç«¯çš„路徑"
-#: builtin/fetch.c:155
+#: builtin/fetch.c:156
msgid "force overwrite of local reference"
msgstr "強制覆蓋本機引用"
-#: builtin/fetch.c:157
+#: builtin/fetch.c:158
msgid "fetch from multiple remotes"
msgstr "從多個é ç«¯æŠ“å–"
-#: builtin/fetch.c:159 builtin/pull.c:199
+#: builtin/fetch.c:160 builtin/pull.c:199
msgid "fetch all tags and associated objects"
msgstr "抓å–所有的標籤和關è¯ç‰©ä»¶"
-#: builtin/fetch.c:161
+#: builtin/fetch.c:162
msgid "do not fetch all tags (--no-tags)"
msgstr "ä¸æŠ“å–任何標籤(--no-tags)"
-#: builtin/fetch.c:163
+#: builtin/fetch.c:164
msgid "number of submodules fetched in parallel"
msgstr "並行å–å¾—çš„å­æ¨¡çµ„數é‡"
-#: builtin/fetch.c:165
+#: builtin/fetch.c:166
msgid "modify the refspec to place all refs within refs/prefetch/"
msgstr "修改引用è¦æ ¼ (refspec) 以便將所有引用 (refs) 放置在 refs/prefetch/ 中"
-#: builtin/fetch.c:167 builtin/pull.c:202
+#: builtin/fetch.c:168 builtin/pull.c:202
msgid "prune remote-tracking branches no longer on remote"
msgstr "清除é ç«¯å·²ç¶“ä¸å­˜åœ¨çš„分支的追蹤分支"
-#: builtin/fetch.c:169
+#: builtin/fetch.c:170
msgid "prune local tags no longer on remote and clobber changed tags"
msgstr "清除é ç«¯ä¸å­˜åœ¨çš„本機標籤,並且å–代變更標籤"
# 譯者:å¯é¸å€¼ï¼Œä¸èƒ½ç¿»è­¯
-#: builtin/fetch.c:170 builtin/fetch.c:195 builtin/pull.c:123
+#: builtin/fetch.c:171 builtin/fetch.c:199 builtin/pull.c:123
msgid "on-demand"
msgstr "on-demand"
-#: builtin/fetch.c:171
+#: builtin/fetch.c:172
msgid "control recursive fetching of submodules"
msgstr "控制å­æ¨¡çµ„çš„éžè¿´æŠ“å–"
-#: builtin/fetch.c:176
+#: builtin/fetch.c:177
msgid "write fetched references to the FETCH_HEAD file"
msgstr "å°‡å–得的引用寫入 FETCH_HEAD 檔案"
-#: builtin/fetch.c:177 builtin/pull.c:210
+#: builtin/fetch.c:178 builtin/pull.c:210
msgid "keep downloaded pack"
msgstr "ä¿æŒä¸‹è¼‰åŒ…"
-#: builtin/fetch.c:179
+#: builtin/fetch.c:180
msgid "allow updating of HEAD ref"
msgstr "å…許更新 HEAD 引用"
-#: builtin/fetch.c:182 builtin/fetch.c:188 builtin/pull.c:213
+#: builtin/fetch.c:183 builtin/fetch.c:189 builtin/pull.c:213
#: builtin/pull.c:222
msgid "deepen history of shallow clone"
msgstr "å–得淺複製的更多éŽåŽ»æ­·å²è¨˜éŒ„"
-#: builtin/fetch.c:184 builtin/pull.c:216
+#: builtin/fetch.c:185 builtin/pull.c:216
msgid "deepen history of shallow repository based on time"
msgstr "基於時間來深化淺複製的歷å²"
-#: builtin/fetch.c:190 builtin/pull.c:225
+#: builtin/fetch.c:191 builtin/pull.c:225
msgid "convert to a complete repository"
msgstr "轉æ›ç‚ºä¸€å€‹å®Œæ•´çš„版本庫"
-#: builtin/fetch.c:193
+#: builtin/fetch.c:194
+msgid "re-fetch without negotiating common commits"
+msgstr "é‡æ–°æŠ“å–而ä¸å”商共åŒæ交"
+
+#: builtin/fetch.c:197
msgid "prepend this to submodule path output"
msgstr "在å­æ¨¡çµ„路徑輸出的å‰é¢åŠ ä¸Šæ­¤ç›®éŒ„"
-#: builtin/fetch.c:196
+#: builtin/fetch.c:200
msgid ""
"default for recursive fetching of submodules (lower priority than config "
"files)"
msgstr "éžè¿´å–å¾—å­æ¨¡çµ„çš„é è¨­å€¼ï¼ˆæ¯”設定檔案優先度低)"
-#: builtin/fetch.c:200 builtin/pull.c:228
+#: builtin/fetch.c:204 builtin/pull.c:228
msgid "accept refs that update .git/shallow"
msgstr "接å—æ›´æ–° .git/shallow 的引用"
-#: builtin/fetch.c:201 builtin/pull.c:230
+#: builtin/fetch.c:205 builtin/pull.c:230
msgid "refmap"
msgstr "引用映射"
-#: builtin/fetch.c:202 builtin/pull.c:231
+#: builtin/fetch.c:206 builtin/pull.c:231
msgid "specify fetch refmap"
msgstr "指定å–得動作的引用映射"
-#: builtin/fetch.c:209 builtin/pull.c:244
+#: builtin/fetch.c:213 builtin/pull.c:244
msgid "report that we have only objects reachable from this object"
msgstr "報告我們åªæ“有從該物件開始å¯ä»¥å–得的物件"
-#: builtin/fetch.c:211
+#: builtin/fetch.c:215
msgid "do not fetch a packfile; instead, print ancestors of negotiation tips"
-msgstr "ä¸å–得包檔案,而是輸出交涉的祖先æ交"
+msgstr "ä¸å–得包檔案,而是輸出å”商的祖先æ交"
-#: builtin/fetch.c:214 builtin/fetch.c:216
+#: builtin/fetch.c:218 builtin/fetch.c:220
msgid "run 'maintenance --auto' after fetching"
msgstr "å–å¾— (fetch) 後執行 'maintenance --auto'"
-#: builtin/fetch.c:218 builtin/pull.c:247
+#: builtin/fetch.c:222 builtin/pull.c:247
msgid "check for forced-updates on all updated branches"
msgstr "在所有更新分支上檢查強制更新"
-#: builtin/fetch.c:220
+#: builtin/fetch.c:224
msgid "write the commit-graph after fetching"
msgstr "抓å–後寫入分支圖"
-#: builtin/fetch.c:222
+#: builtin/fetch.c:226
msgid "accept refspecs from stdin"
msgstr "從標準輸入中接å—引用è¦æ ¼"
-#: builtin/fetch.c:592
+#: builtin/fetch.c:618
msgid "couldn't find remote ref HEAD"
msgstr "找ä¸åˆ°é ç«¯ HEAD 引用"
-#: builtin/fetch.c:766
-#, c-format
-msgid "configuration fetch.output contains invalid value %s"
-msgstr "設定變數 fetch.output 包å«ç„¡æ•ˆå€¼ %s"
-
-#: builtin/fetch.c:867
+#: builtin/fetch.c:893
#, c-format
msgid "object %s not found"
msgstr "物件 %s 未發ç¾"
-#: builtin/fetch.c:871
+#: builtin/fetch.c:897
msgid "[up to date]"
msgstr "[最新]"
-#: builtin/fetch.c:883 builtin/fetch.c:901 builtin/fetch.c:973
+#: builtin/fetch.c:909 builtin/fetch.c:927 builtin/fetch.c:999
msgid "[rejected]"
msgstr "[已拒絕]"
-#: builtin/fetch.c:885
+#: builtin/fetch.c:911
msgid "can't fetch in current branch"
msgstr "ç›®å‰åˆ†æ”¯ä¸‹ä¸èƒ½åŸ·è¡Œå–得動作"
-#: builtin/fetch.c:886
+#: builtin/fetch.c:912
msgid "checked out in another worktree"
msgstr "已在其他工作å€ç°½å‡º"
-#: builtin/fetch.c:896
+#: builtin/fetch.c:922
msgid "[tag update]"
msgstr "[標籤更新]"
-#: builtin/fetch.c:897 builtin/fetch.c:934 builtin/fetch.c:956
-#: builtin/fetch.c:968
+#: builtin/fetch.c:923 builtin/fetch.c:960 builtin/fetch.c:982
+#: builtin/fetch.c:994
msgid "unable to update local ref"
msgstr "ä¸èƒ½æ›´æ–°æœ¬æ©Ÿå¼•ç”¨"
-#: builtin/fetch.c:901
+#: builtin/fetch.c:927
msgid "would clobber existing tag"
msgstr "會破壞ç¾æœ‰çš„標籤"
-#: builtin/fetch.c:923
+#: builtin/fetch.c:949
msgid "[new tag]"
msgstr "[新標籤]"
-#: builtin/fetch.c:926
+#: builtin/fetch.c:952
msgid "[new branch]"
msgstr "[新分支]"
-#: builtin/fetch.c:929
+#: builtin/fetch.c:955
msgid "[new ref]"
msgstr "[新引用]"
-#: builtin/fetch.c:968
+#: builtin/fetch.c:994
msgid "forced update"
msgstr "強制更新"
-#: builtin/fetch.c:973
+#: builtin/fetch.c:999
msgid "non-fast-forward"
msgstr "éžå¿«è½‰"
-#: builtin/fetch.c:1076
+#: builtin/fetch.c:1102
msgid ""
"fetch normally indicates which branches had a forced update,\n"
"but that check has been disabled; to re-enable, use '--show-forced-updates'\n"
@@ -14968,7 +15321,7 @@ msgstr ""
"è¦é‡æ–°å•Ÿç”¨ï¼Œè«‹ä½¿ç”¨ã€Œ--show-forced-updatesã€é¸é …,或執行\n"
"「git config fetch.showForcedUpdates trueã€"
-#: builtin/fetch.c:1080
+#: builtin/fetch.c:1106
#, c-format
msgid ""
"it took %.2f seconds to check forced updates; you can use\n"
@@ -14979,22 +15332,22 @@ msgstr ""
"花了 %.2f 秒檢查強制更新。您å¯ä»¥ä½¿ç”¨ã€Œ--no-show-forced-updatesã€\n"
"或執行「git config fetch.showForcedUpdates falseã€é¿å…此項檢查\n"
-#: builtin/fetch.c:1112
+#: builtin/fetch.c:1136
#, c-format
msgid "%s did not send all necessary objects\n"
msgstr "%s 未傳é€æ‰€æœ‰å¿…需的物件\n"
-#: builtin/fetch.c:1141
+#: builtin/fetch.c:1156
#, c-format
msgid "rejected %s because shallow roots are not allowed to be updated"
msgstr "已拒絕 %s,ä¸å…許更新淺複製"
-#: builtin/fetch.c:1231 builtin/fetch.c:1379
+#: builtin/fetch.c:1259 builtin/fetch.c:1418
#, c-format
msgid "From %.*s\n"
msgstr "來自 %.*s\n"
-#: builtin/fetch.c:1252
+#: builtin/fetch.c:1269
#, c-format
msgid ""
"some local refs could not be updated; try running\n"
@@ -15004,50 +15357,50 @@ msgstr ""
" 'git remote prune %s' 來刪除舊的ã€æœ‰è¡çªçš„分支"
# 譯者:請維æŒå‰å°Žç©ºæ ¼
-#: builtin/fetch.c:1349
+#: builtin/fetch.c:1377
#, c-format
msgid " (%s will become dangling)"
msgstr " (%s å°‡æˆç‚ºæ‡¸ç©ºç‹€æ…‹ï¼‰"
# 譯者:請維æŒå‰å°Žç©ºæ ¼
-#: builtin/fetch.c:1350
+#: builtin/fetch.c:1378
#, c-format
msgid " (%s has become dangling)"
msgstr " (%s å·²æˆç‚ºæ‡¸ç©ºç‹€æ…‹ï¼‰"
-#: builtin/fetch.c:1382
+#: builtin/fetch.c:1421
msgid "[deleted]"
msgstr "[已刪除]"
-#: builtin/fetch.c:1383 builtin/remote.c:1128
+#: builtin/fetch.c:1422 builtin/remote.c:1153
msgid "(none)"
msgstr "(無)"
-#: builtin/fetch.c:1405
+#: builtin/fetch.c:1446
#, c-format
msgid "refusing to fetch into branch '%s' checked out at '%s'"
msgstr "拒絕å–得在「%2$sã€ç°½å‡ºçš„「%1$sã€åˆ†æ”¯"
-#: builtin/fetch.c:1425
+#: builtin/fetch.c:1466
#, c-format
msgid "option \"%s\" value \"%s\" is not valid for %s"
msgstr "é¸é …「%sã€çš„值「%sã€å° %s 無效"
-#: builtin/fetch.c:1428
+#: builtin/fetch.c:1469
#, c-format
msgid "option \"%s\" is ignored for %s\n"
msgstr "é¸é …「%sã€è¢« %s 忽略\n"
-#: builtin/fetch.c:1455
+#: builtin/fetch.c:1496
#, c-format
msgid "the object %s does not exist"
msgstr "%s 物件ä¸å­˜åœ¨"
-#: builtin/fetch.c:1643
+#: builtin/fetch.c:1748
msgid "multiple branches detected, incompatible with --set-upstream"
msgstr "檢測到多分支,和 --set-upstream ä¸ç›¸å®¹"
-#: builtin/fetch.c:1655
+#: builtin/fetch.c:1760
#, c-format
msgid ""
"could not set upstream of HEAD to '%s' from '%s' when it does not point to "
@@ -15055,19 +15408,19 @@ msgid ""
msgstr ""
"無法將 HEAD 的上游從「%2$sã€è¨­å®šç‚ºã€Œ%1$sã€ï¼Œå› ç‚º HEAD 沒有指å‘任何分支。"
-#: builtin/fetch.c:1668
+#: builtin/fetch.c:1773
msgid "not setting upstream for a remote remote-tracking branch"
msgstr "沒有為一個é ç«¯è¿½è¹¤åˆ†æ”¯è¨­å®šä¸Šæ¸¸"
-#: builtin/fetch.c:1670
+#: builtin/fetch.c:1775
msgid "not setting upstream for a remote tag"
msgstr "沒有為一個é ç«¯æ¨™ç±¤è¨­å®šä¸Šæ¸¸"
-#: builtin/fetch.c:1672
+#: builtin/fetch.c:1777
msgid "unknown branch type"
msgstr "未知的分支類型"
-#: builtin/fetch.c:1674
+#: builtin/fetch.c:1779
msgid ""
"no source branch found;\n"
"you need to specify exactly one branch with the --set-upstream option"
@@ -15075,22 +15428,22 @@ msgstr ""
"找ä¸åˆ°ä¾†æºåˆ†æ”¯ã€‚\n"
"您得使用 --set-upstream é¸é …明確指定一個分支"
-#: builtin/fetch.c:1804 builtin/fetch.c:1867
+#: builtin/fetch.c:1904 builtin/fetch.c:1967
#, c-format
msgid "Fetching %s\n"
msgstr "正在å–å¾— %s\n"
-#: builtin/fetch.c:1814 builtin/fetch.c:1869
+#: builtin/fetch.c:1914 builtin/fetch.c:1969
#, c-format
msgid "could not fetch %s"
msgstr "ä¸èƒ½å–å¾— %s"
-#: builtin/fetch.c:1826
+#: builtin/fetch.c:1926
#, c-format
msgid "could not fetch '%s' (exit code: %d)\n"
msgstr "無法å–å¾— '%s'(離開碼:%d)\n"
-#: builtin/fetch.c:1930
+#: builtin/fetch.c:2030
msgid ""
"no remote repository specified; please specify either a URL or a\n"
"remote name from which new revisions should be fetched"
@@ -15098,58 +15451,58 @@ msgstr ""
"未指定é ç«¯ç‰ˆæœ¬åº«ã€‚請指定用以å–得新修訂版本之\n"
"ä¾†æº URL 或者é ç«¯ç‰ˆæœ¬åº«å稱"
-#: builtin/fetch.c:1966
+#: builtin/fetch.c:2066
msgid "you need to specify a tag name"
msgstr "您需è¦æŒ‡å®šæ¨™ç±¤å稱"
-#: builtin/fetch.c:2032
-msgid "--negotiate-only needs one or more --negotiate-tip=*"
-msgstr "--negotiate-only 需è¦ä¸€æˆ–多個 --negotiate-tip=*"
+#: builtin/fetch.c:2156
+msgid "--negotiate-only needs one or more --negotiation-tip=*"
+msgstr "--negotiate-only 需è¦ä¸€æˆ–多個 --negotiation-tip=*"
-#: builtin/fetch.c:2036
+#: builtin/fetch.c:2160
msgid "negative depth in --deepen is not supported"
msgstr "--deepen ä¸æ”¯æ´è² æ•¸æ·±åº¦"
-#: builtin/fetch.c:2045
+#: builtin/fetch.c:2169
msgid "--unshallow on a complete repository does not make sense"
msgstr "å°æ–¼ä¸€å€‹å®Œæ•´çš„版本庫,åƒæ•¸ --unshallow 沒有æ„義"
-#: builtin/fetch.c:2062
+#: builtin/fetch.c:2186
msgid "fetch --all does not take a repository argument"
msgstr "fetch --all ä¸èƒ½å¸¶ä¸€å€‹ç‰ˆæœ¬åº«åƒæ•¸"
-#: builtin/fetch.c:2064
+#: builtin/fetch.c:2188
msgid "fetch --all does not make sense with refspecs"
msgstr "fetch --all 帶引用è¦æ ¼æ²’有任何æ„義"
-#: builtin/fetch.c:2073
+#: builtin/fetch.c:2197
#, c-format
msgid "no such remote or remote group: %s"
msgstr "ç„¡æ­¤é ç«¯æˆ–é ç«¯ç¾¤çµ„:%s"
-#: builtin/fetch.c:2081
+#: builtin/fetch.c:2205
msgid "fetching a group and specifying refspecs does not make sense"
msgstr "å–得群組並指定引用è¦æ ¼ç„¡æ„義"
-#: builtin/fetch.c:2097
+#: builtin/fetch.c:2221
msgid "must supply remote when using --negotiate-only"
msgstr "使用 --negotiate-only 時必須æä¾›é ç«¯"
-#: builtin/fetch.c:2102
+#: builtin/fetch.c:2226
msgid "protocol does not support --negotiate-only, exiting"
msgstr "通訊å”定ä¸æ”¯æ´ --negotiate-only。çµæŸ"
-#: builtin/fetch.c:2121
+#: builtin/fetch.c:2246
msgid ""
"--filter can only be used with the remote configured in extensions."
"partialclone"
msgstr "åªå¯ä»¥å°‡ --filter 用於在 extensions.partialclone 中設定的é ç«¯ç‰ˆæœ¬åº«"
-#: builtin/fetch.c:2125
+#: builtin/fetch.c:2250
msgid "--atomic can only be used when fetching from one remote"
msgstr "--atomic åªèƒ½åœ¨æ“·å– (fetch) 一個é ç«¯æ™‚使用"
-#: builtin/fetch.c:2129
+#: builtin/fetch.c:2254
msgid "--stdin can only be used when fetching from one remote"
msgstr "--stdin åªèƒ½åœ¨å–得一個é ç«¯æ™‚使用"
@@ -15218,7 +15571,7 @@ msgstr "引用å ä½ç¬¦é©ç”¨æ–¼ Tcl"
msgid "show only <n> matched refs"
msgstr "åªé¡¯ç¤º <n> 個符åˆçš„引用"
-#: builtin/for-each-ref.c:42 builtin/tag.c:481
+#: builtin/for-each-ref.c:42 builtin/tag.c:482
msgid "respect format colors"
msgstr "éµç…§æ ¼å¼ä¸­çš„é¡è‰²è¼¸å‡º"
@@ -15412,7 +15765,7 @@ msgstr "正在檢查物件目錄"
msgid "Checking %s link"
msgstr "正在檢查 %s 連çµ"
-#: builtin/fsck.c:710 builtin/index-pack.c:859
+#: builtin/fsck.c:710 builtin/index-pack.c:862
#, c-format
msgid "invalid %s"
msgstr "無效的 %s"
@@ -15471,7 +15824,7 @@ msgstr "將索引亦作為檢查的頭節點"
#: builtin/fsck.c:795
msgid "make reflogs head nodes (default)"
-msgstr "將引用日誌作為檢查的頭節點(é è¨­ï¼‰"
+msgstr "將引用日誌作為檢查的 HEAD 節點(é è¨­ï¼‰"
#: builtin/fsck.c:796
msgid "also consider packs and alternate objects"
@@ -15481,7 +15834,7 @@ msgstr "也考慮包和備用物件"
msgid "check only connectivity"
msgstr "僅檢查連通性"
-#: builtin/fsck.c:798 builtin/mktag.c:76
+#: builtin/fsck.c:798 builtin/mktag.c:75
msgid "enable more strict checking"
msgstr "啟用更嚴格的檢查"
@@ -15511,6 +15864,118 @@ msgstr "%s:物件缺少"
msgid "invalid parameter: expected sha1, got '%s'"
msgstr "無效的åƒæ•¸ï¼šæœŸæœ› sha1,得到 '%s'"
+#: builtin/fsmonitor--daemon.c:13
+msgid "git fsmonitor--daemon start [<options>]"
+msgstr "git fsmonitor--daemon start [<options>]"
+
+#: builtin/fsmonitor--daemon.c:14
+msgid "git fsmonitor--daemon run [<options>]"
+msgstr "git fsmonitor--daemon run [<options>]"
+
+#: builtin/fsmonitor--daemon.c:15
+msgid "git fsmonitor--daemon stop"
+msgstr "git fsmonitor--daemon stop"
+
+#: builtin/fsmonitor--daemon.c:16
+msgid "git fsmonitor--daemon status"
+msgstr "git fsmonitor--daemon status"
+
+#: builtin/fsmonitor--daemon.c:38 builtin/fsmonitor--daemon.c:47
+#, c-format
+msgid "value of '%s' out of range: %d"
+msgstr "「%sã€çš„數值超出範åœï¼š%d"
+
+#: builtin/fsmonitor--daemon.c:57
+#, c-format
+msgid "value of '%s' not bool or int: %d"
+msgstr "「%sã€çš„數值ä¸æ˜¯å¸ƒæž—值或整數:%d"
+
+#: builtin/fsmonitor--daemon.c:99
+#, c-format
+msgid "fsmonitor-daemon is watching '%s'\n"
+msgstr "fsmonitor-daemon 正在監控「%sã€\n"
+
+#: builtin/fsmonitor--daemon.c:104
+#, c-format
+msgid "fsmonitor-daemon is not watching '%s'\n"
+msgstr "fsmonitor-daemon 未在監控「%sã€\n"
+
+#: builtin/fsmonitor--daemon.c:170
+#, c-format
+msgid "could not create fsmonitor cookie '%s'"
+msgstr "無法建立 fsmonitor cookie「%sã€"
+
+#: builtin/fsmonitor--daemon.c:753
+#, c-format
+msgid "fsmonitor: cookie_result '%d' != SEEN"
+msgstr "fsmonitor:cookie_result '%d' != SEEN"
+
+#: builtin/fsmonitor--daemon.c:1187
+#, c-format
+msgid "could not start IPC thread pool on '%s'"
+msgstr "無法在「%sã€å•Ÿå‹• IPC 執行緒集å€"
+
+#: builtin/fsmonitor--daemon.c:1199
+msgid "could not start fsmonitor listener thread"
+msgstr "無法啟動 fsmonitor 監è½åŸ·è¡Œç·’"
+
+#: builtin/fsmonitor--daemon.c:1297
+msgid "could not initialize listener thread"
+msgstr "無法åˆå§‹åŒ–監è½åŸ·è¡Œç·’"
+
+#: builtin/fsmonitor--daemon.c:1328 builtin/fsmonitor--daemon.c:1383
+#, c-format
+msgid "fsmonitor--daemon is already running '%s'"
+msgstr "fsmonitor--daemon 已在執行「%sã€"
+
+#: builtin/fsmonitor--daemon.c:1332
+#, c-format
+msgid "running fsmonitor-daemon in '%s'\n"
+msgstr "正在「%sã€åŸ·è¡Œ fsmonitor-daemon\n"
+
+#: builtin/fsmonitor--daemon.c:1387
+#, c-format
+msgid "starting fsmonitor-daemon in '%s'\n"
+msgstr "正在「%sã€å•Ÿå‹• fsmonitor-daemon\n"
+
+#: builtin/fsmonitor--daemon.c:1413
+msgid "daemon failed to start"
+msgstr "無法啟動守護程å¼"
+
+#: builtin/fsmonitor--daemon.c:1416
+msgid "daemon not online yet"
+msgstr "守護程å¼å°šæœªä¸Šç·š"
+
+#: builtin/fsmonitor--daemon.c:1419
+msgid "daemon terminated"
+msgstr "守護程å¼å·²çµ‚æ­¢"
+
+#: builtin/fsmonitor--daemon.c:1429
+msgid "detach from console"
+msgstr "從主控å°åˆ†é›¢"
+
+#: builtin/fsmonitor--daemon.c:1432
+msgid "use <n> ipc worker threads"
+msgstr "使用 <n> 個 IPC 工作執行緒"
+
+#: builtin/fsmonitor--daemon.c:1435
+msgid "max seconds to wait for background daemon startup"
+msgstr "è¦ç­‰å¾…背景守護程å¼å•Ÿå‹•çš„最長秒數"
+
+#: builtin/fsmonitor--daemon.c:1449
+#, c-format
+msgid "invalid 'ipc-threads' value (%d)"
+msgstr "無效的「ipc-threadsã€æ•¸å€¼ï¼ˆ%d)"
+
+#: builtin/fsmonitor--daemon.c:1464
+#, c-format
+msgid "Unhandled subcommand '%s'"
+msgstr "未處ç†çš„å­å‘½ä»¤ã€Œ%sã€"
+
+#: builtin/fsmonitor--daemon.c:1477
+msgid "fsmonitor--daemon not supported on this platform"
+msgstr "fsmonitor--daemon ä¸æ”¯æ´æœ¬å¹³å°"
+
#: builtin/gc.c:39
msgid "git gc [<options>]"
msgstr "git gc [<é¸é …>]"
@@ -15598,7 +16063,7 @@ msgstr "gc 已在「%sã€æ©Ÿå™¨ pid %<PRIuMAX> 執行(如果ä¸æ˜¯ï¼Œä½¿ç”¨ --
#: builtin/gc.c:707
msgid ""
"There are too many unreachable loose objects; run 'git prune' to remove them."
-msgstr "有太多無法å–得的鬆散物件,執行 'git prune' 刪除它們。"
+msgstr "有太多無法å–得的鬆散物件,執行「git pruneã€åˆªé™¤å®ƒå€‘。"
#: builtin/gc.c:717
msgid ""
@@ -15751,8 +16216,8 @@ msgstr "無法啟動 systemctl"
msgid "failed to run systemctl"
msgstr "無法執行 systemctl"
-#: builtin/gc.c:2210 builtin/gc.c:2215 builtin/worktree.c:62
-#: builtin/worktree.c:944
+#: builtin/gc.c:2210 builtin/gc.c:2215 builtin/worktree.c:63
+#: builtin/worktree.c:1024
#, c-format
msgid "failed to delete '%s'"
msgstr "刪除 '%s' 失敗"
@@ -15800,16 +16265,16 @@ msgstr "git maintenance <å­å‘½ä»¤> [<é¸é …>]"
msgid "invalid subcommand: %s"
msgstr "無效å­å‘½ä»¤ï¼š%s"
-#: builtin/grep.c:30
+#: builtin/grep.c:32
msgid "git grep [<options>] [-e] <pattern> [<rev>...] [[--] <path>...]"
msgstr "git grep [<é¸é …>] [-e] <模å¼> [<版本>...] [[--] <路徑>...]"
-#: builtin/grep.c:239
+#: builtin/grep.c:241
#, c-format
msgid "grep: failed to create thread: %s"
msgstr "grep:無法建立執行緒:%s"
-#: builtin/grep.c:293
+#: builtin/grep.c:295
#, c-format
msgid "invalid number of threads specified (%d) for %s"
msgstr "為 %2$s 設定的執行緒數 (%1$d) 無效"
@@ -15818,259 +16283,251 @@ msgstr "為 %2$s 設定的執行緒數 (%1$d) 無效"
#. variable for tweaking threads, currently
#. grep.threads
#.
-#: builtin/grep.c:301 builtin/index-pack.c:1582 builtin/index-pack.c:1785
-#: builtin/pack-objects.c:3142
+#: builtin/grep.c:303 builtin/index-pack.c:1587 builtin/index-pack.c:1791
+#: builtin/pack-objects.c:3150
#, c-format
msgid "no threads support, ignoring %s"
msgstr "沒有執行緒支æ´ï¼Œå¿½ç•¥ %s"
-#: builtin/grep.c:488 builtin/grep.c:617 builtin/grep.c:657
+#: builtin/grep.c:490 builtin/grep.c:619 builtin/grep.c:659
#, c-format
msgid "unable to read tree (%s)"
msgstr "無法讀å–樹(%s)"
-#: builtin/grep.c:672
+#: builtin/grep.c:674
#, c-format
msgid "unable to grep from object of type %s"
msgstr "無法抓å–來自於 %s 類型的物件"
-#: builtin/grep.c:752
+#: builtin/grep.c:754
#, c-format
msgid "switch `%c' expects a numerical value"
msgstr "開關 `%c' 期望一個數字值"
-#: builtin/grep.c:851
+#: builtin/grep.c:852
msgid "search in index instead of in the work tree"
msgstr "在索引å€æœå°‹è€Œä¸æ˜¯åœ¨å·¥ä½œå€"
-#: builtin/grep.c:853
+#: builtin/grep.c:854
msgid "find in contents not managed by git"
msgstr "在未被 git 管ç†çš„內容中尋找"
# 譯者:中文字串拼接,å¯åˆªé™¤å‰å°Žç©ºæ ¼
-#: builtin/grep.c:855
+#: builtin/grep.c:856
msgid "search in both tracked and untracked files"
msgstr "在追蹤和未追蹤的檔案中æœå°‹"
-#: builtin/grep.c:857
+#: builtin/grep.c:858
msgid "ignore files specified via '.gitignore'"
msgstr "忽略 '.gitignore' 包å«çš„檔案"
-#: builtin/grep.c:859
+#: builtin/grep.c:860
msgid "recursively search in each submodule"
msgstr "在æ¯ä¸€å€‹å­æ¨¡çµ„中éžè¿´æœå°‹"
-#: builtin/grep.c:862
+#: builtin/grep.c:863
msgid "show non-matching lines"
msgstr "顯示未符åˆçš„è¡Œ"
-#: builtin/grep.c:864
+#: builtin/grep.c:865
msgid "case insensitive matching"
msgstr "ä¸å€åˆ†å¤§å°å¯«ç¬¦åˆ"
-#: builtin/grep.c:866
+#: builtin/grep.c:867
msgid "match patterns only at word boundaries"
msgstr "åªåœ¨å–®è©žé‚Šç•Œç¬¦åˆæ¨¡å¼"
-#: builtin/grep.c:868
+#: builtin/grep.c:869
msgid "process binary files as text"
msgstr "把二進ä½æª”案當åšæ–‡å­—處ç†"
-#: builtin/grep.c:870
+#: builtin/grep.c:871
msgid "don't match patterns in binary files"
msgstr "ä¸åœ¨äºŒé€²ä½æª”案中符åˆæ¨¡å¼"
-#: builtin/grep.c:873
+#: builtin/grep.c:874
msgid "process binary files with textconv filters"
msgstr "用 textconv éŽæ¿¾å™¨è™•ç†äºŒé€²ä½æª”案"
-#: builtin/grep.c:875
+#: builtin/grep.c:876
msgid "search in subdirectories (default)"
msgstr "在å­ç›®éŒ„中尋找(é è¨­ï¼‰"
-#: builtin/grep.c:877
+#: builtin/grep.c:878
msgid "descend at most <depth> levels"
msgstr "最多以指定的深度å‘下尋找"
-#: builtin/grep.c:881
+#: builtin/grep.c:882
msgid "use extended POSIX regular expressions"
msgstr "使用延伸的 POSIX 常è¦è¡¨ç¤ºå¼"
-#: builtin/grep.c:884
+#: builtin/grep.c:885
msgid "use basic POSIX regular expressions (default)"
msgstr "使用基本的 POSIX 常è¦è¡¨ç¤ºå¼ï¼ˆé è¨­ï¼‰"
-#: builtin/grep.c:887
+#: builtin/grep.c:888
msgid "interpret patterns as fixed strings"
msgstr "把模å¼è§£æžç‚ºå›ºå®šçš„字串"
-#: builtin/grep.c:890
+#: builtin/grep.c:891
msgid "use Perl-compatible regular expressions"
msgstr "使用 Perl 相容的常è¦è¡¨ç¤ºå¼"
-#: builtin/grep.c:893
+#: builtin/grep.c:894
msgid "show line numbers"
msgstr "顯示行號"
-#: builtin/grep.c:894
+#: builtin/grep.c:895
msgid "show column number of first match"
msgstr "顯示第一個符åˆçš„列號"
-#: builtin/grep.c:895
+#: builtin/grep.c:896
msgid "don't show filenames"
msgstr "ä¸é¡¯ç¤ºæª”案å"
-#: builtin/grep.c:896
+#: builtin/grep.c:897
msgid "show filenames"
msgstr "顯示檔案å"
-#: builtin/grep.c:898
+#: builtin/grep.c:899
msgid "show filenames relative to top directory"
msgstr "顯示相å°æ–¼é ‚級目錄的檔案å"
-#: builtin/grep.c:900
+#: builtin/grep.c:901
msgid "show only filenames instead of matching lines"
msgstr "åªé¡¯ç¤ºæª”案å而ä¸é¡¯ç¤ºç¬¦åˆçš„è¡Œ"
-#: builtin/grep.c:902
+#: builtin/grep.c:903
msgid "synonym for --files-with-matches"
msgstr "å’Œ --files-with-matches åŒç¾©"
-#: builtin/grep.c:905
+#: builtin/grep.c:906
msgid "show only the names of files without match"
msgstr "åªé¡¯ç¤ºæœªç¬¦åˆçš„檔案å"
-#: builtin/grep.c:907
+#: builtin/grep.c:908
msgid "print NUL after filenames"
msgstr "在檔案å後輸出 NUL å­—å…ƒ"
-#: builtin/grep.c:910
+#: builtin/grep.c:911
msgid "show only matching parts of a line"
msgstr "åªé¡¯ç¤ºè¡Œä¸­çš„符åˆçš„部分"
-#: builtin/grep.c:912
+#: builtin/grep.c:913
msgid "show the number of matches instead of matching lines"
msgstr "顯示總符åˆè¡Œæ•¸ï¼Œè€Œä¸é¡¯ç¤ºç¬¦åˆçš„è¡Œ"
-#: builtin/grep.c:913
+#: builtin/grep.c:914
msgid "highlight matches"
msgstr "高亮顯示符åˆé …"
-#: builtin/grep.c:915
+#: builtin/grep.c:916
msgid "print empty line between matches from different files"
msgstr "在ä¸åŒæª”案的符åˆé …之間列å°ç©ºè¡Œ"
-#: builtin/grep.c:917
+#: builtin/grep.c:918
msgid "show filename only once above matches from same file"
msgstr "åªåœ¨åŒä¸€æª”案的符åˆé …的上é¢é¡¯ç¤ºä¸€æ¬¡æª”案å"
-#: builtin/grep.c:920
+#: builtin/grep.c:921
msgid "show <n> context lines before and after matches"
msgstr "顯示符åˆé …å‰å¾Œçš„ <n> 行上下文"
-#: builtin/grep.c:923
+#: builtin/grep.c:924
msgid "show <n> context lines before matches"
msgstr "顯示符åˆé …å‰ <n> 行上下文"
-#: builtin/grep.c:925
+#: builtin/grep.c:926
msgid "show <n> context lines after matches"
msgstr "顯示符åˆé …後 <n> 行上下文"
-#: builtin/grep.c:927
+#: builtin/grep.c:928
msgid "use <n> worker threads"
msgstr "使用 <n> 個工作執行緒"
-#: builtin/grep.c:928
+#: builtin/grep.c:929
msgid "shortcut for -C NUM"
msgstr "å¿«æ·éµ -C 數字"
-#: builtin/grep.c:931
+#: builtin/grep.c:932
msgid "show a line with the function name before matches"
msgstr "在符åˆçš„å‰é¢é¡¯ç¤ºä¸€è¡Œå‡½æ•¸å"
-#: builtin/grep.c:933
+#: builtin/grep.c:934
msgid "show the surrounding function"
msgstr "顯示所在函數的å‰å¾Œå…§å®¹"
-#: builtin/grep.c:936
+#: builtin/grep.c:937
msgid "read patterns from file"
msgstr "從檔案讀å–模å¼"
-#: builtin/grep.c:938
+#: builtin/grep.c:939
msgid "match <pattern>"
msgstr "ç¬¦åˆ <模å¼>"
-#: builtin/grep.c:940
+#: builtin/grep.c:941
msgid "combine patterns specified with -e"
msgstr "組åˆç”¨ -e åƒæ•¸è¨­å®šçš„模å¼"
-#: builtin/grep.c:952
+#: builtin/grep.c:953
msgid "indicate hit with exit status without output"
msgstr "ä¸è¼¸å‡ºï¼Œè€Œç”¨é›¢é–‹ç¢¼æ¨™è¨˜å‘½ä¸­ç‹€æ…‹"
-#: builtin/grep.c:954
+#: builtin/grep.c:955
msgid "show only matches from files that match all patterns"
msgstr "åªé¡¯ç¤ºç¬¦åˆæ‰€æœ‰æ¨¡å¼çš„檔案中的符åˆ"
-#: builtin/grep.c:957
+#: builtin/grep.c:958
msgid "pager"
msgstr "分é "
-#: builtin/grep.c:957
+#: builtin/grep.c:958
msgid "show matching files in the pager"
msgstr "分é é¡¯ç¤ºç¬¦åˆçš„檔案"
-#: builtin/grep.c:961
+#: builtin/grep.c:962
msgid "allow calling of grep(1) (ignored by this build)"
msgstr "å…è¨±å‘¼å« grep(1)(本次組建忽略)"
-#: builtin/grep.c:1027
+#: builtin/grep.c:1028
msgid "no pattern given"
msgstr "未æ供符åˆæ¨¡å¼"
-#: builtin/grep.c:1063
+#: builtin/grep.c:1064
msgid "--no-index or --untracked cannot be used with revs"
msgstr "--no-index 或 --untracked ä¸èƒ½å’Œç‰ˆæœ¬åŒæ™‚使用"
-#: builtin/grep.c:1071
+#: builtin/grep.c:1072
#, c-format
msgid "unable to resolve revision: %s"
msgstr "ä¸èƒ½è§£æžç‰ˆæœ¬ï¼š%s"
-#: builtin/grep.c:1101
+#: builtin/grep.c:1102
msgid "--untracked not supported with --recurse-submodules"
msgstr "--untracked ä¸æ”¯æ´èˆ‡ --recurse-submodules 一起使用"
-#: builtin/grep.c:1105
+#: builtin/grep.c:1106
msgid "invalid option combination, ignoring --threads"
msgstr "無效的é¸é …組åˆï¼Œå¿½ç•¥ --threads"
-#: builtin/grep.c:1108 builtin/pack-objects.c:4059
+#: builtin/grep.c:1109 builtin/pack-objects.c:4084
msgid "no threads support, ignoring --threads"
msgstr "沒有執行緒支æ´ï¼Œå¿½ç•¥ --threads"
-#: builtin/grep.c:1111 builtin/index-pack.c:1579 builtin/pack-objects.c:3139
+#: builtin/grep.c:1112 builtin/index-pack.c:1584 builtin/pack-objects.c:3147
#, c-format
msgid "invalid number of threads specified (%d)"
msgstr "指定的執行緒數無效(%d)"
-#: builtin/grep.c:1145
+#: builtin/grep.c:1146
msgid "--open-files-in-pager only works on the worktree"
msgstr "--open-files-in-pager 僅用於工作å€"
-#: builtin/grep.c:1171
-msgid "--cached or --untracked cannot be used with --no-index"
-msgstr "--cached 或 --untracked ä¸èƒ½èˆ‡ --no-index åŒæ™‚使用"
-
-#: builtin/grep.c:1174
-msgid "--untracked cannot be used with --cached"
-msgstr "--untracked ä¸èƒ½èˆ‡ --cached 一起使用"
-
-#: builtin/grep.c:1180
+#: builtin/grep.c:1179
msgid "--[no-]exclude-standard cannot be used for tracked contents"
msgstr "--[no-]exclude-standard ä¸èƒ½ç”¨æ–¼å·²è¿½è¹¤å…§å®¹"
-#: builtin/grep.c:1188
+#: builtin/grep.c:1187
msgid "both --cached and trees are given"
msgstr "åŒæ™‚給出了 --cached 和樹狀物件"
@@ -16082,107 +16539,99 @@ msgstr ""
"git hash-object [-t <類型>] [-w] [--path=<檔案> | --no-filters] [--stdin] "
"[--] <檔案>..."
-#: builtin/hash-object.c:84
-msgid "git hash-object --stdin-paths"
-msgstr "git hash-object --stdin-paths"
-
-#: builtin/hash-object.c:96
+#: builtin/hash-object.c:97
msgid "object type"
msgstr "物件類型"
-#: builtin/hash-object.c:97
+#: builtin/hash-object.c:98
msgid "write the object into the object database"
msgstr "將物件寫入物件資料庫"
-#: builtin/hash-object.c:99
+#: builtin/hash-object.c:100
msgid "read the object from stdin"
msgstr "從標準輸入讀å–物件"
-#: builtin/hash-object.c:101
+#: builtin/hash-object.c:102
msgid "store file as is without filters"
msgstr "原樣儲存檔案ä¸ä½¿ç”¨éŽæ¿¾å™¨"
-#: builtin/hash-object.c:102
+#: builtin/hash-object.c:103
msgid ""
"just hash any random garbage to create corrupt objects for debugging Git"
msgstr "å…許å°ä»»æ„隨機垃圾資料åšæ•£åˆ—來建立æ壞的物件以便除錯 Git"
-#: builtin/hash-object.c:103
+#: builtin/hash-object.c:104
msgid "process file as it were from this path"
msgstr "處ç†æª”案並å‡è¨­å…¶ä¾†è‡ªæ–¼æ­¤è·¯å¾‘"
-#: builtin/help.c:55
+#: builtin/help.c:57
msgid "print all available commands"
msgstr "列å°æ‰€æœ‰å¯ç”¨çš„指令"
-#: builtin/help.c:57
+#: builtin/help.c:60
+msgid "show external commands in --all"
+msgstr "在 --all 顯示外部命令"
+
+#: builtin/help.c:61
+msgid "show aliases in --all"
+msgstr "在 --all 顯示別å"
+
+#: builtin/help.c:62
msgid "exclude guides"
msgstr "排除嚮導"
-#: builtin/help.c:58
+#: builtin/help.c:63
msgid "show man page"
msgstr "顯示 man 手冊"
-#: builtin/help.c:59
+#: builtin/help.c:64
msgid "show manual in web browser"
msgstr "在 web ç€è¦½å™¨ä¸­é¡¯ç¤ºæ‰‹å†Š"
-#: builtin/help.c:61
+#: builtin/help.c:66
msgid "show info page"
msgstr "顯示 info 手冊"
-#: builtin/help.c:63
+#: builtin/help.c:68
msgid "print command description"
msgstr "列å°æŒ‡ä»¤æè¿°"
-#: builtin/help.c:65
+#: builtin/help.c:70
msgid "print list of useful guides"
msgstr "顯示有用的指å—列表"
-#: builtin/help.c:67
+#: builtin/help.c:72
msgid "print all configuration variable names"
msgstr "列å°æ‰€æœ‰è¨­å®šè®Šæ•¸å稱"
-#: builtin/help.c:78
-msgid ""
-"git help [-a|--all] [--[no-]verbose]]\n"
-" [[-i|--info] [-m|--man] [-w|--web]] [<command>]"
-msgstr ""
-"git help [-a|--all] [--[no-]verbose]]\n"
-" [[-i|--info] [-m|--man] [-w|--web]] [<命令>]"
-
-#: builtin/help.c:80
-msgid "git help [-g|--guides]"
-msgstr "git help [-g|--guides]"
+#: builtin/help.c:84
+msgid "git help [[-i|--info] [-m|--man] [-w|--web]] [<command>]"
+msgstr "git help [[-i|--info] [-m|--man] [-w|--web]] [<command>]"
-#: builtin/help.c:81
-msgid "git help [-c|--config]"
-msgstr "git help [-c|--config]"
-
-#: builtin/help.c:196
+#: builtin/help.c:201
#, c-format
msgid "unrecognized help format '%s'"
msgstr "無法識別的å”åŠ©æ ¼å¼ '%s'"
-#: builtin/help.c:222
+#: builtin/help.c:227
msgid "Failed to start emacsclient."
msgstr "無法啟動 emacsclient。"
-#: builtin/help.c:235
+#: builtin/help.c:240
msgid "Failed to parse emacsclient version."
msgstr "ç„¡æ³•è§£æž emacsclient 版本。"
-#: builtin/help.c:243
+#: builtin/help.c:248
#, c-format
msgid "emacsclient version '%d' too old (< 22)."
msgstr "emacsclient 版本 '%d' 太è€ï¼ˆ< 22)。"
-#: builtin/help.c:261 builtin/help.c:283 builtin/help.c:293 builtin/help.c:301
+#: builtin/help.c:266 builtin/help.c:288 builtin/help.c:298 builtin/help.c:306
#, c-format
msgid "failed to exec '%s'"
msgstr "執行 '%s' 失敗"
-#: builtin/help.c:339
+#: builtin/help.c:344
#, c-format
msgid ""
"'%s': path for unsupported man viewer.\n"
@@ -16191,7 +16640,7 @@ msgstr ""
"'%s':ä¸æ”¯æ´çš„ man 手冊檢視器的路徑。\n"
"請使用 'man.<工具>.cmd'。"
-#: builtin/help.c:351
+#: builtin/help.c:356
#, c-format
msgid ""
"'%s': cmd for supported man viewer.\n"
@@ -16200,42 +16649,56 @@ msgstr ""
"'%s': 支æ´çš„ man 手冊檢視器指令。\n"
"請使用 'man.<工具>.path'。"
-#: builtin/help.c:466
+#: builtin/help.c:471
#, c-format
msgid "'%s': unknown man viewer."
msgstr "'%s':未知的 man 檢視器。"
-#: builtin/help.c:482
+#: builtin/help.c:487
msgid "no man viewer handled the request"
msgstr "沒有 man 檢視器處ç†æ­¤è«‹æ±‚"
-#: builtin/help.c:489
+#: builtin/help.c:494
msgid "no info viewer handled the request"
msgstr "沒有 info 檢視器處ç†æ­¤è«‹æ±‚"
-#: builtin/help.c:550 builtin/help.c:561 git.c:348
+#: builtin/help.c:555 builtin/help.c:566 git.c:348
#, c-format
msgid "'%s' is aliased to '%s'"
msgstr "'%s' 是 '%s' 的別å"
-#: builtin/help.c:564 git.c:380
+#: builtin/help.c:569 git.c:380
#, c-format
msgid "bad alias.%s string: %s"
msgstr "壞的 alias.%s 字串:%s"
-#: builtin/help.c:580
-msgid "this option doesn't take any other arguments"
-msgstr "本é¸é …ä¸å–其他引數"
+#: builtin/help.c:611
+#, c-format
+msgid "the '%s' option doesn't take any non-option arguments"
+msgstr "「%sã€é¸é …ä¸å–éžé¸é …的引數"
-#: builtin/help.c:601 builtin/help.c:628
+#: builtin/help.c:631
+msgid ""
+"the '--no-[external-commands|aliases]' options can only be used with '--all'"
+msgstr "「--no-[external-commands|aliases]ã€é¸é …åªèƒ½èˆ‡ã€Œ--allã€ä¸€èµ·ä½¿ç”¨"
+
+#: builtin/help.c:643 builtin/help.c:671
#, c-format
msgid "usage: %s%s"
msgstr "用法:%s%s"
-#: builtin/help.c:623
+#: builtin/help.c:666
msgid "'git help config' for more information"
msgstr "'git help config' å–得更多訊æ¯"
+#: builtin/hook.c:10
+msgid "git hook run [--ignore-missing] <hook-name> [-- <hook-args>]"
+msgstr "git hook run [--ignore-missing] <hook-name> [-- <hook-args>]"
+
+#: builtin/hook.c:30
+msgid "silently ignore missing requested <hook-name>"
+msgstr "éœé»˜å¿½ç•¥ä¸å­˜åœ¨è€Œè«‹æ±‚çš„ <hook-name>"
+
#: builtin/index-pack.c:221
#, c-format
msgid "object type mismatch at %s"
@@ -16269,239 +16732,240 @@ msgstr "輸入上的讀錯誤"
msgid "used more bytes than were available"
msgstr "用掉了超éŽå¯ç”¨çš„ä½å…ƒçµ„"
-#: builtin/index-pack.c:324 builtin/pack-objects.c:756
+#: builtin/index-pack.c:324 builtin/pack-objects.c:754
msgid "pack too large for current definition of off_t"
msgstr "包太大超éŽäº†ç›®å‰ off_t 的定義"
-#: builtin/index-pack.c:327 builtin/unpack-objects.c:95
-msgid "pack exceeds maximum allowed size"
-msgstr "包超éŽäº†æœ€å¤§å…許值"
+#: builtin/index-pack.c:329
+#, c-format
+msgid "pack exceeds maximum allowed size (%s)"
+msgstr "包超éŽäº†æœ€å¤§å…è¨±å¤§å° (%s)"
-#: builtin/index-pack.c:358
+#: builtin/index-pack.c:362
msgid "pack signature mismatch"
msgstr "包簽åä¸ç¬¦åˆ"
-#: builtin/index-pack.c:360
+#: builtin/index-pack.c:364
#, c-format
msgid "pack version %<PRIu32> unsupported"
msgstr "ä¸æ”¯æ´åŒ…版本 %<PRIu32>"
-#: builtin/index-pack.c:376
+#: builtin/index-pack.c:380
#, c-format
msgid "pack has bad object at offset %<PRIuMAX>: %s"
msgstr "包中有錯誤的物件ä½æ–¼ä½ç§»é‡ %<PRIuMAX>:%s"
-#: builtin/index-pack.c:482
+#: builtin/index-pack.c:485
#, c-format
msgid "inflate returned %d"
msgstr "解壓縮返回 %d"
-#: builtin/index-pack.c:531
+#: builtin/index-pack.c:534
msgid "offset value overflow for delta base object"
msgstr "ä½ç§»å€¼è¦†è“‹äº† delta 基準物件"
-#: builtin/index-pack.c:539
+#: builtin/index-pack.c:542
msgid "delta base offset is out of bound"
msgstr "delta 基準ä½ç§»è¶Šç•Œ"
-#: builtin/index-pack.c:547
+#: builtin/index-pack.c:550
#, c-format
msgid "unknown object type %d"
msgstr "未知物件類型 %d"
-#: builtin/index-pack.c:578
+#: builtin/index-pack.c:581
msgid "cannot pread pack file"
msgstr "無法讀å–包檔案"
-#: builtin/index-pack.c:580
+#: builtin/index-pack.c:583
#, c-format
msgid "premature end of pack file, %<PRIuMAX> byte missing"
msgid_plural "premature end of pack file, %<PRIuMAX> bytes missing"
msgstr[0] "包檔案éŽæ—©çµæŸï¼Œç¼ºå°‘ %<PRIuMAX> ä½å…ƒçµ„"
-#: builtin/index-pack.c:606
+#: builtin/index-pack.c:609
msgid "serious inflate inconsistency"
msgstr "解壓縮嚴é‡çš„ä¸ä¸€è‡´"
-#: builtin/index-pack.c:751 builtin/index-pack.c:757 builtin/index-pack.c:781
-#: builtin/index-pack.c:820 builtin/index-pack.c:829
+#: builtin/index-pack.c:754 builtin/index-pack.c:760 builtin/index-pack.c:784
+#: builtin/index-pack.c:823 builtin/index-pack.c:832
#, c-format
msgid "SHA1 COLLISION FOUND WITH %s !"
msgstr "ç™¼ç¾ %s å‡ºç¾ SHA1 è¡çªï¼"
-#: builtin/index-pack.c:754 builtin/pack-objects.c:292
-#: builtin/pack-objects.c:352 builtin/pack-objects.c:458
+#: builtin/index-pack.c:757 builtin/pack-objects.c:290
+#: builtin/pack-objects.c:350 builtin/pack-objects.c:456
#, c-format
msgid "unable to read %s"
msgstr "ä¸èƒ½è®€ %s"
-#: builtin/index-pack.c:818
+#: builtin/index-pack.c:821
#, c-format
msgid "cannot read existing object info %s"
msgstr "ä¸èƒ½è®€å–ç¾å­˜ç‰©ä»¶è¨Šæ¯ %s"
-#: builtin/index-pack.c:826
+#: builtin/index-pack.c:829
#, c-format
msgid "cannot read existing object %s"
msgstr "ä¸èƒ½è®€å–ç¾å­˜ç‰©ä»¶ %s"
-#: builtin/index-pack.c:840
+#: builtin/index-pack.c:843
#, c-format
msgid "invalid blob object %s"
msgstr "無效的資料物件 %s"
-#: builtin/index-pack.c:843 builtin/index-pack.c:862
+#: builtin/index-pack.c:846 builtin/index-pack.c:865
msgid "fsck error in packed object"
msgstr "å°æ‰“包物件 fsck 檢查發生錯誤"
-#: builtin/index-pack.c:864
+#: builtin/index-pack.c:867
#, c-format
msgid "Not all child objects of %s are reachable"
msgstr "%s 的所有å­ç‰©ä»¶ä¸¦éžéƒ½å¯ä»¥å–å¾—"
-#: builtin/index-pack.c:925 builtin/index-pack.c:972
+#: builtin/index-pack.c:928 builtin/index-pack.c:975
msgid "failed to apply delta"
msgstr "套用 delta 失敗"
-#: builtin/index-pack.c:1156
+#: builtin/index-pack.c:1161
msgid "Receiving objects"
msgstr "接收物件中"
-#: builtin/index-pack.c:1156
+#: builtin/index-pack.c:1161
msgid "Indexing objects"
msgstr "索引物件中"
-#: builtin/index-pack.c:1190
+#: builtin/index-pack.c:1195
msgid "pack is corrupted (SHA1 mismatch)"
msgstr "包è¡çªï¼ˆSHA1 ä¸ç¬¦åˆï¼‰"
-#: builtin/index-pack.c:1195
+#: builtin/index-pack.c:1200
msgid "cannot fstat packfile"
msgstr "ä¸èƒ½å° packfile å‘¼å« fstat"
-#: builtin/index-pack.c:1198
+#: builtin/index-pack.c:1203
msgid "pack has junk at the end"
msgstr "包的çµå°¾æœ‰åžƒåœ¾è³‡æ–™"
-#: builtin/index-pack.c:1210
+#: builtin/index-pack.c:1215
msgid "confusion beyond insanity in parse_pack_objects()"
msgstr "parse_pack_objects() 中é‡åˆ°ä¸å¯ç†å–»çš„å•é¡Œ"
-#: builtin/index-pack.c:1233
+#: builtin/index-pack.c:1238
msgid "Resolving deltas"
msgstr "è™•ç† delta 中"
-#: builtin/index-pack.c:1244 builtin/pack-objects.c:2905
+#: builtin/index-pack.c:1249 builtin/pack-objects.c:2913
#, c-format
msgid "unable to create thread: %s"
msgstr "ä¸èƒ½å»ºç«‹åŸ·è¡Œç·’:%s"
-#: builtin/index-pack.c:1277
+#: builtin/index-pack.c:1282
msgid "confusion beyond insanity"
msgstr "ä¸å¯ç†å–»"
-#: builtin/index-pack.c:1283
+#: builtin/index-pack.c:1288
#, c-format
msgid "completed with %d local object"
msgid_plural "completed with %d local objects"
msgstr[0] "å®Œæˆ %d 個本機物件"
-#: builtin/index-pack.c:1295
+#: builtin/index-pack.c:1300
#, c-format
msgid "Unexpected tail checksum for %s (disk corruption?)"
msgstr "å° %s 的尾部總和檢查出ç¾æ„外(ç£ç¢Ÿæ壞?)"
-#: builtin/index-pack.c:1299
+#: builtin/index-pack.c:1304
#, c-format
msgid "pack has %d unresolved delta"
msgid_plural "pack has %d unresolved deltas"
msgstr[0] "包有 %d 個未解決的 delta"
-#: builtin/index-pack.c:1323
+#: builtin/index-pack.c:1328
#, c-format
msgid "unable to deflate appended object (%d)"
msgstr "ä¸èƒ½å£“縮附加物件(%d)"
-#: builtin/index-pack.c:1419
+#: builtin/index-pack.c:1423
#, c-format
msgid "local object %s is corrupt"
msgstr "本機物件 %s å·²æ壞"
-#: builtin/index-pack.c:1440
+#: builtin/index-pack.c:1445
#, c-format
msgid "packfile name '%s' does not end with '.%s'"
msgstr "packfile å稱「%sã€çš„çµå°¾ä¸æ˜¯ã€Œ.%sã€"
-#: builtin/index-pack.c:1464
+#: builtin/index-pack.c:1469
#, c-format
msgid "cannot write %s file '%s'"
msgstr "無法寫入 %s 檔案 '%s'"
-#: builtin/index-pack.c:1472
+#: builtin/index-pack.c:1477
#, c-format
msgid "cannot close written %s file '%s'"
msgstr "無法關閉已寫入的 %s 檔案 '%s'"
-#: builtin/index-pack.c:1489
+#: builtin/index-pack.c:1494
#, c-format
msgid "unable to rename temporary '*.%s' file to '%s'"
msgstr "無法將「*.%sã€æš«å­˜æª”的檔å更改為「%sã€"
-#: builtin/index-pack.c:1514
+#: builtin/index-pack.c:1519
msgid "error while closing pack file"
msgstr "關閉包檔案時發生錯誤"
-#: builtin/index-pack.c:1573 builtin/pack-objects.c:3150
+#: builtin/index-pack.c:1578 builtin/pack-objects.c:3158
#, c-format
msgid "bad pack.indexversion=%<PRIu32>"
msgstr "壞的 pack.indexversion=%<PRIu32>"
-#: builtin/index-pack.c:1643
+#: builtin/index-pack.c:1648
#, c-format
msgid "Cannot open existing pack file '%s'"
msgstr "無法開啟ç¾æœ‰åŒ…檔案 '%s'"
-#: builtin/index-pack.c:1645
+#: builtin/index-pack.c:1650
#, c-format
msgid "Cannot open existing pack idx file for '%s'"
msgstr "無法為 %s 開啟包索引檔案"
-#: builtin/index-pack.c:1693
+#: builtin/index-pack.c:1698
#, c-format
msgid "non delta: %d object"
msgid_plural "non delta: %d objects"
msgstr[0] "éž delta:%d 個物件"
-#: builtin/index-pack.c:1700
+#: builtin/index-pack.c:1705
#, c-format
msgid "chain length = %d: %lu object"
msgid_plural "chain length = %d: %lu objects"
msgstr[0] "éˆé•· = %d: %lu 物件"
-#: builtin/index-pack.c:1742
+#: builtin/index-pack.c:1748
msgid "Cannot come back to cwd"
msgstr "無法返回目å‰å·¥ä½œç›®éŒ„"
-#: builtin/index-pack.c:1796 builtin/index-pack.c:1799
-#: builtin/index-pack.c:1819 builtin/index-pack.c:1823
+#: builtin/index-pack.c:1802 builtin/index-pack.c:1805
+#: builtin/index-pack.c:1825 builtin/index-pack.c:1829
#, c-format
msgid "bad %s"
msgstr "錯誤é¸é … %s"
-#: builtin/index-pack.c:1829 builtin/init-db.c:379 builtin/init-db.c:614
+#: builtin/index-pack.c:1835 builtin/init-db.c:379 builtin/init-db.c:614
#, c-format
msgid "unknown hash algorithm '%s'"
msgstr "未知的「%sã€é›œæ¹Šç®—法"
-#: builtin/index-pack.c:1850
+#: builtin/index-pack.c:1856
msgid "--stdin requires a git repository"
msgstr "--stdin 需è¦ä¸€å€‹ git 版本庫"
-#: builtin/index-pack.c:1867
+#: builtin/index-pack.c:1873
msgid "--verify with no packfile name given"
msgstr "--verify 沒有æä¾› packfile å稱åƒæ•¸"
-#: builtin/index-pack.c:1933 builtin/unpack-objects.c:584
+#: builtin/index-pack.c:1939 builtin/unpack-objects.c:584
msgid "fsck error in pack objects"
msgstr "在打包物件中 fsck 檢查發生錯誤"
@@ -16708,128 +17172,132 @@ msgstr "--trailer å’Œ --only-input åŒæ™‚使用沒有æ„義"
msgid "no input file given for in-place editing"
msgstr "沒有給出è¦åŽŸä½ç·¨è¼¯çš„檔案"
-#: builtin/log.c:59
+#: builtin/log.c:60
msgid "git log [<options>] [<revision-range>] [[--] <path>...]"
msgstr "git log [<é¸é …>] [<版本範åœ>] [[--] <路徑>...]"
-#: builtin/log.c:60
+#: builtin/log.c:61
msgid "git show [<options>] <object>..."
msgstr "git show [<é¸é …>] <物件>..."
-#: builtin/log.c:113
+#: builtin/log.c:114
#, c-format
msgid "invalid --decorate option: %s"
msgstr "無效的 --decorate é¸é …:%s"
-#: builtin/log.c:180
+#: builtin/log.c:181
msgid "show source"
msgstr "顯示來æº"
-#: builtin/log.c:181
+#: builtin/log.c:182
msgid "use mail map file"
msgstr "使用信件映射檔案"
-#: builtin/log.c:184
+#: builtin/log.c:185
msgid "only decorate refs that match <pattern>"
msgstr "åªä¿®é£¾èˆ‡ <模å¼> 符åˆçš„引用"
-#: builtin/log.c:186
+#: builtin/log.c:187
msgid "do not decorate refs that match <pattern>"
msgstr "ä¸ä¿®é£¾å’Œ <模å¼> 符åˆçš„引用"
-#: builtin/log.c:187
+#: builtin/log.c:188
msgid "decorate options"
msgstr "修飾é¸é …"
-#: builtin/log.c:190
+#: builtin/log.c:191
msgid ""
"trace the evolution of line range <start>,<end> or function :<funcname> in "
"<file>"
msgstr "追蹤 <開始>,<çµæŸ> 範åœä¸­æ©«åˆ—或 <檔案> 中> :<函數å稱> 的變化å²"
-#: builtin/log.c:213
+#: builtin/log.c:214
msgid "-L<range>:<file> cannot be used with pathspec"
msgstr "-L<範åœ>:<檔案> å’Œ pathspec ä¸èƒ½åŒæ™‚使用"
-#: builtin/log.c:321
+#: builtin/log.c:322
#, c-format
msgid "Final output: %d %s\n"
msgstr "最終輸出:%d %s\n"
-#: builtin/log.c:586
+#: builtin/log.c:429
+msgid "unable to create temporary object directory"
+msgstr "無法建立暫存物件目錄"
+
+#: builtin/log.c:599
#, c-format
msgid "git show %s: bad file"
msgstr "git show %s: æ壞的檔案"
-#: builtin/log.c:601 builtin/log.c:691
+#: builtin/log.c:614 builtin/log.c:706
#, c-format
msgid "could not read object %s"
msgstr "ä¸èƒ½è®€å–物件 %s"
-#: builtin/log.c:716
+#: builtin/log.c:731
#, c-format
msgid "unknown type: %d"
msgstr "未知類型:%d"
-#: builtin/log.c:861
+#: builtin/log.c:880
#, c-format
msgid "%s: invalid cover from description mode"
msgstr "%s:從æ述產生附函的模å¼ç„¡æ•ˆ"
-#: builtin/log.c:868
+#: builtin/log.c:887
msgid "format.headers without value"
msgstr "format.headers 沒有值"
-#: builtin/log.c:997
+#: builtin/log.c:1016
#, c-format
msgid "cannot open patch file %s"
msgstr "無法開啟修補檔案 %s"
-#: builtin/log.c:1014
+#: builtin/log.c:1033
msgid "need exactly one range"
msgstr "åªéœ€è¦ä¸€å€‹ç¯„åœ"
-#: builtin/log.c:1024
+#: builtin/log.c:1043
msgid "not a range"
msgstr "ä¸æ˜¯ä¸€å€‹ç¯„åœ"
-#: builtin/log.c:1188
+#: builtin/log.c:1207
msgid "cover letter needs email format"
msgstr "附函需è¦ä¿¡ä»¶ä½å€æ ¼å¼"
-#: builtin/log.c:1194
+#: builtin/log.c:1213
msgid "failed to create cover-letter file"
msgstr "無法建立附函檔案"
-#: builtin/log.c:1281
+#: builtin/log.c:1300
#, c-format
msgid "insane in-reply-to: %s"
msgstr "ä¸æ­£å¸¸çš„ in-reply-to:%s"
-#: builtin/log.c:1308
+#: builtin/log.c:1327
msgid "git format-patch [<options>] [<since> | <revision-range>]"
msgstr "git format-patch [<é¸é …>] [<從> | <版本範åœ>]"
-#: builtin/log.c:1366
+#: builtin/log.c:1385
msgid "two output directories?"
msgstr "兩個輸出目錄?"
-#: builtin/log.c:1517 builtin/log.c:2344 builtin/log.c:2346 builtin/log.c:2358
+#: builtin/log.c:1536 builtin/log.c:2369 builtin/log.c:2371 builtin/log.c:2383
#, c-format
msgid "unknown commit %s"
msgstr "未知æ交 %s"
-#: builtin/log.c:1528 builtin/replace.c:58 builtin/replace.c:207
+#: builtin/log.c:1547 builtin/replace.c:58 builtin/replace.c:207
#: builtin/replace.c:210
#, c-format
msgid "failed to resolve '%s' as a valid ref"
msgstr "無法將 '%s' 解æžç‚ºä¸€å€‹æœ‰æ•ˆå¼•ç”¨"
-#: builtin/log.c:1537
+#: builtin/log.c:1556
msgid "could not find exact merge base"
msgstr "ä¸èƒ½æ‰¾åˆ°æº–確的åˆä½µåŸºç¤Ž"
-#: builtin/log.c:1547
+#: builtin/log.c:1566
msgid ""
"failed to get upstream, if you want to record base commit automatically,\n"
"please use git branch --set-upstream-to to track a remote branch.\n"
@@ -16839,272 +17307,276 @@ msgstr ""
"git branch --set-upstream-to 來追蹤一個é ç«¯åˆ†æ”¯ã€‚或者你å¯ä»¥é€éŽ\n"
"åƒæ•¸ --base=<基礎æ交> 手動指定一個基礎æ交"
-#: builtin/log.c:1570
+#: builtin/log.c:1589
msgid "failed to find exact merge base"
msgstr "無法找到準確的åˆä½µåŸºç¤Ž"
-#: builtin/log.c:1587
+#: builtin/log.c:1606
msgid "base commit should be the ancestor of revision list"
msgstr "基礎æ交應該是版本列表的祖先"
-#: builtin/log.c:1597
+#: builtin/log.c:1616
msgid "base commit shouldn't be in revision list"
msgstr "基礎æ交ä¸æ‡‰è©²å‡ºç¾åœ¨ç‰ˆæœ¬åˆ—表中"
-#: builtin/log.c:1655
+#: builtin/log.c:1674
msgid "cannot get patch id"
msgstr "無法得到修補檔 id"
-#: builtin/log.c:1718
+#: builtin/log.c:1737
msgid "failed to infer range-diff origin of current series"
msgstr "無法推斷目å‰ç³»åˆ—çš„ range-diff 起點"
-#: builtin/log.c:1720
+#: builtin/log.c:1739
#, c-format
msgid "using '%s' as range-diff origin of current series"
msgstr "å°‡ '%s' 當作目å‰ç³»åˆ—çš„ range-diff 起點"
-#: builtin/log.c:1764
+#: builtin/log.c:1783
msgid "use [PATCH n/m] even with a single patch"
msgstr "使用 [PATCH n/m],å³ä½¿åªæœ‰ä¸€å€‹ä¿®è£œæª”"
-#: builtin/log.c:1767
+#: builtin/log.c:1786
msgid "use [PATCH] even with multiple patches"
msgstr "使用 [PATCH],å³ä½¿æœ‰å¤šå€‹ä¿®è£œæª”"
-#: builtin/log.c:1771
+#: builtin/log.c:1790
msgid "print patches to standard out"
msgstr "列å°ä¿®è£œæª”到標準輸出"
-#: builtin/log.c:1773
+#: builtin/log.c:1792
msgid "generate a cover letter"
msgstr "生æˆä¸€å°é™„函"
-#: builtin/log.c:1775
+#: builtin/log.c:1794
msgid "use simple number sequence for output file names"
msgstr "使用簡單的數字åºåˆ—作為輸出檔案å"
-#: builtin/log.c:1776
+#: builtin/log.c:1795
msgid "sfx"
msgstr "後綴"
-#: builtin/log.c:1777
+#: builtin/log.c:1796
msgid "use <sfx> instead of '.patch'"
msgstr "使用 <後綴> 代替 '.patch'"
-#: builtin/log.c:1779
+#: builtin/log.c:1798
msgid "start numbering patches at <n> instead of 1"
msgstr "修補檔以 <n> 開始編號,而ä¸æ˜¯1"
-#: builtin/log.c:1780
+#: builtin/log.c:1799
msgid "reroll-count"
msgstr "reroll-count"
-#: builtin/log.c:1781
+#: builtin/log.c:1800
msgid "mark the series as Nth re-roll"
msgstr "標記修補檔系列是第幾次é‡è£½"
-#: builtin/log.c:1783
+#: builtin/log.c:1802
msgid "max length of output filename"
msgstr "輸出檔å的最大長度"
-#: builtin/log.c:1785
+#: builtin/log.c:1804
msgid "use [RFC PATCH] instead of [PATCH]"
msgstr "使用 [RFC PATCH] 代替 [PATCH]"
-#: builtin/log.c:1788
+#: builtin/log.c:1807
msgid "cover-from-description-mode"
msgstr "從æ述產生附函的模å¼"
-#: builtin/log.c:1789
+#: builtin/log.c:1808
msgid "generate parts of a cover letter based on a branch's description"
msgstr "基於分支æ述產生部分附函"
-#: builtin/log.c:1791
+#: builtin/log.c:1810
msgid "use [<prefix>] instead of [PATCH]"
msgstr "使用 [<å‰ç¶´>] 代替 [PATCH]"
-#: builtin/log.c:1794
+#: builtin/log.c:1813
msgid "store resulting files in <dir>"
msgstr "把çµæžœæª”案儲存在 <目錄>"
-#: builtin/log.c:1797
+#: builtin/log.c:1816
msgid "don't strip/add [PATCH]"
msgstr "ä¸åˆªé™¤/新增 [PATCH]"
-#: builtin/log.c:1800
+#: builtin/log.c:1819
msgid "don't output binary diffs"
msgstr "ä¸è¼¸å‡ºäºŒé€²ä½å·®ç•°"
-#: builtin/log.c:1802
+#: builtin/log.c:1821
msgid "output all-zero hash in From header"
msgstr "在 From 標頭訊æ¯ä¸­è¼¸å‡ºå…¨ç‚ºé›¶çš„雜湊值"
-#: builtin/log.c:1804
+#: builtin/log.c:1823
msgid "don't include a patch matching a commit upstream"
msgstr "ä¸åŒ…å«å·²åœ¨ä¸Šæ¸¸æ交中的修補檔"
-#: builtin/log.c:1806
+#: builtin/log.c:1825
msgid "show patch format instead of default (patch + stat)"
msgstr "顯示純修補檔格å¼è€Œéžé è¨­çš„(修補檔+狀態)"
-#: builtin/log.c:1808
+#: builtin/log.c:1827
msgid "Messaging"
msgstr "信件傳é€"
-#: builtin/log.c:1809
+#: builtin/log.c:1828
msgid "header"
msgstr "header"
-#: builtin/log.c:1810
+#: builtin/log.c:1829
msgid "add email header"
msgstr "新增信件頭"
-#: builtin/log.c:1811 builtin/log.c:1812
+#: builtin/log.c:1830 builtin/log.c:1831
msgid "email"
msgstr "信件ä½å€"
-#: builtin/log.c:1811
+#: builtin/log.c:1830
msgid "add To: header"
msgstr "新增收件人"
-#: builtin/log.c:1812
+#: builtin/log.c:1831
msgid "add Cc: header"
msgstr "新增抄é€"
-#: builtin/log.c:1813
+#: builtin/log.c:1832
msgid "ident"
msgstr "標記"
-#: builtin/log.c:1814
+#: builtin/log.c:1833
msgid "set From address to <ident> (or committer ident if absent)"
msgstr "å°‡ From ä½å€è¨­å®šç‚º <標記>(如若ä¸æ供,則用æ交者 ID åšç‚ºä½å€ï¼‰"
-#: builtin/log.c:1816
+#: builtin/log.c:1835
msgid "message-id"
msgstr "信件標記"
-#: builtin/log.c:1817
+#: builtin/log.c:1836
msgid "make first mail a reply to <message-id>"
msgstr "使第一å°ä¿¡ä»¶ä½œç‚ºå° <信件標記> 的回覆"
-#: builtin/log.c:1818 builtin/log.c:1821
+#: builtin/log.c:1837 builtin/log.c:1840
msgid "boundary"
msgstr "邊界"
-#: builtin/log.c:1819
+#: builtin/log.c:1838
msgid "attach the patch"
msgstr "附件方å¼æ–°å¢žä¿®è£œæª”"
-#: builtin/log.c:1822
+#: builtin/log.c:1841
msgid "inline the patch"
msgstr "å…§è¯é¡¯ç¤ºä¿®è£œæª”"
-#: builtin/log.c:1826
+#: builtin/log.c:1845
msgid "enable message threading, styles: shallow, deep"
msgstr "啟用信件線索,風格:淺,深"
-#: builtin/log.c:1828
+#: builtin/log.c:1847
msgid "signature"
msgstr "ç°½å"
-#: builtin/log.c:1829
+#: builtin/log.c:1848
msgid "add a signature"
msgstr "新增一個簽å"
-#: builtin/log.c:1830
+#: builtin/log.c:1849
msgid "base-commit"
msgstr "基礎æ交"
-#: builtin/log.c:1831
+#: builtin/log.c:1850
msgid "add prerequisite tree info to the patch series"
msgstr "為修補檔列表新增å‰ç½®æ¨¹è¨Šæ¯"
-#: builtin/log.c:1834
+#: builtin/log.c:1853
msgid "add a signature from a file"
msgstr "從檔案新增一個簽å"
-#: builtin/log.c:1835
+#: builtin/log.c:1854
msgid "don't print the patch filenames"
msgstr "ä¸è¦åˆ—å°ä¿®è£œæª”檔案å"
-#: builtin/log.c:1837
+#: builtin/log.c:1856
msgid "show progress while generating patches"
msgstr "在生æˆä¿®è£œæª”時顯示進度"
-#: builtin/log.c:1839
+#: builtin/log.c:1858
msgid "show changes against <rev> in cover letter or single patch"
msgstr "在附函或單個修補檔中顯示和 <rev> 的差異"
-#: builtin/log.c:1842
+#: builtin/log.c:1861
msgid "show changes against <refspec> in cover letter or single patch"
msgstr "在附函或單個修補檔中顯示和 <refspec> 的差異"
-#: builtin/log.c:1844 builtin/range-diff.c:28
+#: builtin/log.c:1863 builtin/range-diff.c:28
msgid "percentage by which creation is weighted"
msgstr "建立權é‡çš„百分比"
-#: builtin/log.c:1931
+#: builtin/log.c:1953
#, c-format
msgid "invalid ident line: %s"
msgstr "包å«ç„¡æ•ˆçš„身份標記:%s"
-#: builtin/log.c:1956
+#: builtin/log.c:1978
msgid "--name-only does not make sense"
msgstr "--name-only ç„¡æ„義"
-#: builtin/log.c:1958
+#: builtin/log.c:1980
msgid "--name-status does not make sense"
msgstr "--name-status ç„¡æ„義"
-#: builtin/log.c:1960
+#: builtin/log.c:1982
msgid "--check does not make sense"
msgstr "--check ç„¡æ„義"
-#: builtin/log.c:2104
+#: builtin/log.c:1984
+msgid "--remerge-diff does not make sense"
+msgstr "--remerge-diff ç„¡æ„義"
+
+#: builtin/log.c:2129
msgid "--interdiff requires --cover-letter or single patch"
msgstr "--interdiff éœ€è¦ --cover-letter 或單一修補檔"
-#: builtin/log.c:2108
+#: builtin/log.c:2133
msgid "Interdiff:"
msgstr "版本間差異:"
-#: builtin/log.c:2109
+#: builtin/log.c:2134
#, c-format
msgid "Interdiff against v%d:"
msgstr "å° v%d 的版本差異:"
-#: builtin/log.c:2119
+#: builtin/log.c:2144
msgid "--range-diff requires --cover-letter or single patch"
msgstr "--range-diff éœ€è¦ --cover-letter 或單一修補檔"
-#: builtin/log.c:2127
+#: builtin/log.c:2152
msgid "Range-diff:"
msgstr "範åœå·®ç•°ï¼š"
-#: builtin/log.c:2128
+#: builtin/log.c:2153
#, c-format
msgid "Range-diff against v%d:"
msgstr "å° v%d 的範åœå·®ç•°ï¼š"
-#: builtin/log.c:2139
+#: builtin/log.c:2164
#, c-format
msgid "unable to read signature file '%s'"
msgstr "無法讀å–ç°½å檔案 '%s'"
-#: builtin/log.c:2175
+#: builtin/log.c:2200
msgid "Generating patches"
msgstr "生æˆä¿®è£œæª”"
-#: builtin/log.c:2219
+#: builtin/log.c:2244
msgid "failed to create output files"
msgstr "無法建立輸出檔案"
-#: builtin/log.c:2279
+#: builtin/log.c:2304
msgid "git cherry [-v] [<upstream> [<head> [<limit>]]]"
msgstr "git cherry [-v] [<上游> [<é ­> [<é™åˆ¶>]]]"
-#: builtin/log.c:2333
+#: builtin/log.c:2358
#, c-format
msgid ""
"Could not find a tracked remote branch, please specify <upstream> manually.\n"
@@ -17198,10 +17670,6 @@ msgstr "新增標準的 git 排除"
msgid "make the output relative to the project top directory"
msgstr "顯示相å°æ–¼é ‚級目錄的檔案å"
-#: builtin/ls-files.c:667
-msgid "recurse through submodules"
-msgstr "在å­æ¨¡çµ„中éžè¿´"
-
#: builtin/ls-files.c:669
msgid "if any <file> is not in the index, treat this as an error"
msgstr "如果任何 <檔案> 都ä¸åœ¨ç´¢å¼•å€ï¼Œè¦–為錯誤"
@@ -17240,7 +17708,7 @@ msgstr ""
msgid "do not print remote URL"
msgstr "ä¸åˆ—å°é ç«¯ URL"
-#: builtin/ls-remote.c:61 builtin/ls-remote.c:63 builtin/rebase.c:1103
+#: builtin/ls-remote.c:61 builtin/ls-remote.c:63 builtin/rebase.c:1131
msgid "exec"
msgstr "exec"
@@ -17272,42 +17740,70 @@ msgstr "若未找到符åˆçš„引用則以離開碼2離開"
msgid "show underlying ref in addition to the object pointed by it"
msgstr "除了顯示指å‘的物件外,顯示指å‘的引用å"
-#: builtin/ls-tree.c:30
+#: builtin/ls-tree.c:36
msgid "git ls-tree [<options>] <tree-ish> [<path>...]"
msgstr "git ls-tree [<é¸é …>] <樹或æ交> [<路徑>...]"
-#: builtin/ls-tree.c:128
+#: builtin/ls-tree.c:54
+#, c-format
+msgid "could not get object info about '%s'"
+msgstr "無法å–得「%sã€ç›¸é—œçš„物件資訊"
+
+#: builtin/ls-tree.c:79
+#, c-format
+msgid "bad ls-tree format: element '%s' does not start with '('"
+msgstr "無效的 ls-tree æ ¼å¼ï¼šã€Œ%sã€å…ƒç´ çš„é–‹é ­ä¸æ˜¯ã€Œ(ã€"
+
+#: builtin/ls-tree.c:83
+#, c-format
+msgid "bad ls-tree format: element '%s' does not end in ')'"
+msgstr "無效的 ls-tree æ ¼å¼ï¼šã€Œ%sã€å…ƒç´ çš„çµå°¾ä¸æ˜¯ã€Œ)ã€"
+
+#: builtin/ls-tree.c:109
+#, c-format
+msgid "bad ls-tree format: %%%.*s"
+msgstr "無效的 ls-tree æ ¼å¼ï¼š%%%.*s"
+
+#: builtin/ls-tree.c:336
msgid "only show trees"
msgstr "åªé¡¯ç¤ºæ¨¹"
-#: builtin/ls-tree.c:130
+#: builtin/ls-tree.c:338
msgid "recurse into subtrees"
msgstr "éžè¿´åˆ°å­æ¨¹"
-#: builtin/ls-tree.c:132
+#: builtin/ls-tree.c:340
msgid "show trees when recursing"
msgstr "當éžè¿´æ™‚顯示樹"
-#: builtin/ls-tree.c:135
+#: builtin/ls-tree.c:343
msgid "terminate entries with NUL byte"
msgstr "æ¢ç›®ä»¥ NUL 字元終止"
-#: builtin/ls-tree.c:136
+#: builtin/ls-tree.c:344
msgid "include object size"
msgstr "包括物件大å°"
-#: builtin/ls-tree.c:138 builtin/ls-tree.c:140
+#: builtin/ls-tree.c:346 builtin/ls-tree.c:348
msgid "list only filenames"
msgstr "åªåˆ—出檔案å"
-#: builtin/ls-tree.c:143
+#: builtin/ls-tree.c:350
+msgid "list only objects"
+msgstr "åªåˆ—出物件"
+
+#: builtin/ls-tree.c:353
msgid "use full path names"
msgstr "使用檔案的全路徑"
-#: builtin/ls-tree.c:145
+#: builtin/ls-tree.c:355
msgid "list entire tree; not just current directory (implies --full-name)"
msgstr "列出整個樹;ä¸åƒ…僅目å‰ç›®éŒ„ï¼ˆéš±å« --full-name)"
+#: builtin/ls-tree.c:391
+msgid "--format can't be combined with other format-altering options"
+msgstr "--format ä¸èƒ½èˆ‡å…¶ä»–修改格å¼çš„é¸é …çµåˆä½¿ç”¨"
+
#. TRANSLATORS: keep <> in "<" mail ">" info.
#: builtin/mailinfo.c:14
msgid "git mailinfo [<options>] <msg> <patch> < mail >info"
@@ -17357,7 +17853,11 @@ msgstr "當找到å¯åˆ—å° CR 字元時所è¦æŽ¡å–的行為"
msgid "use headers in message's body"
msgstr "在訊æ¯å…§æ–‡ä¸­ä½¿ç”¨æ¨™é ­"
-#: builtin/mailsplit.c:239
+#: builtin/mailsplit.c:227
+msgid "reading patches from stdin/tty..."
+msgstr "正在從標準輸入或 tty 讀å–修補檔內容⋯⋯"
+
+#: builtin/mailsplit.c:242
#, c-format
msgid "empty mbox: '%s'"
msgstr "空的 mbox:'%s'"
@@ -17382,23 +17882,23 @@ msgstr "git merge-base --is-ancestor <æ交> <æ交>"
msgid "git merge-base --fork-point <ref> [<commit>]"
msgstr "git merge-base --fork-point <引用> [<æ交>]"
-#: builtin/merge-base.c:143
+#: builtin/merge-base.c:144
msgid "output all common ancestors"
msgstr "輸出所有共åŒçš„祖先"
-#: builtin/merge-base.c:145
+#: builtin/merge-base.c:146
msgid "find ancestors for a single n-way merge"
msgstr "尋找一個多路åˆä½µçš„祖先æ交"
-#: builtin/merge-base.c:147
+#: builtin/merge-base.c:148
msgid "list revs not reachable from others"
msgstr "顯示ä¸èƒ½è¢«å…¶ä»–å­˜å–到的版本"
-#: builtin/merge-base.c:149
+#: builtin/merge-base.c:150
msgid "is the first one ancestor of the other?"
msgstr "第一個是其他的祖先æ交嗎?"
-#: builtin/merge-base.c:151
+#: builtin/merge-base.c:152
msgid "find where <commit> forked from reflog of <ref>"
msgstr "根據 <引用> 的引用日誌尋找 <æ交> çš„è¡ç”Ÿè™•"
@@ -17545,7 +18045,7 @@ msgid "verify that the named commit has a valid GPG signature"
msgstr "驗證指定的æ交是å¦åŒ…å«ä¸€å€‹æœ‰æ•ˆçš„ GPG ç°½å"
#: builtin/merge.c:280 builtin/notes.c:785 builtin/pull.c:172
-#: builtin/rebase.c:1117 builtin/revert.c:114
+#: builtin/rebase.c:1145 builtin/revert.c:114
msgid "strategy"
msgstr "ç­–ç•¥"
@@ -17677,72 +18177,72 @@ msgid ""
"the commit.\n"
msgstr "以 '%c' 開始的行將被忽略,而空的æ交說明將終止æ交。\n"
-#: builtin/merge.c:894
+#: builtin/merge.c:900
msgid "Empty commit message."
msgstr "空æ交說明。"
-#: builtin/merge.c:909
+#: builtin/merge.c:915
#, c-format
msgid "Wonderful.\n"
msgstr "太棒了。\n"
-#: builtin/merge.c:970
+#: builtin/merge.c:976
#, c-format
msgid "Automatic merge failed; fix conflicts and then commit the result.\n"
msgstr "自動åˆä½µå¤±æ•—,修正è¡çªç„¶å¾Œæ交修正的çµæžœã€‚\n"
-#: builtin/merge.c:1009
+#: builtin/merge.c:1015
msgid "No current branch."
msgstr "沒有目å‰åˆ†æ”¯ã€‚"
-#: builtin/merge.c:1011
+#: builtin/merge.c:1017
msgid "No remote for the current branch."
msgstr "ç›®å‰åˆ†æ”¯æ²’有å°æ‡‰çš„é ç«¯ç‰ˆæœ¬åº«ã€‚"
-#: builtin/merge.c:1013
+#: builtin/merge.c:1019
msgid "No default upstream defined for the current branch."
msgstr "ç›®å‰åˆ†æ”¯æ²’有定義é è¨­çš„上游分支。"
-#: builtin/merge.c:1018
+#: builtin/merge.c:1024
#, c-format
msgid "No remote-tracking branch for %s from %s"
msgstr "å°æ–¼ %s 沒有來自 %s çš„é ç«¯è¿½è¹¤åˆ†æ”¯"
-#: builtin/merge.c:1075
+#: builtin/merge.c:1081
#, c-format
msgid "Bad value '%s' in environment '%s'"
msgstr "環境 '%2$s' 中存在壞的å–值 '%1$s'"
-#: builtin/merge.c:1177
+#: builtin/merge.c:1183
#, c-format
msgid "not something we can merge in %s: %s"
msgstr "ä¸èƒ½åœ¨ %s 中åˆä½µï¼š%s"
-#: builtin/merge.c:1211
+#: builtin/merge.c:1217
msgid "not something we can merge"
msgstr "ä¸èƒ½åˆä½µ"
-#: builtin/merge.c:1324
+#: builtin/merge.c:1330
msgid "--abort expects no arguments"
msgstr "--abort ä¸å¸¶åƒæ•¸"
-#: builtin/merge.c:1328
+#: builtin/merge.c:1334
msgid "There is no merge to abort (MERGE_HEAD missing)."
msgstr "沒有è¦çµ‚止的åˆä½µï¼ˆMERGE_HEAD éºå¤±ï¼‰ã€‚"
-#: builtin/merge.c:1346
+#: builtin/merge.c:1352
msgid "--quit expects no arguments"
msgstr "--quit ä¸å¸¶åƒæ•¸"
-#: builtin/merge.c:1359
+#: builtin/merge.c:1365
msgid "--continue expects no arguments"
msgstr "--continue ä¸å¸¶åƒæ•¸"
-#: builtin/merge.c:1363
+#: builtin/merge.c:1369
msgid "There is no merge in progress (MERGE_HEAD missing)."
msgstr "沒有進行中的åˆä½µï¼ˆMERGE_HEAD éºå¤±ï¼‰ã€‚"
-#: builtin/merge.c:1379
+#: builtin/merge.c:1385
msgid ""
"You have not concluded your merge (MERGE_HEAD exists).\n"
"Please, commit your changes before you merge."
@@ -17750,7 +18250,7 @@ msgstr ""
"您尚未çµæŸæ‚¨çš„åˆä½µï¼ˆå­˜åœ¨ MERGE_HEAD)。\n"
"請在åˆä½µå‰å…ˆæ交您的修改。"
-#: builtin/merge.c:1386
+#: builtin/merge.c:1392
msgid ""
"You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists).\n"
"Please, commit your changes before you merge."
@@ -17758,84 +18258,80 @@ msgstr ""
"您尚未çµæŸæ‚¨çš„æ€é¸ï¼ˆå­˜åœ¨ CHERRY_PICK_HEAD)。\n"
"請在åˆä½µå‰å…ˆæ交您的修改。"
-#: builtin/merge.c:1389
+#: builtin/merge.c:1395
msgid "You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists)."
msgstr "您尚未çµæŸæ‚¨çš„æ€é¸ï¼ˆå­˜åœ¨ CHERRY_PICK_HEAD)。"
-#: builtin/merge.c:1421
+#: builtin/merge.c:1427
msgid "No commit specified and merge.defaultToUpstream not set."
msgstr "未指定æ交並且 merge.defaultToUpstream 未設定。"
-#: builtin/merge.c:1438
+#: builtin/merge.c:1444
msgid "Squash commit into empty head not supported yet"
msgstr "å°šä¸æ”¯æ´åˆ°ç©ºåˆ†æ”¯çš„壓縮æ交"
-#: builtin/merge.c:1440
+#: builtin/merge.c:1446
msgid "Non-fast-forward commit does not make sense into an empty head"
msgstr "到空分支的éžå¿«è½‰å¼æ交沒有æ„義"
-#: builtin/merge.c:1445
+#: builtin/merge.c:1451
#, c-format
msgid "%s - not something we can merge"
msgstr "%s - ä¸èƒ½è¢«åˆä½µ"
-#: builtin/merge.c:1447
+#: builtin/merge.c:1453
msgid "Can merge only exactly one commit into empty head"
msgstr "åªèƒ½å°‡ä¸€å€‹æ交åˆä¸¦åˆ°ç©ºåˆ†æ”¯ä¸Š"
-#: builtin/merge.c:1534
+#: builtin/merge.c:1540
msgid "refusing to merge unrelated histories"
msgstr "拒絕åˆä½µç„¡é—œçš„æ­·å²"
-#: builtin/merge.c:1553
+#: builtin/merge.c:1559
#, c-format
msgid "Updating %s..%s\n"
msgstr "æ›´æ–° %s..%s\n"
-#: builtin/merge.c:1601
+#: builtin/merge.c:1606
#, c-format
msgid "Trying really trivial in-index merge...\n"
msgstr "嘗試éžå¸¸å°çš„索引內åˆä½µ...\n"
-#: builtin/merge.c:1608
+#: builtin/merge.c:1613
#, c-format
msgid "Nope.\n"
msgstr "無。\n"
-#: builtin/merge.c:1667 builtin/merge.c:1733
+#: builtin/merge.c:1671 builtin/merge.c:1737
#, c-format
msgid "Rewinding the tree to pristine...\n"
msgstr "將樹回滾至原始狀態...\n"
-#: builtin/merge.c:1671
+#: builtin/merge.c:1675
#, c-format
msgid "Trying merge strategy %s...\n"
msgstr "嘗試åˆä½µç­–ç•¥ %s...\n"
-#: builtin/merge.c:1723
+#: builtin/merge.c:1727
#, c-format
msgid "No merge strategy handled the merge.\n"
msgstr "沒有åˆä½µç­–略處ç†æ­¤åˆä½µã€‚\n"
-#: builtin/merge.c:1725
+#: builtin/merge.c:1729
#, c-format
msgid "Merge with strategy %s failed.\n"
msgstr "使用策略 %s åˆä½µå¤±æ•—。\n"
-#: builtin/merge.c:1735
+#: builtin/merge.c:1739
#, c-format
msgid "Using the %s strategy to prepare resolving by hand.\n"
msgstr "使用 %s 策略,準備自行解決。\n"
-#: builtin/merge.c:1749
+#: builtin/merge.c:1753
#, c-format
msgid "Automatic merge went well; stopped before committing as requested\n"
msgstr "自動åˆä½µé€²å±•é †åˆ©ï¼ŒæŒ‰è¦æ±‚在æ交å‰åœæ­¢\n"
-#: builtin/mktag.c:10
-msgid "git mktag"
-msgstr "git mktag"
-
#: builtin/mktag.c:27
#, c-format
msgid "warning: tag input does not pass fsck: %s"
@@ -17861,22 +18357,18 @@ msgstr "無法讀å–有標籤的物件「%sã€"
msgid "object '%s' tagged as '%s', but is a '%s' type"
msgstr "「%sã€å·²æ¨™ç‚ºã€Œ%sã€ï¼Œä½†å»æ˜¯ã€Œ%sã€é¡žåž‹"
-#: builtin/mktag.c:98
+#: builtin/mktag.c:97
msgid "tag on stdin did not pass our strict fsck check"
msgstr "stdin 上的標籤未通éŽæˆ‘們的嚴格 fsck 檢查"
-#: builtin/mktag.c:101
+#: builtin/mktag.c:100
msgid "tag on stdin did not refer to a valid object"
msgstr "標準輸入上的標籤指å‘çš„ä¸æ˜¯æœ‰æ•ˆç‰©ä»¶"
-#: builtin/mktag.c:104 builtin/tag.c:242
+#: builtin/mktag.c:103 builtin/tag.c:243
msgid "unable to write tag file"
msgstr "無法寫標籤檔案"
-#: builtin/mktree.c:66
-msgid "git mktree [-z] [--missing] [--batch]"
-msgstr "git mktree [-z] [--missing] [--batch]"
-
#: builtin/mktree.c:154
msgid "input is NUL terminated"
msgstr "輸入以 NUL 字元終止"
@@ -18030,52 +18522,56 @@ msgstr "%s,來æº=%s,目的地=%s"
msgid "Renaming %s to %s\n"
msgstr "é‡æ–°å‘½å %s 至 %s\n"
-#: builtin/mv.c:314 builtin/remote.c:790 builtin/repack.c:857
+#: builtin/mv.c:314 builtin/remote.c:812 builtin/repack.c:861
#, c-format
msgid "renaming '%s' failed"
msgstr "é‡æ–°å‘½å '%s' 失敗"
-#: builtin/name-rev.c:474
+#: builtin/name-rev.c:524
msgid "git name-rev [<options>] <commit>..."
msgstr "git name-rev [<é¸é …>] <æ交>..."
-#: builtin/name-rev.c:475
+#: builtin/name-rev.c:525
msgid "git name-rev [<options>] --all"
msgstr "git name-rev [<é¸é …>] --all"
-#: builtin/name-rev.c:476
-msgid "git name-rev [<options>] --stdin"
-msgstr "git name-rev [<é¸é …>] --stdin"
+#: builtin/name-rev.c:526
+msgid "git name-rev [<options>] --annotate-stdin"
+msgstr "git name-rev [<options>] --annotate-stdin"
-#: builtin/name-rev.c:533
+#: builtin/name-rev.c:583
msgid "print only ref-based names (no object names)"
msgstr "åªè¼¸å‡ºåŸºæ–¼å¼•ç”¨çš„å稱 (沒有物件å稱)"
-#: builtin/name-rev.c:534
+#: builtin/name-rev.c:584
msgid "only use tags to name the commits"
msgstr "åªä½¿ç”¨æ¨™ç±¤ä¾†å‘½åæ交"
-#: builtin/name-rev.c:536
+#: builtin/name-rev.c:586
msgid "only use refs matching <pattern>"
msgstr "åªä½¿ç”¨å’Œ <模å¼> 相符åˆçš„引用"
-#: builtin/name-rev.c:538
+#: builtin/name-rev.c:588
msgid "ignore refs matching <pattern>"
msgstr "忽略和 <模å¼> 相符åˆçš„引用"
-#: builtin/name-rev.c:540
+#: builtin/name-rev.c:590
msgid "list all commits reachable from all refs"
msgstr "列出å¯ä»¥å¾žæ‰€æœ‰å¼•ç”¨å­˜å–çš„æ交"
-#: builtin/name-rev.c:541
-msgid "read from stdin"
-msgstr "從標準輸入讀å–"
+#: builtin/name-rev.c:591
+msgid "deprecated: use annotate-stdin instead"
+msgstr "å·²å–代:請改用 annotate-stdin"
-#: builtin/name-rev.c:542
+#: builtin/name-rev.c:592
+msgid "annotate text from stdin"
+msgstr "註解從標準輸入收到的文字"
+
+#: builtin/name-rev.c:593
msgid "allow to print `undefined` names (default)"
msgstr "å…è¨±åˆ—å° `未定義` çš„å稱(é è¨­ï¼‰"
-#: builtin/name-rev.c:548
+#: builtin/name-rev.c:599
msgid "dereference tags in the input (internal use)"
msgstr "åå‘解æžè¼¸å…¥ä¸­çš„標籤(內部使用)"
@@ -18116,14 +18612,6 @@ msgid ""
"git notes [--ref <notes-ref>] merge [-v | -q] [-s <strategy>] <notes-ref>"
msgstr "git notes [--ref <註解引用>] merge [-v | -q] [-s <策略> ] <註解引用>"
-#: builtin/notes.c:35
-msgid "git notes merge --commit [-v | -q]"
-msgstr "git notes merge --commit [-v | -q]"
-
-#: builtin/notes.c:36
-msgid "git notes merge --abort [-v | -q]"
-msgstr "git notes merge --abort [-v | -q]"
-
#: builtin/notes.c:37
msgid "git notes [--ref <notes-ref>] remove [<object>...]"
msgstr "git notes [--ref <註解引用>] remove [<物件>...]"
@@ -18184,10 +18672,6 @@ msgstr "git notes remove [<物件>]"
msgid "git notes prune [<options>]"
msgstr "git notes prune [<é¸é …>]"
-#: builtin/notes.c:92
-msgid "git notes get-ref"
-msgstr "git notes get-ref"
-
#: builtin/notes.c:97
msgid "Write/edit the notes for the following object:"
msgstr "為下é¢çš„物件寫/編輯說明:"
@@ -18219,7 +18703,7 @@ msgstr "ä¸èƒ½å¯«è¨»è§£ç‰©ä»¶"
msgid "the note contents have been left in %s"
msgstr "註解內容被留在 %s 中"
-#: builtin/notes.c:240 builtin/tag.c:581
+#: builtin/notes.c:240 builtin/tag.c:582
#, c-format
msgid "could not open or read '%s'"
msgstr "ä¸èƒ½é–‹å•Ÿæˆ–è®€å– '%s'"
@@ -18259,13 +18743,6 @@ msgstr "從 '%s' 複製註解到 '%s' 時失敗"
msgid "refusing to %s notes in %s (outside of refs/notes/)"
msgstr "æ‹’çµ•å‘ %2$s(在 refs/notes/ 之外)%1$s註解"
-#: builtin/notes.c:374 builtin/notes.c:429 builtin/notes.c:507
-#: builtin/notes.c:519 builtin/notes.c:596 builtin/notes.c:663
-#: builtin/notes.c:813 builtin/notes.c:965 builtin/notes.c:987
-#: builtin/prune-packed.c:25 builtin/receive-pack.c:2487 builtin/tag.c:591
-msgid "too many arguments"
-msgstr "太多åƒæ•¸"
-
#: builtin/notes.c:387 builtin/notes.c:676
#, c-format
msgid "no note found for object %s."
@@ -18445,7 +18922,7 @@ msgstr ""
"自動åˆä½µèªªæ˜Žå¤±æ•—。修改 %s 中的è¡çªä¸¦ä¸”使用指令 'git notes merge --commit' æ"
"交çµæžœï¼Œæˆ–者使用指令 'git notes merge --abort' 終止åˆä½µã€‚\n"
-#: builtin/notes.c:899 builtin/tag.c:594
+#: builtin/notes.c:899 builtin/tag.c:595
#, c-format
msgid "Failed to resolve '%s' as a valid ref."
msgstr "ç„¡æ³•è§£æž '%s' 為一個有效引用。"
@@ -18463,13 +18940,13 @@ msgstr "嘗試刪除ä¸å­˜åœ¨çš„註解ä¸æ˜¯ä¸€å€‹éŒ¯èª¤"
msgid "read object names from the standard input"
msgstr "從標準輸入讀å–物件å稱"
-#: builtin/notes.c:956 builtin/prune.c:144 builtin/worktree.c:147
+#: builtin/notes.c:956 builtin/prune.c:144 builtin/worktree.c:148
msgid "do not remove, show only"
msgstr "ä¸åˆªé™¤ï¼Œåªé¡¯ç¤º"
#: builtin/notes.c:957
msgid "report pruned notes"
-msgstr "報告清除的註解"
+msgstr "回報剪除的註解"
#: builtin/notes.c:1000
msgid "notes-ref"
@@ -18479,7 +18956,7 @@ msgstr "註解引用"
msgid "use notes from <notes-ref>"
msgstr "從 <註解引用> 使用註解"
-#: builtin/notes.c:1036 builtin/stash.c:1818
+#: builtin/notes.c:1036 builtin/stash.c:1802
#, c-format
msgid "unknown subcommand: %s"
msgstr "未知å­æŒ‡ä»¤ï¼š%s"
@@ -18494,7 +18971,7 @@ msgid ""
"git pack-objects [<options>...] <base-name> [< <ref-list> | < <object-list>]"
msgstr "git pack-objects [<é¸é …>...] <å‰ç¶´å稱> [< <引用列表> | < <物件列表>]"
-#: builtin/pack-objects.c:572
+#: builtin/pack-objects.c:570
#, c-format
msgid ""
"write_reuse_object: could not locate %s, expected at offset %<PRIuMAX> in "
@@ -18502,110 +18979,110 @@ msgid ""
msgstr ""
"write_reuse_objectï¼šç„¡æ³•å®šä½ %1$s,é æœŸåœ¨ %3$s 包中的 %2$<PRIuMAX> å移é‡"
-#: builtin/pack-objects.c:580
+#: builtin/pack-objects.c:578
#, c-format
msgid "bad packed object CRC for %s"
msgstr "%s 錯的包物件 CRC"
-#: builtin/pack-objects.c:591
+#: builtin/pack-objects.c:589
#, c-format
msgid "corrupt packed object for %s"
msgstr "%s æ壞的包物件"
-#: builtin/pack-objects.c:722
+#: builtin/pack-objects.c:720
#, c-format
msgid "recursive delta detected for object %s"
msgstr "發ç¾ç‰©ä»¶ %s éžè¿´ delta"
-#: builtin/pack-objects.c:941
+#: builtin/pack-objects.c:939
#, c-format
msgid "ordered %u objects, expected %<PRIu32>"
msgstr "排åºäº† %u 個物件,é æœŸ %<PRIu32> 個"
-#: builtin/pack-objects.c:1036
+#: builtin/pack-objects.c:1034
#, c-format
msgid "expected object at offset %<PRIuMAX> in pack %s"
msgstr "é æœŸ %2$s 包中的å移 %1$<PRIuMAX> 有物件"
-#: builtin/pack-objects.c:1160
+#: builtin/pack-objects.c:1158
msgid "disabling bitmap writing, packs are split due to pack.packSizeLimit"
msgstr "åœç”¨ bitmap 寫入,因為 pack.packSizeLimit 設定使得包被切分為多個"
-#: builtin/pack-objects.c:1173
+#: builtin/pack-objects.c:1171
msgid "Writing objects"
msgstr "寫入物件中"
-#: builtin/pack-objects.c:1235 builtin/update-index.c:90
+#: builtin/pack-objects.c:1243 builtin/update-index.c:90
#, c-format
msgid "failed to stat %s"
msgstr "å° %s å‘¼å« stat 失敗"
-#: builtin/pack-objects.c:1268
+#: builtin/pack-objects.c:1276
msgid "failed to write bitmap index"
msgstr "無法寫入ä½åœ–索引"
-#: builtin/pack-objects.c:1294
+#: builtin/pack-objects.c:1302
#, c-format
msgid "wrote %<PRIu32> objects while expecting %<PRIu32>"
msgstr "寫入 %<PRIu32> 個物件而é æœŸ %<PRIu32> 個"
-#: builtin/pack-objects.c:1536
+#: builtin/pack-objects.c:1544
msgid "disabling bitmap writing, as some objects are not being packed"
msgstr "åœç”¨ bitmap 寫入,因為一些物件將ä¸æœƒè¢«æ‰“包"
-#: builtin/pack-objects.c:1984
+#: builtin/pack-objects.c:1992
#, c-format
msgid "delta base offset overflow in pack for %s"
msgstr "%s 壓縮中 delta 基準ä½ç§»è¶Šç•Œ"
-#: builtin/pack-objects.c:1993
+#: builtin/pack-objects.c:2001
#, c-format
msgid "delta base offset out of bound for %s"
msgstr "%s çš„ delta 基準ä½ç§»è¶Šç•Œ"
-#: builtin/pack-objects.c:2274
+#: builtin/pack-objects.c:2282
msgid "Counting objects"
msgstr "物件計數中"
-#: builtin/pack-objects.c:2439
+#: builtin/pack-objects.c:2447
#, c-format
msgid "unable to parse object header of %s"
msgstr "無法解æžç‰©ä»¶ %s 標頭訊æ¯"
-#: builtin/pack-objects.c:2509 builtin/pack-objects.c:2525
-#: builtin/pack-objects.c:2535
+#: builtin/pack-objects.c:2517 builtin/pack-objects.c:2533
+#: builtin/pack-objects.c:2543
#, c-format
msgid "object %s cannot be read"
msgstr "物件 %s 無法讀å–"
-#: builtin/pack-objects.c:2512 builtin/pack-objects.c:2539
+#: builtin/pack-objects.c:2520 builtin/pack-objects.c:2547
#, c-format
msgid "object %s inconsistent object length (%<PRIuMAX> vs %<PRIuMAX>)"
msgstr "物件 %s ä¸ä¸€è‡´çš„物件長度(%<PRIuMAX> vs %<PRIuMAX>)"
-#: builtin/pack-objects.c:2549
+#: builtin/pack-objects.c:2557
msgid "suboptimal pack - out of memory"
msgstr "次優(suboptimal)打包 - 記憶體ä¸è¶³"
-#: builtin/pack-objects.c:2864
+#: builtin/pack-objects.c:2872
#, c-format
msgid "Delta compression using up to %d threads"
msgstr "使用 %d 個執行緒進行壓縮"
-#: builtin/pack-objects.c:3003
+#: builtin/pack-objects.c:3011
#, c-format
msgid "unable to pack objects reachable from tag %s"
msgstr "無法為標籤 %s 壓縮物件"
-#: builtin/pack-objects.c:3089
+#: builtin/pack-objects.c:3097
msgid "Compressing objects"
msgstr "壓縮物件中"
-#: builtin/pack-objects.c:3095
+#: builtin/pack-objects.c:3103
msgid "inconsistency with delta count"
msgstr "ä¸ä¸€è‡´çš„差異計數"
-#: builtin/pack-objects.c:3174
+#: builtin/pack-objects.c:3182
#, c-format
msgid ""
"value of uploadpack.blobpackfileuri must be of the form '<object-hash> <pack-"
@@ -18614,24 +19091,24 @@ msgstr ""
"uploadpack.blobpackfileuri 的值格å¼å¿…須為 '<object-hash> <pack-hash> "
"<uri>' (收到 '%s')"
-#: builtin/pack-objects.c:3177
+#: builtin/pack-objects.c:3185
#, c-format
msgid ""
"object already configured in another uploadpack.blobpackfileuri (got '%s')"
msgstr "物件已經在其他 uploadpack.blobpackfileuri è¨­å®šéŽ (收到 '%s')"
-#: builtin/pack-objects.c:3212
+#: builtin/pack-objects.c:3220
#, c-format
msgid "could not get type of object %s in pack %s"
msgstr "無法å–å¾— %2$s 包中 %1$s 物件的類型"
-#: builtin/pack-objects.c:3340 builtin/pack-objects.c:3351
-#: builtin/pack-objects.c:3365
+#: builtin/pack-objects.c:3348 builtin/pack-objects.c:3359
+#: builtin/pack-objects.c:3373
#, c-format
msgid "could not find pack '%s'"
msgstr "找ä¸åˆ°ã€Œ%sã€åŒ…"
-#: builtin/pack-objects.c:3408
+#: builtin/pack-objects.c:3416
#, c-format
msgid ""
"expected edge object ID, got garbage:\n"
@@ -18640,7 +19117,7 @@ msgstr ""
"é æœŸé‚Šç•Œç‰©ä»¶ï¼ˆedge object)ID,å»å¾—到垃圾資料:\n"
" %s"
-#: builtin/pack-objects.c:3414
+#: builtin/pack-objects.c:3422
#, c-format
msgid ""
"expected object ID, got garbage:\n"
@@ -18649,242 +19126,238 @@ msgstr ""
"é æœŸç‰©ä»¶ ID,å»å¾—到垃圾資料:\n"
" %s"
-#: builtin/pack-objects.c:3507
-msgid "invalid value for --missing"
-msgstr "é¸é … --missing 的值無效"
-
-#: builtin/pack-objects.c:3532 builtin/pack-objects.c:3619
+#: builtin/pack-objects.c:3540 builtin/pack-objects.c:3627
msgid "cannot open pack index"
msgstr "無法開啟包檔案索引"
-#: builtin/pack-objects.c:3541
+#: builtin/pack-objects.c:3549
#, c-format
msgid "loose object at %s could not be examined"
msgstr "無法檢查 %s 處的鬆散物件"
-#: builtin/pack-objects.c:3627
+#: builtin/pack-objects.c:3635
msgid "unable to force loose object"
msgstr "無法強制鬆散物件"
-#: builtin/pack-objects.c:3757
+#: builtin/pack-objects.c:3763
#, c-format
msgid "not a rev '%s'"
msgstr "ä¸æ˜¯ä¸€å€‹ç‰ˆæœ¬ '%s'"
-#: builtin/pack-objects.c:3760 builtin/rev-parse.c:1061
+#: builtin/pack-objects.c:3766 builtin/rev-parse.c:1061
#, c-format
msgid "bad revision '%s'"
msgstr "壞的版本 '%s'"
-#: builtin/pack-objects.c:3788
+#: builtin/pack-objects.c:3794
msgid "unable to add recent objects"
msgstr "無法新增最近的物件"
-#: builtin/pack-objects.c:3841
+#: builtin/pack-objects.c:3847
#, c-format
msgid "unsupported index version %s"
msgstr "ä¸æ”¯æ´çš„索引版本 %s"
-#: builtin/pack-objects.c:3845
+#: builtin/pack-objects.c:3851
#, c-format
msgid "bad index version '%s'"
msgstr "壞的索引版本 '%s'"
-#: builtin/pack-objects.c:3884
+#: builtin/pack-objects.c:3907
msgid "<version>[,<offset>]"
msgstr "<版本>[,<ä½ç§»>]"
-#: builtin/pack-objects.c:3885
+#: builtin/pack-objects.c:3908
msgid "write the pack index file in the specified idx format version"
msgstr "用指定的 idx æ ¼å¼ç‰ˆæœ¬ä¾†å¯«åŒ…索引檔案"
-#: builtin/pack-objects.c:3888
+#: builtin/pack-objects.c:3911
msgid "maximum size of each output pack file"
msgstr "æ¯å€‹è¼¸å‡ºåŒ…的最大尺寸"
-#: builtin/pack-objects.c:3890
+#: builtin/pack-objects.c:3913
msgid "ignore borrowed objects from alternate object store"
msgstr "忽略從備用物件儲存裡借用物件"
-#: builtin/pack-objects.c:3892
+#: builtin/pack-objects.c:3915
msgid "ignore packed objects"
msgstr "忽略包物件"
-#: builtin/pack-objects.c:3894
+#: builtin/pack-objects.c:3917
msgid "limit pack window by objects"
msgstr "é™åˆ¶æ‰“包視窗的物件數"
-#: builtin/pack-objects.c:3896
+#: builtin/pack-objects.c:3919
msgid "limit pack window by memory in addition to object limit"
msgstr "除物件數é‡é™åˆ¶å¤–設定打包視窗的記憶體é™åˆ¶"
-#: builtin/pack-objects.c:3898
+#: builtin/pack-objects.c:3921
msgid "maximum length of delta chain allowed in the resulting pack"
msgstr "打包å…許的 delta éˆçš„最大長度"
-#: builtin/pack-objects.c:3900
+#: builtin/pack-objects.c:3923
msgid "reuse existing deltas"
msgstr "é‡ç”¨å·²å­˜åœ¨çš„ deltas"
-#: builtin/pack-objects.c:3902
+#: builtin/pack-objects.c:3925
msgid "reuse existing objects"
msgstr "é‡ç”¨å·²å­˜åœ¨çš„物件"
-#: builtin/pack-objects.c:3904
+#: builtin/pack-objects.c:3927
msgid "use OFS_DELTA objects"
msgstr "使用 OFS_DELTA 物件"
-#: builtin/pack-objects.c:3906
+#: builtin/pack-objects.c:3929
msgid "use threads when searching for best delta matches"
msgstr "使用執行緒查詢最佳 delta 符åˆ"
-#: builtin/pack-objects.c:3908
+#: builtin/pack-objects.c:3931
msgid "do not create an empty pack output"
msgstr "ä¸å»ºç«‹ç©ºçš„包輸出"
-#: builtin/pack-objects.c:3910
+#: builtin/pack-objects.c:3933
msgid "read revision arguments from standard input"
msgstr "從標準輸入讀å–版本號åƒæ•¸"
-#: builtin/pack-objects.c:3912
+#: builtin/pack-objects.c:3935
msgid "limit the objects to those that are not yet packed"
msgstr "é™åˆ¶é‚£äº›å°šæœªæ‰“包的物件"
-#: builtin/pack-objects.c:3915
+#: builtin/pack-objects.c:3938
msgid "include objects reachable from any reference"
msgstr "包括å¯ä»¥å¾žä»»ä½•å¼•ç”¨å­˜å–到的物件"
-#: builtin/pack-objects.c:3918
+#: builtin/pack-objects.c:3941
msgid "include objects referred by reflog entries"
msgstr "包括被引用日誌引用到的物件"
-#: builtin/pack-objects.c:3921
+#: builtin/pack-objects.c:3944
msgid "include objects referred to by the index"
msgstr "包括被索引引用到的物件"
-#: builtin/pack-objects.c:3924
+#: builtin/pack-objects.c:3947
msgid "read packs from stdin"
msgstr "從標準輸入中讀å–包"
-#: builtin/pack-objects.c:3926
+#: builtin/pack-objects.c:3949
msgid "output pack to stdout"
msgstr "輸出包到標準輸出"
-#: builtin/pack-objects.c:3928
+#: builtin/pack-objects.c:3951
msgid "include tag objects that refer to objects to be packed"
msgstr "包括那些引用了待打包物件的標籤物件"
-#: builtin/pack-objects.c:3930
+#: builtin/pack-objects.c:3953
msgid "keep unreachable objects"
msgstr "維æŒç„¡æ³•å–得的物件"
-#: builtin/pack-objects.c:3932
+#: builtin/pack-objects.c:3955
msgid "pack loose unreachable objects"
msgstr "打包鬆散的無法å–得物件"
-#: builtin/pack-objects.c:3934
+#: builtin/pack-objects.c:3957
msgid "unpack unreachable objects newer than <time>"
msgstr "將比æä¾› <時間> 新的無法存å–的物件解包"
-#: builtin/pack-objects.c:3937
+#: builtin/pack-objects.c:3960
msgid "use the sparse reachability algorithm"
msgstr "使用稀ç–å¯ä»¥å–得性演算法"
-#: builtin/pack-objects.c:3939
+#: builtin/pack-objects.c:3962
msgid "create thin packs"
msgstr "建立精簡包"
-#: builtin/pack-objects.c:3941
+#: builtin/pack-objects.c:3964
msgid "create packs suitable for shallow fetches"
msgstr "建立é©åˆæ·ºè¤‡è£½ç‰ˆæœ¬åº«å–得的包"
-#: builtin/pack-objects.c:3943
+#: builtin/pack-objects.c:3966
msgid "ignore packs that have companion .keep file"
msgstr "忽略é…有 .keep 檔案的包"
-#: builtin/pack-objects.c:3945
+#: builtin/pack-objects.c:3968
msgid "ignore this pack"
msgstr "忽略該 pack"
-#: builtin/pack-objects.c:3947
+#: builtin/pack-objects.c:3970
msgid "pack compression level"
msgstr "打包壓縮級別"
-#: builtin/pack-objects.c:3949
+#: builtin/pack-objects.c:3972
msgid "do not hide commits by grafts"
msgstr "顯示被移æ¤éš±è—çš„æ交"
-#: builtin/pack-objects.c:3951
+#: builtin/pack-objects.c:3974
msgid "use a bitmap index if available to speed up counting objects"
msgstr "使用 bitmap 索引(如果有的話)以æ高物件計數時的速度"
-#: builtin/pack-objects.c:3953
+#: builtin/pack-objects.c:3976
msgid "write a bitmap index together with the pack index"
msgstr "在建立包索引的åŒæ™‚建立 bitmap 索引"
-#: builtin/pack-objects.c:3957
+#: builtin/pack-objects.c:3980
msgid "write a bitmap index if possible"
msgstr "如果å¯èƒ½ï¼Œå¯« bitmap 索引"
-#: builtin/pack-objects.c:3961
+#: builtin/pack-objects.c:3984
msgid "handling for missing objects"
msgstr "處ç†éºå¤±çš„物件"
-#: builtin/pack-objects.c:3964
+#: builtin/pack-objects.c:3987
msgid "do not pack objects in promisor packfiles"
msgstr "ä¸è¦æ‰“包 promisor packfile 中的物件"
-#: builtin/pack-objects.c:3966
+#: builtin/pack-objects.c:3989
msgid "respect islands during delta compression"
msgstr "在差異壓縮時尊é‡è³‡æ–™å³¶"
-#: builtin/pack-objects.c:3968
+#: builtin/pack-objects.c:3991
msgid "protocol"
msgstr "通訊å”定"
-#: builtin/pack-objects.c:3969
+#: builtin/pack-objects.c:3992
msgid "exclude any configured uploadpack.blobpackfileuri with this protocol"
msgstr "排除任何設定éŽï¼Œä½¿ç”¨æ­¤é€šè¨Šå”定的 uploadpack.blobpackfileuri"
-#: builtin/pack-objects.c:4002
+#: builtin/pack-objects.c:4027
#, c-format
msgid "delta chain depth %d is too deep, forcing %d"
msgstr "增é‡éˆæ·±åº¦ %d 太深了,強制為 %d"
-#: builtin/pack-objects.c:4007
+#: builtin/pack-objects.c:4032
#, c-format
msgid "pack.deltaCacheLimit is too high, forcing %d"
msgstr "設定 pack.deltaCacheLimit 太高了,強制為 %d"
-#: builtin/pack-objects.c:4063
+#: builtin/pack-objects.c:4088
msgid "--max-pack-size cannot be used to build a pack for transfer"
msgstr "ä¸èƒ½ä½¿ç”¨ --max-pack-size 來組建傳輸用的包檔案"
-#: builtin/pack-objects.c:4065
+#: builtin/pack-objects.c:4090
msgid "minimum pack size limit is 1 MiB"
msgstr "最å°çš„包檔案大å°æ˜¯ 1 MiB"
-#: builtin/pack-objects.c:4070
+#: builtin/pack-objects.c:4095
msgid "--thin cannot be used to build an indexable pack"
msgstr "--thin ä¸èƒ½ç”¨æ–¼å»ºç«‹ä¸€å€‹å¯ç´¢å¼•åŒ…"
-#: builtin/pack-objects.c:4079
+#: builtin/pack-objects.c:4104
msgid "cannot use --filter without --stdout"
msgstr "ä¸èƒ½åœ¨æ²’有 --stdout 的情æ³ä¸‹ä½¿ç”¨ --filter"
-#: builtin/pack-objects.c:4081
+#: builtin/pack-objects.c:4106
msgid "cannot use --filter with --stdin-packs"
msgstr "無法將 --filter åŠ --stdin-packs çµåˆä½¿ç”¨"
-#: builtin/pack-objects.c:4085
+#: builtin/pack-objects.c:4110
msgid "cannot use internal rev list with --stdin-packs"
msgstr "無法將內部版本清單與 --stdin-packs çµåˆä½¿ç”¨"
-#: builtin/pack-objects.c:4144
+#: builtin/pack-objects.c:4169
msgid "Enumerating objects"
msgstr "枚舉物件"
-#: builtin/pack-objects.c:4180
+#: builtin/pack-objects.c:4210
#, c-format
msgid ""
"Total %<PRIu32> (delta %<PRIu32>), reused %<PRIu32> (delta %<PRIu32>), pack-"
@@ -18917,11 +19390,7 @@ msgstr "打包一切"
#: builtin/pack-refs.c:17
msgid "prune loose refs (default)"
-msgstr "清除鬆散的引用(é è¨­ï¼‰"
-
-#: builtin/prune-packed.c:6
-msgid "git prune-packed [-n | --dry-run] [-q | --quiet]"
-msgstr "git prune-packed [-n | --dry-run] [-q | --quiet]"
+msgstr "剪除鬆散引用(é è¨­ï¼‰"
#: builtin/prune.c:14
msgid "git prune [-n] [-v] [--progress] [--expire <time>] [--] [<head>...]"
@@ -18929,7 +19398,7 @@ msgstr "git prune [-n] [-v] [--progress] [--expire <時間>] [--] [<head>...]"
#: builtin/prune.c:145
msgid "report pruned objects"
-msgstr "報告清除的物件"
+msgstr "回報剪除的物件"
#: builtin/prune.c:148
msgid "expire objects older than <time>"
@@ -18941,12 +19410,7 @@ msgstr "é™åˆ¶éæ­· promisor packfile 以外的物件"
#: builtin/prune.c:163
msgid "cannot prune in a precious-objects repo"
-msgstr "ä¸èƒ½åœ¨çå“版本庫中執行清ç†å‹•ä½œ"
-
-#: builtin/pull.c:45 builtin/pull.c:47
-#, c-format
-msgid "Invalid value for %s: %s"
-msgstr "%s 的值無效:%s"
+msgstr "ä¸èƒ½åœ¨çå“版本庫中執行剪除動作"
#: builtin/pull.c:67
msgid "git pull [<options>] [<repository> [<refspec>...]]"
@@ -18972,7 +19436,7 @@ msgstr "å…許快轉å¼"
msgid "control use of pre-merge-commit and commit-msg hooks"
msgstr "控制 pre-merge-commit 和 commit-msg 掛鉤的使用"
-#: builtin/pull.c:171 parse-options.h:340
+#: builtin/pull.c:171 parse-options.h:371
msgid "automatically stash/stash pop before and after"
msgstr "在動作å‰å¾ŒåŸ·è¡Œè‡ªå‹•å„²è—和彈出儲è—"
@@ -18988,11 +19452,6 @@ msgstr "強制覆蓋本機分支"
msgid "number of submodules pulled in parallel"
msgstr "並行拉å–çš„å­æ¨¡çµ„數é‡"
-#: builtin/pull.c:321
-#, c-format
-msgid "Invalid value for pull.ff: %s"
-msgstr "pull.ff çš„å–值無效:%s"
-
#: builtin/pull.c:449
msgid ""
"There is no candidate for rebasing against among the refs that you just "
@@ -19020,7 +19479,7 @@ msgstr ""
"您è¦æ±‚從é ç«¯ '%s' 拉å–,但是未指定一個分支。因為這ä¸æ˜¯ç›®å‰\n"
"分支é è¨­çš„é ç«¯ç‰ˆæœ¬åº«ï¼Œæ‚¨å¿…須在指令列中指定一個分支å。"
-#: builtin/pull.c:460 builtin/rebase.c:951
+#: builtin/pull.c:460 builtin/rebase.c:978
msgid "You are not currently on a branch."
msgstr "您目å‰ä¸åœ¨ä¸€å€‹åˆ†æ”¯ä¸Šã€‚"
@@ -19037,16 +19496,16 @@ msgid "See git-pull(1) for details."
msgstr "詳見 git-pull(1)。"
#: builtin/pull.c:467 builtin/pull.c:473 builtin/pull.c:482
-#: builtin/rebase.c:957
+#: builtin/rebase.c:984
msgid "<remote>"
msgstr "<é ç«¯>"
#: builtin/pull.c:467 builtin/pull.c:482 builtin/pull.c:487
-#: contrib/scalar/scalar.c:375
+#: contrib/scalar/scalar.c:374
msgid "<branch>"
msgstr "<分支>"
-#: builtin/pull.c:475 builtin/rebase.c:949
+#: builtin/pull.c:475 builtin/rebase.c:976
msgid "There is no tracking information for the current branch."
msgstr "ç›®å‰åˆ†æ”¯æ²’有追蹤訊æ¯ã€‚"
@@ -19102,19 +19561,19 @@ msgstr ""
"pull å‘½ä»¤æ™‚å‚³éž --rebaseã€--no-rebase 或 --ff-only 覆蓋\n"
"設定的é è¨­å€¼ã€‚\n"
-#: builtin/pull.c:1046
+#: builtin/pull.c:1047
msgid "Updating an unborn branch with changes added to the index."
msgstr "更新尚未誕生的分支,變更新增至索引。"
-#: builtin/pull.c:1050
+#: builtin/pull.c:1051
msgid "pull with rebase"
msgstr "é‡å®šåŸºåº•å¼æ‹‰å–"
-#: builtin/pull.c:1051
+#: builtin/pull.c:1052
msgid "please commit or stash them."
msgstr "è«‹æ交或儲è—它們。"
-#: builtin/pull.c:1076
+#: builtin/pull.c:1077
#, c-format
msgid ""
"fetch updated the current branch head.\n"
@@ -19124,7 +19583,7 @@ msgstr ""
"fetch 更新了目å‰çš„分支。快轉您的工作å€\n"
"至æ交 %s。"
-#: builtin/pull.c:1082
+#: builtin/pull.c:1083
#, c-format
msgid ""
"Cannot fast-forward your working tree.\n"
@@ -19141,23 +19600,23 @@ msgstr ""
"$ git reset --hard\n"
"復原之å‰çš„狀態。"
-#: builtin/pull.c:1097
+#: builtin/pull.c:1098
msgid "Cannot merge multiple branches into empty head."
msgstr "無法將多個分支åˆä½µåˆ°ç©ºåˆ†æ”¯ã€‚"
-#: builtin/pull.c:1102
+#: builtin/pull.c:1103
msgid "Cannot rebase onto multiple branches."
msgstr "無法é‡å®šåŸºåº•åˆ°å¤šå€‹åˆ†æ”¯ã€‚"
-#: builtin/pull.c:1104
+#: builtin/pull.c:1105
msgid "Cannot fast-forward to multiple branches."
msgstr "無法快轉至多個分支。"
-#: builtin/pull.c:1119
+#: builtin/pull.c:1120
msgid "Need to specify how to reconcile divergent branches."
msgstr "需è¦æŒ‡å®šå¦‚何調和å離的分支。"
-#: builtin/pull.c:1133
+#: builtin/pull.c:1134
msgid "cannot rebase with locally recorded submodule modifications"
msgstr "本機å­æ¨¡çµ„中有修改,無法é‡å®šåŸºåº•"
@@ -19321,7 +19780,7 @@ msgstr "推é€åˆ° %s\n"
msgid "failed to push some refs to '%s'"
msgstr "推é€ä¸€äº›å¼•ç”¨åˆ° '%s' 失敗"
-#: builtin/push.c:544 builtin/submodule--helper.c:3259
+#: builtin/push.c:544 builtin/submodule--helper.c:3377
msgid "repository"
msgstr "版本庫"
@@ -19376,7 +19835,7 @@ msgstr "設定 git pull/status 的上游"
#: builtin/push.c:567
msgid "prune locally removed refs"
-msgstr "清除本機刪除的引用"
+msgstr "剪除本機刪除的引用"
#: builtin/push.c:569
msgid "bypass pre-push hook"
@@ -19559,11 +20018,11 @@ msgstr "除錯 unpack-trees"
msgid "suppress feedback messages"
msgstr "抑制回饋訊æ¯"
-#: builtin/read-tree.c:183
+#: builtin/read-tree.c:190
msgid "You need to resolve your current index first"
msgstr "您需è¦å…ˆè§£æ±ºç›®å‰ç´¢å¼•çš„è¡çª"
-#: builtin/rebase.c:35
+#: builtin/rebase.c:36
msgid ""
"git rebase [-i] [options] [--exec <cmd>] [--onto <newbase> | --keep-base] "
"[<upstream> [<branch>]]"
@@ -19571,54 +20030,50 @@ msgstr ""
"git rebase [-i] [options] [--exec <命令>] [--onto <新基礎> | --keep-base] [<"
"上游> [<分支>]]"
-#: builtin/rebase.c:37
+#: builtin/rebase.c:38
msgid ""
"git rebase [-i] [options] [--exec <cmd>] [--onto <newbase>] --root [<branch>]"
msgstr ""
"git rebase [-i] [é¸é …] [--exec <命令>] [--onto <新基礎>] --root [<分支>]"
-#: builtin/rebase.c:39
-msgid "git rebase --continue | --abort | --skip | --edit-todo"
-msgstr "git rebase --continue | --abort | --skip | --edit-todo"
-
-#: builtin/rebase.c:230
+#: builtin/rebase.c:231
#, c-format
msgid "could not create temporary %s"
msgstr "無法建立暫時的 %s"
-#: builtin/rebase.c:236
+#: builtin/rebase.c:237
msgid "could not mark as interactive"
msgstr "無法標記為互動å¼"
-#: builtin/rebase.c:289
+#: builtin/rebase.c:290
msgid "could not generate todo list"
msgstr "無法生æˆå¾…辦列表"
-#: builtin/rebase.c:331
+#: builtin/rebase.c:332
msgid "a base commit must be provided with --upstream or --onto"
msgstr "使用 --upstream 或 --onto å¿…é ˆæ供一個基礎æ交"
-#: builtin/rebase.c:390
+#: builtin/rebase.c:391
#, c-format
msgid "%s requires the merge backend"
msgstr "%s 需è¦åˆä½µå¾Œç«¯"
-#: builtin/rebase.c:432
+#: builtin/rebase.c:433
#, c-format
msgid "could not get 'onto': '%s'"
msgstr "無法å–å¾— 'onto':'%s'"
-#: builtin/rebase.c:449
+#: builtin/rebase.c:450
#, c-format
msgid "invalid orig-head: '%s'"
msgstr "無效的原始 head:'%s'"
-#: builtin/rebase.c:474
+#: builtin/rebase.c:475
#, c-format
msgid "ignoring invalid allow_rerere_autoupdate: '%s'"
msgstr "忽略無效的 allow_rerere_autoupdate:'%s'"
-#: builtin/rebase.c:597
+#: builtin/rebase.c:600
msgid ""
"Resolve all conflicts manually, mark them as resolved with\n"
"\"git add/rm <conflicted_files>\", then run \"git rebase --continue\".\n"
@@ -19631,7 +20086,7 @@ msgstr ""
"\"git rebase --skip\" 指令略éŽé€™å€‹æ交。如果想è¦çµ‚止執行並回到\n"
"\"git rebase\" 執行之å‰çš„狀態,執行 \"git rebase --abort\"。"
-#: builtin/rebase.c:680
+#: builtin/rebase.c:685
#, c-format
msgid ""
"\n"
@@ -19649,14 +20104,19 @@ msgstr ""
"\n"
"å› æ­¤ git 無法å°å…¶é‡å®šåŸºåº•ã€‚"
-#: builtin/rebase.c:925
+#: builtin/rebase.c:836
+#, c-format
+msgid "could not switch to %s"
+msgstr "無法切æ›åˆ° %s"
+
+#: builtin/rebase.c:952
#, c-format
msgid ""
"unrecognized empty type '%s'; valid values are \"drop\", \"keep\", and \"ask"
"\"."
msgstr "無法識別的 '%s' 空類型;有效的數值有 \"drop\"ã€\"keep\" è·Ÿ \"ask\"。"
-#: builtin/rebase.c:943
+#: builtin/rebase.c:970
#, c-format
msgid ""
"%s\n"
@@ -19673,7 +20133,7 @@ msgstr ""
" git rebase '<branch>'\n"
"\n"
-#: builtin/rebase.c:959
+#: builtin/rebase.c:986
#, c-format
msgid ""
"If you wish to set tracking information for this branch you can do so with:\n"
@@ -19686,180 +20146,180 @@ msgstr ""
" git branch --set-upstream-to=%s/<branch> %s\n"
"\n"
-#: builtin/rebase.c:989
+#: builtin/rebase.c:1016
msgid "exec commands cannot contain newlines"
msgstr "exec 指令ä¸èƒ½åŒ…å«æ›è¡Œç¬¦è™Ÿ"
-#: builtin/rebase.c:993
+#: builtin/rebase.c:1020
msgid "empty exec command"
msgstr "空的 exec 指令"
-#: builtin/rebase.c:1023
+#: builtin/rebase.c:1051
msgid "rebase onto given branch instead of upstream"
msgstr "é‡å®šåŸºåº•åˆ°æ供的分支而éžä¸Šæ¸¸"
-#: builtin/rebase.c:1025
+#: builtin/rebase.c:1053
msgid "use the merge-base of upstream and branch as the current base"
msgstr "使用上游和分支的åˆä½µåŸºç¤Žåšç‚ºç›®å‰åŸºç¤Ž"
-#: builtin/rebase.c:1027
+#: builtin/rebase.c:1055
msgid "allow pre-rebase hook to run"
msgstr "å…許執行 pre-rebase 掛鉤"
-#: builtin/rebase.c:1029
+#: builtin/rebase.c:1057
msgid "be quiet. implies --no-stat"
msgstr "安éœã€‚暗示 --no-stat"
-#: builtin/rebase.c:1032
+#: builtin/rebase.c:1060
msgid "display a diffstat of what changed upstream"
msgstr "顯示上游變化的差異統計"
-#: builtin/rebase.c:1035
+#: builtin/rebase.c:1063
msgid "do not show diffstat of what changed upstream"
msgstr "ä¸é¡¯ç¤ºä¸Šæ¸¸è®ŠåŒ–的差異統計"
-#: builtin/rebase.c:1038
+#: builtin/rebase.c:1066
msgid "add a Signed-off-by trailer to each commit"
msgstr "在æ¯å€‹æ交çµå°¾åŠ å…¥ Signed-off-by"
-#: builtin/rebase.c:1041
+#: builtin/rebase.c:1069
msgid "make committer date match author date"
msgstr "使æ交日期與製作日期相符åˆ"
-#: builtin/rebase.c:1043
+#: builtin/rebase.c:1071
msgid "ignore author date and use current date"
msgstr "忽略製作日期而使用日å‰æ—¥æœŸ"
-#: builtin/rebase.c:1045
+#: builtin/rebase.c:1073
msgid "synonym of --reset-author-date"
msgstr "å’Œ --reset-author-date åŒç¾©"
-#: builtin/rebase.c:1047 builtin/rebase.c:1051
+#: builtin/rebase.c:1075 builtin/rebase.c:1079
msgid "passed to 'git apply'"
msgstr "傳éžçµ¦ 'git apply'"
-#: builtin/rebase.c:1049
+#: builtin/rebase.c:1077
msgid "ignore changes in whitespace"
msgstr "忽略空白字元中的變更"
-#: builtin/rebase.c:1053 builtin/rebase.c:1056
+#: builtin/rebase.c:1081 builtin/rebase.c:1084
msgid "cherry-pick all commits, even if unchanged"
msgstr "æ€é¸æ‰€æœ‰æ交,å³ä½¿æœªä¿®æ”¹"
-#: builtin/rebase.c:1058
+#: builtin/rebase.c:1086
msgid "continue"
msgstr "繼續"
-#: builtin/rebase.c:1061
+#: builtin/rebase.c:1089
msgid "skip current patch and continue"
msgstr "ç•¥éŽç›®å‰ä¿®è£œæª”並繼續"
# 譯者:請維æŒå‰å°Žç©ºæ ¼
-#: builtin/rebase.c:1063
+#: builtin/rebase.c:1091
msgid "abort and check out the original branch"
msgstr "終止並簽出原有分支"
-#: builtin/rebase.c:1066
+#: builtin/rebase.c:1094
msgid "abort but keep HEAD where it is"
msgstr "終止但ä¿æŒ HEAD ä¸è®Š"
-#: builtin/rebase.c:1067
+#: builtin/rebase.c:1095
msgid "edit the todo list during an interactive rebase"
msgstr "在互動å¼é‡å®šåŸºåº•ä¸­ç·¨è¼¯å¾…辦列表"
-#: builtin/rebase.c:1070
+#: builtin/rebase.c:1098
msgid "show the patch file being applied or merged"
msgstr "顯示正在套用或åˆä½µçš„修補檔案"
-#: builtin/rebase.c:1073
+#: builtin/rebase.c:1101
msgid "use apply strategies to rebase"
msgstr "使用套用策略進行é‡å®šåŸºåº•"
-#: builtin/rebase.c:1077
+#: builtin/rebase.c:1105
msgid "use merging strategies to rebase"
msgstr "使用åˆä½µç­–略進行é‡å®šåŸºåº•"
-#: builtin/rebase.c:1081
+#: builtin/rebase.c:1109
msgid "let the user edit the list of commits to rebase"
msgstr "讓使用者編輯è¦é‡å®šåŸºåº•çš„æ交列表"
-#: builtin/rebase.c:1085
+#: builtin/rebase.c:1113
msgid "(DEPRECATED) try to recreate merges instead of ignoring them"
msgstr "(已棄用)嘗試é‡å»ºåˆä½µæ交而éžå¿½ç•¥å®ƒå€‘"
-#: builtin/rebase.c:1090
+#: builtin/rebase.c:1118
msgid "how to handle commits that become empty"
msgstr "處ç†ç©ºç™½æ交的方å¼"
-#: builtin/rebase.c:1093
+#: builtin/rebase.c:1121
msgid "keep commits which start empty"
msgstr "ä¿ç•™é–‹é ­æ˜¯ç©ºç™½çš„æ交"
-#: builtin/rebase.c:1097
+#: builtin/rebase.c:1125
msgid "move commits that begin with squash!/fixup! under -i"
msgstr "在 -i 互動模å¼ä¸‹ï¼Œç§»å‹•ä»¥ squash!/fixup! é–‹é ­çš„æ交"
-#: builtin/rebase.c:1104
+#: builtin/rebase.c:1132
msgid "add exec lines after each commit of the editable list"
msgstr "å¯ç·¨è¼¯åˆ—表的æ¯ä¸€å€‹æ交下é¢å¢žåŠ ä¸€è¡Œ exec"
-#: builtin/rebase.c:1108
+#: builtin/rebase.c:1136
msgid "allow rebasing commits with empty messages"
msgstr "å…許é‡å°ç©ºæ交說明的æ交é‡å®šåŸºåº•"
-#: builtin/rebase.c:1112
+#: builtin/rebase.c:1140
msgid "try to rebase merges instead of skipping them"
msgstr "嘗試å°åˆä½µæ交é‡å®šåŸºåº•è€Œä¸æ˜¯å¿½ç•¥å®ƒå€‘"
-#: builtin/rebase.c:1115
+#: builtin/rebase.c:1143
msgid "use 'merge-base --fork-point' to refine upstream"
msgstr "使用 'merge-base --fork-point' 來最佳化上游"
-#: builtin/rebase.c:1117
+#: builtin/rebase.c:1145
msgid "use the given merge strategy"
msgstr "使用æ供的åˆä½µç­–ç•¥"
-#: builtin/rebase.c:1119 builtin/revert.c:115
+#: builtin/rebase.c:1147 builtin/revert.c:115
msgid "option"
msgstr "é¸é …"
-#: builtin/rebase.c:1120
+#: builtin/rebase.c:1148
msgid "pass the argument through to the merge strategy"
msgstr "å°‡åƒæ•¸å‚³éžçµ¦åˆä½µç­–ç•¥"
-#: builtin/rebase.c:1123
+#: builtin/rebase.c:1151
msgid "rebase all reachable commits up to the root(s)"
msgstr "將所有å¯ä»¥å–å¾—çš„æ交é‡å®šåŸºåº•åˆ°æ ¹æ交"
-#: builtin/rebase.c:1126
+#: builtin/rebase.c:1154
msgid "automatically re-schedule any `exec` that fails"
msgstr "自動é‡æ–°å®‰æŽ’任何失敗的 `exec`"
-#: builtin/rebase.c:1128
+#: builtin/rebase.c:1156
msgid "apply all changes, even those already present upstream"
msgstr "å³ä½¿å·²æ供上游,ä»å¥—用所有變更"
-#: builtin/rebase.c:1149
+#: builtin/rebase.c:1177
msgid "It looks like 'git am' is in progress. Cannot rebase."
msgstr "看起來 'git am' 正在執行中。無法é‡å®šåŸºåº•ã€‚"
-#: builtin/rebase.c:1180
+#: builtin/rebase.c:1208
msgid "--preserve-merges was replaced by --rebase-merges"
msgstr "--preserve-merges 已經被 --rebase-merges å–代"
-#: builtin/rebase.c:1202
+#: builtin/rebase.c:1230
msgid "No rebase in progress?"
msgstr "沒有正在進行的é‡å®šåŸºåº•ï¼Ÿ"
-#: builtin/rebase.c:1206
+#: builtin/rebase.c:1234
msgid "The --edit-todo action can only be used during interactive rebase."
msgstr "動作 --edit-todo åªèƒ½ç”¨åœ¨äº’å‹•å¼é‡å®šåŸºåº•éŽç¨‹ä¸­ã€‚"
-#: builtin/rebase.c:1229 t/helper/test-fast-rebase.c:122
+#: builtin/rebase.c:1257 t/helper/test-fast-rebase.c:122
msgid "Cannot read HEAD"
msgstr "ä¸èƒ½è®€å– HEAD"
-#: builtin/rebase.c:1241
+#: builtin/rebase.c:1269
msgid ""
"You must edit all merge conflicts and then\n"
"mark them as resolved using git add"
@@ -19867,16 +20327,16 @@ msgstr ""
"您必須編輯所有的åˆä½µè¡çªï¼Œç„¶å¾Œé€éŽ git add\n"
"指令將它們標記為已解決"
-#: builtin/rebase.c:1260
+#: builtin/rebase.c:1287
msgid "could not discard worktree changes"
msgstr "無法æ¨æ£„工作å€è®Šæ›´"
-#: builtin/rebase.c:1279
+#: builtin/rebase.c:1308
#, c-format
msgid "could not move back to %s"
msgstr "無法移回 %s"
-#: builtin/rebase.c:1325
+#: builtin/rebase.c:1354
#, c-format
msgid ""
"It seems that there is already a %s directory, and\n"
@@ -19895,122 +20355,117 @@ msgstr ""
"\t%s\n"
"然後å†é‡æ–°åŸ·è¡Œã€‚ 為é¿å…éºå¤±é‡è¦è³‡æ–™ï¼Œæˆ‘已經åœæ­¢ç›®å‰å‹•ä½œã€‚\n"
-#: builtin/rebase.c:1353
+#: builtin/rebase.c:1382
msgid "switch `C' expects a numerical value"
msgstr "開關 `C' 期望一個數字值"
-#: builtin/rebase.c:1395
+#: builtin/rebase.c:1424
#, c-format
msgid "Unknown mode: %s"
msgstr "未知模å¼ï¼š%s"
-#: builtin/rebase.c:1434
+#: builtin/rebase.c:1463
msgid "--strategy requires --merge or --interactive"
msgstr "--strategy éœ€è¦ --merge 或 --interactive"
-#: builtin/rebase.c:1463
+#: builtin/rebase.c:1492
msgid "apply options and merge options cannot be used together"
msgstr "套用é¸é …與åˆä½µé¸é …ä¸å¾—åŒæ™‚使用"
-#: builtin/rebase.c:1476
+#: builtin/rebase.c:1505
#, c-format
msgid "Unknown rebase backend: %s"
msgstr "未知 rebase 後端:%s"
-#: builtin/rebase.c:1505
+#: builtin/rebase.c:1534
msgid "--reschedule-failed-exec requires --exec or --interactive"
msgstr "--reschedule-failed-exec éœ€è¦ --exec 或 --interactive"
-#: builtin/rebase.c:1536
+#: builtin/rebase.c:1565
#, c-format
msgid "invalid upstream '%s'"
msgstr "無效的上游 '%s'"
-#: builtin/rebase.c:1542
+#: builtin/rebase.c:1571
msgid "Could not create new root commit"
msgstr "ä¸èƒ½å»ºç«‹æ–°çš„æ ¹æ交"
-#: builtin/rebase.c:1568
+#: builtin/rebase.c:1597
#, c-format
msgid "'%s': need exactly one merge base with branch"
msgstr "'%s':åªéœ€è¦èˆ‡åˆ†æ”¯çš„一個åˆä½µåŸºç¤Ž"
-#: builtin/rebase.c:1571
+#: builtin/rebase.c:1600
#, c-format
msgid "'%s': need exactly one merge base"
msgstr "'%s':åªéœ€è¦ä¸€å€‹åˆä½µåŸºç¤Ž"
-#: builtin/rebase.c:1580
+#: builtin/rebase.c:1609
#, c-format
msgid "Does not point to a valid commit '%s'"
msgstr "沒有指å‘一個有效的æ交 '%s'"
-#: builtin/rebase.c:1607
+#: builtin/rebase.c:1636
#, c-format
msgid "no such branch/commit '%s'"
msgstr "沒有此分支/æ交 '%s'"
-#: builtin/rebase.c:1618 builtin/submodule--helper.c:39
-#: builtin/submodule--helper.c:2659
+#: builtin/rebase.c:1647 builtin/submodule--helper.c:43
+#: builtin/submodule--helper.c:2477
#, c-format
msgid "No such ref: %s"
msgstr "沒有這樣的引用:%s"
-#: builtin/rebase.c:1629
+#: builtin/rebase.c:1658
msgid "Could not resolve HEAD to a revision"
msgstr "無法將 HEAD 解æžç‚ºä¸€å€‹ç‰ˆæœ¬"
-#: builtin/rebase.c:1650
+#: builtin/rebase.c:1679
msgid "Please commit or stash them."
msgstr "è«‹æ交或儲è—修改。"
-#: builtin/rebase.c:1686
-#, c-format
-msgid "could not switch to %s"
-msgstr "無法切æ›åˆ° %s"
-
-#: builtin/rebase.c:1697
+#: builtin/rebase.c:1714
msgid "HEAD is up to date."
msgstr "HEAD 是最新的。"
-#: builtin/rebase.c:1699
+#: builtin/rebase.c:1716
#, c-format
msgid "Current branch %s is up to date.\n"
msgstr "ç›®å‰åˆ†æ”¯ %s 是最新的。\n"
-#: builtin/rebase.c:1707
+#: builtin/rebase.c:1724
msgid "HEAD is up to date, rebase forced."
msgstr "HEAD 是最新的,強制é‡å®šåŸºåº•ã€‚"
-#: builtin/rebase.c:1709
+#: builtin/rebase.c:1726
#, c-format
msgid "Current branch %s is up to date, rebase forced.\n"
msgstr "ç›®å‰åˆ†æ”¯ %s 是最新的,強制é‡å®šåŸºåº•ã€‚\n"
-#: builtin/rebase.c:1717
+#: builtin/rebase.c:1734
msgid "The pre-rebase hook refused to rebase."
msgstr "pre-rebase 掛鉤拒絕了é‡å®šåŸºåº•å‹•ä½œã€‚"
-#: builtin/rebase.c:1724
+#: builtin/rebase.c:1741
#, c-format
msgid "Changes to %s:\n"
msgstr "到 %s 的變更:\n"
-#: builtin/rebase.c:1727
+#: builtin/rebase.c:1744
#, c-format
msgid "Changes from %s to %s:\n"
msgstr "從 %s 到 %s 的變更:\n"
-#: builtin/rebase.c:1752
+#: builtin/rebase.c:1769
#, c-format
msgid "First, rewinding head to replay your work on top of it...\n"
msgstr "首先,還原開頭指標以便在其上é‡æ”¾æ‚¨çš„工作...\n"
-#: builtin/rebase.c:1761
+#: builtin/rebase.c:1781
msgid "Could not detach HEAD"
msgstr "無法分離開頭指標"
-#: builtin/rebase.c:1770
+#: builtin/rebase.c:1790
#, c-format
msgid "Fast-forwarded %s to %s.\n"
msgstr "快轉 %s 到 %s。\n"
@@ -20019,7 +20474,7 @@ msgstr "快轉 %s 到 %s。\n"
msgid "git receive-pack <git-dir>"
msgstr "git receive-pack <版本庫目錄>"
-#: builtin/receive-pack.c:1275
+#: builtin/receive-pack.c:1263
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"
@@ -20045,7 +20500,7 @@ msgstr ""
"è‹¥è¦å°éŽ–此訊æ¯ä¸”ä¿æŒé è¨­è¡Œç‚ºï¼Œè¨­å®š 'receive.denyCurrentBranch'\n"
"設定變數為 'refuse'。"
-#: builtin/receive-pack.c:1295
+#: builtin/receive-pack.c:1283
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"
@@ -20064,79 +20519,110 @@ msgstr ""
"\n"
"è‹¥è¦å°éŽ–此訊æ¯ï¼Œæ‚¨å¯ä»¥è¨­å®šå®ƒç‚º 'refuse'。"
-#: builtin/receive-pack.c:2474
+#: builtin/receive-pack.c:2476
msgid "quiet"
msgstr "éœé»˜æ¨¡å¼"
-#: builtin/receive-pack.c:2489
+#: builtin/receive-pack.c:2491
msgid "you must specify a directory"
msgstr "您必須指定目錄"
-#: builtin/reflog.c:17
+#: builtin/reflog.c:9
+msgid "git reflog [show] [<log-options>] [<ref>]"
+msgstr "git reflog [show] [<log-options>] [<ref>]"
+
+#: builtin/reflog.c:12
msgid ""
-"git reflog expire [--expire=<time>] [--expire-unreachable=<time>] [--"
-"rewrite] [--updateref] [--stale-fix] [--dry-run | -n] [--verbose] [--all] "
-"<refs>..."
+"git reflog expire [--expire=<time>] [--expire-unreachable=<time>]\n"
+" [--rewrite] [--updateref] [--stale-fix]\n"
+" [--dry-run | -n] [--verbose] [--all [--single-worktree] | "
+"<refs>...]"
msgstr ""
-"git reflog expire [--expire=<時間>] [--expire-unreachable=<時間>] [--"
-"rewrite] [--updateref] [--stale-fix] [--dry-run | -n] [--verbose] [--all] <引"
-"用>..."
+"git reflog expire [--expire=<time>] [--expire-unreachable=<time>]\n"
+" [--rewrite] [--updateref] [--stale-fix]\n"
+" [--dry-run | -n] [--verbose] [--all [--single-worktree] | "
+"<refs>...]"
-#: builtin/reflog.c:22
+#: builtin/reflog.c:17
msgid ""
-"git reflog delete [--rewrite] [--updateref] [--dry-run | -n] [--verbose] "
-"<refs>..."
+"git reflog delete [--rewrite] [--updateref]\n"
+" [--dry-run | -n] [--verbose] <ref>@{<specifier>}..."
msgstr ""
-"git reflog delete [--rewrite] [--updateref] [--dry-run | -n] [--verbose] <引"
-"用>..."
+"git reflog delete [--rewrite] [--updateref]\n"
+" [--dry-run | -n] [--verbose] <ref>@{<specifier>}..."
-#: builtin/reflog.c:25
+#: builtin/reflog.c:21
msgid "git reflog exists <ref>"
msgstr "git reflog exists <引用>"
-#: builtin/reflog.c:585 builtin/reflog.c:590
+#: builtin/reflog.c:197 builtin/reflog.c:211
#, c-format
-msgid "'%s' is not a valid timestamp"
-msgstr "'%s' ä¸æ˜¯ä¸€å€‹æœ‰æ•ˆçš„時間戳"
+msgid "invalid timestamp '%s' given to '--%s'"
+msgstr "傳入「--%sã€çš„時間戳「%sã€ç„¡æ•ˆ"
+
+#: builtin/reflog.c:240 builtin/reflog.c:359
+msgid "do not actually prune any entries"
+msgstr "ä¸å¯¦éš›å‰ªé™¤ä»»ä½•é …ç›®"
+
+#: builtin/reflog.c:243 builtin/reflog.c:362
+msgid ""
+"rewrite the old SHA1 with the new SHA1 of the entry that now precedes it"
+msgstr "將舊的 SHA1 é‡å¯«ç‚ºç¾åœ¨æ¯”它早的新 SHA1"
+
+#: builtin/reflog.c:246 builtin/reflog.c:365
+msgid "update the reference to the value of the top reflog entry"
+msgstr "更新引用至首個引用日誌項目的值"
+
+#: builtin/reflog.c:248 builtin/reflog.c:367
+msgid "print extra information on screen"
+msgstr "在螢幕上輸出é¡å¤–資訊"
+
+#: builtin/reflog.c:249 builtin/reflog.c:253
+msgid "timestamp"
+msgstr "時間戳"
+
+#: builtin/reflog.c:250
+msgid "prune entries older than the specified time"
+msgstr "剪除舊於指定時間的項目"
+
+#: builtin/reflog.c:254
+msgid ""
+"prune entries older than <time> that are not reachable from the current tip "
+"of the branch"
+msgstr "剪除早於 <time> 且ä¸èƒ½å¾žåˆ†æ”¯ç›®å‰é–‹é ­åˆ°é”çš„é …ç›®"
-#: builtin/reflog.c:631
+#: builtin/reflog.c:258
+msgid "prune any reflog entries that point to broken commits"
+msgstr "剪除任何指å‘æ壞æ交的引用日誌項目"
+
+#: builtin/reflog.c:259
+msgid "process the reflogs of all references"
+msgstr "處ç†æ‰€æœ‰å¼•ç”¨çš„ reflog"
+
+#: builtin/reflog.c:261
+msgid "limits processing to reflogs from the current worktree only"
+msgstr "é™åˆ¶åªè™•ç†ç›®å‰å·¥ä½œå€çš„引用日誌"
+
+#: builtin/reflog.c:294
#, c-format
msgid "Marking reachable objects..."
msgstr "正在標記å¯ä»¥å–得物件..."
-#: builtin/reflog.c:675
+#: builtin/reflog.c:338
#, c-format
msgid "%s points nowhere!"
msgstr "%s 指å‘ä¸å­˜åœ¨ï¼"
-#: builtin/reflog.c:731
+#: builtin/reflog.c:374
msgid "no reflog specified to delete"
msgstr "未指定è¦åˆªé™¤çš„引用日誌"
-#: builtin/reflog.c:742
-#, c-format
-msgid "not a reflog: %s"
-msgstr "ä¸æ˜¯ä¸€å€‹å¼•ç”¨æ—¥èªŒï¼š%s"
-
-#: builtin/reflog.c:747
-#, c-format
-msgid "no reflog for '%s'"
-msgstr "沒有 '%s' 的引用日誌"
-
-#: builtin/reflog.c:794
+#: builtin/reflog.c:396
#, c-format
msgid "invalid ref format: %s"
msgstr "無效的引用格å¼ï¼š%s"
-#: builtin/reflog.c:803
-msgid "git reflog [ show | expire | delete | exists ]"
-msgstr "git reflog [ show | expire | delete | exists ]"
-
-#: builtin/remote.c:17
-msgid "git remote [-v | --verbose]"
-msgstr "git remote [-v | --verbose]"
-
-#: builtin/remote.c:18
+#: builtin/remote.c:19
msgid ""
"git remote add [-t <branch>] [-m <master>] [-f] [--tags | --no-tags] [--"
"mirror=<fetch|push>] <name> <url>"
@@ -20144,86 +20630,86 @@ msgstr ""
"git remote add [-t <分支>] [-m <master>] [-f] [--tags | --no-tags] [--"
"mirror=<fetch|push>] <å稱> <ä½å€>"
-#: builtin/remote.c:19 builtin/remote.c:39
-msgid "git remote rename <old> <new>"
-msgstr "git remote rename <舊å稱> <æ–°å稱>"
+#: builtin/remote.c:20 builtin/remote.c:40
+msgid "git remote rename [--[no-]progress] <old> <new>"
+msgstr "git remote rename [--[no-]progress] <old> <new>"
-#: builtin/remote.c:20 builtin/remote.c:44
+#: builtin/remote.c:21 builtin/remote.c:45
msgid "git remote remove <name>"
msgstr "git remote remove <å稱>"
-#: builtin/remote.c:21 builtin/remote.c:49
+#: builtin/remote.c:22 builtin/remote.c:50
msgid "git remote set-head <name> (-a | --auto | -d | --delete | <branch>)"
msgstr "git remote set-head <å稱> (-a | --auto | -d | --delete | <分支>)"
-#: builtin/remote.c:22
+#: builtin/remote.c:23
msgid "git remote [-v | --verbose] show [-n] <name>"
msgstr "git remote [-v | --verbose] show [-n] <å稱>"
-#: builtin/remote.c:23
+#: builtin/remote.c:24
msgid "git remote prune [-n | --dry-run] <name>"
msgstr "git remote prune [-n | --dry-run] <å稱>"
-#: builtin/remote.c:24
+#: builtin/remote.c:25
msgid ""
"git remote [-v | --verbose] update [-p | --prune] [(<group> | <remote>)...]"
msgstr "git remote [-v | --verbose] update [-p | --prune] [(<組> | <é ç«¯>)...]"
-#: builtin/remote.c:25
+#: builtin/remote.c:26
msgid "git remote set-branches [--add] <name> <branch>..."
msgstr "git remote set-branches [--add] <å稱> <分支>..."
-#: builtin/remote.c:26 builtin/remote.c:75
+#: builtin/remote.c:27 builtin/remote.c:76
msgid "git remote get-url [--push] [--all] <name>"
msgstr "git remote get-url [--push] [--all] <å稱>"
-#: builtin/remote.c:27 builtin/remote.c:80
+#: builtin/remote.c:28 builtin/remote.c:81
msgid "git remote set-url [--push] <name> <newurl> [<oldurl>]"
msgstr "git remote set-url [--push] <å稱> <æ–°çš„ä½å€> [<舊的ä½å€>]"
-#: builtin/remote.c:28 builtin/remote.c:81
+#: builtin/remote.c:29 builtin/remote.c:82
msgid "git remote set-url --add <name> <newurl>"
msgstr "git remote set-url --add <å稱> <æ–°çš„ä½å€>"
-#: builtin/remote.c:29 builtin/remote.c:82
+#: builtin/remote.c:30 builtin/remote.c:83
msgid "git remote set-url --delete <name> <url>"
msgstr "git remote set-url --delete <å稱> <ä½å€>"
-#: builtin/remote.c:34
+#: builtin/remote.c:35
msgid "git remote add [<options>] <name> <url>"
msgstr "git remote add [<é¸é …>] <å稱> <ä½å€>"
-#: builtin/remote.c:54
+#: builtin/remote.c:55
msgid "git remote set-branches <name> <branch>..."
msgstr "git remote set-branches <å稱> <分支>..."
-#: builtin/remote.c:55
+#: builtin/remote.c:56
msgid "git remote set-branches --add <name> <branch>..."
msgstr "git remote set-branches --add <å稱> <分支>..."
-#: builtin/remote.c:60
+#: builtin/remote.c:61
msgid "git remote show [<options>] <name>"
msgstr "git remote show [<é¸é …>] <å稱>"
-#: builtin/remote.c:65
+#: builtin/remote.c:66
msgid "git remote prune [<options>] <name>"
msgstr "git remote prune [<é¸é …>] <å稱>"
-#: builtin/remote.c:70
+#: builtin/remote.c:71
msgid "git remote update [<options>] [<group> | <remote>]..."
msgstr "git remote update [<é¸é …>] [<組> | <é ç«¯>]..."
-#: builtin/remote.c:99
+#: builtin/remote.c:100
#, c-format
msgid "Updating %s"
msgstr "更新 %s 中"
-#: builtin/remote.c:101
+#: builtin/remote.c:102
#, c-format
msgid "Could not fetch %s"
msgstr "ä¸èƒ½å–å¾— %s"
-#: builtin/remote.c:131
+#: builtin/remote.c:132
msgid ""
"--mirror is dangerous and deprecated; please\n"
"\t use --mirror=fetch or --mirror=push instead"
@@ -20231,77 +20717,77 @@ msgstr ""
"--mirror é¸é …å±éšªä¸”éŽæ™‚,請使用 --mirror=fetch\n"
"\t 或 --mirror=push"
-#: builtin/remote.c:148
+#: builtin/remote.c:149
#, c-format
msgid "unknown mirror argument: %s"
msgstr "未知的é¡åƒåƒæ•¸ï¼š%s"
-#: builtin/remote.c:164
+#: builtin/remote.c:165
msgid "fetch the remote branches"
msgstr "抓å–é ç«¯çš„分支"
-#: builtin/remote.c:166
+#: builtin/remote.c:167
msgid "import all tags and associated objects when fetching"
msgstr "抓å–時匯入所有的標籤和關è¯ç‰©ä»¶"
-#: builtin/remote.c:169
+#: builtin/remote.c:170
msgid "or do not fetch any tag at all (--no-tags)"
msgstr "或ä¸æŠ“å–任何標籤(--no-tags)"
-#: builtin/remote.c:171
+#: builtin/remote.c:172
msgid "branch(es) to track"
msgstr "追蹤的分支"
-#: builtin/remote.c:172
+#: builtin/remote.c:173
msgid "master branch"
msgstr "master 分支"
-#: builtin/remote.c:174
+#: builtin/remote.c:175
msgid "set up remote as a mirror to push to or fetch from"
msgstr "把é ç«¯è¨­å®šç‚ºç”¨ä»¥æŽ¨é€æˆ–抓å–çš„é¡åƒ"
-#: builtin/remote.c:186
+#: builtin/remote.c:187
msgid "specifying a master branch makes no sense with --mirror"
msgstr "指定一個 master 分支並使用 --mirror é¸é …沒有æ„義"
-#: builtin/remote.c:188
+#: builtin/remote.c:189
msgid "specifying branches to track makes sense only with fetch mirrors"
msgstr "指定è¦è¿½è¹¤çš„分支åªåœ¨èˆ‡å–å¾—é¡åƒåŒæ™‚使用æ‰æœ‰æ„義"
-#: builtin/remote.c:195 builtin/remote.c:705
+#: builtin/remote.c:196 builtin/remote.c:716
#, c-format
msgid "remote %s already exists."
msgstr "é ç«¯ %s 已經存在。"
-#: builtin/remote.c:240
+#: builtin/remote.c:241
#, c-format
msgid "Could not setup master '%s'"
msgstr "無法設定 master '%s'"
-#: builtin/remote.c:322
+#: builtin/remote.c:323
#, c-format
msgid "unhandled branch.%s.rebase=%s; assuming 'true'"
msgstr "branch.%s.rebase=%s 未處ç†ã€‚å‡è¨­æˆ 'true'"
-#: builtin/remote.c:366
+#: builtin/remote.c:367
#, c-format
msgid "Could not get fetch map for refspec %s"
msgstr "無法得到引用è¦æ ¼ %s çš„å–得列表"
-#: builtin/remote.c:460 builtin/remote.c:468
+#: builtin/remote.c:461 builtin/remote.c:469
msgid "(matching)"
msgstr "(符åˆï¼‰"
-#: builtin/remote.c:472
+#: builtin/remote.c:473
msgid "(delete)"
msgstr "(刪除)"
-#: builtin/remote.c:660
+#: builtin/remote.c:664
#, c-format
msgid "could not set '%s'"
msgstr "無法設定 '%s'"
-#: builtin/remote.c:665
+#: builtin/remote.c:669
#, c-format
msgid ""
"The %s configuration remote.pushDefault in:\n"
@@ -20312,17 +20798,17 @@ msgstr ""
"\t%s:%d\n"
"ç¾å‘½åæˆä¸å­˜åœ¨çš„é ç«¯åˆ†æ”¯ '%s'"
-#: builtin/remote.c:696 builtin/remote.c:841 builtin/remote.c:948
+#: builtin/remote.c:707 builtin/remote.c:866 builtin/remote.c:973
#, c-format
msgid "No such remote: '%s'"
msgstr "沒有此é ç«¯ç‰ˆæœ¬åº«ï¼š'%s'"
-#: builtin/remote.c:715
+#: builtin/remote.c:726
#, c-format
msgid "Could not rename config section '%s' to '%s'"
msgstr "ä¸èƒ½é‡æ–°å‘½å設定å°ç¯€ '%s' 到 '%s'"
-#: builtin/remote.c:735
+#: builtin/remote.c:746
#, c-format
msgid ""
"Not updating non-default fetch refspec\n"
@@ -20333,17 +20819,21 @@ msgstr ""
"\t%s\n"
"\t如果必è¦è«‹æ‰‹å‹•æ›´æ–°è¨­å®šã€‚"
-#: builtin/remote.c:775
+#: builtin/remote.c:783
+msgid "Renaming remote references"
+msgstr "正在é‡æ–°å‘½åé ç«¯å¼•ç”¨"
+
+#: builtin/remote.c:794
#, c-format
msgid "deleting '%s' failed"
msgstr "刪除 '%s' 失敗"
-#: builtin/remote.c:809
+#: builtin/remote.c:832
#, c-format
msgid "creating '%s' failed"
msgstr "建立 '%s' 失敗"
-#: builtin/remote.c:887
+#: builtin/remote.c:912
msgid ""
"Note: A branch outside the refs/remotes/ hierarchy was not removed;\n"
"to delete it, use:"
@@ -20352,118 +20842,118 @@ msgid_plural ""
"to delete them, use:"
msgstr[0] "注æ„:ref/remotes 層級之外的一個分支未被移除。è¦åˆªé™¤å®ƒï¼Œä½¿ç”¨ï¼š"
-#: builtin/remote.c:901
+#: builtin/remote.c:926
#, c-format
msgid "Could not remove config section '%s'"
msgstr "ä¸èƒ½ç§»é™¤è¨­å®šå°ç¯€ '%s'"
-#: builtin/remote.c:1009
+#: builtin/remote.c:1034
#, c-format
msgid " new (next fetch will store in remotes/%s)"
msgstr " 新的(下一次å–得將儲存於 remotes/%s)"
-#: builtin/remote.c:1012
+#: builtin/remote.c:1037
msgid " tracked"
msgstr " 已追蹤"
-#: builtin/remote.c:1014
+#: builtin/remote.c:1039
msgid " stale (use 'git remote prune' to remove)"
-msgstr " éŽæ™‚(使用 'git remote prune' 來移除)"
+msgstr " éŽæ™‚(使用 'git remote prune' 移除)"
-#: builtin/remote.c:1016
+#: builtin/remote.c:1041
msgid " ???"
msgstr " ???"
-#: builtin/remote.c:1057
+#: builtin/remote.c:1082
#, c-format
msgid "invalid branch.%s.merge; cannot rebase onto > 1 branch"
msgstr "無效的 branch.%s.merge,ä¸èƒ½é‡å®šåŸºåº•åˆ°ä¸€å€‹ä»¥ä¸Šçš„分支"
-#: builtin/remote.c:1066
+#: builtin/remote.c:1091
#, c-format
msgid "rebases interactively onto remote %s"
msgstr "互動å¼é‡å®šåŸºåº•åˆ°é ç«¯ %s"
-#: builtin/remote.c:1068
+#: builtin/remote.c:1093
#, c-format
msgid "rebases interactively (with merges) onto remote %s"
msgstr "互動å¼é‡å®šåŸºåº•ï¼ˆå«åˆä½µæ交)到é ç«¯ %s"
-#: builtin/remote.c:1071
+#: builtin/remote.c:1096
#, c-format
msgid "rebases onto remote %s"
msgstr "é‡å®šåŸºåº•åˆ°é ç«¯ %s"
-#: builtin/remote.c:1075
+#: builtin/remote.c:1100
#, c-format
msgid " merges with remote %s"
msgstr " 與é ç«¯ %s åˆä½µ"
-#: builtin/remote.c:1078
+#: builtin/remote.c:1103
#, c-format
msgid "merges with remote %s"
msgstr "與é ç«¯ %s åˆä½µ"
-#: builtin/remote.c:1081
+#: builtin/remote.c:1106
#, c-format
msgid "%-*s and with remote %s\n"
msgstr "%-*s 以åŠå’Œé ç«¯ %s\n"
-#: builtin/remote.c:1124
+#: builtin/remote.c:1149
msgid "create"
msgstr "建立"
-#: builtin/remote.c:1127
+#: builtin/remote.c:1152
msgid "delete"
msgstr "刪除"
-#: builtin/remote.c:1131
+#: builtin/remote.c:1156
msgid "up to date"
msgstr "最新"
-#: builtin/remote.c:1134
+#: builtin/remote.c:1159
msgid "fast-forwardable"
msgstr "å¯å¿«è½‰"
-#: builtin/remote.c:1137
+#: builtin/remote.c:1162
msgid "local out of date"
msgstr "本機已éŽæ™‚"
-#: builtin/remote.c:1144
+#: builtin/remote.c:1169
#, c-format
msgid " %-*s forces to %-*s (%s)"
msgstr " %-*s 強制推é€è‡³ %-*s (%s)"
-#: builtin/remote.c:1147
+#: builtin/remote.c:1172
#, c-format
msgid " %-*s pushes to %-*s (%s)"
msgstr " %-*s 推é€è‡³ %-*s (%s)"
-#: builtin/remote.c:1151
+#: builtin/remote.c:1176
#, c-format
msgid " %-*s forces to %s"
msgstr " %-*s 強制推é€è‡³ %s"
-#: builtin/remote.c:1154
+#: builtin/remote.c:1179
#, c-format
msgid " %-*s pushes to %s"
msgstr " %-*s 推é€è‡³ %s"
-#: builtin/remote.c:1222
+#: builtin/remote.c:1247
msgid "do not query remotes"
msgstr "ä¸æŸ¥è©¢é ç«¯"
-#: builtin/remote.c:1243
+#: builtin/remote.c:1268
#, c-format
msgid "* remote %s"
msgstr "* é ç«¯ %s"
-#: builtin/remote.c:1244
+#: builtin/remote.c:1269
#, c-format
msgid " Fetch URL: %s"
msgstr " å–å¾—ä½å€ï¼š%s"
-#: builtin/remote.c:1245 builtin/remote.c:1261 builtin/remote.c:1398
+#: builtin/remote.c:1270 builtin/remote.c:1286 builtin/remote.c:1423
msgid "(no URL)"
msgstr "(ç„¡ URL)"
@@ -20471,189 +20961,189 @@ msgstr "(ç„¡ URL)"
#. with the one in " Fetch URL: %s"
#. translation.
#.
-#: builtin/remote.c:1259 builtin/remote.c:1261
+#: builtin/remote.c:1284 builtin/remote.c:1286
#, c-format
msgid " Push URL: %s"
msgstr " 推é€ä½å€ï¼š%s"
-#: builtin/remote.c:1263 builtin/remote.c:1265 builtin/remote.c:1267
+#: builtin/remote.c:1288 builtin/remote.c:1290 builtin/remote.c:1292
#, c-format
msgid " HEAD branch: %s"
msgstr " HEAD 分支:%s"
# 譯者:中文字串拼接,å¯åˆªé™¤å‰å°Žç©ºæ ¼
-#: builtin/remote.c:1263
+#: builtin/remote.c:1288
msgid "(not queried)"
msgstr "(未查詢)"
-#: builtin/remote.c:1265
+#: builtin/remote.c:1290
msgid "(unknown)"
msgstr "(未知)"
-#: builtin/remote.c:1269
+#: builtin/remote.c:1294
#, c-format
msgid ""
" HEAD branch (remote HEAD is ambiguous, may be one of the following):\n"
msgstr " HEAD 分支(é ç«¯ HEAD 模糊,å¯èƒ½æ˜¯ä¸‹åˆ—中的一個):\n"
-#: builtin/remote.c:1281
+#: builtin/remote.c:1306
#, c-format
msgid " Remote branch:%s"
msgid_plural " Remote branches:%s"
msgstr[0] " é ç«¯åˆ†æ”¯ï¼š%s"
# 譯者:中文字串拼接,å¯åˆªé™¤å‰å°Žç©ºæ ¼
-#: builtin/remote.c:1284 builtin/remote.c:1310
+#: builtin/remote.c:1309 builtin/remote.c:1335
msgid " (status not queried)"
msgstr " (狀態未查詢)"
-#: builtin/remote.c:1293
+#: builtin/remote.c:1318
msgid " Local branch configured for 'git pull':"
msgid_plural " Local branches configured for 'git pull':"
msgstr[0] " 為 'git pull' 設定的本機分支:"
-#: builtin/remote.c:1301
+#: builtin/remote.c:1326
msgid " Local refs will be mirrored by 'git push'"
msgstr " 本機引用將在 'git push' 時被é¡åƒ"
-#: builtin/remote.c:1307
+#: builtin/remote.c:1332
#, c-format
msgid " Local ref configured for 'git push'%s:"
msgid_plural " Local refs configured for 'git push'%s:"
msgstr[0] " 為 'git push' 設定的本機引用%s:"
-#: builtin/remote.c:1328
+#: builtin/remote.c:1353
msgid "set refs/remotes/<name>/HEAD according to remote"
msgstr "根據é ç«¯è¨­å®š refs/remotes/<å稱>/HEAD"
-#: builtin/remote.c:1330
+#: builtin/remote.c:1355
msgid "delete refs/remotes/<name>/HEAD"
msgstr "刪除 refs/remotes/<å稱>/HEAD"
-#: builtin/remote.c:1344
+#: builtin/remote.c:1369
msgid "Cannot determine remote HEAD"
msgstr "無法確定é ç«¯ HEAD"
-#: builtin/remote.c:1346
+#: builtin/remote.c:1371
msgid "Multiple remote HEAD branches. Please choose one explicitly with:"
msgstr "多個é ç«¯ HEAD 分支。請明確地é¸æ“‡ä¸€å€‹ç”¨æŒ‡ä»¤ï¼š"
-#: builtin/remote.c:1356
+#: builtin/remote.c:1381
#, c-format
msgid "Could not delete %s"
msgstr "無法刪除 %s"
-#: builtin/remote.c:1364
+#: builtin/remote.c:1389
#, c-format
msgid "Not a valid ref: %s"
msgstr "ä¸æ˜¯ä¸€å€‹æœ‰æ•ˆå¼•ç”¨ï¼š%s"
-#: builtin/remote.c:1366
+#: builtin/remote.c:1391
#, c-format
msgid "Could not setup %s"
msgstr "ä¸èƒ½è¨­å®š %s"
# 譯者:請維æŒå‰å°Žç©ºæ ¼
-#: builtin/remote.c:1384
+#: builtin/remote.c:1409
#, c-format
msgid " %s will become dangling!"
msgstr " %s å°‡æˆç‚ºæ‡¸ç©ºç‹€æ…‹ï¼"
# 譯者:請維æŒå‰å°Žç©ºæ ¼
-#: builtin/remote.c:1385
+#: builtin/remote.c:1410
#, c-format
msgid " %s has become dangling!"
msgstr " %s å·²æˆç‚ºæ‡¸ç©ºç‹€æ…‹ï¼"
-#: builtin/remote.c:1394
+#: builtin/remote.c:1419
#, c-format
msgid "Pruning %s"
msgstr "修剪 %s"
-#: builtin/remote.c:1395
+#: builtin/remote.c:1420
#, c-format
msgid "URL: %s"
msgstr "URL:%s"
-#: builtin/remote.c:1411
+#: builtin/remote.c:1436
#, c-format
msgid " * [would prune] %s"
-msgstr " * [將刪除] %s"
+msgstr " * [將剪除] %s"
-#: builtin/remote.c:1414
+#: builtin/remote.c:1439
#, c-format
msgid " * [pruned] %s"
-msgstr " * [已刪除] %s"
+msgstr " * [已剪除] %s"
-#: builtin/remote.c:1459
+#: builtin/remote.c:1484
msgid "prune remotes after fetching"
-msgstr "抓å–後清除é ç«¯"
+msgstr "抓å–後剪除é ç«¯"
-#: builtin/remote.c:1523 builtin/remote.c:1579 builtin/remote.c:1649
+#: builtin/remote.c:1548 builtin/remote.c:1604 builtin/remote.c:1674
#, c-format
msgid "No such remote '%s'"
msgstr "沒有此é ç«¯ '%s'"
-#: builtin/remote.c:1541
+#: builtin/remote.c:1566
msgid "add branch"
msgstr "新增分支"
-#: builtin/remote.c:1548
+#: builtin/remote.c:1573
msgid "no remote specified"
msgstr "未指定é ç«¯"
-#: builtin/remote.c:1565
+#: builtin/remote.c:1590
msgid "query push URLs rather than fetch URLs"
msgstr "æŸ¥è©¢æŽ¨é€ URL ä½å€ï¼Œè€Œéžå–å¾— URL ä½å€"
-#: builtin/remote.c:1567
+#: builtin/remote.c:1592
msgid "return all URLs"
msgstr "返回所有 URL ä½å€"
-#: builtin/remote.c:1597
+#: builtin/remote.c:1622
#, c-format
msgid "no URLs configured for remote '%s'"
msgstr "沒有給é ç«¯ç‰ˆæœ¬åº« '%s' 設定 URL"
-#: builtin/remote.c:1623
+#: builtin/remote.c:1648
msgid "manipulate push URLs"
msgstr "å‹•ä½œæŽ¨é€ URLS"
-#: builtin/remote.c:1625
+#: builtin/remote.c:1650
msgid "add URL"
msgstr "新增 URL"
-#: builtin/remote.c:1627
+#: builtin/remote.c:1652
msgid "delete URLs"
msgstr "刪除 URL"
-#: builtin/remote.c:1634
+#: builtin/remote.c:1659
msgid "--add --delete doesn't make sense"
msgstr "--add --delete ç„¡æ„義"
-#: builtin/remote.c:1675
+#: builtin/remote.c:1700
#, c-format
msgid "Invalid old URL pattern: %s"
msgstr "無效的舊 URL 符åˆç¯„本:%s"
-#: builtin/remote.c:1683
+#: builtin/remote.c:1708
#, c-format
msgid "No such URL found: %s"
msgstr "未找到此 URL:%s"
-#: builtin/remote.c:1685
+#: builtin/remote.c:1710
msgid "Will not delete all non-push URLs"
msgstr "å°‡ä¸æœƒåˆªé™¤æ‰€æœ‰éžæŽ¨é€ URL ä½å€"
-#: builtin/remote.c:1702
+#: builtin/remote.c:1727
msgid "be verbose; must be placed before a subcommand"
msgstr "詳細輸出;必須置於å­æŒ‡ä»¤ä¹‹å‰"
-#: builtin/repack.c:28
+#: builtin/repack.c:29
msgid "git repack [<options>]"
msgstr "git repack [<é¸é …>]"
-#: builtin/repack.c:33
+#: builtin/repack.c:34
msgid ""
"Incremental repacks are incompatible with bitmap indexes. Use\n"
"--no-write-bitmap-index or disable the pack.writebitmaps configuration."
@@ -20661,144 +21151,144 @@ msgstr ""
"å¢žé‡ repack å’Œ bitmap 索引ä¸ç›¸å®¹ã€‚ 使用 --no-write-bitmap-index\n"
"或åœç”¨ pack.writebitmaps 設定。"
-#: builtin/repack.c:201
+#: builtin/repack.c:206
msgid "could not start pack-objects to repack promisor objects"
msgstr "無法開始 pack-objects 來é‡æ–°æ‰“包 promisor 物件"
-#: builtin/repack.c:275 builtin/repack.c:820
+#: builtin/repack.c:280 builtin/repack.c:824
msgid "repack: Expecting full hex object ID lines only from pack-objects."
msgstr "repack:期望來自 pack-objects 的完整å六進ä½ç‰©ä»¶ ID。"
-#: builtin/repack.c:299
+#: builtin/repack.c:304
msgid "could not finish pack-objects to repack promisor objects"
msgstr "ç„¡æ³•å®Œæˆ pack-objects 來é‡æ–°æ‰“包 promisor 物件"
-#: builtin/repack.c:314
+#: builtin/repack.c:319
#, c-format
msgid "cannot open index for %s"
msgstr "無法開啟 %s 的索引"
-#: builtin/repack.c:373
+#: builtin/repack.c:378
#, c-format
msgid "pack %s too large to consider in geometric progression"
msgstr "%s 包太大,以致ä¸èƒ½åœ¨ç­‰æ¯”數列中考慮"
-#: builtin/repack.c:406 builtin/repack.c:413 builtin/repack.c:418
+#: builtin/repack.c:411 builtin/repack.c:418 builtin/repack.c:423
#, c-format
msgid "pack %s too large to roll up"
msgstr "%s 包太大,以致ä¸èƒ½ç¸®åˆ"
-#: builtin/repack.c:498
+#: builtin/repack.c:503
#, c-format
msgid "could not open tempfile %s for writing"
msgstr "無法開啟 '%s' 暫存檔進行寫入"
-#: builtin/repack.c:516
+#: builtin/repack.c:521
msgid "could not close refs snapshot tempfile"
msgstr "無法關閉 refs 的快照暫存檔"
-#: builtin/repack.c:630
+#: builtin/repack.c:634
msgid "pack everything in a single pack"
msgstr "所有內容打包到一個包檔案中"
-#: builtin/repack.c:632
+#: builtin/repack.c:636
msgid "same as -a, and turn unreachable objects loose"
msgstr "å’Œ -a 相åŒï¼Œä¸¦å°‡ç„¡æ³•å–得的物件設為鬆散物件"
-#: builtin/repack.c:635
+#: builtin/repack.c:639
msgid "remove redundant packs, and run git-prune-packed"
-msgstr "刪除多餘的包,執行 git-prune-packed"
+msgstr "刪除多餘的包,然後執行 git-prune-packed"
-#: builtin/repack.c:637
+#: builtin/repack.c:641
msgid "pass --no-reuse-delta to git-pack-objects"
msgstr "å‘ git-pack-objects 傳éžåƒæ•¸ --no-reuse-delta"
-#: builtin/repack.c:639
+#: builtin/repack.c:643
msgid "pass --no-reuse-object to git-pack-objects"
msgstr "å‘ git-pack-objects 傳éžåƒæ•¸ --no-reuse-object"
-#: builtin/repack.c:641
+#: builtin/repack.c:645
msgid "do not run git-update-server-info"
msgstr "ä¸åŸ·è¡Œ git-update-server-info"
-#: builtin/repack.c:644
+#: builtin/repack.c:648
msgid "pass --local to git-pack-objects"
msgstr "å‘ git-pack-objects 傳éžåƒæ•¸ --local"
-#: builtin/repack.c:646
+#: builtin/repack.c:650
msgid "write bitmap index"
msgstr "寫 bitmap 索引"
-#: builtin/repack.c:648
+#: builtin/repack.c:652
msgid "pass --delta-islands to git-pack-objects"
msgstr "å‘ git-pack-objects 傳éžåƒæ•¸ --delta-islands"
-#: builtin/repack.c:649
+#: builtin/repack.c:653
msgid "approxidate"
msgstr "近似日期"
-#: builtin/repack.c:650
+#: builtin/repack.c:654
msgid "with -A, do not loosen objects older than this"
msgstr "使用 -A,ä¸è¦å°‡æ—©æ–¼æ供時間的物件éŽæœŸ"
-#: builtin/repack.c:652
+#: builtin/repack.c:656
msgid "with -a, repack unreachable objects"
msgstr "使用 -a ,é‡æ–°å°ç„¡æ³•å–得物件打包"
-#: builtin/repack.c:654
+#: builtin/repack.c:658
msgid "size of the window used for delta compression"
msgstr "用於增é‡å£“縮的視窗值"
-#: builtin/repack.c:655 builtin/repack.c:661
+#: builtin/repack.c:659 builtin/repack.c:665
msgid "bytes"
msgstr "ä½å…ƒçµ„"
-#: builtin/repack.c:656
+#: builtin/repack.c:660
msgid "same as the above, but limit memory size instead of entries count"
msgstr "和上é¢çš„相似,但é™åˆ¶è¨˜æ†¶é«”大å°è€Œéžæ¢ç›®æ•¸"
-#: builtin/repack.c:658
+#: builtin/repack.c:662
msgid "limits the maximum delta depth"
msgstr "é™åˆ¶æœ€å¤§å¢žé‡æ·±åº¦"
-#: builtin/repack.c:660
+#: builtin/repack.c:664
msgid "limits the maximum number of threads"
msgstr "é™åˆ¶æœ€å¤§åŸ·è¡Œç·’數"
-#: builtin/repack.c:662
+#: builtin/repack.c:666
msgid "maximum size of each packfile"
msgstr "æ¯å€‹ packfile 的最大尺寸"
-#: builtin/repack.c:664
+#: builtin/repack.c:668
msgid "repack objects in packs marked with .keep"
msgstr "å°æ¨™è¨˜ç‚º .keep 的包中的物件é‡æ–°æ‰“包"
-#: builtin/repack.c:666
+#: builtin/repack.c:670
msgid "do not repack this pack"
msgstr "ä¸è¦å°è©²åŒ…檔案é‡æ–°æ‰“包"
-#: builtin/repack.c:668
+#: builtin/repack.c:672
msgid "find a geometric progression with factor <N>"
msgstr "尋找因數是 <N> 的等比數列"
-#: builtin/repack.c:670
+#: builtin/repack.c:674
msgid "write a multi-pack index of the resulting packs"
msgstr "寫入çµæžœåŒ…的多包索引"
-#: builtin/repack.c:680
+#: builtin/repack.c:684
msgid "cannot delete packs in a precious-objects repo"
msgstr "ä¸èƒ½åˆªé™¤çå“版本庫中的打包檔案"
-#: builtin/repack.c:829
+#: builtin/repack.c:833
msgid "Nothing new to pack."
msgstr "沒有新的è¦æ‰“包。"
-#: builtin/repack.c:859
+#: builtin/repack.c:863
#, c-format
msgid "missing required file: %s"
msgstr "缺少必è¦æª”案:%s"
-#: builtin/repack.c:861
+#: builtin/repack.c:865
#, c-format
msgid "could not unlink: %s"
msgstr "無法å–消連çµï¼š%s"
@@ -20815,10 +21305,6 @@ msgstr "git replace [-f] --edit <物件>"
msgid "git replace [-f] --graft <commit> [<parent>...]"
msgstr "git replace [-f] --graft <æ交> [<父æ交>...]"
-#: builtin/replace.c:25
-msgid "git replace [-f] --convert-graft-file"
-msgstr "git replace [-f] --convert-graft-file"
-
#: builtin/replace.c:26
msgid "git replace -d <object>..."
msgstr "git replace -d <物件>..."
@@ -21118,96 +21604,93 @@ msgid "HEAD is now at %s"
msgstr "HEAD ç¾åœ¨ä½æ–¼ %s"
# 譯者:漢字之間無空格,故刪除%så‰å¾Œç©ºæ ¼
-#: builtin/reset.c:299
+#: builtin/reset.c:304
#, c-format
msgid "Cannot do a %s reset in the middle of a merge."
msgstr "在åˆä½µéŽç¨‹ä¸­ä¸èƒ½åš%sé‡è¨­å‹•ä½œã€‚"
-#: builtin/reset.c:396 builtin/stash.c:606 builtin/stash.c:680
-#: builtin/stash.c:704
+#: builtin/reset.c:402 builtin/stash.c:606 builtin/stash.c:669
+#: builtin/stash.c:693
msgid "be quiet, only report errors"
msgstr "安éœæ¨¡å¼ï¼Œåªå ±å‘ŠéŒ¯èª¤"
-#: builtin/reset.c:398
+#: builtin/reset.c:404
+msgid "skip refreshing the index after reset"
+msgstr "é‡è¨­å¾Œç•¥éŽé‡æ–°æ•´ç†ç´¢å¼•çš„步驟"
+
+#: builtin/reset.c:406
msgid "reset HEAD and index"
msgstr "é‡è¨­ HEAD 和索引"
-#: builtin/reset.c:399
+#: builtin/reset.c:407
msgid "reset only HEAD"
msgstr "åªé‡è¨­ HEAD"
-#: builtin/reset.c:401 builtin/reset.c:403
+#: builtin/reset.c:409 builtin/reset.c:411
msgid "reset HEAD, index and working tree"
msgstr "é‡è¨­ HEADã€ç´¢å¼•å’Œå·¥ä½œå€"
-#: builtin/reset.c:405
+#: builtin/reset.c:413
msgid "reset HEAD but keep local changes"
msgstr "é‡è¨­ HEAD 但儲存本機變更"
-#: builtin/reset.c:411
+#: builtin/reset.c:419
msgid "record only the fact that removed paths will be added later"
msgstr "將刪除的路徑標記為ç¨å¾Œæ–°å¢ž"
-#: builtin/reset.c:445
+#: builtin/reset.c:452
#, c-format
msgid "Failed to resolve '%s' as a valid revision."
msgstr "無法將 '%s' 解æžç‚ºä¸€å€‹æœ‰æ•ˆçš„版本。"
-#: builtin/reset.c:453
+#: builtin/reset.c:460
#, c-format
msgid "Failed to resolve '%s' as a valid tree."
msgstr "無法將 '%s' 解æžç‚ºä¸€å€‹æœ‰æ•ˆçš„樹狀物件。"
-#: builtin/reset.c:472
+#: builtin/reset.c:479
msgid "--mixed with paths is deprecated; use 'git reset -- <paths>' instead."
msgstr "--mixed 帶路徑已棄用,而是用 'git reset -- <路徑>'。"
# 譯者:漢字之間無空格,故刪除%så‰å¾Œç©ºæ ¼
-#: builtin/reset.c:474
+#: builtin/reset.c:481
#, c-format
msgid "Cannot do %s reset with paths."
msgstr "ä¸èƒ½å¸¶è·¯å¾‘進行%sé‡è¨­ã€‚"
# 譯者:漢字之間無空格,故刪除%så‰å¾Œç©ºæ ¼
-#: builtin/reset.c:489
+#: builtin/reset.c:496
#, c-format
msgid "%s reset is not allowed in a bare repository"
msgstr "ä¸èƒ½å°ç´”版本庫進行%sé‡è¨­"
-#: builtin/reset.c:520
+#: builtin/reset.c:527
msgid "Unstaged changes after reset:"
msgstr "é‡è¨­å¾Œå–消暫存的變更:"
-#: builtin/reset.c:523
+#: builtin/reset.c:530
#, c-format
msgid ""
-"\n"
-"It took %.2f seconds to enumerate unstaged changes after reset. You can\n"
-"use '--quiet' to avoid this. Set the config setting reset.quiet to true\n"
-"to make this the default.\n"
+"It took %.2f seconds to refresh the index after reset. You can use\n"
+"'--no-refresh' to avoid this."
msgstr ""
-"\n"
-"é‡è¨­å¾Œï¼Œæžšèˆ‰æœªæš«å­˜è®Šæ›´èŠ±è²»äº† %.2f 秒。 您å¯ä»¥ä½¿ç”¨ '--quiet' é¿å…此情æ³ã€‚\n"
-"將設定變數 reset.quiet 設定為 true å¯ä½¿å…¶æˆç‚ºé è¨­å€¼ã€‚\n"
+"é‡è¨­å¾ŒèŠ±è²» %.2f 秒é‡æ–°æ•´ç†ç´¢å¼•ã€‚\n"
+"您å¯ä»¥ä½¿ç”¨ã€Œ--no-refreshã€é¿é–‹æœ¬æ­¥é©Ÿã€‚"
-#: builtin/reset.c:541
+#: builtin/reset.c:547
#, c-format
msgid "Could not reset index file to revision '%s'."
msgstr "ä¸èƒ½é‡è¨­ç´¢å¼•æª”案至版本 '%s'。"
-#: builtin/reset.c:546
+#: builtin/reset.c:552
msgid "Could not write new index file."
msgstr "ä¸èƒ½å¯«å…¥æ–°çš„索引檔案。"
-#: builtin/rev-list.c:602
-msgid "object filtering requires --objects"
-msgstr "物件éŽæ¿¾éœ€è¦ --objects"
-
-#: builtin/rev-list.c:674
+#: builtin/rev-list.c:659
msgid "rev-list does not support display of notes"
msgstr "rev-list ä¸æ”¯æ´é¡¯ç¤ºè¨»è§£"
-#: builtin/rev-list.c:679
+#: builtin/rev-list.c:664
#, c-format
msgid "marked counting and '%s' cannot be used together"
msgstr "標記計數 (marked counting) 與「%sã€ä¸å¾—åŒæ™‚使用"
@@ -21546,11 +22029,11 @@ msgstr "欄ä½"
msgid "group by field"
msgstr "ä¾æ¬„ä½åˆ†çµ„"
-#: builtin/shortlog.c:394
+#: builtin/shortlog.c:395
msgid "too many arguments given outside repository"
msgstr "版本庫外執行æ供了太多的åƒæ•¸"
-#: builtin/show-branch.c:13
+#: builtin/show-branch.c:14
msgid ""
"git show-branch [-a | --all] [-r | --remotes] [--topo-order | --date-order]\n"
" [--current] [--color[=<when>] | --no-color] [--sparse]\n"
@@ -21563,116 +22046,116 @@ msgstr ""
" [--no-name | --sha1-name] [--topics] [(<版本> | <è¬ç”¨å­—å…ƒ"
">)...]"
-#: builtin/show-branch.c:17
+#: builtin/show-branch.c:18
msgid "git show-branch (-g | --reflog)[=<n>[,<base>]] [--list] [<ref>]"
msgstr "git show-branch (-g | --reflog)[=<n>[,<起始點>]] [--list] [<引用>]"
-#: builtin/show-branch.c:395
+#: builtin/show-branch.c:396
#, c-format
msgid "ignoring %s; cannot handle more than %d ref"
msgid_plural "ignoring %s; cannot handle more than %d refs"
msgstr[0] "忽略 %sï¼Œç„¡æ³•è™•ç† %d 個以上的引用"
-#: builtin/show-branch.c:547
+#: builtin/show-branch.c:548
#, c-format
msgid "no matching refs with %s"
msgstr "沒有和 %s 符åˆçš„引用"
-#: builtin/show-branch.c:644
+#: builtin/show-branch.c:645
msgid "show remote-tracking and local branches"
msgstr "顯示é ç«¯è¿½è¹¤çš„和本機的分支"
-#: builtin/show-branch.c:646
+#: builtin/show-branch.c:647
msgid "show remote-tracking branches"
msgstr "顯示é ç«¯è¿½è¹¤çš„分支"
-#: builtin/show-branch.c:648
+#: builtin/show-branch.c:649
msgid "color '*!+-' corresponding to the branch"
msgstr "著色 '*!+-' 到相應的分支"
-#: builtin/show-branch.c:650
+#: builtin/show-branch.c:651
msgid "show <n> more commits after the common ancestor"
msgstr "顯示共åŒç¥–先後的 <n> 個æ交"
-#: builtin/show-branch.c:652
+#: builtin/show-branch.c:653
msgid "synonym to more=-1"
msgstr "å’Œ more=-1 åŒç¾©"
-#: builtin/show-branch.c:653
+#: builtin/show-branch.c:654
msgid "suppress naming strings"
msgstr "ä¸é¡¯ç¤ºå­—串命å"
-#: builtin/show-branch.c:655
+#: builtin/show-branch.c:656
msgid "include the current branch"
msgstr "包括目å‰åˆ†æ”¯"
-#: builtin/show-branch.c:657
+#: builtin/show-branch.c:658
msgid "name commits with their object names"
msgstr "以物件å字命åæ交"
-#: builtin/show-branch.c:659
+#: builtin/show-branch.c:660
msgid "show possible merge bases"
msgstr "顯示å¯èƒ½åˆä½µçš„基礎"
-#: builtin/show-branch.c:661
+#: builtin/show-branch.c:662
msgid "show refs unreachable from any other ref"
msgstr "顯示沒有任何引用的的引用"
-#: builtin/show-branch.c:663
+#: builtin/show-branch.c:664
msgid "show commits in topological order"
msgstr "以拓撲順åºé¡¯ç¤ºæ交"
-#: builtin/show-branch.c:666
+#: builtin/show-branch.c:667
msgid "show only commits not on the first branch"
msgstr "åªé¡¯ç¤ºä¸åœ¨ç¬¬ä¸€å€‹åˆ†æ”¯ä¸Šçš„æ交"
-#: builtin/show-branch.c:668
+#: builtin/show-branch.c:669
msgid "show merges reachable from only one tip"
msgstr "顯示僅一個分支å¯å­˜å–çš„åˆä½µæ交"
-#: builtin/show-branch.c:670
+#: builtin/show-branch.c:671
msgid "topologically sort, maintaining date order where possible"
msgstr "拓撲方å¼æŽ’åºï¼Œä¸¦å„˜å¯èƒ½åœ°ä¿æŒæ—¥æœŸé †åº"
-#: builtin/show-branch.c:673
+#: builtin/show-branch.c:674
msgid "<n>[,<base>]"
msgstr "<n>[,<base>]"
-#: builtin/show-branch.c:674
+#: builtin/show-branch.c:675
msgid "show <n> most recent ref-log entries starting at base"
msgstr "顯示從起始點開始的 <n> æ¢æœ€è¿‘的引用日誌記錄"
-#: builtin/show-branch.c:734
+#: builtin/show-branch.c:735
msgid "no branches given, and HEAD is not valid"
msgstr "未æ供分支,且 HEAD 無效"
-#: builtin/show-branch.c:737
+#: builtin/show-branch.c:738
msgid "--reflog option needs one branch name"
msgstr "é¸é … --reflog 需è¦ä¸€å€‹åˆ†æ”¯å"
-#: builtin/show-branch.c:740
+#: builtin/show-branch.c:741
#, c-format
msgid "only %d entry can be shown at one time."
msgid_plural "only %d entries can be shown at one time."
msgstr[0] "一次åªèƒ½é¡¯ç¤º %d 個æ¢ç›®ã€‚"
-#: builtin/show-branch.c:744
+#: builtin/show-branch.c:745
#, c-format
msgid "no such ref %s"
msgstr "無此引用 %s"
-#: builtin/show-branch.c:830
+#: builtin/show-branch.c:831
#, c-format
msgid "cannot handle more than %d rev."
msgid_plural "cannot handle more than %d revs."
msgstr[0] "ä¸èƒ½è™•ç† %d 個以上的版本。"
-#: builtin/show-branch.c:834
+#: builtin/show-branch.c:835
#, c-format
msgid "'%s' is not a valid ref."
msgstr "'%s' ä¸æ˜¯ä¸€å€‹æœ‰æ•ˆçš„引用。"
-#: builtin/show-branch.c:837
+#: builtin/show-branch.c:838
#, c-format
msgid "cannot find commit %s (%s)"
msgstr "ä¸èƒ½æ‰¾åˆ°æ交 %s(%s)"
@@ -21729,120 +22212,143 @@ msgstr "ä¸åˆ—å°çµæžœåˆ°æ¨™æº–輸出(例如與 --verify åƒæ•¸å…±ç”¨ï¼‰"
msgid "show refs from stdin that aren't in local repository"
msgstr "顯示從標準輸入中讀入的ä¸åœ¨æœ¬æ©Ÿç‰ˆæœ¬åº«ä¸­çš„引用"
-#: builtin/sparse-checkout.c:22
+#: builtin/sparse-checkout.c:23
msgid "git sparse-checkout (init|list|set|add|reapply|disable) <options>"
msgstr "git sparse-checkout (init|list|set|add|reapply|disable) <é¸é …>"
-#: builtin/sparse-checkout.c:46
-msgid "git sparse-checkout list"
-msgstr "git sparse-checkout list"
-
-#: builtin/sparse-checkout.c:60
+#: builtin/sparse-checkout.c:61
msgid "this worktree is not sparse"
msgstr "這ä¸æ˜¯ç¨€ç–工作å€"
-#: builtin/sparse-checkout.c:75
+#: builtin/sparse-checkout.c:76
msgid "this worktree is not sparse (sparse-checkout file may not exist)"
msgstr "這ä¸æ˜¯ç¨€ç–工作å€ï¼ˆsparse-checkout 檔案å¯èƒ½ä¸å­˜åœ¨ï¼‰"
-#: builtin/sparse-checkout.c:176
+#: builtin/sparse-checkout.c:177
#, c-format
msgid ""
"directory '%s' contains untracked files, but is not in the sparse-checkout "
"cone"
msgstr "「%sã€ç›®éŒ„有未追蹤的檔案,但ä¸åœ¨ç¨€ç–æ交的 cone 中"
-#: builtin/sparse-checkout.c:184
+#: builtin/sparse-checkout.c:185
#, c-format
msgid "failed to remove directory '%s'"
msgstr "無法移除 '%s' 目錄"
-#: builtin/sparse-checkout.c:324
+#: builtin/sparse-checkout.c:327
msgid "failed to create directory for sparse-checkout file"
msgstr "無法建立稀ç–簽出檔案的目錄"
-#: builtin/sparse-checkout.c:365
-msgid "unable to upgrade repository format to enable worktreeConfig"
-msgstr "無法å‡ç´šç‰ˆæœ¬åº«æ ¼å¼ï¼Œä»¥è‡´ç„¡æ³•å•Ÿç”¨ worktreeConfig"
-
-#: builtin/sparse-checkout.c:367
-msgid "failed to set extensions.worktreeConfig setting"
-msgstr "無法設定 extensions.worktreeConfig 設定"
+#: builtin/sparse-checkout.c:366
+msgid "failed to initialize worktree config"
+msgstr "無法åˆå§‹åŒ–工作å€çµ„æ…‹"
#: builtin/sparse-checkout.c:411
msgid "failed to modify sparse-index config"
msgstr "無法修改稀ç–索引設定"
-#: builtin/sparse-checkout.c:422
-msgid "git sparse-checkout init [--cone] [--[no-]sparse-index]"
-msgstr "git sparse-checkout init [--cone] [--[no-]sparse-index]"
-
-#: builtin/sparse-checkout.c:441 builtin/sparse-checkout.c:729
-#: builtin/sparse-checkout.c:778
+#: builtin/sparse-checkout.c:441 builtin/sparse-checkout.c:793
+#: builtin/sparse-checkout.c:847
msgid "initialize the sparse-checkout in cone mode"
msgstr "以 cone 模å¼åˆå§‹åŒ–稀ç–簽出"
-#: builtin/sparse-checkout.c:443 builtin/sparse-checkout.c:731
-#: builtin/sparse-checkout.c:780
+#: builtin/sparse-checkout.c:443 builtin/sparse-checkout.c:795
+#: builtin/sparse-checkout.c:849
msgid "toggle the use of a sparse index"
msgstr "切æ›æ˜¯å¦ä½¿ç”¨ç¨€ç–索引"
-#: builtin/sparse-checkout.c:476
+#: builtin/sparse-checkout.c:479
#, c-format
msgid "failed to open '%s'"
msgstr "無法開啟「%sã€"
-#: builtin/sparse-checkout.c:528
+#: builtin/sparse-checkout.c:531
#, c-format
msgid "could not normalize path %s"
msgstr "無法標準化路徑 %s"
-#: builtin/sparse-checkout.c:557
+#: builtin/sparse-checkout.c:560
#, c-format
msgid "unable to unquote C-style string '%s'"
msgstr "無法去掉 '%s' C 樣å¼å­—串的引號"
-#: builtin/sparse-checkout.c:612 builtin/sparse-checkout.c:640
+#: builtin/sparse-checkout.c:615 builtin/sparse-checkout.c:643
msgid "unable to load existing sparse-checkout patterns"
msgstr "無法載入ç¾å­˜çš„稀ç–簽出樣å¼"
-#: builtin/sparse-checkout.c:616
+#: builtin/sparse-checkout.c:619
msgid "existing sparse-checkout patterns do not use cone mode"
msgstr "ç¾æœ‰çš„稀ç–簽出樣å¼ä¸ä½¿ç”¨ cone 模å¼"
-#: builtin/sparse-checkout.c:682
-msgid "git sparse-checkout add (--stdin | <patterns>)"
-msgstr "git sparse-checkout add (--stdin | <樣å¼>)"
+#: builtin/sparse-checkout.c:707
+msgid "please run from the toplevel directory in non-cone mode"
+msgstr "è«‹å¾žä¸Šå±¤ç›®éŒ„ï¼Œä»¥éž cone 模å¼åŸ·è¡Œ"
+
+#: builtin/sparse-checkout.c:712
+msgid "specify directories rather than patterns (no leading slash)"
+msgstr "指定目錄而éžæ¨¡å¼ï¼ˆæ²’有å‰ç½®æ–œç·šï¼‰"
+
+#: builtin/sparse-checkout.c:714
+msgid ""
+"specify directories rather than patterns. If your directory starts with a "
+"'!', pass --skip-checks"
+msgstr "指定目錄而éžæ¨¡å¼ã€‚若您的目錄是以「!ã€é–‹é ­ï¼Œè«‹å‚³å…¥ --skip-checks"
+
+#: builtin/sparse-checkout.c:716
+msgid ""
+"specify directories rather than patterns. If your directory really has any "
+"of '*?[]\\' in it, pass --skip-checks"
+msgstr ""
+"指定目錄而éžæ¨¡å¼ã€‚若您的目錄å稱真的包å«ã€Œ*?[]\\ã€å…¶ä¸­ä¸€å€‹ï¼Œè«‹å‚³å…¥ --skip-"
+"checks"
+
+#: builtin/sparse-checkout.c:732
+#, c-format
+msgid ""
+"'%s' is not a directory; to treat it as a directory anyway, rerun with --"
+"skip-checks"
+msgstr "「%sã€ä¸æ˜¯ç›®éŒ„。若è¦ä»å°‡å…¶è¦–作目錄,請é‡æ–°å‚³å…¥ --skip-checks 執行"
+
+#: builtin/sparse-checkout.c:734
+#, c-format
+msgid ""
+"pass a leading slash before paths such as '%s' if you want a single file "
+"(see NON-CONE PROBLEMS in the git-sparse-checkout manual)."
+msgstr ""
+"若您想è¦å–®ä¸€æª”案,請在目錄å‰æ‰“上斜線,如「%sã€ï¼ˆè¦‹ git-sparse-checkout 手冊"
+"〈NON-CONE PROBLEMS〉一節)。"
-#: builtin/sparse-checkout.c:694 builtin/sparse-checkout.c:733
+#: builtin/sparse-checkout.c:739
+msgid "git sparse-checkout add [--skip-checks] (--stdin | <patterns>)"
+msgstr "git sparse-checkout add [--skip-checks] (--stdin | <patterns>)"
+
+#: builtin/sparse-checkout.c:752 builtin/sparse-checkout.c:797
+msgid ""
+"skip some sanity checks on the given paths that might give false positives"
+msgstr "在å¯èƒ½çµ¦å‡ºèª¤åˆ¤çµæžœçš„指定目錄,略éŽæŸäº›å®Œæ•´æ€§æª¢æŸ¥"
+
+#: builtin/sparse-checkout.c:755 builtin/sparse-checkout.c:800
msgid "read patterns from standard in"
msgstr "從標準輸入讀å–樣å¼"
-#: builtin/sparse-checkout.c:699
+#: builtin/sparse-checkout.c:760
msgid "no sparse-checkout to add to"
msgstr "沒有è¦åŠ å…¥ä¹‹ç¨€ç–簽出"
-#: builtin/sparse-checkout.c:712
+#: builtin/sparse-checkout.c:775
msgid ""
-"git sparse-checkout set [--[no-]cone] [--[no-]sparse-index] (--stdin | "
-"<patterns>)"
+"git sparse-checkout set [--[no-]cone] [--[no-]sparse-index] [--skip-checks] "
+"(--stdin | <patterns>)"
msgstr ""
-"git sparse-checkout set [--[no-]cone] [--[no-]sparse-index] (--stdin | "
-"<patterns>)"
-
-#: builtin/sparse-checkout.c:765
-msgid "git sparse-checkout reapply [--[no-]cone] [--[no-]sparse-index]"
-msgstr "git sparse-checkout reapply [--[no-]cone] [--[no-]sparse-index]"
+"git sparse-checkout set [--[no-]cone] [--[no-]sparse-index] [--skip-checks] "
+"(--stdin | <patterns>)"
-#: builtin/sparse-checkout.c:785
+#: builtin/sparse-checkout.c:854
msgid "must be in a sparse-checkout to reapply sparsity patterns"
msgstr "必須在稀ç–æ交æ‰èƒ½é‡æ–°å¥—用稀ç–æ¨£å¼ (sparsity pattern)"
-#: builtin/sparse-checkout.c:803
-msgid "git sparse-checkout disable"
-msgstr "git sparse-checkout disable"
-
-#: builtin/sparse-checkout.c:845
+#: builtin/sparse-checkout.c:914
msgid "error while refreshing working directory"
msgstr "é‡æ–°æ•´ç†å·¥ä½œç›®éŒ„時發生錯誤"
@@ -21984,167 +22490,151 @@ msgstr "索引未從儲è—中復原。"
msgid "could not restore untracked files from stash"
msgstr "無法從儲è—æ¢ç›®ä¸­å¾©åŽŸæœªè¿½è¹¤æª”案"
-#: builtin/stash.c:608 builtin/stash.c:706
+#: builtin/stash.c:608 builtin/stash.c:695
msgid "attempt to recreate the index"
msgstr "嘗試é‡å»ºç´¢å¼•"
-#: builtin/stash.c:652
+#: builtin/stash.c:641
#, c-format
msgid "Dropped %s (%s)"
msgstr "æ¨æ£„了 %s(%s)"
-#: builtin/stash.c:655
+#: builtin/stash.c:644
#, c-format
msgid "%s: Could not drop stash entry"
msgstr "%s:無法æ¨æ£„儲è—æ¢ç›®"
-#: builtin/stash.c:668
+#: builtin/stash.c:657
#, c-format
msgid "'%s' is not a stash reference"
msgstr "'%s' ä¸æ˜¯ä¸€å€‹å„²è—引用"
-#: builtin/stash.c:718
+#: builtin/stash.c:707
msgid "The stash entry is kept in case you need it again."
msgstr "儲è—æ¢ç›®è¢«ä¿ç•™ä»¥å‚™æ‚¨å†æ¬¡éœ€è¦ã€‚"
-#: builtin/stash.c:741
+#: builtin/stash.c:730
msgid "No branch name specified"
msgstr "未指定分支å"
-#: builtin/stash.c:825
+#: builtin/stash.c:809
msgid "failed to parse tree"
msgstr "無法解æžæ¨¹"
-#: builtin/stash.c:836
+#: builtin/stash.c:820
msgid "failed to unpack trees"
msgstr "無法解包樹"
-#: builtin/stash.c:856
+#: builtin/stash.c:840
msgid "include untracked files in the stash"
msgstr "在儲è—å€åŒ…å«æœªè¿½è¹¤æª”案"
-#: builtin/stash.c:859
+#: builtin/stash.c:843
msgid "only show untracked files in the stash"
msgstr "åªåœ¨å„²è—å€é¡¯ç¤ºæœªè¿½è¹¤æª”案"
-#: builtin/stash.c:946 builtin/stash.c:983
+#: builtin/stash.c:930 builtin/stash.c:967
#, c-format
msgid "Cannot update %s with %s"
msgstr "無法用 %2$s 更新 %1$s"
-#: builtin/stash.c:964 builtin/stash.c:1678 builtin/stash.c:1750
+#: builtin/stash.c:948 builtin/stash.c:1667 builtin/stash.c:1739
msgid "stash message"
msgstr "儲è—說明"
-#: builtin/stash.c:974
+#: builtin/stash.c:958
msgid "\"git stash store\" requires one <commit> argument"
msgstr "\"git stash store\" 需è¦ä¸€å€‹ <æ交> åƒæ•¸"
-#: builtin/stash.c:1159
+#: builtin/stash.c:1143
msgid "No staged changes"
msgstr "無暫存變更"
-#: builtin/stash.c:1220
+#: builtin/stash.c:1204
msgid "No changes selected"
msgstr "沒有é¸æ“‡è®Šæ›´"
-#: builtin/stash.c:1320
+#: builtin/stash.c:1304
msgid "You do not have the initial commit yet"
msgstr "您尚未建立åˆå§‹æ交"
-#: builtin/stash.c:1347
+#: builtin/stash.c:1331
msgid "Cannot save the current index state"
msgstr "無法儲存目å‰ç´¢å¼•ç‹€æ…‹"
-#: builtin/stash.c:1356
+#: builtin/stash.c:1340
msgid "Cannot save the untracked files"
msgstr "無法儲存未追蹤檔案"
-#: builtin/stash.c:1367 builtin/stash.c:1386
+#: builtin/stash.c:1351 builtin/stash.c:1370
msgid "Cannot save the current worktree state"
msgstr "無法儲存目å‰å·¥ä½œå€ç‹€æ…‹"
-#: builtin/stash.c:1377
+#: builtin/stash.c:1361
msgid "Cannot save the current staged state"
msgstr "無法儲存目å‰æš«å­˜ç‹€æ…‹"
-#: builtin/stash.c:1414
+#: builtin/stash.c:1398
msgid "Cannot record working tree state"
msgstr "ä¸èƒ½è¨˜éŒ„工作å€ç‹€æ…‹"
-#: builtin/stash.c:1463
+#: builtin/stash.c:1447
msgid "Can't use --patch and --include-untracked or --all at the same time"
msgstr "ä¸èƒ½åŒæ™‚使用åƒæ•¸ --patch å’Œ --include-untracked 或 --all"
-#: builtin/stash.c:1474
+#: builtin/stash.c:1458
msgid "Can't use --staged and --include-untracked or --all at the same time"
msgstr "--staged å’Œ --include-untracked 或 --all ä¸å¾—åŒæ™‚使用"
-#: builtin/stash.c:1492
+#: builtin/stash.c:1476
msgid "Did you forget to 'git add'?"
msgstr "您是å¦å¿˜äº†åŸ·è¡Œ 'git add'?"
-#: builtin/stash.c:1507
+#: builtin/stash.c:1491
msgid "No local changes to save"
msgstr "沒有è¦å„²å­˜çš„本機修改"
-#: builtin/stash.c:1514
+#: builtin/stash.c:1498
msgid "Cannot initialize stash"
msgstr "無法åˆå§‹åŒ–儲è—"
-#: builtin/stash.c:1529
+#: builtin/stash.c:1513
msgid "Cannot save the current status"
msgstr "無法儲存目å‰ç‹€æ…‹"
-#: builtin/stash.c:1534
+#: builtin/stash.c:1518
#, c-format
msgid "Saved working directory and index state %s"
msgstr "儲存工作目錄和索引狀態 %s"
-#: builtin/stash.c:1627
+#: builtin/stash.c:1615
msgid "Cannot remove worktree changes"
msgstr "無法刪除工作å€è®Šæ›´"
-#: builtin/stash.c:1667 builtin/stash.c:1739
+#: builtin/stash.c:1656 builtin/stash.c:1728
msgid "keep index"
msgstr "ä¿æŒç´¢å¼•"
-#: builtin/stash.c:1669 builtin/stash.c:1741
+#: builtin/stash.c:1658 builtin/stash.c:1730
msgid "stash staged changes only"
msgstr "åªå„²è—暫存變更"
-#: builtin/stash.c:1671 builtin/stash.c:1743
+#: builtin/stash.c:1660 builtin/stash.c:1732
msgid "stash in patch mode"
msgstr "以修補檔模å¼å„²è—"
-#: builtin/stash.c:1672 builtin/stash.c:1744
+#: builtin/stash.c:1661 builtin/stash.c:1733
msgid "quiet mode"
msgstr "éœé»˜æ¨¡å¼"
-#: builtin/stash.c:1674 builtin/stash.c:1746
+#: builtin/stash.c:1663 builtin/stash.c:1735
msgid "include untracked files in stash"
msgstr "儲è—中包å«æœªè¿½è¹¤æª”案"
-#: builtin/stash.c:1676 builtin/stash.c:1748
+#: builtin/stash.c:1665 builtin/stash.c:1737
msgid "include ignore files"
msgstr "包å«å¿½ç•¥çš„檔案"
-#: builtin/stash.c:1783
-msgid ""
-"the stash.useBuiltin support has been removed!\n"
-"See its entry in 'git help config' for details."
-msgstr ""
-"å° stash.useBuiltin 的支æ´å·²è¢«åˆªé™¤ï¼\n"
-"詳見「git help configã€ä¸­çš„æ¢ç›®ã€‚"
-
-#: builtin/stripspace.c:18
-msgid "git stripspace [-s | --strip-comments]"
-msgstr "git stripspace [-s | --strip-comments]"
-
-#: builtin/stripspace.c:19
-msgid "git stripspace [-c | --comment-lines]"
-msgstr "git stripspace [-c | --comment-lines]"
-
#: builtin/stripspace.c:37
msgid "skip and remove all lines starting with comment character"
msgstr "ç•¥éŽå’Œç§»é™¤æ‰€æœ‰çš„備註行"
@@ -22153,47 +22643,43 @@ msgstr "ç•¥éŽå’Œç§»é™¤æ‰€æœ‰çš„備註行"
msgid "prepend comment character and space to each line"
msgstr "為æ¯ä¸€è¡Œçš„行首新增備註符和空格"
-#: builtin/submodule--helper.c:46 builtin/submodule--helper.c:2668
+#: builtin/submodule--helper.c:50 builtin/submodule--helper.c:2486
#, c-format
msgid "Expecting a full ref name, got %s"
msgstr "期望一個完整的引用å稱,å»å¾—到 %s"
-#: builtin/submodule--helper.c:63
-msgid "submodule--helper print-default-remote takes no arguments"
-msgstr "submodule--helper print-default-remote ä¸å¸¶åƒæ•¸"
-
-#: builtin/submodule--helper.c:101
+#: builtin/submodule--helper.c:103
#, c-format
msgid "cannot strip one component off url '%s'"
msgstr "無法從 url '%s' å‰é›¢ä¸€å€‹å…ƒä»¶"
-#: builtin/submodule--helper.c:211
+#: builtin/submodule--helper.c:213
#, c-format
msgid ""
"could not look up configuration '%s'. Assuming this repository is its own "
"authoritative upstream."
msgstr "無法找到設定 '%s'。å‡å®šé€™å€‹ç‰ˆæœ¬åº«æ˜¯å…¶è‡ªèº«çš„官方上游。"
-#: builtin/submodule--helper.c:405 builtin/submodule--helper.c:1859
+#: builtin/submodule--helper.c:413 builtin/submodule--helper.c:1873
msgid "alternative anchor for relative paths"
msgstr "相å°è·¯å¾‘的替代錨記(anchor)"
-#: builtin/submodule--helper.c:410
+#: builtin/submodule--helper.c:418
msgid "git submodule--helper list [--prefix=<path>] [<path>...]"
msgstr "git submodule--helper list [--prefix=<路徑>] [<路徑>...]"
-#: builtin/submodule--helper.c:468 builtin/submodule--helper.c:605
-#: builtin/submodule--helper.c:628
+#: builtin/submodule--helper.c:476 builtin/submodule--helper.c:617
+#: builtin/submodule--helper.c:640
#, c-format
msgid "No url found for submodule path '%s' in .gitmodules"
msgstr "在 .gitmodules 中未找到å­æ¨¡çµ„ '%s' çš„ url"
-#: builtin/submodule--helper.c:520
+#: builtin/submodule--helper.c:528
#, c-format
msgid "Entering '%s'\n"
msgstr "進入 '%s'\n"
-#: builtin/submodule--helper.c:523
+#: builtin/submodule--helper.c:531
#, c-format
msgid ""
"run_command returned non-zero status for %s\n"
@@ -22202,7 +22688,7 @@ msgstr ""
"å° %s 執行 run_command 返回éžé›¶å€¼ã€‚\n"
"."
-#: builtin/submodule--helper.c:545
+#: builtin/submodule--helper.c:553
#, c-format
msgid ""
"run_command returned non-zero status while recursing in the nested "
@@ -22212,158 +22698,158 @@ msgstr ""
"在éžè¿´ %s çš„å­æ¨¡çµ„執行 run_command 時返回éžé›¶å€¼ã€‚\n"
"."
-#: builtin/submodule--helper.c:561
+#: builtin/submodule--helper.c:569
msgid "suppress output of entering each submodule command"
msgstr "éš±è—æ¯å€‹å­æ¨¡çµ„進入命令的輸出"
-#: builtin/submodule--helper.c:563 builtin/submodule--helper.c:864
-#: builtin/submodule--helper.c:1453
+#: builtin/submodule--helper.c:571 builtin/submodule--helper.c:876
+#: builtin/submodule--helper.c:1458
msgid "recurse into nested submodules"
msgstr "éžè¿´é€²å…¥åµŒå¥—å­æ¨¡çµ„中"
-#: builtin/submodule--helper.c:568
+#: builtin/submodule--helper.c:576
msgid "git submodule--helper foreach [--quiet] [--recursive] [--] <command>"
msgstr "git submodule--helper foreach [--quiet] [--recursive] [--] <命令>"
-#: builtin/submodule--helper.c:642
+#: builtin/submodule--helper.c:654
#, c-format
msgid "Failed to register url for submodule path '%s'"
msgstr "無法為å­æ¨¡çµ„ '%s' 註冊 url"
-#: builtin/submodule--helper.c:646
+#: builtin/submodule--helper.c:658
#, c-format
msgid "Submodule '%s' (%s) registered for path '%s'\n"
msgstr "å­æ¨¡çµ„ '%s'(%s)已å°è·¯å¾‘ '%s' 註冊\n"
-#: builtin/submodule--helper.c:656
+#: builtin/submodule--helper.c:668
#, c-format
msgid "warning: command update mode suggested for submodule '%s'\n"
msgstr "警告:建議å­æ¨¡çµ„ '%s' 使用指令更新模å¼\n"
-#: builtin/submodule--helper.c:663
+#: builtin/submodule--helper.c:675
#, c-format
msgid "Failed to register update mode for submodule path '%s'"
msgstr "無法為å­æ¨¡çµ„ '%s' 註冊更新模å¼"
-#: builtin/submodule--helper.c:685
+#: builtin/submodule--helper.c:697
msgid "suppress output for initializing a submodule"
msgstr "éš±è—åˆå§‹åŒ–å­æ¨¡çµ„的輸出"
-#: builtin/submodule--helper.c:690
+#: builtin/submodule--helper.c:702
msgid "git submodule--helper init [<options>] [<path>]"
msgstr "git submodule--helper init [<é¸é …>] [<路徑>]"
-#: builtin/submodule--helper.c:763 builtin/submodule--helper.c:898
+#: builtin/submodule--helper.c:775 builtin/submodule--helper.c:910
#, c-format
msgid "no submodule mapping found in .gitmodules for path '%s'"
msgstr "在 .gitmodules 中沒有發ç¾è·¯å¾‘ '%s' çš„å­æ¨¡çµ„映射"
-#: builtin/submodule--helper.c:811
+#: builtin/submodule--helper.c:823
#, c-format
msgid "could not resolve HEAD ref inside the submodule '%s'"
msgstr "無法解æžå­æ¨¡çµ„ '%s' çš„ HEAD 引用"
-#: builtin/submodule--helper.c:838 builtin/submodule--helper.c:1423
+#: builtin/submodule--helper.c:850 builtin/submodule--helper.c:1428
#, c-format
msgid "failed to recurse into submodule '%s'"
msgstr "éžè¿´å­æ¨¡çµ„ '%s' 失敗"
-#: builtin/submodule--helper.c:862 builtin/submodule--helper.c:1590
+#: builtin/submodule--helper.c:874 builtin/submodule--helper.c:1595
msgid "suppress submodule status output"
msgstr "éš±è—å­æ¨¡çµ„的狀態輸出"
-#: builtin/submodule--helper.c:863
+#: builtin/submodule--helper.c:875
msgid ""
"use commit stored in the index instead of the one stored in the submodule "
"HEAD"
msgstr "使用儲存在索引中的æ交,而éžå„²å­˜åœ¨å­æ¨¡çµ„ HEAD 中的æ交"
-#: builtin/submodule--helper.c:869
+#: builtin/submodule--helper.c:881
msgid "git submodule status [--quiet] [--cached] [--recursive] [<path>...]"
msgstr "git submodule status [--quiet] [--cached] [--recursive] [<路徑>...]"
-#: builtin/submodule--helper.c:893
+#: builtin/submodule--helper.c:905
msgid "git submodule--helper name <path>"
msgstr "git submodule--helper name <路徑>"
-#: builtin/submodule--helper.c:965
+#: builtin/submodule--helper.c:977
#, c-format
msgid "* %s %s(blob)->%s(submodule)"
msgstr "* %s %s(blob)->%s(submodule)"
-#: builtin/submodule--helper.c:968
+#: builtin/submodule--helper.c:980
#, c-format
msgid "* %s %s(submodule)->%s(blob)"
msgstr "* %s %s(submodule)->%s(blob)"
-#: builtin/submodule--helper.c:981
+#: builtin/submodule--helper.c:993
#, c-format
msgid "%s"
msgstr "%s"
-#: builtin/submodule--helper.c:1031
+#: builtin/submodule--helper.c:1043
#, c-format
msgid "couldn't hash object from '%s'"
msgstr "無法雜湊來自 '%s' 的物件"
-#: builtin/submodule--helper.c:1035
+#: builtin/submodule--helper.c:1047
#, c-format
msgid "unexpected mode %o\n"
msgstr "éžé æœŸçš„æ¨¡å¼ %o\n"
-#: builtin/submodule--helper.c:1276
+#: builtin/submodule--helper.c:1288
msgid "use the commit stored in the index instead of the submodule HEAD"
msgstr "使用儲存在索引中的æ交而éžå­æ¨¡çµ„ HEAD"
-#: builtin/submodule--helper.c:1278
+#: builtin/submodule--helper.c:1290
msgid "compare the commit in the index with that in the submodule HEAD"
msgstr "比較索引中æ交與å­æ¨¡çµ„ HEAD æ交的差異"
-#: builtin/submodule--helper.c:1280
+#: builtin/submodule--helper.c:1292
msgid "skip submodules with 'ignore_config' value set to 'all'"
msgstr "'ignore_config' 值設為 'all' 時略éŽå­æ¨¡çµ„"
-#: builtin/submodule--helper.c:1282
+#: builtin/submodule--helper.c:1294
msgid "limit the summary size"
msgstr "é™åˆ¶æ‘˜è¦å¤§å°"
-#: builtin/submodule--helper.c:1287
+#: builtin/submodule--helper.c:1299
msgid "git submodule--helper summary [<options>] [<commit>] [--] [<path>]"
msgstr "git submodule--helper summary [<é¸é …>] [<æ交>] [--] [<路徑>]"
-#: builtin/submodule--helper.c:1311
+#: builtin/submodule--helper.c:1323
msgid "could not fetch a revision for HEAD"
msgstr "無法å–å¾— HEAD 的版本"
-#: builtin/submodule--helper.c:1373
+#: builtin/submodule--helper.c:1384
#, c-format
msgid "Synchronizing submodule url for '%s'\n"
msgstr "為 '%s' åŒæ­¥å­æ¨¡çµ„ url\n"
-#: builtin/submodule--helper.c:1379
+#: builtin/submodule--helper.c:1390
#, c-format
msgid "failed to register url for submodule path '%s'"
msgstr "無法為å­æ¨¡çµ„路徑 '%s' 註冊 url"
-#: builtin/submodule--helper.c:1393
+#: builtin/submodule--helper.c:1399
#, c-format
msgid "failed to get the default remote for submodule '%s'"
msgstr "無法得到å­æ¨¡çµ„ '%s' çš„é è¨­é ç«¯é—œè¯"
-#: builtin/submodule--helper.c:1404
+#: builtin/submodule--helper.c:1409
#, c-format
msgid "failed to update remote for submodule '%s'"
msgstr "無法為å­æ¨¡çµ„ '%s' æ›´æ–°é ç«¯é—œè¯"
-#: builtin/submodule--helper.c:1451
+#: builtin/submodule--helper.c:1456
msgid "suppress output of synchronizing submodule url"
msgstr "éš±è—å­æ¨¡çµ„ URL åŒæ­¥çš„輸出"
-#: builtin/submodule--helper.c:1458
+#: builtin/submodule--helper.c:1463
msgid "git submodule--helper sync [--quiet] [--recursive] [<path>]"
msgstr "git submodule--helper sync [--quiet] [--recursive] [<路徑>]"
-#: builtin/submodule--helper.c:1508
+#: builtin/submodule--helper.c:1513
#, c-format
msgid ""
"Submodule work tree '%s' contains a .git directory. This will be replaced "
@@ -22371,52 +22857,52 @@ msgid ""
msgstr ""
"å­æ¨¡çµ„工作å€ã€Œ%sã€å…§æœ‰ .git 目錄。使用 absorbgitdirs 會將其替æ›ç‚º .git 檔案。"
-#: builtin/submodule--helper.c:1525
+#: builtin/submodule--helper.c:1530
#, c-format
msgid ""
"Submodule work tree '%s' contains local modifications; use '-f' to discard "
"them"
msgstr "å­æ¨¡çµ„å·¥ä½œå€ '%s' 包å«æœ¬æ©Ÿä¿®æ”¹ï¼›ä½¿ç”¨ '-f' æ¨æ£„它們"
-#: builtin/submodule--helper.c:1533
+#: builtin/submodule--helper.c:1538
#, c-format
msgid "Cleared directory '%s'\n"
msgstr "已清除目錄 '%s'\n"
-#: builtin/submodule--helper.c:1535
+#: builtin/submodule--helper.c:1540
#, c-format
msgid "Could not remove submodule work tree '%s'\n"
msgstr "無法移除å­æ¨¡çµ„å·¥ä½œå€ '%s'\n"
-#: builtin/submodule--helper.c:1546
+#: builtin/submodule--helper.c:1551
#, c-format
msgid "could not create empty submodule directory %s"
msgstr "ä¸èƒ½å»ºç«‹ç©ºçš„å­æ¨¡çµ„目錄 %s"
-#: builtin/submodule--helper.c:1562
+#: builtin/submodule--helper.c:1567
#, c-format
msgid "Submodule '%s' (%s) unregistered for path '%s'\n"
msgstr "å­æ¨¡çµ„ '%s'(%s)未å°è·¯å¾‘ '%s' 註冊\n"
-#: builtin/submodule--helper.c:1591
+#: builtin/submodule--helper.c:1596
msgid "remove submodule working trees even if they contain local changes"
msgstr "å³ä½¿æœ‰æœ¬æ©Ÿè®Šæ›´ä»ç§»é™¤å­æ¨¡çµ„的工作å€"
-#: builtin/submodule--helper.c:1592
+#: builtin/submodule--helper.c:1597
msgid "unregister all submodules"
msgstr "å–消註冊所有å­æ¨¡çµ„"
-#: builtin/submodule--helper.c:1597
+#: builtin/submodule--helper.c:1602
msgid ""
"git submodule deinit [--quiet] [-f | --force] [--all | [--] [<path>...]]"
msgstr ""
"git submodule deinit [--quiet] [-f | --force] [--all | [--] [<路徑>...]]"
-#: builtin/submodule--helper.c:1611
+#: builtin/submodule--helper.c:1616
msgid "Use '--all' if you really want to deinitialize all submodules"
msgstr "如果您確定想è¦å°æ‰€æœ‰å­æ¨¡çµ„執行å–消åˆå§‹åŒ–,請使用 '--all'"
-#: builtin/submodule--helper.c:1656
+#: builtin/submodule--helper.c:1665
msgid ""
"An alternate computed from a superproject's alternate is invalid.\n"
"To allow Git to clone without an alternate in such a case, set\n"
@@ -22428,101 +22914,105 @@ msgstr ""
"以å…許 Git ä¸ç”¨å‚™ç”¨ç‰ˆæœ¬åº«è¤‡è£½ï¼Œäº¦å¯ä½¿ç”¨ç­‰æ•ˆçš„ '--reference-if-able'\n"
"è€Œéž '--reference' 複製。"
-#: builtin/submodule--helper.c:1701 builtin/submodule--helper.c:1704
+#: builtin/submodule--helper.c:1710 builtin/submodule--helper.c:1713
#, c-format
msgid "submodule '%s' cannot add alternate: %s"
msgstr "å­æ¨¡çµ„ '%s' ä¸èƒ½æ–°å¢žç‰ˆæœ¬åº«å‚™é¸ï¼š%s"
-#: builtin/submodule--helper.c:1740
+#: builtin/submodule--helper.c:1749
#, c-format
msgid "Value '%s' for submodule.alternateErrorStrategy is not recognized"
msgstr "ä¸èƒ½è­˜åˆ¥ submodule.alternateErrorStrategy çš„å–值 '%s'"
-#: builtin/submodule--helper.c:1747
+#: builtin/submodule--helper.c:1756
#, c-format
msgid "Value '%s' for submodule.alternateLocation is not recognized"
msgstr "ä¸èƒ½è­˜åˆ¥ submodule.alternateLocation çš„å–值 '%s'"
-#: builtin/submodule--helper.c:1772
+#: builtin/submodule--helper.c:1781
#, c-format
msgid "refusing to create/use '%s' in another submodule's git dir"
msgstr "拒絕在其他å­æ¨¡çµ„çš„ git 路徑建立ï¼ä½¿ç”¨ã€Œ%sã€"
-#: builtin/submodule--helper.c:1813
+#: builtin/submodule--helper.c:1826
#, c-format
msgid "clone of '%s' into submodule path '%s' failed"
msgstr "無法複製 '%s' 到å­æ¨¡çµ„路徑 '%s'"
-#: builtin/submodule--helper.c:1818
+#: builtin/submodule--helper.c:1831
#, c-format
msgid "directory not empty: '%s'"
msgstr "目錄ä¸æ˜¯ç©ºçš„:「%sã€"
-#: builtin/submodule--helper.c:1830
+#: builtin/submodule--helper.c:1843
#, c-format
msgid "could not get submodule directory for '%s'"
msgstr "無法得到 '%s' çš„å­æ¨¡çµ„目錄"
-#: builtin/submodule--helper.c:1862
+#: builtin/submodule--helper.c:1876
msgid "where the new submodule will be cloned to"
msgstr "æ–°çš„å­æ¨¡çµ„å°‡è¦è¤‡è£½çš„路徑"
-#: builtin/submodule--helper.c:1865
+#: builtin/submodule--helper.c:1879
msgid "name of the new submodule"
msgstr "æ–°å­æ¨¡çµ„çš„å稱"
-#: builtin/submodule--helper.c:1868
+#: builtin/submodule--helper.c:1882
msgid "url where to clone the submodule from"
msgstr "複製å­æ¨¡çµ„çš„ url ä½å€"
-#: builtin/submodule--helper.c:1876 builtin/submodule--helper.c:3265
+#: builtin/submodule--helper.c:1890 builtin/submodule--helper.c:3383
msgid "depth for shallow clones"
msgstr "淺複製的深度"
-#: builtin/submodule--helper.c:1879 builtin/submodule--helper.c:2526
-#: builtin/submodule--helper.c:3258
+#: builtin/submodule--helper.c:1893 builtin/submodule--helper.c:2731
+#: builtin/submodule--helper.c:3376
msgid "force cloning progress"
msgstr "強制顯示複製進度"
-#: builtin/submodule--helper.c:1881 builtin/submodule--helper.c:2528
+#: builtin/submodule--helper.c:1895 builtin/submodule--helper.c:2733
msgid "disallow cloning into non-empty directory"
msgstr "ä¸å…許複製至éžç©ºç™½ç›®éŒ„"
-#: builtin/submodule--helper.c:1888
+#: builtin/submodule--helper.c:1903
+#| msgid ""
+#| "git submodule--helper clone [--prefix=<path>] [--quiet] [--reference "
+#| "<repository>] [--name <name>] [--depth <depth>] [--single-branch] [--"
+#| "filter <filter-spec>]--url <url> --path <path>"
msgid ""
"git submodule--helper clone [--prefix=<path>] [--quiet] [--reference "
-"<repository>] [--name <name>] [--depth <depth>] [--single-branch] --url "
-"<url> --path <path>"
+"<repository>] [--name <name>] [--depth <depth>] [--single-branch] [--filter "
+"<filter-spec>] --url <url> --path <path>"
msgstr ""
-"git submodule--helper clone [--prefix=<路徑>] [--quiet] [--reference <版本庫"
-">] [--name <åå­—>] [--depth <深度>] [--single-branch] --url <url> --path <è·¯"
-"徑>"
+"git submodule--helper clone [--prefix=<path>] [--quiet] [--reference "
+"<repository>] [--name <name>] [--depth <depth>] [--single-branch] [--filter "
+"<filter-spec>] --url <url> --path <path>"
-#: builtin/submodule--helper.c:1925
+#: builtin/submodule--helper.c:1943
#, c-format
msgid "Invalid update mode '%s' for submodule path '%s'"
msgstr "å­æ¨¡çµ„ '%2$s' çš„æ›´æ–°æ¨¡å¼ '%1$s' 無效"
-#: builtin/submodule--helper.c:1929
+#: builtin/submodule--helper.c:1947
#, c-format
msgid "Invalid update mode '%s' configured for submodule path '%s'"
msgstr "為å­æ¨¡çµ„ '%2$s' è¨­å®šçš„æ›´æ–°æ¨¡å¼ '%1$s' 無效"
-#: builtin/submodule--helper.c:2044
+#: builtin/submodule--helper.c:2041
#, c-format
msgid "Submodule path '%s' not initialized"
msgstr "å­æ¨¡çµ„ '%s' 尚未åˆå§‹åŒ–"
-#: builtin/submodule--helper.c:2048
+#: builtin/submodule--helper.c:2045
msgid "Maybe you want to use 'update --init'?"
msgstr "也許您想è¦åŸ·è¡Œ 'update --init'?"
-#: builtin/submodule--helper.c:2078
+#: builtin/submodule--helper.c:2075
#, c-format
msgid "Skipping unmerged submodule %s"
msgstr "ç•¥éŽæœªåˆä½µçš„å­æ¨¡çµ„ %s"
-#: builtin/submodule--helper.c:2107
+#: builtin/submodule--helper.c:2104
#, c-format
msgid "Skipping submodule '%s'"
msgstr "ç•¥éŽå­æ¨¡çµ„ '%s'"
@@ -22537,226 +23027,257 @@ msgstr "複製 '%s' 失敗。已排程é‡è©¦ä½œæ¥­"
msgid "Failed to clone '%s' a second time, aborting"
msgstr "第二次嘗試複製 '%s' 失敗,中止作業"
-#: builtin/submodule--helper.c:2373
+#: builtin/submodule--helper.c:2371
#, c-format
msgid "Unable to checkout '%s' in submodule path '%s'"
msgstr "無法在「%2$sã€å­æ¨¡çµ„路徑簽出「%1$sã€"
-#: builtin/submodule--helper.c:2377
+#: builtin/submodule--helper.c:2375
#, c-format
msgid "Unable to rebase '%s' in submodule path '%s'"
msgstr "無法在「%2$sã€å­æ¨¡çµ„路徑é‡å®šã€Œ%1$sã€çš„基底"
-#: builtin/submodule--helper.c:2381
+#: builtin/submodule--helper.c:2379
#, c-format
msgid "Unable to merge '%s' in submodule path '%s'"
msgstr "無法在「%2$sã€å­æ¨¡çµ„路徑åˆä½µã€Œ%1$sã€"
-#: builtin/submodule--helper.c:2385
+#: builtin/submodule--helper.c:2383
#, c-format
msgid "Execution of '%s %s' failed in submodule path '%s'"
msgstr "「%s %sã€åœ¨ã€Œ%sã€å­æ¨¡çµ„路徑執行失敗"
-#: builtin/submodule--helper.c:2409
+#: builtin/submodule--helper.c:2402
#, c-format
msgid "Submodule path '%s': checked out '%s'\n"
msgstr "å­æ¨¡çµ„路徑「%sã€ï¼šå·²ç°½å‡ºã€Œ%sã€\n"
-#: builtin/submodule--helper.c:2413
+#: builtin/submodule--helper.c:2406
#, c-format
msgid "Submodule path '%s': rebased into '%s'\n"
msgstr "å­æ¨¡çµ„路徑「%sã€ï¼šå·²é‡å®šåŸºåº•è‡³ã€Œ%sã€\n"
-#: builtin/submodule--helper.c:2417
+#: builtin/submodule--helper.c:2410
#, c-format
msgid "Submodule path '%s': merged in '%s'\n"
msgstr "å­æ¨¡çµ„路徑「%sã€ï¼šå·²åœ¨ã€Œ%sã€åˆä½µ\n"
-#: builtin/submodule--helper.c:2421
+#: builtin/submodule--helper.c:2414
#, c-format
msgid "Submodule path '%s': '%s %s'\n"
msgstr "å­æ¨¡çµ„路徑「%sã€ï¼šã€Œ%s %sã€\n"
-#: builtin/submodule--helper.c:2445
+#: builtin/submodule--helper.c:2438
#, c-format
msgid "Unable to fetch in submodule path '%s'; trying to directly fetch %s:"
msgstr "無法在å­æ¨¡çµ„路徑 「%sã€ä¸­å–得。嘗試直接å–å¾— %s:"
-#: builtin/submodule--helper.c:2454
+#: builtin/submodule--helper.c:2447
#, c-format
msgid ""
"Fetched in submodule path '%s', but it did not contain %s. Direct fetching "
"of that commit failed."
msgstr "已經å–得「%sã€å­æ¨¡çµ„路徑,這個路徑å»æœªåŒ…å«ã€Œ%sã€ã€‚直接å–得該æ交失敗。"
-#: builtin/submodule--helper.c:2505 builtin/submodule--helper.c:2575
-#: builtin/submodule--helper.c:2813
+#: builtin/submodule--helper.c:2481
+#, c-format
+msgid ""
+"Submodule (%s) branch configured to inherit branch from superproject, but "
+"the superproject is not on any branch"
+msgstr "å­æ¨¡çµ„(%s)的分支設定為繼承上級專案的分支,但是上級專案ä¸åœ¨ä»»ä½•åˆ†æ”¯ä¸Š"
+
+#: builtin/submodule--helper.c:2499
+#, c-format
+msgid "could not get a repository handle for submodule '%s'"
+msgstr "無法ç²å¾—å­æ¨¡çµ„ '%s' 的版本庫å¥æŸ„"
+
+#: builtin/submodule--helper.c:2588
+#, c-format
+msgid "Unable to find current revision in submodule path '%s'"
+msgstr "無法在å­æ¨¡çµ„路徑「%sã€ä¸­å°‹æ‰¾ç›®å‰çš„修訂版本"
+
+#: builtin/submodule--helper.c:2599
+#, c-format
+msgid "Unable to fetch in submodule path '%s'"
+msgstr "無法在å­æ¨¡çµ„路徑「%sã€ä¸­æŠ“å–"
+
+#: builtin/submodule--helper.c:2604
+#, c-format
+msgid "Unable to find %s revision in submodule path '%s'"
+msgstr "無法在å­æ¨¡çµ„路徑「%sã€ä¸­å°‹æ‰¾ %s 修訂版本"
+
+#: builtin/submodule--helper.c:2640
+#, c-format
+msgid "Failed to recurse into submodule path '%s'"
+msgstr "無法éžè¿´å­æ¨¡çµ„路徑「%sã€"
+
+#: builtin/submodule--helper.c:2699
+msgid "force checkout updates"
+msgstr "強制簽出更新"
+
+#: builtin/submodule--helper.c:2701
+msgid "initialize uninitialized submodules before update"
+msgstr "在更新å‰ï¼Œåˆå§‹åŒ–尚未進行åˆå§‹åŒ–çš„å­æ¨¡çµ„"
+
+#: builtin/submodule--helper.c:2703
+msgid "use SHA-1 of submodule's remote tracking branch"
+msgstr "使用å­æ¨¡çµ„é ç«¯è¿½è¹¤åˆ†æ”¯çš„ SHA-1"
+
+#: builtin/submodule--helper.c:2705
+msgid "traverse submodules recursively"
+msgstr "éžè¿´éæ­·å­æ¨¡çµ„"
+
+#: builtin/submodule--helper.c:2707
+msgid "don't fetch new objects from the remote site"
+msgstr "ä¸å¾žé ç«¯ç«™å°å–得新物件"
+
+#: builtin/submodule--helper.c:2710 builtin/submodule--helper.c:2892
msgid "path into the working tree"
msgstr "到工作å€çš„路徑"
-#: builtin/submodule--helper.c:2508 builtin/submodule--helper.c:2580
+#: builtin/submodule--helper.c:2713
msgid "path into the working tree, across nested submodule boundaries"
msgstr "工作å€ä¸­çš„路徑,éžè¿´åµŒå¥—å­æ¨¡çµ„"
-#: builtin/submodule--helper.c:2512 builtin/submodule--helper.c:2578
+#: builtin/submodule--helper.c:2717
msgid "rebase, merge, checkout or none"
msgstr "rebaseã€mergeã€checkout 或 none"
-#: builtin/submodule--helper.c:2518
+#: builtin/submodule--helper.c:2723
msgid "create a shallow clone truncated to the specified number of revisions"
msgstr "建立一個縮減至指定版本數的淺複製"
-#: builtin/submodule--helper.c:2521
+#: builtin/submodule--helper.c:2726
msgid "parallel jobs"
msgstr "並行任務"
-#: builtin/submodule--helper.c:2523
+#: builtin/submodule--helper.c:2728
msgid "whether the initial clone should follow the shallow recommendation"
msgstr "åˆå§‹è¤‡è£½æ˜¯å¦æ‡‰è©²éµå¾ªå»ºè­°çš„淺複製é¸é …"
-#: builtin/submodule--helper.c:2524
+#: builtin/submodule--helper.c:2729
msgid "don't print cloning progress"
msgstr "ä¸è¦è¼¸å‡ºè¤‡è£½é€²åº¦"
-#: builtin/submodule--helper.c:2535
-msgid "git submodule--helper update-clone [--prefix=<path>] [<path>...]"
-msgstr "git submodule--helper update-clone [--prefix=<路徑>] [<路徑>...]"
+#: builtin/submodule--helper.c:2741
+msgid ""
+"git submodule [--quiet] update [--init [--filter=<filter-spec>]] [--remote] "
+"[-N|--no-fetch] [-f|--force] [--checkout|--merge|--rebase] [--[no-]recommend-"
+"shallow] [--reference <repository>] [--recursive] [--[no-]single-branch] "
+"[--] [<path>...]"
+msgstr ""
+"git submodule [--quiet] update [--init [--filter=<filter-spec>]] [--remote] "
+"[-N|--no-fetch] [-f|--force] [--checkout|--merge|--rebase] [--[no-]recommend-"
+"shallow] [--reference <repository>] [--recursive] [--[no-]single-branch] "
+"[--] [<path>...]"
-#: builtin/submodule--helper.c:2548
+#: builtin/submodule--helper.c:2767
msgid "bad value for update parameter"
msgstr "update åƒæ•¸å–值錯誤"
-#: builtin/submodule--helper.c:2566
-msgid "suppress output for update by rebase or merge"
-msgstr "éš±è— rebase 或 merge 觸發之更新的輸出"
-
-#: builtin/submodule--helper.c:2567
-msgid "force checkout updates"
-msgstr "強制簽出更新"
-
-#: builtin/submodule--helper.c:2569
-msgid "don't fetch new objects from the remote site"
-msgstr "ä¸å¾žé ç«¯ç«™å°å–得新物件"
-
-#: builtin/submodule--helper.c:2571
-msgid "overrides update mode in case the repository is a fresh clone"
-msgstr "如果版本庫是剛複製的,就覆蓋更新模å¼"
-
-#: builtin/submodule--helper.c:2572
-msgid "depth for shallow fetch"
-msgstr "淺 fetch 的深度"
-
-#: builtin/submodule--helper.c:2582
-msgid "sha1"
-msgstr "sha1"
-
-#: builtin/submodule--helper.c:2583
-msgid "SHA1 expected by superproject"
-msgstr "上層專案é æœŸæ‡‰æ˜¯ SHA1"
-
-#: builtin/submodule--helper.c:2585
-msgid "subsha1"
-msgstr "subsha1"
-
-#: builtin/submodule--helper.c:2586
-msgid "SHA1 of submodule's HEAD"
-msgstr "å­æ¨¡çµ„ HEAD çš„ SHA1"
-
-#: builtin/submodule--helper.c:2592
-msgid "git submodule--helper run-update-procedure [<options>] <path>"
-msgstr "git submodule--helper run-update-procedure [<é¸é …>] [<路徑>]"
-
-#: builtin/submodule--helper.c:2663
-#, c-format
-msgid ""
-"Submodule (%s) branch configured to inherit branch from superproject, but "
-"the superproject is not on any branch"
-msgstr "å­æ¨¡çµ„(%s)的分支設定為繼承上級專案的分支,但是上級專案ä¸åœ¨ä»»ä½•åˆ†æ”¯ä¸Š"
-
-#: builtin/submodule--helper.c:2781
-#, c-format
-msgid "could not get a repository handle for submodule '%s'"
-msgstr "無法ç²å¾—å­æ¨¡çµ„ '%s' 的版本庫å¥æŸ„"
-
-#: builtin/submodule--helper.c:2814
+#: builtin/submodule--helper.c:2893
msgid "recurse into submodules"
msgstr "在å­æ¨¡çµ„中éžè¿´"
-#: builtin/submodule--helper.c:2820
+#: builtin/submodule--helper.c:2899
msgid "git submodule--helper absorb-git-dirs [<options>] [<path>...]"
msgstr "git submodule--helper absorb-git-dirs [<é¸é …>] [<路徑>...]"
-#: builtin/submodule--helper.c:2876
+#: builtin/submodule--helper.c:2955
msgid "check if it is safe to write to the .gitmodules file"
msgstr "檢查寫入 .gitmodules 檔案是å¦å®‰å…¨"
-#: builtin/submodule--helper.c:2879
+#: builtin/submodule--helper.c:2958
msgid "unset the config in the .gitmodules file"
msgstr "å–消 .gitmodules 檔案中的設定"
-#: builtin/submodule--helper.c:2884
+#: builtin/submodule--helper.c:2963
msgid "git submodule--helper config <name> [<value>]"
msgstr "git submodule--helper config <å稱> [<值>]"
-#: builtin/submodule--helper.c:2885
+#: builtin/submodule--helper.c:2964
msgid "git submodule--helper config --unset <name>"
msgstr "git submodule--helper config --unset <å稱>"
-#: builtin/submodule--helper.c:2886
-msgid "git submodule--helper config --check-writeable"
-msgstr "git submodule--helper config --check-writeable"
-
-#: builtin/submodule--helper.c:2905 builtin/submodule--helper.c:3121
-#: builtin/submodule--helper.c:3277
+#: builtin/submodule--helper.c:2984 builtin/submodule--helper.c:3238
+#: builtin/submodule--helper.c:3395
msgid "please make sure that the .gitmodules file is in the working tree"
msgstr "è«‹ç¢ºèª .gitmodules 檔案在工作å€è£¡"
-#: builtin/submodule--helper.c:2921
+#: builtin/submodule--helper.c:3000
msgid "suppress output for setting url of a submodule"
msgstr "éš±è—å­æ¨¡çµ„設定 URL 的輸出"
-#: builtin/submodule--helper.c:2925
+#: builtin/submodule--helper.c:3004
msgid "git submodule--helper set-url [--quiet] <path> <newurl>"
msgstr "git submodule--helper set-url [--quiet] <路徑> <新 URL>"
-#: builtin/submodule--helper.c:2958
+#: builtin/submodule--helper.c:3037
msgid "set the default tracking branch to master"
msgstr "å°‡é è¨­çš„追蹤分支設為 master"
-#: builtin/submodule--helper.c:2960
+#: builtin/submodule--helper.c:3039
msgid "set the default tracking branch"
msgstr "設定é è¨­è¿½è¹¤åˆ†æ”¯"
-#: builtin/submodule--helper.c:2964
+#: builtin/submodule--helper.c:3043
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:2965
+#: builtin/submodule--helper.c:3044
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:2972
+#: builtin/submodule--helper.c:3051
msgid "--branch or --default required"
msgstr "éœ€è¦ --branch 或 --default"
-#: builtin/submodule--helper.c:3038
+#: builtin/submodule--helper.c:3072 builtin/submodule--helper.c:3375
+msgid "print only error messages"
+msgstr "åªè¼¸å‡ºéŒ¯èª¤è¨Šæ¯"
+
+#: builtin/submodule--helper.c:3073
+msgid "force creation"
+msgstr "強制建立"
+
+#: builtin/submodule--helper.c:3081
+msgid "show whether the branch would be created"
+msgstr "顯示分支是å¦æœƒè¢«å»ºç«‹"
+
+#: builtin/submodule--helper.c:3085
+#| msgid ""
+#| "git submodule--helper create-branch [-f|--force] [--create-reflog] [-q|--"
+#| "quiet] [-t|--track] [-n|--dry-run] <name> <start_oid> <start_name>"
+msgid ""
+"git submodule--helper create-branch [-f|--force] [--create-reflog] [-q|--"
+"quiet] [-t|--track] [-n|--dry-run] <name> <start-oid> <start-name>"
+msgstr ""
+"git submodule--helper create-branch [-f|--force] [--create-reflog] [-q|--"
+"quiet] [-t|--track] [-n|--dry-run] <name> <start-oid> <start-name>"
+
+#: builtin/submodule--helper.c:3097
+#, c-format
+msgid "creating branch '%s'"
+msgstr "建立分支「%sã€"
+
+#: builtin/submodule--helper.c:3155
#, c-format
msgid "Adding existing repo at '%s' to the index\n"
msgstr "正在將ä½æ–¼ '%s' çš„ç¾æœ‰ç‰ˆæœ¬åº«åŠ å…¥è‡³ç´¢å¼•\n"
-#: builtin/submodule--helper.c:3041
+#: builtin/submodule--helper.c:3158
#, c-format
msgid "'%s' already exists and is not a valid git repo"
msgstr "「%sã€å·²å­˜åœ¨ï¼Œä¸”ä¸æ˜¯æœ‰æ•ˆçš„ git 版本庫"
-#: builtin/submodule--helper.c:3054
+#: builtin/submodule--helper.c:3171
#, c-format
msgid "A git directory for '%s' is found locally with remote(s):\n"
msgstr "在本機找到「%sã€Git 目錄,與其å°æ‡‰çš„é ç«¯ç‰ˆæœ¬åº«ï¼š\n"
-#: builtin/submodule--helper.c:3061
+#: builtin/submodule--helper.c:3178
#, c-format
msgid ""
"If you want to reuse this local git directory instead of cloning again from\n"
@@ -22771,83 +23292,79 @@ msgstr ""
"請使用 '--force' é¸é …。如果本機 git 目錄ä¸æ˜¯æ­£ç¢ºçš„版本庫\n"
"å‡å¦‚您ä¸å¤ªæ‡‚æ„æ€ï¼Œè«‹ä½¿ç”¨ '--name' é¸é …輸入其他å稱。"
-#: builtin/submodule--helper.c:3073
+#: builtin/submodule--helper.c:3190
#, c-format
msgid "Reactivating local git directory for submodule '%s'\n"
msgstr "正在é‡æ–°å•Ÿç”¨ã€Œ%sã€å­æ¨¡çµ„的本機 Git 目錄\n"
-#: builtin/submodule--helper.c:3110
+#: builtin/submodule--helper.c:3227
#, c-format
msgid "unable to checkout submodule '%s'"
msgstr "無法簽出「%sã€å­æ¨¡çµ„"
-#: builtin/submodule--helper.c:3149
+#: builtin/submodule--helper.c:3266
#, c-format
msgid "Failed to add submodule '%s'"
msgstr "無法加入å­æ¨¡çµ„「%sã€"
-#: builtin/submodule--helper.c:3153 builtin/submodule--helper.c:3158
-#: builtin/submodule--helper.c:3166
+#: builtin/submodule--helper.c:3270 builtin/submodule--helper.c:3275
+#: builtin/submodule--helper.c:3283
#, c-format
msgid "Failed to register submodule '%s'"
msgstr "無法註冊å­æ¨¡çµ„「%sã€"
-#: builtin/submodule--helper.c:3222
+#: builtin/submodule--helper.c:3339
#, c-format
msgid "'%s' already exists in the index"
msgstr "「%sã€å·²åœ¨ç´¢å¼•ä¸­"
-#: builtin/submodule--helper.c:3225
+#: builtin/submodule--helper.c:3342
#, c-format
msgid "'%s' already exists in the index and is not a submodule"
msgstr "「%sã€å·²åœ¨ç´¢å¼•ä¸­ï¼Œä¸”ä¸æ˜¯å­æ¨¡çµ„"
-#: builtin/submodule--helper.c:3254
+#: builtin/submodule--helper.c:3372
msgid "branch of repository to add as submodule"
msgstr "è¦åŠ å…¥ç‚ºå­æ¨¡çµ„的版本庫分支"
-#: builtin/submodule--helper.c:3255
+#: builtin/submodule--helper.c:3373
msgid "allow adding an otherwise ignored submodule path"
msgstr "å…許加入忽略的å­æ¨¡çµ„路徑"
-#: builtin/submodule--helper.c:3257
-msgid "print only error messages"
-msgstr "åªè¼¸å‡ºéŒ¯èª¤è¨Šæ¯"
-
-#: builtin/submodule--helper.c:3261
+#: builtin/submodule--helper.c:3379
msgid "borrow the objects from reference repositories"
msgstr "從引用的版本庫借用物件"
-#: builtin/submodule--helper.c:3263
+#: builtin/submodule--helper.c:3381
msgid ""
"sets the submodule’s name to the given string instead of defaulting to its "
"path"
msgstr "å°‡å­æ¨¡çµ„å稱設定為指定字串,而éžé è¨­çš„路徑å稱"
-#: builtin/submodule--helper.c:3270
+#: builtin/submodule--helper.c:3388
msgid "git submodule--helper add [<options>] [--] <repository> [<path>]"
msgstr "git submodule--helper add [<é¸é …>] [--] <版本庫> [<路徑>]"
-#: builtin/submodule--helper.c:3298
+#: builtin/submodule--helper.c:3416
msgid "Relative path can only be used from the toplevel of the working tree"
msgstr "åªèƒ½åœ¨å·¥ä½œå€çš„頂級目錄中使用相å°è·¯å¾‘"
-#: builtin/submodule--helper.c:3306
+#: builtin/submodule--helper.c:3425
#, c-format
msgid "repo URL: '%s' must be absolute or begin with ./|../"
msgstr "版本庫 URL:「%sã€å¿…須是絕å°è·¯å¾‘,或開頭是 ./|../"
-#: builtin/submodule--helper.c:3341
+#: builtin/submodule--helper.c:3460
#, c-format
msgid "'%s' is not a valid submodule name"
msgstr "「%sã€ä¸æ˜¯æœ‰æ•ˆçš„å­æ¨¡çµ„å稱"
-#: builtin/submodule--helper.c:3405 git.c:452 git.c:726
+#: builtin/submodule--helper.c:3520 git.c:453 git.c:729
#, c-format
msgid "%s doesn't support --super-prefix"
msgstr "%s ä¸æ”¯æ´ --super-prefix"
-#: builtin/submodule--helper.c:3411
+#: builtin/submodule--helper.c:3526
#, c-format
msgid "'%s' is not a valid submodule--helper subcommand"
msgstr "'%s' ä¸æ˜¯ä¸€å€‹æœ‰æ•ˆçš„ submodule--helper å­æŒ‡ä»¤"
@@ -22880,7 +23397,7 @@ msgstr "原因"
msgid "reason of the update"
msgstr "更新的原因"
-#: builtin/tag.c:25
+#: builtin/tag.c:26
msgid ""
"git tag [-a | -s | -u <key-id>] [-f] [-m <msg> | -F <file>]\n"
" <tagname> [<head>]"
@@ -22888,11 +23405,11 @@ msgstr ""
"git tag [-a | -s | -u <key-id>] [-f] [-m <消æ¯> | -F <檔案>]\n"
" <標籤å> [<head>]"
-#: builtin/tag.c:27
+#: builtin/tag.c:28
msgid "git tag -d <tagname>..."
msgstr "git tag -d <標籤å>..."
-#: builtin/tag.c:28
+#: builtin/tag.c:29
msgid ""
"git tag -l [-n[<num>]] [--contains <commit>] [--no-contains <commit>] [--"
"points-at <object>]\n"
@@ -22903,21 +23420,21 @@ msgstr ""
"at <物件>]\n"
" [--format=<æ ¼å¼>] [--merged <æ交>] [--no-merged <æ交>] [<模å¼>...]"
-#: builtin/tag.c:30
+#: builtin/tag.c:31
msgid "git tag -v [--format=<format>] <tagname>..."
msgstr "git tag -v [--format=<æ ¼å¼>] <標籤å>..."
-#: builtin/tag.c:100
+#: builtin/tag.c:101
#, c-format
msgid "tag '%s' not found."
msgstr "未發ç¾æ¨™ç±¤ '%s'。"
-#: builtin/tag.c:135
+#: builtin/tag.c:136
#, c-format
msgid "Deleted tag '%s' (was %s)\n"
msgstr "已刪除標籤 '%s'(曾為 %s)\n"
-#: builtin/tag.c:170
+#: builtin/tag.c:171
#, c-format
msgid ""
"\n"
@@ -22930,7 +23447,7 @@ msgstr ""
" %s\n"
"以 '%c' 開頭的行將被忽略。\n"
-#: builtin/tag.c:174
+#: builtin/tag.c:175
#, c-format
msgid ""
"\n"
@@ -22944,11 +23461,11 @@ msgstr ""
" %s\n"
"以 '%c' 開頭的行將被ä¿ç•™ï¼Œå¦‚果您願æ„也å¯ä»¥åˆªé™¤å®ƒå€‘。\n"
-#: builtin/tag.c:240
+#: builtin/tag.c:241
msgid "unable to sign the tag"
msgstr "無法簽署標籤"
-#: builtin/tag.c:258
+#: builtin/tag.c:259
#, c-format
msgid ""
"You have created a nested tag. The object referred to by your new tag is\n"
@@ -22961,115 +23478,119 @@ msgstr ""
"\n"
"\tgit tag -f %s %s^{}"
-#: builtin/tag.c:274
+#: builtin/tag.c:275
msgid "bad object type."
msgstr "壞的物件類型。"
-#: builtin/tag.c:325
+#: builtin/tag.c:326
msgid "no tag message?"
msgstr "無標籤說明?"
-#: builtin/tag.c:332
+#: builtin/tag.c:333
#, c-format
msgid "The tag message has been left in %s\n"
msgstr "標籤說明被ä¿ç•™åœ¨ %s\n"
-#: builtin/tag.c:444
+#: builtin/tag.c:445
msgid "list tag names"
msgstr "列出標籤å稱"
-#: builtin/tag.c:446
+#: builtin/tag.c:447
msgid "print <n> lines of each tag message"
msgstr "æ¯å€‹æ¨™ç±¤è¨Šæ¯åˆ—å° <n> è¡Œ"
-#: builtin/tag.c:448
+#: builtin/tag.c:449
msgid "delete tags"
msgstr "刪除標籤"
-#: builtin/tag.c:449
+#: builtin/tag.c:450
msgid "verify tags"
msgstr "驗證標籤"
-#: builtin/tag.c:451
+#: builtin/tag.c:452
msgid "Tag creation options"
msgstr "標籤建立é¸é …"
-#: builtin/tag.c:453
+#: builtin/tag.c:454
msgid "annotated tag, needs a message"
msgstr "附註標籤,需è¦ä¸€å€‹èªªæ˜Ž"
-#: builtin/tag.c:455
+#: builtin/tag.c:456
msgid "tag message"
msgstr "標籤說明"
-#: builtin/tag.c:457
+#: builtin/tag.c:458
msgid "force edit of tag message"
msgstr "強制編輯標籤說明"
-#: builtin/tag.c:458
+#: builtin/tag.c:459
msgid "annotated and GPG-signed tag"
msgstr "附註並附加 GPG ç°½å的標籤"
-#: builtin/tag.c:461
+#: builtin/tag.c:462
msgid "use another key to sign the tag"
msgstr "使用å¦å¤–çš„ç§é‘°ç°½å該標籤"
-#: builtin/tag.c:462
+#: builtin/tag.c:463
msgid "replace the tag if exists"
msgstr "如果存在,å–代ç¾æœ‰çš„標籤"
-#: builtin/tag.c:463 builtin/update-ref.c:511
+#: builtin/tag.c:464 builtin/update-ref.c:511
msgid "create a reflog"
msgstr "建立引用日誌"
-#: builtin/tag.c:465
+#: builtin/tag.c:466
msgid "Tag listing options"
msgstr "標籤列表é¸é …"
-#: builtin/tag.c:466
+#: builtin/tag.c:467
msgid "show tag list in columns"
msgstr "以列的方å¼é¡¯ç¤ºæ¨™ç±¤åˆ—表"
-#: builtin/tag.c:467 builtin/tag.c:469
+#: builtin/tag.c:468 builtin/tag.c:470
msgid "print only tags that contain the commit"
msgstr "åªåˆ—å°åŒ…å«è©²æ交的標籤"
-#: builtin/tag.c:468 builtin/tag.c:470
+#: builtin/tag.c:469 builtin/tag.c:471
msgid "print only tags that don't contain the commit"
msgstr "åªåˆ—å°ä¸åŒ…å«è©²æ交的標籤"
-#: builtin/tag.c:471
+#: builtin/tag.c:472
msgid "print only tags that are merged"
msgstr "åªåˆ—å°å·²ç¶“åˆä½µçš„標籤"
-#: builtin/tag.c:472
+#: builtin/tag.c:473
msgid "print only tags that are not merged"
msgstr "åªåˆ—å°å°šæœªåˆä½µçš„標籤"
-#: builtin/tag.c:476
+#: builtin/tag.c:477
msgid "print only tags of the object"
msgstr "åªåˆ—å°æŒ‡å‘該物件的標籤"
-#: builtin/tag.c:558
+#: builtin/tag.c:559
#, c-format
msgid "the '%s' option is only allowed in list mode"
msgstr "「%sã€é¸é …åªèƒ½åœ¨åˆ—表顯示模å¼ä½¿ç”¨"
-#: builtin/tag.c:597
+#: builtin/tag.c:598
#, c-format
msgid "'%s' is not a valid tag name."
msgstr "'%s' ä¸æ˜¯ä¸€å€‹æœ‰æ•ˆçš„標籤å稱。"
-#: builtin/tag.c:602
+#: builtin/tag.c:603
#, c-format
msgid "tag '%s' already exists"
msgstr "標籤 '%s' 已存在"
-#: builtin/tag.c:633
+#: builtin/tag.c:634
#, c-format
msgid "Updated tag '%s' (was %s)\n"
msgstr "已更新標籤 '%s'(曾為 %s)\n"
+#: builtin/unpack-objects.c:95
+msgid "pack exceeds maximum allowed size"
+msgstr "包超éŽäº†æœ€å¤§å…許值"
+
#: builtin/unpack-objects.c:504
msgid "Unpacking objects"
msgstr "展開物件中"
@@ -23126,155 +23647,155 @@ msgstr " OK"
msgid "git update-index [<options>] [--] [<file>...]"
msgstr "git update-index [<é¸é …>] [--] [<檔案>...]"
-#: builtin/update-index.c:974
+#: builtin/update-index.c:993
msgid "continue refresh even when index needs update"
msgstr "當索引需è¦æ›´æ–°æ™‚繼續é‡æ–°æ•´ç†"
-#: builtin/update-index.c:977
+#: builtin/update-index.c:996
msgid "refresh: ignore submodules"
msgstr "é‡æ–°æ•´ç†ï¼šå¿½ç•¥å­æ¨¡çµ„"
-#: builtin/update-index.c:980
+#: builtin/update-index.c:999
msgid "do not ignore new files"
msgstr "ä¸å¿½ç•¥æ–°çš„檔案"
-#: builtin/update-index.c:982
+#: builtin/update-index.c:1001
msgid "let files replace directories and vice-versa"
msgstr "讓檔案å–代目錄(å之亦然)"
-#: builtin/update-index.c:984
+#: builtin/update-index.c:1003
msgid "notice files missing from worktree"
msgstr "通知檔案從工作å€éºå¤±"
-#: builtin/update-index.c:986
+#: builtin/update-index.c:1005
msgid "refresh even if index contains unmerged entries"
msgstr "å³ä½¿ç´¢å¼•å€åŒ…å«æœªåˆä½µçš„æ¢ç›®ä¹ŸåŸ·è¡Œé‡æ–°æ•´ç†"
-#: builtin/update-index.c:989
+#: builtin/update-index.c:1008
msgid "refresh stat information"
msgstr "é‡æ–°æ•´ç†çµ±è¨ˆè¨Šæ¯"
-#: builtin/update-index.c:993
+#: builtin/update-index.c:1012
msgid "like --refresh, but ignore assume-unchanged setting"
msgstr "類似於 --refresh,但是忽略 assume-unchanged 設定"
-#: builtin/update-index.c:997
+#: builtin/update-index.c:1016
msgid "<mode>,<object>,<path>"
msgstr "<å­˜å–模å¼>,<物件>,<路徑>"
-#: builtin/update-index.c:998
+#: builtin/update-index.c:1017
msgid "add the specified entry to the index"
msgstr "新增指定的æ¢ç›®åˆ°ç´¢å¼•å€"
-#: builtin/update-index.c:1008
+#: builtin/update-index.c:1027
msgid "mark files as \"not changing\""
msgstr "把檔案標記為 \"沒有變更\""
-#: builtin/update-index.c:1011
+#: builtin/update-index.c:1030
msgid "clear assumed-unchanged bit"
msgstr "清除 assumed-unchanged ä½"
-#: builtin/update-index.c:1014
+#: builtin/update-index.c:1033
msgid "mark files as \"index-only\""
msgstr "把檔案標記為 \"僅索引\""
-#: builtin/update-index.c:1017
+#: builtin/update-index.c:1036
msgid "clear skip-worktree bit"
msgstr "清除 skip-worktree ä½"
-#: builtin/update-index.c:1020
+#: builtin/update-index.c:1039
msgid "do not touch index-only entries"
msgstr "ä¸è¦å»ºç«‹åªæœ‰ç´¢å¼•çš„é …ç›®"
-#: builtin/update-index.c:1022
+#: builtin/update-index.c:1041
msgid "add to index only; do not add content to object database"
msgstr "åªæ–°å¢žåˆ°ç´¢å¼•å€ï¼›ä¸æ–°å¢žç‰©ä»¶åˆ°ç‰©ä»¶åº«"
-#: builtin/update-index.c:1024
+#: builtin/update-index.c:1043
msgid "remove named paths even if present in worktree"
msgstr "å³ä½¿å­˜åœ¨å·¥ä½œå€è£¡ï¼Œä¹Ÿåˆªé™¤è·¯å¾‘"
-#: builtin/update-index.c:1026
+#: builtin/update-index.c:1045
msgid "with --stdin: input lines are terminated by null bytes"
msgstr "攜帶 --stdin:輸入的行以 null 字元終止"
-#: builtin/update-index.c:1028
+#: builtin/update-index.c:1047
msgid "read list of paths to be updated from standard input"
msgstr "從標準輸入中讀å–需è¦æ›´æ–°çš„路徑列表"
-#: builtin/update-index.c:1032
+#: builtin/update-index.c:1051
msgid "add entries from standard input to the index"
msgstr "從標準輸入新增æ¢ç›®åˆ°ç´¢å¼•å€"
-#: builtin/update-index.c:1036
+#: builtin/update-index.c:1055
msgid "repopulate stages #2 and #3 for the listed paths"
msgstr "為指定檔案é‡æ–°ç”Ÿæˆç¬¬2和第3æš«å­˜å€"
-#: builtin/update-index.c:1040
+#: builtin/update-index.c:1059
msgid "only update entries that differ from HEAD"
msgstr "åªæ›´æ–°èˆ‡ HEAD ä¸åŒçš„æ¢ç›®"
-#: builtin/update-index.c:1044
+#: builtin/update-index.c:1063
msgid "ignore files missing from worktree"
msgstr "忽略工作å€éºå¤±çš„檔案"
-#: builtin/update-index.c:1047
+#: builtin/update-index.c:1066
msgid "report actions to standard output"
msgstr "在標準輸出顯示動作"
-#: builtin/update-index.c:1049
+#: builtin/update-index.c:1068
msgid "(for porcelains) forget saved unresolved conflicts"
msgstr "(for porcelains) 忘記儲存的未解決的è¡çª"
-#: builtin/update-index.c:1053
+#: builtin/update-index.c:1072
msgid "write index in this format"
msgstr "以這種格å¼å¯«å…¥ç´¢å¼•å€"
-#: builtin/update-index.c:1055
+#: builtin/update-index.c:1074
msgid "enable or disable split index"
msgstr "啟用或åœç”¨ç´¢å¼•åˆ†å‰²"
-#: builtin/update-index.c:1057
+#: builtin/update-index.c:1076
msgid "enable/disable untracked cache"
msgstr "啟用/åœç”¨å°æœªè¿½è¹¤æª”案的快å–"
-#: builtin/update-index.c:1059
+#: builtin/update-index.c:1078
msgid "test if the filesystem supports untracked cache"
msgstr "測試檔案系統是å¦æ”¯æ´æœªè¿½è¹¤æª”案快å–"
-#: builtin/update-index.c:1061
+#: builtin/update-index.c:1080
msgid "enable untracked cache without testing the filesystem"
msgstr "無需檢測檔案系統,啟用å°æœªè¿½è¹¤æª”案的快å–"
-#: builtin/update-index.c:1063
+#: builtin/update-index.c:1082
msgid "write out the index even if is not flagged as changed"
msgstr "å³ä½¿æ²’有被標記為已更改,也è¦å¯«å‡ºç´¢å¼•"
-#: builtin/update-index.c:1065
+#: builtin/update-index.c:1084
msgid "enable or disable file system monitor"
msgstr "啟用或åœç”¨æª”案系統監控"
-#: builtin/update-index.c:1067
+#: builtin/update-index.c:1086
msgid "mark files as fsmonitor valid"
msgstr "標記檔案為 fsmonitor 有效"
-#: builtin/update-index.c:1070
+#: builtin/update-index.c:1089
msgid "clear fsmonitor valid bit"
msgstr "清除 fsmonitor 有效ä½"
-#: builtin/update-index.c:1173
+#: builtin/update-index.c:1195
msgid ""
"core.splitIndex is set to false; remove or change it, if you really want to "
"enable split index"
msgstr "core.splitIndex 被設定為 false。如果您確定è¦å•Ÿç”¨ç´¢å¼•åˆ†å‰²ï¼Œè«‹ç§»é™¤æˆ–修改"
-#: builtin/update-index.c:1182
+#: builtin/update-index.c:1204
msgid ""
"core.splitIndex is set to true; remove or change it, if you really want to "
"disable split index"
msgstr "core.splitIndex 被設定為 true。如果您確定è¦åœç”¨ç´¢å¼•åˆ†å‰²ï¼Œè«‹ç§»é™¤æˆ–修改"
-#: builtin/update-index.c:1194
+#: builtin/update-index.c:1216
msgid ""
"core.untrackedCache is set to true; remove or change it, if you really want "
"to disable the untracked cache"
@@ -23282,11 +23803,11 @@ msgstr ""
"core.untrackedCache 被設定為 true。如果您確定è¦åœç”¨æœªè¿½è¹¤æª”案的快å–,請移除或"
"修改"
-#: builtin/update-index.c:1198
+#: builtin/update-index.c:1220
msgid "Untracked cache disabled"
msgstr "å¿«å–未追蹤檔案被åœç”¨"
-#: builtin/update-index.c:1206
+#: builtin/update-index.c:1228
msgid ""
"core.untrackedCache is set to false; remove or change it, if you really want "
"to enable the untracked cache"
@@ -23294,25 +23815,25 @@ msgstr ""
"core.untrackedCache 被設定為 false。如果您確定è¦å•Ÿç”¨æœªè¿½è¹¤æª”案快å–,請移除或"
"修改"
-#: builtin/update-index.c:1210
+#: builtin/update-index.c:1232
#, c-format
msgid "Untracked cache enabled for '%s'"
msgstr "å¿«å–未追蹤檔案在 '%s' 啟用"
-#: builtin/update-index.c:1218
+#: builtin/update-index.c:1241
msgid "core.fsmonitor is unset; set it if you really want to enable fsmonitor"
msgstr "core.fsmonitor 未設定;如果想è¦å•Ÿç”¨ fsmonitor 請設定該é¸é …"
-#: builtin/update-index.c:1222
+#: builtin/update-index.c:1246
msgid "fsmonitor enabled"
msgstr "fsmonitor 被啟用"
-#: builtin/update-index.c:1225
+#: builtin/update-index.c:1250
msgid ""
"core.fsmonitor is set; remove it if you really want to disable fsmonitor"
msgstr "core.fsmonitor 已設定;如果想è¦åœç”¨ fsmonitor 請移除該é¸é …"
-#: builtin/update-index.c:1229
+#: builtin/update-index.c:1254
msgid "fsmonitor disabled"
msgstr "fsmonitor 被åœç”¨"
@@ -23344,10 +23865,6 @@ msgstr "標準輸入有以 NUL 字元終止的åƒæ•¸"
msgid "read updates from stdin"
msgstr "從標準輸入讀å–æ›´æ–°"
-#: builtin/update-server-info.c:7
-msgid "git update-server-info [--force]"
-msgstr "git update-server-info [--force]"
-
#: builtin/update-server-info.c:15
msgid "update the info files from scratch"
msgstr "從頭開始更新檔案訊æ¯"
@@ -23429,171 +23946,194 @@ msgid "git worktree remove [<options>] <worktree>"
msgstr "git worktree remove [<é¸é …>] <工作å€>"
#: builtin/worktree.c:25
+msgid "git worktree repair [<path>...]"
+msgstr "git worktree repair [<路徑>...]"
+
+#: builtin/worktree.c:26
msgid "git worktree unlock <path>"
msgstr "git worktree unlock <路徑>"
-#: builtin/worktree.c:75
+#: builtin/worktree.c:76
#, c-format
msgid "Removing %s/%s: %s"
msgstr "移除 %s/%s: %s"
-#: builtin/worktree.c:148
+#: builtin/worktree.c:149
msgid "report pruned working trees"
-msgstr "報告清除的工作å€"
+msgstr "報告剪除的工作å€"
-#: builtin/worktree.c:150
+#: builtin/worktree.c:151
msgid "expire working trees older than <time>"
msgstr "將早於 <時間> 的工作å€éŽæœŸ"
-#: builtin/worktree.c:220
+#: builtin/worktree.c:221
#, c-format
msgid "'%s' already exists"
msgstr "'%s' 已經存在"
-#: builtin/worktree.c:229
+#: builtin/worktree.c:230
#, c-format
msgid "unusable worktree destination '%s'"
msgstr "無法使用的工作目錄目的地「%sã€"
-#: builtin/worktree.c:234
+#: builtin/worktree.c:235
#, c-format
msgid ""
"'%s' is a missing but locked worktree;\n"
"use '%s -f -f' to override, or 'unlock' and 'prune' or 'remove' to clear"
msgstr ""
-"'%s' 是個éºå¤±ä½†è¢«éŽ–定的工作å€ï¼›\n"
-"使用 '%s -f -f' 覆蓋,或 'unlock' 和 'prune' 或 'remove' 清除"
+"「%sã€æ˜¯å€‹éºå¤±ä½†è¢«éŽ–定的工作å€ï¼›\n"
+"使用「%s -f -fã€è¦†è“‹ï¼Œæˆ–「unlockã€å’Œã€Œpruneã€æˆ–「removeã€æ¸…除"
-#: builtin/worktree.c:236
+#: builtin/worktree.c:237
#, c-format
msgid ""
"'%s' is a missing but already registered worktree;\n"
"use '%s -f' to override, or 'prune' or 'remove' to clear"
msgstr ""
-"'%s' 是個éºå¤±ä½†å·²è¨»å†Šçš„工作å€ï¼›\n"
-"使用 '%s -f' 覆蓋,或 'prune' 或 'remove' 清除"
+"「%sã€æ˜¯å€‹éºå¤±ä½†å·²è¨»å†Šçš„工作å€ï¼›\n"
+"使用「%s -fã€è¦†è“‹ï¼Œæˆ–「pruneã€æˆ–「removeã€æ¸…除"
-#: builtin/worktree.c:287
+#: builtin/worktree.c:248
+#, c-format
+msgid "failed to copy '%s' to '%s'; sparse-checkout may not work correctly"
+msgstr "無法將「%sã€è¤‡è£½åˆ°ã€Œ%sã€ï¼›ç¨€ç–簽出å¯èƒ½ç„¡æ³•æ­£å¸¸é‹ä½œ"
+
+#: builtin/worktree.c:268
+#, c-format
+msgid "failed to copy worktree config from '%s' to '%s'"
+msgstr "無法將工作å€çµ„態從「%sã€è¤‡è£½åˆ°ã€Œ%sã€"
+
+#: builtin/worktree.c:280 builtin/worktree.c:285
+#, c-format
+msgid "failed to unset '%s' in '%s'"
+msgstr "無法å–消「%2$sã€ä¸­ã€Œ%1$sã€çš„設定"
+
+#: builtin/worktree.c:356
#, c-format
msgid "could not create directory of '%s'"
msgstr "ä¸èƒ½å»ºç«‹ç›®éŒ„ '%s'"
-#: builtin/worktree.c:309
+#: builtin/worktree.c:378
msgid "initializing"
msgstr "正在åˆå§‹åŒ–"
-#: builtin/worktree.c:420 builtin/worktree.c:426
+#: builtin/worktree.c:492 builtin/worktree.c:498
#, c-format
msgid "Preparing worktree (new branch '%s')"
msgstr "準備工作å€ï¼ˆæ–°åˆ†æ”¯ '%s')"
-#: builtin/worktree.c:422
+#: builtin/worktree.c:494
#, c-format
msgid "Preparing worktree (resetting branch '%s'; was at %s)"
msgstr "準備工作å€ï¼ˆé‡è¨­åˆ†æ”¯ '%s',之å‰ç‚º %s)"
-#: builtin/worktree.c:431
+#: builtin/worktree.c:503
#, c-format
msgid "Preparing worktree (checking out '%s')"
msgstr "準備工作å€ï¼ˆç°½å‡º '%s')"
-#: builtin/worktree.c:437
+#: builtin/worktree.c:509
#, c-format
msgid "Preparing worktree (detached HEAD %s)"
msgstr "準備工作å€ï¼ˆåˆ†é›¢é–‹é ­æŒ‡æ¨™ %s)"
-#: builtin/worktree.c:482
+#: builtin/worktree.c:554
msgid "checkout <branch> even if already checked out in other worktree"
msgstr "簽出 <分支>,å³ä½¿å·²ç¶“被簽出到其它工作å€"
-#: builtin/worktree.c:485
+#: builtin/worktree.c:557
msgid "create a new branch"
msgstr "建立一個新分支"
-#: builtin/worktree.c:487
+#: builtin/worktree.c:559
msgid "create or reset a branch"
msgstr "建立或é‡è¨­ä¸€å€‹åˆ†æ”¯"
-#: builtin/worktree.c:489
+#: builtin/worktree.c:561
msgid "populate the new working tree"
msgstr "生æˆæ–°çš„工作å€"
-#: builtin/worktree.c:490
+#: builtin/worktree.c:562
msgid "keep the new working tree locked"
msgstr "鎖定新工作å€"
-#: builtin/worktree.c:492 builtin/worktree.c:729
+#: builtin/worktree.c:564 builtin/worktree.c:809
msgid "reason for locking"
msgstr "鎖定原因"
-#: builtin/worktree.c:495
+#: builtin/worktree.c:567
msgid "set up tracking mode (see git-branch(1))"
msgstr "設定追蹤模å¼ï¼ˆåƒè¦‹ git-branch(1))"
-#: builtin/worktree.c:498
+#: builtin/worktree.c:570
msgid "try to match the new branch name with a remote-tracking branch"
msgstr "嘗試為新分支å符åˆä¸€å€‹é ç«¯è¿½è¹¤åˆ†æ”¯"
-#: builtin/worktree.c:512
+#: builtin/worktree.c:584
msgid "added with --lock"
msgstr "已使用 --lock 加入"
-#: builtin/worktree.c:574
+#: builtin/worktree.c:646
msgid "--[no-]track can only be used if a new branch is created"
msgstr "åªèƒ½åœ¨å»ºç«‹æ–°åˆ†æ”¯æ™‚使用 --[no-]track é¸é …"
-#: builtin/worktree.c:691
+#: builtin/worktree.c:766
msgid "show extended annotations and reasons, if available"
msgstr "如果有則顯示延伸的註釋和原因"
-#: builtin/worktree.c:693
+#: builtin/worktree.c:768
msgid "add 'prunable' annotation to worktrees older than <time>"
msgstr "å°èˆŠæ–¼ <時間> 的工作å€åŠ ä¸Š ‘prunable’ 標示"
-#: builtin/worktree.c:741 builtin/worktree.c:774 builtin/worktree.c:848
-#: builtin/worktree.c:972
+#: builtin/worktree.c:770
+msgid "terminate records with a NUL character"
+msgstr "以一個 NUL 字元終止記錄"
+
+#: builtin/worktree.c:821 builtin/worktree.c:854 builtin/worktree.c:928
+#: builtin/worktree.c:1052
#, c-format
msgid "'%s' is not a working tree"
msgstr "'%s' ä¸æ˜¯ä¸€å€‹å·¥ä½œå€"
-#: builtin/worktree.c:743 builtin/worktree.c:776
+#: builtin/worktree.c:823 builtin/worktree.c:856
msgid "The main working tree cannot be locked or unlocked"
msgstr "主工作å€ç„¡æ³•è¢«åŠ éŽ–或解鎖"
-#: builtin/worktree.c:748
+#: builtin/worktree.c:828
#, c-format
msgid "'%s' is already locked, reason: %s"
msgstr "'%s' 已被鎖定,原因:%s"
-#: builtin/worktree.c:750
+#: builtin/worktree.c:830
#, c-format
msgid "'%s' is already locked"
msgstr "'%s' 已被鎖定"
-#: builtin/worktree.c:778
+#: builtin/worktree.c:858
#, c-format
msgid "'%s' is not locked"
msgstr "'%s' 未被鎖定"
-#: builtin/worktree.c:819
+#: builtin/worktree.c:899
msgid "working trees containing submodules cannot be moved or removed"
msgstr "ä¸èƒ½ç§»å‹•æˆ–刪除包å«å­æ¨¡çµ„的工作å€"
-#: builtin/worktree.c:827
+#: builtin/worktree.c:907
msgid "force move even if worktree is dirty or locked"
msgstr "強制移動,å³ä½¿å·¥ä½œå€æ˜¯é«’的或已鎖定"
-#: builtin/worktree.c:850 builtin/worktree.c:974
+#: builtin/worktree.c:930 builtin/worktree.c:1054
#, c-format
msgid "'%s' is a main working tree"
msgstr "'%s' 是一個主工作å€"
-#: builtin/worktree.c:855
+#: builtin/worktree.c:935
#, c-format
msgid "could not figure out destination name from '%s'"
msgstr "無法從 '%s' 算出目的地å稱"
-#: builtin/worktree.c:868
+#: builtin/worktree.c:948
#, c-format
msgid ""
"cannot move a locked working tree, lock reason: %s\n"
@@ -23602,7 +24142,7 @@ msgstr ""
"無法移動一個鎖定的工作å€ï¼ŒéŽ–定原因:%s\n"
"使用 'move -f -f' 覆蓋或先解鎖"
-#: builtin/worktree.c:870
+#: builtin/worktree.c:950
msgid ""
"cannot move a locked working tree;\n"
"use 'move -f -f' to override or unlock first"
@@ -23610,36 +24150,36 @@ msgstr ""
"無法移動一個鎖定的工作å€ï¼Œ\n"
"使用 'move -f -f' 覆蓋或先解鎖"
-#: builtin/worktree.c:873
+#: builtin/worktree.c:953
#, c-format
msgid "validation failed, cannot move working tree: %s"
msgstr "驗證失敗,無法移動工作å€ï¼š%s"
-#: builtin/worktree.c:878
+#: builtin/worktree.c:958
#, c-format
msgid "failed to move '%s' to '%s'"
msgstr "移動 '%s' 到 '%s' 失敗"
-#: builtin/worktree.c:924
+#: builtin/worktree.c:1004
#, c-format
msgid "failed to run 'git status' on '%s'"
msgstr "在 '%s' 中執行 'git status' 失敗"
-#: builtin/worktree.c:928
+#: builtin/worktree.c:1008
#, c-format
msgid "'%s' contains modified or untracked files, use --force to delete it"
msgstr "'%s' 包å«ä¿®æ”¹æˆ–未追蹤的檔案,使用 --force 刪除"
-#: builtin/worktree.c:933
+#: builtin/worktree.c:1013
#, c-format
msgid "failed to run 'git status' on '%s', code %d"
msgstr "在 '%s' 中執行 'git status' 失敗,離開碼 %d"
-#: builtin/worktree.c:956
+#: builtin/worktree.c:1036
msgid "force removal even if worktree is dirty or locked"
msgstr "強制刪除,å³ä½¿å·¥ä½œå€æ˜¯é«’的或已鎖定"
-#: builtin/worktree.c:979
+#: builtin/worktree.c:1059
#, c-format
msgid ""
"cannot remove a locked working tree, lock reason: %s\n"
@@ -23648,7 +24188,7 @@ msgstr ""
"無法刪除一個鎖定的工作å€ï¼ŒéŽ–定原因:%s\n"
"使用 'remove -f -f' 覆蓋或先解鎖"
-#: builtin/worktree.c:981
+#: builtin/worktree.c:1061
msgid ""
"cannot remove a locked working tree;\n"
"use 'remove -f -f' to override or unlock first"
@@ -23656,17 +24196,17 @@ msgstr ""
"無法刪除一個鎖定的工作å€ï¼Œ\n"
"使用 'remove -f -f' 覆蓋或先解鎖"
-#: builtin/worktree.c:984
+#: builtin/worktree.c:1064
#, c-format
msgid "validation failed, cannot remove working tree: %s"
msgstr "驗證失敗,無法刪除工作å€ï¼š%s"
-#: builtin/worktree.c:1008
+#: builtin/worktree.c:1088
#, c-format
msgid "repair: %s: %s"
msgstr "修復:%s:%s"
-#: builtin/worktree.c:1011
+#: builtin/worktree.c:1091
#, c-format
msgid "error: %s: %s"
msgstr "錯誤:%s:%s"
@@ -23771,29 +24311,29 @@ msgstr "%s 的空別å"
msgid "recursive alias: %s"
msgstr "éžè¿´çš„別å:%s"
-#: git.c:479
+#: git.c:480
msgid "write failure on standard output"
msgstr "在標準輸出寫入失敗"
-#: git.c:481
+#: git.c:482
msgid "unknown write failure on standard output"
msgstr "到標準輸出的未知寫入錯誤"
-#: git.c:483
+#: git.c:484
msgid "close failed on standard output"
msgstr "標準輸出關閉失敗"
-#: git.c:835
+#: git.c:838
#, c-format
msgid "alias loop detected: expansion of '%s' does not terminate:%s"
msgstr "åµæ¸¬åˆ°åˆ¥å循環:展開後的「%sã€ç„¡çª®ç„¡ç›¡ï¼š%s"
-#: git.c:885
+#: git.c:888
#, c-format
msgid "cannot handle %s as a builtin"
msgstr "ä¸èƒ½ä½œç‚ºå…§å»ºæŒ‡ä»¤è™•ç† %s"
-#: git.c:898
+#: git.c:901
#, c-format
msgid ""
"usage: %s\n"
@@ -23802,12 +24342,12 @@ msgstr ""
"用法:%s\n"
"\n"
-#: git.c:918
+#: git.c:921
#, c-format
msgid "expansion of alias '%s' failed; '%s' is not a git command\n"
msgstr "展開別å指令 '%s' 失敗,'%s' ä¸æ˜¯ä¸€å€‹ git 指令\n"
-#: git.c:930
+#: git.c:933
#, c-format
msgid "failed to run command '%s': %s\n"
msgstr "執行指令 '%s' 失敗:%s\n"
@@ -23961,139 +24501,139 @@ msgstr ""
" 請求:%s\n"
" é‡å®šå‘:%s"
-#: remote-curl.c:183
+#: remote-curl.c:184
#, c-format
msgid "invalid quoting in push-option value: '%s'"
msgstr "在 push-option å–值中無效的引號:'%s'"
-#: remote-curl.c:304
+#: remote-curl.c:308
#, c-format
msgid "%sinfo/refs not valid: is this a git repository?"
msgstr "%sinfo/refs 無效:這是一個 git 版本庫嗎?"
-#: remote-curl.c:405
+#: remote-curl.c:409
msgid "invalid server response; expected service, got flush packet"
msgstr "無效的æœå‹™ç«¯å›žæ‡‰ã€‚é æœŸæœå‹™ï¼Œå¾—到 flush 包"
-#: remote-curl.c:436
+#: remote-curl.c:440
#, c-format
msgid "invalid server response; got '%s'"
msgstr "無效的æœå‹™ç«¯å›žæ‡‰ï¼Œå¾—到 '%s'"
-#: remote-curl.c:496
+#: remote-curl.c:500
#, c-format
msgid "repository '%s' not found"
msgstr "版本庫 '%s' 未找到"
-#: remote-curl.c:500
+#: remote-curl.c:504
#, c-format
msgid "Authentication failed for '%s'"
msgstr "'%s' 身份驗證失敗"
-#: remote-curl.c:504
+#: remote-curl.c:508
#, c-format
msgid "unable to access '%s' with http.pinnedPubkey configuration: %s"
msgstr "ç„¡æ³•ä¾ http.pinnedPubkey 之設定存å–「%sã€ï¼š%s"
-#: remote-curl.c:508
+#: remote-curl.c:512
#, c-format
msgid "unable to access '%s': %s"
msgstr "ç„¡æ³•å­˜å– '%s':%s"
-#: remote-curl.c:514
+#: remote-curl.c:518
#, c-format
msgid "redirecting to %s"
msgstr "é‡å®šå‘到 %s"
-#: remote-curl.c:645
+#: remote-curl.c:649
msgid "shouldn't have EOF when not gentle on EOF"
msgstr "當沒有設定溫和處ç†æª”案çµæŸç¬¦ï¼ˆEOF)時,ä¸æ‡‰è©²æœ‰æª”案çµæŸç¬¦"
-#: remote-curl.c:657
+#: remote-curl.c:661
msgid "remote server sent unexpected response end packet"
msgstr "é ç«¯ä¼ºæœå™¨å‚³é€äº†éžé æœŸçš„回應çµæŸå°åŒ…"
-#: remote-curl.c:726
+#: remote-curl.c:730
msgid "unable to rewind rpc post data - try increasing http.postBuffer"
msgstr "無法還原 rpc post 資料 - 嘗試增加 http.postBuffer"
-#: remote-curl.c:755
+#: remote-curl.c:759
#, c-format
msgid "remote-curl: bad line length character: %.4s"
msgstr "remote-curl: 錯誤的行長度字串:%.4s"
-#: remote-curl.c:757
+#: remote-curl.c:761
msgid "remote-curl: unexpected response end packet"
msgstr "remote-curl: éžé æœŸçš„回應çµæŸå°åŒ…"
-#: remote-curl.c:833
+#: remote-curl.c:837
#, c-format
msgid "RPC failed; %s"
msgstr "RPC 失敗。%s"
-#: remote-curl.c:873
+#: remote-curl.c:877
msgid "cannot handle pushes this big"
msgstr "ä¸èƒ½è™•ç†é€™éº¼å¤§çš„推é€"
-#: remote-curl.c:986
+#: remote-curl.c:990
#, c-format
msgid "cannot deflate request; zlib deflate error %d"
msgstr "ä¸èƒ½å£“縮請求,zlib 壓縮錯誤 %d"
-#: remote-curl.c:990
+#: remote-curl.c:994
#, c-format
msgid "cannot deflate request; zlib end error %d"
msgstr "ä¸èƒ½å£“縮請求,zlib çµæŸéŒ¯èª¤ %d"
-#: remote-curl.c:1040
+#: remote-curl.c:1044
#, c-format
msgid "%d bytes of length header were received"
msgstr "收到了 %d ä½å…ƒçµ„長度的標頭"
-#: remote-curl.c:1042
+#: remote-curl.c:1046
#, c-format
msgid "%d bytes of body are still expected"
msgstr "é æœŸä»è¦æœ‰ %d ä½å…ƒçµ„的本文 (body)"
-#: remote-curl.c:1131
+#: remote-curl.c:1135
msgid "dumb http transport does not support shallow capabilities"
msgstr "å•ž http 傳輸ä¸æ”¯æ´ shallow 能力"
-#: remote-curl.c:1146
+#: remote-curl.c:1150
msgid "fetch failed."
msgstr "å–得失敗。"
-#: remote-curl.c:1192
+#: remote-curl.c:1198
msgid "cannot fetch by sha1 over smart http"
msgstr "無法é€éŽæ™ºæ…§ HTTP å–å¾— sha1"
-#: remote-curl.c:1236 remote-curl.c:1242
+#: remote-curl.c:1242 remote-curl.c:1248
#, c-format
msgid "protocol error: expected sha/ref, got '%s'"
msgstr "å”定錯誤:期望 sha/ref,å»å¾—到 '%s'"
-#: remote-curl.c:1254 remote-curl.c:1372
+#: remote-curl.c:1260 remote-curl.c:1378
#, c-format
msgid "http transport does not support %s"
msgstr "http 傳輸å”定ä¸æ”¯æ´ %s"
-#: remote-curl.c:1290
+#: remote-curl.c:1296
msgid "git-http-push failed"
msgstr "git-http-push 失敗"
-#: remote-curl.c:1478
+#: remote-curl.c:1485
msgid "remote-curl: usage: git remote-curl <remote> [<url>]"
msgstr "remote-curl:用法:git remote-curl <é ç«¯> [<url>]"
-#: remote-curl.c:1510
+#: remote-curl.c:1517
msgid "remote-curl: error reading command stream from git"
msgstr "remote-curl:錯誤讀å–來自 git 的指令æµ"
-#: remote-curl.c:1517
+#: remote-curl.c:1524
msgid "remote-curl: fetch attempted without a local repo"
msgstr "remote-curl:嘗試沒有本機版本庫下å–å¾—"
-#: remote-curl.c:1558
+#: remote-curl.c:1565
#, c-format
msgid "remote-curl: unknown command '%s' from git"
msgstr "remote-curl:未知的來自 git 的指令 '%s'"
@@ -24106,121 +24646,121 @@ msgstr "需è¦å·¥ä½œç›®éŒ„"
msgid "could not find enlistment root"
msgstr "找ä¸åˆ°ç·¨åˆ—å單的根目錄"
-#: contrib/scalar/scalar.c:89 contrib/scalar/scalar.c:351
-#: contrib/scalar/scalar.c:436 contrib/scalar/scalar.c:579
+#: contrib/scalar/scalar.c:89 contrib/scalar/scalar.c:350
+#: contrib/scalar/scalar.c:435 contrib/scalar/scalar.c:578
#, c-format
msgid "could not switch to '%s'"
msgstr "無法切æ›è‡³ã€Œ%sã€"
-#: contrib/scalar/scalar.c:180
+#: contrib/scalar/scalar.c:179
#, c-format
msgid "could not configure %s=%s"
msgstr "無法設定 %s=%s"
-#: contrib/scalar/scalar.c:198
+#: contrib/scalar/scalar.c:197
msgid "could not configure log.excludeDecoration"
msgstr "無法設定 log.excludeDecoration"
-#: contrib/scalar/scalar.c:219
+#: contrib/scalar/scalar.c:218
msgid "Scalar enlistments require a worktree"
msgstr "ç´”é‡ç·¨åˆ—å單需è¦å·¥ä½œç›®éŒ„"
-#: contrib/scalar/scalar.c:311
+#: contrib/scalar/scalar.c:310
#, c-format
msgid "remote HEAD is not a branch: '%.*s'"
msgstr "é ç«¯ HEAD ä¸æ˜¯åˆ†æ”¯ï¼šã€Œ%.*sã€"
-#: contrib/scalar/scalar.c:317
+#: contrib/scalar/scalar.c:316
msgid "failed to get default branch name from remote; using local default"
msgstr "無法從é ç«¯å–å¾—é è¨­åˆ†æ”¯å稱。改用本機é è¨­å稱"
-#: contrib/scalar/scalar.c:330
+#: contrib/scalar/scalar.c:329
msgid "failed to get default branch name"
msgstr "無法å–å¾—é è¨­åˆ†æ”¯å稱"
-#: contrib/scalar/scalar.c:341
+#: contrib/scalar/scalar.c:340
msgid "failed to unregister repository"
msgstr "無法å–消註冊版本庫"
-#: contrib/scalar/scalar.c:356
+#: contrib/scalar/scalar.c:355
msgid "failed to delete enlistment directory"
msgstr "無法刪除編列å單目錄"
-#: contrib/scalar/scalar.c:376
+#: contrib/scalar/scalar.c:375
msgid "branch to checkout after clone"
msgstr "複製後è¦ç°½å‡ºçš„分支"
-#: contrib/scalar/scalar.c:378
+#: contrib/scalar/scalar.c:377
msgid "when cloning, create full working directory"
msgstr "複製時建立完整的工作目錄"
-#: contrib/scalar/scalar.c:380
+#: contrib/scalar/scalar.c:379
msgid "only download metadata for the branch that will be checked out"
msgstr "åªä¸‹è¼‰æœƒç°½å‡ºçš„分支中介資料"
-#: contrib/scalar/scalar.c:385
+#: contrib/scalar/scalar.c:384
msgid "scalar clone [<options>] [--] <repo> [<dir>]"
msgstr "scalar clone [<options>] [--] <repo> [<dir>]"
-#: contrib/scalar/scalar.c:410
+#: contrib/scalar/scalar.c:409
#, c-format
msgid "cannot deduce worktree name from '%s'"
msgstr "無法從「%sã€æŽ¨è«–工作å€å稱"
-#: contrib/scalar/scalar.c:419
+#: contrib/scalar/scalar.c:418
#, c-format
msgid "directory '%s' exists already"
msgstr "「%sã€ç›®éŒ„已經存在"
-#: contrib/scalar/scalar.c:446
+#: contrib/scalar/scalar.c:445
#, c-format
msgid "failed to get default branch for '%s'"
msgstr "無法å–得「%sã€çš„é è¨­åˆ†æ”¯"
-#: contrib/scalar/scalar.c:457
+#: contrib/scalar/scalar.c:456
#, c-format
msgid "could not configure remote in '%s'"
msgstr "無法設定「%sã€ä¸­çš„é ç«¯"
-#: contrib/scalar/scalar.c:466
+#: contrib/scalar/scalar.c:465
#, c-format
msgid "could not configure '%s'"
msgstr "無法設定「%sã€"
-#: contrib/scalar/scalar.c:469
+#: contrib/scalar/scalar.c:468
msgid "partial clone failed; attempting full clone"
msgstr "部分複製失敗。嘗試完整複製"
-#: contrib/scalar/scalar.c:473
+#: contrib/scalar/scalar.c:472
msgid "could not configure for full clone"
msgstr "無法設定完整複製"
-#: contrib/scalar/scalar.c:505
+#: contrib/scalar/scalar.c:504
msgid "`scalar list` does not take arguments"
msgstr "`scalar list` 未å–引數"
-#: contrib/scalar/scalar.c:518
+#: contrib/scalar/scalar.c:517
msgid "scalar register [<enlistment>]"
msgstr "scalar register [<enlistment>]"
-#: contrib/scalar/scalar.c:545
+#: contrib/scalar/scalar.c:544
msgid "reconfigure all registered enlistments"
msgstr "é‡æ–°è¨­å®šæ‰€æœ‰è¨»å†Šçš„編列åå–®"
-#: contrib/scalar/scalar.c:549
+#: contrib/scalar/scalar.c:548
msgid "scalar reconfigure [--all | <enlistment>]"
msgstr "scalar reconfigure [--all | <enlistment>]"
-#: contrib/scalar/scalar.c:567
+#: contrib/scalar/scalar.c:566
msgid "--all or <enlistment>, but not both"
msgstr "--all 或 <enlistment> 但ä¸èƒ½å‚³å…¥å…©è€…"
-#: contrib/scalar/scalar.c:582
+#: contrib/scalar/scalar.c:581
#, c-format
msgid "git repository gone in '%s'"
msgstr "git 版本庫在「%sã€éºå¤±"
-#: contrib/scalar/scalar.c:622
+#: contrib/scalar/scalar.c:621
msgid ""
"scalar run <task> [<enlistment>]\n"
"Tasks:\n"
@@ -24228,42 +24768,55 @@ msgstr ""
"scalar run <task> [<enlistment>]\n"
"作業:\n"
-#: contrib/scalar/scalar.c:640
+#: contrib/scalar/scalar.c:639
#, c-format
msgid "no such task: '%s'"
msgstr "無此作業:「%sã€"
-#: contrib/scalar/scalar.c:690
+#: contrib/scalar/scalar.c:689
msgid "scalar unregister [<enlistment>]"
msgstr "scalar unregister [<enlistment>]"
-#: contrib/scalar/scalar.c:737
+#: contrib/scalar/scalar.c:736
msgid "scalar delete <enlistment>"
msgstr "scalar delete <enlistment>"
-#: contrib/scalar/scalar.c:752
+#: contrib/scalar/scalar.c:751
msgid "refusing to delete current working directory"
msgstr "拒絕刪除目å‰å·¥ä½œç›®éŒ„"
-#: contrib/scalar/scalar.c:767
+#: contrib/scalar/scalar.c:766
msgid "include Git version"
msgstr "åŒ…å« Git 版本"
-#: contrib/scalar/scalar.c:769
+#: contrib/scalar/scalar.c:768
msgid "include Git's build options"
msgstr "åŒ…å« Git 組建é¸é …"
-#: contrib/scalar/scalar.c:773
+#: contrib/scalar/scalar.c:772
msgid "scalar verbose [-v | --verbose] [--build-options]"
msgstr "scalar verbose [-v | --verbose] [--build-options]"
+#: contrib/scalar/scalar.c:813
+msgid "-C requires a <directory>"
+msgstr "-C éœ€è¦ <directory>"
+
+#: contrib/scalar/scalar.c:815
+#, c-format
+msgid "could not change to '%s'"
+msgstr "無法更改為「%sã€"
+
#: contrib/scalar/scalar.c:821
+msgid "-c requires a <key>=<value> argument"
+msgstr "-c éœ€è¦ <key>=<value> 引數"
+
+#: contrib/scalar/scalar.c:839
msgid ""
-"scalar <command> [<options>]\n"
+"scalar [-C <directory>] [-c <key>=<value>] <command> [<options>]\n"
"\n"
"Commands:\n"
msgstr ""
-"scalar <command> [<options>]\n"
+"scalar [-C <directory>] [-c <key>=<value>] <command> [<options>]\n"
"\n"
"命令:\n"
@@ -24275,43 +24828,43 @@ msgstr "沒有å¯ç”¨çš„編譯器資訊\n"
msgid "no libc information available\n"
msgstr "沒有å¯ç”¨çš„ libc 資訊\n"
-#: list-objects-filter-options.h:94
+#: list-objects-filter-options.h:126
msgid "args"
msgstr "åƒæ•¸"
-#: list-objects-filter-options.h:95
+#: list-objects-filter-options.h:127
msgid "object filtering"
msgstr "物件éŽæ¿¾"
-#: parse-options.h:183
+#: parse-options.h:188
msgid "expiry-date"
msgstr "到期時間"
-#: parse-options.h:197
+#: parse-options.h:202
msgid "no-op (backward compatibility)"
msgstr "空動作(å‘後相容)"
-#: parse-options.h:310
+#: parse-options.h:341
msgid "be more verbose"
msgstr "更加詳細"
-#: parse-options.h:312
+#: parse-options.h:343
msgid "be more quiet"
msgstr "更加安éœ"
-#: parse-options.h:318
+#: parse-options.h:349
msgid "use <n> digits to display object names"
msgstr "用 <n> ä½æ•¸å­—顯示物件å稱"
-#: parse-options.h:337
+#: parse-options.h:368
msgid "how to strip spaces and #comments from message"
msgstr "設定如何刪除æ交說明裡的空格和 #備註"
-#: parse-options.h:338
+#: parse-options.h:369
msgid "read pathspec from file"
msgstr "å¾žæª”æ¡ˆè®€å– <路徑è¦æ ¼>"
-#: parse-options.h:339
+#: parse-options.h:370
msgid ""
"with --pathspec-from-file, pathspec elements are separated with NUL character"
msgstr "如使用 --pathspec-from-file,則 <路徑è¦æ ¼> 元件會使用 NUL 字元分隔"
@@ -24561,447 +25114,452 @@ msgid "Display help information about Git"
msgstr "顯示 Git 的說明訊æ¯"
#: command-list.h:108
+msgid "Run git hooks"
+msgstr "執行 git 掛鉤"
+
+#: command-list.h:109
msgid "Server side implementation of Git over HTTP"
msgstr "Git HTTP å”定的æœå‹™ç«¯å¯¦ç¾"
-#: command-list.h:109
+#: command-list.h:110
msgid "Download from a remote Git repository via HTTP"
msgstr "é€šéŽ HTTP 從é ç«¯ Git 版本庫下載"
-#: command-list.h:110
+#: command-list.h:111
msgid "Push objects over HTTP/DAV to another repository"
msgstr "é€šéŽ HTTP/DAV 推é€ç‰©ä»¶å¦ä¸€å€‹ç‰ˆæœ¬åº«"
-#: command-list.h:111
+#: command-list.h:112
msgid "Send a collection of patches from stdin to an IMAP folder"
msgstr "從標準輸入將一組修補檔傳é€åˆ°IMAP資料夾"
-#: command-list.h:112
+#: command-list.h:113
msgid "Build pack index file for an existing packed archive"
msgstr "從一個ç¾å­˜çš„包存檔檔案建立包索引"
-#: command-list.h:113
+#: command-list.h:114
msgid "Create an empty Git repository or reinitialize an existing one"
msgstr "建立一個空的 Git 版本庫或é‡æ–°åˆå§‹åŒ–一個已存在的版本庫"
-#: command-list.h:114
+#: command-list.h:115
msgid "Instantly browse your working repository in gitweb"
msgstr "在 gitweb 中å³æ™‚ç€è¦½æ‚¨çš„工作版本庫"
-#: command-list.h:115
+#: command-list.h:116
msgid "Add or parse structured information in commit messages"
msgstr "新增或解æžæ交說明中的çµæ§‹åŒ–訊æ¯"
-#: command-list.h:116
+#: command-list.h:117
msgid "Show commit logs"
msgstr "顯示æ交日誌"
-#: command-list.h:117
+#: command-list.h:118
msgid "Show information about files in the index and the working tree"
msgstr "顯示索引和工作å€ä¸­æª”案的訊æ¯"
-#: command-list.h:118
+#: command-list.h:119
msgid "List references in a remote repository"
msgstr "顯示一個é ç«¯ç‰ˆæœ¬åº«çš„引用"
-#: command-list.h:119
+#: command-list.h:120
msgid "List the contents of a tree object"
msgstr "顯示一個樹狀物件的內容"
-#: command-list.h:120
+#: command-list.h:121
msgid "Extracts patch and authorship from a single e-mail message"
msgstr "從單個電å­ä¿¡ä»¶ä¸­æ“·å–修補檔和作者身份"
-#: command-list.h:121
+#: command-list.h:122
msgid "Simple UNIX mbox splitter program"
msgstr "簡單的 UNIX mbox 信箱切分程å¼"
-#: command-list.h:122
+#: command-list.h:123
msgid "Run tasks to optimize Git repository data"
msgstr "執行用來最佳化 Git 版本庫資料的作業"
-#: command-list.h:123
+#: command-list.h:124
msgid "Join two or more development histories together"
msgstr "åˆä½µå…©å€‹æˆ–更多開發歷å²"
-#: command-list.h:124
+#: command-list.h:125
msgid "Find as good common ancestors as possible for a merge"
msgstr "為了åˆä½µå°‹æ‰¾å„˜å¯èƒ½å¥½çš„公共祖先æ交"
-#: command-list.h:125
+#: command-list.h:126
msgid "Run a three-way file merge"
msgstr "執行一個三路檔案åˆä½µ"
-#: command-list.h:126
+#: command-list.h:127
msgid "Run a merge for files needing merging"
msgstr "å°æ–¼éœ€è¦åˆä½µçš„檔案執行åˆä½µ"
-#: command-list.h:127
+#: command-list.h:128
msgid "The standard helper program to use with git-merge-index"
msgstr "與 git-merge-index 一起使用的標準嚮導程å¼"
-#: command-list.h:128
+#: command-list.h:129
msgid "Show three-way merge without touching index"
msgstr "顯示三路åˆä½µè€Œä¸å‹•ç´¢å¼•"
-#: command-list.h:129
+#: command-list.h:130
msgid "Run merge conflict resolution tools to resolve merge conflicts"
msgstr "執行åˆä½µè¡çªè§£æ±ºå·¥å…·ä»¥è§£æ±ºåˆä½µè¡çª"
-#: command-list.h:130
+#: command-list.h:131
msgid "Creates a tag object with extra validation"
msgstr "建立有é¡å¤–驗證的標籤物件"
-#: command-list.h:131
+#: command-list.h:132
msgid "Build a tree-object from ls-tree formatted text"
msgstr "基於 ls-tree çš„æ ¼å¼åŒ–文字建立一個樹狀物件"
-#: command-list.h:132
+#: command-list.h:133
msgid "Write and verify multi-pack-indexes"
msgstr "寫入和驗證多包索引"
-#: command-list.h:133
+#: command-list.h:134
msgid "Move or rename a file, a directory, or a symlink"
msgstr "移動或é‡æ–°å‘½å一個檔案ã€ç›®éŒ„或符號連çµ"
# 尋找æ供版本的符號å稱
-#: command-list.h:134
+#: command-list.h:135
msgid "Find symbolic names for given revs"
msgstr "尋找æ供版本的符號å稱"
-#: command-list.h:135
+#: command-list.h:136
msgid "Add or inspect object notes"
msgstr "新增或檢查物件備註"
-#: command-list.h:136
+#: command-list.h:137
msgid "Import from and submit to Perforce repositories"
msgstr "匯入和æ交到 Perforce 版本庫中"
-#: command-list.h:137
+#: command-list.h:138
msgid "Create a packed archive of objects"
msgstr "建立物件的存檔包"
-#: command-list.h:138
+#: command-list.h:139
msgid "Find redundant pack files"
msgstr "尋找冗餘的包檔案"
-#: command-list.h:139
+#: command-list.h:140
msgid "Pack heads and tags for efficient repository access"
msgstr "打包頭和標籤以實ç¾é«˜æ•ˆçš„版本庫存å–"
-#: command-list.h:140
+#: command-list.h:141
msgid "Compute unique ID for a patch"
msgstr "計算一個修補檔的唯一 ID"
-#: command-list.h:141
+#: command-list.h:142
msgid "Prune all unreachable objects from the object database"
-msgstr "刪除物件庫中所有無法å–得物件"
+msgstr "剪除物件庫中所有無法å–得的物件"
-#: command-list.h:142
+#: command-list.h:143
msgid "Remove extra objects that are already in pack files"
msgstr "刪除已經在包檔案中的多餘物件"
-#: command-list.h:143
+#: command-list.h:144
msgid "Fetch from and integrate with another repository or a local branch"
msgstr "å–得並整åˆå¦å¤–的版本庫或一個本機分支"
-#: command-list.h:144
+#: command-list.h:145
msgid "Update remote refs along with associated objects"
msgstr "æ›´æ–°é ç«¯å¼•ç”¨å’Œç›¸é—œçš„物件"
-#: command-list.h:145
+#: command-list.h:146
msgid "Applies a quilt patchset onto the current branch"
msgstr "將一個 quilt 修補檔集åˆå¥—用到目å‰åˆ†æ”¯"
-#: command-list.h:146
+#: command-list.h:147
msgid "Compare two commit ranges (e.g. two versions of a branch)"
msgstr "比較兩個æ交範åœï¼ˆå¦‚一個分支的兩個版本)"
-#: command-list.h:147
+#: command-list.h:148
msgid "Reads tree information into the index"
msgstr "將樹訊æ¯è®€å–到索引"
-#: command-list.h:148
+#: command-list.h:149
msgid "Reapply commits on top of another base tip"
msgstr "在å¦ä¸€å€‹åˆ†æ”¯ä¸Šé‡æ–°å¥—用æ交"
-#: command-list.h:149
+#: command-list.h:150
msgid "Receive what is pushed into the repository"
msgstr "接收推é€åˆ°ç‰ˆæœ¬åº«ä¸­çš„物件"
-#: command-list.h:150
+#: command-list.h:151
msgid "Manage reflog information"
msgstr "ç®¡ç† reflog 訊æ¯"
-#: command-list.h:151
+#: command-list.h:152
msgid "Manage set of tracked repositories"
msgstr "管ç†å·²è¿½è¹¤ç‰ˆæœ¬åº«"
-#: command-list.h:152
+#: command-list.h:153
msgid "Pack unpacked objects in a repository"
msgstr "打包版本庫中未打包物件"
-#: command-list.h:153
+#: command-list.h:154
msgid "Create, list, delete refs to replace objects"
msgstr "建立ã€åˆ—出ã€åˆªé™¤ç‰©ä»¶å–代引用"
-#: command-list.h:154
+#: command-list.h:155
msgid "Generates a summary of pending changes"
msgstr "生æˆå¾…定更改的摘è¦"
-#: command-list.h:155
+#: command-list.h:156
msgid "Reuse recorded resolution of conflicted merges"
msgstr "é‡ç”¨è¡çªåˆä½µçš„解決方案記錄"
-#: command-list.h:156
+#: command-list.h:157
msgid "Reset current HEAD to the specified state"
msgstr "é‡è¨­ç›®å‰ HEAD 到指定狀態"
-#: command-list.h:157
+#: command-list.h:158
msgid "Restore working tree files"
msgstr "復原工作å€æª”案"
-#: command-list.h:158
+#: command-list.h:159
msgid "Lists commit objects in reverse chronological order"
msgstr "按時間順åºåˆ—出æ交物件"
-#: command-list.h:159
+#: command-list.h:160
msgid "Pick out and massage parameters"
msgstr "é¸å‡ºä¸¦è™•ç†åƒæ•¸"
-#: command-list.h:160
+#: command-list.h:161
msgid "Revert some existing commits"
msgstr "還原一些ç¾å­˜æ交"
-#: command-list.h:161
+#: command-list.h:162
msgid "Remove files from the working tree and from the index"
msgstr "從工作å€å’Œç´¢å¼•ä¸­åˆªé™¤æª”案"
-#: command-list.h:162
+#: command-list.h:163
msgid "Send a collection of patches as emails"
msgstr "é€éŽé›»å­ä¿¡ä»¶å‚³é€ä¸€çµ„修補檔"
-#: command-list.h:163
+#: command-list.h:164
msgid "Push objects over Git protocol to another repository"
msgstr "使用 Git å”定推é€ç‰©ä»¶åˆ°å¦ä¸€å€‹ç‰ˆæœ¬åº«"
-#: command-list.h:164
+#: command-list.h:165
msgid "Git's i18n setup code for shell scripts"
msgstr "為 shell 腳本準備的 Git 國際化設定程å¼ç¢¼"
-#: command-list.h:165
+#: command-list.h:166
msgid "Common Git shell script setup code"
msgstr "常用的 Git shell 腳本設定程å¼ç¢¼"
-#: command-list.h:166
+#: command-list.h:167
msgid "Restricted login shell for Git-only SSH access"
msgstr "åªå…許 Git SSH å­˜å–çš„å—é™ç™»å…¥shell"
-#: command-list.h:167
+#: command-list.h:168
msgid "Summarize 'git log' output"
msgstr "'git log' 輸出摘è¦"
-#: command-list.h:168
+#: command-list.h:169
msgid "Show various types of objects"
msgstr "顯示å„種類型的物件"
-#: command-list.h:169
+#: command-list.h:170
msgid "Show branches and their commits"
msgstr "顯示分支和æ交"
-#: command-list.h:170
+#: command-list.h:171
msgid "Show packed archive index"
msgstr "顯示打包歸檔索引"
-#: command-list.h:171
+#: command-list.h:172
msgid "List references in a local repository"
msgstr "顯示本機版本庫中的引用"
-#: command-list.h:172
-msgid "Initialize and modify the sparse-checkout"
-msgstr "åˆå§‹åŒ–並修改稀ç–簽出"
-
+# 譯者:中文字串拼接,å¯åˆªé™¤å‰å°Žç©ºæ ¼
#: command-list.h:173
+msgid "Reduce your working tree to a subset of tracked files"
+msgstr "將工作å€é™ç¸®è‡³åªåŒ…å«è¿½è¹¤æª”案的å­é›†"
+
+#: command-list.h:174
msgid "Add file contents to the staging area"
msgstr "將檔案內容新增到索引"
-#: command-list.h:174
+#: command-list.h:175
msgid "Stash the changes in a dirty working directory away"
msgstr "儲è—髒工作å€ä¸­çš„修改"
-#: command-list.h:175
+#: command-list.h:176
msgid "Show the working tree status"
msgstr "顯示工作å€ç‹€æ…‹"
-#: command-list.h:176
+#: command-list.h:177
msgid "Remove unnecessary whitespace"
msgstr "刪除ä¸å¿…è¦çš„空白字元"
-#: command-list.h:177
+#: command-list.h:178
msgid "Initialize, update or inspect submodules"
msgstr "åˆå§‹åŒ–ã€æ›´æ–°æˆ–檢查å­æ¨¡çµ„"
-#: command-list.h:178
+#: command-list.h:179
msgid "Bidirectional operation between a Subversion repository and Git"
msgstr "Subversion 版本庫和 Git 之間的雙å‘動作"
-#: command-list.h:179
+#: command-list.h:180
msgid "Switch branches"
msgstr "切æ›åˆ†æ”¯"
-#: command-list.h:180
+#: command-list.h:181
msgid "Read, modify and delete symbolic refs"
msgstr "讀å–ã€ä¿®æ”¹å’Œåˆªé™¤ç¬¦è™Ÿå¼•ç”¨"
-#: command-list.h:181
+#: command-list.h:182
msgid "Create, list, delete or verify a tag object signed with GPG"
msgstr "建立ã€åˆ—出ã€åˆªé™¤æˆ–驗證一個 GPG ç°½å的標籤物件"
-#: command-list.h:182
+#: command-list.h:183
msgid "Creates a temporary file with a blob's contents"
msgstr "用資料物件的內容建立暫存檔"
-#: command-list.h:183
+#: command-list.h:184
msgid "Unpack objects from a packed archive"
msgstr "從打包檔案中解壓縮物件"
-#: command-list.h:184
+#: command-list.h:185
msgid "Register file contents in the working tree to the index"
msgstr "將工作å€çš„檔案內容註冊到索引"
-#: command-list.h:185
+#: command-list.h:186
msgid "Update the object name stored in a ref safely"
msgstr "安全地更新儲存於引用中的物件å稱"
-#: command-list.h:186
+#: command-list.h:187
msgid "Update auxiliary info file to help dumb servers"
msgstr "更新輔助訊æ¯æª”案以å”助啞å”定æœå‹™"
-#: command-list.h:187
+#: command-list.h:188
msgid "Send archive back to git-archive"
msgstr "將存檔傳é€å›ž git-archive"
-#: command-list.h:188
+#: command-list.h:189
msgid "Send objects packed back to git-fetch-pack"
msgstr "將物件壓縮包傳é€å›ž git-fetch-pack"
-#: command-list.h:189
+#: command-list.h:190
msgid "Show a Git logical variable"
msgstr "顯示 Git é‚輯變數"
-#: command-list.h:190
+#: command-list.h:191
msgid "Check the GPG signature of commits"
msgstr "檢查 GPG æ交簽å"
-#: command-list.h:191
+#: command-list.h:192
msgid "Validate packed Git archive files"
msgstr "驗證打包的 Git å°å­˜æª”案"
-#: command-list.h:192
+#: command-list.h:193
msgid "Check the GPG signature of tags"
msgstr "檢查標籤的 GPG ç°½å"
-#: command-list.h:193
+#: command-list.h:194
msgid "Show logs with difference each commit introduces"
msgstr "顯示æ¯ä¸€å€‹æ交引入的差異日誌"
-#: command-list.h:194
+#: command-list.h:195
msgid "Manage multiple working trees"
msgstr "管ç†å¤šå€‹å·¥ä½œå€"
-#: command-list.h:195
+#: command-list.h:196
msgid "Create a tree object from the current index"
msgstr "從目å‰ç´¢å¼•å»ºç«‹ä¸€å€‹æ¨¹ç‹€ç‰©ä»¶"
-#: command-list.h:196
+#: command-list.h:197
msgid "Defining attributes per path"
msgstr "定義路徑的屬性"
-#: command-list.h:197
+#: command-list.h:198
msgid "Git command-line interface and conventions"
msgstr "Git 指令列介é¢å’Œç´„定"
-#: command-list.h:198
+#: command-list.h:199
msgid "A Git core tutorial for developers"
msgstr "é¢å‘開發人員的 Git 核心教學"
-#: command-list.h:199
+#: command-list.h:200
msgid "Providing usernames and passwords to Git"
msgstr "將使用者å稱åŠå¯†ç¢¼æ供給 Git"
-#: command-list.h:200
+#: command-list.h:201
msgid "Git for CVS users"
msgstr "é©åˆ CVS 使用者的 Git å”助"
-#: command-list.h:201
+#: command-list.h:202
msgid "Tweaking diff output"
msgstr "調整差異輸出"
-#: command-list.h:202
+#: command-list.h:203
msgid "A useful minimum set of commands for Everyday Git"
msgstr "æ¯ä¸€å¤© Git 的一組有用的最å°æŒ‡ä»¤é›†åˆ"
-#: command-list.h:203
+#: command-list.h:204
msgid "Frequently asked questions about using Git"
msgstr "Git 使用的常見å•é¡Œ"
-#: command-list.h:204
+#: command-list.h:205
msgid "A Git Glossary"
msgstr "Git 詞彙表"
-#: command-list.h:205
+#: command-list.h:206
msgid "Hooks used by Git"
msgstr "Git 使用的掛鉤"
-#: command-list.h:206
+#: command-list.h:207
msgid "Specifies intentionally untracked files to ignore"
msgstr "忽略指定的未追蹤檔案"
-#: command-list.h:207
+#: command-list.h:208
msgid "The Git repository browser"
msgstr "Git 版本庫ç€è¦½å™¨"
-#: command-list.h:208
+#: command-list.h:209
msgid "Map author/committer names and/or E-Mail addresses"
msgstr "映射作者或æ交者的å稱和(或)電å­ä¿¡ç®±åœ°å€"
-#: command-list.h:209
+#: command-list.h:210
msgid "Defining submodule properties"
msgstr "定義å­æ¨¡çµ„屬性"
-#: command-list.h:210
+#: command-list.h:211
msgid "Git namespaces"
msgstr "Git å字空間"
-#: command-list.h:211
+#: command-list.h:212
msgid "Helper programs to interact with remote repositories"
msgstr "用來與é ç«¯ç‰ˆæœ¬åº«äº’å‹•çš„å”助工具"
-#: command-list.h:212
+#: command-list.h:213
msgid "Git Repository Layout"
msgstr "Git 版本庫é…ç½®"
-#: command-list.h:213
+#: command-list.h:214
msgid "Specifying revisions and ranges for Git"
msgstr "指定 Git 的版本和版本範åœ"
-#: command-list.h:214
+#: command-list.h:215
msgid "Mounting one repository inside another"
msgstr "在æŸå€‹ç‰ˆæœ¬åº«æŽ›è¼‰æŸå€‹ç‰ˆæœ¬åº«"
-#: command-list.h:215
+#: command-list.h:216
msgid "A tutorial introduction to Git"
msgstr "一個 Git 教學"
-#: command-list.h:216
+#: command-list.h:217
msgid "A tutorial introduction to Git: part two"
msgstr "一個 Git 教學:第二部分"
-#: command-list.h:217
+#: command-list.h:218
msgid "Git web interface (web frontend to Git repositories)"
msgstr "Git web 介é¢ï¼ˆGit 版本庫的 web å‰ç«¯ï¼‰"
-#: command-list.h:218
+#: command-list.h:219
msgid "An overview of recommended workflows with Git"
msgstr "Git 推薦的工作æµæ¦‚覽"
@@ -25043,66 +25601,44 @@ msgstr "嘗試和 $pretty_name çš„ç°¡å–®åˆä½µ"
msgid "Simple merge did not work, trying automatic merge."
msgstr "ç°¡å–®åˆä½µæœªç”Ÿæ•ˆï¼Œå˜—試自動åˆä½µã€‚"
-#: git-submodule.sh:401
-#, sh-format
-msgid "Unable to find current revision in submodule path '$displaypath'"
-msgstr "無法在å­æ¨¡çµ„路徑 '$displaypath' 中找到目å‰ç‰ˆæœ¬"
-
-#: git-submodule.sh:411
-#, sh-format
-msgid "Unable to fetch in submodule path '$sm_path'"
-msgstr "無法在å­æ¨¡çµ„路徑 '$sm_path' 中å–å¾—"
-
-#: git-submodule.sh:416
-#, sh-format
-msgid ""
-"Unable to find current ${remote_name}/${branch} revision in submodule path "
-"'$sm_path'"
-msgstr "無法在å­æ¨¡çµ„路徑 '$sm_path' 中找到目å‰ç‰ˆæœ¬ ${remote_name}/${branch}"
-
-#: git-submodule.sh:464
-#, sh-format
-msgid "Failed to recurse into submodule path '$displaypath'"
-msgstr "無法éžè¿´é€²å­æ¨¡çµ„路徑 '$displaypath'"
-
#: git-sh-setup.sh:89 git-sh-setup.sh:94
#, sh-format
msgid "usage: $dashless $USAGE"
msgstr "用法:$dashless $USAGE"
-#: git-sh-setup.sh:183
+#: git-sh-setup.sh:182
#, sh-format
msgid "Cannot chdir to $cdup, the toplevel of the working tree"
msgstr "ä¸èƒ½åˆ‡æ›ç›®éŒ„到 $cdup,工作å€çš„頂級目錄"
-#: git-sh-setup.sh:192 git-sh-setup.sh:199
+#: git-sh-setup.sh:191 git-sh-setup.sh:198
#, sh-format
msgid "fatal: $program_name cannot be used without a working tree."
msgstr "致命錯誤:$program_name ä¸èƒ½åœ¨æ²’有工作å€çš„情æ³ä¸‹ä½¿ç”¨ã€‚"
-#: git-sh-setup.sh:213
+#: git-sh-setup.sh:212
msgid "Cannot rewrite branches: You have unstaged changes."
msgstr "ä¸èƒ½é‡å¯«åˆ†æ”¯ï¼šæ‚¨æœ‰æœªæš«å­˜çš„變更。"
-#: git-sh-setup.sh:216
+#: git-sh-setup.sh:215
#, sh-format
msgid "Cannot $action: You have unstaged changes."
msgstr "ä¸èƒ½ $action:您有未暫存的變更。"
-#: git-sh-setup.sh:227
+#: git-sh-setup.sh:226
#, sh-format
msgid "Cannot $action: Your index contains uncommitted changes."
msgstr "ä¸èƒ½ $action:您的索引中包å«æœªæ交的變更。"
-#: git-sh-setup.sh:229
+#: git-sh-setup.sh:228
msgid "Additionally, your index contains uncommitted changes."
msgstr "而且您的索引中包å«æœªæ交的變更。"
-#: git-sh-setup.sh:349
+#: git-sh-setup.sh:348
msgid "You need to run this command from the toplevel of the working tree."
msgstr "您需è¦åœ¨å·¥ä½œå€çš„頂級目錄中執行這個指令。"
-#: git-sh-setup.sh:354
+#: git-sh-setup.sh:353
msgid "Unable to determine absolute path of git directory"
msgstr "ä¸èƒ½ç¢ºå®š git 目錄的絕å°è·¯å¾‘"
@@ -25759,23 +26295,23 @@ msgstr "ä¸èƒ½ä»¥ 7bit å½¢å¼å‚³é€è¨Šæ¯"
msgid "invalid transfer encoding"
msgstr "無效的傳é€ç·¨ç¢¼"
-#: git-send-email.perl:2095
+#: git-send-email.perl:2100
#, perl-format
msgid ""
-"fatal: %s: rejected by sendemail-validate hook\n"
+"fatal: %s: rejected by %s hook\n"
"%s\n"
"warning: no patches were sent\n"
msgstr ""
-"致命錯誤:%s:被 sendemail-validate 掛鈎拒絕\n"
+"致命錯誤:%s:被 %s 掛鈎拒絕\n"
"%s\n"
"警告:修補檔未能傳é€\n"
-#: git-send-email.perl:2105 git-send-email.perl:2158 git-send-email.perl:2168
+#: git-send-email.perl:2110 git-send-email.perl:2163 git-send-email.perl:2173
#, perl-format
msgid "unable to open %s: %s\n"
msgstr "ä¸èƒ½é–‹å•Ÿ %s:%s\n"
-#: git-send-email.perl:2108
+#: git-send-email.perl:2113
#, perl-format
msgid ""
"fatal: %s:%d is longer than 998 characters\n"
@@ -25784,17 +26320,272 @@ msgstr ""
"致命錯誤:%s:%d çš„å­—å…ƒæ•¸è¶…éŽ 998\n"
"警告:修補檔未能傳é€\n"
-#: git-send-email.perl:2126
+#: git-send-email.perl:2131
#, 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:2130
+#: git-send-email.perl:2135
#, perl-format
msgid "Do you really want to send %s? [y|N]: "
msgstr "您真的è¦å‚³é€ %s?[y|N]: "
+#, perl-format
+#~ msgid "fatal: %s: rejected by %s hook\n"
+#~ msgstr "致命錯誤:%s:被 %s 掛勾拒絕\n"
+
+#~ msgid "git archive --list"
+#~ msgstr "git archive --list"
+
+#, c-format
+#~ msgid "unknown value for --diff-merges: %s"
+#~ msgstr "--diff-merges 的值無效:%s"
+
+#, c-format
+#~ msgid "invalid value '%s' for lsrefs.unborn"
+#~ msgstr "lsrefs.unborn 的值「%sã€ç„¡æ•ˆ"
+
+#~ msgid "backend for `git stash -p`"
+#~ msgstr "`git stash -p` 的後端"
+
+#, c-format
+#~ msgid "Invalid value for --empty: %s"
+#~ msgstr "傳入 --empty 的值無效:%s"
+
+#, c-format
+#~ msgid "Invalid value for --patch-format: %s"
+#~ msgstr "無效的 --patch-format 值:%s"
+
+#, c-format
+#~ msgid "Invalid value for --show-current-patch: %s"
+#~ msgstr "無效的 --show-current-patch 值:%s"
+
+#~ msgid ""
+#~ "git bisect--helper --bisect-terms [--term-good | --term-old | --term-bad "
+#~ "| --term-new]"
+#~ msgstr ""
+#~ "git bisect--helper --bisect-terms [--term-good | --term-old | --term-bad "
+#~ "| --term-new]"
+
+#~ msgid "git bisect--helper --bisect-next"
+#~ msgstr "git bisect--helper --bisect-next"
+
+#~ msgid "git bisect--helper --bisect-visualize"
+#~ msgstr "git bisect--helper --bisect-visualize"
+
+#, c-format
+#~ msgid "invalid color '%s' in color.blame.repeatedLines"
+#~ msgstr "設定 color.blame.repeatedLines 中的無效é¡è‰² '%s'"
+
+#~ msgid "invalid value for blame.coloring"
+#~ msgstr "設定 blame.coloring 中的無效å–值"
+
+#~ msgid ""
+#~ "git cat-file (-t [--allow-unknown-type] | -s [--allow-unknown-type] | -e "
+#~ "| -p | <type> | --textconv | --filters) [--path=<path>] <object>"
+#~ msgstr ""
+#~ "git cat-file (-t [--allow-unknown-type] | -s [--allow-unknown-type] | -e "
+#~ "| -p | <類型> | --textconv | --filters) [--path=<路徑>] <物件>"
+
+#~ msgid "show object type"
+#~ msgstr "顯示物件類型"
+
+#~ msgid "exit with zero when there's no error"
+#~ msgstr "當沒有錯誤時離開並返回零"
+
+#~ msgid "show info and content of objects fed from the standard input"
+#~ msgstr "顯示從標準輸入æ供的物件的訊æ¯å’Œå…§å®¹"
+
+#~ msgid "show info about objects fed from the standard input"
+#~ msgstr "顯示從標準輸入æ供的物件的訊æ¯"
+
+#~ msgid "follow in-tree symlinks (used with --batch or --batch-check)"
+#~ msgstr "跟隨樹內符號連çµï¼ˆå’Œ --batch 或 --batch-check 共用)"
+
+#~ msgid "show all objects with --batch or --batch-check"
+#~ msgstr "使用 --batch 或 --batch-check åƒæ•¸é¡¯ç¤ºæ‰€æœ‰ç‰©ä»¶"
+
+#~ msgid "do not order --batch-all-objects output"
+#~ msgstr "ä¸è¦å° --batch-all-objects 的輸出排åº"
+
+#~ msgid "set up tracking mode (see git-pull(1))"
+#~ msgstr "設定追蹤模å¼ï¼ˆåƒè¦‹ git-pull(1))"
+
+#~ msgid "Using both --reset-author and --author does not make sense"
+#~ msgstr "åŒæ™‚使用 --reset-author å’Œ --author 沒有æ„義"
+
+#~ msgid "Options --squash and --fixup cannot be used together"
+#~ msgstr "é¸é … --squash å’Œ --fixup ä¸èƒ½åŒæ™‚使用"
+
+#~ msgid "Only one of -c/-C/-F/--fixup can be used."
+#~ msgstr "åªèƒ½ç”¨ä¸€å€‹ -c/-C/-F/--fixup é¸é …。"
+
+#~ msgid "Option -m cannot be combined with -c/-C/-F."
+#~ msgstr "é¸é … -m ä¸èƒ½å’Œ -c/-C/-F åŒæ™‚使用。"
+
+#~ msgid ""
+#~ "Only one of --include/--only/--all/--interactive/--patch can be used."
+#~ msgstr "åªèƒ½ç”¨ä¸€å€‹ --include/--only/--all/--interactive/--patch é¸é …。"
+
+#~ msgid "git count-objects [-v] [-H | --human-readable]"
+#~ msgstr "git count-objects [-v] [-H | --human-readable]"
+
+#, c-format
+#~ msgid "configuration fetch.output contains invalid value %s"
+#~ msgstr "設定變數 fetch.output 包å«ç„¡æ•ˆå€¼ %s"
+
+#~ msgid "--cached or --untracked cannot be used with --no-index"
+#~ msgstr "--cached 或 --untracked ä¸èƒ½èˆ‡ --no-index åŒæ™‚使用"
+
+#~ msgid "--untracked cannot be used with --cached"
+#~ msgstr "--untracked ä¸èƒ½èˆ‡ --cached 一起使用"
+
+#~ msgid "git hash-object --stdin-paths"
+#~ msgstr "git hash-object --stdin-paths"
+
+#~ msgid "git help [-g|--guides]"
+#~ msgstr "git help [-g|--guides]"
+
+#~ msgid "git help [-c|--config]"
+#~ msgstr "git help [-c|--config]"
+
+#~ msgid "git mktag"
+#~ msgstr "git mktag"
+
+#~ msgid "git mktree [-z] [--missing] [--batch]"
+#~ msgstr "git mktree [-z] [--missing] [--batch]"
+
+#~ msgid "read from stdin"
+#~ msgstr "從標準輸入讀å–"
+
+#~ msgid "git notes merge --commit [-v | -q]"
+#~ msgstr "git notes merge --commit [-v | -q]"
+
+#~ msgid "git notes merge --abort [-v | -q]"
+#~ msgstr "git notes merge --abort [-v | -q]"
+
+#~ msgid "git notes get-ref"
+#~ msgstr "git notes get-ref"
+
+#~ msgid "invalid value for --missing"
+#~ msgstr "é¸é … --missing 的值無效"
+
+#~ msgid "git prune-packed [-n | --dry-run] [-q | --quiet]"
+#~ msgstr "git prune-packed [-n | --dry-run] [-q | --quiet]"
+
+#, c-format
+#~ msgid "Invalid value for %s: %s"
+#~ msgstr "%s 的值無效:%s"
+
+#, c-format
+#~ msgid "Invalid value for pull.ff: %s"
+#~ msgstr "pull.ff çš„å–值無效:%s"
+
+#~ msgid "git rebase --continue | --abort | --skip | --edit-todo"
+#~ msgstr "git rebase --continue | --abort | --skip | --edit-todo"
+
+#, c-format
+#~ msgid "'%s' is not a valid timestamp"
+#~ msgstr "'%s' ä¸æ˜¯ä¸€å€‹æœ‰æ•ˆçš„時間戳"
+
+#~ msgid "git reflog [ show | expire | delete | exists ]"
+#~ msgstr "git reflog [ show | expire | delete | exists ]"
+
+#~ msgid "git remote [-v | --verbose]"
+#~ msgstr "git remote [-v | --verbose]"
+
+#~ msgid "git replace [-f] --convert-graft-file"
+#~ msgstr "git replace [-f] --convert-graft-file"
+
+#, c-format
+#~ msgid ""
+#~ "\n"
+#~ "It took %.2f seconds to enumerate unstaged changes after reset. You can\n"
+#~ "use '--quiet' to avoid this. Set the config setting reset.quiet to true\n"
+#~ "to make this the default.\n"
+#~ msgstr ""
+#~ "\n"
+#~ "é‡è¨­å¾Œï¼Œæžšèˆ‰æœªæš«å­˜è®Šæ›´èŠ±è²»äº† %.2f 秒。 您å¯ä»¥ä½¿ç”¨ '--quiet' é¿å…此情æ³ã€‚\n"
+#~ "將設定變數 reset.quiet 設定為 true å¯ä½¿å…¶æˆç‚ºé è¨­å€¼ã€‚\n"
+
+#~ msgid "git sparse-checkout list"
+#~ msgstr "git sparse-checkout list"
+
+#~ msgid "unable to upgrade repository format to enable worktreeConfig"
+#~ msgstr "無法å‡ç´šç‰ˆæœ¬åº«æ ¼å¼ï¼Œä»¥è‡´ç„¡æ³•å•Ÿç”¨ worktreeConfig"
+
+#~ msgid "git sparse-checkout init [--cone] [--[no-]sparse-index]"
+#~ msgstr "git sparse-checkout init [--cone] [--[no-]sparse-index]"
+
+#~ msgid "git sparse-checkout reapply [--[no-]cone] [--[no-]sparse-index]"
+#~ msgstr "git sparse-checkout reapply [--[no-]cone] [--[no-]sparse-index]"
+
+#~ msgid "git sparse-checkout disable"
+#~ msgstr "git sparse-checkout disable"
+
+#~ msgid ""
+#~ "the stash.useBuiltin support has been removed!\n"
+#~ "See its entry in 'git help config' for details."
+#~ msgstr ""
+#~ "å° stash.useBuiltin 的支æ´å·²è¢«åˆªé™¤ï¼\n"
+#~ "詳見「git help configã€ä¸­çš„æ¢ç›®ã€‚"
+
+#~ msgid "git stripspace [-s | --strip-comments]"
+#~ msgstr "git stripspace [-s | --strip-comments]"
+
+#~ msgid "git stripspace [-c | --comment-lines]"
+#~ msgstr "git stripspace [-c | --comment-lines]"
+
+#~ msgid "submodule--helper print-default-remote takes no arguments"
+#~ msgstr "submodule--helper print-default-remote ä¸å¸¶åƒæ•¸"
+
+#~ msgid "git submodule--helper update-clone [--prefix=<path>] [<path>...]"
+#~ msgstr "git submodule--helper update-clone [--prefix=<路徑>] [<路徑>...]"
+
+#~ msgid "suppress output for update by rebase or merge"
+#~ msgstr "éš±è— rebase 或 merge 觸發之更新的輸出"
+
+#~ msgid "overrides update mode in case the repository is a fresh clone"
+#~ msgstr "如果版本庫是剛複製的,就覆蓋更新模å¼"
+
+#~ msgid "depth for shallow fetch"
+#~ msgstr "淺 fetch 的深度"
+
+#~ msgid "sha1"
+#~ msgstr "sha1"
+
+#~ msgid "SHA1 expected by superproject"
+#~ msgstr "上層專案é æœŸæ‡‰æ˜¯ SHA1"
+
+#~ msgid "subsha1"
+#~ msgstr "subsha1"
+
+#~ msgid "SHA1 of submodule's HEAD"
+#~ msgstr "å­æ¨¡çµ„ HEAD çš„ SHA1"
+
+#~ msgid "git submodule--helper run-update-procedure [<options>] <path>"
+#~ msgstr "git submodule--helper run-update-procedure [<é¸é …>] [<路徑>]"
+
+#~ msgid "git submodule--helper config --check-writeable"
+#~ msgstr "git submodule--helper config --check-writeable"
+
+#~ msgid "git update-server-info [--force]"
+#~ msgstr "git update-server-info [--force]"
+
+#~ msgid "Initialize and modify the sparse-checkout"
+#~ msgstr "åˆå§‹åŒ–並修改稀ç–簽出"
+
+#, sh-format
+#~ msgid ""
+#~ "Unable to find current ${remote_name}/${branch} revision in submodule "
+#~ "path '$sm_path'"
+#~ msgstr "無法在å­æ¨¡çµ„路徑 '$sm_path' 中找到目å‰ç‰ˆæœ¬ ${remote_name}/${branch}"
+
+#, sh-format
+#~ msgid "Failed to recurse into submodule path '$displaypath'"
+#~ msgstr "無法éžè¿´é€²å­æ¨¡çµ„路徑 '$displaypath'"
+
#~ msgid "--index outside a repository"
#~ msgstr "--index 在版本庫之外"
@@ -26213,9 +27004,6 @@ msgstr "您真的è¦å‚³é€ %s?[y|N]: "
#~ msgid "cannot store pack file"
#~ msgstr "無法儲存包檔案"
-#~ msgid "cannot store index file"
-#~ msgstr "無法儲存索引檔案"
-
#~ msgid "exclude patterns are read from <file>"
#~ msgstr "從 <檔案> 中讀å–排除模å¼"
@@ -26342,21 +27130,12 @@ msgstr "您真的è¦å‚³é€ %s?[y|N]: "
#~ msgid "socket/pipe already in use: '%s'"
#~ msgstr "通訊端 (socket) æˆ–ç®¡é“ (pipe) 已在使用:「%sã€"
-#~ msgid "could not start server on: '%s'"
-#~ msgstr "無法在下述ä½ç½®å•Ÿå‹•ä¼ºæœå™¨ï¼šã€Œ%sã€"
-
#~ msgid "could not spawn daemon in the background"
#~ msgstr "無法在背景啟動 (spawn) 守護程å¼"
#~ msgid "waitpid failed"
#~ msgstr "waitpid 失敗"
-#~ msgid "daemon not online yet"
-#~ msgstr "守護程å¼å°šæœªä¸Šç·š"
-
-#~ msgid "daemon failed to start"
-#~ msgstr "無法啟動守護程å¼"
-
#~ msgid "waitpid is confused"
#~ msgstr "waitpid 被混淆"
@@ -26743,9 +27522,6 @@ msgstr "您真的è¦å‚³é€ %s?[y|N]: "
#~ msgid "Error deleting remote-tracking branch '%s'"
#~ msgstr "無法刪除é ç«¯è¿½è¹¤åˆ†æ”¯ '%s'"
-#~ msgid "Error deleting branch '%s'"
-#~ msgstr "無法刪除分支 '%s'"
-
#~ msgid "show parse tree for grep expression"
#~ msgstr "顯示 grep 表é”å¼çš„解æžæ¨¹"
diff --git a/pretty.h b/pretty.h
index 2f16acd213..f34e24c53a 100644
--- a/pretty.h
+++ b/pretty.h
@@ -2,6 +2,7 @@
#define PRETTY_H
#include "cache.h"
+#include "date.h"
#include "string-list.h"
struct commit;
@@ -163,4 +164,13 @@ int format_set_trailers_options(struct process_trailer_options *opts,
const char **arg,
char **invalid_arg);
+/*
+ * Like show_date, but pull the timestamp and tz parameters from
+ * the ident_split. It will also sanity-check the values and produce
+ * a well-known sentinel date if they appear bogus.
+ */
+const char *show_ident_date(const struct ident_split *id,
+ const struct date_mode *mode);
+
+
#endif /* PRETTY_H */
diff --git a/progress.c b/progress.c
index 680c6a8bf9..0cdd875d37 100644
--- a/progress.c
+++ b/progress.c
@@ -311,32 +311,39 @@ struct progress *start_delayed_sparse_progress(const char *title,
static void finish_if_sparse(struct progress *progress)
{
- if (progress &&
- progress->sparse &&
+ if (progress->sparse &&
progress->last_value != progress->total)
display_progress(progress, progress->total);
}
-void stop_progress(struct progress **p_progress)
+static void force_last_update(struct progress *progress, const char *msg)
{
- if (!p_progress)
- BUG("don't provide NULL to stop_progress");
-
- finish_if_sparse(*p_progress);
-
- if (*p_progress) {
- trace2_data_intmax("progress", the_repository, "total_objects",
- (*p_progress)->total);
+ char *buf;
+ struct throughput *tp = progress->throughput;
+
+ if (tp) {
+ uint64_t now_ns = progress_getnanotime(progress);
+ unsigned int misecs, rate;
+ misecs = ((now_ns - progress->start_ns) * 4398) >> 32;
+ rate = tp->curr_total / (misecs ? misecs : 1);
+ throughput_string(&tp->display, tp->curr_total, rate);
+ }
+ progress_update = 1;
+ buf = xstrfmt(", %s.\n", msg);
+ display(progress, progress->last_value, buf);
+ free(buf);
+}
- if ((*p_progress)->throughput)
- trace2_data_intmax("progress", the_repository,
- "total_bytes",
- (*p_progress)->throughput->curr_total);
+static void log_trace2(struct progress *progress)
+{
+ trace2_data_intmax("progress", the_repository, "total_objects",
+ progress->total);
- trace2_region_leave("progress", (*p_progress)->title, the_repository);
- }
+ if (progress->throughput)
+ trace2_data_intmax("progress", the_repository, "total_bytes",
+ progress->throughput->curr_total);
- stop_progress_msg(p_progress, _("done"));
+ trace2_region_leave("progress", progress->title, the_repository);
}
void stop_progress_msg(struct progress **p_progress, const char *msg)
@@ -350,23 +357,12 @@ void stop_progress_msg(struct progress **p_progress, const char *msg)
if (!progress)
return;
*p_progress = NULL;
- if (progress->last_value != -1) {
- /* Force the last update */
- char *buf;
- struct throughput *tp = progress->throughput;
-
- if (tp) {
- uint64_t now_ns = progress_getnanotime(progress);
- unsigned int misecs, rate;
- misecs = ((now_ns - progress->start_ns) * 4398) >> 32;
- rate = tp->curr_total / (misecs ? misecs : 1);
- throughput_string(&tp->display, tp->curr_total, rate);
- }
- progress_update = 1;
- buf = xstrfmt(", %s.\n", msg);
- display(progress, progress->last_value, buf);
- free(buf);
- }
+
+ finish_if_sparse(progress);
+ if (progress->last_value != -1)
+ force_last_update(progress, msg);
+ log_trace2(progress);
+
clear_progress_signal();
strbuf_release(&progress->counters_sb);
if (progress->throughput)
diff --git a/progress.h b/progress.h
index f1913acf73..3a945637c8 100644
--- a/progress.h
+++ b/progress.h
@@ -1,5 +1,6 @@
#ifndef PROGRESS_H
#define PROGRESS_H
+#include "gettext.h"
struct progress;
@@ -18,7 +19,9 @@ struct progress *start_sparse_progress(const char *title, uint64_t total);
struct progress *start_delayed_progress(const char *title, uint64_t total);
struct progress *start_delayed_sparse_progress(const char *title,
uint64_t total);
-void stop_progress(struct progress **progress);
-void stop_progress_msg(struct progress **progress, const char *msg);
-
+void stop_progress_msg(struct progress **p_progress, const char *msg);
+static inline void stop_progress(struct progress **p_progress)
+{
+ stop_progress_msg(p_progress, _("done"));
+}
#endif
diff --git a/range-diff.c b/range-diff.c
index 30a4de5c2d..b72eb9fdbe 100644
--- a/range-diff.c
+++ b/range-diff.c
@@ -40,6 +40,7 @@ static int read_patches(const char *range, struct string_list *list,
char *line, *current_filename = NULL;
ssize_t len;
size_t size;
+ int ret = -1;
strvec_pushl(&cp.args, "log", "--no-color", "-p", "--no-merges",
"--reverse", "--date-order", "--decorate=no",
@@ -68,10 +69,10 @@ static int read_patches(const char *range, struct string_list *list,
if (strbuf_read(&contents, cp.out, 0) < 0) {
error_errno(_("could not read `log` output"));
finish_command(&cp);
- return -1;
+ goto cleanup;
}
if (finish_command(&cp))
- return -1;
+ goto cleanup;
line = contents.buf;
size = contents.len;
@@ -95,12 +96,9 @@ static int read_patches(const char *range, struct string_list *list,
CALLOC_ARRAY(util, 1);
if (get_oid(p, &util->oid)) {
error(_("could not parse commit '%s'"), p);
- free(util);
- free(current_filename);
+ FREE_AND_NULL(util);
string_list_clear(list, 1);
- strbuf_release(&buf);
- strbuf_release(&contents);
- return -1;
+ goto cleanup;
}
util->matching = -1;
in_header = 1;
@@ -111,11 +109,8 @@ static int read_patches(const char *range, struct string_list *list,
error(_("could not parse first line of `log` output: "
"did not start with 'commit ': '%s'"),
line);
- free(current_filename);
string_list_clear(list, 1);
- strbuf_release(&buf);
- strbuf_release(&contents);
- return -1;
+ goto cleanup;
}
if (starts_with(line, "diff --git")) {
@@ -136,12 +131,9 @@ static int read_patches(const char *range, struct string_list *list,
if (len < 0) {
error(_("could not parse git header '%.*s'"),
orig_len, line);
- free(util);
- free(current_filename);
+ FREE_AND_NULL(util);
string_list_clear(list, 1);
- strbuf_release(&buf);
- strbuf_release(&contents);
- return -1;
+ goto cleanup;
}
strbuf_addstr(&buf, " ## ");
if (patch.is_new > 0)
@@ -165,6 +157,7 @@ static int read_patches(const char *range, struct string_list *list,
patch.old_mode, patch.new_mode);
strbuf_addstr(&buf, " ##");
+ release_patch(&patch);
} else if (in_header) {
if (starts_with(line, "Author: ")) {
strbuf_addstr(&buf, " ## Metadata ##\n");
@@ -218,6 +211,9 @@ static int read_patches(const char *range, struct string_list *list,
strbuf_addch(&buf, '\n');
util->diffsize++;
}
+
+ ret = 0;
+cleanup:
strbuf_release(&contents);
if (util)
@@ -225,7 +221,7 @@ static int read_patches(const char *range, struct string_list *list,
strbuf_release(&buf);
free(current_filename);
- return 0;
+ return ret;
}
static int patch_util_cmp(const void *dummy, const struct patch_util *a,
diff --git a/reachable.c b/reachable.c
index 84e3d0d75e..b9f4ad886e 100644
--- a/reachable.c
+++ b/reachable.c
@@ -205,7 +205,7 @@ void mark_reachable_objects(struct rev_info *revs, int mark_reflog,
cp.progress = progress;
cp.count = 0;
- bitmap_git = prepare_bitmap_walk(revs, NULL, 0);
+ bitmap_git = prepare_bitmap_walk(revs, 0);
if (bitmap_git) {
traverse_bitmap_commit_list(bitmap_git, revs, mark_object_seen);
free_bitmap_index(bitmap_git);
diff --git a/read-cache.c b/read-cache.c
index cbe73f14e5..60355f5ad6 100644
--- a/read-cache.c
+++ b/read-cache.c
@@ -28,6 +28,7 @@
#include "sparse-index.h"
#include "csum-file.h"
#include "promisor-remote.h"
+#include "hook.h"
/* Mask for the name length in ce_flags in the on-disk index */
@@ -133,7 +134,7 @@ static void replace_index_entry(struct index_state *istate, int nr, struct cache
void rename_index_entry_at(struct index_state *istate, int nr, const char *new_name)
{
- struct cache_entry *old_entry = istate->cache[nr], *new_entry;
+ struct cache_entry *old_entry = istate->cache[nr], *new_entry, *refreshed;
int namelen = strlen(new_name);
new_entry = make_empty_cache_entry(istate, namelen);
@@ -146,7 +147,20 @@ void rename_index_entry_at(struct index_state *istate, int nr, const char *new_n
cache_tree_invalidate_path(istate, old_entry->name);
untracked_cache_remove_from_index(istate, old_entry->name);
remove_index_entry_at(istate, nr);
- add_index_entry(istate, new_entry, ADD_CACHE_OK_TO_ADD|ADD_CACHE_OK_TO_REPLACE);
+
+ /*
+ * Refresh the new index entry. Using 'refresh_cache_entry' ensures
+ * we only update stat info if the entry is otherwise up-to-date (i.e.,
+ * the contents/mode haven't changed). This ensures that we reflect the
+ * 'ctime' of the rename in the index without (incorrectly) updating
+ * the cached stat info to reflect unstaged changes on disk.
+ */
+ refreshed = refresh_cache_entry(istate, new_entry, CE_MATCH_REFRESH);
+ if (refreshed && refreshed != new_entry) {
+ add_index_entry(istate, refreshed, ADD_CACHE_OK_TO_ADD|ADD_CACHE_OK_TO_REPLACE);
+ discard_cache_entry(new_entry);
+ } else
+ add_index_entry(istate, new_entry, ADD_CACHE_OK_TO_ADD|ADD_CACHE_OK_TO_REPLACE);
}
void fill_stat_data(struct stat_data *sd, struct stat *st)
@@ -735,7 +749,7 @@ static struct cache_entry *create_alias_ce(struct index_state *istate,
void set_object_name_for_intent_to_add_entry(struct cache_entry *ce)
{
struct object_id oid;
- if (write_object_file("", 0, blob_type, &oid))
+ if (write_object_file("", 0, OBJ_BLOB, &oid))
die(_("cannot create an empty blob in the object database"));
oidcpy(&ce->oid, &oid);
}
@@ -1339,9 +1353,6 @@ static int add_index_entry_with_check(struct index_state *istate, struct cache_e
int skip_df_check = option & ADD_CACHE_SKIP_DFCHECK;
int new_only = option & ADD_CACHE_NEW_ONLY;
- if (!(option & ADD_CACHE_KEEP_CACHE_TREE))
- cache_tree_invalidate_path(istate, ce->name);
-
/*
* If this entry's path sorts after the last entry in the index,
* we can avoid searching for it.
@@ -1352,6 +1363,13 @@ static int add_index_entry_with_check(struct index_state *istate, struct cache_e
else
pos = index_name_stage_pos(istate, ce->name, ce_namelen(ce), ce_stage(ce), EXPAND_SPARSE);
+ /*
+ * Cache tree path should be invalidated only after index_name_stage_pos,
+ * in case it expands a sparse index.
+ */
+ if (!(option & ADD_CACHE_KEEP_CACHE_TREE))
+ cache_tree_invalidate_path(istate, ce->name);
+
/* existing match? Just replace it. */
if (pos >= 0) {
if (!new_only)
@@ -2242,6 +2260,20 @@ static unsigned long load_cache_entries_threaded(struct index_state *istate, con
return consumed;
}
+static void set_new_index_sparsity(struct index_state *istate)
+{
+ /*
+ * If the index's repo exists, mark it sparse according to
+ * repo settings.
+ */
+ if (istate->repo) {
+ prepare_repo_settings(istate->repo);
+ if (!istate->repo->settings.command_requires_full_index &&
+ is_sparse_index_allowed(istate, 0))
+ istate->sparse_index = 1;
+ }
+}
+
/* remember to discard_cache() before reading a different cache! */
int do_read_index(struct index_state *istate, const char *path, int must_exist)
{
@@ -2263,8 +2295,10 @@ int do_read_index(struct index_state *istate, const char *path, int must_exist)
istate->timestamp.nsec = 0;
fd = open(path, O_RDONLY);
if (fd < 0) {
- if (!must_exist && errno == ENOENT)
+ if (!must_exist && errno == ENOENT) {
+ set_new_index_sparsity(istate);
return 0;
+ }
die_errno(_("%s: index file open failed"), path);
}
@@ -2775,7 +2809,7 @@ static int repo_verify_index(struct repository *repo)
return verify_index_from(repo->index, repo->index_file);
}
-static int has_racy_timestamp(struct index_state *istate)
+int has_racy_timestamp(struct index_state *istate)
{
int entries = istate->cache_nr;
int i;
@@ -2837,7 +2871,7 @@ static int record_ieot(void)
* rely on it.
*/
static int do_write_index(struct index_state *istate, struct tempfile *tempfile,
- int strip_extensions)
+ int strip_extensions, unsigned flags)
{
uint64_t start = getnanotime();
struct hashfile *f;
@@ -2851,6 +2885,7 @@ static int do_write_index(struct index_state *istate, struct tempfile *tempfile,
struct strbuf previous_name_buf = STRBUF_INIT, *previous_name;
int drop_cache_tree = istate->drop_cache_tree;
off_t offset;
+ int csum_fsync_flag;
int ieot_entries = 1;
struct index_entry_offset_table *ieot = NULL;
int nr, nr_threads;
@@ -3009,6 +3044,9 @@ static int do_write_index(struct index_state *istate, struct tempfile *tempfile,
!is_null_oid(&istate->split_index->base_oid)) {
struct strbuf sb = STRBUF_INIT;
+ if (istate->sparse_index)
+ die(_("cannot write split index for a sparse index"));
+
err = write_link_extension(&sb, istate) < 0 ||
write_index_ext_header(f, eoie_c, CACHE_EXT_LINK,
sb.len) < 0;
@@ -3081,7 +3119,13 @@ static int do_write_index(struct index_state *istate, struct tempfile *tempfile,
return -1;
}
- finalize_hashfile(f, istate->oid.hash, CSUM_HASH_IN_STREAM);
+ csum_fsync_flag = 0;
+ if (!alternate_index_output && (flags & COMMIT_LOCK))
+ csum_fsync_flag = CSUM_FSYNC;
+
+ finalize_hashfile(f, istate->oid.hash, FSYNC_COMPONENT_INDEX,
+ CSUM_HASH_IN_STREAM | csum_fsync_flag);
+
if (close_tempfile_gently(tempfile)) {
error(_("could not close '%s'"), get_tempfile_path(tempfile));
return -1;
@@ -3136,7 +3180,7 @@ static int do_write_locked_index(struct index_state *istate, struct lock_file *l
*/
trace2_region_enter_printf("index", "do_write_index", the_repository,
"%s", get_lock_file_path(lock));
- ret = do_write_index(istate, lock->tempfile, 0);
+ ret = do_write_index(istate, lock->tempfile, 0, flags);
trace2_region_leave_printf("index", "do_write_index", the_repository,
"%s", get_lock_file_path(lock));
@@ -3150,7 +3194,7 @@ static int do_write_locked_index(struct index_state *istate, struct lock_file *l
else
ret = close_lock_file_gently(lock);
- run_hook_le(NULL, "post-index-change",
+ run_hooks_l("post-index-change",
istate->updated_workdir ? "1" : "0",
istate->updated_skipworktree ? "1" : "0", NULL);
istate->updated_workdir = 0;
@@ -3230,7 +3274,7 @@ static int clean_shared_index_files(const char *current_hex)
}
static int write_shared_index(struct index_state *istate,
- struct tempfile **temp)
+ struct tempfile **temp, unsigned flags)
{
struct split_index *si = istate->split_index;
int ret, was_full = !istate->sparse_index;
@@ -3240,7 +3284,7 @@ static int write_shared_index(struct index_state *istate,
trace2_region_enter_printf("index", "shared/do_write_index",
the_repository, "%s", get_tempfile_path(*temp));
- ret = do_write_index(si->base, *temp, 1);
+ ret = do_write_index(si->base, *temp, 1, flags);
trace2_region_leave_printf("index", "shared/do_write_index",
the_repository, "%s", get_tempfile_path(*temp));
@@ -3349,7 +3393,7 @@ int write_locked_index(struct index_state *istate, struct lock_file *lock,
ret = do_write_locked_index(istate, lock, flags);
goto out;
}
- ret = write_shared_index(istate, &temp);
+ ret = write_shared_index(istate, &temp, flags);
saved_errno = errno;
if (is_tempfile_active(temp))
diff --git a/ref-filter.c b/ref-filter.c
index f42e807458..2413f889f4 100644
--- a/ref-filter.c
+++ b/ref-filter.c
@@ -1251,7 +1251,7 @@ static void grab_date(const char *buf, struct atom_value *v, const char *atomnam
char *zone;
timestamp_t timestamp;
long tz;
- struct date_mode date_mode = { DATE_NORMAL };
+ struct date_mode date_mode = DATE_MODE_INIT;
const char *formatp;
/*
@@ -1276,6 +1276,7 @@ static void grab_date(const char *buf, struct atom_value *v, const char *atomnam
goto bad;
v->s = xstrdup(show_date(timestamp, tz, &date_mode));
v->value = timestamp;
+ date_mode_release(&date_mode);
return;
bad:
v->s = xstrdup("");
diff --git a/reflog-walk.h b/reflog-walk.h
index f26408f6cc..e9e00ffd47 100644
--- a/reflog-walk.h
+++ b/reflog-walk.h
@@ -5,6 +5,7 @@
struct commit;
struct reflog_walk_info;
+struct date_mode;
void init_reflog_walk(struct reflog_walk_info **info);
int add_reflog_for_walk(struct reflog_walk_info *info,
diff --git a/reflog.c b/reflog.c
new file mode 100644
index 0000000000..135a1a6e41
--- /dev/null
+++ b/reflog.c
@@ -0,0 +1,434 @@
+#include "cache.h"
+#include "object-store.h"
+#include "reflog.h"
+#include "refs.h"
+#include "revision.h"
+#include "worktree.h"
+
+/* Remember to update object flag allocation in object.h */
+#define INCOMPLETE (1u<<10)
+#define STUDYING (1u<<11)
+#define REACHABLE (1u<<12)
+
+static int tree_is_complete(const struct object_id *oid)
+{
+ struct tree_desc desc;
+ struct name_entry entry;
+ int complete;
+ struct tree *tree;
+
+ tree = lookup_tree(the_repository, oid);
+ if (!tree)
+ return 0;
+ if (tree->object.flags & SEEN)
+ return 1;
+ if (tree->object.flags & INCOMPLETE)
+ return 0;
+
+ if (!tree->buffer) {
+ enum object_type type;
+ unsigned long size;
+ void *data = read_object_file(oid, &type, &size);
+ if (!data) {
+ tree->object.flags |= INCOMPLETE;
+ return 0;
+ }
+ tree->buffer = data;
+ tree->size = size;
+ }
+ init_tree_desc(&desc, tree->buffer, tree->size);
+ complete = 1;
+ while (tree_entry(&desc, &entry)) {
+ if (!has_object_file(&entry.oid) ||
+ (S_ISDIR(entry.mode) && !tree_is_complete(&entry.oid))) {
+ tree->object.flags |= INCOMPLETE;
+ complete = 0;
+ }
+ }
+ free_tree_buffer(tree);
+
+ if (complete)
+ tree->object.flags |= SEEN;
+ return complete;
+}
+
+static int commit_is_complete(struct commit *commit)
+{
+ struct object_array study;
+ struct object_array found;
+ int is_incomplete = 0;
+ int i;
+
+ /* early return */
+ if (commit->object.flags & SEEN)
+ return 1;
+ if (commit->object.flags & INCOMPLETE)
+ return 0;
+ /*
+ * Find all commits that are reachable and are not marked as
+ * SEEN. Then make sure the trees and blobs contained are
+ * complete. After that, mark these commits also as SEEN.
+ * If some of the objects that are needed to complete this
+ * commit are missing, mark this commit as INCOMPLETE.
+ */
+ memset(&study, 0, sizeof(study));
+ memset(&found, 0, sizeof(found));
+ add_object_array(&commit->object, NULL, &study);
+ add_object_array(&commit->object, NULL, &found);
+ commit->object.flags |= STUDYING;
+ while (study.nr) {
+ struct commit *c;
+ struct commit_list *parent;
+
+ c = (struct commit *)object_array_pop(&study);
+ if (!c->object.parsed && !parse_object(the_repository, &c->object.oid))
+ c->object.flags |= INCOMPLETE;
+
+ if (c->object.flags & INCOMPLETE) {
+ is_incomplete = 1;
+ break;
+ }
+ else if (c->object.flags & SEEN)
+ continue;
+ for (parent = c->parents; parent; parent = parent->next) {
+ struct commit *p = parent->item;
+ if (p->object.flags & STUDYING)
+ continue;
+ p->object.flags |= STUDYING;
+ add_object_array(&p->object, NULL, &study);
+ add_object_array(&p->object, NULL, &found);
+ }
+ }
+ if (!is_incomplete) {
+ /*
+ * make sure all commits in "found" array have all the
+ * necessary objects.
+ */
+ for (i = 0; i < found.nr; i++) {
+ struct commit *c =
+ (struct commit *)found.objects[i].item;
+ if (!tree_is_complete(get_commit_tree_oid(c))) {
+ is_incomplete = 1;
+ c->object.flags |= INCOMPLETE;
+ }
+ }
+ if (!is_incomplete) {
+ /* mark all found commits as complete, iow SEEN */
+ for (i = 0; i < found.nr; i++)
+ found.objects[i].item->flags |= SEEN;
+ }
+ }
+ /* clear flags from the objects we traversed */
+ for (i = 0; i < found.nr; i++)
+ found.objects[i].item->flags &= ~STUDYING;
+ if (is_incomplete)
+ commit->object.flags |= INCOMPLETE;
+ else {
+ /*
+ * If we come here, we have (1) traversed the ancestry chain
+ * from the "commit" until we reach SEEN commits (which are
+ * known to be complete), and (2) made sure that the commits
+ * encountered during the above traversal refer to trees that
+ * are complete. Which means that we know *all* the commits
+ * we have seen during this process are complete.
+ */
+ for (i = 0; i < found.nr; i++)
+ found.objects[i].item->flags |= SEEN;
+ }
+ /* free object arrays */
+ object_array_clear(&study);
+ object_array_clear(&found);
+ return !is_incomplete;
+}
+
+static int keep_entry(struct commit **it, struct object_id *oid)
+{
+ struct commit *commit;
+
+ if (is_null_oid(oid))
+ return 1;
+ commit = lookup_commit_reference_gently(the_repository, oid, 1);
+ if (!commit)
+ return 0;
+
+ /*
+ * Make sure everything in this commit exists.
+ *
+ * We have walked all the objects reachable from the refs
+ * and cache earlier. The commits reachable by this commit
+ * must meet SEEN commits -- and then we should mark them as
+ * SEEN as well.
+ */
+ if (!commit_is_complete(commit))
+ return 0;
+ *it = commit;
+ return 1;
+}
+
+/*
+ * Starting from commits in the cb->mark_list, mark commits that are
+ * reachable from them. Stop the traversal at commits older than
+ * the expire_limit and queue them back, so that the caller can call
+ * us again to restart the traversal with longer expire_limit.
+ */
+static void mark_reachable(struct expire_reflog_policy_cb *cb)
+{
+ struct commit_list *pending;
+ timestamp_t expire_limit = cb->mark_limit;
+ struct commit_list *leftover = NULL;
+
+ for (pending = cb->mark_list; pending; pending = pending->next)
+ pending->item->object.flags &= ~REACHABLE;
+
+ pending = cb->mark_list;
+ while (pending) {
+ struct commit_list *parent;
+ struct commit *commit = pop_commit(&pending);
+ if (commit->object.flags & REACHABLE)
+ continue;
+ if (parse_commit(commit))
+ continue;
+ commit->object.flags |= REACHABLE;
+ if (commit->date < expire_limit) {
+ commit_list_insert(commit, &leftover);
+ continue;
+ }
+ commit->object.flags |= REACHABLE;
+ parent = commit->parents;
+ while (parent) {
+ commit = parent->item;
+ parent = parent->next;
+ if (commit->object.flags & REACHABLE)
+ continue;
+ commit_list_insert(commit, &pending);
+ }
+ }
+ cb->mark_list = leftover;
+}
+
+static int unreachable(struct expire_reflog_policy_cb *cb, struct commit *commit, struct object_id *oid)
+{
+ /*
+ * We may or may not have the commit yet - if not, look it
+ * up using the supplied sha1.
+ */
+ if (!commit) {
+ if (is_null_oid(oid))
+ return 0;
+
+ commit = lookup_commit_reference_gently(the_repository, oid,
+ 1);
+
+ /* Not a commit -- keep it */
+ if (!commit)
+ return 0;
+ }
+
+ /* Reachable from the current ref? Don't prune. */
+ if (commit->object.flags & REACHABLE)
+ return 0;
+
+ if (cb->mark_list && cb->mark_limit) {
+ cb->mark_limit = 0; /* dig down to the root */
+ mark_reachable(cb);
+ }
+
+ return !(commit->object.flags & REACHABLE);
+}
+
+/*
+ * Return true iff the specified reflog entry should be expired.
+ */
+int should_expire_reflog_ent(struct object_id *ooid, struct object_id *noid,
+ const char *email, timestamp_t timestamp, int tz,
+ const char *message, void *cb_data)
+{
+ struct expire_reflog_policy_cb *cb = cb_data;
+ struct commit *old_commit, *new_commit;
+
+ if (timestamp < cb->cmd.expire_total)
+ return 1;
+
+ old_commit = new_commit = NULL;
+ if (cb->cmd.stalefix &&
+ (!keep_entry(&old_commit, ooid) || !keep_entry(&new_commit, noid)))
+ return 1;
+
+ if (timestamp < cb->cmd.expire_unreachable) {
+ switch (cb->unreachable_expire_kind) {
+ case UE_ALWAYS:
+ return 1;
+ case UE_NORMAL:
+ case UE_HEAD:
+ if (unreachable(cb, old_commit, ooid) || unreachable(cb, new_commit, noid))
+ return 1;
+ break;
+ }
+ }
+
+ if (cb->cmd.recno && --(cb->cmd.recno) == 0)
+ return 1;
+
+ return 0;
+}
+
+int should_expire_reflog_ent_verbose(struct object_id *ooid,
+ struct object_id *noid,
+ const char *email,
+ timestamp_t timestamp, int tz,
+ const char *message, void *cb_data)
+{
+ struct expire_reflog_policy_cb *cb = cb_data;
+ int expire;
+
+ expire = should_expire_reflog_ent(ooid, noid, email, timestamp, tz,
+ message, cb);
+
+ if (!expire)
+ printf("keep %s", message);
+ else if (cb->dry_run)
+ printf("would prune %s", message);
+ else
+ printf("prune %s", message);
+
+ return expire;
+}
+
+static int push_tip_to_list(const char *refname, const struct object_id *oid,
+ int flags, void *cb_data)
+{
+ struct commit_list **list = cb_data;
+ struct commit *tip_commit;
+ if (flags & REF_ISSYMREF)
+ return 0;
+ tip_commit = lookup_commit_reference_gently(the_repository, oid, 1);
+ if (!tip_commit)
+ return 0;
+ commit_list_insert(tip_commit, list);
+ return 0;
+}
+
+static int is_head(const char *refname)
+{
+ switch (ref_type(refname)) {
+ case REF_TYPE_OTHER_PSEUDOREF:
+ case REF_TYPE_MAIN_PSEUDOREF:
+ if (parse_worktree_ref(refname, NULL, NULL, &refname))
+ BUG("not a worktree ref: %s", refname);
+ break;
+ default:
+ break;
+ }
+ return !strcmp(refname, "HEAD");
+}
+
+void reflog_expiry_prepare(const char *refname,
+ const struct object_id *oid,
+ void *cb_data)
+{
+ struct expire_reflog_policy_cb *cb = cb_data;
+ struct commit_list *elem;
+ struct commit *commit = NULL;
+
+ if (!cb->cmd.expire_unreachable || is_head(refname)) {
+ cb->unreachable_expire_kind = UE_HEAD;
+ } else {
+ commit = lookup_commit(the_repository, oid);
+ if (commit && is_null_oid(&commit->object.oid))
+ commit = NULL;
+ cb->unreachable_expire_kind = commit ? UE_NORMAL : UE_ALWAYS;
+ }
+
+ if (cb->cmd.expire_unreachable <= cb->cmd.expire_total)
+ cb->unreachable_expire_kind = UE_ALWAYS;
+
+ switch (cb->unreachable_expire_kind) {
+ case UE_ALWAYS:
+ return;
+ case UE_HEAD:
+ for_each_ref(push_tip_to_list, &cb->tips);
+ for (elem = cb->tips; elem; elem = elem->next)
+ commit_list_insert(elem->item, &cb->mark_list);
+ break;
+ case UE_NORMAL:
+ commit_list_insert(commit, &cb->mark_list);
+ /* For reflog_expiry_cleanup() below */
+ cb->tip_commit = commit;
+ }
+ cb->mark_limit = cb->cmd.expire_total;
+ mark_reachable(cb);
+}
+
+void reflog_expiry_cleanup(void *cb_data)
+{
+ struct expire_reflog_policy_cb *cb = cb_data;
+ struct commit_list *elem;
+
+ switch (cb->unreachable_expire_kind) {
+ case UE_ALWAYS:
+ return;
+ case UE_HEAD:
+ for (elem = cb->tips; elem; elem = elem->next)
+ clear_commit_marks(elem->item, REACHABLE);
+ free_commit_list(cb->tips);
+ break;
+ case UE_NORMAL:
+ clear_commit_marks(cb->tip_commit, REACHABLE);
+ break;
+ }
+}
+
+int count_reflog_ent(struct object_id *ooid, struct object_id *noid,
+ const char *email, timestamp_t timestamp, int tz,
+ const char *message, void *cb_data)
+{
+ struct cmd_reflog_expire_cb *cb = cb_data;
+ if (!cb->expire_total || timestamp < cb->expire_total)
+ cb->recno++;
+ return 0;
+}
+
+int reflog_delete(const char *rev, enum expire_reflog_flags flags, int verbose)
+{
+ struct cmd_reflog_expire_cb cmd = { 0 };
+ int status = 0;
+ reflog_expiry_should_prune_fn *should_prune_fn = should_expire_reflog_ent;
+ const char *spec = strstr(rev, "@{");
+ char *ep, *ref;
+ int recno;
+ struct expire_reflog_policy_cb cb = {
+ .dry_run = !!(flags & EXPIRE_REFLOGS_DRY_RUN),
+ };
+
+ if (verbose)
+ should_prune_fn = should_expire_reflog_ent_verbose;
+
+ if (!spec)
+ return error(_("not a reflog: %s"), rev);
+
+ if (!dwim_log(rev, spec - rev, NULL, &ref)) {
+ status |= error(_("no reflog for '%s'"), rev);
+ goto cleanup;
+ }
+
+ recno = strtoul(spec + 2, &ep, 10);
+ if (*ep == '}') {
+ cmd.recno = -recno;
+ for_each_reflog_ent(ref, count_reflog_ent, &cmd);
+ } else {
+ cmd.expire_total = approxidate(spec + 2);
+ for_each_reflog_ent(ref, count_reflog_ent, &cmd);
+ cmd.expire_total = 0;
+ }
+
+ cb.cmd = cmd;
+ status |= reflog_expire(ref, flags,
+ reflog_expiry_prepare,
+ should_prune_fn,
+ reflog_expiry_cleanup,
+ &cb);
+
+ cleanup:
+ free(ref);
+ return status;
+}
diff --git a/reflog.h b/reflog.h
new file mode 100644
index 0000000000..d2906fb9f8
--- /dev/null
+++ b/reflog.h
@@ -0,0 +1,43 @@
+#ifndef REFLOG_H
+#define REFLOG_H
+#include "refs.h"
+
+struct cmd_reflog_expire_cb {
+ int stalefix;
+ int explicit_expiry;
+ timestamp_t expire_total;
+ timestamp_t expire_unreachable;
+ int recno;
+};
+
+struct expire_reflog_policy_cb {
+ enum {
+ UE_NORMAL,
+ UE_ALWAYS,
+ UE_HEAD
+ } unreachable_expire_kind;
+ struct commit_list *mark_list;
+ unsigned long mark_limit;
+ struct cmd_reflog_expire_cb cmd;
+ struct commit *tip_commit;
+ struct commit_list *tips;
+ unsigned int dry_run:1;
+};
+
+int reflog_delete(const char *rev, enum expire_reflog_flags flags,
+ int verbose);
+void reflog_expiry_cleanup(void *cb_data);
+void reflog_expiry_prepare(const char *refname, const struct object_id *oid,
+ void *cb_data);
+int should_expire_reflog_ent(struct object_id *ooid, struct object_id *noid,
+ const char *email, timestamp_t timestamp, int tz,
+ const char *message, void *cb_data);
+int count_reflog_ent(struct object_id *ooid, struct object_id *noid,
+ const char *email, timestamp_t timestamp, int tz,
+ const char *message, void *cb_data);
+int should_expire_reflog_ent_verbose(struct object_id *ooid,
+ struct object_id *noid,
+ const char *email,
+ timestamp_t timestamp, int tz,
+ const char *message, void *cb_data);
+#endif /* REFLOG_H */
diff --git a/refs.c b/refs.c
index addb26293b..90bcb27168 100644
--- a/refs.c
+++ b/refs.c
@@ -19,6 +19,7 @@
#include "strvec.h"
#include "repository.h"
#include "sigchain.h"
+#include "date.h"
/*
* List of all available backends
@@ -269,10 +270,9 @@ char *refs_resolve_refdup(struct ref_store *refs,
struct object_id *oid, int *flags)
{
const char *result;
- int ignore_errno;
result = refs_resolve_ref_unsafe(refs, refname, resolve_flags,
- oid, flags, &ignore_errno);
+ oid, flags);
return xstrdup_or_null(result);
}
@@ -294,11 +294,10 @@ struct ref_filter {
int read_ref_full(const char *refname, int resolve_flags, struct object_id *oid, int *flags)
{
- int ignore_errno;
struct ref_store *refs = get_main_ref_store(the_repository);
if (refs_resolve_ref_unsafe(refs, refname, resolve_flags,
- oid, flags, &ignore_errno))
+ oid, flags))
return 0;
return -1;
}
@@ -310,9 +309,8 @@ int read_ref(const char *refname, struct object_id *oid)
int refs_ref_exists(struct ref_store *refs, const char *refname)
{
- int ignore_errno;
return !!refs_resolve_ref_unsafe(refs, refname, RESOLVE_REF_READING,
- NULL, NULL, &ignore_errno);
+ NULL, NULL);
}
int ref_exists(const char *refname)
@@ -656,15 +654,13 @@ int expand_ref(struct repository *repo, const char *str, int len,
struct object_id *this_result;
int flag;
struct ref_store *refs = get_main_ref_store(repo);
- int ignore_errno;
this_result = refs_found ? &oid_from_ref : oid;
strbuf_reset(&fullref);
strbuf_addf(&fullref, *p, len, str);
r = refs_resolve_ref_unsafe(refs, fullref.buf,
RESOLVE_REF_READING,
- this_result, &flag,
- &ignore_errno);
+ this_result, &flag);
if (r) {
if (!refs_found++)
*ref = xstrdup(r);
@@ -693,14 +689,12 @@ int repo_dwim_log(struct repository *r, const char *str, int len,
for (p = ref_rev_parse_rules; *p; p++) {
struct object_id hash;
const char *ref, *it;
- int ignore_errno;
strbuf_reset(&path);
strbuf_addf(&path, *p, len, str);
ref = refs_resolve_ref_unsafe(refs, path.buf,
RESOLVE_REF_READING,
- oid ? &hash : NULL, NULL,
- &ignore_errno);
+ oid ? &hash : NULL, NULL);
if (!ref)
continue;
if (refs_reflog_exists(refs, path.buf))
@@ -1115,8 +1109,10 @@ int ref_transaction_create(struct ref_transaction *transaction,
unsigned int flags, const char *msg,
struct strbuf *err)
{
- if (!new_oid || is_null_oid(new_oid))
- BUG("create called without valid new_oid");
+ if (!new_oid || is_null_oid(new_oid)) {
+ strbuf_addf(err, "'%s' has a null OID", refname);
+ return 1;
+ }
return ref_transaction_update(transaction, refname, new_oid,
null_oid(), flags, msg, err);
}
@@ -1390,10 +1386,9 @@ int refs_head_ref(struct ref_store *refs, each_ref_fn fn, void *cb_data)
{
struct object_id oid;
int flag;
- int ignore_errno;
if (refs_resolve_ref_unsafe(refs, "HEAD", RESOLVE_REF_READING,
- &oid, &flag, &ignore_errno))
+ &oid, &flag))
return fn("HEAD", &oid, flag, cb_data);
return 0;
@@ -1678,19 +1673,23 @@ int refs_read_raw_ref(struct ref_store *ref_store, const char *refname,
type, failure_errno);
}
+int refs_read_symbolic_ref(struct ref_store *ref_store, const char *refname,
+ struct strbuf *referent)
+{
+ return ref_store->be->read_symbolic_ref(ref_store, refname, referent);
+}
+
const char *refs_resolve_ref_unsafe(struct ref_store *refs,
const char *refname,
int resolve_flags,
struct object_id *oid,
- int *flags, int *failure_errno)
+ int *flags)
{
static struct strbuf sb_refname = STRBUF_INIT;
struct object_id unused_oid;
int unused_flags;
int symref_count;
- assert(failure_errno);
-
if (!oid)
oid = &unused_oid;
if (!flags)
@@ -1700,10 +1699,8 @@ const char *refs_resolve_ref_unsafe(struct ref_store *refs,
if (check_refname_format(refname, REFNAME_ALLOW_ONELEVEL)) {
if (!(resolve_flags & RESOLVE_REF_ALLOW_BAD_NAME) ||
- !refname_is_safe(refname)) {
- *failure_errno = EINVAL;
+ !refname_is_safe(refname))
return NULL;
- }
/*
* dwim_ref() uses REF_ISBROKEN to distinguish between
@@ -1718,9 +1715,10 @@ const char *refs_resolve_ref_unsafe(struct ref_store *refs,
for (symref_count = 0; symref_count < SYMREF_MAXDEPTH; symref_count++) {
unsigned int read_flags = 0;
+ int failure_errno;
if (refs_read_raw_ref(refs, refname, oid, &sb_refname,
- &read_flags, failure_errno)) {
+ &read_flags, &failure_errno)) {
*flags |= read_flags;
/* In reading mode, refs must eventually resolve */
@@ -1732,9 +1730,9 @@ const char *refs_resolve_ref_unsafe(struct ref_store *refs,
* may show errors besides ENOENT if there are
* similarly-named refs.
*/
- if (*failure_errno != ENOENT &&
- *failure_errno != EISDIR &&
- *failure_errno != ENOTDIR)
+ if (failure_errno != ENOENT &&
+ failure_errno != EISDIR &&
+ failure_errno != ENOTDIR)
return NULL;
oidclr(oid);
@@ -1760,16 +1758,13 @@ const char *refs_resolve_ref_unsafe(struct ref_store *refs,
}
if (check_refname_format(refname, REFNAME_ALLOW_ONELEVEL)) {
if (!(resolve_flags & RESOLVE_REF_ALLOW_BAD_NAME) ||
- !refname_is_safe(refname)) {
- *failure_errno = EINVAL;
+ !refname_is_safe(refname))
return NULL;
- }
*flags |= REF_ISBROKEN | REF_BAD_NAME;
}
}
- *failure_errno = ELOOP;
return NULL;
}
@@ -1784,10 +1779,8 @@ int refs_init_db(struct strbuf *err)
const char *resolve_ref_unsafe(const char *refname, int resolve_flags,
struct object_id *oid, int *flags)
{
- int ignore_errno;
-
return refs_resolve_ref_unsafe(get_main_ref_store(the_repository), refname,
- resolve_flags, oid, flags, &ignore_errno);
+ resolve_flags, oid, flags);
}
int resolve_gitlink_ref(const char *submodule, const char *refname,
@@ -1795,15 +1788,14 @@ int resolve_gitlink_ref(const char *submodule, const char *refname,
{
struct ref_store *refs;
int flags;
- int ignore_errno;
refs = get_submodule_ref_store(submodule);
if (!refs)
return -1;
- if (!refs_resolve_ref_unsafe(refs, refname, 0, oid, &flags,
- &ignore_errno) || is_null_oid(oid))
+ if (!refs_resolve_ref_unsafe(refs, refname, 0, oid, &flags) ||
+ is_null_oid(oid))
return -1;
return 0;
}
@@ -2429,6 +2421,22 @@ int initial_ref_transaction_commit(struct ref_transaction *transaction,
return refs->be->initial_transaction_commit(refs, transaction, err);
}
+void ref_transaction_for_each_queued_update(struct ref_transaction *transaction,
+ ref_transaction_for_each_queued_update_fn cb,
+ void *cb_data)
+{
+ int i;
+
+ for (i = 0; i < transaction->nr; i++) {
+ struct ref_update *update = transaction->updates[i];
+
+ cb(update->refname,
+ (update->flags & REF_HAVE_OLD) ? &update->old_oid : NULL,
+ (update->flags & REF_HAVE_NEW) ? &update->new_oid : NULL,
+ cb_data);
+ }
+}
+
int refs_delete_refs(struct ref_store *refs, const char *logmsg,
struct string_list *refnames, unsigned int flags)
{
diff --git a/refs.h b/refs.h
index 8f91a7f9ff..47cb9edbaa 100644
--- a/refs.h
+++ b/refs.h
@@ -58,11 +58,6 @@ struct worktree;
* resolved. The function returns NULL for such ref names.
* Caps and underscores refers to the special refs, such as HEAD,
* FETCH_HEAD and friends, that all live outside of the refs/ directory.
- *
- * Callers should not inspect "errno" on failure, but rather pass in a
- * "failure_errno" parameter, on failure the "errno" will indicate the
- * type of failure encountered, but not necessarily one that came from
- * a syscall. We might have faked it up.
*/
#define RESOLVE_REF_READING 0x01
#define RESOLVE_REF_NO_RECURSE 0x02
@@ -72,7 +67,7 @@ const char *refs_resolve_ref_unsafe(struct ref_store *refs,
const char *refname,
int resolve_flags,
struct object_id *oid,
- int *flags, int *failure_errno);
+ int *flags);
const char *resolve_ref_unsafe(const char *refname, int resolve_flags,
struct object_id *oid, int *flags);
@@ -87,6 +82,9 @@ int read_ref_full(const char *refname, int resolve_flags,
struct object_id *oid, int *flags);
int read_ref(const char *refname, struct object_id *oid);
+int refs_read_symbolic_ref(struct ref_store *ref_store, const char *refname,
+ struct strbuf *referent);
+
/*
* Return 0 if a reference named refname could be created without
* conflicting with the name of an existing reference. Otherwise,
@@ -776,6 +774,20 @@ int initial_ref_transaction_commit(struct ref_transaction *transaction,
struct strbuf *err);
/*
+ * Execute the given callback function for each of the reference updates which
+ * have been queued in the given transaction. `old_oid` and `new_oid` may be
+ * `NULL` pointers depending on whether the update has these object IDs set or
+ * not.
+ */
+typedef void ref_transaction_for_each_queued_update_fn(const char *refname,
+ const struct object_id *old_oid,
+ const struct object_id *new_oid,
+ void *cb_data);
+void ref_transaction_for_each_queued_update(struct ref_transaction *transaction,
+ ref_transaction_for_each_queued_update_fn cb,
+ void *cb_data);
+
+/*
* Free `*transaction` and all associated data.
*/
void ref_transaction_free(struct ref_transaction *transaction);
diff --git a/refs/debug.c b/refs/debug.c
index 2b0771ca53..eed8bc94b0 100644
--- a/refs/debug.c
+++ b/refs/debug.c
@@ -220,8 +220,9 @@ static int debug_ref_iterator_abort(struct ref_iterator *ref_iterator)
}
static struct ref_iterator_vtable debug_ref_iterator_vtable = {
- debug_ref_iterator_advance, debug_ref_iterator_peel,
- debug_ref_iterator_abort
+ .advance = debug_ref_iterator_advance,
+ .peel = debug_ref_iterator_peel,
+ .abort = debug_ref_iterator_abort,
};
static struct ref_iterator *
@@ -261,6 +262,24 @@ static int debug_read_raw_ref(struct ref_store *ref_store, const char *refname,
return res;
}
+static int debug_read_symbolic_ref(struct ref_store *ref_store, const char *refname,
+ struct strbuf *referent)
+{
+ struct debug_ref_store *drefs = (struct debug_ref_store *)ref_store;
+ struct ref_store *refs = drefs->refs;
+ int res;
+
+ res = refs->be->read_symbolic_ref(refs, refname, referent);
+ if (!res)
+ trace_printf_key(&trace_refs, "read_symbolic_ref: %s: (%s)\n",
+ refname, referent->buf);
+ else
+ trace_printf_key(&trace_refs,
+ "read_symbolic_ref: %s: %d\n", refname, res);
+ return res;
+
+}
+
static struct ref_iterator *
debug_reflog_iterator_begin(struct ref_store *ref_store)
{
@@ -418,29 +437,37 @@ static int debug_reflog_expire(struct ref_store *ref_store, const char *refname,
}
struct ref_storage_be refs_be_debug = {
- NULL,
- "debug",
- NULL,
- debug_init_db,
- debug_transaction_prepare,
- debug_transaction_finish,
- debug_transaction_abort,
- debug_initial_transaction_commit,
-
- debug_pack_refs,
- debug_create_symref,
- debug_delete_refs,
- debug_rename_ref,
- debug_copy_ref,
-
- debug_ref_iterator_begin,
- debug_read_raw_ref,
-
- debug_reflog_iterator_begin,
- debug_for_each_reflog_ent,
- debug_for_each_reflog_ent_reverse,
- debug_reflog_exists,
- debug_create_reflog,
- debug_delete_reflog,
- debug_reflog_expire,
+ .next = NULL,
+ .name = "debug",
+ .init = NULL,
+ .init_db = debug_init_db,
+
+ /*
+ * None of these should be NULL. If the "files" backend (in
+ * "struct ref_storage_be refs_be_files" in files-backend.c)
+ * has a function we should also have a wrapper for it here.
+ * Test the output with "GIT_TRACE_REFS=1".
+ */
+ .transaction_prepare = debug_transaction_prepare,
+ .transaction_finish = debug_transaction_finish,
+ .transaction_abort = debug_transaction_abort,
+ .initial_transaction_commit = debug_initial_transaction_commit,
+
+ .pack_refs = debug_pack_refs,
+ .create_symref = debug_create_symref,
+ .delete_refs = debug_delete_refs,
+ .rename_ref = debug_rename_ref,
+ .copy_ref = debug_copy_ref,
+
+ .iterator_begin = debug_ref_iterator_begin,
+ .read_raw_ref = debug_read_raw_ref,
+ .read_symbolic_ref = debug_read_symbolic_ref,
+
+ .reflog_iterator_begin = debug_reflog_iterator_begin,
+ .for_each_reflog_ent = debug_for_each_reflog_ent,
+ .for_each_reflog_ent_reverse = debug_for_each_reflog_ent_reverse,
+ .reflog_exists = debug_reflog_exists,
+ .create_reflog = debug_create_reflog,
+ .delete_reflog = debug_delete_reflog,
+ .reflog_expire = debug_reflog_expire,
};
diff --git a/refs/files-backend.c b/refs/files-backend.c
index 43a3b882d7..8db7882aac 100644
--- a/refs/files-backend.c
+++ b/refs/files-backend.c
@@ -277,11 +277,10 @@ static void loose_fill_ref_dir(struct ref_store *ref_store,
create_dir_entry(dir->cache, refname.buf,
refname.len));
} else {
- int ignore_errno;
if (!refs_resolve_ref_unsafe(&refs->base,
refname.buf,
RESOLVE_REF_READING,
- &oid, &flag, &ignore_errno)) {
+ &oid, &flag)) {
oidclr(&oid);
flag |= REF_ISBROKEN;
} else if (is_null_oid(&oid)) {
@@ -339,9 +338,9 @@ static struct ref_cache *get_loose_ref_cache(struct files_ref_store *refs)
return refs->loose;
}
-static int files_read_raw_ref(struct ref_store *ref_store, const char *refname,
- struct object_id *oid, struct strbuf *referent,
- unsigned int *type, int *failure_errno)
+static int read_ref_internal(struct ref_store *ref_store, const char *refname,
+ struct object_id *oid, struct strbuf *referent,
+ unsigned int *type, int *failure_errno, int skip_packed_refs)
{
struct files_ref_store *refs =
files_downcast(ref_store, REF_STORE_READ, "read_raw_ref");
@@ -382,7 +381,7 @@ stat_ref:
if (lstat(path, &st) < 0) {
int ignore_errno;
myerr = errno;
- if (myerr != ENOENT)
+ if (myerr != ENOENT || skip_packed_refs)
goto out;
if (refs_read_raw_ref(refs->packed_ref_store, refname, oid,
referent, type, &ignore_errno)) {
@@ -426,7 +425,8 @@ stat_ref:
* ref is supposed to be, there could still be a
* packed ref:
*/
- if (refs_read_raw_ref(refs->packed_ref_store, refname, oid,
+ if (skip_packed_refs ||
+ refs_read_raw_ref(refs->packed_ref_store, refname, oid,
referent, type, &ignore_errno)) {
myerr = EISDIR;
goto out;
@@ -471,6 +471,27 @@ out:
return ret;
}
+static int files_read_raw_ref(struct ref_store *ref_store, const char *refname,
+ struct object_id *oid, struct strbuf *referent,
+ unsigned int *type, int *failure_errno)
+{
+ return read_ref_internal(ref_store, refname, oid, referent, type, failure_errno, 0);
+}
+
+static int files_read_symbolic_ref(struct ref_store *ref_store, const char *refname,
+ struct strbuf *referent)
+{
+ struct object_id oid;
+ int failure_errno, ret;
+ unsigned int type;
+
+ ret = read_ref_internal(ref_store, refname, &oid, referent, &type, &failure_errno, 1);
+ if (ret)
+ return ret;
+
+ return !(type & REF_ISSYMREF);
+}
+
int parse_loose_ref_contents(const char *buf, struct object_id *oid,
struct strbuf *referent, unsigned int *type,
int *failure_errno)
@@ -801,9 +822,9 @@ static int files_ref_iterator_abort(struct ref_iterator *ref_iterator)
}
static struct ref_iterator_vtable files_ref_iterator_vtable = {
- files_ref_iterator_advance,
- files_ref_iterator_peel,
- files_ref_iterator_abort
+ .advance = files_ref_iterator_advance,
+ .peel = files_ref_iterator_peel,
+ .abort = files_ref_iterator_abort,
};
static struct ref_iterator *files_ref_iterator_begin(
@@ -1006,7 +1027,6 @@ static struct ref_lock *lock_ref_oid_basic(struct files_ref_store *refs,
{
struct strbuf ref_file = STRBUF_INIT;
struct ref_lock *lock;
- int ignore_errno;
files_assert_main_repository(refs, "lock_ref_oid_basic");
assert(err);
@@ -1034,7 +1054,7 @@ static struct ref_lock *lock_ref_oid_basic(struct files_ref_store *refs,
}
if (!refs_resolve_ref_unsafe(&refs->base, lock->ref_name, 0,
- &lock->old_oid, NULL, &ignore_errno))
+ &lock->old_oid, NULL))
oidclr(&lock->old_oid);
goto out;
@@ -1399,7 +1419,6 @@ static int files_copy_or_rename_ref(struct ref_store *ref_store,
struct strbuf tmp_renamed_log = STRBUF_INIT;
int log, ret;
struct strbuf err = STRBUF_INIT;
- int ignore_errno;
files_reflog_path(refs, &sb_oldref, oldrefname);
files_reflog_path(refs, &sb_newref, newrefname);
@@ -1413,7 +1432,7 @@ static int files_copy_or_rename_ref(struct ref_store *ref_store,
if (!refs_resolve_ref_unsafe(&refs->base, oldrefname,
RESOLVE_REF_READING | RESOLVE_REF_NO_RECURSE,
- &orig_oid, &flag, &ignore_errno)) {
+ &orig_oid, &flag)) {
ret = error("refname %s not found", oldrefname);
goto out;
}
@@ -1459,7 +1478,7 @@ static int files_copy_or_rename_ref(struct ref_store *ref_store,
*/
if (!copy && refs_resolve_ref_unsafe(&refs->base, newrefname,
RESOLVE_REF_READING | RESOLVE_REF_NO_RECURSE,
- NULL, NULL, &ignore_errno) &&
+ NULL, NULL) &&
refs_delete_ref(&refs->base, NULL, newrefname,
NULL, REF_NO_DEREF)) {
if (errno == EISDIR) {
@@ -1780,6 +1799,7 @@ static int write_ref_to_lockfile(struct ref_lock *lock,
fd = get_lock_file_fd(&lock->lk);
if (write_in_full(fd, oid_to_hex(oid), the_hash_algo->hexsz) < 0 ||
write_in_full(fd, &term, 1) < 0 ||
+ fsync_component(FSYNC_COMPONENT_REFERENCE, get_lock_file_fd(&lock->lk)) < 0 ||
close_ref_gently(lock) < 0) {
strbuf_addf(err,
"couldn't write '%s'", get_lock_file_path(&lock->lk));
@@ -1828,12 +1848,10 @@ static int commit_ref_update(struct files_ref_store *refs,
*/
int head_flag;
const char *head_ref;
- int ignore_errno;
head_ref = refs_resolve_ref_unsafe(&refs->base, "HEAD",
RESOLVE_REF_READING,
- NULL, &head_flag,
- &ignore_errno);
+ NULL, &head_flag);
if (head_ref && (head_flag & REF_ISSYMREF) &&
!strcmp(head_ref, lock->ref_name)) {
struct strbuf log_err = STRBUF_INIT;
@@ -1877,12 +1895,10 @@ static void update_symref_reflog(struct files_ref_store *refs,
{
struct strbuf err = STRBUF_INIT;
struct object_id new_oid;
- int ignore_errno;
if (logmsg &&
refs_resolve_ref_unsafe(&refs->base, target,
- RESOLVE_REF_READING, &new_oid, NULL,
- &ignore_errno) &&
+ RESOLVE_REF_READING, &new_oid, NULL) &&
files_log_ref_write(refs, refname, &lock->old_oid,
&new_oid, logmsg, 0, &err)) {
error("%s", err.buf);
@@ -2156,7 +2172,6 @@ static int files_reflog_iterator_advance(struct ref_iterator *ref_iterator)
(struct files_reflog_iterator *)ref_iterator;
struct dir_iterator *diter = iter->dir_iterator;
int ok;
- int ignore_errno;
while ((ok = dir_iterator_advance(diter)) == ITER_OK) {
int flags;
@@ -2170,8 +2185,7 @@ static int files_reflog_iterator_advance(struct ref_iterator *ref_iterator)
if (!refs_resolve_ref_unsafe(iter->ref_store,
diter->relative_path, 0,
- &iter->oid, &flags,
- &ignore_errno)) {
+ &iter->oid, &flags)) {
error("bad ref for %s", diter->path.buf);
continue;
}
@@ -2208,9 +2222,9 @@ static int files_reflog_iterator_abort(struct ref_iterator *ref_iterator)
}
static struct ref_iterator_vtable files_reflog_iterator_vtable = {
- files_reflog_iterator_advance,
- files_reflog_iterator_peel,
- files_reflog_iterator_abort
+ .advance = files_reflog_iterator_advance,
+ .peel = files_reflog_iterator_peel,
+ .abort = files_reflog_iterator_abort,
};
static struct ref_iterator *reflog_iterator_begin(struct ref_store *ref_store,
@@ -2515,11 +2529,9 @@ static int lock_ref_for_update(struct files_ref_store *refs,
* the transaction, so we have to read it here
* to record and possibly check old_oid:
*/
- int ignore_errno;
if (!refs_resolve_ref_unsafe(&refs->base,
referent.buf, 0,
- &lock->old_oid, NULL,
- &ignore_errno)) {
+ &lock->old_oid, NULL)) {
if (update->flags & REF_HAVE_OLD) {
strbuf_addf(err, "cannot lock ref '%s': "
"error reading reference",
@@ -3208,14 +3220,12 @@ static int files_reflog_expire(struct ref_store *ref_store,
if ((expire_flags & EXPIRE_REFLOGS_UPDATE_REF) &&
!is_null_oid(&cb.last_kept_oid)) {
- int ignore_errno;
int type;
const char *ref;
ref = refs_resolve_ref_unsafe(&refs->base, refname,
RESOLVE_REF_NO_RECURSE,
- NULL, &type,
- &ignore_errno);
+ NULL, &type);
update = !!(ref && !(type & REF_ISSYMREF));
}
@@ -3270,29 +3280,30 @@ static int files_init_db(struct ref_store *ref_store, struct strbuf *err)
}
struct ref_storage_be refs_be_files = {
- NULL,
- "files",
- files_ref_store_create,
- files_init_db,
- files_transaction_prepare,
- files_transaction_finish,
- files_transaction_abort,
- files_initial_transaction_commit,
-
- files_pack_refs,
- files_create_symref,
- files_delete_refs,
- files_rename_ref,
- files_copy_ref,
-
- files_ref_iterator_begin,
- files_read_raw_ref,
-
- files_reflog_iterator_begin,
- files_for_each_reflog_ent,
- files_for_each_reflog_ent_reverse,
- files_reflog_exists,
- files_create_reflog,
- files_delete_reflog,
- files_reflog_expire
+ .next = NULL,
+ .name = "files",
+ .init = files_ref_store_create,
+ .init_db = files_init_db,
+ .transaction_prepare = files_transaction_prepare,
+ .transaction_finish = files_transaction_finish,
+ .transaction_abort = files_transaction_abort,
+ .initial_transaction_commit = files_initial_transaction_commit,
+
+ .pack_refs = files_pack_refs,
+ .create_symref = files_create_symref,
+ .delete_refs = files_delete_refs,
+ .rename_ref = files_rename_ref,
+ .copy_ref = files_copy_ref,
+
+ .iterator_begin = files_ref_iterator_begin,
+ .read_raw_ref = files_read_raw_ref,
+ .read_symbolic_ref = files_read_symbolic_ref,
+
+ .reflog_iterator_begin = files_reflog_iterator_begin,
+ .for_each_reflog_ent = files_for_each_reflog_ent,
+ .for_each_reflog_ent_reverse = files_for_each_reflog_ent_reverse,
+ .reflog_exists = files_reflog_exists,
+ .create_reflog = files_create_reflog,
+ .delete_reflog = files_delete_reflog,
+ .reflog_expire = files_reflog_expire
};
diff --git a/refs/iterator.c b/refs/iterator.c
index a89d132d4f..b2e56bae1c 100644
--- a/refs/iterator.c
+++ b/refs/iterator.c
@@ -64,9 +64,9 @@ static int empty_ref_iterator_abort(struct ref_iterator *ref_iterator)
}
static struct ref_iterator_vtable empty_ref_iterator_vtable = {
- empty_ref_iterator_advance,
- empty_ref_iterator_peel,
- empty_ref_iterator_abort
+ .advance = empty_ref_iterator_advance,
+ .peel = empty_ref_iterator_peel,
+ .abort = empty_ref_iterator_abort,
};
struct ref_iterator *empty_ref_iterator_begin(void)
@@ -201,9 +201,9 @@ static int merge_ref_iterator_abort(struct ref_iterator *ref_iterator)
}
static struct ref_iterator_vtable merge_ref_iterator_vtable = {
- merge_ref_iterator_advance,
- merge_ref_iterator_peel,
- merge_ref_iterator_abort
+ .advance = merge_ref_iterator_advance,
+ .peel = merge_ref_iterator_peel,
+ .abort = merge_ref_iterator_abort,
};
struct ref_iterator *merge_ref_iterator_begin(
@@ -378,9 +378,9 @@ static int prefix_ref_iterator_abort(struct ref_iterator *ref_iterator)
}
static struct ref_iterator_vtable prefix_ref_iterator_vtable = {
- prefix_ref_iterator_advance,
- prefix_ref_iterator_peel,
- prefix_ref_iterator_abort
+ .advance = prefix_ref_iterator_advance,
+ .peel = prefix_ref_iterator_peel,
+ .abort = prefix_ref_iterator_abort,
};
struct ref_iterator *prefix_ref_iterator_begin(struct ref_iterator *iter0,
diff --git a/refs/packed-backend.c b/refs/packed-backend.c
index d91a2018f6..97b6837767 100644
--- a/refs/packed-backend.c
+++ b/refs/packed-backend.c
@@ -911,9 +911,9 @@ static int packed_ref_iterator_abort(struct ref_iterator *ref_iterator)
}
static struct ref_iterator_vtable packed_ref_iterator_vtable = {
- packed_ref_iterator_advance,
- packed_ref_iterator_peel,
- packed_ref_iterator_abort
+ .advance = packed_ref_iterator_advance,
+ .peel = packed_ref_iterator_peel,
+ .abort = packed_ref_iterator_abort
};
static struct ref_iterator *packed_ref_iterator_begin(
@@ -1262,7 +1262,8 @@ static int write_with_updates(struct packed_ref_store *refs,
goto error;
}
- if (close_tempfile_gently(refs->tempfile)) {
+ if (fsync_component(FSYNC_COMPONENT_REFERENCE, get_tempfile_fd(refs->tempfile)) ||
+ close_tempfile_gently(refs->tempfile)) {
strbuf_addf(err, "error closing file %s: %s",
get_tempfile_path(refs->tempfile),
strerror(errno));
@@ -1577,105 +1578,36 @@ static int packed_pack_refs(struct ref_store *ref_store, unsigned int flags)
return 0;
}
-static int packed_create_symref(struct ref_store *ref_store,
- const char *refname, const char *target,
- const char *logmsg)
-{
- BUG("packed reference store does not support symrefs");
-}
-
-static int packed_rename_ref(struct ref_store *ref_store,
- const char *oldrefname, const char *newrefname,
- const char *logmsg)
-{
- BUG("packed reference store does not support renaming references");
-}
-
-static int packed_copy_ref(struct ref_store *ref_store,
- const char *oldrefname, const char *newrefname,
- const char *logmsg)
-{
- BUG("packed reference store does not support copying references");
-}
-
static struct ref_iterator *packed_reflog_iterator_begin(struct ref_store *ref_store)
{
return empty_ref_iterator_begin();
}
-static int packed_for_each_reflog_ent(struct ref_store *ref_store,
- const char *refname,
- each_reflog_ent_fn fn, void *cb_data)
-{
- BUG("packed reference store does not support reflogs");
- return 0;
-}
-
-static int packed_for_each_reflog_ent_reverse(struct ref_store *ref_store,
- const char *refname,
- each_reflog_ent_fn fn,
- void *cb_data)
-{
- BUG("packed reference store does not support reflogs");
- return 0;
-}
-
-static int packed_reflog_exists(struct ref_store *ref_store,
- const char *refname)
-{
- BUG("packed reference store does not support reflogs");
- return 0;
-}
-
-static int packed_create_reflog(struct ref_store *ref_store,
- const char *refname, struct strbuf *err)
-{
- BUG("packed reference store does not support reflogs");
-}
-
-static int packed_delete_reflog(struct ref_store *ref_store,
- const char *refname)
-{
- BUG("packed reference store does not support reflogs");
- return 0;
-}
-
-static int packed_reflog_expire(struct ref_store *ref_store,
- const char *refname,
- unsigned int flags,
- reflog_expiry_prepare_fn prepare_fn,
- reflog_expiry_should_prune_fn should_prune_fn,
- reflog_expiry_cleanup_fn cleanup_fn,
- void *policy_cb_data)
-{
- BUG("packed reference store does not support reflogs");
- return 0;
-}
-
struct ref_storage_be refs_be_packed = {
- NULL,
- "packed",
- packed_ref_store_create,
- packed_init_db,
- packed_transaction_prepare,
- packed_transaction_finish,
- packed_transaction_abort,
- packed_initial_transaction_commit,
-
- packed_pack_refs,
- packed_create_symref,
- packed_delete_refs,
- packed_rename_ref,
- packed_copy_ref,
-
- packed_ref_iterator_begin,
- packed_read_raw_ref,
-
- packed_reflog_iterator_begin,
- packed_for_each_reflog_ent,
- packed_for_each_reflog_ent_reverse,
- packed_reflog_exists,
- packed_create_reflog,
- packed_delete_reflog,
- packed_reflog_expire
+ .next = NULL,
+ .name = "packed",
+ .init = packed_ref_store_create,
+ .init_db = packed_init_db,
+ .transaction_prepare = packed_transaction_prepare,
+ .transaction_finish = packed_transaction_finish,
+ .transaction_abort = packed_transaction_abort,
+ .initial_transaction_commit = packed_initial_transaction_commit,
+
+ .pack_refs = packed_pack_refs,
+ .create_symref = NULL,
+ .delete_refs = packed_delete_refs,
+ .rename_ref = NULL,
+ .copy_ref = NULL,
+
+ .iterator_begin = packed_ref_iterator_begin,
+ .read_raw_ref = packed_read_raw_ref,
+ .read_symbolic_ref = NULL,
+
+ .reflog_iterator_begin = packed_reflog_iterator_begin,
+ .for_each_reflog_ent = NULL,
+ .for_each_reflog_ent_reverse = NULL,
+ .reflog_exists = NULL,
+ .create_reflog = NULL,
+ .delete_reflog = NULL,
+ .reflog_expire = NULL,
};
diff --git a/refs/ref-cache.c b/refs/ref-cache.c
index bf97cfbf69..32afd8a40b 100644
--- a/refs/ref-cache.c
+++ b/refs/ref-cache.c
@@ -456,9 +456,9 @@ static int cache_ref_iterator_abort(struct ref_iterator *ref_iterator)
}
static struct ref_iterator_vtable cache_ref_iterator_vtable = {
- cache_ref_iterator_advance,
- cache_ref_iterator_peel,
- cache_ref_iterator_abort
+ .advance = cache_ref_iterator_advance,
+ .peel = cache_ref_iterator_peel,
+ .abort = cache_ref_iterator_abort
};
struct ref_iterator *cache_ref_iterator_begin(struct ref_cache *cache,
diff --git a/refs/refs-internal.h b/refs/refs-internal.h
index 7ff6fba4f0..69f93b0e2a 100644
--- a/refs/refs-internal.h
+++ b/refs/refs-internal.h
@@ -648,6 +648,21 @@ typedef int read_raw_ref_fn(struct ref_store *ref_store, const char *refname,
struct object_id *oid, struct strbuf *referent,
unsigned int *type, int *failure_errno);
+/*
+ * Read a symbolic reference from the specified reference store. This function
+ * is optional: if not implemented by a backend, then `read_raw_ref_fn` is used
+ * to read the symbolcic reference instead. It is intended to be implemented
+ * only in case the backend can optimize the reading of symbolic references.
+ *
+ * Return 0 on success, or -1 on failure. `referent` will be set to the target
+ * of the symbolic reference on success. This function explicitly does not
+ * distinguish between error cases and the reference not being a symbolic
+ * reference to allow backends to optimize this operation in case symbolic and
+ * non-symbolic references are treated differently.
+ */
+typedef int read_symbolic_ref_fn(struct ref_store *ref_store, const char *refname,
+ struct strbuf *referent);
+
struct ref_storage_be {
struct ref_storage_be *next;
const char *name;
@@ -667,6 +682,7 @@ struct ref_storage_be {
ref_iterator_begin_fn *iterator_begin;
read_raw_ref_fn *read_raw_ref;
+ read_symbolic_ref_fn *read_symbolic_ref;
reflog_iterator_begin_fn *reflog_iterator_begin;
for_each_reflog_ent_fn *for_each_reflog_ent;
diff --git a/refspec.c b/refspec.c
index e3d852c0bf..63e3112104 100644
--- a/refspec.c
+++ b/refspec.c
@@ -4,13 +4,13 @@
#include "refspec.h"
static struct refspec_item s_tag_refspec = {
- 0,
- 1,
- 0,
- 0,
- 0,
- "refs/tags/*",
- "refs/tags/*"
+ .force = 0,
+ .pattern = 1,
+ .matching = 0,
+ .exact_sha1 = 0,
+ .negative = 0,
+ .src = "refs/tags/*",
+ .dst = "refs/tags/*",
};
/* See TAG_REFSPEC for the string version */
diff --git a/reftable/block.c b/reftable/block.c
index 855e3f5c94..34d4d07369 100644
--- a/reftable/block.c
+++ b/reftable/block.c
@@ -88,8 +88,9 @@ uint8_t block_writer_type(struct block_writer *bw)
return bw->buf[bw->header_off];
}
-/* adds the reftable_record to the block. Returns -1 if it does not fit, 0 on
- success */
+/* Adds the reftable_record to the block. Returns -1 if it does not fit, 0 on
+ success. Returns REFTABLE_API_ERROR if attempting to write a record with
+ empty key. */
int block_writer_add(struct block_writer *w, struct reftable_record *rec)
{
struct strbuf empty = STRBUF_INIT;
@@ -105,8 +106,14 @@ int block_writer_add(struct block_writer *w, struct reftable_record *rec)
int is_restart = 0;
struct strbuf key = STRBUF_INIT;
int n = 0;
+ int err = -1;
reftable_record_key(rec, &key);
+ if (!key.len) {
+ err = REFTABLE_API_ERROR;
+ goto done;
+ }
+
n = reftable_encode_key(&is_restart, out, last, key,
reftable_record_val_type(rec));
if (n < 0)
@@ -118,16 +125,11 @@ int block_writer_add(struct block_writer *w, struct reftable_record *rec)
goto done;
string_view_consume(&out, n);
- if (block_writer_register_restart(w, start.len - out.len, is_restart,
- &key) < 0)
- goto done;
-
- strbuf_release(&key);
- return 0;
-
+ err = block_writer_register_restart(w, start.len - out.len, is_restart,
+ &key);
done:
strbuf_release(&key);
- return -1;
+ return err;
}
int block_writer_finish(struct block_writer *w)
@@ -188,13 +190,16 @@ int block_reader_init(struct block_reader *br, struct reftable_block *block,
uint32_t full_block_size = table_block_size;
uint8_t typ = block->data[header_off];
uint32_t sz = get_be24(block->data + header_off + 1);
-
+ int err = 0;
uint16_t restart_count = 0;
uint32_t restart_start = 0;
uint8_t *restart_bytes = NULL;
+ uint8_t *uncompressed = NULL;
- if (!reftable_is_block_type(typ))
- return REFTABLE_FORMAT_ERROR;
+ if (!reftable_is_block_type(typ)) {
+ err = REFTABLE_FORMAT_ERROR;
+ goto done;
+ }
if (typ == BLOCK_TYPE_LOG) {
int block_header_skip = 4 + header_off;
@@ -203,7 +208,7 @@ int block_reader_init(struct block_reader *br, struct reftable_block *block,
uLongf src_len = block->len - block_header_skip;
/* Log blocks specify the *uncompressed* size in their header.
*/
- uint8_t *uncompressed = reftable_malloc(sz);
+ uncompressed = reftable_malloc(sz);
/* Copy over the block header verbatim. It's not compressed. */
memcpy(uncompressed, block->data, block_header_skip);
@@ -212,16 +217,19 @@ int block_reader_init(struct block_reader *br, struct reftable_block *block,
if (Z_OK !=
uncompress2(uncompressed + block_header_skip, &dst_len,
block->data + block_header_skip, &src_len)) {
- reftable_free(uncompressed);
- return REFTABLE_ZLIB_ERROR;
+ err = REFTABLE_ZLIB_ERROR;
+ goto done;
}
- if (dst_len + block_header_skip != sz)
- return REFTABLE_FORMAT_ERROR;
+ if (dst_len + block_header_skip != sz) {
+ err = REFTABLE_FORMAT_ERROR;
+ goto done;
+ }
/* We're done with the input data. */
reftable_block_done(block);
block->data = uncompressed;
+ uncompressed = NULL;
block->len = sz;
block->source = malloc_block_source();
full_block_size = src_len + block_header_skip;
@@ -251,7 +259,9 @@ int block_reader_init(struct block_reader *br, struct reftable_block *block,
br->restart_count = restart_count;
br->restart_bytes = restart_bytes;
- return 0;
+done:
+ reftable_free(uncompressed);
+ return err;
}
static uint32_t block_reader_restart_offset(struct block_reader *br, int i)
@@ -324,6 +334,9 @@ int block_iter_next(struct block_iter *it, struct reftable_record *rec)
if (n < 0)
return -1;
+ if (!key.len)
+ return REFTABLE_FORMAT_ERROR;
+
string_view_consume(&in, n);
n = reftable_record_decode(rec, key, extra, in, it->br->hash_size);
if (n < 0)
@@ -350,6 +363,8 @@ int block_reader_first_key(struct block_reader *br, struct strbuf *key)
int n = reftable_decode_key(key, &extra, empty, in);
if (n < 0)
return n;
+ if (!key->len)
+ return REFTABLE_FORMAT_ERROR;
return 0;
}
@@ -413,7 +428,7 @@ int block_reader_seek(struct block_reader *br, struct block_iter *it,
done:
strbuf_release(&key);
strbuf_release(&next.last_key);
- reftable_record_destroy(&rec);
+ reftable_record_release(&rec);
return err;
}
diff --git a/reftable/block_test.c b/reftable/block_test.c
index 4b3ea262dc..cb88af4a56 100644
--- a/reftable/block_test.c
+++ b/reftable/block_test.c
@@ -26,8 +26,9 @@ static void test_block_read_write(void)
struct block_writer bw = {
.last_key = STRBUF_INIT,
};
- struct reftable_ref_record ref = { NULL };
- struct reftable_record rec = { NULL };
+ struct reftable_record rec = {
+ .type = BLOCK_TYPE_REF,
+ };
int i = 0;
int n;
struct block_reader br = { 0 };
@@ -40,7 +41,11 @@ static void test_block_read_write(void)
block.source = malloc_block_source();
block_writer_init(&bw, BLOCK_TYPE_REF, block.data, block_size,
header_off, hash_size(GIT_SHA1_FORMAT_ID));
- reftable_record_from_ref(&rec, &ref);
+
+ rec.u.ref.refname = "";
+ rec.u.ref.value_type = REFTABLE_REF_DELETION;
+ n = block_writer_add(&bw, &rec);
+ EXPECT(n == REFTABLE_API_ERROR);
for (i = 0; i < N; i++) {
char name[100];
@@ -48,14 +53,14 @@ static void test_block_read_write(void)
snprintf(name, sizeof(name), "branch%02d", i);
memset(hash, i, sizeof(hash));
- ref.refname = name;
- ref.value_type = REFTABLE_REF_VAL1;
- ref.value.val1 = hash;
+ rec.u.ref.refname = name;
+ rec.u.ref.value_type = REFTABLE_REF_VAL1;
+ rec.u.ref.value.val1 = hash;
names[i] = xstrdup(name);
n = block_writer_add(&bw, &rec);
- ref.refname = NULL;
- ref.value_type = REFTABLE_REF_DELETION;
+ rec.u.ref.refname = NULL;
+ rec.u.ref.value_type = REFTABLE_REF_DELETION;
EXPECT(n == 0);
}
@@ -74,7 +79,7 @@ static void test_block_read_write(void)
if (r > 0) {
break;
}
- EXPECT_STREQ(names[j], ref.refname);
+ EXPECT_STREQ(names[j], rec.u.ref.refname);
j++;
}
@@ -92,7 +97,7 @@ static void test_block_read_write(void)
n = block_iter_next(&it, &rec);
EXPECT(n == 0);
- EXPECT_STREQ(names[i], ref.refname);
+ EXPECT_STREQ(names[i], rec.u.ref.refname);
want.len--;
n = block_reader_seek(&br, &it, &want);
@@ -100,7 +105,7 @@ static void test_block_read_write(void)
n = block_iter_next(&it, &rec);
EXPECT(n == 0);
- EXPECT_STREQ(names[10 * (i / 10)], ref.refname);
+ EXPECT_STREQ(names[10 * (i / 10)], rec.u.ref.refname);
block_iter_close(&it);
}
diff --git a/reftable/blocksource.c b/reftable/blocksource.c
index 0044eecd9a..8331b34e82 100644
--- a/reftable/blocksource.c
+++ b/reftable/blocksource.c
@@ -15,7 +15,8 @@ https://developers.google.com/open-source/licenses/bsd
static void strbuf_return_block(void *b, struct reftable_block *dest)
{
- memset(dest->data, 0xff, dest->len);
+ if (dest->len)
+ memset(dest->data, 0xff, dest->len);
reftable_free(dest->data);
}
@@ -56,7 +57,8 @@ void block_source_from_strbuf(struct reftable_block_source *bs,
static void malloc_return_block(void *b, struct reftable_block *dest)
{
- memset(dest->data, 0xff, dest->len);
+ if (dest->len)
+ memset(dest->data, 0xff, dest->len);
reftable_free(dest->data);
}
@@ -85,7 +87,8 @@ static uint64_t file_size(void *b)
static void file_return_block(void *b, struct reftable_block *dest)
{
- memset(dest->data, 0xff, dest->len);
+ if (dest->len)
+ memset(dest->data, 0xff, dest->len);
reftable_free(dest->data);
}
@@ -134,8 +137,10 @@ int reftable_block_source_from_file(struct reftable_block_source *bs,
}
err = fstat(fd, &st);
- if (err < 0)
- return -1;
+ if (err < 0) {
+ close(fd);
+ return REFTABLE_IO_ERROR;
+ }
p = reftable_calloc(sizeof(struct file_block_source));
p->size = st.st_size;
diff --git a/reftable/generic.c b/reftable/generic.c
index 7a8a738d86..57f8032db9 100644
--- a/reftable/generic.c
+++ b/reftable/generic.c
@@ -7,6 +7,7 @@ https://developers.google.com/open-source/licenses/bsd
*/
#include "basics.h"
+#include "constants.h"
#include "record.h"
#include "generic.h"
#include "reftable-iterator.h"
@@ -15,23 +16,21 @@ https://developers.google.com/open-source/licenses/bsd
int reftable_table_seek_ref(struct reftable_table *tab,
struct reftable_iterator *it, const char *name)
{
- struct reftable_ref_record ref = {
- .refname = (char *)name,
- };
- struct reftable_record rec = { NULL };
- reftable_record_from_ref(&rec, &ref);
+ struct reftable_record rec = { .type = BLOCK_TYPE_REF,
+ .u.ref = {
+ .refname = (char *)name,
+ } };
return tab->ops->seek_record(tab->table_arg, it, &rec);
}
int reftable_table_seek_log(struct reftable_table *tab,
struct reftable_iterator *it, const char *name)
{
- struct reftable_log_record log = {
- .refname = (char *)name,
- .update_index = ~((uint64_t)0),
- };
- struct reftable_record rec = { NULL };
- reftable_record_from_log(&rec, &log);
+ struct reftable_record rec = { .type = BLOCK_TYPE_LOG,
+ .u.log = {
+ .refname = (char *)name,
+ .update_index = ~((uint64_t)0),
+ } };
return tab->ops->seek_record(tab->table_arg, it, &rec);
}
@@ -129,17 +128,29 @@ void reftable_iterator_destroy(struct reftable_iterator *it)
int reftable_iterator_next_ref(struct reftable_iterator *it,
struct reftable_ref_record *ref)
{
- struct reftable_record rec = { NULL };
- reftable_record_from_ref(&rec, ref);
- return iterator_next(it, &rec);
+ struct reftable_record rec = {
+ .type = BLOCK_TYPE_REF,
+ .u = {
+ .ref = *ref
+ },
+ };
+ int err = iterator_next(it, &rec);
+ *ref = rec.u.ref;
+ return err;
}
int reftable_iterator_next_log(struct reftable_iterator *it,
struct reftable_log_record *log)
{
- struct reftable_record rec = { NULL };
- reftable_record_from_log(&rec, log);
- return iterator_next(it, &rec);
+ struct reftable_record rec = {
+ .type = BLOCK_TYPE_LOG,
+ .u = {
+ .log = *log,
+ },
+ };
+ int err = iterator_next(it, &rec);
+ *log = rec.u.log;
+ return err;
}
int iterator_next(struct reftable_iterator *it, struct reftable_record *rec)
diff --git a/reftable/iter.c b/reftable/iter.c
index 93d04f735b..a8d174c040 100644
--- a/reftable/iter.c
+++ b/reftable/iter.c
@@ -32,7 +32,7 @@ static int filtering_ref_iterator_next(void *iter_arg,
struct reftable_record *rec)
{
struct filtering_ref_iterator *fri = iter_arg;
- struct reftable_ref_record *ref = rec->data;
+ struct reftable_ref_record *ref = &rec->u.ref;
int err = 0;
while (1) {
err = reftable_iterator_next_ref(&fri->it, ref);
@@ -127,7 +127,7 @@ static int indexed_table_ref_iter_next_block(struct indexed_table_ref_iter *it)
static int indexed_table_ref_iter_next(void *p, struct reftable_record *rec)
{
struct indexed_table_ref_iter *it = p;
- struct reftable_ref_record *ref = rec->data;
+ struct reftable_ref_record *ref = &rec->u.ref;
while (1) {
int err = block_iter_next(&it->cur, rec);
diff --git a/reftable/merged.c b/reftable/merged.c
index e5b53da6db..2a6efa110d 100644
--- a/reftable/merged.c
+++ b/reftable/merged.c
@@ -30,7 +30,7 @@ static int merged_iter_init(struct merged_iter *mi)
if (err > 0) {
reftable_iterator_destroy(&mi->stack[i]);
- reftable_record_destroy(&rec);
+ reftable_record_release(&rec);
} else {
struct pq_entry e = {
.rec = rec,
@@ -57,18 +57,17 @@ static void merged_iter_close(void *p)
static int merged_iter_advance_nonnull_subiter(struct merged_iter *mi,
size_t idx)
{
- struct reftable_record rec = reftable_new_record(mi->typ);
struct pq_entry e = {
- .rec = rec,
+ .rec = reftable_new_record(mi->typ),
.index = idx,
};
- int err = iterator_next(&mi->stack[idx], &rec);
+ int err = iterator_next(&mi->stack[idx], &e.rec);
if (err < 0)
return err;
if (err > 0) {
reftable_iterator_destroy(&mi->stack[idx]);
- reftable_record_destroy(&rec);
+ reftable_record_release(&e.rec);
return 0;
}
@@ -126,11 +125,11 @@ static int merged_iter_next_entry(struct merged_iter *mi,
if (err < 0) {
return err;
}
- reftable_record_destroy(&top.rec);
+ reftable_record_release(&top.rec);
}
reftable_record_copy_from(rec, &entry.rec, hash_size(mi->hash_id));
- reftable_record_destroy(&entry.rec);
+ reftable_record_release(&entry.rec);
strbuf_release(&entry_key);
return 0;
}
@@ -290,11 +289,12 @@ int reftable_merged_table_seek_ref(struct reftable_merged_table *mt,
struct reftable_iterator *it,
const char *name)
{
- struct reftable_ref_record ref = {
- .refname = (char *)name,
+ struct reftable_record rec = {
+ .type = BLOCK_TYPE_REF,
+ .u.ref = {
+ .refname = (char *)name,
+ },
};
- struct reftable_record rec = { NULL };
- reftable_record_from_ref(&rec, &ref);
return merged_table_seek_record(mt, it, &rec);
}
@@ -302,12 +302,11 @@ int reftable_merged_table_seek_log_at(struct reftable_merged_table *mt,
struct reftable_iterator *it,
const char *name, uint64_t update_index)
{
- struct reftable_log_record log = {
- .refname = (char *)name,
- .update_index = update_index,
- };
- struct reftable_record rec = { NULL };
- reftable_record_from_log(&rec, &log);
+ struct reftable_record rec = { .type = BLOCK_TYPE_LOG,
+ .u.log = {
+ .refname = (char *)name,
+ .update_index = update_index,
+ } };
return merged_table_seek_record(mt, it, &rec);
}
diff --git a/reftable/pq.c b/reftable/pq.c
index efc474017a..96ca6dd37b 100644
--- a/reftable/pq.c
+++ b/reftable/pq.c
@@ -74,6 +74,7 @@ struct pq_entry merged_iter_pqueue_remove(struct merged_iter_pqueue *pq)
void merged_iter_pqueue_add(struct merged_iter_pqueue *pq, struct pq_entry e)
{
int i = 0;
+
if (pq->len == pq->cap) {
pq->cap = 2 * pq->cap + 1;
pq->heap = reftable_realloc(pq->heap,
@@ -98,7 +99,7 @@ void merged_iter_pqueue_release(struct merged_iter_pqueue *pq)
{
int i = 0;
for (i = 0; i < pq->len; i++) {
- reftable_record_destroy(&pq->heap[i].rec);
+ reftable_record_release(&pq->heap[i].rec);
}
FREE_AND_NULL(pq->heap);
pq->len = pq->cap = 0;
diff --git a/reftable/pq_test.c b/reftable/pq_test.c
index c9bb05e37b..7de5e886f3 100644
--- a/reftable/pq_test.c
+++ b/reftable/pq_test.c
@@ -31,7 +31,7 @@ static void test_pq(void)
int N = ARRAY_SIZE(names) - 1;
struct merged_iter_pqueue pq = { NULL };
- const char *last = NULL;
+ char *last = NULL;
int i = 0;
for (i = 0; i < N; i++) {
@@ -42,12 +42,10 @@ static void test_pq(void)
i = 1;
do {
- struct reftable_record rec =
- reftable_new_record(BLOCK_TYPE_REF);
- struct pq_entry e = { 0 };
-
- reftable_record_as_ref(&rec)->refname = names[i];
- e.rec = rec;
+ struct pq_entry e = { .rec = { .type = BLOCK_TYPE_REF,
+ .u.ref = {
+ .refname = names[i],
+ } } };
merged_iter_pqueue_add(&pq, e);
merged_iter_pqueue_check(pq);
i = (i * 7) % N;
@@ -55,19 +53,18 @@ static void test_pq(void)
while (!merged_iter_pqueue_is_empty(pq)) {
struct pq_entry e = merged_iter_pqueue_remove(&pq);
- struct reftable_ref_record *ref =
- reftable_record_as_ref(&e.rec);
-
+ struct reftable_record *rec = &e.rec;
merged_iter_pqueue_check(pq);
+ EXPECT(reftable_record_type(rec) == BLOCK_TYPE_REF);
if (last) {
- EXPECT(strcmp(last, ref->refname) < 0);
+ EXPECT(strcmp(last, rec->u.ref.refname) < 0);
}
- last = ref->refname;
- ref->refname = NULL;
- reftable_free(ref);
+ // this is names[i], so don't dealloc.
+ last = rec->u.ref.refname;
+ rec->u.ref.refname = NULL;
+ reftable_record_release(rec);
}
-
for (i = 0; i < N; i++) {
reftable_free(names[i]);
}
diff --git a/reftable/reader.c b/reftable/reader.c
index 006709a645..54b4025105 100644
--- a/reftable/reader.c
+++ b/reftable/reader.c
@@ -155,6 +155,11 @@ static int parse_footer(struct reftable_reader *r, uint8_t *footer,
r->log_offsets.is_present = (first_block_typ == BLOCK_TYPE_LOG ||
r->log_offsets.offset > 0);
r->obj_offsets.is_present = r->obj_offsets.offset > 0;
+ if (r->obj_offsets.is_present && !r->object_id_len) {
+ err = REFTABLE_FORMAT_ERROR;
+ goto done;
+ }
+
err = 0;
done:
return err;
@@ -239,8 +244,7 @@ static int table_iter_next_in_block(struct table_iter *ti,
{
int res = block_iter_next(&ti->bi, rec);
if (res == 0 && reftable_record_type(rec) == BLOCK_TYPE_REF) {
- ((struct reftable_ref_record *)rec->data)->update_index +=
- ti->r->min_update_index;
+ rec->u.ref.update_index += ti->r->min_update_index;
}
return res;
@@ -290,28 +294,33 @@ int reader_init_block_reader(struct reftable_reader *r, struct block_reader *br,
err = reader_get_block(r, &block, next_off, guess_block_size);
if (err < 0)
- return err;
+ goto done;
block_size = extract_block_size(block.data, &block_typ, next_off,
r->version);
- if (block_size < 0)
- return block_size;
-
+ if (block_size < 0) {
+ err = block_size;
+ goto done;
+ }
if (want_typ != BLOCK_TYPE_ANY && block_typ != want_typ) {
- reftable_block_done(&block);
- return 1;
+ err = 1;
+ goto done;
}
if (block_size > guess_block_size) {
reftable_block_done(&block);
err = reader_get_block(r, &block, next_off, block_size);
if (err < 0) {
- return err;
+ goto done;
}
}
- return block_reader_init(br, &block, header_off, r->block_size,
- hash_size(r->hash_id));
+ err = block_reader_init(br, &block, header_off, r->block_size,
+ hash_size(r->hash_id));
+done:
+ reftable_block_done(&block);
+
+ return err;
}
static int table_iter_next_block(struct table_iter *dest,
@@ -475,7 +484,7 @@ static int reader_seek_linear(struct reftable_reader *r, struct table_iter *ti,
done:
block_iter_close(&next.bi);
- reftable_record_destroy(&rec);
+ reftable_record_release(&rec);
strbuf_release(&want_key);
strbuf_release(&got_key);
return err;
@@ -485,34 +494,35 @@ static int reader_seek_indexed(struct reftable_reader *r,
struct reftable_iterator *it,
struct reftable_record *rec)
{
- struct reftable_index_record want_index = { .last_key = STRBUF_INIT };
- struct reftable_record want_index_rec = { NULL };
- struct reftable_index_record index_result = { .last_key = STRBUF_INIT };
- struct reftable_record index_result_rec = { NULL };
+ struct reftable_record want_index = {
+ .type = BLOCK_TYPE_INDEX, .u.idx = { .last_key = STRBUF_INIT }
+ };
+ struct reftable_record index_result = {
+ .type = BLOCK_TYPE_INDEX,
+ .u.idx = { .last_key = STRBUF_INIT },
+ };
struct table_iter index_iter = TABLE_ITER_INIT;
struct table_iter next = TABLE_ITER_INIT;
int err = 0;
- reftable_record_key(rec, &want_index.last_key);
- reftable_record_from_index(&want_index_rec, &want_index);
- reftable_record_from_index(&index_result_rec, &index_result);
-
+ reftable_record_key(rec, &want_index.u.idx.last_key);
err = reader_start(r, &index_iter, reftable_record_type(rec), 1);
if (err < 0)
goto done;
- err = reader_seek_linear(r, &index_iter, &want_index_rec);
+ err = reader_seek_linear(r, &index_iter, &want_index);
while (1) {
- err = table_iter_next(&index_iter, &index_result_rec);
+ err = table_iter_next(&index_iter, &index_result);
table_iter_block_done(&index_iter);
if (err != 0)
goto done;
- err = reader_table_iter_at(r, &next, index_result.offset, 0);
+ err = reader_table_iter_at(r, &next, index_result.u.idx.offset,
+ 0);
if (err != 0)
goto done;
- err = block_iter_seek(&next.bi, &want_index.last_key);
+ err = block_iter_seek(&next.bi, &want_index.u.idx.last_key);
if (err < 0)
goto done;
@@ -540,8 +550,8 @@ static int reader_seek_indexed(struct reftable_reader *r,
done:
block_iter_close(&next.bi);
table_iter_close(&index_iter);
- reftable_record_release(&want_index_rec);
- reftable_record_release(&index_result_rec);
+ reftable_record_release(&want_index);
+ reftable_record_release(&index_result);
return err;
}
@@ -590,11 +600,12 @@ static int reader_seek(struct reftable_reader *r, struct reftable_iterator *it,
int reftable_reader_seek_ref(struct reftable_reader *r,
struct reftable_iterator *it, const char *name)
{
- struct reftable_ref_record ref = {
- .refname = (char *)name,
+ struct reftable_record rec = {
+ .type = BLOCK_TYPE_REF,
+ .u.ref = {
+ .refname = (char *)name,
+ },
};
- struct reftable_record rec = { NULL };
- reftable_record_from_ref(&rec, &ref);
return reader_seek(r, it, &rec);
}
@@ -602,12 +613,11 @@ int reftable_reader_seek_log_at(struct reftable_reader *r,
struct reftable_iterator *it, const char *name,
uint64_t update_index)
{
- struct reftable_log_record log = {
- .refname = (char *)name,
- .update_index = update_index,
- };
- struct reftable_record rec = { NULL };
- reftable_record_from_log(&rec, &log);
+ struct reftable_record rec = { .type = BLOCK_TYPE_LOG,
+ .u.log = {
+ .refname = (char *)name,
+ .update_index = update_index,
+ } };
return reader_seek(r, it, &rec);
}
@@ -641,6 +651,8 @@ int reftable_new_reader(struct reftable_reader **p,
void reftable_reader_free(struct reftable_reader *r)
{
+ if (!r)
+ return;
reader_close(r);
reftable_free(r);
}
@@ -649,31 +661,33 @@ static int reftable_reader_refs_for_indexed(struct reftable_reader *r,
struct reftable_iterator *it,
uint8_t *oid)
{
- struct reftable_obj_record want = {
- .hash_prefix = oid,
- .hash_prefix_len = r->object_id_len,
+ struct reftable_record want = {
+ .type = BLOCK_TYPE_OBJ,
+ .u.obj = {
+ .hash_prefix = oid,
+ .hash_prefix_len = r->object_id_len,
+ },
};
- struct reftable_record want_rec = { NULL };
struct reftable_iterator oit = { NULL };
- struct reftable_obj_record got = { NULL };
- struct reftable_record got_rec = { NULL };
+ struct reftable_record got = {
+ .type = BLOCK_TYPE_OBJ,
+ .u.obj = { 0 },
+ };
int err = 0;
struct indexed_table_ref_iter *itr = NULL;
/* Look through the reverse index. */
- reftable_record_from_obj(&want_rec, &want);
- err = reader_seek(r, &oit, &want_rec);
+ err = reader_seek(r, &oit, &want);
if (err != 0)
goto done;
/* read out the reftable_obj_record */
- reftable_record_from_obj(&got_rec, &got);
- err = iterator_next(&oit, &got_rec);
+ err = iterator_next(&oit, &got);
if (err < 0)
goto done;
- if (err > 0 ||
- memcmp(want.hash_prefix, got.hash_prefix, r->object_id_len)) {
+ if (err > 0 || memcmp(want.u.obj.hash_prefix, got.u.obj.hash_prefix,
+ r->object_id_len)) {
/* didn't find it; return empty iterator */
iterator_set_empty(it);
err = 0;
@@ -681,15 +695,16 @@ static int reftable_reader_refs_for_indexed(struct reftable_reader *r,
}
err = new_indexed_table_ref_iter(&itr, r, oid, hash_size(r->hash_id),
- got.offsets, got.offset_len);
+ got.u.obj.offsets,
+ got.u.obj.offset_len);
if (err < 0)
goto done;
- got.offsets = NULL;
+ got.u.obj.offsets = NULL;
iterator_from_indexed_table_ref_iter(it, itr);
done:
reftable_iterator_destroy(&oit);
- reftable_record_release(&got_rec);
+ reftable_record_release(&got);
return err;
}
diff --git a/reftable/readwrite_test.c b/reftable/readwrite_test.c
index 70c7aedba2..469ab79a5a 100644
--- a/reftable/readwrite_test.c
+++ b/reftable/readwrite_test.c
@@ -100,7 +100,7 @@ static void write_table(char ***names, struct strbuf *buf, int N,
n = reftable_writer_close(w);
EXPECT(n == 0);
- stats = writer_stats(w);
+ stats = reftable_writer_stats(w);
for (i = 0; i < stats->ref_stats.blocks; i++) {
int off = i * opts.block_size;
if (off == 0) {
@@ -239,7 +239,7 @@ static void test_log_write_read(void)
n = reftable_writer_close(w);
EXPECT(n == 0);
- stats = writer_stats(w);
+ stats = reftable_writer_stats(w);
EXPECT(stats->log_stats.blocks > 0);
reftable_writer_free(w);
w = NULL;
@@ -288,6 +288,71 @@ static void test_log_write_read(void)
reader_close(&rd);
}
+static void test_log_zlib_corruption(void)
+{
+ struct reftable_write_options opts = {
+ .block_size = 256,
+ };
+ struct reftable_iterator it = { 0 };
+ struct reftable_reader rd = { 0 };
+ struct reftable_block_source source = { 0 };
+ struct strbuf buf = STRBUF_INIT;
+ struct reftable_writer *w =
+ reftable_new_writer(&strbuf_add_void, &buf, &opts);
+ const struct reftable_stats *stats = NULL;
+ uint8_t hash1[GIT_SHA1_RAWSZ] = { 1 };
+ uint8_t hash2[GIT_SHA1_RAWSZ] = { 2 };
+ char message[100] = { 0 };
+ int err, i, n;
+
+ struct reftable_log_record log = {
+ .refname = "refname",
+ .value_type = REFTABLE_LOG_UPDATE,
+ .value = {
+ .update = {
+ .new_hash = hash1,
+ .old_hash = hash2,
+ .name = "My Name",
+ .email = "myname@invalid",
+ .message = message,
+ },
+ },
+ };
+
+ for (i = 0; i < sizeof(message) - 1; i++)
+ message[i] = (uint8_t)(rand() % 64 + ' ');
+
+ reftable_writer_set_limits(w, 1, 1);
+
+ err = reftable_writer_add_log(w, &log);
+ EXPECT_ERR(err);
+
+ n = reftable_writer_close(w);
+ EXPECT(n == 0);
+
+ stats = reftable_writer_stats(w);
+ EXPECT(stats->log_stats.blocks > 0);
+ reftable_writer_free(w);
+ w = NULL;
+
+ /* corrupt the data. */
+ buf.buf[50] ^= 0x99;
+
+ block_source_from_strbuf(&source, &buf);
+
+ err = init_reader(&rd, &source, "file.log");
+ EXPECT_ERR(err);
+
+ err = reftable_reader_seek_log(&rd, &it, "refname");
+ EXPECT(err == REFTABLE_ZLIB_ERROR);
+
+ reftable_iterator_destroy(&it);
+
+ /* cleanup. */
+ strbuf_release(&buf);
+ reader_close(&rd);
+}
+
static void test_table_read_write_sequential(void)
{
char **names;
@@ -602,6 +667,102 @@ static void test_write_empty_table(void)
strbuf_release(&buf);
}
+static void test_write_object_id_min_length(void)
+{
+ struct reftable_write_options opts = {
+ .block_size = 75,
+ };
+ struct strbuf buf = STRBUF_INIT;
+ struct reftable_writer *w =
+ reftable_new_writer(&strbuf_add_void, &buf, &opts);
+ uint8_t hash[GIT_SHA1_RAWSZ] = {42};
+ struct reftable_ref_record ref = {
+ .update_index = 1,
+ .value_type = REFTABLE_REF_VAL1,
+ .value.val1 = hash,
+ };
+ int err;
+ int i;
+
+ reftable_writer_set_limits(w, 1, 1);
+
+ /* Write the same hash in many refs. If there is only 1 hash, the
+ * disambiguating prefix is length 0 */
+ for (i = 0; i < 256; i++) {
+ char name[256];
+ snprintf(name, sizeof(name), "ref%05d", i);
+ ref.refname = name;
+ err = reftable_writer_add_ref(w, &ref);
+ EXPECT_ERR(err);
+ }
+
+ err = reftable_writer_close(w);
+ EXPECT_ERR(err);
+ EXPECT(reftable_writer_stats(w)->object_id_len == 2);
+ reftable_writer_free(w);
+ strbuf_release(&buf);
+}
+
+static void test_write_object_id_length(void)
+{
+ struct reftable_write_options opts = {
+ .block_size = 75,
+ };
+ struct strbuf buf = STRBUF_INIT;
+ struct reftable_writer *w =
+ reftable_new_writer(&strbuf_add_void, &buf, &opts);
+ uint8_t hash[GIT_SHA1_RAWSZ] = {42};
+ struct reftable_ref_record ref = {
+ .update_index = 1,
+ .value_type = REFTABLE_REF_VAL1,
+ .value.val1 = hash,
+ };
+ int err;
+ int i;
+
+ reftable_writer_set_limits(w, 1, 1);
+
+ /* Write the same hash in many refs. If there is only 1 hash, the
+ * disambiguating prefix is length 0 */
+ for (i = 0; i < 256; i++) {
+ char name[256];
+ snprintf(name, sizeof(name), "ref%05d", i);
+ ref.refname = name;
+ ref.value.val1[15] = i;
+ err = reftable_writer_add_ref(w, &ref);
+ EXPECT_ERR(err);
+ }
+
+ err = reftable_writer_close(w);
+ EXPECT_ERR(err);
+ EXPECT(reftable_writer_stats(w)->object_id_len == 16);
+ reftable_writer_free(w);
+ strbuf_release(&buf);
+}
+
+static void test_write_empty_key(void)
+{
+ struct reftable_write_options opts = { 0 };
+ struct strbuf buf = STRBUF_INIT;
+ struct reftable_writer *w =
+ reftable_new_writer(&strbuf_add_void, &buf, &opts);
+ struct reftable_ref_record ref = {
+ .refname = "",
+ .update_index = 1,
+ .value_type = REFTABLE_REF_DELETION,
+ };
+ int err;
+
+ reftable_writer_set_limits(w, 1, 1);
+ err = reftable_writer_add_ref(w, &ref);
+ EXPECT(err == REFTABLE_API_ERROR);
+
+ err = reftable_writer_close(w);
+ EXPECT(err == REFTABLE_EMPTY_TABLE_ERROR);
+ reftable_writer_free(w);
+ strbuf_release(&buf);
+}
+
static void test_write_key_order(void)
{
struct reftable_write_options opts = { 0 };
@@ -631,7 +792,6 @@ static void test_write_key_order(void)
err = reftable_writer_add_ref(w, &refs[0]);
EXPECT_ERR(err);
err = reftable_writer_add_ref(w, &refs[1]);
- printf("%d\n", err);
EXPECT(err == REFTABLE_API_ERROR);
reftable_writer_close(w);
reftable_writer_free(w);
@@ -667,6 +827,7 @@ static void test_corrupt_table(void)
int readwrite_test_main(int argc, const char *argv[])
{
+ RUN_TEST(test_log_zlib_corruption);
RUN_TEST(test_corrupt_table);
RUN_TEST(test_corrupt_table_empty);
RUN_TEST(test_log_write_read);
@@ -681,7 +842,10 @@ int readwrite_test_main(int argc, const char *argv[])
RUN_TEST(test_table_read_write_seek_index);
RUN_TEST(test_table_refs_for_no_index);
RUN_TEST(test_table_refs_for_obj_index);
+ RUN_TEST(test_write_empty_key);
RUN_TEST(test_write_empty_table);
RUN_TEST(test_log_overflow);
+ RUN_TEST(test_write_object_id_length);
+ RUN_TEST(test_write_object_id_min_length);
return 0;
}
diff --git a/reftable/record.c b/reftable/record.c
index 6a5dac32dc..fbaa1fbef5 100644
--- a/reftable/record.c
+++ b/reftable/record.c
@@ -15,6 +15,10 @@ https://developers.google.com/open-source/licenses/bsd
#include "reftable-error.h"
#include "basics.h"
+static struct reftable_record_vtable *
+reftable_record_vtable(struct reftable_record *rec);
+static void *reftable_record_data(struct reftable_record *rec);
+
int get_var_int(uint64_t *dest, struct string_view *in)
{
int ptr = 0;
@@ -72,7 +76,7 @@ int reftable_is_block_type(uint8_t typ)
return 0;
}
-uint8_t *reftable_ref_record_val1(struct reftable_ref_record *rec)
+uint8_t *reftable_ref_record_val1(const struct reftable_ref_record *rec)
{
switch (rec->value_type) {
case REFTABLE_REF_VAL1:
@@ -84,7 +88,7 @@ uint8_t *reftable_ref_record_val1(struct reftable_ref_record *rec)
}
}
-uint8_t *reftable_ref_record_val2(struct reftable_ref_record *rec)
+uint8_t *reftable_ref_record_val2(const struct reftable_ref_record *rec)
{
switch (rec->value_type) {
case REFTABLE_REF_VAL2:
@@ -251,24 +255,24 @@ static void hex_format(char *dest, uint8_t *src, int hash_size)
}
}
-void reftable_ref_record_print(struct reftable_ref_record *ref,
- uint32_t hash_id)
+static void reftable_ref_record_print_sz(const struct reftable_ref_record *ref,
+ int hash_size)
{
- char hex[2 * GIT_SHA256_RAWSZ + 1] = { 0 }; /* BUG */
+ char hex[GIT_MAX_HEXSZ + 1] = { 0 }; /* BUG */
printf("ref{%s(%" PRIu64 ") ", ref->refname, ref->update_index);
switch (ref->value_type) {
case REFTABLE_REF_SYMREF:
printf("=> %s", ref->value.symref);
break;
case REFTABLE_REF_VAL2:
- hex_format(hex, ref->value.val2.value, hash_size(hash_id));
+ hex_format(hex, ref->value.val2.value, hash_size);
printf("val 2 %s", hex);
hex_format(hex, ref->value.val2.target_value,
- hash_size(hash_id));
+ hash_size);
printf("(T %s)", hex);
break;
case REFTABLE_REF_VAL1:
- hex_format(hex, ref->value.val1, hash_size(hash_id));
+ hex_format(hex, ref->value.val1, hash_size);
printf("val 1 %s", hex);
break;
case REFTABLE_REF_DELETION:
@@ -278,6 +282,11 @@ void reftable_ref_record_print(struct reftable_ref_record *ref,
printf("}\n");
}
+void reftable_ref_record_print(const struct reftable_ref_record *ref,
+ uint32_t hash_id) {
+ reftable_ref_record_print_sz(ref, hash_size(hash_id));
+}
+
static void reftable_ref_record_release_void(void *rec)
{
reftable_ref_record_release(rec);
@@ -430,6 +439,21 @@ static int reftable_ref_record_is_deletion_void(const void *p)
(const struct reftable_ref_record *)p);
}
+
+static int reftable_ref_record_equal_void(const void *a,
+ const void *b, int hash_size)
+{
+ struct reftable_ref_record *ra = (struct reftable_ref_record *) a;
+ struct reftable_ref_record *rb = (struct reftable_ref_record *) b;
+ return reftable_ref_record_equal(ra, rb, hash_size);
+}
+
+static void reftable_ref_record_print_void(const void *rec,
+ int hash_size)
+{
+ reftable_ref_record_print_sz((struct reftable_ref_record *) rec, hash_size);
+}
+
static struct reftable_record_vtable reftable_ref_record_vtable = {
.key = &reftable_ref_record_key,
.type = BLOCK_TYPE_REF,
@@ -439,6 +463,8 @@ static struct reftable_record_vtable reftable_ref_record_vtable = {
.decode = &reftable_ref_record_decode,
.release = &reftable_ref_record_release_void,
.is_deletion = &reftable_ref_record_is_deletion_void,
+ .equal = &reftable_ref_record_equal_void,
+ .print = &reftable_ref_record_print_void,
};
static void reftable_obj_record_key(const void *r, struct strbuf *dest)
@@ -457,6 +483,21 @@ static void reftable_obj_record_release(void *rec)
memset(obj, 0, sizeof(struct reftable_obj_record));
}
+static void reftable_obj_record_print(const void *rec, int hash_size)
+{
+ const struct reftable_obj_record *obj = rec;
+ char hex[GIT_MAX_HEXSZ + 1] = { 0 };
+ struct strbuf offset_str = STRBUF_INIT;
+ int i;
+
+ for (i = 0; i < obj->offset_len; i++)
+ strbuf_addf(&offset_str, "%" PRIu64 " ", obj->offsets[i]);
+ hex_format(hex, obj->hash_prefix, obj->hash_prefix_len);
+ printf("prefix %s (len %d), offsets [%s]\n",
+ hex, obj->hash_prefix_len, offset_str.buf);
+ strbuf_release(&offset_str);
+}
+
static void reftable_obj_record_copy_from(void *rec, const void *src_rec,
int hash_size)
{
@@ -465,12 +506,14 @@ static void reftable_obj_record_copy_from(void *rec, const void *src_rec,
(const struct reftable_obj_record *)src_rec;
reftable_obj_record_release(obj);
- *obj = *src;
- obj->hash_prefix = reftable_malloc(obj->hash_prefix_len);
- memcpy(obj->hash_prefix, src->hash_prefix, obj->hash_prefix_len);
+ obj->hash_prefix = reftable_malloc(src->hash_prefix_len);
+ obj->hash_prefix_len = src->hash_prefix_len;
+ if (src->hash_prefix_len)
+ memcpy(obj->hash_prefix, src->hash_prefix, obj->hash_prefix_len);
- obj->offsets = reftable_malloc(obj->offset_len * sizeof(uint64_t));
- COPY_ARRAY(obj->offsets, src->offsets, obj->offset_len);
+ obj->offsets = reftable_malloc(src->offset_len * sizeof(uint64_t));
+ obj->offset_len = src->offset_len;
+ COPY_ARRAY(obj->offsets, src->offsets, src->offset_len);
}
static uint8_t reftable_obj_record_val_type(const void *rec)
@@ -572,6 +615,25 @@ static int not_a_deletion(const void *p)
return 0;
}
+static int reftable_obj_record_equal_void(const void *a, const void *b, int hash_size)
+{
+ struct reftable_obj_record *ra = (struct reftable_obj_record *) a;
+ struct reftable_obj_record *rb = (struct reftable_obj_record *) b;
+
+ if (ra->hash_prefix_len != rb->hash_prefix_len
+ || ra->offset_len != rb->offset_len)
+ return 0;
+
+ if (ra->hash_prefix_len &&
+ memcmp(ra->hash_prefix, rb->hash_prefix, ra->hash_prefix_len))
+ return 0;
+ if (ra->offset_len &&
+ memcmp(ra->offsets, rb->offsets, ra->offset_len * sizeof(uint64_t)))
+ return 0;
+
+ return 1;
+}
+
static struct reftable_record_vtable reftable_obj_record_vtable = {
.key = &reftable_obj_record_key,
.type = BLOCK_TYPE_OBJ,
@@ -580,32 +642,43 @@ static struct reftable_record_vtable reftable_obj_record_vtable = {
.encode = &reftable_obj_record_encode,
.decode = &reftable_obj_record_decode,
.release = &reftable_obj_record_release,
- .is_deletion = not_a_deletion,
+ .is_deletion = &not_a_deletion,
+ .equal = &reftable_obj_record_equal_void,
+ .print = &reftable_obj_record_print,
};
-void reftable_log_record_print(struct reftable_log_record *log,
- uint32_t hash_id)
+static void reftable_log_record_print_sz(struct reftable_log_record *log,
+ int hash_size)
{
- char hex[GIT_SHA256_RAWSZ + 1] = { 0 };
+ char hex[GIT_MAX_HEXSZ + 1] = { 0 };
switch (log->value_type) {
case REFTABLE_LOG_DELETION:
- printf("log{%s(%" PRIu64 ") delete", log->refname,
+ printf("log{%s(%" PRIu64 ") delete\n", log->refname,
log->update_index);
break;
case REFTABLE_LOG_UPDATE:
printf("log{%s(%" PRIu64 ") %s <%s> %" PRIu64 " %04d\n",
- log->refname, log->update_index, log->value.update.name,
- log->value.update.email, log->value.update.time,
+ log->refname, log->update_index,
+ log->value.update.name ? log->value.update.name : "",
+ log->value.update.email ? log->value.update.email : "",
+ log->value.update.time,
log->value.update.tz_offset);
- hex_format(hex, log->value.update.old_hash, hash_size(hash_id));
+ hex_format(hex, log->value.update.old_hash, hash_size);
printf("%s => ", hex);
- hex_format(hex, log->value.update.new_hash, hash_size(hash_id));
- printf("%s\n\n%s\n}\n", hex, log->value.update.message);
+ hex_format(hex, log->value.update.new_hash, hash_size);
+ printf("%s\n\n%s\n}\n", hex,
+ log->value.update.message ? log->value.update.message : "");
break;
}
}
+void reftable_log_record_print(struct reftable_log_record *log,
+ uint32_t hash_id)
+{
+ reftable_log_record_print_sz(log, hash_size(hash_id));
+}
+
static void reftable_log_record_key(const void *r, struct strbuf *dest)
{
const struct reftable_log_record *rec =
@@ -881,8 +954,16 @@ static int zero_hash_eq(uint8_t *a, uint8_t *b, int sz)
return !memcmp(a, b, sz);
}
-int reftable_log_record_equal(struct reftable_log_record *a,
- struct reftable_log_record *b, int hash_size)
+static int reftable_log_record_equal_void(const void *a,
+ const void *b, int hash_size)
+{
+ return reftable_log_record_equal((struct reftable_log_record *) a,
+ (struct reftable_log_record *) b,
+ hash_size);
+}
+
+int reftable_log_record_equal(const struct reftable_log_record *a,
+ const struct reftable_log_record *b, int hash_size)
{
if (!(null_streq(a->refname, b->refname) &&
a->update_index == b->update_index &&
@@ -915,6 +996,11 @@ static int reftable_log_record_is_deletion_void(const void *p)
(const struct reftable_log_record *)p);
}
+static void reftable_log_record_print_void(const void *rec, int hash_size)
+{
+ reftable_log_record_print_sz((struct reftable_log_record*)rec, hash_size);
+}
+
static struct reftable_record_vtable reftable_log_record_vtable = {
.key = &reftable_log_record_key,
.type = BLOCK_TYPE_LOG,
@@ -924,60 +1010,10 @@ static struct reftable_record_vtable reftable_log_record_vtable = {
.decode = &reftable_log_record_decode,
.release = &reftable_log_record_release_void,
.is_deletion = &reftable_log_record_is_deletion_void,
+ .equal = &reftable_log_record_equal_void,
+ .print = &reftable_log_record_print_void,
};
-struct reftable_record reftable_new_record(uint8_t typ)
-{
- struct reftable_record rec = { NULL };
- switch (typ) {
- case BLOCK_TYPE_REF: {
- struct reftable_ref_record *r =
- reftable_calloc(sizeof(struct reftable_ref_record));
- reftable_record_from_ref(&rec, r);
- return rec;
- }
-
- case BLOCK_TYPE_OBJ: {
- struct reftable_obj_record *r =
- reftable_calloc(sizeof(struct reftable_obj_record));
- reftable_record_from_obj(&rec, r);
- return rec;
- }
- case BLOCK_TYPE_LOG: {
- struct reftable_log_record *r =
- reftable_calloc(sizeof(struct reftable_log_record));
- reftable_record_from_log(&rec, r);
- return rec;
- }
- case BLOCK_TYPE_INDEX: {
- struct reftable_index_record empty = { .last_key =
- STRBUF_INIT };
- struct reftable_index_record *r =
- reftable_calloc(sizeof(struct reftable_index_record));
- *r = empty;
- reftable_record_from_index(&rec, r);
- return rec;
- }
- }
- abort();
- return rec;
-}
-
-/* clear out the record, yielding the reftable_record data that was
- * encapsulated. */
-static void *reftable_record_yield(struct reftable_record *rec)
-{
- void *p = rec->data;
- rec->data = NULL;
- return p;
-}
-
-void reftable_record_destroy(struct reftable_record *rec)
-{
- reftable_record_release(rec);
- reftable_free(reftable_record_yield(rec));
-}
-
static void reftable_index_record_key(const void *r, struct strbuf *dest)
{
const struct reftable_index_record *rec = r;
@@ -1042,6 +1078,21 @@ static int reftable_index_record_decode(void *rec, struct strbuf key,
return start.len - in.len;
}
+static int reftable_index_record_equal(const void *a, const void *b, int hash_size)
+{
+ struct reftable_index_record *ia = (struct reftable_index_record *) a;
+ struct reftable_index_record *ib = (struct reftable_index_record *) b;
+
+ return ia->offset == ib->offset && !strbuf_cmp(&ia->last_key, &ib->last_key);
+}
+
+static void reftable_index_record_print(const void *rec, int hash_size)
+{
+ const struct reftable_index_record *idx = rec;
+ /* TODO: escape null chars? */
+ printf("\"%s\" %" PRIu64 "\n", idx->last_key.buf, idx->offset);
+}
+
static struct reftable_record_vtable reftable_index_record_vtable = {
.key = &reftable_index_record_key,
.type = BLOCK_TYPE_INDEX,
@@ -1051,95 +1102,66 @@ static struct reftable_record_vtable reftable_index_record_vtable = {
.decode = &reftable_index_record_decode,
.release = &reftable_index_record_release,
.is_deletion = &not_a_deletion,
+ .equal = &reftable_index_record_equal,
+ .print = &reftable_index_record_print,
};
void reftable_record_key(struct reftable_record *rec, struct strbuf *dest)
{
- rec->ops->key(rec->data, dest);
+ reftable_record_vtable(rec)->key(reftable_record_data(rec), dest);
}
uint8_t reftable_record_type(struct reftable_record *rec)
{
- return rec->ops->type;
+ return rec->type;
}
int reftable_record_encode(struct reftable_record *rec, struct string_view dest,
int hash_size)
{
- return rec->ops->encode(rec->data, dest, hash_size);
+ return reftable_record_vtable(rec)->encode(reftable_record_data(rec),
+ dest, hash_size);
}
void reftable_record_copy_from(struct reftable_record *rec,
struct reftable_record *src, int hash_size)
{
- assert(src->ops->type == rec->ops->type);
+ assert(src->type == rec->type);
- rec->ops->copy_from(rec->data, src->data, hash_size);
+ reftable_record_vtable(rec)->copy_from(reftable_record_data(rec),
+ reftable_record_data(src),
+ hash_size);
}
uint8_t reftable_record_val_type(struct reftable_record *rec)
{
- return rec->ops->val_type(rec->data);
+ return reftable_record_vtable(rec)->val_type(reftable_record_data(rec));
}
int reftable_record_decode(struct reftable_record *rec, struct strbuf key,
uint8_t extra, struct string_view src, int hash_size)
{
- return rec->ops->decode(rec->data, key, extra, src, hash_size);
+ return reftable_record_vtable(rec)->decode(reftable_record_data(rec),
+ key, extra, src, hash_size);
}
void reftable_record_release(struct reftable_record *rec)
{
- rec->ops->release(rec->data);
+ reftable_record_vtable(rec)->release(reftable_record_data(rec));
}
int reftable_record_is_deletion(struct reftable_record *rec)
{
- return rec->ops->is_deletion(rec->data);
+ return reftable_record_vtable(rec)->is_deletion(
+ reftable_record_data(rec));
}
-void reftable_record_from_ref(struct reftable_record *rec,
- struct reftable_ref_record *ref_rec)
+int reftable_record_equal(struct reftable_record *a, struct reftable_record *b, int hash_size)
{
- assert(!rec->ops);
- rec->data = ref_rec;
- rec->ops = &reftable_ref_record_vtable;
-}
-
-void reftable_record_from_obj(struct reftable_record *rec,
- struct reftable_obj_record *obj_rec)
-{
- assert(!rec->ops);
- rec->data = obj_rec;
- rec->ops = &reftable_obj_record_vtable;
-}
-
-void reftable_record_from_index(struct reftable_record *rec,
- struct reftable_index_record *index_rec)
-{
- assert(!rec->ops);
- rec->data = index_rec;
- rec->ops = &reftable_index_record_vtable;
-}
-
-void reftable_record_from_log(struct reftable_record *rec,
- struct reftable_log_record *log_rec)
-{
- assert(!rec->ops);
- rec->data = log_rec;
- rec->ops = &reftable_log_record_vtable;
-}
-
-struct reftable_ref_record *reftable_record_as_ref(struct reftable_record *rec)
-{
- assert(reftable_record_type(rec) == BLOCK_TYPE_REF);
- return rec->data;
-}
-
-struct reftable_log_record *reftable_record_as_log(struct reftable_record *rec)
-{
- assert(reftable_record_type(rec) == BLOCK_TYPE_LOG);
- return rec->data;
+ if (a->type != b->type)
+ return 0;
+ return reftable_record_vtable(a)->equal(
+ reftable_record_data(a), reftable_record_data(b), hash_size);
}
static int hash_equal(uint8_t *a, uint8_t *b, int hash_size)
@@ -1150,13 +1172,15 @@ static int hash_equal(uint8_t *a, uint8_t *b, int hash_size)
return a == b;
}
-int reftable_ref_record_equal(struct reftable_ref_record *a,
- struct reftable_ref_record *b, int hash_size)
+int reftable_ref_record_equal(const struct reftable_ref_record *a,
+ const struct reftable_ref_record *b, int hash_size)
{
assert(hash_size > 0);
- if (!(0 == strcmp(a->refname, b->refname) &&
- a->update_index == b->update_index &&
- a->value_type == b->value_type))
+ if (!null_streq(a->refname, b->refname))
+ return 0;
+
+ if (a->update_index != b->update_index ||
+ a->value_type != b->value_type)
return 0;
switch (a->value_type) {
@@ -1210,3 +1234,81 @@ void string_view_consume(struct string_view *s, int n)
s->buf += n;
s->len -= n;
}
+
+static void *reftable_record_data(struct reftable_record *rec)
+{
+ switch (rec->type) {
+ case BLOCK_TYPE_REF:
+ return &rec->u.ref;
+ case BLOCK_TYPE_LOG:
+ return &rec->u.log;
+ case BLOCK_TYPE_INDEX:
+ return &rec->u.idx;
+ case BLOCK_TYPE_OBJ:
+ return &rec->u.obj;
+ }
+ abort();
+}
+
+static struct reftable_record_vtable *
+reftable_record_vtable(struct reftable_record *rec)
+{
+ switch (rec->type) {
+ case BLOCK_TYPE_REF:
+ return &reftable_ref_record_vtable;
+ case BLOCK_TYPE_LOG:
+ return &reftable_log_record_vtable;
+ case BLOCK_TYPE_INDEX:
+ return &reftable_index_record_vtable;
+ case BLOCK_TYPE_OBJ:
+ return &reftable_obj_record_vtable;
+ }
+ abort();
+}
+
+struct reftable_record reftable_new_record(uint8_t typ)
+{
+ struct reftable_record clean = {
+ .type = typ,
+ };
+
+ /* the following is involved, but the naive solution (just return
+ * `clean` as is, except for BLOCK_TYPE_INDEX), returns a garbage
+ * clean.u.obj.offsets pointer on Windows VS CI. Go figure.
+ */
+ switch (typ) {
+ case BLOCK_TYPE_OBJ:
+ {
+ struct reftable_obj_record obj = { 0 };
+ clean.u.obj = obj;
+ break;
+ }
+ case BLOCK_TYPE_INDEX:
+ {
+ struct reftable_index_record idx = {
+ .last_key = STRBUF_INIT,
+ };
+ clean.u.idx = idx;
+ break;
+ }
+ case BLOCK_TYPE_REF:
+ {
+ struct reftable_ref_record ref = { 0 };
+ clean.u.ref = ref;
+ break;
+ }
+ case BLOCK_TYPE_LOG:
+ {
+ struct reftable_log_record log = { 0 };
+ clean.u.log = log;
+ break;
+ }
+ }
+ return clean;
+}
+
+void reftable_record_print(struct reftable_record *rec, int hash_size)
+{
+ printf("'%c': ", rec->type);
+ reftable_record_vtable(rec)->print(reftable_record_data(rec), hash_size);
+}
diff --git a/reftable/record.h b/reftable/record.h
index 498e8c50bf..fd80cd451d 100644
--- a/reftable/record.h
+++ b/reftable/record.h
@@ -58,18 +58,18 @@ struct reftable_record_vtable {
/* is this a tombstone? */
int (*is_deletion)(const void *rec);
-};
-/* record is a generic wrapper for different types of records. */
-struct reftable_record {
- void *data;
- struct reftable_record_vtable *ops;
+ /* Are two records equal? This assumes they have the same type. Returns 0 for non-equal. */
+ int (*equal)(const void *a, const void *b, int hash_size);
+
+ /* Print on stdout, for debugging. */
+ void (*print)(const void *rec, int hash_size);
};
/* returns true for recognized block types. Block start with the block type. */
int reftable_is_block_type(uint8_t typ);
-/* creates a malloced record of the given type. Dispose with record_destroy */
+/* return an initialized record for the given type */
struct reftable_record reftable_new_record(uint8_t typ);
/* Encode `key` into `dest`. Sets `is_restart` to indicate a restart. Returns
@@ -97,8 +97,25 @@ struct reftable_obj_record {
int offset_len;
};
-/* see struct record_vtable */
+/* record is a generic wrapper for different types of records. It is normally
+ * created on the stack, or embedded within another struct. If the type is
+ * known, a fresh instance can be initialized explicitly. Otherwise, use
+ * reftable_new_record() to initialize generically (as the index_record is not
+ * valid as 0-initialized structure)
+ */
+struct reftable_record {
+ uint8_t type;
+ union {
+ struct reftable_ref_record ref;
+ struct reftable_log_record log;
+ struct reftable_obj_record obj;
+ struct reftable_index_record idx;
+ } u;
+};
+/* see struct record_vtable */
+int reftable_record_equal(struct reftable_record *a, struct reftable_record *b, int hash_size);
+void reftable_record_print(struct reftable_record *rec, int hash_size);
void reftable_record_key(struct reftable_record *rec, struct strbuf *dest);
uint8_t reftable_record_type(struct reftable_record *rec);
void reftable_record_copy_from(struct reftable_record *rec,
@@ -111,25 +128,9 @@ int reftable_record_decode(struct reftable_record *rec, struct strbuf key,
int hash_size);
int reftable_record_is_deletion(struct reftable_record *rec);
-/* zeroes out the embedded record */
+/* frees and zeroes out the embedded record */
void reftable_record_release(struct reftable_record *rec);
-/* clear and deallocate embedded record, and zero `rec`. */
-void reftable_record_destroy(struct reftable_record *rec);
-
-/* initialize generic records from concrete records. The generic record should
- * be zeroed out. */
-void reftable_record_from_obj(struct reftable_record *rec,
- struct reftable_obj_record *objrec);
-void reftable_record_from_index(struct reftable_record *rec,
- struct reftable_index_record *idxrec);
-void reftable_record_from_ref(struct reftable_record *rec,
- struct reftable_ref_record *refrec);
-void reftable_record_from_log(struct reftable_record *rec,
- struct reftable_log_record *logrec);
-struct reftable_ref_record *reftable_record_as_ref(struct reftable_record *ref);
-struct reftable_log_record *reftable_record_as_log(struct reftable_record *ref);
-
/* for qsort. */
int reftable_ref_record_compare_name(const void *a, const void *b);
diff --git a/reftable/record_test.c b/reftable/record_test.c
index f4ad7cace4..70ae78feca 100644
--- a/reftable/record_test.c
+++ b/reftable/record_test.c
@@ -16,24 +16,20 @@
static void test_copy(struct reftable_record *rec)
{
- struct reftable_record copy =
- reftable_new_record(reftable_record_type(rec));
+ struct reftable_record copy = { 0 };
+ uint8_t typ;
+
+ typ = reftable_record_type(rec);
+ copy = reftable_new_record(typ);
reftable_record_copy_from(&copy, rec, GIT_SHA1_RAWSZ);
/* do it twice to catch memory leaks */
reftable_record_copy_from(&copy, rec, GIT_SHA1_RAWSZ);
- switch (reftable_record_type(&copy)) {
- case BLOCK_TYPE_REF:
- EXPECT(reftable_ref_record_equal(reftable_record_as_ref(&copy),
- reftable_record_as_ref(rec),
- GIT_SHA1_RAWSZ));
- break;
- case BLOCK_TYPE_LOG:
- EXPECT(reftable_log_record_equal(reftable_record_as_log(&copy),
- reftable_record_as_log(rec),
- GIT_SHA1_RAWSZ));
- break;
- }
- reftable_record_destroy(&copy);
+ EXPECT(reftable_record_equal(rec, &copy, GIT_SHA1_RAWSZ));
+
+ puts("testing print coverage:\n");
+ reftable_record_print(&copy, GIT_SHA1_RAWSZ);
+
+ reftable_record_release(&copy);
}
static void test_varint_roundtrip(void)
@@ -106,61 +102,58 @@ static void test_reftable_ref_record_roundtrip(void)
int i = 0;
for (i = REFTABLE_REF_DELETION; i < REFTABLE_NR_REF_VALUETYPES; i++) {
- struct reftable_ref_record in = { NULL };
- struct reftable_ref_record out = { NULL };
- struct reftable_record rec_out = { NULL };
+ struct reftable_record in = {
+ .type = BLOCK_TYPE_REF,
+ };
+ struct reftable_record out = { .type = BLOCK_TYPE_REF };
struct strbuf key = STRBUF_INIT;
- struct reftable_record rec = { NULL };
uint8_t buffer[1024] = { 0 };
struct string_view dest = {
.buf = buffer,
.len = sizeof(buffer),
};
-
int n, m;
- in.value_type = i;
+ in.u.ref.value_type = i;
switch (i) {
case REFTABLE_REF_DELETION:
break;
case REFTABLE_REF_VAL1:
- in.value.val1 = reftable_malloc(GIT_SHA1_RAWSZ);
- set_hash(in.value.val1, 1);
+ in.u.ref.value.val1 = reftable_malloc(GIT_SHA1_RAWSZ);
+ set_hash(in.u.ref.value.val1, 1);
break;
case REFTABLE_REF_VAL2:
- in.value.val2.value = reftable_malloc(GIT_SHA1_RAWSZ);
- set_hash(in.value.val2.value, 1);
- in.value.val2.target_value =
+ in.u.ref.value.val2.value =
reftable_malloc(GIT_SHA1_RAWSZ);
- set_hash(in.value.val2.target_value, 2);
+ set_hash(in.u.ref.value.val2.value, 1);
+ in.u.ref.value.val2.target_value =
+ reftable_malloc(GIT_SHA1_RAWSZ);
+ set_hash(in.u.ref.value.val2.target_value, 2);
break;
case REFTABLE_REF_SYMREF:
- in.value.symref = xstrdup("target");
+ in.u.ref.value.symref = xstrdup("target");
break;
}
- in.refname = xstrdup("refs/heads/master");
+ in.u.ref.refname = xstrdup("refs/heads/master");
- reftable_record_from_ref(&rec, &in);
- test_copy(&rec);
+ test_copy(&in);
- EXPECT(reftable_record_val_type(&rec) == i);
+ EXPECT(reftable_record_val_type(&in) == i);
- reftable_record_key(&rec, &key);
- n = reftable_record_encode(&rec, dest, GIT_SHA1_RAWSZ);
+ reftable_record_key(&in, &key);
+ n = reftable_record_encode(&in, dest, GIT_SHA1_RAWSZ);
EXPECT(n > 0);
/* decode into a non-zero reftable_record to test for leaks. */
-
- reftable_record_from_ref(&rec_out, &out);
- m = reftable_record_decode(&rec_out, key, i, dest,
- GIT_SHA1_RAWSZ);
+ m = reftable_record_decode(&out, key, i, dest, GIT_SHA1_RAWSZ);
EXPECT(n == m);
- EXPECT(reftable_ref_record_equal(&in, &out, GIT_SHA1_RAWSZ));
- reftable_record_release(&rec_out);
+ EXPECT(reftable_ref_record_equal(&in.u.ref, &out.u.ref,
+ GIT_SHA1_RAWSZ));
+ reftable_record_release(&in);
strbuf_release(&key);
- reftable_ref_record_release(&in);
+ reftable_record_release(&out);
}
}
@@ -187,7 +180,8 @@ static void test_reftable_log_record_equal(void)
static void test_reftable_log_record_roundtrip(void)
{
int i;
- struct reftable_log_record in[2] = {
+
+ struct reftable_log_record in[] = {
{
.refname = xstrdup("refs/heads/master"),
.update_index = 42,
@@ -208,12 +202,26 @@ static void test_reftable_log_record_roundtrip(void)
.refname = xstrdup("refs/heads/master"),
.update_index = 22,
.value_type = REFTABLE_LOG_DELETION,
+ },
+ {
+ .refname = xstrdup("branch"),
+ .update_index = 33,
+ .value_type = REFTABLE_LOG_UPDATE,
+ .value = {
+ .update = {
+ .old_hash = reftable_malloc(GIT_SHA1_RAWSZ),
+ .new_hash = reftable_malloc(GIT_SHA1_RAWSZ),
+ /* rest of fields left empty. */
+ },
+ },
}
};
set_test_hash(in[0].value.update.new_hash, 1);
set_test_hash(in[0].value.update.old_hash, 2);
+ set_test_hash(in[2].value.update.new_hash, 3);
+ set_test_hash(in[2].value.update.old_hash, 4);
for (i = 0; i < ARRAY_SIZE(in); i++) {
- struct reftable_record rec = { NULL };
+ struct reftable_record rec = { .type = BLOCK_TYPE_LOG };
struct strbuf key = STRBUF_INIT;
uint8_t buffer[1024] = { 0 };
struct string_view dest = {
@@ -221,23 +229,25 @@ static void test_reftable_log_record_roundtrip(void)
.len = sizeof(buffer),
};
/* populate out, to check for leaks. */
- struct reftable_log_record out = {
- .refname = xstrdup("old name"),
- .value_type = REFTABLE_LOG_UPDATE,
- .value = {
- .update = {
- .new_hash = reftable_calloc(GIT_SHA1_RAWSZ),
- .old_hash = reftable_calloc(GIT_SHA1_RAWSZ),
- .name = xstrdup("old name"),
- .email = xstrdup("old@email"),
- .message = xstrdup("old message"),
+ struct reftable_record out = {
+ .type = BLOCK_TYPE_LOG,
+ .u.log = {
+ .refname = xstrdup("old name"),
+ .value_type = REFTABLE_LOG_UPDATE,
+ .value = {
+ .update = {
+ .new_hash = reftable_calloc(GIT_SHA1_RAWSZ),
+ .old_hash = reftable_calloc(GIT_SHA1_RAWSZ),
+ .name = xstrdup("old name"),
+ .email = xstrdup("old@email"),
+ .message = xstrdup("old message"),
+ },
},
},
};
- struct reftable_record rec_out = { NULL };
int n, m, valtype;
- reftable_record_from_log(&rec, &in[i]);
+ rec.u.log = in[i];
test_copy(&rec);
@@ -245,16 +255,16 @@ static void test_reftable_log_record_roundtrip(void)
n = reftable_record_encode(&rec, dest, GIT_SHA1_RAWSZ);
EXPECT(n >= 0);
- reftable_record_from_log(&rec_out, &out);
valtype = reftable_record_val_type(&rec);
- m = reftable_record_decode(&rec_out, key, valtype, dest,
+ m = reftable_record_decode(&out, key, valtype, dest,
GIT_SHA1_RAWSZ);
EXPECT(n == m);
- EXPECT(reftable_log_record_equal(&in[i], &out, GIT_SHA1_RAWSZ));
+ EXPECT(reftable_log_record_equal(&in[i], &out.u.log,
+ GIT_SHA1_RAWSZ));
reftable_log_record_release(&in[i]);
strbuf_release(&key);
- reftable_record_release(&rec_out);
+ reftable_record_release(&out);
}
}
@@ -322,47 +332,45 @@ static void test_reftable_obj_record_roundtrip(void)
} };
int i = 0;
for (i = 0; i < ARRAY_SIZE(recs); i++) {
- struct reftable_obj_record in = recs[i];
uint8_t buffer[1024] = { 0 };
struct string_view dest = {
.buf = buffer,
.len = sizeof(buffer),
};
- struct reftable_record rec = { NULL };
+ struct reftable_record in = {
+ .type = BLOCK_TYPE_OBJ,
+ .u = {
+ .obj = recs[i],
+ },
+ };
struct strbuf key = STRBUF_INIT;
- struct reftable_obj_record out = { NULL };
- struct reftable_record rec_out = { NULL };
+ struct reftable_record out = { .type = BLOCK_TYPE_OBJ };
int n, m;
uint8_t extra;
- reftable_record_from_obj(&rec, &in);
- test_copy(&rec);
- reftable_record_key(&rec, &key);
- n = reftable_record_encode(&rec, dest, GIT_SHA1_RAWSZ);
+ test_copy(&in);
+ reftable_record_key(&in, &key);
+ n = reftable_record_encode(&in, dest, GIT_SHA1_RAWSZ);
EXPECT(n > 0);
- extra = reftable_record_val_type(&rec);
- reftable_record_from_obj(&rec_out, &out);
- m = reftable_record_decode(&rec_out, key, extra, dest,
+ extra = reftable_record_val_type(&in);
+ m = reftable_record_decode(&out, key, extra, dest,
GIT_SHA1_RAWSZ);
EXPECT(n == m);
- EXPECT(in.hash_prefix_len == out.hash_prefix_len);
- EXPECT(in.offset_len == out.offset_len);
-
- EXPECT(!memcmp(in.hash_prefix, out.hash_prefix,
- in.hash_prefix_len));
- EXPECT(0 == memcmp(in.offsets, out.offsets,
- sizeof(uint64_t) * in.offset_len));
+ EXPECT(reftable_record_equal(&in, &out, GIT_SHA1_RAWSZ));
strbuf_release(&key);
- reftable_record_release(&rec_out);
+ reftable_record_release(&out);
}
}
static void test_reftable_index_record_roundtrip(void)
{
- struct reftable_index_record in = {
- .offset = 42,
- .last_key = STRBUF_INIT,
+ struct reftable_record in = {
+ .type = BLOCK_TYPE_INDEX,
+ .u.idx = {
+ .offset = 42,
+ .last_key = STRBUF_INIT,
+ },
};
uint8_t buffer[1024] = { 0 };
struct string_view dest = {
@@ -370,31 +378,30 @@ static void test_reftable_index_record_roundtrip(void)
.len = sizeof(buffer),
};
struct strbuf key = STRBUF_INIT;
- struct reftable_record rec = { NULL };
- struct reftable_index_record out = { .last_key = STRBUF_INIT };
- struct reftable_record out_rec = { NULL };
+ struct reftable_record out = {
+ .type = BLOCK_TYPE_INDEX,
+ .u.idx = { .last_key = STRBUF_INIT },
+ };
int n, m;
uint8_t extra;
- strbuf_addstr(&in.last_key, "refs/heads/master");
- reftable_record_from_index(&rec, &in);
- reftable_record_key(&rec, &key);
- test_copy(&rec);
+ strbuf_addstr(&in.u.idx.last_key, "refs/heads/master");
+ reftable_record_key(&in, &key);
+ test_copy(&in);
- EXPECT(0 == strbuf_cmp(&key, &in.last_key));
- n = reftable_record_encode(&rec, dest, GIT_SHA1_RAWSZ);
+ EXPECT(0 == strbuf_cmp(&key, &in.u.idx.last_key));
+ n = reftable_record_encode(&in, dest, GIT_SHA1_RAWSZ);
EXPECT(n > 0);
- extra = reftable_record_val_type(&rec);
- reftable_record_from_index(&out_rec, &out);
- m = reftable_record_decode(&out_rec, key, extra, dest, GIT_SHA1_RAWSZ);
+ extra = reftable_record_val_type(&in);
+ m = reftable_record_decode(&out, key, extra, dest, GIT_SHA1_RAWSZ);
EXPECT(m == n);
- EXPECT(in.offset == out.offset);
+ EXPECT(reftable_record_equal(&in, &out, GIT_SHA1_RAWSZ));
- reftable_record_release(&out_rec);
+ reftable_record_release(&out);
strbuf_release(&key);
- strbuf_release(&in.last_key);
+ strbuf_release(&in.u.idx.last_key);
}
int record_test_main(int argc, const char *argv[])
diff --git a/reftable/reftable-record.h b/reftable/reftable-record.h
index 5370d2288c..67104f8fbf 100644
--- a/reftable/reftable-record.h
+++ b/reftable/reftable-record.h
@@ -49,25 +49,25 @@ struct reftable_ref_record {
/* Returns the first hash, or NULL if `rec` is not of type
* REFTABLE_REF_VAL1 or REFTABLE_REF_VAL2. */
-uint8_t *reftable_ref_record_val1(struct reftable_ref_record *rec);
+uint8_t *reftable_ref_record_val1(const struct reftable_ref_record *rec);
/* Returns the second hash, or NULL if `rec` is not of type
* REFTABLE_REF_VAL2. */
-uint8_t *reftable_ref_record_val2(struct reftable_ref_record *rec);
+uint8_t *reftable_ref_record_val2(const struct reftable_ref_record *rec);
/* returns whether 'ref' represents a deletion */
int reftable_ref_record_is_deletion(const struct reftable_ref_record *ref);
/* prints a reftable_ref_record onto stdout. Useful for debugging. */
-void reftable_ref_record_print(struct reftable_ref_record *ref,
+void reftable_ref_record_print(const struct reftable_ref_record *ref,
uint32_t hash_id);
/* frees and nulls all pointer values inside `ref`. */
void reftable_ref_record_release(struct reftable_ref_record *ref);
/* returns whether two reftable_ref_records are the same. Useful for testing. */
-int reftable_ref_record_equal(struct reftable_ref_record *a,
- struct reftable_ref_record *b, int hash_size);
+int reftable_ref_record_equal(const struct reftable_ref_record *a,
+ const struct reftable_ref_record *b, int hash_size);
/* reftable_log_record holds a reflog entry */
struct reftable_log_record {
@@ -104,8 +104,8 @@ int reftable_log_record_is_deletion(const struct reftable_log_record *log);
void reftable_log_record_release(struct reftable_log_record *log);
/* returns whether two records are equal. Useful for testing. */
-int reftable_log_record_equal(struct reftable_log_record *a,
- struct reftable_log_record *b, int hash_size);
+int reftable_log_record_equal(const struct reftable_log_record *a,
+ const struct reftable_log_record *b, int hash_size);
/* dumps a reftable_log_record on stdout, for debugging/testing. */
void reftable_log_record_print(struct reftable_log_record *log,
diff --git a/reftable/reftable-writer.h b/reftable/reftable-writer.h
index a560dc1725..db8de197f6 100644
--- a/reftable/reftable-writer.h
+++ b/reftable/reftable-writer.h
@@ -143,7 +143,7 @@ int reftable_writer_close(struct reftable_writer *w);
This struct becomes invalid when the writer is freed.
*/
-const struct reftable_stats *writer_stats(struct reftable_writer *w);
+const struct reftable_stats *reftable_writer_stats(struct reftable_writer *w);
/* reftable_writer_free deallocates memory for the writer */
void reftable_writer_free(struct reftable_writer *w);
diff --git a/reftable/reftable.c b/reftable/reftable.c
deleted file mode 100644
index 0e4607a7cd..0000000000
--- a/reftable/reftable.c
+++ /dev/null
@@ -1,115 +0,0 @@
-/*
-Copyright 2020 Google LLC
-
-Use of this source code is governed by a BSD-style
-license that can be found in the LICENSE file or at
-https://developers.google.com/open-source/licenses/bsd
-*/
-
-#include "basics.h"
-#include "record.h"
-#include "generic.h"
-#include "reftable-iterator.h"
-#include "reftable-generic.h"
-
-int reftable_table_seek_ref(struct reftable_table *tab,
- struct reftable_iterator *it, const char *name)
-{
- struct reftable_ref_record ref = {
- .refname = (char *)name,
- };
- struct reftable_record rec = { NULL };
- reftable_record_from_ref(&rec, &ref);
- return tab->ops->seek_record(tab->table_arg, it, &rec);
-}
-
-int reftable_table_read_ref(struct reftable_table *tab, const char *name,
- struct reftable_ref_record *ref)
-{
- struct reftable_iterator it = { NULL };
- int err = reftable_table_seek_ref(tab, &it, name);
- if (err)
- goto done;
-
- err = reftable_iterator_next_ref(&it, ref);
- if (err)
- goto done;
-
- if (strcmp(ref->refname, name) ||
- reftable_ref_record_is_deletion(ref)) {
- reftable_ref_record_release(ref);
- err = 1;
- goto done;
- }
-
-done:
- reftable_iterator_destroy(&it);
- return err;
-}
-
-uint64_t reftable_table_max_update_index(struct reftable_table *tab)
-{
- return tab->ops->max_update_index(tab->table_arg);
-}
-
-uint64_t reftable_table_min_update_index(struct reftable_table *tab)
-{
- return tab->ops->min_update_index(tab->table_arg);
-}
-
-uint32_t reftable_table_hash_id(struct reftable_table *tab)
-{
- return tab->ops->hash_id(tab->table_arg);
-}
-
-void reftable_iterator_destroy(struct reftable_iterator *it)
-{
- if (!it->ops) {
- return;
- }
- it->ops->close(it->iter_arg);
- it->ops = NULL;
- FREE_AND_NULL(it->iter_arg);
-}
-
-int reftable_iterator_next_ref(struct reftable_iterator *it,
- struct reftable_ref_record *ref)
-{
- struct reftable_record rec = { NULL };
- reftable_record_from_ref(&rec, ref);
- return iterator_next(it, &rec);
-}
-
-int reftable_iterator_next_log(struct reftable_iterator *it,
- struct reftable_log_record *log)
-{
- struct reftable_record rec = { NULL };
- reftable_record_from_log(&rec, log);
- return iterator_next(it, &rec);
-}
-
-int iterator_next(struct reftable_iterator *it, struct reftable_record *rec)
-{
- return it->ops->next(it->iter_arg, rec);
-}
-
-static int empty_iterator_next(void *arg, struct reftable_record *rec)
-{
- return 1;
-}
-
-static void empty_iterator_close(void *arg)
-{
-}
-
-static struct reftable_iterator_vtable empty_vtable = {
- .next = &empty_iterator_next,
- .close = &empty_iterator_close,
-};
-
-void iterator_set_empty(struct reftable_iterator *it)
-{
- assert(!it->ops);
- it->iter_arg = NULL;
- it->ops = &empty_vtable;
-}
diff --git a/reftable/stack.c b/reftable/stack.c
index 56bf5f2d84..ddbdf1b9c8 100644
--- a/reftable/stack.c
+++ b/reftable/stack.c
@@ -889,7 +889,7 @@ static int stack_compact_range(struct reftable_stack *st, int first, int last,
struct strbuf new_table_path = STRBUF_INIT;
int err = 0;
int have_lock = 0;
- int lock_file_fd = 0;
+ int lock_file_fd = -1;
int compact_count = last - first + 1;
char **listp = NULL;
char **delete_on_success =
@@ -923,7 +923,7 @@ static int stack_compact_range(struct reftable_stack *st, int first, int last,
}
/* Don't want to write to the lock for now. */
close(lock_file_fd);
- lock_file_fd = 0;
+ lock_file_fd = -1;
have_lock = 1;
err = stack_uptodate(st);
@@ -1031,7 +1031,7 @@ static int stack_compact_range(struct reftable_stack *st, int first, int last,
goto done;
}
err = close(lock_file_fd);
- lock_file_fd = 0;
+ lock_file_fd = -1;
if (err < 0) {
err = REFTABLE_IO_ERROR;
unlink(new_table_path.buf);
@@ -1068,9 +1068,9 @@ done:
listp++;
}
free_names(subtable_locks);
- if (lock_file_fd > 0) {
+ if (lock_file_fd >= 0) {
close(lock_file_fd);
- lock_file_fd = 0;
+ lock_file_fd = -1;
}
if (have_lock) {
unlink(lock_file_name.buf);
diff --git a/reftable/stack_test.c b/reftable/stack_test.c
index e2c7014303..d0b717510f 100644
--- a/reftable/stack_test.c
+++ b/reftable/stack_test.c
@@ -90,7 +90,7 @@ static void test_read_file(void)
EXPECT(0 == strcmp(want[i], names[i]));
}
free_names(names);
- remove(fn);
+ (void) remove(fn);
}
static void test_parse_names(void)
@@ -839,6 +839,7 @@ static void test_reftable_stack_auto_compaction(void)
EXPECT_ERR(err);
err = reftable_stack_auto_compact(st);
+ EXPECT_ERR(err);
EXPECT(i < 3 || st->merged->stack_len < 2 * fastlog2(i));
}
diff --git a/reftable/system.h b/reftable/system.h
index 4907306c0c..18f9207dfe 100644
--- a/reftable/system.h
+++ b/reftable/system.h
@@ -16,17 +16,6 @@ https://developers.google.com/open-source/licenses/bsd
#include "hash.h" /* hash ID, sizes.*/
#include "dir.h" /* remove_dir_recursively, for tests.*/
-#include <zlib.h>
-
-#ifdef NO_UNCOMPRESS2
-/*
- * This is uncompress2, which is only available in zlib >= 1.2.9
- * (released as of early 2017)
- */
-int uncompress2(Bytef *dest, uLongf *destLen, const Bytef *source,
- uLong *sourceLen);
-#endif
-
int hash_size(uint32_t id);
#endif
diff --git a/reftable/writer.c b/reftable/writer.c
index ea483955e8..2e322a5683 100644
--- a/reftable/writer.c
+++ b/reftable/writer.c
@@ -150,6 +150,8 @@ void reftable_writer_set_limits(struct reftable_writer *w, uint64_t min,
void reftable_writer_free(struct reftable_writer *w)
{
+ if (!w)
+ return;
reftable_free(w->block);
reftable_free(w);
}
@@ -238,14 +240,13 @@ static int writer_add_record(struct reftable_writer *w,
writer_reinit_block_writer(w, reftable_record_type(rec));
err = block_writer_add(w->block_writer, rec);
- if (err < 0) {
+ if (err == -1) {
/* we are writing into memory, so an error can only mean it
* doesn't fit. */
err = REFTABLE_ENTRY_TOO_BIG_ERROR;
goto done;
}
- err = 0;
done:
strbuf_release(&key);
return err;
@@ -254,8 +255,12 @@ done:
int reftable_writer_add_ref(struct reftable_writer *w,
struct reftable_ref_record *ref)
{
- struct reftable_record rec = { NULL };
- struct reftable_ref_record copy = *ref;
+ struct reftable_record rec = {
+ .type = BLOCK_TYPE_REF,
+ .u = {
+ .ref = *ref
+ },
+ };
int err = 0;
if (!ref->refname)
@@ -264,8 +269,7 @@ int reftable_writer_add_ref(struct reftable_writer *w,
ref->update_index > w->max_update_index)
return REFTABLE_API_ERROR;
- reftable_record_from_ref(&rec, &copy);
- copy.update_index -= w->min_update_index;
+ rec.u.ref.update_index -= w->min_update_index;
err = writer_add_record(w, &rec);
if (err < 0)
@@ -304,7 +308,12 @@ int reftable_writer_add_refs(struct reftable_writer *w,
static int reftable_writer_add_log_verbatim(struct reftable_writer *w,
struct reftable_log_record *log)
{
- struct reftable_record rec = { NULL };
+ struct reftable_record rec = {
+ .type = BLOCK_TYPE_LOG,
+ .u = {
+ .log = *log,
+ },
+ };
if (w->block_writer &&
block_writer_type(w->block_writer) == BLOCK_TYPE_REF) {
int err = writer_finish_public_section(w);
@@ -314,8 +323,6 @@ static int reftable_writer_add_log_verbatim(struct reftable_writer *w,
w->next -= w->pending_padding;
w->pending_padding = 0;
-
- reftable_record_from_log(&rec, log);
return writer_add_record(w, &rec);
}
@@ -396,8 +403,12 @@ static int writer_finish_section(struct reftable_writer *w)
w->index_len = 0;
w->index_cap = 0;
for (i = 0; i < idx_len; i++) {
- struct reftable_record rec = { NULL };
- reftable_record_from_index(&rec, idx + i);
+ struct reftable_record rec = {
+ .type = BLOCK_TYPE_INDEX,
+ .u = {
+ .idx = idx[i],
+ },
+ };
if (block_writer_add(w->block_writer, &rec) == 0) {
continue;
}
@@ -465,17 +476,17 @@ static void write_object_record(void *void_arg, void *key)
{
struct write_record_arg *arg = void_arg;
struct obj_index_tree_node *entry = key;
- struct reftable_obj_record obj_rec = {
- .hash_prefix = (uint8_t *)entry->hash.buf,
- .hash_prefix_len = arg->w->stats.object_id_len,
- .offsets = entry->offsets,
- .offset_len = entry->offset_len,
- };
- struct reftable_record rec = { NULL };
+ struct reftable_record
+ rec = { .type = BLOCK_TYPE_OBJ,
+ .u.obj = {
+ .hash_prefix = (uint8_t *)entry->hash.buf,
+ .hash_prefix_len = arg->w->stats.object_id_len,
+ .offsets = entry->offsets,
+ .offset_len = entry->offset_len,
+ } };
if (arg->err < 0)
goto done;
- reftable_record_from_obj(&rec, &obj_rec);
arg->err = block_writer_add(arg->w->block_writer, &rec);
if (arg->err == 0)
goto done;
@@ -488,7 +499,8 @@ static void write_object_record(void *void_arg, void *key)
arg->err = block_writer_add(arg->w->block_writer, &rec);
if (arg->err == 0)
goto done;
- obj_rec.offset_len = 0;
+
+ rec.u.obj.offset_len = 0;
arg->err = block_writer_add(arg->w->block_writer, &rec);
/* Should be able to write into a fresh block. */
@@ -509,7 +521,9 @@ static void object_record_free(void *void_arg, void *key)
static int writer_dump_object_index(struct reftable_writer *w)
{
struct write_record_arg closure = { .w = w };
- struct common_prefix_arg common = { NULL };
+ struct common_prefix_arg common = {
+ .max = 1, /* obj_id_len should be >= 2. */
+ };
if (w->obj_index_tree) {
infix_walk(w->obj_index_tree, &update_common, &common);
}
@@ -687,7 +701,7 @@ static int writer_flush_block(struct reftable_writer *w)
return writer_flush_nonempty_block(w);
}
-const struct reftable_stats *writer_stats(struct reftable_writer *w)
+const struct reftable_stats *reftable_writer_stats(struct reftable_writer *w)
{
return &w->stats;
}
diff --git a/remote-curl.c b/remote-curl.c
index 0dabef2dd7..67f178b112 100644
--- a/remote-curl.c
+++ b/remote-curl.c
@@ -43,6 +43,7 @@ struct options {
/* see documentation of corresponding flag in fetch-pack.h */
from_promisor : 1,
+ refetch : 1,
atomic : 1,
object_format : 1,
force_if_includes : 1;
@@ -198,6 +199,9 @@ static int set_option(const char *name, const char *value)
} else if (!strcmp(name, "from-promisor")) {
options.from_promisor = 1;
return 0;
+ } else if (!strcmp(name, "refetch")) {
+ options.refetch = 1;
+ return 0;
} else if (!strcmp(name, "filter")) {
options.filter = xstrdup(value);
return 0;
@@ -1182,6 +1186,8 @@ static int fetch_git(struct discovery *heads,
strvec_push(&args, "--deepen-relative");
if (options.from_promisor)
strvec_push(&args, "--from-promisor");
+ if (options.refetch)
+ strvec_push(&args, "--refetch");
if (options.filter)
strvec_pushf(&args, "--filter=%s", options.filter);
strvec_push(&args, url.buf);
@@ -1472,11 +1478,12 @@ int cmd_main(int argc, const char **argv)
{
struct strbuf buf = STRBUF_INIT;
int nongit;
+ int ret = 1;
setup_git_directory_gently(&nongit);
if (argc < 2) {
error(_("remote-curl: usage: git remote-curl <remote> [<url>]"));
- return 1;
+ goto cleanup;
}
options.verbosity = 1;
@@ -1508,7 +1515,7 @@ int cmd_main(int argc, const char **argv)
if (strbuf_getline_lf(&buf, stdin) == EOF) {
if (ferror(stdin))
error(_("remote-curl: error reading command stream from git"));
- return 1;
+ goto cleanup;
}
if (buf.len == 0)
break;
@@ -1556,12 +1563,15 @@ int cmd_main(int argc, const char **argv)
break;
} else {
error(_("remote-curl: unknown command '%s' from git"), buf.buf);
- return 1;
+ goto cleanup;
}
strbuf_reset(&buf);
} while (1);
http_cleanup();
+ ret = 0;
+cleanup:
+ strbuf_release(&buf);
- return 0;
+ return ret;
}
diff --git a/remote.c b/remote.c
index a6d8ec6c1a..42a4e7106e 100644
--- a/remote.c
+++ b/remote.c
@@ -508,9 +508,8 @@ static void read_config(struct repository *repo)
repo->remote_state->current_branch = NULL;
if (startup_info->have_repository) {
- int ignore_errno;
const char *head_ref = refs_resolve_ref_unsafe(
- get_main_ref_store(repo), "HEAD", 0, NULL, &flag, &ignore_errno);
+ get_main_ref_store(repo), "HEAD", 0, NULL, &flag);
if (head_ref && (flag & REF_ISSYMREF) &&
skip_prefix(head_ref, "refs/heads/", &head_ref)) {
repo->remote_state->current_branch = make_branch(
@@ -1946,13 +1945,9 @@ const char *branch_get_push(struct branch *branch, struct strbuf *err)
return branch->push_tracking_ref;
}
-static int ignore_symref_update(const char *refname)
+static int ignore_symref_update(const char *refname, struct strbuf *scratch)
{
- int flag;
-
- if (!resolve_ref_unsafe(refname, 0, NULL, &flag))
- return 0; /* non-existing refs are OK */
- return (flag & REF_ISSYMREF);
+ return !refs_read_symbolic_ref(get_main_ref_store(the_repository), refname, scratch);
}
/*
@@ -1965,6 +1960,7 @@ static int ignore_symref_update(const char *refname)
static struct ref *get_expanded_map(const struct ref *remote_refs,
const struct refspec_item *refspec)
{
+ struct strbuf scratch = STRBUF_INIT;
const struct ref *ref;
struct ref *ret = NULL;
struct ref **tail = &ret;
@@ -1972,11 +1968,13 @@ static struct ref *get_expanded_map(const struct ref *remote_refs,
for (ref = remote_refs; ref; ref = ref->next) {
char *expn_name = NULL;
+ strbuf_reset(&scratch);
+
if (strchr(ref->name, '^'))
continue; /* a dereference item */
if (match_name_with_pattern(refspec->src, ref->name,
refspec->dst, &expn_name) &&
- !ignore_symref_update(expn_name)) {
+ !ignore_symref_update(expn_name, &scratch)) {
struct ref *cpy = copy_ref(ref);
cpy->peer_ref = alloc_ref(expn_name);
@@ -1988,6 +1986,7 @@ static struct ref *get_expanded_map(const struct ref *remote_refs,
free(expn_name);
}
+ strbuf_release(&scratch);
return ret;
}
diff --git a/repo-settings.c b/repo-settings.c
index 00ca5571a1..2dfcb2b654 100644
--- a/repo-settings.c
+++ b/repo-settings.c
@@ -2,6 +2,7 @@
#include "config.h"
#include "repository.h"
#include "midx.h"
+#include "compat/fsmonitor/fsm-listen.h"
static void repo_cfg_bool(struct repository *r, const char *key, int *dest,
int def)
@@ -26,7 +27,7 @@ void prepare_repo_settings(struct repository *r)
/* Defaults */
r->settings.index_version = -1;
r->settings.core_untracked_cache = UNTRACKED_CACHE_KEEP;
- r->settings.fetch_negotiation_algorithm = FETCH_NEGOTIATION_DEFAULT;
+ r->settings.fetch_negotiation_algorithm = FETCH_NEGOTIATION_CONSECUTIVE;
/* Booleans config or default, cascades to other settings */
repo_cfg_bool(r, "feature.manyfiles", &manyfiles, 0);
@@ -81,10 +82,17 @@ void prepare_repo_settings(struct repository *r)
}
if (!repo_config_get_string(r, "fetch.negotiationalgorithm", &strval)) {
+ int fetch_default = r->settings.fetch_negotiation_algorithm;
if (!strcasecmp(strval, "skipping"))
r->settings.fetch_negotiation_algorithm = FETCH_NEGOTIATION_SKIPPING;
else if (!strcasecmp(strval, "noop"))
r->settings.fetch_negotiation_algorithm = FETCH_NEGOTIATION_NOOP;
+ else if (!strcasecmp(strval, "consecutive"))
+ r->settings.fetch_negotiation_algorithm = FETCH_NEGOTIATION_CONSECUTIVE;
+ else if (!strcasecmp(strval, "default"))
+ r->settings.fetch_negotiation_algorithm = fetch_default;
+ else
+ die("unknown fetch negotiation algorithm '%s'", strval);
}
/*
diff --git a/repository.c b/repository.c
index 34610c5a33..5d166b692c 100644
--- a/repository.c
+++ b/repository.c
@@ -240,6 +240,20 @@ out:
return ret;
}
+static void repo_clear_path_cache(struct repo_path_cache *cache)
+{
+ FREE_AND_NULL(cache->squash_msg);
+ FREE_AND_NULL(cache->squash_msg);
+ FREE_AND_NULL(cache->merge_msg);
+ FREE_AND_NULL(cache->merge_rr);
+ FREE_AND_NULL(cache->merge_mode);
+ FREE_AND_NULL(cache->merge_head);
+ FREE_AND_NULL(cache->merge_autostash);
+ FREE_AND_NULL(cache->auto_merge);
+ FREE_AND_NULL(cache->fetch_head);
+ FREE_AND_NULL(cache->shallow);
+}
+
void repo_clear(struct repository *repo)
{
FREE_AND_NULL(repo->gitdir);
@@ -280,6 +294,8 @@ void repo_clear(struct repository *repo)
remote_state_clear(repo->remote_state);
FREE_AND_NULL(repo->remote_state);
}
+
+ repo_clear_path_cache(&repo->cached_paths);
}
int repo_read_index(struct repository *repo)
@@ -301,6 +317,13 @@ int repo_read_index(struct repository *repo)
if (repo->settings.command_requires_full_index)
ensure_full_index(repo->index);
+ /*
+ * If sparse checkouts are in use, check whether paths with the
+ * SKIP_WORKTREE attribute are missing from the worktree; if not,
+ * clear that attribute for that path.
+ */
+ clear_skip_worktree_from_present_files(repo->index);
+
return res;
}
diff --git a/repository.h b/repository.h
index 2b5cf97f31..6cc661e5a4 100644
--- a/repository.h
+++ b/repository.h
@@ -4,6 +4,7 @@
#include "path.h"
struct config_set;
+struct fsmonitor_settings;
struct git_hash_algo;
struct index_state;
struct lock_file;
@@ -20,7 +21,7 @@ enum untracked_cache_setting {
};
enum fetch_negotiation_setting {
- FETCH_NEGOTIATION_DEFAULT,
+ FETCH_NEGOTIATION_CONSECUTIVE,
FETCH_NEGOTIATION_SKIPPING,
FETCH_NEGOTIATION_NOOP,
};
@@ -35,6 +36,8 @@ struct repo_settings {
int command_requires_full_index;
int sparse_index;
+ struct fsmonitor_settings *fsmonitor; /* lazily loaded */
+
int index_version;
enum untracked_cache_setting core_untracked_cache;
@@ -44,6 +47,18 @@ struct repo_settings {
int core_multi_pack_index;
};
+struct repo_path_cache {
+ char *squash_msg;
+ char *merge_msg;
+ char *merge_rr;
+ char *merge_mode;
+ char *merge_head;
+ char *merge_autostash;
+ char *auto_merge;
+ char *fetch_head;
+ char *shallow;
+};
+
struct repository {
/* Environment */
/*
@@ -82,7 +97,7 @@ struct repository {
/*
* Contains path to often used file names.
*/
- struct path_cache cached_paths;
+ struct repo_path_cache cached_paths;
/*
* Path to the repository's graft file.
diff --git a/rerere.c b/rerere.c
index bcefd0c4bf..876ab435da 100644
--- a/rerere.c
+++ b/rerere.c
@@ -609,19 +609,20 @@ static int try_merge(struct index_state *istate,
const struct rerere_id *id, const char *path,
mmfile_t *cur, mmbuffer_t *result)
{
- int ret;
+ enum ll_merge_result ret;
mmfile_t base = {NULL, 0}, other = {NULL, 0};
if (read_mmfile(&base, rerere_path(id, "preimage")) ||
- read_mmfile(&other, rerere_path(id, "postimage")))
- ret = 1;
- else
+ read_mmfile(&other, rerere_path(id, "postimage"))) {
+ ret = LL_MERGE_CONFLICT;
+ } else {
/*
* A three-way merge. Note that this honors user-customizable
* low-level merge driver settings.
*/
ret = ll_merge(result, path, &base, NULL, cur, "", &other, "",
istate, NULL);
+ }
free(base.ptr);
free(other.ptr);
diff --git a/reset.c b/reset.c
index f214df3d96..e3383a9334 100644
--- a/reset.c
+++ b/reset.c
@@ -7,38 +7,108 @@
#include "tree-walk.h"
#include "tree.h"
#include "unpack-trees.h"
+#include "hook.h"
-int reset_head(struct repository *r, struct object_id *oid, const char *action,
- const char *switch_to_branch, unsigned flags,
- const char *reflog_orig_head, const char *reflog_head,
- const char *default_reflog_action)
+static int update_refs(const struct reset_head_opts *opts,
+ const struct object_id *oid,
+ const struct object_id *head)
{
- unsigned detach_head = flags & RESET_HEAD_DETACH;
- unsigned reset_hard = flags & RESET_HEAD_HARD;
- unsigned run_hook = flags & RESET_HEAD_RUN_POST_CHECKOUT_HOOK;
- unsigned refs_only = flags & RESET_HEAD_REFS_ONLY;
- unsigned update_orig_head = flags & RESET_ORIG_HEAD;
- struct object_id head_oid;
+ unsigned detach_head = opts->flags & RESET_HEAD_DETACH;
+ unsigned run_hook = opts->flags & RESET_HEAD_RUN_POST_CHECKOUT_HOOK;
+ unsigned update_orig_head = opts->flags & RESET_ORIG_HEAD;
+ const struct object_id *orig_head = opts->orig_head;
+ const char *switch_to_branch = opts->branch;
+ const char *reflog_branch = opts->branch_msg;
+ const char *reflog_head = opts->head_msg;
+ const char *reflog_orig_head = opts->orig_head_msg;
+ const char *default_reflog_action = opts->default_reflog_action;
+ struct object_id *old_orig = NULL, oid_old_orig;
+ struct strbuf msg = STRBUF_INIT;
+ const char *reflog_action;
+ size_t prefix_len;
+ int ret;
+
+ if ((update_orig_head && !reflog_orig_head) || !reflog_head) {
+ if (!default_reflog_action)
+ BUG("default_reflog_action must be given when reflog messages are omitted");
+ reflog_action = getenv(GIT_REFLOG_ACTION_ENVIRONMENT);
+ strbuf_addf(&msg, "%s: ", reflog_action ? reflog_action :
+ default_reflog_action);
+ }
+ prefix_len = msg.len;
+
+ if (update_orig_head) {
+ if (!get_oid("ORIG_HEAD", &oid_old_orig))
+ old_orig = &oid_old_orig;
+ if (head) {
+ if (!reflog_orig_head) {
+ strbuf_addstr(&msg, "updating ORIG_HEAD");
+ reflog_orig_head = msg.buf;
+ }
+ update_ref(reflog_orig_head, "ORIG_HEAD",
+ orig_head ? orig_head : head,
+ old_orig, 0, UPDATE_REFS_MSG_ON_ERR);
+ } else if (old_orig)
+ delete_ref(NULL, "ORIG_HEAD", old_orig, 0);
+ }
+
+ if (!reflog_head) {
+ strbuf_setlen(&msg, prefix_len);
+ strbuf_addstr(&msg, "updating HEAD");
+ reflog_head = msg.buf;
+ }
+ if (!switch_to_branch)
+ ret = update_ref(reflog_head, "HEAD", oid, head,
+ detach_head ? REF_NO_DEREF : 0,
+ UPDATE_REFS_MSG_ON_ERR);
+ else {
+ ret = update_ref(reflog_branch ? reflog_branch : reflog_head,
+ switch_to_branch, oid, NULL, 0,
+ UPDATE_REFS_MSG_ON_ERR);
+ if (!ret)
+ ret = create_symref("HEAD", switch_to_branch,
+ reflog_head);
+ }
+ if (!ret && run_hook)
+ run_hooks_l("post-checkout",
+ oid_to_hex(head ? head : null_oid()),
+ oid_to_hex(oid), "1", NULL);
+ strbuf_release(&msg);
+ return ret;
+}
+
+int reset_head(struct repository *r, const struct reset_head_opts *opts)
+{
+ const struct object_id *oid = opts->oid;
+ const char *switch_to_branch = opts->branch;
+ unsigned reset_hard = opts->flags & RESET_HEAD_HARD;
+ unsigned refs_only = opts->flags & RESET_HEAD_REFS_ONLY;
+ unsigned update_orig_head = opts->flags & RESET_ORIG_HEAD;
+ struct object_id *head = NULL, head_oid;
struct tree_desc desc[2] = { { NULL }, { NULL } };
struct lock_file lock = LOCK_INIT;
struct unpack_trees_options unpack_tree_opts = { 0 };
struct tree *tree;
- const char *reflog_action;
- struct strbuf msg = STRBUF_INIT;
- size_t prefix_len;
- struct object_id *orig = NULL, oid_orig,
- *old_orig = NULL, oid_old_orig;
+ const char *action;
int ret = 0, nr = 0;
if (switch_to_branch && !starts_with(switch_to_branch, "refs/"))
BUG("Not a fully qualified branch: '%s'", switch_to_branch);
+ if (opts->orig_head_msg && !update_orig_head)
+ BUG("ORIG_HEAD reflog message given without updating ORIG_HEAD");
+
+ if (opts->branch_msg && !opts->branch)
+ BUG("branch reflog message given without a branch");
+
if (!refs_only && repo_hold_locked_index(r, &lock, LOCK_REPORT_ON_ERROR) < 0) {
ret = -1;
goto leave_reset_head;
}
- if ((!oid || !reset_hard) && get_oid("HEAD", &head_oid)) {
+ if (!get_oid("HEAD", &head_oid)) {
+ head = &head_oid;
+ } else if (!oid || !reset_hard) {
ret = error(_("could not determine HEAD revision"));
goto leave_reset_head;
}
@@ -47,8 +117,9 @@ int reset_head(struct repository *r, struct object_id *oid, const char *action,
oid = &head_oid;
if (refs_only)
- goto reset_head_refs;
+ return update_refs(opts, oid, head);
+ action = reset_hard ? "reset" : "checkout";
setup_unpack_trees_porcelain(&unpack_tree_opts, action);
unpack_tree_opts.head_idx = 1;
unpack_tree_opts.src_index = r->index;
@@ -58,7 +129,7 @@ int reset_head(struct repository *r, struct object_id *oid, const char *action,
unpack_tree_opts.merge = 1;
unpack_tree_opts.preserve_ignored = 0; /* FIXME: !overwrite_ignore */
init_checkout_metadata(&unpack_tree_opts.meta, switch_to_branch, oid, NULL);
- if (!detach_head)
+ if (reset_hard)
unpack_tree_opts.reset = UNPACK_RESET_PROTECT_UNTRACKED;
if (repo_read_index_unmerged(r) < 0) {
@@ -90,49 +161,10 @@ int reset_head(struct repository *r, struct object_id *oid, const char *action,
goto leave_reset_head;
}
-reset_head_refs:
- reflog_action = getenv(GIT_REFLOG_ACTION_ENVIRONMENT);
- strbuf_addf(&msg, "%s: ", reflog_action ? reflog_action : default_reflog_action);
- prefix_len = msg.len;
-
- if (update_orig_head) {
- if (!get_oid("ORIG_HEAD", &oid_old_orig))
- old_orig = &oid_old_orig;
- if (!get_oid("HEAD", &oid_orig)) {
- orig = &oid_orig;
- if (!reflog_orig_head) {
- strbuf_addstr(&msg, "updating ORIG_HEAD");
- reflog_orig_head = msg.buf;
- }
- update_ref(reflog_orig_head, "ORIG_HEAD", orig,
- old_orig, 0, UPDATE_REFS_MSG_ON_ERR);
- } else if (old_orig)
- delete_ref(NULL, "ORIG_HEAD", old_orig, 0);
- }
-
- if (!reflog_head) {
- strbuf_setlen(&msg, prefix_len);
- strbuf_addstr(&msg, "updating HEAD");
- reflog_head = msg.buf;
- }
- if (!switch_to_branch)
- ret = update_ref(reflog_head, "HEAD", oid, orig,
- detach_head ? REF_NO_DEREF : 0,
- UPDATE_REFS_MSG_ON_ERR);
- else {
- ret = update_ref(reflog_head, switch_to_branch, oid,
- NULL, 0, UPDATE_REFS_MSG_ON_ERR);
- if (!ret)
- ret = create_symref("HEAD", switch_to_branch,
- reflog_head);
- }
- if (run_hook)
- run_hook_le(NULL, "post-checkout",
- oid_to_hex(orig ? orig : null_oid()),
- oid_to_hex(oid), "1", NULL);
+ if (oid != &head_oid || update_orig_head || switch_to_branch)
+ ret = update_refs(opts, oid, head);
leave_reset_head:
- strbuf_release(&msg);
rollback_lock_file(&lock);
clear_unpack_trees_porcelain(&unpack_tree_opts);
while (nr)
diff --git a/reset.h b/reset.h
index 12f83c78e2..a28f81829d 100644
--- a/reset.h
+++ b/reset.h
@@ -6,15 +6,55 @@
#define GIT_REFLOG_ACTION_ENVIRONMENT "GIT_REFLOG_ACTION"
+/* Request a detached checkout */
#define RESET_HEAD_DETACH (1<<0)
+/* Request a reset rather than a checkout */
#define RESET_HEAD_HARD (1<<1)
+/* Run the post-checkout hook */
#define RESET_HEAD_RUN_POST_CHECKOUT_HOOK (1<<2)
+/* Only update refs, do not touch the worktree */
#define RESET_HEAD_REFS_ONLY (1<<3)
+/* Update ORIG_HEAD as well as HEAD */
#define RESET_ORIG_HEAD (1<<4)
-int reset_head(struct repository *r, struct object_id *oid, const char *action,
- const char *switch_to_branch, unsigned flags,
- const char *reflog_orig_head, const char *reflog_head,
- const char *default_reflog_action);
+struct reset_head_opts {
+ /*
+ * The commit to checkout/reset to. Defaults to HEAD.
+ */
+ const struct object_id *oid;
+ /*
+ * Optional value to set ORIG_HEAD. Defaults to HEAD.
+ */
+ const struct object_id *orig_head;
+ /*
+ * Optional branch to switch to.
+ */
+ const char *branch;
+ /*
+ * Flags defined above.
+ */
+ unsigned flags;
+ /*
+ * Optional reflog message for branch, defaults to head_msg.
+ */
+ const char *branch_msg;
+ /*
+ * Optional reflog message for HEAD, if this omitted but oid or branch
+ * are given then default_reflog_action must be given.
+ */
+ const char *head_msg;
+ /*
+ * Optional reflog message for ORIG_HEAD, if this omitted and flags
+ * contains RESET_ORIG_HEAD then default_reflog_action must be given.
+ */
+ const char *orig_head_msg;
+ /*
+ * Action to use in default reflog messages, only required if a ref is
+ * being updated and the reflog messages above are omitted.
+ */
+ const char *default_reflog_action;
+};
+
+int reset_head(struct repository *r, const struct reset_head_opts *opts);
#endif
diff --git a/revision.c b/revision.c
index 292a975ccf..090a967bf4 100644
--- a/revision.c
+++ b/revision.c
@@ -32,6 +32,7 @@
#include "utf8.h"
#include "bloom.h"
#include "json-writer.h"
+#include "list-objects-filter-options.h"
volatile show_early_output_fn_t show_early_output;
@@ -273,7 +274,7 @@ static void commit_stack_clear(struct commit_stack *stack)
stack->nr = stack->alloc = 0;
}
-static void mark_one_parent_uninteresting(struct commit *commit,
+static void mark_one_parent_uninteresting(struct rev_info *revs, struct commit *commit,
struct commit_stack *pending)
{
struct commit_list *l;
@@ -290,20 +291,26 @@ static void mark_one_parent_uninteresting(struct commit *commit,
* wasn't uninteresting), in which case we need
* to mark its parents recursively too..
*/
- for (l = commit->parents; l; l = l->next)
+ for (l = commit->parents; l; l = l->next) {
commit_stack_push(pending, l->item);
+ if (revs && revs->exclude_first_parent_only)
+ break;
+ }
}
-void mark_parents_uninteresting(struct commit *commit)
+void mark_parents_uninteresting(struct rev_info *revs, struct commit *commit)
{
struct commit_stack pending = COMMIT_STACK_INIT;
struct commit_list *l;
- for (l = commit->parents; l; l = l->next)
- mark_one_parent_uninteresting(l->item, &pending);
+ for (l = commit->parents; l; l = l->next) {
+ mark_one_parent_uninteresting(revs, l->item, &pending);
+ if (revs && revs->exclude_first_parent_only)
+ break;
+ }
while (pending.nr > 0)
- mark_one_parent_uninteresting(commit_stack_pop(&pending),
+ mark_one_parent_uninteresting(revs, commit_stack_pop(&pending),
&pending);
commit_stack_clear(&pending);
@@ -441,7 +448,7 @@ static struct commit *handle_commit(struct rev_info *revs,
if (repo_parse_commit(revs->repo, commit) < 0)
die("unable to parse commit %s", name);
if (flags & UNINTERESTING) {
- mark_parents_uninteresting(commit);
+ mark_parents_uninteresting(revs, commit);
if (!revs->topo_order || !generation_numbers_enabled(the_repository))
revs->limited = 1;
@@ -1124,7 +1131,7 @@ static int process_parents(struct rev_info *revs, struct commit *commit,
if (repo_parse_commit_gently(revs->repo, p, 1) < 0)
continue;
if (p->parents)
- mark_parents_uninteresting(p);
+ mark_parents_uninteresting(revs, p);
if (p->object.flags & SEEN)
continue;
p->object.flags |= (SEEN | NOT_USER_GIVEN);
@@ -1132,6 +1139,8 @@ static int process_parents(struct rev_info *revs, struct commit *commit,
commit_list_insert_by_date(p, list);
if (queue)
prio_queue_put(queue, p);
+ if (revs->exclude_first_parent_only)
+ break;
}
return 0;
}
@@ -1422,7 +1431,7 @@ static int limit_list(struct rev_info *revs)
if (process_parents(revs, commit, &original_list, NULL) < 0)
return -1;
if (obj->flags & UNINTERESTING) {
- mark_parents_uninteresting(commit);
+ mark_parents_uninteresting(revs, commit);
slop = still_interesting(original_list, date, slop, &interesting_cache);
if (slop)
continue;
@@ -1431,6 +1440,9 @@ static int limit_list(struct rev_info *revs)
if (revs->min_age != -1 && (commit->date > revs->min_age) &&
!revs->line_level_traverse)
continue;
+ if (revs->max_age_as_filter != -1 &&
+ (commit->date < revs->max_age_as_filter) && !revs->line_level_traverse)
+ continue;
date = commit->date;
p = &commit_list_insert(commit, p)->next;
@@ -1829,6 +1841,7 @@ void repo_init_revisions(struct repository *r,
revs->dense = 1;
revs->prefix = prefix;
revs->max_age = -1;
+ revs->max_age_as_filter = -1;
revs->min_age = -1;
revs->skip_count = -1;
revs->max_count = -1;
@@ -1838,7 +1851,7 @@ void repo_init_revisions(struct repository *r,
revs->commit_format = CMIT_FMT_DEFAULT;
revs->expand_tabs_in_log_default = 8;
- grep_init(&revs->grep_filter, revs->repo, prefix);
+ grep_init(&revs->grep_filter, revs->repo);
revs->grep_filter.status_only = 1;
repo_diff_setup(revs->repo, &revs->diffopt);
@@ -2209,6 +2222,9 @@ static int handle_revision_opt(struct rev_info *revs, int argc, const char **arg
} else if ((argcount = parse_long_opt("since", argv, &optarg))) {
revs->max_age = approxidate(optarg);
return argcount;
+ } else if ((argcount = parse_long_opt("since-as-filter", argv, &optarg))) {
+ revs->max_age_as_filter = approxidate(optarg);
+ return argcount;
} else if ((argcount = parse_long_opt("after", argv, &optarg))) {
revs->max_age = approxidate(optarg);
return argcount;
@@ -2223,6 +2239,8 @@ static int handle_revision_opt(struct rev_info *revs, int argc, const char **arg
return argcount;
} else if (!strcmp(arg, "--first-parent")) {
revs->first_parent_only = 1;
+ } else if (!strcmp(arg, "--exclude-first-parent-only")) {
+ revs->exclude_first_parent_only = 1;
} else if (!strcmp(arg, "--ancestry-path")) {
revs->ancestry_path = 1;
revs->simplify_history = 0;
@@ -2424,9 +2442,11 @@ static int handle_revision_opt(struct rev_info *revs, int argc, const char **arg
revs->pretty_given = 1;
revs->abbrev_commit = 1;
} else if (!strcmp(arg, "--graph")) {
- revs->topo_order = 1;
- revs->rewrite_parents = 1;
+ graph_clear(revs->graph);
revs->graph = graph_init(revs);
+ } else if (!strcmp(arg, "--no-graph")) {
+ graph_clear(revs->graph);
+ revs->graph = NULL;
} else if (!strcmp(arg, "--encode-email-headers")) {
revs->encode_email_headers = 1;
} else if (!strcmp(arg, "--no-encode-email-headers")) {
@@ -2523,8 +2543,6 @@ static int handle_revision_opt(struct rev_info *revs, int argc, const char **arg
unkv[(*unkc)++] = arg;
return opts;
}
- if (revs->graph && revs->track_linear)
- die(_("options '%s' and '%s' cannot be used together"), "--show-linear-break", "--graph");
return 1;
}
@@ -2543,6 +2561,17 @@ void parse_revision_opt(struct rev_info *revs, struct parse_opt_ctx_t *ctx,
ctx->argc -= n;
}
+void revision_opts_finish(struct rev_info *revs)
+{
+ if (revs->graph && revs->track_linear)
+ die(_("options '%s' and '%s' cannot be used together"), "--show-linear-break", "--graph");
+
+ if (revs->graph) {
+ revs->topo_order = 1;
+ revs->rewrite_parents = 1;
+ }
+}
+
static int for_each_bisect_ref(struct ref_store *refs, each_ref_fn fn,
void *cb_data, const char *term)
{
@@ -2669,6 +2698,10 @@ static int handle_revision_pseudo_opt(struct rev_info *revs,
revs->no_walk = 0;
} else if (!strcmp(arg, "--single-worktree")) {
revs->single_worktree = 1;
+ } else if (skip_prefix(arg, ("--filter="), &arg)) {
+ parse_list_objects_filter(&revs->filter, arg);
+ } else if (!strcmp(arg, ("--no-filter"))) {
+ list_objects_filter_set_no_filter(&revs->filter);
} else {
return 0;
}
@@ -2785,6 +2818,7 @@ int setup_revisions(int argc, const char **argv, struct rev_info *revs, struct s
break;
}
}
+ revision_opts_finish(revs);
if (prune_data.nr) {
/*
@@ -2860,8 +2894,6 @@ int setup_revisions(int argc, const char **argv, struct rev_info *revs, struct s
diff_setup_done(&revs->diffopt);
- grep_commit_pattern_type(GREP_PATTERN_TYPE_UNSPECIFIED,
- &revs->grep_filter);
if (!is_encoding_utf8(get_log_output_encoding()))
revs->grep_filter.ignore_locale = 1;
compile_grep_patterns(&revs->grep_filter);
@@ -2872,6 +2904,8 @@ int setup_revisions(int argc, const char **argv, struct rev_info *revs, struct s
die("cannot combine --walk-reflogs with history-limiting options");
if (revs->rewrite_parents && revs->children.name)
die(_("options '%s' and '%s' cannot be used together"), "--parents", "--children");
+ if (revs->filter.choice && !revs->blob_objects)
+ die(_("object filtering requires --objects"));
/*
* Limitations on the graph functionality
@@ -3345,7 +3379,7 @@ static void explore_walk_step(struct rev_info *revs)
return;
if (c->object.flags & UNINTERESTING)
- mark_parents_uninteresting(c);
+ mark_parents_uninteresting(revs, c);
for (p = c->parents; p; p = p->next)
test_flag_and_insert(&info->explore_queue, p->item, TOPO_WALK_EXPLORED);
@@ -3835,6 +3869,9 @@ enum commit_action get_commit_action(struct rev_info *revs, struct commit *commi
if (revs->min_age != -1 &&
comparison_date(revs, commit) > revs->min_age)
return commit_ignore;
+ if (revs->max_age_as_filter != -1 &&
+ comparison_date(revs, commit) < revs->max_age_as_filter)
+ return commit_ignore;
if (revs->min_parents || (revs->max_parents >= 0)) {
int n = commit_list_count(commit->parents);
if ((n < revs->min_parents) ||
diff --git a/revision.h b/revision.h
index 3f66147bfd..e80c148b19 100644
--- a/revision.h
+++ b/revision.h
@@ -8,6 +8,7 @@
#include "pretty.h"
#include "diff.h"
#include "commit-slab-decl.h"
+#include "list-objects-filter-options.h"
/**
* The revision walking API offers functions to build a list of revisions
@@ -94,6 +95,12 @@ struct rev_info {
/* The end-points specified by the end user */
struct rev_cmdline_info cmdline;
+ /*
+ * Object filter options. No filtering is specified
+ * if and only if filter.choice is zero.
+ */
+ struct list_objects_filter_options filter;
+
/* excluding from --branches, --refs, etc. expansion */
struct string_list *ref_excludes;
@@ -158,6 +165,7 @@ struct rev_info {
bisect:1,
ancestry_path:1,
first_parent_only:1,
+ exclude_first_parent_only:1,
line_level_traverse:1,
tree_blobs_in_commit_order:1,
@@ -195,7 +203,8 @@ struct rev_info {
combine_merges:1,
combined_all_paths:1,
dense_combined_merges:1,
- first_parent_merges:1;
+ first_parent_merges:1,
+ remerge_diff:1;
/* Format info */
int show_notes;
@@ -254,6 +263,7 @@ struct rev_info {
int skip_count;
int max_count;
timestamp_t max_age;
+ timestamp_t max_age_as_filter;
timestamp_t min_age;
int min_parents;
int max_parents;
@@ -315,6 +325,9 @@ struct rev_info {
/* misc. flags related to '--no-kept-objects' */
unsigned keep_pack_cache_flags;
+
+ /* Location where temporary objects for remerge-diff are written. */
+ struct tmp_objdir *remerge_objdir;
};
int ref_excluded(struct string_list *, const char *path);
@@ -372,6 +385,7 @@ void parse_revision_opt(struct rev_info *revs, struct parse_opt_ctx_t *ctx,
#define REVARG_COMMITTISH 02
int handle_revision_arg(const char *arg, struct rev_info *revs,
int flags, unsigned revarg_opt);
+void revision_opts_finish(struct rev_info *revs);
/**
* Reset the flags used by the revision walking api. You can use this to do
@@ -398,7 +412,7 @@ const char *get_revision_mark(const struct rev_info *revs,
void put_revision_mark(const struct rev_info *revs,
const struct commit *commit);
-void mark_parents_uninteresting(struct commit *commit);
+void mark_parents_uninteresting(struct rev_info *revs, struct commit *commit);
void mark_tree_uninteresting(struct repository *r, struct tree *tree);
void mark_trees_uninteresting_sparse(struct repository *r, struct oidset *trees);
diff --git a/run-command.c b/run-command.c
index 69dde42f1e..a8501e38ce 100644
--- a/run-command.c
+++ b/run-command.c
@@ -1307,39 +1307,6 @@ int async_with_fork(void)
#endif
}
-int run_hook_ve(const char *const *env, const char *name, va_list args)
-{
- struct child_process hook = CHILD_PROCESS_INIT;
- const char *p;
-
- p = find_hook(name);
- if (!p)
- return 0;
-
- strvec_push(&hook.args, p);
- while ((p = va_arg(args, const char *)))
- strvec_push(&hook.args, p);
- if (env)
- strvec_pushv(&hook.env_array, (const char **)env);
- hook.no_stdin = 1;
- hook.stdout_to_stderr = 1;
- hook.trace2_hook_name = name;
-
- return run_command(&hook);
-}
-
-int run_hook_le(const char *const *env, const char *name, ...)
-{
- va_list args;
- int ret;
-
- va_start(args, name);
- ret = run_hook_ve(env, name, args);
- va_end(args);
-
- return ret;
-}
-
struct io_pump {
/* initialized by caller */
int fd;
diff --git a/run-command.h b/run-command.h
index 2be5f5d642..5bd0c933e8 100644
--- a/run-command.h
+++ b/run-command.h
@@ -142,7 +142,6 @@ struct child_process {
unsigned clean_on_exit:1;
unsigned wait_after_clean:1;
void (*clean_on_exit_handler)(struct child_process *process);
- void *clean_on_exit_handler_cbdata;
};
#define CHILD_PROCESS_INIT { \
@@ -220,23 +219,6 @@ int finish_command_in_signal(struct child_process *);
*/
int run_command(struct child_process *);
-/**
- * Run a hook.
- * The first argument is a pathname to an index file, or NULL
- * if the hook uses the default index file or no index is needed.
- * The second argument is the name of the hook.
- * The further arguments correspond to the hook arguments.
- * The last argument has to be NULL to terminate the arguments list.
- * If the hook does not exist or is not executable, the return
- * value will be zero.
- * If it is executable, the hook will be executed and the exit
- * status of the hook is returned.
- * On execution, .stdout_to_stderr and .no_stdin will be set.
- */
-LAST_ARG_MUST_BE_NULL
-int run_hook_le(const char *const *env, const char *name, ...);
-int run_hook_ve(const char *const *env, const char *name, va_list args);
-
/*
* Trigger an auto-gc
*/
diff --git a/sequencer.c b/sequencer.c
index 5213d16e97..8c3ed3532a 100644
--- a/sequencer.c
+++ b/sequencer.c
@@ -1220,7 +1220,7 @@ static int run_prepare_commit_msg_hook(struct repository *r,
} else {
arg1 = "message";
}
- if (run_commit_hook(0, r->index_file, "prepare-commit-msg", name,
+ if (run_commit_hook(0, r->index_file, NULL, "prepare-commit-msg", name,
arg1, arg2, NULL))
ret = error(_("'prepare-commit-msg' hook failed"));
@@ -1281,7 +1281,6 @@ void print_commit_summary(struct repository *r,
struct strbuf author_ident = STRBUF_INIT;
struct strbuf committer_ident = STRBUF_INIT;
struct ref_store *refs;
- int resolve_errno;
commit = lookup_commit(r, oid);
if (!commit)
@@ -1328,16 +1327,12 @@ void print_commit_summary(struct repository *r,
get_commit_format(format.buf, &rev);
rev.always_show_header = 0;
rev.diffopt.detect_rename = DIFF_DETECT_RENAME;
- rev.diffopt.break_opt = 0;
diff_setup_done(&rev.diffopt);
refs = get_main_ref_store(the_repository);
- head = refs_resolve_ref_unsafe(refs, "HEAD", 0, NULL, NULL,
- &resolve_errno);
- if (!head) {
- errno = resolve_errno;
- die_errno(_("unable to resolve HEAD after creating commit"));
- }
+ head = refs_resolve_ref_unsafe(refs, "HEAD", 0, NULL, NULL);
+ if (!head)
+ die(_("unable to resolve HEAD after creating commit"));
if (!strcmp(head, "HEAD"))
head = _("detached HEAD");
else
@@ -1556,7 +1551,7 @@ static int try_to_commit(struct repository *r,
goto out;
}
- run_commit_hook(0, r->index_file, "post-commit", NULL);
+ run_commit_hook(0, r->index_file, NULL, "post-commit", NULL);
if (flags & AMEND_MSG)
commit_post_rewrite(r, current_head, oid);
@@ -2806,7 +2801,7 @@ static int populate_opts_cb(const char *key, const char *value, void *data)
return error(_("invalid key: %s"), key);
if (!error_flag)
- return error(_("invalid value for %s: %s"), key, value);
+ return error(_("invalid value for '%s': '%s'"), key, value);
return 0;
}
@@ -3753,7 +3748,7 @@ static int do_merge(struct repository *r,
int run_commit_flags = 0;
struct strbuf ref_name = STRBUF_INIT;
struct commit *head_commit, *merge_commit, *i;
- struct commit_list *bases, *j, *reversed = NULL;
+ struct commit_list *bases, *j;
struct commit_list *to_merge = NULL, **tail = &to_merge;
const char *strategy = !opts->xopts_nr &&
(!opts->strategy ||
@@ -3988,9 +3983,7 @@ static int do_merge(struct repository *r,
git_path_merge_head(r), 0);
write_message("no-ff", 5, git_path_merge_mode(r), 0);
- for (j = bases; j; j = j->next)
- commit_list_insert(j->item, &reversed);
- free_commit_list(bases);
+ bases = reverse_commit_list(bases);
repo_read_index(r);
init_merge_options(&o, r);
@@ -4006,10 +3999,10 @@ static int do_merge(struct repository *r,
* update the index and working copy immediately.
*/
ret = merge_ort_recursive(&o,
- head_commit, merge_commit, reversed,
+ head_commit, merge_commit, bases,
&i);
} else {
- ret = merge_recursive(&o, head_commit, merge_commit, reversed,
+ ret = merge_recursive(&o, head_commit, merge_commit, bases,
&i);
}
if (ret <= 0)
@@ -4089,8 +4082,7 @@ static enum todo_command peek_command(struct todo_list *todo_list, int offset)
return -1;
}
-void create_autostash(struct repository *r, const char *path,
- const char *default_reflog_action)
+void create_autostash(struct repository *r, const char *path)
{
struct strbuf buf = STRBUF_INIT;
struct lock_file lock_file = LOCK_INIT;
@@ -4105,6 +4097,7 @@ void create_autostash(struct repository *r, const char *path,
if (has_unstaged_changes(r, 1) ||
has_uncommitted_changes(r, 1)) {
struct child_process stash = CHILD_PROCESS_INIT;
+ struct reset_head_opts ropts = { .flags = RESET_HEAD_HARD };
struct object_id oid;
strvec_pushl(&stash.args,
@@ -4126,11 +4119,8 @@ void create_autostash(struct repository *r, const char *path,
path);
write_file(path, "%s", oid_to_hex(&oid));
printf(_("Created autostash: %s\n"), buf.buf);
- if (reset_head(r, NULL, "reset --hard",
- NULL, RESET_HEAD_HARD, NULL, NULL,
- default_reflog_action) < 0)
+ if (reset_head(r, &ropts) < 0)
die(_("could not reset --hard"));
-
if (discard_index(r->index) < 0 ||
repo_read_index(r) < 0)
die(_("could not read index"));
@@ -4215,47 +4205,26 @@ int apply_autostash_oid(const char *stash_oid)
return apply_save_autostash_oid(stash_oid, 1);
}
-static int run_git_checkout(struct repository *r, struct replay_opts *opts,
- const char *commit, const char *action)
-{
- struct child_process cmd = CHILD_PROCESS_INIT;
- int ret;
-
- cmd.git_cmd = 1;
-
- if (startup_info->original_cwd) {
- cmd.dir = startup_info->original_cwd;
- strvec_pushf(&cmd.env_array, "%s=%s",
- GIT_WORK_TREE_ENVIRONMENT, r->worktree);
- }
- strvec_push(&cmd.args, "checkout");
- strvec_push(&cmd.args, commit);
- strvec_pushf(&cmd.env_array, GIT_REFLOG_ACTION "=%s", action);
-
- if (opts->verbose)
- ret = run_command(&cmd);
- else
- ret = run_command_silent_on_success(&cmd);
-
- if (!ret)
- discard_index(r->index);
-
- return ret;
-}
-
static int checkout_onto(struct repository *r, struct replay_opts *opts,
const char *onto_name, const struct object_id *onto,
const struct object_id *orig_head)
{
- const char *action = reflog_message(opts, "start", "checkout %s", onto_name);
-
- if (run_git_checkout(r, opts, oid_to_hex(onto), action)) {
+ struct reset_head_opts ropts = {
+ .oid = onto,
+ .orig_head = orig_head,
+ .flags = RESET_HEAD_DETACH | RESET_ORIG_HEAD |
+ RESET_HEAD_RUN_POST_CHECKOUT_HOOK,
+ .head_msg = reflog_message(opts, "start", "checkout %s",
+ onto_name),
+ .default_reflog_action = "rebase"
+ };
+ if (reset_head(r, &ropts)) {
apply_autostash(rebase_path_autostash());
sequencer_remove_state(opts);
return error(_("could not detach HEAD"));
}
- return update_ref(NULL, "ORIG_HEAD", orig_head, NULL, 0, UPDATE_REFS_MSG_ON_ERR);
+ return 0;
}
static int stopped_at_head(struct repository *r)
diff --git a/sequencer.h b/sequencer.h
index 05a7d2ba6b..da64473636 100644
--- a/sequencer.h
+++ b/sequencer.h
@@ -197,8 +197,7 @@ void commit_post_rewrite(struct repository *r,
const struct commit *current_head,
const struct object_id *new_head);
-void create_autostash(struct repository *r, const char *path,
- const char *default_reflog_action);
+void create_autostash(struct repository *r, const char *path);
int save_autostash(const char *path);
int apply_autostash(const char *path);
int apply_autostash_oid(const char *stash_oid);
diff --git a/serve.c b/serve.c
index b3fe9b5126..733347f602 100644
--- a/serve.c
+++ b/serve.c
@@ -3,7 +3,6 @@
#include "config.h"
#include "pkt-line.h"
#include "version.h"
-#include "strvec.h"
#include "ls-refs.h"
#include "protocol-caps.h"
#include "serve.h"
diff --git a/setup.c b/setup.c
index a47ef58df5..f818dd858c 100644
--- a/setup.c
+++ b/setup.c
@@ -560,7 +560,8 @@ static enum extension_result handle_extension(const char *var,
return config_error_nonbool(var);
format = hash_algo_by_name(value);
if (format == GIT_HASH_UNKNOWN)
- return error("invalid value for 'extensions.objectformat'");
+ return error(_("invalid value for '%s': '%s'"),
+ "extensions.objectformat", value);
data->hash_algo = format;
return EXTENSION_OK;
}
diff --git a/shallow.c b/shallow.c
index 2868b2d395..8ad5f22832 100644
--- a/shallow.c
+++ b/shallow.c
@@ -90,6 +90,7 @@ static void reset_repository_shallow(struct repository *r)
{
r->parsed_objects->is_shallow = -1;
stat_validity_clear(r->parsed_objects->shallow_stat);
+ reset_commit_grafts(r);
}
int commit_shallow_file(struct repository *r, struct shallow_lock *lk)
@@ -603,7 +604,7 @@ static int mark_uninteresting(const char *refname, const struct object_id *oid,
if (!commit)
return 0;
commit->object.flags |= UNINTERESTING;
- mark_parents_uninteresting(commit);
+ mark_parents_uninteresting(NULL, commit);
return 0;
}
diff --git a/shared.mak b/shared.mak
new file mode 100644
index 0000000000..50d4596f0d
--- /dev/null
+++ b/shared.mak
@@ -0,0 +1,103 @@
+### Remove GNU make implicit rules
+
+## This speeds things up since we don't need to look for and stat() a
+## "foo.c,v" every time a rule referring to "foo.c" is in play. See
+## "make -p -f/dev/null | grep ^%::'".
+%:: %,v
+%:: RCS/%,v
+%:: RCS/%
+%:: s.%
+%:: SCCS/s.%
+
+## Likewise delete default $(SUFFIXES). See:
+##
+## info make --index-search=.SUFFIXES
+.SUFFIXES:
+
+### Flags affecting all rules
+
+# A GNU make extension since gmake 3.72 (released in late 1994) to
+# remove the target of rules if commands in those rules fail. The
+# default is to only do that if make itself receives a signal. Affects
+# all targets, see:
+#
+# info make --index-search=.DELETE_ON_ERROR
+.DELETE_ON_ERROR:
+
+### Global variables
+
+## comma, empty, space: handy variables as these tokens are either
+## special or can be hard to spot among other Makefile syntax.
+comma := ,
+empty :=
+space := $(empty) $(empty)
+
+### Quieting
+## common
+QUIET_SUBDIR0 = +$(MAKE) -C # space to separate -C and subdir
+QUIET_SUBDIR1 =
+
+ifneq ($(findstring w,$(MAKEFLAGS)),w)
+PRINT_DIR = --no-print-directory
+else # "make -w"
+NO_SUBDIR = :
+endif
+
+ifneq ($(findstring s,$(MAKEFLAGS)),s)
+ifndef V
+## common
+ QUIET_SUBDIR0 = +@subdir=
+ QUIET_SUBDIR1 = ;$(NO_SUBDIR) echo ' ' SUBDIR $$subdir; \
+ $(MAKE) $(PRINT_DIR) -C $$subdir
+
+ QUIET = @
+ QUIET_GEN = @echo ' ' GEN $@;
+
+ QUIET_MKDIR_P_PARENT = @echo ' ' MKDIR -p $(@D);
+
+## Used in "Makefile"
+ QUIET_CC = @echo ' ' CC $@;
+ QUIET_AR = @echo ' ' AR $@;
+ QUIET_LINK = @echo ' ' LINK $@;
+ QUIET_BUILT_IN = @echo ' ' BUILTIN $@;
+ QUIET_LNCP = @echo ' ' LN/CP $@;
+ QUIET_XGETTEXT = @echo ' ' XGETTEXT $@;
+ QUIET_MSGFMT = @echo ' ' MSGFMT $@;
+ QUIET_GCOV = @echo ' ' GCOV $@;
+ QUIET_SP = @echo ' ' SP $<;
+ QUIET_HDR = @echo ' ' HDR $(<:hcc=h);
+ QUIET_RC = @echo ' ' RC $@;
+ QUIET_SPATCH = @echo ' ' SPATCH $<;
+
+## Used in "Documentation/Makefile"
+ QUIET_ASCIIDOC = @echo ' ' ASCIIDOC $@;
+ QUIET_XMLTO = @echo ' ' XMLTO $@;
+ QUIET_DB2TEXI = @echo ' ' DB2TEXI $@;
+ QUIET_MAKEINFO = @echo ' ' MAKEINFO $@;
+ QUIET_DBLATEX = @echo ' ' DBLATEX $@;
+ QUIET_XSLTPROC = @echo ' ' XSLTPROC $@;
+ QUIET_GEN = @echo ' ' GEN $@;
+ QUIET_STDERR = 2> /dev/null
+
+ QUIET_LINT_GITLINK = @echo ' ' LINT GITLINK $<;
+ QUIET_LINT_MANSEC = @echo ' ' LINT MAN SEC $<;
+ QUIET_LINT_MANEND = @echo ' ' LINT MAN END $<;
+
+ export V
+endif
+endif
+
+### Templates
+
+## mkdir_p_parent: lazily "mkdir -p" the path needed for a $@
+## file. Uses $(wildcard) to avoid the "mkdir -p" if it's not
+## needed.
+##
+## Is racy, but in a good way; we might redundantly (and safely)
+## "mkdir -p" when running in parallel, but won't need to exhaustively create
+## individual rules for "a" -> "prefix" -> "dir" -> "file" if given a
+## "a/prefix/dir/file". This can instead be inserted at the start of
+## the "a/prefix/dir/file" rule.
+define mkdir_p_parent_template
+$(if $(wildcard $(@D)),,$(QUIET_MKDIR_P_PARENT)$(shell mkdir -p $(@D)))
+endef
diff --git a/sparse-index.c b/sparse-index.c
index a1d505d50e..ffbab7d35f 100644
--- a/sparse-index.c
+++ b/sparse-index.c
@@ -99,13 +99,9 @@ static int convert_to_sparse_rec(struct index_state *istate,
int set_sparse_index_config(struct repository *repo, int enable)
{
- int res;
- char *config_path = repo_git_path(repo, "config.worktree");
- res = git_config_set_in_file_gently(config_path,
- "index.sparse",
- enable ? "true" : NULL);
- free(config_path);
-
+ int res = repo_config_set_worktree_gently(repo,
+ "index.sparse",
+ enable ? "true" : "false");
prepare_repo_settings(repo);
repo->settings.sparse_index = enable;
return res;
@@ -122,7 +118,7 @@ static int index_has_unmerged_entries(struct index_state *istate)
return 0;
}
-static int is_sparse_index_allowed(struct index_state *istate, int flags)
+int is_sparse_index_allowed(struct index_state *istate, int flags)
{
if (!core_apply_sparse_checkout || !core_sparse_checkout_cone)
return 0;
@@ -136,7 +132,7 @@ static int is_sparse_index_allowed(struct index_state *istate, int flags)
/*
* The sparse index is not (yet) integrated with a split index.
*/
- if (istate->split_index)
+ if (istate->split_index || git_env_bool("GIT_TEST_SPLIT_INDEX", 0))
return 0;
/*
* The GIT_TEST_SPARSE_INDEX environment variable triggers the
@@ -341,6 +337,80 @@ void ensure_correct_sparsity(struct index_state *istate)
ensure_full_index(istate);
}
+static int path_found(const char *path, const char **dirname, size_t *dir_len,
+ int *dir_found)
+{
+ struct stat st;
+ char *newdir;
+ char *tmp;
+
+ /*
+ * If dirname corresponds to a directory that doesn't exist, and this
+ * path starts with dirname, then path can't exist.
+ */
+ if (!*dir_found && !memcmp(path, *dirname, *dir_len))
+ return 0;
+
+ /*
+ * If path itself exists, return 1.
+ */
+ if (!lstat(path, &st))
+ return 1;
+
+ /*
+ * Otherwise, path does not exist so we'll return 0...but we'll first
+ * determine some info about its parent directory so we can avoid
+ * lstat calls for future cache entries.
+ */
+ newdir = strrchr(path, '/');
+ if (!newdir)
+ return 0; /* Didn't find a parent dir; just return 0 now. */
+
+ /*
+ * If path starts with directory (which we already lstat'ed and found),
+ * then no need to lstat parent directory again.
+ */
+ if (*dir_found && *dirname && memcmp(path, *dirname, *dir_len))
+ return 0;
+
+ /* Free previous dirname, and cache path's dirname */
+ *dirname = path;
+ *dir_len = newdir - path + 1;
+
+ tmp = xstrndup(path, *dir_len);
+ *dir_found = !lstat(tmp, &st);
+ free(tmp);
+
+ return 0;
+}
+
+void clear_skip_worktree_from_present_files(struct index_state *istate)
+{
+ const char *last_dirname = NULL;
+ size_t dir_len = 0;
+ int dir_found = 1;
+
+ int i;
+
+ if (!core_apply_sparse_checkout ||
+ sparse_expect_files_outside_of_patterns)
+ return;
+
+restart:
+ for (i = 0; i < istate->cache_nr; i++) {
+ struct cache_entry *ce = istate->cache[i];
+
+ if (ce_skip_worktree(ce) &&
+ path_found(ce->name, &last_dirname, &dir_len, &dir_found)) {
+ if (S_ISSPARSEDIR(ce->ce_mode)) {
+ ensure_full_index(istate);
+ goto restart;
+ }
+ ce->ce_flags &= ~CE_SKIP_WORKTREE;
+ }
+ }
+}
+
/*
* This static global helps avoid infinite recursion between
* expand_to_path() and index_file_exists().
diff --git a/sparse-index.h b/sparse-index.h
index 656bd835b2..f57c65d972 100644
--- a/sparse-index.h
+++ b/sparse-index.h
@@ -3,8 +3,10 @@
struct index_state;
#define SPARSE_INDEX_MEMORY_ONLY (1 << 0)
+int is_sparse_index_allowed(struct index_state *istate, int flags);
int convert_to_sparse(struct index_state *istate, int flags);
void ensure_correct_sparsity(struct index_state *istate);
+void clear_skip_worktree_from_present_files(struct index_state *istate);
/*
* Some places in the codebase expect to search for a specific path.
diff --git a/split-index.c b/split-index.c
index 8e52e891c3..9d0ccc30d0 100644
--- a/split-index.c
+++ b/split-index.c
@@ -5,6 +5,9 @@
struct split_index *init_split_index(struct index_state *istate)
{
if (!istate->split_index) {
+ if (istate->sparse_index)
+ die(_("cannot use split index with a sparse index"));
+
CALLOC_ARRAY(istate->split_index, 1);
istate->split_index->refcount = 1;
}
diff --git a/stable-qsort.c b/stable-qsort.c
index 6cbaf39f7b..7ff12467cd 100644
--- a/stable-qsort.c
+++ b/stable-qsort.c
@@ -48,15 +48,9 @@ void git_stable_qsort(void *b, size_t n, size_t s,
int (*cmp)(const void *, const void *))
{
const size_t size = st_mult(n, s);
- char buf[1024];
-
- if (size < sizeof(buf)) {
- /* The temporary array fits on the small on-stack buffer. */
- msort_with_tmp(b, n, s, cmp, buf);
- } else {
- /* It's somewhat large, so malloc it. */
- char *tmp = xmalloc(size);
- msort_with_tmp(b, n, s, cmp, tmp);
- free(tmp);
- }
+ char *tmp;
+
+ tmp = xmalloc(size);
+ msort_with_tmp(b, n, s, cmp, tmp);
+ free(tmp);
}
diff --git a/strbuf.c b/strbuf.c
index 613fee8c82..dd9eb85527 100644
--- a/strbuf.c
+++ b/strbuf.c
@@ -2,6 +2,7 @@
#include "refs.h"
#include "string-list.h"
#include "utf8.h"
+#include "date.h"
int starts_with(const char *str, const char *prefix)
{
@@ -874,9 +875,9 @@ static void strbuf_humanise(struct strbuf *buf, off_t bytes,
strbuf_addf(buf,
humanise_rate == 0 ?
/* TRANSLATORS: IEC 80000-13:2008 byte */
- Q_("%u byte", "%u bytes", (unsigned)bytes) :
+ Q_("%u byte", "%u bytes", bytes) :
/* TRANSLATORS: IEC 80000-13:2008 byte/second */
- Q_("%u byte/s", "%u bytes/s", (unsigned)bytes),
+ Q_("%u byte/s", "%u bytes/s", bytes),
(unsigned)bytes);
}
}
diff --git a/string-list.h b/string-list.h
index 267d6e5769..d5a744e143 100644
--- a/string-list.h
+++ b/string-list.h
@@ -86,7 +86,8 @@ typedef int (*compare_strings_fn)(const char *, const char *);
*/
struct string_list {
struct string_list_item *items;
- unsigned int nr, alloc;
+ size_t nr;
+ size_t alloc;
unsigned int strdup_strings:1;
compare_strings_fn cmp; /* NULL uses strcmp() */
};
diff --git a/submodule-config.c b/submodule-config.c
index f95344028b..29668b0620 100644
--- a/submodule-config.c
+++ b/submodule-config.c
@@ -7,6 +7,7 @@
#include "strbuf.h"
#include "object-store.h"
#include "parse-options.h"
+#include "tree-walk.h"
/*
* submodule cache lookup structure
@@ -496,7 +497,7 @@ static int parse_config(const char *var, const char *value, void *data)
else if (parse_submodule_update_strategy(value,
&submodule->update_strategy) < 0 ||
submodule->update_strategy.type == SM_UPDATE_COMMAND)
- die(_("invalid value for %s"), var);
+ die(_("invalid value for '%s'"), var);
} else if (!strcmp(item.buf, "shallow")) {
if (!me->overwrite && submodule->recommend_shallow != -1)
warn_multiple_config(me->treeish_name, submodule->name,
@@ -726,6 +727,66 @@ const struct submodule *submodule_from_path(struct repository *r,
return config_from(r->submodule_cache, treeish_name, path, lookup_path);
}
+/**
+ * Used internally by submodules_of_tree(). Recurses into 'treeish_name'
+ * and appends submodule entries to 'out'. The submodule_cache expects
+ * a root-level treeish_name and paths, so keep track of these values
+ * with 'root_tree' and 'prefix'.
+ */
+static void traverse_tree_submodules(struct repository *r,
+ const struct object_id *root_tree,
+ char *prefix,
+ const struct object_id *treeish_name,
+ struct submodule_entry_list *out)
+{
+ struct tree_desc tree;
+ struct submodule_tree_entry *st_entry;
+ struct name_entry *name_entry;
+ char *tree_path = NULL;
+
+ name_entry = xmalloc(sizeof(*name_entry));
+
+ fill_tree_descriptor(r, &tree, treeish_name);
+ while (tree_entry(&tree, name_entry)) {
+ if (prefix)
+ tree_path =
+ mkpathdup("%s/%s", prefix, name_entry->path);
+ else
+ tree_path = xstrdup(name_entry->path);
+
+ if (S_ISGITLINK(name_entry->mode) &&
+ is_tree_submodule_active(r, root_tree, tree_path)) {
+ st_entry = xmalloc(sizeof(*st_entry));
+ st_entry->name_entry = xmalloc(sizeof(*st_entry->name_entry));
+ *st_entry->name_entry = *name_entry;
+ st_entry->submodule =
+ submodule_from_path(r, root_tree, tree_path);
+ st_entry->repo = xmalloc(sizeof(*st_entry->repo));
+ if (repo_submodule_init(st_entry->repo, r, tree_path,
+ root_tree))
+ FREE_AND_NULL(st_entry->repo);
+
+ ALLOC_GROW(out->entries, out->entry_nr + 1,
+ out->entry_alloc);
+ out->entries[out->entry_nr++] = *st_entry;
+ } else if (S_ISDIR(name_entry->mode))
+ traverse_tree_submodules(r, root_tree, tree_path,
+ &name_entry->oid, out);
+ free(tree_path);
+ }
+}
+
+void submodules_of_tree(struct repository *r,
+ const struct object_id *treeish_name,
+ struct submodule_entry_list *out)
+{
+ CALLOC_ARRAY(out->entries, 0);
+ out->entry_nr = 0;
+ out->entry_alloc = 0;
+
+ traverse_tree_submodules(r, treeish_name, NULL, treeish_name, out);
+}
+
void submodule_free(struct repository *r)
{
if (r->submodule_cache)
diff --git a/submodule-config.h b/submodule-config.h
index 65875b94ea..28a8ca6bf4 100644
--- a/submodule-config.h
+++ b/submodule-config.h
@@ -6,6 +6,7 @@
#include "hashmap.h"
#include "submodule.h"
#include "strbuf.h"
+#include "tree-walk.h"
/**
* The submodule config cache API allows to read submodule
@@ -37,7 +38,7 @@ struct submodule {
const char *path;
const char *name;
const char *url;
- int fetch_recurse;
+ enum submodule_recurse_mode fetch_recurse;
const char *ignore;
const char *branch;
struct submodule_update_strategy update_strategy;
@@ -101,4 +102,37 @@ int check_submodule_name(const char *name);
void fetch_config_from_gitmodules(int *max_children, int *recurse_submodules);
void update_clone_config_from_gitmodules(int *max_jobs);
+/*
+ * Submodule entry that contains relevant information about a
+ * submodule in a tree.
+ */
+struct submodule_tree_entry {
+ /* The submodule's tree entry. */
+ struct name_entry *name_entry;
+ /*
+ * A struct repository corresponding to the submodule. May be
+ * NULL if the submodule has not been updated.
+ */
+ struct repository *repo;
+ /*
+ * A struct submodule containing the submodule config in the
+ * tree's .gitmodules.
+ */
+ const struct submodule *submodule;
+};
+
+struct submodule_entry_list {
+ struct submodule_tree_entry *entries;
+ int entry_nr;
+ int entry_alloc;
+};
+
+/**
+ * Given a treeish, return all submodules in the tree and its subtrees,
+ * but excluding nested submodules. Callers that require nested
+ * submodules are expected to recurse into the submodules themselves.
+ */
+void submodules_of_tree(struct repository *r,
+ const struct object_id *treeish_name,
+ struct submodule_entry_list *ret);
#endif /* SUBMODULE_CONFIG_H */
diff --git a/submodule.c b/submodule.c
index c689070524..86c8f0f89d 100644
--- a/submodule.c
+++ b/submodule.c
@@ -22,6 +22,7 @@
#include "parse-options.h"
#include "object-store.h"
#include "commit-reach.h"
+#include "shallow.h"
static int config_update_recurse_submodules = RECURSE_SUBMODULES_OFF;
static int initialized_fetch_ref_tips;
@@ -167,26 +168,6 @@ void stage_updated_gitmodules(struct index_state *istate)
static struct string_list added_submodule_odb_paths = STRING_LIST_INIT_NODUP;
-/* TODO: remove this function, use repo_submodule_init instead. */
-int add_submodule_odb(const char *path)
-{
- struct strbuf objects_directory = STRBUF_INIT;
- int ret = 0;
-
- ret = strbuf_git_path_submodule(&objects_directory, path, "objects/");
- if (ret)
- goto done;
- if (!is_directory(objects_directory.buf)) {
- ret = -1;
- goto done;
- }
- string_list_insert(&added_submodule_odb_paths,
- strbuf_detach(&objects_directory, NULL));
-done:
- strbuf_release(&objects_directory);
- return ret;
-}
-
void add_submodule_odb_by_path(const char *path)
{
string_list_insert(&added_submodule_odb_paths, xstrdup(path));
@@ -267,7 +248,9 @@ int option_parse_recurse_submodules_worktree_updater(const struct option *opt,
* ie, the config looks like: "[submodule] active\n".
* Since that is an invalid pathspec, we should inform the user.
*/
-int is_submodule_active(struct repository *repo, const char *path)
+int is_tree_submodule_active(struct repository *repo,
+ const struct object_id *treeish_name,
+ const char *path)
{
int ret = 0;
char *key = NULL;
@@ -275,7 +258,7 @@ int is_submodule_active(struct repository *repo, const char *path)
const struct string_list *sl;
const struct submodule *module;
- module = submodule_from_path(repo, null_oid(), path);
+ module = submodule_from_path(repo, treeish_name, path);
/* early return if there isn't a path->module mapping */
if (!module)
@@ -317,6 +300,11 @@ int is_submodule_active(struct repository *repo, const char *path)
return ret;
}
+int is_submodule_active(struct repository *repo, const char *path)
+{
+ return is_tree_submodule_active(repo, null_oid(), path);
+}
+
int is_submodule_populated_gently(const char *path, int *return_error_code)
{
int ret = 0;
@@ -775,19 +763,6 @@ const struct submodule *submodule_from_ce(const struct cache_entry *ce)
return submodule_from_path(the_repository, null_oid(), ce->name);
}
-static struct oid_array *submodule_commits(struct string_list *submodules,
- const char *name)
-{
- struct string_list_item *item;
-
- item = string_list_insert(submodules, name);
- if (item->util)
- return (struct oid_array *) item->util;
-
- /* NEEDSWORK: should we have oid_array_init()? */
- item->util = xcalloc(1, sizeof(struct oid_array));
- return (struct oid_array *) item->util;
-}
struct collect_changed_submodules_cb_data {
struct repository *repo;
@@ -812,6 +787,52 @@ static const char *default_name_or_path(const char *path_or_name)
return path_or_name;
}
+/*
+ * Holds relevant information for a changed submodule. Used as the .util
+ * member of the changed submodule name string_list_item.
+ *
+ * (super_oid, path) allows the submodule config to be read from _some_
+ * .gitmodules file. We store this information the first time we find a
+ * superproject commit that points to the submodule, but this is
+ * arbitrary - we can choose any (super_oid, path) that matches the
+ * submodule's name.
+ *
+ * NEEDSWORK: Storing an arbitrary commit is undesirable because we can't
+ * guarantee that we're reading the commit that the user would expect. A better
+ * scheme would be to just fetch a submodule by its name. This requires two
+ * steps:
+ * - Create a function that behaves like repo_submodule_init(), but accepts a
+ * submodule name instead of treeish_name and path. This should be easy
+ * because repo_submodule_init() internally uses the submodule's name.
+ *
+ * - Replace most instances of 'struct submodule' (which is the .gitmodules
+ * config) with just the submodule name. This is OK because we expect
+ * submodule settings to be stored in .git/config (via "git submodule init"),
+ * not .gitmodules. This also lets us delete get_non_gitmodules_submodule(),
+ * which constructs a bogus 'struct submodule' for the sake of giving a
+ * placeholder name to a gitlink.
+ */
+struct changed_submodule_data {
+ /*
+ * The first superproject commit in the rev walk that points to
+ * the submodule.
+ */
+ const struct object_id *super_oid;
+ /*
+ * Path to the submodule in the superproject commit referenced
+ * by 'super_oid'.
+ */
+ char *path;
+ /* The submodule commits that have changed in the rev walk. */
+ struct oid_array new_commits;
+};
+
+static void changed_submodule_data_clear(struct changed_submodule_data *cs_data)
+{
+ oid_array_clear(&cs_data->new_commits);
+ free(cs_data->path);
+}
+
static void collect_changed_submodules_cb(struct diff_queue_struct *q,
struct diff_options *options,
void *data)
@@ -823,9 +844,10 @@ static void collect_changed_submodules_cb(struct diff_queue_struct *q,
for (i = 0; i < q->nr; i++) {
struct diff_filepair *p = q->queue[i];
- struct oid_array *commits;
const struct submodule *submodule;
const char *name;
+ struct string_list_item *item;
+ struct changed_submodule_data *cs_data;
if (!S_ISGITLINK(p->two->mode))
continue;
@@ -852,8 +874,16 @@ static void collect_changed_submodules_cb(struct diff_queue_struct *q,
if (!name)
continue;
- commits = submodule_commits(changed, name);
- oid_array_append(commits, &p->two->oid);
+ item = string_list_insert(changed, name);
+ if (item->util)
+ cs_data = item->util;
+ else {
+ item->util = xcalloc(1, sizeof(struct changed_submodule_data));
+ cs_data = item->util;
+ cs_data->super_oid = commit_oid;
+ cs_data->path = xstrdup(p->two->path);
+ }
+ oid_array_append(&cs_data->new_commits, &p->two->oid);
}
}
@@ -900,11 +930,12 @@ static void collect_changed_submodules(struct repository *r,
reset_revision_walk();
}
-static void free_submodules_oids(struct string_list *submodules)
+static void free_submodules_data(struct string_list *submodules)
{
struct string_list_item *item;
for_each_string_list_item(item, submodules)
- oid_array_clear((struct oid_array *) item->util);
+ changed_submodule_data_clear(item->util);
+
string_list_clear(submodules, 1);
}
@@ -925,6 +956,7 @@ struct has_commit_data {
struct repository *repo;
int result;
const char *path;
+ const struct object_id *super_oid;
};
static int check_has_commit(const struct object_id *oid, void *data)
@@ -933,9 +965,10 @@ static int check_has_commit(const struct object_id *oid, void *data)
struct repository subrepo;
enum object_type type;
- if (repo_submodule_init(&subrepo, cb->repo, cb->path, null_oid())) {
+ if (repo_submodule_init(&subrepo, cb->repo, cb->path, cb->super_oid)) {
cb->result = 0;
- goto cleanup;
+ /* subrepo failed to init, so don't clean it up. */
+ return 0;
}
type = oid_object_info(&subrepo, oid, NULL);
@@ -961,21 +994,15 @@ cleanup:
static int submodule_has_commits(struct repository *r,
const char *path,
+ const struct object_id *super_oid,
struct oid_array *commits)
{
- struct has_commit_data has_commit = { r, 1, path };
-
- /*
- * Perform a cheap, but incorrect check for the existence of 'commits'.
- * This is done by adding the submodule's object store to the in-core
- * object store, and then querying for each commit's existence. If we
- * do not have the commit object anywhere, there is no chance we have
- * it in the object store of the correct submodule and have it
- * reachable from a ref, so we can fail early without spawning rev-list
- * which is expensive.
- */
- if (add_submodule_odb(path))
- return 0;
+ struct has_commit_data has_commit = {
+ .repo = r,
+ .result = 1,
+ .path = path,
+ .super_oid = super_oid
+ };
oid_array_for_each_unique(commits, check_has_commit, &has_commit);
@@ -1010,7 +1037,7 @@ static int submodule_needs_pushing(struct repository *r,
const char *path,
struct oid_array *commits)
{
- if (!submodule_has_commits(r, path, commits))
+ if (!submodule_has_commits(r, path, null_oid(), commits))
/*
* NOTE: We do consider it safe to return "no" here. The
* correct answer would be "We do not know" instead of
@@ -1070,7 +1097,7 @@ int find_unpushed_submodules(struct repository *r,
collect_changed_submodules(r, &submodules, &argv);
for_each_string_list_item(name, &submodules) {
- struct oid_array *commits = name->util;
+ struct changed_submodule_data *cs_data = name->util;
const struct submodule *submodule;
const char *path = NULL;
@@ -1083,11 +1110,11 @@ int find_unpushed_submodules(struct repository *r,
if (!path)
continue;
- if (submodule_needs_pushing(r, path, commits))
+ if (submodule_needs_pushing(r, path, &cs_data->new_commits))
string_list_insert(needs_pushing, path);
}
- free_submodules_oids(&submodules);
+ free_submodules_data(&submodules);
strvec_clear(&argv);
return needs_pushing->nr;
@@ -1233,14 +1260,36 @@ void check_for_new_submodule_commits(struct object_id *oid)
oid_array_append(&ref_tips_after_fetch, oid);
}
+/*
+ * Returns 1 if there is at least one submodule gitdir in
+ * $GIT_DIR/modules and 0 otherwise. This follows
+ * submodule_name_to_gitdir(), which looks for submodules in
+ * $GIT_DIR/modules, not $GIT_COMMON_DIR.
+ *
+ * A submodule can be moved to $GIT_DIR/modules manually by running "git
+ * submodule absorbgitdirs", or it may be initialized there by "git
+ * submodule update".
+ */
+static int repo_has_absorbed_submodules(struct repository *r)
+{
+ int ret;
+ struct strbuf buf = STRBUF_INIT;
+
+ strbuf_repo_git_path(&buf, r, "modules/");
+ ret = file_exists(buf.buf) && !is_empty_dir(buf.buf);
+ strbuf_release(&buf);
+ return ret;
+}
+
static void calculate_changed_submodule_paths(struct repository *r,
struct string_list *changed_submodule_names)
{
struct strvec argv = STRVEC_INIT;
struct string_list_item *name;
- /* No need to check if there are no submodules configured */
- if (!submodule_from_path(r, NULL, NULL))
+ /* No need to check if no submodules would be fetched */
+ if (!submodule_from_path(r, NULL, NULL) &&
+ !repo_has_absorbed_submodules(r))
return;
strvec_push(&argv, "--"); /* argv[0] program name */
@@ -1257,7 +1306,7 @@ static void calculate_changed_submodule_paths(struct repository *r,
collect_changed_submodules(r, changed_submodule_names, &argv);
for_each_string_list_item(name, changed_submodule_names) {
- struct oid_array *commits = name->util;
+ struct changed_submodule_data *cs_data = name->util;
const struct submodule *submodule;
const char *path = NULL;
@@ -1270,8 +1319,8 @@ static void calculate_changed_submodule_paths(struct repository *r,
if (!path)
continue;
- if (submodule_has_commits(r, path, commits)) {
- oid_array_clear(commits);
+ if (submodule_has_commits(r, path, null_oid(), &cs_data->new_commits)) {
+ changed_submodule_data_clear(cs_data);
*name->string = '\0';
}
}
@@ -1308,12 +1357,21 @@ int submodule_touches_in_range(struct repository *r,
strvec_clear(&args);
- free_submodules_oids(&subs);
+ free_submodules_data(&subs);
return ret;
}
struct submodule_parallel_fetch {
- int count;
+ /*
+ * The index of the last index entry processed by
+ * get_fetch_task_from_index().
+ */
+ int index_count;
+ /*
+ * The index of the last string_list entry processed by
+ * get_fetch_task_from_changed().
+ */
+ int changed_count;
struct strvec args;
struct repository *r;
const char *prefix;
@@ -1322,7 +1380,16 @@ struct submodule_parallel_fetch {
int quiet;
int result;
+ /*
+ * Names of submodules that have new commits. Generated by
+ * walking the newly fetched superproject commits.
+ */
struct string_list changed_submodule_names;
+ /*
+ * Names of submodules that have already been processed. Lets us
+ * avoid fetching the same submodule more than once.
+ */
+ struct string_list seen_submodule_names;
/* Pending fetches by OIDs */
struct fetch_task **oid_fetch_tasks;
@@ -1333,6 +1400,7 @@ struct submodule_parallel_fetch {
#define SPF_INIT { \
.args = STRVEC_INIT, \
.changed_submodule_names = STRING_LIST_INIT_DUP, \
+ .seen_submodule_names = STRING_LIST_INIT_DUP, \
.submodules_with_errors = STRBUF_INIT, \
}
@@ -1369,6 +1437,8 @@ struct fetch_task {
struct repository *repo;
const struct submodule *sub;
unsigned free_sub : 1; /* Do we need to free the submodule? */
+ const char *default_argv; /* The default fetch mode. */
+ struct strvec git_args; /* Args for the child git process. */
struct oid_array *commits; /* Ensure these commits are fetched */
};
@@ -1394,31 +1464,6 @@ static const struct submodule *get_non_gitmodules_submodule(const char *path)
return (const struct submodule *) ret;
}
-static struct fetch_task *fetch_task_create(struct repository *r,
- const char *path)
-{
- struct fetch_task *task = xmalloc(sizeof(*task));
- memset(task, 0, sizeof(*task));
-
- task->sub = submodule_from_path(r, null_oid(), path);
- if (!task->sub) {
- /*
- * No entry in .gitmodules? Technically not a submodule,
- * but historically we supported repositories that happen to be
- * in-place where a gitlink is. Keep supporting them.
- */
- task->sub = get_non_gitmodules_submodule(path);
- if (!task->sub) {
- free(task);
- return NULL;
- }
-
- task->free_sub = 1;
- }
-
- return task;
-}
-
static void fetch_task_release(struct fetch_task *p)
{
if (p->free_sub)
@@ -1429,14 +1474,17 @@ static void fetch_task_release(struct fetch_task *p)
if (p->repo)
repo_clear(p->repo);
FREE_AND_NULL(p->repo);
+
+ strvec_clear(&p->git_args);
}
static struct repository *get_submodule_repo_for(struct repository *r,
- const char *path)
+ const char *path,
+ const struct object_id *treeish_name)
{
struct repository *ret = xmalloc(sizeof(*ret));
- if (repo_submodule_init(ret, r, path, null_oid())) {
+ if (repo_submodule_init(ret, r, path, treeish_name)) {
free(ret);
return NULL;
}
@@ -1444,67 +1492,83 @@ static struct repository *get_submodule_repo_for(struct repository *r,
return ret;
}
-static int get_next_submodule(struct child_process *cp,
- struct strbuf *err, void *data, void **task_cb)
+static struct fetch_task *fetch_task_create(struct submodule_parallel_fetch *spf,
+ const char *path,
+ const struct object_id *treeish_name)
{
- struct submodule_parallel_fetch *spf = data;
+ struct fetch_task *task = xmalloc(sizeof(*task));
+ memset(task, 0, sizeof(*task));
+
+ task->sub = submodule_from_path(spf->r, treeish_name, path);
+
+ if (!task->sub) {
+ /*
+ * No entry in .gitmodules? Technically not a submodule,
+ * but historically we supported repositories that happen to be
+ * in-place where a gitlink is. Keep supporting them.
+ */
+ task->sub = get_non_gitmodules_submodule(path);
+ if (!task->sub)
+ goto cleanup;
- for (; spf->count < spf->r->index->cache_nr; spf->count++) {
- const struct cache_entry *ce = spf->r->index->cache[spf->count];
- const char *default_argv;
+ task->free_sub = 1;
+ }
+
+ if (string_list_lookup(&spf->seen_submodule_names, task->sub->name))
+ goto cleanup;
+
+ switch (get_fetch_recurse_config(task->sub, spf))
+ {
+ default:
+ case RECURSE_SUBMODULES_DEFAULT:
+ case RECURSE_SUBMODULES_ON_DEMAND:
+ if (!task->sub ||
+ !string_list_lookup(
+ &spf->changed_submodule_names,
+ task->sub->name))
+ goto cleanup;
+ task->default_argv = "on-demand";
+ break;
+ case RECURSE_SUBMODULES_ON:
+ task->default_argv = "yes";
+ break;
+ case RECURSE_SUBMODULES_OFF:
+ goto cleanup;
+ }
+
+ task->repo = get_submodule_repo_for(spf->r, path, treeish_name);
+
+ return task;
+
+ cleanup:
+ fetch_task_release(task);
+ free(task);
+ return NULL;
+}
+
+static struct fetch_task *
+get_fetch_task_from_index(struct submodule_parallel_fetch *spf,
+ struct strbuf *err)
+{
+ for (; spf->index_count < spf->r->index->cache_nr; spf->index_count++) {
+ const struct cache_entry *ce =
+ spf->r->index->cache[spf->index_count];
struct fetch_task *task;
if (!S_ISGITLINK(ce->ce_mode))
continue;
- task = fetch_task_create(spf->r, ce->name);
+ task = fetch_task_create(spf, ce->name, null_oid());
if (!task)
continue;
- switch (get_fetch_recurse_config(task->sub, spf))
- {
- default:
- case RECURSE_SUBMODULES_DEFAULT:
- case RECURSE_SUBMODULES_ON_DEMAND:
- if (!task->sub ||
- !string_list_lookup(
- &spf->changed_submodule_names,
- task->sub->name))
- continue;
- default_argv = "on-demand";
- break;
- case RECURSE_SUBMODULES_ON:
- default_argv = "yes";
- break;
- case RECURSE_SUBMODULES_OFF:
- continue;
- }
-
- task->repo = get_submodule_repo_for(spf->r, task->sub->path);
if (task->repo) {
- struct strbuf submodule_prefix = STRBUF_INIT;
- child_process_init(cp);
- cp->dir = task->repo->gitdir;
- prepare_submodule_repo_env_in_gitdir(&cp->env_array);
- cp->git_cmd = 1;
if (!spf->quiet)
strbuf_addf(err, _("Fetching submodule %s%s\n"),
spf->prefix, ce->name);
- strvec_init(&cp->args);
- strvec_pushv(&cp->args, spf->args.v);
- strvec_push(&cp->args, default_argv);
- strvec_push(&cp->args, "--submodule-prefix");
-
- strbuf_addf(&submodule_prefix, "%s%s/",
- spf->prefix,
- task->sub->path);
- strvec_push(&cp->args, submodule_prefix.buf);
-
- spf->count++;
- *task_cb = task;
- strbuf_release(&submodule_prefix);
- return 1;
+ spf->index_count++;
+ return task;
} else {
struct strbuf empty_submodule_path = STRBUF_INIT;
@@ -1528,6 +1592,111 @@ static int get_next_submodule(struct child_process *cp,
strbuf_release(&empty_submodule_path);
}
}
+ return NULL;
+}
+
+static struct fetch_task *
+get_fetch_task_from_changed(struct submodule_parallel_fetch *spf,
+ struct strbuf *err)
+{
+ for (; spf->changed_count < spf->changed_submodule_names.nr;
+ spf->changed_count++) {
+ struct string_list_item item =
+ spf->changed_submodule_names.items[spf->changed_count];
+ struct changed_submodule_data *cs_data = item.util;
+ struct fetch_task *task;
+
+ if (!is_tree_submodule_active(spf->r, cs_data->super_oid,cs_data->path))
+ continue;
+
+ task = fetch_task_create(spf, cs_data->path,
+ cs_data->super_oid);
+ if (!task)
+ continue;
+
+ if (!task->repo) {
+ strbuf_addf(err, _("Could not access submodule '%s' at commit %s\n"),
+ cs_data->path,
+ find_unique_abbrev(cs_data->super_oid, DEFAULT_ABBREV));
+
+ fetch_task_release(task);
+ free(task);
+ continue;
+ }
+
+ if (!spf->quiet)
+ strbuf_addf(err,
+ _("Fetching submodule %s%s at commit %s\n"),
+ spf->prefix, task->sub->path,
+ find_unique_abbrev(cs_data->super_oid,
+ DEFAULT_ABBREV));
+
+ spf->changed_count++;
+ /*
+ * NEEDSWORK: Submodules set/unset a value for
+ * core.worktree when they are populated/unpopulated by
+ * "git checkout" (and similar commands, see
+ * submodule_move_head() and
+ * connect_work_tree_and_git_dir()), but if the
+ * submodule is unpopulated in another way (e.g. "git
+ * rm", "rm -r"), core.worktree will still be set even
+ * though the directory doesn't exist, and the child
+ * process will crash while trying to chdir into the
+ * nonexistent directory.
+ *
+ * In this case, we know that the submodule has no
+ * working tree, so we can work around this by
+ * setting "--work-tree=." (--bare does not work because
+ * worktree settings take precedence over bare-ness).
+ * However, this is not necessarily true in other cases,
+ * so a generalized solution is still necessary.
+ *
+ * Possible solutions:
+ * - teach "git [add|rm]" to unset core.worktree and
+ * discourage users from removing submodules without
+ * using a Git command.
+ * - teach submodule child processes to ignore stale
+ * core.worktree values.
+ */
+ strvec_push(&task->git_args, "--work-tree=.");
+ return task;
+ }
+ return NULL;
+}
+
+static int get_next_submodule(struct child_process *cp, struct strbuf *err,
+ void *data, void **task_cb)
+{
+ struct submodule_parallel_fetch *spf = data;
+ struct fetch_task *task =
+ get_fetch_task_from_index(spf, err);
+ if (!task)
+ task = get_fetch_task_from_changed(spf, err);
+
+ if (task) {
+ struct strbuf submodule_prefix = STRBUF_INIT;
+
+ child_process_init(cp);
+ cp->dir = task->repo->gitdir;
+ prepare_submodule_repo_env_in_gitdir(&cp->env_array);
+ cp->git_cmd = 1;
+ strvec_init(&cp->args);
+ if (task->git_args.nr)
+ strvec_pushv(&cp->args, task->git_args.v);
+ strvec_pushv(&cp->args, spf->args.v);
+ strvec_push(&cp->args, task->default_argv);
+ strvec_push(&cp->args, "--submodule-prefix");
+
+ strbuf_addf(&submodule_prefix, "%s%s/",
+ spf->prefix,
+ task->sub->path);
+ strvec_push(&cp->args, submodule_prefix.buf);
+ *task_cb = task;
+
+ strbuf_release(&submodule_prefix);
+ string_list_insert(&spf->seen_submodule_names, task->sub->name);
+ return 1;
+ }
if (spf->oid_fetch_tasks_nr) {
struct fetch_task *task =
@@ -1590,7 +1759,7 @@ static int fetch_finish(int retvalue, struct strbuf *err,
struct fetch_task *task = task_cb;
struct string_list_item *it;
- struct oid_array *commits;
+ struct changed_submodule_data *cs_data;
if (!task || !task->sub)
BUG("callback cookie bogus");
@@ -1618,14 +1787,14 @@ static int fetch_finish(int retvalue, struct strbuf *err,
/* Could be an unchanged submodule, not contained in the list */
goto out;
- commits = it->util;
- oid_array_filter(commits,
+ cs_data = it->util;
+ oid_array_filter(&cs_data->new_commits,
commit_missing_in_sub,
task->repo);
/* Are there commits we want, but do not exist? */
- if (commits->nr) {
- task->commits = commits;
+ if (cs_data->new_commits.nr) {
+ task->commits = &cs_data->new_commits;
ALLOC_GROW(spf->oid_fetch_tasks,
spf->oid_fetch_tasks_nr + 1,
spf->oid_fetch_tasks_alloc);
@@ -1640,11 +1809,11 @@ out:
return 0;
}
-int fetch_populated_submodules(struct repository *r,
- const struct strvec *options,
- const char *prefix, int command_line_option,
- int default_option,
- int quiet, int max_parallel_jobs)
+int fetch_submodules(struct repository *r,
+ const struct strvec *options,
+ const char *prefix, int command_line_option,
+ int default_option,
+ int quiet, int max_parallel_jobs)
{
int i;
struct submodule_parallel_fetch spf = SPF_INIT;
@@ -1683,7 +1852,7 @@ int fetch_populated_submodules(struct repository *r,
strvec_clear(&spf.args);
out:
- free_submodules_oids(&spf.changed_submodule_names);
+ free_submodules_data(&spf.changed_submodule_names);
return spf.result;
}
diff --git a/submodule.h b/submodule.h
index 6bd2c99fd9..437bc96e05 100644
--- a/submodule.h
+++ b/submodule.h
@@ -13,7 +13,7 @@ struct repository;
struct string_list;
struct strbuf;
-enum {
+enum submodule_recurse_mode {
RECURSE_SUBMODULES_ONLY = -5,
RECURSE_SUBMODULES_CHECK = -4,
RECURSE_SUBMODULES_ERROR = -3,
@@ -54,6 +54,9 @@ int git_default_submodule_config(const char *var, const char *value, void *cb);
struct option;
int option_parse_recurse_submodules_worktree_updater(const struct option *opt,
const char *arg, int unset);
+int is_tree_submodule_active(struct repository *repo,
+ const struct object_id *treeish_name,
+ const char *path);
int is_submodule_active(struct repository *repo, const char *path);
/*
* Determine if a submodule has been populated at a given 'path' by checking if
@@ -85,12 +88,12 @@ int should_update_submodules(void);
*/
const struct submodule *submodule_from_ce(const struct cache_entry *ce);
void check_for_new_submodule_commits(struct object_id *oid);
-int fetch_populated_submodules(struct repository *r,
- const struct strvec *options,
- const char *prefix,
- int command_line_option,
- int default_option,
- int quiet, int max_parallel_jobs);
+int fetch_submodules(struct repository *r,
+ const struct strvec *options,
+ const char *prefix,
+ int command_line_option,
+ int default_option,
+ int quiet, int max_parallel_jobs);
unsigned is_submodule_modified(const char *path, int ignore_untracked);
int submodule_uses_gitfile(const char *path);
@@ -100,12 +103,11 @@ int submodule_uses_gitfile(const char *path);
int bad_to_remove_submodule(const char *path, unsigned flags);
/*
- * Call add_submodule_odb() to add the submodule at the given path to a list.
- * When register_all_submodule_odb_as_alternates() is called, the object stores
- * of all submodules in that list will be added as alternates in
- * the_repository.
+ * Call add_submodule_odb_by_path() to add the submodule at the given
+ * path to a list. When register_all_submodule_odb_as_alternates() is
+ * called, the object stores of all submodules in that list will be
+ * added as alternates in the_repository.
*/
-int add_submodule_odb(const char *path);
void add_submodule_odb_by_path(const char *path);
int register_all_submodule_odb_as_alternates(void);
diff --git a/t/Makefile b/t/Makefile
index 46cd5fc527..056ce55dcc 100644
--- a/t/Makefile
+++ b/t/Makefile
@@ -1,3 +1,6 @@
+# Import tree-wide shared Makefile behavior and libraries
+include ../shared.mak
+
# Run tests
#
# Copyright (c) 2005 Junio C Hamano
diff --git a/t/README b/t/README
index f48e0542cd..9ffea1d314 100644
--- a/t/README
+++ b/t/README
@@ -405,8 +405,8 @@ every 'git commit-graph write', as if the `--changed-paths` option was
passed in.
GIT_TEST_FSMONITOR=$PWD/t7519/fsmonitor-all exercises the fsmonitor
-code path for utilizing a file system monitor to speed up detecting
-new or changed files.
+code paths for utilizing a (hook based) file system monitor to speed up
+detecting new or changed files.
GIT_TEST_INDEX_VERSION=<n> exercises the index read/write code path
for the index version specified. Can be set to any valid version
diff --git a/t/annotate-tests.sh b/t/annotate-tests.sh
index 09e86f9ba0..cc01d89150 100644
--- a/t/annotate-tests.sh
+++ b/t/annotate-tests.sh
@@ -56,6 +56,10 @@ check_count () {
' "$@" <actual
}
+get_progress_result () {
+ tr '\015' '\012' | tail -n 1
+}
+
test_expect_success 'setup A lines' '
echo "1A quick brown fox jumps over the" >file &&
echo "lazy dog" >>file &&
@@ -604,3 +608,39 @@ test_expect_success 'blame -L X,-N (non-numeric N)' '
test_expect_success 'blame -L ,^/RE/' '
test_must_fail $PROG -L1,^/99/ file
'
+
+test_expect_success 'blame progress on a full file' '
+ cat >expect <<-\EOF &&
+ Blaming lines: 100% (10/10), done.
+ EOF
+
+ GIT_PROGRESS_DELAY=0 \
+ git blame --progress hello.c 2>stderr &&
+
+ get_progress_result <stderr >actual &&
+ test_cmp expect actual
+'
+
+test_expect_success 'blame progress on a single range' '
+ cat >expect <<-\EOF &&
+ Blaming lines: 100% (4/4), done.
+ EOF
+
+ GIT_PROGRESS_DELAY=0 \
+ git blame --progress -L 3,6 hello.c 2>stderr &&
+
+ get_progress_result <stderr >actual &&
+ test_cmp expect actual
+'
+
+test_expect_success 'blame progress on multiple ranges' '
+ cat >expect <<-\EOF &&
+ Blaming lines: 100% (7/7), done.
+ EOF
+
+ GIT_PROGRESS_DELAY=0 \
+ git blame --progress -L 3,6 -L 8,10 hello.c 2>stderr &&
+
+ get_progress_result <stderr >actual &&
+ test_cmp expect actual
+'
diff --git a/t/helper/test-chmtime.c b/t/helper/test-chmtime.c
index 524b55ca49..dc28890a18 100644
--- a/t/helper/test-chmtime.c
+++ b/t/helper/test-chmtime.c
@@ -134,6 +134,21 @@ int cmd__chmtime(int argc, const char **argv)
}
if (utb.modtime != sb.st_mtime && utime(argv[i], &utb) < 0) {
+#ifdef GIT_WINDOWS_NATIVE
+ if (S_ISDIR(sb.st_mode)) {
+ /*
+ * NEEDSWORK: The Windows version of `utime()`
+ * (aka `mingw_utime()`) does not correctly
+ * handle directory arguments, since it uses
+ * `_wopen()`. Ignore it for now since this
+ * is just a test.
+ */
+ fprintf(stderr,
+ ("Failed to modify time on directory %s. "
+ "Skipping\n"), argv[i]);
+ continue;
+ }
+#endif
fprintf(stderr, "Failed to modify time on %s: %s\n",
argv[i], strerror(errno));
return 1;
diff --git a/t/helper/test-csprng.c b/t/helper/test-csprng.c
new file mode 100644
index 0000000000..65d14973c5
--- /dev/null
+++ b/t/helper/test-csprng.c
@@ -0,0 +1,29 @@
+#include "test-tool.h"
+#include "git-compat-util.h"
+
+
+int cmd__csprng(int argc, const char **argv)
+{
+ unsigned long count;
+ unsigned char buf[1024];
+
+ if (argc > 2) {
+ fprintf(stderr, "usage: %s [<size>]\n", argv[0]);
+ return 2;
+ }
+
+ count = (argc == 2) ? strtoul(argv[1], NULL, 0) : -1L;
+
+ while (count) {
+ unsigned long chunk = count < sizeof(buf) ? count : sizeof(buf);
+ if (csprng_bytes(buf, chunk) < 0) {
+ perror("failed to read");
+ return 5;
+ }
+ if (fwrite(buf, chunk, 1, stdout) != chunk)
+ return 1;
+ count -= chunk;
+ }
+
+ return 0;
+}
diff --git a/t/helper/test-date.c b/t/helper/test-date.c
index 099eff4f0f..45951b1df8 100644
--- a/t/helper/test-date.c
+++ b/t/helper/test-date.c
@@ -1,5 +1,6 @@
#include "test-tool.h"
#include "cache.h"
+#include "date.h"
static const char *usage_msg = "\n"
" test-tool date relative [time_t]...\n"
@@ -34,7 +35,7 @@ static void show_human_dates(const char **argv)
static void show_dates(const char **argv, const char *format)
{
- struct date_mode mode;
+ struct date_mode mode = DATE_MODE_INIT;
parse_date_format(format, &mode);
for (; *argv; argv++) {
@@ -53,6 +54,8 @@ static void show_dates(const char **argv, const char *format)
printf("%s -> %s\n", *argv, show_date(t, tz, &mode));
}
+
+ date_mode_release(&mode);
}
static void parse_dates(const char **argv)
diff --git a/t/helper/test-fsmonitor-client.c b/t/helper/test-fsmonitor-client.c
new file mode 100644
index 0000000000..3062c8a3c2
--- /dev/null
+++ b/t/helper/test-fsmonitor-client.c
@@ -0,0 +1,116 @@
+/*
+ * test-fsmonitor-client.c: client code to send commands/requests to
+ * a `git fsmonitor--daemon` daemon.
+ */
+
+#include "test-tool.h"
+#include "cache.h"
+#include "parse-options.h"
+#include "fsmonitor-ipc.h"
+
+#ifndef HAVE_FSMONITOR_DAEMON_BACKEND
+int cmd__fsmonitor_client(int argc, const char **argv)
+{
+ die("fsmonitor--daemon not available on this platform");
+}
+#else
+
+/*
+ * Read the `.git/index` to get the last token written to the
+ * FSMonitor Index Extension.
+ */
+static const char *get_token_from_index(void)
+{
+ struct index_state *istate = the_repository->index;
+
+ if (do_read_index(istate, the_repository->index_file, 0) < 0)
+ die("unable to read index file");
+ if (!istate->fsmonitor_last_update)
+ die("index file does not have fsmonitor extension");
+
+ return istate->fsmonitor_last_update;
+}
+
+/*
+ * Send an IPC query to a `git-fsmonitor--daemon` daemon and
+ * ask for the changes since the given token or from the last
+ * token in the index extension.
+ *
+ * This will implicitly start a daemon process if necessary. The
+ * daemon process will persist after we exit.
+ */
+static int do_send_query(const char *token)
+{
+ struct strbuf answer = STRBUF_INIT;
+ int ret;
+
+ if (!token || !*token)
+ token = get_token_from_index();
+
+ ret = fsmonitor_ipc__send_query(token, &answer);
+ if (ret < 0)
+ die("could not query fsmonitor--daemon");
+
+ write_in_full(1, answer.buf, answer.len);
+ strbuf_release(&answer);
+
+ return 0;
+}
+
+/*
+ * Send a "flush" command to the `git-fsmonitor--daemon` (if running)
+ * and tell it to flush its cache.
+ *
+ * This feature is primarily used by the test suite to simulate a loss of
+ * sync with the filesystem where we miss kernel events.
+ */
+static int do_send_flush(void)
+{
+ struct strbuf answer = STRBUF_INIT;
+ int ret;
+
+ ret = fsmonitor_ipc__send_command("flush", &answer);
+ if (ret)
+ return ret;
+
+ write_in_full(1, answer.buf, answer.len);
+ strbuf_release(&answer);
+
+ return 0;
+}
+
+int cmd__fsmonitor_client(int argc, const char **argv)
+{
+ const char *subcmd;
+ const char *token = NULL;
+
+ const char * const fsmonitor_client_usage[] = {
+ "test-tool fsmonitor-client query [<token>]",
+ "test-tool fsmonitor-client flush",
+ NULL,
+ };
+
+ struct option options[] = {
+ OPT_STRING(0, "token", &token, "token",
+ "command token to send to the server"),
+ OPT_END()
+ };
+
+ argc = parse_options(argc, argv, NULL, options, fsmonitor_client_usage, 0);
+
+ if (argc != 1)
+ usage_with_options(fsmonitor_client_usage, options);
+
+ subcmd = argv[0];
+
+ setup_git_directory();
+
+ if (!strcmp(subcmd, "query"))
+ return !!do_send_query(token);
+
+ if (!strcmp(subcmd, "flush"))
+ return !!do_send_flush();
+
+ die("Unhandled subcommand: '%s'", subcmd);
+}
+#endif
diff --git a/t/helper/test-progress.c b/t/helper/test-progress.c
index 5d05cbe789..6cc9735b60 100644
--- a/t/helper/test-progress.c
+++ b/t/helper/test-progress.c
@@ -3,6 +3,9 @@
*
* Reads instructions from standard input, one instruction per line:
*
+ * "start <total>[ <title>]" - Call start_progress(title, total),
+ * Uses the default title of "Working hard"
+ * if the " <title>" is omitted.
* "progress <items>" - Call display_progress() with the given item count
* as parameter.
* "throughput <bytes> <millis> - Call display_throughput() with the given
@@ -10,6 +13,7 @@
* specify the time elapsed since the
* start_progress() call.
* "update" - Set the 'progress_update' flag.
+ * "stop" - Call stop_progress().
*
* See 't0500-progress-display.sh' for examples.
*/
@@ -19,34 +23,50 @@
#include "parse-options.h"
#include "progress.h"
#include "strbuf.h"
+#include "string-list.h"
int cmd__progress(int argc, const char **argv)
{
- int total = 0;
- const char *title;
+ const char *const default_title = "Working hard";
+ struct string_list titles = STRING_LIST_INIT_DUP;
struct strbuf line = STRBUF_INIT;
- struct progress *progress;
+ struct progress *progress = NULL;
const char *usage[] = {
- "test-tool progress [--total=<n>] <progress-title>",
+ "test-tool progress <stdin",
NULL
};
struct option options[] = {
- OPT_INTEGER(0, "total", &total, "total number of items"),
OPT_END(),
};
argc = parse_options(argc, argv, NULL, options, usage, 0);
- if (argc != 1)
- die("need a title for the progress output");
- title = argv[0];
+ if (argc)
+ usage_with_options(usage, options);
progress_testing = 1;
- progress = start_progress(title, total);
while (strbuf_getline(&line, stdin) != EOF) {
char *end;
- if (skip_prefix(line.buf, "progress ", (const char **) &end)) {
+ if (skip_prefix(line.buf, "start ", (const char **) &end)) {
+ uint64_t total = strtoull(end, &end, 10);
+ const char *title;
+
+ /*
+ * We can't use "end + 1" as an argument to
+ * start_progress(), it doesn't xstrdup() its
+ * "title" argument. We need to hold onto a
+ * valid "char *" for it until the end.
+ */
+ if (!*end)
+ title = default_title;
+ else if (*end == ' ')
+ title = string_list_insert(&titles, end + 1)->string;
+ else
+ die("invalid input: '%s'\n", line.buf);
+
+ progress = start_progress(title, total);
+ } else if (skip_prefix(line.buf, "progress ", (const char **) &end)) {
uint64_t item_count = strtoull(end, &end, 10);
if (*end != '\0')
die("invalid input: '%s'\n", line.buf);
@@ -63,12 +83,16 @@ int cmd__progress(int argc, const char **argv)
die("invalid input: '%s'\n", line.buf);
progress_test_ns = test_ms * 1000 * 1000;
display_throughput(progress, byte_count);
- } else if (!strcmp(line.buf, "update"))
+ } else if (!strcmp(line.buf, "update")) {
progress_test_force_update();
- else
+ } else if (!strcmp(line.buf, "stop")) {
+ stop_progress(&progress);
+ } else {
die("invalid input: '%s'\n", line.buf);
+ }
}
- stop_progress(&progress);
+ strbuf_release(&line);
+ string_list_clear(&titles, 0);
return 0;
}
diff --git a/t/helper/test-read-graph.c b/t/helper/test-read-graph.c
index 75927b2c81..98b73bb8f2 100644
--- a/t/helper/test-read-graph.c
+++ b/t/helper/test-read-graph.c
@@ -3,6 +3,7 @@
#include "commit-graph.h"
#include "repository.h"
#include "object-store.h"
+#include "bloom.h"
int cmd__read_graph(int argc, const char **argv)
{
@@ -45,6 +46,18 @@ int cmd__read_graph(int argc, const char **argv)
printf(" bloom_data");
printf("\n");
+ printf("options:");
+ if (graph->bloom_filter_settings)
+ printf(" bloom(%"PRIu32",%"PRIu32",%"PRIu32")",
+ graph->bloom_filter_settings->hash_version,
+ graph->bloom_filter_settings->bits_per_entry,
+ graph->bloom_filter_settings->num_hashes);
+ if (graph->read_generation_data)
+ printf(" read_generation_data");
+ if (graph->topo_levels)
+ printf(" topo_levels");
+ printf("\n");
+
UNLEAK(graph);
return 0;
diff --git a/t/helper/test-ref-store.c b/t/helper/test-ref-store.c
index 3e4ddaee70..9646d85fc8 100644
--- a/t/helper/test-ref-store.c
+++ b/t/helper/test-ref-store.c
@@ -180,10 +180,9 @@ static int cmd_resolve_ref(struct ref_store *refs, const char **argv)
int resolve_flags = arg_flags(*argv++, "resolve-flags", empty_flags);
int flags;
const char *ref;
- int ignore_errno;
ref = refs_resolve_ref_unsafe(refs, refname, resolve_flags,
- &oid, &flags, &ignore_errno);
+ &oid, &flags);
printf("%s %s 0x%x\n", oid_to_hex(&oid), ref ? ref : "(null)", flags);
return ref ? 0 : 1;
}
diff --git a/t/helper/test-reftable.c b/t/helper/test-reftable.c
index 26b03d7b78..1f0a28cbb6 100644
--- a/t/helper/test-reftable.c
+++ b/t/helper/test-reftable.c
@@ -3,15 +3,16 @@
int cmd__reftable(int argc, const char **argv)
{
+ /* test from simple to complex. */
basics_test_main(argc, argv);
+ record_test_main(argc, argv);
block_test_main(argc, argv);
- merged_test_main(argc, argv);
+ tree_test_main(argc, argv);
pq_test_main(argc, argv);
- record_test_main(argc, argv);
- refname_test_main(argc, argv);
readwrite_test_main(argc, argv);
+ merged_test_main(argc, argv);
stack_test_main(argc, argv);
- tree_test_main(argc, argv);
+ refname_test_main(argc, argv);
return 0;
}
diff --git a/t/helper/test-run-command.c b/t/helper/test-run-command.c
index 913775a14b..f3b90aa834 100644
--- a/t/helper/test-run-command.c
+++ b/t/helper/test-run-command.c
@@ -19,7 +19,6 @@
#include "thread-utils.h"
#include "wildmatch.h"
#include "gettext.h"
-#include "parse-options.h"
static int number_callbacks;
static int parallel_next(struct child_process *cp,
@@ -180,15 +179,16 @@ static int testsuite(int argc, const char **argv)
if (max_jobs > suite.tests.nr)
max_jobs = suite.tests.nr;
- fprintf(stderr, "Running %d tests (%d at a time)\n",
- suite.tests.nr, max_jobs);
+ fprintf(stderr, "Running %"PRIuMAX" tests (%d at a time)\n",
+ (uintmax_t)suite.tests.nr, max_jobs);
ret = run_processes_parallel(max_jobs, next_test, test_failed,
test_finished, &suite);
if (suite.failed.nr > 0) {
ret = 1;
- fprintf(stderr, "%d tests failed:\n\n", suite.failed.nr);
+ fprintf(stderr, "%"PRIuMAX" tests failed:\n\n",
+ (uintmax_t)suite.failed.nr);
for (i = 0; i < suite.failed.nr; i++)
fprintf(stderr, "\t%s\n", suite.failed.items[i].string);
}
@@ -221,9 +221,9 @@ static int quote_stress_test(int argc, const char **argv)
struct strbuf out = STRBUF_INIT;
struct strvec args = STRVEC_INIT;
struct option options[] = {
- OPT_INTEGER('n', "trials", &trials, "Number of trials"),
- OPT_INTEGER('s', "skip", &skip, "Skip <n> trials"),
- OPT_BOOL('m', "msys2", &msys2, "Test quoting for MSYS2's sh"),
+ OPT_INTEGER('n', "trials", &trials, "number of trials"),
+ OPT_INTEGER('s', "skip", &skip, "skip <n> trials"),
+ OPT_BOOL('m', "msys2", &msys2, "test quoting for MSYS2's sh"),
OPT_END()
};
const char * const usage[] = {
diff --git a/t/helper/test-tool.c b/t/helper/test-tool.c
index 338a57b104..0424f7adf5 100644
--- a/t/helper/test-tool.c
+++ b/t/helper/test-tool.c
@@ -20,6 +20,7 @@ static struct test_cmd cmds[] = {
{ "chmtime", cmd__chmtime },
{ "config", cmd__config },
{ "crontab", cmd__crontab },
+ { "csprng", cmd__csprng },
{ "ctype", cmd__ctype },
{ "date", cmd__date },
{ "delta", cmd__delta },
@@ -31,6 +32,7 @@ static struct test_cmd cmds[] = {
{ "dump-untracked-cache", cmd__dump_untracked_cache },
{ "example-decorate", cmd__example_decorate },
{ "fast-rebase", cmd__fast_rebase },
+ { "fsmonitor-client", cmd__fsmonitor_client },
{ "genrandom", cmd__genrandom },
{ "genzeros", cmd__genzeros },
{ "getcwd", cmd__getcwd },
diff --git a/t/helper/test-tool.h b/t/helper/test-tool.h
index 48cee1f4a2..c876e8246f 100644
--- a/t/helper/test-tool.h
+++ b/t/helper/test-tool.h
@@ -10,6 +10,7 @@ int cmd__bloom(int argc, const char **argv);
int cmd__chmtime(int argc, const char **argv);
int cmd__config(int argc, const char **argv);
int cmd__crontab(int argc, const char **argv);
+int cmd__csprng(int argc, const char **argv);
int cmd__ctype(int argc, const char **argv);
int cmd__date(int argc, const char **argv);
int cmd__delta(int argc, const char **argv);
@@ -22,6 +23,7 @@ int cmd__dump_untracked_cache(int argc, const char **argv);
int cmd__dump_reftable(int argc, const char **argv);
int cmd__example_decorate(int argc, const char **argv);
int cmd__fast_rebase(int argc, const char **argv);
+int cmd__fsmonitor_client(int argc, const char **argv);
int cmd__genrandom(int argc, const char **argv);
int cmd__genzeros(int argc, const char **argv);
int cmd__getcwd(int argc, const char **argv);
diff --git a/t/interop/Makefile b/t/interop/Makefile
index 31a4bbc716..6911c2915a 100644
--- a/t/interop/Makefile
+++ b/t/interop/Makefile
@@ -1,3 +1,6 @@
+# Import tree-wide shared Makefile behavior and libraries
+include ../../shared.mak
+
-include ../../config.mak
export GIT_TEST_OPTIONS
diff --git a/t/lib-bitmap.sh b/t/lib-bitmap.sh
index 21d0392dda..a95537e759 100644
--- a/t/lib-bitmap.sh
+++ b/t/lib-bitmap.sh
@@ -1,6 +1,9 @@
# Helpers for scripts testing bitmap functionality; see t5310 for
# example usage.
+objdir=.git/objects
+midx=$objdir/pack/multi-pack-index
+
# Compare a file containing rev-list bitmap traversal output to its non-bitmap
# counterpart. You can't just use test_cmp for this, because the two produce
# subtly different output:
@@ -264,3 +267,185 @@ have_delta () {
midx_checksum () {
test-tool read-midx --checksum "$1"
}
+
+# midx_pack_source <obj>
+midx_pack_source () {
+ test-tool read-midx --show-objects .git/objects | grep "^$1 " | cut -f2
+}
+
+test_rev_exists () {
+ commit="$1"
+ kind="$2"
+
+ test_expect_success "reverse index exists ($kind)" '
+ GIT_TRACE2_EVENT=$(pwd)/event.trace \
+ git rev-list --test-bitmap "$commit" &&
+
+ if test "rev" = "$kind"
+ then
+ test_path_is_file $midx-$(midx_checksum $objdir).rev
+ fi &&
+ grep "\"category\":\"load_midx_revindex\",\"key\":\"source\",\"value\":\"$kind\"" event.trace
+ '
+}
+
+midx_bitmap_core () {
+ rev_kind="${1:-midx}"
+
+ setup_bitmap_history
+
+ test_expect_success 'create single-pack midx with bitmaps' '
+ git repack -ad &&
+ git multi-pack-index write --bitmap &&
+ test_path_is_file $midx &&
+ test_path_is_file $midx-$(midx_checksum $objdir).bitmap
+ '
+
+ test_rev_exists HEAD "$rev_kind"
+
+ basic_bitmap_tests
+
+ test_expect_success 'create new additional packs' '
+ for i in $(test_seq 1 16)
+ do
+ test_commit "$i" &&
+ git repack -d || return 1
+ done &&
+
+ git checkout -b other2 HEAD~8 &&
+ for i in $(test_seq 1 8)
+ do
+ test_commit "side-$i" &&
+ git repack -d || return 1
+ done &&
+ git checkout second
+ '
+
+ test_expect_success 'create multi-pack midx with bitmaps' '
+ git multi-pack-index write --bitmap &&
+
+ ls $objdir/pack/pack-*.pack >packs &&
+ test_line_count = 25 packs &&
+
+ test_path_is_file $midx &&
+ test_path_is_file $midx-$(midx_checksum $objdir).bitmap
+ '
+
+ test_rev_exists HEAD "$rev_kind"
+
+ basic_bitmap_tests
+
+ test_expect_success '--no-bitmap is respected when bitmaps exist' '
+ git multi-pack-index write --bitmap &&
+
+ test_commit respect--no-bitmap &&
+ git repack -d &&
+
+ test_path_is_file $midx &&
+ test_path_is_file $midx-$(midx_checksum $objdir).bitmap &&
+
+ git multi-pack-index write --no-bitmap &&
+
+ test_path_is_file $midx &&
+ test_path_is_missing $midx-$(midx_checksum $objdir).bitmap &&
+ test_path_is_missing $midx-$(midx_checksum $objdir).rev
+ '
+
+ test_expect_success 'setup midx with base from later pack' '
+ # Write a and b so that "a" is a delta on top of base "b", since Git
+ # prefers to delete contents out of a base rather than add to a shorter
+ # object.
+ test_seq 1 128 >a &&
+ test_seq 1 130 >b &&
+
+ git add a b &&
+ git commit -m "initial commit" &&
+
+ a=$(git rev-parse HEAD:a) &&
+ b=$(git rev-parse HEAD:b) &&
+
+ # In the first pack, "a" is stored as a delta to "b".
+ p1=$(git pack-objects .git/objects/pack/pack <<-EOF
+ $a
+ $b
+ EOF
+ ) &&
+
+ # In the second pack, "a" is missing, and "b" is not a delta nor base to
+ # any other object.
+ p2=$(git pack-objects .git/objects/pack/pack <<-EOF
+ $b
+ $(git rev-parse HEAD)
+ $(git rev-parse HEAD^{tree})
+ EOF
+ ) &&
+
+ git prune-packed &&
+ # Use the second pack as the preferred source, so that "b" occurs
+ # earlier in the MIDX object order, rendering "a" unusable for pack
+ # reuse.
+ git multi-pack-index write --bitmap --preferred-pack=pack-$p2.idx &&
+
+ have_delta $a $b &&
+ test $(midx_pack_source $a) != $(midx_pack_source $b)
+ '
+
+ rev_list_tests 'full bitmap with backwards delta'
+
+ test_expect_success 'clone with bitmaps enabled' '
+ git clone --no-local --bare . clone-reverse-delta.git &&
+ test_when_finished "rm -fr clone-reverse-delta.git" &&
+
+ git rev-parse HEAD >expect &&
+ git --git-dir=clone-reverse-delta.git rev-parse HEAD >actual &&
+ test_cmp expect actual
+ '
+
+ test_expect_success 'changing the preferred pack does not corrupt bitmaps' '
+ rm -fr repo &&
+ git init repo &&
+ test_when_finished "rm -fr repo" &&
+ (
+ cd repo &&
+
+ test_commit A &&
+ test_commit B &&
+
+ git rev-list --objects --no-object-names HEAD^ >A.objects &&
+ git rev-list --objects --no-object-names HEAD^.. >B.objects &&
+
+ A=$(git pack-objects $objdir/pack/pack <A.objects) &&
+ B=$(git pack-objects $objdir/pack/pack <B.objects) &&
+
+ cat >indexes <<-EOF &&
+ pack-$A.idx
+ pack-$B.idx
+ EOF
+
+ git multi-pack-index write --bitmap --stdin-packs \
+ --preferred-pack=pack-$A.pack <indexes &&
+ git rev-list --test-bitmap A &&
+
+ git multi-pack-index write --bitmap --stdin-packs \
+ --preferred-pack=pack-$B.pack <indexes &&
+ git rev-list --test-bitmap A
+ )
+ '
+}
+
+midx_bitmap_partial_tests () {
+ rev_kind="${1:-midx}"
+
+ test_expect_success 'setup partial bitmaps' '
+ test_commit packed &&
+ git repack &&
+ test_commit loose &&
+ git multi-pack-index write --bitmap 2>err &&
+ test_path_is_file $midx &&
+ test_path_is_file $midx-$(midx_checksum $objdir).bitmap
+ '
+
+ test_rev_exists HEAD~ "$rev_kind"
+
+ basic_bitmap_tests HEAD~
+}
diff --git a/t/lib-commit-graph.sh b/t/lib-commit-graph.sh
new file mode 100755
index 0000000000..5d79e1a4e9
--- /dev/null
+++ b/t/lib-commit-graph.sh
@@ -0,0 +1,58 @@
+#!/bin/sh
+
+# Helper functions for testing commit-graphs.
+
+# Initialize OID cache with oid_version
+test_oid_cache <<-EOF
+oid_version sha1:1
+oid_version sha256:2
+EOF
+
+graph_git_two_modes() {
+ git -c core.commitGraph=true $1 >output &&
+ git -c core.commitGraph=false $1 >expect &&
+ test_cmp expect output
+}
+
+graph_git_behavior() {
+ MSG=$1
+ DIR=$2
+ BRANCH=$3
+ COMPARE=$4
+ test_expect_success "check normal git operations: $MSG" '
+ cd "$TRASH_DIRECTORY/$DIR" &&
+ graph_git_two_modes "log --oneline $BRANCH" &&
+ graph_git_two_modes "log --topo-order $BRANCH" &&
+ graph_git_two_modes "log --graph $COMPARE..$BRANCH" &&
+ graph_git_two_modes "branch -vv" &&
+ graph_git_two_modes "merge-base -a $BRANCH $COMPARE"
+ '
+}
+
+graph_read_expect() {
+ OPTIONAL=""
+ NUM_CHUNKS=3
+ if test -n "$2"
+ then
+ OPTIONAL=" $2"
+ NUM_CHUNKS=$((3 + $(echo "$2" | wc -w)))
+ fi
+ GENERATION_VERSION=2
+ if test -n "$3"
+ then
+ GENERATION_VERSION=$3
+ fi
+ OPTIONS=
+ if test $GENERATION_VERSION -gt 1
+ then
+ OPTIONS=" read_generation_data"
+ fi
+ cat >expect <<- EOF
+ header: 43475048 1 $(test_oid oid_version) $NUM_CHUNKS 0
+ num_commits: $1
+ chunks: oid_fanout oid_lookup commit_metadata$OPTIONAL
+ options:$OPTIONS
+ EOF
+ test-tool read-graph >output &&
+ test_cmp expect output
+}
diff --git a/t/lib-gpg.sh b/t/lib-gpg.sh
index 3e7ee1386a..114785586a 100644
--- a/t/lib-gpg.sh
+++ b/t/lib-gpg.sh
@@ -40,7 +40,7 @@ test_lazy_prereq GPG '
# > lib-gpg/ownertrust
mkdir "$GNUPGHOME" &&
chmod 0700 "$GNUPGHOME" &&
- (gpgconf --kill gpg-agent || : ) &&
+ (gpgconf --kill all || : ) &&
gpg --homedir "${GNUPGHOME}" --import \
"$TEST_DIRECTORY"/lib-gpg/keyring.gpg &&
gpg --homedir "${GNUPGHOME}" --import-ownertrust \
@@ -72,12 +72,11 @@ test_lazy_prereq GPGSM '
--passphrase-fd 0 --pinentry-mode loopback \
--import "$TEST_DIRECTORY"/lib-gpg/gpgsm_cert.p12 &&
- gpgsm --homedir "${GNUPGHOME}" -K |
- grep fingerprint: |
- cut -d" " -f4 |
- tr -d "\\n" >"${GNUPGHOME}/trustlist.txt" &&
+ gpgsm --homedir "${GNUPGHOME}" -K --with-colons |
+ awk -F ":" "/^fpr:/ {printf \"%s S relax\\n\", \$10}" \
+ >"${GNUPGHOME}/trustlist.txt" &&
+ (gpgconf --reload all || : ) &&
- echo " S relax" >>"${GNUPGHOME}/trustlist.txt" &&
echo hello | gpgsm --homedir "${GNUPGHOME}" >/dev/null \
-u committer@example.com -o /dev/null --sign -
'
diff --git a/t/lib-read-tree-m-3way.sh b/t/lib-read-tree-m-3way.sh
index 168329adbc..2da25b3144 100644
--- a/t/lib-read-tree-m-3way.sh
+++ b/t/lib-read-tree-m-3way.sh
@@ -3,21 +3,21 @@
mkdir Z
for a in N D M
do
- for b in N D M
- do
- p=$a$b
+ for b in N D M
+ do
+ p=$a$b
echo This is $p from the original tree. >$p
echo This is Z/$p from the original tree. >Z/$p
- test_expect_success \
- "adding test file $p and Z/$p" \
- 'git update-index --add $p &&
- git update-index --add Z/$p'
+ test_expect_success "adding test file $p and Z/$p" '
+ git update-index --add $p &&
+ git update-index --add Z/$p
+ '
done
done
echo This is SS from the original tree. >SS
-test_expect_success \
- 'adding test file SS' \
- 'git update-index --add SS'
+test_expect_success 'adding test file SS' '
+ git update-index --add SS
+'
cat >TT <<\EOF
This is a trivial merge sample text.
Branch A is expected to upcase this word, here.
@@ -30,12 +30,12 @@ At the very end, here comes another line, that is
the word, expected to be upcased by Branch B.
This concludes the trivial merge sample file.
EOF
-test_expect_success \
- 'adding test file TT' \
- 'git update-index --add TT'
-test_expect_success \
- 'prepare initial tree' \
- 'tree_O=$(git write-tree)'
+test_expect_success 'adding test file TT' '
+ git update-index --add TT
+'
+test_expect_success 'prepare initial tree' '
+ tree_O=$(git write-tree)
+'
################################################################
# Branch A and B makes the changes according to the above matrix.
@@ -45,48 +45,48 @@ test_expect_success \
to_remove=$(echo D? Z/D?)
rm -f $to_remove
-test_expect_success \
- 'change in branch A (removal)' \
- 'git update-index --remove $to_remove'
+test_expect_success 'change in branch A (removal)' '
+ git update-index --remove $to_remove
+'
for p in M? Z/M?
do
- echo This is modified $p in the branch A. >$p
- test_expect_success \
- 'change in branch A (modification)' \
- "git update-index $p"
+ echo This is modified $p in the branch A. >$p
+ test_expect_success 'change in branch A (modification)' '
+ git update-index $p
+ '
done
for p in AN AA Z/AN Z/AA
do
- echo This is added $p in the branch A. >$p
- test_expect_success \
- 'change in branch A (addition)' \
- "git update-index --add $p"
+ echo This is added $p in the branch A. >$p
+ test_expect_success 'change in branch A (addition)' '
+ git update-index --add $p
+ '
done
echo This is SS from the modified tree. >SS
echo This is LL from the modified tree. >LL
-test_expect_success \
- 'change in branch A (addition)' \
- 'git update-index --add LL &&
- git update-index SS'
+test_expect_success 'change in branch A (addition)' '
+ git update-index --add LL &&
+ git update-index SS
+'
mv TT TT-
sed -e '/Branch A/s/word/WORD/g' <TT- >TT
rm -f TT-
-test_expect_success \
- 'change in branch A (edit)' \
- 'git update-index TT'
+test_expect_success 'change in branch A (edit)' '
+ git update-index TT
+'
mkdir DF
echo Branch A makes a file at DF/DF, creating a directory DF. >DF/DF
-test_expect_success \
- 'change in branch A (change file to directory)' \
- 'git update-index --add DF/DF'
+test_expect_success 'change in branch A (change file to directory)' '
+ git update-index --add DF/DF
+'
-test_expect_success \
- 'recording branch A tree' \
- 'tree_A=$(git write-tree)'
+test_expect_success 'recording branch A tree' '
+ tree_A=$(git write-tree)
+'
################################################################
# Branch B
@@ -94,65 +94,65 @@ test_expect_success \
rm -rf [NDMASLT][NDMASLT] Z DF
mkdir Z
-test_expect_success \
- 'reading original tree and checking out' \
- 'git read-tree $tree_O &&
- git checkout-index -a'
+test_expect_success 'reading original tree and checking out' '
+ git read-tree $tree_O &&
+ git checkout-index -a
+'
to_remove=$(echo ?D Z/?D)
rm -f $to_remove
-test_expect_success \
- 'change in branch B (removal)' \
- "git update-index --remove $to_remove"
+test_expect_success 'change in branch B (removal)' '
+ git update-index --remove $to_remove
+'
for p in ?M Z/?M
do
- echo This is modified $p in the branch B. >$p
- test_expect_success \
- 'change in branch B (modification)' \
- "git update-index $p"
+ echo This is modified $p in the branch B. >$p
+ test_expect_success 'change in branch B (modification)' '
+ git update-index $p
+ '
done
for p in NA AA Z/NA Z/AA
do
- echo This is added $p in the branch B. >$p
- test_expect_success \
- 'change in branch B (addition)' \
- "git update-index --add $p"
+ echo This is added $p in the branch B. >$p
+ test_expect_success 'change in branch B (addition)' '
+ git update-index --add $p
+ '
done
echo This is SS from the modified tree. >SS
echo This is LL from the modified tree. >LL
-test_expect_success \
- 'change in branch B (addition and modification)' \
- 'git update-index --add LL &&
- git update-index SS'
+test_expect_success 'change in branch B (addition and modification)' '
+ git update-index --add LL &&
+ git update-index SS
+'
mv TT TT-
sed -e '/Branch B/s/word/WORD/g' <TT- >TT
rm -f TT-
-test_expect_success \
- 'change in branch B (modification)' \
- 'git update-index TT'
+test_expect_success 'change in branch B (modification)' '
+ git update-index TT
+'
echo Branch B makes a file at DF. >DF
-test_expect_success \
- 'change in branch B (addition of a file to conflict with directory)' \
- 'git update-index --add DF'
-
-test_expect_success \
- 'recording branch B tree' \
- 'tree_B=$(git write-tree)'
-
-test_expect_success \
- 'keep contents of 3 trees for easy access' \
- 'rm -f .git/index &&
- git read-tree $tree_O &&
- mkdir .orig-O &&
- git checkout-index --prefix=.orig-O/ -f -q -a &&
- rm -f .git/index &&
- git read-tree $tree_A &&
- mkdir .orig-A &&
- git checkout-index --prefix=.orig-A/ -f -q -a &&
- rm -f .git/index &&
- git read-tree $tree_B &&
- mkdir .orig-B &&
- git checkout-index --prefix=.orig-B/ -f -q -a'
+test_expect_success 'change in branch B (addition of a file to conflict with directory)' '
+ git update-index --add DF
+'
+
+test_expect_success 'recording branch B tree' '
+ tree_B=$(git write-tree)
+'
+
+test_expect_success 'keep contents of 3 trees for easy access' '
+ rm -f .git/index &&
+ git read-tree $tree_O &&
+ mkdir .orig-O &&
+ git checkout-index --prefix=.orig-O/ -f -q -a &&
+ rm -f .git/index &&
+ git read-tree $tree_A &&
+ mkdir .orig-A &&
+ git checkout-index --prefix=.orig-A/ -f -q -a &&
+ rm -f .git/index &&
+ git read-tree $tree_B &&
+ mkdir .orig-B &&
+ git checkout-index --prefix=.orig-B/ -f -q -a
+'
diff --git a/t/perf/Makefile b/t/perf/Makefile
index 2465770a78..e4808aebed 100644
--- a/t/perf/Makefile
+++ b/t/perf/Makefile
@@ -1,3 +1,6 @@
+# Import tree-wide shared Makefile behavior and libraries
+include ../../shared.mak
+
-include ../../config.mak
export GIT_TEST_OPTIONS
diff --git a/t/perf/p1006-cat-file.sh b/t/perf/p1006-cat-file.sh
new file mode 100755
index 0000000000..dcd8015379
--- /dev/null
+++ b/t/perf/p1006-cat-file.sh
@@ -0,0 +1,12 @@
+#!/bin/sh
+
+test_description='Tests listing object info performance'
+. ./perf-lib.sh
+
+test_perf_large_repo
+
+test_perf 'cat-file --batch-check' '
+ git cat-file --batch-all-objects --batch-check
+'
+
+test_done
diff --git a/t/perf/p2000-sparse-operations.sh b/t/perf/p2000-sparse-operations.sh
index cb777c74a2..76710cbef3 100755
--- a/t/perf/p2000-sparse-operations.sh
+++ b/t/perf/p2000-sparse-operations.sh
@@ -106,6 +106,8 @@ test_perf_on_all () {
}
test_perf_on_all git status
+test_perf_on_all 'git stash && git stash pop'
+test_perf_on_all 'echo >>new && git stash -u && git stash pop'
test_perf_on_all git add -A
test_perf_on_all git add .
test_perf_on_all git commit -a -m A
@@ -117,5 +119,8 @@ test_perf_on_all git diff
test_perf_on_all git diff --cached
test_perf_on_all git blame $SPARSE_CONE/a
test_perf_on_all git blame $SPARSE_CONE/f3/a
+test_perf_on_all git read-tree -mu HEAD
+test_perf_on_all git checkout-index -f --all
+test_perf_on_all git update-index --add --remove $SPARSE_CONE/a
test_done
diff --git a/t/perf/p7519-fsmonitor.sh b/t/perf/p7519-fsmonitor.sh
index c8be58f3c7..0b9129ca7b 100755
--- a/t/perf/p7519-fsmonitor.sh
+++ b/t/perf/p7519-fsmonitor.sh
@@ -72,7 +72,7 @@ then
fi
fi
-trace_start() {
+trace_start () {
if test -n "$GIT_PERF_7519_TRACE"
then
name="$1"
@@ -91,13 +91,20 @@ trace_start() {
fi
}
-trace_stop() {
+trace_stop () {
if test -n "$GIT_PERF_7519_TRACE"
then
unset GIT_TRACE2_PERF
fi
}
+touch_files () {
+ n=$1 &&
+ d="$n"_files &&
+
+ (cd $d && test_seq 1 $n | xargs touch )
+}
+
test_expect_success "one time repo setup" '
# set untrackedCache depending on the environment
if test -n "$GIT_PERF_7519_UNTRACKED_CACHE"
@@ -119,10 +126,11 @@ test_expect_success "one time repo setup" '
fi &&
mkdir 1_file 10_files 100_files 1000_files 10000_files &&
- for i in $(test_seq 1 10); do touch 10_files/$i || return 1; done &&
- for i in $(test_seq 1 100); do touch 100_files/$i || return 1; done &&
- for i in $(test_seq 1 1000); do touch 1000_files/$i || return 1; done &&
- for i in $(test_seq 1 10000); do touch 10000_files/$i || return 1; done &&
+ : 1_file directory should be left empty &&
+ touch_files 10 &&
+ touch_files 100 &&
+ touch_files 1000 &&
+ touch_files 10000 &&
git add 1_file 10_files 100_files 1000_files 10000_files &&
git commit -qm "Add files" &&
@@ -133,7 +141,7 @@ test_expect_success "one time repo setup" '
fi
'
-setup_for_fsmonitor() {
+setup_for_fsmonitor_hook () {
# set INTEGRATION_SCRIPT depending on the environment
if test -n "$INTEGRATION_PATH"
then
@@ -173,8 +181,12 @@ test_perf_w_drop_caches () {
test_perf "$@"
}
-test_fsmonitor_suite() {
- if test -n "$INTEGRATION_SCRIPT"; then
+test_fsmonitor_suite () {
+ if test -n "$USE_FSMONITOR_DAEMON"
+ then
+ DESC="builtin fsmonitor--daemon"
+ elif test -n "$INTEGRATION_SCRIPT"
+ then
DESC="fsmonitor=$(basename $INTEGRATION_SCRIPT)"
else
DESC="fsmonitor=disabled"
@@ -199,15 +211,15 @@ test_fsmonitor_suite() {
# Update the mtimes on upto 100k files to make status think
# that they are dirty. For simplicity, omit any files with
- # LFs (i.e. anything that ls-files thinks it needs to dquote).
- # Then fully backslash-quote the paths to capture any
- # whitespace so that they pass thru xargs properly.
+ # LFs (i.e. anything that ls-files thinks it needs to dquote)
+ # and any files with whitespace so that they pass thru xargs
+ # properly.
#
test_perf_w_drop_caches "status (dirty) ($DESC)" '
git ls-files | \
head -100000 | \
grep -v \" | \
- sed '\''s/\(.\)/\\\1/g'\'' | \
+ grep -v " ." | \
xargs test-tool chmtime -300 &&
git status
'
@@ -253,11 +265,11 @@ test_fsmonitor_suite() {
trace_start fsmonitor-watchman
if test -n "$GIT_PERF_7519_FSMONITOR"; then
for INTEGRATION_PATH in $GIT_PERF_7519_FSMONITOR; do
- test_expect_success "setup for fsmonitor $INTEGRATION_PATH" 'setup_for_fsmonitor'
+ test_expect_success "setup for fsmonitor $INTEGRATION_PATH" 'setup_for_fsmonitor_hook'
test_fsmonitor_suite
done
else
- test_expect_success "setup for fsmonitor" 'setup_for_fsmonitor'
+ test_expect_success "setup for fsmonitor hook" 'setup_for_fsmonitor_hook'
test_fsmonitor_suite
fi
@@ -285,4 +297,30 @@ test_expect_success "setup without fsmonitor" '
test_fsmonitor_suite
trace_stop
+#
+# Run a full set of perf tests using the built-in fsmonitor--daemon.
+# It does not use the Hook API, so it has a different setup.
+# Explicitly start the daemon here and before we start client commands
+# so that we can later add custom tracing.
+#
+if test_have_prereq FSMONITOR_DAEMON
+then
+ USE_FSMONITOR_DAEMON=t
+
+ test_expect_success "setup for builtin fsmonitor" '
+ trace_start fsmonitor--daemon--server &&
+ git fsmonitor--daemon start &&
+
+ trace_start fsmonitor--daemon--client &&
+
+ git config core.fsmonitor true &&
+ git update-index --fsmonitor
+ '
+
+ test_fsmonitor_suite
+
+ git fsmonitor--daemon stop
+ trace_stop
+fi
+
test_done
diff --git a/t/perf/perf-lib.sh b/t/perf/perf-lib.sh
index 407252bac7..932105cd12 100644
--- a/t/perf/perf-lib.sh
+++ b/t/perf/perf-lib.sh
@@ -78,7 +78,7 @@ test_perf_copy_repo_contents () {
for stuff in "$1"/*
do
case "$stuff" in
- */objects|*/hooks|*/config|*/commondir|*/gitdir|*/worktrees)
+ */objects|*/hooks|*/config|*/commondir|*/gitdir|*/worktrees|*/fsmonitor--daemon*)
;;
*)
cp -R "$stuff" "$repo/.git/" || exit 1
diff --git a/t/t0000-basic.sh b/t/t0000-basic.sh
index b007f0efef..17a268ccd1 100755
--- a/t/t0000-basic.sh
+++ b/t/t0000-basic.sh
@@ -101,6 +101,19 @@ test_expect_success 'subtest: 2/3 tests passing' '
EOF
'
+test_expect_success 'subtest: --immediate' '
+ run_sub_test_lib_test_err partial-pass \
+ --immediate &&
+ check_sub_test_lib_test_err partial-pass \
+ <<-\EOF_OUT 3<<-EOF_ERR
+ > ok 1 - passing test #1
+ > not ok 2 - failing test #2
+ > # false
+ > 1..2
+ EOF_OUT
+ EOF_ERR
+'
+
test_expect_success 'subtest: a failing TODO test' '
write_and_run_sub_test_lib_test failing-todo <<-\EOF &&
test_expect_success "passing test" "true"
@@ -1089,7 +1102,8 @@ test_expect_success 'update-index D/F conflict' '
mv path2 path0 &&
mv tmp path2 &&
git update-index --add --replace path2 path0/file2 &&
- numpath0=$(git ls-files path0 | wc -l) &&
+ git ls-files path0 >tmp &&
+ numpath0=$(wc -l <tmp) &&
test $numpath0 = 1
'
@@ -1103,13 +1117,14 @@ test_expect_success 'very long name in the index handled sanely' '
>path4 &&
git update-index --add path4 &&
+ git ls-files -s path4 >tmp &&
(
- git ls-files -s path4 |
- sed -e "s/ .*/ /" |
+ sed -e "s/ .*/ /" tmp |
tr -d "\012" &&
echo "$a"
) | git update-index --index-info &&
- len=$(git ls-files "a*" | wc -c) &&
+ git ls-files "a*" >tmp &&
+ len=$(wc -c <tmp) &&
test $len = 4098
'
diff --git a/t/t0001-init.sh b/t/t0001-init.sh
index 3235ab4d53..d479303efa 100755
--- a/t/t0001-init.sh
+++ b/t/t0001-init.sh
@@ -6,7 +6,8 @@ TEST_PASSES_SANITIZE_LEAK=true
. ./test-lib.sh
check_config () {
- if test -d "$1" && test -f "$1/config" && test -d "$1/refs"
+ if test_path_is_dir "$1" &&
+ test_path_is_file "$1/config" && test_path_is_dir "$1/refs"
then
: happy
else
diff --git a/t/t0002-gitfile.sh b/t/t0002-gitfile.sh
index 76052cb562..f6356db183 100755
--- a/t/t0002-gitfile.sh
+++ b/t/t0002-gitfile.sh
@@ -65,9 +65,11 @@ test_expect_success 'check commit-tree' '
test_path_is_file "$REAL/objects/$(objpath $SHA)"
'
-test_expect_success 'check rev-list' '
+test_expect_success !SANITIZE_LEAK 'check rev-list' '
git update-ref "HEAD" "$SHA" &&
- test "$SHA" = "$(git rev-list HEAD)"
+ git rev-list HEAD >actual &&
+ echo $SHA >expected &&
+ test_cmp expected actual
'
test_expect_success 'setup_git_dir twice in subdir' '
diff --git a/t/t0003-attributes.sh b/t/t0003-attributes.sh
index b9ed612af1..143f100517 100755
--- a/t/t0003-attributes.sh
+++ b/t/t0003-attributes.sh
@@ -205,15 +205,18 @@ test_expect_success 'attribute test: read paths from stdin' '
test_expect_success 'attribute test: --all option' '
grep -v unspecified <expect-all | sort >specified-all &&
sed -e "s/:.*//" <expect-all | uniq >stdin-all &&
- git check-attr --stdin --all <stdin-all | sort >actual &&
+ git check-attr --stdin --all <stdin-all >tmp &&
+ sort tmp >actual &&
test_cmp specified-all actual
'
test_expect_success 'attribute test: --cached option' '
- git check-attr --cached --stdin --all <stdin-all | sort >actual &&
+ git check-attr --cached --stdin --all <stdin-all >tmp &&
+ sort tmp >actual &&
test_must_be_empty actual &&
git add .gitattributes a/.gitattributes a/b/.gitattributes &&
- git check-attr --cached --stdin --all <stdin-all | sort >actual &&
+ git check-attr --cached --stdin --all <stdin-all >tmp &&
+ sort tmp >actual &&
test_cmp specified-all actual
'
diff --git a/t/t0006-date.sh b/t/t0006-date.sh
index 794186961e..2490162071 100755
--- a/t/t0006-date.sh
+++ b/t/t0006-date.sh
@@ -1,6 +1,8 @@
#!/bin/sh
test_description='test date parsing and printing'
+
+TEST_PASSES_SANITIZE_LEAK=true
. ./test-lib.sh
# arbitrary reference time: 2009-08-30 19:20:00
diff --git a/t/t0012-help.sh b/t/t0012-help.sh
index 91b68c74a1..6c33a43690 100755
--- a/t/t0012-help.sh
+++ b/t/t0012-help.sh
@@ -35,6 +35,9 @@ test_expect_success 'basic help commands' '
'
test_expect_success 'invalid usage' '
+ test_expect_code 129 git help -a add &&
+ test_expect_code 129 git help --all add &&
+
test_expect_code 129 git help -g add &&
test_expect_code 129 git help -a -c &&
@@ -46,6 +49,29 @@ test_expect_success 'invalid usage' '
test_expect_code 129 git help --config-sections-for-completion add
'
+for opt in '-a' '-g' '-c' '--config-for-completion' '--config-sections-for-completion'
+do
+ test_expect_success "invalid usage of '$opt' with [-i|-m|-w]" '
+ git help $opt &&
+ test_expect_code 129 git help $opt -i &&
+ test_expect_code 129 git help $opt -m &&
+ test_expect_code 129 git help $opt -w
+ '
+
+ if test "$opt" = "-a"
+ then
+ continue
+ fi
+
+ test_expect_success "invalid usage of '$opt' with --no-external-commands" '
+ test_expect_code 129 git help $opt --no-external-commands
+ '
+
+ test_expect_success "invalid usage of '$opt' with --no-aliases" '
+ test_expect_code 129 git help $opt --no-external-commands
+ '
+done
+
test_expect_success "works for commands and guides by default" '
configure_help &&
git help status &&
@@ -138,14 +164,87 @@ test_expect_success 'git help --config-sections-for-completion' '
test_cmp human.munged sections
'
+test_section_spacing () {
+ cat >expect &&
+ "$@" >out &&
+ grep -E "(^[^ ]|^$)" out >actual
+}
+
+test_section_spacing_trailer () {
+ test_section_spacing "$@" &&
+ test_expect_code 1 git >out &&
+ sed -n '/list available subcommands/,$p' <out >>expect
+}
+
+
+for cmd in git "git help"
+do
+ test_expect_success "'$cmd' section spacing" '
+ test_section_spacing_trailer git help <<-\EOF &&
+ usage: git [-v | --version] [-h | --help] [-C <path>] [-c <name>=<value>]
+
+ These are common Git commands used in various situations:
+
+ start a working area (see also: git help tutorial)
+
+ work on the current change (see also: git help everyday)
+
+ examine the history and state (see also: git help revisions)
+
+ grow, mark and tweak your common history
+
+ collaborate (see also: git help workflows)
+
+ EOF
+ test_cmp expect actual
+ '
+done
+
+test_expect_success "'git help -a' section spacing" '
+ test_section_spacing \
+ git help -a --no-external-commands --no-aliases <<-\EOF &&
+ See '\''git help <command>'\'' to read about a specific subcommand
+
+ Main Porcelain Commands
+
+ Ancillary Commands / Manipulators
+
+ Ancillary Commands / Interrogators
+
+ Interacting with Others
+
+ Low-level Commands / Manipulators
+
+ Low-level Commands / Interrogators
+
+ Low-level Commands / Syncing Repositories
+
+ Low-level Commands / Internal Helpers
+ EOF
+ test_cmp expect actual
+'
+
+test_expect_success "'git help -g' section spacing" '
+ test_section_spacing_trailer git help -g <<-\EOF &&
+ The Git concept guides are:
+
+ EOF
+ test_cmp expect actual
+'
+
test_expect_success 'generate builtin list' '
+ mkdir -p sub &&
git --list-cmds=builtins >builtins
'
while read builtin
do
test_expect_success "$builtin can handle -h" '
- test_expect_code 129 git $builtin -h >output 2>&1 &&
+ (
+ GIT_CEILING_DIRECTORIES=$(pwd) &&
+ export GIT_CEILING_DIRECTORIES &&
+ test_expect_code 129 git -C sub $builtin -h >output 2>&1
+ ) &&
test_i18ngrep usage output
'
done <builtins
diff --git a/t/t0015-hash.sh b/t/t0015-hash.sh
index 291e9061f3..086822fc45 100755
--- a/t/t0015-hash.sh
+++ b/t/t0015-hash.sh
@@ -15,7 +15,7 @@ test_expect_success 'test basic SHA-1 hash values' '
grep c12252ceda8be8994d5fa0290a47231c1d16aae3 actual &&
printf "abcdefghijklmnopqrstuvwxyz" | test-tool sha1 >actual &&
grep 32d10c7b8cf96570ca04ce37f2a19d84240d3a89 actual &&
- perl -e "$| = 1; print q{aaaaaaaaaa} for 1..100000;" | \
+ perl -e "$| = 1; print q{aaaaaaaaaa} for 1..100000;" |
test-tool sha1 >actual &&
grep 34aa973cd4c4daa4f61eeb2bdbad27316534016f actual &&
printf "blob 0\0" | test-tool sha1 >actual &&
@@ -38,10 +38,10 @@ test_expect_success 'test basic SHA-256 hash values' '
printf "abcdefghijklmnopqrstuvwxyz" | test-tool sha256 >actual &&
grep 71c480df93d6ae2f1efad1447c66c9525e316218cf51fc8d9ed832f2daf18b73 actual &&
# Try to exercise the chunking code by turning autoflush on.
- perl -e "$| = 1; print q{aaaaaaaaaa} for 1..100000;" | \
+ perl -e "$| = 1; print q{aaaaaaaaaa} for 1..100000;" |
test-tool sha256 >actual &&
grep cdc76e5c9914fb9281a1c7e284d73e67f1809a48a497200e046d39ccc7112cd0 actual &&
- perl -e "$| = 1; print q{abcdefghijklmnopqrstuvwxyz} for 1..100000;" | \
+ perl -e "$| = 1; print q{abcdefghijklmnopqrstuvwxyz} for 1..100000;" |
test-tool sha256 >actual &&
grep e406ba321ca712ad35a698bf0af8d61fc4dc40eca6bdcea4697962724ccbde35 actual &&
printf "blob 0\0" | test-tool sha256 >actual &&
diff --git a/t/t0022-crlf-rename.sh b/t/t0022-crlf-rename.sh
index c1a331e9e9..9fe9891251 100755
--- a/t/t0022-crlf-rename.sh
+++ b/t/t0022-crlf-rename.sh
@@ -24,8 +24,8 @@ test_expect_success setup '
test_expect_success 'diff -M' '
- git diff-tree -M -r --name-status HEAD^ HEAD |
- sed -e "s/R[0-9]*/RNUM/" >actual &&
+ git diff-tree -M -r --name-status HEAD^ HEAD >tmp &&
+ sed -e "s/R[0-9]*/RNUM/" tmp >actual &&
echo "RNUM sample elpmas" >expect &&
test_cmp expect actual
diff --git a/t/t0025-crlf-renormalize.sh b/t/t0025-crlf-renormalize.sh
index 81447978b7..f7202c192e 100755
--- a/t/t0025-crlf-renormalize.sh
+++ b/t/t0025-crlf-renormalize.sh
@@ -22,8 +22,8 @@ test_expect_success 'renormalize CRLF in repo' '
i/lf w/lf attr/text=auto LF.txt
i/lf w/mixed attr/text=auto CRLF_mix_LF.txt
EOF
- git ls-files --eol |
- sed -e "s/ / /g" -e "s/ */ /g" |
+ git ls-files --eol >tmp &&
+ sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
'
diff --git a/t/t0027-auto-crlf.sh b/t/t0027-auto-crlf.sh
index 4a5c5c602c..7f80f46393 100755
--- a/t/t0027-auto-crlf.sh
+++ b/t/t0027-auto-crlf.sh
@@ -77,12 +77,12 @@ create_NNO_MIX_files () {
check_warning () {
case "$1" in
- LF_CRLF) echo "warning: LF will be replaced by CRLF" >"$2".expect ;;
- CRLF_LF) echo "warning: CRLF will be replaced by LF" >"$2".expect ;;
- '') >"$2".expect ;;
+ LF_CRLF) echo "LF will be replaced by CRLF" >"$2".expect ;;
+ CRLF_LF) echo "CRLF will be replaced by LF" >"$2".expect ;;
+ '') >"$2".expect ;;
*) echo >&2 "Illegal 1": "$1" ; return false ;;
esac
- grep "will be replaced by" "$2" | sed -e "s/\(.*\) in [^ ]*$/\1/" | uniq >"$2".actual
+ sed -e "s/^.* \([^ ]* will be replaced by [^ ]*\) .*$/\1/" "$2" | uniq >"$2".actual
test_cmp "$2".expect "$2".actual
}
@@ -311,8 +311,8 @@ checkout_files () {
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt
EOF
- git ls-files --eol crlf_false_attr__* |
- sed -e "s/ / /g" -e "s/ */ /g" |
+ git ls-files --eol crlf_false_attr__* >tmp &&
+ sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
'
@@ -359,12 +359,12 @@ test_expect_success 'ls-files --eol -o Text/Binary' '
i/ w/crlf TeBi_126_CL
i/ w/-text TeBi_126_CLC
EOF
- git ls-files --eol -o |
+ git ls-files --eol -o >tmp &&
sed -n -e "/TeBi_/{s!attr/[ ]*!!g
s! ! !g
s! *! !g
p
- }" | sort >actual &&
+ }" tmp | sort >actual &&
test_cmp expect actual
'
@@ -597,6 +597,12 @@ do
# auto: core.autocrlf=false and core.eol unset(or native) uses native eol
checkout_files auto "$id" "" false "" $NL CRLF CRLF_mix_LF LF_mix_CR LF_nul
checkout_files auto "$id" "" false native $NL CRLF CRLF_mix_LF LF_mix_CR LF_nul
+ # core.autocrlf false, .gitattributes sets eol
+ checkout_files "" "$id" "lf" false "" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
+ checkout_files "" "$id" "crlf" false "" CRLF CRLF CRLF CRLF_mix_CR CRLF_nul
+ # core.autocrlf true, .gitattributes sets eol
+ checkout_files "" "$id" "lf" true "" LF CRLF CRLF_mix_LF LF_mix_CR LF_nul
+ checkout_files "" "$id" "crlf" true "" CRLF CRLF CRLF CRLF_mix_CR CRLF_nul
done
# The rest of the tests are unique; do the usual linting.
@@ -611,8 +617,8 @@ test_expect_success 'ls-files --eol -d -z' '
i/lf w/ crlf_false_attr__LF.txt
i/mixed w/ crlf_false_attr__CRLF_mix_LF.txt
EOF
- git ls-files --eol -d |
- sed -e "s!attr/[^ ]*!!g" -e "s/ / /g" -e "s/ */ /g" |
+ git ls-files --eol -d >tmp &&
+ sed -e "s!attr/[^ ]*!!g" -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
'
diff --git a/t/t0029-core-unsetenvvars.sh b/t/t0029-core-unsetenvvars.sh
index b138e1d9cb..4e8e90dd98 100755
--- a/t/t0029-core-unsetenvvars.sh
+++ b/t/t0029-core-unsetenvvars.sh
@@ -12,8 +12,7 @@ then
fi
test_expect_success 'setup' '
- mkdir -p "$TRASH_DIRECTORY/.git/hooks" &&
- write_script "$TRASH_DIRECTORY/.git/hooks/pre-commit" <<-\EOF
+ test_hook --setup pre-commit <<-\EOF
echo $HOBBES >&2
EOF
'
diff --git a/t/t0030-stripspace.sh b/t/t0030-stripspace.sh
index ae1ca380c1..0a5713c524 100755
--- a/t/t0030-stripspace.sh
+++ b/t/t0030-stripspace.sh
@@ -13,6 +13,10 @@ s40=' '
sss="$s40$s40$s40$s40$s40$s40$s40$s40$s40$s40" # 400
ttt="$t40$t40$t40$t40$t40$t40$t40$t40$t40$t40" # 400
+printf_git_stripspace () {
+ printf "$1" | git stripspace
+}
+
test_expect_success \
'long lines without spaces should be unchanged' '
echo "$ttt" >expect &&
@@ -225,32 +229,38 @@ test_expect_success \
test_expect_success \
'text without newline at end should end with newline' '
- test $(printf "$ttt" | git stripspace | wc -l) -gt 0 &&
- test $(printf "$ttt$ttt" | git stripspace | wc -l) -gt 0 &&
- test $(printf "$ttt$ttt$ttt" | git stripspace | wc -l) -gt 0 &&
- test $(printf "$ttt$ttt$ttt$ttt" | git stripspace | wc -l) -gt 0
+ test_stdout_line_count -gt 0 printf_git_stripspace "$ttt" &&
+ test_stdout_line_count -gt 0 printf_git_stripspace "$ttt$ttt" &&
+ test_stdout_line_count -gt 0 printf_git_stripspace "$ttt$ttt$ttt" &&
+ test_stdout_line_count -gt 0 printf_git_stripspace "$ttt$ttt$ttt$ttt"
'
# text plus spaces at the end:
test_expect_success \
'text plus spaces without newline at end should end with newline' '
- test $(printf "$ttt$sss" | git stripspace | wc -l) -gt 0 &&
- test $(printf "$ttt$ttt$sss" | git stripspace | wc -l) -gt 0 &&
- test $(printf "$ttt$ttt$ttt$sss" | git stripspace | wc -l) -gt 0 &&
- test $(printf "$ttt$sss$sss" | git stripspace | wc -l) -gt 0 &&
- test $(printf "$ttt$ttt$sss$sss" | git stripspace | wc -l) -gt 0 &&
- test $(printf "$ttt$sss$sss$sss" | git stripspace | wc -l) -gt 0
+ test_stdout_line_count -gt 0 printf_git_stripspace "$ttt$sss" &&
+ test_stdout_line_count -gt 0 printf_git_stripspace "$ttt$ttt$sss" &&
+ test_stdout_line_count -gt 0 printf_git_stripspace "$ttt$ttt$ttt$sss" &&
+ test_stdout_line_count -gt 0 printf_git_stripspace "$ttt$sss$sss" &&
+ test_stdout_line_count -gt 0 printf_git_stripspace "$ttt$ttt$sss$sss" &&
+ test_stdout_line_count -gt 0 printf_git_stripspace "$ttt$sss$sss$sss"
'
test_expect_success \
'text plus spaces without newline at end should not show spaces' '
- ! (printf "$ttt$sss" | git stripspace | grep " " >/dev/null) &&
- ! (printf "$ttt$ttt$sss" | git stripspace | grep " " >/dev/null) &&
- ! (printf "$ttt$ttt$ttt$sss" | git stripspace | grep " " >/dev/null) &&
- ! (printf "$ttt$sss$sss" | git stripspace | grep " " >/dev/null) &&
- ! (printf "$ttt$ttt$sss$sss" | git stripspace | grep " " >/dev/null) &&
- ! (printf "$ttt$sss$sss$sss" | git stripspace | grep " " >/dev/null)
+ printf "$ttt$sss" | git stripspace >tmp &&
+ ! grep " " tmp >/dev/null &&
+ printf "$ttt$ttt$sss" | git stripspace >tmp &&
+ ! grep " " tmp >/dev/null &&
+ printf "$ttt$ttt$ttt$sss" | git stripspace >tmp &&
+ ! grep " " tmp >/dev/null &&
+ printf "$ttt$sss$sss" | git stripspace >tmp &&
+ ! grep " " tmp >/dev/null &&
+ printf "$ttt$ttt$sss$sss" | git stripspace >tmp &&
+ ! grep " " tmp >/dev/null &&
+ printf "$ttt$sss$sss$sss" | git stripspace >tmp &&
+ ! grep " " tmp >/dev/null
'
test_expect_success \
@@ -282,12 +292,18 @@ test_expect_success \
test_expect_success \
'text plus spaces at end should not show spaces' '
- ! (echo "$ttt$sss" | git stripspace | grep " " >/dev/null) &&
- ! (echo "$ttt$ttt$sss" | git stripspace | grep " " >/dev/null) &&
- ! (echo "$ttt$ttt$ttt$sss" | git stripspace | grep " " >/dev/null) &&
- ! (echo "$ttt$sss$sss" | git stripspace | grep " " >/dev/null) &&
- ! (echo "$ttt$ttt$sss$sss" | git stripspace | grep " " >/dev/null) &&
- ! (echo "$ttt$sss$sss$sss" | git stripspace | grep " " >/dev/null)
+ echo "$ttt$sss" | git stripspace >tmp &&
+ ! grep " " tmp >/dev/null &&
+ echo "$ttt$ttt$sss" | git stripspace >tmp &&
+ ! grep " " tmp >/dev/null &&
+ echo "$ttt$ttt$ttt$sss" | git stripspace >tmp &&
+ ! grep " " tmp >/dev/null &&
+ echo "$ttt$sss$sss" | git stripspace >tmp &&
+ ! grep " " tmp >/dev/null &&
+ echo "$ttt$ttt$sss$sss" | git stripspace >tmp &&
+ ! grep " " tmp >/dev/null &&
+ echo "$ttt$sss$sss$sss" | git stripspace >tmp &&
+ ! grep " " tmp >/dev/null
'
test_expect_success \
@@ -339,11 +355,16 @@ test_expect_success \
test_expect_success \
'spaces without newline at end should not show spaces' '
- ! (printf "" | git stripspace | grep " " >/dev/null) &&
- ! (printf "$sss" | git stripspace | grep " " >/dev/null) &&
- ! (printf "$sss$sss" | git stripspace | grep " " >/dev/null) &&
- ! (printf "$sss$sss$sss" | git stripspace | grep " " >/dev/null) &&
- ! (printf "$sss$sss$sss$sss" | git stripspace | grep " " >/dev/null)
+ printf "" | git stripspace >tmp &&
+ ! grep " " tmp >/dev/null &&
+ printf "$sss" | git stripspace >tmp &&
+ ! grep " " tmp >/dev/null &&
+ printf "$sss$sss" | git stripspace >tmp &&
+ ! grep " " tmp >/dev/null &&
+ printf "$sss$sss$sss" | git stripspace >tmp &&
+ ! grep " " tmp >/dev/null &&
+ printf "$sss$sss$sss$sss" | git stripspace >tmp &&
+ ! grep " " tmp >/dev/null
'
test_expect_success \
diff --git a/t/t0033-safe-directory.sh b/t/t0033-safe-directory.sh
index 239d93f4d2..238b25f91a 100755
--- a/t/t0033-safe-directory.sh
+++ b/t/t0033-safe-directory.sh
@@ -9,13 +9,41 @@ export GIT_TEST_ASSUME_DIFFERENT_OWNER
expect_rejected_dir () {
test_must_fail git status 2>err &&
- grep "safe.directory" err
+ grep "unsafe repository" err
}
test_expect_success 'safe.directory is not set' '
expect_rejected_dir
'
+test_expect_success 'ignoring safe.directory on the command line' '
+ test_must_fail git -c safe.directory="$(pwd)" status 2>err &&
+ grep "unsafe repository" err
+'
+
+test_expect_success 'ignoring safe.directory in the environment' '
+ test_must_fail env GIT_CONFIG_COUNT=1 \
+ GIT_CONFIG_KEY_0="safe.directory" \
+ GIT_CONFIG_VALUE_0="$(pwd)" \
+ git status 2>err &&
+ grep "unsafe repository" err
+'
+
+test_expect_success 'ignoring safe.directory in GIT_CONFIG_PARAMETERS' '
+ test_must_fail env \
+ GIT_CONFIG_PARAMETERS="${SQ}safe.directory${SQ}=${SQ}$(pwd)${SQ}" \
+ git status 2>err &&
+ grep "unsafe repository" err
+'
+
+test_expect_success 'ignoring safe.directory in repo config' '
+ (
+ unset GIT_TEST_ASSUME_DIFFERENT_OWNER &&
+ git config safe.directory "$(pwd)"
+ ) &&
+ expect_rejected_dir
+'
+
test_expect_success 'safe.directory does not match' '
git config --global safe.directory bogus &&
expect_rejected_dir
diff --git a/t/t0050-filesystem.sh b/t/t0050-filesystem.sh
index afc343cf9b..5c9dc90d0b 100755
--- a/t/t0050-filesystem.sh
+++ b/t/t0050-filesystem.sh
@@ -104,7 +104,8 @@ test_expect_failure CASE_INSENSITIVE_FS 'add (with different case)' '
rm camelcase &&
echo 1 >CamelCase &&
git add CamelCase &&
- camel=$(git ls-files | grep -i camelcase) &&
+ git ls-files >tmp &&
+ camel=$(grep -i camelcase tmp) &&
test $(echo "$camel" | wc -l) = 1 &&
test "z$(git cat-file blob :$camel)" = z1
'
diff --git a/t/t0051-windows-named-pipe.sh b/t/t0051-windows-named-pipe.sh
index 10ac92d225..412f413360 100755
--- a/t/t0051-windows-named-pipe.sh
+++ b/t/t0051-windows-named-pipe.sh
@@ -3,8 +3,13 @@
test_description='Windows named pipes'
. ./test-lib.sh
+if ! test_have_prereq MINGW
+then
+ skip_all='skipping Windows-specific tests'
+ test_done
+fi
-test_expect_success MINGW 'o_append write to named pipe' '
+test_expect_success 'o_append write to named pipe' '
GIT_TRACE="$(pwd)/expect" git status >/dev/null 2>&1 &&
{ test-tool windows-named-pipe t0051 >actual 2>&1 & } &&
pid=$! &&
diff --git a/t/t0091-bugreport.sh b/t/t0091-bugreport.sh
index eeedbfa919..08f5fe9cae 100755
--- a/t/t0091-bugreport.sh
+++ b/t/t0091-bugreport.sh
@@ -60,18 +60,22 @@ test_expect_success 'can create leading directories outside of a git dir' '
test_expect_success 'indicates populated hooks' '
test_when_finished rm git-bugreport-hooks.txt &&
- test_when_finished rm -fr .git/hooks &&
- rm -fr .git/hooks &&
- mkdir .git/hooks &&
- for hook in applypatch-msg prepare-commit-msg.sample
- do
- write_script ".git/hooks/$hook" <<-EOF || return 1
- echo "hook $hook exists"
- EOF
- done &&
+
+ test_hook applypatch-msg <<-\EOF &&
+ true
+ EOF
+ test_hook unknown-hook <<-\EOF &&
+ true
+ EOF
git bugreport -s hooks &&
- grep applypatch-msg git-bugreport-hooks.txt &&
- ! grep prepare-commit-msg git-bugreport-hooks.txt
+
+ sort >expect <<-\EOF &&
+ [Enabled Hooks]
+ applypatch-msg
+ EOF
+
+ sed -ne "/^\[Enabled Hooks\]$/,/^$/p" <git-bugreport-hooks.txt >actual &&
+ test_cmp expect actual
'
test_done
diff --git a/t/t0211/scrub_perf.perl b/t/t0211/scrub_perf.perl
index d164b750ff..299999f0f8 100644
--- a/t/t0211/scrub_perf.perl
+++ b/t/t0211/scrub_perf.perl
@@ -59,6 +59,10 @@ while (<>) {
# and highly variable. Just omit them.
goto SKIP_LINE;
}
+ if ($tokens[$col_category] =~ m/fsync/) {
+ # fsync events aren't interesting for the test
+ goto SKIP_LINE;
+ }
}
# t_abs and t_rel are either blank or a float. Replace the float
diff --git a/t/t0410-partial-clone.sh b/t/t0410-partial-clone.sh
index f17abd298c..1e864cf317 100755
--- a/t/t0410-partial-clone.sh
+++ b/t/t0410-partial-clone.sh
@@ -618,6 +618,25 @@ test_expect_success 'do not fetch when checking existence of tree we construct o
git -C repo cherry-pick side1
'
+test_expect_success 'exact rename does not need to fetch the blob lazily' '
+ rm -rf repo partial.git &&
+ test_create_repo repo &&
+ content="some dummy content" &&
+ test_commit -C repo create-a-file file.txt "$content" &&
+ git -C repo mv file.txt new-file.txt &&
+ git -C repo commit -m rename-the-file &&
+ FILE_HASH=$(git -C repo rev-parse HEAD:new-file.txt) &&
+ test_config -C repo uploadpack.allowfilter 1 &&
+ test_config -C repo uploadpack.allowanysha1inwant 1 &&
+
+ git clone --filter=blob:none --bare "file://$(pwd)/repo" partial.git &&
+ git -C partial.git rev-list --objects --missing=print HEAD >out &&
+ grep "[?]$FILE_HASH" out &&
+ git -C partial.git log --follow -- new-file.txt &&
+ git -C partial.git rev-list --objects --missing=print HEAD >out &&
+ grep "[?]$FILE_HASH" out
+'
+
test_expect_success 'lazy-fetch when accessing object not in the_repository' '
rm -rf full partial.git &&
test_create_repo full &&
diff --git a/t/t0500-progress-display.sh b/t/t0500-progress-display.sh
index 22058b503a..1eb3a8306b 100755
--- a/t/t0500-progress-display.sh
+++ b/t/t0500-progress-display.sh
@@ -2,6 +2,7 @@
test_description='progress display'
+TEST_PASSES_SANITIZE_LEAK=true
. ./test-lib.sh
show_cr () {
@@ -17,6 +18,7 @@ test_expect_success 'simple progress display' '
EOF
cat >in <<-\EOF &&
+ start 0
update
progress 1
update
@@ -25,8 +27,9 @@ test_expect_success 'simple progress display' '
progress 4
update
progress 5
+ stop
EOF
- test-tool progress "Working hard" <in 2>stderr &&
+ test-tool progress <in 2>stderr &&
show_cr <stderr >out &&
test_cmp expect out
@@ -41,11 +44,13 @@ test_expect_success 'progress display with total' '
EOF
cat >in <<-\EOF &&
+ start 3
progress 1
progress 2
progress 3
+ stop
EOF
- test-tool progress --total=3 "Working hard" <in 2>stderr &&
+ test-tool progress <in 2>stderr &&
show_cr <stderr >out &&
test_cmp expect out
@@ -62,14 +67,14 @@ Working hard.......2.........3.........4.........5.........6:
EOF
cat >in <<-\EOF &&
+ start 100000 Working hard.......2.........3.........4.........5.........6
progress 100
progress 1000
progress 10000
progress 100000
+ stop
EOF
- test-tool progress --total=100000 \
- "Working hard.......2.........3.........4.........5.........6" \
- <in 2>stderr &&
+ test-tool progress <in 2>stderr &&
show_cr <stderr >out &&
test_cmp expect out
@@ -88,16 +93,16 @@ Working hard.......2.........3.........4.........5.........6:
EOF
cat >in <<-\EOF &&
+ start 100000 Working hard.......2.........3.........4.........5.........6
update
progress 1
update
progress 2
progress 10000
progress 100000
+ stop
EOF
- test-tool progress --total=100000 \
- "Working hard.......2.........3.........4.........5.........6" \
- <in 2>stderr &&
+ test-tool progress <in 2>stderr &&
show_cr <stderr >out &&
test_cmp expect out
@@ -116,14 +121,14 @@ Working hard.......2.........3.........4.........5.........6:
EOF
cat >in <<-\EOF &&
+ start 100000 Working hard.......2.........3.........4.........5.........6
progress 25000
progress 50000
progress 75000
progress 100000
+ stop
EOF
- test-tool progress --total=100000 \
- "Working hard.......2.........3.........4.........5.........6" \
- <in 2>stderr &&
+ test-tool progress <in 2>stderr &&
show_cr <stderr >out &&
test_cmp expect out
@@ -140,14 +145,14 @@ Working hard.......2.........3.........4.........5.........6.........7.........:
EOF
cat >in <<-\EOF &&
+ start 100000 Working hard.......2.........3.........4.........5.........6.........7.........
progress 25000
progress 50000
progress 75000
progress 100000
+ stop
EOF
- test-tool progress --total=100000 \
- "Working hard.......2.........3.........4.........5.........6.........7........." \
- <in 2>stderr &&
+ test-tool progress <in 2>stderr &&
show_cr <stderr >out &&
test_cmp expect out
@@ -164,12 +169,14 @@ test_expect_success 'progress shortens - crazy caller' '
EOF
cat >in <<-\EOF &&
+ start 1000
progress 100
progress 200
progress 1
progress 1000
+ stop
EOF
- test-tool progress --total=1000 "Working hard" <in 2>stderr &&
+ test-tool progress <in 2>stderr &&
show_cr <stderr >out &&
test_cmp expect out
@@ -185,6 +192,7 @@ test_expect_success 'progress display with throughput' '
EOF
cat >in <<-\EOF &&
+ start 0
throughput 102400 1000
update
progress 10
@@ -197,8 +205,9 @@ test_expect_success 'progress display with throughput' '
throughput 409600 4000
update
progress 40
+ stop
EOF
- test-tool progress "Working hard" <in 2>stderr &&
+ test-tool progress <in 2>stderr &&
show_cr <stderr >out &&
test_cmp expect out
@@ -214,6 +223,7 @@ test_expect_success 'progress display with throughput and total' '
EOF
cat >in <<-\EOF &&
+ start 40
throughput 102400 1000
progress 10
throughput 204800 2000
@@ -222,8 +232,9 @@ test_expect_success 'progress display with throughput and total' '
progress 30
throughput 409600 4000
progress 40
+ stop
EOF
- test-tool progress --total=40 "Working hard" <in 2>stderr &&
+ test-tool progress <in 2>stderr &&
show_cr <stderr >out &&
test_cmp expect out
@@ -239,6 +250,7 @@ test_expect_success 'cover up after throughput shortens' '
EOF
cat >in <<-\EOF &&
+ start 0
throughput 409600 1000
update
progress 1
@@ -251,8 +263,9 @@ test_expect_success 'cover up after throughput shortens' '
throughput 1638400 4000
update
progress 4
+ stop
EOF
- test-tool progress "Working hard" <in 2>stderr &&
+ test-tool progress <in 2>stderr &&
show_cr <stderr >out &&
test_cmp expect out
@@ -267,6 +280,7 @@ test_expect_success 'cover up after throughput shortens a lot' '
EOF
cat >in <<-\EOF &&
+ start 0
throughput 1 1000
update
progress 1
@@ -276,8 +290,9 @@ test_expect_success 'cover up after throughput shortens a lot' '
throughput 3145728 3000
update
progress 3
+ stop
EOF
- test-tool progress "Working hard" <in 2>stderr &&
+ test-tool progress <in 2>stderr &&
show_cr <stderr >out &&
test_cmp expect out
@@ -285,6 +300,7 @@ test_expect_success 'cover up after throughput shortens a lot' '
test_expect_success 'progress generates traces' '
cat >in <<-\EOF &&
+ start 40
throughput 102400 1000
update
progress 10
@@ -297,10 +313,11 @@ test_expect_success 'progress generates traces' '
throughput 409600 4000
update
progress 40
+ stop
EOF
- GIT_TRACE2_EVENT="$(pwd)/trace.event" test-tool progress --total=40 \
- "Working hard" <in 2>stderr &&
+ GIT_TRACE2_EVENT="$(pwd)/trace.event" test-tool progress \
+ <in 2>stderr &&
# t0212/parse_events.perl intentionally omits regions and data.
test_region progress "Working hard" trace.event &&
@@ -308,4 +325,54 @@ test_expect_success 'progress generates traces' '
grep "\"key\":\"total_bytes\",\"value\":\"409600\"" trace.event
'
+test_expect_success 'progress generates traces: stop / start' '
+ cat >in <<-\EOF &&
+ start 0
+ stop
+ EOF
+
+ GIT_TRACE2_EVENT="$PWD/trace-startstop.event" test-tool progress \
+ <in 2>stderr &&
+ test_region progress "Working hard" trace-startstop.event
+'
+
+test_expect_success 'progress generates traces: start without stop' '
+ cat >in <<-\EOF &&
+ start 0
+ EOF
+
+ GIT_TRACE2_EVENT="$PWD/trace-start.event" \
+ LSAN_OPTIONS=detect_leaks=0 \
+ test-tool progress \
+ <in 2>stderr &&
+ grep region_enter.*progress trace-start.event &&
+ ! grep region_leave.*progress trace-start.event
+'
+
+test_expect_success 'progress generates traces: stop without start' '
+ cat >in <<-\EOF &&
+ stop
+ EOF
+
+ GIT_TRACE2_EVENT="$PWD/trace-stop.event" test-tool progress \
+ <in 2>stderr &&
+ ! grep region_enter.*progress trace-stop.event &&
+ ! grep region_leave.*progress trace-stop.event
+'
+
+test_expect_success 'progress generates traces: start with active progress bar (no stops)' '
+ cat >in <<-\EOF &&
+ start 0 One
+ start 0 Two
+ EOF
+
+ GIT_TRACE2_EVENT="$PWD/trace-2start.event" \
+ LSAN_OPTIONS=detect_leaks=0 \
+ test-tool progress \
+ <in 2>stderr &&
+ grep region_enter.*progress.*One trace-2start.event &&
+ grep region_enter.*progress.*Two trace-2start.event &&
+ ! grep region_leave trace-2start.event
+'
+
test_done
diff --git a/t/t1001-read-tree-m-2way.sh b/t/t1001-read-tree-m-2way.sh
index d1115528cb..0710b1fb1e 100755
--- a/t/t1001-read-tree-m-2way.sh
+++ b/t/t1001-read-tree-m-2way.sh
@@ -21,7 +21,6 @@ In the test, these paths are used:
yomin - not in H or M
'
-TEST_PASSES_SANITIZE_LEAK=true
. ./test-lib.sh
. "$TEST_DIRECTORY"/lib-read-tree.sh
@@ -38,11 +37,12 @@ compare_change () {
}
check_cache_at () {
- clean_if_empty=$(git diff-files -- "$1")
+ git diff-files -- "$1" >out &&
+ clean_if_empty=$(cat out) &&
case "$clean_if_empty" in
'') echo "$1: clean" ;;
?*) echo "$1: dirty" ;;
- esac
+ esac &&
case "$2,$clean_if_empty" in
clean,) : ;;
clean,?*) false ;;
diff --git a/t/t1002-read-tree-m-u-2way.sh b/t/t1002-read-tree-m-u-2way.sh
index ca5c5510c7..46cbd5514a 100755
--- a/t/t1002-read-tree-m-u-2way.sh
+++ b/t/t1002-read-tree-m-u-2way.sh
@@ -9,7 +9,6 @@ This is identical to t1001, but uses -u to update the work tree as well.
'
-TEST_PASSES_SANITIZE_LEAK=true
. ./test-lib.sh
. "$TEST_DIRECTORY"/lib-read-tree.sh
@@ -23,11 +22,12 @@ compare_change () {
}
check_cache_at () {
- clean_if_empty=$(git diff-files -- "$1")
+ git diff-files -- "$1" >out &&
+ clean_if_empty=$(cat out) &&
case "$clean_if_empty" in
'') echo "$1: clean" ;;
?*) echo "$1: dirty" ;;
- esac
+ esac &&
case "$2,$clean_if_empty" in
clean,) : ;;
clean,?*) false ;;
diff --git a/t/t1003-read-tree-prefix.sh b/t/t1003-read-tree-prefix.sh
index e0db2066f3..c860c08ecb 100755
--- a/t/t1003-read-tree-prefix.sh
+++ b/t/t1003-read-tree-prefix.sh
@@ -25,4 +25,14 @@ test_expect_success 'read-tree --prefix' '
cmp expect actual
'
+test_expect_success 'read-tree --prefix with leading slash exits with error' '
+ git rm -rf . &&
+ test_must_fail git read-tree --prefix=/two/ $tree &&
+ git read-tree --prefix=two/ $tree &&
+
+ git rm -rf . &&
+ test_must_fail git read-tree --prefix=/ $tree &&
+ git read-tree --prefix= $tree
+'
+
test_done
diff --git a/t/t1006-cat-file.sh b/t/t1006-cat-file.sh
index 39382fa195..1b85207694 100755
--- a/t/t1006-cat-file.sh
+++ b/t/t1006-cat-file.sh
@@ -4,6 +4,98 @@ test_description='git cat-file'
. ./test-lib.sh
+test_cmdmode_usage () {
+ test_expect_code 129 "$@" 2>err &&
+ grep "^error:.*is incompatible with" err
+}
+
+for switches in \
+ '-e -p' \
+ '-p -t' \
+ '-t -s' \
+ '-s --textconv' \
+ '--textconv --filters' \
+ '--batch-all-objects -e'
+do
+ test_expect_success "usage: cmdmode $switches" '
+ test_cmdmode_usage git cat-file $switches
+ '
+done
+
+test_incompatible_usage () {
+ test_expect_code 129 "$@" 2>err &&
+ grep -E "^(fatal|error):.*(requires|incompatible with|needs)" err
+}
+
+for opt in --batch --batch-check
+do
+ test_expect_success "usage: incompatible options: --path with $opt" '
+ test_incompatible_usage git cat-file --path=foo $opt
+ '
+done
+
+test_missing_usage () {
+ test_expect_code 129 "$@" 2>err &&
+ grep -E "^fatal:.*required" err
+}
+
+short_modes="-e -p -t -s"
+cw_modes="--textconv --filters"
+
+for opt in $cw_modes
+do
+ test_expect_success "usage: $opt requires another option" '
+ test_missing_usage git cat-file $opt
+ '
+done
+
+for opt in $short_modes
+do
+ test_expect_success "usage: $opt requires another option" '
+ test_missing_usage git cat-file $opt
+ '
+
+ for opt2 in --batch \
+ --batch-check \
+ --follow-symlinks \
+ "--path=foo HEAD:some-path.txt"
+ do
+ test_expect_success "usage: incompatible options: $opt and $opt2" '
+ test_incompatible_usage git cat-file $opt $opt2
+ '
+ done
+done
+
+test_too_many_arguments () {
+ test_expect_code 129 "$@" 2>err &&
+ grep -E "^fatal: too many arguments$" err
+}
+
+for opt in $short_modes $cw_modes
+do
+ args="one two three"
+ test_expect_success "usage: too many arguments: $opt $args" '
+ test_too_many_arguments git cat-file $opt $args
+ '
+
+ for opt2 in --buffer --follow-symlinks
+ do
+ test_expect_success "usage: incompatible arguments: $opt with batch option $opt2" '
+ test_incompatible_usage git cat-file $opt $opt2
+ '
+ done
+done
+
+for opt in --buffer \
+ --follow-symlinks \
+ --batch-all-objects
+do
+ test_expect_success "usage: bad option combination: $opt without batch mode" '
+ test_incompatible_usage git cat-file $opt &&
+ test_incompatible_usage git cat-file $opt commit HEAD
+ '
+done
+
echo_without_newline () {
printf '%s' "$*"
}
@@ -13,13 +105,18 @@ strlen () {
}
maybe_remove_timestamp () {
- if test -z "$2"; then
- echo_without_newline "$1"
- else
- echo_without_newline "$(printf '%s\n' "$1" | sed -e 's/ [0-9][0-9]* [-+][0-9][0-9][0-9][0-9]$//')"
- fi
+ if test -z "$2"; then
+ echo_without_newline "$1"
+ else
+ echo_without_newline "$(printf '%s\n' "$1" | remove_timestamp)"
+ fi
+}
+
+remove_timestamp () {
+ sed -e 's/ [0-9][0-9]* [-+][0-9][0-9][0-9][0-9]$//'
}
+
run_tests () {
type=$1
sha1=$2
@@ -85,12 +182,36 @@ $content"
test_cmp expect actual
'
+ for opt in --buffer --no-buffer
+ do
+ test -z "$content" ||
+ test_expect_success "--batch-command $opt output of $type content is correct" '
+ maybe_remove_timestamp "$batch_output" $no_ts >expect &&
+ maybe_remove_timestamp "$(test_write_lines "contents $sha1" |
+ git cat-file --batch-command $opt)" $no_ts >actual &&
+ test_cmp expect actual
+ '
+
+ test_expect_success "--batch-command $opt output of $type info is correct" '
+ echo "$sha1 $type $size" >expect &&
+ test_write_lines "info $sha1" |
+ git cat-file --batch-command $opt >actual &&
+ test_cmp expect actual
+ '
+ done
+
test_expect_success "custom --batch-check format" '
echo "$type $sha1" >expect &&
echo $sha1 | git cat-file --batch-check="%(objecttype) %(objectname)" >actual &&
test_cmp expect actual
'
+ test_expect_success "custom --batch-command format" '
+ echo "$type $sha1" >expect &&
+ echo "info $sha1" | git cat-file --batch-command="%(objecttype) %(objectname)" >actual &&
+ test_cmp expect actual
+ '
+
test_expect_success '--batch-check with %(rest)' '
echo "$type this is some extra content" >expect &&
echo "$sha1 this is some extra content" |
@@ -132,6 +253,22 @@ test_expect_success "setup" '
run_tests 'blob' $hello_sha1 $hello_size "$hello_content" "$hello_content"
+test_expect_success '--batch-command --buffer with flush for blob info' '
+ echo "$hello_sha1 blob $hello_size" >expect &&
+ test_write_lines "info $hello_sha1" "flush" |
+ GIT_TEST_CAT_FILE_NO_FLUSH_ON_EXIT=1 \
+ git cat-file --batch-command --buffer >actual &&
+ test_cmp expect actual
+'
+
+test_expect_success '--batch-command --buffer without flush for blob info' '
+ touch output &&
+ test_write_lines "info $hello_sha1" |
+ GIT_TEST_CAT_FILE_NO_FLUSH_ON_EXIT=1 \
+ git cat-file --batch-command --buffer >>output &&
+ test_must_be_empty output
+'
+
test_expect_success '--batch-check without %(rest) considers whole line' '
echo "$hello_sha1 blob $hello_size" >expect &&
git update-index --add --cacheinfo 100644 $hello_sha1 "white space" &&
@@ -175,7 +312,7 @@ test_expect_success \
"Reach a blob from a tag pointing to it" \
"test '$hello_content' = \"\$(git cat-file blob $tag_sha1)\""
-for batch in batch batch-check
+for batch in batch batch-check batch-command
do
for opt in t s e p
do
@@ -281,6 +418,49 @@ test_expect_success "--batch-check with multiple sha1s gives correct format" '
"$(echo_without_newline "$batch_check_input" | git cat-file --batch-check)"
'
+test_expect_success '--batch-command with multiple info calls gives correct format' '
+ cat >expect <<-EOF &&
+ $hello_sha1 blob $hello_size
+ $tree_sha1 tree $tree_size
+ $commit_sha1 commit $commit_size
+ $tag_sha1 tag $tag_size
+ deadbeef missing
+ EOF
+
+ git cat-file --batch-command --buffer >actual <<-EOF &&
+ info $hello_sha1
+ info $tree_sha1
+ info $commit_sha1
+ info $tag_sha1
+ info deadbeef
+ EOF
+
+ test_cmp expect actual
+'
+
+test_expect_success '--batch-command with multiple command calls gives correct format' '
+ remove_timestamp >expect <<-EOF &&
+ $hello_sha1 blob $hello_size
+ $hello_content
+ $commit_sha1 commit $commit_size
+ $commit_content
+ $tag_sha1 tag $tag_size
+ $tag_content
+ deadbeef missing
+ EOF
+
+ git cat-file --batch-command --buffer >actual_raw <<-EOF &&
+ contents $hello_sha1
+ contents $commit_sha1
+ contents $tag_sha1
+ contents deadbeef
+ flush
+ EOF
+
+ remove_timestamp <actual_raw >actual &&
+ test_cmp expect actual
+'
+
test_expect_success 'setup blobs which are likely to delta' '
test-tool genrandom foo 10240 >foo &&
{ cat foo && echo plus; } >foo-plus &&
@@ -871,5 +1051,40 @@ test_expect_success 'cat-file --batch-all-objects --batch-check ignores replace'
echo "$orig commit $orig_size" >expect &&
test_cmp expect actual
'
+test_expect_success 'batch-command empty command' '
+ echo "" >cmd &&
+ test_expect_code 128 git cat-file --batch-command <cmd 2>err &&
+ grep "^fatal:.*empty command in input.*" err
+'
+
+test_expect_success 'batch-command whitespace before command' '
+ echo " info deadbeef" >cmd &&
+ test_expect_code 128 git cat-file --batch-command <cmd 2>err &&
+ grep "^fatal:.*whitespace before command.*" err
+'
+
+test_expect_success 'batch-command unknown command' '
+ echo unknown_command >cmd &&
+ test_expect_code 128 git cat-file --batch-command <cmd 2>err &&
+ grep "^fatal:.*unknown command.*" err
+'
+
+test_expect_success 'batch-command missing arguments' '
+ echo "info" >cmd &&
+ test_expect_code 128 git cat-file --batch-command <cmd 2>err &&
+ grep "^fatal:.*info requires arguments.*" err
+'
+
+test_expect_success 'batch-command flush with arguments' '
+ echo "flush arg" >cmd &&
+ test_expect_code 128 git cat-file --batch-command --buffer <cmd 2>err &&
+ grep "^fatal:.*flush takes no arguments.*" err
+'
+
+test_expect_success 'batch-command flush without --buffer' '
+ echo "flush" >cmd &&
+ test_expect_code 128 git cat-file --batch-command <cmd 2>err &&
+ grep "^fatal:.*flush is only for --buffer mode.*" err
+'
test_done
diff --git a/t/t1007-hash-object.sh b/t/t1007-hash-object.sh
index 64b340f227..ac5ad8c740 100755
--- a/t/t1007-hash-object.sh
+++ b/t/t1007-hash-object.sh
@@ -2,6 +2,7 @@
test_description="git hash-object"
+TEST_PASSES_SANITIZE_LEAK=true
. ./test-lib.sh
echo_without_newline() {
diff --git a/t/t1011-read-tree-sparse-checkout.sh b/t/t1011-read-tree-sparse-checkout.sh
index 24092c09a9..63a553d7b3 100755
--- a/t/t1011-read-tree-sparse-checkout.sh
+++ b/t/t1011-read-tree-sparse-checkout.sh
@@ -57,8 +57,8 @@ test_expect_success 'read-tree with .git/info/sparse-checkout but disabled' '
read_tree_u_must_succeed -m -u HEAD &&
git ls-files -t >result &&
test_cmp expected.swt result &&
- test -f init.t &&
- test -f sub/added
+ test_path_is_file init.t &&
+ test_path_is_file sub/added
'
test_expect_success 'read-tree --no-sparse-checkout with empty .git/info/sparse-checkout and enabled' '
@@ -67,8 +67,8 @@ test_expect_success 'read-tree --no-sparse-checkout with empty .git/info/sparse-
read_tree_u_must_succeed --no-sparse-checkout -m -u HEAD &&
git ls-files -t >result &&
test_cmp expected.swt result &&
- test -f init.t &&
- test -f sub/added
+ test_path_is_file init.t &&
+ test_path_is_file sub/added
'
test_expect_success 'read-tree with empty .git/info/sparse-checkout' '
@@ -85,8 +85,8 @@ test_expect_success 'read-tree with empty .git/info/sparse-checkout' '
S subsub/added
EOF
test_cmp expected.swt result &&
- ! test -f init.t &&
- ! test -f sub/added
+ test_path_is_missing init.t &&
+ test_path_is_missing sub/added
'
test_expect_success 'match directories with trailing slash' '
@@ -101,8 +101,8 @@ test_expect_success 'match directories with trailing slash' '
read_tree_u_must_succeed -m -u HEAD &&
git ls-files -t > result &&
test_cmp expected.swt-noinit result &&
- test ! -f init.t &&
- test -f sub/added
+ test_path_is_missing init.t &&
+ test_path_is_file sub/added
'
test_expect_success 'match directories without trailing slash' '
@@ -110,8 +110,8 @@ test_expect_success 'match directories without trailing slash' '
read_tree_u_must_succeed -m -u HEAD &&
git ls-files -t >result &&
test_cmp expected.swt-noinit result &&
- test ! -f init.t &&
- test -f sub/added
+ test_path_is_missing init.t &&
+ test_path_is_file sub/added
'
test_expect_success 'match directories with negated patterns' '
@@ -129,9 +129,9 @@ EOF
git read-tree -m -u HEAD &&
git ls-files -t >result &&
test_cmp expected.swt-negation result &&
- test ! -f init.t &&
- test ! -f sub/added &&
- test -f sub/addedtoo
+ test_path_is_missing init.t &&
+ test_path_is_missing sub/added &&
+ test_path_is_file sub/addedtoo
'
test_expect_success 'match directories with negated patterns (2)' '
@@ -150,9 +150,9 @@ EOF
git read-tree -m -u HEAD &&
git ls-files -t >result &&
test_cmp expected.swt-negation2 result &&
- test -f init.t &&
- test -f sub/added &&
- test ! -f sub/addedtoo
+ test_path_is_file init.t &&
+ test_path_is_file sub/added &&
+ test_path_is_missing sub/addedtoo
'
test_expect_success 'match directory pattern' '
@@ -160,8 +160,8 @@ test_expect_success 'match directory pattern' '
read_tree_u_must_succeed -m -u HEAD &&
git ls-files -t >result &&
test_cmp expected.swt-noinit result &&
- test ! -f init.t &&
- test -f sub/added
+ test_path_is_missing init.t &&
+ test_path_is_file sub/added
'
test_expect_success 'checkout area changes' '
@@ -176,22 +176,43 @@ test_expect_success 'checkout area changes' '
read_tree_u_must_succeed -m -u HEAD &&
git ls-files -t >result &&
test_cmp expected.swt-nosub result &&
- test -f init.t &&
- test ! -f sub/added
+ test_path_is_file init.t &&
+ test_path_is_missing sub/added
'
test_expect_success 'read-tree updates worktree, absent case' '
echo sub/added >.git/info/sparse-checkout &&
git checkout -f top &&
read_tree_u_must_succeed -m -u HEAD^ &&
- test ! -f init.t
+ test_path_is_missing init.t
+'
+
+test_expect_success 'read-tree will not throw away dirty changes, non-sparse' '
+ echo "/*" >.git/info/sparse-checkout &&
+ read_tree_u_must_succeed -m -u HEAD &&
+
+ echo dirty >init.t &&
+ read_tree_u_must_fail -m -u HEAD^ &&
+ test_path_is_file init.t &&
+ grep -q dirty init.t
+'
+
+test_expect_success 'read-tree will not throw away dirty changes, sparse' '
+ echo "/*" >.git/info/sparse-checkout &&
+ read_tree_u_must_succeed -m -u HEAD &&
+
+ echo dirty >init.t &&
+ echo sub/added >.git/info/sparse-checkout &&
+ read_tree_u_must_fail -m -u HEAD^ &&
+ test_path_is_file init.t &&
+ grep -q dirty init.t
'
test_expect_success 'read-tree updates worktree, dirty case' '
echo sub/added >.git/info/sparse-checkout &&
git checkout -f top &&
echo dirty >init.t &&
- read_tree_u_must_succeed -m -u HEAD^ &&
+ read_tree_u_must_fail -m -u HEAD^ &&
grep -q dirty init.t &&
rm init.t
'
@@ -208,7 +229,7 @@ test_expect_success 'read-tree adds to worktree, absent case' '
echo init.t >.git/info/sparse-checkout &&
git checkout -f removed &&
read_tree_u_must_succeed -u -m HEAD^ &&
- test ! -f sub/added
+ test_path_is_missing sub/added
'
test_expect_success 'read-tree adds to worktree, dirty case' '
@@ -227,7 +248,7 @@ test_expect_success 'index removal and worktree narrowing at the same time' '
echo init.t >.git/info/sparse-checkout &&
git checkout removed &&
git ls-files sub/added >result &&
- test ! -f sub/added &&
+ test_path_is_missing sub/added &&
test_must_be_empty result
'
diff --git a/t/t1090-sparse-checkout-scope.sh b/t/t1090-sparse-checkout-scope.sh
index 3deb490187..d1833c0f31 100755
--- a/t/t1090-sparse-checkout-scope.sh
+++ b/t/t1090-sparse-checkout-scope.sh
@@ -52,6 +52,25 @@ test_expect_success 'return to full checkout of main' '
test "$(cat b)" = "modified"
'
+test_expect_success 'skip-worktree on files outside sparse patterns' '
+ git sparse-checkout disable &&
+ git sparse-checkout set --no-cone "a*" &&
+ git checkout-index --all --ignore-skip-worktree-bits &&
+
+ git ls-files -t >output &&
+ ! grep ^S output >actual &&
+ test_must_be_empty actual &&
+
+ test_config sparse.expectFilesOutsideOfPatterns true &&
+ cat <<-\EOF >expect &&
+ S b
+ S c
+ EOF
+ git ls-files -t >output &&
+ grep ^S output >actual &&
+ test_cmp expect actual
+'
+
test_expect_success 'in partial clone, sparse checkout only fetches needed blobs' '
test_create_repo server &&
git clone "file://$(pwd)/server" client &&
diff --git a/t/t1091-sparse-checkout-builtin.sh b/t/t1091-sparse-checkout-builtin.sh
index 42776984fe..9a90031018 100755
--- a/t/t1091-sparse-checkout-builtin.sh
+++ b/t/t1091-sparse-checkout-builtin.sh
@@ -5,6 +5,9 @@ test_description='sparse checkout builtin tests'
GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=main
export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME
+GIT_TEST_SPLIT_INDEX=false
+export GIT_TEST_SPLIT_INDEX
+
. ./test-lib.sh
list_files() {
@@ -79,6 +82,12 @@ test_expect_success 'git sparse-checkout init' '
check_files repo a
'
+test_expect_success 'git sparse-checkout init in empty repo' '
+ test_when_finished rm -rf empty-repo blank-template &&
+ git init --template= empty-repo &&
+ git -C empty-repo sparse-checkout init
+'
+
test_expect_success 'git sparse-checkout list after init' '
git -C repo sparse-checkout list >actual &&
cat >expect <<-\EOF &&
@@ -117,7 +126,7 @@ test_expect_success 'switching to cone mode with non-cone mode patterns' '
cd bad-patterns &&
git sparse-checkout init &&
git sparse-checkout add dir &&
- git config core.sparseCheckoutCone true &&
+ git config --worktree core.sparseCheckoutCone true &&
test_must_fail git sparse-checkout add dir 2>err &&
grep "existing sparse-checkout patterns do not use cone mode" err
)
@@ -146,9 +155,9 @@ test_expect_success 'interaction with clone --no-checkout (unborn index)' '
'
test_expect_success 'set enables config' '
- git init empty-config &&
+ git init worktree-config &&
(
- cd empty-config &&
+ cd worktree-config &&
test_commit test file &&
test_path_is_missing .git/config.worktree &&
git sparse-checkout set nothing &&
@@ -201,6 +210,21 @@ test_expect_success 'add to sparse-checkout' '
check_files repo "a folder1 folder2"
'
+test_expect_success 'worktree: add copies sparse-checkout patterns' '
+ cat repo/.git/info/sparse-checkout >old &&
+ test_when_finished cp old repo/.git/info/sparse-checkout &&
+ test_when_finished git -C repo worktree remove ../worktree &&
+ git -C repo sparse-checkout set --no-cone "/*" &&
+ git -C repo worktree add --quiet ../worktree 2>err &&
+ test_must_be_empty err &&
+ new="$(git -C worktree rev-parse --git-path info/sparse-checkout)" &&
+ test_path_is_file "$new" &&
+ test_cmp repo/.git/info/sparse-checkout "$new" &&
+ git -C worktree sparse-checkout set --cone &&
+ test_cmp_config -C worktree true core.sparseCheckoutCone &&
+ test_must_fail git -C repo core.sparseCheckoutCone
+'
+
test_expect_success 'cone mode: match patterns' '
git -C repo config --worktree core.sparseCheckoutCone true &&
rm -rf repo/a repo/folder1 repo/folder2 &&
@@ -228,36 +252,31 @@ test_expect_success 'sparse-checkout disable' '
'
test_expect_success 'sparse-index enabled and disabled' '
- (
- sane_unset GIT_TEST_SPLIT_INDEX &&
- git -C repo update-index --no-split-index &&
-
- git -C repo sparse-checkout init --cone --sparse-index &&
- test_cmp_config -C repo true index.sparse &&
- git -C repo ls-files --sparse >sparse &&
- git -C repo sparse-checkout disable &&
- git -C repo ls-files --sparse >full &&
-
- cat >expect <<-\EOF &&
- @@ -1,4 +1,7 @@
- a
- -deep/
- -folder1/
- -folder2/
- +deep/a
- +deep/deeper1/a
- +deep/deeper1/deepest/a
- +deep/deeper2/a
- +folder1/a
- +folder2/a
- EOF
+ git -C repo sparse-checkout init --cone --sparse-index &&
+ test_cmp_config -C repo true index.sparse &&
+ git -C repo ls-files --sparse >sparse &&
+ git -C repo sparse-checkout disable &&
+ git -C repo ls-files --sparse >full &&
- diff -u sparse full | tail -n +3 >actual &&
- test_cmp expect actual &&
+ cat >expect <<-\EOF &&
+ @@ -1,4 +1,7 @@
+ a
+ -deep/
+ -folder1/
+ -folder2/
+ +deep/a
+ +deep/deeper1/a
+ +deep/deeper1/deepest/a
+ +deep/deeper2/a
+ +folder1/a
+ +folder2/a
+ EOF
+
+ diff -u sparse full | tail -n +3 >actual &&
+ test_cmp expect actual &&
- git -C repo config --list >config &&
- ! grep index.sparse config
- )
+ git -C repo config --list >config &&
+ test_cmp_config -C repo false index.sparse
'
test_expect_success 'cone mode: init and set' '
@@ -491,6 +510,37 @@ test_expect_failure 'sparse-checkout reapply' '
git -C tweak sparse-checkout disable
'
+test_expect_success 'reapply can handle config options' '
+ git -C repo sparse-checkout init --cone --no-sparse-index &&
+ git -C repo config --worktree --list >actual &&
+ cat >expect <<-\EOF &&
+ core.sparsecheckout=true
+ core.sparsecheckoutcone=true
+ index.sparse=false
+ EOF
+ test_cmp expect actual &&
+
+ git -C repo sparse-checkout reapply --no-cone --no-sparse-index &&
+ git -C repo config --worktree --list >actual &&
+ cat >expect <<-\EOF &&
+ core.sparsecheckout=true
+ core.sparsecheckoutcone=false
+ index.sparse=false
+ EOF
+ test_cmp expect actual &&
+
+ git -C repo sparse-checkout reapply --cone --sparse-index &&
+ git -C repo config --worktree --list >actual &&
+ cat >expect <<-\EOF &&
+ core.sparsecheckout=true
+ core.sparsecheckoutcone=true
+ index.sparse=true
+ EOF
+ test_cmp expect actual &&
+
+ git -C repo sparse-checkout disable
+'
+
test_expect_success 'cone mode: set with core.ignoreCase=true' '
rm repo/.git/info/sparse-checkout &&
git -C repo sparse-checkout init --cone &&
@@ -520,17 +570,17 @@ test_expect_success 'interaction with submodules' '
'
test_expect_success 'different sparse-checkouts with worktrees' '
+ git -C repo sparse-checkout set --cone deep folder1 &&
git -C repo worktree add --detach ../worktree &&
- check_files worktree "a deep folder1 folder2" &&
- git -C worktree sparse-checkout init --cone &&
- git -C repo sparse-checkout set folder1 &&
- git -C worktree sparse-checkout set deep/deeper1 &&
- check_files repo a folder1 &&
- check_files worktree a deep
+ check_files worktree "a deep folder1" &&
+ git -C repo sparse-checkout set --cone folder1 &&
+ git -C worktree sparse-checkout set --cone deep/deeper1 &&
+ check_files repo "a folder1" &&
+ check_files worktree "a deep"
'
test_expect_success 'set using filename keeps file on-disk' '
- git -C repo sparse-checkout set a deep &&
+ git -C repo sparse-checkout set --skip-checks a deep &&
cat >expect <<-\EOF &&
/*
!/*/
@@ -641,7 +691,7 @@ test_expect_success BSLASHPSPEC 'pattern-checks: escaped characters' '
git -C escaped reset --hard $COMMIT &&
check_files escaped "a deep folder1 folder2 zbad\\dir zdoes*exist" zglob[!a]? &&
git -C escaped sparse-checkout init --cone &&
- git -C escaped sparse-checkout set zbad\\dir/bogus "zdoes*not*exist" "zdoes*exist" "zglob[!a]?" &&
+ git -C escaped sparse-checkout set --skip-checks zbad\\dir/bogus "zdoes*not*exist" "zdoes*exist" "zglob[!a]?" &&
cat >expect <<-\EOF &&
/*
!/*/
@@ -766,4 +816,59 @@ test_expect_success 'malformed cone-mode patterns' '
grep "warning: disabling cone pattern matching" err
'
+test_expect_success 'set from subdir pays attention to prefix' '
+ git -C repo sparse-checkout disable &&
+ git -C repo/deep sparse-checkout set --cone deeper2 ../folder1 &&
+
+ git -C repo sparse-checkout list >actual &&
+
+ cat >expect <<-\EOF &&
+ deep/deeper2
+ folder1
+ EOF
+ test_cmp expect actual
+'
+
+test_expect_success 'add from subdir pays attention to prefix' '
+ git -C repo sparse-checkout set --cone deep/deeper2 &&
+ git -C repo/deep sparse-checkout add deeper1/deepest ../folder1 &&
+
+ git -C repo sparse-checkout list >actual &&
+
+ cat >expect <<-\EOF &&
+ deep/deeper1/deepest
+ deep/deeper2
+ folder1
+ EOF
+ test_cmp expect actual
+'
+
+test_expect_success 'set from subdir in non-cone mode throws an error' '
+ git -C repo sparse-checkout disable &&
+ test_must_fail git -C repo/deep sparse-checkout set --no-cone deeper2 ../folder1 2>error &&
+
+ grep "run from the toplevel directory in non-cone mode" error
+'
+
+test_expect_success 'set from subdir in non-cone mode throws an error' '
+ git -C repo sparse-checkout set --no-cone deep/deeper2 &&
+ test_must_fail git -C repo/deep sparse-checkout add deeper1/deepest ../folder1 2>error &&
+
+ grep "run from the toplevel directory in non-cone mode" error
+'
+
+test_expect_success 'by default, cone mode will error out when passed files' '
+ git -C repo sparse-checkout reapply --cone &&
+ test_must_fail git -C repo sparse-checkout add .gitignore 2>error &&
+
+ grep ".gitignore.*is not a directory" error
+'
+
+test_expect_success 'by default, non-cone mode will warn on individual files' '
+ git -C repo sparse-checkout reapply --no-cone &&
+ git -C repo sparse-checkout add .gitignore 2>warning &&
+
+ grep "pass a leading slash before paths.*if you want a single file" warning
+'
+
test_done
diff --git a/t/t1092-sparse-checkout-compatibility.sh b/t/t1092-sparse-checkout-compatibility.sh
index 4ba1617752..6f778cf28c 100755
--- a/t/t1092-sparse-checkout-compatibility.sh
+++ b/t/t1092-sparse-checkout-compatibility.sh
@@ -16,7 +16,9 @@ test_expect_success 'setup' '
echo "after deep" >e &&
echo "after folder1" >g &&
echo "after x" >z &&
- mkdir folder1 folder2 deep x &&
+ mkdir folder1 folder2 deep before x &&
+ echo "before deep" >before/a &&
+ echo "before deep again" >before/b &&
mkdir deep/deeper1 deep/deeper2 deep/before deep/later &&
mkdir deep/deeper1/deepest &&
mkdir deep/deeper1/deepest2 &&
@@ -244,6 +246,25 @@ test_expect_success 'expanded in-memory index matches full index' '
test_sparse_match git ls-files --stage
'
+test_expect_success 'root directory cannot be sparse' '
+ init_repos &&
+
+ # Remove all in-cone files and directories from the index, collapse index
+ # with `git sparse-checkout reapply`
+ git -C sparse-index rm -r . &&
+ git -C sparse-index sparse-checkout reapply &&
+
+ # Verify sparse directories still present, root directory is not sparse
+ cat >expect <<-EOF &&
+ before/
+ folder1/
+ folder2/
+ x/
+ EOF
+ git -C sparse-index ls-files --sparse >actual &&
+ test_cmp expect actual
+'
+
test_expect_success 'status with options' '
init_repos &&
test_sparse_match ls &&
@@ -260,6 +281,13 @@ test_expect_success 'status with options' '
test_all_match git status --porcelain=v2 -uno
'
+test_expect_success 'status with diff in unexpanded sparse directory' '
+ init_repos &&
+ test_all_match git checkout rename-base &&
+ test_all_match git reset --soft rename-out-to-out &&
+ test_all_match git status --porcelain=v2
+'
+
test_expect_success 'status reports sparse-checkout' '
init_repos &&
git -C sparse-checkout status >full &&
@@ -367,7 +395,7 @@ test_expect_success 'status/add: outside sparse cone' '
write_script edit-contents <<-\EOF &&
echo text >>$1
EOF
- run_on_sparse ../edit-contents folder1/a &&
+ run_on_all ../edit-contents folder1/a &&
run_on_all ../edit-contents folder1/new &&
test_sparse_match git status --porcelain=v2 &&
@@ -376,8 +404,8 @@ test_expect_success 'status/add: outside sparse cone' '
test_sparse_match test_must_fail git add folder1/a &&
grep "Disable or modify the sparsity rules" sparse-checkout-err &&
test_sparse_unstaged folder1/a &&
- test_sparse_match test_must_fail git add --refresh folder1/a &&
- grep "Disable or modify the sparsity rules" sparse-checkout-err &&
+ test_all_match git add --refresh folder1/a &&
+ test_must_be_empty sparse-checkout-err &&
test_sparse_unstaged folder1/a &&
test_sparse_match test_must_fail git add folder1/new &&
grep "Disable or modify the sparsity rules" sparse-checkout-err &&
@@ -593,13 +621,11 @@ test_expect_success 'reset with pathspecs outside sparse definition' '
test_sparse_match git reset update-folder1 -- folder1 &&
git -C full-checkout reset update-folder1 -- folder1 &&
- test_sparse_match git status --porcelain=v2 &&
- test_all_match git rev-parse HEAD:folder1 &&
+ test_all_match git ls-files -s -- folder1 &&
test_sparse_match git reset update-folder2 -- folder2/a &&
git -C full-checkout reset update-folder2 -- folder2/a &&
- test_sparse_match git status --porcelain=v2 &&
- test_all_match git rev-parse HEAD:folder2/a
+ test_all_match git ls-files -s -- folder2/a
'
test_expect_success 'reset with wildcard pathspec' '
@@ -629,6 +655,260 @@ test_expect_success 'reset with wildcard pathspec' '
test_all_match git ls-files -s -- folder1
'
+test_expect_success 'update-index modify outside sparse definition' '
+ init_repos &&
+
+ write_script edit-contents <<-\EOF &&
+ echo text >>$1
+ EOF
+
+ # Create & modify folder1/a
+ # Note that this setup is a manual way of reaching the erroneous
+ # condition in which a `skip-worktree` enabled, outside-of-cone file
+ # exists on disk. It is used here to ensure `update-index` is stable
+ # and behaves predictably if such a condition occurs.
+ run_on_sparse mkdir -p folder1 &&
+ run_on_sparse cp ../initial-repo/folder1/a folder1/a &&
+ run_on_all ../edit-contents folder1/a &&
+
+ # If file has skip-worktree enabled, but the file is present, it is
+ # treated the same as if skip-worktree is disabled
+ test_all_match git status --porcelain=v2 &&
+ test_all_match git update-index folder1/a &&
+ test_all_match git status --porcelain=v2 &&
+
+ # When skip-worktree is disabled (even on files outside sparse cone), file
+ # is updated in the index
+ test_sparse_match git update-index --no-skip-worktree folder1/a &&
+ test_all_match git status --porcelain=v2 &&
+ test_all_match git update-index folder1/a &&
+ test_all_match git status --porcelain=v2
+'
+
+test_expect_success 'update-index --add outside sparse definition' '
+ init_repos &&
+
+ write_script edit-contents <<-\EOF &&
+ echo text >>$1
+ EOF
+
+ # Create folder1, add new file
+ run_on_sparse mkdir -p folder1 &&
+ run_on_all ../edit-contents folder1/b &&
+
+ # The *untracked* out-of-cone file is added to the index because it does
+ # not have a `skip-worktree` bit to signal that it should be ignored
+ # (unlike in `git add`, which will fail due to the file being outside
+ # the sparse checkout definition).
+ test_all_match git update-index --add folder1/b &&
+ test_all_match git status --porcelain=v2
+'
+
+# NEEDSWORK: `--remove`, unlike the rest of `update-index`, does not ignore
+# `skip-worktree` entries by default and will remove them from the index.
+# The `--ignore-skip-worktree-entries` flag must be used in conjunction with
+# `--remove` to ignore the `skip-worktree` entries and prevent their removal
+# from the index.
+test_expect_success 'update-index --remove outside sparse definition' '
+ init_repos &&
+
+ # When --ignore-skip-worktree-entries is _not_ specified:
+ # out-of-cone, not-on-disk files are removed from the index
+ test_sparse_match git update-index --remove folder1/a &&
+ cat >expect <<-EOF &&
+ D folder1/a
+ EOF
+ test_sparse_match git diff --cached --name-status &&
+ test_cmp expect sparse-checkout-out &&
+
+ # Reset the state
+ test_all_match git reset --hard &&
+
+ # When --ignore-skip-worktree-entries is specified, out-of-cone
+ # (skip-worktree) files are ignored
+ test_sparse_match git update-index --remove --ignore-skip-worktree-entries folder1/a &&
+ test_sparse_match git diff --cached --name-status &&
+ test_must_be_empty sparse-checkout-out &&
+
+ # Reset the state
+ test_all_match git reset --hard &&
+
+ # --force-remove supercedes --ignore-skip-worktree-entries, removing
+ # a skip-worktree file from the index (and disk) when both are specified
+ # with --remove
+ test_sparse_match git update-index --force-remove --ignore-skip-worktree-entries folder1/a &&
+ cat >expect <<-EOF &&
+ D folder1/a
+ EOF
+ test_sparse_match git diff --cached --name-status &&
+ test_cmp expect sparse-checkout-out
+'
+
+test_expect_success 'update-index with directories' '
+ init_repos &&
+
+ # update-index will exit silently when provided with a directory name
+ # containing a trailing slash
+ test_all_match git update-index deep/ folder1/ &&
+ grep "Ignoring path deep/" sparse-checkout-err &&
+ grep "Ignoring path folder1/" sparse-checkout-err &&
+
+ # When update-index is given a directory name WITHOUT a trailing slash, it will
+ # behave in different ways depending on the status of the directory on disk:
+ # * if it exists, the command exits with an error ("add individual files instead")
+ # * if it does NOT exist (e.g., in a sparse-checkout), it is assumed to be a
+ # file and either triggers an error ("does not exist and --remove not passed")
+ # or is ignored completely (when using --remove)
+ test_all_match test_must_fail git update-index deep &&
+ run_on_all test_must_fail git update-index folder1 &&
+ test_must_fail git -C full-checkout update-index --remove folder1 &&
+ test_sparse_match git update-index --remove folder1 &&
+ test_all_match git status --porcelain=v2
+'
+
+test_expect_success 'update-index --again file outside sparse definition' '
+ init_repos &&
+
+ test_all_match git checkout -b test-reupdate &&
+
+ # Update HEAD without modifying the index to introduce a difference in
+ # folder1/a
+ test_sparse_match git reset --soft update-folder1 &&
+
+ # Because folder1/a differs in the index vs HEAD,
+ # `git update-index --no-skip-worktree --again` will effectively perform
+ # `git update-index --no-skip-worktree folder1/a` and remove the skip-worktree
+ # flag from folder1/a
+ test_sparse_match git update-index --no-skip-worktree --again &&
+ test_sparse_match git status --porcelain=v2 &&
+
+ cat >expect <<-EOF &&
+ D folder1/a
+ EOF
+ test_sparse_match git diff --name-status &&
+ test_cmp expect sparse-checkout-out
+'
+
+test_expect_success 'update-index --cacheinfo' '
+ init_repos &&
+
+ deep_a_oid=$(git -C full-checkout rev-parse update-deep:deep/a) &&
+ folder2_oid=$(git -C full-checkout rev-parse update-folder2:folder2) &&
+ folder1_a_oid=$(git -C full-checkout rev-parse update-folder1:folder1/a) &&
+
+ test_all_match git update-index --cacheinfo 100644 $deep_a_oid deep/a &&
+ test_all_match git status --porcelain=v2 &&
+
+ # Cannot add sparse directory, even in sparse index case
+ test_all_match test_must_fail git update-index --add --cacheinfo 040000 $folder2_oid folder2/ &&
+
+ # Sparse match only: the new outside-of-cone entry is added *without* skip-worktree,
+ # so `git status` reports it as "deleted" in the worktree
+ test_sparse_match git update-index --add --cacheinfo 100644 $folder1_a_oid folder1/a &&
+ test_sparse_match git status --porcelain=v2 &&
+ cat >expect <<-EOF &&
+ MD folder1/a
+ EOF
+ test_sparse_match git status --short -- folder1/a &&
+ test_cmp expect sparse-checkout-out &&
+
+ # To return folder1/a to "normal" for a sparse checkout (ignored &
+ # outside-of-cone), add the skip-worktree flag.
+ test_sparse_match git update-index --skip-worktree folder1/a &&
+ cat >expect <<-EOF &&
+ S folder1/a
+ EOF
+ test_sparse_match git ls-files -t -- folder1/a &&
+ test_cmp expect sparse-checkout-out
+'
+
+for MERGE_TREES in "base HEAD update-folder2" \
+ "update-folder1 update-folder2" \
+ "update-folder2"
+do
+ test_expect_success "'read-tree -mu $MERGE_TREES' with files outside sparse definition" '
+ init_repos &&
+
+ # Although the index matches, without --no-sparse-checkout, outside-of-
+ # definition files will not exist on disk for sparse checkouts
+ test_all_match git read-tree -mu $MERGE_TREES &&
+ test_all_match git status --porcelain=v2 &&
+ test_path_is_missing sparse-checkout/folder2 &&
+ test_path_is_missing sparse-index/folder2 &&
+
+ test_all_match git read-tree --reset -u HEAD &&
+ test_all_match git status --porcelain=v2 &&
+
+ test_all_match git read-tree -mu --no-sparse-checkout $MERGE_TREES &&
+ test_all_match git status --porcelain=v2 &&
+ test_cmp sparse-checkout/folder2/a sparse-index/folder2/a &&
+ test_cmp sparse-checkout/folder2/a full-checkout/folder2/a
+
+ '
+done
+
+test_expect_success 'read-tree --merge with edit/edit conflicts in sparse directories' '
+ init_repos &&
+
+ # Merge of multiple changes to same directory (but not same files) should
+ # succeed
+ test_all_match git read-tree -mu base rename-base update-folder1 &&
+ test_all_match git status --porcelain=v2 &&
+
+ test_all_match git reset --hard &&
+
+ test_all_match git read-tree -mu rename-base update-folder2 &&
+ test_all_match git status --porcelain=v2 &&
+
+ test_all_match git reset --hard &&
+
+ test_all_match test_must_fail git read-tree -mu base update-folder1 rename-out-to-in &&
+ test_all_match test_must_fail git read-tree -mu rename-out-to-in update-folder1
+'
+
+test_expect_success 'read-tree --prefix' '
+ init_repos &&
+
+ # If files differing between the index and target <commit-ish> exist
+ # inside the prefix, `read-tree --prefix` should fail
+ test_all_match test_must_fail git read-tree --prefix=deep/ deepest &&
+ test_all_match test_must_fail git read-tree --prefix=folder1/ update-folder1 &&
+
+ # If no differing index entries exist matching the prefix,
+ # `read-tree --prefix` updates the index successfully
+ test_all_match git rm -rf deep/deeper1/deepest/ &&
+ test_all_match git read-tree --prefix=deep/deeper1/deepest -u deepest &&
+ test_all_match git status --porcelain=v2 &&
+
+ test_all_match git rm -rf --sparse folder1/ &&
+ test_all_match git read-tree --prefix=folder1/ -u update-folder1 &&
+ test_all_match git status --porcelain=v2 &&
+
+ test_all_match git rm -rf --sparse folder2/0 &&
+ test_all_match git read-tree --prefix=folder2/0/ -u rename-out-to-out &&
+ test_all_match git status --porcelain=v2
+'
+
+test_expect_success 'read-tree --merge with directory-file conflicts' '
+ init_repos &&
+
+ test_all_match git checkout -b test-branch rename-base &&
+
+ # Although the index matches, without --no-sparse-checkout, outside-of-
+ # definition files will not exist on disk for sparse checkouts
+ test_sparse_match git read-tree -mu rename-out-to-out &&
+ test_sparse_match git status --porcelain=v2 &&
+ test_path_is_missing sparse-checkout/folder2 &&
+ test_path_is_missing sparse-index/folder2 &&
+
+ test_sparse_match git read-tree --reset -u HEAD &&
+ test_sparse_match git status --porcelain=v2 &&
+
+ test_sparse_match git read-tree -mu --no-sparse-checkout rename-out-to-out &&
+ test_sparse_match git status --porcelain=v2 &&
+ test_cmp sparse-checkout/folder2/0/1 sparse-index/folder2/0/1
+'
+
test_expect_success 'merge, cherry-pick, and rebase' '
init_repos &&
@@ -754,6 +1034,123 @@ test_expect_success 'cherry-pick with conflicts' '
test_all_match test_must_fail git cherry-pick to-cherry-pick
'
+test_expect_success 'stash' '
+ init_repos &&
+
+ write_script edit-contents <<-\EOF &&
+ echo text >>$1
+ EOF
+
+ # Stash a sparse directory (folder1)
+ test_all_match git checkout -b test-branch rename-base &&
+ test_all_match git reset --soft rename-out-to-out &&
+ test_all_match git stash &&
+ test_all_match git status --porcelain=v2 &&
+
+ # Apply the sparse directory stash without reinstating the index
+ test_all_match git stash apply -q &&
+ test_all_match git status --porcelain=v2 &&
+
+ # Reset to state where stash can be applied
+ test_sparse_match git sparse-checkout reapply &&
+ test_all_match git reset --hard rename-out-to-out &&
+
+ # Apply the sparse directory stash *with* reinstating the index
+ test_all_match git stash apply --index -q &&
+ test_all_match git status --porcelain=v2 &&
+
+ # Reset to state where we will get a conflict applying the stash
+ test_sparse_match git sparse-checkout reapply &&
+ test_all_match git reset --hard update-folder1 &&
+
+ # Apply the sparse directory stash with conflicts
+ test_all_match test_must_fail git stash apply --index -q &&
+ test_all_match test_must_fail git stash apply -q &&
+ test_all_match git status --porcelain=v2 &&
+
+ # Reset to base branch
+ test_sparse_match git sparse-checkout reapply &&
+ test_all_match git reset --hard base &&
+
+ # Stash & unstash an untracked file outside of the sparse checkout
+ # definition.
+ run_on_sparse mkdir -p folder1 &&
+ run_on_all ../edit-contents folder1/new &&
+ test_all_match git stash -u &&
+ test_all_match git status --porcelain=v2 &&
+
+ test_all_match git stash pop -q &&
+ test_all_match git status --porcelain=v2
+'
+
+test_expect_success 'checkout-index inside sparse definition' '
+ init_repos &&
+
+ run_on_all rm -f deep/a &&
+ test_all_match git checkout-index -- deep/a &&
+ test_all_match git status --porcelain=v2 &&
+
+ echo test >>new-a &&
+ run_on_all cp ../new-a a &&
+ test_all_match test_must_fail git checkout-index -- a &&
+ test_all_match git checkout-index -f -- a &&
+ test_all_match git status --porcelain=v2
+'
+
+test_expect_success 'checkout-index outside sparse definition' '
+ init_repos &&
+
+ # Without --ignore-skip-worktree-bits, outside-of-cone files will trigger
+ # an error
+ test_sparse_match test_must_fail git checkout-index -- folder1/a &&
+ test_i18ngrep "folder1/a has skip-worktree enabled" sparse-checkout-err &&
+ test_path_is_missing folder1/a &&
+
+ # With --ignore-skip-worktree-bits, outside-of-cone files are checked out
+ test_sparse_match git checkout-index --ignore-skip-worktree-bits -- folder1/a &&
+ test_cmp sparse-checkout/folder1/a sparse-index/folder1/a &&
+ test_cmp sparse-checkout/folder1/a full-checkout/folder1/a &&
+
+ run_on_sparse rm -rf folder1 &&
+ echo test >new-a &&
+ run_on_sparse mkdir -p folder1 &&
+ run_on_all cp ../new-a folder1/a &&
+
+ test_all_match test_must_fail git checkout-index --ignore-skip-worktree-bits -- folder1/a &&
+ test_all_match git checkout-index -f --ignore-skip-worktree-bits -- folder1/a &&
+ test_cmp sparse-checkout/folder1/a sparse-index/folder1/a &&
+ test_cmp sparse-checkout/folder1/a full-checkout/folder1/a
+'
+
+test_expect_success 'checkout-index with folders' '
+ init_repos &&
+
+ # Inside checkout definition
+ test_all_match test_must_fail git checkout-index -f -- deep/ &&
+
+ # Outside checkout definition
+ # Note: although all tests fail (as expected), the messaging differs. For
+ # non-sparse index checkouts, the error is that the "file" does not appear
+ # in the index; for sparse checkouts, the error is explicitly that the
+ # entry is a sparse directory.
+ run_on_all test_must_fail git checkout-index -f -- folder1/ &&
+ test_cmp full-checkout-err sparse-checkout-err &&
+ ! test_cmp full-checkout-err sparse-index-err &&
+ grep "is a sparse directory" sparse-index-err
+'
+
+test_expect_success 'checkout-index --all' '
+ init_repos &&
+
+ test_all_match git checkout-index --all &&
+ test_sparse_match test_path_is_missing folder1 &&
+
+ # --ignore-skip-worktree-bits will cause `skip-worktree` files to be
+ # checked out, causing the outside-of-cone `folder1` to exist on-disk
+ test_all_match git checkout-index --ignore-skip-worktree-bits --all &&
+ test_all_match test_path_exists folder1
+'
+
test_expect_success 'clean' '
init_repos &&
@@ -763,27 +1160,73 @@ test_expect_success 'clean' '
test_all_match git commit -m "ignore bogus files" &&
run_on_sparse mkdir folder1 &&
+ run_on_all mkdir -p deep/untracked-deep &&
run_on_all touch folder1/bogus &&
+ run_on_all touch folder1/untracked &&
+ run_on_all touch deep/untracked-deep/bogus &&
+ run_on_all touch deep/untracked-deep/untracked &&
test_all_match git status --porcelain=v2 &&
test_all_match git clean -f &&
test_all_match git status --porcelain=v2 &&
test_sparse_match ls &&
test_sparse_match ls folder1 &&
+ run_on_all test_path_exists folder1/bogus &&
+ run_on_all test_path_is_missing folder1/untracked &&
+ run_on_all test_path_exists deep/untracked-deep/bogus &&
+ run_on_all test_path_exists deep/untracked-deep/untracked &&
+
+ test_all_match git clean -fd &&
+ test_all_match git status --porcelain=v2 &&
+ test_sparse_match ls &&
+ test_sparse_match ls folder1 &&
+ run_on_all test_path_exists folder1/bogus &&
+ run_on_all test_path_exists deep/untracked-deep/bogus &&
+ run_on_all test_path_is_missing deep/untracked-deep/untracked &&
test_all_match git clean -xf &&
test_all_match git status --porcelain=v2 &&
test_sparse_match ls &&
test_sparse_match ls folder1 &&
+ run_on_all test_path_is_missing folder1/bogus &&
+ run_on_all test_path_exists deep/untracked-deep/bogus &&
test_all_match git clean -xdf &&
test_all_match git status --porcelain=v2 &&
test_sparse_match ls &&
test_sparse_match ls folder1 &&
+ run_on_all test_path_is_missing deep/untracked-deep/bogus &&
test_sparse_match test_path_is_dir folder1
'
+for builtin in show rev-parse
+do
+ test_expect_success "$builtin (cached blobs/trees)" "
+ init_repos &&
+
+ test_all_match git $builtin :a &&
+ test_all_match git $builtin :deep/a &&
+ test_sparse_match git $builtin :folder1/a &&
+
+ # The error message differs depending on whether
+ # the directory exists in the worktree.
+ test_all_match test_must_fail git $builtin :deep/ &&
+ test_must_fail git -C full-checkout $builtin :folder1/ &&
+ test_sparse_match test_must_fail git $builtin :folder1/ &&
+
+ # Change the sparse cone for an extra case:
+ run_on_sparse git sparse-checkout set deep/deeper1 &&
+
+ # deep/deeper2 is a sparse directory in the sparse index.
+ test_sparse_match test_must_fail git $builtin :deep/deeper2/ &&
+
+ # deep/deeper2/deepest is not in the sparse index, but
+ # will trigger an index expansion.
+ test_sparse_match test_must_fail git $builtin :deep/deeper2/deepest/
+ "
+done
+
test_expect_success 'submodule handling' '
init_repos &&
@@ -855,7 +1298,10 @@ test_expect_success 'index.sparse disabled inline uses full index' '
ensure_not_expanded () {
rm -f trace2.txt &&
- echo >>sparse-index/untracked.txt &&
+ if test -z "$WITHOUT_UNTRACKED_TXT"
+ then
+ echo >>sparse-index/untracked.txt
+ fi &&
if test "$1" = "!"
then
@@ -898,6 +1344,8 @@ test_expect_success 'sparse-index is not expanded' '
echo >>sparse-index/untracked.txt &&
ensure_not_expanded add . &&
+ ensure_not_expanded checkout-index -f a &&
+ ensure_not_expanded checkout-index -f --all &&
for ref in update-deep update-folder1 update-folder2 update-deep
do
echo >>sparse-index/README.md &&
@@ -926,6 +1374,8 @@ test_expect_success 'sparse-index is not expanded' '
# Wildcard identifies only full sparse directories, no index expansion
ensure_not_expanded reset deepest -- folder\* &&
+ ensure_not_expanded clean -fd &&
+
ensure_not_expanded checkout -f update-deep &&
test_config -C sparse-index pull.twohead ort &&
(
@@ -955,6 +1405,30 @@ test_expect_success 'sparse-index is not expanded: merge conflict in cone' '
)
'
+test_expect_success 'sparse-index is not expanded: stash' '
+ init_repos &&
+
+ echo >>sparse-index/a &&
+ ensure_not_expanded stash &&
+ ensure_not_expanded stash list &&
+ ensure_not_expanded stash show stash@{0} &&
+ ensure_not_expanded stash apply stash@{0} &&
+ ensure_not_expanded stash drop stash@{0} &&
+
+ echo >>sparse-index/deep/new &&
+ ensure_not_expanded stash -u &&
+ (
+ WITHOUT_UNTRACKED_TXT=1 &&
+ ensure_not_expanded stash pop
+ ) &&
+
+ ensure_not_expanded stash create &&
+ oid=$(git -C sparse-index stash create) &&
+ ensure_not_expanded stash store -m "test" $oid &&
+ ensure_not_expanded reset --hard &&
+ ensure_not_expanded stash pop
+'
+
test_expect_success 'sparse index is not expanded: diff' '
init_repos &&
@@ -1001,6 +1475,33 @@ test_expect_success 'sparse index is not expanded: diff' '
ensure_not_expanded diff --cached
'
+test_expect_success 'sparse index is not expanded: show and rev-parse' '
+ init_repos &&
+
+ ensure_not_expanded show :a &&
+ ensure_not_expanded show :deep/a &&
+ ensure_not_expanded rev-parse :a &&
+ ensure_not_expanded rev-parse :deep/a
+'
+
+test_expect_success 'sparse index is not expanded: update-index' '
+ init_repos &&
+
+ deep_a_oid=$(git -C full-checkout rev-parse update-deep:deep/a) &&
+ ensure_not_expanded update-index --cacheinfo 100644 $deep_a_oid deep/a &&
+
+ echo "test" >sparse-index/README.md &&
+ echo "test2" >sparse-index/a &&
+ rm -f sparse-index/deep/a &&
+
+ ensure_not_expanded update-index --add README.md &&
+ ensure_not_expanded update-index a &&
+ ensure_not_expanded update-index --remove deep/a &&
+
+ ensure_not_expanded reset --soft update-deep &&
+ ensure_not_expanded update-index --add --remove --again
+'
+
test_expect_success 'sparse index is not expanded: blame' '
init_repos &&
@@ -1023,6 +1524,27 @@ test_expect_success 'sparse index is not expanded: fetch/pull' '
ensure_not_expanded pull full base
'
+test_expect_success 'sparse index is not expanded: read-tree' '
+ init_repos &&
+
+ ensure_not_expanded checkout -b test-branch update-folder1 &&
+ for MERGE_TREES in "base HEAD update-folder2" \
+ "base HEAD rename-base" \
+ "base update-folder2" \
+ "base rename-base" \
+ "update-folder2"
+ do
+ ensure_not_expanded read-tree -mu $MERGE_TREES &&
+ ensure_not_expanded reset --hard || return 1
+ done &&
+
+ rm -rf sparse-index/deep/deeper2 &&
+ ensure_not_expanded add . &&
+ ensure_not_expanded commit -m "test" &&
+
+ ensure_not_expanded read-tree --prefix=deep/deeper2 -u deepest
+'
+
test_expect_success 'ls-files' '
init_repos &&
@@ -1037,6 +1559,7 @@ test_expect_success 'ls-files' '
cat >expect <<-\EOF &&
a
+ before/
deep/
e
folder1-
@@ -1057,36 +1580,34 @@ test_expect_success 'ls-files' '
test_cmp dense sparse &&
# Set up a strange condition of having a file edit
- # outside of the sparse-checkout cone. This is just
- # to verify that sparse-checkout and sparse-index
- # behave the same in this case.
+ # outside of the sparse-checkout cone. We want to verify
+ # that all modes handle this the same, and detect the
+ # modification.
write_script edit-content <<-\EOF &&
- mkdir folder1 &&
+ mkdir -p folder1 &&
echo content >>folder1/a
EOF
- run_on_sparse ../edit-content &&
+ run_on_all ../edit-content &&
- # ls-files does not currently notice modified files whose
- # cache entries are marked SKIP_WORKTREE. This may change
- # in the future, but here we test that sparse index does
- # not accidentally create a change of behavior.
- test_sparse_match git ls-files --modified &&
- test_must_be_empty sparse-checkout-out &&
- test_must_be_empty sparse-index-out &&
+ test_all_match git ls-files --modified &&
git -C sparse-index ls-files --sparse --modified >sparse-index-out &&
- test_must_be_empty sparse-index-out &&
+ cat >expect <<-\EOF &&
+ folder1/a
+ EOF
+ test_cmp expect sparse-index-out &&
# Add folder1 to the sparse-checkout cone and
# check that ls-files shows the expanded files.
test_sparse_match git sparse-checkout add folder1 &&
- test_sparse_match git ls-files --modified &&
+ test_all_match git ls-files --modified &&
test_all_match git ls-files &&
git -C sparse-index ls-files --sparse >actual &&
cat >expect <<-\EOF &&
a
+ before/
deep/
e
folder1-
diff --git a/t/t1300-config.sh b/t/t1300-config.sh
index 78359f1f4a..7dd9b325d9 100755
--- a/t/t1300-config.sh
+++ b/t/t1300-config.sh
@@ -2388,4 +2388,122 @@ test_expect_success '--get and --get-all with --fixed-value' '
test_must_fail git config --file=config --get-regexp --fixed-value fixed+ non-existent
'
+test_expect_success 'includeIf.hasconfig:remote.*.url' '
+ git init hasremoteurlTest &&
+ test_when_finished "rm -rf hasremoteurlTest" &&
+
+ cat >include-this <<-\EOF &&
+ [user]
+ this = this-is-included
+ EOF
+ cat >dont-include-that <<-\EOF &&
+ [user]
+ that = that-is-not-included
+ EOF
+ cat >>hasremoteurlTest/.git/config <<-EOF &&
+ [includeIf "hasconfig:remote.*.url:foourl"]
+ path = "$(pwd)/include-this"
+ [includeIf "hasconfig:remote.*.url:barurl"]
+ path = "$(pwd)/dont-include-that"
+ [remote "foo"]
+ url = foourl
+ EOF
+
+ echo this-is-included >expect-this &&
+ git -C hasremoteurlTest config --get user.this >actual-this &&
+ test_cmp expect-this actual-this &&
+
+ test_must_fail git -C hasremoteurlTest config --get user.that
+'
+
+test_expect_success 'includeIf.hasconfig:remote.*.url respects last-config-wins' '
+ git init hasremoteurlTest &&
+ test_when_finished "rm -rf hasremoteurlTest" &&
+
+ cat >include-two-three <<-\EOF &&
+ [user]
+ two = included-config
+ three = included-config
+ EOF
+ cat >>hasremoteurlTest/.git/config <<-EOF &&
+ [remote "foo"]
+ url = foourl
+ [user]
+ one = main-config
+ two = main-config
+ [includeIf "hasconfig:remote.*.url:foourl"]
+ path = "$(pwd)/include-two-three"
+ [user]
+ three = main-config
+ EOF
+
+ echo main-config >expect-main-config &&
+ echo included-config >expect-included-config &&
+
+ git -C hasremoteurlTest config --get user.one >actual &&
+ test_cmp expect-main-config actual &&
+
+ git -C hasremoteurlTest config --get user.two >actual &&
+ test_cmp expect-included-config actual &&
+
+ git -C hasremoteurlTest config --get user.three >actual &&
+ test_cmp expect-main-config actual
+'
+
+test_expect_success 'includeIf.hasconfig:remote.*.url globs' '
+ git init hasremoteurlTest &&
+ test_when_finished "rm -rf hasremoteurlTest" &&
+
+ printf "[user]\ndss = yes\n" >double-star-start &&
+ printf "[user]\ndse = yes\n" >double-star-end &&
+ printf "[user]\ndsm = yes\n" >double-star-middle &&
+ printf "[user]\nssm = yes\n" >single-star-middle &&
+ printf "[user]\nno = no\n" >no &&
+
+ cat >>hasremoteurlTest/.git/config <<-EOF &&
+ [remote "foo"]
+ url = https://foo/bar/baz
+ [includeIf "hasconfig:remote.*.url:**/baz"]
+ path = "$(pwd)/double-star-start"
+ [includeIf "hasconfig:remote.*.url:**/nomatch"]
+ path = "$(pwd)/no"
+ [includeIf "hasconfig:remote.*.url:https:/**"]
+ path = "$(pwd)/double-star-end"
+ [includeIf "hasconfig:remote.*.url:nomatch:/**"]
+ path = "$(pwd)/no"
+ [includeIf "hasconfig:remote.*.url:https:/**/baz"]
+ path = "$(pwd)/double-star-middle"
+ [includeIf "hasconfig:remote.*.url:https:/**/nomatch"]
+ path = "$(pwd)/no"
+ [includeIf "hasconfig:remote.*.url:https://*/bar/baz"]
+ path = "$(pwd)/single-star-middle"
+ [includeIf "hasconfig:remote.*.url:https://*/baz"]
+ path = "$(pwd)/no"
+ EOF
+
+ git -C hasremoteurlTest config --get user.dss &&
+ git -C hasremoteurlTest config --get user.dse &&
+ git -C hasremoteurlTest config --get user.dsm &&
+ git -C hasremoteurlTest config --get user.ssm &&
+ test_must_fail git -C hasremoteurlTest config --get user.no
+'
+
+test_expect_success 'includeIf.hasconfig:remote.*.url forbids remote url in such included files' '
+ git init hasremoteurlTest &&
+ test_when_finished "rm -rf hasremoteurlTest" &&
+
+ cat >include-with-url <<-\EOF &&
+ [remote "bar"]
+ url = barurl
+ EOF
+ cat >>hasremoteurlTest/.git/config <<-EOF &&
+ [includeIf "hasconfig:remote.*.url:foourl"]
+ path = "$(pwd)/include-with-url"
+ EOF
+
+ # test with any Git command
+ test_must_fail git -C hasremoteurlTest status 2>err &&
+ grep "fatal: remote URLs cannot be configured in file directly or indirectly included by includeIf.hasconfig:remote.*.url" err
+'
+
test_done
diff --git a/t/t1350-config-hooks-path.sh b/t/t1350-config-hooks-path.sh
index fa9647a7c0..f6dc83e2aa 100755
--- a/t/t1350-config-hooks-path.sh
+++ b/t/t1350-config-hooks-path.sh
@@ -6,11 +6,11 @@ test_description='Test the core.hooksPath configuration variable'
test_expect_success 'set up a pre-commit hook in core.hooksPath' '
>actual &&
- mkdir -p .git/custom-hooks .git/hooks &&
+ mkdir -p .git/custom-hooks &&
write_script .git/custom-hooks/pre-commit <<-\EOF &&
echo CUSTOM >>actual
EOF
- write_script .git/hooks/pre-commit <<-\EOF
+ test_hook --setup pre-commit <<-\EOF
echo NORMAL >>actual
EOF
'
diff --git a/t/t1405-main-ref-store.sh b/t/t1405-main-ref-store.sh
index 1a3ee8845d..51f8291628 100755
--- a/t/t1405-main-ref-store.sh
+++ b/t/t1405-main-ref-store.sh
@@ -40,6 +40,12 @@ test_expect_success 'delete_refs(FOO, refs/tags/new-tag)' '
test_must_fail git rev-parse refs/tags/new-tag --
'
+# In reftable, we keep the reflogs around for deleted refs.
+test_expect_success !REFFILES 'delete-reflog(FOO, refs/tags/new-tag)' '
+ $RUN delete-reflog FOO &&
+ $RUN delete-reflog refs/tags/new-tag
+'
+
test_expect_success 'rename_refs(main, new-main)' '
git rev-parse main >expected &&
$RUN rename-ref refs/heads/main refs/heads/new-main &&
@@ -105,7 +111,7 @@ test_expect_success 'delete_reflog(HEAD)' '
test_must_fail git reflog exists HEAD
'
-test_expect_success 'create-reflog(HEAD)' '
+test_expect_success REFFILES 'create-reflog(HEAD)' '
$RUN create-reflog HEAD &&
git reflog exists HEAD
'
diff --git a/t/t1410-reflog.sh b/t/t1410-reflog.sh
index d7ddf7612d..aa59954f6c 100755
--- a/t/t1410-reflog.sh
+++ b/t/t1410-reflog.sh
@@ -106,6 +106,28 @@ test_expect_success setup '
test_line_count = 4 output
'
+test_expect_success 'correct usage on sub-command -h' '
+ test_expect_code 129 git reflog expire -h >err &&
+ grep "git reflog expire" err
+'
+
+test_expect_success 'correct usage on "git reflog show -h"' '
+ test_expect_code 129 git reflog show -h >err &&
+ grep -F "git reflog [show]" err
+'
+
+test_expect_success 'pass through -- to sub-command' '
+ test_when_finished "rm -rf repo" &&
+ git init repo &&
+ test_commit -C repo message --a-file contents dash-tag &&
+
+ git -C repo reflog show -- --does-not-exist >out &&
+ test_must_be_empty out &&
+ git -C repo reflog show >expect &&
+ git -C repo reflog show -- --a-file >actual &&
+ test_cmp expect actual
+'
+
test_expect_success rewind '
test_tick && git reset --hard HEAD~2 &&
test -f C &&
@@ -341,7 +363,7 @@ test_expect_success 'stale dirs do not cause d/f conflicts (reflogs off)' '
# Each line is 114 characters, so we need 75 to still have a few before the
# last 8K. The 89-character padding on the final entry lines up our
# newline exactly.
-test_expect_success SHA1 'parsing reverse reflogs at BUFSIZ boundaries' '
+test_expect_success REFFILES,SHA1 'parsing reverse reflogs at BUFSIZ boundaries' '
git checkout -b reflogskip &&
zf=$(test_oid zero_2) &&
ident="abc <xyz> 0000000001 +0000" &&
@@ -418,8 +440,18 @@ test_expect_success 'expire with multiple worktrees' '
test_commit -C link-wt foobar &&
test_tick &&
git reflog expire --verbose --all --expire=$test_tick &&
- test_must_be_empty .git/worktrees/link-wt/logs/HEAD
+ test-tool ref-store worktree:link-wt for-each-reflog-ent HEAD >actual &&
+ test_must_be_empty actual
)
'
+test_expect_success REFFILES 'empty reflog' '
+ test_when_finished "rm -rf empty" &&
+ git init empty &&
+ test_commit -C empty A &&
+ >empty/.git/logs/refs/heads/foo &&
+ git -C empty reflog expire --all 2>err &&
+ test_must_be_empty err
+'
+
test_done
diff --git a/t/t1411-reflog-show.sh b/t/t1411-reflog-show.sh
index 0bb319b944..975c4ea83a 100755
--- a/t/t1411-reflog-show.sh
+++ b/t/t1411-reflog-show.sh
@@ -169,9 +169,4 @@ test_expect_success 'git log -g -p shows diffs vs. parents' '
test_cmp expect actual
'
-test_expect_success 'reflog exists works' '
- git reflog exists refs/heads/main &&
- ! git reflog exists refs/heads/nonexistent
-'
-
test_done
diff --git a/t/t1416-ref-transaction-hooks.sh b/t/t1416-ref-transaction-hooks.sh
index 6c941027a8..27731722a5 100755
--- a/t/t1416-ref-transaction-hooks.sh
+++ b/t/t1416-ref-transaction-hooks.sh
@@ -8,7 +8,6 @@ export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME
. ./test-lib.sh
test_expect_success setup '
- mkdir -p .git/hooks &&
test_commit PRE &&
PRE_OID=$(git rev-parse PRE) &&
test_commit POST &&
@@ -16,9 +15,8 @@ test_expect_success setup '
'
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 &&
+ test_hook reference-transaction <<-\EOF &&
echo "$*" >>actual
EOF
cat >expect <<-EOF &&
@@ -30,9 +28,8 @@ test_expect_success 'hook allows updating ref if successful' '
'
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 &&
+ test_hook reference-transaction <<-\EOF &&
if test "$1" = prepared
then
exit 1
@@ -43,9 +40,9 @@ test_expect_success 'hook aborts updating ref in prepared state' '
'
test_expect_success 'hook gets all queued updates in prepared state' '
- test_when_finished "rm .git/hooks/reference-transaction actual" &&
+ test_when_finished "rm actual" &&
git reset --hard PRE &&
- write_script .git/hooks/reference-transaction <<-\EOF &&
+ test_hook reference-transaction <<-\EOF &&
if test "$1" = prepared
then
while read -r line
@@ -66,9 +63,9 @@ test_expect_success 'hook gets all queued updates in prepared state' '
'
test_expect_success 'hook gets all queued updates in committed state' '
- test_when_finished "rm .git/hooks/reference-transaction actual" &&
+ test_when_finished "rm actual" &&
git reset --hard PRE &&
- write_script .git/hooks/reference-transaction <<-\EOF &&
+ test_hook reference-transaction <<-\EOF &&
if test "$1" = committed
then
while read -r line
@@ -86,9 +83,9 @@ test_expect_success 'hook gets all queued updates in committed state' '
'
test_expect_success 'hook gets all queued updates in aborted state' '
- test_when_finished "rm .git/hooks/reference-transaction actual" &&
+ test_when_finished "rm actual" &&
git reset --hard PRE &&
- write_script .git/hooks/reference-transaction <<-\EOF &&
+ test_hook reference-transaction <<-\EOF &&
if test "$1" = aborted
then
while read -r line
@@ -115,11 +112,11 @@ test_expect_success 'interleaving hook calls succeed' '
git init --bare target-repo.git &&
- write_script target-repo.git/hooks/reference-transaction <<-\EOF &&
+ test_hook -C target-repo.git reference-transaction <<-\EOF &&
echo $0 "$@" >>actual
EOF
- write_script target-repo.git/hooks/update <<-\EOF &&
+ test_hook -C target-repo.git update <<-\EOF &&
echo $0 "$@" >>actual
EOF
diff --git a/t/t1418-reflog-exists.sh b/t/t1418-reflog-exists.sh
new file mode 100755
index 0000000000..d51ecd5e92
--- /dev/null
+++ b/t/t1418-reflog-exists.sh
@@ -0,0 +1,37 @@
+#!/bin/sh
+
+test_description='Test reflog display routines'
+GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=main
+export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME
+
+. ./test-lib.sh
+
+test_expect_success 'setup' '
+ test_commit A
+'
+
+test_expect_success 'usage' '
+ test_expect_code 129 git reflog exists &&
+ test_expect_code 129 git reflog exists -h
+'
+
+test_expect_success 'usage: unknown option' '
+ test_expect_code 129 git reflog exists --unknown-option
+'
+
+test_expect_success 'reflog exists works' '
+ git reflog exists refs/heads/main &&
+ test_must_fail git reflog exists refs/heads/nonexistent
+'
+
+test_expect_success 'reflog exists works with a "--" delimiter' '
+ git reflog exists -- refs/heads/main &&
+ test_must_fail git reflog exists -- refs/heads/nonexistent
+'
+
+test_expect_success 'reflog exists works with a "--end-of-options" delimiter' '
+ git reflog exists --end-of-options refs/heads/main &&
+ test_must_fail git reflog exists --end-of-options refs/heads/nonexistent
+'
+
+test_done
diff --git a/t/t1503-rev-parse-verify.sh b/t/t1503-rev-parse-verify.sh
index 94fe413ee3..ba43168d12 100755
--- a/t/t1503-rev-parse-verify.sh
+++ b/t/t1503-rev-parse-verify.sh
@@ -132,8 +132,9 @@ test_expect_success 'use --default' '
test_must_fail git rev-parse --verify --default bar
'
-test_expect_success 'main@{n} for various n' '
- N=$(git reflog | wc -l) &&
+test_expect_success !SANITIZE_LEAK 'main@{n} for various n' '
+ git reflog >out &&
+ N=$(wc -l <out) &&
Nm1=$(($N-1)) &&
Np1=$(($N+1)) &&
git rev-parse --verify main@{0} &&
diff --git a/t/t1512-rev-parse-disambiguation.sh b/t/t1512-rev-parse-disambiguation.sh
index b0119bf8bc..98cefe3b70 100755
--- a/t/t1512-rev-parse-disambiguation.sh
+++ b/t/t1512-rev-parse-disambiguation.sh
@@ -25,6 +25,87 @@ export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME
. ./test-lib.sh
+test_cmp_failed_rev_parse () {
+ dir=$1
+ rev=$2
+
+ cat >expect &&
+ test_must_fail git -C "$dir" rev-parse "$rev" 2>actual.raw &&
+ sed "s/\($rev\)[0-9a-f]*/\1.../" <actual.raw >actual &&
+ test_cmp expect actual
+}
+
+test_expect_success 'ambiguous blob output' '
+ git init --bare blob.prefix &&
+ (
+ cd blob.prefix &&
+
+ # Both start with "dead..", under both SHA-1 and SHA-256
+ echo brocdnra | git hash-object -w --stdin &&
+ echo brigddsv | git hash-object -w --stdin &&
+
+ # Both start with "beef.."
+ echo 1agllotbh | git hash-object -w --stdin &&
+ echo 1bbfctrkc | git hash-object -w --stdin
+ ) &&
+
+ test_must_fail git -C blob.prefix rev-parse dead &&
+ test_cmp_failed_rev_parse blob.prefix beef <<-\EOF
+ error: short object ID beef... is ambiguous
+ hint: The candidates are:
+ hint: beef... blob
+ hint: beef... blob
+ fatal: ambiguous argument '\''beef...'\'': unknown revision or path not in the working tree.
+ Use '\''--'\'' to separate paths from revisions, like this:
+ '\''git <command> [<revision>...] -- [<file>...]'\''
+ EOF
+'
+
+test_expect_success 'ambiguous loose bad object parsed as OBJ_BAD' '
+ git init --bare blob.bad &&
+ (
+ cd blob.bad &&
+
+ # Both have the prefix "bad0"
+ echo xyzfaowcoh | git hash-object -t bad -w --stdin --literally &&
+ echo xyzhjpyvwl | git hash-object -t bad -w --stdin --literally
+ ) &&
+
+ test_cmp_failed_rev_parse blob.bad bad0 <<-\EOF
+ error: short object ID bad0... is ambiguous
+ fatal: invalid object type
+ EOF
+'
+
+test_expect_success POSIXPERM 'ambigous zlib corrupt loose blob' '
+ git init --bare blob.corrupt &&
+ (
+ cd blob.corrupt &&
+
+ # Both have the prefix "cafe"
+ echo bnkxmdwz | git hash-object -w --stdin &&
+ oid=$(echo bmwsjxzi | git hash-object -w --stdin) &&
+
+ oidf=objects/$(test_oid_to_path "$oid") &&
+ chmod 755 $oidf &&
+ echo broken >$oidf
+ ) &&
+
+ test_cmp_failed_rev_parse blob.corrupt cafe <<-\EOF
+ error: short object ID cafe... is ambiguous
+ error: inflate: data stream error (incorrect header check)
+ error: unable to unpack cafe... header
+ error: inflate: data stream error (incorrect header check)
+ error: unable to unpack cafe... header
+ hint: The candidates are:
+ hint: cafe... [bad object]
+ hint: cafe... blob
+ fatal: ambiguous argument '\''cafe...'\'': unknown revision or path not in the working tree.
+ Use '\''--'\'' to separate paths from revisions, like this:
+ '\''git <command> [<revision>...] -- [<file>...]'\''
+ EOF
+'
+
if ! test_have_prereq SHA1
then
skip_all='not using SHA-1 for objects'
diff --git a/t/t1800-hook.sh b/t/t1800-hook.sh
new file mode 100755
index 0000000000..26ed5e11bc
--- /dev/null
+++ b/t/t1800-hook.sh
@@ -0,0 +1,123 @@
+#!/bin/sh
+
+test_description='git-hook command'
+
+TEST_PASSES_SANITIZE_LEAK=true
+. ./test-lib.sh
+
+test_expect_success 'git hook usage' '
+ test_expect_code 129 git hook &&
+ test_expect_code 129 git hook run &&
+ test_expect_code 129 git hook run -h &&
+ test_expect_code 129 git hook run --unknown 2>err &&
+ grep "unknown option" err
+'
+
+test_expect_success 'git hook run: nonexistent hook' '
+ cat >stderr.expect <<-\EOF &&
+ error: cannot find a hook named test-hook
+ EOF
+ test_expect_code 1 git hook run test-hook 2>stderr.actual &&
+ test_cmp stderr.expect stderr.actual
+'
+
+test_expect_success 'git hook run: nonexistent hook with --ignore-missing' '
+ git hook run --ignore-missing does-not-exist 2>stderr.actual &&
+ test_must_be_empty stderr.actual
+'
+
+test_expect_success 'git hook run: basic' '
+ test_hook test-hook <<-EOF &&
+ echo Test hook
+ EOF
+
+ cat >expect <<-\EOF &&
+ Test hook
+ EOF
+ git hook run test-hook 2>actual &&
+ test_cmp expect actual
+'
+
+test_expect_success 'git hook run: stdout and stderr both write to our stderr' '
+ test_hook test-hook <<-EOF &&
+ echo >&1 Will end up on stderr
+ echo >&2 Will end up on stderr
+ EOF
+
+ cat >stderr.expect <<-\EOF &&
+ Will end up on stderr
+ Will end up on stderr
+ EOF
+ git hook run test-hook >stdout.actual 2>stderr.actual &&
+ test_cmp stderr.expect stderr.actual &&
+ test_must_be_empty stdout.actual
+'
+
+for code in 1 2 128 129
+do
+ test_expect_success "git hook run: exit code $code is passed along" '
+ test_hook test-hook <<-EOF &&
+ exit $code
+ EOF
+
+ test_expect_code $code git hook run test-hook
+ '
+done
+
+test_expect_success 'git hook run arg u ments without -- is not allowed' '
+ test_expect_code 129 git hook run test-hook arg u ments
+'
+
+test_expect_success 'git hook run -- pass arguments' '
+ test_hook test-hook <<-\EOF &&
+ echo $1
+ echo $2
+ EOF
+
+ cat >expect <<-EOF &&
+ arg
+ u ments
+ EOF
+
+ git hook run test-hook -- arg "u ments" 2>actual &&
+ test_cmp expect actual
+'
+
+test_expect_success 'git hook run -- out-of-repo runs excluded' '
+ test_hook test-hook <<-EOF &&
+ echo Test hook
+ EOF
+
+ nongit test_must_fail git hook run test-hook
+'
+
+test_expect_success 'git -c core.hooksPath=<PATH> hook run' '
+ mkdir my-hooks &&
+ write_script my-hooks/test-hook <<-\EOF &&
+ echo Hook ran $1 >>actual
+ EOF
+
+ cat >expect <<-\EOF &&
+ Test hook
+ Hook ran one
+ Hook ran two
+ Hook ran three
+ Hook ran four
+ EOF
+
+ test_hook test-hook <<-EOF &&
+ echo Test hook
+ EOF
+
+ # Test various ways of specifying the path. See also
+ # t1350-config-hooks-path.sh
+ >actual &&
+ git hook run test-hook -- ignored 2>>actual &&
+ git -c core.hooksPath=my-hooks hook run test-hook -- one 2>>actual &&
+ git -c core.hooksPath=my-hooks/ hook run test-hook -- two 2>>actual &&
+ git -c core.hooksPath="$PWD/my-hooks" hook run test-hook -- three 2>>actual &&
+ git -c core.hooksPath="$PWD/my-hooks/" hook run test-hook -- four 2>>actual &&
+ test_cmp expect actual
+'
+
+test_done
diff --git a/t/t2012-checkout-last.sh b/t/t2012-checkout-last.sh
index 42601d5a31..1f6c4ed042 100755
--- a/t/t2012-checkout-last.sh
+++ b/t/t2012-checkout-last.sh
@@ -21,14 +21,20 @@ test_expect_success 'first branch switch' '
git checkout other
'
+test_cmp_symbolic_HEAD_ref () {
+ echo refs/heads/"$1" >expect &&
+ git symbolic-ref HEAD >actual &&
+ test_cmp expect actual
+}
+
test_expect_success '"checkout -" switches back' '
git checkout - &&
- test "z$(git symbolic-ref HEAD)" = "zrefs/heads/main"
+ test_cmp_symbolic_HEAD_ref main
'
test_expect_success '"checkout -" switches forth' '
git checkout - &&
- test "z$(git symbolic-ref HEAD)" = "zrefs/heads/other"
+ test_cmp_symbolic_HEAD_ref other
'
test_expect_success 'detach HEAD' '
@@ -37,12 +43,16 @@ test_expect_success 'detach HEAD' '
test_expect_success '"checkout -" attaches again' '
git checkout - &&
- test "z$(git symbolic-ref HEAD)" = "zrefs/heads/other"
+ test_cmp_symbolic_HEAD_ref other
'
test_expect_success '"checkout -" detaches again' '
git checkout - &&
- test "z$(git rev-parse HEAD)" = "z$(git rev-parse other)" &&
+
+ git rev-parse other >expect &&
+ git rev-parse HEAD >actual &&
+ test_cmp expect actual &&
+
test_must_fail git symbolic-ref HEAD
'
@@ -63,31 +73,31 @@ more_switches () {
test_expect_success 'switch to the last' '
more_switches &&
git checkout @{-1} &&
- test "z$(git symbolic-ref HEAD)" = "zrefs/heads/branch2"
+ test_cmp_symbolic_HEAD_ref branch2
'
test_expect_success 'switch to second from the last' '
more_switches &&
git checkout @{-2} &&
- test "z$(git symbolic-ref HEAD)" = "zrefs/heads/branch3"
+ test_cmp_symbolic_HEAD_ref branch3
'
test_expect_success 'switch to third from the last' '
more_switches &&
git checkout @{-3} &&
- test "z$(git symbolic-ref HEAD)" = "zrefs/heads/branch4"
+ test_cmp_symbolic_HEAD_ref branch4
'
test_expect_success 'switch to fourth from the last' '
more_switches &&
git checkout @{-4} &&
- test "z$(git symbolic-ref HEAD)" = "zrefs/heads/branch5"
+ test_cmp_symbolic_HEAD_ref branch5
'
test_expect_success 'switch to twelfth from the last' '
more_switches &&
git checkout @{-12} &&
- test "z$(git symbolic-ref HEAD)" = "zrefs/heads/branch13"
+ test_cmp_symbolic_HEAD_ref branch13
'
test_expect_success 'merge base test setup' '
@@ -98,19 +108,28 @@ test_expect_success 'merge base test setup' '
test_expect_success 'another...main' '
git checkout another &&
git checkout another...main &&
- test "z$(git rev-parse --verify HEAD)" = "z$(git rev-parse --verify main^)"
+
+ git rev-parse --verify main^ >expect &&
+ git rev-parse --verify HEAD >actual &&
+ test_cmp expect actual
'
test_expect_success '...main' '
git checkout another &&
git checkout ...main &&
- test "z$(git rev-parse --verify HEAD)" = "z$(git rev-parse --verify main^)"
+
+ git rev-parse --verify main^ >expect &&
+ git rev-parse --verify HEAD >actual &&
+ test_cmp expect actual
'
test_expect_success 'main...' '
git checkout another &&
git checkout main... &&
- test "z$(git rev-parse --verify HEAD)" = "z$(git rev-parse --verify main^)"
+
+ git rev-parse --verify main^ >expect &&
+ git rev-parse --verify HEAD >actual &&
+ test_cmp expect actual
'
test_expect_success '"checkout -" works after a rebase A' '
@@ -118,7 +137,7 @@ test_expect_success '"checkout -" works after a rebase A' '
git checkout other &&
git rebase main &&
git checkout - &&
- test "z$(git symbolic-ref HEAD)" = "zrefs/heads/main"
+ test_cmp_symbolic_HEAD_ref main
'
test_expect_success '"checkout -" works after a rebase A B' '
@@ -127,7 +146,7 @@ test_expect_success '"checkout -" works after a rebase A B' '
git checkout other &&
git rebase main moodle &&
git checkout - &&
- test "z$(git symbolic-ref HEAD)" = "zrefs/heads/main"
+ test_cmp_symbolic_HEAD_ref main
'
test_expect_success '"checkout -" works after a rebase -i A' '
@@ -135,7 +154,7 @@ test_expect_success '"checkout -" works after a rebase -i A' '
git checkout other &&
git rebase -i main &&
git checkout - &&
- test "z$(git symbolic-ref HEAD)" = "zrefs/heads/main"
+ test_cmp_symbolic_HEAD_ref main
'
test_expect_success '"checkout -" works after a rebase -i A B' '
@@ -144,7 +163,7 @@ test_expect_success '"checkout -" works after a rebase -i A B' '
git checkout other &&
git rebase main foodle &&
git checkout - &&
- test "z$(git symbolic-ref HEAD)" = "zrefs/heads/main"
+ test_cmp_symbolic_HEAD_ref main
'
test_done
diff --git a/t/t2060-switch.sh b/t/t2060-switch.sh
index ebb961be29..5a7caf958c 100755
--- a/t/t2060-switch.sh
+++ b/t/t2060-switch.sh
@@ -32,6 +32,17 @@ test_expect_success 'switch and detach' '
test_must_fail git symbolic-ref HEAD
'
+test_expect_success 'suggestion to detach' '
+ test_must_fail git switch main^{commit} 2>stderr &&
+ grep "try again with the --detach option" stderr
+'
+
+test_expect_success 'suggestion to detach is suppressed with advice.suggestDetachingHead=false' '
+ test_config advice.suggestDetachingHead false &&
+ test_must_fail git switch main^{commit} 2>stderr &&
+ ! grep "try again with the --detach option" stderr
+'
+
test_expect_success 'switch and detach current branch' '
test_when_finished git switch main &&
git switch main &&
diff --git a/t/t2108-update-index-refresh-racy.sh b/t/t2108-update-index-refresh-racy.sh
new file mode 100755
index 0000000000..bc5f2886fa
--- /dev/null
+++ b/t/t2108-update-index-refresh-racy.sh
@@ -0,0 +1,64 @@
+#!/bin/sh
+
+test_description='update-index refresh tests related to racy timestamps'
+
+TEST_PASSES_SANITIZE_LEAK=true
+. ./test-lib.sh
+
+reset_files () {
+ echo content >file &&
+ echo content >other &&
+ test_set_magic_mtime file &&
+ test_set_magic_mtime other
+}
+
+update_assert_changed () {
+ test_set_magic_mtime .git/index &&
+ test_might_fail git update-index "$1" &&
+ ! test_is_magic_mtime .git/index
+}
+
+test_expect_success 'setup' '
+ reset_files &&
+ # we are calling reset_files() a couple of times during tests;
+ # test-tool chmtime does not change the ctime; to not weaken
+ # or even break our tests, disable ctime-checks entirely
+ git config core.trustctime false &&
+ git add file other &&
+ git commit -m "initial import"
+'
+
+test_expect_success '--refresh has no racy timestamps to fix' '
+ reset_files &&
+ # set the index time far enough to the future;
+ # it must be at least 3 seconds for VFAT
+ test_set_magic_mtime .git/index +60 &&
+ git update-index --refresh &&
+ test_is_magic_mtime .git/index +60
+'
+
+test_expect_success '--refresh should fix racy timestamp' '
+ reset_files &&
+ update_assert_changed --refresh
+'
+
+test_expect_success '--really-refresh should fix racy timestamp' '
+ reset_files &&
+ update_assert_changed --really-refresh
+'
+
+test_expect_success '--refresh should fix racy timestamp if other file needs update' '
+ reset_files &&
+ echo content2 >other &&
+ test_set_magic_mtime other &&
+ update_assert_changed --refresh
+'
+
+test_expect_success '--refresh should fix racy timestamp if racy file needs update' '
+ reset_files &&
+ echo content2 >file &&
+ test_set_magic_mtime file &&
+ update_assert_changed --refresh
+'
+
+test_done
diff --git a/t/t2200-add-update.sh b/t/t2200-add-update.sh
index acd3650d3c..0c38f8e356 100755
--- a/t/t2200-add-update.sh
+++ b/t/t2200-add-update.sh
@@ -14,7 +14,6 @@ only the updates to dir/sub.
Also tested are "git add -u" without limiting, and "git add -u"
without contents changes, and other conditions'
-TEST_PASSES_SANITIZE_LEAK=true
. ./test-lib.sh
test_expect_success setup '
@@ -41,20 +40,28 @@ test_expect_success update '
'
test_expect_success 'update noticed a removal' '
- test "$(git ls-files dir1/sub1)" = ""
+ git ls-files dir1/sub1 >out &&
+ test_must_be_empty out
'
test_expect_success 'update touched correct path' '
- test "$(git diff-files --name-status dir2/sub3)" = ""
+ git diff-files --name-status dir2/sub3 >out &&
+ test_must_be_empty out
'
test_expect_success 'update did not touch other tracked files' '
- test "$(git diff-files --name-status check)" = "M check" &&
- test "$(git diff-files --name-status top)" = "M top"
+ echo "M check" >expect &&
+ git diff-files --name-status check >actual &&
+ test_cmp expect actual &&
+
+ echo "M top" >expect &&
+ git diff-files --name-status top >actual &&
+ test_cmp expect actual
'
test_expect_success 'update did not touch untracked files' '
- test "$(git ls-files dir2/other)" = ""
+ git ls-files dir2/other >out &&
+ test_must_be_empty out
'
test_expect_success 'cache tree has not been corrupted' '
@@ -76,9 +83,8 @@ test_expect_success 'update from a subdirectory' '
'
test_expect_success 'change gets noticed' '
-
- test "$(git diff-files --name-status dir1)" = ""
-
+ git diff-files --name-status dir1 >out &&
+ test_must_be_empty out
'
test_expect_success 'non-qualified update in subdir updates from the root' '
@@ -103,7 +109,8 @@ test_expect_success 'replace a file with a symlink' '
test_expect_success 'add everything changed' '
git add -u &&
- test -z "$(git diff-files)"
+ git diff-files >out &&
+ test_must_be_empty out
'
@@ -111,7 +118,8 @@ test_expect_success 'touch and then add -u' '
touch check &&
git add -u &&
- test -z "$(git diff-files)"
+ git diff-files >out &&
+ test_must_be_empty out
'
@@ -119,7 +127,8 @@ test_expect_success 'touch and then add explicitly' '
touch check &&
git add check &&
- test -z "$(git diff-files)"
+ git diff-files >out &&
+ test_must_be_empty out
'
diff --git a/t/t2400-worktree-add.sh b/t/t2400-worktree-add.sh
index 37ad79470f..2f564d533d 100755
--- a/t/t2400-worktree-add.sh
+++ b/t/t2400-worktree-add.sh
@@ -165,8 +165,62 @@ test_expect_success '"add" default branch of a bare repo' '
(
git clone --bare . bare2 &&
cd bare2 &&
- git worktree add ../there3 main
- )
+ git worktree add ../there3 main &&
+ cd ../there3 &&
+ # Simple check that a Git command does not
+ # immediately fail with the current setup
+ git status
+ ) &&
+ cat >expect <<-EOF &&
+ init.t
+ EOF
+ ls there3 >actual &&
+ test_cmp expect actual
+'
+
+test_expect_success '"add" to bare repo with worktree config' '
+ (
+ git clone --bare . bare3 &&
+ cd bare3 &&
+ git config extensions.worktreeconfig true &&
+
+ # Add config values that are erroneous to have in
+ # a config.worktree file outside of the main
+ # working tree, to check that Git filters them out
+ # when copying config during "git worktree add".
+ git config --worktree core.bare true &&
+ git config --worktree core.worktree "$(pwd)" &&
+
+ # We want to check that bogus.key is copied
+ git config --worktree bogus.key value &&
+ git config --unset core.bare &&
+ git worktree add ../there4 main &&
+ cd ../there4 &&
+
+ # Simple check that a Git command does not
+ # immediately fail with the current setup
+ git status &&
+ git worktree add --detach ../there5 &&
+ cd ../there5 &&
+ git status
+ ) &&
+
+ # the worktree has the arbitrary value copied.
+ test_cmp_config -C there4 value bogus.key &&
+ test_cmp_config -C there5 value bogus.key &&
+
+ # however, core.bare and core.worktree were removed.
+ test_must_fail git -C there4 config core.bare &&
+ test_must_fail git -C there4 config core.worktree &&
+
+ cat >expect <<-EOF &&
+ init.t
+ EOF
+
+ ls there4 >actual &&
+ test_cmp expect actual &&
+ ls there5 >actual &&
+ test_cmp expect actual
'
test_expect_success 'checkout with grafts' '
@@ -505,10 +559,7 @@ test_expect_success 'git worktree --no-guess-remote option overrides config' '
'
post_checkout_hook () {
- gitdir=${1:-.git}
- test_when_finished "rm -f $gitdir/hooks/post-checkout" &&
- mkdir -p $gitdir/hooks &&
- write_script $gitdir/hooks/post-checkout <<-\EOF
+ test_hook -C "$1" post-checkout <<-\EOF
{
echo $*
git rev-parse --git-dir --show-toplevel
diff --git a/t/t2402-worktree-list.sh b/t/t2402-worktree-list.sh
index c8a5a0aac6..79e0fce2d9 100755
--- a/t/t2402-worktree-list.sh
+++ b/t/t2402-worktree-list.sh
@@ -64,6 +64,25 @@ test_expect_success '"list" all worktrees --porcelain' '
test_cmp expect actual
'
+test_expect_success '"list" all worktrees --porcelain -z' '
+ test_when_finished "rm -rf here _actual actual expect &&
+ git worktree prune" &&
+ printf "worktree %sQHEAD %sQbranch %sQQ" \
+ "$(git rev-parse --show-toplevel)" \
+ $(git rev-parse HEAD --symbolic-full-name HEAD) >expect &&
+ git worktree add --detach here main &&
+ printf "worktree %sQHEAD %sQdetachedQQ" \
+ "$(git -C here rev-parse --show-toplevel)" \
+ "$(git rev-parse HEAD)" >>expect &&
+ git worktree list --porcelain -z >_actual &&
+ nul_to_q <_actual >actual &&
+ test_cmp expect actual
+'
+
+test_expect_success '"list" -z fails without --porcelain' '
+ test_must_fail git worktree list -z
+'
+
test_expect_success '"list" all worktrees with locked annotation' '
test_when_finished "rm -rf locked unlocked out && git worktree prune" &&
git worktree add --detach locked main &&
diff --git a/t/t3007-ls-files-recurse-submodules.sh b/t/t3007-ls-files-recurse-submodules.sh
index 4a08000713..dd7770e85d 100755
--- a/t/t3007-ls-files-recurse-submodules.sh
+++ b/t/t3007-ls-files-recurse-submodules.sh
@@ -34,6 +34,23 @@ test_expect_success 'ls-files correctly outputs files in submodule' '
test_cmp expect actual
'
+test_expect_success '--stage' '
+ GITMODULES_HASH=$(git rev-parse HEAD:.gitmodules) &&
+ A_HASH=$(git rev-parse HEAD:a) &&
+ B_HASH=$(git rev-parse HEAD:b/b) &&
+ C_HASH=$(git -C submodule rev-parse HEAD:c) &&
+
+ cat >expect <<-EOF &&
+ 100644 $GITMODULES_HASH 0 .gitmodules
+ 100644 $A_HASH 0 a
+ 100644 $B_HASH 0 b/b
+ 100644 $C_HASH 0 submodule/c
+ EOF
+
+ git ls-files --stage --recurse-submodules >actual &&
+ test_cmp expect actual
+'
+
test_expect_success 'ls-files correctly outputs files in submodule with -z' '
lf_to_nul >expect <<-\EOF &&
.gitmodules
@@ -292,7 +309,6 @@ test_incompatible_with_recurse_submodules () {
test_incompatible_with_recurse_submodules --deleted
test_incompatible_with_recurse_submodules --modified
test_incompatible_with_recurse_submodules --others
-test_incompatible_with_recurse_submodules --stage
test_incompatible_with_recurse_submodules --killed
test_incompatible_with_recurse_submodules --unmerged
diff --git a/t/t3101-ls-tree-dirname.sh b/t/t3101-ls-tree-dirname.sh
index 05fde64225..217006d1bf 100755
--- a/t/t3101-ls-tree-dirname.sh
+++ b/t/t3101-ls-tree-dirname.sh
@@ -201,31 +201,34 @@ EOF
test_cmp expected check
'
-test_expect_success 'ls-tree --name-only' '
- git ls-tree --name-only $tree >current &&
- cat >expected <<\EOF &&
-1.txt
-2.txt
-path0
-path1
-path2
-path3
-EOF
- test_output
-'
-
-test_expect_success 'ls-tree --name-only -r' '
- git ls-tree --name-only -r $tree >current &&
- cat >expected <<\EOF &&
-1.txt
-2.txt
-path0/a/b/c/1.txt
-path1/b/c/1.txt
-path2/1.txt
-path3/1.txt
-path3/2.txt
-EOF
- test_output
-'
+for opt in --name-only --name-status
+do
+ test_expect_success "ls-tree $opt" '
+ git ls-tree $opt $tree >current &&
+ cat >expected <<-\EOF &&
+ 1.txt
+ 2.txt
+ path0
+ path1
+ path2
+ path3
+ EOF
+ test_output
+ '
+
+ test_expect_success "ls-tree $opt -r" '
+ git ls-tree $opt -r $tree >current &&
+ cat >expected <<-\EOF &&
+ 1.txt
+ 2.txt
+ path0/a/b/c/1.txt
+ path1/b/c/1.txt
+ path2/1.txt
+ path3/1.txt
+ path3/2.txt
+ EOF
+ test_output
+ '
+done
test_done
diff --git a/t/t3103-ls-tree-misc.sh b/t/t3103-ls-tree-misc.sh
index d18ba1bd84..81c6343962 100755
--- a/t/t3103-ls-tree-misc.sh
+++ b/t/t3103-ls-tree-misc.sh
@@ -23,4 +23,19 @@ test_expect_success 'ls-tree fails with non-zero exit code on broken tree' '
test_must_fail git ls-tree -r HEAD
'
+for opts in \
+ "--long --name-only" \
+ "--name-only --name-status" \
+ "--name-status --object-only" \
+ "--object-only --long"
+do
+ test_expect_success "usage: incompatible options: $opts" '
+ test_expect_code 129 git ls-tree $opts $tree
+ '
+
+ one_opt=$(echo "$opts" | cut -d' ' -f1)
+ test_expect_success "usage: incompatible options: $one_opt and --format" '
+ test_expect_code 129 git ls-tree $one_opt --format=fmt $tree
+ '
+done
test_done
diff --git a/t/t3104-ls-tree-format.sh b/t/t3104-ls-tree-format.sh
new file mode 100755
index 0000000000..0769a933d6
--- /dev/null
+++ b/t/t3104-ls-tree-format.sh
@@ -0,0 +1,76 @@
+#!/bin/sh
+
+test_description='ls-tree --format'
+
+TEST_PASSES_SANITIZE_LEAK=true
+. ./test-lib.sh
+
+test_expect_success 'ls-tree --format usage' '
+ test_expect_code 129 git ls-tree --format=fmt -l HEAD &&
+ test_expect_code 129 git ls-tree --format=fmt --name-only HEAD &&
+ test_expect_code 129 git ls-tree --format=fmt --name-status HEAD
+'
+
+test_expect_success 'setup' '
+ mkdir dir &&
+ test_commit dir/sub-file &&
+ test_commit top-file
+'
+
+test_ls_tree_format () {
+ format=$1 &&
+ opts=$2 &&
+ fmtopts=$3 &&
+ shift 2 &&
+
+ test_expect_success "ls-tree '--format=<$format>' is like options '$opts $fmtopts'" '
+ git ls-tree $opts -r HEAD >expect &&
+ git ls-tree --format="$format" -r $fmtopts HEAD >actual &&
+ test_cmp expect actual
+ '
+
+ test_expect_success "ls-tree '--format=<$format>' on optimized v.s. non-optimized path" '
+ git ls-tree --format="$format" -r $fmtopts HEAD >expect &&
+ git ls-tree --format="> $format" -r $fmtopts HEAD >actual.raw &&
+ sed "s/^> //" >actual <actual.raw &&
+ test_cmp expect actual
+ '
+}
+
+test_ls_tree_format \
+ "%(objectmode) %(objecttype) %(objectname)%x09%(path)" \
+ ""
+
+test_ls_tree_format \
+ "%(objectmode) %(objecttype) %(objectname) %(objectsize:padded)%x09%(path)" \
+ "--long"
+
+test_ls_tree_format \
+ "%(path)" \
+ "--name-only"
+
+test_ls_tree_format \
+ "%(objectname)" \
+ "--object-only"
+
+test_ls_tree_format \
+ "%(objectname)" \
+ "--object-only --abbrev" \
+ "--abbrev"
+
+test_ls_tree_format \
+ "%(objectmode) %(objecttype) %(objectname)%x09%(path)" \
+ "-t" \
+ "-t"
+
+test_ls_tree_format \
+ "%(objectmode) %(objecttype) %(objectname)%x09%(path)" \
+ "--full-name" \
+ "--full-name"
+
+test_ls_tree_format \
+ "%(objectmode) %(objecttype) %(objectname)%x09%(path)" \
+ "--full-tree" \
+ "--full-tree"
+
+test_done
diff --git a/t/t3200-branch.sh b/t/t3200-branch.sh
index 1bc3795847..e12db59361 100755
--- a/t/t3200-branch.sh
+++ b/t/t3200-branch.sh
@@ -42,6 +42,23 @@ test_expect_success 'git branch abc should create a branch' '
git branch abc && test_path_is_file .git/refs/heads/abc
'
+test_expect_success 'git branch abc should fail when abc exists' '
+ test_must_fail git branch abc
+'
+
+test_expect_success 'git branch --force abc should fail when abc is checked out' '
+ test_when_finished git switch main &&
+ git switch abc &&
+ test_must_fail git branch --force abc HEAD~1
+'
+
+test_expect_success 'git branch --force abc should succeed when abc exists' '
+ git rev-parse HEAD~1 >expect &&
+ git branch --force abc HEAD~1 &&
+ git rev-parse abc >actual &&
+ test_cmp expect actual
+'
+
test_expect_success 'git branch a/b/c should create a branch' '
git branch a/b/c && test_path_is_file .git/refs/heads/a/b/c
'
@@ -1022,13 +1039,27 @@ test_expect_success 'checkout -b with -l makes reflog when core.logAllRefUpdates
git rev-parse --verify gamma@{0}
'
-test_expect_success 'avoid ambiguous track' '
+test_expect_success 'avoid ambiguous track and advise' '
git config branch.autosetupmerge true &&
git config remote.ambi1.url lalala &&
git config remote.ambi1.fetch refs/heads/lalala:refs/heads/main &&
git config remote.ambi2.url lilili &&
git config remote.ambi2.fetch refs/heads/lilili:refs/heads/main &&
- test_must_fail git branch all1 main &&
+ cat <<-EOF >expected &&
+ fatal: not tracking: ambiguous information for ref '\''refs/heads/main'\''
+ hint: There are multiple remotes whose fetch refspecs map to the remote
+ hint: tracking ref '\''refs/heads/main'\'':
+ hint: ambi1
+ hint: ambi2
+ hint: ''
+ hint: This is typically a configuration error.
+ hint: ''
+ hint: To support setting up tracking branches, ensure that
+ hint: different remotes'\'' fetch refspecs map into different
+ hint: tracking namespaces.
+ EOF
+ test_must_fail git branch all1 main 2>actual &&
+ test_cmp expected actual &&
test -z "$(git config branch.all1.merge)"
'
diff --git a/t/t3207-branch-submodule.sh b/t/t3207-branch-submodule.sh
new file mode 100755
index 0000000000..cfde6b237f
--- /dev/null
+++ b/t/t3207-branch-submodule.sh
@@ -0,0 +1,328 @@
+#!/bin/sh
+
+test_description='git branch submodule tests'
+
+GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=main
+export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME
+
+. ./test-lib.sh
+. "$TEST_DIRECTORY"/lib-rebase.sh
+
+pwd=$(pwd)
+
+# Creates a clean test environment in "pwd" by copying the repo setup
+# from test_dirs.
+reset_test () {
+ rm -fr super &&
+ rm -fr sub-sub-upstream &&
+ rm -fr sub-upstream &&
+ cp -r test_dirs/* .
+}
+
+# Tests that the expected branch does not exist
+test_no_branch () {
+ DIR=$1 &&
+ BRANCH_NAME=$2 &&
+ test_must_fail git -C "$DIR" rev-parse "$BRANCH_NAME" 2>err &&
+ grep "ambiguous argument .$BRANCH_NAME." err
+}
+
+test_expect_success 'setup superproject and submodule' '
+ mkdir test_dirs &&
+ (
+ cd test_dirs &&
+ git init super &&
+ test_commit -C super foo &&
+ git init sub-sub-upstream &&
+ test_commit -C sub-sub-upstream foo &&
+ git init sub-upstream &&
+ # Submodule in a submodule
+ git -C sub-upstream submodule add "${pwd}/test_dirs/sub-sub-upstream" sub-sub &&
+ git -C sub-upstream commit -m "add submodule" &&
+ # Regular submodule
+ git -C super submodule add "${pwd}/test_dirs/sub-upstream" sub &&
+ # Submodule in a subdirectory
+ git -C super submodule add "${pwd}/test_dirs/sub-sub-upstream" second/sub &&
+ git -C super commit -m "add submodule" &&
+ git -C super config submodule.propagateBranches true &&
+ git -C super/sub submodule update --init
+ ) &&
+ reset_test
+'
+
+# Test the argument parsing
+test_expect_success '--recurse-submodules should create branches' '
+ test_when_finished "reset_test" &&
+ (
+ cd super &&
+ git branch --recurse-submodules branch-a &&
+ git rev-parse branch-a &&
+ git -C sub rev-parse branch-a &&
+ git -C sub/sub-sub rev-parse branch-a &&
+ git -C second/sub rev-parse branch-a
+ )
+'
+
+test_expect_success '--recurse-submodules should die if submodule.propagateBranches is false' '
+ test_when_finished "reset_test" &&
+ (
+ cd super &&
+ echo "fatal: branch with --recurse-submodules can only be used if submodule.propagateBranches is enabled" >expected &&
+ test_must_fail git -c submodule.propagateBranches=false branch --recurse-submodules branch-a 2>actual &&
+ test_cmp expected actual
+ )
+'
+
+test_expect_success '--recurse-submodules should fail when not creating branches' '
+ test_when_finished "reset_test" &&
+ (
+ cd super &&
+ git branch --recurse-submodules branch-a &&
+ echo "fatal: --recurse-submodules can only be used to create branches" >expected &&
+ test_must_fail git branch --recurse-submodules -D branch-a 2>actual &&
+ test_cmp expected actual &&
+ # Assert that the branches were not deleted
+ git rev-parse branch-a &&
+ git -C sub rev-parse branch-a
+ )
+'
+
+test_expect_success 'should respect submodule.recurse when creating branches' '
+ test_when_finished "reset_test" &&
+ (
+ cd super &&
+ git -c submodule.recurse=true branch branch-a &&
+ git rev-parse branch-a &&
+ git -C sub rev-parse branch-a
+ )
+'
+
+test_expect_success 'should ignore submodule.recurse when not creating branches' '
+ test_when_finished "reset_test" &&
+ (
+ cd super &&
+ git branch --recurse-submodules branch-a &&
+ git -c submodule.recurse=true branch -D branch-a &&
+ test_no_branch . branch-a &&
+ git -C sub rev-parse branch-a
+ )
+'
+
+# Test branch creation behavior
+test_expect_success 'should create branches based off commit id in superproject' '
+ test_when_finished "reset_test" &&
+ (
+ cd super &&
+ git branch --recurse-submodules branch-a &&
+ git checkout --recurse-submodules branch-a &&
+ git -C sub rev-parse HEAD >expected &&
+ # Move the tip of sub:branch-a so that it no longer matches the commit in super:branch-a
+ git -C sub checkout branch-a &&
+ test_commit -C sub bar &&
+ # Create a new branch-b branch with start-point=branch-a
+ git branch --recurse-submodules branch-b branch-a &&
+ git rev-parse branch-b &&
+ git -C sub rev-parse branch-b >actual &&
+ # Assert that the commit id of sub:second-branch matches super:branch-a and not sub:branch-a
+ test_cmp expected actual
+ )
+'
+
+test_expect_success 'should not create any branches if branch is not valid for all repos' '
+ test_when_finished "reset_test" &&
+ (
+ cd super &&
+ git -C sub branch branch-a &&
+ test_must_fail git branch --recurse-submodules branch-a 2>actual &&
+ test_no_branch . branch-a &&
+ grep "submodule .sub.: fatal: a branch named .branch-a. already exists" actual
+ )
+'
+
+test_expect_success 'should create branches if branch exists and --force is given' '
+ test_when_finished "reset_test" &&
+ (
+ cd super &&
+ git -C sub rev-parse HEAD >expected &&
+ test_commit -C sub baz &&
+ # branch-a in sub now points to a newer commit.
+ git -C sub branch branch-a HEAD &&
+ git -C sub rev-parse branch-a >actual-old-branch-a &&
+ git branch --recurse-submodules --force branch-a &&
+ git rev-parse branch-a &&
+ git -C sub rev-parse branch-a >actual-new-branch-a &&
+ test_cmp expected actual-new-branch-a &&
+ # assert that branch --force actually moved the sub
+ # branch
+ ! test_cmp expected actual-old-branch-a
+ )
+'
+
+test_expect_success 'should create branch when submodule is not in HEAD:.gitmodules' '
+ test_when_finished "reset_test" &&
+ (
+ cd super &&
+ git branch branch-a &&
+ git checkout -b branch-b &&
+ git submodule add ../sub-upstream sub2 &&
+ git -C sub2 submodule update --init &&
+ # branch-b now has a committed submodule not in branch-a
+ git commit -m "add second submodule" &&
+ git checkout branch-a &&
+ git branch --recurse-submodules branch-c branch-b &&
+ git checkout --recurse-submodules branch-c &&
+ git -C sub2 rev-parse branch-c &&
+ git -C sub2/sub-sub rev-parse branch-c
+ )
+'
+
+test_expect_success 'should not create branches in inactive submodules' '
+ test_when_finished "reset_test" &&
+ test_config -C super submodule.sub.active false &&
+ (
+ cd super &&
+ git branch --recurse-submodules branch-a &&
+ git rev-parse branch-a &&
+ test_no_branch sub branch-a
+ )
+'
+
+test_expect_success 'should set up tracking of local branches with track=always' '
+ test_when_finished "reset_test" &&
+ (
+ cd super &&
+ git -c branch.autoSetupMerge=always branch --recurse-submodules branch-a main &&
+ git -C sub rev-parse main &&
+ test_cmp_config -C sub . branch.branch-a.remote &&
+ test_cmp_config -C sub refs/heads/main branch.branch-a.merge
+ )
+'
+
+test_expect_success 'should set up tracking of local branches with explicit track' '
+ test_when_finished "reset_test" &&
+ (
+ cd super &&
+ git branch --track --recurse-submodules branch-a main &&
+ git -C sub rev-parse main &&
+ test_cmp_config -C sub . branch.branch-a.remote &&
+ test_cmp_config -C sub refs/heads/main branch.branch-a.merge
+ )
+'
+
+test_expect_success 'should not set up unnecessary tracking of local branches' '
+ test_when_finished "reset_test" &&
+ (
+ cd super &&
+ git branch --recurse-submodules branch-a main &&
+ git -C sub rev-parse main &&
+ test_cmp_config -C sub "" --default "" branch.branch-a.remote &&
+ test_cmp_config -C sub "" --default "" branch.branch-a.merge
+ )
+'
+
+reset_remote_test () {
+ rm -fr super-clone &&
+ reset_test
+}
+
+test_expect_success 'setup tests with remotes' '
+ (
+ cd test_dirs &&
+ (
+ cd super &&
+ git branch branch-a &&
+ git checkout -b branch-b &&
+ git submodule add ../sub-upstream sub2 &&
+ # branch-b now has a committed submodule not in branch-a
+ git commit -m "add second submodule"
+ ) &&
+ git clone --branch main --recurse-submodules super super-clone &&
+ git -C super-clone config submodule.propagateBranches true
+ ) &&
+ reset_remote_test
+'
+
+test_expect_success 'should get fatal error upon branch creation when submodule is not in .git/modules' '
+ test_when_finished "reset_remote_test" &&
+ (
+ cd super-clone &&
+ # This should succeed because super-clone has sub in .git/modules
+ git branch --recurse-submodules branch-a origin/branch-a &&
+ # This should fail because super-clone does not have sub2 .git/modules
+ test_must_fail git branch --recurse-submodules branch-b origin/branch-b 2>actual &&
+ grep "fatal: submodule .sub2.: unable to find submodule" actual &&
+ test_no_branch . branch-b &&
+ test_no_branch sub branch-b &&
+ # User can fix themselves by initializing the submodule
+ git checkout origin/branch-b &&
+ git submodule update --init --recursive &&
+ git branch --recurse-submodules branch-b origin/branch-b
+ )
+'
+
+test_expect_success 'should set up tracking of remote-tracking branches by default' '
+ test_when_finished "reset_remote_test" &&
+ (
+ cd super-clone &&
+ git branch --recurse-submodules branch-a origin/branch-a &&
+ test_cmp_config origin branch.branch-a.remote &&
+ test_cmp_config refs/heads/branch-a branch.branch-a.merge &&
+ # "origin/branch-a" does not exist for "sub", but it matches the refspec
+ # so tracking should be set up
+ test_cmp_config -C sub origin branch.branch-a.remote &&
+ test_cmp_config -C sub refs/heads/branch-a branch.branch-a.merge &&
+ test_cmp_config -C sub/sub-sub origin branch.branch-a.remote &&
+ test_cmp_config -C sub/sub-sub refs/heads/branch-a branch.branch-a.merge
+ )
+'
+
+test_expect_success 'should not fail when unable to set up tracking in submodule' '
+ test_when_finished "reset_remote_test" &&
+ (
+ cd super-clone &&
+ git remote rename origin ex-origin &&
+ git branch --recurse-submodules branch-a ex-origin/branch-a &&
+ test_cmp_config ex-origin branch.branch-a.remote &&
+ test_cmp_config refs/heads/branch-a branch.branch-a.merge &&
+ test_cmp_config -C sub "" --default "" branch.branch-a.remote &&
+ test_cmp_config -C sub "" --default "" branch.branch-a.merge
+ )
+'
+
+test_expect_success '--track=inherit should set up tracking correctly' '
+ test_when_finished "reset_remote_test" &&
+ (
+ cd super-clone &&
+ git branch --recurse-submodules branch-a origin/branch-a &&
+ # Set this manually instead of using branch --set-upstream-to
+ # to circumvent the "nonexistent upstream" check.
+ git -C sub config branch.branch-a.remote origin &&
+ git -C sub config branch.branch-a.merge refs/heads/sub-branch-a &&
+ git -C sub/sub-sub config branch.branch-a.remote other &&
+ git -C sub/sub-sub config branch.branch-a.merge refs/heads/sub-sub-branch-a &&
+
+ git branch --recurse-submodules --track=inherit branch-b branch-a &&
+ test_cmp_config origin branch.branch-b.remote &&
+ test_cmp_config refs/heads/branch-a branch.branch-b.merge &&
+ test_cmp_config -C sub origin branch.branch-b.remote &&
+ test_cmp_config -C sub refs/heads/sub-branch-a branch.branch-b.merge &&
+ test_cmp_config -C sub/sub-sub other branch.branch-b.remote &&
+ test_cmp_config -C sub/sub-sub refs/heads/sub-sub-branch-a branch.branch-b.merge
+ )
+'
+
+test_expect_success '--no-track should not set up tracking' '
+ test_when_finished "reset_remote_test" &&
+ (
+ cd super-clone &&
+ git branch --recurse-submodules --no-track branch-a origin/branch-a &&
+ test_cmp_config "" --default "" branch.branch-a.remote &&
+ test_cmp_config "" --default "" branch.branch-a.merge &&
+ test_cmp_config -C sub "" --default "" branch.branch-a.remote &&
+ test_cmp_config -C sub "" --default "" branch.branch-a.merge &&
+ test_cmp_config -C sub/sub-sub "" --default "" branch.branch-a.remote &&
+ test_cmp_config -C sub/sub-sub "" --default "" branch.branch-a.merge
+ )
+'
+
+test_done
diff --git a/t/t3302-notes-index-expensive.sh b/t/t3302-notes-index-expensive.sh
index bc9d8ee1e6..bb5fea02a0 100755
--- a/t/t3302-notes-index-expensive.sh
+++ b/t/t3302-notes-index-expensive.sh
@@ -8,7 +8,6 @@ test_description='Test commit notes index (expensive!)'
GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=main
export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME
-TEST_PASSES_SANITIZE_LEAK=true
. ./test-lib.sh
create_repo () {
@@ -65,7 +64,8 @@ create_repo () {
test_notes () {
count=$1 &&
git config core.notesRef refs/notes/commits &&
- git log | grep "^ " >output &&
+ git log >tmp &&
+ grep "^ " tmp >output &&
i=$count &&
while test $i -gt 0
do
@@ -90,7 +90,7 @@ write_script time_notes <<\EOF
unset GIT_NOTES_REF
;;
esac
- git log
+ git log || exit $?
i=$(($i+1))
done >/dev/null
EOF
diff --git a/t/t3303-notes-subtrees.sh b/t/t3303-notes-subtrees.sh
index 7e0a8960af..eac193757b 100755
--- a/t/t3303-notes-subtrees.sh
+++ b/t/t3303-notes-subtrees.sh
@@ -5,7 +5,6 @@ test_description='Test commit notes organized in subtrees'
GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=main
export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME
-TEST_PASSES_SANITIZE_LEAK=true
. ./test-lib.sh
number_of_commits=100
@@ -79,7 +78,7 @@ test_sha1_based () {
(
start_note_commit &&
nr=$number_of_commits &&
- git rev-list refs/heads/main |
+ git rev-list refs/heads/main >out &&
while read sha1; do
note_path=$(echo "$sha1" | sed "$1")
cat <<INPUT_END &&
@@ -91,9 +90,9 @@ EOF
INPUT_END
nr=$(($nr-1))
- done
- ) |
- git fast-import --quiet
+ done <out
+ ) >gfi &&
+ git fast-import --quiet <gfi
}
test_expect_success 'test notes in 2/38-fanout' 'test_sha1_based "s|^..|&/|"'
diff --git a/t/t3305-notes-fanout.sh b/t/t3305-notes-fanout.sh
index 1f5964865a..9976d787f4 100755
--- a/t/t3305-notes-fanout.sh
+++ b/t/t3305-notes-fanout.sh
@@ -2,7 +2,6 @@
test_description='Test that adding/removing many notes triggers automatic fanout restructuring'
-TEST_PASSES_SANITIZE_LEAK=true
. ./test-lib.sh
path_has_fanout() {
@@ -24,7 +23,7 @@ touched_one_note_with_fanout() {
all_notes_have_fanout() {
notes_commit=$1 &&
fanout=$2 &&
- git ls-tree -r --name-only $notes_commit 2>/dev/null |
+ git ls-tree -r --name-only $notes_commit |
while read path
do
path_has_fanout $path $fanout || return 1
@@ -51,8 +50,9 @@ test_expect_success 'creating many notes with git-notes' '
done
'
-test_expect_success 'many notes created correctly with git-notes' '
- git log | grep "^ " > output &&
+test_expect_success !SANITIZE_LEAK 'many notes created correctly with git-notes' '
+ git log >output.raw &&
+ grep "^ " output.raw >output &&
i=$num_notes &&
while test $i -gt 0
do
@@ -91,13 +91,13 @@ test_expect_success 'stable fanout 0 is followed by stable fanout 1' '
test_expect_success 'deleting most notes with git-notes' '
remove_notes=285 &&
i=0 &&
- git rev-list HEAD |
+ git rev-list HEAD >revs &&
while test $i -lt $remove_notes && read sha1
do
i=$(($i + 1)) &&
test_tick &&
- git notes remove "$sha1" 2>/dev/null || return 1
- done
+ git notes remove "$sha1" || return 1
+ done <revs
'
test_expect_success 'most notes deleted correctly with git-notes' '
diff --git a/t/t3400-rebase.sh b/t/t3400-rebase.sh
index 71b1735e1d..d5a8ee39fc 100755
--- a/t/t3400-rebase.sh
+++ b/t/t3400-rebase.sh
@@ -18,10 +18,7 @@ GIT_AUTHOR_EMAIL=bogus@email@address
export GIT_AUTHOR_NAME GIT_AUTHOR_EMAIL
test_expect_success 'prepare repository with topic branches' '
- git config core.logAllRefUpdates true &&
- echo First >A &&
- git update-index --add A &&
- git commit -m "Add A." &&
+ test_commit "Add A." A First First &&
git checkout -b force-3way &&
echo Dummy >Y &&
git update-index --add Y &&
@@ -32,9 +29,7 @@ test_expect_success 'prepare repository with topic branches' '
git mv A D/A &&
git commit -m "Move A." &&
git checkout -b my-topic-branch main &&
- echo Second >B &&
- git update-index --add B &&
- git commit -m "Add B." &&
+ test_commit "Add B." B Second Second &&
git checkout -f main &&
echo Third >>A &&
git update-index A &&
@@ -399,6 +394,15 @@ test_expect_success 'switch to branch not checked out' '
git rebase main other
'
+test_expect_success 'switch to non-branch detaches HEAD' '
+ git checkout main &&
+ old_main=$(git rev-parse HEAD) &&
+ git rebase First Second^0 &&
+ test_cmp_rev HEAD Second &&
+ test_cmp_rev main $old_main &&
+ test_must_fail git symbolic-ref HEAD
+'
+
test_expect_success 'refuse to switch to branch checked out elsewhere' '
git checkout main &&
git worktree add wt &&
diff --git a/t/t3404-rebase-interactive.sh b/t/t3404-rebase-interactive.sh
index a38f2da769..f31afd4a54 100755
--- a/t/t3404-rebase-interactive.sh
+++ b/t/t3404-rebase-interactive.sh
@@ -619,9 +619,7 @@ test_expect_success 'rebase a detached HEAD' '
'
test_expect_success 'rebase a commit violating pre-commit' '
-
- mkdir -p .git/hooks &&
- write_script .git/hooks/pre-commit <<-\EOF &&
+ test_hook pre-commit <<-\EOF &&
test -z "$(git diff --cached --check)"
EOF
echo "monde! " >> file1 &&
@@ -636,8 +634,6 @@ test_expect_success 'rebase a commit violating pre-commit' '
'
test_expect_success 'rebase with a file named HEAD in worktree' '
-
- rm -fr .git/hooks &&
git reset --hard &&
git checkout -b branch3 A &&
@@ -1688,10 +1684,8 @@ test_expect_success 'valid author header when author contains single quote' '
'
test_expect_success 'post-commit hook is called' '
- test_when_finished "rm -f .git/hooks/post-commit" &&
>actual &&
- mkdir -p .git/hooks &&
- write_script .git/hooks/post-commit <<-\EOS &&
+ test_hook post-commit <<-\EOS &&
git rev-parse HEAD >>actual
EOS
(
diff --git a/t/t3406-rebase-message.sh b/t/t3406-rebase-message.sh
index 77a313f62e..d17b450e81 100755
--- a/t/t3406-rebase-message.sh
+++ b/t/t3406-rebase-message.sh
@@ -105,6 +105,29 @@ test_expect_success 'GIT_REFLOG_ACTION' '
test_cmp expect actual
'
+test_expect_success 'rebase --apply reflog' '
+ git checkout -b reflog-apply start &&
+ old_head_reflog="$(git log -g --format=%gs -1 HEAD)" &&
+
+ git rebase --apply Y &&
+
+ git log -g --format=%gs -4 HEAD >actual &&
+ cat >expect <<-EOF &&
+ rebase finished: returning to refs/heads/reflog-apply
+ rebase: Z
+ rebase: checkout Y
+ $old_head_reflog
+ EOF
+ test_cmp expect actual &&
+
+ git log -g --format=%gs -2 reflog-apply >actual &&
+ cat >expect <<-EOF &&
+ rebase finished: refs/heads/reflog-apply onto $(git rev-parse Y)
+ branch: Created from start
+ EOF
+ test_cmp expect actual
+'
+
test_expect_success 'rebase -i onto unrelated history' '
git init unrelated &&
test_commit -C unrelated 1 &&
diff --git a/t/t3412-rebase-root.sh b/t/t3412-rebase-root.sh
index 19c6f4acbf..58371d8a54 100755
--- a/t/t3412-rebase-root.sh
+++ b/t/t3412-rebase-root.sh
@@ -11,7 +11,7 @@ export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME
log_with_names () {
git rev-list --topo-order --parents --pretty="tformat:%s" HEAD |
- git name-rev --stdin --name-only --refs=refs/heads/$1
+ git name-rev --annotate-stdin --name-only --refs=refs/heads/$1
}
@@ -31,12 +31,9 @@ test_expect_success 'rebase --root fails with too many args' '
'
test_expect_success 'setup pre-rebase hook' '
- mkdir -p .git/hooks &&
- cat >.git/hooks/pre-rebase <<EOF &&
-#!$SHELL_PATH
-echo "\$1,\$2" >.git/PRE-REBASE-INPUT
-EOF
- chmod +x .git/hooks/pre-rebase
+ test_hook --setup pre-rebase <<-\EOF
+ echo "$1,$2" >.git/PRE-REBASE-INPUT
+ EOF
'
cat > expect <<EOF
4
@@ -141,12 +138,9 @@ commit work7~5
EOF
test_expect_success 'setup pre-rebase hook that fails' '
- mkdir -p .git/hooks &&
- cat >.git/hooks/pre-rebase <<EOF &&
-#!$SHELL_PATH
-false
-EOF
- chmod +x .git/hooks/pre-rebase
+ test_hook --setup --clobber pre-rebase <<-\EOF
+ false
+ EOF
'
test_expect_success 'pre-rebase hook stops rebase' '
diff --git a/t/t3413-rebase-hook.sh b/t/t3413-rebase-hook.sh
index b4acb3be5c..9fab0d779b 100755
--- a/t/t3413-rebase-hook.sh
+++ b/t/t3413-rebase-hook.sh
@@ -41,12 +41,9 @@ test_expect_success 'rebase -i' '
'
test_expect_success 'setup pre-rebase hook' '
- mkdir -p .git/hooks &&
- cat >.git/hooks/pre-rebase <<EOF &&
-#!$SHELL_PATH
-echo "\$1,\$2" >.git/PRE-REBASE-INPUT
-EOF
- chmod +x .git/hooks/pre-rebase
+ test_hook --setup pre-rebase <<-\EOF
+ echo "$1,$2" >.git/PRE-REBASE-INPUT
+ EOF
'
test_expect_success 'pre-rebase hook gets correct input (1)' '
@@ -102,12 +99,9 @@ test_expect_success 'pre-rebase hook gets correct input (6)' '
'
test_expect_success 'setup pre-rebase hook that fails' '
- mkdir -p .git/hooks &&
- cat >.git/hooks/pre-rebase <<EOF &&
-#!$SHELL_PATH
-false
-EOF
- chmod +x .git/hooks/pre-rebase
+ test_hook --setup --clobber pre-rebase <<-\EOF
+ false
+ EOF
'
test_expect_success 'pre-rebase hook stops rebase (1)' '
diff --git a/t/t3416-rebase-onto-threedots.sh b/t/t3416-rebase-onto-threedots.sh
index 3716a42e81..3e04802cb0 100755
--- a/t/t3416-rebase-onto-threedots.sh
+++ b/t/t3416-rebase-onto-threedots.sh
@@ -129,6 +129,20 @@ test_expect_success 'rebase --keep-base main from topic' '
test_cmp expect actual
'
+test_expect_success 'rebase --keep-base main topic from main' '
+ git checkout main &&
+ git branch -f topic G &&
+
+ git rebase --keep-base main topic &&
+ git rev-parse C >base.expect &&
+ git merge-base main HEAD >base.actual &&
+ test_cmp base.expect base.actual &&
+
+ git rev-parse HEAD~2 >actual &&
+ git rev-parse C^0 >expect &&
+ test_cmp expect actual
+'
+
test_expect_success 'rebase --keep-base main from side' '
git reset --hard &&
git checkout side &&
@@ -153,6 +167,21 @@ test_expect_success 'rebase -i --keep-base main from topic' '
test_cmp expect actual
'
+test_expect_success 'rebase -i --keep-base main topic from main' '
+ git checkout main &&
+ git branch -f topic G &&
+
+ set_fake_editor &&
+ EXPECT_COUNT=2 git rebase -i --keep-base main topic &&
+ git rev-parse C >base.expect &&
+ git merge-base main HEAD >base.actual &&
+ test_cmp base.expect base.actual &&
+
+ git rev-parse HEAD~2 >actual &&
+ git rev-parse C^0 >expect &&
+ test_cmp expect actual
+'
+
test_expect_success 'rebase -i --keep-base main from side' '
git reset --hard &&
git checkout side &&
diff --git a/t/t3418-rebase-continue.sh b/t/t3418-rebase-continue.sh
index 22eca73aa3..130e2f9b55 100755
--- a/t/t3418-rebase-continue.sh
+++ b/t/t3418-rebase-continue.sh
@@ -308,4 +308,30 @@ test_expect_success 'there is no --no-reschedule-failed-exec in an ongoing rebas
test_expect_code 129 git rebase --edit-todo --no-reschedule-failed-exec
'
+test_orig_head_helper () {
+ test_when_finished 'git rebase --abort &&
+ git checkout topic &&
+ git reset --hard commit-new-file-F2-on-topic-branch' &&
+ git update-ref -d ORIG_HEAD &&
+ test_must_fail git rebase "$@" &&
+ test_cmp_rev ORIG_HEAD commit-new-file-F2-on-topic-branch
+}
+
+test_orig_head () {
+ type=$1
+ test_expect_success "rebase $type sets ORIG_HEAD correctly" '
+ git checkout topic &&
+ git reset --hard commit-new-file-F2-on-topic-branch &&
+ test_orig_head_helper $type main
+ '
+
+ test_expect_success "rebase $type <upstream> <branch> sets ORIG_HEAD correctly" '
+ git checkout main &&
+ test_orig_head_helper $type main topic
+ '
+}
+
+test_orig_head --apply
+test_orig_head --merge
+
test_done
diff --git a/t/t3430-rebase-merges.sh b/t/t3430-rebase-merges.sh
index 43c82d9a33..f351701fec 100755
--- a/t/t3430-rebase-merges.sh
+++ b/t/t3430-rebase-merges.sh
@@ -292,9 +292,9 @@ test_expect_success 'post-rewrite hook and fixups work for merges' '
git commit --fixup HEAD same2.t &&
fixup="$(git rev-parse HEAD)" &&
- mkdir -p .git/hooks &&
- test_when_finished "rm .git/hooks/post-rewrite" &&
- echo "cat >actual" | write_script .git/hooks/post-rewrite &&
+ test_hook post-rewrite <<-\EOF &&
+ cat >actual
+ EOF
test_tick &&
git rebase -i --autosquash -r HEAD^^^ &&
diff --git a/t/t3501-revert-cherry-pick.sh b/t/t3501-revert-cherry-pick.sh
index 8617efaaf1..9eb19204ac 100755
--- a/t/t3501-revert-cherry-pick.sh
+++ b/t/t3501-revert-cherry-pick.sh
@@ -66,8 +66,7 @@ test_expect_success 'cherry-pick after renaming branch' '
git checkout rename2 &&
git cherry-pick added &&
- test $(git rev-parse HEAD^) = $(git rev-parse rename2) &&
- test -f opos &&
+ test_cmp_rev rename2 HEAD^ &&
grep "Add extra line at the end" opos &&
git reflog -1 | grep cherry-pick
@@ -77,9 +76,9 @@ test_expect_success 'revert after renaming branch' '
git checkout rename1 &&
git revert added &&
- test $(git rev-parse HEAD^) = $(git rev-parse rename1) &&
- test -f spoo &&
- ! grep "Add extra line at the end" spoo &&
+ test_cmp_rev rename1 HEAD^ &&
+ test_path_is_file spoo &&
+ test_cmp_rev initial:oops HEAD:spoo &&
git reflog -1 | grep revert
'
diff --git a/t/t3701-add-interactive.sh b/t/t3701-add-interactive.sh
index 207714655f..94537a6b40 100755
--- a/t/t3701-add-interactive.sh
+++ b/t/t3701-add-interactive.sh
@@ -326,7 +326,9 @@ test_expect_success 'correct message when there is nothing to do' '
test_expect_success 'setup again' '
git reset --hard &&
test_chmod +x file &&
- echo content >>file
+ echo content >>file &&
+ test_write_lines A B C D>file2 &&
+ git add file2
'
# Write the patch file with a new line at the top and bottom
@@ -341,13 +343,27 @@ test_expect_success 'setup patch' '
content
+lastline
\ No newline at end of file
+ diff --git a/file2 b/file2
+ index 8422d40..35b930a 100644
+ --- a/file2
+ +++ b/file2
+ @@ -1,4 +1,5 @@
+ -A
+ +Z
+ B
+ +Y
+ C
+ -D
+ +X
EOF
'
# Expected output, diff is similar to the patch but w/ diff at the top
test_expect_success 'setup expected' '
echo diff --git a/file b/file >expected &&
- cat patch |sed "/^index/s/ 100644/ 100755/" >>expected &&
+ sed -e "/^index 180b47c/s/ 100644/ 100755/" \
+ -e /1,5/s//1,4/ \
+ -e /Y/d patch >>expected &&
cat >expected-output <<-\EOF
--- a/file
+++ b/file
@@ -366,6 +382,28 @@ test_expect_success 'setup expected' '
content
+lastline
\ No newline at end of file
+ --- a/file2
+ +++ b/file2
+ @@ -1,4 +1,5 @@
+ -A
+ +Z
+ B
+ +Y
+ C
+ -D
+ +X
+ @@ -1,2 +1,2 @@
+ -A
+ +Z
+ B
+ @@ -2,2 +2,3 @@
+ B
+ +Y
+ C
+ @@ -3,2 +4,2 @@
+ C
+ -D
+ +X
EOF
'
@@ -373,9 +411,9 @@ test_expect_success 'setup expected' '
test_expect_success 'add first line works' '
git commit -am "clear local changes" &&
git apply patch &&
- printf "%s\n" s y y | git add -p file 2>error |
- sed -n -e "s/^([1-2]\/[1-2]) Stage this hunk[^@]*\(@@ .*\)/\1/" \
- -e "/^[-+@ \\\\]"/p >output &&
+ test_write_lines s y y s y n y | git add -p 2>error >raw-output &&
+ sed -n -e "s/^([1-9]\/[1-9]) Stage this hunk[^@]*\(@@ .*\)/\1/" \
+ -e "/^[-+@ \\\\]"/p raw-output >output &&
test_must_be_empty error &&
git diff --cached >diff &&
diff_cmp expected diff &&
diff --git a/t/t3705-add-sparse-checkout.sh b/t/t3705-add-sparse-checkout.sh
index 81f3384eee..95609046c6 100755
--- a/t/t3705-add-sparse-checkout.sh
+++ b/t/t3705-add-sparse-checkout.sh
@@ -19,6 +19,7 @@ setup_sparse_entry () {
fi &&
git add sparse_entry &&
git update-index --skip-worktree sparse_entry &&
+ git config core.sparseCheckout false &&
git commit --allow-empty -m "ensure sparse_entry exists at HEAD" &&
SPARSE_ENTRY_BLOB=$(git rev-parse :sparse_entry)
}
@@ -126,6 +127,7 @@ test_expect_success 'git add --chmod does not update sparse entries' '
'
test_expect_success 'git add --renormalize does not update sparse entries' '
+ test_when_finished rm .gitattributes &&
test_config core.autocrlf false &&
setup_sparse_entry "LINEONE\r\nLINETWO\r\n" &&
echo "sparse_entry text=auto" >.gitattributes &&
diff --git a/t/t3903-stash.sh b/t/t3903-stash.sh
index 686747e55a..4abbc8fcca 100755
--- a/t/t3903-stash.sh
+++ b/t/t3903-stash.sh
@@ -41,7 +41,7 @@ diff_cmp () {
rm -f "$1.compare" "$2.compare"
}
-test_expect_success 'stash some dirty working directory' '
+setup_stash() {
echo 1 >file &&
git add file &&
echo unrelated >other-file &&
@@ -55,6 +55,10 @@ test_expect_success 'stash some dirty working directory' '
git stash &&
git diff-files --quiet &&
git diff-index --cached --quiet HEAD
+}
+
+test_expect_success 'stash some dirty working directory' '
+ setup_stash
'
cat >expect <<EOF
@@ -185,6 +189,43 @@ test_expect_success 'drop middle stash by index' '
test 1 = $(git show HEAD:file)
'
+test_expect_success 'drop stash reflog updates refs/stash' '
+ git reset --hard &&
+ git rev-parse refs/stash >expect &&
+ echo 9 >file &&
+ git stash &&
+ git stash drop stash@{0} &&
+ git rev-parse refs/stash >actual &&
+ test_cmp expect actual
+'
+
+test_expect_success REFFILES 'drop stash reflog updates refs/stash with rewrite' '
+ git init repo &&
+ (
+ cd repo &&
+ setup_stash
+ ) &&
+ echo 9 >repo/file &&
+
+ old_oid="$(git -C repo rev-parse stash@{0})" &&
+ git -C repo stash &&
+ new_oid="$(git -C repo rev-parse stash@{0})" &&
+
+ cat >expect <<-EOF &&
+ $(test_oid zero) $old_oid
+ $old_oid $new_oid
+ EOF
+ cut -d" " -f1-2 repo/.git/logs/refs/stash >actual &&
+ test_cmp expect actual &&
+
+ git -C repo stash drop stash@{1} &&
+ cut -d" " -f1-2 repo/.git/logs/refs/stash >actual &&
+ cat >expect <<-EOF &&
+ $(test_oid zero) $new_oid
+ EOF
+ test_cmp expect actual
+'
+
test_expect_success 'stash pop' '
git reset --hard &&
git stash pop &&
@@ -261,6 +302,18 @@ test_expect_success 'apply -q is quiet' '
test_must_be_empty output.out
'
+test_expect_success 'apply --index -q is quiet' '
+ # Added file, deleted file, modified file all staged for commit
+ echo foo >new-file &&
+ echo test >file &&
+ git add new-file file &&
+ git rm other-file &&
+
+ git stash &&
+ git stash apply --index -q >output.out 2>&1 &&
+ test_must_be_empty output.out
+'
+
test_expect_success 'save -q is quiet' '
git stash save --quiet >output.out 2>&1 &&
test_must_be_empty output.out
@@ -291,6 +344,27 @@ test_expect_success 'drop -q is quiet' '
test_must_be_empty output.out
'
+test_expect_success 'stash push -q --staged refreshes the index' '
+ git reset --hard &&
+ echo test >file &&
+ git add file &&
+ git stash push -q --staged &&
+ git diff-files >output.out &&
+ test_must_be_empty output.out
+'
+
+test_expect_success 'stash apply -q --index refreshes the index' '
+ echo test >other-file &&
+ git add other-file &&
+ echo another-change >other-file &&
+ git diff-files >expect &&
+ git stash &&
+
+ git stash apply -q --index &&
+ git diff-files >actual &&
+ test_cmp expect actual
+'
+
test_expect_success 'stash -k' '
echo bar3 >file &&
echo bar4 >file2 &&
@@ -390,10 +464,11 @@ test_expect_success SYMLINKS 'stash file to symlink' '
rm file &&
ln -s file2 file &&
git stash save "file to symlink" &&
- test -f file &&
+ test_path_is_file_not_symlink file &&
test bar = "$(cat file)" &&
git stash apply &&
- case "$(ls -l file)" in *" file -> file2") :;; *) false;; esac
+ test_path_is_symlink file &&
+ test "$(test_readlink file)" = file2
'
test_expect_success SYMLINKS 'stash file to symlink (stage rm)' '
@@ -401,10 +476,11 @@ test_expect_success SYMLINKS 'stash file to symlink (stage rm)' '
git rm file &&
ln -s file2 file &&
git stash save "file to symlink (stage rm)" &&
- test -f file &&
+ test_path_is_file_not_symlink file &&
test bar = "$(cat file)" &&
git stash apply &&
- case "$(ls -l file)" in *" file -> file2") :;; *) false;; esac
+ test_path_is_symlink file &&
+ test "$(test_readlink file)" = file2
'
test_expect_success SYMLINKS 'stash file to symlink (full stage)' '
@@ -413,10 +489,11 @@ test_expect_success SYMLINKS 'stash file to symlink (full stage)' '
ln -s file2 file &&
git add file &&
git stash save "file to symlink (full stage)" &&
- test -f file &&
+ test_path_is_file_not_symlink file &&
test bar = "$(cat file)" &&
git stash apply &&
- case "$(ls -l file)" in *" file -> file2") :;; *) false;; esac
+ test_path_is_symlink file &&
+ test "$(test_readlink file)" = file2
'
# This test creates a commit with a symlink used for the following tests
@@ -487,7 +564,7 @@ test_expect_failure 'stash directory to file' '
rm -fr dir &&
echo bar >dir &&
git stash save "directory to file" &&
- test -d dir &&
+ test_path_is_dir dir &&
test foo = "$(cat dir/file)" &&
test_must_fail git stash apply &&
test bar = "$(cat dir)" &&
@@ -500,10 +577,10 @@ test_expect_failure 'stash file to directory' '
mkdir file &&
echo foo >file/file &&
git stash save "file to directory" &&
- test -f file &&
+ test_path_is_file file &&
test bar = "$(cat file)" &&
git stash apply &&
- test -f file/file &&
+ test_path_is_file file/file &&
test foo = "$(cat file/file)"
'
@@ -1042,6 +1119,17 @@ test_expect_success 'create stores correct message' '
test_cmp expect actual
'
+test_expect_success 'create when branch name has /' '
+ test_when_finished "git checkout main" &&
+ git checkout -b some/topic &&
+ >foo &&
+ git add foo &&
+ STASH_ID=$(git stash create "create test message") &&
+ echo "On some/topic: create test message" >expect &&
+ git show --pretty=%s -s ${STASH_ID} >actual &&
+ test_cmp expect actual
+'
+
test_expect_success 'create with multiple arguments for the message' '
>foo &&
git add foo &&
@@ -1272,7 +1360,6 @@ test_expect_success 'stash works when user.name and user.email are not set' '
>2 &&
git add 2 &&
test_config user.useconfigonly true &&
- test_config stash.usebuiltin true &&
(
sane_unset GIT_AUTHOR_NAME &&
sane_unset GIT_AUTHOR_EMAIL &&
@@ -1323,20 +1410,6 @@ test_expect_success 'stash handles skip-worktree entries nicely' '
git rev-parse --verify refs/stash:A.t
'
-test_expect_success 'stash -c stash.useBuiltin=false warning ' '
- expected="stash.useBuiltin support has been removed" &&
-
- git -c stash.useBuiltin=false stash 2>err &&
- test_i18ngrep "$expected" err &&
- env GIT_TEST_STASH_USE_BUILTIN=false git stash 2>err &&
- test_i18ngrep "$expected" err &&
-
- git -c stash.useBuiltin=true stash 2>err &&
- test_must_be_empty err &&
- env GIT_TEST_STASH_USE_BUILTIN=true git stash 2>err &&
- test_must_be_empty err
-'
-
test_expect_success 'git stash succeeds despite directory/file change' '
test_create_repo directory_file_switch_v1 &&
(
diff --git a/t/t4013-diff-various.sh b/t/t4013-diff-various.sh
index 750aee17ea..056e922164 100755
--- a/t/t4013-diff-various.sh
+++ b/t/t4013-diff-various.sh
@@ -542,6 +542,39 @@ test_expect_success 'diff-tree --stdin with log formatting' '
test_cmp expect actual
'
+test_expect_success 'diff-tree --stdin with pathspec' '
+ cat >expect <<-EOF &&
+ Third
+
+ dir/sub
+ Second
+
+ dir/sub
+ EOF
+ git rev-list master^ |
+ git diff-tree -r --stdin --name-only --format=%s dir >actual &&
+ test_cmp expect actual
+'
+
+test_expect_success 'show A B ... -- <pathspec>' '
+ # side touches dir/sub, file0, and file3
+ # master^ touches dir/sub, and file1
+ # master^^ touches dir/sub, file0, and file2
+ git show --name-only --format="<%s>" side master^ master^^ -- dir >actual &&
+ cat >expect <<-\EOF &&
+ <Side>
+
+ dir/sub
+ <Third>
+
+ dir/sub
+ <Second>
+
+ dir/sub
+ EOF
+ test_cmp expect actual
+'
+
test_expect_success 'diff -I<regex>: setup' '
git checkout master &&
test_seq 50 >file0 &&
diff --git a/t/t4014-format-patch.sh b/t/t4014-format-patch.sh
index 7dc5a5c736..fbec8ad2ef 100755
--- a/t/t4014-format-patch.sh
+++ b/t/t4014-format-patch.sh
@@ -926,11 +926,40 @@ test_expect_success 'format-patch --numstat should produce a patch' '
'
test_expect_success 'format-patch -- <path>' '
- git format-patch main..side -- file 2>error &&
- ! grep "Use .--" error
+ rm -f *.patch &&
+ git checkout -b pathspec main &&
+
+ echo file_a 1 >file_a &&
+ echo file_b 1 >file_b &&
+ git add file_a file_b &&
+ git commit -m pathspec_initial &&
+
+ echo file_a 2 >>file_a &&
+ git add file_a &&
+ git commit -m pathspec_a &&
+
+ echo file_b 2 >>file_b &&
+ git add file_b &&
+ git commit -m pathspec_b &&
+
+ echo file_a 3 >>file_a &&
+ echo file_b 3 >>file_b &&
+ git add file_a file_b &&
+ git commit -m pathspec_ab &&
+
+ cat >expect <<-\EOF &&
+ 0001-pathspec_initial.patch
+ 0002-pathspec_a.patch
+ 0003-pathspec_ab.patch
+ EOF
+
+ git format-patch main..pathspec -- file_a >output &&
+ test_cmp expect output &&
+ ! grep file_b *.patch
'
test_expect_success 'format-patch --ignore-if-in-upstream HEAD' '
+ git checkout side &&
git format-patch --ignore-if-in-upstream HEAD
'
diff --git a/t/t4015-diff-whitespace.sh b/t/t4015-diff-whitespace.sh
index 9babf13bc9..f3e20dd5bb 100755
--- a/t/t4015-diff-whitespace.sh
+++ b/t/t4015-diff-whitespace.sh
@@ -6,6 +6,8 @@
test_description='Test special whitespace in diff engine.
'
+
+TEST_PASSES_SANITIZE_LEAK=true
. ./test-lib.sh
. "$TEST_DIRECTORY"/lib-diff.sh
@@ -1622,7 +1624,7 @@ test_expect_success 'cmd option assumes configured colored-moved' '
test_cmp expected actual
'
-test_expect_success 'no effect from --color-moved with --word-diff' '
+test_expect_success 'no effect on diff from --color-moved with --word-diff' '
cat <<-\EOF >text.txt &&
Lorem Ipsum is simply dummy text of the printing and typesetting industry.
EOF
@@ -1636,6 +1638,12 @@ test_expect_success 'no effect from --color-moved with --word-diff' '
test_cmp expect actual
'
+test_expect_success !SANITIZE_LEAK 'no effect on show from --color-moved with --word-diff' '
+ git show --color-moved --word-diff >actual &&
+ git show --word-diff >expect &&
+ test_cmp expect actual
+'
+
test_expect_success 'set up whitespace tests' '
git reset --hard &&
# Note that these lines have no leading or trailing whitespace.
@@ -2016,7 +2024,7 @@ test_expect_success '--color-moved rewinds for MIN_ALNUM_COUNT' '
test_cmp expected actual
'
-test_expect_success 'move detection with submodules' '
+test_expect_success !SANITIZE_LEAK 'move detection with submodules' '
test_create_repo bananas &&
echo ripe >bananas/recipe &&
git -C bananas add recipe &&
diff --git a/t/t4018/kotlin-class b/t/t4018/kotlin-class
new file mode 100644
index 0000000000..bb864f22e6
--- /dev/null
+++ b/t/t4018/kotlin-class
@@ -0,0 +1,5 @@
+class RIGHT {
+ //comment
+ //comment
+ return ChangeMe
+}
diff --git a/t/t4018/kotlin-enum-class b/t/t4018/kotlin-enum-class
new file mode 100644
index 0000000000..8885f908fd
--- /dev/null
+++ b/t/t4018/kotlin-enum-class
@@ -0,0 +1,5 @@
+enum class RIGHT{
+ // Left
+ // a comment
+ ChangeMe
+}
diff --git a/t/t4018/kotlin-fun b/t/t4018/kotlin-fun
new file mode 100644
index 0000000000..2a60280256
--- /dev/null
+++ b/t/t4018/kotlin-fun
@@ -0,0 +1,5 @@
+fun RIGHT(){
+ //a comment
+ //b comment
+ return ChangeMe()
+}
diff --git a/t/t4018/kotlin-inheritace-class b/t/t4018/kotlin-inheritace-class
new file mode 100644
index 0000000000..77376c1f05
--- /dev/null
+++ b/t/t4018/kotlin-inheritace-class
@@ -0,0 +1,5 @@
+open class RIGHT{
+ // a comment
+ // b comment
+ // ChangeMe
+}
diff --git a/t/t4018/kotlin-inline-class b/t/t4018/kotlin-inline-class
new file mode 100644
index 0000000000..7bf46dd8d4
--- /dev/null
+++ b/t/t4018/kotlin-inline-class
@@ -0,0 +1,5 @@
+value class RIGHT(Args){
+ // a comment
+ // b comment
+ ChangeMe
+}
diff --git a/t/t4018/kotlin-interface b/t/t4018/kotlin-interface
new file mode 100644
index 0000000000..f686ba7770
--- /dev/null
+++ b/t/t4018/kotlin-interface
@@ -0,0 +1,5 @@
+interface RIGHT{
+ //another comment
+ //another comment
+ //ChangeMe
+}
diff --git a/t/t4018/kotlin-nested-fun b/t/t4018/kotlin-nested-fun
new file mode 100644
index 0000000000..12186858cb
--- /dev/null
+++ b/t/t4018/kotlin-nested-fun
@@ -0,0 +1,9 @@
+class LEFT{
+ class CENTER{
+ fun RIGHT( a:Int){
+ //comment
+ //comment
+ ChangeMe
+ }
+ }
+}
diff --git a/t/t4018/kotlin-public-class b/t/t4018/kotlin-public-class
new file mode 100644
index 0000000000..9433fcc226
--- /dev/null
+++ b/t/t4018/kotlin-public-class
@@ -0,0 +1,5 @@
+public class RIGHT{
+ //comment1
+ //comment2
+ ChangeMe
+}
diff --git a/t/t4018/kotlin-sealed-class b/t/t4018/kotlin-sealed-class
new file mode 100644
index 0000000000..0efa4a4eaf
--- /dev/null
+++ b/t/t4018/kotlin-sealed-class
@@ -0,0 +1,5 @@
+sealed class RIGHT {
+ // a comment
+ // b comment
+ ChangeMe
+}
diff --git a/t/t4020-diff-external.sh b/t/t4020-diff-external.sh
index 54bb8ef27e..858a5522f9 100755
--- a/t/t4020-diff-external.sh
+++ b/t/t4020-diff-external.sh
@@ -24,45 +24,38 @@ test_expect_success setup '
'
test_expect_success 'GIT_EXTERNAL_DIFF environment' '
-
- GIT_EXTERNAL_DIFF=echo git diff | {
- read path oldfile oldhex oldmode newfile newhex newmode &&
- test "z$path" = zfile &&
- test "z$oldmode" = z100644 &&
- test "z$newhex" = "z$ZERO_OID" &&
- test "z$newmode" = z100644 &&
- oh=$(git rev-parse --verify HEAD:file) &&
- test "z$oh" = "z$oldhex"
- }
+ cat >expect <<-EOF &&
+ file $(git rev-parse --verify HEAD:file) 100644 file $(test_oid zero) 100644
+ EOF
+ GIT_EXTERNAL_DIFF=echo git diff >out &&
+ cut -d" " -f1,3- <out >actual &&
+ test_cmp expect actual
'
-test_expect_success 'GIT_EXTERNAL_DIFF environment should apply only to diff' '
-
- GIT_EXTERNAL_DIFF=echo git log -p -1 HEAD |
- grep "^diff --git a/file b/file"
+test_expect_success !SANITIZE_LEAK 'GIT_EXTERNAL_DIFF environment should apply only to diff' '
+ GIT_EXTERNAL_DIFF=echo git log -p -1 HEAD >out &&
+ grep "^diff --git a/file b/file" out
'
test_expect_success 'GIT_EXTERNAL_DIFF environment and --no-ext-diff' '
-
- GIT_EXTERNAL_DIFF=echo git diff --no-ext-diff |
- grep "^diff --git a/file b/file"
+ GIT_EXTERNAL_DIFF=echo git diff --no-ext-diff >out &&
+ grep "^diff --git a/file b/file" out
'
test_expect_success SYMLINKS 'typechange diff' '
rm -f file &&
ln -s elif file &&
- GIT_EXTERNAL_DIFF=echo git diff | {
- read path oldfile oldhex oldmode newfile newhex newmode &&
- test "z$path" = zfile &&
- test "z$oldmode" = z100644 &&
- test "z$newhex" = "z$ZERO_OID" &&
- test "z$newmode" = z120000 &&
- oh=$(git rev-parse --verify HEAD:file) &&
- test "z$oh" = "z$oldhex"
- } &&
+
+ cat >expect <<-EOF &&
+ file $(git rev-parse --verify HEAD:file) 100644 $(test_oid zero) 120000
+ EOF
+ GIT_EXTERNAL_DIFF=echo git diff >out &&
+ cut -d" " -f1,3-4,6- <out >actual &&
+ test_cmp expect actual &&
+
GIT_EXTERNAL_DIFF=echo git diff --no-ext-diff >actual &&
git diff >expect &&
test_cmp expect actual
@@ -72,27 +65,25 @@ test_expect_success 'diff.external' '
git reset --hard &&
echo third >file &&
test_config diff.external echo &&
- git diff | {
- read path oldfile oldhex oldmode newfile newhex newmode &&
- test "z$path" = zfile &&
- test "z$oldmode" = z100644 &&
- test "z$newhex" = "z$ZERO_OID" &&
- test "z$newmode" = z100644 &&
- oh=$(git rev-parse --verify HEAD:file) &&
- test "z$oh" = "z$oldhex"
- }
+
+ cat >expect <<-EOF &&
+ file $(git rev-parse --verify HEAD:file) 100644 $(test_oid zero) 100644
+ EOF
+ git diff >out &&
+ cut -d" " -f1,3-4,6- <out >actual &&
+ test_cmp expect actual
'
-test_expect_success 'diff.external should apply only to diff' '
+test_expect_success !SANITIZE_LEAK 'diff.external should apply only to diff' '
test_config diff.external echo &&
- git log -p -1 HEAD |
- grep "^diff --git a/file b/file"
+ git log -p -1 HEAD >out &&
+ grep "^diff --git a/file b/file" out
'
test_expect_success 'diff.external and --no-ext-diff' '
test_config diff.external echo &&
- git diff --no-ext-diff |
- grep "^diff --git a/file b/file"
+ git diff --no-ext-diff >out &&
+ grep "^diff --git a/file b/file" out
'
test_expect_success 'diff attribute' '
@@ -103,29 +94,23 @@ test_expect_success 'diff attribute' '
echo >.gitattributes "file diff=parrot" &&
- git diff | {
- read path oldfile oldhex oldmode newfile newhex newmode &&
- test "z$path" = zfile &&
- test "z$oldmode" = z100644 &&
- test "z$newhex" = "z$ZERO_OID" &&
- test "z$newmode" = z100644 &&
- oh=$(git rev-parse --verify HEAD:file) &&
- test "z$oh" = "z$oldhex"
- }
-
+ cat >expect <<-EOF &&
+ file $(git rev-parse --verify HEAD:file) 100644 $(test_oid zero) 100644
+ EOF
+ git diff >out &&
+ cut -d" " -f1,3-4,6- <out >actual &&
+ test_cmp expect actual
'
-test_expect_success 'diff attribute should apply only to diff' '
-
- git log -p -1 HEAD |
- grep "^diff --git a/file b/file"
+test_expect_success !SANITIZE_LEAK 'diff attribute should apply only to diff' '
+ git log -p -1 HEAD >out &&
+ grep "^diff --git a/file b/file" out
'
test_expect_success 'diff attribute and --no-ext-diff' '
-
- git diff --no-ext-diff |
- grep "^diff --git a/file b/file"
+ git diff --no-ext-diff >out &&
+ grep "^diff --git a/file b/file" out
'
@@ -136,48 +121,55 @@ test_expect_success 'diff attribute' '
echo >.gitattributes "file diff=color" &&
- git diff | {
- read path oldfile oldhex oldmode newfile newhex newmode &&
- test "z$path" = zfile &&
- test "z$oldmode" = z100644 &&
- test "z$newhex" = "z$ZERO_OID" &&
- test "z$newmode" = z100644 &&
- oh=$(git rev-parse --verify HEAD:file) &&
- test "z$oh" = "z$oldhex"
- }
-
+ cat >expect <<-EOF &&
+ file $(git rev-parse --verify HEAD:file) 100644 $(test_oid zero) 100644
+ EOF
+ git diff >out &&
+ cut -d" " -f1,3-4,6- <out >actual &&
+ test_cmp expect actual
'
-test_expect_success 'diff attribute should apply only to diff' '
-
- git log -p -1 HEAD |
- grep "^diff --git a/file b/file"
+test_expect_success !SANITIZE_LEAK 'diff attribute should apply only to diff' '
+ git log -p -1 HEAD >out &&
+ grep "^diff --git a/file b/file" out
'
test_expect_success 'diff attribute and --no-ext-diff' '
-
- git diff --no-ext-diff |
- grep "^diff --git a/file b/file"
+ git diff --no-ext-diff >out &&
+ grep "^diff --git a/file b/file" out
'
test_expect_success 'GIT_EXTERNAL_DIFF trumps diff.external' '
>.gitattributes &&
test_config diff.external "echo ext-global" &&
- GIT_EXTERNAL_DIFF="echo ext-env" git diff | grep ext-env
+
+ cat >expect <<-EOF &&
+ ext-env file $(git rev-parse --verify HEAD:file) 100644 file $(test_oid zero) 100644
+ EOF
+ GIT_EXTERNAL_DIFF="echo ext-env" git diff >out &&
+ cut -d" " -f1-2,4- <out >actual &&
+ test_cmp expect actual
'
test_expect_success 'attributes trump GIT_EXTERNAL_DIFF and diff.external' '
test_config diff.foo.command "echo ext-attribute" &&
test_config diff.external "echo ext-global" &&
echo "file diff=foo" >.gitattributes &&
- GIT_EXTERNAL_DIFF="echo ext-env" git diff | grep ext-attribute
+
+ cat >expect <<-EOF &&
+ ext-attribute file $(git rev-parse --verify HEAD:file) 100644 file $(test_oid zero) 100644
+ EOF
+ GIT_EXTERNAL_DIFF="echo ext-env" git diff >out &&
+ cut -d" " -f1-2,4- <out >actual &&
+ test_cmp expect actual
'
test_expect_success 'no diff with -diff' '
echo >.gitattributes "file -diff" &&
- git diff | grep Binary
+ git diff >out &&
+ grep Binary out
'
echo NULZbetweenZwords | perl -pe 'y/Z/\000/' > file
@@ -214,12 +206,17 @@ test_expect_success 'GIT_EXTERNAL_DIFF path counter/total' '
'
test_expect_success 'GIT_EXTERNAL_DIFF generates pretty paths' '
+ test_when_finished "git rm -f file.ext" &&
touch file.ext &&
git add file.ext &&
echo with extension > file.ext &&
- GIT_EXTERNAL_DIFF=echo git diff file.ext | grep ......_file\.ext &&
- git update-index --force-remove file.ext &&
- rm file.ext
+
+ cat >expect <<-EOF &&
+ file.ext
+ EOF
+ GIT_EXTERNAL_DIFF=echo git diff file.ext >out &&
+ basename $(cut -d" " -f2 <out) >actual &&
+ test_cmp expect actual
'
echo "#!$SHELL_PATH" >fake-diff.sh
diff --git a/t/t4027-diff-submodule.sh b/t/t4027-diff-submodule.sh
index 6cef0da982..295da987cc 100755
--- a/t/t4027-diff-submodule.sh
+++ b/t/t4027-diff-submodule.sh
@@ -2,7 +2,6 @@
test_description='difference in submodules'
-TEST_PASSES_SANITIZE_LEAK=true
. ./test-lib.sh
. "$TEST_DIRECTORY"/lib-diff.sh
@@ -28,10 +27,8 @@ test_expect_success setup '
git commit -m "submodule #2"
) &&
- set x $(
- cd sub &&
- git rev-list HEAD
- ) &&
+ git -C sub rev-list HEAD >revs &&
+ set x $(cat revs) &&
echo ":160000 160000 $3 $ZERO_OID M sub" >expect &&
subtip=$3 subprev=$2
'
diff --git a/t/t4034-diff-words.sh b/t/t4034-diff-words.sh
index d5abcf4b4c..15764ee9ac 100755
--- a/t/t4034-diff-words.sh
+++ b/t/t4034-diff-words.sh
@@ -324,6 +324,7 @@ test_language_driver dts
test_language_driver fortran
test_language_driver html
test_language_driver java
+test_language_driver kotlin
test_language_driver matlab
test_language_driver objc
test_language_driver pascal
diff --git a/t/t4034/kotlin/expect b/t/t4034/kotlin/expect
new file mode 100644
index 0000000000..7f76f7540d
--- /dev/null
+++ b/t/t4034/kotlin/expect
@@ -0,0 +1,43 @@
+<BOLD>diff --git a/pre b/post<RESET>
+<BOLD>index 11ea3de..2e1df4c 100644<RESET>
+<BOLD>--- a/pre<RESET>
+<BOLD>+++ b/post<RESET>
+<CYAN>@@ -1,30 +1,30 @@<RESET>
+println("Hello World<RED>!\n<RESET><GREEN>?<RESET>")
+<GREEN>(<RESET>1<GREEN>) (<RESET>-1e10<GREEN>) (<RESET>0xabcdef<GREEN>)<RESET> '<RED>x<RESET><GREEN>y<RESET>'
+[<RED>a<RESET><GREEN>x<RESET>] <RED>a<RESET><GREEN>x<RESET>-><RED>b a<RESET><GREEN>y x<RESET>.<RED>b<RESET><GREEN>y<RESET>
+!<RED>a a<RESET><GREEN>x x<RESET>.inv() <RED>a<RESET><GREEN>x<RESET>*<RED>b a<RESET><GREEN>y x<RESET>&<RED>b<RESET>
+<RED>a<RESET><GREEN>y<RESET>
+<GREEN>x<RESET>*<RED>b a<RESET><GREEN>y x<RESET>/<RED>b a<RESET><GREEN>y x<RESET>%<RED>b<RESET>
+<RED>a<RESET><GREEN>y<RESET>
+<GREEN>x<RESET>+<RED>b a<RESET><GREEN>y x<RESET>-<RED>b<RESET><GREEN>y<RESET>
+a <RED>shr<RESET><GREEN>shl<RESET> b
+<RED>a<RESET><GREEN>x<RESET><<RED>b a<RESET><GREEN>y x<RESET><=<RED>b a<RESET><GREEN>y x<RESET>><RED>b a<RESET><GREEN>y x<RESET>>=<RED>b<RESET>
+<RED>a<RESET><GREEN>y<RESET>
+<GREEN>x<RESET>==<RED>b a<RESET><GREEN>y x<RESET>!=<RED>b a<RESET><GREEN>y x<RESET>===<RED>b<RESET>
+<RED>a<RESET><GREEN>y<RESET>
+<GREEN>x<RESET> and <RED>b<RESET>
+<RED>a<RESET><GREEN>y<RESET>
+<GREEN>x<RESET>^<RED>b<RESET>
+<RED>a<RESET><GREEN>y<RESET>
+<GREEN>x<RESET> or <RED>b<RESET>
+<RED>a<RESET><GREEN>y<RESET>
+<GREEN>x<RESET>&&<RED>b a<RESET><GREEN>y x<RESET>||<RED>b<RESET>
+<RED>a<RESET><GREEN>y<RESET>
+<GREEN>x<RESET>=<RED>b a<RESET><GREEN>y x<RESET>+=<RED>b a<RESET><GREEN>y x<RESET>-=<RED>b a<RESET><GREEN>y x<RESET>*=<RED>b a<RESET><GREEN>y x<RESET>/=<RED>b a<RESET><GREEN>y x<RESET>%=<RED>b a<RESET><GREEN>y x<RESET><<=<RED>b a<RESET><GREEN>y x<RESET>>>=<RED>b a<RESET><GREEN>y x<RESET>&=<RED>b a<RESET><GREEN>y x<RESET>^=<RED>b a<RESET><GREEN>y x<RESET>|=<RED>b<RESET><GREEN>y<RESET>
+a<RED>=<RESET><GREEN>+=<RESET>b c<RED>+=<RESET><GREEN>=<RESET>d e<RED>-=<RESET><GREEN><=<RESET>f g<RED>*=<RESET><GREEN>>=<RESET>h i<RED>/=<RESET><GREEN>/<RESET>j k<RED>%=<RESET><GREEN>%<RESET>l m<RED><<=<RESET><GREEN><<<RESET>n o<RED>>>=<RESET><GREEN>>><RESET>p q<RED>&=<RESET><GREEN>&<RESET>r s<RED>^=<RESET><GREEN>^<RESET>t u<RED>|=<RESET><GREEN>|<RESET>v
+a<RED><<=<RESET><GREEN><=<RESET>b
+a<RED>||<RESET><GREEN>|<RESET>b a<RED>&&<RESET><GREEN>&<RESET>b
+<RED>a<RESET><GREEN>x<RESET>,y
+--a<RED>==<RESET><GREEN>!=<RESET>--b
+a++<RED>==<RESET><GREEN>!=<RESET>++b
+<RED>0xFF_EC_DE_5E 0b100_000 100_000<RESET><GREEN>0xFF_E1_DE_5E 0b100_100 200_000<RESET>
+a<RED>==<RESET><GREEN>===<RESET>b
+a<RED>!!<RESET><GREEN>!=<RESET>b
+<RED>_32<RESET><GREEN>_33<RESET>.find(arr)
+X.<RED>fill<RESET><GREEN>find<RESET>()
+X.<RED>u<RESET><GREEN>f<RESET>+1
+X.u<RED>-<RESET><GREEN>+<RESET>2
+a<RED>.<RESET><GREEN>..<RESET>b
+a<RED>?.<RESET><GREEN>?:<RESET>b
+<RED>.32_00_456<RESET><GREEN>.32_00_446<RESET>
diff --git a/t/t4034/kotlin/post b/t/t4034/kotlin/post
new file mode 100644
index 0000000000..2e1df4c6d5
--- /dev/null
+++ b/t/t4034/kotlin/post
@@ -0,0 +1,30 @@
+println("Hello World?")
+(1) (-1e10) (0xabcdef) 'y'
+[x] x->y x.y
+!x x.inv() x*y x&y
+x*y x/y x%y
+x+y x-y
+a shl b
+x<y x<=y x>y x>=y
+x==y x!=y x===y
+x and y
+x^y
+x or y
+x&&y x||y
+x=y x+=y x-=y x*=y x/=y x%=y x<<=y x>>=y x&=y x^=y x|=y
+a+=b c=d e<=f g>=h i/j k%l m<<n o>>p q&r s^t u|v
+a<=b
+a|b a&b
+x,y
+--a!=--b
+a++!=++b
+0xFF_E1_DE_5E 0b100_100 200_000
+a===b
+a!=b
+_33.find(arr)
+X.find()
+X.f+1
+X.u+2
+a..b
+a?:b
+.32_00_446
diff --git a/t/t4034/kotlin/pre b/t/t4034/kotlin/pre
new file mode 100644
index 0000000000..11ea3de665
--- /dev/null
+++ b/t/t4034/kotlin/pre
@@ -0,0 +1,30 @@
+println("Hello World!\n")
+1 -1e10 0xabcdef 'x'
+[a] a->b a.b
+!a a.inv() a*b a&b
+a*b a/b a%b
+a+b a-b
+a shr b
+a<b a<=b a>b a>=b
+a==b a!=b a===b
+a and b
+a^b
+a or b
+a&&b a||b
+a=b a+=b a-=b a*=b a/=b a%=b a<<=b a>>=b a&=b a^=b a|=b
+a=b c+=d e-=f g*=h i/=j k%=l m<<=n o>>=p q&=r s^=t u|=v
+a<<=b
+a||b a&&b
+a,y
+--a==--b
+a++==++b
+0xFF_EC_DE_5E 0b100_000 100_000
+a==b
+a!!b
+_32.find(arr)
+X.fill()
+X.u+1
+X.u-2
+a.b
+a?.b
+.32_00_456
diff --git a/t/t4069-remerge-diff.sh b/t/t4069-remerge-diff.sh
new file mode 100755
index 0000000000..35f94957fc
--- /dev/null
+++ b/t/t4069-remerge-diff.sh
@@ -0,0 +1,291 @@
+#!/bin/sh
+
+test_description='remerge-diff handling'
+
+. ./test-lib.sh
+
+# This test is ort-specific
+if test "${GIT_TEST_MERGE_ALGORITHM}" != ort
+then
+ skip_all="GIT_TEST_MERGE_ALGORITHM != ort"
+ test_done
+fi
+
+test_expect_success 'setup basic merges' '
+ test_write_lines 1 2 3 4 5 6 7 8 9 >numbers &&
+ git add numbers &&
+ git commit -m base &&
+
+ git branch feature_a &&
+ git branch feature_b &&
+ git branch feature_c &&
+
+ git branch ab_resolution &&
+ git branch bc_resolution &&
+
+ git checkout feature_a &&
+ test_write_lines 1 2 three 4 5 6 7 eight 9 >numbers &&
+ git commit -a -m change_a &&
+
+ git checkout feature_b &&
+ test_write_lines 1 2 tres 4 5 6 7 8 9 >numbers &&
+ git commit -a -m change_b &&
+
+ git checkout feature_c &&
+ test_write_lines 1 2 3 4 5 6 7 8 9 10 >numbers &&
+ git commit -a -m change_c &&
+
+ git checkout bc_resolution &&
+ git merge --ff-only feature_b &&
+ # no conflict
+ git merge feature_c &&
+
+ git checkout ab_resolution &&
+ git merge --ff-only feature_a &&
+ # conflicts!
+ test_must_fail git merge feature_b &&
+ # Resolve conflict...and make another change elsewhere
+ test_write_lines 1 2 drei 4 5 6 7 acht 9 >numbers &&
+ git add numbers &&
+ git merge --continue
+'
+
+test_expect_success 'remerge-diff on a clean merge' '
+ git log -1 --oneline bc_resolution >expect &&
+ git show --oneline --remerge-diff bc_resolution >actual &&
+ test_cmp expect actual
+'
+
+test_expect_success 'remerge-diff with both a resolved conflict and an unrelated change' '
+ git log -1 --oneline ab_resolution >tmp &&
+ cat <<-EOF >>tmp &&
+ diff --git a/numbers b/numbers
+ remerge CONFLICT (content): Merge conflict in numbers
+ index a1fb731..6875544 100644
+ --- a/numbers
+ +++ b/numbers
+ @@ -1,13 +1,9 @@
+ 1
+ 2
+ -<<<<<<< b0ed5cb (change_a)
+ -three
+ -=======
+ -tres
+ ->>>>>>> 6cd3f82 (change_b)
+ +drei
+ 4
+ 5
+ 6
+ 7
+ -eight
+ +acht
+ 9
+ EOF
+ # Hashes above are sha1; rip them out so test works with sha256
+ sed -e "s/[0-9a-f]\{7,\}/HASH/g" tmp >expect &&
+
+ git show --oneline --remerge-diff ab_resolution >tmp &&
+ sed -e "s/[0-9a-f]\{7,\}/HASH/g" tmp >actual &&
+ test_cmp expect actual
+'
+
+test_expect_success 'setup non-content conflicts' '
+ git switch --orphan base &&
+
+ test_write_lines 1 2 3 4 5 6 7 8 9 >numbers &&
+ test_write_lines a b c d e f g h i >letters &&
+ test_write_lines in the way >content &&
+ git add numbers letters content &&
+ git commit -m base &&
+
+ git branch side1 &&
+ git branch side2 &&
+
+ git checkout side1 &&
+ test_write_lines 1 2 three 4 5 6 7 8 9 >numbers &&
+ git mv letters letters_side1 &&
+ git mv content file_or_directory &&
+ git add numbers &&
+ git commit -m side1 &&
+
+ git checkout side2 &&
+ git rm numbers &&
+ git mv letters letters_side2 &&
+ mkdir file_or_directory &&
+ echo hello >file_or_directory/world &&
+ git add file_or_directory/world &&
+ git commit -m side2 &&
+
+ git checkout -b resolution side1 &&
+ test_must_fail git merge side2 &&
+ test_write_lines 1 2 three 4 5 6 7 8 9 >numbers &&
+ git add numbers &&
+ git add letters_side1 &&
+ git rm letters &&
+ git rm letters_side2 &&
+ git add file_or_directory~HEAD &&
+ git mv file_or_directory~HEAD wanted_content &&
+ git commit -m resolved
+'
+
+test_expect_success 'remerge-diff with non-content conflicts' '
+ git log -1 --oneline resolution >tmp &&
+ cat <<-EOF >>tmp &&
+ diff --git a/file_or_directory~HASH (side1) b/wanted_content
+ similarity index 100%
+ rename from file_or_directory~HASH (side1)
+ rename to wanted_content
+ remerge CONFLICT (file/directory): directory in the way of file_or_directory from HASH (side1); moving it to file_or_directory~HASH (side1) instead.
+ diff --git a/letters b/letters
+ remerge CONFLICT (rename/rename): letters renamed to letters_side1 in HASH (side1) and to letters_side2 in HASH (side2).
+ diff --git a/letters_side2 b/letters_side2
+ deleted file mode 100644
+ index b236ae5..0000000
+ --- a/letters_side2
+ +++ /dev/null
+ @@ -1,9 +0,0 @@
+ -a
+ -b
+ -c
+ -d
+ -e
+ -f
+ -g
+ -h
+ -i
+ diff --git a/numbers b/numbers
+ remerge CONFLICT (modify/delete): numbers deleted in HASH (side2) and modified in HASH (side1). Version HASH (side1) of numbers left in tree.
+ EOF
+ # We still have some sha1 hashes above; rip them out so test works
+ # with sha256
+ sed -e "s/[0-9a-f]\{7,\}/HASH/g" tmp >expect &&
+
+ git show --oneline --remerge-diff resolution >tmp &&
+ sed -e "s/[0-9a-f]\{7,\}/HASH/g" tmp >actual &&
+ test_cmp expect actual
+'
+
+test_expect_success 'remerge-diff w/ diff-filter=U: all conflict headers, no diff content' '
+ git log -1 --oneline resolution >tmp &&
+ cat <<-EOF >>tmp &&
+ diff --git a/file_or_directory~HASH (side1) b/file_or_directory~HASH (side1)
+ remerge CONFLICT (file/directory): directory in the way of file_or_directory from HASH (side1); moving it to file_or_directory~HASH (side1) instead.
+ diff --git a/letters b/letters
+ remerge CONFLICT (rename/rename): letters renamed to letters_side1 in HASH (side1) and to letters_side2 in HASH (side2).
+ diff --git a/numbers b/numbers
+ remerge CONFLICT (modify/delete): numbers deleted in HASH (side2) and modified in HASH (side1). Version HASH (side1) of numbers left in tree.
+ EOF
+ # We still have some sha1 hashes above; rip them out so test works
+ # with sha256
+ sed -e "s/[0-9a-f]\{7,\}/HASH/g" tmp >expect &&
+
+ git show --oneline --remerge-diff --diff-filter=U resolution >tmp &&
+ sed -e "s/[0-9a-f]\{7,\}/HASH/g" tmp >actual &&
+ test_cmp expect actual
+'
+
+test_expect_success 'remerge-diff w/ diff-filter=R: relevant file + conflict header' '
+ git log -1 --oneline resolution >tmp &&
+ cat <<-EOF >>tmp &&
+ diff --git a/file_or_directory~HASH (side1) b/wanted_content
+ similarity index 100%
+ rename from file_or_directory~HASH (side1)
+ rename to wanted_content
+ remerge CONFLICT (file/directory): directory in the way of file_or_directory from HASH (side1); moving it to file_or_directory~HASH (side1) instead.
+ EOF
+ # We still have some sha1 hashes above; rip them out so test works
+ # with sha256
+ sed -e "s/[0-9a-f]\{7,\}/HASH/g" tmp >expect &&
+
+ git show --oneline --remerge-diff --diff-filter=R resolution >tmp &&
+ sed -e "s/[0-9a-f]\{7,\}/HASH/g" tmp >actual &&
+ test_cmp expect actual
+'
+
+test_expect_success 'remerge-diff w/ pathspec: limits to relevant file including conflict header' '
+ git log -1 --oneline resolution >tmp &&
+ cat <<-EOF >>tmp &&
+ diff --git a/letters b/letters
+ remerge CONFLICT (rename/rename): letters renamed to letters_side1 in HASH (side1) and to letters_side2 in HASH (side2).
+ diff --git a/letters_side2 b/letters_side2
+ deleted file mode 100644
+ index b236ae5..0000000
+ --- a/letters_side2
+ +++ /dev/null
+ @@ -1,9 +0,0 @@
+ -a
+ -b
+ -c
+ -d
+ -e
+ -f
+ -g
+ -h
+ -i
+ EOF
+ # We still have some sha1 hashes above; rip them out so test works
+ # with sha256
+ sed -e "s/[0-9a-f]\{7,\}/HASH/g" tmp >expect &&
+
+ git show --oneline --remerge-diff resolution -- "letters*" >tmp &&
+ sed -e "s/[0-9a-f]\{7,\}/HASH/g" tmp >actual &&
+ test_cmp expect actual
+'
+
+test_expect_success 'setup non-content conflicts' '
+ git switch --orphan newbase &&
+
+ test_write_lines 1 2 3 4 5 6 7 8 9 >numbers &&
+ git add numbers &&
+ git commit -m base &&
+
+ git branch newside1 &&
+ git branch newside2 &&
+
+ git checkout newside1 &&
+ test_write_lines 1 2 three 4 5 6 7 8 9 >numbers &&
+ git add numbers &&
+ git commit -m side1 &&
+
+ git checkout newside2 &&
+ test_write_lines 1 2 drei 4 5 6 7 8 9 >numbers &&
+ git add numbers &&
+ git commit -m side2 &&
+
+ git checkout -b newresolution newside1 &&
+ test_must_fail git merge newside2 &&
+ git checkout --theirs numbers &&
+ git add -u numbers &&
+ git commit -m resolved
+'
+
+test_expect_success 'remerge-diff turns off history simplification' '
+ git log -1 --oneline newresolution >tmp &&
+ cat <<-EOF >>tmp &&
+ diff --git a/numbers b/numbers
+ remerge CONFLICT (content): Merge conflict in numbers
+ index 070e9e7..5335e78 100644
+ --- a/numbers
+ +++ b/numbers
+ @@ -1,10 +1,6 @@
+ 1
+ 2
+ -<<<<<<< 96f1e45 (side1)
+ -three
+ -=======
+ drei
+ ->>>>>>> 4fd522f (side2)
+ 4
+ 5
+ 6
+ EOF
+ # We still have some sha1 hashes above; rip them out so test works
+ # with sha256
+ sed -e "s/[0-9a-f]\{7,\}/HASH/g" tmp >expect &&
+
+ git show --oneline --remerge-diff newresolution -- numbers >tmp &&
+ sed -e "s/[0-9a-f]\{7,\}/HASH/g" tmp >actual &&
+ test_cmp expect actual
+'
+
+test_done
diff --git a/t/t4123-apply-shrink.sh b/t/t4123-apply-shrink.sh
index dfa053ff28..3ef84619f5 100755
--- a/t/t4123-apply-shrink.sh
+++ b/t/t4123-apply-shrink.sh
@@ -2,8 +2,6 @@
test_description='apply a patch that is larger than the preimage'
-
-TEST_PASSES_SANITIZE_LEAK=true
. ./test-lib.sh
cat >F <<\EOF
@@ -41,20 +39,8 @@ test_expect_success setup '
'
test_expect_success 'apply should fail gracefully' '
-
- if git apply --index patch
- then
- echo Oops, should not have succeeded
- false
- else
- status=$? &&
- echo "Status was $status" &&
- if test -f .git/index.lock
- then
- echo Oops, should not have crashed
- false
- fi
- fi
+ test_must_fail git apply --index patch &&
+ test_path_is_missing .git/index.lock
'
test_done
diff --git a/t/t4128-apply-root.sh b/t/t4128-apply-root.sh
index cb3181e8b7..f6db5a79dd 100755
--- a/t/t4128-apply-root.sh
+++ b/t/t4128-apply-root.sh
@@ -2,8 +2,6 @@
test_description='apply same filename'
-
-TEST_PASSES_SANITIZE_LEAK=true
. ./test-lib.sh
test_expect_success 'setup' '
@@ -26,10 +24,11 @@ diff a/bla/blub/dir/file b/bla/blub/dir/file
EOF
test_expect_success 'apply --directory -p (1)' '
-
git apply --directory=some/sub -p3 --index patch &&
- test Bello = $(git show :some/sub/dir/file) &&
- test Bello = $(cat some/sub/dir/file)
+ echo Bello >expect &&
+ git show :some/sub/dir/file >actual &&
+ test_cmp expect actual &&
+ test_cmp expect some/sub/dir/file
'
@@ -37,8 +36,10 @@ test_expect_success 'apply --directory -p (2) ' '
git reset --hard initial &&
git apply --directory=some/sub/ -p3 --index patch &&
- test Bello = $(git show :some/sub/dir/file) &&
- test Bello = $(cat some/sub/dir/file)
+ echo Bello >expect &&
+ git show :some/sub/dir/file >actual &&
+ test_cmp expect actual &&
+ test_cmp expect some/sub/dir/file
'
@@ -55,8 +56,10 @@ EOF
test_expect_success 'apply --directory (new file)' '
git reset --hard initial &&
git apply --directory=some/sub/dir/ --index patch &&
- test content = $(git show :some/sub/dir/newfile) &&
- test content = $(cat some/sub/dir/newfile)
+ echo content >expect &&
+ git show :some/sub/dir/newfile >actual &&
+ test_cmp expect actual &&
+ test_cmp expect some/sub/dir/newfile
'
cat > patch << EOF
@@ -72,8 +75,10 @@ EOF
test_expect_success 'apply --directory -p (new file)' '
git reset --hard initial &&
git apply -p2 --directory=some/sub/dir/ --index patch &&
- test content = $(git show :some/sub/dir/newfile2) &&
- test content = $(cat some/sub/dir/newfile2)
+ echo content >expect &&
+ git show :some/sub/dir/newfile2 >actual &&
+ test_cmp expect actual &&
+ test_cmp expect some/sub/dir/newfile2
'
cat > patch << EOF
@@ -91,7 +96,8 @@ test_expect_success 'apply --directory (delete file)' '
echo content >some/sub/dir/delfile &&
git add some/sub/dir/delfile &&
git apply --directory=some/sub/dir/ --index patch &&
- ! (git ls-files | grep delfile)
+ git ls-files >out &&
+ ! grep delfile out
'
cat > patch << 'EOF'
@@ -107,8 +113,10 @@ EOF
test_expect_success 'apply --directory (quoted filename)' '
git reset --hard initial &&
git apply --directory=some/sub/dir/ --index patch &&
- test content = $(git show :some/sub/dir/quotefile) &&
- test content = $(cat some/sub/dir/quotefile)
+ echo content >expect &&
+ git show :some/sub/dir/quotefile >actual &&
+ test_cmp expect actual &&
+ test_cmp expect some/sub/dir/quotefile
'
test_done
diff --git a/t/t4150-am.sh b/t/t4150-am.sh
index 6caff0ca39..cdad4b6880 100755
--- a/t/t4150-am.sh
+++ b/t/t4150-am.sh
@@ -315,12 +315,10 @@ test_expect_success 'am --patch-format=hg applies hg patch' '
'
test_expect_success 'am with applypatch-msg hook' '
- test_when_finished "rm -f .git/hooks/applypatch-msg" &&
rm -fr .git/rebase-apply &&
git reset --hard &&
git checkout first &&
- mkdir -p .git/hooks &&
- write_script .git/hooks/applypatch-msg <<-\EOF &&
+ test_hook applypatch-msg <<-\EOF &&
cat "$1" >actual-msg &&
echo hook-message >"$1"
EOF
@@ -335,12 +333,10 @@ test_expect_success 'am with applypatch-msg hook' '
'
test_expect_success 'am with failing applypatch-msg hook' '
- test_when_finished "rm -f .git/hooks/applypatch-msg" &&
rm -fr .git/rebase-apply &&
git reset --hard &&
git checkout first &&
- mkdir -p .git/hooks &&
- write_script .git/hooks/applypatch-msg <<-\EOF &&
+ test_hook applypatch-msg <<-\EOF &&
exit 1
EOF
test_must_fail git am patch1 &&
@@ -350,12 +346,10 @@ test_expect_success 'am with failing applypatch-msg hook' '
'
test_expect_success 'am with pre-applypatch hook' '
- test_when_finished "rm -f .git/hooks/pre-applypatch" &&
rm -fr .git/rebase-apply &&
git reset --hard &&
git checkout first &&
- mkdir -p .git/hooks &&
- write_script .git/hooks/pre-applypatch <<-\EOF &&
+ test_hook pre-applypatch <<-\EOF &&
git diff first >diff.actual
exit 0
EOF
@@ -368,12 +362,10 @@ test_expect_success 'am with pre-applypatch hook' '
'
test_expect_success 'am with failing pre-applypatch hook' '
- test_when_finished "rm -f .git/hooks/pre-applypatch" &&
rm -fr .git/rebase-apply &&
git reset --hard &&
git checkout first &&
- mkdir -p .git/hooks &&
- write_script .git/hooks/pre-applypatch <<-\EOF &&
+ test_hook pre-applypatch <<-\EOF &&
exit 1
EOF
test_must_fail git am patch1 &&
@@ -383,12 +375,10 @@ test_expect_success 'am with failing pre-applypatch hook' '
'
test_expect_success 'am with post-applypatch hook' '
- test_when_finished "rm -f .git/hooks/post-applypatch" &&
rm -fr .git/rebase-apply &&
git reset --hard &&
git checkout first &&
- mkdir -p .git/hooks &&
- write_script .git/hooks/post-applypatch <<-\EOF &&
+ test_hook post-applypatch <<-\EOF &&
git rev-parse HEAD >head.actual
git diff second >diff.actual
exit 0
@@ -403,12 +393,10 @@ test_expect_success 'am with post-applypatch hook' '
'
test_expect_success 'am with failing post-applypatch hook' '
- test_when_finished "rm -f .git/hooks/post-applypatch" &&
rm -fr .git/rebase-apply &&
git reset --hard &&
git checkout first &&
- mkdir -p .git/hooks &&
- write_script .git/hooks/post-applypatch <<-\EOF &&
+ test_hook post-applypatch <<-\EOF &&
git rev-parse HEAD >head.actual
exit 1
EOF
@@ -1169,7 +1157,7 @@ test_expect_success 'invalid when passing the --empty option alone' '
test_when_finished "git am --abort || :" &&
git checkout empty-commit^ &&
test_must_fail git am --empty empty-commit.patch 2>err &&
- echo "error: Invalid value for --empty: empty-commit.patch" >expected &&
+ echo "error: invalid value for '\''--empty'\'': '\''empty-commit.patch'\''" >expected &&
test_cmp expected err
'
diff --git a/t/t4202-log.sh b/t/t4202-log.sh
index 5049559861..be07407f85 100755
--- a/t/t4202-log.sh
+++ b/t/t4202-log.sh
@@ -142,6 +142,19 @@ test_expect_success 'diff-filter=R' '
'
+test_expect_success 'multiple --diff-filter bits' '
+
+ git log -M --pretty="format:%s" --diff-filter=R HEAD >expect &&
+ git log -M --pretty="format:%s" --diff-filter=Ra HEAD >actual &&
+ test_cmp expect actual &&
+ git log -M --pretty="format:%s" --diff-filter=aR HEAD >actual &&
+ test_cmp expect actual &&
+ git log -M --pretty="format:%s" \
+ --diff-filter=a --diff-filter=R HEAD >actual &&
+ test_cmp expect actual
+
+'
+
test_expect_success 'diff-filter=C' '
git log -C -C --pretty="format:%s" --diff-filter=C HEAD >actual &&
@@ -449,6 +462,29 @@ test_expect_success !FAIL_PREREQS 'log with various grep.patternType configurati
)
'
+for cmd in show whatchanged reflog format-patch
+do
+ case "$cmd" in
+ format-patch) myarg="HEAD~.." ;;
+ *) myarg= ;;
+ esac
+
+ test_expect_success "$cmd: understands grep.patternType, like 'log'" '
+ git init "pattern-type-$cmd" &&
+ (
+ cd "pattern-type-$cmd" &&
+ test_commit 1 file A &&
+ test_commit "(1|2)" file B 2 &&
+
+ git -c grep.patternType=fixed $cmd --grep="..." $myarg >actual &&
+ test_must_be_empty actual &&
+
+ git -c grep.patternType=basic $cmd --grep="..." $myarg >actual &&
+ test_file_not_empty actual
+ )
+ '
+done
+
test_expect_success 'log --author' '
cat >expect <<-\EOF &&
Author: <BOLD;RED>A U<RESET> Thor <author@example.com>
@@ -659,7 +695,7 @@ EOF
test_expect_success 'log --graph with full output' '
git log --graph --date-order --pretty=short |
- git name-rev --name-only --stdin |
+ git name-rev --name-only --annotate-stdin |
sed "s/Merge:.*/Merge: A B/;s/ *\$//" >actual &&
test_cmp expect actual
'
@@ -1671,6 +1707,75 @@ test_expect_success 'log --graph with --name-only' '
test_cmp_graph --name-only tangle..reach
'
+test_expect_success '--no-graph countermands --graph' '
+ git log >expect &&
+ git log --graph --no-graph >actual &&
+ test_cmp expect actual
+'
+
+test_expect_success '--graph countermands --no-graph' '
+ git log --graph >expect &&
+ git log --no-graph --graph >actual &&
+ test_cmp expect actual
+'
+
+test_expect_success '--no-graph does not unset --topo-order' '
+ git log --topo-order >expect &&
+ git log --topo-order --no-graph >actual &&
+ test_cmp expect actual
+'
+
+test_expect_success '--no-graph does not unset --parents' '
+ git log --parents >expect &&
+ git log --parents --no-graph >actual &&
+ test_cmp expect actual
+'
+
+test_expect_success '--reverse and --graph conflict' '
+ test_must_fail git log --reverse --graph 2>stderr &&
+ test_i18ngrep "cannot be used together" stderr
+'
+
+test_expect_success '--reverse --graph --no-graph works' '
+ git log --reverse >expect &&
+ git log --reverse --graph --no-graph >actual &&
+ test_cmp expect actual
+'
+
+test_expect_success '--show-linear-break and --graph conflict' '
+ test_must_fail git log --show-linear-break --graph 2>stderr &&
+ test_i18ngrep "cannot be used together" stderr
+'
+
+test_expect_success '--show-linear-break --graph --no-graph works' '
+ git log --show-linear-break >expect &&
+ git log --show-linear-break --graph --no-graph >actual &&
+ test_cmp expect actual
+'
+
+test_expect_success '--no-walk and --graph conflict' '
+ test_must_fail git log --no-walk --graph 2>stderr &&
+ test_i18ngrep "cannot be used together" stderr
+'
+
+test_expect_success '--no-walk --graph --no-graph works' '
+ git log --no-walk >expect &&
+ git log --no-walk --graph --no-graph >actual &&
+ test_cmp expect actual
+'
+
+test_expect_success '--walk-reflogs and --graph conflict' '
+ test_must_fail git log --walk-reflogs --graph 2>stderr &&
+ (test_i18ngrep "cannot combine" stderr ||
+ test_i18ngrep "cannot be used together" stderr)
+'
+
+test_expect_success '--walk-reflogs --graph --no-graph works' '
+ git log --walk-reflogs >expect &&
+ git log --walk-reflogs --graph --no-graph >actual &&
+ test_cmp expect actual
+'
+
test_expect_success 'dotdot is a parent directory' '
mkdir -p a/b &&
( echo sixth && echo fifth ) >expect &&
@@ -1931,7 +2036,8 @@ test_expect_success GPGSM 'log --graph --show-signature for merged tag x509 miss
git merge --no-ff -m msg signed_tag_x509_nokey &&
GNUPGHOME=. git log --graph --show-signature -n1 plain-x509-nokey >actual &&
grep "^|\\\ merged tag" actual &&
- grep "^| | gpgsm: certificate not found" actual
+ grep -e "^| | gpgsm: certificate not found" \
+ -e "^| | gpgsm: failed to find the certificate: Not found" actual
'
test_expect_success GPGSM 'log --graph --show-signature for merged tag x509 bad signature' '
diff --git a/t/t4204-patch-id.sh b/t/t4204-patch-id.sh
index 80f4a65b28..a730c0db98 100755
--- a/t/t4204-patch-id.sh
+++ b/t/t4204-patch-id.sh
@@ -38,7 +38,7 @@ calc_patch_id () {
shift
git patch-id "$@" >patch-id.output &&
sed "s/ .*//" patch-id.output >patch-id_"$patch_name" &&
- test_line_count -gt 0 patch-id_"$patch_name"
+ test_line_count -eq 1 patch-id_"$patch_name"
}
get_top_diff () {
@@ -166,40 +166,67 @@ test_expect_success 'patch-id respects config from subdir' '
)
'
-cat >nonl <<\EOF
-diff --git i/a w/a
-index e69de29..2e65efe 100644
---- i/a
-+++ w/a
-@@ -0,0 +1 @@
-+a
-\ No newline at end of file
-diff --git i/b w/b
-index e69de29..6178079 100644
---- i/b
-+++ w/b
-@@ -0,0 +1 @@
-+b
-EOF
-
-cat >withnl <<\EOF
-diff --git i/a w/a
-index e69de29..7898192 100644
---- i/a
-+++ w/a
-@@ -0,0 +1 @@
-+a
-diff --git i/b w/b
-index e69de29..6178079 100644
---- i/b
-+++ w/b
-@@ -0,0 +1 @@
-+b
-EOF
-
test_expect_success 'patch-id handles no-nl-at-eof markers' '
- cat nonl | calc_patch_id nonl &&
- cat withnl | calc_patch_id withnl &&
+ cat >nonl <<-\EOF &&
+ diff --git i/a w/a
+ index e69de29..2e65efe 100644
+ --- i/a
+ +++ w/a
+ @@ -0,0 +1 @@
+ +a
+ \ No newline at end of file
+ diff --git i/b w/b
+ index e69de29..6178079 100644
+ --- i/b
+ +++ w/b
+ @@ -0,0 +1 @@
+ +b
+ EOF
+ cat >withnl <<-\EOF &&
+ diff --git i/a w/a
+ index e69de29..7898192 100644
+ --- i/a
+ +++ w/a
+ @@ -0,0 +1 @@
+ +a
+ diff --git i/b w/b
+ index e69de29..6178079 100644
+ --- i/b
+ +++ w/b
+ @@ -0,0 +1 @@
+ +b
+ EOF
+ calc_patch_id nonl <nonl &&
+ calc_patch_id withnl <withnl &&
test_cmp patch-id_nonl patch-id_withnl
'
+
+test_expect_success 'patch-id handles diffs with one line of before/after' '
+ cat >diffu1 <<-\EOF &&
+ diff --git a/bar b/bar
+ index bdaf90f..31051f6 100644
+ --- a/bar
+ +++ b/bar
+ @@ -2 +2,2 @@
+ b
+ +c
+ diff --git a/car b/car
+ index 00750ed..2ae5e34 100644
+ --- a/car
+ +++ b/car
+ @@ -1 +1,2 @@
+ 3
+ +d
+ diff --git a/foo b/foo
+ index e439850..7146eb8 100644
+ --- a/foo
+ +++ b/foo
+ @@ -2 +2,2 @@
+ a
+ +e
+ EOF
+ calc_patch_id diffu1 <diffu1 &&
+ test_config patchid.stable true &&
+ calc_patch_id diffu1stable <diffu1
+'
test_done
diff --git a/t/t4216-log-bloom.sh b/t/t4216-log-bloom.sh
index cc3cebf672..fa9d32facf 100755
--- a/t/t4216-log-bloom.sh
+++ b/t/t4216-log-bloom.sh
@@ -48,6 +48,7 @@ graph_read_expect () {
header: 43475048 1 $(test_oid oid_version) $NUM_CHUNKS 0
num_commits: $1
chunks: oid_fanout oid_lookup commit_metadata generation_data bloom_indexes bloom_data
+ options: bloom(1,10,7) read_generation_data
EOF
test-tool read-graph >actual &&
test_cmp expect actual
diff --git a/t/t4217-log-limit.sh b/t/t4217-log-limit.sh
new file mode 100755
index 0000000000..6e01e2629c
--- /dev/null
+++ b/t/t4217-log-limit.sh
@@ -0,0 +1,41 @@
+#!/bin/sh
+
+test_description='git log with filter options limiting the output'
+
+. ./test-lib.sh
+
+test_expect_success 'setup test' '
+ git init &&
+ echo a >file &&
+ git add file &&
+ GIT_COMMITTER_DATE="2021-02-01 00:00" git commit -m init &&
+ echo a >>file &&
+ git add file &&
+ GIT_COMMITTER_DATE="2022-02-01 00:00" git commit -m first &&
+ echo a >>file &&
+ git add file &&
+ GIT_COMMITTER_DATE="2021-03-01 00:00" git commit -m second &&
+ echo a >>file &&
+ git add file &&
+ GIT_COMMITTER_DATE="2022-03-01 00:00" git commit -m third
+'
+
+test_expect_success 'git log --since-as-filter=...' '
+ git log --since-as-filter="2022-01-01" --format=%s >actual &&
+ cat >expect <<-\EOF &&
+ third
+ first
+ EOF
+ test_cmp expect actual
+'
+
+test_expect_success 'git log --children --since-as-filter=...' '
+ git log --children --since-as-filter="2022-01-01" --format=%s >actual &&
+ cat >expect <<-\EOF &&
+ third
+ first
+ EOF
+ test_cmp expect actual
+'
+
+test_done
diff --git a/t/t5300-pack-object.sh b/t/t5300-pack-object.sh
index 2fd845187e..a11d61206a 100755
--- a/t/t5300-pack-object.sh
+++ b/t/t5300-pack-object.sh
@@ -315,8 +315,10 @@ test_expect_success \
git index-pack -o tmp.idx test-3.pack &&
cmp tmp.idx test-1-${packname_1}.idx &&
- git index-pack test-3.pack &&
+ git index-pack --promisor=message test-3.pack &&
cmp test-3.idx test-1-${packname_1}.idx &&
+ echo message >expect &&
+ test_cmp expect test-3.promisor &&
cat test-2-${packname_2}.pack >test-3.pack &&
git index-pack -o tmp.idx test-2-${packname_2}.pack &&
diff --git a/t/t5302-pack-index.sh b/t/t5302-pack-index.sh
index 8ee67df38f..b0095ab41d 100755
--- a/t/t5302-pack-index.sh
+++ b/t/t5302-pack-index.sh
@@ -284,4 +284,12 @@ test_expect_success 'index-pack -v --stdin produces progress for both phases' '
test_i18ngrep "Resolving deltas" err
'
+test_expect_success 'too-large packs report the breach' '
+ pack=$(git pack-objects --all pack </dev/null) &&
+ sz="$(test_file_size pack-$pack.pack)" &&
+ test "$sz" -gt 20 &&
+ test_must_fail git index-pack --max-input-size=20 pack-$pack.pack 2>err &&
+ grep "maximum allowed size (20 bytes)" err
+'
+
test_done
diff --git a/t/t5310-pack-bitmaps.sh b/t/t5310-pack-bitmaps.sh
index d05ab716f6..f775fc1ce6 100755
--- a/t/t5310-pack-bitmaps.sh
+++ b/t/t5310-pack-bitmaps.sh
@@ -397,4 +397,32 @@ test_expect_success 'pack.preferBitmapTips' '
)
'
+test_expect_success 'complains about multiple pack bitmaps' '
+ rm -fr repo &&
+ git init repo &&
+ test_when_finished "rm -fr repo" &&
+ (
+ cd repo &&
+
+ test_commit base &&
+
+ git repack -adb &&
+ bitmap="$(ls .git/objects/pack/pack-*.bitmap)" &&
+ mv "$bitmap" "$bitmap.bak" &&
+
+ test_commit other &&
+ git repack -ab &&
+
+ mv "$bitmap.bak" "$bitmap" &&
+
+ find .git/objects/pack -type f -name "*.pack" >packs &&
+ find .git/objects/pack -type f -name "*.bitmap" >bitmaps &&
+ test_line_count = 2 packs &&
+ test_line_count = 2 bitmaps &&
+
+ git rev-list --use-bitmap-index HEAD 2>err &&
+ grep "ignoring extra bitmap file" err
+ )
+'
+
test_done
diff --git a/t/t5312-prune-corruption.sh b/t/t5312-prune-corruption.sh
index ea889c088a..9d8e249ae8 100755
--- a/t/t5312-prune-corruption.sh
+++ b/t/t5312-prune-corruption.sh
@@ -22,8 +22,8 @@ test_expect_success 'disable reflogs' '
'
create_bogus_ref () {
- test_when_finished 'rm -f .git/refs/heads/bogus..name' &&
- echo $bogus >.git/refs/heads/bogus..name
+ test-tool ref-store main update-ref msg "refs/heads/bogus..name" $bogus $ZERO_OID REF_SKIP_REFNAME_VERIFICATION &&
+ test_when_finished "test-tool ref-store main delete-refs REF_NO_DEREF msg refs/heads/bogus..name"
}
test_expect_success 'create history reachable only from a bogus-named ref' '
@@ -113,7 +113,7 @@ test_expect_success 'pack-refs does not silently delete broken loose ref' '
# we do not want to count on running pack-refs to
# actually pack it, as it is perfectly reasonable to
# skip processing a broken ref
-test_expect_success 'create packed-refs file with broken ref' '
+test_expect_success REFFILES 'create packed-refs file with broken ref' '
rm -f .git/refs/heads/main &&
cat >.git/packed-refs <<-EOF &&
$missing refs/heads/main
@@ -124,13 +124,13 @@ test_expect_success 'create packed-refs file with broken ref' '
test_cmp expect actual
'
-test_expect_success 'pack-refs does not silently delete broken packed ref' '
+test_expect_success REFFILES 'pack-refs does not silently delete broken packed ref' '
git pack-refs --all --prune &&
git rev-parse refs/heads/main >actual &&
test_cmp expect actual
'
-test_expect_success 'pack-refs does not drop broken refs during deletion' '
+test_expect_success REFFILES 'pack-refs does not drop broken refs during deletion' '
git update-ref -d refs/heads/other &&
git rev-parse refs/heads/main >actual &&
test_cmp expect actual
diff --git a/t/t5316-pack-delta-depth.sh b/t/t5316-pack-delta-depth.sh
index df524f7b6d..e9045009a1 100755
--- a/t/t5316-pack-delta-depth.sh
+++ b/t/t5316-pack-delta-depth.sh
@@ -64,7 +64,11 @@ test_expect_success 'create series of packs' '
echo $cur &&
echo "$(git rev-parse :file) file"
} | git pack-objects --stdout >tmp &&
- git index-pack --stdin --fix-thin <tmp || return 1
+ GIT_TRACE2_EVENT=$PWD/trace \
+ git index-pack -v --stdin --fix-thin <tmp || return 1 &&
+ grep -c region_enter.*progress trace >enter &&
+ grep -c region_leave.*progress trace >leave &&
+ test_cmp enter leave &&
prev=$cur
done
'
diff --git a/t/t5318-commit-graph.sh b/t/t5318-commit-graph.sh
index edb728f77c..fbf0d64578 100755
--- a/t/t5318-commit-graph.sh
+++ b/t/t5318-commit-graph.sh
@@ -29,12 +29,7 @@ test_expect_success 'setup full repo' '
cd "$TRASH_DIRECTORY/full" &&
git init &&
git config core.commitGraph true &&
- objdir=".git/objects" &&
-
- test_oid_cache <<-EOF
- oid_version sha1:1
- oid_version sha256:2
- EOF
+ objdir=".git/objects"
'
test_expect_success POSIXPERM 'tweak umask for modebit tests' '
@@ -69,46 +64,10 @@ test_expect_success 'create commits and repack' '
git repack
'
-graph_git_two_modes() {
- git -c core.commitGraph=true $1 >output &&
- git -c core.commitGraph=false $1 >expect &&
- test_cmp expect output
-}
-
-graph_git_behavior() {
- MSG=$1
- DIR=$2
- BRANCH=$3
- COMPARE=$4
- test_expect_success "check normal git operations: $MSG" '
- cd "$TRASH_DIRECTORY/$DIR" &&
- graph_git_two_modes "log --oneline $BRANCH" &&
- graph_git_two_modes "log --topo-order $BRANCH" &&
- graph_git_two_modes "log --graph $COMPARE..$BRANCH" &&
- graph_git_two_modes "branch -vv" &&
- graph_git_two_modes "merge-base -a $BRANCH $COMPARE"
- '
-}
+. "$TEST_DIRECTORY"/lib-commit-graph.sh
graph_git_behavior 'no graph' full commits/3 commits/1
-graph_read_expect() {
- OPTIONAL=""
- NUM_CHUNKS=3
- if test ! -z "$2"
- then
- OPTIONAL=" $2"
- NUM_CHUNKS=$((3 + $(echo "$2" | wc -w)))
- fi
- cat >expect <<- EOF
- header: 43475048 1 $(test_oid oid_version) $NUM_CHUNKS 0
- num_commits: $1
- chunks: oid_fanout oid_lookup commit_metadata$OPTIONAL
- EOF
- test-tool read-graph >output &&
- 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
@@ -466,10 +425,10 @@ test_expect_success 'warn on improper hash version' '
)
'
-test_expect_success 'lower layers have overflow chunk' '
+test_expect_success TIME_IS_64BIT,TIME_T_IS_64BIT 'lower layers have overflow chunk' '
cd "$TRASH_DIRECTORY/full" &&
UNIX_EPOCH_ZERO="@0 +0000" &&
- FUTURE_DATE="@2147483646 +0000" &&
+ FUTURE_DATE="@4147483646 +0000" &&
rm -f .git/objects/info/commit-graph &&
test_commit --date "$FUTURE_DATE" future-1 &&
test_commit --date "$UNIX_EPOCH_ZERO" old-1 &&
@@ -497,7 +456,7 @@ test_expect_success 'git commit-graph verify' '
cd "$TRASH_DIRECTORY/full" &&
git rev-parse commits/8 | git -c commitGraph.generationVersion=1 commit-graph write --stdin-commits &&
git commit-graph verify >output &&
- graph_read_expect 9 extra_edges
+ graph_read_expect 9 extra_edges 1
'
NUM_COMMITS=9
@@ -825,10 +784,6 @@ test_expect_success 'set up and verify repo with generation data overflow chunk'
objdir=".git/objects" &&
UNIX_EPOCH_ZERO="@0 +0000" &&
FUTURE_DATE="@2147483646 +0000" &&
- test_oid_cache <<-EOF &&
- oid_version sha1:1
- oid_version sha256:2
- EOF
cd "$TRASH_DIRECTORY" &&
mkdir repo &&
cd repo &&
diff --git a/t/t5324-split-commit-graph.sh b/t/t5324-split-commit-graph.sh
index 847b809710..669ddc645f 100755
--- a/t/t5324-split-commit-graph.sh
+++ b/t/t5324-split-commit-graph.sh
@@ -30,10 +30,16 @@ graph_read_expect() {
then
NUM_BASE=$2
fi
+ OPTIONS=
+ if test -z "$3"
+ then
+ OPTIONS=" read_generation_data"
+ fi
cat >expect <<- EOF
header: 43475048 1 $(test_oid oid_version) 4 $NUM_BASE
num_commits: $1
chunks: oid_fanout oid_lookup commit_metadata generation_data
+ options:$OPTIONS
EOF
test-tool read-graph >output &&
test_cmp expect output
@@ -508,6 +514,7 @@ test_expect_success 'setup repo for mixed generation commit-graph-chain' '
header: 43475048 1 $(test_oid oid_version) 4 1
num_commits: $NUM_SECOND_LAYER_COMMITS
chunks: oid_fanout oid_lookup commit_metadata
+ options:
EOF
test_cmp expect output &&
git commit-graph verify &&
@@ -540,6 +547,7 @@ test_expect_success 'do not write generation data chunk if not present on existi
header: 43475048 1 $(test_oid oid_version) 4 2
num_commits: $NUM_THIRD_LAYER_COMMITS
chunks: oid_fanout oid_lookup commit_metadata
+ options:
EOF
test_cmp expect output &&
git commit-graph verify
@@ -581,6 +589,7 @@ test_expect_success 'do not write generation data chunk if the topmost remaining
header: 43475048 1 $(test_oid oid_version) 4 2
num_commits: $(($NUM_THIRD_LAYER_COMMITS + $NUM_FOURTH_LAYER_COMMITS))
chunks: oid_fanout oid_lookup commit_metadata
+ options:
EOF
test_cmp expect output &&
git commit-graph verify
@@ -620,6 +629,7 @@ test_expect_success 'write generation data chunk if topmost remaining layer has
header: 43475048 1 $(test_oid oid_version) 5 1
num_commits: $(($NUM_SECOND_LAYER_COMMITS + $NUM_THIRD_LAYER_COMMITS + $NUM_FOURTH_LAYER_COMMITS + $NUM_FIFTH_LAYER_COMMITS))
chunks: oid_fanout oid_lookup commit_metadata generation_data
+ options: read_generation_data
EOF
test_cmp expect output
)
diff --git a/t/t5326-multi-pack-bitmaps.sh b/t/t5326-multi-pack-bitmaps.sh
index e187f90f29..4fe57414c1 100755
--- a/t/t5326-multi-pack-bitmaps.sh
+++ b/t/t5326-multi-pack-bitmaps.sh
@@ -9,125 +9,13 @@ test_description='exercise basic multi-pack bitmap functionality'
GIT_TEST_MULTI_PACK_INDEX=0
GIT_TEST_MULTI_PACK_INDEX_WRITE_BITMAP=0
-objdir=.git/objects
-midx=$objdir/pack/multi-pack-index
+# This test exercise multi-pack bitmap functionality where the object order is
+# stored and read from a special chunk within the MIDX, so use the default
+# behavior here.
+sane_unset GIT_TEST_MIDX_WRITE_REV
+sane_unset GIT_TEST_MIDX_READ_RIDX
-# midx_pack_source <obj>
-midx_pack_source () {
- test-tool read-midx --show-objects .git/objects | grep "^$1 " | cut -f2
-}
-
-setup_bitmap_history
-
-test_expect_success 'enable core.multiPackIndex' '
- git config core.multiPackIndex true
-'
-
-test_expect_success 'create single-pack midx with bitmaps' '
- git repack -ad &&
- git multi-pack-index write --bitmap &&
- test_path_is_file $midx &&
- test_path_is_file $midx-$(midx_checksum $objdir).bitmap &&
- test_path_is_file $midx-$(midx_checksum $objdir).rev
-'
-
-basic_bitmap_tests
-
-test_expect_success 'create new additional packs' '
- for i in $(test_seq 1 16)
- do
- test_commit "$i" &&
- git repack -d || return 1
- done &&
-
- git checkout -b other2 HEAD~8 &&
- for i in $(test_seq 1 8)
- do
- test_commit "side-$i" &&
- git repack -d || return 1
- done &&
- git checkout second
-'
-
-test_expect_success 'create multi-pack midx with bitmaps' '
- git multi-pack-index write --bitmap &&
-
- ls $objdir/pack/pack-*.pack >packs &&
- test_line_count = 25 packs &&
-
- test_path_is_file $midx &&
- test_path_is_file $midx-$(midx_checksum $objdir).bitmap &&
- test_path_is_file $midx-$(midx_checksum $objdir).rev
-'
-
-basic_bitmap_tests
-
-test_expect_success '--no-bitmap is respected when bitmaps exist' '
- git multi-pack-index write --bitmap &&
-
- test_commit respect--no-bitmap &&
- git repack -d &&
-
- test_path_is_file $midx &&
- test_path_is_file $midx-$(midx_checksum $objdir).bitmap &&
- test_path_is_file $midx-$(midx_checksum $objdir).rev &&
-
- git multi-pack-index write --no-bitmap &&
-
- test_path_is_file $midx &&
- test_path_is_missing $midx-$(midx_checksum $objdir).bitmap &&
- test_path_is_missing $midx-$(midx_checksum $objdir).rev
-'
-
-test_expect_success 'setup midx with base from later pack' '
- # Write a and b so that "a" is a delta on top of base "b", since Git
- # prefers to delete contents out of a base rather than add to a shorter
- # object.
- test_seq 1 128 >a &&
- test_seq 1 130 >b &&
-
- git add a b &&
- git commit -m "initial commit" &&
-
- a=$(git rev-parse HEAD:a) &&
- b=$(git rev-parse HEAD:b) &&
-
- # In the first pack, "a" is stored as a delta to "b".
- p1=$(git pack-objects .git/objects/pack/pack <<-EOF
- $a
- $b
- EOF
- ) &&
-
- # In the second pack, "a" is missing, and "b" is not a delta nor base to
- # any other object.
- p2=$(git pack-objects .git/objects/pack/pack <<-EOF
- $b
- $(git rev-parse HEAD)
- $(git rev-parse HEAD^{tree})
- EOF
- ) &&
-
- git prune-packed &&
- # Use the second pack as the preferred source, so that "b" occurs
- # earlier in the MIDX object order, rendering "a" unusable for pack
- # reuse.
- git multi-pack-index write --bitmap --preferred-pack=pack-$p2.idx &&
-
- have_delta $a $b &&
- test $(midx_pack_source $a) != $(midx_pack_source $b)
-'
-
-rev_list_tests 'full bitmap with backwards delta'
-
-test_expect_success 'clone with bitmaps enabled' '
- git clone --no-local --bare . clone-reverse-delta.git &&
- test_when_finished "rm -fr clone-reverse-delta.git" &&
-
- git rev-parse HEAD >expect &&
- git --git-dir=clone-reverse-delta.git rev-parse HEAD >actual &&
- test_cmp expect actual
-'
+midx_bitmap_core
bitmap_reuse_tests() {
from=$1
@@ -204,17 +92,7 @@ test_expect_success 'missing object closure fails gracefully' '
)
'
-test_expect_success 'setup partial bitmaps' '
- test_commit packed &&
- git repack &&
- test_commit loose &&
- git multi-pack-index write --bitmap 2>err &&
- test_path_is_file $midx &&
- test_path_is_file $midx-$(midx_checksum $objdir).bitmap &&
- test_path_is_file $midx-$(midx_checksum $objdir).rev
-'
-
-basic_bitmap_tests HEAD~
+midx_bitmap_partial_tests
test_expect_success 'removing a MIDX clears stale bitmaps' '
rm -fr repo &&
@@ -228,7 +106,6 @@ test_expect_success 'removing a MIDX clears stale bitmaps' '
# Write a MIDX and bitmap; remove the MIDX but leave the bitmap.
stale_bitmap=$midx-$(midx_checksum $objdir).bitmap &&
- stale_rev=$midx-$(midx_checksum $objdir).rev &&
rm $midx &&
# Then write a new MIDX.
@@ -238,9 +115,7 @@ test_expect_success 'removing a MIDX clears stale bitmaps' '
test_path_is_file $midx &&
test_path_is_file $midx-$(midx_checksum $objdir).bitmap &&
- test_path_is_file $midx-$(midx_checksum $objdir).rev &&
- test_path_is_missing $stale_bitmap &&
- test_path_is_missing $stale_rev
+ test_path_is_missing $stale_bitmap
)
'
@@ -261,7 +136,6 @@ test_expect_success 'pack.preferBitmapTips' '
git multi-pack-index write --bitmap &&
test_path_is_file $midx &&
test_path_is_file $midx-$(midx_checksum $objdir).bitmap &&
- test_path_is_file $midx-$(midx_checksum $objdir).rev &&
test-tool bitmap list-commits | sort >bitmaps &&
comm -13 bitmaps commits >before &&
@@ -271,7 +145,6 @@ test_expect_success 'pack.preferBitmapTips' '
<before | git update-ref --stdin &&
rm -fr $midx-$(midx_checksum $objdir).bitmap &&
- rm -fr $midx-$(midx_checksum $objdir).rev &&
rm -fr $midx &&
git -c pack.preferBitmapTips=refs/tags/include \
@@ -309,7 +182,6 @@ test_expect_success 'writing a bitmap with --refs-snapshot' '
grep "$(git rev-parse two)" bitmaps &&
rm -fr $midx-$(midx_checksum $objdir).bitmap &&
- rm -fr $midx-$(midx_checksum $objdir).rev &&
rm -fr $midx &&
# Then again, but with a refs snapshot which only sees
@@ -354,7 +226,6 @@ test_expect_success 'write a bitmap with --refs-snapshot (preferred tips)' '
) >snapshot &&
rm -fr $midx-$(midx_checksum $objdir).bitmap &&
- rm -fr $midx-$(midx_checksum $objdir).rev &&
rm -fr $midx &&
git multi-pack-index write --bitmap --refs-snapshot=snapshot &&
@@ -395,4 +266,45 @@ test_expect_success 'hash-cache values are propagated from pack bitmaps' '
)
'
+test_expect_success 'no .bitmap is written without any objects' '
+ rm -fr repo &&
+ git init repo &&
+ test_when_finished "rm -fr repo" &&
+ (
+ cd repo &&
+
+ empty="$(git pack-objects $objdir/pack/pack </dev/null)" &&
+ cat >packs <<-EOF &&
+ pack-$empty.idx
+ EOF
+
+ git multi-pack-index write --bitmap --stdin-packs \
+ <packs 2>err &&
+
+ grep "bitmap without any objects" err &&
+
+ test_path_is_file $midx &&
+ test_path_is_missing $midx-$(midx_checksum $objdir).bitmap
+ )
+'
+
+test_expect_success 'graceful fallback when missing reverse index' '
+ rm -fr repo &&
+ git init repo &&
+ test_when_finished "rm -fr repo" &&
+ (
+ cd repo &&
+
+ test_commit base &&
+
+ # write a pack and MIDX bitmap containing base
+ git repack -adb &&
+ git multi-pack-index write --bitmap &&
+
+ GIT_TEST_MIDX_READ_RIDX=0 \
+ git rev-list --use-bitmap-index HEAD 2>err &&
+ ! grep "ignoring extra bitmap file" err
+ )
+'
+
test_done
diff --git a/t/t5327-multi-pack-bitmaps-rev.sh b/t/t5327-multi-pack-bitmaps-rev.sh
new file mode 100755
index 0000000000..d30ba632c8
--- /dev/null
+++ b/t/t5327-multi-pack-bitmaps-rev.sh
@@ -0,0 +1,23 @@
+#!/bin/sh
+
+test_description='exercise basic multi-pack bitmap functionality (.rev files)'
+
+. ./test-lib.sh
+. "${TEST_DIRECTORY}/lib-bitmap.sh"
+
+# We'll be writing our own midx and bitmaps, so avoid getting confused by the
+# automatic ones.
+GIT_TEST_MULTI_PACK_INDEX=0
+GIT_TEST_MULTI_PACK_INDEX_WRITE_BITMAP=0
+
+# Unlike t5326, this test exercise multi-pack bitmap functionality where the
+# object order is stored in a separate .rev file.
+GIT_TEST_MIDX_WRITE_REV=1
+GIT_TEST_MIDX_READ_RIDX=0
+export GIT_TEST_MIDX_WRITE_REV
+export GIT_TEST_MIDX_READ_RIDX
+
+midx_bitmap_core rev
+midx_bitmap_partial_tests rev
+
+test_done
diff --git a/t/t5328-commit-graph-64bit-time.sh b/t/t5328-commit-graph-64bit-time.sh
new file mode 100755
index 0000000000..093f0c067a
--- /dev/null
+++ b/t/t5328-commit-graph-64bit-time.sh
@@ -0,0 +1,66 @@
+#!/bin/sh
+
+test_description='commit graph with 64-bit timestamps'
+. ./test-lib.sh
+
+if ! test_have_prereq TIME_IS_64BIT || ! test_have_prereq TIME_T_IS_64BIT
+then
+ skip_all='skipping 64-bit timestamp tests'
+ test_done
+fi
+
+. "$TEST_DIRECTORY"/lib-commit-graph.sh
+
+UNIX_EPOCH_ZERO="@0 +0000"
+FUTURE_DATE="@4147483646 +0000"
+
+GIT_TEST_COMMIT_GRAPH_CHANGED_PATHS=0
+
+test_expect_success 'lower layers have overflow chunk' '
+ rm -f .git/objects/info/commit-graph &&
+ test_commit --date "$FUTURE_DATE" future-1 &&
+ test_commit --date "$UNIX_EPOCH_ZERO" old-1 &&
+ git commit-graph write --reachable &&
+ test_commit --date "$FUTURE_DATE" future-2 &&
+ test_commit --date "$UNIX_EPOCH_ZERO" old-2 &&
+ git commit-graph write --reachable --split=no-merge &&
+ test_commit extra &&
+ git commit-graph write --reachable --split=no-merge &&
+ git commit-graph write --reachable &&
+ graph_read_expect 5 "generation_data generation_data_overflow" &&
+ mv .git/objects/info/commit-graph commit-graph-upgraded &&
+ git commit-graph write --reachable &&
+ graph_read_expect 5 "generation_data generation_data_overflow" &&
+ test_cmp .git/objects/info/commit-graph commit-graph-upgraded
+'
+
+graph_git_behavior 'overflow' '' HEAD~2 HEAD
+
+test_expect_success 'set up and verify repo with generation data overflow chunk' '
+ mkdir repo &&
+ cd repo &&
+ git init &&
+ test_commit --date "$UNIX_EPOCH_ZERO" 1 &&
+ test_commit 2 &&
+ test_commit --date "$UNIX_EPOCH_ZERO" 3 &&
+ git commit-graph write --reachable &&
+ graph_read_expect 3 generation_data &&
+ test_commit --date "$FUTURE_DATE" 4 &&
+ test_commit 5 &&
+ test_commit --date "$UNIX_EPOCH_ZERO" 6 &&
+ git branch left &&
+ git reset --hard 3 &&
+ test_commit 7 &&
+ test_commit --date "$FUTURE_DATE" 8 &&
+ test_commit 9 &&
+ git branch right &&
+ git reset --hard 3 &&
+ test_merge M left right &&
+ git commit-graph write --reachable &&
+ graph_read_expect 10 "generation_data generation_data_overflow" &&
+ git commit-graph verify
+'
+
+graph_git_behavior 'overflow 2' repo left right
+
+test_done
diff --git a/t/t5401-update-hooks.sh b/t/t5401-update-hooks.sh
index 6012cc8172..001b7a17ad 100755
--- a/t/t5401-update-hooks.sh
+++ b/t/t5401-update-hooks.sh
@@ -20,45 +20,37 @@ test_expect_success setup '
git clone --bare ./. victim.git &&
GIT_DIR=victim.git git update-ref refs/heads/tofail $commit1 &&
git update-ref refs/heads/main $commit1 &&
- git update-ref refs/heads/tofail $commit0
-'
+ git update-ref refs/heads/tofail $commit0 &&
-cat >victim.git/hooks/pre-receive <<'EOF'
-#!/bin/sh
-printf %s "$@" >>$GIT_DIR/pre-receive.args
-cat - >$GIT_DIR/pre-receive.stdin
-echo STDOUT pre-receive
-echo STDERR pre-receive >&2
-EOF
-chmod u+x victim.git/hooks/pre-receive
+ test_hook --setup -C victim.git pre-receive <<-\EOF &&
+ printf %s "$@" >>$GIT_DIR/pre-receive.args
+ cat - >$GIT_DIR/pre-receive.stdin
+ echo STDOUT pre-receive
+ echo STDERR pre-receive >&2
+ EOF
-cat >victim.git/hooks/update <<'EOF'
-#!/bin/sh
-echo "$@" >>$GIT_DIR/update.args
-read x; printf %s "$x" >$GIT_DIR/update.stdin
-echo STDOUT update $1
-echo STDERR update $1 >&2
-test "$1" = refs/heads/main || exit
-EOF
-chmod u+x victim.git/hooks/update
+ test_hook --setup -C victim.git update <<-\EOF &&
+ echo "$@" >>$GIT_DIR/update.args
+ read x; printf %s "$x" >$GIT_DIR/update.stdin
+ echo STDOUT update $1
+ echo STDERR update $1 >&2
+ test "$1" = refs/heads/main || exit
+ EOF
-cat >victim.git/hooks/post-receive <<'EOF'
-#!/bin/sh
-printf %s "$@" >>$GIT_DIR/post-receive.args
-cat - >$GIT_DIR/post-receive.stdin
-echo STDOUT post-receive
-echo STDERR post-receive >&2
-EOF
-chmod u+x victim.git/hooks/post-receive
+ test_hook --setup -C victim.git post-receive <<-\EOF &&
+ printf %s "$@" >>$GIT_DIR/post-receive.args
+ cat - >$GIT_DIR/post-receive.stdin
+ echo STDOUT post-receive
+ echo STDERR post-receive >&2
+ EOF
-cat >victim.git/hooks/post-update <<'EOF'
-#!/bin/sh
-echo "$@" >>$GIT_DIR/post-update.args
-read x; printf %s "$x" >$GIT_DIR/post-update.stdin
-echo STDOUT post-update
-echo STDERR post-update >&2
-EOF
-chmod u+x victim.git/hooks/post-update
+ test_hook --setup -C victim.git post-update <<-\EOF
+ echo "$@" >>$GIT_DIR/post-update.args
+ read x; printf %s "$x" >$GIT_DIR/post-update.stdin
+ echo STDOUT post-update
+ echo STDERR post-update >&2
+ EOF
+'
test_expect_success push '
test_must_fail git send-pack --force ./victim.git \
@@ -136,7 +128,7 @@ test_expect_success 'send-pack stderr contains hook messages' '
'
test_expect_success 'pre-receive hook that forgets to read its input' '
- write_script victim.git/hooks/pre-receive <<-\EOF &&
+ test_hook --clobber -C victim.git pre-receive <<-\EOF &&
exit 0
EOF
rm -f victim.git/hooks/update victim.git/hooks/post-update &&
diff --git a/t/t5402-post-merge-hook.sh b/t/t5402-post-merge-hook.sh
index 3e5e19c719..915af2de95 100755
--- a/t/t5402-post-merge-hook.sh
+++ b/t/t5402-post-merge-hook.sh
@@ -25,13 +25,15 @@ test_expect_success setup '
GIT_DIR=clone2/.git git update-index --add a
'
-for clone in 1 2; do
- cat >clone${clone}/.git/hooks/post-merge <<'EOF'
-#!/bin/sh
-echo $@ >> $GIT_DIR/post-merge.args
-EOF
- chmod u+x clone${clone}/.git/hooks/post-merge
-done
+test_expect_success 'setup clone hooks' '
+ test_when_finished "rm -f hook" &&
+ cat >hook <<-\EOF &&
+ echo $@ >>$GIT_DIR/post-merge.args
+ EOF
+
+ test_hook --setup -C clone1 post-merge <hook &&
+ test_hook --setup -C clone2 post-merge <hook
+'
test_expect_success 'post-merge does not run for up-to-date ' '
GIT_DIR=clone1/.git git merge $commit0 &&
diff --git a/t/t5403-post-checkout-hook.sh b/t/t5403-post-checkout-hook.sh
index 1ec9e23be7..978f240cda 100755
--- a/t/t5403-post-checkout-hook.sh
+++ b/t/t5403-post-checkout-hook.sh
@@ -10,8 +10,7 @@ export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME
. ./test-lib.sh
test_expect_success setup '
- mkdir -p .git/hooks &&
- write_script .git/hooks/post-checkout <<-\EOF &&
+ test_hook --setup post-checkout <<-\EOF &&
echo "$@" >.git/post-checkout.args
EOF
test_commit one &&
@@ -49,23 +48,60 @@ test_expect_success 'post-checkout receives the right args when not switching br
test $old = $new && test $flag = 0
'
-test_expect_success 'post-checkout is triggered on rebase' '
- test_when_finished "rm -f .git/post-checkout.args" &&
- git checkout -b rebase-test main &&
- rm -f .git/post-checkout.args &&
- git rebase rebase-on-me &&
- read old new flag <.git/post-checkout.args &&
- test $old != $new && test $flag = 1
-'
+test_rebase () {
+ args="$*" &&
+ test_expect_success "post-checkout is triggered on rebase $args" '
+ test_when_finished "rm -f .git/post-checkout.args" &&
+ git checkout -B rebase-test main &&
+ rm -f .git/post-checkout.args &&
+ git rebase $args rebase-on-me &&
+ read old new flag <.git/post-checkout.args &&
+ test_cmp_rev main $old &&
+ test_cmp_rev rebase-on-me $new &&
+ test $flag = 1
+ '
+
+ test_expect_success "post-checkout is triggered on rebase $args with fast-forward" '
+ test_when_finished "rm -f .git/post-checkout.args" &&
+ git checkout -B ff-rebase-test rebase-on-me^ &&
+ rm -f .git/post-checkout.args &&
+ git rebase $args rebase-on-me &&
+ read old new flag <.git/post-checkout.args &&
+ test_cmp_rev rebase-on-me^ $old &&
+ test_cmp_rev rebase-on-me $new &&
+ test $flag = 1
+ '
+
+ test_expect_success "rebase $args fast-forward branch checkout runs post-checkout hook" '
+ test_when_finished "test_might_fail git rebase --abort" &&
+ test_when_finished "rm -f .git/post-checkout.args" &&
+ git update-ref refs/heads/rebase-fast-forward three &&
+ git checkout two &&
+ rm -f .git/post-checkout.args &&
+ git rebase $args HEAD rebase-fast-forward &&
+ read old new flag <.git/post-checkout.args &&
+ test_cmp_rev two $old &&
+ test_cmp_rev three $new &&
+ test $flag = 1
+ '
+
+ test_expect_success "rebase $args checkout does not remove untracked files" '
+ test_when_finished "test_might_fail git rebase --abort" &&
+ test_when_finished "rm -f .git/post-checkout.args" &&
+ git update-ref refs/heads/rebase-fast-forward three &&
+ git checkout two &&
+ rm -f .git/post-checkout.args &&
+ echo untracked >three.t &&
+ test_when_finished "rm three.t" &&
+ test_must_fail git rebase $args HEAD rebase-fast-forward 2>err &&
+ grep "untracked working tree files would be overwritten by checkout" err &&
+ test_path_is_missing .git/post-checkout.args
-test_expect_success 'post-checkout is triggered on rebase with fast-forward' '
- test_when_finished "rm -f .git/post-checkout.args" &&
- git checkout -b ff-rebase-test rebase-on-me^ &&
- rm -f .git/post-checkout.args &&
- git rebase rebase-on-me &&
- read old new flag <.git/post-checkout.args &&
- test $old != $new && test $flag = 1
'
+}
+
+test_rebase --apply &&
+test_rebase --merge
test_expect_success 'post-checkout hook is triggered by clone' '
mkdir -p templates/hooks &&
diff --git a/t/t5406-remote-rejects.sh b/t/t5406-remote-rejects.sh
index 5c509db6fc..dcbeb42082 100755
--- a/t/t5406-remote-rejects.sh
+++ b/t/t5406-remote-rejects.sh
@@ -5,7 +5,7 @@ test_description='remote push rejects are reported by client'
. ./test-lib.sh
test_expect_success 'setup' '
- write_script .git/hooks/update <<-\EOF &&
+ test_hook update <<-\EOF &&
exit 1
EOF
echo 1 >file &&
diff --git a/t/t5407-post-rewrite-hook.sh b/t/t5407-post-rewrite-hook.sh
index 6da8d760e2..5f3ff051ca 100755
--- a/t/t5407-post-rewrite-hook.sh
+++ b/t/t5407-post-rewrite-hook.sh
@@ -17,15 +17,13 @@ test_expect_success 'setup' '
git checkout A^0 &&
test_commit E bar E &&
test_commit F foo F &&
- git checkout main
-'
+ git checkout main &&
-cat >.git/hooks/post-rewrite <<EOF
-#!/bin/sh
-echo \$@ > "$TRASH_DIRECTORY"/post-rewrite.args
-cat > "$TRASH_DIRECTORY"/post-rewrite.data
-EOF
-chmod u+x .git/hooks/post-rewrite
+ test_hook --setup post-rewrite <<-EOF
+ echo \$@ > "$TRASH_DIRECTORY"/post-rewrite.args
+ cat > "$TRASH_DIRECTORY"/post-rewrite.data
+ EOF
+'
clear_hook_input () {
rm -f post-rewrite.args post-rewrite.data
diff --git a/t/t5409-colorize-remote-messages.sh b/t/t5409-colorize-remote-messages.sh
index 9f1a483f42..fa5de4500a 100755
--- a/t/t5409-colorize-remote-messages.sh
+++ b/t/t5409-colorize-remote-messages.sh
@@ -5,7 +5,7 @@ test_description='remote messages are colorized on the client'
. ./test-lib.sh
test_expect_success 'setup' '
- write_script .git/hooks/update <<-\EOF &&
+ test_hook --setup update <<-\EOF &&
echo error: error
echo ERROR: also highlighted
echo hint: hint
diff --git a/t/t5411-proc-receive-hook.sh b/t/t5411-proc-receive-hook.sh
index 98b0e81208..92cf52c6d4 100755
--- a/t/t5411-proc-receive-hook.sh
+++ b/t/t5411-proc-receive-hook.sh
@@ -36,7 +36,7 @@ setup_upstream_and_workbench () {
TAG=$(git -C workbench rev-parse v123) &&
# setup pre-receive hook
- write_script upstream.git/hooks/pre-receive <<-\EOF &&
+ test_hook --setup -C upstream.git pre-receive <<-\EOF &&
exec >&2
echo "# pre-receive hook"
while read old new ref
@@ -46,7 +46,7 @@ setup_upstream_and_workbench () {
EOF
# setup post-receive hook
- write_script upstream.git/hooks/post-receive <<-\EOF &&
+ test_hook --setup -C upstream.git post-receive <<-\EOF &&
exec >&2
echo "# post-receive hook"
while read old new ref
diff --git a/t/t5411/once-0010-report-status-v1.sh b/t/t5411/once-0010-report-status-v1.sh
index 297b10925d..f9ffb01e50 100644
--- a/t/t5411/once-0010-report-status-v1.sh
+++ b/t/t5411/once-0010-report-status-v1.sh
@@ -3,7 +3,7 @@ test_expect_success "setup receive.procReceiveRefs" '
'
test_expect_success "setup proc-receive hook" '
- write_script "$upstream/hooks/proc-receive" <<-EOF
+ test_hook -C "$upstream" --clobber proc-receive <<-EOF
printf >&2 "# proc-receive hook\n"
test-tool proc-receive -v \
-r "ok refs/for/main/topic1" \
diff --git a/t/t5411/test-0002-pre-receive-declined.sh b/t/t5411/test-0002-pre-receive-declined.sh
index 0c3490c9b1..98a9d13041 100644
--- a/t/t5411/test-0002-pre-receive-declined.sh
+++ b/t/t5411/test-0002-pre-receive-declined.sh
@@ -1,6 +1,6 @@
test_expect_success "setup pre-receive hook ($PROTOCOL)" '
mv "$upstream/hooks/pre-receive" "$upstream/hooks/pre-receive.ok" &&
- write_script "$upstream/hooks/pre-receive" <<-EOF
+ test_hook -C "$upstream" --clobber pre-receive <<-\EOF
exit 1
EOF
'
@@ -21,7 +21,7 @@ test_expect_success "git-push is declined ($PROTOCOL)" '
EOF
test_cmp expect actual &&
- test_cmp_refs -C "$upstream" <<-EOF
+ test_cmp_refs -C "$upstream" <<-\EOF
<COMMIT-A> refs/heads/main
EOF
'
diff --git a/t/t5411/test-0003-pre-receive-declined--porcelain.sh b/t/t5411/test-0003-pre-receive-declined--porcelain.sh
index 2393b04ad9..67ca6dc4f8 100644
--- a/t/t5411/test-0003-pre-receive-declined--porcelain.sh
+++ b/t/t5411/test-0003-pre-receive-declined--porcelain.sh
@@ -1,6 +1,6 @@
test_expect_success "setup pre-receive hook ($PROTOCOL/porcelain)" '
mv "$upstream/hooks/pre-receive" "$upstream/hooks/pre-receive.ok" &&
- write_script "$upstream/hooks/pre-receive" <<-EOF
+ test_hook -C "$upstream" --clobber pre-receive <<-\EOF
exit 1
EOF
'
diff --git a/t/t5411/test-0013-bad-protocol.sh b/t/t5411/test-0013-bad-protocol.sh
index c08a00ded2..8d22e17aee 100644
--- a/t/t5411/test-0013-bad-protocol.sh
+++ b/t/t5411/test-0013-bad-protocol.sh
@@ -1,5 +1,5 @@
test_expect_success "setup proc-receive hook (unknown version, $PROTOCOL)" '
- write_script "$upstream/hooks/proc-receive" <<-EOF
+ test_hook -C "$upstream" --clobber proc-receive <<-\EOF
printf >&2 "# proc-receive hook\n"
test-tool proc-receive -v --version 2
EOF
@@ -40,7 +40,7 @@ test_expect_success "proc-receive: bad protocol (unknown version, $PROTOCOL)" '
'
test_expect_success "setup proc-receive hook (hook --die-read-version, $PROTOCOL)" '
- write_script "$upstream/hooks/proc-receive" <<-EOF
+ test_hook -C "$upstream" --clobber proc-receive <<-\EOF
printf >&2 "# proc-receive hook\n"
test-tool proc-receive -v --die-read-version
EOF
@@ -65,13 +65,13 @@ test_expect_success "proc-receive: bad protocol (hook --die-read-version, $PROTO
grep "remote: fatal: die with the --die-read-version option" out-$test_count &&
grep "remote: error: fail to negotiate version with proc-receive hook" out-$test_count &&
- test_cmp_refs -C "$upstream" <<-EOF
+ test_cmp_refs -C "$upstream" <<-\EOF
<COMMIT-A> refs/heads/main
EOF
'
test_expect_success "setup proc-receive hook (hook --die-write-version, $PROTOCOL)" '
- write_script "$upstream/hooks/proc-receive" <<-EOF
+ test_hook -C "$upstream" --clobber proc-receive <<-\EOF
printf >&2 "# proc-receive hook\n"
test-tool proc-receive -v --die-write-version
EOF
@@ -102,7 +102,7 @@ test_expect_success "proc-receive: bad protocol (hook --die-write-version, $PROT
'
test_expect_success "setup proc-receive hook (hook --die-read-commands, $PROTOCOL)" '
- write_script "$upstream/hooks/proc-receive" <<-EOF
+ test_hook -C "$upstream" --clobber proc-receive <<-\EOF
printf >&2 "# proc-receive hook\n"
test-tool proc-receive -v --die-read-commands
EOF
@@ -132,7 +132,7 @@ test_expect_success "proc-receive: bad protocol (hook --die-read-commands, $PROT
'
test_expect_success "setup proc-receive hook (hook --die-read-push-options, $PROTOCOL)" '
- write_script "$upstream/hooks/proc-receive" <<-EOF
+ test_hook -C "$upstream" --clobber proc-receive <<-\EOF
printf >&2 "# proc-receive hook\n"
test-tool proc-receive -v --die-read-push-options
EOF
@@ -164,7 +164,7 @@ test_expect_success "proc-receive: bad protocol (hook --die-read-push-options, $
'
test_expect_success "setup proc-receive hook (hook --die-write-report, $PROTOCOL)" '
- write_script "$upstream/hooks/proc-receive" <<-EOF
+ test_hook -C "$upstream" --clobber proc-receive <<-\EOF
printf >&2 "# proc-receive hook\n"
test-tool proc-receive -v --die-write-report
EOF
@@ -194,7 +194,7 @@ test_expect_success "proc-receive: bad protocol (hook --die-write-report, $PROTO
'
test_expect_success "setup proc-receive hook (no report, $PROTOCOL)" '
- write_script "$upstream/hooks/proc-receive" <<-EOF
+ test_hook -C "$upstream" --clobber proc-receive <<-\EOF
printf >&2 "# proc-receive hook\n"
test-tool proc-receive -v
EOF
@@ -236,7 +236,7 @@ test_expect_success "cleanup ($PROTOCOL)" '
'
test_expect_success "setup proc-receive hook (no ref, $PROTOCOL)" '
- write_script "$upstream/hooks/proc-receive" <<-EOF
+ test_hook -C "$upstream" --clobber proc-receive <<-\EOF
printf >&2 "# proc-receive hook\n"
test-tool proc-receive -v \
-r "ok"
@@ -269,7 +269,7 @@ test_expect_success "proc-receive: bad protocol (no ref, $PROTOCOL)" '
'
test_expect_success "setup proc-receive hook (unknown status, $PROTOCOL)" '
- write_script "$upstream/hooks/proc-receive" <<-EOF
+ test_hook -C "$upstream" --clobber proc-receive <<-\EOF
printf >&2 "# proc-receive hook\n"
test-tool proc-receive -v \
-r "xx refs/for/main/topic"
diff --git a/t/t5411/test-0014-bad-protocol--porcelain.sh b/t/t5411/test-0014-bad-protocol--porcelain.sh
index 3eaa597e0f..298a3d1fec 100644
--- a/t/t5411/test-0014-bad-protocol--porcelain.sh
+++ b/t/t5411/test-0014-bad-protocol--porcelain.sh
@@ -1,5 +1,5 @@
test_expect_success "setup proc-receive hook (unknown version, $PROTOCOL/porcelain)" '
- write_script "$upstream/hooks/proc-receive" <<-EOF
+ test_hook -C "$upstream" --clobber proc-receive <<-\EOF
printf >&2 "# proc-receive hook\n"
test-tool proc-receive -v --version 2
EOF
@@ -40,7 +40,7 @@ test_expect_success "proc-receive: bad protocol (unknown version, $PROTOCOL/porc
'
test_expect_success "setup proc-receive hook (hook --die-read-version, $PROTOCOL/porcelain)" '
- write_script "$upstream/hooks/proc-receive" <<-EOF
+ test_hook -C "$upstream" --clobber proc-receive <<-EOF
printf >&2 "# proc-receive hook\n"
test-tool proc-receive -v --die-read-version
EOF
@@ -71,7 +71,7 @@ test_expect_success "proc-receive: bad protocol (hook --die-read-version, $PROTO
'
test_expect_success "setup proc-receive hook (hook --die-write-version, $PROTOCOL/porcelain)" '
- write_script "$upstream/hooks/proc-receive" <<-EOF
+ test_hook -C "$upstream" --clobber proc-receive <<-\EOF
printf >&2 "# proc-receive hook\n"
test-tool proc-receive -v --die-write-version
EOF
@@ -102,7 +102,7 @@ test_expect_success "proc-receive: bad protocol (hook --die-write-version, $PROT
'
test_expect_success "setup proc-receive hook (hook --die-read-commands, $PROTOCOL/porcelain)" '
- write_script "$upstream/hooks/proc-receive" <<-EOF
+ test_hook -C "$upstream" --clobber proc-receive <<-\EOF
printf >&2 "# proc-receive hook\n"
test-tool proc-receive -v --die-read-commands
EOF
@@ -132,7 +132,7 @@ test_expect_success "proc-receive: bad protocol (hook --die-read-commands, $PROT
'
test_expect_success "setup proc-receive hook (hook --die-read-push-options, $PROTOCOL/porcelain)" '
- write_script "$upstream/hooks/proc-receive" <<-EOF
+ test_hook -C "$upstream" --clobber proc-receive <<-\EOF
printf >&2 "# proc-receive hook\n"
test-tool proc-receive -v --die-read-push-options
EOF
@@ -164,7 +164,7 @@ test_expect_success "proc-receive: bad protocol (hook --die-read-push-options, $
'
test_expect_success "setup proc-receive hook (hook --die-write-report, $PROTOCOL/porcelain)" '
- write_script "$upstream/hooks/proc-receive" <<-EOF
+ test_hook -C "$upstream" --clobber proc-receive <<-\EOF
printf >&2 "# proc-receive hook\n"
test-tool proc-receive -v --die-write-report
EOF
@@ -194,7 +194,7 @@ test_expect_success "proc-receive: bad protocol (hook --die-write-report, $PROTO
'
test_expect_success "setup proc-receive hook (no report, $PROTOCOL/porcelain)" '
- write_script "$upstream/hooks/proc-receive" <<-EOF
+ test_hook -C "$upstream" --clobber proc-receive <<-\EOF
printf >&2 "# proc-receive hook\n"
test-tool proc-receive -v
EOF
@@ -236,7 +236,7 @@ test_expect_success "cleanup ($PROTOCOL/porcelain)" '
'
test_expect_success "setup proc-receive hook (no ref, $PROTOCOL/porcelain)" '
- write_script "$upstream/hooks/proc-receive" <<-EOF
+ test_hook -C "$upstream" --clobber proc-receive <<-\EOF
printf >&2 "# proc-receive hook\n"
test-tool proc-receive -v \
-r "ok"
@@ -270,7 +270,7 @@ test_expect_success "proc-receive: bad protocol (no ref, $PROTOCOL/porcelain)" '
'
test_expect_success "setup proc-receive hook (unknown status, $PROTOCOL/porcelain)" '
- write_script "$upstream/hooks/proc-receive" <<-EOF
+ test_hook -C "$upstream" --clobber proc-receive <<-\EOF
printf >&2 "# proc-receive hook\n"
test-tool proc-receive -v \
-r "xx refs/for/main/topic"
diff --git a/t/t5411/test-0020-report-ng.sh b/t/t5411/test-0020-report-ng.sh
index e915dbc28d..6347c9629b 100644
--- a/t/t5411/test-0020-report-ng.sh
+++ b/t/t5411/test-0020-report-ng.sh
@@ -1,5 +1,5 @@
test_expect_success "setup proc-receive hook (ng, no message, $PROTOCOL)" '
- write_script "$upstream/hooks/proc-receive" <<-EOF
+ test_hook -C "$upstream" --clobber proc-receive <<-\EOF
printf >&2 "# proc-receive hook\n"
test-tool proc-receive -v \
-r "ng refs/for/main/topic"
@@ -31,7 +31,7 @@ test_expect_success "proc-receive: fail to update (ng, no message, $PROTOCOL)" '
'
test_expect_success "setup proc-receive hook (ng message, $PROTOCOL)" '
- write_script "$upstream/hooks/proc-receive" <<-EOF
+ test_hook -C "$upstream" --clobber proc-receive <<-\EOF
printf >&2 "# proc-receive hook\n"
test-tool proc-receive -v \
-r "ng refs/for/main/topic error msg"
diff --git a/t/t5411/test-0021-report-ng--porcelain.sh b/t/t5411/test-0021-report-ng--porcelain.sh
index 2a392e099b..502b34fe3d 100644
--- a/t/t5411/test-0021-report-ng--porcelain.sh
+++ b/t/t5411/test-0021-report-ng--porcelain.sh
@@ -1,5 +1,5 @@
test_expect_success "setup proc-receive hook (ng, no message, $PROTOCOL/porcelain)" '
- write_script "$upstream/hooks/proc-receive" <<-EOF
+ test_hook -C "$upstream" --clobber proc-receive <<-\EOF
printf >&2 "# proc-receive hook\n"
test-tool proc-receive -v \
-r "ng refs/for/main/topic"
@@ -32,7 +32,7 @@ test_expect_success "proc-receive: fail to update (ng, no message, $PROTOCOL/por
'
test_expect_success "setup proc-receive hook (ng message, $PROTOCOL/porcelain)" '
- write_script "$upstream/hooks/proc-receive" <<-EOF
+ test_hook -C "$upstream" --clobber proc-receive <<-\EOF
printf >&2 "# proc-receive hook\n"
test-tool proc-receive -v \
-r "ng refs/for/main/topic error msg"
diff --git a/t/t5411/test-0022-report-unexpect-ref.sh b/t/t5411/test-0022-report-unexpect-ref.sh
index f7a494bdb9..7744392a62 100644
--- a/t/t5411/test-0022-report-unexpect-ref.sh
+++ b/t/t5411/test-0022-report-unexpect-ref.sh
@@ -1,5 +1,5 @@
test_expect_success "setup proc-receive hook (unexpected ref, $PROTOCOL)" '
- write_script "$upstream/hooks/proc-receive" <<-EOF
+ test_hook -C "$upstream" --clobber proc-receive <<-\EOF
printf >&2 "# proc-receive hook\n"
test-tool proc-receive -v \
-r "ok refs/heads/main"
diff --git a/t/t5411/test-0023-report-unexpect-ref--porcelain.sh b/t/t5411/test-0023-report-unexpect-ref--porcelain.sh
index 63c479e975..6d116ef692 100644
--- a/t/t5411/test-0023-report-unexpect-ref--porcelain.sh
+++ b/t/t5411/test-0023-report-unexpect-ref--porcelain.sh
@@ -1,5 +1,5 @@
test_expect_success "setup proc-receive hook (unexpected ref, $PROTOCOL/porcelain)" '
- write_script "$upstream/hooks/proc-receive" <<-EOF
+ test_hook -C "$upstream" --clobber proc-receive <<-\EOF
printf >&2 "# proc-receive hook\n"
test-tool proc-receive -v \
-r "ok refs/heads/main"
diff --git a/t/t5411/test-0024-report-unknown-ref.sh b/t/t5411/test-0024-report-unknown-ref.sh
index af055aa086..619ca2f421 100644
--- a/t/t5411/test-0024-report-unknown-ref.sh
+++ b/t/t5411/test-0024-report-unknown-ref.sh
@@ -1,5 +1,5 @@
test_expect_success "setup proc-receive hook (unexpected ref, $PROTOCOL)" '
- write_script "$upstream/hooks/proc-receive" <<-EOF
+ test_hook -C "$upstream" --clobber proc-receive <<-\EOF
printf >&2 "# proc-receive hook\n"
test-tool proc-receive -v \
-r "ok refs/for/main/topic"
diff --git a/t/t5411/test-0025-report-unknown-ref--porcelain.sh b/t/t5411/test-0025-report-unknown-ref--porcelain.sh
index 99601ca321..8b3f5d05a3 100644
--- a/t/t5411/test-0025-report-unknown-ref--porcelain.sh
+++ b/t/t5411/test-0025-report-unknown-ref--porcelain.sh
@@ -1,5 +1,5 @@
test_expect_success "setup proc-receive hook (unexpected ref, $PROTOCOL/porcelain)" '
- write_script "$upstream/hooks/proc-receive" <<-EOF
+ test_hook -C "$upstream" --clobber proc-receive <<-\EOF
printf >&2 "# proc-receive hook\n"
test-tool proc-receive -v \
-r "ok refs/for/main/topic"
diff --git a/t/t5411/test-0026-push-options.sh b/t/t5411/test-0026-push-options.sh
index fec5f95793..6dfc7b1c0d 100644
--- a/t/t5411/test-0026-push-options.sh
+++ b/t/t5411/test-0026-push-options.sh
@@ -1,6 +1,6 @@
test_expect_success "setup proc-receive hook and disable push-options ($PROTOCOL)" '
git -C "$upstream" config receive.advertisePushOptions false &&
- write_script "$upstream/hooks/proc-receive" <<-EOF
+ test_hook -C "$upstream" --clobber proc-receive <<-\EOF
printf >&2 "# proc-receive hook\n"
test-tool proc-receive -v \
-r "ok refs/for/main/topic"
@@ -31,7 +31,7 @@ test_expect_success "enable push options ($PROTOCOL)" '
'
test_expect_success "setup version=0 for proc-receive hook ($PROTOCOL)" '
- write_script "$upstream/hooks/proc-receive" <<-EOF
+ test_hook -C "$upstream" --clobber proc-receive <<-\EOF
printf >&2 "# proc-receive hook\n"
test-tool proc-receive -v \
--version 0 \
@@ -75,7 +75,7 @@ test_expect_success "proc-receive: ignore push-options for version 0 ($PROTOCOL)
'
test_expect_success "restore proc-receive hook ($PROTOCOL)" '
- write_script "$upstream/hooks/proc-receive" <<-EOF
+ test_hook -C "$upstream" --clobber proc-receive <<-\EOF
printf >&2 "# proc-receive hook\n"
test-tool proc-receive -v \
-r "ok refs/for/main/topic"
diff --git a/t/t5411/test-0027-push-options--porcelain.sh b/t/t5411/test-0027-push-options--porcelain.sh
index 8fb75a8789..768880b40f 100644
--- a/t/t5411/test-0027-push-options--porcelain.sh
+++ b/t/t5411/test-0027-push-options--porcelain.sh
@@ -1,6 +1,6 @@
test_expect_success "setup proc-receive hook and disable push-options ($PROTOCOL/porcelain)" '
git -C "$upstream" config receive.advertisePushOptions false &&
- write_script "$upstream/hooks/proc-receive" <<-EOF
+ test_hook -C "$upstream" --clobber proc-receive <<-\EOF
printf >&2 "# proc-receive hook\n"
test-tool proc-receive -v \
-r "ok refs/for/main/topic"
@@ -32,7 +32,7 @@ test_expect_success "enable push options ($PROTOCOL/porcelain)" '
'
test_expect_success "setup version=0 for proc-receive hook ($PROTOCOL/porcelain)" '
- write_script "$upstream/hooks/proc-receive" <<-EOF
+ test_hook -C "$upstream" --clobber proc-receive <<-\EOF
printf >&2 "# proc-receive hook\n"
test-tool proc-receive -v \
--version 0 \
@@ -78,7 +78,7 @@ test_expect_success "proc-receive: ignore push-options for version 0 ($PROTOCOL/
'
test_expect_success "restore proc-receive hook ($PROTOCOL/porcelain)" '
- write_script "$upstream/hooks/proc-receive" <<-EOF
+ test_hook -C "$upstream" --clobber proc-receive <<-\EOF
printf >&2 "# proc-receive hook\n"
test-tool proc-receive -v \
-r "ok refs/for/main/topic"
diff --git a/t/t5411/test-0030-report-ok.sh b/t/t5411/test-0030-report-ok.sh
index a3a6278213..0f190a6e85 100644
--- a/t/t5411/test-0030-report-ok.sh
+++ b/t/t5411/test-0030-report-ok.sh
@@ -1,5 +1,5 @@
test_expect_success "setup proc-receive hook (ok, $PROTOCOL)" '
- write_script "$upstream/hooks/proc-receive" <<-EOF
+ test_hook -C "$upstream" --clobber proc-receive <<-\EOF
printf >&2 "# proc-receive hook\n"
test-tool proc-receive -v \
-r "ok refs/for/main/topic"
diff --git a/t/t5411/test-0031-report-ok--porcelain.sh b/t/t5411/test-0031-report-ok--porcelain.sh
index 0e175388b6..7ec3981263 100644
--- a/t/t5411/test-0031-report-ok--porcelain.sh
+++ b/t/t5411/test-0031-report-ok--porcelain.sh
@@ -1,5 +1,5 @@
test_expect_success "setup proc-receive hook (ok, $PROTOCOL/porcelain)" '
- write_script "$upstream/hooks/proc-receive" <<-EOF
+ test_hook -C "$upstream" --clobber proc-receive <<-\EOF
printf >&2 "# proc-receive hook\n"
test-tool proc-receive -v \
-r "ok refs/for/main/topic"
diff --git a/t/t5411/test-0032-report-with-options.sh b/t/t5411/test-0032-report-with-options.sh
index 988a4302a6..07733b94b8 100644
--- a/t/t5411/test-0032-report-with-options.sh
+++ b/t/t5411/test-0032-report-with-options.sh
@@ -1,5 +1,5 @@
test_expect_success "setup proc-receive hook (option without matching ok, $PROTOCOL)" '
- write_script "$upstream/hooks/proc-receive" <<-EOF
+ test_hook -C "$upstream" --clobber proc-receive <<-EOF
printf >&2 "# proc-receive hook\n"
test-tool proc-receive -v \
-r "option refname refs/pull/123/head" \
@@ -30,7 +30,7 @@ test_expect_success "proc-receive: report option without matching ok ($PROTOCOL)
'
test_expect_success "setup proc-receive hook (option refname, $PROTOCOL)" '
- write_script "$upstream/hooks/proc-receive" <<-EOF
+ test_hook -C "$upstream" --clobber proc-receive <<-\EOF
printf >&2 "# proc-receive hook\n"
test-tool proc-receive -v \
-r "ok refs/for/main/topic" \
@@ -62,7 +62,7 @@ test_expect_success "proc-receive: report option refname ($PROTOCOL)" '
'
test_expect_success "setup proc-receive hook (option refname and forced-update, $PROTOCOL)" '
- write_script "$upstream/hooks/proc-receive" <<-EOF
+ test_hook -C "$upstream" --clobber proc-receive <<-\EOF
printf >&2 "# proc-receive hook\n"
test-tool proc-receive -v \
-r "ok refs/for/main/topic" \
@@ -95,7 +95,7 @@ test_expect_success "proc-receive: report option refname and forced-update ($PRO
'
test_expect_success "setup proc-receive hook (option refname and old-oid, $PROTOCOL)" '
- write_script "$upstream/hooks/proc-receive" <<-EOF
+ test_hook -C "$upstream" --clobber proc-receive <<-EOF
printf >&2 "# proc-receive hook\n"
test-tool proc-receive -v \
-r "ok refs/for/main/topic" \
@@ -129,7 +129,7 @@ test_expect_success "proc-receive: report option refname and old-oid ($PROTOCOL)
'
test_expect_success "setup proc-receive hook (option old-oid, $PROTOCOL)" '
- write_script "$upstream/hooks/proc-receive" <<-EOF
+ test_hook -C "$upstream" --clobber proc-receive <<-EOF
printf >&2 "# proc-receive hook\n"
test-tool proc-receive -v \
-r "ok refs/for/main/topic" \
@@ -161,7 +161,7 @@ test_expect_success "proc-receive: report option old-oid ($PROTOCOL)" '
'
test_expect_success "setup proc-receive hook (option old-oid and new-oid, $PROTOCOL)" '
- write_script "$upstream/hooks/proc-receive" <<-EOF
+ test_hook -C "$upstream" --clobber proc-receive <<-EOF
printf >&2 "# proc-receive hook\n"
test-tool proc-receive -v \
-r "ok refs/for/main/topic" \
@@ -195,7 +195,7 @@ test_expect_success "proc-receive: report option old-oid and new-oid ($PROTOCOL)
'
test_expect_success "setup proc-receive hook (report with multiple rewrites, $PROTOCOL)" '
- write_script "$upstream/hooks/proc-receive" <<-EOF
+ test_hook -C "$upstream" --clobber proc-receive <<-EOF
printf >&2 "# proc-receive hook\n"
test-tool proc-receive -v \
-r "ok refs/for/a/b/c/topic" \
diff --git a/t/t5411/test-0033-report-with-options--porcelain.sh b/t/t5411/test-0033-report-with-options--porcelain.sh
index daacb3d69d..2e1831b104 100644
--- a/t/t5411/test-0033-report-with-options--porcelain.sh
+++ b/t/t5411/test-0033-report-with-options--porcelain.sh
@@ -1,5 +1,5 @@
test_expect_success "setup proc-receive hook (option without matching ok, $PROTOCOL/porcelain)" '
- write_script "$upstream/hooks/proc-receive" <<-EOF
+ test_hook -C "$upstream" --clobber proc-receive <<-EOF
printf >&2 "# proc-receive hook\n"
test-tool proc-receive -v \
-r "option refname refs/pull/123/head" \
@@ -31,7 +31,7 @@ test_expect_success "proc-receive: report option without matching ok ($PROTOCOL/
'
test_expect_success "setup proc-receive hook (option refname, $PROTOCOL/porcelain)" '
- write_script "$upstream/hooks/proc-receive" <<-EOF
+ test_hook -C "$upstream" --clobber proc-receive <<-\EOF
printf >&2 "# proc-receive hook\n"
test-tool proc-receive -v \
-r "ok refs/for/main/topic" \
@@ -64,7 +64,7 @@ test_expect_success "proc-receive: report option refname ($PROTOCOL/porcelain)"
'
test_expect_success "setup proc-receive hook (option refname and forced-update, $PROTOCOL/porcelain)" '
- write_script "$upstream/hooks/proc-receive" <<-EOF
+ test_hook -C "$upstream" --clobber proc-receive <<-\EOF
printf >&2 "# proc-receive hook\n"
test-tool proc-receive -v \
-r "ok refs/for/main/topic" \
@@ -99,7 +99,7 @@ test_expect_success "proc-receive: report option refname and forced-update ($PRO
'
test_expect_success "setup proc-receive hook (option refname and old-oid, $PROTOCOL/porcelain)" '
- write_script "$upstream/hooks/proc-receive" <<-EOF
+ test_hook -C "$upstream" --clobber proc-receive <<-EOF
printf >&2 "# proc-receive hook\n"
test-tool proc-receive -v \
-r "ok refs/for/main/topic" \
@@ -134,7 +134,7 @@ test_expect_success "proc-receive: report option refname and old-oid ($PROTOCOL/
'
test_expect_success "setup proc-receive hook (option old-oid, $PROTOCOL/porcelain)" '
- write_script "$upstream/hooks/proc-receive" <<-EOF
+ test_hook -C "$upstream" --clobber proc-receive <<-EOF
printf >&2 "# proc-receive hook\n"
test-tool proc-receive -v \
-r "ok refs/for/main/topic" \
@@ -167,7 +167,7 @@ test_expect_success "proc-receive: report option old-oid ($PROTOCOL/porcelain)"
'
test_expect_success "setup proc-receive hook (option old-oid and new-oid, $PROTOCOL/porcelain)" '
- write_script "$upstream/hooks/proc-receive" <<-EOF
+ test_hook -C "$upstream" --clobber proc-receive <<-EOF
printf >&2 "# proc-receive hook\n"
test-tool proc-receive -v \
-r "ok refs/for/main/topic" \
@@ -202,7 +202,7 @@ test_expect_success "proc-receive: report option old-oid and new-oid ($PROTOCOL/
'
test_expect_success "setup proc-receive hook (report with multiple rewrites, $PROTOCOL/porcelain)" '
- write_script "$upstream/hooks/proc-receive" <<-EOF
+ test_hook -C "$upstream" --clobber proc-receive <<-EOF
printf >&2 "# proc-receive hook\n"
test-tool proc-receive -v \
-r "ok refs/for/a/b/c/topic" \
diff --git a/t/t5411/test-0034-report-ft.sh b/t/t5411/test-0034-report-ft.sh
index 73a47d1ffd..0e37535065 100644
--- a/t/t5411/test-0034-report-ft.sh
+++ b/t/t5411/test-0034-report-ft.sh
@@ -1,5 +1,5 @@
test_expect_success "setup proc-receive hook (ft, $PROTOCOL)" '
- write_script "$upstream/hooks/proc-receive" <<-EOF
+ test_hook -C "$upstream" --clobber proc-receive <<-\EOF
printf >&2 "# proc-receive hook\n"
test-tool proc-receive -v \
-r "ok refs/for/main/topic" \
diff --git a/t/t5411/test-0035-report-ft--porcelain.sh b/t/t5411/test-0035-report-ft--porcelain.sh
index c350201107..b9a05181f1 100644
--- a/t/t5411/test-0035-report-ft--porcelain.sh
+++ b/t/t5411/test-0035-report-ft--porcelain.sh
@@ -1,5 +1,5 @@
test_expect_success "setup proc-receive hook (fall-through, $PROTOCOL/porcelain)" '
- write_script "$upstream/hooks/proc-receive" <<-EOF
+ test_hook -C "$upstream" --clobber proc-receive <<-\EOF
printf >&2 "# proc-receive hook\n"
test-tool proc-receive -v \
-r "ok refs/for/main/topic" \
diff --git a/t/t5411/test-0036-report-multi-rewrite-for-one-ref.sh b/t/t5411/test-0036-report-multi-rewrite-for-one-ref.sh
index 8c8a6c16e1..889e97057b 100644
--- a/t/t5411/test-0036-report-multi-rewrite-for-one-ref.sh
+++ b/t/t5411/test-0036-report-multi-rewrite-for-one-ref.sh
@@ -14,7 +14,7 @@ test_expect_success "setup git config for remote-tracking of special refs" '
'
test_expect_success "setup proc-receive hook (multiple rewrites for one ref, no refname for the 1st rewrite, $PROTOCOL)" '
- write_script "$upstream/hooks/proc-receive" <<-EOF
+ test_hook -C "$upstream" --clobber proc-receive <<-EOF
printf >&2 "# proc-receive hook\n"
test-tool proc-receive -v \
-r "ok refs/for/main/topic" \
@@ -87,7 +87,7 @@ test_expect_success "proc-receive: check remote-tracking #1 ($PROTOCOL)" '
'
test_expect_success "setup proc-receive hook (multiple rewrites for one ref, no refname for the 2nd rewrite, $PROTOCOL)" '
- write_script "$upstream/hooks/proc-receive" <<-EOF
+ test_hook -C "$upstream" --clobber proc-receive <<-EOF
printf >&2 "# proc-receive hook\n"
test-tool proc-receive -v \
-r "ok refs/for/main/topic" \
@@ -162,7 +162,7 @@ test_expect_success "proc-receive: check remote-tracking #2 ($PROTOCOL)" '
'
test_expect_success "setup proc-receive hook (multiple rewrites for one ref, $PROTOCOL)" '
- write_script "$upstream/hooks/proc-receive" <<-EOF
+ test_hook -C "$upstream" --clobber proc-receive <<-EOF
printf >&2 "# proc-receive hook\n"
test-tool proc-receive -v \
-r "ok refs/for/main/topic" \
diff --git a/t/t5411/test-0037-report-multi-rewrite-for-one-ref--porcelain.sh b/t/t5411/test-0037-report-multi-rewrite-for-one-ref--porcelain.sh
index bc44810f33..1e523b1c17 100644
--- a/t/t5411/test-0037-report-multi-rewrite-for-one-ref--porcelain.sh
+++ b/t/t5411/test-0037-report-multi-rewrite-for-one-ref--porcelain.sh
@@ -1,5 +1,5 @@
test_expect_success "setup proc-receive hook (multiple rewrites for one ref, no refname for the 1st rewrite, $PROTOCOL/porcelain)" '
- write_script "$upstream/hooks/proc-receive" <<-EOF
+ test_hook -C "$upstream" --clobber proc-receive <<-EOF
printf >&2 "# proc-receive hook\n"
test-tool proc-receive -v \
-r "ok refs/for/main/topic" \
@@ -58,7 +58,7 @@ test_expect_success "proc-receive: multiple rewrite for one ref, no refname for
'
test_expect_success "setup proc-receive hook (multiple rewrites for one ref, no refname for the 2nd rewrite, $PROTOCOL/porcelain)" '
- write_script "$upstream/hooks/proc-receive" <<-EOF
+ test_hook -C "$upstream" --clobber proc-receive <<-EOF
printf >&2 "# proc-receive hook\n"
test-tool proc-receive -v \
-r "ok refs/for/main/topic" \
@@ -119,7 +119,7 @@ test_expect_success "proc-receive: multiple rewrites for one ref, no refname for
'
test_expect_success "setup proc-receive hook (multiple rewrites for one ref, $PROTOCOL/porcelain)" '
- write_script "$upstream/hooks/proc-receive" <<-EOF
+ test_hook -C "$upstream" --clobber proc-receive <<-EOF
printf >&2 "# proc-receive hook\n"
test-tool proc-receive -v \
-r "ok refs/for/main/topic" \
diff --git a/t/t5411/test-0038-report-mixed-refs.sh b/t/t5411/test-0038-report-mixed-refs.sh
index e63fe7ba11..4c70e84e41 100644
--- a/t/t5411/test-0038-report-mixed-refs.sh
+++ b/t/t5411/test-0038-report-mixed-refs.sh
@@ -1,5 +1,5 @@
test_expect_success "setup proc-receive hook ($PROTOCOL)" '
- write_script "$upstream/hooks/proc-receive" <<-EOF
+ test_hook -C "$upstream" --clobber proc-receive <<-EOF
printf >&2 "# proc-receive hook\n"
test-tool proc-receive -v \
-r "ok refs/for/next/topic2" \
diff --git a/t/t5411/test-0039-report-mixed-refs--porcelain.sh b/t/t5411/test-0039-report-mixed-refs--porcelain.sh
index 99d17b73af..40f4c5b1af 100644
--- a/t/t5411/test-0039-report-mixed-refs--porcelain.sh
+++ b/t/t5411/test-0039-report-mixed-refs--porcelain.sh
@@ -1,5 +1,5 @@
test_expect_success "setup proc-receive hook ($PROTOCOL/porcelain)" '
- write_script "$upstream/hooks/proc-receive" <<-EOF
+ test_hook -C "$upstream" --clobber proc-receive <<-EOF
printf >&2 "# proc-receive hook\n"
test-tool proc-receive -v \
-r "ok refs/for/next/topic2" \
diff --git a/t/t5411/test-0040-process-all-refs.sh b/t/t5411/test-0040-process-all-refs.sh
index 2f405adefa..7ae3851efb 100644
--- a/t/t5411/test-0040-process-all-refs.sh
+++ b/t/t5411/test-0040-process-all-refs.sh
@@ -17,7 +17,7 @@ test_expect_success "setup upstream branches ($PROTOCOL)" '
'
test_expect_success "setup proc-receive hook ($PROTOCOL)" '
- write_script "$upstream/hooks/proc-receive" <<-EOF
+ test_hook -C "$upstream" --clobber proc-receive <<-EOF
printf >&2 "# proc-receive hook\n"
test-tool proc-receive -v \
-r "ok refs/heads/main" \
diff --git a/t/t5411/test-0041-process-all-refs--porcelain.sh b/t/t5411/test-0041-process-all-refs--porcelain.sh
index c88405792e..02e1e084d6 100644
--- a/t/t5411/test-0041-process-all-refs--porcelain.sh
+++ b/t/t5411/test-0041-process-all-refs--porcelain.sh
@@ -17,7 +17,7 @@ test_expect_success "setup upstream branches ($PROTOCOL/porcelain)" '
'
test_expect_success "setup proc-receive hook ($PROTOCOL/porcelain)" '
- write_script "$upstream/hooks/proc-receive" <<-EOF
+ test_hook -C "$upstream" --clobber proc-receive <<-EOF
printf >&2 "# proc-receive hook\n"
test-tool proc-receive -v \
-r "ok refs/heads/main" \
diff --git a/t/t5411/test-0050-proc-receive-refs-with-modifiers.sh b/t/t5411/test-0050-proc-receive-refs-with-modifiers.sh
index 31989f0185..7efdfe5598 100644
--- a/t/t5411/test-0050-proc-receive-refs-with-modifiers.sh
+++ b/t/t5411/test-0050-proc-receive-refs-with-modifiers.sh
@@ -9,7 +9,7 @@ test_expect_success "config receive.procReceiveRefs with modifiers ($PROTOCOL)"
'
test_expect_success "setup proc-receive hook ($PROTOCOL)" '
- write_script "$upstream/hooks/proc-receive" <<-EOF
+ test_hook -C "$upstream" --clobber proc-receive <<-EOF
printf >&2 "# proc-receive hook\n"
test-tool proc-receive -v \
-r "ok refs/heads/main" \
@@ -70,7 +70,7 @@ test_expect_success "setup upstream: create tags/v123 ($PROTOCOL)" '
'
test_expect_success "setup proc-receive hook ($PROTOCOL)" '
- write_script "$upstream/hooks/proc-receive" <<-EOF
+ test_hook -C "$upstream" --clobber proc-receive <<-EOF
printf >&2 "# proc-receive hook\n"
test-tool proc-receive -v \
-r "ok refs/heads/main" \
diff --git a/t/t5500-fetch-pack.sh b/t/t5500-fetch-pack.sh
index f0dc4e6968..ee6d2dde9f 100755
--- a/t/t5500-fetch-pack.sh
+++ b/t/t5500-fetch-pack.sh
@@ -927,7 +927,8 @@ test_expect_success 'fetching deepen' '
)
'
-test_expect_success 'use ref advertisement to prune "have" lines sent' '
+test_negotiation_algorithm_default () {
+ test_when_finished rm -rf clientv0 clientv2 &&
rm -rf server client &&
git init server &&
test_commit -C server both_have_1 &&
@@ -946,7 +947,7 @@ test_expect_success 'use ref advertisement to prune "have" lines sent' '
rm -f trace &&
cp -r client clientv0 &&
GIT_TRACE_PACKET="$(pwd)/trace" git -C clientv0 \
- fetch origin server_has both_have_2 &&
+ "$@" fetch origin server_has both_have_2 &&
grep "have $(git -C client rev-parse client_has)" trace &&
grep "have $(git -C client rev-parse both_have_2)" trace &&
! grep "have $(git -C client rev-parse both_have_2^)" trace &&
@@ -954,10 +955,27 @@ test_expect_success 'use ref advertisement to prune "have" lines sent' '
rm -f trace &&
cp -r client clientv2 &&
GIT_TRACE_PACKET="$(pwd)/trace" git -C clientv2 -c protocol.version=2 \
- fetch origin server_has both_have_2 &&
+ "$@" fetch origin server_has both_have_2 &&
grep "have $(git -C client rev-parse client_has)" trace &&
grep "have $(git -C client rev-parse both_have_2)" trace &&
! grep "have $(git -C client rev-parse both_have_2^)" trace
+}
+
+test_expect_success 'use ref advertisement to prune "have" lines sent' '
+ test_negotiation_algorithm_default
+'
+
+test_expect_success 'same as last but with config overrides' '
+ test_negotiation_algorithm_default \
+ -c feature.experimental=true \
+ -c fetch.negotiationAlgorithm=consecutive
+'
+
+test_expect_success 'ensure bogus fetch.negotiationAlgorithm yields error' '
+ test_when_finished rm -rf clientv0 &&
+ cp -r client clientv0 &&
+ test_must_fail git -C clientv0 --fetch.negotiationAlgorithm=bogus \
+ fetch origin server_has both_have_2
'
test_expect_success 'filtering by size' '
diff --git a/t/t5505-remote.sh b/t/t5505-remote.sh
index 9ab315424c..c90cf47acd 100755
--- a/t/t5505-remote.sh
+++ b/t/t5505-remote.sh
@@ -753,7 +753,9 @@ test_expect_success 'rename a remote' '
(
cd four &&
git config branch.main.pushRemote origin &&
- git remote rename origin upstream &&
+ GIT_TRACE2_EVENT=$(pwd)/trace \
+ git remote rename --progress origin upstream &&
+ test_region progress "Renaming remote references" trace &&
grep "pushRemote" .git/config &&
test -z "$(git for-each-ref refs/remotes/origin)" &&
test "$(git symbolic-ref refs/remotes/upstream/HEAD)" = "refs/remotes/upstream/main" &&
diff --git a/t/t5510-fetch.sh b/t/t5510-fetch.sh
index 20f7110ec1..4620f0ca7f 100755
--- a/t/t5510-fetch.sh
+++ b/t/t5510-fetch.sh
@@ -164,6 +164,17 @@ test_expect_success 'fetch --prune --tags with refspec prunes based on refspec'
git rev-parse sometag
'
+test_expect_success REFFILES 'fetch --prune fails to delete branches' '
+ cd "$D" &&
+ git clone . prune-fail &&
+ cd prune-fail &&
+ git update-ref refs/remotes/origin/extrabranch main &&
+ : this will prevent --prune from locking packed-refs for deleting refs, but adding loose refs still succeeds &&
+ >.git/packed-refs.new &&
+
+ test_must_fail git fetch --prune origin
+'
+
test_expect_success 'fetch --atomic works with a single branch' '
test_when_finished "rm -rf \"$D\"/atomic" &&
@@ -262,7 +273,7 @@ test_expect_success 'fetch --atomic executes a single reference transaction only
EOF
rm -f atomic/actual &&
- write_script atomic/.git/hooks/reference-transaction <<-\EOF &&
+ test_hook -C atomic reference-transaction <<-\EOF &&
( echo "$*" && cat ) >>actual
EOF
@@ -295,7 +306,7 @@ test_expect_success 'fetch --atomic aborts all reference updates if hook aborts'
EOF
rm -f atomic/actual &&
- write_script atomic/.git/hooks/reference-transaction <<-\EOF &&
+ test_hook -C atomic/.git reference-transaction <<-\EOF &&
( echo "$*" && cat ) >>actual
exit 1
EOF
@@ -323,7 +334,7 @@ test_expect_success 'fetch --atomic --append appends to FETCH_HEAD' '
test_line_count = 2 atomic/.git/FETCH_HEAD &&
cp atomic/.git/FETCH_HEAD expected &&
- write_script atomic/.git/hooks/reference-transaction <<-\EOF &&
+ test_hook -C atomic reference-transaction <<-\EOF &&
exit 1
EOF
diff --git a/t/t5511-refspec.sh b/t/t5511-refspec.sh
index be025b90f9..fc55681a3f 100755
--- a/t/t5511-refspec.sh
+++ b/t/t5511-refspec.sh
@@ -2,6 +2,7 @@
test_description='refspec parsing'
+TEST_PASSES_SANITIZE_LEAK=true
. ./test-lib.sh
test_refspec () {
diff --git a/t/t5516-fetch-push.sh b/t/t5516-fetch-push.sh
index 2f04cf9a1c..4dfb080433 100755
--- a/t/t5516-fetch-push.sh
+++ b/t/t5516-fetch-push.sh
@@ -23,14 +23,10 @@ D=$(pwd)
mk_empty () {
repo_name="$1"
- rm -fr "$repo_name" &&
- mkdir "$repo_name" &&
- (
- cd "$repo_name" &&
- git init &&
- git config receive.denyCurrentBranch warn &&
- mv .git/hooks .git/hooks-disabled
- )
+ test_when_finished "rm -rf \"$repo_name\"" &&
+ test_path_is_missing "$repo_name" &&
+ git init "$repo_name" &&
+ git -C "$repo_name" config receive.denyCurrentBranch warn
}
mk_test () {
@@ -59,40 +55,28 @@ mk_test () {
mk_test_with_hooks() {
repo_name=$1
mk_test "$@" &&
- (
- cd "$repo_name" &&
- mkdir .git/hooks &&
- cd .git/hooks &&
-
- cat >pre-receive <<-'EOF' &&
- #!/bin/sh
- cat - >>pre-receive.actual
- EOF
-
- cat >update <<-'EOF' &&
- #!/bin/sh
- printf "%s %s %s\n" "$@" >>update.actual
- EOF
-
- cat >post-receive <<-'EOF' &&
- #!/bin/sh
- cat - >>post-receive.actual
- EOF
-
- cat >post-update <<-'EOF' &&
- #!/bin/sh
- for ref in "$@"
- do
- printf "%s\n" "$ref" >>post-update.actual
- done
- EOF
-
- chmod +x pre-receive update post-receive post-update
- )
+ test_hook -C "$repo_name" pre-receive <<-'EOF' &&
+ cat - >>pre-receive.actual
+ EOF
+
+ test_hook -C "$repo_name" update <<-'EOF' &&
+ printf "%s %s %s\n" "$@" >>update.actual
+ EOF
+
+ test_hook -C "$repo_name" post-receive <<-'EOF' &&
+ cat - >>post-receive.actual
+ EOF
+
+ test_hook -C "$repo_name" post-update <<-'EOF'
+ for ref in "$@"
+ do
+ printf "%s\n" "$ref" >>post-update.actual
+ done
+ EOF
}
mk_child() {
- rm -rf "$2" &&
+ test_when_finished "rm -rf \"$2\"" &&
git clone "$1" "$2"
}
@@ -197,38 +181,50 @@ grep_wrote () {
grep 'write_pack_file/wrote.*"value":"'$1'"' $2
}
-test_expect_success 'push with negotiation' '
- # Without negotiation
+test_expect_success 'push without negotiation' '
mk_empty testrepo &&
git push testrepo $the_first_commit:refs/remotes/origin/first_commit &&
test_commit -C testrepo unrelated_commit &&
git -C testrepo config receive.hideRefs refs/remotes/origin/first_commit &&
- echo now pushing without negotiation &&
+ test_when_finished "rm event" &&
GIT_TRACE2_EVENT="$(pwd)/event" git -c protocol.version=2 push testrepo refs/heads/main:refs/remotes/origin/main &&
- grep_wrote 5 event && # 2 commits, 2 trees, 1 blob
+ grep_wrote 5 event # 2 commits, 2 trees, 1 blob
+'
- # Same commands, but with negotiation
- rm event &&
+test_expect_success 'push with negotiation' '
mk_empty testrepo &&
git push testrepo $the_first_commit:refs/remotes/origin/first_commit &&
test_commit -C testrepo unrelated_commit &&
git -C testrepo config receive.hideRefs refs/remotes/origin/first_commit &&
+ test_when_finished "rm event" &&
GIT_TRACE2_EVENT="$(pwd)/event" git -c protocol.version=2 -c push.negotiate=1 push testrepo refs/heads/main:refs/remotes/origin/main &&
grep_wrote 2 event # 1 commit, 1 tree
'
test_expect_success 'push with negotiation proceeds anyway even if negotiation fails' '
- rm event &&
mk_empty testrepo &&
git push testrepo $the_first_commit:refs/remotes/origin/first_commit &&
test_commit -C testrepo unrelated_commit &&
git -C testrepo config receive.hideRefs refs/remotes/origin/first_commit &&
+ test_when_finished "rm event" &&
GIT_TEST_PROTOCOL_VERSION=0 GIT_TRACE2_EVENT="$(pwd)/event" \
git -c push.negotiate=1 push testrepo refs/heads/main:refs/remotes/origin/main 2>err &&
grep_wrote 5 event && # 2 commits, 2 trees, 1 blob
test_i18ngrep "push negotiation failed" err
'
+test_expect_success 'push with negotiation does not attempt to fetch submodules' '
+ mk_empty submodule_upstream &&
+ test_commit -C submodule_upstream submodule_commit &&
+ git submodule add ./submodule_upstream submodule &&
+ mk_empty testrepo &&
+ git push testrepo $the_first_commit:refs/remotes/origin/first_commit &&
+ test_commit -C testrepo unrelated_commit &&
+ git -C testrepo config receive.hideRefs refs/remotes/origin/first_commit &&
+ git -c submodule.recurse=true -c protocol.version=2 -c push.negotiate=1 push testrepo refs/heads/main:refs/remotes/origin/main 2>err &&
+ ! grep "Fetching submodule" err
+'
+
test_expect_success 'push without wildcard' '
mk_empty testrepo &&
@@ -656,7 +652,6 @@ test_expect_success 'push does not update local refs on failure' '
mk_test testrepo heads/main &&
mk_child testrepo child &&
- mkdir testrepo/.git/hooks &&
echo "#!/no/frobnication/today" >testrepo/.git/hooks/pre-receive &&
chmod +x testrepo/.git/hooks/pre-receive &&
(
@@ -1318,7 +1313,7 @@ done
test_expect_success 'fetch follows tags by default' '
mk_test testrepo heads/main &&
- rm -fr src dst &&
+ test_when_finished "rm -rf src" &&
git init src &&
(
cd src &&
@@ -1328,6 +1323,7 @@ test_expect_success 'fetch follows tags by default' '
sed -n "p; s|refs/heads/main$|refs/remotes/origin/main|p" tmp1 |
sort -k 3 >../expect
) &&
+ test_when_finished "rm -rf dst" &&
git init dst &&
(
cd dst &&
@@ -1353,8 +1349,9 @@ test_expect_success 'peeled advertisements are not considered ref tips' '
test_expect_success 'pushing a specific ref applies remote.$name.push as refmap' '
mk_test testrepo heads/main &&
- rm -fr src dst &&
+ test_when_finished "rm -rf src" &&
git init src &&
+ test_when_finished "rm -rf dst" &&
git init --bare dst &&
(
cd src &&
@@ -1377,8 +1374,9 @@ test_expect_success 'pushing a specific ref applies remote.$name.push as refmap'
test_expect_success 'with no remote.$name.push, it is not used as refmap' '
mk_test testrepo heads/main &&
- rm -fr src dst &&
+ test_when_finished "rm -rf src" &&
git init src &&
+ test_when_finished "rm -rf dst" &&
git init --bare dst &&
(
cd src &&
@@ -1399,8 +1397,9 @@ test_expect_success 'with no remote.$name.push, it is not used as refmap' '
test_expect_success 'with no remote.$name.push, upstream mapping is used' '
mk_test testrepo heads/main &&
- rm -fr src dst &&
+ test_when_finished "rm -rf src" &&
git init src &&
+ test_when_finished "rm -rf dst" &&
git init --bare dst &&
(
cd src &&
@@ -1428,8 +1427,9 @@ test_expect_success 'with no remote.$name.push, upstream mapping is used' '
test_expect_success 'push does not follow tags by default' '
mk_test testrepo heads/main &&
- rm -fr src dst &&
+ test_when_finished "rm -rf src" &&
git init src &&
+ test_when_finished "rm -rf dst" &&
git init --bare dst &&
(
cd src &&
@@ -1451,8 +1451,9 @@ test_expect_success 'push does not follow tags by default' '
test_expect_success 'push --follow-tags only pushes relevant tags' '
mk_test testrepo heads/main &&
- rm -fr src dst &&
+ test_when_finished "rm -rf src" &&
git init src &&
+ test_when_finished "rm -rf dst" &&
git init --bare dst &&
(
cd src &&
@@ -1490,9 +1491,9 @@ EOF
'
test_expect_success 'pushing a tag pushes the tagged object' '
- rm -rf dst.git &&
blob=$(echo unreferenced | git hash-object -w --stdin) &&
git tag -m foo tag-of-blob $blob &&
+ test_when_finished "rm -rf dst.git" &&
git init --bare dst.git &&
git push dst.git tag-of-blob &&
# the receiving index-pack should have noticed
@@ -1503,7 +1504,7 @@ test_expect_success 'pushing a tag pushes the tagged object' '
'
test_expect_success 'push into bare respects core.logallrefupdates' '
- rm -rf dst.git &&
+ test_when_finished "rm -rf dst.git" &&
git init --bare dst.git &&
git -C dst.git config core.logallrefupdates true &&
@@ -1521,7 +1522,7 @@ test_expect_success 'push into bare respects core.logallrefupdates' '
'
test_expect_success 'fetch into bare respects core.logallrefupdates' '
- rm -rf dst.git &&
+ test_when_finished "rm -rf dst.git" &&
git init --bare dst.git &&
(
cd dst.git &&
@@ -1542,6 +1543,7 @@ test_expect_success 'fetch into bare respects core.logallrefupdates' '
'
test_expect_success 'receive.denyCurrentBranch = updateInstead' '
+ mk_empty testrepo &&
git push testrepo main &&
(
cd testrepo &&
@@ -1644,7 +1646,7 @@ test_expect_success 'receive.denyCurrentBranch = updateInstead' '
) &&
# (5) push into void
- rm -fr void &&
+ test_when_finished "rm -rf void" &&
git init void &&
(
cd void &&
@@ -1666,26 +1668,23 @@ test_expect_success 'receive.denyCurrentBranch = updateInstead' '
'
test_expect_success 'updateInstead with push-to-checkout hook' '
- rm -fr testrepo &&
+ test_when_finished "rm -rf testrepo" &&
git init testrepo &&
- (
- cd testrepo &&
- git pull .. main &&
- git reset --hard HEAD^^ &&
- git tag initial &&
- git config receive.denyCurrentBranch updateInstead &&
- write_script .git/hooks/push-to-checkout <<-\EOF
- echo >&2 updating from $(git rev-parse HEAD)
- echo >&2 updating to "$1"
-
- git update-index -q --refresh &&
- git read-tree -u -m HEAD "$1" || {
- status=$?
- echo >&2 read-tree failed
- exit $status
- }
- EOF
- ) &&
+ git -C testrepo pull .. main &&
+ git -C testrepo reset --hard HEAD^^ &&
+ git -C testrepo tag initial &&
+ git -C testrepo config receive.denyCurrentBranch updateInstead &&
+ test_hook -C testrepo push-to-checkout <<-\EOF &&
+ echo >&2 updating from $(git rev-parse HEAD)
+ echo >&2 updating to "$1"
+
+ git update-index -q --refresh &&
+ git read-tree -u -m HEAD "$1" || {
+ status=$?
+ echo >&2 read-tree failed
+ exit $status
+ }
+ EOF
# Try pushing into a pristine
git push testrepo main &&
@@ -1728,35 +1727,32 @@ test_expect_success 'updateInstead with push-to-checkout hook' '
) &&
# push into void
- rm -fr void &&
+ test_when_finished "rm -rf void" &&
git init void &&
- (
- cd void &&
- git config receive.denyCurrentBranch updateInstead &&
- write_script .git/hooks/push-to-checkout <<-\EOF
- if git rev-parse --quiet --verify HEAD
- then
- has_head=yes
- echo >&2 updating from $(git rev-parse HEAD)
- else
- has_head=no
- echo >&2 pushing into void
- fi
- echo >&2 updating to "$1"
-
- git update-index -q --refresh &&
- case "$has_head" in
- yes)
- git read-tree -u -m HEAD "$1" ;;
- no)
- git read-tree -u -m "$1" ;;
- esac || {
- status=$?
- echo >&2 read-tree failed
- exit $status
- }
- EOF
- ) &&
+ git -C void config receive.denyCurrentBranch updateInstead &&
+ test_hook -C void push-to-checkout <<-\EOF &&
+ if git rev-parse --quiet --verify HEAD
+ then
+ has_head=yes
+ echo >&2 updating from $(git rev-parse HEAD)
+ else
+ has_head=no
+ echo >&2 pushing into void
+ fi
+ echo >&2 updating to "$1"
+
+ git update-index -q --refresh &&
+ case "$has_head" in
+ yes)
+ git read-tree -u -m HEAD "$1" ;;
+ no)
+ git read-tree -u -m "$1" ;;
+ esac || {
+ status=$?
+ echo >&2 read-tree failed
+ exit $status
+ }
+ EOF
git push void main &&
(
@@ -1809,4 +1805,12 @@ test_expect_success 'refuse fetch to current branch of bare repository worktree'
git -C bare.git fetch -u .. HEAD:wt
'
+test_expect_success 'refuse to push a hidden ref, and make sure do not pollute the repository' '
+ mk_empty testrepo &&
+ git -C testrepo config receive.hiderefs refs/hidden &&
+ git -C testrepo config receive.unpackLimit 1 &&
+ test_must_fail git push testrepo HEAD:refs/hidden/foo &&
+ test_dir_is_empty testrepo/.git/objects/pack
+'
+
test_done
diff --git a/t/t5520-pull.sh b/t/t5520-pull.sh
index 93ecfcdd24..081808009b 100755
--- a/t/t5520-pull.sh
+++ b/t/t5520-pull.sh
@@ -330,6 +330,19 @@ test_expect_success '--rebase --autostash fast forward' '
test_cmp_rev HEAD to-rebase-ff
'
+test_expect_success '--rebase with rebase.autostash succeeds on ff' '
+ test_when_finished "rm -fr src dst actual" &&
+ git init src &&
+ test_commit -C src "initial" file "content" &&
+ git clone src dst &&
+ test_commit -C src --printf "more_content" file "more content\ncontent\n" &&
+ echo "dirty" >>dst/file &&
+ test_config -C dst rebase.autostash true &&
+ git -C dst pull --rebase >actual 2>&1 &&
+ grep -q "Fast-forward" actual &&
+ grep -q "Applied autostash." actual
+'
+
test_expect_success '--rebase with conflicts shows advice' '
test_when_finished "git rebase --abort; git checkout -f to-rebase" &&
git checkout -b seq &&
diff --git a/t/t5521-pull-options.sh b/t/t5521-pull-options.sh
index 66cfcb09c5..264de29c35 100755
--- a/t/t5521-pull-options.sh
+++ b/t/t5521-pull-options.sh
@@ -233,7 +233,7 @@ test_expect_success 'git pull --no-verify flag passed to merge' '
git init src &&
test_commit -C src one &&
git clone src dst &&
- write_script dst/.git/hooks/commit-msg <<-\EOF &&
+ test_hook -C dst commit-msg <<-\EOF &&
false
EOF
test_commit -C src two &&
@@ -245,7 +245,7 @@ test_expect_success 'git pull --no-verify --verify passed to merge' '
git init src &&
test_commit -C src one &&
git clone src dst &&
- write_script dst/.git/hooks/commit-msg <<-\EOF &&
+ test_hook -C dst commit-msg <<-\EOF &&
false
EOF
test_commit -C src two &&
diff --git a/t/t5526-fetch-submodules.sh b/t/t5526-fetch-submodules.sh
index 840c89cc8b..43dada8544 100755
--- a/t/t5526-fetch-submodules.sh
+++ b/t/t5526-fetch-submodules.sh
@@ -10,33 +10,122 @@ export GIT_TEST_FATAL_REGISTER_SUBMODULE_ODB
pwd=$(pwd)
-add_upstream_commit() {
+write_expected_sub () {
+ NEW_HEAD=$1 &&
+ SUPER_HEAD=$2 &&
+ cat >"$pwd/expect.err.sub" <<-EOF
+ Fetching submodule submodule${SUPER_HEAD:+ at commit $SUPER_HEAD}
+ From $pwd/submodule
+ OLD_HEAD..$NEW_HEAD sub -> origin/sub
+ EOF
+}
+
+write_expected_sub2 () {
+ NEW_HEAD=$1 &&
+ SUPER_HEAD=$2 &&
+ cat >"$pwd/expect.err.sub2" <<-EOF
+ Fetching submodule submodule2${SUPER_HEAD:+ at commit $SUPER_HEAD}
+ From $pwd/submodule2
+ OLD_HEAD..$NEW_HEAD sub2 -> origin/sub2
+ EOF
+}
+
+write_expected_deep () {
+ NEW_HEAD=$1 &&
+ SUB_HEAD=$2 &&
+ cat >"$pwd/expect.err.deep" <<-EOF
+ Fetching submodule submodule/subdir/deepsubmodule${SUB_HEAD:+ at commit $SUB_HEAD}
+ From $pwd/deepsubmodule
+ OLD_HEAD..$NEW_HEAD deep -> origin/deep
+ EOF
+}
+
+write_expected_super () {
+ NEW_HEAD=$1 &&
+ cat >"$pwd/expect.err.super" <<-EOF
+ From $pwd/.
+ OLD_HEAD..$NEW_HEAD super -> origin/super
+ EOF
+}
+
+# For each submodule in the test setup, this creates a commit and writes
+# a file that contains the expected err if that new commit were fetched.
+# These output files get concatenated in the right order by
+# verify_fetch_result().
+add_submodule_commits () {
(
cd submodule &&
- head1=$(git rev-parse --short HEAD) &&
echo new >> subfile &&
test_tick &&
git add subfile &&
git commit -m new subfile &&
- head2=$(git rev-parse --short HEAD) &&
- echo "Fetching submodule submodule" > ../expect.err &&
- echo "From $pwd/submodule" >> ../expect.err &&
- echo " $head1..$head2 sub -> origin/sub" >> ../expect.err
+ new_head=$(git rev-parse --short HEAD) &&
+ write_expected_sub $new_head
) &&
(
cd deepsubmodule &&
- head1=$(git rev-parse --short HEAD) &&
echo new >> deepsubfile &&
test_tick &&
git add deepsubfile &&
git commit -m new deepsubfile &&
- head2=$(git rev-parse --short HEAD) &&
- echo "Fetching submodule submodule/subdir/deepsubmodule" >> ../expect.err
- echo "From $pwd/deepsubmodule" >> ../expect.err &&
- echo " $head1..$head2 deep -> origin/deep" >> ../expect.err
+ new_head=$(git rev-parse --short HEAD) &&
+ write_expected_deep $new_head
)
}
+# For each superproject in the test setup, update its submodule, add the
+# submodule and create a new commit with the submodule change.
+#
+# This requires add_submodule_commits() to be called first, otherwise
+# the submodules will not have changed and cannot be "git add"-ed.
+add_superproject_commits () {
+ (
+ cd submodule &&
+ (
+ cd subdir/deepsubmodule &&
+ git fetch &&
+ git checkout -q FETCH_HEAD
+ ) &&
+ git add subdir/deepsubmodule &&
+ git commit -m "new deep submodule"
+ ) &&
+ git add submodule &&
+ git commit -m "new submodule" &&
+ super_head=$(git rev-parse --short HEAD) &&
+ sub_head=$(git -C submodule rev-parse --short HEAD) &&
+ write_expected_super $super_head &&
+ write_expected_sub $sub_head
+}
+
+# Verifies that the expected repositories were fetched. This is done by
+# concatenating the files expect.err.[super|sub|deep] in the correct
+# order and comparing it to the actual stderr.
+#
+# If a repo should not be fetched in the test, its corresponding
+# expect.err file should be rm-ed.
+verify_fetch_result () {
+ ACTUAL_ERR=$1 &&
+ rm -f expect.err.combined &&
+ if test -f expect.err.super
+ then
+ cat expect.err.super >>expect.err.combined
+ fi &&
+ if test -f expect.err.sub
+ then
+ cat expect.err.sub >>expect.err.combined
+ fi &&
+ if test -f expect.err.deep
+ then
+ cat expect.err.deep >>expect.err.combined
+ fi &&
+ if test -f expect.err.sub2
+ then
+ cat expect.err.sub2 >>expect.err.combined
+ fi &&
+ sed -e 's/[0-9a-f][0-9a-f]*\.\./OLD_HEAD\.\./' "$ACTUAL_ERR" >actual.err.cmp &&
+ test_cmp expect.err.combined actual.err.cmp
+}
+
test_expect_success setup '
mkdir deepsubmodule &&
(
@@ -68,38 +157,38 @@ test_expect_success setup '
'
test_expect_success "fetch --recurse-submodules recurses into submodules" '
- add_upstream_commit &&
+ add_submodule_commits &&
(
cd downstream &&
git fetch --recurse-submodules >../actual.out 2>../actual.err
) &&
test_must_be_empty actual.out &&
- test_cmp expect.err actual.err
+ verify_fetch_result actual.err
'
test_expect_success "submodule.recurse option triggers recursive fetch" '
- add_upstream_commit &&
+ add_submodule_commits &&
(
cd downstream &&
git -c submodule.recurse fetch >../actual.out 2>../actual.err
) &&
test_must_be_empty actual.out &&
- test_cmp expect.err actual.err
+ verify_fetch_result actual.err
'
test_expect_success "fetch --recurse-submodules -j2 has the same output behaviour" '
- add_upstream_commit &&
+ add_submodule_commits &&
(
cd downstream &&
GIT_TRACE="$TRASH_DIRECTORY/trace.out" git fetch --recurse-submodules -j2 2>../actual.err
) &&
test_must_be_empty actual.out &&
- test_cmp expect.err actual.err &&
+ verify_fetch_result actual.err &&
grep "2 tasks" trace.out
'
test_expect_success "fetch alone only fetches superproject" '
- add_upstream_commit &&
+ add_submodule_commits &&
(
cd downstream &&
git fetch >../actual.out 2>../actual.err
@@ -124,11 +213,11 @@ test_expect_success "using fetchRecurseSubmodules=true in .gitmodules recurses i
git fetch >../actual.out 2>../actual.err
) &&
test_must_be_empty actual.out &&
- test_cmp expect.err actual.err
+ verify_fetch_result actual.err
'
test_expect_success "--no-recurse-submodules overrides .gitmodules config" '
- add_upstream_commit &&
+ add_submodule_commits &&
(
cd downstream &&
git fetch --no-recurse-submodules >../actual.out 2>../actual.err
@@ -155,7 +244,7 @@ test_expect_success "--recurse-submodules overrides fetchRecurseSubmodules setti
git config --unset submodule.submodule.fetchRecurseSubmodules
) &&
test_must_be_empty actual.out &&
- test_cmp expect.err actual.err
+ verify_fetch_result actual.err
'
test_expect_success "--quiet propagates to submodules" '
@@ -177,13 +266,13 @@ test_expect_success "--quiet propagates to parallel submodules" '
'
test_expect_success "--dry-run propagates to submodules" '
- add_upstream_commit &&
+ add_submodule_commits &&
(
cd downstream &&
git fetch --recurse-submodules --dry-run >../actual.out 2>../actual.err
) &&
test_must_be_empty actual.out &&
- test_cmp expect.err actual.err
+ verify_fetch_result actual.err
'
test_expect_success "Without --dry-run propagates to submodules" '
@@ -192,22 +281,22 @@ test_expect_success "Without --dry-run propagates to submodules" '
git fetch --recurse-submodules >../actual.out 2>../actual.err
) &&
test_must_be_empty actual.out &&
- test_cmp expect.err actual.err
+ verify_fetch_result actual.err
'
test_expect_success "recurseSubmodules=true propagates into submodules" '
- add_upstream_commit &&
+ add_submodule_commits &&
(
cd downstream &&
git config fetch.recurseSubmodules true &&
git fetch >../actual.out 2>../actual.err
) &&
test_must_be_empty actual.out &&
- test_cmp expect.err actual.err
+ verify_fetch_result actual.err
'
test_expect_success "--recurse-submodules overrides config in submodule" '
- add_upstream_commit &&
+ add_submodule_commits &&
(
cd downstream &&
(
@@ -217,11 +306,11 @@ test_expect_success "--recurse-submodules overrides config in submodule" '
git fetch --recurse-submodules >../actual.out 2>../actual.err
) &&
test_must_be_empty actual.out &&
- test_cmp expect.err actual.err
+ verify_fetch_result actual.err
'
test_expect_success "--no-recurse-submodules overrides config setting" '
- add_upstream_commit &&
+ add_submodule_commits &&
(
cd downstream &&
git config fetch.recurseSubmodules true &&
@@ -246,36 +335,34 @@ test_expect_success "Recursion doesn't happen when no new commits are fetched in
'
test_expect_success "Recursion stops when no new submodule commits are fetched" '
- head1=$(git rev-parse --short HEAD) &&
git add submodule &&
git commit -m "new submodule" &&
- head2=$(git rev-parse --short HEAD) &&
- echo "From $pwd/." > expect.err.sub &&
- echo " $head1..$head2 super -> origin/super" >>expect.err.sub &&
- head -3 expect.err >> expect.err.sub &&
+ new_head=$(git rev-parse --short HEAD) &&
+ write_expected_super $new_head &&
+ rm expect.err.deep &&
(
cd downstream &&
git fetch >../actual.out 2>../actual.err
) &&
- test_cmp expect.err.sub actual.err &&
+ verify_fetch_result actual.err &&
test_must_be_empty actual.out
'
test_expect_success "Recursion doesn't happen when new superproject commits don't change any submodules" '
- add_upstream_commit &&
- head1=$(git rev-parse --short HEAD) &&
+ add_submodule_commits &&
echo a > file &&
git add file &&
git commit -m "new file" &&
- head2=$(git rev-parse --short HEAD) &&
- echo "From $pwd/." > expect.err.file &&
- echo " $head1..$head2 super -> origin/super" >> expect.err.file &&
+ new_head=$(git rev-parse --short HEAD) &&
+ write_expected_super $new_head &&
+ rm expect.err.sub &&
+ rm expect.err.deep &&
(
cd downstream &&
git fetch >../actual.out 2>../actual.err
) &&
test_must_be_empty actual.out &&
- test_cmp expect.err.file actual.err
+ verify_fetch_result actual.err
'
test_expect_success "Recursion picks up config in submodule" '
@@ -287,14 +374,11 @@ test_expect_success "Recursion picks up config in submodule" '
git config fetch.recurseSubmodules true
)
) &&
- add_upstream_commit &&
- head1=$(git rev-parse --short HEAD) &&
+ add_submodule_commits &&
git add submodule &&
git commit -m "new submodule" &&
- head2=$(git rev-parse --short HEAD) &&
- echo "From $pwd/." > expect.err.sub &&
- echo " $head1..$head2 super -> origin/super" >> expect.err.sub &&
- cat expect.err >> expect.err.sub &&
+ new_head=$(git rev-parse --short HEAD) &&
+ write_expected_super $new_head &&
(
cd downstream &&
git fetch >../actual.out 2>../actual.err &&
@@ -303,60 +387,23 @@ test_expect_success "Recursion picks up config in submodule" '
git config --unset fetch.recurseSubmodules
)
) &&
- test_cmp expect.err.sub actual.err &&
+ verify_fetch_result actual.err &&
test_must_be_empty actual.out
'
test_expect_success "Recursion picks up all submodules when necessary" '
- add_upstream_commit &&
- (
- cd submodule &&
- (
- cd subdir/deepsubmodule &&
- git fetch &&
- git checkout -q FETCH_HEAD
- ) &&
- head1=$(git rev-parse --short HEAD^) &&
- git add subdir/deepsubmodule &&
- git commit -m "new deepsubmodule" &&
- head2=$(git rev-parse --short HEAD) &&
- echo "Fetching submodule submodule" > ../expect.err.sub &&
- echo "From $pwd/submodule" >> ../expect.err.sub &&
- echo " $head1..$head2 sub -> origin/sub" >> ../expect.err.sub
- ) &&
- head1=$(git rev-parse --short HEAD) &&
- git add submodule &&
- git commit -m "new submodule" &&
- head2=$(git rev-parse --short HEAD) &&
- echo "From $pwd/." > expect.err.2 &&
- echo " $head1..$head2 super -> origin/super" >> expect.err.2 &&
- cat expect.err.sub >> expect.err.2 &&
- tail -3 expect.err >> expect.err.2 &&
+ add_submodule_commits &&
+ add_superproject_commits &&
(
cd downstream &&
git fetch >../actual.out 2>../actual.err
) &&
- test_cmp expect.err.2 actual.err &&
+ verify_fetch_result actual.err &&
test_must_be_empty actual.out
'
test_expect_success "'--recurse-submodules=on-demand' doesn't recurse when no new commits are fetched in the superproject (and ignores config)" '
- add_upstream_commit &&
- (
- cd submodule &&
- (
- cd subdir/deepsubmodule &&
- git fetch &&
- git checkout -q FETCH_HEAD
- ) &&
- head1=$(git rev-parse --short HEAD^) &&
- git add subdir/deepsubmodule &&
- git commit -m "new deepsubmodule" &&
- head2=$(git rev-parse --short HEAD) &&
- echo Fetching submodule submodule > ../expect.err.sub &&
- echo "From $pwd/submodule" >> ../expect.err.sub &&
- echo " $head1..$head2 sub -> origin/sub" >> ../expect.err.sub
- ) &&
+ add_submodule_commits &&
(
cd downstream &&
git config fetch.recurseSubmodules true &&
@@ -368,15 +415,8 @@ test_expect_success "'--recurse-submodules=on-demand' doesn't recurse when no ne
'
test_expect_success "'--recurse-submodules=on-demand' recurses as deep as necessary (and ignores config)" '
- head1=$(git rev-parse --short HEAD) &&
- git add submodule &&
- git commit -m "new submodule" &&
- head2=$(git rev-parse --short HEAD) &&
- tail -3 expect.err > expect.err.deepsub &&
- echo "From $pwd/." > expect.err &&
- echo " $head1..$head2 super -> origin/super" >>expect.err &&
- cat expect.err.sub >> expect.err &&
- cat expect.err.deepsub >> expect.err &&
+ add_submodule_commits &&
+ add_superproject_commits &&
(
cd downstream &&
git config fetch.recurseSubmodules false &&
@@ -392,24 +432,165 @@ test_expect_success "'--recurse-submodules=on-demand' recurses as deep as necess
)
) &&
test_must_be_empty actual.out &&
- test_cmp expect.err actual.err
+ verify_fetch_result actual.err
+'
+
+# These tests verify that we can fetch submodules that aren't in the
+# index.
+#
+# First, test the simple case where the index is empty and we only fetch
+# submodules that are not in the index.
+test_expect_success 'setup downstream branch without submodules' '
+ (
+ cd downstream &&
+ git checkout --recurse-submodules -b no-submodules &&
+ git rm .gitmodules &&
+ git rm submodule &&
+ git commit -m "no submodules" &&
+ git checkout --recurse-submodules super
+ )
+'
+
+test_expect_success "'--recurse-submodules=on-demand' should fetch submodule commits if the submodule is changed but the index has no submodules" '
+ add_submodule_commits &&
+ add_superproject_commits &&
+ # Fetch the new superproject commit
+ (
+ cd downstream &&
+ git switch --recurse-submodules no-submodules &&
+ git fetch --recurse-submodules=on-demand >../actual.out 2>../actual.err
+ ) &&
+ super_head=$(git rev-parse --short HEAD) &&
+ sub_head=$(git -C submodule rev-parse --short HEAD) &&
+ deep_head=$(git -C submodule/subdir/deepsubmodule rev-parse --short HEAD) &&
+
+ # assert that these are fetched from commits, not the index
+ write_expected_sub $sub_head $super_head &&
+ write_expected_deep $deep_head $sub_head &&
+
+ test_must_be_empty actual.out &&
+ verify_fetch_result actual.err
+'
+
+test_expect_success "'--recurse-submodules' should fetch submodule commits if the submodule is changed but the index has no submodules" '
+ add_submodule_commits &&
+ add_superproject_commits &&
+ # Fetch the new superproject commit
+ (
+ cd downstream &&
+ git switch --recurse-submodules no-submodules &&
+ git fetch --recurse-submodules >../actual.out 2>../actual.err
+ ) &&
+ super_head=$(git rev-parse --short HEAD) &&
+ sub_head=$(git -C submodule rev-parse --short HEAD) &&
+ deep_head=$(git -C submodule/subdir/deepsubmodule rev-parse --short HEAD) &&
+
+ # assert that these are fetched from commits, not the index
+ write_expected_sub $sub_head $super_head &&
+ write_expected_deep $deep_head $sub_head &&
+
+ test_must_be_empty actual.out &&
+ verify_fetch_result actual.err
+'
+
+test_expect_success "'--recurse-submodules' should ignore changed, inactive submodules" '
+ add_submodule_commits &&
+ add_superproject_commits &&
+
+ # Fetch the new superproject commit
+ (
+ cd downstream &&
+ git switch --recurse-submodules no-submodules &&
+ git -c submodule.submodule.active=false fetch --recurse-submodules >../actual.out 2>../actual.err
+ ) &&
+ test_must_be_empty actual.out &&
+ super_head=$(git rev-parse --short HEAD) &&
+ write_expected_super $super_head &&
+ # Neither should be fetched because the submodule is inactive
+ rm expect.err.sub &&
+ rm expect.err.deep &&
+ verify_fetch_result actual.err
+'
+
+# Now that we know we can fetch submodules that are not in the index,
+# test that we can fetch index and non-index submodules in the same
+# operation.
+test_expect_success 'setup downstream branch with other submodule' '
+ mkdir submodule2 &&
+ (
+ cd submodule2 &&
+ git init &&
+ echo sub2content >sub2file &&
+ git add sub2file &&
+ git commit -a -m new &&
+ git branch -M sub2
+ ) &&
+ git checkout -b super-sub2-only &&
+ git submodule add "$pwd/submodule2" submodule2 &&
+ git commit -m "add sub2" &&
+ git checkout super &&
+ (
+ cd downstream &&
+ git fetch --recurse-submodules origin &&
+ git checkout super-sub2-only &&
+ # Explicitly run "git submodule update" because sub2 is new
+ # and has not been cloned.
+ git submodule update --init &&
+ git checkout --recurse-submodules super
+ )
+'
+
+test_expect_success "'--recurse-submodules' should fetch submodule commits in changed submodules and the index" '
+ test_when_finished "rm expect.err.sub2" &&
+ # Create new commit in origin/super
+ add_submodule_commits &&
+ add_superproject_commits &&
+
+ # Create new commit in origin/super-sub2-only
+ git checkout super-sub2-only &&
+ (
+ cd submodule2 &&
+ test_commit --no-tag foo
+ ) &&
+ git add submodule2 &&
+ git commit -m "new submodule2" &&
+
+ git checkout super &&
+ (
+ cd downstream &&
+ git fetch --recurse-submodules >../actual.out 2>../actual.err
+ ) &&
+ test_must_be_empty actual.out &&
+ sub2_head=$(git -C submodule2 rev-parse --short HEAD) &&
+ super_head=$(git rev-parse --short super) &&
+ super_sub2_only_head=$(git rev-parse --short super-sub2-only) &&
+ write_expected_sub2 $sub2_head $super_sub2_only_head &&
+
+ # write_expected_super cannot handle >1 branch. Since this is a
+ # one-off, construct expect.err.super manually.
+ cat >"$pwd/expect.err.super" <<-EOF &&
+ From $pwd/.
+ OLD_HEAD..$super_head super -> origin/super
+ OLD_HEAD..$super_sub2_only_head super-sub2-only -> origin/super-sub2-only
+ EOF
+ verify_fetch_result actual.err
'
test_expect_success "'--recurse-submodules=on-demand' stops when no new submodule commits are found in the superproject (and ignores config)" '
- add_upstream_commit &&
- head1=$(git rev-parse --short HEAD) &&
+ add_submodule_commits &&
echo a >> file &&
git add file &&
git commit -m "new file" &&
- head2=$(git rev-parse --short HEAD) &&
- echo "From $pwd/." > expect.err.file &&
- echo " $head1..$head2 super -> origin/super" >> expect.err.file &&
+ new_head=$(git rev-parse --short HEAD) &&
+ write_expected_super $new_head &&
+ rm expect.err.sub &&
+ rm expect.err.deep &&
(
cd downstream &&
git fetch --recurse-submodules=on-demand >../actual.out 2>../actual.err
) &&
test_must_be_empty actual.out &&
- test_cmp expect.err.file actual.err
+ verify_fetch_result actual.err
'
test_expect_success "'fetch.recurseSubmodules=on-demand' overrides global config" '
@@ -417,15 +598,13 @@ test_expect_success "'fetch.recurseSubmodules=on-demand' overrides global config
cd downstream &&
git fetch --recurse-submodules
) &&
- add_upstream_commit &&
+ add_submodule_commits &&
git config --global fetch.recurseSubmodules false &&
- head1=$(git rev-parse --short HEAD) &&
git add submodule &&
git commit -m "new submodule" &&
- head2=$(git rev-parse --short HEAD) &&
- echo "From $pwd/." > expect.err.2 &&
- echo " $head1..$head2 super -> origin/super" >>expect.err.2 &&
- head -3 expect.err >> expect.err.2 &&
+ new_head=$(git rev-parse --short HEAD) &&
+ write_expected_super $new_head &&
+ rm expect.err.deep &&
(
cd downstream &&
git config fetch.recurseSubmodules on-demand &&
@@ -437,7 +616,7 @@ test_expect_success "'fetch.recurseSubmodules=on-demand' overrides global config
git config --unset fetch.recurseSubmodules
) &&
test_must_be_empty actual.out &&
- test_cmp expect.err.2 actual.err
+ verify_fetch_result actual.err
'
test_expect_success "'submodule.<sub>.fetchRecurseSubmodules=on-demand' overrides fetch.recurseSubmodules" '
@@ -445,15 +624,13 @@ test_expect_success "'submodule.<sub>.fetchRecurseSubmodules=on-demand' override
cd downstream &&
git fetch --recurse-submodules
) &&
- add_upstream_commit &&
+ add_submodule_commits &&
git config fetch.recurseSubmodules false &&
- head1=$(git rev-parse --short HEAD) &&
git add submodule &&
git commit -m "new submodule" &&
- head2=$(git rev-parse --short HEAD) &&
- echo "From $pwd/." > expect.err.2 &&
- echo " $head1..$head2 super -> origin/super" >>expect.err.2 &&
- head -3 expect.err >> expect.err.2 &&
+ new_head=$(git rev-parse --short HEAD) &&
+ write_expected_super $new_head &&
+ rm expect.err.deep &&
(
cd downstream &&
git config submodule.submodule.fetchRecurseSubmodules on-demand &&
@@ -465,7 +642,7 @@ test_expect_success "'submodule.<sub>.fetchRecurseSubmodules=on-demand' override
git config --unset submodule.submodule.fetchRecurseSubmodules
) &&
test_must_be_empty actual.out &&
- test_cmp expect.err.2 actual.err
+ verify_fetch_result actual.err
'
test_expect_success "don't fetch submodule when newly recorded commits are already present" '
@@ -473,18 +650,19 @@ test_expect_success "don't fetch submodule when newly recorded commits are alrea
cd submodule &&
git checkout -q HEAD^^
) &&
- head1=$(git rev-parse --short HEAD) &&
git add submodule &&
git commit -m "submodule rewound" &&
- head2=$(git rev-parse --short HEAD) &&
- echo "From $pwd/." > expect.err &&
- echo " $head1..$head2 super -> origin/super" >> expect.err &&
+ new_head=$(git rev-parse --short HEAD) &&
+ write_expected_super $new_head &&
+ rm expect.err.sub &&
+ # This file does not exist, but rm -f for readability
+ rm -f expect.err.deep &&
(
cd downstream &&
git fetch >../actual.out 2>../actual.err
) &&
test_must_be_empty actual.out &&
- test_cmp expect.err actual.err &&
+ verify_fetch_result actual.err &&
(
cd submodule &&
git checkout -q sub
@@ -496,15 +674,13 @@ test_expect_success "'fetch.recurseSubmodules=on-demand' works also without .git
cd downstream &&
git fetch --recurse-submodules
) &&
- add_upstream_commit &&
- head1=$(git rev-parse --short HEAD) &&
+ add_submodule_commits &&
git add submodule &&
git rm .gitmodules &&
git commit -m "new submodule without .gitmodules" &&
- head2=$(git rev-parse --short HEAD) &&
- echo "From $pwd/." >expect.err.2 &&
- echo " $head1..$head2 super -> origin/super" >>expect.err.2 &&
- head -3 expect.err >>expect.err.2 &&
+ new_head=$(git rev-parse --short HEAD) &&
+ write_expected_super $new_head &&
+ rm expect.err.deep &&
(
cd downstream &&
rm .gitmodules &&
@@ -520,7 +696,7 @@ test_expect_success "'fetch.recurseSubmodules=on-demand' works also without .git
git reset --hard
) &&
test_must_be_empty actual.out &&
- test_cmp expect.err.2 actual.err &&
+ verify_fetch_result actual.err &&
git checkout HEAD^ -- .gitmodules &&
git add .gitmodules &&
git commit -m "new submodule restored .gitmodules"
@@ -842,4 +1018,111 @@ test_expect_success 'recursive fetch after deinit a submodule' '
test_cmp expect actual
'
+test_expect_success 'setup repo with upstreams that share a submodule name' '
+ mkdir same-name-1 &&
+ (
+ cd same-name-1 &&
+ git init -b main &&
+ test_commit --no-tag a
+ ) &&
+ git clone same-name-1 same-name-2 &&
+ # same-name-1 and same-name-2 both add a submodule with the
+ # name "submodule"
+ (
+ cd same-name-1 &&
+ mkdir submodule &&
+ git -C submodule init -b main &&
+ test_commit -C submodule --no-tag a1 &&
+ git submodule add "$pwd/same-name-1/submodule" &&
+ git add submodule &&
+ git commit -m "super-a1"
+ ) &&
+ (
+ cd same-name-2 &&
+ mkdir submodule &&
+ git -C submodule init -b main &&
+ test_commit -C submodule --no-tag a2 &&
+ git submodule add "$pwd/same-name-2/submodule" &&
+ git add submodule &&
+ git commit -m "super-a2"
+ ) &&
+ git clone same-name-1 -o same-name-1 same-name-downstream &&
+ (
+ cd same-name-downstream &&
+ git remote add same-name-2 ../same-name-2 &&
+ git fetch --all &&
+ # init downstream with same-name-1
+ git submodule update --init
+ )
+'
+
+test_expect_success 'fetch --recurse-submodules updates name-conflicted, populated submodule' '
+ test_when_finished "git -C same-name-downstream checkout main" &&
+ (
+ cd same-name-1 &&
+ test_commit -C submodule --no-tag b1 &&
+ git add submodule &&
+ git commit -m "super-b1"
+ ) &&
+ (
+ cd same-name-2 &&
+ test_commit -C submodule --no-tag b2 &&
+ git add submodule &&
+ git commit -m "super-b2"
+ ) &&
+ (
+ cd same-name-downstream &&
+ # even though the .gitmodules is correct, we cannot
+ # fetch from same-name-2
+ git checkout same-name-2/main &&
+ git fetch --recurse-submodules same-name-1 &&
+ test_must_fail git fetch --recurse-submodules same-name-2
+ ) &&
+ super_head1=$(git -C same-name-1 rev-parse HEAD) &&
+ git -C same-name-downstream cat-file -e $super_head1 &&
+
+ super_head2=$(git -C same-name-2 rev-parse HEAD) &&
+ git -C same-name-downstream cat-file -e $super_head2 &&
+
+ sub_head1=$(git -C same-name-1/submodule rev-parse HEAD) &&
+ git -C same-name-downstream/submodule cat-file -e $sub_head1 &&
+
+ sub_head2=$(git -C same-name-2/submodule rev-parse HEAD) &&
+ test_must_fail git -C same-name-downstream/submodule cat-file -e $sub_head2
+'
+
+test_expect_success 'fetch --recurse-submodules updates name-conflicted, unpopulated submodule' '
+ (
+ cd same-name-1 &&
+ test_commit -C submodule --no-tag c1 &&
+ git add submodule &&
+ git commit -m "super-c1"
+ ) &&
+ (
+ cd same-name-2 &&
+ test_commit -C submodule --no-tag c2 &&
+ git add submodule &&
+ git commit -m "super-c2"
+ ) &&
+ (
+ cd same-name-downstream &&
+ git checkout main &&
+ git rm .gitmodules &&
+ git rm submodule &&
+ git commit -m "no submodules" &&
+ git fetch --recurse-submodules same-name-1
+ ) &&
+ head1=$(git -C same-name-1/submodule rev-parse HEAD) &&
+ head2=$(git -C same-name-2/submodule rev-parse HEAD) &&
+ (
+ cd same-name-downstream/.git/modules/submodule &&
+ # The submodule has core.worktree pointing to the "git
+ # rm"-ed directory, overwrite the invalid value. See
+ # comment in get_fetch_task_from_changed() for more
+ # information.
+ git --work-tree=. cat-file -e $head1 &&
+ test_must_fail git --work-tree=. cat-file -e $head2
+ )
+'
+
test_done
diff --git a/t/t5534-push-signed.sh b/t/t5534-push-signed.sh
index 24d374adba..7c0a148e73 100755
--- a/t/t5534-push-signed.sh
+++ b/t/t5534-push-signed.sh
@@ -35,8 +35,7 @@ test_expect_success setup '
test_expect_success 'unsigned push does not send push certificate' '
prepare_dst &&
- mkdir -p dst/.git/hooks &&
- write_script dst/.git/hooks/post-receive <<-\EOF &&
+ test_hook -C dst post-receive <<-\EOF &&
# discard the update list
cat >/dev/null
# record the push certificate
@@ -52,8 +51,7 @@ test_expect_success 'unsigned push does not send push certificate' '
test_expect_success 'talking with a receiver without push certificate support' '
prepare_dst &&
- mkdir -p dst/.git/hooks &&
- write_script dst/.git/hooks/post-receive <<-\EOF &&
+ test_hook -C dst post-receive <<-\EOF &&
# discard the update list
cat >/dev/null
# record the push certificate
@@ -69,22 +67,19 @@ test_expect_success 'talking with a receiver without push certificate support' '
test_expect_success 'push --signed fails with a receiver without push certificate support' '
prepare_dst &&
- mkdir -p dst/.git/hooks &&
test_must_fail git push --signed dst noop ff +noff 2>err &&
test_i18ngrep "the receiving end does not support" err
'
test_expect_success 'push --signed=1 is accepted' '
prepare_dst &&
- mkdir -p dst/.git/hooks &&
test_must_fail git push --signed=1 dst noop ff +noff 2>err &&
test_i18ngrep "the receiving end does not support" err
'
test_expect_success GPG 'no certificate for a signed push with no update' '
prepare_dst &&
- mkdir -p dst/.git/hooks &&
- write_script dst/.git/hooks/post-receive <<-\EOF &&
+ test_hook -C dst post-receive <<-\EOF &&
if test -n "${GIT_PUSH_CERT-}"
then
git cat-file blob $GIT_PUSH_CERT >../push-cert
@@ -96,9 +91,8 @@ test_expect_success GPG 'no certificate for a signed push with no update' '
test_expect_success GPG 'signed push sends push certificate' '
prepare_dst &&
- mkdir -p dst/.git/hooks &&
git -C dst config receive.certnonceseed sekrit &&
- write_script dst/.git/hooks/post-receive <<-\EOF &&
+ test_hook -C dst post-receive <<-\EOF &&
# discard the update list
cat >/dev/null
# record the push certificate
@@ -139,10 +133,9 @@ test_expect_success GPG 'signed push sends push certificate' '
test_expect_success GPGSSH 'ssh signed push sends push certificate' '
prepare_dst &&
- mkdir -p dst/.git/hooks &&
git -C dst config gpg.ssh.allowedSignersFile "${GPGSSH_ALLOWED_SIGNERS}" &&
git -C dst config receive.certnonceseed sekrit &&
- write_script dst/.git/hooks/post-receive <<-\EOF &&
+ test_hook -C dst post-receive <<-\EOF &&
# discard the update list
cat >/dev/null
# record the push certificate
@@ -223,9 +216,8 @@ test_expect_success GPG 'inconsistent push options in signed push not allowed' '
test_expect_success GPG 'fail without key and heed user.signingkey' '
prepare_dst &&
- mkdir -p dst/.git/hooks &&
git -C dst config receive.certnonceseed sekrit &&
- write_script dst/.git/hooks/post-receive <<-\EOF &&
+ test_hook -C dst post-receive <<-\EOF &&
# discard the update list
cat >/dev/null
# record the push certificate
@@ -273,9 +265,8 @@ test_expect_success GPG 'fail without key and heed user.signingkey' '
test_expect_success GPGSM 'fail without key and heed user.signingkey x509' '
test_config gpg.format x509 &&
prepare_dst &&
- mkdir -p dst/.git/hooks &&
git -C dst config receive.certnonceseed sekrit &&
- write_script dst/.git/hooks/post-receive <<-\EOF &&
+ test_hook -C dst post-receive <<-\EOF &&
# discard the update list
cat >/dev/null
# record the push certificate
@@ -326,10 +317,9 @@ test_expect_success GPGSM 'fail without key and heed user.signingkey x509' '
test_expect_success GPGSSH 'fail without key and heed user.signingkey ssh' '
test_config gpg.format ssh &&
prepare_dst &&
- mkdir -p dst/.git/hooks &&
git -C dst config gpg.ssh.allowedSignersFile "${GPGSSH_ALLOWED_SIGNERS}" &&
git -C dst config receive.certnonceseed sekrit &&
- write_script dst/.git/hooks/post-receive <<-\EOF &&
+ test_hook -C dst post-receive <<-\EOF &&
# discard the update list
cat >/dev/null
# record the push certificate
diff --git a/t/t5537-fetch-shallow.sh b/t/t5537-fetch-shallow.sh
index 11d5ea54a9..92948de7a0 100755
--- a/t/t5537-fetch-shallow.sh
+++ b/t/t5537-fetch-shallow.sh
@@ -161,6 +161,15 @@ test_expect_success 'fetch --update-shallow' '
)
'
+test_expect_success 'fetch --update-shallow into a repo with submodules' '
+ git init a-submodule &&
+ test_commit -C a-submodule foo &&
+ git init repo-with-sub &&
+ git -C repo-with-sub submodule add ../a-submodule a-submodule &&
+ git -C repo-with-sub commit -m "added submodule" &&
+ git -C repo-with-sub fetch --update-shallow ../shallow/.git refs/heads/*:refs/remotes/shallow/*
+'
+
test_expect_success 'fetch --update-shallow (with fetch.writeCommitGraph)' '
(
cd shallow &&
diff --git a/t/t5540-http-push-webdav.sh b/t/t5540-http-push-webdav.sh
index b0dbacf0b9..37db3dec0c 100755
--- a/t/t5540-http-push-webdav.sh
+++ b/t/t5540-http-push-webdav.sh
@@ -42,7 +42,9 @@ test_expect_success 'setup remote repository' '
git clone --bare test_repo test_repo.git &&
cd test_repo.git &&
git --bare update-server-info &&
- mv hooks/post-update.sample hooks/post-update &&
+ test_hook --setup post-update <<-\EOF &&
+ exec git update-server-info
+ EOF
ORIG_HEAD=$(git rev-parse --verify HEAD) &&
cd - &&
mv test_repo.git "$HTTPD_DOCUMENT_ROOT_PATH"
diff --git a/t/t5541-http-push-smart.sh b/t/t5541-http-push-smart.sh
index 8ca50f8b18..2f09ff4fac 100755
--- a/t/t5541-http-push-smart.sh
+++ b/t/t5541-http-push-smart.sh
@@ -96,18 +96,18 @@ test_expect_success 'create and delete remote branch' '
test_must_fail git show-ref --verify refs/remotes/origin/dev
'
-cat >"$HTTPD_DOCUMENT_ROOT_PATH/test_repo.git/hooks/update" <<EOF
-#!/bin/sh
-exit 1
-EOF
-chmod a+x "$HTTPD_DOCUMENT_ROOT_PATH/test_repo.git/hooks/update"
+test_expect_success 'setup rejected update hook' '
+ test_hook --setup -C "$HTTPD_DOCUMENT_ROOT_PATH/test_repo.git" update <<-\EOF &&
+ exit 1
+ EOF
-cat >exp <<EOF
-remote: error: hook declined to update refs/heads/dev2
-To http://127.0.0.1:$LIB_HTTPD_PORT/smart/test_repo.git
- ! [remote rejected] dev2 -> dev2 (hook declined)
-error: failed to push some refs to 'http://127.0.0.1:$LIB_HTTPD_PORT/smart/test_repo.git'
-EOF
+ cat >exp <<-EOF
+ remote: error: hook declined to update refs/heads/dev2
+ To http://127.0.0.1:$LIB_HTTPD_PORT/smart/test_repo.git
+ ! [remote rejected] dev2 -> dev2 (hook declined)
+ error: failed to push some refs to '\''http://127.0.0.1:$LIB_HTTPD_PORT/smart/test_repo.git'\''
+ EOF
+'
test_expect_success 'rejected update prints status' '
cd "$ROOT_PATH"/test_repo_clone &&
@@ -419,10 +419,7 @@ test_expect_success CMDLINE_LIMIT 'push 2000 tags over http' '
'
test_expect_success GPG 'push with post-receive to inspect certificate' '
- (
- cd "$HTTPD_DOCUMENT_ROOT_PATH"/test_repo.git &&
- mkdir -p hooks &&
- write_script hooks/post-receive <<-\EOF &&
+ test_hook -C "$HTTPD_DOCUMENT_ROOT_PATH"/test_repo.git post-receive <<-\EOF &&
# discard the update list
cat >/dev/null
# record the push certificate
@@ -437,8 +434,9 @@ test_expect_success GPG 'push with post-receive to inspect certificate' '
NONCE_STATUS=${GIT_PUSH_CERT_NONCE_STATUS-nononcestatus}
NONCE=${GIT_PUSH_CERT_NONCE-nononce}
E_O_F
- EOF
-
+ EOF
+ (
+ cd "$HTTPD_DOCUMENT_ROOT_PATH"/test_repo.git &&
git config receive.certnonceseed sekrit &&
git config receive.certnonceslop 30
) &&
diff --git a/t/t5543-atomic-push.sh b/t/t5543-atomic-push.sh
index bfee461861..70431122a4 100755
--- a/t/t5543-atomic-push.sh
+++ b/t/t5543-atomic-push.sh
@@ -162,16 +162,10 @@ test_expect_success 'atomic push obeys update hook preventing a branch to be pus
test_commit two &&
git push --mirror up
) &&
- (
- cd upstream &&
- HOOKDIR="$(git rev-parse --git-dir)/hooks" &&
- HOOK="$HOOKDIR/update" &&
- mkdir -p "$HOOKDIR" &&
- write_script "$HOOK" <<-\EOF
- # only allow update to main from now on
- test "$1" = "refs/heads/main"
- EOF
- ) &&
+ test_hook -C upstream update <<-\EOF &&
+ # only allow update to main from now on
+ test "$1" = "refs/heads/main"
+ EOF
(
cd workbench &&
git checkout main &&
diff --git a/t/t5547-push-quarantine.sh b/t/t5547-push-quarantine.sh
index faaa51ccc5..1876fb34e5 100755
--- a/t/t5547-push-quarantine.sh
+++ b/t/t5547-push-quarantine.sh
@@ -5,7 +5,7 @@ test_description='check quarantine of objects during push'
test_expect_success 'create picky dest repo' '
git init --bare dest.git &&
- write_script dest.git/hooks/pre-receive <<-\EOF
+ test_hook --setup -C dest.git pre-receive <<-\EOF
while read old new ref; do
test "$(git log -1 --format=%s $new)" = reject && exit 1
done
@@ -60,7 +60,7 @@ test_expect_success 'push to repo path with path separator (colon)' '
test_expect_success 'updating a ref from quarantine is forbidden' '
git init --bare update.git &&
- write_script update.git/hooks/pre-receive <<-\EOF &&
+ test_hook -C update.git pre-receive <<-\EOF &&
read old new refname
git update-ref refs/heads/unrelated $new
exit 1
diff --git a/t/t5548-push-porcelain.sh b/t/t5548-push-porcelain.sh
index f11ff57e54..6282728eaf 100755
--- a/t/t5548-push-porcelain.sh
+++ b/t/t5548-push-porcelain.sh
@@ -168,7 +168,7 @@ run_git_push_porcelain_output_test() {
'
test_expect_success "prepare pre-receive hook ($PROTOCOL)" '
- write_script "$upstream/hooks/pre-receive" <<-EOF
+ test_hook --setup -C "$upstream" pre-receive <<-EOF
exit 1
EOF
'
diff --git a/t/t5550-http-fetch-dumb.sh b/t/t5550-http-fetch-dumb.sh
index 259203926a..f0d9cd584d 100755
--- a/t/t5550-http-fetch-dumb.sh
+++ b/t/t5550-http-fetch-dumb.sh
@@ -25,16 +25,17 @@ test_expect_success 'setup repository' '
git commit -m two
'
+setup_post_update_server_info_hook () {
+ test_hook --setup -C "$1" post-update <<-\EOF &&
+ exec git update-server-info
+ EOF
+ git -C "$1" update-server-info
+}
+
test_expect_success 'create http-accessible bare repository with loose objects' '
cp -R .git "$HTTPD_DOCUMENT_ROOT_PATH/repo.git" &&
- (cd "$HTTPD_DOCUMENT_ROOT_PATH/repo.git" &&
- git config core.bare true &&
- mkdir -p hooks &&
- write_script "hooks/post-update" <<-\EOF &&
- exec git update-server-info
- EOF
- hooks/post-update
- ) &&
+ git -C "$HTTPD_DOCUMENT_ROOT_PATH/repo.git" config core.bare true &&
+ setup_post_update_server_info_hook "$HTTPD_DOCUMENT_ROOT_PATH/repo.git" &&
git remote add public "$HTTPD_DOCUMENT_ROOT_PATH/repo.git" &&
git push public main:main
'
@@ -62,13 +63,7 @@ test_expect_success 'create password-protected repository' '
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
- )
+ setup_post_update_server_info_hook "$HTTPD_DOCUMENT_ROOT_PATH/empty.git"
'
test_expect_success 'empty dumb HTTP repository has default hash algorithm' '
diff --git a/t/t5571-pre-push-hook.sh b/t/t5571-pre-push-hook.sh
index 660f876eec..a11b20e378 100755
--- a/t/t5571-pre-push-hook.sh
+++ b/t/t5571-pre-push-hook.sh
@@ -6,57 +6,66 @@ export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME
. ./test-lib.sh
-# Setup hook that always succeeds
-HOOKDIR="$(git rev-parse --git-dir)/hooks"
-HOOK="$HOOKDIR/pre-push"
-mkdir -p "$HOOKDIR"
-write_script "$HOOK" <<EOF
-cat >/dev/null
-exit 0
-EOF
-
test_expect_success 'setup' '
+ test_hook pre-push <<-\EOF &&
+ cat >actual
+ EOF
+
git config push.default upstream &&
git init --bare repo1 &&
git remote add parent1 repo1 &&
test_commit one &&
- git push parent1 HEAD:foreign
+ cat >expect <<-EOF &&
+ HEAD $(git rev-parse HEAD) refs/heads/foreign $(test_oid zero)
+ EOF
+
+ test_when_finished "rm actual" &&
+ git push parent1 HEAD:foreign &&
+ test_cmp expect actual
'
-write_script "$HOOK" <<EOF
-cat >/dev/null
-exit 1
-EOF
COMMIT1="$(git rev-parse HEAD)"
export COMMIT1
test_expect_success 'push with failing hook' '
+ test_hook pre-push <<-\EOF &&
+ cat >actual &&
+ exit 1
+ EOF
+
test_commit two &&
- test_must_fail git push parent1 HEAD
+ cat >expect <<-EOF &&
+ HEAD $(git rev-parse HEAD) refs/heads/main $(test_oid zero)
+ EOF
+
+ test_when_finished "rm actual" &&
+ test_must_fail git push parent1 HEAD &&
+ test_cmp expect actual
'
test_expect_success '--no-verify bypasses hook' '
- git push --no-verify parent1 HEAD
+ git push --no-verify parent1 HEAD &&
+ test_path_is_missing actual
'
COMMIT2="$(git rev-parse HEAD)"
export COMMIT2
-write_script "$HOOK" <<'EOF'
-echo "$1" >actual
-echo "$2" >>actual
-cat >>actual
-EOF
-
-cat >expected <<EOF
-parent1
-repo1
-refs/heads/main $COMMIT2 refs/heads/foreign $COMMIT1
-EOF
-
test_expect_success 'push with hook' '
+ test_hook --setup pre-push <<-\EOF &&
+ echo "$1" >actual
+ echo "$2" >>actual
+ cat >>actual
+ EOF
+
+ cat >expect <<-EOF &&
+ parent1
+ repo1
+ refs/heads/main $COMMIT2 refs/heads/foreign $COMMIT1
+ EOF
+
git push parent1 main:foreign &&
- diff expected actual
+ test_cmp expect actual
'
test_expect_success 'add a branch' '
@@ -67,49 +76,48 @@ test_expect_success 'add a branch' '
COMMIT3="$(git rev-parse HEAD)"
export COMMIT3
-cat >expected <<EOF
-parent1
-repo1
-refs/heads/other $COMMIT3 refs/heads/foreign $COMMIT2
-EOF
-
test_expect_success 'push to default' '
+ cat >expect <<-EOF &&
+ parent1
+ repo1
+ refs/heads/other $COMMIT3 refs/heads/foreign $COMMIT2
+ EOF
git push &&
- diff expected actual
+ test_cmp expect actual
'
-cat >expected <<EOF
-parent1
-repo1
-refs/tags/one $COMMIT1 refs/tags/tag1 $ZERO_OID
-HEAD~ $COMMIT2 refs/heads/prev $ZERO_OID
-EOF
-
test_expect_success 'push non-branches' '
+ cat >expect <<-EOF &&
+ parent1
+ repo1
+ refs/tags/one $COMMIT1 refs/tags/tag1 $ZERO_OID
+ HEAD~ $COMMIT2 refs/heads/prev $ZERO_OID
+ EOF
+
git push parent1 one:tag1 HEAD~:refs/heads/prev &&
- diff expected actual
+ test_cmp expect actual
'
-cat >expected <<EOF
-parent1
-repo1
-(delete) $ZERO_OID refs/heads/prev $COMMIT2
-EOF
-
test_expect_success 'push delete' '
+ cat >expect <<-EOF &&
+ parent1
+ repo1
+ (delete) $ZERO_OID refs/heads/prev $COMMIT2
+ EOF
+
git push parent1 :prev &&
- diff expected actual
+ test_cmp expect actual
'
-cat >expected <<EOF
-repo1
-repo1
-HEAD $COMMIT3 refs/heads/other $ZERO_OID
-EOF
-
test_expect_success 'push to URL' '
+ cat >expect <<-EOF &&
+ repo1
+ repo1
+ HEAD $COMMIT3 refs/heads/other $ZERO_OID
+ EOF
+
git push repo1 HEAD &&
- diff expected actual
+ test_cmp expect actual
'
test_expect_success 'set up many-ref tests' '
@@ -124,7 +132,9 @@ test_expect_success 'set up many-ref tests' '
'
test_expect_success 'sigpipe does not cause pre-push hook failure' '
- echo "exit 0" | write_script "$HOOK" &&
+ test_hook --clobber pre-push <<-\EOF &&
+ exit 0
+ EOF
git push parent1 "refs/heads/b/*:refs/heads/b/*"
'
diff --git a/t/t5572-pull-submodule.sh b/t/t5572-pull-submodule.sh
index fa6b4cca65..a35396fadf 100755
--- a/t/t5572-pull-submodule.sh
+++ b/t/t5572-pull-submodule.sh
@@ -107,6 +107,32 @@ test_expect_success " --[no-]recurse-submodule and submodule.recurse" '
test_path_is_file super/sub/merge_strategy_4.t
'
+test_expect_success "fetch.recurseSubmodules option triggers recursive fetch (but not recursive update)" '
+ test_commit -C child merge_strategy_5 &&
+ # Omit the parent commit, otherwise this passes with the
+ # default "pull" behavior.
+
+ git -C super -c fetch.recursesubmodules=true pull --no-rebase &&
+ # Check that the submodule commit was fetched
+ sub_oid=$(git -C child rev-parse HEAD) &&
+ git -C super/sub cat-file -e $sub_oid &&
+ # Check that the submodule worktree did not update
+ ! test_path_is_file super/sub/merge_strategy_5.t
+'
+
+test_expect_success "fetch.recurseSubmodules takes precedence over submodule.recurse" '
+ test_commit -C child merge_strategy_6 &&
+ # Omit the parent commit, otherwise this passes with the
+ # default "pull" behavior.
+
+ git -C super -c submodule.recurse=false -c fetch.recursesubmodules=true pull --no-rebase &&
+ # Check that the submodule commit was fetched
+ sub_oid=$(git -C child rev-parse HEAD) &&
+ git -C super/sub cat-file -e $sub_oid &&
+ # Check that the submodule worktree did not update
+ ! test_path_is_file super/sub/merge_strategy_6.t
+'
+
test_expect_success 'pull --rebase --recurse-submodules (remote superproject submodule changes, local submodule changes)' '
# This tests the following scenario :
# - local submodule has new commits
diff --git a/t/t5601-clone.sh b/t/t5601-clone.sh
index 83c24fc97a..4a61f2c901 100755
--- a/t/t5601-clone.sh
+++ b/t/t5601-clone.sh
@@ -79,12 +79,10 @@ test_expect_success 'clone from hooks' '
cd .. &&
git init r1 &&
cd r1 &&
- cat >.git/hooks/pre-commit <<-\EOF &&
- #!/bin/sh
+ test_hook pre-commit <<-\EOF &&
git clone ../r0 ../r2
exit 1
EOF
- chmod u+x .git/hooks/pre-commit &&
: >file &&
git add file &&
test_must_fail git commit -m invoke-hook &&
diff --git a/t/t5605-clone-local.sh b/t/t5605-clone-local.sh
index 7d63365f93..21ab619283 100755
--- a/t/t5605-clone-local.sh
+++ b/t/t5605-clone-local.sh
@@ -141,4 +141,13 @@ test_expect_success 'cloning locally respects "-u" for fetching refs' '
test_must_fail git clone --bare -u false a should_not_work.git
'
+test_expect_success 'local clone from repo with corrupt refs fails gracefully' '
+ git init corrupt &&
+ test_commit -C corrupt one &&
+ echo a >corrupt/.git/refs/heads/topic &&
+
+ test_must_fail git clone corrupt working 2>err &&
+ grep "has a null OID" err
+'
+
test_done
diff --git a/t/t5616-partial-clone.sh b/t/t5616-partial-clone.sh
index 34469b6ac1..4a3778d04a 100755
--- a/t/t5616-partial-clone.sh
+++ b/t/t5616-partial-clone.sh
@@ -166,6 +166,85 @@ test_expect_success 'manual prefetch of missing objects' '
test_line_count = 0 observed.oids
'
+# create new commits in "src" repo to establish a history on file.4.txt
+# and push to "srv.bare".
+test_expect_success 'push new commits to server for file.4.txt' '
+ for x in a b c d e f
+ do
+ echo "Mod file.4.txt $x" >src/file.4.txt &&
+ if list_contains "a,b" "$x"; then
+ printf "%10000s" X >>src/file.4.txt
+ fi &&
+ if list_contains "c,d" "$x"; then
+ printf "%20000s" X >>src/file.4.txt
+ fi &&
+ git -C src add file.4.txt &&
+ git -C src commit -m "mod $x" || return 1
+ done &&
+ git -C src push -u srv main
+'
+
+# Do partial fetch to fetch smaller files; then verify that without --refetch
+# applying a new filter does not refetch missing large objects. Then use
+# --refetch to apply the new filter on existing commits. Test it under both
+# protocol v2 & v0.
+test_expect_success 'apply a different filter using --refetch' '
+ git -C pc1 fetch --filter=blob:limit=999 origin &&
+ git -C pc1 rev-list --quiet --objects --missing=print \
+ main..origin/main >observed &&
+ test_line_count = 4 observed &&
+
+ git -C pc1 fetch --filter=blob:limit=19999 --refetch origin &&
+ git -C pc1 rev-list --quiet --objects --missing=print \
+ main..origin/main >observed &&
+ test_line_count = 2 observed &&
+
+ git -c protocol.version=0 -C pc1 fetch --filter=blob:limit=29999 \
+ --refetch origin &&
+ git -C pc1 rev-list --quiet --objects --missing=print \
+ main..origin/main >observed &&
+ test_line_count = 0 observed
+'
+
+test_expect_success 'fetch --refetch works with a shallow clone' '
+ git clone --no-checkout --depth=1 --filter=blob:none "file://$(pwd)/srv.bare" pc1s &&
+ git -C pc1s rev-list --objects --missing=print HEAD >observed &&
+ test_line_count = 6 observed &&
+
+ GIT_TRACE=1 git -C pc1s fetch --filter=blob:limit=999 --refetch origin &&
+ git -C pc1s rev-list --objects --missing=print HEAD >observed &&
+ test_line_count = 6 observed
+'
+
+test_expect_success 'fetch --refetch triggers repacking' '
+ GIT_TRACE2_CONFIG_PARAMS=gc.autoPackLimit,maintenance.incremental-repack.auto &&
+ export GIT_TRACE2_CONFIG_PARAMS &&
+
+ GIT_TRACE2_EVENT="$PWD/trace1.event" \
+ git -C pc1 fetch --refetch origin &&
+ test_subcommand git maintenance run --auto --no-quiet <trace1.event &&
+ grep \"param\":\"gc.autopacklimit\",\"value\":\"1\" trace1.event &&
+ grep \"param\":\"maintenance.incremental-repack.auto\",\"value\":\"-1\" trace1.event &&
+
+ GIT_TRACE2_EVENT="$PWD/trace2.event" \
+ git -c protocol.version=0 \
+ -c gc.autoPackLimit=0 \
+ -c maintenance.incremental-repack.auto=1234 \
+ -C pc1 fetch --refetch origin &&
+ test_subcommand git maintenance run --auto --no-quiet <trace2.event &&
+ grep \"param\":\"gc.autopacklimit\",\"value\":\"0\" trace2.event &&
+ grep \"param\":\"maintenance.incremental-repack.auto\",\"value\":\"-1\" trace2.event &&
+
+ GIT_TRACE2_EVENT="$PWD/trace3.event" \
+ git -c protocol.version=0 \
+ -c gc.autoPackLimit=1234 \
+ -c maintenance.incremental-repack.auto=0 \
+ -C pc1 fetch --refetch origin &&
+ test_subcommand git maintenance run --auto --no-quiet <trace3.event &&
+ grep \"param\":\"gc.autopacklimit\",\"value\":\"1\" trace3.event &&
+ grep \"param\":\"maintenance.incremental-repack.auto\",\"value\":\"0\" trace3.event
+'
+
test_expect_success 'partial clone with transfer.fsckobjects=1 works with submodules' '
test_create_repo submodule &&
test_commit -C submodule mycommit &&
@@ -225,7 +304,7 @@ test_expect_success 'use fsck before and after manually fetching a missing subtr
# Auto-fetch all remaining trees and blobs with --missing=error
git -C dst rev-list --missing=error --objects main >fetched_objects &&
- test_line_count = 70 fetched_objects &&
+ test_line_count = 88 fetched_objects &&
awk -f print_1.awk fetched_objects |
xargs -n1 git -C dst cat-file -t >fetched_types &&
diff --git a/t/t5617-clone-submodules-remote.sh b/t/t5617-clone-submodules-remote.sh
index e2dbb4eaba..ca8f80083a 100755
--- a/t/t5617-clone-submodules-remote.sh
+++ b/t/t5617-clone-submodules-remote.sh
@@ -28,6 +28,13 @@ test_expect_success 'setup' '
)
'
+# bare clone giving "srv.bare" for use as our server.
+test_expect_success 'setup bare clone for server' '
+ git clone --bare "file://$(pwd)/." srv.bare &&
+ git -C srv.bare config --local uploadpack.allowfilter 1 &&
+ git -C srv.bare config --local uploadpack.allowanysha1inwant 1
+'
+
test_expect_success 'clone with --no-remote-submodules' '
test_when_finished "rm -rf super_clone" &&
git clone --recurse-submodules --no-remote-submodules "file://$pwd/." super_clone &&
@@ -65,4 +72,38 @@ test_expect_success 'clone with --single-branch' '
)
'
+# do basic partial clone from "srv.bare"
+# confirm partial clone was registered in the local config for super and sub.
+test_expect_success 'clone with --filter' '
+ git clone --recurse-submodules \
+ --filter blob:none --also-filter-submodules \
+ "file://$pwd/srv.bare" super_clone &&
+ test_cmp_config -C super_clone true remote.origin.promisor &&
+ test_cmp_config -C super_clone blob:none remote.origin.partialclonefilter &&
+ test_cmp_config -C super_clone/sub true remote.origin.promisor &&
+ test_cmp_config -C super_clone/sub blob:none remote.origin.partialclonefilter
+'
+
+# check that clone.filterSubmodules works (--also-filter-submodules can be
+# omitted)
+test_expect_success 'filters applied with clone.filterSubmodules' '
+ test_config_global clone.filterSubmodules true &&
+ git clone --recurse-submodules --filter blob:none \
+ "file://$pwd/srv.bare" super_clone2 &&
+ test_cmp_config -C super_clone2 true remote.origin.promisor &&
+ test_cmp_config -C super_clone2 blob:none remote.origin.partialclonefilter &&
+ test_cmp_config -C super_clone2/sub true remote.origin.promisor &&
+ test_cmp_config -C super_clone2/sub blob:none remote.origin.partialclonefilter
+'
+
+test_expect_success '--no-also-filter-submodules overrides clone.filterSubmodules=true' '
+ test_config_global clone.filterSubmodules true &&
+ git clone --recurse-submodules --filter blob:none \
+ --no-also-filter-submodules \
+ "file://$pwd/srv.bare" super_clone3 &&
+ test_cmp_config -C super_clone3 true remote.origin.promisor &&
+ test_cmp_config -C super_clone3 blob:none remote.origin.partialclonefilter &&
+ test_cmp_config -C super_clone3/sub false --default false remote.origin.promisor
+'
+
test_done
diff --git a/t/t5700-protocol-v1.sh b/t/t5700-protocol-v1.sh
index 468bd3e13e..6c8d4c6cf1 100755
--- a/t/t5700-protocol-v1.sh
+++ b/t/t5700-protocol-v1.sh
@@ -149,6 +149,21 @@ test_expect_success 'push with file:// using protocol v1' '
grep "push< version 1" log
'
+test_expect_success 'cloning branchless tagless but not refless remote' '
+ rm -rf server client &&
+
+ git -c init.defaultbranch=main init server &&
+ echo foo >server/foo.txt &&
+ git -C server add foo.txt &&
+ git -C server commit -m "message" &&
+ git -C server update-ref refs/notbranch/alsonottag HEAD &&
+ git -C server checkout --detach &&
+ git -C server branch -D main &&
+ git -C server symbolic-ref HEAD refs/heads/nonexistentbranch &&
+
+ git -c protocol.version=1 clone "file://$(pwd)/server" client
+'
+
# Test protocol v1 with 'ssh://' transport
#
test_expect_success 'setup ssh wrapper' '
diff --git a/t/t5702-protocol-v2.sh b/t/t5702-protocol-v2.sh
index 710f33e2aa..00ce9aec23 100755
--- a/t/t5702-protocol-v2.sh
+++ b/t/t5702-protocol-v2.sh
@@ -619,7 +619,7 @@ test_expect_success 'usage: --negotiate-only without --negotiation-tip' '
setup_negotiate_only "$SERVER" "$URI" &&
cat >err.expect <<-\EOF &&
- fatal: --negotiate-only needs one or more --negotiate-tip=*
+ fatal: --negotiate-only needs one or more --negotiation-tip=*
EOF
test_must_fail git -c protocol.version=2 -C client fetch \
@@ -628,6 +628,18 @@ test_expect_success 'usage: --negotiate-only without --negotiation-tip' '
test_cmp err.expect err.actual
'
+test_expect_success 'usage: --negotiate-only with --recurse-submodules' '
+ cat >err.expect <<-\EOF &&
+ fatal: options '\''--negotiate-only'\'' and '\''--recurse-submodules'\'' cannot be used together
+ EOF
+
+ test_must_fail git -c protocol.version=2 -C client fetch \
+ --negotiate-only \
+ --recurse-submodules \
+ origin 2>err.actual &&
+ test_cmp err.expect err.actual
+'
+
test_expect_success 'file:// --negotiate-only' '
SERVER="server" &&
URI="file://$(pwd)/server" &&
diff --git a/t/t6005-rev-list-count.sh b/t/t6005-rev-list-count.sh
index 86542c650e..e960049f64 100755
--- a/t/t6005-rev-list-count.sh
+++ b/t/t6005-rev-list-count.sh
@@ -2,7 +2,6 @@
test_description='git rev-list --max-count and --skip test'
-TEST_PASSES_SANITIZE_LEAK=true
. ./test-lib.sh
test_expect_success 'setup' '
@@ -14,39 +13,39 @@ test_expect_success 'setup' '
'
test_expect_success 'no options' '
- test $(git rev-list HEAD | wc -l) = 5
+ test_stdout_line_count = 5 git rev-list HEAD
'
test_expect_success '--max-count' '
- test $(git rev-list HEAD --max-count=0 | wc -l) = 0 &&
- test $(git rev-list HEAD --max-count=3 | wc -l) = 3 &&
- test $(git rev-list HEAD --max-count=5 | wc -l) = 5 &&
- test $(git rev-list HEAD --max-count=10 | wc -l) = 5
+ test_stdout_line_count = 0 git rev-list HEAD --max-count=0 &&
+ test_stdout_line_count = 3 git rev-list HEAD --max-count=3 &&
+ test_stdout_line_count = 5 git rev-list HEAD --max-count=5 &&
+ test_stdout_line_count = 5 git rev-list HEAD --max-count=10
'
test_expect_success '--max-count all forms' '
- test $(git rev-list HEAD --max-count=1 | wc -l) = 1 &&
- test $(git rev-list HEAD -1 | wc -l) = 1 &&
- test $(git rev-list HEAD -n1 | wc -l) = 1 &&
- test $(git rev-list HEAD -n 1 | wc -l) = 1
+ test_stdout_line_count = 1 git rev-list HEAD --max-count=1 &&
+ test_stdout_line_count = 1 git rev-list HEAD -1 &&
+ test_stdout_line_count = 1 git rev-list HEAD -n1 &&
+ test_stdout_line_count = 1 git rev-list HEAD -n 1
'
test_expect_success '--skip' '
- test $(git rev-list HEAD --skip=0 | wc -l) = 5 &&
- test $(git rev-list HEAD --skip=3 | wc -l) = 2 &&
- test $(git rev-list HEAD --skip=5 | wc -l) = 0 &&
- test $(git rev-list HEAD --skip=10 | wc -l) = 0
+ test_stdout_line_count = 5 git rev-list HEAD --skip=0 &&
+ test_stdout_line_count = 2 git rev-list HEAD --skip=3 &&
+ test_stdout_line_count = 0 git rev-list HEAD --skip=5 &&
+ test_stdout_line_count = 0 git rev-list HEAD --skip=10
'
test_expect_success '--skip --max-count' '
- test $(git rev-list HEAD --skip=0 --max-count=0 | wc -l) = 0 &&
- test $(git rev-list HEAD --skip=0 --max-count=10 | wc -l) = 5 &&
- test $(git rev-list HEAD --skip=3 --max-count=0 | wc -l) = 0 &&
- test $(git rev-list HEAD --skip=3 --max-count=1 | wc -l) = 1 &&
- test $(git rev-list HEAD --skip=3 --max-count=2 | wc -l) = 2 &&
- test $(git rev-list HEAD --skip=3 --max-count=10 | wc -l) = 2 &&
- test $(git rev-list HEAD --skip=5 --max-count=10 | wc -l) = 0 &&
- test $(git rev-list HEAD --skip=10 --max-count=10 | wc -l) = 0
+ test_stdout_line_count = 0 git rev-list HEAD --skip=0 --max-count=0 &&
+ test_stdout_line_count = 5 git rev-list HEAD --skip=0 --max-count=10 &&
+ test_stdout_line_count = 0 git rev-list HEAD --skip=3 --max-count=0 &&
+ test_stdout_line_count = 1 git rev-list HEAD --skip=3 --max-count=1 &&
+ test_stdout_line_count = 2 git rev-list HEAD --skip=3 --max-count=2 &&
+ test_stdout_line_count = 2 git rev-list HEAD --skip=3 --max-count=10 &&
+ test_stdout_line_count = 0 git rev-list HEAD --skip=5 --max-count=10 &&
+ test_stdout_line_count = 0 git rev-list HEAD --skip=10 --max-count=10
'
test_done
diff --git a/t/t6007-rev-list-cherry-pick-file.sh b/t/t6007-rev-list-cherry-pick-file.sh
index aebe4b69e1..6f3e543977 100755
--- a/t/t6007-rev-list-cherry-pick-file.sh
+++ b/t/t6007-rev-list-cherry-pick-file.sh
@@ -58,7 +58,7 @@ EOF
test_expect_success '--left-right' '
git rev-list --left-right B...C > actual &&
- git name-rev --stdin --name-only --refs="*tags/*" \
+ git name-rev --annotate-stdin --name-only --refs="*tags/*" \
< actual > actual.named &&
test_cmp expect actual.named
'
@@ -78,14 +78,14 @@ EOF
test_expect_success '--cherry-pick bar does not come up empty' '
git rev-list --left-right --cherry-pick B...C -- bar > actual &&
- git name-rev --stdin --name-only --refs="*tags/*" \
+ git name-rev --annotate-stdin --name-only --refs="*tags/*" \
< actual > actual.named &&
test_cmp expect actual.named
'
test_expect_success 'bar does not come up empty' '
git rev-list --left-right B...C -- bar > actual &&
- git name-rev --stdin --name-only --refs="*tags/*" \
+ git name-rev --annotate-stdin --name-only --refs="*tags/*" \
< actual > actual.named &&
test_cmp expect actual.named
'
@@ -97,14 +97,14 @@ EOF
test_expect_success '--cherry-pick bar does not come up empty (II)' '
git rev-list --left-right --cherry-pick F...E -- bar > actual &&
- git name-rev --stdin --name-only --refs="*tags/*" \
+ git name-rev --annotate-stdin --name-only --refs="*tags/*" \
< actual > actual.named &&
test_cmp expect actual.named
'
test_expect_success 'name-rev multiple --refs combine inclusive' '
git rev-list --left-right --cherry-pick F...E -- bar >actual &&
- git name-rev --stdin --name-only --refs="*tags/F" --refs="*tags/E" \
+ git name-rev --annotate-stdin --name-only --refs="*tags/F" --refs="*tags/E" \
<actual >actual.named &&
test_cmp expect actual.named
'
@@ -116,7 +116,7 @@ EOF
test_expect_success 'name-rev --refs excludes non-matched patterns' '
git rev-list --left-right --right-only --cherry-pick F...E -- bar >>expect &&
git rev-list --left-right --cherry-pick F...E -- bar >actual &&
- git name-rev --stdin --name-only --refs="*tags/F" \
+ git name-rev --annotate-stdin --name-only --refs="*tags/F" \
<actual >actual.named &&
test_cmp expect actual.named
'
@@ -128,14 +128,14 @@ EOF
test_expect_success 'name-rev --exclude excludes matched patterns' '
git rev-list --left-right --right-only --cherry-pick F...E -- bar >>expect &&
git rev-list --left-right --cherry-pick F...E -- bar >actual &&
- git name-rev --stdin --name-only --refs="*tags/*" --exclude="*E" \
+ git name-rev --annotate-stdin --name-only --refs="*tags/*" --exclude="*E" \
<actual >actual.named &&
test_cmp expect actual.named
'
test_expect_success 'name-rev --no-refs clears the refs list' '
git rev-list --left-right --cherry-pick F...E -- bar >expect &&
- git name-rev --stdin --name-only --refs="*tags/F" --refs="*tags/E" --no-refs --refs="*tags/G" \
+ git name-rev --annotate-stdin --name-only --refs="*tags/F" --refs="*tags/E" --no-refs --refs="*tags/G" \
<expect >actual &&
test_cmp expect actual
'
@@ -149,7 +149,7 @@ EOF
test_expect_success '--cherry-mark' '
git rev-list --cherry-mark F...E -- bar > actual &&
- git name-rev --stdin --name-only --refs="*tags/*" \
+ git name-rev --annotate-stdin --name-only --refs="*tags/*" \
< actual > actual.named &&
test_cmp expect actual.named
'
@@ -163,7 +163,7 @@ EOF
test_expect_success '--cherry-mark --left-right' '
git rev-list --cherry-mark --left-right F...E -- bar > actual &&
- git name-rev --stdin --name-only --refs="*tags/*" \
+ git name-rev --annotate-stdin --name-only --refs="*tags/*" \
< actual > actual.named &&
test_cmp expect actual.named
'
@@ -174,14 +174,14 @@ EOF
test_expect_success '--cherry-pick --right-only' '
git rev-list --cherry-pick --right-only F...E -- bar > actual &&
- git name-rev --stdin --name-only --refs="*tags/*" \
+ git name-rev --annotate-stdin --name-only --refs="*tags/*" \
< actual > actual.named &&
test_cmp expect actual.named
'
test_expect_success '--cherry-pick --left-only' '
git rev-list --cherry-pick --left-only E...F -- bar > actual &&
- git name-rev --stdin --name-only --refs="*tags/*" \
+ git name-rev --annotate-stdin --name-only --refs="*tags/*" \
< actual > actual.named &&
test_cmp expect actual.named
'
@@ -193,7 +193,7 @@ EOF
test_expect_success '--cherry' '
git rev-list --cherry F...E -- bar > actual &&
- git name-rev --stdin --name-only --refs="*tags/*" \
+ git name-rev --annotate-stdin --name-only --refs="*tags/*" \
< actual > actual.named &&
test_cmp expect actual.named
'
diff --git a/t/t6012-rev-list-simplify.sh b/t/t6012-rev-list-simplify.sh
index 4f7fa8b6c0..de1e87f162 100755
--- a/t/t6012-rev-list-simplify.sh
+++ b/t/t6012-rev-list-simplify.sh
@@ -12,17 +12,18 @@ note () {
}
unnote () {
- git name-rev --tags --stdin | sed -e "s|$OID_REGEX (tags/\([^)]*\)) |\1 |g"
+ test_when_finished "rm -f tmp" &&
+ git name-rev --tags --annotate-stdin >tmp &&
+ sed -e "s|$OID_REGEX (tags/\([^)]*\)) |\1 |g" <tmp
}
#
-# Create a test repo with interesting commit graph:
+# Create a test repo with an interesting commit graph:
#
-# A--B----------G--H--I--K--L
-# \ \ / /
-# \ \ / /
-# C------E---F J
-# \_/
+# A-----B-----G--H--I--K--L
+# \ \ / /
+# \ \ / /
+# C--D--E--F J
#
# The commits are laid out from left-to-right starting with
# the root commit A and terminating at the tip commit L.
@@ -112,8 +113,8 @@ check_outcome () {
shift &&
param="$*" &&
test_expect_$outcome "log $param" '
- git log --pretty="$FMT" --parents $param |
- unnote >actual &&
+ git log --pretty="$FMT" --parents $param >out &&
+ unnote >actual <out &&
sed -e "s/^.* \([^ ]*\) .*/\1/" >check <actual &&
test_cmp expect check
'
@@ -142,11 +143,18 @@ check_result 'I B A' --author-date-order -- file
check_result 'H' --first-parent -- another-file
check_result 'H' --first-parent --topo-order -- another-file
+check_result 'L K I H G B A' --first-parent L
+check_result 'F E D C' --exclude-first-parent-only F ^L
+check_result '' F ^L
+check_result 'L K I H G J' L ^F
+check_result 'L K I H G B J' --exclude-first-parent-only L ^F
+check_result 'L K I H G B' --exclude-first-parent-only --first-parent L ^F
+
check_result 'E C B A' --full-history E -- lost
test_expect_success 'full history simplification without parent' '
printf "%s\n" E C B A >expect &&
- git log --pretty="$FMT" --full-history E -- lost |
- unnote >actual &&
+ git log --pretty="$FMT" --full-history E -- lost >out &&
+ unnote >actual <out &&
sed -e "s/^.* \([^ ]*\) .*/\1/" >check <actual &&
test_cmp expect check
'
diff --git a/t/t6020-bundle-misc.sh b/t/t6020-bundle-misc.sh
index b13e8a52a9..833205125a 100755
--- a/t/t6020-bundle-misc.sh
+++ b/t/t6020-bundle-misc.sh
@@ -122,6 +122,8 @@ format_and_save_expect () {
sed -e 's/Z$//' >expect
}
+HASH_MESSAGE="The bundle uses this hash algorithm: $GIT_DEFAULT_HASH"
+
# (C) (D, pull/1/head, topic/1)
# o --- o
# / \ (L)
@@ -194,11 +196,12 @@ test_expect_success 'create bundle from special rev: main^!' '
git bundle verify special-rev.bdl |
make_user_friendly_and_stable_output >actual &&
- format_and_save_expect <<-\EOF &&
+ format_and_save_expect <<-EOF &&
The bundle contains this ref:
<COMMIT-P> refs/heads/main
The bundle requires this ref:
<COMMIT-O> Z
+ $HASH_MESSAGE
EOF
test_cmp expect actual &&
@@ -215,12 +218,13 @@ test_expect_success 'create bundle with --max-count option' '
git bundle verify max-count.bdl |
make_user_friendly_and_stable_output >actual &&
- format_and_save_expect <<-\EOF &&
+ format_and_save_expect <<-EOF &&
The bundle contains these 2 refs:
<COMMIT-P> refs/heads/main
<TAG-1> refs/tags/v1
The bundle requires this ref:
<COMMIT-O> Z
+ $HASH_MESSAGE
EOF
test_cmp expect actual &&
@@ -240,7 +244,7 @@ test_expect_success 'create bundle with --since option' '
git bundle verify since.bdl |
make_user_friendly_and_stable_output >actual &&
- format_and_save_expect <<-\EOF &&
+ format_and_save_expect <<-EOF &&
The bundle contains these 5 refs:
<COMMIT-P> refs/heads/main
<COMMIT-N> refs/heads/release
@@ -250,6 +254,7 @@ test_expect_success 'create bundle with --since option' '
The bundle requires these 2 refs:
<COMMIT-M> Z
<COMMIT-K> Z
+ $HASH_MESSAGE
EOF
test_cmp expect actual &&
@@ -267,11 +272,12 @@ test_expect_success 'create bundle 1 - no prerequisites' '
EOF
git bundle create stdin-1.bdl --stdin <input &&
- cat >expect <<-\EOF &&
+ format_and_save_expect <<-EOF &&
The bundle contains these 2 refs:
<COMMIT-D> refs/heads/topic/1
<COMMIT-H> refs/heads/topic/2
The bundle records a complete history.
+ $HASH_MESSAGE
EOF
# verify bundle, which has no prerequisites
@@ -308,13 +314,14 @@ test_expect_success 'create bundle 2 - has prerequisites' '
--stdin \
release <input &&
- format_and_save_expect <<-\EOF &&
+ format_and_save_expect <<-EOF &&
The bundle contains this ref:
<COMMIT-N> refs/heads/release
The bundle requires these 3 refs:
<COMMIT-D> Z
<COMMIT-E> Z
<COMMIT-G> Z
+ $HASH_MESSAGE
EOF
git bundle verify 2.bdl |
@@ -367,13 +374,14 @@ test_expect_success 'create bundle 3 - two refs, same object' '
--stdin \
main HEAD <input &&
- format_and_save_expect <<-\EOF &&
+ format_and_save_expect <<-EOF &&
The bundle contains these 2 refs:
<COMMIT-P> refs/heads/main
<COMMIT-P> HEAD
The bundle requires these 2 refs:
<COMMIT-M> Z
<COMMIT-K> Z
+ $HASH_MESSAGE
EOF
git bundle verify 3.bdl |
@@ -409,12 +417,13 @@ test_expect_success 'create bundle 4 - with tags' '
--stdin \
--all <input &&
- cat >expect <<-\EOF &&
+ cat >expect <<-EOF &&
The bundle contains these 3 refs:
<TAG-1> refs/tags/v1
<TAG-2> refs/tags/v2
<TAG-3> refs/tags/v3
The bundle records a complete history.
+ $HASH_MESSAGE
EOF
git bundle verify 4.bdl |
@@ -475,4 +484,79 @@ test_expect_success 'clone from bundle' '
test_cmp expect actual
'
+test_expect_success 'unfiltered bundle with --objects' '
+ git bundle create all-objects.bdl \
+ --all --objects &&
+ git bundle create all.bdl \
+ --all &&
+
+ # Compare the headers of these files.
+ sed -n -e "/^$/q" -e "p" all.bdl >expect &&
+ sed -n -e "/^$/q" -e "p" all-objects.bdl >actual &&
+ test_cmp expect actual
+'
+
+for filter in "blob:none" "tree:0" "tree:1" "blob:limit=100"
+do
+ test_expect_success "filtered bundle: $filter" '
+ test_when_finished rm -rf .git/objects/pack cloned unbundled &&
+ git bundle create partial.bdl \
+ --all \
+ --filter=$filter &&
+
+ git bundle verify partial.bdl >unfiltered &&
+ make_user_friendly_and_stable_output <unfiltered >actual &&
+
+ cat >expect <<-EOF &&
+ The bundle contains these 10 refs:
+ <COMMIT-P> refs/heads/main
+ <COMMIT-N> refs/heads/release
+ <COMMIT-D> refs/heads/topic/1
+ <COMMIT-H> refs/heads/topic/2
+ <COMMIT-D> refs/pull/1/head
+ <COMMIT-G> refs/pull/2/head
+ <TAG-1> refs/tags/v1
+ <TAG-2> refs/tags/v2
+ <TAG-3> refs/tags/v3
+ <COMMIT-P> HEAD
+ The bundle records a complete history.
+ $HASH_MESSAGE
+ The bundle uses this filter: $filter
+ EOF
+ test_cmp expect actual &&
+
+ test_config uploadpack.allowfilter 1 &&
+ test_config uploadpack.allowanysha1inwant 1 &&
+ git clone --no-local --filter=$filter --bare "file://$(pwd)" cloned &&
+
+ git init unbundled &&
+ git -C unbundled bundle unbundle ../partial.bdl >ref-list.txt &&
+ ls unbundled/.git/objects/pack/pack-*.promisor >promisor &&
+ test_line_count = 1 promisor &&
+
+ # Count the same number of reachable objects.
+ reflist=$(git for-each-ref --format="%(objectname)") &&
+ git rev-list --objects --filter=$filter --missing=allow-any \
+ $reflist >expect &&
+ for repo in cloned unbundled
+ do
+ git -C $repo rev-list --objects --missing=allow-any \
+ $reflist >actual &&
+ test_cmp expect actual || return 1
+ done
+ '
+done
+
+# NEEDSWORK: 'git clone --bare' should be able to clone from a filtered
+# bundle, but that requires a change to promisor/filter config options.
+# For now, we fail gracefully with a helpful error. This behavior can be
+# changed in the future to succeed as much as possible.
+test_expect_success 'cloning from filtered bundle has useful error' '
+ git bundle create partial.bdl \
+ --all \
+ --filter=blob:none &&
+ test_must_fail git clone --bare partial.bdl partial 2>err &&
+ grep "cannot clone from filtered bundle" err
+'
+
test_done
diff --git a/t/t6030-bisect-porcelain.sh b/t/t6030-bisect-porcelain.sh
index 1be85d064e..83931d482f 100755
--- a/t/t6030-bisect-porcelain.sh
+++ b/t/t6030-bisect-porcelain.sh
@@ -278,6 +278,51 @@ test_expect_success '"git bisect run" with more complex "git bisect start"' '
git bisect reset
'
+test_expect_success 'bisect run accepts exit code 126 as bad' '
+ test_when_finished "git bisect reset" &&
+ write_script test_script.sh <<-\EOF &&
+ ! grep Another hello || exit 126 >/dev/null
+ EOF
+ git bisect start &&
+ git bisect good $HASH1 &&
+ git bisect bad $HASH4 &&
+ git bisect run ./test_script.sh >my_bisect_log.txt &&
+ grep "$HASH3 is the first bad commit" my_bisect_log.txt
+'
+
+test_expect_success POSIXPERM 'bisect run fails with non-executable test script' '
+ test_when_finished "git bisect reset" &&
+ >not-executable.sh &&
+ chmod -x not-executable.sh &&
+ git bisect start &&
+ git bisect good $HASH1 &&
+ git bisect bad $HASH4 &&
+ test_must_fail git bisect run ./not-executable.sh >my_bisect_log.txt &&
+ ! grep "is the first bad commit" my_bisect_log.txt
+'
+
+test_expect_success 'bisect run accepts exit code 127 as bad' '
+ test_when_finished "git bisect reset" &&
+ write_script test_script.sh <<-\EOF &&
+ ! grep Another hello || exit 127 >/dev/null
+ EOF
+ git bisect start &&
+ git bisect good $HASH1 &&
+ git bisect bad $HASH4 &&
+ git bisect run ./test_script.sh >my_bisect_log.txt &&
+ grep "$HASH3 is the first bad commit" my_bisect_log.txt
+'
+
+test_expect_success 'bisect run fails with missing test script' '
+ test_when_finished "git bisect reset" &&
+ rm -f does-not-exist.sh &&
+ git bisect start &&
+ git bisect good $HASH1 &&
+ git bisect bad $HASH4 &&
+ test_must_fail git bisect run ./does-not-exist.sh >my_bisect_log.txt &&
+ ! grep "is the first bad commit" my_bisect_log.txt
+'
+
# $HASH1 is good, $HASH5 is bad, we skip $HASH3
# but $HASH4 is good,
# so we should find $HASH5 as the first bad commit
@@ -980,4 +1025,32 @@ test_expect_success 'bisect visualize with a filename with dash and space' '
git bisect visualize -p -- "-hello 2"
'
+test_expect_success 'bisect state output with multiple good commits' '
+ git bisect reset &&
+ git bisect start >output &&
+ grep "waiting for both good and bad commits" output &&
+ git bisect log >output &&
+ grep "waiting for both good and bad commits" output &&
+ git bisect good "$HASH1" >output &&
+ grep "waiting for bad commit, 1 good commit known" output &&
+ git bisect log >output &&
+ grep "waiting for bad commit, 1 good commit known" output &&
+ git bisect good "$HASH2" >output &&
+ grep "waiting for bad commit, 2 good commits known" output &&
+ git bisect log >output &&
+ grep "waiting for bad commit, 2 good commits known" output
+'
+
+test_expect_success 'bisect state output with bad commit' '
+ git bisect reset &&
+ git bisect start >output &&
+ grep "waiting for both good and bad commits" output &&
+ git bisect log >output &&
+ grep "waiting for both good and bad commits" output &&
+ git bisect bad "$HASH4" >output &&
+ grep -F "waiting for good commit(s), bad commit known" output &&
+ git bisect log >output &&
+ grep -F "waiting for good commit(s), bad commit known" output
+'
+
test_done
diff --git a/t/t6102-rev-list-unexpected-objects.sh b/t/t6102-rev-list-unexpected-objects.sh
index 6f0902b863..cf0195e826 100755
--- a/t/t6102-rev-list-unexpected-objects.sh
+++ b/t/t6102-rev-list-unexpected-objects.sh
@@ -17,8 +17,13 @@ test_expect_success 'setup unexpected non-blob entry' '
broken_tree="$(git hash-object -w --literally -t tree broken-tree)"
'
-test_expect_failure 'traverse unexpected non-blob entry (lone)' '
- test_must_fail git rev-list --objects $broken_tree
+test_expect_success !SANITIZE_LEAK 'TODO (should fail!): traverse unexpected non-blob entry (lone)' '
+ sed "s/Z$//" >expect <<-EOF &&
+ $broken_tree Z
+ $tree foo
+ EOF
+ git rev-list --objects $broken_tree >actual &&
+ test_cmp expect actual
'
test_expect_success 'traverse unexpected non-blob entry (seen)' '
@@ -116,8 +121,8 @@ test_expect_success 'setup unexpected non-blob tag' '
tag=$(git hash-object -w --literally -t tag broken-tag)
'
-test_expect_failure 'traverse unexpected non-blob tag (lone)' '
- test_must_fail git rev-list --objects $tag
+test_expect_success !SANITIZE_LEAK 'TODO (should fail!): traverse unexpected non-blob tag (lone)' '
+ git rev-list --objects $tag
'
test_expect_success 'traverse unexpected non-blob tag (seen)' '
diff --git a/t/t6111-rev-list-treesame.sh b/t/t6111-rev-list-treesame.sh
index e07b6070e0..90ff141640 100755
--- a/t/t6111-rev-list-treesame.sh
+++ b/t/t6111-rev-list-treesame.sh
@@ -23,7 +23,8 @@ note () {
}
unnote () {
- git name-rev --tags --stdin | sed -e "s|$OID_REGEX (tags/\([^)]*\))\([ ]\)|\1\2|g"
+ git name-rev --tags --annotate-stdin | \
+ sed -e "s|$OID_REGEX (tags/\([^)]*\))\([ ]\)|\1\2|g"
}
test_expect_success setup '
diff --git a/t/t6120-describe.sh b/t/t6120-describe.sh
index d8af2bb9d2..9a35e783a7 100755
--- a/t/t6120-describe.sh
+++ b/t/t6120-describe.sh
@@ -270,7 +270,7 @@ test_expect_success 'name-rev --all' '
test_cmp expect actual
'
-test_expect_success 'name-rev --stdin' '
+test_expect_success 'name-rev --annotate-stdin' '
>expect.unsorted &&
for rev in $(git rev-list --all)
do
@@ -278,11 +278,16 @@ test_expect_success 'name-rev --stdin' '
echo "$rev ($name)" >>expect.unsorted || return 1
done &&
sort <expect.unsorted >expect &&
- git rev-list --all | git name-rev --stdin >actual.unsorted &&
+ git rev-list --all | git name-rev --annotate-stdin >actual.unsorted &&
sort <actual.unsorted >actual &&
test_cmp expect actual
'
+test_expect_success 'name-rev --stdin deprecated' "
+ git rev-list --all | git name-rev --stdin 2>actual &&
+ grep -E 'warning: --stdin is deprecated' actual
+"
+
test_expect_success 'describe --contains with the exact tags' '
echo "A^0" >expect &&
tag_object=$(git rev-parse refs/tags/A) &&
@@ -483,6 +488,124 @@ test_expect_success 'name-rev covers all conditions while looking at parents' '
)
'
+# A-B-C-D-E-main
+#
+# Where C has a non-monotonically increasing commit timestamp w.r.t. other
+# commits
+test_expect_success 'non-monotonic commit dates setup' '
+ UNIX_EPOCH_ZERO="@0 +0000" &&
+ git init non-monotonic &&
+ test_commit -C non-monotonic A &&
+ test_commit -C non-monotonic --no-tag B &&
+ test_commit -C non-monotonic --no-tag --date "$UNIX_EPOCH_ZERO" C &&
+ test_commit -C non-monotonic D &&
+ test_commit -C non-monotonic E
+'
+
+test_expect_success 'name-rev with commitGraph handles non-monotonic timestamps' '
+ test_config -C non-monotonic core.commitGraph true &&
+ (
+ cd non-monotonic &&
+
+ git commit-graph write --reachable &&
+
+ echo "main~3 tags/D~2" >expect &&
+ git name-rev --tags main~3 >actual &&
+
+ test_cmp expect actual
+ )
+'
+
+test_expect_success 'name-rev --all works with non-monotonic timestamps' '
+ test_config -C non-monotonic core.commitGraph false &&
+ (
+ cd non-monotonic &&
+
+ rm -rf .git/info/commit-graph* &&
+
+ cat >tags <<-\EOF &&
+ tags/E
+ tags/D
+ tags/D~1
+ tags/D~2
+ tags/A
+ EOF
+
+ git log --pretty=%H >revs &&
+
+ paste -d" " revs tags | sort >expect &&
+
+ git name-rev --tags --all | sort >actual &&
+ test_cmp expect actual
+ )
+'
+
+test_expect_success 'name-rev --annotate-stdin works with non-monotonic timestamps' '
+ test_config -C non-monotonic core.commitGraph false &&
+ (
+ cd non-monotonic &&
+
+ rm -rf .git/info/commit-graph* &&
+
+ cat >expect <<-\EOF &&
+ E
+ D
+ D~1
+ D~2
+ A
+ EOF
+
+ git log --pretty=%H >revs &&
+ git name-rev --tags --annotate-stdin --name-only <revs >actual &&
+ test_cmp expect actual
+ )
+'
+
+test_expect_success 'name-rev --all works with commitGraph' '
+ test_config -C non-monotonic core.commitGraph true &&
+ (
+ cd non-monotonic &&
+
+ git commit-graph write --reachable &&
+
+ cat >tags <<-\EOF &&
+ tags/E
+ tags/D
+ tags/D~1
+ tags/D~2
+ tags/A
+ EOF
+
+ git log --pretty=%H >revs &&
+
+ paste -d" " revs tags | sort >expect &&
+
+ git name-rev --tags --all | sort >actual &&
+ test_cmp expect actual
+ )
+'
+
+test_expect_success 'name-rev --annotate-stdin works with commitGraph' '
+ test_config -C non-monotonic core.commitGraph true &&
+ (
+ cd non-monotonic &&
+
+ git commit-graph write --reachable &&
+
+ cat >expect <<-\EOF &&
+ E
+ D
+ D~1
+ D~2
+ A
+ EOF
+
+ git log --pretty=%H >revs &&
+ git name-rev --tags --annotate-stdin --name-only <revs >actual &&
+ test_cmp expect actual
+ )
+'
+
# B
# o
# \
diff --git a/t/t6404-recursive-merge.sh b/t/t6404-recursive-merge.sh
index eaf48e941e..b8735c6db4 100755
--- a/t/t6404-recursive-merge.sh
+++ b/t/t6404-recursive-merge.sh
@@ -108,8 +108,13 @@ test_expect_success 'refuse to merge binary files' '
printf "\0\0" >binary-file &&
git add binary-file &&
git commit -m binary2 &&
- test_must_fail git merge F >merge.out 2>merge.err &&
- grep "Cannot merge binary files: binary-file (HEAD vs. F)" merge.err
+ if test "$GIT_TEST_MERGE_ALGORITHM" = ort
+ then
+ test_must_fail git merge F >merge_output
+ else
+ test_must_fail git merge F 2>merge_output
+ fi &&
+ grep "Cannot merge binary files: binary-file (HEAD vs. F)" merge_output
'
test_expect_success 'mark rename/delete as unmerged' '
diff --git a/t/t6406-merge-attr.sh b/t/t6406-merge-attr.sh
index 57e6af5eaa..99abefd44b 100755
--- a/t/t6406-merge-attr.sh
+++ b/t/t6406-merge-attr.sh
@@ -221,8 +221,13 @@ test_expect_success 'binary files with union attribute' '
printf "two\0" >bin.txt &&
git commit -am two &&
- test_must_fail git merge bin-main 2>stderr &&
- grep -i "warning.*cannot merge.*HEAD vs. bin-main" stderr
+ if test "$GIT_TEST_MERGE_ALGORITHM" = ort
+ then
+ test_must_fail git merge bin-main >output
+ else
+ test_must_fail git merge bin-main 2>output
+ fi &&
+ grep -i "warning.*cannot merge.*HEAD vs. bin-main" output
'
test_done
diff --git a/t/t6407-merge-binary.sh b/t/t6407-merge-binary.sh
index 8e6241f92e..0753fc95f4 100755
--- a/t/t6407-merge-binary.sh
+++ b/t/t6407-merge-binary.sh
@@ -43,14 +43,9 @@ test_expect_success resolve '
rm -f a* m* &&
git reset --hard anchor &&
- if git merge -s resolve main
- then
- echo Oops, should not have succeeded
- false
- else
- git ls-files -s >current &&
- test_cmp expect current
- fi
+ test_must_fail git merge -s resolve main &&
+ git ls-files -s >current &&
+ test_cmp expect current
'
test_expect_success recursive '
@@ -58,14 +53,9 @@ test_expect_success recursive '
rm -f a* m* &&
git reset --hard anchor &&
- if git merge -s recursive main
- then
- echo Oops, should not have succeeded
- false
- else
- git ls-files -s >current &&
- test_cmp expect current
- fi
+ test_must_fail git merge -s recursive main &&
+ git ls-files -s >current &&
+ test_cmp expect current
'
test_done
diff --git a/t/t6423-merge-rename-directories.sh b/t/t6423-merge-rename-directories.sh
index 5b81a130e9..479db32cd6 100755
--- a/t/t6423-merge-rename-directories.sh
+++ b/t/t6423-merge-rename-directories.sh
@@ -4421,14 +4421,14 @@ test_setup_12c1 () {
git checkout A &&
git mv node2/ node1/ &&
- for i in `git ls-files`; do echo side A >>$i; done &&
+ for i in $(git ls-files); do echo side A >>$i; done &&
git add -u &&
test_tick &&
git commit -m "A" &&
git checkout B &&
git mv node1/ node2/ &&
- for i in `git ls-files`; do echo side B >>$i; done &&
+ for i in $(git ls-files); do echo side B >>$i; done &&
git add -u &&
test_tick &&
git commit -m "B"
@@ -4511,7 +4511,7 @@ test_setup_12c2 () {
git checkout A &&
git mv node2/ node1/ &&
- for i in `git ls-files`; do echo side A >>$i; done &&
+ for i in $(git ls-files); do echo side A >>$i; done &&
git add -u &&
echo leaf5 >node1/leaf5 &&
git add node1/leaf5 &&
@@ -4520,7 +4520,7 @@ test_setup_12c2 () {
git checkout B &&
git mv node1/ node2/ &&
- for i in `git ls-files`; do echo side B >>$i; done &&
+ for i in $(git ls-files); do echo side B >>$i; done &&
git add -u &&
echo leaf6 >node2/leaf6 &&
git add node2/leaf6 &&
@@ -4759,7 +4759,7 @@ test_setup_12f () {
echo g >dir/subdir/tweaked/g &&
echo h >dir/subdir/tweaked/h &&
test_seq 20 30 >dir/subdir/tweaked/Makefile &&
- for i in `test_seq 1 88`; do
+ for i in $(test_seq 1 88); do
echo content $i >dir/unchanged/file_$i
done &&
git add . &&
diff --git a/t/t6428-merge-conflicts-sparse.sh b/t/t6428-merge-conflicts-sparse.sh
index 7e8bf497f8..142c9aaabc 100755
--- a/t/t6428-merge-conflicts-sparse.sh
+++ b/t/t6428-merge-conflicts-sparse.sh
@@ -112,7 +112,7 @@ test_expect_success 'conflicting entries written to worktree even if sparse' '
)
'
-test_expect_merge_algorithm failure success 'present-despite-SKIP_WORKTREE handled reasonably' '
+test_expect_success 'present-despite-SKIP_WORKTREE handled reasonably' '
test_setup_numerals in_the_way &&
(
cd numerals_in_the_way &&
@@ -132,26 +132,13 @@ test_expect_merge_algorithm failure success 'present-despite-SKIP_WORKTREE handl
test_must_fail git merge -s recursive B^0 &&
- git ls-files -t >index_files &&
- test_cmp expected-index index_files &&
+ test_path_is_missing .git/MERGE_HEAD &&
- test_path_is_file README &&
test_path_is_file numerals &&
- test_cmp expected-merge numerals &&
-
- # There should still be a file with "foobar" in it
- grep foobar * &&
-
- # 5 other files:
- # * expected-merge
- # * expected-index
- # * index_files
- # * others
- # * whatever name was given to the numerals file that had
- # "foobar" in it
- git ls-files -o >others &&
- test_line_count = 5 others
+ # numerals should still have "foobar" in it
+ echo foobar >expect &&
+ test_cmp expect numerals
)
'
diff --git a/t/t6429-merge-sequence-rename-caching.sh b/t/t6429-merge-sequence-rename-caching.sh
index 035edc40b1..f2bc8a7d2a 100755
--- a/t/t6429-merge-sequence-rename-caching.sh
+++ b/t/t6429-merge-sequence-rename-caching.sh
@@ -697,4 +697,71 @@ test_expect_success 'caching renames only on upstream side, part 2' '
)
'
+#
+# The following testcase just creates two simple renames (slightly modified
+# on both sides but without conflicting changes), and a directory full of
+# files that are otherwise uninteresting. The setup is as follows:
+#
+# base: unrelated/<BUNCH OF FILES>
+# numbers
+# values
+# upstream: modify: numbers
+# modify: values
+# topic: add: unrelated/foo
+# modify: numbers
+# modify: values
+# rename: numbers -> sequence
+# rename: values -> progression
+#
+# This is a trivial rename case, but we're curious what happens with a very
+# low renameLimit interacting with the restart optimization trying to notice
+# that unrelated/ looks like a trivial merge candidate.
+#
+test_expect_success 'avoid assuming we detected renames' '
+ git init redo-weirdness &&
+ (
+ cd redo-weirdness &&
+
+ mkdir unrelated &&
+ for i in $(test_seq 1 10)
+ do
+ >unrelated/$i
+ done &&
+ test_seq 2 10 >numbers &&
+ test_seq 12 20 >values &&
+ git add numbers values unrelated/ &&
+ git commit -m orig &&
+
+ git branch upstream &&
+ git branch topic &&
+
+ git switch upstream &&
+ test_seq 1 10 >numbers &&
+ test_seq 11 20 >values &&
+ git add numbers &&
+ git commit -m "Some tweaks" &&
+
+ git switch topic &&
+
+ >unrelated/foo &&
+ test_seq 2 12 >numbers &&
+ test_seq 12 22 >values &&
+ git add numbers values unrelated/ &&
+ git mv numbers sequence &&
+ git mv values progression &&
+ git commit -m A &&
+
+ #
+ # Actual testing
+ #
+
+ git switch --detach topic^0 &&
+
+ test_must_fail git -c merge.renameLimit=1 rebase upstream &&
+
+ git ls-files -u >actual &&
+ ! test_file_is_empty actual
+ )
+'
+
test_done
diff --git a/t/t6500-gc.sh b/t/t6500-gc.sh
index c2021267f2..cd6c53360d 100755
--- a/t/t6500-gc.sh
+++ b/t/t6500-gc.sh
@@ -101,12 +101,12 @@ test_expect_success 'pre-auto-gc hook can stop auto gc' '
EOF
git init pre-auto-gc-hook &&
+ test_hook -C pre-auto-gc-hook pre-auto-gc <<-\EOF &&
+ echo >&2 no gc for you &&
+ exit 1
+ EOF
(
cd pre-auto-gc-hook &&
- write_script ".git/hooks/pre-auto-gc" <<-\EOF &&
- echo >&2 no gc for you &&
- exit 1
- EOF
git config gc.auto 3 &&
git config gc.autoDetach false &&
@@ -128,14 +128,12 @@ test_expect_success 'pre-auto-gc hook can stop auto gc' '
See "git help gc" for manual housekeeping.
EOF
- (
- cd pre-auto-gc-hook &&
- write_script ".git/hooks/pre-auto-gc" <<-\EOF &&
- echo >&2 will gc for you &&
- exit 0
- EOF
- git gc --auto >../out.actual 2>../err.actual
- ) &&
+ test_hook -C pre-auto-gc-hook --clobber pre-auto-gc <<-\EOF &&
+ echo >&2 will gc for you &&
+ exit 0
+ EOF
+
+ git -C pre-auto-gc-hook gc --auto >out.actual 2>err.actual &&
test_must_be_empty out.actual &&
test_cmp err.expect err.actual
diff --git a/t/t7001-mv.sh b/t/t7001-mv.sh
index 963356ba5f..a402908142 100755
--- a/t/t7001-mv.sh
+++ b/t/t7001-mv.sh
@@ -4,6 +4,25 @@ test_description='git mv in subdirs'
. ./test-lib.sh
. "$TEST_DIRECTORY"/lib-diff-data.sh
+test_expect_success 'mv -f refreshes updated index entry' '
+ echo test >bar &&
+ git add bar &&
+ git commit -m test &&
+
+ echo foo >foo &&
+ git add foo &&
+
+ # Wait one second to ensure ctime of rename will differ from original
+ # file creation ctime.
+ sleep 1 &&
+ git mv -f foo bar &&
+ git reset --merge HEAD &&
+
+ # Verify the index has been reset
+ git diff-files >out &&
+ test_must_be_empty out
+'
+
test_expect_success 'prepare reference tree' '
mkdir path0 path1 &&
COPYING_test_data >path0/COPYING &&
diff --git a/t/t7012-skip-worktree-writing.sh b/t/t7012-skip-worktree-writing.sh
index a1080b94e3..cb9f1a6981 100755
--- a/t/t7012-skip-worktree-writing.sh
+++ b/t/t7012-skip-worktree-writing.sh
@@ -171,50 +171,20 @@ test_expect_success 'stash restore in sparse checkout' '
# Put a file in the working directory in the way
echo in the way >modified &&
- git stash apply &&
+ test_must_fail git stash apply 2>error&&
- # Ensure stash vivifies modifies paths...
- cat >expect <<-EOF &&
- H addme
- H modified
- H removeme
- H subdir/A
- S untouched
- EOF
- git ls-files -t >actual &&
- test_cmp expect actual &&
+ grep "changes.*would be overwritten by merge" error &&
- # ...and that the paths show up in status as changed...
- cat >expect <<-EOF &&
- A addme
- M modified
- D removeme
- M subdir/A
- ?? actual
- ?? expect
- ?? modified.stash.XXXXXX
- EOF
- git status --porcelain | \
- sed -e s/stash......./stash.XXXXXX/ >actual &&
- test_cmp expect actual &&
+ echo in the way >expect &&
+ test_cmp expect modified &&
+ git diff --quiet HEAD ":!modified" &&
# ...and that working directory reflects the files correctly
- test_path_is_file addme &&
+ test_path_is_missing addme &&
test_path_is_file modified &&
test_path_is_missing removeme &&
test_path_is_file subdir/A &&
- test_path_is_missing untouched &&
-
- # ...including that we have the expected "modified" file...
- cat >expect <<-EOF &&
- modified
- tweaked
- EOF
- test_cmp expect modified &&
-
- # ...and that the other "modified" file is still present...
- echo in the way >expect &&
- test_cmp expect modified.stash.*
+ test_path_is_missing untouched
)
'
diff --git a/t/t7063-status-untracked-cache.sh b/t/t7063-status-untracked-cache.sh
index a0c123b0a7..9936cc329e 100755
--- a/t/t7063-status-untracked-cache.sh
+++ b/t/t7063-status-untracked-cache.sh
@@ -90,6 +90,9 @@ test_expect_success 'setup' '
cd worktree &&
mkdir done dtwo dthree &&
touch one two three done/one dtwo/two dthree/three &&
+ test-tool chmtime =-300 one two three done/one dtwo/two dthree/three &&
+ test-tool chmtime =-300 done dtwo dthree &&
+ test-tool chmtime =-300 . &&
git add one two done/one &&
: >.git/info/exclude &&
git update-index --untracked-cache &&
@@ -142,7 +145,6 @@ two
EOF
test_expect_success 'status first time (empty cache)' '
- avoid_racy &&
: >../trace.output &&
GIT_TRACE2_PERF="$TRASH_DIRECTORY/trace.output" \
git status --porcelain >../actual &&
@@ -166,7 +168,6 @@ test_expect_success 'untracked cache after first status' '
'
test_expect_success 'status second time (fully populated cache)' '
- avoid_racy &&
: >../trace.output &&
GIT_TRACE2_PERF="$TRASH_DIRECTORY/trace.output" \
git status --porcelain >../actual &&
@@ -189,9 +190,122 @@ test_expect_success 'untracked cache after second status' '
test_cmp ../dump.expect ../actual
'
+cat >../status_uall.expect <<EOF &&
+A done/one
+A one
+A two
+?? dthree/three
+?? dtwo/two
+?? three
+EOF
+
+# Bypassing the untracked cache here is not desirable from an
+# end-user perspective, but is expected in the current design.
+# The untracked cache data stored for a -unormal run cannot be
+# correctly used in a -uall run - it would yield incorrect output.
+test_expect_success 'untracked cache is bypassed with -uall' '
+ : >../trace.output &&
+ GIT_TRACE2_PERF="$TRASH_DIRECTORY/trace.output" \
+ git status -uall --porcelain >../actual &&
+ iuc status -uall --porcelain >../status.iuc &&
+ test_cmp ../status_uall.expect ../status.iuc &&
+ test_cmp ../status_uall.expect ../actual &&
+ get_relevant_traces ../trace.output ../trace.relevant &&
+ cat >../trace.expect <<EOF &&
+ ....path:
+EOF
+ test_cmp ../trace.expect ../trace.relevant
+'
+
+test_expect_success 'untracked cache remains after bypass' '
+ test-tool dump-untracked-cache >../actual &&
+ test_cmp ../dump.expect ../actual
+'
+
+test_expect_success 'if -uall is configured, untracked cache gets populated by default' '
+ test_config status.showuntrackedfiles all &&
+ : >../trace.output &&
+ GIT_TRACE2_PERF="$TRASH_DIRECTORY/trace.output" \
+ git status --porcelain >../actual &&
+ iuc status --porcelain >../status.iuc &&
+ test_cmp ../status_uall.expect ../status.iuc &&
+ test_cmp ../status_uall.expect ../actual &&
+ get_relevant_traces ../trace.output ../trace.relevant &&
+ cat >../trace.expect <<EOF &&
+ ....path:
+ ....node-creation:3
+ ....gitignore-invalidation:1
+ ....directory-invalidation:0
+ ....opendir:4
+EOF
+ test_cmp ../trace.expect ../trace.relevant
+'
+
+cat >../dump_uall.expect <<EOF &&
+info/exclude $EMPTY_BLOB
+core.excludesfile $ZERO_OID
+exclude_per_dir .gitignore
+flags 00000000
+/ $ZERO_OID recurse valid
+three
+/done/ $ZERO_OID recurse valid
+/dthree/ $ZERO_OID recurse valid
+three
+/dtwo/ $ZERO_OID recurse valid
+two
+EOF
+
+test_expect_success 'if -uall was configured, untracked cache is populated' '
+ test-tool dump-untracked-cache >../actual &&
+ test_cmp ../dump_uall.expect ../actual
+'
+
+test_expect_success 'if -uall is configured, untracked cache is used by default' '
+ test_config status.showuntrackedfiles all &&
+ : >../trace.output &&
+ GIT_TRACE2_PERF="$TRASH_DIRECTORY/trace.output" \
+ git status --porcelain >../actual &&
+ iuc status --porcelain >../status.iuc &&
+ test_cmp ../status_uall.expect ../status.iuc &&
+ test_cmp ../status_uall.expect ../actual &&
+ get_relevant_traces ../trace.output ../trace.relevant &&
+ cat >../trace.expect <<EOF &&
+ ....path:
+ ....node-creation:0
+ ....gitignore-invalidation:0
+ ....directory-invalidation:0
+ ....opendir:0
+EOF
+ test_cmp ../trace.expect ../trace.relevant
+'
+
+# Bypassing the untracked cache here is not desirable from an
+# end-user perspective, but is expected in the current design.
+# The untracked cache data stored for a -all run cannot be
+# correctly used in a -unormal run - it would yield incorrect
+# output.
+test_expect_success 'if -uall is configured, untracked cache is bypassed with -unormal' '
+ test_config status.showuntrackedfiles all &&
+ : >../trace.output &&
+ GIT_TRACE2_PERF="$TRASH_DIRECTORY/trace.output" \
+ git status -unormal --porcelain >../actual &&
+ iuc status -unormal --porcelain >../status.iuc &&
+ test_cmp ../status.expect ../status.iuc &&
+ test_cmp ../status.expect ../actual &&
+ get_relevant_traces ../trace.output ../trace.relevant &&
+ cat >../trace.expect <<EOF &&
+ ....path:
+EOF
+ test_cmp ../trace.expect ../trace.relevant
+'
+
+test_expect_success 'repopulate untracked cache for -unormal' '
+ git status --porcelain
+'
+
test_expect_success 'modify in root directory, one dir invalidation' '
- avoid_racy &&
: >four &&
+ test-tool chmtime =-240 four &&
: >../trace.output &&
GIT_TRACE2_PERF="$TRASH_DIRECTORY/trace.output" \
git status --porcelain >../actual &&
@@ -241,7 +355,6 @@ EOF
'
test_expect_success 'new .gitignore invalidates recursively' '
- avoid_racy &&
echo four >.gitignore &&
: >../trace.output &&
GIT_TRACE2_PERF="$TRASH_DIRECTORY/trace.output" \
@@ -292,7 +405,6 @@ EOF
'
test_expect_success 'new info/exclude invalidates everything' '
- avoid_racy &&
echo three >>.git/info/exclude &&
: >../trace.output &&
GIT_TRACE2_PERF="$TRASH_DIRECTORY/trace.output" \
@@ -520,14 +632,14 @@ test_expect_success 'create/modify files, some of which are gitignored' '
echo three >done/three && # three is gitignored
echo four >done/four && # four is gitignored at a higher level
echo five >done/five && # five is not gitignored
- echo test >base && #we need to ensure that the root dir is touched
- rm base &&
+ test-tool chmtime =-180 done/two done/three done/four done/five done &&
+ # we need to ensure that the root dir is touched (in the past);
+ test-tool chmtime =-180 . &&
sync_mtime
'
test_expect_success 'test sparse status with untracked cache' '
: >../trace.output &&
- avoid_racy &&
GIT_TRACE2_PERF="$TRASH_DIRECTORY/trace.output" \
git status --porcelain >../status.actual &&
iuc status --porcelain >../status.iuc &&
@@ -570,7 +682,6 @@ EOF
'
test_expect_success 'test sparse status again with untracked cache' '
- avoid_racy &&
: >../trace.output &&
GIT_TRACE2_PERF="$TRASH_DIRECTORY/trace.output" \
git status --porcelain >../status.actual &&
@@ -597,11 +708,11 @@ EOF
test_expect_success 'set up for test of subdir and sparse checkouts' '
mkdir done/sub &&
mkdir done/sub/sub &&
- echo "sub" > done/sub/sub/file
+ echo "sub" > done/sub/sub/file &&
+ test-tool chmtime =-120 done/sub/sub/file done/sub/sub done/sub done
'
test_expect_success 'test sparse status with untracked cache and subdir' '
- avoid_racy &&
: >../trace.output &&
GIT_TRACE2_PERF="$TRASH_DIRECTORY/trace.output" \
git status --porcelain >../status.actual &&
@@ -651,7 +762,6 @@ EOF
'
test_expect_success 'test sparse status again with untracked cache and subdir' '
- avoid_racy &&
: >../trace.output &&
GIT_TRACE2_PERF="$TRASH_DIRECTORY/trace.output" \
git status --porcelain >../status.actual &&
diff --git a/t/t7102-reset.sh b/t/t7102-reset.sh
index d05426062e..22477f3a31 100755
--- a/t/t7102-reset.sh
+++ b/t/t7102-reset.sh
@@ -462,14 +462,40 @@ test_expect_success 'resetting an unmodified path is a no-op' '
git diff-index --cached --exit-code HEAD
'
+test_reset_refreshes_index () {
+
+ # To test whether the index is refreshed in `git reset --mixed` with
+ # the given options, create a scenario where we clearly see different
+ # results depending on whether the refresh occurred or not.
+
+ # Step 0: start with a clean index
+ git reset --hard HEAD &&
+
+ # Step 1: remove file2, but only in the index (no change to worktree)
+ git rm --cached file2 &&
+
+ # Step 2: reset index & leave worktree unchanged from HEAD
+ git $1 reset $2 --mixed HEAD &&
+
+ # Step 3: verify whether the index is refreshed by checking whether
+ # file2 still has staged changes in the index differing from HEAD (if
+ # the refresh occurred, there should be no such changes)
+ git diff-files >output.log &&
+ test_must_be_empty output.log
+}
+
test_expect_success '--mixed refreshes the index' '
- cat >expect <<-\EOF &&
- Unstaged changes after reset:
- M file2
- EOF
- echo 123 >>file2 &&
- git reset --mixed HEAD >output &&
- test_cmp expect output
+ # Verify default behavior (without --[no-]refresh or reset.refresh)
+ test_reset_refreshes_index &&
+
+ # With --quiet
+ test_reset_refreshes_index "" --quiet
+'
+
+test_expect_success '--mixed --[no-]refresh sets refresh behavior' '
+ # Verify that --[no-]refresh controls index refresh
+ test_reset_refreshes_index "" --refresh &&
+ ! test_reset_refreshes_index "" --no-refresh
'
test_expect_success '--mixed preserves skip-worktree' '
diff --git a/t/t7103-reset-bare.sh b/t/t7103-reset-bare.sh
index 0de83e3619..a60153f9f3 100755
--- a/t/t7103-reset-bare.sh
+++ b/t/t7103-reset-bare.sh
@@ -63,9 +63,12 @@ test_expect_success '"mixed" reset is not allowed in bare' '
test_must_fail git reset --mixed HEAD^
'
-test_expect_success '"soft" reset is allowed in bare' '
+test_expect_success !SANITIZE_LEAK '"soft" reset is allowed in bare' '
git reset --soft HEAD^ &&
- test "$(git show --pretty=format:%s | head -n 1)" = "one"
+ git show --pretty=format:%s >out &&
+ echo one >expect &&
+ head -n 1 out >actual &&
+ test_cmp expect actual
'
test_done
diff --git a/t/t7113-post-index-change-hook.sh b/t/t7113-post-index-change-hook.sh
index a21781d68a..58e55a7c77 100755
--- a/t/t7113-post-index-change-hook.sh
+++ b/t/t7113-post-index-change-hook.sh
@@ -17,8 +17,7 @@ test_expect_success 'setup' '
'
test_expect_success 'test status, add, commit, others trigger hook without flags set' '
- mkdir -p .git/hooks &&
- write_script .git/hooks/post-index-change <<-\EOF &&
+ test_hook post-index-change <<-\EOF &&
if test "$1" -eq 1; then
echo "Invalid combination of flags passed to hook; updated_workdir is set." >testfailure
exit 1
@@ -63,7 +62,7 @@ test_expect_success 'test status, add, commit, others trigger hook without flags
'
test_expect_success 'test checkout and reset trigger the hook' '
- write_script .git/hooks/post-index-change <<-\EOF &&
+ test_hook post-index-change <<-\EOF &&
if test "$1" -eq 1 && test "$2" -eq 1; then
echo "Invalid combination of flags passed to hook; updated_workdir and updated_skipworktree are both set." >testfailure
exit 1
@@ -106,7 +105,7 @@ test_expect_success 'test checkout and reset trigger the hook' '
'
test_expect_success 'test reset --mixed and update-index triggers the hook' '
- write_script .git/hooks/post-index-change <<-\EOF &&
+ test_hook post-index-change <<-\EOF &&
if test "$1" -eq 1 && test "$2" -eq 1; then
echo "Invalid combination of flags passed to hook; updated_workdir and updated_skipworktree are both set." >testfailure
exit 1
diff --git a/t/t7406-submodule-update.sh b/t/t7406-submodule-update.sh
index 11cccbb333..43f779d751 100755
--- a/t/t7406-submodule-update.sh
+++ b/t/t7406-submodule-update.sh
@@ -205,8 +205,18 @@ test_expect_success 'submodule update should fail due to local changes' '
(cd submodule &&
compare_head
) &&
- test_must_fail git submodule update submodule
- )
+ test_must_fail git submodule update submodule 2>../actual.raw
+ ) &&
+ sed "s/^> //" >expect <<-\EOF &&
+ > error: Your local changes to the following files would be overwritten by checkout:
+ > file
+ > Please commit your changes or stash them before you switch branches.
+ > Aborting
+ > fatal: Unable to checkout OID in submodule path '\''submodule'\''
+ EOF
+ sed -e "s/checkout $SQ[^$SQ]*$SQ/checkout OID/" <actual.raw >actual &&
+ test_cmp expect actual
+
'
test_expect_success 'submodule update should throw away changes with --force ' '
(cd super &&
@@ -660,6 +670,39 @@ test_expect_success 'submodule update --init skips submodule with update=none' '
)
'
+test_expect_success 'submodule update with pathspec warns against uninitialized ones' '
+ test_when_finished "rm -fr selective" &&
+ git clone super selective &&
+ (
+ cd selective &&
+ git submodule init submodule &&
+
+ git submodule update submodule 2>err &&
+ ! grep "Submodule path .* not initialized" err &&
+
+ git submodule update rebasing 2>err &&
+ grep "Submodule path .rebasing. not initialized" err &&
+
+ test_path_exists submodule/.git &&
+ test_path_is_missing rebasing/.git
+ )
+
+'
+
+test_expect_success 'submodule update without pathspec updates only initialized ones' '
+ test_when_finished "rm -fr selective" &&
+ git clone super selective &&
+ (
+ cd selective &&
+ git submodule init submodule &&
+ git submodule update 2>err &&
+ test_path_exists submodule/.git &&
+ test_path_is_missing rebasing/.git &&
+ ! grep "Submodule path .* not initialized" err
+ )
+
+'
+
test_expect_success 'submodule update continues after checkout error' '
(cd super &&
git reset --hard HEAD &&
@@ -1061,4 +1104,16 @@ test_expect_success 'submodule update --quiet passes quietness to fetch with a s
)
'
+test_expect_success 'submodule update --filter requires --init' '
+ test_expect_code 129 git -C super submodule update --filter blob:none
+'
+
+test_expect_success 'submodule update --filter sets partial clone settings' '
+ test_when_finished "rm -rf super-filter" &&
+ git clone cloned super-filter &&
+ git -C super-filter submodule update --init --filter blob:none &&
+ test_cmp_config -C super-filter/submodule true remote.origin.promisor &&
+ test_cmp_config -C super-filter/submodule blob:none remote.origin.partialclonefilter
+'
+
test_done
diff --git a/t/t7408-submodule-reference.sh b/t/t7408-submodule-reference.sh
index a3892f494b..c3a4545510 100755
--- a/t/t7408-submodule-reference.sh
+++ b/t/t7408-submodule-reference.sh
@@ -193,7 +193,19 @@ test_expect_success 'missing nested submodule alternate fails clone and submodul
cd supersuper-clone &&
check_that_two_of_three_alternates_are_used &&
# update of the submodule fails
- test_must_fail git submodule update --init --recursive
+ cat >expect <<-\EOF &&
+ fatal: submodule '\''sub'\'' cannot add alternate: path ... does not exist
+ Failed to clone '\''sub'\''. Retry scheduled
+ fatal: submodule '\''sub-dissociate'\'' cannot add alternate: path ... does not exist
+ Failed to clone '\''sub-dissociate'\''. Retry scheduled
+ fatal: submodule '\''sub'\'' cannot add alternate: path ... does not exist
+ Failed to clone '\''sub'\'' a second time, aborting
+ fatal: Failed to recurse into submodule path ...
+ EOF
+ test_must_fail git submodule update --init --recursive 2>err &&
+ grep -e fatal: -e ^Failed err >actual.raw &&
+ sed -e "s/path $SQ[^$SQ]*$SQ/path .../" <actual.raw >actual &&
+ test_cmp expect actual
)
'
diff --git a/t/t7500-commit-template-squash-signoff.sh b/t/t7500-commit-template-squash-signoff.sh
index 91964653a0..5fcaa0b4f2 100755
--- a/t/t7500-commit-template-squash-signoff.sh
+++ b/t/t7500-commit-template-squash-signoff.sh
@@ -442,7 +442,7 @@ test_expect_success '--fixup=reword: give error with pathsec' '
'
test_expect_success '--fixup=reword: -F give error message' '
- echo "fatal: Only one of -c/-C/-F/--fixup can be used." >expect &&
+ echo "fatal: options '\''-F'\'' and '\''--fixup'\'' cannot be used together" >expect &&
test_must_fail git commit --fixup=reword:HEAD~ -F msg 2>actual &&
test_cmp expect actual
'
diff --git a/t/t7503-pre-commit-and-pre-merge-commit-hooks.sh b/t/t7503-pre-commit-and-pre-merge-commit-hooks.sh
index 606d8d0f08..ad1eb64ba0 100755
--- a/t/t7503-pre-commit-and-pre-merge-commit-hooks.sh
+++ b/t/t7503-pre-commit-and-pre-merge-commit-hooks.sh
@@ -7,37 +7,6 @@ export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME
. ./test-lib.sh
-HOOKDIR="$(git rev-parse --git-dir)/hooks"
-PRECOMMIT="$HOOKDIR/pre-commit"
-PREMERGE="$HOOKDIR/pre-merge-commit"
-
-# Prepare sample scripts that write their $0 to actual_hooks
-test_expect_success 'sample script setup' '
- mkdir -p "$HOOKDIR" &&
- write_script "$HOOKDIR/success.sample" <<-\EOF &&
- echo $0 >>actual_hooks
- exit 0
- EOF
- write_script "$HOOKDIR/fail.sample" <<-\EOF &&
- echo $0 >>actual_hooks
- exit 1
- EOF
- write_script "$HOOKDIR/non-exec.sample" <<-\EOF &&
- echo $0 >>actual_hooks
- exit 1
- EOF
- chmod -x "$HOOKDIR/non-exec.sample" &&
- write_script "$HOOKDIR/require-prefix.sample" <<-\EOF &&
- echo $0 >>actual_hooks
- test $GIT_PREFIX = "success/"
- EOF
- write_script "$HOOKDIR/check-author.sample" <<-\EOF
- echo $0 >>actual_hooks
- test "$GIT_AUTHOR_NAME" = "New Author" &&
- test "$GIT_AUTHOR_EMAIL" = "newauthor@example.com"
- EOF
-'
-
test_expect_success 'root commit' '
echo "root" >file &&
git add file &&
@@ -96,10 +65,16 @@ test_expect_success '--no-verify with no hook (merge)' '
test_path_is_missing actual_hooks
'
+setup_success_hook () {
+ test_when_finished "rm -f actual_hooks expected_hooks" &&
+ echo "$1" >expected_hooks &&
+ test_hook "$1" <<-EOF
+ echo $1 >>actual_hooks
+ EOF
+}
+
test_expect_success 'with succeeding hook' '
- test_when_finished "rm -f \"$PRECOMMIT\" expected_hooks actual_hooks" &&
- cp "$HOOKDIR/success.sample" "$PRECOMMIT" &&
- echo "$PRECOMMIT" >expected_hooks &&
+ setup_success_hook "pre-commit" &&
echo "more" >>file &&
git add file &&
git commit -m "more" &&
@@ -107,9 +82,7 @@ test_expect_success 'with succeeding hook' '
'
test_expect_success 'with succeeding hook (merge)' '
- test_when_finished "rm -f \"$PREMERGE\" expected_hooks actual_hooks" &&
- cp "$HOOKDIR/success.sample" "$PREMERGE" &&
- echo "$PREMERGE" >expected_hooks &&
+ setup_success_hook "pre-merge-commit" &&
git checkout side &&
git merge -m "merge main" main &&
git checkout main &&
@@ -117,17 +90,14 @@ test_expect_success 'with succeeding hook (merge)' '
'
test_expect_success 'automatic merge fails; both hooks are available' '
- test_when_finished "rm -f \"$PREMERGE\" \"$PRECOMMIT\"" &&
- test_when_finished "rm -f expected_hooks actual_hooks" &&
- test_when_finished "git checkout main" &&
- cp "$HOOKDIR/success.sample" "$PREMERGE" &&
- cp "$HOOKDIR/success.sample" "$PRECOMMIT" &&
+ setup_success_hook "pre-commit" &&
+ setup_success_hook "pre-merge-commit" &&
git checkout conflicting-a &&
test_must_fail git merge -m "merge conflicting-b" conflicting-b &&
test_path_is_missing actual_hooks &&
- echo "$PRECOMMIT" >expected_hooks &&
+ echo "pre-commit" >expected_hooks &&
echo a+b >conflicting &&
git add conflicting &&
git commit -m "resolve conflict" &&
@@ -135,8 +105,7 @@ test_expect_success 'automatic merge fails; both hooks are available' '
'
test_expect_success '--no-verify with succeeding hook' '
- test_when_finished "rm -f \"$PRECOMMIT\" actual_hooks" &&
- cp "$HOOKDIR/success.sample" "$PRECOMMIT" &&
+ setup_success_hook "pre-commit" &&
echo "even more" >>file &&
git add file &&
git commit --no-verify -m "even more" &&
@@ -144,8 +113,7 @@ test_expect_success '--no-verify with succeeding hook' '
'
test_expect_success '--no-verify with succeeding hook (merge)' '
- test_when_finished "rm -f \"$PREMERGE\" actual_hooks" &&
- cp "$HOOKDIR/success.sample" "$PREMERGE" &&
+ setup_success_hook "pre-merge-commit" &&
git branch -f side side-orig &&
git checkout side &&
git merge --no-verify -m "merge main" main &&
@@ -153,10 +121,19 @@ test_expect_success '--no-verify with succeeding hook (merge)' '
test_path_is_missing actual_hooks
'
+setup_failing_hook () {
+ test_when_finished "rm -f actual_hooks" &&
+ test_hook "$1" <<-EOF
+ echo $1-failing-hook >>actual_hooks
+ exit 1
+ EOF
+}
+
test_expect_success 'with failing hook' '
- test_when_finished "rm -f \"$PRECOMMIT\" expected_hooks actual_hooks" &&
- cp "$HOOKDIR/fail.sample" "$PRECOMMIT" &&
- echo "$PRECOMMIT" >expected_hooks &&
+ setup_failing_hook "pre-commit" &&
+ test_when_finished "rm -f expected_hooks" &&
+ echo "pre-commit-failing-hook" >expected_hooks &&
+
echo "another" >>file &&
git add file &&
test_must_fail git commit -m "another" &&
@@ -164,8 +141,7 @@ test_expect_success 'with failing hook' '
'
test_expect_success '--no-verify with failing hook' '
- test_when_finished "rm -f \"$PRECOMMIT\" actual_hooks" &&
- cp "$HOOKDIR/fail.sample" "$PRECOMMIT" &&
+ setup_failing_hook "pre-commit" &&
echo "stuff" >>file &&
git add file &&
git commit --no-verify -m "stuff" &&
@@ -173,9 +149,8 @@ test_expect_success '--no-verify with failing hook' '
'
test_expect_success 'with failing hook (merge)' '
- test_when_finished "rm -f \"$PREMERGE\" expected_hooks actual_hooks" &&
- cp "$HOOKDIR/fail.sample" "$PREMERGE" &&
- echo "$PREMERGE" >expected_hooks &&
+ setup_failing_hook "pre-merge-commit" &&
+ echo "pre-merge-commit-failing-hook" >expected_hooks &&
git checkout side &&
test_must_fail git merge -m "merge main" main &&
git checkout main &&
@@ -183,8 +158,8 @@ test_expect_success 'with failing hook (merge)' '
'
test_expect_success '--no-verify with failing hook (merge)' '
- test_when_finished "rm -f \"$PREMERGE\" actual_hooks" &&
- cp "$HOOKDIR/fail.sample" "$PREMERGE" &&
+ setup_failing_hook "pre-merge-commit" &&
+
git branch -f side side-orig &&
git checkout side &&
git merge --no-verify -m "merge main" main &&
@@ -192,9 +167,18 @@ test_expect_success '--no-verify with failing hook (merge)' '
test_path_is_missing actual_hooks
'
+setup_non_exec_hook () {
+ test_when_finished "rm -f actual_hooks" &&
+ test_hook "$1" <<-\EOF &&
+ echo non-exec >>actual_hooks
+ exit 1
+ EOF
+ test_hook --disable "$1"
+}
+
+
test_expect_success POSIXPERM 'with non-executable hook' '
- test_when_finished "rm -f \"$PRECOMMIT\" actual_hooks" &&
- cp "$HOOKDIR/non-exec.sample" "$PRECOMMIT" &&
+ setup_non_exec_hook "pre-commit" &&
echo "content" >>file &&
git add file &&
git commit -m "content" &&
@@ -202,8 +186,7 @@ test_expect_success POSIXPERM 'with non-executable hook' '
'
test_expect_success POSIXPERM '--no-verify with non-executable hook' '
- test_when_finished "rm -f \"$PRECOMMIT\" actual_hooks" &&
- cp "$HOOKDIR/non-exec.sample" "$PRECOMMIT" &&
+ setup_non_exec_hook "pre-commit" &&
echo "more content" >>file &&
git add file &&
git commit --no-verify -m "more content" &&
@@ -211,8 +194,7 @@ test_expect_success POSIXPERM '--no-verify with non-executable hook' '
'
test_expect_success POSIXPERM 'with non-executable hook (merge)' '
- test_when_finished "rm -f \"$PREMERGE\" actual_hooks" &&
- cp "$HOOKDIR/non-exec.sample" "$PREMERGE" &&
+ setup_non_exec_hook "pre-merge" &&
git branch -f side side-orig &&
git checkout side &&
git merge -m "merge main" main &&
@@ -221,8 +203,7 @@ test_expect_success POSIXPERM 'with non-executable hook (merge)' '
'
test_expect_success POSIXPERM '--no-verify with non-executable hook (merge)' '
- test_when_finished "rm -f \"$PREMERGE\" actual_hooks" &&
- cp "$HOOKDIR/non-exec.sample" "$PREMERGE" &&
+ setup_non_exec_hook "pre-merge" &&
git branch -f side side-orig &&
git checkout side &&
git merge --no-verify -m "merge main" main &&
@@ -230,10 +211,18 @@ test_expect_success POSIXPERM '--no-verify with non-executable hook (merge)' '
test_path_is_missing actual_hooks
'
+setup_require_prefix_hook () {
+ test_when_finished "rm -f expected_hooks" &&
+ echo require-prefix >expected_hooks &&
+ test_hook pre-commit <<-\EOF
+ echo require-prefix >>actual_hooks
+ test $GIT_PREFIX = "success/"
+ EOF
+}
+
test_expect_success 'with hook requiring GIT_PREFIX' '
- test_when_finished "rm -rf \"$PRECOMMIT\" expected_hooks actual_hooks success" &&
- cp "$HOOKDIR/require-prefix.sample" "$PRECOMMIT" &&
- echo "$PRECOMMIT" >expected_hooks &&
+ test_when_finished "rm -rf actual_hooks success" &&
+ setup_require_prefix_hook &&
echo "more content" >>file &&
git add file &&
mkdir success &&
@@ -245,9 +234,8 @@ test_expect_success 'with hook requiring GIT_PREFIX' '
'
test_expect_success 'with failing hook requiring GIT_PREFIX' '
- test_when_finished "rm -rf \"$PRECOMMIT\" expected_hooks actual_hooks fail" &&
- cp "$HOOKDIR/require-prefix.sample" "$PRECOMMIT" &&
- echo "$PRECOMMIT" >expected_hooks &&
+ test_when_finished "rm -rf actual_hooks fail" &&
+ setup_require_prefix_hook &&
echo "more content" >>file &&
git add file &&
mkdir fail &&
@@ -259,13 +247,23 @@ test_expect_success 'with failing hook requiring GIT_PREFIX' '
test_cmp expected_hooks actual_hooks
'
+setup_require_author_hook () {
+ test_when_finished "rm -f expected_hooks actual_hooks" &&
+ echo check-author >expected_hooks &&
+ test_hook pre-commit <<-\EOF
+ echo check-author >>actual_hooks
+ test "$GIT_AUTHOR_NAME" = "New Author" &&
+ test "$GIT_AUTHOR_EMAIL" = "newauthor@example.com"
+ EOF
+}
+
+
test_expect_success 'check the author in hook' '
- test_when_finished "rm -f \"$PRECOMMIT\" expected_hooks actual_hooks" &&
- cp "$HOOKDIR/check-author.sample" "$PRECOMMIT" &&
+ setup_require_author_hook &&
cat >expected_hooks <<-EOF &&
- $PRECOMMIT
- $PRECOMMIT
- $PRECOMMIT
+ check-author
+ check-author
+ check-author
EOF
test_must_fail git commit --allow-empty -m "by a.u.thor" &&
(
diff --git a/t/t7504-commit-msg-hook.sh b/t/t7504-commit-msg-hook.sh
index bba58f0480..a39de8c112 100755
--- a/t/t7504-commit-msg-hook.sh
+++ b/t/t7504-commit-msg-hook.sh
@@ -54,15 +54,11 @@ test_expect_success '--no-verify with no hook (editor)' '
'
-# now install hook that always succeeds
-HOOKDIR="$(git rev-parse --git-dir)/hooks"
-HOOK="$HOOKDIR/commit-msg"
-mkdir -p "$HOOKDIR"
-cat > "$HOOK" <<EOF
-#!/bin/sh
-exit 0
-EOF
-chmod +x "$HOOK"
+test_expect_success 'setup: commit-msg hook that always succeeds' '
+ test_hook --setup commit-msg <<-\EOF
+ exit 0
+ EOF
+'
test_expect_success 'with succeeding hook' '
@@ -98,11 +94,11 @@ test_expect_success '--no-verify with succeeding hook (editor)' '
'
-# now a hook that fails
-cat > "$HOOK" <<EOF
-#!/bin/sh
-exit 1
-EOF
+test_expect_success 'setup: commit-msg hook that always fails' '
+ test_hook --clobber commit-msg <<-\EOF
+ exit 1
+ EOF
+'
commit_msg_is () {
test "$(git log --pretty=format:%s%b -1)" = "$1"
@@ -176,8 +172,12 @@ test_expect_success 'merge bypasses failing hook with --no-verify' '
commit_msg_is "Merge branch '\''main'\'' into newbranch"
'
+test_expect_success 'setup: commit-msg hook made non-executable' '
+ git_dir="$(git rev-parse --git-dir)" &&
+ chmod -x "$git_dir/hooks/commit-msg"
+'
+
-chmod -x "$HOOK"
test_expect_success POSIXPERM 'with non-executable hook' '
echo "content" >file &&
@@ -212,13 +212,12 @@ test_expect_success POSIXPERM '--no-verify with non-executable hook (editor)' '
'
-# now a hook that edits the commit message
-cat > "$HOOK" <<'EOF'
-#!/bin/sh
-echo "new message" > "$1"
-exit 0
-EOF
-chmod +x "$HOOK"
+test_expect_success 'setup: commit-msg hook that edits the commit message' '
+ test_hook --clobber commit-msg <<-\EOF
+ echo "new message" >"$1"
+ exit 0
+ EOF
+'
test_expect_success 'hook edits commit message' '
diff --git a/t/t7505-prepare-commit-msg-hook.sh b/t/t7505-prepare-commit-msg-hook.sh
index e39c809ca4..2128142a61 100755
--- a/t/t7505-prepare-commit-msg-hook.sh
+++ b/t/t7505-prepare-commit-msg-hook.sh
@@ -47,25 +47,19 @@ test_expect_success 'with no hook' '
'
-# set up fake editor for interactive editing
-cat > fake-editor <<'EOF'
-#!/bin/sh
-exit 0
-EOF
-chmod +x fake-editor
-
-## Not using test_set_editor here so we can easily ensure the editor variable
-## is only set for the editor tests
-FAKE_EDITOR="$(pwd)/fake-editor"
-export FAKE_EDITOR
+test_expect_success 'setup fake editor for interactive editing' '
+ write_script fake-editor <<-\EOF &&
+ exit 0
+ EOF
-# now install hook that always succeeds and adds a message
-HOOKDIR="$(git rev-parse --git-dir)/hooks"
-HOOK="$HOOKDIR/prepare-commit-msg"
-mkdir -p "$HOOKDIR"
-echo "#!$SHELL_PATH" > "$HOOK"
-cat >> "$HOOK" <<'EOF'
+ ## Not using test_set_editor here so we can easily ensure the editor variable
+ ## is only set for the editor tests
+ FAKE_EDITOR="$(pwd)/fake-editor" &&
+ export FAKE_EDITOR
+'
+test_expect_success 'setup prepare-commit-msg hook' '
+ test_hook --setup prepare-commit-msg <<\EOF
GIT_DIR=$(git rev-parse --git-dir)
if test -d "$GIT_DIR/rebase-merge"
then
@@ -103,7 +97,7 @@ else
fi
exit 0
EOF
-chmod +x "$HOOK"
+'
echo dummy template > "$(git rev-parse --git-dir)/template"
@@ -265,10 +259,11 @@ test_expect_success 'with hook and editor (cherry-pick)' '
test "$(git log -1 --pretty=format:%s)" = merge
'
-cat > "$HOOK" <<'EOF'
-#!/bin/sh
-exit 1
-EOF
+test_expect_success 'setup: commit-msg hook that always fails' '
+ test_hook --setup --clobber prepare-commit-msg <<-\EOF
+ exit 1
+ EOF
+'
test_expect_success 'with failing hook' '
@@ -296,9 +291,9 @@ test_expect_success 'with failing hook (merge)' '
git checkout -B other HEAD@{1} &&
echo "more" >> file &&
git add file &&
- rm -f "$HOOK" &&
+ test_hook --remove prepare-commit-msg &&
git commit -m other &&
- write_script "$HOOK" <<-EOF &&
+ test_hook --setup prepare-commit-msg <<-\EOF &&
exit 1
EOF
git checkout - &&
diff --git a/t/t7508-status.sh b/t/t7508-status.sh
index 05c6c02435..2b7ef6c41a 100755
--- a/t/t7508-status.sh
+++ b/t/t7508-status.sh
@@ -1647,13 +1647,33 @@ test_expect_success '"Initial commit" should not be noted in commit template' '
'
test_expect_success '--no-optional-locks prevents index update' '
- test-tool chmtime =1234567890 .git/index &&
+ test_set_magic_mtime .git/index &&
git --no-optional-locks status &&
- test-tool chmtime --get .git/index >out &&
- grep ^1234567890 out &&
+ test_is_magic_mtime .git/index &&
git status &&
- test-tool chmtime --get .git/index >out &&
- ! grep ^1234567890 out
+ ! test_is_magic_mtime .git/index
+'
+
+test_expect_success 'racy timestamps will be fixed for clean worktree' '
+ echo content >racy-dirty &&
+ echo content >racy-racy &&
+ git add racy* &&
+ git commit -m "racy test files" &&
+ # let status rewrite the index, if necessary; after that we expect
+ # no more index writes unless caused by racy timestamps; note that
+ # timestamps may already be racy now (depending on previous tests)
+ git status &&
+ test_set_magic_mtime .git/index &&
+ git status &&
+ ! test_is_magic_mtime .git/index
+'
+
+test_expect_success 'racy timestamps will be fixed for dirty worktree' '
+ echo content2 >racy-dirty &&
+ git status &&
+ test_set_magic_mtime .git/index &&
+ git status &&
+ ! test_is_magic_mtime .git/index
'
test_done
diff --git a/t/t7519-status-fsmonitor.sh b/t/t7519-status-fsmonitor.sh
index a6308acf00..d4f9c6a837 100755
--- a/t/t7519-status-fsmonitor.sh
+++ b/t/t7519-status-fsmonitor.sh
@@ -26,7 +26,7 @@ dirty_repo () {
}
write_integration_script () {
- write_script .git/hooks/fsmonitor-test<<-\EOF
+ test_hook --setup --clobber fsmonitor-test<<-\EOF
if test "$#" -ne 2
then
echo "$0: exactly 2 arguments expected"
@@ -56,7 +56,6 @@ test_lazy_prereq UNTRACKED_CACHE '
'
test_expect_success 'setup' '
- mkdir -p .git/hooks &&
: >tracked &&
: >modified &&
mkdir dir1 &&
@@ -108,7 +107,7 @@ EOF
# test that "update-index --fsmonitor-valid" sets the fsmonitor valid bit
test_expect_success 'update-index --fsmonitor-valid" sets the fsmonitor valid bit' '
- write_script .git/hooks/fsmonitor-test<<-\EOF &&
+ test_hook fsmonitor-test<<-\EOF &&
printf "last_update_token\0"
EOF
git update-index --fsmonitor &&
@@ -169,7 +168,7 @@ EOF
# test that newly added files are marked valid
test_expect_success 'newly added files are marked valid' '
- write_script .git/hooks/fsmonitor-test<<-\EOF &&
+ test_hook --setup --clobber fsmonitor-test<<-\EOF &&
printf "last_update_token\0"
EOF
git add new &&
@@ -210,7 +209,7 @@ EOF
# test that *only* files returned by the integration script get flagged as invalid
test_expect_success '*only* files returned by the integration script get flagged as invalid' '
- write_script .git/hooks/fsmonitor-test<<-\EOF &&
+ test_hook --clobber fsmonitor-test<<-\EOF &&
printf "last_update_token\0"
printf "dir1/modified\0"
EOF
@@ -231,7 +230,7 @@ test_expect_success 'refresh_index() invalidates fsmonitor cache' '
dirty_repo &&
write_integration_script &&
git add . &&
- write_script .git/hooks/fsmonitor-test<<-\EOF &&
+ test_hook --clobber fsmonitor-test<<-\EOF &&
EOF
git commit -m "to reset" &&
git reset HEAD~1 &&
@@ -280,7 +279,7 @@ do
# Make sure it's actually skipping the check for modified and untracked
# (if enabled) files unless it is told about them.
test_expect_success "status doesn't detect unreported modifications" '
- write_script .git/hooks/fsmonitor-test<<-\EOF &&
+ test_hook --clobber fsmonitor-test<<-\EOF &&
printf "last_update_token\0"
:>marker
EOF
@@ -322,19 +321,25 @@ test_expect_success UNTRACKED_CACHE 'ignore .git changes when invalidating UNTR'
test_create_repo dot-git &&
(
cd dot-git &&
- mkdir -p .git/hooks &&
: >tracked &&
+ test-tool chmtime =-60 tracked &&
: >modified &&
+ test-tool chmtime =-60 modified &&
mkdir dir1 &&
: >dir1/tracked &&
+ test-tool chmtime =-60 dir1/tracked &&
: >dir1/modified &&
+ test-tool chmtime =-60 dir1/modified &&
mkdir dir2 &&
: >dir2/tracked &&
+ test-tool chmtime =-60 dir2/tracked &&
: >dir2/modified &&
+ test-tool chmtime =-60 dir2/modified &&
write_integration_script &&
git config core.fsmonitor .git/hooks/fsmonitor-test &&
git update-index --untracked-cache &&
git update-index --fsmonitor &&
+ git status &&
GIT_TRACE2_PERF="$TRASH_DIRECTORY/trace-before" \
git status &&
test-tool dump-untracked-cache >../before
@@ -407,14 +412,14 @@ test_expect_success 'status succeeds with sparse index' '
git -C sparse sparse-checkout init --cone --sparse-index &&
git -C sparse sparse-checkout set dir1 dir2 &&
- write_script .git/hooks/fsmonitor-test <<-\EOF &&
+ test_hook --clobber fsmonitor-test <<-\EOF &&
printf "last_update_token\0"
EOF
git -C full config core.fsmonitor ../.git/hooks/fsmonitor-test &&
git -C sparse config core.fsmonitor ../.git/hooks/fsmonitor-test &&
check_sparse_index_behavior ! &&
- write_script .git/hooks/fsmonitor-test <<-\EOF &&
+ test_hook --clobber fsmonitor-test <<-\EOF &&
printf "last_update_token\0"
printf "dir1/modified\0"
EOF
@@ -432,7 +437,7 @@ test_expect_success 'status succeeds with sparse index' '
# This one modifies outside the sparse-checkout definition
# and hence we expect to expand the sparse-index.
- write_script .git/hooks/fsmonitor-test <<-\EOF &&
+ test_hook --clobber fsmonitor-test <<-\EOF &&
printf "last_update_token\0"
printf "dir1a/modified\0"
EOF
diff --git a/t/t7520-ignored-hook-warning.sh b/t/t7520-ignored-hook-warning.sh
index 634fb7f23a..dc57526e6f 100755
--- a/t/t7520-ignored-hook-warning.sh
+++ b/t/t7520-ignored-hook-warning.sh
@@ -5,10 +5,7 @@ test_description='ignored hook warning'
. ./test-lib.sh
test_expect_success setup '
- hookdir="$(git rev-parse --git-dir)/hooks" &&
- hook="$hookdir/pre-commit" &&
- mkdir -p "$hookdir" &&
- write_script "$hook" <<-\EOF
+ test_hook --setup pre-commit <<-\EOF
exit 0
EOF
'
@@ -19,20 +16,20 @@ test_expect_success 'no warning if hook is not ignored' '
'
test_expect_success POSIXPERM 'warning if hook is ignored' '
- chmod -x "$hook" &&
+ test_hook --disable pre-commit &&
git commit --allow-empty -m "even more" 2>message &&
test_i18ngrep -e "hook was ignored" message
'
test_expect_success POSIXPERM 'no warning if advice.ignoredHook set to false' '
test_config advice.ignoredHook false &&
- chmod -x "$hook" &&
+ test_hook --disable pre-commit &&
git commit --allow-empty -m "even more" 2>message &&
test_i18ngrep ! -e "hook was ignored" message
'
test_expect_success 'no warning if unset advice.ignoredHook and hook removed' '
- rm -f "$hook" &&
+ test_hook --remove pre-commit &&
test_unconfig advice.ignoredHook &&
git commit --allow-empty -m "even more" 2>message &&
test_i18ngrep ! -e "hook was ignored" message
diff --git a/t/t7524-commit-summary.sh b/t/t7524-commit-summary.sh
new file mode 100755
index 0000000000..47b2f1dc22
--- /dev/null
+++ b/t/t7524-commit-summary.sh
@@ -0,0 +1,31 @@
+#!/bin/sh
+
+test_description='git commit summary'
+. ./test-lib.sh
+
+test_expect_success 'setup' '
+ test_seq 101 200 >file &&
+ git add file &&
+ git commit -m initial &&
+ git tag initial
+'
+
+test_expect_success 'commit summary ignores rewrites' '
+ git reset --hard initial &&
+ test_seq 200 300 >file &&
+
+ git diff --stat >diffstat &&
+ git diff --stat --break-rewrites >diffstatrewrite &&
+
+ # make sure this scenario is a detectable rewrite
+ ! test_cmp_bin diffstat diffstatrewrite &&
+
+ git add file &&
+ git commit -m second >actual &&
+
+ grep "1 file" <actual >actual.total &&
+ grep "1 file" <diffstat >diffstat.total &&
+ test_cmp diffstat.total actual.total
+'
+
+test_done
diff --git a/t/t7527-builtin-fsmonitor.sh b/t/t7527-builtin-fsmonitor.sh
new file mode 100755
index 0000000000..bd0c952a11
--- /dev/null
+++ b/t/t7527-builtin-fsmonitor.sh
@@ -0,0 +1,609 @@
+#!/bin/sh
+
+test_description='built-in file system watcher'
+
+. ./test-lib.sh
+
+if ! test_have_prereq FSMONITOR_DAEMON
+then
+ skip_all="fsmonitor--daemon is not supported on this platform"
+ test_done
+fi
+
+stop_daemon_delete_repo () {
+ r=$1 &&
+ test_might_fail git -C $r fsmonitor--daemon stop &&
+ rm -rf $1
+}
+
+start_daemon () {
+ r= tf= t2= tk= &&
+
+ while test "$#" -ne 0
+ do
+ case "$1" in
+ -C)
+ r="-C ${2?}"
+ shift
+ ;;
+ --tf)
+ tf="${2?}"
+ shift
+ ;;
+ --t2)
+ t2="${2?}"
+ shift
+ ;;
+ --tk)
+ tk="${2?}"
+ shift
+ ;;
+ -*)
+ BUG "error: unknown option: '$1'"
+ ;;
+ *)
+ BUG "error: unbound argument: '$1'"
+ ;;
+ esac
+ shift
+ done &&
+
+ (
+ if test -n "$tf"
+ then
+ GIT_TRACE_FSMONITOR="$tf"
+ export GIT_TRACE_FSMONITOR
+ fi &&
+
+ if test -n "$t2"
+ then
+ GIT_TRACE2_PERF="$t2"
+ export GIT_TRACE2_PERF
+ fi &&
+
+ if test -n "$tk"
+ then
+ GIT_TEST_FSMONITOR_TOKEN="$tk"
+ export GIT_TEST_FSMONITOR_TOKEN
+ fi &&
+
+ git $r fsmonitor--daemon start &&
+ git $r fsmonitor--daemon status
+ )
+}
+
+# Is a Trace2 data event present with the given catetory and key?
+# We do not care what the value is.
+#
+have_t2_data_event () {
+ c=$1 &&
+ k=$2 &&
+
+ grep -e '"event":"data".*"category":"'"$c"'".*"key":"'"$k"'"'
+}
+
+test_expect_success 'explicit daemon start and stop' '
+ test_when_finished "stop_daemon_delete_repo test_explicit" &&
+
+ git init test_explicit &&
+ start_daemon -C test_explicit &&
+
+ git -C test_explicit fsmonitor--daemon stop &&
+ test_must_fail git -C test_explicit fsmonitor--daemon status
+'
+
+test_expect_success 'implicit daemon start' '
+ test_when_finished "stop_daemon_delete_repo test_implicit" &&
+
+ git init test_implicit &&
+ test_must_fail git -C test_implicit fsmonitor--daemon status &&
+
+ # query will implicitly start the daemon.
+ #
+ # for test-script simplicity, we send a V1 timestamp rather than
+ # a V2 token. either way, the daemon response to any query contains
+ # a new V2 token. (the daemon may complain that we sent a V1 request,
+ # but this test case is only concerned with whether the daemon was
+ # implicitly started.)
+
+ GIT_TRACE2_EVENT="$PWD/.git/trace" \
+ test-tool -C test_implicit fsmonitor-client query --token 0 >actual &&
+ nul_to_q <actual >actual.filtered &&
+ grep "builtin:" actual.filtered &&
+
+ # confirm that a daemon was started in the background.
+ #
+ # since the mechanism for starting the background daemon is platform
+ # dependent, just confirm that the foreground command received a
+ # response from the daemon.
+
+ have_t2_data_event fsm_client query/response-length <.git/trace &&
+
+ git -C test_implicit fsmonitor--daemon status &&
+ git -C test_implicit fsmonitor--daemon stop &&
+ test_must_fail git -C test_implicit fsmonitor--daemon status
+'
+
+test_expect_success 'implicit daemon stop (delete .git)' '
+ test_when_finished "stop_daemon_delete_repo test_implicit_1" &&
+
+ git init test_implicit_1 &&
+
+ start_daemon -C test_implicit_1 &&
+
+ # deleting the .git directory will implicitly stop the daemon.
+ rm -rf test_implicit_1/.git &&
+
+ # [1] Create an empty .git directory so that the following Git
+ # command will stay relative to the `-C` directory.
+ #
+ # Without this, the Git command will override the requested
+ # -C argument and crawl out to the containing Git source tree.
+ # This would make the test result dependent upon whether we
+ # were using fsmonitor on our development worktree.
+ #
+ sleep 1 &&
+ mkdir test_implicit_1/.git &&
+
+ test_must_fail git -C test_implicit_1 fsmonitor--daemon status
+'
+
+test_expect_success 'implicit daemon stop (rename .git)' '
+ test_when_finished "stop_daemon_delete_repo test_implicit_2" &&
+
+ git init test_implicit_2 &&
+
+ start_daemon -C test_implicit_2 &&
+
+ # renaming the .git directory will implicitly stop the daemon.
+ mv test_implicit_2/.git test_implicit_2/.xxx &&
+
+ # See [1] above.
+ #
+ sleep 1 &&
+ mkdir test_implicit_2/.git &&
+
+ test_must_fail git -C test_implicit_2 fsmonitor--daemon status
+'
+
+test_expect_success 'cannot start multiple daemons' '
+ test_when_finished "stop_daemon_delete_repo test_multiple" &&
+
+ git init test_multiple &&
+
+ start_daemon -C test_multiple &&
+
+ test_must_fail git -C test_multiple fsmonitor--daemon start 2>actual &&
+ grep "fsmonitor--daemon is already running" actual &&
+
+ git -C test_multiple fsmonitor--daemon stop &&
+ test_must_fail git -C test_multiple fsmonitor--daemon status
+'
+
+# These tests use the main repo in the trash directory
+
+test_expect_success 'setup' '
+ >tracked &&
+ >modified &&
+ >delete &&
+ >rename &&
+ mkdir dir1 &&
+ >dir1/tracked &&
+ >dir1/modified &&
+ >dir1/delete &&
+ >dir1/rename &&
+ mkdir dir2 &&
+ >dir2/tracked &&
+ >dir2/modified &&
+ >dir2/delete &&
+ >dir2/rename &&
+ mkdir dirtorename &&
+ >dirtorename/a &&
+ >dirtorename/b &&
+
+ cat >.gitignore <<-\EOF &&
+ .gitignore
+ expect*
+ actual*
+ flush*
+ trace*
+ EOF
+
+ git -c core.fsmonitor=false add . &&
+ test_tick &&
+ git -c core.fsmonitor=false commit -m initial &&
+
+ git config core.fsmonitor true
+'
+
+# The test already explicitly stopped (or tried to stop) the daemon.
+# This is here in case something else fails first.
+#
+redundant_stop_daemon () {
+ test_might_fail git fsmonitor--daemon stop
+}
+
+test_expect_success 'update-index implicitly starts daemon' '
+ test_when_finished redundant_stop_daemon &&
+
+ test_must_fail git fsmonitor--daemon status &&
+
+ GIT_TRACE2_EVENT="$PWD/.git/trace_implicit_1" \
+ git update-index --fsmonitor &&
+
+ git fsmonitor--daemon status &&
+ test_might_fail git fsmonitor--daemon stop &&
+
+ # Confirm that the trace2 log contains a record of the
+ # daemon starting.
+ test_subcommand git fsmonitor--daemon start <.git/trace_implicit_1
+'
+
+test_expect_success 'status implicitly starts daemon' '
+ test_when_finished redundant_stop_daemon &&
+
+ test_must_fail git fsmonitor--daemon status &&
+
+ GIT_TRACE2_EVENT="$PWD/.git/trace_implicit_2" \
+ git status >actual &&
+
+ git fsmonitor--daemon status &&
+ test_might_fail git fsmonitor--daemon stop &&
+
+ # Confirm that the trace2 log contains a record of the
+ # daemon starting.
+ test_subcommand git fsmonitor--daemon start <.git/trace_implicit_2
+'
+
+edit_files () {
+ echo 1 >modified &&
+ echo 2 >dir1/modified &&
+ echo 3 >dir2/modified &&
+ >dir1/untracked
+}
+
+delete_files () {
+ rm -f delete &&
+ rm -f dir1/delete &&
+ rm -f dir2/delete
+}
+
+create_files () {
+ echo 1 >new &&
+ echo 2 >dir1/new &&
+ echo 3 >dir2/new
+}
+
+rename_files () {
+ mv rename renamed &&
+ mv dir1/rename dir1/renamed &&
+ mv dir2/rename dir2/renamed
+}
+
+file_to_directory () {
+ rm -f delete &&
+ mkdir delete &&
+ echo 1 >delete/new
+}
+
+directory_to_file () {
+ rm -rf dir1 &&
+ echo 1 >dir1
+}
+
+# The next few test cases confirm that our fsmonitor daemon sees each type
+# of OS filesystem notification that we care about. At this layer we just
+# ensure we are getting the OS notifications and do not try to confirm what
+# is reported by `git status`.
+#
+# We run a simple query after modifying the filesystem just to introduce
+# a bit of a delay so that the trace logging from the daemon has time to
+# get flushed to disk.
+#
+# We `reset` and `clean` at the bottom of each test (and before stopping the
+# daemon) because these commands might implicitly restart the daemon.
+
+clean_up_repo_and_stop_daemon () {
+ git reset --hard HEAD &&
+ git clean -fd &&
+ test_might_fail git fsmonitor--daemon stop &&
+ rm -f .git/trace
+}
+
+test_expect_success 'edit some files' '
+ test_when_finished clean_up_repo_and_stop_daemon &&
+
+ start_daemon --tf "$PWD/.git/trace" &&
+
+ edit_files &&
+
+ test-tool fsmonitor-client query --token 0 &&
+
+ grep "^event: dir1/modified$" .git/trace &&
+ grep "^event: dir2/modified$" .git/trace &&
+ grep "^event: modified$" .git/trace &&
+ grep "^event: dir1/untracked$" .git/trace
+'
+
+test_expect_success 'create some files' '
+ test_when_finished clean_up_repo_and_stop_daemon &&
+
+ start_daemon --tf "$PWD/.git/trace" &&
+
+ create_files &&
+
+ test-tool fsmonitor-client query --token 0 &&
+
+ grep "^event: dir1/new$" .git/trace &&
+ grep "^event: dir2/new$" .git/trace &&
+ grep "^event: new$" .git/trace
+'
+
+test_expect_success 'delete some files' '
+ test_when_finished clean_up_repo_and_stop_daemon &&
+
+ start_daemon --tf "$PWD/.git/trace" &&
+
+ delete_files &&
+
+ test-tool fsmonitor-client query --token 0 &&
+
+ grep "^event: dir1/delete$" .git/trace &&
+ grep "^event: dir2/delete$" .git/trace &&
+ grep "^event: delete$" .git/trace
+'
+
+test_expect_success 'rename some files' '
+ test_when_finished clean_up_repo_and_stop_daemon &&
+
+ start_daemon --tf "$PWD/.git/trace" &&
+
+ rename_files &&
+
+ test-tool fsmonitor-client query --token 0 &&
+
+ grep "^event: dir1/rename$" .git/trace &&
+ grep "^event: dir2/rename$" .git/trace &&
+ grep "^event: rename$" .git/trace &&
+ grep "^event: dir1/renamed$" .git/trace &&
+ grep "^event: dir2/renamed$" .git/trace &&
+ grep "^event: renamed$" .git/trace
+'
+
+test_expect_success 'rename directory' '
+ test_when_finished clean_up_repo_and_stop_daemon &&
+
+ start_daemon --tf "$PWD/.git/trace" &&
+
+ mv dirtorename dirrenamed &&
+
+ test-tool fsmonitor-client query --token 0 &&
+
+ grep "^event: dirtorename/*$" .git/trace &&
+ grep "^event: dirrenamed/*$" .git/trace
+'
+
+test_expect_success 'file changes to directory' '
+ test_when_finished clean_up_repo_and_stop_daemon &&
+
+ start_daemon --tf "$PWD/.git/trace" &&
+
+ file_to_directory &&
+
+ test-tool fsmonitor-client query --token 0 &&
+
+ grep "^event: delete$" .git/trace &&
+ grep "^event: delete/new$" .git/trace
+'
+
+test_expect_success 'directory changes to a file' '
+ test_when_finished clean_up_repo_and_stop_daemon &&
+
+ start_daemon --tf "$PWD/.git/trace" &&
+
+ directory_to_file &&
+
+ test-tool fsmonitor-client query --token 0 &&
+
+ grep "^event: dir1$" .git/trace
+'
+
+# The next few test cases exercise the token-resync code. When filesystem
+# drops events (because of filesystem velocity or because the daemon isn't
+# polling fast enough), we need to discard the cached data (relative to the
+# current token) and start collecting events under a new token.
+#
+# the 'test-tool fsmonitor-client flush' command can be used to send a
+# "flush" message to a running daemon and ask it to do a flush/resync.
+
+test_expect_success 'flush cached data' '
+ test_when_finished "stop_daemon_delete_repo test_flush" &&
+
+ git init test_flush &&
+
+ start_daemon -C test_flush --tf "$PWD/.git/trace_daemon" --tk true &&
+
+ # The daemon should have an initial token with no events in _0 and
+ # then a few (probably platform-specific number of) events in _1.
+ # These should both have the same <token_id>.
+
+ test-tool -C test_flush fsmonitor-client query --token "builtin:test_00000001:0" >actual_0 &&
+ nul_to_q <actual_0 >actual_q0 &&
+
+ >test_flush/file_1 &&
+ >test_flush/file_2 &&
+
+ test-tool -C test_flush fsmonitor-client query --token "builtin:test_00000001:0" >actual_1 &&
+ nul_to_q <actual_1 >actual_q1 &&
+
+ grep "file_1" actual_q1 &&
+
+ # Force a flush. This will change the <token_id>, reset the <seq_nr>, and
+ # flush the file data. Then create some events and ensure that the file
+ # again appears in the cache. It should have the new <token_id>.
+
+ test-tool -C test_flush fsmonitor-client flush >flush_0 &&
+ nul_to_q <flush_0 >flush_q0 &&
+ grep "^builtin:test_00000002:0Q/Q$" flush_q0 &&
+
+ test-tool -C test_flush fsmonitor-client query --token "builtin:test_00000002:0" >actual_2 &&
+ nul_to_q <actual_2 >actual_q2 &&
+
+ grep "^builtin:test_00000002:0Q$" actual_q2 &&
+
+ >test_flush/file_3 &&
+
+ test-tool -C test_flush fsmonitor-client query --token "builtin:test_00000002:0" >actual_3 &&
+ nul_to_q <actual_3 >actual_q3 &&
+
+ grep "file_3" actual_q3
+'
+
+# The next few test cases create repos where the .git directory is NOT
+# inside the one of the working directory. That is, where .git is a file
+# that points to a directory elsewhere. This happens for submodules and
+# non-primary worktrees.
+
+test_expect_success 'setup worktree base' '
+ git init wt-base &&
+ echo 1 >wt-base/file1 &&
+ git -C wt-base add file1 &&
+ git -C wt-base commit -m "c1"
+'
+
+test_expect_success 'worktree with .git file' '
+ git -C wt-base worktree add ../wt-secondary &&
+
+ start_daemon -C wt-secondary \
+ --tf "$PWD/trace_wt_secondary" \
+ --t2 "$PWD/trace2_wt_secondary" &&
+
+ git -C wt-secondary fsmonitor--daemon stop &&
+ test_must_fail git -C wt-secondary fsmonitor--daemon status
+'
+
+# NEEDSWORK: Repeat one of the "edit" tests on wt-secondary and
+# confirm that we get the same events and behavior -- that is, that
+# fsmonitor--daemon correctly watches BOTH the working directory and
+# the external GITDIR directory and behaves the same as when ".git"
+# is a directory inside the working directory.
+
+test_expect_success 'cleanup worktrees' '
+ stop_daemon_delete_repo wt-secondary &&
+ stop_daemon_delete_repo wt-base
+'
+
+# The next few tests perform arbitrary/contrived file operations and
+# confirm that status is correct. That is, that the data (or lack of
+# data) from fsmonitor doesn't cause incorrect results. And doesn't
+# cause incorrect results when the untracked-cache is enabled.
+
+test_lazy_prereq UNTRACKED_CACHE '
+ git update-index --test-untracked-cache
+'
+
+test_expect_success 'Matrix: setup for untracked-cache,fsmonitor matrix' '
+ test_unconfig core.fsmonitor &&
+ git update-index --no-fsmonitor &&
+ test_might_fail git fsmonitor--daemon stop
+'
+
+matrix_clean_up_repo () {
+ git reset --hard HEAD &&
+ git clean -fd
+}
+
+matrix_try () {
+ uc=$1 &&
+ fsm=$2 &&
+ fn=$3 &&
+
+ if test $uc = true && test $fsm = false
+ then
+ # The untracked-cache is buggy when FSMonitor is
+ # DISABLED, so skip the tests for this matrix
+ # combination.
+ #
+ # We've observed random, occasional test failures on
+ # Windows and MacOS when the UC is turned on and FSM
+ # is turned off. These are rare, but they do happen
+ # indicating that it is probably a race condition within
+ # the untracked cache itself.
+ #
+ # It usually happens when a test does F/D trickery and
+ # then the NEXT test fails because of extra status
+ # output from stale UC data from the previous test.
+ #
+ # Since FSMonitor is not involved in the error, skip
+ # the tests for this matrix combination.
+ #
+ return 0
+ fi &&
+
+ test_expect_success "Matrix[uc:$uc][fsm:$fsm] $fn" '
+ matrix_clean_up_repo &&
+ $fn &&
+ if test $uc = false && test $fsm = false
+ then
+ git status --porcelain=v1 >.git/expect.$fn
+ else
+ git status --porcelain=v1 >.git/actual.$fn &&
+ test_cmp .git/expect.$fn .git/actual.$fn
+ fi
+ '
+}
+
+uc_values="false"
+test_have_prereq UNTRACKED_CACHE && uc_values="false true"
+for uc_val in $uc_values
+do
+ if test $uc_val = false
+ then
+ test_expect_success "Matrix[uc:$uc_val] disable untracked cache" '
+ git config core.untrackedcache false &&
+ git update-index --no-untracked-cache
+ '
+ else
+ test_expect_success "Matrix[uc:$uc_val] enable untracked cache" '
+ git config core.untrackedcache true &&
+ git update-index --untracked-cache
+ '
+ fi
+
+ fsm_values="false true"
+ for fsm_val in $fsm_values
+ do
+ if test $fsm_val = false
+ then
+ test_expect_success "Matrix[uc:$uc_val][fsm:$fsm_val] disable fsmonitor" '
+ test_unconfig core.fsmonitor &&
+ git update-index --no-fsmonitor &&
+ test_might_fail git fsmonitor--daemon stop
+ '
+ else
+ test_expect_success "Matrix[uc:$uc_val][fsm:$fsm_val] enable fsmonitor" '
+ git config core.fsmonitor true &&
+ git fsmonitor--daemon start &&
+ git update-index --fsmonitor
+ '
+ fi
+
+ matrix_try $uc_val $fsm_val edit_files
+ matrix_try $uc_val $fsm_val delete_files
+ matrix_try $uc_val $fsm_val create_files
+ matrix_try $uc_val $fsm_val rename_files
+ matrix_try $uc_val $fsm_val file_to_directory
+ matrix_try $uc_val $fsm_val directory_to_file
+
+ if test $fsm_val = true
+ then
+ test_expect_success "Matrix[uc:$uc_val][fsm:$fsm_val] disable fsmonitor at end" '
+ test_unconfig core.fsmonitor &&
+ git update-index --no-fsmonitor &&
+ test_might_fail git fsmonitor--daemon stop
+ '
+ fi
+ done
+done
+
+test_done
diff --git a/t/t7609-mergetool--lib.sh b/t/t7609-mergetool--lib.sh
new file mode 100755
index 0000000000..d848fe6442
--- /dev/null
+++ b/t/t7609-mergetool--lib.sh
@@ -0,0 +1,14 @@
+#!/bin/sh
+
+test_description='git mergetool
+
+Testing basic merge tools options'
+
+. ./test-lib.sh
+
+test_expect_success 'mergetool --tool=vimdiff creates the expected layout' '
+ . $GIT_BUILD_DIR/mergetools/vimdiff &&
+ run_unit_tests
+'
+
+test_done
diff --git a/t/t7700-repack.sh b/t/t7700-repack.sh
index e489869dd9..ca45c4cd2c 100755
--- a/t/t7700-repack.sh
+++ b/t/t7700-repack.sh
@@ -312,16 +312,13 @@ test_expect_success 'cleans up MIDX when appropriate' '
checksum=$(midx_checksum $objdir) &&
test_path_is_file $midx &&
test_path_is_file $midx-$checksum.bitmap &&
- test_path_is_file $midx-$checksum.rev &&
test_commit repack-3 &&
GIT_TEST_MULTI_PACK_INDEX=0 git repack -Adb --write-midx &&
test_path_is_file $midx &&
test_path_is_missing $midx-$checksum.bitmap &&
- test_path_is_missing $midx-$checksum.rev &&
test_path_is_file $midx-$(midx_checksum $objdir).bitmap &&
- test_path_is_file $midx-$(midx_checksum $objdir).rev &&
test_commit repack-4 &&
GIT_TEST_MULTI_PACK_INDEX=0 git repack -Adb &&
@@ -354,7 +351,6 @@ test_expect_success '--write-midx with preferred bitmap tips' '
test_line_count = 1 before &&
rm -fr $midx-$(midx_checksum $objdir).bitmap &&
- rm -fr $midx-$(midx_checksum $objdir).rev &&
rm -fr $midx &&
# instead of constructing the snapshot ourselves (c.f., the test
@@ -373,10 +369,61 @@ test_expect_success '--write-midx with preferred bitmap tips' '
)
'
+# The first argument is expected to be a filename
+# and that file should contain the name of a .idx
+# file. Send the list of objects in that .idx file
+# into stdout.
+get_sorted_objects_from_pack () {
+ git show-index <$(cat "$1") >raw &&
+ cut -d" " -f2 raw
+}
+
test_expect_success '--write-midx -b packs non-kept objects' '
- GIT_TRACE2_EVENT="$(pwd)/trace.txt" \
- git repack --write-midx -a -b &&
- test_subcommand_inexact git pack-objects --honor-pack-keep <trace.txt
+ git init repo &&
+ test_when_finished "rm -fr repo" &&
+ (
+ cd repo &&
+
+ # Create a kept pack-file
+ test_commit base &&
+ git repack -ad &&
+ find $objdir/pack -name "*.idx" >before &&
+ test_line_count = 1 before &&
+ before_name=$(cat before) &&
+ >${before_name%.idx}.keep &&
+
+ # Create a non-kept pack-file
+ test_commit other &&
+ git repack &&
+
+ # Create loose objects
+ test_commit loose &&
+
+ # Repack everything
+ git repack --write-midx -a -b -d &&
+
+ # There should be two pack-files now, the
+ # old, kept pack and the new, non-kept pack.
+ find $objdir/pack -name "*.idx" | sort >after &&
+ test_line_count = 2 after &&
+ find $objdir/pack -name "*.keep" >kept &&
+ kept_name=$(cat kept) &&
+ echo ${kept_name%.keep}.idx >kept-idx &&
+ test_cmp before kept-idx &&
+
+ # Get object list from the kept pack.
+ get_sorted_objects_from_pack before >old.objects &&
+
+ # Get object list from the one non-kept pack-file
+ comm -13 before after >new-pack &&
+ test_line_count = 1 new-pack &&
+ get_sorted_objects_from_pack new-pack >new.objects &&
+
+ # None of the objects in the new pack should
+ # exist within the kept pack.
+ comm -12 old.objects new.objects >shared.objects &&
+ test_must_be_empty shared.objects
+ )
'
test_expect_success TTY '--quiet disables progress' '
@@ -385,4 +432,54 @@ test_expect_success TTY '--quiet disables progress' '
test_must_be_empty stderr
'
+test_expect_success 'setup for update-server-info' '
+ git init update-server-info &&
+ test_commit -C update-server-info message
+'
+
+test_server_info_present () {
+ test_path_is_file update-server-info/.git/objects/info/packs &&
+ test_path_is_file update-server-info/.git/info/refs
+}
+
+test_server_info_missing () {
+ test_path_is_missing update-server-info/.git/objects/info/packs &&
+ test_path_is_missing update-server-info/.git/info/refs
+}
+
+test_server_info_cleanup () {
+ rm -f update-server-info/.git/objects/info/packs update-server-info/.git/info/refs &&
+ test_server_info_missing
+}
+
+test_expect_success 'updates server info by default' '
+ test_server_info_cleanup &&
+ git -C update-server-info repack &&
+ test_server_info_present
+'
+
+test_expect_success '-n skips updating server info' '
+ test_server_info_cleanup &&
+ git -C update-server-info repack -n &&
+ test_server_info_missing
+'
+
+test_expect_success 'repack.updateServerInfo=true updates server info' '
+ test_server_info_cleanup &&
+ git -C update-server-info -c repack.updateServerInfo=true repack &&
+ test_server_info_present
+'
+
+test_expect_success 'repack.updateServerInfo=false skips updating server info' '
+ test_server_info_cleanup &&
+ git -C update-server-info -c repack.updateServerInfo=false repack &&
+ test_server_info_missing
+'
+
+test_expect_success '-n overrides repack.updateServerInfo=true' '
+ test_server_info_cleanup &&
+ git -C update-server-info -c repack.updateServerInfo=true repack -n &&
+ test_server_info_missing
+'
+
test_done
diff --git a/t/t7810-grep.sh b/t/t7810-grep.sh
index 424c31c328..6935601171 100755
--- a/t/t7810-grep.sh
+++ b/t/t7810-grep.sh
@@ -98,6 +98,37 @@ test_expect_success 'grep should not segfault with a bad input' '
test_invalid_grep_expression --and -e A
+test_pattern_type () {
+ H=$1 &&
+ HC=$2 &&
+ L=$3 &&
+ type=$4 &&
+ shift 4 &&
+
+ expected_str= &&
+ case "$type" in
+ BRE)
+ expected_str="${HC}ab:a+bc"
+ ;;
+ ERE)
+ expected_str="${HC}ab:abc"
+ ;;
+ FIX)
+ expected_str="${HC}ab:a+b*c"
+ ;;
+ *)
+ BUG "unknown pattern type '$type'"
+ ;;
+ esac &&
+ config_str="$@" &&
+
+ test_expect_success "grep $L with '$config_str' interpreted as $type" '
+ echo $expected_str >expected &&
+ git $config_str grep "a+b*c" $H ab >actual &&
+ test_cmp expected actual
+ '
+}
+
for H in HEAD ''
do
case "$H" in
@@ -393,35 +424,13 @@ do
git grep --no-recursive -n -e vvv $H -- t . >actual &&
test_cmp expected actual
'
- test_expect_success "grep $L with grep.extendedRegexp=false" '
- echo "${HC}ab:a+bc" >expected &&
- git -c grep.extendedRegexp=false grep "a+b*c" $H ab >actual &&
- test_cmp expected actual
- '
- test_expect_success "grep $L with grep.extendedRegexp=true" '
- echo "${HC}ab:abc" >expected &&
- git -c grep.extendedRegexp=true grep "a+b*c" $H ab >actual &&
- test_cmp expected actual
- '
- test_expect_success "grep $L with grep.patterntype=basic" '
- echo "${HC}ab:a+bc" >expected &&
- git -c grep.patterntype=basic grep "a+b*c" $H ab >actual &&
- test_cmp expected actual
- '
-
- test_expect_success "grep $L with grep.patterntype=extended" '
- echo "${HC}ab:abc" >expected &&
- git -c grep.patterntype=extended grep "a+b*c" $H ab >actual &&
- test_cmp expected actual
- '
-
- test_expect_success "grep $L with grep.patterntype=fixed" '
- echo "${HC}ab:a+b*c" >expected &&
- git -c grep.patterntype=fixed grep "a+b*c" $H ab >actual &&
- test_cmp expected actual
- '
+ test_pattern_type "$H" "$HC" "$L" BRE -c grep.extendedRegexp=false
+ test_pattern_type "$H" "$HC" "$L" ERE -c grep.extendedRegexp=true
+ test_pattern_type "$H" "$HC" "$L" BRE -c grep.patternType=basic
+ test_pattern_type "$H" "$HC" "$L" ERE -c grep.patternType=extended
+ test_pattern_type "$H" "$HC" "$L" FIX -c grep.patternType=fixed
test_expect_success PCRE "grep $L with grep.patterntype=perl" '
echo "${HC}ab:a+b*c" >expected &&
@@ -433,59 +442,76 @@ do
test_must_fail git -c grep.patterntype=perl grep "foo.*bar"
'
- test_expect_success "grep $L with grep.patternType=default and grep.extendedRegexp=true" '
- echo "${HC}ab:abc" >expected &&
- git \
- -c grep.patternType=default \
- -c grep.extendedRegexp=true \
- grep "a+b*c" $H ab >actual &&
- test_cmp expected actual
- '
-
- test_expect_success "grep $L with grep.extendedRegexp=true and grep.patternType=default" '
- echo "${HC}ab:abc" >expected &&
- git \
- -c grep.extendedRegexp=true \
- -c grep.patternType=default \
- grep "a+b*c" $H ab >actual &&
- test_cmp expected actual
- '
-
- test_expect_success "grep $L with grep.patternType=extended and grep.extendedRegexp=false" '
- echo "${HC}ab:abc" >expected &&
- git \
- -c grep.patternType=extended \
- -c grep.extendedRegexp=false \
- grep "a+b*c" $H ab >actual &&
- test_cmp expected actual
- '
-
- test_expect_success "grep $L with grep.patternType=basic and grep.extendedRegexp=true" '
- echo "${HC}ab:a+bc" >expected &&
- git \
- -c grep.patternType=basic \
- -c grep.extendedRegexp=true \
- grep "a+b*c" $H ab >actual &&
- test_cmp expected actual
- '
-
- test_expect_success "grep $L with grep.extendedRegexp=false and grep.patternType=extended" '
- echo "${HC}ab:abc" >expected &&
- git \
- -c grep.extendedRegexp=false \
- -c grep.patternType=extended \
- grep "a+b*c" $H ab >actual &&
- test_cmp expected actual
- '
-
- test_expect_success "grep $L with grep.extendedRegexp=true and grep.patternType=basic" '
- echo "${HC}ab:a+bc" >expected &&
- git \
- -c grep.extendedRegexp=true \
- -c grep.patternType=basic \
- grep "a+b*c" $H ab >actual &&
- test_cmp expected actual
- '
+ test_pattern_type "$H" "$HC" "$L" ERE \
+ -c grep.patternType=default \
+ -c grep.extendedRegexp=true
+ test_pattern_type "$H" "$HC" "$L" ERE \
+ -c grep.extendedRegexp=true \
+ -c grep.patternType=default
+ test_pattern_type "$H" "$HC" "$L" ERE \
+ -c grep.patternType=extended \
+ -c grep.extendedRegexp=false
+ test_pattern_type "$H" "$HC" "$L" BRE \
+ -c grep.patternType=basic \
+ -c grep.extendedRegexp=true
+ test_pattern_type "$H" "$HC" "$L" ERE \
+ -c grep.extendedRegexp=false \
+ -c grep.patternType=extended
+ test_pattern_type "$H" "$HC" "$L" BRE \
+ -c grep.extendedRegexp=true \
+ -c grep.patternType=basic
+
+ # grep.extendedRegexp is last-one-wins
+ test_pattern_type "$H" "$HC" "$L" BRE \
+ -c grep.extendedRegexp=true \
+ -c grep.extendedRegexp=false
+
+ # grep.patternType=basic pays no attention to grep.extendedRegexp
+ test_pattern_type "$H" "$HC" "$L" BRE \
+ -c grep.extendedRegexp=true \
+ -c grep.patternType=basic \
+ -c grep.extendedRegexp=false
+
+ # grep.patternType=extended pays no attention to grep.extendedRegexp
+ test_pattern_type "$H" "$HC" "$L" ERE \
+ -c grep.extendedRegexp=true \
+ -c grep.patternType=extended \
+ -c grep.extendedRegexp=false
+
+ # grep.extendedRegexp is used with a last-one-wins grep.patternType=default
+ test_pattern_type "$H" "$HC" "$L" ERE \
+ -c grep.patternType=fixed \
+ -c grep.extendedRegexp=true \
+ -c grep.patternType=default
+
+ # grep.extendedRegexp is used with earlier grep.patternType=default
+ test_pattern_type "$H" "$HC" "$L" ERE \
+ -c grep.extendedRegexp=false \
+ -c grep.patternType=default \
+ -c grep.extendedRegexp=true
+
+ # grep.extendedRegexp is used with a last-one-loses grep.patternType=default
+ test_pattern_type "$H" "$HC" "$L" ERE \
+ -c grep.extendedRegexp=false \
+ -c grep.extendedRegexp=true \
+ -c grep.patternType=default
+
+ # grep.extendedRegexp and grep.patternType are both last-one-wins independently
+ test_pattern_type "$H" "$HC" "$L" BRE \
+ -c grep.patternType=default \
+ -c grep.extendedRegexp=true \
+ -c grep.patternType=basic
+
+ # grep.patternType=extended and grep.patternType=default
+ test_pattern_type "$H" "$HC" "$L" BRE \
+ -c grep.patternType=extended \
+ -c grep.patternType=default
+
+ # grep.patternType=[extended -> default -> fixed] (BRE)" '
+ test_pattern_type "$H" "$HC" "$L" FIX \
+ -c grep.patternType=extended \
+ -c grep.patternType=default \
+ -c grep.patternType=fixed
test_expect_success "grep --count $L" '
echo ${HC}ab:3 >expected &&
diff --git a/t/t7812-grep-icase-non-ascii.sh b/t/t7812-grep-icase-non-ascii.sh
index ca3f24f807..ac7be54714 100755
--- a/t/t7812-grep-icase-non-ascii.sh
+++ b/t/t7812-grep-icase-non-ascii.sh
@@ -4,6 +4,10 @@ test_description='grep icase on non-English locales'
. ./lib-gettext.sh
+doalarm () {
+ perl -e 'alarm shift; exec @ARGV' -- "$@"
+}
+
test_expect_success GETTEXT_LOCALE 'setup' '
test_write_lines "TILRAUN: Halló Heimur!" >file &&
git add file &&
@@ -11,9 +15,19 @@ test_expect_success GETTEXT_LOCALE 'setup' '
export LC_ALL
'
-test_have_prereq GETTEXT_LOCALE &&
-test-tool regex "HALLÓ" "Halló" ICASE &&
-test_set_prereq REGEX_LOCALE
+test_expect_success GETTEXT_LOCALE 'setup REGEX_LOCALE prerequisite' '
+ # This "test-tool" invocation is identical...
+ if test-tool regex "HALLÓ" "Halló" ICASE
+ then
+ test_set_prereq REGEX_LOCALE
+ else
+
+ # ... to this one, but this way "test_must_fail" will
+ # tell a segfault or abort() from the regexec() test
+ # itself
+ test_must_fail test-tool regex "HALLÓ" "Halló" ICASE
+ fi
+'
test_expect_success REGEX_LOCALE 'grep literal string, no -F' '
git grep -i "TILRAUN: Halló Heimur!" &&
@@ -129,4 +143,10 @@ test_expect_success GETTEXT_LOCALE,LIBPCRE2 'PCRE v2: grep non-literal ASCII fro
test_cmp expected actual
'
+test_expect_success GETTEXT_LOCALE,LIBPCRE2 'PCRE v2: grep avoid endless loop bug' '
+ echo " Halló" >leading-whitespace &&
+ git add leading-whitespace &&
+ doalarm 1 git grep --perl-regexp "^\s" leading-whitespace
+'
+
test_done
diff --git a/t/t7814-grep-recurse-submodules.sh b/t/t7814-grep-recurse-submodules.sh
index 058e5d0c96..a4476dc492 100755
--- a/t/t7814-grep-recurse-submodules.sh
+++ b/t/t7814-grep-recurse-submodules.sh
@@ -544,4 +544,45 @@ test_expect_failure 'grep saves textconv cache in the appropriate repository' '
test_path_is_file "$sub_textconv_cache"
'
+test_expect_success 'grep partially-cloned submodule' '
+ # Set up clean superproject and submodule for partial cloning.
+ git init super &&
+ git init super/sub &&
+ (
+ cd super &&
+ test_commit --no-tag "Add file in superproject" \
+ super-file "Some content for super-file" &&
+ test_commit -C sub --no-tag "Add file in submodule" \
+ sub-file "Some content for sub-file" &&
+ git submodule add ./sub &&
+ git commit -m "Add other as submodule sub" &&
+ test_tick &&
+ test_commit -C sub --no-tag --append "Update file in submodule" \
+ sub-file "Some more content for sub-file" &&
+ git add sub &&
+ git commit -m "Update submodule" &&
+ test_tick &&
+ git config --local uploadpack.allowfilter 1 &&
+ git config --local uploadpack.allowanysha1inwant 1 &&
+ git -C sub config --local uploadpack.allowfilter 1 &&
+ git -C sub config --local uploadpack.allowanysha1inwant 1
+ ) &&
+ # Clone the superproject & submodule, then make sure we can lazy-fetch submodule objects.
+ git clone --filter=blob:none --also-filter-submodules \
+ --recurse-submodules "file://$(pwd)/super" partial &&
+ (
+ cd partial &&
+ cat >expect <<-\EOF &&
+ HEAD^:sub/sub-file:Some content for sub-file
+ HEAD^:super-file:Some content for super-file
+ EOF
+
+ GIT_TRACE2_EVENT="$(pwd)/trace2.log" git grep -e content \
+ --recurse-submodules HEAD^ >actual &&
+ test_cmp expect actual &&
+ # Verify that we actually fetched data from the promisor remote:
+ grep \"category\":\"promisor\",\"key\":\"fetch_count\",\"value\":\"1\" trace2.log
+ )
+'
+
test_done
diff --git a/t/t7817-grep-sparse-checkout.sh b/t/t7817-grep-sparse-checkout.sh
index 590b99bbb6..eb59564565 100755
--- a/t/t7817-grep-sparse-checkout.sh
+++ b/t/t7817-grep-sparse-checkout.sh
@@ -83,10 +83,13 @@ test_expect_success 'setup' '
# The test below covers a special case: the sparsity patterns exclude '/b' and
# sparse checkout is enabled, but the path exists in the working tree (e.g.
-# manually created after `git sparse-checkout init`). git grep should skip it.
+# manually created after `git sparse-checkout init`). Although b is marked
+# as SKIP_WORKTREE, git grep should notice it IS present in the worktree and
+# report it.
test_expect_success 'working tree grep honors sparse checkout' '
cat >expect <<-EOF &&
a:text
+ b:new-text
EOF
test_when_finished "rm -f b" &&
echo "new-text" >b &&
@@ -126,12 +129,16 @@ test_expect_success 'grep --cached searches entries with the SKIP_WORKTREE bit'
'
# Note that sub2/ is present in the worktree but it is excluded by the sparsity
-# patterns, so grep should not recurse into it.
+# patterns. We also explicitly mark it as SKIP_WORKTREE in case it got cleared
+# by previous git commands. Thus sub2 starts as SKIP_WORKTREE but since it is
+# present in the working tree, grep should recurse into it.
test_expect_success 'grep --recurse-submodules honors sparse checkout in submodule' '
cat >expect <<-EOF &&
a:text
sub/B/b:text
+ sub2/a:text
EOF
+ git update-index --skip-worktree sub2 &&
git grep --recurse-submodules "text" >actual &&
test_cmp expect actual
'
diff --git a/t/t8007-cat-file-textconv.sh b/t/t8007-cat-file-textconv.sh
index eacd49ade6..b067983ba1 100755
--- a/t/t8007-cat-file-textconv.sh
+++ b/t/t8007-cat-file-textconv.sh
@@ -19,6 +19,48 @@ test_expect_success 'setup ' '
GIT_AUTHOR_NAME=Number2 git commit -a -m Second --date="2010-01-01 20:00:00"
'
+test_expect_success 'usage: <bad rev>' '
+ cat >expect <<-\EOF &&
+ fatal: Not a valid object name HEAD2
+ EOF
+ test_must_fail git cat-file --textconv HEAD2 2>actual &&
+ test_cmp expect actual
+'
+
+test_expect_success 'usage: <bad rev>:<bad path>' '
+ cat >expect <<-\EOF &&
+ fatal: invalid object name '\''HEAD2'\''.
+ EOF
+ test_must_fail git cat-file --textconv HEAD2:two.bin 2>actual &&
+ test_cmp expect actual
+'
+
+test_expect_success 'usage: <rev>:<bad path>' '
+ cat >expect <<-\EOF &&
+ fatal: path '\''two.bin'\'' does not exist in '\''HEAD'\''
+ EOF
+ test_must_fail git cat-file --textconv HEAD:two.bin 2>actual &&
+ test_cmp expect actual
+'
+
+
+test_expect_success 'usage: <rev> with no <path>' '
+ cat >expect <<-\EOF &&
+ fatal: <object>:<path> required, only <object> '\''HEAD'\'' given
+ EOF
+ test_must_fail git cat-file --textconv HEAD 2>actual &&
+ test_cmp expect actual
+'
+
+
+test_expect_success 'usage: <bad rev>:<good (in HEAD) path>' '
+ cat >expect <<-\EOF &&
+ fatal: invalid object name '\''HEAD2'\''.
+ EOF
+ test_must_fail git cat-file --textconv HEAD2:one.bin 2>actual &&
+ test_cmp expect actual
+'
+
cat >expected <<EOF
bin: test version 2
EOF
diff --git a/t/t9001-send-email.sh b/t/t9001-send-email.sh
index aa0c20499b..42694fe584 100755
--- a/t/t9001-send-email.sh
+++ b/t/t9001-send-email.sh
@@ -539,7 +539,7 @@ test_expect_success $PREREQ "--validate respects relative core.hooksPath path" '
test_path_is_file my-hooks.ran &&
cat >expect <<-EOF &&
fatal: longline.patch: rejected by sendemail-validate hook
- fatal: command '"'"'my-hooks/sendemail-validate'"'"' died with exit code 1
+ fatal: command '"'"'git hook run --ignore-missing sendemail-validate -- <patch>'"'"' died with exit code 1
warning: no patches were sent
EOF
test_cmp expect actual
@@ -558,7 +558,7 @@ test_expect_success $PREREQ "--validate respects absolute core.hooksPath path" '
test_path_is_file my-hooks.ran &&
cat >expect <<-EOF &&
fatal: longline.patch: rejected by sendemail-validate hook
- fatal: command '"'"'$hooks_path/sendemail-validate'"'"' died with exit code 1
+ fatal: command '"'"'git hook run --ignore-missing sendemail-validate -- <patch>'"'"' died with exit code 1
warning: no patches were sent
EOF
test_cmp expect actual
@@ -2288,9 +2288,7 @@ test_expect_success $PREREQ 'cmdline in-reply-to used with --no-thread' '
'
test_expect_success $PREREQ 'invoke hook' '
- mkdir -p .git/hooks &&
-
- write_script .git/hooks/sendemail-validate <<-\EOF &&
+ test_hook sendemail-validate <<-\EOF &&
# test that we have the correct environment variable, pwd, and
# argument
case "$GIT_DIR" in
diff --git a/t/t9102-git-svn-deep-rmdir.sh b/t/t9102-git-svn-deep-rmdir.sh
index 7b2049caa0..946ef85eb9 100755
--- a/t/t9102-git-svn-deep-rmdir.sh
+++ b/t/t9102-git-svn-deep-rmdir.sh
@@ -1,7 +1,6 @@
#!/bin/sh
test_description='git svn rmdir'
-TEST_PASSES_SANITIZE_LEAK=true
. ./lib-git-svn.sh
test_expect_success 'initialize repo' '
diff --git a/t/t9123-git-svn-rebuild-with-rewriteroot.sh b/t/t9123-git-svn-rebuild-with-rewriteroot.sh
index 3320b1f39c..ead404589e 100755
--- a/t/t9123-git-svn-rebuild-with-rewriteroot.sh
+++ b/t/t9123-git-svn-rebuild-with-rewriteroot.sh
@@ -5,7 +5,6 @@
test_description='git svn respects rewriteRoot during rebuild'
-TEST_PASSES_SANITIZE_LEAK=true
. ./lib-git-svn.sh
mkdir import
diff --git a/t/t9128-git-svn-cmd-branch.sh b/t/t9128-git-svn-cmd-branch.sh
index 9871f5abc9..783e3ba0c5 100755
--- a/t/t9128-git-svn-cmd-branch.sh
+++ b/t/t9128-git-svn-cmd-branch.sh
@@ -5,7 +5,6 @@
test_description='git svn partial-rebuild tests'
-TEST_PASSES_SANITIZE_LEAK=true
. ./lib-git-svn.sh
test_expect_success 'initialize svnrepo' '
diff --git a/t/t9167-git-svn-cmd-branch-subproject.sh b/t/t9167-git-svn-cmd-branch-subproject.sh
index d9fd111c10..d8128430a8 100755
--- a/t/t9167-git-svn-cmd-branch-subproject.sh
+++ b/t/t9167-git-svn-cmd-branch-subproject.sh
@@ -5,7 +5,6 @@
test_description='git svn branch for subproject clones'
-TEST_PASSES_SANITIZE_LEAK=true
. ./lib-git-svn.sh
test_expect_success 'initialize svnrepo' '
diff --git a/t/t9350-fast-export.sh b/t/t9350-fast-export.sh
index 7b7a18dd2c..fc99703fc5 100755
--- a/t/t9350-fast-export.sh
+++ b/t/t9350-fast-export.sh
@@ -500,6 +500,13 @@ test_expect_success 'path limiting with import-marks does not lose unmodified fi
grep file0 actual
'
+test_expect_success 'path limiting works' '
+ git fast-export simple -- file >actual &&
+ sed -ne "s/^M .* //p" <actual | sort -u >actual.files &&
+ echo file >expect &&
+ test_cmp expect actual.files
+'
+
test_expect_success 'avoid corrupt stream with non-existent mark' '
test_create_repo avoid_non_existent_mark &&
(
diff --git a/t/t9502-gitweb-standalone-parse-output.sh b/t/t9502-gitweb-standalone-parse-output.sh
index 3167473b30..8cb582f0e6 100755
--- a/t/t9502-gitweb-standalone-parse-output.sh
+++ b/t/t9502-gitweb-standalone-parse-output.sh
@@ -34,7 +34,7 @@ EOF
#
# This will check that gitweb HTTP header contains proposed filename
# as <basename> with '.tar' suffix added, and that generated tarfile
-# (gitweb message body) has <prefix> as prefix for al files in tarfile
+# (gitweb message body) has <prefix> as prefix for all files in tarfile
#
# <prefix> default to <basename>
check_snapshot () {
@@ -207,4 +207,17 @@ test_expect_success 'xss checks' '
xss "" "$TAG+"
'
+no_http_equiv_content_type() {
+ gitweb_run "$@" &&
+ ! grep -E "http-equiv=['\"]?content-type" gitweb.body
+}
+
+# See: <https://html.spec.whatwg.org/dev/semantics.html#attr-meta-http-equiv-content-type>
+test_expect_success 'no http-equiv="content-type" in XHTML' '
+ no_http_equiv_content_type &&
+ no_http_equiv_content_type "p=.git" &&
+ no_http_equiv_content_type "p=.git;a=log" &&
+ no_http_equiv_content_type "p=.git;a=tree"
+'
+
test_done
diff --git a/t/t9800-git-p4-basic.sh b/t/t9800-git-p4-basic.sh
index 806005a793..dc88d0e064 100755
--- a/t/t9800-git-p4-basic.sh
+++ b/t/t9800-git-p4-basic.sh
@@ -74,6 +74,91 @@ test_expect_success 'git p4 sync new branch' '
)
'
+#
+# Setup as before, and then explicitly sync imported branch, using a
+# different ref format.
+#
+test_expect_success 'git p4 sync existing branch without changes' '
+ test_create_repo "$git" &&
+ test_when_finished cleanup_git &&
+ (
+ cd "$git" &&
+ test_commit head &&
+ git p4 sync --branch=depot //depot@all &&
+ git p4 sync --branch=refs/remotes/p4/depot >out &&
+ test_i18ngrep "No changes to import!" out
+ )
+'
+
+#
+# Same as before, relative branch name.
+#
+test_expect_success 'git p4 sync existing branch with relative name' '
+ test_create_repo "$git" &&
+ test_when_finished cleanup_git &&
+ (
+ cd "$git" &&
+ test_commit head &&
+ git p4 sync --branch=branch1 //depot@all &&
+ git p4 sync --branch=p4/branch1 >out &&
+ test_i18ngrep "No changes to import!" out
+ )
+'
+
+#
+# Same as before, with a nested branch path, referenced different ways.
+#
+test_expect_success 'git p4 sync existing branch with nested path' '
+ test_create_repo "$git" &&
+ test_when_finished cleanup_git &&
+ (
+ cd "$git" &&
+ test_commit head &&
+ git p4 sync --branch=p4/some/path //depot@all &&
+ git p4 sync --branch=some/path >out &&
+ test_i18ngrep "No changes to import!" out
+ )
+'
+
+#
+# Same as before, with a full ref path outside the p4/* namespace.
+#
+test_expect_success 'git p4 sync branch explicit ref without p4 in path' '
+ test_create_repo "$git" &&
+ test_when_finished cleanup_git &&
+ (
+ cd "$git" &&
+ test_commit head &&
+ git p4 sync --branch=refs/remotes/someremote/depot //depot@all &&
+ git p4 sync --branch=refs/remotes/someremote/depot >out &&
+ test_i18ngrep "No changes to import!" out
+ )
+'
+
+test_expect_success 'git p4 sync nonexistent ref' '
+ test_create_repo "$git" &&
+ test_when_finished cleanup_git &&
+ (
+ cd "$git" &&
+ test_commit head &&
+ git p4 sync --branch=depot //depot@all &&
+ test_must_fail git p4 sync --branch=depot2 2>errs &&
+ test_i18ngrep "Perhaps you never did" errs
+ )
+'
+
+test_expect_success 'git p4 sync existing non-p4-imported ref' '
+ test_create_repo "$git" &&
+ test_when_finished cleanup_git &&
+ (
+ cd "$git" &&
+ test_commit head &&
+ git p4 sync --branch=depot //depot@all &&
+ test_must_fail git p4 sync --branch=refs/heads/master 2>errs &&
+ test_i18ngrep "Perhaps you never did" errs
+ )
+'
+
test_expect_success 'clone two dirs' '
(
cd "$cli" &&
@@ -277,16 +362,21 @@ test_expect_success 'run hook p4-pre-submit before submit' '
git commit -m "add hello.txt" &&
git config git-p4.skipSubmitEdit true &&
git p4 submit --dry-run >out &&
- grep "Would apply" out &&
- mkdir -p .git/hooks &&
- write_script .git/hooks/p4-pre-submit <<-\EOF &&
- exit 0
- EOF
+ grep "Would apply" out
+ ) &&
+ test_hook -C "$git" p4-pre-submit <<-\EOF &&
+ exit 0
+ EOF
+ (
+ cd "$git" &&
git p4 submit --dry-run >out &&
- grep "Would apply" out &&
- write_script .git/hooks/p4-pre-submit <<-\EOF &&
- exit 1
- EOF
+ grep "Would apply" out
+ ) &&
+ test_hook -C "$git" --clobber p4-pre-submit <<-\EOF &&
+ exit 1
+ EOF
+ (
+ cd "$git" &&
test_must_fail git p4 submit --dry-run >errs 2>&1 &&
! grep "Would apply" errs
)
diff --git a/t/t9801-git-p4-branch.sh b/t/t9801-git-p4-branch.sh
index 50a6f8bad5..759a14fa87 100755
--- a/t/t9801-git-p4-branch.sh
+++ b/t/t9801-git-p4-branch.sh
@@ -129,6 +129,16 @@ test_expect_success 'import depot, branch detection' '
)
'
+test_expect_success 'sync specific detected branch' '
+ test_when_finished cleanup_git &&
+ git p4 clone --dest="$git" --detect-branches //depot@all &&
+ (
+ cd "$git" &&
+ git p4 sync --branch=depot/branch2 >out &&
+ test_i18ngrep "No changes to import!" out
+ )
+'
+
test_expect_success 'import depot, branch detection, branchList branch definition' '
test_when_finished cleanup_git &&
test_create_repo "$git" &&
diff --git a/t/t9802-git-p4-filetype.sh b/t/t9802-git-p4-filetype.sh
index 19073c6e9f..2a6ee2a467 100755
--- a/t/t9802-git-p4-filetype.sh
+++ b/t/t9802-git-p4-filetype.sh
@@ -333,4 +333,38 @@ test_expect_success SYMLINKS 'empty symlink target' '
)
'
+test_expect_success SYMLINKS 'utf-8 with and without BOM in text file' '
+ (
+ cd "$cli" &&
+
+ # some utf8 content
+ echo some tǣxt >utf8-nobom-test &&
+
+ # same utf8 content as before but with bom
+ echo some tǣxt | sed '\''s/^/\xef\xbb\xbf/'\'' >utf8-bom-test &&
+
+ # bom only
+ dd bs=1 count=3 if=utf8-bom-test of=utf8-bom-empty-test &&
+
+ p4 add utf8-nobom-test utf8-bom-test utf8-bom-empty-test &&
+ p4 submit -d "add utf8 test files"
+ ) &&
+ test_when_finished cleanup_git &&
+
+ git p4 clone --dest="$git" //depot@all &&
+ (
+ cd "$git" &&
+ git checkout refs/remotes/p4/master &&
+
+ echo some tǣxt >utf8-nobom-check &&
+ test_cmp utf8-nobom-check utf8-nobom-test &&
+
+ echo some tǣxt | sed '\''s/^/\xef\xbb\xbf/'\'' >utf8-bom-check &&
+ test_cmp utf8-bom-check utf8-bom-test &&
+
+ dd bs=1 count=3 if=utf8-bom-check of=utf8-bom-empty-check &&
+ test_cmp utf8-bom-empty-check utf8-bom-empty-test
+ )
+'
+
test_done
diff --git a/t/t9902-completion.sh b/t/t9902-completion.sh
index 98c6280632..31526e6b64 100755
--- a/t/t9902-completion.sh
+++ b/t/t9902-completion.sh
@@ -1444,6 +1444,161 @@ test_expect_success 'git checkout - with --detach, complete only references' '
EOF
'
+test_expect_success 'setup sparse-checkout tests' '
+ # set up sparse-checkout repo
+ git init sparse-checkout &&
+ (
+ cd sparse-checkout &&
+ mkdir -p folder1/0/1 folder2/0 folder3 &&
+ touch folder1/0/1/t.txt &&
+ touch folder2/0/t.txt &&
+ touch folder3/t.txt &&
+ git add . &&
+ git commit -am "Initial commit"
+ )
+'
+
+test_expect_success 'sparse-checkout completes subcommands' '
+ test_completion "git sparse-checkout " <<-\EOF
+ list Z
+ init Z
+ set Z
+ add Z
+ reapply Z
+ disable Z
+ EOF
+'
+
+test_expect_success 'cone mode sparse-checkout completes directory names' '
+ # initialize sparse-checkout definitions
+ git -C sparse-checkout sparse-checkout set --cone folder1/0 folder3 &&
+
+ # test tab completion
+ (
+ cd sparse-checkout &&
+ test_completion "git sparse-checkout set f" <<-\EOF
+ folder1/
+ folder2/
+ folder3/
+ EOF
+ ) &&
+
+ (
+ cd sparse-checkout &&
+ test_completion "git sparse-checkout set folder1/" <<-\EOF
+ folder1/0/
+ EOF
+ ) &&
+
+ (
+ cd sparse-checkout &&
+ test_completion "git sparse-checkout set folder1/0/" <<-\EOF
+ folder1/0/1/
+ EOF
+ ) &&
+
+ (
+ cd sparse-checkout/folder1 &&
+ test_completion "git sparse-checkout add 0" <<-\EOF
+ 0/
+ EOF
+ )
+'
+
+test_expect_success 'cone mode sparse-checkout completes directory names with spaces and accents' '
+ # reset sparse-checkout
+ git -C sparse-checkout sparse-checkout disable &&
+ (
+ cd sparse-checkout &&
+ mkdir "directory with spaces" &&
+ mkdir "directory-with-áccent" &&
+ >"directory with spaces/randomfile" &&
+ >"directory-with-áccent/randomfile" &&
+ git add . &&
+ git commit -m "Add directory with spaces and directory with accent" &&
+ git sparse-checkout set --cone "directory with spaces" \
+ "directory-with-áccent" &&
+ test_completion "git sparse-checkout add dir" <<-\EOF &&
+ directory with spaces/
+ directory-with-áccent/
+ EOF
+ rm -rf "directory with spaces" &&
+ rm -rf "directory-with-áccent" &&
+ git add . &&
+ git commit -m "Remove directory with spaces and directory with accent"
+ )
+'
+
+# use FUNNYNAMES to avoid running on Windows, which doesn't permit tabs in paths
+test_expect_success FUNNYNAMES 'cone mode sparse-checkout completes directory names with tabs' '
+ # reset sparse-checkout
+ git -C sparse-checkout sparse-checkout disable &&
+ (
+ cd sparse-checkout &&
+ mkdir "$(printf "directory\twith\ttabs")" &&
+ >"$(printf "directory\twith\ttabs")/randomfile" &&
+ git add . &&
+ git commit -m "Add directory with tabs" &&
+ git sparse-checkout set --cone \
+ "$(printf "directory\twith\ttabs")" &&
+ test_completion "git sparse-checkout add dir" <<-\EOF &&
+ directory with tabs/
+ EOF
+ rm -rf "$(printf "directory\twith\ttabs")" &&
+ git add . &&
+ git commit -m "Remove directory with tabs"
+ )
+'
+
+# use FUNNYNAMES to avoid running on Windows, and !CYGWIN for Cygwin, as neither permit backslashes in paths
+test_expect_success FUNNYNAMES,!CYGWIN 'cone mode sparse-checkout completes directory names with backslashes' '
+ # reset sparse-checkout
+ git -C sparse-checkout sparse-checkout disable &&
+ (
+ cd sparse-checkout &&
+ mkdir "directory\with\backslashes" &&
+ >"directory\with\backslashes/randomfile" &&
+ git add . &&
+ git commit -m "Add directory with backslashes" &&
+ git sparse-checkout set --cone \
+ "directory\with\backslashes" &&
+ test_completion "git sparse-checkout add dir" <<-\EOF &&
+ directory\with\backslashes/
+ EOF
+ rm -rf "directory\with\backslashes" &&
+ git add . &&
+ git commit -m "Remove directory with backslashes"
+ )
+'
+
+test_expect_success 'non-cone mode sparse-checkout uses bash completion' '
+ # reset sparse-checkout repo to non-cone mode
+ git -C sparse-checkout sparse-checkout disable &&
+ git -C sparse-checkout sparse-checkout set --no-cone &&
+
+ (
+ cd sparse-checkout &&
+ # expected to be empty since we have not configured
+ # custom completion for non-cone mode
+ test_completion "git sparse-checkout set f" <<-\EOF
+
+ EOF
+ )
+'
+
+test_expect_success 'git sparse-checkout set --cone completes directory names' '
+ git -C sparse-checkout sparse-checkout disable &&
+
+ (
+ cd sparse-checkout &&
+ test_completion "git sparse-checkout set --cone f" <<-\EOF
+ folder1/
+ folder2/
+ folder3/
+ EOF
+ )
+'
+
test_expect_success 'git switch - with -d, complete all references' '
test_completion "git switch -d " <<-\EOF
HEAD Z
@@ -2396,27 +2551,33 @@ test_expect_success 'options with value' '
'
test_expect_success 'sourcing the completion script clears cached commands' '
- __git_compute_all_commands &&
- verbose test -n "$__git_all_commands" &&
- . "$GIT_BUILD_DIR/contrib/completion/git-completion.bash" &&
- verbose test -z "$__git_all_commands"
+ (
+ __git_compute_all_commands &&
+ verbose test -n "$__git_all_commands" &&
+ . "$GIT_BUILD_DIR/contrib/completion/git-completion.bash" &&
+ verbose test -z "$__git_all_commands"
+ )
'
test_expect_success 'sourcing the completion script clears cached merge strategies' '
- __git_compute_merge_strategies &&
- verbose test -n "$__git_merge_strategies" &&
- . "$GIT_BUILD_DIR/contrib/completion/git-completion.bash" &&
- verbose test -z "$__git_merge_strategies"
+ (
+ __git_compute_merge_strategies &&
+ verbose test -n "$__git_merge_strategies" &&
+ . "$GIT_BUILD_DIR/contrib/completion/git-completion.bash" &&
+ verbose test -z "$__git_merge_strategies"
+ )
'
test_expect_success 'sourcing the completion script clears cached --options' '
- __gitcomp_builtin checkout &&
- verbose test -n "$__gitcomp_builtin_checkout" &&
- __gitcomp_builtin notes_edit &&
- verbose test -n "$__gitcomp_builtin_notes_edit" &&
- . "$GIT_BUILD_DIR/contrib/completion/git-completion.bash" &&
- verbose test -z "$__gitcomp_builtin_checkout" &&
- verbose test -z "$__gitcomp_builtin_notes_edit"
+ (
+ __gitcomp_builtin checkout &&
+ verbose test -n "$__gitcomp_builtin_checkout" &&
+ __gitcomp_builtin notes_edit &&
+ verbose test -n "$__gitcomp_builtin_notes_edit" &&
+ . "$GIT_BUILD_DIR/contrib/completion/git-completion.bash" &&
+ verbose test -z "$__gitcomp_builtin_checkout" &&
+ verbose test -z "$__gitcomp_builtin_notes_edit"
+ )
'
test_expect_success 'option aliases are not shown by default' '
@@ -2424,12 +2585,45 @@ test_expect_success 'option aliases are not shown by default' '
'
test_expect_success 'option aliases are shown with GIT_COMPLETION_SHOW_ALL' '
- . "$GIT_BUILD_DIR/contrib/completion/git-completion.bash" &&
- GIT_COMPLETION_SHOW_ALL=1 && export GIT_COMPLETION_SHOW_ALL &&
- test_completion "git clone --recurs" <<-\EOF
- --recurse-submodules Z
- --recursive Z
- EOF
+ (
+ . "$GIT_BUILD_DIR/contrib/completion/git-completion.bash" &&
+ GIT_COMPLETION_SHOW_ALL=1 && export GIT_COMPLETION_SHOW_ALL &&
+ test_completion "git clone --recurs" <<-\EOF
+ --recurse-submodules Z
+ --recursive Z
+ EOF
+ )
+'
+
+test_expect_success 'plumbing commands are excluded without GIT_COMPLETION_SHOW_ALL_COMMANDS' '
+ (
+ . "$GIT_BUILD_DIR/contrib/completion/git-completion.bash" &&
+ sane_unset GIT_TESTING_PORCELAIN_COMMAND_LIST &&
+
+ # Just mainporcelain, not plumbing commands
+ run_completion "git c" &&
+ grep checkout out &&
+ ! grep cat-file out
+ )
+'
+
+test_expect_success 'all commands are shown with GIT_COMPLETION_SHOW_ALL_COMMANDS (also main non-builtin)' '
+ (
+ . "$GIT_BUILD_DIR/contrib/completion/git-completion.bash" &&
+ GIT_COMPLETION_SHOW_ALL_COMMANDS=1 &&
+ export GIT_COMPLETION_SHOW_ALL_COMMANDS &&
+ sane_unset GIT_TESTING_PORCELAIN_COMMAND_LIST &&
+
+ # Both mainporcelain and plumbing commands
+ run_completion "git c" &&
+ grep checkout out &&
+ grep cat-file out &&
+
+ # Check "gitk", a "main" command, but not a built-in + more plumbing
+ run_completion "git g" &&
+ grep gitk out &&
+ grep get-tar-commit-id out
+ )
'
test_expect_success '__git_complete' '
diff --git a/t/test-lib-functions.sh b/t/test-lib-functions.sh
index c3d38aaccb..93c03380d4 100644
--- a/t/test-lib-functions.sh
+++ b/t/test-lib-functions.sh
@@ -329,7 +329,7 @@ test_commit () {
else
$echo "${3-$1}" >"$indir$file"
fi &&
- git ${indir:+ -C "$indir"} add "$file" &&
+ git ${indir:+ -C "$indir"} add -- "$file" &&
if test -z "$notick"
then
test_tick
@@ -551,6 +551,82 @@ write_script () {
chmod +x "$1"
}
+# Usage: test_hook [options] <hook-name> <<-\EOF
+#
+# -C <dir>:
+# Run all git commands in directory <dir>
+# --setup
+# Setup a hook for subsequent tests, i.e. don't remove it in a
+# "test_when_finished"
+# --clobber
+# Overwrite an existing <hook-name>, if it exists. Implies
+# --setup (i.e. the "test_when_finished" is assumed to have been
+# set up already).
+# --disable
+# Disable (chmod -x) an existing <hook-name>, which must exist.
+# --remove
+# Remove (rm -f) an existing <hook-name>, which must exist.
+test_hook () {
+ setup= &&
+ clobber= &&
+ disable= &&
+ remove= &&
+ indir= &&
+ while test $# != 0
+ do
+ case "$1" in
+ -C)
+ indir="$2" &&
+ shift
+ ;;
+ --setup)
+ setup=t
+ ;;
+ --clobber)
+ clobber=t
+ ;;
+ --disable)
+ disable=t
+ ;;
+ --remove)
+ remove=t
+ ;;
+ -*)
+ BUG "invalid argument: $1"
+ ;;
+ *)
+ break
+ ;;
+ esac &&
+ shift
+ done &&
+
+ git_dir=$(git -C "$indir" rev-parse --absolute-git-dir) &&
+ hook_dir="$git_dir/hooks" &&
+ hook_file="$hook_dir/$1" &&
+ if test -n "$disable$remove"
+ then
+ test_path_is_file "$hook_file" &&
+ if test -n "$disable"
+ then
+ chmod -x "$hook_file"
+ elif test -n "$remove"
+ then
+ rm -f "$hook_file"
+ fi &&
+ return 0
+ fi &&
+ if test -z "$clobber"
+ then
+ test_path_is_missing "$hook_file"
+ fi &&
+ if test -z "$setup$clobber"
+ then
+ test_when_finished "rm \"$hook_file\""
+ fi &&
+ write_script "$hook_file"
+}
+
# Use test_set_prereq to tell that a particular prerequisite is available.
# The prerequisite can later be checked for in two ways:
#
@@ -856,6 +932,16 @@ test_path_is_file () {
fi
}
+test_path_is_file_not_symlink () {
+ test "$#" -ne 1 && BUG "1 param"
+ test_path_is_file "$1" &&
+ if test -h "$1"
+ then
+ echo "$1 shouldn't be a symbolic link"
+ false
+ fi
+}
+
test_path_is_dir () {
test "$#" -ne 1 && BUG "1 param"
if ! test -d "$1"
@@ -865,6 +951,16 @@ test_path_is_dir () {
fi
}
+test_path_is_dir_not_symlink () {
+ test "$#" -ne 1 && BUG "1 param"
+ test_path_is_dir "$1" &&
+ if test -h "$1"
+ then
+ echo "$1 shouldn't be a symbolic link"
+ false
+ fi
+}
+
test_path_exists () {
test "$#" -ne 1 && BUG "1 param"
if ! test -e "$1"
@@ -874,6 +970,15 @@ test_path_exists () {
fi
}
+test_path_is_symlink () {
+ test "$#" -ne 1 && BUG "1 param"
+ if ! test -h "$1"
+ then
+ echo "Symbolic link $1 doesn't exist"
+ false
+ fi
+}
+
# Check if the directory exists and is empty as expected, barf otherwise.
test_dir_is_empty () {
test "$#" -ne 1 && BUG "1 param"
@@ -1760,40 +1865,6 @@ test_subcommand () {
}
# Check that the given command was invoked as part of the
-# trace2-format trace on stdin, but without an exact set of
-# arguments.
-#
-# test_subcommand [!] <command> <args>... < <trace>
-#
-# For example, to look for an invocation of "git pack-objects"
-# with the "--honor-pack-keep" argument, use
-#
-# GIT_TRACE2_EVENT=event.log git repack ... &&
-# test_subcommand git pack-objects --honor-pack-keep <event.log
-#
-# If the first parameter passed is !, this instead checks that
-# the given command was not called.
-#
-test_subcommand_inexact () {
- local negate=
- if test "$1" = "!"
- then
- negate=t
- shift
- fi
-
- local expr=$(printf '"%s".*' "$@")
- expr="${expr%,}"
-
- if test -n "$negate"
- then
- ! grep "\"event\":\"child_start\".*\[$expr\]"
- else
- grep "\"event\":\"child_start\".*\[$expr\]"
- fi
-}
-
-# Check that the given command was invoked as part of the
# trace2-format trace on stdin.
#
# test_region [!] <category> <label> git <command> <args>...
@@ -1840,3 +1911,36 @@ test_region () {
test_readlink () {
perl -le 'print readlink($_) for @ARGV' "$@"
}
+
+# Set mtime to a fixed "magic" timestamp in mid February 2009, before we
+# run an operation that may or may not touch the file. If the file was
+# touched, its timestamp will not accidentally have such an old timestamp,
+# as long as your filesystem clock is reasonably correct. To verify the
+# timestamp, follow up with test_is_magic_mtime.
+#
+# An optional increment to the magic timestamp may be specified as second
+# argument.
+test_set_magic_mtime () {
+ local inc=${2:-0} &&
+ local mtime=$((1234567890 + $inc)) &&
+ test-tool chmtime =$mtime "$1" &&
+ test_is_magic_mtime "$1" $inc
+}
+
+# Test whether the given file has the "magic" mtime set. This is meant to
+# be used in combination with test_set_magic_mtime.
+#
+# An optional increment to the magic timestamp may be specified as second
+# argument. Usually, this should be the same increment which was used for
+# the associated test_set_magic_mtime.
+test_is_magic_mtime () {
+ local inc=${2:-0} &&
+ local mtime=$((1234567890 + $inc)) &&
+ echo $mtime >.git/test-mtime-expect &&
+ test-tool chmtime --get "$1" >.git/test-mtime-actual &&
+ test_cmp .git/test-mtime-expect .git/test-mtime-actual
+ local ret=$?
+ rm -f .git/test-mtime-expect
+ rm -f .git/test-mtime-actual
+ return $ret
+}
diff --git a/t/test-lib.sh b/t/test-lib.sh
index 0f7a137c7d..f09e8f3efc 100644
--- a/t/test-lib.sh
+++ b/t/test-lib.sh
@@ -19,13 +19,20 @@
# t/ subdirectory and are run in 'trash directory' subdirectory.
if test -z "$TEST_DIRECTORY"
then
- # We allow tests to override this, in case they want to run tests
- # outside of t/, e.g. for running tests on the test library
- # itself.
- TEST_DIRECTORY=$(pwd)
-else
# ensure that TEST_DIRECTORY is an absolute path so that it
# is valid even if the current working directory is changed
+ TEST_DIRECTORY=$(pwd)
+else
+ # The TEST_DIRECTORY will always be the path to the "t"
+ # directory in the git.git checkout. This is overridden by
+ # e.g. t/lib-subtest.sh, but only because its $(pwd) is
+ # different. Those tests still set "$TEST_DIRECTORY" to the
+ # same path.
+ #
+ # See use of "$GIT_BUILD_DIR" and "$TEST_DIRECTORY" below for
+ # hard assumptions about "$GIT_BUILD_DIR/t" existing and being
+ # the "$TEST_DIRECTORY", and e.g. "$TEST_DIRECTORY/helper"
+ # needing to exist.
TEST_DIRECTORY=$(cd "$TEST_DIRECTORY" && pwd) || exit 1
fi
if test -z "$TEST_OUTPUT_DIRECTORY"
@@ -34,19 +41,42 @@ then
# elsewhere
TEST_OUTPUT_DIRECTORY=$TEST_DIRECTORY
fi
-GIT_BUILD_DIR="$TEST_DIRECTORY"/..
+GIT_BUILD_DIR="${TEST_DIRECTORY%/t}"
+if test "$TEST_DIRECTORY" = "$GIT_BUILD_DIR"
+then
+ echo "PANIC: Running in a $TEST_DIRECTORY that doesn't end in '/t'?" >&2
+ exit 1
+fi
+
+# Prepend a string to a VAR using an arbitrary ":" delimiter, not
+# adding the delimiter if VAR or VALUE is empty. I.e. a generalized:
+#
+# VAR=$1${VAR:+${1:+$2}$VAR}
+#
+# Usage (using ":" as the $2 delimiter):
+#
+# prepend_var VAR : VALUE
+prepend_var () {
+ eval "$1=$3\${$1:+${3:+$2}\$$1}"
+}
+
+# If [AL]SAN is in effect we want to abort so that we notice
+# problems. The GIT_SAN_OPTIONS variable can be used to set common
+# defaults shared between [AL]SAN_OPTIONS.
+prepend_var GIT_SAN_OPTIONS : abort_on_error=1
+prepend_var GIT_SAN_OPTIONS : strip_path_prefix=\"$GIT_BUILD_DIR/\"
# If we were built with ASAN, it may complain about leaks
# of program-lifetime variables. Disable it by default to lower
# the noise level. This needs to happen at the start of the script,
# before we even do our "did we build git yet" check (since we don't
# want that one to complain to stderr).
-: ${ASAN_OPTIONS=detect_leaks=0:abort_on_error=1}
+prepend_var ASAN_OPTIONS : $GIT_SAN_OPTIONS
+prepend_var ASAN_OPTIONS : detect_leaks=0
export ASAN_OPTIONS
-# If LSAN is in effect we _do_ want leak checking, but we still
-# want to abort so that we notice the problems.
-: ${LSAN_OPTIONS=abort_on_error=1}
+prepend_var LSAN_OPTIONS : $GIT_SAN_OPTIONS
+prepend_var LSAN_OPTIONS : fast_unwind_on_malloc=0
export LSAN_OPTIONS
if test ! -f "$GIT_BUILD_DIR"/GIT-BUILD-OPTIONS
@@ -449,6 +479,8 @@ unset VISUAL EMAIL LANGUAGE $("$PERL_PATH" -e '
unset XDG_CACHE_HOME
unset XDG_CONFIG_HOME
unset GITPERLLIB
+unset GIT_TRACE2_PARENT_NAME
+unset GIT_TRACE2_PARENT_SID
TEST_AUTHOR_LOCALNAME=author
TEST_AUTHOR_DOMAIN=example.com
GIT_AUTHOR_EMAIL=${TEST_AUTHOR_LOCALNAME}@${TEST_AUTHOR_DOMAIN}
@@ -503,9 +535,10 @@ case $GIT_TEST_FSYNC in
;;
esac
-# Add libc MALLOC and MALLOC_PERTURB test
-# only if we are not executing the test with valgrind
+# Add libc MALLOC and MALLOC_PERTURB test only if we are not executing
+# the test with valgrind and have not compiled with SANITIZE=address.
if test -n "$valgrind" ||
+ test -n "$SANITIZE_ADDRESS" ||
test -n "$TEST_NO_MALLOC_CHECK"
then
setup_malloc_check () {
@@ -516,11 +549,29 @@ then
}
else
setup_malloc_check () {
+ local g
+ local t
MALLOC_CHECK_=3 MALLOC_PERTURB_=165
export MALLOC_CHECK_ MALLOC_PERTURB_
+ if _GLIBC_VERSION=$(getconf GNU_LIBC_VERSION 2>/dev/null) &&
+ _GLIBC_VERSION=${_GLIBC_VERSION#"glibc "} &&
+ expr 2.34 \<= "$_GLIBC_VERSION" >/dev/null
+ then
+ g=
+ LD_PRELOAD="libc_malloc_debug.so.0"
+ for t in \
+ glibc.malloc.check=1 \
+ glibc.malloc.perturb=165
+ do
+ g="${g#:}:$t"
+ done
+ GLIBC_TUNABLES=$g
+ export LD_PRELOAD GLIBC_TUNABLES
+ fi
}
teardown_malloc_check () {
unset MALLOC_CHECK_ MALLOC_PERTURB_
+ unset LD_PRELOAD GLIBC_TUNABLES
}
fi
@@ -756,7 +807,11 @@ test_failure_ () {
say_color error "not ok $test_count - $1"
shift
printf '%s\n' "$*" | sed -e 's/^/# /'
- test "$immediate" = "" || _error_exit
+ if test -n "$immediate"
+ then
+ say_color error "1..$test_count"
+ _error_exit
+ fi
}
test_known_broken_ok_ () {
@@ -1797,3 +1852,10 @@ test_lazy_prereq SHA1 '
# Tests that verify the scheduler integration must set this locally
# to avoid errors.
GIT_TEST_MAINT_SCHEDULER="none:exit 1"
+
+# Does this platform support `git fsmonitor--daemon`
+#
+test_lazy_prereq FSMONITOR_DAEMON '
+ git version --build-options >output &&
+ grep "feature: fsmonitor--daemon" output
+'
diff --git a/tempfile.c b/tempfile.c
index 94aa18f3f7..2024c82691 100644
--- a/tempfile.c
+++ b/tempfile.c
@@ -56,6 +56,20 @@
static VOLATILE_LIST_HEAD(tempfile_list);
+static void remove_template_directory(struct tempfile *tempfile,
+ int in_signal_handler)
+{
+ if (tempfile->directorylen > 0 &&
+ tempfile->directorylen < tempfile->filename.len &&
+ tempfile->filename.buf[tempfile->directorylen] == '/') {
+ strbuf_setlen(&tempfile->filename, tempfile->directorylen);
+ if (in_signal_handler)
+ rmdir(tempfile->filename.buf);
+ else
+ rmdir_or_warn(tempfile->filename.buf);
+ }
+}
+
static void remove_tempfiles(int in_signal_handler)
{
pid_t me = getpid();
@@ -74,6 +88,7 @@ static void remove_tempfiles(int in_signal_handler)
unlink(p->filename.buf);
else
unlink_or_warn(p->filename.buf);
+ remove_template_directory(p, in_signal_handler);
p->active = 0;
}
@@ -100,6 +115,7 @@ static struct tempfile *new_tempfile(void)
tempfile->owner = 0;
INIT_LIST_HEAD(&tempfile->list);
strbuf_init(&tempfile->filename, 0);
+ tempfile->directorylen = 0;
return tempfile;
}
@@ -198,6 +214,52 @@ struct tempfile *mks_tempfile_tsm(const char *filename_template, int suffixlen,
return tempfile;
}
+struct tempfile *mks_tempfile_dt(const char *directory_template,
+ const char *filename)
+{
+ struct tempfile *tempfile;
+ const char *tmpdir;
+ struct strbuf sb = STRBUF_INIT;
+ int fd;
+ size_t directorylen;
+
+ if (!ends_with(directory_template, "XXXXXX")) {
+ errno = EINVAL;
+ return NULL;
+ }
+
+ tmpdir = getenv("TMPDIR");
+ if (!tmpdir)
+ tmpdir = "/tmp";
+
+ strbuf_addf(&sb, "%s/%s", tmpdir, directory_template);
+ directorylen = sb.len;
+ if (!mkdtemp(sb.buf)) {
+ int orig_errno = errno;
+ strbuf_release(&sb);
+ errno = orig_errno;
+ return NULL;
+ }
+
+ strbuf_addf(&sb, "/%s", filename);
+ fd = open(sb.buf, O_CREAT | O_EXCL | O_RDWR, 0600);
+ if (fd < 0) {
+ int orig_errno = errno;
+ strbuf_setlen(&sb, directorylen);
+ rmdir(sb.buf);
+ strbuf_release(&sb);
+ errno = orig_errno;
+ return NULL;
+ }
+
+ tempfile = new_tempfile();
+ strbuf_swap(&tempfile->filename, &sb);
+ tempfile->directorylen = directorylen;
+ tempfile->fd = fd;
+ activate_tempfile(tempfile);
+ return tempfile;
+}
+
struct tempfile *xmks_tempfile_m(const char *filename_template, int mode)
{
struct tempfile *tempfile;
@@ -316,6 +378,7 @@ void delete_tempfile(struct tempfile **tempfile_p)
close_tempfile_gently(tempfile);
unlink_or_warn(tempfile->filename.buf);
+ remove_template_directory(tempfile, 0);
deactivate_tempfile(tempfile);
*tempfile_p = NULL;
}
diff --git a/tempfile.h b/tempfile.h
index 4de3bc77d2..d7804a214a 100644
--- a/tempfile.h
+++ b/tempfile.h
@@ -82,6 +82,7 @@ struct tempfile {
FILE *volatile fp;
volatile pid_t owner;
struct strbuf filename;
+ size_t directorylen;
};
/*
@@ -199,6 +200,18 @@ static inline struct tempfile *xmks_tempfile(const char *filename_template)
}
/*
+ * Attempt to create a temporary directory in $TMPDIR and to create and
+ * open a file in that new directory. Derive the directory name from the
+ * template in the manner of mkdtemp(). Arrange for directory and file
+ * to be deleted if the program exits before they are deleted
+ * explicitly. On success return a tempfile whose "filename" member
+ * contains the full path of the file and its "fd" member is open for
+ * writing the file. On error return NULL and set errno appropriately.
+ */
+struct tempfile *mks_tempfile_dt(const char *directory_template,
+ const char *filename);
+
+/*
* Associate a stdio stream with the temporary file (which must still
* be open). Return `NULL` (*without* deleting the file) on error. The
* stream is closed automatically when `close_tempfile_gently()` is called or
diff --git a/templates/Makefile b/templates/Makefile
index d22a71a399..367ad00c24 100644
--- a/templates/Makefile
+++ b/templates/Makefile
@@ -1,9 +1,7 @@
-# make and install sample templates
-
-ifndef V
- QUIET = @
-endif
+# Import tree-wide shared Makefile behavior and libraries
+include ../shared.mak
+# make and install sample templates
INSTALL ?= install
TAR ?= tar
RM ?= rm -f
diff --git a/tmp-objdir.c b/tmp-objdir.c
index 3d38eeab66..adf6033549 100644
--- a/tmp-objdir.c
+++ b/tmp-objdir.c
@@ -79,6 +79,11 @@ static void remove_tmp_objdir_on_signal(int signo)
raise(signo);
}
+void tmp_objdir_discard_objects(struct tmp_objdir *t)
+{
+ remove_dir_recursively(&t->path, REMOVE_DIR_KEEP_TOPLEVEL);
+}
+
/*
* These env_* functions are for setting up the child environment; the
* "replace" variant overrides the value of any existing variable with that
diff --git a/tmp-objdir.h b/tmp-objdir.h
index cda5ec7677..76efc7edee 100644
--- a/tmp-objdir.h
+++ b/tmp-objdir.h
@@ -47,6 +47,12 @@ int tmp_objdir_migrate(struct tmp_objdir *);
int tmp_objdir_destroy(struct tmp_objdir *);
/*
+ * Remove all objects from the temporary object directory, while leaving it
+ * around so more objects can be added.
+ */
+void tmp_objdir_discard_objects(struct tmp_objdir *);
+
+/*
* Add the temporary object directory as an alternate object store in the
* current process.
*/
diff --git a/trace.c b/trace.c
index f726686fd9..794a087c21 100644
--- a/trace.c
+++ b/trace.c
@@ -108,16 +108,11 @@ static int prepare_trace_line(const char *file, int line,
gettimeofday(&tv, NULL);
secs = tv.tv_sec;
localtime_r(&secs, &tm);
- strbuf_addf(buf, "%02d:%02d:%02d.%06ld ", tm.tm_hour, tm.tm_min,
- tm.tm_sec, (long) tv.tv_usec);
-
-#ifdef HAVE_VARIADIC_MACROS
- /* print file:line */
- strbuf_addf(buf, "%s:%d ", file, line);
+ strbuf_addf(buf, "%02d:%02d:%02d.%06ld %s:%d", tm.tm_hour, tm.tm_min,
+ tm.tm_sec, (long) tv.tv_usec, file, line);
/* align trace output (column 40 catches most files names in git) */
while (buf->len < 40)
strbuf_addch(buf, ' ');
-#endif
return 1;
}
@@ -229,74 +224,6 @@ static void trace_performance_vprintf_fl(const char *file, int line,
strbuf_release(&buf);
}
-#ifndef HAVE_VARIADIC_MACROS
-
-void trace_printf(const char *format, ...)
-{
- va_list ap;
- va_start(ap, format);
- trace_vprintf_fl(NULL, 0, &trace_default_key, format, ap);
- va_end(ap);
-}
-
-void trace_printf_key(struct trace_key *key, const char *format, ...)
-{
- va_list ap;
- va_start(ap, format);
- trace_vprintf_fl(NULL, 0, key, format, ap);
- va_end(ap);
-}
-
-void trace_argv_printf(const char **argv, const char *format, ...)
-{
- va_list ap;
- va_start(ap, format);
- trace_argv_vprintf_fl(NULL, 0, argv, format, ap);
- va_end(ap);
-}
-
-void trace_strbuf(struct trace_key *key, const struct strbuf *data)
-{
- trace_strbuf_fl(NULL, 0, key, data);
-}
-
-void trace_performance(uint64_t nanos, const char *format, ...)
-{
- va_list ap;
- va_start(ap, format);
- trace_performance_vprintf_fl(NULL, 0, nanos, format, ap);
- va_end(ap);
-}
-
-void trace_performance_since(uint64_t start, const char *format, ...)
-{
- va_list ap;
- va_start(ap, format);
- trace_performance_vprintf_fl(NULL, 0, getnanotime() - start,
- format, ap);
- va_end(ap);
-}
-
-void trace_performance_leave(const char *format, ...)
-{
- va_list ap;
- uint64_t since;
-
- if (perf_indent)
- perf_indent--;
-
- if (!format) /* Allow callers to leave without tracing anything */
- return;
-
- since = perf_start_times[perf_indent];
- va_start(ap, format);
- trace_performance_vprintf_fl(NULL, 0, getnanotime() - since,
- format, ap);
- va_end(ap);
-}
-
-#else
-
void trace_printf_key_fl(const char *file, int line, struct trace_key *key,
const char *format, ...)
{
@@ -342,9 +269,6 @@ void trace_performance_leave_fl(const char *file, int line,
va_end(ap);
}
-#endif /* HAVE_VARIADIC_MACROS */
-
-
static const char *quote_crnl(const char *path)
{
static struct strbuf new_path = STRBUF_INIT;
diff --git a/trace.h b/trace.h
index e25984051a..4e771f86ac 100644
--- a/trace.h
+++ b/trace.h
@@ -126,71 +126,6 @@ void trace_command_performance(const char **argv);
void trace_verbatim(struct trace_key *key, const void *buf, unsigned len);
uint64_t trace_performance_enter(void);
-#ifndef HAVE_VARIADIC_MACROS
-
-/**
- * Prints a formatted message, similar to printf.
- */
-__attribute__((format (printf, 1, 2)))
-void trace_printf(const char *format, ...);
-
-__attribute__((format (printf, 2, 3)))
-void trace_printf_key(struct trace_key *key, const char *format, ...);
-
-/**
- * Prints a formatted message, followed by a quoted list of arguments.
- */
-__attribute__((format (printf, 2, 3)))
-void trace_argv_printf(const char **argv, const char *format, ...);
-
-/**
- * Prints the strbuf, without additional formatting (i.e. doesn't
- * choke on `%` or even `\0`).
- */
-void trace_strbuf(struct trace_key *key, const struct strbuf *data);
-
-/**
- * Prints elapsed time (in nanoseconds) if GIT_TRACE_PERFORMANCE is enabled.
- *
- * Example:
- * ------------
- * uint64_t t = 0;
- * for (;;) {
- * // ignore
- * t -= getnanotime();
- * // code section to measure
- * t += getnanotime();
- * // ignore
- * }
- * trace_performance(t, "frotz");
- * ------------
- */
-__attribute__((format (printf, 2, 3)))
-void trace_performance(uint64_t nanos, const char *format, ...);
-
-/**
- * Prints elapsed time since 'start' if GIT_TRACE_PERFORMANCE is enabled.
- *
- * Example:
- * ------------
- * uint64_t start = getnanotime();
- * // code section to measure
- * trace_performance_since(start, "foobar");
- * ------------
- */
-__attribute__((format (printf, 2, 3)))
-void trace_performance_since(uint64_t start, const char *format, ...);
-
-__attribute__((format (printf, 1, 2)))
-void trace_performance_leave(const char *format, ...);
-
-#else
-
-/*
- * Macros to add file:line - see above for C-style declarations of how these
- * should be used.
- */
-
/*
* TRACE_CONTEXT may be set to __FUNCTION__ if the compiler supports it. The
* default is __FILE__, as it is consistent with assert(), and static function
@@ -204,7 +139,10 @@ void trace_performance_leave(const char *format, ...);
# define TRACE_CONTEXT __FILE__
#endif
-/*
+/**
+ * Macros to add the file:line of the calling code, instead of that of
+ * the trace function itself.
+ *
* Note: with C99 variadic macros, __VA_ARGS__ must include the last fixed
* parameter ('format' in this case). Otherwise, a call without variable
* arguments will have a surplus ','. E.g.:
@@ -220,6 +158,16 @@ void trace_performance_leave(const char *format, ...);
* comma, but this is non-standard.
*/
+/**
+ * trace_printf(), accepts "const char *format, ...".
+ *
+ * Prints a formatted message, similar to printf.
+ */
+#define trace_printf(...) trace_printf_key(&trace_default_key, __VA_ARGS__)
+
+/**
+ * trace_printf_key(), accepts "struct trace_key *key, const char *format, ...".
+ */
#define trace_printf_key(key, ...) \
do { \
if (trace_pass_fl(key)) \
@@ -227,8 +175,11 @@ void trace_performance_leave(const char *format, ...);
__VA_ARGS__); \
} while (0)
-#define trace_printf(...) trace_printf_key(&trace_default_key, __VA_ARGS__)
-
+/**
+ * trace_argv_printf(), accepts "struct trace_key *key, const char *format, ...)".
+ *
+ * Prints a formatted message, followed by a quoted list of arguments.
+ */
#define trace_argv_printf(argv, ...) \
do { \
if (trace_pass_fl(&trace_default_key)) \
@@ -236,12 +187,36 @@ void trace_performance_leave(const char *format, ...);
argv, __VA_ARGS__); \
} while (0)
+/**
+ * trace_strbuf(), accepts "struct trace_key *key, const struct strbuf *data".
+ *
+ * Prints the strbuf, without additional formatting (i.e. doesn't
+ * choke on `%` or even `\0`).
+ */
#define trace_strbuf(key, data) \
do { \
if (trace_pass_fl(key)) \
trace_strbuf_fl(TRACE_CONTEXT, __LINE__, key, data);\
} while (0)
+/**
+ * trace_performance(), accepts "uint64_t nanos, const char *format, ...".
+ *
+ * Prints elapsed time (in nanoseconds) if GIT_TRACE_PERFORMANCE is enabled.
+ *
+ * Example:
+ * ------------
+ * uint64_t t = 0;
+ * for (;;) {
+ * // ignore
+ * t -= getnanotime();
+ * // code section to measure
+ * t += getnanotime();
+ * // ignore
+ * }
+ * trace_performance(t, "frotz");
+ * ------------
+ */
#define trace_performance(nanos, ...) \
do { \
if (trace_pass_fl(&trace_perf_key)) \
@@ -249,6 +224,18 @@ void trace_performance_leave(const char *format, ...);
__VA_ARGS__); \
} while (0)
+/**
+ * trace_performance_since(), accepts "uint64_t start, const char *format, ...".
+ *
+ * Prints elapsed time since 'start' if GIT_TRACE_PERFORMANCE is enabled.
+ *
+ * Example:
+ * ------------
+ * uint64_t start = getnanotime();
+ * // code section to measure
+ * trace_performance_since(start, "foobar");
+ * ------------
+ */
#define trace_performance_since(start, ...) \
do { \
if (trace_pass_fl(&trace_perf_key)) \
@@ -257,6 +244,9 @@ void trace_performance_leave(const char *format, ...);
__VA_ARGS__); \
} while (0)
+/**
+ * trace_performance_leave(), accepts "const char *format, ...".
+ */
#define trace_performance_leave(...) \
do { \
if (trace_pass_fl(&trace_perf_key)) \
@@ -285,6 +275,4 @@ static inline int trace_pass_fl(struct trace_key *key)
return key->fd || !key->initialized;
}
-#endif /* HAVE_VARIADIC_MACROS */
-
#endif /* TRACE_H */
diff --git a/trace2.c b/trace2.c
index b2d471526f..e01cf77f1a 100644
--- a/trace2.c
+++ b/trace2.c
@@ -214,6 +214,7 @@ int trace2_cmd_exit_fl(const char *file, int line, int code)
if (!trace2_enabled)
return code;
+ trace_git_fsync_stats();
trace2_collect_process_info(TRACE2_PROCESS_INFO_EXIT);
tr2main_exit_code = code;
@@ -641,20 +642,6 @@ void trace2_region_enter_printf_fl(const char *file, int line,
va_end(ap);
}
-#ifndef HAVE_VARIADIC_MACROS
-void trace2_region_enter_printf(const char *category, const char *label,
- const struct repository *repo, const char *fmt,
- ...)
-{
- va_list ap;
-
- va_start(ap, fmt);
- trace2_region_enter_printf_va_fl(NULL, 0, category, label, repo, fmt,
- ap);
- va_end(ap);
-}
-#endif
-
void trace2_region_leave_printf_va_fl(const char *file, int line,
const char *category, const char *label,
const struct repository *repo,
@@ -717,20 +704,6 @@ void trace2_region_leave_printf_fl(const char *file, int line,
va_end(ap);
}
-#ifndef HAVE_VARIADIC_MACROS
-void trace2_region_leave_printf(const char *category, const char *label,
- const struct repository *repo, const char *fmt,
- ...)
-{
- va_list ap;
-
- va_start(ap, fmt);
- trace2_region_leave_printf_va_fl(NULL, 0, category, label, repo, fmt,
- ap);
- va_end(ap);
-}
-#endif
-
void trace2_data_string_fl(const char *file, int line, const char *category,
const struct repository *repo, const char *key,
const char *value)
@@ -826,17 +799,6 @@ void trace2_printf_fl(const char *file, int line, const char *fmt, ...)
va_end(ap);
}
-#ifndef HAVE_VARIADIC_MACROS
-void trace2_printf(const char *fmt, ...)
-{
- va_list ap;
-
- va_start(ap, fmt);
- trace2_printf_va_fl(NULL, 0, fmt, ap);
- va_end(ap);
-}
-#endif
-
const char *trace2_session_id(void)
{
return tr2_sid_get();
diff --git a/trace2.h b/trace2.h
index 0cc7b5f531..1b109f57d0 100644
--- a/trace2.h
+++ b/trace2.h
@@ -397,18 +397,9 @@ void trace2_region_enter_printf_fl(const char *file, int line,
const struct repository *repo,
const char *fmt, ...);
-#ifdef HAVE_VARIADIC_MACROS
#define trace2_region_enter_printf(category, label, repo, ...) \
trace2_region_enter_printf_fl(__FILE__, __LINE__, (category), (label), \
(repo), __VA_ARGS__)
-#else
-/* clang-format off */
-__attribute__((format (region_enter_printf, 4, 5)))
-void trace2_region_enter_printf(const char *category, const char *label,
- const struct repository *repo, const char *fmt,
- ...);
-/* clang-format on */
-#endif
/**
* Emit a 'region_leave' event for <category>.<label> with optional
@@ -442,18 +433,9 @@ void trace2_region_leave_printf_fl(const char *file, int line,
const struct repository *repo,
const char *fmt, ...);
-#ifdef HAVE_VARIADIC_MACROS
#define trace2_region_leave_printf(category, label, repo, ...) \
trace2_region_leave_printf_fl(__FILE__, __LINE__, (category), (label), \
(repo), __VA_ARGS__)
-#else
-/* clang-format off */
-__attribute__((format (region_leave_printf, 4, 5)))
-void trace2_region_leave_printf(const char *category, const char *label,
- const struct repository *repo, const char *fmt,
- ...);
-/* clang-format on */
-#endif
/**
* Emit a key-value pair 'data' event of the form <category>.<key> = <value>.
@@ -506,14 +488,7 @@ void trace2_printf_va_fl(const char *file, int line, const char *fmt,
void trace2_printf_fl(const char *file, int line, const char *fmt, ...);
-#ifdef HAVE_VARIADIC_MACROS
#define trace2_printf(...) trace2_printf_fl(__FILE__, __LINE__, __VA_ARGS__)
-#else
-/* clang-format off */
-__attribute__((format (printf, 1, 2)))
-void trace2_printf(const char *fmt, ...);
-/* clang-format on */
-#endif
/*
* Optional platform-specific code to dump information about the
diff --git a/trace2/tr2_tgt_event.c b/trace2/tr2_tgt_event.c
index bd17ecdc32..c5c8cfbbaa 100644
--- a/trace2/tr2_tgt_event.c
+++ b/trace2/tr2_tgt_event.c
@@ -10,7 +10,9 @@
#include "trace2/tr2_tgt.h"
#include "trace2/tr2_tls.h"
-static struct tr2_dst tr2dst_event = { TR2_SYSENV_EVENT, 0, 0, 0, 0 };
+static struct tr2_dst tr2dst_event = {
+ .sysenv_var = TR2_SYSENV_EVENT,
+};
/*
* The version number of the JSON data generated by the EVENT target in this
@@ -613,34 +615,34 @@ static void fn_data_json_fl(const char *file, int line,
}
struct tr2_tgt tr2_tgt_event = {
- &tr2dst_event,
-
- fn_init,
- fn_term,
-
- fn_version_fl,
- fn_start_fl,
- fn_exit_fl,
- fn_signal,
- fn_atexit,
- fn_error_va_fl,
- fn_command_path_fl,
- fn_command_ancestry_fl,
- fn_command_name_fl,
- fn_command_mode_fl,
- fn_alias_fl,
- fn_child_start_fl,
- fn_child_exit_fl,
- fn_child_ready_fl,
- fn_thread_start_fl,
- fn_thread_exit_fl,
- fn_exec_fl,
- fn_exec_result_fl,
- fn_param_fl,
- fn_repo_fl,
- fn_region_enter_printf_va_fl,
- fn_region_leave_printf_va_fl,
- fn_data_fl,
- fn_data_json_fl,
- NULL, /* printf */
+ .pdst = &tr2dst_event,
+
+ .pfn_init = fn_init,
+ .pfn_term = fn_term,
+
+ .pfn_version_fl = fn_version_fl,
+ .pfn_start_fl = fn_start_fl,
+ .pfn_exit_fl = fn_exit_fl,
+ .pfn_signal = fn_signal,
+ .pfn_atexit = fn_atexit,
+ .pfn_error_va_fl = fn_error_va_fl,
+ .pfn_command_path_fl = fn_command_path_fl,
+ .pfn_command_ancestry_fl = fn_command_ancestry_fl,
+ .pfn_command_name_fl = fn_command_name_fl,
+ .pfn_command_mode_fl = fn_command_mode_fl,
+ .pfn_alias_fl = fn_alias_fl,
+ .pfn_child_start_fl = fn_child_start_fl,
+ .pfn_child_exit_fl = fn_child_exit_fl,
+ .pfn_child_ready_fl = fn_child_ready_fl,
+ .pfn_thread_start_fl = fn_thread_start_fl,
+ .pfn_thread_exit_fl = fn_thread_exit_fl,
+ .pfn_exec_fl = fn_exec_fl,
+ .pfn_exec_result_fl = fn_exec_result_fl,
+ .pfn_param_fl = fn_param_fl,
+ .pfn_repo_fl = fn_repo_fl,
+ .pfn_region_enter_printf_va_fl = fn_region_enter_printf_va_fl,
+ .pfn_region_leave_printf_va_fl = fn_region_leave_printf_va_fl,
+ .pfn_data_fl = fn_data_fl,
+ .pfn_data_json_fl = fn_data_json_fl,
+ .pfn_printf_va_fl = NULL,
};
diff --git a/trace2/tr2_tgt_normal.c b/trace2/tr2_tgt_normal.c
index 6e429a3fb9..c42fbade7f 100644
--- a/trace2/tr2_tgt_normal.c
+++ b/trace2/tr2_tgt_normal.c
@@ -9,7 +9,9 @@
#include "trace2/tr2_tgt.h"
#include "trace2/tr2_tls.h"
-static struct tr2_dst tr2dst_normal = { TR2_SYSENV_NORMAL, 0, 0, 0, 0 };
+static struct tr2_dst tr2dst_normal = {
+ .sysenv_var = TR2_SYSENV_NORMAL,
+};
/*
* Use the TR2_SYSENV_NORMAL_BRIEF setting to omit the "<time> <file>:<line>"
@@ -325,34 +327,34 @@ static void fn_printf_va_fl(const char *file, int line,
}
struct tr2_tgt tr2_tgt_normal = {
- &tr2dst_normal,
-
- fn_init,
- fn_term,
-
- fn_version_fl,
- fn_start_fl,
- fn_exit_fl,
- fn_signal,
- fn_atexit,
- fn_error_va_fl,
- fn_command_path_fl,
- fn_command_ancestry_fl,
- fn_command_name_fl,
- fn_command_mode_fl,
- fn_alias_fl,
- fn_child_start_fl,
- fn_child_exit_fl,
- fn_child_ready_fl,
- NULL, /* thread_start */
- NULL, /* thread_exit */
- fn_exec_fl,
- fn_exec_result_fl,
- fn_param_fl,
- fn_repo_fl,
- NULL, /* region_enter */
- NULL, /* region_leave */
- NULL, /* data */
- NULL, /* data_json */
- fn_printf_va_fl,
+ .pdst = &tr2dst_normal,
+
+ .pfn_init = fn_init,
+ .pfn_term = fn_term,
+
+ .pfn_version_fl = fn_version_fl,
+ .pfn_start_fl = fn_start_fl,
+ .pfn_exit_fl = fn_exit_fl,
+ .pfn_signal = fn_signal,
+ .pfn_atexit = fn_atexit,
+ .pfn_error_va_fl = fn_error_va_fl,
+ .pfn_command_path_fl = fn_command_path_fl,
+ .pfn_command_ancestry_fl = fn_command_ancestry_fl,
+ .pfn_command_name_fl = fn_command_name_fl,
+ .pfn_command_mode_fl = fn_command_mode_fl,
+ .pfn_alias_fl = fn_alias_fl,
+ .pfn_child_start_fl = fn_child_start_fl,
+ .pfn_child_exit_fl = fn_child_exit_fl,
+ .pfn_child_ready_fl = fn_child_ready_fl,
+ .pfn_thread_start_fl = NULL,
+ .pfn_thread_exit_fl = NULL,
+ .pfn_exec_fl = fn_exec_fl,
+ .pfn_exec_result_fl = fn_exec_result_fl,
+ .pfn_param_fl = fn_param_fl,
+ .pfn_repo_fl = fn_repo_fl,
+ .pfn_region_enter_printf_va_fl = NULL,
+ .pfn_region_leave_printf_va_fl = NULL,
+ .pfn_data_fl = NULL,
+ .pfn_data_json_fl = NULL,
+ .pfn_printf_va_fl = fn_printf_va_fl,
};
diff --git a/trace2/tr2_tgt_perf.c b/trace2/tr2_tgt_perf.c
index 2ff9cf7083..a1eff8bea3 100644
--- a/trace2/tr2_tgt_perf.c
+++ b/trace2/tr2_tgt_perf.c
@@ -11,7 +11,9 @@
#include "trace2/tr2_tgt.h"
#include "trace2/tr2_tls.h"
-static struct tr2_dst tr2dst_perf = { TR2_SYSENV_PERF, 0, 0, 0, 0 };
+static struct tr2_dst tr2dst_perf = {
+ .sysenv_var = TR2_SYSENV_PERF,
+};
/*
* Use TR2_SYSENV_PERF_BRIEF to omit the "<time> <file>:<line>"
@@ -549,34 +551,34 @@ static void fn_printf_va_fl(const char *file, int line,
}
struct tr2_tgt tr2_tgt_perf = {
- &tr2dst_perf,
-
- fn_init,
- fn_term,
-
- fn_version_fl,
- fn_start_fl,
- fn_exit_fl,
- fn_signal,
- fn_atexit,
- fn_error_va_fl,
- fn_command_path_fl,
- fn_command_ancestry_fl,
- fn_command_name_fl,
- fn_command_mode_fl,
- fn_alias_fl,
- fn_child_start_fl,
- fn_child_exit_fl,
- fn_child_ready_fl,
- fn_thread_start_fl,
- fn_thread_exit_fl,
- fn_exec_fl,
- fn_exec_result_fl,
- fn_param_fl,
- fn_repo_fl,
- fn_region_enter_printf_va_fl,
- fn_region_leave_printf_va_fl,
- fn_data_fl,
- fn_data_json_fl,
- fn_printf_va_fl,
+ .pdst = &tr2dst_perf,
+
+ .pfn_init = fn_init,
+ .pfn_term = fn_term,
+
+ .pfn_version_fl = fn_version_fl,
+ .pfn_start_fl = fn_start_fl,
+ .pfn_exit_fl = fn_exit_fl,
+ .pfn_signal = fn_signal,
+ .pfn_atexit = fn_atexit,
+ .pfn_error_va_fl = fn_error_va_fl,
+ .pfn_command_path_fl = fn_command_path_fl,
+ .pfn_command_ancestry_fl = fn_command_ancestry_fl,
+ .pfn_command_name_fl = fn_command_name_fl,
+ .pfn_command_mode_fl = fn_command_mode_fl,
+ .pfn_alias_fl = fn_alias_fl,
+ .pfn_child_start_fl = fn_child_start_fl,
+ .pfn_child_exit_fl = fn_child_exit_fl,
+ .pfn_child_ready_fl = fn_child_ready_fl,
+ .pfn_thread_start_fl = fn_thread_start_fl,
+ .pfn_thread_exit_fl = fn_thread_exit_fl,
+ .pfn_exec_fl = fn_exec_fl,
+ .pfn_exec_result_fl = fn_exec_result_fl,
+ .pfn_param_fl = fn_param_fl,
+ .pfn_repo_fl = fn_repo_fl,
+ .pfn_region_enter_printf_va_fl = fn_region_enter_printf_va_fl,
+ .pfn_region_leave_printf_va_fl = fn_region_leave_printf_va_fl,
+ .pfn_data_fl = fn_data_fl,
+ .pfn_data_json_fl = fn_data_json_fl,
+ .pfn_printf_va_fl = fn_printf_va_fl,
};
diff --git a/transport-helper.c b/transport-helper.c
index a0297b0986..b4dbbabb0c 100644
--- a/transport-helper.c
+++ b/transport-helper.c
@@ -715,6 +715,9 @@ static int fetch_refs(struct transport *transport,
if (data->transport_options.update_shallow)
set_helper_option(transport, "update-shallow", "true");
+ if (data->transport_options.refetch)
+ set_helper_option(transport, "refetch", "true");
+
if (data->transport_options.filter_options.choice) {
const char *spec = expand_list_objects_filter_spec(
&data->transport_options.filter_options);
diff --git a/transport.c b/transport.c
index 1e136b7798..01e24bd578 100644
--- a/transport.c
+++ b/transport.c
@@ -125,16 +125,9 @@ struct bundle_transport_data {
unsigned get_refs_from_bundle_called : 1;
};
-static struct ref *get_refs_from_bundle(struct transport *transport,
- int for_push,
- struct transport_ls_refs_options *transport_options)
+static void get_refs_from_bundle_inner(struct transport *transport)
{
struct bundle_transport_data *data = transport->data;
- struct ref *result = NULL;
- int i;
-
- if (for_push)
- return NULL;
data->get_refs_from_bundle_called = 1;
@@ -145,6 +138,20 @@ static struct ref *get_refs_from_bundle(struct transport *transport,
die(_("could not read bundle '%s'"), transport->url);
transport->hash_algo = data->header.hash_algo;
+}
+
+static struct ref *get_refs_from_bundle(struct transport *transport,
+ int for_push,
+ struct transport_ls_refs_options *transport_options)
+{
+ struct bundle_transport_data *data = transport->data;
+ struct ref *result = NULL;
+ int i;
+
+ if (for_push)
+ return NULL;
+
+ get_refs_from_bundle_inner(transport);
for (i = 0; i < data->header.references.nr; i++) {
struct string_list_item *e = data->header.references.items + i;
@@ -169,7 +176,7 @@ static int fetch_refs_from_bundle(struct transport *transport,
strvec_push(&extra_index_pack_args, "-v");
if (!data->get_refs_from_bundle_called)
- get_refs_from_bundle(transport, 0, NULL);
+ get_refs_from_bundle_inner(transport);
ret = unbundle(the_repository, &data->header, data->fd,
&extra_index_pack_args);
transport->hash_algo = data->header.hash_algo;
@@ -243,6 +250,9 @@ static int set_git_option(struct git_transport_options *opts,
list_objects_filter_die_if_populated(&opts->filter_options);
parse_list_objects_filter(&opts->filter_options, value);
return 0;
+ } else if (!strcmp(name, TRANS_OPT_REFETCH)) {
+ opts->refetch = !!value;
+ return 0;
} else if (!strcmp(name, TRANS_OPT_REJECT_SHALLOW)) {
opts->reject_shallow = !!value;
return 0;
@@ -377,6 +387,7 @@ static int fetch_refs_via_pack(struct transport *transport,
args.update_shallow = data->options.update_shallow;
args.from_promisor = data->options.from_promisor;
args.filter_options = data->options.filter_options;
+ args.refetch = data->options.refetch;
args.stateless_rpc = transport->stateless_rpc;
args.server_options = transport->server_options;
args.negotiation_tips = data->options.negotiation_tips;
@@ -1292,7 +1303,7 @@ int transport_push(struct repository *r,
&transport_options);
trace2_region_leave("transport_push", "get_refs_list", r);
- strvec_clear(&transport_options.ref_prefixes);
+ transport_ls_refs_options_release(&transport_options);
if (flags & TRANSPORT_PUSH_ALL)
match_flags |= MATCH_REFS_ALL;
@@ -1420,6 +1431,12 @@ const struct ref *transport_get_remote_refs(struct transport *transport,
return transport->remote_refs;
}
+void transport_ls_refs_options_release(struct transport_ls_refs_options *opts)
+{
+ strvec_clear(&opts->ref_prefixes);
+ free((char *)opts->unborn_head_target);
+}
+
int transport_fetch_refs(struct transport *transport, struct ref *refs)
{
int rc;
diff --git a/transport.h b/transport.h
index 3f16e50c19..12bc08fc33 100644
--- a/transport.h
+++ b/transport.h
@@ -16,6 +16,7 @@ struct git_transport_options {
unsigned update_shallow : 1;
unsigned reject_shallow : 1;
unsigned deepen_relative : 1;
+ unsigned refetch : 1;
/* see documentation of corresponding flag in fetch-pack.h */
unsigned from_promisor : 1;
@@ -216,6 +217,9 @@ void transport_check_allowed(const char *type);
/* Filter objects for partial clone and fetch */
#define TRANS_OPT_LIST_OBJECTS_FILTER "filter"
+/* Refetch all objects without negotiating */
+#define TRANS_OPT_REFETCH "refetch"
+
/* Request atomic (all-or-nothing) updates when pushing */
#define TRANS_OPT_ATOMIC "atomic"
@@ -257,15 +261,19 @@ struct transport_ls_refs_options {
/*
* If unborn_head_target is not NULL, and the remote reports HEAD as
* pointing to an unborn branch, transport_get_remote_refs() stores the
- * unborn branch in unborn_head_target. It should be freed by the
- * caller.
+ * unborn branch in unborn_head_target.
*/
- char *unborn_head_target;
+ const char *unborn_head_target;
};
#define TRANSPORT_LS_REFS_OPTIONS_INIT { \
.ref_prefixes = STRVEC_INIT, \
}
+/**
+ * Release the "struct transport_ls_refs_options".
+ */
+void transport_ls_refs_options_release(struct transport_ls_refs_options *opts);
+
/*
* Retrieve refs from a remote.
*/
diff --git a/tree-walk.c b/tree-walk.c
index 3a94959d64..506234b4b8 100644
--- a/tree-walk.c
+++ b/tree-walk.c
@@ -89,7 +89,7 @@ void *fill_tree_descriptor(struct repository *r,
void *buf = NULL;
if (oid) {
- buf = read_object_with_reference(r, oid, tree_type, &size, NULL);
+ buf = read_object_with_reference(r, oid, OBJ_TREE, &size, NULL);
if (!buf)
die("unable to read tree %s", oid_to_hex(oid));
}
@@ -605,7 +605,7 @@ int get_tree_entry(struct repository *r,
unsigned long size;
struct object_id root;
- tree = read_object_with_reference(r, tree_oid, tree_type, &size, &root);
+ tree = read_object_with_reference(r, tree_oid, OBJ_TREE, &size, &root);
if (!tree)
return -1;
@@ -677,7 +677,7 @@ enum get_oid_result get_tree_entry_follow_symlinks(struct repository *r,
unsigned long size;
tree = read_object_with_reference(r,
&current_tree_oid,
- tree_type, &size,
+ OBJ_TREE, &size,
&root);
if (!tree)
goto done;
diff --git a/unpack-trees.c b/unpack-trees.c
index 360844bda3..a1d0ff3a4d 100644
--- a/unpack-trees.c
+++ b/unpack-trees.c
@@ -11,6 +11,7 @@
#include "refs.h"
#include "attr.h"
#include "split-index.h"
+#include "sparse-index.h"
#include "submodule.h"
#include "submodule-config.h"
#include "fsmonitor.h"
@@ -595,13 +596,6 @@ static void mark_ce_used(struct cache_entry *ce, struct unpack_trees_options *o)
{
ce->ce_flags |= CE_UNPACKED;
- /*
- * If this is a sparse directory, don't advance cache_bottom.
- * That will be advanced later using the cache-tree data.
- */
- if (S_ISSPARSEDIR(ce->ce_mode))
- return;
-
if (o->cache_bottom < o->src_index->cache_nr &&
o->src_index->cache[o->cache_bottom] == ce) {
int bottom = o->cache_bottom;
@@ -651,24 +645,17 @@ static void mark_ce_used_same_name(struct cache_entry *ce,
}
}
-static struct cache_entry *next_cache_entry(struct unpack_trees_options *o, int *hint)
+static struct cache_entry *next_cache_entry(struct unpack_trees_options *o)
{
const struct index_state *index = o->src_index;
int pos = o->cache_bottom;
- if (*hint > pos)
- pos = *hint;
-
while (pos < index->cache_nr) {
struct cache_entry *ce = index->cache[pos];
- if (!(ce->ce_flags & CE_UNPACKED)) {
- *hint = pos + 1;
+ if (!(ce->ce_flags & CE_UNPACKED))
return ce;
- }
pos++;
}
-
- *hint = pos;
return NULL;
}
@@ -1360,6 +1347,42 @@ static int is_sparse_directory_entry(struct cache_entry *ce,
return sparse_dir_matches_path(ce, info, name);
}
+static int unpack_sparse_callback(int n, unsigned long mask, unsigned long dirmask, struct name_entry *names, struct traverse_info *info)
+{
+ struct cache_entry *src[MAX_UNPACK_TREES + 1] = { NULL, };
+ struct unpack_trees_options *o = info->data;
+ int ret;
+
+ assert(o->merge);
+
+ /*
+ * Unlike in 'unpack_callback', where src[0] is derived from the index when
+ * merging, src[0] is a transient cache entry derived from the first tree
+ * provided. Create the temporary entry as if it came from a non-sparse index.
+ */
+ if (!is_null_oid(&names[0].oid)) {
+ src[0] = create_ce_entry(info, &names[0], 0,
+ &o->result, 1,
+ dirmask & (1ul << 0));
+ src[0]->ce_flags |= (CE_SKIP_WORKTREE | CE_NEW_SKIP_WORKTREE);
+ }
+
+ /*
+ * 'unpack_single_entry' assumes that src[0] is derived directly from
+ * the index, rather than from an entry in 'names'. This is *not* true when
+ * merging a sparse directory, in which case names[0] is the "index" source
+ * entry. To match the expectations of 'unpack_single_entry', shift past the
+ * "index" tree (i.e., names[0]) and adjust 'names', 'n', 'mask', and
+ * 'dirmask' accordingly.
+ */
+ ret = unpack_single_entry(n - 1, mask >> 1, dirmask >> 1, src, names + 1, info);
+
+ if (src[0])
+ discard_cache_entry(src[0]);
+
+ return ret >= 0 ? mask : -1;
+}
+
/*
* Note that traverse_by_cache_tree() duplicates some logic in this function
* without actually calling it. If you change the logic here you may need to
@@ -1380,13 +1403,12 @@ static int unpack_callback(int n, unsigned long mask, unsigned long dirmask, str
/* Are we supposed to look at the index too? */
if (o->merge) {
- int hint = -1;
while (1) {
int cmp;
struct cache_entry *ce;
if (o->diff_index_cached)
- ce = next_cache_entry(o, &hint);
+ ce = next_cache_entry(o);
else
ce = find_cache_entry(info, p);
@@ -1442,7 +1464,14 @@ static int unpack_callback(int n, unsigned long mask, unsigned long dirmask, str
* it does not do any look-ahead, so this is safe.
*/
if (matches) {
- o->cache_bottom += matches;
+ /*
+ * Only increment the cache_bottom if the
+ * directory isn't a sparse directory index
+ * entry (if it is, it was already incremented)
+ * in 'mark_ce_used()'
+ */
+ if (!src[0] || !S_ISSPARSEDIR(src[0]->ce_mode))
+ o->cache_bottom += matches;
return mask;
}
}
@@ -1693,6 +1722,41 @@ static void populate_from_existing_patterns(struct unpack_trees_options *o,
o->pl = pl;
}
+static void update_sparsity_for_prefix(const char *prefix,
+ struct index_state *istate)
+{
+ int prefix_len = strlen(prefix);
+ struct strbuf ce_prefix = STRBUF_INIT;
+
+ if (!istate->sparse_index)
+ return;
+
+ while (prefix_len > 0 && prefix[prefix_len - 1] == '/')
+ prefix_len--;
+
+ if (prefix_len <= 0)
+ BUG("Invalid prefix passed to update_sparsity_for_prefix");
+
+ strbuf_grow(&ce_prefix, prefix_len + 1);
+ strbuf_add(&ce_prefix, prefix, prefix_len);
+ strbuf_addch(&ce_prefix, '/');
+
+ /*
+ * If the prefix points to a sparse directory or a path inside a sparse
+ * directory, the index should be expanded. This is accomplished in one
+ * of two ways:
+ * - if the prefix is inside a sparse directory, it will be expanded by
+ * the 'ensure_full_index(...)' call in 'index_name_pos(...)'.
+ * - if the prefix matches an existing sparse directory entry,
+ * 'index_name_pos(...)' will return its index position, triggering
+ * the 'ensure_full_index(...)' below.
+ */
+ if (!path_in_cone_mode_sparse_checkout(ce_prefix.buf, istate) &&
+ index_name_pos(istate, ce_prefix.buf, ce_prefix.len) >= 0)
+ ensure_full_index(istate);
+
+ strbuf_release(&ce_prefix);
+}
static int verify_absent(const struct cache_entry *,
enum unpack_trees_error_types,
@@ -1706,7 +1770,7 @@ static int verify_absent(const struct cache_entry *,
int unpack_trees(unsigned len, struct tree_desc *t, struct unpack_trees_options *o)
{
struct repository *repo = the_repository;
- int i, hint, ret;
+ int i, ret;
static struct cache_entry *dfc;
struct pattern_list pl;
int free_pattern_list = 0;
@@ -1739,6 +1803,9 @@ int unpack_trees(unsigned len, struct tree_desc *t, struct unpack_trees_options
setup_standard_excludes(o->dir);
}
+ if (o->prefix)
+ update_sparsity_for_prefix(o->prefix, o->src_index);
+
if (!core_apply_sparse_checkout || !o->update)
o->skip_sparse_checkout = 1;
if (!o->skip_sparse_checkout && !o->pl) {
@@ -1773,6 +1840,11 @@ int unpack_trees(unsigned len, struct tree_desc *t, struct unpack_trees_options
o->result.fsmonitor_last_update =
xstrdup_or_null(o->src_index->fsmonitor_last_update);
+ if (!o->src_index->initialized &&
+ !repo->settings.command_requires_full_index &&
+ is_sparse_index_allowed(&o->result, 0))
+ o->result.sparse_index = 1;
+
/*
* Sparse checkout loop #1: set NEW_SKIP_WORKTREE on existing entries
*/
@@ -1795,15 +1867,13 @@ int unpack_trees(unsigned len, struct tree_desc *t, struct unpack_trees_options
info.pathspec = o->pathspec;
if (o->prefix) {
- hint = -1;
-
/*
* Unpack existing index entries that sort before the
* prefix the tree is spliced into. Note that o->merge
* is always true in this case.
*/
while (1) {
- struct cache_entry *ce = next_cache_entry(o, &hint);
+ struct cache_entry *ce = next_cache_entry(o);
if (!ce)
break;
if (ce_in_traverse_path(ce, &info))
@@ -1824,9 +1894,8 @@ int unpack_trees(unsigned len, struct tree_desc *t, struct unpack_trees_options
/* Any left-over entries in the index? */
if (o->merge) {
- hint = -1;
while (1) {
- struct cache_entry *ce = next_cache_entry(o, &hint);
+ struct cache_entry *ce = next_cache_entry(o);
if (!ce)
break;
if (unpack_index_entry(ce, o) < 0)
@@ -2065,7 +2134,9 @@ static int verify_uptodate_1(const struct cache_entry *ce,
int verify_uptodate(const struct cache_entry *ce,
struct unpack_trees_options *o)
{
- if (!o->skip_sparse_checkout && (ce->ce_flags & CE_NEW_SKIP_WORKTREE))
+ if (!o->skip_sparse_checkout &&
+ (ce->ce_flags & CE_SKIP_WORKTREE) &&
+ (ce->ce_flags & CE_NEW_SKIP_WORKTREE))
return 0;
return verify_uptodate_1(ce, o, ERROR_NOT_UPTODATE_FILE);
}
@@ -2434,6 +2505,37 @@ static int merged_entry(const struct cache_entry *ce,
return 1;
}
+static int merged_sparse_dir(const struct cache_entry * const *src, int n,
+ struct unpack_trees_options *o)
+{
+ struct tree_desc t[MAX_UNPACK_TREES + 1];
+ void * tree_bufs[MAX_UNPACK_TREES + 1];
+ struct traverse_info info;
+ int i, ret;
+
+ /*
+ * Create the tree traversal information for traversing into *only* the
+ * sparse directory.
+ */
+ setup_traverse_info(&info, src[0]->name);
+ info.fn = unpack_sparse_callback;
+ info.data = o;
+ info.show_all_errors = o->show_all_errors;
+ info.pathspec = o->pathspec;
+
+ /* Get the tree descriptors of the sparse directory in each of the merging trees */
+ for (i = 0; i < n; i++)
+ tree_bufs[i] = fill_tree_descriptor(o->src_index->repo, &t[i],
+ src[i] && !is_null_oid(&src[i]->oid) ? &src[i]->oid : NULL);
+
+ ret = traverse_trees(o->src_index, n, t, &info);
+
+ for (i = 0; i < n; i++)
+ free(tree_bufs[i]);
+
+ return ret;
+}
+
static int deleted_entry(const struct cache_entry *ce,
const struct cache_entry *old,
struct unpack_trees_options *o)
@@ -2538,16 +2640,24 @@ int threeway_merge(const struct cache_entry * const *stages,
*/
/* #14, #14ALT, #2ALT */
if (remote && !df_conflict_head && head_match && !remote_match) {
- if (index && !same(index, remote) && !same(index, head))
- return reject_merge(index, o);
+ if (index && !same(index, remote) && !same(index, head)) {
+ if (S_ISSPARSEDIR(index->ce_mode))
+ return merged_sparse_dir(stages, 4, o);
+ else
+ return reject_merge(index, o);
+ }
return merged_entry(remote, index, o);
}
/*
* If we have an entry in the index cache, then we want to
* make sure that it matches head.
*/
- if (index && !same(index, head))
- return reject_merge(index, o);
+ if (index && !same(index, head)) {
+ if (S_ISSPARSEDIR(index->ce_mode))
+ return merged_sparse_dir(stages, 4, o);
+ else
+ return reject_merge(index, o);
+ }
if (head) {
/* #5ALT, #15 */
@@ -2609,11 +2719,21 @@ int threeway_merge(const struct cache_entry * const *stages,
}
- /* Below are "no merge" cases, which require that the index be
- * up-to-date to avoid the files getting overwritten with
- * conflict resolution files.
- */
+ /* Handle "no merge" cases (see t/t1000-read-tree-m-3way.sh) */
if (index) {
+ /*
+ * If we've reached the "no merge" cases and we're merging
+ * a sparse directory, we may have an "edit/edit" conflict that
+ * can be resolved by individually merging directory contents.
+ */
+ if (S_ISSPARSEDIR(index->ce_mode))
+ return merged_sparse_dir(stages, 4, o);
+
+ /*
+ * If we're not merging a sparse directory, ensure the index is
+ * up-to-date to avoid files getting overwritten with conflict
+ * resolution files
+ */
if (verify_uptodate(index, o))
return -1;
}
@@ -2704,6 +2824,14 @@ int twoway_merge(const struct cache_entry * const *src,
* reject the merge instead.
*/
return merged_entry(newtree, current, o);
+ } else if (S_ISSPARSEDIR(current->ce_mode)) {
+ /*
+ * The sparse directories differ, but we don't know whether that's
+ * because of two different files in the directory being modified
+ * (can be trivially merged) or if there is a real file conflict.
+ * Merge the sparse directory by OID to compare file-by-file.
+ */
+ return merged_sparse_dir(src, 3, o);
} else
return reject_merge(current, o);
}
diff --git a/upload-pack.c b/upload-pack.c
index 8acc98741b..3a851b3606 100644
--- a/upload-pack.c
+++ b/upload-pack.c
@@ -1400,13 +1400,19 @@ static int parse_want(struct packet_writer *writer, const char *line,
const char *arg;
if (skip_prefix(line, "want ", &arg)) {
struct object_id oid;
+ struct commit *commit;
struct object *o;
if (get_oid_hex(arg, &oid))
die("git upload-pack: protocol error, "
"expected to get oid, not '%s'", line);
- o = parse_object(the_repository, &oid);
+ commit = lookup_commit_in_graph(the_repository, &oid);
+ if (commit)
+ o = &commit->object;
+ else
+ o = parse_object(the_repository, &oid);
+
if (!o) {
packet_writer_error(writer,
"upload-pack: not our ref %s",
@@ -1434,7 +1440,7 @@ static int parse_want_ref(struct packet_writer *writer, const char *line,
if (skip_prefix(line, "want-ref ", &refname_nons)) {
struct object_id oid;
struct string_list_item *item;
- struct object *o;
+ struct object *o = NULL;
struct strbuf refname = STRBUF_INIT;
strbuf_addf(&refname, "%s%s", get_git_namespace(), refname_nons);
@@ -1448,7 +1454,15 @@ static int parse_want_ref(struct packet_writer *writer, const char *line,
item = string_list_append(wanted_refs, refname_nons);
item->util = oiddup(&oid);
- o = parse_object_or_die(&oid, refname_nons);
+ if (!starts_with(refname_nons, "refs/tags/")) {
+ struct commit *commit = lookup_commit_in_graph(the_repository, &oid);
+ if (commit)
+ o = &commit->object;
+ }
+
+ if (!o)
+ o = parse_object_or_die(&oid, refname_nons);
+
if (!(o->flags & WANTED)) {
o->flags |= WANTED;
add_object_array(o, NULL, want_obj);
diff --git a/urlmatch.c b/urlmatch.c
index 03ad3f30a9..b615adc923 100644
--- a/urlmatch.c
+++ b/urlmatch.c
@@ -611,3 +611,8 @@ int urlmatch_config_entry(const char *var, const char *value, void *cb)
strbuf_release(&synthkey);
return retval;
}
+
+void urlmatch_config_release(struct urlmatch_config *config)
+{
+ string_list_clear(&config->vars, 1);
+}
diff --git a/urlmatch.h b/urlmatch.h
index 34a3ba6d19..9f40b00bfb 100644
--- a/urlmatch.h
+++ b/urlmatch.h
@@ -71,5 +71,6 @@ struct urlmatch_config {
}
int urlmatch_config_entry(const char *var, const char *value, void *cb);
+void urlmatch_config_release(struct urlmatch_config *config);
#endif /* URL_MATCH_H */
diff --git a/usage.c b/usage.c
index 9943dd8742..b738dd178b 100644
--- a/usage.c
+++ b/usage.c
@@ -299,10 +299,7 @@ static NORETURN void BUG_vfl(const char *file, int line, const char *fmt, va_lis
va_copy(params_copy, params);
/* truncation via snprintf is OK here */
- if (file)
- snprintf(prefix, sizeof(prefix), "BUG: %s:%d: ", file, line);
- else
- snprintf(prefix, sizeof(prefix), "BUG: ");
+ snprintf(prefix, sizeof(prefix), "BUG: %s:%d: ", file, line);
vreportf(prefix, fmt, params);
@@ -317,7 +314,6 @@ static NORETURN void BUG_vfl(const char *file, int line, const char *fmt, va_lis
abort();
}
-#ifdef HAVE_VARIADIC_MACROS
NORETURN void BUG_fl(const char *file, int line, const char *fmt, ...)
{
va_list ap;
@@ -325,15 +321,6 @@ NORETURN void BUG_fl(const char *file, int line, const char *fmt, ...)
BUG_vfl(file, line, fmt, ap);
va_end(ap);
}
-#else
-NORETURN void BUG(const char *fmt, ...)
-{
- va_list ap;
- va_start(ap, fmt);
- BUG_vfl(NULL, 0, fmt, ap);
- va_end(ap);
-}
-#endif
#ifdef SUPPRESS_ANNOTATED_LEAKS
void unleak_memory(const void *ptr, size_t len)
diff --git a/userdiff.c b/userdiff.c
index 8578cb0d12..151d9a5278 100644
--- a/userdiff.c
+++ b/userdiff.c
@@ -7,12 +7,24 @@ static struct userdiff_driver *drivers;
static int ndrivers;
static int drivers_alloc;
-#define PATTERNS(name, pattern, word_regex) \
- { name, NULL, -1, { pattern, REG_EXTENDED }, \
- word_regex "|[^[:space:]]|[\xc0-\xff][\x80-\xbf]+" }
-#define IPATTERN(name, pattern, word_regex) \
- { name, NULL, -1, { pattern, REG_EXTENDED | REG_ICASE }, \
- word_regex "|[^[:space:]]|[\xc0-\xff][\x80-\xbf]+" }
+#define PATTERNS(lang, rx, wrx) { \
+ .name = lang, \
+ .binary = -1, \
+ .funcname = { \
+ .pattern = rx, \
+ .cflags = REG_EXTENDED, \
+ }, \
+ .word_regex = wrx "|[^[:space:]]|[\xc0-\xff][\x80-\xbf]+", \
+}
+#define IPATTERN(lang, rx, wrx) { \
+ .name = lang, \
+ .binary = -1, \
+ .funcname = { \
+ .pattern = rx, \
+ .cflags = REG_EXTENDED | REG_ICASE, \
+ }, \
+ .word_regex = wrx "|[^[:space:]]|[\xc0-\xff][\x80-\xbf]+", \
+}
/*
* Built-in drivers for various languages, sorted by their names
@@ -168,6 +180,18 @@ PATTERNS("java",
"|[-+0-9.e]+[fFlL]?|0[xXbB]?[0-9a-fA-F]+[lL]?"
"|[-+*/<>%&^|=!]="
"|--|\\+\\+|<<=?|>>>?=?|&&|\\|\\|"),
+PATTERNS("kotlin",
+ "^[ \t]*(([a-z]+[ \t]+)*(fun|class|interface)[ \t]+.*)$",
+ /* -- */
+ "[a-zA-Z_][a-zA-Z0-9_]*"
+ /* hexadecimal and binary numbers */
+ "|0[xXbB][0-9a-fA-F_]+[lLuU]*"
+ /* integers and floats */
+ "|[0-9][0-9_]*([.][0-9_]*)?([Ee][-+]?[0-9]+)?[fFlLuU]*"
+ /* floating point numbers beginning with decimal point */
+ "|[.][0-9][0-9_]*([Ee][-+]?[0-9]+)?[fFlLuU]?"
+ /* unary and binary operators */
+ "|[-+*/<>%&^|=!]==?|--|\\+\\+|<<=|>>=|&&|\\|\\||->|\\.\\*|!!|[?:.][.:]"),
PATTERNS("markdown",
"^ {0,3}#{1,6}[ \t].*",
/* -- */
@@ -275,17 +299,13 @@ PATTERNS("tex", "^(\\\\((sub)*section|chapter|part)\\*{0,1}\\{.*)$",
#undef IPATTERN
static struct userdiff_driver driver_true = {
- "diff=true",
- NULL,
- 0,
- { NULL, 0 }
+ .name = "diff=true",
+ .binary = 0,
};
static struct userdiff_driver driver_false = {
- "!diff",
- NULL,
- 1,
- { NULL, 0 }
+ .name = "!diff",
+ .binary = 1,
};
struct find_by_namelen_data {
diff --git a/worktree.c b/worktree.c
index a7b184f4f5..257ba4cf1e 100644
--- a/worktree.c
+++ b/worktree.c
@@ -5,6 +5,7 @@
#include "worktree.h"
#include "dir.h"
#include "wt-status.h"
+#include "config.h"
void free_worktrees(struct worktree **worktrees)
{
@@ -28,13 +29,11 @@ static void add_head_info(struct worktree *wt)
{
int flags;
const char *target;
- int ignore_errno;
target = refs_resolve_ref_unsafe(get_worktree_ref_store(wt),
"HEAD",
0,
- &wt->head_oid, &flags,
- &ignore_errno);
+ &wt->head_oid, &flags);
if (!target)
return;
@@ -416,7 +415,6 @@ const struct worktree *find_shared_symref(struct worktree **worktrees,
const char *symref_target;
struct ref_store *refs;
int flags;
- int ignore_errno;
if (wt->is_bare)
continue;
@@ -434,8 +432,7 @@ const struct worktree *find_shared_symref(struct worktree **worktrees,
refs = get_worktree_ref_store(wt);
symref_target = refs_resolve_ref_unsafe(refs, symref, 0,
- NULL, &flags,
- &ignore_errno);
+ NULL, &flags);
if ((flags & REF_ISSYMREF) &&
symref_target && !strcmp(symref_target, target)) {
existing = wt;
@@ -563,7 +560,6 @@ int other_head_refs(each_ref_fn fn, void *cb_data)
struct worktree *wt = *p;
struct object_id oid;
int flag;
- int ignore_errno;
if (wt->is_current)
continue;
@@ -573,7 +569,7 @@ int other_head_refs(each_ref_fn fn, void *cb_data)
if (refs_resolve_ref_unsafe(get_main_ref_store(the_repository),
refname.buf,
RESOLVE_REF_READING,
- &oid, &flag, &ignore_errno))
+ &oid, &flag))
ret = fn(refname.buf, &oid, flag, cb_data);
if (ret)
break;
@@ -826,3 +822,75 @@ int should_prune_worktree(const char *id, struct strbuf *reason, char **wtpath,
*wtpath = path;
return 0;
}
+
+static int move_config_setting(const char *key, const char *value,
+ const char *from_file, const char *to_file)
+{
+ if (git_config_set_in_file_gently(to_file, key, value))
+ return error(_("unable to set %s in '%s'"), key, to_file);
+ if (git_config_set_in_file_gently(from_file, key, NULL))
+ return error(_("unable to unset %s in '%s'"), key, from_file);
+ return 0;
+}
+
+int init_worktree_config(struct repository *r)
+{
+ int res = 0;
+ int bare = 0;
+ struct config_set cs = { { 0 } };
+ const char *core_worktree;
+ char *common_config_file;
+ char *main_worktree_file;
+
+ /*
+ * If the extension is already enabled, then we can skip the
+ * upgrade process.
+ */
+ if (repository_format_worktree_config)
+ return 0;
+ if ((res = git_config_set_gently("extensions.worktreeConfig", "true")))
+ return error(_("failed to set extensions.worktreeConfig setting"));
+
+ common_config_file = xstrfmt("%s/config", r->commondir);
+ main_worktree_file = xstrfmt("%s/config.worktree", r->commondir);
+
+ git_configset_init(&cs);
+ git_configset_add_file(&cs, common_config_file);
+
+ /*
+ * If core.bare is true in the common config file, then we need to
+ * move it to the main worktree's config file or it will break all
+ * worktrees. If it is false, then leave it in place because it
+ * _could_ be negating a global core.bare=true.
+ */
+ if (!git_configset_get_bool(&cs, "core.bare", &bare) && bare) {
+ if ((res = move_config_setting("core.bare", "true",
+ common_config_file,
+ main_worktree_file)))
+ goto cleanup;
+ }
+ /*
+ * If core.worktree is set, then the main worktree is located
+ * somewhere different than the parent of the common Git dir.
+ * Relocate that value to avoid breaking all worktrees with this
+ * upgrade to worktree config.
+ */
+ if (!git_configset_get_value(&cs, "core.worktree", &core_worktree)) {
+ if ((res = move_config_setting("core.worktree", core_worktree,
+ common_config_file,
+ main_worktree_file)))
+ goto cleanup;
+ }
+
+ /*
+ * Ensure that we use worktree config for the remaining lifetime
+ * of the current process.
+ */
+ repository_format_worktree_config = 1;
+
+cleanup:
+ git_configset_clear(&cs);
+ free(common_config_file);
+ free(main_worktree_file);
+ return res;
+}
diff --git a/worktree.h b/worktree.h
index 9e06fcbdf3..e9e839926b 100644
--- a/worktree.h
+++ b/worktree.h
@@ -183,4 +183,25 @@ void strbuf_worktree_ref(const struct worktree *wt,
struct strbuf *sb,
const char *refname);
+/**
+ * Enable worktree config for the first time. This will make the following
+ * adjustments:
+ *
+ * 1. Add extensions.worktreeConfig=true in the common config file.
+ *
+ * 2. If the common config file has a core.worktree value, then that value
+ * is moved to the main worktree's config.worktree file.
+ *
+ * 3. If the common config file has a core.bare enabled, then that value
+ * is moved to the main worktree's config.worktree file.
+ *
+ * If extensions.worktreeConfig is already true, then this method
+ * terminates early without any of the above steps. The existing config
+ * arrangement is assumed to be intentional.
+ *
+ * Returns 0 on success. Reports an error message and returns non-zero
+ * if any of these steps fail.
+ */
+int init_worktree_config(struct repository *r);
+
#endif
diff --git a/wrapper.c b/wrapper.c
index f500c2be1b..1c3c970080 100644
--- a/wrapper.c
+++ b/wrapper.c
@@ -4,6 +4,16 @@
#include "cache.h"
#include "config.h"
+static intmax_t count_fsync_writeout_only;
+static intmax_t count_fsync_hardware_flush;
+
+#ifdef HAVE_RTLGENRANDOM
+/* This is required to get access to RtlGenRandom. */
+#define SystemFunction036 NTAPI SystemFunction036
+#include <NTSecAPI.h>
+#undef SystemFunction036
+#endif
+
static int memory_limit_check(size_t size, int gentle)
{
static size_t limit = 0;
@@ -463,8 +473,6 @@ int git_mkstemps_mode(char *pattern, int suffix_len, int mode)
static const int num_letters = ARRAY_SIZE(letters) - 1;
static const char x_pattern[] = "XXXXXX";
static const int num_x = ARRAY_SIZE(x_pattern) - 1;
- uint64_t value;
- struct timeval tv;
char *filename_template;
size_t len;
int fd, count;
@@ -485,12 +493,13 @@ int git_mkstemps_mode(char *pattern, int suffix_len, int mode)
* Replace pattern's XXXXXX characters with randomness.
* Try TMP_MAX different filenames.
*/
- gettimeofday(&tv, NULL);
- value = ((uint64_t)tv.tv_usec << 16) ^ tv.tv_sec ^ getpid();
filename_template = &pattern[len - num_x - suffix_len];
for (count = 0; count < TMP_MAX; ++count) {
- uint64_t v = value;
int i;
+ uint64_t v;
+ if (csprng_bytes(&v, sizeof(v)) < 0)
+ return error_errno("unable to get random bytes for temporary file");
+
/* Fill in the random bits. */
for (i = 0; i < num_x; i++) {
filename_template[i] = letters[v % num_letters];
@@ -506,12 +515,6 @@ int git_mkstemps_mode(char *pattern, int suffix_len, int mode)
*/
if (errno != EEXIST)
break;
- /*
- * This is a random value. It is only necessary that
- * the next TMP_MAX values generated by adding 7777 to
- * VALUE are different with (module 2^32).
- */
- value += 7777;
}
/* We return the null string if we can't find a unique file name. */
pattern[0] = '\0';
@@ -546,6 +549,79 @@ int xmkstemp_mode(char *filename_template, int mode)
return fd;
}
+/*
+ * Some platforms return EINTR from fsync. Since fsync is invoked in some
+ * cases by a wrapper that dies on failure, do not expose EINTR to callers.
+ */
+static int fsync_loop(int fd)
+{
+ int err;
+
+ do {
+ err = fsync(fd);
+ } while (err < 0 && errno == EINTR);
+ return err;
+}
+
+int git_fsync(int fd, enum fsync_action action)
+{
+ switch (action) {
+ case FSYNC_WRITEOUT_ONLY:
+ count_fsync_writeout_only += 1;
+
+#ifdef __APPLE__
+ /*
+ * On macOS, fsync just causes filesystem cache writeback but
+ * does not flush hardware caches.
+ */
+ return fsync_loop(fd);
+#endif
+
+#ifdef HAVE_SYNC_FILE_RANGE
+ /*
+ * On linux 2.6.17 and above, sync_file_range is the way to
+ * issue a writeback without a hardware flush. An offset of
+ * 0 and size of 0 indicates writeout of the entire file and the
+ * wait flags ensure that all dirty data is written to the disk
+ * (potentially in a disk-side cache) before we continue.
+ */
+
+ return sync_file_range(fd, 0, 0, SYNC_FILE_RANGE_WAIT_BEFORE |
+ SYNC_FILE_RANGE_WRITE |
+ SYNC_FILE_RANGE_WAIT_AFTER);
+#endif
+
+#ifdef fsync_no_flush
+ return fsync_no_flush(fd);
+#endif
+
+ errno = ENOSYS;
+ return -1;
+
+ case FSYNC_HARDWARE_FLUSH:
+ count_fsync_hardware_flush += 1;
+
+ /*
+ * On macOS, a special fcntl is required to really flush the
+ * caches within the storage controller. As of this writing,
+ * this is a very expensive operation on Apple SSDs.
+ */
+#ifdef __APPLE__
+ return fcntl(fd, F_FULLFSYNC);
+#else
+ return fsync_loop(fd);
+#endif
+ default:
+ BUG("unexpected git_fsync(%d) call", action);
+ }
+}
+
+void trace_git_fsync_stats(void)
+{
+ trace2_data_intmax("fsync", the_repository, "fsync/writeout-only", count_fsync_writeout_only);
+ trace2_data_intmax("fsync", the_repository, "fsync/hardware-flush", count_fsync_hardware_flush);
+}
+
static int warn_if_unremovable(const char *op, const char *file, int rc)
{
int err;
@@ -702,3 +778,69 @@ int open_nofollow(const char *path, int flags)
return open(path, flags);
#endif
}
+
+int csprng_bytes(void *buf, size_t len)
+{
+#if defined(HAVE_ARC4RANDOM) || defined(HAVE_ARC4RANDOM_LIBBSD)
+ /* This function never returns an error. */
+ arc4random_buf(buf, len);
+ return 0;
+#elif defined(HAVE_GETRANDOM)
+ ssize_t res;
+ char *p = buf;
+ while (len) {
+ res = getrandom(p, len, 0);
+ if (res < 0)
+ return -1;
+ len -= res;
+ p += res;
+ }
+ return 0;
+#elif defined(HAVE_GETENTROPY)
+ int res;
+ char *p = buf;
+ while (len) {
+ /* getentropy has a maximum size of 256 bytes. */
+ size_t chunk = len < 256 ? len : 256;
+ res = getentropy(p, chunk);
+ if (res < 0)
+ return -1;
+ len -= chunk;
+ p += chunk;
+ }
+ return 0;
+#elif defined(HAVE_RTLGENRANDOM)
+ if (!RtlGenRandom(buf, len))
+ return -1;
+ return 0;
+#elif defined(HAVE_OPENSSL_CSPRNG)
+ int res = RAND_bytes(buf, len);
+ if (res == 1)
+ return 0;
+ if (res == -1)
+ errno = ENOTSUP;
+ else
+ errno = EIO;
+ return -1;
+#else
+ ssize_t res;
+ char *p = buf;
+ int fd, err;
+ fd = open("/dev/urandom", O_RDONLY);
+ if (fd < 0)
+ return -1;
+ while (len) {
+ res = xread(fd, p, len);
+ if (res < 0) {
+ err = errno;
+ close(fd);
+ errno = err;
+ return -1;
+ }
+ len -= res;
+ p += res;
+ }
+ close(fd);
+ return 0;
+#endif
+}
diff --git a/write-or-die.c b/write-or-die.c
index a3d5784cec..c4fd91b5b4 100644
--- a/write-or-die.c
+++ b/write-or-die.c
@@ -56,16 +56,37 @@ void fprintf_or_die(FILE *f, const char *fmt, ...)
}
}
-void fsync_or_die(int fd, const char *msg)
+static int maybe_fsync(int fd)
{
if (use_fsync < 0)
use_fsync = git_env_bool("GIT_TEST_FSYNC", 1);
if (!use_fsync)
- return;
- while (fsync(fd) < 0) {
- if (errno != EINTR)
- die_errno("fsync error on '%s'", msg);
- }
+ return 0;
+
+ if (fsync_method == FSYNC_METHOD_WRITEOUT_ONLY &&
+ git_fsync(fd, FSYNC_WRITEOUT_ONLY) >= 0)
+ return 0;
+
+ return git_fsync(fd, FSYNC_HARDWARE_FLUSH);
+}
+
+void fsync_or_die(int fd, const char *msg)
+{
+ if (maybe_fsync(fd) < 0)
+ die_errno("fsync error on '%s'", msg);
+}
+
+int fsync_component(enum fsync_component component, int fd)
+{
+ if (fsync_components & component)
+ return maybe_fsync(fd);
+ return 0;
+}
+
+void fsync_component_or_die(enum fsync_component component, int fd, const char *msg)
+{
+ if (fsync_components & component)
+ fsync_or_die(fd, msg);
}
void write_or_die(int fd, const void *buf, size_t count)
diff --git a/wt-status.c b/wt-status.c
index 335e723a71..d33f9272b7 100644
--- a/wt-status.c
+++ b/wt-status.c
@@ -651,6 +651,15 @@ static void wt_status_collect_changes_index(struct wt_status *s)
rev.diffopt.detect_rename = s->detect_rename >= 0 ? s->detect_rename : rev.diffopt.detect_rename;
rev.diffopt.rename_limit = s->rename_limit >= 0 ? s->rename_limit : rev.diffopt.rename_limit;
rev.diffopt.rename_score = s->rename_score >= 0 ? s->rename_score : rev.diffopt.rename_score;
+
+ /*
+ * The `recursive` option must be enabled to allow the diff to recurse
+ * into subdirectories of sparse directory index entries. If it is not
+ * enabled, a subdirectory containing file(s) with changes is reported
+ * as "modified", rather than the modified files themselves.
+ */
+ rev.diffopt.flags.recursive = 1;
+
copy_pathspec(&rev.prune_data, &s->pathspec);
run_diff_index(&rev, 1);
object_array_clear(&rev.pending);
@@ -1374,10 +1383,10 @@ static void show_rebase_information(struct wt_status *s,
status_printf_ln(s, color, _("No commands done."));
else {
status_printf_ln(s, color,
- Q_("Last command done (%d command done):",
- "Last commands done (%d commands done):",
+ Q_("Last command done (%"PRIuMAX" command done):",
+ "Last commands done (%"PRIuMAX" commands done):",
have_done.nr),
- have_done.nr);
+ (uintmax_t)have_done.nr);
for (i = (have_done.nr > nr_lines_to_show)
? have_done.nr - nr_lines_to_show : 0;
i < have_done.nr;
@@ -1393,10 +1402,10 @@ static void show_rebase_information(struct wt_status *s,
_("No commands remaining."));
else {
status_printf_ln(s, color,
- Q_("Next command to do (%d remaining command):",
- "Next commands to do (%d remaining commands):",
+ Q_("Next command to do (%"PRIuMAX" remaining command):",
+ "Next commands to do (%"PRIuMAX" remaining commands):",
yet_to_do.nr),
- yet_to_do.nr);
+ (uintmax_t)yet_to_do.nr);
for (i = 0; i < nr_lines_to_show && i < yet_to_do.nr; i++)
status_printf_ln(s, color, " %s", yet_to_do.items[i].string);
if (s->hints)
diff --git a/xdiff/xdiffi.c b/xdiff/xdiffi.c
index 69689fab24..758410c11a 100644
--- a/xdiff/xdiffi.c
+++ b/xdiff/xdiffi.c
@@ -315,16 +315,19 @@ int xdl_do_diff(mmfile_t *mf1, mmfile_t *mf2, xpparam_t const *xpp,
long *kvd, *kvdf, *kvdb;
xdalgoenv_t xenv;
diffdata_t dd1, dd2;
+ int res;
- if (XDF_DIFF_ALG(xpp->flags) == XDF_PATIENCE_DIFF)
- return xdl_do_patience_diff(mf1, mf2, xpp, xe);
-
- if (XDF_DIFF_ALG(xpp->flags) == XDF_HISTOGRAM_DIFF)
- return xdl_do_histogram_diff(mf1, mf2, xpp, xe);
+ if (xdl_prepare_env(mf1, mf2, xpp, xe) < 0)
+ return -1;
- if (xdl_prepare_env(mf1, mf2, xpp, xe) < 0) {
+ if (XDF_DIFF_ALG(xpp->flags) == XDF_PATIENCE_DIFF) {
+ res = xdl_do_patience_diff(mf1, mf2, xpp, xe);
+ goto out;
+ }
- return -1;
+ if (XDF_DIFF_ALG(xpp->flags) == XDF_HISTOGRAM_DIFF) {
+ res = xdl_do_histogram_diff(mf1, mf2, xpp, xe);
+ goto out;
}
/*
@@ -359,17 +362,15 @@ int xdl_do_diff(mmfile_t *mf1, mmfile_t *mf2, xpparam_t const *xpp,
dd2.rchg = xe->xdf2.rchg;
dd2.rindex = xe->xdf2.rindex;
- if (xdl_recs_cmp(&dd1, 0, dd1.nrec, &dd2, 0, dd2.nrec,
- kvdf, kvdb, (xpp->flags & XDF_NEED_MINIMAL) != 0, &xenv) < 0) {
-
- xdl_free(kvd);
- xdl_free_env(xe);
- return -1;
- }
-
+ res = xdl_recs_cmp(&dd1, 0, dd1.nrec, &dd2, 0, dd2.nrec,
+ kvdf, kvdb, (xpp->flags & XDF_NEED_MINIMAL) != 0,
+ &xenv);
xdl_free(kvd);
+ out:
+ if (res < 0)
+ xdl_free_env(xe);
- return 0;
+ return res;
}
diff --git a/xdiff/xhistogram.c b/xdiff/xhistogram.c
index 80794748b0..01decffc33 100644
--- a/xdiff/xhistogram.c
+++ b/xdiff/xhistogram.c
@@ -372,9 +372,6 @@ out:
int xdl_do_histogram_diff(mmfile_t *file1, mmfile_t *file2,
xpparam_t const *xpp, xdfenv_t *env)
{
- if (xdl_prepare_env(file1, file2, xpp, env) < 0)
- return -1;
-
return histogram_diff(xpp, env,
env->xdf1.dstart + 1, env->xdf1.dend - env->xdf1.dstart + 1,
env->xdf2.dstart + 1, env->xdf2.dend - env->xdf2.dstart + 1);
diff --git a/xdiff/xmacros.h b/xdiff/xmacros.h
index 2809a28ca9..ae4636c247 100644
--- a/xdiff/xmacros.h
+++ b/xdiff/xmacros.h
@@ -34,7 +34,6 @@
#define XDL_ADDBITS(v,b) ((v) + ((v) >> (b)))
#define XDL_MASKBITS(b) ((1UL << (b)) - 1)
#define XDL_HASHLONG(v,b) (XDL_ADDBITS((unsigned long)(v), b) & XDL_MASKBITS(b))
-#define XDL_PTRFREE(p) do { if (p) { xdl_free(p); (p) = NULL; } } while (0)
#define XDL_LE32_PUT(p, v) \
do { \
unsigned char *__p = (unsigned char *) (p); \
diff --git a/xdiff/xmerge.c b/xdiff/xmerge.c
index fff0b594f9..af40c88a5b 100644
--- a/xdiff/xmerge.c
+++ b/xdiff/xmerge.c
@@ -684,42 +684,42 @@ static int xdl_do_merge(xdfenv_t *xe1, xdchange_t *xscr1,
int xdl_merge(mmfile_t *orig, mmfile_t *mf1, mmfile_t *mf2,
xmparam_t const *xmp, mmbuffer_t *result)
{
- xdchange_t *xscr1, *xscr2;
+ xdchange_t *xscr1 = NULL, *xscr2 = NULL;
xdfenv_t xe1, xe2;
- int status;
+ int status = -1;
xpparam_t const *xpp = &xmp->xpp;
result->ptr = NULL;
result->size = 0;
- if (xdl_do_diff(orig, mf1, xpp, &xe1) < 0) {
+ if (xdl_do_diff(orig, mf1, xpp, &xe1) < 0)
return -1;
- }
- if (xdl_do_diff(orig, mf2, xpp, &xe2) < 0) {
- xdl_free_env(&xe1);
- return -1;
- }
+
+ if (xdl_do_diff(orig, mf2, xpp, &xe2) < 0)
+ goto free_xe1; /* avoid double free of xe2 */
+
if (xdl_change_compact(&xe1.xdf1, &xe1.xdf2, xpp->flags) < 0 ||
xdl_change_compact(&xe1.xdf2, &xe1.xdf1, xpp->flags) < 0 ||
- xdl_build_script(&xe1, &xscr1) < 0) {
- xdl_free_env(&xe1);
- return -1;
- }
+ xdl_build_script(&xe1, &xscr1) < 0)
+ goto out;
+
if (xdl_change_compact(&xe2.xdf1, &xe2.xdf2, xpp->flags) < 0 ||
xdl_change_compact(&xe2.xdf2, &xe2.xdf1, xpp->flags) < 0 ||
- xdl_build_script(&xe2, &xscr2) < 0) {
- xdl_free_script(xscr1);
- xdl_free_env(&xe1);
- xdl_free_env(&xe2);
- return -1;
- }
- status = 0;
+ xdl_build_script(&xe2, &xscr2) < 0)
+ goto out;
+
if (!xscr1) {
result->ptr = xdl_malloc(mf2->size);
+ if (!result->ptr)
+ goto out;
+ status = 0;
memcpy(result->ptr, mf2->ptr, mf2->size);
result->size = mf2->size;
} else if (!xscr2) {
result->ptr = xdl_malloc(mf1->size);
+ if (!result->ptr)
+ goto out;
+ status = 0;
memcpy(result->ptr, mf1->ptr, mf1->size);
result->size = mf1->size;
} else {
@@ -727,11 +727,13 @@ int xdl_merge(mmfile_t *orig, mmfile_t *mf1, mmfile_t *mf2,
&xe2, xscr2,
xmp, result);
}
+ out:
xdl_free_script(xscr1);
xdl_free_script(xscr2);
- xdl_free_env(&xe1);
xdl_free_env(&xe2);
+ free_xe1:
+ xdl_free_env(&xe1);
return status;
}
diff --git a/xdiff/xpatience.c b/xdiff/xpatience.c
index c5d48e80ae..1a21c6a74b 100644
--- a/xdiff/xpatience.c
+++ b/xdiff/xpatience.c
@@ -198,7 +198,7 @@ static int binary_search(struct entry **sequence, int longest,
* item per sequence length: the sequence with the smallest last
* element (in terms of line2).
*/
-static struct entry *find_longest_common_sequence(struct hashmap *map)
+static int find_longest_common_sequence(struct hashmap *map, struct entry **res)
{
struct entry **sequence = xdl_malloc(map->nr * sizeof(struct entry *));
int longest = 0, i;
@@ -211,6 +211,9 @@ static struct entry *find_longest_common_sequence(struct hashmap *map)
*/
int anchor_i = -1;
+ if (!sequence)
+ return -1;
+
for (entry = map->first; entry; entry = entry->next) {
if (!entry->line2 || entry->line2 == NON_UNIQUE)
continue;
@@ -230,8 +233,9 @@ static struct entry *find_longest_common_sequence(struct hashmap *map)
/* No common unique lines were found */
if (!longest) {
+ *res = NULL;
xdl_free(sequence);
- return NULL;
+ return 0;
}
/* Iterate starting at the last element, adjusting the "next" members */
@@ -241,8 +245,9 @@ static struct entry *find_longest_common_sequence(struct hashmap *map)
entry->previous->next = entry;
entry = entry->previous;
}
+ *res = entry;
xdl_free(sequence);
- return entry;
+ return 0;
}
static int match(struct hashmap *map, int line1, int line2)
@@ -358,14 +363,16 @@ static int patience_diff(mmfile_t *file1, mmfile_t *file2,
return 0;
}
- first = find_longest_common_sequence(&map);
+ result = find_longest_common_sequence(&map, &first);
+ if (result)
+ goto out;
if (first)
result = walk_common_sequence(&map, first,
line1, count1, line2, count2);
else
result = fall_back_to_classic_diff(&map,
line1, count1, line2, count2);
-
+ out:
xdl_free(map.entries);
return result;
}
@@ -373,10 +380,6 @@ static int patience_diff(mmfile_t *file1, mmfile_t *file2,
int xdl_do_patience_diff(mmfile_t *file1, mmfile_t *file2,
xpparam_t const *xpp, xdfenv_t *env)
{
- if (xdl_prepare_env(file1, file2, xpp, env) < 0)
- return -1;
-
- /* environment is cleaned up in xdl_diff() */
return patience_diff(file1, file2, xpp, env,
1, env->xdf1.nrec, 1, env->xdf2.nrec);
}